// 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" }
};
}
}