idna2008-1.0.0.0: internal/Text/IDNA2008/Internal/Joining/Data.hs
-- |
-- Module : Text.IDNA2008.Internal.Joining.Data
-- Description : Compact codepoint range tables for the Unicode
-- Joining_Type and Virama (Canonical_Combining_Class
-- = 9) properties consulted by the CONTEXTJ
-- contextual rules.
-- Copyright : (c) Viktor Dukhovni, 2026
-- License : BSD-3-Clause
--
-- Maintainer : ietf-dane@dukhovni.org
-- Stability : unstable
--
-- AUTOMATICALLY GENERATED. Do not edit by hand. Regenerate with:
--
-- python3 internal/tools/genIdnaJoining.py <unicode-version> \\
-- <DerivedJoiningType.txt> <DerivedCombiningClass.txt>
--
-- Source: https://www.unicode.org/Public/17.0.0/ucd/extracted/
-- Aligned with: Unicode 17.0.0
-- Joining_Type ranges: 524
-- Virama ranges: 58
--
-- The four Joining_Type values relevant to RFC 5892 A.1 are encoded
-- as a 'Word8' tag per range:
--
-- * 1 = L (Left_Joining)
-- * 2 = R (Right_Joining)
-- * 3 = D (Dual_Joining)
-- * 4 = T (Transparent)
--
-- Joining_Type=C (Join_Causing, including ZWJ\/ZWNJ themselves and
-- Arabic Tatweel @U+0640@) and Joining_Type=U (Non_Joining) are not
-- encoded: at any position a codepoint with one of those types is a
-- \"stop\" for the regex.
module Text.IDNA2008.Internal.Joining.Data
( -- * Joining_Type
jtRangeCount
, jtRangeStarts
, jtRangeEnds
, jtRangeTags
-- * Joining_Type tag values
, jtTagL
, jtTagR
, jtTagD
, jtTagT
-- * Virama (CCC = 9)
, viramaRangeCount
, viramaRanges
) where
import Data.Array.Byte (ByteArray)
import Data.Word (Word8, Word32)
import qualified Data.Primitive.ByteArray as PBA
----------------------------------------------------------------------
-- Joining_Type
----------------------------------------------------------------------
-- | Tag value for Joining_Type=L (Left_Joining).
jtTagL :: Word8
jtTagL = 1
-- | Tag value for Joining_Type=R (Right_Joining).
jtTagR :: Word8
jtTagR = 2
-- | Tag value for Joining_Type=D (Dual_Joining).
jtTagD :: Word8
jtTagD = 3
-- | Tag value for Joining_Type=T (Transparent).
jtTagT :: Word8
jtTagT = 4
-- | Number of joining-type ranges.
jtRangeCount :: Int
jtRangeCount = 524
-- | Inclusive range starts, sorted ascending.
jtRangeStarts :: ByteArray
jtRangeStarts = PBA.byteArrayFromList
[ (0x0000AD :: Word32)
, 0x000300
, 0x000483
, 0x000591
, 0x0005BF
, 0x0005C1
, 0x0005C4
, 0x0005C7
, 0x000610
, 0x00061C
, 0x000620
, 0x000622
, 0x000626
, 0x000627
, 0x000628
, 0x000629
, 0x00062A
, 0x00062F
, 0x000633
, 0x000641
, 0x000648
, 0x000649
, 0x00064B
, 0x00066E
, 0x000670
, 0x000671
, 0x000675
, 0x000678
, 0x000688
, 0x00069A
, 0x0006C0
, 0x0006C1
, 0x0006C3
, 0x0006CC
, 0x0006CD
, 0x0006CE
, 0x0006CF
, 0x0006D0
, 0x0006D2
, 0x0006D5
, 0x0006D6
, 0x0006DF
, 0x0006E7
, 0x0006EA
, 0x0006EE
, 0x0006FA
, 0x0006FF
, 0x00070F
, 0x000710
, 0x000711
, 0x000712
, 0x000715
, 0x00071A
, 0x00071E
, 0x00071F
, 0x000728
, 0x000729
, 0x00072A
, 0x00072B
, 0x00072C
, 0x00072D
, 0x00072F
, 0x000730
, 0x00074D
, 0x00074E
, 0x000759
, 0x00075C
, 0x00076B
, 0x00076D
, 0x000771
, 0x000772
, 0x000773
, 0x000775
, 0x000778
, 0x00077A
, 0x0007A6
, 0x0007CA
, 0x0007EB
, 0x0007FD
, 0x000816
, 0x00081B
, 0x000825
, 0x000829
, 0x000840
, 0x000841
, 0x000846
, 0x000848
, 0x000849
, 0x00084A
, 0x000854
, 0x000855
, 0x000856
, 0x000859
, 0x000860
, 0x000862
, 0x000867
, 0x000868
, 0x000869
, 0x000870
, 0x000886
, 0x000889
, 0x00088E
, 0x00088F
, 0x000897
, 0x0008A0
, 0x0008AA
, 0x0008AE
, 0x0008AF
, 0x0008B1
, 0x0008B3
, 0x0008B9
, 0x0008BA
, 0x0008CA
, 0x0008E3
, 0x00093A
, 0x00093C
, 0x000941
, 0x00094D
, 0x000951
, 0x000962
, 0x000981
, 0x0009BC
, 0x0009C1
, 0x0009CD
, 0x0009E2
, 0x0009FE
, 0x000A01
, 0x000A3C
, 0x000A41
, 0x000A47
, 0x000A4B
, 0x000A51
, 0x000A70
, 0x000A75
, 0x000A81
, 0x000ABC
, 0x000AC1
, 0x000AC7
, 0x000ACD
, 0x000AE2
, 0x000AFA
, 0x000B01
, 0x000B3C
, 0x000B3F
, 0x000B41
, 0x000B4D
, 0x000B55
, 0x000B62
, 0x000B82
, 0x000BC0
, 0x000BCD
, 0x000C00
, 0x000C04
, 0x000C3C
, 0x000C3E
, 0x000C46
, 0x000C4A
, 0x000C55
, 0x000C62
, 0x000C81
, 0x000CBC
, 0x000CBF
, 0x000CC6
, 0x000CCC
, 0x000CE2
, 0x000D00
, 0x000D3B
, 0x000D41
, 0x000D4D
, 0x000D62
, 0x000D81
, 0x000DCA
, 0x000DD2
, 0x000DD6
, 0x000E31
, 0x000E34
, 0x000E47
, 0x000EB1
, 0x000EB4
, 0x000EC8
, 0x000F18
, 0x000F35
, 0x000F37
, 0x000F39
, 0x000F71
, 0x000F80
, 0x000F86
, 0x000F8D
, 0x000F99
, 0x000FC6
, 0x00102D
, 0x001032
, 0x001039
, 0x00103D
, 0x001058
, 0x00105E
, 0x001071
, 0x001082
, 0x001085
, 0x00108D
, 0x00109D
, 0x00135D
, 0x001712
, 0x001732
, 0x001752
, 0x001772
, 0x0017B4
, 0x0017B7
, 0x0017C6
, 0x0017C9
, 0x0017DD
, 0x001807
, 0x00180B
, 0x00180F
, 0x001820
, 0x001885
, 0x001887
, 0x0018A9
, 0x0018AA
, 0x001920
, 0x001927
, 0x001932
, 0x001939
, 0x001A17
, 0x001A1B
, 0x001A56
, 0x001A58
, 0x001A60
, 0x001A62
, 0x001A65
, 0x001A73
, 0x001A7F
, 0x001AB0
, 0x001AE0
, 0x001B00
, 0x001B34
, 0x001B36
, 0x001B3C
, 0x001B42
, 0x001B6B
, 0x001B80
, 0x001BA2
, 0x001BA8
, 0x001BAB
, 0x001BE6
, 0x001BE8
, 0x001BED
, 0x001BEF
, 0x001C2C
, 0x001C36
, 0x001CD0
, 0x001CD4
, 0x001CE2
, 0x001CED
, 0x001CF4
, 0x001CF8
, 0x001DC0
, 0x00200B
, 0x00200E
, 0x00202A
, 0x002060
, 0x00206A
, 0x0020D0
, 0x002CEF
, 0x002D7F
, 0x002DE0
, 0x00302A
, 0x003099
, 0x00A66F
, 0x00A674
, 0x00A69E
, 0x00A6F0
, 0x00A802
, 0x00A806
, 0x00A80B
, 0x00A825
, 0x00A82C
, 0x00A840
, 0x00A872
, 0x00A8C4
, 0x00A8E0
, 0x00A8FF
, 0x00A926
, 0x00A947
, 0x00A980
, 0x00A9B3
, 0x00A9B6
, 0x00A9BC
, 0x00A9E5
, 0x00AA29
, 0x00AA31
, 0x00AA35
, 0x00AA43
, 0x00AA4C
, 0x00AA7C
, 0x00AAB0
, 0x00AAB2
, 0x00AAB7
, 0x00AABE
, 0x00AAC1
, 0x00AAEC
, 0x00AAF6
, 0x00ABE5
, 0x00ABE8
, 0x00ABED
, 0x00FB1E
, 0x00FE00
, 0x00FE20
, 0x00FEFF
, 0x00FFF9
, 0x0101FD
, 0x0102E0
, 0x010376
, 0x010A01
, 0x010A05
, 0x010A0C
, 0x010A38
, 0x010A3F
, 0x010AC0
, 0x010AC5
, 0x010AC7
, 0x010AC9
, 0x010ACD
, 0x010ACE
, 0x010AD3
, 0x010AD7
, 0x010AD8
, 0x010ADD
, 0x010ADE
, 0x010AE1
, 0x010AE4
, 0x010AE5
, 0x010AEB
, 0x010AEF
, 0x010B80
, 0x010B81
, 0x010B82
, 0x010B83
, 0x010B86
, 0x010B89
, 0x010B8A
, 0x010B8C
, 0x010B8D
, 0x010B8E
, 0x010B90
, 0x010B91
, 0x010BA9
, 0x010BAD
, 0x010D00
, 0x010D01
, 0x010D22
, 0x010D23
, 0x010D24
, 0x010D69
, 0x010EAB
, 0x010EC2
, 0x010EC3
, 0x010EC6
, 0x010EFA
, 0x010F30
, 0x010F33
, 0x010F34
, 0x010F46
, 0x010F51
, 0x010F54
, 0x010F70
, 0x010F74
, 0x010F76
, 0x010F82
, 0x010FB0
, 0x010FB2
, 0x010FB4
, 0x010FB8
, 0x010FB9
, 0x010FBB
, 0x010FBD
, 0x010FBE
, 0x010FC1
, 0x010FC2
, 0x010FC4
, 0x010FC9
, 0x010FCA
, 0x010FCB
, 0x011001
, 0x011038
, 0x011070
, 0x011073
, 0x01107F
, 0x0110B3
, 0x0110B9
, 0x0110C2
, 0x011100
, 0x011127
, 0x01112D
, 0x011173
, 0x011180
, 0x0111B6
, 0x0111C9
, 0x0111CF
, 0x01122F
, 0x011234
, 0x011236
, 0x01123E
, 0x011241
, 0x0112DF
, 0x0112E3
, 0x011300
, 0x01133B
, 0x011340
, 0x011366
, 0x011370
, 0x0113BB
, 0x0113CE
, 0x0113D0
, 0x0113D2
, 0x0113E1
, 0x011438
, 0x011442
, 0x011446
, 0x01145E
, 0x0114B3
, 0x0114BA
, 0x0114BF
, 0x0114C2
, 0x0115B2
, 0x0115BC
, 0x0115BF
, 0x0115DC
, 0x011633
, 0x01163D
, 0x01163F
, 0x0116AB
, 0x0116AD
, 0x0116B0
, 0x0116B7
, 0x01171D
, 0x01171F
, 0x011722
, 0x011727
, 0x01182F
, 0x011839
, 0x01193B
, 0x01193E
, 0x011943
, 0x0119D4
, 0x0119DA
, 0x0119E0
, 0x011A01
, 0x011A33
, 0x011A3B
, 0x011A47
, 0x011A51
, 0x011A59
, 0x011A8A
, 0x011A98
, 0x011B60
, 0x011B62
, 0x011B66
, 0x011C30
, 0x011C38
, 0x011C3F
, 0x011C92
, 0x011CAA
, 0x011CB2
, 0x011CB5
, 0x011D31
, 0x011D3A
, 0x011D3C
, 0x011D3F
, 0x011D47
, 0x011D90
, 0x011D95
, 0x011D97
, 0x011EF3
, 0x011F00
, 0x011F36
, 0x011F40
, 0x011F42
, 0x011F5A
, 0x013430
, 0x013447
, 0x01611E
, 0x01612D
, 0x016AF0
, 0x016B30
, 0x016F4F
, 0x016F8F
, 0x016FE4
, 0x01BC9D
, 0x01BCA0
, 0x01CF00
, 0x01CF30
, 0x01D167
, 0x01D173
, 0x01D185
, 0x01D1AA
, 0x01D242
, 0x01DA00
, 0x01DA3B
, 0x01DA75
, 0x01DA84
, 0x01DA9B
, 0x01DAA1
, 0x01E000
, 0x01E008
, 0x01E01B
, 0x01E023
, 0x01E026
, 0x01E08F
, 0x01E130
, 0x01E2AE
, 0x01E2EC
, 0x01E4EC
, 0x01E5EE
, 0x01E6E3
, 0x01E6E6
, 0x01E6EE
, 0x01E6F5
, 0x01E8D0
, 0x01E900
, 0x01E944
, 0x0E0001
, 0x0E0020
, 0x0E0100
]
-- | Inclusive range ends, parallel to 'jtRangeStarts'.
jtRangeEnds :: ByteArray
jtRangeEnds = PBA.byteArrayFromList
[ (0x0000AD :: Word32)
, 0x00036F
, 0x000489
, 0x0005BD
, 0x0005BF
, 0x0005C2
, 0x0005C5
, 0x0005C7
, 0x00061A
, 0x00061C
, 0x000620
, 0x000625
, 0x000626
, 0x000627
, 0x000628
, 0x000629
, 0x00062E
, 0x000632
, 0x00063F
, 0x000647
, 0x000648
, 0x00064A
, 0x00065F
, 0x00066F
, 0x000670
, 0x000673
, 0x000677
, 0x000687
, 0x000699
, 0x0006BF
, 0x0006C0
, 0x0006C2
, 0x0006CB
, 0x0006CC
, 0x0006CD
, 0x0006CE
, 0x0006CF
, 0x0006D1
, 0x0006D3
, 0x0006D5
, 0x0006DC
, 0x0006E4
, 0x0006E8
, 0x0006ED
, 0x0006EF
, 0x0006FC
, 0x0006FF
, 0x00070F
, 0x000710
, 0x000711
, 0x000714
, 0x000719
, 0x00071D
, 0x00071E
, 0x000727
, 0x000728
, 0x000729
, 0x00072A
, 0x00072B
, 0x00072C
, 0x00072E
, 0x00072F
, 0x00074A
, 0x00074D
, 0x000758
, 0x00075B
, 0x00076A
, 0x00076C
, 0x000770
, 0x000771
, 0x000772
, 0x000774
, 0x000777
, 0x000779
, 0x00077F
, 0x0007B0
, 0x0007EA
, 0x0007F3
, 0x0007FD
, 0x000819
, 0x000823
, 0x000827
, 0x00082D
, 0x000840
, 0x000845
, 0x000847
, 0x000848
, 0x000849
, 0x000853
, 0x000854
, 0x000855
, 0x000858
, 0x00085B
, 0x000860
, 0x000865
, 0x000867
, 0x000868
, 0x00086A
, 0x000882
, 0x000886
, 0x00088D
, 0x00088E
, 0x00088F
, 0x00089F
, 0x0008A9
, 0x0008AC
, 0x0008AE
, 0x0008B0
, 0x0008B2
, 0x0008B8
, 0x0008B9
, 0x0008C8
, 0x0008E1
, 0x000902
, 0x00093A
, 0x00093C
, 0x000948
, 0x00094D
, 0x000957
, 0x000963
, 0x000981
, 0x0009BC
, 0x0009C4
, 0x0009CD
, 0x0009E3
, 0x0009FE
, 0x000A02
, 0x000A3C
, 0x000A42
, 0x000A48
, 0x000A4D
, 0x000A51
, 0x000A71
, 0x000A75
, 0x000A82
, 0x000ABC
, 0x000AC5
, 0x000AC8
, 0x000ACD
, 0x000AE3
, 0x000AFF
, 0x000B01
, 0x000B3C
, 0x000B3F
, 0x000B44
, 0x000B4D
, 0x000B56
, 0x000B63
, 0x000B82
, 0x000BC0
, 0x000BCD
, 0x000C00
, 0x000C04
, 0x000C3C
, 0x000C40
, 0x000C48
, 0x000C4D
, 0x000C56
, 0x000C63
, 0x000C81
, 0x000CBC
, 0x000CBF
, 0x000CC6
, 0x000CCD
, 0x000CE3
, 0x000D01
, 0x000D3C
, 0x000D44
, 0x000D4D
, 0x000D63
, 0x000D81
, 0x000DCA
, 0x000DD4
, 0x000DD6
, 0x000E31
, 0x000E3A
, 0x000E4E
, 0x000EB1
, 0x000EBC
, 0x000ECE
, 0x000F19
, 0x000F35
, 0x000F37
, 0x000F39
, 0x000F7E
, 0x000F84
, 0x000F87
, 0x000F97
, 0x000FBC
, 0x000FC6
, 0x001030
, 0x001037
, 0x00103A
, 0x00103E
, 0x001059
, 0x001060
, 0x001074
, 0x001082
, 0x001086
, 0x00108D
, 0x00109D
, 0x00135F
, 0x001714
, 0x001733
, 0x001753
, 0x001773
, 0x0017B5
, 0x0017BD
, 0x0017C6
, 0x0017D3
, 0x0017DD
, 0x001807
, 0x00180D
, 0x00180F
, 0x001878
, 0x001886
, 0x0018A8
, 0x0018A9
, 0x0018AA
, 0x001922
, 0x001928
, 0x001932
, 0x00193B
, 0x001A18
, 0x001A1B
, 0x001A56
, 0x001A5E
, 0x001A60
, 0x001A62
, 0x001A6C
, 0x001A7C
, 0x001A7F
, 0x001ADD
, 0x001AEB
, 0x001B03
, 0x001B34
, 0x001B3A
, 0x001B3C
, 0x001B42
, 0x001B73
, 0x001B81
, 0x001BA5
, 0x001BA9
, 0x001BAD
, 0x001BE6
, 0x001BE9
, 0x001BED
, 0x001BF1
, 0x001C33
, 0x001C37
, 0x001CD2
, 0x001CE0
, 0x001CE8
, 0x001CED
, 0x001CF4
, 0x001CF9
, 0x001DFF
, 0x00200B
, 0x00200F
, 0x00202E
, 0x002064
, 0x00206F
, 0x0020F0
, 0x002CF1
, 0x002D7F
, 0x002DFF
, 0x00302D
, 0x00309A
, 0x00A672
, 0x00A67D
, 0x00A69F
, 0x00A6F1
, 0x00A802
, 0x00A806
, 0x00A80B
, 0x00A826
, 0x00A82C
, 0x00A871
, 0x00A872
, 0x00A8C5
, 0x00A8F1
, 0x00A8FF
, 0x00A92D
, 0x00A951
, 0x00A982
, 0x00A9B3
, 0x00A9B9
, 0x00A9BD
, 0x00A9E5
, 0x00AA2E
, 0x00AA32
, 0x00AA36
, 0x00AA43
, 0x00AA4C
, 0x00AA7C
, 0x00AAB0
, 0x00AAB4
, 0x00AAB8
, 0x00AABF
, 0x00AAC1
, 0x00AAED
, 0x00AAF6
, 0x00ABE5
, 0x00ABE8
, 0x00ABED
, 0x00FB1E
, 0x00FE0F
, 0x00FE2F
, 0x00FEFF
, 0x00FFFB
, 0x0101FD
, 0x0102E0
, 0x01037A
, 0x010A03
, 0x010A06
, 0x010A0F
, 0x010A3A
, 0x010A3F
, 0x010AC4
, 0x010AC5
, 0x010AC7
, 0x010ACA
, 0x010ACD
, 0x010AD2
, 0x010AD6
, 0x010AD7
, 0x010ADC
, 0x010ADD
, 0x010AE0
, 0x010AE1
, 0x010AE4
, 0x010AE6
, 0x010AEE
, 0x010AEF
, 0x010B80
, 0x010B81
, 0x010B82
, 0x010B85
, 0x010B88
, 0x010B89
, 0x010B8B
, 0x010B8C
, 0x010B8D
, 0x010B8F
, 0x010B90
, 0x010B91
, 0x010BAC
, 0x010BAE
, 0x010D00
, 0x010D21
, 0x010D22
, 0x010D23
, 0x010D27
, 0x010D6D
, 0x010EAC
, 0x010EC2
, 0x010EC4
, 0x010EC7
, 0x010EFF
, 0x010F32
, 0x010F33
, 0x010F44
, 0x010F50
, 0x010F53
, 0x010F54
, 0x010F73
, 0x010F75
, 0x010F81
, 0x010F85
, 0x010FB0
, 0x010FB3
, 0x010FB6
, 0x010FB8
, 0x010FBA
, 0x010FBC
, 0x010FBD
, 0x010FBF
, 0x010FC1
, 0x010FC3
, 0x010FC4
, 0x010FC9
, 0x010FCA
, 0x010FCB
, 0x011001
, 0x011046
, 0x011070
, 0x011074
, 0x011081
, 0x0110B6
, 0x0110BA
, 0x0110C2
, 0x011102
, 0x01112B
, 0x011134
, 0x011173
, 0x011181
, 0x0111BE
, 0x0111CC
, 0x0111CF
, 0x011231
, 0x011234
, 0x011237
, 0x01123E
, 0x011241
, 0x0112DF
, 0x0112EA
, 0x011301
, 0x01133C
, 0x011340
, 0x01136C
, 0x011374
, 0x0113C0
, 0x0113CE
, 0x0113D0
, 0x0113D2
, 0x0113E2
, 0x01143F
, 0x011444
, 0x011446
, 0x01145E
, 0x0114B8
, 0x0114BA
, 0x0114C0
, 0x0114C3
, 0x0115B5
, 0x0115BD
, 0x0115C0
, 0x0115DD
, 0x01163A
, 0x01163D
, 0x011640
, 0x0116AB
, 0x0116AD
, 0x0116B5
, 0x0116B7
, 0x01171D
, 0x01171F
, 0x011725
, 0x01172B
, 0x011837
, 0x01183A
, 0x01193C
, 0x01193E
, 0x011943
, 0x0119D7
, 0x0119DB
, 0x0119E0
, 0x011A0A
, 0x011A38
, 0x011A3E
, 0x011A47
, 0x011A56
, 0x011A5B
, 0x011A96
, 0x011A99
, 0x011B60
, 0x011B64
, 0x011B66
, 0x011C36
, 0x011C3D
, 0x011C3F
, 0x011CA7
, 0x011CB0
, 0x011CB3
, 0x011CB6
, 0x011D36
, 0x011D3A
, 0x011D3D
, 0x011D45
, 0x011D47
, 0x011D91
, 0x011D95
, 0x011D97
, 0x011EF4
, 0x011F01
, 0x011F3A
, 0x011F40
, 0x011F42
, 0x011F5A
, 0x013440
, 0x013455
, 0x016129
, 0x01612F
, 0x016AF4
, 0x016B36
, 0x016F4F
, 0x016F92
, 0x016FE4
, 0x01BC9E
, 0x01BCA3
, 0x01CF2D
, 0x01CF46
, 0x01D169
, 0x01D182
, 0x01D18B
, 0x01D1AD
, 0x01D244
, 0x01DA36
, 0x01DA6C
, 0x01DA75
, 0x01DA84
, 0x01DA9F
, 0x01DAAF
, 0x01E006
, 0x01E018
, 0x01E021
, 0x01E024
, 0x01E02A
, 0x01E08F
, 0x01E136
, 0x01E2AE
, 0x01E2EF
, 0x01E4EF
, 0x01E5EF
, 0x01E6E3
, 0x01E6E6
, 0x01E6EF
, 0x01E6F5
, 0x01E8D6
, 0x01E943
, 0x01E94B
, 0x0E0001
, 0x0E007F
, 0x0E01EF
]
-- | Joining_Type tag for each range, parallel to
-- 'jtRangeStarts' and 'jtRangeEnds'.
jtRangeTags :: ByteArray
jtRangeTags = PBA.byteArrayFromList
[ (4 :: Word8)
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 3
, 2
, 3
, 4
, 3
, 4
, 2
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 2
, 4
, 4
, 4
, 4
, 2
, 3
, 3
, 4
, 2
, 4
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 4
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 4
, 3
, 4
, 4
, 4
, 4
, 4
, 4
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 4
, 3
, 3
, 2
, 3
, 2
, 2
, 3
, 3
, 2
, 3
, 4
, 3
, 2
, 2
, 3
, 2
, 3
, 2
, 3
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 3
, 4
, 4
, 3
, 4
, 3
, 4
, 3
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 3
, 1
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 3
, 2
, 2
, 2
, 1
, 2
, 3
, 1
, 3
, 2
, 3
, 2
, 2
, 4
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 2
, 2
, 3
, 1
, 3
, 2
, 3
, 4
, 4
, 4
, 2
, 3
, 3
, 4
, 3
, 2
, 3
, 4
, 3
, 2
, 3
, 2
, 3
, 4
, 3
, 3
, 2
, 3
, 2
, 3
, 2
, 3
, 3
, 2
, 3
, 2
, 3
, 1
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 4
, 3
, 4
, 4
, 4
, 4
]
----------------------------------------------------------------------
-- Virama (Canonical_Combining_Class = 9)
----------------------------------------------------------------------
-- | Number of (start, end) range pairs in 'viramaRanges'.
viramaRangeCount :: Int
viramaRangeCount = 58
-- | Codepoints with Canonical_Combining_Class = 9
-- (Virama), alternating start\/end.
viramaRanges :: ByteArray
viramaRanges = PBA.byteArrayFromList
[ (0x00094D :: Word32)
, 0x00094D
, 0x0009CD
, 0x0009CD
, 0x000A4D
, 0x000A4D
, 0x000ACD
, 0x000ACD
, 0x000B4D
, 0x000B4D
, 0x000BCD
, 0x000BCD
, 0x000C4D
, 0x000C4D
, 0x000CCD
, 0x000CCD
, 0x000D3B
, 0x000D3C
, 0x000D4D
, 0x000D4D
, 0x000DCA
, 0x000DCA
, 0x000E3A
, 0x000E3A
, 0x000EBA
, 0x000EBA
, 0x000F84
, 0x000F84
, 0x001039
, 0x00103A
, 0x001714
, 0x001715
, 0x001734
, 0x001734
, 0x0017D2
, 0x0017D2
, 0x001A60
, 0x001A60
, 0x001B44
, 0x001B44
, 0x001BAA
, 0x001BAB
, 0x001BF2
, 0x001BF3
, 0x002D7F
, 0x002D7F
, 0x00A806
, 0x00A806
, 0x00A82C
, 0x00A82C
, 0x00A8C4
, 0x00A8C4
, 0x00A953
, 0x00A953
, 0x00A9C0
, 0x00A9C0
, 0x00AAF6
, 0x00AAF6
, 0x00ABED
, 0x00ABED
, 0x010A3F
, 0x010A3F
, 0x011046
, 0x011046
, 0x011070
, 0x011070
, 0x01107F
, 0x01107F
, 0x0110B9
, 0x0110B9
, 0x011133
, 0x011134
, 0x0111C0
, 0x0111C0
, 0x011235
, 0x011235
, 0x0112EA
, 0x0112EA
, 0x01134D
, 0x01134D
, 0x0113CE
, 0x0113D0
, 0x011442
, 0x011442
, 0x0114C2
, 0x0114C2
, 0x0115BF
, 0x0115BF
, 0x01163F
, 0x01163F
, 0x0116B6
, 0x0116B6
, 0x01172B
, 0x01172B
, 0x011839
, 0x011839
, 0x01193D
, 0x01193E
, 0x0119E0
, 0x0119E0
, 0x011A34
, 0x011A34
, 0x011A47
, 0x011A47
, 0x011A99
, 0x011A99
, 0x011C3F
, 0x011C3F
, 0x011D44
, 0x011D45
, 0x011D97
, 0x011D97
, 0x011F41
, 0x011F42
, 0x01612F
, 0x01612F
]