// SPDX-License-Identifier: Unlicense OR BSD-3-Clause

package unicodedata

// Code generated by typesettings-utils/generators/unicodedata/cmd/main.go DO NOT EDIT.

// Unicode version: 17.0.0

const (
	GB_CR                 GraphemeBreak = 1 << 0
	GB_Control            GraphemeBreak = 1 << 1
	GB_Extend             GraphemeBreak = 1 << 2
	GB_L                  GraphemeBreak = 1 << 3
	GB_LF                 GraphemeBreak = 1 << 4
	GB_LV                 GraphemeBreak = 1 << 5
	GB_LVT                GraphemeBreak = 1 << 6
	GB_Prepend            GraphemeBreak = 1 << 7
	GB_Regional_Indicator GraphemeBreak = 1 << 8
	GB_SpacingMark        GraphemeBreak = 1 << 9
	GB_T                  GraphemeBreak = 1 << 10
	GB_V                  GraphemeBreak = 1 << 11
	GB_ZWJ                GraphemeBreak = 1 << 12
)

var gbUint8 = [2637]uint8{
	16, 34, 50, 84, 118, 130, 146, 186, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
	34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
	34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 12, 0, 1, 2,
	3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 10, 15, 10, 10, 10, 10, 10, 16,
	10, 17, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
	10, 10, 10, 10, 10, 10, 10, 10, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 21, 22,
	23, 24, 25, 26, 27, 21, 22, 23, 24, 25, 26, 27, 28, 10, 10, 10, 10, 10, 10, 10,
	10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 29, 10, 30, 31, 32, 10, 10, 10, 33, 34,
	35, 36, 37, 38, 39, 40, 41, 42, 43, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 44,
	10, 10, 10, 10, 10, 45, 10, 10, 10, 10, 46, 47, 48, 10, 10, 10, 10, 10, 10, 10,
	10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 49, 10, 10, 10, 10,
	10, 10, 10, 10, 50, 51, 52, 10, 10, 10, 53, 10, 10, 54, 55, 56, 57, 58, 10, 10,
	10, 59, 60, 10, 10, 10, 10, 10, 10, 61, 62, 62, 62, 62, 62, 62, 62, 0, 1, 2,
	3, 4, 5, 6, 7, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 5, 3,
	3, 3, 3, 6, 3, 3, 3, 7, 8, 9, 10, 3, 11, 12, 13, 14, 15, 16, 17, 18,
	19, 20, 21, 22, 23, 24, 25, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
	38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 3, 50, 51, 52, 53, 3, 3, 3,
	3, 3, 54, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 55, 56, 57,
	58, 59, 3, 60, 3, 61, 3, 3, 3, 62, 63, 64, 65, 66, 67, 68, 69, 70, 3, 3,
	71, 3, 3, 3, 4, 72, 73, 3, 74, 3, 3, 3, 3, 3, 3, 3, 75, 3, 76, 3,
	77, 78, 3, 79, 3, 3, 3, 3, 3, 3, 80, 81, 82, 3, 3, 3, 3, 83, 3, 84,
	85, 86, 87, 88, 89, 90, 91, 92, 93, 3, 3, 3, 94, 95, 96, 97, 98, 99, 100, 101,
	95, 96, 97, 98, 99, 100, 101, 95, 96, 97, 98, 99, 100, 101, 95, 96, 97, 98, 99, 100,
	101, 95, 96, 97, 98, 99, 100, 101, 95, 96, 97, 98, 99, 100, 101, 95, 96, 97, 98, 99,
	100, 101, 95, 96, 97, 98, 99, 100, 101, 95, 96, 97, 98, 99, 100, 102, 103, 3, 3, 3,
	3, 104, 3, 3, 3, 105, 3, 3, 1, 3, 3, 81, 106, 3, 3, 3, 3, 3, 3, 3,
	107, 3, 3, 3, 108, 3, 109, 3, 3, 110, 3, 3, 111, 3, 3, 3, 3, 3, 3, 3,
	3, 112, 113, 3, 3, 3, 3, 114, 115, 3, 116, 117, 3, 118, 119, 120, 121, 122, 123, 124,
	125, 126, 127, 3, 128, 35, 129, 130, 131, 132, 133, 134, 135, 3, 3, 136, 137, 138, 139, 140,
	3, 141, 3, 3, 3, 142, 3, 3, 3, 143, 144, 3, 145, 146, 147, 148, 3, 3, 149, 3,
	3, 150, 3, 151, 3, 152, 153, 154, 3, 3, 3, 3, 155, 156, 157, 3, 3, 158, 159, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 160, 3, 3, 3, 3, 3, 3, 161, 162, 3, 3,
	3, 3, 3, 3, 3, 3, 163, 3, 3, 3, 3, 3, 3, 3, 164, 165, 166, 3, 3, 167,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 168, 169, 3, 3, 3, 3, 3, 3, 3, 170, 171,
	3, 3, 172, 3, 3, 3, 3, 3, 3, 173, 174, 175, 3, 3, 3, 3, 3, 176, 3, 177,
	3, 162, 3, 3, 3, 3, 3, 178, 179, 3, 3, 3, 3, 3, 3, 3, 179, 3, 3, 3,
	180, 3, 3, 3, 181, 3, 3, 3, 3, 3, 3, 3, 182, 3, 183, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 184, 3, 3, 3, 3, 3, 3, 3, 185, 186, 4, 187, 187, 4, 4, 4,
	188, 187, 187, 187, 187, 187, 187, 187, 187, 0, 1, 2, 2, 2, 2, 2, 3, 1, 1, 4,
	2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 2, 6, 2, 2, 2, 2, 7, 5,
	8, 9, 2, 2, 2, 10, 11, 2, 2, 12, 5, 2, 13, 2, 14, 15, 2, 16, 17, 2,
	5, 18, 2, 2, 2, 2, 2, 19, 13, 2, 2, 12, 20, 2, 21, 22, 2, 2, 23, 2,
	2, 2, 24, 2, 2, 25, 5, 26, 5, 27, 2, 2, 28, 29, 30, 31, 2, 32, 2, 2,
	33, 34, 35, 31, 36, 37, 2, 2, 38, 39, 17, 2, 40, 41, 2, 31, 25, 32, 2, 2,
	42, 34, 43, 31, 2, 44, 2, 2, 45, 46, 35, 2, 2, 47, 2, 2, 42, 48, 49, 31,
	2, 32, 2, 2, 50, 51, 49, 31, 52, 53, 2, 2, 54, 55, 35, 31, 2, 32, 2, 2,
	2, 56, 57, 2, 58, 2, 2, 2, 59, 60, 2, 2, 2, 2, 2, 2, 61, 62, 2, 2,
	2, 2, 63, 2, 64, 2, 2, 2, 65, 66, 67, 5, 68, 69, 2, 2, 2, 2, 2, 70,
	71, 2, 72, 13, 73, 74, 75, 2, 2, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 78,
	79, 79, 79, 79, 79, 2, 70, 2, 2, 2, 80, 2, 81, 2, 31, 2, 31, 2, 2, 2,
	82, 83, 20, 2, 2, 84, 2, 2, 2, 49, 2, 85, 2, 2, 2, 86, 87, 2, 88, 2,
	2, 2, 89, 90, 91, 2, 2, 2, 5, 5, 92, 93, 2, 94, 2, 2, 95, 96, 2, 12,
	97, 98, 2, 99, 2, 2, 2, 100, 97, 2, 2, 101, 102, 2, 103, 104, 105, 106, 2, 107,
	2, 2, 2, 1, 2, 2, 5, 5, 13, 2, 2, 108, 109, 2, 2, 2, 108, 2, 2, 5,
	5, 2, 2, 25, 2, 2, 110, 2, 2, 2, 2, 108, 111, 2, 112, 2, 2, 2, 2, 2,
	109, 113, 2, 114, 2, 115, 2, 2, 116, 117, 2, 5, 118, 2, 2, 119, 2, 120, 121, 76,
	122, 27, 2, 2, 123, 13, 2, 124, 2, 2, 2, 125, 126, 127, 2, 2, 128, 2, 2, 2,
	129, 17, 2, 130, 131, 2, 2, 132, 2, 133, 134, 135, 136, 135, 137, 135, 133, 134, 135, 136,
	135, 137, 135, 133, 134, 135, 136, 135, 137, 135, 133, 134, 135, 136, 135, 137, 135, 136, 135, 138,
	77, 139, 79, 79, 140, 2, 36, 2, 2, 5, 2, 5, 2, 2, 2, 2, 141, 2, 2, 2,
	75, 2, 2, 13, 2, 2, 2, 2, 142, 143, 2, 2, 144, 2, 2, 49, 2, 2, 2, 145,
	2, 2, 2, 146, 2, 2, 2, 147, 2, 2, 2, 2, 25, 19, 13, 2, 2, 80, 2, 2,
	2, 148, 2, 2, 149, 150, 2, 2, 151, 98, 2, 2, 152, 153, 2, 2, 2, 154, 2, 155,
	156, 157, 2, 2, 158, 98, 2, 2, 159, 160, 2, 2, 2, 2, 2, 161, 162, 17, 2, 2,
	2, 2, 108, 163, 2, 164, 35, 165, 156, 2, 2, 2, 166, 167, 168, 169, 2, 2, 2, 2,
	170, 171, 36, 2, 2, 2, 2, 2, 172, 173, 2, 2, 2, 2, 2, 108, 174, 13, 175, 2,
	2, 2, 2, 2, 176, 13, 2, 2, 2, 2, 2, 177, 178, 2, 179, 180, 2, 2, 2, 161,
	181, 2, 2, 2, 182, 183, 2, 2, 2, 2, 184, 185, 2, 186, 2, 2, 187, 35, 188, 2,
	2, 189, 190, 2, 2, 2, 2, 191, 2, 2, 2, 192, 193, 2, 194, 195, 196, 2, 2, 2,
	197, 198, 2, 2, 2, 199, 200, 2, 2, 2, 2, 2, 201, 202, 2, 2, 203, 154, 204, 2,
	2, 2, 2, 2, 1, 205, 206, 2, 2, 2, 112, 207, 2, 2, 2, 2, 156, 2, 2, 2,
	150, 2, 2, 208, 2, 108, 209, 210, 210, 211, 154, 2, 2, 2, 2, 212, 109, 2, 213, 214,
	2, 5, 5, 92, 5, 150, 2, 2, 2, 2, 2, 215, 216, 217, 2, 218, 2, 81, 2, 2,
	2, 5, 5, 5, 219, 5, 5, 68, 124, 212, 12, 7, 2, 220, 221, 222, 2, 108, 2, 2,
	2, 2, 2, 36, 2, 2, 2, 223, 2, 2, 2, 112, 2, 2, 2, 224, 124, 2, 150, 2,
	2, 225, 2, 2, 2, 2, 2, 226, 227, 2, 2, 2, 12, 1, 1, 5, 5, 1, 1, 1,
	1, 5, 5, 5, 1, 0, 0, 1, 2, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3,
	4, 3, 3, 3, 5, 6, 6, 6, 6, 7, 6, 8, 3, 9, 6, 6, 6, 6, 6, 6,
	10, 11, 10, 3, 3, 12, 13, 3, 3, 6, 6, 14, 15, 3, 3, 7, 6, 16, 3, 3,
	3, 3, 17, 6, 18, 6, 19, 20, 8, 3, 3, 3, 21, 22, 3, 3, 3, 6, 6, 14,
	3, 3, 17, 6, 6, 6, 3, 3, 22, 3, 17, 10, 6, 6, 9, 9, 8, 3, 3, 9,
	3, 13, 7, 6, 6, 3, 3, 17, 6, 23, 6, 6, 6, 24, 3, 3, 3, 3, 3, 25,
	26, 27, 6, 28, 29, 9, 6, 3, 3, 17, 3, 3, 3, 30, 3, 3, 3, 3, 3, 3,
	31, 27, 32, 33, 34, 3, 7, 3, 3, 3, 3, 3, 35, 36, 3, 3, 3, 3, 3, 3,
	26, 37, 7, 19, 8, 8, 22, 3, 3, 27, 10, 38, 34, 3, 3, 3, 20, 3, 9, 3,
	3, 35, 3, 3, 3, 3, 3, 3, 25, 39, 40, 41, 34, 28, 16, 3, 3, 28, 42, 20,
	8, 3, 11, 3, 3, 3, 3, 3, 43, 44, 42, 20, 8, 45, 3, 3, 3, 46, 3, 3,
	3, 3, 3, 7, 31, 27, 26, 41, 47, 3, 3, 35, 7, 48, 49, 50, 51, 40, 3, 3,
	3, 52, 6, 14, 3, 3, 7, 6, 14, 52, 6, 6, 16, 3, 3, 6, 14, 3, 3, 8,
	3, 3, 53, 22, 40, 9, 6, 6, 24, 6, 20, 3, 9, 6, 6, 9, 6, 6, 6, 6,
	16, 3, 35, 3, 3, 3, 3, 3, 9, 54, 6, 36, 37, 3, 40, 8, 17, 9, 16, 3,
	3, 35, 37, 3, 22, 3, 3, 3, 22, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 57,
	57, 57, 57, 57, 57, 17, 8, 3, 3, 17, 16, 3, 3, 3, 58, 6, 46, 50, 59, 27,
	6, 3, 3, 7, 60, 3, 3, 22, 3, 24, 51, 28, 3, 59, 50, 27, 3, 3, 7, 61,
	3, 3, 62, 6, 14, 49, 9, 6, 28, 51, 6, 6, 19, 6, 6, 6, 8, 6, 6, 6,
	3, 6, 63, 3, 3, 3, 6, 6, 46, 48, 16, 3, 3, 6, 3, 3, 3, 64, 3, 3,
	3, 65, 46, 6, 8, 3, 25, 46, 66, 3, 50, 50, 6, 6, 48, 3, 3, 14, 6, 6,
	6, 54, 6, 16, 22, 3, 32, 8, 3, 3, 3, 4, 67, 3, 3, 0, 68, 3, 3, 3,
	7, 8, 3, 3, 3, 3, 3, 11, 3, 14, 6, 6, 8, 3, 3, 3, 17, 35, 35, 7,
	3, 45, 69, 3, 16, 70, 3, 3, 3, 3, 50, 50, 50, 50, 8, 3, 3, 8, 3, 3,
	7, 3, 17, 6, 8, 3, 7, 6, 6, 58, 3, 3, 3, 55, 55, 55, 71, 7, 48, 46,
	46, 3, 22, 3, 3, 3, 3, 9, 24, 69, 37, 3, 3, 7, 3, 3, 72, 3, 3, 3,
	16, 20, 19, 16, 17, 3, 3, 45, 46, 3, 73, 3, 3, 45, 29, 39, 34, 74, 75, 75,
	75, 75, 75, 75, 74, 75, 75, 75, 75, 75, 75, 74, 75, 75, 74, 75, 75, 75, 3, 3,
	3, 56, 76, 77, 57, 57, 57, 57, 3, 0, 0, 0, 3, 3, 17, 14, 3, 9, 11, 3,
	6, 3, 3, 14, 7, 3, 6, 3, 3, 3, 3, 9, 8, 3, 3, 7, 16, 78, 3, 3,
	3, 3, 3, 6, 6, 6, 14, 3, 3, 19, 16, 3, 7, 51, 24, 37, 79, 35, 3, 3,
	79, 14, 3, 3, 3, 3, 7, 6, 27, 6, 16, 3, 3, 3, 80, 3, 3, 7, 3, 3,
	3, 45, 48, 6, 24, 81, 3, 9, 43, 3, 3, 3, 51, 46, 6, 3, 35, 51, 6, 14,
	3, 28, 33, 33, 34, 40, 17, 6, 16, 3, 3, 61, 6, 49, 53, 64, 48, 82, 3, 3,
	3, 11, 3, 3, 3, 3, 83, 6, 6, 48, 84, 3, 3, 61, 6, 44, 66, 54, 3, 3,
	3, 48, 8, 50, 58, 3, 3, 3, 8, 51, 6, 24, 66, 3, 3, 7, 29, 6, 6, 3,
	3, 3, 3, 3, 85, 17, 58, 6, 3, 6, 6, 37, 3, 28, 86, 87, 88, 89, 3, 3,
	3, 83, 6, 17, 50, 16, 63, 3, 3, 9, 6, 14, 3, 7, 6, 90, 14, 9, 24, 27,
	3, 3, 12, 91, 6, 6, 24, 8, 3, 54, 44, 3, 3, 3, 3, 3, 45, 6, 14, 6,
	58, 17, 6, 6, 6, 6, 6, 65, 6, 54, 37, 3, 3, 9, 14, 35, 10, 6, 23, 3,
	3, 3, 3, 40, 92, 93, 66, 3, 3, 7, 39, 3, 3, 94, 3, 3, 3, 3, 48, 14,
	40, 3, 3, 35, 3, 16, 7, 6, 6, 6, 8, 3, 3, 6, 6, 46, 27, 95, 95, 76,
	3, 83, 50, 50, 50, 50, 50, 50, 50, 50, 50, 3, 7, 3, 16, 3, 3, 3, 3, 3,
	11, 0, 3, 3, 3, 3, 9, 8, 9, 96, 0, 97, 6, 14, 9, 6, 3, 3, 3, 17,
	8, 6, 14, 7, 6, 6, 14, 6, 6, 6, 6, 19, 6, 10, 20, 14, 3, 3, 3, 3,
	6, 7, 35, 3, 17, 3, 6, 14, 3, 3, 98, 99, 99, 99, 99, 99, 99, 34, 34, 34,
	37, 18, 34, 0, 0, 0, 32, 32, 0, 51, 51, 0, 48, 51, 0, 48, 51, 51, 48, 48,
	3, 136, 136, 136, 0, 51, 3, 2, 0, 3, 0, 0, 51, 131, 48, 3, 48, 3, 51, 0,
	128, 48, 0, 51, 56, 51, 163, 0, 163, 3, 170, 58, 51, 163, 170, 58, 170, 48, 170, 3,
	163, 3, 160, 10, 160, 58, 0, 0, 3, 48, 163, 58, 3, 163, 160, 163, 10, 0, 170, 10,
	170, 10, 51, 3, 58, 163, 163, 0, 160, 51, 170, 58, 8, 170, 51, 3, 3, 170, 170, 170,
	58, 48, 160, 48, 48, 163, 51, 68, 68, 204, 204, 187, 187, 51, 58, 170, 163, 51, 50, 163,
	58, 160, 163, 10, 0, 51, 10, 160, 51, 58, 58, 211, 34, 34, 2, 58, 163, 170, 0, 4,
	0, 163, 0, 160, 3, 118, 119, 119, 119, 204, 12, 0, 176, 58, 10, 128, 0, 160, 10, 3,
	136, 131, 3, 160, 170, 163, 3, 48, 58, 170, 160, 10, 48, 51, 131, 138, 58, 163, 48, 136,
	51, 170, 10, 51, 160, 51, 168, 0, 192, 51, 35, 34, 50, 0, 153, 153, 153,
}

// Total size 2637 B.

func gbBits4( []uint8,  int) uint8 {
	return ([>>1] >> (( & 1) << 2)) & 0b1111
}
func gbLookup( rune) uint8 {
	if 0 <=  &&  < 921600 {
		return gbBits4(gbUint8[2437:], int((int(gbUint8[1525+int(int((int(gbUint8[769+int(int((int(gbUint8[265+int(int((int(gbUint8[57+int(int((int(gbBits4(gbUint8[:], int(((((>>2)>>2)>>2)>>3)>>4))))<<4)+int(((((>>2)>>2)>>2)>>3)&15))]))<<3)+int((((>>2)>>2)>>2)&7))]))<<2)+int(((>>2)>>2)&3))]))<<2)+int((>>2)&3))]))<<2)+int(&3))
	} else {
		return 0
	}
}