// Copyright (c) Six Labors. // Licensed under the Apache License, Version 2.0. // using System; using System.Collections.Generic; namespace SixLabors.Fonts.Unicode.Resources { internal static class UniversalShapingData { public static string[] Categories => new string[] { "O", "IND", "S", "GB", "B", "FMPst", "CGJ", "VMAbv", "VMPst", "VAbv", "VPst", "CMBlw", "VPre", "VBlw", "H", "VMBlw", "FMAbv", "CMAbv", "MBlw", "CS", "R", "HVM", "FMBlw", "SUB", "MPst", "MPre", "FAbv", "FPst", "FBlw", "MAbv", "SMAbv", "SMBlw", "RK", "VMPre", "ZWNJ", "ZWJ", "WJ", "VS", "N", "HN" }; public static Dictionary Decompositions => new() { { 0x9CB, new int[] { 0x9C7,0x9BE } }, { 0x9CC, new int[] { 0x9C7,0x9D7 } }, { 0xB48, new int[] { 0xB47,0xB56 } }, { 0xB4B, new int[] { 0xB47,0xB3E } }, { 0xB4C, new int[] { 0xB47,0xB57 } }, { 0xBCA, new int[] { 0xBC6,0xBBE } }, { 0xBCB, new int[] { 0xBC7,0xBBE } }, { 0xBCC, new int[] { 0xBC6,0xBD7 } }, { 0xC48, new int[] { 0xC46,0xC56 } }, { 0xCC0, new int[] { 0xCBF,0xCD5 } }, { 0xCC7, new int[] { 0xCC6,0xCD5 } }, { 0xCC8, new int[] { 0xCC6,0xCD6 } }, { 0xCCA, new int[] { 0xCC6,0xCC2 } }, { 0xCCB, new int[] { 0xCC6,0xCC2,0xCD5 } }, { 0xD4A, new int[] { 0xD46,0xD3E } }, { 0xD4B, new int[] { 0xD47,0xD3E } }, { 0xD4C, new int[] { 0xD46,0xD57 } }, { 0xDDA, new int[] { 0xDD9,0xDCA } }, { 0xDDC, new int[] { 0xDD9,0xDCF } }, { 0xDDD, new int[] { 0xDD9,0xDCF,0xDCA } }, { 0xDDE, new int[] { 0xDD9,0xDDF } }, { 0xF73, new int[] { 0xF71,0xF72 } }, { 0xF75, new int[] { 0xF71,0xF74 } }, { 0xF76, new int[] { 0xFB2,0xF80 } }, { 0xF78, new int[] { 0xFB3,0xF80 } }, { 0xF81, new int[] { 0xF71,0xF80 } }, { 0x1B3B, new int[] { 0x1B3A,0x1B35 } }, { 0x1B3D, new int[] { 0x1B3C,0x1B35 } }, { 0x1B40, new int[] { 0x1B3E,0x1B35 } }, { 0x1B41, new int[] { 0x1B3F,0x1B35 } }, { 0x1B43, new int[] { 0x1B42,0x1B35 } }, { 0x1112E, new int[] { 0x11131,0x11127 } }, { 0x1112F, new int[] { 0x11132,0x11127 } }, { 0x1134B, new int[] { 0x11347,0x1133E } }, { 0x1134C, new int[] { 0x11347,0x11357 } }, { 0x113C5, new int[] { 0x113C2,0x113C2 } }, { 0x113C7, new int[] { 0x113C2,0x113B8 } }, { 0x113C8, new int[] { 0x113C2,0x113C9 } }, { 0x114BB, new int[] { 0x114B9,0x114BA } }, { 0x114BC, new int[] { 0x114B9,0x114B0 } }, { 0x114BE, new int[] { 0x114B9,0x114BD } }, { 0x115BA, new int[] { 0x115B8,0x115AF } }, { 0x115BB, new int[] { 0x115B9,0x115AF } }, { 0x11938, new int[] { 0x11935,0x11930 } }, { 0x16121, new int[] { 0x1611E,0x1611E } }, { 0x16122, new int[] { 0x1611E,0x16129 } }, { 0x16123, new int[] { 0x1611E,0x1611F } }, { 0x16124, new int[] { 0x16129,0x1611F } }, { 0x16125, new int[] { 0x1611E,0x16120 } }, { 0x16126, new int[] { 0x1611E,0x1611E,0x1611F } }, { 0x16127, new int[] { 0x1611E,0x16129,0x1611F } }, { 0x16128, new int[] { 0x1611E,0x1611E,0x16120 } }, { 0x16D68, new int[] { 0x16D67,0x16D67 } }, { 0x16D69, new int[] { 0x16D63,0x16D67 } }, { 0x16D6A, new int[] { 0x16D63,0x16D67,0x16D67 } } }; public static int[][] StateTable => new int[57][] { new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 2,2,3,4,4,0,0,5,6,7,8,9,10,11,12,13,0,14,15,0,16,0,0,17,10,18,19,20,21,22,0,0,0,23,0,0,2,0,24,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,27,0,0,0,0,0,26,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,33,34,35,36,37,38,39,40,0,0,0,41,42,34,43,44,45,46,47,0,0,48,49,0,0,0,39,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,19,20,21,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,20,21,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,7,8,0,0,11,0,13,0,0,0,0,0,0,0,0,0,0,19,20,21,0,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,0,8,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,19,20,21,0,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,7,8,9,10,11,12,13,0,0,15,0,0,0,0,17,10,18,19,20,21,22,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,7,8,0,10,11,0,13,0,0,0,0,0,0,0,0,0,0,19,20,21,0,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,0,8,0,0,11,0,13,0,0,0,0,0,0,0,0,0,0,19,20,21,0,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,19,20,21,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,7,8,9,10,11,12,13,0,14,15,0,0,0,0,17,10,18,19,20,21,22,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,7,8,0,10,11,0,13,0,0,0,0,0,0,0,0,10,0,19,20,21,0,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,4,4,0,0,5,6,7,8,9,10,11,12,13,0,14,15,0,0,0,0,17,10,18,19,20,21,22,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,7,8,50,10,11,12,13,0,50,15,0,0,0,0,17,10,18,19,20,21,22,0,0,0,23,0,0,0,51,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,7,8,0,10,11,0,13,0,0,15,0,0,0,0,0,10,0,19,20,21,22,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,20,21,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,7,8,0,10,11,0,13,0,0,15,0,0,0,0,0,10,0,19,20,21,0,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,19,20,21,0,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,0,53 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,27,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,0,0,0,0,0,0,37,38,0,0,0,0,0,41,0,0,0,44,45,46,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,0,30,0,0,0,0,0,0,0,38,0,0,0,0,0,41,0,0,0,44,45,46,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,0,0,35,0,37,38,0,0,0,0,0,41,0,0,0,44,45,46,0,0,0,0,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,0,32,0,0,0,0,37,38,0,0,0,0,0,41,0,0,0,44,45,46,0,0,0,0,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,33,34,35,36,37,38,0,40,0,0,0,41,42,34,43,44,45,46,47,0,0,48,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,0,34,35,0,37,38,0,0,0,0,0,41,0,0,0,44,45,46,0,0,0,0,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,0,32,0,0,35,0,37,38,0,0,0,0,0,41,0,0,0,44,45,46,0,0,0,0,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,0,30,0,0,0,0,0,0,37,38,0,0,0,0,0,41,0,0,0,44,45,46,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,33,34,35,36,37,38,39,40,0,0,0,41,42,34,43,44,45,46,47,0,0,48,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,0,34,35,0,37,38,0,0,0,0,0,41,0,34,0,44,45,46,0,0,0,0,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,54,34,35,36,37,38,54,40,0,0,0,41,42,34,43,44,45,46,47,0,0,48,49,0,0,0,55,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,0,34,35,0,37,38,0,40,0,0,0,41,0,34,0,44,45,46,47,0,0,0,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,41,0,0,0,44,45,46,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,41,0,0,0,0,45,0,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,41,0,0,0,0,45,46,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,0,34,35,0,37,38,0,40,0,0,0,41,0,34,0,44,45,46,0,0,0,0,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,0,0,0,0,0,0,37,38,0,0,0,0,0,41,0,0,0,44,45,46,0,0,0,0,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,7,8,50,10,11,12,13,0,0,15,0,0,0,0,17,10,18,19,20,21,22,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,5,6,7,8,50,10,11,12,13,0,50,15,0,0,0,0,17,10,18,19,20,21,22,0,0,0,23,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,54,34,35,36,37,38,0,40,0,0,0,41,42,34,43,44,45,46,47,0,0,48,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,28,0,29,30,31,32,54,34,35,36,37,38,54,40,0,0,0,41,42,34,43,44,45,46,47,0,0,48,49,0,0,0,0,0,0 }, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,0,53 } }; public static bool[] AcceptingStates => new bool[] { false, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true }; public static string[][] Tags => new string[57][] { Array.Empty(), new string[] { "broken_cluster" }, new string[] { "independent_cluster" }, new string[] { "symbol_cluster" }, new string[] { "standard_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, Array.Empty(), new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "numeral_cluster" }, new string[] { "independent_cluster" }, new string[] { "symbol_cluster" }, new string[] { "symbol_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "virama_terminated_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "virama_terminated_cluster" }, new string[] { "standard_cluster" }, new string[] { "broken_cluster" }, new string[] { "broken_cluster" }, new string[] { "numeral_cluster" }, new string[] { "number_joiner_terminated_cluster" }, new string[] { "standard_cluster" }, new string[] { "standard_cluster" }, new string[] { "numeral_cluster" } }; } }