1 static const unsigned char gsUrlEncodeMap[256] = {
2 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
3 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
4 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
5 '\0',
'\0',
'+',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
6 '\0',
'\0',
'\0',
'\0',
'\0',
'-',
'.',
'\0',
'0',
'1',
7 '2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'\0',
'\0',
8 '\0',
'\0',
'\0',
'\0',
'\0',
'A',
'B',
'C',
'D',
'E',
9 'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'O',
10 'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
11 'Z',
'\0',
'\0',
'\0',
'\0',
'_',
'\0',
'a',
'b',
'c',
12 'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
13 'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
14 'x',
'y',
'z',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
15 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
16 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
17 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
18 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
19 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
20 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
21 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
22 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
23 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
24 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
25 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
26 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
27 '\0',
'\0',
'\0',
'\0',
'\0',
'\0' 30 static const unsigned char gsUrlEncodeMinMap[256] = {
31 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
32 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
33 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
34 '\0',
'\0',
'+',
'!',
'\0',
'\0',
'$',
'\0',
'\0',
'\0',
35 '(',
')',
'*',
'\0',
',',
'-',
'.',
'/',
'0',
'1',
36 '2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
':',
';',
37 '\0',
'\0',
'\0',
'?',
'@',
'A',
'B',
'C',
'D',
'E',
38 'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'O',
39 'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
40 'Z',
'\0',
'\0',
'\0',
'\0',
'_',
'\0',
'a',
'b',
'c',
41 'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
42 'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
43 'x',
'y',
'z',
'\0',
'\0',
'\0',
'~',
'\0',
'\0',
'\0',
44 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
45 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
46 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
47 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
48 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
49 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
50 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
51 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
52 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
53 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
54 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
55 '\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
'\0',
56 '\0',
'\0',
'\0',
'\0',
'\0',
'\0' 59 static const uint32_t gsHexDecodeMap[256] = {
60 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
61 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
62 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
63 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
64 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 256, 256,
65 256, 256, 256, 256, 256, 10, 11, 12, 13, 14, 15, 256,
66 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
67 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
68 256, 10, 11, 12, 13, 14, 15, 256, 256, 256, 256, 256,
69 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
70 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
71 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
72 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
73 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
74 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
75 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
76 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
77 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
78 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
79 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
80 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
84 static const unsigned char gsHexEncodeMap1[256] = {
85 '0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
86 '0',
'0',
'0',
'0',
'0',
'0',
'1',
'1',
'1',
'1',
87 '1',
'1',
'1',
'1',
'1',
'1',
'1',
'1',
'1',
'1',
88 '1',
'1',
'2',
'2',
'2',
'2',
'2',
'2',
'2',
'2',
89 '2',
'2',
'2',
'2',
'2',
'2',
'2',
'2',
'3',
'3',
90 '3',
'3',
'3',
'3',
'3',
'3',
'3',
'3',
'3',
'3',
91 '3',
'3',
'3',
'3',
'4',
'4',
'4',
'4',
'4',
'4',
92 '4',
'4',
'4',
'4',
'4',
'4',
'4',
'4',
'4',
'4',
93 '5',
'5',
'5',
'5',
'5',
'5',
'5',
'5',
'5',
'5',
94 '5',
'5',
'5',
'5',
'5',
'5',
'6',
'6',
'6',
'6',
95 '6',
'6',
'6',
'6',
'6',
'6',
'6',
'6',
'6',
'6',
96 '6',
'6',
'7',
'7',
'7',
'7',
'7',
'7',
'7',
'7',
97 '7',
'7',
'7',
'7',
'7',
'7',
'7',
'7',
'8',
'8',
98 '8',
'8',
'8',
'8',
'8',
'8',
'8',
'8',
'8',
'8',
99 '8',
'8',
'8',
'8',
'9',
'9',
'9',
'9',
'9',
'9',
100 '9',
'9',
'9',
'9',
'9',
'9',
'9',
'9',
'9',
'9',
101 'A',
'A',
'A',
'A',
'A',
'A',
'A',
'A',
'A',
'A',
102 'A',
'A',
'A',
'A',
'A',
'A',
'B',
'B',
'B',
'B',
103 'B',
'B',
'B',
'B',
'B',
'B',
'B',
'B',
'B',
'B',
104 'B',
'B',
'C',
'C',
'C',
'C',
'C',
'C',
'C',
'C',
105 'C',
'C',
'C',
'C',
'C',
'C',
'C',
'C',
'D',
'D',
106 'D',
'D',
'D',
'D',
'D',
'D',
'D',
'D',
'D',
'D',
107 'D',
'D',
'D',
'D',
'E',
'E',
'E',
'E',
'E',
'E',
108 'E',
'E',
'E',
'E',
'E',
'E',
'E',
'E',
'E',
'E',
109 'F',
'F',
'F',
'F',
'F',
'F',
'F',
'F',
'F',
'F',
110 'F',
'F',
'F',
'F',
'F',
'F' 113 static const unsigned char gsHexEncodeMap2[256] = {
114 '0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
115 'A',
'B',
'C',
'D',
'E',
'F',
'0',
'1',
'2',
'3',
116 '4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
117 'E',
'F',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
118 '8',
'9',
'A',
'B',
'C',
'D',
'E',
'F',
'0',
'1',
119 '2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
120 'C',
'D',
'E',
'F',
'0',
'1',
'2',
'3',
'4',
'5',
121 '6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
'E',
'F',
122 '0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
123 'A',
'B',
'C',
'D',
'E',
'F',
'0',
'1',
'2',
'3',
124 '4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
125 'E',
'F',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
126 '8',
'9',
'A',
'B',
'C',
'D',
'E',
'F',
'0',
'1',
127 '2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
128 'C',
'D',
'E',
'F',
'0',
'1',
'2',
'3',
'4',
'5',
129 '6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
'E',
'F',
130 '0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
131 'A',
'B',
'C',
'D',
'E',
'F',
'0',
'1',
'2',
'3',
132 '4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
133 'E',
'F',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
134 '8',
'9',
'A',
'B',
'C',
'D',
'E',
'F',
'0',
'1',
135 '2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
136 'C',
'D',
'E',
'F',
'0',
'1',
'2',
'3',
'4',
'5',
137 '6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
'E',
'F',
138 '0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
139 'A',
'B',
'C',
'D',
'E',
'F'