static const unsigned char gsHexEncodeC1[256] = {
 '0',  '0',  '0',  '0',  '0',  '0',  '0',  '0',  '0',  '0',
 '0',  '0',  '0',  '0',  '0',  '0',  '1',  '1',  '1',  '1',
 '1',  '1',  '1',  '1',  '1',  '1',  '1',  '1',  '1',  '1',
 '1',  '1',  '2',  '2',  '2',  '2',  '2',  '2',  '2',  '2',
 '2',  '2',  '2',  '2',  '2',  '2',  '2',  '2',  '3',  '3',
 '3',  '3',  '3',  '3',  '3',  '3',  '3',  '3',  '3',  '3',
 '3',  '3',  '3',  '3',  '4',  '4',  '4',  '4',  '4',  '4',
 '4',  '4',  '4',  '4',  '4',  '4',  '4',  '4',  '4',  '4',
 '5',  '5',  '5',  '5',  '5',  '5',  '5',  '5',  '5',  '5',
 '5',  '5',  '5',  '5',  '5',  '5',  '6',  '6',  '6',  '6',
 '6',  '6',  '6',  '6',  '6',  '6',  '6',  '6',  '6',  '6',
 '6',  '6',  '7',  '7',  '7',  '7',  '7',  '7',  '7',  '7',
 '7',  '7',  '7',  '7',  '7',  '7',  '7',  '7',  '8',  '8',
 '8',  '8',  '8',  '8',  '8',  '8',  '8',  '8',  '8',  '8',
 '8',  '8',  '8',  '8',  '9',  '9',  '9',  '9',  '9',  '9',
 '9',  '9',  '9',  '9',  '9',  '9',  '9',  '9',  '9',  '9',
 'A',  'A',  'A',  'A',  'A',  'A',  'A',  'A',  'A',  'A',
 'A',  'A',  'A',  'A',  'A',  'A',  'B',  'B',  'B',  'B',
 'B',  'B',  'B',  'B',  'B',  'B',  'B',  'B',  'B',  'B',
 'B',  'B',  'C',  'C',  'C',  'C',  'C',  'C',  'C',  'C',
 'C',  'C',  'C',  'C',  'C',  'C',  'C',  'C',  'D',  'D',
 'D',  'D',  'D',  'D',  'D',  'D',  'D',  'D',  'D',  'D',
 'D',  'D',  'D',  'D',  'E',  'E',  'E',  'E',  'E',  'E',
 'E',  'E',  'E',  'E',  'E',  'E',  'E',  'E',  'E',  'E',
 'F',  'F',  'F',  'F',  'F',  'F',  'F',  'F',  'F',  'F',
 'F',  'F',  'F',  'F',  'F',  'F'
};

static const unsigned char gsHexEncodeC2[256] = {
 '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9',
 'A',  'B',  'C',  'D',  'E',  'F',  '0',  '1',  '2',  '3',
 '4',  '5',  '6',  '7',  '8',  '9',  'A',  'B',  'C',  'D',
 'E',  'F',  '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',
 '8',  '9',  'A',  'B',  'C',  'D',  'E',  'F',  '0',  '1',
 '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9',  'A',  'B',
 'C',  'D',  'E',  'F',  '0',  '1',  '2',  '3',  '4',  '5',
 '6',  '7',  '8',  '9',  'A',  'B',  'C',  'D',  'E',  'F',
 '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9',
 'A',  'B',  'C',  'D',  'E',  'F',  '0',  '1',  '2',  '3',
 '4',  '5',  '6',  '7',  '8',  '9',  'A',  'B',  'C',  'D',
 'E',  'F',  '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',
 '8',  '9',  'A',  'B',  'C',  'D',  'E',  'F',  '0',  '1',
 '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9',  'A',  'B',
 'C',  'D',  'E',  'F',  '0',  '1',  '2',  '3',  '4',  '5',
 '6',  '7',  '8',  '9',  'A',  'B',  'C',  'D',  'E',  'F',
 '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9',
 'A',  'B',  'C',  'D',  'E',  'F',  '0',  '1',  '2',  '3',
 '4',  '5',  '6',  '7',  '8',  '9',  'A',  'B',  'C',  'D',
 'E',  'F',  '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',
 '8',  '9',  'A',  'B',  'C',  'D',  'E',  'F',  '0',  '1',
 '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9',  'A',  'B',
 'C',  'D',  'E',  'F',  '0',  '1',  '2',  '3',  '4',  '5',
 '6',  '7',  '8',  '9',  'A',  'B',  'C',  'D',  'E',  'F',
 '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9',
 'A',  'B',  'C',  'D',  'E',  'F'
};

static const uint32_t gsHexDecodeMap[256] = {
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9, 256, 256,
256, 256, 256, 256, 256,  10,  11,  12,  13,  14,  15, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256,  10,  11,  12,  13,  14,  15, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256
};

static const uint32_t gsHexDecodeD2[256] = {
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
  0,  16,  32,  48,  64,  80,  96, 112, 128, 144, 256, 256,
256, 256, 256, 256, 256, 160, 176, 192, 208, 224, 240, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 160, 176, 192, 208, 224, 240, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
256, 256, 256, 256
};