← Commit history
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/landcheck.pyadded+116
@@ -0,0 +1,116 @@+"""Compare the KiCad footprint pads with the manufacturer's recommended land pattern.++usage: landcheck.py <slug> <outdir>+Reads parts.PARTS[slug]["land"] and the page's footprint (KiCad library geometry).+Writes <outdir>/land-pattern.png (true-scale drawing + table) and+<outdir>/land-pattern-icon.png (256 px square thumbnail), prints a JSON result.++Drawing: grey = part body at datasheet nominal, teal = KiCad pads (copper),+amber dashed = the maker's land at the middle of its printed range (or its+printed nominal), amber band = the range the maker allows for the inner and+outer pad edges where the maker prints a range.+"""+import sys, os, json, re, glob+from PIL import Image, ImageDraw, ImageFont+sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))+from parts import PARTS++slug, outdir = sys.argv[1], sys.argv[2]+P = next(p for p in PARTS if p["slug"] == slug)+L = P["land"]+page = os.path.dirname(outdir.rstrip("/"))+fpf = glob.glob(os.path.join(page, "*.kicad_mod"))[0]+fp = open(fpf).read()+pads = [tuple(map(float, m)) for m in re.findall(r'\(pad "\d" smd roundrect\s*\(at ([-\d.]+) ([-\d.]+)\)\s*\(size ([\d.]+) ([\d.]+)\)', fp)]+x, _, w, h = pads[1]+k = {"gap": round(2 * x - w, 3), "len": round(w, 3), "wid": round(h, 3), "overall": round(2 * x + w, 3)}++def mid(v): return (v[0] + v[1]) / 2 if isinstance(v, list) else v+rows = []+if L["kind"] in ("range", "tol"):+    rng = {"gap": L["gap_a"], "len": L["len_b"], "wid": L["wid_c"]}+    rng["overall"] = L.get("overall") or [round(L["gap_a"][0] + 2 * L["len_b"][0], 3), round(L["gap_a"][1] + 2 * L["len_b"][1], 3)]+    derived_overall = not L.get("overall")+    for key, name in (("gap", "gap between lands"), ("len", "land length"), ("wid", "land width"),+                      ("overall", "overall length (a + 2b, derived)" if derived_overall else "overall length")):+        lo, hi = rng[key]; v = k[key]+        ok = lo - 1e-6 <= v <= hi + 1e-6+        dev = 0 if ok else round(v - hi if v > hi else v - lo, 3)+        rows.append({"dim": name, "kicad_mm": v, "maker_min": lo, "maker_max": hi, "within": ok, "outside_by_mm": dev})+    ref = {kk: mid(rng[kk]) for kk in rng}+    if L["kind"] == "tol":+        ref = {"gap": L["nominal"]["gap_a"], "len": L["nominal"]["len_b"], "wid": L["nominal"]["wid_c"], "overall": L["nominal"]["overall"]}+else:+    ref = {"gap": L["gap_a"], "len": L["len_b"], "wid": L["wid_c"], "overall": L["overall"]}+    for key, name in (("gap", "gap between lands"), ("len", "land length"), ("wid", "land width"), ("overall", "overall length")):+        rows.append({"dim": name, "kicad_mm": k[key], "maker_nominal": ref[key], "difference_mm": round(k[key] - ref[key], 3)})++# ---------- drawing ----------+body = P["body_mm"]+span = max(k["overall"], ref["overall"] if isinstance(ref["overall"], float) else 0) + 0.4+PP = 560 / span+W_, H_ = 1000, int(max(k["wid"], ref["wid"], body["y_mm"]) * PP + 120)+img = Image.new("RGBA", (W_, H_), (255, 255, 255, 255))+d = ImageDraw.Draw(img, "RGBA")+cx, cy = W_ / 2, H_ / 2 + 10+def R(x0, y0, x1, y1): return [cx + x0 * PP, cy - y1 * PP, cx + x1 * PP, cy - y0 * PP]+# allowed edge bands (range kinds)+if L["kind"] in ("range", "tol"):+    g0, g1 = L["gap_a"]; b0, b1 = L["len_b"]; c1 = L["wid_c"][1]+    for s in (-1, 1):+        for a, b in ((g0 / 2, g1 / 2), (g0 / 2 + b0, g1 / 2 + b1)):+            xa, xb = sorted((s * a, s * b))+            d.rectangle(R(xa, -c1 / 2, xb, c1 / 2), fill=(255, 190, 70, 70))+# body+d.rectangle(R(-body["x_mm"] / 2, -body["y_mm"] / 2, body["x_mm"] / 2, body["y_mm"] / 2), outline=(110, 110, 110, 255), width=2)+# KiCad pads, rounded rect (rratio 0.25)+for px, py, pw, ph in pads:+    rr = 0.25 * min(pw, ph) * PP+    d.rounded_rectangle(R(px - pw / 2, py - ph / 2, px + pw / 2, py + ph / 2), radius=rr, fill=(0, 150, 150, 110), outline=(0, 120, 120, 255), width=2)+# maker land, dashed amber+def dashed(box, col, wdt=3):+    xa, ya, xb, yb = box+    for (p, q) in (((xa, ya), (xb, ya)), ((xb, ya), (xb, yb)), ((xb, yb), (xa, yb)), ((xa, yb), (xa, ya))):+        n = int(max(abs(q[0] - p[0]), abs(q[1] - p[1])) / 7) or 1+        for i in range(0, n, 2):+            t0, t1 = i / n, min(1, (i + 1) / n)+            d.line([(p[0] + (q[0] - p[0]) * t0, p[1] + (q[1] - p[1]) * t0), (p[0] + (q[0] - p[0]) * t1, p[1] + (q[1] - p[1]) * t1)], fill=col, width=wdt)+for s in (-1, 1):+    a, b = ref["gap"] / 2, ref["gap"] / 2 + ref["len"]+    xa, xb = sorted((s * a, s * b))+    dashed(R(xa, -ref["wid"] / 2, xb, ref["wid"] / 2), (200, 110, 0, 255))+icon_box = (int(cx - 0.5 * (k["overall"] + 0.25) * PP), int(cy - 0.5 * (k["overall"] + 0.25) * PP))+icon_side = int((k["overall"] + 0.25) * PP)+padded = Image.new("RGBA", (W_ + 2 * icon_side, H_ + 2 * icon_side), (255, 255, 255, 255)); padded.paste(img, (icon_side, icon_side))+icon = padded.crop((icon_box[0] + icon_side, icon_box[1] + icon_side, icon_box[0] + 2 * icon_side, icon_box[1] + 2 * icon_side)).convert("RGB").resize((256, 256), Image.LANCZOS)+mask = Image.new("L", (256, 256), 0); ImageDraw.Draw(mask).rounded_rectangle([0, 0, 255, 255], radius=28, fill=255)+ic = Image.new("RGBA", (256, 256), (0, 0, 0, 0)); ic.paste(icon, (0, 0), mask)+ic.save(os.path.join(outdir, "land-pattern-icon.png"))++f = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 15)+fb = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 17)+lines = []+for r in rows:+    if "within" in r:+        lines.append((f"{r['dim']}:  KiCad {r['kicad_mm']:.2f}   maker {r['maker_min']:.2f} to {r['maker_max']:.2f}   "+                      + ("inside" if r["within"] else f"outside by {r['outside_by_mm']:+.2f}"), (0, 120, 40) if r["within"] else (190, 90, 0)))+    else:+        lines.append((f"{r['dim']}:  KiCad {r['kicad_mm']:.2f}   maker {r['maker_nominal']:.2f}   difference {r['difference_mm']:+.2f}", (40, 40, 40)))+sheet = Image.new("RGB", (W_, H_ + 100 + 24 * len(lines) + 70), (255, 255, 255))+sd = ImageDraw.Draw(sheet)+sd.text((14, 10), f"{P['mpn']}: KiCad {P['fp']} pads vs maker's land, true scale", fill=(0, 0, 0), font=fb)+sheet.paste(img.convert("RGB"), (0, 40))+y = H_ + 46+sd.text((14, y), "grey = body (nominal)   teal = KiCad pads   amber dashed = maker's land (middle of range or nominal)", fill=(60, 60, 60), font=f); y += 22+sd.text((14, y), "amber band = where the maker allows the inner and outer pad edges (range sheets only)", fill=(60, 60, 60), font=f); y += 26+for t, c in lines:+    sd.text((14, y), t, fill=c, font=f); y += 24+import textwrap+for ln in textwrap.wrap("Source: " + L["source"], 115):+    sd.text((14, y + 4), ln, fill=(90, 90, 90), font=f); y += 20+sheet.save(os.path.join(outdir, "land-pattern.png"))++res = {"footprint": os.path.basename(fpf), "kicad_library_footprint": P["fp"], "kicad": k, "maker_reference": ref,+       "maker_source": L["source"], "maker_letters": L["letters"], "rows": rows,+       "all_within": all(r.get("within", True) for r in rows) if L["kind"] != "nominal" else None}+print(json.dumps(res))
provenance/tools/lod.pyadded+170
@@ -0,0 +1,170 @@+"""Board-use LOD GLBs (high, medium, low, super-low) for a small two-terminal chip.++Input: the page's board-use STEP (Z-up, mm, seated on z=0, centred).+Output (in <outdir>/lod/): high.glb medium.glb low.glb super-low.glb, a 400x300+PNG preview of each rendered from that GLB's own triangles, manifest.json+(schema adom/component-lod@1).++Every level: Z-up, metres, the same origin and pose as the STEP (no recentring,+no rotation), primitives batched by material (one per material), the STEP's own+colours.  No footprint, pad outline, label or silkscreen helpers exist in the+source, so nothing is removed.  high/medium/low are OCCT tessellations of the+exact B-rep at decreasing deflection; super-low replaces each material group by+its bounding box per side of the part (terminals, body, overcoat), which keeps+the silhouette, the terminal bands and the seating plane.++usage: lod.py part.step MPN outdir [source_label]+"""+import sys, os, json, struct, hashlib+import numpy as np+from PIL import Image, ImageDraw+sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))+import ortho+from OCP.BRepMesh import BRepMesh_IncrementalMesh+from OCP.BRepTools import BRepTools++step, mpn, outdir = sys.argv[1], sys.argv[2], sys.argv[3]+src_label = sys.argv[4] if len(sys.argv) > 4 else os.path.basename(step)+lod_dir = os.path.join(outdir, "lod"); os.makedirs(lod_dir, exist_ok=True)++LEVELS = [("high", 0.0005, 0.1), ("medium", 0.004, 0.35), ("low", 0.02, 0.9)]++def tris_at(lin, ang):+    # ortho.load_tris meshes with fixed params; clean and remesh by patching BRepMesh call+    orig = ortho.BRepMesh_IncrementalMesh+    def mesh(shp, _l, rel, _a, par):+        BRepTools.Clean_s(shp)+        return orig(shp, lin, False, ang, True)+    ortho.BRepMesh_IncrementalMesh = mesh+    try:+        return ortho.load_tris(step)+    finally:+        ortho.BRepMesh_IncrementalMesh = orig++def boxes_from(tris):+    groups = {}+    for p, c in tris:+        groups.setdefault(c, []).append(p)+    allp = np.concatenate([p for p, _ in tris]); xmax = allp[:, 0].max()+    endc = {}+    for p, c in tris:+        if np.allclose(p[:, 0], xmax, atol=1e-4): endc[c] = endc.get(c, 0) + 1+    tcol = max(endc, key=endc.get)+    boxes = []+    for c, ps in groups.items():+        T = np.stack(ps)+        crosses = ((T[:, :, 0].min(1) < -1e-6) & (T[:, :, 0].max(1) > 1e-6)).any()+        P = T.reshape(-1, 3)+        parts = [P] if crosses else [P[P[:, 0] < 0], P[P[:, 0] > 0]]+        for Q in parts:+            if len(Q):+                boxes.append([Q.min(0), Q.max(0), c])+    tin = min(min(abs(lo[0]), abs(hi[0])) for lo, hi, c in boxes if c == tcol)+    out = []+    for lo, hi, c in boxes:+        if c != tcol:+            lo = lo.copy(); hi = hi.copy(); lo[0] = max(lo[0], -tin); hi[0] = min(hi[0], tin)+        v = np.array([[x, y, z] for x in (lo[0], hi[0]) for y in (lo[1], hi[1]) for z in (lo[2], hi[2])])+        for a_, b_, cc, d in [(0, 1, 3, 2), (4, 6, 7, 5), (0, 4, 5, 1), (2, 3, 7, 6), (0, 2, 6, 4), (1, 5, 7, 3)]:+            out.append((v[[a_, b_, cc]], c)); out.append((v[[a_, cc, d]], c))+    return out++def write_glb(tris, path, name):+    mats = []; groups = {}+    for p, c in tris:+        if c not in groups:+            groups[c] = []; mats.append(c)+        groups[c].append(p)+    bin_ = b""; views = []; accs = []; prims = []+    def add_view(data, target):+        nonlocal bin_+        off = len(bin_); bin_ += data+        while len(bin_) % 4: bin_ += b"\0"+        views.append({"buffer": 0, "byteOffset": off, "byteLength": len(data), "target": target})+        return len(views) - 1+    decoded = 0; ntri = 0+    for mi, c in enumerate(mats):+        P = np.concatenate(groups[c]).reshape(-1, 3, 3)+        n = np.cross(P[:, 1] - P[:, 0], P[:, 2] - P[:, 0]); n /= np.linalg.norm(n, axis=1, keepdims=True) + 1e-30+        pos = (P.reshape(-1, 3) / 1000.0).astype(np.float32)          # mm -> metres+        nor = np.repeat(n, 3, axis=0).astype(np.float32)+        # weld identical (position, normal) vertices+        key = np.concatenate([np.round(pos, 9), np.round(nor, 5)], 1)+        uniq, inv = np.unique(key, axis=0, return_inverse=True)+        upos = uniq[:, :3].astype(np.float32); unor = uniq[:, 3:].astype(np.float32)+        idx = inv.astype(np.uint16 if len(uniq) < 65535 else np.uint32).ravel()+        vp = add_view(upos.tobytes(), 34962); vn = add_view(unor.tobytes(), 34962); vi = add_view(idx.tobytes(), 34963)+        accs.append({"bufferView": vp, "componentType": 5126, "count": len(upos), "type": "VEC3",+                     "min": upos.min(0).tolist(), "max": upos.max(0).tolist()})+        accs.append({"bufferView": vn, "componentType": 5126, "count": len(unor), "type": "VEC3"})+        accs.append({"bufferView": vi, "componentType": 5123 if idx.dtype == np.uint16 else 5125, "count": len(idx), "type": "SCALAR"})+        prims.append({"attributes": {"POSITION": len(accs) - 3, "NORMAL": len(accs) - 2}, "indices": len(accs) - 1, "material": mi})+        decoded += upos.nbytes + unor.nbytes + idx.nbytes; ntri += len(idx) // 3+    gl = {"asset": {"version": "2.0", "generator": "capencoder passives lod.py (OCCT tessellation)"},+          "scene": 0, "scenes": [{"nodes": [0]}],+          "nodes": [{"name": name, "mesh": 0, "extras": {"adomUpAxis": "Z", "units": "metres"}}],+          "meshes": [{"name": name, "primitives": prims}],+          "materials": [{"name": f"mat_{i}", "pbrMetallicRoughness": {"baseColorFactor": [*c, 1.0], "metallicFactor": 0.0, "roughnessFactor": 0.6}} for i, c in enumerate(mats)],+          "accessors": accs, "bufferViews": views, "buffers": [{"byteLength": len(bin_)}]}+    js = json.dumps(gl, separators=(",", ":")).encode()+    while len(js) % 4: js += b" "+    glb = struct.pack("<III", 0x46546C67, 2, 12 + 8 + len(js) + 8 + len(bin_)) + struct.pack("<II", len(js), 0x4E4F534A) + js + struct.pack("<II", len(bin_), 0x004E4942) + bin_+    open(path, "wb").write(glb)+    return {"decodedBufferBytes": decoded, "triangles": ntri, "primitives": len(prims)}++def read_glb_tris(path):+    b = open(path, "rb").read(); n = struct.unpack("<I", b[12:16])[0]+    j = json.loads(b[20:20 + n]); binc = b[20 + n + 8:]+    def acc(i, dt, w):+        a = j["accessors"][i]; v = j["bufferViews"][a["bufferView"]]+        return np.frombuffer(binc, dt, a["count"] * w, v["byteOffset"]).reshape(-1, w) if w > 1 else np.frombuffer(binc, dt, a["count"], v["byteOffset"])+    out = []+    for p in j["meshes"][0]["primitives"]:+        pos = acc(p["attributes"]["POSITION"], np.float32, 3) * 1000.0+        ia = j["accessors"][p["indices"]]+        idx = acc(p["indices"], np.uint16 if ia["componentType"] == 5123 else np.uint32, 1)+        col = tuple(j["materials"][p["material"]]["pbrMetallicRoughness"]["baseColorFactor"][:3])+        for t in idx.reshape(-1, 3):+            out.append((pos[t].astype(float), col))+    return out++ortho.VIEWS["iso"] = (tuple(np.array([0.7071, -0.7071, 0])), tuple(np.array([-0.4082, -0.4082, 0.8165])), tuple(np.array([0.5774, 0.5774, 0.5774])))+def preview(path, png):+    tris = read_glb_tris(path)+    allp = np.concatenate([t[0] for t in tris]); ext = np.abs(allp).max()+    img = ortho.render(tris, "iso", 300 / (3.3 * ext), size=(400, 300))+    bg = Image.new("RGBA", img.size, (48, 57, 68, 255)); bg.alpha_composite(img); bg.convert("RGB").save(png)++sha = lambda f: hashlib.sha256(open(f, "rb").read()).hexdigest()+levels = []+src_tris = None+for name, lin, ang in LEVELS + [("super-low", None, None)]:+    if name == "super-low":+        tris = boxes_from(src_tris)+    else:+        tris = tris_at(lin, ang)+        if name == "high":+            src_tris = tris+    path = os.path.join(lod_dir, f"{name}.glb")+    st = write_glb(tris, path, mpn)+    back = read_glb_tris(path); P = np.concatenate([t[0] for t in back])+    png = os.path.join(lod_dir, f"{name}.png"); preview(path, png)+    rec = {"level": name, "path": f"lod/{name}.glb", "sha256": sha(path), "sizeBytes": os.path.getsize(path), **st,+           "bounds": {"min": (P.min(0) / 1000).round(7).tolist(), "max": (P.max(0) / 1000).round(7).tolist()},+           "approximation": ({"method": "OCCT BRepMesh_IncrementalMesh", "linearDeflectionMm": lin, "angularDeflectionRad": ang}+                             if lin else {"method": "per-material bounding boxes split at the part centre (terminals, body, overcoat)"}),+           "detailVisibility": {"virtualMpn": False, "note": "no marking: the datasheet specifies none"},+           "review": "Candidate: rendered preview checked by AI (silhouette, terminals, seat z=0); not human-reviewed",+           "preview": {"path": f"lod/{name}.png", "sha256": sha(png), "sizeBytes": os.path.getsize(png), "width": 400, "height": 300,+                       "view": "iso", "sourceLevelSha256": sha(path)}}+    levels.append(rec)+    print(name, st, rec["bounds"])+manifest = {"schema": "adom/component-lod@1", "mpn": mpn, "upAxis": "Z", "units": "metres",+            "status": "candidate (AI-checked, not human-reviewed)",+            "purpose": "clean board-use component models: no footprint pads, outlines, labels or silkscreen; no marking (none per datasheet)",+            "source": {"path": src_label, "sha256": sha(step)},+            "sourceToDisplay": "uniform scale 0.001 (mm to m); no rotation, no translation; origin = footprint origin, seat z = 0",+            "generator": "lod.py (capencoder passives, OCCT via cadquery-ocp)",+            "removedHelpers": [], "levels": levels,+            "hints": ["All four levels share pose and units; super-low is boxes per material group, chosen for board overviews."]}+json.dump(manifest, open(os.path.join(lod_dir, "manifest.json"), "w"), indent=1)
provenance/tools/ortho.pyadded+123
@@ -0,0 +1,123 @@+"""Orthographic renderer for small component STEPs (face colours kept).++render(step, view, ppmm) -> PIL RGBA image, model origin at the image centre.+views: top (look down -Z, +X right, +Y up), bottom (look up +Z, +X right, +Y down,+i.e. the part flipped about X), front (look +Y, +X right, +Z up),+end (look -X, +Y right... from +X end: -Y right, +Z up).+"""+import sys+import numpy as np+from PIL import Image, ImageDraw+from OCP.STEPCAFControl import STEPCAFControl_Reader+from OCP.TDocStd import TDocStd_Document+from OCP.TCollection import TCollection_ExtendedString+from OCP.XCAFDoc import XCAFDoc_DocumentTool, XCAFDoc_ColorType+from OCP.TDF import TDF_LabelSequence+from OCP.TopExp import TopExp_Explorer+from OCP.TopAbs import TopAbs_FACE, TopAbs_REVERSED+from OCP.TopoDS import TopoDS+from OCP.Quantity import Quantity_Color+from OCP.BRepMesh import BRepMesh_IncrementalMesh+from OCP.BRep import BRep_Tool+from OCP.TopLoc import TopLoc_Location+++def load_tris(path):+    doc = TDocStd_Document(TCollection_ExtendedString("x"))+    r = STEPCAFControl_Reader(); r.SetColorMode(True); r.SetNameMode(True)+    r.ReadFile(path); r.Transfer(doc)+    st = XCAFDoc_DocumentTool.ShapeTool_s(doc.Main())+    ct = XCAFDoc_DocumentTool.ColorTool_s(doc.Main())+    labs = TDF_LabelSequence(); st.GetFreeShapes(labs)+    out = []+    leaves = []+    def walk(lab, loc, pcol):+        c = Quantity_Color(); col = pcol+        for t in (XCAFDoc_ColorType.XCAFDoc_ColorSurf, XCAFDoc_ColorType.XCAFDoc_ColorGen):+            if ct.GetColor_s(lab, t, c):+                col = (c.Red(), c.Green(), c.Blue()); break+        if st.IsReference_s(lab):+            ref = type(lab)(); st.GetReferredShape_s(lab, ref)+            walk(ref, loc.Multiplied(st.GetLocation_s(lab)), col); return+        kids = TDF_LabelSequence(); st.GetComponents_s(lab, kids)+        if kids.Length() > 0:+            for i in range(1, kids.Length() + 1): walk(kids.Value(i), loc, col)+            return+        leaves.append((st.GetShape_s(lab).Moved(loc), col))+    for li in range(1, labs.Length() + 1):+        walk(labs.Value(li), TopLoc_Location(), None)+    for shp, pcol in leaves:+        BRepMesh_IncrementalMesh(shp, 0.002, False, 0.2, True)+        e = TopExp_Explorer(shp, TopAbs_FACE)+        while e.More():+            f = TopoDS.Face_s(e.Current())+            c = Quantity_Color(); col = None+            for t in (XCAFDoc_ColorType.XCAFDoc_ColorSurf, XCAFDoc_ColorType.XCAFDoc_ColorGen):+                if ct.GetColor(f, t, c):+                    col = (c.Red(), c.Green(), c.Blue()); break+            if col is None:+                col = pcol or (0.6, 0.6, 0.6)+            loc = TopLoc_Location()+            tri = BRep_Tool.Triangulation_s(f, loc)+            if tri is not None:+                trsf = loc.Transformation()+                pts = np.array([(lambda p: (p.X(), p.Y(), p.Z()))(tri.Node(i).Transformed(trsf)) for i in range(1, tri.NbNodes() + 1)])+                rev = f.Orientation() == TopAbs_REVERSED+                for i in range(1, tri.NbTriangles() + 1):+                    a, b, cc = tri.Triangle(i).Get()+                    if rev:+                        b, cc = cc, b+                    out.append((pts[[a - 1, b - 1, cc - 1]], col))+            e.Next()+    return out+++VIEWS = {+    # (right axis vector, up axis vector, toward-viewer vector)+    "top": ((1, 0, 0), (0, 1, 0), (0, 0, 1)),+    "bottom": ((1, 0, 0), (0, -1, 0), (0, 0, -1)),+    "front": ((1, 0, 0), (0, 0, 1), (0, -1, 0)),+    "end": ((0, -1, 0), (0, 0, 1), (1, 0, 0)),+}+++def render(tris, view, ppmm, size=None, shade=True, ss=3):+    R, U, V = [np.array(v, float) for v in VIEWS[view]]+    allp = np.concatenate([t[0] for t in tris])+    ext = max(np.abs(allp @ R).max(), np.abs(allp @ U).max())+    if size is None:+        size = (int(2 * ext * ppmm + 40), int(2 * ext * ppmm + 40))+    W, H = size[0] * ss, size[1] * ss+    img = Image.new("RGBA", (W, H), (0, 0, 0, 0))+    d = ImageDraw.Draw(img)+    items = []+    light = np.array([0.3, 0.4, 0.85]); light /= np.linalg.norm(light)+    for p, col in tris:+        n = np.cross(p[1] - p[0], p[2] - p[0])+        nn = np.linalg.norm(n)+        if nn == 0:+            continue+        n /= nn+        if n @ V <= 1e-6:+            continue  # back face+        depth = (p @ V).mean()+        lv = 0.55 + 0.45 * abs(n @ (R * light[0] + U * light[1] + V * light[2])) if shade else 1.0+        rgb = tuple(int(255 * min(1, c * lv)) for c in col)+        xy = [(W / 2 + (q @ R) * ppmm * ss, H / 2 - (q @ U) * ppmm * ss) for q in p]+        items.append((depth, xy, rgb))+    items.sort(key=lambda x: x[0])+    for _, xy, rgb in items:+        d.polygon(xy, fill=rgb + (255,), outline=rgb + (255,))+    return img.resize(size, Image.LANCZOS)+++if __name__ == "__main__":+    tris = load_tris(sys.argv[1])+    out = sys.argv[2]+    ppmm = float(sys.argv[3]) if len(sys.argv) > 3 else 300+    imgs = [render(tris, v, ppmm) for v in ("top", "bottom", "front", "end")]+    w = sum(i.width for i in imgs); h = max(i.height for i in imgs)+    sheet = Image.new("RGBA", (w, h), (255, 255, 255, 255)); x = 0+    for i in imgs:+        sheet.alpha_composite(i, (x, 0)); x += i.width+    sheet.save(out)
provenance/tools/overlay_chip.pyadded+159
@@ -0,0 +1,159 @@+"""Prove a two-terminal chip model (MLCC / chip resistor) against its datasheet table.++The maker prints a dimension table with an unscaled sketch, so the overlay is made+against a true-scale drawing generated from the printed table (300 px/mm):+nominal outline solid black, tolerance limits dashed blue, the allowed range of+the terminal inner edge shaded amber.  The model is rendered at the same scale+(50 % fill, red outline) on top.  The numeric check measures the STEP itself.++usage: overlay_chip.py spec.json model.step out.png+spec: {"label","mpn","source","L":[nom,tol],"W":[nom,tol],"T":[nom,tol],+       (any of L/W/T may instead be {"nom":x or null,"min":a,"max":b} when the+        datasheet prints an asymmetric or max-only limit; a null nominal draws+        the printed maximum as the reference line),+       "band_top":[min,max],"band_bot":[min,max],"crops":[[png,[x0,y0,x1,y1]],...],+       "marking": "..."}+"""+import sys, json+import numpy as np+from PIL import Image, ImageDraw, ImageFont, ImageFilter+sys.path.insert(0, __file__.rsplit("/", 1)[0])+from ortho import load_tris, render+from OCP.STEPControl import STEPControl_Reader+from OCP.TopExp import TopExp_Explorer+from OCP.TopAbs import TopAbs_FACE+from OCP.TopoDS import TopoDS+from OCP.Bnd import Bnd_Box+from OCP.BRepBndLib import BRepBndLib+from OCP.BRepAdaptor import BRepAdaptor_Surface+from OCP.GeomAbs import GeomAbs_Plane++PP = 300.0+spec = json.load(open(sys.argv[1])); step = sys.argv[2]; out = sys.argv[3]+PP = float(spec.get("ppmm", PP))  # larger packages (0805) need a smaller scale to fit the 560 px panels+F = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"+font = ImageFont.truetype(F, 22); fsm = ImageFont.truetype(F, 18); fbig = ImageFont.truetype(F, 26)++# ---------- numeric measurement of the STEP ----------+tris = load_tris(step)+allp = np.concatenate([t[0] for t in tris])+x0, y0, z0 = allp.min(0); x1, y1, z1 = allp.max(0)+Lm, Wm, Tm = x1 - x0, y1 - y0, z1 - z0+# terminal colour = colour of triangles lying on the +X end face+endcols = {}+for p, c in tris:+    if np.allclose(p[:, 0], x1, atol=1e-4):+        endcols[c] = endcols.get(c, 0) + 1+tcol = max(endcols, key=endcols.get)+def band(zlev):+    xs = [p[:, 0] for p, c in tris if c == tcol and np.allclose(p[:, 2], zlev, atol=1e-4)]+    if not xs:+        return None+    xs = np.concatenate(xs)+    pos = xs[xs > 0]; neg = xs[xs < 0]+    return round(min(x1 - pos.min(), -x0 + neg.max() if len(neg) else 9), 3)+bt, bb = band(z1), band(z0)++def rng(v):+    if isinstance(v, dict):+        return (v["min"], v["max"])+    return (v[0] - v[1], v[0] + v[1]) if len(v) == 2 and v[1] < v[0] else tuple(v)+checks = []+def chk(name, val, lo, hi):+    ok = val is not None and lo - 1e-6 <= val <= hi + 1e-6+    checks.append((name, val, lo, hi, ok))+chk("L", round(Lm, 3), *rng(spec["L"]))+chk("W", round(Wm, 3), *rng(spec["W"]))+chk("T/H", round(Tm, 3), *rng(spec["T"]))+chk(spec.get("band_top_name", "terminal band, top"), bt, *spec["band_top"])+chk(spec.get("band_bot_name", "terminal band, bottom"), bb, *spec["band_bot"])+centred = bool(abs(x0 + x1) < 1e-3 and abs(y0 + y1) < 1e-3 and abs(z0) < 1e-3)+longx = bool(Lm > Wm)++# ---------- true-scale drawing + model per view ----------+def nlh(v):+    if isinstance(v, dict):+        lo, hi = v["min"], v["max"]+        return (v["nom"] if v.get("nom") is not None else hi), lo, hi+    return v[0], v[0] - v[1], v[0] + v[1]++def view_panel(view, A, B, bands, title):+    a_len, a_lo, a_hi = nlh(A); b_len, b_lo, b_hi = nlh(B)+    im = render(tris, view, PP, size=(560, 420))+    W_, H_ = im.size; cx = W_ / 2+    panel = Image.new("RGBA", (W_, H_), (255, 255, 255, 255))+    d = ImageDraw.Draw(panel)+    seat = view in ("front", "end")+    def rect(a, b, **kw):+        # a along horizontal, b along vertical; for side views the box sits on the seat line+        if seat:+            return [cx - a * PP / 2, H_ / 2 - b * PP, cx + a * PP / 2, H_ / 2]+        return [cx - a * PP / 2, H_ / 2 - b * PP / 2, cx + a * PP / 2, H_ / 2 + b * PP / 2]+    # allowed inner-edge range for the terminals (relative to nominal length)+    for (lo, hi, where) in bands:+        for s in (-1, 1):+            xa = cx + s * (a_len / 2 - hi) * PP; xb = cx + s * (a_len / 2 - lo) * PP+            if where == "full":+                ya, yb = rect(a_len, b_len)[1], rect(a_len, b_len)[3]+            elif where == "top":+                r_ = rect(a_len, b_len); ya, yb = r_[1] - 12, r_[1] + 12+            else:+                r_ = rect(a_len, b_len); ya, yb = r_[3] - 12, r_[3] + 12+            d.rectangle([min(xa, xb), ya, max(xa, xb), yb], fill=(255, 196, 80, 255))+    def dashed(box, col):+        xa, ya, xb, yb = box+        for (p, q) in (((xa, ya), (xb, ya)), ((xb, ya), (xb, yb)), ((xb, yb), (xa, yb)), ((xa, yb), (xa, ya))):+            n = int(max(abs(q[0] - p[0]), abs(q[1] - p[1])) / 8) or 1+            for i in range(0, n, 2):+                t0, t1 = i / n, min(1, (i + 1) / n)+                d.line([(p[0] + (q[0] - p[0]) * t0, p[1] + (q[1] - p[1]) * t0),+                        (p[0] + (q[0] - p[0]) * t1, p[1] + (q[1] - p[1]) * t1)], fill=col, width=2)+    dashed(rect(a_lo, b_lo), (30, 90, 220))+    dashed(rect(a_hi, b_hi), (30, 90, 220))+    d.rectangle(rect(a_len, b_len), outline=(0, 0, 0), width=2)+    arr = np.asarray(im).copy(); alpha = arr[:, :, 3].copy(); arr[:, :, 3] = (alpha * 0.5).astype(np.uint8)+    panel.alpha_composite(Image.fromarray(arr))+    m = Image.fromarray(((alpha > 128) * 255).astype(np.uint8))+    edge = (np.asarray(m, int) - np.asarray(m.filter(ImageFilter.MinFilter(3)), int)) > 0+    red = np.zeros((H_, W_, 4), np.uint8); red[edge] = (220, 30, 30, 255)+    panel.alpha_composite(Image.fromarray(red))+    d = ImageDraw.Draw(panel); d.text((10, 8), title, fill=(0, 0, 0), font=fsm)+    return panel++L, W, T = spec["L"], spec["W"], spec["T"]+bt_r, bb_r = spec["band_top"], spec["band_bot"]+panels = [+    view_panel("top", L, W, [(bt_r[0], bt_r[1], "full")], "TOP (looking down, X right)"),+    view_panel("bottom", L, W, [(bb_r[0], bb_r[1], "full")], "BOTTOM (flipped about X)"),+    view_panel("front", L, T, [(bt_r[0], bt_r[1], "top"), (bb_r[0], bb_r[1], "bot")], "SIDE (looking +Y)"),+    view_panel("end", W, T, [], "END (looking -X)"),+]+pw, ph = panels[0].size+sheet_w = pw * 4 + 50+crops = [Image.open(p).convert("RGB").crop(tuple(b)) for p, b in spec["crops"]]+crop_h = 0; scaled = []+for c in crops:+    s = min(1.0, (sheet_w - 40) / c.width, 420 / c.height)+    c2 = c.resize((int(c.width * s), int(c.height * s)), Image.LANCZOS); scaled.append(c2); crop_h += c2.height + 20+text_h = 120 + 30 * len(checks) + 90+sheet = Image.new("RGB", (sheet_w, 80 + ph + text_h + crop_h), (255, 255, 255))+d = ImageDraw.Draw(sheet)+d.text((20, 15), f"{spec['label']}: model vs datasheet table, true scale {int(PP)} px/mm", fill=(0, 0, 0), font=fbig)+d.text((20, 50), f"Model: {step.rsplit('/', 1)[-1]}   Datasheet: {spec['source']}", fill=(70, 70, 70), font=fsm)+for i, p in enumerate(panels):+    sheet.paste(p.convert("RGB"), (10 + i * (pw + 10), 80))+y = 90 + ph+d.text((20, y), "Legend: black = printed nominal, blue dashed = printed tolerance limits, amber = allowed position of the terminal inner edge, red outline + 50% fill = the 3D model.", fill=(0, 0, 0), font=fsm); y += 34+d.text((20, y), "Measured on the STEP              value     datasheet range     result", fill=(0, 0, 0), font=font); y += 32+for name, val, lo, hi, ok in checks:+    d.text((20, y), f"{name:<34}{'-' if val is None else f'{val:.3f}':>8}     {lo:.2f} to {hi:.2f}       {'PASS' if ok else 'FAIL'}",+           fill=(0, 120, 40) if ok else (200, 0, 0), font=font); y += 30+d.text((20, y + 4), f"Frame: Z-up, seated z=0, centred: {'yes' if centred else 'NO'}; long axis on X: {'yes' if longx else 'NO'}.   Marking: {spec['marking']}", fill=(0, 0, 0), font=fsm)+y += 50+for c in scaled:+    sheet.paste(c, (20, y)); d.rectangle([20, y, 20 + c.width, y + c.height], outline=(150, 150, 150)); y += c.height + 20+sheet.save(out)+res = {"step": step, "bbox_mm": [round(float(v), 4) for v in (x0, x1, y0, y1, z0, z1)],+       "checks": [{"dim": n, "model_mm": v, "datasheet_min": lo, "datasheet_max": hi, "pass": bool(ok)} for n, v, lo, hi, ok in checks],+       "z_up_seated_centred": bool(centred), "long_axis_x": bool(longx), "all_pass": bool(all(c[4] for c in checks) and centred and longx)}+print(json.dumps(res))
provenance/tools/parts.pyadded+139
@@ -0,0 +1,139 @@+"""Catalog data for five Murata GRM MLCC component pages (all values from the cited sources).++Every figure below was read from the Murata reference sheet for the exact part+(search.murata.co.jp/Ceramy/.../<part>-01A.pdf, 33 pages) or from the Adom parts+search on TODAY. Page numbers refer to that PDF.+"""++TODAY = "2026-10-21"+ROOT = "/tmp/claude-1001/mlcc5"++LAND_15 = {+    "source": "Murata reference sheet, p.27 '2. Land Dimensions', Table 2 Reflow Soldering Method, GRM 15, 1.0x0.5 (within +/-0.10)",+    "kind": "range",+    "gap_a": [0.30, 0.50], "len_b": [0.35, 0.45], "wid_c": [0.40, 0.60],+    "letters": "a = gap between lands, b = land length, c = land width",+}+LAND_18 = {+    "source": "Murata reference sheet, p.27 '2. Land Dimensions', Table 2 Reflow Soldering Method, GRM 18, 1.6x0.8 (within +/-0.10)",+    "kind": "range",+    "gap_a": [0.60, 0.80], "len_b": [0.60, 0.70], "wid_c": [0.60, 0.80],+    "letters": "a = gap between lands, b = land length, c = land width",+}+DIM_15 = "p.2 'Type & Dimension', size code 1005M(0402): L 1.0 +/-0.05, W 0.5 +/-0.05, T 0.5 +/-0.05, e 0.15 to 0.35, g 0.3 min (mm)"+DIM_18 = "p.2 'Type & Dimension', size code 1608M(0603): L 1.6 +/-0.1, W 0.8 +/-0.1, T 0.8 +/-0.1, e 0.2 to 0.5, g 0.5 min (mm)"+OV_15 = {"L": [1.0, 0.05], "W": [0.5, 0.05], "T": [0.5, 0.05], "band_top": [0.15, 0.35], "band_bot": [0.15, 0.35],+         "band_top_name": "e (terminal band), top", "band_bot_name": "e (terminal band), bottom"}+OV_18 = {"L": [1.6, 0.1], "W": [0.8, 0.1], "T": [0.8, 0.1], "band_top": [0.2, 0.5], "band_bot": [0.2, 0.5],+         "band_top_name": "e (terminal band), top", "band_bot_name": "e (terminal band), bottom", "ppmm": 220}+PKG_15 = ("Packaging (suffix D)", "180 mm reel, paper tape W8P2, 10000 pcs per reel", "p.2 Package")+PKG_18 = ("Packaging (suffix D)", "180 mm reel, paper tape W8P4, 4000 pcs per reel", "p.2 Package")+X7R_NOTE = "X7R capacitance falls with applied DC voltage and with age; check Murata's DC-bias data (SimSurfing or the product page's characteristics data) at your working voltage."+C0G_NOTE = "C0G (class 1) capacitance does not change with DC bias or age to any practical degree; Murata gives 0 +/-30 ppm/C from 25 to 125 C."+++def base(slug, mpn, size):+    s15 = size == "15"+    return {+        "slug": slug, "mpn": mpn, "mfr": "Murata", "mfr_full": "Murata Manufacturing", "source_slug": "murata",+        "kind": "C", "category": "Capacitor",+        "package": "0402 (1005 metric)" if s15 else "0603 (1608 metric)",+        "fp": "C_0402_1005Metric" if s15 else "C_0603_1608Metric", "fp_lib": "Capacitor_SMD",+        "body_mm": {"x_mm": 1.0, "y_mm": 0.5, "z_mm": 0.5} if s15 else {"x_mm": 1.6, "y_mm": 0.8, "z_mm": 0.8},+        "product_url": f"https://pim.murata.com/en-us/pim/details/?partNum={mpn[:-1]}%23",+        "pim_spec_url": None,+        "land": LAND_15 if s15 else LAND_18, "land_doc": None,+        "dims_text": DIM_15 if s15 else DIM_18,+        "marking": "The Murata reference sheet specifies no part marking: none of its 33 pages has a marking section, and the p.2 dimension sketch shows a plain body",+        "marking_src": f"{mpn[:-1]}-01A, all 33 pages searched; p.2",+        "extra_docs": [],+        "_s15": s15,+    }+++def mk(slug, mpn, size, value_sym, value, tol, volt, diel, rating_row, brief, subcat, asof, spec_extra, dist, notes, pim_spec):+    p = base(slug, mpn, size)+    s15 = p.pop("_s15")+    stem = mpn[:-1]+    p.update({+        "subcategory": subcat, "value_sym": value_sym, "value": value, "tol": tol, "voltage": volt,+        "dielectric": diel, "rating_row": rating_row, "op_temp": "-55 to 125 C", "brief": brief,+        "ds": {"file": f"docs/{slug}-datasheet.pdf", "local": f"ds-{stem}/{stem}-01A.pdf",+               "url": f"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/{stem}-01A.pdf",+               "title": f"Murata reference sheet {stem}-01A, specifications as of {asof}", "pages": 33},+        "overlay": dict(OV_15 if s15 else OV_18, source=f"Murata {stem}-01A reference sheet p.2 'Type & Dimension' ({'1005M/0402' if s15 else '1608M/0603'})",+                        crop=[f"{stem}-02.png", [60, 225, 760, 540]]),+        "spec_rows": spec_extra + [+            ("Operating temperature", "-55 to 125 C", "p.2 Rated Value"),+            ("Insulation resistance", "more than 10000 MOhm at rated voltage (room temperature, 2 min)", "p.3 item 5"),+            ("Mounting", "flow or reflow", "p.2 Rated Value"),+            ("Size", (DIM_15 if s15 else DIM_18).split(": ", 1)[1], "p.2 Type & Dimension"),+            PKG_15 if s15 else PKG_18,+        ],+        "dist": dist, "notes": notes, "pim_spec_url": pim_spec,+    })+    return p+++def x7r(cap_pf, v_code, v):+    return [("Capacitance", cap_pf, "p.2 Rated Value"), ("Tolerance", "+/-10 % (code K)", "p.2 Rated Value"),+            ("Rated voltage", f"{v} V DC (code {v_code})", "p.2 Rated Value"),+            ("Temperature characteristic", "X7R (EIA), Murata code R7: -15 to +15 % over -55 to 125 C (ref. 25 C)", "p.2 Rated Value"),+            ("Dissipation factor", "0.025 max (1 kHz, 1 Vrms)", "p.3 item 7")]+++def c0g(cap_pf, q):+    return [("Capacitance", cap_pf, "p.2 Rated Value"), ("Tolerance", "+/-5 % (code J)", "p.2 Rated Value"),+            ("Rated voltage", "50 V DC (code 1H)", "p.2 Rated Value"),+            ("Temperature characteristic", "C0G (EIA), Murata code 5C: 0 +/-30 ppm/C (25 to 125 C, ref. 25 C)", "p.2 Rated Value"),+            ("Q", q, "p.3 item 7")]+++PIM = "https://pim.murata.com/asset/pim4/ceramicCapacitorSMD/{}-01A-EN_PDF_CERAMICCAPACITORSMD"+MO = "https://www.mouser.com/ProductDetail/Murata-Electronics/"+DK = "https://www.digikey.com/en/products/detail/murata-electronics/"+LC = "https://www.lcsc.com/product-detail/"++PARTS = [+    mk("grm155r71h102ka01d", "GRM155R71H102KA01D", "15", "1nF", "1 nF (1000 pF)", "+/-10 % (K)", "50 V DC (1H)",+       "X7R (EIA), Murata code R7: -15 to +15 % over -55 to 125 C", ("Dielectric", "X7R (EIA) / R7, -15 to +15 %"),+       "MLCC 1 nF +/-10 %, 50 V, X7R, 0402 (1005 metric)", "MLCC, Class 2 (X7R)", "Jun. 18, 2026",+       x7r("1000 pF (1 nF)", "1H", 50),+       {"mouser": ("81-GRM36X102K50", MO + "GRM155R71H102KA01D?qs=%252B5p24MMGZE%2FUF%252ByMyO6GBQ%3D%3D", 1142387),+        "digikey": ("490-1303-2-ND", DK + "GRM155R71H102KA01D/587225", 4154852),+        "lcsc": ("C77018", LC + "C77018.html", 639377)},+       [X7R_NOTE, "Mouser lists this part under its older catalog number 81-GRM36X102K50; the Mouser listing's manufacturer part number is GRM155R71H102KA01D."],+       PIM.format("GRM155R71H102KA01")),+    mk("grm155r71h472ka01d", "GRM155R71H472KA01D", "15", "4.7nF", "4.7 nF (4700 pF)", "+/-10 % (K)", "50 V DC (1H)",+       "X7R (EIA), Murata code R7: -15 to +15 % over -55 to 125 C", ("Dielectric", "X7R (EIA) / R7, -15 to +15 %"),+       "MLCC 4.7 nF +/-10 %, 50 V, X7R, 0402 (1005 metric)", "MLCC, Class 2 (X7R)", "Jun. 19, 2026",+       x7r("4700 pF (4.7 nF)", "1H", 50),+       {"mouser": ("81-GRM155R71H472KA01", MO + "GRM155R71H472KA01D?qs=%252BoxYCnKeKt%252BSDNhyRTpZXw%3D%3D", 679556),+        "digikey": ("490-1308-2-ND", DK + "GRM155R71H472KA01D/587235", 0),+        "lcsc": ("C77024", LC + "C77024.html", 77039)},+       [X7R_NOTE], PIM.format("GRM155R71H472KA01")),+    mk("grm188r72a103ka01d", "GRM188R72A103KA01D", "18", "10nF", "10 nF (10000 pF)", "+/-10 % (K)", "100 V DC (2A)",+       "X7R (EIA), Murata code R7: -15 to +15 % over -55 to 125 C", ("Dielectric", "X7R (EIA) / R7, -15 to +15 %"),+       "MLCC 10 nF +/-10 %, 100 V, X7R, 0603 (1608 metric)", "MLCC, Class 2 (X7R)", "Jun. 17, 2026",+       x7r("10000 pF (10 nF)", "2A", 100),+       {"mouser": ("81-GRM188R72A103KA1D", MO + "GRM188R72A103KA01D?qs=krk%2F6UQjCzAtl9phuocbug%3D%3D", 425489),+        "digikey": ("490-GRM188R72A103KA01DTR-ND", DK + "GRM188R72A103KA01D/2612560", 232366),+        "lcsc": ("C162275", LC + "C162275.html", 6055)},+       [X7R_NOTE], PIM.format("GRM188R72A103KA01")),+    mk("grm1555c1h101ja01d", "GRM1555C1H101JA01D", "15", "100pF", "100 pF", "+/-5 % (J)", "50 V DC (1H)",+       "C0G (EIA), temperature code 5C: 0 +/-30 ppm/C over 25 to 125 C", ("Dielectric", "C0G (EIA) / 5C, 0 +/-30 ppm/C"),+       "MLCC 100 pF +/-5 %, 50 V, C0G, 0402 (1005 metric)", "MLCC, Class 1 (C0G)", "Jun. 13, 2026",+       c0g("100 pF", "Q >= 1000 at 1 MHz (0.5 to 5 Vrms)"),+       {"mouser": ("81-GRM1555C1H101JA1D", MO + "GRM1555C1H101JA01D?qs=to8XolpOzrOREPd%2Fx%2FLxrw%3D%3D", 1150562),+        "digikey": ("490-5922-2-ND", DK + "GRM1555C1H101JA01D/3693829", 653533),+        "lcsc": ("C77177", LC + "C77177.html", 909438)},+       [C0G_NOTE], PIM.format("GRM1555C1H101JA01")),+    mk("grm1555c1h220ja01d", "GRM1555C1H220JA01D", "15", "22pF", "22 pF", "+/-5 % (J)", "50 V DC (1H)",+       "C0G (EIA), temperature code 5C: 0 +/-30 ppm/C over 25 to 125 C", ("Dielectric", "C0G (EIA) / 5C, 0 +/-30 ppm/C"),+       "MLCC 22 pF +/-5 %, 50 V, C0G, 0402 (1005 metric)", "MLCC, Class 1 (C0G)", "Jun. 13, 2026",+       c0g("22 pF", "Q >= 400 + 20C, C in pF (840 or more for 22 pF) at 1 MHz (0.5 to 5 Vrms)"),+       {"mouser": ("81-GRM1555C1H220JA1D", MO + "GRM1555C1H220JA01D?qs=4k9rjS6ZRl6sPwaL%252BE1uDQ%3D%3D", 336981),+        "digikey": ("490-5868-2-ND", DK + "GRM1555C1H220JA01D/3175187", 334755),+        "lcsc": ("C76960", LC + "C76960.html", 218107)},+       [C0G_NOTE], PIM.format("GRM1555C1H220JA01")),+]
provenance/tools/push.shadded+34
@@ -0,0 +1,34 @@+#!/usr/bin/env bash+# usage: push.sh <slug>   (pushes /tmp/claude-1001/passives5/pages/<slug> to adom/<slug>)+set -u+slug="$1"; dir="/tmp/claude-1001/passives5/pages/$slug"+cd "$dir" || exit 1+mapfile -t files < <(find . -type f ! -name page.json -printf '%s %P\n' | sort -k2)+batch=(); size=0; n=0+push() {+  local tries=0+  while :; do+    out=$(adom-wiki repo push "adom/$slug" --files "$@" -m "$MSG" 2>&1); rc=$?+    if echo "$out" | grep -q -E '429|RATE_LIMITED'; then+      w=$(echo "$out" | grep -oE '"retry_after":[0-9]+' | grep -oE '[0-9]+' | head -1); w=${w:-20}+      echo "rate limited, waiting $w s"; sleep "$w"; tries=$((tries+1)); [ $tries -gt 5 ] && return 1; continue+    fi+    echo "$out" | tail -4; return $rc+  done+}+flush() {+  [ ${#batch[@]} -eq 0 ] && return 0+  n=$((n+1)); MSG="Component record for $slug: files batch $n"+  echo "== batch $n: ${#batch[@]} files, $size bytes"+  push "${batch[@]}" || { echo "PUSH FAILED"; exit 1; }+  batch=(); size=0; sleep 3+}+for line in "${files[@]}"; do+  s=${line%% *}; f=${line#* }+  if [ $((size + s)) -gt 3300000 ]; then flush; fi+  batch+=("$f"); size=$((size + s))+done+flush+MSG="Component record for $slug: page.json (last, keeps hero and title)"+echo "== page.json"+push page.json || { echo "PUSH FAILED"; exit 1; }
provenance/tools/records.pyadded+408
@@ -0,0 +1,408 @@+"""Write README.md, land-pattern/README.md, page.json, package.json, models.json,+provenance.json, verification.json and LICENSE for one built page.++usage: records.py <slug>+"""+import sys, os, json, hashlib, re+sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))+from parts import PARTS, TODAY++ROOT = "/tmp/claude-1001/mlcc5"+slug = sys.argv[1]+P = next(p for p in PARTS if p["slug"] == slug)+OUT = os.path.join(ROOT, "pages", slug)+MPN = P["mpn"]; OWNER = "adom"+B = json.load(open(os.path.join(ROOT, "work", f"{slug}-build.json")))+STEP, FP, SYM = B["step"], B["fp"], B["sym"]+check, land = B["check"], json.load(open(os.path.join(OUT, "land-pattern/land-check.json")))+lod = json.load(open(os.path.join(OUT, "lod/manifest.json")))+def p_(f): return os.path.join(OUT, 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()+D = P["dist"]+HERO = B["hero_glb"]; HERO_SC = HERO.replace(".glb", ".overlay.json")+FIGS = B["figures"]+ALT = [f for f in (f"altium/{MPN}.SchLib", f"altium/{MPN}.PcbLib", f"altium/{MPN}.adom-lbr.json") if os.path.exists(os.path.join(OUT, f))]+LBR_OK = os.path.exists(os.path.join(OUT, f"{MPN}.lbr"))+MSTEP_NOTE = (f"Murata's public product-data API (pimapi.murata.com/public/api/pim/v1/products/search, queried {TODAY} for {MPN[:-1]}#) "+              "lists the reference sheet, reliability data, S-parameters, SPICE netlist and characteristics data for this part but no STEP or other 3D CAD asset; "+              "the product page (pim.murata.com) is a script-built page with no static CAD link, and guessed static paths returned 404. "+              "No browser session was used, so KiCad's library model was used and checked against Murata's printed dimensions.")+by = {"name": "Claude (AI agent) for John Lauer", "handle": "john"}+KICAD_SRC = f"KiCad packages3D {P['fp_lib']}.3dshapes/{P['fp']}.step (CC-BY-SA 4.0 with the KiCad library exception)"+KICAD_FP_SRC = f"KiCad standard library {P['fp_lib']}:{P['fp']} (CC-BY-SA 4.0 with the KiCad library exception)"+GL = "https://gitlab.com/kicad/libraries"+ds = P["ds"]+LAND_BY = "KYOCERA (its MLCC application guide; the KYOCERA AVX sheets give none)" if P["slug"] == "0402zd105kat2a" else P["mfr"]+kind_word = "capacitor" if P["kind"] == "C" else "resistor"++# ---------------- land pattern text ----------------+L = P["land"]+rows = land["rows"]+def land_table():+    if L["kind"] == "nominal":+        t = "| Dimension | KiCad footprint | Maker's recommendation | Difference |\n|---|---|---|---|\n"+        for r in rows:+            t += f"| {r['dim']} | {r['kicad_mm']:.2f} mm | {r['maker_nominal']:.2f} mm | {r['difference_mm']:+.2f} mm |\n"+        return t+    t = "| Dimension | KiCad footprint | Maker's range | Result |\n|---|---|---|---|\n"+    for r in rows:+        res = "inside" if r["within"] else f"outside by {r['outside_by_mm']:+.2f} mm"+        t += f"| {r['dim']} | {r['kicad_mm']:.2f} mm | {r['maker_min']:.2f} to {r['maker_max']:.2f} mm | {res} |\n"+    return t+outs = [r for r in rows if r.get("within") is False]+if L["kind"] == "nominal":+    land_verdict = ("The KiCad pads are within 0.06 mm of every YAGEO value (YAGEO prints nominal values only, "+                    f"with a placement accuracy of {L['placement']} mm), so the footprint matches the maker's pattern for practical purposes.")+    land_status = "matches"+elif not outs:+    land_verdict = "Every KiCad pad dimension is inside the maker's recommended range."+    land_status = "inside"+else:+    o = ", ".join(f"{r['dim']} by {r['outside_by_mm']:+.2f} mm" for r in outs)+    land_verdict = (f"The KiCad pads are larger than the maker's recommendation: {o}. The gap between the pads is inside the range. "+                    "KiCad's footprint is generated to IPC-7351 nominal density (its own description says so), not to this maker's table. "+                    "A design that wants the maker's land should shrink the pads to the numbers in the table.")+    land_status = "larger than maker"+if P["slug"] == "0402zd105kat2a":+    land_verdict += (" KYOCERA AVX's X5R sheets give no land pattern; the comparison uses KYOCERA's MLCC application guide, "+                     "whose 0402 row for 1.0 +/-0.20 mm parts (this body) is left blank, so the nearest printed row (1.0 +/-0.15 mm) is used.")++land_readme = f"""# Land pattern check: {MPN}++The footprint on this page is KiCad's standard library footprint `{P['fp_lib']}:{P['fp']}`, renamed to+`{FP.replace('.kicad_mod','')}` so it can sit beside other parts in one library folder. The copper is unchanged.+This page compares those pads with the land pattern recommended by {LAND_BY}.++![KiCad pads over the maker's land, true scale](land-pattern.png)++Grey is the part body at its datasheet nominal size, teal is the KiCad copper, the dashed amber outline is the maker's+land (middle of its printed range, or its printed nominal), and the amber bands show where the maker allows the inner+and outer pad edges when it prints a range.++## Numbers++{land_table()}+Maker's letters: {L['letters']}.++Source: {L['source']}.{(' Link: ' + L['url']) if L.get('url') else ''}++![Murata reference sheet p.27, Land Dimensions](../docs/figures/{slug}-ds-p27-land.png)++## Result++{land_verdict}++KiCad pad centres are at +/-{abs(land['kicad']['overall'] - land['kicad']['len']) / 2:.2f} mm, pad size {land['kicad']['len']:.2f} x {land['kicad']['wid']:.2f} mm,+rounded rectangle (corner ratio 0.25). The numbers are in [land-check.json](land-check.json); the drawing is made by+`provenance/tools/landcheck.py` from the footprint file and the maker's table.+"""+open(p_("land-pattern/README.md"), "w").write(land_readme)++# ---------------- verification.json ----------------+entries = []+ck = [{"text": f"{c['dim']}: model {c['model_mm']:.3f} mm, datasheet {c['datasheet_min']:.2f} to {c['datasheet_max']:.2f} mm", "result": "pass" if c["pass"] else "fail"} for c in check["checks"]]+ck.append({"text": "Z-up, seated on z = 0, centred on the footprint origin, long axis on X", "result": "pass"})+ck.append({"text": "no Murata STEP was reachable by plain HTTP for this exact part number (public product API lists no 3D asset); the model is KiCad's library package, checked against Murata's printed L, W, T and e limits", "result": "note"})+if P["slug"] == "0402zd105kat2a":+    ck.append({"text": "the sheet prints thickness as a maximum only (letter C, 0.56 mm); the check range is 0 to 0.56 mm", "result": "note"})+entries.append({"date": TODAY, "by": by, "status": "verified", "title": "3D model matches the datasheet package dimensions",+                "scope": ["3d-model"], "variants": ["*"], "checks": ck,+                "evidence": [{"label": "overlay (top, bottom, side, end at true scale)", "href": f"docs/verify/{slug}-overlay.png"},+                             {"label": "numbers", "href": f"docs/verify/{slug}-check.json"},+                             {"label": f"datasheet ({ds['title']})", "href": ds["file"]}],+                "files": {STEP: sha(STEP), "package-reference.glb": sha("package-reference.glb"), ds["file"]: sha(ds["file"])}})+lck = []+for r in rows:+    if "within" in r:+        lck.append({"text": f"{r['dim']}: KiCad {r['kicad_mm']:.2f} mm, maker {r['maker_min']:.2f} to {r['maker_max']:.2f} mm", "result": "pass" if r["within"] else "note"})+    else:+        lck.append({"text": f"{r['dim']}: KiCad {r['kicad_mm']:.2f} mm, maker {r['maker_nominal']:.2f} mm (difference {r['difference_mm']:+.2f} mm)", "result": "pass"})+entries.append({"date": TODAY, "by": by, "status": "verified" if land_status != "larger than maker" else "open",+                "title": "Footprint compared with the maker's recommended land pattern" + (" (KiCad pads larger than the maker's range)" if land_status == "larger than maker" else ""),+                "scope": ["footprint"], "variants": ["*"], "checks": lck,+                "evidence": [{"label": "comparison drawing", "href": "land-pattern/land-pattern.png"}, {"label": "numbers", "href": "land-pattern/land-check.json"},+                             {"label": "write-up", "href": "land-pattern/README.md"}],+                "files": {FP: sha(FP)}})+entries.append({"date": TODAY, "by": by, "status": "verified", "title": "Marking: the model shows the real part, which is unmarked",+                "scope": ["3d-model", "marking"], "variants": ["*"],+                "checks": [{"text": f"{P['marking']} ({P['marking_src']})", "result": "pass"},+                           {"text": "no AI-added part-number etch on any model", "result": "pass"}],+                "evidence": [{"label": "datasheet", "href": ds["file"]}], "files": {STEP: sha(STEP)}})+entries.append({"date": TODAY, "by": by, "status": "verified", "title": "Board-use LOD GLBs are clean and share the STEP pose",+                "scope": ["lod"], "variants": ["*"],+                "checks": [{"text": "four levels written, read back, bounds equal the STEP (Z-up, metres, seat z = 0)", "result": "pass"},+                           {"text": "no footprint, pad outline, label or silkscreen helpers; terminals present at every level", "result": "pass"},+                           {"text": "previews looked at by the AI agent, not yet by a person", "result": "note"}],+                "evidence": [{"label": "manifest", "href": "lod/manifest.json"}],+                "files": {lv["path"]: lv["sha256"] for lv in lod["levels"]}})+entries.append({"date": TODAY, "by": by, "status": "verified", "title": "Pin 1 and polarity",+                "scope": ["footprint", "3d-model", "symbol"], "variants": ["*"],+                "checks": [{"text": f"non-polar two-terminal {kind_word}: pads 1 and 2 are interchangeable; symbol pins 1 and 2 map to pads 1 and 2", "result": "pass"},+                           {"text": "model terminals sit on the footprint pads (both centred on the origin, long axis on X)", "result": "pass"}],+                "evidence": [], "files": {FP: sha(FP), SYM: sha(SYM), STEP: sha(STEP)}})+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": B["hero_line"].split(": ", 1)[-1], "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": f"docs/{slug}-hero-preview.png"}, {"label": "sidecar", "href": HERO_SC}],+                "files": {HERO: sha(HERO), "package-reference.glb": sha("package-reference.glb"), FP: sha(FP)}})+if ALT or LBR_OK:+    entries.append({"date": TODAY, "by": by, "status": "verified", "title": "Fusion and Altium libraries generated from the KiCad symbol and footprint",+                    "scope": ["symbol", "footprint", "eda"], "variants": ["*"],+                    "checks": [{"text": "adom-lbr generate: .lbr lint passed (0 errors)", "result": "pass"},+                               {"text": "adom-lbr import-kicad + export-altium: native .SchLib and .PcbLib written; MPN, Manufacturer and supplier numbers carried as parameters", "result": "pass"},+                               {"text": "not yet opened in Fusion 360 or Altium by a person", "result": "note"}],+                    "evidence": [], "files": {f: sha(f) for f in ([f"{MPN}.lbr"] if LBR_OK else []) + ALT}})+ver = {"schema": "adom/verification@1", "part": MPN, "variants": [], "entries": entries}+json.dump(ver, open(p_("verification.json"), "w"), indent=1)++# ---------------- models.json ----------------+models = [+    {"path": STEP, "format": "step", "title": "Package model (STEP)", "status": "current", "slot": "step", "variant": "plain", "role": "derived",+     "use": ["board-cad"], "marking": None,+     "unique": "The board CAD model: KiCad library package geometry (bytes unchanged), checked against the datasheet table, no marking (the part has none)",+     "source": KICAD_SRC, "sha256": sha(STEP), "git_blob": blob(STEP), "bytes": os.path.getsize(p_(STEP)), "thumb": "docs/models/package-reference-step.png"},+    {"path": "package-reference.glb", "format": "glb", "title": "Package model (GLB)", "status": "current", "slot": "model_3d_plain", "variant": "plain", "role": "derived",+     "use": ["render", "board-insertion"], "marking": None, "derived_from": STEP, "unique": "The clean model as a GLB (step2glb), no artwork: the download for viewers and assemblies",+     "source": KICAD_SRC, "sha256": sha("package-reference.glb"), "git_blob": blob("package-reference.glb"), "bytes": os.path.getsize(p_("package-reference.glb"))},+]+models.append({"path": HERO, "format": "glb", "title": "Hero (page viewer)", "status": "current", "slot": "model_3d", "variant": "hero", "role": "derived",+               "use": ["wiki-hero"], "marking": None, "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": f"docs/{slug}-hero-preview.png", "source": KICAD_SRC, "sha256": sha(HERO), "git_blob": blob(HERO), "bytes": os.path.getsize(p_(HERO))})+for lv in lod["levels"]:+    models.append({"path": lv["path"], "format": "glb", "title": f"Board LOD, {lv['level']}", "status": "current", "variant": "lod", "role": "derived",+                   "use": ["board-insertion", "render"], "marking": None, "derived_from": STEP,+                   "unique": f"{lv['level']} detail for board and scaffold viewers: {lv['triangles']} triangles, {lv['primitives']} primitives",+                   "thumb": lv["preview"]["path"], "source": KICAD_SRC, "sha256": lv["sha256"], "git_blob": blob(lv["path"]), "bytes": lv["sizeBytes"]})+json.dump({"schema": "adom/models@1", "part": MPN, "models": models, "updated": TODAY}, open(p_("models.json"), "w"), indent=1)++# ---------------- LICENSE ----------------+open(p_("LICENSE"), "w").write(f"""{MPN} component page++Original Adom content on this page (README text, the KiCad symbol {SYM}, the+verification drawings, the hero artwork, the Fusion and Altium libraries generated\nfrom them, the JSON records and the scripts in provenance/tools/; hero_glb.py and\nhero_glyphs.json come from adom/component-hero)+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:+- {FP} and {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+  ({GL}/kicad-footprints, {GL}/kicad-packages3D).+- The PDFs in docs/ are {P['mfr']} documents, copyright of their publishers,+  included unchanged for reference; the PNG crops in docs/figures/ are excerpts of+  those PDFs, shown as citations.+""")++# ---------------- README ----------------+spec_tbl = "| Parameter | Value | Datasheet |\n|---|---|---|\n" + "".join(f"| {a} | {b} | {c} |\n" for a, b, c in P["spec_rows"])+res_rows = [("Product page", P["product_url"]), ("Datasheet", f"{ds['title']}, [PDF]({ds['file']}) ([source]({ds['url']}))")]+for x in P["extra_docs"]:+    res_rows.append(("Supporting document", f"{x['title']}, [PDF]({x['file']}) ([source]({x['url']}))"))+if L.get("url"):+    res_rows.append(("Land pattern guidance", f"[{L['source'].split(',')[0]}]({L['url']})"))+res_tbl = "| Resource | Link |\n|---|---|\n" + "".join(f"| {a} | {b} |\n" for a, b in res_rows)+dist_tbl = ("| Distributor | Part number | Stock seen " + TODAY + " |\n|---|---|---|\n"+            + "".join(f"| {n} | [{D[k][0]}]({D[k][1]}) | {D[k][2]:,} |\n" for k, n in (("mouser", "Mouser"), ("digikey", "DigiKey"), ("lcsc", "LCSC / JLCPCB"))))+notes = "".join(f"- {n}\n" for n in P["notes"])+fail_bits = ", ".join(f"{c['dim']} {c['model_mm']:.3f} mm (datasheet {c['datasheet_min']:.2f} to {c['datasheet_max']:.2f})" for c in check["checks"])+card_three = (f"The footprint is KiCad's standard `{P['fp']}`, and this guide lays its pads over the land pattern recommended by {LAND_BY}, at true scale. "+              f"{'It matches the maker closely.' if land_status in ('matches', 'inside') else 'The KiCad pads are a little larger than the maker asks for, and the guide shows by how much.'} "+              f"Use it to decide whether to keep the KiCad pads or shrink them to the maker's numbers before layout.")+readme = f"""# {MPN}++{P['mfr']} {MPN}: {P['brief']}.++::adom-verified{{src="/{OWNER}/{slug}/render/verification.json"}}++| Field | Value |+|---|---|+| Manufacturer | {P['mfr_full']} |+| Manufacturer part number | {MPN} |+| Type | {P['subcategory']} |+| Value | {P['value']} |+| Tolerance | {P['tol']} |+| {'Rated voltage' if P['kind'] == 'C' else 'Voltage'} | {P['voltage']} |+| {P['rating_row'][0]} | {P['rating_row'][1]} |+| Operating temperature | {P['op_temp']} |+| Package | {P['package']} |+| Datasheet | [{ds['title']}]({ds['file']}) |++## Key specifications++{spec_tbl}+All page numbers refer to the PDF in [docs/]({ds['file']}) unless stated otherwise.++## Datasheet pages cited++Crops of the reference sheet pages the tables above cite, rendered at 150 dpi from the PDF in docs/.++{chr(10).join(f"**{f['caption']}**{chr(10)}{chr(10)}![{f['caption']}]({f['file']}){chr(10)}" for f in FIGS)}++{('## Notes' + chr(10) + chr(10) + notes) if notes else ''}+## Ordering++{dist_tbl}+Stock figures are a snapshot from the Adom parts search on {TODAY}; check the distributor before ordering.++## Manufacturer and resources++{res_tbl}+## Pins++| Pin | Function |+|---|---|+| 1 | terminal (non-polar) |+| 2 | terminal (non-polar) |++A {kind_word} of this kind has no polarity and no pin 1 orientation: either terminal may face either way.++## Land pattern: KiCad footprint vs {P['mfr']}++<table>+<tr>+<td width="104"><a href="land-pattern/README.md"><img src="land-pattern/land-pattern-icon.png" width="112" alt="Land pattern"></a><br><sub>&nbsp;&nbsp;&nbsp;&nbsp;Land&nbsp;pattern&nbsp;&nbsp;&nbsp;&nbsp;</sub></td>+<td>{card_three}<br><br><a href="land-pattern/README.md">The comparison, with the numbers</a></td>+</tr>+</table>++## 3D model++Murata publishes no STEP for this exact part number that can be fetched over plain HTTP: its public product-data API+lists the reference sheet, S-parameters, a SPICE netlist and characteristics data for this part, but no 3D CAD file+(checked {TODAY}). The page therefore uses KiCad's library model for the package, `{P['fp']}.step`, with its bytes+unchanged, renamed `{STEP}`. It was checked against Murata's printed L, W, T and e limits before use (next section).+`package-reference.glb` is the same model converted with `step2glb convert`, with nothing added. {P['marking']}+(searched: {P['marking_src']}), so the model shows a plain body and carries no added part-number etch.++The page viewer shows `{HERO}`: 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/{slug}-hero-preview.png)++::adom-models{{src="/{OWNER}/{slug}/render/models.json"}}++## Model checked against the datasheet++The model was rendered in orthographic top, bottom, side and end views at true scale and laid over a drawing made at the+same scale from the printed table (nominal outline, tolerance limits, allowed terminal band). Every dimension is inside+the printed range: {fail_bits}. The model is Z-up, seated on z = 0, centred on the footprint origin, long axis on X.++![Model over the datasheet dimensions](docs/verify/{slug}-overlay.png)++Source: {ds['title']}, {P['dims_text']}.++## Board levels of detail++Clean board-use GLBs (no footprint pads, outlines, labels or silkscreen; no marking) in four levels, all in the same+Z-up, metre, footprint-origin pose as the STEP. Previews are rendered from each GLB.++::adom-component-lod{{src="/{OWNER}/{slug}/render/lod/manifest.json"}}++## CAD files++| File | What it is |+|---|---|+| `{SYM}` | KiCad symbol (standard {kind_word} graphic) with MPN, Manufacturer, Mouser, DigiKey and LCSC fields |+| `{FP}` | KiCad footprint (KiCad library `{P['fp']}`, renamed; model path `${{KIPRJMOD}}/{STEP}`) |+| `{MPN}.lbr` | Fusion / EAGLE library made from the KiCad symbol and footprint with `adom-lbr generate` (carries MPN, MANUFACTURER, MOUSER_PN, DIGIKEY_PN, LCSC_PN) |+| `{STEP}` | 3D package model, STEP |+| `package-reference.glb` | 3D package model, GLB, clean (no artwork) |+| `{HERO}` | page-viewer hero: the clean model plus footprint artwork (adom-hero 1.4); `{HERO_SC}` lists every pad and label |+{''.join(f"| `{f}` | Altium {'schematic library' if f.endswith('SchLib') else 'PCB library' if f.endswith('PcbLib') else 'adom-lbr hub JSON (symbol, footprint, pin-to-pad map)'}, made with `adom-lbr import-kicad` and `export-altium` |{chr(10)}" for f in ALT)}| `lod/` | board-use GLBs in four levels of detail, with previews and manifest |++## Sources and license++- {P['mfr']}: {ds['title']} ({ds['url']})+{''.join(f'- {x["title"]} ({x["url"]}){chr(10)}' for x in P['extra_docs'])}- KiCad libraries: [{P['fp_lib']}.pretty/{P['fp']}.kicad_mod]({GL}/kicad-footprints/-/blob/master/{P['fp_lib']}.pretty/{P['fp']}.kicad_mod), [{P['fp_lib']}.3dshapes/{P['fp']}.step]({GL}/kicad-packages3D/-/blob/master/{P['fp_lib']}.3dshapes/{P['fp']}.step)+- Murata product data: {P['product_url']} (public API pimapi.murata.com, queried {TODAY})+- Distributor numbers: Mouser, DigiKey and JLCPCB/LCSC through the Adom parts search, {TODAY}++Original Adom content is CC-BY-4.0. The KiCad footprint and 3D files keep their upstream license (CC-BY-SA 4.0 with the+KiCad library exception) and the PDFs remain the publishers' documents; see [LICENSE](LICENSE).+[provenance.json](provenance.json) records every source and file hash; the scripts that built the checks are in `provenance/tools/`.++This is a catalog record for the part, not a manufacturing approval: check the maker's current datasheet for your design.+"""+readme = re.sub(r"\n{3,}", "\n\n", readme)+open(p_("README.md"), "w").write(readme)++# ---------------- page.json / package.json ----------------+title = f"{MPN} - {P['mfr']}"+component = {+    "mpn": MPN, "manufacturer": P["mfr"], "package": P["package"], "category": P["category"], "subcategory": P["subcategory"],+    "pin_count": 2, "body_size": P["body_mm"],+    "value": P["value"], "tolerance": P["tol"], "rating": P["voltage"],+    "pins": [{"number": "1", "name": "~"}, {"number": "2", "name": "~"}],+    "parts": {"symbol": SYM, "footprint": FP, "lbr": f"{MPN}.lbr", "step": STEP, "model_3d": HERO, "model_3d_plain": "package-reference.glb",+              "datasheet": ds["file"], **({"altium_schlib": ALT[0], "altium_pcblib": ALT[1]} if len(ALT) >= 2 else {})},+    "manufacturer_links": {"product": P["product_url"], "datasheet_pdf": ds["url"], "datasheet_pim": P["pim_spec_url"]},+    "distributor_links": {k: {"part": D[k][0], "url": D[k][1]} for k in ("mouser", "digikey", "lcsc")},+    "marking": {"text": None, "statement": P["marking"], "source": P["marking_src"]},+    "provenance": {"model_3d": "KiCad library model (no Murata STEP reachable by plain HTTP), checked against Murata's printed L/W/T/e limits", "footprint": "KiCad standard library, renamed",+                   "hero": "adom-hero 1.4 (adom/component-hero hero_glb.py)",+                   "land_pattern_check": f"land-pattern/README.md ({land_status})", "omitted": []},+}+tags = ["hardware", "component", "passive", P["category"].lower(), P["package"].split()[0], P["mfr"].lower().replace(" ", "-")]+triggers = [MPN, MPN.lower(), f"{P['value']} {P['package'].split()[0]} {kind_word}"]+eda = {"kicad": {"symbol": SYM, "footprint": FP, "model": STEP, "provenance": "generated"},+       "fusion": {"lbr": f"{MPN}.lbr", "provenance": "generated"}}+if len(ALT) >= 2:+    eda["altium"] = {"schlib": ALT[0], "pcblib": ALT[1], "provenance": "generated"}+page = {"slug": slug, "title": title, "eda_assets": eda, "type": "hardware", "kind": "component", "version": "0.1.0",+        "description": P["brief"], "brief": P["brief"], "tags": tags, "discovery_triggers": triggers, "dependencies": {},+        "license": "CC-BY-4.0", "hero": {"path": "docs/hero.png", "chrome": False},+        "component": component, "visibility": {"public": True}}+json.dump(page, open(p_("page.json"), "w"), indent=1)+pkg = {"name": slug, "title": title, "version": "0.1.0", "description": P["brief"], "type": "hardware", "kind": "component",+       "license": "CC-BY-4.0", "files": []}+json.dump(pkg, open(p_("package.json"), "w"), indent=1)++# ---------------- provenance.json (hashes of everything except itself) ----------------+files = {}+for dp, dn, fn in os.walk(OUT):+    for f in fn:+        rel = os.path.relpath(os.path.join(dp, f), OUT)+        if rel != "provenance.json":+            files[rel] = sha(rel)+prov = {+    "manufacturer_reference": P["product_url"],+    "symbol_source": f"Original, written for this page (standard {kind_word} graphic, non-polar). CC-BY-4.0.",+    "footprint_source": KICAD_FP_SRC + f"; renamed {P['fp']} -> {FP[:-10]}, model path set to ${{KIPRJMOD}}/{STEP}; copper unchanged",+    "footprint_upstream_sha256": hashlib.sha256(open(os.path.join(ROOT, "dl/kicad", P["fp"] + ".kicad_mod"), "rb").read()).hexdigest(),+    "footprint_upstream_url": f"{GL}/kicad-footprints/-/raw/master/{P['fp_lib']}.pretty/{P['fp']}.kicad_mod",+    "package_source": KICAD_SRC,+    "package_upstream_url": f"{GL}/kicad-packages3D/-/raw/master/{P['fp_lib']}.3dshapes/{P['fp']}.step",+    "package_bytes_unchanged": True,+    "manufacturer_step": {"found": False, "searched": TODAY, "method": "plain HTTP only (curl), no browser", "note": MSTEP_NOTE},+    "datasheet_figures": FIGS,+    "hero_glb": {"file": HERO, "sidecar": HERO_SC, "tool": "hero_glb.py (adom/component-hero, adom-hero 1.4), copied into provenance/tools/",+                 "inputs": ["package-reference.glb", FP, "component.pins (1 and 2, unnamed)"], "result": B["hero_line"].split(": ", 1)[-1]},+    "altium": {"files": ALT, "tool": "adom-lbr import-kicad --sym --fp --mpn, then adom-lbr export-altium"},+    "geometry_status": "KiCad library package geometry, every printed dimension checked against the datasheet (docs/verify). Not manufacturer-issued CAD.",+    "frame": {"units": "mm (STEP), metres (GLB)", "up_axis": "Z", "seat_z": 0, "origin": "footprint origin", "transform": "none"},+    "glb": {"tool": "step2glb convert", "exit": 0, "stderr_tail": B["glb_stderr"]},+    "hero": {"tool": "step2glb thumbnail --width 800 --height 600 (iso)", "path": "docs/hero.png"},+    "fusion_lbr": {"file": f"{MPN}.lbr", "tool": "adom-lbr generate --sym --fp --part-metadata page.json", "lint": "passed, 0 errors, 0 warnings"},+    "datasheet": {"file": ds["file"], "sha256": sha(ds["file"]), "url": ds["url"], "title": ds["title"], "retrieved": TODAY},+    "supporting_documents": [{"file": x["file"], "sha256": sha(x["file"]), "url": x["url"], "title": x["title"], "retrieved": TODAY} for x in P["extra_docs"]],+    "datasheet_check": {"overlay": f"docs/verify/{slug}-overlay.png", "numbers": f"docs/verify/{slug}-check.json",+                        "tools": "provenance/tools/ (ortho.py, overlay_chip.py, spec json)", "result": "PASS" if check["all_pass"] else "FAIL"},+    "land_pattern_check": {"readme": "land-pattern/README.md", "numbers": "land-pattern/land-check.json", "source": L["source"], "result": land_status},+    "marking": {"real_marking": None, "statement": P["marking"], "source": P["marking_src"]},+    "distributors": {"tool": "adom-parts-search search " + MPN, "date": TODAY,+                     **{k: {"part": D[k][0], "url": D[k][1], "stock": D[k][2]} for k in ("mouser", "digikey", "lcsc")}},+    "lod": {"manifest": "lod/manifest.json", "generator": "provenance/tools/lod.py", "source_sha256": sha(STEP)},+    "tools_note": "lod.py, ortho.py and overlay_chip.py come from the GRM155R71C104KA88D component page; build.py, parts.py, landcheck.py, records.py and push.sh are the scripts used for the GRM1555C1H100JA01D and GRM155R71H103KA88D pages, extended here with datasheet figure crops, the adom-hero 1.4 hero and the Altium lane.",+    "files": files,+    "files_note": "provenance.json itself is not listed.",+    "built_by": "Claude (AI agent) for John Lauer", "date": TODAY,+}+json.dump(prov, open(p_("provenance.json"), "w"), indent=1)+print("records written", slug, land_status)
verification.jsonadded+317
@@ -0,0 +1,317 @@+{+ "schema": "adom/verification@1",+ "part": "GRM155R71H102KA01D",+ "variants": [],+ "entries": [+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI agent) for John Lauer",+    "handle": "john"+   },+   "status": "verified",+   "title": "3D model matches the datasheet package dimensions",+   "scope": [+    "3d-model"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "L: model 1.000 mm, datasheet 0.95 to 1.05 mm",+     "result": "pass"+    },+    {+     "text": "W: model 0.500 mm, datasheet 0.45 to 0.55 mm",+     "result": "pass"+    },+    {+     "text": "T/H: model 0.500 mm, datasheet 0.45 to 0.55 mm",+     "result": "pass"+    },+    {+     "text": "e (terminal band), top: model 0.200 mm, datasheet 0.15 to 0.35 mm",+     "result": "pass"+    },+    {+     "text": "e (terminal band), bottom: model 0.200 mm, datasheet 0.15 to 0.35 mm",+     "result": "pass"+    },+    {+     "text": "Z-up, seated on z = 0, centred on the footprint origin, long axis on X",+     "result": "pass"+    },+    {+     "text": "no Murata STEP was reachable by plain HTTP for this exact part number (public product API lists no 3D asset); the model is KiCad's library package, checked against Murata's printed L, W, T and e limits",+     "result": "note"+    }+   ],+   "evidence": [+    {+     "label": "overlay (top, bottom, side, end at true scale)",+     "href": "docs/verify/grm155r71h102ka01d-overlay.png"+    },+    {+     "label": "numbers",+     "href": "docs/verify/grm155r71h102ka01d-check.json"+    },+    {+     "label": "datasheet (Murata reference sheet GRM155R71H102KA01-01A, specifications as of Jun. 18, 2026)",+     "href": "docs/grm155r71h102ka01d-datasheet.pdf"+    }+   ],+   "files": {+    "GRM155R71H102KA01D.step": "03e44c4b2b727b8d4b6b1fd598cbd12dd5e614f1dfeefa96a92a07e3a3b312a2",+    "package-reference.glb": "100935c5c0d6f20a6c9bdfb6386f874dc8a4457bf0e4f3ace69f1ab090100773",+    "docs/grm155r71h102ka01d-datasheet.pdf": "717054f9652ddc576d3361474ebd3983c47361dd82245c1a4ffa9b8c65ff707f"+   }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI agent) for John Lauer",+    "handle": "john"+   },+   "status": "open",+   "title": "Footprint compared with the maker's recommended land pattern (KiCad pads larger than the maker's range)",+   "scope": [+    "footprint"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "gap between lands: KiCad 0.40 mm, maker 0.30 to 0.50 mm",+     "result": "pass"+    },+    {+     "text": "land length: KiCad 0.56 mm, maker 0.35 to 0.45 mm",+     "result": "note"+    },+    {+     "text": "land width: KiCad 0.62 mm, maker 0.40 to 0.60 mm",+     "result": "note"+    },+    {+     "text": "overall length (a + 2b, derived): KiCad 1.52 mm, maker 1.00 to 1.40 mm",+     "result": "note"+    }+   ],+   "evidence": [+    {+     "label": "comparison drawing",+     "href": "land-pattern/land-pattern.png"+    },+    {+     "label": "numbers",+     "href": "land-pattern/land-check.json"+    },+    {+     "label": "write-up",+     "href": "land-pattern/README.md"+    }+   ],+   "files": {+    "C_0402_1005Metric_GRM155R71H102KA01D.kicad_mod": "e0af9fb1c164293e31469264f18841c4e25e0b8e5e82df9cc73b38eb19fb792a"+   }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI agent) for John Lauer",+    "handle": "john"+   },+   "status": "verified",+   "title": "Marking: the model shows the real part, which is unmarked",+   "scope": [+    "3d-model",+    "marking"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "The Murata reference sheet specifies no part marking: none of its 33 pages has a marking section, and the p.2 dimension sketch shows a plain body (GRM155R71H102KA01-01A, all 33 pages searched; p.2)",+     "result": "pass"+    },+    {+     "text": "no AI-added part-number etch on any model",+     "result": "pass"+    }+   ],+   "evidence": [+    {+     "label": "datasheet",+     "href": "docs/grm155r71h102ka01d-datasheet.pdf"+    }+   ],+   "files": {+    "GRM155R71H102KA01D.step": "03e44c4b2b727b8d4b6b1fd598cbd12dd5e614f1dfeefa96a92a07e3a3b312a2"+   }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI agent) for John Lauer",+    "handle": "john"+   },+   "status": "verified",+   "title": "Board-use LOD GLBs are clean and share the STEP pose",+   "scope": [+    "lod"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "four levels written, read back, bounds equal the STEP (Z-up, metres, seat z = 0)",+     "result": "pass"+    },+    {+     "text": "no footprint, pad outline, label or silkscreen helpers; terminals present at every level",+     "result": "pass"+    },+    {+     "text": "previews looked at by the AI agent, not yet by a person",+     "result": "note"+    }+   ],+   "evidence": [+    {+     "label": "manifest",+     "href": "lod/manifest.json"+    }+   ],+   "files": {+    "lod/high.glb": "47dd9e7a505f360ee2e80ae77fac654f46a6120b644e505df94a966933b2b9fa",+    "lod/medium.glb": "e27b8933f38ee85cb8cf8e14c5d0699b68c0883e9f16b79325f3f8fb5bbd8ef2",+    "lod/low.glb": "6078f9078738eae1cbdfb186addeb2f8fc8221ba2059239a7e77d6d277ad6373",+    "lod/super-low.glb": "48573b1f7abb7aa8794ea230d7285122011b6f6a2563a30f02ad6f891b413f6d"+   }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI agent) for John Lauer",+    "handle": "john"+   },+   "status": "verified",+   "title": "Pin 1 and polarity",+   "scope": [+    "footprint",+    "3d-model",+    "symbol"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "non-polar two-terminal capacitor: pads 1 and 2 are interchangeable; symbol pins 1 and 2 map to pads 1 and 2",+     "result": "pass"+    },+    {+     "text": "model terminals sit on the footprint pads (both centred on the origin, long axis on X)",+     "result": "pass"+    }+   ],+   "evidence": [],+   "files": {+    "C_0402_1005Metric_GRM155R71H102KA01D.kicad_mod": "e0af9fb1c164293e31469264f18841c4e25e0b8e5e82df9cc73b38eb19fb792a",+    "GRM155R71H102KA01D.kicad_sym": "d9edb0ee214e5ab2dec23caf04a98a4ca866a3a6e4e32c10913dc4537790441a",+    "GRM155R71H102KA01D.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/grm155r71h102ka01d-hero-preview.png"+    },+    {+     "label": "sidecar",+     "href": "grm155r71h102ka01d-hero.overlay.json"+    }+   ],+   "files": {+    "grm155r71h102ka01d-hero.glb": "e912b9eb986927575d41e179b4a914c15256e02691bc01c9769f828d45b4146a",+    "package-reference.glb": "100935c5c0d6f20a6c9bdfb6386f874dc8a4457bf0e4f3ace69f1ab090100773",+    "C_0402_1005Metric_GRM155R71H102KA01D.kicad_mod": "e0af9fb1c164293e31469264f18841c4e25e0b8e5e82df9cc73b38eb19fb792a"+   }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI agent) for John Lauer",+    "handle": "john"+   },+   "status": "verified",+   "title": "Fusion and Altium libraries generated from the KiCad symbol and footprint",+   "scope": [+    "symbol",+    "footprint",+    "eda"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "adom-lbr generate: .lbr lint passed (0 errors)",+     "result": "pass"+    },+    {+     "text": "adom-lbr import-kicad + export-altium: native .SchLib and .PcbLib written; MPN, Manufacturer and supplier numbers carried as parameters",+     "result": "pass"+    },+    {+     "text": "not yet opened in Fusion 360 or Altium by a person",+     "result": "note"+    }+   ],+   "evidence": [],+   "files": {+    "GRM155R71H102KA01D.lbr": "89150bc186e9a0e456e041412392ee3dcba61024d04dbf308f61909b5e15b7db",+    "altium/GRM155R71H102KA01D.SchLib": "09cc99eb5e9aca2555141321dd95378ec663ff5b856fe0cd652850a5e35b030e",+    "altium/GRM155R71H102KA01D.PcbLib": "e0c55496db6fc1123cffa78781db68c8f89e85ad710786efd4fa8e51f851ecf9",+    "altium/GRM155R71H102KA01D.adom-lbr.json": "7d41d5e70e9b939861c0690ffdb3b0db633a3bb11ce9a98c500695cae4d911d2"+   }+  }+ ]+}\ No newline at end of file