private void RemoveEmptyEntries (string file)
	{
		try {
			var newFile = file + ".out";
			using (ResXResourceWriter resxWriter = new ResXResourceWriter (newFile)) {
				var resxReader = new ResXResourceReader(file);
				resxReader.UseResXDataNodes = true;
				foreach (DictionaryEntry entry in resxReader) {
					var node = (ResXDataNode) entry.Value;
					if (!string.IsNullOrEmpty (node.GetValue((ITypeResolutionService) null).ToString ())) {
						resxWriter.AddResource (node);
					}
				}
				resxReader.Close ();
			}

			if (new FileInfo (newFile).Length < new FileInfo (file).Length) {
				File.Delete (file);
				File.Move (newFile, file);
			}
			else {
				File.Delete (newFile);
			}
		}
		catch (Exception ex) {
			Console.WriteLine ("{0}: {1}", file, ex.Message);
		}
	}
예제 #2
0
파일: respack.cs 프로젝트: dfr0/moon
	public static int Pack (List<string> files)
	{
		IResourceWriter output = null;
		try {
			if (files [0].EndsWith (".resx")) {
				output = new ResXResourceWriter (files [0]);
			} else {
				output = new ResourceWriter (files [0]);
			}
		} catch {
			Console.WriteLine ("Error creating {0} file", files [0]);
		}
		

		int i = 1;
		while (i < files.Count) {
			string f = files [i++];
			string key;
			string file = f;
			
			if (f.StartsWith ("@")) {
				files.AddRange (System.IO.File.ReadAllLines (f.Substring (1)));
				continue;
			}
			
			int comma = file.IndexOf (',');
			if (comma != -1) {
				key = file.Substring (comma + 1);
				file = file.Substring (0, comma);
			} else {
				key = Path.GetFileName (file);
			}

			
			using (FileStream source = File.OpenRead (file)){
				byte [] buffer = new byte [source.Length];
				source.Read (buffer, 0, (int) source.Length);

				// Sadly, we cant just pass byte arrays to resourcewriter, we need
				// to wrap this on a MemoryStream

				MemoryStream value = new MemoryStream (buffer);

				output.AddResource (Uri.EscapeUriString (key).ToLowerInvariant (), value);
			}
		}

		output.Generate ();
		return 0;
	}
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("Set 2 file names as arguments: source target");

                return;
            }

            if (!File.Exists(args[0]))
            {
                Console.WriteLine("Source file could not be found: " + args[0]);

                return;
            }

            if (File.Exists(args[1]))
            {
                Console.WriteLine("Target file exists: " + args[1]);

                return;
            }

            using (var reader = new XmlTextReader(args[0]))
            {
                using (var writer = new ResXResourceWriter(args[1]))
                {
                    try
                    {
                        while (reader.Read())
                        {
                            if (reader.NodeType == XmlNodeType.Element && reader.Name == "string")
                            {
                                writer.AddResource(reader.GetAttribute("name"), reader.ReadString());
                            }
                        }

                        writer.Generate();

                        Console.WriteLine("Done!");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Something went wrong: " + e.Message);
                    }
                }
            }
        }
예제 #4
0
        private int WriteResource(IResource resource)
        {
            IEmbeddedResource embeddedResource = resource as IEmbeddedResource;

            if (embeddedResource != null)
            {
                try
                {
                    byte[] buffer   = embeddedResource.Value;
                    string fileName = Path.Combine(_outputDirectory, resource.Name);

                    if (resource.Name.EndsWith(".resources"))
                    {
                        fileName = Path.ChangeExtension(fileName, ".resx");
                        using (MemoryStream ms = new MemoryStream(embeddedResource.Value))
                        {
                            ResXResourceWriter    resxw  = new ResXResourceWriter(fileName);
                            IResourceReader       reader = new ResourceReader(ms);
                            IDictionaryEnumerator en     = reader.GetEnumerator();
                            while (en.MoveNext())
                            {
                                resxw.AddResource(en.Key.ToString(), en.Value);
                            }
                            reader.Close();
                            resxw.Close();
                        }
                    }
                    else                     // other embedded resource
                    {
                        if (buffer != null)
                        {
                            using (Stream stream = File.Create(fileName))
                            {
                                stream.Write(buffer, 0, buffer.Length);
                            }
                        }
                    }
                    AddToProjectFiles(fileName);
                    return(0);
                }
                catch (Exception ex)
                {
                    WriteLine("Error in " + resource.Name + " : " + ex.Message);
                }
            }

            return(WriteOtherResource(resource));
        }
예제 #5
0
        public void LoadProfile(string sNgonngu, Form f_Form, string s_DirectoryPathResource)
        {
            i = 0;
            ResourceManager res = new ResourceManager(@"MEDISOFT2011.DESKTOP.Language." + f_Form.Name + sNgonngu, GetType().Assembly);

            foreach (Control c in f_Form.Controls)
            {
                GetAllControl(c, res);
            }
            s_Tmp[i, 0] = "Title";
            s_Tmp[i, 1] = f_Form.Text;
            s_Tmp[i, 2] = res.GetString("Title");
            int j = 0;

            try
            {
                using (ResXResourceWriter resx = new ResXResourceWriter(s_DirectoryPathResource + f_Form.Name + sNgonngu + ".resx"))
                {
                    for (j = 0; j <= i; j++)
                    {
                        if (s_Tmp[j, 2] == null || s_Tmp[j, 2] == "")
                        {
                            try
                            {
                                resx.AddResource(s_Tmp[j, 0], s_Tmp[j, 1]);
                            }
                            catch
                            {
                            }
                        }
                        else
                        {
                            try
                            {
                                resx.AddResource(s_Tmp[j, 0], s_Tmp[j, 2]);
                            }
                            catch
                            {
                            }
                        }
                    }
                    resx.Close();
                }
            }
            catch
            {
            }
        }
예제 #6
0
        public override void LoadProfile(string sNgonngu)
        {
            i = 0;
            ResourceManager res = new ResourceManager(@"MEDISOFT2011.DESKTOP.Language" + base.frmBase.Name + sNgonngu, GetType().Assembly);

            foreach (Control c in base.frmBase.Controls)
            {
                GetAllControl(c, res);
            }
            s_Tmp[i, 0] = "Title";
            s_Tmp[i, 1] = base.frmBase.Text;
            s_Tmp[i, 2] = res.GetString("Title");
            int j = 0;

            try
            {
                using (ResXResourceWriter resx = new ResXResourceWriter(@"D:\AnhVu\Medisoft_English\MEDISOFT2011.DESKTOP\Language\" + base.frmBase.Name + sNgonngu + ".resx"))
                {
                    for (j = 0; j <= i; j++)
                    {
                        if (s_Tmp[j, 2] == null || s_Tmp[j, 2] == "")
                        {
                            try
                            {
                                resx.AddResource(s_Tmp[j, 0], s_Tmp[j, 1]);
                            }
                            catch
                            {
                            }
                        }
                        else
                        {
                            try
                            {
                                resx.AddResource(s_Tmp[j, 0], s_Tmp[j, 2]);
                            }
                            catch
                            {
                            }
                        }
                    }
                    resx.Close();
                }
            }
            catch
            {
            }
        }
예제 #7
0
        //read and write resource
        private void ReadResource(string s_DirectoryPath)
        {
            string [,] ars_Resource = new string[80, 2];
            int i = 0;
            //folder have resource
            string        path = s_DirectoryPath + @"\";
            DirectoryInfo dir  = new DirectoryInfo(path);

            foreach (FileInfo fileInfo in dir.GetFiles())
            {
                if (fileInfo.Name.IndexOf("_vn.resx") != -1)
                {
                    //get value resource
                    i = 0;
                    ResXResourceReader reader = new ResXResourceReader(fileInfo.FullName);
                    if (reader != null)
                    {
                        IDictionaryEnumerator id = reader.GetEnumerator();
                        foreach (DictionaryEntry d in reader)
                        {
                            if (d.Value != null)
                            {
                                ars_Resource[i, 0] = d.Key.ToString();
                                ars_Resource[i, 1] = d.Value.ToString();
                                i++;
                            }
                        }

                        reader.Close();
                        if (i == 0)
                        {
                            continue;
                        }

                        //  set value resource
                        int j = 0;
                        using (ResXResourceWriter resx = new ResXResourceWriter(fileInfo.FullName.Substring(0, fileInfo.FullName.Length - 8) + "_en.resx"))
                        {
                            for (j = 0; j < i; j++)
                            {
                                resx.AddResource(ars_Resource[j, 0], ars_Resource[j, 1]);
                            }
                            resx.Close();
                        }
                    }
                }
            }
        }
        public void Process()
        {
            var dirs = Directory.GetDirectories(From, "lang", SearchOption.AllDirectories);

            foreach (var dir in dirs)
            {
                var dirName = Path.GetDirectoryName(dir).Split(Path.DirectorySeparatorChar).Last();
                var files   = Directory.EnumerateFiles(dir);
                foreach (var file in files)
                {
                    var n       = Path.GetFileName(file);
                    var resname = "Webmin_" + dirName + "." + n + ".resx";
                    Directory.CreateDirectory(To + "\\" + dirName);
                    var resourceWriter = new ResXResourceWriter(To + "\\" + dirName + "\\" + resname);
                    var info           = new FileInfo(file);

                    var dico = new Dictionary <string, string>();
                    var str  = File.ReadAllLines(file).Where(r => !string.IsNullOrWhiteSpace(r) && !r.Trim().StartsWith("#"));

                    foreach (var s in str)
                    {
                        var split = s.Split('=');
                        if (split.Count() < 2)
                        {
                            continue;
                        }
                        if (split.Count() > 2)
                        {
                            continue;
                        }

                        if (!dico.ContainsKey(split[0]))
                        {
                            dico.Add(split[0], split[1]);
                        }
                    }

                    foreach (var lst in dico)
                    {
                        resourceWriter.AddResource(lst.Key, lst.Value);
                    }


                    resourceWriter.Generate();
                    resourceWriter.Close();
                }
            }
        }
예제 #9
0
        public void create_resource_configuration()
        {
            using (ResXResourceWriter resx = new ResXResourceWriter(Directory.GetCurrentDirectory() + @"\Resources\\cui_data_inject.resx"))
            {
                try
                {
                    resx.AddResource("client.id", client_id_txt.Text);
                    resx.AddResource("client.secret", client_Secret_txt.Text);
                }

                catch (Exception ex)
                {
                    Console.WriteLine(ex.StackTrace);
                }
            }
        }
예제 #10
0
 public static void Write(string filename, IEnumerable <ResXEntry> entries, Option options = Option.None)
 {
     using (var resx = new ResXResourceWriter(filename))
     {
         foreach (var entry in entries)
         {
             var node = new ResXDataNode(entry.Id, entry.Value.Replace("\r", string.Empty).Replace("\n", Environment.NewLine));
             if (!options.HasFlag(Option.SkipComments) && !string.IsNullOrWhiteSpace(entry.Comment))
             {
                 node.Comment = entry.Comment.Replace("\r", string.Empty).Replace("\n", Environment.NewLine);
             }
             resx.AddResource(node);
         }
         resx.Close();
     }
 }
예제 #11
0
        public void WriteToFile(IEnumerable <ResXNode> nodes)
        {
            using (var writer = new ResXResourceWriter(Path)) {
                foreach (var item in nodes)
                {
                    writer.AddResource(item);
                }

                foreach (var item in Metadata)
                {
                    writer.AddMetadata(item.Name, GetValue(item));
                }

                writer.Generate();
            }
        }
예제 #12
0
        private void buttonSaveReload_Click(object sender, EventArgs e)
        {
            using (ResXResourceWriter resWriter = new ResXResourceWriter(Auxiliary.ResxFilePath + "Resources.resx"))
            {
                resWriter.AddResource("server", textBoxServer.Text);
                resWriter.AddResource("user", textBoxUser.Text);
                resWriter.AddResource("password", textBoxPwd.Text);
                resWriter.AddResource("database", textBoxDatabase.Text);

                resWriter.AddResource("timeout", globalRes.GetString("timeout"));
                resWriter.AddResource("Resource", "ru");
            }

            result = Auxiliary.States.Reload;
            this.Close();
        }
예제 #13
0
        public void GenerateResxFile(TextWriter textWriter)
        {
            var enumTables = LoadEnumTables();
            var enumValues = LoadEnumValues(enumTables);

            using (ResXResourceWriter writer = new ResXResourceWriter(textWriter))
            {
                foreach (EnumRecord value in enumValues)
                {
                    writer.AddResource(new ResXDataNode(GetDescriptionResKey(value.Name, value.Lookup), value.Description));
                    writer.AddResource(new ResXDataNode(GetLongDescriptionResKey(value.Name, value.Lookup), value.LongDescription));
                }

                writer.Generate();
            }
        }
 public void Flush()
 {
     foreach (var language in Resources)
     {
         using (var fs = new FileStream(CreateResourceName(_filePath, language.Key), FileMode.Create))
             using (var resx = new ResXResourceWriter(fs))
             {
                 foreach (var resource in language.Value)
                 {
                     resx.AddResource(resource.Key, resource.Value);
                 }
                 resx.Generate();
                 fs.Flush(true);
             }
     }
 }
예제 #15
0
        static void ProcessModule(DirectoryInfo dir, String localeName)
        {
            FileInfo resourceFile = new FileInfo(dir.FullName + Path.DirectorySeparatorChar + dir.Name + '.' + localeName + ".resX");

            if (resourceFile.Exists)
            {
                resourceFile.Delete();
            }

            IResourceWriter writer = new ResXResourceWriter(resourceFile.FullName);

            ProcessDirectory(dir, writer, localeName, "");

            writer.Generate();
            writer.Close();
        }
예제 #16
0
        public void Save(string filename, string lang)
        {
            IResourceWriter writer = new ResXResourceWriter(filename);

            foreach (string key in translatedKey.Keys)
            {
                if (translatedKey[key].Translations.ContainsKey(lang))
                {
                    string value = translatedKey[key].Translations[lang];
                    writer.AddResource(key, value + "Hello, world!");
                }
            }

            writer.Generate();
            writer.Close();
        }
예제 #17
0
        private Task SaveResxAsync(string filePath)
        {
            return(Task.Factory.StartNew(() =>
            {
                var rsxw = new ResXResourceWriter(filePath);

                this.Model.AcceptChanges();

                foreach (DAC.ResxTranslatorDataSet.ResxTranslatorTableRow row in this.Model.ResxTranslatorTable)
                {
                    rsxw.AddResource(DAC.ResxTranslatorDataSet.EncodeRow(row));
                }

                rsxw.Close();
            }));
        }
예제 #18
0
파일: Tools.cs 프로젝트: kod3r/il2js
        private void write(string output, CultureInfo culture)
        {
            ResXResourceWriter writer = new ResXResourceWriter(output);

            for (int i = 0; i < this.resources.Count; ++i)
            {
                this.resources[i].Key
                .GetProperty("Culture", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public)
                .SetValue(null, culture, null);
                writer.AddResource(
                    i.ToString(),
                    Serializer.Serialize(
                        this.resources[i].Value.Select(member => this.resources[i].Key.GetProperty(member, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null))));
            }
            writer.Close();
        }
예제 #19
0
        private static void Create(ResourceInfo resource)
        {
            var path = resource.Path;

            using (var fs = File.Create(path))
                using (var writer = new ResXResourceWriter(fs))
                {
                    foreach (var item in resource.Strings)
                    {
                        writer.AddResource(
                            item.Key, item.Value);
                    }
                }

            Console.WriteLine("Created new resource {0}!", path);
        }
예제 #20
0
 protected override void Generate()
 {
     using (var resx = new ResXResourceWriter(Writer)) {
         foreach (var localized_string in Strings)
         {
             foreach (var resource_string in GetResourceStrings(localized_string))
             {
                 if (!HasResourceStringBeenGenerated(resource_string))
                 {
                     MarkResourceStringAsGenerated(resource_string);
                     resx.AddResource(new ResXDataNode(resource_string.Id, resource_string.Translated));
                 }
             }
         }
     }
 }
        private bool TryCreateResXFile(EmbeddedResource embeddedResource, string resourceFilePath)
        {
            List <System.Collections.DictionaryEntry> resourceEntries = new List <System.Collections.DictionaryEntry>();

            using (ResourceReader resourceReader = new ResourceReader(embeddedResource.GetResourceStream()))
            {
                IDictionaryEnumerator enumerator = resourceReader.GetEnumerator();

                while (enumerator.MoveNext())
                {
                    try
                    {
                        resourceEntries.Add(enumerator.Entry);
                    }
                    catch (Exception ex)
                    {
                        this.OnResourceWritingFailure(embeddedResource.Name, ex);

                        if (this.projectNotifier != null)
                        {
                            this.projectNotifier.OnResourceWritingFailure(embeddedResource.Name, ex);
                        }
                    }
                }
            }

            string dirPath = Path.GetDirectoryName(resourceFilePath);

            if (!Directory.Exists(dirPath))
            {
                Directory.CreateDirectory(dirPath);
            }

#if !NET35
            using (ResXResourceWriter resXWriter = new ResXResourceWriter(resourceFilePath, ResourceTypeNameConverter))
#else
            using (ResXResourceWriter resXWriter = new ResXResourceWriter(resourceFilePath))
#endif
            {
                foreach (System.Collections.DictionaryEntry resourceEntry in resourceEntries)
                {
                    resXWriter.AddResource((string)resourceEntry.Key, resourceEntry.Value);
                }
            }

            return(true);
        }
예제 #22
0
        protected string WriteMigration(
            ScaffoldedMigration scaffoldedMigration,
            bool rescaffolding = false,
            bool force         = false,
            string name        = null)
        {
            DebugCheck.NotNull(scaffoldedMigration);

            var userCodeFileName         = scaffoldedMigration.MigrationId + "." + scaffoldedMigration.Language;
            var userCodePath             = Path.Combine(scaffoldedMigration.Directory, userCodeFileName);
            var absoluteUserCodePath     = Path.Combine(ProjectDir.Value(), userCodePath);
            var designerCodeFileName     = scaffoldedMigration.MigrationId + ".Designer." + scaffoldedMigration.Language;
            var designerCodePath         = Path.Combine(scaffoldedMigration.Directory, designerCodeFileName);
            var absoluteDesignerCodePath = Path.Combine(ProjectDir.Value(), designerCodePath);
            var resourcesFileName        = scaffoldedMigration.MigrationId + ".resx";
            var resourcesPath            = Path.Combine(scaffoldedMigration.Directory, resourcesFileName);

            if (rescaffolding && !force)
            {
                if (!string.Equals(scaffoldedMigration.UserCode, File.ReadAllText(absoluteUserCodePath)))
                {
                    Debug.Assert(!string.IsNullOrWhiteSpace(name));

                    Reporter.WriteWarning(string.Format(MyResources.RescaffoldNoForce, name));
                }
            }
            else
            {
                Directory.CreateDirectory(Path.GetDirectoryName(absoluteUserCodePath));
                File.WriteAllText(absoluteUserCodePath, scaffoldedMigration.UserCode, Encoding.UTF8);
            }

            var absoluteResourcesPath = Path.Combine(ProjectDir.Value(), resourcesPath);

            using (var writer = new ResXResourceWriter(absoluteResourcesPath))
            {
                foreach (var i in scaffoldedMigration.Resources)
                {
                    writer.AddResource(i.Key, i.Value);
                }
            }

            Directory.CreateDirectory(Path.GetDirectoryName(absoluteDesignerCodePath));
            File.WriteAllText(absoluteDesignerCodePath, scaffoldedMigration.DesignerCode, Encoding.UTF8);

            return(userCodePath);
        }
예제 #23
0
 public static void RemoveResource(string resEntryKey)
 {
     using (ResXResourceReader reader = new ResXResourceReader(RESOURCES_FILE_NAME)) {
         using (ResXResourceWriter writer = new ResXResourceWriter(RESOURCES_FILE_NAME)) {
             IDictionaryEnumerator de = reader.GetEnumerator();
             while (de.MoveNext())
             {
                 if (!de.Entry.Key.ToString().Equals(resEntryKey, StringComparison.InvariantCultureIgnoreCase))
                 {
                     writer.AddResource(de.Entry.Key.ToString(), (Bitmap)de.Entry.Value);
                 }
             }
             writer.Close();
         }
         reader.Close();
     }
 }
예제 #24
0
        private void SetStrings(DataSet dataSet)
        {
            DataTable table = dataSet.Tables[0];

            for (int i = 1; i < table.Columns.Count; i++)
            {
                Console.WriteLine("Column name {0}", table.Columns[i].ColumnName);
                ResXResourceWriter writer = GetResourceWriter(table.Columns[i].ColumnName);
                foreach (DataRow row in table.Rows)
                {
                    if (row[table.Columns[i]].ToString().Trim() != string.Empty)
                    {
                        writer.AddResource(row[0].ToString(), row[table.Columns[i]].ToString());
                    }
                }
            }
        }
예제 #25
0
        private void WriteResources(string userCodePath, string resourcesPath, IDictionary <string, object> resources)
        {
            DebugCheck.NotEmpty(userCodePath);
            DebugCheck.NotEmpty(resourcesPath);
            DebugCheck.NotNull(resources);

            var absoluteResourcesPath = Path.Combine(_command.Project.GetProjectDir(), resourcesPath);

            _command.Project.EditFile(resourcesPath);

            using (var writer = new ResXResourceWriter(absoluteResourcesPath))
            {
                resources.Each(i => writer.AddResource(i.Key, i.Value));
            }

            _command.Project.AddFile(resourcesPath);
        }
예제 #26
0
        public async Task <string> UpdateProduct(string req)
        {
            string Status = string.Empty;

            try
            {
                string bodyText = await this.Request.Content.ReadAsStringAsync();

                var    data               = JsonConvert.DeserializeObject <Dictionary <string, object> >(JsonConvert.DeserializeObject(bodyText).ToString());
                var    commandData        = ((JObject)data["Productstatus"]).ToObject <Dictionary <string, object> >();
                string ExtendedTrialKey   = commandData["ExtendedTrialKey"] as string;
                string ExtendedTrialValue = commandData["ExtendedTrialValue"] as string;
                string LicensedKey        = commandData["LicensedKey"] as string;
                string LicensedValue      = commandData["LicensedValue"] as string;

                string prevLoginTime = "";
                string prevTrial     = "";

                string             resourcePath = System.Web.Hosting.HostingEnvironment.MapPath("~/ProductMaster.resx");
                ResXResourceReader rsxr         = new ResXResourceReader(resourcePath);
                foreach (DictionaryEntry d in rsxr)
                {
                    if (d.Key.ToString() == "FirstLogin")
                    {
                        prevLoginTime = d.Value.ToString();
                    }
                    if (d.Key.ToString() == "BasicTrial")
                    {
                        prevTrial = d.Value.ToString();
                    }
                    using (ResXResourceWriter resxWriter = new ResXResourceWriter(resourcePath))
                    {
                        resxWriter.AddResource("FirstLogin", prevLoginTime);
                        resxWriter.AddResource("BasicTrial", prevTrial);
                        resxWriter.AddResource("ExtendedTrial", ExtendedTrialValue);
                        resxWriter.AddResource("Licensed", LicensedValue);
                    }
                }
                Status = "Success";
            }
            catch (Exception err)
            {
                Status = err.ToString();
            }
            return(Status);
        }
예제 #27
0
        public ResxFile(ITranslatable source)
        {
            _deleteOnDispose = true;
            Path             = System.IO.Path.GetTempFileName();

            using (var writer = new ResXResourceWriter(Path))
            {
                foreach (var unit in source.GetTranslationUnits())
                {
                    HasStrings = true;
                    writer.AddResource(new ResXDataNode(unit.Id, unit.Source)
                    {
                        Comment = unit.Note
                    });
                }
            }
        }
예제 #28
0
        protected void TranslateFile(string resxFilePath, string locale)
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(resxFilePath);
            XmlNodeList dataNodes = doc.SelectNodes("//root/data");
            int         totalKeys = dataNodes.Count;

            using (ResXResourceReader rr = new ResXResourceReader(resxFilePath))
            {
                // string outputFilePath = String.Format("{0}.{1}.{2}", Path.GetFileNameWithoutExtension(resxFilePath), language.ToString().Substring(0, 2).ToLower(), Path.GetExtension(resxFilePath));
                string outputFilePath = resxFilePath.Replace("resx", "") + locale.ToString().Substring(0, 2).ToLower() + ".resx";
                if (File.Exists(outputFilePath) && SKIP_EXISTING_LOCALES)
                {
                    return;
                }

                using (ResXResourceWriter rw = new ResXResourceWriter(outputFilePath))
                {
                    IDictionaryEnumerator di = rr.GetEnumerator();

                    foreach (DictionaryEntry de in rr)
                    {
                        string key   = de.Key as string;
                        string value = de.Value as string;

                        if (key.StartsWith("$"))
                        {
                            continue;
                        }
                        if (key.StartsWith(">>"))
                        {
                            continue;
                        }

                        if (!String.IsNullOrEmpty(key) && !String.IsNullOrEmpty(value))
                        {
                            string translatedValue = GetTranslatedText(value, locale);
                            rw.AddResource(key, translatedValue);
                        }
                    }

                    rw.Generate();
                }
            }
        }
예제 #29
0
        public override async Task <bool> Save(DecompilerTextView textView)
        {
            EmbeddedResource er = this.Resource as EmbeddedResource;

            if (er != null)
            {
                SaveFileDialog dlg = new SaveFileDialog();
                dlg.InitialFileName = DecompilerTextView.CleanUpName(er.Name);
                dlg.Filters         = new List <FileDialogFilter>()
                {
                    new FileDialogFilter()
                    {
                        Name = "Resources file(*.resources)", Extensions = { "resources" }
                    },
                    new FileDialogFilter()
                    {
                        Name = "Resource XML file(*.resx)", Extensions = { "resx" }
                    }
                };
                var filename = await dlg.ShowAsync(App.Current.MainWindow);

                if (!string.IsNullOrEmpty(filename))
                {
                    Stream s = er.GetResourceStream();
                    s.Position = 0;
                    if (filename.Contains("resources"))
                    {
                        using (var fs = File.OpenWrite(filename)) {
                            s.CopyTo(fs);
                        }
                    }
                    else
                    {
                        using (var writer = new ResXResourceWriter(File.OpenWrite(filename))) {
                            foreach (var entry in new ResourcesFile(s))
                            {
                                writer.AddResource(entry.Key, entry.Value);
                            }
                        }
                    }
                }

                return(true);
            }
            return(false);
        }
        private static void AddResource(string text)
        {
            const string resxFileName = @"c:\projects\outlookcaldavsynchronizer\CalDavSynchronizer.OAuth.Swisscom\Globalization\StringResources.de-DE.resx";
            var          allResources = new ResXResourceSet(resxFileName);

            if (allResources.GetString(text) == null)
            {
                using (var writer = new ResXResourceWriter(resxFileName))
                {
                    foreach (DictionaryEntry existingEntry in allResources)
                    {
                        writer.AddResource((string)existingEntry.Key, existingEntry.Value);
                    }
                    writer.AddResource(text, text);
                }
            }
        }
예제 #31
0
 private void SaveFile()
 {
     if (string.IsNullOrEmpty(_fileName))
     {
         SaveFileAs();
     }
     else if (_fileName.ToLower().Contains(".resx"))
     {
         using (IResourceWriter rw = new ResXResourceWriter(_fileName))
             _rootFolder.Save(rw);
     }
     else
     {
         using (IResourceWriter rw = new ResourceWriter(_fileName))
             _rootFolder.Save(rw);
     }
 }
예제 #32
0
        public void WritePairToResx(string fileName, DataTable dt)
        {
            writer = new System.Resources.ResXResourceWriter(fileName);

            ResXDataNode rdn;  //用于写入文件的节点

            foreach (DataRow item in dt.Rows)
            {
                rdn         = new ResXDataNode(Convert.ToString(item[keIndex]), Convert.ToString(item[valueIndex]));
                rdn.Comment = Convert.ToString(item[commentIndex]);
                writer.AddResource(rdn);
            }

            rdn = null;
            writer.Close();
            MessageBox.Show("转换成功");
        }
예제 #33
0
파일: resource.cs 프로젝트: dbremner/hycs
    static void Main(string[] args)
    {
        string resXFile = "test.resx";
        string resKey = "myKey";
        string resValueFile = "myValue";

        using (ResXResourceWriter writer = new ResXResourceWriter(resXFile))
        {
            Console.WriteLine("Associating {0} with {1}'s contents", resKey, resValueFile);
            Console.Write("To {0}...", resXFile);

            using (ResXResourceReader reader = new ResXResourceReader(resXFile))
            {
                foreach (DictionaryEntry node in reader)
                    writer.AddResource((string)node.Key, node.Value);
            }

            writer.AddResource(resKey, File.ReadAllBytes(resValueFile));
        }
    }
 /// <summary>
 /// Write a ResX file to disk
 /// </summary>
 /// <param name="fileName"></param>
 protected void WriteResX(string fileName, Dictionary<string, string> dict)
 {
     try
     {
         using (ResXResourceWriter writer = new ResXResourceWriter(fileName))
         {
             foreach (string key in dict.Keys)
                 writer.AddResource(key, dict[key]);
             writer.Generate();
         }
     }
     catch { throw new Exception("Error while saving " + fileName); }
 }
예제 #35
0
	public static void Main() 
	{
		ResXResourceWriter rsxw = new ResXResourceWriter ("keyboards.resx"); 
		KeyboardLayout [] table = new KeyboardLayout [64];

				table [0] = new KeyboardLayout (1033, "United States keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x5b, 0x7b, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {}, 
			new uint [] {}, 		});
		table [1] = new KeyboardLayout (1033, "United States keyboard layout (phantom key version)", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x5b, 0x7b, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [2] = new KeyboardLayout (1033, "United States keyboard layout (dvorak)", 1, 2, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x5b, 0x7b, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x63, 0x43, }, new uint [] {0x72, 0x52, }, 
			new uint [] {0x6c, 0x4c, }, new uint [] {0x2f, 0x3f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x6f, 0x4f, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x75, 0x55, }, new uint [] {0x69, 0x49, }, 
			new uint [] {0x64, 0x44, }, new uint [] {0x68, 0x48, }, 
			new uint [] {0x74, 0x54, }, new uint [] {0x6e, 0x4e, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x3b, 0x3a, }, 
			new uint [] {0x71, 0x51, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x78, 0x58, }, 
			new uint [] {0x62, 0x42, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x76, 0x56, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {}, 
			new uint [] {}, 		});
		table [3] = new KeyboardLayout (1033, "United States International keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x5c, 0x7c, }, 
			new uint [] {0x71, 0x51, }, new uint [] {0x77, 0x57, }, 
			new uint [] {0x65, 0x45, }, new uint [] {0x72, 0x52, }, 
			new uint [] {0x74, 0x54, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x75, 0x55, }, new uint [] {0x69, 0x49, }, 
			new uint [] {0x6f, 0x4f, }, new uint [] {0x70, 0x50, }, 
			new uint [] {0x5b, 0x7b, }, new uint [] {0x5d, 0x7d, }, 
			new uint [] {0x61, 0x41, }, new uint [] {0x73, 0x53, }, 
			new uint [] {0x64, 0x44, }, new uint [] {0x66, 0x46, }, 
			new uint [] {0x67, 0x47, }, new uint [] {0x68, 0x48, }, 
			new uint [] {0x6a, 0x4a, }, new uint [] {0x6b, 0x4b, }, 
			new uint [] {0x6c, 0x4c, }, new uint [] {0x3b, 0x3a, }, 
			new uint [] {0x27, 0x22, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {}, 
			new uint [] {}, 		});
		table [4] = new KeyboardLayout (2057, "British keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffa3, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x5b, 0x7b, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x40, }, 
			new uint [] {0x23, 0x7e, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x5c, 0x7c, }, 
			new uint [] {}, 		});
		table [5] = new KeyboardLayout (1031, "German keyboard layout", 0, 1, new uint [][] {
			new uint [] {0x5e, 0xffffffb0, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffa7, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0xffffffdf, 0x3f, }, 
			new uint [] {0xffffffb4, 0x60, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffdc, }, 
			new uint [] {0x2b, 0x2a, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x23, 0x27, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, 0x7c, }, 
			new uint [] {}, 		});
		table [6] = new KeyboardLayout (1031, "German keyboard layout without dead keys", 0, 1, new uint [][] {
			new uint [] {0x5e, 0xffffffb0, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffa7, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, 0x7b, }, 
			new uint [] {0x38, 0x28, 0x5b, }, new uint [] {0x39, 0x29, 0x5d, }, 
			new uint [] {0x30, 0x3d, 0x7d, }, new uint [] {0xffffffdf, 0x3f, 0x5c, }, 
			new uint [] {0xffffffb4, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffdc, }, 
			new uint [] {0x2b, 0x2a, 0x7e, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x23, 0x27, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [7] = new KeyboardLayout (1031, "German keyboard layout for logitech desktop pro", 0, 1, new uint [][] {
			new uint [] {0x5e, 0xffffffb0, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffa7, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, 0x7b, }, 
			new uint [] {0x38, 0x28, 0x5b, }, new uint [] {0x39, 0x29, 0x5d, }, 
			new uint [] {0x30, 0x3d, 0x7d, }, new uint [] {0xffffffdf, 0x3f, 0x5c, }, 
			new uint [] {0x27, 0x60, }, new uint [] {0x71, 0x51, 0x40, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffdc, }, 
			new uint [] {0x2b, 0x2a, 0x7e, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x23, 0x27, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, 0x7c, }, 
			new uint [] {}, 		});
		table [8] = new KeyboardLayout (1031, "German keyboard layout without dead keys 105", 0, 3, new uint [][] {
			new uint [] {0x5e, 0xffffffb0, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, 0xffffffb2, }, new uint [] {0x33, 0xffffffa7, 0xffffffb3, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, 0x7b, }, 
			new uint [] {0x38, 0x28, 0x5b, }, new uint [] {0x39, 0x29, 0x5d, }, 
			new uint [] {0x30, 0x3d, 0x7d, }, new uint [] {0xffffffdf, 0x3f, 0x5c, }, 
			new uint [] {0x27, 0x60, }, new uint [] {0x71, 0x51, 0x40, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffdc, }, 
			new uint [] {0x2b, 0x2a, 0x7e, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x23, 0x27, }, new uint [] {0x3c, 0x3e, 0x7c, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x78, 0x58, }, 
			new uint [] {0x63, 0x43, }, new uint [] {0x76, 0x56, }, 
			new uint [] {0x62, 0x42, }, new uint [] {0x6e, 0x4e, }, 
			new uint [] {0x6d, 0x4d, }, new uint [] {0x2c, 0x3b, }, 
			new uint [] {0x2e, 0x3a, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {}, 		});
		table [9] = new KeyboardLayout (2055, "Swiss German keyboard layout", 0, 1, new uint [][] {
			new uint [] {0xffffffa7, 0xffffffb0, }, new uint [] {0x31, 0x2b, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x2a, }, 
			new uint [] {0x34, 0xffffffe7, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, }, 
			new uint [] {0x5e, 0x60, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffe8, }, 
			new uint [] {0xffffffa8, 0x21, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff6, 0xffffffe9, }, new uint [] {0xffffffe4, 0xffffffe0, }, 
			new uint [] {0x24, 0xffffffa3, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [10] = new KeyboardLayout (4108, "Swiss French keyboard layout", 0, 1, new uint [][] {
			new uint [] {0xffffffa7, 0xffffffb0, }, new uint [] {0x31, 0x2b, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x2a, }, 
			new uint [] {0x34, 0xffffffe7, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, }, 
			new uint [] {0x5e, 0x60, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffe8, 0xfffffffc, }, 
			new uint [] {0xffffffa8, 0x21, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xffffffe9, 0xfffffff6, }, new uint [] {0xffffffe0, 0xffffffe4, }, 
			new uint [] {0x24, 0xffffffa3, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [11] = new KeyboardLayout (1053, "Swedish keyboard layout", 0, 5, new uint [][] {
			new uint [] {0xffffffa7, 0xffffffbd, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0xffffffa4, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x2b, 0x3f, }, 
			new uint [] {0xffffffb4, 0x60, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffe5, 0xffffffc5, }, 
			new uint [] {0xffffffa8, 0x5e, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x27, 0x2a, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [12] = new KeyboardLayout (1061, "Estonian keyboard layout", 0, 0, new uint [][] {
			new uint [] {0xffffffb7, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0xffffffa4, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x2b, 0x3f, }, 
			new uint [] {0xffffffb4, 0x60, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffdc, }, 
			new uint [] {0xfffffff5, 0xffffffd5, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x27, 0x2a, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [13] = new KeyboardLayout (1044, "Norwegian keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x7c, 0xffffffa7, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, 0x40, }, new uint [] {0x33, 0x23, 0xffffffa3, }, 
			new uint [] {0x34, 0xffffffa4, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, 0x7b, }, 
			new uint [] {0x38, 0x28, 0x5b, }, new uint [] {0x39, 0x29, 0x5d, }, 
			new uint [] {0x30, 0x3d, 0x7d, }, new uint [] {0x2b, 0x3f, }, 
			new uint [] {0x5c, 0x60, 0xffffffb4, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffe5, 0xffffffc5, }, 
			new uint [] {0xffffffa8, 0x5e, 0x7e, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff8, 0xffffffd8, }, new uint [] {0xffffffe6, 0xffffffc6, }, 
			new uint [] {0x27, 0x2a, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [14] = new KeyboardLayout (1030, "Danish keyboard layout", 0, 0, new uint [][] {
			new uint [] {0xffffffbd, 0xffffffa7, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0xffffffa4, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x2b, 0x3f, }, 
			new uint [] {0xffffffb4, 0x60, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffe5, 0xffffffc5, }, 
			new uint [] {0xffffffa8, 0x5e, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xffffffe6, 0xffffffc6, }, new uint [] {0xfffffff8, 0xffffffd8, }, 
			new uint [] {0x27, 0x2a, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [15] = new KeyboardLayout (1036, "French keyboard layout", 0, 4, new uint [][] {
			new uint [] {0xffffffb2, }, new uint [] {0x26, 0x31, }, 
			new uint [] {0xffffffe9, 0x32, 0x7e, }, new uint [] {0x22, 0x33, 0x23, }, 
			new uint [] {0x27, 0x34, 0x7b, }, new uint [] {0x28, 0x35, 0x5b, }, 
			new uint [] {0x2d, 0x36, 0x7c, }, new uint [] {0xffffffe8, 0x37, 0x60, }, 
			new uint [] {0x5f, 0x38, 0x5c, }, new uint [] {0xffffffe7, 0x39, 0x5e, 0xffffffb1, }, 
			new uint [] {0xffffffe0, 0x30, 0x40, }, new uint [] {0x29, 0xffffffb0, 0x5d, }, 
			new uint [] {0x3d, 0x2b, 0x7d, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x65, 0x45, 0xffffffbf, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x5e, 0xffffffa8, }, 
			new uint [] {0x24, 0xffffffa3, 0xffffffa4, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x73, 0x53, 0xffffffdf, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x6d, 0x4d, }, new uint [] {0xfffffff9, 0x25, }, 
			new uint [] {0x2a, 0xffffffb5, }, new uint [] {0x77, 0x57, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x2c, 0x3f, }, 
			new uint [] {0x3b, 0x2e, }, new uint [] {0x3a, 0x2f, }, 
			new uint [] {0x21, 0xffffffa7, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [16] = new KeyboardLayout (3084, "Canadian French keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x23, 0x7c, 0x5c, }, new uint [] {0x31, 0x21, 0xffffffb1, }, 
			new uint [] {0x32, 0x22, 0x40, }, new uint [] {0x33, 0x2f, 0xffffffa3, }, 
			new uint [] {0x34, 0x24, 0xffffffa2, }, new uint [] {0x35, 0x25, 0xffffffa4, }, 
			new uint [] {0x36, 0x3f, 0xffffffac, }, new uint [] {0x37, 0x26, 0xffffffa6, }, 
			new uint [] {0x38, 0x2a, 0xffffffb2, }, new uint [] {0x39, 0x28, 0xffffffb3, }, 
			new uint [] {0x30, 0x29, 0xffffffbc, }, new uint [] {0x2d, 0x5f, 0xffffffbd, }, 
			new uint [] {0x3d, 0x2b, 0xffffffbe, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, 0xffffffa7, }, 
			new uint [] {0x70, 0x50, 0xffffffb6, }, new uint [] {0x5e, 0x5e, 0x5b, }, 
			new uint [] {0xffffffb8, 0xffffffa8, 0x5d, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x3b, 0x3a, 0x7e, }, new uint [] {0x60, 0x60, 0x7b, }, 
			new uint [] {0x3c, 0x3e, 0x7d, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x27, 0x2d, }, new uint [] {0x2e, }, 
			new uint [] {0xffffffe9, 0xffffffc9, }, new uint [] {0xffffffab, 0xffffffbb, 0xffffffb0, }, 
			new uint [] {}, 		});
		table [17] = new KeyboardLayout (3084, "Canadian French keyboard layout (CA_fr)", 0, 0, new uint [][] {
			new uint [] {0x23, 0x7c, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x2f, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x3f, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x5e, 0x5e, }, 
			new uint [] {0xffffffb8, 0xffffffa8, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x60, 0x60, }, 
			new uint [] {0x3c, 0x3e, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x27, }, new uint [] {0x2e, }, 
			new uint [] {0xffffffe9, 0xffffffc9, }, new uint [] {0xffffffab, 0xffffffbb, }, 
			new uint [] {}, 		});
		table [18] = new KeyboardLayout (3084, "Canadian keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x2f, 0x5c, }, new uint [] {0x31, 0x21, 0xffffffb9, 0xffffffa1, }, 
			new uint [] {0x32, 0x40, 0xffffffb2, }, new uint [] {0x33, 0x23, 0xffffffb3, 0xffffffa3, }, 
			new uint [] {0x34, 0x24, 0xffffffbc, 0xffffffa4, }, new uint [] {0x35, 0x25, 0xffffffbd, }, 
			new uint [] {0x36, 0x3f, 0xffffffbe, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, 0xfffffff8, 0xffffffd8, }, 
			new uint [] {0x70, 0x50, 0xfffffffe, 0xffffffde, }, new uint [] {0x5e, 0xffffffa8, 0xffffffa8, }, 
			new uint [] {0xffffffe7, 0xffffffc7, 0x7e, }, new uint [] {0x61, 0x41, 0xffffffe6, 0xffffffc6, }, 
			new uint [] {0x73, 0x53, 0xffffffdf, 0xffffffa7, }, new uint [] {0x64, 0x44, 0xfffffff0, 0xffffffd0, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x3b, 0x3a, 0xffffffb4, }, new uint [] {0xffffffe8, 0xffffffc8, }, 
			new uint [] {0xffffffe0, 0xffffffc0, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, 0xffffffa2, 0xffffffa9, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, 0xffffffb5, 0xffffffba, }, 
			new uint [] {0x2c, 0x27, }, new uint [] {0x2e, 0x22, 0xffffffb7, 0xfffffff7, }, 
			new uint [] {0xffffffe9, 0xffffffc9, }, new uint [] {0xfffffff9, 0xffffffd9, }, 
			new uint [] {}, 		});
		table [19] = new KeyboardLayout (2060, "Belgian keyboard layout", 0, 4, new uint [][] {
			new uint [] {}, new uint [] {0x26, 0x31, 0x7c, }, 
			new uint [] {0xffffffe9, 0x32, 0x40, }, new uint [] {0x22, 0x33, 0x23, }, 
			new uint [] {0x27, 0x34, }, new uint [] {0x28, 0x35, }, 
			new uint [] {0xffffffa7, 0x36, 0x5e, }, new uint [] {0xffffffe8, 0x37, }, 
			new uint [] {0x21, 0x38, }, new uint [] {0xffffffe7, 0x39, 0x7b, }, 
			new uint [] {0xffffffe0, 0x30, 0x7d, }, new uint [] {0x29, 0xffffffb0, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x65, 0x45, 0xffffffa4, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x5e, 0xffffffa8, 0x5b, }, 
			new uint [] {0x24, 0x2a, 0x5d, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x73, 0x53, 0xffffffdf, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x6d, 0x4d, }, new uint [] {0xfffffff9, 0x25, 0xffffffb4, }, 
			new uint [] {0xffffffb5, 0xffffffa3, 0x60, }, new uint [] {0x77, 0x57, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x2c, 0x3f, }, 
			new uint [] {0x3b, 0x2e, }, new uint [] {0x3a, 0x2f, }, 
			new uint [] {0x3d, 0x2b, 0x7e, }, new uint [] {0x3c, 0x3e, 0x5c, }, 
			new uint [] {}, 		});
		table [20] = new KeyboardLayout (2070, "Portuguese keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x5c, 0x7c, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, }, 
			new uint [] {0xffffffab, 0xffffffbb, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x2b, 0x2a, }, 
			new uint [] {0xffffffb4, 0x60, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xffffffe7, 0xffffffc7, }, new uint [] {0xffffffba, 0xffffffaa, }, 
			new uint [] {0x7e, 0x5e, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [21] = new KeyboardLayout (1046, "Brazilian ABNT-2 keyboard layout", 2, 6, new uint [][] {
			new uint [] {0x27, 0x22, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0xffffffa8, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffb4, 0x60, }, 
			new uint [] {0x5b, 0x7b, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xffffffe7, 0xffffffc7, }, new uint [] {0x7e, 0x5e, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x5c, 0x7c, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x78, 0x58, }, 
			new uint [] {0x63, 0x43, }, new uint [] {0x76, 0x56, }, 
			new uint [] {0x62, 0x42, }, new uint [] {0x6e, 0x4e, }, 
			new uint [] {0x6d, 0x4d, }, new uint [] {0x2c, 0x3c, }, 
			new uint [] {0x2e, 0x3e, }, new uint [] {0x3b, 0x3a, }, 
			new uint [] {0x2f, 0x3f, }, 		});
		table [22] = new KeyboardLayout (1046, "Brazilian ABNT-2 keyboard layout ALT GR", 2, 6, new uint [][] {
			new uint [] {0x27, 0x22, }, new uint [] {0x31, 0x21, 0x39, }, 
			new uint [] {0x32, 0x40, 0x32, }, new uint [] {0x33, 0x23, 0x33, }, 
			new uint [] {0x34, 0x24, 0x23, }, new uint [] {0x35, 0x25, 0x22, }, 
			new uint [] {0x36, 0x28, 0x2c, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, 0x27, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x34, 0x60, }, 
			new uint [] {0x5b, 0x7b, 0x2a, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x67, 0x47, }, new uint [] {0x7e, 0x5e, }, 
			new uint [] {0x5d, 0x7d, 0x3a, }, new uint [] {0x5c, 0x7c, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x78, 0x58, }, 
			new uint [] {0x63, 0x43, }, new uint [] {0x76, 0x56, }, 
			new uint [] {0x62, 0x42, }, new uint [] {0x6e, 0x4e, }, 
			new uint [] {0x6d, 0x4d, }, new uint [] {0x2c, 0x3c, }, 
			new uint [] {0x2e, 0x3e, }, new uint [] {0x3b, 0x3a, }, 
			new uint [] {0x2f, 0x3f, 0x30, }, 		});
		table [23] = new KeyboardLayout (1035, "Finnish keyboard layout", 0, 0, new uint [][] {
			new uint [] {0xffffffa7, 0xffffffbd, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0xffffffa4, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x2b, 0x3f, }, 
			new uint [] {0xffffffb4, 0x60, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffe5, 0xffffffc5, }, 
			new uint [] {0xffffffa8, 0x5e, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x27, 0x2a, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [24] = new KeyboardLayout (1026, "Bulgarian bds keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, 0x28, 0x29, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, 0x32, 0x3f, }, new uint [] {0x33, 0x23, 0x33, 0x2b, }, 
			new uint [] {0x34, 0x24, 0x34, 0x22, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, 0x36, 0x3d, }, new uint [] {0x37, 0x26, 0x37, 0x3a, }, 
			new uint [] {0x38, 0x2a, 0x38, 0x2f, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, 0x2d, 0x49, }, 
			new uint [] {0x3d, 0x2b, 0x2e, 0x56, }, new uint [] {0x71, 0x51, 0x2c, 0xfffffffb, }, 
			new uint [] {0x77, 0x57, 0xfffffff3, 0xffffffd3, }, new uint [] {0x65, 0x45, 0xffffffe5, 0xffffffc5, }, 
			new uint [] {0x72, 0x52, 0xffffffe8, 0xffffffc8, }, new uint [] {0x74, 0x54, 0xfffffff8, 0xffffffd8, }, 
			new uint [] {0x79, 0x59, 0xfffffff9, 0xffffffd9, }, new uint [] {0x75, 0x55, 0xffffffea, 0xffffffca, }, 
			new uint [] {0x69, 0x49, 0xfffffff1, 0xffffffd1, }, new uint [] {0x6f, 0x4f, 0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x70, 0x50, 0xffffffe7, 0xffffffc7, }, new uint [] {0x5b, 0x7b, 0xfffffff6, 0xffffffd6, }, 
			new uint [] {0x5d, 0x7d, 0x3b, }, new uint [] {0x61, 0x41, 0xfffffffc, 0xffffffdc, }, 
			new uint [] {0x73, 0x53, 0xffffffff, 0xffffffdf, }, new uint [] {0x64, 0x44, 0xffffffe0, 0xffffffc0, }, 
			new uint [] {0x66, 0x46, 0xffffffee, 0xffffffce, }, new uint [] {0x67, 0x47, 0xffffffe6, 0xffffffc6, }, 
			new uint [] {0x68, 0x48, 0xffffffe3, 0xffffffc3, }, new uint [] {0x6a, 0x4a, 0xfffffff2, 0xffffffd2, }, 
			new uint [] {0x6b, 0x4b, 0xffffffed, 0xffffffcd, }, new uint [] {0x6c, 0x4c, 0xffffffe2, 0xffffffc2, }, 
			new uint [] {0x3b, 0x3a, 0xffffffec, 0xffffffcc, }, new uint [] {0x27, 0x22, 0xfffffff7, 0xffffffd7, }, 
			new uint [] {0x5c, 0x7c, 0x27, 0xffffffdb, }, new uint [] {0x7a, 0x5a, 0xfffffffe, 0xffffffde, }, 
			new uint [] {0x78, 0x58, 0xffffffe9, 0xffffffc9, }, new uint [] {0x63, 0x43, 0xfffffffa, 0xffffffda, }, 
			new uint [] {0x76, 0x56, 0xfffffffd, 0xffffffdd, }, new uint [] {0x62, 0x42, 0xfffffff4, 0xffffffd4, }, 
			new uint [] {0x6e, 0x4e, 0xfffffff5, 0xffffffd5, }, new uint [] {0x6d, 0x4d, 0xffffffef, 0xffffffcf, }, 
			new uint [] {0x2c, 0x3c, 0xfffffff0, 0xffffffd0, }, new uint [] {0x2e, 0x3e, 0xffffffeb, 0xffffffcb, }, 
			new uint [] {0x2f, 0x3f, 0xffffffe1, 0xffffffc1, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [25] = new KeyboardLayout (1026, "Bulgarian phonetic keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, 0xfffffff7, 0xffffffd7, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffff, 0xffffffdf, }, 
			new uint [] {0x77, 0x57, 0xffffffe2, 0xffffffc2, }, new uint [] {0x65, 0x45, 0xffffffe5, 0xffffffc5, }, 
			new uint [] {0x72, 0x52, 0xfffffff0, 0xffffffd0, }, new uint [] {0x74, 0x54, 0xfffffff2, 0xffffffd2, }, 
			new uint [] {0x79, 0x59, 0xfffffffa, 0xffffffda, }, new uint [] {0x75, 0x55, 0xfffffff3, 0xffffffd3, }, 
			new uint [] {0x69, 0x49, 0xffffffe8, 0xffffffc8, }, new uint [] {0x6f, 0x4f, 0xffffffee, 0xffffffce, }, 
			new uint [] {0x70, 0x50, 0xffffffef, 0xffffffcf, }, new uint [] {0x5b, 0x7b, 0xfffffff8, 0xffffffd8, }, 
			new uint [] {0x5d, 0x7d, 0xfffffff9, 0xffffffd9, }, new uint [] {0x61, 0x41, 0xffffffe0, 0xffffffc0, }, 
			new uint [] {0x73, 0x53, 0xfffffff1, 0xffffffd1, }, new uint [] {0x64, 0x44, 0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x66, 0x46, 0xfffffff4, 0xffffffd4, }, new uint [] {0x67, 0x47, 0xffffffe3, 0xffffffc3, }, 
			new uint [] {0x68, 0x48, 0xfffffff5, 0xffffffd5, }, new uint [] {0x6a, 0x4a, 0xffffffe9, 0xffffffc9, }, 
			new uint [] {0x6b, 0x4b, 0xffffffea, 0xffffffca, }, new uint [] {0x6c, 0x4c, 0xffffffeb, 0xffffffcb, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x5c, 0x7c, 0xfffffffe, 0xffffffde, }, new uint [] {0x7a, 0x5a, 0xffffffe7, 0xffffffc7, }, 
			new uint [] {0x78, 0x58, 0xfffffffc, 0xffffffdc, }, new uint [] {0x63, 0x43, 0xfffffff6, 0xffffffd6, }, 
			new uint [] {0x76, 0x56, 0xffffffe6, 0xffffffc6, }, new uint [] {0x62, 0x42, 0xffffffe1, 0xffffffc1, }, 
			new uint [] {0x6e, 0x4e, 0xffffffed, 0xffffffcd, }, new uint [] {0x6d, 0x4d, 0xffffffec, 0xffffffcc, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [26] = new KeyboardLayout (1059, "Belarusian keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, 0xffffffa3, 0xffffffb3, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffca, 0xffffffea, }, 
			new uint [] {0x77, 0x57, 0xffffffc3, 0xffffffe3, }, new uint [] {0x65, 0x45, 0xffffffd5, 0xfffffff5, }, 
			new uint [] {0x72, 0x52, 0xffffffcb, 0xffffffeb, }, new uint [] {0x74, 0x54, 0xffffffc5, 0xffffffe5, }, 
			new uint [] {0x79, 0x59, 0xffffffce, 0xffffffee, }, new uint [] {0x75, 0x55, 0xffffffc7, 0xffffffe7, }, 
			new uint [] {0x69, 0x49, 0xffffffdb, 0xfffffffb, }, new uint [] {0x6f, 0x4f, 0xffffffae, 0xffffffbe, }, 
			new uint [] {0x70, 0x50, 0xffffffda, 0xfffffffa, }, new uint [] {0x5b, 0x7b, 0xffffffc8, 0xffffffe8, }, 
			new uint [] {0x5d, 0x7d, 0x27, 0x27, }, new uint [] {0x61, 0x41, 0xffffffc6, 0xffffffe6, }, 
			new uint [] {0x73, 0x53, 0xffffffd9, 0xfffffff9, }, new uint [] {0x64, 0x44, 0xffffffd7, 0xfffffff7, }, 
			new uint [] {0x66, 0x46, 0xffffffc1, 0xffffffe1, }, new uint [] {0x67, 0x47, 0xffffffd0, 0xfffffff0, }, 
			new uint [] {0x68, 0x48, 0xffffffd2, 0xfffffff2, }, new uint [] {0x6a, 0x4a, 0xffffffcf, 0xffffffef, }, 
			new uint [] {0x6b, 0x4b, 0xffffffcc, 0xffffffec, }, new uint [] {0x6c, 0x4c, 0xffffffc4, 0xffffffe4, }, 
			new uint [] {0x3b, 0x3a, 0xffffffd6, 0xfffffff6, }, new uint [] {0x27, 0x22, 0xffffffdc, 0xfffffffc, }, 
			new uint [] {0x5c, 0x7c, 0x2f, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffd1, 0xfffffff1, }, 
			new uint [] {0x78, 0x58, 0xffffffde, 0xfffffffe, }, new uint [] {0x63, 0x43, 0xffffffd3, 0xfffffff3, }, 
			new uint [] {0x76, 0x56, 0xffffffcd, 0xffffffed, }, new uint [] {0x62, 0x42, 0xffffffa6, 0xffffffb6, }, 
			new uint [] {0x6e, 0x4e, 0xffffffd4, 0xfffffff4, }, new uint [] {0x6d, 0x4d, 0xffffffd8, 0xfffffff8, }, 
			new uint [] {0x2c, 0x3c, 0xffffffc2, 0xffffffe2, }, new uint [] {0x2e, 0x3e, 0xffffffc0, 0xffffffe0, }, 
			new uint [] {0x2f, 0x3f, 0x2e, 0x2c, }, new uint [] {0x3c, 0x3e, 0x7c, 0xffffffa6, }, 
			new uint [] {}, 		});
		table [27] = new KeyboardLayout (1049, "Russian keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffca, 0xffffffea, }, 
			new uint [] {0x77, 0x57, 0xffffffc3, 0xffffffe3, }, new uint [] {0x65, 0x45, 0xffffffd5, 0xfffffff5, }, 
			new uint [] {0x72, 0x52, 0xffffffcb, 0xffffffeb, }, new uint [] {0x74, 0x54, 0xffffffc5, 0xffffffe5, }, 
			new uint [] {0x79, 0x59, 0xffffffce, 0xffffffee, }, new uint [] {0x75, 0x55, 0xffffffc7, 0xffffffe7, }, 
			new uint [] {0x69, 0x49, 0xffffffdb, 0xfffffffb, }, new uint [] {0x6f, 0x4f, 0xffffffdd, 0xfffffffd, }, 
			new uint [] {0x70, 0x50, 0xffffffda, 0xfffffffa, }, new uint [] {0x5b, 0x7b, 0xffffffc8, 0xffffffe8, }, 
			new uint [] {0x5d, 0x7d, 0xffffffdf, 0xffffffff, }, new uint [] {0x61, 0x41, 0xffffffc6, 0xffffffe6, }, 
			new uint [] {0x73, 0x53, 0xffffffd9, 0xfffffff9, }, new uint [] {0x64, 0x44, 0xffffffd7, 0xfffffff7, }, 
			new uint [] {0x66, 0x46, 0xffffffc1, 0xffffffe1, }, new uint [] {0x67, 0x47, 0xffffffd0, 0xfffffff0, }, 
			new uint [] {0x68, 0x48, 0xffffffd2, 0xfffffff2, }, new uint [] {0x6a, 0x4a, 0xffffffcf, 0xffffffef, }, 
			new uint [] {0x6b, 0x4b, 0xffffffcc, 0xffffffec, }, new uint [] {0x6c, 0x4c, 0xffffffc4, 0xffffffe4, }, 
			new uint [] {0x3b, 0x3a, 0xffffffd6, 0xfffffff6, }, new uint [] {0x27, 0x22, 0xffffffdc, 0xfffffffc, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffd1, 0xfffffff1, }, 
			new uint [] {0x78, 0x58, 0xffffffde, 0xfffffffe, }, new uint [] {0x63, 0x43, 0xffffffd3, 0xfffffff3, }, 
			new uint [] {0x76, 0x56, 0xffffffcd, 0xffffffed, }, new uint [] {0x62, 0x42, 0xffffffc9, 0xffffffe9, }, 
			new uint [] {0x6e, 0x4e, 0xffffffd4, 0xfffffff4, }, new uint [] {0x6d, 0x4d, 0xffffffd8, 0xfffffff8, }, 
			new uint [] {0x2c, 0x3c, 0xffffffc2, 0xffffffe2, }, new uint [] {0x2e, 0x3e, 0xffffffc0, 0xffffffe0, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {}, 
			new uint [] {}, 		});
		table [28] = new KeyboardLayout (1049, "Russian keyboard layout (phantom key version)", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffca, 0xffffffea, }, 
			new uint [] {0x77, 0x57, 0xffffffc3, 0xffffffe3, }, new uint [] {0x65, 0x45, 0xffffffd5, 0xfffffff5, }, 
			new uint [] {0x72, 0x52, 0xffffffcb, 0xffffffeb, }, new uint [] {0x74, 0x54, 0xffffffc5, 0xffffffe5, }, 
			new uint [] {0x79, 0x59, 0xffffffce, 0xffffffee, }, new uint [] {0x75, 0x55, 0xffffffc7, 0xffffffe7, }, 
			new uint [] {0x69, 0x49, 0xffffffdb, 0xfffffffb, }, new uint [] {0x6f, 0x4f, 0xffffffdd, 0xfffffffd, }, 
			new uint [] {0x70, 0x50, 0xffffffda, 0xfffffffa, }, new uint [] {0x5b, 0x7b, 0xffffffc8, 0xffffffe8, }, 
			new uint [] {0x5d, 0x7d, 0xffffffdf, 0xffffffff, }, new uint [] {0x61, 0x41, 0xffffffc6, 0xffffffe6, }, 
			new uint [] {0x73, 0x53, 0xffffffd9, 0xfffffff9, }, new uint [] {0x64, 0x44, 0xffffffd7, 0xfffffff7, }, 
			new uint [] {0x66, 0x46, 0xffffffc1, 0xffffffe1, }, new uint [] {0x67, 0x47, 0xffffffd0, 0xfffffff0, }, 
			new uint [] {0x68, 0x48, 0xffffffd2, 0xfffffff2, }, new uint [] {0x6a, 0x4a, 0xffffffcf, 0xffffffef, }, 
			new uint [] {0x6b, 0x4b, 0xffffffcc, 0xffffffec, }, new uint [] {0x6c, 0x4c, 0xffffffc4, 0xffffffe4, }, 
			new uint [] {0x3b, 0x3a, 0xffffffd6, 0xfffffff6, }, new uint [] {0x27, 0x22, 0xffffffdc, 0xfffffffc, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffd1, 0xfffffff1, }, 
			new uint [] {0x78, 0x58, 0xffffffde, 0xfffffffe, }, new uint [] {0x63, 0x43, 0xffffffd3, 0xfffffff3, }, 
			new uint [] {0x76, 0x56, 0xffffffcd, 0xffffffed, }, new uint [] {0x62, 0x42, 0xffffffc9, 0xffffffe9, }, 
			new uint [] {0x6e, 0x4e, 0xffffffd4, 0xfffffff4, }, new uint [] {0x6d, 0x4d, 0xffffffd8, 0xfffffff8, }, 
			new uint [] {0x2c, 0x3c, 0xffffffc2, 0xffffffe2, }, new uint [] {0x2e, 0x3e, 0xffffffc0, 0xffffffe0, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [29] = new KeyboardLayout (1049, "Russian keyboard layout KOI8-R", 0, 0, new uint [][] {
			new uint [] {0x28, 0x29, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x2f, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x3a, }, 
			new uint [] {0x36, 0x2c, }, new uint [] {0x37, 0x2e, }, 
			new uint [] {0x38, 0x3b, }, new uint [] {0x39, 0x3f, }, 
			new uint [] {0x30, 0x25, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0xffffffca, 0xffffffea, }, 
			new uint [] {0xffffffc3, 0xffffffe3, }, new uint [] {0xffffffd5, 0xfffffff5, }, 
			new uint [] {0xffffffcb, 0xffffffeb, }, new uint [] {0xffffffc5, 0xffffffe5, }, 
			new uint [] {0xffffffce, 0xffffffee, }, new uint [] {0xffffffc7, 0xffffffe7, }, 
			new uint [] {0xffffffdb, 0xfffffffb, }, new uint [] {0xffffffdd, 0xfffffffd, }, 
			new uint [] {0xffffffda, 0xfffffffa, }, new uint [] {0xffffffc8, 0xffffffe8, }, 
			new uint [] {0xffffffdf, 0xffffffff, }, new uint [] {0xffffffc6, 0xffffffe6, }, 
			new uint [] {0xffffffd9, 0xfffffff9, }, new uint [] {0xffffffd7, 0xfffffff7, }, 
			new uint [] {0xffffffc1, 0xffffffe1, }, new uint [] {0xffffffd0, 0xfffffff0, }, 
			new uint [] {0xffffffd2, 0xfffffff2, }, new uint [] {0xffffffcf, 0xffffffef, }, 
			new uint [] {0xffffffcc, 0xffffffec, }, new uint [] {0xffffffc4, 0xffffffe4, }, 
			new uint [] {0xffffffd6, 0xfffffff6, }, new uint [] {0xffffffdc, 0xfffffffc, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0xffffffd1, 0xfffffff1, }, 
			new uint [] {0xffffffde, 0xfffffffe, }, new uint [] {0xffffffd3, 0xfffffff3, }, 
			new uint [] {0xffffffcd, 0xffffffed, }, new uint [] {0xffffffc9, 0xffffffe9, }, 
			new uint [] {0xffffffd4, 0xfffffff4, }, new uint [] {0xffffffd8, 0xfffffff8, }, 
			new uint [] {0xffffffc2, 0xffffffe2, }, new uint [] {0xffffffc0, 0xffffffe0, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [30] = new KeyboardLayout (1049, "Russian keyboard layout cp1251", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffe9, 0xffffffc9, }, 
			new uint [] {0x77, 0x57, 0xfffffff6, 0xffffffd6, }, new uint [] {0x65, 0x45, 0xfffffff3, 0xffffffd3, }, 
			new uint [] {0x72, 0x52, 0xffffffea, 0xffffffca, }, new uint [] {0x74, 0x54, 0xffffffe5, 0xffffffc5, }, 
			new uint [] {0x79, 0x59, 0xffffffed, 0xffffffcd, }, new uint [] {0x75, 0x55, 0xffffffe3, 0xffffffc3, }, 
			new uint [] {0x69, 0x49, 0xfffffff8, 0xffffffd8, }, new uint [] {0x6f, 0x4f, 0xfffffff9, 0xffffffd9, }, 
			new uint [] {0x70, 0x50, 0xffffffe7, 0xffffffc7, }, new uint [] {0x5b, 0x7b, 0xfffffff5, 0xffffffd5, }, 
			new uint [] {0x5d, 0x7d, 0xfffffffa, 0xffffffda, }, new uint [] {0x61, 0x41, 0xfffffff4, 0xffffffd4, }, 
			new uint [] {0x73, 0x53, 0xfffffffb, 0xffffffdb, }, new uint [] {0x64, 0x44, 0xffffffe2, 0xffffffc2, }, 
			new uint [] {0x66, 0x46, 0xffffffe0, 0xffffffc0, }, new uint [] {0x67, 0x47, 0xffffffef, 0xffffffcf, }, 
			new uint [] {0x68, 0x48, 0xfffffff0, 0xffffffd0, }, new uint [] {0x6a, 0x4a, 0xffffffee, 0xffffffce, }, 
			new uint [] {0x6b, 0x4b, 0xffffffeb, 0xffffffcb, }, new uint [] {0x6c, 0x4c, 0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x3b, 0x3a, 0xffffffe6, 0xffffffc6, }, new uint [] {0x27, 0x22, 0xfffffffd, 0xffffffdd, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffff, 0xffffffdf, }, 
			new uint [] {0x78, 0x58, 0xfffffff7, 0xffffffd7, }, new uint [] {0x63, 0x43, 0xfffffff1, 0xffffffd1, }, 
			new uint [] {0x76, 0x56, 0xffffffec, 0xffffffcc, }, new uint [] {0x62, 0x42, 0xffffffe8, 0xffffffc8, }, 
			new uint [] {0x6e, 0x4e, 0xfffffff2, 0xffffffd2, }, new uint [] {0x6d, 0x4d, 0xfffffffc, 0xffffffdc, }, 
			new uint [] {0x2c, 0x3c, 0xffffffe1, 0xffffffc1, }, new uint [] {0x2e, 0x3e, 0xfffffffe, 0xffffffde, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [31] = new KeyboardLayout (1049, "Russian phonetic keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffd1, 0xfffffff1, }, 
			new uint [] {0x77, 0x57, 0xffffffd7, 0xfffffff7, }, new uint [] {0x65, 0x45, 0xffffffc5, 0xffffffe5, }, 
			new uint [] {0x72, 0x52, 0xffffffd2, 0xfffffff2, }, new uint [] {0x74, 0x54, 0xffffffd4, 0xfffffff4, }, 
			new uint [] {0x79, 0x59, 0xffffffd9, 0xfffffff9, }, new uint [] {0x75, 0x55, 0xffffffd5, 0xfffffff5, }, 
			new uint [] {0x69, 0x49, 0xffffffc9, 0xffffffe9, }, new uint [] {0x6f, 0x4f, 0xffffffcf, 0xffffffef, }, 
			new uint [] {0x70, 0x50, 0xffffffd0, 0xfffffff0, }, new uint [] {0x5b, 0x7b, 0xffffffdb, 0xfffffffb, }, 
			new uint [] {0x5d, 0x7d, 0xffffffdd, 0xfffffffd, }, new uint [] {0x61, 0x41, 0xffffffc1, 0xffffffe1, }, 
			new uint [] {0x73, 0x53, 0xffffffd3, 0xfffffff3, }, new uint [] {0x64, 0x44, 0xffffffc4, 0xffffffe4, }, 
			new uint [] {0x66, 0x46, 0xffffffc6, 0xffffffe6, }, new uint [] {0x67, 0x47, 0xffffffc7, 0xffffffe7, }, 
			new uint [] {0x68, 0x48, 0xffffffc8, 0xffffffe8, }, new uint [] {0x6a, 0x4a, 0xffffffca, 0xffffffea, }, 
			new uint [] {0x6b, 0x4b, 0xffffffcb, 0xffffffeb, }, new uint [] {0x6c, 0x4c, 0xffffffcc, 0xffffffec, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffda, 0xfffffffa, }, 
			new uint [] {0x78, 0x58, 0xffffffd8, 0xfffffff8, }, new uint [] {0x63, 0x43, 0xffffffc3, 0xffffffe3, }, 
			new uint [] {0x76, 0x56, 0xffffffd6, 0xfffffff6, }, new uint [] {0x62, 0x42, 0xffffffc2, 0xffffffe2, }, 
			new uint [] {0x6e, 0x4e, 0xffffffce, 0xffffffee, }, new uint [] {0x6d, 0x4d, 0xffffffcd, 0xffffffed, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [32] = new KeyboardLayout (1058, "Ukrainian keyboard layout KOI8-U", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, 0xffffffad, 0xffffffbd, }, new uint [] {0x31, 0x21, 0x31, 0x21, }, 
			new uint [] {0x32, 0x40, 0x32, 0x22, }, new uint [] {0x33, 0x23, 0x33, 0x27, }, 
			new uint [] {0x34, 0x24, 0x34, 0x2a, }, new uint [] {0x35, 0x25, 0x35, 0x3a, }, 
			new uint [] {0x36, 0x5e, 0x36, 0x2c, }, new uint [] {0x37, 0x26, 0x37, 0x2e, }, 
			new uint [] {0x38, 0x2a, 0x38, 0x3b, }, new uint [] {0x39, 0x28, 0x39, 0x28, }, 
			new uint [] {0x30, 0x29, 0x30, 0x29, }, new uint [] {0x2d, 0x5f, 0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, 0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffca, 0xffffffea, }, 
			new uint [] {0x77, 0x57, 0xffffffc3, 0xffffffe3, }, new uint [] {0x65, 0x45, 0xffffffd5, 0xfffffff5, }, 
			new uint [] {0x72, 0x52, 0xffffffcb, 0xffffffeb, }, new uint [] {0x74, 0x54, 0xffffffc5, 0xffffffe5, }, 
			new uint [] {0x79, 0x59, 0xffffffce, 0xffffffee, }, new uint [] {0x75, 0x55, 0xffffffc7, 0xffffffe7, }, 
			new uint [] {0x69, 0x49, 0xffffffdb, 0xfffffffb, }, new uint [] {0x6f, 0x4f, 0xffffffdd, 0xfffffffd, }, 
			new uint [] {0x70, 0x50, 0xffffffda, 0xfffffffa, }, new uint [] {0x5b, 0x7b, 0xffffffc8, 0xffffffe8, }, 
			new uint [] {0x5d, 0x7d, 0xffffffa7, 0xffffffb7, }, new uint [] {0x61, 0x41, 0xffffffc6, 0xffffffe6, }, 
			new uint [] {0x73, 0x53, 0xffffffa6, 0xffffffb6, }, new uint [] {0x64, 0x44, 0xffffffd7, 0xfffffff7, }, 
			new uint [] {0x66, 0x46, 0xffffffc1, 0xffffffe1, }, new uint [] {0x67, 0x47, 0xffffffd0, 0xfffffff0, }, 
			new uint [] {0x68, 0x48, 0xffffffd2, 0xfffffff2, }, new uint [] {0x6a, 0x4a, 0xffffffcf, 0xffffffef, }, 
			new uint [] {0x6b, 0x4b, 0xffffffcc, 0xffffffec, }, new uint [] {0x6c, 0x4c, 0xffffffc4, 0xffffffe4, }, 
			new uint [] {0x3b, 0x3a, 0xffffffd6, 0xfffffff6, }, new uint [] {0x27, 0x22, 0xffffffa4, 0xffffffb4, }, 
			new uint [] {0x5c, 0x7c, 0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffd1, 0xfffffff1, }, 
			new uint [] {0x78, 0x58, 0xffffffde, 0xfffffffe, }, new uint [] {0x63, 0x43, 0xffffffd3, 0xfffffff3, }, 
			new uint [] {0x76, 0x56, 0xffffffcd, 0xffffffed, }, new uint [] {0x62, 0x42, 0xffffffc9, 0xffffffe9, }, 
			new uint [] {0x6e, 0x4e, 0xffffffd4, 0xfffffff4, }, new uint [] {0x6d, 0x4d, 0xffffffd8, 0xfffffff8, }, 
			new uint [] {0x2c, 0x3c, 0xffffffc2, 0xffffffe2, }, new uint [] {0x2e, 0x3e, 0xffffffc0, 0xffffffe0, }, 
			new uint [] {0x2f, 0x3f, 0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [33] = new KeyboardLayout (1058, "Ukrainian keyboard layout (standard)", 0, 0, new uint [][] {
			new uint [] {0xffffffad, 0xffffffbd, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x27, }, 
			new uint [] {0x34, 0x3b, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x3a, }, new uint [] {0x37, 0x3f, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0xffffffca, 0xffffffea, }, 
			new uint [] {0xffffffc3, 0xffffffe3, }, new uint [] {0xffffffd5, 0xfffffff5, }, 
			new uint [] {0xffffffcb, 0xffffffeb, }, new uint [] {0xffffffc5, 0xffffffe5, }, 
			new uint [] {0xffffffce, 0xffffffee, }, new uint [] {0xffffffc7, 0xffffffe7, }, 
			new uint [] {0xffffffdb, 0xfffffffb, }, new uint [] {0xffffffdd, 0xfffffffd, }, 
			new uint [] {0xffffffda, 0xfffffffa, }, new uint [] {0xffffffc8, 0xffffffe8, }, 
			new uint [] {0xffffffa7, 0xffffffb7, }, new uint [] {0xffffffc6, 0xffffffe6, }, 
			new uint [] {0xffffffa6, 0xffffffb6, }, new uint [] {0xffffffd7, 0xfffffff7, }, 
			new uint [] {0xffffffc1, 0xffffffe1, }, new uint [] {0xffffffd0, 0xfffffff0, }, 
			new uint [] {0xffffffd2, 0xfffffff2, }, new uint [] {0xffffffcf, 0xffffffef, }, 
			new uint [] {0xffffffcc, 0xffffffec, }, new uint [] {0xffffffc4, 0xffffffe4, }, 
			new uint [] {0xffffffd6, 0xfffffff6, }, new uint [] {0xffffffa4, 0xffffffb4, }, 
			new uint [] {0x5c, 0x2f, }, new uint [] {0xffffffd1, 0xfffffff1, }, 
			new uint [] {0xffffffde, 0xfffffffe, }, new uint [] {0xffffffd3, 0xfffffff3, }, 
			new uint [] {0xffffffcd, 0xffffffed, }, new uint [] {0xffffffc9, 0xffffffe9, }, 
			new uint [] {0xffffffd4, 0xfffffff4, }, new uint [] {0xffffffd8, 0xfffffff8, }, 
			new uint [] {0xffffffc2, 0xffffffe2, }, new uint [] {0xffffffc0, 0xffffffe0, }, 
			new uint [] {0x2e, 0x2c, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [34] = new KeyboardLayout (1049, "Russian keyboard layout (standard)", 0, 0, new uint [][] {
			new uint [] {0xffffffa3, 0xffffffb3, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x27, }, 
			new uint [] {0x34, 0x3b, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x3a, }, new uint [] {0x37, 0x3f, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0xffffffca, 0xffffffea, }, 
			new uint [] {0xffffffc3, 0xffffffe3, }, new uint [] {0xffffffd5, 0xfffffff5, }, 
			new uint [] {0xffffffcb, 0xffffffeb, }, new uint [] {0xffffffc5, 0xffffffe5, }, 
			new uint [] {0xffffffce, 0xffffffee, }, new uint [] {0xffffffc7, 0xffffffe7, }, 
			new uint [] {0xffffffdb, 0xfffffffb, }, new uint [] {0xffffffdd, 0xfffffffd, }, 
			new uint [] {0xffffffda, 0xfffffffa, }, new uint [] {0xffffffc8, 0xffffffe8, }, 
			new uint [] {0xffffffdf, 0xffffffff, }, new uint [] {0xffffffc6, 0xffffffe6, }, 
			new uint [] {0xffffffd9, 0xfffffff9, }, new uint [] {0xffffffd7, 0xfffffff7, }, 
			new uint [] {0xffffffc1, 0xffffffe1, }, new uint [] {0xffffffd0, 0xfffffff0, }, 
			new uint [] {0xffffffd2, 0xfffffff2, }, new uint [] {0xffffffcf, 0xffffffef, }, 
			new uint [] {0xffffffcc, 0xffffffec, }, new uint [] {0xffffffc4, 0xffffffe4, }, 
			new uint [] {0xffffffd6, 0xfffffff6, }, new uint [] {0xffffffdc, 0xfffffffc, }, 
			new uint [] {0x5c, 0x2f, }, new uint [] {0xffffffd1, 0xfffffff1, }, 
			new uint [] {0xffffffde, 0xfffffffe, }, new uint [] {0xffffffd3, 0xfffffff3, }, 
			new uint [] {0xffffffcd, 0xffffffed, }, new uint [] {0xffffffc9, 0xffffffe9, }, 
			new uint [] {0xffffffd4, 0xfffffff4, }, new uint [] {0xffffffd8, 0xfffffff8, }, 
			new uint [] {0xffffffc2, 0xffffffe2, }, new uint [] {0xffffffc0, 0xffffffe0, }, 
			new uint [] {0x2e, 0x2c, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [35] = new KeyboardLayout (1034, "Spanish keyboard layout", 0, 0, new uint [][] {
			new uint [] {0xffffffba, 0xffffffaa, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffb7, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, }, 
			new uint [] {0xffffffa1, 0xffffffbf, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x60, 0x5e, }, 
			new uint [] {0x2b, 0x2a, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff1, 0xffffffd1, }, new uint [] {0xffffffb4, 0xffffffa8, }, 
			new uint [] {0xffffffe7, 0xffffffc7, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [36] = new KeyboardLayout (1040, "Italian keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x5c, 0x7c, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffa3, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, }, 
			new uint [] {0xffffffec, 0x5e, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffe8, 0xffffffe9, }, 
			new uint [] {0x2b, 0x2a, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff2, 0xffffffe7, }, new uint [] {0xffffffe0, 0xffffffb0, }, 
			new uint [] {0xfffffff9, 0xffffffa7, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [37] = new KeyboardLayout (1039, "Icelandic keyboard layout", 0, 0, new uint [][] {
			new uint [] {0xffffffb0, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0xfffffff6, 0xffffffd6, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffff0, 0xffffffd0, }, 
			new uint [] {0x27, 0x3f, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xffffffe6, 0xffffffc6, }, new uint [] {0xffffffb4, 0xffffffc4, }, 
			new uint [] {0x2b, 0x2a, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0xfffffffe, 0xffffffde, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [38] = new KeyboardLayout (1038, "Hungarian keyboard layout", 0, 1, new uint [][] {
			new uint [] {0x30, 0xffffffa7, }, new uint [] {0x31, 0x27, 0x7e, }, 
			new uint [] {0x32, 0x22, 0xffffffb7, }, new uint [] {0x33, 0x2b, 0x5e, }, 
			new uint [] {0x34, 0x21, 0xffffffa2, }, new uint [] {0x35, 0x25, 0x30, 0xffffffb0, }, 
			new uint [] {0x36, 0x2f, 0xffffffb2, }, new uint [] {0x37, 0x3d, 0x60, }, 
			new uint [] {0x38, 0x28, 0xffffffff, }, new uint [] {0x39, 0x29, 0xffffffb4, }, 
			new uint [] {0xfffffff6, 0xffffffd6, 0xffffffbd, }, new uint [] {0xfffffffc, 0xffffffdc, 0xffffffa8, }, 
			new uint [] {0xfffffff3, 0xffffffd3, 0xffffffb8, }, new uint [] {0x71, 0x51, 0x5c, }, 
			new uint [] {0x77, 0x57, 0x7c, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, 0xffffffcd, }, new uint [] {0x6f, 0x4f, 0xfffffff8, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffff5, 0xffffffd5, 0xfffffff7, }, 
			new uint [] {0xfffffffa, 0xffffffda, 0xffffffd7, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, 0xfffffff0, }, new uint [] {0x64, 0x44, 0xffffffd0, }, 
			new uint [] {0x66, 0x46, 0x5b, }, new uint [] {0x67, 0x47, 0x5d, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, 0xffffffed, }, 
			new uint [] {0x6b, 0x4b, 0xffffffb3, }, new uint [] {0x6c, 0x4c, 0xffffffa3, }, 
			new uint [] {0xffffffe9, 0xffffffc9, 0x24, }, new uint [] {0xffffffe1, 0xffffffc1, 0xffffffdf, }, 
			new uint [] {0xfffffffb, 0xffffffdb, 0xffffffa4, }, new uint [] {0x79, 0x59, 0x3e, }, 
			new uint [] {0x78, 0x58, 0x23, }, new uint [] {0x63, 0x43, 0x26, }, 
			new uint [] {0x76, 0x56, 0x40, }, new uint [] {0x62, 0x42, 0x7b, }, 
			new uint [] {0x6e, 0x4e, 0x7d, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3f, 0x3b, }, new uint [] {0x2e, 0x3a, 0x3e, }, 
			new uint [] {0x2d, 0x5f, 0x2a, }, new uint [] {0xffffffed, 0xffffffcd, 0x3c, }, 
			new uint [] {}, 		});
		table [39] = new KeyboardLayout (1045, "Polish (programmer's) keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, 0xffffffa7, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, 0xffffffea, 0xffffffca, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, 0xfffffff3, 0xffffffd3, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x5b, 0x7b, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xffffffb1, 0xffffffa1, }, 
			new uint [] {0x73, 0x53, 0xffffffb6, 0xffffffa6, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, 0xffffffb3, 0xffffffa3, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffbf, 0xffffffaf, }, 
			new uint [] {0x78, 0x58, 0xffffffbc, 0xffffffac, }, new uint [] {0x63, 0x43, 0xffffffe6, 0xffffffc6, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, 0xfffffff1, 0xffffffd1, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, 0x7c, }, 
			new uint [] {}, 		});
		table [40] = new KeyboardLayout (1060, "Slovenian keyboard layout", 0, 1, new uint [][] {
			new uint [] {0xffffffb8, 0xffffffa8, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, }, 
			new uint [] {0x2b, 0x2a, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffb9, 0xffffffa9, }, 
			new uint [] {0xfffffff0, 0xffffffd0, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xffffffe8, 0xffffffc8, }, new uint [] {0xffffffe6, 0xffffffc6, }, 
			new uint [] {0xffffffbe, 0xffffffae, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [41] = new KeyboardLayout (3098, "Serbian keyboard layout sr", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, }, 
			new uint [] {0x2b, 0x2a, }, new uint [] {0xffffffa9, 0xffffffb9, }, 
			new uint [] {0xffffffaa, 0xffffffba, }, new uint [] {0xffffffc5, 0xffffffe5, }, 
			new uint [] {0xffffffd2, 0xfffffff2, }, new uint [] {0xffffffd4, 0xfffffff4, }, 
			new uint [] {0xffffffda, 0xfffffffa, }, new uint [] {0xffffffd5, 0xfffffff5, }, 
			new uint [] {0xffffffc9, 0xffffffe9, }, new uint [] {0xffffffcf, 0xffffffef, }, 
			new uint [] {0xffffffd0, 0xfffffff0, }, new uint [] {0xffffffdb, 0xfffffffb, }, 
			new uint [] {0x5b, 0x5d, }, new uint [] {0xffffffc1, 0xffffffe1, }, 
			new uint [] {0xffffffd3, 0xfffffff3, }, new uint [] {0xffffffc4, 0xffffffe4, }, 
			new uint [] {0xffffffc6, 0xffffffe6, }, new uint [] {0xffffffc7, 0xffffffe7, }, 
			new uint [] {0xffffffc8, 0xffffffe8, }, new uint [] {0xffffffa8, 0xffffffb8, }, 
			new uint [] {0xffffffcb, 0xffffffeb, }, new uint [] {0xffffffcc, 0xffffffec, }, 
			new uint [] {0xffffffde, 0xfffffffe, }, new uint [] {0xffffffab, 0xffffffbb, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0xffffffa1, 0xffffffb1, }, 
			new uint [] {0xffffffaf, 0xffffffbf, }, new uint [] {0xffffffc3, 0xffffffe3, }, 
			new uint [] {0xffffffd7, 0xfffffff7, }, new uint [] {0xffffffc2, 0xffffffe2, }, 
			new uint [] {0xffffffce, 0xffffffee, }, new uint [] {0xffffffcd, 0xffffffed, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0xffffffd6, 0xfffffff6, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [42] = new KeyboardLayout (3098, "Serbian keyboard layout us,sr", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, 0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, 0x36, 0x26, }, new uint [] {0x37, 0x26, 0x37, 0x2f, }, 
			new uint [] {0x38, 0x2a, 0x38, 0x28, }, new uint [] {0x39, 0x28, 0x39, 0x29, }, 
			new uint [] {0x30, 0x29, 0x30, 0x3d, }, new uint [] {0x2d, 0x5f, 0x27, 0x3f, }, 
			new uint [] {0x3d, 0x2b, 0x2b, 0x2a, }, new uint [] {0x71, 0x51, 0xffffffa9, 0xffffffb9, }, 
			new uint [] {0x77, 0x57, 0xffffffaa, 0xffffffba, }, new uint [] {0x65, 0x45, 0xffffffc5, 0xffffffe5, }, 
			new uint [] {0x72, 0x52, 0xffffffd2, 0xfffffff2, }, new uint [] {0x74, 0x54, 0xffffffd4, 0xfffffff4, }, 
			new uint [] {0x79, 0x59, 0xffffffda, 0xfffffffa, }, new uint [] {0x75, 0x55, 0xffffffd5, 0xfffffff5, }, 
			new uint [] {0x69, 0x49, 0xffffffc9, 0xffffffe9, }, new uint [] {0x6f, 0x4f, 0xffffffcf, 0xffffffef, }, 
			new uint [] {0x70, 0x50, 0xffffffd0, 0xfffffff0, }, new uint [] {0x5b, 0x7b, 0xffffffdb, 0xfffffffb, }, 
			new uint [] {0x5d, 0x7d, 0x5b, 0x5d, }, new uint [] {0x61, 0x41, 0xffffffc1, 0xffffffe1, }, 
			new uint [] {0x73, 0x53, 0xffffffd3, 0xfffffff3, }, new uint [] {0x64, 0x44, 0xffffffc4, 0xffffffe4, }, 
			new uint [] {0x66, 0x46, 0xffffffc6, 0xffffffe6, }, new uint [] {0x67, 0x47, 0xffffffc7, 0xffffffe7, }, 
			new uint [] {0x68, 0x48, 0xffffffc8, 0xffffffe8, }, new uint [] {0x6a, 0x4a, 0xffffffa8, 0xffffffb8, }, 
			new uint [] {0x6b, 0x4b, 0xffffffcb, 0xffffffeb, }, new uint [] {0x6c, 0x4c, 0xffffffcc, 0xffffffec, }, 
			new uint [] {0x3b, 0x3a, 0xffffffde, 0xfffffffe, }, new uint [] {0x27, 0x22, 0xffffffab, 0xffffffbb, }, 
			new uint [] {0x5c, 0x7c, 0x2d, 0x5f, }, new uint [] {0x7a, 0x5a, 0xffffffa1, 0xffffffb1, }, 
			new uint [] {0x78, 0x58, 0xffffffaf, 0xffffffbf, }, new uint [] {0x63, 0x43, 0xffffffc3, 0xffffffe3, }, 
			new uint [] {0x76, 0x56, 0xffffffd7, 0xfffffff7, }, new uint [] {0x62, 0x42, 0xffffffc2, 0xffffffe2, }, 
			new uint [] {0x6e, 0x4e, 0xffffffce, 0xffffffee, }, new uint [] {0x6d, 0x4d, 0xffffffcd, 0xffffffed, }, 
			new uint [] {0x2c, 0x3c, 0x2c, 0x3b, }, new uint [] {0x2e, 0x3e, 0x2e, 0x3a, }, 
			new uint [] {0x2f, 0x3f, 0xffffffd6, 0xfffffff6, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [43] = new KeyboardLayout (1050, "Croatian keyboard layout", 0, 1, new uint [][] {
			new uint [] {0xffffffb8, 0xffffffa8, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, }, 
			new uint [] {0x2b, 0x2a, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffb9, 0xffffffa9, }, 
			new uint [] {0xfffffff0, 0xffffffd0, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xffffffe8, 0xffffffc8, }, new uint [] {0xffffffe6, 0xffffffc6, }, 
			new uint [] {0xffffffbe, 0xffffffae, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [44] = new KeyboardLayout (1050, "Croatian keyboard layout (specific)", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x5b, 0x7b, 0xffffffb9, 0xffffffa9, }, 
			new uint [] {0x5d, 0x7d, 0xfffffff0, 0xffffffd0, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x3b, 0x3a, 0xffffffe8, 0xffffffc8, }, new uint [] {0x27, 0x22, 0xffffffe6, 0xffffffc6, }, 
			new uint [] {0x5c, 0x7c, 0xffffffbe, 0xffffffae, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, 0x7c, }, 
			new uint [] {}, 		});
		table [45] = new KeyboardLayout (1041, "Japanese 106 keyboard layout", 3, 7, new uint [][] {
			new uint [] {0x31, 0x21, }, new uint [] {0x32, 0x22, }, 
			new uint [] {0x33, 0x23, }, new uint [] {0x34, 0x24, }, 
			new uint [] {0x35, 0x25, }, new uint [] {0x36, 0x26, }, 
			new uint [] {0x37, 0x27, }, new uint [] {0x38, 0x28, }, 
			new uint [] {0x39, 0x29, }, new uint [] {0x30, 0x7e, }, 
			new uint [] {0x2d, 0x3d, }, new uint [] {0x5e, 0x7e, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x40, 0x60, }, 
			new uint [] {0x5b, 0x7b, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x3b, 0x2b, }, new uint [] {0x3a, 0x2a, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x5c, 0x5f, }, 
			new uint [] {}, 		});
		table [46] = new KeyboardLayout (1041, "Japanese pc98x1 keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x31, 0x21, }, new uint [] {0x32, 0x22, }, 
			new uint [] {0x33, 0x23, }, new uint [] {0x34, 0x24, }, 
			new uint [] {0x35, 0x25, }, new uint [] {0x36, 0x26, }, 
			new uint [] {0x37, 0x27, }, new uint [] {0x38, 0x28, }, 
			new uint [] {0x39, 0x29, }, new uint [] {0x30, }, 
			new uint [] {0x2d, 0x3d, }, new uint [] {0x5e, 0x60, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x40, 0x7e, }, 
			new uint [] {0x5b, 0x7b, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x3b, 0x2b, }, new uint [] {0x3a, 0x2a, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x5c, 0x5f, }, 
			new uint [] {}, 		});
		table [47] = new KeyboardLayout (1051, "Slovak keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x3b, 0x30, }, new uint [] {0x2b, 0x31, }, 
			new uint [] {0xffffffb5, 0x32, }, new uint [] {0xffffffb9, 0x33, }, 
			new uint [] {0xffffffe8, 0x34, }, new uint [] {0xffffffbb, 0x35, }, 
			new uint [] {0xffffffbe, 0x36, }, new uint [] {0xfffffffd, 0x37, }, 
			new uint [] {0xffffffe1, 0x38, }, new uint [] {0xffffffed, 0x39, }, 
			new uint [] {0xffffffe9, 0x30, }, new uint [] {0x3d, 0x25, }, 
			new uint [] {0x27, 0x76, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffffa, 0x2f, }, 
			new uint [] {0xffffffe4, 0x28, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff4, 0x22, }, new uint [] {0xffffffa7, 0x21, }, 
			new uint [] {0xfffffff2, 0x29, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3f, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [48] = new KeyboardLayout (1051, "Slovak and Czech keyboard layout without dead keys", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x77, 0x57, 0xffffffec, 0xffffffcc, }, new uint [] {0x65, 0x45, 0xffffffe9, 0xffffffc9, }, 
			new uint [] {0x72, 0x52, 0xfffffff8, 0xffffffd8, }, new uint [] {0x74, 0x54, 0xffffffbb, 0xffffffab, }, 
			new uint [] {0x79, 0x59, 0xfffffffd, 0xffffffdd, }, new uint [] {0x75, 0x55, 0xfffffff9, 0xffffffd9, }, 
			new uint [] {0x69, 0x49, 0xffffffed, 0xffffffcd, }, new uint [] {0x6f, 0x4f, 0xfffffff3, 0xffffffd3, }, 
			new uint [] {0x70, 0x50, 0xfffffff6, 0xffffffd6, }, new uint [] {0x5b, 0x7b, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xffffffe1, 0xffffffc1, }, 
			new uint [] {0x73, 0x53, 0xffffffb9, 0xffffffa9, }, new uint [] {0x64, 0x44, 0xffffffef, 0xffffffcf, }, 
			new uint [] {0x66, 0x46, 0xffffffeb, 0xffffffcb, }, new uint [] {0x67, 0x47, 0xffffffe0, 0xffffffc0, }, 
			new uint [] {0x68, 0x48, 0xfffffffa, 0xffffffda, }, new uint [] {0x6a, 0x4a, 0xfffffffc, 0xffffffdc, }, 
			new uint [] {0x6b, 0x4b, 0xfffffff4, 0xffffffd4, }, new uint [] {0x6c, 0x4c, 0xffffffb5, 0xffffffa5, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffbe, 0xffffffae, }, 
			new uint [] {0x78, 0x58, 0xffffffa4, }, new uint [] {0x63, 0x43, 0xffffffe8, 0xffffffc8, }, 
			new uint [] {0x76, 0x56, 0xffffffe7, 0xffffffc7, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, 0xfffffff2, 0xffffffd2, }, new uint [] {0x6d, 0x4d, 0xffffffe5, 0xffffffc5, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [49] = new KeyboardLayout (1029, "Czech keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x3b, }, new uint [] {0x2b, 0x31, }, 
			new uint [] {0xffffffec, 0x32, }, new uint [] {0xffffffb9, 0x33, }, 
			new uint [] {0xffffffe8, 0x34, }, new uint [] {0xfffffff8, 0x35, }, 
			new uint [] {0xffffffbe, 0x36, }, new uint [] {0xfffffffd, 0x37, }, 
			new uint [] {0xffffffe1, 0x38, }, new uint [] {0xffffffed, 0x39, }, 
			new uint [] {0xffffffe9, 0x30, 0xffffffbd, 0x29, }, new uint [] {0x3d, 0x25, }, 
			new uint [] {}, new uint [] {0x71, 0x51, 0x5c, }, 
			new uint [] {0x77, 0x57, 0x7c, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffffa, 0x2f, 0x5b, 0x7b, }, 
			new uint [] {0x29, 0x28, 0x5d, 0x7d, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, 0xfffffff0, }, new uint [] {0x64, 0x44, 0xffffffd0, }, 
			new uint [] {0x66, 0x46, 0x5b, }, new uint [] {0x67, 0x47, 0x5d, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, 0xffffffb3, }, new uint [] {0x6c, 0x4c, 0xffffffa3, }, 
			new uint [] {0xfffffff9, 0x22, 0x24, }, new uint [] {0xffffffa7, 0x21, 0xffffffdf, }, 
			new uint [] {0xffffffa8, 0x27, }, new uint [] {0x7a, 0x5a, 0x3e, }, 
			new uint [] {0x78, 0x58, 0x23, }, new uint [] {0x63, 0x43, 0x26, }, 
			new uint [] {0x76, 0x56, 0x40, }, new uint [] {0x62, 0x42, 0x7b, }, 
			new uint [] {0x6e, 0x4e, 0x7d, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3f, 0x3c, }, new uint [] {0x2e, 0x3a, 0x3e, }, 
			new uint [] {0x2d, 0x5f, 0x2a, }, new uint [] {0x3c, 0x3e, 0x5c, 0x7c, }, 
			new uint [] {}, 		});
		table [50] = new KeyboardLayout (1029, "Czech keyboard layout cz", 0, 1, new uint [][] {
			new uint [] {0x3b, }, new uint [] {0x2b, 0x31, }, 
			new uint [] {0xffffffec, 0x32, }, new uint [] {0xffffffb9, 0x33, }, 
			new uint [] {0xffffffe8, 0x34, }, new uint [] {0xfffffff8, 0x35, }, 
			new uint [] {0xffffffbe, 0x36, }, new uint [] {0xfffffffd, 0x37, }, 
			new uint [] {0xffffffe1, 0x38, }, new uint [] {0xffffffed, 0x39, }, 
			new uint [] {0xffffffe9, 0x30, }, new uint [] {0x3d, 0x25, }, 
			new uint [] {0xffffffb4, 0xffffffb7, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffffa, 0x2f, }, 
			new uint [] {0x29, 0x28, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff9, 0x22, }, new uint [] {0xffffffa7, 0x21, }, 
			new uint [] {0xffffffa8, 0x27, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3f, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x5c, }, 
			new uint [] {}, 		});
		table [51] = new KeyboardLayout (1029, "Czech keyboard layout cz_qwerty", 0, 0, new uint [][] {
			new uint [] {0x3b, }, new uint [] {0x2b, 0x31, }, 
			new uint [] {0xffffffec, 0x32, }, new uint [] {0xffffffb9, 0x33, }, 
			new uint [] {0xffffffe8, 0x34, }, new uint [] {0xfffffff8, 0x35, }, 
			new uint [] {0xffffffbe, 0x36, }, new uint [] {0xfffffffd, 0x37, }, 
			new uint [] {0xffffffe1, 0x38, }, new uint [] {0xffffffed, 0x39, }, 
			new uint [] {0xffffffe9, 0x30, }, new uint [] {0x3d, 0x25, }, 
			new uint [] {0xffffffb4, 0xffffffb7, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffffa, 0x2f, }, 
			new uint [] {0x29, 0x28, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff9, 0x22, }, new uint [] {0xffffffa7, 0x21, }, 
			new uint [] {0xffffffa8, 0x27, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3f, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x5c, }, 
			new uint [] {}, 		});
		table [52] = new KeyboardLayout (1034, "Latin American keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x7c, 0xffffffb0, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, }, 
			new uint [] {0xffffffbf, 0xffffffa1, }, new uint [] {0x71, 0x51, 0x40, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffb4, 0xffffffa8, }, 
			new uint [] {0x2b, 0x2a, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffff1, 0xffffffd1, }, new uint [] {0x7b, 0x5b, 0x5e, }, 
			new uint [] {0x7d, 0x5d, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [53] = new KeyboardLayout (1063, "Lithuanian (Baltic) keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0xffffffe0, 0xffffffc0, }, 
			new uint [] {0xffffffe8, 0xffffffc8, }, new uint [] {0xffffffe6, 0xffffffc6, }, 
			new uint [] {0xffffffeb, 0xffffffcb, }, new uint [] {0xffffffe1, 0xffffffc1, }, 
			new uint [] {0xfffffff0, 0xffffffd0, }, new uint [] {0xfffffff8, 0xffffffd8, }, 
			new uint [] {0xfffffffb, 0xffffffdb, }, new uint [] {0xffffffa5, 0x28, }, 
			new uint [] {0xffffffb4, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0xfffffffe, 0xffffffde, }, new uint [] {0x5c, 0x7c, }, 
			new uint [] {0x71, 0x51, }, new uint [] {0x77, 0x57, }, 
			new uint [] {0x65, 0x45, }, new uint [] {0x72, 0x52, }, 
			new uint [] {0x74, 0x54, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x75, 0x55, }, new uint [] {0x69, 0x49, }, 
			new uint [] {0x6f, 0x4f, }, new uint [] {0x70, 0x50, }, 
			new uint [] {0x5b, 0x7b, }, new uint [] {0x5d, 0x7d, }, 
			new uint [] {0x61, 0x41, }, new uint [] {0x73, 0x53, }, 
			new uint [] {0x64, 0x44, }, new uint [] {0x66, 0x46, }, 
			new uint [] {0x67, 0x47, }, new uint [] {0x68, 0x48, }, 
			new uint [] {0x6a, 0x4a, }, new uint [] {0x6b, 0x4b, }, 
			new uint [] {0x6c, 0x4c, }, new uint [] {0x3b, 0x3a, }, 
			new uint [] {0x27, 0x22, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {}, 
			new uint [] {}, 		});
		table [54] = new KeyboardLayout (1055, "Turkish keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x22, 0xffffffe9, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x27, }, new uint [] {0x33, 0x5e, 0x23, }, 
			new uint [] {0x34, 0x2b, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, 0x7b, }, 
			new uint [] {0x38, 0x28, 0x5b, }, new uint [] {0x39, 0x29, 0x5d, }, 
			new uint [] {0x30, 0x3d, 0x7d, }, new uint [] {0x2a, 0x3f, 0x5c, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x71, 0x51, 0x40, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0xfffffffd, 0x49, 0xffffffee, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xfffffff0, 0xffffffd0, }, 
			new uint [] {0xfffffffc, 0xffffffdc, 0x7e, }, new uint [] {0x61, 0x41, 0xffffffe6, }, 
			new uint [] {0x73, 0x53, 0xffffffdf, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xfffffffe, 0xffffffde, }, new uint [] {0x69, 0xffffffdd, }, 
			new uint [] {0x2c, 0x3b, 0x60, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe7, 0xffffffc7, }, 
			new uint [] {0x2e, 0x3a, }, new uint [] {}, 
			new uint [] {}, 		});
		table [55] = new KeyboardLayout (1055, "Turkish keyboard layout tr", 0, 0, new uint [][] {
			new uint [] {0x22, 0x5c, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x27, }, new uint [] {0x33, 0x5e, }, 
			new uint [] {0x34, 0x2b, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x2a, 0x3f, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0xffffffb9, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffbb, 0xffffffab, }, 
			new uint [] {0xfffffffc, 0xffffffdc, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0xffffffba, 0xffffffaa, }, new uint [] {0x69, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe7, 0xffffffc7, }, 
			new uint [] {0x2e, 0x3a, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [56] = new KeyboardLayout (1055, "Turkish keyboard layout trf", 0, 0, new uint [][] {
			new uint [] {0x2b, 0x2a, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x5e, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x27, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x3d, }, new uint [] {0x2f, 0x3f, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x66, 0x46, }, 
			new uint [] {0x67, 0x47, }, new uint [] {0xffffffbb, 0xffffffab, }, 
			new uint [] {0xffffffb9, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x64, 0x44, }, new uint [] {0x72, 0x52, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x68, 0x48, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x61, 0x41, }, new uint [] {0xfffffffc, 0xffffffdc, }, 
			new uint [] {0x74, 0x54, }, new uint [] {0x6b, 0x4b, }, 
			new uint [] {0x6d, 0x4d, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0xffffffba, 0xffffffaa, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0x76, 0x56, }, 
			new uint [] {0x63, 0x43, }, new uint [] {0xffffffe7, 0xffffffc7, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {0x73, 0x53, }, 
			new uint [] {0x62, 0x42, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [57] = new KeyboardLayout (1037, "Israelian keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, 0x3b, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0x2f, }, 
			new uint [] {0x77, 0x57, 0x27, }, new uint [] {0x65, 0x45, 0xfffffff7, }, 
			new uint [] {0x72, 0x52, 0xfffffff8, }, new uint [] {0x74, 0x54, 0xffffffe0, }, 
			new uint [] {0x79, 0x59, 0xffffffe8, }, new uint [] {0x75, 0x55, 0xffffffe5, }, 
			new uint [] {0x69, 0x49, 0xffffffef, }, new uint [] {0x6f, 0x4f, 0xffffffed, }, 
			new uint [] {0x70, 0x50, 0xfffffff4, }, new uint [] {0x5b, 0x7b, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xfffffff9, }, 
			new uint [] {0x73, 0x53, 0xffffffe3, }, new uint [] {0x64, 0x44, 0xffffffe2, }, 
			new uint [] {0x66, 0x46, 0xffffffeb, }, new uint [] {0x67, 0x47, 0xfffffff2, }, 
			new uint [] {0x68, 0x48, 0xffffffe9, }, new uint [] {0x6a, 0x4a, 0xffffffe7, }, 
			new uint [] {0x6b, 0x4b, 0xffffffec, }, new uint [] {0x6c, 0x4c, 0xffffffea, }, 
			new uint [] {0x3b, 0x3a, 0xfffffff3, }, new uint [] {0x27, 0x22, 0x2c, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffe6, }, 
			new uint [] {0x78, 0x58, 0xfffffff1, }, new uint [] {0x63, 0x43, 0xffffffe1, }, 
			new uint [] {0x76, 0x56, 0xffffffe4, }, new uint [] {0x62, 0x42, 0xfffffff0, }, 
			new uint [] {0x6e, 0x4e, 0xffffffee, }, new uint [] {0x6d, 0x4d, 0xfffffff6, }, 
			new uint [] {0x2c, 0x3c, 0xfffffffa, }, new uint [] {0x2e, 0x3e, 0xfffffff5, }, 
			new uint [] {0x2f, 0x3f, 0x2e, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [58] = new KeyboardLayout (1037, "Israelian phonetic keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xfffffff7, }, 
			new uint [] {0x77, 0x57, 0xffffffe5, }, new uint [] {0x65, 0x45, 0xffffffe0, }, 
			new uint [] {0x72, 0x52, 0xfffffff8, }, new uint [] {0x74, 0x54, 0xfffffffa, }, 
			new uint [] {0x79, 0x59, 0xfffffff2, }, new uint [] {0x75, 0x55, 0xffffffe5, }, 
			new uint [] {0x69, 0x49, 0xffffffe9, }, new uint [] {0x6f, 0x4f, 0xfffffff1, }, 
			new uint [] {0x70, 0x50, 0xfffffff4, }, new uint [] {0x5b, 0x7b, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xffffffe0, }, 
			new uint [] {0x73, 0x53, 0xfffffff9, }, new uint [] {0x64, 0x44, 0xffffffe3, }, 
			new uint [] {0x66, 0x46, 0xfffffff4, }, new uint [] {0x67, 0x47, 0xffffffe2, }, 
			new uint [] {0x68, 0x48, 0xffffffe4, }, new uint [] {0x6a, 0x4a, 0xffffffe9, }, 
			new uint [] {0x6b, 0x4b, 0xffffffeb, }, new uint [] {0x6c, 0x4c, 0xffffffec, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffe6, }, 
			new uint [] {0x78, 0x58, 0xffffffe7, }, new uint [] {0x63, 0x43, 0xfffffff6, }, 
			new uint [] {0x76, 0x56, 0xffffffe5, }, new uint [] {0x62, 0x42, 0xffffffe1, }, 
			new uint [] {0x6e, 0x4e, 0xfffffff0, }, new uint [] {0x6d, 0x4d, 0xffffffee, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [59] = new KeyboardLayout (1037, "Israelian Saharon keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xfffffff7, }, 
			new uint [] {0x77, 0x57, 0xfffffff1, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, 0xfffffff8, }, new uint [] {0x74, 0x54, 0xffffffe8, }, 
			new uint [] {0x79, 0x59, 0xffffffe3, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, 0xfffffff4, }, new uint [] {0x5b, 0x7b, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xffffffe0, }, 
			new uint [] {0x73, 0x53, 0xffffffe5, }, new uint [] {0x64, 0x44, 0xffffffec, }, 
			new uint [] {0x66, 0x46, 0xfffffffa, }, new uint [] {0x67, 0x47, 0xffffffe2, }, 
			new uint [] {0x68, 0x48, 0xffffffe4, }, new uint [] {0x6a, 0x4a, 0xfffffff9, }, 
			new uint [] {0x6b, 0x4b, 0xffffffeb, }, new uint [] {0x6c, 0x4c, 0xffffffe9, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffe6, }, 
			new uint [] {0x78, 0x58, 0xffffffe7, }, new uint [] {0x63, 0x43, 0xfffffff6, }, 
			new uint [] {0x76, 0x56, 0xfffffff2, }, new uint [] {0x62, 0x42, 0xffffffe1, }, 
			new uint [] {0x6e, 0x4e, 0xfffffff0, }, new uint [] {0x6d, 0x4d, 0xffffffee, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [60] = new KeyboardLayout (1033, "VNC keyboard layout", 4, 8, new uint [][] {
			new uint [] {0x31, 0x21, }, new uint [] {0x32, 0x40, }, 
			new uint [] {0x33, 0x23, }, new uint [] {0x34, 0x24, }, 
			new uint [] {0x35, 0x25, }, new uint [] {0x36, 0x5e, }, 
			new uint [] {0x37, 0x26, }, new uint [] {0x38, 0x2a, }, 
			new uint [] {0x39, 0x28, }, new uint [] {0x30, 0x29, }, 
			new uint [] {0x2d, 0x5f, }, new uint [] {0x3d, 0x2b, }, 
			new uint [] {0x5b, 0x7b, }, new uint [] {0x5d, 0x7d, }, 
			new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x60, 0x7e, }, new uint [] {0x2c, 0x3c, }, 
			new uint [] {0x2e, 0x3e, }, new uint [] {0x2f, 0x3f, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x62, 0x42, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x64, 0x44, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x69, 0x49, }, 
			new uint [] {0x6a, 0x4a, }, new uint [] {0x6b, 0x4b, }, 
			new uint [] {0x6c, 0x4c, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x73, 0x53, }, 
			new uint [] {0x74, 0x54, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x77, 0x57, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x79, 0x59, }, 
			new uint [] {0x7a, 0x5a, }, new uint [] {}, 
			new uint [] {}, 		});
		table [61] = new KeyboardLayout (1032, "Greek keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, }, 
			new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, }, 
			new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, }, 
			new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0x3b, 0x3a, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, 0xffffffe5, 0xffffffc5, }, 
			new uint [] {0x72, 0x52, 0xfffffff1, 0xffffffd1, }, new uint [] {0x74, 0x54, 0xfffffff4, 0xffffffd4, }, 
			new uint [] {0x79, 0x59, 0xfffffff5, 0xffffffd5, }, new uint [] {0x75, 0x55, 0xffffffe8, 0xffffffc8, }, 
			new uint [] {0x69, 0x49, 0xffffffe9, 0xffffffc9, }, new uint [] {0x6f, 0x4f, 0xffffffef, 0xffffffcf, }, 
			new uint [] {0x70, 0x50, 0xfffffff0, 0xffffffd0, }, new uint [] {0x5b, 0x7b, }, 
			new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xffffffe1, 0xffffffc1, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, 0xffffffe4, 0xffffffc4, }, 
			new uint [] {0x66, 0x46, 0xfffffff6, 0xffffffd6, }, new uint [] {0x67, 0x47, 0xffffffe3, 0xffffffc3, }, 
			new uint [] {0x68, 0x48, 0xffffffe7, 0xffffffc7, }, new uint [] {0x6a, 0x4a, 0xffffffee, 0xffffffce, }, 
			new uint [] {0x6b, 0x4b, 0xffffffea, 0xffffffca, }, new uint [] {0x6c, 0x4c, 0xffffffeb, 0xffffffcb, }, 
			new uint [] {0x3b, 0x3a, 0xffffffb4, 0xffffffa8, }, new uint [] {0x27, 0x22, }, 
			new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffe6, 0xffffffc6, }, 
			new uint [] {0x78, 0x58, 0xfffffff7, 0xffffffd7, }, new uint [] {0x63, 0x43, 0xfffffff8, 0xffffffd8, }, 
			new uint [] {0x76, 0x56, 0xfffffff9, 0xffffffd9, }, new uint [] {0x62, 0x42, 0xffffffe2, 0xffffffc2, }, 
			new uint [] {0x6e, 0x4e, 0xffffffed, 0xffffffcd, }, new uint [] {0x6d, 0x4d, 0xffffffec, 0xffffffcc, }, 
			new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, }, 
			new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, }, 
			new uint [] {}, 		});
		table [62] = new KeyboardLayout (1054, "Thai (Kedmanee)  keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x60, 0x7e, 0x5f, 0x25, }, new uint [] {0x31, 0x21, 0xffffffe5, 0x2b, }, 
			new uint [] {0x32, 0x40, 0x2f, 0xfffffff1, }, new uint [] {0x33, 0x23, 0x2d, 0xfffffff2, }, 
			new uint [] {0x34, 0x24, 0xffffffc0, 0xfffffff3, }, new uint [] {0x35, 0x25, 0xffffffb6, 0xfffffff4, }, 
			new uint [] {0x36, 0x5e, 0xffffffd8, 0xffffffd9, }, new uint [] {0x37, 0x26, 0xffffffd6, 0xffffffdf, }, 
			new uint [] {0x38, 0x2a, 0xffffffa4, 0xfffffff5, }, new uint [] {0x39, 0x28, 0xffffffb5, 0xfffffff6, }, 
			new uint [] {0x30, 0x29, 0xffffffa8, 0xfffffff7, }, new uint [] {0x2d, 0x5f, 0xffffffa2, 0xfffffff8, }, 
			new uint [] {0x3d, 0x2b, 0xffffffaa, 0xfffffff9, }, new uint [] {0x71, 0x51, 0xffffffe6, 0xfffffff0, }, 
			new uint [] {0x77, 0x57, 0xffffffe4, 0x22, }, new uint [] {0x65, 0x45, 0xffffffd3, 0xffffffae, }, 
			new uint [] {0x72, 0x52, 0xffffffbe, 0xffffffb1, }, new uint [] {0x74, 0x54, 0xffffffd0, 0xffffffb8, }, 
			new uint [] {0x79, 0x59, 0xffffffd1, 0xffffffed, }, new uint [] {0x75, 0x55, 0xffffffd5, 0xffffffea, }, 
			new uint [] {0x69, 0x49, 0xffffffc3, 0xffffffb3, }, new uint [] {0x6f, 0x4f, 0xffffffb9, 0xffffffcf, }, 
			new uint [] {0x70, 0x50, 0xffffffc2, 0xffffffad, }, new uint [] {0x5b, 0x7b, 0xffffffba, 0xffffffb0, }, 
			new uint [] {0x5d, 0x7d, 0xffffffc5, 0x2c, }, new uint [] {0x61, 0x41, 0xffffffbf, 0xffffffc4, }, 
			new uint [] {0x73, 0x53, 0xffffffcb, 0xffffffa6, }, new uint [] {0x64, 0x44, 0xffffffa1, 0xffffffaf, }, 
			new uint [] {0x66, 0x46, 0xffffffb4, 0xffffffe2, }, new uint [] {0x67, 0x47, 0xffffffe0, 0xffffffac, }, 
			new uint [] {0x68, 0x48, 0xffffffe9, 0xffffffe7, }, new uint [] {0x6a, 0x4a, 0xffffffe8, 0xffffffeb, }, 
			new uint [] {0x6b, 0x4b, 0xffffffd2, 0xffffffc9, }, new uint [] {0x6c, 0x4c, 0xffffffca, 0xffffffc8, }, 
			new uint [] {0x3b, 0x3a, 0xffffffc7, 0xffffffab, }, new uint [] {0x27, 0x22, 0xffffffa7, 0x2e, }, 
			new uint [] {0x5c, 0x7c, 0xffffffa3, 0xffffffa5, }, new uint [] {0x7a, 0x5a, 0xffffffbc, 0x28, }, 
			new uint [] {0x78, 0x58, 0xffffffbb, 0x29, }, new uint [] {0x63, 0x43, 0xffffffe1, 0xffffffa9, }, 
			new uint [] {0x76, 0x56, 0xffffffcd, 0xffffffce, }, new uint [] {0x62, 0x42, 0xffffffda, }, 
			new uint [] {0x6e, 0x4e, 0xffffffd7, 0xffffffec, }, new uint [] {0x6d, 0x4d, 0xffffffb7, 0x3f, }, 
			new uint [] {0x2c, 0x3c, 0xffffffc1, 0xffffffb2, }, new uint [] {0x2e, 0x3e, 0xffffffe3, 0xffffffcc, }, 
			new uint [] {0x2f, 0x3f, 0xffffffbd, 0xffffffc6, }, new uint [] {}, 
			new uint [] {}, 		});
		table [63] = new KeyboardLayout (1043, "Dutch keyboard layout", 0, 0, new uint [][] {
			new uint [] {0x40, 0xffffffa7, }, new uint [] {0x31, 0x21, }, 
			new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, }, 
			new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, }, 
			new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x5f, }, 
			new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, }, 
			new uint [] {0x30, 0x27, }, new uint [] {0x2f, 0x3f, }, 
			new uint [] {0xffffffb0, 0x7e, }, new uint [] {0x71, 0x51, }, 
			new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, }, 
			new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, }, 
			new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, }, 
			new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, }, 
			new uint [] {0x70, 0x50, }, new uint [] {0xffffffa8, 0x7e, }, 
			new uint [] {0x2a, 0x7c, }, new uint [] {0x61, 0x41, }, 
			new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, }, 
			new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, }, 
			new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, }, 
			new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, }, 
			new uint [] {0x2b, 0xffffffb1, }, new uint [] {0x27, 0x60, }, 
			new uint [] {0x3c, 0x3e, }, new uint [] {0x7a, 0x5a, }, 
			new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, }, 
			new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, }, 
			new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, }, 
			new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, }, 
			new uint [] {0x2d, 0x3d, }, new uint [] {0x5b, 0x5d, }, 
			new uint [] {}, 		});


		rsxw.AddResource ("keyboard_table", table);

		short [][] scan_table = new short [][] {
			main_key_scan_qwerty, main_key_scan_dvorak, main_key_scan_abnt_qwerty,
			main_key_scan_qwerty_jp106, main_key_scan_vnc
		};
		rsxw.AddResource ("scan_table", scan_table);

		VirtualKeys [][] vkeys = new VirtualKeys [][] {
			main_key_vkey_qwerty, main_key_vkey_qwertz, main_key_vkey_dvorak,
			main_key_vkey_qwertz_105, main_key_vkey_azerty, main_key_vkey_qwerty_v2,
			main_key_vkey_abnt_qwerty, main_key_vkey_qwerty_jp106, main_key_vkey_vnc
		};
		int [][] vkey_table = new int [vkeys.Length][];
		for (int i = 0; i < vkeys.Length; i++) {
			int [] cp = new int [vkeys [i].Length];
			for (int r = 0; r < vkeys [i].Length; r++)
				cp [r] = (int) vkeys [i][r];
			vkey_table [i] = cp;
		}
		
		rsxw.AddResource ("vkey_table", vkey_table);
		
		rsxw.Close ();
	}