← Commit history
README.md+14
@@ -1,3 +1,17 @@ # WS2812B-2020 +**Worldsemi** · Addressable RGB · 2020 · LED+ Worldsemi · Intelligent Control LED · 2020 (2.0 &times; 2.0mm) · Built-in IC + RGB dies++## Characterization++<iframe src="/blob/component/ws2812b-2020/WS2812B-2020.html" width="100%" height="2400" frameborder="0" style="border: none; border-radius: 8px;" allowfullscreen></iframe>++## Downloads++| File | Description |+|------|-------------|+| [WS2812B-2020.kicad_sym](/blob/component/ws2812b-2020/WS2812B-2020.kicad_sym) | KiCad Symbol |+| [WS2812B-2020.kicad_mod](/blob/component/ws2812b-2020/WS2812B-2020.kicad_mod) | KiCad Footprint |+| [WS2812B-2020.step](/blob/component/ws2812b-2020/WS2812B-2020.step) | 3D STEP Model |
WS2812B-2020-fpview.htmladded+790
@@ -0,0 +1,790 @@+<!DOCTYPE html>+<html lang="en">+<head>+<meta charset="UTF-8">+<meta name="viewport" content="width=device-width, initial-scale=1.0">+<title>WS2812B-2020</title>+<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;+  }++  .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;+    overflow: hidden;+    text-overflow: ellipsis;+    white-space: nowrap;+    min-width: 0;+  }+  .toolbar .badge {+    font-size: 10px;+    padding: 2px 6px;+    border-radius: 4px;+    background: rgba(0, 184, 176, 0.12);+    color: #00b8b0;+    border: 1px solid rgba(0, 184, 176, 0.25);+    margin-left: 6px;+  }+  .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-wrap {+    flex: 1;+    overflow: hidden;+    position: relative;+    cursor: grab;+    background-color: #0d1117;+    background-image:+      linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),+      linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);+    background-size: 20px 20px;+  }+  .canvas-wrap.dragging { cursor: grabbing; }+  .canvas-wrap.no-grid { background-image: none; }++  .canvas {+    position: absolute;+    transform-origin: 0 0;+  }+  .canvas svg { display: block; }++  .tooltip {+    display: none;+    position: fixed;+    background: #21262d;+    backdrop-filter: blur(12px);+    color: #e6edf3;+    padding: 10px 14px;+    border-radius: 8px;+    border: 1px solid rgba(0, 184, 176, 0.25);+    font-size: 12px;+    line-height: 1.6;+    pointer-events: none;+    z-index: 100;+    max-width: 280px;+    box-shadow: 0 8px 24px rgba(0,0,0,0.4);+  }+  .tooltip.visible { display: block; }+  .tooltip .tt-pad { font-weight: 700; font-size: 15px; color: #00e6dc; }+  .tooltip .tt-signal { color: #f0c040; font-size: 13px; margin-left: 6px; font-weight: 600; }+  .tooltip .tt-dims {+    display: inline-block;+    margin-top: 4px;+    padding: 2px 8px;+    border-radius: 4px;+    font-size: 11px;+    font-weight: 500;+    background: rgba(200,52,52,0.15);+    color: #C83434;+    border: 1px solid rgba(200,52,52,0.3);+  }+  .tooltip .tt-desc {+    margin-top: 6px;+    padding-top: 6px;+    border-top: 1px solid #21262d;+    color: #8b949e;+    font-size: 11px;+    line-height: 1.5;+  }+  .tooltip.sticky {+    pointer-events: auto;+    user-select: text;+    border-color: #00e6dc;+  }+  .tooltip .tt-hint {+    margin-top: 6px;+    font-size: 9px;+    color: #484f58;+    text-align: center;+  }+  .tooltip .tt-source {+    margin-top: 6px;+    padding-top: 4px;+    border-top: 1px solid #21262d;+    font-size: 9px;+  }+  .tooltip .tt-source-label { color: #8C6BF7; }+  .tooltip .tt-source a { color: #58a6ff; text-decoration: none; }+  .tooltip .tt-source a:hover { text-decoration: underline; }++  .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(140,107,247,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(140,107,247,0.12);+    border-color: rgba(140,107,247,0.4);+    color: #C5B3FF;+  }+  .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: #161b22;+    border: 1px solid #21262d;+    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: #00b8b0;+  }+  .regen-modal .prompt-text {+    background: undefined;+    border: 1px solid #21262d;+    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: #484f58;+  }+  .regen-modal .copy-status.copied { color: #00b8b0; }+  .regen-modal .modal-btns { display: flex; gap: 8px; }+  .regen-modal .modal-btns button {+    padding: 6px 14px;+    border-radius: 6px;+    border: 1px solid #21262d;+    background: #161b22;+    color: #8b949e;+    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,184,176,0.12);+    border-color: rgba(0,184,176,0.3);+    color: #00b8b0;+  }+  .regen-modal .modal-btns .copy-btn:hover { background: rgba(0,184,176,0.22); }++  /* Pad highlight */+  .pad-highlight {+    stroke: #00b8b0 !important;+    stroke-width: 0.15 !important;+    fill-opacity: 0.6 !important;+  }++  .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>+<body>++<div class="toolbar">+  <span class="title">WS2812B-2020</span>+  <span class="badge">Footprint</span>+  <span class="badge" style="background:rgba(248,81,73,0.15);color:#f85149;border-color:rgba(248,81,73,0.3);">Local Render</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="toggleSolder()" id="solder-btn" class="active" title="250µm solder jet blobs for Adom InstaPCB paste jetting. Adom uses this placement data for its jetting sequence. Blob count, position, and size (250–600µm) are adjustable. Placement accuracy: ±50µm.">Solder</button>+  <button onclick="toggleLabels()" id="labels-btn">Labels</button>+  <div class="sep"></div>+  <button onclick="showRegenPrompt()" id="regen-btn" 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>+      </div>+    </div>+  </div>+</div>++<div class="canvas-wrap" id="canvas-wrap">+  <div class="canvas" id="canvas">+    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10"><text x="5" y="5" text-anchor="middle" font-size="1" fill="#888">No geometry</text></svg>+  </div>+  <a class="edit-btn" href="https://coder.john-service-wiki-a054078430ce38e4.containers.adom.inc/proxy/8785/wiki/components/ws2812b-2020/edit?field=content" target="_blank" title="Suggest corrections on 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>++<div class="tooltip" id="tooltip"></div>++<div class="bottom-panel">+  <div class="info-row">+    <div class="info-item"><span class="info-label">Pads</span><span class="info-value">0</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>+  </div>+</div>++<script>+  const pads = [];+  const svgW = 10;+  const svgH = 10;+  const svgVbX = 0;+  const svgVbY = 0;+  const offsetX = 0;+  const offsetY = 0;+  const datasheetUrl = "";+  const _partName = "";+  const _fpName = "WS2812B-2020";+  const _kicadModPath = "/home/adom/project/project-content/schematics/footprints/WS2812B-2020/WS2812B-2020.kicad_mod";++  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;++  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;+    if (ww === 0 || wh === 0) return; // iframe not laid out yet — ResizeObserver will retry+    const margin = 24;+    // Use getBBox() to fit to visible content only (excludes hidden labels)+    let fitW = svgPxW, fitH = svgPxH, fitX = 0, fitY = 0;+    if (svgEl) {+      try {+        const bb = svgEl.getBBox();+        if (bb.width > 0 && bb.height > 0) {+          fitW = bb.width * MM_TO_PX;+          fitH = bb.height * MM_TO_PX;+          fitX = (bb.x - svgVbX) * MM_TO_PX;+          fitY = (bb.y - svgVbY) * MM_TO_PX;+        }+      } catch {}+    }+    scale = Math.min((ww - margin * 2) / fitW, (wh - margin * 2) / fitH, 100);+    panX = (ww - fitW * scale) / 2 - fitX * scale;+    panY = (wh - fitH * scale) / 2 - fitY * scale;+    updateTransform();+  }++  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, 40));+    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);+  }++  // ── Solder blob jetting layer ──+  let solderVisible = true;+  let solderGroup = null;++  function setupSolderBlobs() {+    if (!svgEl) return;++    solderGroup = document.createElementNS('http://www.w3.org/2000/svg', 'g');+    solderGroup.setAttribute('id', 'solder-layer');+    solderGroup.style.display = '';+    solderGroup.style.pointerEvents = 'none';++    const BLOB_RADIUS = 0.125;   // 250µm diameter / 2+    const BLOB_SPACING = 0.25;   // center-to-center (blobs touching — fills the pad)++    pads.forEach(pad => {+      if (pad.mountType !== 'smd') return;++      const cx = pad.x + offsetX;+      const cy = pad.y + offsetY;+      const rot = (pad.rotation || 0) * Math.PI / 180;++      // Each axis computed independently: if pad is wide enough, grid; otherwise single centered blob+      const inset = BLOB_RADIUS;  // blob edges align with pad edges — no overhang+      const availW = pad.width - 2 * inset;+      const availH = pad.height - 2 * inset;++      // At minimum 1 blob per axis — even narrow pads get a centered row/column+      const nCols = availW > 0 ? Math.max(1, Math.floor(availW / BLOB_SPACING) + 1) : 1;+      const nRows = availH > 0 ? Math.max(1, Math.floor(availH / BLOB_SPACING) + 1) : 1;+      const spanW = availW > 0 ? availW : 0;+      const spanH = availH > 0 ? availH : 0;+      const stepX = nCols > 1 ? spanW / (nCols - 1) : 0;+      const stepY = nRows > 1 ? spanH / (nRows - 1) : 0;+      const startX = -spanW / 2;+      const startY = -spanH / 2;+      const cosR = Math.cos(rot);+      const sinR = Math.sin(rot);++      for (let row = 0; row < nRows; row++) {+        for (let col = 0; col < nCols; col++) {+          const lx = startX + col * stepX;+          const ly = startY + row * stepY;+          const rx = lx * cosR - ly * sinR;+          const ry = lx * sinR + ly * cosR;++          const circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');+          circle.setAttribute('cx', (cx + rx).toFixed(4));+          circle.setAttribute('cy', (cy + ry).toFixed(4));+          circle.setAttribute('r', BLOB_RADIUS.toFixed(4));+          circle.setAttribute('fill', '#D4AA70');+          circle.setAttribute('fill-opacity', '0.75');+          circle.setAttribute('stroke', '#B8860B');+          circle.setAttribute('stroke-width', '0.015');+          solderGroup.appendChild(circle);+        }+      }+    });++    svgEl.appendChild(solderGroup);+  }++  function toggleSolder() {+    solderVisible = !solderVisible;+    if (solderGroup) solderGroup.style.display = solderVisible ? '' : 'none';+    document.getElementById('solder-btn').classList.toggle('active', solderVisible);+  }++  // ── Label visibility toggle ──+  let labelsVisible = false;+  let labelGroups = [];++  function setupLabelToggle() {+    if (!svgEl) return;+    // KiCad SVGs render labels as <g> containing <text> + <g class="stroked-text">+    // Find all <text> elements and collect their parent <g> groups+    svgEl.querySelectorAll('text').forEach(txt => {+      const parent = txt.parentElement;+      if (parent && parent.tagName === 'g' && !labelGroups.includes(parent)) {+        labelGroups.push(parent);+        parent.style.display = 'none';  // hidden by default+      }+    });+  }++  function toggleLabels() {+    labelsVisible = !labelsVisible;+    labelGroups.forEach(g => g.style.display = labelsVisible ? '' : 'none');+    document.getElementById('labels-btn').classList.toggle('active', labelsVisible);+  }++  // ── Regen prompt modal ──+  let _regenPrompt = '';+  function buildRegenPrompt() {+    const name = _partName || _fpName;+    const folder = _kicadModPath.replace(/\/[^/]+$/, '');+    return 'Regenerate the FpView for ' + name + '.\n\n'+      + 'Footprint: ' + _kicadModPath + '\n'+      + 'Metadata: ' + folder + '/\n\n'+      + 'Re-export the SVG via the KiCad service, regenerate the FpView HTML at the same path, '+      + 'and re-display it.';+  }+  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');+    });+  }++  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 });++  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();+    // Convert screen coords to kicad_mod coords+    const svgX = (e.clientX - r.left - panX) / scale / MM_TO_PX;+    const svgY = (e.clientY - r.top - panY) / scale / MM_TO_PX;+    const kicadX = svgX - offsetX;+    const kicadY = svgY - offsetY;+    cursorPos.innerHTML = 'X: ' + kicadX.toFixed(2) + ' &nbsp; Y: ' + kicadY.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'); });++  // ── Pad hit zones ──+  let highlightedRects = [];+  let stickyPad = null;++  function setupPadHitZones() {+    if (!svgEl) return;+    pads.forEach(pad => {+      const cx = pad.x + offsetX;+      const cy = pad.y + offsetY;+      const rx = cx - pad.width / 2;+      const ry = cy - pad.height / 2;++      const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');+      rect.setAttribute('x', rx);+      rect.setAttribute('y', ry);+      rect.setAttribute('width', pad.width);+      rect.setAttribute('height', pad.height);+      rect.setAttribute('fill', 'transparent');+      rect.setAttribute('stroke', 'none');+      rect.setAttribute('data-pad', pad.number);+      rect.style.cursor = 'pointer';+      rect.style.pointerEvents = 'all';+      svgEl.appendChild(rect);++      rect.addEventListener('mouseenter', (ev) => showPadTooltip(ev.clientX, ev.clientY, pad, rect));+      rect.addEventListener('mousemove', (ev) => showPadTooltip(ev.clientX, ev.clientY, pad, rect));+      rect.addEventListener('mouseleave', () => hidePadTooltip(rect));+      rect.addEventListener('click', (ev) => { ev.stopPropagation(); handlePadClick(pad, rect); });+    });+  }++  function buildTooltipHtml(pad) {+    let html = '<div><span class="tt-pad">Pad ' + pad.number + '</span>';+    if (pad.signal) html += '<span class="tt-signal">' + pad.signal + '</span>';+    html += '</div>';+    html += '<div><span class="tt-dims">' + pad.width.toFixed(3) + ' × ' + pad.height.toFixed(3) + ' mm · ' + pad.shape + ' · ' + pad.mountType + '</span></div>';+    if (pad.desc) {+      html += '<div class="tt-desc">' + pad.desc + '</div>';+    }+    if (datasheetUrl) {+      html += '<div class="tt-source"><span class="tt-source-label">Source:</span> <a href="' + datasheetUrl + '" target="_blank">Datasheet</a></div>';+    }+    html += '<div class="tt-hint">click to pin · select text</div>';+    return html;+  }++  function positionTooltip(x, y) {+    // Render first to measure+    tooltip.style.left = '0px';+    tooltip.style.top = '0px';+    const ttRect = tooltip.getBoundingClientRect();+    const ttW = ttRect.width, ttH = ttRect.height;+    const pad = 14;+    let tx = x + 14, ty = y + 14;+    if (tx + ttW > window.innerWidth - pad) tx = x - ttW - 14;+    if (ty + ttH > window.innerHeight - pad) ty = y - ttH - 14;+    tx = Math.max(pad, Math.min(tx, window.innerWidth - ttW - pad));+    ty = Math.max(pad, Math.min(ty, window.innerHeight - ttH - pad));+    tooltip.style.left = tx + 'px';+    tooltip.style.top = ty + 'px';+  }++  function showPadTooltip(x, y, pad, rect) {+    if (stickyPad !== null) return; // suppress hover while sticky++    clearHighlight();+    rect.setAttribute('stroke', '#00b8b1');+    rect.setAttribute('stroke-width', '0.12');+    rect.setAttribute('fill', 'rgba(0,184,177,0.2)');+    highlightedRects.push(rect);++    tooltip.innerHTML = buildTooltipHtml(pad);+    tooltip.classList.add('visible');+    tooltip.classList.remove('sticky');+    positionTooltip(x, y);+  }++  function hidePadTooltip(rect) {+    if (stickyPad !== null) return; // don't hide while sticky+    tooltip.classList.remove('visible');+    clearHighlight();+  }++  function handlePadClick(pad, rect) {+    if (stickyPad === pad.number) {+      // Unpin+      stickyPad = null;+      tooltip.classList.remove('sticky', 'visible');+      clearHighlight();+    } else {+      // Pin this pad+      stickyPad = pad.number;+      clearHighlight();+      rect.setAttribute('stroke', '#00b8b1');+      rect.setAttribute('stroke-width', '0.12');+      rect.setAttribute('fill', 'rgba(0,184,177,0.2)');+      highlightedRects.push(rect);+      tooltip.innerHTML = buildTooltipHtml(pad);+      tooltip.classList.add('visible', 'sticky');+      // Remove hint when sticky+      const hint = tooltip.querySelector('.tt-hint');+      if (hint) hint.style.display = 'none';+    }+  }++  // Dismiss sticky tooltip on click outside+  document.addEventListener('click', (e) => {+    if (stickyPad !== null && !tooltip.contains(e.target)) {+      stickyPad = null;+      tooltip.classList.remove('sticky', 'visible');+      clearHighlight();+    }+  });++  function clearHighlight() {+    highlightedRects.forEach(r => {+      r.setAttribute('fill', 'transparent');+      r.setAttribute('stroke', 'none');+    });+    highlightedRects = [];+  }++  wrap.addEventListener('mouseleave', () => {+    if (stickyPad !== null) return;+    tooltip.classList.remove('visible');+    clearHighlight();+  });++  // Keyboard+  window.addEventListener('keydown', (e) => {+    if (e.key === 'Escape') closeRegenPrompt();+    else 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 === 's' || e.key === 'S') toggleSolder();+    else if (e.key === 'l' || e.key === 'L') toggleLabels();+  });++  // Screenshot capture via postMessage (parent viewer sends mgmt_capture_request)+  window.addEventListener('message', (e) => {+    if (e.data?.type === 'mgmt_capture_request' && svgEl) {+      const xml = new XMLSerializer().serializeToString(svgEl);+      parent.postMessage({+        type: 'mgmt_canvas_capture',+        _reqId: e.data._reqId,+        svgXml: xml,+        svgWidth: svgW,+        svgHeight: svgH,+        bgColor: 'undefined',+      }, '*');+    }+  });++  // Auto-fit on window/container resize+  new ResizeObserver(() => zoomFit()).observe(wrap);+  window.addEventListener('resize', () => requestAnimationFrame(zoomFit));++  // Init — set up layers then fit. Use multiple retries because srcdoc iframes+  // may not have layout dimensions during the first requestAnimationFrame.+  let inited = false;+  function init() {+    if (inited) return;+    setupLabelToggle();+    setupSolderBlobs();+    setupPadHitZones();+    inited = true;+  }+  function initAndFit() {+    init();+    zoomFit();+  }+  requestAnimationFrame(initAndFit);+  setTimeout(initAndFit, 100);+  setTimeout(initAndFit, 500);+</script>+</body>+</html>\ No newline at end of file
WS2812B-2020-symview.htmladded+1299
@@ -0,0 +1,1299 @@+<!DOCTYPE html>+<html lang="en">+<head>+<meta charset="UTF-8">+<meta name="viewport" content="width=device-width, initial-scale=1.0">+<title>WS2812B-2020</title>+<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>+<body>++<div class="toolbar">+  <span class="title">WS2812B-2020</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>+      </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/ws2812b-2020/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+  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="10.5156mm" height="8.5598mm" viewBox="-3.6617 -5.5601 36.0000 28.5700">++<defs>+  <linearGradient id="adom-body-grad" x1="0" y1="0" x2="0" y2="1">+    <stop offset="0%" stop-color="#1a2332"/>+    <stop offset="100%" stop-color="#141c27"/>+  </linearGradient>+</defs>++<style>+  /* 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;+  }+  g.group-label-text path {+    stroke: #E6B450 !important;+    fill: #E6B450 !important;+  }+  g.group-label-text.group-highlight path {+    stroke: #FFD180 !important;+  }+  g.pin-number-text path {+    stroke: #8b949e !important;+    fill: #8b949e !important;+  }+</style>++  <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)">+<path style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 2.4003,5.0419+0.8763,6.5659+1.6383,6.5659+0.8763,6.5659+0.8763,5.8039+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 3.6703,5.0419+2.1463,6.5659+2.9083,6.5659+2.1463,6.5659+2.1463,5.8039+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 4.1783,4.2799+6.7183,4.2799+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.2540; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 4.1783,5.5499+4.1783,3.0099+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.2540; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 6.7183,5.5499+6.7183,3.0099+4.1783,4.2799+Z" /> +</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M4.1783 4.2799+L1.6383 4.2799+" />+<path d="M6.7183 4.2799+L9.2583 4.2799+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<text x="5.4483" y="7.4549"+textLength="3.6503" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">LED</text>+<g class="stroked-text"><desc>LED</desc>+<path d="M4.6319 7.3994+L4.0271 7.3994+" />+<path d="M4.0271 7.3994+L4.0271 6.1294+" />+<path d="M5.0552 6.7342+L5.4786 6.7342+" />+<path d="M5.6600 7.3994+L5.0552 7.3994+" />+<path d="M5.0552 7.3994+L5.0552 6.1294+" />+<path d="M5.0552 6.1294+L5.6600 6.1294+" />+<path d="M6.2042 7.3994+L6.2042 6.1294+" />+<path d="M6.2042 6.1294+L6.5066 6.1294+" />+<path d="M6.5066 6.1294+L6.6880 6.1899+" />+<path d="M6.6880 6.1899+L6.8090 6.3109+" />+<path d="M6.8090 6.3109+L6.8695 6.4318+" />+<path d="M6.8695 6.4318+L6.9299 6.6737+" />+<path d="M6.9299 6.6737+L6.9299 6.8551+" />+<path d="M6.9299 6.8551+L6.8695 7.0970+" />+<path d="M6.8695 7.0970+L6.8090 7.2180+" />+<path d="M6.8090 7.2180+L6.6880 7.3390+" />+<path d="M6.6880 7.3390+L6.5066 7.3994+" />+<path d="M6.5066 7.3994+L6.2042 7.3994+" />+</g></g> +<rect x="-3.361699999999999" y="-5.2601" width="35.4" height="27.97" 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">Mfr</span><span class="info-value">Worldsemi</span></div><div class="info-item"><span class="info-label">Pkg</span><span class="info-value">SMD 2.0x2.0mm</span></div><div class="info-item"><span class="info-label">Pins</span><span class="info-value">4</span></div><div class="info-item"><span class="info-label">Desc</span><span class="info-value">Intelligent control LED integrated light source, 2020 package. Built-in IC for single-wire addressable RGB control. 256 brightness levels, 16.7M colors.</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>++<script>+  const pins = [{"name":"DOUT","number":"2","type":"Output","electricalType":"output","color":"#42a5f5","desc":"Cathode","x":-12.7,"y":-2,"angle":0,"length":2.54},{"name":"DIN","number":"4","type":"Input","electricalType":"input","color":"#66bb6a","desc":"","x":-12.7,"y":-4.54,"angle":0,"length":2.54},{"name":"VSS","number":"3","type":"Power Input","electricalType":"power_in","color":"#ef5350","desc":"","x":-12.7,"y":-12.89,"angle":0,"length":2.54},{"name":"VDD","number":"1","type":"Power Input","electricalType":"power_in","color":"#ef5350","desc":"Anode","x":12.7,"y":-2,"angle":180,"length":2.54}];+  const groups = [{"name":"DATA","desc":""},{"name":"GROUND","desc":""},{"name":"POWER","desc":""}];+  const svgW = 36;+  const svgH = 28.57;+  const contentBounds = {"x":-3.361699999999999,"y":-5.2601,"w":35.4,"h":27.97};+  const svgOffset = {"x":14.3383,"y":2.2798999999999996};+  const hidePinNames = false;+  const hidePinNumbers = false;+  const datasheetUrl = "";+  const mfrName = "Worldsemi";+  const _symbolName = "WS2812B-2020";+  const _symPath = "/home/adom/project/project-content/schematics/symbols/WS2812B-2020/WS2812B-2020.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();+  }++  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;+          }+        }+      }+    }+  }++  function highlightPin(pin) {+    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);+  }++  function hideTooltip() {+    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 }, '*');+      }+    }+  });+</script>+</body>+</html>\ No newline at end of file
WS2812B-2020.htmladded+727
@@ -0,0 +1,727 @@+<!DOCTYPE html>+<html lang="en">+<head>+<meta charset="UTF-8">+<meta name="viewport" content="width=device-width, initial-scale=1.0">+<title>WS2812B-2020 — Component Characterization</title>+<style>+  @font-face { font-family: 'Familjen Grotesk'; src: url('https://adom.inc/fonts/familjen-grotesk/familjen-grotesk-latin-700-normal.woff2') format('woff2'); font-weight: 700; }+  @font-face { font-family: 'Familjen Grotesk'; src: url('https://adom.inc/fonts/familjen-grotesk/familjen-grotesk-latin-500-normal.woff2') format('woff2'); font-weight: 500; }+  @font-face { font-family: 'Satoshi'; src: url('https://adom.inc/fonts/satoshi/satoshi-400-normal.woff2') format('woff2'); font-weight: 400; }+  @font-face { font-family: 'Satoshi'; src: url('https://adom.inc/fonts/satoshi/satoshi-500-normal.woff2') format('woff2'); font-weight: 500; }+  @font-face { font-family: 'JetBrains Mono'; src: url('https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2') format('woff2'); font-weight: 400; }++  :root {+    --bg: #0d1117; --surface: #161b22; --elevated: #1c2128; --border: #30363d; --border-muted: #21262d;+    --text: #e6edf3; --text-muted: #8b949e; --text-dim: #484f58;+    --accent: #00b8b0; --accent-bright: #00e6dc; --accent-dim: rgba(0,184,176,0.12); --accent-border: rgba(0,184,176,0.25);+    --green: #3fb950; --orange: #d29922; --red: #f85149; --purple: #8C6BF7; --blue: #58a6ff;+    --rgb-r: #DC143C; --rgb-g: #32CD32; --rgb-b: #4169E1;+  }+  * { margin: 0; padding: 0; box-sizing: border-box; }+  body { font-family: 'Satoshi', sans-serif; background: var(--bg); color: var(--text); font-size: 13px; line-height: 1.6; overflow-y: auto; }+  h1,h2,h3 { font-family: 'Familjen Grotesk', sans-serif; font-weight: 700; }+  code { font-family: 'JetBrains Mono', monospace; font-size: 12px; }+  a { color: var(--accent); text-decoration: none; }+  a:hover { color: var(--accent-bright); text-decoration: underline; }++  .header { background: var(--surface); border-bottom: 1px solid var(--border-muted); padding: 20px 24px; }+  .header-top { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; }+  .header .brand { color: var(--accent); font-family: 'Familjen Grotesk', sans-serif; font-size: 12px; font-weight: 600; }+  .header .vsep { width: 1px; height: 16px; background: var(--border); }+  .header .crumb { color: var(--text-dim); font-size: 12px; }+  .header h1 { font-size: 22px; margin-bottom: 2px; }+  .header h1 .val { background: linear-gradient(90deg, #DC143C, #32CD32, #4169E1); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }+  .header .subtitle { color: var(--text-muted); font-size: 13px; }+  .header .tags { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }+  .tag { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 12px; font-size: 11px; font-weight: 500; }+  .tag.pkg { background: rgba(0,184,176,0.12); color: var(--accent); }+  .tag.mfr { background: rgba(88,166,255,0.12); color: var(--blue); }+  .tag.series { background: rgba(140,107,247,0.12); color: var(--purple); }+  .tag.rohs { background: rgba(63,185,80,0.12); color: var(--green); }+  .tag.app { background: linear-gradient(90deg, rgba(220,20,60,0.15), rgba(50,205,50,0.15), rgba(65,105,225,0.15)); color: #e6edf3; }++  .container { max-width: 1100px; margin: 0 auto; padding: 24px; }+  .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }+  @media (max-width: 800px) { .grid-2 { grid-template-columns: 1fr; } }++  .section { margin-bottom: 28px; }+  .section-title { font-size: 14px; color: var(--text); margin-bottom: 12px; padding-bottom: 6px; border-bottom: 1px solid var(--border-muted); display: flex; align-items: center; gap: 8px; }++  .card { background: var(--surface); border: 1px solid var(--border-muted); border-radius: 8px; padding: 16px; }+  .card:hover { border-color: var(--accent-border); }++  .spec-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }+  .spec-card { background: var(--surface); border: 1px solid var(--border-muted); border-radius: 8px; padding: 12px 14px; text-align: center; }+  .spec-card .sc-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-dim); margin-bottom: 4px; }+  .spec-card .sc-value { font-size: 22px; font-weight: 700; font-family: 'Familjen Grotesk', sans-serif; }+  .spec-card .sc-detail { font-size: 11px; color: var(--text-muted); margin-top: 2px; }+  .spec-card.highlight { border-color: var(--accent-border); background: linear-gradient(180deg, rgba(0,184,176,0.06), var(--surface)); }+  .spec-card.highlight .sc-value { color: var(--accent); }++  .detail-table { width: 100%; border-collapse: collapse; }+  .detail-table tr { border-bottom: 1px solid var(--border-muted); }+  .detail-table tr:last-child { border-bottom: none; }+  .detail-table td { padding: 8px 0; }+  .detail-table td:first-child { color: var(--text-muted); font-size: 12px; width: 45%; }+  .detail-table td:last-child { font-family: 'JetBrains Mono', monospace; font-size: 13px; text-align: right; }++  .chart-wrap { background: var(--surface); border: 1px solid var(--border-muted); border-radius: 8px; padding: 16px; }+  .chart-wrap h3 { font-size: 13px; color: var(--text); margin-bottom: 12px; }+  .chart-wrap .chart-note { font-size: 11px; color: var(--text-dim); margin-top: 8px; }+  svg text { font-family: 'JetBrains Mono', monospace; }++  .env-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }+  @media (max-width: 700px) { .env-grid { grid-template-columns: 1fr; } }+  .env-card { background: var(--surface); border: 1px solid var(--border-muted); border-radius: 8px; padding: 12px 14px; }+  .env-card .env-name { font-size: 12px; font-weight: 600; margin-bottom: 4px; }+  .env-card .env-spec { font-size: 11px; color: var(--text-muted); }+  .env-card .env-detail { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text); margin-top: 4px; }++  .open-full-banner { display: flex; align-items: center; justify-content: center; padding: 12px 24px; background: linear-gradient(90deg, rgba(0,184,176,0.12), rgba(0,184,176,0.06)); border-bottom: 1px solid var(--accent-border); }+  .open-full-btn { display: inline-flex; align-items: center; gap: 8px; padding: 8px 20px; background: var(--accent); color: var(--bg); font-family: 'Familjen Grotesk', sans-serif; font-size: 13px; font-weight: 600; border-radius: 6px; text-decoration: none; transition: background 0.15s; cursor: pointer; border: none; }+  .open-full-btn:hover { background: var(--accent-bright); text-decoration: none; color: var(--bg); }++  .source { text-align: center; color: var(--text-dim); font-size: 11px; padding: 24px 0 12px; border-top: 1px solid var(--border-muted); margin-top: 20px; }++  .dl-btn { display: inline-block; margin-top: 10px; padding: 6px 14px; background: var(--accent-dim); border: 1px solid var(--accent-border); border-radius: 6px; color: var(--accent); font-size: 11px; font-weight: 500; font-family: 'Satoshi', sans-serif; text-decoration: none; transition: background 0.15s, border-color 0.15s; }+  .dl-btn:hover { background: rgba(0,184,176,0.2); border-color: var(--accent); text-decoration: none; color: var(--accent-bright); }++  /* RGB Mixer */+  .mixer-card { background: var(--surface); border: 1px solid var(--accent-border); border-radius: 8px; padding: 20px; }+  .mixer-card h3 { font-size: 14px; color: var(--accent); margin-bottom: 16px; font-family: 'Familjen Grotesk', sans-serif; }+  .mixer-sliders { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; margin-bottom: 16px; }+  .mixer-slider { text-align: center; }+  .mixer-slider label { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; font-weight: 600; }+  .mixer-slider input[type=range] { width: 100%; height: 8px; -webkit-appearance: none; border-radius: 4px; outline: none; }+  .mixer-slider input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; cursor: pointer; border: 2px solid var(--bg); }+  .mixer-slider .val { font-family: 'JetBrains Mono', monospace; font-size: 16px; font-weight: 700; margin-top: 4px; }+  .mixer-preview { width: 100%; height: 100px; border-radius: 8px; margin-bottom: 12px; transition: background-color 0.1s; display: flex; align-items: center; justify-content: center; }+  .mixer-results { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }+  .mixer-result { background: var(--bg); border: 1px solid var(--border-muted); border-radius: 6px; padding: 10px 12px; text-align: center; }+  .mixer-result .mr-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-dim); margin-bottom: 2px; }+  .mixer-result .mr-value { font-size: 16px; font-weight: 700; font-family: 'Familjen Grotesk', sans-serif; color: var(--accent); }+  .mixer-result .mr-detail { font-size: 11px; color: var(--text-muted); margin-top: 2px; }+</style>+</head>+<body>++<div class="open-full-banner" id="fullPageBanner" style="display:none">+  <span style="color:var(--text-muted);font-size:12px;margin-right:8px">Full page:</span>+  <code style="color:var(--accent);font-size:11px;background:var(--elevated);padding:4px 8px;border-radius:4px;user-select:all">https://wiki-ufypy5dpx93o.adom.cloud/static/libraries/ws2812b-2020/WS2812B-2020.html</code>+  <button class="open-full-btn" id="copyFullUrl" style="margin-left:8px">Copy Link</button>+</div>+<script>+if(window.self!==window.top){document.getElementById('fullPageBanner').style.display='flex'}+document.getElementById('copyFullUrl').addEventListener('click',function(){var t=document.createElement('textarea');t.value='https://wiki-ufypy5dpx93o.adom.cloud/static/libraries/ws2812b-2020/WS2812B-2020.html';document.body.appendChild(t);t.select();document.execCommand('copy');document.body.removeChild(t);this.textContent='Copied!';var b=this;setTimeout(function(){b.textContent='Copy Link'},1500)});+</script>++<div class="header">+  <div class="header-top">+    <div class="brand">Adom</div>+    <div class="vsep"></div>+    <div class="crumb">Components &rsaquo; LEDs &rsaquo; Addressable RGB</div>+  </div>+  <h1>WS2812B-2020 &mdash; <span class="val">Addressable RGB</span></h1>+  <div class="subtitle">Worldsemi &middot; Intelligent Control LED &middot; 2020 (2.0 &times; 2.0mm) &middot; Built-in IC + RGB dies</div>+  <div class="tags">+    <span class="tag pkg">2020</span>+    <span class="tag mfr">Worldsemi</span>+    <span class="tag series">WS2812B</span>+    <span class="tag rohs">RoHS</span>+    <span class="tag app">Addressable RGB</span>+  </div>+</div>++<div class="container">++  <!-- Key Specs -->+  <div class="section">+    <div class="spec-cards">+      <div class="spec-card highlight">+        <div class="sc-label">VDD</div>+        <div class="sc-value">5V</div>+        <div class="sc-detail">3.7-5.3V range</div>+      </div>+      <div class="spec-card">+        <div class="sc-label">Protocol</div>+        <div class="sc-value" style="font-size:16px">NRZ</div>+        <div class="sc-detail">800Kbps single-wire</div>+      </div>+      <div class="spec-card">+        <div class="sc-label">Colors</div>+        <div class="sc-value" style="font-size:16px">16.7M</div>+        <div class="sc-detail">24-bit (8 per ch)</div>+      </div>+      <div class="spec-card">+        <div class="sc-label">Refresh</div>+        <div class="sc-value" style="font-size:18px">2KHz</div>+        <div class="sc-detail">No flicker</div>+      </div>+      <div class="spec-card">+        <div class="sc-label">Cascade</div>+        <div class="sc-value" style="font-size:16px">1024+</div>+        <div class="sc-detail">@ 30fps</div>+      </div>+      <div class="spec-card">+        <div class="sc-label">Package</div>+        <div class="sc-value" style="font-size:16px">2020</div>+        <div class="sc-detail">2.0&times;2.0&times;0.84mm</div>+      </div>+    </div>+  </div>++  <div class="grid-2">+    <!-- Left column -->+    <div>+      <!-- IC & Electrical Characteristics -->+      <div class="section">+        <h2 class="section-title">IC &amp; Electrical Characteristics</h2>+        <div class="card">+          <table class="detail-table">+            <tr><td>Supply Voltage (VDD)</td><td>3.7&ndash;5.3V (rated 5V)</td></tr>+            <tr><td>Rated VDD Range</td><td>+3.7V to +5.3V</td></tr>+            <tr><td>Input Current (DI)</td><td>&plusmn;1&mu;A max</td></tr>+            <tr><td>Logic High (VIH)</td><td>0.65&times;VDD to VDD+0.7V</td></tr>+            <tr><td>Logic Low (VIL)</td><td>&minus;0.3V to 0.7V</td></tr>+            <tr><td>Data Rate</td><td>800 Kbps (NRZ)</td></tr>+            <tr><td>PWM Frequency</td><td>2 KHz</td></tr>+            <tr><td>Color Depth</td><td>24-bit (8 per R/G/B)</td></tr>+            <tr><td>Reset Time</td><td>&gt;280&mu;s</td></tr>+            <tr><td>Max Cascade</td><td>1024 pixels @ 30fps</td></tr>+          </table>+        </div>+      </div>++      <!-- LED Characteristics -->+      <div class="section">+        <h2 class="section-title">LED Characteristics @ VDD=5V</h2>+        <div class="card">+          <table class="detail-table">+            <tr><td>Red Luminous Intensity</td><td style="color:#DC143C">200 mcd @ 12mA</td></tr>+            <tr><td>Red Wavelength</td><td style="color:#DC143C">620&ndash;625nm</td></tr>+            <tr><td>Green Luminous Intensity</td><td style="color:#32CD32">520 mcd @ 12mA</td></tr>+            <tr><td>Green Wavelength</td><td style="color:#32CD32">515&ndash;520nm</td></tr>+            <tr><td>Blue Luminous Intensity</td><td style="color:#4169E1">160 mcd @ 12mA</td></tr>+            <tr><td>Blue Wavelength</td><td style="color:#4169E1">465&ndash;470nm</td></tr>+            <tr><td>White (all on)</td><td>CIE x=0.21, y=0.23</td></tr>+            <tr><td>White CCT</td><td>~25000K (very cool)</td></tr>+            <tr><td>White Current</td><td>36mA (12mA &times; 3)</td></tr>+          </table>+        </div>+      </div>+    </div>++    <!-- Right column -->+    <div>+      <!-- Pin Configuration -->+      <div class="section">+        <h2 class="section-title">Pin Configuration</h2>+        <div class="card" style="text-align:center">+          <svg width="100%" height="240" viewBox="0 0 400 240">+            <!-- IC body -->+            <rect x="120" y="40" width="160" height="160" rx="8" fill="#1c2128" stroke="#30363d" stroke-width="2"/>+            <!-- Pin 1 indicator -->+            <circle cx="140" cy="60" r="4" fill="#484f58"/>++            <!-- RGB dies inside -->+            <rect x="155" y="80" width="30" height="30" rx="3" fill="rgba(220,20,60,0.3)" stroke="#DC143C" stroke-width="1"/>+            <text x="170" y="100" fill="#DC143C" font-size="10" text-anchor="middle">R</text>+            <rect x="195" y="80" width="30" height="30" rx="3" fill="rgba(50,205,50,0.3)" stroke="#32CD32" stroke-width="1"/>+            <text x="210" y="100" fill="#32CD32" font-size="10" text-anchor="middle">G</text>+            <rect x="235" y="80" width="30" height="30" rx="3" fill="rgba(65,105,225,0.3)" stroke="#4169E1" stroke-width="1"/>+            <text x="250" y="100" fill="#4169E1" font-size="10" text-anchor="middle">B</text>++            <!-- IC block -->+            <rect x="165" y="125" width="70" height="35" rx="3" fill="rgba(0,184,176,0.1)" stroke="#00b8b0" stroke-width="1"/>+            <text x="200" y="147" fill="#00b8b0" font-size="9" text-anchor="middle">WS2812B IC</text>++            <!-- Pin 1: DO (top-left) -->+            <line x1="120" y1="70" x2="80" y2="70" stroke="#e6edf3" stroke-width="1.5"/>+            <circle cx="80" cy="70" r="3" fill="#e6edf3"/>+            <text x="72" y="66" fill="#8b949e" font-size="10" text-anchor="end">1</text>+            <text x="72" y="78" fill="#d29922" font-size="10" text-anchor="end">DO</text>++            <!-- Pin 2: GND (bottom-left) -->+            <line x1="120" y1="170" x2="80" y2="170" stroke="#e6edf3" stroke-width="1.5"/>+            <circle cx="80" cy="170" r="3" fill="#e6edf3"/>+            <text x="72" y="166" fill="#8b949e" font-size="10" text-anchor="end">2</text>+            <text x="72" y="178" fill="#8b949e" font-size="10" text-anchor="end">GND</text>++            <!-- Pin 3: DI (bottom-right) -->+            <line x1="280" y1="170" x2="320" y2="170" stroke="#e6edf3" stroke-width="1.5"/>+            <circle cx="320" cy="170" r="3" fill="#e6edf3"/>+            <text x="328" y="166" fill="#8b949e" font-size="10">3</text>+            <text x="328" y="178" fill="#3fb950" font-size="10">DI</text>++            <!-- Pin 4: VDD (top-right) -->+            <line x1="280" y1="70" x2="320" y2="70" stroke="#e6edf3" stroke-width="1.5"/>+            <circle cx="320" cy="70" r="3" fill="#e6edf3"/>+            <text x="328" y="66" fill="#8b949e" font-size="10">4</text>+            <text x="328" y="78" fill="#f85149" font-size="10">VDD</text>++            <!-- Title -->+            <text x="200" y="25" fill="#e6edf3" font-size="11" text-anchor="middle" font-weight="bold">WS2812B-2020 (Top View)</text>+            <!-- Bottom note -->+            <text x="200" y="225" fill="#484f58" font-size="9" text-anchor="middle">4-pin QFN-like &middot; 2.0 &times; 2.0 &times; 0.84mm</text>+          </svg>+        </div>+      </div>+    </div>+  </div>++  <!-- Data Protocol Timing Diagram -->+  <div class="section">+    <h2 class="section-title">NRZ Data Protocol Timing</h2>+    <div class="chart-wrap">+      <h3>Single-Wire NRZ Encoding &mdash; 800Kbps</h3>+      <svg width="100%" height="280" viewBox="0 0 700 280">+        <rect x="30" y="10" width="640" height="260" fill="#0d1117" rx="4"/>++        <!-- 0-code waveform -->+        <text x="50" y="40" fill="#e6edf3" font-size="11" font-weight="bold">0 Code:</text>+        <line x1="120" y1="80" x2="120" y2="45" stroke="#3fb950" stroke-width="2.5"/>+        <line x1="120" y1="45" x2="220" y2="45" stroke="#3fb950" stroke-width="2.5"/>+        <line x1="220" y1="45" x2="220" y2="80" stroke="#3fb950" stroke-width="2.5"/>+        <line x1="220" y1="80" x2="420" y2="80" stroke="#3fb950" stroke-width="2.5"/>+        <!-- T0H -->+        <line x1="120" y1="90" x2="220" y2="90" stroke="#d29922" stroke-width="0.5"/>+        <line x1="120" y1="86" x2="120" y2="94" stroke="#d29922" stroke-width="0.5"/>+        <line x1="220" y1="86" x2="220" y2="94" stroke="#d29922" stroke-width="0.5"/>+        <text x="170" y="105" fill="#d29922" font-size="9" text-anchor="middle">T0H: 220-380ns</text>+        <!-- T0L -->+        <line x1="220" y1="90" x2="420" y2="90" stroke="#58a6ff" stroke-width="0.5"/>+        <line x1="420" y1="86" x2="420" y2="94" stroke="#58a6ff" stroke-width="0.5"/>+        <text x="320" y="105" fill="#58a6ff" font-size="9" text-anchor="middle">T0L: 580ns-1&mu;s</text>+        <!-- Period -->+        <text x="560" y="68" fill="#484f58" font-size="9" text-anchor="middle">&ge;1.25&mu;s total</text>++        <!-- 1-code waveform -->+        <text x="50" y="140" fill="#e6edf3" font-size="11" font-weight="bold">1 Code:</text>+        <line x1="120" y1="180" x2="120" y2="145" stroke="#8C6BF7" stroke-width="2.5"/>+        <line x1="120" y1="145" x2="330" y2="145" stroke="#8C6BF7" stroke-width="2.5"/>+        <line x1="330" y1="145" x2="330" y2="180" stroke="#8C6BF7" stroke-width="2.5"/>+        <line x1="330" y1="180" x2="420" y2="180" stroke="#8C6BF7" stroke-width="2.5"/>+        <!-- T1H -->+        <line x1="120" y1="190" x2="330" y2="190" stroke="#d29922" stroke-width="0.5"/>+        <line x1="120" y1="186" x2="120" y2="194" stroke="#d29922" stroke-width="0.5"/>+        <line x1="330" y1="186" x2="330" y2="194" stroke="#d29922" stroke-width="0.5"/>+        <text x="225" y="205" fill="#d29922" font-size="9" text-anchor="middle">T1H: 580ns-1&mu;s</text>+        <!-- T1L -->+        <line x1="330" y1="190" x2="420" y2="190" stroke="#58a6ff" stroke-width="0.5"/>+        <line x1="420" y1="186" x2="420" y2="194" stroke="#58a6ff" stroke-width="0.5"/>+        <text x="375" y="205" fill="#58a6ff" font-size="9" text-anchor="middle">T1L: 580ns-1&mu;s</text>++        <!-- Reset -->+        <text x="50" y="238" fill="#e6edf3" font-size="11" font-weight="bold">Reset:</text>+        <line x1="120" y1="245" x2="500" y2="245" stroke="#f85149" stroke-width="2.5"/>+        <text x="310" y="260" fill="#f85149" font-size="9" text-anchor="middle">RES: &gt;280&mu;s low</text>++        <!-- High/Low labels -->+        <text x="110" y="48" fill="#3fb950" font-size="8" text-anchor="end">HIGH</text>+        <text x="110" y="83" fill="#3fb950" font-size="8" text-anchor="end">LOW</text>+        <text x="110" y="148" fill="#8C6BF7" font-size="8" text-anchor="end">HIGH</text>+        <text x="110" y="183" fill="#8C6BF7" font-size="8" text-anchor="end">LOW</text>++        <!-- Data format -->+        <rect x="470" y="30" width="180" height="90" rx="4" fill="rgba(0,184,176,0.08)" stroke="rgba(0,184,176,0.2)" stroke-width="0.5"/>+        <text x="560" y="50" fill="#00b8b0" font-size="10" text-anchor="middle" font-weight="bold">24-bit Frame</text>+        <text x="560" y="68" fill="#32CD32" font-size="9" text-anchor="middle">G7..G0 (8 bits)</text>+        <text x="560" y="82" fill="#DC143C" font-size="9" text-anchor="middle">R7..R0 (8 bits)</text>+        <text x="560" y="96" fill="#4169E1" font-size="9" text-anchor="middle">B7..B0 (8 bits)</text>+        <text x="560" y="112" fill="#484f58" font-size="8" text-anchor="middle">MSB first per channel</text>+      </svg>+      <div class="chart-note">Single-wire NRZ protocol at 800Kbps. Each bit is encoded by the ratio of high/low time within a 1.25&mu;s period. A reset pulse (&gt;280&mu;s low) latches data. Frame order is G-R-B, MSB first.</div>+    </div>+  </div>++  <!-- Cascade / Daisy Chain Diagram -->+  <div class="section">+    <h2 class="section-title">Cascade / Daisy-Chain Topology</h2>+    <div class="chart-wrap">+      <h3>DI&rarr;DO chaining &mdash; up to 1024+ pixels</h3>+      <svg width="100%" height="180" viewBox="0 0 700 180">+        <rect x="10" y="10" width="680" height="160" fill="#0d1117" rx="4"/>++        <!-- MCU -->+        <rect x="30" y="55" width="70" height="60" rx="4" fill="rgba(0,184,176,0.12)" stroke="#00b8b0" stroke-width="1.5"/>+        <text x="65" y="80" fill="#00b8b0" font-size="10" text-anchor="middle">MCU</text>+        <text x="65" y="95" fill="#484f58" font-size="8" text-anchor="middle">GPIO</text>++        <!-- Arrow MCU to LED1 -->+        <line x1="100" y1="85" x2="150" y2="85" stroke="#3fb950" stroke-width="1.5"/>+        <polygon points="150,85 145,81 145,89" fill="#3fb950"/>+        <text x="125" y="78" fill="#3fb950" font-size="8" text-anchor="middle">DIN</text>++        <!-- LED 1 -->+        <rect x="155" y="50" width="80" height="70" rx="6" fill="rgba(220,20,60,0.08)" stroke="#DC143C" stroke-width="1"/>+        <text x="195" y="72" fill="#e6edf3" font-size="9" text-anchor="middle" font-weight="bold">LED #0</text>+        <rect x="170" y="82" width="14" height="14" rx="2" fill="rgba(220,20,60,0.3)" stroke="#DC143C" stroke-width="0.5"/>+        <rect x="188" y="82" width="14" height="14" rx="2" fill="rgba(50,205,50,0.3)" stroke="#32CD32" stroke-width="0.5"/>+        <rect x="206" y="82" width="14" height="14" rx="2" fill="rgba(65,105,225,0.3)" stroke="#4169E1" stroke-width="0.5"/>+        <text x="168" y="112" fill="#3fb950" font-size="7">DI</text>+        <text x="218" y="112" fill="#d29922" font-size="7">DO</text>++        <!-- Arrow LED1 to LED2 -->+        <line x1="235" y1="85" x2="285" y2="85" stroke="#d29922" stroke-width="1.5"/>+        <polygon points="285,85 280,81 280,89" fill="#d29922"/>++        <!-- LED 2 -->+        <rect x="290" y="50" width="80" height="70" rx="6" fill="rgba(50,205,50,0.08)" stroke="#32CD32" stroke-width="1"/>+        <text x="330" y="72" fill="#e6edf3" font-size="9" text-anchor="middle" font-weight="bold">LED #1</text>+        <rect x="305" y="82" width="14" height="14" rx="2" fill="rgba(220,20,60,0.3)" stroke="#DC143C" stroke-width="0.5"/>+        <rect x="323" y="82" width="14" height="14" rx="2" fill="rgba(50,205,50,0.3)" stroke="#32CD32" stroke-width="0.5"/>+        <rect x="341" y="82" width="14" height="14" rx="2" fill="rgba(65,105,225,0.3)" stroke="#4169E1" stroke-width="0.5"/>+        <text x="303" y="112" fill="#3fb950" font-size="7">DI</text>+        <text x="353" y="112" fill="#d29922" font-size="7">DO</text>++        <!-- Arrow LED2 to LED3 -->+        <line x1="370" y1="85" x2="420" y2="85" stroke="#d29922" stroke-width="1.5"/>+        <polygon points="420,85 415,81 415,89" fill="#d29922"/>++        <!-- LED 3 -->+        <rect x="425" y="50" width="80" height="70" rx="6" fill="rgba(65,105,225,0.08)" stroke="#4169E1" stroke-width="1"/>+        <text x="465" y="72" fill="#e6edf3" font-size="9" text-anchor="middle" font-weight="bold">LED #2</text>+        <rect x="440" y="82" width="14" height="14" rx="2" fill="rgba(220,20,60,0.3)" stroke="#DC143C" stroke-width="0.5"/>+        <rect x="458" y="82" width="14" height="14" rx="2" fill="rgba(50,205,50,0.3)" stroke="#32CD32" stroke-width="0.5"/>+        <rect x="476" y="82" width="14" height="14" rx="2" fill="rgba(65,105,225,0.3)" stroke="#4169E1" stroke-width="0.5"/>++        <!-- Dots -->+        <line x1="505" y1="85" x2="530" y2="85" stroke="#d29922" stroke-width="1.5"/>+        <circle cx="545" cy="85" r="2" fill="#484f58"/>+        <circle cx="560" cy="85" r="2" fill="#484f58"/>+        <circle cx="575" cy="85" r="2" fill="#484f58"/>++        <!-- LED N -->+        <rect x="590" y="55" width="70" height="60" rx="6" fill="rgba(140,107,247,0.08)" stroke="#8C6BF7" stroke-width="1"/>+        <text x="625" y="80" fill="#e6edf3" font-size="9" text-anchor="middle" font-weight="bold">LED #N</text>+        <text x="625" y="95" fill="#484f58" font-size="8" text-anchor="middle">N &le; 1024</text>++        <!-- VDD/GND bus -->+        <line x1="155" y1="140" x2="660" y2="140" stroke="#f85149" stroke-width="1" stroke-dasharray="4,2"/>+        <text x="140" y="143" fill="#f85149" font-size="8" text-anchor="end">VDD (5V)</text>+        <line x1="155" y1="152" x2="660" y2="152" stroke="#484f58" stroke-width="1" stroke-dasharray="4,2"/>+        <text x="140" y="155" fill="#484f58" font-size="8" text-anchor="end">GND</text>+      </svg>+      <div class="chart-note">Each LED consumes its 24-bit frame (GRB) and passes remaining data from DO to the next LED's DI. After all data is sent, a &gt;280&mu;s reset pulse latches values. Up to 1024 LEDs at 30fps.</div>+    </div>+  </div>++  <!-- Per-Channel Brightness Bar Chart -->+  <div class="section">+    <h2 class="section-title">Per-Channel Brightness @ 12mA</h2>+    <div class="chart-wrap">+      <h3>Luminous Intensity by Color Channel</h3>+      <svg width="100%" height="250" viewBox="0 0 500 250">+        <rect x="60" y="10" width="380" height="190" fill="#0d1117" rx="4"/>+        <!-- Grid -->+        <line x1="60" y1="200" x2="440" y2="200" stroke="#21262d" stroke-width="1"/>+        <line x1="60" y1="10" x2="60" y2="200" stroke="#21262d" stroke-width="1"/>+        <line x1="60" y1="162" x2="440" y2="162" stroke="#21262d" stroke-width="0.5" stroke-dasharray="4,4"/>+        <line x1="60" y1="124" x2="440" y2="124" stroke="#21262d" stroke-width="0.5" stroke-dasharray="4,4"/>+        <line x1="60" y1="86" x2="440" y2="86" stroke="#21262d" stroke-width="0.5" stroke-dasharray="4,4"/>+        <line x1="60" y1="48" x2="440" y2="48" stroke="#21262d" stroke-width="0.5" stroke-dasharray="4,4"/>+        <line x1="60" y1="10" x2="440" y2="10" stroke="#21262d" stroke-width="0.5" stroke-dasharray="4,4"/>++        <!-- Red bar: 200 mcd => height = 200/700 * 190 = 54 -->+        <rect x="100" y="146" width="60" height="54" rx="3" fill="rgba(220,20,60,0.6)" stroke="#DC143C" stroke-width="1"/>+        <text x="130" y="139" fill="#DC143C" font-size="12" text-anchor="middle" font-weight="bold">200</text>+        <text x="130" y="218" fill="#DC143C" font-size="10" text-anchor="middle">Red</text>+        <text x="130" y="230" fill="#484f58" font-size="8" text-anchor="middle">620-625nm</text>++        <!-- Green bar: 520 mcd => height = 520/700 * 190 = 141 -->+        <rect x="220" y="59" width="60" height="141" rx="3" fill="rgba(50,205,50,0.6)" stroke="#32CD32" stroke-width="1"/>+        <text x="250" y="52" fill="#32CD32" font-size="12" text-anchor="middle" font-weight="bold">520</text>+        <text x="250" y="218" fill="#32CD32" font-size="10" text-anchor="middle">Green</text>+        <text x="250" y="230" fill="#484f58" font-size="8" text-anchor="middle">515-520nm</text>++        <!-- Blue bar: 160 mcd => height = 160/700 * 190 = 43 -->+        <rect x="340" y="157" width="60" height="43" rx="3" fill="rgba(65,105,225,0.6)" stroke="#4169E1" stroke-width="1"/>+        <text x="370" y="150" fill="#4169E1" font-size="12" text-anchor="middle" font-weight="bold">160</text>+        <text x="370" y="218" fill="#4169E1" font-size="10" text-anchor="middle">Blue</text>+        <text x="370" y="230" fill="#484f58" font-size="8" text-anchor="middle">465-470nm</text>++        <!-- Y axis -->+        <text x="55" y="203" fill="#484f58" font-size="9" text-anchor="end">0</text>+        <text x="55" y="165" fill="#484f58" font-size="9" text-anchor="end">140</text>+        <text x="55" y="127" fill="#484f58" font-size="9" text-anchor="end">280</text>+        <text x="55" y="89" fill="#484f58" font-size="9" text-anchor="end">420</text>+        <text x="55" y="51" fill="#484f58" font-size="9" text-anchor="end">560</text>+        <text x="55" y="13" fill="#484f58" font-size="9" text-anchor="end">700</text>+        <text x="15" y="110" fill="#484f58" font-size="9" text-anchor="middle" transform="rotate(-90,15,110)">Iv (mcd)</text>++        <text x="250" y="248" fill="#484f58" font-size="9" text-anchor="middle">All channels @ I<tspan baseline-shift="sub" font-size="7">f</tspan> = 12mA, VDD = 5V</text>+      </svg>+      <div class="chart-note">Green channel is brightest at 520 mcd, followed by red at 200 mcd and blue at 160 mcd. This reflects typical human eye sensitivity (scotopic peak ~507nm). Green dominates perceived brightness in color mixing.</div>+    </div>+  </div>++  <!-- RGB Color Mixer -->+  <div class="section">+    <h2 class="section-title">RGB Color Mixer &amp; Power Calculator</h2>+    <div class="mixer-card">+      <h3>&#127912; 24-bit Color Picker</h3>+      <div class="mixer-sliders">+        <div class="mixer-slider">+          <label style="color:#DC143C">Red</label>+          <input type="range" id="mix-r" min="0" max="255" value="255" style="background:linear-gradient(90deg,#000,#DC143C)">+          <div class="val" id="mix-r-val" style="color:#DC143C">255</div>+        </div>+        <div class="mixer-slider">+          <label style="color:#32CD32">Green</label>+          <input type="range" id="mix-g" min="0" max="255" value="128" style="background:linear-gradient(90deg,#000,#32CD32)">+          <div class="val" id="mix-g-val" style="color:#32CD32">128</div>+        </div>+        <div class="mixer-slider">+          <label style="color:#4169E1">Blue</label>+          <input type="range" id="mix-b" min="0" max="255" value="0" style="background:linear-gradient(90deg,#000,#4169E1)">+          <div class="val" id="mix-b-val" style="color:#4169E1">0</div>+        </div>+      </div>+      <div class="mixer-preview" id="mix-preview" style="background-color:rgb(255,128,0); box-shadow: 0 4px 30px rgba(255,128,0,0.4);">+        <span id="mix-preview-text" style="font-size:24px;font-weight:700;font-family:'Familjen Grotesk',sans-serif;text-shadow:0 2px 8px rgba(0,0,0,0.5)"></span>+      </div>+      <div class="mixer-results">+        <div class="mixer-result">+          <div class="mr-label">Hex Code</div>+          <div class="mr-value" id="mix-hex">#FF8000</div>+          <div class="mr-detail" id="mix-grb">GRB: 0x80FF00</div>+        </div>+        <div class="mixer-result">+          <div class="mr-label">Power @ 5V</div>+          <div class="mr-value" id="mix-power">90.0 mW</div>+          <div class="mr-detail" id="mix-current">18.0 mA total</div>+        </div>+        <div class="mixer-result">+          <div class="mr-label">24-bit Data</div>+          <div class="mr-value" id="mix-binary" style="font-size:11px;word-break:break-all">10000000 11111111 00000000</div>+          <div class="mr-detail">G R B (MSB first)</div>+        </div>+      </div>+    </div>+  </div>++  <!-- Symbol, Footprint & 3D Model -->  <!-- Symbol, Footprint & 3D View -->+  <div class="section">+    <h2 class="section-title">Symbol, Footprint &amp; 3D Model</h2>+    <div class="grid-2" style="margin-bottom:12px">+      <!-- Interactive SymView -->+      <div class="card" style="padding:0;overflow:hidden">+        <div style="font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-dim);padding:12px 16px 0">Schematic Symbol</div>+        <iframe src="WS2812B-2020-symview.html" style="width:100%;height:340px;border:none;display:block" allow="fullscreen"></iframe>+      </div>+      <!-- Interactive FpView -->+      <div class="card" style="padding:0;overflow:hidden">+        <div style="font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-dim);padding:12px 16px 0">Footprint (2020)</div>+        <iframe src="WS2812B-2020-fpview.html" style="width:100%;height:340px;border:none;display:block" allow="fullscreen"></iframe>+      </div>+    </div>+    <!-- 3D Model -->+    <div class="card" style="text-align:center;margin-bottom:12px">+      <div style="font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-dim);margin-bottom:12px">3D Model (interactive)</div>+      <canvas id="viewer3d" width="600" height="300" style="width:100%;height:300px;border-radius:4px;cursor:grab"></canvas>+      <div style="font-size:10px;color:var(--text-dim);margin-top:6px">Click &amp; drag to rotate &middot; Scroll to zoom</div>+    </div>+    <!-- Download / Export Bar -->+    <div class="card" style="display:flex;align-items:center;gap:10px;flex-wrap:wrap">+      <span style="font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px">Export:</span>+      <a class="dl-btn" href="https://wiki-ufypy5dpx93o.adom.cloud/static/libraries/ws2812b-2020/WS2812B-2020.kicad_sym" download>KiCad Symbol (.kicad_sym)</a>+      <a class="dl-btn" href="https://wiki-ufypy5dpx93o.adom.cloud/static/libraries/ws2812b-2020/WS2812B-2020.kicad_mod" download>KiCad Footprint (.kicad_mod)</a>+      <a class="dl-btn" href="https://wiki-ufypy5dpx93o.adom.cloud/static/libraries/ws2812b-2020/WS2812B-2020.lbr" download>Fusion 360 (.lbr)</a>+      <a class="dl-btn" href="https://wiki-ufypy5dpx93o.adom.cloud/static/libraries/ws2812b-2020/WS2812B-2020.step" download>3D Model (.step)</a>+    </div>+  </div>++  <!-- Documents -->+  <div class="section">+    <h2 class="section-title">Documents</h2>+    <div class="card">+      <table class="detail-table">+        <tr><td>Datasheet</td><td><a href="https://www.mouser.com/datasheet/2/744/WS2812B_2020-3024288.pdf" target="_blank">WS2812B-2020 Datasheet (PDF) &rarr;</a></td></tr>+        <tr><td>Series</td><td>WS2812B</td></tr>+        <tr><td>Manufacturer</td><td>Worldsemi</td></tr>+      </table>+    </div>+  </div>++  <div class="source">+    WS2812B-2020 characterization &middot; Data from Worldsemi WS2812B-2020 datasheet &middot; 2026-06-03+  </div>++</div>++<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>+<script src="https://cdn.jsdelivr.net/npm/[email protected]/examples/js/pmrem/PMREMGenerator.js"></script>+<script>+(function() {+  // ==================== RGB Color Mixer ====================+  var sliderR = document.getElementById('mix-r');+  var sliderG = document.getElementById('mix-g');+  var sliderB = document.getElementById('mix-b');++  function updateMixer() {+    var r = parseInt(sliderR.value);+    var g = parseInt(sliderG.value);+    var b = parseInt(sliderB.value);++    document.getElementById('mix-r-val').textContent = r;+    document.getElementById('mix-g-val').textContent = g;+    document.getElementById('mix-b-val').textContent = b;++    var hex = '#' + r.toString(16).padStart(2,'0').toUpperCase() ++                    g.toString(16).padStart(2,'0').toUpperCase() ++                    b.toString(16).padStart(2,'0').toUpperCase();+    var grb = '0x' + g.toString(16).padStart(2,'0').toUpperCase() ++                     r.toString(16).padStart(2,'0').toUpperCase() ++                     b.toString(16).padStart(2,'0').toUpperCase();++    var preview = document.getElementById('mix-preview');+    preview.style.backgroundColor = 'rgb(' + r + ',' + g + ',' + b + ')';+    preview.style.boxShadow = '0 4px 30px rgba(' + r + ',' + g + ',' + b + ',0.4)';++    // Text color: dark on bright backgrounds+    var lum = (0.299 * r + 0.587 * g + 0.114 * b);+    var textEl = document.getElementById('mix-preview-text');+    textEl.style.color = lum > 128 ? '#111' : '#fff';+    textEl.textContent = hex;++    document.getElementById('mix-hex').textContent = hex;+    document.getElementById('mix-grb').textContent = 'GRB: ' + grb;++    // Power: each channel draws up to 12mA at 255, linear+    var iR = (r / 255) * 12;+    var iG = (g / 255) * 12;+    var iB = (b / 255) * 12;+    var iTotal = iR + iG + iB;+    var pTotal = 5.0 * iTotal; // mW++    document.getElementById('mix-power').textContent = pTotal.toFixed(1) + ' mW';+    document.getElementById('mix-current').textContent = iTotal.toFixed(1) + ' mA total';++    // Binary+    var binG = g.toString(2).padStart(8, '0');+    var binR = r.toString(2).padStart(8, '0');+    var binB = b.toString(2).padStart(8, '0');+    document.getElementById('mix-binary').textContent = binG + ' ' + binR + ' ' + binB;+  }++  sliderR.addEventListener('input', updateMixer);+  sliderG.addEventListener('input', updateMixer);+  sliderB.addEventListener('input', updateMixer);+  updateMixer();++  // ==================== 3D Viewer — WS2812B-2020 ====================+  var canvas = document.getElementById('viewer3d');+  if (canvas && window.THREE) {+    var scene = new THREE.Scene();+    var renderer = new THREE.WebGLRenderer({ canvas: canvas, antialias: true, alpha: true, logarithmicDepthBuffer: true });+    renderer.setSize(canvas.width, canvas.height);+    renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));+    renderer.outputEncoding = THREE.sRGBEncoding;+    renderer.toneMapping = THREE.ACESFilmicToneMapping;+    renderer.toneMappingExposure = 1.2;+    renderer.physicallyCorrectLights = true;+    canvas.style.background = 'linear-gradient(180deg, #5a6b7e 0%, #2a3340 100%)';++    var camera = new THREE.PerspectiveCamera(35, canvas.width / canvas.height, 0.01, 1000);++    var pmremGen = new THREE.PMREMGenerator(renderer);+    pmremGen.compileEquirectangularShader();+    var envScene2 = new THREE.Scene();+    envScene2.background = new THREE.Color(0x3a4550);+    var el1 = new THREE.DirectionalLight(0xffffff, 2); el1.position.set(1, 3, 2); envScene2.add(el1);+    var el2 = new THREE.DirectionalLight(0x8899bb, 1); el2.position.set(-2, 1, -1); envScene2.add(el2);+    scene.environment = pmremGen.fromScene(envScene2, 0.04).texture;++    scene.add(new THREE.HemisphereLight(0xe6edf3, 0xb3a699, 0.5));+    var kl = new THREE.DirectionalLight(0xffffff, 1.5); kl.position.set(2, 5, 3); scene.add(kl);+    var fl = new THREE.DirectionalLight(0x8899aa, 0.5); fl.position.set(-3, 2, -2); scene.add(fl);++    var S = 1.2;+    var bodyW = 2.0, bodyD = 2.0, bodyH = 0.84;+    var windowH = 0.2;++    // White body+    var bodyMat = new THREE.MeshStandardMaterial({ color: 0xe8e8e0, metalness: 0.0, roughness: 0.35 });+    var body = new THREE.Mesh(new THREE.BoxGeometry(bodyW*S, (bodyH-windowH)*S, bodyD*S), bodyMat);+    body.position.y = (bodyH-windowH)*S/2; scene.add(body);++    // Translucent window on top+    var windowMat = new THREE.MeshStandardMaterial({+      color: 0xffffff, metalness: 0.0, roughness: 0.1,+      transparent: true, opacity: 0.4+    });+    var win = new THREE.Mesh(new THREE.BoxGeometry(bodyW*0.7*S, windowH*S, bodyD*0.7*S), windowMat);+    win.position.y = (bodyH - windowH/2)*S; scene.add(win);++    // RGB dies visible through window+    var rDie = new THREE.Mesh(new THREE.BoxGeometry(0.3*S, 0.05*S, 0.3*S),+      new THREE.MeshStandardMaterial({ color: 0xDC143C, emissive: 0xDC143C, emissiveIntensity: 0.8 }));+    rDie.position.set(-0.35*S, (bodyH-windowH+0.03)*S, 0); scene.add(rDie);++    var gDie = new THREE.Mesh(new THREE.BoxGeometry(0.3*S, 0.05*S, 0.3*S),+      new THREE.MeshStandardMaterial({ color: 0x32CD32, emissive: 0x32CD32, emissiveIntensity: 0.8 }));+    gDie.position.set(0, (bodyH-windowH+0.03)*S, 0); scene.add(gDie);++    var bDie = new THREE.Mesh(new THREE.BoxGeometry(0.3*S, 0.05*S, 0.3*S),+      new THREE.MeshStandardMaterial({ color: 0x4169E1, emissive: 0x4169E1, emissiveIntensity: 0.8 }));+    bDie.position.set(0.35*S, (bodyH-windowH+0.03)*S, 0); scene.add(bDie);++    // 4 pads+    var padMat = new THREE.MeshStandardMaterial({ color: 0xc9a04c, metalness: 1.0, roughness: 0.22 });+    var padSize = 0.5;+    var pOff = 0.55;+    [[-pOff, pOff], [pOff, pOff], [-pOff, -pOff], [pOff, -pOff]].forEach(function(pos) {+      var pad = new THREE.Mesh(new THREE.BoxGeometry(padSize*S, 0.03*S, padSize*S), padMat);+      pad.position.set(pos[0]*S, 0.005*S, pos[1]*S);+      scene.add(pad);+    });++    // PCB+    var pcbMat = new THREE.MeshStandardMaterial({ color: 0x0a2a0a, metalness: 0.0, roughness: 0.6 });+    var pcb = new THREE.Mesh(new THREE.BoxGeometry(10*S, 0.08*S, 8*S), pcbMat);+    pcb.position.y = -0.04*S; scene.add(pcb);++    // Grid+    var gridMat = new THREE.LineBasicMaterial({ color: 0x0d3d0d, transparent: true, opacity: 0.3 });+    for (var i = -8; i <= 8; i++) {+      var p1 = [new THREE.Vector3(i*0.4*S, 0.045*S, -4*S), new THREE.Vector3(i*0.4*S, 0.045*S, 4*S)];+      scene.add(new THREE.Line(new THREE.BufferGeometry().setFromPoints(p1), gridMat));+      var p2 = [new THREE.Vector3(-4*S, 0.045*S, i*0.4*S), new THREE.Vector3(4*S, 0.045*S, i*0.4*S)];+      scene.add(new THREE.Line(new THREE.BufferGeometry().setFromPoints(p2), gridMat));+    }++    var isDragging = false, prevX = 0, prevY = 0;+    var theta = Math.PI/4, phi = Math.PI/5.5, radius = 5.0;+    var target = new THREE.Vector3(0, 0.5, 0);++    function updateCamera() {+      camera.position.x = radius * Math.sin(theta) * Math.cos(phi);+      camera.position.y = radius * Math.sin(phi) + target.y;+      camera.position.z = radius * Math.cos(theta) * Math.cos(phi);+      camera.lookAt(target);+    }+    updateCamera();++    canvas.addEventListener('mousedown', function(e) { isDragging = true; prevX = e.clientX; prevY = e.clientY; canvas.style.cursor = 'grabbing'; });+    window.addEventListener('mouseup', function() { isDragging = false; canvas.style.cursor = 'grab'; });+    canvas.addEventListener('mousemove', function(e) {+      if (!isDragging) return;+      theta -= (e.clientX - prevX) * 0.008;+      phi = Math.max(0.05, Math.min(Math.PI/2.2, phi + (e.clientY - prevY) * 0.008));+      prevX = e.clientX; prevY = e.clientY;+      updateCamera();+    });+    canvas.addEventListener('wheel', function(e) {+      e.preventDefault();+      radius = Math.max(2, Math.min(12, radius + e.deltaY * 0.004));+      updateCamera();+    }, { passive: false });++    function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); }+    animate();+  }+})();+</script>+</body>+</html>\ No newline at end of file
WS2812B-2020.kicad_modadded+19
@@ -0,0 +1,19 @@+(footprint "WS2812B-2020"+  (version 20240108)+  (generator "adom-footprint")+  (layer "F.Cu")+  (descr "Worldsemi · Intelligent Control LED · 2020 (2.0 &times; 2.0mm) · Built-in IC + RGB dies")+  (attr smd)+  (fp_text reference "REF**" (at 0 -2.8)+    (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))+  (fp_text value "WS2812B-2020" (at 0 2.8)+    (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))+  (pad "1" smd roundrect (at -0.75 -0.45) (size 0.7 0.5)+    (layers F.Cu,F.Paste,F.Mask) (roundrect_rratio 0.25))+  (pad "2" smd roundrect (at 0.75 -0.45) (size 0.7 0.5)+    (layers F.Cu,F.Paste,F.Mask) (roundrect_rratio 0.25))+  (pad "3" smd roundrect (at 0.75 0.45) (size 0.7 0.5)+    (layers F.Cu,F.Paste,F.Mask) (roundrect_rratio 0.25))+  (pad "4" smd roundrect (at -0.75 0.45) (size 0.7 0.5)+    (layers F.Cu,F.Paste,F.Mask) (roundrect_rratio 0.25))+)
WS2812B-2020.kicad_symadded+55
@@ -0,0 +1,55 @@+(kicad_symbol_lib+  (version 20231120)+  (generator "adom")+  (symbol "WS2812B-2020"+    (pin_names (offset 1.016))+    (exclude_from_sim no)+    (in_bom yes)+    (on_board yes)+    (property "Reference" "D"+      (at 0 5.08 0)+      (effects (font (size 1.27 1.27)))+    )+    (property "Value" "WS2812B-2020"+      (at 0 -17.97 0)+      (effects (font (size 1.27 1.27)))+    )+    (property "Footprint" "SMD 2.0x2.0mm"+      (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" "Intelligent control LED integrated light source, 2020 package. Built-in IC for single-wire addressable RGB control. 256 brightness levels, 16.7M colors."+      (at 0 0 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (property "Manufacturer" "Worldsemi"+      (at 0 0 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (symbol "WS2812B-2020_0_1"+      (rectangle (start -10.16 2.54) (end 10.16 -15.43)+        (stroke (width 0.254) (type default))+        (fill (type background))+      )+      (text "DATA" (at -9.14 0.00 0)+        (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify left))+      )+      (text "GROUND" (at -9.14 -10.89 0)+        (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify left))+      )+      (text "POWER" (at 9.14 0.00 0)+        (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify right))+      )+    )+    (symbol "WS2812B-2020_1_1"+      (pin output line (at -12.70 -2.00 0) (length 2.54) (name "DOUT") (number "2"))+      (pin input line (at -12.70 -4.54 0) (length 2.54) (name "DIN") (number "4"))+      (pin power_in line (at -12.70 -12.89 0) (length 2.54) (name "VSS") (number "3"))+      (pin power_in line (at 12.70 -2.00 180) (length 2.54) (name "VDD") (number "1"))+    )+  )+)
WS2812B-2020.lbradded+83
@@ -0,0 +1,83 @@+<?xml version="1.0" encoding="utf-8"?>+<!DOCTYPE eagle SYSTEM "eagle.dtd">+<eagle version="9.6.2">+<drawing>+<settings><setting alwaysvectorfont="no"/></settings>+<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.01" altunitdist="inch" altunit="inch"/>+<layers>+<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>+<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>+<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>+<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>+<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>+<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>+<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>+<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>+<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>+<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>+<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>+<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>+<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>+<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>+<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>+<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>+<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>+<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>+<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>+<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>+<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>+<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>+<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>+<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>+<layer number="39" name="tKeepout" color="4" fill="11" visible="no" active="yes"/>+<layer number="40" name="bKeepout" color="1" fill="11" visible="no" active="yes"/>+<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="yes"/>+<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="yes"/>+<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>+<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>+<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>+<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>+<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>+<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>+<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>+<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>+<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>+<layer number="93" name="Pins" color="2" fill="1" visible="no" active="yes"/>+<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>+<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>+<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>+<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>+<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>+</layers>+<library>+<description>WS2812B-2020 — Addressable RGB 2020 — Worldsemi</description>+<packages></packages>+<symbols>+<symbol name="WS2812B-2020">+  <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"/>+  <text x="0" y="5.08" size="1.27" layer="95" align="bottom-center">&gt;NAME</text>+  <text x="0" y="-5.08" size="1.27" layer="96" align="top-center">&gt;VALUE</text>+  <pin name="1" x="0" y="3.81" length="middle" direction="pas" rot="R270"/>+  <pin name="2" x="0" y="-3.81" length="middle" direction="pas" rot="R90"/>+</symbol>+</symbols>+<devicesets>+<deviceset name="WS2812B-2020" prefix="D">+  <description>Addressable RGB 2020 — Worldsemi</description>+  <gates>+    <gate name="G$1" symbol="WS2812B-2020" x="0" y="0"/>+  </gates>+  <devices>+    <device name="">+      <connects/>+      <technologies><technology name=""/></technologies>+    </device>+  </devices>+</deviceset>+</devicesets>+</library>+</drawing>+</eagle>\ No newline at end of file
WS2812B-2020.stepadded+2839
@@ -0,0 +1,2839 @@+ISO-10303-21;+HEADER;+/* LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm.step 3D STEP model for use in ECAD systems+ * Copyright (C) 2019, kicad StepUp+ * + * This work is licensed under the [Creative Commons CC-BY-SA 4.0 License](https://creativecommons.org/licenses/by-sa/4.0/legalcode), + * with the following exception:+ * To the extent that the creation of electronic designs that use 'Licensed Material' can be considered to be 'Adapted Material', + * then the copyright holder waives article 3 of the license with respect to these designs and any generated files which use data provided + * as part of the 'Licensed Material'.+ * You are free to use the library data in your own projects without the obligation to share your project files under this or any other license agreement.+ * However, if you wish to redistribute these libraries, or parts thereof (including in modified form) as a collection then the exception above does not apply. + * Please refer to https://github.com/KiCad/kicad-packages3D/blob/master/LICENSE.md for further clarification of the exception.+ * Disclaimer of Warranties and Limitation of Liability.+ * These libraries are provided in the hope that they will be useful, but are provided without warranty of any kind, express or implied.+ * *USE 3D CAD DATA AT YOUR OWN RISK*+ * *DO NOT RELY UPON ANY INFORMATION FOUND HERE WITHOUT INDEPENDENT VERIFICATION.*+ * + */++FILE_DESCRIPTION(+/* description */ ('model of LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm'),+/* implementation_level */ '2;1');++FILE_NAME(+/* name */ 'LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm.step',+/* time_stamp */ '2019-06-30T11:39:59',+/* author */ ('kicad StepUp','ksu'),+/* organization */ ('FreeCAD'),+/* preprocessor_version */ 'OCC',+/* originating_system */ 'kicad StepUp',+/* authorisation */ '');++FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));+ENDSEC;++DATA;+#1 = APPLICATION_PROTOCOL_DEFINITION('international standard',+'automotive_design',2000,#2);+#2 = APPLICATION_CONTEXT(+'core data for automotive mechanical design processes');+#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);+#4 = PRODUCT_DEFINITION_SHAPE('','',#5);+#5 = PRODUCT_DEFINITION('design','',#6,#9);+#6 = PRODUCT_DEFINITION_FORMATION('','',#7);+#7 = PRODUCT('LED_WS2812B_PLCC4_50x50mm_P32mm',+'LED_WS2812B_PLCC4_50x50mm_P32mm','',(#8));+#8 = PRODUCT_CONTEXT('',#2,'mechanical');+#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');+#10 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#15),#2282);+#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);+#12 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000));+#13 = DIRECTION('',(0.E+000,0.E+000,1.));+#14 = DIRECTION('',(1.,0.E+000,-0.E+000));+#15 = MANIFOLD_SOLID_BREP('',#16);+#16 = CLOSED_SHELL('',(#17,#76,#101,#134,#159,#184,#209,#226,#251,#282,+#322,#453,#577,#594,#603,#614,#782,#813,#844,#875,#960,#984,#1062,+#1093,#1178,#1202,#1280,#1311,#1342,#1373,#1458,#1482,#1560,#1591,+#1676,#1700,#1778,#1795,#1812,#1829,#1846,#1863,#1880,#1897,#1919,+#1931,#1943,#1960,#1972,#1989,#2011,#2023,#2040,#2052,#2064,#2081,+#2098,#2115,#2137,#2149,#2166,#2178,#2190,#2207,#2229,#2241,#2258,+#2270));+#17 = ADVANCED_FACE('',(#18,#29),#71,.T.);+#18 = FACE_BOUND('',#19,.T.);+#19 = EDGE_LOOP('',(#20));+#20 = ORIENTED_EDGE('',*,*,#21,.T.);+#21 = EDGE_CURVE('',#22,#22,#24,.T.);+#22 = VERTEX_POINT('',#23);+#23 = CARTESIAN_POINT('',(-1.966666666667,2.408472038323E-016,1.6));+#24 = CIRCLE('',#25,1.966666666667);+#25 = AXIS2_PLACEMENT_3D('',#26,#27,#28);+#26 = CARTESIAN_POINT('',(0.E+000,0.E+000,1.6));+#27 = DIRECTION('',(0.E+000,0.E+000,-1.));+#28 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#29 = FACE_BOUND('',#30,.T.);+#30 = EDGE_LOOP('',(#31,#41,#49,#57,#65));+#31 = ORIENTED_EDGE('',*,*,#32,.T.);+#32 = EDGE_CURVE('',#33,#35,#37,.T.);+#33 = VERTEX_POINT('',#34);+#34 = CARTESIAN_POINT('',(1.433400076889,-2.425,1.6));+#35 = VERTEX_POINT('',#36);+#36 = CARTESIAN_POINT('',(2.425,-1.433400076889,1.6));+#37 = LINE('',#38,#39);+#38 = CARTESIAN_POINT('',(1.411433085478,-2.446966991411,1.6));+#39 = VECTOR('',#40,1.);+#40 = DIRECTION('',(0.707106781187,0.707106781187,0.E+000));+#41 = ORIENTED_EDGE('',*,*,#42,.T.);+#42 = EDGE_CURVE('',#35,#43,#45,.T.);+#43 = VERTEX_POINT('',#44);+#44 = CARTESIAN_POINT('',(2.425,2.425,1.6));+#45 = LINE('',#46,#47);+#46 = CARTESIAN_POINT('',(2.425,-1.464466094067,1.6));+#47 = VECTOR('',#48,1.);+#48 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#49 = ORIENTED_EDGE('',*,*,#50,.T.);+#50 = EDGE_CURVE('',#43,#51,#53,.T.);+#51 = VERTEX_POINT('',#52);+#52 = CARTESIAN_POINT('',(-2.425,2.425,1.6));+#53 = LINE('',#54,#55);+#54 = CARTESIAN_POINT('',(2.5,2.425,1.6));+#55 = VECTOR('',#56,1.);+#56 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#57 = ORIENTED_EDGE('',*,*,#58,.T.);+#58 = EDGE_CURVE('',#51,#59,#61,.T.);+#59 = VERTEX_POINT('',#60);+#60 = CARTESIAN_POINT('',(-2.425,-2.425,1.6));+#61 = LINE('',#62,#63);+#62 = CARTESIAN_POINT('',(-2.425,2.5,1.6));+#63 = VECTOR('',#64,1.);+#64 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#65 = ORIENTED_EDGE('',*,*,#66,.T.);+#66 = EDGE_CURVE('',#59,#33,#67,.T.);+#67 = LINE('',#68,#69);+#68 = CARTESIAN_POINT('',(-2.5,-2.425,1.6));+#69 = VECTOR('',#70,1.);+#70 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#71 = PLANE('',#72);+#72 = AXIS2_PLACEMENT_3D('',#73,#74,#75);+#73 = CARTESIAN_POINT('',(0.E+000,0.E+000,1.6));+#74 = DIRECTION('',(0.E+000,0.E+000,1.));+#75 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#76 = ADVANCED_FACE('',(#77),#96,.F.);+#77 = FACE_BOUND('',#78,.F.);+#78 = EDGE_LOOP('',(#79,#87,#88,#89));+#79 = ORIENTED_EDGE('',*,*,#80,.F.);+#80 = EDGE_CURVE('',#22,#81,#83,.T.);+#81 = VERTEX_POINT('',#82);+#82 = CARTESIAN_POINT('',(-1.666666666667,2.041077998579E-016,1.3));+#83 = LINE('',#84,#85);+#84 = CARTESIAN_POINT('',(-1.666666666667,2.041077998579E-016,1.3));+#85 = VECTOR('',#86,1.);+#86 = DIRECTION('',(0.707106781187,-8.659560562355E-017,-0.707106781187)+);+#87 = ORIENTED_EDGE('',*,*,#21,.T.);+#88 = ORIENTED_EDGE('',*,*,#80,.T.);+#89 = ORIENTED_EDGE('',*,*,#90,.F.);+#90 = EDGE_CURVE('',#81,#81,#91,.T.);+#91 = CIRCLE('',#92,1.666666666667);+#92 = AXIS2_PLACEMENT_3D('',#93,#94,#95);+#93 = CARTESIAN_POINT('',(0.E+000,0.E+000,1.3));+#94 = DIRECTION('',(0.E+000,0.E+000,-1.));+#95 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#96 = CONICAL_SURFACE('',#97,1.666666666667,0.785398163397);+#97 = AXIS2_PLACEMENT_3D('',#98,#99,#100);+#98 = CARTESIAN_POINT('',(0.E+000,0.E+000,1.3));+#99 = DIRECTION('',(0.E+000,0.E+000,1.));+#100 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#101 = ADVANCED_FACE('',(#102),#129,.T.);+#102 = FACE_BOUND('',#103,.T.);+#103 = EDGE_LOOP('',(#104,#113,#121,#128));+#104 = ORIENTED_EDGE('',*,*,#105,.T.);+#105 = EDGE_CURVE('',#33,#106,#108,.T.);+#106 = VERTEX_POINT('',#107);+#107 = CARTESIAN_POINT('',(1.464466094067,-2.5,1.525));+#108 = ELLIPSE('',#109,8.117941502193E-002,7.5E-002);+#109 = AXIS2_PLACEMENT_3D('',#110,#111,#112);+#110 = CARTESIAN_POINT('',(1.433400076889,-2.425,1.525));+#111 = DIRECTION('',(0.923879532511,0.382683432365,-0.E+000));+#112 = DIRECTION('',(-0.382683432365,0.923879532511,0.E+000));+#113 = ORIENTED_EDGE('',*,*,#114,.T.);+#114 = EDGE_CURVE('',#106,#115,#117,.T.);+#115 = VERTEX_POINT('',#116);+#116 = CARTESIAN_POINT('',(2.5,-1.464466094067,1.525));+#117 = LINE('',#118,#119);+#118 = CARTESIAN_POINT('',(1.464466094067,-2.5,1.525));+#119 = VECTOR('',#120,1.);+#120 = DIRECTION('',(0.707106781187,0.707106781187,0.E+000));+#121 = ORIENTED_EDGE('',*,*,#122,.F.);+#122 = EDGE_CURVE('',#35,#115,#123,.T.);+#123 = ELLIPSE('',#124,8.117941502193E-002,7.5E-002);+#124 = AXIS2_PLACEMENT_3D('',#125,#126,#127);+#125 = CARTESIAN_POINT('',(2.425,-1.433400076889,1.525));+#126 = DIRECTION('',(0.382683432365,0.923879532511,0.E+000));+#127 = DIRECTION('',(0.923879532511,-0.382683432365,0.E+000));+#128 = ORIENTED_EDGE('',*,*,#32,.F.);+#129 = CYLINDRICAL_SURFACE('',#130,7.5E-002);+#130 = AXIS2_PLACEMENT_3D('',#131,#132,#133);+#131 = CARTESIAN_POINT('',(1.411433085478,-2.446966991411,1.525));+#132 = DIRECTION('',(0.707106781187,0.707106781187,0.E+000));+#133 = DIRECTION('',(0.E+000,0.E+000,1.));+#134 = ADVANCED_FACE('',(#135),#154,.T.);+#135 = FACE_BOUND('',#136,.T.);+#136 = EDGE_LOOP('',(#137,#146,#152,#153));+#137 = ORIENTED_EDGE('',*,*,#138,.F.);+#138 = EDGE_CURVE('',#139,#59,#141,.T.);+#139 = VERTEX_POINT('',#140);+#140 = CARTESIAN_POINT('',(-2.5,-2.5,1.525));+#141 = ELLIPSE('',#142,0.106066017178,7.5E-002);+#142 = AXIS2_PLACEMENT_3D('',#143,#144,#145);+#143 = CARTESIAN_POINT('',(-2.425,-2.425,1.525));+#144 = DIRECTION('',(-0.707106781187,0.707106781187,0.E+000));+#145 = DIRECTION('',(-0.707106781187,-0.707106781187,0.E+000));+#146 = ORIENTED_EDGE('',*,*,#147,.T.);+#147 = EDGE_CURVE('',#139,#106,#148,.T.);+#148 = LINE('',#149,#150);+#149 = CARTESIAN_POINT('',(-2.5,-2.5,1.525));+#150 = VECTOR('',#151,1.);+#151 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#152 = ORIENTED_EDGE('',*,*,#105,.F.);+#153 = ORIENTED_EDGE('',*,*,#66,.F.);+#154 = CYLINDRICAL_SURFACE('',#155,7.5E-002);+#155 = AXIS2_PLACEMENT_3D('',#156,#157,#158);+#156 = CARTESIAN_POINT('',(-2.5,-2.425,1.525));+#157 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#158 = DIRECTION('',(0.E+000,0.E+000,1.));+#159 = ADVANCED_FACE('',(#160),#179,.T.);+#160 = FACE_BOUND('',#161,.F.);+#161 = EDGE_LOOP('',(#162,#163,#164,#173));+#162 = ORIENTED_EDGE('',*,*,#122,.F.);+#163 = ORIENTED_EDGE('',*,*,#42,.T.);+#164 = ORIENTED_EDGE('',*,*,#165,.F.);+#165 = EDGE_CURVE('',#166,#43,#168,.T.);+#166 = VERTEX_POINT('',#167);+#167 = CARTESIAN_POINT('',(2.5,2.5,1.525));+#168 = ELLIPSE('',#169,0.106066017178,7.5E-002);+#169 = AXIS2_PLACEMENT_3D('',#170,#171,#172);+#170 = CARTESIAN_POINT('',(2.425,2.425,1.525));+#171 = DIRECTION('',(0.707106781187,-0.707106781187,-0.E+000));+#172 = DIRECTION('',(-0.707106781187,-0.707106781187,0.E+000));+#173 = ORIENTED_EDGE('',*,*,#174,.F.);+#174 = EDGE_CURVE('',#115,#166,#175,.T.);+#175 = LINE('',#176,#177);+#176 = CARTESIAN_POINT('',(2.5,-1.464466094067,1.525));+#177 = VECTOR('',#178,1.);+#178 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#179 = CYLINDRICAL_SURFACE('',#180,7.5E-002);+#180 = AXIS2_PLACEMENT_3D('',#181,#182,#183);+#181 = CARTESIAN_POINT('',(2.425,-1.464466094067,1.525));+#182 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#183 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#184 = ADVANCED_FACE('',(#185),#204,.T.);+#185 = FACE_BOUND('',#186,.F.);+#186 = EDGE_LOOP('',(#187,#196,#197,#198));+#187 = ORIENTED_EDGE('',*,*,#188,.T.);+#188 = EDGE_CURVE('',#189,#51,#191,.T.);+#189 = VERTEX_POINT('',#190);+#190 = CARTESIAN_POINT('',(-2.5,2.5,1.525));+#191 = ELLIPSE('',#192,0.106066017178,7.5E-002);+#192 = AXIS2_PLACEMENT_3D('',#193,#194,#195);+#193 = CARTESIAN_POINT('',(-2.425,2.425,1.525));+#194 = DIRECTION('',(0.707106781187,0.707106781187,-0.E+000));+#195 = DIRECTION('',(-0.707106781187,0.707106781187,0.E+000));+#196 = ORIENTED_EDGE('',*,*,#58,.T.);+#197 = ORIENTED_EDGE('',*,*,#138,.F.);+#198 = ORIENTED_EDGE('',*,*,#199,.F.);+#199 = EDGE_CURVE('',#189,#139,#200,.T.);+#200 = LINE('',#201,#202);+#201 = CARTESIAN_POINT('',(-2.5,2.5,1.525));+#202 = VECTOR('',#203,1.);+#203 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#204 = CYLINDRICAL_SURFACE('',#205,7.5E-002);+#205 = AXIS2_PLACEMENT_3D('',#206,#207,#208);+#206 = CARTESIAN_POINT('',(-2.425,2.5,1.525));+#207 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#208 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#209 = ADVANCED_FACE('',(#210),#221,.T.);+#210 = FACE_BOUND('',#211,.F.);+#211 = EDGE_LOOP('',(#212,#213,#214,#215));+#212 = ORIENTED_EDGE('',*,*,#165,.T.);+#213 = ORIENTED_EDGE('',*,*,#50,.T.);+#214 = ORIENTED_EDGE('',*,*,#188,.F.);+#215 = ORIENTED_EDGE('',*,*,#216,.F.);+#216 = EDGE_CURVE('',#166,#189,#217,.T.);+#217 = LINE('',#218,#219);+#218 = CARTESIAN_POINT('',(2.5,2.5,1.525));+#219 = VECTOR('',#220,1.);+#220 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#221 = CYLINDRICAL_SURFACE('',#222,7.5E-002);+#222 = AXIS2_PLACEMENT_3D('',#223,#224,#225);+#223 = CARTESIAN_POINT('',(2.5,2.425,1.525));+#224 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#225 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#226 = ADVANCED_FACE('',(#227),#246,.F.);+#227 = FACE_BOUND('',#228,.T.);+#228 = EDGE_LOOP('',(#229,#238,#244,#245));+#229 = ORIENTED_EDGE('',*,*,#230,.F.);+#230 = EDGE_CURVE('',#231,#231,#233,.T.);+#231 = VERTEX_POINT('',#232);+#232 = CARTESIAN_POINT('',(-1.666666666667,2.041077998579E-016,1.225));+#233 = CIRCLE('',#234,1.666666666667);+#234 = AXIS2_PLACEMENT_3D('',#235,#236,#237);+#235 = CARTESIAN_POINT('',(0.E+000,0.E+000,1.225));+#236 = DIRECTION('',(0.E+000,0.E+000,1.));+#237 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#238 = ORIENTED_EDGE('',*,*,#239,.T.);+#239 = EDGE_CURVE('',#231,#81,#240,.T.);+#240 = LINE('',#241,#242);+#241 = CARTESIAN_POINT('',(-1.666666666667,2.041077998579E-016,0.85));+#242 = VECTOR('',#243,1.);+#243 = DIRECTION('',(0.E+000,0.E+000,1.));+#244 = ORIENTED_EDGE('',*,*,#90,.F.);+#245 = ORIENTED_EDGE('',*,*,#239,.F.);+#246 = CYLINDRICAL_SURFACE('',#247,1.666666666667);+#247 = AXIS2_PLACEMENT_3D('',#248,#249,#250);+#248 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.85));+#249 = DIRECTION('',(0.E+000,0.E+000,-1.));+#250 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#251 = ADVANCED_FACE('',(#252),#277,.T.);+#252 = FACE_BOUND('',#253,.T.);+#253 = EDGE_LOOP('',(#254,#262,#270,#276));+#254 = ORIENTED_EDGE('',*,*,#255,.T.);+#255 = EDGE_CURVE('',#106,#256,#258,.T.);+#256 = VERTEX_POINT('',#257);+#257 = CARTESIAN_POINT('',(1.464466094067,-2.5,1.3));+#258 = LINE('',#259,#260);+#259 = CARTESIAN_POINT('',(1.464466094067,-2.5,0.7));+#260 = VECTOR('',#261,1.);+#261 = DIRECTION('',(0.E+000,0.E+000,-1.));+#262 = ORIENTED_EDGE('',*,*,#263,.F.);+#263 = EDGE_CURVE('',#264,#256,#266,.T.);+#264 = VERTEX_POINT('',#265);+#265 = CARTESIAN_POINT('',(2.5,-1.464466094067,1.3));+#266 = LINE('',#267,#268);+#267 = CARTESIAN_POINT('',(3.75,-0.214466094067,1.3));+#268 = VECTOR('',#269,1.);+#269 = DIRECTION('',(-0.707106781187,-0.707106781187,0.E+000));+#270 = ORIENTED_EDGE('',*,*,#271,.T.);+#271 = EDGE_CURVE('',#264,#115,#272,.T.);+#272 = LINE('',#273,#274);+#273 = CARTESIAN_POINT('',(2.5,-1.464466094067,0.7));+#274 = VECTOR('',#275,1.);+#275 = DIRECTION('',(0.E+000,0.E+000,1.));+#276 = ORIENTED_EDGE('',*,*,#114,.F.);+#277 = PLANE('',#278);+#278 = AXIS2_PLACEMENT_3D('',#279,#280,#281);+#279 = CARTESIAN_POINT('',(3.75,-0.214466094067,1.3));+#280 = DIRECTION('',(0.707106781187,-0.707106781187,0.E+000));+#281 = DIRECTION('',(-0.707106781187,-0.707106781187,0.E+000));+#282 = ADVANCED_FACE('',(#283),#317,.F.);+#283 = FACE_BOUND('',#284,.F.);+#284 = EDGE_LOOP('',(#285,#286,#294,#302,#310,#316));+#285 = ORIENTED_EDGE('',*,*,#255,.T.);+#286 = ORIENTED_EDGE('',*,*,#287,.T.);+#287 = EDGE_CURVE('',#256,#288,#290,.T.);+#288 = VERTEX_POINT('',#289);+#289 = CARTESIAN_POINT('',(2.5,-2.5,1.3));+#290 = LINE('',#291,#292);+#291 = CARTESIAN_POINT('',(0.625,-2.5,1.3));+#292 = VECTOR('',#293,1.);+#293 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#294 = ORIENTED_EDGE('',*,*,#295,.F.);+#295 = EDGE_CURVE('',#296,#288,#298,.T.);+#296 = VERTEX_POINT('',#297);+#297 = CARTESIAN_POINT('',(2.5,-2.5,0.1));+#298 = LINE('',#299,#300);+#299 = CARTESIAN_POINT('',(2.5,-2.5,0.1));+#300 = VECTOR('',#301,1.);+#301 = DIRECTION('',(0.E+000,0.E+000,1.));+#302 = ORIENTED_EDGE('',*,*,#303,.F.);+#303 = EDGE_CURVE('',#304,#296,#306,.T.);+#304 = VERTEX_POINT('',#305);+#305 = CARTESIAN_POINT('',(-2.5,-2.5,0.1));+#306 = LINE('',#307,#308);+#307 = CARTESIAN_POINT('',(-2.5,-2.5,0.1));+#308 = VECTOR('',#309,1.);+#309 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#310 = ORIENTED_EDGE('',*,*,#311,.T.);+#311 = EDGE_CURVE('',#304,#139,#312,.T.);+#312 = LINE('',#313,#314);+#313 = CARTESIAN_POINT('',(-2.5,-2.5,0.1));+#314 = VECTOR('',#315,1.);+#315 = DIRECTION('',(0.E+000,0.E+000,1.));+#316 = ORIENTED_EDGE('',*,*,#147,.T.);+#317 = PLANE('',#318);+#318 = AXIS2_PLACEMENT_3D('',#319,#320,#321);+#319 = CARTESIAN_POINT('',(-2.5,-2.5,0.1));+#320 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#321 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#322 = ADVANCED_FACE('',(#323,#380,#414),#448,.F.);+#323 = FACE_BOUND('',#324,.F.);+#324 = EDGE_LOOP('',(#325,#333,#341,#349,#357,#365,#371,#372,#378,#379)+);+#325 = ORIENTED_EDGE('',*,*,#326,.F.);+#326 = EDGE_CURVE('',#327,#166,#329,.T.);+#327 = VERTEX_POINT('',#328);+#328 = CARTESIAN_POINT('',(2.5,2.5,0.1));+#329 = LINE('',#330,#331);+#330 = CARTESIAN_POINT('',(2.5,2.5,0.1));+#331 = VECTOR('',#332,1.);+#332 = DIRECTION('',(0.E+000,0.E+000,1.));+#333 = ORIENTED_EDGE('',*,*,#334,.F.);+#334 = EDGE_CURVE('',#335,#327,#337,.T.);+#335 = VERTEX_POINT('',#336);+#336 = CARTESIAN_POINT('',(2.5,2.1,0.1));+#337 = LINE('',#338,#339);+#338 = CARTESIAN_POINT('',(2.5,-2.5,0.1));+#339 = VECTOR('',#340,1.);+#340 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#341 = ORIENTED_EDGE('',*,*,#342,.F.);+#342 = EDGE_CURVE('',#343,#335,#345,.T.);+#343 = VERTEX_POINT('',#344);+#344 = CARTESIAN_POINT('',(2.5,1.2,0.1));+#345 = LINE('',#346,#347);+#346 = CARTESIAN_POINT('',(2.5,-2.5,0.1));+#347 = VECTOR('',#348,1.);+#348 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#349 = ORIENTED_EDGE('',*,*,#350,.F.);+#350 = EDGE_CURVE('',#351,#343,#353,.T.);+#351 = VERTEX_POINT('',#352);+#352 = CARTESIAN_POINT('',(2.5,-1.2,0.1));+#353 = LINE('',#354,#355);+#354 = CARTESIAN_POINT('',(2.5,-2.5,0.1));+#355 = VECTOR('',#356,1.);+#356 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#357 = ORIENTED_EDGE('',*,*,#358,.F.);+#358 = EDGE_CURVE('',#359,#351,#361,.T.);+#359 = VERTEX_POINT('',#360);+#360 = CARTESIAN_POINT('',(2.5,-2.1,0.1));+#361 = LINE('',#362,#363);+#362 = CARTESIAN_POINT('',(2.5,-2.5,0.1));+#363 = VECTOR('',#364,1.);+#364 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#365 = ORIENTED_EDGE('',*,*,#366,.F.);+#366 = EDGE_CURVE('',#296,#359,#367,.T.);+#367 = LINE('',#368,#369);+#368 = CARTESIAN_POINT('',(2.5,-2.5,0.1));+#369 = VECTOR('',#370,1.);+#370 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#371 = ORIENTED_EDGE('',*,*,#295,.T.);+#372 = ORIENTED_EDGE('',*,*,#373,.T.);+#373 = EDGE_CURVE('',#288,#264,#374,.T.);+#374 = LINE('',#375,#376);+#375 = CARTESIAN_POINT('',(2.5,-3.125,1.3));+#376 = VECTOR('',#377,1.);+#377 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#378 = ORIENTED_EDGE('',*,*,#271,.T.);+#379 = ORIENTED_EDGE('',*,*,#174,.T.);+#380 = FACE_BOUND('',#381,.F.);+#381 = EDGE_LOOP('',(#382,#392,#400,#408));+#382 = ORIENTED_EDGE('',*,*,#383,.T.);+#383 = EDGE_CURVE('',#384,#386,#388,.T.);+#384 = VERTEX_POINT('',#385);+#385 = CARTESIAN_POINT('',(2.5,1.2,0.9));+#386 = VERTEX_POINT('',#387);+#387 = CARTESIAN_POINT('',(2.5,2.1,0.9));+#388 = LINE('',#389,#390);+#389 = CARTESIAN_POINT('',(2.5,-0.425,0.9));+#390 = VECTOR('',#391,1.);+#391 = DIRECTION('',(1.224646799147E-016,1.,-1.556307025767E-032));+#392 = ORIENTED_EDGE('',*,*,#393,.T.);+#393 = EDGE_CURVE('',#386,#394,#396,.T.);+#394 = VERTEX_POINT('',#395);+#395 = CARTESIAN_POINT('',(2.5,2.1,1.));+#396 = LINE('',#397,#398);+#397 = CARTESIAN_POINT('',(2.5,2.1,5.E-002));+#398 = VECTOR('',#399,1.);+#399 = DIRECTION('',(0.E+000,0.E+000,1.));+#400 = ORIENTED_EDGE('',*,*,#401,.F.);+#401 = EDGE_CURVE('',#402,#394,#404,.T.);+#402 = VERTEX_POINT('',#403);+#403 = CARTESIAN_POINT('',(2.5,1.2,1.));+#404 = LINE('',#405,#406);+#405 = CARTESIAN_POINT('',(2.5,-0.425,1.));+#406 = VECTOR('',#407,1.);+#407 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#408 = ORIENTED_EDGE('',*,*,#409,.T.);+#409 = EDGE_CURVE('',#402,#384,#410,.T.);+#410 = LINE('',#411,#412);+#411 = CARTESIAN_POINT('',(2.5,1.2,5.E-002));+#412 = VECTOR('',#413,1.);+#413 = DIRECTION('',(-0.E+000,0.E+000,-1.));+#414 = FACE_BOUND('',#415,.F.);+#415 = EDGE_LOOP('',(#416,#426,#434,#442));+#416 = ORIENTED_EDGE('',*,*,#417,.F.);+#417 = EDGE_CURVE('',#418,#420,#422,.T.);+#418 = VERTEX_POINT('',#419);+#419 = CARTESIAN_POINT('',(2.5,-2.1,1.));+#420 = VERTEX_POINT('',#421);+#421 = CARTESIAN_POINT('',(2.5,-1.2,1.));+#422 = LINE('',#423,#424);+#423 = CARTESIAN_POINT('',(2.5,-2.075,1.));+#424 = VECTOR('',#425,1.);+#425 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#426 = ORIENTED_EDGE('',*,*,#427,.T.);+#427 = EDGE_CURVE('',#418,#428,#430,.T.);+#428 = VERTEX_POINT('',#429);+#429 = CARTESIAN_POINT('',(2.5,-2.1,0.9));+#430 = LINE('',#431,#432);+#431 = CARTESIAN_POINT('',(2.5,-2.1,5.E-002));+#432 = VECTOR('',#433,1.);+#433 = DIRECTION('',(-0.E+000,0.E+000,-1.));+#434 = ORIENTED_EDGE('',*,*,#435,.T.);+#435 = EDGE_CURVE('',#428,#436,#438,.T.);+#436 = VERTEX_POINT('',#437);+#437 = CARTESIAN_POINT('',(2.5,-1.2,0.9));+#438 = LINE('',#439,#440);+#439 = CARTESIAN_POINT('',(2.5,-2.075,0.9));+#440 = VECTOR('',#441,1.);+#441 = DIRECTION('',(1.224646799147E-016,1.,-3.890767564419E-033));+#442 = ORIENTED_EDGE('',*,*,#443,.T.);+#443 = EDGE_CURVE('',#436,#420,#444,.T.);+#444 = LINE('',#445,#446);+#445 = CARTESIAN_POINT('',(2.5,-1.2,5.E-002));+#446 = VECTOR('',#447,1.);+#447 = DIRECTION('',(0.E+000,0.E+000,1.));+#448 = PLANE('',#449);+#449 = AXIS2_PLACEMENT_3D('',#450,#451,#452);+#450 = CARTESIAN_POINT('',(2.5,-2.5,0.1));+#451 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#452 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#453 = ADVANCED_FACE('',(#454,#504,#538),#572,.F.);+#454 = FACE_BOUND('',#455,.F.);+#455 = EDGE_LOOP('',(#456,#464,#465,#466,#474,#482,#490,#498));+#456 = ORIENTED_EDGE('',*,*,#457,.T.);+#457 = EDGE_CURVE('',#458,#189,#460,.T.);+#458 = VERTEX_POINT('',#459);+#459 = CARTESIAN_POINT('',(-2.5,2.5,0.1));+#460 = LINE('',#461,#462);+#461 = CARTESIAN_POINT('',(-2.5,2.5,0.1));+#462 = VECTOR('',#463,1.);+#463 = DIRECTION('',(0.E+000,0.E+000,1.));+#464 = ORIENTED_EDGE('',*,*,#199,.T.);+#465 = ORIENTED_EDGE('',*,*,#311,.F.);+#466 = ORIENTED_EDGE('',*,*,#467,.F.);+#467 = EDGE_CURVE('',#468,#304,#470,.T.);+#468 = VERTEX_POINT('',#469);+#469 = CARTESIAN_POINT('',(-2.5,-2.1,0.1));+#470 = LINE('',#471,#472);+#471 = CARTESIAN_POINT('',(-2.5,2.5,0.1));+#472 = VECTOR('',#473,1.);+#473 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#474 = ORIENTED_EDGE('',*,*,#475,.F.);+#475 = EDGE_CURVE('',#476,#468,#478,.T.);+#476 = VERTEX_POINT('',#477);+#477 = CARTESIAN_POINT('',(-2.5,-1.2,0.1));+#478 = LINE('',#479,#480);+#479 = CARTESIAN_POINT('',(-2.5,2.5,0.1));+#480 = VECTOR('',#481,1.);+#481 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#482 = ORIENTED_EDGE('',*,*,#483,.F.);+#483 = EDGE_CURVE('',#484,#476,#486,.T.);+#484 = VERTEX_POINT('',#485);+#485 = CARTESIAN_POINT('',(-2.5,1.2,0.1));+#486 = LINE('',#487,#488);+#487 = CARTESIAN_POINT('',(-2.5,2.5,0.1));+#488 = VECTOR('',#489,1.);+#489 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#490 = ORIENTED_EDGE('',*,*,#491,.F.);+#491 = EDGE_CURVE('',#492,#484,#494,.T.);+#492 = VERTEX_POINT('',#493);+#493 = CARTESIAN_POINT('',(-2.5,2.1,0.1));+#494 = LINE('',#495,#496);+#495 = CARTESIAN_POINT('',(-2.5,2.5,0.1));+#496 = VECTOR('',#497,1.);+#497 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#498 = ORIENTED_EDGE('',*,*,#499,.F.);+#499 = EDGE_CURVE('',#458,#492,#500,.T.);+#500 = LINE('',#501,#502);+#501 = CARTESIAN_POINT('',(-2.5,2.5,0.1));+#502 = VECTOR('',#503,1.);+#503 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#504 = FACE_BOUND('',#505,.F.);+#505 = EDGE_LOOP('',(#506,#516,#524,#532));+#506 = ORIENTED_EDGE('',*,*,#507,.F.);+#507 = EDGE_CURVE('',#508,#510,#512,.T.);+#508 = VERTEX_POINT('',#509);+#509 = CARTESIAN_POINT('',(-2.5,-1.2,1.));+#510 = VERTEX_POINT('',#511);+#511 = CARTESIAN_POINT('',(-2.5,-2.1,1.));+#512 = LINE('',#513,#514);+#513 = CARTESIAN_POINT('',(-2.5,0.425,1.));+#514 = VECTOR('',#515,1.);+#515 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#516 = ORIENTED_EDGE('',*,*,#517,.T.);+#517 = EDGE_CURVE('',#508,#518,#520,.T.);+#518 = VERTEX_POINT('',#519);+#519 = CARTESIAN_POINT('',(-2.5,-1.2,0.9));+#520 = LINE('',#521,#522);+#521 = CARTESIAN_POINT('',(-2.5,-1.2,5.E-002));+#522 = VECTOR('',#523,1.);+#523 = DIRECTION('',(-0.E+000,0.E+000,-1.));+#524 = ORIENTED_EDGE('',*,*,#525,.T.);+#525 = EDGE_CURVE('',#518,#526,#528,.T.);+#526 = VERTEX_POINT('',#527);+#527 = CARTESIAN_POINT('',(-2.5,-2.1,0.9));+#528 = LINE('',#529,#530);+#529 = CARTESIAN_POINT('',(-2.5,0.425,0.9));+#530 = VECTOR('',#531,1.);+#531 = DIRECTION('',(-1.224646799147E-016,-1.,3.890767564419E-033));+#532 = ORIENTED_EDGE('',*,*,#533,.T.);+#533 = EDGE_CURVE('',#526,#510,#534,.T.);+#534 = LINE('',#535,#536);+#535 = CARTESIAN_POINT('',(-2.5,-2.1,5.E-002));+#536 = VECTOR('',#537,1.);+#537 = DIRECTION('',(0.E+000,0.E+000,1.));+#538 = FACE_BOUND('',#539,.F.);+#539 = EDGE_LOOP('',(#540,#550,#558,#566));+#540 = ORIENTED_EDGE('',*,*,#541,.F.);+#541 = EDGE_CURVE('',#542,#544,#546,.T.);+#542 = VERTEX_POINT('',#543);+#543 = CARTESIAN_POINT('',(-2.5,2.1,1.));+#544 = VERTEX_POINT('',#545);+#545 = CARTESIAN_POINT('',(-2.5,1.2,1.));+#546 = LINE('',#547,#548);+#547 = CARTESIAN_POINT('',(-2.5,2.075,1.));+#548 = VECTOR('',#549,1.);+#549 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#550 = ORIENTED_EDGE('',*,*,#551,.T.);+#551 = EDGE_CURVE('',#542,#552,#554,.T.);+#552 = VERTEX_POINT('',#553);+#553 = CARTESIAN_POINT('',(-2.5,2.1,0.9));+#554 = LINE('',#555,#556);+#555 = CARTESIAN_POINT('',(-2.5,2.1,5.E-002));+#556 = VECTOR('',#557,1.);+#557 = DIRECTION('',(-0.E+000,0.E+000,-1.));+#558 = ORIENTED_EDGE('',*,*,#559,.T.);+#559 = EDGE_CURVE('',#552,#560,#562,.T.);+#560 = VERTEX_POINT('',#561);+#561 = CARTESIAN_POINT('',(-2.5,1.2,0.9));+#562 = LINE('',#563,#564);+#563 = CARTESIAN_POINT('',(-2.5,2.075,0.9));+#564 = VECTOR('',#565,1.);+#565 = DIRECTION('',(-1.224646799147E-016,-1.,1.556307025767E-032));+#566 = ORIENTED_EDGE('',*,*,#567,.T.);+#567 = EDGE_CURVE('',#560,#544,#568,.T.);+#568 = LINE('',#569,#570);+#569 = CARTESIAN_POINT('',(-2.5,1.2,5.E-002));+#570 = VECTOR('',#571,1.);+#571 = DIRECTION('',(0.E+000,0.E+000,1.));+#572 = PLANE('',#573);+#573 = AXIS2_PLACEMENT_3D('',#574,#575,#576);+#574 = CARTESIAN_POINT('',(-2.5,2.5,0.1));+#575 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#576 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#577 = ADVANCED_FACE('',(#578),#589,.F.);+#578 = FACE_BOUND('',#579,.F.);+#579 = EDGE_LOOP('',(#580,#581,#582,#583));+#580 = ORIENTED_EDGE('',*,*,#326,.T.);+#581 = ORIENTED_EDGE('',*,*,#216,.T.);+#582 = ORIENTED_EDGE('',*,*,#457,.F.);+#583 = ORIENTED_EDGE('',*,*,#584,.F.);+#584 = EDGE_CURVE('',#327,#458,#585,.T.);+#585 = LINE('',#586,#587);+#586 = CARTESIAN_POINT('',(2.5,2.5,0.1));+#587 = VECTOR('',#588,1.);+#588 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#589 = PLANE('',#590);+#590 = AXIS2_PLACEMENT_3D('',#591,#592,#593);+#591 = CARTESIAN_POINT('',(2.5,2.5,0.1));+#592 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#593 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#594 = ADVANCED_FACE('',(#595),#598,.T.);+#595 = FACE_BOUND('',#596,.T.);+#596 = EDGE_LOOP('',(#597));+#597 = ORIENTED_EDGE('',*,*,#230,.T.);+#598 = PLANE('',#599);+#599 = AXIS2_PLACEMENT_3D('',#600,#601,#602);+#600 = CARTESIAN_POINT('',(1.538370149107E-016,-1.370800865949E-016,+1.225));+#601 = DIRECTION('',(0.E+000,0.E+000,1.));+#602 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#603 = ADVANCED_FACE('',(#604),#609,.T.);+#604 = FACE_BOUND('',#605,.T.);+#605 = EDGE_LOOP('',(#606,#607,#608));+#606 = ORIENTED_EDGE('',*,*,#373,.T.);+#607 = ORIENTED_EDGE('',*,*,#263,.T.);+#608 = ORIENTED_EDGE('',*,*,#287,.T.);+#609 = PLANE('',#610);+#610 = AXIS2_PLACEMENT_3D('',#611,#612,#613);+#611 = CARTESIAN_POINT('',(3.75,-3.75,1.3));+#612 = DIRECTION('',(0.E+000,0.E+000,1.));+#613 = DIRECTION('',(-0.707106781187,-0.707106781187,0.E+000));+#614 = ADVANCED_FACE('',(#615),#777,.F.);+#615 = FACE_BOUND('',#616,.F.);+#616 = EDGE_LOOP('',(#617,#618,#619,#620,#628,#636,#644,#652,#658,#659,+#667,#675,#683,#691,#697,#698,#699,#700,#708,#716,#724,#732,#738,+#739,#747,#755,#763,#771));+#617 = ORIENTED_EDGE('',*,*,#334,.T.);+#618 = ORIENTED_EDGE('',*,*,#584,.T.);+#619 = ORIENTED_EDGE('',*,*,#499,.T.);+#620 = ORIENTED_EDGE('',*,*,#621,.F.);+#621 = EDGE_CURVE('',#622,#492,#624,.T.);+#622 = VERTEX_POINT('',#623);+#623 = CARTESIAN_POINT('',(-1.95,2.1,0.1));+#624 = LINE('',#625,#626);+#625 = CARTESIAN_POINT('',(-2.025,2.1,0.1));+#626 = VECTOR('',#627,1.);+#627 = DIRECTION('',(-1.,1.224646799147E-016,-4.996063166392E-032));+#628 = ORIENTED_EDGE('',*,*,#629,.T.);+#629 = EDGE_CURVE('',#622,#630,#632,.T.);+#630 = VERTEX_POINT('',#631);+#631 = CARTESIAN_POINT('',(-1.8,2.1,0.1));+#632 = LINE('',#633,#634);+#633 = CARTESIAN_POINT('',(-0.9,2.1,0.1));+#634 = VECTOR('',#635,1.);+#635 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#636 = ORIENTED_EDGE('',*,*,#637,.T.);+#637 = EDGE_CURVE('',#630,#638,#640,.T.);+#638 = VERTEX_POINT('',#639);+#639 = CARTESIAN_POINT('',(-1.8,1.2,0.1));+#640 = LINE('',#641,#642);+#641 = CARTESIAN_POINT('',(-1.8,0.6,0.1));+#642 = VECTOR('',#643,1.);+#643 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#644 = ORIENTED_EDGE('',*,*,#645,.T.);+#645 = EDGE_CURVE('',#638,#646,#648,.T.);+#646 = VERTEX_POINT('',#647);+#647 = CARTESIAN_POINT('',(-1.95,1.2,0.1));+#648 = LINE('',#649,#650);+#649 = CARTESIAN_POINT('',(-1.35,1.2,0.1));+#650 = VECTOR('',#651,1.);+#651 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#652 = ORIENTED_EDGE('',*,*,#653,.F.);+#653 = EDGE_CURVE('',#484,#646,#654,.T.);+#654 = LINE('',#655,#656);+#655 = CARTESIAN_POINT('',(-2.475,1.2,0.1));+#656 = VECTOR('',#657,1.);+#657 = DIRECTION('',(1.,-1.224646799147E-016,4.996063166392E-032));+#658 = ORIENTED_EDGE('',*,*,#483,.T.);+#659 = ORIENTED_EDGE('',*,*,#660,.F.);+#660 = EDGE_CURVE('',#661,#476,#663,.T.);+#661 = VERTEX_POINT('',#662);+#662 = CARTESIAN_POINT('',(-1.95,-1.2,0.1));+#663 = LINE('',#664,#665);+#664 = CARTESIAN_POINT('',(-2.025,-1.2,0.1));+#665 = VECTOR('',#666,1.);+#666 = DIRECTION('',(-1.,1.224646799147E-016,-4.996063166392E-032));+#667 = ORIENTED_EDGE('',*,*,#668,.T.);+#668 = EDGE_CURVE('',#661,#669,#671,.T.);+#669 = VERTEX_POINT('',#670);+#670 = CARTESIAN_POINT('',(-1.8,-1.2,0.1));+#671 = LINE('',#672,#673);+#672 = CARTESIAN_POINT('',(-0.9,-1.2,0.1));+#673 = VECTOR('',#674,1.);+#674 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#675 = ORIENTED_EDGE('',*,*,#676,.T.);+#676 = EDGE_CURVE('',#669,#677,#679,.T.);+#677 = VERTEX_POINT('',#678);+#678 = CARTESIAN_POINT('',(-1.8,-2.1,0.1));+#679 = LINE('',#680,#681);+#680 = CARTESIAN_POINT('',(-1.8,-1.05,0.1));+#681 = VECTOR('',#682,1.);+#682 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#683 = ORIENTED_EDGE('',*,*,#684,.T.);+#684 = EDGE_CURVE('',#677,#685,#687,.T.);+#685 = VERTEX_POINT('',#686);+#686 = CARTESIAN_POINT('',(-1.95,-2.1,0.1));+#687 = LINE('',#688,#689);+#688 = CARTESIAN_POINT('',(-1.35,-2.1,0.1));+#689 = VECTOR('',#690,1.);+#690 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#691 = ORIENTED_EDGE('',*,*,#692,.F.);+#692 = EDGE_CURVE('',#468,#685,#693,.T.);+#693 = LINE('',#694,#695);+#694 = CARTESIAN_POINT('',(-2.475,-2.1,0.1));+#695 = VECTOR('',#696,1.);+#696 = DIRECTION('',(1.,-1.224646799147E-016,4.996063166392E-032));+#697 = ORIENTED_EDGE('',*,*,#467,.T.);+#698 = ORIENTED_EDGE('',*,*,#303,.T.);+#699 = ORIENTED_EDGE('',*,*,#366,.T.);+#700 = ORIENTED_EDGE('',*,*,#701,.F.);+#701 = EDGE_CURVE('',#702,#359,#704,.T.);+#702 = VERTEX_POINT('',#703);+#703 = CARTESIAN_POINT('',(1.95,-2.1,0.1));+#704 = LINE('',#705,#706);+#705 = CARTESIAN_POINT('',(2.025,-2.1,0.1));+#706 = VECTOR('',#707,1.);+#707 = DIRECTION('',(1.,-1.224646799147E-016,-4.996063166392E-032));+#708 = ORIENTED_EDGE('',*,*,#709,.T.);+#709 = EDGE_CURVE('',#702,#710,#712,.T.);+#710 = VERTEX_POINT('',#711);+#711 = CARTESIAN_POINT('',(1.8,-2.1,0.1));+#712 = LINE('',#713,#714);+#713 = CARTESIAN_POINT('',(0.9,-2.1,0.1));+#714 = VECTOR('',#715,1.);+#715 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#716 = ORIENTED_EDGE('',*,*,#717,.T.);+#717 = EDGE_CURVE('',#710,#718,#720,.T.);+#718 = VERTEX_POINT('',#719);+#719 = CARTESIAN_POINT('',(1.8,-1.2,0.1));+#720 = LINE('',#721,#722);+#721 = CARTESIAN_POINT('',(1.8,-0.6,0.1));+#722 = VECTOR('',#723,1.);+#723 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#724 = ORIENTED_EDGE('',*,*,#725,.T.);+#725 = EDGE_CURVE('',#718,#726,#728,.T.);+#726 = VERTEX_POINT('',#727);+#727 = CARTESIAN_POINT('',(1.95,-1.2,0.1));+#728 = LINE('',#729,#730);+#729 = CARTESIAN_POINT('',(1.35,-1.2,0.1));+#730 = VECTOR('',#731,1.);+#731 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#732 = ORIENTED_EDGE('',*,*,#733,.F.);+#733 = EDGE_CURVE('',#351,#726,#734,.T.);+#734 = LINE('',#735,#736);+#735 = CARTESIAN_POINT('',(2.475,-1.2,0.1));+#736 = VECTOR('',#737,1.);+#737 = DIRECTION('',(-1.,1.224646799147E-016,4.996063166392E-032));+#738 = ORIENTED_EDGE('',*,*,#350,.T.);+#739 = ORIENTED_EDGE('',*,*,#740,.F.);+#740 = EDGE_CURVE('',#741,#343,#743,.T.);+#741 = VERTEX_POINT('',#742);+#742 = CARTESIAN_POINT('',(1.95,1.2,0.1));+#743 = LINE('',#744,#745);+#744 = CARTESIAN_POINT('',(2.025,1.2,0.1));+#745 = VECTOR('',#746,1.);+#746 = DIRECTION('',(1.,-1.224646799147E-016,-4.996063166392E-032));+#747 = ORIENTED_EDGE('',*,*,#748,.T.);+#748 = EDGE_CURVE('',#741,#749,#751,.T.);+#749 = VERTEX_POINT('',#750);+#750 = CARTESIAN_POINT('',(1.8,1.2,0.1));+#751 = LINE('',#752,#753);+#752 = CARTESIAN_POINT('',(0.9,1.2,0.1));+#753 = VECTOR('',#754,1.);+#754 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#755 = ORIENTED_EDGE('',*,*,#756,.T.);+#756 = EDGE_CURVE('',#749,#757,#759,.T.);+#757 = VERTEX_POINT('',#758);+#758 = CARTESIAN_POINT('',(1.8,2.1,0.1));+#759 = LINE('',#760,#761);+#760 = CARTESIAN_POINT('',(1.8,1.05,0.1));+#761 = VECTOR('',#762,1.);+#762 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#763 = ORIENTED_EDGE('',*,*,#764,.T.);+#764 = EDGE_CURVE('',#757,#765,#767,.T.);+#765 = VERTEX_POINT('',#766);+#766 = CARTESIAN_POINT('',(1.95,2.1,0.1));+#767 = LINE('',#768,#769);+#768 = CARTESIAN_POINT('',(1.35,2.1,0.1));+#769 = VECTOR('',#770,1.);+#770 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#771 = ORIENTED_EDGE('',*,*,#772,.F.);+#772 = EDGE_CURVE('',#335,#765,#773,.T.);+#773 = LINE('',#774,#775);+#774 = CARTESIAN_POINT('',(2.475,2.1,0.1));+#775 = VECTOR('',#776,1.);+#776 = DIRECTION('',(-1.,1.224646799147E-016,4.996063166392E-032));+#777 = PLANE('',#778);+#778 = AXIS2_PLACEMENT_3D('',#779,#780,#781);+#779 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.1));+#780 = DIRECTION('',(0.E+000,0.E+000,1.));+#781 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#782 = ADVANCED_FACE('',(#783),#808,.T.);+#783 = FACE_BOUND('',#784,.T.);+#784 = EDGE_LOOP('',(#785,#795,#801,#802));+#785 = ORIENTED_EDGE('',*,*,#786,.T.);+#786 = EDGE_CURVE('',#787,#789,#791,.T.);+#787 = VERTEX_POINT('',#788);+#788 = CARTESIAN_POINT('',(2.55,1.2,0.1));+#789 = VERTEX_POINT('',#790);+#790 = CARTESIAN_POINT('',(2.55,2.1,0.1));+#791 = LINE('',#792,#793);+#792 = CARTESIAN_POINT('',(2.55,1.1,0.1));+#793 = VECTOR('',#794,1.);+#794 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#795 = ORIENTED_EDGE('',*,*,#796,.T.);+#796 = EDGE_CURVE('',#789,#335,#797,.T.);+#797 = LINE('',#798,#799);+#798 = CARTESIAN_POINT('',(2.475,2.1,0.1));+#799 = VECTOR('',#800,1.);+#800 = DIRECTION('',(-1.,1.224646799147E-016,4.996063166392E-032));+#801 = ORIENTED_EDGE('',*,*,#342,.F.);+#802 = ORIENTED_EDGE('',*,*,#803,.T.);+#803 = EDGE_CURVE('',#343,#787,#804,.T.);+#804 = LINE('',#805,#806);+#805 = CARTESIAN_POINT('',(2.025,1.2,0.1));+#806 = VECTOR('',#807,1.);+#807 = DIRECTION('',(1.,-1.224646799147E-016,-4.996063166392E-032));+#808 = PLANE('',#809);+#809 = AXIS2_PLACEMENT_3D('',#810,#811,#812);+#810 = CARTESIAN_POINT('',(2.25,1.65,0.1));+#811 = DIRECTION('',(4.996063166392E-032,1.556307025767E-032,1.));+#812 = DIRECTION('',(-1.,1.224646799147E-016,4.996063166392E-032));+#813 = ADVANCED_FACE('',(#814),#839,.T.);+#814 = FACE_BOUND('',#815,.T.);+#815 = EDGE_LOOP('',(#816,#826,#832,#833));+#816 = ORIENTED_EDGE('',*,*,#817,.T.);+#817 = EDGE_CURVE('',#818,#820,#822,.T.);+#818 = VERTEX_POINT('',#819);+#819 = CARTESIAN_POINT('',(2.55,-2.1,0.1));+#820 = VERTEX_POINT('',#821);+#821 = CARTESIAN_POINT('',(2.55,-1.2,0.1));+#822 = LINE('',#823,#824);+#823 = CARTESIAN_POINT('',(2.55,-2.2,0.1));+#824 = VECTOR('',#825,1.);+#825 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#826 = ORIENTED_EDGE('',*,*,#827,.T.);+#827 = EDGE_CURVE('',#820,#351,#828,.T.);+#828 = LINE('',#829,#830);+#829 = CARTESIAN_POINT('',(2.475,-1.2,0.1));+#830 = VECTOR('',#831,1.);+#831 = DIRECTION('',(-1.,1.224646799147E-016,4.996063166392E-032));+#832 = ORIENTED_EDGE('',*,*,#358,.F.);+#833 = ORIENTED_EDGE('',*,*,#834,.T.);+#834 = EDGE_CURVE('',#359,#818,#835,.T.);+#835 = LINE('',#836,#837);+#836 = CARTESIAN_POINT('',(2.025,-2.1,0.1));+#837 = VECTOR('',#838,1.);+#838 = DIRECTION('',(1.,-1.224646799147E-016,-4.996063166392E-032));+#839 = PLANE('',#840);+#840 = AXIS2_PLACEMENT_3D('',#841,#842,#843);+#841 = CARTESIAN_POINT('',(2.25,-1.65,0.1));+#842 = DIRECTION('',(4.996063166392E-032,3.890767564419E-033,1.));+#843 = DIRECTION('',(-1.,1.224646799147E-016,4.996063166392E-032));+#844 = ADVANCED_FACE('',(#845),#870,.F.);+#845 = FACE_BOUND('',#846,.F.);+#846 = EDGE_LOOP('',(#847,#857,#863,#864));+#847 = ORIENTED_EDGE('',*,*,#848,.T.);+#848 = EDGE_CURVE('',#849,#851,#853,.T.);+#849 = VERTEX_POINT('',#850);+#850 = CARTESIAN_POINT('',(2.55,1.2,0.9));+#851 = VERTEX_POINT('',#852);+#852 = CARTESIAN_POINT('',(2.55,2.1,0.9));+#853 = LINE('',#854,#855);+#854 = CARTESIAN_POINT('',(2.55,1.1,0.9));+#855 = VECTOR('',#856,1.);+#856 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#857 = ORIENTED_EDGE('',*,*,#858,.T.);+#858 = EDGE_CURVE('',#851,#386,#859,.T.);+#859 = LINE('',#860,#861);+#860 = CARTESIAN_POINT('',(2.475,2.1,0.9));+#861 = VECTOR('',#862,1.);+#862 = DIRECTION('',(-1.,1.224646799147E-016,4.996063166392E-032));+#863 = ORIENTED_EDGE('',*,*,#383,.F.);+#864 = ORIENTED_EDGE('',*,*,#865,.T.);+#865 = EDGE_CURVE('',#384,#849,#866,.T.);+#866 = LINE('',#867,#868);+#867 = CARTESIAN_POINT('',(2.025,1.2,0.9));+#868 = VECTOR('',#869,1.);+#869 = DIRECTION('',(1.,-1.224646799147E-016,-4.996063166392E-032));+#870 = PLANE('',#871);+#871 = AXIS2_PLACEMENT_3D('',#872,#873,#874);+#872 = CARTESIAN_POINT('',(2.25,1.65,0.9));+#873 = DIRECTION('',(4.996063166392E-032,1.556307025767E-032,1.));+#874 = DIRECTION('',(-1.,1.224646799147E-016,4.996063166392E-032));+#875 = ADVANCED_FACE('',(#876),#955,.F.);+#876 = FACE_BOUND('',#877,.F.);+#877 = EDGE_LOOP('',(#878,#888,#897,#905,#911,#912,#913,#914,#923,#931,+#938,#939,#940,#948));+#878 = ORIENTED_EDGE('',*,*,#879,.F.);+#879 = EDGE_CURVE('',#880,#882,#884,.T.);+#880 = VERTEX_POINT('',#881);+#881 = CARTESIAN_POINT('',(2.7,1.2,5.E-002));+#882 = VERTEX_POINT('',#883);+#883 = CARTESIAN_POINT('',(2.7,1.2,0.95));+#884 = LINE('',#885,#886);+#885 = CARTESIAN_POINT('',(2.7,1.2,0.E+000));+#886 = VECTOR('',#887,1.);+#887 = DIRECTION('',(0.E+000,0.E+000,1.));+#888 = ORIENTED_EDGE('',*,*,#889,.T.);+#889 = EDGE_CURVE('',#880,#890,#892,.T.);+#890 = VERTEX_POINT('',#891);+#891 = CARTESIAN_POINT('',(2.65,1.2,-6.938893903907E-018));+#892 = CIRCLE('',#893,5.E-002);+#893 = AXIS2_PLACEMENT_3D('',#894,#895,#896);+#894 = CARTESIAN_POINT('',(2.65,1.2,5.E-002));+#895 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#896 = DIRECTION('',(0.E+000,0.E+000,-1.));+#897 = ORIENTED_EDGE('',*,*,#898,.F.);+#898 = EDGE_CURVE('',#899,#890,#901,.T.);+#899 = VERTEX_POINT('',#900);+#900 = CARTESIAN_POINT('',(1.8,1.2,0.E+000));+#901 = LINE('',#902,#903);+#902 = CARTESIAN_POINT('',(1.8,1.2,0.E+000));+#903 = VECTOR('',#904,1.);+#904 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#905 = ORIENTED_EDGE('',*,*,#906,.T.);+#906 = EDGE_CURVE('',#899,#749,#907,.T.);+#907 = LINE('',#908,#909);+#908 = CARTESIAN_POINT('',(1.8,1.2,0.E+000));+#909 = VECTOR('',#910,1.);+#910 = DIRECTION('',(0.E+000,0.E+000,1.));+#911 = ORIENTED_EDGE('',*,*,#748,.F.);+#912 = ORIENTED_EDGE('',*,*,#740,.T.);+#913 = ORIENTED_EDGE('',*,*,#803,.T.);+#914 = ORIENTED_EDGE('',*,*,#915,.F.);+#915 = EDGE_CURVE('',#916,#787,#918,.T.);+#916 = VERTEX_POINT('',#917);+#917 = CARTESIAN_POINT('',(2.6,1.2,0.15));+#918 = CIRCLE('',#919,5.E-002);+#919 = AXIS2_PLACEMENT_3D('',#920,#921,#922);+#920 = CARTESIAN_POINT('',(2.55,1.2,0.15));+#921 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#922 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#923 = ORIENTED_EDGE('',*,*,#924,.T.);+#924 = EDGE_CURVE('',#916,#925,#927,.T.);+#925 = VERTEX_POINT('',#926);+#926 = CARTESIAN_POINT('',(2.6,1.2,0.85));+#927 = LINE('',#928,#929);+#928 = CARTESIAN_POINT('',(2.6,1.2,5.E-002));+#929 = VECTOR('',#930,1.);+#930 = DIRECTION('',(0.E+000,0.E+000,1.));+#931 = ORIENTED_EDGE('',*,*,#932,.F.);+#932 = EDGE_CURVE('',#849,#925,#933,.T.);+#933 = CIRCLE('',#934,5.E-002);+#934 = AXIS2_PLACEMENT_3D('',#935,#936,#937);+#935 = CARTESIAN_POINT('',(2.55,1.2,0.85));+#936 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#937 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#938 = ORIENTED_EDGE('',*,*,#865,.F.);+#939 = ORIENTED_EDGE('',*,*,#409,.F.);+#940 = ORIENTED_EDGE('',*,*,#941,.T.);+#941 = EDGE_CURVE('',#402,#942,#944,.T.);+#942 = VERTEX_POINT('',#943);+#943 = CARTESIAN_POINT('',(2.65,1.2,1.));+#944 = LINE('',#945,#946);+#945 = CARTESIAN_POINT('',(1.8,1.2,1.));+#946 = VECTOR('',#947,1.);+#947 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#948 = ORIENTED_EDGE('',*,*,#949,.F.);+#949 = EDGE_CURVE('',#882,#942,#950,.T.);+#950 = CIRCLE('',#951,5.E-002);+#951 = AXIS2_PLACEMENT_3D('',#952,#953,#954);+#952 = CARTESIAN_POINT('',(2.65,1.2,0.95));+#953 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#954 = DIRECTION('',(-0.E+000,0.E+000,-1.));+#955 = PLANE('',#956);+#956 = AXIS2_PLACEMENT_3D('',#957,#958,#959);+#957 = CARTESIAN_POINT('',(1.8,1.2,0.E+000));+#958 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#959 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#960 = ADVANCED_FACE('',(#961),#979,.T.);+#961 = FACE_BOUND('',#962,.T.);+#962 = EDGE_LOOP('',(#963,#971,#977,#978));+#963 = ORIENTED_EDGE('',*,*,#964,.T.);+#964 = EDGE_CURVE('',#942,#965,#967,.T.);+#965 = VERTEX_POINT('',#966);+#966 = CARTESIAN_POINT('',(2.65,2.1,1.));+#967 = LINE('',#968,#969);+#968 = CARTESIAN_POINT('',(2.65,1.2,1.));+#969 = VECTOR('',#970,1.);+#970 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#971 = ORIENTED_EDGE('',*,*,#972,.T.);+#972 = EDGE_CURVE('',#965,#394,#973,.T.);+#973 = LINE('',#974,#975);+#974 = CARTESIAN_POINT('',(2.7,2.1,1.));+#975 = VECTOR('',#976,1.);+#976 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#977 = ORIENTED_EDGE('',*,*,#401,.F.);+#978 = ORIENTED_EDGE('',*,*,#941,.T.);+#979 = PLANE('',#980);+#980 = AXIS2_PLACEMENT_3D('',#981,#982,#983);+#981 = CARTESIAN_POINT('',(2.25,1.65,1.));+#982 = DIRECTION('',(0.E+000,0.E+000,1.));+#983 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#984 = ADVANCED_FACE('',(#985),#1057,.F.);+#985 = FACE_BOUND('',#986,.F.);+#986 = EDGE_LOOP('',(#987,#998,#1006,#1013,#1014,#1015,#1016,#1025,#1033+,#1040,#1041,#1042,#1043,#1051));+#987 = ORIENTED_EDGE('',*,*,#988,.F.);+#988 = EDGE_CURVE('',#989,#991,#993,.T.);+#989 = VERTEX_POINT('',#990);+#990 = CARTESIAN_POINT('',(2.7,2.1,5.E-002));+#991 = VERTEX_POINT('',#992);+#992 = CARTESIAN_POINT('',(2.65,2.1,-6.938893903907E-018));+#993 = CIRCLE('',#994,5.E-002);+#994 = AXIS2_PLACEMENT_3D('',#995,#996,#997);+#995 = CARTESIAN_POINT('',(2.65,2.1,5.E-002));+#996 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#997 = DIRECTION('',(0.E+000,0.E+000,-1.));+#998 = ORIENTED_EDGE('',*,*,#999,.T.);+#999 = EDGE_CURVE('',#989,#1000,#1002,.T.);+#1000 = VERTEX_POINT('',#1001);+#1001 = CARTESIAN_POINT('',(2.7,2.1,0.95));+#1002 = LINE('',#1003,#1004);+#1003 = CARTESIAN_POINT('',(2.7,2.1,0.E+000));+#1004 = VECTOR('',#1005,1.);+#1005 = DIRECTION('',(0.E+000,0.E+000,1.));+#1006 = ORIENTED_EDGE('',*,*,#1007,.T.);+#1007 = EDGE_CURVE('',#1000,#965,#1008,.T.);+#1008 = CIRCLE('',#1009,5.E-002);+#1009 = AXIS2_PLACEMENT_3D('',#1010,#1011,#1012);+#1010 = CARTESIAN_POINT('',(2.65,2.1,0.95));+#1011 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1012 = DIRECTION('',(-0.E+000,0.E+000,-1.));+#1013 = ORIENTED_EDGE('',*,*,#972,.T.);+#1014 = ORIENTED_EDGE('',*,*,#393,.F.);+#1015 = ORIENTED_EDGE('',*,*,#858,.F.);+#1016 = ORIENTED_EDGE('',*,*,#1017,.T.);+#1017 = EDGE_CURVE('',#851,#1018,#1020,.T.);+#1018 = VERTEX_POINT('',#1019);+#1019 = CARTESIAN_POINT('',(2.6,2.1,0.85));+#1020 = CIRCLE('',#1021,5.E-002);+#1021 = AXIS2_PLACEMENT_3D('',#1022,#1023,#1024);+#1022 = CARTESIAN_POINT('',(2.55,2.1,0.85));+#1023 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1024 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1025 = ORIENTED_EDGE('',*,*,#1026,.T.);+#1026 = EDGE_CURVE('',#1018,#1027,#1029,.T.);+#1027 = VERTEX_POINT('',#1028);+#1028 = CARTESIAN_POINT('',(2.6,2.1,0.15));+#1029 = LINE('',#1030,#1031);+#1030 = CARTESIAN_POINT('',(2.6,2.1,5.E-002));+#1031 = VECTOR('',#1032,1.);+#1032 = DIRECTION('',(0.E+000,-0.E+000,-1.));+#1033 = ORIENTED_EDGE('',*,*,#1034,.T.);+#1034 = EDGE_CURVE('',#1027,#789,#1035,.T.);+#1035 = CIRCLE('',#1036,5.E-002);+#1036 = AXIS2_PLACEMENT_3D('',#1037,#1038,#1039);+#1037 = CARTESIAN_POINT('',(2.55,2.1,0.15));+#1038 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1039 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1040 = ORIENTED_EDGE('',*,*,#796,.T.);+#1041 = ORIENTED_EDGE('',*,*,#772,.T.);+#1042 = ORIENTED_EDGE('',*,*,#764,.F.);+#1043 = ORIENTED_EDGE('',*,*,#1044,.F.);+#1044 = EDGE_CURVE('',#1045,#757,#1047,.T.);+#1045 = VERTEX_POINT('',#1046);+#1046 = CARTESIAN_POINT('',(1.8,2.1,0.E+000));+#1047 = LINE('',#1048,#1049);+#1048 = CARTESIAN_POINT('',(1.8,2.1,0.E+000));+#1049 = VECTOR('',#1050,1.);+#1050 = DIRECTION('',(0.E+000,0.E+000,1.));+#1051 = ORIENTED_EDGE('',*,*,#1052,.F.);+#1052 = EDGE_CURVE('',#991,#1045,#1053,.T.);+#1053 = LINE('',#1054,#1055);+#1054 = CARTESIAN_POINT('',(2.7,2.1,0.E+000));+#1055 = VECTOR('',#1056,1.);+#1056 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1057 = PLANE('',#1058);+#1058 = AXIS2_PLACEMENT_3D('',#1059,#1060,#1061);+#1059 = CARTESIAN_POINT('',(2.7,2.1,0.E+000));+#1060 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1061 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1062 = ADVANCED_FACE('',(#1063),#1088,.T.);+#1063 = FACE_BOUND('',#1064,.T.);+#1064 = EDGE_LOOP('',(#1065,#1075,#1081,#1082));+#1065 = ORIENTED_EDGE('',*,*,#1066,.T.);+#1066 = EDGE_CURVE('',#1067,#1069,#1071,.T.);+#1067 = VERTEX_POINT('',#1068);+#1068 = CARTESIAN_POINT('',(2.65,-2.1,1.));+#1069 = VERTEX_POINT('',#1070);+#1070 = CARTESIAN_POINT('',(2.65,-1.2,1.));+#1071 = LINE('',#1072,#1073);+#1072 = CARTESIAN_POINT('',(2.65,-2.1,1.));+#1073 = VECTOR('',#1074,1.);+#1074 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1075 = ORIENTED_EDGE('',*,*,#1076,.T.);+#1076 = EDGE_CURVE('',#1069,#420,#1077,.T.);+#1077 = LINE('',#1078,#1079);+#1078 = CARTESIAN_POINT('',(2.7,-1.2,1.));+#1079 = VECTOR('',#1080,1.);+#1080 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1081 = ORIENTED_EDGE('',*,*,#417,.F.);+#1082 = ORIENTED_EDGE('',*,*,#1083,.T.);+#1083 = EDGE_CURVE('',#418,#1067,#1084,.T.);+#1084 = LINE('',#1085,#1086);+#1085 = CARTESIAN_POINT('',(1.8,-2.1,1.));+#1086 = VECTOR('',#1087,1.);+#1087 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1088 = PLANE('',#1089);+#1089 = AXIS2_PLACEMENT_3D('',#1090,#1091,#1092);+#1090 = CARTESIAN_POINT('',(2.25,-1.65,1.));+#1091 = DIRECTION('',(0.E+000,0.E+000,1.));+#1092 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1093 = ADVANCED_FACE('',(#1094),#1173,.F.);+#1094 = FACE_BOUND('',#1095,.F.);+#1095 = EDGE_LOOP('',(#1096,#1107,#1115,#1122,#1123,#1124,#1132,#1141,+#1149,#1156,#1157,#1158,#1159,#1167));+#1096 = ORIENTED_EDGE('',*,*,#1097,.F.);+#1097 = EDGE_CURVE('',#1098,#1100,#1102,.T.);+#1098 = VERTEX_POINT('',#1099);+#1099 = CARTESIAN_POINT('',(2.7,-1.2,5.E-002));+#1100 = VERTEX_POINT('',#1101);+#1101 = CARTESIAN_POINT('',(2.65,-1.2,-6.938893903907E-018));+#1102 = CIRCLE('',#1103,5.E-002);+#1103 = AXIS2_PLACEMENT_3D('',#1104,#1105,#1106);+#1104 = CARTESIAN_POINT('',(2.65,-1.2,5.E-002));+#1105 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1106 = DIRECTION('',(0.E+000,0.E+000,-1.));+#1107 = ORIENTED_EDGE('',*,*,#1108,.T.);+#1108 = EDGE_CURVE('',#1098,#1109,#1111,.T.);+#1109 = VERTEX_POINT('',#1110);+#1110 = CARTESIAN_POINT('',(2.7,-1.2,0.95));+#1111 = LINE('',#1112,#1113);+#1112 = CARTESIAN_POINT('',(2.7,-1.2,0.E+000));+#1113 = VECTOR('',#1114,1.);+#1114 = DIRECTION('',(0.E+000,0.E+000,1.));+#1115 = ORIENTED_EDGE('',*,*,#1116,.T.);+#1116 = EDGE_CURVE('',#1109,#1069,#1117,.T.);+#1117 = CIRCLE('',#1118,5.E-002);+#1118 = AXIS2_PLACEMENT_3D('',#1119,#1120,#1121);+#1119 = CARTESIAN_POINT('',(2.65,-1.2,0.95));+#1120 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1121 = DIRECTION('',(-0.E+000,0.E+000,-1.));+#1122 = ORIENTED_EDGE('',*,*,#1076,.T.);+#1123 = ORIENTED_EDGE('',*,*,#443,.F.);+#1124 = ORIENTED_EDGE('',*,*,#1125,.F.);+#1125 = EDGE_CURVE('',#1126,#436,#1128,.T.);+#1126 = VERTEX_POINT('',#1127);+#1127 = CARTESIAN_POINT('',(2.55,-1.2,0.9));+#1128 = LINE('',#1129,#1130);+#1129 = CARTESIAN_POINT('',(2.475,-1.2,0.9));+#1130 = VECTOR('',#1131,1.);+#1131 = DIRECTION('',(-1.,1.224646799147E-016,4.996063166392E-032));+#1132 = ORIENTED_EDGE('',*,*,#1133,.T.);+#1133 = EDGE_CURVE('',#1126,#1134,#1136,.T.);+#1134 = VERTEX_POINT('',#1135);+#1135 = CARTESIAN_POINT('',(2.6,-1.2,0.85));+#1136 = CIRCLE('',#1137,5.E-002);+#1137 = AXIS2_PLACEMENT_3D('',#1138,#1139,#1140);+#1138 = CARTESIAN_POINT('',(2.55,-1.2,0.85));+#1139 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1140 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1141 = ORIENTED_EDGE('',*,*,#1142,.T.);+#1142 = EDGE_CURVE('',#1134,#1143,#1145,.T.);+#1143 = VERTEX_POINT('',#1144);+#1144 = CARTESIAN_POINT('',(2.6,-1.2,0.15));+#1145 = LINE('',#1146,#1147);+#1146 = CARTESIAN_POINT('',(2.6,-1.2,5.E-002));+#1147 = VECTOR('',#1148,1.);+#1148 = DIRECTION('',(0.E+000,-0.E+000,-1.));+#1149 = ORIENTED_EDGE('',*,*,#1150,.T.);+#1150 = EDGE_CURVE('',#1143,#820,#1151,.T.);+#1151 = CIRCLE('',#1152,5.E-002);+#1152 = AXIS2_PLACEMENT_3D('',#1153,#1154,#1155);+#1153 = CARTESIAN_POINT('',(2.55,-1.2,0.15));+#1154 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1155 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1156 = ORIENTED_EDGE('',*,*,#827,.T.);+#1157 = ORIENTED_EDGE('',*,*,#733,.T.);+#1158 = ORIENTED_EDGE('',*,*,#725,.F.);+#1159 = ORIENTED_EDGE('',*,*,#1160,.F.);+#1160 = EDGE_CURVE('',#1161,#718,#1163,.T.);+#1161 = VERTEX_POINT('',#1162);+#1162 = CARTESIAN_POINT('',(1.8,-1.2,0.E+000));+#1163 = LINE('',#1164,#1165);+#1164 = CARTESIAN_POINT('',(1.8,-1.2,0.E+000));+#1165 = VECTOR('',#1166,1.);+#1166 = DIRECTION('',(0.E+000,0.E+000,1.));+#1167 = ORIENTED_EDGE('',*,*,#1168,.F.);+#1168 = EDGE_CURVE('',#1100,#1161,#1169,.T.);+#1169 = LINE('',#1170,#1171);+#1170 = CARTESIAN_POINT('',(2.7,-1.2,0.E+000));+#1171 = VECTOR('',#1172,1.);+#1172 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1173 = PLANE('',#1174);+#1174 = AXIS2_PLACEMENT_3D('',#1175,#1176,#1177);+#1175 = CARTESIAN_POINT('',(2.7,-1.2,0.E+000));+#1176 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1177 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1178 = ADVANCED_FACE('',(#1179),#1197,.F.);+#1179 = FACE_BOUND('',#1180,.F.);+#1180 = EDGE_LOOP('',(#1181,#1189,#1190,#1191));+#1181 = ORIENTED_EDGE('',*,*,#1182,.T.);+#1182 = EDGE_CURVE('',#1183,#1126,#1185,.T.);+#1183 = VERTEX_POINT('',#1184);+#1184 = CARTESIAN_POINT('',(2.55,-2.1,0.9));+#1185 = LINE('',#1186,#1187);+#1186 = CARTESIAN_POINT('',(2.55,-2.2,0.9));+#1187 = VECTOR('',#1188,1.);+#1188 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1189 = ORIENTED_EDGE('',*,*,#1125,.T.);+#1190 = ORIENTED_EDGE('',*,*,#435,.F.);+#1191 = ORIENTED_EDGE('',*,*,#1192,.T.);+#1192 = EDGE_CURVE('',#428,#1183,#1193,.T.);+#1193 = LINE('',#1194,#1195);+#1194 = CARTESIAN_POINT('',(2.025,-2.1,0.9));+#1195 = VECTOR('',#1196,1.);+#1196 = DIRECTION('',(1.,-1.224646799147E-016,-4.996063166392E-032));+#1197 = PLANE('',#1198);+#1198 = AXIS2_PLACEMENT_3D('',#1199,#1200,#1201);+#1199 = CARTESIAN_POINT('',(2.25,-1.65,0.9));+#1200 = DIRECTION('',(4.996063166392E-032,3.890767564419E-033,1.));+#1201 = DIRECTION('',(-1.,1.224646799147E-016,4.996063166392E-032));+#1202 = ADVANCED_FACE('',(#1203),#1275,.F.);+#1203 = FACE_BOUND('',#1204,.F.);+#1204 = EDGE_LOOP('',(#1205,#1215,#1224,#1232,#1238,#1239,#1240,#1241,+#1250,#1258,#1265,#1266,#1267,#1268));+#1205 = ORIENTED_EDGE('',*,*,#1206,.F.);+#1206 = EDGE_CURVE('',#1207,#1209,#1211,.T.);+#1207 = VERTEX_POINT('',#1208);+#1208 = CARTESIAN_POINT('',(2.7,-2.1,5.E-002));+#1209 = VERTEX_POINT('',#1210);+#1210 = CARTESIAN_POINT('',(2.7,-2.1,0.95));+#1211 = LINE('',#1212,#1213);+#1212 = CARTESIAN_POINT('',(2.7,-2.1,0.E+000));+#1213 = VECTOR('',#1214,1.);+#1214 = DIRECTION('',(0.E+000,0.E+000,1.));+#1215 = ORIENTED_EDGE('',*,*,#1216,.T.);+#1216 = EDGE_CURVE('',#1207,#1217,#1219,.T.);+#1217 = VERTEX_POINT('',#1218);+#1218 = CARTESIAN_POINT('',(2.65,-2.1,-6.938893903907E-018));+#1219 = CIRCLE('',#1220,5.E-002);+#1220 = AXIS2_PLACEMENT_3D('',#1221,#1222,#1223);+#1221 = CARTESIAN_POINT('',(2.65,-2.1,5.E-002));+#1222 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1223 = DIRECTION('',(0.E+000,0.E+000,-1.));+#1224 = ORIENTED_EDGE('',*,*,#1225,.F.);+#1225 = EDGE_CURVE('',#1226,#1217,#1228,.T.);+#1226 = VERTEX_POINT('',#1227);+#1227 = CARTESIAN_POINT('',(1.8,-2.1,0.E+000));+#1228 = LINE('',#1229,#1230);+#1229 = CARTESIAN_POINT('',(1.8,-2.1,0.E+000));+#1230 = VECTOR('',#1231,1.);+#1231 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1232 = ORIENTED_EDGE('',*,*,#1233,.T.);+#1233 = EDGE_CURVE('',#1226,#710,#1234,.T.);+#1234 = LINE('',#1235,#1236);+#1235 = CARTESIAN_POINT('',(1.8,-2.1,0.E+000));+#1236 = VECTOR('',#1237,1.);+#1237 = DIRECTION('',(0.E+000,0.E+000,1.));+#1238 = ORIENTED_EDGE('',*,*,#709,.F.);+#1239 = ORIENTED_EDGE('',*,*,#701,.T.);+#1240 = ORIENTED_EDGE('',*,*,#834,.T.);+#1241 = ORIENTED_EDGE('',*,*,#1242,.F.);+#1242 = EDGE_CURVE('',#1243,#818,#1245,.T.);+#1243 = VERTEX_POINT('',#1244);+#1244 = CARTESIAN_POINT('',(2.6,-2.1,0.15));+#1245 = CIRCLE('',#1246,5.E-002);+#1246 = AXIS2_PLACEMENT_3D('',#1247,#1248,#1249);+#1247 = CARTESIAN_POINT('',(2.55,-2.1,0.15));+#1248 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1249 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1250 = ORIENTED_EDGE('',*,*,#1251,.T.);+#1251 = EDGE_CURVE('',#1243,#1252,#1254,.T.);+#1252 = VERTEX_POINT('',#1253);+#1253 = CARTESIAN_POINT('',(2.6,-2.1,0.85));+#1254 = LINE('',#1255,#1256);+#1255 = CARTESIAN_POINT('',(2.6,-2.1,5.E-002));+#1256 = VECTOR('',#1257,1.);+#1257 = DIRECTION('',(0.E+000,0.E+000,1.));+#1258 = ORIENTED_EDGE('',*,*,#1259,.F.);+#1259 = EDGE_CURVE('',#1183,#1252,#1260,.T.);+#1260 = CIRCLE('',#1261,5.E-002);+#1261 = AXIS2_PLACEMENT_3D('',#1262,#1263,#1264);+#1262 = CARTESIAN_POINT('',(2.55,-2.1,0.85));+#1263 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1264 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1265 = ORIENTED_EDGE('',*,*,#1192,.F.);+#1266 = ORIENTED_EDGE('',*,*,#427,.F.);+#1267 = ORIENTED_EDGE('',*,*,#1083,.T.);+#1268 = ORIENTED_EDGE('',*,*,#1269,.F.);+#1269 = EDGE_CURVE('',#1209,#1067,#1270,.T.);+#1270 = CIRCLE('',#1271,5.E-002);+#1271 = AXIS2_PLACEMENT_3D('',#1272,#1273,#1274);+#1272 = CARTESIAN_POINT('',(2.65,-2.1,0.95));+#1273 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1274 = DIRECTION('',(-0.E+000,0.E+000,-1.));+#1275 = PLANE('',#1276);+#1276 = AXIS2_PLACEMENT_3D('',#1277,#1278,#1279);+#1277 = CARTESIAN_POINT('',(1.8,-2.1,0.E+000));+#1278 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1279 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1280 = ADVANCED_FACE('',(#1281),#1306,.T.);+#1281 = FACE_BOUND('',#1282,.T.);+#1282 = EDGE_LOOP('',(#1283,#1284,#1292,#1300));+#1283 = ORIENTED_EDGE('',*,*,#491,.F.);+#1284 = ORIENTED_EDGE('',*,*,#1285,.T.);+#1285 = EDGE_CURVE('',#492,#1286,#1288,.T.);+#1286 = VERTEX_POINT('',#1287);+#1287 = CARTESIAN_POINT('',(-2.55,2.1,0.1));+#1288 = LINE('',#1289,#1290);+#1289 = CARTESIAN_POINT('',(-2.025,2.1,0.1));+#1290 = VECTOR('',#1291,1.);+#1291 = DIRECTION('',(-1.,1.224646799147E-016,-4.996063166392E-032));+#1292 = ORIENTED_EDGE('',*,*,#1293,.T.);+#1293 = EDGE_CURVE('',#1286,#1294,#1296,.T.);+#1294 = VERTEX_POINT('',#1295);+#1295 = CARTESIAN_POINT('',(-2.55,1.2,0.1));+#1296 = LINE('',#1297,#1298);+#1297 = CARTESIAN_POINT('',(-2.55,2.2,0.1));+#1298 = VECTOR('',#1299,1.);+#1299 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1300 = ORIENTED_EDGE('',*,*,#1301,.T.);+#1301 = EDGE_CURVE('',#1294,#484,#1302,.T.);+#1302 = LINE('',#1303,#1304);+#1303 = CARTESIAN_POINT('',(-2.475,1.2,0.1));+#1304 = VECTOR('',#1305,1.);+#1305 = DIRECTION('',(1.,-1.224646799147E-016,4.996063166392E-032));+#1306 = PLANE('',#1307);+#1307 = AXIS2_PLACEMENT_3D('',#1308,#1309,#1310);+#1308 = CARTESIAN_POINT('',(-2.25,1.65,0.1));+#1309 = DIRECTION('',(-4.996063166392E-032,1.556307025767E-032,1.));+#1310 = DIRECTION('',(-1.,1.224646799147E-016,-4.996063166392E-032));+#1311 = ADVANCED_FACE('',(#1312),#1337,.T.);+#1312 = FACE_BOUND('',#1313,.T.);+#1313 = EDGE_LOOP('',(#1314,#1315,#1323,#1331));+#1314 = ORIENTED_EDGE('',*,*,#475,.F.);+#1315 = ORIENTED_EDGE('',*,*,#1316,.T.);+#1316 = EDGE_CURVE('',#476,#1317,#1319,.T.);+#1317 = VERTEX_POINT('',#1318);+#1318 = CARTESIAN_POINT('',(-2.55,-1.2,0.1));+#1319 = LINE('',#1320,#1321);+#1320 = CARTESIAN_POINT('',(-2.025,-1.2,0.1));+#1321 = VECTOR('',#1322,1.);+#1322 = DIRECTION('',(-1.,1.224646799147E-016,-4.996063166392E-032));+#1323 = ORIENTED_EDGE('',*,*,#1324,.T.);+#1324 = EDGE_CURVE('',#1317,#1325,#1327,.T.);+#1325 = VERTEX_POINT('',#1326);+#1326 = CARTESIAN_POINT('',(-2.55,-2.1,0.1));+#1327 = LINE('',#1328,#1329);+#1328 = CARTESIAN_POINT('',(-2.55,-1.1,0.1));+#1329 = VECTOR('',#1330,1.);+#1330 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1331 = ORIENTED_EDGE('',*,*,#1332,.T.);+#1332 = EDGE_CURVE('',#1325,#468,#1333,.T.);+#1333 = LINE('',#1334,#1335);+#1334 = CARTESIAN_POINT('',(-2.475,-2.1,0.1));+#1335 = VECTOR('',#1336,1.);+#1336 = DIRECTION('',(1.,-1.224646799147E-016,4.996063166392E-032));+#1337 = PLANE('',#1338);+#1338 = AXIS2_PLACEMENT_3D('',#1339,#1340,#1341);+#1339 = CARTESIAN_POINT('',(-2.25,-1.65,0.1));+#1340 = DIRECTION('',(-4.996063166392E-032,3.890767564419E-033,1.));+#1341 = DIRECTION('',(-1.,1.224646799147E-016,-4.996063166392E-032));+#1342 = ADVANCED_FACE('',(#1343),#1368,.T.);+#1343 = FACE_BOUND('',#1344,.T.);+#1344 = EDGE_LOOP('',(#1345,#1346,#1354,#1362));+#1345 = ORIENTED_EDGE('',*,*,#507,.F.);+#1346 = ORIENTED_EDGE('',*,*,#1347,.T.);+#1347 = EDGE_CURVE('',#508,#1348,#1350,.T.);+#1348 = VERTEX_POINT('',#1349);+#1349 = CARTESIAN_POINT('',(-2.65,-1.2,1.));+#1350 = LINE('',#1351,#1352);+#1351 = CARTESIAN_POINT('',(-1.8,-1.2,1.));+#1352 = VECTOR('',#1353,1.);+#1353 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1354 = ORIENTED_EDGE('',*,*,#1355,.T.);+#1355 = EDGE_CURVE('',#1348,#1356,#1358,.T.);+#1356 = VERTEX_POINT('',#1357);+#1357 = CARTESIAN_POINT('',(-2.65,-2.1,1.));+#1358 = LINE('',#1359,#1360);+#1359 = CARTESIAN_POINT('',(-2.65,-1.2,1.));+#1360 = VECTOR('',#1361,1.);+#1361 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1362 = ORIENTED_EDGE('',*,*,#1363,.T.);+#1363 = EDGE_CURVE('',#1356,#510,#1364,.T.);+#1364 = LINE('',#1365,#1366);+#1365 = CARTESIAN_POINT('',(-2.7,-2.1,1.));+#1366 = VECTOR('',#1367,1.);+#1367 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1368 = PLANE('',#1369);+#1369 = AXIS2_PLACEMENT_3D('',#1370,#1371,#1372);+#1370 = CARTESIAN_POINT('',(-2.25,-1.65,1.));+#1371 = DIRECTION('',(0.E+000,0.E+000,1.));+#1372 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1373 = ADVANCED_FACE('',(#1374),#1453,.F.);+#1374 = FACE_BOUND('',#1375,.F.);+#1375 = EDGE_LOOP('',(#1376,#1387,#1395,#1402,#1403,#1404,#1412,#1421,+#1429,#1436,#1437,#1438,#1439,#1447));+#1376 = ORIENTED_EDGE('',*,*,#1377,.F.);+#1377 = EDGE_CURVE('',#1378,#1380,#1382,.T.);+#1378 = VERTEX_POINT('',#1379);+#1379 = CARTESIAN_POINT('',(-2.7,-2.1,5.E-002));+#1380 = VERTEX_POINT('',#1381);+#1381 = CARTESIAN_POINT('',(-2.65,-2.1,-6.938893903907E-018));+#1382 = CIRCLE('',#1383,5.E-002);+#1383 = AXIS2_PLACEMENT_3D('',#1384,#1385,#1386);+#1384 = CARTESIAN_POINT('',(-2.65,-2.1,5.E-002));+#1385 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1386 = DIRECTION('',(0.E+000,0.E+000,1.));+#1387 = ORIENTED_EDGE('',*,*,#1388,.T.);+#1388 = EDGE_CURVE('',#1378,#1389,#1391,.T.);+#1389 = VERTEX_POINT('',#1390);+#1390 = CARTESIAN_POINT('',(-2.7,-2.1,0.95));+#1391 = LINE('',#1392,#1393);+#1392 = CARTESIAN_POINT('',(-2.7,-2.1,0.E+000));+#1393 = VECTOR('',#1394,1.);+#1394 = DIRECTION('',(0.E+000,0.E+000,1.));+#1395 = ORIENTED_EDGE('',*,*,#1396,.F.);+#1396 = EDGE_CURVE('',#1356,#1389,#1397,.T.);+#1397 = CIRCLE('',#1398,5.E-002);+#1398 = AXIS2_PLACEMENT_3D('',#1399,#1400,#1401);+#1399 = CARTESIAN_POINT('',(-2.65,-2.1,0.95));+#1400 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1401 = DIRECTION('',(0.E+000,0.E+000,1.));+#1402 = ORIENTED_EDGE('',*,*,#1363,.T.);+#1403 = ORIENTED_EDGE('',*,*,#533,.F.);+#1404 = ORIENTED_EDGE('',*,*,#1405,.F.);+#1405 = EDGE_CURVE('',#1406,#526,#1408,.T.);+#1406 = VERTEX_POINT('',#1407);+#1407 = CARTESIAN_POINT('',(-2.55,-2.1,0.9));+#1408 = LINE('',#1409,#1410);+#1409 = CARTESIAN_POINT('',(-2.475,-2.1,0.9));+#1410 = VECTOR('',#1411,1.);+#1411 = DIRECTION('',(1.,-1.224646799147E-016,4.996063166392E-032));+#1412 = ORIENTED_EDGE('',*,*,#1413,.T.);+#1413 = EDGE_CURVE('',#1406,#1414,#1416,.T.);+#1414 = VERTEX_POINT('',#1415);+#1415 = CARTESIAN_POINT('',(-2.6,-2.1,0.85));+#1416 = CIRCLE('',#1417,5.E-002);+#1417 = AXIS2_PLACEMENT_3D('',#1418,#1419,#1420);+#1418 = CARTESIAN_POINT('',(-2.55,-2.1,0.85));+#1419 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1420 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1421 = ORIENTED_EDGE('',*,*,#1422,.T.);+#1422 = EDGE_CURVE('',#1414,#1423,#1425,.T.);+#1423 = VERTEX_POINT('',#1424);+#1424 = CARTESIAN_POINT('',(-2.6,-2.1,0.15));+#1425 = LINE('',#1426,#1427);+#1426 = CARTESIAN_POINT('',(-2.6,-2.1,5.E-002));+#1427 = VECTOR('',#1428,1.);+#1428 = DIRECTION('',(0.E+000,0.E+000,-1.));+#1429 = ORIENTED_EDGE('',*,*,#1430,.T.);+#1430 = EDGE_CURVE('',#1423,#1325,#1431,.T.);+#1431 = CIRCLE('',#1432,5.E-002);+#1432 = AXIS2_PLACEMENT_3D('',#1433,#1434,#1435);+#1433 = CARTESIAN_POINT('',(-2.55,-2.1,0.15));+#1434 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1435 = DIRECTION('',(4.996063166392E-032,-6.11841276506E-048,-1.));+#1436 = ORIENTED_EDGE('',*,*,#1332,.T.);+#1437 = ORIENTED_EDGE('',*,*,#692,.T.);+#1438 = ORIENTED_EDGE('',*,*,#684,.F.);+#1439 = ORIENTED_EDGE('',*,*,#1440,.F.);+#1440 = EDGE_CURVE('',#1441,#677,#1443,.T.);+#1441 = VERTEX_POINT('',#1442);+#1442 = CARTESIAN_POINT('',(-1.8,-2.1,0.E+000));+#1443 = LINE('',#1444,#1445);+#1444 = CARTESIAN_POINT('',(-1.8,-2.1,0.E+000));+#1445 = VECTOR('',#1446,1.);+#1446 = DIRECTION('',(0.E+000,0.E+000,1.));+#1447 = ORIENTED_EDGE('',*,*,#1448,.F.);+#1448 = EDGE_CURVE('',#1380,#1441,#1449,.T.);+#1449 = LINE('',#1450,#1451);+#1450 = CARTESIAN_POINT('',(-2.7,-2.1,0.E+000));+#1451 = VECTOR('',#1452,1.);+#1452 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1453 = PLANE('',#1454);+#1454 = AXIS2_PLACEMENT_3D('',#1455,#1456,#1457);+#1455 = CARTESIAN_POINT('',(-2.7,-2.1,0.E+000));+#1456 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1457 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1458 = ADVANCED_FACE('',(#1459),#1477,.F.);+#1459 = FACE_BOUND('',#1460,.F.);+#1460 = EDGE_LOOP('',(#1461,#1462,#1470,#1476));+#1461 = ORIENTED_EDGE('',*,*,#525,.F.);+#1462 = ORIENTED_EDGE('',*,*,#1463,.T.);+#1463 = EDGE_CURVE('',#518,#1464,#1466,.T.);+#1464 = VERTEX_POINT('',#1465);+#1465 = CARTESIAN_POINT('',(-2.55,-1.2,0.9));+#1466 = LINE('',#1467,#1468);+#1467 = CARTESIAN_POINT('',(-2.025,-1.2,0.9));+#1468 = VECTOR('',#1469,1.);+#1469 = DIRECTION('',(-1.,1.224646799147E-016,-4.996063166392E-032));+#1470 = ORIENTED_EDGE('',*,*,#1471,.T.);+#1471 = EDGE_CURVE('',#1464,#1406,#1472,.T.);+#1472 = LINE('',#1473,#1474);+#1473 = CARTESIAN_POINT('',(-2.55,-1.1,0.9));+#1474 = VECTOR('',#1475,1.);+#1475 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1476 = ORIENTED_EDGE('',*,*,#1405,.T.);+#1477 = PLANE('',#1478);+#1478 = AXIS2_PLACEMENT_3D('',#1479,#1480,#1481);+#1479 = CARTESIAN_POINT('',(-2.25,-1.65,0.9));+#1480 = DIRECTION('',(-4.996063166392E-032,3.890767564419E-033,1.));+#1481 = DIRECTION('',(-1.,1.224646799147E-016,-4.996063166392E-032));+#1482 = ADVANCED_FACE('',(#1483),#1555,.F.);+#1483 = FACE_BOUND('',#1484,.F.);+#1484 = EDGE_LOOP('',(#1485,#1495,#1504,#1512,#1518,#1519,#1520,#1521,+#1530,#1538,#1545,#1546,#1547,#1548));+#1485 = ORIENTED_EDGE('',*,*,#1486,.F.);+#1486 = EDGE_CURVE('',#1487,#1489,#1491,.T.);+#1487 = VERTEX_POINT('',#1488);+#1488 = CARTESIAN_POINT('',(-2.7,-1.2,5.E-002));+#1489 = VERTEX_POINT('',#1490);+#1490 = CARTESIAN_POINT('',(-2.7,-1.2,0.95));+#1491 = LINE('',#1492,#1493);+#1492 = CARTESIAN_POINT('',(-2.7,-1.2,0.E+000));+#1493 = VECTOR('',#1494,1.);+#1494 = DIRECTION('',(0.E+000,0.E+000,1.));+#1495 = ORIENTED_EDGE('',*,*,#1496,.T.);+#1496 = EDGE_CURVE('',#1487,#1497,#1499,.T.);+#1497 = VERTEX_POINT('',#1498);+#1498 = CARTESIAN_POINT('',(-2.65,-1.2,-6.938893903907E-018));+#1499 = CIRCLE('',#1500,5.E-002);+#1500 = AXIS2_PLACEMENT_3D('',#1501,#1502,#1503);+#1501 = CARTESIAN_POINT('',(-2.65,-1.2,5.E-002));+#1502 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1503 = DIRECTION('',(0.E+000,0.E+000,1.));+#1504 = ORIENTED_EDGE('',*,*,#1505,.F.);+#1505 = EDGE_CURVE('',#1506,#1497,#1508,.T.);+#1506 = VERTEX_POINT('',#1507);+#1507 = CARTESIAN_POINT('',(-1.8,-1.2,0.E+000));+#1508 = LINE('',#1509,#1510);+#1509 = CARTESIAN_POINT('',(-1.8,-1.2,0.E+000));+#1510 = VECTOR('',#1511,1.);+#1511 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1512 = ORIENTED_EDGE('',*,*,#1513,.T.);+#1513 = EDGE_CURVE('',#1506,#669,#1514,.T.);+#1514 = LINE('',#1515,#1516);+#1515 = CARTESIAN_POINT('',(-1.8,-1.2,0.E+000));+#1516 = VECTOR('',#1517,1.);+#1517 = DIRECTION('',(0.E+000,0.E+000,1.));+#1518 = ORIENTED_EDGE('',*,*,#668,.F.);+#1519 = ORIENTED_EDGE('',*,*,#660,.T.);+#1520 = ORIENTED_EDGE('',*,*,#1316,.T.);+#1521 = ORIENTED_EDGE('',*,*,#1522,.F.);+#1522 = EDGE_CURVE('',#1523,#1317,#1525,.T.);+#1523 = VERTEX_POINT('',#1524);+#1524 = CARTESIAN_POINT('',(-2.6,-1.2,0.15));+#1525 = CIRCLE('',#1526,5.E-002);+#1526 = AXIS2_PLACEMENT_3D('',#1527,#1528,#1529);+#1527 = CARTESIAN_POINT('',(-2.55,-1.2,0.15));+#1528 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1529 = DIRECTION('',(4.996063166392E-032,-6.11841276506E-048,-1.));+#1530 = ORIENTED_EDGE('',*,*,#1531,.T.);+#1531 = EDGE_CURVE('',#1523,#1532,#1534,.T.);+#1532 = VERTEX_POINT('',#1533);+#1533 = CARTESIAN_POINT('',(-2.6,-1.2,0.85));+#1534 = LINE('',#1535,#1536);+#1535 = CARTESIAN_POINT('',(-2.6,-1.2,5.E-002));+#1536 = VECTOR('',#1537,1.);+#1537 = DIRECTION('',(0.E+000,0.E+000,1.));+#1538 = ORIENTED_EDGE('',*,*,#1539,.F.);+#1539 = EDGE_CURVE('',#1464,#1532,#1540,.T.);+#1540 = CIRCLE('',#1541,5.E-002);+#1541 = AXIS2_PLACEMENT_3D('',#1542,#1543,#1544);+#1542 = CARTESIAN_POINT('',(-2.55,-1.2,0.85));+#1543 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1544 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1545 = ORIENTED_EDGE('',*,*,#1463,.F.);+#1546 = ORIENTED_EDGE('',*,*,#517,.F.);+#1547 = ORIENTED_EDGE('',*,*,#1347,.T.);+#1548 = ORIENTED_EDGE('',*,*,#1549,.T.);+#1549 = EDGE_CURVE('',#1348,#1489,#1550,.T.);+#1550 = CIRCLE('',#1551,5.E-002);+#1551 = AXIS2_PLACEMENT_3D('',#1552,#1553,#1554);+#1552 = CARTESIAN_POINT('',(-2.65,-1.2,0.95));+#1553 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1554 = DIRECTION('',(0.E+000,0.E+000,1.));+#1555 = PLANE('',#1556);+#1556 = AXIS2_PLACEMENT_3D('',#1557,#1558,#1559);+#1557 = CARTESIAN_POINT('',(-1.8,-1.2,0.E+000));+#1558 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1559 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1560 = ADVANCED_FACE('',(#1561),#1586,.T.);+#1561 = FACE_BOUND('',#1562,.T.);+#1562 = EDGE_LOOP('',(#1563,#1564,#1572,#1580));+#1563 = ORIENTED_EDGE('',*,*,#541,.F.);+#1564 = ORIENTED_EDGE('',*,*,#1565,.T.);+#1565 = EDGE_CURVE('',#542,#1566,#1568,.T.);+#1566 = VERTEX_POINT('',#1567);+#1567 = CARTESIAN_POINT('',(-2.65,2.1,1.));+#1568 = LINE('',#1569,#1570);+#1569 = CARTESIAN_POINT('',(-1.8,2.1,1.));+#1570 = VECTOR('',#1571,1.);+#1571 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1572 = ORIENTED_EDGE('',*,*,#1573,.T.);+#1573 = EDGE_CURVE('',#1566,#1574,#1576,.T.);+#1574 = VERTEX_POINT('',#1575);+#1575 = CARTESIAN_POINT('',(-2.65,1.2,1.));+#1576 = LINE('',#1577,#1578);+#1577 = CARTESIAN_POINT('',(-2.65,2.1,1.));+#1578 = VECTOR('',#1579,1.);+#1579 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1580 = ORIENTED_EDGE('',*,*,#1581,.T.);+#1581 = EDGE_CURVE('',#1574,#544,#1582,.T.);+#1582 = LINE('',#1583,#1584);+#1583 = CARTESIAN_POINT('',(-2.7,1.2,1.));+#1584 = VECTOR('',#1585,1.);+#1585 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1586 = PLANE('',#1587);+#1587 = AXIS2_PLACEMENT_3D('',#1588,#1589,#1590);+#1588 = CARTESIAN_POINT('',(-2.25,1.65,1.));+#1589 = DIRECTION('',(0.E+000,0.E+000,1.));+#1590 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1591 = ADVANCED_FACE('',(#1592),#1671,.F.);+#1592 = FACE_BOUND('',#1593,.F.);+#1593 = EDGE_LOOP('',(#1594,#1605,#1613,#1620,#1621,#1622,#1630,#1639,+#1647,#1654,#1655,#1656,#1657,#1665));+#1594 = ORIENTED_EDGE('',*,*,#1595,.F.);+#1595 = EDGE_CURVE('',#1596,#1598,#1600,.T.);+#1596 = VERTEX_POINT('',#1597);+#1597 = CARTESIAN_POINT('',(-2.7,1.2,5.E-002));+#1598 = VERTEX_POINT('',#1599);+#1599 = CARTESIAN_POINT('',(-2.65,1.2,-6.938893903907E-018));+#1600 = CIRCLE('',#1601,5.E-002);+#1601 = AXIS2_PLACEMENT_3D('',#1602,#1603,#1604);+#1602 = CARTESIAN_POINT('',(-2.65,1.2,5.E-002));+#1603 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1604 = DIRECTION('',(0.E+000,0.E+000,1.));+#1605 = ORIENTED_EDGE('',*,*,#1606,.T.);+#1606 = EDGE_CURVE('',#1596,#1607,#1609,.T.);+#1607 = VERTEX_POINT('',#1608);+#1608 = CARTESIAN_POINT('',(-2.7,1.2,0.95));+#1609 = LINE('',#1610,#1611);+#1610 = CARTESIAN_POINT('',(-2.7,1.2,0.E+000));+#1611 = VECTOR('',#1612,1.);+#1612 = DIRECTION('',(0.E+000,0.E+000,1.));+#1613 = ORIENTED_EDGE('',*,*,#1614,.F.);+#1614 = EDGE_CURVE('',#1574,#1607,#1615,.T.);+#1615 = CIRCLE('',#1616,5.E-002);+#1616 = AXIS2_PLACEMENT_3D('',#1617,#1618,#1619);+#1617 = CARTESIAN_POINT('',(-2.65,1.2,0.95));+#1618 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1619 = DIRECTION('',(0.E+000,0.E+000,1.));+#1620 = ORIENTED_EDGE('',*,*,#1581,.T.);+#1621 = ORIENTED_EDGE('',*,*,#567,.F.);+#1622 = ORIENTED_EDGE('',*,*,#1623,.F.);+#1623 = EDGE_CURVE('',#1624,#560,#1626,.T.);+#1624 = VERTEX_POINT('',#1625);+#1625 = CARTESIAN_POINT('',(-2.55,1.2,0.9));+#1626 = LINE('',#1627,#1628);+#1627 = CARTESIAN_POINT('',(-2.475,1.2,0.9));+#1628 = VECTOR('',#1629,1.);+#1629 = DIRECTION('',(1.,-1.224646799147E-016,4.996063166392E-032));+#1630 = ORIENTED_EDGE('',*,*,#1631,.T.);+#1631 = EDGE_CURVE('',#1624,#1632,#1634,.T.);+#1632 = VERTEX_POINT('',#1633);+#1633 = CARTESIAN_POINT('',(-2.6,1.2,0.85));+#1634 = CIRCLE('',#1635,5.E-002);+#1635 = AXIS2_PLACEMENT_3D('',#1636,#1637,#1638);+#1636 = CARTESIAN_POINT('',(-2.55,1.2,0.85));+#1637 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1638 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1639 = ORIENTED_EDGE('',*,*,#1640,.T.);+#1640 = EDGE_CURVE('',#1632,#1641,#1643,.T.);+#1641 = VERTEX_POINT('',#1642);+#1642 = CARTESIAN_POINT('',(-2.6,1.2,0.15));+#1643 = LINE('',#1644,#1645);+#1644 = CARTESIAN_POINT('',(-2.6,1.2,5.E-002));+#1645 = VECTOR('',#1646,1.);+#1646 = DIRECTION('',(0.E+000,0.E+000,-1.));+#1647 = ORIENTED_EDGE('',*,*,#1648,.T.);+#1648 = EDGE_CURVE('',#1641,#1294,#1649,.T.);+#1649 = CIRCLE('',#1650,5.E-002);+#1650 = AXIS2_PLACEMENT_3D('',#1651,#1652,#1653);+#1651 = CARTESIAN_POINT('',(-2.55,1.2,0.15));+#1652 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1653 = DIRECTION('',(4.996063166392E-032,-6.11841276506E-048,-1.));+#1654 = ORIENTED_EDGE('',*,*,#1301,.T.);+#1655 = ORIENTED_EDGE('',*,*,#653,.T.);+#1656 = ORIENTED_EDGE('',*,*,#645,.F.);+#1657 = ORIENTED_EDGE('',*,*,#1658,.F.);+#1658 = EDGE_CURVE('',#1659,#638,#1661,.T.);+#1659 = VERTEX_POINT('',#1660);+#1660 = CARTESIAN_POINT('',(-1.8,1.2,0.E+000));+#1661 = LINE('',#1662,#1663);+#1662 = CARTESIAN_POINT('',(-1.8,1.2,0.E+000));+#1663 = VECTOR('',#1664,1.);+#1664 = DIRECTION('',(0.E+000,0.E+000,1.));+#1665 = ORIENTED_EDGE('',*,*,#1666,.F.);+#1666 = EDGE_CURVE('',#1598,#1659,#1667,.T.);+#1667 = LINE('',#1668,#1669);+#1668 = CARTESIAN_POINT('',(-2.7,1.2,0.E+000));+#1669 = VECTOR('',#1670,1.);+#1670 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1671 = PLANE('',#1672);+#1672 = AXIS2_PLACEMENT_3D('',#1673,#1674,#1675);+#1673 = CARTESIAN_POINT('',(-2.7,1.2,0.E+000));+#1674 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1675 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1676 = ADVANCED_FACE('',(#1677),#1695,.F.);+#1677 = FACE_BOUND('',#1678,.F.);+#1678 = EDGE_LOOP('',(#1679,#1680,#1688,#1694));+#1679 = ORIENTED_EDGE('',*,*,#559,.F.);+#1680 = ORIENTED_EDGE('',*,*,#1681,.T.);+#1681 = EDGE_CURVE('',#552,#1682,#1684,.T.);+#1682 = VERTEX_POINT('',#1683);+#1683 = CARTESIAN_POINT('',(-2.55,2.1,0.9));+#1684 = LINE('',#1685,#1686);+#1685 = CARTESIAN_POINT('',(-2.025,2.1,0.9));+#1686 = VECTOR('',#1687,1.);+#1687 = DIRECTION('',(-1.,1.224646799147E-016,-4.996063166392E-032));+#1688 = ORIENTED_EDGE('',*,*,#1689,.T.);+#1689 = EDGE_CURVE('',#1682,#1624,#1690,.T.);+#1690 = LINE('',#1691,#1692);+#1691 = CARTESIAN_POINT('',(-2.55,2.2,0.9));+#1692 = VECTOR('',#1693,1.);+#1693 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1694 = ORIENTED_EDGE('',*,*,#1623,.T.);+#1695 = PLANE('',#1696);+#1696 = AXIS2_PLACEMENT_3D('',#1697,#1698,#1699);+#1697 = CARTESIAN_POINT('',(-2.25,1.65,0.9));+#1698 = DIRECTION('',(-4.996063166392E-032,1.556307025767E-032,1.));+#1699 = DIRECTION('',(-1.,1.224646799147E-016,-4.996063166392E-032));+#1700 = ADVANCED_FACE('',(#1701),#1773,.F.);+#1701 = FACE_BOUND('',#1702,.F.);+#1702 = EDGE_LOOP('',(#1703,#1713,#1722,#1730,#1736,#1737,#1738,#1739,+#1748,#1756,#1763,#1764,#1765,#1766));+#1703 = ORIENTED_EDGE('',*,*,#1704,.F.);+#1704 = EDGE_CURVE('',#1705,#1707,#1709,.T.);+#1705 = VERTEX_POINT('',#1706);+#1706 = CARTESIAN_POINT('',(-2.7,2.1,5.E-002));+#1707 = VERTEX_POINT('',#1708);+#1708 = CARTESIAN_POINT('',(-2.7,2.1,0.95));+#1709 = LINE('',#1710,#1711);+#1710 = CARTESIAN_POINT('',(-2.7,2.1,0.E+000));+#1711 = VECTOR('',#1712,1.);+#1712 = DIRECTION('',(0.E+000,0.E+000,1.));+#1713 = ORIENTED_EDGE('',*,*,#1714,.T.);+#1714 = EDGE_CURVE('',#1705,#1715,#1717,.T.);+#1715 = VERTEX_POINT('',#1716);+#1716 = CARTESIAN_POINT('',(-2.65,2.1,-6.938893903907E-018));+#1717 = CIRCLE('',#1718,5.E-002);+#1718 = AXIS2_PLACEMENT_3D('',#1719,#1720,#1721);+#1719 = CARTESIAN_POINT('',(-2.65,2.1,5.E-002));+#1720 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1721 = DIRECTION('',(0.E+000,0.E+000,1.));+#1722 = ORIENTED_EDGE('',*,*,#1723,.F.);+#1723 = EDGE_CURVE('',#1724,#1715,#1726,.T.);+#1724 = VERTEX_POINT('',#1725);+#1725 = CARTESIAN_POINT('',(-1.8,2.1,0.E+000));+#1726 = LINE('',#1727,#1728);+#1727 = CARTESIAN_POINT('',(-1.8,2.1,0.E+000));+#1728 = VECTOR('',#1729,1.);+#1729 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1730 = ORIENTED_EDGE('',*,*,#1731,.T.);+#1731 = EDGE_CURVE('',#1724,#630,#1732,.T.);+#1732 = LINE('',#1733,#1734);+#1733 = CARTESIAN_POINT('',(-1.8,2.1,0.E+000));+#1734 = VECTOR('',#1735,1.);+#1735 = DIRECTION('',(0.E+000,0.E+000,1.));+#1736 = ORIENTED_EDGE('',*,*,#629,.F.);+#1737 = ORIENTED_EDGE('',*,*,#621,.T.);+#1738 = ORIENTED_EDGE('',*,*,#1285,.T.);+#1739 = ORIENTED_EDGE('',*,*,#1740,.F.);+#1740 = EDGE_CURVE('',#1741,#1286,#1743,.T.);+#1741 = VERTEX_POINT('',#1742);+#1742 = CARTESIAN_POINT('',(-2.6,2.1,0.15));+#1743 = CIRCLE('',#1744,5.E-002);+#1744 = AXIS2_PLACEMENT_3D('',#1745,#1746,#1747);+#1745 = CARTESIAN_POINT('',(-2.55,2.1,0.15));+#1746 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1747 = DIRECTION('',(4.996063166392E-032,-6.11841276506E-048,-1.));+#1748 = ORIENTED_EDGE('',*,*,#1749,.T.);+#1749 = EDGE_CURVE('',#1741,#1750,#1752,.T.);+#1750 = VERTEX_POINT('',#1751);+#1751 = CARTESIAN_POINT('',(-2.6,2.1,0.85));+#1752 = LINE('',#1753,#1754);+#1753 = CARTESIAN_POINT('',(-2.6,2.1,5.E-002));+#1754 = VECTOR('',#1755,1.);+#1755 = DIRECTION('',(0.E+000,0.E+000,1.));+#1756 = ORIENTED_EDGE('',*,*,#1757,.F.);+#1757 = EDGE_CURVE('',#1682,#1750,#1758,.T.);+#1758 = CIRCLE('',#1759,5.E-002);+#1759 = AXIS2_PLACEMENT_3D('',#1760,#1761,#1762);+#1760 = CARTESIAN_POINT('',(-2.55,2.1,0.85));+#1761 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1762 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1763 = ORIENTED_EDGE('',*,*,#1681,.F.);+#1764 = ORIENTED_EDGE('',*,*,#551,.F.);+#1765 = ORIENTED_EDGE('',*,*,#1565,.T.);+#1766 = ORIENTED_EDGE('',*,*,#1767,.T.);+#1767 = EDGE_CURVE('',#1566,#1707,#1768,.T.);+#1768 = CIRCLE('',#1769,5.E-002);+#1769 = AXIS2_PLACEMENT_3D('',#1770,#1771,#1772);+#1770 = CARTESIAN_POINT('',(-2.65,2.1,0.95));+#1771 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1772 = DIRECTION('',(0.E+000,0.E+000,1.));+#1773 = PLANE('',#1774);+#1774 = AXIS2_PLACEMENT_3D('',#1775,#1776,#1777);+#1775 = CARTESIAN_POINT('',(-1.8,2.1,0.E+000));+#1776 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1777 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1778 = ADVANCED_FACE('',(#1779),#1790,.F.);+#1779 = FACE_BOUND('',#1780,.F.);+#1780 = EDGE_LOOP('',(#1781,#1787,#1788,#1789));+#1781 = ORIENTED_EDGE('',*,*,#1782,.F.);+#1782 = EDGE_CURVE('',#1045,#899,#1783,.T.);+#1783 = LINE('',#1784,#1785);+#1784 = CARTESIAN_POINT('',(1.8,2.1,0.E+000));+#1785 = VECTOR('',#1786,1.);+#1786 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1787 = ORIENTED_EDGE('',*,*,#1044,.T.);+#1788 = ORIENTED_EDGE('',*,*,#756,.F.);+#1789 = ORIENTED_EDGE('',*,*,#906,.F.);+#1790 = PLANE('',#1791);+#1791 = AXIS2_PLACEMENT_3D('',#1792,#1793,#1794);+#1792 = CARTESIAN_POINT('',(1.8,2.1,0.E+000));+#1793 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1794 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1795 = ADVANCED_FACE('',(#1796),#1807,.F.);+#1796 = FACE_BOUND('',#1797,.F.);+#1797 = EDGE_LOOP('',(#1798,#1804,#1805,#1806));+#1798 = ORIENTED_EDGE('',*,*,#1799,.F.);+#1799 = EDGE_CURVE('',#1161,#1226,#1800,.T.);+#1800 = LINE('',#1801,#1802);+#1801 = CARTESIAN_POINT('',(1.8,-1.2,0.E+000));+#1802 = VECTOR('',#1803,1.);+#1803 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1804 = ORIENTED_EDGE('',*,*,#1160,.T.);+#1805 = ORIENTED_EDGE('',*,*,#717,.F.);+#1806 = ORIENTED_EDGE('',*,*,#1233,.F.);+#1807 = PLANE('',#1808);+#1808 = AXIS2_PLACEMENT_3D('',#1809,#1810,#1811);+#1809 = CARTESIAN_POINT('',(1.8,-1.2,0.E+000));+#1810 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1811 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#1812 = ADVANCED_FACE('',(#1813),#1824,.F.);+#1813 = FACE_BOUND('',#1814,.F.);+#1814 = EDGE_LOOP('',(#1815,#1821,#1822,#1823));+#1815 = ORIENTED_EDGE('',*,*,#1816,.F.);+#1816 = EDGE_CURVE('',#1441,#1506,#1817,.T.);+#1817 = LINE('',#1818,#1819);+#1818 = CARTESIAN_POINT('',(-1.8,-2.1,0.E+000));+#1819 = VECTOR('',#1820,1.);+#1820 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1821 = ORIENTED_EDGE('',*,*,#1440,.T.);+#1822 = ORIENTED_EDGE('',*,*,#676,.F.);+#1823 = ORIENTED_EDGE('',*,*,#1513,.F.);+#1824 = PLANE('',#1825);+#1825 = AXIS2_PLACEMENT_3D('',#1826,#1827,#1828);+#1826 = CARTESIAN_POINT('',(-1.8,-2.1,0.E+000));+#1827 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1828 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1829 = ADVANCED_FACE('',(#1830),#1841,.F.);+#1830 = FACE_BOUND('',#1831,.F.);+#1831 = EDGE_LOOP('',(#1832,#1838,#1839,#1840));+#1832 = ORIENTED_EDGE('',*,*,#1833,.F.);+#1833 = EDGE_CURVE('',#1659,#1724,#1834,.T.);+#1834 = LINE('',#1835,#1836);+#1835 = CARTESIAN_POINT('',(-1.8,1.2,0.E+000));+#1836 = VECTOR('',#1837,1.);+#1837 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1838 = ORIENTED_EDGE('',*,*,#1658,.T.);+#1839 = ORIENTED_EDGE('',*,*,#637,.F.);+#1840 = ORIENTED_EDGE('',*,*,#1731,.F.);+#1841 = PLANE('',#1842);+#1842 = AXIS2_PLACEMENT_3D('',#1843,#1844,#1845);+#1843 = CARTESIAN_POINT('',(-1.8,1.2,0.E+000));+#1844 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1845 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1846 = ADVANCED_FACE('',(#1847),#1858,.F.);+#1847 = FACE_BOUND('',#1848,.F.);+#1848 = EDGE_LOOP('',(#1849,#1850,#1851,#1852));+#1849 = ORIENTED_EDGE('',*,*,#915,.T.);+#1850 = ORIENTED_EDGE('',*,*,#786,.T.);+#1851 = ORIENTED_EDGE('',*,*,#1034,.F.);+#1852 = ORIENTED_EDGE('',*,*,#1853,.F.);+#1853 = EDGE_CURVE('',#916,#1027,#1854,.T.);+#1854 = LINE('',#1855,#1856);+#1855 = CARTESIAN_POINT('',(2.6,1.1,0.15));+#1856 = VECTOR('',#1857,1.);+#1857 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1858 = CYLINDRICAL_SURFACE('',#1859,5.E-002);+#1859 = AXIS2_PLACEMENT_3D('',#1860,#1861,#1862);+#1860 = CARTESIAN_POINT('',(2.55,1.1,0.15));+#1861 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1862 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1863 = ADVANCED_FACE('',(#1864),#1875,.F.);+#1864 = FACE_BOUND('',#1865,.F.);+#1865 = EDGE_LOOP('',(#1866,#1867,#1868,#1869));+#1866 = ORIENTED_EDGE('',*,*,#1242,.T.);+#1867 = ORIENTED_EDGE('',*,*,#817,.T.);+#1868 = ORIENTED_EDGE('',*,*,#1150,.F.);+#1869 = ORIENTED_EDGE('',*,*,#1870,.F.);+#1870 = EDGE_CURVE('',#1243,#1143,#1871,.T.);+#1871 = LINE('',#1872,#1873);+#1872 = CARTESIAN_POINT('',(2.6,-2.2,0.15));+#1873 = VECTOR('',#1874,1.);+#1874 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1875 = CYLINDRICAL_SURFACE('',#1876,5.E-002);+#1876 = AXIS2_PLACEMENT_3D('',#1877,#1878,#1879);+#1877 = CARTESIAN_POINT('',(2.55,-2.2,0.15));+#1878 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1879 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1880 = ADVANCED_FACE('',(#1881),#1892,.F.);+#1881 = FACE_BOUND('',#1882,.T.);+#1882 = EDGE_LOOP('',(#1883,#1884,#1885,#1886));+#1883 = ORIENTED_EDGE('',*,*,#932,.F.);+#1884 = ORIENTED_EDGE('',*,*,#848,.T.);+#1885 = ORIENTED_EDGE('',*,*,#1017,.T.);+#1886 = ORIENTED_EDGE('',*,*,#1887,.F.);+#1887 = EDGE_CURVE('',#925,#1018,#1888,.T.);+#1888 = LINE('',#1889,#1890);+#1889 = CARTESIAN_POINT('',(2.6,1.1,0.85));+#1890 = VECTOR('',#1891,1.);+#1891 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1892 = CYLINDRICAL_SURFACE('',#1893,5.E-002);+#1893 = AXIS2_PLACEMENT_3D('',#1894,#1895,#1896);+#1894 = CARTESIAN_POINT('',(2.55,1.1,0.85));+#1895 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1896 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1897 = ADVANCED_FACE('',(#1898),#1914,.F.);+#1898 = FACE_BOUND('',#1899,.F.);+#1899 = EDGE_LOOP('',(#1900,#1901,#1907,#1908));+#1900 = ORIENTED_EDGE('',*,*,#879,.T.);+#1901 = ORIENTED_EDGE('',*,*,#1902,.T.);+#1902 = EDGE_CURVE('',#882,#1000,#1903,.T.);+#1903 = LINE('',#1904,#1905);+#1904 = CARTESIAN_POINT('',(2.7,1.2,0.95));+#1905 = VECTOR('',#1906,1.);+#1906 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1907 = ORIENTED_EDGE('',*,*,#999,.F.);+#1908 = ORIENTED_EDGE('',*,*,#1909,.F.);+#1909 = EDGE_CURVE('',#880,#989,#1910,.T.);+#1910 = LINE('',#1911,#1912);+#1911 = CARTESIAN_POINT('',(2.7,1.2,5.E-002));+#1912 = VECTOR('',#1913,1.);+#1913 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1914 = PLANE('',#1915);+#1915 = AXIS2_PLACEMENT_3D('',#1916,#1917,#1918);+#1916 = CARTESIAN_POINT('',(2.7,1.2,0.E+000));+#1917 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1918 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1919 = ADVANCED_FACE('',(#1920),#1926,.T.);+#1920 = FACE_BOUND('',#1921,.F.);+#1921 = EDGE_LOOP('',(#1922,#1923,#1924,#1925));+#1922 = ORIENTED_EDGE('',*,*,#949,.T.);+#1923 = ORIENTED_EDGE('',*,*,#964,.T.);+#1924 = ORIENTED_EDGE('',*,*,#1007,.F.);+#1925 = ORIENTED_EDGE('',*,*,#1902,.F.);+#1926 = CYLINDRICAL_SURFACE('',#1927,5.E-002);+#1927 = AXIS2_PLACEMENT_3D('',#1928,#1929,#1930);+#1928 = CARTESIAN_POINT('',(2.65,1.2,0.95));+#1929 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1930 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1931 = ADVANCED_FACE('',(#1932),#1938,.T.);+#1932 = FACE_BOUND('',#1933,.T.);+#1933 = EDGE_LOOP('',(#1934,#1935,#1936,#1937));+#1934 = ORIENTED_EDGE('',*,*,#1853,.F.);+#1935 = ORIENTED_EDGE('',*,*,#924,.T.);+#1936 = ORIENTED_EDGE('',*,*,#1887,.T.);+#1937 = ORIENTED_EDGE('',*,*,#1026,.T.);+#1938 = PLANE('',#1939);+#1939 = AXIS2_PLACEMENT_3D('',#1940,#1941,#1942);+#1940 = CARTESIAN_POINT('',(2.6,1.1,0.1));+#1941 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1942 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1943 = ADVANCED_FACE('',(#1944),#1955,.F.);+#1944 = FACE_BOUND('',#1945,.F.);+#1945 = EDGE_LOOP('',(#1946,#1947,#1948,#1949));+#1946 = ORIENTED_EDGE('',*,*,#1052,.T.);+#1947 = ORIENTED_EDGE('',*,*,#1782,.T.);+#1948 = ORIENTED_EDGE('',*,*,#898,.T.);+#1949 = ORIENTED_EDGE('',*,*,#1950,.T.);+#1950 = EDGE_CURVE('',#890,#991,#1951,.T.);+#1951 = LINE('',#1952,#1953);+#1952 = CARTESIAN_POINT('',(2.65,1.2,-6.938893903907E-018));+#1953 = VECTOR('',#1954,1.);+#1954 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1955 = PLANE('',#1956);+#1956 = AXIS2_PLACEMENT_3D('',#1957,#1958,#1959);+#1957 = CARTESIAN_POINT('',(2.25,1.65,0.E+000));+#1958 = DIRECTION('',(0.E+000,0.E+000,1.));+#1959 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#1960 = ADVANCED_FACE('',(#1961),#1967,.T.);+#1961 = FACE_BOUND('',#1962,.T.);+#1962 = EDGE_LOOP('',(#1963,#1964,#1965,#1966));+#1963 = ORIENTED_EDGE('',*,*,#889,.T.);+#1964 = ORIENTED_EDGE('',*,*,#1950,.T.);+#1965 = ORIENTED_EDGE('',*,*,#988,.F.);+#1966 = ORIENTED_EDGE('',*,*,#1909,.F.);+#1967 = CYLINDRICAL_SURFACE('',#1968,5.E-002);+#1968 = AXIS2_PLACEMENT_3D('',#1969,#1970,#1971);+#1969 = CARTESIAN_POINT('',(2.65,1.2,5.E-002));+#1970 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1971 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1972 = ADVANCED_FACE('',(#1973),#1984,.T.);+#1973 = FACE_BOUND('',#1974,.F.);+#1974 = EDGE_LOOP('',(#1975,#1976,#1977,#1978));+#1975 = ORIENTED_EDGE('',*,*,#1269,.T.);+#1976 = ORIENTED_EDGE('',*,*,#1066,.T.);+#1977 = ORIENTED_EDGE('',*,*,#1116,.F.);+#1978 = ORIENTED_EDGE('',*,*,#1979,.F.);+#1979 = EDGE_CURVE('',#1209,#1109,#1980,.T.);+#1980 = LINE('',#1981,#1982);+#1981 = CARTESIAN_POINT('',(2.7,-2.1,0.95));+#1982 = VECTOR('',#1983,1.);+#1983 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1984 = CYLINDRICAL_SURFACE('',#1985,5.E-002);+#1985 = AXIS2_PLACEMENT_3D('',#1986,#1987,#1988);+#1986 = CARTESIAN_POINT('',(2.65,-2.1,0.95));+#1987 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1988 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#1989 = ADVANCED_FACE('',(#1990),#2006,.T.);+#1990 = FACE_BOUND('',#1991,.T.);+#1991 = EDGE_LOOP('',(#1992,#1993,#1999,#2000));+#1992 = ORIENTED_EDGE('',*,*,#1216,.T.);+#1993 = ORIENTED_EDGE('',*,*,#1994,.T.);+#1994 = EDGE_CURVE('',#1217,#1100,#1995,.T.);+#1995 = LINE('',#1996,#1997);+#1996 = CARTESIAN_POINT('',(2.65,-2.1,-6.938893903907E-018));+#1997 = VECTOR('',#1998,1.);+#1998 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#1999 = ORIENTED_EDGE('',*,*,#1097,.F.);+#2000 = ORIENTED_EDGE('',*,*,#2001,.F.);+#2001 = EDGE_CURVE('',#1207,#1098,#2002,.T.);+#2002 = LINE('',#2003,#2004);+#2003 = CARTESIAN_POINT('',(2.7,-2.1,5.E-002));+#2004 = VECTOR('',#2005,1.);+#2005 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#2006 = CYLINDRICAL_SURFACE('',#2007,5.E-002);+#2007 = AXIS2_PLACEMENT_3D('',#2008,#2009,#2010);+#2008 = CARTESIAN_POINT('',(2.65,-2.1,5.E-002));+#2009 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#2010 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#2011 = ADVANCED_FACE('',(#2012),#2018,.F.);+#2012 = FACE_BOUND('',#2013,.F.);+#2013 = EDGE_LOOP('',(#2014,#2015,#2016,#2017));+#2014 = ORIENTED_EDGE('',*,*,#1168,.T.);+#2015 = ORIENTED_EDGE('',*,*,#1799,.T.);+#2016 = ORIENTED_EDGE('',*,*,#1225,.T.);+#2017 = ORIENTED_EDGE('',*,*,#1994,.T.);+#2018 = PLANE('',#2019);+#2019 = AXIS2_PLACEMENT_3D('',#2020,#2021,#2022);+#2020 = CARTESIAN_POINT('',(2.25,-1.65,0.E+000));+#2021 = DIRECTION('',(0.E+000,0.E+000,1.));+#2022 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#2023 = ADVANCED_FACE('',(#2024),#2035,.T.);+#2024 = FACE_BOUND('',#2025,.T.);+#2025 = EDGE_LOOP('',(#2026,#2027,#2028,#2034));+#2026 = ORIENTED_EDGE('',*,*,#1870,.F.);+#2027 = ORIENTED_EDGE('',*,*,#1251,.T.);+#2028 = ORIENTED_EDGE('',*,*,#2029,.T.);+#2029 = EDGE_CURVE('',#1252,#1134,#2030,.T.);+#2030 = LINE('',#2031,#2032);+#2031 = CARTESIAN_POINT('',(2.6,-2.2,0.85));+#2032 = VECTOR('',#2033,1.);+#2033 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#2034 = ORIENTED_EDGE('',*,*,#1142,.T.);+#2035 = PLANE('',#2036);+#2036 = AXIS2_PLACEMENT_3D('',#2037,#2038,#2039);+#2037 = CARTESIAN_POINT('',(2.6,-2.2,0.1));+#2038 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#2039 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#2040 = ADVANCED_FACE('',(#2041),#2047,.F.);+#2041 = FACE_BOUND('',#2042,.T.);+#2042 = EDGE_LOOP('',(#2043,#2044,#2045,#2046));+#2043 = ORIENTED_EDGE('',*,*,#1259,.F.);+#2044 = ORIENTED_EDGE('',*,*,#1182,.T.);+#2045 = ORIENTED_EDGE('',*,*,#1133,.T.);+#2046 = ORIENTED_EDGE('',*,*,#2029,.F.);+#2047 = CYLINDRICAL_SURFACE('',#2048,5.E-002);+#2048 = AXIS2_PLACEMENT_3D('',#2049,#2050,#2051);+#2049 = CARTESIAN_POINT('',(2.55,-2.2,0.85));+#2050 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#2051 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#2052 = ADVANCED_FACE('',(#2053),#2059,.F.);+#2053 = FACE_BOUND('',#2054,.F.);+#2054 = EDGE_LOOP('',(#2055,#2056,#2057,#2058));+#2055 = ORIENTED_EDGE('',*,*,#1206,.T.);+#2056 = ORIENTED_EDGE('',*,*,#1979,.T.);+#2057 = ORIENTED_EDGE('',*,*,#1108,.F.);+#2058 = ORIENTED_EDGE('',*,*,#2001,.F.);+#2059 = PLANE('',#2060);+#2060 = AXIS2_PLACEMENT_3D('',#2061,#2062,#2063);+#2061 = CARTESIAN_POINT('',(2.7,-2.1,0.E+000));+#2062 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#2063 = DIRECTION('',(1.224646799147E-016,1.,0.E+000));+#2064 = ADVANCED_FACE('',(#2065),#2076,.F.);+#2065 = FACE_BOUND('',#2066,.T.);+#2066 = EDGE_LOOP('',(#2067,#2068,#2069,#2075));+#2067 = ORIENTED_EDGE('',*,*,#1293,.F.);+#2068 = ORIENTED_EDGE('',*,*,#1740,.F.);+#2069 = ORIENTED_EDGE('',*,*,#2070,.T.);+#2070 = EDGE_CURVE('',#1741,#1641,#2071,.T.);+#2071 = LINE('',#2072,#2073);+#2072 = CARTESIAN_POINT('',(-2.6,2.2,0.15));+#2073 = VECTOR('',#2074,1.);+#2074 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2075 = ORIENTED_EDGE('',*,*,#1648,.T.);+#2076 = CYLINDRICAL_SURFACE('',#2077,5.E-002);+#2077 = AXIS2_PLACEMENT_3D('',#2078,#2079,#2080);+#2078 = CARTESIAN_POINT('',(-2.55,2.2,0.15));+#2079 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2080 = DIRECTION('',(4.996063166392E-032,-6.11841276506E-048,-1.));+#2081 = ADVANCED_FACE('',(#2082),#2093,.F.);+#2082 = FACE_BOUND('',#2083,.T.);+#2083 = EDGE_LOOP('',(#2084,#2085,#2086,#2092));+#2084 = ORIENTED_EDGE('',*,*,#1324,.F.);+#2085 = ORIENTED_EDGE('',*,*,#1522,.F.);+#2086 = ORIENTED_EDGE('',*,*,#2087,.T.);+#2087 = EDGE_CURVE('',#1523,#1423,#2088,.T.);+#2088 = LINE('',#2089,#2090);+#2089 = CARTESIAN_POINT('',(-2.6,-1.1,0.15));+#2090 = VECTOR('',#2091,1.);+#2091 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2092 = ORIENTED_EDGE('',*,*,#1430,.T.);+#2093 = CYLINDRICAL_SURFACE('',#2094,5.E-002);+#2094 = AXIS2_PLACEMENT_3D('',#2095,#2096,#2097);+#2095 = CARTESIAN_POINT('',(-2.55,-1.1,0.15));+#2096 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2097 = DIRECTION('',(4.996063166392E-032,-6.11841276506E-048,-1.));+#2098 = ADVANCED_FACE('',(#2099),#2110,.T.);+#2099 = FACE_BOUND('',#2100,.T.);+#2100 = EDGE_LOOP('',(#2101,#2102,#2108,#2109));+#2101 = ORIENTED_EDGE('',*,*,#1549,.T.);+#2102 = ORIENTED_EDGE('',*,*,#2103,.T.);+#2103 = EDGE_CURVE('',#1489,#1389,#2104,.T.);+#2104 = LINE('',#2105,#2106);+#2105 = CARTESIAN_POINT('',(-2.7,-1.2,0.95));+#2106 = VECTOR('',#2107,1.);+#2107 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2108 = ORIENTED_EDGE('',*,*,#1396,.F.);+#2109 = ORIENTED_EDGE('',*,*,#1355,.F.);+#2110 = CYLINDRICAL_SURFACE('',#2111,5.E-002);+#2111 = AXIS2_PLACEMENT_3D('',#2112,#2113,#2114);+#2112 = CARTESIAN_POINT('',(-2.65,-1.2,0.95));+#2113 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2114 = DIRECTION('',(0.E+000,0.E+000,1.));+#2115 = ADVANCED_FACE('',(#2116),#2132,.T.);+#2116 = FACE_BOUND('',#2117,.T.);+#2117 = EDGE_LOOP('',(#2118,#2119,#2125,#2126));+#2118 = ORIENTED_EDGE('',*,*,#1496,.T.);+#2119 = ORIENTED_EDGE('',*,*,#2120,.T.);+#2120 = EDGE_CURVE('',#1497,#1380,#2121,.T.);+#2121 = LINE('',#2122,#2123);+#2122 = CARTESIAN_POINT('',(-2.65,-1.2,-6.938893903907E-018));+#2123 = VECTOR('',#2124,1.);+#2124 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2125 = ORIENTED_EDGE('',*,*,#1377,.F.);+#2126 = ORIENTED_EDGE('',*,*,#2127,.F.);+#2127 = EDGE_CURVE('',#1487,#1378,#2128,.T.);+#2128 = LINE('',#2129,#2130);+#2129 = CARTESIAN_POINT('',(-2.7,-1.2,5.E-002));+#2130 = VECTOR('',#2131,1.);+#2131 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2132 = CYLINDRICAL_SURFACE('',#2133,5.E-002);+#2133 = AXIS2_PLACEMENT_3D('',#2134,#2135,#2136);+#2134 = CARTESIAN_POINT('',(-2.65,-1.2,5.E-002));+#2135 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2136 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#2137 = ADVANCED_FACE('',(#2138),#2144,.F.);+#2138 = FACE_BOUND('',#2139,.F.);+#2139 = EDGE_LOOP('',(#2140,#2141,#2142,#2143));+#2140 = ORIENTED_EDGE('',*,*,#1505,.T.);+#2141 = ORIENTED_EDGE('',*,*,#2120,.T.);+#2142 = ORIENTED_EDGE('',*,*,#1448,.T.);+#2143 = ORIENTED_EDGE('',*,*,#1816,.T.);+#2144 = PLANE('',#2145);+#2145 = AXIS2_PLACEMENT_3D('',#2146,#2147,#2148);+#2146 = CARTESIAN_POINT('',(-2.25,-1.65,0.E+000));+#2147 = DIRECTION('',(0.E+000,0.E+000,1.));+#2148 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#2149 = ADVANCED_FACE('',(#2150),#2161,.T.);+#2150 = FACE_BOUND('',#2151,.T.);+#2151 = EDGE_LOOP('',(#2152,#2153,#2154,#2160));+#2152 = ORIENTED_EDGE('',*,*,#2087,.F.);+#2153 = ORIENTED_EDGE('',*,*,#1531,.T.);+#2154 = ORIENTED_EDGE('',*,*,#2155,.T.);+#2155 = EDGE_CURVE('',#1532,#1414,#2156,.T.);+#2156 = LINE('',#2157,#2158);+#2157 = CARTESIAN_POINT('',(-2.6,-1.1,0.85));+#2158 = VECTOR('',#2159,1.);+#2159 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2160 = ORIENTED_EDGE('',*,*,#1422,.T.);+#2161 = PLANE('',#2162);+#2162 = AXIS2_PLACEMENT_3D('',#2163,#2164,#2165);+#2163 = CARTESIAN_POINT('',(-2.6,-1.1,0.1));+#2164 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#2165 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2166 = ADVANCED_FACE('',(#2167),#2173,.F.);+#2167 = FACE_BOUND('',#2168,.T.);+#2168 = EDGE_LOOP('',(#2169,#2170,#2171,#2172));+#2169 = ORIENTED_EDGE('',*,*,#1539,.F.);+#2170 = ORIENTED_EDGE('',*,*,#1471,.T.);+#2171 = ORIENTED_EDGE('',*,*,#1413,.T.);+#2172 = ORIENTED_EDGE('',*,*,#2155,.F.);+#2173 = CYLINDRICAL_SURFACE('',#2174,5.E-002);+#2174 = AXIS2_PLACEMENT_3D('',#2175,#2176,#2177);+#2175 = CARTESIAN_POINT('',(-2.55,-1.1,0.85));+#2176 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2177 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#2178 = ADVANCED_FACE('',(#2179),#2185,.F.);+#2179 = FACE_BOUND('',#2180,.F.);+#2180 = EDGE_LOOP('',(#2181,#2182,#2183,#2184));+#2181 = ORIENTED_EDGE('',*,*,#1486,.T.);+#2182 = ORIENTED_EDGE('',*,*,#2103,.T.);+#2183 = ORIENTED_EDGE('',*,*,#1388,.F.);+#2184 = ORIENTED_EDGE('',*,*,#2127,.F.);+#2185 = PLANE('',#2186);+#2186 = AXIS2_PLACEMENT_3D('',#2187,#2188,#2189);+#2187 = CARTESIAN_POINT('',(-2.7,-1.2,0.E+000));+#2188 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#2189 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2190 = ADVANCED_FACE('',(#2191),#2202,.T.);+#2191 = FACE_BOUND('',#2192,.T.);+#2192 = EDGE_LOOP('',(#2193,#2194,#2200,#2201));+#2193 = ORIENTED_EDGE('',*,*,#1767,.T.);+#2194 = ORIENTED_EDGE('',*,*,#2195,.T.);+#2195 = EDGE_CURVE('',#1707,#1607,#2196,.T.);+#2196 = LINE('',#2197,#2198);+#2197 = CARTESIAN_POINT('',(-2.7,2.1,0.95));+#2198 = VECTOR('',#2199,1.);+#2199 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2200 = ORIENTED_EDGE('',*,*,#1614,.F.);+#2201 = ORIENTED_EDGE('',*,*,#1573,.F.);+#2202 = CYLINDRICAL_SURFACE('',#2203,5.E-002);+#2203 = AXIS2_PLACEMENT_3D('',#2204,#2205,#2206);+#2204 = CARTESIAN_POINT('',(-2.65,2.1,0.95));+#2205 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2206 = DIRECTION('',(0.E+000,0.E+000,1.));+#2207 = ADVANCED_FACE('',(#2208),#2224,.T.);+#2208 = FACE_BOUND('',#2209,.T.);+#2209 = EDGE_LOOP('',(#2210,#2211,#2217,#2218));+#2210 = ORIENTED_EDGE('',*,*,#1714,.T.);+#2211 = ORIENTED_EDGE('',*,*,#2212,.T.);+#2212 = EDGE_CURVE('',#1715,#1598,#2213,.T.);+#2213 = LINE('',#2214,#2215);+#2214 = CARTESIAN_POINT('',(-2.65,2.1,-6.938893903907E-018));+#2215 = VECTOR('',#2216,1.);+#2216 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2217 = ORIENTED_EDGE('',*,*,#1595,.F.);+#2218 = ORIENTED_EDGE('',*,*,#2219,.F.);+#2219 = EDGE_CURVE('',#1705,#1596,#2220,.T.);+#2220 = LINE('',#2221,#2222);+#2221 = CARTESIAN_POINT('',(-2.7,2.1,5.E-002));+#2222 = VECTOR('',#2223,1.);+#2223 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2224 = CYLINDRICAL_SURFACE('',#2225,5.E-002);+#2225 = AXIS2_PLACEMENT_3D('',#2226,#2227,#2228);+#2226 = CARTESIAN_POINT('',(-2.65,2.1,5.E-002));+#2227 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2228 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#2229 = ADVANCED_FACE('',(#2230),#2236,.F.);+#2230 = FACE_BOUND('',#2231,.F.);+#2231 = EDGE_LOOP('',(#2232,#2233,#2234,#2235));+#2232 = ORIENTED_EDGE('',*,*,#1723,.T.);+#2233 = ORIENTED_EDGE('',*,*,#2212,.T.);+#2234 = ORIENTED_EDGE('',*,*,#1666,.T.);+#2235 = ORIENTED_EDGE('',*,*,#1833,.T.);+#2236 = PLANE('',#2237);+#2237 = AXIS2_PLACEMENT_3D('',#2238,#2239,#2240);+#2238 = CARTESIAN_POINT('',(-2.25,1.65,0.E+000));+#2239 = DIRECTION('',(0.E+000,0.E+000,1.));+#2240 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#2241 = ADVANCED_FACE('',(#2242),#2253,.T.);+#2242 = FACE_BOUND('',#2243,.T.);+#2243 = EDGE_LOOP('',(#2244,#2245,#2246,#2252));+#2244 = ORIENTED_EDGE('',*,*,#2070,.F.);+#2245 = ORIENTED_EDGE('',*,*,#1749,.T.);+#2246 = ORIENTED_EDGE('',*,*,#2247,.T.);+#2247 = EDGE_CURVE('',#1750,#1632,#2248,.T.);+#2248 = LINE('',#2249,#2250);+#2249 = CARTESIAN_POINT('',(-2.6,2.2,0.85));+#2250 = VECTOR('',#2251,1.);+#2251 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2252 = ORIENTED_EDGE('',*,*,#1640,.T.);+#2253 = PLANE('',#2254);+#2254 = AXIS2_PLACEMENT_3D('',#2255,#2256,#2257);+#2255 = CARTESIAN_POINT('',(-2.6,2.2,0.1));+#2256 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#2257 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2258 = ADVANCED_FACE('',(#2259),#2265,.F.);+#2259 = FACE_BOUND('',#2260,.T.);+#2260 = EDGE_LOOP('',(#2261,#2262,#2263,#2264));+#2261 = ORIENTED_EDGE('',*,*,#1757,.F.);+#2262 = ORIENTED_EDGE('',*,*,#1689,.T.);+#2263 = ORIENTED_EDGE('',*,*,#1631,.T.);+#2264 = ORIENTED_EDGE('',*,*,#2247,.F.);+#2265 = CYLINDRICAL_SURFACE('',#2266,5.E-002);+#2266 = AXIS2_PLACEMENT_3D('',#2267,#2268,#2269);+#2267 = CARTESIAN_POINT('',(-2.55,2.2,0.85));+#2268 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2269 = DIRECTION('',(-1.,1.224646799147E-016,0.E+000));+#2270 = ADVANCED_FACE('',(#2271),#2277,.F.);+#2271 = FACE_BOUND('',#2272,.F.);+#2272 = EDGE_LOOP('',(#2273,#2274,#2275,#2276));+#2273 = ORIENTED_EDGE('',*,*,#1704,.T.);+#2274 = ORIENTED_EDGE('',*,*,#2195,.T.);+#2275 = ORIENTED_EDGE('',*,*,#1606,.F.);+#2276 = ORIENTED_EDGE('',*,*,#2219,.F.);+#2277 = PLANE('',#2278);+#2278 = AXIS2_PLACEMENT_3D('',#2279,#2280,#2281);+#2279 = CARTESIAN_POINT('',(-2.7,2.1,0.E+000));+#2280 = DIRECTION('',(1.,-1.224646799147E-016,0.E+000));+#2281 = DIRECTION('',(-1.224646799147E-016,-1.,0.E+000));+#2282 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2286))+GLOBAL_UNIT_ASSIGNED_CONTEXT((#2283,#2284,#2285)) REPRESENTATION_CONTEXT+('Context #1','3D Context with UNIT and UNCERTAINTY') );+#2283 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );+#2284 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );+#2285 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );+#2286 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-007),#2283,+'distance_accuracy_value','confusion accuracy');+#2287 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7));+#2288 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(+#2289,#2297,#2304,#2311,#2318,#2325,#2332,#2339,#2346,#2353,#2360,+#2367,#2374,#2381,#2389,#2396,#2403,#2411,#2418,#2425,#2432,#2439,+#2446,#2453,#2460,#2467,#2474,#2481,#2488,#2495,#2502,#2509,#2516,+#2523,#2530,#2537,#2544,#2551,#2558,#2565,#2572,#2579,#2586,#2593,+#2600,#2607,#2614,#2621,#2628,#2635,#2642,#2649,#2656,#2663,#2670,+#2677,#2684,#2691,#2698,#2705,#2712,#2719,#2726,#2733,#2740,#2747,+#2754,#2761),#2282);+#2289 = STYLED_ITEM('color',(#2290),#17);+#2290 = PRESENTATION_STYLE_ASSIGNMENT((#2291));+#2291 = SURFACE_STYLE_USAGE(.BOTH.,#2292);+#2292 = SURFACE_SIDE_STYLE('',(#2293));+#2293 = SURFACE_STYLE_FILL_AREA(#2294);+#2294 = FILL_AREA_STYLE('',(#2295));+#2295 = FILL_AREA_STYLE_COLOUR('',#2296);+#2296 = COLOUR_RGB('',0.893999993801,0.89099997282,0.813000023365);+#2297 = STYLED_ITEM('color',(#2298),#76);+#2298 = PRESENTATION_STYLE_ASSIGNMENT((#2299));+#2299 = SURFACE_STYLE_USAGE(.BOTH.,#2300);+#2300 = SURFACE_SIDE_STYLE('',(#2301));+#2301 = SURFACE_STYLE_FILL_AREA(#2302);+#2302 = FILL_AREA_STYLE('',(#2303));+#2303 = FILL_AREA_STYLE_COLOUR('',#2296);+#2304 = STYLED_ITEM('color',(#2305),#101);+#2305 = PRESENTATION_STYLE_ASSIGNMENT((#2306));+#2306 = SURFACE_STYLE_USAGE(.BOTH.,#2307);+#2307 = SURFACE_SIDE_STYLE('',(#2308));+#2308 = SURFACE_STYLE_FILL_AREA(#2309);+#2309 = FILL_AREA_STYLE('',(#2310));+#2310 = FILL_AREA_STYLE_COLOUR('',#2296);+#2311 = STYLED_ITEM('color',(#2312),#134);+#2312 = PRESENTATION_STYLE_ASSIGNMENT((#2313));+#2313 = SURFACE_STYLE_USAGE(.BOTH.,#2314);+#2314 = SURFACE_SIDE_STYLE('',(#2315));+#2315 = SURFACE_STYLE_FILL_AREA(#2316);+#2316 = FILL_AREA_STYLE('',(#2317));+#2317 = FILL_AREA_STYLE_COLOUR('',#2296);+#2318 = STYLED_ITEM('color',(#2319),#159);+#2319 = PRESENTATION_STYLE_ASSIGNMENT((#2320));+#2320 = SURFACE_STYLE_USAGE(.BOTH.,#2321);+#2321 = SURFACE_SIDE_STYLE('',(#2322));+#2322 = SURFACE_STYLE_FILL_AREA(#2323);+#2323 = FILL_AREA_STYLE('',(#2324));+#2324 = FILL_AREA_STYLE_COLOUR('',#2296);+#2325 = STYLED_ITEM('color',(#2326),#184);+#2326 = PRESENTATION_STYLE_ASSIGNMENT((#2327));+#2327 = SURFACE_STYLE_USAGE(.BOTH.,#2328);+#2328 = SURFACE_SIDE_STYLE('',(#2329));+#2329 = SURFACE_STYLE_FILL_AREA(#2330);+#2330 = FILL_AREA_STYLE('',(#2331));+#2331 = FILL_AREA_STYLE_COLOUR('',#2296);+#2332 = STYLED_ITEM('color',(#2333),#209);+#2333 = PRESENTATION_STYLE_ASSIGNMENT((#2334));+#2334 = SURFACE_STYLE_USAGE(.BOTH.,#2335);+#2335 = SURFACE_SIDE_STYLE('',(#2336));+#2336 = SURFACE_STYLE_FILL_AREA(#2337);+#2337 = FILL_AREA_STYLE('',(#2338));+#2338 = FILL_AREA_STYLE_COLOUR('',#2296);+#2339 = STYLED_ITEM('color',(#2340),#226);+#2340 = PRESENTATION_STYLE_ASSIGNMENT((#2341));+#2341 = SURFACE_STYLE_USAGE(.BOTH.,#2342);+#2342 = SURFACE_SIDE_STYLE('',(#2343));+#2343 = SURFACE_STYLE_FILL_AREA(#2344);+#2344 = FILL_AREA_STYLE('',(#2345));+#2345 = FILL_AREA_STYLE_COLOUR('',#2296);+#2346 = STYLED_ITEM('color',(#2347),#251);+#2347 = PRESENTATION_STYLE_ASSIGNMENT((#2348));+#2348 = SURFACE_STYLE_USAGE(.BOTH.,#2349);+#2349 = SURFACE_SIDE_STYLE('',(#2350));+#2350 = SURFACE_STYLE_FILL_AREA(#2351);+#2351 = FILL_AREA_STYLE('',(#2352));+#2352 = FILL_AREA_STYLE_COLOUR('',#2296);+#2353 = STYLED_ITEM('color',(#2354),#282);+#2354 = PRESENTATION_STYLE_ASSIGNMENT((#2355));+#2355 = SURFACE_STYLE_USAGE(.BOTH.,#2356);+#2356 = SURFACE_SIDE_STYLE('',(#2357));+#2357 = SURFACE_STYLE_FILL_AREA(#2358);+#2358 = FILL_AREA_STYLE('',(#2359));+#2359 = FILL_AREA_STYLE_COLOUR('',#2296);+#2360 = STYLED_ITEM('color',(#2361),#322);+#2361 = PRESENTATION_STYLE_ASSIGNMENT((#2362));+#2362 = SURFACE_STYLE_USAGE(.BOTH.,#2363);+#2363 = SURFACE_SIDE_STYLE('',(#2364));+#2364 = SURFACE_STYLE_FILL_AREA(#2365);+#2365 = FILL_AREA_STYLE('',(#2366));+#2366 = FILL_AREA_STYLE_COLOUR('',#2296);+#2367 = STYLED_ITEM('color',(#2368),#453);+#2368 = PRESENTATION_STYLE_ASSIGNMENT((#2369));+#2369 = SURFACE_STYLE_USAGE(.BOTH.,#2370);+#2370 = SURFACE_SIDE_STYLE('',(#2371));+#2371 = SURFACE_STYLE_FILL_AREA(#2372);+#2372 = FILL_AREA_STYLE('',(#2373));+#2373 = FILL_AREA_STYLE_COLOUR('',#2296);+#2374 = STYLED_ITEM('color',(#2375),#577);+#2375 = PRESENTATION_STYLE_ASSIGNMENT((#2376));+#2376 = SURFACE_STYLE_USAGE(.BOTH.,#2377);+#2377 = SURFACE_SIDE_STYLE('',(#2378));+#2378 = SURFACE_STYLE_FILL_AREA(#2379);+#2379 = FILL_AREA_STYLE('',(#2380));+#2380 = FILL_AREA_STYLE_COLOUR('',#2296);+#2381 = STYLED_ITEM('color',(#2382),#594);+#2382 = PRESENTATION_STYLE_ASSIGNMENT((#2383));+#2383 = SURFACE_STYLE_USAGE(.BOTH.,#2384);+#2384 = SURFACE_SIDE_STYLE('',(#2385));+#2385 = SURFACE_STYLE_FILL_AREA(#2386);+#2386 = FILL_AREA_STYLE('',(#2387));+#2387 = FILL_AREA_STYLE_COLOUR('',#2388);+#2388 = COLOUR_RGB('',0.136999994516,0.402000010014,0.726999998093);+#2389 = STYLED_ITEM('color',(#2390),#603);+#2390 = PRESENTATION_STYLE_ASSIGNMENT((#2391));+#2391 = SURFACE_STYLE_USAGE(.BOTH.,#2392);+#2392 = SURFACE_SIDE_STYLE('',(#2393));+#2393 = SURFACE_STYLE_FILL_AREA(#2394);+#2394 = FILL_AREA_STYLE('',(#2395));+#2395 = FILL_AREA_STYLE_COLOUR('',#2296);+#2396 = STYLED_ITEM('color',(#2397),#614);+#2397 = PRESENTATION_STYLE_ASSIGNMENT((#2398));+#2398 = SURFACE_STYLE_USAGE(.BOTH.,#2399);+#2399 = SURFACE_SIDE_STYLE('',(#2400));+#2400 = SURFACE_STYLE_FILL_AREA(#2401);+#2401 = FILL_AREA_STYLE('',(#2402));+#2402 = FILL_AREA_STYLE_COLOUR('',#2296);+#2403 = STYLED_ITEM('color',(#2404),#782);+#2404 = PRESENTATION_STYLE_ASSIGNMENT((#2405));+#2405 = SURFACE_STYLE_USAGE(.BOTH.,#2406);+#2406 = SURFACE_SIDE_STYLE('',(#2407));+#2407 = SURFACE_STYLE_FILL_AREA(#2408);+#2408 = FILL_AREA_STYLE('',(#2409));+#2409 = FILL_AREA_STYLE_COLOUR('',#2410);+#2410 = COLOUR_RGB('',0.824000000954,0.819999992847,0.78100001812);+#2411 = STYLED_ITEM('color',(#2412),#813);+#2412 = PRESENTATION_STYLE_ASSIGNMENT((#2413));+#2413 = SURFACE_STYLE_USAGE(.BOTH.,#2414);+#2414 = SURFACE_SIDE_STYLE('',(#2415));+#2415 = SURFACE_STYLE_FILL_AREA(#2416);+#2416 = FILL_AREA_STYLE('',(#2417));+#2417 = FILL_AREA_STYLE_COLOUR('',#2410);+#2418 = STYLED_ITEM('color',(#2419),#844);+#2419 = PRESENTATION_STYLE_ASSIGNMENT((#2420));+#2420 = SURFACE_STYLE_USAGE(.BOTH.,#2421);+#2421 = SURFACE_SIDE_STYLE('',(#2422));+#2422 = SURFACE_STYLE_FILL_AREA(#2423);+#2423 = FILL_AREA_STYLE('',(#2424));+#2424 = FILL_AREA_STYLE_COLOUR('',#2410);+#2425 = STYLED_ITEM('color',(#2426),#875);+#2426 = PRESENTATION_STYLE_ASSIGNMENT((#2427));+#2427 = SURFACE_STYLE_USAGE(.BOTH.,#2428);+#2428 = SURFACE_SIDE_STYLE('',(#2429));+#2429 = SURFACE_STYLE_FILL_AREA(#2430);+#2430 = FILL_AREA_STYLE('',(#2431));+#2431 = FILL_AREA_STYLE_COLOUR('',#2410);+#2432 = STYLED_ITEM('color',(#2433),#960);+#2433 = PRESENTATION_STYLE_ASSIGNMENT((#2434));+#2434 = SURFACE_STYLE_USAGE(.BOTH.,#2435);+#2435 = SURFACE_SIDE_STYLE('',(#2436));+#2436 = SURFACE_STYLE_FILL_AREA(#2437);+#2437 = FILL_AREA_STYLE('',(#2438));+#2438 = FILL_AREA_STYLE_COLOUR('',#2410);+#2439 = STYLED_ITEM('color',(#2440),#984);+#2440 = PRESENTATION_STYLE_ASSIGNMENT((#2441));+#2441 = SURFACE_STYLE_USAGE(.BOTH.,#2442);+#2442 = SURFACE_SIDE_STYLE('',(#2443));+#2443 = SURFACE_STYLE_FILL_AREA(#2444);+#2444 = FILL_AREA_STYLE('',(#2445));+#2445 = FILL_AREA_STYLE_COLOUR('',#2410);+#2446 = STYLED_ITEM('color',(#2447),#1062);+#2447 = PRESENTATION_STYLE_ASSIGNMENT((#2448));+#2448 = SURFACE_STYLE_USAGE(.BOTH.,#2449);+#2449 = SURFACE_SIDE_STYLE('',(#2450));+#2450 = SURFACE_STYLE_FILL_AREA(#2451);+#2451 = FILL_AREA_STYLE('',(#2452));+#2452 = FILL_AREA_STYLE_COLOUR('',#2410);+#2453 = STYLED_ITEM('color',(#2454),#1093);+#2454 = PRESENTATION_STYLE_ASSIGNMENT((#2455));+#2455 = SURFACE_STYLE_USAGE(.BOTH.,#2456);+#2456 = SURFACE_SIDE_STYLE('',(#2457));+#2457 = SURFACE_STYLE_FILL_AREA(#2458);+#2458 = FILL_AREA_STYLE('',(#2459));+#2459 = FILL_AREA_STYLE_COLOUR('',#2410);+#2460 = STYLED_ITEM('color',(#2461),#1178);+#2461 = PRESENTATION_STYLE_ASSIGNMENT((#2462));+#2462 = SURFACE_STYLE_USAGE(.BOTH.,#2463);+#2463 = SURFACE_SIDE_STYLE('',(#2464));+#2464 = SURFACE_STYLE_FILL_AREA(#2465);+#2465 = FILL_AREA_STYLE('',(#2466));+#2466 = FILL_AREA_STYLE_COLOUR('',#2410);+#2467 = STYLED_ITEM('color',(#2468),#1202);+#2468 = PRESENTATION_STYLE_ASSIGNMENT((#2469));+#2469 = SURFACE_STYLE_USAGE(.BOTH.,#2470);+#2470 = SURFACE_SIDE_STYLE('',(#2471));+#2471 = SURFACE_STYLE_FILL_AREA(#2472);+#2472 = FILL_AREA_STYLE('',(#2473));+#2473 = FILL_AREA_STYLE_COLOUR('',#2410);+#2474 = STYLED_ITEM('color',(#2475),#1280);+#2475 = PRESENTATION_STYLE_ASSIGNMENT((#2476));+#2476 = SURFACE_STYLE_USAGE(.BOTH.,#2477);+#2477 = SURFACE_SIDE_STYLE('',(#2478));+#2478 = SURFACE_STYLE_FILL_AREA(#2479);+#2479 = FILL_AREA_STYLE('',(#2480));+#2480 = FILL_AREA_STYLE_COLOUR('',#2410);+#2481 = STYLED_ITEM('color',(#2482),#1311);+#2482 = PRESENTATION_STYLE_ASSIGNMENT((#2483));+#2483 = SURFACE_STYLE_USAGE(.BOTH.,#2484);+#2484 = SURFACE_SIDE_STYLE('',(#2485));+#2485 = SURFACE_STYLE_FILL_AREA(#2486);+#2486 = FILL_AREA_STYLE('',(#2487));+#2487 = FILL_AREA_STYLE_COLOUR('',#2410);+#2488 = STYLED_ITEM('color',(#2489),#1342);+#2489 = PRESENTATION_STYLE_ASSIGNMENT((#2490));+#2490 = SURFACE_STYLE_USAGE(.BOTH.,#2491);+#2491 = SURFACE_SIDE_STYLE('',(#2492));+#2492 = SURFACE_STYLE_FILL_AREA(#2493);+#2493 = FILL_AREA_STYLE('',(#2494));+#2494 = FILL_AREA_STYLE_COLOUR('',#2410);+#2495 = STYLED_ITEM('color',(#2496),#1373);+#2496 = PRESENTATION_STYLE_ASSIGNMENT((#2497));+#2497 = SURFACE_STYLE_USAGE(.BOTH.,#2498);+#2498 = SURFACE_SIDE_STYLE('',(#2499));+#2499 = SURFACE_STYLE_FILL_AREA(#2500);+#2500 = FILL_AREA_STYLE('',(#2501));+#2501 = FILL_AREA_STYLE_COLOUR('',#2410);+#2502 = STYLED_ITEM('color',(#2503),#1458);+#2503 = PRESENTATION_STYLE_ASSIGNMENT((#2504));+#2504 = SURFACE_STYLE_USAGE(.BOTH.,#2505);+#2505 = SURFACE_SIDE_STYLE('',(#2506));+#2506 = SURFACE_STYLE_FILL_AREA(#2507);+#2507 = FILL_AREA_STYLE('',(#2508));+#2508 = FILL_AREA_STYLE_COLOUR('',#2410);+#2509 = STYLED_ITEM('color',(#2510),#1482);+#2510 = PRESENTATION_STYLE_ASSIGNMENT((#2511));+#2511 = SURFACE_STYLE_USAGE(.BOTH.,#2512);+#2512 = SURFACE_SIDE_STYLE('',(#2513));+#2513 = SURFACE_STYLE_FILL_AREA(#2514);+#2514 = FILL_AREA_STYLE('',(#2515));+#2515 = FILL_AREA_STYLE_COLOUR('',#2410);+#2516 = STYLED_ITEM('color',(#2517),#1560);+#2517 = PRESENTATION_STYLE_ASSIGNMENT((#2518));+#2518 = SURFACE_STYLE_USAGE(.BOTH.,#2519);+#2519 = SURFACE_SIDE_STYLE('',(#2520));+#2520 = SURFACE_STYLE_FILL_AREA(#2521);+#2521 = FILL_AREA_STYLE('',(#2522));+#2522 = FILL_AREA_STYLE_COLOUR('',#2410);+#2523 = STYLED_ITEM('color',(#2524),#1591);+#2524 = PRESENTATION_STYLE_ASSIGNMENT((#2525));+#2525 = SURFACE_STYLE_USAGE(.BOTH.,#2526);+#2526 = SURFACE_SIDE_STYLE('',(#2527));+#2527 = SURFACE_STYLE_FILL_AREA(#2528);+#2528 = FILL_AREA_STYLE('',(#2529));+#2529 = FILL_AREA_STYLE_COLOUR('',#2410);+#2530 = STYLED_ITEM('color',(#2531),#1676);+#2531 = PRESENTATION_STYLE_ASSIGNMENT((#2532));+#2532 = SURFACE_STYLE_USAGE(.BOTH.,#2533);+#2533 = SURFACE_SIDE_STYLE('',(#2534));+#2534 = SURFACE_STYLE_FILL_AREA(#2535);+#2535 = FILL_AREA_STYLE('',(#2536));+#2536 = FILL_AREA_STYLE_COLOUR('',#2410);+#2537 = STYLED_ITEM('color',(#2538),#1700);+#2538 = PRESENTATION_STYLE_ASSIGNMENT((#2539));+#2539 = SURFACE_STYLE_USAGE(.BOTH.,#2540);+#2540 = SURFACE_SIDE_STYLE('',(#2541));+#2541 = SURFACE_STYLE_FILL_AREA(#2542);+#2542 = FILL_AREA_STYLE('',(#2543));+#2543 = FILL_AREA_STYLE_COLOUR('',#2410);+#2544 = STYLED_ITEM('color',(#2545),#1778);+#2545 = PRESENTATION_STYLE_ASSIGNMENT((#2546));+#2546 = SURFACE_STYLE_USAGE(.BOTH.,#2547);+#2547 = SURFACE_SIDE_STYLE('',(#2548));+#2548 = SURFACE_STYLE_FILL_AREA(#2549);+#2549 = FILL_AREA_STYLE('',(#2550));+#2550 = FILL_AREA_STYLE_COLOUR('',#2410);+#2551 = STYLED_ITEM('color',(#2552),#1795);+#2552 = PRESENTATION_STYLE_ASSIGNMENT((#2553));+#2553 = SURFACE_STYLE_USAGE(.BOTH.,#2554);+#2554 = SURFACE_SIDE_STYLE('',(#2555));+#2555 = SURFACE_STYLE_FILL_AREA(#2556);+#2556 = FILL_AREA_STYLE('',(#2557));+#2557 = FILL_AREA_STYLE_COLOUR('',#2410);+#2558 = STYLED_ITEM('color',(#2559),#1812);+#2559 = PRESENTATION_STYLE_ASSIGNMENT((#2560));+#2560 = SURFACE_STYLE_USAGE(.BOTH.,#2561);+#2561 = SURFACE_SIDE_STYLE('',(#2562));+#2562 = SURFACE_STYLE_FILL_AREA(#2563);+#2563 = FILL_AREA_STYLE('',(#2564));+#2564 = FILL_AREA_STYLE_COLOUR('',#2410);+#2565 = STYLED_ITEM('color',(#2566),#1829);+#2566 = PRESENTATION_STYLE_ASSIGNMENT((#2567));+#2567 = SURFACE_STYLE_USAGE(.BOTH.,#2568);+#2568 = SURFACE_SIDE_STYLE('',(#2569));+#2569 = SURFACE_STYLE_FILL_AREA(#2570);+#2570 = FILL_AREA_STYLE('',(#2571));+#2571 = FILL_AREA_STYLE_COLOUR('',#2410);+#2572 = STYLED_ITEM('color',(#2573),#1846);+#2573 = PRESENTATION_STYLE_ASSIGNMENT((#2574));+#2574 = SURFACE_STYLE_USAGE(.BOTH.,#2575);+#2575 = SURFACE_SIDE_STYLE('',(#2576));+#2576 = SURFACE_STYLE_FILL_AREA(#2577);+#2577 = FILL_AREA_STYLE('',(#2578));+#2578 = FILL_AREA_STYLE_COLOUR('',#2410);+#2579 = STYLED_ITEM('color',(#2580),#1863);+#2580 = PRESENTATION_STYLE_ASSIGNMENT((#2581));+#2581 = SURFACE_STYLE_USAGE(.BOTH.,#2582);+#2582 = SURFACE_SIDE_STYLE('',(#2583));+#2583 = SURFACE_STYLE_FILL_AREA(#2584);+#2584 = FILL_AREA_STYLE('',(#2585));+#2585 = FILL_AREA_STYLE_COLOUR('',#2410);+#2586 = STYLED_ITEM('color',(#2587),#1880);+#2587 = PRESENTATION_STYLE_ASSIGNMENT((#2588));+#2588 = SURFACE_STYLE_USAGE(.BOTH.,#2589);+#2589 = SURFACE_SIDE_STYLE('',(#2590));+#2590 = SURFACE_STYLE_FILL_AREA(#2591);+#2591 = FILL_AREA_STYLE('',(#2592));+#2592 = FILL_AREA_STYLE_COLOUR('',#2410);+#2593 = STYLED_ITEM('color',(#2594),#1897);+#2594 = PRESENTATION_STYLE_ASSIGNMENT((#2595));+#2595 = SURFACE_STYLE_USAGE(.BOTH.,#2596);+#2596 = SURFACE_SIDE_STYLE('',(#2597));+#2597 = SURFACE_STYLE_FILL_AREA(#2598);+#2598 = FILL_AREA_STYLE('',(#2599));+#2599 = FILL_AREA_STYLE_COLOUR('',#2410);+#2600 = STYLED_ITEM('color',(#2601),#1919);+#2601 = PRESENTATION_STYLE_ASSIGNMENT((#2602));+#2602 = SURFACE_STYLE_USAGE(.BOTH.,#2603);+#2603 = SURFACE_SIDE_STYLE('',(#2604));+#2604 = SURFACE_STYLE_FILL_AREA(#2605);+#2605 = FILL_AREA_STYLE('',(#2606));+#2606 = FILL_AREA_STYLE_COLOUR('',#2410);+#2607 = STYLED_ITEM('color',(#2608),#1931);+#2608 = PRESENTATION_STYLE_ASSIGNMENT((#2609));+#2609 = SURFACE_STYLE_USAGE(.BOTH.,#2610);+#2610 = SURFACE_SIDE_STYLE('',(#2611));+#2611 = SURFACE_STYLE_FILL_AREA(#2612);+#2612 = FILL_AREA_STYLE('',(#2613));+#2613 = FILL_AREA_STYLE_COLOUR('',#2410);+#2614 = STYLED_ITEM('color',(#2615),#1943);+#2615 = PRESENTATION_STYLE_ASSIGNMENT((#2616));+#2616 = SURFACE_STYLE_USAGE(.BOTH.,#2617);+#2617 = SURFACE_SIDE_STYLE('',(#2618));+#2618 = SURFACE_STYLE_FILL_AREA(#2619);+#2619 = FILL_AREA_STYLE('',(#2620));+#2620 = FILL_AREA_STYLE_COLOUR('',#2410);+#2621 = STYLED_ITEM('color',(#2622),#1960);+#2622 = PRESENTATION_STYLE_ASSIGNMENT((#2623));+#2623 = SURFACE_STYLE_USAGE(.BOTH.,#2624);+#2624 = SURFACE_SIDE_STYLE('',(#2625));+#2625 = SURFACE_STYLE_FILL_AREA(#2626);+#2626 = FILL_AREA_STYLE('',(#2627));+#2627 = FILL_AREA_STYLE_COLOUR('',#2410);+#2628 = STYLED_ITEM('color',(#2629),#1972);+#2629 = PRESENTATION_STYLE_ASSIGNMENT((#2630));+#2630 = SURFACE_STYLE_USAGE(.BOTH.,#2631);+#2631 = SURFACE_SIDE_STYLE('',(#2632));+#2632 = SURFACE_STYLE_FILL_AREA(#2633);+#2633 = FILL_AREA_STYLE('',(#2634));+#2634 = FILL_AREA_STYLE_COLOUR('',#2410);+#2635 = STYLED_ITEM('color',(#2636),#1989);+#2636 = PRESENTATION_STYLE_ASSIGNMENT((#2637));+#2637 = SURFACE_STYLE_USAGE(.BOTH.,#2638);+#2638 = SURFACE_SIDE_STYLE('',(#2639));+#2639 = SURFACE_STYLE_FILL_AREA(#2640);+#2640 = FILL_AREA_STYLE('',(#2641));+#2641 = FILL_AREA_STYLE_COLOUR('',#2410);+#2642 = STYLED_ITEM('color',(#2643),#2011);+#2643 = PRESENTATION_STYLE_ASSIGNMENT((#2644));+#2644 = SURFACE_STYLE_USAGE(.BOTH.,#2645);+#2645 = SURFACE_SIDE_STYLE('',(#2646));+#2646 = SURFACE_STYLE_FILL_AREA(#2647);+#2647 = FILL_AREA_STYLE('',(#2648));+#2648 = FILL_AREA_STYLE_COLOUR('',#2410);+#2649 = STYLED_ITEM('color',(#2650),#2023);+#2650 = PRESENTATION_STYLE_ASSIGNMENT((#2651));+#2651 = SURFACE_STYLE_USAGE(.BOTH.,#2652);+#2652 = SURFACE_SIDE_STYLE('',(#2653));+#2653 = SURFACE_STYLE_FILL_AREA(#2654);+#2654 = FILL_AREA_STYLE('',(#2655));+#2655 = FILL_AREA_STYLE_COLOUR('',#2410);+#2656 = STYLED_ITEM('color',(#2657),#2040);+#2657 = PRESENTATION_STYLE_ASSIGNMENT((#2658));+#2658 = SURFACE_STYLE_USAGE(.BOTH.,#2659);+#2659 = SURFACE_SIDE_STYLE('',(#2660));+#2660 = SURFACE_STYLE_FILL_AREA(#2661);+#2661 = FILL_AREA_STYLE('',(#2662));+#2662 = FILL_AREA_STYLE_COLOUR('',#2410);+#2663 = STYLED_ITEM('color',(#2664),#2052);+#2664 = PRESENTATION_STYLE_ASSIGNMENT((#2665));+#2665 = SURFACE_STYLE_USAGE(.BOTH.,#2666);+#2666 = SURFACE_SIDE_STYLE('',(#2667));+#2667 = SURFACE_STYLE_FILL_AREA(#2668);+#2668 = FILL_AREA_STYLE('',(#2669));+#2669 = FILL_AREA_STYLE_COLOUR('',#2410);+#2670 = STYLED_ITEM('color',(#2671),#2064);+#2671 = PRESENTATION_STYLE_ASSIGNMENT((#2672));+#2672 = SURFACE_STYLE_USAGE(.BOTH.,#2673);+#2673 = SURFACE_SIDE_STYLE('',(#2674));+#2674 = SURFACE_STYLE_FILL_AREA(#2675);+#2675 = FILL_AREA_STYLE('',(#2676));+#2676 = FILL_AREA_STYLE_COLOUR('',#2410);+#2677 = STYLED_ITEM('color',(#2678),#2081);+#2678 = PRESENTATION_STYLE_ASSIGNMENT((#2679));+#2679 = SURFACE_STYLE_USAGE(.BOTH.,#2680);+#2680 = SURFACE_SIDE_STYLE('',(#2681));+#2681 = SURFACE_STYLE_FILL_AREA(#2682);+#2682 = FILL_AREA_STYLE('',(#2683));+#2683 = FILL_AREA_STYLE_COLOUR('',#2410);+#2684 = STYLED_ITEM('color',(#2685),#2098);+#2685 = PRESENTATION_STYLE_ASSIGNMENT((#2686));+#2686 = SURFACE_STYLE_USAGE(.BOTH.,#2687);+#2687 = SURFACE_SIDE_STYLE('',(#2688));+#2688 = SURFACE_STYLE_FILL_AREA(#2689);+#2689 = FILL_AREA_STYLE('',(#2690));+#2690 = FILL_AREA_STYLE_COLOUR('',#2410);+#2691 = STYLED_ITEM('color',(#2692),#2115);+#2692 = PRESENTATION_STYLE_ASSIGNMENT((#2693));+#2693 = SURFACE_STYLE_USAGE(.BOTH.,#2694);+#2694 = SURFACE_SIDE_STYLE('',(#2695));+#2695 = SURFACE_STYLE_FILL_AREA(#2696);+#2696 = FILL_AREA_STYLE('',(#2697));+#2697 = FILL_AREA_STYLE_COLOUR('',#2410);+#2698 = STYLED_ITEM('color',(#2699),#2137);+#2699 = PRESENTATION_STYLE_ASSIGNMENT((#2700));+#2700 = SURFACE_STYLE_USAGE(.BOTH.,#2701);+#2701 = SURFACE_SIDE_STYLE('',(#2702));+#2702 = SURFACE_STYLE_FILL_AREA(#2703);+#2703 = FILL_AREA_STYLE('',(#2704));+#2704 = FILL_AREA_STYLE_COLOUR('',#2410);+#2705 = STYLED_ITEM('color',(#2706),#2149);+#2706 = PRESENTATION_STYLE_ASSIGNMENT((#2707));+#2707 = SURFACE_STYLE_USAGE(.BOTH.,#2708);+#2708 = SURFACE_SIDE_STYLE('',(#2709));+#2709 = SURFACE_STYLE_FILL_AREA(#2710);+#2710 = FILL_AREA_STYLE('',(#2711));+#2711 = FILL_AREA_STYLE_COLOUR('',#2410);+#2712 = STYLED_ITEM('color',(#2713),#2166);+#2713 = PRESENTATION_STYLE_ASSIGNMENT((#2714));+#2714 = SURFACE_STYLE_USAGE(.BOTH.,#2715);+#2715 = SURFACE_SIDE_STYLE('',(#2716));+#2716 = SURFACE_STYLE_FILL_AREA(#2717);+#2717 = FILL_AREA_STYLE('',(#2718));+#2718 = FILL_AREA_STYLE_COLOUR('',#2410);+#2719 = STYLED_ITEM('color',(#2720),#2178);+#2720 = PRESENTATION_STYLE_ASSIGNMENT((#2721));+#2721 = SURFACE_STYLE_USAGE(.BOTH.,#2722);+#2722 = SURFACE_SIDE_STYLE('',(#2723));+#2723 = SURFACE_STYLE_FILL_AREA(#2724);+#2724 = FILL_AREA_STYLE('',(#2725));+#2725 = FILL_AREA_STYLE_COLOUR('',#2410);+#2726 = STYLED_ITEM('color',(#2727),#2190);+#2727 = PRESENTATION_STYLE_ASSIGNMENT((#2728));+#2728 = SURFACE_STYLE_USAGE(.BOTH.,#2729);+#2729 = SURFACE_SIDE_STYLE('',(#2730));+#2730 = SURFACE_STYLE_FILL_AREA(#2731);+#2731 = FILL_AREA_STYLE('',(#2732));+#2732 = FILL_AREA_STYLE_COLOUR('',#2410);+#2733 = STYLED_ITEM('color',(#2734),#2207);+#2734 = PRESENTATION_STYLE_ASSIGNMENT((#2735));+#2735 = SURFACE_STYLE_USAGE(.BOTH.,#2736);+#2736 = SURFACE_SIDE_STYLE('',(#2737));+#2737 = SURFACE_STYLE_FILL_AREA(#2738);+#2738 = FILL_AREA_STYLE('',(#2739));+#2739 = FILL_AREA_STYLE_COLOUR('',#2410);+#2740 = STYLED_ITEM('color',(#2741),#2229);+#2741 = PRESENTATION_STYLE_ASSIGNMENT((#2742));+#2742 = SURFACE_STYLE_USAGE(.BOTH.,#2743);+#2743 = SURFACE_SIDE_STYLE('',(#2744));+#2744 = SURFACE_STYLE_FILL_AREA(#2745);+#2745 = FILL_AREA_STYLE('',(#2746));+#2746 = FILL_AREA_STYLE_COLOUR('',#2410);+#2747 = STYLED_ITEM('color',(#2748),#2241);+#2748 = PRESENTATION_STYLE_ASSIGNMENT((#2749));+#2749 = SURFACE_STYLE_USAGE(.BOTH.,#2750);+#2750 = SURFACE_SIDE_STYLE('',(#2751));+#2751 = SURFACE_STYLE_FILL_AREA(#2752);+#2752 = FILL_AREA_STYLE('',(#2753));+#2753 = FILL_AREA_STYLE_COLOUR('',#2410);+#2754 = STYLED_ITEM('color',(#2755),#2258);+#2755 = PRESENTATION_STYLE_ASSIGNMENT((#2756));+#2756 = SURFACE_STYLE_USAGE(.BOTH.,#2757);+#2757 = SURFACE_SIDE_STYLE('',(#2758));+#2758 = SURFACE_STYLE_FILL_AREA(#2759);+#2759 = FILL_AREA_STYLE('',(#2760));+#2760 = FILL_AREA_STYLE_COLOUR('',#2410);+#2761 = STYLED_ITEM('color',(#2762),#2270);+#2762 = PRESENTATION_STYLE_ASSIGNMENT((#2763));+#2763 = SURFACE_STYLE_USAGE(.BOTH.,#2764);+#2764 = SURFACE_SIDE_STYLE('',(#2765));+#2765 = SURFACE_STYLE_FILL_AREA(#2766);+#2766 = FILL_AREA_STYLE('',(#2767));+#2767 = FILL_AREA_STYLE_COLOUR('',#2410);+ENDSEC;+END-ISO-10303-21;
WS2812B-2020.svgadded+214
@@ -0,0 +1,214 @@+<?xml version="1.0" standalone="no"?>+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<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="10.5156mm" height="8.5598mm" viewBox="0.0000 0.0000 10.5156 8.5598">+<title>SVG Image created as LED_unit1.svg date 2026-06-08T19:59:44 </title>+  <desc>Image generated by Eeschema-SVG </desc>+<g style="fill:#000000; fill-opacity:1.0000;stroke:#000000; stroke-opacity:1.0000;+stroke-linecap:round; stroke-linejoin:round;"+ transform="translate(0 0) scale(1 1)">+<path style="fill:none; +stroke:#840000; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 2.4003,5.0419+0.8763,6.5659+1.6383,6.5659+0.8763,6.5659+0.8763,5.8039+" /> +<path style="fill:none; +stroke:#840000; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 3.6703,5.0419+2.1463,6.5659+2.9083,6.5659+2.1463,6.5659+2.1463,5.8039+" /> +<path style="fill:none; +stroke:#840000; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 4.1783,4.2799+6.7183,4.2799+" /> +<path style="fill:none; +stroke:#840000; stroke-width:0.2540; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 4.1783,5.5499+4.1783,3.0099+" /> +<path style="fill:none; +stroke:#840000; stroke-width:0.2540; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 6.7183,5.5499+6.7183,3.0099+4.1783,4.2799+Z" /> +</g>+<g style="fill:none; +stroke:#840000; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M4.1783 4.2799+L1.6383 4.2799+" />+<path d="M6.7183 4.2799+L9.2583 4.2799+" />+</g>+<g style="fill:none; +stroke:#006464; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="5.4483" y="2.3749"+textLength="2.5618" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">D?</text>+<g class="stroked-text"><desc>D?</desc>+<path d="M4.5713 2.3194+L4.5713 1.0494+" />+<path d="M4.5713 1.0494+L4.8737 1.0494+" />+<path d="M4.8737 1.0494+L5.0551 1.1099+" />+<path d="M5.0551 1.1099+L5.1761 1.2309+" />+<path d="M5.1761 1.2309+L5.2366 1.3518+" />+<path d="M5.2366 1.3518+L5.2970 1.5937+" />+<path d="M5.2970 1.5937+L5.2970 1.7751+" />+<path d="M5.2970 1.7751+L5.2366 2.0170+" />+<path d="M5.2366 2.0170+L5.1761 2.1380+" />+<path d="M5.1761 2.1380+L5.0551 2.2590+" />+<path d="M5.0551 2.2590+L4.8737 2.3194+" />+<path d="M4.8737 2.3194+L4.5713 2.3194+" />+<path d="M6.0228 2.1985+L6.0832 2.2590+" />+<path d="M6.0832 2.2590+L6.0228 2.3194+" />+<path d="M6.0228 2.3194+L5.9623 2.2590+" />+<path d="M5.9623 2.2590+L6.0228 2.1985+" />+<path d="M6.0228 2.1985+L6.0228 2.3194+" />+<path d="M5.7809 1.1099+L5.9018 1.0494+" />+<path d="M5.9018 1.0494+L6.2042 1.0494+" />+<path d="M6.2042 1.0494+L6.3251 1.1099+" />+<path d="M6.3251 1.1099+L6.3856 1.2309+" />+<path d="M6.3856 1.2309+L6.3856 1.3518+" />+<path d="M6.3856 1.3518+L6.3251 1.4728+" />+<path d="M6.3251 1.4728+L6.2647 1.5332+" />+<path d="M6.2647 1.5332+L6.1437 1.5937+" />+<path d="M6.1437 1.5937+L6.0832 1.6542+" />+<path d="M6.0832 1.6542+L6.0228 1.7751+" />+<path d="M6.0228 1.7751+L6.0228 1.8356+" />+</g><text x="5.4483" y="7.4549"+textLength="3.6503" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">LED</text>+<g class="stroked-text"><desc>LED</desc>+<path d="M4.6319 7.3994+L4.0271 7.3994+" />+<path d="M4.0271 7.3994+L4.0271 6.1294+" />+<path d="M5.0552 6.7342+L5.4786 6.7342+" />+<path d="M5.6600 7.3994+L5.0552 7.3994+" />+<path d="M5.0552 7.3994+L5.0552 6.1294+" />+<path d="M5.0552 6.1294+L5.6600 6.1294+" />+<path d="M6.2042 7.3994+L6.2042 6.1294+" />+<path d="M6.2042 6.1294+L6.5066 6.1294+" />+<path d="M6.5066 6.1294+L6.6880 6.1899+" />+<path d="M6.6880 6.1899+L6.8090 6.3109+" />+<path d="M6.8090 6.3109+L6.8695 6.4318+" />+<path d="M6.8695 6.4318+L6.9299 6.6737+" />+<path d="M6.9299 6.6737+L6.9299 6.8551+" />+<path d="M6.9299 6.8551+L6.8695 7.0970+" />+<path d="M6.8695 7.0970+L6.8090 7.2180+" />+<path d="M6.8090 7.2180+L6.6880 7.3390+" />+<path d="M6.6880 7.3390+L6.5066 7.3994+" />+<path d="M6.5066 7.3994+L6.2042 7.3994+" />+</g></g> +</svg>