bliss-svg-builder
Version:
Generates SVG code for Bliss (Blissymbolics) text using a Domain-Specific Language.
5,729 lines • 195 kB
JavaScript
var __accessCheck = (obj, member, msg) => {
if (!member.has(obj))
throw TypeError("Cannot " + msg);
};
var __privateGet = (obj, member, getter) => {
__accessCheck(obj, member, "read from private field");
return getter ? getter.call(obj) : member.get(obj);
};
var __privateAdd = (obj, member, value) => {
if (member.has(obj))
throw TypeError("Cannot add the same private member more than once");
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
};
var __privateSet = (obj, member, value, setter) => {
__accessCheck(obj, member, "write to private field");
setter ? setter.call(obj, value) : member.set(obj, value);
return value;
};
var __privateMethod = (obj, member, method) => {
__accessCheck(obj, member, "access private method");
return method;
};
(function(global, factory) {
typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.BlissSVGBuilder = {}));
})(this, function(exports2) {
var _setupEscapeMaps, setupEscapeMaps_fn, _parseOptions, parseOptions_fn, _fromStream, fromStream_fn, _toString, toString_fn, _toObject, toObject_fn, _toStream, toStream_fn, _level, _extraPathOptions, _isCharacter, _isAtomic, _isIndicator, _isExternalGlyph, _width, _height, _children, _relativeToRootX, _relativeToParentX, _relativeToParentY, _codeName, _charSpacing, _wordSpacing, _sentenceSpacing, _punctuationSpacing, _initExplicitElement, initExplicitElement_fn, _initImplicitElement, initImplicitElement_fn, _svgCode, svgCode_get;
"use strict";
const alphabetData = {
// e[X]ternal glyphs (i.e. letters and other non-bliss characters), currently supporting a-z, A-Z, åäö, ÅÄÖ.
"Xa": {
getPath: () => {
return `M1.1633399724960327,16.04509925842285q-0.45802998542785645,0,-0.6884499788284302,-0.24165916442871094t-0.23041999340057373,-0.6631603240966797q0,-0.4720802307128906,0.3105049729347229,-0.7249794006347656t1.0017650723457336,-0.2697601318359375l0.6828298568725586,-0.011240005493164062l0,-0.16579055786132812q0,-0.37091922760009766,-0.15735983848571777,-0.5310897827148438t-0.4945601224899292,-0.1601696014404297q-0.3400099277496338,0,-0.4945598840713501,0.11520957946777344t-0.18546003103256226,0.36810970306396484l-0.5282800197601318,-0.04776954650878906q0.12926000356674194,-0.8205204010009766,1.2195399403572083,-0.8205204010009766q0.5732401609420776,0,0.8626700639724731,0.26273536682128906t0.2894299030303955,0.7601051330566406l0,1.3094596862792969q0,0.22480010986328125,0.05901002883911133,0.3386049270629883t0.22480010986328125,0.11380481719970703q0.0730600357055664,0,0.16578984260559082,-0.019669532775878906l0,0.31472015380859375q-0.19107985496520996,0.04496002197265625,-0.39058995246887207,0.04496002197265625q-0.28099989891052246,0,-0.40885496139526367,-0.14752483367919922t-0.1447150707244873,-0.46224498748779297l-0.016860008239746094,0q-0.19388985633850098,0.34843921661376953,-0.45100486278533936,0.49315452575683594t-0.6252250671386719,0.14471435546875ZM1.2785500288009644,15.665749549865723q0.278190016746521,0,0.49456000328063965,-0.1264495849609375t0.34141504764556885,-0.34703540802001953t0.1250448226928711,-0.4538145065307617l0,-0.2500896453857422l-0.5535699129104614,0.011240005493164062q-0.3568699359893799,0.005620002746582031,-0.5409250259399414,0.0730600357055664t-0.28240495920181274,0.20793914794921875t-0.09834998846054077,0.36811065673828125q0,0.24728012084960938,0.13347500562667847,0.3821601867675781t0.3807550072669983,0.13487911224365234Z`;
},
width: 1139 / 356 - 0.2,
//deduct 0.2 to narrow down right boundery, to make external glyphs exceed boundaries more similar to normal bliss characters
glyph: "a"
},
"Xb": {
getPath: () => {
return `M2.958930015563965,14.45464038848877q0,1.590458869934082,-1.118380069732666,1.590458869934082q-0.3456299304962158,0,-0.574644923210144,-0.1250438690185547t-0.37232500314712524,-0.40323543548583984l-0.005620002746582031,0q0,0.08711051940917969,-0.011240005493164062,0.2655448913574219t-0.016860008239746094,0.20653533935546875l-0.4889400005340576,0q0.016860008239746094,-0.15174007415771484,0.016860008239746094,-0.6266298294067383l0,-3.543410301208496l0.5058000087738037,0l0,1.1886301040649414q0,0.1826496124267578,-0.011240005493164062,0.4299297332763672l0.011240005493164062,0q0.140500009059906,-0.2922401428222656,0.37232500314712524,-0.4186897277832031t0.574644923210144,-0.1264505386352539q0.5760500431060791,0,0.847214937210083,0.38778018951416016t0.271165132522583,1.1745805740356445ZM2.427839994430542,14.471500396728516q0,-0.6378707885742188,-0.16860008239746094,-0.9132499694824219t-0.5479499101638794,-0.27538013458251953q-0.4271199703216553,0,-0.6224149465560913,0.2922401428222656t-0.1952950358390808,0.9272994995117188q0,0.5985298156738281,0.1910800337791443,0.8837451934814453t0.6210099458694458,0.2852144241333008q0.3821600675582886,0,0.5521649122238159,-0.28240489959716797t0.17000508308410645,-0.9174642562866211Z`;
},
width: 1139 / 356 - 0.2,
glyph: "b"
},
"Xc": {
getPath: () => {
return `M0.7727500200271606,14.45464038848877q0,0.606959342956543,0.1910799741744995,0.8991994857788086t0.5760500431060791,0.2922401428222656q0.26976001262664795,0,0.4510049819946289,-0.1461200714111328t0.22339487075805664,-0.4496002197265625l0.5114200115203857,0.03372001647949219q-0.05900979042053223,0.43836021423339844,-0.373729944229126,0.6996898651123047t-0.7980399131774902,0.26132965087890625q-0.6378700733184814,0,-0.9736650586128235,-0.40323448181152344t-0.33579498529434204,-1.1759843826293945q0,-0.7671308517456055,0.33719998598098755,-1.170365333557129t0.966640055179596,-0.40323543548583984q0.4664599895477295,0,0.7741549015045166,0.24166011810302734t0.38637495040893555,0.6659698486328125l-0.5198497772216797,0.03934001922607422q-0.03934001922607422,-0.252899169921875,-0.1995100975036621,-0.40182971954345703t-0.45521998405456543,-0.14892959594726562q-0.4018300771713257,0,-0.5816700458526611,0.2669496536254883t-0.17983996868133545,0.899200439453125Z`;
},
width: 1024 / 356 - 0.2,
glyph: "c"
},
"Xd": {
getPath: () => {
return `M2.3070099353790283,15.499959945678711q-0.14049983024597168,0.2922401428222656,-0.37232494354248047,0.4186897277832031t-0.5746450424194336,0.1264495849609375q-0.5760499238967896,0,-0.847214937210083,-0.38777923583984375t-0.27116501331329346,-1.1745796203613281q0,-1.5904607772827148,1.1183799505233765,-1.5904607772827148q0.34563004970550537,0,0.5760500431060791,0.1264505386352539t0.37091994285583496,0.40182971954345703l0.005620002746582031,0l-0.005620002746582031,-0.3400096893310547l0,-1.2616901397705078l0.5058000087738037,0l0,3.543410301208496q0,0.47488975524902344,0.016860008239746094,0.6266298294067383l-0.4833199977874756,0q-0.008430004119873047,-0.04496002197265625,-0.0182650089263916,-0.20794010162353516t-0.009835004806518555,-0.28100013732910156l-0.011240005493164062,0ZM0.7727500200271606,14.465880393981934q0,0.6378698348999023,0.1685999631881714,0.9132499694824219t0.547950029373169,0.2753791809082031q0.4299299716949463,0,0.6238200664520264,-0.29785919189453125t0.19388985633850098,-0.9244899749755859q0,-0.6041507720947266,-0.19388985633850098,-0.8851499557495117t-0.6182000637054443,-0.28100013732910156q-0.3821600675582886,0,-0.5521650314331055,0.28240489959716797t-0.1700049638748169,0.9174652099609375Z`;
},
width: 1139 / 356 - 0.2,
glyph: "d"
},
"Xe": {
getPath: () => {
return `M0.7755600214004517,14.575469970703125q0,0.5226602554321289,0.21636998653411865,0.8064699172973633t0.6322499513626099,0.2838096618652344q0.3287700414657593,0,0.5268751382827759,-0.13206958770751953t0.2683548927307129,-0.33438968658447266l0.44397997856140137,0.1264495849609375q-0.2725698947906494,0.7193593978881836,-1.2392100095748901,0.7193593978881836q-0.6743999719619751,0,-1.0270549654960632,-0.40182971954345703t-0.35265499353408813,-1.194249153137207q0,-0.7530803680419922,0.35265499353408813,-1.1549100875854492t1.0073849558830261,-0.40183067321777344q1.3403700590133667,0,1.3403700590133667,1.6157503128051758l0,0.06744003295898438l-2.169319987297058,0ZM2.42221999168396,14.187689781188965q-0.042150020599365234,-0.48050975799560547,-0.24446988105773926,-0.7010946273803711t-0.5816701650619507,-0.22058486938476562q-0.36810994148254395,0,-0.5830749273300171,0.24587440490722656t-0.23182499408721924,0.6758050918579102l1.6410399675369263,0Z`;
},
width: 1139 / 356 - 0.2,
glyph: "e"
},
"Xf": {
getPath: () => {
return `M1.0144100189208984,13.316590309143066l0,2.6723098754882812l-0.5058000087738037,0l0,-2.6723098754882812l-0.42712000757455826,0l0,-0.36811065673828125l0.42712000757455826,0l0,-0.3428192138671875q0,-0.4158802032470703,0.18264997005462646,-0.5985307693481445t0.559190034866333,-0.1826496124267578q0.21074998378753662,0,0.3568699359893799,0.03372001647949219l0,0.38496971130371094q-0.12644994258880615,-0.022480010986328125,-0.2247999906539917,-0.022480010986328125q-0.19388997554779053,0,-0.281000018119812,0.09835052490234375t-0.08710992336273193,0.3568696975708008l0,0.2725696563720703l0.5929099321365356,0l0,0.36811065673828125l-0.5929099321365356,0Z`;
},
width: 569 / 356 - 0.2,
glyph: "f",
kerningRules: {
"f": 37 / 356
}
},
"Xg": {
getPath: () => {
return `M1.5398800373077393,17.183149337768555q-0.49737000465393066,0,-0.7924200296401978,-0.19529342651367188t-0.3793500065803528,-0.5549755096435547l0.5086100101470947,-0.07306098937988281q0.050579965114593506,0.21075057983398438,0.22339493036270142,0.3245563507080078t0.4538151025772095,0.11380386352539062q0.755889892578125,0,0.755889892578125,-0.8851499557495117l0,-0.4889392852783203l-0.005620002746582031,0q-0.1433098316192627,0.2922391891479492,-0.3933999538421631,0.43976497650146484t-0.5844799280166626,0.1475238800048828q-0.559190034866333,0,-0.8219250440597534,-0.37091922760009766t-0.2627350091934204,-1.1661500930786133q0,-0.8064699172973633,0.2824050188064575,-1.1900348663330078t0.8584549427032471,-0.38356494903564453q0.32315003871917725,0,0.5605950355529785,0.14752483367919922t0.36670494079589844,0.42009544372558594l0.005620002746582031,0q0,-0.08430004119873047,0.011240005493164062,-0.2922401428222656t0.022480010986328125,-0.22761058807373047l0.48050999641418457,0q-0.016860008239746094,0.15174007415771484,-0.016860008239746094,0.6294403076171875l0,2.3238697052001953q0,1.2813596725463867,-1.2729299068450928,1.2813596725463867ZM2.3098199367523193,14.468689918518066q0,-0.37092018127441406,-0.10116004943847656,-0.6392745971679688t-0.285214900970459,-0.4102602005004883t-0.4172849655151367,-0.1419048309326172q-0.3877800703048706,0,-0.564810037612915,0.28100013732910156t-0.17702996730804443,0.9104394912719727q0,0.6238203048706055,0.16578996181488037,0.8963899612426758t0.567620038986206,0.2725696563720703q0.23884999752044678,0,0.42430996894836426,-0.14049911499023438t0.2866199016571045,-0.40323543548583984t0.10116004943847656,-0.6252250671386719Z`;
},
width: 1139 / 356 - 0.2,
glyph: "g"
},
"Xh": {
getPath: () => {
return `M0.8907700181007385,13.468330383300781q0.16298002004623413,-0.29786014556884766,0.39199501276016235,-0.43695545196533203t0.5802649259567261,-0.13909530639648438q0.49456000328063965,0,0.7291951179504395,0.24587535858154297t0.2346348762512207,0.8247346878051758l0,2.026010513305664l-0.5086100101470947,0l0,-1.9276599884033203q0,-0.3203401565551758,-0.05901002883911133,-0.47629547119140625t-0.19388985633850098,-0.22901439666748047t-0.3737300634384155,-0.0730600357055664q-0.3568699359893799,0,-0.5718350410461426,0.24728012084960938t-0.21496492624282837,0.6659698486328125l0,1.7927799224853516l-0.5058000385761261,0l0,-4.170040130615234l0.5058000385761261,0l0,1.0846595764160156q0,0.17141056060791016,-0.009835004806518555,0.35406017303466797t-0.01264500617980957,0.21075057983398438l0.008430004119873047,0Z`;
},
width: 1139 / 356 - 0.2,
glyph: "h"
},
"Xi": {
getPath: () => {
return `M0.3849700093269348,12.302180290222168l0,-0.4833202362060547l0.5058000087738037,0l0,0.4833202362060547l-0.5058000087738037,0ZM0.3849700093269348,15.988900184631348l0,-3.0404205322265625l0.5058000087738037,0l0,3.0404205322265625l-0.5058000087738037,0Z`;
},
width: 455 / 356 - 0.2,
glyph: "i"
},
"Xj": {
getPath: () => {
return `M0.3849700093269348,12.302180290222168l0,-0.4833202362060547l0.5058000087738037,0l0,0.4833202362060547l-0.5058000087738037,0ZM0.8907700181007385,16.365440368652344q0,0.4299297332763672,-0.16860002279281616,0.6238193511962891t-0.5057999938726425,0.19388961791992188q-0.21637000143527985,0,-0.35686999559402466,-0.025289535522460938l0,-0.3905906677246094l0.1742199957370758,0.0168609619140625q0.19389000535011292,0,0.27256999909877777,-0.10116004943847656t0.07868000864982605,-0.3934001922607422l0,-3.341090202331543l0.5058000087738037,0l0,3.4169607162475586Z`;
},
width: 455 / 356 - 0.2,
glyph: "j"
},
"Xk": {
getPath: () => {
return `M2.2929599285125732,15.988900184631348l-1.028459906578064,-1.3881397247314453l-0.37092000246047974,0.3062896728515625l0,1.0818500518798828l-0.5058000087738037,0l0,-4.170040130615234l0.5058000087738037,0l0,2.604869842529297l1.3347498774528503,-1.475250244140625l0.5929100513458252,0l-1.233590006828308,1.306650161743164l1.2982200384140015,1.7337703704833984l-0.5929100513458252,0Z`;
},
width: 1024 / 356 - 0.2,
glyph: "k"
},
"Xl": {
getPath: () => {
return `M0.38778001070022583,15.988900184631348l0,-4.170040130615234l0.5058000087738037,0l0,4.170040130615234l-0.5058000087738037,0Z`;
},
width: 455 / 356 - 0.2,
glyph: "l"
},
"Xm": {
getPath: () => {
return `M2.1580801010131836,15.988900184631348l0,-1.9276599884033203q0,-0.44116973876953125,-0.12083005905151367,-0.6097698211669922t-0.43555009365081787,-0.16860008239746094q-0.3231499195098877,0,-0.5114198923110962,0.24728012084960938t-0.18827003240585327,0.6968793869018555l0,1.7618703842163086l-0.5029900372028351,0l0,-2.3913097381591797q0,-0.5310907363891602,-0.016859978437423706,-0.6491107940673828l0.47769999504089355,0q0.0028100013732910156,0.014050483703613281,0.005620002746582031,0.07587051391601562t0.007025003433227539,0.1419048309326172t0.009835004806518555,0.3020753860473633l0.008430004119873047,0q0.16298002004623413,-0.323150634765625,0.37373000383377075,-0.4496002197265625t0.5142300128936768,-0.1264505386352539q0.34563004970550537,0,0.5465449094772339,0.13769054412841797t0.27959513664245605,0.43836021423339844l0.008430004119873047,0q0.15735983848571777,-0.3062906265258789,0.3807549476623535,-0.44117069244384766t0.5409250259399414,-0.13488006591796875q0.46083998680114746,0,0.670184850692749,0.2500905990600586t0.20934486389160156,0.8205194473266602l0,2.026010513305664l-0.5001797676086426,0l0,-1.9276599884033203q0,-0.44116973876953125,-0.12083005905151367,-0.6097698211669922t-0.4355499744415283,-0.16860008239746094q-0.33157992362976074,0,-0.5156350135803223,0.24587440490722656t-0.18405485153198242,0.6982851028442383l0,1.7618703842163086l-0.5001800060272217,0Z`;
},
width: 1706 / 356 - 0.2,
glyph: "m"
},
"Xn": {
getPath: () => {
return `M2.3182499408721924,15.988900184631348l0,-1.9276599884033203q0,-0.3006706237792969,-0.05901002883911133,-0.4664602279663086t-0.18826985359191895,-0.23884963989257812t-0.37935006618499756,-0.0730600357055664q-0.36529994010925293,0,-0.5760500431060791,0.2500896453857422t-0.21074992418289185,0.6940698623657227l0,1.7618703842163086l-0.5058000385761261,0l0,-2.3913097381591797q0,-0.5310907363891602,-0.016859978437423706,-0.6491107940673828l0.47769999504089355,0q0.0028100013732910156,0.014050483703613281,0.005620002746582031,0.07587051391601562t0.007025003433227539,0.1419048309326172t0.009835004806518555,0.3020753860473633l0.008430004119873047,0q0.1742200255393982,-0.31472015380859375,0.4032350182533264,-0.4453849792480469t0.569024920463562,-0.13066577911376953q0.5001800060272217,0,0.7320051193237305,0.2486858367919922t0.2318248748779297,0.8219242095947266l0,2.026010513305664l-0.5086100101470947,0Z`;
},
width: 1139 / 356 - 0.2,
glyph: "n"
},
"Xo": {
getPath: () => {
return `M2.958930015563965,14.465880393981934q0,0.798039436340332,-0.35124993324279785,1.188629150390625t-1.02003014087677,0.39058971405029297q-0.665969967842102,0,-1.0059799551963806,-0.40604400634765625t-0.34000998735427856,-1.1731748580932617q0,-1.5736007690429688,1.3628499507904053,-1.5736007690429688q0.6968799829483032,0,1.025650143623352,0.38356494903564453t0.3287699222564697,1.1900358200073242ZM2.427839994430542,14.465880393981934q0,-0.6294403076171875,-0.18686509132385254,-0.9146556854248047t-0.6280349493026733,-0.2852144241333008q-0.44397997856140137,0,-0.6420849561691284,0.2908344268798828t-0.19810497760772705,0.9090356826782227q0,0.6013393402099609,0.19529497623443604,0.9034147262573242t0.6139850616455078,0.3020744323730469q0.45521998405456543,0,0.6505148410797119,-0.2922391891479492t0.19529509544372559,-0.9132499694824219Z`;
},
width: 1139 / 356 - 0.2,
glyph: "o"
},
"Xp": {
getPath: () => {
return `M2.958930015563965,14.45464038848877q0,1.590458869934082,-1.118380069732666,1.590458869934082q-0.7024999856948853,0,-0.9441599249839783,-0.5282793045043945l-0.014050006866455078,0q0.011240005493164062,0.022480010986328125,0.011240005493164062,0.47770023345947266l0,1.188629150390625l-0.5058000087738037,0l0,-3.613658905029297q0,-0.4692707061767578,-0.016860008239746094,-0.6210107803344727l0.4889400005340576,0q0.0028100013732910156,0.011240005493164062,0.008430004119873047,0.08008575439453125t0.01264500617980957,0.21215438842773438t0.007025003433227539,0.1967000961303711l0.011240005493164062,0q0.13488000631332397,-0.28100013732910156,0.35686999559402466,-0.4116649627685547t0.5844799280166626,-0.13066482543945312q0.562000036239624,0,0.8401901721954346,0.3765401840209961t0.27818989753723145,1.1830101013183594ZM2.427839994430542,14.465880393981934q0,-0.6350603103637695,-0.17141008377075195,-0.9076299667358398t-0.5451399087905884,-0.2725706100463867q-0.3006700277328491,0,-0.470674991607666,0.1264505386352539t-0.2585200071334839,0.3948049545288086t-0.08851498365402222,0.6982851028442383q0,0.5985298156738281,0.1910800337791443,0.8823394775390625t0.6210099458694458,0.2838096618652344q0.37654006481170654,0,0.5493549108505249,-0.27678489685058594t0.17281508445739746,-0.9287042617797852Z`;
},
width: 1139 / 356 - 0.2,
glyph: "p"
},
"Xq": {
getPath: () => {
return `M1.3600399494171143,16.04509925842285q-0.5788599252700806,0,-0.8486199378967285,-0.39058971405029297t-0.26976001262664795,-1.171769142150879q0,-1.5904607772827148,1.1183799505233765,-1.5904607772827148q0.34563004970550537,0,0.5704300403594971,0.12223529815673828t0.376539945602417,0.40604496002197266l0.005620002746582031,0q0,-0.08430004119873047,0.011240005493164062,-0.2908344268798828t0.022480010986328125,-0.22058582305908203l0.4861299991607666,0q-0.01967000961303711,0.16579055786132812,-0.01967000961303711,0.8289499282836914l0,3.4450597763061523l-0.5058000087738037,0l0,-1.2335891723632812l0.011240005493164062,-0.46084022521972656l-0.005620002746582031,0q-0.15173983573913574,0.30066967010498047,-0.373729944229126,0.4285249710083008t-0.5788600444793701,0.1278543472290039ZM2.3070099353790283,14.432160377502441q0,-0.5929107666015625,-0.19388985633850098,-0.8795299530029297t-0.6182000637054443,-0.2866201400756836q-0.3849700689315796,0,-0.553570032119751,0.2866201400756836t-0.1685999631881714,0.9132499694824219q0,0.6378698348999023,0.1700049638748169,0.9132499694824219t0.5465450286865234,0.2753791809082031q0.4299299716949463,0,0.6238200664520264,-0.3062896728515625t0.19388985633850098,-0.9160594940185547Z`;
},
width: 1139 / 356 - 0.2,
glyph: "q"
},
"Xr": {
getPath: () => {
return `M0.3990199863910675,15.988900184631348l0,-2.3323001861572266q0,-0.3203401565551758,-0.016859978437423706,-0.7081203460693359l0.47769999504089355,0q0.022480010986328125,0.5170402526855469,0.022480010986328125,0.6210107803344727l0.011240005493164062,0q0.1208299994468689,-0.3905906677246094,0.2781899571418762,-0.533900260925293t0.44397997856140137,-0.143310546875q0.10116004943847656,0,0.20513010025024414,0.028100013732910156l0,0.4636507034301758q-0.10116004943847656,-0.028100013732910156,-0.26976001262664795,-0.028100013732910156q-0.3147200345993042,0,-0.48050999641418457,0.2711648941040039t-0.16579002141952515,0.7769651412963867l0,1.5848398208618164l-0.5058000385761261,0Z`;
},
width: 682 / 356 - 0.2,
glyph: "r"
},
"Xs": {
getPath: () => {
return `M2.6695001125335693,15.148710250854492q0,0.4299297332763672,-0.3245551586151123,0.6631593704223633t-0.9090349674224854,0.2332296371459961q-0.5676199793815613,0,-0.8753150105476379,-0.18686389923095703t-0.4004249721765518,-0.5830755233764648l0.4467899948358536,-0.08710956573486328q0.06462997198104858,0.24446964263916016,0.26695001125335693,0.3582744598388672t0.5619999766349792,0.11380481719970703q0.3849700689315796,0,0.5634050369262695,-0.11801910400390625t0.1784350872039795,-0.35406017303466797q0,-0.179840087890625,-0.12364006042480469,-0.2922401428222656t-0.39902007579803467,-0.18546009063720703l-0.3624899387359619,-0.09554004669189453q-0.4355500340461731,-0.11240005493164062,-0.6196050643920898,-0.22058486938476562t-0.2880249619483948,-0.26273536682128906t-0.10397002100944519,-0.3793497085571289q0,-0.4158802032470703,0.2964549958705902,-0.6336545944213867t0.8640750050544739,-0.2177753448486328q0.5029900074005127,0,0.7994449138641357,0.17702960968017578t0.3751351833343506,0.5676202774047852l-0.45521998405456543,0.05620002746582031q-0.042150020599365234,-0.20232009887695312,-0.22620511054992676,-0.3105049133300781t-0.49315500259399414,-0.108184814453125q-0.34282004833221436,0,-0.5058000087738037,0.10396957397460938t-0.16297996044158936,0.31472015380859375q0,0.12926006317138672,0.0674399733543396,0.2135601043701172t0.19951003789901733,0.1433095932006836t0.5563799142837524,0.1629800796508789q0.4018300771713257,0.10116004943847656,0.5788601636886597,0.18686485290527344t0.27959489822387695,0.18967533111572266t0.15876507759094238,0.24025535583496094t0.05620002746582031,0.3105049133300781Z`;
},
width: 1024 / 356 - 0.2,
glyph: "s"
},
"Xt": {
getPath: () => {
return `M1.5567400455474854,15.96642017364502q-0.25009000301361084,0.06743907928466797,-0.5114200115203857,0.06743907928466797q-0.6069600284099579,0,-0.6069600284099579,-0.6884489059448242l0,-2.028820037841797l-0.3512500077486038,0l0,-0.36811065673828125l0.37091998755931854,0l0.14893001317977905,-0.6800193786621094l0.33719998598098755,0l0,0.6800193786621094l0.562000036239624,0l0,0.36811065673828125l-0.562000036239624,0l0,1.919229507446289q0,0.21918010711669922,0.0716550350189209,0.3076953887939453t0.24868500232696533,0.08851432800292969q0.10115993022918701,0,0.2922400236129761,-0.03933906555175781l0,0.3737297058105469Z`;
},
width: 569 / 356 - 0.2,
glyph: "t"
},
"Xu": {
getPath: () => {
return `M0.8823400139808655,12.948479652404785l0,1.9276599884033203q0,0.3006706237792969,0.05900996923446655,0.4664602279663086t0.1882699728012085,0.23885059356689453t0.37935006618499756,0.07305908203125q0.36529994010925293,0,0.5760500431060791,-0.2500896453857422t0.21074986457824707,-0.6940698623657227l0,-1.7618703842163086l0.5058000087738037,0l0,2.391310691833496q0,0.5310897827148438,0.016860008239746094,0.6491098403930664l-0.47769999504089355,0q-0.0028100013732910156,-0.014050483703613281,-0.005620002746582031,-0.07587051391601562t-0.007025003433227539,-0.1419048309326172t-0.009835004806518555,-0.3020744323730469l-0.008430004119873047,0q-0.17421984672546387,0.31471920013427734,-0.40323495864868164,0.4453849792480469t-0.569024920463562,0.13066387176513672q-0.5001800656318665,0,-0.7320050597190857,-0.24868392944335938t-0.23182499408721924,-0.821925163269043l0,-2.026010513305664l0.5086100101470947,0Z`;
},
width: 1139 / 356 - 0.2,
glyph: "u"
},
"Xv": {
getPath: () => {
return `M1.7225300073623657,15.988900184631348l-0.5985300540924072,0l-1.1043299529701471,-3.0404205322265625l0.5395199749618769,0l0.6687800288200378,1.9782400131225586q0.0365300178527832,0.11240005493164062,0.19388997554779053,0.6659708023071289l0.09835004806518555,-0.32877063751220703l0.10958993434906006,-0.33158016204833984l0.6912599802017212,-1.9838600158691406l0.5367100238800049,0Z`;
},
width: 1024 / 356 - 0.2,
glyph: "v"
},
"Xw": {
getPath: () => {
return `M3.2989399433135986,15.988900184631348l-0.5872900485992432,0l-0.5310897827148438,-2.1496505737304688l-0.10116004943847656,-0.47488975524902344q-0.02529001235961914,0.1264505386352539,-0.07868003845214844,0.3638954162597656t-0.5732400417327881,2.2606449127197266l-0.5844799876213074,0l-0.851429995149374,-3.0404205322265625l0.5001800023019314,0l0.5142300128936768,2.0653505325317383q0.01967000961303711,0.06744003295898438,0.12082993984222412,0.5563802719116211l0.047770023345947266,-0.20794010162353516l0.6350600719451904,-2.413790702819824l0.5423299074172974,0l0.5310900211334229,2.0878305435180664l0.12926006317138672,0.533900260925293l0.08711004257202148,-0.3905906677246094l0.5760498046875,-2.23114013671875l0.49456024169921875,0Z`;
},
width: 1479 / 356 - 0.2,
glyph: "w"
},
"Xx": {
getPath: () => {
return `M2.250809907913208,15.988900184631348l-0.8177099227905273,-1.247640609741211l-0.8233299851417542,1.247640609741211l-0.5451399981975555,0l1.0818499624729156,-1.5623598098754883l-1.0312699675559998,-1.4780607223510742l0.5591899752616882,0l0.7587000131607056,1.1830101013183594l0.7530801296234131,-1.1830101013183594l0.5648097991943359,0l-1.031269907951355,1.4724407196044922l1.0958999395370483,1.5679798126220703l-0.564810037612915,0Z`;
},
width: 1024 / 356 - 0.2,
glyph: "x"
},
"Xy": {
getPath: () => {
return `M0.5367100238800049,17.183149337768555q-0.207940012216568,0,-0.348440021276474,-0.030908584594726562l0,-0.3793506622314453q0.10677999258041382,0.016859054565429688,0.23603999614715576,0.016859054565429688q0.4720800220966339,0,0.7474599778652191,-0.6940689086914062l0.047770023345947266,-0.12083053588867188l-1.205489999614656,-3.026370048522949l0.5395199721679091,0l0.6406800150871277,1.6803808212280273q0.014050006866455078,0.03933906555175781,0.03372001647949219,0.09413433074951172t0.12644994258880615,0.36670494079589844t0.11521005630493164,0.34844017028808594l0.19669997692108154,-0.5535697937011719l0.665969967842102,-1.9360904693603516l0.5339000225067139,0l-1.1689599752426147,3.0404205322265625q-0.1882699728012085,0.4861307144165039,-0.3512500524520874,0.7235746383666992t-0.3610849380493164,0.3540611267089844t-0.4481949806213379,0.11661338806152344Z`;
},
width: 1024 / 356 - 0.2,
glyph: "y"
},
"Xz": {
getPath: () => {
return `M0.23322999477386475,15.988900184631348l0,-0.38496971130371094l1.7000499963760376,-2.264860153198242l-1.6045099794864655,0l0,-0.3905906677246094l2.2030400335788727,0l0,0.38497066497802734l-1.7028600573539734,2.264860153198242l1.7618700861930847,0l0,0.39058971405029297l-2.357590079307556,0Z`;
},
width: 1024 / 356 - 0.2,
glyph: "z"
},
"Xå": {
getPath: () => {
return `M1.1633399724960327,16.04509925842285q-0.45802998542785645,0,-0.6884499788284302,-0.24165916442871094t-0.23041999340057373,-0.6631603240966797q0,-0.4720802307128906,0.3105049729347229,-0.7249794006347656t1.0017650723457336,-0.2697601318359375l0.6828298568725586,-0.011240005493164062l0,-0.16579055786132812q0,-0.37091922760009766,-0.15735983848571777,-0.5310897827148438t-0.4945601224899292,-0.1601696014404297q-0.3400099277496338,0,-0.4945598840713501,0.11520957946777344t-0.18546003103256226,0.36810970306396484l-0.5282800197601318,-0.04776954650878906q0.12926000356674194,-0.8205204010009766,1.2195399403572083,-0.8205204010009766q0.5732401609420776,0,0.8626700639724731,0.26273536682128906t0.2894299030303955,0.7601051330566406l0,1.3094596862792969q0,0.22480010986328125,0.05901002883911133,0.3386049270629883t0.22480010986328125,0.11380481719970703q0.0730600357055664,0,0.16578984260559082,-0.019669532775878906l0,0.31472015380859375q-0.19107985496520996,0.04496002197265625,-0.39058995246887207,0.04496002197265625q-0.28099989891052246,0,-0.40885496139526367,-0.14752483367919922t-0.1447150707244873,-0.46224498748779297l-0.016860008239746094,0q-0.19388985633850098,0.34843921661376953,-0.45100486278533936,0.49315452575683594t-0.6252250671386719,0.14471435546875ZM1.2785500288009644,15.665749549865723q0.278190016746521,0,0.49456000328063965,-0.1264495849609375t0.34141504764556885,-0.34703540802001953t0.1250448226928711,-0.4538145065307617l0,-0.2500896453857422l-0.5535699129104614,0.011240005493164062q-0.3568699359893799,0.005620002746582031,-0.5409250259399414,0.0730600357055664t-0.28240495920181274,0.20793914794921875t-0.09834998846054077,0.36811065673828125q0,0.24728012084960938,0.13347500562667847,0.3821601867675781t0.3807550072669983,0.13487911224365234ZM2.245189905166626,12.026800155639648q0,0.28100013732910156,-0.199509859085083,0.48050975799560547t-0.48050999641418457,0.1995096206665039t-0.48050999641418457,-0.1995096206665039t-0.19951003789901733,-0.48050975799560547q0,-0.2838106155395508,0.19951003789901733,-0.48050975799560547t0.48050999641418457,-0.1967000961303711q0.27818989753723145,0,0.47910499572753906,0.1981048583984375t0.20091485977172852,0.47910499572753906ZM1.9417099952697754,12.026800155639648q0,-0.15736007690429688,-0.10959005355834961,-0.2669506072998047t-0.2669498920440674,-0.1095895767211914q-0.1601700782775879,0,-0.26976001262664795,0.1095895767211914t-0.10959005355834961,0.2669506072998047q0,0.15454959869384766,0.1067800521850586,0.2697601318359375t0.27257001399993896,0.11520957946777344q0.16297996044158936,0,0.2697598934173584,-0.11380481719970703t0.1067800521850586,-0.2711648941040039Z`;
},
width: 1139 / 356 - 0.2,
glyph: "å"
},
"Xä": {
getPath: () => {
return `M1.1633399724960327,16.04509925842285q-0.45802998542785645,0,-0.6884499788284302,-0.24165916442871094t-0.23041999340057373,-0.6631603240966797q0,-0.4720802307128906,0.3105049729347229,-0.7249794006347656t1.0017650723457336,-0.2697601318359375l0.6828298568725586,-0.011240005493164062l0,-0.16579055786132812q0,-0.37091922760009766,-0.15735983848571777,-0.5310897827148438t-0.4945601224899292,-0.1601696014404297q-0.3400099277496338,0,-0.4945598840713501,0.11520957946777344t-0.18546003103256226,0.36810970306396484l-0.5282800197601318,-0.04776954650878906q0.12926000356674194,-0.8205204010009766,1.2195399403572083,-0.8205204010009766q0.5732401609420776,0,0.8626700639724731,0.26273536682128906t0.2894299030303955,0.7601051330566406l0,1.3094596862792969q0,0.22480010986328125,0.05901002883911133,0.3386049270629883t0.22480010986328125,0.11380481719970703q0.0730600357055664,0,0.16578984260559082,-0.019669532775878906l0,0.31472015380859375q-0.19107985496520996,0.04496002197265625,-0.39058995246887207,0.04496002197265625q-0.28099989891052246,0,-0.40885496139526367,-0.14752483367919922t-0.1447150707244873,-0.46224498748779297l-0.016860008239746094,0q-0.19388985633850098,0.34843921661376953,-0.45100486278533936,0.49315452575683594t-0.6252250671386719,0.14471435546875ZM1.2785500288009644,15.665749549865723q0.278190016746521,0,0.49456000328063965,-0.1264495849609375t0.34141504764556885,-0.34703540802001953t0.1250448226928711,-0.4538145065307617l0,-0.2500896453857422l-0.5535699129104614,0.011240005493164062q-0.3568699359893799,0.005620002746582031,-0.5409250259399414,0.0730600357055664t-0.28240495920181274,0.20793914794921875t-0.09834998846054077,0.36811065673828125q0,0.24728012084960938,0.13347500562667847,0.3821601867675781t0.3807550072669983,0.13487911224365234ZM1.8939399719238281,12.563509941101074l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM0.7868000268936157,12.563509941101074l0,-0.5170402526855469l0.4636499881744385,0l0,0.5170402526855469l-0.4636499881744385,0Z`;
},
width: 1139 / 356 - 0.2,
glyph: "ä"
},
"Xö": {
getPath: () => {
return `M2.958930015563965,14.465880393981934q0,0.798039436340332,-0.35124993324279785,1.188629150390625t-1.02003014087677,0.39058971405029297q-0.665969967842102,0,-1.0059799551963806,-0.40604400634765625t-0.34000998735427856,-1.1731748580932617q0,-1.5736007690429688,1.3628499507904053,-1.5736007690429688q0.6968799829483032,0,1.025650143623352,0.38356494903564453t0.3287699222564697,1.1900358200073242ZM2.427839994430542,14.465880393981934q0,-0.6294403076171875,-0.18686509132385254,-0.9146556854248047t-0.6280349493026733,-0.2852144241333008q-0.44397997856140137,0,-0.6420849561691284,0.2908344268798828t-0.19810497760772705,0.9090356826782227q0,0.6013393402099609,0.19529497623443604,0.9034147262573242t0.6139850616455078,0.3020744323730469q0.45521998405456543,0,0.6505148410797119,-0.2922391891479492t0.19529509544372559,-0.9132499694824219ZM1.9360899925231934,12.563509941101074l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM0.8289499878883362,12.563509941101074l0,-0.5170402526855469l0.46365004777908325,0l0,0.5170402526855469l-0.46365004777908325,0Z`;
},
width: 1139 / 356 - 0.2,
glyph: "ö"
},
"XA": {
getPath: () => {
return `M3.2792699337005615,15.988900184631348l-0.4524099826812744,-1.1577205657958984l-1.8040199279785156,0l-0.4552200436592102,1.1577205657958984l-0.5563799794763327,0l1.6157499607652426,-3.9592905044555664l0.6097699403762817,0l1.5904600620269775,3.9592905044555664l-0.547950029373169,0ZM1.9248499870300293,12.434249877929688l-0.02529001235961914,0.07868003845214844q-0.07024991512298584,0.2332296371459961,-0.2079399824142456,0.5985298156738281l-0.5058000087738037,1.301030158996582l1.4808701276779175,0l-0.5086100101470947,-1.306650161743164q-0.07868003845214844,-0.19388961791992188,-0.15736007690429688,-0.43835926055908203Z`;
},
width: 1366 / 356 - 0.2,
glyph: "A",
kerningRules: {
"y": 37 / 356,
"v": 37 / 356,
"w": 37 / 356,
"Y": 152 / 356,
"W": 76 / 356,
"V": 152 / 356,
"T": 152 / 356
}
},
"XB": {
getPath: () => {
return `M3.534980058670044,14.873330116271973q0,0.5282802581787109,-0.38496994972229004,0.821925163269043t-1.0706100463867188,0.29364490509033203l-1.6073200702667236,0l0,-3.9592905044555664l1.4387199878692627,0q1.3937599658966064,0,1.3937599658966064,0.9610204696655273q0,0.35124969482421875,-0.196699857711792,0.5901002883911133t-0.556380033493042,0.3203392028808594q0.4720799922943115,0.05620002746582031,0.7277898788452148,0.31612491607666016t0.2557101249694824,0.6561355590820312ZM2.7650399208068848,13.055259704589844q0,-0.3203401565551758,-0.21917986869812012,-0.45802974700927734t-0.6350600719451904,-0.13768959045410156l-0.9020099639892578,0l0,1.2532596588134766l0.9020099639892578,0q0.4299299716949463,0,0.642085075378418,-0.1615753173828125t0.21215486526489258,-0.49596500396728516ZM2.992650032043457,14.83117961883545q0,-0.6996898651123047,-0.9835000038146973,-0.6996898651123047l-1.0003600120544434,0l0,1.427480697631836l1.0425100326538086,0q0.49175000190734863,0,0.7165498733520508,-0.18265056610107422t0.22480010986328125,-0.545140266418457Z`;
},
width: 1366 / 356 - 0.2,
glyph: "B"
},
"XC": {
getPath: () => {
return `M2.225519895553589,12.408960342407227q-0.6575398445129395,0,-1.022839903831482,0.42290496826171875t-0.3652999997138977,1.1591243743896484q0,0.7277898788452148,0.3807550072669983,1.170365333557129t1.0298649072647095,0.44257545471191406q0.8317601680755615,0,1.2504501342773438,-0.8233308792114258l0.43835997581481934,0.21918010711669922q-0.24447011947631836,0.5114202499389648,-0.6870450973510742,0.7783699035644531t-1.027055025100708,0.2669496536254883q-0.5985299348831177,0,-1.0354849100112915,-0.24868392944335938t-0.665969967842102,-0.7109298706054688t-0.2290150225162506,-1.0944957733154297q0,-0.9469699859619141,0.5114199817180634,-1.4836797714233398t1.4162399172782898,-0.5367097854614258q0.6322500705718994,0,1.0565600395202637,0.24728012084960938t0.6238200664520264,0.7334098815917969l-0.5086100101470947,0.16860008239746094q-0.13769006729125977,-0.3456306457519531,-0.44257497787475586,-0.5282802581787109t-0.7235751152038574,-0.1826496124267578Z`;
},
width: 1479 / 356 - 0.2,
glyph: "C"
},
"XD": {
getPath: () => {
return `M3.8806099891662598,13.968509674072266q0,0.6125802993774414,-0.23884987831115723,1.0720157623291016t-0.6772100925445557,0.7039041519165039t-1.0116000175476074,0.24447059631347656l-1.480870008468628,0l0,-3.9592905044555664l1.3094600439071655,0q1.0059798955917358,0,1.5525249242782593,0.5043954849243164t0.5465450286865234,1.434504508972168ZM3.341089963912964,13.968509674072266q0,-0.7362194061279297,-0.40323495864868164,-1.1225948333740234t-1.1675549745559692,-0.38637447357177734l-0.7615100145339966,0l0,3.0994300842285156l0.8823399543762207,0q0.4355499744415283,0,0.7657251358032227,-0.19108009338378906t0.5072050094604492,-0.5507602691650391t0.17702984809875488,-0.8486204147338867Z`;
},
width: 1479 / 356 - 0.2,
glyph: "D"
},
"XE": {
getPath: () => {
return `M0.4720799922943115,15.988900184631348l0,-3.9592905044555664l3.003890037536621,0l0,0.43836021423339844l-2.467180013656616,0l0,1.2701196670532227l2.2985799312591553,0l0,0.4327402114868164l-2.2985799312591553,0l0,1.3797101974487305l2.582390069961548,0l0,0.43836021423339844l-3.1191000938415527,0Z`;
},
width: 1366 / 356 - 0.2,
glyph: "E"
},
"XF": {
getPath: () => {
return `M1.0087900161743164,12.46796989440918l0,1.4724397659301758l2.2086598873138428,0l0,0.44398021697998047l-2.2086598873138428,0l0,1.6045103073120117l-0.5367100238800049,0l0,-3.9592905044555664l2.812809944152832,0l0,0.43836021423339844l-2.276099920272827,0Z`;
},
width: 1251 / 356 - 0.2,
glyph: "F",
kerningRules: {
"A": 113 / 356
}
},
"XG": {
getPath: () => {
return `M0.28942999243736267,13.990989685058594q0,-0.9638299942016602,0.5170399844646454,-1.4921092987060547t1.452769935131073,-0.5282802581787109q0.6575400829315186,0,1.0678000450134277,0.22198963165283203t0.6322500705718994,0.7109298706054688l-0.5114200115203857,0.15174007415771484q-0.16860008239746094,-0.3372001647949219,-0.465054988861084,-0.49174976348876953t-0.7376251220703125,-0.15454959869384766q-0.6856398582458496,0,-1.048129916191101,0.4144744873046875t-0.3624899983406067,1.1675548553466797q0,0.750269889831543,0.3849700093269348,1.1844148635864258t1.0649899244308472,0.4341459274291992q0.38778018951416016,0,0.7235751152038574,-0.11802005767822266t0.5437350273132324,-0.3203401565551758l0,-0.713740348815918l-1.1830101013183594,0l0,-0.4496002197265625l1.677570104598999,0l0,1.3656606674194336q-0.31472015380859375,0.3203392028808594,-0.7713451385498047,0.49596500396728516t-0.9905250072479248,0.17562389373779297q-0.6210099458694458,0,-1.0706099271774292,-0.24727916717529297t-0.6870449781417847,-0.7123346328735352t-0.23744502663612366,-1.0944957733154297Z`;
},
width: 1593 / 356 - 0.2,
glyph: "G"
},
"XH": {
getPath: () => {
return `M3.150010108947754,15.988900184631348l0,-1.834930419921875l-2.1412200927734375,0l0,1.834930419921875l-0.5367100238800049,0l0,-3.9592905044555664l0.5367100238800049,0l0,1.674759864807129l2.1412200927734375,0l0,-1.674759864807129l0.5367097854614258,0l0,3.9592905044555664l-0.5367097854614258,0Z`;
},
width: 1479 / 356 - 0.2,
glyph: "H"
},
"XI": {
getPath: () => {
return `M0.5310900211334229,15.988900184631348l0,-3.9592905044555664l0.5367100238800049,0l0,3.9592905044555664l-0.5367100238800049,0Z`;
},
width: 569 / 356 - 0.2,
glyph: "I"
},
"XJ": {
getPath: () => {
return `M1.2841700315475464,16.04509925842285q-1.0059800446033478,0,-1.1942500323057175,-1.0396995544433594l0.5254700034856796,-0.08710956573486328q0.05058002471923828,0.3259601593017578,0.22760999202728271,0.5086097717285156t0.44398003816604614,0.18265056610107422q0.2922400236129761,0,0.46083998680114746,-0.20091533660888672t0.1685999631881714,-0.5886955261230469l0,-2.3519697189331055l-0.7615100145339966,0l0,-0.43836021423339844l1.2954100370407104,0l0,2.77908992767334q0,0.5760507583618164,-0.31190991401672363,0.9062252044677734t-0.8542400598526001,0.33017444610595703Z`;
},
width: 1024 / 356 - 0.2,
glyph: "J"
},
"XK": {
getPath: () => {
return `M3.1078600883483887,15.988900184631348l-1.5820300579071045,-1.9107999801635742l-0.5170400142669678,0.3934001922607422l0,1.517399787902832l-0.5367100238800049,0l0,-3.9592905044555664l0.5367100238800049,0l0,1.9838600158691406l1.9079899787902832,-1.9838600158691406l0.6322500705718994,0l-1.686000108718872,1.7197198867797852l1.9107999801635742,2.2395706176757812l-0.6659698486328125,0Z`;
},
width: 1366 / 356 - 0.2,
glyph: "K"
},
"XL": {
getPath: () => {
return `M0.4720799922943115,15.988900184631348l0,-3.9592905044555664l0.5367100238800049,0l0,3.520930290222168l2.0007200241088867,0l0,0.43836021423339844l-2.5374300479888916,0Z`;
},
width: 1139 / 356 - 0.2,
glyph: "L",
kerningRules: {
"y": 76 / 356,
"Y": 152 / 356,
"W": 152 / 356,
"V": 152 / 356,
"T": 152 / 356
}
},
"XM": {
getPath: () => {
return `M3.8384599685668945,15.988900184631348l0,-2.6414003372192383q0,-0.43836021423339844,0.02529001235961914,-0.8429994583129883q-0.13769006729125977,0.5029897689819336,-0.24727988243103027,0.786799430847168l-1.0228400230407715,2.6976003646850586l-0.3765401840209961,0l-1.036889910697937,-2.6976003646850586l-0.15735995769500732,-0.47770023345947266l-0.09273004531860352,-0.3090991973876953l0.008430004119873047,0.31190967559814453l0.011240005493164062,0.5310897827148438l0,2.6414003372192383l-0.47769999504089355,0l0,-3.9592905044555664l0.7053099870681763,0l1.053749918937683,2.7453699111938477q0.05620002746582031,0.16579055786132812,0.1081850528717041,0.3554649353027344t0.06884503364562988,0.2739753723144531q0.022480010986328125,-0.11240005493164062,0.09413504600524902,-0.3414144515991211t0.09694504737854004,-0.2880258560180664l1.0340800285339355,-2.7453699111938477l0.6884500980377197,0l0,3.9592905044555664l-0.4833202362060547,0Z`;
},
width: 1706 / 356 - 0.2,
glyph: "M"
},
"XN": {
getPath: () => {
return `M3.0404200553894043,15.988900184631348l-2.1187400817871094,-3.371999740600586l0.014050006866455078,0.2725696563720703l0.014050006866455078,0.4692697525024414l0,2.630160331726074l-0.47769999504089355,0l0,-3.9592905044555664l0.6238200664520264,0l2.1412198543548584,3.3944807052612305q-0.03372001647949219,-0.5507602691650391,-0.03372001647949219,-0.7980403900146484l0,-2.596440315246582l0.4833199977874756,0l0,3.9592905044555664l-0.6462998390197754,0Z`;
},
width: 1479 / 356 - 0.2,
glyph: "N"
},
"XO": {
getPath: () => {
return `M4.2009501457214355,13.990989685058594q0,0.6210107803344727,-0.23744511604309082,1.0874700546264648t-0.6814250946044922,0.7165498733520508t-1.0481300354003906,0.2500896453857422q-0.6097699403762817,0,-1.0523449182510376,-0.24727916717529297t-0.6758049726486206,-0.7151451110839844t-0.23322999477386475,-1.0916852951049805q0,-0.9497795104980469,0.5198500156402588,-1.4850845336914062t1.4471498727798462,-0.5353050231933594q0.6041500568389893,0,1.0481300354003906,0.24025440216064453t0.6786150932312012,0.6982851028442383t0.2346351146697998,1.0818500518798828ZM3.6530001163482666,13.990989685058594q0,-0.7390298843383789,-0.36951518058776855,-1.1605300903320312t-1.043915033340454,-0.42149925231933594q-0.6800198554992676,0,-1.050939917564392,0.4158792495727539t-0.37092000246047974,1.1661500930786133q0,0.7446498870849609,0.37513500452041626,1.181605339050293t1.0411049127578735,0.43695545196533203q0.6856400966644287,0,1.0523450374603271,-0.42290592193603516t0.36670517921447754,-1.1956548690795898Z`;
},
width: 1593 / 356 - 0.2,
glyph: "O"
},
"XP": {
getPath: () => {
return `M3.534980058670044,13.221050262451172q0,0.5619993209838867,-0.36670494079589844,0.8935794830322266t-0.9961450099945068,0.33158016204833984l-1.1633400917053223,0l0,1.5426902770996094l-0.5367100238800049,0l0,-3.9592905044555664l1.666330099105835,0q0.6659698486328125,0,1.0312700271606445,0.31191062927246094t0.36529994010925293,0.8795299530029297ZM2.995460033416748,13.226670265197754q0,-0.7671298980712891,-0.9216799736022949,-0.7671298980712891l-1.0649900436401367,0l0,1.5623598098754883l1.0874700546264648,0q0.8991999626159668,0,0.8991999626159668,-0.7952299118041992Z`;
},
width: 1366 / 356 - 0.2,
glyph: "P",
kerningRules: {
"A": 152 / 356
}
},
"XQ": {
getPath: () => {
return `M4.2009501457214355,13.990989685058594q0,0.8373804092407227,-0.42150020599365234,1.3769006729125977t-1.1717698574066162,0.6378698348999023q0.11520981788635254,0.35405921936035156,0.3020749092102051,0.5114192962646484t0.47348499298095703,0.15736007690429688q0.15455007553100586,0,0.3231499195098877,-0.036529541015625l0,0.3765392303466797q-0.26132988929748535,0.06182098388671875,-0.5001800060272217,0.06182098388671875q-0.42430996894836426,0,-0.6982848644256592,-0.24025535583496094t-0.4481949806213379,-0.8022556304931641q-0.556380033493042,-0.02809906005859375,-0.9596151113510132,-0.28240394592285156t-0.6153899431228638,-0.7081203460693359t-0.21215498447418213,-1.0523452758789062q0,-0.9497795104980469,0.5198500156402588,-1.4850845336914062t1.4471498727798462,-0.5353050231933594q0.6041500568389893,0,1.0481300354003906,0.24025440216064453t0.6786150932312012,0.6982851028442383t0.2346351146697998,1.0818500518798828ZM3.6530001163482666,13.990989685058594q0,-0.7390298843383789,-0.36951518058776855,-1.1605300903320312t-1.043915033340454,-0.42149925231933594q-0.6800198554992676,0,-1.050939917564392,0.4158792495727539t-0.37092000246047974,1.1661500930786133q0,0.7446498870849609,0.37513500452041626,1.181605339050293t1.0411049127578735,0.43695545196533203q0.6856400966644287,0,1.0523450374603271,-0.42290592193603516t0.36670517921447754,-1.1956548690795898Z`;
},
width: 1593 / 356 - 0.2,
glyph: "Q"
},
"XR": {
getPath: () => {
return `M3.2708399295806885,15.988900184631348l-1.0284600257873535,-1.643850326538086l-1.2335898876190186,0l0,1.643850326538086l-0.5367100238800049,0l0,-3.9592905044555664l1.863029956817627,0q0.6687800884246826,0,1.03267502784729,0.29926490783691406t0.3638949394226074,0.833165168762207q0,0.44117069244384766,-0.25711488723754883,0.7418403625488281t-0.7095251083374023,0.3793497085571289l1.124000072479248,1.7056703567504883l-0.6182000637054443,0ZM3.19215989112854,13.167659759521484q0,-0.3456296920776367,-0.2346348762512207,-0.5268745422363281t-0.6758050918579102,-0.1812448501586914l-1.2729299068450928,0l0,1.4611997604370117l1.295409917831421,0q0.42430996894836426,0,0.656135082244873,-0.1981048583984375t0.2318248748779297,-0.5549755096435547Z`;
},
width: 1479 / 356 - 0.2,
glyph: "R",
kerningRules: {
"Y": 37 / 356,
"W": 37 / 356,
"V": 37 / 356,
"T": 37 / 356
}
},
"XS": {
getPath: () => {
return `M3.574320077896118,14.8958101272583q0,0.5479497909545898,-0.4285249710083008,0.8486194610595703t-1.206895112991333,0.30066967010498047q-1.4471499919891357,0,-1.6775699853897095,-1.0059795379638672l0.5198500156402588,-0.10396957397460938q0.08991998434066772,0.3568696975708008,0.382159948348999,0.5240650177001953t0.7952300310134888,0.16719436645507812q0.5198500156402588,0,0.8022549152374268,-0.1784343719482422t0.28240513801574707,-0.5240650177001953q0,-0.19389057159423828,-0.08851504325866699,-0.31472015380859375t-0.24868512153625488,-0.1995096206665039t-0.382159948348999,-0.13207054138183594t-0.49175000190734863,-0.11520957946777344q-0.4692699909210205,-0.10397052764892578,-0.7123349905014038,-0.20794010162353516t-0.38356494903564453,-0.2318248748779297t-0.21496498584747314,-0.29926490783691406t-0.07446500658988953,-0.3934001922607422q0,-0.5086097717285156,0.38918498158454895,-0.7839899063110352t1.1141650080680847,-0.27538013458251953q0.6744000911712646,0,1.0312700271606445,0.20653533935546875t0.5001800060272217,0.7039041519165039l-0.5282800197601318,0.09273052215576172q-0.08711004257202148,-0.31472015380859375,-0.33157992362976074,-0.45662498474121094t-0.6772100925445557,-0.1419048309326172q-0.47488999366760254,0,-0.7249799966812134,0.15736007690429688t-0.25009000301361084,0.4692697525024414q0,0.1826496124267578,0.09694504737854004,0.3020744323730469t0.27959489822387695,0.20232009887695312t0.727790117263794,0.20372486114501953q0.18264985084533691,0.04215049743652344,0.3638949394226074,0.08570575714111328t0.34703493118286133,0.10396957397460938t0.3105051517486572,0.1419048309326172t0.2514948844909668,0.1995105743408203t0.16719508171081543,0.27818965911865234t0.060415029525756836,0.3765401840209961Z`;
},
width: 1366 / 356 - 0.2,
glyph: "S"
},
"XT": {
getPath: () => {
return `M2.023200035095215,12.46796989440918l0,3.520930290222168l-0.5339000225067139,0l0,-3.520930290222168l-1.360040009021759,0l0,-0.43836021423339844l3.253979980945587,0l0,0.43836021423339844l-1.3600399494171143,0Z`;
},
width: 1251 / 356 - 0.2,
glyph: "T",
kerningRules: {
"y": 113 / 356,
"w": 113 / 356,
"u": 76 / 356,
"s": 227 / 356,
"r": 76 / 356,
"o": 227 / 356,
"i": 76 / 356,
"e": 227 / 356,
"c": 227 / 356,
"a": 227 / 356,
"O": 37 / 356,
"Ö": 37 / 356,
"A": 152 / 356,
"Å": 152 / 356,
"Ä": 152 / 356
}
},
"XU": {
getPath: () => {
return `M2.054110050201416,16.04509925842285q-0.4861299991607666,0,-0.8486200571060181,-0.17702960968017578t-0.5619999766349792,-0.5142297744750977t-0.19951000809669495,-0.8036594390869141l0,-2.520570755004883l0.5367099940776825,0l0,2.4756107330322266q0,0.5423297882080078,0.27538001537323,0.8233299255371094t0.7952300310134888,0.28100013732910156q0.5339000225067139,0,0.8303549289703369,-0.2908353805541992t0.29645490646362305,-0.8500251770019531l0,-2.439080238342285l0.5339000225067139,0l0,2.4699907302856445q0,0.48050975799560547,-0.20372486114501953,0.8289499282836914t-0.5760500431060791,0.5324945449829102t-0.8781249523162842,0.18405437469482422Z`;
},
width: 1479 / 356 - 0.2,
glyph: "U"
},
"XV": {
getPath: () => {
return `M2.1974198818206787,15.988900184631348l-0.5563799142837524,0l-1.6157499682158232,-3.9592905044555664l0.5648099910467863,0l1.0958999991416931,2.787520408630371l0.23603999614715576,0.6996898651123047l0.2360401153564453,-0.6996898651123047l1.0902798175811768,-2.787520408630371l0.564810037612915,0Z`;
},
width: 1366 / 356 - 0.2,
glyph: "V",
kerningRules: {
"y": 76 / 356,
"u": 76 / 356,
"r": 76 / 356,
"o": 113 / 356,
"i": 37 / 356,
"e": 113 / 356,
"a": 227 / 356,
"A": 152 / 356,
"Å": 152 / 356,
"Ä": 152 / 356
}
},
"XW": {
getPath: () => {
return `M4.245910167694092,15.988900184631348l-0.6406800746917725,0l-0.6856400966644287,-2.5149497985839844q-0.06744003295898438,-0.2360401153564453,-0.1967000961303711,-0.8458099365234375q-0.0730597972869873,0.3259592056274414,-0.12363982200622559,0.5451393127441406t-0.7671301364898682,2.8156204223632812l-0.6406799554824829,0l-1.1661499869078398,-3.9592905044555664l0.5591899883002043,0l0.7109300494194031,2.514950752258301q0.12644994258880615,0.4720792770385742,0.23322999477386475,0.972259521484375q0.06743991374969482,-0.3091001510620117,0.15595495700836182,-0.6744003295898438t0.7797750234603882,-2.812809944152832l0.5142300128936768,0l0.6884498596191406,2.4643707275390625q0.15736007690429688,0.6041498184204102,0.24728012084960938,1.0228395462036133l0.02529001235961914,-0.09834957122802734q0.07587003707885742,-0.323150634765625,0.12364006042480469,-0.5268754959106445t0.7896099090576172,-2.861985206604004l0.5591897964477539,0Z`;
},
width: 1933 / 356 - 0.2,
glyph: "W",
kerningRules: {
"y": 18 / 356,
"u": 37 / 356,
"r": 37 / 356,
"o": 37 / 356,
"e": 37 / 356,
"a": 76 / 356,
"A": 76 / 356,
"Å": 76 / 356,
"Ä": 76 / 356
}
},
"XX": {
getPath: () => {
return `M3.1247200965881348,15.988900184631348l-1.1886301040649414,-1.7309598922729492l-1.213919997215271,1.7309598922729492l-0.5929099917411804,0l1.5061599612236023,-2.056920051574707l-1.3909499645233154,-1.9023704528808594l0.5929099917411804,0l1.1015200018882751,1.5539302825927734l1.0706100463867188,-1.5539302825927734l0.5929100513458252,0l-1.3544201850891113,1.882699966430664l1.4696300029754639,2.0765905380249023l-0.5929098129272461,0Z`;
},
width: 1366 / 356 - 0.2,
glyph: "X"
},
"XY": {
getPath: () => {
return `M2.1833701133728027,14.347860336303711l0,1.6410398483276367l-0.5339001417160034,0l0,-1.6410398483276367l-1.5230199694633484,-2.3182506561279297l0.5900999903678894,0l1.205489993095398,1.8855104446411133l1.1998701095581055,-1.8855104446411133l0.5900998115539551,0Z`;
},
width: 1366 / 356 - 0.2,
glyph: "Y",
kerningRules: {
"v": 113 / 356,
"u": 113 / 356,
"q": 188 / 356,
"p": 152 / 356,
"o": 188 / 356,
"i": 76 / 356,
"e": 188 / 356,
"a": 152 / 356,
"A": 152 / 356,
"Å": 152 / 356,
"Ä": 152 / 356
}
},
"XZ": {
getPath: () => {
return `M3.335469961166382,15.988900184631348l-3.152819961309433,0l0,-0.40182971954345703l2.410980075597763,-3.119100570678711l-2.205850064754486,0l0,-0.43836021423339844l2.8156198859214783,0l0,0.3905906677246094l-2.4109798669815063,3.1303396224975586l2.543049931526184,0l0,0.43836021423339844Z`;
},
width: 1251 / 356 - 0.2,
glyph: "Z"
},
"XÅ": {
getPath: () => {
return `M3.2792699337005615,15.988900184631348l-0.4524099826812744,-1.1577205657958984l-1.8040199279785156,0l-0.4552200436592102,1.1577205657958984l-0.5563799794763327,0l1.6157499607652426,-3.9592905044555664l0.6097699403762817,0l1.5904600620269775,3.9592905044555664l-0.547950029373169,0ZM1.9248499870300293,12.434249877929688l-0.02529001235961914,0.07868003845214844q-0.07024991512298584,0.2332296371459961,-0.2079399824142456,0.5985298156738281l-0.5058000087738037,1.301030158996582l1.4808701276779175,0l-0.5086100101470947,-1.306650161743164q-0.07868003845214844,-0.19388961791992188,-0.15736007690429688,-0.43835926055908203ZM2.607680082321167,11.64463996887207q0,0.28100013732910156,-0.1995100975036621,0.48050975799560547t-0.48050999641418457,0.1995105743408203t-0.48050999641418457,-0.1995105743408203t-0.19950997829437256,-0.48050975799560547q0,-0.2838096618652344,0.19950997829437256,-0.48050975799560547t0.48050999641418457,-0.1967000961303711q0.27818989753723145,0,0.47910499572753906,0.1981048583984375t0.20091509819030762,0.47910499572753906ZM2.3041999340057373,11.64463996887207q0,-0.15736007690429688,-0.10958981513977051,-0.2669496536254883t-0.2669501304626465,-0.10959053039550781q-0.16016995906829834,0,-0.26976001262664795,0.10959053039550781t-0.10958993434906006,0.2669496536254883q0,0.15454959869384766,0.10677993297576904,0.2697601318359375t0.27257001399993896,0.11520957946777344q0.1629800796508789,0,0.2697598934173584,-0.11380481719970703t0.1067800521850586,-0.2711648941040039Z`;
},
width: 1366 / 356 - 0.2,
glyph: "Å",
kerningRules: {
"y": 37 / 356,
"v": 37 / 356,
"w": 37 / 356,
"Y": 152 / 356,
"W": 76 / 356,
"V": 152 / 356,
"T": 152 / 356
}
},
"XÄ": {
getPath: () => {
return `M3.2792699337005615,15.988900184631348l-0.4524099826812744,-1.1577205657958984l-1.8040199279785156,0l-0.4552200436592102,1.1577205657958984l-0.5563799794763327,0l1.6157499607652426,-3.9592905044555664l0.6097699403762817,0l1.5904600620269775,3.9592905044555664l-0.547950029373169,0ZM1.9248499870300293,12.434249877929688l-0.02529001235961914,0.07868003845214844q-0.07024991512298584,0.2332296371459961,-0.2079399824142456,0.5985298156738281l-0.5058000087738037,1.301030158996582l1.4808701276779175,0l-0.5086100101470947,-1.306650161743164q-0.07868003845214844,-0.19388961791992188,-0.15736007690429688,-0.43835926055908203ZM2.25642991065979,11.689599990844727l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM1.1492899656295776,11.689599990844727l0,-0.5170402526855469l0.4636499881744385,0l0,0.5170402526855469l-0.4636499881744385,0Z`;
},
width: 1366 / 356 - 0.2,
glyph: "Ä",
kerningRules: {
"y": 37 / 356,
"v": 37 / 356,
"w": 37 / 356,
"Y": 152 / 356,
"W": 76 / 356,
"V": 152 / 356,
"T": 152 / 356
}
},
"XÖ": {
getPath: () => {
return `M4.2009501457214355,13.990989685058594q0,0.6210107803344727,-0.23744511604309082,1.0874700546264648t-0.6814250946044922,0.7165498733520508t-1.0481300354003906,0.2500896453857422q-0.6097699403762817,0,-1.0523449182510376,-0.24727916717529297t-0.6758049726486206,-0.7151451110839844t-0.23322999477386475,-1.0916852951049805q0,-0.9497795104980469,0.5198500156402588,-1.4850845336914062t1.4471498727798462,-0.5353050231933594q0.6041500568389893,0,1.0481300354003906,0.24025440216064453t0.6786150932312012,0.6982851028442383t0.2346351146697998,1.0818500518798828ZM3.6530001163482666,13.990989685058594q0,-0.7390298843383789,-0.36951518058776855,-1.1605300903320312t-1.043915033340454,-0.42149925231933594q-0.6800198554992676,0,-1.050939917564392,0.4158792495727539t-0.37092000246047974,1.1661500930786133q0,0.7446498870849609,0.37513500452041626,1.181605339050293t1.0411049127578735,0.43695545196533203q0.6856400966644287,0,1.0523450374603271,-0.42290592193603516t0.36670517921447754,-1.1956548690795898ZM2.5571000576019287,11.689599990844727l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM1.4499599933624268,11.689599990844727l0,-0.5170402526855469l0.4636499881744385,0l0,0.5170402526855469l-0.4636499881744385,0Z`;
},
width: 1593 / 356 - 0.2,
glyph: "Ö"
}
};
for (const letter of Object.values(alphabetData)) {
letter.specialRule = "external glyph";
letter.height = 4;
}
function createCircle(radius) {
const initialX = 0;
const initialY = radius;
return {
getPath: (x, y) => {
const startX = initialX + x;
const startY = initialY + y;
return `M${startX},${startY}a${radius},${radius} 0 1,1 ${radius * 2},0a${radius},${radius} 0 1,1 ${-radius * 2},0`;
},
width: radius * 2,
height: radius * 2
};
}
function createHalfCircle(radius, radialDirection) {
const directionMapping = {
"N": { initialX: 0, initialY: radius, endX: radius * 2, endY: 0, sweepFlag: 1, width: radius * 2, height: radius },
"S": { initialX: 0, initialY: 0, endX: radius * 2, endY: 0, sweepFlag: 0, width: radius * 2, height: radius },
"W": { initialX: radius, initialY: 0, endX: 0, endY: radius * 2, sweepFlag: 0, width: radius, height: radius * 2 },
"E": { initialX: 0, initialY: 0, endX: 0, endY: radius * 2, sweepFlag: 1, width: radius, height: radius * 2 }
};
const { initialX, initialY, endX, endY, sweepFlag, width, height } = directionMapping[radialDirection];
return {
getPath: (x, y) => {
const startX = initialX + x;
const startY = initialY + y;
return `M${startX},${startY}a${radius},${radius} 0 1,${sweepFlag} ${endX},${endY}`;
},
width,
height
};
}
function createQuarterCircle(radius, radialDirection) {
const directionMapping = {
"NW": { initialX: 0, initialY: radius, endX: radius, endY: -radius, sweepFlag: 1 },
"NE": { initialX: 0, initialY: 0, endX: radius, endY: radius, sweepFlag: 1 },
"SW": { initialX: 0, initialY: 0, endX: radius, endY: radius, sweepFlag: 0 },
"SE": { initialX: 0, initialY: radius, endX: radius, endY: -radius, sweepFlag: 0 }
};
const { initialX, initialY, endX, endY, sweepFlag } = directionMapping[radialDirection];
return {
getPath: (x, y) => {
const startX = initialX + x;
const startY = initialY + y;
return `M${startX},${startY}a${radius},${radius} 0 0,${sweepFlag} ${endX},${endY}`;
},
width: radius,
height: radius
};
}
function createOpenCircle(radius, openingDirection) {
const directionMapping = {
"NW": { initialX: radius, initialY: 0, endX: -radius, endY: radius, sweepFlag: 1 },
"NE": { initialX: radius * 2, initialY: radius, endX: -radius, endY: -radius, sweepFlag: 1 },
"SW": { initialX: 0, initialY: radius, endX: radius, endY: radius, sweepFlag: 1 },
"SE": { initialX: radius, initialY: radius * 2, endX: radius, endY: -radius, sweepFlag: 1 }
};
const { initialX, initialY, endX, endY, sweepFlag } = directionMapping[openingDirection];
return {
getPath: (x, y) => {
const startX = initialX + x;
const startY = initialY + y;
return `M${startX},${startY}a${radius},${radius} 0 1,${sweepFlag} ${endX},${endY}`;
},
width: radius * 2,
height: radius * 2
};
}
function createWave(length, radialDirection) {
const radius = length * 5 / 8 / 2;
const directionMapping = {
"N": { initialX: 0, initialY: length / 8, endX: length / 2, endY: 0, firstSweepFlag: 1, secondSweepFlag: 0, width: length, height: length / 4 },
"S": { initialX: 0, initialY: length / 8, endX: length / 2, endY: 0, firstSweepFlag: 0, secondSweepFlag: 1, width: length, height: length / 4 },
"W": { initialX: length / 8, initialY: 0, endX: 0, endY: length / 2, firstSweepFlag: 0, secondSweepFlag: 1, width: length / 4, height: length },
"E": { initialX: length / 8, initialY: 0, endX: 0, endY: length / 2, firstSweepFlag: 1, secondSweepFlag: 0, width: length / 4, height: length }
};
const { initialX, initialY, endX, endY, firstSweepFlag, secondSweepFlag, width, height } = directionMapping[radialDirection];
return {
getPath: (x, y) => {
const startX = initialX + x;
const startY = initialY + y;
return `M${startX},${startY}a${radius},${radius} 0 0,${firstSweepFlag} ${endX},${endY}a${radius},${radius} 0 0,${secondSweepFlag} ${endX},${endY}`;
},
width,
height
};
}
function createHalfWave(length, radialDirection) {
const radius = length * 5 / 8;
const directionMapping = {
"N": { initialX: 0, initialY: length / 4, endX: length, endY: 0, sweepFlag: 1, width: length, height: length / 4 },
"S": { initialX: 0, initialY: 0, endX: length, endY: 0, sweepFlag: 0, width: length, height: length / 4 },
"W": { initialX: length / 4, initialY: 0, endX: 0, endY: length, sweepFlag: 0, width: length / 4, height: length },
"E": { initialX: 0, initialY: 0, endX: 0, endY: length, sweepFlag: 1, width: length / 4, height: length }
};
const { initialX, initialY, endX, endY, sweepFlag, width, height } = directionMapping[radialDirection];
return {
getPath: (x, y) => {
const startX = initialX + x;
const startY = initialY + y;
return `M${startX},${startY}a${radius},${radius} 0 0,${sweepFlag} ${endX},${endY}`;
},
width,
height
};
}
function createHorizontalQuarterWave(width, radialDirection) {
const radius = width * 5 / 4;
const directionMapping = {
"NW": { initialX: 0, initialY: width / 2, endX: width, endY: -width / 2, sweepFlag: 1 },
"NE": { initialX: 0, initialY: 0, endX: width, endY: width / 2, sweepFlag: 1 },
"SW": { initialX: 0, initialY: 0, endX: width, endY: width / 2, sweepFlag: 0 },
"SE": { initialX: 0, initialY: width / 2, endX: width, endY: -width / 2, sweepFlag: 0 }
};
const { initialX, initialY, endX, endY, sweepFlag } = directionMapping[radialDirection];
return {
getPath: (x, y) => {
const startX = initialX + x;
const startY = initialY + y;
return `M${startX},${startY}a${radius},${radius} 0 0,${sweepFlag} ${endX},${endY}`;
},
width,
height: width / 2
};
}
function createVerticalQuarterWave(height, radialDirection) {
const radius = height * 5 / 4;
const directionMapping = {
"NW": { initialX: height / 2, initialY: 0, endX: -height / 2, endY: height, sweepFlag: 0 },
"NE": { initialX: 0, initialY: 0, endX: height / 2, endY: height, sweepFlag: 1 },
"SW": { initialX: 0, initialY: 0, endX: height / 2, endY: height, sweepFlag: 0 },
"SE": { initialX: height / 2, initialY: 0, endX: -height / 2, endY: height, sweepFlag: 1 }
};
const { initialX, initialY, endX, endY, sweepFlag } = directionMapping[radialDirection];
return {
getPath: (x, y) => {
const startX = initialX + x;
const startY = initialY + y;
return `M${startX},${startY}a${radius},${radius} 0 0,${sweepFlag} ${endX},${endY}`;
},
width: height / 2,
height
};
}
function createVerticalLine(length) {
return {
getPath: (x, y) => `M${x},${y}v${length}`,
width: 0,
height: length
};
}
function createHorizontalLine(length) {
return {
getPath: (x, y) => `M${x},${y}h${length}`,
width: length,
height: 0
};
}
function createAscendingDiagonalLine(width, height) {
return {
getPath: (x, y) => `M${x},${y + height}l${width},${-height}`,
width,
height
};
}
function createDescendingDiagonalLine(width, height) {
return {
getPath: (x, y) => `M${x},${y}l${width},${height}`,
width,
height
};
}
function createDiagonalLineOutsideCircle(size, direction) {
const radius = size / 2;
const lineWidth = radius * (1 - 0.70711);
const lineHeight = lineWidth;
const directionMapping = {
"NW": { initialX: 0, initialY: 0, endX: lineWidth, endY: lineHeight },
"NE": { initialX: size - lineWidth, initialY: lineHeight, endX: lineWidth, endY: -lineHeight },
"SW": { initialX: 0, initialY: size, endX: lineWidth, endY: -lineHeight },
"SE": { initialX: size - lineWidth, initialY: size - lineHeight, endX: lineWidth, endY: lineHeight }
};
const { initialX, initialY, endX, endY } = directionMapping[direction];
return {
//x and y are in this case the coordinates of the square that the diagonal lines are related to. Also width and height relates to the square.
getPath: (x, y) => {
const startX = initialX + x;
const startY = initialY + y;
return `M${startX},${startY}l${endX},${endY}`;
},
width: size,
height: size
};
}
function createAscendingDiagonalLineInsideCircle(radius) {
const lineWidth = radius * 2 * 0.70711;
const lineHeight = lineWidth;
return {
//x and y are in this case the coordinates of the bounding box of the circle that the diagonal lines are related to. Also width and height relates to the square.
getPath: (x, y) => {
const startX = radius - lineWidth / 2 + x;
const startY = radius + lineHeight / 2 + y;
const endX = lineWidth;
const endY = -lineHeight;
return `M${startX},${startY}l${endX},${endY}`;
},
width: radius * 2,
height: radius * 2
};
}
function createDescendingDiagonalLineInsideCircle(radius) {
const lineWidth = radius * 2 * 0.70711;
const lineHeight = lineWidth;
return {
//x and y are in this case the coordinates of the bounding box of the circle that the diagonal lines are related to. Also width and height relates to the square.
getPath: (x, y) => {
const startX = radius - lineWidth / 2 + x;
const startY = radius - lineHeight / 2 + y;
const endX = lineWidth;
const endY = lineHeight;
return `M${startX},${startY}l${endX},${endY}`;
},
width: radius * 2,
height: radius * 2
};
}
function createHeart(size) {
const radius = size / 4;
return {
getPath: (x, y) => `M${x},${y + radius}a${radius},${radius} 0 1,1 ${radius * 2},0a${radius},${radius} 0 1,1 ${radius * 2},0q0,${size * 3 / 8} ${-(size / 2)},${size * 3 / 4}q${-(size / 2)},${-(size * 3 / 8)} ${-(size / 2)},${-(size * 3 / 4)}`,
width: size,
height: size
};
}
function createEar(height) {
const radius = height / 4;
return {
getPath: (x, y) => `M${x},${y + radius}a${radius},${radius} 0 1,1 ${radius * 2},0q0,${height * 3 / 8} ${-(height / 2)},${height * 3 / 4}`,
width: height / 2,
height
};
}
function createDot(defaultBaseStrokeWidth = 0.5, defaultExtraDotWidth = 0.333) {
const dot = {
/**
* Create an object with SVG string parts closePath, openPath, dotPath and openPath
* so that joining these can be used along with other shapes' getPath functions,
* based on specified strokeWidth and extraDotWidth.
* @param {number} x - The x-coordinate of the dot's position.
* @param {number} y - The y-coordinate of the dot's position.
* @param {number} baseStrokeWidth - The stroke-width of a normal line in the SVG, used to derive other dimensions of the dot.
* @param {number} extraDotWidth - A dot's outer diameter is the normal line stroke-width + extraDotWidth.
* @returns {Object} - An object with closePath, openPath, dotPath and openPath properties.
*/
getDotData: (x, y, settings = { baseStrokeWidth: defaultBaseStrokeWidth, extraDotWidth: defaultExtraDotWidth }) => {
const dotStrokeWidth = (settings.baseStrokeWidth + settings.extraDotWidth) / 2;
const dotStrokeRadius = dotStrokeWidth / 2;
return {
closePath: `"></path>`,
openDotPath: `<path stroke-width="${dotStrokeWidth}" d="`,
dotPath: `M${x - dotStrokeRadius},${y}a${dotStrokeRadius},${dotStrokeRadius} 0 1,1 ${dotStrokeRadius * 2},0a${dotStrokeRadius},${dotStrokeRadius} 0 1,1 ${-dotStrokeRadius * 2},0`,
openPath: `<path d="`
};
},
width: 0,
height: 0
};
dot.getPath = (x, y, settings = { baseStrokeWidth: defaultBaseStrokeWidth, extraDotWidth: defaultExtraDotWidth }) => {
const { closePath, openDotPath, dotPath, openPath } = dot.getDotData(x, y, settings);
return `${closePath}${openDotPath}${dotPath}${closePath}${openPath}`;
};
return dot;
}
function createComma(defaultBaseStrokeWidth = 0.5, defaultExtraDotWidth = 0.333) {
const comma = {
/**
* Create an object with SVG string parts closePath, openDotPath, dotPath, openCommaPath, commaPath and openPath so that joining these can be used along with other shapes' getPath functions, based on specified strokeWidth and extraDotWidth.
* @param {number} x - The x-coordinate of the dot's position.
* @param {number} y - The y-coordinate of the dot's position.
* @param {number} baseStrokeWidth - The stroke-width of a normal line in the SVG, used to derive other dimensions of the comma.
* @param {number} extraDotWidth - A dot's outer diameter is the normal line stroke-width + extraDotWidth.
* @returns {Object} - An object with closePath, openDotPath, dotPath, commaPath and openPath properties.
*/
getCommaData: (x, y, settings = { baseStrokeWidth: defaultBaseStrokeWidth, extraDotWidth: defaultExtraDotWidth }) => {
const dotStrokeWidth = (settings.baseStrokeWidth + settings.extraDotWidth) / 2;
const dotStrokeRadius = dotStrokeWidth / 2;
const commaStrokeWidth = dotStrokeWidth * 2 / 3;
const commaStartX = commaStrokeWidth + x;
const commaStartY = y;
const commaEndX = commaStrokeWidth * -2;
const commaEndY = commaStrokeWidth * 4;
const commaQX = commaStrokeWidth / 4;
const commaQY = commaStrokeWidth * 2.5;
return {
closePath: `"></path>`,
openDotPath: `<path stroke-width="${dotStrokeWidth}" d="`,
dotPath: `M${x - dotStrokeRadius},${y}a${dotStrokeRadius},${dotStrokeRadius} 0 1,1 ${dotStrokeRadius * 2},0a${dotStrokeRadius},${dotStrokeRadius} 0 1,1 ${-dotStrokeRadius * 2},0`,
openCommaPath: `<path stroke-width="${commaStrokeWidth}" d="`,
commaPath: `M${commaStartX},${commaStartY}q${commaQX},${commaQY} ${commaEndX},${commaEndY}`,
openPath: `<path d="`
};
},
width: 0,
height: 0
};
comma.getPath = (x, y, settings = { baseStrokeWidth: defaultBaseStrokeWidth, extraDotWidth: defaultExtraDotWidth }) => {
const { closePath, openDotPath, dotPath, openCommaPath, commaPath, openPath } = comma.getCommaData(x, y, settings);
return `${closePath}${openDotPath}${dotPath}${closePath}${openCommaPath}${commaPath}${closePath}${openPath}`;
};
return comma;
}
function createFiber(height) {
const radius = height * 5 / 4;
const initialX = height;
const initialY = 0;
const midX = height / 4;
const midY = height / 2;
const endX = height / 2;
const endY = 0;
return {
getPath: (x, y) => {
const startX = initialX + x;
const startY = initialY + y;
return `M${startX},${startY}a${radius},${radius} 0 0,1 ${midX},${midY}a${radius},${radius} 0 0,0 ${endX},${endY}`;
},
width: height / 2,
height
};
}
function createExternalGlyph(glyph) {
const aObj = alphabetData[`X${glyph}`];
const closePath = `"></path>`;
const glyphPath = (aObj == null ? void 0 : aObj.getPath()) || "";
const openPath = `<path d="`;
return {
getPath: (x, y) => {
const openGlyphPath = `<path stroke="none" fill="#000000" transform="translate(${x - 0.3},${y - 0.015})" d="`;
return `${closePath}${openGlyphPath}${glyphPath}${closePath}${openPath}`;
},
width: aObj.width || 0,
// Indicates that this "shape" is an external, non-Bliss glyph.
isExternalGlyph: true,
// The glyph represented.
glyph: aObj.glyph,
// The kerning rules for the glyph
kerningRules: { ...aObj.kerningRules }
};
}
const charData = {
B1: {
codeString: "VL6:0,8;DOT:0,16"
},
B2: {
codeString: "C2:0,8;DL4-8N:0,8;C2:2,14"
},
B3: {
codeString: "OC4SW:0,8;VL2:2,12;DOT:2,16"
},
B4: {
codeString: "DOT:0,16"
},
B5: {
codeString: "COMMA:0,16"
},
B6: {
codeString: "DOT:0,14;DOT:0,16"
},
B7: {
codeString: "COMMA:0,8"
},
B8: {
codeString: "C2:0,8"
},
B9: {
codeString: "HC2N:0,12;VL2:0,13;HC2S:0,15;VL2:2,13"
},
B10: {
codeString: "DL1N:0,12;VL4:1,12;HL2:0,16"
},
B11: {
codeString: "HC2N:0,12;DL2-3N:0,13;HL2:0,16"
},
B12: {
codeString: "OC2SW:0,12;OC2NW:0,14"
},
B13: {
codeString: "VL2:0,12;HL2:0,14;VL4:2,12"
},
B14: {
codeString: "HL2:0,12;VL2:0,12;HL1:0,14;HL1:0,16;HC2E:1,14"
},
B15: {
codeString: "HC2N:0,12;VL2:0,13;C2:0,14"
},
B16: {
codeString: "HL2:0,12;DL1-4N:1,12"
},
B17: {
codeString: "C2:0,12;C2:0,14"
},
B18: {
codeString: "C2:0,12;HC2S:0,15;VL2:2,13"
},
B19: {
codeString: "HC1N:0,14;VL1:0,14.5;HC1S:0,15.5;VL1:1,14.5"
},
B20: {
codeString: "DL.5N:0,14;VL2:0.5,14;HL1:0,16"
},
B21: {
codeString: "HC1N:0,14;DL1-1.5N:0,14.5;HL1:0,16"
},
B22: {
codeString: "OC1SW:0,14;OC1NW:0,15"
},
B23: {
codeString: "VL1:0,14;HL1:0,15;VL2:1,14"
},
B24: {
codeString: "HL1:0,14;VL1:0,14;HL.5:0,15;HL.5:0,16;HC1E:0.5,15"
},
B25: {
codeString: "HC1N:0,14;VL1:0,14.5;C1:0,15"
},
B26: {
codeString: "HL1:0,14;DL.5-2N:0.5,14"
},
B27: {
codeString: "C1:0,14;C1:0,15"
},
B28: {
codeString: "C1:0,14;HC1S:0,15.5;VL1:1,14.5"
},
B29: {
codeString: "Xa"
},
B30: {
codeString: "Xb"
},
B31: {
codeString: "Xc"
},
B32: {
codeString: "Xd"
},
B33: {
codeString: "Xe"
},
B34: {
codeString: "Xf"
},
B35: {
codeString: "Xg"
},
B36: {
codeString: "Xh"
},
B37: {
codeString: "Xi"
},
B38: {
codeString: "Xj"
},
B39: {
codeString: "Xk"
},
B40: {
codeString: "Xl"
},
B41: {
codeString: "Xm"
},
B42: {
codeString: "Xn"
},
B43: {
codeString: "Xo"
},
B44: {
codeString: "Xp"
},
B45: {
codeString: "Xq"
},
B46: {
codeString: "Xr"
},
B47: {
codeString: "Xs"
},
B48: {
codeString: "Xt"
},
B49: {
codeString: "Xu"
},
B50: {
codeString: "Xv"
},
B51: {
codeString: "Xw"
},
B52: {
codeString: "Xx"
},
B53: {
codeString: "Xy"
},
B54: {
codeString: "Xz"
},
B55: {
codeString: "XA"
},
B56: {
codeString: "XB"
},
B57: {
codeString: "XC"
},
B58: {
codeString: "XD"
},
B59: {
codeString: "XE"
},
B60: {
codeString: "XF"
},
B61: {
codeString: "XG"
},
B62: {
codeString: "XH"
},
B63: {
codeString: "XI"
},
B64: {
codeString: "XJ"
},
B65: {
codeString: "XK"
},
B66: {
codeString: "XL"
},
B67: {
codeString: "XM"
},
B68: {
codeString: "XN"
},
B69: {
codeString: "XO"
},
B70: {
codeString: "XP"
},
B71: {
codeString: "XQ"
},
B72: {
codeString: "XR"
},
B73: {
codeString: "XS"
},
B74: {
codeString: "XT"
},
B75: {
codeString: "XU"
},
B76: {
codeString: "XV"
},
B77: {
codeString: "XW"
},
B78: {
codeString: "XX"
},
B79: {
codeString: "XY"
},
B80: {
codeString: "XZ"
},
B81: {
codeString: "AA2N:0,4",
isIndicator: true
},
B82: {
codeString: "AA2E:0,4",
isIndicator: true
},
B83: {
codeString: "OC1SW:0,4;VL.25:0.5,5;DOT:0.5,6",
isIndicator: true,
width: 1
},
B84: {
codeString: "B86;B270:3,-8",
isIndicator: true,
center: 0.5,
width: 3
},
B85: {
codeString: "B270:0,-8;B86:1,0",
isIndicator: true,
center: -0.5,
width: 3
},
B86: {
codeString: "AA2S:0,4",
isIndicator: true
},
B87: {
codeString: "HW2W:0,4",
isIndicator: true,
width: 0.5
},
B88: {
codeString: "B83;B87:2,0",
isIndicator: true,
width: 2.5
},
B89: {
codeString: "B91;B87:3,0",
isIndicator: true,
width: 3.5
},
B90: {
codeString: "B91;B88:3,0",
isIndicator: true,
width: 5.5
},
B91: {
codeString: "AA2W:0,4",
isIndicator: true
},
B92: {
codeString: "HW2E:0,4",
isIndicator: true,
width: 0.5
},
B93: {
codeString: "B83;B92:2,0",
isIndicator: true,
width: 2.5
},
B94: {
codeString: "B91;B93:3,0",
isIndicator: true,
width: 5.5
},
B95: {
codeString: "B91;B92:3,0",
isIndicator: true,
width: 3.5
},
B96: {
codeString: "B91;B83:3,0",
isIndicator: true,
width: 4
},
B97: {
codeString: "S2:0,4",
isIndicator: true
},
B98: {
codeString: "B97;B99:3,0",
isIndicator: true,
width: 5
},
B99: {
codeString: "DC2:0,4",
isIndicator: true
},
B100: {
codeString: "DL2S:0,11"
},
B101: {
codeString: "B270;B297:2,0",
center: 1
},
B102: {
codeString: "RA4E:0,10"
},
B103: {
codeString: "B239;VL6:2,8;HL4:2,8;VL6:6,8"
},
B104: {
codeString: "VL6:2,10;HL4:0,12;HL4:0,14"
},
B105: {
codeString: "AA8N:0,8"
},
B106: {
codeString: "AA4N:0,12"
},
B107: {
codeString: "SC8:0,8"
},
B108: {
codeString: "B325;HL4:0,8;HL4:0,16"
},
B109: {
codeString: "B428;B270:2,0"
},
B110: {
codeString: "B270;B270:2,0"
},
B111: {
codeString: "RA4W:0,10;RA4W:2,10"
},
B112: {
codeString: "HW4E:0,12"
},
B113: {
codeString: "B335;B335:0,4"
},
B114: {
codeString: "B597;B473:4,0"
},
B115: {
codeString: "B708;B700:2,0"
},
B116: {
codeString: "RA8S:0,8;VL4:4,12;HL8:0,16"
},
B117: {
codeString: "B291;B459"
},
B118: {
codeString: "Xa/Xb/Xc"
},
B119: {
codeString: "P4W:0,6;P4E:4,10;P4W:0,14"
},
B120: {
codeString: "SC4:0,10"
},
B121: {
codeString: "DL8N:0,8;HL8:0,16"
},
B122: {
codeString: "HL8:0,12;AA4N:0,12;AA4N:4,12"
},
B123: {
codeString: "B122;B737:4,2"
},
B124: {
codeString: "HC4W:0,8;B122:2,0",
center: 1
},
B125: {
codeString: "B122;B737:4,0"
},
B126: {
codeString: "B122;HC2N:0,15;HC2N:4,15;HC2N:8,15",
center: -1
},
B127: {
codeString: "B122;B695:0,6"
},
B128: {
codeString: "P4E:0,14;B514:3,0"
},
B129: {
codeString: "B291;B699:3,0"
},
B130: {
codeString: "B281;B100:3,0"
},
B131: {
codeString: "HC4N:0,10;HC4N:4,10;HC8S:0,12;QC4NW:4,8"
},
B132: {
codeString: "RA4SW:0,8"
},
B133: {
codeString: "B212;HL4:0,10;VL2:4,10"
},
B134: {
codeString: "B255;B270"
},
B135: {
codeString: "RA4E:0,10;B270:4,0"
},
B136: {
codeString: "LARRC8SC:0,8;B5840:3,0"
},
B137: {
codeString: "B257;B11:7,0;B500:8,0"
},
B138: {
codeString: "QC4NW:3,4;VQW4NW:1,8;VQW4NE:3,8;HW4W:0,12;HW4E:5,12;B528:2.5,0;HL4:1,16"
},
B139: {
codeString: "VL4:0,10;P4E:8,10"
},
B140: {
codeString: "C4:0,12;VL4:4,12;HL4:4,14;VL4:8,12"
},
B141: {
codeString: "C4:0,12;AA4W:4,12"
},
B142: {
codeString: "C4:0,12;AT4W:4,12"
},
B143: {
codeString: "P4E:0,6;B518:3,0"
},
B144: {
codeString: "B335;B145:0,4"
},
B145: {
codeString: "LARR8W:0,10"
},
B146: {
codeString: "VL4:0,8;HL8:0,8;VL4:8,8;HC8S:0,12"
},
B147: {
codeString: "HC4N:2,10;R84:0,12"
},
B148: {
codeString: "C4:0,12;HL4:0,14"
},
B149: {
codeString: "C8:0,4;QC4SE:0,12"
},
B150: {
codeString: "QC4NW:0,4;HW8E:0,8;HC8E:0,8"
},
B151: {
codeString: "B612;B428:12,0"
},
B152: {
codeString: "B122;B708"
},
B153: {
codeString: "B281;B695:8,4"
},
B154: {
codeString: "B801;C4:1,10"
},
B155: {
codeString: "B1139;P4W:7,16"
},
B156: {
codeString: "VL8:0,8;HL8:0,12;DL4N:4,8;VL8:8,8"
},
B157: {
codeString: "B400;HC8N:2,8;HL8:2,12"
},
B158: {
codeString: "B270;B428:2,0"
},
B159: {
codeString: "B428;B335"
},
B160: {
codeString: "B120:0,4"
},
B161: {
codeString: "C4:0,10;QC4NE:4,12"
},
B162: {
codeString: "B428;B270:2,0;B428:4,0"
},
B163: {
codeString: "B708;AA2N:3,12"
},
B164: {
codeString: "B163;B695:0,6"
},
B165: {
codeString: "HW8W:0,8;HL8:2,8;HL2:2,16;HL2:8,16;HW8E:10,8;B140:2,-2;LARR4S:4,16"
},
B166: {
codeString: "B548;B622:3,0"
},
B167: {
codeString: "B712;B509"
},
B168: {
codeString: "S4:0,10;DL2N:0,8;HL4:2,8;DL2N:4,8;VL4:6,8;DL2N:4,12"
},
B169: {
codeString: "B639;P4N:2,13"
},
B170: {
codeString: "VL4:4,8;HL8:0,12;B239"
},
B171: {
codeString: "HW8W:0,8;HL8:2,8;HL8:2,16;HW8E:10,8"
},
B172: {
codeString: "DOT:0,8;VL4:0,10;DOT:0,16"
},
B173: {
codeString: "B497;OR48W:4,8"
},
B174: {
codeString: "VL4:2,8;C4:0,12"
},
B175: {
codeString: "B291;P4N:2,17"
},
B176: {
codeString: "C4:0,10;C4:4,10;RA4N:2,14"
},
B177: {
codeString: "S8:0,8;DL4N:0,4;HL8:4,4;DL4N:8,4;VL8:12,4;DL4N:8,12"
},
B178: {
codeString: "C4:0,8;B106"
},
B179: {
codeString: "B666;P4W:9,10",
center: -1.5
},
B180: {
codeString: "HW4W:0,12;HL8:1,12;HL8:1,16;HW4E:9,12"
},
B181: {
codeString: "B171;P4N:2,12;P4N:6,12"
},
B182: {
codeString: "B1154;HC8N:4,12;B1154:12,0"
},
B183: {
codeString: "OR84S:0,12;VL8:4,8"
},
B184: {
codeString: "OR84N:0,8;VL8:4,8"
},
B185: {
codeString: "B345;P4W:5,10"
},
B186: {
codeString: "B123;HC4N:0,10"
},
B187: {
codeString: "B1137;P4W:7,16"
},
B188: {
codeString: "B892;DL2N:9,9;DL2S:10,10"
},
B189: {
codeString: "B884;B188:10,0;HL10:12,16"
},
B190: {
codeString: "QC4SE:0,10;VL6:4,10;QC4SW:4,10"
},
B191: {
codeString: "B451:2,0;B239"
},
B192: {
codeString: "HL4:0,12;VL4:4,10"
},
B193: {
codeString: "HW8W:0,8;HW8E:2,8;HW8W:4,8;HW8E:6,8"
},
B194: {
codeString: "P4E:0,10;B518:3,0"
},
B195: {
codeString: "RA4W:0,10"
},
B196: {
codeString: "B422;HC4N:2,10"
},
B197: {
codeString: "B391;HC4N:0,10;HC4N:4,10",
center: -3
},
B198: {
codeString: "B291;B424"
},
B199: {
codeString: "VL4:0,8;B688;RA8N:0,4;VL4:8,8"
},
B200: {
codeString: "C4:0,8;VL4:0,10;VL4:4,10;HC4S:0,14"
},
B201: {
codeString: "B700:3,0;B939"
},
B202: {
codeString: "B688;DL2N:5,9;DL2S:6,10"
},
B203: {
codeString: "QC4NW:4,12;B281;AA4S:2,16"
},
B204: {
codeString: "B1099;LARR4E:4,8",
center: -2
},
B205: {
codeString: "HL14:0,8;VL8:0,8;C4:2,10;HL6:4,10;C4:8,10;VL8:14,8;HL14:0,16"
},
B206: {
codeString: "RT8E:0,8"
},
B207: {
codeString: "B644;DOT:2,14"
},
B208: {
codeString: "B572;P4N:2,9"
},
B209: {
codeString: "B1119;VL6:2,8;VL8:4,8;VL6:6,8;HC4S:2,14"
},
B210: {
codeString: "HC4N:0,10;VL2:0,12;HC4S:0,14;VL10:2,8"
},
B211: {
codeString: "B265;B357:6,0"
},
B212: {
codeString: "VL8:0,8;HL4:0,12;VL4:4,12"
},
B213: {
codeString: "B423;B695"
},
B214: {
codeString: "B306;P4W:9,10"
},
B215: {
codeString: "RA4NE:0,12;QC4SW:0,12"
},
B216: {
codeString: "DL8N:0,8;VL4:8,8;B651:6,2",
center: 3
},
B217: {
codeString: "B338;B528:1.5,0;HW4W:5,8;C4:4,12;B528:5.5,0"
},
B218: {
codeString: "B171;P4N:4,12"
},
B219: {
codeString: "S8:0,8;HL8:0,12;DOT:4,10;DOT:4,14"
},
B220: {
codeString: "C4:0,8;B956"
},
B221: {
codeString: "B1132;P4W:9,6"
},
B222: {
codeString: "B306;P4N:2,17"
},
B223: {
codeString: "B368:0,-4;HL4:0,12;B303:0,2"
},
B224: {
codeString: "B1085;P4N:4,17"
},
B225: {
codeString: "B281;B433:2,0"
},
B226: {
codeString: "B126;P4W:11,14",
center: -2.5
},
B227: {
codeString: "B978;P4W:8,12"
},
B228: {
codeString: "VL8:2,8;VL8:6,8;HL8:0,10;HL8:0,14"
},
B229: {
codeString: "B228;B548"
},
B230: {
codeString: "B597;W8N:0,7"
},
B231: {
codeString: "OR84N:0,12;VL4:4,12"
},
B232: {
codeString: "C4:0,10;C4:2,10"
},
B233: {
codeString: "C2:0,4;C2:1,4"
},
B234: {
codeString: "B622:0,4;B255:1,0"
},
B235: {
codeString: "HC4N:0,8;HC4N:4,8;VL6:0,10;VL6:4,10;VL6:8,10;HL8:0,16"
},
B236: {
codeString: "W8S:0,11;B285:6,0",
center: 3
},
B237: {
codeString: "RA8N:0,8;HC8S:0,12"
},
B238: {
codeString: "B447;B447:0,-4"
},
B239: {
codeString: "HC8S:0,12"
},
B240: {
codeString: "B687;DOT:4,10;DOT:4,12;DOT:4,14"
},
B241: {
codeString: "B572;P4W:9,14"
},
B242: {
codeString: "DL4S:0,8;OR84S:4,12"
},
B243: {
codeString: "B281;B322:4,0"
},
B244: {
codeString: "B281;B666"
},
B245: {
codeString: "B433;B710:4,0"
},
B246: {
codeString: "B433;B548:2,0;B710:8,0"
},
B247: {
codeString: "AT8N:0,8"
},
B248: {
codeString: "VL8:2,8;HL4:0,10"
},
B249: {
codeString: "B171;P4N:4,17"
},
B250: {
codeString: "RA4N:0,8;B651;RA4S:0,14"
},
B251: {
codeString: "B352;HC4E:4,10",
center: -1
},
B252: {
codeString: "S8:0,8;DOT:2,12;VL8:4,8;DOT:6,12"
},
B253: {
codeString: "B161;C4:0,14;HW4N:4,15"
},
B254: {
codeString: "OS8S:0,8;QC4SE:0,8;QC4SW:4,8"
},
B255: {
codeString: "HC8E:0,8"
},
B256: {
codeString: "B247;B401:4,0"
},
B257: {
codeString: "B548;B314:2,0"
},
B258: {
codeString: "B281;B636"
},
B259: {
codeString: "B423;B939"
},
B260: {
codeString: "B447;B292"
},
B261: {
codeString: "B213;LARR8E:8,10",
center: -4
},
B262: {
codeString: "B939;B578:2,0"
},
B263: {
codeString: "C4:0,12;HW4E:5,12"
},
B264: {
codeString: "B939;B562"
},
B265: {
codeString: "DL4S:0,12;HL8:4,16;DL4N:12,12"
},
B266: {
codeString: "DOT:4,10;HL8:0,12;DOT:4,14"
},
B267: {
codeString: "VL12:2,6;OC4SE:0,8;OC4NW:0,12"
},
B268: {
codeString: "HC4E:0,14;B851:2,0"
},
B269: {
codeString: "OS8S:0,8"
},
B270: {
codeString: "DOT:0,12"
},
B271: {
codeString: "LARR8S:0,8"
},
B272: {
codeString: "RA4SW:0,12;DL8N:0,8"
},
B273: {
codeString: "DL8S:0,8;RA4SE:4,12"
},
B274: {
codeString: "B219;P4W:9,8"
},
B275: {
codeString: "B695;B329:2,0"
},
B276: {
codeString: "B391;HC4N:2,10",
center: -3
},
B277: {
codeString: "B426;B270:4,-6"
},
B278: {
codeString: "E:0,8"
},
B279: {
codeString: "B651;B278:2,0"
},
B280: {
codeString: "DL8S:0,8;C8:0,8"
},
B281: {
codeString: "HL8:0,16"
},
B282: {
codeString: "B636;P4E:5,10"
},
B283: {
codeString: "B639;P4S:6,9"
},
B284: {
codeString: "B559;OR48W:0,8"
},
B285: {
codeString: "C8:0,8;HW4N:2,11;HW4S:2,12"
},
B286: {
codeString: "B270;RA4E:0,10"
},
B287: {
codeString: "P4E:0,10;B132:3,0"
},
B288: {
codeString: "DL4N:0,8;HL4:0,12;DL4N:0,12"
},
B289: {
codeString: "DL8-4S:0,10;VL4:8,10;DL8-4S:8,10"
},
B290: {
codeString: "B171;B894:4,0"
},
B291: {
codeString: "S8:0,8"
},
B292: {
codeString: "B335;B428:8,0"
},
B293: {
codeString: "B289;B636:4,0"
},
B294: {
codeString: "B712;B695"
},
B295: {
codeString: "B518;DL2N:0,10"
},
B296: {
codeString: "VL2:2,6;HW8W:0,8;HW8E:2,8"
},
B297: {
codeString: "AA8S:0,8"
},
B298: {
codeString: "B281;VQW4NE:4,12;QC4NE:4,12"
},
B299: {
codeString: "B894;B1154"
},
B300: {
codeString: "B666;QC4SE:0,10;QC4SW:4,10"
},
B301: {
codeString: "B447;B1042:2,0"
},
B302: {
codeString: "LARR4W:0,10;LARR4N:4,6;B651:4,0;LARR4E:8,10;LARR4S:4,14"
},
B303: {
codeString: "C4:0,10;DOT:2,12"
},
B304: {
codeString: "B1138;P4W:5,6"
},
B305: {
codeString: "B303;P4S:0,7"
},
B306: {
codeString: "B376;DOT:2,10;DOT:6,10"
},
B307: {
codeString: "B447;B299:2,0"
},
B308: {
codeString: "B393;B704:10,0"
},
B309: {
codeString: "B513;B548:2,0;B513:8,0"
},
B310: {
codeString: "HC8N:0,8;RA8S:0,12"
},
B311: {
codeString: "B548;B317"
},
B312: {
codeString: "B548;B433:2,0"
},
B313: {
codeString: "H:0,8"
},
B314: {
codeString: "AT4N:0,12"
},
B315: {
codeString: "B1135;P4W:17,12"
},
B316: {
codeString: "B171;B140:2,-2"
},
B317: {
codeString: "B357;B281"
},
B318: {
codeString: "B374;P4W:5,6",
center: -1.5
},
B319: {
codeString: "W8E:0,8"
},
B320: {
codeString: "B484;B319:3,0"
},
B321: {
codeString: "HC8S:0,12;HC8N:0,12"
},
B322: {
codeString: "VL8:0,8;OS4W:0,8"
},
B323: {
codeString: "B572;P4N:2,17"
},
B324: {
codeString: "B572;P4S:2,13"
},
B325: {
codeString: "C4:0,8;VL4:2,12"
},
B326: {
codeString: "B1137;P4W:7,8"
},
B327: {
codeString: "B400;B708:2,0"
},
B328: {
codeString: "B597;B695"
},
B329: {
codeString: "B457;B1154"
},
B330: {
codeString: "B418;P4S:8,13",
center: -2
},
B331: {
codeString: "P4N:0,8;P4S:0,14"
},
B332: {
codeString: "RA4E:0,10;RA4E:2,10"
},
B333: {
codeString: "B306;P4S:2,7"
},
B334: {
codeString: "DL6N:0,10;DL4S:2,10;DL2N:2,8;DL2N:6,12"
},
B335: {
codeString: "LARR8E:0,10"
},
B336: {
codeString: "B484;B313"
},
B337: {
codeString: "VL4:0,10;P4E:2,10"
},
B338: {
codeString: "QC4NW:2,8;C4:0,12"
},
B339: {
codeString: "B293;B291:4,0"
},
B340: {
codeString: "B1141;P4W:7,8",
center: -0.5
},
B341: {
codeString: "HW8W:0,8"
},
B342: {
codeString: "B392;B700;B700:4,0"
},
B343: {
codeString: "B239;B694"
},
B344: {
codeString: "B281;B325:2,0"
},
B345: {
codeString: "B678;C4:0,10"
},
B346: {
codeString: "LARR4E:0,10;LARR4S:4,6;LARR4N:4,14;LARR4W:8,10"
},
B347: {
codeString: "B106;B314:4,0"
},
B348: {
codeString: "B368;B457:0,-2"
},
B349: {
codeString: "B518;P4W:1,10"
},
B350: {
codeString: "B122;VL8:8,4;HL4:8,4",
center: -2
},
B351: {
codeString: "C4:0,8;B314"
},
B352: {
codeString: "OR48N:0,8"
},
B353: {
codeString: "B303;HC4N:4,10;B303:8,0"
},
B354: {
codeString: "OS8S:0,8;B148:2,0"
},
B355: {
codeString: "AA8N:0,4;HL2:0,12;HL2:6,12;B247"
},
B356: {
codeString: "B239;B651:2,0"
},
B357: {
codeString: "B366;B366:4,0"
},
B358: {
codeString: "B312;B500:8,0"
},
B359: {
codeString: "B312;B455:8,0"
},
B360: {
codeString: "B312;B312:8,0"
},
B361: {
codeString: "B455;B500:8,0"
},
B362: {
codeString: "B455;B455:8,0"
},
B363: {
codeString: "B455;B312:8,0"
},
B364: {
codeString: "B500;B500:8,0"
},
B365: {
codeString: "C4:0,10;C4:4,10;C4:2,14;QC4NW:4,8"
},
B366: {
codeString: "QC4NW:0,12"
},
B367: {
codeString: "B281;HL8:0,20;VL2:8,18"
},
B368: {
codeString: "DC4:0,12"
},
B369: {
codeString: "HL12:0,12;HC4S:1,12"
},
B370: {
codeString: "B394;B271:2,0"
},
B371: {
codeString: "HW2W:0,10;HW2W:2,10;HW2W:4,10"
},
B372: {
codeString: "B1143;P4W:7,4",
center: -0.5
},
B373: {
codeString: "DL6N:0,10;DL4S:4,8"
},
B374: {
codeString: "DL4S:0,12;VL8:4,8"
},
B375: {
codeString: "B239;HL8:0,12;HC4N:2,10"
},
B376: {
codeString: "C8:0,8;VL4:4,10;HL4:2,14"
},
B377: {
codeString: "B132;VL8:4,8"
},
B378: {
codeString: "P4W:0,10;B319:3,0;P4E:6,10"
},
B379: {
codeString: "B122:4,0;DL4S:0,8;DL4S:4,8;DL4S:8,8",
center: 2
},
B380: {
codeString: "P4E:0,14;B418:3,0"
},
B381: {
codeString: "B983;B700:2,0"
},
B382: {
codeString: "DL4-8N:0,8;B513:2,0",
center: 1
},
B383: {
codeString: "RA4E:0,10;B270:4,0;B270:6,0"
},
B384: {
codeString: "B418;P4W:5,6"
},
B385: {
codeString: "B127;DL4N:8,8;DL2S:12,8",
center: -3
},
B386: {
codeString: "B1154;B239:4,4;B1154:12,0"
},
B387: {
codeString: "HL8:0,12;RA4S:8,12"
},
B388: {
codeString: "B454;P4W:9,14"
},
B389: {
codeString: "HL8:0,12;HC4N:4,10;QC4SE:8,8;QC4NE:8,12"
},
B390: {
codeString: "B123;P4W:9,8"
},
B391: {
codeString: "B122;DL4N:8,8;DL2S:12,8",
center: -3
},
B392: {
codeString: "B878;B548"
},
B393: {
codeString: "B433;B548:2,0"
},
B394: {
codeString: "B695;B651:2,0"
},
B395: {
codeString: "AT4S:0,12;HC4N:0,10"
},
B396: {
codeString: "B418;QC4SE:0,16;QC4SE:8,16"
},
B397: {
codeString: "B447;B271:2,0"
},
B398: {
codeString: "B291;B270:4,0"
},
B399: {
codeString: "VL4:0,10;HL4:0,12;R84:4,10;HL4:12,12"
},
B400: {
codeString: "AA4N:0,12;AA4N:4,12;AA4N:8,12"
},
B401: {
codeString: "VL3:0,10;DOT:0,14"
},
B402: {
codeString: "B335;B291:4,0",
center: 2
},
B403: {
codeString: "QC4NW:0,12;HC4N:4,10;HL4:4,12;VL4:8,12;HL8:0,16"
},
B404: {
codeString: "B695:0,4;B281:8,0;B695:16,4"
},
B405: {
codeString: "VL4:0,12"
},
B406: {
codeString: "P4E:0,14;B1002:3,0"
},
B407: {
codeString: "HL8:0,12;HC4S:0,12;VL4:8,12"
},
B408: {
codeString: "B457;B457:4,0"
},
B409: {
codeString: "DS8:0,4;QC4SE:0,12"
},
B410: {
codeString: "B514;P4W:5,14"
},
B411: {
codeString: "DL4S:0,12;DL8N:0,8"
},
B412: {
codeString: "B447;OR84N:0,12"
},
B413: {
codeString: "VL8:0,8;HL4:0,10;HL4:0,14;VL8:4,8"
},
B414: {
codeString: "B457;B278:2,0"
},
B415: {
codeString: "B281;B366:4,0"
},
B416: {
codeString: "HW8W:0,8;VL8:2,8;HW8E:2,8"
},
B417: {
codeString: "B418;P4W:7,10"
},
B418: {
codeString: "AA8N:0,8;HL4:0,16;HL4:8,16",
center: -2
},
B419: {
codeString: "QC4NW:2,4;HW8W:0,8;HW8E:2,8"
},
B420: {
codeString: "VL4:0,10;HL8:0,12;VL4:8,10"
},
B421: {
codeString: "B291;RA8S:0,8"
},
B422: {
codeString: "B281;QC4NE:0,12;B366:4,0"
},
B423: {
codeString: "B636;VL8:4,8"
},
B424: {
codeString: "B636;B303:2,0"
},
B425: {
codeString: "B597;B288:4,0"
},
B426: {
codeString: "VL8:0,8;B655;VL8:8,8"
},
B427: {
codeString: "B428;B428:8,0"
},
B428: {
codeString: "VL8:0,8"
},
B429: {
codeString: "P4S:0,7;B457;P4N:0,15"
},
B430: {
codeString: "B818;HC4E:0,8;HC4W:6,8"
},
B431: {
codeString: "HL4:0,12;B313:4,0;B335:8,0"
},
B432: {
codeString: "B636;B700:2,0"
},
B433: {
codeString: "VL4:2,8;B106"
},
B434: {
codeString: "B518;DL2S:0,12"
},
B435: {
codeString: "W8E:0,8;QC4NW:1,4;B528:1.5,0;HC8E:1,8"
},
B436: {
codeString: "HL2:0,10;RA4N:2,8;HL2:6,10;RA4E:0,10;RA4W:6,10;HL8:0,14;VL2:4,14"
},
B437: {
codeString: "B548;B232:1,2"
},
B438: {
codeString: "B651;B1154"
},
B439: {
codeString: "B580;B829:3,0"
},
B440: {
codeString: "B509;B447;B457:2,0"
},
B441: {
codeString: "B420;VL4:4,10"
},
B442: {
codeString: "C8:0,8;C4:2,10;QC4NW:4,4"
},
B443: {
codeString: "VL4:0,8;VL4:2,8;VL4:4,8;VL4:6,8;VL10:8,6;VL4:10,8;VL4:12,8;VL4:14,8;VL4:16,8;HL16:0,12;HL4:6,16"
},
B444: {
codeString: "B457:0,-6;VL8:2,8;B1154"
},
B445: {
codeString: "B289;B291:4,0"
},
B446: {
codeString: "B291;P4S:2,10"
},
B447: {
codeString: "HC8N:0,8"
},
B448: {
codeString: "B456;B270:6,2"
},
B449: {
codeString: "HL4:0,12"
},
B450: {
codeString: "DL4S:0,8;ARR4SW:0,12"
},
B451: {
codeString: "C4:0,8;C4:0,12;VL8:2,8"
},
B452: {
codeString: "VL8:0,8;HC8E:0,8"
},
B453: {
codeString: "HW8E:0,8;HC8E:0,8"
},
B454: {
codeString: "HC8N:0,12;B281"
},
B455: {
codeString: "B548;B710:2,0"
},
B456: {
codeString: "RT8SE:0,8"
},
B457: {
codeString: "C4:0,10"
},
B458: {
codeString: "B695:0,4;HL12:0,16"
},
B459: {
codeString: "DC8:0,8"
},
B460: {
codeString: "B718;P4W:5,10"
},
B461: {
codeString: "HC4N:0,10;HL4:0,12;VL4:2,12"
},
B462: {
codeString: "VL6:4,8;C4:0,12"
},
B463: {
codeString: "HL4:0,8;VL8:2,8"
},
B464: {
codeString: "B509;B457:2,0"
},
B465: {
codeString: "B1142;P4W:6,16"
},
B466: {
codeString: "B171;P4S:4,5"
},
B467: {
codeString: "HL4:0,16;DL4-8N:2,8",
center: -1
},
B468: {
codeString: "VL8:0,8;HC4E:0,8"
},
B469: {
codeString: "B303;B278:2,0"
},
B470: {
codeString: "B281;B453:4,0"
},
B471: {
codeString: "B440;B939"
},
B472: {
codeString: "B636;P4N:2,9"
},
B473: {
codeString: "DL4-8N:0,8;HL4:0,16"
},
B474: {
codeString: "B112;B648:3,0"
},
B475: {
codeString: "B449:2,0;B281"
},
B476: {
codeString: "P4W:0,10;B477:3,0;P4E:12,10"
},
B477: {
codeString: "B136;P2E:1,11"
},
B478: {
codeString: "DL4-8N:1,8;HL8:2,10;DL4-8N:5,8;HL8:0,14"
},
B479: {
codeString: "B548;B347"
},
B480: {
codeString: "B695;B695:0,4"
},
B481: {
codeString: "QC4NW:1,8;HW4W:0,12;HW4E:1,12"
},
B482: {
codeString: "B1154;P4S:0,14"
},
B483: {
codeString: "B281;C4:2,16;HW4W:3,16;HW4E:4,16"
},
B484: {
codeString: "OS8N:0,8"
},
B485: {
codeString: "B447;B457:2,0"
},
B486: {
codeString: "DL2N:0,8;VL8:2,8;DL2N:2,14"
},
B487: {
codeString: "B558;B558:4,0"
},
B488: {
codeString: "RA4W:0,10;B270:2,0"
},
B489: {
codeString: "B338;HW4W:1,12;HW4E:2,12"
},
B490: {
codeString: "B291;B270:10,0",
center: -1
},
B491: {
codeString: "B291;B335:4,0",
center: -2
},
B492: {
codeString: "B291;B271:2,4"
},
B493: {
codeString: "B634;B270:4,-2"
},
B494: {
codeString: "HW8N:0,12;HL8:0,14;HW8S:0,14;B695:0,6"
},
B495: {
codeString: "HC4N:2,10;HL8:0,12;DL2-4S:0,12;HL4:2,16;DL2-4N:6,12"
},
B496: {
codeString: "HC4N:0,8;HC4N:4,8;VL6:4,10"
},
B497: {
codeString: "R48:0,8"
},
B498: {
codeString: "B428;B428:2,0"
},
B499: {
codeString: "HL12:0,8;VL8:0,8;RA8E:0,8;RA8W:8,8;VL8:12,8;HL12:0,16"
},
B500: {
codeString: "B548;B513:2,0"
},
B501: {
codeString: "B325;B281:2,0;B666:6,0"
},
B502: {
codeString: "DOT:2,10;HL4:0,12;DOT:2,14"
},
B503: {
codeString: "HW8E:0,8"
},
B504: {
codeString: "B122;P4W:9,14",
center: -1.5
},
B505: {
codeString: "B712;B313"
},
B506: {
codeString: "QC4NW:4,8;HC4N:0,10;HC4N:4,10;HC8S:0,12;B528:3.5,0"
},
B507: {
codeString: "QC4NW:3,4;VQW4NW:1,8;VQW4NE:3,8;HW4W:0,12;HW4E:5,12;HL4:1,16"
},
B508: {
codeString: "B801;C2:2,9;C2:2,13"
},
B509: {
codeString: "DL8S:0,8"
},
B510: {
codeString: "B434;P4W:3,12"
},
B511: {
codeString: "QC4NW:2,4;VL2:2,8;HC2N:0,9;HC2N:2,9;VL4:0,10;VL4:4,10;HC4S:0,14"
},
B512: {
codeString: "HL8:0,16;VL8:4,8"
},
B513: {
codeString: "HL4:0,16;VL8:2,8"
},
B514: {
codeString: "VL4:0,8;DL4S:0,12;HL4:0,16"
},
B515: {
codeString: "HL8:0,16;VL4:8,12"
},
B516: {
codeString: "RA8N:0,12;VL4:8,12"
},
B517: {
codeString: "VL4:0,8;HL4:0,12;VL4:4,12"
},
B518: {
codeString: "VL8:0,8;HL4:0,16"
},
B519: {
codeString: "RA8E:0,8;HL4:0,16"
},
B520: {
codeString: "OR84S:0,12;HL2:8,16;B695:10,4;B170:10,0"
},
B521: {
codeString: "HC4S:0,8;HC4W:2,8;B122:4,0",
center: 2
},
B522: {
codeString: "B156;P4S:6,5"
},
B523: {
codeString: "B1140;P4W:9,10"
},
B524: {
codeString: "HL4:0,12;VL4:2,12"
},
B525: {
codeString: "QC4NE:0,4;VL4:4,4;QC4NW:4,4;HC4N:2,8;VL4:2,10;VL4:6,10;HC4S:2,14"
},
B526: {
codeString: "B1086;P4W:13,12"
},
B527: {
codeString: "C4:0,12;HL8:2,12;HL8:2,16"
},
B528: {
codeString: "HW2W:0,13;HW2E:0.5,13"
},
B529: {
codeString: "B180;HL8:1,14"
},
B530: {
codeString: "DL4S:0,8;OR48N:4,8;HC4E:8,10"
},
B531: {
codeString: "B281;P4S:2,14"
},
B532: {
codeString: "B447;B840"
},
B533: {
codeString: "B325;QC4NW:2,12"
},
B534: {
codeString: "B884;B688:10,0;HL6:12,16"
},
B535: {
codeString: "HC4W:0,8;DC4:2,12;HC4E:6,8"
},
B536: {
codeString: "B411;B281"
},
B537: {
codeString: "B338;B528:1.5,0"
},
B538: {
codeString: "B411;P4W:9,6",
center: -1.5
},
B539: {
codeString: "B878;B695"
},
B540: {
codeString: "B559;B270:6,0"
},
B541: {
codeString: "B620;VL8:0,8;HL8:0,16"
},
B542: {
codeString: "OR84N:0,12;DL4N:8,8"
},
B543: {
codeString: "HW2N:1,9.5;VL6:1,10;HL2:0,12;HL3:1,16;HC2E:4,14"
},
B544: {
codeString: "DOT:0,16;DOT:4,12;DOT:4,16"
},
B545: {
codeString: "B289;B105:4,0"
},
B546: {
codeString: "B503;B341:4,0"
},
B547: {
codeString: "B198;LARR4E:8,10",
center: -2
},
B548: {
codeString: "RA8N:0,8"
},
B549: {
codeString: "B1129;P4W:9,16"
},
B550: {
codeString: "HL16:0,16;HL8:8,8;VL8:16,8"
},
B551: {
codeString: "B559;B559:4,0"
},
B552: {
codeString: "AT8N:0,8;DL8-4S:4,8;DL4N:8,12"
},
B553: {
codeString: "B484;B699:3,0"
},
B554: {
codeString: "B335:4,0;B335:0,4"
},
B555: {
codeString: "DL4N:0,12;DLOC4SW:4,8;C4:4,8;SC4:4,8"
},
B556: {
codeString: "B695;B271:2,0"
},
B557: {
codeString: "C2:0,11;C2:2,10;C2:2,12;QC4NE:4,12"
},
B558: {
codeString: "RA8W:0,8"
},
B559: {
codeString: "RA8E:0,8"
},
B560: {
codeString: "B548;B513:6,0;B548:8,0"
},
B561: {
codeString: "COMMA:0,12;COMMA:2,12"
},
B562: {
codeString: "B313;B281"
},
B563: {
codeString: "B428;B145:2,0",
center: 1
},
B564: {
codeString: "B391;QC2SE:14,8",
center: -4
},
B565: {
codeString: "B695:0,4;B357:2,0"
},
B566: {
codeString: "RA8SW:0,8;RA2NE:0,14"
},
B567: {
codeString: "C8:0,8;C4:2,10"
},
B568: {
codeString: "B335;B695:0,4"
},
B569: {
codeString: "B1148;P4S:2,13"
},
B570: {
codeString: "HW4W:0,12;HL4:1,12;HL4:1,16;HW4E:5,12"
},
B571: {
codeString: "B418;B700:0,4;B700:8,4",
center: -2
},
B572: {
codeString: "OS8W:0,8"
},
B573: {
codeString: "B1119;QC4SW:4,16"
},
B574: {
codeString: "VL4:0,8;B239;VL4:8,8"
},
B575: {
codeString: "VL8:0,8;DL4S:0,8;HL4:0,12"
},
B576: {
codeString: "B170;DL4S:4,8"
},
B577: {
codeString: "B265;QC4NE:4,12;QC4NW:8,12"
},
B578: {
codeString: "HL4:0,10;HL4:0,14"
},
B579: {
codeString: "DL1-2N:0,8;RA4SE:4,12;RA4SE:8,8"
},
B580: {
codeString: "B447;B247"
},
B581: {
codeString: "C4:0,12;VL8:4,8;C4:4,12"
},
B582: {
codeString: "VL8:0,8;W8E:2,8;VL8:6,8"
},
B583: {
codeString: "B291;B457:2,0"
},
B584: {
codeString: "B281;DOT:2,18;DOT:6,18"
},
B585: {
codeString: "DL8-4N:0,10;AT4N:2,12"
},
B586: {
codeString: "C4:2,8;C4:0,12;C4:4,12;VL2:4,14;QC4SE:0,16"
},
B587: {
codeString: "OS8S:0,8;HL8:0,12"
},
B588: {
codeString: "B1006;P4W:9,10"
},
B589: {
codeString: "B171;P4S:8,5"
},
B590: {
codeString: "HL4:0,8;VL6:2,8;HL4:0,14;HC4S:0,14"
},
B591: {
codeString: "B572;B556"
},
B592: {
codeString: "B171;P4W:13,10"
},
B593: {
codeString: "B291;P4W:9,10"
},
B594: {
codeString: "B239;B271:2,4"
},
B595: {
codeString: "B239;B695"
},
B596: {
codeString: "B688;QC4SE:8,8"
},
B597: {
codeString: "HL8:0,8"
},
B598: {
codeString: "B1084;OS4S:0,12"
},
B599: {
codeString: "B291;B303:2,0"
},
B600: {
codeString: "B473;B1154:0,2"
},
B601: {
codeString: "HL8:0,16;HC4N:4,14;DL4N:8,12"
},
B602: {
codeString: "HC4N:0,12;HC4S:4,14;HC4N:8,12"
},
B603: {
codeString: "B602;B695:2,6"
},
B604: {
codeString: "B695;VL6:4,8;B622:3,4"
},
B605: {
codeString: "B604;P4W:6,14"
},
B606: {
codeString: "B651:0,2;B651:4,-2"
},
B607: {
codeString: "B548;B106:2,0"
},
B608: {
codeString: "B278;B1154"
},
B609: {
codeString: "B265;B695:4,0"
},
B610: {
codeString: "B636;P4S:2,13"
},
B611: {
codeString: "RA8SW:0,8;DL4N:0,12"
},
B612: {
codeString: "W8S:0,11;HW4N:8,11;HW4S:8,12"
},
B613: {
codeString: "C4:2,10;HC8N:0,12;HW4E:4,12"
},
B614: {
codeString: "DL4N:0,12;DLOC4SW:4,8;C4:4,8"
},
B615: {
codeString: "DL4-8S:0,8;HL4:4,16"
},
B616: {
codeString: "B513;B548:2,0"
},
B617: {
codeString: "B482;B457"
},
B618: {
codeString: "B1119;C8:0,8;C4:2,10"
},
B619: {
codeString: "RA4NW:0,12;RA4NW:4,8"
},
B620: {
codeString: "HL8:0,8;VL4:4,8;HL4:4,12;VL8:8,8"
},
B621: {
codeString: "AT8N:0,8;AT8S:0,10"
},
B622: {
codeString: "VL4:1,10;DC2:0,11"
},
B623: {
codeString: "B695;B678:2,0"
},
B624: {
codeString: "B572;B623"
},
B625: {
codeString: "B325;P4W:3,12"
},
B626: {
codeString: "B393;B455:10,0"
},
B627: {
codeString: "B704;B312:8,0"
},
B628: {
codeString: "B171;P4S:4,10"
},
B629: {
codeString: "RT4SE:0,12"
},
B630: {
codeString: "B291;B319:3,0"
},
B631: {
codeString: "B161;DOT:1,12;DOT:3,12;DOT:2,13"
},
B632: {
codeString: "B1150;P4S:2,13"
},
B633: {
codeString: "DOT:0,8;HL4:2,8;DOT:8,8;VL4:0,10;VL4:8,10;DOT:0,16;HL4:2,16;DOT:8,16"
},
B634: {
codeString: "HL8:0,12"
},
B635: {
codeString: "B1063;B335:4,0"
},
B636: {
codeString: "C8:0,8"
},
B637: {
codeString: "B695:0,4;B1154"
},
B638: {
codeString: "B851;W8W:7,8;DL2S:8,8"
},
B639: {
codeString: "OR84S:0,12"
},
B640: {
codeString: "P4E:0,8;B124:3,0",
center: 2.5
},
B641: {
codeString: "B201:0,-4;HL15:0,12;B700:3,0;B700:7,0;B700:11,0;DL2N:12,9;DL2S:13,10"
},
B642: {
codeString: "B473;B457"
},
B643: {
codeString: "B108;HL4:0,12"
},
B644: {
codeString: "B1121;B1121:4,0"
},
B645: {
codeString: "B927;DOT:2,18"
},
B646: {
codeString: "B270:0,2;B647:1,0",
center: 0.5
},
B647: {
codeString: "DL2N:0,11"
},
B648: {
codeString: "HW4W:0,12"
},
B649: {
codeString: "B270;B270:2,0;RA4W:4,10"
},
B650: {
codeString: "RT4E:0,10"
},
B651: {
codeString: "S4:0,10"
},
B652: {
codeString: "B647;B270:3,-2",
center: -0.5
},
B653: {
codeString: "B335;B428:4,0"
},
B654: {
codeString: "P4E:0,10;B374:3,0"
},
B655: {
codeString: "C8:0,8;RA4SW:4,8"
},
B656: {
codeString: "B700;P4W:5,12"
},
B657: {
codeString: "P4E:0,10;VL4:4,10",
center: -1
},
B658: {
codeString: "B418;P4W:13,14",
center: -3.5
},
B659: {
codeString: "B695:0,4;B212:2,0"
},
B660: {
codeString: "B374;B651:2,0",
center: 1
},
B661: {
codeString: "B291;P4S:2,5"
},
B662: {
codeString: "AT4S:0,12;VL2:2,10"
},
B663: {
codeString: "VL2:2,6;VL2:6,6;S8:0,8;VL2:2,16;VL2:6,16"
},
B664: {
codeString: "B827;HL4:8,12;B700:8,0;DL2N:9,9;DL2S:10,10"
},
B665: {
codeString: "RA2NE:0,14;HL8:2,16;RA2NW:10,14"
},
B666: {
codeString: "QC4SE:0,8;VL8:4,8;QC4SW:4,8"
},
B667: {
codeString: "B281;B700:2,0"
},
B668: {
codeString: "B188;OS4S:0,8"
},
B669: {
codeString: "B666;P4W:5,12"
},
B670: {
codeString: "B447;B1048"
},
B671: {
codeString: "B281;C4:2,16;B416:2,0"
},
B672: {
codeString: "B122;HC8N:0,8;DL4N:8,8",
center: -2
},
B673: {
codeString: "B447;B502:2,0"
},
B674: {
codeString: "B548;VL6:4,8;HC4S:4,14"
},
B675: {
codeString: "B607;B11:7,0;B500:8,0"
},
B676: {
codeString: "B634;B270:4,2"
},
B677: {
codeString: "VL4:2,10;P4E:0,10"
},
B678: {
codeString: "LARR8N:0,8"
},
B679: {
codeString: "DL8S:0,8;RA4NW:0,8"
},
B680: {
codeString: "DL8N:0,8;RA4NE:4,8"
},
B681: {
codeString: "B171;B314:4,-2"
},
B682: {
codeString: "HW8W:0,8;HL8:2,8;HL2:2,16;HL2:8,16;HW8E:10,8;B314:4,-2;P4N:4,16"
},
B683: {
codeString: "B1144;P4S:10,13"
},
B684: {
codeString: "C4:2,12;B1119"
},
B685: {
codeString: "QC4NW:4,12;B281;C4:2,16"
},
B686: {
codeString: "B685;HW4W:3,16;HW4E:4,16"
},
B687: {
codeString: "HC4N:2,8;VL4:2,10;VL4:6,10;HC4S:2,14;B1119"
},
B688: {
codeString: "HL8:0,12;B700;B700:4,0"
},
B689: {
codeString: "DL4S:0,8;B688:4,0"
},
B690: {
codeString: "B171:3,0;P4E:0,10;P4W:16,10"
},
B691: {
codeString: "B572;P4W:9,10"
},
B692: {
codeString: "DC2:0,8;VL8:1,8"
},
B693: {
codeString: "B411;DL4N:8,12;DL8S:4,8"
},
B694: {
codeString: "B939;B651:2,0"
},
B695: {
codeString: "W8N:0,11"
},
B696: {
codeString: "B636;B556"
},
B697: {
codeString: "HL8:0,12;AT4N:2,12"
},
B698: {
codeString: "B636;P4W:1,10"
},
B699: {
codeString: "OC2SW:0,10;VL1:1,12;DOT:1,14"
},
B700: {
codeString: "C4:0,12;DLIC4N:0,12;DLIC4S:0,12"
},
B701: {
codeString: "B212;B700"
},
B702: {
codeString: "B281;B561:3,0"
},
B703: {
codeString: "B281;B699:3,0"
},
B704: {
codeString: "B548;B710:6,0"
},
B705: {
codeString: "B114;B335:4,0",
center: -2
},
B706: {
codeString: "B291;SC8:0,8"
},
B707: {
codeString: "B291;VL8:2,8;VL8:6,8;HL8:0,10;HL8:0,14"
},
B708: {
codeString: "QC4NE:0,8;QC4NW:4,8"
},
B709: {
codeString: "B120:0,-4"
},
B710: {
codeString: "VL4:2,8;B314"
},
B711: {
codeString: "B106;B106:0,-4"
},
B712: {
codeString: "B597;B281"
},
B713: {
codeString: "HL12:0,16;B602:0,4"
},
B714: {
codeString: "B132;P4W:1,6"
},
B715: {
codeString: "B1135;P4S:10,13"
},
B716: {
codeString: "LARRC8EC:0,8",
center: -1
},
B717: {
codeString: "AA4S:0,8;HL4:0,12;HL4:0,14;VL4:2,12"
},
B718: {
codeString: "B132;HC4N:0,10"
},
B719: {
codeString: "B377;B106"
},
B720: {
codeString: "VL8:4,8;DL4N:0,8;HL4:0,12"
},
B721: {
codeString: "B170;DL4N:0,8"
},
B722: {
codeString: "B695;B617:2,0"
},
B723: {
codeString: "B678;B271:4,0"
},
B724: {
codeString: "VL8:0,8;HW4N:0,7;HW4S:0,8;HW4S:0,16;VL8:4,8"
},
B725: {
codeString: "B313;B355"
},
B726: {
codeString: "B313;B247"
},
B727: {
codeString: "B313;B733"
},
B728: {
codeString: "B513;B737:0,-2"
},
B729: {
codeString: "B708;B513:2,0"
},
B730: {
codeString: "B246;B622:5,0"
},
B731: {
codeString: "HC2W:0,14;HL8:1,14;HL8:1,16;HC2E:9,14"
},
B732: {
codeString: "B570;HL6:0,14"
},
B733: {
codeString: "B447:0,-4;B247"
},
B734: {
codeString: "P4W:0,10;B355:3,0;P4E:12,10"
},
B735: {
codeString: "B313;B894:2,0"
},
B736: {
codeString: "B803;B513:2,0"
},
B737: {
codeString: "HC4S:0,8"
},
B738: {
codeString: "HW4W:0,8;HW4E:3,8"
},
B739: {
codeString: "B500;B548:8,0"
},
B740: {
codeString: "B455;B548:8,0"
},
B741: {
codeString: "B312;B548:8,0"
},
B742: {
codeString: "B739;B622:11,0"
},
B743: {
codeString: "B712;B303:2,0"
},
B744: {
codeString: "HL12:0,10;VL6:0,10;VL2:10,12;HL8:2,14;VL6:12,10;HL12:0,16"
},
B745: {
codeString: "W8E:0,8;W8W:6,8;HL6:1,16"
},
B746: {
codeString: "B412;B699:3,0"
},
B747: {
codeString: "RT8S:0,8;VL4:4,12;HL8:0,16"
},
B748: {
codeString: "C8:0,8;B894:2,0"
},
B749: {
codeString: "HL4:0,11;HL4:0,13;HC4N:2,8;VL4:2,10;HC4S:2,14"
},
B750: {
codeString: "B467;HL4:8,16;DL4-8S:6,8"
},
B751: {
codeString: "B447;B106:2,0"
},
B752: {
codeString: "HC8N:0,8;HL12:0,12"
},
B753: {
codeString: "B167;B457:2,0"
},
B754: {
codeString: "HW8N:0,12;HL8:0,14;HW8S:0,14"
},
B755: {
codeString: "HL4:0,8;VL8:0,8;VL8:2,8;VL8:4,8"
},
B756: {
codeString: "B731:0,-4;B700:1,0;B700:5,0"
},
B757: {
codeString: "B518:2,0;B700"
},
B758: {
codeString: "B292;B335:8,0"
},
B759: {
codeString: "C4:0,10;C4:3,10;C4:6,10"
},
B760: {
codeString: "HC8E:0,8;LARR8E:0,10"
},
B761: {
codeString: "B695:0,4;P4S:0,12"
},
B762: {
codeString: "B720;P4W:5,12"
},
B763: {
codeString: "B720:1,0;P4N:0,13"
},
B764: {
codeString: "B170;P4S:5,9"
},
B765: {
codeString: "B170;P4W:9,10"
},
B766: {
codeString: "P4E:0,10;B170:3,0"
},
B767: {
codeString: "B170;P4N:2,17"
},
B768: {
codeString: "B170;P4N:2,13"
},
B769: {
codeString: "B170;VL4:0,12"
},
B770: {
codeString: "B695:0,4;DL4N:1,12;DL4N:3,14;DL2S:1,16;DL2S:5,12;DL5N:6,8"
},
B771: {
codeString: "B695:0,4;DL4N:1,12;DL4N:3,14;DL2S:1,16;DL2S:5,12;DL2N:6,11;DL4N:7,6;DL4N:9,8;DL2S:7,10;DL2S:11,6"
},
B772: {
codeString: "B170;RA4NW:0,8"
},
B773: {
codeString: "HC8N:0,4;B1040"
},
B774: {
codeString: "C8:0,4;OR42N:2,12"
},
B775: {
codeString: "B392;B270:4,0"
},
B776: {
codeString: "B265;HC8N:4,12"
},
B777: {
codeString: "DOT:0,10;DOT:0,14;DOT:4,10;DOT:4,14"
},
B778: {
codeString: "S4:0,8;VL4:2,12"
},
B779: {
codeString: "HC4N:0,8;VL4:0,10;VL4:4,10;HL4:0,14;VL2:2,14"
},
B780: {
codeString: "B395;P4W:4,8"
},
B781: {
codeString: "R84:0,10;RA4E:0,10;RA4W:6,10"
},
B782: {
codeString: "RT4E:0,10;S4:2,10;RT4W:6,10"
},
B783: {
codeString: "LARRHC8NC:0,8;LARRHC8SC:2,12",
center: -2
},
B784: {
codeString: "B450;B428:4,0"
},
B785: {
codeString: "ARR4NW:0,8;ARR4SW:0,12;B428:4,0"
},
B786: {
codeString: "B374;B457:2,0"
},
B787: {
codeString: "DL4S:0,8;DL4N:5,8;VL4:4,12;VL4:5,12"
},
B788: {
codeString: "B630;P4S:2,5"
},
B789: {
codeString: "OS4N:0,12;HC4E:4,12",
center: -1
},
B790: {
codeString: "OS4N:0,12;DL4N:4,8"
},
B791: {
codeString: "HL8:0,10;HC4N:2,8"
},
B792: {
codeString: "HC4W:0,8;OS8N:2,8;HC4E:10,8"
},
B793: {
codeString: "HL2:0,14;R84:2,12;HL2:10,14"
},
B794: {
codeString: "B280;P4W:8,7"
},
B795: {
codeString: "B280;P4W:9,14"
},
B796: {
codeString: "B280:3,0;P4E:0,6"
},
B797: {
codeString: "B695:0,4;B456:8,0"
},
B798: {
codeString: "OR84N:0,8;RA4S:0,8;RA4S:4,8"
},
B799: {
codeString: "B281;B695:8,4;B281:16,0"
},
B800: {
codeString: "HL12:0,12;C8:2,8"
},
B801: {
codeString: "HW8W:0,8;HW8E:4,8"
},
B802: {
codeString: "B447;B699:3,0"
},
B803: {
codeString: "B447;LARR4E:8,10",
center: -2
},
B804: {
codeString: "B377;B447"
},
B805: {
codeString: "B1130;P4W:8,8"
},
B806: {
codeString: "B1131;P4W:9,15"
},
B807: {
codeString: "B321;QC2SW:8,12"
},
B808: {
codeString: "B1134;P4W:9,13"
},
B809: {
codeString: "B1133;P4W:9,15",
center: -1.5
},
B810: {
codeString: "B123;QC2SW:8,12",
center: -1
},
B811: {
codeString: "B566;P4N:2,17"
},
B812: {
codeString: "B851;VL2:0,16;VL2:4,16;VL2:8,16"
},
B813: {
codeString: "B447;HL4:2,12;AT4N:2,12"
},
B814: {
codeString: "R84:0,10;VL4:4,10"
},
B815: {
codeString: "B291;B723"
},
B816: {
codeString: "B817;B548:8,0;HL8:8,16;VL8:12,8;VL4:16,12"
},
B817: {
codeString: "B392;VL8:4,8"
},
B818: {
codeString: "B321;VL4:0,8;VL4:8,8"
},
B819: {
codeString: "B550;B191:8,0"
},
B820: {
codeString: "B803;B451:2,0"
},
B821: {
codeString: "OR48N:0,8;RA4N:0,6"
},
B822: {
codeString: "B566:3,0;P4E:0,10",
center: 1.5
},
B823: {
codeString: "B428;B120:2,0;B428:8,0"
},
B824: {
codeString: "R84:0,10"
},
B825: {
codeString: "RA4N:0,6;VL8:0,8;HL16:0,16;VL4:4,8;RA8N:4,8;VL4:12,8;RA4N:12,6;VL8:16,8"
},
B826: {
codeString: "B447;B206:4,0"
},
B827: {
codeString: "C8:0,8;DLIC8N:0,8;DLIC8S:0,8"
},
B828: {
codeString: "B447;B829:3,0"
},
B829: {
codeString: "VL2:1,10;C2:0,13"
},
B830: {
codeString: "HL12:0,12;AA4N:4,12;AA4N:8,12;VL4:12,8;HL2:12,8",
center: 1
},
B831: {
codeString: "LARR8W:0,10;VL4:8,8"
},
B832: {
codeString: "B239;B829:3,0"
},
B833: {
codeString: "HC4N:0,10;R84:0,12"
},
B834: {
codeString: "B122;B845"
},
B835: {
codeString: "B447;B678:2,0"
},
B836: {
codeString: "LARRHC8NC:0,12",
center: -1
},
B837: {
codeString: "B945;B433:2,0"
},
B838: {
codeString: "B945;B513:2,0"
},
B839: {
codeString: "B945;B710:2,0"
},
B840: {
codeString: "RT8N:0,12"
},
B841: {
codeString: "B412;B270:4,0"
},
B842: {
codeString: "HC4N:0,8;VL4:0,10;VL4:4,10;HC4S:0,14"
},
B843: {
codeString: "B265;HL8:4,14"
},
B844: {
codeString: "HL8:0,12;DL4S:0,12"
},
B845: {
codeString: "DL2S:0,10;DL2S:2,10;DL2S:4,10"
},
B846: {
codeString: "DL8-4N:0,12;HL4:8,12"
},
B847: {
codeString: "B695:0,4;B366:4,0"
},
B848: {
codeString: "B639;P4S:2,9"
},
B849: {
codeString: "HL8:0,12;VL4:2,12;VL4:6,12;HL8:0,16"
},
B850: {
codeString: "B391;DL2N:13,7",
center: -3.5
},
B851: {
codeString: "HC8N:0,12;B695:0,4"
},
B852: {
codeString: "B871;P4W:5,8"
},
B853: {
codeString: "B871;P4W:5,14"
},
B854: {
codeString: "HC8N:0,12"
},
B855: {
codeString: "B856;P4W:9,12"
},
B856: {
codeString: "VL8:4,8;HW8N:0,12;HL8:0,14"
},
B857: {
codeString: "VL6:2,8;VL8:4,8;VL6:6,8;HC4S:2,14;B281;C4:2,16"
},
B858: {
codeString: "DOT:0,8;DOT:0,12;DOT:0,16;DOT:4,10;DOT:4,14;DOT:8,10;DOT:8,14;B695:6,0"
},
B859: {
codeString: "OR84S:0,12;HC8S:0,12"
},
B860: {
codeString: "B695;B939"
},
B861: {
codeString: "B866;DOT:2,10;DOT:2,12"
},
B862: {
codeString: "B527;DOT:6,14;DOT:8,14"
},
B863: {
codeString: "B114;B695:2,0",
center: -1
},
B864: {
codeString: "R84:0,10;VL4:2,10;VL4:4,10;VL4:6,10"
},
B865: {
codeString: "B651;B462:2,0"
},
B866: {
codeString: "VL8:0,8;VL8:4,8;C4:0,14"
},
B867: {
codeString: "HL4:0,8;B866"
},
B868: {
codeString: "B871;P4W:5,10"
},
B869: {
codeString: "QC4NW:0,12;HL2:4,12;QC4NW:2,12;HL2:0,16"
},
B870: {
codeString: "B871;P4W:5,6"
},
B871: {
codeString: "HL4:0,8;HL4:0,10;HL4:0,12;HL4:0,14;HL4:0,16"
},
B872: {
codeString: "VL8:0,8;P4W:1,8"
},
B873: {
codeString: "B856;P4W:5,8"
},
B874: {
codeString: "B871;P4W:5,12"
},
B875: {
codeString: "B573;VL8:4,8"
},
B876: {
codeString: "B736;LARR4W:14,10"
},
B877: {
codeString: "B597;B423;B281"
},
B878: {
codeString: "OR84N:0,12"
},
B879: {
codeString: "B391;P4W:9,14",
center: -3
},
B880: {
codeString: "HC8W:0,8;HC4E:4,8;HC4E:4,12"
},
B881: {
codeString: "B391;P4W:15,8",
center: -4.5
},
B882: {
codeString: "B1128;P4W:7,10"
},
B883: {
codeString: "P4W:0,10;B513:3,0;P4E:8,10"
},
B884: {
codeString: "OR84S:0,12;HL4:8,16"
},
B885: {
codeString: "B803;B457:2,0"
},
B886: {
codeString: "B238;B2115:4,0"
},
B887: {
codeString: "LARROC8NWC:0,8",
center: 1
},
B888: {
codeString: "B887;B281:2,0"
},
B889: {
codeString: "B1136;P4S:10,13"
},
B890: {
codeString: "B695;HW4N:4,11"
},
B891: {
codeString: "VL4:0,10;HL4:0,12"
},
B892: {
codeString: "HL12:0,12;B700;B700:4,0;B700:8,0"
},
B893: {
codeString: "B271:2,0;B281"
},
B894: {
codeString: "C4:0,10;VL4:2,10"
},
B895: {
codeString: "B635;VL8:12,8"
},
B896: {
codeString: "C8:0,8;B622:3,0"
},
B897: {
codeString: "B447;B516"
},
B898: {
codeString: "B438;DOT:2,12"
},
B899: {
codeString: "R48:0,8;HL4:0,12"
},
B900: {
codeString: "B280;P2SW:5,10"
},
B901: {
codeString: "B291;B829:3,0"
},
B902: {
codeString: "B86;B81:2,0",
isIndicator: true
},
B903: {
codeString: "HL2:0,5",
isIndicator: true
},
B904: {
codeString: "DL2N:0,4",
isIndicator: true
},
B905: {
codeString: "AT2N:0,4",
isIndicator: true
},
B906: {
codeString: "VL2:0.5,4;HL1:0,6;DL.5N:0,4",
isIndicator: true,
width: 1
},
B907: {
codeString: "VL1.25:0,4;DOT:0,6",
isIndicator: true
},
B908: {
codeString: "DL2S:0,4",
isIndicator: true
},
B909: {
codeString: "VL2:0,4",
isIndicator: true
},
B910: {
codeString: "P2E:0,4;VL2:2,4",
isIndicator: true
},
B911: {
codeString: "B92;B86:1,0",
isIndicator: true,
width: 3
},
B912: {
codeString: "B92;B270:1,-8",
isIndicator: true,
width: 1
},
B913: {
codeString: "SC2:0,4",
isIndicator: true
},
B914: {
codeString: "B928;B86:3,0",
isIndicator: true,
width: 5
},
B915: {
codeString: "HC1N:0,4;DL1-1.5N:0,4.5;HL1:0,6",
isIndicator: true
},
B916: {
codeString: "OC1SW:0,4;OC1NW:0,5",
isIndicator: true
},
B917: {
codeString: "B239;LARR4E:8,10",
center: -2
},
B918: {
codeString: "B239;HC2E:8,12"
},
B919: {
codeString: "QC4SW:0,12"
},
B920: {
codeString: "B239;B271:2,0"
},
B921: {
codeString: "HL8:0,12;C4:2,10"
},
B922: {
codeString: "HW2E:0,11;HW4E:1,10;HW8E:1,8"
},
B923: {
codeString: "P4S:0,9;B619:1,0"
},
B924: {
codeString: "B695;B325:2,0"
},
B925: {
codeString: "C2:0,8;C8:1,8;C2:8,8;DOT:3,12;DOT:7,12;DOT:5,14"
},
B926: {
codeString: "LARRHC8NCC:0,12",
center: 1
},
B927: {
codeString: "B936;HL4:0,12"
},
B928: {
codeString: "B92;B87:1.5,0",
isIndicator: true
},
B929: {
codeString: "B335;B651:8,0",
center: 4
},
B930: {
codeString: "B447;B319:3,0"
},
B931: {
codeString: "B447;B303:2,0"
},
B932: {
codeString: "B447;B660"
},
B933: {
codeString: "HL4:0,12;DL4S:4,12"
},
B934: {
codeString: "DC8:0,8;VL4:0,12;VL4:8,12"
},
B935: {
codeString: "B335;B392:4,0",
center: 2
},
B936: {
codeString: "HL4:0,8;VL8:2,8;HL4:0,16"
},
B937: {
codeString: "B368:0,-4;HL4:0,12"
},
B938: {
codeString: "B447;B2115:4,0"
},
B939: {
codeString: "DL8N:0,8"
},
B940: {
codeString: "B335;VL2:8,8;VL2:8,14"
},
B941: {
codeString: "LARR4W:0,10;LARR4N:4,6;LARR4S:4,14;LARR4E:8,10"
},
B942: {
codeString: "C4:0,12;HC8N:2,8;C4:8,12"
},
B943: {
codeString: "B335;VL2:4,8;VL2:4,14"
},
B944: {
codeString: "B239;LARRHC8NC:4,10",
center: -3
},
B945: {
codeString: "B597;B894:2,-6"
},
B946: {
codeString: "VL4:0,10;VL4:8,10"
},
B947: {
codeString: "B239;HL8:0,12"
},
B948: {
codeString: "B412;B335:4,0",
center: -2
},
B949: {
codeString: "B239;B678:2,0"
},
B950: {
codeString: "S8:0,8;VL8:2,8;VL8:4,8;VL8:6,8;HL8:0,10;HL8:0,12;HL8:0,14"
},
B951: {
codeString: "B10:0,-4;DL4-8N:2,8;B11:6,0"
},
B952: {
codeString: "HL4:0,8;HL4:0,16"
},
B953: {
codeString: "HL4:0,16;B120:0,2"
},
B954: {
codeString: "B447;B401:3,0;B401:5,0"
},
B955: {
codeString: "B447;B401:4,0"
},
B956: {
codeString: "HL4:0,12;VL4:2,12;HL4:0,16"
},
B957: {
codeString: "HL4:0,12;HL4:0,16"
},
B958: {
codeString: "W8W:0,8;VL8:1,8"
},
B959: {
codeString: "B281;B107"
},
B960: {
codeString: "B447;B653"
},
B961: {
codeString: "B803;LARR4E:8,14",
center: -2
},
B962: {
codeString: "B10:0,-4;DL4-8N:2,8;B13:6,0"
},
B963: {
codeString: "B428;B428:4,0"
},
B964: {
codeString: "B447;B10:1,0;VL8:4,8"
},
B965: {
codeString: "VL4:0,10;HL4:0,12;VL4:4,10"
},
B966: {
codeString: "B695;DOT:6,10;DOT:6,14;DOT:10,10;DOT:10,14;DOT:14,8;DOT:14,12;DOT:14,16"
},
B967: {
codeString: "B377;HC4N:0,10"
},
B968: {
codeString: "HL4:0,8;B368:0,-4"
},
B969: {
codeString: "B484;B303:2,0"
},
B970: {
codeString: "B313;B457:2,0"
},
B971: {
codeString: "B411;B457:2,0"
},
B973: {
codeString: "B651;LARR4S:0,14"
},
B974: {
codeString: "B700;B1154"
},
B975: {
codeString: "B291;B313"
},
B976: {
codeString: "B145;B291:4,0"
},
B977: {
codeString: "B291;B678:2,-4"
},
B978: {
codeString: "B163;HC2N:1,13;HC2N:5,13"
},
B979: {
codeString: "P4W:0,10;B288:3,0;P4E:8,10"
},
B980: {
codeString: "B651;P4W:5,10"
},
B981: {
codeString: "P4W:0,10;B982:3,0;P4E:12,10"
},
B982: {
codeString: "B814;HW2N:3,8.5;HW4N:2,7;HW2S:3,15;HW4S:2,16"
},
B983: {
codeString: "DL8-4N:0,8;DL8-4S:0,8;VL2:4,10"
},
B984: {
codeString: "P4E:0,10;B651:3,0"
},
B985: {
codeString: "B447;B894:2,0"
},
B986: {
codeString: "P4S:0,7;B651"
},
B987: {
codeString: "B428;B288:2,0;B428:8,0"
},
B988: {
codeString: "RA4SW:0,12;DL8N:0,8;RA4NE:4,8"
},
B989: {
codeString: "LARRHC8SCC:2,12;P4N:0,12"
},
B990: {
codeString: "B651;P4N:0,15"
},
B991: {
codeString: "B447;B288:2,0"
},
B992: {
codeString: "HL2:0,4;VL2:1,4;HL2:0,6",
isIndicator: true
},
B993: {
codeString: "HW8W:0,8;HL4:2,8;HL4:2,16;HW8E:6,8;DOT:4,12"
},
B994: {
codeString: "B270;B1028:2,0",
center: 1
},
B995: {
codeString: "W8E:0,4;B122:1,0",
center: 0.5
},
B996: {
codeString: "VL4:0,10;DOT:2,16;DOT:4,16;DOT:6,16;P4E:8,10"
},
B997: {
codeString: "B238;B449:2,0"
},
B998: {
codeString: "B148:2,0;B281"
},
B999: {
codeString: "B216;C8:4,8"
},
B1000: {
codeString: "B939;B303:1,0",
center: -1
},
B1001: {
codeString: "B153;B335:4,0"
},
B1002: {
codeString: "B172;HL4:2,16;DOT:8,16"
},
B1003: {
codeString: "B174;P4W:3,6"
},
B1004: {
codeString: "P4S:3,9;B180;P4N:3,17"
},
B1005: {
codeString: "P4E:0,10;B518:3,0;P4W:4,10"
},
B1006: {
codeString: "B291;B651:2,0"
},
B1007: {
codeString: "P4W:0,10;B394:2,0;P4E:10,10"
},
B1008: {
codeString: "B335;B651:8,0;B145:12,0"
},
B1009: {
codeString: "B239:0,-4"
},
B1010: {
codeString: "B239:0,4"
},
B1011: {
codeString: "B1094;P4W:9,10"
},
B1012: {
codeString: "B447;B120:2,0"
},
B1013: {
codeString: "B447;B449:2,0"
},
B1014: {
codeString: "B710;B710:4,0"
},
B1015: {
codeString: "B433;B433:4,0"
},
B1016: {
codeString: "C4:0,8;DLOC4SE:0,8;SC4:0,8;DL4S:4,12;B555:4,0"
},
B1017: {
codeString: "B278:2,0;B939"
},
B1018: {
codeString: "B153;B145:4,0"
},
B1019: {
codeString: "B335;B1063:8,0"
},
B1020: {
codeString: "VL8:0,8;P4S:0,14;VL8:4,8"
},
B1021: {
codeString: "B236;B939:6,0"
},
B1022: {
codeString: "B428;B449:2,0;B428:8,0"
},
B1023: {
codeString: "DL2-4N:0,8;DL2-4S:2,8;DL2-4S:0,12;DL2-4N:2,12"
},
B1024: {
codeString: "B590:2,0;B281"
},
B1025: {
codeString: "VL8:0,8;B829:3,0;VL8:8,8"
},
B1026: {
codeString: "B712;B829:3,0"
},
B1027: {
codeString: "B505;B939"
},
B1028: {
codeString: "AA4S:0,12"
},
B1029: {
codeString: "B920;P4N:2,8"
},
B1030: {
codeString: "B319:3,0;B939"
},
B1031: {
codeString: "P4S:0,7;B303;P4N:0,15"
},
B1032: {
codeString: "B303;P4N:0,15"
},
B1033: {
codeString: "VL4:0,10;DOT:2,16;DOT:4,16;DOT:6,16;VL4:8,10"
},
B1034: {
codeString: "P4E:0,10;B428:2,0;DOT:4,16;DOT:6,16;DOT:8,16;B428:10,0;P4W:10,10"
},
B1035: {
codeString: "P4E:0,10;B428:2,0;B428:10,0;P4W:10,10"
},
B1036: {
codeString: "B695:0,4;B239"
},
B1037: {
codeString: "B325;P4W:5,8"
},
B1038: {
codeString: "B428;LARRQC4NEC:0,12;B634:0,4"
},
B1039: {
codeString: "B695;B651:6,0"
},
B1040: {
codeString: "B597;B271:2,0"
},
B1041: {
codeString: "QC4NW:2,8;AT4S:0,12"
},
B1042: {
codeString: "B341;B699:2,0"
},
B1043: {
codeString: "B238;B120:2,0"
},
B1044: {
codeString: "B281;B651:2,4"
},
B1045: {
codeString: "B391;P4E:7,7",
center: -3
},
B1046: {
codeString: "P4E:0,10;B391:3,0",
center: -1.5
},
B1047: {
codeString: "B399;P4W:17,10",
center: -1.5
},
B1048: {
codeString: "B247;B699:3,1"
},
B1049: {
codeString: "VL4:0,12;HC8S:0,12;VL4:8,12"
},
B1050: {
codeString: "B548;B341:2,0;B699:3,0"
},
B1051: {
codeString: "HL4:0,8;VL8:4,8"
},
B1052: {
codeString: "B418;P4W:7,10;P4S:10,13",
center: -3
},
B1053: {
codeString: "B428;DOT:2,16;DOT:4,16;DOT:6,16;B428:8,0"
},
B1054: {
codeString: "B1127;P4W:9,4"
},
B1055: {
codeString: "B335;B329:8,0;B145:12,0"
},
B1056: {
codeString: "C8:0,8;DOT:2,12;DOT:6,12;HW4N:0,11;HW4S:0,12;HW4N:4,11;HW4S:4,12"
},
B1057: {
codeString: "B335;B145:10,0"
},
B1058: {
codeString: "B1057:0,-2;B1066:0,2"
},
B1059: {
codeString: "B444:2,0;B708"
},
B1060: {
codeString: "VL4:0,10;VL4:4,10"
},
B1061: {
codeString: "B423;B335:4,0",
center: -2
},
B1062: {
codeString: "B457:2,0;B939"
},
B1063: {
codeString: "B145:0,-4;B145:0,4"
},
B1064: {
codeString: "B171;B678:4,-4"
},
B1065: {
codeString: "B392;B270:10,0",
center: -1
},
B1066: {
codeString: "B145;B335:10,0"
},
B1067: {
codeString: "HC8N:0,4;B960"
},
B1068: {
codeString: "C8:0,8;DLIC8N:0,8;DLIC8S:0,8;VL8:4,8"
},
B1069: {
codeString: "B449:0,-2;B120:0,2"
},
B1070: {
codeString: "B120:0,2"
},
B1071: {
codeString: "B548;B695:0,4"
},
B1072: {
codeString: "B548;P4W:9,10",
center: -1.5
},
B1073: {
codeString: "B651;LARR4E:4,10",
center: -2
},
B1075: {
codeString: "C8:0,8;DOT:4,12"
},
B1076: {
codeString: "B784;B447"
},
B1077: {
codeString: "B517;B335:0,4"
},
B1078: {
codeString: "HL4:0,8;VL8:0,8"
},
B1079: {
codeString: "B392;B939"
},
B1080: {
codeString: "VL4:0,12;P4S:0,14;VL4:4,12"
},
B1081: {
codeString: "VL4:0,12;HL4:0,16;VL4:2,12;VL4:4,12"
},
B1082: {
codeString: "B708;B148:2,0"
},
B1083: {
codeString: "B517;B1084"
},
B1084: {
codeString: "HL8:0,16;QC4SE:8,12"
},
B1085: {
codeString: "B457:0,2;HL8:2,16;B319:9,0"
},
B1086: {
codeString: "B457:0,2;HL10:2,16;VL4:8,12;B319:9,0;VL4:12,12"
},
B1087: {
codeString: "HW8W:0,8;VL12:2,8;HL4:0,12;HW8E:2,8"
},
B1088: {
codeString: "AA4N:0,8;B651:0,2"
},
B1089: {
codeString: "B612;B939:6,0"
},
B1090: {
codeString: "OC4NE:0,8;OC4NE:2,10;OC4NE:4,12"
},
B1091: {
codeString: "B457;LARRQC4NEC:4,12",
center: -3
},
B1092: {
codeString: "B615;B148:6,0"
},
B1093: {
codeString: "B615;B263:6,0"
},
B1094: {
codeString: "DS8:0,8"
},
B1095: {
codeString: "B651;B695:2,0"
},
B1096: {
codeString: "P4E:0,10;B428:2,0;B428:6,0;P4W:6,10"
},
B1097: {
codeString: "B695:0,-4;B695;B695:0,4"
},
B1098: {
codeString: "B291:0,-4;B700;B700:4,0"
},
B1099: {
codeString: "B651:0,-2;B700"
},
B1100: {
codeString: "B666;B939"
},
B1101: {
codeString: "LARRHC8EC:0,8"
},
B1102: {
codeString: "B676:0,4"
},
B1103: {
codeString: "B335;B412:4,0",
center: 2
},
B1104: {
codeString: "B428;LARRQC4NECC:0,10;B634:0,4"
},
B1105: {
codeString: "S8:0,8;DC8:0,8;SC8:0,8"
},
B1106: {
codeString: "QC4NW:0,12;QC4SE:0,12;B127:4,0",
center: 2
},
B1107: {
codeString: "B281;B695"
},
B1108: {
codeString: "B428;P4W:0,10;P4E:6,10;B428:8,0"
},
B1109: {
codeString: "B239;DL4N:8,8"
},
B1110: {
codeString: "B710;P4W:4,12"
},
B1111: {
codeString: "B430;P4W:9,8"
},
B1112: {
codeString: "B710;B548:2,0;B710:8,0"
},
B1113: {
codeString: "B433;B548:2,0;B433:8,0"
},
B1114: {
codeString: "B1112;B622:5,0"
},
B1115: {
codeString: "B1113;B622:5,0"
},
B1116: {
codeString: "HL4:0,10;HL4:0,12;HL4:0,14"
},
B1117: {
codeString: "B695:0,4"
},
B1118: {
codeString: "B423;B281"
},
B1119: {
codeString: "B281;QC4SE:0,16"
},
B1120: {
codeString: "B616;B500:10,0"
},
B1121: {
codeString: "AT4S:0,12"
},
B1122: {
codeString: "QC4NW:0,12;QC4SE:4,8"
},
B1123: {
codeString: "B291;B145:4,0",
center: -2
},
B1124: {
codeString: "B291;B271:2,-4"
},
B1125: {
codeString: "B291;B678:2,4"
},
B1126: {
codeString: "DL2S:0,8;DL2N:0,10;DL2S:0,12;DL2N:0,14"
},
B1127: {
codeString: "B171;B371:3.5,-4"
},
B1128: {
codeString: "B171;DOT:6,12"
},
B1129: {
codeString: "B171;B371:3.5,6"
},
B1130: {
codeString: "B392;HL8:0,12"
},
B1131: {
codeString: "B392;VL2:0,16;HL8:0,18;VL2:8,16"
},
B1132: {
codeString: "B392;VL4:8,8"
},
B1133: {
codeString: "B392;VL2:0,16;VL2:8,16"
},
B1134: {
codeString: "B392;HL8:0,14"
},
B1135: {
codeString: "B392;HL8:8,16;VL4:16,12"
},
B1136: {
codeString: "B392;B281:8,0;B392:16,0"
},
B1137: {
codeString: "B325:2,0;B483"
},
B1138: {
codeString: "B303;HL4:0,8"
},
B1139: {
codeString: "B306;B371:1.5,6"
},
B1140: {
codeString: "B306;DOT:7,12"
},
B1141: {
codeString: "B371:1.5,0;B122"
},
B1142: {
codeString: "B376;VL2:3,16;VL2:5,16"
},
B1143: {
codeString: "B376;B371:1.5,-4"
},
B1144: {
codeString: "RT8SW:0,8;B281:8,0;B456:16,0"
},
B1145: {
codeString: "B171;B271:4,4"
},
B1146: {
codeString: "P4S:0,10"
},
B1147: {
codeString: "RA2S:0,11"
},
B1148: {
codeString: "HL16:0,16;B202:8,0"
},
B1149: {
codeString: "B202;P4W:8,7",
center: -1
},
B1150: {
codeString: "B281;B392:8,0"
},
B1151: {
codeString: "B10:0,-4;DL4-8N:2,8;B12:6,0"
},
B1152: {
codeString: "B11:0,-4;DL4-8N:2,8;B12:6,0"
},
B1153: {
codeString: "B12:0,-4;DL4-8N:2,8;B13:6,0"
},
B1154: {
codeString: "HL4:0,16"
},
B1155: {
codeString: "B859;P4S:2,9"
},
B1156: {
codeString: "B636;P3NE:3,10"
},
B1157: {
codeString: "B636;P3NW:2,10"
},
B1158: {
codeString: "B636;P3SE:3,11"
},
B1159: {
codeString: "B636;P3SW:2,11"
},
B1160: {
codeString: "B376;P4S:2,5"
},
B1161: {
codeString: "B303;B1154"
},
B1162: {
codeString: "HL4:0,12;VL4:4,12;B335:4,0",
center: -2
},
B1163: {
codeString: "LARR4W:0,10;LARR4E:4,10"
},
B1218: {
codeString: "B335;B428:10,0",
center: -1
},
B1470: {
codeString: "B513;B513:6,0"
},
B1525: {
codeString: "B428;B335:2,0",
center: 1
},
B1999: {
codeString: "VL2:2,6;R48:0,8;VL2:2,16"
},
B2115: {
codeString: "VL8:0,8;B11:2,0"
},
B2343: {
codeString: "B10;VL8:4,8"
},
B5061: {
codeString: "B335;B335:10,0"
},
B5640: {
codeString: "B335;B940:10,0"
},
B5836: {
codeString: "B428;B109:2,0"
},
B5837: {
codeString: "HC4N:0,8"
},
B5838: {
codeString: "B5840:0,-1;B5840:0,3;B5840:4,-1;B5840:4,3"
},
B5839: {
codeString: "B171;P4S:6,13"
},
B5840: {
codeString: "C2:0,11"
},
B5841: {
codeString: "B572;B191"
},
B5842: {
codeString: "B629;B366:4,0"
},
B5843: {
codeString: "B5844;VL6:3,8"
},
B5844: {
codeString: "B106;B314:2,0"
},
B5995: {
codeString: "B457;P4S:0,7"
},
B5996: {
codeString: "B99;B904:3,0",
isIndicator: true
},
B5997: {
codeString: "B97;B904:3,0",
isIndicator: true
},
B5998: {
codeString: "B97;B5996:3,0",
isIndicator: true
},
B5999: {
codeString: "B956:0,2"
},
B6000: {
codeString: "B314:0,2"
},
B6001: {
codeString: "HL4:0,18;VL4:2,14"
},
B6002: {
codeString: "B106:0,2"
},
B6003: {
codeString: "B657:0,4"
},
B6013: {
codeString: "B696;LARR4E:8,10"
},
B6015: {
codeString: "B213;LARR4E:8,10",
center: -2
},
B6091: {
codeString: "B145;B651:8,0;B335:12,0"
},
B6106: {
codeString: "HW8E:0,8;HL6:0,8;HL6:0,16;HW8W:4,8"
},
B6109: {
codeString: "HW8W:0,8;HW8E:2,8"
},
B6168: {
codeString: "B303;B651:4,0"
}
};
const blissElementDefinitions = {
"H": createHeart(8),
"E": createEar(8),
"F": createFiber(8),
"DOT": createDot(0.5, 0.333),
"SDOT": createDot(0.5, 0),
"COMMA": createComma(0.5, 0.333),
"C8": createCircle(4),
"C4": createCircle(2),
"C2": createCircle(1),
"C1": createCircle(0.5),
"HC8N": createHalfCircle(4, "N"),
"HC4N": createHalfCircle(2, "N"),
"HC2N": createHalfCircle(1, "N"),
"HC1N": createHalfCircle(0.5, "N"),
"HC.5N": createHalfCircle(0.25, "N"),
"HC8S": createHalfCircle(4, "S"),
"HC4S": createHalfCircle(2, "S"),
"HC2S": createHalfCircle(1, "S"),
"HC1S": createHalfCircle(0.5, "S"),
"HC.5S": createHalfCircle(0.25, "S"),
"HC8W": createHalfCircle(4, "W"),
"HC4W": createHalfCircle(2, "W"),
"HC2W": createHalfCircle(1, "W"),
"HC1W": createHalfCircle(0.5, "W"),
"HC.5W": createHalfCircle(0.25, "W"),
"HC8E": createHalfCircle(4, "E"),
"HC4E": createHalfCircle(2, "E"),
"HC2E": createHalfCircle(1, "E"),
"HC1E": createHalfCircle(0.5, "E"),
"HC.5E": createHalfCircle(0.25, "E"),
"QC4NW": createQuarterCircle(4, "NW"),
"QC2NW": createQuarterCircle(2, "NW"),
"QC1NW": createQuarterCircle(1, "NW"),
"QC.5NW": createQuarterCircle(0.5, "NW"),
"QC4NE": createQuarterCircle(4, "NE"),
"QC2NE": createQuarterCircle(2, "NE"),
"QC1NE": createQuarterCircle(1, "NE"),
"QC.5NE": createQuarterCircle(0.5, "NE"),
"QC4SW": createQuarterCircle(4, "SW"),
"QC2SW": createQuarterCircle(2, "SW"),
"QC1SW": createQuarterCircle(1, "SW"),
"QC.5SW": createQuarterCircle(0.5, "SW"),
"QC4SE": createQuarterCircle(4, "SE"),
"QC2SE": createQuarterCircle(2, "SE"),
"QC1SE": createQuarterCircle(1, "SE"),
"QC.5SE": createQuarterCircle(0.5, "SE"),
"OC8NW": createOpenCircle(4, "NW"),
"OC4NW": createOpenCircle(2, "NW"),
"OC2NW": createOpenCircle(1, "NW"),
"OC1NW": createOpenCircle(0.5, "NW"),
"OC8NE": createOpenCircle(4, "NE"),
"OC4NE": createOpenCircle(2, "NE"),
"OC2NE": createOpenCircle(1, "NE"),
"OC1NE": createOpenCircle(0.5, "NE"),
"OC8SW": createOpenCircle(4, "SW"),
"OC4SW": createOpenCircle(2, "SW"),
"OC2SW": createOpenCircle(1, "SW"),
"OC1SW": createOpenCircle(0.5, "SW"),
"OC8SE": createOpenCircle(4, "SE"),
"OC4SE": createOpenCircle(2, "SE"),
"OC2SE": createOpenCircle(1, "SE"),
"OC1SE": createOpenCircle(0.5, "SE"),
"W8N": createWave(8, "N"),
"W8S": createWave(8, "S"),
"W8W": createWave(8, "W"),
"W8E": createWave(8, "E"),
"HW8N": createHalfWave(8, "N"),
"HW4N": createHalfWave(4, "N"),
"HW2N": createHalfWave(2, "N"),
"HW8S": createHalfWave(8, "S"),
"HW4S": createHalfWave(4, "S"),
"HW2S": createHalfWave(2, "S"),
"HW8W": createHalfWave(8, "W"),
"HW4W": createHalfWave(4, "W"),
"HW2W": createHalfWave(2, "W"),
"HW8E": createHalfWave(8, "E"),
"HW4E": createHalfWave(4, "E"),
"HW2E": createHalfWave(2, "E"),
"HQW4NW": createHorizontalQuarterWave(4, "NW"),
"HQW2NW": createHorizontalQuarterWave(2, "NW"),
"HQW1NW": createHorizontalQuarterWave(1, "NW"),
"HQW4NE": createHorizontalQuarterWave(4, "NE"),
"HQW2NE": createHorizontalQuarterWave(2, "NE"),
"HQW1NE": createHorizontalQuarterWave(1, "NE"),
"HQW4SW": createHorizontalQuarterWave(4, "SW"),
"HQW2SW": createHorizontalQuarterWave(2, "SW"),
"HQW1SW": createHorizontalQuarterWave(1, "SW"),
"HQW4SE": createHorizontalQuarterWave(4, "SE"),
"HQW2SE": createHorizontalQuarterWave(2, "SE"),
"HQW1SE": createHorizontalQuarterWave(1, "SE"),
"VQW4NW": createVerticalQuarterWave(4, "NW"),
"VQW2NW": createVerticalQuarterWave(2, "NW"),
"VQW1NW": createVerticalQuarterWave(1, "NW"),
"VQW4NE": createVerticalQuarterWave(4, "NE"),
"VQW2NE": createVerticalQuarterWave(2, "NE"),
"VQW1NE": createVerticalQuarterWave(1, "NE"),
"VQW4SW": createVerticalQuarterWave(4, "SW"),
"VQW2SW": createVerticalQuarterWave(2, "SW"),
"VQW1SW": createVerticalQuarterWave(1, "SW"),
"VQW4SE": createVerticalQuarterWave(4, "SE"),
"VQW2SE": createVerticalQuarterWave(2, "SE"),
"VQW1SE": createVerticalQuarterWave(1, "SE"),
"VL12": createVerticalLine(12),
"VL10": createVerticalLine(10),
"VL8": createVerticalLine(8),
"VL6": createVerticalLine(6),
"VL4": createVerticalLine(4),
"VL3": createVerticalLine(3),
"VL2": createVerticalLine(2),
"VL1.5": createVerticalLine(1.5),
"VL1.25": createVerticalLine(1.25),
"VL1": createVerticalLine(1),
"VL.5": createVerticalLine(0.5),
"VL.25": createVerticalLine(0.25),
"HL16": createHorizontalLine(16),
"HL15": createHorizontalLine(15),
"HL14": createHorizontalLine(14),
"HL12": createHorizontalLine(12),
"HL10": createHorizontalLine(10),
"HL8": createHorizontalLine(8),
"HL6": createHorizontalLine(6),
"HL4": createHorizontalLine(4),
"HL3": createHorizontalLine(3),
"HL2": createHorizontalLine(2),
"HL1.5": createHorizontalLine(1.5),
"HL1": createHorizontalLine(1),
"HL.5": createHorizontalLine(0.5),
"HL.25": createHorizontalLine(0.25),
"DL12N": createAscendingDiagonalLine(12, 12),
"DL8N": createAscendingDiagonalLine(8, 8),
"DL6N": createAscendingDiagonalLine(6, 6),
"DL5N": createAscendingDiagonalLine(5, 5),
"DL4N": createAscendingDiagonalLine(4, 4),
"DL3N": createAscendingDiagonalLine(3, 3),
"DL2N": createAscendingDiagonalLine(2, 2),
"DL1.5N": createAscendingDiagonalLine(1.5, 1.5),
"DL1N": createAscendingDiagonalLine(1, 1),
"DL.5N": createAscendingDiagonalLine(0.5, 0.5),
"DL2-3N": createAscendingDiagonalLine(2, 3),
"DL1-1.5N": createAscendingDiagonalLine(1, 1.5),
"DL3-2N": createAscendingDiagonalLine(3, 2),
"DL1.5-1N": createAscendingDiagonalLine(1.5, 1),
"DL4-8N": createAscendingDiagonalLine(4, 8),
"DL2-4N": createAscendingDiagonalLine(2, 4),
"DL1-2N": createAscendingDiagonalLine(1, 2),
"DL.5-1N": createAscendingDiagonalLine(0.5, 1),
"DL8-4N": createAscendingDiagonalLine(8, 4),
"DL4-2N": createAscendingDiagonalLine(4, 2),
"DL2-1N": createAscendingDiagonalLine(2, 1),
"DL1-.5N": createAscendingDiagonalLine(1, 0.5),
"DL1-4N": createAscendingDiagonalLine(1, 4),
"DL.5-2N": createAscendingDiagonalLine(0.5, 2),
"DL4-1N": createAscendingDiagonalLine(4, 1),
"DL2-.5N": createAscendingDiagonalLine(2, 0.5),
"DL12S": createDescendingDiagonalLine(12, 12),
"DL8S": createDescendingDiagonalLine(8, 8),
"DL6S": createDescendingDiagonalLine(6, 6),
"DL5S": createDescendingDiagonalLine(5, 5),
"DL4S": createDescendingDiagonalLine(4, 4),
"DL3S": createDescendingDiagonalLine(3, 3),
"DL2S": createDescendingDiagonalLine(2, 2),
"DL1.5S": createDescendingDiagonalLine(1.5, 1.5),
"DL1S": createDescendingDiagonalLine(1, 1),
"DL.5S": createDescendingDiagonalLine(0.5, 0.5),
"DL2,3S": createDescendingDiagonalLine(2, 3),
"DL1-1.5S": createDescendingDiagonalLine(1, 1.5),
"DL3-2S": createDescendingDiagonalLine(3, 2),
"DL1.5-1S": createDescendingDiagonalLine(1.5, 1),
"DL4-8S": createDescendingDiagonalLine(4, 8),
"DL2-4S": createDescendingDiagonalLine(2, 4),
"DL1-2S": createDescendingDiagonalLine(1, 2),
"DL.5-1S": createDescendingDiagonalLine(0.5, 1),
"DL8-4S": createDescendingDiagonalLine(8, 4),
"DL4-2S": createDescendingDiagonalLine(4, 2),
"DL2-1S": createDescendingDiagonalLine(2, 1),
"DL1-.5S": createDescendingDiagonalLine(1, 0.5),
"DL1-4S": createDescendingDiagonalLine(1, 4),
"DL.5-2S": createDescendingDiagonalLine(0.5, 2),
"DL4-1S": createDescendingDiagonalLine(4, 1),
"DL2-.5S": createDescendingDiagonalLine(2, 0.5),
"DLOC8NW": createDiagonalLineOutsideCircle(8, "NW"),
"DLOC8NE": createDiagonalLineOutsideCircle(8, "NE"),
"DLOC8SW": createDiagonalLineOutsideCircle(8, "SW"),
"DLOC8SE": createDiagonalLineOutsideCircle(8, "SE"),
"DLOC4NW": createDiagonalLineOutsideCircle(4, "NW"),
"DLOC4NE": createDiagonalLineOutsideCircle(4, "NE"),
"DLOC4SW": createDiagonalLineOutsideCircle(4, "SW"),
"DLOC4SE": createDiagonalLineOutsideCircle(4, "SE"),
"DLIC8N": createAscendingDiagonalLineInsideCircle(4),
"DLIC4N": createAscendingDiagonalLineInsideCircle(2),
"DLIC8S": createDescendingDiagonalLineInsideCircle(4),
"DLIC4S": createDescendingDiagonalLineInsideCircle(2),
"RA8NW": { codeString: "VL8;HL8" },
"RA4NW": { codeString: "VL4;HL4" },
"RA3NW": { codeString: "VL3;HL3" },
"RA2NW": { codeString: "VL2;HL2" },
"RA1.5NW": { codeString: "VL1.5;HL1.5" },
"RA1NW": { codeString: "VL1;HL1" },
"RA8NE": { codeString: "HL8;VL8:8,0" },
"RA4NE": { codeString: "HL4;VL4:4,0" },
"RA3NE": { codeString: "HL3;VL3:3,0" },
"RA2NE": { codeString: "HL2;VL2:2,0" },
"RA1.5NE": { codeString: "HL1.5;VL1.5:1.5,0" },
"RA1NE": { codeString: "HL1;VL1:1,0" },
"RA8SW": { codeString: "VL8;HL8:0,8" },
"RA4SW": { codeString: "VL4;HL4:0,4" },
"RA3SW": { codeString: "VL3;HL3:0,3" },
"RA2SW": { codeString: "VL2;HL2:0,2" },
"RA1.5SW": { codeString: "VL1.5;HL1.5:0,1.5" },
"RA1SW": { codeString: "VL1;HL1:0,1" },
"RA8SE": { codeString: "HL8:0,8;VL8:8,0" },
"RA4SE": { codeString: "HL4:0,4;VL4:4,0" },
"RA3SE": { codeString: "HL3:0,3;VL3:3,0" },
"RA2SE": { codeString: "HL2:0,2;VL2:2,0" },
"RA1.5SE": { codeString: "HL1.5:0,1.5;VL1.5:1.5,0" },
"RA1SE": { codeString: "HL1:0,1;VL1:1,0" },
"RA8N": { codeString: "DL4N;DL4S:4,0" },
"RA4N": { codeString: "DL2N;DL2S:2,0" },
"RA3N": { codeString: "DL1.5N;DL1.5S:1.5,0" },
"RA2N": { codeString: "DL1N;DL1S:1,0" },
"RA1N": { codeString: "DL.5N;DL.5S:0.5,0" },
"RA8S": { codeString: "DL4S;DL4N:4,0" },
"RA4S": { codeString: "DL2S;DL2N:2,0" },
"RA3S": { codeString: "DL1.5S;DL1.5N:1.5,0" },
"RA2S": { codeString: "DL1S;DL1N:1,0" },
"RA1S": { codeString: "DL.5S;DL.5N:.5,0" },
"RA8W": { codeString: "DL4N;DL4S:0,4" },
"RA4W": { codeString: "DL2N;DL2S:0,2" },
"RA3W": { codeString: "DL1.5N;DL1.5S:0,1.5" },
"RA2W": { codeString: "DL1N;DL1S:0,1" },
"RA1W": { codeString: "DL.5N;DL.5S:0,0.5" },
"RA8E": { codeString: "DL4S;DL4N:0,4" },
"RA4E": { codeString: "DL2S;DL2N:0,2" },
"RA3E": { codeString: "DL1.5S;DL1.5N:0,1.5" },
"RA2E": { codeString: "DL1S;DL1N:0,1" },
"RA1E": { codeString: "DL.5S;DL.5N:0,0.5" },
"AA8N": { codeString: "DL4-8N;DL4-8S:4,0" },
"AA4N": { codeString: "DL2-4N;DL2-4S:2,0" },
"AA2N": { codeString: "DL1-2N;DL1-2S:1,0" },
"AA8S": { codeString: "DL4-8S;DL4-8N:4,0" },
"AA4S": { codeString: "DL2-4S;DL2-4N:2,0" },
"AA2S": { codeString: "DL1-2S;DL1-2N:1,0" },
"AA8W": { codeString: "DL8-4N;DL8-4S:0,4" },
"AA4W": { codeString: "DL4-2N;DL4-2S:0,2" },
"AA2W": { codeString: "DL2-1N;DL2-1S:0,1" },
"AA8E": { codeString: "DL8-4S;DL8-4N:0,4" },
"AA4E": { codeString: "DL4-2S;DL4-2N:0,2" },
"AA2E": { codeString: "DL2-1S;DL2-1N:0,1" },
"SC8": { codeString: "HL8:0,4;VL8:4,0" },
"SC4": { codeString: "HL4:0,2;VL4:2,0" },
"SC2": { codeString: "HL2:0,1;VL2:1,0" },
"DC8": { codeString: "DL8S;DL8N" },
"DC4": { codeString: "DL4S;DL4N" },
"DC2": { codeString: "DL2S;DL2N" },
"RT8SW": { codeString: "VL8;HL8:0,8;DL8S" },
"RT4SW": { codeString: "VL4;HL4:0,4;DL4S" },
"RT2SW": { codeString: "VL2;HL2:0,2;DL2S" },
"RT8NW": { codeString: "VL8;HL8;DL8N" },
"RT4NW": { codeString: "VL4;HL4;DL4N" },
"RT2NW": { codeString: "VL2;HL2;DL2N" },
"RT8NE": { codeString: "HL8;VL8:8,0;DL8S" },
"RT4NE": { codeString: "HL4;VL4:4,0;DL4S" },
"RT2NE": { codeString: "HL2;VL2:2,0;DL2S" },
"RT8SE": { codeString: "HL8:0,8;VL8:8,0;DL8N" },
"RT4SE": { codeString: "HL4:0,4;VL4:4,0;DL4N" },
"RT2SE": { codeString: "HL2:0,2;VL2:2,0;DL2N" },
"RT8N": { codeString: "DL4N;DL4S:4,0;HL8:0,4" },
"RT4N": { codeString: "DL2N;DL2S:2,0;HL4:0,2" },
"RT2N": { codeString: "DL1N;DL1S:1,0;HL2:0,1" },
"RT8S": { codeString: "DL4S;DL4N:4,0;HL8" },
"RT4S": { codeString: "DL2S;DL2N:2,0;HL4" },
"RT2S": { codeString: "DL1S;DL1N:1,0;HL2" },
"RT8W": { codeString: "DL4N;DL4S:0,4;VL8:4,0" },
"RT4W": { codeString: "DL2N;DL2S:0,2;VL4:2,0" },
"RT2W": { codeString: "DL1N;DL1S:0,1;VL2:1,0" },
"RT8E": { codeString: "DL4S;DL4N:0,4;VL8" },
"RT4E": { codeString: "DL2S;DL2N:0,2;VL4" },
"RT2E": { codeString: "DL1S;DL1N:0,1;VL2" },
"AT8N": { codeString: "DL4-8N;DL4-8S:4,0;HL8:0,8" },
"AT4N": { codeString: "DL2-4N;DL2-4S:2,0;HL4:0,4" },
"AT2N": { codeString: "DL1-2N;DL1-2S:1,0;HL2:0,2" },
"AT8S": { codeString: "DL4-8S;DL4-8N:4,0;HL8" },
"AT4S": { codeString: "DL2-4S;DL2-4N:2,0;HL4" },
"AT2S": { codeString: "DL1-2S;DL1-2N:1,0;HL2" },
"AT8W": { codeString: "DL8-4N;DL8-4S:0,4;VL8:8,0" },
"AT4W": { codeString: "DL4-2N;DL4-2S:0,2;VL4:4,0" },
"AT2W": { codeString: "DL2-1N;DL2-1S:0,1;VL2:2,0" },
"AT8E": { codeString: "DL8-4S;DL8-4N:0,4;VL8" },
"AT4E": { codeString: "DL4-2S;DL4-2N:0,2;VL4" },
"AT2E": { codeString: "DL2-1S;DL2-1N:0,1;VL2" },
"S8": { codeString: "HL8;HL8:0,8;VL8;VL8:8,0" },
"S4": { codeString: "HL4;HL4:0,4;VL4;VL4:4,0" },
"S2": { codeString: "HL2;HL2:0,2;VL2;VL2:2,0" },
"DS8": { codeString: "DL4N;DL4S:4,0;DL4S:0,4;DL4N:4,4" },
"DS4": { codeString: "DL2N;DL2S:2,0;DL2S:0,2;DL2N:2,2" },
"DS2": { codeString: "DL1N;DL1S:1,0;DL1S:0,1;DL1N:1,1" },
"OS8N": { codeString: "VL8;HL8:0,8;VL8:8,0" },
"OS4N": { codeString: "VL4;HL4:0,4;VL4:4,0" },
"OS2N": { codeString: "VL2;HL2:0,2;VL2:2,0" },
"OS8S": { codeString: "VL8;HL8;VL8:8,0" },
"OS4S": { codeString: "VL4;HL4;VL4:4,0" },
"OS2S": { codeString: "VL2;HL2;VL2:2,0" },
"OS8W": { codeString: "HL8;HL8:0,8;VL8:8,0" },
"OS4W": { codeString: "HL4;HL4:0,4;VL4:4,0" },
"OS2W": { codeString: "HL2;HL2:0,2;VL2:2,0" },
"OS8E": { codeString: "VL8;HL8;HL8:0,8" },
"OS4E": { codeString: "VL4;HL4;HL4:0,4" },
"OS2E": { codeString: "VL2;HL2;HL2:0,2" },
"R84": { codeString: "HL8;HL8:0,4;VL4;VL4:8,0" },
"R42": { codeString: "HL4;HL4:0,2;VL2;VL2:4,0" },
"R48": { codeString: "HL4;HL4:0,8;VL8;VL8:4,0" },
"R24": { codeString: "HL2;HL2:0,4;VL4;VL4:2,0" },
"OR84N": { codeString: "VL4;HL8:0,4;VL4:8,0" },
"OR42N": { codeString: "VL2;HL4:0,2;VL2:4,0" },
"OR84S": { codeString: "VL4;HL8;VL4:8,0" },
"OR42S": { codeString: "VL2;HL4;VL2:4,0" },
"OR84W": { codeString: "HL8;HL8:0,4;VL4:8,0" },
"OR42W": { codeString: "HL4;HL4:0,2;VL2:4,0" },
"OR84E": { codeString: "VL4;HL8;HL8:0,4" },
"OR42E": { codeString: "VL2;HL4;HL4:0,2" },
"OR48N": { codeString: "VL8;HL4:0,8;VL8:4,0" },
"OR24N": { codeString: "VL4;HL2:0,4;VL4:2,0" },
"OR48S": { codeString: "VL8;HL4;VL8:4,0" },
"OR24S": { codeString: "VL4;HL2;VL4:2,0" },
"OR48W": { codeString: "HL4;HL4:0,8;VL8:4,0" },
"OR24W": { codeString: "HL2;HL2:0,4;VL4:2,0" },
"OR48E": { codeString: "VL8;HL4;HL4:0,8" },
"OR24E": { codeString: "VL4;HL2;HL2:0,4" },
"LARR8W": { codeString: "P4W;HL8:0,2" },
"ARR8W": { codeString: "P3W;HL8:0,1.5" },
"LARR4W": { codeString: "P4W;HL4:0,2" },
"ARR4W": { codeString: "P3W;HL3:0,1.5" },
"LARR8E": { codeString: "HL8:0,2;P4E:6,0" },
"ARR8E": { codeString: "HL8:0,1.5;P3E:6.5,0" },
"LARR4E": { codeString: "HL4:0,2;P4E:2,0" },
"ARR4E": { codeString: "HL4:0,1.5;P3E:2.5,0" },
"LARR8N": { codeString: "P4N;VL8:2,0" },
"ARR8N": { codeString: "P3N;VL8:1.5,0" },
"LARR4N": { codeString: "P4N;VL4:2,0" },
"ARR4N": { codeString: "P3N;VL4:1.5,0" },
"LARR8S": { codeString: "P4S:0,6;VL8:2,0" },
"ARR8S": { codeString: "P3S:0,6.5;VL8:1.5,0" },
"LARR4S": { codeString: "P4S:0,2;VL4:2,0" },
"ARR4S": { codeString: "P3S:0,2.5;VL4:1.5,0" },
"LARR8NW": { codeString: "DL8S;P3NW" },
"ARR8NW": { codeString: "DL8S;P2NW" },
"LARR4NW": { codeString: "DL4S;P3NW" },
"ARR4NW": { codeString: "DL4S;P2NW" },
"LARR8NE": { codeString: "DL8N;P3NE:5,0" },
"ARR8NE": { codeString: "DL8N;P2NE:6,0" },
"LARR4NE": { codeString: "DL4N;P3NE:1,0" },
"ARR4NE": { codeString: "DL4N;P2NE:2,0" },
"LARR8SW": { codeString: "DL8N;P3SW:0,5" },
"ARR8SW": { codeString: "DL8N;P2SW:0,6" },
"LARR4SW": { codeString: "DL4N;P3SW:0,1" },
"ARR4SW": { codeString: "DL4N;P2SW:0,2" },
"LARR8SE": { codeString: "DL8S;P3SE:5,5" },
"ARR8SE": { codeString: "DL8S;P2SE:6,6" },
"LARR4SE": { codeString: "DL4S;P3SE:1,1" },
"ARR4SE": { codeString: "DL4S;P2SE:2,2" },
"P4N": { codeString: "RA4N" },
"P3N": { codeString: "RA3N" },
"P2N": { codeString: "RA2N" },
"P4S": { codeString: "RA4S" },
"P3S": { codeString: "RA3S" },
"P2S": { codeString: "RA2S" },
"P4W": { codeString: "RA4W" },
"P3W": { codeString: "RA3W" },
"P2W": { codeString: "RA2W" },
"P4E": { codeString: "RA4E" },
"P3E": { codeString: "RA3E" },
"P2E": { codeString: "RA2E" },
"P3NW": { codeString: "RA3NW" },
"P3NE": { codeString: "RA3NE" },
"P3SW": { codeString: "RA3SW" },
"P3SE": { codeString: "RA3SE" },
"P2NW": { codeString: "RA2NW" },
"P2NE": { codeString: "RA2NE" },
"P2SW": { codeString: "RA2SW" },
"P2SE": { codeString: "RA2SE" },
"P1.5NW": { codeString: "RA1.5NW" },
"P1.5NE": { codeString: "RA1.5NE" },
"P1.5SW": { codeString: "RA1.5SW" },
"P1.5SE": { codeString: "RA1.5SE" },
"LARRC8EC": { codeString: "C8;P4S:6,2" },
"ARRC8EC": { codeString: "C8;P3S:6.5,2.5" },
"LARRC8WC": { codeString: "P4N:0,4;C8:2,0" },
"ARRC8WC": { codeString: "P3N:0,4;C8:1.5,0" },
"LARRC8NC": { codeString: "C8:0,2;P4E:2,0" },
"ARRC8NC": { codeString: "C8:0,1.5;P3E:2.5,0" },
"LARRC8SC": { codeString: "C8;P4W:4,6" },
"ARRC8SC": { codeString: "C8;P3W:4,6.5" },
"LARRC8ECC": { codeString: "C8;P4N:6,4" },
"ARRC8ECC": { codeString: "C8;P3N:6.5,4" },
"LARRC8WCC": { codeString: "P4S:0,2;C8:2,0" },
"ARRC8WCC": { codeString: "P3S:0,2.5;C8:1.5,0" },
"LARRC8NCC": { codeString: "C8:0,2;P4W:4,0" },
"ARRC8NCC": { codeString: "C8:0,1.5;P3W:4,0" },
"LARRC8SCC": { codeString: "C8;P4E:2,6" },
"ARRC8SCC": { codeString: "C8;P3E:2.5,6.5" },
"LARROC8SEC": { codeString: "OC8SE;P4S:6,2" },
"ARROC8SEC": { codeString: "OC8SE;P3S:6.5,2.5" },
"LARROC8NWC": { codeString: "P4N:0,4;OC8NW:2,0" },
"ARROC8NWC": { codeString: "P3N:0,4;OC8NW:1.5,0" },
"LARROC8NEC": { codeString: "OC8NE:0,2;P4E:2,0" },
"ARROC8NEC": { codeString: "OC8NE:0,1.5;P3E:2.5,0" },
"LARROC8SWC": { codeString: "OC8SW;P4W:4,6" },
"ARROC8SWC": { codeString: "OC8SW;P3W:4,6.5" },
"LARROC8SECC": { codeString: "OC8SE;P4E:2,6" },
"ARROC8SECC": { codeString: "OC8SE;P3E:2.5,6.5" },
"LARROC8NWCC": { codeString: "OC8NW:0,2;P4W:4,0" },
"ARROC8NWCC": { codeString: "OC8NW:0,1.5;P3W:4,0" },
"LARROC8NECC": { codeString: "OC8NE;P4N:6,4" },
"ARROC8NECC": { codeString: "OC8NE;P3N:6.5,4" },
"LARROC8SWCC": { codeString: "P4S:0,2;OC8SW:2,0" },
"ARROC8SWCC": { codeString: "P3S:0,2.5;OC8SW:1.5,0" },
"LARRHC8NC": { codeString: "HC8N;P4S:6,2" },
"ARRHC8NC": { codeString: "HC8N;P3S:6.5,2.5" },
"LARRHC8SC": { codeString: "P4N;HC8S:2,0" },
"ARRHC8SC": { codeString: "P3N;HC8S:1.5,0" },
"LARRHC8WC": { codeString: "HC8W:0,2;P4E:2,0" },
"ARRHC8WC": { codeString: "HC8W:0,1.5;P3E:2.5,0" },
"LARRHC8EC": { codeString: "HC8E;P4W:0,6" },
"ARRHC8EC": { codeString: "HC8E;P3W:0,6.5" },
"LARRHC8NCC": { codeString: "P4S:0,2;HC8N:2,0" },
"ARRHC8NCC": { codeString: "P3S:0,2.5;HC8N:1.5,0" },
"LARRHC8SCC": { codeString: "HC8S;P4N:6,0" },
"ARRHC8SCC": { codeString: "HC8S;P3N:6.5,0" },
"LARRHC8WCC": { codeString: "HC8W;P4E:2,6" },
"ARRHC8WCC": { codeString: "HC8W;P3E:2.5,6.5" },
"LARRHC8ECC": { codeString: "P4W;HC8E:0,2" },
"ARRHC8ECC": { codeString: "P3W;HC8E:0,1.5" },
"LARRQC4NWC": { codeString: "QC4NW:0,2;P4E:2,0" },
"ARRQC4NWC": { codeString: "QC4NW:0,1.5;P3E:2.5,0" },
"LARRQC4SWC": { codeString: "P4N;QC4SW:2,0" },
"ARRQC4SWC": { codeString: "P3N;QC4SW:1.5,0" },
"LARRQC4NEC": { codeString: "QC4NE;P4S:2,2" },
"ARRQC4NEC": { codeString: "QC4NE;P3S:2.5,2.5" },
"LARRQC4SEC": { codeString: "QC4SE;P4W:0,2" },
"ARRQC4SEC": { codeString: "QC4SE;P3W:0,2.5" },
"LARRQC4NWCC": { codeString: "P4S:0,2;QC4NW:2,0" },
"ARRQC4NWCC": { codeString: "P3S:0,2.5;QC4NW:1.5,0" },
"LARRQC4SWCC": { codeString: "QC4SW;P4E:2,2" },
"ARRQC4SWCC": { codeString: "QC4SW;P3E:2.5,2.5" },
"LARRQC4NECC": { codeString: "P4W;QC4NE:0,2" },
"ARRQC4NECC": { codeString: "P3W;QC4NE:0,1.5" },
"LARRQC4SECC": { codeString: "QC4SE;P4N:2,0" },
"ARRQC4SECC": { codeString: "QC4SE;P3N:2.5,0" }
};
blissElementDefinitions["DOT"].extraPathOptions = {
baseStrokeWidth: 0.5,
extraDotWidth: 0.333
};
blissElementDefinitions["SDOT"].extraPathOptions = {
baseStrokeWidth: 0.5,
extraDotWidth: 0
};
blissElementDefinitions["COMMA"].extraPathOptions = {
baseStrokeWidth: 0.5,
extraDotWidth: 0.333
};
const characters = "abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ";
for (let i = 0; i < characters.length; i++) {
const x = characters[i];
blissElementDefinitions[`X${x}`] = createExternalGlyph(x);
}
for (const definition of Object.values(blissElementDefinitions)) {
definition.isAtomic = true;
}
Object.assign(blissElementDefinitions, charData);
class BlissParser {
static parse(codeStr, options) {
const result = this.fromString(codeStr);
if (options) {
result.options = { ...result.options, ...options };
}
return result;
}
// Helper function to encode string and parse global options
static encodeString(inputString, unescapeMap) {
return { encodedString, globalOptions };
}
static parsePartString(str) {
const part = {};
let [_, optionsString, codeString] = str.match(/^(\[[^\}]*\])?(.*)/);
if (optionsString) {
part.options = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, optionsString);
}
if (codeString) {
const matched = codeString.match(/^([\w\-.]+):?(\-?\d*(?:\.\d*)?)?,?(\-?\d*(?:\.\d*)?)?$/);
if (matched) {
let [, code, x, y] = matched;
part.code = code;
part.x = Number(x) || 0;
part.y = Number(y) || 0;
} else {
part.error = `Invalid format: ${codeString}`;
}
}
return part;
}
// Helper function to parse character parts
static parseCharacterParts(encodedString2, escapeMap, unescapeMap) {
let parts = [];
return parts;
}
static fromString(inputString) {
inputString = inputString.trim();
let result = { options: {}, words: [] };
__privateMethod(this, _setupEscapeMaps, setupEscapeMaps_fn).call(this);
let placeholderMap = {};
let placeholderCount = 0;
inputString = inputString.replace(/\{(.*?)\}/g, (match, group1) => {
let placeholder = `PLACEHOLDER_${placeholderCount++}`;
placeholderMap[placeholder] = group1.trim();
return `{${placeholder}}`;
});
inputString = inputString.replace(/\s/g, "");
inputString = inputString.replace(/(.*?)\/K(:-\d+)(\/[^\/]*)/g, "$1$3$2");
let [_, globalOptionsString, globalCodeString] = inputString.match(/^\s*(?:([^|]*)\s*\|\|)?(.*)$/);
result.options = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, globalOptionsString);
let threePartWordStrings = globalCodeString.split("//");
for (let tpws of threePartWordStrings) {
let replaceWithDefinition = function(str, definitions) {
var _a;
let parts = str.split("/");
let resultParts = [];
for (let part of parts) {
if ((_a = definitions[part]) == null ? void 0 : _a.codeString) {
resultParts.push(...definitions[part].codeString.split("/"));
} else {
resultParts.push(part);
}
}
let newStr = resultParts.join("/");
if (newStr !== str) {
return replaceWithDefinition(newStr, definitions);
} else {
return newStr;
}
};
if (tpws === "")
continue;
let word = { options: {}, characters: [] };
let [_2, twoPartWordString, textKey] = tpws.match(new RegExp("(.*?)(?:\\{(.*?(?<!\\\\))\\})?$"));
if (textKey) {
word.text = placeholderMap[textKey];
}
let twoPartCharacterStrings = replaceWithDefinition(twoPartWordString, blissElementDefinitions).split("/");
for (let tpcs of twoPartCharacterStrings) {
if (tpcs === "")
continue;
const character = { parts: [] };
const [characterOptionsString, characterCodeString] = tpcs.includes("|") ? tpcs.split("|", 2) : [void 0, tpcs];
if (characterOptionsString) {
character.options = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, characterOptionsString);
}
const parseParts = (partsString) => {
const parts = [];
const twoPartPartStrings = partsString.split(";");
for (const twoPartPartString of twoPartPartStrings) {
const part = this.parsePartString(twoPartPartString);
const definition = blissElementDefinitions[part.code];
const codeString = definition.codeString;
if (codeString) {
if (codeString.includes(";") || codeString.includes(":") || blissElementDefinitions[codeString].codeString) {
part.parts = parseParts(definition.codeString);
delete part.code;
} else {
part.code = definition.codeString;
}
}
if (definition.isIndicator) {
part.isIndicator = true;
part.width = definition.width || 2;
part.center = definition.center || 0;
}
parts.push(part);
}
return parts;
};
character.parts = parseParts(characterCodeString);
word.characters.push(character);
}
result.words.push(word);
}
return result;
}
}
_setupEscapeMaps = new WeakSet();
setupEscapeMaps_fn = function() {
const escapeMap = {
"\\": "",
";": "",
"{": "",
"}": "",
"n": "",
"r": ""
};
const unescapeMap = {};
for (let k in escapeMap) {
unescapeMap[escapeMap[k]] = k;
}
return { escapeMap, unescapeMap };
};
_parseOptions = new WeakSet();
parseOptions_fn = function(optionsString) {
var _a;
if (!optionsString)
return;
const extractedContent = (_a = optionsString.match(/\[([^\]]*)\]/)) == null ? void 0 : _a[1].replace(/\s/g, "");
const keyValuePairs = extractedContent ? extractedContent.split(";") : [];
const parsedObject = {};
for (const keyValuePair of keyValuePairs) {
const [key, value] = keyValuePair.split("=");
parsedObject[key] = value;
}
return parsedObject;
};
_fromStream = new WeakSet();
fromStream_fn = function(blissStream) {
};
_toString = new WeakSet();
toString_fn = function(blissComposition) {
};
_toObject = new WeakSet();
toObject_fn = function(blissComposition) {
};
_toStream = new WeakSet();
toStream_fn = function(blissComposition) {
};
__privateAdd(BlissParser, _setupEscapeMaps);
__privateAdd(BlissParser, _parseOptions);
__privateAdd(BlissParser, _fromStream);
__privateAdd(BlissParser, _toString);
__privateAdd(BlissParser, _toObject);
__privateAdd(BlissParser, _toStream);
const DEFAULT_CHAR_SPACING = 2;
const DEFAULT_FULL_SPACE = 8;
const DEFAULT_HALF_SPACE = 4;
const DEFAULT_QUARTER_SPACE = 2;
const DEFAULT_SENTENCE_SPACING = DEFAULT_CHAR_SPACING + DEFAULT_FULL_SPACE;
const DEFAULT_WORD_SPACING = DEFAULT_CHAR_SPACING + DEFAULT_HALF_SPACE;
const DEFAULT_PUNCTUATION_SPACING = DEFAULT_CHAR_SPACING + DEFAULT_QUARTER_SPACE;
const _BlissElement = class _BlissElement {
//#endregion
constructor(blissObj, { parentElement = null, previousElement = null, level = 0 } = {}) {
__privateAdd(this, _initExplicitElement);
__privateAdd(this, _initImplicitElement);
//#region Private Properties
__privateAdd(this, _level, void 0);
__privateAdd(this, _extraPathOptions, void 0);
__privateAdd(this, _isCharacter, void 0);
__privateAdd(this, _isAtomic, void 0);
__privateAdd(this, _isIndicator, void 0);
__privateAdd(this, _isExternalGlyph, void 0);
__privateAdd(this, _width, void 0);
__privateAdd(this, _height, void 0);
__privateAdd(this, _children, void 0);
__privateAdd(this, _relativeToRootX, void 0);
__privateAdd(this, _relativeToParentX, void 0);
__privateAdd(this, _relativeToParentY, void 0);
//#codeString
__privateAdd(this, _codeName, void 0);
__privateAdd(this, _charSpacing, void 0);
__privateAdd(this, _wordSpacing, void 0);
__privateAdd(this, _sentenceSpacing, void 0);
__privateAdd(this, _punctuationSpacing, void 0);
__privateSet(this, _level, level);
__privateSet(this, _codeName, "");
__privateSet(this, _relativeToParentX, 0);
__privateSet(this, _relativeToParentY, 0);
__privateSet(this, _children, []);
__privateSet(this, _charSpacing, DEFAULT_CHAR_SPACING);
__privateSet(this, _wordSpacing, DEFAULT_WORD_SPACING);
__privateSet(this, _sentenceSpacing, DEFAULT_SENTENCE_SPACING);
__privateSet(this, _punctuationSpacing, DEFAULT_PUNCTUATION_SPACING);
__privateSet(this, _relativeToRootX, level === 2 ? parentElement.x : previousElement ? previousElement.x + previousElement.width + 2 : parentElement ? parentElement.x : 0);
this.parentElement = parentElement;
this.previousElement = previousElement;
if (blissObj.words) {
for (const word of blissObj.words) {
const child = new _BlissElement(word, { parentElement: this, previousElement: __privateGet(this, _children)[__privateGet(this, _children).length - 1], level: __privateGet(this, _level) + 1 });
__privateGet(this, _children).push(child);
}
this.getPath = (x = 0, y = 0) => __privateGet(this, _children).map((child) => child.getPath(__privateGet(this, _relativeToRootX) + x, __privateGet(this, _relativeToParentY) + y)).join(" ");
} else if (blissObj.characters) {
if (__privateGet(this, _level) < 1)
__privateSet(this, _level, 1);
for (const character of blissObj.characters) {
const child = new _BlissElement(character, { parentElement: this, previousElement: __privateGet(this, _children)[__privateGet(this, _children).length - 1], level: __privateGet(this, _level) + 1 });
__privateGet(this, _children).push(child);
}
this.getPath = (x = 0, y = 0) => __privateGet(this, _children).map((child) => child.getPath(__privateGet(this, _relativeToParentX) + x, __privateGet(this, _relativeToParentY) + y)).join(" ");
} else {
if (__privateGet(this, _level) < 2)
__privateSet(this, _level, 2);
const codeName = blissObj.code;
if (level === 2) {
__privateSet(this, _relativeToParentX, previousElement ? previousElement.x + previousElement.width + __privateGet(this, _charSpacing) : 0);
} else {
__privateSet(this, _relativeToParentX, blissObj.x || 0);
}
__privateSet(this, _relativeToParentY, blissObj.y || 0);
const definition = blissElementDefinitions[codeName];
if (definition) {
__privateSet(this, _codeName, codeName);
__privateSet(this, _extraPathOptions, definition.extraPathOptions || {});
__privateSet(this, _isCharacter, !!definition.isCharacter);
__privateSet(this, _isAtomic, !!definition.isAtomic);
__privateSet(this, _isExternalGlyph, !!definition.isExternalGlyph);
__privateSet(this, _width, definition.width);
__privateSet(this, _height, definition.height);
if (definition.getPath) {
this.getPath = (x = 0, y = 0) => definition.getPath(__privateGet(this, _relativeToParentX) + x, __privateGet(this, _relativeToParentY) + y, __privateGet(this, _extraPathOptions));
}
}
if (blissObj.parts) {
for (const part of blissObj.parts) {
const child = new _BlissElement(part, { parentElement: this, previousElement: __privateGet(this, _children)[__privateGet(this, _children).length - 1], level: __privateGet(this, _level) + 1 });
__privateGet(this, _children).push(child);
}
if (blissObj == null ? void 0 : blissObj.isIndicator) {
const centerOfBaseCharacter = previousElement.width / 2;
const centerOfIndicator = blissObj.center;
const widthOfIndicator = blissObj.width;
const offsetX = centerOfBaseCharacter + centerOfIndicator - widthOfIndicator / 2;
this.getPath = (x = 0, y = 0, level2 = 0) => {
const appliedOffsetX = level2 === 0 ? x + __privateGet(this, _relativeToParentX) + offsetX : x + __privateGet(this, _relativeToParentX);
const appliedOffsetY = y + __privateGet(this, _relativeToParentY);
return __privateGet(this, _children).map((child) => child.getPath(appliedOffsetX, appliedOffsetY, level2 + 1)).join(" ");
};
} else {
this.getPath = (x = 0, y = 0) => __privateGet(this, _children).map((child) => child.getPath(__privateGet(this, _relativeToParentX) + x, __privateGet(this, _relativeToParentY) + y)).join(" ");
}
}
if (!(definition == null ? void 0 : definition.getPath) && !blissObj.parts) {
throw new Error(`Code ${blissObj.code} did not correspond to a definition with a getPath function.`);
}
}
}
//get codeString() {
// return this.#codeString;
// }
get codeName() {
return __privateGet(this, _codeName) || "";
}
get width() {
if (__privateGet(this, _width) !== void 0) {
return __privateGet(this, _width);
}
if (__privateGet(this, _children)) {
let minRelativeX = Number.POSITIVE_INFINITY;
let maxRelativeXPlusWidth = Number.NEGATIVE_INFINITY;
for (let child of __privateGet(this, _children)) {
minRelativeX = Math.min(minRelativeX, child.x);
maxRelativeXPlusWidth = Math.max(maxRelativeXPlusWidth, child.x + child.width);
}
return maxRelativeXPlusWidth - minRelativeX;
}
}
get height() {
if (__privateGet(this, _height) !== void 0) {
return __privateGet(this, _height);
}
if (__privateGet(this, _isCharacter)) {
return 20;
}
if (__privateGet(this, _children)) {
return Math.max(...__privateGet(this, _children).map((child) => this.y + child.y + child.height));
}
}
get x() {
return __privateGet(this, _relativeToParentX);
}
get y() {
return __privateGet(this, _relativeToParentY);
}
//get #theOnlyChild() {
// return (this.#children.length === 1 && this.#children[0]) || {};
//}
get isCharacter() {
return __privateGet(this, _isCharacter);
}
get isAtomic() {
return __privateGet(this, _isAtomic);
}
get isExternalGlyph() {
var _a;
const isCharacterLevel = __privateGet(this, _level) === 2;
return isCharacterLevel ? !!((_a = __privateGet(this, _children)[0]) == null ? void 0 : _a.isExternalGlyph) : false;
}
get includeGrid() {
return this.optio;
}
toStringOldNotWorking() {
const obj = this.toJSON();
if (obj.atomicElements) {
return obj.atomicElements.map(({ code, x = 0, y = 0 }) => x === 0 && y === 0 ? code : `${code}:${x},${y}`).join(";");
} else {
return (obj.elements || []).filter((e) => e !== void 0 && e !== null).map(({ code, x = 0, y = 0 }) => x === 0 && y === 0 ? code : `${code}:${x},${y}`).join("/");
}
}
toStringOld2() {
const obj = this.toJSON();
const joinWith = __privateGet(this, _level) === 0 ? "//" : __privateGet(this, _level) === 1 ? "/" : ";";
return (obj.elements || []).filter((e) => e !== void 0 && e !== null).map(({ code, x = 0, y = 0 }) => x === 0 && y === 0 ? code : `${code}:${x},${y}`).join(joinWith);
}
toStringOld3() {
const obj = this.toJSON();
let joinWith = "";
switch (__privateGet(this, _level)) {
case 0:
joinWith = "//";
break;
case 1:
joinWith = "/";
break;
case 2:
default:
joinWith = ";";
break;
}
return (obj.elements || []).filter((e) => e !== void 0 && e !== null).map(({ code, x = 0, y = 0 }) => x === 0 && y === 0 ? code : `${code}:${x},${y}`).join(joinWith);
}
toStringDDD() {
const obj = this.toJSON();
return (obj.elements || []).filter((e) => e !== void 0 && e !== null).map(({ code, x = 0, y = 0, level }) => {
let joinWith = "";
switch (level) {
case 2:
joinWith = "//";
break;
case 3:
joinWith = "/";
break;
case 4:
default:
joinWith = ";";
break;
}
return x === 0 && y === 0 ? code : `${code}:${x},${y}${joinWith}`;
}).join("");
}
toStringj() {
this.toJSON();
}
toStringO() {
const obj = this.toJSON();
const processElement = ({ code, x = 0, y = 0, level, elements = [] }) => {
let joinWith = "";
switch (level) {
case 2:
joinWith = "//";
break;
case 3:
joinWith = "/";
break;
case 4:
default:
joinWith = ";";
break;
}
const elementString = x === 0 && y === 0 ? code : `${code}:${x},${y}`;
const childStrings = elements.map(processElement).join("");
return `${elementString}${joinWith}${childStrings}`;
};
return (obj.elements || []).map(processElement).join("");
}
toString() {
const obj = this.toJSON();
function traverse(obj2, level = 1) {
if (!obj2.elements) {
let str = obj2.code;
if (obj2.x !== 0 || obj2.y !== 0) {
str = `${str}:${obj2.x},${obj2.y}`;
}
return str;
}
let delimiterMap = {
1: "//",
2: "/",
3: ";"
};
let results = obj2.elements.map((subObj) => traverse(subObj, level + 1)).join(delimiterMap[level]);
return results;
}
return traverse(obj);
}
toJSON() {
let obj = {};
if (__privateGet(this, _codeName) && __privateGet(this, _isAtomic)) {
const element = {};
element.code = this.codeName;
element.width = this.width;
element.x = __privateGet(this, _relativeToParentX);
element.y = __privateGet(this, _relativeToParentY);
obj = element;
} else if (__privateGet(this, _children)) {
obj.elements = [];
for (const child of __privateGet(this, _children)) {
obj.elements.push(child.toJSON());
}
}
return obj;
}
toJSONOld4() {
const obj = {};
if (__privateGet(this, _codeName)) {
const element = {};
element.code = this.codeName;
element.width = this.width;
element.x = this.x;
element.y = this.y;
element.level = __privateGet(this, _level);
obj.elements = [];
obj.elements.push(element);
} else if (__privateGet(this, _children)) {
const elements = __privateGet(this, _children).map((child) => child.toJSON().elements);
obj.elements = [];
obj.elements = obj.elements.concat(...elements);
}
return obj;
}
toJSONOldNotWorking() {
const obj = {};
if (__privateGet(this, _codeName) && __privateGet(this, _isAtomic)) {
const element = {};
element.code = this.codeName;
element.width = this.width;
element.x = this.x;
element.y = this.y;
obj.atomicElements = [];
obj.atomicElements.push(element);
} else if (__privateGet(this, _children)) {
const elements = __privateGet(this, _children).map((child) => child.toJSON().atomicElements);
obj.elements = [];
obj.elements = obj.elements.concat(...elements);
}
return obj;
}
};
_level = new WeakMap();
_extraPathOptions = new WeakMap();
_isCharacter = new WeakMap();
_isAtomic = new WeakMap();
_isIndicator = new WeakMap();
_isExternalGlyph = new WeakMap();
_width = new WeakMap();
_height = new WeakMap();
_children = new WeakMap();
_relativeToRootX = new WeakMap();
_relativeToParentX = new WeakMap();
_relativeToParentY = new WeakMap();
_codeName = new WeakMap();
_charSpacing = new WeakMap();
_wordSpacing = new WeakMap();
_sentenceSpacing = new WeakMap();
_punctuationSpacing = new WeakMap();
_initExplicitElement = new WeakSet();
initExplicitElement_fn = function(definition) {
__privateSet(this, _width, definition.width);
__privateSet(this, _height, definition.height);
this.getPath = (x = 0, y = 0) => definition.getPath(__privateGet(this, _relativeToParentX) + x, __privateGet(this, _relativeToParentY) + y, __privateGet(this, _extraPathOptions));
};
_initImplicitElement = new WeakSet();
initImplicitElement_fn = function(parts) {
for (const part of parts) {
const child = new _BlissElement(part, __privateGet(this, _relativeToParentX));
__privateGet(this, _children).push(child);
}
this.getPath = (x = 0, y = 0) => __privateGet(this, _children).map((child) => child.getPath(x + __privateGet(this, _relativeToParentX), y + __privateGet(this, _relativeToParentY))).join(" ");
};
let BlissElement = _BlissElement;
class BlissSVGBuilder {
constructor(input) {
__privateAdd(this, _svgCode);
const blissObj = BlissParser.parse(input);
this.composition = new BlissElement(blissObj);
this.options = {
strokeWidth: 0.5,
width: this.composition.width,
height: this.composition.height,
x: this.composition.x,
y: this.composition.y,
grid: true
};
}
toString() {
return this.composition.toString();
}
toJSON() {
return this.composition.toJSON();
}
/**
* Returns the main path element of the SVG as a string.
* This is useful when you need only the primary graphical content of the SVG for manipulation or for use in complex SVG compositions.
*
* @returns {string} SVG path string
*/
get svgPath() {
return `<path d="${this.composition.getPath()}"></path>`;
}
/**
* Returns the SVG as a DOM Element.
* This property is useful when you need to directly manipulate the SVG using the native DOM API.
*
* @returns {HTMLElement} SVG DOM element
*/
get svgElement() {
const parser = new DOMParser();
const doc = parser.parseFromString(__privateGet(this, _svgCode, svgCode_get), "image/svg+xml");
return doc.documentElement;
}
/**
* Returns the SVG code as a string, without the XML declaration.
* This is suitable for embedding the SVG within HTML documents or using it with virtual DOM libraries like React and Preact.
*
* @returns {string} SVG string without XML declaration
*/
get svgCode() {
return __privateGet(this, _svgCode, svgCode_get);
}
/**
* Returns the SVG code as a string, including the XML declaration.
* This is suitable for creating standalone SVG files.
*
* @returns {string} SVG string with XML declaration
*/
get standaloneSvg() {
return `<?xml version="1.0" encoding="utf-8" standalone="yes"?>
${__privateGet(this, _svgCode, svgCode_get)}`;
}
set code(settingsAndCodesString) {
if (typeof settingsAndCodesString !== "string")
throw new Error("Code must be a string");
const settings = this.parseSettings(settingsAndCodesString);
this.validateSettings(settings);
this.applySettings(settings);
this.pathProperties.path = this.getFullPath(settingsAndCodesString);
this.pathProperties.code = settingsAndCodesString;
}
parseSettings(settingsAndCodesString) {
}
validateSettings(settings) {
}
applySettings(settings) {
}
getFullPath(settingsAndCodesString) {
}
// ...more methods...
/**
* Extends the blissElementDefinitions with custom data.
*
* @static
* @param {Object.<string, { codeString: string, isIndicator?: boolean, center?: number, width?: number }>} data
* Character code in the format { B1: { codeString: "..." }, B2: { codeString: "..." } }
* Optional properties: isIndicator, center, width.
* Use this function before invoking new to extend Bliss-SVG-Builder with custom data.
*/
static extendData(data) {
if (data) {
for (let key in data) {
let entry = data[key];
if (entry.hasOwnProperty("codeString") && typeof entry.codeString === "string") {
let validEntry = { codeString: entry.codeString };
if (entry.hasOwnProperty("isIndicator") && typeof entry.isIndicator === "boolean") {
validEntry.isIndicator = entry.isIndicator;
}
if (entry.hasOwnProperty("center") && typeof entry.center === "number") {
validEntry.center = entry.center;
}
if (entry.hasOwnProperty("width") && typeof entry.width === "number") {
validEntry.width = entry.width;
}
blissElementDefinitions[key] = validEntry;
} else {
console.warn(`Invalid entry for key: ${key}`);
}
}
}
}
}
_svgCode = new WeakSet();
svgCode_get = function() {
const color = "black";
const strokeWidth = 0.5;
const cropTop = 0;
const cropBottom = 0;
const margin = 0.75;
const width = this.composition.width;
const height = 20;
const viewBoxX = -margin;
const viewBoxY = -margin + cropTop;
const path = this.svgPath;
const viewBoxWidth = width + margin * 2;
const viewBoxHeight = height - cropTop - cropBottom + margin * 2;
const svgAttributeMultiplier = 6;
const svgWidth = svgAttributeMultiplier * viewBoxWidth;
const svgHeight = svgAttributeMultiplier * viewBoxHeight;
let title = "";
let desc = "";
let gridPath = "";
let svgText = "";
let backgroundRect = "";
let svgStr = `<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="tiny" width="${svgWidth}" height="${svgHeight}" viewBox="${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}" fill="none" stroke="${color}" stroke-linejoin="round" stroke-linecap="round" stroke-width="${strokeWidth}">
${title}${desc}${backgroundRect}${gridPath}${path}${svgText}
</svg>`;
return svgStr;
};
if (typeof module !== "undefined" && typeof module.exports !== "undefined") {
module.exports = { BlissSVGBuilder };
}
exports2.BlissSVGBuilder = BlissSVGBuilder;
Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
});