← Commit history
0402zd105kat2a-hero.glbadded
⋯ 1 unchanged line ⋯
0402zd105kat2a-hero.overlay.jsonadded+125
@@ -0,0 +1,125 @@+{+ "spec": "adom-hero 1.4",+ "mpn": "0402ZD105KAT2A",+ "kind": "component + footprint reference art",+ "board_use": false,+ "plane_z_mm": -0.02,+ "units": "metre",+ "upAxis": "Z",+ "layers": {+  "pad_outlines": {+   "material": "Footprint pads - teal dashed outlines - 50 percent opacity",+   "rgba": [+    0.0,+    0.902,+    0.863,+    0.5+   ],+   "pads": 2,+   "span_mm": 1.52,+   "dash_mm": 0.12,+   "gap_mm": 0.072,+   "pad_stroke_mm": 0.03+  },+  "silkscreen": {+   "material": "Silkscreen reference lines - 30 percent opacity",+   "rgba": [+    0.92,+    0.96,+    1.0,+    0.3+   ],+   "footprint_items": 2,+   "pin1": null+  },+  "signal_names": {+   "material": "Signal names - 50 percent opacity",+   "rgba": [+    0.92,+    0.96,+    1.0,+    0.5+   ],+   "font": "DejaVu Sans Mono",+   "labels": 2,+   "sides": "top + mirrored underside (single-sided)",+   "omitted": null,+   "fallback_to_pad_number": 2+  }+ },+ "align": {+  "ok": true,+  "centre_offset_mm": 0.0,+  "tolerance_mm": 0.25,+  "orientation_flipped": false,+  "contacts_bbox_mm": [+   -0.5,+   0.5,+   -0.25,+   0.25+  ],+  "pads_bbox_mm": [+   -0.76,+   0.76,+   -0.31,+   0.31+  ],+  "seating_z_mm": -0.0+ },+ "sources": {+  "glb": "package-reference.glb",+  "glb_sha256": "100935c5c0d6f20a6c9bdfb6386f874dc8a4457bf0e4f3ace69f1ab090100773",+  "footprint": "C_0402_1005Metric_0402ZD105KAT2A.kicad_mod",+  "footprint_sha256": "75e472f604e9e3473daf00ae179e4902d07ae5dc5eddbc841028a68b91c022c0",+  "pins": "page.json component.pins"+ },+ "generator": "factory/hero_glb.py",+ "labels": [+  {+   "pad": "1",+   "text": "1",+   "x": -0.86,+   "y": 0.0,+   "align": "right",+   "vertical": false,+   "h": 0.392+  },+  {+   "pad": "2",+   "text": "2",+   "x": 0.86,+   "y": 0.0,+   "align": "left",+   "vertical": false,+   "h": 0.392+  }+ ],+ "pads": [+  {+   "number": "1",+   "shape": "roundrect",+   "center_mm": [+    -0.48,+    0.0+   ],+   "size_mm": [+    0.56,+    0.62+   ],+   "rot": 0.0+  },+  {+   "number": "2",+   "shape": "roundrect",+   "center_mm": [+    0.48,+    0.0+   ],+   "size_mm": [+    0.56,+    0.62+   ],+   "rot": 0.0+  }+ ]+}\ No newline at end of file
LICENSE+2−1
@@ -6,8 +6,9 @@ is licensed under the Creative Commons Attribution 4.0 International License (CC-BY-4.0): https://creativecommons.org/licenses/by/4.0/  Third-party files keep their own terms and are not relicensed by this page:-- C_0402_1005Metric_0402ZD105KAT2A.kicad_mod and 0402ZD105KAT2A.step (and the GLB and LOD files derived from it) are KiCad library+- C_0402_1005Metric_0402ZD105KAT2A.kicad_mod and 0402ZD105KAT2A.step (and the GLB, hero and LOD files derived from it) are KiCad library   content, CC-BY-SA 4.0 with the KiCad library exception   (https://gitlab.com/kicad/libraries/kicad-footprints, https://gitlab.com/kicad/libraries/kicad-packages3D). - The PDFs in docs/ are KYOCERA AVX documents, copyright of their publishers,   included unchanged for reference.+- provenance/tools/hero_glb.py and hero_glyphs.json come from adom/component-hero.
README.md+11
@@ -81,6 +81,13 @@ CAD links in the browser and expose no direct STEP link, so the page uses KiCad' unchanged, renamed `0402ZD105KAT2A.step`. It was checked against the datasheet table before use (next section). The GLB for the page viewer was made from it with `step2glb convert`. The KYOCERA AVX X5R sheets (legacy Rev 4 and KGM Rev 9) specify no part marking: neither has a marking section and both show plain bodies (searched: cx5r.pdf (4 pages) and cx5r-KGM.pdf (4 pages), all pages searched), so the model shows a plain body. +The page viewer shows `0402zd105kat2a-hero.glb`: the clean model plus nonphysical reference artwork drawn under it to the adom-hero 1.4+standard (adom/component-hero): the footprint's pads as teal dashed outlines at 50 % opacity, its silkscreen at+70 % transparency and the pad numbers 1 and 2 (the terminals have no names). The part is non-polar, so no pin-1 dot is+added. The artwork never goes into the STEP, `package-reference.glb` or the board LODs.++![Hero preview, top and oblique](docs/0402zd105kat2a-hero-preview.png)+ ::adom-models{src="/adom/0402zd105kat2a/render/models.json"}  ## Model checked against the datasheet@@ -109,6 +116,10 @@ Z-up, metre, footprint-origin pose as the STEP. Previews are rendered from each | `0402ZD105KAT2A.lbr` | Fusion / EAGLE library made from the KiCad symbol and footprint with `adom-lbr generate` (carries MPN, MANUFACTURER, MOUSER_PN, DIGIKEY_PN, LCSC_PN) | | `0402ZD105KAT2A.step` | 3D package model, STEP | | `package-reference.glb` | 3D package model, GLB |+| `0402zd105kat2a-hero.glb` | page-viewer hero: the clean model plus footprint artwork (adom-hero 1.4); `0402zd105kat2a-hero.overlay.json` lists every pad and label |+| `altium/0402ZD105KAT2A.SchLib` | Altium schematic library, made with `adom-lbr import-kicad` and `export-altium` |+| `altium/0402ZD105KAT2A.PcbLib` | Altium PCB library, made with `adom-lbr import-kicad` and `export-altium` |+| `altium/0402ZD105KAT2A.adom-lbr.json` | adom-lbr hub JSON (symbol, footprint, pin-to-pad map) behind the Altium files | | `lod/` | board-use GLBs in four levels of detail, with previews and manifest |  ## Sources and license
altium/0402ZD105KAT2A.PcbLibadded
⋯ 1 unchanged line ⋯
altium/0402ZD105KAT2A.SchLibadded
⋯ 1 unchanged line ⋯
altium/0402ZD105KAT2A.adom-lbr.jsonadded+232
@@ -0,0 +1,232 @@+{+  "schema_version": 2,+  "mpn": "0402ZD105KAT2A",+  "manufacturer": "KYOCERA AVX",+  "package": "",+  "value": "",+  "category": "",+  "symbol": {+    "name": "0402ZD105KAT2A",+    "pins": [+      {+        "number": "1",+        "name": "",+        "x": 0,+        "y": 150,+        "length": 110,+        "rotation": 270,+        "electrical_type": "passive"+      },+      {+        "number": "2",+        "name": "",+        "x": 0,+        "y": -150,+        "length": 110,+        "rotation": 90,+        "electrical_type": "passive"+      }+    ],+    "body": null,+    "graphics": [+      {+        "kind": "polyline",+        "points": [+          [+            -80.0,+            -30.0+          ],+          [+            80.0,+            -30.0+          ]+        ],+        "width": 20.0+      },+      {+        "kind": "polyline",+        "points": [+          [+            -80.0,+            30.0+          ],+          [+            80.0,+            30.0+          ]+        ],+        "width": 20.0+      }+    ],+    "designator_prefix": "C",+    "footprint": "C_0402_1005Metric_0402ZD105KAT2A",+    "parameters": [+      {+        "name": "Value",+        "value": "1uF",+        "visible": true+      },+      {+        "name": "Datasheet",+        "value": "https://datasheets.kyocera-avx.com/cx5r.pdf",+        "visible": false+      },+      {+        "name": "Description",+        "value": "MLCC 1 uF +/-10 %, 10 V, X5R, 0402 (1005 metric)",+        "visible": false+      },+      {+        "name": "MPN",+        "value": "0402ZD105KAT2A",+        "visible": false+      },+      {+        "name": "Manufacturer",+        "value": "KYOCERA AVX",+        "visible": false+      },+      {+        "name": "Mouser",+        "value": "581-0402ZD105K",+        "visible": false+      },+      {+        "name": "DigiKey",+        "value": "478-KGM05AR51A105KHTR-ND",+        "visible": false+      },+      {+        "name": "LCSC",+        "value": "C597062",+        "visible": false+      },+      {+        "name": "ki_keywords",+        "value": "capacitor 0402 0402ZD105KAT2A",+        "visible": false+      },+      {+        "name": "Supplier 1",+        "value": "Mouser",+        "visible": false+      },+      {+        "name": "Supplier Part Number 1",+        "value": "581-0402ZD105K",+        "visible": false+      },+      {+        "name": "Supplier 2",+        "value": "Digi-Key",+        "visible": false+      },+      {+        "name": "Supplier Part Number 2",+        "value": "478-KGM05AR51A105KHTR-ND",+        "visible": false+      },+      {+        "name": "Supplier 3",+        "value": "LCSC",+        "visible": false+      },+      {+        "name": "Supplier Part Number 3",+        "value": "C597062",+        "visible": false+      },+      {+        "name": "Manufacturer Part Number",+        "value": "0402ZD105KAT2A",+        "visible": false+      }+    ],+    "pin_numbers_hidden": true,+    "pin_names_hidden": true+  },+  "footprint": {+    "name": "C_0402_1005Metric_0402ZD105KAT2A",+    "pads": [+      {+        "number": "1",+        "x_mm": -0.48,+        "y_mm": 0.0,+        "w_mm": 0.56,+        "h_mm": 0.62,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      },+      {+        "number": "2",+        "x_mm": 0.48,+        "y_mm": 0.0,+        "w_mm": 0.56,+        "h_mm": 0.62,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      }+    ],+    "graphics": [+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": -0.107836,+        "y1": -0.36,+        "x2": 0.107836,+        "y2": -0.36,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": -0.107836,+        "y1": 0.36,+        "x2": 0.107836,+        "y2": 0.36,+        "width": 0.12+      },+      {+        "kind": "rect",+        "layer": {+          "role": "courtyard"+        },+        "x1": -0.91,+        "y1": -0.46,+        "x2": 0.91,+        "y2": 0.46,+        "width": 0.05+      },+      {+        "kind": "rect",+        "layer": {+          "role": "fab"+        },+        "x1": -0.5,+        "y1": -0.25,+        "x2": 0.5,+        "y2": 0.25,+        "width": 0.1+      }+    ]+  },+  "connect": [+    {+      "pin": "1",+      "pad": "1"+    },+    {+      "pin": "2",+      "pad": "2"+    }+  ],+  "provenance": {+    "source": "kicad_import"+  }+}\ No newline at end of file
docs/0402zd105kat2a-hero-preview.pngadded
⋯ 1 unchanged line ⋯
models.json+23−2
@@ -26,20 +26,41 @@    "format": "glb",    "title": "Package model (GLB)",    "status": "current",-   "slot": "model_3d",+   "slot": "model_3d_plain",    "variant": "plain",    "role": "derived",    "use": [+    "board-insertion",     "render"    ],    "marking": null,    "derived_from": "0402ZD105KAT2A.step",-   "unique": "The same model for the page viewer (step2glb)",+   "unique": "The clean model as a GLB (step2glb), no artwork: the download for viewers and assemblies",    "source": "KiCad packages3D Capacitor_SMD.3dshapes/C_0402_1005Metric.step (CC-BY-SA 4.0 with the KiCad library exception)",    "sha256": "100935c5c0d6f20a6c9bdfb6386f874dc8a4457bf0e4f3ace69f1ab090100773",    "git_blob": "be1969cc5b4bde9fe0ba1de99674dbb12e76fd76",    "bytes": 15944   },+  {+   "path": "0402zd105kat2a-hero.glb",+   "format": "glb",+   "title": "Hero (page viewer)",+   "status": "current",+   "slot": "model_3d",+   "variant": "hero",+   "role": "derived",+   "use": [+    "wiki-hero"+   ],+   "marking": null,+   "derived_from": "package-reference.glb",+   "unique": "The clean model plus nonphysical footprint artwork (adom-hero 1.4): teal dashed pad outlines, silkscreen, pad numbers 1 and 2; not for board use",+   "thumb": "docs/0402zd105kat2a-hero-preview.png",+   "source": "KiCad packages3D Capacitor_SMD.3dshapes/C_0402_1005Metric.step (CC-BY-SA 4.0 with the KiCad library exception)",+   "sha256": "4201e860514b498278ab8df9f9f5f2e57d09281815a135bdd1f028acaa6dbc62",+   "git_blob": "8465883d47b9c2d21b0ddfee762a4e643c204e2e",+   "bytes": 36748+  },   {    "path": "lod/high.glb",    "format": "glb",
provenance.json+39−7
@@ -93,18 +93,23 @@  },  "tools_note": "lod.py, ortho.py and overlay_chip.py come from the GRM155R71C104KA88D component page; overlay_chip.py was extended to accept min/max ranges and a per-part scale. build.py, parts.py, landcheck.py and records.py built this page.",  "files": {-  "verification.json": "19959c182390ea9e25b35eef368471022de6c71d33907b3d79837d02dc8b5107",+  "verification.json": "7ade6f34a7355a50eeff31fba9b4025ed436990a146f90854de5647454bf1734",+  "0402zd105kat2a-hero.glb": "4201e860514b498278ab8df9f9f5f2e57d09281815a135bdd1f028acaa6dbc62",   "C_0402_1005Metric_0402ZD105KAT2A.kicad_mod": "75e472f604e9e3473daf00ae179e4902d07ae5dc5eddbc841028a68b91c022c0",   "package-reference.glb": "100935c5c0d6f20a6c9bdfb6386f874dc8a4457bf0e4f3ace69f1ab090100773",   "package.json": "14ca9d7e76d8608fc7366a3acf82b80345ea21eb848210726d3c4eada2dd1c14",   "0402ZD105KAT2A.kicad_sym": "4fb61235b89779e8ebb17e67d638bad7e576ef1aa18546042e4b9d84b3a32015",   "0402ZD105KAT2A.lbr": "8b517c5721043dd7df42146499a9cc5a574f1c02885dc24545735e3302a76267",-  "models.json": "83f4019ff0465c25c1264d3ccd4f8b6831c884a35267ce86fecf4607c4590a9b",+  "models.json": "16c7317aec103719f3e83f5c4b7652d8db98715fa19789a614598a10c910bd04",   "0402ZD105KAT2A.step": "03e44c4b2b727b8d4b6b1fd598cbd12dd5e614f1dfeefa96a92a07e3a3b312a2",-  "LICENSE": "823636c9ff7be10167934e8b492a1b006c8601e7ee4c20b9e23ced1353905737",-  "page.json": "df3c3824ee4ab97f9b22d701746d914678022adb28bbfc6d10b192f70d4e5927",-  "README.md": "aa0069a1959f07569c047a189f573ff9de6710ae6bb5132cd562b9d48c0ef850",+  "LICENSE": "c126aaae0f0e930ff7b344686c51424c0e84e25ccf57c8c92e04a09e55514add",+  "page.json": "2e50e6dc2647879aa92b48e5471f6b1315e639e80cca8d3d076bb0918a8f08dd",+  "0402zd105kat2a-hero.overlay.json": "cfed0a6328a151e500beeabc50f09e5e5756b0a7b212143f05b20cc86f64165e",+  "README.md": "0c50910d80476eda006b82b678ff811d930e6fd191a8defeb5d5d4ab99d0ce16",+  "provenance/tools/hero_glb.py": "429e437a3f2e5f1dc3544fe65843ea4e019637f0a6163060cda2ae210f3af7bc",   "provenance/tools/parts.py": "0edf380e782f40682bbfc5052e7b975cc69c16c2b5281cbdf3b94c5ae9079458",+  "provenance/tools/upgrade.py": "8f439294f37345db3d13818a96588fbd47ed7fa1af933b55487ee5c159b793da",+  "provenance/tools/hero_glyphs.json": "00627c28f7b197084289f3f9283c41670cec673e3c3ba861bb70e48c76362799",   "provenance/tools/records.py": "a2d96fb98e9972268ebd5045befb692f687bf5b1d5a689c4ad77c0235d77418b",   "provenance/tools/landcheck.py": "a6141dcaa4992652e0caf3a7fdd51dcf8451fd630b7de7b873d1b910ae4a1d41",   "provenance/tools/overlay_chip.py": "52617a63c9504e020e574ec63f39f518734032fcda7b14ad158e3f8907b31723",@@ -121,6 +126,7 @@   "lod/medium.glb": "5e706ccb70132f1c1236fa0fb490c0d4d05fdfc5d8e9dec4dfba0d25e2fba3ca",   "lod/high.glb": "27cda00dee86721ad6419a506490fa503c04a9965fd1ea6e2e0d1a94f239fb31",   "lod/medium.png": "e71ddd5e4d23bfb20d68d259e27eb26a6710554657a4c63437f8de96d049350d",+  "docs/0402zd105kat2a-hero-preview.png": "8d958c69cca34cfbb45896b43cf6f66502a1f3a50b3101fa3c57743867f847a0",   "docs/kyocera-avx-x5r-kgm-series.pdf": "90d9d9b0e7b07e0c51233149d07d9286f5e66d08b57afbbff82fb9804b593932",   "docs/0402zd105kat2a-datasheet.pdf": "6c10851c76caad7a79a27173530c43e7594e101ac64f6b9e42dfb805fc42225d",   "docs/hero.png": "ec4522032e274b9e839f1d432f1df10e455babb47a31a448114a5c1fe04081b5",@@ -130,9 +136,35 @@   "land-pattern/land-check.json": "d47e576a8c66cf355b5e6e8e4fdac97ffb1e11841ff5650e0fa67fd901ea2adb",   "land-pattern/land-pattern-icon.png": "180d6893df4084e8f430976c019c42bf920449a13339c28f8bc2ea4dc7ce1fac",   "land-pattern/land-pattern.png": "5a874c9315b967019de7bcd6bb2d12af4ecfc79e515beb222a1a490bcd8c626b",-  "land-pattern/README.md": "c18a950c5a280f98777c03a82c384cf0d6fe1d515a43dd5fa18f10fc8c99b580"+  "land-pattern/README.md": "c18a950c5a280f98777c03a82c384cf0d6fe1d515a43dd5fa18f10fc8c99b580",+  "altium/0402ZD105KAT2A.PcbLib": "6e364773b4ebbe1cd1c05e8c89beb73f4f517e4f02b15bc96d36ee8f72e9ce83",+  "altium/0402ZD105KAT2A.SchLib": "72469850a0eeeac6830560ec7ed39edfd72c1bbee5ef63d90855a423f906abdd",+  "altium/0402ZD105KAT2A.adom-lbr.json": "67b1d3a02532f202d28b20c21231aeac442e120b3fbe38295a950d66ea5900e9"  },  "files_note": "provenance.json itself is not listed.",  "built_by": "Claude (AI agent) for John Lauer",- "date": "2026-10-21"+ "date": "2026-10-21",+ "hero_glb": {+  "file": "0402zd105kat2a-hero.glb",+  "sidecar": "0402zd105kat2a-hero.overlay.json",+  "preview": "docs/0402zd105kat2a-hero-preview.png",+  "added": "2026-10-21",+  "tool": "hero_glb.py (adom/component-hero, adom-hero 1.4), copied into provenance/tools/",+  "inputs": [+   "package-reference.glb",+   "C_0402_1005Metric_0402ZD105KAT2A.kicad_mod",+   "page.json component.pins (1 and 2, unnamed)"+  ],+  "result": "pads 2, silk items 2, pin1 none, labels 2; align OK (offset 0.0 mm)"+ },+ "altium": {+  "files": [+   "altium/0402ZD105KAT2A.SchLib",+   "altium/0402ZD105KAT2A.PcbLib",+   "altium/0402ZD105KAT2A.adom-lbr.json"+  ],+  "added": "2026-10-21",+  "tool": "adom-lbr import-kicad --sym --fp --mpn, then adom-lbr export-altium (adom-lbr 2.47.5)"+ },+ "upgrade_note": "2026-10-21: hero GLB, Altium libraries and Source added by provenance/tools/upgrade.py; no other file changed except the records that describe them (page.json, models.json, verification.json, README.md, LICENSE, this file)." }\ No newline at end of file
provenance/tools/hero_glb.pyadded+643
@@ -0,0 +1,643 @@+#!/usr/bin/env python3+"""Build a component page's annotated hero GLB: the physical chip plus Adom's nonphysical reference artwork.++The convention (unified 2026-09-30 from the 45 hand-built "style A" heroes on the wiki, the wiki-component+skill's table and John's request) is fixed here so nobody's AI has to reconstruct it from prose:++  root 1   the physical model, untouched (our etched GLB: manufacturer/KiCad body + Adom.LaserEtch.MPN)+  root 2   "Adom reference artwork (nonphysical)", three flat meshes at z = -0.02 mm (below the seating+           plane, so they never z-fight the chip underside), all KHR_materials_unlit, BLEND, double-sided:+    "Footprint pads - teal dashed outlines - 50 percent opacity"  copper perimeter of every pad, dashed+                                                                  rgb(0, .902, .863)  alpha 0.50+    "Silkscreen reference lines - 30 percent opacity"             F.SilkS strokes/fills + a pin-1 dot+                                                                  rgb(.92, .96, 1)    alpha 0.30+    "Signal names - 50 percent opacity"                           pad signal names outside the pads+                                                                  rgb(.92, .96, 1)    alpha 0.50+  asset.extras.adomHero = {spec, mpn, board_use: false, layers, sources...}++The hero is presentation only (board_use false). Board-use downloads stay clean: the page declares the hero as+component.parts.model_3d and the clean model as model_3d_plain.++Coordinates: glTF x = KiCad x, y = -KiCad y, Z up, metres (KiCad footprint origin = model origin; checked+per part against the chip's lowest geometry, see align_check).++Usage: hero_glb.py <etched.glb> <footprint.kicad_mod> <page.json> <out-hero.glb> [--mpn MPN] [--png preview.png]+"""+import argparse, hashlib, json, math, os, re, struct, sys+import numpy as np+from pygltflib import GLTF2, Accessor, BufferView, Material, Mesh, Node, Primitive, Attributes, PbrMetallicRoughness++SPEC = 'adom-hero 1.4'+Z = -0.02                                   # mm, artwork plane+PAD_MAT = ('Footprint pads - teal dashed outlines - 50 percent opacity', [0.0, 0.902, 0.863, 0.5])+SILK_MAT = ('Silkscreen reference lines - 30 percent opacity', [0.92, 0.96, 1.0, 0.3])+NAME_MAT = ('Signal names - 50 percent opacity', [0.92, 0.96, 1.0, 0.5])+ROOT = 'Adom reference artwork (nonphysical)'+POLAR_PAD = re.compile(r'^(K|KA|CATHODE|\+|POS|PLUS)$', re.I)+++# ---------------------------------------------------------------- KiCad footprint parsing (s-expressions)+def sexp(text):+    toks = re.findall(r'\(|\)|"(?:\\.|[^"\\])*"|[^\s()]+', text)+    stack = [[]]+    for t in toks:+        if t == '(': stack.append([])+        elif t == ')':+            x = stack.pop(); stack[-1].append(x)+        else: stack[-1].append(t[1:-1].replace('\\"', '"') if t.startswith('"') else t)+    return stack[0][0]+++def child(node, key):+    return next((c for c in node if isinstance(c, list) and c and c[0] == key), None)+++def children(node, key):+    return [c for c in node if isinstance(c, list) and c and c[0] == key]+++def num(v): return float(v)+++def xy(node): return (num(node[1]), num(node[2]))+++def stroke_w(node, default=0.12):+    s = child(node, 'stroke')+    if s and child(s, 'width'): return num(child(s, 'width')[1])+    if child(node, 'width'): return num(child(node, 'width')[1])+    return default+++def on_layer(node, layer):+    ly = child(node, 'layer') or child(node, 'layers')+    return bool(ly) and any(l == layer or (l.startswith('*.') and layer.endswith(l[1:])) for l in ly[1:])+++def parse_footprint(path):+    fp = sexp(open(path).read())+    pads, silk = [], []+    for p in children(fp, 'pad'):+        number, kind, shape = p[1], p[2], p[3]+        if kind == 'np_thru_hole': continue+        ly = child(p, 'layers')+        if not ly or not any(l in ('F.Cu', '*.Cu') for l in ly[1:]): continue+        at = child(p, 'at'); size = child(p, 'size')+        rr = child(p, 'roundrect_rratio')+        prims = []+        if shape == 'custom' and child(p, 'primitives'):+            for gp in children(child(p, 'primitives'), 'gr_poly'):+                pts = child(gp, 'pts')+                if pts: prims.append([xy(q) for q in children(pts, 'xy')])+        pads.append(dict(number=number, kind=kind, shape=shape, x=num(at[1]), y=num(at[2]),+                         rot=num(at[3]) if len(at) > 3 else 0.0, w=num(size[1]), h=num(size[2]),+                         rratio=num(rr[1]) if rr else 0.25, prims=prims))+    for g in fp:+        if not (isinstance(g, list) and g and g[0] in ('fp_line', 'fp_arc', 'fp_circle', 'fp_rect', 'fp_poly')): continue+        if not on_layer(g, 'F.SilkS'): continue+        w = stroke_w(g); fill = child(g, 'fill'); filled = bool(fill) and fill[1] in ('solid', 'yes')+        if g[0] == 'fp_line': silk.append(('path', [xy(child(g, 'start')), xy(child(g, 'end'))], w))+        elif g[0] == 'fp_rect':+            (x1, y1), (x2, y2) = xy(child(g, 'start')), xy(child(g, 'end'))+            poly = [(x1, y1), (x2, y1), (x2, y2), (x1, y2), (x1, y1)]+            silk.append(('fill' if filled else 'path', poly, w))+        elif g[0] == 'fp_circle':+            (cx, cy), (ex, ey) = xy(child(g, 'center')), xy(child(g, 'end'))+            r = math.hypot(ex - cx, ey - cy)+            poly = [(cx + r * math.cos(t), cy + r * math.sin(t)) for t in np.linspace(0, 2 * math.pi, arc_n(r, 360) + 1)]+            silk.append(('fill' if filled else 'path', poly, w))+        elif g[0] == 'fp_arc':+            if child(g, 'mid'):+                a, m, b = xy(child(g, 'start')), xy(child(g, 'mid')), xy(child(g, 'end'))+                silk.append(('path', arc3(a, m, b), w))+            else:   # KiCad 5: (start centre) (end point) (angle deg)+                c, s = xy(child(g, 'start')), xy(child(g, 'end')); ang = num(child(g, 'angle')[1])+                r = math.hypot(s[0] - c[0], s[1] - c[1]); t0 = math.atan2(s[1] - c[1], s[0] - c[0])+                silk.append(('path', [(c[0] + r * math.cos(t0 + math.radians(ang) * k / 24), c[1] + r * math.sin(t0 + math.radians(ang) * k / 24)) for k in range(25)], w))+        elif g[0] == 'fp_poly':+            pts = [xy(q) for q in children(child(g, 'pts'), 'xy')]+            silk.append(('fill' if (filled or not fill) else 'path', pts + [pts[0]], w))+    model = child(fp, 'model')+    mdl = None+    if model:+        mdl = dict(offset=[num(v) for v in child(child(model, 'offset'), 'xyz')[1:]] if child(model, 'offset') else [0, 0, 0],+                   rotate=[num(v) for v in child(child(model, 'rotate'), 'xyz')[1:]] if child(model, 'rotate') else [0, 0, 0])+    return pads, silk, mdl+++def arc3(a, m, b, n=None):+    ax, ay = a; bx, by = m; cx, cy = b+    d = 2 * (ax * (by - cy) + bx * (cy - ay) + cx * (ay - by))+    if abs(d) < 1e-12: return [a, b]+    ux = ((ax * ax + ay * ay) * (by - cy) + (bx * bx + by * by) * (cy - ay) + (cx * cx + cy * cy) * (ay - by)) / d+    uy = ((ax * ax + ay * ay) * (cx - bx) + (bx * bx + by * by) * (ax - cx) + (cx * cx + cy * cy) * (bx - ax)) / d+    r = math.hypot(ax - ux, ay - uy)+    t0, tm, t1 = (math.atan2(p[1] - uy, p[0] - ux) for p in (a, m, b))+    def norm(t): return (t - t0) % (2 * math.pi)+    sweep = norm(t1) if norm(tm) < norm(t1) else norm(t1) - 2 * math.pi+    n = n or arc_n(r, math.degrees(sweep))+    return [(ux + r * math.cos(t0 + sweep * k / n), uy + r * math.sin(t0 + sweep * k / n)) for k in range(n + 1)]+++# ---------------------------------------------------------------- geometry+def arc_n(r, sweep_deg, chord=0.005):+    """Segments for an arc so no straight piece is longer than `chord` mm (smooth at any zoom)."""+    return int(min(max(math.ceil(abs(math.radians(sweep_deg)) * r / chord), 8), 240))+++def pad_outline(p):+    """Closed polyline of the copper perimeter in footprint coordinates."""+    w, h = p['w'], p['h']+    if p['shape'] == 'circle':+        n = arc_n(w / 2, 360); loc = [(w / 2 * math.cos(t), w / 2 * math.sin(t)) for t in np.linspace(0, 2 * math.pi, n + 1)]+    elif p['shape'] == 'oval':+        r = min(w, h) / 2; L = (max(w, h) - 2 * r) / 2; loc = []+        for cx, a0 in ((L, -90), (-L, 90)):+            n = arc_n(r, 180); loc += [(cx + r * math.cos(math.radians(a0 + k * 180 / n)), r * math.sin(math.radians(a0 + k * 180 / n))) for k in range(n + 1)]+        if h > w: loc = [(y, x) for x, y in loc]+        loc.append(loc[0])+    elif p['shape'] in ('roundrect', 'rect', 'trapezoid', 'custom'):+        r = p['rratio'] * min(w, h) if p['shape'] == 'roundrect' else 0.0+        if p['shape'] == 'custom' and p['prims']:+            loc = p['prims'][0] + [p['prims'][0][0]]+        elif r <= 1e-6:+            loc = [(-w / 2, -h / 2), (w / 2, -h / 2), (w / 2, h / 2), (-w / 2, h / 2), (-w / 2, -h / 2)]+        else:+            loc = []+            for cx, cy, a0 in ((w / 2 - r, -h / 2 + r, -90), (w / 2 - r, h / 2 - r, 0), (-w / 2 + r, h / 2 - r, 90), (-w / 2 + r, -h / 2 + r, 180)):+                n = arc_n(r, 90); loc += [(cx + r * math.cos(math.radians(a0 + k * 90 / n)), cy + r * math.sin(math.radians(a0 + k * 90 / n))) for k in range(n + 1)]+            loc.append(loc[0])+    else:+        loc = [(-w / 2, -h / 2), (w / 2, -h / 2), (w / 2, h / 2), (-w / 2, h / 2), (-w / 2, -h / 2)]+    # KiCad pad rotation is counter-clockwise on screen, where y points down: rotate by -angle in math axes+    t = math.radians(-p['rot']); c, s = math.cos(t), math.sin(t)+    return [(p['x'] + x * c - y * s, p['y'] + x * s + y * c) for x, y in loc]+++def stroke_quads(poly, width):+    """One continuous ribbon along a polyline: offset both sides with mitred joins, so bends have no gaps+    and no overlapping triangles (overlaps double the alpha and show as bright seams)."""+    pts = [poly[0]] + [q for a, q in zip(poly, poly[1:]) if math.hypot(q[0] - a[0], q[1] - a[1]) > 1e-9]+    if len(pts) < 2: return []+    closed = len(pts) > 2 and math.hypot(pts[0][0] - pts[-1][0], pts[0][1] - pts[-1][1]) < 1e-9+    if closed: pts = pts[:-1]+    n = len(pts); hw = width / 2+    def seg_normal(i, j):+        dx, dy = pts[j][0] - pts[i][0], pts[j][1] - pts[i][1]; L = math.hypot(dx, dy)+        return (-dy / L, dx / L)+    left, right = [], []+    for i in range(n):+        prv = (i - 1) % n if (closed or i > 0) else None+        nxt = (i + 1) % n if (closed or i < n - 1) else None+        if prv is None: nx, ny = seg_normal(i, nxt)+        elif nxt is None: nx, ny = seg_normal(prv, i)+        else:+            a, b = seg_normal(prv, i), seg_normal(i, nxt)+            mx, my = a[0] + b[0], a[1] + b[1]; ml = math.hypot(mx, my)+            if ml < 1e-6: nx, ny = b+            else:+                mx, my = mx / ml, my / ml; cosh = max(mx * b[0] + my * b[1], 0.25)   # mitre limit 4x+                nx, ny = mx / cosh, my / cosh+        left.append((pts[i][0] + nx * hw, pts[i][1] + ny * hw)); right.append((pts[i][0] - nx * hw, pts[i][1] - ny * hw))+    idx = list(range(n)) + ([0] if closed else [])+    tris = []+    for i, j in zip(idx, idx[1:]):+        tris += [(left[i], left[j], right[j]), (left[i], right[j], right[i])]+    return tris+++def dashes(poly, dash, gap):+    """Split a closed polyline into dash pieces (each a short polyline, corners kept)."""+    segs = list(zip(poly, poly[1:])); out = []; cur = []; on = True; left = dash+    for (x1, y1), (x2, y2) in segs:+        L = math.hypot(x2 - x1, y2 - y1); pos = 0.0+        if L < 1e-12: continue+        while pos < L - 1e-12:+            step = min(left, L - pos); t0, t1 = pos / L, (pos + step) / L+            p0 = (x1 + (x2 - x1) * t0, y1 + (y2 - y1) * t0); p1 = (x1 + (x2 - x1) * t1, y1 + (y2 - y1) * t1)+            if on:+                if not cur: cur = [p0]+                cur.append(p1)+            pos += step; left -= step+            if left <= 1e-12:+                if on and len(cur) > 1: out.append(cur)+                cur = []; on = not on; left = dash if on else gap+    if on and len(cur) > 1: out.append(cur)+    return out+++def fill_tris(rings):+    """Triangulate a polygon (outer ring + holes) with earcut."""+    import mapbox_earcut as earcut+    verts = np.array([p for r in rings for p in r], dtype=np.float64).reshape(-1, 2)+    ends = np.cumsum([len(r) for r in rings]).astype(np.uint32)+    idx = earcut.triangulate_float64(verts, ends)+    return [tuple(map(tuple, verts[idx[k:k + 3]])) for k in range(0, len(idx), 3)]+++# ---------------------------------------------------------------- text (DejaVu Sans Mono, pre-triangulated glyph table)+_GLYPHS = None+++def glyphs():+    """DejaVu Sans Mono, pre-triangulated at font size 1 (hero_glyphs.json, shared with the Rust port), so text+    needs no font library at run time and both implementations draw identical glyphs."""+    global _GLYPHS+    if _GLYPHS is None:+        _GLYPHS = json.load(open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'hero_glyphs.json')))+    return _GLYPHS+++def text_tris(txt, height, x, y, align='left', vertical=False):+    """Filled text triangles, baseline-centred on (x, y) in footprint coordinates (y down). Overbars for ~{..}."""+    G = glyphs(); table = G['glyphs']+    plain, bars = '', []+    for m in re.finditer(r'~\{([^}]*)\}|([^~]+|~)', txt):+        if m.group(1) is not None:+            bars.append((len(plain), len(plain) + len(m.group(1)))); plain += m.group(1)+        else: plain += m.group(2)+    if not plain.strip(): return []+    adv = G['advance'] * height; W = adv * len(plain)+    tris = []+    for i, ch in enumerate(plain):+        gl = table.get(ch) or table['?']+        v = gl['v']; t = gl['t']+        for k in range(0, len(t), 3):+            tris.append(tuple((i * adv + v[2 * j] * height, v[2 * j + 1] * height) for j in t[k:k + 3]))+    for a, b in bars:   # overbar just above the cap height+        y0, y1 = 0.80 * height, 0.87 * height+        tris += [((a * adv, y0), (b * adv, y0), (b * adv, y1)), ((a * adv, y0), (b * adv, y1), (a * adv, y1))]+    # local text coords: x right, y UP, baseline at 0; centre vertically on cap height, align horizontally+    ox = {'left': 0.0, 'right': -W, 'center': -W / 2}[align]; oy = -0.36 * height+    out = []+    for t in tris:+        q = []+        for tx, ty in t:+            lx, ly = tx + ox, ty + oy+            if vertical: lx, ly = -ly, lx          # rotate 90 degrees CCW (reads bottom-to-top)+            q.append((x + lx, y - ly))             # footprint y is down+        out.append(tuple(q))+    return out+++def mirror_label(tris):+    """Seen from below (orbiting the model over toward you, as the wiki viewer does), a label reads upside+    down: the view flips top-to-bottom. Mirror the underside copy across the label's own horizontal centre+    line, so it reads correctly from below and stays in place (Colby, 2026-09-30: "WODE", "ΛIN")."""+    if not tris: return []+    ys = [v[1] for t in tris for v in t]; cy = (min(ys) + max(ys)) / 2+    return [tuple((vx, 2 * cy - vy) for vx, vy in t) for t in tris]+++# ---------------------------------------------------------------- layout decisions+def scale_params(pads):+    xs = [p['x'] for p in pads]; ys = [p['y'] for p in pads]+    span = max(max(xs) - min(xs) + max(p['w'] for p in pads), max(ys) - min(ys) + max(p['h'] for p in pads), 1.0)+    # 1.1 (2026-09-30): bolder. At 0.015 mm the outlines vanished at the wiki viewer's default zoom and the+    # 30% silkscreen read as "the footprint" (Colby). The footprint must read first.+    # 1.2: between the two -- 1.1 read as heavy to Colby ("I like that it's subtle"), 1.0 vanished (Ray chose the middle)+    dash = min(max(0.025 * span, 0.12), 0.45)+    return dict(span_mm=round(span, 3), dash_mm=round(dash, 4), gap_mm=round(0.6 * dash, 4),+                pad_stroke_mm=round(min(max(0.006 * span, 0.03), 0.09), 4))+++def is_grid(pads):+    """BGA/LGA-style ball grid: many pads with many distinct rows AND columns."""+    xs = {round(p['x'], 2) for p in pads}; ys = {round(p['y'], 2) for p in pads}+    return len(pads) >= 16 and len(xs) >= 4 and len(ys) >= 4 and len(pads) > 0.6 * len(xs) * len(ys)+++def label_box(lb):+    W = 0.602 * lb['h'] * len(re.sub(r'~\{([^}]*)\}', r'\1', lb['text'])); H = lb['h']+    x, y = lb['x'], lb['y']+    if not lb['vertical']:+        x0 = x - W if lb['align'] == 'right' else x+        return (x0, x0 + W, y - H / 2, y + H / 2)+    y0 = y if lb['align'] == 'right' else y - W        # vertical text runs up the screen (footprint -y)+    return (x - H / 2, x + H / 2, y0, y0 + W)+++def overlaps(a, b): return a[0] < b[1] and b[0] < a[1] and a[2] < b[3] and b[2] < a[3]+++def label_plan(pads, names, obstacles=()):+    """Per labelled pad: text, anchor, alignment, orientation, height. Interior pads get none."""+    sig = [p for p in pads if not (p['number'] in ('', '~') or thermal_like(p, pads))]+    if not sig or is_grid(sig): return [], ('ball grid: labels omitted (they would sit under the body)' if sig else 'no signal pads')+    xs = [p['x'] for p in sig]; ys = [p['y'] for p in sig]+    cx, cy = (min(xs) + max(xs)) / 2, (min(ys) + max(ys)) / 2+    hx, hy = (max(xs) - min(xs)) / 2 or 1e-6, (max(ys) - min(ys)) / 2 or 1e-6+    plan, seen = [], set()+    for p in sig:+        if p['number'] in seen: continue        # multi-pad numbers (split EP, shield legs) labelled once+        seen.add(p['number'])+        # side = the extreme it sits closest to (normalised), so a 2-row part splits left/right or top/bottom+        dxn, dyn = (p['x'] - cx) / hx, (p['y'] - cy) / hy+        if len(sig) == 2 or abs(dxn) >= abs(dyn): side = 'R' if p['x'] >= cx else 'L'+        else: side = 'B' if p['y'] >= cy else 'T'+        same = [q for q in sig if q is not p and ((side in 'LR' and abs(q['x'] - p['x']) < 0.3) or (side in 'TB' and abs(q['y'] - p['y']) < 0.3))]+        pitch = min([abs((q['y'] - p['y']) if side in 'LR' else (q['x'] - p['x'])) for q in same] or [99])+        o = pad_outline(p); ex = [v[0] for v in o]; ey = [v[1] for v in o]+        short = min(p['w'], p['h'])+        h = min(max(min(0.5 * pitch, 0.7 * short if len(sig) == 2 else 0.5 * pitch), 0.12), 0.6)+        gap = max(0.25 * h, 0.1)+        text = names.get(p['number']) or p['number']+        if text in ('~', ''): text = p['number']+        if side == 'L': plan.append(dict(pad=p['number'], text=text, x=min(ex) - gap, y=p['y'], align='right', vertical=False, h=h))+        if side == 'R': plan.append(dict(pad=p['number'], text=text, x=max(ex) + gap, y=p['y'], align='left', vertical=False, h=h))+        if side == 'T': plan.append(dict(pad=p['number'], text=text, x=p['x'], y=min(ey) - gap, align='left', vertical=True, h=h))+        if side == 'B': plan.append(dict(pad=p['number'], text=text, x=p['x'], y=max(ey) + gap, align='right', vertical=True, h=h))+        lb = plan[-1]+        for _ in range(4):     # step outward past a silkscreen shape (the footprint's pin-1 triangle, our dot)+            hit = next((ob for ob in obstacles if overlaps(label_box(lb), ob)), None)+            if not hit: break+            if side == 'L': lb['x'] = hit[0] - gap+            if side == 'R': lb['x'] = hit[1] + gap+            if side == 'T': lb['y'] = hit[2] - gap+            if side == 'B': lb['y'] = hit[3] + gap+    return plan, None+++def thermal_like(p, pads):+    """Exposed/thermal pad: named EP/PAD, or a pad much larger than the median sitting inside the others."""+    if re.match(r'^(EP|PAD|TAB|0)$', p['number'], re.I): return True+    areas = sorted(q['w'] * q['h'] for q in pads)+    med = areas[len(areas) // 2]+    if len(pads) >= 5 and p['w'] * p['h'] > 4 * med:+        xs = [q['x'] for q in pads]; ys = [q['y'] for q in pads]+        return min(xs) < p['x'] < max(xs) and min(ys) < p['y'] < max(ys)+    return False+++def silk_marks_pin1(silk, p1, pads):+    """The footprint already carries a pin-1 mark: a filled silk shape (KiCad's triangle / dot) whose centroid+    is nearer pad 1 than any other pad and within 2.5 mm of it."""+    for kind, pts, _ in silk:+        if kind != 'fill' or len(pts) < 3: continue+        cx = np.mean([q[0] for q in pts]); cy = np.mean([q[1] for q in pts])+        dist = lambda p: math.hypot(p['x'] - cx, p['y'] - cy)+        if dist(p1) <= 2.5 and dist(p1) <= min(dist(q) for q in pads) + 1e-6: return True+    return False+++def pin1_dot(pads, names, silk=()):+    """(x, y, r) of the pin-1 dot, outside pad 1, or None when the part has no orientation to show or the+    footprint's own silkscreen already marks pin 1."""+    sig = [p for p in pads if not thermal_like(p, pads)]+    p1 = None+    if len(sig) >= 3:+        p1 = next((p for p in sig if p['number'] in ('1', 'A1')), None)+    elif len(sig) == 2:   # a 2-pin part shows polarity only when a pin says so (cathode / +)+        p1 = next((p for p in sig if POLAR_PAD.match((names.get(p['number']) or '').strip())), None)+    if not p1: return None+    if silk_marks_pin1(silk, p1, sig): return ('existing', p1['number'])+    xs = [p['x'] for p in sig]; ys = [p['y'] for p in sig]+    cx, cy = (min(xs) + max(xs)) / 2, (min(ys) + max(ys)) / 2+    dx, dy = p1['x'] - cx, p1['y'] - cy+    if len(sig) >= 3 and not is_grid(sig):+        # outward along the pad's own row axis: beyond pad 1's END of the row (the classic dot position)+        same_col = [q for q in sig if abs(q['x'] - p1['x']) < 0.3]+        if len(same_col) > 1: dx, dy = 0.0, (p1['y'] - np.mean([q['y'] for q in same_col])) or -1.0+        else: dx, dy = (p1['x'] - np.mean([q['x'] for q in sig if abs(q['y'] - p1['y']) < 0.3])) or -1.0, 0.0+    L = math.hypot(dx, dy) or 1.0; ux, uy = dx / L, dy / L+    r = min(max(0.22 * min(p1['w'], p1['h']), 0.1), 0.35)+    o = pad_outline(p1); reach = max((v[0] - p1['x']) * ux + (v[1] - p1['y']) * uy for v in o)+    d = reach + 0.2 + r+    return (p1['x'] + ux * d, p1['y'] + uy * d, r, p1['number'])+++# ---------------------------------------------------------------- GLB assembly+def tris_to_arrays(tris):+    """Indexed mesh: shared vertices stored once (the ribbons and glyphs share most corners), ~3x smaller."""+    P = np.array([[x / 1000.0, -y / 1000.0, Z / 1000.0] for t in tris for (x, y) in t], dtype=np.float32)+    key = np.round(P.astype(np.float64) * 1e7).astype(np.int64)+    _, first, inv = np.unique(key, axis=0, return_index=True, return_inverse=True)+    return P[first], inv.reshape(-1).astype(np.uint32)+++def facing(tris, up):+    """Force each triangle's winding in glTF space (x, -y): counter-clockwise from above for up=True, from below+    for up=False. A single-sided material then shows the top copy only from above and the bottom copy only+    from below."""+    out = []+    for t in tris:+        (x0, y0), (x1, y1), (x2, y2) = t+        area = (x1 - x0) * (-(y2 - y0)) - (x2 - x0) * (-(y1 - y0))     # signed area with glTF y = -footprint y+        out.append(t if (area > 0) == up else (t[0], t[2], t[1]))+    return out+++def add_mesh(g, blob, name, prims):+    """One node + mesh named `name`; prims = [(material_index, tris), ...], one primitive each."""+    gl_prims = []+    for mat_idx, tris in prims:+        if not tris: continue+        P, I = tris_to_arrays(tris)+        pb, ib = P.tobytes(), I.tobytes()+        off = len(blob); blob += pb + b'\x00' * ((4 - len(pb) % 4) % 4)+        g.bufferViews.append(BufferView(buffer=0, byteOffset=off, byteLength=len(pb), target=34962))+        g.accessors.append(Accessor(bufferView=len(g.bufferViews) - 1, componentType=5126, count=len(P), type='VEC3',+                                    min=P.min(0).tolist(), max=P.max(0).tolist()))+        pa = len(g.accessors) - 1+        off = len(blob); blob += ib+        g.bufferViews.append(BufferView(buffer=0, byteOffset=off, byteLength=len(ib), target=34963))+        g.accessors.append(Accessor(bufferView=len(g.bufferViews) - 1, componentType=5125, count=len(I), type='SCALAR'))+        gl_prims.append(Primitive(attributes=Attributes(POSITION=pa), indices=len(g.accessors) - 1, material=mat_idx))+    if not gl_prims: return None, blob+    g.meshes.append(Mesh(name=name, primitives=gl_prims))+    g.nodes.append(Node(name=name, mesh=len(g.meshes) - 1))+    return len(g.nodes) - 1, blob+++def world_points(g):+    """All physical vertices in world metres (for the alignment check)."""+    blob = g.binary_blob()+    CT = {5126: ('f', 4), 5123: ('H', 2), 5125: ('I', 4), 5121: ('B', 1), 5122: ('h', 2), 5120: ('b', 1)}+    NC = {'SCALAR': 1, 'VEC2': 2, 'VEC3': 3, 'VEC4': 4}+    def acc(i):+        a = g.accessors[i]; bv = g.bufferViews[a.bufferView]; t, sz = CT[a.componentType]; nc = NC[a.type]+        st = bv.byteStride or sz * nc; o = (bv.byteOffset or 0) + (a.byteOffset or 0)+        v = np.array([struct.unpack_from('<' + t * nc, blob, o + k * st) for k in range(a.count)], dtype=float)+        if a.normalized: v = v / {5122: 32767, 5120: 127, 5123: 65535, 5121: 255}[a.componentType]+        return v+    def mat(nd):+        if nd.matrix: return np.array(nd.matrix).reshape(4, 4).T+        T = np.eye(4); R = np.eye(4); S = np.eye(4)+        if nd.translation: T[:3, 3] = nd.translation+        if nd.rotation:+            x, y, z, w = nd.rotation+            R[:3, :3] = [[1 - 2 * (y * y + z * z), 2 * (x * y - z * w), 2 * (x * z + y * w)], [2 * (x * y + z * w), 1 - 2 * (x * x + z * z), 2 * (y * z - x * w)], [2 * (x * z - y * w), 2 * (y * z + x * w), 1 - 2 * (x * x + y * y)]]+        if nd.scale: S[:3, :3] = np.diag(nd.scale)+        return T @ R @ S+    out = []+    def walk(i, M):+        nd = g.nodes[i]; M2 = M @ mat(nd)+        if nd.mesh is not None:+            for p in g.meshes[nd.mesh].primitives:+                P = acc(p.attributes.POSITION); out.append((M2 @ np.c_[P, np.ones(len(P))].T).T[:, :3])+        for c in nd.children or []: walk(c, M2)+    for r in g.scenes[g.scene or 0].nodes: walk(r, np.eye(4))+    return np.vstack(out) if out else np.zeros((0, 3))+++def align_check(g, pads):+    """The chip's lowest geometry (its contacts) must sit over the pads: compare extents in both axes."""+    W = world_points(g) * 1000.0+    if not len(W): return dict(ok=False, why='no physical geometry')+    zmin = W[:, 2].min(); low = W[W[:, 2] < zmin + max(0.08, 0.05 * (W[:, 2].max() - zmin))]+    px = [v[0] for p in pads for v in pad_outline(p)]; py = [-v[1] for p in pads for v in pad_outline(p)]+    pad_box = (min(px), max(px), min(py), max(py)); c_box = (low[:, 0].min(), low[:, 0].max(), low[:, 1].min(), low[:, 1].max())+    # contacts centred on the pad field and not wider than it (+ tolerance); a rotated model fails both+    cx_p, cy_p = (pad_box[0] + pad_box[1]) / 2, (pad_box[2] + pad_box[3]) / 2+    cx_c, cy_c = (c_box[0] + c_box[1]) / 2, (c_box[2] + c_box[3]) / 2+    tol = max(0.25, 0.08 * max(pad_box[1] - pad_box[0], pad_box[3] - pad_box[2]))+    # Orientation: a model turned 90 degrees swaps the long axis of its contacts against the pad field. A+    # leadless body (QFN/WSON) rests its whole underside on the seating plane, so width alone proves nothing.+    pw, ph = pad_box[1] - pad_box[0], pad_box[3] - pad_box[2]; cw, ch = c_box[1] - c_box[0], c_box[3] - c_box[2]+    flipped = (pw > 1.25 * ph and ch > 1.25 * cw) or (ph > 1.25 * pw and cw > 1.25 * ch)+    off = math.hypot(cx_c - cx_p, cy_c - cy_p)+    return dict(ok=bool(off <= tol and not flipped), centre_offset_mm=round(off, 3), tolerance_mm=round(tol, 3), orientation_flipped=bool(flipped),+                contacts_bbox_mm=[round(v, 3) for v in c_box], pads_bbox_mm=[round(v, 3) for v in pad_box], seating_z_mm=round(float(zmin), 3))+++def sha(path): return hashlib.sha256(open(path, 'rb').read()).hexdigest()+++def build(src_glb, kmod, page_json, out, mpn=None, png=None):+    pads, silk, mdl = parse_footprint(kmod)+    if not pads: raise SystemExit(f'{kmod}: no copper pads')+    pj = json.load(open(page_json)); comp = pj.get('component') or {}+    names = {str(p.get('number')): (p.get('name') or '').strip() for p in comp.get('pins') or []}+    mpn = mpn or comp.get('mpn') or os.path.basename(out).replace('-hero.glb', '').upper()+    prm = scale_params(pads)+    g = GLTF2().load(src_glb)+    chk = align_check(g, pads)+    if mdl and (any(abs(v) > 1e-6 for v in mdl['rotate']) or any(abs(v) > 1e-6 for v in mdl['offset'])):+        chk['model_transform_in_footprint'] = mdl+    # --- artwork+    pad_tris = []+    for p in pads:+        o = pad_outline(p); per = sum(math.hypot(b[0] - a[0], b[1] - a[1]) for a, b in zip(o, o[1:]))+        dsh = min(prm['dash_mm'], max(per / 6, 0.05)); w = min(prm['pad_stroke_mm'], max(per / 25, 0.02))+        for d in dashes(o, dsh, 0.6 * dsh): pad_tris += stroke_quads(d, w)+    silk_tris = []+    for kind, pts, w in silk:+        if 'REF' in str(pts): continue+        silk_tris += fill_tris([pts[:-1] if pts[0] == pts[-1] else pts]) if kind == 'fill' and len(pts) >= 4 else stroke_quads(pts, w)+    dot = pin1_dot(pads, names, silk)+    existing_mark = bool(dot) and dot[0] == 'existing'+    if dot and not existing_mark:+        x, y, r, _ = dot+        ring = [(x + r * math.cos(t), y + r * math.sin(t)) for t in np.linspace(0, 2 * math.pi, 33)[:-1]]+        silk_tris += fill_tris([ring])+    obstacles = [(min(q[0] for q in pts), max(q[0] for q in pts), min(q[1] for q in pts), max(q[1] for q in pts)) for kind, pts, _ in silk if kind == 'fill']+    if dot and not existing_mark: obstacles.append((dot[0] - dot[2], dot[0] + dot[2], dot[1] - dot[2], dot[1] + dot[2]))+    plan, why_no_labels = label_plan(pads, names, obstacles)+    name_up, name_down = [], []+    for lb in plan:+        t = text_tris(lb['text'], lb['h'], lb['x'], lb['y'], lb['align'], lb['vertical'])+        name_up += t; name_down += mirror_label(t)+    name_up, name_down = facing(name_up, True), facing(name_down, False)+    # --- materials, meshes, root node+    blob = bytearray(g.binary_blob() or b'')+    blob += b'\x00' * ((4 - len(blob) % 4) % 4)+    mats = []+    for nm, col in (PAD_MAT, SILK_MAT, NAME_MAT):+        # Names are single-sided: an upward copy and a mirrored downward copy, so they read from either side.+        g.materials.append(Material(name=nm, pbrMetallicRoughness=PbrMetallicRoughness(baseColorFactor=col, metallicFactor=0.0, roughnessFactor=1.0),+                                    alphaMode='BLEND', doubleSided=(nm != NAME_MAT[0]), extensions={'KHR_materials_unlit': {}}))+        mats.append(len(g.materials) - 1)+    kids = []+    for (nm, _), prims in zip((PAD_MAT, SILK_MAT, NAME_MAT),+                              ([(mats[0], pad_tris)], [(mats[1], silk_tris)], [(mats[2], name_up), (mats[2], name_down)])):+        ni, blob = add_mesh(g, blob, nm, prims)+        if ni is not None: kids.append(ni)+    g.nodes.append(Node(name=ROOT, children=kids)); g.scenes[g.scene or 0].nodes.append(len(g.nodes) - 1)+    g.buffers[0].byteLength = len(blob); g.set_binary_blob(bytes(blob))+    if 'KHR_materials_unlit' not in (g.extensionsUsed or []): g.extensionsUsed = (g.extensionsUsed or []) + ['KHR_materials_unlit']+    layers = dict(pad_outlines=dict(material=PAD_MAT[0], rgba=PAD_MAT[1], pads=len(pads), **prm),+                  silkscreen=dict(material=SILK_MAT[0], rgba=SILK_MAT[1], footprint_items=len(silk),+                                  pin1=(dict(source='footprint silkscreen', pad=dot[1]) if existing_mark else+                                        dict(source='added dot (AI)', pad=dot[3], center_mm=[round(dot[0], 3), round(dot[1], 3)], r_mm=round(dot[2], 3)) if dot else None)),+                  signal_names=dict(material=NAME_MAT[0], rgba=NAME_MAT[1], font='DejaVu Sans Mono', labels=len(plan), sides='top + mirrored underside (single-sided)',+                                    omitted=why_no_labels, fallback_to_pad_number=sum(1 for lb in plan if lb['text'] == lb['pad'])))+    hero = dict(spec=SPEC, mpn=mpn, kind='component + footprint reference art', board_use=False, plane_z_mm=Z, units='metre', upAxis='Z',+                layers=layers, align=chk, sources=dict(glb=os.path.basename(src_glb), glb_sha256=sha(src_glb),+                footprint=os.path.basename(kmod), footprint_sha256=sha(kmod), pins='page.json component.pins'), generator='factory/hero_glb.py')+    ex = g.asset.extras if isinstance(g.asset.extras, dict) else {}+    ex['adomHero'] = hero; g.asset.extras = ex+    g.save_binary(out)+    side = dict(hero, labels=[{k: (round(v, 3) if isinstance(v, float) else v) for k, v in lb.items()} for lb in plan],+                pads=[dict(number=p['number'], shape=p['shape'], center_mm=[p['x'], p['y']], size_mm=[p['w'], p['h']], rot=p['rot']) for p in pads])+    json.dump(side, open(out.replace('.glb', '.overlay.json'), 'w'), indent=1)+    if png: preview(out, png, pads, plan, dot)+    return hero+++# ---------------------------------------------------------------- quick preview (top + oblique) for review+def preview(glb, png, pads, plan, dot):+    import matplotlib; matplotlib.use('Agg')+    import matplotlib.pyplot as plt+    from matplotlib.collections import PolyCollection+    from mpl_toolkits.mplot3d.art3d import Poly3DCollection+    g = GLTF2().load(glb)+    blob = g.binary_blob()+    CT = {5126: ('f', 4), 5123: ('H', 2), 5125: ('I', 4), 5121: ('B', 1), 5122: ('h', 2), 5120: ('b', 1)}+    NC = {'SCALAR': 1, 'VEC2': 2, 'VEC3': 3, 'VEC4': 4}+    def acc(i):+        a = g.accessors[i]; bv = g.bufferViews[a.bufferView]; t, sz = CT[a.componentType]; nc = NC[a.type]+        st = bv.byteStride or sz * nc; o = (bv.byteOffset or 0) + (a.byteOffset or 0)+        v = np.array([struct.unpack_from('<' + t * nc, blob, o + k * st) for k in range(a.count)], dtype=float)+        if a.normalized: v = v / {5122: 32767, 5120: 127, 5123: 65535, 5121: 255}[a.componentType]+        return v+    def mat(nd):+        if nd.matrix: return np.array(nd.matrix).reshape(4, 4).T+        T = np.eye(4); R = np.eye(4); S = np.eye(4)+        if nd.translation: T[:3, 3] = nd.translation+        if nd.rotation:+            x, y, z, w = nd.rotation+            R[:3, :3] = [[1 - 2 * (y * y + z * z), 2 * (x * y - z * w), 2 * (x * z + y * w)], [2 * (x * y + z * w), 1 - 2 * (x * x + z * z), 2 * (y * z - x * w)], [2 * (x * z - y * w), 2 * (y * z + x * w), 1 - 2 * (x * x + y * y)]]+        if nd.scale: S[:3, :3] = np.diag(nd.scale)+        return T @ R @ S+    tris = []   # (3x3 mm, rgba)+    def walk(i, M):+        nd = g.nodes[i]; M2 = M @ mat(nd)+        if nd.mesh is not None:+            for p in g.meshes[nd.mesh].primitives:+                P = acc(p.attributes.POSITION) ; P = (M2 @ np.c_[P, np.ones(len(P))].T).T[:, :3] * 1000+                I = acc(p.indices).astype(int).reshape(-1, 3) if p.indices is not None else np.arange(len(P)).reshape(-1, 3)+                m = g.materials[p.material] if p.material is not None else None+                col = list(m.pbrMetallicRoughness.baseColorFactor) if m and m.pbrMetallicRoughness and m.pbrMetallicRoughness.baseColorFactor else [.6, .6, .6, 1]+                for t in I: tris.append((P[t], col))+        for c in nd.children or []: walk(c, M2)+    for r in g.scenes[g.scene or 0].nodes: walk(r, np.eye(4))+    fig = plt.figure(figsize=(14, 7), facecolor='#1b1e24')+    ax = fig.add_subplot(1, 2, 1); ax.set_facecolor('#2a2e36'); ax.set_aspect('equal')+    phys = [(t, c) for t, c in tris if c[3] >= 0.99]; art = [(t, c) for t, c in tris if c[3] < 0.99]+    # top view: physical first (light shading by height), artwork drawn on top so the review sees both+    zs = np.array([t[:, 2].mean() for t, _ in phys]) if phys else np.array([0])+    order = np.argsort(zs)+    ax.add_collection(PolyCollection([phys[i][0][:, :2] for i in order], facecolors=[tuple(np.array(phys[i][1][:3]) * 0.7) + (0.55,) for i in order], edgecolors='none'))+    ax.add_collection(PolyCollection([t[:, :2] for t, _ in art], facecolors=[tuple(c[:3]) + (min(1, c[3] + 0.35),) for _, c in art], edgecolors='none'))+    allp = np.vstack([t for t, _ in tris]); pad = 0.6+    ax.set_xlim(allp[:, 0].min() - pad, allp[:, 0].max() + pad); ax.set_ylim(allp[:, 1].min() - pad, allp[:, 1].max() + pad)+    ax.set_title('top (artwork over a translucent body)', color='w', fontsize=10); ax.tick_params(colors='#888')+    ax3 = fig.add_subplot(1, 2, 2, projection='3d'); ax3.set_facecolor('#2a2e36')+    ax3.add_collection3d(Poly3DCollection([t for t, _ in tris], facecolors=[tuple(c[:3]) + (c[3],) for _, c in tris], edgecolors='none'))+    rng = allp.max(0) - allp.min(0); mid = (allp.max(0) + allp.min(0)) / 2; R = rng.max() / 2+    ax3.set_xlim(mid[0] - R, mid[0] + R); ax3.set_ylim(mid[1] - R, mid[1] + R); ax3.set_zlim(mid[2] - R * 0.6, mid[2] + R * 0.6)+    ax3.view_init(elev=38, azim=-60); ax3.set_axis_off(); ax3.set_title('oblique', color='w', fontsize=10)+    fig.suptitle(os.path.basename(glb), color='w'); fig.tight_layout(); fig.savefig(png, dpi=110); plt.close(fig)+++if __name__ == '__main__':+    ap = argparse.ArgumentParser()+    ap.add_argument('glb'); ap.add_argument('kicad_mod'); ap.add_argument('page_json'); ap.add_argument('out')+    ap.add_argument('--mpn'); ap.add_argument('--png')+    a = ap.parse_args()+    h = build(a.glb, a.kicad_mod, a.page_json, a.out, a.mpn, a.png)+    L = h['layers']+    print(f"OK {a.out}: pads {L['pad_outlines']['pads']}, silk items {L['silkscreen']['footprint_items']}, "+          f"pin1 {(L['silkscreen']['pin1'] or {}).get('source', 'none')}, labels {L['signal_names']['labels']}"+          f"{' (' + L['signal_names']['omitted'] + ')' if L['signal_names']['omitted'] else ''}; "+          f"align {'OK' if h['align']['ok'] else 'FAIL'} (offset {h['align'].get('centre_offset_mm')} mm)")
provenance/tools/hero_glyphs.jsonadded+15456
@@ -0,0 +1,15456 @@+{+  "font": "DejaVu Sans Mono",+  "units": "em (font size 1)",+  "advance": 0.602,+  "glyphs": {+    " ": {+      "v": [],+      "t": []+    },+    "!": {+      "v": [+        0.25203,+        0.72906,+        0.35109,+        0.72906,+        0.35109,+        0.40922,+        0.34078,+        0.23484,+        0.26219,+        0.23484,+        0.25203,+        0.40922,+        0.25203,+        0.12406,+        0.35109,+        0.12406,+        0.35109,+        0.0,+        0.25203,+        0.0+      ],+      "t": [+        1,+        0,+        5,+        1,+        5,+        4,+        1,+        4,+        3,+        1,+        3,+        2,+        7,+        6,+        9,+        7,+        9,+        8+      ]+    },+    "\"": {+      "v": [+        0.43703,+        0.72906,+        0.43703,+        0.45797,+        0.35203,+        0.45797,+        0.35203,+        0.72906,+        0.25,+        0.72906,+        0.25,+        0.45797,+        0.165,+        0.45797,+        0.165,+        0.72906+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2,+        5,+        4,+        7,+        5,+        7,+        6+      ]+    },+    "#": {+      "v": [+        0.33406,+        0.71781,+        0.28328,+        0.51516,+        0.40281,+        0.51516,+        0.45406,+        0.71781,+        0.53219,+        0.71781,+        0.48094,+        0.51516,+        0.60016,+        0.51516,+        0.60016,+        0.44,+        0.46297,+        0.44,+        0.42188,+        0.27687,+        0.54391,+        0.27687,+        0.54391,+        0.20219,+        0.40281,+        0.20219,+        0.35203,+        0.0,+        0.27391,+        0.0,+        0.32516,+        0.20219,+        0.20516,+        0.20219,+        0.15375,+        0.0,+        0.07625,+        0.0,+        0.12703,+        0.20219,+        0.00094,+        0.20219,+        0.00094,+        0.27687,+        0.14594,+        0.27687,+        0.18703,+        0.44,+        0.05719,+        0.44,+        0.05719,+        0.51516,+        0.20516,+        0.51516,+        0.25594,+        0.71781,+        0.38484,+        0.44,+        0.26516,+        0.44,+        0.22406,+        0.27687,+        0.34422,+        0.27687+      ],+      "t": [+        22,+        30,+        29,+        31,+        21,+        20,+        31,+        20,+        19,+        19,+        18,+        17,+        19,+        17,+        16,+        15,+        14,+        13,+        15,+        13,+        12,+        12,+        11,+        10,+        12,+        10,+        9,+        12,+        9,+        8,+        8,+        7,+        6,+        8,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        1,+        0,+        27,+        1,+        27,+        26,+        26,+        25,+        24,+        26,+        24,+        23,+        23,+        22,+        29,+        31,+        19,+        16,+        31,+        16,+        15,+        31,+        15,+        12,+        31,+        12,+        8,+        31,+        8,+        5,+        1,+        26,+        23,+        1,+        23,+        29,+        1,+        29,+        28,+        28,+        31,+        5,+        28,+        5,+        2,+        28,+        2,+        1+      ]+    },+    "$": {+      "v": [+        0.33797,+        -0.14703,+        0.28906,+        -0.14703,+        0.28859,+        0.0,+        0.23895,+        0.00465,+        0.18969,+        0.01359,+        0.14094,+        0.02707,+        0.09281,+        0.045,+        0.09281,+        0.13281,+        0.14176,+        0.10605,+        0.19109,+        0.08641,+        0.24043,+        0.0741,+        0.28906,+        0.06938,+        0.28906,+        0.29297,+        0.20348,+        0.31543,+        0.14203,+        0.3525,+        0.10512,+        0.40418,+        0.09281,+        0.47016,+        0.10566,+        0.5391,+        0.14422,+        0.5925,+        0.20621,+        0.62844,+        0.28906,+        0.645,+        0.28906,+        0.75984,+        0.33797,+        0.75984,+        0.33844,+        0.645,+        0.37727,+        0.64141,+        0.41656,+        0.63531,+        0.45645,+        0.62664,+        0.49703,+        0.61531,+        0.49703,+        0.53078,+        0.45613,+        0.54934,+        0.41625,+        0.56312,+        0.37707,+        0.5723,+        0.33797,+        0.57672,+        0.33797,+        0.36625,+        0.42648,+        0.34305,+        0.49109,+        0.30375,+        0.5307,+        0.24941,+        0.54391,+        0.18109,+        0.52969,+        0.11215,+        0.48703,+        0.05563,+        0.42145,+        0.0168,+        0.33844,+        0.00094,+        0.33797,+        0.28328,+        0.33797,+        0.07125,+        0.38574,+        0.07949,+        0.42188,+        0.10109,+        0.44461,+        0.13453,+        0.45219,+        0.17828,+        0.44535,+        0.21855,+        0.42484,+        0.24875,+        0.38945,+        0.26996,+        0.28906,+        0.37594,+        0.28906,+        0.57766,+        0.24383,+        0.5693,+        0.20969,+        0.54828,+        0.18824,+        0.51633,+        0.18109,+        0.47516,+        0.18773,+        0.4375,+        0.20766,+        0.40859,+        0.24137,+        0.38824+      ],+      "t": [+        8,+        7,+        6,+        8,+        6,+        5,+        8,+        5,+        4,+        8,+        4,+        3,+        8,+        3,+        2,+        2,+        1,+        0,+        2,+        0,+        41,+        2,+        41,+        40,+        2,+        40,+        39,+        2,+        39,+        38,+        2,+        38,+        37,+        37,+        36,+        35,+        37,+        35,+        34,+        37,+        34,+        33,+        29,+        28,+        27,+        29,+        27,+        26,+        29,+        26,+        25,+        29,+        25,+        24,+        29,+        24,+        23,+        23,+        22,+        21,+        23,+        21,+        20,+        23,+        20,+        19,+        23,+        19,+        18,+        23,+        18,+        17,+        23,+        17,+        16,+        16,+        56,+        55,+        16,+        55,+        54,+        57,+        56,+        16,+        57,+        16,+        15,+        57,+        15,+        14,+        57,+        14,+        13,+        9,+        8,+        2,+        30,+        29,+        23,+        23,+        16,+        54,+        23,+        54,+        53,+        23,+        53,+        52,+        23,+        52,+        51,+        58,+        57,+        13,+        58,+        13,+        12,+        10,+        9,+        2,+        31,+        30,+        23,+        59,+        58,+        12,+        11,+        10,+        2,+        32,+        31,+        23,+        32,+        23,+        51,+        51,+        59,+        12,+        43,+        11,+        2,+        33,+        32,+        51,+        33,+        51,+        12,+        33,+        12,+        11,+        11,+        43,+        42,+        44,+        43,+        2,+        33,+        11,+        42,+        33,+        42,+        50,+        33,+        50,+        49,+        45,+        44,+        2,+        45,+        2,+        37,+        37,+        33,+        49,+        37,+        49,+        48,+        37,+        48,+        47,+        37,+        47,+        46,+        37,+        46,+        45+      ]+    },+    "%": {+      "v": [+        0.27391,+        0.15578,+        0.28512,+        0.21652,+        0.31875,+        0.26688,+        0.36887,+        0.30074,+        0.42922,+        0.31203,+        0.45965,+        0.3091,+        0.48844,+        0.30031,+        0.51516,+        0.2859,+        0.53906,+        0.26609,+        0.55898,+        0.2418,+        0.57375,+        0.21484,+        0.58289,+        0.18594,+        0.58594,+        0.15578,+        0.57457,+        0.09566,+        0.54047,+        0.04531,+        0.49,+        0.01133,+        0.42922,+        0.0,+        0.36828,+        0.01117,+        0.31828,+        0.04469,+        0.285,+        0.0948,+        0.33984,+        0.15578,+        0.34625,+        0.1207,+        0.36547,+        0.09172,+        0.39422,+        0.07238,+        0.42922,+        0.06594,+        0.46398,+        0.07246,+        0.49297,+        0.09203,+        0.51254,+        0.12102,+        0.51906,+        0.15578,+        0.51246,+        0.19059,+        0.49266,+        0.21969,+        0.46359,+        0.23949,+        0.42922,+        0.24609,+        0.39422,+        0.23961,+        0.36547,+        0.22016,+        0.34625,+        0.19117,+        0.05906,+        0.22703,+        0.04203,+        0.27391,+        0.55078,+        0.47797,+        0.57078,+        0.43109,+        0.01609,+        0.54297,+        0.0273,+        0.60371,+        0.06094,+        0.65406,+        0.11117,+        0.68793,+        0.17188,+        0.69922,+        0.20246,+        0.69629,+        0.23172,+        0.6875,+        0.25863,+        0.6732,+        0.28219,+        0.65375,+        0.30168,+        0.6302,+        0.31609,+        0.60328,+        0.32512,+        0.57391,+        0.32812,+        0.54297,+        0.31676,+        0.48258,+        0.28266,+        0.43234,+        0.2323,+        0.39848,+        0.17188,+        0.38719,+        0.11117,+        0.3984,+        0.06094,+        0.43203,+        0.0273,+        0.48227,+        0.08203,+        0.54297,+        0.08844,+        0.50762,+        0.10766,+        0.47875,+        0.13652,+        0.45953,+        0.17188,+        0.45312,+        0.20668,+        0.45965,+        0.23578,+        0.47922,+        0.25559,+        0.5082,+        0.26219,+        0.54297,+        0.25559,+        0.57773,+        0.23578,+        0.60672,+        0.20668,+        0.62629,+        0.17188,+        0.63281,+        0.13711,+        0.62633,+        0.10812,+        0.60688,+        0.08855,+        0.57801+      ],+      "t": [+        0,+        20,+        35,+        0,+        35,+        34,+        21,+        20,+        0,+        21,+        0,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        17,+        16,+        15,+        17,+        15,+        14,+        17,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        13,+        10,+        9,+        13,+        9,+        8,+        13,+        8,+        7,+        13,+        7,+        6,+        13,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        5,+        1,+        0,+        5,+        0,+        34,+        5,+        34,+        33,+        5,+        33,+        32,+        5,+        32,+        31,+        5,+        31,+        30,+        5,+        30,+        29,+        22,+        21,+        17,+        13,+        5,+        29,+        13,+        29,+        28,+        13,+        28,+        27,+        13,+        27,+        26,+        13,+        26,+        25,+        23,+        22,+        17,+        17,+        13,+        25,+        17,+        25,+        24,+        17,+        24,+        23,+        37,+        36,+        39,+        37,+        39,+        38,+        40,+        60,+        75,+        40,+        75,+        74,+        61,+        60,+        40,+        61,+        40,+        59,+        61,+        59,+        58,+        61,+        58,+        57,+        57,+        56,+        55,+        57,+        55,+        54,+        57,+        54,+        53,+        53,+        52,+        51,+        53,+        51,+        50,+        53,+        50,+        49,+        53,+        49,+        48,+        53,+        48,+        47,+        53,+        47,+        46,+        53,+        46,+        45,+        45,+        44,+        43,+        45,+        43,+        42,+        45,+        42,+        41,+        45,+        41,+        40,+        45,+        40,+        74,+        45,+        74,+        73,+        45,+        73,+        72,+        45,+        72,+        71,+        45,+        71,+        70,+        45,+        70,+        69,+        62,+        61,+        57,+        53,+        45,+        69,+        53,+        69,+        68,+        53,+        68,+        67,+        53,+        67,+        66,+        53,+        66,+        65,+        63,+        62,+        57,+        57,+        53,+        65,+        57,+        65,+        64,+        57,+        64,+        63+      ]+    },+    "&": {+      "v": [+        0.26703,+        0.44281,+        0.47016,+        0.17,+        0.48676,+        0.19707,+        0.49844,+        0.23047,+        0.50547,+        0.27059,+        0.50781,+        0.31781,+        0.50746,+        0.33809,+        0.50641,+        0.36766,+        0.50594,+        0.37109,+        0.58594,+        0.37109,+        0.58594,+        0.35203,+        0.58141,+        0.27824,+        0.56781,+        0.21406,+        0.54516,+        0.15891,+        0.51313,+        0.11188,+        0.59625,+        0.0,+        0.49219,+        0.0,+        0.45406,+        0.05328,+        0.41234,+        0.02344,+        0.36812,+        0.00234,+        0.32117,+        -0.01008,+        0.27094,+        -0.01422,+        0.17461,+        0.00219,+        0.09656,+        0.05141,+        0.045,+        0.12566,+        0.02781,+        0.21688,+        0.03621,+        0.28129,+        0.06141,+        0.34078,+        0.10371,+        0.39586,+        0.16312,+        0.44672,+        0.14191,+        0.48152,+        0.12703,+        0.51562,+        0.11824,+        0.54961,+        0.11531,+        0.58406,+        0.12742,+        0.64953,+        0.16375,+        0.69969,+        0.22133,+        0.73156,+        0.29688,+        0.74219,+        0.32867,+        0.7407,+        0.36063,+        0.73625,+        0.39316,+        0.7291,+        0.42672,+        0.71922,+        0.42672,+        0.62984,+        0.3975,+        0.64641,+        0.36734,+        0.65797,+        0.33609,+        0.66477,+        0.30328,+        0.66703,+        0.26094,+        0.66145,+        0.22859,+        0.64469,+        0.20809,+        0.61867,+        0.20125,+        0.585,+        0.20477,+        0.55543,+        0.21531,+        0.52453,+        0.23535,+        0.4884,+        0.20312,+        0.39203,+        0.16391,+        0.35535,+        0.13594,+        0.31656,+        0.1193,+        0.27555,+        0.11375,+        0.23187,+        0.12594,+        0.16453,+        0.1625,+        0.10969,+        0.21813,+        0.07324,+        0.28719,+        0.06109,+        0.30812,+        0.06254,+        0.33,+        0.06688,+        0.35227,+        0.07414,+        0.37406,+        0.08406,+        0.38605,+        0.09086,+        0.39578,+        0.09688,+        0.40418,+        0.1027,+        0.41219,+        0.10891+      ],+      "t": [+        25,+        58,+        57,+        25,+        57,+        56,+        25,+        56,+        55,+        59,+        58,+        25,+        59,+        25,+        24,+        59,+        24,+        23,+        59,+        23,+        22,+        22,+        21,+        20,+        22,+        20,+        19,+        22,+        19,+        18,+        22,+        18,+        17,+        17,+        16,+        15,+        17,+        15,+        14,+        17,+        14,+        13,+        17,+        13,+        12,+        17,+        12,+        11,+        17,+        11,+        10,+        17,+        10,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        9,+        5,+        4,+        9,+        4,+        3,+        9,+        3,+        2,+        43,+        42,+        41,+        43,+        41,+        40,+        43,+        40,+        39,+        43,+        39,+        38,+        43,+        38,+        37,+        43,+        37,+        36,+        36,+        35,+        34,+        36,+        34,+        33,+        36,+        33,+        32,+        36,+        32,+        31,+        36,+        31,+        30,+        36,+        30,+        29,+        29,+        28,+        27,+        29,+        27,+        26,+        29,+        26,+        25,+        29,+        25,+        55,+        29,+        55,+        54,+        29,+        54,+        70,+        60,+        59,+        22,+        17,+        9,+        2,+        17,+        2,+        1,+        17,+        1,+        0,+        17,+        0,+        53,+        17,+        53,+        52,+        44,+        43,+        36,+        61,+        60,+        22,+        45,+        44,+        36,+        62,+        61,+        22,+        62,+        22,+        17,+        46,+        45,+        36,+        63,+        62,+        17,+        47,+        46,+        36,+        64,+        63,+        17,+        48,+        47,+        36,+        65,+        64,+        17,+        49,+        48,+        36,+        49,+        36,+        29,+        66,+        65,+        17,+        50,+        49,+        29,+        67,+        66,+        17,+        51,+        50,+        29,+        68,+        67,+        17,+        52,+        51,+        29,+        52,+        29,+        70,+        69,+        68,+        17,+        17,+        52,+        70,+        17,+        70,+        69+      ]+    },+    "'": {+      "v": [+        0.34281,+        0.72906,+        0.34281,+        0.45797,+        0.25781,+        0.45797,+        0.25781,+        0.72906+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "(": {+      "v": [+        0.43219,+        0.75875,+        0.37543,+        0.64766,+        0.33516,+        0.53687,+        0.31125,+        0.42582,+        0.30328,+        0.31391,+        0.31125,+        0.20238,+        0.33516,+        0.09125,+        0.37543,+        -0.01992,+        0.43219,+        -0.13187,+        0.35406,+        -0.13187,+        0.28969,+        -0.01719,+        0.24406,+        0.09438,+        0.21699,+        0.20434,+        0.20797,+        0.31391,+        0.21699,+        0.42316,+        0.24406,+        0.53312,+        0.28969,+        0.64477,+        0.35406,+        0.75875+      ],+      "t": [+        1,+        0,+        17,+        1,+        17,+        16,+        1,+        16,+        15,+        1,+        15,+        14,+        1,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        13,+        10,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        2,+        1,+        13,+        13,+        9,+        5,+        13,+        5,+        4,+        13,+        4,+        3,+        13,+        3,+        2+      ]+    },+    ")": {+      "v": [+        0.17,+        0.75875,+        0.24813,+        0.75875,+        0.31234,+        0.64477,+        0.35781,+        0.53312,+        0.385,+        0.42316,+        0.39406,+        0.31391,+        0.385,+        0.20395,+        0.35781,+        0.09375,+        0.31234,+        -0.01781,+        0.24813,+        -0.13187,+        0.17,+        -0.13187,+        0.22664,+        -0.01922,+        0.26688,+        0.09219,+        0.2909,+        0.20309,+        0.29891,+        0.31391,+        0.2909,+        0.42516,+        0.26688,+        0.53609,+        0.22664,+        0.64723+      ],+      "t": [+        1,+        0,+        17,+        1,+        17,+        16,+        1,+        16,+        15,+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        11,+        7,+        6,+        11,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        5,+        1,+        15,+        5,+        15,+        14,+        5,+        14,+        13,+        5,+        13,+        12,+        5,+        12,+        11+      ]+    },+    "*": {+      "v": [+        0.52094,+        0.60891,+        0.34625,+        0.51422,+        0.52094,+        0.41891,+        0.49313,+        0.37109,+        0.32906,+        0.47016,+        0.32906,+        0.28609,+        0.27297,+        0.28609,+        0.27297,+        0.47016,+        0.10891,+        0.37109,+        0.08109,+        0.41891,+        0.25594,+        0.51422,+        0.08109,+        0.60891,+        0.10891,+        0.65719,+        0.27297,+        0.55812,+        0.27297,+        0.74219,+        0.32906,+        0.74219,+        0.32906,+        0.55812,+        0.49313,+        0.65719+      ],+      "t": [+        1,+        0,+        17,+        1,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        10,+        9,+        8,+        10,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        4,+        3,+        2,+        4,+        2,+        1,+        4,+        1,+        16,+        4,+        16,+        13,+        4,+        13,+        10,+        4,+        10,+        7+      ]+    },+    "+": {+      "v": [+        0.34187,+        0.57172,+        0.34187,+        0.355,+        0.55906,+        0.355,+        0.55906,+        0.27203,+        0.34187,+        0.27203,+        0.34187,+        0.05516,+        0.25984,+        0.05516,+        0.25984,+        0.27203,+        0.04297,+        0.27203,+        0.04297,+        0.355,+        0.25984,+        0.355,+        0.25984,+        0.57172+      ],+      "t": [+        1,+        0,+        11,+        1,+        11,+        10,+        10,+        9,+        8,+        10,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        4,+        3,+        2,+        4,+        2,+        1,+        4,+        1,+        10,+        4,+        10,+        7+      ]+    },+    ",": {+      "v": [+        0.24516,+        0.14797,+        0.36812,+        0.14797,+        0.36812,+        0.04688,+        0.27203,+        -0.14016,+        0.19672,+        -0.14016,+        0.24516,+        0.04688+      ],+      "t": [+        1,+        0,+        5,+        1,+        5,+        4,+        1,+        4,+        3,+        1,+        3,+        2+      ]+    },+    "-": {+      "v": [+        0.17391,+        0.31391,+        0.42828,+        0.31391,+        0.42828,+        0.23391,+        0.17391,+        0.23391+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    ".": {+      "v": [+        0.23875,+        0.14891,+        0.36188,+        0.14891,+        0.36188,+        0.0,+        0.23875,+        0.0+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "/": {+      "v": [+        0.43406,+        0.72906,+        0.52687,+        0.72906,+        0.14313,+        -0.09281,+        0.04984,+        -0.09281+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "0": {+      "v": [+        0.23578,+        0.36625,+        0.24047,+        0.39129,+        0.25453,+        0.41266,+        0.27531,+        0.4273,+        0.29984,+        0.43219,+        0.32523,+        0.4273,+        0.34672,+        0.41266,+        0.36137,+        0.39129,+        0.36625,+        0.36625,+        0.36141,+        0.34098,+        0.34687,+        0.31984,+        0.32551,+        0.30555,+        0.29984,+        0.30078,+        0.27473,+        0.30543,+        0.25406,+        0.31938,+        0.24035,+        0.34039,+        0.30078,+        0.74219,+        0.40328,+        0.71824,+        0.47734,+        0.64641,+        0.52223,+        0.52793,+        0.53719,+        0.36375,+        0.52223,+        0.19988,+        0.47734,+        0.08141,+        0.40328,+        0.00969,+        0.30078,+        -0.01422,+        0.19836,+        0.00969,+        0.12453,+        0.08141,+        0.07988,+        0.19988,+        0.065,+        0.36375,+        0.07988,+        0.52793,+        0.12453,+        0.64641,+        0.19836,+        0.71824,+        0.30078,+        0.66406,+        0.24063,+        0.64551,+        0.19797,+        0.58984,+        0.17254,+        0.49621,+        0.16406,+        0.36375,+        0.17254,+        0.23164,+        0.19797,+        0.13812,+        0.24063,+        0.08246,+        0.30078,+        0.06391,+        0.36129,+        0.08246,+        0.40406,+        0.13812,+        0.42949,+        0.23164,+        0.43797,+        0.36375,+        0.42949,+        0.49621,+        0.40406,+        0.58984,+        0.36129,+        0.64551+      ],+      "t": [+        1,+        0,+        15,+        1,+        15,+        14,+        1,+        14,+        13,+        1,+        13,+        12,+        1,+        12,+        11,+        1,+        11,+        10,+        1,+        10,+        9,+        1,+        9,+        8,+        1,+        8,+        7,+        1,+        7,+        6,+        1,+        6,+        5,+        1,+        5,+        4,+        1,+        4,+        3,+        1,+        3,+        2,+        28,+        36,+        35,+        28,+        35,+        34,+        37,+        36,+        28,+        37,+        28,+        27,+        37,+        27,+        26,+        37,+        26,+        25,+        25,+        24,+        23,+        25,+        23,+        22,+        22,+        21,+        20,+        22,+        20,+        19,+        22,+        19,+        18,+        18,+        17,+        16,+        18,+        16,+        31,+        31,+        30,+        29,+        31,+        29,+        28,+        31,+        28,+        34,+        31,+        34,+        33,+        31,+        33,+        32,+        31,+        32,+        47,+        38,+        37,+        25,+        18,+        31,+        47,+        18,+        47,+        46,+        18,+        46,+        45,+        18,+        45,+        44,+        18,+        44,+        43,+        39,+        38,+        25,+        22,+        18,+        43,+        22,+        43,+        42,+        22,+        42,+        41,+        22,+        41,+        40,+        40,+        39,+        25,+        40,+        25,+        22+      ]+    },+    "1": {+      "v": [+        0.13187,+        0.08297,+        0.28516,+        0.08297,+        0.28516,+        0.64016,+        0.12016,+        0.60297,+        0.12016,+        0.69281,+        0.28422,+        0.72906,+        0.38281,+        0.72906,+        0.38281,+        0.08297,+        0.53422,+        0.08297,+        0.53422,+        0.0,+        0.13187,+        0.0+      ],+      "t": [+        1,+        0,+        10,+        1,+        10,+        9,+        9,+        8,+        7,+        7,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        1,+        9,+        7,+        7,+        5,+        2,+        7,+        2,+        1+      ]+    },+    "2": {+      "v": [+        0.18219,+        0.08297,+        0.51703,+        0.08297,+        0.51703,+        0.0,+        0.07422,+        0.0,+        0.07422,+        0.08297,+        0.15973,+        0.17359,+        0.23375,+        0.25297,+        0.29156,+        0.31582,+        0.32812,+        0.35687,+        0.36906,+        0.41086,+        0.39406,+        0.45344,+        0.40684,+        0.4907,+        0.41109,+        0.52875,+        0.40211,+        0.58324,+        0.37516,+        0.62453,+        0.3327,+        0.65055,+        0.27687,+        0.65922,+        0.23137,+        0.6552,+        0.18359,+        0.64313,+        0.13336,+        0.62285,+        0.08016,+        0.59422,+        0.08016,+        0.69391,+        0.12992,+        0.71488,+        0.17891,+        0.73,+        0.22719,+        0.73914,+        0.27484,+        0.74219,+        0.37141,+        0.72797,+        0.44703,+        0.68531,+        0.4959,+        0.61957,+        0.51219,+        0.53609,+        0.50676,+        0.48922,+        0.49047,+        0.44234,+        0.46199,+        0.39305,+        0.42,+        0.33891,+        0.38648,+        0.30105,+        0.34063,+        0.25094,+        0.275,+        0.1809+      ],+      "t": [+        0,+        36,+        35,+        0,+        35,+        34,+        0,+        34,+        33,+        0,+        33,+        32,+        0,+        32,+        31,+        0,+        31,+        30,+        0,+        30,+        29,+        0,+        29,+        28,+        28,+        27,+        26,+        28,+        26,+        25,+        28,+        25,+        24,+        28,+        24,+        23,+        28,+        23,+        22,+        22,+        21,+        20,+        22,+        20,+        19,+        22,+        19,+        18,+        22,+        18,+        17,+        22,+        17,+        16,+        22,+        16,+        15,+        5,+        4,+        3,+        3,+        2,+        1,+        3,+        1,+        0,+        28,+        22,+        15,+        28,+        15,+        14,+        28,+        14,+        13,+        28,+        13,+        12,+        28,+        12,+        11,+        28,+        11,+        10,+        28,+        10,+        9,+        6,+        5,+        3,+        6,+        3,+        0,+        0,+        28,+        9,+        0,+        9,+        8,+        0,+        8,+        7,+        0,+        7,+        6+      ]+    },+    "3": {+      "v": [+        0.37891,+        0.39016,+        0.44223,+        0.36371,+        0.48875,+        0.3225,+        0.51734,+        0.26789,+        0.52687,+        0.20125,+        0.50996,+        0.11141,+        0.45922,+        0.04313,+        0.37859,+        0.00012,+        0.27203,+        -0.01422,+        0.22121,+        -0.01188,+        0.16937,+        -0.00484,+        0.11766,+        0.00648,+        0.06688,+        0.02203,+        0.06688,+        0.12016,+        0.11633,+        0.09754,+        0.165,+        0.08156,+        0.21328,+        0.07207,+        0.26125,+        0.06891,+        0.33293,+        0.07805,+        0.38578,+        0.10547,+        0.41836,+        0.15012,+        0.42922,+        0.21094,+        0.41836,+        0.26785,+        0.38578,+        0.31172,+        0.33465,+        0.33973,+        0.26813,+        0.34906,+        0.19281,+        0.34906,+        0.19281,+        0.43016,+        0.26813,+        0.43016,+        0.32852,+        0.43758,+        0.37406,+        0.45984,+        0.40266,+        0.49555,+        0.41219,+        0.54297,+        0.40332,+        0.59254,+        0.37672,+        0.62906,+        0.33379,+        0.65168,+        0.27594,+        0.65922,+        0.23176,+        0.65676,+        0.18609,+        0.64938,+        0.13859,+        0.63723,+        0.08891,+        0.62016,+        0.08891,+        0.71094,+        0.14473,+        0.72461,+        0.19406,+        0.73438,+        0.23766,+        0.74023,+        0.27594,+        0.74219,+        0.37168,+        0.72883,+        0.44609,+        0.68875,+        0.49391,+        0.62656,+        0.50984,+        0.54688,+        0.50145,+        0.49184,+        0.47625,+        0.44672,+        0.4352,+        0.41258+      ],+      "t": [+        0,+        52,+        51,+        0,+        51,+        50,+        0,+        50,+        49,+        0,+        49,+        48,+        48,+        47,+        46,+        48,+        46,+        45,+        48,+        45,+        44,+        48,+        44,+        43,+        48,+        43,+        42,+        48,+        42,+        41,+        41,+        40,+        39,+        41,+        39,+        38,+        41,+        38,+        37,+        41,+        37,+        36,+        41,+        36,+        35,+        28,+        27,+        26,+        28,+        26,+        25,+        28,+        25,+        24,+        28,+        24,+        23,+        14,+        13,+        12,+        14,+        12,+        11,+        14,+        11,+        10,+        14,+        10,+        9,+        14,+        9,+        8,+        14,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        7,+        3,+        2,+        2,+        1,+        0,+        48,+        41,+        35,+        48,+        35,+        34,+        48,+        34,+        33,+        48,+        33,+        32,+        48,+        32,+        31,+        29,+        28,+        23,+        29,+        23,+        22,+        15,+        14,+        7,+        0,+        48,+        31,+        0,+        31,+        30,+        0,+        30,+        29,+        0,+        29,+        22,+        16,+        15,+        7,+        2,+        0,+        22,+        2,+        22,+        21,+        2,+        21,+        20,+        17,+        16,+        7,+        7,+        2,+        20,+        7,+        20,+        19,+        7,+        19,+        18,+        7,+        18,+        17+      ]+    },+    "4": {+      "v": [+        0.34281,+        0.72906,+        0.45703,+        0.72906,+        0.45703,+        0.25391,+        0.55422,+        0.25391,+        0.55422,+        0.17391,+        0.45703,+        0.17391,+        0.45703,+        0.0,+        0.35891,+        0.0,+        0.35891,+        0.17391,+        0.04984,+        0.17391,+        0.04984,+        0.26703,+        0.35891,+        0.63922,+        0.12891,+        0.25391,+        0.35891,+        0.25391+      ],+      "t": [+        9,+        12,+        11,+        13,+        12,+        9,+        13,+        9,+        8,+        8,+        7,+        6,+        8,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        2,+        1,+        0,+        0,+        10,+        9,+        0,+        9,+        11,+        13,+        8,+        5,+        13,+        5,+        2,+        2,+        0,+        11,+        2,+        11,+        13+      ]+    },+    "5": {+      "v": [+        0.10109,+        0.72906,+        0.47016,+        0.72906,+        0.47016,+        0.64594,+        0.19094,+        0.64594,+        0.19094,+        0.46687,+        0.21195,+        0.47363,+        0.23312,+        0.47828,+        0.25445,+        0.48098,+        0.27594,+        0.48187,+        0.3775,+        0.46516,+        0.45563,+        0.415,+        0.50543,+        0.33629,+        0.52203,+        0.23391,+        0.50461,+        0.13082,+        0.45234,+        0.05219,+        0.37004,+        0.00238,+        0.26219,+        -0.01422,+        0.20656,+        -0.01227,+        0.15594,+        -0.00641,+        0.11043,+        0.00336,+        0.06984,+        0.01703,+        0.06984,+        0.11719,+        0.11484,+        0.0959,+        0.16016,+        0.08078,+        0.20609,+        0.07187,+        0.25297,+        0.06891,+        0.32516,+        0.07965,+        0.37859,+        0.11188,+        0.41176,+        0.16387,+        0.42281,+        0.23391,+        0.41141,+        0.30336,+        0.37719,+        0.35547,+        0.32258,+        0.38805,+        0.25,+        0.39891,+        0.21094,+        0.39664,+        0.17281,+        0.38984,+        0.13613,+        0.37863,+        0.10109,+        0.36281+      ],+      "t": [+        0,+        37,+        36,+        0,+        36,+        35,+        0,+        35,+        34,+        22,+        21,+        20,+        22,+        20,+        19,+        22,+        19,+        18,+        22,+        18,+        17,+        22,+        17,+        16,+        22,+        16,+        15,+        15,+        14,+        13,+        15,+        13,+        12,+        15,+        12,+        11,+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        11,+        7,+        6,+        11,+        6,+        5,+        11,+        5,+        4,+        3,+        2,+        1,+        3,+        1,+        0,+        23,+        22,+        15,+        4,+        3,+        0,+        4,+        0,+        34,+        4,+        34,+        33,+        4,+        33,+        32,+        4,+        32,+        31,+        24,+        23,+        15,+        11,+        4,+        31,+        11,+        31,+        30,+        11,+        30,+        29,+        11,+        29,+        28,+        25,+        24,+        15,+        15,+        11,+        28,+        15,+        28,+        27,+        15,+        27,+        26,+        15,+        26,+        25+      ]+    },+    "6": {+      "v": [+        0.48391,+        0.71297,+        0.48391,+        0.62203,+        0.45215,+        0.63801,+        0.41844,+        0.64969,+        0.38305,+        0.65684,+        0.34625,+        0.65922,+        0.26383,+        0.64156,+        0.20406,+        0.58859,+        0.16785,+        0.50145,+        0.15578,+        0.38094,+        0.18371,+        0.42402,+        0.22063,+        0.45578,+        0.26523,+        0.47535,+        0.31594,+        0.48187,+        0.40949,+        0.4657,+        0.47922,+        0.41719,+        0.5227,+        0.33902,+        0.53719,+        0.23391,+        0.52227,+        0.12906,+        0.4775,+        0.05078,+        0.40586,+        0.00203,+        0.31,+        -0.01422,+        0.20008,+        0.00855,+        0.12406,+        0.07687,+        0.07977,+        0.19414,+        0.065,+        0.36375,+        0.08273,+        0.52637,+        0.13594,+        0.64516,+        0.22297,+        0.71793,+        0.34187,+        0.74219,+        0.37797,+        0.74027,+        0.41406,+        0.73453,+        0.44957,+        0.72539,+        0.30812,+        0.40484,+        0.25184,+        0.39348,+        0.20891,+        0.35938,+        0.18184,+        0.30527,+        0.17281,+        0.23391,+        0.18184,+        0.16242,+        0.20891,+        0.10828,+        0.25184,+        0.0743,+        0.30812,+        0.06297,+        0.36551,+        0.07375,+        0.40672,+        0.10609,+        0.43168,+        0.15969,+        0.44,+        0.23391,+        0.43168,+        0.3084,+        0.40672,+        0.36188,+        0.36551,+        0.3941+      ],+      "t": [+        25,+        37,+        36,+        25,+        36,+        35,+        25,+        35,+        34,+        25,+        34,+        33,+        38,+        37,+        25,+        38,+        25,+        24,+        38,+        24,+        23,+        38,+        23,+        22,+        22,+        21,+        20,+        22,+        20,+        19,+        22,+        19,+        18,+        18,+        17,+        16,+        18,+        16,+        15,+        18,+        15,+        14,+        14,+        13,+        12,+        14,+        12,+        11,+        14,+        11,+        10,+        14,+        10,+        9,+        2,+        1,+        0,+        2,+        0,+        32,+        2,+        32,+        31,+        2,+        31,+        30,+        2,+        30,+        29,+        2,+        29,+        28,+        28,+        27,+        26,+        28,+        26,+        25,+        39,+        38,+        22,+        3,+        2,+        28,+        40,+        39,+        22,+        4,+        3,+        28,+        41,+        40,+        22,+        5,+        4,+        28,+        42,+        41,+        22,+        42,+        22,+        18,+        6,+        5,+        28,+        43,+        42,+        18,+        7,+        6,+        28,+        7,+        28,+        25,+        44,+        43,+        18,+        8,+        7,+        25,+        45,+        44,+        18,+        9,+        8,+        25,+        9,+        25,+        33,+        46,+        45,+        18,+        46,+        18,+        14,+        14,+        9,+        33,+        14,+        33,+        48,+        14,+        48,+        47,+        14,+        47,+        46+      ]+    },+    "7": {+      "v": [+        0.06781,+        0.72906,+        0.52687,+        0.72906,+        0.52687,+        0.68703,+        0.26609,+        0.0,+        0.16312,+        0.0,+        0.41703,+        0.64594,+        0.06781,+        0.64594+      ],+      "t": [+        1,+        0,+        6,+        1,+        6,+        5,+        1,+        5,+        4,+        1,+        4,+        3,+        1,+        3,+        2+      ]+    },+    "8": {+      "v": [+        0.21484,+        0.38719,+        0.15875,+        0.41023,+        0.11641,+        0.44719,+        0.08992,+        0.49574,+        0.08109,+        0.55328,+        0.09586,+        0.63117,+        0.14016,+        0.69109,+        0.20984,+        0.72941,+        0.30078,+        0.74219,+        0.39207,+        0.72941,+        0.46188,+        0.69109,+        0.50617,+        0.63117,+        0.52094,+        0.55328,+        0.51207,+        0.49574,+        0.48547,+        0.44719,+        0.44324,+        0.41023,+        0.38719,+        0.38719,+        0.45184,+        0.36289,+        0.49922,+        0.32219,+        0.5284,+        0.26621,+        0.53812,+        0.19578,+        0.52238,+        0.10789,+        0.47516,+        0.04141,+        0.40008,+        -0.00031,+        0.30078,+        -0.01422,+        0.20164,+        -0.00035,+        0.12672,+        0.04125,+        0.07961,+        0.10738,+        0.06391,+        0.19484,+        0.07359,+        0.2657,+        0.10266,+        0.32203,+        0.15016,+        0.36285,+        0.30078,+        0.34625,+        0.24234,+        0.33703,+        0.19891,+        0.30938,+        0.17207,+        0.26488,+        0.16312,+        0.20516,+        0.17219,+        0.1452,+        0.19937,+        0.10031,+        0.24293,+        0.0723,+        0.30078,+        0.06297,+        0.35953,+        0.07219,+        0.40297,+        0.09984,+        0.42992,+        0.14461,+        0.43891,+        0.20516,+        0.4298,+        0.26457,+        0.4025,+        0.30906,+        0.35895,+        0.33695,+        0.17922,+        0.54391,+        0.18703,+        0.49227,+        0.21047,+        0.45453,+        0.24867,+        0.43156,+        0.30078,+        0.42391,+        0.35324,+        0.43156,+        0.39156,+        0.45453,+        0.415,+        0.49227,+        0.42281,+        0.54391,+        0.41504,+        0.59648,+        0.39172,+        0.63484,+        0.35352,+        0.65828,+        0.30078,+        0.66609,+        0.24867,+        0.6582,+        0.21047,+        0.63453,+        0.18703,+        0.59609+      ],+      "t": [+        4,+        48,+        63,+        4,+        63,+        62,+        49,+        48,+        4,+        49,+        4,+        3,+        49,+        3,+        2,+        49,+        2,+        1,+        49,+        1,+        0,+        0,+        31,+        30,+        0,+        30,+        29,+        0,+        29,+        28,+        28,+        36,+        35,+        28,+        35,+        34,+        37,+        36,+        28,+        37,+        28,+        27,+        37,+        27,+        26,+        37,+        26,+        25,+        25,+        24,+        23,+        25,+        23,+        22,+        25,+        22,+        21,+        21,+        20,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        21,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        16,+        13,+        12,+        16,+        12,+        11,+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        62,+        7,+        62,+        61,+        7,+        61,+        60,+        7,+        60,+        59,+        50,+        49,+        0,+        0,+        28,+        34,+        0,+        34,+        33,+        0,+        33,+        32,+        0,+        32,+        47,+        38,+        37,+        25,+        11,+        7,+        59,+        11,+        59,+        58,+        11,+        58,+        57,+        11,+        57,+        56,+        11,+        56,+        55,+        11,+        55,+        54,+        51,+        50,+        0,+        51,+        0,+        47,+        51,+        47,+        46,+        39,+        38,+        25,+        16,+        11,+        54,+        16,+        54,+        53,+        16,+        53,+        52,+        16,+        52,+        51,+        16,+        51,+        46,+        16,+        46,+        45,+        40,+        39,+        25,+        21,+        16,+        45,+        21,+        45,+        44,+        21,+        44,+        43,+        21,+        43,+        42,+        21,+        42,+        41,+        41,+        40,+        25,+        41,+        25,+        21+      ]+    },+    "9": {+      "v": [+        0.11531,+        0.01516,+        0.11531,+        0.10594,+        0.14695,+        0.09008,+        0.18063,+        0.07844,+        0.21605,+        0.07129,+        0.25297,+        0.06891,+        0.33527,+        0.08652,+        0.39469,+        0.13937,+        0.43078,+        0.22664,+        0.44281,+        0.34719,+        0.41531,+        0.30398,+        0.37844,+        0.27219,+        0.33387,+        0.25262,+        0.28328,+        0.24609,+        0.18969,+        0.2623,+        0.11984,+        0.31094,+        0.07648,+        0.38949,+        0.06203,+        0.49516,+        0.07684,+        0.59957,+        0.12125,+        0.6775,+        0.19289,+        0.72602,+        0.28906,+        0.74219,+        0.3991,+        0.71934,+        0.47516,+        0.65078,+        0.51945,+        0.5334,+        0.53422,+        0.36375,+        0.51645,+        0.20145,+        0.46313,+        0.08266,+        0.37602,+        0.01,+        0.25688,+        -0.01422,+        0.22109,+        -0.0123,+        0.185,+        -0.00656,+        0.14953,+        0.00262,+        0.29109,+        0.32328,+        0.34727,+        0.33461,+        0.38984,+        0.36859,+        0.4168,+        0.42273,+        0.42578,+        0.49422,+        0.4168,+        0.56555,+        0.38984,+        0.61953,+        0.34727,+        0.65363,+        0.29109,+        0.665,+        0.23367,+        0.65418,+        0.19234,+        0.62172,+        0.1675,+        0.56828,+        0.15922,+        0.49422,+        0.16746,+        0.41973,+        0.19219,+        0.36625,+        0.2334,+        0.33402+      ],+      "t": [+        17,+        45,+        44,+        17,+        44,+        43,+        46,+        45,+        17,+        46,+        17,+        16,+        46,+        16,+        15,+        46,+        15,+        14,+        14,+        13,+        12,+        14,+        12,+        11,+        14,+        11,+        10,+        14,+        10,+        9,+        2,+        1,+        0,+        2,+        0,+        32,+        2,+        32,+        31,+        2,+        31,+        30,+        2,+        30,+        29,+        2,+        29,+        28,+        28,+        27,+        26,+        28,+        26,+        25,+        28,+        25,+        24,+        24,+        23,+        22,+        24,+        22,+        21,+        21,+        20,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        21,+        17,+        43,+        21,+        43,+        42,+        21,+        42,+        41,+        21,+        41,+        40,+        21,+        40,+        39,+        47,+        46,+        14,+        3,+        2,+        28,+        24,+        21,+        39,+        24,+        39,+        38,+        24,+        38,+        37,+        24,+        37,+        36,+        24,+        36,+        35,+        48,+        47,+        14,+        4,+        3,+        28,+        33,+        48,+        14,+        33,+        14,+        9,+        5,+        4,+        28,+        34,+        33,+        9,+        6,+        5,+        28,+        35,+        34,+        9,+        7,+        6,+        28,+        24,+        35,+        9,+        24,+        9,+        8,+        8,+        7,+        28,+        8,+        28,+        24+      ]+    },+    ":": {+      "v": [+        0.23875,+        0.51906,+        0.36188,+        0.51906,+        0.36188,+        0.37109,+        0.23875,+        0.37109,+        0.23875,+        0.14891,+        0.36188,+        0.14891,+        0.36188,+        0.0,+        0.23875,+        0.0+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2,+        5,+        4,+        7,+        5,+        7,+        6+      ]+    },+    ";": {+      "v": [+        0.24516,+        0.14797,+        0.36812,+        0.14797,+        0.36812,+        0.04688,+        0.27203,+        -0.14016,+        0.19672,+        -0.14016,+        0.24516,+        0.04688,+        0.23875,+        0.51906,+        0.36188,+        0.51906,+        0.36188,+        0.37109,+        0.23875,+        0.37109+      ],+      "t": [+        1,+        0,+        5,+        1,+        5,+        4,+        1,+        4,+        3,+        1,+        3,+        2,+        7,+        6,+        9,+        7,+        9,+        8+      ]+    },+    "<": {+      "v": [+        0.55906,+        0.46922,+        0.14406,+        0.31297,+        0.55906,+        0.15828,+        0.55906,+        0.06891,+        0.04297,+        0.27297,+        0.04297,+        0.35406,+        0.55906,+        0.55812+      ],+      "t": [+        1,+        0,+        6,+        1,+        6,+        5,+        1,+        5,+        4,+        1,+        4,+        3,+        1,+        3,+        2+      ]+    },+    "=": {+      "v": [+        0.04297,+        0.25594,+        0.55906,+        0.25594,+        0.55906,+        0.17188,+        0.04297,+        0.17188,+        0.04297,+        0.45406,+        0.55906,+        0.45406,+        0.55906,+        0.37109,+        0.04297,+        0.37109+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2,+        5,+        4,+        7,+        5,+        7,+        6+      ]+    },+    ">": {+      "v": [+        0.04297,+        0.46922,+        0.04297,+        0.55812,+        0.55906,+        0.35406,+        0.55906,+        0.27297,+        0.04297,+        0.06891,+        0.04297,+        0.15828,+        0.45797,+        0.31297+      ],+      "t": [+        1,+        0,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        6,+        2,+        1+      ]+    },+    "?": {+      "v": [+        0.33406,+        0.19578,+        0.24125,+        0.19578,+        0.24125,+        0.27094,+        0.24496,+        0.31527,+        0.25609,+        0.35234,+        0.2775,+        0.38742,+        0.31203,+        0.42578,+        0.35594,+        0.46922,+        0.38152,+        0.49625,+        0.39766,+        0.51953,+        0.40633,+        0.54168,+        0.40922,+        0.565,+        0.40121,+        0.6043,+        0.37719,+        0.63531,+        0.33988,+        0.65547,+        0.29203,+        0.66219,+        0.25258,+        0.65797,+        0.21047,+        0.64531,+        0.16594,+        0.62434,+        0.11922,+        0.59516,+        0.11922,+        0.68703,+        0.1652,+        0.71129,+        0.21156,+        0.72844,+        0.2593,+        0.73875,+        0.30906,+        0.74219,+        0.39062,+        0.73047,+        0.45375,+        0.69531,+        0.4943,+        0.64051,+        0.50781,+        0.56984,+        0.50371,+        0.53395,+        0.49141,+        0.50062,+        0.46773,+        0.46551,+        0.42922,+        0.42391,+        0.38625,+        0.38188,+        0.35863,+        0.35258,+        0.34328,+        0.32906,+        0.33637,+        0.30625,+        0.33406,+        0.27875,+        0.33406,+        0.25594,+        0.23781,+        0.12406,+        0.33687,+        0.12406,+        0.33687,+        0.0,+        0.23781,+        0.0+      ],+      "t": [+        1,+        0,+        38,+        1,+        38,+        37,+        1,+        37,+        36,+        1,+        36,+        35,+        1,+        35,+        34,+        33,+        32,+        31,+        33,+        31,+        30,+        33,+        30,+        29,+        33,+        29,+        28,+        33,+        28,+        27,+        33,+        27,+        26,+        26,+        25,+        24,+        26,+        24,+        23,+        26,+        23,+        22,+        26,+        22,+        21,+        26,+        21,+        20,+        20,+        19,+        18,+        20,+        18,+        17,+        20,+        17,+        16,+        20,+        16,+        15,+        20,+        15,+        14,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        7,+        3,+        2,+        7,+        2,+        1,+        7,+        1,+        34,+        7,+        34,+        33,+        26,+        20,+        14,+        26,+        14,+        13,+        26,+        13,+        12,+        26,+        12,+        11,+        26,+        11,+        10,+        8,+        7,+        33,+        33,+        26,+        10,+        33,+        10,+        9,+        33,+        9,+        8,+        40,+        39,+        42,+        40,+        42,+        41+      ]+    },+    "@": {+      "v": [+        0.57516,+        0.06594,+        0.50484,+        0.06594,+        0.50484,+        0.12016,+        0.48336,+        0.09289,+        0.45484,+        0.07266,+        0.42082,+        0.06023,+        0.38281,+        0.05609,+        0.31098,+        0.07086,+        0.25266,+        0.11516,+        0.2141,+        0.1825,+        0.20125,+        0.26609,+        0.2141,+        0.34977,+        0.25266,+        0.41703,+        0.31098,+        0.46133,+        0.38281,+        0.47609,+        0.42027,+        0.4718,+        0.45453,+        0.45891,+        0.48352,+        0.43871,+        0.50484,+        0.41219,+        0.50484,+        0.44281,+        0.4941,+        0.5116,+        0.46188,+        0.56547,+        0.41195,+        0.60027,+        0.34813,+        0.61188,+        0.24023,+        0.58848,+        0.15688,+        0.51828,+        0.10367,+        0.40828,+        0.08594,+        0.26516,+        0.10605,+        0.12086,+        0.16641,+        0.00922,+        0.26035,+        -0.06215,+        0.38094,+        -0.08594,+        0.40723,+        -0.08473,+        0.43359,+        -0.08109,+        0.46035,+        -0.07488,+        0.48781,+        -0.06594,+        0.51125,+        -0.13187,+        0.48066,+        -0.14246,+        0.45047,+        -0.14984,+        0.42086,+        -0.1543,+        0.39203,+        -0.15578,+        0.23578,+        -0.12734,+        0.11547,+        -0.04203,+        0.03871,+        0.09164,+        0.01312,+        0.26516,+        0.03605,+        0.43617,+        0.10484,+        0.56828,+        0.21234,+        0.65289,+        0.35109,+        0.68109,+        0.44285,+        0.66484,+        0.51406,+        0.61609,+        0.55988,+        0.54012,+        0.57516,+        0.44188,+        0.50687,+        0.26609,+        0.49906,+        0.32277,+        0.47563,+        0.36688,+        0.4391,+        0.39535,+        0.39203,+        0.40484,+        0.345,+        0.39535,+        0.30828,+        0.36688,+        0.28473,+        0.32277,+        0.27687,+        0.26609,+        0.28473,+        0.20906,+        0.30828,+        0.16484,+        0.345,+        0.13648,+        0.39203,+        0.12703,+        0.4391,+        0.13648,+        0.47563,+        0.16484,+        0.49906,+        0.20906+      ],+      "t": [+        10,+        61,+        60,+        10,+        60,+        59,+        62,+        61,+        10,+        62,+        10,+        9,+        62,+        9,+        8,+        62,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        7,+        3,+        2,+        2,+        1,+        0,+        2,+        0,+        52,+        2,+        52,+        51,+        2,+        51,+        50,+        50,+        49,+        48,+        50,+        48,+        47,+        47,+        46,+        45,+        47,+        45,+        44,+        44,+        43,+        42,+        44,+        42,+        41,+        41,+        40,+        39,+        41,+        39,+        38,+        41,+        38,+        37,+        41,+        37,+        36,+        36,+        35,+        34,+        36,+        34,+        33,+        36,+        33,+        32,+        36,+        32,+        31,+        36,+        31,+        30,+        18,+        17,+        16,+        18,+        16,+        15,+        18,+        15,+        14,+        18,+        14,+        13,+        18,+        13,+        12,+        12,+        11,+        10,+        12,+        10,+        59,+        12,+        59,+        58,+        12,+        58,+        57,+        63,+        62,+        7,+        41,+        36,+        30,+        41,+        30,+        29,+        41,+        29,+        28,+        18,+        12,+        57,+        18,+        57,+        56,+        18,+        56,+        55,+        18,+        55,+        54,+        18,+        54,+        53,+        64,+        63,+        7,+        44,+        41,+        28,+        44,+        28,+        27,+        44,+        27,+        26,+        44,+        26,+        25,+        19,+        18,+        53,+        65,+        64,+        7,+        65,+        7,+        2,+        47,+        44,+        25,+        47,+        25,+        24,+        47,+        24,+        23,+        47,+        23,+        22,+        66,+        65,+        2,+        50,+        47,+        22,+        50,+        22,+        21,+        50,+        21,+        20,+        50,+        20,+        19,+        50,+        19,+        53,+        67,+        66,+        2,+        2,+        50,+        53,+        2,+        53,+        68,+        2,+        68,+        67+      ]+    },+    "A": {+      "v": [+        0.24125,+        0.72906,+        0.36078,+        0.72906,+        0.58406,+        0.0,+        0.48187,+        0.0,+        0.42828,+        0.19,+        0.17281,+        0.19,+        0.12016,+        0.0,+        0.01812,+        0.0,+        0.30078,+        0.64203,+        0.19672,+        0.26906,+        0.40484,+        0.26906+      ],+      "t": [+        7,+        9,+        8,+        7,+        6,+        5,+        4,+        3,+        2,+        4,+        2,+        1,+        0,+        7,+        8,+        9,+        7,+        5,+        9,+        5,+        4,+        1,+        0,+        8,+        1,+        8,+        10,+        10,+        9,+        4,+        10,+        4,+        1+      ]+    },+    "B": {+      "v": [+        0.08109,+        0.72906,+        0.29688,+        0.72906,+        0.3959,+        0.71695,+        0.46922,+        0.68063,+        0.51469,+        0.6223,+        0.52984,+        0.54391,+        0.52184,+        0.4841,+        0.49781,+        0.43844,+        0.45781,+        0.40707,+        0.40187,+        0.39016,+        0.46586,+        0.36941,+        0.51438,+        0.32875,+        0.54496,+        0.27137,+        0.55516,+        0.20016,+        0.53891,+        0.1132,+        0.49016,+        0.05047,+        0.40941,+        0.01262,+        0.29688,+        0.0,+        0.08109,+        0.0,+        0.18016,+        0.34813,+        0.18016,+        0.08109,+        0.29688,+        0.08109,+        0.37047,+        0.08859,+        0.41937,+        0.11109,+        0.44691,+        0.15082,+        0.45609,+        0.21,+        0.44645,+        0.2718,+        0.4175,+        0.31469,+        0.36805,+        0.33977,+        0.29688,+        0.34813,+        0.18016,+        0.64797,+        0.18016,+        0.42828,+        0.295,+        0.42828,+        0.35641,+        0.43512,+        0.39813,+        0.45563,+        0.42215,+        0.49137,+        0.43016,+        0.54391,+        0.42227,+        0.59137,+        0.39859,+        0.62344,+        0.35699,+        0.64184,+        0.295,+        0.64797+      ],+      "t": [+        18,+        31,+        30,+        18,+        20,+        19,+        21,+        20,+        18,+        21,+        18,+        17,+        21,+        17,+        16,+        21,+        16,+        15,+        15,+        14,+        13,+        15,+        13,+        12,+        15,+        12,+        11,+        15,+        11,+        10,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        9,+        5,+        4,+        9,+        4,+        3,+        3,+        2,+        1,+        3,+        1,+        0,+        0,+        18,+        30,+        0,+        30,+        40,+        0,+        40,+        39,+        31,+        18,+        19,+        31,+        19,+        29,+        31,+        29,+        28,+        22,+        21,+        15,+        3,+        0,+        39,+        3,+        39,+        38,+        3,+        38,+        37,+        3,+        37,+        36,+        3,+        36,+        35,+        32,+        31,+        28,+        32,+        28,+        27,+        23,+        22,+        15,+        9,+        3,+        35,+        9,+        35,+        34,+        9,+        34,+        33,+        9,+        33,+        32,+        9,+        32,+        27,+        9,+        27,+        26,+        24,+        23,+        15,+        10,+        9,+        26,+        10,+        26,+        25,+        25,+        24,+        15,+        25,+        15,+        10+      ]+    },+    "C": {+      "v": [+        0.52391,+        0.02594,+        0.48586,+        0.00844,+        0.44672,+        -0.00406,+        0.40598,+        -0.01168,+        0.36281,+        -0.01422,+        0.23832,+        0.01055,+        0.14516,+        0.08484,+        0.08715,+        0.20418,+        0.06781,+        0.36375,+        0.08727,+        0.52277,+        0.14563,+        0.64234,+        0.23891,+        0.71723,+        0.36281,+        0.74219,+        0.40598,+        0.73969,+        0.44672,+        0.73219,+        0.48586,+        0.71969,+        0.52391,+        0.70219,+        0.52391,+        0.60109,+        0.48645,+        0.62738,+        0.44625,+        0.64656,+        0.40469,+        0.65828,+        0.36281,+        0.66219,+        0.27867,+        0.64363,+        0.21875,+        0.58797,+        0.18289,+        0.4948,+        0.17094,+        0.36375,+        0.18289,+        0.23316,+        0.21875,+        0.14016,+        0.27867,+        0.08449,+        0.36281,+        0.06594,+        0.40535,+        0.06984,+        0.44703,+        0.08156,+        0.48688,+        0.10074,+        0.52391,+        0.12703+      ],+      "t": [+        1,+        0,+        33,+        1,+        33,+        32,+        1,+        32,+        31,+        1,+        31,+        30,+        1,+        30,+        29,+        1,+        29,+        28,+        18,+        17,+        16,+        18,+        16,+        15,+        18,+        15,+        14,+        18,+        14,+        13,+        18,+        13,+        12,+        12,+        11,+        10,+        12,+        10,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        5,+        1,+        28,+        5,+        28,+        27,+        5,+        27,+        26,+        19,+        18,+        12,+        9,+        5,+        26,+        9,+        26,+        25,+        9,+        25,+        24,+        9,+        24,+        23,+        9,+        23,+        22,+        20,+        19,+        12,+        12,+        9,+        22,+        12,+        22,+        21,+        12,+        21,+        20+      ]+    },+    "D": {+      "v": [+        0.21484,+        0.72906,+        0.35988,+        0.70684,+        0.46094,+        0.64016,+        0.52023,+        0.5266,+        0.54,+        0.36375,+        0.52023,+        0.20168,+        0.46094,+        0.08859,+        0.35988,+        0.02215,+        0.21484,+        0.0,+        0.06688,+        0.0,+        0.06688,+        0.72906,+        0.21297,+        0.08109,+        0.31859,+        0.09641,+        0.38672,+        0.14234,+        0.42375,+        0.22832,+        0.43609,+        0.36375,+        0.42383,+        0.50035,+        0.38703,+        0.58672,+        0.31898,+        0.63266,+        0.21297,+        0.64797,+        0.16609,+        0.64797,+        0.16609,+        0.08109+      ],+      "t": [+        9,+        21,+        20,+        11,+        21,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        11,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        2,+        1,+        0,+        2,+        0,+        10,+        10,+        9,+        20,+        10,+        20,+        19,+        10,+        19,+        18,+        12,+        11,+        6,+        2,+        10,+        18,+        2,+        18,+        17,+        2,+        17,+        16,+        2,+        16,+        15,+        13,+        12,+        6,+        6,+        2,+        15,+        6,+        15,+        14,+        6,+        14,+        13+      ]+    },+    "E": {+      "v": [+        0.09625,+        0.72906,+        0.52875,+        0.72906,+        0.52875,+        0.64594,+        0.19484,+        0.64594,+        0.19484,+        0.43016,+        0.51422,+        0.43016,+        0.51422,+        0.34719,+        0.19484,+        0.34719,+        0.19484,+        0.08297,+        0.53812,+        0.08297,+        0.53812,+        0.0,+        0.09625,+        0.0+      ],+      "t": [+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        3,+        2,+        1,+        3,+        1,+        0,+        3,+        0,+        11,+        11,+        7,+        4,+        11,+        4,+        3+      ]+    },+    "F": {+      "v": [+        0.11375,+        0.72906,+        0.54297,+        0.72906,+        0.54297,+        0.64594,+        0.21297,+        0.64594,+        0.21297,+        0.43109,+        0.51219,+        0.43109,+        0.51219,+        0.34813,+        0.21297,+        0.34813,+        0.21297,+        0.0,+        0.11375,+        0.0+      ],+      "t": [+        0,+        9,+        8,+        0,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        3,+        2,+        1,+        3,+        1,+        0,+        0,+        7,+        4,+        0,+        4,+        3+      ]+    },+    "G": {+      "v": [+        0.53906,+        0.06,+        0.49703,+        0.02785,+        0.45,+        0.00453,+        0.39844,+        -0.00953,+        0.34281,+        -0.01422,+        0.21945,+        0.01062,+        0.12688,+        0.08516,+        0.0691,+        0.20449,+        0.04984,+        0.36375,+        0.06937,+        0.52277,+        0.12797,+        0.64234,+        0.22133,+        0.71723,+        0.34516,+        0.74219,+        0.39012,+        0.73895,+        0.43312,+        0.72922,+        0.47441,+        0.71293,+        0.51422,+        0.69,+        0.51422,+        0.58891,+        0.47418,+        0.62148,+        0.43312,+        0.64422,+        0.39035,+        0.6577,+        0.34516,+        0.66219,+        0.26105,+        0.64355,+        0.20094,+        0.58766,+        0.16484,+        0.49441,+        0.15281,+        0.36375,+        0.16445,+        0.2316,+        0.19937,+        0.13891,+        0.25859,+        0.08418,+        0.34281,+        0.06594,+        0.37348,+        0.06781,+        0.40016,+        0.07344,+        0.42367,+        0.0832,+        0.44484,+        0.09719,+        0.44484,+        0.29297,+        0.33891,+        0.29297,+        0.33891,+        0.37406,+        0.53906,+        0.37406+      ],+      "t": [+        1,+        0,+        37,+        37,+        36,+        35,+        37,+        35,+        34,+        37,+        34,+        33,+        18,+        17,+        16,+        18,+        16,+        15,+        18,+        15,+        14,+        18,+        14,+        13,+        18,+        13,+        12,+        12,+        11,+        10,+        12,+        10,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        1,+        37,+        33,+        1,+        33,+        32,+        1,+        32,+        31,+        1,+        31,+        30,+        1,+        30,+        29,+        1,+        29,+        28,+        19,+        18,+        12,+        5,+        1,+        28,+        5,+        28,+        27,+        5,+        27,+        26,+        20,+        19,+        12,+        9,+        5,+        26,+        9,+        26,+        25,+        9,+        25,+        24,+        9,+        24,+        23,+        9,+        23,+        22,+        21,+        20,+        12,+        12,+        9,+        22,+        12,+        22,+        21+      ]+    },+    "H": {+      "v": [+        0.06688,+        0.72906,+        0.16609,+        0.72906,+        0.16609,+        0.43016,+        0.43609,+        0.43016,+        0.43609,+        0.72906,+        0.53516,+        0.72906,+        0.53516,+        0.0,+        0.43609,+        0.0,+        0.43609,+        0.34719,+        0.16609,+        0.34719,+        0.16609,+        0.0,+        0.06688,+        0.0+      ],+      "t": [+        1,+        0,+        11,+        11,+        10,+        9,+        8,+        7,+        6,+        8,+        6,+        5,+        5,+        4,+        3,+        2,+        1,+        11,+        2,+        11,+        9,+        2,+        9,+        8,+        8,+        5,+        3,+        8,+        3,+        2+      ]+    },+    "I": {+      "v": [+        0.09813,+        0.72906,+        0.50297,+        0.72906,+        0.50297,+        0.64594,+        0.35016,+        0.64594,+        0.35016,+        0.08297,+        0.50297,+        0.08297,+        0.50297,+        0.0,+        0.09813,+        0.0,+        0.09813,+        0.08297,+        0.25094,+        0.08297,+        0.25094,+        0.64594,+        0.09813,+        0.64594+      ],+      "t": [+        1,+        0,+        11,+        1,+        11,+        10,+        9,+        8,+        7,+        9,+        7,+        6,+        6,+        5,+        4,+        3,+        2,+        1,+        3,+        1,+        10,+        3,+        10,+        9,+        9,+        6,+        4,+        9,+        4,+        3+      ]+    },+    "J": {+      "v": [+        0.05328,+        0.02984,+        0.05328,+        0.145,+        0.0984,+        0.11039,+        0.145,+        0.08563,+        0.1932,+        0.07086,+        0.24313,+        0.06594,+        0.30238,+        0.07504,+        0.34047,+        0.10234,+        0.36121,+        0.15441,+        0.36812,+        0.23781,+        0.36812,+        0.64594,+        0.18219,+        0.64594,+        0.18219,+        0.72906,+        0.46687,+        0.72906,+        0.46687,+        0.23781,+        0.45398,+        0.12027,+        0.41531,+        0.04297,+        0.34648,+        0.00008,+        0.24313,+        -0.01422,+        0.19637,+        -0.01152,+        0.14984,+        -0.00344,+        0.10258,+        0.01027+      ],+      "t": [+        1,+        0,+        21,+        1,+        21,+        20,+        1,+        20,+        19,+        1,+        19,+        18,+        18,+        17,+        16,+        18,+        16,+        15,+        18,+        15,+        14,+        13,+        12,+        11,+        13,+        11,+        10,+        13,+        10,+        9,+        13,+        9,+        8,+        2,+        1,+        18,+        14,+        13,+        8,+        14,+        8,+        7,+        3,+        2,+        18,+        18,+        14,+        7,+        18,+        7,+        6,+        18,+        6,+        5,+        18,+        5,+        4,+        18,+        4,+        3+      ]+    },+    "K": {+      "v": [+        0.06688,+        0.72906,+        0.16609,+        0.72906,+        0.16609,+        0.40484,+        0.47406,+        0.72906,+        0.58984,+        0.72906,+        0.30609,+        0.43109,+        0.59813,+        0.0,+        0.47906,+        0.0,+        0.24125,+        0.36531,+        0.16609,+        0.28516,+        0.16609,+        0.0,+        0.06688,+        0.0+      ],+      "t": [+        1,+        0,+        11,+        11,+        10,+        9,+        8,+        7,+        6,+        8,+        6,+        5,+        8,+        5,+        4,+        8,+        4,+        3,+        8,+        3,+        2,+        2,+        1,+        11,+        2,+        11,+        9,+        2,+        9,+        8+      ]+    },+    "L": {+      "v": [+        0.105,+        0.72906,+        0.20406,+        0.72906,+        0.20406,+        0.08297,+        0.55609,+        0.08297,+        0.55609,+        0.0,+        0.105,+        0.0+      ],+      "t": [+        1,+        0,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1+      ]+    },+    "M": {+      "v": [+        0.04203,+        0.72906,+        0.17391,+        0.72906,+        0.29984,+        0.35797,+        0.42672,+        0.72906,+        0.55906,+        0.72906,+        0.55906,+        0.0,+        0.46781,+        0.0,+        0.46781,+        0.64406,+        0.33797,+        0.25984,+        0.26312,+        0.25984,+        0.13281,+        0.64406,+        0.13281,+        0.0,+        0.04203,+        0.0+      ],+      "t": [+        0,+        12,+        11,+        0,+        11,+        10,+        10,+        9,+        8,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        7,+        3,+        2,+        1,+        0,+        10,+        8,+        7,+        2,+        2,+        1,+        10,+        2,+        10,+        8+      ]+    },+    "N": {+      "v": [+        0.06781,+        0.72906,+        0.19281,+        0.72906,+        0.43891,+        0.12891,+        0.43891,+        0.72906,+        0.53422,+        0.72906,+        0.53422,+        0.0,+        0.40922,+        0.0,+        0.16312,+        0.60016,+        0.16312,+        0.0,+        0.06781,+        0.0+      ],+      "t": [+        0,+        9,+        8,+        0,+        8,+        7,+        5,+        4,+        3,+        5,+        3,+        2,+        1,+        0,+        7,+        1,+        7,+        6,+        6,+        5,+        2,+        6,+        2,+        1+      ]+    },+    "O": {+      "v": [+        0.545,+        0.36375,+        0.52992,+        0.19746,+        0.48469,+        0.07953,+        0.40855,+        0.00922,+        0.30078,+        -0.01422,+        0.19309,+        0.0091,+        0.11719,+        0.07906,+        0.07219,+        0.19688,+        0.05719,+        0.36375,+        0.07227,+        0.53039,+        0.1175,+        0.64844,+        0.19348,+        0.71875,+        0.30078,+        0.74219,+        0.40855,+        0.71875,+        0.48469,+        0.64844,+        0.52992,+        0.53039,+        0.44188,+        0.36375,+        0.43363,+        0.50145,+        0.40891,+        0.59328,+        0.36539,+        0.64496,+        0.30078,+        0.66219,+        0.23652,+        0.64496,+        0.19312,+        0.59328,+        0.1684,+        0.50145,+        0.16016,+        0.36375,+        0.1684,+        0.22641,+        0.19312,+        0.13469,+        0.23652,+        0.08313,+        0.30078,+        0.06594,+        0.36539,+        0.08309,+        0.40891,+        0.13453,+        0.43363,+        0.22613+      ],+      "t": [+        8,+        24,+        23,+        8,+        23,+        22,+        25,+        24,+        8,+        25,+        8,+        7,+        25,+        7,+        6,+        25,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        2,+        1,+        0,+        2,+        0,+        15,+        2,+        15,+        14,+        2,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        10,+        9,+        8,+        10,+        8,+        22,+        10,+        22,+        21,+        10,+        21,+        20,+        26,+        25,+        5,+        13,+        10,+        20,+        13,+        20,+        19,+        13,+        19,+        18,+        13,+        18,+        17,+        27,+        26,+        5,+        2,+        13,+        17,+        2,+        17,+        16,+        2,+        16,+        31,+        2,+        31,+        30,+        2,+        30,+        29,+        2,+        29,+        28,+        28,+        27,+        5,+        28,+        5,+        2+      ]+    },+    "P": {+      "v": [+        0.09625,+        0.72906,+        0.30906,+        0.72906,+        0.41633,+        0.7152,+        0.49406,+        0.67359,+        0.54141,+        0.60527,+        0.55719,+        0.51125,+        0.54148,+        0.41648,+        0.49438,+        0.34813,+        0.41672,+        0.30676,+        0.30906,+        0.29297,+        0.19484,+        0.29297,+        0.19484,+        0.0,+        0.09625,+        0.0,+        0.19484,+        0.64797,+        0.19484,+        0.37406,+        0.30906,+        0.37406,+        0.36996,+        0.38309,+        0.41578,+        0.41016,+        0.44449,+        0.45348,+        0.45406,+        0.51125,+        0.44453,+        0.56895,+        0.41594,+        0.61203,+        0.37023,+        0.63898,+        0.30906,+        0.64797+      ],+      "t": [+        12,+        14,+        13,+        12,+        11,+        10,+        10,+        9,+        8,+        10,+        8,+        7,+        10,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        2,+        1,+        0,+        0,+        12,+        13,+        0,+        13,+        23,+        0,+        23,+        22,+        14,+        12,+        10,+        2,+        0,+        22,+        2,+        22,+        21,+        2,+        21,+        20,+        15,+        14,+        10,+        6,+        2,+        20,+        6,+        20,+        19,+        6,+        19,+        18,+        6,+        18,+        17,+        6,+        17,+        16,+        16,+        15,+        10,+        16,+        10,+        6+      ]+    },+    "Q": {+      "v": [+        0.31984,+        -0.01312,+        0.31566,+        -0.01324,+        0.31,+        -0.01359,+        0.30434,+        -0.01406,+        0.29984,+        -0.01422,+        0.19324,+        0.00922,+        0.1175,+        0.07953,+        0.07227,+        0.19746,+        0.05719,+        0.36375,+        0.07227,+        0.53039,+        0.1175,+        0.64844,+        0.19348,+        0.71875,+        0.30078,+        0.74219,+        0.40855,+        0.71875,+        0.48469,+        0.64844,+        0.52992,+        0.53039,+        0.545,+        0.36375,+        0.5366,+        0.23414,+        0.51141,+        0.1325,+        0.46938,+        0.05809,+        0.41016,+        0.00984,+        0.50781,+        -0.08297,+        0.43406,+        -0.13187,+        0.44188,+        0.36375,+        0.43363,+        0.50145,+        0.40891,+        0.59328,+        0.36539,+        0.64496,+        0.30078,+        0.66219,+        0.23652,+        0.64496,+        0.19312,+        0.59328,+        0.1684,+        0.50145,+        0.16016,+        0.36375,+        0.1684,+        0.22641,+        0.19312,+        0.13469,+        0.23652,+        0.08313,+        0.30078,+        0.06594,+        0.36539,+        0.08309,+        0.40891,+        0.13453,+        0.43363,+        0.22613+      ],+      "t": [+        8,+        31,+        30,+        8,+        30,+        29,+        32,+        31,+        8,+        32,+        8,+        7,+        32,+        7,+        6,+        32,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        5,+        1,+        0,+        0,+        22,+        21,+        0,+        21,+        20,+        0,+        20,+        19,+        0,+        19,+        18,+        0,+        18,+        17,+        17,+        16,+        15,+        17,+        15,+        14,+        17,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        10,+        9,+        8,+        10,+        8,+        29,+        10,+        29,+        28,+        10,+        28,+        27,+        33,+        32,+        5,+        13,+        10,+        27,+        13,+        27,+        26,+        13,+        26,+        25,+        13,+        25,+        24,+        34,+        33,+        5,+        34,+        5,+        0,+        17,+        13,+        24,+        17,+        24,+        23,+        17,+        23,+        38,+        17,+        38,+        37,+        17,+        37,+        36,+        35,+        34,+        0,+        0,+        17,+        36,+        0,+        36,+        35+      ]+    },+    "R": {+      "v": [+        0.37109,+        0.34422,+        0.40641,+        0.33016,+        0.43609,+        0.30734,+        0.46625,+        0.2668,+        0.50297,+        0.19922,+        0.60203,+        0.0,+        0.49609,+        0.0,+        0.40922,+        0.18406,+        0.37348,+        0.24867,+        0.34156,+        0.28531,+        0.30695,+        0.30242,+        0.26312,+        0.30812,+        0.16891,+        0.30812,+        0.16891,+        0.0,+        0.06984,+        0.0,+        0.06984,+        0.72906,+        0.27297,+        0.72906,+        0.37906,+        0.71551,+        0.45703,+        0.67484,+        0.50496,+        0.60855,+        0.52094,+        0.51813,+        0.51109,+        0.45246,+        0.48156,+        0.40016,+        0.43434,+        0.36336,+        0.16891,+        0.64797,+        0.16891,+        0.38922,+        0.27687,+        0.38922,+        0.33863,+        0.39715,+        0.38234,+        0.42094,+        0.40836,+        0.46109,+        0.41703,+        0.51813,+        0.40781,+        0.57371,+        0.38016,+        0.61453,+        0.33492,+        0.63961,+        0.27297,+        0.64797+      ],+      "t": [+        14,+        25,+        24,+        14,+        13,+        12,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        7,+        3,+        2,+        7,+        2,+        1,+        7,+        1,+        0,+        0,+        23,+        22,+        0,+        22,+        21,+        0,+        21,+        20,+        0,+        20,+        19,+        19,+        18,+        17,+        19,+        17,+        16,+        19,+        16,+        15,+        15,+        14,+        24,+        15,+        24,+        34,+        15,+        34,+        33,+        25,+        14,+        12,+        25,+        12,+        11,+        25,+        11,+        10,+        25,+        10,+        9,+        8,+        7,+        0,+        19,+        15,+        33,+        19,+        33,+        32,+        19,+        32,+        31,+        19,+        31,+        30,+        19,+        30,+        29,+        19,+        29,+        28,+        26,+        25,+        9,+        26,+        9,+        8,+        26,+        8,+        0,+        0,+        19,+        28,+        0,+        28,+        27,+        0,+        27,+        26+      ]+    },+    "S": {+      "v": [+        0.49422,+        0.70406,+        0.49422,+        0.60406,+        0.44918,+        0.6293,+        0.40406,+        0.6475,+        0.35871,+        0.65852,+        0.31297,+        0.66219,+        0.25047,+        0.65406,+        0.20266,+        0.62969,+        0.1723,+        0.59152,+        0.16219,+        0.54203,+        0.16883,+        0.49934,+        0.18875,+        0.46813,+        0.22687,+        0.44488,+        0.28813,+        0.42578,+        0.33984,+        0.41406,+        0.42844,+        0.38332,+        0.48922,+        0.33891,+        0.52438,+        0.27836,+        0.53609,+        0.19922,+        0.51996,+        0.1075,+        0.47156,+        0.04047,+        0.39254,+        -0.00055,+        0.28422,+        -0.01422,+        0.23281,+        -0.01145,+        0.18109,+        -0.00313,+        0.12926,+        0.01059,+        0.07719,+        0.02984,+        0.07719,+        0.13484,+        0.13176,+        0.10387,+        0.18328,+        0.0825,+        0.23359,+        0.07008,+        0.28422,+        0.06594,+        0.35059,+        0.0743,+        0.40031,+        0.09938,+        0.43148,+        0.13945,+        0.44188,+        0.19281,+        0.43473,+        0.24102,+        0.41328,+        0.27625,+        0.37422,+        0.30184,+        0.31391,+        0.32078,+        0.26125,+        0.33297,+        0.17359,+        0.3618,+        0.11375,+        0.40234,+        0.0793,+        0.45668,+        0.06781,+        0.52687,+        0.08422,+        0.6148,+        0.13344,+        0.68328,+        0.21,+        0.72746,+        0.30812,+        0.74219,+        0.35121,+        0.7398,+        0.39641,+        0.73266,+        0.44406,+        0.72074+      ],+      "t": [+        1,+        0,+        51,+        1,+        51,+        50,+        1,+        50,+        49,+        1,+        49,+        48,+        48,+        47,+        46,+        48,+        46,+        45,+        48,+        45,+        44,+        44,+        43,+        42,+        44,+        42,+        41,+        44,+        41,+        40,+        44,+        40,+        39,+        44,+        39,+        38,+        44,+        38,+        37,+        28,+        27,+        26,+        28,+        26,+        25,+        28,+        25,+        24,+        28,+        24,+        23,+        28,+        23,+        22,+        22,+        21,+        20,+        22,+        20,+        19,+        22,+        19,+        18,+        18,+        17,+        16,+        18,+        16,+        15,+        18,+        15,+        14,+        18,+        14,+        13,+        18,+        13,+        12,+        18,+        12,+        11,+        2,+        1,+        48,+        29,+        28,+        22,+        3,+        2,+        48,+        30,+        29,+        22,+        4,+        3,+        48,+        31,+        30,+        22,+        5,+        4,+        48,+        32,+        31,+        22,+        6,+        5,+        48,+        33,+        32,+        22,+        33,+        22,+        18,+        7,+        6,+        48,+        7,+        48,+        44,+        34,+        33,+        18,+        8,+        7,+        44,+        35,+        34,+        18,+        9,+        8,+        44,+        36,+        35,+        18,+        10,+        9,+        44,+        37,+        36,+        18,+        37,+        18,+        11,+        11,+        10,+        44,+        11,+        44,+        37+      ]+    },+    "T": {+      "v": [+        0.02297,+        0.72906,+        0.57906,+        0.72906,+        0.57906,+        0.64594,+        0.35109,+        0.64594,+        0.35109,+        0.0,+        0.25203,+        0.0,+        0.25203,+        0.64594,+        0.02297,+        0.64594+      ],+      "t": [+        1,+        0,+        7,+        1,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        3,+        2,+        1,+        3,+        1,+        6+      ]+    },+    "U": {+      "v": [+        0.07172,+        0.27984,+        0.07172,+        0.72906,+        0.17094,+        0.72906,+        0.17094,+        0.23484,+        0.17164,+        0.1893,+        0.17375,+        0.15891,+        0.17781,+        0.13887,+        0.18406,+        0.12406,+        0.20316,+        0.09871,+        0.22922,+        0.08047,+        0.26187,+        0.06957,+        0.30078,+        0.06594,+        0.33996,+        0.06957,+        0.3725,+        0.08047,+        0.39855,+        0.09871,+        0.41797,+        0.12406,+        0.42418,+        0.13879,+        0.42813,+        0.15859,+        0.43035,+        0.18867,+        0.43109,+        0.23391,+        0.43109,+        0.72906,+        0.52984,+        0.72906,+        0.52984,+        0.27984,+        0.52637,+        0.18414,+        0.51594,+        0.12078,+        0.49695,+        0.07781,+        0.46781,+        0.04297,+        0.43328,+        0.01785,+        0.39406,+        0.0,+        0.34996,+        -0.01066,+        0.30078,+        -0.01422,+        0.25195,+        -0.01066,+        0.20797,+        0.0,+        0.16871,+        0.01785,+        0.13375,+        0.04297,+        0.105,+        0.0777,+        0.08594,+        0.12125,+        0.07527,+        0.18496+      ],+      "t": [+        1,+        0,+        37,+        1,+        37,+        36,+        1,+        36,+        35,+        1,+        35,+        34,+        1,+        34,+        33,+        33,+        32,+        31,+        33,+        31,+        30,+        33,+        30,+        29,+        33,+        29,+        28,+        33,+        28,+        27,+        33,+        27,+        26,+        33,+        26,+        25,+        33,+        25,+        24,+        24,+        23,+        22,+        24,+        22,+        21,+        24,+        21,+        20,+        24,+        20,+        19,+        24,+        19,+        18,+        24,+        18,+        17,+        24,+        17,+        16,+        24,+        16,+        15,+        24,+        15,+        14,+        24,+        14,+        13,+        24,+        13,+        12,+        3,+        2,+        1,+        3,+        1,+        33,+        33,+        24,+        12,+        33,+        12,+        11,+        33,+        11,+        10,+        33,+        10,+        9,+        33,+        9,+        8,+        33,+        8,+        7,+        33,+        7,+        6,+        33,+        6,+        5,+        33,+        5,+        4,+        33,+        4,+        3+      ]+    },+    "V": {+      "v": [+        0.30078,+        0.08297,+        0.47219,+        0.72906,+        0.57422,+        0.72906,+        0.36078,+        0.0,+        0.24125,+        0.0,+        0.02781,+        0.72906,+        0.12984,+        0.72906+      ],+      "t": [+        0,+        6,+        5,+        0,+        5,+        4,+        0,+        4,+        3,+        0,+        3,+        2,+        0,+        2,+        1+      ]+    },+    "W": {+      "v": [+        0.0,+        0.72906,+        0.09625,+        0.72906,+        0.16609,+        0.13719,+        0.24906,+        0.52875,+        0.35203,+        0.52875,+        0.43609,+        0.13625,+        0.50594,+        0.72906,+        0.60203,+        0.72906,+        0.49313,+        0.0,+        0.39984,+        0.0,+        0.30078,+        0.43312,+        0.20219,+        0.0,+        0.10891,+        0.0+      ],+      "t": [+        1,+        0,+        12,+        12,+        11,+        10,+        10,+        9,+        8,+        8,+        7,+        6,+        8,+        6,+        5,+        2,+        1,+        12,+        2,+        12,+        10,+        10,+        8,+        5,+        10,+        5,+        4,+        10,+        4,+        3,+        10,+        3,+        2+      ]+    },+    "X": {+      "v": [+        0.04203,+        0.72906,+        0.14797,+        0.72906,+        0.30812,+        0.45406,+        0.47125,+        0.72906,+        0.57719,+        0.72906,+        0.35891,+        0.38625,+        0.59281,+        0.0,+        0.48688,+        0.0,+        0.30812,+        0.31391,+        0.11531,+        0.0,+        0.00875,+        0.0,+        0.25297,+        0.38625+      ],+      "t": [+        1,+        0,+        11,+        11,+        10,+        9,+        11,+        9,+        8,+        8,+        7,+        6,+        8,+        6,+        5,+        8,+        5,+        4,+        8,+        4,+        3,+        8,+        3,+        2,+        8,+        2,+        1,+        8,+        1,+        11+      ]+    },+    "Y": {+      "v": [+        0.01812,+        0.72906,+        0.12312,+        0.72906,+        0.30078,+        0.40719,+        0.47797,+        0.72906,+        0.58406,+        0.72906,+        0.35016,+        0.32719,+        0.35016,+        0.0,+        0.25094,+        0.0,+        0.25094,+        0.32719+      ],+      "t": [+        1,+        0,+        8,+        8,+        7,+        6,+        8,+        6,+        5,+        8,+        5,+        4,+        4,+        3,+        2,+        2,+        1,+        8,+        2,+        8,+        4+      ]+    },+    "Z": {+      "v": [+        0.08688,+        0.72906,+        0.56,+        0.72906,+        0.56,+        0.65375,+        0.17922,+        0.08297,+        0.57078,+        0.08297,+        0.57078,+        0.0,+        0.07625,+        0.0,+        0.07625,+        0.07516,+        0.44672,+        0.64594,+        0.08688,+        0.64594+      ],+      "t": [+        1,+        0,+        9,+        1,+        9,+        8,+        1,+        8,+        7,+        1,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        6,+        2,+        1+      ]+    },+    "[": {+      "v": [+        0.22609,+        0.75984,+        0.43312,+        0.75984,+        0.43312,+        0.69,+        0.31594,+        0.69,+        0.31594,+        -0.06203,+        0.43312,+        -0.06203,+        0.43312,+        -0.13187,+        0.22609,+        -0.13187+      ],+      "t": [+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        3,+        2,+        1,+        3,+        1,+        0,+        3,+        0,+        7+      ]+    },+    "\\": {+      "v": [+        0.14313,+        0.72906,+        0.52687,+        -0.09281,+        0.43406,+        -0.09281,+        0.04984,+        0.72906+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "]": {+      "v": [+        0.37594,+        0.75984,+        0.37594,+        -0.13187,+        0.16891,+        -0.13187,+        0.16891,+        -0.06203,+        0.28609,+        -0.06203,+        0.28609,+        0.69,+        0.16891,+        0.69,+        0.16891,+        0.75984+      ],+      "t": [+        0,+        7,+        6,+        0,+        6,+        5,+        0,+        5,+        4,+        4,+        3,+        2,+        4,+        2,+        1,+        4,+        1,+        0+      ]+    },+    "^": {+      "v": [+        0.34422,+        0.72906,+        0.56688,+        0.45703,+        0.48,+        0.45703,+        0.30078,+        0.64984,+        0.12203,+        0.45703,+        0.03516,+        0.45703,+        0.25781,+        0.72906+      ],+      "t": [+        1,+        0,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        6,+        2,+        1+      ]+    },+    "_": {+      "v": [+        0.60203,+        -0.19672,+        0.60203,+        -0.23578,+        0.0,+        -0.23578,+        0.0,+        -0.19672+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "`": {+      "v": [+        0.23297,+        0.79984,+        0.37016,+        0.61625,+        0.295,+        0.61625,+        0.13625,+        0.79984+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "a": {+      "v": [+        0.51703,+        0.31203,+        0.51703,+        0.0,+        0.42672,+        0.0,+        0.42672,+        0.08109,+        0.39422,+        0.03859,+        0.35422,+        0.00891,+        0.3059,+        -0.00844,+        0.24813,+        -0.01422,+        0.17297,+        -0.00242,+        0.11469,+        0.03297,+        0.07742,+        0.08813,+        0.065,+        0.15922,+        0.08031,+        0.23949,+        0.12625,+        0.29781,+        0.20184,+        0.33332,+        0.30609,+        0.34516,+        0.42672,+        0.34516,+        0.42672,+        0.35938,+        0.41816,+        0.41586,+        0.39344,+        0.45438,+        0.35102,+        0.47652,+        0.28906,+        0.48391,+        0.24289,+        0.48059,+        0.19625,+        0.47063,+        0.15,+        0.45445,+        0.105,+        0.43219,+        0.105,+        0.52203,+        0.15379,+        0.53867,+        0.20047,+        0.55047,+        0.24543,+        0.55762,+        0.28906,+        0.56,+        0.35195,+        0.555,+        0.405,+        0.54,+        0.44855,+        0.515,+        0.48297,+        0.48,+        0.49875,+        0.45273,+        0.50922,+        0.41969,+        0.51508,+        0.3748,+        0.34281,+        0.27484,+        0.31297,+        0.27484,+        0.24406,+        0.26793,+        0.19453,+        0.24719,+        0.16477,+        0.21289,+        0.15484,+        0.165,+        0.16227,+        0.12125,+        0.18453,+        0.08844,+        0.22008,+        0.06793,+        0.26703,+        0.06109,+        0.33332,+        0.07395,+        0.38375,+        0.1125,+        0.41574,+        0.17387,+        0.42672,+        0.25484,+        0.42672,+        0.27484+      ],+      "t": [+        44,+        43,+        11,+        44,+        11,+        10,+        44,+        10,+        9,+        44,+        9,+        8,+        44,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        3,+        2,+        1,+        3,+        1,+        0,+        3,+        0,+        37,+        3,+        37,+        36,+        3,+        36,+        35,+        3,+        35,+        34,+        3,+        34,+        33,+        33,+        32,+        31,+        33,+        31,+        30,+        33,+        30,+        29,+        33,+        29,+        28,+        33,+        28,+        27,+        33,+        27,+        26,+        26,+        25,+        24,+        26,+        24,+        23,+        26,+        23,+        22,+        26,+        22,+        21,+        26,+        21,+        20,+        16,+        15,+        14,+        16,+        14,+        13,+        16,+        13,+        12,+        12,+        11,+        43,+        12,+        43,+        42,+        12,+        42,+        41,+        12,+        41,+        40,+        45,+        44,+        7,+        33,+        26,+        20,+        33,+        20,+        19,+        33,+        19,+        18,+        33,+        18,+        17,+        33,+        17,+        16,+        16,+        12,+        40,+        16,+        40,+        39,+        16,+        39,+        52,+        46,+        45,+        7,+        33,+        16,+        52,+        33,+        52,+        51,+        47,+        46,+        7,+        47,+        7,+        3,+        3,+        33,+        51,+        3,+        51,+        50,+        3,+        50,+        49,+        3,+        49,+        48,+        3,+        48,+        47+      ]+    },+    "b": {+      "v": [+        0.18406,+        0.47703,+        0.20969,+        0.51238,+        0.24344,+        0.53844,+        0.28426,+        0.55461,+        0.33109,+        0.56,+        0.41918,+        0.54102,+        0.48625,+        0.48406,+        0.52879,+        0.39387,+        0.54297,+        0.27484,+        0.52875,+        0.15422,+        0.48609,+        0.06266,+        0.41867,+        0.005,+        0.33016,+        -0.01422,+        0.28414,+        -0.00891,+        0.24391,+        0.00703,+        0.21027,+        0.03313,+        0.18406,+        0.06891,+        0.18406,+        0.0,+        0.09422,+        0.0,+        0.09422,+        0.75984,+        0.18406,+        0.75984,+        0.44828,+        0.27297,+        0.43996,+        0.36465,+        0.415,+        0.43063,+        0.37391,+        0.47059,+        0.31688,+        0.48391,+        0.25934,+        0.47055,+        0.21766,+        0.43047,+        0.19246,+        0.36438,+        0.18406,+        0.27297,+        0.19246,+        0.18184,+        0.21766,+        0.11563,+        0.25934,+        0.07543,+        0.31688,+        0.06203,+        0.37391,+        0.07531,+        0.415,+        0.11516,+        0.43996,+        0.18125+      ],+      "t": [+        18,+        29,+        28,+        30,+        29,+        18,+        18,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        16,+        13,+        12,+        16,+        12,+        11,+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        11,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        6,+        2,+        1,+        0,+        20,+        19,+        0,+        19,+        18,+        0,+        18,+        28,+        0,+        28,+        27,+        0,+        27,+        26,+        0,+        26,+        25,+        31,+        30,+        18,+        31,+        18,+        16,+        1,+        0,+        25,+        1,+        25,+        24,+        32,+        31,+        16,+        32,+        16,+        11,+        6,+        1,+        24,+        6,+        24,+        23,+        6,+        23,+        22,+        6,+        22,+        21,+        6,+        21,+        36,+        33,+        32,+        11,+        11,+        6,+        36,+        11,+        36,+        35,+        11,+        35,+        34,+        11,+        34,+        33+      ]+    },+    "c": {+      "v": [+        0.51813,+        0.02781,+        0.48137,+        0.00949,+        0.44359,+        -0.00359,+        0.40488,+        -0.01156,+        0.36531,+        -0.01422,+        0.25215,+        0.0048,+        0.16672,+        0.06187,+        0.11305,+        0.15277,+        0.09516,+        0.27297,+        0.11305,+        0.39301,+        0.16672,+        0.48375,+        0.25215,+        0.54094,+        0.36531,+        0.56,+        0.40434,+        0.55742,+        0.44234,+        0.54969,+        0.48012,+        0.53672,+        0.51813,+        0.51813,+        0.51813,+        0.42391,+        0.48242,+        0.45121,+        0.44656,+        0.46969,+        0.40828,+        0.48035,+        0.36531,+        0.48391,+        0.29055,+        0.47023,+        0.23531,+        0.42922,+        0.20133,+        0.36281,+        0.19,+        0.27297,+        0.20141,+        0.1834,+        0.23563,+        0.11688,+        0.29086,+        0.07574,+        0.36531,+        0.06203,+        0.40973,+        0.06563,+        0.44922,+        0.07641,+        0.48504,+        0.09477,+        0.51813,+        0.12109+      ],+      "t": [+        1,+        0,+        33,+        1,+        33,+        32,+        1,+        32,+        31,+        1,+        31,+        30,+        1,+        30,+        29,+        1,+        29,+        28,+        18,+        17,+        16,+        18,+        16,+        15,+        18,+        15,+        14,+        18,+        14,+        13,+        18,+        13,+        12,+        12,+        11,+        10,+        12,+        10,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        5,+        1,+        28,+        5,+        28,+        27,+        5,+        27,+        26,+        19,+        18,+        12,+        9,+        5,+        26,+        9,+        26,+        25,+        9,+        25,+        24,+        9,+        24,+        23,+        9,+        23,+        22,+        20,+        19,+        12,+        12,+        9,+        22,+        12,+        22,+        21,+        12,+        21,+        20+      ]+    },+    "d": {+      "v": [+        0.41891,+        0.47703,+        0.41891,+        0.75984,+        0.50875,+        0.75984,+        0.50875,+        0.0,+        0.41891,+        0.0,+        0.41891,+        0.06891,+        0.39277,+        0.03313,+        0.35906,+        0.00703,+        0.31887,+        -0.00891,+        0.27297,+        -0.01422,+        0.18441,+        0.005,+        0.11688,+        0.06266,+        0.07422,+        0.15422,+        0.06,+        0.27484,+        0.0743,+        0.39387,+        0.11719,+        0.48406,+        0.18473,+        0.54102,+        0.27297,+        0.56,+        0.31937,+        0.55469,+        0.35984,+        0.53875,+        0.39344,+        0.51277,+        0.15484,+        0.27297,+        0.16313,+        0.18125,+        0.18797,+        0.11516,+        0.22914,+        0.07531,+        0.28609,+        0.06203,+        0.34332,+        0.07543,+        0.385,+        0.11563,+        0.41043,+        0.18184,+        0.41891,+        0.27297,+        0.41043,+        0.36438,+        0.385,+        0.43047,+        0.34332,+        0.47055,+        0.28609,+        0.48391,+        0.22914,+        0.47059,+        0.18797,+        0.43063,+        0.16313,+        0.36465+      ],+      "t": [+        13,+        21,+        36,+        13,+        36,+        35,+        22,+        21,+        13,+        22,+        13,+        12,+        22,+        12,+        11,+        22,+        11,+        10,+        10,+        9,+        8,+        10,+        8,+        7,+        10,+        7,+        6,+        10,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        2,+        1,+        0,+        0,+        20,+        19,+        0,+        19,+        18,+        0,+        18,+        17,+        0,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        16,+        13,+        35,+        16,+        35,+        34,+        16,+        34,+        33,+        16,+        33,+        32,+        23,+        22,+        10,+        0,+        16,+        32,+        0,+        32,+        31,+        0,+        31,+        30,+        0,+        30,+        29,+        24,+        23,+        10,+        2,+        0,+        29,+        2,+        29,+        28,+        25,+        24,+        10,+        25,+        10,+        5,+        5,+        2,+        28,+        5,+        28,+        27,+        5,+        27,+        26,+        5,+        26,+        25+      ]+    },+    "e": {+      "v": [+        0.54297,+        0.29594,+        0.54297,+        0.25203,+        0.15375,+        0.25203,+        0.15375,+        0.24906,+        0.16539,+        0.1698,+        0.20031,+        0.11078,+        0.2566,+        0.07422,+        0.33203,+        0.06203,+        0.37598,+        0.06543,+        0.42188,+        0.07562,+        0.47035,+        0.09289,+        0.52203,+        0.11719,+        0.52203,+        0.02781,+        0.47168,+        0.00949,+        0.42313,+        -0.00359,+        0.37629,+        -0.01156,+        0.33109,+        -0.01422,+        0.2175,+        0.00488,+        0.13172,+        0.06219,+        0.07793,+        0.15316,+        0.06,+        0.27297,+        0.07758,+        0.39059,+        0.13031,+        0.48187,+        0.21234,+        0.54047,+        0.31781,+        0.56,+        0.41129,+        0.5423,+        0.48266,+        0.48922,+        0.52789,+        0.40551,+        0.45312,+        0.32234,+        0.44285,+        0.39195,+        0.41578,+        0.44266,+        0.37258,+        0.47359,+        0.31391,+        0.48391,+        0.25477,+        0.47316,+        0.20703,+        0.44094,+        0.17355,+        0.38965,+        0.15719,+        0.32172+      ],+      "t": [+        20,+        36,+        35,+        20,+        35,+        34,+        28,+        36,+        20,+        20,+        19,+        18,+        20,+        18,+        17,+        17,+        16,+        15,+        17,+        15,+        14,+        17,+        14,+        13,+        17,+        13,+        12,+        12,+        11,+        10,+        12,+        10,+        9,+        12,+        9,+        8,+        12,+        8,+        7,+        12,+        7,+        6,+        2,+        1,+        0,+        0,+        27,+        26,+        0,+        26,+        25,+        0,+        25,+        24,+        24,+        23,+        22,+        24,+        22,+        21,+        21,+        20,+        34,+        21,+        34,+        33,+        17,+        12,+        6,+        17,+        6,+        5,+        17,+        5,+        4,+        24,+        21,+        33,+        24,+        33,+        32,+        24,+        32,+        31,+        24,+        31,+        30,+        20,+        17,+        4,+        20,+        4,+        3,+        20,+        3,+        2,+        20,+        2,+        0,+        0,+        24,+        30,+        0,+        30,+        29,+        0,+        29,+        28,+        0,+        28,+        20+      ]+    },+    "f": {+      "v": [+        0.51906,+        0.75984,+        0.51906,+        0.685,+        0.41703,+        0.685,+        0.37602,+        0.68004,+        0.34984,+        0.66516,+        0.33578,+        0.63781,+        0.33109,+        0.59516,+        0.33109,+        0.54688,+        0.51906,+        0.54688,+        0.51906,+        0.47703,+        0.33109,+        0.47703,+        0.33109,+        0.0,+        0.24125,+        0.0,+        0.24125,+        0.47703,+        0.09516,+        0.47703,+        0.09516,+        0.54688,+        0.24125,+        0.54688,+        0.24125,+        0.585,+        0.25156,+        0.66301,+        0.2825,+        0.71734,+        0.33527,+        0.74922,+        0.41109,+        0.75984+      ],+      "t": [+        1,+        0,+        21,+        1,+        21,+        20,+        1,+        20,+        19,+        19,+        18,+        17,+        19,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        10,+        9,+        8,+        10,+        8,+        7,+        2,+        1,+        19,+        19,+        16,+        13,+        19,+        13,+        10,+        19,+        10,+        7,+        19,+        7,+        6,+        19,+        6,+        5,+        19,+        5,+        4,+        19,+        4,+        3,+        19,+        3,+        2+      ]+    },+    "g": {+      "v": [+        0.50875,+        0.03516,+        0.49422,+        -0.07305,+        0.45062,+        -0.15141,+        0.37895,+        -0.19898,+        0.27984,+        -0.21484,+        0.2418,+        -0.21313,+        0.20203,+        -0.20797,+        0.16156,+        -0.19961,+        0.12109,+        -0.18797,+        0.12109,+        -0.09906,+        0.16672,+        -0.11863,+        0.20797,+        -0.13234,+        0.24547,+        -0.14043,+        0.27984,+        -0.14313,+        0.34262,+        -0.1332,+        0.38562,+        -0.10344,+        0.41059,+        -0.0523,+        0.41891,+        0.02203,+        0.41891,+        0.02594,+        0.41891,+        0.08688,+        0.39355,+        0.04691,+        0.36031,+        0.01859,+        0.31922,+        0.00172,+        0.27,+        -0.00391,+        0.18398,+        0.01523,+        0.11719,+        0.07266,+        0.0743,+        0.1623,+        0.06,+        0.27781,+        0.0743,+        0.39363,+        0.11719,+        0.48328,+        0.18398,+        0.54082,+        0.27,+        0.56,+        0.31875,+        0.55477,+        0.35938,+        0.53906,+        0.39254,+        0.51234,+        0.41891,+        0.47406,+        0.41891,+        0.545,+        0.50875,+        0.545,+        0.41891,+        0.27781,+        0.41066,+        0.36676,+        0.38594,+        0.43141,+        0.34547,+        0.47078,+        0.29,+        0.48391,+        0.23187,+        0.47078,+        0.18938,+        0.43141,+        0.16348,+        0.36676,+        0.15484,+        0.27781,+        0.16355,+        0.18875,+        0.18969,+        0.12375,+        0.23254,+        0.08402,+        0.29109,+        0.07078,+        0.34574,+        0.08406,+        0.38594,+        0.12391,+        0.41066,+        0.18902+      ],+      "t": [+        10,+        9,+        8,+        10,+        8,+        7,+        10,+        7,+        6,+        10,+        6,+        5,+        10,+        5,+        4,+        10,+        4,+        3,+        3,+        2,+        1,+        3,+        1,+        0,+        0,+        37,+        36,+        0,+        36,+        35,+        0,+        35,+        34,+        34,+        33,+        32,+        34,+        32,+        31,+        34,+        31,+        30,+        34,+        30,+        29,+        29,+        28,+        27,+        29,+        27,+        46,+        29,+        46,+        45,+        29,+        45,+        44,+        29,+        44,+        43,+        29,+        43,+        42,+        47,+        46,+        27,+        47,+        27,+        26,+        47,+        26,+        25,+        47,+        25,+        24,+        24,+        23,+        22,+        24,+        22,+        21,+        24,+        21,+        20,+        24,+        20,+        19,+        11,+        10,+        3,+        34,+        29,+        42,+        34,+        42,+        41,+        34,+        41,+        40,+        34,+        40,+        39,+        48,+        47,+        24,+        12,+        11,+        3,+        0,+        34,+        39,+        0,+        39,+        38,+        0,+        38,+        53,+        0,+        53,+        52,+        49,+        48,+        24,+        13,+        12,+        3,+        50,+        49,+        24,+        50,+        24,+        19,+        14,+        13,+        3,+        51,+        50,+        19,+        15,+        14,+        3,+        15,+        3,+        0,+        52,+        51,+        19,+        16,+        15,+        0,+        0,+        52,+        19,+        0,+        19,+        17,+        0,+        17,+        16+      ]+    },+    "h": {+      "v": [+        0.51313,+        0.33891,+        0.51313,+        0.0,+        0.42281,+        0.0,+        0.42281,+        0.33891,+        0.41633,+        0.40285,+        0.39688,+        0.44719,+        0.36375,+        0.4732,+        0.31594,+        0.48187,+        0.2602,+        0.4707,+        0.21891,+        0.43719,+        0.19348,+        0.38289,+        0.185,+        0.30906,+        0.185,+        0.0,+        0.09516,+        0.0,+        0.09516,+        0.75984,+        0.185,+        0.75984,+        0.185,+        0.46484,+        0.21328,+        0.50602,+        0.25,+        0.53578,+        0.29484,+        0.55395,+        0.34719,+        0.56,+        0.42008,+        0.54625,+        0.47187,+        0.505,+        0.50281,+        0.43605+      ],+      "t": [+        1,+        0,+        23,+        1,+        23,+        22,+        1,+        22,+        21,+        21,+        20,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        21,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        3,+        2,+        1,+        3,+        1,+        21,+        16,+        13,+        10,+        16,+        10,+        9,+        16,+        9,+        8,+        16,+        8,+        7,+        4,+        3,+        21,+        21,+        16,+        7,+        21,+        7,+        6,+        21,+        6,+        5,+        21,+        5,+        4+      ]+    },+    "i": {+      "v": [+        0.125,+        0.54688,+        0.355,+        0.54688,+        0.355,+        0.06984,+        0.53328,+        0.06984,+        0.53328,+        0.0,+        0.08688,+        0.0,+        0.08688,+        0.06984,+        0.26516,+        0.06984,+        0.26516,+        0.47703,+        0.125,+        0.47703,+        0.26516,+        0.75984,+        0.355,+        0.75984,+        0.355,+        0.64594,+        0.26516,+        0.64594+      ],+      "t": [+        1,+        0,+        9,+        1,+        9,+        8,+        1,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        4,+        3,+        2,+        2,+        1,+        7,+        2,+        7,+        4,+        11,+        10,+        13,+        11,+        13,+        12+      ]+    },+    "j": {+      "v": [+        0.29297,+        -0.00984,+        0.29297,+        0.47703,+        0.13812,+        0.47703,+        0.13812,+        0.54688,+        0.38281,+        0.54688,+        0.38281,+        -0.00984,+        0.37188,+        -0.09406,+        0.33906,+        -0.15641,+        0.28621,+        -0.19508,+        0.21484,+        -0.20797,+        0.09078,+        -0.20797,+        0.09078,+        -0.13187,+        0.20516,+        -0.13187,+        0.24355,+        -0.12422,+        0.27094,+        -0.10125,+        0.28746,+        -0.06316,+        0.29297,+        0.75984,+        0.38281,+        0.75984,+        0.38281,+        0.64594,+        0.29297,+        0.64594+      ],+      "t": [+        12,+        11,+        10,+        12,+        10,+        9,+        12,+        9,+        8,+        12,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        4,+        3,+        2,+        4,+        2,+        1,+        4,+        1,+        0,+        4,+        0,+        15,+        13,+        12,+        7,+        7,+        4,+        15,+        7,+        15,+        14,+        7,+        14,+        13,+        17,+        16,+        19,+        17,+        19,+        18+      ]+    },+    "k": {+      "v": [+        0.11531,+        0.75984,+        0.20797,+        0.75984,+        0.20797,+        0.31984,+        0.44391,+        0.54688,+        0.55328,+        0.54688,+        0.33797,+        0.34078,+        0.58688,+        0.0,+        0.47703,+        0.0,+        0.27484,+        0.28219,+        0.20797,+        0.21922,+        0.20797,+        0.0,+        0.11531,+        0.0+      ],+      "t": [+        1,+        0,+        11,+        11,+        10,+        9,+        8,+        7,+        6,+        8,+        6,+        5,+        8,+        5,+        4,+        8,+        4,+        3,+        8,+        3,+        2,+        2,+        1,+        11,+        2,+        11,+        9,+        2,+        9,+        8+      ]+    },+    "l": {+      "v": [+        0.31203,+        0.19828,+        0.31758,+        0.14512,+        0.33422,+        0.10687,+        0.36172,+        0.08391,+        0.39984,+        0.07625,+        0.50484,+        0.07625,+        0.50484,+        0.0,+        0.39109,+        0.0,+        0.31969,+        0.01293,+        0.26641,+        0.05172,+        0.23324,+        0.1143,+        0.22219,+        0.19828,+        0.22219,+        0.69484,+        0.07812,+        0.69484,+        0.07812,+        0.76516,+        0.31203,+        0.76516+      ],+      "t": [+        15,+        14,+        13,+        15,+        13,+        12,+        15,+        12,+        11,+        15,+        11,+        10,+        15,+        10,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        9,+        5,+        4,+        9,+        4,+        3,+        9,+        3,+        2,+        9,+        2,+        1,+        9,+        1,+        0,+        9,+        0,+        15+      ]+    },+    "m": {+      "v": [+        0.33016,+        0.49125,+        0.34898,+        0.5218,+        0.37234,+        0.54312,+        0.40059,+        0.55578,+        0.43406,+        0.56,+        0.49027,+        0.54723,+        0.52703,+        0.50891,+        0.54742,+        0.43543,+        0.55422,+        0.31688,+        0.55422,+        0.0,+        0.47219,+        0.0,+        0.47219,+        0.31297,+        0.46895,+        0.4068,+        0.45922,+        0.45672,+        0.44098,+        0.47781,+        0.41219,+        0.48484,+        0.37926,+        0.47734,+        0.35859,+        0.45484,+        0.34781,+        0.40437,+        0.34422,+        0.31297,+        0.34422,+        0.0,+        0.26219,+        0.0,+        0.26219,+        0.31297,+        0.25871,+        0.4077,+        0.24828,+        0.4575,+        0.22883,+        0.47801,+        0.19828,+        0.48484,+        0.16809,+        0.47734,+        0.14875,+        0.45484,+        0.13832,+        0.40437,+        0.13484,+        0.31297,+        0.13484,+        0.0,+        0.05328,+        0.0,+        0.05328,+        0.54688,+        0.13484,+        0.54688,+        0.13484,+        0.5,+        0.15293,+        0.52586,+        0.175,+        0.54469,+        0.20086,+        0.55617,+        0.23,+        0.56,+        0.26395,+        0.55574,+        0.29172,+        0.54297,+        0.31367,+        0.52152+      ],+      "t": [+        0,+        42,+        41,+        0,+        41,+        40,+        0,+        40,+        39,+        0,+        39,+        38,+        0,+        38,+        37,+        0,+        37,+        36,+        0,+        36,+        35,+        35,+        34,+        33,+        35,+        33,+        32,+        32,+        31,+        30,+        32,+        30,+        29,+        32,+        29,+        28,+        22,+        21,+        20,+        22,+        20,+        19,+        22,+        19,+        18,+        22,+        18,+        17,+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        11,+        7,+        6,+        11,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        5,+        1,+        0,+        35,+        32,+        28,+        35,+        28,+        27,+        35,+        27,+        26,+        35,+        26,+        25,+        23,+        22,+        17,+        23,+        17,+        16,+        12,+        11,+        5,+        0,+        35,+        25,+        0,+        25,+        24,+        0,+        24,+        23,+        0,+        23,+        16,+        0,+        16,+        15,+        13,+        12,+        5,+        5,+        0,+        15,+        5,+        15,+        14,+        5,+        14,+        13+      ]+    },+    "n": {+      "v": [+        0.51313,+        0.33891,+        0.51313,+        0.0,+        0.42281,+        0.0,+        0.42281,+        0.33891,+        0.41633,+        0.40285,+        0.39688,+        0.44719,+        0.36375,+        0.4732,+        0.31594,+        0.48187,+        0.2602,+        0.4707,+        0.21891,+        0.43719,+        0.19348,+        0.38289,+        0.185,+        0.30906,+        0.185,+        0.0,+        0.09516,+        0.0,+        0.09516,+        0.54688,+        0.185,+        0.54688,+        0.185,+        0.46484,+        0.21328,+        0.50602,+        0.25,+        0.53578,+        0.29484,+        0.55395,+        0.34719,+        0.56,+        0.42008,+        0.54625,+        0.47187,+        0.505,+        0.50281,+        0.43605+      ],+      "t": [+        1,+        0,+        23,+        1,+        23,+        22,+        1,+        22,+        21,+        21,+        20,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        21,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        3,+        2,+        1,+        3,+        1,+        21,+        16,+        13,+        10,+        16,+        10,+        9,+        16,+        9,+        8,+        16,+        8,+        7,+        4,+        3,+        21,+        21,+        16,+        7,+        21,+        7,+        6,+        21,+        6,+        5,+        21,+        5,+        4+      ]+    },+    "o": {+      "v": [+        0.30078,+        0.56,+        0.40117,+        0.54156,+        0.47484,+        0.48625,+        0.52008,+        0.39613,+        0.53516,+        0.27297,+        0.52012,+        0.14945,+        0.475,+        0.05922,+        0.40145,+        0.00414,+        0.30078,+        -0.01422,+        0.20043,+        0.00414,+        0.12688,+        0.05922,+        0.08188,+        0.14945,+        0.06688,+        0.27297,+        0.08188,+        0.39613,+        0.12688,+        0.48625,+        0.20043,+        0.54156,+        0.30078,+        0.48391,+        0.24078,+        0.47059,+        0.19734,+        0.43063,+        0.17098,+        0.36465,+        0.16219,+        0.27297,+        0.17098,+        0.18156,+        0.19734,+        0.11547,+        0.24078,+        0.07539,+        0.30078,+        0.06203,+        0.36125,+        0.07539,+        0.40484,+        0.11547,+        0.43121,+        0.18156,+        0.44,+        0.27297,+        0.43121,+        0.36465,+        0.40484,+        0.43063,+        0.36125,+        0.47059+      ],+      "t": [+        12,+        20,+        19,+        12,+        19,+        18,+        21,+        20,+        12,+        21,+        12,+        11,+        21,+        11,+        10,+        21,+        10,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        2,+        1,+        0,+        2,+        0,+        15,+        2,+        15,+        14,+        14,+        13,+        12,+        14,+        12,+        18,+        14,+        18,+        17,+        14,+        17,+        16,+        22,+        21,+        9,+        2,+        14,+        16,+        2,+        16,+        31,+        2,+        31,+        30,+        2,+        30,+        29,+        2,+        29,+        28,+        2,+        28,+        27,+        23,+        22,+        9,+        6,+        2,+        27,+        6,+        27,+        26,+        6,+        26,+        25,+        6,+        25,+        24,+        24,+        23,+        9,+        24,+        9,+        6+      ]+    },+    "p": {+      "v": [+        0.18313,+        0.06891,+        0.18313,+        -0.20797,+        0.09281,+        -0.20797,+        0.09281,+        0.54688,+        0.18313,+        0.54688,+        0.18313,+        0.47703,+        0.20934,+        0.51277,+        0.24297,+        0.53875,+        0.28316,+        0.55469,+        0.32906,+        0.56,+        0.41758,+        0.54082,+        0.48469,+        0.48328,+        0.52699,+        0.39191,+        0.54109,+        0.27094,+        0.52691,+        0.15199,+        0.48438,+        0.06172,+        0.41727,+        0.00477,+        0.32906,+        -0.01422,+        0.28242,+        -0.00891,+        0.24188,+        0.00703,+        0.20852,+        0.03313,+        0.44672,+        0.27297,+        0.43848,+        0.36465,+        0.41375,+        0.43063,+        0.37289,+        0.47059,+        0.31594,+        0.48391,+        0.2584,+        0.47055,+        0.21672,+        0.43047,+        0.19152,+        0.36438,+        0.18313,+        0.27297,+        0.19152,+        0.18184,+        0.21672,+        0.11563,+        0.2584,+        0.07543,+        0.31594,+        0.06203,+        0.37289,+        0.07531,+        0.41375,+        0.11516,+        0.43848,+        0.18125+      ],+      "t": [+        2,+        29,+        28,+        30,+        29,+        2,+        2,+        1,+        0,+        0,+        20,+        19,+        0,+        19,+        18,+        0,+        18,+        17,+        0,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        16,+        13,+        12,+        16,+        12,+        11,+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        11,+        7,+        6,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        28,+        5,+        28,+        27,+        5,+        27,+        26,+        5,+        26,+        25,+        30,+        2,+        0,+        6,+        5,+        25,+        6,+        25,+        24,+        31,+        30,+        0,+        11,+        6,+        24,+        11,+        24,+        23,+        11,+        23,+        22,+        11,+        22,+        21,+        11,+        21,+        36,+        32,+        31,+        0,+        32,+        0,+        16,+        16,+        11,+        36,+        16,+        36,+        35,+        16,+        35,+        34,+        16,+        34,+        33,+        16,+        33,+        32+      ]+    },+    "q": {+      "v": [+        0.42484,+        0.06781,+        0.39898,+        0.03203,+        0.36547,+        0.00562,+        0.32512,+        -0.01066,+        0.27875,+        -0.01609,+        0.19094,+        0.00289,+        0.12375,+        0.05984,+        0.08109,+        0.15012,+        0.06688,+        0.26906,+        0.08102,+        0.39004,+        0.12344,+        0.48141,+        0.19062,+        0.53895,+        0.27875,+        0.55812,+        0.32477,+        0.55281,+        0.365,+        0.53687,+        0.39863,+        0.51082,+        0.42484,+        0.47516,+        0.42484,+        0.545,+        0.51516,+        0.545,+        0.51516,+        -0.21,+        0.42484,+        -0.21,+        0.16219,+        0.27094,+        0.17039,+        0.17934,+        0.195,+        0.11328,+        0.23598,+        0.07332,+        0.29297,+        0.06,+        0.35008,+        0.07336,+        0.39141,+        0.11344,+        0.41648,+        0.17961,+        0.42484,+        0.27094,+        0.41648,+        0.36234,+        0.39141,+        0.42844,+        0.35008,+        0.46852,+        0.29297,+        0.48187,+        0.23598,+        0.46855,+        0.195,+        0.42859,+        0.17039,+        0.36262+      ],+      "t": [+        8,+        21,+        36,+        8,+        36,+        35,+        22,+        21,+        8,+        22,+        8,+        7,+        22,+        7,+        6,+        22,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        5,+        1,+        0,+        0,+        20,+        19,+        0,+        19,+        18,+        18,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        16,+        13,+        12,+        16,+        12,+        11,+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        35,+        11,+        35,+        34,+        11,+        34,+        33,+        11,+        33,+        32,+        23,+        22,+        5,+        16,+        11,+        32,+        16,+        32,+        31,+        16,+        31,+        30,+        16,+        30,+        29,+        24,+        23,+        5,+        18,+        16,+        29,+        18,+        29,+        28,+        25,+        24,+        5,+        25,+        5,+        0,+        0,+        18,+        28,+        0,+        28,+        27,+        0,+        27,+        26,+        0,+        26,+        25+      ]+    },+    "r": {+      "v": [+        0.56391,+        0.43406,+        0.53488,+        0.45348,+        0.50531,+        0.46672,+        0.47414,+        0.47445,+        0.44,+        0.47703,+        0.36582,+        0.46383,+        0.31141,+        0.42422,+        0.27812,+        0.35984,+        0.26703,+        0.27203,+        0.26703,+        0.0,+        0.17672,+        0.0,+        0.17672,+        0.54688,+        0.26703,+        0.54688,+        0.26703,+        0.44,+        0.29555,+        0.49133,+        0.33609,+        0.52906,+        0.38711,+        0.55227,+        0.44672,+        0.56,+        0.47887,+        0.55793,+        0.50875,+        0.55172,+        0.53699,+        0.54113,+        0.56391,+        0.52594+      ],+      "t": [+        1,+        0,+        21,+        1,+        21,+        20,+        1,+        20,+        19,+        1,+        19,+        18,+        1,+        18,+        17,+        1,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        10,+        9,+        8,+        10,+        8,+        7,+        2,+        1,+        16,+        13,+        10,+        7,+        13,+        7,+        6,+        13,+        6,+        5,+        3,+        2,+        16,+        16,+        13,+        5,+        16,+        5,+        4,+        16,+        4,+        3+      ]+    },+    "s": {+      "v": [+        0.47516,+        0.52781,+        0.47516,+        0.44,+        0.43645,+        0.45957,+        0.3975,+        0.47359,+        0.35805,+        0.48203,+        0.31781,+        0.48484,+        0.26457,+        0.47988,+        0.22672,+        0.465,+        0.20422,+        0.44012,+        0.19672,+        0.40484,+        0.20234,+        0.37277,+        0.21922,+        0.35,+        0.25844,+        0.33227,+        0.33109,+        0.315,+        0.36719,+        0.30812,+        0.42594,+        0.2891,+        0.46844,+        0.25734,+        0.49434,+        0.21352,+        0.50297,+        0.15828,+        0.48855,+        0.08602,+        0.44531,+        0.03141,+        0.37645,+        -0.00281,+        0.28516,+        -0.01422,+        0.24367,+        -0.01207,+        0.20016,+        -0.00562,+        0.15395,+        0.00508,+        0.10406,+        0.02,+        0.10406,+        0.11281,+        0.15324,+        0.09012,+        0.20016,+        0.07391,+        0.24488,+        0.0643,+        0.28719,+        0.06109,+        0.34,+        0.06711,+        0.37938,+        0.08516,+        0.40398,+        0.11418,+        0.41219,+        0.15281,+        0.38227,+        0.20566,+        0.2925,+        0.23922,+        0.28859,+        0.24031,+        0.25484,+        0.24703,+        0.1877,+        0.26738,+        0.14156,+        0.29813,+        0.11484,+        0.34055,+        0.10594,+        0.39594,+        0.11922,+        0.46566,+        0.15906,+        0.51734,+        0.22371,+        0.54934,+        0.31109,+        0.56,+        0.35414,+        0.55797,+        0.39547,+        0.55188,+        0.4357,+        0.54187+      ],+      "t": [+        1,+        0,+        50,+        1,+        50,+        49,+        1,+        49,+        48,+        1,+        48,+        47,+        47,+        46,+        45,+        47,+        45,+        44,+        47,+        44,+        43,+        47,+        43,+        42,+        42,+        41,+        40,+        42,+        40,+        39,+        42,+        39,+        38,+        42,+        38,+        37,+        42,+        37,+        36,+        28,+        27,+        26,+        28,+        26,+        25,+        28,+        25,+        24,+        28,+        24,+        23,+        28,+        23,+        22,+        28,+        22,+        21,+        21,+        20,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        21,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        16,+        13,+        12,+        2,+        1,+        47,+        29,+        28,+        21,+        3,+        2,+        47,+        30,+        29,+        21,+        4,+        3,+        47,+        31,+        30,+        21,+        5,+        4,+        47,+        32,+        31,+        21,+        6,+        5,+        47,+        33,+        32,+        21,+        7,+        6,+        47,+        34,+        33,+        21,+        34,+        21,+        16,+        8,+        7,+        47,+        8,+        47,+        42,+        35,+        34,+        16,+        9,+        8,+        42,+        36,+        35,+        16,+        36,+        16,+        12,+        36,+        12,+        11,+        10,+        9,+        42,+        42,+        36,+        11,+        42,+        11,+        10+      ]+    },+    "t": {+      "v": [+        0.29984,+        0.70219,+        0.29984,+        0.54688,+        0.50391,+        0.54688,+        0.50391,+        0.47703,+        0.29984,+        0.47703,+        0.29984,+        0.18016,+        0.30559,+        0.12879,+        0.32281,+        0.09563,+        0.3543,+        0.0777,+        0.40281,+        0.07172,+        0.50391,+        0.07172,+        0.50391,+        0.0,+        0.39406,+        0.0,+        0.30785,+        0.01012,+        0.25141,+        0.04047,+        0.22035,+        0.0957,+        0.21,+        0.18016,+        0.21,+        0.47703,+        0.06391,+        0.47703,+        0.06391,+        0.54688,+        0.21,+        0.54688,+        0.21,+        0.70219+      ],+      "t": [+        1,+        0,+        21,+        1,+        21,+        20,+        20,+        19,+        18,+        20,+        18,+        17,+        17,+        16,+        15,+        17,+        15,+        14,+        17,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        13,+        10,+        9,+        13,+        9,+        8,+        13,+        8,+        7,+        13,+        7,+        6,+        13,+        6,+        5,+        4,+        3,+        2,+        4,+        2,+        1,+        4,+        1,+        20,+        4,+        20,+        17,+        17,+        13,+        5,+        17,+        5,+        4+      ]+    },+    "u": {+      "v": [+        0.09516,+        0.20703,+        0.09516,+        0.54594,+        0.185,+        0.54594,+        0.185,+        0.20703,+        0.19152,+        0.14305,+        0.21109,+        0.09859,+        0.24445,+        0.07258,+        0.29203,+        0.06391,+        0.34801,+        0.07508,+        0.38906,+        0.10859,+        0.41438,+        0.16301,+        0.42281,+        0.23688,+        0.42281,+        0.54594,+        0.51313,+        0.54594,+        0.51313,+        0.0,+        0.42281,+        0.0,+        0.42281,+        0.08203,+        0.39457,+        0.04039,+        0.35766,+        0.01016,+        0.31293,+        -0.00813,+        0.26125,+        -0.01422,+        0.18793,+        -0.00047,+        0.13609,+        0.04078,+        0.10539,+        0.10984+      ],+      "t": [+        1,+        0,+        23,+        1,+        23,+        22,+        1,+        22,+        21,+        21,+        20,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        21,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        3,+        2,+        1,+        3,+        1,+        21,+        16,+        13,+        10,+        16,+        10,+        9,+        16,+        9,+        8,+        16,+        8,+        7,+        4,+        3,+        21,+        21,+        16,+        7,+        21,+        7,+        6,+        21,+        6,+        5,+        21,+        5,+        4+      ]+    },+    "v": {+      "v": [+        0.04891,+        0.54688,+        0.14203,+        0.54688,+        0.30078,+        0.08797,+        0.46,+        0.54688,+        0.55328,+        0.54688,+        0.35891,+        0.0,+        0.24313,+        0.0+      ],+      "t": [+        1,+        0,+        6,+        5,+        4,+        3,+        5,+        3,+        2,+        2,+        1,+        6,+        2,+        6,+        5+      ]+    },+    "w": {+      "v": [+        0.0,+        0.54688,+        0.08891,+        0.54688,+        0.18406,+        0.105,+        0.26219,+        0.38719,+        0.33891,+        0.38719,+        0.41797,+        0.105,+        0.51313,+        0.54688,+        0.60203,+        0.54688,+        0.47406,+        0.0,+        0.38812,+        0.0,+        0.30078,+        0.29984,+        0.21391,+        0.0,+        0.12797,+        0.0+      ],+      "t": [+        1,+        0,+        12,+        12,+        11,+        10,+        10,+        9,+        8,+        8,+        7,+        6,+        8,+        6,+        5,+        5,+        4,+        3,+        2,+        1,+        12,+        2,+        12,+        10,+        10,+        8,+        5,+        10,+        5,+        3,+        10,+        3,+        2+      ]+    },+    "x": {+      "v": [+        0.54594,+        0.54688,+        0.35016,+        0.28516,+        0.565,+        0.0,+        0.46094,+        0.0,+        0.30078,+        0.21922,+        0.14109,+        0.0,+        0.03719,+        0.0,+        0.25203,+        0.28516,+        0.05609,+        0.54688,+        0.15578,+        0.54688,+        0.30078,+        0.34906,+        0.44484,+        0.54688+      ],+      "t": [+        1,+        0,+        11,+        1,+        11,+        10,+        10,+        9,+        8,+        10,+        8,+        7,+        10,+        7,+        6,+        10,+        6,+        5,+        10,+        5,+        4,+        10,+        4,+        3,+        10,+        3,+        2,+        10,+        2,+        1+      ]+    },+    "y": {+      "v": [+        0.41891,+        0.17578,+        0.39348,+        0.10961,+        0.36188,+        0.02547,+        0.32141,+        -0.0784,+        0.29688,+        -0.13187,+        0.27156,+        -0.1652,+        0.24063,+        -0.18891,+        0.20422,+        -0.2032,+        0.16219,+        -0.20797,+        0.08984,+        -0.20797,+        0.08984,+        -0.13281,+        0.14313,+        -0.13281,+        0.17836,+        -0.12707,+        0.205,+        -0.10984,+        0.23055,+        -0.06871,+        0.26219,+        0.00875,+        0.05078,+        0.54688,+        0.14594,+        0.54688,+        0.30812,+        0.11922,+        0.46781,+        0.54688,+        0.56297,+        0.54688+      ],+      "t": [+        0,+        20,+        19,+        0,+        19,+        18,+        18,+        17,+        16,+        18,+        16,+        15,+        18,+        15,+        14,+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        11,+        7,+        6,+        11,+        6,+        5,+        11,+        5,+        4,+        4,+        3,+        2,+        4,+        2,+        1,+        4,+        1,+        0,+        4,+        0,+        18,+        4,+        18,+        14,+        4,+        14,+        13,+        4,+        13,+        12,+        4,+        12,+        11+      ]+    },+    "z": {+      "v": [+        0.11078,+        0.54781,+        0.50781,+        0.54781,+        0.50781,+        0.46578,+        0.19391,+        0.07328,+        0.50781,+        0.07328,+        0.50781,+        0.0,+        0.09906,+        0.0,+        0.09906,+        0.08297,+        0.41313,+        0.47609,+        0.11078,+        0.47609+      ],+      "t": [+        1,+        0,+        9,+        1,+        9,+        8,+        1,+        8,+        7,+        1,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        6,+        2,+        1+      ]+    },+    "{": {+      "v": [+        0.49422,+        -0.09281,+        0.49422,+        -0.16312,+        0.46297,+        -0.16312,+        0.36137,+        -0.15406,+        0.3,+        -0.12688,+        0.26906,+        -0.07285,+        0.25875,+        0.01703,+        0.25875,+        0.13375,+        0.25223,+        0.19613,+        0.23266,+        0.23578,+        0.19598,+        0.25711,+        0.13812,+        0.26422,+        0.10797,+        0.26422,+        0.10797,+        0.33406,+        0.13812,+        0.33406,+        0.19625,+        0.34102,+        0.23281,+        0.36188,+        0.25227,+        0.40105,+        0.25875,+        0.46297,+        0.25875,+        0.58016,+        0.26906,+        0.67,+        0.3,+        0.72391,+        0.36137,+        0.75086,+        0.46297,+        0.75984,+        0.49422,+        0.75984,+        0.49422,+        0.69,+        0.46,+        0.69,+        0.40348,+        0.68469,+        0.37078,+        0.66875,+        0.35531,+        0.63547,+        0.35016,+        0.57812,+        0.35016,+        0.45703,+        0.34457,+        0.39082,+        0.32781,+        0.34563,+        0.29777,+        0.31668,+        0.25203,+        0.29891,+        0.29809,+        0.28027,+        0.32812,+        0.25094,+        0.34465,+        0.2059,+        0.35016,+        0.14016,+        0.35016,+        0.01906,+        0.35531,+        -0.03855,+        0.37078,+        -0.07172,+        0.40348,+        -0.08754,+        0.46,+        -0.09281+      ],+      "t": [+        1,+        0,+        44,+        1,+        44,+        43,+        1,+        43,+        42,+        40,+        39,+        38,+        40,+        38,+        37,+        40,+        37,+        36,+        40,+        36,+        35,+        35,+        34,+        33,+        35,+        33,+        32,+        35,+        32,+        31,+        35,+        31,+        30,+        35,+        30,+        29,+        26,+        25,+        24,+        26,+        24,+        23,+        26,+        23,+        22,+        26,+        22,+        21,+        21,+        20,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        14,+        13,+        12,+        14,+        12,+        11,+        14,+        11,+        10,+        14,+        10,+        9,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        3,+        2,+        1,+        3,+        1,+        42,+        3,+        42,+        41,+        3,+        41,+        40,+        3,+        40,+        35,+        27,+        26,+        21,+        15,+        14,+        9,+        15,+        9,+        8,+        8,+        7,+        3,+        8,+        3,+        35,+        28,+        27,+        21,+        16,+        15,+        8,+        16,+        8,+        35,+        29,+        28,+        21,+        29,+        21,+        17,+        17,+        16,+        35,+        17,+        35,+        29+      ]+    },+    "|": {+      "v": [+        0.34281,+        0.76422,+        0.34281,+        -0.23578,+        0.25875,+        -0.23578,+        0.25875,+        0.76422+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "}": {+      "v": [+        0.10797,+        -0.09281,+        0.14109,+        -0.09281,+        0.19801,+        -0.08742,+        0.23094,+        -0.07125,+        0.24676,+        -0.03797,+        0.25203,+        0.01906,+        0.25203,+        0.14016,+        0.2575,+        0.2059,+        0.27391,+        0.25094,+        0.30398,+        0.28027,+        0.35016,+        0.29891,+        0.3043,+        0.31668,+        0.27422,+        0.34563,+        0.25758,+        0.39082,+        0.25203,+        0.45703,+        0.25203,+        0.57812,+        0.24676,+        0.63516,+        0.23094,+        0.66844,+        0.19801,+        0.68461,+        0.14109,+        0.69,+        0.10797,+        0.69,+        0.10797,+        0.75984,+        0.13812,+        0.75984,+        0.23965,+        0.75086,+        0.30078,+        0.72391,+        0.3316,+        0.67,+        0.34187,+        0.58016,+        0.34187,+        0.46297,+        0.3484,+        0.40105,+        0.36797,+        0.36188,+        0.40477,+        0.34102,+        0.46297,+        0.33406,+        0.49422,+        0.33406,+        0.49422,+        0.26422,+        0.46297,+        0.26422,+        0.40477,+        0.25711,+        0.36797,+        0.23578,+        0.3484,+        0.19613,+        0.34187,+        0.13375,+        0.34187,+        0.01703,+        0.3316,+        -0.07285,+        0.30078,+        -0.12688,+        0.23965,+        -0.15406,+        0.13812,+        -0.16312,+        0.10797,+        -0.16312+      ],+      "t": [+        1,+        0,+        44,+        1,+        44,+        43,+        1,+        43,+        42,+        1,+        42,+        41,+        41,+        40,+        39,+        41,+        39,+        38,+        41,+        38,+        37,+        34,+        33,+        32,+        34,+        32,+        31,+        34,+        31,+        30,+        34,+        30,+        29,+        27,+        26,+        25,+        27,+        25,+        24,+        27,+        24,+        23,+        23,+        22,+        21,+        23,+        21,+        20,+        23,+        20,+        19,+        23,+        19,+        18,+        23,+        18,+        17,+        23,+        17,+        16,+        23,+        16,+        15,+        15,+        14,+        13,+        15,+        13,+        12,+        15,+        12,+        11,+        15,+        11,+        10,+        10,+        9,+        8,+        10,+        8,+        7,+        10,+        7,+        6,+        10,+        6,+        5,+        10,+        5,+        4,+        2,+        1,+        41,+        35,+        34,+        29,+        35,+        29,+        28,+        28,+        27,+        23,+        28,+        23,+        15,+        28,+        15,+        10,+        3,+        2,+        41,+        36,+        35,+        28,+        36,+        28,+        10,+        4,+        3,+        41,+        4,+        41,+        37,+        37,+        36,+        10,+        37,+        10,+        4+      ]+    },+    "~": {+      "v": [+        0.55906,+        0.38094,+        0.55906,+        0.29594,+        0.52289,+        0.2709,+        0.4875,+        0.25359,+        0.45172,+        0.24363,+        0.41406,+        0.24031,+        0.36734,+        0.24652,+        0.315,+        0.26516,+        0.30559,+        0.2693,+        0.29891,+        0.27203,+        0.26437,+        0.28555,+        0.23609,+        0.29391,+        0.21102,+        0.29836,+        0.18609,+        0.29984,+        0.14852,+        0.29621,+        0.11297,+        0.28531,+        0.07828,+        0.26687,+        0.04297,+        0.24031,+        0.04297,+        0.32516,+        0.08047,+        0.35047,+        0.11672,+        0.36766,+        0.15355,+        0.37762,+        0.19281,+        0.38094,+        0.21836,+        0.37957,+        0.24313,+        0.37547,+        0.27055,+        0.3677,+        0.30375,+        0.355,+        0.31066,+        0.35191,+        0.31984,+        0.34766,+        0.37363,+        0.3275,+        0.42188,+        0.32078,+        0.4559,+        0.32449,+        0.48953,+        0.33563,+        0.52363,+        0.35445+      ],+      "t": [+        1,+        0,+        33,+        1,+        33,+        32,+        1,+        32,+        31,+        1,+        31,+        30,+        1,+        30,+        29,+        28,+        27,+        26,+        28,+        26,+        25,+        28,+        25,+        24,+        28,+        24,+        23,+        28,+        23,+        22,+        28,+        22,+        21,+        28,+        21,+        20,+        28,+        20,+        19,+        28,+        19,+        18,+        18,+        17,+        16,+        18,+        16,+        15,+        18,+        15,+        14,+        18,+        14,+        13,+        18,+        13,+        12,+        8,+        7,+        6,+        8,+        6,+        5,+        8,+        5,+        4,+        8,+        4,+        3,+        8,+        3,+        2,+        8,+        2,+        1,+        8,+        1,+        29,+        8,+        29,+        28,+        28,+        18,+        12,+        28,+        12,+        11,+        28,+        11,+        10,+        28,+        10,+        9,+        28,+        9,+        8+      ]+    },+    "±": {+      "v": [+        0.04297,+        0.08297,+        0.55906,+        0.08297,+        0.55906,+        0.0,+        0.04297,+        0.0,+        0.34187,+        0.57172,+        0.34187,+        0.41109,+        0.55906,+        0.41109,+        0.55906,+        0.32812,+        0.34187,+        0.32812,+        0.34187,+        0.16609,+        0.25984,+        0.16609,+        0.25984,+        0.32812,+        0.04297,+        0.32812,+        0.04297,+        0.41109,+        0.25984,+        0.41109,+        0.25984,+        0.57172+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2,+        5,+        4,+        15,+        5,+        15,+        14,+        14,+        13,+        12,+        14,+        12,+        11,+        11,+        10,+        9,+        11,+        9,+        8,+        8,+        7,+        6,+        8,+        6,+        5,+        8,+        5,+        14,+        8,+        14,+        11+      ]+    },+    "µ": {+      "v": [+        0.09516,+        -0.20906,+        0.09516,+        0.54688,+        0.185,+        0.54688,+        0.185,+        0.20703,+        0.1923,+        0.14578,+        0.21422,+        0.10078,+        0.2498,+        0.07312,+        0.29781,+        0.06391,+        0.35219,+        0.0743,+        0.39125,+        0.10547,+        0.41492,+        0.15687,+        0.42281,+        0.22797,+        0.42281,+        0.54688,+        0.51313,+        0.54688,+        0.51313,+        0.125,+        0.51508,+        0.1,+        0.52094,+        0.0825,+        0.53086,+        0.0723,+        0.545,+        0.06891,+        0.55004,+        0.06949,+        0.55641,+        0.07125,+        0.56512,+        0.07473,+        0.57719,+        0.08016,+        0.57719,+        0.00781,+        0.5591,+        -0.00195,+        0.54203,+        -0.00875,+        0.52543,+        -0.01285,+        0.50875,+        -0.01422,+        0.48152,+        -0.00941,+        0.46016,+        0.005,+        0.445,+        0.02918,+        0.43609,+        0.06297,+        0.41109,+        0.02891,+        0.38109,+        0.00484,+        0.34586,+        -0.00945,+        0.30516,+        -0.01422,+        0.26375,+        -0.00957,+        0.22922,+        0.00438,+        0.20062,+        0.02809,+        0.17672,+        0.06203,+        0.17672,+        -0.20906+      ],+      "t": [+        1,+        0,+        40,+        1,+        40,+        39,+        1,+        39,+        38,+        38,+        37,+        36,+        38,+        36,+        35,+        38,+        35,+        34,+        38,+        34,+        33,+        38,+        33,+        32,+        38,+        32,+        31,+        31,+        30,+        29,+        31,+        29,+        28,+        31,+        28,+        27,+        31,+        27,+        26,+        31,+        26,+        25,+        31,+        25,+        24,+        31,+        24,+        23,+        23,+        22,+        21,+        23,+        21,+        20,+        23,+        20,+        19,+        23,+        19,+        18,+        23,+        18,+        17,+        23,+        17,+        16,+        14,+        13,+        12,+        14,+        12,+        11,+        14,+        11,+        10,+        14,+        10,+        9,+        14,+        9,+        8,+        3,+        2,+        1,+        3,+        1,+        38,+        31,+        23,+        16,+        31,+        16,+        15,+        31,+        15,+        14,+        31,+        14,+        8,+        31,+        8,+        7,+        4,+        3,+        38,+        38,+        31,+        7,+        38,+        7,+        6,+        38,+        6,+        5,+        38,+        5,+        4+      ]+    },+    "Ω": {+      "v": [+        0.03609,+        0.0,+        0.03609,+        0.08406,+        0.15578,+        0.08406,+        0.10406,+        0.15063,+        0.06891,+        0.21969,+        0.04875,+        0.29539,+        0.04203,+        0.38188,+        0.05961,+        0.51816,+        0.11234,+        0.62328,+        0.19438,+        0.69055,+        0.29984,+        0.71297,+        0.40605,+        0.69063,+        0.48844,+        0.62359,+        0.54141,+        0.51848,+        0.55906,+        0.38188,+        0.55227,+        0.29531,+        0.53187,+        0.21938,+        0.4966,+        0.15031,+        0.44484,+        0.08406,+        0.56594,+        0.08406,+        0.56594,+        0.0,+        0.33984,+        0.0,+        0.33984,+        0.08406,+        0.39195,+        0.13191,+        0.43109,+        0.20141,+        0.4557,+        0.28875,+        0.46391,+        0.39016,+        0.45289,+        0.49059,+        0.41984,+        0.56719,+        0.36813,+        0.6157,+        0.30078,+        0.63187,+        0.23348,+        0.6157,+        0.18188,+        0.56719,+        0.14906,+        0.49059,+        0.13812,+        0.39016,+        0.14629,+        0.28875,+        0.17078,+        0.20141,+        0.21004,+        0.13191,+        0.26219,+        0.08406,+        0.26219,+        0.0+      ],+      "t": [+        1,+        0,+        39,+        39,+        38,+        37,+        39,+        37,+        36,+        23,+        22,+        21,+        21,+        20,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        21,+        17,+        16,+        21,+        16,+        15,+        21,+        15,+        14,+        14,+        13,+        12,+        14,+        12,+        11,+        11,+        10,+        9,+        11,+        9,+        8,+        8,+        7,+        6,+        8,+        6,+        5,+        8,+        5,+        4,+        8,+        4,+        3,+        8,+        3,+        2,+        2,+        1,+        39,+        2,+        39,+        36,+        2,+        36,+        35,+        2,+        35,+        34,+        24,+        23,+        21,+        24,+        21,+        14,+        8,+        2,+        34,+        8,+        34,+        33,+        8,+        33,+        32,+        8,+        32,+        31,+        8,+        31,+        30,+        25,+        24,+        14,+        11,+        8,+        30,+        11,+        30,+        29,+        11,+        29,+        28,+        11,+        28,+        27,+        26,+        25,+        14,+        14,+        11,+        27,+        14,+        27,+        26+      ]+    },+    "°": {+      "v": [+        0.30078,+        0.74219,+        0.33172,+        0.73918,+        0.36109,+        0.73016,+        0.38789,+        0.71562,+        0.41109,+        0.69578,+        0.43047,+        0.67238,+        0.44453,+        0.64594,+        0.4532,+        0.61703,+        0.45609,+        0.58594,+        0.44473,+        0.52648,+        0.41063,+        0.47687,+        0.36027,+        0.44336,+        0.29984,+        0.43219,+        0.23938,+        0.44316,+        0.18984,+        0.47609,+        0.15691,+        0.52551,+        0.14594,+        0.58594,+        0.15715,+        0.64637,+        0.19078,+        0.69672,+        0.24078,+        0.73082,+        0.30078,+        0.67922,+        0.26504,+        0.67242,+        0.235,+        0.65203,+        0.21473,+        0.62199,+        0.20797,+        0.58594,+        0.21461,+        0.55004,+        0.23453,+        0.52047,+        0.26422,+        0.50078,+        0.29984,+        0.49422,+        0.33602,+        0.5009,+        0.36641,+        0.52094,+        0.38715,+        0.55063,+        0.39406,+        0.58594,+        0.38723,+        0.62172,+        0.36672,+        0.65187,+        0.33656,+        0.67238+      ],+      "t": [+        16,+        24,+        23,+        16,+        23,+        22,+        25,+        24,+        16,+        25,+        16,+        15,+        25,+        15,+        14,+        25,+        14,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        13,+        10,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        9,+        5,+        4,+        9,+        4,+        3,+        9,+        3,+        2,+        9,+        2,+        1,+        1,+        0,+        19,+        1,+        19,+        18,+        1,+        18,+        17,+        1,+        17,+        16,+        1,+        16,+        22,+        1,+        22,+        21,+        1,+        21,+        20,+        1,+        20,+        35,+        1,+        35,+        34,+        1,+        34,+        33,+        26,+        25,+        13,+        9,+        1,+        33,+        9,+        33,+        32,+        9,+        32,+        31,+        9,+        31,+        30,+        9,+        30,+        29,+        27,+        26,+        13,+        13,+        9,+        29,+        13,+        29,+        28,+        13,+        28,+        27+      ]+    },+    "–": {+      "v": [+        0.0,+        0.30906,+        0.60203,+        0.30906,+        0.60203,+        0.24031,+        0.0,+        0.24031+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "—": {+      "v": [+        0.0,+        0.30906,+        0.60203,+        0.30906,+        0.60203,+        0.24031,+        0.0,+        0.24031+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "×": {+      "v": [+        0.07328,+        0.14313,+        0.24422,+        0.31297,+        0.07328,+        0.48391,+        0.12984,+        0.54109,+        0.30078,+        0.37016,+        0.47219,+        0.54109,+        0.52875,+        0.48391,+        0.35797,+        0.31297,+        0.52781,+        0.14313,+        0.47125,+        0.085,+        0.30078,+        0.25594,+        0.13094,+        0.085+      ],+      "t": [+        1,+        0,+        11,+        1,+        11,+        10,+        1,+        10,+        9,+        1,+        9,+        8,+        1,+        8,+        7,+        1,+        7,+        6,+        1,+        6,+        5,+        1,+        5,+        4,+        1,+        4,+        3,+        1,+        3,+        2+      ]+    },+    "·": {+      "v": [+        0.23875,+        0.42188,+        0.36188,+        0.42188,+        0.36188,+        0.27297,+        0.23875,+        0.27297+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "′": {+      "v": [+        0.20906,+        0.54688,+        0.29391,+        0.72906,+        0.39266,+        0.72906,+        0.25203,+        0.54688+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2+      ]+    },+    "″": {+      "v": [+        0.28234,+        0.54688,+        0.36719,+        0.72906,+        0.46594,+        0.72906,+        0.32531,+        0.54688,+        0.13578,+        0.54688,+        0.22063,+        0.72906,+        0.31938,+        0.72906,+        0.17875,+        0.54688+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2,+        5,+        4,+        7,+        5,+        7,+        6+      ]+    },+    "≤": {+      "v": [+        0.55906,+        0.21391,+        0.55906,+        0.125,+        0.04297,+        0.28719,+        0.04297,+        0.36922,+        0.55906,+        0.53078,+        0.55906,+        0.44094,+        0.16797,+        0.32812,+        0.55906,+        0.08297,+        0.55906,+        0.0,+        0.04297,+        0.0,+        0.04297,+        0.08297+      ],+      "t": [+        1,+        0,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        6,+        2,+        1,+        8,+        7,+        10,+        8,+        10,+        9+      ]+    },+    "≥": {+      "v": [+        0.04297,+        0.21391,+        0.435,+        0.32812,+        0.04297,+        0.44094,+        0.04297,+        0.53078,+        0.55906,+        0.36922,+        0.55906,+        0.28719,+        0.04297,+        0.125,+        0.04297,+        0.08297,+        0.55906,+        0.08297,+        0.55906,+        0.0,+        0.04297,+        0.0+      ],+      "t": [+        1,+        0,+        6,+        1,+        6,+        5,+        1,+        5,+        4,+        1,+        4,+        3,+        1,+        3,+        2,+        8,+        7,+        10,+        8,+        10,+        9+      ]+    },+    "≈": {+      "v": [+        0.55906,+        0.47016,+        0.55906,+        0.38484,+        0.52289,+        0.3598,+        0.4875,+        0.3425,+        0.45172,+        0.33242,+        0.41406,+        0.32906,+        0.36734,+        0.33531,+        0.315,+        0.35406,+        0.30559,+        0.35816,+        0.29891,+        0.36078,+        0.26437,+        0.37477,+        0.23609,+        0.38328,+        0.21102,+        0.38773,+        0.18609,+        0.38922,+        0.14852,+        0.38559,+        0.11297,+        0.37469,+        0.07828,+        0.35609,+        0.04297,+        0.32906,+        0.04297,+        0.41406,+        0.08047,+        0.43941,+        0.11672,+        0.45672,+        0.15355,+        0.4668,+        0.19281,+        0.47016,+        0.21836,+        0.46883,+        0.24313,+        0.46484,+        0.27066,+        0.45695,+        0.30422,+        0.44391,+        0.31055,+        0.44105,+        0.31984,+        0.43656,+        0.37363,+        0.41676,+        0.42188,+        0.41016,+        0.4559,+        0.41383,+        0.48953,+        0.42484,+        0.52363,+        0.44352,+        0.55906,+        0.29109,+        0.55906,+        0.20516,+        0.52289,+        0.18004,+        0.4875,+        0.1625,+        0.45172,+        0.1523,+        0.41406,+        0.14891,+        0.36734,+        0.15516,+        0.315,+        0.17391,+        0.30559,+        0.17813,+        0.29891,+        0.18109,+        0.26238,+        0.19574,+        0.23406,+        0.20438,+        0.21004,+        0.20859,+        0.18609,+        0.21,+        0.14887,+        0.20633,+        0.11344,+        0.19531,+        0.07863,+        0.17637,+        0.04297,+        0.14891,+        0.04297,+        0.23391,+        0.08082,+        0.26,+        0.11719,+        0.27766,+        0.15391,+        0.28773,+        0.19281,+        0.29109,+        0.24387,+        0.28437,+        0.30328,+        0.26422,+        0.30375,+        0.26422,+        0.31043,+        0.26113,+        0.31984,+        0.25688,+        0.37363,+        0.23672,+        0.42188,+        0.23,+        0.45523,+        0.23371,+        0.48875,+        0.24484,+        0.5232,+        0.26391+      ],+      "t": [+        1,+        0,+        33,+        1,+        33,+        32,+        1,+        32,+        31,+        1,+        31,+        30,+        1,+        30,+        29,+        28,+        27,+        26,+        28,+        26,+        25,+        28,+        25,+        24,+        28,+        24,+        23,+        28,+        23,+        22,+        28,+        22,+        21,+        28,+        21,+        20,+        28,+        20,+        19,+        28,+        19,+        18,+        18,+        17,+        16,+        18,+        16,+        15,+        18,+        15,+        14,+        18,+        14,+        13,+        18,+        13,+        12,+        10,+        9,+        8,+        8,+        7,+        6,+        8,+        6,+        5,+        8,+        5,+        4,+        8,+        4,+        3,+        8,+        3,+        2,+        8,+        2,+        1,+        8,+        1,+        29,+        8,+        29,+        28,+        28,+        18,+        12,+        28,+        12,+        11,+        28,+        11,+        10,+        28,+        10,+        8,+        35,+        34,+        66,+        35,+        66,+        65,+        35,+        65,+        64,+        35,+        64,+        63,+        35,+        63,+        62,+        60,+        59,+        58,+        60,+        58,+        57,+        60,+        57,+        56,+        60,+        56,+        55,+        60,+        55,+        54,+        60,+        54,+        53,+        60,+        53,+        52,+        52,+        51,+        50,+        52,+        50,+        49,+        52,+        49,+        48,+        52,+        48,+        47,+        52,+        47,+        46,+        42,+        41,+        40,+        42,+        40,+        39,+        42,+        39,+        38,+        42,+        38,+        37,+        42,+        37,+        36,+        42,+        36,+        35,+        42,+        35,+        62,+        42,+        62,+        61,+        42,+        61,+        60,+        60,+        52,+        46,+        60,+        46,+        45,+        60,+        45,+        44,+        60,+        44,+        43,+        60,+        43,+        42+      ]+    },+    "÷": {+      "v": [+        0.24125,+        0.19281,+        0.36078,+        0.19281,+        0.36078,+        0.07328,+        0.24125,+        0.07328,+        0.24125,+        0.55422,+        0.36078,+        0.55422,+        0.36078,+        0.43406,+        0.24125,+        0.43406,+        0.04297,+        0.355,+        0.55906,+        0.355,+        0.55906,+        0.27203,+        0.04297,+        0.27203+      ],+      "t": [+        1,+        0,+        3,+        1,+        3,+        2,+        5,+        4,+        7,+        5,+        7,+        6,+        9,+        8,+        11,+        9,+        11,+        10+      ]+    },+    "√": {+      "v": [+        0.04891,+        0.35797,+        0.02875,+        0.41891,+        0.17094,+        0.46687,+        0.27781,+        0.10984,+        0.50594,+        0.82812,+        0.57812,+        0.82812,+        0.57812,+        0.76422,+        0.55516,+        0.76422,+        0.30812,+        -0.01906,+        0.24609,+        -0.01906,+        0.12594,+        0.38375+      ],+      "t": [+        1,+        0,+        10,+        10,+        9,+        8,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        2,+        1,+        10,+        2,+        10,+        8,+        8,+        7,+        3,+        8,+        3,+        2+      ]+    },+    "∞": {+      "v": [+        0.30078,+        0.37312,+        0.32695,+        0.42363,+        0.35953,+        0.46109,+        0.39762,+        0.48441,+        0.44,+        0.49219,+        0.49406,+        0.47883,+        0.54,+        0.43875,+        0.57152,+        0.37914,+        0.58203,+        0.30719,+        0.57207,+        0.23305,+        0.54219,+        0.17375,+        0.49703,+        0.13496,+        0.44094,+        0.12203,+        0.40277,+        0.12812,+        0.36922,+        0.14641,+        0.33625,+        0.18078,+        0.29984,+        0.23484,+        0.26797,+        0.18293,+        0.23578,+        0.14813,+        0.20129,+        0.12855,+        0.16219,+        0.12203,+        0.10621,+        0.13508,+        0.06047,+        0.17422,+        0.03012,+        0.23363,+        0.02,+        0.30719,+        0.02957,+        0.38305,+        0.05828,+        0.44188,+        0.1032,+        0.47961,+        0.16109,+        0.49219,+        0.20383,+        0.48516,+        0.24016,+        0.46406,+        0.27195,+        0.42734,+        0.33891,+        0.30609,+        0.36531,+        0.2502,+        0.38891,+        0.21531,+        0.41301,+        0.19703,+        0.44094,+        0.19094,+        0.4725,+        0.1991,+        0.49781,+        0.22359,+        0.51445,+        0.26137,+        0.52,+        0.30906,+        0.51488,+        0.35613,+        0.49953,+        0.39266,+        0.47562,+        0.41609,+        0.44484,+        0.42391,+        0.4143,+        0.41676,+        0.38703,+        0.39531,+        0.36219,+        0.35871,+        0.26219,+        0.31,+        0.23605,+        0.36516,+        0.21234,+        0.39969,+        0.18812,+        0.41785,+        0.16016,+        0.42391,+        0.12859,+        0.41578,+        0.10328,+        0.39141,+        0.08664,+        0.3541,+        0.08109,+        0.30719,+        0.08613,+        0.25934,+        0.10125,+        0.22234,+        0.1248,+        0.19879,+        0.15484,+        0.19094,+        0.18578,+        0.19812,+        0.21328,+        0.21969,+        0.23848,+        0.25672+      ],+      "t": [+        63,+        32,+        47,+        63,+        47,+        46,+        33,+        32,+        63,+        33,+        63,+        62,+        57,+        56,+        24,+        57,+        24,+        23,+        57,+        23,+        22,+        57,+        22,+        21,+        21,+        20,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        21,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        16,+        13,+        12,+        16,+        12,+        11,+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        11,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        6,+        2,+        1,+        0,+        31,+        30,+        0,+        30,+        29,+        0,+        29,+        28,+        0,+        28,+        27,+        27,+        26,+        25,+        27,+        25,+        24,+        24,+        56,+        55,+        24,+        55,+        54,+        48,+        63,+        46,+        48,+        46,+        45,+        58,+        57,+        21,+        27,+        24,+        54,+        27,+        54,+        53,+        27,+        53,+        52,+        27,+        52,+        51,+        59,+        58,+        21,+        0,+        27,+        51,+        0,+        51,+        50,+        0,+        50,+        49,+        0,+        49,+        48,+        0,+        48,+        45,+        60,+        59,+        21,+        1,+        0,+        45,+        1,+        45,+        44,+        61,+        60,+        21,+        61,+        21,+        16,+        6,+        1,+        44,+        6,+        44,+        43,+        6,+        43,+        42,+        6,+        42,+        41,+        6,+        41,+        40,+        6,+        40,+        39,+        62,+        61,+        16,+        11,+        6,+        39,+        11,+        39,+        38,+        11,+        38,+        37,+        11,+        37,+        36,+        11,+        36,+        35,+        33,+        62,+        16,+        16,+        11,+        35,+        16,+        35,+        34,+        16,+        34,+        33+      ]+    },+    "Δ": {+      "v": [+        0.58406,+        0.0,+        0.01812,+        0.0,+        0.24125,+        0.72906,+        0.36078,+        0.72906,+        0.45797,+        0.08297,+        0.30078,+        0.64203,+        0.14359,+        0.08297+      ],+      "t": [+        1,+        6,+        5,+        4,+        6,+        1,+        4,+        1,+        0,+        4,+        0,+        3,+        2,+        1,+        5,+        5,+        4,+        3,+        5,+        3,+        2+      ]+    },+    "α": {+      "v": [+        0.24422,+        0.55906,+        0.36488,+        0.52148,+        0.42438,+        0.40375,+        0.47266,+        0.54688,+        0.55281,+        0.54688,+        0.45266,+        0.25047,+        0.47219,+        0.14359,+        0.47973,+        0.12066,+        0.49359,+        0.09969,+        0.51262,+        0.08211,+        0.52938,+        0.07625,+        0.57234,+        0.07625,+        0.57234,+        0.0,+        0.51859,+        0.0,+        0.47391,+        0.01027,+        0.43172,+        0.04109,+        0.41453,+        0.06719,+        0.40328,+        0.10453,+        0.37527,+        0.05371,+        0.33594,+        0.00781,+        0.30199,+        -0.00742,+        0.24422,+        -0.01219,+        0.15777,+        0.00684,+        0.09187,+        0.06203,+        0.04863,+        0.15281,+        0.03422,+        0.27297,+        0.04961,+        0.3982,+        0.09578,+        0.48391,+        0.16773,+        0.53957,+        0.37406,+        0.25438,+        0.3525,+        0.36719,+        0.31449,+        0.45379,+        0.24422,+        0.48297,+        0.20082,+        0.46977,+        0.16656,+        0.42922,+        0.13832,+        0.35672,+        0.12891,+        0.27297,+        0.13793,+        0.17953,+        0.165,+        0.11422,+        0.20363,+        0.07508,+        0.24422,+        0.06203,+        0.30164,+        0.08805,+        0.34422,+        0.16609+      ],+      "t": [+        25,+        36,+        35,+        25,+        35,+        34,+        25,+        34,+        33,+        37,+        36,+        25,+        37,+        25,+        24,+        37,+        24,+        23,+        37,+        23,+        22,+        22,+        21,+        20,+        22,+        20,+        19,+        22,+        19,+        18,+        22,+        18,+        17,+        17,+        16,+        15,+        17,+        15,+        14,+        17,+        14,+        13,+        17,+        13,+        12,+        12,+        11,+        10,+        12,+        10,+        9,+        12,+        9,+        8,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        5,+        1,+        0,+        0,+        28,+        27,+        0,+        27,+        26,+        0,+        26,+        25,+        0,+        25,+        33,+        0,+        33,+        32,+        0,+        32,+        31,+        38,+        37,+        22,+        17,+        12,+        8,+        17,+        8,+        7,+        17,+        7,+        6,+        17,+        6,+        5,+        5,+        0,+        31,+        5,+        31,+        30,+        5,+        30,+        29,+        5,+        29,+        42,+        5,+        42,+        41,+        39,+        38,+        22,+        17,+        5,+        41,+        17,+        41,+        40,+        40,+        39,+        22,+        40,+        22,+        17+      ]+    },+    "β": {+      "v": [+        0.16453,+        0.03375,+        0.16453,+        -0.20797,+        0.07422,+        -0.20797,+        0.07422,+        0.54344,+        0.13051,+        0.71801,+        0.29938,+        0.76609,+        0.44551,+        0.71254,+        0.49422,+        0.57812,+        0.47289,+        0.46512,+        0.41016,+        0.39547,+        0.51223,+        0.33879,+        0.54688,+        0.22125,+        0.48906,+        0.0532,+        0.31156,+        -0.01031,+        0.24309,+        -0.0007,+        0.16453,+        0.16703,+        0.22191,+        0.11281,+        0.315,+        0.08797,+        0.42047,+        0.11473,+        0.45563,+        0.21969,+        0.39898,+        0.32035,+        0.22906,+        0.34672,+        0.22906,+        0.42969,+        0.36195,+        0.46457,+        0.40625,+        0.57516,+        0.3777,+        0.64602,+        0.29203,+        0.67391,+        0.19641,+        0.64414,+        0.16453,+        0.54047+      ],+      "t": [+        2,+        15,+        28,+        23,+        22,+        21,+        23,+        21,+        20,+        23,+        20,+        19,+        2,+        1,+        0,+        0,+        14,+        13,+        0,+        13,+        12,+        12,+        11,+        10,+        9,+        8,+        7,+        9,+        7,+        6,+        6,+        5,+        4,+        4,+        3,+        2,+        4,+        2,+        28,+        4,+        28,+        27,+        4,+        27,+        26,+        15,+        2,+        0,+        6,+        4,+        26,+        6,+        26,+        25,+        6,+        25,+        24,+        16,+        15,+        0,+        9,+        6,+        24,+        9,+        24,+        23,+        9,+        23,+        19,+        17,+        16,+        0,+        17,+        0,+        12,+        10,+        9,+        19,+        10,+        19,+        18,+        18,+        17,+        12,+        18,+        12,+        10+      ]+    },+    "γ": {+      "v": [+        0.1075,+        0.40828,+        0.07949,+        0.45434,+        0.03953,+        0.46969,+        0.01562,+        0.46969,+        0.01562,+        0.54688,+        0.04984,+        0.54688,+        0.12879,+        0.52539,+        0.17625,+        0.46094,+        0.30078,+        0.12641,+        0.46,+        0.54688,+        0.55328,+        0.54688,+        0.34766,+        0.0,+        0.34766,+        -0.20797,+        0.25484,+        -0.20797,+        0.25484,+        0.0+      ],+      "t": [+        14,+        13,+        12,+        14,+        12,+        11,+        14,+        11,+        10,+        14,+        10,+        9,+        14,+        9,+        8,+        14,+        8,+        7,+        14,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        6,+        2,+        1,+        6,+        1,+        0,+        6,+        0,+        14+      ]+    },+    "δ": {+      "v": [+        0.16312,+        0.52094,+        0.15121,+        0.52922,+        0.13422,+        0.545,+        0.1116,+        0.57852,+        0.10406,+        0.61969,+        0.11852,+        0.67949,+        0.16187,+        0.72609,+        0.2293,+        0.75609,+        0.31594,+        0.76609,+        0.35941,+        0.76465,+        0.39016,+        0.76031,+        0.46391,+        0.74266,+        0.46391,+        0.65828,+        0.43121,+        0.66887,+        0.3975,+        0.67719,+        0.35633,+        0.68324,+        0.31594,+        0.68453,+        0.30031,+        0.68406,+        0.26625,+        0.67812,+        0.23531,+        0.66219,+        0.21625,+        0.64844,+        0.20641,+        0.63402,+        0.20312,+        0.61422,+        0.20473,+        0.59984,+        0.20953,+        0.58891,+        0.22074,+        0.57754,+        0.23781,+        0.56688,+        0.25941,+        0.56203,+        0.30078,+        0.56,+        0.4016,+        0.5409,+        0.47469,+        0.48641,+        0.52004,+        0.39617,+        0.53516,+        0.27297,+        0.52012,+        0.14945,+        0.475,+        0.05922,+        0.40145,+        0.00414,+        0.30078,+        -0.01422,+        0.20043,+        0.00414,+        0.12688,+        0.05922,+        0.08188,+        0.14945,+        0.06688,+        0.27297,+        0.08191,+        0.39617,+        0.12703,+        0.48641,+        0.14355,+        0.50426,+        0.30078,+        0.48391,+        0.24078,+        0.47059,+        0.19734,+        0.43063,+        0.17098,+        0.36465,+        0.16219,+        0.27297,+        0.17098,+        0.18156,+        0.19734,+        0.11547,+        0.24078,+        0.07539,+        0.30078,+        0.06203,+        0.36125,+        0.07539,+        0.40484,+        0.11547,+        0.43121,+        0.18156,+        0.44,+        0.27297,+        0.43121,+        0.36465,+        0.40484,+        0.43063,+        0.36125,+        0.47059+      ],+      "t": [+        40,+        48,+        47,+        40,+        47,+        46,+        49,+        48,+        40,+        49,+        40,+        39,+        49,+        39,+        38,+        49,+        38,+        37,+        37,+        36,+        35,+        37,+        35,+        34,+        34,+        33,+        32,+        34,+        32,+        31,+        34,+        31,+        30,+        30,+        29,+        28,+        30,+        28,+        27,+        30,+        27,+        26,+        13,+        12,+        11,+        13,+        11,+        10,+        13,+        10,+        9,+        13,+        9,+        8,+        13,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        7,+        3,+        2,+        7,+        2,+        1,+        7,+        1,+        0,+        0,+        43,+        42,+        0,+        42,+        41,+        0,+        41,+        40,+        0,+        40,+        46,+        0,+        46,+        45,+        0,+        45,+        44,+        0,+        44,+        59,+        50,+        49,+        37,+        14,+        13,+        7,+        51,+        50,+        37,+        15,+        14,+        7,+        52,+        51,+        37,+        52,+        37,+        34,+        16,+        15,+        7,+        53,+        52,+        34,+        17,+        16,+        7,+        54,+        53,+        34,+        18,+        17,+        7,+        55,+        54,+        34,+        55,+        34,+        30,+        19,+        18,+        7,+        56,+        55,+        30,+        20,+        19,+        7,+        57,+        56,+        30,+        21,+        20,+        7,+        21,+        7,+        0,+        58,+        57,+        30,+        22,+        21,+        0,+        59,+        58,+        30,+        59,+        30,+        26,+        59,+        26,+        25,+        23,+        22,+        0,+        0,+        59,+        25,+        0,+        25,+        24,+        0,+        24,+        23+      ]+    },+    "ε": {+      "v": [+        0.21922,+        0.29641,+        0.1677,+        0.31348,+        0.12937,+        0.34031,+        0.10594,+        0.37523,+        0.09813,+        0.4175,+        0.11301,+        0.47621,+        0.15766,+        0.52141,+        0.22793,+        0.55035,+        0.31938,+        0.56,+        0.36012,+        0.55855,+        0.40328,+        0.55422,+        0.44984,+        0.54684,+        0.49953,+        0.53656,+        0.49953,+        0.45516,+        0.45082,+        0.4666,+        0.40625,+        0.47469,+        0.36547,+        0.47902,+        0.32719,+        0.48047,+        0.26762,+        0.4752,+        0.22359,+        0.45938,+        0.19652,+        0.43465,+        0.1875,+        0.40234,+        0.19629,+        0.37473,+        0.22266,+        0.35156,+        0.26551,+        0.33551,+        0.32375,+        0.33016,+        0.40484,+        0.33016,+        0.40484,+        0.25984,+        0.32719,+        0.25984,+        0.26195,+        0.25312,+        0.21281,+        0.23297,+        0.18211,+        0.20293,+        0.17188,+        0.16656,+        0.18285,+        0.12414,+        0.21578,+        0.09281,+        0.27027,+        0.07371,+        0.34469,+        0.06734,+        0.39211,+        0.06957,+        0.4375,+        0.07625,+        0.4802,+        0.0866,+        0.51953,+        0.10109,+        0.51953,+        0.01656,+        0.47305,+        0.00465,+        0.42828,+        -0.00391,+        0.38441,+        -0.00906,+        0.34187,+        -0.01078,+        0.23184,+        0.00035,+        0.14984,+        0.03375,+        0.09934,+        0.08766,+        0.0825,+        0.15969,+        0.09152,+        0.20867,+        0.11859,+        0.24906,+        0.16187,+        0.27895+      ],+      "t": [+        0,+        52,+        51,+        0,+        51,+        50,+        0,+        50,+        49,+        0,+        49,+        48,+        48,+        47,+        46,+        48,+        46,+        45,+        48,+        45,+        44,+        48,+        44,+        43,+        48,+        43,+        42,+        48,+        42,+        41,+        41,+        40,+        39,+        41,+        39,+        38,+        41,+        38,+        37,+        41,+        37,+        36,+        41,+        36,+        35,+        28,+        27,+        26,+        28,+        26,+        25,+        28,+        25,+        24,+        28,+        24,+        23,+        14,+        13,+        12,+        14,+        12,+        11,+        14,+        11,+        10,+        14,+        10,+        9,+        14,+        9,+        8,+        14,+        8,+        7,+        14,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        6,+        2,+        1,+        48,+        41,+        35,+        48,+        35,+        34,+        48,+        34,+        33,+        48,+        33,+        32,+        48,+        32,+        31,+        29,+        28,+        23,+        29,+        23,+        22,+        15,+        14,+        6,+        0,+        48,+        31,+        0,+        31,+        30,+        0,+        30,+        29,+        0,+        29,+        22,+        0,+        22,+        21,+        16,+        15,+        6,+        1,+        0,+        21,+        17,+        16,+        6,+        6,+        1,+        21,+        6,+        21,+        20,+        6,+        20,+        19,+        6,+        19,+        18,+        6,+        18,+        17+      ]+    },+    "θ": {+      "v": [+        0.30078,+        0.7325,+        0.40117,+        0.70848,+        0.47484,+        0.63641,+        0.52008,+        0.51918,+        0.53516,+        0.35938,+        0.52012,+        0.19852,+        0.475,+        0.08125,+        0.40145,+        0.00965,+        0.30078,+        -0.01422,+        0.20043,+        0.00965,+        0.12688,+        0.08125,+        0.08188,+        0.19852,+        0.06688,+        0.35938,+        0.08188,+        0.51918,+        0.12688,+        0.63641,+        0.20043,+        0.70848,+        0.43891,+        0.40437,+        0.42875,+        0.50359,+        0.40484,+        0.58063,+        0.36125,+        0.63664,+        0.30078,+        0.65531,+        0.24078,+        0.63664,+        0.19734,+        0.58063,+        0.1734,+        0.50359,+        0.16312,+        0.40437,+        0.43891,+        0.31453,+        0.16312,+        0.31453,+        0.17316,+        0.21574,+        0.19734,+        0.13812,+        0.24078,+        0.08176,+        0.30078,+        0.06297,+        0.36125,+        0.08176,+        0.40484,+        0.13812,+        0.42898,+        0.21574+      ],+      "t": [+        12,+        24,+        23,+        12,+        23,+        22,+        16,+        24,+        12,+        16,+        12,+        26,+        16,+        26,+        25,+        27,+        26,+        12,+        27,+        12,+        11,+        27,+        11,+        10,+        27,+        10,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        2,+        1,+        0,+        2,+        0,+        15,+        15,+        14,+        13,+        15,+        13,+        12,+        15,+        12,+        22,+        15,+        22,+        21,+        15,+        21,+        20,+        15,+        20,+        19,+        28,+        27,+        9,+        2,+        15,+        19,+        2,+        19,+        18,+        2,+        18,+        17,+        2,+        17,+        16,+        2,+        16,+        25,+        2,+        25,+        33,+        29,+        28,+        9,+        6,+        2,+        33,+        6,+        33,+        32,+        6,+        32,+        31,+        6,+        31,+        30,+        30,+        29,+        9,+        30,+        9,+        6+      ]+    },+    "λ": {+      "v": [+        0.31344,+        0.67438,+        0.56547,+        0.0,+        0.47016,+        0.0,+        0.31688,+        0.40437,+        0.12844,+        0.0,+        0.03328,+        0.0,+        0.27297,+        0.52438,+        0.23688,+        0.62109,+        0.20086,+        0.6675,+        0.13875,+        0.68266,+        0.11469,+        0.68266,+        0.11469,+        0.75984,+        0.14891,+        0.75875,+        0.25691,+        0.73594+      ],+      "t": [+        1,+        0,+        13,+        13,+        12,+        11,+        13,+        11,+        10,+        13,+        10,+        9,+        13,+        9,+        8,+        13,+        8,+        7,+        13,+        7,+        6,+        6,+        5,+        4,+        6,+        4,+        3,+        6,+        3,+        2,+        6,+        2,+        1,+        6,+        1,+        13+      ]+    },+    "π": {+      "v": [+        0.03906,+        0.54688,+        0.56297,+        0.54688,+        0.56297,+        0.45703,+        0.49422,+        0.45703,+        0.49422,+        0.12109,+        0.49719,+        0.09086,+        0.50609,+        0.07047,+        0.52184,+        0.05898,+        0.545,+        0.05516,+        0.55309,+        0.05547,+        0.56297,+        0.05641,+        0.57191,+        0.05746,+        0.57719,+        0.05813,+        0.57719,+        -0.00688,+        0.55977,+        -0.0123,+        0.54187,+        -0.01609,+        0.52391,+        -0.01832,+        0.50594,+        -0.01906,+        0.45883,+        -0.01105,+        0.42813,+        0.01297,+        0.41137,+        0.05848,+        0.40578,+        0.13094,+        0.40578,+        0.45703,+        0.19672,+        0.45703,+        0.19672,+        0.0,+        0.10891,+        0.0,+        0.10891,+        0.45703,+        0.03906,+        0.45703+      ],+      "t": [+        1,+        0,+        27,+        1,+        27,+        26,+        26,+        25,+        24,+        26,+        24,+        23,+        22,+        21,+        20,+        22,+        20,+        19,+        22,+        19,+        18,+        22,+        18,+        17,+        22,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        16,+        13,+        12,+        16,+        12,+        11,+        16,+        11,+        10,+        16,+        10,+        9,+        16,+        9,+        8,+        16,+        8,+        7,+        16,+        7,+        6,+        16,+        6,+        5,+        3,+        2,+        1,+        1,+        26,+        23,+        1,+        23,+        22,+        22,+        16,+        5,+        22,+        5,+        4,+        22,+        4,+        3,+        22,+        3,+        1+      ]+    },+    "σ": {+      "v": [+        0.43453,+        0.45703,+        0.51,+        0.36332,+        0.53516,+        0.24031,+        0.51672,+        0.13637,+        0.46141,+        0.04734,+        0.39344,+        0.00094,+        0.30078,+        -0.01422,+        0.20043,+        0.00414,+        0.12688,+        0.05922,+        0.08188,+        0.14945,+        0.06688,+        0.27297,+        0.08191,+        0.38867,+        0.12703,+        0.47703,+        0.19852,+        0.52941,+        0.30078,+        0.54688,+        0.55219,+        0.54688,+        0.55219,+        0.45703,+        0.29734,+        0.45656,+        0.23938,+        0.4468,+        0.19734,+        0.4175,+        0.17098,+        0.36113,+        0.16219,+        0.27297,+        0.17098,+        0.18156,+        0.19734,+        0.11547,+        0.24078,+        0.07539,+        0.30078,+        0.06203,+        0.36125,+        0.07539,+        0.40484,+        0.11547,+        0.43121,+        0.1734,+        0.44,+        0.24031,+        0.41898,+        0.34723,+        0.35594,+        0.42484,+        0.32668,+        0.44371+      ],+      "t": [+        10,+        21,+        20,+        10,+        20,+        19,+        22,+        21,+        10,+        22,+        10,+        9,+        22,+        9,+        8,+        22,+        8,+        7,+        7,+        6,+        5,+        7,+        5,+        4,+        7,+        4,+        3,+        3,+        2,+        1,+        3,+        1,+        0,+        0,+        16,+        15,+        0,+        15,+        14,+        0,+        14,+        13,+        0,+        13,+        12,+        12,+        11,+        10,+        12,+        10,+        19,+        12,+        19,+        18,+        12,+        18,+        17,+        23,+        22,+        7,+        0,+        12,+        17,+        0,+        17,+        32,+        0,+        32,+        31,+        0,+        31,+        30,+        0,+        30,+        29,+        24,+        23,+        7,+        3,+        0,+        29,+        3,+        29,+        28,+        3,+        28,+        27,+        3,+        27,+        26,+        25,+        24,+        7,+        7,+        3,+        26,+        7,+        26,+        25+      ]+    },+    "φ": {+      "v": [+        0.3775,+        0.55078,+        0.44254,+        0.53469,+        0.50297,+        0.48641,+        0.54949,+        0.39871,+        0.565,+        0.27344,+        0.54949,+        0.15187,+        0.50297,+        0.0625,+        0.43219,+        0.00684,+        0.34578,+        -0.01172,+        0.34578,+        -0.20797,+        0.25641,+        -0.20797,+        0.25641,+        -0.01219,+        0.16836,+        0.00648,+        0.09859,+        0.0625,+        0.05254,+        0.15293,+        0.03719,+        0.27297,+        0.05254,+        0.39891,+        0.09859,+        0.48391,+        0.15551,+        0.52727,+        0.22469,+        0.55078,+        0.22469,+        0.47125,+        0.1948,+        0.4525,+        0.16891,+        0.42188,+        0.14113,+        0.3566,+        0.13187,+        0.27297,+        0.14113,+        0.18152,+        0.16891,+        0.11813,+        0.20984,+        0.08039,+        0.25641,+        0.06781,+        0.25641,+        0.40328,+        0.28668,+        0.51391,+        0.3775,+        0.47406,+        0.35371,+        0.45637,+        0.34578,+        0.40328,+        0.34578,+        0.06844,+        0.38992,+        0.08113,+        0.43266,+        0.11922,+        0.46078,+        0.18043,+        0.47016,+        0.27344,+        0.46078,+        0.36648,+        0.43266,+        0.42969,+        0.40152,+        0.46297+      ],+      "t": [+        21,+        20,+        19,+        21,+        19,+        18,+        21,+        18,+        17,+        21,+        17,+        16,+        21,+        16,+        15,+        15,+        14,+        13,+        15,+        13,+        12,+        15,+        12,+        11,+        11,+        10,+        9,+        11,+        9,+        8,+        11,+        8,+        7,+        11,+        7,+        6,+        11,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        1,+        0,+        30,+        1,+        30,+        29,+        22,+        21,+        15,+        23,+        22,+        15,+        24,+        23,+        15,+        25,+        24,+        15,+        26,+        25,+        15,+        26,+        15,+        11,+        27,+        26,+        11,+        28,+        27,+        11,+        34,+        28,+        11,+        29,+        28,+        34,+        29,+        34,+        33,+        29,+        33,+        32,+        29,+        32,+        31,+        35,+        34,+        11,+        35,+        11,+        5,+        1,+        29,+        31,+        1,+        31,+        41,+        1,+        41,+        40,+        1,+        40,+        39,+        36,+        35,+        5,+        5,+        1,+        39,+        5,+        39,+        38,+        5,+        38,+        37,+        5,+        37,+        36+      ]+    },+    "ω": {+      "v": [+        0.50438,+        0.54688,+        0.55242,+        0.41496,+        0.56844,+        0.27703,+        0.5623,+        0.15645,+        0.54391,+        0.07625,+        0.49379,+        0.0084,+        0.41656,+        -0.01422,+        0.37746,+        -0.00793,+        0.34328,+        0.01094,+        0.31691,+        0.0391,+        0.30125,+        0.07328,+        0.28617,+        0.04035,+        0.26031,+        0.01188,+        0.22613,+        -0.0077,+        0.18609,+        -0.01422,+        0.10875,+        0.0084,+        0.05859,+        0.07625,+        0.04031,+        0.15645,+        0.03422,+        0.27703,+        0.0502,+        0.41496,+        0.09813,+        0.54688,+        0.19094,+        0.54688,+        0.14477,+        0.41117,+        0.12937,+        0.2725,+        0.13121,+        0.18219,+        0.13766,+        0.13187,+        0.16047,+        0.07902,+        0.18891,+        0.06203,+        0.22457,+        0.07629,+        0.2475,+        0.11719,+        0.25676,+        0.1932,+        0.25984,+        0.34125,+        0.34281,+        0.34125,+        0.34586,+        0.1932,+        0.355,+        0.11719,+        0.37793,+        0.07629,+        0.41359,+        0.06203,+        0.44203,+        0.07902,+        0.46484,+        0.13187,+        0.47129,+        0.18219,+        0.47313,+        0.2725,+        0.45773,+        0.41117,+        0.41156,+        0.54688+      ],+      "t": [+        1,+        0,+        42,+        1,+        42,+        41,+        1,+        41,+        40,+        1,+        40,+        39,+        1,+        39,+        38,+        33,+        32,+        31,+        33,+        31,+        30,+        33,+        30,+        29,+        33,+        29,+        28,+        22,+        21,+        20,+        22,+        20,+        19,+        22,+        19,+        18,+        22,+        18,+        17,+        22,+        17,+        16,+        16,+        15,+        14,+        16,+        14,+        13,+        16,+        13,+        12,+        16,+        12,+        11,+        10,+        9,+        8,+        10,+        8,+        7,+        10,+        7,+        6,+        10,+        6,+        5,+        5,+        4,+        3,+        5,+        3,+        2,+        5,+        2,+        1,+        5,+        1,+        38,+        5,+        38,+        37,+        5,+        37,+        36,+        5,+        36,+        35,+        34,+        33,+        28,+        34,+        28,+        27,+        23,+        22,+        16,+        10,+        5,+        35,+        10,+        35,+        34,+        10,+        34,+        27,+        24,+        23,+        16,+        11,+        10,+        27,+        25,+        24,+        16,+        16,+        11,+        27,+        16,+        27,+        26,+        16,+        26,+        25+      ]+    },+    "→": {+      "v": [+        0.56984,+        0.25391,+        0.42781,+        0.11188,+        0.38375,+        0.15578,+        0.46188,+        0.23391,+        0.03219,+        0.23391,+        0.03219,+        0.31391,+        0.46188,+        0.31391,+        0.38375,+        0.39203,+        0.42781,+        0.43609,+        0.56984,+        0.29391+      ],+      "t": [+        1,+        0,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        9,+        5,+        4,+        9,+        4,+        3,+        9,+        3,+        2,+        9,+        2,+        1+      ]+    },+    "←": {+      "v": [+        0.03219,+        0.25391,+        0.03219,+        0.29391,+        0.17438,+        0.43609,+        0.21828,+        0.39203,+        0.14016,+        0.31391,+        0.56984,+        0.31391,+        0.56984,+        0.23391,+        0.14016,+        0.23391,+        0.21828,+        0.15578,+        0.17438,+        0.11188+      ],+      "t": [+        1,+        0,+        9,+        1,+        9,+        8,+        1,+        8,+        7,+        1,+        7,+        6,+        1,+        6,+        5,+        1,+        5,+        4,+        1,+        4,+        3,+        1,+        3,+        2+      ]+    },+    "↑": {+      "v": [+        0.32125,+        0.53766,+        0.46297,+        0.39547,+        0.41891,+        0.35156,+        0.34078,+        0.42969,+        0.34078,+        0.0,+        0.26078,+        0.0,+        0.26078,+        0.42969,+        0.18266,+        0.35156,+        0.13875,+        0.39547,+        0.28125,+        0.53766+      ],+      "t": [+        1,+        0,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        9,+        5,+        4,+        9,+        4,+        3,+        9,+        3,+        2,+        9,+        2,+        1+      ]+    },+    "↓": {+      "v": [+        0.28125,+        0.0,+        0.13875,+        0.14203,+        0.18266,+        0.18609,+        0.26078,+        0.10797,+        0.26078,+        0.53766,+        0.34078,+        0.53766,+        0.34078,+        0.10797,+        0.41891,+        0.18609,+        0.46297,+        0.14203,+        0.32125,+        0.0+      ],+      "t": [+        1,+        0,+        9,+        9,+        8,+        7,+        9,+        7,+        6,+        9,+        6,+        5,+        9,+        5,+        4,+        9,+        4,+        3,+        9,+        3,+        2,+        9,+        2,+        1+      ]+    }+  }+}
provenance/tools/upgrade.pyadded+124
@@ -0,0 +1,124 @@+"""Add the adom-hero 1.4 hero GLB and the Altium SchLib/PcbLib to an existing component page clone,+and refresh page.json, models.json, verification.json, provenance.json, README.md and LICENSE for them.+Everything else in the clone is left as it is.++usage: upgrade.py <clone-dir>+"""+import sys, os, json, hashlib, subprocess, shutil, re+TOOLS = os.path.dirname(os.path.abspath(__file__))+PY = "/home/adom/.venvs/cq/bin/python"+TODAY = "2026-10-21"+D = os.path.abspath(sys.argv[1]); slug = os.path.basename(D)+def p_(f): return os.path.join(D, f)+sha = lambda f: hashlib.sha256(open(p_(f), "rb").read()).hexdigest()+def blob(f):+    b = open(p_(f), "rb").read(); return hashlib.sha1(b"blob %d\0" % len(b) + b).hexdigest()+def run(cmd, cwd=None):+    r = subprocess.run(cmd, capture_output=True, text=True, cwd=cwd)+    if r.returncode != 0:+        print("FAILED", cmd, r.stdout[-1500:], r.stderr[-1500:]); sys.exit(1)+    return r+page = json.load(open(p_("page.json"))); comp = page["component"]; parts = comp["parts"]; MPN = comp["mpn"]+SYM, FP, STEP = parts["symbol"], parts["footprint"], parts["step"]+PLAIN = "package-reference.glb"+assert parts.get("model_3d") == PLAIN and os.path.exists(p_(PLAIN)), parts+HERO = f"{slug}-hero.glb"; HERO_SC = f"{slug}-hero.overlay.json"; PREV = f"docs/{slug}-hero-preview.png"+by = {"name": "Claude (AI agent) for John Lauer", "handle": "john"}++# hero+r = run([PY, "-I", os.path.join(TOOLS, "hero_glb.py"), p_(PLAIN), p_(FP), p_("page.json"), p_(HERO), "--png", p_(PREV)], cwd=TOOLS)+hero_line = r.stdout.strip().splitlines()[-1]; print("hero:", hero_line)+assert "align OK" in hero_line and os.path.exists(p_(HERO_SC))+hero_res = hero_line.split(": ", 1)[-1]++# altium+os.makedirs(p_("altium"), exist_ok=True)+run(["adom-lbr", "import-kicad", "--sym", p_(SYM), "--fp", p_(FP), "--mpn", MPN], cwd=p_("altium"))+run(["adom-lbr", "export-altium", f"{MPN}.adom-lbr.json", "--out-dir", "."], cwd=p_("altium"))+ALT = [f"altium/{MPN}.SchLib", f"altium/{MPN}.PcbLib", f"altium/{MPN}.adom-lbr.json"]+assert all(os.path.getsize(p_(f)) > 1000 for f in ALT)++# tools into provenance+for t in ("hero_glb.py", "hero_glyphs.json", "upgrade.py"):+    shutil.copyfile(os.path.join(TOOLS, t), p_("provenance/tools/" + t))++# page.json+parts["model_3d"] = HERO; parts["model_3d_plain"] = PLAIN+parts["altium_schlib"], parts["altium_pcblib"] = ALT[0], ALT[1]+page.setdefault("eda_assets", {})["altium"] = {"schlib": ALT[0], "pcblib": ALT[1], "provenance": "generated"}+comp.setdefault("provenance", {})["hero"] = "adom-hero 1.4 (adom/component-hero hero_glb.py)"+json.dump(page, open(p_("page.json"), "w"), indent=1)++# models.json+mj = json.load(open(p_("models.json")))+src = next(m for m in mj["models"] if m["path"] == PLAIN)+src.update({"slot": "model_3d_plain", "use": sorted(set(src.get("use", []) + ["board-insertion"])),+            "unique": "The clean model as a GLB (step2glb), no artwork: the download for viewers and assemblies"})+mj["models"] = [m for m in mj["models"] if m["path"] != HERO]+i = mj["models"].index(src) + 1+mj["models"].insert(i, {"path": HERO, "format": "glb", "title": "Hero (page viewer)", "status": "current", "slot": "model_3d", "variant": "hero",+    "role": "derived", "use": ["wiki-hero"], "marking": None, "derived_from": PLAIN,+    "unique": "The clean model plus nonphysical footprint artwork (adom-hero 1.4): teal dashed pad outlines, silkscreen, pad numbers 1 and 2; not for board use",+    "thumb": PREV, "source": src.get("source"), "sha256": sha(HERO), "git_blob": blob(HERO), "bytes": os.path.getsize(p_(HERO))})+mj["updated"] = TODAY+json.dump(mj, open(p_("models.json"), "w"), indent=1)++# verification.json (append)+vj = json.load(open(p_("verification.json")))+vj["entries"] = [e for e in vj["entries"] if e.get("title") not in ("Hero GLB built to adom-hero 1.4 over the clean model", "Altium libraries generated from the KiCad symbol and footprint")]+vj["entries"].append({"date": TODAY, "by": by, "status": "verified", "title": "Hero GLB built to adom-hero 1.4 over the clean model",+    "scope": ["3d-model", "hero"], "variants": ["*"],+    "checks": [{"text": hero_res, "result": "pass"},+               {"text": "pad outlines teal 50 %, silkscreen 30 % alpha, pad-number labels 50 % (the terminals have no names); no pin-1 dot, the part is non-polar", "result": "pass"},+               {"text": "hero is a separate file; package-reference.glb and every LOD carry no artwork", "result": "pass"},+               {"text": "preview looked at by the AI agent; the live wiki viewer still needs a person's look", "result": "note"}],+    "evidence": [{"label": "preview (top and oblique)", "href": PREV}, {"label": "sidecar", "href": HERO_SC}],+    "files": {HERO: sha(HERO), PLAIN: sha(PLAIN), FP: sha(FP)}})+vj["entries"].append({"date": TODAY, "by": by, "status": "verified", "title": "Altium libraries generated from the KiCad symbol and footprint",+    "scope": ["symbol", "footprint", "eda"], "variants": ["*"],+    "checks": [{"text": "adom-lbr import-kicad + export-altium: native .SchLib (2 pins) and .PcbLib (2 pads) written and read back; MPN, Manufacturer and supplier numbers carried as parameters", "result": "pass"},+               {"text": "not yet opened in Altium by a person", "result": "note"}],+    "evidence": [], "files": {f: sha(f) for f in ALT}})+json.dump(vj, open(p_("verification.json"), "w"), indent=1)++# README (additions only)+rd = open(p_("README.md")).read()+if HERO not in rd:+    hero_txt = (f"The page viewer shows `{HERO}`: the clean model plus nonphysical reference artwork drawn under it to the adom-hero 1.4\n"+                "standard (adom/component-hero): the footprint's pads as teal dashed outlines at 50 % opacity, its silkscreen at\n"+                "70 % transparency and the pad numbers 1 and 2 (the terminals have no names). The part is non-polar, so no pin-1 dot is\n"+                f"added. The artwork never goes into the STEP, `{PLAIN}` or the board LODs.\n\n"+                f"![Hero preview, top and oblique]({PREV})\n\n")+    k = rd.index("::adom-models")+    rd = rd[:k] + hero_txt + rd[k:]+    row = next(l for l in rd.splitlines() if l.startswith(f"| `{PLAIN}` |"))+    new = (row + "\n" + f"| `{HERO}` | page-viewer hero: the clean model plus footprint artwork (adom-hero 1.4); `{HERO_SC}` lists every pad and label |\n"+           f"| `{ALT[0]}` | Altium schematic library, made with `adom-lbr import-kicad` and `export-altium` |\n"+           f"| `{ALT[1]}` | Altium PCB library, made with `adom-lbr import-kicad` and `export-altium` |\n"+           f"| `{ALT[2]}` | adom-lbr hub JSON (symbol, footprint, pin-to-pad map) behind the Altium files |")+    rd = rd.replace(row, new, 1)+    open(p_("README.md"), "w").write(rd)++# LICENSE (one wording change so the hero is covered)+lic = open(p_("LICENSE")).read()+lic2 = lic.replace("(and the GLB and LOD files derived from it)", "(and the GLB, hero and LOD files derived from it)")+if "component-hero" not in lic2:+    lic2 = lic2.rstrip("\n") + "\n- provenance/tools/hero_glb.py and hero_glyphs.json come from adom/component-hero.\n"+open(p_("LICENSE"), "w").write(lic2)++# provenance.json (add sections, refresh every file hash)+pv = json.load(open(p_("provenance.json")))+pv["hero_glb"] = {"file": HERO, "sidecar": HERO_SC, "preview": PREV, "added": TODAY,+                  "tool": "hero_glb.py (adom/component-hero, adom-hero 1.4), copied into provenance/tools/",+                  "inputs": [PLAIN, FP, "page.json component.pins (1 and 2, unnamed)"], "result": hero_res}+pv["altium"] = {"files": ALT, "added": TODAY, "tool": "adom-lbr import-kicad --sym --fp --mpn, then adom-lbr export-altium (adom-lbr 2.47.5)"}+pv["upgrade_note"] = f"{TODAY}: hero GLB, Altium libraries and Source added by provenance/tools/upgrade.py; no other file changed except the records that describe them (page.json, models.json, verification.json, README.md, LICENSE, this file)."+files = {}+for dp, dn, fn in os.walk(D):+    for f in fn:+        rel = os.path.relpath(os.path.join(dp, f), D)+        if rel != "provenance.json":+            files[rel] = sha(rel)+pv["files"] = files+json.dump(pv, open(p_("provenance.json"), "w"), indent=1)+print("upgraded", slug)
verification.json+82
@@ -229,6 +229,88 @@     "0402ZD105KAT2A.kicad_sym": "4fb61235b89779e8ebb17e67d638bad7e576ef1aa18546042e4b9d84b3a32015",     "0402ZD105KAT2A.step": "03e44c4b2b727b8d4b6b1fd598cbd12dd5e614f1dfeefa96a92a07e3a3b312a2"    }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI agent) for John Lauer",+    "handle": "john"+   },+   "status": "verified",+   "title": "Hero GLB built to adom-hero 1.4 over the clean model",+   "scope": [+    "3d-model",+    "hero"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "pads 2, silk items 2, pin1 none, labels 2; align OK (offset 0.0 mm)",+     "result": "pass"+    },+    {+     "text": "pad outlines teal 50 %, silkscreen 30 % alpha, pad-number labels 50 % (the terminals have no names); no pin-1 dot, the part is non-polar",+     "result": "pass"+    },+    {+     "text": "hero is a separate file; package-reference.glb and every LOD carry no artwork",+     "result": "pass"+    },+    {+     "text": "preview looked at by the AI agent; the live wiki viewer still needs a person's look",+     "result": "note"+    }+   ],+   "evidence": [+    {+     "label": "preview (top and oblique)",+     "href": "docs/0402zd105kat2a-hero-preview.png"+    },+    {+     "label": "sidecar",+     "href": "0402zd105kat2a-hero.overlay.json"+    }+   ],+   "files": {+    "0402zd105kat2a-hero.glb": "4201e860514b498278ab8df9f9f5f2e57d09281815a135bdd1f028acaa6dbc62",+    "package-reference.glb": "100935c5c0d6f20a6c9bdfb6386f874dc8a4457bf0e4f3ace69f1ab090100773",+    "C_0402_1005Metric_0402ZD105KAT2A.kicad_mod": "75e472f604e9e3473daf00ae179e4902d07ae5dc5eddbc841028a68b91c022c0"+   }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI agent) for John Lauer",+    "handle": "john"+   },+   "status": "verified",+   "title": "Altium libraries generated from the KiCad symbol and footprint",+   "scope": [+    "symbol",+    "footprint",+    "eda"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "adom-lbr import-kicad + export-altium: native .SchLib (2 pins) and .PcbLib (2 pads) written and read back; MPN, Manufacturer and supplier numbers carried as parameters",+     "result": "pass"+    },+    {+     "text": "not yet opened in Altium by a person",+     "result": "note"+    }+   ],+   "evidence": [],+   "files": {+    "altium/0402ZD105KAT2A.SchLib": "72469850a0eeeac6830560ec7ed39edfd72c1bbee5ef63d90855a423f906abdd",+    "altium/0402ZD105KAT2A.PcbLib": "6e364773b4ebbe1cd1c05e8c89beb73f4f517e4f02b15bc96d36ee8f72e9ce83",+    "altium/0402ZD105KAT2A.adom-lbr.json": "67b1d3a02532f202d28b20c21231aeac442e120b3fbe38295a950d66ea5900e9"+   }   }  ] }\ No newline at end of file