VirtualBox

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

Last change on this file since 48854 was 45101, checked in by vboxsync, 12 years ago

FE/Common/VBoxKeyboard: added US Colemak layout (ends with "k").

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 96.7 KB
Line 
1/* $Id: keyboard-layouts.h 45101 2013-03-20 09:08:45Z 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, Dvorak */
81static const char main_key_us_dvorak[MAIN_LEN][2] =
82{
83"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","[{","]}",
84"'\"",",<",".>","pP","yY","fF","gG","cC","rR","lL","/?","=+",
85"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","\\|",
86";:","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","<>","\x0\x0","\x0\x0"
87};
88
89/* U.S. English, Left handed Dvorak */
90static const char main_key_us_dvorak_l[MAIN_LEN][2] =
91{
92"`~","[{","]}","/?","pP","fF","mM","lL","jJ","4$","3#","2@","1!",
93";:","qQ","bB","yY","uU","rR","sS","oO",".>","6^","5%","=+",
94"-_","kK","cC","dD","tT","hH","eE","aA","zZ","8*","7&","\\|",
95"'\"","xX","gG","vV","wW","nN","iI",",<","0)","9(","<>","\x0\x0","\x0\x0"
96};
97
98/* U.S. English, Right handed Dvorak */
99static const char main_key_us_dvorak_r[MAIN_LEN][2] =
100{
101"`~","1!","2@","3#","4$","jJ","lL","mM","fF","pP","/?","[{","]}",
102"5%","6^","qQ",".>","oO","rR","sS","uU","yY","bB",";:","=+",
103"7&","8*","zZ","aA","eE","hH","tT","dD","cC","kK","-_","\\|",
104"9(","0)","xX",",<","iI","nN","wW","vV","gG","'\"","<>","\x0\x0","\x0\x0"
105};
106
107/* U.S. English, Classic Dvorak */
108static const char main_key_us_dvorak_classic[MAIN_LEN][2] =
109{
110"`~","[{","7&","5%","3#","1!","9(","0)","2@","4$","6^","8*","]}",
111"/?",",<",".>","pP","yY","fF","gG","cC","rR","lL","'\"","=+",
112"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","\\|",
113";:","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","<>","\x0\x0","\x0\x0"
114};
115
116/* U.S. English, Russian phonetic */
117static const char main_key_us_rus[MAIN_LEN][2] =
118{
119"\xa3\xb3","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","\xdf\xff",
120"\xd1\xf1","\xd7\xf7","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xd9\xf9","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xdd\xfd",
121"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xca\xea","\xcb\xeb","\xcc\xec","\xde\xfe","\xc0\xe0","\xdc\xfc",
122"\xda\xfa","\xd8\xf8","\xc3\xe3","\xd6\xf6","\xc2\xe2","\xce\xee","\xcd\xed",",<",".>","/?","<>","\x0\x0","\x0\x0"
123};
124
125/* U.S. English, Colemak */
126static const char main_key_us_col[MAIN_LEN][2] =
127{
128"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
129"qQ","wW","fF","pP","gG","jJ","lL","uU","yY",";:","[{","]}",
130"aA","rR","sS","tT","dD","hH","nN","eE","iI","oO","'\"","\\|",
131"zZ","xX","cC","vV","bB","kK","mM",",<",".>","/?","-_","\x0\x0","\x0\x0"
132};
133
134/* Afghanistan */
135static const char main_key_af[MAIN_LEN][2] =
136{
137"\xd\xf7","\xf1!","\xf2l","\xf3k","\xf4\xb","\xf5j","\xf6\xd7","\xf7\xac","\xf8*","\xf9)","\xf0(","-\xe0","+=",
138"\xd6\xf2","\xd5\xec","\xcb\xed","\xe2\xeb","\xe1\xef","\xda\xf0","\xd9\xee","\xe7\xf1","\xce]","\xcd[","\xcc}","\x86{",
139"\xd4\xc4","\xd3\xc6","\xcc\xea","\xc8\xc5","\xe4\xc3","\xc7\xc2","\xca\xc9","\xe6\xbb","\xe5\xab","\xa9:","\xaf\xbb","\\|",
140"\xd8\xe3","\xd7S","\xd2\x98","\xd1p","\xd0\xc","\xcfT","~\xc1","\xe8>",".<","/\xbf","<>","\x0\x0","\x0\x0"
141};
142
143/* Afghanistan, Pashto */
144static const char main_key_af_ps[MAIN_LEN][2] =
145{
146"\xd\xf7","\xf1!","\xf2l","\xf3k","\xf4\xb","\xf5j","\xf6\xd7","\xf7\xbb","\xf8\xab","\xf9)","\xf0(","-\xe0","+=",
147"\xd6\xf2","\xd5\xec","\xcb\xed","\xe2\xeb","\xe1\xef","\xda\xf0","\xd9\xee","\xe7\xf1","\xce\x81","\xcd\x85","\xcc]","\x86[",
148"\xd4\x9a","\xd3\xc6","\xcc\xea","\xc8~","\xe4\xc3","\xc7\xc2","\xca|","\xe6\xbc","\xe5)","\xa9:","\xab\xbb","\\*",
149"\xcd""8","\xd0""7","\xd2\x98","\xd1!","\xd0\xc","\xcf\x89","\x93$","\xe8\xc","\x96.","/\xbf","<>","\x0\x0","\x0\x0"
150};
151
152/* Afghanistan, Southern Uzbek */
153static const char main_key_af_uz[MAIN_LEN][2] =
154{
155"\xd\xf7","\xf1!","\xf2l","\xf3k","\xf4\xb","\xf5j","\xf6\xd7","\xf7\xac","\xf8*","\xf9)","\xf0(","-\xe0","+=",
156"\xd6\xf2","\xd5\xec","\xcb\xed","\xe2\xeb","\xe1\xef","\xda\xf0","\xd9\xee","\xe7\xf1","\xce]","\xcd[","\xcc}","\x86{",
157"\xd4\xc4","\xd3\xc6","\xcc\xea","\xc8\xd0","\xe4\xc3","\xc7\xc2","\xca\xc9","\xe6\xbb","\xe5\xab","\xa9:","\xaf\xbb","\\|",
158"\xd8\xc9","\xd7\xc7","\xd2\x98","\xd1%","\xd0\xc","\xcfT","~\xc1","\xe8>",".<","/\xbf","<>","\x0\x0","\x0\x0"
159};
160
161/* Arabic */
162static const char main_key_ara[MAIN_LEN][2] =
163{
164"\xd0\xf1","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
165"\xd6\xee","\xd5\xeb","\xcb\xef","\xe2\xec","\xe1\xf9","\xda\xc5","\xd9`","\xe7\xf7","\xce\xd7","\xcd\xbb","\xcc{","\xcf}",
166"\xd4\\","\xd3S","\xea[","\xc8]","\xe4\xf7","\xc7\xc3","\xca\xe0","\xe6\xac","\xe5/","\xe3:","\xd7\"","<>",
167"\xc6~","\xc1\xf2","\xc4\xf0","\xd1\xed","\xfb\xf5","\xe9\xc2","\xc9'","\xe8,","\xd2.","\xd8\xbf","|\xa6","\x0\x0","\x0\x0"
168};
169
170/* Arabic, azerty */
171static const char main_key_ara_azerty[MAIN_LEN][2] =
172{
173"\xd0\xf1","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
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/digits */
180static const char main_key_ara_azerty_digits[MAIN_LEN][2] =
181{
182"\xd0\xf1","&a","\xe9""b","\"c","'d","(e","-f","\xe8g","_h","\xe7i","\xe0`",")\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, digits */
189static const char main_key_ara_digits[MAIN_LEN][2] =
190{
191"\xd0\xf1","a!","b@","c#","d$","e%","f^","g&","h*","i(","`)","-_","=+",
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, Buckwalter */
198static const char main_key_ara_buckwalter[MAIN_LEN][2] =
199{
200"p\xf1","a\xff","b\xff","c\xff","d\xd4","ej","f\xff","g\xc4","h\xd0","i>","`?","-\xe0","=+",
201"\xe2\xff","\xe8\xc4","\xff\xd9","\xd1\xff","\xca\xd7","\xea\xe9","\xef\xff","\xf0\xc5","\xf2\xc3","\xc9\xff","\xffq","\xff\xc6",
202"\xee\xc7","\xd3\xd5","\xcf\xd6","\xe1\xeb","\xda\xff","\xe7\xcd","\xcc\xff","\xe3\xed","\xe4\xff","\xbb\xff","\xc1\xff","\xff\xc2",
203"\xd2\xd8","\xce\xff","\xff\xff","\xcb\xff","\xc8\xff","\xe6\xec","\xe5\xff","\xac\xc5","\xd4\xc3","\xff\xbf","<>","\x0\x0","\x0\x0"
204};
205
206/* Albania */
207static const char main_key_al[MAIN_LEN][2] =
208{
209"\\|","1!","2\"","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
210"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe7\xc7","@'",
211"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xeb\xcb","[{","]}",
212"yY","xX","cC","vV","bB","nN","mM",",;",".:","/?","<>","\x0\x0","\x0\x0"
213};
214
215/* Armenia */
216static const char main_key_am[MAIN_LEN][2] =
217{
218"]\\","\x86V","qA","\x13\x14",",$","\x89&","^%","$\x87","[\xbc",")(","\x85U","g7","rB",
219"sC","\x83S","b2","}M","tD","xH","\x82R","o?","h8","i9","n>","\x81Q",
220"{K","~N","c3","e5","a1","vF","k;","\x7fO","p@","zJ","\x80P","\xbb\xab",
221"j:","d4","yI","uE","f6","l<","\x84T","m=","wG","|L","?\x8a","\x0\x0","\x0\x0"
222};
223
224/* Armenia, Phonetic */
225static const char main_key_am_phonetic[MAIN_LEN][2] =
226{
227"]\\","g7","i9","\x83S","qA","{K","\x82R","\x87\x87","\x80P","yI","sC","-\x15","j:",
228"\x84T","xH","e5","|L","\x7fO","h8","\x82R","k;","\x85U","zJ","m=","n>",
229"a1","}M","d4","\x86V","c3","p@","uE","o?","l<",";\x89","[\"","wG",
230"f6","rB","\x81Q","~N","b2","vF","tD",",\xab","$\xbb","/^","?\x8a","\x0\x0","\x0\x0"
231};
232
233/* Armenia, Eastern */
234static const char main_key_am_eastern[MAIN_LEN][2] =
235{
236"]\\","\x89\xb1","qA","uE","[\xb3",",\xb4","-\xb9",".\x87","\xab(","\xbb)","\x85U","|L","j:",
237"m=","\x82R","g7","\x80P","\x7fO","e5","h8","k;","xH","zJ","yI","{K",
238"a1","}M","d4","\x86V","c3","p@","sC","o?","l<","i9","\x83S","'^",
239"f6","\x81Q","\x84T","~N","b2","vF","tD","wG","rB","n>","<>","\x0\x0","\x0\x0"
240};
241
242/* Armenia, Western */
243static const char main_key_am_western[MAIN_LEN][2] =
244{
245"]\\","\x89\xb1","qA","uE","[\xb3",",\xb4","-\xb9",".\x87","\xab(","\xbb)","\x85U","|L","j:",
246"m=","~N","g7","\x80P","d4","e5","h8","k;","xH","b2","yI","{K",
247"a1","}M","\x7fO","\x86V","o?","p@","sC","\x84T","l<","i9","\x83S","'^",
248"f6","\x81Q","c3","\x82R","zJ","vF","tD","wG","rB","n>","<>","\x0\x0","\x0\x0"
249};
250
251/* Armenia, Alternative Eastern */
252static const char main_key_am_eastern_alt[MAIN_LEN][2] =
253{
254"]\\","\x89\xb1","qA","uE","[\xb3",",\xb4","-\xb9",".\x87","\xab(","\xbb)","\x85U","|L","j:",
255"m=","\x82R","g7","\x80P","\x7fO","e5","h8","k;","xH","zJ","yI","{K",
256"a1","}M","d4","\x86V","\x84T","p@","sC","o?","l<","i9","\x83S","'^",
257"f6","\x81Q","c3","~N","b2","vF","tD","wG","rB","n>","<>","\x0\x0","\x0\x0"
258};
259
260/* Azerbaijan */
261static const char main_key_az[MAIN_LEN][2] =
262{
263"`~","1!","2@","3#","4$","5%","6:","7?","8*","9(","0)","-_","=+",
264"qQ","\xfc\xdc","eE","rR","tT","yY","uU","i\xa9","oO","pP","\xf6\xd6","\xbb\xab",
265"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xb9I","Y\x8f","\\|",
266"zZ","xX","cC","vV","bB","nN","mM","\xe7\xc7","\xba\xaa",".,","<>","\x0\x0","\x0\x0"
267};
268
269/* Azerbaijan, Cyrillic */
270static const char main_key_az_cyrillic[MAIN_LEN][2] =
271{
272"\x0\x0","\x0\x0","2\"","3#","4;","\x0\x0","6:","7?","8*","9(","0)","-_","\x0\x0",
273"\xa8\xb8","\xaf\xae","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xbb\xba","\xda\xfa","\xc8\xe8","\xb9\xb8",
274"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\x9d\x9c","\\|",
275"\xd9\xd8","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\x93\x92","\xc2\xe2","\xe9\xe8",".,","<>","\x0\x0","\x0\x0"
276};
277
278/* Belarus */
279static const char main_key_by[MAIN_LEN][2] =
280{
281"\xa3\xb3","\x0\x0","2\"","\x0\x0","4;","5%","6:","7?","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0",
282"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xae\xbe","\xda\xfa","\xc8\xe8","''",
283"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","/|",
284"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xa6\xb6","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,","|\xa6","\x0\x0","\x0\x0"
285};
286
287/* Belarus, Winkeys */
288static const char main_key_by_winkeys[MAIN_LEN][2] =
289{
290"\xa3\xb3","\x0\x0","2\"","3#","4;","5%","6:","7?","8*","\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/* Belgium */
297static const char main_key_be[MAIN_LEN][2] =
298{
299"\xb2\xb3","&1","\xe9""2","\"3","'4","(5","\xa7""6","\xe8""7","!8","\xe7""9","\xe0""0",")\xb0","-_",
300"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","RW","$*",
301"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","\xb5\xa3",
302"wW","xX","cC","vV","bB","nN",",?",";.",":/","=+","<>","\x0\x0","\x0\x0"
303};
304
305/* Belgium, Eliminate dead keys */
306static const char main_key_be_nodeadkeys[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","^\xa8","$*",
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, Sun dead keys */
315static const char main_key_be_sundeadkeys[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","\x1\x4","$*",
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/* Bangladesh */
324static const char main_key_bd[MAIN_LEN][2] =
325{
326"`~","\xe7!","\xe8@","\xe9#","\xea$","\xeb%","\xec^","\xed&","\xee*","\xef(","\xe6)","-_","=+",
327"\x99\x82","\xaf\xdf","\xa1\xa2","\xaa\xab","\x9f\xa0","\x9a\x9b","\x9c\x9d","\xb9\x9e","\x97\x98","\xdc\xdd","[{","]}",
328"\xc3\xd7","\xc1\xc2","\xbf\xc0","\xac\xad","\xcd""d","\xbe\x85","\x95\x96","\xa4\xa5","\xa6\xa7",";:","'\"","\\|",
329"\x81\x83","\xcb\xcc","\xc7\xc8","\xb0\xb2","\xa8\xa3","\xb8\xb7","\xae\xb6",",<",".>","/?","<>","\x0\x0","\x0\x0"
330};
331
332/* Bangladesh, Probhat */
333static const char main_key_bd_probhat[MAIN_LEN][2] =
334{
335"`~","\xe7!","\xe8@","\xe9#","\xea\xf3","\xeb%","\xec^","\xed\x9e","\xee\xce","\xef(","\xe6)","\xc_","=\xd",
336"\xa6\xa7","\xc2\x8a","\xc0\x88","\xb0\xdc","\x9f\xa0","\x8f\x90","\xc1\x89","\xbf\x87","\x93\x94","\xaa\xab","\xc7\xc8","\xcb\xcc",
337"\xbe\x85","\xb8\xb7","\xa1\xa2","\xa4\xa5","\x97\x98","\xb9\x83","\x9c\x9d","\x95\x96","\xb2\x82",";:","'\"","\\e",
338"\xdf\xaf","\xb6\xdd","\x9a\x9b","\x86\x8b","\xac\xad","\xa8\xa3","\xae\x99",",\xc3","d\x81","\xcd?","<>","\x0\x0","\x0\x0"
339};
340
341/* India */
342static const char main_key_in[MAIN_LEN][2] =
343{
344"J\x12","g\xd","hE","ii","jj","kk","ll","mm","nn","o(","f)","\x3\x3","C\xb",
345"L\x14","H\x10",">\x6","@\x8","B\xa",",-","9\x19","\x17\x18","&'","\x1c\x1d","!\"","<\x1e",
346"K\x13","G\xf","M\x5","?\x7","A\x9","*+","01","\x15\x16","$%","\x1a\x1b","\x1f\x20","I\x11",
347"F\xe","\x2\x1",".#","()","54","23","86",",7",".d","/?","<>","\x0\x0","\x0\x0"
348};
349
350/* India, Bengali */
351static const char main_key_in_ben[MAIN_LEN][2] =
352{
353"\x0\x0","\xe7\xe7","\xe8\xe8","\xe9\xe9","\xea\xea","\xeb\xeb","\xec\xec","\xed\xed","\xee\xee","\xef(","\xe6)","-\x83","\x8b\xc3",
354"\xcc\x94","\xc8\x90","\xbe\x86","\xc0\x88","\xc2\x8a","\xac\xad","\xb9\x99","\x97\x98","\xa6\xa7","\x9c\x9d","\xa1\xa2","\xbc\x9e",
355"\xcb\x93","\xc7\x8f","\xcd\x85","\xbf\x87","\xc1\x89","\xaa\xab","\xb0\xdd","\x95\x96","\xa4\xa5","\x9a\x9b","\x9f\xa0","\\|",
356"zZ","\x82\x81","\xae\xa3","\xa8\xa8","\xac\xac","\xb2\xb2","\xb8\xb6",",\xb7",".d","\xdf\xaf","<>","\x0\x0","\x0\x0"
357};
358
359/* India, Gujarati */
360static const char main_key_in_guj[MAIN_LEN][2] =
361{
362"\x0\x0","\xe7\x8d","\xe8\xc5","\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\xb0","\x95\x96","\xa4\xa5","\x9a\x9b","\x9f\xa0","\xc9\x91",
365"zZ","\x82\x81","\xae\xa3","\xa8\xa8","\xb5\xb5","\xb2\xb3","\xb8\xb6",",\xb7",".d","\xaf?","<>","\x0\x0","\x0\x0"
366};
367
368/* India, Gurmukhi */
369static const char main_key_in_guru[MAIN_LEN][2] =
370{
371"\x0\x0","gg","hh","ii","jj","kk","ll","mm","nn","o(","f)","\x0\x0","\x0\x0",
372"L\x14","H\x10",">\x6","@\x8","B\xa",",-","9\x19","\x17\x18","&'","\x1c\x1d","!\"","<\x1e",
373"K\x13","G\xf","M\x5","?\x7","A\x9","*+","00","\x15\x16","$%","\x1a\x1b","\x1f\x20","\\|",
374"zZ","\x2p",".#","((","55","23","86",",<",".d","/?","<>","\x0\x0","\x0\x0"
375};
376
377/* India, Kannada */
378static const char main_key_in_kan[MAIN_LEN][2] =
379{
380"\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",
381"\xcc\x94","\xc8\x90","\xbe\x86","\xc0\x88","\xc2\x8a","\xac\xad","\xb9\x99","\x97\x98","\xa6\xa7","\x9c\x9d","\xa1\xa2","\xbc\x9e",
382"\xcb\x93","\xc7\x8f","\xcd\x85","\xbf\x87","\xc1\x89","\xaa\xab","\xb0\xb1","\x95\x96","\xa4\xa5","\x9a\x9b","\x9f\xa0","\\|",
383"\xc6\x8e","\x82\x82","\xae\xa3","\xa8\xa8","\xb5\xb4","\xb2\xb3","\xb8\xb6",",\xb7","..","\xaf@","<>","\x0\x0","\x0\x0"
384};
385
386/* India, Malayalam */
387static const char main_key_in_mal[MAIN_LEN][2] =
388{
389"J\x12","g!","h@","i#","j$","k%","l^","m&","n*","o(","f)","-\x3","C\xb",
390"L\x14","H\x10",">\x6","@\x8","B\xa",",-","9\x19","\x17\x18","&'","\x1c\x1d","!\"","\xd\x1e",
391"K\x13","G\xf","M\x5","?\x7","A\x9","*+","01","\x15\x16","$%","\x1a\x1b","\x1f\x20","\\|",
392"F\xe","\x2\x2",".#","((","54","23","86",",7","..","/?","<>","\x0\x0","\x0\x0"
393};
394
395/* India, Oriya */
396static const char main_key_in_ori[MAIN_LEN][2] =
397{
398"\x0\x0","gg","hh","ii","jj","kk","ll","mm","nn","oo","ff","\x3\x3","C\xb",
399"L\x14","H\x10",">\x6","@\x8","B\xa",",-","9\x19","\x17\x18","&'","\x1c\x1d","!\"","<\x1e",
400"K\x13","G\xf","M\x5","?\x7","A\x9","*+","00","\x15\x16","$%","\x1a\x1b","\x1f\x20","\\|",
401"\x0\x0","\x2\x1",".#","((","55","23","86",",7","..","/@","<>","\x0\x0","\x0\x0"
402};
403
404/* India, Tamil Unicode */
405static const char main_key_in_tam_unicode[MAIN_LEN][2] =
406{
407"\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",
408"\x9e\x9e","\xb1\xb1","\xa8\xa8","\x9a\x9a","\xb5\xb5","\xb2\xb2","\xb0\xb0","\xc8\x90","\xca\xcb","\xbf\xc0","\xc1\xc2","\x0\x0",
409"\xaf\xaf","\xb3\xb3","\xa9\xa9","\x95\x95","\xaa\xaa","\xbe\xb4","\xa4\xa4","\xae\xae","\x9f\x9f","\xcd\xcd","\x99\x99","\\|",
410"\xa3\xa3","\x92\x93","\x89\x8a","\x8e\x8f","\xc6\xc7","\x94\xcc","\x85\x86","\x87\x88","\x0\x0","\x0\x0","<>","\x0\x0","\x0\x0"
411};
412
413/* India, Tamil TAB Typewriter */
414static const char main_key_in_tam_TAB[MAIN_LEN][2] =
415{
416"\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",
417"\xeb\xb3","\xf8\xc1","\xef\xb8","\xea\xb2","\xf5\xbe","\xf4\xbd","\xf3\xbc","\xac\xe4","\xae\xaf","\xa4\xa6","R\xa6","\x0\x0",
418"\xf2\xbb","\xf7\xc0","\xf9\xc2","\xe8\xb0","\xf0\xb9","\xa2\xa3","\xee\xb6","\xf1\xba","\xec\xb4","\xf6\xbf","\xe9\xb1","\\|",
419"\xed\xb5","\xe5\xe6","\xe0\xe1","\xe2\xe3","\xaa\xab","\xac\xa3","\xdc\xdd","\xde\xdf","\x0\x0","\x0\x0","<>","\x0\x0","\x0\x0"
420};
421
422/* India, Tamil TSCII Typewriter */
423static const char main_key_in_tam_TSCII[MAIN_LEN][2] =
424{
425"\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",
426"\xbb\x9a","\xc8\xda","\xbf\xd1","\xba\xcd","\xc5\xd7","\xc4\xd6","\xc3\xd5","\xa8\xb3","\xca\xcb","\xa2\xa3","Q\xa3","\x0\x0",
427"\xc2\xd4","\xc7\xd9","\xc9\xdb","\xb8\xcc","\xc0\xd2","P\xa1","\xbe\xd0","\xc1\xd3","\xbc\xce","\xc6\xd8","\xb9\x99","\\|",
428"\xbd\xcf","\xb4\xb5","\xaf\xb0","\xb1\xb2","\xa6\xa7","\xb6\xaa","\xab\xac","\xfe\xae","\x0\x0","\x0\x0","<>","\x0\x0","\x0\x0"
429};
430
431/* India, Tamil */
432static const char main_key_in_tam[MAIN_LEN][2] =
433{
434"\xca\x92","\xe7\xe7","\xe8\xe8","\xe9\xe9","\xea\xea","\xeb\xeb","\xec\xec","\xed\xed","\xee\xee","\xef(","\xf0)","\xf1\x83","\xf2+",
435"\xcc\x94","\xc8\x90","\xbe\x86","\xc0\x88","\xc2\x8a","\x0\x0","\xb9\x99","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x9e\x9e",
436"\xcb\x93","\xc7\x8f","\xcd\x85","\xbf\x87","\xc1\x89","\xaa\xaa","\xb0\xb1","\x95\x95","\xa4\xa4","\x9a\x9a","\x9f\x9f","\\|",
437"\xc6\x8e","\x82\x82","\xae\xa3","\xa8\xa9","\xb5\xb4","\xb2\xb3","\xb8\xb8",",\xb7",".d","\xaf?","<>","\x0\x0","\x0\x0"
438};
439
440/* India, Telugu */
441static const char main_key_in_tel[MAIN_LEN][2] =
442{
443"J\x12","gg","hh","i#","j$","k%","l^","m&","n*","o(","f)","\x3_","C\xb",
444"L\x14","H\x10",">\x6","@\x8","B\xa",",-","9\x19","\x17\x18","&'","\x1c\x1d","!\"","\x1e\x1e",
445"K\x13","G\xf","M\x5","?\x7","A\x9","*+","01","\x15\x16","$%","\x1a\x1b","\x1f\x20","\\|",
446"F\xe","\x2\x1",".#","((","55","23","86",",7","..","/@","<>","\x0\x0","\x0\x0"
447};
448
449/* India, Urdu */
450static const char main_key_in_urd[MAIN_LEN][2] =
451{
452"\xd4\xd4","a!","b@","c#","\xf4$","\xf5%","f^","g&","h*","i(","`)","-_","=+",
453"\xe2\xe1","H\xf9","9\xf7","1\x91","\xcay","\xd2|","!L","\xccV","G)","~O","[{","]}",
454"'\"","\xd3""5","/\x88","Ap","\xaf:","\xbe-",",6","\xa9.","D\x12","\x1b:","''","\\|",
455"\xd2\xd0","4\x98","\x86+","78","((","F\xba","EE","\xcN","\xd4P","/\xbf","<>","\x0\x0","\x0\x0"
456};
457
458/* Bosnia and Herzegovina */
459static const char main_key_ba[MAIN_LEN][2] =
460{
461"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
462"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xb9\xa9","\xf0\xd0",
463"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe8\xc8","\xe6\xc6","\xbe\xae",
464"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
465};
466
467/* Bosnia and Herzegovina, Use Bosnian digraphs */
468static const char main_key_ba_unicode[MAIN_LEN][2] =
469{
470"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
471"\xc9\xc8","\xcc\xcb","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"\xbe\xae","\xc6\xc5","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
474};
475
476/* Bosnia and Herzegovina, US keyboard with Bosnian digraphs */
477static const char main_key_ba_unicodeus[MAIN_LEN][2] =
478{
479"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
480"\xc9\xc8","\xcc\xcb","eE","rR","tT","\xbe\xae","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"zZ","\xc6\xc5","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
483};
484
485/* Bosnia and Herzegovina, US keyboard with Bosnian letters */
486static const char main_key_ba_us[MAIN_LEN][2] =
487{
488"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
489"qQ","wW","eE","rR","tT","yY","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","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
492};
493
494/* Brazil */
495static const char main_key_br[MAIN_LEN][2] =
496{
497"'\"","1!","2@","3#","4$","5%","6W","7&","8*","9(","0)","-_","=+",
498"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","QP","[{",
499"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","SR","]}",
500"zZ","xX","cC","vV","bB","nN","mM",",<",".>",";:","\\|","/?","\x0\x0"
501};
502
503/* Brazil, Eliminate dead keys */
504static const char main_key_br_nodeadkeys[MAIN_LEN][2] =
505{
506"'\"","1!","2@","3#","4$","5%","6\xa8","7&","8*","9(","0)","-_","=+",
507"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","'`","[{",
508"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","~^","]}",
509"zZ","xX","cC","vV","bB","nN","mM",",<",".>",";:","\\|","/?","\x0\x0"
510};
511
512/* Brazil with alternative 102 */
513static const char main_key_br_alt_102[MAIN_LEN][2] =
514{
515"'\"","1!","2@","3#","4$","5%","6W","7&","8*","9(","0)","-_","=+",
516"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","QP","[{",
517"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","SR","]}",
518"zZ","xX","cC","vV","bB","nN","mM",",<",".>",";:","<>","/?","\x0\x0"
519};
520
521/* Brazil with alternative 102, Eliminate dead keys */
522static const char main_key_br_alt_102_nodeadkeys[MAIN_LEN][2] =
523{
524"'\"","1!","2@","3#","4$","5%","6\xa8","7&","8*","9(","0)","-_","=+",
525"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","'`","[{",
526"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","~^","]}",
527"zZ","xX","cC","vV","bB","nN","mM",",<",".>",";:","<>","/?","\x0\x0"
528};
529
530/* Bulgaria */
531static const char main_key_bg[MAIN_LEN][2] =
532{
533"()","1!","2?","3+","4\"","5%","6=","7:","8/","9\xa9","0\xb0","-I",".V",
534",\xd9","\xd5\xf5","\xc5\xe5","\xc9\xe9","\xdb\xfb","\xdd\xfd","\xcb\xeb","\xd3\xf3","\xc4\xe4","\xda\xfa","\xc3\xe3",";\xa7",
535"\xd8\xf8","\xd1\xf1","\xc1\xe1","\xcf\xef","\xd6\xf6","\xc7\xe7","\xd4\xf4","\xce\xee","\xd7\xf7","\xcd\xed","\xde\xfe","'\xf9",
536"\xc0\xe0","\xca\xea","\xdf\xff","\xdc\xfc","\xc6\xe6","\xc8\xe8","\xd0\xf0","\xd2\xf2","\xcc\xec","\xc2\xe2","<>","\x0\x0","\x0\x0"
537};
538
539/* Bulgaria, Phonetic */
540static const char main_key_bg_phonetic[MAIN_LEN][2] =
541{
542"\xde\xfe","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
543"\xd1\xf1","\xd7\xf7","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xdf\xff","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xdd\xfd",
544"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xca\xea","\xcb\xeb","\xcc\xec",";:","'\"","\xc0\xe0",
545"\xda\xfa","\xd8\xf8","\xc3\xe3","\xd6\xf6","\xc2\xe2","\xce\xee","\xcd\xed",",<",".>","/?","<>","\x0\x0","\x0\x0"
546};
547
548/* Myanmar */
549static const char main_key_mm[MAIN_LEN][2] =
550{
551"\x0\x0","A!","BB","CC","DD","EE","FF","GG","HH","I(","@)","-8","RV",
552"**","22",",!",".$","0&","\x17\x18","\x1f\x4","\x2\x3","\x12\x13","\x7\x8","\xd\xe","\xa\x9",
553"))","''","9!","-#","/%","\x15\x16","\x1b\x1b","\x0\x1","\x10\x11","\x5\x6","\xb\xc","NO",
554"LM","76","\x19\xf","\x14\x14","\x17\x17","\x1c\x1c","\x1eP",",Q",".J","/\x1a","<>","\x0\x0","\x0\x0"
555};
556
557/* Canada */
558static const char main_key_ca[MAIN_LEN][2] =
559{
560"#|","1!","2\"","3/","4$","5%","6?","7&","8*","9(","0)","-_","=+",
561"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","RR","[W",
562"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","PP","<>",
563"zZ","xX","cC","vV","bB","nN","mM",",'","..","\xe9\xc9","\xab\xbb","\x0\x0","\x0\x0"
564};
565
566/* Canada, French Dvorak */
567static const char main_key_ca_fr_dvorak[MAIN_LEN][2] =
568{
569"#|","1!","2\"","3/","4$","5%","6?","7&","8*","9(","0)","RR","[W",
570"PP",",'","..","pP","yY","fF","gG","cC","rR","lL","\xe9\xc9","=+",
571"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","<>",
572";:","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","\xab\xbb","\x0\x0","\x0\x0"
573};
574
575/* Canada, French (legacy) */
576static const char main_key_ca_fr_legacy[MAIN_LEN][2] =
577{
578"\xb0\xb0","1!","2\"","3#","4$","5%","6?","7&","8*","9(","0)","-_","=+",
579"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","RR","\xe7\xc7",
580"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","\xe8\xc8","\xe0\xc0",
581"zZ","xX","cC","vV","bB","nN","mM",",'","..","\xe9\xc9","\xf9\xd9","\x0\x0","\x0\x0"
582};
583
584/* Canada, Multilingual */
585static const char main_key_ca_multix[MAIN_LEN][2] =
586{
587"/\\","1!","2@","3#","4$","5%","6?","7&","8*","9(","0)","-_","=+",
588"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","RW","\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, second part */
594static const char main_key_ca_multi_2gr[MAIN_LEN][2] =
595{
596"\x0\xad","\xb9\xa1","\xb2\xb2","\xb3\xa3","\xbc\xa4","\xbd\xc4","\xbe\xc5","\x0\xc6","\x0\xc9","\x0\xb1","\x0\x0","\x0\xbf","[\\",
597"\x0\xd9","\xb3\xa3","\xbd\xbc","\xb6\xae","\xbc\xac","\xfb\xa5","\xfe\xfc","\xfd\xb9","\xf8\xd8","\xfe\xde","\x0X","ST",
598"\xe6\xc6","\xdf\xa7","\xf0\xd0","\x0\xaa","\xbf\xbd","\xb1\xa1","32","\xa2\xa2","@?","QY","\x0Z","\\U",
599"\x0\x0","\x0\x0","\xa2\xa9","\xd2\xd0","\xd3\xd1","Ij","\xb5\xba","\xaf\xd7","\xb7\xf7","\x0V","<\xa6","\x0\x0","\x0\x0"
600};
601
602/* Canada, Inuktitut */
603static const char main_key_ca_ike[MAIN_LEN][2] =
604{
605"{u","\x95""1","I2","P3","\x83""4","f5","\x85""6","\xbb""7","\xd0""8","\xea""9",">0","-_","]=",
606"\x8f\x8b","\x3""1","\x7f""F","m\x96","Nq","\xefs","\xa5u","\xc2\xa4","\xd5\xa0","(\xa6","\xa1\x5","V\x1e",
607"\x91\x8d","\x5""3","\x81H","oU","P(","\xf1)","\xa7*","\xc4W","\xd7\xa2",";:","'\"","\\|",
608"\x93\x90","\xa""8","\x83K","r?","U|","\xf4\xc7","\xaa\xda",",<",".>","-Y","yw","\x0\x0","\x0\x0"
609};
610
611/* Congo, Democratic Republic of the */
612static const char main_key_cd[MAIN_LEN][2] =
613{
614"`~","&1","\x1""2","\x0""3","(4","{5","}6",")7","\x2""8","\xc""9","\x8""0","-_","=+",
615"aA","wW","eE","rR","tT","yY","uU","iI","oO","pP","[\x90","*^",
616"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","T\x86","\"\\",
617"zZ","xX","cC","vV","bB","nN",",.",";:","!?","'/","\\|","\x0\x0","\x0\x0"
618};
619
620/* Czechia */
621static const char main_key_cz[MAIN_LEN][2] =
622{
623";X","+1","\xec""2","\xb9""3","\xe8""4","\xf8""5","\xbe""6","\xfd""7","\xe1""8","\xed""9","\xe9""0","=%","QZ",
624"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfa/",")(",
625"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf9\"","\xa7!","W'",
626"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
627};
628
629/* Czechia, With <|> key */
630static const char main_key_cz_bksl[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!","\\|",
635"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
636};
637
638/* Czechia, qwerty */
639static const char main_key_cz_qwerty[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","yY","uU","iI","oO","pP","\xfa/",")(",
643"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf9\"","\xa7!","W'",
644"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
645};
646
647/* Czechia, qwerty, extended Backslash */
648static const char main_key_cz_qwerty_bksl[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!","\\|",
653"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
654};
655
656/* Denmark */
657static const char main_key_dk[MAIN_LEN][2] =
658{
659"\xbd\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","QP",
660"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","WR",
661"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","\xf8\xd8","'*",
662"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
663};
664
665/* Denmark, Eliminate dead keys */
666static const char main_key_dk_nodeadkeys[MAIN_LEN][2] =
667{
668"\xbd\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xb4`",
669"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
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/* Netherlands */
675static const char main_key_nl[MAIN_LEN][2] =
676{
677"@\xa7","1!","2\"","3#","4$","5%","6&","7_","8(","9)","0'","/?","\xb0S",
678"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","WR","*|",
679"aA","sS","dD","fF","gG","hH","jJ","kK","lL","+\xb1","'`","<>",
680"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-=","][","\x0\x0","\x0\x0"
681};
682
683/* Bhutan */
684static const char main_key_bt[MAIN_LEN][2] =
685{
686"\x9\xa","!\x4","\"\x5","#\x6","$H","%p","&\x8","'8","(4",")<","\x20=","\x14\x7f","\xd\x11",
687"@\x90","A\x91","B\x92","D\x94","r\x80","t\x84","z{","|}","E\x95","F\x96","G\x97","I\x99",
688"O\x9f","P\xa0","Q\xa1","S\xa3","T\xa4","U\xa5","V\xa6","X\xa8","Y\xa9","Z\xaa","[\xab","]\xad",
689"^\xae","_\xaf","`q","a\xb1","b\xb2","c\xb3","d\xb4","f\xb6","g\xb7","h\xb8","\xd\x11","\x0\x0","\x0\x0"
690};
691
692/* Estonia */
693static const char main_key_ee[MAIN_LEN][2] =
694{
695"ZS","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","QP",
696"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfc\xdc","\xf5\xd5",
697"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
698"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
699};
700
701/* Estonia, Eliminate dead keys */
702static const char main_key_ee_nodeadkeys[MAIN_LEN][2] =
703{
704"^~","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","'`",
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/* Iran */
711static const char main_key_ir[MAIN_LEN][2] =
712{
713"\xd\xf7","\xf1!","\xf2l","\xf3k","\xf4\xfc","\xf5j","\xf6\xd7","\xf7\xac","\xf8*","\xf9)","\xf0(","-\xe0","=+",
714"\xd6\xf2","\xd5\xec","\xcb\xed","\xe2\xeb","\xe1\xef","\xda\xf0","\xd9\xee","\xe7\xf1","\xce]","\xcd[","\xcc}","\x86{",
715"\xd4\xc4","\xd3\xc6","\xcc\xea","\xc8\xc5","\xe4\xc3","\xc7\xc2","\xca\xc9","\xe6\xbb","\xe5\xab","\xa9:","\xaf\xbb","\\|",
716"\xd8\xe3","\xd7S","\xd2\x98","\xd1p","\xd0\xc","\xcfT","~\xc1","\xe8>",".<","/\xbf","<>","\x0\x0","\x0\x0"
717};
718
719/* Iran, Kurdish, Latin Q */
720static const char main_key_ir_ku[MAIN_LEN][2] =
721{
722"\"\\","1!","2'","3^","4+","5%","6&","7/","8(","9)","0=","*?","-_",
723"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","xX","\xfb\xdb",
724"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xba\xaa","\xee\xce",",;",
725"zZ","xX","cC","vV","bB","nN","mM","\xea\xca","\xe7\xc7",".:","<>","\x0\x0","\x0\x0"
726};
727
728/* Iran, Kurdish, (F) */
729static const char main_key_ir_ku_f[MAIN_LEN][2] =
730{
731"+*","1!","2\"","3^","4$","5%","6&","7'","8(","9)","0=","/?","-_",
732"fF","gG","xX","iI","oO","dD","rR","nN","hH","pP","qQ","wW",
733"\xfb\xdb","\xee\xce","eE","aA","uU","tT","kK","mM","lL","yY","\xba\xaa","xX",
734"jJ","\xea\xca","vV","cC","\xe7\xc7","zZ","sS","bB",".:",",;","<>","\x0\x0","\x0\x0"
735};
736
737/* Iran, Kurdish, Arabic-Latin */
738static const char main_key_ir_ku_ara[MAIN_LEN][2] =
739{
740"\xd\xf7","1!","2@","3#","4$","5%","6^","7&","8*","9)","0(","-\xe0","=+",
741"\xe2X","\xe8X","\xd5\xe7","\xd1\x95","\xca\xd7","\xcc\xce","\xc6\xc1","\xcd\xd9","\xc6\xc4","~\xcb","]}","[{",
742"\xc7\xc2","\xd3\xd4","\xcf\xd0","\xe1\xc5","\xaf\xda","\xe7\xc","\x98\xc3","\xa9\xe3","\xe4\xb5","\xbb:","'\"","\\|",
743"\xd2\xd6","\xce\xd5","\xcc\x86","\xa4\xd8","\xc8I","\xe6\xc9","\xe5\xe0","\xac>",".<","/\xbf","<>","\x0\x0","\x0\x0"
744};
745
746/* Faroe Islands */
747static const char main_key_fo[MAIN_LEN][2] =
748{
749"\xbd\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","QP",
750"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xf0\xd0",
751"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","\xf8\xd8","'*",
752"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
753};
754
755/* Finland */
756static const char main_key_fi[MAIN_LEN][2] =
757{
758"\xa7\xbd","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","WR",
760"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
761"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
762};
763
764/* Finland, Eliminate dead keys */
765static const char main_key_fi_nodeadkeys[MAIN_LEN][2] =
766{
767"\xa7\xbd","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xb4`",
768"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
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, Northern Saami */
774static const char main_key_fi_smi[MAIN_LEN][2] =
775{
776"|\xa7","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","+?","\\`",
777"\xe1\xc1","\xb9\xa9","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xbf\xbd",
778"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","\xf0\xd0",
779"zZ","\xe8\xc8","cC","vV","bB","nN","mM",",;",".:","-_","\xbe\xae","\x0\x0","\x0\x0"
780};
781
782/* Finland, Macintosh */
783static const char main_key_fi_mac[MAIN_LEN][2] =
784{
785"\xa7\xb0","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xb4`",
786"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
787"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
788"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
789};
790
791/* France */
792static const char main_key_fr[MAIN_LEN][2] =
793{
794"\xb2~","&1","\xe9""2","\"3","'4","(5","-6","\xe8""7","_8","\xe7""9","\xe0""0",")\xb0","=+",
795"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","RW","$\xa3",
796"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
797"wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7","<>","\x0\x0","\x0\x0"
798};
799
800/* France, Eliminate dead keys */
801static const char main_key_fr_nodeadkeys[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","^\xa8","$\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, Sun dead keys */
810static const char main_key_fr_sundeadkeys[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","\x1\x4","$\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, Alternative */
819static const char main_key_fr_oss[MAIN_LEN][2] =
820{
821"\xf8\xd8","&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","RW","$\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, eliminate dead keys */
828static const char main_key_fr_oss_nodeadkeys[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","^\xa8","$\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, Sun dead keys */
837static const char main_key_fr_oss_sundeadkeys[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","\x1\x4","$\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, (Legacy) Alternative */
846static const char main_key_fr_latin9[MAIN_LEN][2] =
847{
848"\xbd\xbc","&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","RW","$\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, eliminate dead keys */
855static const char main_key_fr_latin9_nodeadkeys[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","^\xa8","$\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, Sun dead keys */
864static const char main_key_fr_latin9_sundeadkeys[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","\x1\x4","$\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, Dvorak */
873static const char main_key_fr_dvorak[MAIN_LEN][2] =
874{
875"\xbd\xbc","/1","+2","-3","*4","=5","\\6","(7","`8",")9","\"0","[{","]}",
876":?","\xe0\xc0","\xe9\xc9","gG",".!","hH","vV","cC","mM","kK","\xe8\xc8","zZ",
877"oO","aA","uU","eE","bB","fF","sS","tT","nN","dD","wW","\xf9\xd9",
878"'_","qQ",",;","iI","yY","xX","rR","lL","pP","jJ","\xe7\xc7","\x0\x0","\x0\x0"
879};
880
881/* France, Macintosh */
882static const char main_key_fr_mac[MAIN_LEN][2] =
883{
884"@#","&1","\xe9""2","\"3","'4","(5","\xa7""6","\xe8""7","!8","\xe7""9","\xe0""0",")\xb0","-_",
885"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","RW","$*",
886"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","P\xa3",
887"wW","xX","cC","vV","bB","nN",",?",";.",":/","=+","<>","\x0\x0","\x0\x0"
888};
889
890/* Ghana */
891static const char main_key_gh[MAIN_LEN][2] =
892{
893"`~","1!","2@","3#","4\xb5","5%","6^","7&","8*","9(","0)","-_","=+",
894"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
895"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
896"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
897};
898
899/* Ghana, Akan */
900static const char main_key_gh_akan[MAIN_LEN][2] =
901{
902"`~","1!","2@","3#","4\xb5","5%","6^","7&","8*","9(","0)","-_","=+",
903"[\x90","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
904"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
905"zZ","T\x86","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
906};
907
908/* Ghana, Ewe */
909static const char main_key_gh_ewe[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","T\x86","\x8b\xb2",
913"aA","sS","dD","fF","gG","hH","\x92\x91","kK","lL",";:","'\"","\\|",
914"zZ","xX","KJ","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
915};
916
917/* Ghana, Fula */
918static const char main_key_gh_fula[MAIN_LEN][2] =
919{
920"`~","1!","2@","3#","4\xb5","5%","6^","7&","8*","9(","0)","-_","=+",
921"qQ","\xfc\xdc","eE","rR","tT","yY","uU","iI","oO","pP","\xb4\xb3","\xe7\xe6",
922"aA","sS","W\x8a","fF","gG","hH","jJ","kK","lL","10","\xdd\x8e","\\|",
923"r\x9d","xX","cC","vV","bB","nN","\xf1\xd1",",<","\xe7\xc7","\xba\xaa","<>","\x0\x0","\x0\x0"
924};
925
926/* Ghana, Ga */
927static const char main_key_gh_ga[MAIN_LEN][2] =
928{
929"`~","1!","2@","3#","4\xb5","5%","6^","7&","8*","9(","0)","-_","=+",
930"[\x90","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
931"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
932"zZ","T\x86","KJ","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
933};
934
935/* Georgia */
936static const char main_key_ge[MAIN_LEN][2] =
937{
938"\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",
939"\xe5q","\xec\xed","\xd4""e","\xe0\xe6","\xe2\xd7","\xe7y","\xe3u","\xd8i","\xddo","\xdep","[{","]}",
940"\xd0""a","\xe1\xe8","\xd3""d","\xe4""f","\xd2g","\xf0h","\xef\xdf","\xd9k","\xdal",";:","'\"","\\|",
941"\xd6\xeb","\xeex","\xea\xe9","\xd5v","\xd1""b","\xdcn","\xdbm",",<",".>","/?","\xab\xbb","\x0\x0","\x0\x0"
942};
943
944/* Georgia, Russian */
945static const char main_key_ge_ru[MAIN_LEN][2] =
946{
947"^~","1!","2@","3#","4;","5:","6,","7.","8*","9(","0)","-_","#|",
948"\xe6q","\xeaw","\xe3""e","\xd9r","\xd4t","\xdcy","\xd2u","\xe8i","\xeco","\xd6p","\xee[","\xef]",
949"\xe4""a","\xd7s","\xd5""d","\xd0""f","\xdeg","\xe0h","\xddj","\xdak","\xd3l","\xdf;","\xeb%","\\|",
950"\xedz","\xe9x","\xe1""c","\xdbv","\xd8""b","\xe2n","\xe5m","\xd1<","\xe7>","\xf0?","\xab\xbb","\x0\x0","\x0\x0"
951};
952
953/* Germany */
954static const char main_key_de[MAIN_LEN][2] =
955{
956"R\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","QP",
957"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
958"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
959"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
960};
961
962/* Germany, Dead acute */
963static const char main_key_de_deadacute[MAIN_LEN][2] =
964{
965"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","Q`",
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 grave acute */
972static const char main_key_de_deadgraveacute[MAIN_LEN][2] =
973{
974"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","QP",
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, Eliminate dead keys */
981static const char main_key_de_nodeadkeys[MAIN_LEN][2] =
982{
983"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","\xb4`",
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, acute replaced by apostrophe */
990static const char main_key_de_nodeadkeys_noacute[MAIN_LEN][2] =
991{
992"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","\x27`",
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, Dvorak */
999static const char main_key_de_dvorak[MAIN_LEN][2] =
1000{
1001"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","+*","<>",
1002"\xfc\xdc",",;",".:","pP","yY","fF","gG","cC","tT","zZ","?\xdf","/\\",
1003"aA","oO","eE","iI","uU","hH","dD","rR","nN","sS","lL","-_",
1004"\xf6\xd6","qQ","jJ","kK","xX","bB","mM","wW","vV","#'","\xe4\xc4","\x0\x0","\x0\x0"
1005};
1006
1007/* Germany, Neostyle */
1008static const char main_key_de_neo[MAIN_LEN][2] =
1009{
1010"R\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","-_","QP",
1011"qQ","vV","lL","cC","wW","kK","hH","gG","fF","jJ","\xdf?","+*",
1012"uU","iI","aA","eE","oO","sS","nN","rR","tT","dD","yY","#'",
1013"\xf6\xd6","\xfc\xdc","\xe4\xc4","pP","zZ","bB","mM",",;",".:","xX","<>","\x0\x0","\x0\x0"
1014};
1015
1016/* Germany, paragraph */
1017static const char main_key_de_para[MAIN_LEN][2] =
1018{
1019"R\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","\xdf?","QP",
1020"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
1021"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
1022"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1023};
1024
1025/* Germany, Dead acute, paragraph */
1026static const char main_key_de_deadacute_para[MAIN_LEN][2] =
1027{
1028"^\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","\xdf?","Q`",
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 grave acute, paragraph */
1035static const char main_key_de_deadgraveacute_para[MAIN_LEN][2] =
1036{
1037"^\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","\xdf?","QP",
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, Eliminate dead keys, paragraph */
1044static const char main_key_de_nodeadkeys_para[MAIN_LEN][2] =
1045{
1046"^\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","\xdf?","\xb4`",
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, acute replaced by apostrophe, paragraph */
1053static const char main_key_de_nodeadkeys_noacute_para[MAIN_LEN][2] =
1054{
1055"^\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","\xdf?","\x27`",
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, Dvorak, paragraph */
1062static const char main_key_de_dvorak_para[MAIN_LEN][2] =
1063{
1064"^\xb0","1!","2\"","3\xb6","4$","5%","6&","7/","8(","9)","0=","+*","<>",
1065"\xfc\xdc",",;",".:","pP","yY","fF","gG","cC","tT","zZ","?\xdf","/\\",
1066"aA","oO","eE","iI","uU","hH","dD","rR","nN","sS","lL","-_",
1067"\xf6\xd6","qQ","jJ","kK","xX","bB","mM","wW","vV","#'","\xe4\xc4","\x0\x0","\x0\x0"
1068};
1069
1070/* Germany, Sun dead keys */
1071static const char main_key_de_sun[MAIN_LEN][2] =
1072{
1073"^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","\x3\x0",
1074"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
1075"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
1076"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1077};
1078
1079/* Greece */
1080static const char main_key_gr[MAIN_LEN][2] =
1081{
1082"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1083";:","\xf3\xd2","\xe5\xc5","\xf1\xd1","\xf4\xd4","\xf5\xd5","\xe8\xc8","\xe9\xc9","\xef\xcf","\xf0\xd0","[{","]}",
1084"\xe1\xc1","\xf2\xd2","\xe4\xc4","\xf6\xd6","\xe3\xc3","\xe7\xc7","\xee\xce","\xea\xca","\xeb\xcb","QW","'\"","\\|",
1085"\xe6\xc6","\xf7\xd7","\xf8\xd8","\xf9\xd9","\xe2\xc2","\xed\xcd","\xec\xcc",",<",".>","/?","\xab\xbb","\x0\x0","\x0\x0"
1086};
1087
1088/* Greece, Eliminate dead keys */
1089static const char main_key_gr_nodeadkeys[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",";:","'\"","\\|",
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, Polytonic */
1098static const char main_key_gr_polytonic[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","SW","]\xff",
1102"\xe1\xc1","\xf2\xd2","\xe4\xc4","\xf6\xd6","\xe3\xc3","\xe7\xc7","\xee\xce","\xea\xca","\xeb\xcb","Q\x13","P\x14","\\|",
1103"\xe6\xc6","\xf7\xd7","\xf8\xd8","\xf9\xd9","\xe2\xc2","\xed\xcd","\xec\xcc",",<",".>","/?","\xab\xbb","\x0\x0","\x0\x0"
1104};
1105
1106/* Hungary */
1107static const char main_key_hu[MAIN_LEN][2] =
1108{
1109"0\xa7","1'","2\"","3+","4!","5%","6/","7=","8(","9)","\xf6\xd6","\xfc\xdc","\xf3\xd3",
1110"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xf5\xd5","\xfa\xda",
1111"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xc9","\xe1\xc1","\xfb\xdb",
1112"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","\xed\xcd","\x0\x0","\x0\x0"
1113};
1114
1115/* Hungary, qwerty */
1116static const char main_key_hu_qwerty[MAIN_LEN][2] =
1117{
1118"\xed\xcd","1'","2\"","3+","4!","5%","6/","7=","8(","9)","\xf6\xd6","\xfc\xdc","\xf3\xd3",
1119"qQ","wW","eE","rR","tT","yY","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"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","<>","\x0\x0","\x0\x0"
1122};
1123
1124/* Hungary, 101/qwertz/comma/Dead keys */
1125static const char main_key_hu_101_qwertz_comma_dead[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","zZ","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"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","<>","\x0\x0","\x0\x0"
1131};
1132
1133/* Hungary, 102/qwerty/comma/Dead keys */
1134static const char main_key_hu_102_qwerty_comma_dead[MAIN_LEN][2] =
1135{
1136"0\xa7","1'","2\"","3+","4!","5%","6/","7=","8(","9)","\xf6\xd6","\xfc\xdc","\xf3\xd3",
1137"qQ","wW","eE","rR","tT","yY","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"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","\xed\xcd","\x0\x0","\x0\x0"
1140};
1141
1142/* Iceland */
1143static const char main_key_is[MAIN_LEN][2] =
1144{
1145"\xb0\xa8","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","\xf6\xd6","-_",
1146"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xf0\xd0","'?",
1147"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","Q\xc4","+*",
1148"zZ","xX","cC","vV","bB","nN","mM",",;",".:","\xfe\xde","<>","\x0\x0","\x0\x0"
1149};
1150
1151/* Iceland, Sun dead keys */
1152static const char main_key_is_Sundeadkeys[MAIN_LEN][2] =
1153{
1154"\x1\xb0","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","\xf6\xd6","\x3\x0",
1155"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfc\xdc","+*",
1156"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#\xb4",
1157"zZ","xX","cC","vV","bB","nN","mM",",;",".:","\xfe\xde","<>","\x0\x0","\x0\x0"
1158};
1159
1160/* Iceland, Eliminate dead keys */
1161static const char main_key_is_nodeadkeys[MAIN_LEN][2] =
1162{
1163"^\xb0","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","\xf6\xd6","'`",
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, Macintosh */
1170static const char main_key_is_mac[MAIN_LEN][2] =
1171{
1172"\xa3\xa7","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","\xf6\xd6","-_",
1173"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xf0\xd0","'?",
1174"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","QW","+*",
1175"zZ","xX","cC","vV","bB","nN","mM",",;",".:","\xfe\xde","<>","\x0\x0","\x0\x0"
1176};
1177
1178/* Israel */
1179static const char main_key_il[MAIN_LEN][2] =
1180{
1181";~","1!","2@","3#","4$","5%","6^","7&","8*","9)","0(","-_","=+",
1182"/Q","'W","\xf7""E","\xf8R","\xe0T","\xe8Y","\xe5U","\xefI","\xedO","\xf4P","]}","[{",
1183"\xf9""A","\xe3S","\xe2""D","\xeb""F","\xf2G","\xe9H","\xe7J","\xecK","\xeaL","\xf3:",",\"","\\\\",
1184"\xe6Z","\xf1X","\xe1""C","\xe4V","\xf0""B","\xeeN","\xf6M","\xfa>","\xf5<",".?","<>","\x0\x0","\x0\x0"
1185};
1186
1187/* Israel, lyx */
1188static const char main_key_il_lyx[MAIN_LEN][2] =
1189{
1190";~","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","9)","0(","-\xbe","\x0\x0",
1191"//","''","\xf7\xb8","\xf8\xbc","\xe0\xe","\xe8\xf","\xe5\xb9","\xef\xef","\xed\xed","\xf4\xb7","]}","[{",
1192"\xf9\xb0","\xe3\xbc","\xe2\xe2","\xeb\xeb","\xf2\xc2","\xe9\xc1","\xe7\xb4","\xec\xaa","\xea\xea","\xf3:",",\"","\\|",
1193"\xe6\xe6","\xf1\xb6","\xe1\xbb","\xe4\xb1","\xf0\xb2","\xee\xb3","\xf6\xb5","\xfa>","\xf5<",".?","<>","\x0\x0","\x0\x0"
1194};
1195
1196/* Israel, Phonetic */
1197static const char main_key_il_phonetic[MAIN_LEN][2] =
1198{
1199"\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","=+",
1200"\xf7\xf7","\xe5\xe5","\xe0\xe0","\xf8\xf8","\xfa\xe8","\xf2\xf2","\xe5\xe5","\xe9\xe9","\xf1\xf1","\xf4\xf3","\x0\x0","\x0\x0",
1201"\xe0\xe0","\xf9\xf9","\xe3\xe3","\xf4\xf3","\xe2\xe2","\xe4\xe4","\xe9\xe9","\xeb\xea","\xec\xec","\x0\x0","\x0\x0","\\|",
1202"\xe6\xe6","\xe7\xe7","\xf6\xf5","\xe5\xe5","\xe1\xe1","\xf0\xef","\xee\xed","\x0\x0","\x0\x0","\x0\x0","<>","\x0\x0","\x0\x0"
1203};
1204
1205/* Italy */
1206static const char main_key_it[MAIN_LEN][2] =
1207{
1208"\\|","1!","2\"","3\xa3","4$","5%","6&","7/","8(","9)","0=","'?","\xec^",
1209"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe8\xe9","+*",
1210"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf2\xe7","\xe0\xb0","\xf9\xa7",
1211"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1212};
1213
1214/* Italy, Macintosh */
1215static const char main_key_it_mac[MAIN_LEN][2] =
1216{
1217"@#","&1","\"2","'3","(4","\xe7""5","\xe8""6",")7","\xa3""8","\xe0""9","\xe9""0","-_","=+",
1218"qQ","zZ","eE","rR","tT","yY","uU","iI","oO","pP","\xec^","$*",
1219"aA","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","\xa7\xb0",
1220"wW","xX","cC","vV","bB","nN",",?",";.",":/","\xf2!","<>","\x0\x0","\x0\x0"
1221};
1222
1223/* Japan */
1224static const char main_key_jp[MAIN_LEN][2] =
1225{
1226"\x0\x0","1!","2\"","3#","4$","5%","6&","7'","8(","9)","0~","-=","^~",
1227"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","@`","[{",
1228"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";+",":*","]}",
1229"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\\_","\\|"
1230};
1231
1232/* Kyrgyzstan */
1233static const char main_key_kg[MAIN_LEN][2] =
1234{
1235"\xa3\xb3","1!","2\"","3\xb0","4;","5%","6:","7?","8*","9(","0)","-_","=+",
1236"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1237"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\/",
1238"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,","/|","\x0\x0","\x0\x0"
1239};
1240
1241/* Cambodia */
1242static const char main_key_kh[MAIN_LEN][2] =
1243{
1244"\xab\xbb","\xe1!","\xe2\xd7","\xe3\"","\xe4\xdb","\xe5%","\xe6\xcd","\xe7\xd0","\xe8\xcf","\xe9(","\xe0)","\xa5\xcc","\xb2=",
1245"\x86\x88","\xb9\xba","\xc1\xc2","\x9a\xac","\x8f\x91","\x99\xbd","\xbb\xbc","\xb7\xb8","\xc4\xc5","\x95\x97","\xc0\xbf","\xaa\xa7",
1246"\xb6\xff","\x9f\xc3","\x8a\x8c","\x90\x92","\x84\xa2","\xa0\xc7","\xd2\x89","\x80\x82","\x9b\xa1","\xbe\xfe","\xcb\xc9","\xae\xad",
1247"\x8b\x8d","\x81\x83","\x85\x87","\x9c\xfd","\x94\x96","\x93\x8e","\x98\xc6","\xfc\xfb","\xd4\xd5","\xca?","<>","\x0\x0","\x0\x0"
1248};
1249
1250/* Kazakhstan */
1251static const char main_key_kz[MAIN_LEN][2] =
1252{
1253"()","\xfe!","\xd9\xd8","\xa6\xb6","\xa3\xa2","\x93\x92",",;",".:","\xaf\xae","\xb1\xb0","\x9b\x9a","\xe9\xe8","\xbb\xba",
1254"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1255"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\/",
1256"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","\xb0?","<>","\x0\x0","\x0\x0"
1257};
1258
1259/* Kazakhstan, Russian with Kazakh */
1260static const char main_key_kz_ruskaz[MAIN_LEN][2] =
1261{
1262"\xa3\xb3","1!","2\"","3\xb0","4;","5%","6:","7?","8*","9(","0)","-_","=+",
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",".,","<>","\x0\x0","\x0\x0"
1266};
1267
1268/* Kazakhstan, Kazakh with Russian */
1269static const char main_key_kz_kazrus[MAIN_LEN][2] =
1270{
1271"\xa3\xb3","1!","2\"","3\xb0","4;","5%","6:","7?","8*","9(","0)","-_","=+",
1272"\xca\xea","\xa3\xa2","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\x93\x92","\xda\xfa","\xc8\xe8","\xb1\xb0",
1273"\xe9\xe8","\xd9\xf9","\x9b\x9a","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xd9\xd8","\\/",
1274"\xd1\xf1","\xa6\xb6","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xaf\xae","\xc2\xe2","\xc0\xe0",".,","<>","\x0\x0","\x0\x0"
1275};
1276
1277/* Laos */
1278static const char main_key_la[MAIN_LEN][2] =
1279{
1280"\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",
1281"\xbb\xbb","\xc4\xd0","\xb3\xb3","\x9e_","\xb0+","\xb4\xb4","\xb5\xb5","\xa3\xae","\x99\x99","\x8d\xbd","\x9a-","\xa5}",
1282"\xb1\xb1","\xab;","\x81.","\x94,","\xc0:","\xc9\xca","\xc8\xcb","\xb2!","\xaa?","\xa7%","\x87=","\xdc\xdd",
1283"\x9c\xad","\x9b(","\xc1\xaf","\xad\xad","\xb6\xb6","\xb7\xb7","\x97\xc6","\xa1`","\xc3$","\x9d)","<>","\x0\x0","\x0\x0"
1284};
1285
1286/* Latin American */
1287static const char main_key_latam[MAIN_LEN][2] =
1288{
1289"|\xb0","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","\xbf\xa1",
1290"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","QW","+*",
1291"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","{[","}]",
1292"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1293};
1294
1295/* Latin American, Eliminate dead keys */
1296static const char main_key_latam_nodeadkeys[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","`^","+*",
1300"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","\xb4\xa8","\xe7\xc7",
1301"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1302};
1303
1304/* Latin American, Sun dead keys */
1305static const char main_key_latam_sundeadkeys[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","\x0\x1","+*",
1309"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","\x3\x4","}]",
1310"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1311};
1312
1313/* Lithuania */
1314static const char main_key_lt[MAIN_LEN][2] =
1315{
1316"`~","\xb1\xa1","\xe8\xc8","\xea\xca","\xec\xcc","\xe7\xc7","\xb9\xa9","\xf9\xd9","\xfe\xde","\xfe(","\xd2)","-_","\xbe\xae",
1317"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1318"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1319"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\xaa\xac","\x0\x0","\x0\x0"
1320};
1321
1322/* Lithuania, Standard */
1323static const char main_key_lt_std[MAIN_LEN][2] =
1324{
1325"`~","!1","-2","/3",";4",":5",",6",".7","=8","(9",")0","?+","xX",
1326"\xb1\xa1","\xbe\xae","eE","rR","tT","yY","uU","iI","oO","pP","\xe7\xc7","wW",
1327"aA","sS","dD","\xb9\xa9","gG","hH","jJ","kK","lL","\xf9\xd9","\xec\xcc","qQ",
1328"zZ","\xfe\xde","cC","vV","bB","nN","mM","\xe8\xc8","fF","\xea\xca","<>","\x0\x0","\x0\x0"
1329};
1330
1331/* Lithuania, US keyboard with Lithuanian letters */
1332static const char main_key_lt_us[MAIN_LEN][2] =
1333{
1334"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1335"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1336"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1337"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\xaa\xac","\x0\x0","\x0\x0"
1338};
1339
1340/* Lithuania, IBM (LST 1205-92) */
1341static const char main_key_lt_ibm[MAIN_LEN][2] =
1342{
1343"`~","!1","\"2","/3",";4",":5",",6",".7","?8","(9",")0","_-","+=",
1344"\xb1\xa1","\xbe\xae","eE","rR","tT","yY","uU","iI","oO","pP","\xe7\xc7","\xfe\xd2",
1345"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf9\xd9","\xec\xcc","\\|",
1346"zZ","\xfe\xde","cC","vV","bB","nN","mM","\xe8\xc8","\xb9\xa9","\xea\xca","<>","\x0\x0","\x0\x0"
1347};
1348
1349/* Latvia, Apostrophe (') variant */
1350static const char main_key_lv_apostrophe[MAIN_LEN][2] =
1351{
1352"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1353"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1354"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","\x4\"","\\|",
1355"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
1356};
1357
1358/* Latvia, Tilde (~) variant */
1359static const char main_key_lv_tilde[MAIN_LEN][2] =
1360{
1361"\x4~","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",";:","'\"","\\|",
1364"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
1365};
1366
1367/* Latvia, F-letter (F) variant */
1368static const char main_key_lv_fkey[MAIN_LEN][2] =
1369{
1370"`~","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","\x4\x4","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1373"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
1374};
1375
1376/* Macedonia */
1377static const char main_key_mk[MAIN_LEN][2] =
1378{
1379"P~","1!","2\xfe","3\xd2","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1380"\xa9\xb9","\xaa\xba","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xa5\xb5","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xa2\xb2",
1381"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xa8\xb8","\xcb\xeb","\xcc\xec","\xde\xfe","\xac\xbc","\xd6\xf6",
1382"\xda\xfa","\xaf\xbf","\xc3\xe3","\xd7\xf7","\xc2\xe2","\xce\xee","\xcd\xed",",;",".:","/?","<>","\x0\x0","\x0\x0"
1383};
1384
1385/* Macedonia, Eliminate dead keys */
1386static const char main_key_mk_nodeadkeys[MAIN_LEN][2] =
1387{
1388"`~","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/* Malta */
1395static const char main_key_mt[MAIN_LEN][2] =
1396{
1397"\xe5\xc5","1!","2@","3\xac","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1398"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xf5\xd5","\xb1\xa1",
1399"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1400"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\xbf\xaf","\x0\x0","\x0\x0"
1401};
1402
1403/* Malta, Maltese keyboard with US layout */
1404static const char main_key_mt_us[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",";:","'\"","\xbf\xaf",
1409"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\xbf\xaf","\x0\x0","\x0\x0"
1410};
1411
1412/* Mongolia */
1413static const char main_key_mn[MAIN_LEN][2] =
1414{
1415"=+","1\xb0","2-","3\"","4\xae","5:","6.","7_","8,","9%","0?","\xc5\xe5","\xdd\xfd",
1416"\xc6\xe6","\xc3\xe3","\xd5\xf5","\xd6\xf6","\xdc\xfc","\xce\xee","\xc7\xe7","\xdb\xfb","\xaf\xae","\xda\xfa","\xcb\xeb","\xdf\xff",
1417"\xca\xea","\xd9\xf9","\xc2\xe2","\xe9\xe8","\xc1\xe1","\xc8\xe8","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd0\xf0","!|",
1418"\xd1\xf1","\xde\xfe","\xa3\xb3","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xd7\xf7","\xc0\xe0","()","\x0\x0","\x0\x0"
1419};
1420
1421/* Norway */
1422static const char main_key_no[MAIN_LEN][2] =
1423{
1424"|\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\\P",
1425"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","WR",
1426"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf8\xd8","\xe6\xc6","'*",
1427"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1428};
1429
1430/* Norway, Eliminate dead keys */
1431static const char main_key_no_nodeadkeys[MAIN_LEN][2] =
1432{
1433"|\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\\`",
1434"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
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, Dvorak */
1440static const char main_key_no_dvorak[MAIN_LEN][2] =
1441{
1442"|\xa7","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","+?","\\`",
1443"\xe5\xc5",",;",".:","pP","yY","fF","gG","cC","rR","lL","'*","~^",
1444"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","<>",
1445"\xe6\xc6","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","\xf8\xd8","\x0\x0","\x0\x0"
1446};
1447
1448/* Norway, Northern Saami */
1449static const char main_key_no_smi[MAIN_LEN][2] =
1450{
1451"|\xa7","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","+?","\\`",
1452"\xe1\xc1","\xb9\xa9","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xbf\xbd",
1453"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf8\xd8","\xe6\xc6","\xf0\xd0",
1454"zZ","\xe8\xc8","cC","vV","bB","nN","mM",",;",".:","-_","\xbe\xae","\x0\x0","\x0\x0"
1455};
1456
1457/* Norway, Macintosh */
1458static const char main_key_no_mac[MAIN_LEN][2] =
1459{
1460"|\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","PQ",
1461"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
1462"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf8\xd8","\xe6\xc6","@*",
1463"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1464};
1465
1466/* Norway, Macintosh, eliminate dead keys */
1467static const char main_key_no_mac_nodeadkeys[MAIN_LEN][2] =
1468{
1469"|\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","`\xb4",
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/* Poland, qwertz */
1476static const char main_key_pl_qwertz[MAIN_LEN][2] =
1477{
1478"\xff\\","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","+?","'*",
1479"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xbf\xf1","\xb6\xe6",
1480"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xb3\xa3","\xb1\xea","\xf3\xbc",
1481"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1482};
1483
1484/* Portugal */
1485static const char main_key_pt[MAIN_LEN][2] =
1486{
1487"\\|","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","\xab\xbb",
1488"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","+*","QP",
1489"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","\xba\xaa","SR",
1490"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1491};
1492
1493/* Portugal, Eliminate dead keys */
1494static const char main_key_pt_nodeadkeys[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","+*","\xb4`",
1498"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","\xba\xaa","~^",
1499"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1500};
1501
1502/* Portugal, Sun dead keys */
1503static const char main_key_pt_sundeadkeys[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","+*","\x3\x0",
1507"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","\xba\xaa","\x2\x1",
1508"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1509};
1510
1511/* Portugal, Macintosh */
1512static const char main_key_pt_mac[MAIN_LEN][2] =
1513{
1514"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
1515"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xba\xaa","QP",
1516"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","SR","\\|",
1517"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1518};
1519
1520/* Portugal, Macintosh, eliminate dead keys */
1521static const char main_key_pt_mac_nodeadkeys[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","\xb4`",
1525"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","~^","\\|",
1526"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1527};
1528
1529/* Portugal, Macintosh, Sun dead keys */
1530static const char main_key_pt_mac_sundeadkeys[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","\x3\x0",
1534"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","\x2\x1","\\|",
1535"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1536};
1537
1538/* Romania */
1539static const char main_key_ro[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","[{","]}",
1543"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1544"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\\|","\x0\x0","\x0\x0"
1545};
1546
1547/* Romania, Standard */
1548static const char main_key_ro_std[MAIN_LEN][2] =
1549{
1550"\xfe\xd3","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1551"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe3\xc3","\xee\xce",
1552"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xba\xaa","\xfe\xde","\xe2\xc2",
1553"zZ","xX","cC","vV","bB","nN","mM",",;",".:","/?","\\|","\x0\x0","\x0\x0"
1554};
1555
1556/* Romania, Standard (Commabelow) */
1557static const char main_key_ro_academic[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","\x19\x18","\x1b\x1a","\xe2\xc2",
1562"zZ","xX","cC","vV","bB","nN","mM",",;",".:","/?","\\|","\x0\x0","\x0\x0"
1563};
1564
1565/* Romania, Winkeys */
1566static const char main_key_ro_winkeys[MAIN_LEN][2] =
1567{
1568"][","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","'*",
1569"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe3\xc3","\xee\xce",
1570"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xba\xaa","\xfe\xde","\xe2\xc2",
1571"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1572};
1573
1574/* Russia */
1575static const char main_key_ru[MAIN_LEN][2] =
1576{
1577"\xa3\xb3","1!","2\"","3#","4*","5:","6,","7.","8;","9(","0)","-_","=+",
1578"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1579"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\|",
1580"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","/?","/|","\x0\x0","\x0\x0"
1581};
1582
1583/* Russia, Phonetic */
1584static const char main_key_ru_phonetic[MAIN_LEN][2] =
1585{
1586"\xc0\xe0","1!","2@","3\xa3","4\xb3","5\xdf","6\xff","7&","8*","9(","0)","\x0\x0","\xde\xfe",
1587"\xd1\xf1","\xd7\xf7","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xd9\xf9","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xdd\xfd",
1588"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xca\xea","\xcb\xeb","\xcc\xec",";:","'\"","\xdc\xfc",
1589"\xda\xfa","\xd8\xf8","\xc3\xe3","\xd6\xf6","\xc2\xe2","\xce\xee","\xcd\xed",",<",".>","/?","|\xa6","\x0\x0","\x0\x0"
1590};
1591
1592/* Russia, Typewriter */
1593static const char main_key_ru_typewriter[MAIN_LEN][2] =
1594{
1595"'\"","!1","\xb0""2","/3",";4",":5",",6",".7","_8","?9","%0","-_","=+",
1596"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1597"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","()",
1598"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","\xa3\xb3","/|","\x0\x0","\x0\x0"
1599};
1600
1601/* Russia, Tatar */
1602static const char main_key_ru_tt[MAIN_LEN][2] =
1603{
1604"\xbb\xba","1!","2\"","3\xb0","4;","5%","6:","7?","8*","9(","0)","-_","=+",
1605"\xca\xea","\xe9\xe8","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xd9\xd8","\xda\xfa","\xc8\xe8","\xaf\xae",
1606"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xa3\xa2","\xdc\xfc","\\/",
1607"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\x97\x96","\xc2\xe2","\xc0\xe0",".,","/|","\x0\x0","\x0\x0"
1608};
1609
1610/* Russia, Ossetian */
1611static const char main_key_ru_os[MAIN_LEN][2] =
1612{
1613"\xdc\xfc","1!","2\"","3#","4*","5:","6,","7.","8;","9(","0)","-_","=+",
1614"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
1615"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xd5\xd4","\\|",
1616"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","/?","/|","\x0\x0","\x0\x0"
1617};
1618
1619/* Russia, Ossetian, Winkeys */
1620static const char main_key_ru_os_winkeys[MAIN_LEN][2] =
1621{
1622"\xdc\xfc","1!","2\"","3\xb0","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/* Serbia and Montenegro */
1629static const char main_key_cs[MAIN_LEN][2] =
1630{
1631"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
1632"\xa9\xb9","\xaa\xba","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xda\xfa","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","\xa1\xb1",
1633"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xa8\xb8","\xcb\xeb","\xcc\xec","\xde\xfe","\xab\xbb","\xd6\xf6",
1634"\xd6\xf6","\xaf\xbf","\xc3\xe3","\xd7\xf7","\xc2\xe2","\xce\xee","\xcd\xed",",;",".:","-_","<>","\x0\x0","\x0\x0"
1635};
1636
1637/* Serbia and Montenegro, Z and ZHE swapped */
1638static const char main_key_cs_yz[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","\xd6\xf6","\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"\xda\xfa","\xaf\xbf","\xc3\xe3","\xd7\xf7","\xc2\xe2","\xce\xee","\xcd\xed",",;",".:","-_","<>","\x0\x0","\x0\x0"
1644};
1645
1646/* Slovakia */
1647static const char main_key_sk[MAIN_LEN][2] =
1648{
1649";X","+1","\xb5""2","\xb9""3","\xe8""4","\xbb""5","\xbe""6","\xfd""7","\xe1""8","\xed""9","\xe9""0","=%","QZ",
1650"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfa/","\xe4(",
1651"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf4\"","\xa7!","\xf2)",
1652"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
1653};
1654
1655/* Slovakia, Extended Backslash */
1656static const char main_key_sk_bksl[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!","\\|",
1661"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
1662};
1663
1664/* Slovakia, qwerty */
1665static const char main_key_sk_qwerty[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","yY","uU","iI","oO","pP","\xfa/","\xe4(",
1669"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf4\"","\xa7!","\xf2)",
1670"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
1671};
1672
1673/* Slovakia, qwerty, extended Backslash */
1674static const char main_key_sk_qwerty_bksl[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!","\\|",
1679"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_","\\|","\x0\x0","\x0\x0"
1680};
1681
1682/* Spain */
1683static const char main_key_es[MAIN_LEN][2] =
1684{
1685"\xba\xaa","1!","2\"","3\xb7","4$","5%","6&","7/","8(","9)","0=","'?","\xa1\xbf",
1686"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","PR","+*",
1687"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","QW","\xe7\xc7",
1688"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1689};
1690
1691/* Spain, Eliminate dead keys */
1692static const char main_key_es_nodeadkeys[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","`^","+*",
1696"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","\xb4\xa8","\xe7\xc7",
1697"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1698};
1699
1700/* Spain, Sun dead keys */
1701static const char main_key_es_sundeadkeys[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","\x0\x1","+*",
1705"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","\x3\x4","\xe7\xc7",
1706"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1707};
1708
1709/* Spain, Dvorak */
1710static const char main_key_es_dvorak[MAIN_LEN][2] =
1711{
1712"\xba\xaa","1!","2\"","3\xb7","4$","5%","6&","7/","8(","9)","0=","'?","\xa1\xbf",
1713".:",",;","\xf1\xd1","pP","yY","fF","gG","cC","hH","lL","PR","+*",
1714"aA","oO","eE","uU","iI","dD","rR","tT","nN","sS","QW","\xe7\xc7",
1715"-_","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","<>","\x0\x0","\x0\x0"
1716};
1717
1718/* Sweden, Dvorak */
1719static const char main_key_se_dvorak[MAIN_LEN][2] =
1720{
1721"\xa7\xbd","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","QP",
1722"\xe5\xc5","\xe4\xc4","\xf6\xd6","pP","yY","fF","gG","cC","rR","lL",",;","WR",
1723"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","'*",
1724".:","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","<>","\x0\x0","\x0\x0"
1725};
1726
1727/* Sweden, Russian phonetic */
1728static const char main_key_se_rus[MAIN_LEN][2] =
1729{
1730"\xa3\xb3","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xdf\xff",
1731"\xd1\xf1","\xd7\xf7","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xd9\xf9","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdc\xfc","WR",
1732"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xca\xea","\xcb\xeb","\xcc\xec","\xdb\xfb","\xdd\xfd","\xc0\xe0",
1733"\xda\xfa","\xd8\xf8","\xc3\xe3","\xd6\xf6","\xc2\xe2","\xce\xee","\xcd\xed",",;",".:","-_","\xde\xfe","\x0\x0","\x0\x0"
1734};
1735
1736/* Switzerland */
1737static const char main_key_ch[MAIN_LEN][2] =
1738{
1739"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","RP",
1740"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xe8","W!",
1741"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xe9","\xe4\xe0","$\xa3",
1742"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1743};
1744
1745/* Switzerland, German, eliminate dead keys */
1746static const char main_key_ch_de_nodeadkeys[MAIN_LEN][2] =
1747{
1748"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","^`",
1749"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xe8","\xa8!",
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, Sun dead keys */
1755static const char main_key_ch_de_sundeadkeys[MAIN_LEN][2] =
1756{
1757"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","\x1\x0",
1758"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xe8","\x4!",
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, French */
1764static const char main_key_ch_fr[MAIN_LEN][2] =
1765{
1766"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","RP",
1767"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe8\xfc","W!",
1768"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xf6","\xe0\xe4","$\xa3",
1769"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_","<>","\x0\x0","\x0\x0"
1770};
1771
1772/* Switzerland, French, eliminate dead keys */
1773static const char main_key_ch_fr_nodeadkeys[MAIN_LEN][2] =
1774{
1775"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","^`",
1776"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe8\xfc","\xa8!",
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, Sun dead keys */
1782static const char main_key_ch_fr_sundeadkeys[MAIN_LEN][2] =
1783{
1784"\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","\x1\x0",
1785"qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe8\xfc","\x4!",
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/* Syria, Syriac */
1791static const char main_key_sy_syc[MAIN_LEN][2] =
1792{
1793"\xf.","1!","2\xa","3%","4I","5p","6q","7\xa","8\xbb","9)","0(","-\xab","=+",
1794"\x14""0","(3","\x16""6","):","&=","\x1c@","%A","\x17\x8","\x1e\x4","\x1a\x7","\x13\x3","\x15J",
1795"+1","#4","\x1d""7","\x12;","\x20>","\x10\x11",",\xe0","\"$","!1","\x1f#","\x1b""0","\x6:",
1796"]2","[5","$8","*<","'?","\x0""9",".B","\x18\xac","\x19\xbb","\x7\xbf","<>","\x0\x0","\x0\x0"
1797};
1798
1799/* Syria, Syriac phonetic */
1800static const char main_key_sy_syc_phonetic[MAIN_LEN][2] =
1801{
1802"\xf.","1!","2\xa","3%","4I","5p","6q","7\xa","8\xbb","9)","0(","-\xab","=+",
1803")0","\x18""3","\x16""6","*:",",=","\x1d@","\x1c""A","%\x8","'\x4","&\x7","]\x3","[J",
1804"\x10""1","#4","\x15""7","\x14;","\x13>","\x17\x11","\x1b\xe0","\x1f$","\x20""1","\x1a#","\x1e""0","\x6:",
1805"\x19""2","(5","$8","+<","\x12?","\"9","!B","\x0\xac",".\xbb","\x7\xbf","<>","\x0\x0","\x0\x0"
1806};
1807
1808/* Tajikistan */
1809static const char main_key_tj[MAIN_LEN][2] =
1810{
1811"\xa3\xb3","1!","2\"","3'","4*","5:","6,","7.","8;","9(","0)","-_","=+",
1812"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","[T","\xda\xfa","\xc8\xe8","\xdf\xff",
1813"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\|",
1814"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","/?","|\xa6","\x0\x0","\x0\x0"
1815};
1816
1817/* Sri Lanka */
1818static const char main_key_lk[MAIN_LEN][2] =
1819{
1820"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1821"\x8d\x8e","\x87\x88","\x91\x92","\xbb\xca","\xa7\xa8","\xba\xca","\x8b\x8c","\x89\x8a","\x94\x95","\xb4\xb5","[{","]}",
1822"\x85\x86","\xc3\xc2","\xa9\xaa","\xc6""F","\x9c\x9d","\xc4\x83","\xa2\xa3","\x9a\x9b","\xbd\xc5",";:","'\"","\\|",
1823"\xa4\xa5","\xac\xb3","\xa0\xa1","\xc0V","\xb6\xb7","\xb1\xab","\xb8\xb9",",<",".>","/?","<>","\x0\x0","\x0\x0"
1824};
1825
1826/* Thailand */
1827static const char main_key_th[MAIN_LEN][2] =
1828{
1829"_%","\xe5+","/\xf1","-\xf2","\xc0\xf3","\xb6\xf4","\xd8\xd9","\xd6\xdf","\xa4\xf5","\xb5\xf6","\xa8\xf7","\xa2\xf8","\xaa\xf9",
1830"\xe6\xf0","\xe4\"","\xd3\xae","\xbe\xb1","\xd0\xb8","\xd1\xed","\xd5\xea","\xc3\xb3","\xb9\xcf","\xc2\xad","\xba\xb0","\xc5,",
1831"\xbf\xc4","\xcb\xa6","\xa1\xaf","\xb4\xe2","\xe0\xac","\xe9\xe7","\xe8\xeb","\xd2\xc9","\xca\xc8","\xc7\xab","\xa7.","\xa3\xa5",
1832"\xbc(","\xbb)","\xe1\xa9","\xcd\xce","\xd4\xda","\xd7\xec","\xb7?","\xc1\xb2","\xe3\xcc","\xbd\xc6","<>","\x0\x0","\x0\x0"
1833};
1834
1835/* Thailand, TIS-820.2538 */
1836static const char main_key_th_tis[MAIN_LEN][2] =
1837{
1838"O[","\xdf\xe5","/\xf1","-\xf2","\xc0\xf3","\xb6\xf4","\xd8\xd9","\xd6N","\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.","\xa5\xa3",
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, Pattachote */
1845static const char main_key_th_pat[MAIN_LEN][2] =
1846{
1847"_\xdf","=+","\xf2\"","\xf3/","\xf4,","\xf5?","\xd9\xd8","\xf7_","\xf8.","\xf9(","\xf0)","\xf1-","\xf6%",
1848"\xe7\xea","\xb5\xc4","\xc2\xe6","\xcd\xad","\xc3\xc9","\xe8\xd6","\xb4\xbd","\xc1\xab","\xc7\xb6","\xe1\xb2","\xe3\xcf","\xac\xc6",
1849"\xe9\xeb","\xb7\xb8","\xa7\xd3","\xa1\xb3","\xd1\xec","\xd5\xd7","\xd2\xbc","\xb9\xaa","\xe0\xe2","\xe4\xa6","\xa2\xb1","\xe5\xed",
1850"\xba\xae","\xbb\xaf","\xc5\xb0","\xcb\xc0","\xd4\xda","\xa4\xc8","\xca\xce","\xd0\xbf","\xa8\xa9","\xbe\xcc","<>","\x0\x0","\x0\x0"
1851};
1852
1853/* Turkey */
1854static const char main_key_tr[MAIN_LEN][2] =
1855{
1856"\"\\","1!","2'","3^","4+","5%","6&","7/","8(","9)","0=","*?","-_",
1857"qQ","wW","eE","rR","tT","yY","uU","\xb9I","oO","pP","\xbb\xab","\xfc\xdc",
1858"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xba\xaa","i\xa9",",;",
1859"zZ","xX","cC","vV","bB","nN","mM","\xf6\xd6","\xe7\xc7",".:","<>","\x0\x0","\x0\x0"
1860};
1861
1862/* Turkey, (F) */
1863static const char main_key_tr_f[MAIN_LEN][2] =
1864{
1865"+*","1!","2\"","3^","4$","5%","6&","7'","8(","9)","0=","/?","-_",
1866"fF","gG","\xbb\xab","\xb9I","oO","dD","rR","nN","hH","pP","qQ","wW",
1867"uU","i\xa9","eE","aA","\xfc\xdc","tT","kK","mM","lL","yY","\xba\xaa","xX",
1868"jJ","\xf6\xd6","vV","cC","\xe7\xc7","zZ","sS","bB",".:",",;","<>","\x0\x0","\x0\x0"
1869};
1870
1871/* Ukraine */
1872static const char main_key_ua[MAIN_LEN][2] =
1873{
1874"'~","1!","2\"","3#","4*","5:","6,","7.","8;","9(","0)","-_","=+",
1875"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xa7\xb7",
1876"\xc6\xe6","\xa6\xb6","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xa4\xb4","\xad\xbd",
1877"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","/?","/|","\x0\x0","\x0\x0"
1878};
1879
1880/* Ukraine, Phonetic */
1881static const char main_key_ua_phonetic[MAIN_LEN][2] =
1882{
1883"'~","1!","2\"","3#","4*","5:","6,","7.","8;","9(","0)","-_","=+",
1884"\xd1\xf1","\xd7\xf7","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xc9\xc9","\xd5\xf5","\xa6\xb6","\xcf\xef","\xd0\xf0","\xdb\xfb","\xdd\xfd",
1885"\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xca\xea","\xcb\xeb","\xcc\xec","\xad\xbd","\xde\xfe","\xc0\xe0",
1886"\xda\xfa","\xd8\xf8","\xc3\xe3","\xd6\xf6","\xc2\xe2","\xce\xee","\xcd\xed","\xa7\xb7","\xa4\xb4","/?","/|","\x0\x0","\x0\x0"
1887};
1888
1889/* Ukraine, Typewriter */
1890static const char main_key_ua_typewriter[MAIN_LEN][2] =
1891{
1892"'\"","!1","\xb0""2","/3",";4",":5",",6",".7","_8","?9","%0","-_","=+",
1893"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xad\xbd",
1894"\xc6\xe6","\xc9\xe9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xa4\xb4","()",
1895"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xa6\xb6","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","\xa7\xb7","/|","\x0\x0","\x0\x0"
1896};
1897
1898/* Ukraine, Winkeys */
1899static const char main_key_ua_winkeys[MAIN_LEN][2] =
1900{
1901"'~","1!","2\"","3\xb0","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","\xa7\xb7",
1903"\xc6\xe6","\xa6\xb6","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xa4\xb4","\xad\xbd",
1904"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,","/|","\x0\x0","\x0\x0"
1905};
1906
1907/* Ukraine, Standard RSTU */
1908static const char main_key_ua_rstu[MAIN_LEN][2] =
1909{
1910"'?","!1","\"2","#3",";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","\xad\xbd",
1912"\xc6\xe6","\xc9\xe9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xa4\xb4","/%",
1913"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xa6\xb6","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","\xa7\xb7","/|","\x0\x0","\x0\x0"
1914};
1915
1916/* Ukraine, Standard RSTU on Russian layout */
1917static const char main_key_ua_rstu_ru[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","\xdf\xff",
1921"\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","/%",
1922"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","\xa3\xb3","/|","\x0\x0","\x0\x0"
1923};
1924
1925/* United Kingdom */
1926static const char main_key_gb[MAIN_LEN][2] =
1927{
1928"`\xac","1!","2\"","3\xa3","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1929"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1930"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'@","#~",
1931"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\\|","\x0\x0","\x0\x0"
1932};
1933
1934/* United Kingdom, International (with dead keys) */
1935static const char main_key_gb_intl[MAIN_LEN][2] =
1936{
1937"P\xac","1!","2W","3\xa3","4$","5%","6R","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",";:","Q@","#S",
1940"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\\|","\x0\x0","\x0\x0"
1941};
1942
1943/* United Kingdom, Dvorak */
1944static const char main_key_gb_dvorak[MAIN_LEN][2] =
1945{
1946"`~","1!","2\"","3\xa3","4$","5%","6^","7&","8*","9(","0)","[{","]}",
1947"'@",",<",".>","pP","yY","fF","gG","cC","rR","lL","/?","=+",
1948"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_","#~",
1949";:","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ","\\|","\x0\x0","\x0\x0"
1950};
1951
1952/* United Kingdom, Macintosh */
1953static const char main_key_gb_mac[MAIN_LEN][2] =
1954{
1955"`~","1!","2@","3\xa3","4$","5%","6^","7&","8*","9(","0)","-_","=+",
1956"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
1957"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1958"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
1959};
1960
1961/* Uzbekistan */
1962static const char main_key_uz[MAIN_LEN][2] =
1963{
1964"\xa3\xb3","1!","2\"","3#","4;","5%","6:","7?","8*","9(","0)","\xae\xbe","\x9b\x9a",
1965"\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xc8\xe8","\xdf\xff","\x93\x92","\xb3\xb2",
1966"\xc6\xe6","\xda\xfa","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\|",
1967"\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,","/|","\x0\x0","\x0\x0"
1968};
1969
1970/* Vietnam */
1971static const char main_key_vn[MAIN_LEN][2] =
1972{
1973"`~","\xe3\xc3","\xe2\xc2","\xea\xca","\xf4\xd4","P%","a^","S&","Q*","`(","\xf0\xd0","-_","\xab+",
1974"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xb0\xaf","\xa1\xa0",
1975"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
1976"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
1977};
1978
1979/* Japan (PC-98xx Series) */
1980static const char main_key_nec_vndr_jp[MAIN_LEN][2] =
1981{
1982"\x0\x0","1!","2\"","3#","4$","5%","6&","7'","8(","9)","00","-=","^`",
1983"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","@~","[{",
1984"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";+",":*","\\|",
1985"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0_","\x0\x0"
1986};
1987
1988/* Ireland, Ogham */
1989static const char main_key_ie_ogam[MAIN_LEN][2] =
1990{
1991"\x9c\x9c","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0","\x0\x0",
1992"\x8a\x8a","\x95\x95","\x93\x93","\x8f\x8f","\x88\x88","\x98\x98","\x92\x92","\x94\x94","\x91\x91","\x9a\x9a","\x0\x0","\x0\x0",
1993"\x90\x90","\x84\x84","\x87\x87","\x83\x83","\x8c\x8c","\x86\x86","\x97\x97","\x96\x96","\x82\x82","\x0\x0","\x0\x0","\x80\x80",
1994"\x8e\x8e","\x99\x99","\x89\x89","\x8d\x8d","\x81\x81","\x85\x85","\x8b\x8b","\x9c\x9c","\x9b\x9b","\x80\x80","\x9b\x9c","\x0\x0","\x0\x0"
1995};
1996
1997/* Ireland, Ogham IS434 */
1998static const char main_key_ie_ogam_is434[MAIN_LEN][2] =
1999{
2000"`\xac","1!","2\"","3\xa3","4$","5%","6^","7&","8*","9(","0)","-_","=+",
2001"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\x0\x0","\x0\x0",
2002"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\x0\x0","\x0\x0","#~",
2003"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","\\|","\x0\x0","\x0\x0"
2004};
2005
2006/* Maldives */
2007static const char main_key_mv[MAIN_LEN][2] =
2008{
2009"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
2010"\xb0\xa4","\x87\xa2","\xac\xad","\x83\x9c","\x8c\x93","\x94\xa0","\xaa\xab","\xa8\xa9","\xae\xaf","\x95\xf7","[{","]}",
2011"\xa6\xa7","\x90\x81","\x8b\x91","\x8a\xf2","\x8e\xa3","\x80\x99","\x96\x9b","\x86\x9a","\x8d\x85",";:","'\"","\\|",
2012"\x92\xa1","\xd7\x98","\x97\x9d","\x88\xa5","\x84\x9e","\x82\x8f","\x89\x9f","\xac<",".>","/\xbf","|\xa6","\x0\x0","\x0\x0"
2013};
2014
2015/* Esperanto */
2016static const char main_key_epo[MAIN_LEN][2] =
2017{
2018"`~","1!","2\"","3#","4$","5%","6'","7&","8*","9(","0)","-_","=+",
2019"\xfe\xde","\xbc\xac","eE","rR","tT","\xf8\xd8","uU","iI","oO","pP","[{","]}",
2020"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xfd\xdd","\xb6\xa6","\\|",
2021"zZ","\xe6\xc6","cC","vV","bB","nN","mM",",;",".:","/?","<>","\x0\x0","\x0\x0"
2022};
2023
2024/* Nepal */
2025static const char main_key_np[MAIN_LEN][2] =
2026{
2027"=<","gg","hh","ii","jj","kk","ll","mm","nn","oo","fp","-R","=\xc",
2028"\x1f\x20","L\x14","GH","0C","$%","/\x1e","AB","?@","K\x13","*+","\x7\x8","\xf\x10",
2029">\x6","86","&'","\x9\xa","\x17\x18","9\x5","\x1c\x1d","\x15\x16","23",";:","'\"","P\x3",
2030"7\xb","!\"","\x1b\x1a","5\x1",",-","(#",".\x2",",\x19","de","M?","<>","\x0\x0","\x0\x0"
2031};
2032
2033/* Nigeria */
2034static const char main_key_ng[MAIN_LEN][2] =
2035{
2036"`~","1!","2@","3#","4\xa6","5%","6^","7&","8*","9(","0)","-_","=+",
2037"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
2038"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
2039"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
2040};
2041
2042/* Nigeria, Igbo */
2043static const char main_key_ng_igbo[MAIN_LEN][2] =
2044{
2045"`~","1!","2@","3#","4\xa6","5%","6^","7&","8*","9(","0)","-_","=+",
2046"\xcb\xca","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xcd\xcc","]}",
2047"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe5\xe4","'\"","\\|",
2048"zZ","ED","cC","vV","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
2049};
2050
2051/* Nigeria, Yoruba */
2052static const char main_key_ng_yoruba[MAIN_LEN][2] =
2053{
2054"`~","1!","2@","3#","4\xa6","5%","6^","7&","8*","9(","0)","-_","=+",
2055"\xb9\xb8","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
2056"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
2057"zZ","\xcd\xcc","cC","cb","bB","nN","mM",",<",".>","/?","<>","\x0\x0","\x0\x0"
2058};
2059
2060/* Nigeria, Hausa */
2061static const char main_key_ng_hausa[MAIN_LEN][2] =
2062{
2063"`~","1!","2@","3#","4\xa6","5%","6^","7&","8*","9(","0)","-_","=+",
2064"qQ","\xfc\xdc","eE","rR","tT","yY","uU","iI","oO","pP","\xb4\xb3","\xe7\xe6",
2065"aA","sS","W\x8a","fF","gG","hH","jJ","kK","lL","10","\xdd\x8e","\\|",
2066"r\x9d","xX","cC","vV","bB","nN","\xf1\xd1",",<","\xe7\xc7","\xba\xaa","<>","\x0\x0","\x0\x0"
2067};
2068
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette