VirtualBox

source: vbox/trunk/src/VBox/Frontends/Common/VBoxKeyboard/keyboard-layouts.h@ 67954

Last change on this file since 67954 was 53037, checked in by vboxsync, 10 years ago

FE/Common/VBoxKeyboard: add US international keyboard with alternative 102nd key.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 97.1 KB
Line 
1/* $Id: keyboard-layouts.h 53037 2014-10-13 09:05:00Z vboxsync $ */
2/** @file
3 * VBox/Frontends/Common - X11 keyboard driver translation tables (keyboard layouts).
4 *
5 */
6
7/* This file was generated by successively loading each of the keyboard
8 layouts listed in the file keyboard-list.h into the X server and
9 reading and dumping the values associated with each key. The format
10 of the dumped data is chosen to be compatible with the keyboard code
11 in keyboard-new.c, which is based on code from the Wine project. */
12
13/*
14 * This library is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU Lesser General Public
16 * License as published by the Free Software Foundation; either
17 * version 2.1 of the License, or (at your option) any later version.
18 *
19 * This library is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * Lesser General Public License for more details.
23 *
24 * You should have received a copy of the GNU Lesser General Public
25 * License along with this library; if not, write to the Free Software
26 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
27 */
28
29/*
30 * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
31 * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
32 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
33 * a choice of LGPL license versions is made available with the language indicating
34 * that LGPLv2 or any later version may be used, or where a choice of which version
35 * of the LGPL is applied is otherwise unspecified.
36 */
37
38#ifndef ___VBox_keyboard_tables_h
39# error This file must be included from within keyboard-tables.h
40#endif /* !___VBox_keyboard_tables_h */
41
42/* This file contains a more or less complete dump of all keyboard
43 layouts known to my version of X.org. Duplicate layouts have
44 been removed to save space and lookup time, and the Japanese
45 layout has been manually corrected, due to differences in handling
46 between 105 and 106-key keyboards.
47
48 Note that contrary to the original tables in the Wine source code,
49 these tables simply contain the X keysym values truncated to the
50 least significant byte. In fact, there is no need to do any
51 additional translation of the values (the original code translated
52 them to whatever character set was deemed appropriate, rather
53 inconsistently) as long as we use the same algorithm for creating
54 the tables and doing the lookups.
55
56 The last three entries in the tables are respectively the 102nd
57 key on 102/105/106 key keyboards, the extra key on Brazilian and
58 Japanese keyboards and the Yen key on Japanese keyboards.
59 The layout-switching keys on Japanese and Korean keyboards are
60 dealt with elsewhere. */
61
62/* U.S. English */
63static const char main_key_us[MAIN_LEN][2] =
64{
65"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
66"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
67"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
68"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
69};
70
71/* U.S. English, International (with dead keys) */
72static const char main_key_us_intl[MAIN_LEN][2] =
73{
74"PS","1!","2@","3#","4$","5%","6R","7&","8*","9(","0)","-_","=+",
75"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
76"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","QW","\\|",
77"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
78};
79
80/* U.S. English, International, alternative 102nd key */
81static const char main_key_us_intl_alt102[MAIN_LEN][2] =
82{
83"PS","1!","2@","3#","4$","5%","6R","7&","8*","9(","0)","-_","=+",
84"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
85"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","QW","\\|",
86"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\\|","\x0\x0","\x0\x0"
87};
88
89/* U.S. English, Dvorak */
90static const char main_key_us_dvorak[MAIN_LEN][2] =
91{
92"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","[{","]}",
93"'\"",",<",".>","pP","yY","fF","gG","cC","rR","lL","/?","=+",
94"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","\\|",
95";:","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","<>","\x0\x0","\x0\x0"
96};
97
98/* U.S. English, Left handed Dvorak */
99static const char main_key_us_dvorak_l[MAIN_LEN][2] =
100{
101"`~","[{","]}","/?","pP","fF","mM","lL","jJ","4$","3#","2@","1!",
102";:","qQ","bB","yY","uU","rR","sS","oO",".>","6^","5%","=+",
103"-_","kK","cC","dD","tT","hH","eE","aA","zZ","8*","7&","\\|",
104"'\"","xX","gG","vV","wW","nN","iI",",<","0)","9(","<>","\x0\x0","\x0\x0"
105};
106
107/* U.S. English, Right handed Dvorak */
108static const char main_key_us_dvorak_r[MAIN_LEN][2] =
109{
110"`~","1!","2@","3#","4$","jJ","lL","mM","fF","pP","/?","[{","]}",
111"5%","6^","qQ",".>","oO","rR","sS","uU","yY","bB",";:","=+",
112"7&","8*","zZ","aA","eE","hH","tT","dD","cC","kK","-_","\\|",
113"9(","0)","xX",",<","iI","nN","wW","vV","gG","'\"","<>","\x0\x0","\x0\x0"
114};
115
116/* U.S. English, Classic Dvorak */
117static const char main_key_us_dvorak_classic[MAIN_LEN][2] =
118{
119"`~","[{","7&","5%","3#","1!","9(","0)","2@","4$","6^","8*","]}",
120"/?",",<",".>","pP","yY","fF","gG","cC","rR","lL","'\"","=+",
121"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","\\|",
122";:","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","<>","\x0\x0","\x0\x0"
123};
124
125/* U.S. English, Russian phonetic */
126static const char main_key_us_rus[MAIN_LEN][2] =
127{
128"\xa3\xb3","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","\xdf\xff",
129"\xd1\xf1","\xd7\xf7","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xd9\xf9","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xdd\xfd",
130"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xca\xea","\xcb\xeb","\xcc\xec","\xde\xfe","\xc0\xe0","\xdc\xfc",
131"\xda\xfa","\xd8\xf8","\xc3\xe3","\xd6\xf6","\xc2\xe2","\xce\xee","\xcd\xed",",<",".>","/?","<>","\x0\x0","\x0\x0"
132};
133
134/* U.S. English, Colemak */
135static const char main_key_us_col[MAIN_LEN][2] =
136{
137"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
138"qQ","wW","fF","pP","gG","jJ","lL","uU","yY",";:","[{","]}",
139"aA","rR","sS","tT","dD","hH","nN","eE","iI","oO","'\"","\\|",
140"zZ","xX","cC","vV","bB","kK","mM",",<",".>","/?","-_","\x0\x0","\x0\x0"
141};
142
143/* Afghanistan */
144static const char main_key_af[MAIN_LEN][2] =
145{
146"\xd\xf7","\xf1!","\xf2l","\xf3k","\xf4\xb","\xf5j","\xf6\xd7","\xf7\xac","\xf8*","\xf9)","\xf0(","-\xe0","+=",
147"\xd6\xf2","\xd5\xec","\xcb\xed","\xe2\xeb","\xe1\xef","\xda\xf0","\xd9\xee","\xe7\xf1","\xce]","\xcd[","\xcc}","\x86{",
148"\xd4\xc4","\xd3\xc6","\xcc\xea","\xc8\xc5","\xe4\xc3","\xc7\xc2","\xca\xc9","\xe6\xbb","\xe5\xab","\xa9:","\xaf\xbb","\\|",
149"\xd8\xe3","\xd7S","\xd2\x98","\xd1p","\xd0\xc","\xcfT","~\xc1","\xe8>",".<","/\xbf","<>","\x0\x0","\x0\x0"
150};
151
152/* Afghanistan, Pashto */
153static const char main_key_af_ps[MAIN_LEN][2] =
154{
155"\xd\xf7","\xf1!","\xf2l","\xf3k","\xf4\xb","\xf5j","\xf6\xd7","\xf7\xbb","\xf8\xab","\xf9)","\xf0(","-\xe0","+=",
156"\xd6\xf2","\xd5\xec","\xcb\xed","\xe2\xeb","\xe1\xef","\xda\xf0","\xd9\xee","\xe7\xf1","\xce\x81","\xcd\x85","\xcc]","\x86[",
157"\xd4\x9a","\xd3\xc6","\xcc\xea","\xc8~","\xe4\xc3","\xc7\xc2","\xca|","\xe6\xbc","\xe5)","\xa9:","\xab\xbb","\\*",
158"\xcd""8","\xd0""7","\xd2\x98","\xd1!","\xd0\xc","\xcf\x89","\x93$","\xe8\xc","\x96.","/\xbf","<>","\x0\x0","\x0\x0"
159};
160
161/* Afghanistan, Southern Uzbek */
162static const char main_key_af_uz[MAIN_LEN][2] =
163{
164"\xd\xf7","\xf1!","\xf2l","\xf3k","\xf4\xb","\xf5j","\xf6\xd7","\xf7\xac","\xf8*","\xf9)","\xf0(","-\xe0","+=",
165"\xd6\xf2","\xd5\xec","\xcb\xed","\xe2\xeb","\xe1\xef","\xda\xf0","\xd9\xee","\xe7\xf1","\xce]","\xcd[","\xcc}","\x86{",
166"\xd4\xc4","\xd3\xc6","\xcc\xea","\xc8\xd0","\xe4\xc3","\xc7\xc2","\xca\xc9","\xe6\xbb","\xe5\xab","\xa9:","\xaf\xbb","\\|",
167"\xd8\xc9","\xd7\xc7","\xd2\x98","\xd1%","\xd0\xc","\xcfT","~\xc1","\xe8>",".<","/\xbf","<>","\x0\x0","\x0\x0"
168};
169
170/* Arabic */
171static const char main_key_ara[MAIN_LEN][2] =
172{
173"\xd0\xf1","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
174"\xd6\xee","\xd5\xeb","\xcb\xef","\xe2\xec","\xe1\xf9","\xda\xc5","\xd9`","\xe7\xf7","\xce\xd7","\xcd\xbb","\xcc{","\xcf}",
175"\xd4\\","\xd3S","\xea[","\xc8]","\xe4\xf7","\xc7\xc3","\xca\xe0","\xe6\xac","\xe5/","\xe3:","\xd7\"","<>",
176"\xc6~","\xc1\xf2","\xc4\xf0","\xd1\xed","\xfb\xf5","\xe9\xc2","\xc9'","\xe8,","\xd2.","\xd8\xbf","|\xa6","\x0\x0","\x0\x0"
177};
178
179/* Arabic, azerty */
180static const char main_key_ara_azerty[MAIN_LEN][2] =
181{
182"\xd0\xf1","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
183"\xd6\xee","\xd5\xeb","\xcb\xef","\xe2\xec","\xe1\xf9","\xda\xc5","\xd9`","\xe7\xf7","\xce\xd7","\xcd\xbb","\xcc{","\xcf}",
184"\xd4\\","\xd3S","\xea[","\xc8]","\xe4\xf7","\xc7\xc3","\xca\xe0","\xe6\xac","\xe5/","\xe3:","\xd7\"","<>",
185"\xc6~","\xc1\xf2","\xc4\xf0","\xd1\xed","\xfb\xf5","\xe9\xc2","\xc9'","\xe8,","\xd2.","\xd8\xbf","|\xa6","\x0\x0","\x0\x0"
186};
187
188/* Arabic, azerty/digits */
189static const char main_key_ara_azerty_digits[MAIN_LEN][2] =
190{
191"\xd0\xf1","&a","\xe9""b","\"c","'d","(e","-f","\xe8g","_h","\xe7i","\xe0`",")\xb0","=+",
192"\xd6\xee","\xd5\xeb","\xcb\xef","\xe2\xec","\xe1\xf9","\xda\xc5","\xd9`","\xe7\xf7","\xce\xd7","\xcd\xbb","\xcc{","\xcf}",
193"\xd4\\","\xd3S","\xea[","\xc8]","\xe4\xf7","\xc7\xc3","\xca\xe0","\xe6\xac","\xe5/","\xe3:","\xd7\"","<>",
194"\xc6~","\xc1\xf2","\xc4\xf0","\xd1\xed","\xfb\xf5","\xe9\xc2","\xc9'","\xe8,","\xd2.","\xd8\xbf","|\xa6","\x0\x0","\x0\x0"
195};
196
197/* Arabic, digits */
198static const char main_key_ara_digits[MAIN_LEN][2] =
199{
200"\xd0\xf1","a!","b@","c#","d$","e%","f^","g&","h*","i(","`)","-_","=+",
201"\xd6\xee","\xd5\xeb","\xcb\xef","\xe2\xec","\xe1\xf9","\xda\xc5","\xd9`","\xe7\xf7","\xce\xd7","\xcd\xbb","\xcc{","\xcf}",
202"\xd4\\","\xd3S","\xea[","\xc8]","\xe4\xf7","\xc7\xc3","\xca\xe0","\xe6\xac","\xe5/","\xe3:","\xd7\"","<>",
203"\xc6~","\xc1\xf2","\xc4\xf0","\xd1\xed","\xfb\xf5","\xe9\xc2","\xc9'","\xe8,","\xd2.","\xd8\xbf","|\xa6","\x0\x0","\x0\x0"
204};
205
206/* Arabic, Buckwalter */
207static const char main_key_ara_buckwalter[MAIN_LEN][2] =
208{
209"p\xf1","a\xff","b\xff","c\xff","d\xd4","ej","f\xff","g\xc4","h\xd0","i>","`?","-\xe0","=+",
210"\xe2\xff","\xe8\xc4","\xff\xd9","\xd1\xff","\xca\xd7","\xea\xe9","\xef\xff","\xf0\xc5","\xf2\xc3","\xc9\xff","\xffq","\xff\xc6",
211"\xee\xc7","\xd3\xd5","\xcf\xd6","\xe1\xeb","\xda\xff","\xe7\xcd","\xcc\xff","\xe3\xed","\xe4\xff","\xbb\xff","\xc1\xff","\xff\xc2",
212"\xd2\xd8","\xce\xff","\xff\xff","\xcb\xff","\xc8\xff","\xe6\xec","\xe5\xff","\xac\xc5","\xd4\xc3","\xff\xbf","<>","\x0\x0","\x0\x0"
213};
214
215/* Albania */
216static const char main_key_al[MAIN_LEN][2] =
217{
218"\\|","1!","2\"","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
219"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe7\xc7","@'",
220"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xeb\xcb","[{","]}",
221"yY","xX","cC","vV","bB","nN","mM",",;",".:","/?","<>","\x0\x0","\x0\x0"
222};
223
224/* Armenia */
225static const char main_key_am[MAIN_LEN][2] =
226{
227"]\\","\x86V","qA","\x13\x14",",$","\x89&","^%","$\x87","[\xbc",")(","\x85U","g7","rB",
228"sC","\x83S","b2","}M","tD","xH","\x82R","o?","h8","i9","n>","\x81Q",
229"{K","~N","c3","e5","a1","vF","k;","\x7fO","p@","zJ","\x80P","\xbb\xab",
230"j:","d4","yI","uE","f6","l<","\x84T","m=","wG","|L","?\x8a","\x0\x0","\x0\x0"
231};
232
233/* Armenia, Phonetic */
234static const char main_key_am_phonetic[MAIN_LEN][2] =
235{
236"]\\","g7","i9","\x83S","qA","{K","\x82R","\x87\x87","\x80P","yI","sC","-\x15","j:",
237"\x84T","xH","e5","|L","\x7fO","h8","\x82R","k;","\x85U","zJ","m=","n>",
238"a1","}M","d4","\x86V","c3","p@","uE","o?","l<",";\x89","[\"","wG",
239"f6","rB","\x81Q","~N","b2","vF","tD",",\xab","$\xbb","/^","?\x8a","\x0\x0","\x0\x0"
240};
241
242/* Armenia, Eastern */
243static const char main_key_am_eastern[MAIN_LEN][2] =
244{
245"]\\","\x89\xb1","qA","uE","[\xb3",",\xb4","-\xb9",".\x87","\xab(","\xbb)","\x85U","|L","j:",
246"m=","\x82R","g7","\x80P","\x7fO","e5","h8","k;","xH","zJ","yI","{K",
247"a1","}M","d4","\x86V","c3","p@","sC","o?","l<","i9","\x83S","'^",
248"f6","\x81Q","\x84T","~N","b2","vF","tD","wG","rB","n>","<>","\x0\x0","\x0\x0"
249};
250
251/* Armenia, Western */
252static const char main_key_am_western[MAIN_LEN][2] =
253{
254"]\\","\x89\xb1","qA","uE","[\xb3",",\xb4","-\xb9",".\x87","\xab(","\xbb)","\x85U","|L","j:",
255"m=","~N","g7","\x80P","d4","e5","h8","k;","xH","b2","yI","{K",
256"a1","}M","\x7fO","\x86V","o?","p@","sC","\x84T","l<","i9","\x83S","'^",
257"f6","\x81Q","c3","\x82R","zJ","vF","tD","wG","rB","n>","<>","\x0\x0","\x0\x0"
258};
259
260/* Armenia, Alternative Eastern */
261static const char main_key_am_eastern_alt[MAIN_LEN][2] =
262{
263"]\\","\x89\xb1","qA","uE","[\xb3",",\xb4","-\xb9",".\x87","\xab(","\xbb)","\x85U","|L","j:",
264"m=","\x82R","g7","\x80P","\x7fO","e5","h8","k;","xH","zJ","yI","{K",
265"a1","}M","d4","\x86V","\x84T","p@","sC","o?","l<","i9","\x83S","'^",
266"f6","\x81Q","c3","~N","b2","vF","tD","wG","rB","n>","<>","\x0\x0","\x0\x0"
267};
268
269/* Azerbaijan */
270static const char main_key_az[MAIN_LEN][2] =
271{
272"`~","1!","2@","3#","4$","5%","6:","7?","8*","9(","0)","-_","=+",
273"qQ","\xfc\xdc","eE","rR","tT","yY","uU","i\xa9","oO","pP","\xf6\xd6","\xbb\xab",
274"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xb9I","Y\x8f","\\|",
275"zZ","xX","cC","vV","bB","nN","mM","\xe7\xc7","\xba\xaa",".,","<>","\x0\x0","\x0\x0"
276};
277
278/* Azerbaijan, Cyrillic */
279static const char main_key_az_cyrillic[MAIN_LEN][2] =
280{
281"\x0\x0","\x0\x0","2\"","3#","4;","\x0\x0","6:","7?","8*","9(","0)","-_","\x0\x0",
282"\xa8\xb8","\xaf\xae","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xbb\xba","\xda\xfa","\xc8\xe8","\xb9\xb8",
283"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\x9d\x9c","\\|",
284"\xd9\xd8","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\x93\x92","\xc2\xe2","\xe9\xe8",".,","<>","\x0\x0","\x0\x0"
285};
286
287/* Belarus */
288static const char main_key_by[MAIN_LEN][2] =
289{
290"\xa3\xb3","\x0\x0","2\"","\x0\x0","4;","5%","6:","7?","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0",
291"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xae\xbe","\xda\xfa","\xc8\xe8","''",
292"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","/|",
293"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xa6\xb6","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,","|\xa6","\x0\x0","\x0\x0"
294};
295
296/* Belarus, Winkeys */
297static const char main_key_by_winkeys[MAIN_LEN][2] =
298{
299"\xa3\xb3","\x0\x0","2\"","3#","4;","5%","6:","7?","8*","\x0\x0","\x0\x0","\x0\x0","\x0\x0",
300"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xae\xbe","\xda\xfa","\xc8\xe8","''",
301"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","/|",
302"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xa6\xb6","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,","|\xa6","\x0\x0","\x0\x0"
303};
304
305/* Belgium */
306static const char main_key_be[MAIN_LEN][2] =
307{
308"\xb2\xb3","&1","\xe9""2","\"3","'4","(5","\xa7""6","\xe8""7","!8","\xe7""9","\xe0""0",")\xb0","-_",
309"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","RW","$*",
310"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","\xb5\xa3",
311"wW","xX","cC","vV","bB","nN",",?",";.",":/","=+","<>","\x0\x0","\x0\x0"
312};
313
314/* Belgium, Eliminate dead keys */
315static const char main_key_be_nodeadkeys[MAIN_LEN][2] =
316{
317"\xb2\xb3","&1","\xe9""2","\"3","'4","(5","\xa7""6","\xe8""7","!8","\xe7""9","\xe0""0",")\xb0","-_",
318"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","^\xa8","$*",
319"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","\xb5\xa3",
320"wW","xX","cC","vV","bB","nN",",?",";.",":/","=+","<>","\x0\x0","\x0\x0"
321};
322
323/* Belgium, Sun dead keys */
324static const char main_key_be_sundeadkeys[MAIN_LEN][2] =
325{
326"\xb2\xb3","&1","\xe9""2","\"3","'4","(5","\xa7""6","\xe8""7","!8","\xe7""9","\xe0""0",")\xb0","-_",
327"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","\x1\x4","$*",
328"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","\xb5\xa3",
329"wW","xX","cC","vV","bB","nN",",?",";.",":/","=+","<>","\x0\x0","\x0\x0"
330};
331
332/* Bangladesh */
333static const char main_key_bd[MAIN_LEN][2] =
334{
335"`~","\xe7!","\xe8@","\xe9#","\xea$","\xeb%","\xec^","\xed&","\xee*","\xef(","\xe6)","-_","=+",
336"\x99\x82","\xaf\xdf","\xa1\xa2","\xaa\xab","\x9f\xa0","\x9a\x9b","\x9c\x9d","\xb9\x9e","\x97\x98","\xdc\xdd","[{","]}",
337"\xc3\xd7","\xc1\xc2","\xbf\xc0","\xac\xad","\xcd""d","\xbe\x85","\x95\x96","\xa4\xa5","\xa6\xa7",";:","'\"","\\|",
338"\x81\x83","\xcb\xcc","\xc7\xc8","\xb0\xb2","\xa8\xa3","\xb8\xb7","\xae\xb6",",<",".>","/?","<>","\x0\x0","\x0\x0"
339};
340
341/* Bangladesh, Probhat */
342static const char main_key_bd_probhat[MAIN_LEN][2] =
343{
344"`~","\xe7!","\xe8@","\xe9#","\xea\xf3","\xeb%","\xec^","\xed\x9e","\xee\xce","\xef(","\xe6)","\xc_","=\xd",
345"\xa6\xa7","\xc2\x8a","\xc0\x88","\xb0\xdc","\x9f\xa0","\x8f\x90","\xc1\x89","\xbf\x87","\x93\x94","\xaa\xab","\xc7\xc8","\xcb\xcc",
346"\xbe\x85","\xb8\xb7","\xa1\xa2","\xa4\xa5","\x97\x98","\xb9\x83","\x9c\x9d","\x95\x96","\xb2\x82",";:","'\"","\\e",
347"\xdf\xaf","\xb6\xdd","\x9a\x9b","\x86\x8b","\xac\xad","\xa8\xa3","\xae\x99",",\xc3","d\x81","\xcd?","<>","\x0\x0","\x0\x0"
348};
349
350/* India */
351static const char main_key_in[MAIN_LEN][2] =
352{
353"J\x12","g\xd","hE","ii","jj","kk","ll","mm","nn","o(","f)","\x3\x3","C\xb",
354"L\x14","H\x10",">\x6","@\x8","B\xa",",-","9\x19","\x17\x18","&'","\x1c\x1d","!\"","<\x1e",
355"K\x13","G\xf","M\x5","?\x7","A\x9","*+","01","\x15\x16","$%","\x1a\x1b","\x1f\x20","I\x11",
356"F\xe","\x2\x1",".#","()","54","23","86",",7",".d","/?","<>","\x0\x0","\x0\x0"
357};
358
359/* India, Bengali */
360static const char main_key_in_ben[MAIN_LEN][2] =
361{
362"\x0\x0","\xe7\xe7","\xe8\xe8","\xe9\xe9","\xea\xea","\xeb\xeb","\xec\xec","\xed\xed","\xee\xee","\xef(","\xe6)","-\x83","\x8b\xc3",
363"\xcc\x94","\xc8\x90","\xbe\x86","\xc0\x88","\xc2\x8a","\xac\xad","\xb9\x99","\x97\x98","\xa6\xa7","\x9c\x9d","\xa1\xa2","\xbc\x9e",
364"\xcb\x93","\xc7\x8f","\xcd\x85","\xbf\x87","\xc1\x89","\xaa\xab","\xb0\xdd","\x95\x96","\xa4\xa5","\x9a\x9b","\x9f\xa0","\\|",
365"zZ","\x82\x81","\xae\xa3","\xa8\xa8","\xac\xac","\xb2\xb2","\xb8\xb6",",\xb7",".d","\xdf\xaf","<>","\x0\x0","\x0\x0"
366};
367
368/* India, Gujarati */
369static const char main_key_in_guj[MAIN_LEN][2] =
370{
371"\x0\x0","\xe7\x8d","\xe8\xc5","\xe9\xe9","\xea\xea","\xeb\xeb","\xec\xec","\xed\xed","\xee\xee","\xef(","\xe6)","-\x83","\x8b\xc3",
372"\xcc\x94","\xc8\x90","\xbe\x86","\xc0\x88","\xc2\x8a","\xac\xad","\xb9\x99","\x97\x98","\xa6\xa7","\x9c\x9d","\xa1\xa2","\xbc\x9e",
373"\xcb\x93","\xc7\x8f","\xcd\x85","\xbf\x87","\xc1\x89","\xaa\xab","\xb0\xb0","\x95\x96","\xa4\xa5","\x9a\x9b","\x9f\xa0","\xc9\x91",
374"zZ","\x82\x81","\xae\xa3","\xa8\xa8","\xb5\xb5","\xb2\xb3","\xb8\xb6",",\xb7",".d","\xaf?","<>","\x0\x0","\x0\x0"
375};
376
377/* India, Gurmukhi */
378static const char main_key_in_guru[MAIN_LEN][2] =
379{
380"\x0\x0","gg","hh","ii","jj","kk","ll","mm","nn","o(","f)","\x0\x0","\x0\x0",
381"L\x14","H\x10",">\x6","@\x8","B\xa",",-","9\x19","\x17\x18","&'","\x1c\x1d","!\"","<\x1e",
382"K\x13","G\xf","M\x5","?\x7","A\x9","*+","00","\x15\x16","$%","\x1a\x1b","\x1f\x20","\\|",
383"zZ","\x2p",".#","((","55","23","86",",<",".d","/?","<>","\x0\x0","\x0\x0"
384};
385
386/* India, Kannada */
387static const char main_key_in_kan[MAIN_LEN][2] =
388{
389"\xca\x92","\xe7\xe7","\xe8\xe8","\xe9\xe9","\xea\xea","\xeb\xeb","\xec\xec","\xed\xed","\xee\xee","\xef\xef","\xe6\xe6","\x83\x83","\xc3\x8b",
390"\xcc\x94","\xc8\x90","\xbe\x86","\xc0\x88","\xc2\x8a","\xac\xad","\xb9\x99","\x97\x98","\xa6\xa7","\x9c\x9d","\xa1\xa2","\xbc\x9e",
391"\xcb\x93","\xc7\x8f","\xcd\x85","\xbf\x87","\xc1\x89","\xaa\xab","\xb0\xb1","\x95\x96","\xa4\xa5","\x9a\x9b","\x9f\xa0","\\|",
392"\xc6\x8e","\x82\x82","\xae\xa3","\xa8\xa8","\xb5\xb4","\xb2\xb3","\xb8\xb6",",\xb7","..","\xaf@","<>","\x0\x0","\x0\x0"
393};
394
395/* India, Malayalam */
396static const char main_key_in_mal[MAIN_LEN][2] =
397{
398"J\x12","g!","h@","i#","j$","k%","l^","m&","n*","o(","f)","-\x3","C\xb",
399"L\x14","H\x10",">\x6","@\x8","B\xa",",-","9\x19","\x17\x18","&'","\x1c\x1d","!\"","\xd\x1e",
400"K\x13","G\xf","M\x5","?\x7","A\x9","*+","01","\x15\x16","$%","\x1a\x1b","\x1f\x20","\\|",
401"F\xe","\x2\x2",".#","((","54","23","86",",7","..","/?","<>","\x0\x0","\x0\x0"
402};
403
404/* India, Oriya */
405static const char main_key_in_ori[MAIN_LEN][2] =
406{
407"\x0\x0","gg","hh","ii","jj","kk","ll","mm","nn","oo","ff","\x3\x3","C\xb",
408"L\x14","H\x10",">\x6","@\x8","B\xa",",-","9\x19","\x17\x18","&'","\x1c\x1d","!\"","<\x1e",
409"K\x13","G\xf","M\x5","?\x7","A\x9","*+","00","\x15\x16","$%","\x1a\x1b","\x1f\x20","\\|",
410"\x0\x0","\x2\x1",".#","((","55","23","86",",7","..","/@","<>","\x0\x0","\x0\x0"
411};
412
413/* India, Tamil Unicode */
414static const char main_key_in_tam_unicode[MAIN_LEN][2] =
415{
416"\x0\x0","\x83\x83","\x0\x0","\x9c\x9c","\xb7\xb7","\xb8\xb8","\xb9\xb9","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0",
417"\x9e\x9e","\xb1\xb1","\xa8\xa8","\x9a\x9a","\xb5\xb5","\xb2\xb2","\xb0\xb0","\xc8\x90","\xca\xcb","\xbf\xc0","\xc1\xc2","\x0\x0",
418"\xaf\xaf","\xb3\xb3","\xa9\xa9","\x95\x95","\xaa\xaa","\xbe\xb4","\xa4\xa4","\xae\xae","\x9f\x9f","\xcd\xcd","\x99\x99","\\|",
419"\xa3\xa3","\x92\x93","\x89\x8a","\x8e\x8f","\xc6\xc7","\x94\xcc","\x85\x86","\x87\x88","\x0\x0","\x0\x0","<>","\x0\x0","\x0\x0"
420};
421
422/* India, Tamil TAB Typewriter */
423static const char main_key_in_tam_TAB[MAIN_LEN][2] =
424{
425"\x0\x0","\xe7\xa7","\xfa\xa8","\xfb\xfb","\xfc\xfc","\xfd\xfd","\xfe\xfe","\xff\xff","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0",
426"\xeb\xb3","\xf8\xc1","\xef\xb8","\xea\xb2","\xf5\xbe","\xf4\xbd","\xf3\xbc","\xac\xe4","\xae\xaf","\xa4\xa6","R\xa6","\x0\x0",
427"\xf2\xbb","\xf7\xc0","\xf9\xc2","\xe8\xb0","\xf0\xb9","\xa2\xa3","\xee\xb6","\xf1\xba","\xec\xb4","\xf6\xbf","\xe9\xb1","\\|",
428"\xed\xb5","\xe5\xe6","\xe0\xe1","\xe2\xe3","\xaa\xab","\xac\xa3","\xdc\xdd","\xde\xdf","\x0\x0","\x0\x0","<>","\x0\x0","\x0\x0"
429};
430
431/* India, Tamil TSCII Typewriter */
432static const char main_key_in_tam_TSCII[MAIN_LEN][2] =
433{
434"\x0\x0","\xb7\xa4","\x82\xa5","\x83\x88","\x84\x89","\x85\x8a","\x86\x8b","\x87\x8c","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0",
435"\xbb\x9a","\xc8\xda","\xbf\xd1","\xba\xcd","\xc5\xd7","\xc4\xd6","\xc3\xd5","\xa8\xb3","\xca\xcb","\xa2\xa3","Q\xa3","\x0\x0",
436"\xc2\xd4","\xc7\xd9","\xc9\xdb","\xb8\xcc","\xc0\xd2","P\xa1","\xbe\xd0","\xc1\xd3","\xbc\xce","\xc6\xd8","\xb9\x99","\\|",
437"\xbd\xcf","\xb4\xb5","\xaf\xb0","\xb1\xb2","\xa6\xa7","\xb6\xaa","\xab\xac","\xfe\xae","\x0\x0","\x0\x0","<>","\x0\x0","\x0\x0"
438};
439
440/* India, Tamil */
441static const char main_key_in_tam[MAIN_LEN][2] =
442{
443"\xca\x92","\xe7\xe7","\xe8\xe8","\xe9\xe9","\xea\xea","\xeb\xeb","\xec\xec","\xed\xed","\xee\xee","\xef(","\xf0)","\xf1\x83","\xf2+",
444"\xcc\x94","\xc8\x90","\xbe\x86","\xc0\x88","\xc2\x8a","\x0\x0","\xb9\x99","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x9e\x9e",
445"\xcb\x93","\xc7\x8f","\xcd\x85","\xbf\x87","\xc1\x89","\xaa\xaa","\xb0\xb1","\x95\x95","\xa4\xa4","\x9a\x9a","\x9f\x9f","\\|",
446"\xc6\x8e","\x82\x82","\xae\xa3","\xa8\xa9","\xb5\xb4","\xb2\xb3","\xb8\xb8",",\xb7",".d","\xaf?","<>","\x0\x0","\x0\x0"
447};
448
449/* India, Telugu */
450static const char main_key_in_tel[MAIN_LEN][2] =
451{
452"J\x12","gg","hh","i#","j$","k%","l^","m&","n*","o(","f)","\x3_","C\xb",
453"L\x14","H\x10",">\x6","@\x8","B\xa",",-","9\x19","\x17\x18","&'","\x1c\x1d","!\"","\x1e\x1e",
454"K\x13","G\xf","M\x5","?\x7","A\x9","*+","01","\x15\x16","$%","\x1a\x1b","\x1f\x20","\\|",
455"F\xe","\x2\x1",".#","((","55","23","86",",7","..","/@","<>","\x0\x0","\x0\x0"
456};
457
458/* India, Urdu */
459static const char main_key_in_urd[MAIN_LEN][2] =
460{
461"\xd4\xd4","a!","b@","c#","\xf4$","\xf5%","f^","g&","h*","i(","`)","-_","=+",
462"\xe2\xe1","H\xf9","9\xf7","1\x91","\xcay","\xd2|","!L","\xccV","G)","~O","[{","]}",
463"'\"","\xd3""5","/\x88","Ap","\xaf:","\xbe-",",6","\xa9.","D\x12","\x1b:","''","\\|",
464"\xd2\xd0","4\x98","\x86+","78","((","F\xba","EE","\xcN","\xd4P","/\xbf","<>","\x0\x0","\x0\x0"
465};
466
467/* Bosnia and Herzegovina */
468static const char main_key_ba[MAIN_LEN][2] =
469{
470"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
471"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xb9\xa9","\xf0\xd0",
472"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe8\xc8","\xe6\xc6","\xbe\xae",
473"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
474};
475
476/* Bosnia and Herzegovina, Use Bosnian digraphs */
477static const char main_key_ba_unicode[MAIN_LEN][2] =
478{
479"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
480"\xc9\xc8","\xcc\xcb","eE","rR","tT","zZ","uU","iI","oO","pP","\xb9\xa9","\xf0\xd0",
481"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe8\xc8","\xe6\xc6","\xbe\xae",
482"\xbe\xae","\xc6\xc5","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
483};
484
485/* Bosnia and Herzegovina, US keyboard with Bosnian digraphs */
486static const char main_key_ba_unicodeus[MAIN_LEN][2] =
487{
488"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
489"\xc9\xc8","\xcc\xcb","eE","rR","tT","\xbe\xae","uU","iI","oO","pP","\xb9\xa9","\xf0\xd0",
490"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe8\xc8","\xe6\xc6","\xbe\xae",
491"zZ","\xc6\xc5","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
492};
493
494/* Bosnia and Herzegovina, US keyboard with Bosnian letters */
495static const char main_key_ba_us[MAIN_LEN][2] =
496{
497"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
498"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xb9\xa9","\xf0\xd0",
499"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe8\xc8","\xe6\xc6","\xbe\xae",
500"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
501};
502
503/* Brazil */
504static const char main_key_br[MAIN_LEN][2] =
505{
506"'\"","1!","2@","3#","4$","5%","6W","7&","8*","9(","0)","-_","=+",
507"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","QP","[{",
508"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","SR","]}",
509"zZ","xX","cC","vV","bB","nN","mM",",<",".>",";:","\\|","/?","\x0\x0"
510};
511
512/* Brazil, Eliminate dead keys */
513static const char main_key_br_nodeadkeys[MAIN_LEN][2] =
514{
515"'\"","1!","2@","3#","4$","5%","6\xa8","7&","8*","9(","0)","-_","=+",
516"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","'`","[{",
517"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","~^","]}",
518"zZ","xX","cC","vV","bB","nN","mM",",<",".>",";:","\\|","/?","\x0\x0"
519};
520
521/* Brazil with alternative 102 */
522static const char main_key_br_alt_102[MAIN_LEN][2] =
523{
524"'\"","1!","2@","3#","4$","5%","6W","7&","8*","9(","0)","-_","=+",
525"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","QP","[{",
526"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","SR","]}",
527"zZ","xX","cC","vV","bB","nN","mM",",<",".>",";:","<>","/?","\x0\x0"
528};
529
530/* Brazil with alternative 102, Eliminate dead keys */
531static const char main_key_br_alt_102_nodeadkeys[MAIN_LEN][2] =
532{
533"'\"","1!","2@","3#","4$","5%","6\xa8","7&","8*","9(","0)","-_","=+",
534"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","'`","[{",
535"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","~^","]}",
536"zZ","xX","cC","vV","bB","nN","mM",",<",".>",";:","<>","/?","\x0\x0"
537};
538
539/* Bulgaria */
540static const char main_key_bg[MAIN_LEN][2] =
541{
542"()","1!","2?","3+","4\"","5%","6=","7:","8/","9\xa9","0\xb0","-I",".V",
543",\xd9","\xd5\xf5","\xc5\xe5","\xc9\xe9","\xdb\xfb","\xdd\xfd","\xcb\xeb","\xd3\xf3","\xc4\xe4","\xda\xfa","\xc3\xe3",";\xa7",
544"\xd8\xf8","\xd1\xf1","\xc1\xe1","\xcf\xef","\xd6\xf6","\xc7\xe7","\xd4\xf4","\xce\xee","\xd7\xf7","\xcd\xed","\xde\xfe","'\xf9",
545"\xc0\xe0","\xca\xea","\xdf\xff","\xdc\xfc","\xc6\xe6","\xc8\xe8","\xd0\xf0","\xd2\xf2","\xcc\xec","\xc2\xe2","<>","\x0\x0","\x0\x0"
546};
547
548/* Bulgaria, Phonetic */
549static const char main_key_bg_phonetic[MAIN_LEN][2] =
550{
551"\xde\xfe","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
552"\xd1\xf1","\xd7\xf7","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xdf\xff","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xdd\xfd",
553"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xca\xea","\xcb\xeb","\xcc\xec",";:","'\"","\xc0\xe0",
554"\xda\xfa","\xd8\xf8","\xc3\xe3","\xd6\xf6","\xc2\xe2","\xce\xee","\xcd\xed",",<",".>","/?","<>","\x0\x0","\x0\x0"
555};
556
557/* Myanmar */
558static const char main_key_mm[MAIN_LEN][2] =
559{
560"\x0\x0","A!","BB","CC","DD","EE","FF","GG","HH","I(","@)","-8","RV",
561"**","22",",!",".$","0&","\x17\x18","\x1f\x4","\x2\x3","\x12\x13","\x7\x8","\xd\xe","\xa\x9",
562"))","''","9!","-#","/%","\x15\x16","\x1b\x1b","\x0\x1","\x10\x11","\x5\x6","\xb\xc","NO",
563"LM","76","\x19\xf","\x14\x14","\x17\x17","\x1c\x1c","\x1eP",",Q",".J","/\x1a","<>","\x0\x0","\x0\x0"
564};
565
566/* Canada */
567static const char main_key_ca[MAIN_LEN][2] =
568{
569"#|","1!","2\"","3/","4$","5%","6?","7&","8*","9(","0)","-_","=+",
570"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","RR","[W",
571"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","PP","<>",
572"zZ","xX","cC","vV","bB","nN","mM",",'","..","\xe9\xc9","\xab\xbb","\x0\x0","\x0\x0"
573};
574
575/* Canada, French Dvorak */
576static const char main_key_ca_fr_dvorak[MAIN_LEN][2] =
577{
578"#|","1!","2\"","3/","4$","5%","6?","7&","8*","9(","0)","RR","[W",
579"PP",",'","..","pP","yY","fF","gG","cC","rR","lL","\xe9\xc9","=+",
580"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","<>",
581";:","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","\xab\xbb","\x0\x0","\x0\x0"
582};
583
584/* Canada, French (legacy) */
585static const char main_key_ca_fr_legacy[MAIN_LEN][2] =
586{
587"\xb0\xb0","1!","2\"","3#","4$","5%","6?","7&","8*","9(","0)","-_","=+",
588"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","RR","\xe7\xc7",
589"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","\xe8\xc8","\xe0\xc0",
590"zZ","xX","cC","vV","bB","nN","mM",",'","..","\xe9\xc9","\xf9\xd9","\x0\x0","\x0\x0"
591};
592
593/* Canada, Multilingual */
594static const char main_key_ca_multix[MAIN_LEN][2] =
595{
596"/\\","1!","2@","3#","4$","5%","6?","7&","8*","9(","0)","-_","=+",
597"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","RW","\xe7\xc7",
598"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","\xe8\xc8","\xe0\xc0",
599"zZ","xX","cC","vV","bB","nN","mM",",'",".\"","\xe9\xc9","\xf9\xd9","\x0\x0","\x0\x0"
600};
601
602/* Canada, Multilingual, second part */
603static const char main_key_ca_multi_2gr[MAIN_LEN][2] =
604{
605"\x0\xad","\xb9\xa1","\xb2\xb2","\xb3\xa3","\xbc\xa4","\xbd\xc4","\xbe\xc5","\x0\xc6","\x0\xc9","\x0\xb1","\x0\x0","\x0\xbf","[\\",
606"\x0\xd9","\xb3\xa3","\xbd\xbc","\xb6\xae","\xbc\xac","\xfb\xa5","\xfe\xfc","\xfd\xb9","\xf8\xd8","\xfe\xde","\x0X","ST",
607"\xe6\xc6","\xdf\xa7","\xf0\xd0","\x0\xaa","\xbf\xbd","\xb1\xa1","32","\xa2\xa2","@?","QY","\x0Z","\\U",
608"\x0\x0","\x0\x0","\xa2\xa9","\xd2\xd0","\xd3\xd1","Ij","\xb5\xba","\xaf\xd7","\xb7\xf7","\x0V","<\xa6","\x0\x0","\x0\x0"
609};
610
611/* Canada, Inuktitut */
612static const char main_key_ca_ike[MAIN_LEN][2] =
613{
614"{u","\x95""1","I2","P3","\x83""4","f5","\x85""6","\xbb""7","\xd0""8","\xea""9",">0","-_","]=",
615"\x8f\x8b","\x3""1","\x7f""F","m\x96","Nq","\xefs","\xa5u","\xc2\xa4","\xd5\xa0","(\xa6","\xa1\x5","V\x1e",
616"\x91\x8d","\x5""3","\x81H","oU","P(","\xf1)","\xa7*","\xc4W","\xd7\xa2",";:","'\"","\\|",
617"\x93\x90","\xa""8","\x83K","r?","U|","\xf4\xc7","\xaa\xda",",<",".>","-Y","yw","\x0\x0","\x0\x0"
618};
619
620/* Congo, Democratic Republic of the */
621static const char main_key_cd[MAIN_LEN][2] =
622{
623"`~","&1","\x1""2","\x0""3","(4","{5","}6",")7","\x2""8","\xc""9","\x8""0","-_","=+",
624"aA","wW","eE","rR","tT","yY","uU","iI","oO","pP","[\x90","*^",
625"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","T\x86","\"\\",
626"zZ","xX","cC","vV","bB","nN",",.",";:","!?","'/","\\|","\x0\x0","\x0\x0"
627};
628
629/* Czechia */
630static const char main_key_cz[MAIN_LEN][2] =
631{
632";X","+1","\xec""2","\xb9""3","\xe8""4","\xf8""5","\xbe""6","\xfd""7","\xe1""8","\xed""9","\xe9""0","=%","QZ",
633"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfa/",")(",
634"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf9\"","\xa7!","W'",
635"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
636};
637
638/* Czechia, With <|> key */
639static const char main_key_cz_bksl[MAIN_LEN][2] =
640{
641";X","+1","\xec""2","\xb9""3","\xe8""4","\xf8""5","\xbe""6","\xfd""7","\xe1""8","\xed""9","\xe9""0","=%","QZ",
642"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfa/",")(",
643"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf9\"","\xa7!","\\|",
644"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
645};
646
647/* Czechia, qwerty */
648static const char main_key_cz_qwerty[MAIN_LEN][2] =
649{
650";X","+1","\xec""2","\xb9""3","\xe8""4","\xf8""5","\xbe""6","\xfd""7","\xe1""8","\xed""9","\xe9""0","=%","QZ",
651"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfa/",")(",
652"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf9\"","\xa7!","W'",
653"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
654};
655
656/* Czechia, qwerty, extended Backslash */
657static const char main_key_cz_qwerty_bksl[MAIN_LEN][2] =
658{
659";X","+1","\xec""2","\xb9""3","\xe8""4","\xf8""5","\xbe""6","\xfd""7","\xe1""8","\xed""9","\xe9""0","=%","QZ",
660"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfa/",")(",
661"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf9\"","\xa7!","\\|",
662"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
663};
664
665/* Denmark */
666static const char main_key_dk[MAIN_LEN][2] =
667{
668"\xbd\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","QP",
669"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","WR",
670"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","\xf8\xd8","'*",
671"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
672};
673
674/* Denmark, Eliminate dead keys */
675static const char main_key_dk_nodeadkeys[MAIN_LEN][2] =
676{
677"\xbd\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xb4`",
678"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
679"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","\xf8\xd8","'*",
680"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
681};
682
683/* Netherlands */
684static const char main_key_nl[MAIN_LEN][2] =
685{
686"@\xa7","1!","2\"","3#","4$","5%","6&","7_","8(","9)","0'","/?","\xb0S",
687"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","WR","*|",
688"aA","sS","dD","fF","gG","hH","jJ","kK","lL","+\xb1","'`","<>",
689"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-=","][","\x0\x0","\x0\x0"
690};
691
692/* Bhutan */
693static const char main_key_bt[MAIN_LEN][2] =
694{
695"\x9\xa","!\x4","\"\x5","#\x6","$H","%p","&\x8","'8","(4",")<","\x20=","\x14\x7f","\xd\x11",
696"@\x90","A\x91","B\x92","D\x94","r\x80","t\x84","z{","|}","E\x95","F\x96","G\x97","I\x99",
697"O\x9f","P\xa0","Q\xa1","S\xa3","T\xa4","U\xa5","V\xa6","X\xa8","Y\xa9","Z\xaa","[\xab","]\xad",
698"^\xae","_\xaf","`q","a\xb1","b\xb2","c\xb3","d\xb4","f\xb6","g\xb7","h\xb8","\xd\x11","\x0\x0","\x0\x0"
699};
700
701/* Estonia */
702static const char main_key_ee[MAIN_LEN][2] =
703{
704"ZS","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","QP",
705"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfc\xdc","\xf5\xd5",
706"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
707"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
708};
709
710/* Estonia, Eliminate dead keys */
711static const char main_key_ee_nodeadkeys[MAIN_LEN][2] =
712{
713"^~","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","'`",
714"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfc\xdc","\xf5\xd5",
715"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
716"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
717};
718
719/* Iran */
720static const char main_key_ir[MAIN_LEN][2] =
721{
722"\xd\xf7","\xf1!","\xf2l","\xf3k","\xf4\xfc","\xf5j","\xf6\xd7","\xf7\xac","\xf8*","\xf9)","\xf0(","-\xe0","=+",
723"\xd6\xf2","\xd5\xec","\xcb\xed","\xe2\xeb","\xe1\xef","\xda\xf0","\xd9\xee","\xe7\xf1","\xce]","\xcd[","\xcc}","\x86{",
724"\xd4\xc4","\xd3\xc6","\xcc\xea","\xc8\xc5","\xe4\xc3","\xc7\xc2","\xca\xc9","\xe6\xbb","\xe5\xab","\xa9:","\xaf\xbb","\\|",
725"\xd8\xe3","\xd7S","\xd2\x98","\xd1p","\xd0\xc","\xcfT","~\xc1","\xe8>",".<","/\xbf","<>","\x0\x0","\x0\x0"
726};
727
728/* Iran, Kurdish, Latin Q */
729static const char main_key_ir_ku[MAIN_LEN][2] =
730{
731"\"\\","1!","2'","3^","4+","5%","6&","7/","8(","9)","0=","*?","-_",
732"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","xX","\xfb\xdb",
733"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xba\xaa","\xee\xce",",;",
734"zZ","xX","cC","vV","bB","nN","mM","\xea\xca","\xe7\xc7",".:","<>","\x0\x0","\x0\x0"
735};
736
737/* Iran, Kurdish, (F) */
738static const char main_key_ir_ku_f[MAIN_LEN][2] =
739{
740"+*","1!","2\"","3^","4$","5%","6&","7'","8(","9)","0=","/?","-_",
741"fF","gG","xX","iI","oO","dD","rR","nN","hH","pP","qQ","wW",
742"\xfb\xdb","\xee\xce","eE","aA","uU","tT","kK","mM","lL","yY","\xba\xaa","xX",
743"jJ","\xea\xca","vV","cC","\xe7\xc7","zZ","sS","bB",".:",",;","<>","\x0\x0","\x0\x0"
744};
745
746/* Iran, Kurdish, Arabic-Latin */
747static const char main_key_ir_ku_ara[MAIN_LEN][2] =
748{
749"\xd\xf7","1!","2@","3#","4$","5%","6^","7&","8*","9)","0(","-\xe0","=+",
750"\xe2X","\xe8X","\xd5\xe7","\xd1\x95","\xca\xd7","\xcc\xce","\xc6\xc1","\xcd\xd9","\xc6\xc4","~\xcb","]}","[{",
751"\xc7\xc2","\xd3\xd4","\xcf\xd0","\xe1\xc5","\xaf\xda","\xe7\xc","\x98\xc3","\xa9\xe3","\xe4\xb5","\xbb:","'\"","\\|",
752"\xd2\xd6","\xce\xd5","\xcc\x86","\xa4\xd8","\xc8I","\xe6\xc9","\xe5\xe0","\xac>",".<","/\xbf","<>","\x0\x0","\x0\x0"
753};
754
755/* Faroe Islands */
756static const char main_key_fo[MAIN_LEN][2] =
757{
758"\xbd\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","QP",
759"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xf0\xd0",
760"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","\xf8\xd8","'*",
761"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
762};
763
764/* Finland */
765static const char main_key_fi[MAIN_LEN][2] =
766{
767"\xa7\xbd","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","QP",
768"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","WR",
769"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
770"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
771};
772
773/* Finland, Eliminate dead keys */
774static const char main_key_fi_nodeadkeys[MAIN_LEN][2] =
775{
776"\xa7\xbd","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xb4`",
777"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
778"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
779"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
780};
781
782/* Finland, Northern Saami */
783static const char main_key_fi_smi[MAIN_LEN][2] =
784{
785"|\xa7","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","+?","\\`",
786"\xe1\xc1","\xb9\xa9","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xbf\xbd",
787"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","\xf0\xd0",
788"zZ","\xe8\xc8","cC","vV","bB","nN","mM",",;",".:","-_","\xbe\xae","\x0\x0","\x0\x0"
789};
790
791/* Finland, Macintosh */
792static const char main_key_fi_mac[MAIN_LEN][2] =
793{
794"\xa7\xb0","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xb4`",
795"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
796"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
797"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
798};
799
800/* France */
801static const char main_key_fr[MAIN_LEN][2] =
802{
803"\xb2~","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
804"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","RW","$\xa3",
805"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
806"wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7","<>","\x0\x0","\x0\x0"
807};
808
809/* France, Eliminate dead keys */
810static const char main_key_fr_nodeadkeys[MAIN_LEN][2] =
811{
812"\xb2~","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
813"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","^\xa8","$\xa3",
814"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
815"wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7","<>","\x0\x0","\x0\x0"
816};
817
818/* France, Sun dead keys */
819static const char main_key_fr_sundeadkeys[MAIN_LEN][2] =
820{
821"\xb2~","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
822"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","\x1\x4","$\xa3",
823"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
824"wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7","<>","\x0\x0","\x0\x0"
825};
826
827/* France, Alternative */
828static const char main_key_fr_oss[MAIN_LEN][2] =
829{
830"\xf8\xd8","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
831"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","RW","$\xa3",
832"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
833"wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7","<>","\x0\x0","\x0\x0"
834};
835
836/* France, Alternative, eliminate dead keys */
837static const char main_key_fr_oss_nodeadkeys[MAIN_LEN][2] =
838{
839"\xf8\xd8","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
840"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","^\xa8","$\xa3",
841"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
842"wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7","<>","\x0\x0","\x0\x0"
843};
844
845/* France, Alternative, Sun dead keys */
846static const char main_key_fr_oss_sundeadkeys[MAIN_LEN][2] =
847{
848"\xf8\xd8","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
849"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","\x1\x4","$\xa3",
850"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
851"wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7","<>","\x0\x0","\x0\x0"
852};
853
854/* France, (Legacy) Alternative */
855static const char main_key_fr_latin9[MAIN_LEN][2] =
856{
857"\xbd\xbc","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
858"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","RW","$\xa3",
859"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
860"wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7","<>","\x0\x0","\x0\x0"
861};
862
863/* France, (Legacy) Alternative, eliminate dead keys */
864static const char main_key_fr_latin9_nodeadkeys[MAIN_LEN][2] =
865{
866"\xbd\xbc","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
867"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","^\xa8","$\xa3",
868"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
869"wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7","<>","\x0\x0","\x0\x0"
870};
871
872/* France, (Legacy) Alternative, Sun dead keys */
873static const char main_key_fr_latin9_sundeadkeys[MAIN_LEN][2] =
874{
875"\xbd\xbc","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
876"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","\x1\x4","$\xa3",
877"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
878"wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7","<>","\x0\x0","\x0\x0"
879};
880
881/* France, Dvorak */
882static const char main_key_fr_dvorak[MAIN_LEN][2] =
883{
884"\xbd\xbc","/1","+2","-3","*4","=5","\\6","(7","`8",")9","\"0","[{","]}",
885":?","\xe0\xc0","\xe9\xc9","gG",".!","hH","vV","cC","mM","kK","\xe8\xc8","zZ",
886"oO","aA","uU","eE","bB","fF","sS","tT","nN","dD","wW","\xf9\xd9",
887"'_","qQ",",;","iI","yY","xX","rR","lL","pP","jJ","\xe7\xc7","\x0\x0","\x0\x0"
888};
889
890/* France, Macintosh */
891static const char main_key_fr_mac[MAIN_LEN][2] =
892{
893"@#","&1","\xe9""2","\"3","'4","(5","\xa7""6","\xe8""7","!8","\xe7""9","\xe0""0",")\xb0","-_",
894"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","RW","$*",
895"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","P\xa3",
896"wW","xX","cC","vV","bB","nN",",?",";.",":/","=+","<>","\x0\x0","\x0\x0"
897};
898
899/* Ghana */
900static const char main_key_gh[MAIN_LEN][2] =
901{
902"`~","1!","2@","3#","4\xb5","5%","6^","7&","8*","9(","0)","-_","=+",
903"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
904"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
905"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
906};
907
908/* Ghana, Akan */
909static const char main_key_gh_akan[MAIN_LEN][2] =
910{
911"`~","1!","2@","3#","4\xb5","5%","6^","7&","8*","9(","0)","-_","=+",
912"[\x90","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
913"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
914"zZ","T\x86","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
915};
916
917/* Ghana, Ewe */
918static const char main_key_gh_ewe[MAIN_LEN][2] =
919{
920"`~","1!","2@","3#","4\xb5","5%","6^","7&","8*","9(","0)","-_","=+",
921"[\x90","wW","eE","rR","tT","yY","uU","iI","oO","pP","T\x86","\x8b\xb2",
922"aA","sS","dD","fF","gG","hH","\x92\x91","kK","lL",";:","'\"","\\|",
923"zZ","xX","KJ","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
924};
925
926/* Ghana, Fula */
927static const char main_key_gh_fula[MAIN_LEN][2] =
928{
929"`~","1!","2@","3#","4\xb5","5%","6^","7&","8*","9(","0)","-_","=+",
930"qQ","\xfc\xdc","eE","rR","tT","yY","uU","iI","oO","pP","\xb4\xb3","\xe7\xe6",
931"aA","sS","W\x8a","fF","gG","hH","jJ","kK","lL","10","\xdd\x8e","\\|",
932"r\x9d","xX","cC","vV","bB","nN","\xf1\xd1",",<","\xe7\xc7","\xba\xaa","<>","\x0\x0","\x0\x0"
933};
934
935/* Ghana, Ga */
936static const char main_key_gh_ga[MAIN_LEN][2] =
937{
938"`~","1!","2@","3#","4\xb5","5%","6^","7&","8*","9(","0)","-_","=+",
939"[\x90","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
940"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
941"zZ","T\x86","KJ","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
942};
943
944/* Georgia */
945static const char main_key_ge[MAIN_LEN][2] =
946{
947"\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0",
948"\xe5q","\xec\xed","\xd4""e","\xe0\xe6","\xe2\xd7","\xe7y","\xe3u","\xd8i","\xddo","\xdep","[{","]}",
949"\xd0""a","\xe1\xe8","\xd3""d","\xe4""f","\xd2g","\xf0h","\xef\xdf","\xd9k","\xdal",";:","'\"","\\|",
950"\xd6\xeb","\xeex","\xea\xe9","\xd5v","\xd1""b","\xdcn","\xdbm",",<",".>","/?","\xab\xbb","\x0\x0","\x0\x0"
951};
952
953/* Georgia, Russian */
954static const char main_key_ge_ru[MAIN_LEN][2] =
955{
956"^~","1!","2@","3#","4;","5:","6,","7.","8*","9(","0)","-_","#|",
957"\xe6q","\xeaw","\xe3""e","\xd9r","\xd4t","\xdcy","\xd2u","\xe8i","\xeco","\xd6p","\xee[","\xef]",
958"\xe4""a","\xd7s","\xd5""d","\xd0""f","\xdeg","\xe0h","\xddj","\xdak","\xd3l","\xdf;","\xeb%","\\|",
959"\xedz","\xe9x","\xe1""c","\xdbv","\xd8""b","\xe2n","\xe5m","\xd1<","\xe7>","\xf0?","\xab\xbb","\x0\x0","\x0\x0"
960};
961
962/* Germany */
963static const char main_key_de[MAIN_LEN][2] =
964{
965"R\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","QP",
966"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
967"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
968"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
969};
970
971/* Germany, Dead acute */
972static const char main_key_de_deadacute[MAIN_LEN][2] =
973{
974"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","Q`",
975"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
976"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
977"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
978};
979
980/* Germany, Dead grave acute */
981static const char main_key_de_deadgraveacute[MAIN_LEN][2] =
982{
983"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","QP",
984"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
985"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
986"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
987};
988
989/* Germany, Eliminate dead keys */
990static const char main_key_de_nodeadkeys[MAIN_LEN][2] =
991{
992"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","\xb4`",
993"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
994"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
995"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
996};
997
998/* Germany, Eliminate dead keys, acute replaced by apostrophe */
999static const char main_key_de_nodeadkeys_noacute[MAIN_LEN][2] =
1000{
1001"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","\x27`",
1002"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
1003"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
1004"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1005};
1006
1007/* Germany, Dvorak */
1008static const char main_key_de_dvorak[MAIN_LEN][2] =
1009{
1010"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","+*","<>",
1011"\xfc\xdc",",;",".:","pP","yY","fF","gG","cC","tT","zZ","?\xdf","/\\",
1012"aA","oO","eE","iI","uU","hH","dD","rR","nN","sS","lL","-_",
1013"\xf6\xd6","qQ","jJ","kK","xX","bB","mM","wW","vV","#'","\xe4\xc4","\x0\x0","\x0\x0"
1014};
1015
1016/* Germany, Neostyle */
1017static const char main_key_de_neo[MAIN_LEN][2] =
1018{
1019"R\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","-_","QP",
1020"qQ","vV","lL","cC","wW","kK","hH","gG","fF","jJ","\xdf?","+*",
1021"uU","iI","aA","eE","oO","sS","nN","rR","tT","dD","yY","#'",
1022"\xf6\xd6","\xfc\xdc","\xe4\xc4","pP","zZ","bB","mM",",;",".:","xX","<>","\x0\x0","\x0\x0"
1023};
1024
1025/* Germany, paragraph */
1026static const char main_key_de_para[MAIN_LEN][2] =
1027{
1028"R\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","\xdf?","QP",
1029"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
1030"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
1031"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1032};
1033
1034/* Germany, Dead acute, paragraph */
1035static const char main_key_de_deadacute_para[MAIN_LEN][2] =
1036{
1037"^\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","\xdf?","Q`",
1038"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
1039"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
1040"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1041};
1042
1043/* Germany, Dead grave acute, paragraph */
1044static const char main_key_de_deadgraveacute_para[MAIN_LEN][2] =
1045{
1046"^\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","\xdf?","QP",
1047"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
1048"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
1049"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1050};
1051
1052/* Germany, Eliminate dead keys, paragraph */
1053static const char main_key_de_nodeadkeys_para[MAIN_LEN][2] =
1054{
1055"^\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","\xdf?","\xb4`",
1056"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
1057"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
1058"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1059};
1060
1061/* Germany, Eliminate dead keys, acute replaced by apostrophe, paragraph */
1062static const char main_key_de_nodeadkeys_noacute_para[MAIN_LEN][2] =
1063{
1064"^\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","\xdf?","\x27`",
1065"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
1066"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
1067"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1068};
1069
1070/* Germany, Dvorak, paragraph */
1071static const char main_key_de_dvorak_para[MAIN_LEN][2] =
1072{
1073"^\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","+*","<>",
1074"\xfc\xdc",",;",".:","pP","yY","fF","gG","cC","tT","zZ","?\xdf","/\\",
1075"aA","oO","eE","iI","uU","hH","dD","rR","nN","sS","lL","-_",
1076"\xf6\xd6","qQ","jJ","kK","xX","bB","mM","wW","vV","#'","\xe4\xc4","\x0\x0","\x0\x0"
1077};
1078
1079/* Germany, Sun dead keys */
1080static const char main_key_de_sun[MAIN_LEN][2] =
1081{
1082"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","\x3\x0",
1083"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
1084"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
1085"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1086};
1087
1088/* Greece */
1089static const char main_key_gr[MAIN_LEN][2] =
1090{
1091"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1092";:","\xf3\xd2","\xe5\xc5","\xf1\xd1","\xf4\xd4","\xf5\xd5","\xe8\xc8","\xe9\xc9","\xef\xcf","\xf0\xd0","[{","]}",
1093"\xe1\xc1","\xf2\xd2","\xe4\xc4","\xf6\xd6","\xe3\xc3","\xe7\xc7","\xee\xce","\xea\xca","\xeb\xcb","QW","'\"","\\|",
1094"\xe6\xc6","\xf7\xd7","\xf8\xd8","\xf9\xd9","\xe2\xc2","\xed\xcd","\xec\xcc",",<",".>","/?","\xab\xbb","\x0\x0","\x0\x0"
1095};
1096
1097/* Greece, Eliminate dead keys */
1098static const char main_key_gr_nodeadkeys[MAIN_LEN][2] =
1099{
1100"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1101";:","\xf3\xd2","\xe5\xc5","\xf1\xd1","\xf4\xd4","\xf5\xd5","\xe8\xc8","\xe9\xc9","\xef\xcf","\xf0\xd0","[{","]}",
1102"\xe1\xc1","\xf2\xd2","\xe4\xc4","\xf6\xd6","\xe3\xc3","\xe7\xc7","\xee\xce","\xea\xca","\xeb\xcb",";:","'\"","\\|",
1103"\xe6\xc6","\xf7\xd7","\xf8\xd8","\xf9\xd9","\xe2\xc2","\xed\xcd","\xec\xcc",",<",".>","/?","\xab\xbb","\x0\x0","\x0\x0"
1104};
1105
1106/* Greece, Polytonic */
1107static const char main_key_gr_polytonic[MAIN_LEN][2] =
1108{
1109"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1110";:","\xf3\xd2","\xe5\xc5","\xf1\xd1","\xf4\xd4","\xf5\xd5","\xe8\xc8","\xe9\xc9","\xef\xcf","\xf0\xd0","SW","]\xff",
1111"\xe1\xc1","\xf2\xd2","\xe4\xc4","\xf6\xd6","\xe3\xc3","\xe7\xc7","\xee\xce","\xea\xca","\xeb\xcb","Q\x13","P\x14","\\|",
1112"\xe6\xc6","\xf7\xd7","\xf8\xd8","\xf9\xd9","\xe2\xc2","\xed\xcd","\xec\xcc",",<",".>","/?","\xab\xbb","\x0\x0","\x0\x0"
1113};
1114
1115/* Hungary */
1116static const char main_key_hu[MAIN_LEN][2] =
1117{
1118"0\xa7","1'","2\"","3+","4!","5%","6/","7=","8(","9)","\xf6\xd6","\xfc\xdc","\xf3\xd3",
1119"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xf5\xd5","\xfa\xda",
1120"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xc9","\xe1\xc1","\xfb\xdb",
1121"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","\xed\xcd","\x0\x0","\x0\x0"
1122};
1123
1124/* Hungary, qwerty */
1125static const char main_key_hu_qwerty[MAIN_LEN][2] =
1126{
1127"\xed\xcd","1'","2\"","3+","4!","5%","6/","7=","8(","9)","\xf6\xd6","\xfc\xdc","\xf3\xd3",
1128"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xf5\xd5","\xfa\xda",
1129"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xc9","\xe1\xc1","\xfb\xdb",
1130"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","<>","\x0\x0","\x0\x0"
1131};
1132
1133/* Hungary, 101/qwertz/comma/Dead keys */
1134static const char main_key_hu_101_qwertz_comma_dead[MAIN_LEN][2] =
1135{
1136"\xed\xcd","1'","2\"","3+","4!","5%","6/","7=","8(","9)","\xf6\xd6","\xfc\xdc","\xf3\xd3",
1137"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xf5\xd5","\xfa\xda",
1138"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xc9","\xe1\xc1","\xfb\xdb",
1139"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","<>","\x0\x0","\x0\x0"
1140};
1141
1142/* Hungary, 102/qwerty/comma/Dead keys */
1143static const char main_key_hu_102_qwerty_comma_dead[MAIN_LEN][2] =
1144{
1145"0\xa7","1'","2\"","3+","4!","5%","6/","7=","8(","9)","\xf6\xd6","\xfc\xdc","\xf3\xd3",
1146"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xf5\xd5","\xfa\xda",
1147"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xc9","\xe1\xc1","\xfb\xdb",
1148"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","\xed\xcd","\x0\x0","\x0\x0"
1149};
1150
1151/* Iceland */
1152static const char main_key_is[MAIN_LEN][2] =
1153{
1154"\xb0\xa8","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","\xf6\xd6","-_",
1155"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xf0\xd0","'?",
1156"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","Q\xc4","+*",
1157"zZ","xX","cC","vV","bB","nN","mM",",;",".:","\xfe\xde","<>","\x0\x0","\x0\x0"
1158};
1159
1160/* Iceland, Sun dead keys */
1161static const char main_key_is_Sundeadkeys[MAIN_LEN][2] =
1162{
1163"\x1\xb0","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","\xf6\xd6","\x3\x0",
1164"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfc\xdc","+*",
1165"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#\xb4",
1166"zZ","xX","cC","vV","bB","nN","mM",",;",".:","\xfe\xde","<>","\x0\x0","\x0\x0"
1167};
1168
1169/* Iceland, Eliminate dead keys */
1170static const char main_key_is_nodeadkeys[MAIN_LEN][2] =
1171{
1172"^\xb0","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","\xf6\xd6","'`",
1173"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfc\xdc","+*",
1174"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#\xb4",
1175"zZ","xX","cC","vV","bB","nN","mM",",;",".:","\xfe\xde","<>","\x0\x0","\x0\x0"
1176};
1177
1178/* Iceland, Macintosh */
1179static const char main_key_is_mac[MAIN_LEN][2] =
1180{
1181"\xa3\xa7","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","\xf6\xd6","-_",
1182"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xf0\xd0","'?",
1183"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","QW","+*",
1184"zZ","xX","cC","vV","bB","nN","mM",",;",".:","\xfe\xde","<>","\x0\x0","\x0\x0"
1185};
1186
1187/* Israel */
1188static const char main_key_il[MAIN_LEN][2] =
1189{
1190";~","1!","2@","3#","4$","5%","6^","7&","8*","9)","0(","-_","=+",
1191"/Q","'W","\xf7""E","\xf8R","\xe0T","\xe8Y","\xe5U","\xefI","\xedO","\xf4P","]}","[{",
1192"\xf9""A","\xe3S","\xe2""D","\xeb""F","\xf2G","\xe9H","\xe7J","\xecK","\xeaL","\xf3:",",\"","\\\\",
1193"\xe6Z","\xf1X","\xe1""C","\xe4V","\xf0""B","\xeeN","\xf6M","\xfa>","\xf5<",".?","<>","\x0\x0","\x0\x0"
1194};
1195
1196/* Israel, lyx */
1197static const char main_key_il_lyx[MAIN_LEN][2] =
1198{
1199";~","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","9)","0(","-\xbe","\x0\x0",
1200"//","''","\xf7\xb8","\xf8\xbc","\xe0\xe","\xe8\xf","\xe5\xb9","\xef\xef","\xed\xed","\xf4\xb7","]}","[{",
1201"\xf9\xb0","\xe3\xbc","\xe2\xe2","\xeb\xeb","\xf2\xc2","\xe9\xc1","\xe7\xb4","\xec\xaa","\xea\xea","\xf3:",",\"","\\|",
1202"\xe6\xe6","\xf1\xb6","\xe1\xbb","\xe4\xb1","\xf0\xb2","\xee\xb3","\xf6\xb5","\xfa>","\xf5<",".?","<>","\x0\x0","\x0\x0"
1203};
1204
1205/* Israel, Phonetic */
1206static const char main_key_il_phonetic[MAIN_LEN][2] =
1207{
1208"\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","=+",
1209"\xf7\xf7","\xe5\xe5","\xe0\xe0","\xf8\xf8","\xfa\xe8","\xf2\xf2","\xe5\xe5","\xe9\xe9","\xf1\xf1","\xf4\xf3","\x0\x0","\x0\x0",
1210"\xe0\xe0","\xf9\xf9","\xe3\xe3","\xf4\xf3","\xe2\xe2","\xe4\xe4","\xe9\xe9","\xeb\xea","\xec\xec","\x0\x0","\x0\x0","\\|",
1211"\xe6\xe6","\xe7\xe7","\xf6\xf5","\xe5\xe5","\xe1\xe1","\xf0\xef","\xee\xed","\x0\x0","\x0\x0","\x0\x0","<>","\x0\x0","\x0\x0"
1212};
1213
1214/* Italy */
1215static const char main_key_it[MAIN_LEN][2] =
1216{
1217"\\|","1!","2\"","3\xa3","4$","5%","6&","7/","8(","9)","0=","'?","\xec^",
1218"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe8\xe9","+*",
1219"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf2\xe7","\xe0\xb0","\xf9\xa7",
1220"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1221};
1222
1223/* Italy, Macintosh */
1224static const char main_key_it_mac[MAIN_LEN][2] =
1225{
1226"@#","&1","\"2","'3","(4","\xe7""5","\xe8""6",")7","\xa3""8","\xe0""9","\xe9""0","-_","=+",
1227"qQ","zZ","eE","rR","tT","yY","uU","iI","oO","pP","\xec^","$*",
1228"aA","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","\xa7\xb0",
1229"wW","xX","cC","vV","bB","nN",",?",";.",":/","\xf2!","<>","\x0\x0","\x0\x0"
1230};
1231
1232/* Japan */
1233static const char main_key_jp[MAIN_LEN][2] =
1234{
1235"\x0\x0","1!","2\"","3#","4$","5%","6&","7'","8(","9)","0~","-=","^~",
1236"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","@`","[{",
1237"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";+",":*","]}",
1238"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\\_","\\|"
1239};
1240
1241/* Kyrgyzstan */
1242static const char main_key_kg[MAIN_LEN][2] =
1243{
1244"\xa3\xb3","1!","2\"","3\xb0","4;","5%","6:","7?","8*","9(","0)","-_","=+",
1245"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1246"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\/",
1247"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,","/|","\x0\x0","\x0\x0"
1248};
1249
1250/* Cambodia */
1251static const char main_key_kh[MAIN_LEN][2] =
1252{
1253"\xab\xbb","\xe1!","\xe2\xd7","\xe3\"","\xe4\xdb","\xe5%","\xe6\xcd","\xe7\xd0","\xe8\xcf","\xe9(","\xe0)","\xa5\xcc","\xb2=",
1254"\x86\x88","\xb9\xba","\xc1\xc2","\x9a\xac","\x8f\x91","\x99\xbd","\xbb\xbc","\xb7\xb8","\xc4\xc5","\x95\x97","\xc0\xbf","\xaa\xa7",
1255"\xb6\xff","\x9f\xc3","\x8a\x8c","\x90\x92","\x84\xa2","\xa0\xc7","\xd2\x89","\x80\x82","\x9b\xa1","\xbe\xfe","\xcb\xc9","\xae\xad",
1256"\x8b\x8d","\x81\x83","\x85\x87","\x9c\xfd","\x94\x96","\x93\x8e","\x98\xc6","\xfc\xfb","\xd4\xd5","\xca?","<>","\x0\x0","\x0\x0"
1257};
1258
1259/* Kazakhstan */
1260static const char main_key_kz[MAIN_LEN][2] =
1261{
1262"()","\xfe!","\xd9\xd8","\xa6\xb6","\xa3\xa2","\x93\x92",",;",".:","\xaf\xae","\xb1\xb0","\x9b\x9a","\xe9\xe8","\xbb\xba",
1263"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1264"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\/",
1265"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","\xb0?","<>","\x0\x0","\x0\x0"
1266};
1267
1268/* Kazakhstan, Russian with Kazakh */
1269static const char main_key_kz_ruskaz[MAIN_LEN][2] =
1270{
1271"\xa3\xb3","1!","2\"","3\xb0","4;","5%","6:","7?","8*","9(","0)","-_","=+",
1272"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1273"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\/",
1274"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,","<>","\x0\x0","\x0\x0"
1275};
1276
1277/* Kazakhstan, Kazakh with Russian */
1278static const char main_key_kz_kazrus[MAIN_LEN][2] =
1279{
1280"\xa3\xb3","1!","2\"","3\xb0","4;","5%","6:","7?","8*","9(","0)","-_","=+",
1281"\xca\xea","\xa3\xa2","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\x93\x92","\xda\xfa","\xc8\xe8","\xb1\xb0",
1282"\xe9\xe8","\xd9\xf9","\x9b\x9a","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xd9\xd8","\\/",
1283"\xd1\xf1","\xa6\xb6","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xaf\xae","\xc2\xe2","\xc0\xe0",".,","<>","\x0\x0","\x0\x0"
1284};
1285
1286/* Laos */
1287static const char main_key_la[MAIN_LEN][2] =
1288{
1289"\xd\xd","\xa2\xd1","\x9f\xd2","\xc2\xd3","\x96\xd4","\xb8\xcc","\xb9\xbc","\x84\xd5","\x95\xd6","\x88\xd7","\x82\xd8","\x8a\xd9","\xcd\xcd",
1290"\xbb\xbb","\xc4\xd0","\xb3\xb3","\x9e_","\xb0+","\xb4\xb4","\xb5\xb5","\xa3\xae","\x99\x99","\x8d\xbd","\x9a-","\xa5}",
1291"\xb1\xb1","\xab;","\x81.","\x94,","\xc0:","\xc9\xca","\xc8\xcb","\xb2!","\xaa?","\xa7%","\x87=","\xdc\xdd",
1292"\x9c\xad","\x9b(","\xc1\xaf","\xad\xad","\xb6\xb6","\xb7\xb7","\x97\xc6","\xa1`","\xc3$","\x9d)","<>","\x0\x0","\x0\x0"
1293};
1294
1295/* Latin American */
1296static const char main_key_latam[MAIN_LEN][2] =
1297{
1298"|\xb0","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","\xbf\xa1",
1299"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","QW","+*",
1300"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","{[","}]",
1301"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1302};
1303
1304/* Latin American, Eliminate dead keys */
1305static const char main_key_latam_nodeadkeys[MAIN_LEN][2] =
1306{
1307"|\xb0","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","\xbf\xa1",
1308"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","`^","+*",
1309"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","\xb4\xa8","\xe7\xc7",
1310"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1311};
1312
1313/* Latin American, Sun dead keys */
1314static const char main_key_latam_sundeadkeys[MAIN_LEN][2] =
1315{
1316"|\xb0","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","\xbf\xa1",
1317"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\x0\x1","+*",
1318"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","\x3\x4","}]",
1319"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1320};
1321
1322/* Lithuania */
1323static const char main_key_lt[MAIN_LEN][2] =
1324{
1325"`~","\xb1\xa1","\xe8\xc8","\xea\xca","\xec\xcc","\xe7\xc7","\xb9\xa9","\xf9\xd9","\xfe\xde","\xfe(","\xd2)","-_","\xbe\xae",
1326"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1327"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1328"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\xaa\xac","\x0\x0","\x0\x0"
1329};
1330
1331/* Lithuania, Standard */
1332static const char main_key_lt_std[MAIN_LEN][2] =
1333{
1334"`~","!1","-2","/3",";4",":5",",6",".7","=8","(9",")0","?+","xX",
1335"\xb1\xa1","\xbe\xae","eE","rR","tT","yY","uU","iI","oO","pP","\xe7\xc7","wW",
1336"aA","sS","dD","\xb9\xa9","gG","hH","jJ","kK","lL","\xf9\xd9","\xec\xcc","qQ",
1337"zZ","\xfe\xde","cC","vV","bB","nN","mM","\xe8\xc8","fF","\xea\xca","<>","\x0\x0","\x0\x0"
1338};
1339
1340/* Lithuania, US keyboard with Lithuanian letters */
1341static const char main_key_lt_us[MAIN_LEN][2] =
1342{
1343"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1344"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1345"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1346"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\xaa\xac","\x0\x0","\x0\x0"
1347};
1348
1349/* Lithuania, IBM (LST 1205-92) */
1350static const char main_key_lt_ibm[MAIN_LEN][2] =
1351{
1352"`~","!1","\"2","/3",";4",":5",",6",".7","?8","(9",")0","_-","+=",
1353"\xb1\xa1","\xbe\xae","eE","rR","tT","yY","uU","iI","oO","pP","\xe7\xc7","\xfe\xd2",
1354"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf9\xd9","\xec\xcc","\\|",
1355"zZ","\xfe\xde","cC","vV","bB","nN","mM","\xe8\xc8","\xb9\xa9","\xea\xca","<>","\x0\x0","\x0\x0"
1356};
1357
1358/* Latvia, Apostrophe (') variant */
1359static const char main_key_lv_apostrophe[MAIN_LEN][2] =
1360{
1361"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1362"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1363"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","\x4\"","\\|",
1364"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
1365};
1366
1367/* Latvia, Tilde (~) variant */
1368static const char main_key_lv_tilde[MAIN_LEN][2] =
1369{
1370"\x4~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1371"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1372"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1373"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
1374};
1375
1376/* Latvia, F-letter (F) variant */
1377static const char main_key_lv_fkey[MAIN_LEN][2] =
1378{
1379"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1380"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1381"aA","sS","dD","\x4\x4","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1382"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
1383};
1384
1385/* Macedonia */
1386static const char main_key_mk[MAIN_LEN][2] =
1387{
1388"P~","1!","2\xfe","3\xd2","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1389"\xa9\xb9","\xaa\xba","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xa5\xb5","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xa2\xb2",
1390"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xa8\xb8","\xcb\xeb","\xcc\xec","\xde\xfe","\xac\xbc","\xd6\xf6",
1391"\xda\xfa","\xaf\xbf","\xc3\xe3","\xd7\xf7","\xc2\xe2","\xce\xee","\xcd\xed",",;",".:","/?","<>","\x0\x0","\x0\x0"
1392};
1393
1394/* Macedonia, Eliminate dead keys */
1395static const char main_key_mk_nodeadkeys[MAIN_LEN][2] =
1396{
1397"`~","1!","2\xfe","3\xd2","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1398"\xa9\xb9","\xaa\xba","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xa5\xb5","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xa2\xb2",
1399"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xa8\xb8","\xcb\xeb","\xcc\xec","\xde\xfe","\xac\xbc","\xd6\xf6",
1400"\xda\xfa","\xaf\xbf","\xc3\xe3","\xd7\xf7","\xc2\xe2","\xce\xee","\xcd\xed",",;",".:","/?","<>","\x0\x0","\x0\x0"
1401};
1402
1403/* Malta */
1404static const char main_key_mt[MAIN_LEN][2] =
1405{
1406"\xe5\xc5","1!","2@","3\xac","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1407"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xf5\xd5","\xb1\xa1",
1408"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1409"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\xbf\xaf","\x0\x0","\x0\x0"
1410};
1411
1412/* Malta, Maltese keyboard with US layout */
1413static const char main_key_mt_us[MAIN_LEN][2] =
1414{
1415"\xe5\xc5","1!","2@","3\xac","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1416"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xf5\xd5","\xb1\xa1",
1417"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\xbf\xaf",
1418"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\xbf\xaf","\x0\x0","\x0\x0"
1419};
1420
1421/* Mongolia */
1422static const char main_key_mn[MAIN_LEN][2] =
1423{
1424"=+","1\xb0","2-","3\"","4\xae","5:","6.","7_","8,","9%","0?","\xc5\xe5","\xdd\xfd",
1425"\xc6\xe6","\xc3\xe3","\xd5\xf5","\xd6\xf6","\xdc\xfc","\xce\xee","\xc7\xe7","\xdb\xfb","\xaf\xae","\xda\xfa","\xcb\xeb","\xdf\xff",
1426"\xca\xea","\xd9\xf9","\xc2\xe2","\xe9\xe8","\xc1\xe1","\xc8\xe8","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd0\xf0","!|",
1427"\xd1\xf1","\xde\xfe","\xa3\xb3","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xd7\xf7","\xc0\xe0","()","\x0\x0","\x0\x0"
1428};
1429
1430/* Norway */
1431static const char main_key_no[MAIN_LEN][2] =
1432{
1433"|\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\\P",
1434"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","WR",
1435"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf8\xd8","\xe6\xc6","'*",
1436"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1437};
1438
1439/* Norway, Eliminate dead keys */
1440static const char main_key_no_nodeadkeys[MAIN_LEN][2] =
1441{
1442"|\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\\`",
1443"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
1444"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf8\xd8","\xe6\xc6","'*",
1445"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1446};
1447
1448/* Norway, Dvorak */
1449static const char main_key_no_dvorak[MAIN_LEN][2] =
1450{
1451"|\xa7","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","+?","\\`",
1452"\xe5\xc5",",;",".:","pP","yY","fF","gG","cC","rR","lL","'*","~^",
1453"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","<>",
1454"\xe6\xc6","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","\xf8\xd8","\x0\x0","\x0\x0"
1455};
1456
1457/* Norway, Northern Saami */
1458static const char main_key_no_smi[MAIN_LEN][2] =
1459{
1460"|\xa7","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","+?","\\`",
1461"\xe1\xc1","\xb9\xa9","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xbf\xbd",
1462"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf8\xd8","\xe6\xc6","\xf0\xd0",
1463"zZ","\xe8\xc8","cC","vV","bB","nN","mM",",;",".:","-_","\xbe\xae","\x0\x0","\x0\x0"
1464};
1465
1466/* Norway, Macintosh */
1467static const char main_key_no_mac[MAIN_LEN][2] =
1468{
1469"|\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","PQ",
1470"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
1471"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf8\xd8","\xe6\xc6","@*",
1472"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1473};
1474
1475/* Norway, Macintosh, eliminate dead keys */
1476static const char main_key_no_mac_nodeadkeys[MAIN_LEN][2] =
1477{
1478"|\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","`\xb4",
1479"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
1480"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf8\xd8","\xe6\xc6","@*",
1481"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1482};
1483
1484/* Poland, qwertz */
1485static const char main_key_pl_qwertz[MAIN_LEN][2] =
1486{
1487"\xff\\","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","+?","'*",
1488"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xbf\xf1","\xb6\xe6",
1489"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xb3\xa3","\xb1\xea","\xf3\xbc",
1490"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1491};
1492
1493/* Portugal */
1494static const char main_key_pt[MAIN_LEN][2] =
1495{
1496"\\|","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","\xab\xbb",
1497"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","+*","QP",
1498"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","\xba\xaa","SR",
1499"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1500};
1501
1502/* Portugal, Eliminate dead keys */
1503static const char main_key_pt_nodeadkeys[MAIN_LEN][2] =
1504{
1505"\\|","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","\xab\xbb",
1506"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","+*","\xb4`",
1507"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","\xba\xaa","~^",
1508"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1509};
1510
1511/* Portugal, Sun dead keys */
1512static const char main_key_pt_sundeadkeys[MAIN_LEN][2] =
1513{
1514"\\|","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","\xab\xbb",
1515"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","+*","\x3\x0",
1516"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","\xba\xaa","\x2\x1",
1517"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1518};
1519
1520/* Portugal, Macintosh */
1521static const char main_key_pt_mac[MAIN_LEN][2] =
1522{
1523"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
1524"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xba\xaa","QP",
1525"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","SR","\\|",
1526"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1527};
1528
1529/* Portugal, Macintosh, eliminate dead keys */
1530static const char main_key_pt_mac_nodeadkeys[MAIN_LEN][2] =
1531{
1532"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
1533"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xba\xaa","\xb4`",
1534"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","~^","\\|",
1535"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1536};
1537
1538/* Portugal, Macintosh, Sun dead keys */
1539static const char main_key_pt_mac_sundeadkeys[MAIN_LEN][2] =
1540{
1541"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
1542"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xba\xaa","\x3\x0",
1543"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","\x2\x1","\\|",
1544"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1545};
1546
1547/* Romania */
1548static const char main_key_ro[MAIN_LEN][2] =
1549{
1550"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1551"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1552"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1553"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\\|","\x0\x0","\x0\x0"
1554};
1555
1556/* Romania, Standard */
1557static const char main_key_ro_std[MAIN_LEN][2] =
1558{
1559"\xfe\xd3","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1560"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe3\xc3","\xee\xce",
1561"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xba\xaa","\xfe\xde","\xe2\xc2",
1562"zZ","xX","cC","vV","bB","nN","mM",",;",".:","/?","\\|","\x0\x0","\x0\x0"
1563};
1564
1565/* Romania, Standard (Commabelow) */
1566static const char main_key_ro_academic[MAIN_LEN][2] =
1567{
1568"\xfe\xd3","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1569"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe3\xc3","\xee\xce",
1570"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\x19\x18","\x1b\x1a","\xe2\xc2",
1571"zZ","xX","cC","vV","bB","nN","mM",",;",".:","/?","\\|","\x0\x0","\x0\x0"
1572};
1573
1574/* Romania, Winkeys */
1575static const char main_key_ro_winkeys[MAIN_LEN][2] =
1576{
1577"][","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","'*",
1578"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe3\xc3","\xee\xce",
1579"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xba\xaa","\xfe\xde","\xe2\xc2",
1580"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1581};
1582
1583/* Russia */
1584static const char main_key_ru[MAIN_LEN][2] =
1585{
1586"\xa3\xb3","1!","2\"","3#","4*","5:","6,","7.","8;","9(","0)","-_","=+",
1587"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1588"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\|",
1589"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","/?","/|","\x0\x0","\x0\x0"
1590};
1591
1592/* Russia, Phonetic */
1593static const char main_key_ru_phonetic[MAIN_LEN][2] =
1594{
1595"\xc0\xe0","1!","2@","3\xa3","4\xb3","5\xdf","6\xff","7&","8*","9(","0)","\x0\x0","\xde\xfe",
1596"\xd1\xf1","\xd7\xf7","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xd9\xf9","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xdd\xfd",
1597"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xca\xea","\xcb\xeb","\xcc\xec",";:","'\"","\xdc\xfc",
1598"\xda\xfa","\xd8\xf8","\xc3\xe3","\xd6\xf6","\xc2\xe2","\xce\xee","\xcd\xed",",<",".>","/?","|\xa6","\x0\x0","\x0\x0"
1599};
1600
1601/* Russia, Typewriter */
1602static const char main_key_ru_typewriter[MAIN_LEN][2] =
1603{
1604"'\"","!1","\xb0""2","/3",";4",":5",",6",".7","_8","?9","%0","-_","=+",
1605"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1606"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","()",
1607"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","\xa3\xb3","/|","\x0\x0","\x0\x0"
1608};
1609
1610/* Russia, Tatar */
1611static const char main_key_ru_tt[MAIN_LEN][2] =
1612{
1613"\xbb\xba","1!","2\"","3\xb0","4;","5%","6:","7?","8*","9(","0)","-_","=+",
1614"\xca\xea","\xe9\xe8","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xd9\xd8","\xda\xfa","\xc8\xe8","\xaf\xae",
1615"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xa3\xa2","\xdc\xfc","\\/",
1616"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\x97\x96","\xc2\xe2","\xc0\xe0",".,","/|","\x0\x0","\x0\x0"
1617};
1618
1619/* Russia, Ossetian */
1620static const char main_key_ru_os[MAIN_LEN][2] =
1621{
1622"\xdc\xfc","1!","2\"","3#","4*","5:","6,","7.","8;","9(","0)","-_","=+",
1623"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1624"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xd5\xd4","\\|",
1625"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","/?","/|","\x0\x0","\x0\x0"
1626};
1627
1628/* Russia, Ossetian, Winkeys */
1629static const char main_key_ru_os_winkeys[MAIN_LEN][2] =
1630{
1631"\xdc\xfc","1!","2\"","3\xb0","4;","5%","6:","7?","8*","9(","0)","-_","=+",
1632"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1633"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xd5\xd4","\\/",
1634"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,","/|","\x0\x0","\x0\x0"
1635};
1636
1637/* Serbia and Montenegro */
1638static const char main_key_cs[MAIN_LEN][2] =
1639{
1640"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
1641"\xa9\xb9","\xaa\xba","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xda\xfa","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xa1\xb1",
1642"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xa8\xb8","\xcb\xeb","\xcc\xec","\xde\xfe","\xab\xbb","\xd6\xf6",
1643"\xd6\xf6","\xaf\xbf","\xc3\xe3","\xd7\xf7","\xc2\xe2","\xce\xee","\xcd\xed",",;",".:","-_","<>","\x0\x0","\x0\x0"
1644};
1645
1646/* Serbia and Montenegro, Z and ZHE swapped */
1647static const char main_key_cs_yz[MAIN_LEN][2] =
1648{
1649"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
1650"\xa9\xb9","\xaa\xba","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xd6\xf6","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xa1\xb1",
1651"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xa8\xb8","\xcb\xeb","\xcc\xec","\xde\xfe","\xab\xbb","\xd6\xf6",
1652"\xda\xfa","\xaf\xbf","\xc3\xe3","\xd7\xf7","\xc2\xe2","\xce\xee","\xcd\xed",",;",".:","-_","<>","\x0\x0","\x0\x0"
1653};
1654
1655/* Slovakia */
1656static const char main_key_sk[MAIN_LEN][2] =
1657{
1658";X","+1","\xb5""2","\xb9""3","\xe8""4","\xbb""5","\xbe""6","\xfd""7","\xe1""8","\xed""9","\xe9""0","=%","QZ",
1659"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfa/","\xe4(",
1660"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf4\"","\xa7!","\xf2)",
1661"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
1662};
1663
1664/* Slovakia, Extended Backslash */
1665static const char main_key_sk_bksl[MAIN_LEN][2] =
1666{
1667";X","+1","\xb5""2","\xb9""3","\xe8""4","\xbb""5","\xbe""6","\xfd""7","\xe1""8","\xed""9","\xe9""0","=%","QZ",
1668"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfa/","\xe4(",
1669"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf4\"","\xa7!","\\|",
1670"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
1671};
1672
1673/* Slovakia, qwerty */
1674static const char main_key_sk_qwerty[MAIN_LEN][2] =
1675{
1676";X","+1","\xb5""2","\xb9""3","\xe8""4","\xbb""5","\xbe""6","\xfd""7","\xe1""8","\xed""9","\xe9""0","=%","QZ",
1677"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfa/","\xe4(",
1678"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf4\"","\xa7!","\xf2)",
1679"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
1680};
1681
1682/* Slovakia, qwerty, extended Backslash */
1683static const char main_key_sk_qwerty_bksl[MAIN_LEN][2] =
1684{
1685";X","+1","\xb5""2","\xb9""3","\xe8""4","\xbb""5","\xbe""6","\xfd""7","\xe1""8","\xed""9","\xe9""0","=%","QZ",
1686"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfa/","\xe4(",
1687"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf4\"","\xa7!","\\|",
1688"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
1689};
1690
1691/* Spain */
1692static const char main_key_es[MAIN_LEN][2] =
1693{
1694"\xba\xaa","1!","2\"","3\xb7","4$","5%","6&","7/","8(","9)","0=","'?","\xa1\xbf",
1695"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","PR","+*",
1696"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","QW","\xe7\xc7",
1697"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1698};
1699
1700/* Spain, Eliminate dead keys */
1701static const char main_key_es_nodeadkeys[MAIN_LEN][2] =
1702{
1703"\xba\xaa","1!","2\"","3\xb7","4$","5%","6&","7/","8(","9)","0=","'?","\xa1\xbf",
1704"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","`^","+*",
1705"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","\xb4\xa8","\xe7\xc7",
1706"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1707};
1708
1709/* Spain, Sun dead keys */
1710static const char main_key_es_sundeadkeys[MAIN_LEN][2] =
1711{
1712"\xba\xaa","1!","2\"","3\xb7","4$","5%","6&","7/","8(","9)","0=","'?","\xa1\xbf",
1713"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\x0\x1","+*",
1714"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","\x3\x4","\xe7\xc7",
1715"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1716};
1717
1718/* Spain, Dvorak */
1719static const char main_key_es_dvorak[MAIN_LEN][2] =
1720{
1721"\xba\xaa","1!","2\"","3\xb7","4$","5%","6&","7/","8(","9)","0=","'?","\xa1\xbf",
1722".:",",;","\xf1\xd1","pP","yY","fF","gG","cC","hH","lL","PR","+*",
1723"aA","oO","eE","uU","iI","dD","rR","tT","nN","sS","QW","\xe7\xc7",
1724"-_","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","<>","\x0\x0","\x0\x0"
1725};
1726
1727/* Sweden, Dvorak */
1728static const char main_key_se_dvorak[MAIN_LEN][2] =
1729{
1730"\xa7\xbd","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","QP",
1731"\xe5\xc5","\xe4\xc4","\xf6\xd6","pP","yY","fF","gG","cC","rR","lL",",;","WR",
1732"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","'*",
1733".:","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","<>","\x0\x0","\x0\x0"
1734};
1735
1736/* Sweden, Russian phonetic */
1737static const char main_key_se_rus[MAIN_LEN][2] =
1738{
1739"\xa3\xb3","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xdf\xff",
1740"\xd1\xf1","\xd7\xf7","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xd9\xf9","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdc\xfc","WR",
1741"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xca\xea","\xcb\xeb","\xcc\xec","\xdb\xfb","\xdd\xfd","\xc0\xe0",
1742"\xda\xfa","\xd8\xf8","\xc3\xe3","\xd6\xf6","\xc2\xe2","\xce\xee","\xcd\xed",",;",".:","-_","\xde\xfe","\x0\x0","\x0\x0"
1743};
1744
1745/* Switzerland */
1746static const char main_key_ch[MAIN_LEN][2] =
1747{
1748"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","RP",
1749"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xe8","W!",
1750"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xe9","\xe4\xe0","$\xa3",
1751"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1752};
1753
1754/* Switzerland, German, eliminate dead keys */
1755static const char main_key_ch_de_nodeadkeys[MAIN_LEN][2] =
1756{
1757"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","^`",
1758"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xe8","\xa8!",
1759"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xe9","\xe4\xe0","$\xa3",
1760"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1761};
1762
1763/* Switzerland, German, Sun dead keys */
1764static const char main_key_ch_de_sundeadkeys[MAIN_LEN][2] =
1765{
1766"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","\x1\x0",
1767"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xe8","\x4!",
1768"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xe9","\xe4\xe0","$\xa3",
1769"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1770};
1771
1772/* Switzerland, French */
1773static const char main_key_ch_fr[MAIN_LEN][2] =
1774{
1775"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","RP",
1776"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe8\xfc","W!",
1777"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xf6","\xe0\xe4","$\xa3",
1778"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1779};
1780
1781/* Switzerland, French, eliminate dead keys */
1782static const char main_key_ch_fr_nodeadkeys[MAIN_LEN][2] =
1783{
1784"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","^`",
1785"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe8\xfc","\xa8!",
1786"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xf6","\xe0\xe4","$\xa3",
1787"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1788};
1789
1790/* Switzerland, French, Sun dead keys */
1791static const char main_key_ch_fr_sundeadkeys[MAIN_LEN][2] =
1792{
1793"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","\x1\x0",
1794"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe8\xfc","\x4!",
1795"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xf6","\xe0\xe4","$\xa3",
1796"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1797};
1798
1799/* Syria, Syriac */
1800static const char main_key_sy_syc[MAIN_LEN][2] =
1801{
1802"\xf.","1!","2\xa","3%","4I","5p","6q","7\xa","8\xbb","9)","0(","-\xab","=+",
1803"\x14""0","(3","\x16""6","):","&=","\x1c@","%A","\x17\x8","\x1e\x4","\x1a\x7","\x13\x3","\x15J",
1804"+1","#4","\x1d""7","\x12;","\x20>","\x10\x11",",\xe0","\"$","!1","\x1f#","\x1b""0","\x6:",
1805"]2","[5","$8","*<","'?","\x0""9",".B","\x18\xac","\x19\xbb","\x7\xbf","<>","\x0\x0","\x0\x0"
1806};
1807
1808/* Syria, Syriac phonetic */
1809static const char main_key_sy_syc_phonetic[MAIN_LEN][2] =
1810{
1811"\xf.","1!","2\xa","3%","4I","5p","6q","7\xa","8\xbb","9)","0(","-\xab","=+",
1812")0","\x18""3","\x16""6","*:",",=","\x1d@","\x1c""A","%\x8","'\x4","&\x7","]\x3","[J",
1813"\x10""1","#4","\x15""7","\x14;","\x13>","\x17\x11","\x1b\xe0","\x1f$","\x20""1","\x1a#","\x1e""0","\x6:",
1814"\x19""2","(5","$8","+<","\x12?","\"9","!B","\x0\xac",".\xbb","\x7\xbf","<>","\x0\x0","\x0\x0"
1815};
1816
1817/* Tajikistan */
1818static const char main_key_tj[MAIN_LEN][2] =
1819{
1820"\xa3\xb3","1!","2\"","3'","4*","5:","6,","7.","8;","9(","0)","-_","=+",
1821"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","[T","\xda\xfa","\xc8\xe8","\xdf\xff",
1822"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\|",
1823"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","/?","|\xa6","\x0\x0","\x0\x0"
1824};
1825
1826/* Sri Lanka */
1827static const char main_key_lk[MAIN_LEN][2] =
1828{
1829"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1830"\x8d\x8e","\x87\x88","\x91\x92","\xbb\xca","\xa7\xa8","\xba\xca","\x8b\x8c","\x89\x8a","\x94\x95","\xb4\xb5","[{","]}",
1831"\x85\x86","\xc3\xc2","\xa9\xaa","\xc6""F","\x9c\x9d","\xc4\x83","\xa2\xa3","\x9a\x9b","\xbd\xc5",";:","'\"","\\|",
1832"\xa4\xa5","\xac\xb3","\xa0\xa1","\xc0V","\xb6\xb7","\xb1\xab","\xb8\xb9",",<",".>","/?","<>","\x0\x0","\x0\x0"
1833};
1834
1835/* Thailand */
1836static const char main_key_th[MAIN_LEN][2] =
1837{
1838"_%","\xe5+","/\xf1","-\xf2","\xc0\xf3","\xb6\xf4","\xd8\xd9","\xd6\xdf","\xa4\xf5","\xb5\xf6","\xa8\xf7","\xa2\xf8","\xaa\xf9",
1839"\xe6\xf0","\xe4\"","\xd3\xae","\xbe\xb1","\xd0\xb8","\xd1\xed","\xd5\xea","\xc3\xb3","\xb9\xcf","\xc2\xad","\xba\xb0","\xc5,",
1840"\xbf\xc4","\xcb\xa6","\xa1\xaf","\xb4\xe2","\xe0\xac","\xe9\xe7","\xe8\xeb","\xd2\xc9","\xca\xc8","\xc7\xab","\xa7.","\xa3\xa5",
1841"\xbc(","\xbb)","\xe1\xa9","\xcd\xce","\xd4\xda","\xd7\xec","\xb7?","\xc1\xb2","\xe3\xcc","\xbd\xc6","<>","\x0\x0","\x0\x0"
1842};
1843
1844/* Thailand, TIS-820.2538 */
1845static const char main_key_th_tis[MAIN_LEN][2] =
1846{
1847"O[","\xdf\xe5","/\xf1","-\xf2","\xc0\xf3","\xb6\xf4","\xd8\xd9","\xd6N","\xa4\xf5","\xb5\xf6","\xa8\xf7","\xa2\xf8","\xaa\xf9",
1848"\xe6\xf0","\xe4\"","\xd3\xae","\xbe\xb1","\xd0\xb8","\xd1\xed","\xd5\xea","\xc3\xb3","\xb9\xcf","\xc2\xad","\xba\xb0","\xc5,",
1849"\xbf\xc4","\xcb\xa6","\xa1\xaf","\xb4\xe2","\xe0\xac","\xe9\xe7","\xe8\xeb","\xd2\xc9","\xca\xc8","\xc7\xab","\xa7.","\xa5\xa3",
1850"\xbc(","\xbb)","\xe1\xa9","\xcd\xce","\xd4\xda","\xd7\xec","\xb7?","\xc1\xb2","\xe3\xcc","\xbd\xc6","<>","\x0\x0","\x0\x0"
1851};
1852
1853/* Thailand, Pattachote */
1854static const char main_key_th_pat[MAIN_LEN][2] =
1855{
1856"_\xdf","=+","\xf2\"","\xf3/","\xf4,","\xf5?","\xd9\xd8","\xf7_","\xf8.","\xf9(","\xf0)","\xf1-","\xf6%",
1857"\xe7\xea","\xb5\xc4","\xc2\xe6","\xcd\xad","\xc3\xc9","\xe8\xd6","\xb4\xbd","\xc1\xab","\xc7\xb6","\xe1\xb2","\xe3\xcf","\xac\xc6",
1858"\xe9\xeb","\xb7\xb8","\xa7\xd3","\xa1\xb3","\xd1\xec","\xd5\xd7","\xd2\xbc","\xb9\xaa","\xe0\xe2","\xe4\xa6","\xa2\xb1","\xe5\xed",
1859"\xba\xae","\xbb\xaf","\xc5\xb0","\xcb\xc0","\xd4\xda","\xa4\xc8","\xca\xce","\xd0\xbf","\xa8\xa9","\xbe\xcc","<>","\x0\x0","\x0\x0"
1860};
1861
1862/* Turkey */
1863static const char main_key_tr[MAIN_LEN][2] =
1864{
1865"\"\\","1!","2'","3^","4+","5%","6&","7/","8(","9)","0=","*?","-_",
1866"qQ","wW","eE","rR","tT","yY","uU","\xb9I","oO","pP","\xbb\xab","\xfc\xdc",
1867"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xba\xaa","i\xa9",",;",
1868"zZ","xX","cC","vV","bB","nN","mM","\xf6\xd6","\xe7\xc7",".:","<>","\x0\x0","\x0\x0"
1869};
1870
1871/* Turkey, (F) */
1872static const char main_key_tr_f[MAIN_LEN][2] =
1873{
1874"+*","1!","2\"","3^","4$","5%","6&","7'","8(","9)","0=","/?","-_",
1875"fF","gG","\xbb\xab","\xb9I","oO","dD","rR","nN","hH","pP","qQ","wW",
1876"uU","i\xa9","eE","aA","\xfc\xdc","tT","kK","mM","lL","yY","\xba\xaa","xX",
1877"jJ","\xf6\xd6","vV","cC","\xe7\xc7","zZ","sS","bB",".:",",;","<>","\x0\x0","\x0\x0"
1878};
1879
1880/* Ukraine */
1881static const char main_key_ua[MAIN_LEN][2] =
1882{
1883"'~","1!","2\"","3#","4*","5:","6,","7.","8;","9(","0)","-_","=+",
1884"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xa7\xb7",
1885"\xc6\xe6","\xa6\xb6","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xa4\xb4","\xad\xbd",
1886"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","/?","/|","\x0\x0","\x0\x0"
1887};
1888
1889/* Ukraine, Phonetic */
1890static const char main_key_ua_phonetic[MAIN_LEN][2] =
1891{
1892"'~","1!","2\"","3#","4*","5:","6,","7.","8;","9(","0)","-_","=+",
1893"\xd1\xf1","\xd7\xf7","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xc9\xc9","\xd5\xf5","\xa6\xb6","\xcf\xef","\xd0\xf0","\xdb\xfb","\xdd\xfd",
1894"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xca\xea","\xcb\xeb","\xcc\xec","\xad\xbd","\xde\xfe","\xc0\xe0",
1895"\xda\xfa","\xd8\xf8","\xc3\xe3","\xd6\xf6","\xc2\xe2","\xce\xee","\xcd\xed","\xa7\xb7","\xa4\xb4","/?","/|","\x0\x0","\x0\x0"
1896};
1897
1898/* Ukraine, Typewriter */
1899static const char main_key_ua_typewriter[MAIN_LEN][2] =
1900{
1901"'\"","!1","\xb0""2","/3",";4",":5",",6",".7","_8","?9","%0","-_","=+",
1902"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xad\xbd",
1903"\xc6\xe6","\xc9\xe9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xa4\xb4","()",
1904"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xa6\xb6","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","\xa7\xb7","/|","\x0\x0","\x0\x0"
1905};
1906
1907/* Ukraine, Winkeys */
1908static const char main_key_ua_winkeys[MAIN_LEN][2] =
1909{
1910"'~","1!","2\"","3\xb0","4;","5%","6:","7?","8*","9(","0)","-_","=+",
1911"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xa7\xb7",
1912"\xc6\xe6","\xa6\xb6","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xa4\xb4","\xad\xbd",
1913"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,","/|","\x0\x0","\x0\x0"
1914};
1915
1916/* Ukraine, Standard RSTU */
1917static const char main_key_ua_rstu[MAIN_LEN][2] =
1918{
1919"'?","!1","\"2","#3",";4",":5",",6",".7","*8","(9",")0","-_","=+",
1920"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xad\xbd",
1921"\xc6\xe6","\xc9\xe9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xa4\xb4","/%",
1922"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xa6\xb6","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","\xa7\xb7","/|","\x0\x0","\x0\x0"
1923};
1924
1925/* Ukraine, Standard RSTU on Russian layout */
1926static const char main_key_ua_rstu_ru[MAIN_LEN][2] =
1927{
1928"'?","!1","\"2","#3",";4",":5",",6",".7","*8","(9",")0","-_","=+",
1929"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1930"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","/%",
1931"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","\xa3\xb3","/|","\x0\x0","\x0\x0"
1932};
1933
1934/* United Kingdom */
1935static const char main_key_gb[MAIN_LEN][2] =
1936{
1937"`\xac","1!","2\"","3\xa3","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1938"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1939"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'@","#~",
1940"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\\|","\x0\x0","\x0\x0"
1941};
1942
1943/* United Kingdom, International (with dead keys) */
1944static const char main_key_gb_intl[MAIN_LEN][2] =
1945{
1946"P\xac","1!","2W","3\xa3","4$","5%","6R","7&","8*","9(","0)","-_","=+",
1947"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1948"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","Q@","#S",
1949"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\\|","\x0\x0","\x0\x0"
1950};
1951
1952/* United Kingdom, Dvorak */
1953static const char main_key_gb_dvorak[MAIN_LEN][2] =
1954{
1955"`~","1!","2\"","3\xa3","4$","5%","6^","7&","8*","9(","0)","[{","]}",
1956"'@",",<",".>","pP","yY","fF","gG","cC","rR","lL","/?","=+",
1957"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","#~",
1958";:","qQ","jJ","kK"