master
John Lauer Add adom-verified, adom-models and adom-footprint-variants (moved from john/ pages) with their tools 7acd92d 16d ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Component Widgets</title>

<!-- Sandbox safety: an unsanitized readme.html runs in an opaque-origin iframe.
     localStorage and (on some engines) BroadcastChannel throw there. The widgets all
     live in THIS one document, so a same-document event bus is all they need. Install a
     shim only if the native constructor throws; native passes straight through. -->
<script>
(function () {
  try { var _p = new BroadcastChannel('probe'); _p.close(); }
  catch (e) {
    var buses = {};
    window.BroadcastChannel = function (name) {
      var self = this; this.name = name; this.onmessage = null;
      (buses[name] = buses[name] || []).push(this);
      this.postMessage = function (msg) {
        (buses[name] || []).forEach(function (b) { if (b !== self && b.onmessage) b.onmessage({ data: msg }); });
      };
      this.close = function () { buses[name] = (buses[name] || []).filter(function (b) { return b !== self; }); };
      this.addEventListener = function (t, fn) { if (t === 'message') this.onmessage = fn; };
    };
  }
})();
</script>

<style>
@font-face{font-family:'Familjen Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('data:font/woff2;base64,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') format('woff2')}
@font-face{font-family:'Satoshi';font-style:normal;font-weight:400;font-display:swap;src:url('data:font/woff2;base64,d09GMgABAAAAAGOsAA8AAAABHwAAAGNMAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGnobgYNwHKAiBmAAiE4RCAqCxgSB+WQLh3YAATYCJAOPaAQgBZFfB5xgG+LzJ5RtuxQZ1E5Q/GzJX1mlArl5ptwOkShD55uNqGHjgJmN/uSz//8/K6nImGmANN0GAxWuh1hmGgqulkaHSx77MVtX93khW2vxMDyD4ZffXdCAT3axTyXMpbV3euNpZP8Tm3U9RbyZK1bI12DfN3rHUxUqJhIZ57BCBqVxjFBtwdGECif7YF89+Y0fHdxJtb02BcXD4Y5CEQUxLb9FJ68f1Yb/l3yZuDbzoGmhtLmhbzwhKRZEp9aypQzZYZyquAqwW+JDupDDPiGe/HvembP79n7blZSkEljFVVxR+vx5fpt/7nuAihjDnKJiYzOMFdrbMOZniWu+wyhWbWXNXmTZsTS3vtSVK3nls3U264B8so/8xBDof1Kn46ZOpuceuzRVqias4fm59agU2QaMETIExsgVi/7bXxSLosfGGBuREi2YWAWIdSin2IeZqAdmoN5h3LV5kfw///fQ9rnvz0/HGkw0SKzlIQQoreDxz88Bv3vexlY+fJRuMJqCoZoNxWTITcybsE2fxB9/zCLiPK0DYUrFbDPBO0cc8woeM/nrytRV/3ea/kNMLJ1ZE/nm1GWxH1uW1ZMlV5Lj5+srYGOiom5UBNZERUVroqLmcs2KGz4eX6HKwj4QHHJS6PBvcO0IczshRQaQnHrfO/V/RrLTc2a0cRH4Au1qba8TxSGn8eWW8yO1f/Z7fJkCBWbJekDweQvhOwEC/n9V9fvXlj23DKUO643jDft5vppSOeh/GPylMa0JjkwYPEPhyTRh8VMvtMTICsHQDJZy97D4CKkJUDBnzoUVPb7th7DAwx0layYnhJxQYkNzWgkHmGXASQoUKCoTgiUPNzCqNeaFfm46sjOKoAg+6d8/Qdi2VOqHeEGY+HVoopp1YUwAAygQIr0ryTmW96Epv2h+/nWa6/9xyEX7ckS+Vx3hsBTBHbYOY7vZsnMR2Kks2QkfosOODxV6CsuypCffxQVExykEjtEHNLXTjQXGCWjtsmQcSzAV/p8fc3VvB7MLHpcphRon+g94Em9phNgJveH/p2pvi/kgN/woOMnr6ss59KQlp+7LnVt36fTgfQMMB0OQFKlIrjZwHaTVDwo/bHAAZkAtCFIy9bNDzhucc5lS6z6konXn3k0TKpcuWx+Xqah7l62J4Jd9s1MXdyFLHI+UVzjI0u6f3Qt9j5Tm9iLqHnnIQ84SITEyBQcuROdR2gH/79/4b+9A273Sx4QuAARtPYwoMAxEAuC2oJxJ3qyg+aSPsBx6uG4wQshvw6+aquymATpLQmhkaEIInkjhFZ7IOxGR4P2+21KthLCDx1IcvBgr3PXza4exWQa6CmYvDJwiKWKc/P4YU6updma0v6aJC1TiCG4OOMa/X36b8xAPraN2LrX5D7sJ1+UCBOClX+YXAPDxd+SM+dX9Eu0HBNAI4BgABNJw7CDs2cNx4A3hwweOrwAIISGcA45DnHACzslYIS0Zwt2uN2S48DAj1Ids0BBmo7mQ836EQwAIAAHqIRAIm/GzTUFy92+ngIYAwJFRADFTEHufJ7PBtuQ9z2FDbcv71HZ619ph74akFi0dXs3tmZlOwq7yBEj+UDEge7KioJMDEpJhtELdkaJgdSN/9AOq5m9yInVoUbA/e1ZLkB4OANIj624AB/0X1suW76xedfoi53frc5D+mnj793e6LLkQKNyy2Y5Q5045e2x8kIewctRmOSmnbQmnLtp6c9vrtmWX7opdx/rH7s6MZ+7YIF9qeLXyxl1K+nfsRuX9+/Kh5WP7vjq/NOsbuzPIn+zRhfsDK3/bi9zm4FECO6NE3XP9ykKptehKHRiSPgurUq3gYJKdwKXf7djd5K7nDeHc7uTRmXv6pAxG5CE1HqnmtrNRiHLUoula2YGr3OM2HuK58i26STmIcdL/iNk23/FXB+klk8g6SpMTlrPDwQalDykHHbKTctzhsf6so9Bfdsz6mwK4mfXg7uR+jzqNQTkx+fQTrYiLlVeeXCrrVoHD35Z6z2kxMQ+f69ynrmNeOC/Jd1j50RkmzXfns7XAr1/235iqiNRRNbsRQdXpzj5o+91M5ajLcoqZdiXaRVcfs+5atFtvRfoxt9khNCcHqN3cDoVzgHEyQJb2LGRBgAZaSK/aaTi3YKpOKvIkGUSu8YMEnW6aa7nDXsIJ8f/3Kr/De+QMhaO2KTL65BTBrY1Dp87kjvKjd0RRXC513HKyywNPfZngCu6ZbCMbole+OvxgwUUROSm8QtlEKe46sduOWFM0DwwnpyxMSX/DRBnlTzKaSWh7yBfkrJgtiCL93D8lIBbA3k/97FiWtOtFUfSpy3gkny7YDB2wRxp+eUSYsW2ELVnonMI2XSCs01Y5llR+sxzayobNZlsAbXvMH9L8SFtf8cuHYb5iM+xkvLTuOW1k8qSUKNQMBR45Ea9YAEQy0wwf7Z+q/9UwSWgLBHSbU63BknjaT1p4f7QMTxNFrwkge3Wmdk0sMb0ni4Gu4p7hM/b2KjVPcY3a02lwD8m5POgX2Ag/lVLvB/rEAfJTun0leOdyC6R0Tw+a0v/x/vi+Rh7pmD2tLylEQronUuwVeKihW9Q8ef1qrMvzfrxHAcVFw+vvYkjTYgoYaQ1pbJbkOeBQ5MSFCldu6Hbaw0C4cCYyZWIqUGCFcuVYZswwDSBgRCyszNunJYsOudJaGCTs2QN28IEQEsI6m1FPI6FriQrNuriu/E+uhygG3Aa4B3Av4GHAI3DuAl4AvAZ4B/AR4AvAd4BfAH8B9gMBLAA2ALBZYJuQqiG1IqofSWaYFhFkR9QuopxIukZ0a+C6EFl7GuLSi6ZsRDgr3lPqs3/jpr6TDbhsCJF2t8Fjavnd5D2k5YuuV0/Czy7LshukaxtyrAWXf/kNiayuWwqqZq5VuPjxmkhD9XT5DgTAUdM47bPe6r1d85UG+uhSQ9J7d30essNzlI+f03DunJ1Lde3+CeC+ym/WzTUrY/e4m7fX+kW/7i+N659f0eEUliiNRZH6dD6z5NLVy3mSC1jMDr7kOD/yJ+0EBBD5CZA8/ZQK1aBOzdt7d3MG074R5WnBvp9V2ZCrb9bHSHM3K8x0BO5BsehMyX1HcHEKv8nUkaCc8j9V5CKoBJGLu1zXxfGBT3WzGsapxT1rI75eHqHH8VqO8xhBe/3i0esCfzk3TvpSKog7xuWCHd5PDycJabJFhSOlamieL8zzXKRAOuF5tPdSncGpnk0cQT1EIe4LNPiXG3bfvU74vK9Wq3g3a+nrU/SWFGRDnaibKeQt9XuMe0iBNT50w+26C68ltX/11+Ta0/X7Q6JbDngKYxMmvmVnnKKj/2qrKxDmQhSRKBdXQNABZt1NJXpZ+EwKL8OL2YICXlErdaAsWzmsYtBgq05VhEQRy1nnc/HUrlCu2vWoUZ0a1KpTr1GTZi1aFzVW6QUGRiZmFtZi49k5OLm4efn4BQS1lx5KXxkQDBnJKBnDuAmTpkybMWfBkhVrNmzZtmvf4WJIyGH5nFzcPLxl3gotWrZa1hwEgcsW3449B46+HEFCqTCrRVI0xCSUSpYvl8JqRQfRPUzYxOEJEfuRyL9IVZ7yLC9evXn34VNdQ1NLW6fr/krhRF7l0maKsoQyZB9RKTQv0s0wCMw/z1Jjk8qtu6LvmggknKG4QI06iEIj+O5bii/ifgT5HUnTnudevEGzh14ZYCYdNZCE3ABAoINJ3GzU6jtCExEvSiSqpM7kLDmXzrvw7IsGLmOI3nIN0+kNzmeE1GTkFJRURQ1Uq1GrTr3GRU1hXkMMjEzMLKxs7BycXNzNI+WN+OAXENReOjCdunTvRbn1IwaqDIYhw0bKKDBm3IRJU6bNZC4sWLJizYatbNdtR2JX9uw7cAhJiPZb6m90/+fZpw4Lclool7h5ePf7NS8o3OatQYuybLWsxYPAZRtr175Dxyv8T4luRYtzJSU9xZEIKBJUyYJyTy4YVIyXQ18KqzI4NQoaypQAAAAAgiAIgiAIWrr0TuobdMMFIPcM8edBGlQOk0nDOpFmpC8B1U/HChIJAV3ErFgEs9Q70oLeGWchx/BqP1+MPAIx9DwelZP8jxdIdB6T84xINqVoXEYDYeezh/AY/qy20rFCCPl5gqxD4V9BTVfg0T092wWTw5QwQKHEDkDDDvhnIzOyk3NeveQLGQymKTaNMaSiadAZDZh1fvr8HZAlwt3SVIa+KsSNRFHcFj8N7Wy0ve3VLgdOKiSQ0TuGh95xb5Y0OxfdVxEQxClkD4lBLg7nuETK/i2DQWI2XEWHHVos7WFpd954hyUjKS5q7Wl0xglgtfN61sWXIuZeI4iI+WwIIJvrPVzgNN/fJcddKQBol6YzAia34aFaDi27OGdMxhFDwGwMLAEGMODHMihTRggdNtyRnTjz0R//OjWfnV9QuKiJafTO+J01aiqVYspRFTg+BUYImOqez1WkIiOnoKSKppN+GeyGR61hQQIvIngYUrTEmBJSwRWSFAldhyV87Bf5haKZB1AoISQqldtoHl9axSZ+DOJix6URdIgJSpKm2VETjHKl4tS3ngbTrpxz1a77TEpGTkFJFU1Pjz79Bg1PQ4W1xgQBPoFoQmMURhdJUXhIpVihMWGFwxMidkjkKAQwrSgzuXrWN+iGd4mAqo8i/Nb+Suw7kdSDAspVz7VKSTEXwMMWkRo9oOeoG/4o6liiVYzQmMjERUKociZnd+dyPl0oF1mX2xXaVbnm+gtvaN1OdJdOwyVk5BSUVEWPMTAyMbOwFpsxOwcnF3fzELwRH/wCgtpLB6FTl+7SQ+ub9hsawAxiyLCRjPUzIVNmzFmwZMWaDVtlh7DnANJCqN/KX7r/8+zFaY1z88a/J4hwmbdsi5atZvudXew7dFxRVJaUuLak9BQ3jMAiEzXNGVdgYzrhVAVc6A76GjirOq96sNc5FMfDVO3HtHcfPtU1NLW0dXT19A264dcIF1Rsyh1i21FrmMZQXENKHRWmThkjEOzMPzyswn1fYzvl7a38cgiVZCrblVPRhCoiE5M463y7KHpWtReJnnQjFRk5BSVV0QMGRiZmFtZiU7FzcHJx8/LxCwhqb/2mBiYZTEOGjWQME6bMmLNgyUrWsGHLjj0HkLNDrnLekdu8Zd6KLVq2OsVNI0AkqORqhb0NfgNsN9JWjrzqOaa9+/CprqGppa2jq6dv0A0X5MXugLAVXw+AsPmktML+HKmCxleBDQhCTyLSICOnoKSKpk6/DHbDo9aUQQIvInSYQdESC0tIBe+EJEVC12EJHxE5rMr7qUGkr3VPRVSocZtIZisAvFih/Q2NmPOUgRAJYt2xefwAv3GMqsSN3paHwRKeVz+wjlgfv8MxwvVDCYJEXMcbUkgZtGzPFWSK2JSI95G2ChNCRDxU8sAoCqMwOr5xSXB5re8k+E4+Vp458qLKO7XPNkhNRk5BSVXUpGo1atWp11j0MAMjEzMLKxs7BycXd/OgvPDFj4Cg9tKB6tSl+1V3ExuwDdgGTMIkTMIkDMMwDMMwCZMwCZOw5yiKoiRMwiSMLhGezlmxeeumhbRoybIVq/1dpawLQdkAbDPbs+zavkPHGxS/sySOpPQUtxEBRyaqZMlyQ17U9ptWEmJmPZIRop/29po5IV88BdY7d9TFOeVu+8n3S3774+/iP7IqnJla7dJVrpUbuc2T8owXr97yHvnAp7qGppa2jq6evoFhGanQ2KSbfoso5lcgWYHU/yB+6JpufjX1bmOMk2cL90xSkuH1mIlHONYZK8FAJU3iOLtyXusSuS1dh+u5PXnozngxbgKAj2K0BAAALF06RKcu3Xu6jdcbNQEAAABjdhy7ac++A4eQ9egJgArXHtU1piIit6XbeNV4iQrDN+gu7C17X93526eMUFVVboGgXlsBAADggyEHcB8d0oisTnqX4IvZGOHDy3qlbQxMVLvGaeBTqDI/DqnIw06ye/nuKLdd9w/0I24DWrXM5xYSEs3kcXIplYVDt3dBHSvoulESx2APOdcSDesRtAlHN637F62tO4IMDrIrhs6w6vhVvMRVncS4KYtZbq9ki9BXdz3TrNphOAdnhDB3ReS/7HXmBfx9hERsECtptWxCabuVUyr8X+XTYBmB3ClVd2Y5bn1WkEJGTkFJNWhkqFQqlUp1Y1cKlUKluCmraxOWSyxbLWt4ELgiw9ohK0qJyUtINVwRMQuZqFUHtyXF0P2wxkdU5DqKng70O9d2dDdWqVQqawmFoger8sxtrsXhyoPjxVv4I0KImUTLXuca/zILNiE0J4LYWef77nt6KdF13C3tjqbpsbFzcHLFDS8fv4Cg9tIT6Gu+Y8KUGXMWLFmxlg1sLYbEnNY8N+/rdsx9Psp6YlA2EmzzyxE2NB5mUiRFNznzbrrPQ0o1GhM2cHhCEU2SIneiuIJqt9FVhonDvNos1+HGbd7f+cCnuoamlraObhkBeWOTbrovV+zV1Zml8APdxdY2HUKbElREhX+e5AwfckdYJqrQKyz4iFU/aqpCLKjrx0A0YYyCYko/myP84Xdt7+y3xNcdpMelebDDYixcBa4515cb0Zz07O/T69Wn+3loNQubFbmjaCa+J2npVe3aqjFhE4cnROw9JBEEd5HPxh7vI+MLhDg/HoFoSQlaijUbchfLXNl1u8lwm/XRaIplWZZl2eVEj6/5tmfQ3fDFmrd5W7RsdY0OT87ry3qwkTpcyMNmp7fT48k7bxbfYqMq7jDRk/EQcFG5Kk+F+NgGGLAVP7TS1Vi/9w6nXHPdjWe+AN5xw6hZ6GrQlLglpTE4AqmqQ9JBpicjIB654Crfop4bDrmSuraFKmtlMareMHLsbmuhHbfddHvYzwF9M8nDyqvypihv807ely9FjJ2MlDEkJkyZKZ8Q+OKbOQuWuh9z2dzt58HzwcgkbC2R1c9HfZv8BQq3T/Gqnx1Cq23b7ZWOxZG5jFwsWzsNvlsMtAtN5O3+/JTs3QdEV8xvCvqbJdQuQz4mqFNZYfrLVyi14TeXZj+OfJYkyIevQ/D+e+yf0fXsd/QwBRiikPWPDPJQDEQPvU5LbrW8XTsMpvDnTKC2iBBDHAyJ/90SkUIVCQ365BkxoYbFigYH65ngcMXCtddq7txx+PHjKEAAJ6ec4uycGC4SJdohWbqdMrXZp8NzgV4akmXEiBpjxtSaMKHOlCn1ZnzVYNasVvMWtfnuuwt++eWiP/645B/lUwgxuxILq5ncOFrMTzlvJFTNBx1Syw+FCUNGESKIowaNKKhJE0nU4gopdMcdy13xgJKvPabsumdobnlFxUMfqJkyiO5bc7TCWv4BAtDwti+xYEIbAEB1vrz26nLqYv4R8ZrPN/T7cPKyDdaXqA+BGoY4pti5X8+pPi6ZS6vrgoLAq3llllc/G2/VWkddwXff2VeDLALfVGEdBaTVg/36b64W2++ZDUY7gNOtR1NAcn45KuwpsZYnCAiUy0CreCuYYNudLzR9HpQQVxbRNtSHyKIMkvbqLXhsvjy0I7Icwvki7XId38q73/6RGciqHjZ58z/+A5cZtUViYzmDaAhoYm3schuLPDeV15/2eAv28vbCwMo/3bmqBRxXPzz7YpdYMhLkyIuUT5HH5Upxqdryyr0uzVbzfSpf5fqzIFPSTYQIeyrWG1B1jHgQ3svZH4ZH1bnj12o8dR0qRVH05QSkFh9WEVeFsuGtw0GRllUOUpn5MAz4vW36qzMlwkVF0L2rXxKQPQ72KearimFWm6q3KrFFHbZa5e22+VO7zuNi4OD0o+lJ624b08M54MHBPyjCWvHICi/ExQuURQWD3oW137VD8jxe/WJ3dl6pVcLPSXxxgPoAUD3k+PZ4OJn7zORdgDpbHwCbfHuoUb1y3FpQTyt1xoqHIiHv1wAsAwDqiHm2/rkngMLPyMiPp+pRAuE7pfiDMesYFBcpwDlAIlRZWDUQHi/Ax9bHiIKYstWcc7X4fLYBCICXh5GKcZGuIukDNKOMYXfZws6Egp/n/mx3P7zYP4IDKkPpQaOqBYFKq6KieI++NBB+Viqm+HoV0xoJv0Pdakb1p2OF1/XSw6Dd/gQvD89imrdtJrbD9AS5bDIAwF+vDTnvgROBJAvDffnDdPLeVt7aN78nABDhsIhDtjLUeKZXQB2Ml9fq/WHk7W7Y6WzDdnihlNhsUEPcm9pEVW2KMBnJ1TAQYogILYYn/Cj1TBjWFG+em1F3QmYy/igO31a6WExX9Tx8gKHwqhJm5SKq8EWtLF2vOADKE0VWnz2kPuAe/L1+fKFWlL6vDe9OfM10Y9S82fZmKsr+sIrTxH3ymmDqMe22k8z+VWwJ17TonSYHQN61/U7P1iAy1jC8rNmmUGuprILNuamy6N73pNKQiHdio4aS3RgsCz5rfOhutVRPcV0dzHORdT+XrN07Fyu7yc9UgEiOil7XQVdIaqfF+4aooea5u7D9Vbf6gM8VgkUkTiLG8Q2RInKSvU8swfcK4KthdnGlXx/vdqwI3WuVq8Bk+dfOqYihdSinjbozOKap60j+MIrScrJ0ByAYs5TEZqK8TaSxO00bdDfGx/JwjxobuRsAYaocQOkM3Q05MK8pqtsnBTuDMQALHTVkJvscp6bn8QMwOLlIOAC8WPto/er6dHhgZz02TLbx2xIUsgeryjTZlR0t0CebgOeUBdJitKKkIDbIQt6XuPnrVjB2EUZG9xUtTe1X7L7youqSiv4dNay17kwo8nrIkE5n0U4xh+Tr+JAP8zov791VfKrKC7/2daByOuIPpjPKsjbd3WSU0TFHDmfitqFCvkL5p01ZPwPYNpVKRWYUkv0Km8ZAVLlVgoFxVUlxJqBUrDe+3Z7KFoCuPENOMgyGMdpN8iYoXh9ENZHu0HHp/j6ZInkYLzuZChwALDafPE0lAFiUiYWMXz23w+bRHO2xc8a9Cp6QO1qQ74H4hMTNX7JCHrsII4u3qjchenlUK7epTVr/jmo+atZXRTFo+7SD0vhRC7vpeCTv57Uxqh97UAAui7A/mcblQzWRjObnQU1tKa77Xxdbn2GOMZOEadOKZs0rWbWuatO+ukMn2s5c6nbtWr9bU38vE378sAQIYOqUU8wEimEuUTpbmfJwFGjjqsNznl4aEmTEiBRjxqSaMCHNlCnpZnyVYdasPPMW5fvuuyI/Y1YcC6sPuXE0nJ/yZhOqbq4IES3UoLHFmjT1vRZX+jGAtvFfVAQQQD2D5/qf9bCbbQdtHAK+Y+JQkFiWQtqy83VlyJIj/2dB2Hybb/PtWLvDHj6PfwEKzoVdSW+WCiEo5u0ScXtkiT6yxCZGXq+wokTp4MKfH/JNwI3y4wRuthQcbrXSMTxYgz48/HcywqOjfQkvXvY7+/2xH24aG/j4THsBvv8/Lfi73Jn/LVQI/7fzC4Yl8QyHRfwdUxLy3GYk7H8tsacQZSVT2L+DoNALsGC2xYRtzGYwCvSjXFZkyFHoX86tQo06TYDoTTbRJtkitqgtbmvbOra+w6TvGGA4hnQcI1qOMbDFbPIrW/d7dugRf5FgBQF/RwWKlChToUqNOlx333Pv9Rv32aK/kZAkkhcjUbosHCIqRoVKVWnUaYFEmQpVatThuvuee6/feAhAY8MBDE4kgIjpJQkIwMQysFmPE7sRcpjTVM7GSGfHUbW3rnUyWz9V6C4MduJOMdW7L0UV96rciMt1W3WYrrOKlrqsujauy5n+ETjakVMnXnUmrXfDt3oA1rTrM1nPbvjvIwxDwKSvDOnRq027Vh26jRs2asaYKRNGTOr3SZ+PBn0x4LNV6Bje+2ranHkLlnwvvxtFyyn1e5+KMKHPjBUbDpy44AlQqEixEqXK3HDLHd169OrTb8CgoagQwqBhkDBl09EzOOWa62646Zbb7rjrXohc4tAwmLHhwo3AQWdFS0f0qlPGvXQ4otecdsWrTiJ63RlXve4Qojecdc2b7HnTOV9760jeEmjCO0fztiCT3juWdwR75oPjeVeI5zqdeHxPqBe6nAxzrQ9hYMigAVsLj0yOFqjSLKWvEiCBwHCxEQZyHXVAUvY1RqMFVfMC85JuZnDkN76DM7HthtPxCJJeIdAmsQgJmbuCGYKQ4gHDL+O+eDueYRTTt0CgiuLhTjrkcPUazNGoSTNM1IK4i5z0OGRslLh/4TUce1vllqXJ0/GnxwAGQSCoMDCoBg50ptefIgVMrvxFK3ddp6+JIlVkEvmqdEtWrNFVD73VbzJx0Ma7VMZgWl8YoJ7XIOR54Lqz2fICAnWcTc8XCKgc9c8XBChOWaS5f23uJc798pwmzNlpruFzVsz8mAEXYo5sbaARMGofp6klZdN6m4D1PJCHcIsX2G1VMXqbwffGIF/q8pTyqeh1Db7jtNgckXMpIqDBkAWbxzitNlvw3EqIaDG2ih2XxwTbbL74p6MhoYNpDQeu3B7jtjv1gXCfODcDC9t6XDsJlkdih80Pukgn2r5O5thsN08Hl3E6/bkqWNQghse5nGy1l7fDzi7jdPnzV3NQCxmtle34fLtGFa1nnG5/Kcp4FVBU63MDPXQE2K88ep8Dn/Ei1HgWRba6PijB8HA2W9ZCrHByDv+yz6vuwau4Rhk3XiW7yIuo3aOlQPJXh+Iw1Ymvw+u44wJtdMSDsAr15ZKQRJ4qLfqYHQzH0X8dMG2Xjnqx/a3/2ud7QXtDQBw3bVR6K5zfy7WVm934BLz5O+iok84KFi5a/K/3+vFs+YqVq1avCbLFrvhNlanmXsO7T111bU0fWp71Pel5NfRiYGJspGNqU1izplo5oR/chDm13gn+mkSl+fu3aqeK23jwEugdwq+7VemNu+13OKLbOJFlrl+vod6PitnuR3sdhFjaNc2a7XXVHIU8JYoJgNMQUmYj9hDvg/cj8H5V3y8t56BbGc8Icf64Bcw3b9lNsUptfdhTwWyA/JHO/V3twU30/4jPPukE50NffwBwBQC/mqcBXVCG8rwRXkHMCK+T/yoQghFwtmAkSASqUe9SmlIQUEkoleu02j9aGepcmb5FwEVxCk5dSYuyaGvXuvlNrTonybIsI5nIthyUw3JaLtMd6Afpp+gx9Hp1hTiJ++P76jkaGPZgP7Ffk3ISJT3JpgZfw0O7RLtV+4n2gk5OJ/ypfj3/FKCLEnUaXUlHOjI6GbUqq/0cxaHO+HQuwAtOxqkrcVEWVcNHc8qPfslkUVal/MhPOS+lzKY6N3E1u8J/wPstY8vfmrb8vwCepu9P/viH3/3mV78c3//Ff/+9FV95zMs6DuxZ6RGp/X7ZJJiAhr+NnDjiWIeNrEXMEWPECMEGX/HvcGNQeMF33Ojg90H91LFjhg7qSLxsstzFe/7t7PV095xdtobTEGLdV4IM1y9qbi/YIxLMNAOjF1AUsZFN/L6I0eH/2qqhU6dBkxZtOnQx6NFnwJARYyaYVmAxZcachZVWWW2NtdgsWbFmw5Ydew7WWW8DDkdOnLnYyNV/uDbZbIutttmOx80OO+2y2x577cP3P+B0YSJESZIuV5FCxUqVKFOhSqVqNerUqtfgvGZNWrRpddEFl1zOuwP2E/DO1TEFAvi2oCN82lq4zAo62DaleTraerly8GwOwFWV63COO/+GrLBFdn5OVR5wshBpkZAI4itmV8rKVntVXUtfrV5C1fY5z6fjlXCoKFi0IDEixYmXIFaK1OpLli1HlpksCRLGxcPvREIQToBHFAqA+wNIfwXptWDoH4BpfwGAP/0Jg9r2xCc1iekwLFRy9A925JNhysdEJZtOLu6b3C9LFaDMLCCMynDDhW8sxzyFiduzvOzVlyXvkIRYMk5g/RZzFHvoUU/x9IrFzM9THqPxp5Ng3G408QjiZ5347bNcy4sxc3xKnm99aszOJWrVZwwolowY19QV1rZxFGkWoiZcWbCAPEmJuMiZKVatqu7PWchgHK54otPwEts/VkBpdoZrEYNbnIfZON5GgnCWdfff5zPl4DGHUlMAufQ/VBvMVtXgVSCjVLq5TeNod5re54EKFWDjFOscrfQ9UsEhcJuMOaaYHmLxNZKXuOzUy5c9DsA7jeHHUgpjEJCBfobm8LVECczDf6up02237FdQ21tipStcrLvz6WZ8IxASqlBy64JxPSKScNEOiVuFuipPRcst51CX1McnhsGesPFgiZV1Nd7jvvZV+I1WbEvqqiDwrd09EwzHEqu64IoWwdOlCxZZ3HkkRw+SxpGNfqxvPNgTsa5M2rZqVJb0MTMi4hjApVY8XI1Y2D1vN0VC2r1fyR5+FRZHrmpd17BVJCPuPqJpqyVliBoeq5QLBJXJL6kQHANEsmYVSra9D1wIEJai1SuvSmC8yxPX6xR3x7PKhDs8yJ08/P2vVb7CL0kRc6tZFyQWt3QuIPvAy821dFllWDIdwGHMqZRjN8xuuHHqNcCrEDIBPOauPlStUYunxBHVRL1beRhO80vpQq3rx7qLho4Vzqt2cs9g6KpeM+GyleuiBRmqXG0RWsrtVIbze/vvs+pySpvpUfqZX38hfiowvOhwagWNtj2svWWUBI6zzHbajCZSTAN2NOZb77IBYbD8W5ymQKkqcnJycvvLfzhwfYqXc2K2V2c/v+fYzkjOGauOHJ1LZDls5gPtU0ijTbmwRqc7531QPBznco6++nwyzOajJXWSFezyxc388NEtSw6/OsVlyWzDOfpbr9R84/EfEfq/QNHWqqmCyOCnS+eC81w+65/xJLnvdV6z7cpfMqxJiwtYXiBpL2kq+vkhhZWKy59Gyp5bwSDWyBBFiiquNScCP5SQHWNfCcFXY604xuDvfkilShCX81toe11QoVLoR1yO/2sp9anA25tyCWPwKHAdwrakYmQfp5r7nMvnmqN3wL+YRi1rSoWsN6nyVYNDPK4Bsp2Ky1Hjjd7GaRuOLviI7+/44NPznpiy/sjs9ikr5q/cN/SDycsXrtq/6JhhZGAgICTth7Px6/P4BpU6sI/WahQQlc49uXRO8JmKbIL4uxGw39F+VO7I7c/gEXKCUg5qwsTTAUmxAB9VCkOoHRQgo0YN5ANOI68QfBwHC2yxI+x8PmF4BrnRCHDk493lRrM8nZKcVIQEcIwnoIWKjnaHnrglu+n1N9GUoZEYQs/5WblhntYnJE6oaVcVwc91pARqP+Hb/8i25NN4BX5TgzomJcDP+EodNtRjvoEwiJ85ff5wRzNADD3TgQsnxp+5AHIMlkGWdbCudYFLux7MgU+hAlWrKf3lNS5lDbfrrfWCf7dOC2U4JMduItcxaZF9azmKb3BSoCmJur+WLFzVdFzOD3IPgOaKDkh7FgQl9/XdYT5LnLynknKSAhwLWoUKvZSLGOwG7nIiooPCIvcAK6K9r4gpyZawOUG24yUoqZFB6u0kJ4b+NJ5V4HSGshLQTZZOQbJ+Y1MRbAx0jmo/hDeWbLZutgnz/p/sqZBtFIgSkkU1K9DMS24d4ntRZYN6h55xlymPf5mXGVKh7e0nL6C48lkfTCslXZrjVH6C61Y8TAHxcDubLcSwTy9aOXNQxbMMt3DtuPzpiM+1+RgZEQ87W45qc4Usq4szDJ+r3EtT02SG5cy7A94f5ATWTAmKE2Jti1AM1A1+Um8TtY5AThJylSHDDaQqXfbIZTX0/hjJh1cHi9yucOWlDf5dmUfGR1qP896YR8pdGMbhKcyPKakGCipMP691fvFyBOBE6FKD8s+CK1IEhsGnGwNg6QwAA1lkU4zjuTVb0mvgATaioKYZLH1Bgpz916WOoLPc7udstrxMsnfomx2jvtS+thBf85rl2HBl5nLHZrUfg5pyAh7CHIlFuSAR6klOi5ZgpaxoSB3usR2WYZPzgxGJQ+ybZgEIoQP28SHN/kO07l9xbq5bwZ7e89G94I5GTV996F3BZBP+1TYKrDoUkC6h1Tpn4Y7RgPd1kE5bH6qPbfvDLyFN2UNDPxmcZtIuK81SacZ3jMtff905aFYtZwznQioJBwsOCmgUBsuIwWNmoNI3sAy0wW9/lo9yz6C6cdVzhFzuPE49cevR6CBXPqxxIkMJwH+wmdnF4jDdNVjbXNXY762bAS1cxwFHAISBQRSGMD66pAarJQgHr8dtZyYho8Qn2mEGOrhR88X+g/ivuHeo9LRcqi9hsMpdpu5z+Sm9RF70l6tlGfMH0pkFMlhTyPAjtllkV9lsFfxwtoKPuPzhXXUoF/SZp5K5KDTI1W/HXE1pXzq/3Ep3IfS6V9nP4REkovpkWANXITxobLbMWe3PZiUtZ1R7FuFf/qrZilzSdDwBl9uQwWOX1w1CMz9/xj8bipnloxYKKKyumP7sAse6XrJHqGllZVfRHHp4fvnxM73VJkkrSo6tqq1vwcolb4mryKbce26ibhyXHgWPB/6wr/BLjQD+jaMH6jGQ5aB04Q6VLqVvue4pFfCPZyq0UDFHqKl0QwVo1YDV254rnbEenuHC4ifZsH+2fH6viGmL5dFL/QH12ZvxyCJhT9s+imTwwzPzT5y5sJIo9s+AweHLpyedv4xtdTN3rILg3pDj0stjRe6l+dllHV+N/OkFKlWkoRy6AVDlWO+qoiQBVj9YWt6PwT563l3+XpQ2F1NGleB7RJKGbcpLXs2aUsYVek4OVgjETe80z+A1/sqFjF3Cb6kOo0iDarmtBCXbgOM167w4afNI6SoxlykbLNw2S5YkbepCsZKDfL9NqznKM5/j5fdvOokyVBQaU2hZ7pdJPren9BKpFrtyqXY3bwCLy0lviSesYhm96KtC+3deCtzGR7CfnRMEsM9uOePtDSdtrfq3EOvJgYX32kBASQYWeQC0/DkqnA2trbF8sRkiBJFBkeFuRQhZ/M2us1S8RnV/0nPDVmsK+JCgqsZZ94ybJ17XhQiCx4F6xhTBB7dDzQS5ajMAmqu8Knz31dAqPkkzxo5r9MRgNfei/c0JXqsnzJv1a75KTIYPYun9Gr56ZHHSEsDfHAp93Iorp+pHE/nLCXqKMpeKYZHhRmfnYBia3j8NxdDs/o1nvZoNkD5pZ4IEabQNSlBJ7c8y31V1Apzf/kZNf8qGWSyvONg4Ryxr/zlzqnwpHzyfPpoI4kb1UbAOR1OcdzSdtEwmoZe9A/5V/g9hm9RNxE79VGzSUjPkAwTRr1LS83Q9dWbaGHi4ZNgOI+e7JqO46NQNgE4/qKeu73mCVAJFSJc1To0gQCKFF1040F+UI2/2TpbTu3mD/eTkL1zJDuHfEwf7wysH+wnL50ndFdVJ9lq17zU9ZNkCUhOt7aJIDSUZvdqIQRQDFYKDzHNQlG9iObQDxlxMdG1878ck3KdF2hD4xraaVN5eOayai35e2GvT+DXyP5Oe+EDZikRPBEd1L09H264romjPkKLt+ANlaLm4PNTVTv09nUs3B/h0u0KRnjnnP5iLR4e9QdXX9xale1v7Vj2eA+2D37a2o72U/UxJTq0Kbr2m7aBAR5/D372ASOiBJQCwSYhp2WxxOqCwrNVYI4FO9Cb4KabfiMfWnuBdkJYc84VFA17GY+OYSAxDy9zZTTGNSaa6QOI9oW74LqvylPebmYI+hmdrK2QkBl/5X7WfDhOcq2XU6JZBLTo0QI6RtTaTvR6fsFpPwPqKI4oBFmGDoFDjpOwaxvQpMzOX/YVPEPBHqD7fUr40d9RR8ymIrYmUt67yQ+IEqqnjeVr0uVmWeAGQAVLgSiVzv5oCYfF8gkIVs6wPo1AX8YIUHi6h9NONmnFYYLX/n/ViXQbYgYmSqKLRbw3AmfT9oUPFBssdzaS8ntFVCya32qinpaHTvR7OG2NbTRP0BeLuT70K4sdp9MNqYvJBl/hhUmnC69At1zWFp9vmdICZknDwiE5I8U9TfaJ6Tp8tD0MHxEjnLklzEE0PRa4wnieS8FG/EBtUbz34N4FljFeDlI29KWVUjrQrJTKUqZU2g3OhiZI/7Q1l+3tTjl6dUiuCyDeGTJFeu7n40NVomwiLgzqRptkrFtdAeBPBIDmITSwsf4vnIVRKWDtwvbUanDoKLiKX/fUymsaDWuLe26dqNN5t1vHT1HA5H0l/EpJ+e/8gQ/PcjHern661voZc59fYwHODr7BCrWIx80RHnnC8kpLKogoZafnCpNELtvf4qcIVCBXrFpEiqblb6bRrc1dm04y9CbYNPcDwzWbGLVtMbf2FXine8KHm3eaomEu7gKOUN/7ylTJEe3mkXG/batDmj0bgH/jplWJK9fyRoUqTwcBcD1GJx74WvlKbFZQHbNfAf14BjkENxRYqCkK+Z114DQbCWPVqK7bn047lr1kzC6w8QpssdNz8UvImO4LxBAVKIlmg1W2aC2f+Hf9MOAvtdPkJzBqOHY094GP7wO/q8XuO54H1DLzdx3NqiP5FoT77CxX5ZwhsUZHMVPcpw/U3YJlVbhi0ySnidRH5zpTvNtCde0n1t9/4BQVRuuEn9yBxybNckU1nS0WHkYVJxxrjF92ccEHnouKzF15rEBQoKJ6AAUwLURw/RFgpGPUC4xEi+dPwHxqzPt4jKi1eqxlIns5e9sym/PrBMwSVD5aFHH3MYpoMoTDB5Xm3uvPIhdFHLwJr+fN/12CBWn+vFPp3y/e/vUZBkv7CG8Q60HlUegDVhl8X1CmUyli5+uYtchPVvfmGTXTaRHWu8EiZNLGGct5znEvI72Ew6BPE60cLbtEWdE1w3gF/gFijDkDYNpRSkSxV3tl5PPcKZBwUBs/8qqUzRAjg9rAPHgECkq2eWbNFKMk1DWj1rgZSzVlz1sSjBgReohG1NX6W4Py4WxjcL98Ff/2XZxUl6+Sq08Gp0onwdEkiJDUybhYB3DacStQujZ/bO7lOvx7jnBJhhQOwfbNBOvrx5Rc3F5bIFFSbpYWmxW6CksVlTY1LdTWmXlnS2LxMJTmhNUiNrFxUEnUdSgV591elbb7fMzeh2RNQt3XxNouKKCyytyzdvnmN5aDYtmxrAzg2W9uXbNHpew5jWi+HRr5kFPOEjj16SQf8sPnZJfnTdGk+XaoaPa5pzYnat5ZG3zekxBMTlHSEgyarrB7OpIUh+DNc4TFQTpJNxZNeuS9BzNlSQz0f6eDx8K4o9wSZzOZODOXEYPZJ6KtiAt3jmIDw5WOwCI701Lo8jQI2e2kFjfVqJVOJj6trqxMpLm5qvuruOtW6OU1Zw5lsOvPP71T2xN+Ndv/ju90R7v5LfD3mZV812GH4UuJLd618/OLFSNlsxfEq7S5Thac4yQmDFOh2UrLGj8boVINdRTynMMnqOiisWqHjBgUdXlBGpg1uEIfqK4LHCwj+N9lBLZ049DPmacBwviwLxiAzkbMLhVxLUQ2XDCpeX3CY5/tA41gZDyOvXHgFfB4aFVzeerSFKcj9cMmiVsOIIxQjWyqkoGRdgYvVPGjIzJ7YGU+QqBUZr7TsKtxaIf/mE4r9LXKmxlL3nSXT3wnrDUm4o0gwJHv+myrcbRdFmRRR0MW9ivNTMUGfr469wgWkytF5etzTvfo4oFp8sTXm3kYYPrfhwXemYhbbbdALLWbL1BtXpZ7Pr4CU+nmTtOu+7aGHbq7T+71bek2jJmjyniHMeYVmZ9foIMCoJq9wQPNa/n3A6/Vq3VW5wxFNNrdV1DtpT6eZoiSPtRFyIt1mRBi4cQbw8IPkyckXEL0aqtq+YVQmJ9h4qR5fFW7UPT/Tsg6klqGouSlZsiclJksKf81aFbwWyiCTpYQUk7CSFwwZnnpFXJbW+dRi4lwZVQ9DgXUkIghJL525kNJ6jyHlIh7Vn2Y1GEO2mm/X52TjYi+8AE4hiaghqWX/pn90SmslbI5/A3I7M6mGyueJG5SZFS+uqdVekOOK52jwzrxhZktbW3/cK4osDQrwMAUGG2D7FtreBhI+aTMezfjBjJoZk+9OBkNlJrf+tv2J9p+O1n1PjRSSBZFoIREGcwdDx9MQ40mjiNDBxeESs3oBE1E2a7g1gNeafEeIu7N/x+DXCFcgz+kB1WT1M30AZ7d1Huft3x8OgH/dzYWec+xeGlm8AuJ5hjlHcWt0ta4iHxPFZPQqL/HWSfzrGgMQJ3YlrzLWlVt9zKq/1nn9JoGpRc/axv343goR1QqWNwxabQql1TZoK+m/HhQ7IYmZKBimcCESmSkXT12WyBP4uVc7Eg+WMBSy9wMKATlXajQuq13ozBEaXBYyPkmaxM9RS2CDgpvFMokyLryM4eUImih6V2vnMWDnapP+waekJ2P8myl8i9TQxJM8/oObCmn7ZS3Av/lcrkn2vqtN+pFn5jJ1one9PaIPwGoocxJ/6OkVv9MYNzhC+qG9qyCUYBftdcCl56h5BEGGIKVvoeJy6uebggU/wC79us+rHpe44OLYwyC7+ulTzn23P+M8ewrOx6VzxG8ShrGo9SFhz9CRbpFRLsB9y8FywJA/WYCO1BP1kWggFIZNiECWfefghO/AxM5d/dfmL2An0c5ltdsnoeuy5bXDk/8iwaG+1fyHkzDwekR/dcVqhGxcqUYrluXa3LQS95qehS57W5NVqe6oKBxZ5QT/BNGJzx6beF8x7t+ze3Y1W1x93VXl3W0usdJsUqiLClSyUj2gb9D3i/qbeQUfLZ/0l/CjIC6goqvdJVGaTEqNpVitLLJrbXzJXIMjF0qkvLxtrOxd7KhYshgsfPLVO/3JP35fVy1eVl61asWjtavLOYn2OO32Uqcmu9S53V6m1gDfibcQerEscvFmQLwASa2fDQwdTdtV6ihtL9XR6HrBtKxEkL+09tXSuvwjTLNktVHEZBghqcwEoZYK7GqdtkQtgGwqg86mAnfet7zXn/zzaFZ32spVK4eo4CaWzNqudbwiWk1pWbbGUQZ21BP1RCFZSJw93L9xOeU1qcNJYBV+/Eq01QKPrATZez9xPq2EScD+tkgSjqwiDNY7DPgO8yOpVInYl/g3lq81CPk5uXxR4dyuIntzS0ECc1vg5W+OJGAmZiCGhv8VwP87sEmW7b3af8aRJvr7VBZUotYZCk2asywOiVNu6r96cWjDjVsDG6/f7u+xqI5VmVYe+PHng/t/+mn/2NsX+1yWhYpy31yZKYMu1sL/JpqJQpVeHtbr1+gPtNR7IsdvQg6flg3unOeMnu/0kCd7RALTpHdZo9XYVYVvx80zNtlLZyw57T0ukIp4LCVEFV73vi5SwRy2Sgha/dcfn5CdnOxv2NGNcipRijazvnHF9kULV2xvNHTow8TKiJLd7YDwZPLRF5cvQZcu7Vi8TLKid+OmwI2bgOfeyT1QibuAL/Cyg4uMBKZkcgQqDE4APWvaVo0g125tzdCEC0hJeZwED554Ht279sFcWD9w+prs7M2B2m1zkMUqlLheDrZIJiXcXq54UizrBZsnJiWTAHEpShTFF8p5ECSHvCW+lprq/KLy2oql3W/eZ/yQ/tuQ/rZl6b6vJJNg80SfFFplu4gnxZ6Nno0SCqYf8pJ8R4O/o5j2t9xOulinb6xPB+7Zh8/cWL/h9A3RmZu2qzQ5cM3IL6tHArdPRlMjcHhf85FMznS0tJba2rqres8KTiqNZrnMoAdLcHKDllbZaM7tI1aHTEcoXtDUXfNdftk/hU6JrrufpYCK9iqLUuEQhvaT1atwt61xl2VahRDWy2QgZWZub0VFcZPdJ0ean80XKHLF7MJqTGv0LtyagnmV1WU9dm+TLClPIM3OF7OtNejm6FEcCFgMuUFTfZI+oPnjLudWoc1WmG8tKbgluduydElrx9I+EDVzQnnmfSeShxSXnX4nmzEBXt2bkK/88Y+rW1HCjT/KRWDfn4KEL9b8JH0wITxbRA0An5I/Sw3zTt68fJOg+5ztNuPCszc33UrTg3/0P2zVHCAf6Z17dR85+9etKRKA+QBtFA9A73mbpEOgzn0hbVw0TlsIhBPhEzBSQAbEg09n0LeCO48pxF9aXumfYK2SuZwJ9vxLkzVJwZ0AhUnJh4rUeu8tgSEd3VwRhcCVVphyzc68fDrDV19ZQLwiNxSpI5f7d/nnpewF81iPYR3R1etoWlFT3bysbB6hyn2FMcepUpqdRoPZpVTluEBC56vuZU59XU6QDD6nzCLL8p1mo9kpzVJnPReFSJtytA7gFeDdtKy6tmW5s4tYpoEfs7ytC4qoMaocp9GQ41IpzS4D+i8eCA1w9Sypq+1e5rC2dDqwcz3MZouqGVMMIRSV2ajziwxaXzFDBGZOywqVUilrloCZnOqfVljHqBuFR2UgcWCyrc/Rm1HpbWHdr+ia6ypotQaZ4FEDjy/LzVPU9xTROHbSe6W5VKbMsamzTTaVwlQKlgL4ESwlWZoKcp1FOBg90C3XWqSgsww/hX+O/wVvWPAKfgVcZWHPVBhSboufA3rZN44gYFMynAbDKm4cWAk/hn/99U/e8XMnsOqB9wWWzbYFy+BXLB8hSpFCommzZszYksXILrTo2IIMDhemMWElI0WYyeYJqUyRgo7o5qfrMBMpp65RELBXqinWgYT31X0rHmxMdVX4CYarjMUuldJabtBby5Wq4nIgvnOU5V28oIjKcTQvraltXO7sIZZlgksyNZQ45ThBwseaVABHL6nKu5h1FM5MUz3OMgdcpUCrQaEPNSD8npMoUGlhJPyK7yl7KE0jRoCYhRB+K4n2U1Js/IAW2R5Twi2SZyvzVG6QAF1FIDmT6KpQLfLXvWR+iUqnLcwGR4WjxYziAeFAsAfBxmn4FctXQ88n0fV5ztw0UfhQt0iZawQ3L0/L2qkYuWN5pLCTKr46DfZtmRYXxl8O4VtQoqL4dMLjf6WOjVMAyfC0wJbhtvTuE1wCkKfZ8373e82i8wvPq3d/GH2n1Q9NEHaHTkHW/VOxQHIRSDfu6N8hntImupx4sLaSGl4XwaikRdSiQaqMaYK/TYHSaTQiwoF8KeeF8lCyl0gHgkijpUMp34pAp76KXgW+ptEIyNKRss8frvxoJCGUaTr8t7CJaRJ9i9cBv2oGDGnp+IIMXWYM9o9oBgRp6Ok7LInYv0DU458+Am149stXxMC6J7vku74B/4F/nn/dwtKymsUFfhWcCrlPsTFIID6vItFl+Q6jvtAhb4i1iYKFVqPMuxw4xJATzmOmsEuYqig1Mb+tzm5pcfjkygqzIaFYLYcyY7V/MKe9SBRSzrbnCkimhV+AkEKl4rRq0ygVv0w6KVNMquKRk3Ll5AemAqr/OLlY7wiLioSCQt6qUFEhJLAUgne8Z/WaS3kX8tSP64foY9Ix2thm4eZDtEPSQ3QQ0Isuo5dVwbUHo87kLP5/mlkatkU+mK8CEITuyiQ7cczsmVZkS2RZhesv6lgtp0iuUsg+3QRQZCeBFKgY2YqG1un56WwOGncrwGEDX1Io7hluComYwlmiUJO7wJNgQ9DQ3fubN927v3EIqU2bx3qGMheNHUMeOrpwwaFji/toy2Twcp01Bn6u6AQbKTcwpVo+JFLTzREy1rVCEV/nqAb/vPm2Ept2Z8cnf/6goXYTXFzHASLZnro6g76+drS2xmAc14qLiqSSokKxpKhILC0seoJ9oU8YjiU8J+QlpujIBXBCGkFBSAMeFynU76jgD3ciBJUIICJJAJVAUKaGY4qJNXGMsTEge93Tk5yTT9lPT3FOPc3hfOIAthSbNtAhZ0F5JvyrzCyRStsjl/ONRcoy/Q2wLDkqqbdxghRAbq5qkImZPKOiR63kZuFD8Cl8/Owz87aCAMQceSON2QgW3IGPzRbSbRKtucxApKrmgSiPfFe5pimY10bVuCrHfkgPSQd7RkVE7OwVj9/tKJDwJf5FJGpVSBwubPei5LwDmELPQFVrbAI1IQnUXykirT9IBS2aHsJFbXPyngP3zdlp3dmEccnEZe7Xl9169qRuecF6gU/DCzLnVDfuqPoqabn8fXyFiUchxSJYpBgikccq+5GYWHV/2TqAfEOKiefMioobS8Zgc/Wr0++kmTXbRSmkvykkHpsTgrvOhuo52wHqcaQ+Eq3/72nl3A/yMYlx/BI8elYAlq8zCPnmHOg3DzQHY22LvvTNjgSAGnNf3WoSONz6r1hq5MUWWdYk5G5LpXNIrztH3mLabhIOzRw8llfjjSe4F0Gc1Tw7WkpBYLMIoQtwsWJK8Cw/hLRuyow1YbpN4a5TfGdcE2RvWM0PEP5/Gdcz0p/lX09Lv/EC/R4T+QEd+T7rfRApY+fiFz0RC9nc+csyedmg3Tc/brrhDHraDgPel/gXGKTan8Cok4vqF/vvvDq04+fy3Qi3bm+rdn8fgVWxxiYkJSYAZLw7XdokmXG3FTwaNKlF3khnNQasacnjBU/LzSfoYl5+0BmkMNwk7jpuClcfFRs3Pt7xpEraT6e2FIlw7++mPdjWOg32vDCeCJwaRQuXiV/+UdrWFurQxtLcnIQnYpgDixsjOO7ULxr0urHzl3kNgpCLN8zH+65UKGXQw9creg4CmtIxY7W7yMxGYmgGHtLWGqL1nzItQ6gNQchsToiWUkKxWUR3p3YWU+L3fUvZMRbWjvEN3Sn6yWRql7WEQ4cOHzp5+A0Oqw4brFghvLY6PVsjgUxW+87h7ybUGjlWsdFwsaNwZK5Qa7nBJ+Q2rR5Bzqe6im9AhJzGtSMgXNdFYt52i78pthbFJBOB70rihSL2YnyLk8u2NU5EDz2dPWJsVAvDSlH54ehYcW2lZFLSd620tcmS395RWXM286TCZBQKDBqwDPa0NtQVmcqK1ESS6oVohrpUVDS3rY51mJ6ryTMLJfnZZiKTyBDyqGQen87LzoYBFjPDyIraIkAz9avrJ6t5c67Em5h2kjWrO6e3/anDXVZsFQn6XsYmzeCuh+bZS9Y1TAJ2v4hZDUwd/rmsUXoioU2fDxeKNW7DHnEsIY/FhbMyudJyUw47h5LGtnXYmjsd2B5Po9mqakUXC9SFL45GsZN3wlQukGSbVfQ6oUnvI2KKNAZaavqNLLFeD8f1e8xxB2Pe1Skvs82AK0xyz/fklTNLFf4mBrltTXXrryvwqV0IkrjCf0nCFrWFaV49v0mP3pwx8S5m/pPu2Z1Z8FHG/Ch9jjmX2zwMXdYkdVuj5jD3V49gWrj6F04mD9LYhj/iKcPB0RD1jR5SnNt7Ce+cK1eUVnK1s8uL7Haq3Jgx87g+9l91ap5gtj5XPlbRvXRDbcXSFfCp7TaXWmOv0KutDrUGnONTmKAKPSBplneSVRWiKZiFR8q9bQoRs2D1Ei0lfGsWzjfNkvK5J9sVnk8lzCpbpqVsrCkg+CZj85NSnXt0to4RSRFo0ntOdERW3yfOp9CXv5tVwUDlLMlHLkFjknRVqYbLmd6VPGpurgSem9c0zotLVXUX6cyGS5wMnNJaDnCdJWbvfgXM0tJJYlz7kjj3OkfM0pXJZT9unpjQsnQWw6CqyQxbqbKWHmd9qb7a4T24w3CCdlRCBS4GHK6IxXs1QU7PouQcOM2gvqWi9qKAJ9s6XUzWXUVL0IQIQSuNXvxEqYH4DJpIAIXeJdP2kK/JImtzTimx2OJz5rYoOTbef5jyGRnXGJP1LHJfHFSHWoj/MsqvPL+dPWaN0OW/u20eEmmpXc8keiBQHx5SsNr7D0ilpMdex3AV6SV+85l8xvDpMNR13PP14k+51ce9UJEZZcbSi/kLDnGD9oseFe8ub+HQTTQTV9HiPh10Tz3FCIKbHePUSQwcKiE6xEPVjHH0fN1t7lhvUXRod/CDZIgXslHnh6QVHRAXQOeJcnwbYZsDdrAILL5e7vYCBAzqd1TvXgZwtw3oXOlVRVuLe9hYK40OQTX8aXA5SOC3hkzFQ73mgnR2DrnE0N5exwIvFqmEoIxY6cFMMrx7HQWt0ERTeRVRIzkqqsYem04X0Et5jRqesjGDFjPj4nAx33qfAIR7zXjfYHhJekLSQYEc9phAVXcF158wlcBVNFeB5nPe9G4aGw0WZWujMfj8GgiiL2DyQVurtuVs+pKA5kDTk/zE09XnixCEo56hkM+3Sw43hezZP7Xj6bhnSNQU7mcUEnuq4pI0pSwl9rc0YVzMQWmdD2IDArUbGXEACFVIPWJrTBrZe48/j1vlFdoffYWJz+otkjgdV1chqeitEFcYucY4saxX0Lu2FywFMI9NYDtgx1bC1oOa7HR3BAK4HA8RR3e0K87cEOgVJyfQWVZxjgZPeDq7Mg3hO9Lp9bo4W3WExZ4gBSHloxbiY7HnwxDjnwGfsVFKz5DSISQUeMhpjvZev97UxBI8ff0FUsS9MDPUvENtGe1eMC4/euBjGjm5vW9of+jkrSDYNmfrs4OdVix7UK9MibfUDTVtOYI/0j2h1TcN3GXROtTqF5s+S+fgRn7IYIakrI1DV/zGWKdflyWeQCDzUhGnEhOWtGcL8hluEoWcxD0DM7xsRHElEuh8Pm/DfQtxXPy+dVPUqWw4fYo2BaI92PIJXtOCXVjmC1Ve968Wmdn2N+E/j7BauN1B+GRRN/IRwwuaz4x499LJXwJzvPdjGAbu/6dneMZNKUps4i8zG4qdHwULVVUTtT07C/aP55VI2FSYiw65yIOiX97VcRBf8qYUZzGsfqFj4lukjVnMxpPmRqqk8QOGY1OuzuuJ1XjC1EirlEmOCIp3bL1wa0POhuzZ0IJlfs0gPuRVAu1ZFgev0+b3X7wt+2LB4K53A18GDoy0NHMsiJ8BruD8fsWLI1Bbe5vrYcopVtYTKq9SG2En5+HbSg5cXuK4S9gEBF9WVpmKvtt60/0I0LVaPJmY/uEtXLnPulMcWykv+uc5y8wthZqIhNdpxlRKiM1jOGjNNLMfAdMerGVaGCdv5tLWRIMWLqHSTgMRJL2S7EGllluGP6riyPkYa8fiBiGbsv8oqTRxiJRbzqOeFZNTKG6sBv+G1hV415d4qYlXcG2NsuW2Vzg9XmL+0UmJJWPFG8nJVyq+KjcI77gekZdaBYKhjexhv3YJb5TEGXJ+u/u11H3LxujrIX3P7PK8EEUzqaMzHr5BKnWsJyWjTmZygwyTU4M9MOcWjhvWktJk3Ke/JyzUHlaCDXNycy2n+kkZi3tSw6mpk9SBo8KPYqq4+zLebcwfhCD0uRXIxi69HUrdkMW86ZScyeCNWEQ7jw4xOPuJiaguxsv9D39LEWUQI4wIIm6a6JQKRutgpM2dSGJ2lBD2iLi7oFbEhfuW4i2lFcFrGwp2rJjdmtetDXMkx2JV31H4TZZgUt4OBOQtyw12KEDkx6nrT4guzxeDQxM1JF9qsESnBde7q6mAK4zN0EBzDtCqSZBAoqFIDOq1EFlXaVGEN/mQsUfY7A4+QdMtTiAWsRzusWa1lZuYCbUwpDIBZZ/gi2Gp49/JvR69ygM/+ONo9gnSuQfcg2qsRx/mtG0kq8airs6on6OH8jJtmPG9/KOEIjufRrFAxagnWZm5oyDykvua03jIPXfp3/sU/PSp/Kl0jup/D04yefFM8jdRSPB5MVGZfdqMxytsLEpaS2XUesXjUI0sWRyVZWMqlakpe6sTFuhNeL7/4MqefqPaDXvy8LZRk9m9LfYySzh0an5bAtHl1KFrGjtAftIMiwsLyyxB5K/k3ZwEw1+u9iXr/yH8zYjgGOc7dXndT6nwTNJsbxHhoMB8ArS7oJ9n/1cR5tX/u4acDwRPN2rbsgNvUihqEj8FsoDVf2VMZgyYzGnPxenk91EL2uUxUcBBQMeuA3h7SEnHSUNdFybNEme5Af/hObJGCnPpAtRYh6o4Kz2LnSIVNnsRFL2GRfGLKBLbBdaI3RKpvtO4touPaetRiA1gMUDrFp0q5geA0YrvdxLYI+KiOEIcQLCo5/Jp4GuUlcOzcUDYBMOBopSz7Et77/X1lsx1KB2MCYYgUlLNVZVZlLyeKr6smhcBGr4sZsewnQTqTAvtFZ7swaJNfAlmkYyH/gQLWpdhcqnWWvLwmjnYniDQXvoT2ttC0TJle5H8dvWrMEZgu/Yn/COJetlsJFwqR1ESKlmhg0nYXTXvk56dUJMAkmP1mMR/y8awP4Nf1uJoMfFdJCZndjpb9DBhbVzY+pkocHRJBkv0xnBBzQ9FTqAjQRSTeVSx+dZgUY0I1CkilSvNOfZ0FBG8WN4WLgKtpG3YjCTxIEdvIyGoyYjIQumbs6B/ogFJDPO3BeFtmbYSYsmO442J7dZMq6NJbiO2Yf2OksySdnCqk6ZRU2lqNZ3KkMby2aYPxv/QCMnCFuvj0UaFRQ4l7Oxumy55qJUKYC3T7Plu6yZZB5FJ0UTSIwbtoyGH8DMPoZqxZY5HcznVbGXgsB5Eju1LXI6DMqCsGtHmSwFvNq9d8ANcDh+5N3bF0Ga4cnwHqvK3qEszLy7Fp9ePMGf6m0tRr5cfcquhOAU7fhs+1pALH7oedjTgN9bYHcwMkrj5XtTnzWvdq+G7ui5XlrgMI0/DAPeyQ00gEIO2F7VptIWtpRq2urRkHd3OzWPQ2aj2PzoDlGwlmyimt6R7iWIceebOHwHqflbKHLMjLbU0NSucRnn2iLQ/qgGdydPqeHyTXgCZtMBQXbqUW77ciRbqDXxhTo5AmJcrSNz0Nn9JeuqS9LQlqemAeGWog7ap4ydSPMCcwU3m/yEhKdhsFgQiY0N/dJ3G0YyCPgoVlMh7i09+GxvnoWK9VrSa+xIT+swg9oFjKce1XIoR6g2QMDdnAeVeVsSUpm/MzdKXOwh+mmwObAMtaUnPNQ+Gi+Lm9wZOA/VohybRbJvf1TFrEyoJbJlKmsJjeD4KXaUHwmOE+/68GbDo7ApMp5ouxgTPUBHT1VHtZ5cvUWiFPdKqdWWRhal0KmZmMIZKT0Nb+l2VAh4S5ocCWfE7++JF9pK+vvHFC75ePJ9Xp9fmJLF49uiLyrK2uHh1SYlYVmxNTBrhjPjPbY312Oe6hKPxs3cmEprNmenmdNA0UpjwKqHwPe5WYlii80fHj5/PvouGCwnGs4Bp2XxsfNWawwf6E4PTD2katiq7JX8XzJau0RcMnLhisx6ZuAo1ZUmkjZDD2Zfqalds9DXPrKSzhWdwVMSjmNhUiFQBkRhXwwKioyLTI2gRvquzOjhVkZgKjgsaSu0UxMQAH00lpxO0B1rRRBZwSaRYA8+xLmlcctVb/J696YuR6rrZFDaPQBbwh5STs0ERNYH6sznYdwKPqw6Gf4h1BMy7p+gLQ0czvs/oiqU8at7abgwcoJAplP6ffxlhjgD74kEakUYcfPfjcWYj+MRaFNaQF/0EGCPbf19Mfv5HGfj556vMq4D5P9sx2+zfArfffkKJ3fToycNnOVb7A+D2GtgdRhD2xZNHxlIbmP4MI6U245OHTx+a7bbTdpsZMCeOMNWguHSRtVTDBNqVzCOHWerS0v5SB5g4uvXwEabGbl9kLwHvVzOPHGFpHGUDZQ5A+1SxclVZBU8bpa9cWGrOaXE0POydt3KwzrV8JVxlsFeoNWVVJp3dma1xVoDlARusZQZlllnNL+raduX2ug02pyk7K1fLs3RuvXJ7tNaWrti3ONvwbtPo0KEPm0bnR8sGqoTcz0uNv69IybiVcfhuhkdSsps3uhXow1NOnxX8eFs+FbnuPvltqGc6YTquB2RXf+J8AvcvfyvdtOTHOWf5K/5aAqhopc2WzczjpPDx/DwOM9tmU6pKrCpmHhuxlNbGZg71QHPLfqEY2HXsWgMlplYbmpX7pexnigE4gxRcGWpjuDuRxycoOKdXEAJ+EwwY0tDxBZm6jBjsHzEewxfJ7QtD6EwcMDlUuXwF54Bqxf8ccpaCnxsBgsPCj/vFHw/AI8sVsM8pJYibk4QjKwiDPfRH/FVR7PHF9CmJuVgFIwBr5LJcEjB95ctxtYvRwgwFsdYbVvF160838Xzrztk5gJUGvXoVPcvA7cFnzyxccO7cgoVnzgbHs3/5ETCxVRTND9gX2+G/+8TSrs49J9sCYgP2RvG1DX0dEol3IiNR4t0u7QO/kTbePh8ZU66mg5JTj06l/jr5aDLl11OPT6U8TX74x7PO607+WpVU0paFT/GzvnH5B6xIP/KN279l4VeMUapTSqSMuGj8n/WlvMJWokbxu1HIk/gT4NyL+yQFSgIN5vPk87pS0B3JTCT8AlMZZvLO568jTyBRp7aLsweFHGUu79PPDo+Fo08Z3N744p1nbgzN2VGHKVdiFC1KQ9uakaV9qza3Vi+Y59YcyDdR1x84vHrg9GXgykBN4SxddFaGocT98jT7FdfbSq7y2V+G2uq2ZQ6Ohdri9e0ek3Mox7nHw/+nFGAQdXWuHPHzH8RBPM6qwOT2OpW2tjSX/JU2OUWwI1vHZUrmaxpfdmMbMAKqQBwqIPHXNihEXI5cxGAqpBx2pW+qMsl8tBCyDNpACGtQjmUwhRyCgqEYgAcaGA2pMl4YmBKO/tHN1j8wskzMO3QKogegpu8dH87C6pxncH9opH9EPKVNcjmTwf6+SQisVP8ozKuKzA/AUeHuYvqvj2R6AB6w0C274d3TMZxxCqPxb+hZpQWi7rm6FmSU7Fr/tffWddfouqu+PYl2Lasc/ppZtvzLMwUsnuwU333JCf5VPqA+/Ne9E5NIoabPHavKQFIXQzV2uM4oyVE5joLf0SqQ1LZ+8dIAtyP6U39+Z0ZXVkQxSfZZB6vtgxgn3kARi+WYMLnmtYGu0XXaIzpUUqa2Lgo3tTVAMmlYGDNiC/CdIuyXDqf/+s5ctRqtzACmwAjoa+hKy0BUzpCygC9UFg2pCiAh+m1jpiA1jSBoJAjTUoF1VnZ6dzYBeDl/d+NnEWPjcxF4bDLladSTkxSL5WSAQy3icg1tc7TbjWF/zROcgPy+76oVnmQBh0yapd9UawGiNwoHU+38PPOxJCSySOSSiMh0NHYAG7cYO2tg1pEOLsSuogoQmbuinxJaqKifHEQP6oujoh7MUwr5QqWlI9rtYWQKJwgZLIJAGm4TPEFbY4Rn+/ezpZb9HNOWGEsk3uVlPxETCl93rIUh6E57bk8KfA6EftXMGRYz0EBly/E6lALxykJNBHYQ9IF+0B811Ouj2OhrHlk45+TIL03XYmIAkHVkxpUw/8Bh4Wga2mdPVGXsrKosiVVIzWtFmcb1OrQFj0RJF5NpdM3BUm28+2zD2icb1lVVrl9XWeFRVdjRUcA7ubCovf1Me1u6Eedvw7NmUxJpFekEK7dSl0qh59IjrgIbsjxjS9uWjHLg48H6kRI53aYTcdBpDiCy9NyZKXkIhBFZDu6fBUpoJhZeFK0LmxQ2Fo6aXJiNrSy6Q5VddmmvZ5Pvfy/eXlfzCXv8QXUUzuLI9A5hSRIXH1vqyTy3CnsNFEp01mce+yKBI3cEkbh74NjkKzruGQI5hbuORFiiUBO4735OqgyFbl5iAk3WKJ28gptzRz71LZXWnMrLneCLAiVsXb9HwrHMdjRWY2ZsDS/jn8zRke/BO4mvV5T0KMLjo2S1WfTaQWq2bGZVFxwxhDrfRuoLGB0j+aoWb/YY31p4/FkKMc75OgIhzWthuQW5QTUXVOR2zvIlbjZ3+ERpJqxJdD8QnSaMi+atn6lbbC5gNvG5vbma35t/AM70VjaV3Q1yJnWrqeo5QOcueJS5kRcy6PsRBpXqs81ewE5FmCMJb65I9PxgjyySOCXss352IallhgIgRJwkDvCO5Z3kAUQaT72VB9InsBOS+AngTZKHTSHD/hvVoK7azzO1gdCl9ayDvHSYH4AJzuK3T9lNgExwwZoEg7pHCntu1IWuvcH9ZY5MZ7r36wHYI68GFvzcGwD8vax41QTtTObMKI+m66j2HVgbXYGJYS3kDH/nmytcNRH2a5ro/LCu1OAiSIFBkPpgEdOR8QlGDqvFLK/Bfi/xZMa4vxZ7AbPfOrcnGuu6PF1p3BX/TZsvxGwKAghg8s/n0Z7O+m+I45MBfPwlPs0reGT+Vo5uuwNQBwwABP4tBrZ3ogDf+IZYe3W/+Vj2qQsDWwY2BsfYGW84k5HSPMtibjRjTYz9ZeYv8IpUtjZu3uDQF9lM26ogiLtbmSrNETMaLd3Vx5g4i+Vl3B+JhSDTd0pkrjvqH0dL5wEaZ0n6m59kHIu3xxnsQuJcYCz+yw7OR1vM0H/Jrkxd/413xOpdw90qaymBblT3bh86SrS3eXMjpzdJhSDJsI4cDun5Z7SCgCOYY7nMG9i66c8fTCaJM1/QwWgQMrLkqMtVd8Q43lnJQPe04Zz19HJkcUYkaa4Exz3k5cTpq9TCR11ydr1JLMaT9EFkPyTmlXSbnVHUgpodMXY05U0uMeaKo68hs2mSteF3evlrsjyEGNPaQN3OvYyRJXY+IOkXzByt3OT1MgrV5FiphMjUGB3d5Hwm5iW7VqfMTy7NaIoL5dEpJLG0Q+7c1M4iKuRBfBqK21FTzqalztbmbZD2OIOUZ14UJ8Wmac+poCkjhPZ5B1mcvfd+vp59iJTrGOmAQRpiE9KO/MAgToTSMuJG6GQMHJWEbCpSs8UQArrAJxl/ovMRgpU4i/erd/f/3EuEPVjMvVSZY8DBHugBfeAH/Of0mJ61x2YyktIEEnlCqhJNyBXS5fOep2fPOY4yAsoe51cF7NIC3okYZQf0tQwEkIeumErVHqdy8UsWZaM3Mk1e7oAu8PFj0Gqhsm1bx9gvNbXC/S+5xHTdoFd9xqnT101fLyM7zigz3w1lCFe4wHbYRQYOGGX2NfVdHJNk+xhj3TktN5kYhNHFtCoVZffUGYFYYEmvDenwLS8lcHOmO5TDRzAwNVrXnBit96lKxbFrbktqNSRXcfLNiRaUdDXR3ilbU6sBQ2uEiJpd3LYi2vMwXm1Z77WndAKAvYXJ7mByO5fiGqOk5Nj7IbYB36qfGDxjx7mGMBQA0XKtqtUnLuX1p79t8YZKqSSDHQnS+lZVnyqzuMPhxIbj4Kpt+XDmUQN7ndo7kWD6qJtpEKA+LJyq2j5n4J1Vk6dz1mjEs02tA/4RHk2Hx7A2Jo7h24RhOyc8LtShcSovFbfJhkk+ZHKlJ6VmipFTyQ0oMlJ+lwjnW24MbzFFEHWyyIQplBebTjczjQFLixqvRpaNJjvZXUvEUxhu+rvrPhMIcH8+RAAgAAQBTPGtjx4dCWHEevaNCJH7SECiG0koFY5kiFohNSTk4+UUcRqpYPUGqYPM+EhdKHEAqY/KjiENUD+RSEM+fyiNbYTy65dDoPM3P0YE8XINRkQOTPd/LByUxQA4HnwgCDKXEQwKTxEcM0MIAbIshIhSQpykCCEigqButDVY0YSIoTgDIs6atSMU7PYAkbB3sQ+TxOL1y4EAJr3XJgSB/LsDYhFzIb6+BdlbFLREzhC4iEMsmrdgzekZX2RpiQYlICCFoHIJxuQqLb3WGbnZZI98uERsnVL2IFkyJg/v8F8jMAtY7YH5YXCaAqZHNhKMHEmTBjMmbzDhElLVPhD7jQAhJM1TwOfvZIAuzYgPVUCLThsBFs2af/m2bmmgqnq2jCBHsyLCaUMMl5KQAYv6FIZEMs+8NUKnbSRO6wnKaKezja1Ygg6ZiHUhMAglw0y36RwhCRyzCJTOXkEB5puTjQlCCw++qCIsPkJwf5o8zsKI5kc8DacYw3s7wOB+cOUyQBnzxgTCk/ym0COfBsqjBPEU52gQ0oWL95qwNs2lhXWh62WF/pD+63PF4GFUKGG1dKASdkDx0GCqyl62fdZ0MF1MYoOi8RXaAFEq38hRwkKVtRnjJ8cShm4z/sdigNjo3syoACCXh3Rt5kMfHJiwnVKYEGCEkBkP4dPPL2opUVmBqr2I4ai4RjwcRyshpVSQ5w7lqOHHjiLJClVJqwMrtEB5LDAEnYDQeqsZrxUto2Li2GckaJsjG9w+YGGC21kOP5SkzVEZfCxiwQmkXkjq3LpizQIGk+Aj7TcMkCArSURffW1gaJg+ijyGw4Lka0diNqs3XdKtlM+cvNWgVRb0Ryw5yJWawanNekfLM32Mc7qwqma7XBnJrlPJyUcPaUM91muiCH12iUZwJUrGIluEc0lRxsUii8C5RGyS/s0ECqqBWLJFhB4cAGrVAwxOF7kJuCI+Ab5QcyqwEa5XPCPSBTz7+QkjZs5L1E4R1AcNgkxIf/P6jgT6njsFD/DXXCKghbvC/f++r8k0KVKiODXKxeoWJs2sOQkx0e7o902tBfMWlWrwyAON3PmuEHjKwyOPvfDUM89N8fTWS6+c5+W3FO+99Y63bz6J4UuYiEnKLQeclTCslHMo89VJU7lzzoPCWReVCBIoWIiPPrscjgiIiEhIBInCH38TQ2QkjijwL0ANkSSSQghJmykUAhJKmHAR0CJh+u5HNNFixJolDla82RIkSuqnDzEkw0uRKk26DJkIiEgNG8kMRRaqZHk/QyxsHNyaNGeDDyIgBBMRk5D2y2+jxnIip6Ckkk1NQysB4JdmZGKWI1eefAVdaa8iKYjWNW5CZb+pRCKiz+ZQxsmlXEWdhqTJ2jioy0AB8hG9jBq1pNb7Z9iiVZt2HRXJK1CXbiFChQkXUYtWHS64q027e0LdFqXO/SK77kZRXS1ajFhx4iVIlCRZilRp0mXIlCVbjlx5xZevQKEixUqUKlOuQqUq1WrUll2d+nLl+KJCqnxVkqTLkJTeOr+vSzWrVrkNT9PRTbe64KLA873sipyEX5b7HnjokceeeOqZ517IUv/pX3vjrXfe+6BTl25pEI/v02/AoCHfGTHKxt1mbMq0mflPPgP+pJ0xKwFisNj/9H746Zff/vgrcwwj+bqIvLKRGKcRzhbB8xq7qAnYcRNBzc/VynlrJytpddJvPJMh5q/W01JQS9dX5GHN73Sg7LvGqeCz9OLSU12JKpblWa5isyFaMWQ3c8s9J+SYC9w0xT6HWc1BhbygtpvP8prKI721Qr52UvfcbhI9ToaGTIsgBNGeQQ3XhmIWNlwSigApbBac2cFbthRO6tAWK0qGIDs7ePuSYsn9aMu1k3ZQy4l8TEP31pwq6hapXNdWS+NKFY9xMUY9P1T07JDoJSrgJt+LKgtXSaE3pmFoS84UDYtMbmibaRjdYNthNgqbAlvHtOqaQVoULnbzaaDXVpxfAxoX57ncOJfmx7m0MR3ztm1M04+dYuyPotSt8eIsnxbupLNV4V5BPg37E3s6RPdT1u5pg3ou4EdruNyPvJPZBRhenfX6wu2Tla152BaNeuy4iBa6Dg5qSfV2Z0bU4S3DwqZHDMIipbmc9iLsCBX6RHuQ6Qg18YSnl+ZBGqpXGcMA+wPzHiM06VqKJ0A5LuJke4lTLvbYesTEkEUzHfab26WZh1xyyaUUCmLdFtNFbWkTdvw2DdlnZSce7GyW7LhzlmSLadg7q5JPORfgBsbvRG6kUQpyv77qxQNBmze6MZruwqdzmx46SiMMHOkTB+DIVZdRacWNd51KZITU+WJtyO1HSmPpS33hDtoQIAjQSIALAYKA2JifVBTUQAGZSiMILL5f1wjt4TrRxWRAM+HO4atGz6z3oLh93ngdwa6r9/x+FRq0VUNn3Eh6AvVf3gZz4JCcMx1UZ8/cvs1yJ7uemm+YFfFL96EkugwnRskVwhv5KV59YJSFiVqwQioeulOsGr1exVF3pkMhaKe0wj6Jh7CaMh9WU87Dx48bz6fj8C+awuZf2u8UUJvfP+wQFXWXwp0G8M/brMHJzTdSwrHj2P2lTDaPKJoXZAgKxiei1gWFQ7B0Uig6MWumu1MlFQIUkJhTYOJoSWGAImbhrmglPvE5BKCoIKGIoBEJugSCQIIvSfCzIAhc4H5qAZoDBA4SBBoRCADNPZAgEAg0Sum/QigUT7A94/p5KNOLn0VCZxcpRoybrFYg0RVpo2qnrR6z9qZxSq/leWydN2hvGZYMWFmrqGkPz53VsMTwLqMJIeTfibw1XmsQeNlOE1uPWUSFLF/VuKWXXRsxtixT443Ja5031qTuo0RXYTUiraqitiRhmTETcEoUyK9r7krplLFQ4nnF3sOLVrErCl8B24qfU9OdR6MgBQ==') format('woff2')}
@font-face{font-family:'Satoshi';font-style:normal;font-weight:500;font-display:swap;src:url('data:font/woff2;base64,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') format('woff2')}
:root{
  --bg:#0a0e14; --panel:#0d1420; --panel2:#111a28; --line:#22304a; --line2:#2c3b58;
  --text:#dbe2ec; --head:#f0f5fb; --dim:#8b97ac; --dim2:#66738c;
  --teal:#00e6dc; --blue:#58a6ff; --purple:#8c6bf7;
  --accent-grad:linear-gradient(100deg,#00e6dc,#39b8ff 55%,#58a6ff);
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:
    radial-gradient(1100px 620px at 88% -10%, rgba(0,214,204,.12), transparent 60%),
    radial-gradient(820px 560px at 0% 108%, rgba(88,166,255,.10), transparent 55%),
    var(--bg);
  color:var(--text);
  font:16px/1.6 'Satoshi',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1000px;margin:0 auto;padding:52px 28px 72px}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
code,.mono{font-family:ui-monospace,'SF Mono',Menlo,'JetBrains Mono',monospace}

/* header */
.brand{display:flex;align-items:center;gap:13px;margin-bottom:30px}
.brand svg{height:26px;width:auto;display:block}
.brand .bar{width:1px;height:19px;background:var(--line2)}
.brand .kick{font:700 12px ui-monospace,monospace;color:#5fc9c2;letter-spacing:.17em;text-transform:uppercase}
h1{font-family:'Familjen Grotesk',sans-serif;font-weight:700;font-size:52px;line-height:1.02;letter-spacing:-1.6px;margin:0 0 16px;color:var(--head);text-wrap:balance}
h1 .g{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{font-size:19px;color:#b9c6d6;max-width:720px;margin:0}
.lede b{color:var(--head);font-weight:600}

/* how-they-work strip */
.how{margin:30px 0 8px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:720px){.how{grid-template-columns:1fr}}
.how .box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.how .box h3{margin:0 0 6px;font:700 12px ui-monospace,monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--teal)}
.how .box p{margin:0;font-size:14.5px;color:var(--dim)}
.how .box code{color:#cdd7e5;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:12.5px}

/* section */
section{margin-top:44px;padding-top:36px;border-top:1px solid var(--line)}
.eyebrow{font:700 12px ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--dim2);margin-bottom:9px}
h2{font-family:'Familjen Grotesk',sans-serif;font-weight:700;font-size:27px;letter-spacing:-.6px;margin:0 0 6px;color:var(--head);display:flex;align-items:center;gap:11px;flex-wrap:wrap}
h2 .tag{font:600 13px ui-monospace,monospace;color:#9fd6d0;background:rgba(0,214,204,.08);border:1px solid rgba(0,214,204,.26);padding:3px 10px;border-radius:999px;letter-spacing:0}
h2 .new{font:700 10px ui-monospace,monospace;color:var(--purple);background:rgba(140,107,247,.12);border:1px solid rgba(140,107,247,.34);padding:2px 7px;border-radius:5px;letter-spacing:.06em;text-transform:uppercase}
.sub{color:var(--dim);font-size:15px;margin:0 0 18px;max-width:760px}
.sub b{color:var(--text);font-weight:600}

/* live widget stage */
.stage{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;margin-top:4px}
.stage .live{font:700 10px ui-monospace,monospace;color:var(--teal);letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:7px;margin-bottom:14px}
.stage .live i{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 rgba(0,230,220,.6);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(0,230,220,.55)}70%{box-shadow:0 0 0 7px rgba(0,230,220,0)}100%{box-shadow:0 0 0 0 rgba(0,230,220,0)}}

/* code snippet */
pre{background:#070b12;border:1px solid var(--line);border-radius:10px;padding:13px 15px;overflow-x:auto;margin:0 0 16px;font-size:12.5px;line-height:1.6}
pre code{color:#c3cfe0}
.tok-tag{color:#7fd0ff}.tok-attr{color:#9fe6c0}.tok-str{color:#e6c07b}.tok-com{color:#5a6b84}

/* callout */
.callout{background:linear-gradient(180deg,rgba(0,214,204,.06),rgba(88,166,255,.04));border:1px solid rgba(0,214,204,.22);border-radius:14px;padding:18px 20px;margin-top:26px}
.callout h3{margin:0 0 6px;font:700 13px ui-monospace,monospace;letter-spacing:.06em;color:var(--teal)}
.callout p{margin:0;color:#c4d0e0;font-size:15px}

/* two-up for pinout+molecule when wide */
.duo{display:grid;grid-template-columns:1fr;gap:20px}

adom-pinout,adom-heatsink-via,adom-molecule{display:block}
adom-chip-thumbnail{display:inline-block}

/* adom-lbr / datasheet reference cards */
.refgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
@media(max-width:720px){.refgrid{grid-template-columns:1fr}}
.refcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.refcard h3{margin:0 0 7px;font-size:16px;color:var(--head);font-weight:600}
.refcard p{margin:0;color:var(--dim);font-size:14px}
.refcard .pill{display:inline-block;margin-top:11px;font:600 11px ui-monospace,monospace;color:var(--blue);background:rgba(88,166,255,.10);border:1px solid rgba(88,166,255,.28);padding:3px 9px;border-radius:6px}

footer{margin-top:48px;padding-top:26px;border-top:1px solid var(--line);color:var(--dim2);font-size:13px}
footer .files{font-family:ui-monospace,monospace;color:var(--dim);line-height:2}
footer .url{margin-top:14px;color:var(--teal);font-family:ui-monospace,monospace;font-size:13px}

h2{scroll-margin-top:16px}
h2 .anchor{opacity:0;margin-left:6px;color:var(--dim2);text-decoration:none;font:400 20px ui-monospace,monospace;transition:opacity .12s;align-self:center}
h2:hover .anchor{opacity:.6}
h2 .anchor:hover{opacity:1;color:var(--teal)}
</style>
</head>
<body>
<div class="wrap">

  <div class="brand"><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1072.9 236"><defs><style>.cls-1{fill:#fff;stroke-width:0px;}</style></defs><path class="cls-1" d="M212.94,23.05c-25.84-25.84-62.87-30.69-82.73-10.84-8.06,8.06-12.04,18.94-12.21,30.76h0s0,.02,0,.02c0,.04,0,.08,0,.12v73.29c0,.89.72,1.61,1.61,1.61h72.5l-.02-.02c12.17.03,23.42-3.94,31.69-12.2,19.85-19.85,15-56.89-10.84-82.73Z"/><path class="cls-1" d="M23.05,212.95c25.84,25.84,62.87,30.69,82.73,10.84,8.06-8.06,12.04-18.94,12.21-30.76h0s0-.02,0-.02c0-.04,0-.08,0-.12v-73.29c0-.89-.72-1.61-1.61-1.61H43.89l.02.02c-12.17-.03-23.42,3.94-31.69,12.2-19.85,19.85-15,56.89,10.84,82.73Z"/><path class="cls-1" d="M1065.5,25.22h-58.49c-2.98,0-5.68,1.87-6.73,4.65l-44.4,117.54c-.06.17-.31.17-.37,0l-45.44-117.59c-1.07-2.75-3.76-4.6-6.72-4.6h-58.79c-4.09,0-7.4,3.31-7.4,7.4v35.06l-.03-.12c-1.24,4.99-5.89,6-5.89,6,0,0-4.51,1.02-7.61-2.53v.03c-17.82-29.81-50.31-48.93-89.04-48.93-41.5,0-75.86,21.85-92.76,55.23v-.07c-2.86,5.19-8.74,5.13-8.74,5.13,0,0-5.63-.01-8.41-4.61-16.49-32.68-50.56-52.59-94.79-52.59h-73.46c-4.09,0-7.4,3.31-7.4,7.4v121.27s0,.03,0,.04c-.95,5.15-4.75,5.94-4.75,5.94,0,0-3.88.85-6.77-3.32l.05.23-46.05-126.83c-1.03-2.84-3.75-4.74-6.77-4.74h-57.14c-3.01,0-5.73,1.9-6.76,4.73l-68.67,188.38c-1.05,2.88-.18,6.21,2.4,8.19,1.31,1.01,2.98,1.47,4.64,1.47h34.96s6.43,0,6.43,0c2.5,0,4.83-1.39,5.9-3.65,8.49-17.86,26.5-29.64,48.37-29.64s39.71,11.73,48.19,29.53c1.1,2.32,3.49,3.76,6.06,3.76h120.78c31.22,0,57.85-9.95,77.02-28.77,7.38-7.25,13.43-15.72,18.05-25.1v.09c2.74-5.19,8.37-5.13,8.37-5.13,0,0,5.43,0,8.08,4.64,4.88,9.88,11.26,18.78,18.91,26.42,18.6,18.6,44.61,29.78,74.26,29.78,38.74,0,71.23-19.18,89.05-49.07l-.02.07c3.1-3.55,7.61-2.53,7.61-2.53,0,0,4.65,1,5.89,6l.03-.12v36.32c0,4.09,3.31,7.4,7.4,7.4h45.79c4.09,0,7.4-3.31,7.4-7.4v-86.26c0-.23.32-.28.39-.06l30.37,88.86c1,2.91,3.74,4.87,6.81,4.87h39.69c3.08,0,5.82-1.96,6.81-4.87l30.1-88.02c.07-.21.39-.16.39.06v85.43c0,4.09,3.31,7.4,7.4,7.4h45.79c4.09,0,7.4-3.31,7.4-7.4V32.62c0-4.09-3.31-7.4-7.4-7.4ZM372.31,147.57c-.15.21-.5.57-1.1.57h-30.33c-.61,0-.95-.35-1.1-.56-.15-.21-.38-.65-.19-1.23l15.06-45.79c.27-.81.92-.94,1.29-.94h0c.37,0,1.02.12,1.29.93l15.26,45.8c.19.58-.04,1.01-.19,1.23ZM525.72,173.84h-14.52c-.86,0-1.56-.7-1.56-1.56v-92.16c0-.86.7-1.56,1.56-1.56h14.52c30.81,0,48.48,17.47,48.48,47.92s-17.67,47.36-48.48,47.36ZM734.6,173.26c-26.51,0-42.33-17.71-42.34-47.36,0-14.59,3.88-26.68,11.21-34.98,7.33-8.29,18.09-12.67,31.13-12.67,12.11,0,22.28,3.84,29.58,11.13.5.5.98,1.01,1.45,1.54,7.4,8.33,11.31,20.42,11.31,34.97,0,29.21-16.22,47.36-42.34,47.36Z"/></svg><div class="bar"></div><span class="kick">Readme-drop-in widgets</span></div>

  <h1>Component <span class="g">Widgets</span></h1>
  <p class="lede">One home for the reusable widgets you drop into any component or molecule page. Each is a self-contained web component — <b>no build, no dependencies</b> — and every one below is <b>running live in this readme</b>, not a screenshot. Hover them.</p>

  <div class="how">
    <div class="box"><h3>Feed them</h3><p>Three ways in: <code>src="…json"</code>, an inline <code>&lt;script type="application/json"&gt;</code>, or <code>el.data = {…}</code>. Shadow-DOM isolated, light + dark.</p></div>
    <div class="box"><h3>They gang up</h3><p>All widgets speak one <code>lbr-hover</code> bus (<code>BroadcastChannel</code>). Pin-keyed widgets — pinout, footprint, 3D, heat-sink via — cross-highlight by pin number.</p></div>
  </div>

  <!-- PINOUT -->
  <section>
    <div class="eyebrow">Datasheet-style chip diagram</div>
    <h2 id="pinout">Pinout <span class="tag">&lt;adom-pinout&gt;</span><a class="anchor" href="#pinout" aria-label="direct link">#</a></h2>
    <p class="sub">Pins on the sides, colored by type, exposed pad centered. The diagram and the table <b>cross-highlight each other</b> — hover a pin. Give it real pad <code>xy</code> and it lays out from the true footprint; omit it and it infers a quad/dual package.</p>
    <pre><code><span class="tok-tag">&lt;adom-pinout&gt;</span><span class="tok-tag">&lt;script</span> <span class="tok-attr">type</span>=<span class="tok-str">"application/json"</span><span class="tok-tag">&gt;</span>
  { <span class="tok-attr">mpn</span>, <span class="tok-attr">package</span>, <span class="tok-attr">pins</span>:[{ number, name, type?, xy? }] }
<span class="tok-tag">&lt;/script&gt;&lt;/adom-pinout&gt;</span></code></pre>
    <div class="stage">
      <div class="live"><i></i>Live · hover a pin</div>
      <adom-pinout theme="dark"><script type="application/json">{"mpn": "STM32F103C8T6", "package": "LQFP-48", "pins": [{"number": 1, "name": "VBAT", "xy": [-2.75, 4.25], "type": "power"}, {"number": 2, "name": "PC13-TAMPER-RTC", "xy": [-2.25, 4.25], "type": "io"}, {"number": 3, "name": "PC14-OSC32_IN", "xy": [-1.75, 4.25], "type": "clock"}, {"number": 4, "name": "PC15-OSC32_OUT", "xy": [-1.25, 4.25], "type": "clock"}, {"number": 5, "name": "PD0-OSC_IN", "xy": [-0.75, 4.25], "type": "clock"}, {"number": 6, "name": "PD1-OSC_OUT", "xy": [-0.25, 4.25], "type": "clock"}, {"number": 7, "name": "NRST", "xy": [0.25, 4.25], "type": "ctrl"}, {"number": 8, "name": "VSSA", "xy": [0.75, 4.25], "type": "power"}, {"number": 9, "name": "VDDA", "xy": [1.25, 4.25], "type": "power"}, {"number": 10, "name": "PA0-WKUP", "xy": [1.75, 4.25], "type": "io"}, {"number": 11, "name": "PA1", "xy": [2.25, 4.25], "type": "io"}, {"number": 12, "name": "PA2", "xy": [2.75, 4.25], "type": "io"}, {"number": 13, "name": "PA3", "xy": [4.25, 2.75], "type": "io"}, {"number": 14, "name": "PA4", "xy": [4.25, 2.25], "type": "io"}, {"number": 15, "name": "PA5", "xy": [4.25, 1.75], "type": "io"}, {"number": 16, "name": "PA6", "xy": [4.25, 1.25], "type": "io"}, {"number": 17, "name": "PA7", "xy": [4.25, 0.75], "type": "io"}, {"number": 18, "name": "PB0", "xy": [4.25, 0.25], "type": "io"}, {"number": 19, "name": "PB1", "xy": [4.25, -0.25], "type": "io"}, {"number": 20, "name": "PB2", "xy": [4.25, -0.75], "type": "io"}, {"number": 21, "name": "PB10", "xy": [4.25, -1.25], "type": "io"}, {"number": 22, "name": "PB11", "xy": [4.25, -1.75], "type": "io"}, {"number": 23, "name": "VSS_1", "xy": [4.25, -2.25], "type": "power"}, {"number": 24, "name": "VDD_1", "xy": [4.25, -2.75], "type": "power"}, {"number": 25, "name": "PB12", "xy": [2.75, -4.25], "type": "io"}, {"number": 26, "name": "PB13", "xy": [2.25, -4.25], "type": "io"}, {"number": 27, "name": "PB14", "xy": [1.75, -4.25], "type": "io"}, {"number": 28, "name": "PB15", "xy": [1.25, -4.25], "type": "io"}, {"number": 29, "name": "PA8", "xy": [0.75, -4.25], "type": "io"}, {"number": 30, "name": "PA9", "xy": [0.25, -4.25], "type": "io"}, {"number": 31, "name": "PA10", "xy": [-0.25, -4.25], "type": "io"}, {"number": 32, "name": "PA11", "xy": [-0.75, -4.25], "type": "io"}, {"number": 33, "name": "PA12", "xy": [-1.25, -4.25], "type": "io"}, {"number": 34, "name": "PA13", "xy": [-1.75, -4.25], "type": "io"}, {"number": 35, "name": "VSS_2", "xy": [-2.25, -4.25], "type": "power"}, {"number": 36, "name": "VDD_2", "xy": [-2.75, -4.25], "type": "power"}, {"number": 37, "name": "PA14", "xy": [-4.25, -2.75], "type": "io"}, {"number": 38, "name": "PA15", "xy": [-4.25, -2.25], "type": "io"}, {"number": 39, "name": "PB3", "xy": [-4.25, -1.75], "type": "io"}, {"number": 40, "name": "PB4", "xy": [-4.25, -1.25], "type": "io"}, {"number": 41, "name": "PB5", "xy": [-4.25, -0.75], "type": "io"}, {"number": 42, "name": "PB6", "xy": [-4.25, -0.25], "type": "io"}, {"number": 43, "name": "PB7", "xy": [-4.25, 0.25], "type": "io"}, {"number": 44, "name": "BOOT0", "xy": [-4.25, 0.75], "type": "ctrl"}, {"number": 45, "name": "PB8", "xy": [-4.25, 1.25], "type": "io"}, {"number": 46, "name": "PB9", "xy": [-4.25, 1.75], "type": "io"}, {"number": 47, "name": "VSS_3", "xy": [-4.25, 2.25], "type": "power"}, {"number": 48, "name": "VDD_3", "xy": [-4.25, 2.75], "type": "power"}]}</script></adom-pinout>
    </div>
  </section>

  <!-- HEAT-SINK VIA -->
  <section>
    <div class="eyebrow">Thermal design</div>
    <h2 id="heatsink-via">Heat-sink via <span class="tag">&lt;adom-heatsink-via&gt;</span> <span class="new">new</span><a class="anchor" href="#heatsink-via" aria-label="direct link">#</a></h2>
    <p class="sub">The recommended thermal-via array under the exposed pad, with via count, drill and pitch. It <b>only renders when the part actually has an exposed pad</b> — hand it a part with none and it says so instead of drawing a fake grid. Keyed on the EP's pin number, so it lights when you hover that pad in the pinout or footprint.</p>
    <pre><code><span class="tok-tag">&lt;adom-heatsink-via&gt;</span><span class="tok-tag">&lt;script</span> <span class="tok-attr">type</span>=<span class="tok-str">"application/json"</span><span class="tok-tag">&gt;</span>
  { <span class="tok-attr">mpn</span>, <span class="tok-attr">package</span>, <span class="tok-attr">ep</span>:{ w_mm, h_mm, number } }   <span class="tok-com">// or pads:[…] to detect the EP</span>
<span class="tok-tag">&lt;/script&gt;&lt;/adom-heatsink-via&gt;</span></code></pre>
    <div class="stage">
      <div class="live"><i></i>Live</div>
      <adom-heatsink-via theme="dark"><script type="application/json">{"mpn":"MCP23017","package":"QFN-28-1EP_6x6mm_P0.65mm_EP4.25x4.25mm","ep":{"w_mm":4.25,"h_mm":4.25,"number":29}}</script></adom-heatsink-via>
    </div>
  </section>

  <!-- MOLECULE -->
  <section>
    <div class="eyebrow">Reusable sub-circuit</div>
    <h2 id="molecule">Ganged molecule <span class="tag">&lt;adom-molecule&gt;</span> <span class="new">new</span><a class="anchor" href="#molecule" aria-label="direct link">#</a></h2>
    <p class="sub">A molecule as its ganged part set plus how they connect. <b>Hover a net to light every part on it; hover a part to light its nets</b> — the ganged relationship, made legible.</p>
    <pre><code><span class="tok-tag">&lt;adom-molecule&gt;</span><span class="tok-tag">&lt;script</span> <span class="tok-attr">type</span>=<span class="tok-str">"application/json"</span><span class="tok-tag">&gt;</span>
  { <span class="tok-attr">name</span>, <span class="tok-attr">components</span>:[{ ref, mpn, value?, package?, type? }], <span class="tok-attr">nets</span>:[{ name, pins:[{ ref, pin }] }] }
<span class="tok-tag">&lt;/script&gt;&lt;/adom-molecule&gt;</span></code></pre>
    <div class="stage">
      <div class="live"><i></i>Live · hover a net or a part</div>
      <adom-molecule theme="dark"><script type="application/json">{"name": "STM32F103 \u00b7 minimum support", "components": [{"ref": "U1", "mpn": "STM32F103C8T6", "value": "STM32F103C8", "package": "LQFP-48", "type": "mcu"}, {"ref": "C1", "value": "100nF", "package": "0402", "type": "cap"}, {"ref": "C2", "value": "100nF", "package": "0402", "type": "cap"}, {"ref": "C3", "value": "100nF", "package": "0402", "type": "cap"}, {"ref": "C4", "value": "4.7uF", "package": "0805", "type": "cap"}, {"ref": "C5", "value": "10nF", "package": "0402", "type": "cap"}, {"ref": "C6", "value": "1uF", "package": "0603", "type": "cap"}, {"ref": "Y1", "value": "8MHz", "package": "HC-49", "type": "xtal"}, {"ref": "C7", "value": "20pF", "package": "0402", "type": "cap"}, {"ref": "C8", "value": "20pF", "package": "0402", "type": "cap"}, {"ref": "R1", "value": "10k", "package": "0402", "type": "res"}, {"ref": "C9", "value": "100nF", "package": "0402", "type": "cap"}], "nets": [{"name": "VDD", "pins": [{"ref": "U1", "pin": "VDD_1"}, {"ref": "U1", "pin": "VDD_2"}, {"ref": "U1", "pin": "VDD_3"}, {"ref": "C1", "pin": "1"}, {"ref": "C2", "pin": "1"}, {"ref": "C3", "pin": "1"}, {"ref": "C4", "pin": "1"}]}, {"name": "VDDA", "pins": [{"ref": "U1", "pin": "VDDA"}, {"ref": "C5", "pin": "1"}, {"ref": "C6", "pin": "1"}]}, {"name": "OSC_IN", "pins": [{"ref": "U1", "pin": "PD0"}, {"ref": "Y1", "pin": "1"}, {"ref": "C7", "pin": "1"}]}, {"name": "OSC_OUT", "pins": [{"ref": "U1", "pin": "PD1"}, {"ref": "Y1", "pin": "2"}, {"ref": "C8", "pin": "1"}]}, {"name": "NRST", "pins": [{"ref": "U1", "pin": "NRST"}, {"ref": "C9", "pin": "1"}]}, {"name": "BOOT0", "pins": [{"ref": "U1", "pin": "BOOT0"}, {"ref": "R1", "pin": "1"}]}, {"name": "GND", "pins": [{"ref": "U1", "pin": "VSS_1"}, {"ref": "U1", "pin": "VSSA"}, {"ref": "C1", "pin": "2"}, {"ref": "C4", "pin": "2"}, {"ref": "C9", "pin": "2"}, {"ref": "R1", "pin": "2"}]}]}</script></adom-molecule>
    </div>
  </section>

  <!-- CHIP THUMBNAIL -->
  <section>
    <div class="eyebrow">At-a-glance render</div>
    <h2 id="chip-thumbnail">Chip thumbnail <span class="tag">&lt;adom-chip-thumbnail&gt;</span> <span class="new">new</span><a class="anchor" href="#chip-thumbnail" aria-label="direct link">#</a></h2>
    <p class="sub">A small rendered image of the actual part — in production, <code>glb2png</code> / the chip-thumbnailer off the part's GLB. Falls back to a clean placeholder when there's no render.</p>
    <pre><code><span class="tok-tag">&lt;adom-chip-thumbnail</span> <span class="tok-attr">src</span>=<span class="tok-str">"thumb.png"</span> <span class="tok-attr">mpn</span>=<span class="tok-str">"74HC00"</span> <span class="tok-attr">package</span>=<span class="tok-str">"SOIC-14"</span><span class="tok-tag">&gt;&lt;/adom-chip-thumbnail&gt;</span></code></pre>
    <div class="stage" style="text-align:center">
      <div class="live" style="justify-content:center"><i></i>Live</div>
      <adom-chip-thumbnail theme="dark" mpn="74HC00" package="SOIC-14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABkAAAAZACAIAAACubhnwAAAAAXNSR0IArs4c6QAAIABJREFUeJzs3V9zHFd62OFzpmcGoEAK9NLKyk7itZ14s1HZN4m3ktz4+38Bl12+cVXK8f6xRS1BQJiZnu6TC0AQSQHEv5nu9/Q8z17tLsU5EkVi8Jv3vJ3/9Bd/lQAAAAAgqtnYBwAAAACAzxGwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAAgNAELAAAAABCE7AAAAAACE3AAgAAACA0AQsAAACA0AQsAAAAAEITsAAAAAAITcACAAAAIDQBCwAAAIDQBCwAAAAAQhOwAAAAAAhNwAIAAAAgNAELAAAA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fbf+p99dnq37sc8IAFRDwAKAexwtXqw3l2OfAqpxla6++iFdvfr6Vzf/17/LWJG5xAxAYAIWAAA78803f/PNN3/90//9JmOd/eYfvr/cyFjsz3LpCiHABAlYABCG1UDU7K509aFXX//q1de/ev/bf5SxAIBHaV69fjP2GQAgtMvV+67bDvRiW9u2qM9XX/3817/+33/+53/xwB9/9PKPv/yT/55zPv/ud99fblJKf/Ty6Bdvjtuu+8Nlt+fDcrc8kVuEXxx/2TQ+pweYmvynv/irsc8AAKGdf//d+/O3w7xWuTSBQk0+WXf1BFfTWCmlL14sv3ixTCn9/b+e//O3m50ek4dpxj7AjvzJH/+XsY8AwO4JWABwDwELfur56epDMlYIAhYAgQlYAHAPAQs+tNt09aGrjLVYNF+8WC7mjYw1NAELgMAELAC4h4AFV/aXrj4kY41mEgHraPHiZ6d/OvYpANg9S9wB4B6bdrXZXA70Ypa4E9U33/zNr3/9v05OTvb9Qlcr3vu+nH37m3bbNc3s69PjX/78uO16K973axIPQp03ixfHr8Y+BQC7ZwILAO4x5ARW2pTSaVjE8s03f/PNN389ykuf/fYfz37zD8vraaxZSunv//XCNNa+mMACIDATWABwr3y5ej/QS3Up6VdE8rf/83/81S+/GevVr6axur68+/Y3223fNLOvT4/evFxctuVy477trk1jAmtmAgtgmgQsALhH128FLA7Wf/3L/9y2q6ZZNM18rDN8krFeHs9/8UbG2oNJBKwvjr5cLl+MfQoAdk/AAoB7CFgcsl/82X/suu3q8v3oGSs1y2672Xz/brXeyli7l1PKY59hF44WLwQsgEka7y0IAAD12KwvN+v/tzx6cfLyZ4vl8ZAvvb48227X23b942HabtNeLhfNly+W/+cvXn57sf2n36++PW+HPBUxqVcAUyVgAcA9losBv1efpeQxawQ2cMbqtuttu15dnt1+GBkLAA6GgAUAwOMMk7HWl2d3pauPDvNxxvrtu/U/v21lLACYGAELAICn2F/GemC6+ugwP2SsNyfLr0+PZCwAmBgBCwCAp9ttxvp8uurue5yCjPV0k9jgPvSlbwAGJGABAPBcz89YT5i6uvMwMhYATI6ABQAPkFMqY58BBvf69MtH/finZaz15VlKaVf16sfDyFgAMCECFgDc72jx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AACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAPj/7dixAAAAAMAgf+tp7CiMAABYE1gAAAAArAksAAAAANYEFgAAAABrAgsAAACANYEFAAAAwJrAAgAAAGBNYAEAAACwJrAAAAAAWBNYAAAAAKwJLAAAAADWBBYAAAAAawILAAAAgDWBBQQl4rwAAAFoSURBVAAAAMCawAIAAABgTWABAAAAsCawAAAAAFgTWAAAAACsCSwAAAAA1gQWAAAAAGsCCwAAAIA1gQUAAADAmsACAAAAYE1gAQAAALAmsAAAAABYE1gAAAAArAksAAAAANYEFgAAAABrAgsAAACANYEFAAAAwJrAAgAAAGBNYAEAAACwJrAAAAAAWBNYAAAAAKwJLAAAAADWBBYAAAAAawILAAAAgDWBBQAAAMCawAIAAABgTWABAAAAsCawAAAAAFgTWAAAAACsCSwAAAAA1gQWAAAAAGsCCwAAAIA1gQUAAADAmsACAAAAYE1gAQAAALAmsAAAAABYE1gAAAAArAksAAAAANYEFgAAAABrAgsAAACANYEFAAAAwJrAAgAAAGBNYAEAAACwJrAAAAAAWBNYAAAAAKwJLAAAAADWBBYAAAAAawILAAAAgDWBBQAAAMCawAIAAABgTWABAAAAsCawAAAAAFgLVjjSp56bsr4AAAAASUVORK5CYII="></adom-chip-thumbnail>
    </div>
  </section>

  <!-- MOLECULIZE -->
  <section>
    <div class="eyebrow">Board page</div>
    <h2 id="moleculize">Board → molecule <span class="tag">&lt;adom-moleculize&gt;</span> <span class="new">new</span><a class="anchor" href="#moleculize" aria-label="direct link">#</a></h2>
    <p class="sub"><b>Drop a <code>.kicad_pcb</code></b> and it reads the Edge.Cuts size <b>in your browser</b>, no backend, and shows the workcell molecule <code>kicad-to-molecule</code> would produce: wings + 4 grid-snapped machine pins. Only generating the file needs an AI thread.</p>
    <pre><code><span class="tok-tag">&lt;adom-moleculize&gt;&lt;/adom-moleculize&gt;</span>  <span class="tok-com">&lt;!-- drop a .kicad_pcb, or seed { width_mm, height_mm } --&gt;</span></code></pre>
    <div class="stage">
      <div class="live"><i></i>Live&nbsp;·&nbsp;drop a .kicad_pcb, or click &#8635; to load one</div>
      <adom-moleculize theme="dark"><script type="application/json">{ "name":"example board", "width_mm":35, "height_mm":85, "kicad_pcb":"board.kicad_pcb" }</script></adom-moleculize>
    </div>
  </section>

  <div class="callout">
    <h3>Why these are live, not pictures</h3>
    <p>This page is a <code>readme.html</code> — the wiki serves it byte-for-byte in a sandboxed iframe where scripts run. So the widgets above aren't renders of the widgets; they <b>are</b> the widgets. Drop the same <code>&lt;adom-*&gt;</code> tags into any component page and they behave identically.</p>
  </div>

  <!-- ADOM-TABLE -->
  <section>
    <div class="eyebrow">The generic one — registered wiki-wide</div>
    <h2 id="table">Table <span class="tag">&lt;adom-table&gt;</span> <span class="new">new</span><a class="anchor" href="#table" aria-label="direct link">#</a></h2>
    <p class="sub">Any JSON array as a filterable, sortable, facetable table. Not component-specific and not on the <code>lbr-hover</code> bus — and unlike the widgets above it ships with the <code>adom-widget</code> runtime <b>bundled in</b>, because the wiki's widget frame loads exactly one script. It is registered in <code>adom/widgets</code>, so any page can write the tag in plain markdown instead of hosting the script.</p>
    <pre><code><span class="tok-com">&#8250; in any README.md, on its own line</span>
<span class="tok-tag">::adom-table</span>{<span class="tok-attr">src</span>=<span class="tok-str">"/OWNER/SLUG/render/data.json"</span> <span class="tok-attr">columns</span>=<span class="tok-str">"repo,owner,policy"</span> <span class="tok-attr">facet</span>=<span class="tok-str">"owner"</span>}</code></pre>
    <div class="refgrid">
      <div class="refcard">
        <h3>Nine allowlisted attributes</h3>
        <p><code>src</code> <code>columns</code> <code>heading</code> <code>filter</code> <code>facet</code> <code>sort</code> <code>dim</code> <code>mark</code> <code>colorby</code>. <code>mark</code> colours cells matching a pattern; <code>colorby="col:field"</code> takes the colour from each row's own data (<code>#rgb</code> / <code>#rrggbb</code> only, anything else dropped), so a page and any other rendering of the same data — an <code>.svg</code> export, say — cannot drift into disagreeing about who is which colour.</p>
        <span class="pill">adom/widgets</span>
      </div>
      <div class="refcard">
        <h3>On a private page, host it instead</h3>
        <p>The tag's frame is an opaque origin, so its <code>src</code> fetch carries no session: it 404s and the table renders empty with no error anywhere. Feed the widget inline JSON from a page section instead. See adom/wiki#166; <code>adom/repo-ownership</code> is a working host.</p>
        <span class="pill">adom/wiki#166</span>
      </div>
    </div>
  </section>

  <!-- ADOM-LBR + DATASHEET -->
  <section>
    <div class="eyebrow">Already covered — don't rebuild</div>
    <h2 id="trust">Verification, 3D files, footprint variants <span class="new">new</span><a class="anchor" href="#trust" aria-label="direct link">#</a></h2>
    <p class="sub">Three widgets every component page can carry, each fed by a JSON file committed in the page's own repo. Embed them in a README with the registered tags; the tools that write the JSON live in <code>tools/</code> here.</p>
    <pre><code><span class="tok-tag">::adom-verified</span>{<span class="tok-attr">src</span>=<span class="tok-str">"/OWNER/SLUG/render/verification.json"</span>}
<span class="tok-tag">::adom-models</span>{<span class="tok-attr">src</span>=<span class="tok-str">"/OWNER/SLUG/render/models.json"</span>}
<span class="tok-tag">::adom-footprint-variants</span>{<span class="tok-attr">src</span>=<span class="tok-str">"/OWNER/SLUG/render/footprint-variants/MPN.variants.json"</span>}</code></pre>
    <ul class="sub">
      <li><b>&lt;adom-verified&gt;</b>: the "verified by" trust mark (big green check, who verified the page and when, a card per ordering variant) and the full verification log with evidence; re-hashes the verified files and turns amber when one changed. Data: <code>verification.json</code> (adom/verification@1), written by <code>tools/verify_log.py</code>.</li>
      <li><b>&lt;adom-models&gt;</b>: every 3D file on the page as a card, STEP and GLB tabs (STEP first), top and underside previews framed on the marked wall, what makes each file different, derived-from, a download, and a freshness check against the page's file listing. Data: <code>models.json</code> (adom/models@1), written by <code>tools/models_json.py</code> (scan, set, thumbs).</li>
      <li><b>&lt;adom-footprint-variants&gt;</b>: the footprint's variant family (baseline, heatsink vias, 300 um solder balls, rounded pads) drawn from the <code>.kicad_mod</code> files in the browser. Data: a <code>variants.json</code> written by <code>tools/make-variants.py</code>.</li>
    </ul>

    <h2 id="cad">Symbol · Footprint · 3D · Datasheet<a class="anchor" href="#cad" aria-label="direct link">#</a></h2>
    <p class="sub">The heavy viewers already exist. These widgets sit <b>alongside</b> them on the same <code>lbr-hover</code> bus — they don't reimplement them.</p>
    <div class="refgrid">
      <div class="refcard">
        <h3>Symbol · Footprint · 3D — adom-lbr</h3>
        <p>Canonical adom-lbr JSON: schematic symbol, footprint with layer stackup (KiCad + Altium), a first-class pin table, and per-lead 3D highlight. Embed the adom-lbr viewer; it already shares the hover bus, so it cross-links with the widgets here.</p>
        <span class="pill">adom-lbr viewers</span>
      </div>
      <div class="refcard">
        <h3>Datasheet — native viewer</h3>
        <p>Push the part's PDF and the wiki's native datasheet viewer renders it inline with pop-out. Nothing to build.</p>
        <span class="pill">native</span>
      </div>
    </div>
  </section>

  <footer>
    <div class="eyebrow" style="color:var(--dim2)">Attached in the Files tab</div>
    <div class="files">pinout-widget.js · heatsink-via-widget.js · molecule-widget.js · chip-thumbnail-widget.js · moleculize-widget.js<br>+ each widget's <span class="mono">*-viewer.html</span> (iframe-embeddable) and the example JSON sources<br>+ <span class="mono">widgets/adom-table.js</span>, which pages load through the registry route <span class="mono">/widget-script/adom-table.js</span></div>
    <div class="url">wiki.adom.inc/adom/component-widgets</div>
  </footer>

</div>

<!-- readme-height reporter: the wiki sizes the iframe to fit us (no vh units anywhere above). -->
<script>
(function () {
  var last = 0;
  function report() {
    var h = Math.ceil(document.documentElement.scrollHeight) + 2;
    if (Math.abs(h - last) > 2) { last = h; parent.postMessage({ type: 'readme-height', height: h }, '*'); }
  }
  window.addEventListener('load', report);
  if (window.ResizeObserver) new ResizeObserver(report).observe(document.documentElement);
  setInterval(report, 1200);
  report();
})();
</script>

<!-- the widgets themselves, inlined verbatim (self-contained, no external deps) -->
<script>/*!
 * <adom-pinout> — a reusable, dependency-free pinout widget.
 *
 * Drop-in:
 *   <script src="pinout-widget.js"><\/script>
 *   <adom-pinout src="part.json"></adom-pinout>
 *   <adom-pinout><script type="application/json">{ ...pin data... }<\/script></adom-pinout>
 *   // or: document.querySelector('adom-pinout').data = { ... }
 *
 * Data contract (everything except pins[].name is optional):
 *   {
 *     "mpn": "STM32F103C8T6",           // label shown in the chip body
 *     "package": "LQFP-48",             // label + hints the inferred layout (quad vs dual)
 *     "pins": [
 *       { "number": 1, "name": "VBAT",  // number+name are the essentials
 *         "type": "power",              // power|io|clock|ctrl|other  (auto-inferred from name if omitted)
 *         "xy": [-2.75, 4.25] }         // mm pad centre (footprint frame, +y up) — best placement.
 *                                       // omit xy → placed by inferred quad/dual layout.
 *     ]
 *   }
 *
 * Attributes: src (fetch JSON), layout ("auto"|"quad"|"dual"), heading (override title).
 * Self-contained (Shadow DOM), themes to the host via prefers-color-scheme.
 */
(() => {
  const TYPE_COLORS = {
    power: '#ff5c5c', io: '#00d3c8', clock: '#4c9dff', ctrl: '#b57cff', control: '#b57cff', other: '#8b97ac',
  };
  const TYPE_LABEL = { power: 'power', io: 'I/O', clock: 'clock', ctrl: 'control', control: 'control', other: 'other' };

  function inferType(name) {
    const n = String(name || '').toUpperCase();
    if (n === 'NC' || n === '') return 'other';
    if (/^(VDD|VSS|VCC|GND|VBAT|VDDA|VSSA|AVDD|AVSS|VREF|VEE|VBUS|V\+|V-|AGND|DGND)/.test(n)) return 'power';
    if (/(OSC|XTAL|CLKIN|CLKOUT|\bCLK\b|SCLK|MCLK)/.test(n)) return 'clock';
    if (/^(NRST|~?RESET|RST|BOOT|EN\b|~?CE|~?CS|MODE|TEST|WAKE|SHDN|~?SHDN|PDN)/.test(n)) return 'ctrl';
    return 'io';
  }

  // Exposed / thermal pad (QFN/DFN/SON/PowerPAD) — belongs in the chip centre, not on an edge.
  const isCenterPad = p => {
    const n = String(p.name || '').trim().toUpperCase();
    return /^(EP|EPAD|PAD|TAB|THERMAL|E[-_]?PAD|EXP|EXPPAD)$/.test(n) || /EXPOSED\s*PAD|THERMAL\s*PAD/.test(n);
  };

  // Return each pin as { ...pin, x, y, side } in a S×S box. Center pads get side:'center'.
  function layout(pins, pkg, forced) {
    const S = 400, pad = 60, mid = S / 2;
    const centers = pins.filter(isCenterPad);
    const edge = pins.filter(p => !isCenterPad(p));
    let laid;
    const hasXY = edge.length > 0 && edge.every(p => Array.isArray(p.xy) && p.xy.length === 2);
    if (hasXY && forced !== 'quad' && forced !== 'dual') {
      const xs = edge.map(p => p.xy[0]), ys = edge.map(p => p.xy[1]);
      const minx = Math.min(...xs), maxx = Math.max(...xs), miny = Math.min(...ys), maxy = Math.max(...ys);
      const span = Math.max(maxx - minx, maxy - miny) || 1, sc = (S - 2 * pad) / span;
      const cx = (maxx + minx) / 2, cy = (maxy + miny) / 2, off = (v, c) => mid + (v - c) * sc;
      laid = edge.map(p => {
        const x = off(p.xy[0], cx), y = S - off(p.xy[1], cy); // flip y (mm +y up → screen down)
        const side = p.xy[1] === maxy ? 'top' : p.xy[1] === miny ? 'bottom' : p.xy[0] === maxx ? 'right' : 'left';
        return { ...p, x, y, side };
      });
    } else {
      const N = edge.length, inner = pad, outer = S - pad, at = (a, b, t) => a + (b - a) * t;
      const quad = forced === 'quad' || (forced !== 'dual' && /QF|BGA|LGA|LCC|QFN|QFP/i.test(pkg || ''));
      if (quad) {
        const per = Math.ceil(N / 4);
        laid = edge.map((p, i) => {
          const s = Math.floor(i / per), t = ((i % per) + 0.5) / per;
          if (s === 0) return { ...p, x: inner, y: at(inner, outer, t), side: 'left' };
          if (s === 1) return { ...p, x: at(inner, outer, t), y: outer, side: 'bottom' };
          if (s === 2) return { ...p, x: outer, y: at(outer, inner, t), side: 'right' };
          return { ...p, x: at(outer, inner, t), y: inner, side: 'top' };
        });
      } else {
        const half = Math.ceil(N / 2); // DIP-style: left top→bottom, right bottom→top
        laid = edge.map((p, i) => i < half
          ? { ...p, x: inner, y: at(inner, outer, (i + 0.5) / half), side: 'left' }
          : { ...p, x: outer, y: at(outer, inner, (i - half + 0.5) / (N - half)), side: 'right' });
      }
    }
    centers.forEach(p => laid.push({ ...p, x: mid, y: mid, side: 'center' }));
    return laid;
  }

  const esc = s => String(s).replace(/[&<>"]/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' }[c]));

  class AdomPinout extends HTMLElement {
    set data(d) { this._data = d; if (this.shadowRoot) this._render(); }
    get data() { return this._data; }

    async connectedCallback() {
      if (this._init) return; this._init = true;
      this.attachShadow({ mode: 'open' });
      this._busInit();
      if (!this._data) {
        const inline = this.querySelector('script[type="application/json"]');
        if (inline) { try { this._data = JSON.parse(inline.textContent); } catch (e) { /* ignore */ } }
        const src = this.getAttribute('src');
        if (!this._data && src) { try { this._data = await (await fetch(src)).json(); } catch (e) { this._err = 'could not load ' + src; } }
      }
      this._render();
    }

    _render() {
      const d = this._data;
      const root = this.shadowRoot;
      if (this._err || !d || !Array.isArray(d.pins)) {
        root.innerHTML = `<style>${this._css()}</style><div class="card"><div class="empty">${esc(this._err || 'no pin data')}</div></div>`;
        return;
      }
      const pins = d.pins.map(p => ({ ...p, type: (p.type || inferType(p.name)).toLowerCase() }));
      const laid = layout(pins, d.package, this.getAttribute('layout'));
      const typesPresent = [...new Set(pins.map(p => p.type))];
      const heading = this.getAttribute('heading') || d.mpn || '';
      root.innerHTML = `<style>${this._css()}</style>
        <div class="card">
          <div class="hd">${heading ? `<span class="mpn">${esc(heading)}</span>` : ''}${d.package ? `<span class="pkg">${esc(d.package)}</span>` : ''}<span class="count">${pins.length} pins</span><span class="tools"><button class="tbtn" data-act="copy" title="Copy the pin map as JSON">copy</button><button class="tbtn" data-act="dl" title="Download the pin map as JSON">JSON&nbsp;↓</button></span></div>
          <div class="body">
            <div class="diagram">
              <div class="readout" data-readout>hover a pin&nbsp;→</div>
              ${this._svg(laid, d)}
              <div class="legend">${typesPresent.map(t => `<span><i style="background:${TYPE_COLORS[t] || TYPE_COLORS.other}"></i>${TYPE_LABEL[t] || t}</span>`).join('')}</div>
            </div>
            <div class="tablewrap"><table>
              <thead><tr><th>#</th><th>Name</th><th>Type</th></tr></thead>
              <tbody>${pins.slice().sort((a, b) => a.number - b.number).map(p => `
                <tr data-pin="${esc(p.number)}"><td class="num">${esc(p.number)}</td><td class="nm">${esc(p.name)}</td>
                <td><span class="tp" style="color:${TYPE_COLORS[p.type] || TYPE_COLORS.other}">${TYPE_LABEL[p.type] || p.type}</span></td></tr>`).join('')}</tbody>
            </table></div>
          </div>
        </div>`;
      this._wire(pins);
    }

    _svg(laid, d) {
      const S = 400;
      const edge = laid.filter(p => p.side !== 'center');
      const cen = laid.filter(p => p.side === 'center');
      const xs = edge.map(p => p.x), ys = edge.map(p => p.y);
      const pminX = Math.min(...xs), pmaxX = Math.max(...xs), pminY = Math.min(...ys), pmaxY = Math.max(...ys);
      const sides = new Set(edge.map(p => p.side)), hasTB = sides.has('top') || sides.has('bottom');
      const bL = pminX + 16, bR = pmaxX - 16, bT = hasTB ? pminY + 16 : pminY - 12, bB = hasTB ? pmaxY - 16 : pmaxY + 12;
      const cx = (bL + bR) / 2, cyB = (bT + bB) / 2;
      let s = `<svg viewBox="0 0 ${S} ${S}" class="chip">`;
      s += `<rect x="${bL}" y="${bT}" width="${bR - bL}" height="${bB - bT}" rx="10" class="pkgbody"/>`;
      s += `<circle cx="${bL + 15}" cy="${bT + 15}" r="4" class="pin1"/>`;
      const lY = cen.length ? bT + 32 : cyB - 3;
      s += `<text x="${cx}" y="${lY}" text-anchor="middle" class="lbl">${esc(d.mpn || '')}</text>`;
      if (d.package) s += `<text x="${cx}" y="${lY + 13}" text-anchor="middle" class="lbl2">${esc(d.package)}</text>`;
      // center pad(s) — exposed/thermal pad, drawn in the body centre
      cen.forEach((p, i) => {
        const col = TYPE_COLORS[p.type] || TYPE_COLORS.other;
        const ex = cx + (i - (cen.length - 1) / 2) * 40, ey = cyB + (cen.length ? 22 : 0);
        s += `<g class="pin" data-pin="${esc(p.number)}">`
          + `<rect class="ep" x="${ex - 19}" y="${ey - 13}" width="38" height="26" rx="4" fill="${col}" fill-opacity="0.15" stroke="${col}"/>`
          + `<text class="ept" x="${ex}" y="${ey + 3}" text-anchor="middle">${esc(p.name)}·${esc(p.number)}</text></g>`;
      });
      for (const p of edge) {
        const col = TYPE_COLORS[p.type] || TYPE_COLORS.other;
        let ex = p.x, ey = p.y, lx = p.x, ly = p.y, anc = 'middle';
        if (p.side === 'left') { ex = bL; lx = p.x - 11; anc = 'end'; ly = p.y + 3; }
        else if (p.side === 'right') { ex = bR; lx = p.x + 11; anc = 'start'; ly = p.y + 3; }
        else if (p.side === 'top') { ey = bT; ly = p.y - 9; }
        else { ey = bB; ly = p.y + 14; }
        s += `<g class="pin" data-pin="${esc(p.number)}">`
          + `<line class="stub" x1="${p.x}" y1="${p.y}" x2="${ex}" y2="${ey}" stroke="${col}"/>`
          + `<circle class="dot" cx="${p.x}" cy="${p.y}" r="3.1" fill="${col}"/>`
          + `<text class="pn" x="${lx}" y="${ly}" text-anchor="${anc}">${esc(p.number)}</text></g>`;
      }
      return s + `</svg>`;
    }

    // Set the highlighted pin. `emit` fires a `pinhover` event (internal hover);
    // external callers use highlight() which does NOT emit (avoids feedback loops).
    _set(n, emit) {
      const root = this.shadowRoot; if (!root) return;
      const s = (n == null ? '' : String(n));
      root.querySelectorAll('tr[data-pin]').forEach(r => r.classList.toggle('hot', r.dataset.pin === s));
      root.querySelectorAll('svg .pin[data-pin]').forEach(g => g.classList.toggle('hot', g.dataset.pin === s));
      const p = (this._pinsRendered || []).find(x => String(x.number) === s);
      const ro = root.querySelector('[data-readout]');
      if (ro) ro.innerHTML = p
        ? `<b>PIN ${esc(p.number)}</b> · ${esc(p.name)}<span class="rt" style="color:${TYPE_COLORS[p.type] || TYPE_COLORS.other}">${TYPE_LABEL[p.type] || p.type}</span>`
        : 'hover a pin&nbsp;→';
      if (emit) { this.dispatchEvent(new CustomEvent('pinhover', { detail: p || null, bubbles: true })); this._emitBus(s); }
    }

    /** Public: drive the highlight from outside (e.g. a linked footprint/symbol widget). */
    highlight(n) { this._set(n, false); }

    /** Public: the canonical pin map as a plain object — the structured handle for code/AI.
     *  Types are resolved (inferred filled in) so consumers get a complete map. No fabricated fields. */
    toJSON() {
      const d = this._data || {};
      const pins = (Array.isArray(d.pins) ? d.pins : [])
        .map(p => ({ number: p.number, name: p.name, type: (p.type || inferType(p.name)).toLowerCase(), ...(p.xy ? { xy: p.xy } : {}) }))
        .sort((a, b) => (Number(a.number) - Number(b.number)) || String(a.number).localeCompare(String(b.number)));
      const out = {};
      if (d.mpn) out.mpn = d.mpn;
      if (d.package) out.package = d.package;
      out.pins = pins;
      return out;
    }

    _exportJson() { return JSON.stringify(this.toJSON(), null, 2); }
    _exportName() { const d = this._data || {}; return ((d.mpn || 'pinout') + (d.package ? '-' + d.package : '')).replace(/[^\w.-]+/g, '_') + '.pins.json'; }
    _download() {
      const blob = new Blob([this._exportJson()], { type: 'application/json' });
      const url = URL.createObjectURL(blob), a = document.createElement('a');
      a.href = url; a.download = this._exportName(); document.body.appendChild(a); a.click();
      a.remove(); setTimeout(() => URL.revokeObjectURL(url), 1000);
    }
    async _copy(btn) {
      const txt = this._exportJson(), done = () => { if (!btn) return; const o = btn.textContent; btn.textContent = 'copied'; btn.classList.add('ok'); setTimeout(() => { btn.textContent = o; btn.classList.remove('ok'); }, 1100); };
      try { await navigator.clipboard.writeText(txt); done(); return; } catch (e) { /* sandboxed / denied — fall back */ }
      try { const ta = document.createElement('textarea'); ta.value = txt; ta.style.position = 'fixed'; ta.style.opacity = '0'; document.body.appendChild(ta); ta.select(); document.execCommand('copy'); ta.remove(); done(); }
      catch (e2) { this._download(); }   // last resort: hand them the file
    }

    // adom-lbr shared cross-highlight bus: BroadcastChannel('lbr-hover') + parent relay.
    _busInit() {
      this._self = 'w' + Math.random().toString(36).slice(2);
      this._bus = ('BroadcastChannel' in window) ? new BroadcastChannel('lbr-hover') : null;
      const on = e => { const d = e.data || {}; if (d.type === 'lbr-hover' && d.src !== this._self) this._set(d.pin == null ? '' : d.pin, false); };
      if (this._bus) this._bus.onmessage = on;
      this._winmsg = on; window.addEventListener('message', on);
    }
    disconnectedCallback() { try { this._bus && this._bus.close(); } catch (_) { /*noop*/ } if (this._winmsg) window.removeEventListener('message', this._winmsg); }
    _emitBus(n) {
      const m = { type: 'lbr-hover', pin: (n === '' || n == null) ? null : String(n), mpn: (this._data && this._data.mpn) || '', src: this._self };
      try { this._bus && this._bus.postMessage(m); } catch (_) { /*noop*/ }
      try { if (window.parent && window.parent !== window) window.parent.postMessage(m, '*'); } catch (_) { /*noop*/ }
    }

    _wire(pins) {
      this._pinsRendered = pins;
      const root = this.shadowRoot;
      const dl = root.querySelector('.tbtn[data-act="dl"]'); if (dl) dl.onclick = () => this._download();
      const cp = root.querySelector('.tbtn[data-act="copy"]'); if (cp) cp.onclick = () => this._copy(cp);
      root.querySelectorAll('tr[data-pin]').forEach(r => { r.onmouseenter = () => this._set(r.dataset.pin, true); r.onmouseleave = () => this._set('', true); });
      root.querySelectorAll('svg .pin[data-pin]').forEach(g => { g.onmouseenter = () => this._set(g.dataset.pin, true); g.onmouseleave = () => this._set('', true); });
      // Match the pin table's height to the chip diagram column so it fills the
      // space and scrolls, instead of a fixed short box next to a taller chip.
      const dia = root.querySelector('.diagram'), tw = root.querySelector('.tablewrap');
      if (dia && tw) {
        const fit = () => { const h = dia.getBoundingClientRect().height; if (h > 40) tw.style.maxHeight = Math.round(h) + 'px'; };
        requestAnimationFrame(fit); setTimeout(fit, 60);
        try { if (this._ro) this._ro.disconnect(); this._ro = new ResizeObserver(fit); this._ro.observe(dia); } catch (e) { /* */ }
      }
    }

    _css() {
      return `
      :host{display:block;
        --bg:#0d1420;--panel:#121a26;--line:#26324a;--line2:#33425f;--text:#dbe2ec;--dim:#8b97ac;--dim2:#66738c;--accent:#00e6dc;
        --hot:rgba(0,230,220,.13)}
      @media (prefers-color-scheme:light){:host{--bg:#f6f8fc;--panel:#fff;--line:#dbe2ee;--line2:#c3cede;--text:#1a2230;--dim:#5a6678;--dim2:#8592a6;--accent:#0d8f88;--hot:rgba(13,143,136,.10)}}
      :host([theme="dark"]){--bg:#0d1420;--panel:#121a26;--line:#26324a;--line2:#33425f;--text:#dbe2ec;--dim:#8b97ac;--dim2:#66738c;--accent:#00e6dc;--hot:rgba(0,230,220,.13)}
      :host([theme="light"]){--bg:#f6f8fc;--panel:#fff;--line:#dbe2ee;--line2:#c3cede;--text:#1a2230;--dim:#5a6678;--dim2:#8592a6;--accent:#0d8f88;--hot:rgba(13,143,136,.10)}
      *{box-sizing:border-box}
      .card{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:16px;color:var(--text);
        font:14px/1.5 -apple-system,'Segoe UI',Roboto,Arial,sans-serif;container-type:inline-size}
      .hd{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
      .hd .mpn{font:700 17px ui-monospace,'SF Mono',Menlo,monospace;letter-spacing:-.2px}
      .hd .pkg{font:600 11px ui-monospace,monospace;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);padding:2px 8px;border-radius:6px}
      .hd .count{margin-left:auto;font:12px ui-monospace,monospace;color:var(--dim2)}
      .hd .tools{display:flex;gap:6px;align-self:center}
      .tbtn{font:600 10.5px ui-monospace,monospace;letter-spacing:.03em;color:var(--dim);background:var(--panel);
        border:1px solid var(--line);border-radius:6px;padding:3px 8px;cursor:pointer;transition:color .12s,border-color .12s,background .12s;white-space:nowrap}
      .tbtn:hover{color:var(--text);border-color:var(--line2)}
      .tbtn.ok{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
      .body{display:grid;grid-template-columns:minmax(300px,1fr) minmax(220px,1fr);gap:20px;align-items:start}
      /* stack diagram over table when the WIDGET (not the viewport) is narrow —
         e.g. side-by-side in a cross-link row — so the table never clips */
      @container (max-width:580px){.body{grid-template-columns:1fr}}
      .readout{height:24px;display:flex;align-items:center;gap:9px;font:600 13px ui-monospace,monospace;color:var(--dim);padding:0 4px}
      .readout b{color:var(--accent)} .readout .rt{margin-left:auto;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
      .diagram{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px}
      svg.chip{width:100%;height:auto;display:block;max-height:440px}
      .pkgbody{fill:color-mix(in srgb,var(--text) 6%,var(--panel));stroke:var(--line2);stroke-width:1}
      .pin1{fill:var(--accent)}
      .lbl{fill:var(--dim);font:600 11px ui-monospace,monospace} .lbl2{fill:var(--dim2);font:9px ui-monospace,monospace}
      .pin .stub{stroke-width:2} .pin .pn{fill:var(--dim2);font:8px ui-monospace,monospace}
      .pin:hover .stub,.pin.hot .stub{stroke-width:3.6} .pin:hover .pn,.pin.hot .pn{fill:var(--text);font-weight:700}
      .pin .ep{stroke-width:1.2} .pin .ept{fill:var(--dim);font:8px ui-monospace,monospace}
      .pin:hover .ep,.pin.hot .ep{fill-opacity:.34;stroke-width:2} .pin:hover .ept,.pin.hot .ept{fill:var(--text);font-weight:700}
      .pin{cursor:default}
      .legend{display:flex;flex-wrap:wrap;gap:13px;margin:8px 2px 2px;font-size:11.5px;color:var(--dim)}
      .legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:middle}
      .tablewrap{max-height:440px;overflow:auto;border:1px solid var(--line);border-radius:10px;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}
      .tablewrap::-webkit-scrollbar{width:9px;height:9px}
      .tablewrap::-webkit-scrollbar-track{background:transparent}
      .tablewrap::-webkit-scrollbar-thumb{background:var(--line2);border-radius:9px;border:2px solid transparent;background-clip:padding-box}
      .tablewrap::-webkit-scrollbar-thumb:hover{background:var(--dim2);border:2px solid transparent;background-clip:padding-box}
      .tablewrap::-webkit-scrollbar-button{display:none;width:0;height:0}
      .tablewrap::-webkit-scrollbar-corner{background:transparent}
      table{width:100%;border-collapse:collapse;font-size:12.5px}
      thead th{position:sticky;top:0;background:var(--panel);text-align:left;color:var(--dim2);font:600 10px ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;padding:7px 9px;border-bottom:1px solid var(--line)}
      td{padding:4px 9px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-family:ui-monospace,monospace}
      td.num{color:var(--dim2)} td.nm{color:var(--text)}
      tr[data-pin]{cursor:default} tr.hot td{background:var(--hot)}
      .tp{font-size:10px;text-transform:uppercase;letter-spacing:.05em}
      .empty{color:var(--dim2);padding:30px;text-align:center;font-family:ui-monospace,monospace}`;
    }
  }
  if (!customElements.get('adom-pinout')) customElements.define('adom-pinout', AdomPinout);
})();
</script>
<script>/*!
 * <adom-heatsink-via> — the exposed-pad thermal-via widget.
 * Only renders content when the part actually HAS an exposed/thermal pad; otherwise
 * it shows an empty state ("no exposed pad — heat-sink vias not applicable").
 * Draws the EP copper + a standard thermal via array (annular ring + drill), with
 * the via count / drill / pitch, so a page author can show the recommended
 * heat-sinking pattern for that chip.
 *
 *   <script src="heatsink-via-widget.js"><\/script>
 *   <adom-heatsink-via src="pads.json"></adom-heatsink-via>
 *   el.data = { mpn, package, pads:[{number,x_mm,y_mm}] }         // detects the EP
 *   el.data = { mpn, package, ep:{w_mm,h_mm,number?}, via?:{drill_mm,pitch_mm} }  // explicit
 *
 * Shares the adom-lbr cross-highlight bus: highlights the EP when its pin is hovered
 * elsewhere, and posts on EP hover.
 */
(() => {
  const esc = s => String(s).replace(/[&<>"]/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' }[c]));
  const isCenterName = p => /^(EP|EPAD|PAD|TAB|THERMAL|E[-_]?PAD|EXP|EXPPAD)$/i.test(String(p.name || p.number || '').trim());

  // Work out the exposed pad from whatever data we were given.
  function resolveEP(d) {
    if (d.ep && (d.ep.w_mm || d.ep.h_mm)) return { w: d.ep.w_mm || d.ep.h_mm, h: d.ep.h_mm || d.ep.w_mm, number: d.ep.number };
    const m = /EP([\d.]+)x([\d.]+)/i.exec(d.package || '');
    let epNum;
    const pads = Array.isArray(d.pads) ? d.pads.filter(p => typeof p.x_mm === 'number') : [];
    if (pads.length) {
      const xs = pads.map(p => p.x_mm), ys = pads.map(p => p.y_mm);
      const minx = Math.min(...xs), maxx = Math.max(...xs), miny = Math.min(...ys), maxy = Math.max(...ys);
      const span = Math.max(maxx - minx, maxy - miny) || 1, em = 0.2 * span;
      const cenP = pads.find(p => isCenterName(p) || Math.min(Math.abs(p.x_mm - minx), Math.abs(p.x_mm - maxx), Math.abs(p.y_mm - miny), Math.abs(p.y_mm - maxy)) > em);
      if (cenP) epNum = cenP.number;
      if (m) return { w: +m[1], h: +m[2], number: epNum, bodyW: maxx - minx, bodyH: maxy - miny };
      if (cenP) { const bw = maxx - minx, bh = maxy - miny; return { w: bw * 0.55, h: bh * 0.55, number: epNum, bodyW: bw, bodyH: bh, estimated: true }; }
    }
    if (m) return { w: +m[1], h: +m[2] };
    return null;
  }

  class AdomHeatsinkVia extends HTMLElement {
    set data(d) { this._data = d; if (this.shadowRoot) this._render(); }
    get data() { return this._data; }

    async connectedCallback() {
      if (this._init) return; this._init = true;
      this.attachShadow({ mode: 'open' });
      this._busInit();
      if (!this._data) {
        const inline = this.querySelector('script[type="application/json"]');
        if (inline) { try { this._data = JSON.parse(inline.textContent); } catch (e) { /* ignore */ } }
        const src = this.getAttribute('src');
        if (!this._data && src) { try { this._data = await (await fetch(src)).json(); } catch (e) { this._err = 'could not load ' + src; } }
      }
      this._render();
    }
    _busInit() {
      this._self = 'h' + Math.random().toString(36).slice(2);
      this._bus = ('BroadcastChannel' in window) ? new BroadcastChannel('lbr-hover') : null;
      const on = e => { const x = e.data || {}; if (x.type === 'lbr-hover' && x.src !== this._self) this._hi(x.pin); };
      if (this._bus) this._bus.onmessage = on;
      this._winmsg = on; window.addEventListener('message', on);
    }
    disconnectedCallback() { try { this._bus && this._bus.close(); } catch (_) { /*noop*/ } if (this._winmsg) window.removeEventListener('message', this._winmsg); }
    _hi(n) { const g = this.shadowRoot && this.shadowRoot.querySelector('.epwrap'); if (g) g.classList.toggle('hot', n != null && this._epNum != null && String(n) === String(this._epNum)); }
    _post(n) {
      const m = { type: 'lbr-hover', pin: n == null ? null : String(n), mpn: (this._data && this._data.mpn) || '', src: this._self };
      try { this._bus && this._bus.postMessage(m); } catch (_) { /*noop*/ }
      try { if (window.parent && window.parent !== window) window.parent.postMessage(m, '*'); } catch (_) { /*noop*/ }
    }

    _render() {
      const d = this._data || {}, root = this.shadowRoot;
      const ep = d.pads || d.ep || d.package ? resolveEP(d) : null;
      if (this._err) return void (root.innerHTML = `<style>${this._css()}</style><div class="card"><div class="empty">${esc(this._err)}</div></div>`);
      if (!ep) {
        this._epNum = null;
        root.innerHTML = `<style>${this._css()}</style><div class="card"><div class="hd"><span class="mpn">${esc(d.mpn || '')}</span>${d.package ? `<span class="pkg">${esc(d.package)}</span>` : ''}</div>
          <div class="empty"><b>No exposed pad</b> on this package — heat-sink vias aren't applicable.</div></div>`;
        return;
      }
      this._epNum = ep.number;
      const via = { drill: (d.via && d.via.drill_mm) || 0.3, pitch: (d.via && d.via.pitch_mm) || Math.max(0.8, Math.min(1.2, Math.min(ep.w, ep.h) / 4)) };
      // via grid centred on the EP
      const margin = Math.max(0.35, via.drill * 1.2);
      const nx = Math.max(1, Math.floor((ep.w - 2 * margin) / via.pitch) + 1);
      const ny = Math.max(1, Math.floor((ep.h - 2 * margin) / via.pitch) + 1);
      const count = nx * ny;
      root.innerHTML = `<style>${this._css()}</style>
        <div class="card">
          <div class="hd"><span class="mpn">${esc(d.mpn || '')}</span>${d.package ? `<span class="pkg">${esc(d.package)}</span>` : ''}<span class="count">exposed pad</span></div>
          <div class="body">
            ${this._svg(ep, via, nx, ny)}
            <div class="info">
              <div class="kv"><span>Exposed pad</span><b>${ep.w.toFixed(2)} × ${ep.h.toFixed(2)} mm${ep.estimated ? ' *' : ''}</b></div>
              <div class="kv"><span>Thermal vias</span><b>${count} (${nx}×${ny})</b></div>
              <div class="kv"><span>Drill · pitch</span><b>Ø${via.drill} · ${via.pitch.toFixed(2)} mm</b></div>
              <p class="note">A grid of plated vias under the exposed pad carries heat from the die into the board's inner/bottom copper (usually a ground plane). Tent or plug them to stop solder wicking during reflow.${ep.estimated ? '<br><span class="star">* EP size estimated from the footprint; use the datasheet land pattern for production.</span>' : ''}</p>
            </div>
          </div>
        </div>`;
      const w = root.querySelector('.epwrap');
      if (w) { w.onmouseenter = () => { this._hi(ep.number); this._post(ep.number); }; w.onmouseleave = () => { this._hi(null); this._post(null); }; }
    }

    _svg(ep, via, nx, ny) {
      const S = 300, pad = 34;
      const bodyW = ep.bodyW || ep.w * 1.5, bodyH = ep.bodyH || ep.h * 1.5;
      const span = Math.max(bodyW, bodyH) || 1, sc = (S - 2 * pad) / span, c = S / 2;
      const X = mm => c + mm * sc, Y = mm => c + mm * sc;
      const epW = ep.w * sc, epH = ep.h * sc, bW = bodyW * sc, bH = bodyH * sc;
      let s = `<svg viewBox="0 0 ${S} ${S}" class="hv">`;
      s += `<rect class="courtyard" x="${c - bW / 2}" y="${c - bH / 2}" width="${bW}" height="${bH}" rx="6"/>`;
      s += `<g class="epwrap"><rect class="ep" x="${c - epW / 2}" y="${c - epH / 2}" width="${epW}" height="${epH}" rx="2"/>`;
      const x0 = -(nx - 1) * via.pitch / 2, y0 = -(ny - 1) * via.pitch / 2;
      const vr = Math.max(3, via.drill * sc * 0.9), dr = Math.max(1.4, via.drill * sc * 0.5);
      for (let i = 0; i < nx; i++) for (let j = 0; j < ny; j++) {
        const vx = X(x0 + i * via.pitch), vy = Y(y0 + j * via.pitch);
        s += `<circle class="viaring" cx="${vx}" cy="${vy}" r="${vr}"/><circle class="viadrill" cx="${vx}" cy="${vy}" r="${dr}"/>`;
      }
      s += `</g>`;
      s += `<text x="${c}" y="${c - bH / 2 - 8}" text-anchor="middle" class="lbl">exposed pad · ${nx}×${ny} thermal vias</text>`;
      return s + `</svg>`;
    }

    _css() {
      return `
      :host{display:block;--bg:#0d1420;--panel:#121a26;--line:#26324a;--line2:#33425f;--text:#dbe2ec;--dim:#8b97ac;--dim2:#66738c;--accent:#00e6dc;--copper:#e0913a;--drill:#0a0e14}
      @media (prefers-color-scheme:light){:host{--bg:#f6f8fc;--panel:#fff;--line:#dbe2ee;--line2:#c3cede;--text:#1a2230;--dim:#5a6678;--dim2:#8592a6;--accent:#0d8f88;--copper:#c47a24;--drill:#fff}}
      :host([theme="dark"]){--bg:#0d1420;--panel:#121a26;--line:#26324a;--line2:#33425f;--text:#dbe2ec;--dim:#8b97ac;--dim2:#66738c;--accent:#00e6dc;--copper:#e0913a;--drill:#0a0e14}
      :host([theme="light"]){--bg:#f6f8fc;--panel:#fff;--line:#dbe2ee;--line2:#c3cede;--text:#1a2230;--dim:#5a6678;--dim2:#8592a6;--accent:#0d8f88;--copper:#c47a24;--drill:#fff}
      *{box-sizing:border-box}
      .card{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:16px;color:var(--text);font:14px -apple-system,'Segoe UI',Roboto,Arial,sans-serif}
      .hd{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
      .hd .mpn{font:700 16px ui-monospace,'SF Mono',Menlo,monospace} .hd .pkg{font:600 11px ui-monospace,monospace;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);padding:2px 8px;border-radius:6px}
      .hd .count{margin-left:auto;font:11px ui-monospace,monospace;color:var(--copper);text-transform:uppercase;letter-spacing:.08em}
      .body{display:grid;grid-template-columns:minmax(220px,1fr) minmax(200px,1fr);gap:18px;align-items:center}
      @media(max-width:560px){.body{grid-template-columns:1fr}}
      svg.hv{width:100%;height:auto;max-height:300px;display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px}
      .courtyard{fill:none;stroke:var(--line2);stroke-width:1.2;stroke-dasharray:3 3}
      .ep{fill:var(--copper);fill-opacity:.22;stroke:var(--copper);stroke-width:1.4}
      .viaring{fill:var(--copper);fill-opacity:.9} .viadrill{fill:var(--drill)}
      .epwrap{cursor:default} .epwrap.hot .ep{fill-opacity:.4;stroke-width:2.4;filter:drop-shadow(0 0 5px var(--copper))}
      .epwrap.hot .viaring{fill-opacity:1}
      .lbl{fill:var(--dim);font:9px ui-monospace,monospace}
      .info .kv{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-size:13px}
      .info .kv span{color:var(--dim2)} .info .kv b{font-family:ui-monospace,monospace}
      .info .note{font-size:12px;color:var(--dim);margin:10px 0 0;line-height:1.5} .info .star{color:var(--dim2);font-size:11px}
      .empty{color:var(--dim);padding:22px;text-align:center;font-size:13.5px} .empty b{color:var(--text)}`;
    }
  }
  if (!customElements.get('adom-heatsink-via')) customElements.define('adom-heatsink-via', AdomHeatsinkVia);
})();
</script>
<script>/*!
 * <adom-molecule> — the ganged-component widget for a molecule (a reusable sub-circuit).
 * Shows the molecule's parts as a ganged set + how they connect (nets). Hover a net to
 * light every part on it; hover a part to light its nets — the "ganged" relationship.
 *
 *   <adom-molecule src="molecule.json"></adom-molecule>
 *   el.data = {
 *     name, mpn?,
 *     components: [ { ref, mpn, value?, package?, type? } ],   // type: mcu|cap|res|xtal|ic|conn|diode|other
 *     nets:       [ { name, pins: [ {ref, pin} ] } ]
 *   }
 * Self-contained, theme-aware, shares the adom-lbr lbr-hover bus (posts a part's ref).
 */
(() => {
  const esc = s => String(s).replace(/[&<>"]/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' }[c]));
  const TC = { mcu: '#b57cff', ic: '#4c9dff', cap: '#00d3c8', res: '#ffb454', xtal: '#4c9dff', diode: '#ff5c5c', conn: '#e0913a', other: '#8b97ac' };
  const TLAB = { mcu: 'MCU', ic: 'IC', cap: 'cap', res: 'res', xtal: 'xtal', diode: 'diode', conn: 'conn', other: '' };
  function inferType(c) {
    if (c.type) return c.type;
    const r = String(c.ref || '').toUpperCase();
    if (r[0] === 'U') return /STM|MCU|ESP|ATMEGA|RP2/i.test(c.mpn || '') ? 'mcu' : 'ic';
    if (r[0] === 'C') return 'cap'; if (r[0] === 'R') return 'res'; if (r[0] === 'Y' || r[0] === 'X') return 'xtal';
    if (r[0] === 'D') return 'diode'; if (r[0] === 'J' || r[0] === 'P') return 'conn';
    return 'other';
  }

  class AdomMolecule extends HTMLElement {
    set data(d) { this._data = d; if (this.shadowRoot) this._render(); }
    get data() { return this._data; }
    async connectedCallback() {
      if (this._init) return; this._init = true;
      this.attachShadow({ mode: 'open' });
      this._self = 'm' + Math.random().toString(36).slice(2);
      this._bus = ('BroadcastChannel' in window) ? new BroadcastChannel('lbr-hover') : null;
      if (!this._data) {
        const inl = this.querySelector('script[type="application/json"]');
        if (inl) { try { this._data = JSON.parse(inl.textContent); } catch (e) { /* */ } }
        const src = this.getAttribute('src');
        if (!this._data && src) { try { this._data = await (await fetch(src)).json(); } catch (e) { this._err = 'could not load ' + src; } }
      }
      this._render();
    }
    disconnectedCallback() { try { this._bus && this._bus.close(); } catch (_) { /* */ } }

    _render() {
      const d = this._data, root = this.shadowRoot;
      if (this._err || !d || !Array.isArray(d.components)) {
        root.innerHTML = `<style>${this._css()}</style><div class="card"><div class="empty">${esc(this._err || 'no molecule data')}</div></div>`;
        return;
      }
      const comps = d.components.map(c => ({ ...c, type: inferType(c) }));
      const nets = Array.isArray(d.nets) ? d.nets : [];
      const netOf = new Map(); // ref -> [net names]
      nets.forEach(n => (n.pins || []).forEach(p => { const a = netOf.get(p.ref) || []; if (!a.includes(n.name)) a.push(n.name); netOf.set(p.ref, a); }));
      root.innerHTML = `<style>${this._css()}</style>
        <div class="card">
          <div class="hd"><span class="mpn">${esc(d.name || d.mpn || 'molecule')}</span><span class="count">${comps.length} parts · ${nets.length} nets</span></div>
          <div class="readout" data-readout>hover a part or net&nbsp;→</div>
          <div class="gang">${comps.map(c => `
            <div class="part" data-ref="${esc(c.ref)}" style="--c:${TC[c.type] || TC.other}">
              <span class="ref">${esc(c.ref)}</span>
              <span class="val">${esc(c.value || c.mpn || '')}</span>
              <span class="meta">${esc(c.package || '')}${TLAB[c.type] ? ' · ' + TLAB[c.type] : ''}</span>
            </div>`).join('')}</div>
          <div class="nets">${nets.map(n => `<div class="net" data-net="${esc(n.name)}" data-refs="${esc((n.pins || []).map(p => p.ref).join(','))}">
            <span class="nn">${esc(n.name)}</span><span class="nc">${(n.pins || []).length} pins</span>
            <span class="nr">${esc([...new Set((n.pins || []).map(p => p.ref))].join(' '))}</span></div>`).join('')}</div>
        </div>`;
      this._wire(netOf);
    }

    _wire(netOf) {
      const root = this.shadowRoot, ro = root.querySelector('[data-readout]');
      const parts = [...root.querySelectorAll('.part')], netEls = [...root.querySelectorAll('.net')];
      const clear = () => { parts.forEach(p => p.classList.remove('hot', 'dim')); netEls.forEach(n => n.classList.remove('hot', 'dim')); ro.innerHTML = 'hover a part or net&nbsp;→'; this._post(null); };
      const litParts = refs => { const set = new Set(refs); parts.forEach(p => { p.classList.toggle('hot', set.has(p.dataset.ref)); p.classList.toggle('dim', !set.has(p.dataset.ref)); }); };
      const litNets = names => { const set = new Set(names); netEls.forEach(n => { n.classList.toggle('hot', set.has(n.dataset.net)); n.classList.toggle('dim', !set.has(n.dataset.net)); }); };
      netEls.forEach(n => {
        n.onmouseenter = () => { const refs = (n.dataset.refs || '').split(',').filter(Boolean); litParts(refs); n.classList.add('hot'); netEls.forEach(x => x !== n && x.classList.add('dim')); ro.innerHTML = `<b>${esc(n.dataset.net)}</b> · ${refs.length} pins on ${new Set(refs).size} parts`; };
        n.onmouseleave = clear;
      });
      parts.forEach(p => {
        p.onmouseenter = () => { const names = netOf.get(p.dataset.ref) || []; litNets(names); p.classList.add('hot'); parts.forEach(x => x !== p && x.classList.add('dim')); ro.innerHTML = `<b>${esc(p.dataset.ref)}</b> · on ${names.length ? names.join(', ') : 'no nets'}`; this._post(p.dataset.ref); };
        p.onmouseleave = clear;
      });
    }
    _post(ref) { const m = { type: 'lbr-hover', ref: ref, mpn: (this._data && this._data.name) || '', src: this._self }; try { this._bus && this._bus.postMessage(m); } catch (_) { /* */ } try { if (window.parent !== window) window.parent.postMessage(m, '*'); } catch (_) { /* */ } }

    _css() {
      return `
      :host{display:block;--bg:#0d1420;--panel:#121a26;--line:#26324a;--line2:#33425f;--text:#dbe2ec;--dim:#8b97ac;--dim2:#66738c;--accent:#00e6dc}
      @media (prefers-color-scheme:light){:host{--bg:#f6f8fc;--panel:#fff;--line:#dbe2ee;--line2:#c3cede;--text:#1a2230;--dim:#5a6678;--dim2:#8592a6;--accent:#0d8f88}}
      :host([theme="dark"]){--bg:#0d1420;--panel:#121a26;--line:#26324a;--line2:#33425f;--text:#dbe2ec;--dim:#8b97ac;--dim2:#66738c;--accent:#00e6dc}
      :host([theme="light"]){--bg:#f6f8fc;--panel:#fff;--line:#dbe2ee;--line2:#c3cede;--text:#1a2230;--dim:#5a6678;--dim2:#8592a6;--accent:#0d8f88}
      *{box-sizing:border-box}
      .card{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:16px;color:var(--text);font:14px -apple-system,'Segoe UI',Roboto,Arial,sans-serif}
      .hd{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
      .hd .mpn{font:700 16px ui-monospace,'SF Mono',Menlo,monospace} .hd .count{margin-left:auto;font:12px ui-monospace,monospace;color:var(--dim2)}
      .readout{height:22px;display:flex;align-items:center;font:600 12.5px ui-monospace,monospace;color:var(--dim);margin-bottom:10px}
      .readout b{color:var(--accent)}
      .gang{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
      .part{border:1px solid var(--line2);border-left:3px solid var(--c);border-radius:9px;padding:7px 11px;min-width:88px;background:var(--panel);transition:opacity .1s}
      .part .ref{font:700 12px ui-monospace,monospace;color:var(--c)} .part .val{display:block;font:600 12.5px ui-monospace,monospace;margin-top:1px} .part .meta{display:block;font-size:10.5px;color:var(--dim2);margin-top:1px}
      .part.hot{box-shadow:0 0 0 1px var(--c);background:color-mix(in srgb,var(--c) 10%,var(--panel))} .part.dim{opacity:.32}
      .nets{border-top:1px solid var(--line);padding-top:8px}
      .net{display:flex;align-items:center;gap:10px;padding:4px 8px;border-radius:6px;font:12px ui-monospace,monospace;cursor:default}
      .net .nn{color:var(--text);font-weight:700;min-width:70px} .net .nc{color:var(--dim2);font-size:11px} .net .nr{color:var(--dim);margin-left:auto;font-size:11px;text-align:right}
      .net.hot{background:color-mix(in srgb,var(--accent) 12%,transparent)} .net.hot .nn{color:var(--accent)} .net.dim{opacity:.34}
      .empty{color:var(--dim2);padding:26px;text-align:center;font-family:ui-monospace,monospace}`;
    }
  }
  if (!customElements.get('adom-molecule')) customElements.define('adom-molecule', AdomMolecule);
})();
</script>
<script>/*!
 * <adom-chip-thumbnail> — a small rendered image of the actual part.
 *   <adom-chip-thumbnail src="thumb.png" mpn="74HC00" package="SOIC-14"></adom-chip-thumbnail>
 *   el.data = { src, mpn, package }
 * `src` is a rendered PNG (in production: glb2png / the chip-thumbnailer off the part's GLB).
 * Self-contained, theme-aware.
 */
(() => {
  const esc = s => String(s).replace(/[&<>"]/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' }[c]));
  const CSS = `
    :host{display:inline-block;--bg:#0d1420;--line:#26324a;--text:#dbe2ec;--dim:#8b97ac;--accent:#00e6dc}
    @media (prefers-color-scheme:light){:host{--bg:#fff;--line:#dbe2ee;--text:#1a2230;--dim:#5a6678;--accent:#0d8f88}}
    :host([theme="dark"]){--bg:#0d1420;--line:#26324a;--text:#dbe2ec;--dim:#8b97ac;--accent:#00e6dc}
    :host([theme="light"]){--bg:#fff;--line:#dbe2ee;--text:#1a2230;--dim:#5a6678;--accent:#0d8f88}
    *{box-sizing:border-box}
    .card{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:12px;width:200px;text-align:center;color:var(--text);font:14px -apple-system,'Segoe UI',Roboto,sans-serif}
    img{width:100%;height:auto;border-radius:8px;display:block}
    .ph{aspect-ratio:1;display:flex;align-items:center;justify-content:center;color:var(--dim);border:1px dashed var(--line);border-radius:8px;font:12px ui-monospace,monospace}
    figcaption{margin-top:9px;font:600 13px ui-monospace,'SF Mono',Menlo,monospace}
    figcaption span{color:var(--accent);font-weight:400;font-size:11px}`;
  class AdomChipThumbnail extends HTMLElement {
    static get observedAttributes() { return ['src', 'mpn', 'package']; }
    set data(d) { this._data = d; if (this.shadowRoot) this._render(); }
    connectedCallback() { if (this._init) return; this._init = true; this.attachShadow({ mode: 'open' }); this._render(); }
    attributeChangedCallback() { if (this.shadowRoot) this._render(); }
    _render() {
      const d = this._data || {};
      const src = d.src || this.getAttribute('src') || '';
      const mpn = d.mpn || this.getAttribute('mpn') || '';
      const pkg = d.package || this.getAttribute('package') || '';
      this.shadowRoot.innerHTML = `<style>${CSS}</style><figure class="card" style="margin:0">
        ${src ? `<img src="${esc(src)}" alt="${esc(mpn)}" onerror="this.outerHTML='<div class=ph>no render</div>'">` : `<div class="ph">no render</div>`}
        ${(mpn || pkg) ? `<figcaption>${esc(mpn)}${pkg ? ` · <span>${esc(pkg)}</span>` : ''}</figcaption>` : ''}
      </figure>`;
    }
  }
  if (!customElements.get('adom-chip-thumbnail')) customElements.define('adom-chip-thumbnail', AdomChipThumbnail);
})();
</script>
<script>/*!
 * <adom-moleculize> — the "generate a molecule version of this board" widget.
 *
 * Drop it on any (non-molecule) board page. It previews exactly what
 * `kicad-to-molecule` would produce — the original board wrapped in workcell
 * wings with 4 corner machine pins, snapped to the grid — computed client-side
 * from the board's Edge.Cuts size, plus a one-click "generate the real file"
 * prompt (a wiki page can't run a container CLI, so the action is paste-to-Claude).
 *
 *   <adom-moleculize><script type="application/json">
 *     { "name":"Vimdrones ESC", "width_mm":35, "height_mm":85, "kicad_pcb":"board.kicad_pcb" }
 *   <\/script></adom-moleculize>
 *   // or: el.data = { name, width_mm, height_mm, kicad_pcb?, boardImg? }
 *
 * Sizing mirrors kicad-to-molecule/src/convert.py verbatim:
 *   max(w,h) > 60mm -> LARGE  (grid 16, offset 3, MachinePinLargeShort)
 *   else            -> MEDIUM (grid 8,  offset 1, MachinePinMediumShort)
 *   MC_span = ceil(orig/grid)*grid ; new = MC_span + 2*offset ; board centered ;
 *   4 corner MPs inset `offset` from the new corners.
 * Self-contained (Shadow DOM), theme-aware.
 */
(() => {
  const esc = s => String(s).replace(/[&<>"]/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' }[c]));
  const ceil = (a, g) => Math.ceil((a - 1e-9) / g) * g;

  // The deterministic moleculization plan (matches convert.py).
  function plan(w, h) {
    const big = Math.max(w, h) > 60;
    const grid = big ? 16 : 8, offset = big ? 3 : 1;
    const mc = big
      ? { name: 'MachinePinLargeShort', pad: 4.4, drill: 2.62 }
      : { name: 'MachinePinMediumShort', pad: 1.3, drill: 0.78 };
    const spanW = ceil(w, grid), spanH = ceil(h, grid);
    const newW = spanW + 2 * offset, newH = spanH + 2 * offset;
    // corner MP centres in the new frame (origin at new top-left)
    const cx = [offset, newW - offset], cy = [offset, newH - offset];
    const mps = [];
    let n = 1;
    for (const y of cy) for (const x of cx) mps.push({ ref: 'MP' + (n++), x, y });
    return { big, grid, offset, mc, newW, newH, spanW, spanH,
             boardX: (newW - w) / 2, boardY: (newH - h) / 2, w, h, mps };
  }

  // Read a .kicad_pcb's Edge.Cuts bounding box entirely client-side (no backend).
  // Walks balanced (gr_line|gr_rect|gr_arc|gr_circle|gr_poly) blocks on the
  // Edge.Cuts layer and takes min/max of their coordinates. Verified against
  // kicad-to-molecule's samples (35x85 and 10.4x10.4, exact).
  function edgeCutsBBox(text) {
    let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity, found = false;
    const add = (x, y) => { if (isFinite(x) && isFinite(y)) { minX = Math.min(minX, x); minY = Math.min(minY, y); maxX = Math.max(maxX, x); maxY = Math.max(maxY, y); found = true; } };
    const KIND = /\((gr_line|gr_rect|gr_arc|gr_circle|gr_poly)\b/g; let m;
    while ((m = KIND.exec(text))) {
      const s = m.index; let depth = 0, i = s, end = -1;
      for (; i < text.length; i++) { const c = text[i]; if (c === '(') depth++; else if (c === ')') { depth--; if (depth === 0) { end = i + 1; break; } } }
      if (end < 0) break;
      const blk = text.slice(s, end); KIND.lastIndex = end;
      if (!/Edge\.Cuts/.test(blk)) continue;
      if (m[1] === 'gr_circle') {
        const cm = /\(center\s+(-?[\d.]+)\s+(-?[\d.]+)\)/.exec(blk), em = /\(end\s+(-?[\d.]+)\s+(-?[\d.]+)\)/.exec(blk);
        if (cm) { const cx = +cm[1], cy = +cm[2], r = em ? Math.hypot(+em[1] - cx, +em[2] - cy) : 0; add(cx - r, cy - r); add(cx + r, cy + r); }
      } else {
        const CM = /\((?:start|end|mid|xy|center)\s+(-?[\d.]+)\s+(-?[\d.]+)/g; let c;
        while ((c = CM.exec(blk))) add(+c[1], +c[2]);
      }
    }
    return found ? { w: +(maxX - minX).toFixed(3), h: +(maxY - minY).toFixed(3) } : null;
  }

  class AdomMoleculize extends HTMLElement {
    set data(d) { this._data = d; if (this.shadowRoot) this._render(); }
    get data() { return this._data; }
    connectedCallback() {
      if (this._init) return; this._init = true;
      this.attachShadow({ mode: 'open' });
      if (!this._data) {
        const inl = this.querySelector('script[type="application/json"]');
        if (inl) { try { this._data = JSON.parse(inl.textContent); } catch (e) { /* */ } }
        if (!this._data && this.getAttribute('width-mm')) this._data = {
          name: this.getAttribute('name') || 'board',
          width_mm: +this.getAttribute('width-mm'), height_mm: +this.getAttribute('height-mm'),
          kicad_pcb: this.getAttribute('kicad-pcb') || 'board.kicad_pcb',
        };
      }
      this._render();
    }

    _svg(p) {
      const S = 380, pad = 44;               // px canvas + margin for labels
      const sc = (S - 2 * pad) / Math.max(p.newW, p.newH);
      const ox = pad + (S - 2 * pad - p.newW * sc) / 2;
      const oy = pad + (S - 2 * pad - p.newH * sc) / 2;
      const X = mm => ox + mm * sc, Y = mm => oy + mm * sc;
      // grid dots anchored to the machine-pin lattice, so the 4 MPs sit ON grid
      // intersections (MC span is an integer multiple of grid). This is the whole
      // point of the snapping — show it.
      let dots = '';
      for (let gx = p.offset; gx <= p.newW - p.offset + 0.01; gx += p.grid)
        for (let gy = p.offset; gy <= p.newH - p.offset + 0.01; gy += p.grid)
          dots += `<circle cx="${X(gx).toFixed(1)}" cy="${Y(gy).toFixed(1)}" r="1.1" class="grid"/>`;
      // machine pins (hoverable)
      const pins = p.mps.map(m => {
        const px = X(m.x), py = Y(m.y);
        return `<g class="mp" data-ref="${m.ref}" data-x="${m.x.toFixed(1)}" data-y="${m.y.toFixed(1)}"><circle cx="${px.toFixed(1)}" cy="${py.toFixed(1)}" r="${(p.mc.pad / 2 * sc).toFixed(1)}" class="mppad"/>`
          + `<circle cx="${px.toFixed(1)}" cy="${py.toFixed(1)}" r="${(p.mc.drill / 2 * sc).toFixed(1)}" class="mpdrill"/>`
          + `<text x="${px.toFixed(1)}" y="${(py - p.mc.pad / 2 * sc - 3).toFixed(1)}" class="mplbl">${m.ref}</text></g>`;
      }).join('');
      return `<svg viewBox="0 0 ${S} ${S}" class="dia">
        <rect x="${X(0).toFixed(1)}" y="${Y(0).toFixed(1)}" width="${(p.newW * sc).toFixed(1)}" height="${(p.newH * sc).toFixed(1)}" rx="3" class="wing"/>
        ${dots}
        <rect x="${X(p.boardX).toFixed(1)}" y="${Y(p.boardY).toFixed(1)}" width="${(p.w * sc).toFixed(1)}" height="${(p.h * sc).toFixed(1)}" rx="2" class="board"/>
        <text x="${X(p.boardX + p.w / 2).toFixed(1)}" y="${Y(p.boardY + p.h / 2).toFixed(1)}" class="boardlbl">original<tspan x="${X(p.boardX + p.w / 2).toFixed(1)}" dy="13">board</tspan></text>
        ${pins}
        <text x="${X(p.newW / 2).toFixed(1)}" y="${(Y(0) - 12).toFixed(1)}" class="dim">${p.newW} × ${p.newH} mm molecule</text>
        <text x="${(X(0) - 8).toFixed(1)}" y="${Y(p.newH / 2).toFixed(1)}" class="dim vert" transform="rotate(-90 ${(X(0) - 8).toFixed(1)} ${Y(p.newH / 2).toFixed(1)})">${p.w} × ${p.h} mm board</text>
      </svg>`;
    }

    _render() {
      const root = this.shadowRoot;
      const d = this._data;
      if (!d || !(d.width_mm > 0) || !(d.height_mm > 0)) {
        root.innerHTML = `<style>${this._css()}</style><div class="card">
          <div class="drop${this._err ? ' err' : ''}" data-drop>
            <input type="file" accept=".kicad_pcb" hidden data-file>
            <div class="dropbig">Drop a <code>.kicad_pcb</code> here</div>
            <div class="dropsub">or <b>click to choose</b>&nbsp;·&nbsp;reads the board size locally, no upload, no compute</div>
            ${this._err ? `<div class="droperr">${esc(this._err)}</div>` : ''}
          </div></div>`;
        this._wireFile();
        return;
      }
      const p = plan(d.width_mm, d.height_mm);
      const pcb = d.kicad_pcb || 'board.kicad_pcb';
      const prompt = `moleculize ${pcb} with kicad-to-molecule and show me the result`;
      root.innerHTML = `<style>${this._css()}</style>
      <div class="card">
        <div class="hd"><span class="t">Molecule version</span><span class="badge">${p.big ? 'LARGE grid' : 'MEDIUM grid'}</span><span class="sub">${esc(d.name || 'board')}<button class="swap" data-swap title="load a different .kicad_pcb">&#8635;</button><input type="file" accept=".kicad_pcb" hidden data-file></span></div>
        <div class="body">
          <div class="diagram">
            <div class="readout" data-readout>4 machine pins on an ${p.grid} mm grid&nbsp;·&nbsp;hover one</div>
            ${this._svg(p)}
            <div class="legend"><span><i class="l-board"></i>original board (unchanged)</span><span><i class="l-wing"></i>workcell wings</span><span><i class="l-mp"></i>machine pins</span></div>
          </div>
          <div class="panel">
            <table>
              <tr><td>Original</td><td>${p.w} × ${p.h} mm</td></tr>
              <tr><td>Molecule</td><td><b>${p.newW} × ${p.newH} mm</b></td></tr>
              <tr><td>Grid</td><td>${p.grid} mm</td></tr>
              <tr><td>Edge offset</td><td>${p.offset} mm</td></tr>
              <tr><td>Contacts</td><td>4 × ${p.mc.name}</td></tr>
              <tr><td>Pad · drill</td><td>${p.mc.pad} · ${p.mc.drill} mm</td></tr>
            </table>
            <div class="ready"><i></i>workcell-ready: pick · place · probe</div>
            <div class="gen">
              <div class="genh">Build the real molecule</div>
              <div class="genflow">The preview is instant. Generating the actual <code>.molecule.kicad_pcb</code> runs <code>kicad-to-molecule</code>, so it happens in an <b>Adom AI thread</b>, not on this static page.</div>
              <button class="askai" data-prompt="${esc(prompt)}">Ask the Adom AI to build it &rarr;</button>
              <div class="prompt"><span>"${esc(prompt)}"</span><button class="copy" data-prompt="${esc(prompt)}">copy</button></div>
              <div class="cli">CLI: <code>kicad-to-molecule convert ${esc(pcb)}</code></div>
            </div>
          </div>
        </div>
      </div>`;
      const copyTo = (el, done) => { try { navigator.clipboard.writeText(el.dataset.prompt); } catch (e) { /* */ } done(); };
      const cbtn = root.querySelector('.copy');
      if (cbtn) cbtn.onclick = () => copyTo(cbtn, () => { cbtn.textContent = 'copied'; setTimeout(() => cbtn.textContent = 'copy', 1200); });
      const ask = root.querySelector('.askai');
      if (ask) ask.onclick = () => copyTo(ask, () => { const t = ask.textContent; ask.textContent = 'copied — paste into an Adom AI thread'; ask.classList.add('ok'); setTimeout(() => { ask.textContent = t; ask.classList.remove('ok'); }, 1600); });
      // machine-pin hover → readout + highlight
      const ro = root.querySelector('[data-readout]'), roDefault = ro ? ro.innerHTML : '';
      root.querySelectorAll('svg .mp').forEach(g => {
        g.onmouseenter = () => { g.classList.add('hot'); if (ro) ro.innerHTML = `<b>${g.dataset.ref}</b>&nbsp;·&nbsp;(${g.dataset.x}, ${g.dataset.y}) mm&nbsp;·&nbsp;${esc(p.mc.name)}`; };
        g.onmouseleave = () => { g.classList.remove('hot'); if (ro) ro.innerHTML = roDefault; };
      });
      this._wireFile();
    }

    // Read a dropped/selected .kicad_pcb, parse its Edge.Cuts bbox, render the plan.
    _loadFile(file) {
      if (!file) return;
      const name = file.name || '';
      const fail = (msg) => { this._err = msg; this._data = null; this._render(); };
      // The board outline lives in the .kicad_pcb, not the sibling files. Point the
      // user at the right one rather than parsing a settings/schematic file.
      if (/\.kicad_pro$/i.test(name)) return fail('That is the KiCad project file (settings, no board outline). Drop the board file ' + name.replace(/\.kicad_pro$/i, '.kicad_pcb') + ' instead.');
      if (/\.kicad_sch$/i.test(name)) return fail('That is the schematic. Drop the PCB layout ' + name.replace(/\.kicad_sch$/i, '.kicad_pcb') + ' instead.');
      if (!/\.kicad_pcb$/i.test(name)) return fail('Drop a .kicad_pcb (the KiCad board layout file), not ' + (name || 'that file') + '.');
      const rdr = new FileReader();
      rdr.onload = () => {
        const bb = edgeCutsBBox(String(rdr.result || ''));
        if (!bb || !(bb.w > 0) || !(bb.h > 0)) return fail('No Edge.Cuts outline found in ' + name + '. Draw the board outline on the Edge.Cuts layer, then drop it again.');
        this._err = null;
        this._data = { name: name.replace(/\.kicad_pcb$/i, ''), width_mm: bb.w, height_mm: bb.h, kicad_pcb: name };
        this._render();
      };
      rdr.onerror = () => fail('Could not read ' + name + '.');
      rdr.readAsText(file);
    }

    _wireFile() {
      const root = this.shadowRoot;
      const input = root.querySelector('[data-file]');
      if (!input) return;
      input.onchange = () => { if (input.files && input.files[0]) this._loadFile(input.files[0]); };

      // Accept a dropped .kicad_pcb ANYWHERE on the card — in the empty drop-zone
      // AND once a board is loaded. Without this, a drop on the loaded widget falls
      // through to the browser, which just opens the file in a new tab.
      const card = root.querySelector('.card');
      if (card) {
        const over = e => { e.preventDefault(); e.stopPropagation(); if (e.dataTransfer) e.dataTransfer.dropEffect = 'copy'; card.classList.add('over'); };
        card.addEventListener('dragenter', over);
        card.addEventListener('dragover', over);
        card.addEventListener('dragleave', e => { if (!card.contains(e.relatedTarget)) card.classList.remove('over'); });
        card.addEventListener('drop', e => {
          e.preventDefault(); e.stopPropagation(); card.classList.remove('over');
          const f = e.dataTransfer && e.dataTransfer.files && e.dataTransfer.files[0];
          if (f) this._loadFile(f);
        });
      }
      // Click affordances: the empty drop zone opens the picker; so does the swap.
      const drop = root.querySelector('[data-drop]');
      if (drop) drop.onclick = () => input.click();
      const swap = root.querySelector('[data-swap]');
      if (swap) swap.onclick = e => { e.stopPropagation(); input.click(); };

      // Belt-and-braces: stop the browser navigating to a file dropped just OUTSIDE
      // the card (the sandboxed readme otherwise opens it in a new tab). Bound once.
      if (typeof window !== 'undefined' && !window.__adomMoleculizeNoOpen) {
        window.__adomMoleculizeNoOpen = true;
        const prevent = e => { e.preventDefault(); };
        window.addEventListener('dragover', prevent, false);
        window.addEventListener('drop', prevent, false);
      }
    }

    _css() {
      return `
      :host{display:block;
        --bg:#0d1420;--panel:#121a26;--line:#26324a;--line2:#33425f;--text:#dbe2ec;--dim:#8b97ac;--dim2:#66738c;
        --accent:#00e6dc;--wing:rgba(0,214,204,.07);--board:#2b3a52;--boardln:#4c9dff;--mp:#ffb454;--grid:#2a3651}
      @media(prefers-color-scheme:light){:host{--bg:#f6f8fc;--panel:#fff;--line:#dbe2ee;--line2:#c3cede;--text:#1a2230;--dim:#5a6678;--dim2:#8592a6;--accent:#0d8f88;--wing:rgba(13,143,136,.06);--board:#dbe6f5;--boardln:#2f6fd6;--mp:#e08a1e;--grid:#dde5f0}}
      :host([theme="dark"]){--bg:#0d1420;--panel:#121a26;--line:#26324a;--line2:#33425f;--text:#dbe2ec;--dim:#8b97ac;--dim2:#66738c;--accent:#00e6dc;--wing:rgba(0,214,204,.07);--board:#2b3a52;--boardln:#4c9dff;--mp:#ffb454;--grid:#2a3651}
      *{box-sizing:border-box}
      .card{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:16px;color:var(--text);font:14px/1.5 -apple-system,'Segoe UI',Roboto,Arial,sans-serif}
      .card.over{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
      .hd{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
      .hd .t{font:700 16px ui-monospace,'SF Mono',Menlo,monospace}
      .hd .badge{font:700 10px ui-monospace,monospace;letter-spacing:.06em;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);padding:2px 8px;border-radius:6px}
      .hd .sub{margin-left:auto;color:var(--dim2);font:12px ui-monospace,monospace}
      .body{display:grid;grid-template-columns:minmax(300px,1fr) minmax(240px,1fr);gap:18px;align-items:start}
      @media(max-width:640px){.body{grid-template-columns:1fr}}
      .diagram{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px}
      svg.dia{width:100%;height:auto;display:block}
      .wing{fill:var(--wing);stroke:var(--accent);stroke-width:1.4;stroke-dasharray:5 4}
      .grid{fill:var(--grid)}
      .board{fill:color-mix(in srgb,var(--board) 55%,transparent);stroke:var(--boardln);stroke-width:1.4}
      .boardlbl{fill:var(--boardln);font:600 9px ui-monospace,monospace;text-anchor:middle;dominant-baseline:middle;opacity:.9}
      .mppad{fill:color-mix(in srgb,var(--mp) 30%,transparent);stroke:var(--mp);stroke-width:1.4}
      .mpdrill{fill:var(--bg);stroke:var(--mp);stroke-width:.8}
      .mplbl{fill:var(--mp);font:700 8px ui-monospace,monospace;text-anchor:middle}
      .dim{fill:var(--dim);font:600 10px ui-monospace,monospace;text-anchor:middle}
      .legend{display:flex;flex-wrap:wrap;gap:12px;margin:8px 2px 2px;font-size:11px;color:var(--dim)}
      .legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
      .l-board{background:var(--boardln)}.l-wing{background:transparent;border:1.4px dashed var(--accent)}.l-mp{border-radius:50%;background:var(--mp)}
      .panel table{width:100%;border-collapse:collapse;font-size:12.5px}
      .panel td{padding:4px 2px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-family:ui-monospace,monospace}
      .panel td:first-child{color:var(--dim)}.panel td:last-child{text-align:right}
      .ready{display:flex;align-items:center;gap:8px;margin:12px 0;font:600 12px ui-monospace,monospace;color:var(--accent)}
      .ready i{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
      .gen{border-top:1px solid var(--line);padding-top:12px}
      .genh{font-size:12px;color:var(--dim);margin-bottom:8px}.genh code{color:var(--text)}
      .prompt{display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--accent) 6%,transparent);border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);border-radius:9px;padding:8px 10px}
      .prompt span{flex:1;font:13px ui-monospace,monospace;color:var(--text)}
      .copy{background:var(--accent);color:#00171a;border:0;border-radius:6px;padding:4px 10px;font:600 11px ui-monospace,monospace;cursor:pointer}
      .cli{margin-top:8px;font:11px ui-monospace,monospace;color:var(--dim2)}.cli code{color:var(--dim)}
      .readout{min-height:22px;display:flex;align-items:center;gap:6px;font:600 12px ui-monospace,monospace;color:var(--dim);padding:1px 4px 7px}
      .readout b{color:var(--mp)}
      .mp{cursor:default}
      .mp:hover .mppad,.mp.hot .mppad{fill:color-mix(in srgb,var(--mp) 55%,transparent);stroke-width:2.2}
      .mp:hover .mplbl,.mp.hot .mplbl{fill:var(--text);font-weight:700}
      .genflow{font-size:12px;line-height:1.5;color:var(--dim);margin-bottom:10px}.genflow code{color:var(--text)}.genflow b{color:var(--accent);font-weight:600}
      .askai{display:block;width:100%;text-align:center;background:linear-gradient(100deg,#00e6dc,#39b8ff 60%,#58a6ff);color:#00171a;border:0;border-radius:9px;padding:9px 12px;font:700 13px ui-monospace,monospace;cursor:pointer;margin-bottom:10px}
      .askai:hover{filter:brightness(1.08)}.askai.ok{background:none;border:1px solid var(--accent);color:var(--accent);font-size:11.5px}
      .drop{border:1.5px dashed var(--line2);border-radius:12px;padding:34px 20px;text-align:center;cursor:pointer;background:color-mix(in srgb,var(--accent) 3%,transparent);transition:border-color .12s,background .12s}
      .drop:hover,.drop.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
      .drop.err{border-color:#ff6b6b}
      .dropbig{font:600 16px ui-monospace,monospace;color:var(--text)}.dropbig code{color:var(--accent);background:none;padding:0}
      .dropsub{margin-top:7px;font:12.5px ui-monospace,monospace;color:var(--dim)}.dropsub b{color:var(--text)}
      .droperr{margin-top:12px;font:600 12px ui-monospace,monospace;color:#ff8a8a}
      .swap{margin-left:8px;background:none;border:1px solid var(--line2);color:var(--dim);border-radius:6px;padding:1px 7px;font-size:12px;cursor:pointer;vertical-align:1px}
      .swap:hover{border-color:var(--accent);color:var(--accent)}
      .empty{color:var(--dim2);padding:26px;text-align:center;font-family:ui-monospace,monospace}`;
    }
  }
  if (!customElements.get('adom-moleculize')) customElements.define('adom-moleculize', AdomMoleculize);
})();
</script>
<section style="padding:20px;border:1px solid #30363d;border-radius:12px;margin:24px 0"><h2>Reuse reviewed chip artwork</h2><p>The chip-thumbnail widget now accepts a cached-artwork manifest as well as an image. Its cache mode shows vector chip outlines, download links, exact virtual MPN placement, Z-up orientation and review state. The page’s existing 3D viewer shows the full chip. Existing image-only pages continue to work.</p><p>Read the component’s <code>artwork/MPN-thumbs.json</code> before generating anything. Compare source hashes and reuse its reviewed placement. Hash verification is recorded at publication time; native pin-1 and model-seating qualification remain separate.</p><pre>::adom-chip-thumbnail{src="/OWNER/COMPONENT/render/artwork/MPN-thumbs.json"}</pre></section><p>LOD previews now use on-demand component-owned asset frames for authenticated wiki sandbox loading. No GLBs load before the user enables 3D; disabling releases the viewer resources.</p></body>
</html>

<section id="component-lods" style="padding:20px;border:1px solid #30363d;border-radius:12px;margin:24px 0"><h2>Component LOD listings</h2><p>The <code>adom-component-lod</code> widget lists high, medium, low and super-low model derivatives, download sizes, decoded geometry buffer estimates, triangles, primitives, source hashes and review states. By default it shows small cached images of each level and creates no WebGL context. Turn on the optional 3D preview to inspect zoom-driven detail changes, then turn it off to release the model and viewer resources. Missing levels remain visible as missing.</p><pre>::adom-component-lod{src="/OWNER/COMPONENT/render/lod/manifest.json"}</pre><p>Feed the <code>adom/component-lod@1</code> manifest through the registered Markdown tag. For sandboxed HTML, inline the shared script and manifest JSON. Reuse the reviewed pose and marking placement; verify hashes before downstream use. Candidate files and a listing alone do not establish native seating or manufacturing qualification.</p></section>