Vector Fonts - Dialog (Sample)

From SEGGER Knowledge Base [STAGING]
Jump to navigation Jump to search
GUI_VG_FONT_Example.c
File(s) required
  • GUI_VG_FONT_Example.c
Runs in simulation Yes
Runs on target Yes
Download GUI_VG_FONT_Example.c

This is an example displaying the different rendering features of vector fonts.

Demo

Code

/*********************************************************************
*                    SEGGER Microcontroller GmbH                     *
*        Solutions for real time microcontroller applications        *
**********************************************************************
*                                                                    *
*        (c) 1996 - 2025  SEGGER Microcontroller GmbH                *
*                                                                    *
*        Internet: www.segger.com    Support:  support@segger.com    *
*                                                                    *
**********************************************************************

** emWin V7.0.0 - Graphical user interface for embedded applications **
emWin is protected by international copyright laws.   Knowledge of the
source code may not be used to write a similar product.  This file may
only  be used  in accordance  with  a license  and should  not be  re-
distributed in any way. We appreciate your understanding and fairness.
----------------------------------------------------------------------
File        : GUI_VG_FONT_Example.c
Purpose     : Demonstration of vector fonts.
Requirements: WindowManager - (x)
              MemoryDevices - ( )
              AntiAliasing  - (x)
              VNC-Server    - ( )
              PNG-Library   - ( )
              TrueTypeFonts - ( )
---------------------------END-OF-HEADER------------------------------
*/

#include <stdio.h>
#include <string.h>
#include "GUI_VG.h"
#include "DIALOG.h"
#include "WM_Layout.h"
#include "FLAT_SKIN.h"

#if GUI_SUPPORT_GPU
  #include "GUI_GPU.h"
#endif

/*********************************************************************
*
*       Resources
*
**********************************************************************
*/
//
// Start of unicode area Basic Latin
//
static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_0021[] = {  // Code 0021, EXCLAMATION MARK
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_0021[] = {  // Code 0021, EXCLAMATION MARK
  807, -1405,   807, -1363,   766, -1278,   735, -1213,   643,  -968,   552,  -724, 
  532,  -666,   512,  -608,   496,  -524,   483,  -459,   406,  -459,   307,  -459, 
  307,  -557,   307,  -660,   429,  -952,   552, -1245,   618, -1353,   684, -1462, 
  745, -1462,   807, -1462,   807, -1405,   475,  -162,   475,   -93,   422,   -42, 
  369,     8,   301,     8,   249,     8,   212,   -28,   176,   -65,   176,  -117, 
  176,  -186,   231,  -238,   287,  -291,   354,  -291,   406,  -291,   440,  -254, 
  475,  -217,   475,  -162, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_0049[] = {  // Code 0049, LATIN CAPITAL LETTER I
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_0049[] = {  // Code 0049, LATIN CAPITAL LETTER I
  343,  -574,   352,  -613,   364,  -660,   377,  -708,   391,  -759,   406,  -810, 
  421,  -862,   436,  -914,   450,  -962,   465, -1010,   477, -1051,   489, -1093, 
  498, -1122,   517, -1187,   534, -1252,   551, -1318,   567, -1390,   587, -1429, 
  621, -1445,   655, -1462,   695, -1462,   727, -1445,   745, -1415,   764, -1386, 
  764, -1349,   764, -1323,   755, -1289,   747, -1256,   734, -1217,   721, -1179, 
  705, -1136,   689, -1094,   674, -1049,   646,  -967,   618,  -885,   590,  -803, 
  563,  -712,   556,  -688,   548,  -664,   540,  -640,   531,  -612,   523,  -584, 
  513,  -549,   503,  -515,   493,  -470,   481,  -417,   472,  -363,   463,  -310, 
  455,  -256,   447,  -202,   437,  -147,   427,   -92,   413,   -36,   408,   -16, 
  395,     0,   383,    15,   367,    26,   351,    37,   333,    43,   315,    49, 
  299,    49,   283,    49,   268,    46,   254,    44,   246,    35,   234,    22, 
  227,     6,   220,   -10,   220,   -28,   220,   -33,   220,   -37,   221,   -42, 
  222,   -47,   343,  -574, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_0069[] = {  // Code 0069, LATIN SMALL LETTER I
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, L, M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_0069[] = {  // Code 0069, LATIN SMALL LETTER I
  194,  -183,   209,  -241,   230,  -318,   251,  -395,   274,  -481,   298,  -567, 
  322,  -657,   346,  -747,   367,  -832,   368,  -836,   374,  -845,   380,  -855, 
  391,  -864,   402,  -874,   419,  -881,   436,  -888,   459,  -888,   476,  -888, 
  492,  -884,   508,  -881,   520,  -874,   533,  -867,   540,  -855,   548,  -844, 
  548,  -829,   548,  -826,   548,  -822,   548,  -819,   547,  -816,   519,  -710, 
  472,  -532,   423,  -353,   375,  -174,   329,     6,   327,    12,   323,    21, 
  319,    30,   312,    39,   305,    48,   295,    54,   285,    60,   271,    60, 
  245,    60,   225,    49,   205,    39,   191,    23,   177,     7,   170,   -12, 
  163,   -31,   163,   -48,   163,   -53,   163,   -57,   163,   -61,   165,   -66, 
  194,  -183,   455, -1218,   460, -1239,   473, -1269,   486, -1299,   519, -1323, 
  535, -1332,   558, -1339,   581, -1347,   591, -1347,   601, -1347,   611, -1340, 
  622, -1333,   630, -1325,   640, -1315,   649, -1303,   674, -1301,   681, -1285, 
  689, -1269,   689, -1247,   689, -1231,   686, -1218,   683, -1205,   681, -1197, 
  675, -1176,   658, -1158,   641, -1141,   619, -1128,   597, -1116,   573, -1109, 
  549, -1102,   531, -1102,   508, -1102,   495, -1110,   483, -1118,   464, -1144, 
  453, -1159,   451, -1167,   450, -1176,   450, -1182,   450, -1193,   451, -1201, 
  453, -1210,   455, -1218, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_006B[] = {  // Code 006B, LATIN SMALL LETTER K
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, L, M, L),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_006B[] = {  // Code 006B, LATIN SMALL LETTER K
  616,  -484,   596,  -484,   571,  -474,   546,  -465,   521,  -452,   496,  -439, 
  473,  -425,   450,  -411,   433,  -403,   342,   -43,   337,   -22,   317,   -11, 
  297,     0,   280,     0,   226,     0,   206,   -21,   187,   -43,   187,   -78, 
  187,   -93,   189,  -108,   192,  -124,   196,  -141,   200,  -158,   206,  -185, 
  216,  -226,   227,  -267,   239,  -312,   251,  -358,   263,  -404,   276,  -451, 
  287,  -490,   298,  -528,   319,  -603,   341,  -678,   367,  -771,   394,  -864, 
  422,  -965,   451, -1067,   476, -1159,   502, -1251,   522, -1322,   542, -1394, 
  550, -1428,   559, -1442,   578, -1451,   597, -1460,   623, -1460,   641, -1460, 
  660, -1455,   679, -1451,   694, -1441,   710, -1432,   720, -1417,   730, -1403, 
  730, -1384,   730, -1371,   724, -1353,   664, -1179,   605,  -992,   546,  -806, 
  498,  -615,   511,  -623,   546,  -648,   581,  -673,   623,  -706,   666,  -739, 
  709,  -775,   752,  -811,   781,  -840,   801,  -860,   821,  -881,   842,  -903, 
  860,  -922,   879,  -942,   893,  -957,   907,  -973,   915,  -982,   934, -1004, 
  956, -1018,   979, -1033,  1002, -1033,  1024, -1033,  1042, -1026,  1060, -1019, 
  1073, -1008,  1086,  -998,  1093,  -984,  1100,  -971,  1100,  -959,  1100,  -944, 
  1093,  -927,  1086,  -910,  1076,  -894,  1067,  -878,  1056,  -864,  1045,  -851, 
  1037,  -844,  1010,  -820,   976,  -791,   942,  -763,   905,  -733,   868,  -704, 
  829,  -674,   791,  -645,   755,  -618,   818,  -583,   858,  -524,   899,  -466, 
  923,  -394,   947,  -323,   956,  -244,   965,  -165,   965,   -90,   965,   -84, 
  964,   -71,   963,   -59,   960,   -48,   955,   -30,   948,   -15,   941,     0, 
  929,    10,   918,    21,   901,    27,   885,    33,   861,    33,   838,    33, 
  822,    25,   806,    17,   795,     4,   785,    -9,   780,   -25,   775,   -41, 
  775,   -57,   775,  -107,   772,  -160,   769,  -214,   760,  -264,   751,  -314, 
  735,  -358,   720,  -403,   695,  -435,   677,  -458,   661,  -471,   646,  -484, 
  624,  -484,   616,  -484,   806,  -934,   806,  -934, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_006C[] = {  // Code 006C, LATIN SMALL LETTER L
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, L, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_006C[] = {  // Code 006C, LATIN SMALL LETTER L
  493, -1297,   496, -1331,   501, -1371,   506, -1411,   517, -1445,   528, -1479, 
  546, -1501,   565, -1524,   594, -1524,   610, -1524,   629, -1518,   649, -1512, 
  666, -1501,   684, -1491,   696, -1476,   708, -1461,   708, -1443,   708, -1435, 
  705, -1424,   702, -1414,   700, -1404,   450,  -402,   435,  -342,   425,  -287, 
  415,  -233,   410,  -198,   410,  -174,   410,  -144,   406,  -108,   402,   -73, 
  391,   -42,   380,   -12,   360,     8,   341,    29,   310,    29,   283,    29, 
  263,    17,   243,     6,   230,   -12,   217,   -30,   211,   -50,   205,   -71, 
  205,   -89,   205,  -105,   208,  -128,   211,  -152,   215,  -177,   220,  -203, 
  225,  -228,   230,  -254,   235,  -273,   493, -1297, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_006D[] = {  // Code 006D, LATIN SMALL LETTER M
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_006D[] = {  // Code 006D, LATIN SMALL LETTER M
  197,   -66,   227,  -183,   255,  -284,   283,  -385,   309,  -477,   336,  -570, 
  361,  -657,   386,  -744,   409,  -834,   418,  -869,   419,  -901,   421,  -934, 
  429,  -969,   433,  -981,   443,  -990,   454, -1000,   467, -1007,   480, -1014, 
  494, -1018,   509, -1022,   522, -1022,   550, -1022,   568, -1015,   587, -1009, 
  598,  -998,   610,  -987,   614,  -971,   619,  -956,   619,  -937,   619,  -903, 
  608,  -868,   597,  -834,   581,  -793,   628,  -830,   677,  -863,   727,  -896, 
  779,  -921,   832,  -946,   887,  -961,   942,  -976,  1001,  -976,  1028,  -976, 
  1055,  -967,  1082,  -959,  1103,  -941,  1125,  -923,  1139,  -894,  1154,  -865, 
  1156,  -823,  1199,  -852,  1245,  -881,  1291,  -911,  1338,  -934,  1386,  -958, 
  1433,  -972,  1481,  -987,  1526,  -987,  1593,  -987,  1636,  -969,  1680,  -952, 
  1705,  -922,  1731,  -893,  1741,  -854,  1752,  -815,  1752,  -771,  1752,  -723, 
  1743,  -672,  1734,  -621,  1723,  -575,  1694,  -459,  1658,  -355,  1622,  -252, 
  1580,  -146,  1570,  -121,  1559,   -93,  1548,   -65,  1533,   -41,  1519,   -18, 
  1499,    -2,  1480,    13,  1454,    13,  1395,    13,  1373,    -7,  1351,   -27, 
  1351,   -64,  1351,   -74,  1352,   -87,  1353,  -100,  1357,  -112,  1361,  -127, 
  1375,  -155,  1389,  -184,  1405,  -217,  1422,  -250,  1438,  -283,  1454,  -317, 
  1462,  -342,  1475,  -385,  1492,  -441,  1510,  -498,  1526,  -555,  1542,  -613, 
  1552,  -664,  1563,  -716,  1563,  -748,  1563,  -763,  1560,  -778,  1557,  -793, 
  1549,  -804,  1542,  -815,  1528,  -822,  1515,  -829,  1494,  -829,  1464,  -829, 
  1422,  -812,  1381,  -795,  1336,  -767,  1292,  -740,  1250,  -705,  1208,  -671, 
  1178,  -637,  1157,  -613,  1138,  -598,  1119,  -583,  1100,  -575,  1098,  -571, 
  1090,  -548,  1082,  -526,  1071,  -494,  1060,  -463,  1048,  -426,  1036,  -390, 
  1025,  -358,  1015,  -327,  1008,  -305,  1001,  -284,  1001,  -282,   994,  -254, 
  989,  -224,   984,  -195,   980,  -168,   976,  -141,   972,  -110,   969,   -80, 
  958,   -53,   948,   -27,   926,   -10,   905,     7,   866,     7,   846,     7, 
  829,    -3,   813,   -13,   801,   -28,   789,   -44,   782,   -63,   775,   -83, 
  774,  -103,   797,  -193,   819,  -265,   841,  -337,   863,  -403,   885,  -469, 
  905,  -535,   926,  -602,   946,  -682,   951,  -701,   954,  -719,   957,  -738, 
  957,  -752,   957,  -776,   947,  -791,   937,  -807,   912,  -807,   871,  -807, 
  830,  -790,   790,  -774,   743,  -739,   696,  -704,   638,  -650,   581,  -596, 
  506,  -521,   498,  -506,   485,  -465,   472,  -424,   458,  -378,   445,  -332, 
  434,  -292,   423,  -253,   420,  -240,   409,  -198,   405,  -169,   401,  -141, 
  398,  -118,   396,  -106,   392,   -78,   388,   -51,   377,   -23,   367,     5, 
  348,    26,   329,    48,   298,    48,   252,    48,   222,    23,   193,    -2, 
  193,   -40,   193,   -47,   194,   -53,   195,   -59,   197,   -66, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_006F[] = {  // Code 006F, LATIN SMALL LETTER O
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_006F[] = {  // Code 006F, LATIN SMALL LETTER O
  206, -383,  221, -444,  252, -512,  284, -581,  335, -651,  386, -721, 
  457, -788,  529, -855,  623, -913,  638, -922,  669, -932,  700, -943, 
  733, -945,  772, -987,  838, -987,  916, -987,  969, -947, 1023, -908, 
  1058, -840, 1069, -818, 1078, -797, 1088, -776, 1094, -752, 1101, -729, 
  1105, -702, 1109, -675, 1109, -641, 1109, -562, 1084, -480, 1059, -398, 
  1013, -320,  967, -242,  901, -170,  836,  -99,  756,  -42,  702,   -3, 
  636,   18,  571,   40,  490,   40,  413,   40,  356,   19,  300,   -1, 
  262,  -39,  225,  -77,  206, -130,  188, -183,  188, -248,  188, -311, 
  206, -383,  372, -370,  366, -347,  363, -326,  361, -306,  361, -287, 
  361, -254,  369, -225,  378, -197,  397, -176,  416, -156,  444, -144, 
  473, -133,  514, -133,  590, -133,  655, -171,  721, -210,  772, -268, 
  823, -326,  857, -392,  892, -459,  906, -515,  915, -550,  921, -581, 
  928, -612,  928, -638,  928, -664,  918, -686,  909, -709,  894, -737, 
  885, -754,  876, -772,  867, -791,  860, -809,  852, -795,  843, -784, 
  834, -774,  816, -765,  798, -757,  767, -750,  736, -743,  686, -738, 
  653, -727,  619, -704,  585, -681,  552, -650,  520, -619,  490, -583, 
  461, -547,  437, -509,  414, -472,  396, -436,  379, -400,  372, -370, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_0070[] = {  // Code 0070, LATIN SMALL LETTER P
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_0070[] = {  // Code 0070, LATIN SMALL LETTER P
  109,  370,  129,  289,  144,  221,  160,  154,  173,   94,  186,   35, 
  197,  -20,  209,  -76,  220, -132,  232, -189,  244, -250,  257, -311, 
  272, -383,  320, -615,  332, -674,  336, -716,  341, -759,  341, -795, 
  341, -833,  343, -862,  345, -892,  354, -912,  363, -933,  380, -943, 
  398, -954,  429, -954,  474, -954,  499, -941,  524, -929,  536, -909, 
  548, -889,  550, -863,  553, -837,  553, -809,  587, -833,  632, -852, 
  678, -871,  727, -883,  776, -896,  826, -903,  876, -910,  920, -910, 
  992, -910, 1046, -884, 1100, -859, 1136, -816, 1172, -774, 1190, -718, 
  1208, -663, 1208, -604, 1208, -535, 1186, -474, 1164, -413, 1126, -360, 
  1088, -307, 1037, -261,  987, -216,  928, -178,  870, -140,  807, -108, 
  745,  -77,  684,  -52,  643,  -35,  606,  -26,  570,  -18,  541,  -18, 
  500,  -18,  461,  -27,  423,  -36,  387,  -57,  367,   11,  353,   73, 
  340,  135,  332,  183,  327,  213,  320,  246,  313,  279,  306,  310, 
  299,  342,  292,  370,  286,  398,  282,  418,  279,  430,  267,  438, 
  256,  446,  240,  451,  224,  457,  207,  459,  191,  462,  178,  462, 
  104,  462,  104,  404,  104,  388,  109,  370,  419, -210,  434, -208, 
  451, -205,  468, -202,  484, -199,  500, -196,  511, -193,  523, -191, 
  527, -191,  546, -191,  569, -196,  593, -201,  616, -209,  640, -217, 
  662, -226,  684, -236,  701, -245,  750, -270,  805, -305,  861, -341, 
  908, -387,  956, -433,  987, -490, 1018, -547, 1018, -616, 1018, -644, 
  1011, -668, 1004, -692,  990, -710,  976, -728,  953, -738,  931, -749, 
  900, -749,  866, -749,  836, -744,  806, -740,  777, -730,  748, -720, 
  719, -704,  690, -689,  659, -667,  631, -644,  596, -626,  561, -609, 
  520, -604,  419, -210, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_0072[] = {  // Code 0072, LATIN SMALL LETTER R
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, L, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_0072[] = {  // Code 0072, LATIN SMALL LETTER R
  216, -103,  229, -173,  246, -257,  263, -341,  281, -427,  299, -513, 
  316, -596,  333, -679,  345, -748,  344, -758,  344, -765,  344, -773, 
  344, -782,  344, -813,  348, -844,  352, -875,  359, -901,  370, -939, 
  383, -952,  397, -966,  427, -966,  456, -966,  473, -954,  491, -943, 
  501, -924,  511, -905,  514, -880,  517, -856,  517, -830,  517, -816, 
  516, -799,  515, -782,  515, -772,  543, -801,  574, -831,  606, -862, 
  641, -886,  677, -911,  716, -927,  756, -943,  799, -943,  816, -943, 
  832, -940,  849, -937,  866, -932,  886, -927,  907, -918,  929, -910, 
  949, -895,  982, -870, 1004, -832, 1027, -795, 1027, -756, 1027, -741, 
  1021, -723, 1015, -706, 1004, -691,  994, -677,  980, -667,  966, -658, 
  949, -658,  932, -658,  907, -666,  883, -675,  867, -689,  860, -695, 
  852, -706,  845, -717,  838, -728,  832, -739,  826, -748,  821, -758, 
  818, -761,  813, -762,  807, -762,  801, -763,  796, -763,  745, -763, 
  699, -737,  653, -711,  613, -673,  573, -636,  539, -593,  506, -551, 
  481, -517,  461, -436,  436, -344,  412, -253,  388, -153,  388, -128, 
  388,  -98,  386,  -67,  384,  -36,  374,  -12,  363,    3,  342,   13, 
  322,   24,  295,   24,  253,   24,  232,   -3,  211,  -31,  211,  -68, 
  211,  -85,  216, -103, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_0073[] = {  // Code 0073, LATIN SMALL LETTER S
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_0073[] = {  // Code 0073, LATIN SMALL LETTER S
  220, -177,  228, -177,  234, -175,  241, -173,  249, -170,  257, -168, 
  267, -166,  277, -164,  293, -164,  340, -164,  397, -174,  455, -184, 
  506, -200,  557, -216,  593, -236,  630, -257,  635, -279,  638, -291, 
  638, -300,  638, -317,  621, -332,  605, -348,  580, -362,  555, -376, 
  526, -388,  497, -400,  472, -410,  438, -424,  412, -434,  387, -448, 
  362, -463,  340, -482,  319, -501,  302, -526,  286, -552,  278, -585, 
  274, -599,  271, -613,  269, -627,  269, -643,  269, -669,  286, -702, 
  304, -736,  333, -769,  363, -802,  400, -832,  438, -862,  479, -882, 
  509, -903,  537, -920,  565, -937,  593, -949,  622, -961,  651, -968, 
  681, -975,  714, -975,  744, -975,  779, -972,  814, -969,  843, -958, 
  872, -947,  891, -925,  911, -904,  911, -868,  911, -857,  908, -839, 
  905, -821,  898, -803,  891, -785,  881, -772,  871, -759,  857, -759, 
  834, -759,  819, -768,  804, -777,  792, -787,  780, -798,  767, -807, 
  754, -816,  735, -816,  712, -816,  681, -807,  651, -799,  619, -784, 
  587, -770,  556, -751,  526, -732,  501, -712,  477, -692,  462, -672, 
  447, -653,  447, -637,  447, -620,  458, -609,  469, -598,  486, -590, 
  508, -578,  536, -566,  565, -554,  594, -542,  623, -530,  650, -518, 
  678, -506,  698, -496,  725, -482,  746, -468,  768, -455,  783, -439, 
  798, -423,  806, -403,  814, -383,  814, -356,  814, -343,  812, -330, 
  810, -317,  806, -300,  803, -285,  795, -265,  788, -245,  779, -225, 
  771, -206,  762, -190,  753, -175,  747, -170,  708, -134,  655, -102, 
  602,  -71,  544,  -47,  487,  -24,  429,  -10,  372,    4,  324,    4, 
  300,    4,  271,   -5,  242,  -15,  217,  -30,  193,  -46,  176,  -66, 
  160,  -86,  160, -106,  160, -116,  166, -128,  172, -141,  181, -151, 
  190, -162,  200, -169,  211, -177,  220, -177, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_0074[] = {  // Code 0074, LATIN SMALL LETTER T
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, L, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_0074[] = {  // Code 0074, LATIN SMALL LETTER T
  339,  -311,   339,  -395,   358,  -485,   377,  -576,   398,  -659,   372,  -660, 
  345,  -667,   318,  -674,   296,  -686,   274,  -698,   260,  -715,   246,  -733, 
  246,  -756,   246,  -765,   250,  -779,   254,  -793,   261,  -806,   269,  -820, 
  281,  -829,   293,  -839,   308,  -839,   442,  -839,   461,  -839,   468,  -855, 
  475,  -872,   479,  -888,   492,  -946,   503,  -988,   515, -1031,   523, -1060, 
  531, -1090,   535, -1108,   540, -1127,   540, -1138,   540, -1151,   539, -1163, 
  538, -1175,   538, -1196,   538, -1206,   538, -1214,   539, -1227,   541, -1240, 
  549, -1264,   555, -1283,   571, -1300,   587, -1317,   618, -1317,   645, -1317, 
  664, -1306,   683, -1295,   695, -1277,   707, -1259,   713, -1236,   719, -1213, 
  719, -1190,   719, -1165,   714, -1145,   641,  -865,   695,  -874,   737,  -882, 
  779,  -890,   821,  -898,   867,  -907,   900,  -915,   934,  -923,   958,  -928, 
  982,  -934,   998,  -937,  1015,  -941,  1026,  -941,  1042,  -941,  1058,  -938, 
  1075,  -936,  1087,  -930,  1100,  -924,  1108,  -913,  1116,  -902,  1116,  -884, 
  1116,  -860,  1106,  -841,  1097,  -823,  1082,  -809,  1067,  -796,  1048,  -787, 
  1029,  -779,  1010,  -775,   994,  -772,   968,  -766,   943,  -760,   912,  -753, 
  882,  -746,   849,  -738,   816,  -730,   785,  -722,   739,  -710,   706,  -702, 
  674,  -694,   651,  -690,   628,  -686,   613,  -684,   599,  -682,   590,  -682, 
  571,  -625,   557,  -570,   543,  -515,   533,  -467,   524,  -420,   519,  -382, 
  515,  -345,   515,  -324,   515,  -297,   520,  -272,   525,  -248,   537,  -230, 
  549,  -212,   569,  -201,   590,  -191,   621,  -191,   674,  -191,   725,  -220, 
  776,  -249,   822,  -293,   869,  -338,   910,  -391,   952,  -444,   987,  -492, 
  999,  -510,  1018,  -510,  1024,  -510,  1032,  -508,  1041,  -506,  1049,  -501, 
  1057,  -496,  1062,  -488,  1068,  -480,  1068,  -469,  1068,  -461,  1067,  -457, 
  1051,  -395,  1017,  -332,   984,  -270,   949,  -207,   937,  -185,   917,  -164, 
  898,  -143,   875,  -123,   852,  -104,   827,   -86,   802,   -69,   780,   -55, 
  742,   -31,   697,   -22,   652,   -13,   610,   -13,   545,   -13,   494,   -36, 
  444,   -60,   409,  -100,   375,  -141,   357,  -195,   339,  -249,   339,  -311, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_0077[] = {  // Code 0077, LATIN SMALL LETTER W
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, L, L, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L),
  GUI_VG_SEGMENTS(Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_0077[] = {  // Code 0077, LATIN SMALL LETTER W
  324, -894,  342, -933,  365, -946,  388, -960,  418, -960,  447, -960, 
  467, -951,  487, -942,  499, -927,  511, -912,  516, -892,  521, -872, 
  521, -849,  521, -842,  521, -835,  521, -829,  520, -822,  519, -813, 
  515, -789,  511, -766,  505, -734,  500, -702,  493, -666,  487, -631, 
  481, -599,  476, -567,  471, -543,  467, -519,  465, -510,  463, -500, 
  460, -481,  457, -462,  454, -437,  451, -413,  449, -385,  447, -357, 
  447, -329,  447, -302,  449, -277,  451, -253,  456, -234,  462, -216, 
  470, -205,  479, -194,  492, -194,  501, -194,  518, -208,  536, -223, 
  555, -243,  575, -263,  594, -285,  613, -308,  625, -323,  690, -403, 
  744, -485,  799, -568,  846, -652,  864, -685,  873, -719,  883, -753, 
  896, -780,  909, -808,  932, -825,  956, -843, 1003, -843, 1028, -843, 
  1054, -826, 1080, -809, 1090, -777, 1087, -740, 1081, -701, 1075, -662, 
  1070, -621, 1065, -581, 1061, -541, 1057, -501, 1057, -463, 1057, -404, 
  1069, -353, 1081, -303, 1113, -268, 1152, -317, 1190, -379, 1229, -441, 
  1266, -508, 1303, -575, 1336, -643, 1370, -712, 1399, -774, 1401, -779, 
  1401, -783, 1402, -788, 1402, -793, 1402, -802, 1402, -833, 1419, -866, 
  1437, -899, 1461, -926, 1485, -953, 1510, -970, 1536, -987, 1553, -987, 
  1595, -987, 1619, -964, 1643, -941, 1643, -903, 1643, -891, 1638, -873, 
  1634, -855, 1624, -837, 1287, -243, 1262, -194, 1246, -163, 1230, -134, 
  1215, -105, 1196,  -83, 1178,  -61, 1155,  -48, 1133,  -35, 1104,  -35, 
  1065,  -35, 1034,  -57, 1004,  -79,  982, -111,  960, -143,  945, -180, 
  931, -218,  924, -248,  887, -408,  884, -408,  866, -387,  848, -366, 
  821, -333,  794, -300,  762, -260,  730, -221,  699, -184,  669, -148, 
  643, -118,  618,  -89,  604,  -77,  590,  -65,  574,  -53,  559,  -41, 
  544,  -32,  529,  -23,  515,  -17,  502,  -11,  493,  -11,  427,  -11, 
  383,  -42,  340,  -73,  314, -123,  289, -173,  279, -234,  269, -296, 
  269, -358,  269, -413,  274, -469,  280, -525,  287, -579,  295, -634, 
  303, -685,  312, -736,  318, -780,  319, -788,  319, -798,  320, -809, 
  320, -820,  320, -846,  320, -862,  320, -875,  321, -889,  324, -894, 
};

static GUI_CONST_STORAGE U8 _acSegMVBoliRegular_0079[] = {  // Code 0079, LATIN SMALL LETTER Y
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(L, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdMVBoliRegular_0079[] = {  // Code 0079, LATIN SMALL LETTER Y
  190,  462,  175,  462,  163,  454,  151,  446,  142,  433,  134,  420, 
  129,  404,  124,  389,  124,  374,  124,  355,  129,  341,  134,  327, 
  141,  316,  149,  306,  157,  300,  166,  294,  173,  291,  197,  285, 
  229,  278,  261,  271,  298,  257,  336,  244,  378,  222,  421,  201, 
  466,  166,  511,  131,  560,   84,  610,   38,  656,  -24,  702,  -87, 
  742, -167,  782, -248,  808, -352,  789, -331,  764, -304,  740, -278, 
  712, -250,  684, -223,  654, -197,  624, -172,  594, -151,  564, -131, 
  535, -119,  507, -107,  482, -107,  415, -107,  368, -137,  321, -168, 
  281, -238,  270, -258,  264, -290,  258, -322,  258, -355,  258, -409, 
  263, -460,  268, -511,  278, -566,  288, -621,  301, -681,  315, -742, 
  332, -815,  333, -834,  335, -851,  337, -865,  337, -878,  338, -891, 
  339, -894,  341, -911,  350, -926,  360, -941,  373, -952,  387, -963, 
  402, -969,  418, -975,  433, -975,  454, -975,  475, -971,  496, -968, 
  508, -956,  525, -938,  533, -909,  542, -880,  542, -857,  542, -848, 
  533, -821,  525, -794,  509, -765,  485, -675,  470, -612,  455, -550, 
  446, -508,  438, -467,  434, -442,  431, -418,  431, -405,  431, -351, 
  449, -319,  467, -287,  493, -287,  508, -287,  527, -293,  547, -299, 
  569, -313,  653, -365,  713, -426,  774, -488,  817, -562,  861, -637, 
  892, -726,  924, -815,  950, -922,  952, -929,  959, -936,  967, -943, 
  977, -948,  988, -953, 1000, -956, 1012, -960, 1023, -960, 1076, -960, 
  1104, -931, 1133, -903, 1133, -855, 1133, -837, 1124, -797, 1115, -757, 
  1103, -712, 1091, -668, 1078, -627, 1066, -587, 1059, -568, 1011, -429, 
  978, -335,  951, -256,  925, -177,  895, -108,  865,  -40,  827,   21, 
  790,   82,  737,  140,  684,  198,  611,  256,  538,  315,  437,  378, 
  375,  415,  315,  438,  256,  462,  190,  462, 
};

static U16 _aCodePages_MVBoliRegular[] = {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 
};

static I16 _aPageSizes_MVBoliRegular[] = {
  14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
};

static GUI_CONST_STORAGE GUI_VG_FONT_GLYPH_INT _aGlyphs_MVBoliRegular[] = {
  { { 1000,    0,    0,    0,    0,                                0 }, 0x0020,                     NULL,                     NULL },
  { {  745,  176, 1462,  631, 1470, sizeof(_acSegMVBoliRegular_0021) }, 0x0021, _acSegMVBoliRegular_0021, _acCrdMVBoliRegular_0021 },
  { {  599,  220, 1462,  544, 1511, sizeof(_acSegMVBoliRegular_0049) }, 0x0049, _acSegMVBoliRegular_0049, _acCrdMVBoliRegular_0049 },
  { {  518,  163, 1347,  526, 1407, sizeof(_acSegMVBoliRegular_0069) }, 0x0069, _acSegMVBoliRegular_0069, _acCrdMVBoliRegular_0069 },
  { {  987,  187, 1460,  913, 1493, sizeof(_acSegMVBoliRegular_006B) }, 0x006B, _acSegMVBoliRegular_006B, _acCrdMVBoliRegular_006B },
  { {  516,  205, 1524,  503, 1553, sizeof(_acSegMVBoliRegular_006C) }, 0x006C, _acSegMVBoliRegular_006C, _acCrdMVBoliRegular_006C },
  { { 1759,  193, 1022, 1559, 1070, sizeof(_acSegMVBoliRegular_006D) }, 0x006D, _acSegMVBoliRegular_006D, _acCrdMVBoliRegular_006D },
  { { 1083,  188,  987,  921, 1027, sizeof(_acSegMVBoliRegular_006F) }, 0x006F, _acSegMVBoliRegular_006F, _acCrdMVBoliRegular_006F },
  { { 1156,  104,  954, 1104, 1416, sizeof(_acSegMVBoliRegular_0070) }, 0x0070, _acSegMVBoliRegular_0070, _acCrdMVBoliRegular_0070 },
  { {  872,  211,  966,  816,  990, sizeof(_acSegMVBoliRegular_0072) }, 0x0072, _acSegMVBoliRegular_0072, _acCrdMVBoliRegular_0072 },
  { {  847,  160,  975,  751,  979, sizeof(_acSegMVBoliRegular_0073) }, 0x0073, _acSegMVBoliRegular_0073, _acCrdMVBoliRegular_0073 },
  { { 1081,  246, 1317,  870, 1304, sizeof(_acSegMVBoliRegular_0074) }, 0x0074, _acSegMVBoliRegular_0074, _acCrdMVBoliRegular_0074 },
  { { 1503,  269,  987, 1374,  976, sizeof(_acSegMVBoliRegular_0077) }, 0x0077, _acSegMVBoliRegular_0077, _acCrdMVBoliRegular_0077 },
  { { 1081,  124,  975, 1009, 1437, sizeof(_acSegMVBoliRegular_0079) }, 0x0079, _acSegMVBoliRegular_0079, _acCrdMVBoliRegular_0079 },
};

GUI_CONST_STORAGE GUI_VG_FONT_DATA_INT GUI_VectorFont_MVBoliRegular = {
  {                                                                   
    2333,                                                             // Baseline (unscaled)
    3300,                                                             // Font height (unscaled)
    2712,                                                             // Boundary box height (unscaled)
    2940,                                                             // Boundary box width (unscaled)
    2048,                                                             // Units per EM
    1453,                                                             // Height of capital characters
    946,                                                              // Height of lower-case characters
    (GUI_VG_FONTFLAG_SCALE_BBOX | GUI_VG_FONTFLAG_KERNING_DISABLED),  // Font flags
  },                                                                  
  _aCodePages_MVBoliRegular,                                          // Code page array
  _aPageSizes_MVBoliRegular,                                          // Page size array
  _aGlyphs_MVBoliRegular,                                             // Glyph array
  NULL,                                                               // Kerning array
  0,                                                                  // Kerning array size
};


//
// Start of unicode area Basic Latin
//
static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_0021[] = {  // Code 0021, EXCLAMATION MARK
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_0021[] = {  // Code 0021, EXCLAMATION MARK
  461,   -92,   461,   -43,   426,    -7,   392,    29,   340,    29,   288,    29, 
  253,    -7,   219,   -43,   219,   -92,   219,  -143,   254,  -178,   289,  -213, 
  340,  -213,   391,  -213,   426,  -178,   461,  -143,   461,   -92,   231, -1341, 
  449, -1341,   387,  -389,   293,  -389,   231, -1341, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_0049[] = {  // Code 0049, LATIN CAPITAL LETTER I
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_0049[] = {  // Code 0049, LATIN CAPITAL LETTER I
  438,   -80,   610,   -53,   610,     0,    74,     0,    74,   -53,   246,   -80, 
  246, -1262,    74, -1288,    74, -1341,   610, -1341,   610, -1288,   438, -1262, 
  438,   -80, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_0069[] = {  // Code 0069, LATIN SMALL LETTER I
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, M, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_0069[] = {  // Code 0069, LATIN SMALL LETTER I
  379, -1247,   379, -1203,   347, -1171,   315, -1139,   270, -1139,   226, -1139, 
  194, -1171,   162, -1203,   162, -1247,   162, -1292,   194, -1324,   226, -1356, 
  270, -1356,   315, -1356,   347, -1324,   379, -1292,   379, -1247,   369,   -70, 
  530,   -45,   530,     0,    43,     0,    43,   -45,   203,   -70,   203,  -870, 
  70,  -895,    70,  -940,   369,  -940,   369,   -70, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_006B[] = {  // Code 006B, LATIN SMALL LETTER K
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L),
  GUI_VG_SEGMENTS(L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_006B[] = {  // Code 006B, LATIN SMALL LETTER K
  344,  -453,   729,  -868,   631,  -895,   631,  -940,   963,  -940,   963,  -895, 
  846,  -872,   578,  -598,   922,   -68,  1024,   -45,  1024,     0,   639,     0, 
  639,   -45,   725,   -70,   467,  -475,   344,  -340,   344,   -70,   444,   -45, 
  444,     0,    59,     0,    59,   -45,   178,   -70,   178, -1352,    39, -1376, 
  39, -1421,   344, -1421,   344,  -453, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_006C[] = {  // Code 006C, LATIN SMALL LETTER L
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_006C[] = {  // Code 006C, LATIN SMALL LETTER L
  367,   -70,   528,   -45,   528,     0,    41,     0,    41,   -45,   201,   -70, 
  201, -1352,    41, -1376,    41, -1421,   367, -1421,   367,   -70, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_006D[] = {  // Code 006D, LATIN SMALL LETTER M
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, L, L, L, L, L, L, L, Q, Q, Q, Q, Q, Q, L),
  GUI_VG_SEGMENTS(L, L, L, L, L, L, Q, Q, Q, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_006D[] = {  // Code 006D, LATIN SMALL LETTER M
  326, -864,  401, -907,  485, -936,  569, -965,  633, -965,  702, -965, 
  760, -939,  819, -913,  848, -856,  925, -899, 1028, -932, 1132, -965, 
  1200, -965, 1440, -965, 1440, -688, 1440,  -70, 1561,  -45, 1561,    0, 
  1134,    0, 1134,  -45, 1274,  -70, 1274, -670, 1274, -842, 1114, -842, 
  1088, -842, 1053, -838, 1019, -834,  984, -829,  950, -824,  918, -817, 
  887, -811,  866, -807,  883, -753,  883, -688,  883,  -70, 1024,  -45, 
  1024,    0,  578,    0,  578,  -45,  717,  -70,  717, -670,  717, -753, 
  674, -797,  632, -842,  547, -842,  459, -842,  328, -813,  328,  -70, 
  469,  -45,  469,    0,   43,    0,   43,  -45,  162,  -70,  162, -870, 
  43, -895,   43, -940,  318, -940,  326, -864, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_006F[] = {  // Code 006F, LATIN SMALL LETTER O
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_006F[] = {  // Code 006F, LATIN SMALL LETTER O
  946, -475,  946,   20,  506,   20,  294,   20,  186, -107,   78, -234, 
  78, -475,   78, -713,  186, -839,  294, -965,  514, -965,  728, -965, 
  837, -841,  946, -718,  946, -475,  766, -475,  766, -691,  703, -788, 
  640, -885,  506, -885,  375, -885,  316, -792,  258, -699,  258, -475, 
  258, -248,  317, -153,  377,  -59,  506,  -59,  638,  -59,  702, -157, 
  766, -255,  766, -475, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_0070[] = {  // Code 0070, LATIN SMALL LETTER P
  GUI_VG_SEGMENTS(M, L, L, L, L, Q, Q, Q, Q, Q, Q, Q, Q, L, L, L, L, L, L, L, M, Q),
  GUI_VG_SEGMENTS(Q, Q, L, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_0070[] = {  // Code 0070, LATIN SMALL LETTER P
  152, -870,   45, -895,   45, -940,  309, -940,  311, -885,  353, -921, 
  423, -943,  494, -965,  567, -965,  747, -965,  845, -840,  944, -715, 
  944, -481,  944, -242,  836, -111,  729,   20,  526,   20,  413,   20, 
  311,   -2,  317,   70,  317,  111,  317,  365,  481,  389,  481,  436, 
  33,  436,   33,  389,  152,  365,  152, -870,  764, -481,  764, -673, 
  701, -766,  639, -860,  512, -860,  395, -860,  317, -827,  317,  -76, 
  406,  -59,  512,  -59,  764,  -59,  764, -481, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_0072[] = {  // Code 0072, LATIN SMALL LETTER R
  GUI_VG_SEGMENTS(M, L, L, L, Q, Q, L, L, L, L, L, L, L, L, L, L, L, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_0072[] = {  // Code 0072, LATIN SMALL LETTER R
  664, -965,  664, -711,  621, -711,  563, -821,  513, -821,  444, -807, 
  376, -794,  326, -772,  326,  -70,  487,  -45,  487,    0,   41,    0, 
  41,  -45,  160,  -70,  160, -870,   41, -895,   41, -940,  315, -940, 
  324, -823,  384, -873,  486, -919,  589, -965,  649, -965,  664, -965, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_0073[] = {  // Code 0073, LATIN SMALL LETTER S
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, L, L, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, L, L, L, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_0073[] = {  // Code 0073, LATIN SMALL LETTER S
  723, -264,  723, -124,  634,  -52,  546,   20,  373,   20,  303,   20, 
  218,    5,  134,   -9,   86,  -27,   86, -258,  131, -258,  180, -127, 
  255,  -59,  375,  -59,  569,  -59,  569, -225,  569, -347,  416, -399, 
  327, -428,  226, -461,  180, -495,  134, -529,  109, -578,   84, -628, 
  84, -698,   84, -822,  168, -893,  253, -965,  397, -965,  500, -965, 
  655, -934,  655, -729,  608, -729,  566, -838,  513, -885,  399, -885, 
  318, -885,  275, -845,  233, -805,  233, -737,  233, -680,  271, -641, 
  310, -602,  388, -576,  535, -526,  580, -503,  625, -480,  656, -446, 
  688, -413,  705, -370,  723, -327,  723, -264, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_0074[] = {  // Code 0074, LATIN SMALL LETTER T
  GUI_VG_SEGMENTS(M, Q, Q, L, L, L, L, L, L, L, L, L, L, L, Q, Q, Q, L, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_0074[] = {  // Code 0074, LATIN SMALL LETTER T
  334,    20,   238,    20,   190,   -37,   143,   -94,   143,  -197,   143,  -856, 
  20,  -856,    20,  -901,   145,  -940,   246, -1153,   309, -1153,   309,  -940, 
  524,  -940,   524,  -856,   309,  -856,   309,  -215,   309,  -150,   338,  -117, 
  368,   -84,   416,   -84,   474,   -84,   557,  -100,   557,   -35,   522,   -11, 
  456,     4,   390,    20,   334,    20, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_0077[] = {  // Code 0077, LATIN SMALL LETTER W
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_0077[] = {  // Code 0077, LATIN SMALL LETTER W
  1051,   20,  973,   20,  741, -600,  512,   20,  438,   20,  113, -870, 
  2, -895,    2, -940,  449, -940,  449, -895,  293, -868,  516, -233, 
  743, -846,  827, -846, 1053, -229, 1266, -870, 1112, -895, 1112, -940, 
  1470, -940, 1470, -895, 1366, -874, 1051,   20, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSerifRegular_0079[] = {  // Code 0079, LATIN SMALL LETTER Y
  GUI_VG_SEGMENTS(M, Q, L, L, L, Q, Q, Q, Q, L, L, L, L, L, L, L, L, L, L, L, L, L),
  GUI_VG_SEGMENTS(L, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSerifRegular_0079[] = {  // Code 0079, LATIN SMALL LETTER Y
  199,  442,  121,  442,   45,  424,   45,  221,   92,  221,  125,  317, 
  156,  340,  211,  340,  263,  340,  307,  310,  351,  280,  387,  221, 
  424,  162,  479,   10,  121, -870,   25, -895,   25, -940,  461, -940, 
  461, -895,  313, -868,  567, -211,  813, -870,  666, -895,  666, -940, 
  1016, -940, 1016, -895,  918, -874,  551,   59,  486,  224,  438,  296, 
  390,  368,  332,  405,  274,  442,  199,  442, 
};

static U16 _aCodePages_LiberationSerifRegular[] = {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 
};

static I16 _aPageSizes_LiberationSerifRegular[] = {
  14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
};

static GUI_CONST_STORAGE GUI_VG_FONT_GLYPH_INT _aGlyphs_LiberationSerifRegular[] = {
  { {  512,    0,    0,    0,    0,                                         0 }, 0x0020,                              NULL,                              NULL },
  { {  682,  219, 1341,  242, 1370, sizeof(_acSegLiberationSerifRegular_0021) }, 0x0021, _acSegLiberationSerifRegular_0021, _acCrdLiberationSerifRegular_0021 },
  { {  682,   74, 1341,  536, 1341, sizeof(_acSegLiberationSerifRegular_0049) }, 0x0049, _acSegLiberationSerifRegular_0049, _acCrdLiberationSerifRegular_0049 },
  { {  569,   43, 1356,  487, 1356, sizeof(_acSegLiberationSerifRegular_0069) }, 0x0069, _acSegLiberationSerifRegular_0069, _acCrdLiberationSerifRegular_0069 },
  { { 1024,   39, 1421,  985, 1421, sizeof(_acSegLiberationSerifRegular_006B) }, 0x006B, _acSegLiberationSerifRegular_006B, _acCrdLiberationSerifRegular_006B },
  { {  569,   41, 1421,  487, 1421, sizeof(_acSegLiberationSerifRegular_006C) }, 0x006C, _acSegLiberationSerifRegular_006C, _acCrdLiberationSerifRegular_006C },
  { { 1593,   43,  965, 1518,  965, sizeof(_acSegLiberationSerifRegular_006D) }, 0x006D, _acSegLiberationSerifRegular_006D, _acCrdLiberationSerifRegular_006D },
  { { 1024,   78,  965,  868,  985, sizeof(_acSegLiberationSerifRegular_006F) }, 0x006F, _acSegLiberationSerifRegular_006F, _acCrdLiberationSerifRegular_006F },
  { { 1024,   33,  965,  911, 1401, sizeof(_acSegLiberationSerifRegular_0070) }, 0x0070, _acSegLiberationSerifRegular_0070, _acCrdLiberationSerifRegular_0070 },
  { {  682,   41,  965,  623,  965, sizeof(_acSegLiberationSerifRegular_0072) }, 0x0072, _acSegLiberationSerifRegular_0072, _acCrdLiberationSerifRegular_0072 },
  { {  797,   84,  965,  639,  985, sizeof(_acSegLiberationSerifRegular_0073) }, 0x0073, _acSegLiberationSerifRegular_0073, _acCrdLiberationSerifRegular_0073 },
  { {  569,   20, 1153,  537, 1173, sizeof(_acSegLiberationSerifRegular_0074) }, 0x0074, _acSegLiberationSerifRegular_0074, _acCrdLiberationSerifRegular_0074 },
  { { 1479,    2,  940, 1468,  960, sizeof(_acSegLiberationSerifRegular_0077) }, 0x0077, _acSegLiberationSerifRegular_0077, _acCrdLiberationSerifRegular_0077 },
  { { 1024,   25,  940,  991, 1382, sizeof(_acSegLiberationSerifRegular_0079) }, 0x0079, _acSegLiberationSerifRegular_0079, _acCrdLiberationSerifRegular_0079 },
};

GUI_CONST_STORAGE GUI_VG_FONT_DATA_INT GUI_VectorFont_LiberationSerifRegular = {
  {                                                                   
    1825,                                                             // Baseline (unscaled)
    2355,                                                             // Font height (unscaled)
    2631,                                                             // Boundary box height (unscaled)
    3732,                                                             // Boundary box width (unscaled)
    2048,                                                             // Units per EM
    1352,                                                             // Height of capital characters
    981,                                                              // Height of lower-case characters
    (GUI_VG_FONTFLAG_SCALE_BBOX | GUI_VG_FONTFLAG_KERNING_DISABLED),  // Font flags
  },                                                                  
  _aCodePages_LiberationSerifRegular,                                 // Code page array
  _aPageSizes_LiberationSerifRegular,                                 // Page size array
  _aGlyphs_LiberationSerifRegular,                                    // Glyph array
  NULL,                                                               // Kerning array
  0,                                                                  // Kerning array size
};


//
// Start of unicode area Basic Latin
//
static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_0021[] = {  // Code 0021, EXCLAMATION MARK
  GUI_VG_SEGMENTS(M, L, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, M, L, Q, Q, Q, Q, L, Q, Q),
  GUI_VG_SEGMENTS(Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_0021[] = {  // Code 0021, EXCLAMATION MARK
  695, -1170,   657,  -492,   655,  -460,   643,  -447,   632,  -434,   615,  -434, 
  597,  -434,   585,  -447,   574,  -460,   572,  -492,   535, -1170,   533, -1194, 
  533, -1205,   533, -1239,   556, -1262,   580, -1285,   615, -1285,   650, -1285, 
  673, -1262,   696, -1239,   696, -1204,   696, -1194,   695, -1170,   595,  -178, 
  634,  -178,   677,  -178,   707,  -147,   738,  -117,   738,   -74,   738,   -30, 
  707,     0,   676,    30,   634,    30,   595,    30,   552,    30,   521,     0, 
  491,   -31,   491,   -73,   491,  -118,   522,  -148,   553,  -178,   595,  -178, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_0049[] = {  // Code 0049, LATIN CAPITAL LETTER I
  GUI_VG_SEGMENTS(M, L, L, Q, Q, Q, Q, L, Q, Q, Q, Q, L, L, L, Q, Q, Q, Q, L, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_0049[] = {  // Code 0049, LATIN CAPITAL LETTER I
  657, -1086,   657,   -84,   945,   -84,   975,   -84,   988,   -72,  1001,   -61, 
  1001,   -42,  1001,   -24,   988,   -12,   975,     0,   945,     0,   285,     0, 
  255,     0,   242,   -12,   229,   -24,   229,   -42,   229,   -61,   242,   -72, 
  255,   -84,   285,   -84,   573,   -84,   573, -1086,   285, -1086,   255, -1086, 
  242, -1097,   229, -1109,   229, -1128,   229, -1147,   242, -1158,   255, -1170, 
  285, -1170,   945, -1170,   975, -1170,   988, -1158,  1001, -1147,  1001, -1128, 
  1001, -1109,   988, -1097,   975, -1086,   945, -1086,   657, -1086, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_0069[] = {  // Code 0069, LATIN SMALL LETTER I
  GUI_VG_SEGMENTS(M, L, L, L, L, M, L, L, Q, Q, Q, Q, L, Q, Q, Q, Q, L, L, L, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_0069[] = {  // Code 0069, LATIN SMALL LETTER I
  656, -1297,   656, -1080,   532, -1080,   532, -1297,   656, -1297,   659,  -866, 
  659,   -84,   989,   -84,  1020,   -84,  1033,   -72,  1046,   -61,  1046,   -42, 
  1046,   -24,  1033,   -12,  1020,     0,   989,     0,   245,     0,   215,     0, 
  202,   -12,   189,   -24,   189,   -42,   189,   -61,   202,   -72,   215,   -84, 
  245,   -84,   575,   -84,   575,  -781,   330,  -781,   300,  -781,   286,  -793, 
  273,  -805,   273,  -823,   273,  -842,   286,  -854,   299,  -866,   330,  -866, 
  659,  -866, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_006B[] = {  // Code 006B, LATIN SMALL LETTER K
  GUI_VG_SEGMENTS(M, L, L, Q, Q, Q, Q, L, L, L, Q, Q, Q, Q, L, L, L, L, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(L, Q, Q, Q, Q, L, L, L, L, Q, Q, Q, Q, L, Q, Q, Q, Q, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_006B[] = {  // Code 006B, LATIN SMALL LETTER K
  444,  -374,   444,     0,   247,     0,   217,     0,   204,   -12,   191,   -24, 
  191,   -42,   191,   -61,   204,   -72,   217,   -84,   247,   -84,   360,   -84, 
  360, -1170,   247, -1170,   217, -1170,   204, -1182,   191, -1194,   191, -1213, 
  191, -1231,   204, -1243,   217, -1255,   247, -1255,   444, -1255,   444,  -481, 
  801,  -781,   758,  -781,   728,  -781,   715,  -793,   702,  -805,   702,  -823, 
  702,  -842,   715,  -854,   728,  -866,   758,  -866,  1027,  -866,  1058,  -866, 
  1071,  -854,  1084,  -842,  1084,  -823,  1084,  -805,  1071,  -793,  1058,  -781, 
  1027,  -781,   930,  -781,   602,  -507,  1017,   -84,  1114,   -84,  1145,   -84, 
  1158,   -72,  1171,   -61,  1171,   -42,  1171,   -24,  1158,   -12,  1145,     0, 
  1114,     0,   842,     0,   812,     0,   799,   -12,   786,   -24,   786,   -42, 
  786,   -61,   799,   -72,   812,   -84,   842,   -84,   901,   -84,   540,  -455, 
  444,  -374, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_006C[] = {  // Code 006C, LATIN SMALL LETTER L
  GUI_VG_SEGMENTS(M, L, L, Q, Q, Q, Q, L, Q, Q, Q, Q, L, L, L, Q, Q, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_006C[] = {  // Code 006C, LATIN SMALL LETTER L
  657, -1255,   657,   -84,   987,   -84,  1018,   -84,  1031,   -72,  1044,   -61, 
  1044,   -42,  1044,   -24,  1031,   -12,  1018,     0,   987,     0,   243,     0, 
  213,     0,   200,   -12,   187,   -24,   187,   -42,   187,   -61,   200,   -72, 
  213,   -84,   243,   -84,   573,   -84,   573, -1170,   331, -1170,   301, -1170, 
  287, -1182,   274, -1194,   274, -1213,   274, -1231,   287, -1243,   300, -1255, 
  331, -1255,   657, -1255, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_006D[] = {  // Code 006D, LATIN SMALL LETTER M
  GUI_VG_SEGMENTS(M, L, Q, Q, Q, Q, Q, Q, Q, L, L, Q, Q, Q, Q, L, L, Q, Q, Q, Q, L),
  GUI_VG_SEGMENTS(L, Q, Q, Q, Q, L, L, Q, Q, Q, Q, L, L, Q, Q, Q, Q, L, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(L, L, L, Q, Q, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_006D[] = {  // Code 006D, LATIN SMALL LETTER M
  232, -866,  232, -781,  339, -896,  447, -896,  512, -896,  561, -861, 
  610, -827,  643, -757,  699, -827,  756, -861,  814, -896,  872, -896, 
  963, -896, 1017, -837, 1088, -761, 1088, -671, 1088,  -84, 1159,  -84, 
  1189,  -84, 1202,  -72, 1215,  -61, 1215,  -42, 1215,  -24, 1202,  -12, 
  1189,    0, 1159,    0, 1004,    0, 1004, -663, 1004, -727,  965, -769, 
  926, -811,  875, -811,  829, -811,  778, -776,  727, -742,  662, -641, 
  662,  -84,  732,  -84,  762,  -84,  775,  -72,  788,  -61,  788,  -42, 
  788,  -24,  775,  -12,  762,    0,  732,    0,  577,    0,  577, -657, 
  577, -724,  537, -767,  498, -811,  449, -811,  404, -811,  360, -782, 
  299, -741,  232, -641,  232,  -84,  303,  -84,  333,  -84,  346,  -72, 
  359,  -61,  359,  -42,  359,  -24,  346,  -12,  333,    0,  303,    0, 
  77,    0,   47,    0,   34,  -12,   21,  -24,   21,  -42,   21,  -61, 
  34,  -72,   47,  -84,   77,  -84,  148,  -84,  148, -781,   77, -781, 
  47, -781,   34, -793,   21, -805,   21, -824,   21, -842,   34, -854, 
  47, -866,   77, -866,  232, -866, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_006F[] = {  // Code 006F, LATIN SMALL LETTER O
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_006F[] = {  // Code 006F, LATIN SMALL LETTER O
  1084, -431, 1084, -239,  946, -103,  809,   33,  615,   33,  419,   33, 
  282, -103,  145, -240,  145, -431,  145, -623,  282, -759,  419, -896, 
  615, -896,  809, -896,  946, -760, 1084, -624, 1084, -431,  999, -431, 
  999, -589,  886, -700,  774, -811,  614, -811,  454, -811,  341, -699, 
  229, -588,  229, -431,  229, -275,  341, -163,  454,  -51,  614,  -51, 
  774,  -51,  886, -162,  999, -274,  999, -431, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_0070[] = {  // Code 0070, LATIN SMALL LETTER P
  GUI_VG_SEGMENTS(M, L, Q, Q, Q, Q, Q, Q, Q, Q, L, L, Q, Q, Q, Q, L, Q, Q, Q, Q, L),
  GUI_VG_SEGMENTS(L, L, Q, Q, Q, Q, L, M, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_0070[] = {  // Code 0070, LATIN SMALL LETTER P
  298, -866,  298, -713,  373, -804,  459, -850,  545, -896,  662, -896, 
  786, -896,  891, -838,  996, -780, 1053, -676, 1111, -573, 1111, -459, 
  1111, -278,  981, -149,  852,  -21,  663,  -21,  438,  -21,  298, -204, 
  298,  302,  502,  302,  532,  302,  545,  313,  558,  325,  558,  344, 
  558,  362,  545,  374,  532,  386,  502,  386,  101,  386,   71,  386, 
  58,  374,   45,  363,   45,  344,   45,  325,   58,  313,   71,  302, 
  101,  302,  214,  302,  214, -781,  101, -781,   71, -781,   58, -793, 
  45, -805,   45, -824,   45, -842,   58, -854,   71, -866,  101, -866, 
  298, -866, 1026, -459, 1026, -604,  920, -707,  815, -811,  663, -811, 
  510, -811,  404, -707,  298, -603,  298, -459,  298, -314,  404, -210, 
  510, -106,  663, -106,  814, -106,  920, -209, 1026, -313, 1026, -459, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_0072[] = {  // Code 0072, LATIN SMALL LETTER R
  GUI_VG_SEGMENTS(M, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, L, Q, Q, Q, Q, L, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, L, L, L, Q, Q, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_0072[] = {  // Code 0072, LATIN SMALL LETTER R
  514, -866,  514, -654,  678, -802,  759, -844,  841, -887,  910, -887, 
  985, -887, 1049, -836, 1114, -786, 1114, -760, 1114, -741, 1101, -728, 
  1089, -716, 1070, -716, 1060, -716, 1053, -719, 1046, -723, 1027, -742, 
  992, -777,  966, -790,  940, -803,  915, -803,  860, -803,  782, -759, 
  705, -715,  514, -544,  514,  -84,  886,  -84,  917,  -84,  930,  -72, 
  943,  -61,  943,  -42,  943,  -24,  930,  -12,  917,    0,  886,    0, 
  227,    0,  197,    0,  184,  -11,  171,  -23,  171,  -41,  171,  -58, 
  183,  -69,  196,  -81,  227,  -81,  430,  -81,  430, -781,  275, -781, 
  245, -781,  232, -793,  219, -805,  219, -824,  219, -842,  231, -854, 
  244, -866,  275, -866,  514, -866, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_0073[] = {  // Code 0073, LATIN SMALL LETTER S
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_0073[] = {  // Code 0073, LATIN SMALL LETTER S
  892, -811,  892, -840,  904, -853,  916, -866,  934, -866,  953, -866, 
  965, -853,  977, -840,  977, -809,  977, -665,  977, -635,  965, -622, 
  953, -609,  934, -609,  917, -609,  905, -620,  894, -631,  892, -656, 
  886, -716,  830, -755,  748, -811,  613, -811,  472, -811,  394, -754, 
  335, -711,  335, -658,  335, -598,  405, -558,  453, -530,  587, -515, 
  762, -496,  830, -472,  927, -437,  974, -375, 1022, -313, 1022, -241, 
  1022, -134,  919,  -50,  816,   33,  617,   33,  418,   33,  291,  -68, 
  291,  -34,  287,  -24,  283,  -14,  272,   -7,  262,    0,  249,    0, 
  231,    0,  219,  -13,  207,  -26,  207,  -56,  207, -229,  207, -259, 
  218, -272,  230, -285,  249, -285,  267, -285,  279, -272,  292, -260, 
  292, -239,  292, -193,  315, -162,  350, -114,  426,  -82,  503,  -51, 
  614,  -51,  778,  -51,  858, -112,  938, -173,  938, -241,  938, -319, 
  857, -366,  775, -413,  618, -429,  462, -445,  394, -471,  326, -497, 
  288, -549,  250, -601,  250, -661,  250, -769,  356, -832,  462, -896, 
  609, -896,  783, -896,  892, -811, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_0074[] = {  // Code 0074, LATIN SMALL LETTER T
  GUI_VG_SEGMENTS(M, L, Q, Q, Q, Q, L, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, L),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, L, L, Q, Q, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_0074[] = {  // Code 0074, LATIN SMALL LETTER T
  442,  -866,   898,  -866,   928,  -866,   941,  -854,   954,  -842,   954,  -823, 
  954,  -805,   941,  -793,   928,  -781,   898,  -781,   442,  -781,   442,  -222, 
  442,  -149,   500,  -100,   559,   -51,   672,   -51,   757,   -51,   856,   -76, 
  955,  -102,  1010,  -134,  1030,  -147,  1043,  -147,  1059,  -147,  1071,  -134, 
  1083,  -122,  1083,  -105,  1083,   -90,  1070,   -77,  1038,   -44,   914,    -5, 
  791,    33,   678,    33,   531,    33,   444,   -36,   357,  -105,   357,  -222, 
  357,  -781,   202,  -781,   172,  -781,   159,  -793,   146,  -805,   146,  -824, 
  146,  -842,   159,  -854,   172,  -866,   202,  -866,   357,  -866,   357, -1114, 
  357, -1144,   369, -1157,   381, -1170,   399, -1170,   418, -1170,   430, -1157, 
  442, -1144,   442, -1114,   442,  -866, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_0077[] = {  // Code 0077, LATIN SMALL LETTER W
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, Q, Q, Q, Q, L, Q, Q, Q, Q, L, L, L, L, L, L),
  GUI_VG_SEGMENTS(L, Q, Q, Q, Q, L, Q, Q, Q, Q, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_0077[] = {  // Code 0077, LATIN SMALL LETTER W
  904,    0,  800,    1,  615, -539,  431,    1,  327,    0,  153, -781, 
  112, -781,   82, -781,   69, -793,   56, -805,   56, -824,   56, -842, 
  69, -854,   82, -866,  112, -866,  343, -866,  373, -866,  386, -854, 
  399, -842,  399, -823,  399, -805,  386, -793,  373, -781,  343, -781, 
  236, -781,  385, -115,  564, -647,  664, -647,  848, -115,  991, -781, 
  885, -781,  855, -781,  841, -793,  828, -805,  828, -824,  828, -842, 
  841, -854,  854, -866,  885, -866, 1115, -866, 1146, -866, 1159, -854, 
  1172, -842, 1172, -823, 1172, -805, 1159, -793, 1146, -781, 1115, -781, 
  1075, -781,  904,    0, 
};

static GUI_CONST_STORAGE U8 _acSegCourierNewRegular_0079[] = {  // Code 0079, LATIN SMALL LETTER Y
  GUI_VG_SEGMENTS(M, L, L, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, L, L, L, L, Q, Q, Q, Q, L),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, L, L, Q, Q, Q, Q, L, Q, Q, Q, Q, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdCourierNewRegular_0079[] = {  // Code 0079, LATIN SMALL LETTER Y
  620,    0,  230, -781,  205, -781,  175, -781,  162, -793,  149, -805, 
  149, -823,  149, -836,  155, -846,  162, -857,  172, -861,  183, -866, 
  205, -866,  435, -866,  465, -866,  478, -854,  491, -842,  491, -823, 
  491, -805,  478, -793,  465, -781,  435, -781,  322, -781,  665,  -92, 
  1003, -781,  890, -781,  860, -781,  847, -793,  834, -805,  834, -824, 
  834, -842,  847, -854,  860, -866,  890, -866, 1119, -866, 1150, -866, 
  1163, -854, 1176, -842, 1176, -823, 1176, -810, 1168, -799, 1160, -788, 
  1150, -784, 1140, -781, 1094, -781,  562,  302,  693,  302,  723,  302, 
  736,  313,  749,  325,  749,  344,  749,  362,  736,  374,  723,  386, 
  693,  386,  209,  386,  179,  386,  166,  374,  153,  363,  153,  344, 
  153,  325,  166,  313,  179,  302,  209,  302,  472,  302,  620,    0, 
};

static U16 _aCodePages_CourierNewRegular[] = {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 
};

static I16 _aPageSizes_CourierNewRegular[] = {
  14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
};

static GUI_CONST_STORAGE GUI_VG_FONT_GLYPH_INT _aGlyphs_CourierNewRegular[] = {
  { { 1229,    0,    0,    0,    0,                                    0 }, 0x0020,                         NULL,                         NULL },
  { { 1229,  491, 1285,  247, 1315, sizeof(_acSegCourierNewRegular_0021) }, 0x0021, _acSegCourierNewRegular_0021, _acCrdCourierNewRegular_0021 },
  { { 1229,  229, 1170,  772, 1170, sizeof(_acSegCourierNewRegular_0049) }, 0x0049, _acSegCourierNewRegular_0049, _acCrdCourierNewRegular_0049 },
  { { 1229,  189, 1297,  857, 1297, sizeof(_acSegCourierNewRegular_0069) }, 0x0069, _acSegCourierNewRegular_0069, _acCrdCourierNewRegular_0069 },
  { { 1229,  191, 1255,  980, 1255, sizeof(_acSegCourierNewRegular_006B) }, 0x006B, _acSegCourierNewRegular_006B, _acCrdCourierNewRegular_006B },
  { { 1229,  187, 1255,  857, 1255, sizeof(_acSegCourierNewRegular_006C) }, 0x006C, _acSegCourierNewRegular_006C, _acCrdCourierNewRegular_006C },
  { { 1229,   21,  896, 1194,  896, sizeof(_acSegCourierNewRegular_006D) }, 0x006D, _acSegCourierNewRegular_006D, _acCrdCourierNewRegular_006D },
  { { 1229,  145,  896,  939,  929, sizeof(_acSegCourierNewRegular_006F) }, 0x006F, _acSegCourierNewRegular_006F, _acCrdCourierNewRegular_006F },
  { { 1229,   45,  896, 1066, 1282, sizeof(_acSegCourierNewRegular_0070) }, 0x0070, _acSegCourierNewRegular_0070, _acCrdCourierNewRegular_0070 },
  { { 1229,  171,  887,  943,  887, sizeof(_acSegCourierNewRegular_0072) }, 0x0072, _acSegCourierNewRegular_0072, _acCrdCourierNewRegular_0072 },
  { { 1229,  207,  896,  815,  929, sizeof(_acSegCourierNewRegular_0073) }, 0x0073, _acSegCourierNewRegular_0073, _acCrdCourierNewRegular_0073 },
  { { 1229,  146, 1170,  937, 1203, sizeof(_acSegCourierNewRegular_0074) }, 0x0074, _acSegCourierNewRegular_0074, _acCrdCourierNewRegular_0074 },
  { { 1229,   56,  866, 1116,  867, sizeof(_acSegCourierNewRegular_0077) }, 0x0077, _acSegCourierNewRegular_0077, _acCrdCourierNewRegular_0077 },
  { { 1229,  149,  866, 1027, 1252, sizeof(_acSegCourierNewRegular_0079) }, 0x0079, _acSegCourierNewRegular_0079, _acCrdCourierNewRegular_0079 },
};

GUI_CONST_STORAGE GUI_VG_FONT_DATA_INT GUI_VectorFont_CourierNewRegular = {
  {                                                                   
    1705,                                                             // Baseline (unscaled)
    2320,                                                             // Font height (unscaled)
    3483,                                                             // Boundary box height (unscaled)
    1524,                                                             // Boundary box width (unscaled)
    2048,                                                             // Units per EM
    1170,                                                             // Height of capital characters
    929,                                                              // Height of lower-case characters
    (GUI_VG_FONTFLAG_SCALE_BBOX | GUI_VG_FONTFLAG_KERNING_DISABLED),  // Font flags
  },                                                                  
  _aCodePages_CourierNewRegular,                                      // Code page array
  _aPageSizes_CourierNewRegular,                                      // Page size array
  _aGlyphs_CourierNewRegular,                                         // Glyph array
  NULL,                                                               // Kerning array
  0,                                                                  // Kerning array size
};


//
// Start of unicode area Basic Latin
//
static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0021[] = {  // Code 0021, EXCLAMATION MARK
  GUI_VG_SEGMENTS(M, L, L, L, L, M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0021[] = {  // Code 0021, EXCLAMATION MARK
  359,  -397,   211,  -397,   187, -1409,   383, -1409,   359,  -397,   185,     0, 
  185,  -201,   379,  -201,   379,     0,   185,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0022[] = {  // Code 0022, QUOTATION MARK
  GUI_VG_SEGMENTS(M, L, L, L, L, M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0022[] = {  // Code 0022, QUOTATION MARK
  618,  -966,   476,  -966,   456, -1409,   640, -1409,   618,  -966,   249,  -966, 
  108,  -966,    87, -1409,   271, -1409,   249,  -966, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0023[] = {  // Code 0023, NUMBER SIGN
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L),
  GUI_VG_SEGMENTS(L, L, L, L, L, L, L, M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0023[] = {  // Code 0023, NUMBER SIGN
  896,  -885,   818,  -516,  1078,  -516,  1078,  -408,   795,  -408,   707,     0, 
  597,     0,   683,  -408,   320,  -408,   236,     0,   126,     0,   210,  -408, 
  9,  -408,     9,  -516,   234,  -516,   312,  -885,    60,  -885,    60,  -993, 
  334,  -993,   423, -1401,   533, -1401,   445,  -993,   808,  -993,   896, -1401, 
  1006, -1401,   918,  -993,  1129,  -993,  1129,  -885,   896,  -885,   425,  -885, 
  345,  -516,   707,  -516,   785,  -885,   425,  -885, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0024[] = {  // Code 0024, DOLLAR SIGN
  GUI_VG_SEGMENTS(M, Q, L, Q, Q, L, Q, Q, Q, Q, Q, Q, L, L, L, Q, Q, L, Q, Q, L, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, L, L, L, M, Q, Q, Q, L, Q, Q, M, Q, Q, Q, L, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0024[] = {  // Code 0024, DOLLAR SIGN
  518,   -20,    92,   -38,    22,  -379,   192,  -416,   217,  -297,   296,  -237, 
  376,  -177,   518,  -168,   518,  -664,   341,  -708,   273,  -743,   206,  -778, 
  164,  -823,   123,  -869,   104,  -921,    86,  -973,    86, -1046,    86, -1201, 
  198, -1288,   311, -1376,   518, -1385,   518, -1516,   642, -1516,   642, -1385, 
  829, -1376,   931, -1300,  1033, -1225,  1075, -1065,   901, -1032,   881, -1126, 
  820, -1178,   759, -1231,   642, -1242,   642,  -797,   821,  -755,   896,  -720, 
  972,  -685,  1016,  -641,  1060,  -597,  1083,  -537,  1106,  -477,  1106,  -396, 
  1106,  -231,   985,  -131,   864,   -31,   642,   -20,   642,   142,   518,   142, 
  518,   -20,   934,  -394,   934,  -459,   908,  -501,   882,  -543,   833,  -570, 
  784,  -598,   642,  -635,   642,  -167,   783,  -176,   858,  -234,   934,  -292, 
  934,  -394,   258, -1048,   258,  -989,   283,  -948,   308,  -907,   357,  -879, 
  407,  -851,   518,  -823,   518, -1244,   258, -1230,   258, -1048, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0025[] = {  // Code 0025, PERCENT SIGN
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, M, L, L, L, L, M, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, M, Q, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0025[] = {  // Code 0025, PERCENT SIGN
  1748,  -434,  1748,  -219,  1667,  -103,  1586,    12,  1428,    12,  1272,    12, 
  1192,  -100,  1113,  -213,  1113,  -434,  1113,  -662,  1189,  -773,  1266,  -885, 
  1432,  -885,  1596,  -885,  1672,  -770,  1748,  -656,  1748,  -434,   527,     0, 
  372,     0,  1294, -1409,  1451, -1409,   527,     0,   394, -1421,   553, -1421, 
  630, -1309,   707, -1197,   707,  -975,   707,  -758,   627,  -641,   548,  -524, 
  390,  -524,   232,  -524,   152,  -640,    73,  -756,    73,  -975,    73, -1198, 
  150, -1309,   227, -1421,   394, -1421,  1600,  -434,  1600,  -613,  1561,  -693, 
  1523,  -774,  1432,  -774,  1341,  -774,  1300,  -695,  1260,  -616,  1260,  -434, 
  1260,  -263,  1299,  -180,  1339,   -98,  1430,   -98,  1518,   -98,  1559,  -181, 
  1600,  -265,  1600,  -434,   560,  -975,   560, -1151,   522, -1232,   484, -1313, 
  394, -1313,   300, -1313,   260, -1233,   220, -1154,   220,  -975,   220,  -802, 
  260,  -719,   300,  -637,   392,  -637,   479,  -637,   519,  -721,   560,  -805, 
  560,  -975, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0026[] = {  // Code 0026, AMPERSAND
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, L),
  GUI_VG_SEGMENTS(Q, M, Q, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0026[] = {  // Code 0026, AMPERSAND
  1193,    12,  1016,    12,   895,  -115,   820,   -50,   724,   -15,   628,    20, 
  523,    20,   308,    20,   190,   -83,    72,  -187,    72,  -371,    72,  -649, 
  415,  -800,   382,  -862,   358,  -947,   334, -1032,   334, -1102,   334, -1252, 
  425, -1334,   517, -1417,   685, -1417,   836, -1417,   928, -1341,  1021, -1265, 
  1021, -1133,  1021, -1015,   929,  -923,   838,  -831,   612,  -741,   723,  -536, 
  905,  -329,  1018,  -495,  1076,  -739,  1221,  -696,  1158,  -447,  1009,  -227, 
  1105,  -129,  1217,  -129,  1288,  -129,  1334,  -145,  1334,   -10,  1278,    12, 
  1193,    12,   869, -1133,   869, -1205,   819, -1250,   769, -1296,   683, -1296, 
  587, -1296,   537, -1244,   487, -1193,   487, -1102,   487,  -988,   552,  -858, 
  683,  -911,   744,  -950,   806,  -989,   837, -1034,   869, -1079,   869, -1133, 
  795,  -217,   597,  -451,   476,  -674,   240,  -574,   240,  -373,   240,  -252, 
  317,  -181,   395,  -111,   529,  -111,   600,  -111,   671,  -138,   742,  -166, 
  795,  -217, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0027[] = {  // Code 0027, APOSTROPHE
  GUI_VG_SEGMENTS(M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0027[] = {  // Code 0027, APOSTROPHE
  266,  -966,   125,  -966,   104, -1409,   288, -1409,   266,  -966, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0028[] = {  // Code 0028, LEFT PARENTHESIS
  GUI_VG_SEGMENTS(M, Q, Q, L, Q, Q, Q, Q, L, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0028[] = {  // Code 0028, LEFT PARENTHESIS
  127,  -532,   127,  -821,   217, -1051,   308, -1281,   496, -1484,   670, -1484, 
  483, -1276,   395, -1042,   308,  -808,   308,  -530,   308,  -253,   394,   -20, 
  481,   213,   670,   424,   496,   424,   307,   220,   217,   -10,   127,  -241, 
  127,  -528,   127,  -532, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0029[] = {  // Code 0029, RIGHT PARENTHESIS
  GUI_VG_SEGMENTS(M, Q, Q, L, Q, Q, Q, Q, L, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0029[] = {  // Code 0029, RIGHT PARENTHESIS
  555,  -528,   555,  -239,   464,    -9,   374,   221,   186,   424,    12,   424, 
  200,   214,   287,   -18,   374,  -251,   374,  -530,   374,  -809,   286, -1042, 
  199, -1275,    12, -1484,   186, -1484,   375, -1280,   465, -1049,   555,  -819, 
  555,  -532,   555,  -528, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_002A[] = {  // Code 002A, ASTERISK
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_002A[] = {  // Code 002A, ASTERISK
  456, -1114,   720, -1217,   765, -1085,   483, -1012,   668,  -762,   549,  -690, 
  399,  -948,   243,  -692,   124,  -764,   313, -1012,    33, -1085,    78, -1219, 
  345, -1112,   333, -1409,   469, -1409,   456, -1114, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_002B[] = {  // Code 002B, PLUS SIGN
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_002B[] = {  // Code 002B, PLUS SIGN
  671,  -608,   671,  -180,   524,  -180,   524,  -608,   100,  -608,   100,  -754, 
  524,  -754,   524, -1182,   671, -1182,   671,  -754,  1095,  -754,  1095,  -608, 
  671,  -608, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_002C[] = {  // Code 002C, COMMA
  GUI_VG_SEGMENTS(M, L, Q, Q, L, Q, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_002C[] = {  // Code 002C, COMMA
  385, -219,  385,  -51,  385,   55,  366,  126,  347,  197,  307,  262, 
  184,  262,  278,  126,  278,    0,  190,    0,  190, -219,  385, -219, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_002D[] = {  // Code 002D, HYPHEN-MINUS
  GUI_VG_SEGMENTS(M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_002D[] = {  // Code 002D, HYPHEN-MINUS
  91, -464,   91, -624,  591, -624,  591, -464,   91, -464, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_002E[] = {  // Code 002E, FULL STOP
  GUI_VG_SEGMENTS(M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_002E[] = {  // Code 002E, FULL STOP
  187,    0,  187, -219,  382, -219,  382,    0,  187,    0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_002F[] = {  // Code 002F, SOLIDUS
  GUI_VG_SEGMENTS(M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_002F[] = {  // Code 002F, SOLIDUS
  0,    20,   411, -1484,   569, -1484,   162,    20,     0,    20, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0030[] = {  // Code 0030, DIGIT ZERO
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0030[] = {  // Code 0030, DIGIT ZERO
  1059,  -705,  1059,  -352,   934,  -166,   810,    20,   567,    20,   324,    20, 
  202,  -165,    80,  -350,    80,  -705,    80, -1068,   198, -1249,   317, -1430, 
  573, -1430,   822, -1430,   940, -1247,  1059, -1064,  1059,  -705,   876,  -705, 
  876, -1010,   805, -1147,   735, -1284,   573, -1284,   407, -1284,   334, -1149, 
  262, -1014,   262,  -705,   262,  -405,   335,  -266,   409,  -127,   569,  -127, 
  728,  -127,   802,  -269,   876,  -411,   876,  -705, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0031[] = {  // Code 0031, DIGIT ONE
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0031[] = {  // Code 0031, DIGIT ONE
  156,     0,   156,  -153,   515,  -153,   515, -1237,   197, -1010,   197, -1180, 
  530, -1409,   696, -1409,   696,  -153,  1039,  -153,  1039,     0,   156,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0032[] = {  // Code 0032, DIGIT TWO
  GUI_VG_SEGMENTS(M, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0032[] = {  // Code 0032, DIGIT TWO
  103,     0,   103,  -127,   154,  -244,   227,  -333,   301,  -423,   382,  -495, 
  463,  -568,   542,  -630,   622,  -692,   686,  -754,   750,  -816,   789,  -884, 
  829,  -952,   829, -1038,   829, -1154,   761, -1218,   693, -1282,   572, -1282, 
  457, -1282,   382, -1219,   308, -1157,   295, -1044,   111, -1061,   131, -1230, 
  254, -1330,   378, -1430,   572, -1430,   785, -1430,   899, -1329,  1014, -1229, 
  1014, -1044,  1014,  -962,   976,  -881,   939,  -800,   865,  -719,   791,  -638, 
  582,  -468,   467,  -374,   399,  -298,   331,  -223,   301,  -153,  1036,  -153, 
  1036,     0,   103,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0033[] = {  // Code 0033, DIGIT THREE
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, L, L, L, Q, Q, Q, Q, Q, Q, L, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, L, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0033[] = {  // Code 0033, DIGIT THREE
  1049,  -389,  1049,  -194,   925,   -87,   801,    20,   571,    20,   357,    20, 
  229,   -76,   102,  -173,    78,  -362,   264,  -379,   300,  -129,   571,  -129, 
  707,  -129,   784,  -196,   862,  -263,   862,  -395,   862,  -510,   773,  -574, 
  685,  -639,   518,  -639,   416,  -639,   416,  -795,   514,  -795,   662,  -795, 
  743,  -859,   825,  -924,   825, -1038,   825, -1151,   758, -1216,   692, -1282, 
  561, -1282,   442, -1282,   368, -1221,   295, -1160,   283, -1049,   102, -1063, 
  122, -1236,   245, -1333,   369, -1430,   563, -1430,   775, -1430,   892, -1331, 
  1010, -1233,  1010, -1057,  1010,  -922,   934,  -837,   859,  -753,   715,  -723, 
  715,  -719,   873,  -702,   961,  -613,  1049,  -524,  1049,  -389, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0034[] = {  // Code 0034, DIGIT FOUR
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, M, Q, Q, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0034[] = {  // Code 0034, DIGIT FOUR
  881,  -319,   881,     0,   711,     0,   711,  -319,    47,  -319,    47,  -459, 
  692, -1409,   881, -1409,   881,  -461,  1079,  -461,  1079,  -319,   881,  -319, 
  711, -1206,   709, -1200,   683, -1153,   657, -1106,   644, -1087,   283,  -555, 
  229,  -481,   213,  -461,   711,  -461,   711, -1206, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0035[] = {  // Code 0035, DIGIT FIVE
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, L, L, L, L, L, L, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0035[] = {  // Code 0035, DIGIT FIVE
  1053,  -459,  1053,  -236,   920,  -108,   788,    20,   553,    20,   356,    20, 
  235,   -66,   114,  -152,    82,  -315,   264,  -336,   321,  -127,   557,  -127, 
  702,  -127,   784,  -214,   866,  -302,   866,  -455,   866,  -588,   783,  -670, 
  701,  -752,   561,  -752,   488,  -752,   425,  -729,   362,  -706,   299,  -651, 
  123,  -651,   170, -1409,   971, -1409,   971, -1256,   334, -1256,   307,  -809, 
  424,  -899,   598,  -899,   806,  -899,   929,  -777,  1053,  -655,  1053,  -459, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0036[] = {  // Code 0036, DIGIT SIX
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0036[] = {  // Code 0036, DIGIT SIX
  1049,  -461,  1049,  -238,   928,  -109,   807,    20,   594,    20,   356,    20, 
  230,  -157,   104,  -334,   104,  -672,   104, -1038,   235, -1234,   366, -1430, 
  608, -1430,   927, -1430,  1010, -1143,   838, -1112,   785, -1284,   606, -1284, 
  452, -1284,   367, -1140,   283,  -997,   283,  -725,   332,  -816,   421,  -863, 
  510,  -911,   625,  -911,   820,  -911,   934,  -789,  1049,  -667,  1049,  -461, 
  866,  -453,   866,  -606,   791,  -689,   716,  -772,   582,  -772,   456,  -772, 
  378,  -698,   301,  -625,   301,  -496,   301,  -333,   381,  -229,   462,  -125, 
  588,  -125,   718,  -125,   792,  -212,   866,  -300,   866,  -453, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0037[] = {  // Code 0037, DIGIT SEVEN
  GUI_VG_SEGMENTS(M, Q, Q, Q, L, Q, Q, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0037[] = {  // Code 0037, DIGIT SEVEN
  1036, -1263,   820,  -933,   731,  -746,   642,  -559,   597,  -377,   553,  -195, 
  553,     0,   365,     0,   365,  -270,   479,  -568,   594,  -867,   862, -1256, 
  105, -1256,   105, -1409,  1036, -1409,  1036, -1263, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0038[] = {  // Code 0038, DIGIT EIGHT
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, M, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0038[] = {  // Code 0038, DIGIT EIGHT
  1050,  -393,  1050,  -198,   926,   -89,   802,    20,   570,    20,   344,    20, 
  216,   -87,    89,  -194,    89,  -391,    89,  -529,   168,  -623,   247,  -717, 
  370,  -737,   370,  -741,   255,  -768,   188,  -858,   122,  -948,   122, -1069, 
  122, -1230,   242, -1330,   363, -1430,   566, -1430,   774, -1430,   894, -1332, 
  1015, -1234,  1015, -1067,  1015,  -946,   948,  -856,   881,  -766,   765,  -743, 
  765,  -739,   900,  -717,   975,  -624,  1050,  -532,  1050,  -393,   828, -1057, 
  828, -1296,   566, -1296,   439, -1296,   372, -1236,   306, -1176,   306, -1057, 
  306,  -936,   374,  -872,   443,  -809,   568,  -809,   695,  -809,   761,  -867, 
  828,  -926,   828, -1057,   863,  -410,   863,  -541,   785,  -607,   707,  -674, 
  566,  -674,   429,  -674,   352,  -602,   275,  -531,   275,  -406,   275,  -115, 
  572,  -115,   719,  -115,   791,  -185,   863,  -256,   863,  -410, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0039[] = {  // Code 0039, DIGIT NINE
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0039[] = {  // Code 0039, DIGIT NINE
  1042,  -733,  1042,  -370,   909,  -175,   777,    20,   532,    20,   367,    20, 
  267,   -49,   168,  -119,   125,  -274,   297,  -301,   351,  -125,   535,  -125, 
  690,  -125,   775,  -269,   860,  -413,   864,  -680,   824,  -590,   727,  -535, 
  630,  -481,   514,  -481,   324,  -481,   210,  -611,    96,  -741,    96,  -956, 
  96, -1177,   220, -1303,   344, -1430,   565, -1430,   800, -1430,   921, -1256, 
  1042, -1082,  1042,  -733,   846,  -907,   846, -1077,   768, -1180,   690, -1284, 
  559, -1284,   429, -1284,   354, -1195,   279, -1107,   279,  -956,   279,  -802, 
  354,  -712,   429,  -623,   557,  -623,   635,  -623,   702,  -658,   769,  -694, 
  807,  -759,   846,  -824,   846,  -907, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_003A[] = {  // Code 003A, COLON
  GUI_VG_SEGMENTS(M, L, L, L, L, M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_003A[] = {  // Code 003A, COLON
  187,  -875,   187, -1082,   382, -1082,   382,  -875,   187,  -875,   187,     0, 
  187,  -207,   382,  -207,   382,     0,   187,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_003B[] = {  // Code 003B, SEMICOLON
  GUI_VG_SEGMENTS(M, L, Q, Q, L, Q, L, L, L, M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_003B[] = {  // Code 003B, SEMICOLON
  385,  -207,   385,   -51,   385,    55,   366,   126,   347,   197,   307,   262, 
  184,   262,   278,   126,   278,     0,   190,     0,   190,  -207,   385,  -207, 
  190,  -875,   190, -1082,   385, -1082,   385,  -875,   190,  -875, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_003C[] = {  // Code 003C, LESS-THAN SIGN
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_003C[] = {  // Code 003C, LESS-THAN SIGN
  101,  -571,   101,  -776,  1096, -1194,  1096, -1040,   238,  -674,  1096,  -307, 
  1096,  -154,   101,  -571, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_003D[] = {  // Code 003D, EQUALS SIGN
  GUI_VG_SEGMENTS(M, L, L, L, L, M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_003D[] = {  // Code 003D, EQUALS SIGN
  100,  -856,   100, -1004,  1095, -1004,  1095,  -856,   100,  -856,   100,  -344, 
  100,  -492,  1095,  -492,  1095,  -344,   100,  -344, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_003E[] = {  // Code 003E, GREATER-THAN SIGN
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_003E[] = {  // Code 003E, GREATER-THAN SIGN
  101,  -154,   101,  -307,   959,  -674,   101, -1040,   101, -1194,  1096,  -776, 
  1096,  -571,   101,  -154, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_003F[] = {  // Code 003F, QUESTION MARK
  GUI_VG_SEGMENTS(M, Q, Q, Q, L, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_003F[] = {  // Code 003F, QUESTION MARK
  1063, -1032,  1063,  -957,  1041,  -898,  1019,  -839,   978,  -789,   937,  -739, 
  844,  -671,   764,  -612,   692,  -560,   657,  -502,   622,  -445,   621,  -377, 
  446,  -377,   448,  -446,   467,  -498,   487,  -550,   518,  -590,   549,  -630, 
  588,  -661,   627,  -693,   667,  -721,   707,  -750,   745,  -778,   784,  -807, 
  814,  -842,   844,  -877,   862,  -921,   881,  -965,   881, -1024,   881, -1138, 
  803, -1204,   726, -1270,   586, -1270,   446, -1270,   364, -1200,   282, -1130, 
  268, -1008,    84, -1020,   110, -1218,   240, -1324,   370, -1430,   584, -1430, 
  807, -1430,   935, -1324,  1063, -1219,  1063, -1032,   438,     0,   438,  -201, 
  633,  -201,   633,     0,   438,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0040[] = {  // Code 0040, COMMERCIAL AT
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, L, L, Q, Q, Q, Q, Q, Q, Q, Q, L, L, L, L, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0040[] = {  // Code 0040, COMMERCIAL AT
  1902,  -755,  1902,  -569,  1844,  -418,  1787,  -268,  1684,  -186,  1582,  -104, 
  1455,  -104,  1356,  -104,  1302,  -148,  1248,  -192,  1248,  -280,  1251,  -350, 
  1245,  -350,  1179,  -227,  1081,  -165,   984,  -104,   871,  -104,   714,  -104, 
  627,  -206,   541,  -308,   541,  -489,   541,  -653,   605,  -794,   670,  -935, 
  786, -1018,   902, -1101,  1043, -1101,  1262, -1101,  1344,  -919,  1350,  -919, 
  1389, -1079,  1545, -1079,  1429,  -573,  1392,  -409,  1392,  -320,  1392,  -226, 
  1473,  -226,  1553,  -226,  1620,  -295,  1688,  -364,  1727,  -485,  1766,  -606, 
  1766,  -753,  1766,  -932,  1689, -1070,  1612, -1209,  1467, -1283,  1322, -1358, 
  1128, -1358,   886, -1358,   700, -1251,   514, -1144,   408,  -942,   302,  -741, 
  302,  -491,   302,  -298,   380,  -150,   459,    -3,   607,    76,   756,   155, 
  954,   155,  1099,   155,  1248,   117,  1397,    80,  1557,    -7,  1612,   105, 
  1467,   192,  1297,   237,  1128,   283,   954,   283,   713,   283,   532,   187, 
  352,    92,   256,   -84,   161,  -261,   161,  -491,   161,  -771,   285, -1000, 
  410, -1229,   631, -1356,   852, -1484,  1126, -1484,  1367, -1484,  1542, -1393, 
  1717, -1303,  1809, -1138,  1902,  -973,  1902,  -755,  1296,  -747,  1296,  -849, 
  1230,  -911,  1164,  -974,  1054,  -974,   953,  -974,   874,  -910,   796,  -847, 
  751,  -734,   706,  -622,   706,  -491,   706,  -371,   753,  -303,   801,  -235, 
  900,  -235,  1025,  -235,  1129,  -340,  1233,  -445,  1273,  -602,  1296,  -694, 
  1296,  -747, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0041[] = {  // Code 0041, LATIN CAPITAL LETTER A
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, M, L, Q, L, L, L, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0041[] = {  // Code 0041, LATIN CAPITAL LETTER A
  1167,     0,  1006,  -412,   364,  -412,   202,     0,     4,     0,   579, -1409, 
  796, -1409,  1362,     0,  1167,     0,   685, -1265,   676, -1237,   651, -1154, 
  602, -1024,   422,  -561,   949,  -561,   768, -1026,   740, -1095,   712, -1182, 
  685, -1265, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0042[] = {  // Code 0042, LATIN CAPITAL LETTER B
  GUI_VG_SEGMENTS(M, Q, Q, L, L, L, Q, Q, Q, Q, Q, M, Q, Q, L, L, L, Q, Q, M, Q, L),
  GUI_VG_SEGMENTS(L, L, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0042[] = {  // Code 0042, LATIN CAPITAL LETTER B
  1258,  -397,  1258,  -209,  1121,  -104,   984,     0,   740,     0,   168,     0, 
  168, -1409,   680, -1409,  1176, -1409,  1176, -1067,  1176,  -942,  1106,  -857, 
  1036,  -772,   908,  -743,  1076,  -723,  1167,  -630,  1258,  -538,  1258,  -397, 
  984, -1044,   984, -1158,   906, -1207,   828, -1256,   680, -1256,   359, -1256, 
  359,  -810,   680,  -810,   833,  -810,   908,  -867,   984,  -925,   984, -1044, 
  1065,  -412,  1065,  -661,   715,  -661,   359,  -661,   359,  -153,   730,  -153, 
  905,  -153,   985,  -218,  1065,  -283,  1065,  -412, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0043[] = {  // Code 0043, LATIN CAPITAL LETTER C
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0043[] = {  // Code 0043, LATIN CAPITAL LETTER C
  792, -1274,   558, -1274,   428, -1123,   298,  -973,   298,  -711,   298,  -452, 
  433,  -294,   569,  -137,   800,  -137,  1096,  -137,  1245,  -430,  1401,  -352, 
  1314,  -170,  1156,   -75,   999,    20,   791,    20,   578,    20,   422,   -68, 
  267,  -157,   185,  -321,   104,  -486,   104,  -711,   104, -1048,   286, -1239, 
  468, -1430,   790, -1430,  1015, -1430,  1166, -1342,  1317, -1254,  1388, -1081, 
  1207, -1021,  1158, -1144,  1049, -1209,   941, -1274,   792, -1274, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0044[] = {  // Code 0044, LATIN CAPITAL LETTER D
  GUI_VG_SEGMENTS(M, Q, Q, Q, L, L, L, Q, Q, M, Q, Q, L, L, L, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0044[] = {  // Code 0044, LATIN CAPITAL LETTER D
  1381,  -719,  1381,  -501,  1296,  -337,  1211,  -174,  1055,   -87,   899,     0, 
  695,     0,   168,     0,   168, -1409,   634, -1409,   992, -1409,  1186, -1229, 
  1381, -1050,  1381,  -719,  1189,  -719,  1189,  -981,  1045, -1118,   902, -1256, 
  630, -1256,   359, -1256,   359,  -153,   673,  -153,   828,  -153,   945,  -221, 
  1063,  -289,  1126,  -417,  1189,  -545,  1189,  -719, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0045[] = {  // Code 0045, LATIN CAPITAL LETTER E
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0045[] = {  // Code 0045, LATIN CAPITAL LETTER E
  168,     0,   168, -1409,  1237, -1409,  1237, -1253,   359, -1253,   359,  -801, 
  1177,  -801,  1177,  -647,   359,  -647,   359,  -156,  1278,  -156,  1278,     0, 
  168,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0046[] = {  // Code 0046, LATIN CAPITAL LETTER F
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0046[] = {  // Code 0046, LATIN CAPITAL LETTER F
  359, -1253,   359,  -729,  1145,  -729,  1145,  -571,   359,  -571,   359,     0, 
  168,     0,   168, -1409,  1169, -1409,  1169, -1253,   359, -1253, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0047[] = {  // Code 0047, LATIN CAPITAL LETTER G
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, L, L, L, L, L, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0047[] = {  // Code 0047, LATIN CAPITAL LETTER G
  103,  -711,   103, -1054,   287, -1242,   471, -1430,   804, -1430,  1038, -1430, 
  1184, -1351,  1330, -1272,  1409, -1098,  1227, -1044,  1167, -1164,  1061, -1219, 
  956, -1274,   799, -1274,   555, -1274,   426, -1126,   297,  -979,   297,  -711, 
  297,  -444,   434,  -289,   571,  -135,   813,  -135,   951,  -135,  1070,  -177, 
  1190,  -219,  1264,  -291,  1264,  -545,   843,  -545,   843,  -705,  1440,  -705, 
  1440,  -219,  1328,  -105,  1165,   -42,  1003,    20,   813,    20,   592,    20, 
  432,   -68,   272,  -156,   187,  -321,   103,  -487,   103,  -711, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0048[] = {  // Code 0048, LATIN CAPITAL LETTER H
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0048[] = {  // Code 0048, LATIN CAPITAL LETTER H
  1121,     0,  1121,  -653,   359,  -653,   359,     0,   168,     0,   168, -1409, 
  359, -1409,   359,  -813,  1121,  -813,  1121, -1409,  1312, -1409,  1312,     0, 
  1121,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0049[] = {  // Code 0049, LATIN CAPITAL LETTER I
  GUI_VG_SEGMENTS(M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0049[] = {  // Code 0049, LATIN CAPITAL LETTER I
  189,     0,   189, -1409,   380, -1409,   380,     0,   189,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_004A[] = {  // Code 004A, LATIN CAPITAL LETTER J
  GUI_VG_SEGMENTS(M, Q, L, Q, Q, Q, Q, L, L, L, L, L, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_004A[] = {  // Code 004A, LATIN CAPITAL LETTER J
  457,    20,    99,    20,    32,  -350,   219,  -381,   237,  -265,   300,  -200, 
  363,  -135,   458,  -135,   562,  -135,   622,  -206,   682,  -278,   682,  -416, 
  682, -1253,   411, -1253,   411, -1409,   872, -1409,   872,  -420,   872,  -215, 
  761,   -97,   650,    20,   457,    20, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_004B[] = {  // Code 004B, LATIN CAPITAL LETTER K
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_004B[] = {  // Code 004B, LATIN CAPITAL LETTER K
  1106,     0,   543,  -680,   359,  -540,   359,     0,   168,     0,   168, -1409, 
  359, -1409,   359,  -703,  1038, -1409,  1263, -1409,   663,  -797,  1343,     0, 
  1106,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_004C[] = {  // Code 004C, LATIN CAPITAL LETTER L
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_004C[] = {  // Code 004C, LATIN CAPITAL LETTER L
  168,     0,   168, -1409,   359, -1409,   359,  -156,  1071,  -156,  1071,     0, 
  168,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_004D[] = {  // Code 004D, LATIN CAPITAL LETTER M
  GUI_VG_SEGMENTS(M, L, Q, Q, L, L, L, L, L, L, L, L, L, L, L, L, Q, Q, Q, Q, L, L),
  GUI_VG_SEGMENTS(L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_004D[] = {  // Code 004D, LATIN CAPITAL LETTER M
  1366,     0,  1366,  -940,  1366, -1096,  1375, -1240,  1326, -1061,  1287,  -960, 
  923,     0,   789,     0,   420,  -960,   364, -1130,   331, -1240,   334, -1129, 
  338,  -940,   338,     0,   168,     0,   168, -1409,   419, -1409,   794,  -432, 
  814,  -373,   832,  -305,   851,  -238,   857,  -208,   865,  -248,   890,  -329, 
  916,  -411,   925,  -432,  1293, -1409,  1538, -1409,  1538,     0,  1366,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_004E[] = {  // Code 004E, LATIN CAPITAL LETTER N
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, Q, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_004E[] = {  // Code 004E, LATIN CAPITAL LETTER N
  1082,     0,   328, -1200,   333, -1103,   338,  -936,   338,     0,   168,     0, 
  168, -1409,   390, -1409,  1152,  -201,  1140,  -397,  1140,  -485,  1140, -1409, 
  1312, -1409,  1312,     0,  1082,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_004F[] = {  // Code 004F, LATIN CAPITAL LETTER O
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_004F[] = {  // Code 004F, LATIN CAPITAL LETTER O
  1495,  -711,  1495,  -490,  1410,  -324,  1326,  -158,  1168,   -69,  1010,    20, 
  795,    20,   578,    20,   420,   -68,   263,  -156,   180,  -322,    97,  -489, 
  97,  -711,    97, -1049,   282, -1239,   467, -1430,   797, -1430,  1012, -1430, 
  1170, -1344,  1328, -1259,  1411, -1096,  1495,  -933,  1495,  -711,  1300,  -711, 
  1300,  -974,  1168, -1124,  1037, -1274,   797, -1274,   555, -1274,   423, -1126, 
  291,  -978,   291,  -711,   291,  -446,   424,  -290,   558,  -135,   795,  -135, 
  1039,  -135,  1169,  -285,  1300,  -436,  1300,  -711, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0050[] = {  // Code 0050, LATIN CAPITAL LETTER P
  GUI_VG_SEGMENTS(M, Q, Q, L, L, L, L, L, Q, Q, M, Q, L, L, L, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0050[] = {  // Code 0050, LATIN CAPITAL LETTER P
  1258,  -985,  1258,  -785,  1127,  -667,   997,  -549,   773,  -549,   359,  -549, 
  359,     0,   168,     0,   168, -1409,   761, -1409,   998, -1409,  1128, -1298, 
  1258, -1187,  1258,  -985,  1066,  -983,  1066, -1256,   738, -1256,   359, -1256, 
  359,  -700,   746,  -700,  1066,  -700,  1066,  -983, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0051[] = {  // Code 0051, LATIN CAPITAL LETTER Q
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0051[] = {  // Code 0051, LATIN CAPITAL LETTER Q
  1495,  -711,  1495,  -413,  1345,  -221,  1195,   -29,   928,     6,   969,   132, 
  1035,   188,  1102,   244,  1204,   244,  1259,   244,  1319,   231,  1319,   365, 
  1226,   387,  1141,   387,   990,   387,   892,   301,   795,   216,   733,    16, 
  535,     6,   391,   -84,   248,  -175,   172,  -336,    97,  -498,    97,  -711, 
  97, -1049,   282, -1239,   467, -1430,   797, -1430,  1012, -1430,  1170, -1344, 
  1328, -1259,  1411, -1096,  1495,  -933,  1495,  -711,  1300,  -711,  1300,  -974, 
  1168, -1124,  1037, -1274,   797, -1274,   555, -1274,   423, -1126,   291,  -978, 
  291,  -711,   291,  -446,   424,  -290,   558,  -135,   795,  -135,  1039,  -135, 
  1169,  -285,  1300,  -436,  1300,  -711, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0052[] = {  // Code 0052, LATIN CAPITAL LETTER R
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, Q, Q, Q, Q, L, L, M, Q, Q, L, L, L, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0052[] = {  // Code 0052, LATIN CAPITAL LETTER R
  1164,     0,   798,  -585,   359,  -585,   359,     0,   168,     0,   168, -1409, 
  831, -1409,  1069, -1409,  1198, -1302,  1328, -1196,  1328, -1006,  1328,  -849, 
  1236,  -742,  1145,  -635,   984,  -607,  1384,     0,  1164,     0,  1136, -1004, 
  1136, -1127,  1052, -1191,   969, -1256,   812, -1256,   359, -1256,   359,  -736, 
  820,  -736,   971,  -736,  1053,  -806,  1136,  -877,  1136, -1004, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0053[] = {  // Code 0053, LATIN CAPITAL LETTER S
  GUI_VG_SEGMENTS(M, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, L),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0053[] = {  // Code 0053, LATIN CAPITAL LETTER S
  1272,  -389,  1272,  -194,  1119,   -87,   967,    20,   690,    20,   175,    20, 
  93,  -338,   278,  -375,   310,  -248,   414,  -188,   518,  -129,   697,  -129, 
  882,  -129,   982,  -192,  1083,  -256,  1083,  -379,  1083,  -448,  1051,  -491, 
  1020,  -534,   963,  -562,   906,  -590,   827,  -609,   748,  -628,   652,  -650, 
  485,  -687,   398,  -724,   312,  -761,   262,  -806,   212,  -852,   185,  -913, 
  159,  -974,   159, -1053,   159, -1234,   297, -1332,   436, -1430,   694, -1430, 
  934, -1430,  1061, -1356,  1188, -1283,  1239, -1106,  1051, -1073,  1020, -1185, 
  933, -1235,   846, -1286,   692, -1286,   523, -1286,   434, -1230,   345, -1174, 
  345, -1063,   345,  -998,   379,  -955,   414,  -913,   479,  -883,   544,  -854, 
  738,  -811,   803,  -796,   867,  -780,   932,  -765,   991,  -743,  1050,  -722, 
  1101,  -693,  1153,  -664,  1191,  -622,  1229,  -580,  1250,  -523,  1272,  -466, 
  1272,  -389, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0054[] = {  // Code 0054, LATIN CAPITAL LETTER T
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0054[] = {  // Code 0054, LATIN CAPITAL LETTER T
  720, -1253,   720,     0,   530,     0,   530, -1253,    46, -1253,    46, -1409, 
  1204, -1409,  1204, -1253,   720, -1253, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0055[] = {  // Code 0055, LATIN CAPITAL LETTER U
  GUI_VG_SEGMENTS(M, Q, Q, Q, L, L, L, Q, Q, Q, Q, L, L, L, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0055[] = {  // Code 0055, LATIN CAPITAL LETTER U
  731,    20,   558,    20,   429,   -43,   300,  -106,   229,  -226,   158,  -346, 
  158,  -512,   158, -1409,   349, -1409,   349,  -528,   349,  -335,   447,  -235, 
  545,  -135,   730,  -135,   920,  -135,  1025,  -238,  1131,  -342,  1131,  -541, 
  1131, -1409,  1321, -1409,  1321,  -530,  1321,  -359,  1248,  -235,  1176,  -111, 
  1043,   -45,   911,    20,   731,    20, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0056[] = {  // Code 0056, LATIN CAPITAL LETTER V
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0056[] = {  // Code 0056, LATIN CAPITAL LETTER V
  782,     0,   584,     0,     9, -1409,   210, -1409,   600,  -417,   684,  -168, 
  768,  -417,  1156, -1409,  1357, -1409,   782,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0057[] = {  // Code 0057, LATIN CAPITAL LETTER W
  GUI_VG_SEGMENTS(M, L, L, Q, Q, Q, L, L, L, L, Q, Q, Q, L, L, Q, L, Q, Q, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0057[] = {  // Code 0057, LATIN CAPITAL LETTER W
  1511,     0,  1283,     0,  1039,  -895,  1015,  -979,   969, -1196,   943, -1080, 
  925, -1002,   907,  -924,   652,     0,   424,     0,     9, -1409,   208, -1409, 
  461,  -514,   506,  -346,   544,  -168,   568,  -278,   599,  -408,   631,  -538, 
  877, -1409,  1060, -1409,  1305,  -532,  1361,  -317,  1393,  -168,  1402,  -203, 
  1429,  -318,  1446,  -390,  1463,  -463,  1727, -1409,  1926, -1409,  1511,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0058[] = {  // Code 0058, LATIN CAPITAL LETTER X
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0058[] = {  // Code 0058, LATIN CAPITAL LETTER X
  1112,     0,   689,  -616,   257,     0,    46,     0,   582,  -732,    87, -1409, 
  298, -1409,   690,  -856,  1071, -1409,  1282, -1409,   800,  -739,  1323,     0, 
  1112,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0059[] = {  // Code 0059, LATIN CAPITAL LETTER Y
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0059[] = {  // Code 0059, LATIN CAPITAL LETTER Y
  777,  -584,   777,     0,   587,     0,   587,  -584,    45, -1409,   255, -1409, 
  684,  -738,  1111, -1409,  1321, -1409,   777,  -584, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_005A[] = {  // Code 005A, LATIN CAPITAL LETTER Z
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_005A[] = {  // Code 005A, LATIN CAPITAL LETTER Z
  1187,     0,    65,     0,    65,  -143,   923, -1253,   138, -1253,   138, -1409, 
  1140, -1409,  1140, -1270,   282,  -156,  1187,  -156,  1187,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_005B[] = {  // Code 005B, LEFT SQUARE BRACKET
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_005B[] = {  // Code 005B, LEFT SQUARE BRACKET
  146,   425,   146, -1484,   553, -1484,   553, -1355,   320, -1355,   320,   296, 
  553,   296,   553,   425,   146,   425, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_005C[] = {  // Code 005C, REVERSE SOLIDUS
  GUI_VG_SEGMENTS(M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_005C[] = {  // Code 005C, REVERSE SOLIDUS
  407,    20,     0, -1484,   158, -1484,   569,    20,   407,    20, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_005D[] = {  // Code 005D, RIGHT SQUARE BRACKET
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_005D[] = {  // Code 005D, RIGHT SQUARE BRACKET
  16,   425,    16,   296,   249,   296,   249, -1355,    16, -1355,    16, -1484, 
  423, -1484,   423,   425,    16,   425, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_005E[] = {  // Code 005E, CIRCUMFLEX ACCENT
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_005E[] = {  // Code 005E, CIRCUMFLEX ACCENT
  787,  -673,   478, -1306,   172,  -673,    10,  -673,   378, -1409,   581, -1409, 
  951,  -673,   787,  -673, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_005F[] = {  // Code 005F, LOW LINE
  GUI_VG_SEGMENTS(M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_005F[] = {  // Code 005F, LOW LINE
  -31,  407,  -31,  277, 1162,  277, 1162,  407,  -31,  407, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0060[] = {  // Code 0060, GRAVE ACCENT
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0060[] = {  // Code 0060, GRAVE ACCENT
  436, -1201,   106, -1479,   106, -1508,   313, -1508,   530, -1221,   530, -1201, 
  436, -1201, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0061[] = {  // Code 0061, LATIN SMALL LETTER A
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, L, Q, Q, Q, Q, L, Q, Q, Q, L, Q, Q, Q, L, Q, Q),
  GUI_VG_SEGMENTS(Q, L, Q, Q, M, Q, Q, Q, L, L, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0061[] = {  // Code 0061, LATIN SMALL LETTER A
  414,    20,   251,    20,   169,   -66,    87,  -152,    87,  -302,    87,  -470, 
  197,  -560,   308,  -650,   554,  -656,   797,  -660,   797,  -719,   797,  -851, 
  741,  -908,   685,  -965,   565,  -965,   444,  -965,   389,  -924,   334,  -883, 
  323,  -793,   135,  -810,   181, -1102,   569, -1102,   773, -1102,   876, -1008, 
  979,  -915,   979,  -738,   979,  -272,   979,  -192,  1000,  -151,  1021,  -111, 
  1080,  -111,  1106,  -111,  1139,  -118,  1139,    -6,  1071,    10,  1000,    10, 
  900,    10,   854,   -42,   809,   -95,   803,  -207,   797,  -207,   728,   -83, 
  636,   -31,   545,    20,   414,    20,   455,  -115,   554,  -115,   631,  -160, 
  708,  -205,   752,  -283,   797,  -362,   797,  -445,   797,  -534,   600,  -530, 
  473,  -528,   407,  -504,   342,  -480,   307,  -430,   272,  -380,   272,  -299, 
  272,  -211,   319,  -163,   367,  -115,   455,  -115, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0062[] = {  // Code 0062, LATIN SMALL LETTER B
  GUI_VG_SEGMENTS(M, Q, Q, Q, L, Q, Q, L, Q, L, L, L, Q, L, Q, Q, Q, Q, M, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0062[] = {  // Code 0062, LATIN SMALL LETTER B
  1053,  -546,  1053,    20,   655,    20,   532,    20,   450,   -24,   369,   -69, 
  318,  -168,   316,  -168,   316,  -137,   312,   -73,   308,   -10,   306,     0, 
  132,     0,   138,   -54,   138,  -223,   138, -1484,   318, -1484,   318, -1061, 
  318,  -996,   314,  -908,   318,  -908,   368, -1012,   450, -1057,   533, -1102, 
  655, -1102,   860, -1102,   956,  -964,  1053,  -826,  1053,  -546,   864,  -540, 
  864,  -767,   804,  -865,   744,  -963,   609,  -963,   457,  -963,   387,  -859, 
  318,  -755,   318,  -529,   318,  -316,   386,  -214,   454,  -113,   607,  -113, 
  743,  -113,   803,  -213,   864,  -314,   864,  -540, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0063[] = {  // Code 0063, LATIN SMALL LETTER C
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0063[] = {  // Code 0063, LATIN SMALL LETTER C
  275,  -546,   275,  -330,   343,  -226,   411,  -122,   548,  -122,   644,  -122, 
  708,  -174,   773,  -226,   788,  -334,   970,  -322,   949,  -166,   837,   -73, 
  725,    20,   553,    20,   326,    20,   206,  -123,    87,  -267,    87,  -542, 
  87,  -815,   207,  -958,   327, -1102,   551, -1102,   717, -1102,   826, -1016, 
  936,  -930,   964,  -779,   779,  -765,   765,  -855,   708,  -908,   651,  -961, 
  546,  -961,   403,  -961,   339,  -866,   275,  -771,   275,  -546, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0064[] = {  // Code 0064, LATIN SMALL LETTER D
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, L, L, L, L, L, Q, L, Q, Q, L, M, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0064[] = {  // Code 0064, LATIN SMALL LETTER D
  821,  -174,   771,   -70,   688,   -25,   606,    20,   484,    20,   279,    20, 
  182,  -118,    86,  -256,    86,  -536,    86, -1102,   484, -1102,   607, -1102, 
  689, -1057,   771, -1012,   821,  -914,   823,  -914,   821, -1035,   821, -1484, 
  1001, -1484,  1001,  -223,  1001,   -54,  1007,     0,   835,     0,   832,   -16, 
  828,   -74,   825,  -132,   825,  -174,   821,  -174,   275,  -542,   275,  -315, 
  335,  -217,   395,  -119,   530,  -119,   683,  -119,   752,  -225,   821,  -331, 
  821,  -554,   821,  -769,   752,  -869,   683,  -969,   532,  -969,   396,  -969, 
  335,  -868,   275,  -768,   275,  -542, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0065[] = {  // Code 0065, LATIN SMALL LETTER E
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, L, L, M, Q, Q, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0065[] = {  // Code 0065, LATIN SMALL LETTER E
  276,  -503,   276,  -317,   353,  -216,   430,  -115,   578,  -115,   695,  -115, 
  765,  -162,   836,  -209,   861,  -281,  1019,  -236,   922,    20,   578,    20, 
  338,    20,   212,  -123,    87,  -266,    87,  -548,    87,  -816,   212,  -959, 
  338, -1102,   571, -1102,  1048, -1102,  1048,  -527,  1048,  -503,   276,  -503, 
  862,  -641,   847,  -812,   775,  -890,   703,  -969,   568,  -969,   437,  -969, 
  360,  -881,   284,  -794,   278,  -641,   862,  -641, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0066[] = {  // Code 0066, LATIN SMALL LETTER F
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, Q, Q, Q, L, Q, Q, Q, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0066[] = {  // Code 0066, LATIN SMALL LETTER F
  361,  -951,   361,     0,   181,     0,   181,  -951,    29,  -951,    29, -1082, 
  181, -1082,   181, -1204,   181, -1352,   246, -1417,   311, -1482,   445, -1482, 
  520, -1482,   572, -1470,   572, -1333,   527, -1341,   492, -1341,   423, -1341, 
  392, -1306,   361, -1271,   361, -1179,   361, -1082,   572, -1082,   572,  -951, 
  361,  -951, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0067[] = {  // Code 0067, LATIN SMALL LETTER G
  GUI_VG_SEGMENTS(M, Q, Q, L, Q, Q, Q, L, L, Q, Q, Q, Q, Q, Q, Q, Q, L, Q, Q, L, Q),
  GUI_VG_SEGMENTS(L, Q, M, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0067[] = {  // Code 0067, LATIN SMALL LETTER G
  548,   425,   371,   425,   266,   355,   161,   286,   131,   158,   312,   132, 
  330,   207,   391,   247,   453,   288,   553,   288,   822,   288,   822,   -27, 
  822,  -201,   820,  -201,   769,   -97,   680,   -44,   591,     8,   472,     8, 
  273,     8,   179,  -124,    86,  -256,    86,  -539,    86,  -826,   186,  -962, 
  287, -1099,   492, -1099,   607, -1099,   691, -1046,   776,  -994,   822,  -897, 
  824,  -897,   824,  -927,   828, -1001,   832, -1075,   836, -1082,  1007, -1082, 
  1001, -1028,  1001,  -858,  1001,   -31,  1001,   425,   548,   425,   822,  -541, 
  822,  -673,   786,  -768,   750,  -864,   684,  -914,   619,  -965,   536,  -965, 
  398,  -965,   335,  -865,   272,  -765,   272,  -541,   272,  -319,   331,  -222, 
  390,  -125,   533,  -125,   618,  -125,   684,  -175,   750,  -225,   786,  -318, 
  822,  -412,   822,  -541, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0068[] = {  // Code 0068, LATIN SMALL LETTER H
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, L, L, Q, Q, Q, Q, Q, L, L, L, L, L, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0068[] = {  // Code 0068, LATIN SMALL LETTER H
  317,  -897,   375, -1003,   456, -1052,   538, -1102,   663, -1102,   839, -1102, 
  922, -1014,  1006,  -927,  1006,  -721,  1006,     0,   825,     0,   825,  -686, 
  825,  -800,   804,  -855,   783,  -911,   735,  -937,   687,  -963,   602,  -963, 
  475,  -963,   398,  -875,   322,  -787,   322,  -638,   322,     0,   142,     0, 
  142, -1484,   322, -1484,   322, -1098,   322, -1037,   318,  -972,   315,  -907, 
  314,  -897,   317,  -897, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0069[] = {  // Code 0069, LATIN SMALL LETTER I
  GUI_VG_SEGMENTS(M, L, L, L, L, M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0069[] = {  // Code 0069, LATIN SMALL LETTER I
  137, -1312,   137, -1484,   317, -1484,   317, -1312,   137, -1312,   137,     0, 
  137, -1082,   317, -1082,   317,     0,   137,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_006A[] = {  // Code 006A, LATIN SMALL LETTER J
  GUI_VG_SEGMENTS(M, L, L, L, L, M, Q, Q, Q, L, L, Q, Q, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_006A[] = {  // Code 006A, LATIN SMALL LETTER J
  137, -1312,   137, -1484,   317, -1484,   317, -1312,   137, -1312,   317,   134, 
  317,   287,   257,   356,   197,   425,    77,   425,     0,   425,   -50,   416, 
  -50,   277,    12,   283,    81,   283,   109,   247,   137,   211,   137,   107, 
  137, -1082,   317, -1082,   317,   134, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_006B[] = {  // Code 006B, LATIN SMALL LETTER K
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_006B[] = {  // Code 006B, LATIN SMALL LETTER K
  816,     0,   450,  -494,   318,  -385,   318,     0,   138,     0,   138, -1484, 
  318, -1484,   318,  -557,   793, -1082,  1004, -1082,   565,  -617,  1027,     0, 
  816,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_006C[] = {  // Code 006C, LATIN SMALL LETTER L
  GUI_VG_SEGMENTS(M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_006C[] = {  // Code 006C, LATIN SMALL LETTER L
  138,     0,   138, -1484,   318, -1484,   318,     0,   138,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_006D[] = {  // Code 006D, LATIN SMALL LETTER M
  GUI_VG_SEGMENTS(M, L, Q, Q, Q, Q, L, L, L, Q, L, Q, Q, Q, L, Q, Q, Q, Q, L, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, L, L, L, Q, Q, Q, Q, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_006D[] = {  // Code 006D, LATIN SMALL LETTER M
  768,     0,   768,  -686,   768,  -843,   725,  -903,   682,  -963,   570,  -963, 
  455,  -963,   388,  -875,   321,  -787,   321,  -627,   321,     0,   142,     0, 
  142,  -851,   142, -1040,   136, -1082,   306, -1082,   307, -1077,   308, -1055, 
  309, -1033,   310, -1004,   312,  -976,   314,  -897,   317,  -897,   375, -1012, 
  450, -1057,   525, -1102,   633, -1102,   756, -1102,   827, -1053,   899, -1004, 
  927,  -897,   930,  -897,   986, -1006,  1065, -1054,  1145, -1102,  1258, -1102, 
  1422, -1102,  1496, -1013,  1571,  -924,  1571,  -721,  1571,     0,  1393,     0, 
  1393,  -686,  1393,  -843,  1350,  -903,  1307,  -963,  1195,  -963,  1077,  -963, 
  1011,  -875,   946,  -788,   946,  -627,   946,     0,   768,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_006E[] = {  // Code 006E, LATIN SMALL LETTER N
  GUI_VG_SEGMENTS(M, L, Q, Q, Q, Q, Q, L, L, L, Q, L, Q, Q, Q, L, Q, Q, Q, Q, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_006E[] = {  // Code 006E, LATIN SMALL LETTER N
  825,     0,   825,  -686,   825,  -793,   804,  -852,   783,  -911,   737,  -937, 
  691,  -963,   602,  -963,   472,  -963,   397,  -874,   322,  -785,   322,  -627, 
  322,     0,   142,     0,   142,  -851,   142, -1040,   136, -1082,   306, -1082, 
  307, -1077,   308, -1055,   309, -1033,   310, -1004,   312,  -976,   314,  -897, 
  317,  -897,   379, -1009,   460, -1055,   542, -1102,   663, -1102,   841, -1102, 
  923, -1013,  1006,  -925,  1006,  -721,  1006,     0,   825,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_006F[] = {  // Code 006F, LATIN SMALL LETTER O
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, Q, Q, M, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_006F[] = {  // Code 006F, LATIN SMALL LETTER O
  1053,  -542,  1053,  -258,   928,  -119,   803,    20,   565,    20,   328,    20, 
  207,  -124,    86,  -269,    86,  -542,    86, -1102,   571, -1102,   819, -1102, 
  936,  -965,  1053,  -829,  1053,  -542,   864,  -542,   864,  -766,   797,  -867, 
  731,  -969,   574,  -969,   416,  -969,   345,  -865,   275,  -762,   275,  -542, 
  275,  -328,   344,  -220,   414,  -113,   563,  -113,   725,  -113,   794,  -217, 
  864,  -321,   864,  -542, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0070[] = {  // Code 0070, LATIN SMALL LETTER P
  GUI_VG_SEGMENTS(M, Q, Q, L, Q, L, L, L, Q, L, Q, Q, Q, L, Q, Q, Q, Q, M, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0070[] = {  // Code 0070, LATIN SMALL LETTER P
  1053,  -546,  1053,    20,   655,    20,   405,    20,   319,  -168,   314,  -168, 
  318,  -160,   318,     2,   318,   425,   138,   425,   138,  -861,   138, -1028, 
  132, -1082,   306, -1082,   307, -1078,   309, -1053,   311, -1029,   313,  -978, 
  316,  -927,   316,  -908,   320,  -908,   368, -1008,   447, -1054,   526, -1101, 
  655, -1101,   855, -1101,   954,  -967,  1053,  -833,  1053,  -546,   864,  -542, 
  864,  -768,   803,  -865,   742,  -962,   609,  -962,   502,  -962,   441,  -917, 
  381,  -872,   349,  -776,   318,  -681,   318,  -528,   318,  -315,   386,  -214, 
  454,  -113,   607,  -113,   741,  -113,   802,  -211,   864,  -310,   864,  -542, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0071[] = {  // Code 0071, LATIN SMALL LETTER Q
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, L, Q, Q, L, Q, L, L, L, L, L, Q, Q, M, Q, Q, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0071[] = {  // Code 0071, LATIN SMALL LETTER Q
  484,    20,   278,    20,   182,  -119,    86,  -258,    86,  -536,    86, -1102, 
  484, -1102,   607, -1102,   687, -1058,   767, -1015,   821,  -914,   823,  -914, 
  823,  -944,   827, -1017,   831, -1091,   835, -1096,  1008, -1096,  1001, -1037, 
  1001,  -801,  1001,   425,   821,   425,   821,   -14,   825,  -178,   823,  -178, 
  769,   -71,   690,   -25,   611,    20,   484,    20,   821,  -554,   821,  -765, 
  752,  -867,   683,  -969,   532,  -969,   395,  -969,   335,  -867,   275,  -765, 
  275,  -542,   275,  -315,   335,  -217,   396,  -119,   530,  -119,   683,  -119, 
  752,  -228,   821,  -337,   821,  -554, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0072[] = {  // Code 0072, LATIN SMALL LETTER R
  GUI_VG_SEGMENTS(M, L, Q, L, Q, L, Q, Q, Q, L, Q, Q, Q, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0072[] = {  // Code 0072, LATIN SMALL LETTER R
  142,     0,   142,  -830,   142,  -944,   136, -1082,   306, -1082,   314,  -898, 
  314,  -861,   318,  -861,   361, -1000,   417, -1051,   473, -1102,   575, -1102, 
  611, -1102,   648, -1092,   648,  -927,   612,  -937,   552,  -937,   440,  -937, 
  381,  -840,   322,  -744,   322,  -564,   322,     0,   142,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0073[] = {  // Code 0073, LATIN SMALL LETTER S
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, Q, L, Q),
  GUI_VG_SEGMENTS(Q, Q, Q, Q, Q, Q, Q, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0073[] = {  // Code 0073, LATIN SMALL LETTER S
  950,  -299,   950,  -146,   834,   -63,   719,    20,   511,    20,   309,    20, 
  199,   -46,    90,  -113,    57,  -254,   216,  -285,   239,  -198,   311,  -157, 
  383,  -117,   511,  -117,   648,  -117,   711,  -159,   775,  -201,   775,  -285, 
  775,  -349,   731,  -389,   687,  -429,   589,  -455,   460,  -489,   305,  -529, 
  239,  -567,   174,  -606,   137,  -661,   100,  -716,   100,  -796,   100,  -944, 
  205, -1021,   311, -1099,   513, -1099,   692, -1099,   797, -1036,   903,  -973, 
  931,  -834,   769,  -814,   754,  -886,   688,  -924,   623,  -963,   513,  -963, 
  391,  -963,   333,  -926,   275,  -889,   275,  -814,   275,  -768,   299,  -738, 
  323,  -708,   370,  -687,   417,  -666,   568,  -629,   711,  -593,   774,  -562, 
  837,  -532,   873,  -495,   910,  -458,   930,  -409,   950,  -361,   950,  -299, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0074[] = {  // Code 0074, LATIN SMALL LETTER T
  GUI_VG_SEGMENTS(M, Q, Q, L, L, L, L, L, L, L, L, L, L, L, Q, Q, Q, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0074[] = {  // Code 0074, LATIN SMALL LETTER T
  554,    -8,   465,    16,   372,    16,   156,    16,   156,  -229,   156,  -951, 
  31,  -951,    31, -1082,   163, -1082,   216, -1324,   336, -1324,   336, -1082, 
  536, -1082,   536,  -951,   336,  -951,   336,  -268,   336,  -190,   361,  -158, 
  387,  -127,   450,  -127,   486,  -127,   554,  -141,   554,    -8, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0075[] = {  // Code 0075, LATIN SMALL LETTER U
  GUI_VG_SEGMENTS(M, L, Q, Q, Q, Q, Q, L, L, L, Q, L, Q, Q, Q, L, Q, Q, Q, Q, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0075[] = {  // Code 0075, LATIN SMALL LETTER U
  314, -1082,   314,  -396,   314,  -289,   335,  -230,   356,  -171,   402,  -145, 
  448,  -119,   537,  -119,   667,  -119,   742,  -208,   817,  -297,   817,  -455, 
  817, -1082,   997, -1082,   997,  -231,   997,   -42,  1003,     0,   833,     0, 
  832,    -5,   831,   -27,   830,   -49,   828,   -77,   827,  -106,   825,  -185, 
  822,  -185,   760,   -73,   678,   -26,   597,    20,   476,    20,   298,    20, 
  215,   -68,   133,  -157,   133,  -361,   133, -1082,   314, -1082, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0076[] = {  // Code 0076, LATIN SMALL LETTER V
  GUI_VG_SEGMENTS(M, L, L, L, L, Q, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0076[] = {  // Code 0076, LATIN SMALL LETTER V
  613,     0,   400,     0,     7, -1082,   199, -1082,   437,  -378,   450,  -338, 
  506,  -141,   541,  -258,   580,  -376,   826, -1082,  1017, -1082,   613,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0077[] = {  // Code 0077, LATIN SMALL LETTER W
  GUI_VG_SEGMENTS(M, L, L, L, Q, Q, L, L, L, L, Q, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0077[] = {  // Code 0077, LATIN SMALL LETTER W
  1174,     0,   965,     0,   776,  -765,   740,  -934,   731,  -889,   712,  -804, 
  693,  -720,   508,     0,   300,     0,    -3, -1082,   175, -1082,   358,  -347, 
  365,  -323,   401,  -149,   418,  -223,   644, -1082,   837, -1082,  1026,  -339, 
  1072,  -149,  1103,  -288,  1308, -1082,  1484, -1082,  1174,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0078[] = {  // Code 0078, LATIN SMALL LETTER X
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0078[] = {  // Code 0078, LATIN SMALL LETTER X
  801,     0,   510,  -444,   217,     0,    23,     0,   408,  -556,    41, -1082, 
  240, -1082,   510,  -661,   778, -1082,   979, -1082,   612,  -558,  1002,     0, 
  801,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_0079[] = {  // Code 0079, LATIN SMALL LETTER Y
  GUI_VG_SEGMENTS(M, Q, L, Q, Q, L, L, L, L, Q, Q, Q, L, L, L, L, Q, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_0079[] = {  // Code 0079, LATIN SMALL LETTER Y
  191,   425,   117,   425,    67,   414,    67,   279,   105,   285,   151,   285, 
  319,   285,   417,    38,   434,    -5,     5, -1082,   197, -1082,   425,  -484, 
  430,  -470,   437,  -450,   444,  -431,   482,  -320,   520,  -209,   523,  -196, 
  593,  -393,   830, -1082,  1020, -1082,   604,     0,   537,   173,   479,   257, 
  421,   342,   350,   383,   280,   425,   191,   425, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_007A[] = {  // Code 007A, LATIN SMALL LETTER Z
  GUI_VG_SEGMENTS(M, L, L, L, L, L, L, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_007A[] = {  // Code 007A, LATIN SMALL LETTER Z
  83,     0,    83,  -137,   688,  -943,   117,  -943,   117, -1082,   901, -1082, 
  901,  -945,   295,  -139,   922,  -139,   922,     0,    83,     0, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_007B[] = {  // Code 007B, LEFT CURLY BRACKET
  GUI_VG_SEGMENTS(M, Q, Q, L, Q, Q, L, Q, Q, L, Q, Q, L, L, L, Q, Q, L, Q, Q, L, Q),
  GUI_VG_SEGMENTS(Q, L, Q, Q, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_007B[] = {  // Code 007B, LEFT CURLY BRACKET
  513,   425,   386,   425,   317,   348,   249,   271,   249,   132,   249,  -229, 
  249,  -346,   196,  -403,   144,  -461,    34,  -466,    34,  -593,   143,  -597, 
  196,  -654,   249,  -712,   249,  -829,   249, -1191,   249, -1332,   315, -1408, 
  382, -1484,   513, -1484,   648, -1484,   648, -1355,   585, -1355,   494, -1355, 
  455, -1301,   417, -1248,   417, -1140,   417,  -784,   417,  -690,   364,  -621, 
  311,  -553,   223,  -532,   223,  -530,   312,  -509,   364,  -441,   417,  -373, 
  417,  -276,   417,    81,   417,   187,   455,   241,   494,   296,   585,   296, 
  648,   296,   648,   425,   513,   425, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_007C[] = {  // Code 007C, VERTICAL LINE
  GUI_VG_SEGMENTS(M, L, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_007C[] = {  // Code 007C, VERTICAL LINE
  183,   434,   183, -1484,   349, -1484,   349,   434,   183,   434, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_007D[] = {  // Code 007D, RIGHT CURLY BRACKET
  GUI_VG_SEGMENTS(M, Q, Q, L, Q, Q, L, Q, Q, L, Q, Q, L, L, L, Q, Q, L, Q, Q, L, Q),
  GUI_VG_SEGMENTS(Q, L, Q, Q, L, L, L),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_007D[] = {  // Code 007D, RIGHT CURLY BRACKET
  94,   296,   185,   296,   224,   241,   264,   187,   264,    81,   264,  -276, 
  264,  -374,   316,  -442,   368,  -510,   457,  -530,   457,  -532,   371,  -552, 
  317,  -619,   264,  -687,   264,  -784,   264, -1140,   264, -1248,   224, -1301, 
  185, -1355,    94, -1355,    34, -1355,    34, -1484,   166, -1484,   297, -1484, 
  363, -1408,   430, -1332,   430, -1191,   430,  -829,   430,  -713,   483,  -655, 
  536,  -597,   647,  -593,   647,  -466,   535,  -462,   482,  -404,   430,  -346, 
  430,  -229,   430,   132,   430,   270,   361,   347,   293,   425,   166,   425, 
  34,   425,    34,   296,    94,   296, 
};

static GUI_CONST_STORAGE U8 _acSegLiberationSansRegular_007E[] = {  // Code 007E, TILDE
  GUI_VG_SEGMENTS(M, Q, Q, Q, Q, Q, L, Q, Q, Q, Q, Q, Q, L, Q, Q),
};

static GUI_CONST_STORAGE I16 _acCrdLiberationSansRegular_007E[] = {  // Code 007E, TILDE
  844, -553,  775, -553,  702, -575,  630, -597,  557, -623,  428, -668, 
  340, -668,  273, -668,  215, -647,  157, -627,   92, -580,   92, -723, 
  203, -807,  355, -807,  407, -807,  470, -794,  534, -781,  664, -735, 
  695, -723,  755, -706,  815, -690,  860, -690,  990, -690, 1104, -782, 
  1104, -633, 1046, -591,  987, -572,  929, -553,  844, -553, 
};

static U16 _aCodePages_LiberationSansRegular[] = {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 
};

static I16 _aPageSizes_LiberationSansRegular[] = {
  95,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
};

static GUI_CONST_STORAGE GUI_VG_FONT_GLYPH_INT _aGlyphs_LiberationSansRegular[] = {
  { {  569,    0,    0,    0,    0,                                        0 }, 0x0020,                             NULL,                             NULL },
  { {  569,  185, 1409,  198, 1409, sizeof(_acSegLiberationSansRegular_0021) }, 0x0021, _acSegLiberationSansRegular_0021, _acCrdLiberationSansRegular_0021 },
  { {  727,   87, 1409,  553,  443, sizeof(_acSegLiberationSansRegular_0022) }, 0x0022, _acSegLiberationSansRegular_0022, _acCrdLiberationSansRegular_0022 },
  { { 1139,    9, 1401, 1120, 1401, sizeof(_acSegLiberationSansRegular_0023) }, 0x0023, _acSegLiberationSansRegular_0023, _acCrdLiberationSansRegular_0023 },
  { { 1139,   22, 1516, 1084, 1658, sizeof(_acSegLiberationSansRegular_0024) }, 0x0024, _acSegLiberationSansRegular_0024, _acCrdLiberationSansRegular_0024 },
  { { 1821,   73, 1421, 1675, 1433, sizeof(_acSegLiberationSansRegular_0025) }, 0x0025, _acSegLiberationSansRegular_0025, _acCrdLiberationSansRegular_0025 },
  { { 1366,   72, 1417, 1262, 1437, sizeof(_acSegLiberationSansRegular_0026) }, 0x0026, _acSegLiberationSansRegular_0026, _acCrdLiberationSansRegular_0026 },
  { {  391,  104, 1409,  184,  443, sizeof(_acSegLiberationSansRegular_0027) }, 0x0027, _acSegLiberationSansRegular_0027, _acCrdLiberationSansRegular_0027 },
  { {  682,  127, 1484,  543, 1908, sizeof(_acSegLiberationSansRegular_0028) }, 0x0028, _acSegLiberationSansRegular_0028, _acCrdLiberationSansRegular_0028 },
  { {  682,   12, 1484,  543, 1908, sizeof(_acSegLiberationSansRegular_0029) }, 0x0029, _acSegLiberationSansRegular_0029, _acCrdLiberationSansRegular_0029 },
  { {  797,   33, 1409,  732,  719, sizeof(_acSegLiberationSansRegular_002A) }, 0x002A, _acSegLiberationSansRegular_002A, _acCrdLiberationSansRegular_002A },
  { { 1196,  100, 1182,  995, 1002, sizeof(_acSegLiberationSansRegular_002B) }, 0x002B, _acSegLiberationSansRegular_002B, _acCrdLiberationSansRegular_002B },
  { {  569,  184,  219,  201,  481, sizeof(_acSegLiberationSansRegular_002C) }, 0x002C, _acSegLiberationSansRegular_002C, _acCrdLiberationSansRegular_002C },
  { {  682,   91,  624,  500,  160, sizeof(_acSegLiberationSansRegular_002D) }, 0x002D, _acSegLiberationSansRegular_002D, _acCrdLiberationSansRegular_002D },
  { {  569,  187,  219,  195,  219, sizeof(_acSegLiberationSansRegular_002E) }, 0x002E, _acSegLiberationSansRegular_002E, _acCrdLiberationSansRegular_002E },
  { {  569,    0, 1484,  569, 1504, sizeof(_acSegLiberationSansRegular_002F) }, 0x002F, _acSegLiberationSansRegular_002F, _acCrdLiberationSansRegular_002F },
  { { 1139,   80, 1430,  979, 1450, sizeof(_acSegLiberationSansRegular_0030) }, 0x0030, _acSegLiberationSansRegular_0030, _acCrdLiberationSansRegular_0030 },
  { { 1139,  156, 1409,  883, 1409, sizeof(_acSegLiberationSansRegular_0031) }, 0x0031, _acSegLiberationSansRegular_0031, _acCrdLiberationSansRegular_0031 },
  { { 1139,  103, 1430,  933, 1430, sizeof(_acSegLiberationSansRegular_0032) }, 0x0032, _acSegLiberationSansRegular_0032, _acCrdLiberationSansRegular_0032 },
  { { 1139,   78, 1430,  971, 1450, sizeof(_acSegLiberationSansRegular_0033) }, 0x0033, _acSegLiberationSansRegular_0033, _acCrdLiberationSansRegular_0033 },
  { { 1139,   47, 1409, 1032, 1409, sizeof(_acSegLiberationSansRegular_0034) }, 0x0034, _acSegLiberationSansRegular_0034, _acCrdLiberationSansRegular_0034 },
  { { 1139,   82, 1409,  971, 1429, sizeof(_acSegLiberationSansRegular_0035) }, 0x0035, _acSegLiberationSansRegular_0035, _acCrdLiberationSansRegular_0035 },
  { { 1139,  104, 1430,  945, 1450, sizeof(_acSegLiberationSansRegular_0036) }, 0x0036, _acSegLiberationSansRegular_0036, _acCrdLiberationSansRegular_0036 },
  { { 1139,  105, 1409,  931, 1409, sizeof(_acSegLiberationSansRegular_0037) }, 0x0037, _acSegLiberationSansRegular_0037, _acCrdLiberationSansRegular_0037 },
  { { 1139,   89, 1430,  961, 1450, sizeof(_acSegLiberationSansRegular_0038) }, 0x0038, _acSegLiberationSansRegular_0038, _acCrdLiberationSansRegular_0038 },
  { { 1139,   96, 1430,  946, 1450, sizeof(_acSegLiberationSansRegular_0039) }, 0x0039, _acSegLiberationSansRegular_0039, _acCrdLiberationSansRegular_0039 },
  { {  569,  187, 1082,  195, 1082, sizeof(_acSegLiberationSansRegular_003A) }, 0x003A, _acSegLiberationSansRegular_003A, _acCrdLiberationSansRegular_003A },
  { {  569,  184, 1082,  201, 1344, sizeof(_acSegLiberationSansRegular_003B) }, 0x003B, _acSegLiberationSansRegular_003B, _acCrdLiberationSansRegular_003B },
  { { 1196,  101, 1194,  995, 1040, sizeof(_acSegLiberationSansRegular_003C) }, 0x003C, _acSegLiberationSansRegular_003C, _acCrdLiberationSansRegular_003C },
  { { 1196,  100, 1004,  995,  660, sizeof(_acSegLiberationSansRegular_003D) }, 0x003D, _acSegLiberationSansRegular_003D, _acCrdLiberationSansRegular_003D },
  { { 1196,  101, 1194,  995, 1040, sizeof(_acSegLiberationSansRegular_003E) }, 0x003E, _acSegLiberationSansRegular_003E, _acCrdLiberationSansRegular_003E },
  { { 1139,   84, 1430,  979, 1430, sizeof(_acSegLiberationSansRegular_003F) }, 0x003F, _acSegLiberationSansRegular_003F, _acCrdLiberationSansRegular_003F },
  { { 2079,  161, 1484, 1741, 1767, sizeof(_acSegLiberationSansRegular_0040) }, 0x0040, _acSegLiberationSansRegular_0040, _acCrdLiberationSansRegular_0040 },
  { { 1366,    4, 1409, 1358, 1409, sizeof(_acSegLiberationSansRegular_0041) }, 0x0041, _acSegLiberationSansRegular_0041, _acCrdLiberationSansRegular_0041 },
  { { 1366,  168, 1409, 1090, 1409, sizeof(_acSegLiberationSansRegular_0042) }, 0x0042, _acSegLiberationSansRegular_0042, _acCrdLiberationSansRegular_0042 },
  { { 1479,  104, 1430, 1297, 1450, sizeof(_acSegLiberationSansRegular_0043) }, 0x0043, _acSegLiberationSansRegular_0043, _acCrdLiberationSansRegular_0043 },
  { { 1479,  168, 1409, 1213, 1409, sizeof(_acSegLiberationSansRegular_0044) }, 0x0044, _acSegLiberationSansRegular_0044, _acCrdLiberationSansRegular_0044 },
  { { 1366,  168, 1409, 1110, 1409, sizeof(_acSegLiberationSansRegular_0045) }, 0x0045, _acSegLiberationSansRegular_0045, _acCrdLiberationSansRegular_0045 },
  { { 1251,  168, 1409, 1001, 1409, sizeof(_acSegLiberationSansRegular_0046) }, 0x0046, _acSegLiberationSansRegular_0046, _acCrdLiberationSansRegular_0046 },
  { { 1593,  103, 1430, 1337, 1450, sizeof(_acSegLiberationSansRegular_0047) }, 0x0047, _acSegLiberationSansRegular_0047, _acCrdLiberationSansRegular_0047 },
  { { 1479,  168, 1409, 1144, 1409, sizeof(_acSegLiberationSansRegular_0048) }, 0x0048, _acSegLiberationSansRegular_0048, _acCrdLiberationSansRegular_0048 },
  { {  569,  189, 1409,  191, 1409, sizeof(_acSegLiberationSansRegular_0049) }, 0x0049, _acSegLiberationSansRegular_0049, _acCrdLiberationSansRegular_0049 },
  { { 1024,   32, 1409,  840, 1429, sizeof(_acSegLiberationSansRegular_004A) }, 0x004A, _acSegLiberationSansRegular_004A, _acCrdLiberationSansRegular_004A },
  { { 1366,  168, 1409, 1175, 1409, sizeof(_acSegLiberationSansRegular_004B) }, 0x004B, _acSegLiberationSansRegular_004B, _acCrdLiberationSansRegular_004B },
  { { 1139,  168, 1409,  903, 1409, sizeof(_acSegLiberationSansRegular_004C) }, 0x004C, _acSegLiberationSansRegular_004C, _acCrdLiberationSansRegular_004C },
  { { 1706,  168, 1409, 1370, 1409, sizeof(_acSegLiberationSansRegular_004D) }, 0x004D, _acSegLiberationSansRegular_004D, _acCrdLiberationSansRegular_004D },
  { { 1479,  168, 1409, 1144, 1409, sizeof(_acSegLiberationSansRegular_004E) }, 0x004E, _acSegLiberationSansRegular_004E, _acCrdLiberationSansRegular_004E },
  { { 1593,   97, 1430, 1398, 1450, sizeof(_acSegLiberationSansRegular_004F) }, 0x004F, _acSegLiberationSansRegular_004F, _acCrdLiberationSansRegular_004F },
  { { 1366,  168, 1409, 1090, 1409, sizeof(_acSegLiberationSansRegular_0050) }, 0x0050, _acSegLiberationSansRegular_0050, _acCrdLiberationSansRegular_0050 },
  { { 1593,   97, 1430, 1398, 1817, sizeof(_acSegLiberationSansRegular_0051) }, 0x0051, _acSegLiberationSansRegular_0051, _acCrdLiberationSansRegular_0051 },
  { { 1479,  168, 1409, 1216, 1409, sizeof(_acSegLiberationSansRegular_0052) }, 0x0052, _acSegLiberationSansRegular_0052, _acCrdLiberationSansRegular_0052 },
  { { 1366,   93, 1430, 1179, 1450, sizeof(_acSegLiberationSansRegular_0053) }, 0x0053, _acSegLiberationSansRegular_0053, _acCrdLiberationSansRegular_0053 },
  { { 1251,   46, 1409, 1158, 1409, sizeof(_acSegLiberationSansRegular_0054) }, 0x0054, _acSegLiberationSansRegular_0054, _acCrdLiberationSansRegular_0054 },
  { { 1479,  158, 1409, 1163, 1429, sizeof(_acSegLiberationSansRegular_0055) }, 0x0055, _acSegLiberationSansRegular_0055, _acCrdLiberationSansRegular_0055 },
  { { 1366,    9, 1409, 1348, 1409, sizeof(_acSegLiberationSansRegular_0056) }, 0x0056, _acSegLiberationSansRegular_0056, _acCrdLiberationSansRegular_0056 },
  { { 1933,    9, 1409, 1917, 1409, sizeof(_acSegLiberationSansRegular_0057) }, 0x0057, _acSegLiberationSansRegular_0057, _acCrdLiberationSansRegular_0057 },
  { { 1366,   46, 1409, 1277, 1409, sizeof(_acSegLiberationSansRegular_0058) }, 0x0058, _acSegLiberationSansRegular_0058, _acCrdLiberationSansRegular_0058 },
  { { 1366,   45, 1409, 1276, 1409, sizeof(_acSegLiberationSansRegular_0059) }, 0x0059, _acSegLiberationSansRegular_0059, _acCrdLiberationSansRegular_0059 },
  { { 1251,   65, 1409, 1122, 1409, sizeof(_acSegLiberationSansRegular_005A) }, 0x005A, _acSegLiberationSansRegular_005A, _acCrdLiberationSansRegular_005A },
  { {  569,  146, 1484,  407, 1909, sizeof(_acSegLiberationSansRegular_005B) }, 0x005B, _acSegLiberationSansRegular_005B, _acCrdLiberationSansRegular_005B },
  { {  569,    0, 1484,  569, 1504, sizeof(_acSegLiberationSansRegular_005C) }, 0x005C, _acSegLiberationSansRegular_005C, _acCrdLiberationSansRegular_005C },
  { {  569,   16, 1484,  407, 1909, sizeof(_acSegLiberationSansRegular_005D) }, 0x005D, _acSegLiberationSansRegular_005D, _acCrdLiberationSansRegular_005D },
  { {  961,   10, 1409,  941,  736, sizeof(_acSegLiberationSansRegular_005E) }, 0x005E, _acSegLiberationSansRegular_005E, _acCrdLiberationSansRegular_005E },
  { { 1139,  -31, -277, 1193,  130, sizeof(_acSegLiberationSansRegular_005F) }, 0x005F, _acSegLiberationSansRegular_005F, _acCrdLiberationSansRegular_005F },
  { {  682,  106, 1508,  424,  307, sizeof(_acSegLiberationSansRegular_0060) }, 0x0060, _acSegLiberationSansRegular_0060, _acCrdLiberationSansRegular_0060 },
  { { 1139,   87, 1102, 1052, 1122, sizeof(_acSegLiberationSansRegular_0061) }, 0x0061, _acSegLiberationSansRegular_0061, _acCrdLiberationSansRegular_0061 },
  { { 1139,  132, 1484,  921, 1504, sizeof(_acSegLiberationSansRegular_0062) }, 0x0062, _acSegLiberationSansRegular_0062, _acCrdLiberationSansRegular_0062 },
  { { 1024,   87, 1102,  883, 1122, sizeof(_acSegLiberationSansRegular_0063) }, 0x0063, _acSegLiberationSansRegular_0063, _acCrdLiberationSansRegular_0063 },
  { { 1139,   86, 1484,  921, 1504, sizeof(_acSegLiberationSansRegular_0064) }, 0x0064, _acSegLiberationSansRegular_0064, _acCrdLiberationSansRegular_0064 },
  { { 1139,   87, 1102,  961, 1122, sizeof(_acSegLiberationSansRegular_0065) }, 0x0065, _acSegLiberationSansRegular_0065, _acCrdLiberationSansRegular_0065 },
  { {  569,   29, 1482,  543, 1482, sizeof(_acSegLiberationSansRegular_0066) }, 0x0066, _acSegLiberationSansRegular_0066, _acCrdLiberationSansRegular_0066 },
  { { 1139,   86, 1099,  921, 1524, sizeof(_acSegLiberationSansRegular_0067) }, 0x0067, _acSegLiberationSansRegular_0067, _acCrdLiberationSansRegular_0067 },
  { { 1139,  142, 1484,  864, 1484, sizeof(_acSegLiberationSansRegular_0068) }, 0x0068, _acSegLiberationSansRegular_0068, _acCrdLiberationSansRegular_0068 },
  { {  455,  137, 1484,  180, 1484, sizeof(_acSegLiberationSansRegular_0069) }, 0x0069, _acSegLiberationSansRegular_0069, _acCrdLiberationSansRegular_0069 },
  { {  455,  -50, 1484,  367, 1909, sizeof(_acSegLiberationSansRegular_006A) }, 0x006A, _acSegLiberationSansRegular_006A, _acCrdLiberationSansRegular_006A },
  { { 1024,  138, 1484,  889, 1484, sizeof(_acSegLiberationSansRegular_006B) }, 0x006B, _acSegLiberationSansRegular_006B, _acCrdLiberationSansRegular_006B },
  { {  455,  138, 1484,  180, 1484, sizeof(_acSegLiberationSansRegular_006C) }, 0x006C, _acSegLiberationSansRegular_006C, _acCrdLiberationSansRegular_006C },
  { { 1706,  136, 1102, 1435, 1102, sizeof(_acSegLiberationSansRegular_006D) }, 0x006D, _acSegLiberationSansRegular_006D, _acCrdLiberationSansRegular_006D },
  { { 1139,  136, 1102,  870, 1102, sizeof(_acSegLiberationSansRegular_006E) }, 0x006E, _acSegLiberationSansRegular_006E, _acCrdLiberationSansRegular_006E },
  { { 1139,   86, 1102,  967, 1122, sizeof(_acSegLiberationSansRegular_006F) }, 0x006F, _acSegLiberationSansRegular_006F, _acCrdLiberationSansRegular_006F },
  { { 1139,  132, 1101,  921, 1526, sizeof(_acSegLiberationSansRegular_0070) }, 0x0070, _acSegLiberationSansRegular_0070, _acCrdLiberationSansRegular_0070 },
  { { 1139,   86, 1102,  922, 1527, sizeof(_acSegLiberationSansRegular_0071) }, 0x0071, _acSegLiberationSansRegular_0071, _acCrdLiberationSansRegular_0071 },
  { {  682,  136, 1102,  512, 1102, sizeof(_acSegLiberationSansRegular_0072) }, 0x0072, _acSegLiberationSansRegular_0072, _acCrdLiberationSansRegular_0072 },
  { { 1024,   57, 1099,  893, 1119, sizeof(_acSegLiberationSansRegular_0073) }, 0x0073, _acSegLiberationSansRegular_0073, _acCrdLiberationSansRegular_0073 },
  { {  569,   31, 1324,  523, 1340, sizeof(_acSegLiberationSansRegular_0074) }, 0x0074, _acSegLiberationSansRegular_0074, _acCrdLiberationSansRegular_0074 },
  { { 1139,  133, 1082,  870, 1102, sizeof(_acSegLiberationSansRegular_0075) }, 0x0075, _acSegLiberationSansRegular_0075, _acCrdLiberationSansRegular_0075 },
  { { 1024,    7, 1082, 1010, 1082, sizeof(_acSegLiberationSansRegular_0076) }, 0x0076, _acSegLiberationSansRegular_0076, _acCrdLiberationSansRegular_0076 },
  { { 1479,   -3, 1082, 1487, 1082, sizeof(_acSegLiberationSansRegular_0077) }, 0x0077, _acSegLiberationSansRegular_0077, _acCrdLiberationSansRegular_0077 },
  { { 1024,   23, 1082,  979, 1082, sizeof(_acSegLiberationSansRegular_0078) }, 0x0078, _acSegLiberationSansRegular_0078, _acCrdLiberationSansRegular_0078 },
  { { 1024,    5, 1082, 1015, 1507, sizeof(_acSegLiberationSansRegular_0079) }, 0x0079, _acSegLiberationSansRegular_0079, _acCrdLiberationSansRegular_0079 },
  { { 1024,   83, 1082,  839, 1082, sizeof(_acSegLiberationSansRegular_007A) }, 0x007A, _acSegLiberationSansRegular_007A, _acCrdLiberationSansRegular_007A },
  { {  684,   34, 1484,  614, 1909, sizeof(_acSegLiberationSansRegular_007B) }, 0x007B, _acSegLiberationSansRegular_007B, _acCrdLiberationSansRegular_007B },
  { {  532,  183, 1484,  166, 1918, sizeof(_acSegLiberationSansRegular_007C) }, 0x007C, _acSegLiberationSansRegular_007C, _acCrdLiberationSansRegular_007C },
  { {  684,   34, 1484,  613, 1909, sizeof(_acSegLiberationSansRegular_007D) }, 0x007D, _acSegLiberationSansRegular_007D, _acCrdLiberationSansRegular_007D },
  { { 1196,   92,  807, 1012,  254, sizeof(_acSegLiberationSansRegular_007E) }, 0x007E, _acSegLiberationSansRegular_007E, _acCrdLiberationSansRegular_007E },
};

static GUI_VG_FONT_KERNING_ITEM _aKerning_LiberationSansRegular[] = {
  { 0x0020, 0x0041, -113 }, { 0x0020, 0x0054,  -37 }, { 0x0020, 0x0059,  -37 }, 
  { 0x0031, 0x0031, -152 }, { 0x0041, 0x0020, -113 }, { 0x0041, 0x0054, -152 }, 
  { 0x0041, 0x0056, -152 }, { 0x0041, 0x0057,  -76 }, { 0x0041, 0x0059, -152 }, 
  { 0x0041, 0x0076,  -37 }, { 0x0041, 0x0077,  -37 }, { 0x0041, 0x0079,  -37 }, 
  { 0x0046, 0x002C, -227 }, { 0x0046, 0x002E, -227 }, { 0x0046, 0x0041, -113 }, 
  { 0x004C, 0x0020,  -76 }, { 0x004C, 0x0054, -152 }, { 0x004C, 0x0056, -152 }, 
  { 0x004C, 0x0057, -152 }, { 0x004C, 0x0059, -152 }, { 0x004C, 0x0079,  -76 }, 
  { 0x0050, 0x0020,  -37 }, { 0x0050, 0x002C, -264 }, { 0x0050, 0x002E, -264 }, 
  { 0x0050, 0x0041, -152 }, { 0x0052, 0x0054,  -37 }, { 0x0052, 0x0056,  -37 }, 
  { 0x0052, 0x0057,  -37 }, { 0x0052, 0x0059,  -37 }, { 0x0054, 0x0020,  -37 }, 
  { 0x0054, 0x002C, -227 }, { 0x0054, 0x002D, -113 }, { 0x0054, 0x002E, -227 }, 
  { 0x0054, 0x003A, -227 }, { 0x0054, 0x003B, -227 }, { 0x0054, 0x0041, -152 }, 
  { 0x0054, 0x004F,  -37 }, { 0x0054, 0x0061, -227 }, { 0x0054, 0x0063, -227 }, 
  { 0x0054, 0x0065, -227 }, { 0x0054, 0x0069,  -76 }, { 0x0054, 0x006F, -227 }, 
  { 0x0054, 0x0072,  -76 }, { 0x0054, 0x0073, -227 }, { 0x0054, 0x0075,  -76 }, 
  { 0x0054, 0x0077, -113 }, { 0x0054, 0x0079, -113 }, { 0x0056, 0x002C, -188 }, 
  { 0x0056, 0x002D, -113 }, { 0x0056, 0x002E, -188 }, { 0x0056, 0x003A,  -76 }, 
  { 0x0056, 0x003B,  -76 }, { 0x0056, 0x0041, -152 }, { 0x0056, 0x0061, -152 }, 
  { 0x0056, 0x0065, -113 }, { 0x0056, 0x0069,  -37 }, { 0x0056, 0x006F, -113 }, 
  { 0x0056, 0x0072,  -76 }, { 0x0056, 0x0075,  -76 }, { 0x0056, 0x0079,  -76 }, 
  { 0x0057, 0x002C, -113 }, { 0x0057, 0x002D,  -37 }, { 0x0057, 0x002E, -113 }, 
  { 0x0057, 0x003A,  -37 }, { 0x0057, 0x003B,  -37 }, { 0x0057, 0x0041,  -76 }, 
  { 0x0057, 0x0061,  -76 }, { 0x0057, 0x0065,  -37 }, { 0x0057, 0x006F,  -37 }, 
  { 0x0057, 0x0072,  -37 }, { 0x0057, 0x0075,  -37 }, { 0x0057, 0x0079,  -18 }, 
  { 0x0059, 0x0020,  -37 }, { 0x0059, 0x002C, -264 }, { 0x0059, 0x002D, -188 }, 
  { 0x0059, 0x002E, -264 }, { 0x0059, 0x003A, -113 }, { 0x0059, 0x003B, -133 }, 
  { 0x0059, 0x0041, -152 }, { 0x0059, 0x0061, -152 }, { 0x0059, 0x0065, -188 }, 
  { 0x0059, 0x0069,  -76 }, { 0x0059, 0x006F, -188 }, { 0x0059, 0x0070, -152 }, 
  { 0x0059, 0x0071, -188 }, { 0x0059, 0x0075, -113 }, { 0x0059, 0x0076, -113 }, 
  { 0x0066, 0x0066,  -37 }, { 0x0072, 0x002C, -113 }, { 0x0072, 0x002E, -113 }, 
  { 0x0076, 0x002C, -152 }, { 0x0076, 0x002E, -152 }, { 0x0077, 0x002C, -113 }, 
  { 0x0077, 0x002E, -113 }, { 0x0079, 0x002C, -152 }, { 0x0079, 0x002E, -152 }, 
};

GUI_CONST_STORAGE GUI_VG_FONT_DATA_INT GUI_VectorFont_LiberationSansRegular = {
  {                                                                  
    1854,                                                            // Baseline (unscaled)
    2355,                                                            // Font height (unscaled)
    2628,                                                            // Boundary box height (unscaled)
    3780,                                                            // Boundary box width (unscaled)
    2048,                                                            // Units per EM
    1409,                                                            // Height of capital characters
    1122,                                                            // Height of lower-case characters
    (GUI_VG_FONTFLAG_SCALE_BBOX | GUI_VG_FONTFLAG_KERNING_ENABLED),  // Font flags
  },                                                                 
  _aCodePages_LiberationSansRegular,                                 // Code page array
  _aPageSizes_LiberationSansRegular,                                 // Page size array
  _aGlyphs_LiberationSansRegular,                                    // Glyph array
  _aKerning_LiberationSansRegular,                                   // Kerning array
  GUI_COUNTOF(_aKerning_LiberationSansRegular),                      // Kerning array size
};

/*********************************************************************
*
*       Types
*
**********************************************************************
*/
typedef enum {
  APP_FONT_LIBERATION_SERIF,
  APP_FONT_COURIER_NEW,
  APP_FONT_MVBOLI,
  //
  APP_FONT_COUNT,
} APP_FONT_ID;

typedef enum {
  APP_CACHE_FORMAT_AA8,
  APP_CACHE_FORMAT_AA4,
  APP_CACHE_FORMAT_AA2,
} APP_CACHE_FORMAT_ID;

typedef struct {
  APP_FONT_ID                              Id;
  GUI_CONST_STORAGE GUI_VG_FONT_DATA_INT * pFontData;
} FONT_BUTTON_DATA;

typedef struct {
  int xSize;
  int ySizeShaft;
} SLIDER_SIZES;

/*********************************************************************
*
*       Defines
*
**********************************************************************
*/
//
// Widget IDs
//
#define ID_WINDOW_0                  (GUI_ID_USER + 0x0)
#define ID_TEXT_HEADER               (GUI_ID_USER + 0x1)
#define ID_SLIDER_SCALE              (GUI_ID_USER + 0x2)
#define ID_WINDOW_CANVAS             (GUI_ID_USER + 0x3)
#define ID_SWITCH_GPU                (GUI_ID_USER + 0x4)
#define ID_SWITCH_CACHE              (GUI_ID_USER + 0x5)
#define ID_SWITCH_TRANSPARENT        (GUI_ID_USER + 0x6)
#define ID_TEXT_GPU                  (GUI_ID_USER + 0x7)
#define ID_TEXT_CACHE                (GUI_ID_USER + 0x8)
#define ID_TEXT_TRANSPARENT          (GUI_ID_USER + 0x9)
#define ID_RADIO_CACHE_FORMAT        (GUI_ID_USER + 0x10)
#define ID_FONT_BUTTON_FIRST         (GUI_ID_USER + 0x1a)
#define ID_FONT_BUTTON_LIBERATION    (ID_FONT_BUTTON_FIRST + APP_FONT_LIBERATION_SERIF)
#define ID_FONT_BUTTON_COURIER       (ID_FONT_BUTTON_FIRST + APP_FONT_COURIER_NEW)
#define ID_FONT_BUTTON_MVBOLI        (ID_FONT_BUTTON_FIRST + APP_FONT_MVBOLI)
//
// Custom limitation to the scale factor so that scaled bitmap does not exceed LCD.
//
#define MIN_SCALE            1000  // Min. 10.00 px
#define MAX_SCALE           15000  // Max. 150.00 px
#define START_SCALE          3200
//
// Window related
//
#define FRAME_SIZE_BUTTON     3
#define WINDOW_PADDING        20

#define SLIDER_MIN_XSIZE      20

/*********************************************************************
*
*       Static const data
*
**********************************************************************
*/
/*********************************************************************
*
*       _aFontButtons
*/
static const FONT_BUTTON_DATA _aFontButtons[] = {
  { APP_FONT_LIBERATION_SERIF, &GUI_VectorFont_LiberationSerifRegular },
  { APP_FONT_COURIER_NEW,      &GUI_VectorFont_CourierNewRegular      },
  { APP_FONT_MVBOLI,           &GUI_VectorFont_MVBoliRegular          },
};

/*********************************************************************
*
*       Static data
*
**********************************************************************
*/
static float            _PxSize  = 32.0f;
static GUI_FONT       * _paFonts[APP_FONT_COUNT];
static GUI_FONT       * _pCurrentFont;
static GUI_FONT       * _pHeaderFont;
static GUI_FONT       * _pWidgetFont;
static GUI_GPU_DRIVER * _pGPU;
static GUI_BOOLEAN      _Transparent = GUI_TRUE;

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
/*********************************************************************
*
*       _cbCanvas
*/
static void _cbCanvas(WM_MESSAGE * pMsg) {
  GUI_RECT         r, rText;
  WM_MOTION_INFO * pInfo;
  static int       dx, dy;
  static int       MaxOffset;
  const char     * sText;
  int              xSize, ySize, ySizeRect;
  int              Offset;

  switch (pMsg->MsgId) {
  case WM_PAINT:
    WM_GetClientRect(&r);
    //
    // Setup background and text mode either for transparent
    // or opaque text rendering.
    //
    if (_Transparent) {
      GUI_DrawGradientVEx(&r, 0xFFF5F7FA, 0xFFC3CFE2);
      GUI_SetTextMode(GUI_TM_TRANS);
    } else {
      GUI_SetBkColor(GUI_GRAY_D0);
      GUI_ClearRectEx(&r);
      GUI_SetTextMode(GUI_TM_NORMAL); 
    }
    //
    // Update font size.
    //
    GUI_SetFont(_pCurrentFont);
    GUI_VG_FONT_SetSize(_pCurrentFont, _PxSize);
    //
    // Add motion offset to the text rectangle.
    //
    rText = r;
    GUI_RECT_Move(&rText, dx, dy);
    //
    // Make sure the rectangle is big enough.
    //
    sText  = "It simply works!";
    ySize  = _pCurrentFont->YSize;
    xSize  = GUI_RECT_GetWidth(&rText);
    ySize *= GUI_WrapGetNumLines(sText, xSize, GUI_WRAPMODE_WORD);
    ySizeRect = GUI_RECT_GetHeight(&rText);
    if (ySizeRect < ySize) {
      Offset = (ySizeRect - ySize) / 2;
      GUI_RECT_SetHeight(&rText, ySize);
      GUI_RECT_Move(&rText, 0, Offset);
    }
    //
    // Display current font.
    //
    GUI_SetColor(0xFFE63946);
    GUI_DispStringInRectWrap(sText, &rText, GUI_TA_HCENTER | GUI_TA_VCENTER, GUI_WRAPMODE_WORD);
    //
    // Draw thin frame.
    //
    GUI_SetColor(GUI_BLACK);
    GUI_DrawRectEx(&r);
    break;
  case WM_MOTION:
    pInfo = (WM_MOTION_INFO *)pMsg->Data.p;
    switch (pInfo->Cmd) {
    case WM_MOTION_INIT:
      //
      // Tell the motion module to move in y direction and that we manage it on our own
      //
      pInfo->Flags = WM_CF_MOTION_X | WM_CF_MOTION_Y | WM_MOTION_MANAGE_BY_WINDOW;
      //
      // Pick a very short period for movements.
      //
      pInfo->Period = 100;
      break;
    case WM_MOTION_MOVE:
      //
      // Add motion offset.
      //
      dx += pInfo->dx;
      dy += pInfo->dy;
      //
      // Tell the window to redraw
      //
      WM_InvalidateWindow(pMsg->hWin);
      break;
    case WM_MOTION_GETPOS:
      pInfo->xPos = dx;
      pInfo->yPos = dy;
      break;
    }
    break;
  default:
    WINDOW_Callback(pMsg);
    break;
  }
}

/*********************************************************************
*
*       _cbButtonFont
*/
static void _cbButtonFont(WM_MESSAGE * pMsg) {
  const FONT_BUTTON_DATA * pData = NULL;
  GUI_RECT                 r;
  GUI_FONT               * pFont;
  int                      Id;

  switch (pMsg->MsgId) {
  case WM_SET_CALLBACK:
    BUTTON_SetToggleMode(pMsg->hWin, 1);
    break;
  case WM_PAINT:
    WM_GetClientRectEx(pMsg->hWin, &r);
    GUI_SetBkColor(GUI_WHITE);
    GUI_Clear();
    GUI_SetColor(GUI_GRAY_D0);
    GUI_AA_FillRoundedRectEx(&r, FRAME_SIZE_BUTTON);
    
    Id    = WM_GetId(pMsg->hWin);
    pFont = _paFonts[Id - ID_FONT_BUTTON_FIRST];
    GUI_SetFont(pFont);
    GUI_SetColor(GUI_BLACK);
    GUI_SetBkColor(GUI_GRAY_D0);
    GUI_VG_FONT_SetSize(pFont, GUI_RECT_GetHeight(&r));
    GUI_DispStringInRect("w", &r, GUI_TA_HCENTER | GUI_TA_VCENTER);

    if (BUTTON_IsPressed(pMsg->hWin)) {
      GUI_SetColor(0xFFEA6256);
      GUI_SetPenSize(FRAME_SIZE_BUTTON);
      GUI_AA_DrawRoundedFrameEx(&r, FRAME_SIZE_BUTTON);
    } else {
      GUI_SetColor(GUI_BLACK);
      GUI_AA_DrawRoundedFrameEx(&r, FRAME_SIZE_BUTTON);
    }
    break;
  default:
    BUTTON_Callback(pMsg);
  }
}

/*********************************************************************
*
*       _CreateFontButton
*/
static void _CreateFontButton(const FONT_BUTTON_DATA * pData, WM_HWIN hParent) {
  WM_HWIN hWin;

  hWin = BUTTON_CreateUser(0, 0, 1, 1, hParent, WM_CF_SHOW, 0, ID_FONT_BUTTON_FIRST + pData->Id, 0);
  WM_SetCallback(hWin, _cbButtonFont);
}

/*********************************************************************
*
*       _InvalidateWindows
*/
static void _InvalidateWindows(WM_HWIN hParent) {
  WM_HWIN hWin;
  int     Id;

  //
  // Invalidate all windows that use vector fonts.
  //
  hWin = WM_GetDialogItem(hParent, ID_WINDOW_CANVAS);
  WM_InvalidateWindow(hWin);
  for (Id = ID_FONT_BUTTON_FIRST; Id < ID_FONT_BUTTON_FIRST + APP_FONT_COUNT; Id++) {
    hWin = WM_GetDialogItem(hParent, Id);
    WM_InvalidateWindow(hWin);
  }
}

/*********************************************************************
*
*       _GetSliderSizes
*/
static void _GetSliderSizes(SLIDER_SIZES * pSizes) {
  int xSize, ySize;

  xSize = LCD_GetXSize();
  ySize = LCD_GetYSize();
  pSizes->xSize      = 0.05f    * xSize;
  pSizes->ySizeShaft = 0.03125f * ySize;

  if (pSizes->xSize < SLIDER_MIN_XSIZE) {
    pSizes->xSize = SLIDER_MIN_XSIZE;
  }
}

/*********************************************************************
*
*       _CreateWidgets
*/
static void _CreateWidgets(WM_HWIN hParent) {
  WM_HWIN          hWin;
  int              xDist;
  const char     * sHeader;
  const char     * sText;
  unsigned         i;
  SLIDER_SIZES     Sizes;
  char             ac[32];
  const char     * sGPU = NULL;

  //
  // Create header
  //
  sHeader = "Vector Font Example";
  GUI_SetFont(_pHeaderFont);
  xDist = GUI_GetStringDistX(sHeader);
  hWin  = TEXT_CreateAsChild(0, 0, xDist, GUI_GetFontSizeY(), hParent, ID_TEXT_HEADER, WM_CF_SHOW, sHeader, GUI_TA_LEFT | GUI_TA_VCENTER);
  TEXT_SetText(hWin, sHeader);
  TEXT_SetFont(hWin, _pHeaderFont);
  //
  // Create other texts.
  //
#if GUI_SUPPORT_GPU
  sGPU = GUI_GPU_GetName(_pGPU);
#endif
  if (sGPU == NULL) {
    sGPU = "GPU";
  }
  sprintf(ac, "Use %s", sGPU);
  sText = ac;
  GUI_SetFont(_pWidgetFont);
  xDist = GUI_GetStringDistX(sText);
  hWin  = TEXT_CreateAsChild(0, 0, xDist, GUI_GetFontSizeY(), hParent, ID_TEXT_GPU, WM_CF_SHOW, sText, GUI_TA_LEFT | GUI_TA_VCENTER);
  TEXT_SetText(hWin, sText);
  TEXT_SetFont(hWin, _pWidgetFont);
  //
  sText = "Use Font Cache";
  xDist = GUI_GetStringDistX(sText);
  hWin  = TEXT_CreateAsChild(0, 0, xDist, GUI_GetFontSizeY(), hParent, ID_TEXT_CACHE, WM_CF_SHOW, sText, GUI_TA_LEFT | GUI_TA_VCENTER);
  TEXT_SetText(hWin, sText);
  TEXT_SetFont(hWin, _pWidgetFont);
  //
  // Create slider
  //
  _GetSliderSizes(&Sizes);
  SLIDER_SetDefaultSkinFlat();
  hWin = SLIDER_CreateEx(0, 0, Sizes.xSize, 100, hParent, WM_CF_SHOW, SLIDER_CF_VERTICAL, ID_SLIDER_SCALE);
  WIDGET_SetFocusable(hWin, 0);
  SLIDER_EnableFocusRect(hWin, 0);
  SLIDER_SetWidth(hWin, Sizes.ySizeShaft);
  SLIDER_SetRange(hWin, MIN_SCALE, MAX_SCALE);
  SLIDER_SetValue(hWin, START_SCALE);
  //
  // Create GPU switch
  //
  SWITCH_SetDefaultSkinFlat();
  hWin = SWITCH_CreateUser(0, 0, Sizes.xSize*2, _pWidgetFont->YSize*1.2f, hParent, WM_CF_SHOW, 0, ID_SWITCH_GPU, 0);
  WIDGET_SetFocusable(hWin, 0);
  //
  // Enable it if we have a GPU.
  //
  if (_pGPU) {
    SWITCH_Toggle(hWin);
  } else {
    WM_DisableWindow(hWin);
  }
  //
  // Create cache switch
  //
  hWin = SWITCH_CreateUser(0, 0, Sizes.xSize*2, _pWidgetFont->YSize*1.2f, hParent, WM_CF_SHOW, 0, ID_SWITCH_CACHE, 0);
  WIDGET_SetFocusable(hWin, 0);
  //
  // Create transparency label
  //
  sText = "Transparent";
  xDist = GUI_GetStringDistX(sText);
  hWin  = TEXT_CreateAsChild(0, 0, xDist, GUI_GetFontSizeY(), hParent, ID_TEXT_TRANSPARENT, WM_CF_SHOW, sText, GUI_TA_LEFT | GUI_TA_VCENTER);
  TEXT_SetText(hWin, sText);
  TEXT_SetFont(hWin, _pWidgetFont);
  //
  // Create transparency switch
  //
  hWin = SWITCH_CreateUser(0, 0, Sizes.xSize*2, _pWidgetFont->YSize*1.2f, hParent, WM_CF_SHOW, 0, ID_SWITCH_TRANSPARENT, 0);
  WIDGET_SetFocusable(hWin, 0);
  SWITCH_Toggle(hWin);
  //
  // Create cache RADIO
  //
  FLAT_SKIN_SetColors(FLAT_SKIN_COLORS_DAY);
  RADIO_SetDefaultSkinFlat();
  FLAT_SKIN_SetColor(FLAT_SKIN_CI_DIALOG, GUI_RED);
  FLAT_SKIN_SetFont(_pWidgetFont);
  hWin = RADIO_CreateUser(0, 0, 90, 66, hParent, WM_CF_SHOW, 0, ID_RADIO_CACHE_FORMAT, 3, _pWidgetFont->YSize*1.5f, 0);
  RADIO_SetText(hWin, "Cache AA8", 0);
  RADIO_SetText(hWin, "Cache AA4", 1);
  RADIO_SetText(hWin, "Cache AA2", 2);
  WIDGET_SetFocusable(hWin, 0);
  WM_DisableWindow(hWin);
  //
  // Create font buttons
  //
  for (i = 0; i < GUI_COUNTOF(_aFontButtons); i++) {
    _CreateFontButton(&_aFontButtons[i], hParent);
  }
  //
  // Create canvas
  //
  hWin = WINDOW_CreateEx(0, 0, 100, 100, hParent, WM_CF_SHOW, 0, ID_WINDOW_CANVAS, NULL);
  WM_SetCallback(hWin, _cbCanvas);
}

/*********************************************************************
*
*       _CreateFonts
*/
static void _CreateFonts(void) {
  int i;
  float px;

  //
  // Create selectable fonts for the buttons.
  //
  for (i = 0; i < GUI_COUNTOF(_aFontButtons); i++) {
    _paFonts[i] = GUI_VG_FONT_Create(_aFontButtons[i].pFontData, _PxSize);
    GUI_VG_FONT_SetScaleMethod(_paFonts[i], GUI_VG_FONT_SCALE_BBOX);
  }
  _pCurrentFont = _paFonts[0];
  //
  // Create fonts for the widgets.
  //
  px           = 12.0f * ((float)LCD_GetYSize() / 160.f);
  _pHeaderFont = GUI_VG_FONT_Create(&GUI_VectorFont_LiberationSansRegular, px);
  px           = 16.0f * ((float)LCD_GetYSize() / 272.f);
  _pWidgetFont = GUI_VG_FONT_Create(&GUI_VectorFont_LiberationSansRegular, px);
  //
  // We have some redraws of the widgets, cache font.
  //
  GUI_VG_FONT_EnableBitmapCache(_pWidgetFont, 1);
}

/*********************************************************************
*
*       _GetMargin
*/
static int _GetMargin(void) {
  return 0.025f * LCD_GetXSize();
}

/*********************************************************************
*
*       _CreateLayouts
*/
static void _CreateLayouts(WM_HWIN hParent) {
  WM_HWIN           hWin;
  WM_HLAYOUT        hMain;
  WM_HLAYOUT        hContent;
  WM_HLAYOUT        hSliderLayout;
  WM_HLAYOUT        hButtonLayout;
  WM_HLAYOUT        hRightLayout;
  WM_HLAYOUT        hTopLayout;
  WM_HLAYOUT        hControlGrid;
  WM_HLAYOUT        hRow;
  WM_HLAYOUT_ITEM   hItem;
  WM_HLAYOUT_ITEM   hSliderColumnItem;
  WM_HLAYOUT_ITEM   hSliderItem;
  WM_HLAYOUT_ITEM   hButtonColumnItem;
  WM_HLAYOUT_ITEM   hRadioItem;
  WM_HLAYOUT_ITEM   aButtonItems[GUI_COUNTOF(_aFontButtons)];
  unsigned          i;
  unsigned          NumButtons;
  int               m;
  int               ySize;
  int               SliderWidth;
  int               TextColWidth;
  int               SwitchColWidth;
  int               xSizeTextGpu;
  int               xSizeTextCache;
  int               xSizeTextTransparent;
  int               xSizeSwitchGpu;
  int               xSizeSwitchCache;
  int               xSizeSwitchTransparent;

  m = _GetMargin();
  //
  // Determine fixed column widths.
  //
  hWin                   = WM_GetDialogItem(hParent, ID_TEXT_GPU);
  xSizeTextGpu           = WM_GetXSize(hWin);
  hWin                   = WM_GetDialogItem(hParent, ID_TEXT_CACHE);
  xSizeTextCache         = WM_GetXSize(hWin);
  hWin                   = WM_GetDialogItem(hParent, ID_TEXT_TRANSPARENT);
  xSizeTextTransparent   = WM_GetXSize(hWin);
  hWin                   = WM_GetDialogItem(hParent, ID_SWITCH_GPU);
  xSizeSwitchGpu         = WM_GetXSize(hWin);
  hWin                   = WM_GetDialogItem(hParent, ID_SWITCH_CACHE);
  xSizeSwitchCache       = WM_GetXSize(hWin);
  hWin                   = WM_GetDialogItem(hParent, ID_SWITCH_TRANSPARENT);
  xSizeSwitchTransparent = WM_GetXSize(hWin);
  TextColWidth = xSizeTextGpu;
  if (xSizeTextCache > TextColWidth) {
    TextColWidth = xSizeTextCache;
  }
  if (xSizeTextTransparent > TextColWidth) {
    TextColWidth = xSizeTextTransparent;
  }
  SwitchColWidth = xSizeSwitchGpu;
  if (xSizeSwitchCache > SwitchColWidth) {
    SwitchColWidth = xSizeSwitchCache;
  }
  if (xSizeSwitchTransparent > SwitchColWidth) {
    SwitchColWidth = xSizeSwitchTransparent;
  }
  //
  // Main vertical layout.
  //
  hMain = WM_LAYOUT_CreateVBox();
  WM_LAYOUT_SetMargin(hMain, m, m, m, m);
  WM_LAYOUT_SetSpacing(hMain, m);
  //
  // Header.
  //
  hWin = WM_GetDialogItem(hParent, ID_TEXT_HEADER);
  WM_LAYOUT_AddWindowEx(hMain, hWin, 0, 0);
  //
  // Main content: slider + font buttons + right content.
  //
  hContent = WM_LAYOUT_CreateHBox();
  WM_LAYOUT_SetSpacing(hContent, m);
  //
  // Slider column.
  // The column itself gets fixed width, but full available height.
  // The slider inside the column gets vertical weight 1.
  //
  hSliderLayout = WM_LAYOUT_CreateVBox();
  hWin        = WM_GetDialogItem(hParent, ID_SLIDER_SCALE);
  SliderWidth = WM_GetXSize(hWin);
  hSliderItem = WM_LAYOUT_AddWindowEx(hSliderLayout, hWin, 1, 0);
  WM_LAYOUT_SetItemWidthMin(hSliderItem, SliderWidth);
  WM_LAYOUT_SetItemWidthMax(hSliderItem, SliderWidth);
  hSliderColumnItem = WM_LAYOUT_AddLayout(hContent, hSliderLayout, 0);
  WM_LAYOUT_SetItemWidthMin(hSliderColumnItem, SliderWidth);
  WM_LAYOUT_SetItemWidthMax(hSliderColumnItem, SliderWidth);
  //
  // Font buttons.
  //
  hButtonLayout = WM_LAYOUT_CreateVBox();
  WM_LAYOUT_SetSpacing(hButtonLayout, m);
  NumButtons = GUI_COUNTOF(_aFontButtons);
  for (i = 0; i < NumButtons; i++) {
    hWin            = WM_GetDialogItem(hParent, ID_FONT_BUTTON_FIRST + _aFontButtons[i].Id);
    aButtonItems[i] = WM_LAYOUT_AddWindow(hButtonLayout, hWin);
  }
  hButtonColumnItem = WM_LAYOUT_AddLayout(hContent, hButtonLayout, 0);
  //
  // Right side: top controls + canvas.
  //
  hRightLayout = WM_LAYOUT_CreateVBox();
  WM_LAYOUT_SetSpacing(hRightLayout, m/2);
  //
  // Top control row.
  // Left: label/switch grid.
  // Right: radio group aligned to the far right.
  //
  hTopLayout = WM_LAYOUT_CreateHBox();
  WM_LAYOUT_SetSpacing(hTopLayout, m/2);
  //
  // Pseudo grid: 3 rows, each row = label column + switch column.
  //
  hControlGrid = WM_LAYOUT_CreateVBox();
  WM_LAYOUT_SetSpacing(hControlGrid, m/2);
  //
  // Row 1: GPU text + GPU switch.
  //
  hRow = WM_LAYOUT_CreateHBox();
  WM_LAYOUT_SetSpacing(hRow, m/2);
  hWin  = WM_GetDialogItem(hParent, ID_TEXT_GPU);
  hItem = WM_LAYOUT_AddWindowEx(hRow, hWin, 0, 0);
  WM_LAYOUT_SetItemWidthMin(hItem, TextColWidth);
  WM_LAYOUT_SetItemWidthMax(hItem, TextColWidth);
  hWin  = WM_GetDialogItem(hParent, ID_SWITCH_GPU);
  hItem = WM_LAYOUT_AddWindowEx(hRow, hWin, 0, 0);
  WM_LAYOUT_SetItemWidthMin(hItem, SwitchColWidth);
  WM_LAYOUT_SetItemWidthMax(hItem, SwitchColWidth);
  WM_LAYOUT_AddLayout(hControlGrid, hRow, 0);
  //
  // Row 2: Cache text + Cache switch.
  //
  hRow = WM_LAYOUT_CreateHBox();
  WM_LAYOUT_SetSpacing(hRow, m/2);
  hWin  = WM_GetDialogItem(hParent, ID_TEXT_CACHE);
  hItem = WM_LAYOUT_AddWindowEx(hRow, hWin, 0, 0);
  WM_LAYOUT_SetItemWidthMin(hItem, TextColWidth);
  WM_LAYOUT_SetItemWidthMax(hItem, TextColWidth);
  hWin  = WM_GetDialogItem(hParent, ID_SWITCH_CACHE);
  hItem = WM_LAYOUT_AddWindowEx(hRow, hWin, 0, 0);
  WM_LAYOUT_SetItemWidthMin(hItem, SwitchColWidth);
  WM_LAYOUT_SetItemWidthMax(hItem, SwitchColWidth);
  WM_LAYOUT_AddLayout(hControlGrid, hRow, 0);
  //
  // Row 3: Transparent text + Transparent switch.
  //
  hRow = WM_LAYOUT_CreateHBox();
  WM_LAYOUT_SetSpacing(hRow, m/2);
  hWin  = WM_GetDialogItem(hParent, ID_TEXT_TRANSPARENT);
  hItem = WM_LAYOUT_AddWindowEx(hRow, hWin, 0, 0);
  WM_LAYOUT_SetItemWidthMin(hItem, TextColWidth);
  WM_LAYOUT_SetItemWidthMax(hItem, TextColWidth);
  hWin  = WM_GetDialogItem(hParent, ID_SWITCH_TRANSPARENT);
  hItem = WM_LAYOUT_AddWindowEx(hRow, hWin, 0, 0);
  WM_LAYOUT_SetItemWidthMin(hItem, SwitchColWidth);
  WM_LAYOUT_SetItemWidthMax(hItem, SwitchColWidth);
  WM_LAYOUT_AddLayout(hControlGrid, hRow, 0);
  //
  // Add fixed-width control grid to the left side of the top row.
  //
  hItem = WM_LAYOUT_AddLayout(hTopLayout, hControlGrid, 0);
  WM_LAYOUT_SetItemWidthMin(hItem, TextColWidth + SwitchColWidth + m);
  WM_LAYOUT_SetItemWidthMax(hItem, TextColWidth + SwitchColWidth + m);
  //
  // Radio group:
  // Give this item weight 1 so it receives all remaining horizontal space.
  // The actual radio widget is aligned to the right inside that area.
  //
  hWin       = WM_GetDialogItem(hParent, ID_RADIO_CACHE_FORMAT);
  hRadioItem = WM_LAYOUT_AddWindowEx(hTopLayout, hWin, 1, GUI_ALIGN_RIGHT | GUI_ALIGN_TOP);
  WM_LAYOUT_SetItemWidthMin(hRadioItem, WM_GetXSize(hWin));
  WM_LAYOUT_AddLayout(hRightLayout, hTopLayout, 0);
  //
  // Canvas takes the remaining vertical space.
  //
  hWin = WM_GetDialogItem(hParent, ID_WINDOW_CANVAS);
  WM_LAYOUT_AddWindowEx(hRightLayout, hWin, 1, 0);
  //
  // Add right side to content.
  //
  WM_LAYOUT_AddLayout(hContent, hRightLayout, 1);
  //
  // Add content to main.
  //
  WM_LAYOUT_AddLayout(hMain, hContent, 1);
  //
  // Apply layout once so button heights are calculated.
  //
  WM_SetLayout(hParent, hMain);
  //
  // Make font buttons square-ish based on their calculated height.
  //
  hWin  = WM_GetDialogItem(hParent, ID_FONT_BUTTON_FIRST);
  ySize = WM_GetYSize(hWin);
  for (i = 0; i < GUI_COUNTOF(_aFontButtons); i++) {
    WM_LAYOUT_SetItemWidthMin(aButtonItems[i], ySize);
    WM_LAYOUT_SetItemWidthMax(aButtonItems[i], ySize);
  }
  WM_LAYOUT_SetItemWidthMin(hButtonColumnItem, ySize);
  WM_LAYOUT_SetItemWidthMax(hButtonColumnItem, ySize);
  //
  // Recalculate after applying fixed button widths.
  //
  WM_SetLayout(hParent, hMain);
}

/*********************************************************************
*
*       _cbMainWin
*/
static void _cbMainWin(WM_MESSAGE * pMsg) {
  static BUTTON_Handle    hCurrentButton;
  WM_HWIN                 hItem;
  int                     NCode;
  int                     Id;
  U16                     i, j;
  const FONT_BUTTON_DATA * pData = NULL;
  int                      v;
  int                      EnableCache;

  switch (pMsg->MsgId) {
  case WM_CREATE:
    _CreateFonts();
    _CreateWidgets(pMsg->hWin);
    _CreateLayouts(pMsg->hWin);
    //
    // Set initial button
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_FONT_BUTTON_LIBERATION);
    BUTTON_Toggle(hItem);
    break;
  case WM_PAINT:
    GUI_SetBkColor(GUI_WHITE);
    GUI_Clear();
    break;
  case WM_NOTIFY_PARENT:
    Id    = WM_GetId(pMsg->hWinSrc);
    NCode = pMsg->Data.v;
    switch(Id) {
    case ID_SWITCH_GPU:
      switch(NCode) {
      case WM_NOTIFICATION_SET:
        GUI_VG_FONT_SetGPU(_pGPU);
        _InvalidateWindows(pMsg->hWin);
        break;
      case WM_NOTIFICATION_CLEAR:
        GUI_VG_FONT_SetSoftwareRenderer();
        _InvalidateWindows(pMsg->hWin);
        break;
      }
      break;
    case ID_SWITCH_CACHE:
      switch(NCode) {
      case WM_NOTIFICATION_SET:
        GUI_VG_FONT_EnableBitmapCache(_pCurrentFont, 1);
        hItem = WM_GetDialogItem(pMsg->hWin, ID_RADIO_CACHE_FORMAT);
        WM_EnableWindow(hItem);
        _InvalidateWindows(pMsg->hWin);
        break;
      case WM_NOTIFICATION_CLEAR:
        GUI_VG_FONT_EnableBitmapCache(_pCurrentFont, 0);
        hItem = WM_GetDialogItem(pMsg->hWin, ID_RADIO_CACHE_FORMAT);
        WM_DisableWindow(hItem);
        _InvalidateWindows(pMsg->hWin);
        break;
      }
      break;
    case ID_SWITCH_TRANSPARENT:
      switch(NCode) {
      case WM_NOTIFICATION_SET:
        _Transparent = GUI_TRUE;
        hItem = WM_GetDialogItem(pMsg->hWin, ID_WINDOW_CANVAS);
        WM_InvalidateWindow(hItem);
        break;
      case WM_NOTIFICATION_CLEAR:
        _Transparent = GUI_FALSE;
        hItem = WM_GetDialogItem(pMsg->hWin, ID_WINDOW_CANVAS);
        WM_InvalidateWindow(hItem);
        break;
      }
      break;
    case ID_RADIO_CACHE_FORMAT:
      switch(NCode) {
      case WM_NOTIFICATION_VALUE_CHANGED:
        hItem = WM_GetDialogItem(pMsg->hWin, ID_RADIO_CACHE_FORMAT);
        i     = RADIO_GetValue(hItem);
        switch (i) {
        case APP_CACHE_FORMAT_AA8:
          GUI_VG_FONT_SetBitmapCacheFormat(GUI_VG_FONT_BITMAPCACHE_FORMAT_AA8);
          break;
        case APP_CACHE_FORMAT_AA4:
          GUI_VG_FONT_SetBitmapCacheFormat(GUI_VG_FONT_BITMAPCACHE_FORMAT_AA4);
          break;
        case APP_CACHE_FORMAT_AA2:
          GUI_VG_FONT_SetBitmapCacheFormat(GUI_VG_FONT_BITMAPCACHE_FORMAT_AA2);
          break;
        }
        _InvalidateWindows(pMsg->hWin);
        break;
      }
      break;
    case ID_SLIDER_SCALE:
      switch(NCode) {
      case WM_NOTIFICATION_VALUE_CHANGED:
        v = SLIDER_GetValue(pMsg->hWinSrc);
        _PxSize = (float)v / 100.f;
        hItem = WM_GetDialogItem(pMsg->hWin, ID_WINDOW_CANVAS);
        WM_InvalidateWindow(hItem);
        break;
      }
      break;
    case ID_FONT_BUTTON_LIBERATION:
    case ID_FONT_BUTTON_COURIER:
    case ID_FONT_BUTTON_MVBOLI:
      switch(NCode) {
      case WM_NOTIFICATION_RELEASED:
        //
        // Make sure button stays selected
        //
        if (!BUTTON_IsPressed(hCurrentButton)) {
          BUTTON_SetPressed(hCurrentButton, 1);
        }
        break;
      case WM_NOTIFICATION_CLICKED:
        for (i = ID_FONT_BUTTON_FIRST; i < ID_FONT_BUTTON_FIRST + APP_FONT_COUNT; i++) {
          //
          // Disable other font buttons.
          //
          hItem = WM_GetDialogItem(pMsg->hWin, i);
          if (Id != i) {
            BUTTON_SetPressed(hItem, 0);
          }
          //
          // Set new font...
          //
          else {
            for (j = 0; j < GUI_COUNTOF(_aFontButtons); j++) {
              if (_aFontButtons[j].Id == Id - ID_FONT_BUTTON_FIRST) {
                pData = &_aFontButtons[j];
                break;
              }
            }
            if (!pData) {
              return;
            }
            hCurrentButton = hItem;
            //
            // Switch out vector font and update canvas.
            //
            _pCurrentFont = _paFonts[pData->Id];
            //
            // Set current cache settings.
            //
            hItem = WM_GetDialogItem(pMsg->hWin, ID_SWITCH_CACHE);
            EnableCache = SWITCH_GetState(hItem) == SWITCH_STATE_RIGHT ? 1 : 0;
            GUI_VG_FONT_EnableBitmapCache(_pCurrentFont, EnableCache);
            //
            hItem = WM_GetDialogItem(pMsg->hWin, ID_WINDOW_CANVAS);
            WM_InvalidateWindow(hItem);
          }
        }
        break;
      }
      break;
    }
    break;
  default:
    WM_DefaultProc(pMsg);
    break;
  }
}

#if GUI_SUPPORT_GPU
/*********************************************************************
*
*       _GetGPU
*/
static void _GetGPU(void) {
  GUI_GPU_DRIVER * pGPU;

  //
  // Get first GPU that supports rendering the fonts.
  //
  for (pGPU = GUI_GPU_GetFirst(); pGPU; pGPU = GUI_GPU_GetNext(pGPU)) {
    if (GUI_GPU_HasFunction(pGPU, GUI_GPU_FUNCTION_DRAWVECTORFONT)) {
      _pGPU = pGPU;
      return;
    }
  }
}
#endif

/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       MainTask
*/
void MainTask(void) {
  GUI_Init();
  WM_MULTIBUF_Enable(1);
  WM_MOTION_Enable(1);
  GUI_VG_FONT_Enable(1);
#if GUI_SUPPORT_GPU
  _GetGPU();
#endif
  WM_CreateWindowAsChild(0, 0, LCD_GetXSize(), LCD_GetYSize(), WM_HBKWIN, WM_CF_SHOW, _cbMainWin, 0);

  while (1) {
    GUI_Delay(50);
  }
}

/*************************** End of file ****************************/