unidata

package
v2.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package unidata contains information about the Unicode database.

This is an alternative to Go's unicode package in stdlib and provides some additional data. In particular, it knows a bit more about codepoints and knows about emojis.

The downside is that this package is a bit slower, uses more memory, and increases the binary size by about 2M. It should still be plenty fast enough for most use cases.

This is updated to Unicode 14.0 (September 2021).

NOTE: be careful in mixing this package and the stdlib unicode package; it usually takes a while before the tables in there are updated, and may result in inconsistent results. For example, unicode.IsPrint() will return false even for printable characters if it doesn't know about them. As of Go 1.18, unicode is using Unicode 13.0. The unicode/utf8 and unicode/utf16 are fine, as they just deal with the byte encodings.

Index

Constants

View Source
const (
	ModPerson      = EmojiModifier(1 << iota) // Gender-neutral "person".
	ModMale                                   // Male
	ModFemale                                 // Female
	ModNone                                   // No skin tone
	ModLight                                  // Light skin tone
	ModMediumLight                            // Medium light skin tone
	ModMedium                                 // Medium skin tone
	ModMediumDark                             // Mediun dark skin tone
	ModDark                                   // Dark skin tone
)

EmojiModifier values.

View Source
const (
	BlockUnknown = Block(iota)
	BlockBasicLatin
	BlockLatin1Supplement
	BlockLatinExtendedA
	BlockLatinExtendedB
	BlockIPAExtensions
	BlockSpacingModifierLetters
	BlockCombiningDiacriticalMarks
	BlockGreekandCoptic
	BlockCyrillic
	BlockCyrillicSupplement
	BlockArmenian
	BlockHebrew
	BlockArabic
	BlockSyriac
	BlockArabicSupplement
	BlockThaana
	BlockNKo
	BlockSamaritan
	BlockMandaic
	BlockSyriacSupplement
	BlockArabicExtendedB
	BlockArabicExtendedA
	BlockDevanagari
	BlockBengali
	BlockGurmukhi
	BlockGujarati
	BlockOriya
	BlockTamil
	BlockTelugu
	BlockKannada
	BlockMalayalam
	BlockSinhala
	BlockThai
	BlockLao
	BlockTibetan
	BlockMyanmar
	BlockGeorgian
	BlockHangulJamo
	BlockEthiopic
	BlockEthiopicSupplement
	BlockCherokee
	BlockUnifiedCanadianAboriginalSyllabics
	BlockOgham
	BlockRunic
	BlockTagalog
	BlockHanunoo
	BlockBuhid
	BlockTagbanwa
	BlockKhmer
	BlockMongolian
	BlockUnifiedCanadianAboriginalSyllabicsExtended
	BlockLimbu
	BlockTaiLe
	BlockNewTaiLue
	BlockKhmerSymbols
	BlockBuginese
	BlockTaiTham
	BlockCombiningDiacriticalMarksExtended
	BlockBalinese
	BlockSundanese
	BlockBatak
	BlockLepcha
	BlockOlChiki
	BlockCyrillicExtendedC
	BlockGeorgianExtended
	BlockSundaneseSupplement
	BlockVedicExtensions
	BlockPhoneticExtensions
	BlockPhoneticExtensionsSupplement
	BlockCombiningDiacriticalMarksSupplement
	BlockLatinExtendedAdditional
	BlockGreekExtended
	BlockGeneralPunctuation
	BlockSuperscriptsandSubscripts
	BlockCurrencySymbols
	BlockCombiningDiacriticalMarksforSymbols
	BlockLetterlikeSymbols
	BlockNumberForms
	BlockArrows
	BlockMathematicalOperators
	BlockMiscellaneousTechnical
	BlockControlPictures
	BlockOpticalCharacterRecognition
	BlockEnclosedAlphanumerics
	BlockBoxDrawing
	BlockBlockElements
	BlockGeometricShapes
	BlockMiscellaneousSymbols
	BlockDingbats
	BlockMiscellaneousMathematicalSymbolsA
	BlockSupplementalArrowsA
	BlockBraillePatterns
	BlockSupplementalArrowsB
	BlockMiscellaneousMathematicalSymbolsB
	BlockSupplementalMathematicalOperators
	BlockMiscellaneousSymbolsandArrows
	BlockGlagolitic
	BlockLatinExtendedC
	BlockCoptic
	BlockGeorgianSupplement
	BlockTifinagh
	BlockEthiopicExtended
	BlockCyrillicExtendedA
	BlockSupplementalPunctuation
	BlockCJKRadicalsSupplement
	BlockKangxiRadicals
	BlockIdeographicDescriptionCharacters
	BlockCJKSymbolsandPunctuation
	BlockHiragana
	BlockKatakana
	BlockBopomofo
	BlockHangulCompatibilityJamo
	BlockKanbun
	BlockBopomofoExtended
	BlockCJKStrokes
	BlockKatakanaPhoneticExtensions
	BlockEnclosedCJKLettersandMonths
	BlockCJKCompatibility
	BlockCJKUnifiedIdeographsExtensionA
	BlockYijingHexagramSymbols
	BlockCJKUnifiedIdeographs
	BlockYiSyllables
	BlockYiRadicals
	BlockLisu
	BlockVai
	BlockCyrillicExtendedB
	BlockBamum
	BlockModifierToneLetters
	BlockLatinExtendedD
	BlockSylotiNagri
	BlockCommonIndicNumberForms
	BlockPhagspa
	BlockSaurashtra
	BlockDevanagariExtended
	BlockKayahLi
	BlockRejang
	BlockHangulJamoExtendedA
	BlockJavanese
	BlockMyanmarExtendedB
	BlockCham
	BlockMyanmarExtendedA
	BlockTaiViet
	BlockMeeteiMayekExtensions
	BlockEthiopicExtendedA
	BlockLatinExtendedE
	BlockCherokeeSupplement
	BlockMeeteiMayek
	BlockHangulSyllables
	BlockHangulJamoExtendedB
	BlockHighSurrogates
	BlockHighPrivateUseSurrogates
	BlockLowSurrogates
	BlockPrivateUseArea
	BlockCJKCompatibilityIdeographs
	BlockAlphabeticPresentationForms
	BlockArabicPresentationFormsA
	BlockVariationSelectors
	BlockVerticalForms
	BlockCombiningHalfMarks
	BlockCJKCompatibilityForms
	BlockSmallFormVariants
	BlockArabicPresentationFormsB
	BlockHalfwidthandFullwidthForms
	BlockSpecials
	BlockLinearBSyllabary
	BlockLinearBIdeograms
	BlockAegeanNumbers
	BlockAncientGreekNumbers
	BlockAncientSymbols
	BlockPhaistosDisc
	BlockLycian
	BlockCarian
	BlockCopticEpactNumbers
	BlockOldItalic
	BlockGothic
	BlockOldPermic
	BlockUgaritic
	BlockOldPersian
	BlockDeseret
	BlockShavian
	BlockOsmanya
	BlockOsage
	BlockElbasan
	BlockCaucasianAlbanian
	BlockVithkuqi
	BlockLinearA
	BlockLatinExtendedF
	BlockCypriotSyllabary
	BlockImperialAramaic
	BlockPalmyrene
	BlockNabataean
	BlockHatran
	BlockPhoenician
	BlockLydian
	BlockMeroiticHieroglyphs
	BlockMeroiticCursive
	BlockKharoshthi
	BlockOldSouthArabian
	BlockOldNorthArabian
	BlockManichaean
	BlockAvestan
	BlockInscriptionalParthian
	BlockInscriptionalPahlavi
	BlockPsalterPahlavi
	BlockOldTurkic
	BlockOldHungarian
	BlockHanifiRohingya
	BlockRumiNumeralSymbols
	BlockYezidi
	BlockArabicExtendedC
	BlockOldSogdian
	BlockSogdian
	BlockOldUyghur
	BlockChorasmian
	BlockElymaic
	BlockBrahmi
	BlockKaithi
	BlockSoraSompeng
	BlockChakma
	BlockMahajani
	BlockSharada
	BlockSinhalaArchaicNumbers
	BlockKhojki
	BlockMultani
	BlockKhudawadi
	BlockGrantha
	BlockNewa
	BlockTirhuta
	BlockSiddham
	BlockModi
	BlockMongolianSupplement
	BlockTakri
	BlockAhom
	BlockDogra
	BlockWarangCiti
	BlockDivesAkuru
	BlockNandinagari
	BlockZanabazarSquare
	BlockSoyombo
	BlockUnifiedCanadianAboriginalSyllabicsExtendedA
	BlockPauCinHau
	BlockDevanagariExtendedA
	BlockBhaiksuki
	BlockMarchen
	BlockMasaramGondi
	BlockGunjalaGondi
	BlockMakasar
	BlockKawi
	BlockLisuSupplement
	BlockTamilSupplement
	BlockCuneiform
	BlockCuneiformNumbersandPunctuation
	BlockEarlyDynasticCuneiform
	BlockCyproMinoan
	BlockEgyptianHieroglyphs
	BlockEgyptianHieroglyphFormatControls
	BlockAnatolianHieroglyphs
	BlockBamumSupplement
	BlockMro
	BlockTangsa
	BlockBassaVah
	BlockPahawhHmong
	BlockMedefaidrin
	BlockMiao
	BlockIdeographicSymbolsandPunctuation
	BlockTangut
	BlockTangutComponents
	BlockKhitanSmallScript
	BlockTangutSupplement
	BlockKanaExtendedB
	BlockKanaSupplement
	BlockKanaExtendedA
	BlockSmallKanaExtension
	BlockNushu
	BlockDuployan
	BlockShorthandFormatControls
	BlockZnamennyMusicalNotation
	BlockByzantineMusicalSymbols
	BlockMusicalSymbols
	BlockAncientGreekMusicalNotation
	BlockKaktovikNumerals
	BlockMayanNumerals
	BlockTaiXuanJingSymbols
	BlockCountingRodNumerals
	BlockMathematicalAlphanumericSymbols
	BlockSuttonSignWriting
	BlockLatinExtendedG
	BlockGlagoliticSupplement
	BlockCyrillicExtendedD
	BlockNyiakengPuachueHmong
	BlockToto
	BlockWancho
	BlockNagMundari
	BlockEthiopicExtendedB
	BlockMendeKikakui
	BlockAdlam
	BlockIndicSiyaqNumbers
	BlockOttomanSiyaqNumbers
	BlockArabicMathematicalAlphabeticSymbols
	BlockMahjongTiles
	BlockDominoTiles
	BlockPlayingCards
	BlockEnclosedAlphanumericSupplement
	BlockEnclosedIdeographicSupplement
	BlockMiscellaneousSymbolsandPictographs
	BlockEmoticons
	BlockOrnamentalDingbats
	BlockTransportandMapSymbols
	BlockAlchemicalSymbols
	BlockGeometricShapesExtended
	BlockSupplementalArrowsC
	BlockSupplementalSymbolsandPictographs
	BlockChessSymbols
	BlockSymbolsandPictographsExtendedA
	BlockSymbolsforLegacyComputing
	BlockCJKUnifiedIdeographsExtensionB
	BlockCJKUnifiedIdeographsExtensionC
	BlockCJKUnifiedIdeographsExtensionD
	BlockCJKUnifiedIdeographsExtensionE
	BlockCJKUnifiedIdeographsExtensionF
	BlockCJKCompatibilityIdeographsSupplement
	BlockCJKUnifiedIdeographsExtensionG
	BlockCJKUnifiedIdeographsExtensionH
	BlockTags
	BlockVariationSelectorsSupplement
	BlockSupplementaryPrivateUseAreaA
	BlockSupplementaryPrivateUseAreaB
)

Unicode blocks

View Source
const (
	CatUnknown              = Category(iota)
	CatOther                // C   (Cc | Cf | Cn | Co | Cs)
	CatControl              // Cc
	CatFormat               // Cf
	CatUnassigned           // Cn
	CatPrivateUse           // Co
	CatSurrogate            // Cs
	CatLetter               // L   (Ll | Lm | Lo | Lt | Lu)
	CatCasedLetter          // LC  (Ll | Lt | Lu)
	CatLowercaseLetter      // Ll
	CatModifierLetter       // Lm
	CatOtherLetter          // Lo
	CatTitlecaseLetter      // Lt
	CatUppercaseLetter      // Lu
	CatMark                 // M   (Mc | Me | Mn)
	CatSpacingMark          // Mc
	CatEnclosingMark        // Me
	CatNonspacingMark       // Mn
	CatNumber               // N   (Nd | Nl | No)
	CatDecimalNumber        // Nd
	CatLetterNumber         // Nl
	CatOtherNumber          // No
	CatPunctuation          // P   (Pc | Pd | Pe | Pf | Pi | Po | Ps)
	CatConnectorPunctuation // Pc
	CatDashPunctuation      // Pd
	CatClosePunctuation     // Pe
	CatFinalPunctuation     // Pf
	CatInitialPunctuation   // Pi
	CatOtherPunctuation     // Po
	CatOpenPunctuation      // Ps
	CatSymbol               // S   (Sc | Sk | Sm | So)
	CatCurrencySymbol       // Sc
	CatModifierSymbol       // Sk
	CatMathSymbol           // Sm
	CatOtherSymbol          // So
	CatSeparator            // Z   (Zl | Zp | Zs)
	CatLineSeparator        // Zl
	CatParagraphSeparator   // Zp
	CatSpaceSeparator       // Zs
)

Unicode general categories (long names).

Unicode general categories (short names).

View Source
const (
	EmojiSmileysAndEmotion = EmojiGroup(iota)
	EmojiPeopleAndBody
	EmojiComponent
	EmojiAnimalsAndNature
	EmojiFoodAndDrink
	EmojiTravelAndPlaces
	EmojiActivities
	EmojiObjects
	EmojiSymbols
	EmojiFlags
)

Emoji groups.

View Source
const (
	EmojiFaceSmiling = EmojiSubgroup(iota)
	EmojiFaceAffection
	EmojiFaceTongue
	EmojiFaceHand
	EmojiFaceNeutralSkeptical
	EmojiFaceSleepy
	EmojiFaceUnwell
	EmojiFaceHat
	EmojiFaceGlasses
	EmojiFaceConcerned
	EmojiFaceNegative
	EmojiFaceCostume
	EmojiCatFace
	EmojiMonkeyFace
	EmojiEmotion
	EmojiHandFingersOpen
	EmojiHandFingersPartial
	EmojiHandSingleFinger
	EmojiHandFingersClosed
	EmojiHands
	EmojiHandProp
	EmojiBodyParts
	EmojiPerson
	EmojiPersonGesture
	EmojiPersonRole
	EmojiPersonFantasy
	EmojiPersonActivity
	EmojiPersonSport
	EmojiPersonResting
	EmojiFamily
	EmojiPersonSymbol
	EmojiSkinTone
	EmojiHairStyle
	EmojiAnimalMammal
	EmojiAnimalBird
	EmojiAnimalAmphibian
	EmojiAnimalReptile
	EmojiAnimalMarine
	EmojiAnimalBug
	EmojiPlantFlower
	EmojiPlantOther
	EmojiFoodFruit
	EmojiFoodVegetable
	EmojiFoodPrepared
	EmojiFoodAsian
	EmojiFoodMarine
	EmojiFoodSweet
	EmojiDrink
	EmojiDishware
	EmojiPlaceMap
	EmojiPlaceGeographic
	EmojiPlaceBuilding
	EmojiPlaceReligious
	EmojiPlaceOther
	EmojiTransportGround
	EmojiTransportWater
	EmojiTransportAir
	EmojiHotel
	EmojiTime
	EmojiSkyAndweather
	EmojiEvent
	EmojiAwardMedal
	EmojiSport
	EmojiGame
	EmojiArtsAndcrafts
	EmojiClothing
	EmojiSound
	EmojiMusic
	EmojiMusicalInstrument
	EmojiPhone
	EmojiComputer
	EmojiLightAndvideo
	EmojiBookPaper
	EmojiMoney
	EmojiMail
	EmojiWriting
	EmojiOffice
	EmojiLock
	EmojiTool
	EmojiScience
	EmojiMedical
	EmojiHousehold
	EmojiOtherObject
	EmojiTransportSign
	EmojiWarning
	EmojiArrow
	EmojiReligion
	EmojiZodiac
	EmojiAvSymbol
	EmojiGender
	EmojiMath
	EmojiPunctuation
	EmojiCurrency
	EmojiOtherSymbol
	EmojiKeycap
	EmojiAlphanum
	EmojiGeometric
	EmojiFlag
	EmojiCountryFlag
	EmojiSubdivisionFlag
)

Emoji subgroups.

View Source
const (
	PropUnknown = Property(iota)
	PropASCIIHexDigit
	PropBidiControl
	PropDash
	PropDeprecated
	PropDiacritic
	PropExtender
	PropHexDigit
	PropHyphen
	PropIDSBinaryOperator
	PropIDSTrinaryOperator
	PropIdeographic
	PropJoinControl
	PropLogicalOrderException
	PropNoncharacterCodePoint
	PropOtherAlphabetic
	PropOtherDefaultIgnorableCodePoint
	PropOtherGraphemeExtend
	PropOtherIDContinue
	PropOtherIDStart
	PropOtherLowercase
	PropOtherMath
	PropOtherUppercase
	PropPatternSyntax
	PropPatternWhiteSpace
	PropPrependedConcatenationMark
	PropQuotationMark
	PropRadical
	PropRegionalIndicator
	PropSentenceTerminal
	PropSoftDotted
	PropTerminalPunctuation
	PropUnifiedIdeograph
	PropVariationSelector
	PropWhiteSpace
)

Unicode properties

View Source
const (
	ScriptUnknown = Script(iota)
	ScriptAdlam
	ScriptAhom
	ScriptAnatolianHieroglyphs
	ScriptArabic
	ScriptArmenian
	ScriptAvestan
	ScriptBalinese
	ScriptBamum
	ScriptBassaVah
	ScriptBatak
	ScriptBengali
	ScriptBhaiksuki
	ScriptBopomofo
	ScriptBrahmi
	ScriptBraille
	ScriptBuginese
	ScriptBuhid
	ScriptCanadianAboriginal
	ScriptCarian
	ScriptCaucasianAlbanian
	ScriptChakma
	ScriptCham
	ScriptCherokee
	ScriptChorasmian
	ScriptCommon
	ScriptCoptic
	ScriptCuneiform
	ScriptCypriot
	ScriptCyproMinoan
	ScriptCyrillic
	ScriptDeseret
	ScriptDevanagari
	ScriptDivesAkuru
	ScriptDogra
	ScriptDuployan
	ScriptEgyptianHieroglyphs
	ScriptElbasan
	ScriptElymaic
	ScriptEthiopic
	ScriptGeorgian
	ScriptGlagolitic
	ScriptGothic
	ScriptGrantha
	ScriptGreek
	ScriptGujarati
	ScriptGunjalaGondi
	ScriptGurmukhi
	ScriptHan
	ScriptHangul
	ScriptHanifiRohingya
	ScriptHanunoo
	ScriptHatran
	ScriptHebrew
	ScriptHiragana
	ScriptImperialAramaic
	ScriptInherited
	ScriptInscriptionalPahlavi
	ScriptInscriptionalParthian
	ScriptJavanese
	ScriptKaithi
	ScriptKannada
	ScriptKatakana
	ScriptKawi
	ScriptKayahLi
	ScriptKharoshthi
	ScriptKhitanSmallScript
	ScriptKhmer
	ScriptKhojki
	ScriptKhudawadi
	ScriptLao
	ScriptLatin
	ScriptLepcha
	ScriptLimbu
	ScriptLinearA
	ScriptLinearB
	ScriptLisu
	ScriptLycian
	ScriptLydian
	ScriptMahajani
	ScriptMakasar
	ScriptMalayalam
	ScriptMandaic
	ScriptManichaean
	ScriptMarchen
	ScriptMasaramGondi
	ScriptMedefaidrin
	ScriptMeeteiMayek
	ScriptMendeKikakui
	ScriptMeroiticCursive
	ScriptMeroiticHieroglyphs
	ScriptMiao
	ScriptModi
	ScriptMongolian
	ScriptMro
	ScriptMultani
	ScriptMyanmar
	ScriptNabataean
	ScriptNagMundari
	ScriptNandinagari
	ScriptNewTaiLue
	ScriptNewa
	ScriptNko
	ScriptNushu
	ScriptNyiakengPuachueHmong
	ScriptOgham
	ScriptOlChiki
	ScriptOldHungarian
	ScriptOldItalic
	ScriptOldNorthArabian
	ScriptOldPermic
	ScriptOldPersian
	ScriptOldSogdian
	ScriptOldSouthArabian
	ScriptOldTurkic
	ScriptOldUyghur
	ScriptOriya
	ScriptOsage
	ScriptOsmanya
	ScriptPahawhHmong
	ScriptPalmyrene
	ScriptPauCinHau
	ScriptPhagsPa
	ScriptPhoenician
	ScriptPsalterPahlavi
	ScriptRejang
	ScriptRunic
	ScriptSamaritan
	ScriptSaurashtra
	ScriptSharada
	ScriptShavian
	ScriptSiddham
	ScriptSignWriting
	ScriptSinhala
	ScriptSogdian
	ScriptSoraSompeng
	ScriptSoyombo
	ScriptSundanese
	ScriptSylotiNagri
	ScriptSyriac
	ScriptTagalog
	ScriptTagbanwa
	ScriptTaiLe
	ScriptTaiTham
	ScriptTaiViet
	ScriptTakri
	ScriptTamil
	ScriptTangsa
	ScriptTangut
	ScriptTelugu
	ScriptThaana
	ScriptThai
	ScriptTibetan
	ScriptTifinagh
	ScriptTirhuta
	ScriptToto
	ScriptUgaritic
	ScriptVai
	ScriptVithkuqi
	ScriptWancho
	ScriptWarangCiti
	ScriptYezidi
	ScriptYi
	ScriptZanabazarSquare
)

Unicode scripts

View Source
const (
	PlaneUnknown    = Plane(iota)
	PlaneBMP        // 0:     Basic Multilingual Plane
	PlaneSMP        // 1:     Supplementary Multilingual Plane
	PlaneSIP        // 2:     Supplementary Ideographic Plane
	PlaneTIP        // 3:     Tertiary Ideographic Plane
	PlaneUnassigned // 4-13:  Unassigned
	PlaneSpecial    // 14:    Supplementary Special-purpose Plane
	PlanePrivate    // 15-16: Supplementary Private Use Area planes
)

Unicode planes.

View Source
const (
	WidthAmbiguous = Width(iota) // Ambiguous, A
	WidthFullWidth               // FullWidth, F
	WidthHalfWidth               // Halfwidth, H
	WidthNarrow                  // Narrow, N
	WidthNeutral                 // Neutral (Not East Asian), Na
	WidthWide                    // Wide, W
)

Unicode widths.

View Source
const (
	UnicodeLatest = Unicode(iota)
	Unicode1_1
	Unicode2
	Unicode2_1
	Unicode3
	Unicode3_1
	Unicode3_2
	Unicode4
	Unicode4_1
	Unicode5
	Unicode5_1
	Unicode5_2
	Unicode6
	Unicode6_1
	Unicode6_2
	Unicode6_3
	Unicode7
	Unicode8
	Unicode9
	Unicode10
	Unicode11
	Unicode12
	Unicode12_1
	Unicode13
	Unicode14
	Unicode15
	Unicode15_1
)

Unicode versions.

Variables

View Source
var Blocks = map[Block]struct {
	Range [2]rune
	Name  string

}{}/* 327 elements not displayed */

Blocks is a list of all Unicode blocks.

View Source
var Categories = map[Category]struct {
	ShortName, Name string
	Include         []Category
}{
	CatOther:                {"C", "Other", []Category{CatCc, CatCf, CatCn, CatCo, CatCs}},
	CatControl:              {"Cc", "Control", nil},
	CatFormat:               {"Cf", "Format", nil},
	CatUnassigned:           {"Cn", "Unassigned", nil},
	CatPrivateUse:           {"Co", "Private_Use", nil},
	CatSurrogate:            {"Cs", "Surrogate", nil},
	CatLetter:               {"L", "Letter", []Category{CatLl, CatLm, CatLo, CatLt, CatLu}},
	CatCasedLetter:          {"LC", "Cased_Letter", []Category{CatLl, CatLt, CatLu}},
	CatLowercaseLetter:      {"Ll", "Lowercase_Letter", nil},
	CatModifierLetter:       {"Lm", "Modifier_Letter", nil},
	CatOtherLetter:          {"Lo", "Other_Letter", nil},
	CatTitlecaseLetter:      {"Lt", "Titlecase_Letter", nil},
	CatUppercaseLetter:      {"Lu", "Uppercase_Letter", nil},
	CatMark:                 {"M", "Mark", []Category{CatMc, CatMe, CatMn}},
	CatSpacingMark:          {"Mc", "Spacing_Mark", nil},
	CatEnclosingMark:        {"Me", "Enclosing_Mark", nil},
	CatNonspacingMark:       {"Mn", "Nonspacing_Mark", nil},
	CatNumber:               {"N", "Number", []Category{CatNd, CatNl, CatNo}},
	CatDecimalNumber:        {"Nd", "Decimal_Number", nil},
	CatLetterNumber:         {"Nl", "Letter_Number", nil},
	CatOtherNumber:          {"No", "Other_Number", nil},
	CatPunctuation:          {"P", "Punctuation", []Category{CatPc, CatPd, CatPe, CatPf, CatPi, CatPo, CatPs}},
	CatConnectorPunctuation: {"Pc", "Connector_Punctuation", nil},
	CatDashPunctuation:      {"Pd", "Dash_Punctuation", nil},
	CatClosePunctuation:     {"Pe", "Close_Punctuation", nil},
	CatFinalPunctuation:     {"Pf", "Final_Punctuation", nil},
	CatInitialPunctuation:   {"Pi", "Initial_Punctuation", nil},
	CatOtherPunctuation:     {"Po", "Other_Punctuation", nil},
	CatOpenPunctuation:      {"Ps", "Open_Punctuation", nil},
	CatSymbol:               {"S", "Symbol", []Category{CatSc, CatSk, CatSm, CatSo}},
	CatCurrencySymbol:       {"Sc", "Currency_Symbol", nil},
	CatModifierSymbol:       {"Sk", "Modifier_Symbol", nil},
	CatMathSymbol:           {"Sm", "Math_Symbol", nil},
	CatOtherSymbol:          {"So", "Other_Symbol", nil},
	CatSeparator:            {"Z", "Separator", []Category{CatZl, CatZp, CatZs}},
	CatLineSeparator:        {"Zl", "Line_Separator", nil},
	CatParagraphSeparator:   {"Zp", "Paragraph_Separator", nil},
	CatSpaceSeparator:       {"Zs", "Space_Separator", nil},
}

Categories is a list of all categories.

View Source
var Codepoints = map[rune]Codepoint{}/* 34924 elements not displayed */
View Source
var EmojiGroups = map[EmojiGroup]struct {
	Name      string
	Subgroups []EmojiSubgroup
}{
	EmojiSmileysAndEmotion: {"Smileys & Emotion", []EmojiSubgroup{
		EmojiFaceSmiling, EmojiFaceAffection, EmojiFaceTongue, EmojiFaceHand, EmojiFaceNeutralSkeptical,
		EmojiFaceSleepy, EmojiFaceUnwell, EmojiFaceHat, EmojiFaceGlasses, EmojiFaceConcerned,
		EmojiFaceNegative, EmojiFaceCostume, EmojiCatFace, EmojiMonkeyFace, EmojiEmotion}},
	EmojiPeopleAndBody: {"People & Body", []EmojiSubgroup{
		EmojiHandFingersOpen, EmojiHandFingersPartial, EmojiHandSingleFinger, EmojiHandFingersClosed,
		EmojiHands, EmojiHandProp, EmojiBodyParts, EmojiPerson, EmojiPersonGesture, EmojiPersonRole,
		EmojiPersonFantasy, EmojiPersonActivity, EmojiPersonSport, EmojiPersonResting, EmojiFamily,
		EmojiPersonSymbol}},
	EmojiComponent: {"Component", []EmojiSubgroup{
		EmojiSkinTone, EmojiHairStyle}},
	EmojiAnimalsAndNature: {"Animals & Nature", []EmojiSubgroup{
		EmojiAnimalMammal, EmojiAnimalBird, EmojiAnimalAmphibian, EmojiAnimalReptile, EmojiAnimalMarine,
		EmojiAnimalBug, EmojiPlantFlower, EmojiPlantOther}},
	EmojiFoodAndDrink: {"Food & Drink", []EmojiSubgroup{
		EmojiFoodFruit, EmojiFoodVegetable, EmojiFoodPrepared, EmojiFoodAsian, EmojiFoodMarine,
		EmojiFoodSweet, EmojiDrink, EmojiDishware}},
	EmojiTravelAndPlaces: {"Travel & Places", []EmojiSubgroup{
		EmojiPlaceMap, EmojiPlaceGeographic, EmojiPlaceBuilding, EmojiPlaceReligious, EmojiPlaceOther,
		EmojiTransportGround, EmojiTransportWater, EmojiTransportAir, EmojiHotel, EmojiTime,
		EmojiSkyAndweather}},
	EmojiActivities: {"Activities", []EmojiSubgroup{
		EmojiEvent, EmojiAwardMedal, EmojiSport, EmojiGame, EmojiArtsAndcrafts}},
	EmojiObjects: {"Objects", []EmojiSubgroup{
		EmojiClothing, EmojiSound, EmojiMusic, EmojiMusicalInstrument, EmojiPhone, EmojiComputer,
		EmojiLightAndvideo, EmojiBookPaper, EmojiMoney, EmojiMail, EmojiWriting, EmojiOffice, EmojiLock,
		EmojiTool, EmojiScience, EmojiMedical, EmojiHousehold, EmojiOtherObject}},
	EmojiSymbols: {"Symbols", []EmojiSubgroup{
		EmojiTransportSign, EmojiWarning, EmojiArrow, EmojiReligion, EmojiZodiac, EmojiAvSymbol,
		EmojiGender, EmojiMath, EmojiPunctuation, EmojiCurrency, EmojiOtherSymbol, EmojiKeycap,
		EmojiAlphanum, EmojiGeometric}},
	EmojiFlags: {"Flags", []EmojiSubgroup{
		EmojiFlag, EmojiCountryFlag, EmojiSubdivisionFlag}},
}

EmojiGroups is a list of all emoji groups.

View Source
var EmojiSubgroups = map[EmojiSubgroup]struct {
	Group EmojiGroup
	Name  string
}{
	EmojiFaceSmiling:          {EmojiSmileysAndEmotion, "face-smiling"},
	EmojiFaceAffection:        {EmojiSmileysAndEmotion, "face-affection"},
	EmojiFaceTongue:           {EmojiSmileysAndEmotion, "face-tongue"},
	EmojiFaceHand:             {EmojiSmileysAndEmotion, "face-hand"},
	EmojiFaceNeutralSkeptical: {EmojiSmileysAndEmotion, "face-neutral-skeptical"},
	EmojiFaceSleepy:           {EmojiSmileysAndEmotion, "face-sleepy"},
	EmojiFaceUnwell:           {EmojiSmileysAndEmotion, "face-unwell"},
	EmojiFaceHat:              {EmojiSmileysAndEmotion, "face-hat"},
	EmojiFaceGlasses:          {EmojiSmileysAndEmotion, "face-glasses"},
	EmojiFaceConcerned:        {EmojiSmileysAndEmotion, "face-concerned"},
	EmojiFaceNegative:         {EmojiSmileysAndEmotion, "face-negative"},
	EmojiFaceCostume:          {EmojiSmileysAndEmotion, "face-costume"},
	EmojiCatFace:              {EmojiSmileysAndEmotion, "cat-face"},
	EmojiMonkeyFace:           {EmojiSmileysAndEmotion, "monkey-face"},
	EmojiEmotion:              {EmojiSmileysAndEmotion, "emotion"},
	EmojiHandFingersOpen:      {EmojiPeopleAndBody, "hand-fingers-open"},
	EmojiHandFingersPartial:   {EmojiPeopleAndBody, "hand-fingers-partial"},
	EmojiHandSingleFinger:     {EmojiPeopleAndBody, "hand-single-finger"},
	EmojiHandFingersClosed:    {EmojiPeopleAndBody, "hand-fingers-closed"},
	EmojiHands:                {EmojiPeopleAndBody, "hands"},
	EmojiHandProp:             {EmojiPeopleAndBody, "hand-prop"},
	EmojiBodyParts:            {EmojiPeopleAndBody, "body-parts"},
	EmojiPerson:               {EmojiPeopleAndBody, "person"},
	EmojiPersonGesture:        {EmojiPeopleAndBody, "person-gesture"},
	EmojiPersonRole:           {EmojiPeopleAndBody, "person-role"},
	EmojiPersonFantasy:        {EmojiPeopleAndBody, "person-fantasy"},
	EmojiPersonActivity:       {EmojiPeopleAndBody, "person-activity"},
	EmojiPersonSport:          {EmojiPeopleAndBody, "person-sport"},
	EmojiPersonResting:        {EmojiPeopleAndBody, "person-resting"},
	EmojiFamily:               {EmojiPeopleAndBody, "family"},
	EmojiPersonSymbol:         {EmojiPeopleAndBody, "person-symbol"},
	EmojiSkinTone:             {EmojiComponent, "skin-tone"},
	EmojiHairStyle:            {EmojiComponent, "hair-style"},
	EmojiAnimalMammal:         {EmojiAnimalsAndNature, "animal-mammal"},
	EmojiAnimalBird:           {EmojiAnimalsAndNature, "animal-bird"},
	EmojiAnimalAmphibian:      {EmojiAnimalsAndNature, "animal-amphibian"},
	EmojiAnimalReptile:        {EmojiAnimalsAndNature, "animal-reptile"},
	EmojiAnimalMarine:         {EmojiAnimalsAndNature, "animal-marine"},
	EmojiAnimalBug:            {EmojiAnimalsAndNature, "animal-bug"},
	EmojiPlantFlower:          {EmojiAnimalsAndNature, "plant-flower"},
	EmojiPlantOther:           {EmojiAnimalsAndNature, "plant-other"},
	EmojiFoodFruit:            {EmojiFoodAndDrink, "food-fruit"},
	EmojiFoodVegetable:        {EmojiFoodAndDrink, "food-vegetable"},
	EmojiFoodPrepared:         {EmojiFoodAndDrink, "food-prepared"},
	EmojiFoodAsian:            {EmojiFoodAndDrink, "food-asian"},
	EmojiFoodMarine:           {EmojiFoodAndDrink, "food-marine"},
	EmojiFoodSweet:            {EmojiFoodAndDrink, "food-sweet"},
	EmojiDrink:                {EmojiFoodAndDrink, "drink"},
	EmojiDishware:             {EmojiFoodAndDrink, "dishware"},
	EmojiPlaceMap:             {EmojiTravelAndPlaces, "place-map"},
	EmojiPlaceGeographic:      {EmojiTravelAndPlaces, "place-geographic"},
	EmojiPlaceBuilding:        {EmojiTravelAndPlaces, "place-building"},
	EmojiPlaceReligious:       {EmojiTravelAndPlaces, "place-religious"},
	EmojiPlaceOther:           {EmojiTravelAndPlaces, "place-other"},
	EmojiTransportGround:      {EmojiTravelAndPlaces, "transport-ground"},
	EmojiTransportWater:       {EmojiTravelAndPlaces, "transport-water"},
	EmojiTransportAir:         {EmojiTravelAndPlaces, "transport-air"},
	EmojiHotel:                {EmojiTravelAndPlaces, "hotel"},
	EmojiTime:                 {EmojiTravelAndPlaces, "time"},
	EmojiSkyAndweather:        {EmojiTravelAndPlaces, "sky & weather"},
	EmojiEvent:                {EmojiActivities, "event"},
	EmojiAwardMedal:           {EmojiActivities, "award-medal"},
	EmojiSport:                {EmojiActivities, "sport"},
	EmojiGame:                 {EmojiActivities, "game"},
	EmojiArtsAndcrafts:        {EmojiActivities, "arts & crafts"},
	EmojiClothing:             {EmojiObjects, "clothing"},
	EmojiSound:                {EmojiObjects, "sound"},
	EmojiMusic:                {EmojiObjects, "music"},
	EmojiMusicalInstrument:    {EmojiObjects, "musical-instrument"},
	EmojiPhone:                {EmojiObjects, "phone"},
	EmojiComputer:             {EmojiObjects, "computer"},
	EmojiLightAndvideo:        {EmojiObjects, "light & video"},
	EmojiBookPaper:            {EmojiObjects, "book-paper"},
	EmojiMoney:                {EmojiObjects, "money"},
	EmojiMail:                 {EmojiObjects, "mail"},
	EmojiWriting:              {EmojiObjects, "writing"},
	EmojiOffice:               {EmojiObjects, "office"},
	EmojiLock:                 {EmojiObjects, "lock"},
	EmojiTool:                 {EmojiObjects, "tool"},
	EmojiScience:              {EmojiObjects, "science"},
	EmojiMedical:              {EmojiObjects, "medical"},
	EmojiHousehold:            {EmojiObjects, "household"},
	EmojiOtherObject:          {EmojiObjects, "other-object"},
	EmojiTransportSign:        {EmojiSymbols, "transport-sign"},
	EmojiWarning:              {EmojiSymbols, "warning"},
	EmojiArrow:                {EmojiSymbols, "arrow"},
	EmojiReligion:             {EmojiSymbols, "religion"},
	EmojiZodiac:               {EmojiSymbols, "zodiac"},
	EmojiAvSymbol:             {EmojiSymbols, "av-symbol"},
	EmojiGender:               {EmojiSymbols, "gender"},
	EmojiMath:                 {EmojiSymbols, "math"},
	EmojiPunctuation:          {EmojiSymbols, "punctuation"},
	EmojiCurrency:             {EmojiSymbols, "currency"},
	EmojiOtherSymbol:          {EmojiSymbols, "other-symbol"},
	EmojiKeycap:               {EmojiSymbols, "keycap"},
	EmojiAlphanum:             {EmojiSymbols, "alphanum"},
	EmojiGeometric:            {EmojiSymbols, "geometric"},
	EmojiFlag:                 {EmojiFlags, "flag"},
	EmojiCountryFlag:          {EmojiFlags, "country-flag"},
	EmojiSubdivisionFlag:      {EmojiFlags, "subdivision-flag"},
}

EmojiSubgroups is a list of all emoji subgroups.

View Source
var Emojis = []Emoji{}/* 1709 elements not displayed */
View Source
var Planes = map[Plane]struct {
	Range [2]rune
	Name  string
}{
	PlaneBMP:        {[2]rune{0x00000, 0x00FFFF}, "Basic Multilingual Plane"},
	PlaneSMP:        {[2]rune{0x10000, 0x01FFFF}, "Supplementary Multilingual Plane"},
	PlaneSIP:        {[2]rune{0x20000, 0x02FFFF}, "Supplementary Ideographic Plane"},
	PlaneTIP:        {[2]rune{0x30000, 0x03FFFF}, "Tertiary Ideographic Plane"},
	PlaneUnassigned: {[2]rune{0x40000, 0x0DFFFF}, "Unassigned"},
	PlaneSpecial:    {[2]rune{0xE0000, 0x0EFFFF}, "Supplementary Special-purpose Plane"},
	PlanePrivate:    {[2]rune{0xF0000, 0x10FFFF}, "Supplementary Private Use Area planes"},
}

Planes is a list of all Unicode planes.

View Source
var Properties = map[Property]struct {
	Name   string
	Ranges [][2]rune
}{
	PropASCIIHexDigit: {"ASCII Hex Digit", [][2]rune{
		{0x0061, 0x0066},
		{0x0041, 0x0046},
		{0x0030, 0x0039},
	}},
	PropBidiControl: {"Bidi Control", [][2]rune{
		{0x2066, 0x2069},
		{0x202A, 0x202E},
		{0x200E, 0x200F},
		{0x061C, 0x061C},
	}},
	PropDash: {"Dash", [][2]rune{
		{0x10EAD, 0x10EAD},
		{0xFF0D, 0xFF0D},
		{0xFE63, 0xFE63},
		{0xFE58, 0xFE58},
		{0xFE31, 0xFE32},
		{0x30A0, 0x30A0},
		{0x3030, 0x3030},
		{0x301C, 0x301C},
		{0x2E5D, 0x2E5D},
		{0x2E40, 0x2E40},
		{0x2E3A, 0x2E3B},
		{0x2E1A, 0x2E1A},
		{0x2E17, 0x2E17},
		{0x2212, 0x2212},
		{0x208B, 0x208B},
		{0x207B, 0x207B},
		{0x2053, 0x2053},
		{0x2010, 0x2015},
		{0x1806, 0x1806},
		{0x1400, 0x1400},
		{0x05BE, 0x05BE},
		{0x058A, 0x058A},
		{0x002D, 0x002D},
	}},
	PropDeprecated: {"Deprecated", [][2]rune{
		{0xE0001, 0xE0001},
		{0x232A, 0x232A},
		{0x2329, 0x2329},
		{0x206A, 0x206F},
		{0x17A3, 0x17A4},
		{0x0F79, 0x0F79},
		{0x0F77, 0x0F77},
		{0x0673, 0x0673},
		{0x0149, 0x0149},
	}},
	PropDiacritic: {"Diacritic", [][2]rune{
		{0x1E948, 0x1E94A},
		{0x1E944, 0x1E946},
		{0x1E8D0, 0x1E8D6},
		{0x1E2EC, 0x1E2EF},
		{0x1E2AE, 0x1E2AE},
		{0x1E130, 0x1E136},
		{0x1E030, 0x1E06D},
		{0x1D1AA, 0x1D1AD},
		{0x1D185, 0x1D18B},
		{0x1D17B, 0x1D182},
		{0x1D16D, 0x1D172},
		{0x1D167, 0x1D169},
		{0x1CF30, 0x1CF46},
		{0x1CF00, 0x1CF2D},
		{0x1AFFD, 0x1AFFE},
		{0x1AFF5, 0x1AFFB},
		{0x1AFF0, 0x1AFF3},
		{0x16FF0, 0x16FF1},
		{0x16F93, 0x16F9F},
		{0x16F8F, 0x16F92},
		{0x16B30, 0x16B36},
		{0x16AF0, 0x16AF4},
		{0x13447, 0x13455},
		{0x11D97, 0x11D97},
		{0x11D44, 0x11D45},
		{0x11D42, 0x11D42},
		{0x11C3F, 0x11C3F},
		{0x11A99, 0x11A99},
		{0x11A47, 0x11A47},
		{0x11A34, 0x11A34},
		{0x119E0, 0x119E0},
		{0x11943, 0x11943},
		{0x1193E, 0x1193E},
		{0x1193D, 0x1193D},
		{0x11839, 0x1183A},
		{0x1172B, 0x1172B},
		{0x116B7, 0x116B7},
		{0x116B6, 0x116B6},
		{0x1163F, 0x1163F},
		{0x115BF, 0x115C0},
		{0x114C2, 0x114C3},
		{0x11446, 0x11446},
		{0x11442, 0x11442},
		{0x11370, 0x11374},
		{0x11366, 0x1136C},
		{0x1134D, 0x1134D},
		{0x1133C, 0x1133C},
		{0x112E9, 0x112EA},
		{0x11236, 0x11236},
		{0x11235, 0x11235},
		{0x111CA, 0x111CC},
		{0x111C0, 0x111C0},
		{0x11173, 0x11173},
		{0x11133, 0x11134},
		{0x110B9, 0x110BA},
		{0x11070, 0x11070},
		{0x11046, 0x11046},
		{0x10F82, 0x10F85},
		{0x10F46, 0x10F50},
		{0x10EFD, 0x10EFF},
		{0x10D24, 0x10D27},
		{0x10D22, 0x10D23},
		{0x10AE5, 0x10AE6},
		{0x107B2, 0x107BA},
		{0x10787, 0x107B0},
		{0x10780, 0x10785},
		{0x102E0, 0x102E0},
		{0xFFE3, 0xFFE3},
		{0xFF9E, 0xFF9F},
		{0xFF70, 0xFF70},
		{0xFF40, 0xFF40},
		{0xFF3E, 0xFF3E},
		{0xFE20, 0xFE2F},
		{0xFB1E, 0xFB1E},
		{0xABED, 0xABED},
		{0xABEC, 0xABEC},
		{0xAB6A, 0xAB6B},
		{0xAB69, 0xAB69},
		{0xAB5C, 0xAB5F},
		{0xAB5B, 0xAB5B},
		{0xAAF6, 0xAAF6},
		{0xAAC2, 0xAAC2},
		{0xAAC1, 0xAAC1},
		{0xAAC0, 0xAAC0},
		{0xAABF, 0xAABF},
		{0xAA7D, 0xAA7D},
		{0xAA7C, 0xAA7C},
		{0xAA7B, 0xAA7B},
		{0xA9E5, 0xA9E5},
		{0xA9C0, 0xA9C0},
		{0xA9B3, 0xA9B3},
		{0xA953, 0xA953},
		{0xA92E, 0xA92E},
		{0xA92B, 0xA92D},
		{0xA8E0, 0xA8F1},
		{0xA8C4, 0xA8C4},
		{0xA7F8, 0xA7F9},
		{0xA789, 0xA78A},
		{0xA788, 0xA788},
		{0xA720, 0xA721},
		{0xA717, 0xA71F},
		{0xA700, 0xA716},
		{0xA6F0, 0xA6F1},
		{0xA69C, 0xA69D},
		{0xA67F, 0xA67F},
		{0xA67C, 0xA67D},
		{0xA66F, 0xA66F},
		{0x30FC, 0x30FC},
		{0x309B, 0x309C},
		{0x3099, 0x309A},
		{0x302E, 0x302F},
		{0x302A, 0x302D},
		{0x2E2F, 0x2E2F},
		{0x2CEF, 0x2CF1},
		{0x1FFD, 0x1FFE},
		{0x1FED, 0x1FEF},
		{0x1FDD, 0x1FDF},
		{0x1FCD, 0x1FCF},
		{0x1FBF, 0x1FC1},
		{0x1FBD, 0x1FBD},
		{0x1DF5, 0x1DFF},
		{0x1DC4, 0x1DCF},
		{0x1D2C, 0x1D6A},
		{0x1CF8, 0x1CF9},
		{0x1CF7, 0x1CF7},
		{0x1CF4, 0x1CF4},
		{0x1CED, 0x1CED},
		{0x1CE2, 0x1CE8},
		{0x1CE1, 0x1CE1},
		{0x1CD4, 0x1CE0},
		{0x1CD3, 0x1CD3},
		{0x1CD0, 0x1CD2},
		{0x1C78, 0x1C7D},
		{0x1C36, 0x1C37},
		{0x1BAB, 0x1BAB},
		{0x1BAA, 0x1BAA},
		{0x1B6B, 0x1B73},
		{0x1B44, 0x1B44},
		{0x1B34, 0x1B34},
		{0x1AC1, 0x1ACB},
		{0x1ABE, 0x1ABE},
		{0x1AB0, 0x1ABD},
		{0x1A7F, 0x1A7F},
		{0x1A75, 0x1A7C},
		{0x1939, 0x193B},
		{0x17DD, 0x17DD},
		{0x17C9, 0x17D3},
		{0x1715, 0x1715},
		{0x1714, 0x1714},
		{0x135D, 0x135F},
		{0x109A, 0x109B},
		{0x108F, 0x108F},
		{0x108D, 0x108D},
		{0x1087, 0x108C},
		{0x1069, 0x106D},
		{0x1063, 0x1064},
		{0x1039, 0x103A},
		{0x1037, 0x1037},
		{0x0FC6, 0x0FC6},
		{0x0F86, 0x0F87},
		{0x0F82, 0x0F84},
		{0x0F3E, 0x0F3F},
		{0x0F39, 0x0F39},
		{0x0F37, 0x0F37},
		{0x0F35, 0x0F35},
		{0x0F18, 0x0F19},
		{0x0EC8, 0x0ECC},
		{0x0EBA, 0x0EBA},
		{0x0E4E, 0x0E4E},
		{0x0E47, 0x0E4C},
		{0x0DCA, 0x0DCA},
		{0x0D4D, 0x0D4D},
		{0x0D3B, 0x0D3C},
		{0x0CCD, 0x0CCD},
		{0x0CBC, 0x0CBC},
		{0x0C4D, 0x0C4D},
		{0x0C3C, 0x0C3C},
		{0x0BCD, 0x0BCD},
		{0x0B55, 0x0B55},
		{0x0B4D, 0x0B4D},
		{0x0B3C, 0x0B3C},
		{0x0AFD, 0x0AFF},
		{0x0ACD, 0x0ACD},
		{0x0ABC, 0x0ABC},
		{0x0A4D, 0x0A4D},
		{0x0A3C, 0x0A3C},
		{0x09CD, 0x09CD},
		{0x09BC, 0x09BC},
		{0x0971, 0x0971},
		{0x0951, 0x0954},
		{0x094D, 0x094D},
		{0x093C, 0x093C},
		{0x08E3, 0x08FE},
		{0x08CA, 0x08D2},
		{0x08C9, 0x08C9},
		{0x0898, 0x089F},
		{0x0818, 0x0819},
		{0x07F4, 0x07F5},
		{0x07EB, 0x07F3},
		{0x07A6, 0x07B0},
		{0x0730, 0x074A},
		{0x06EA, 0x06EC},
		{0x06E5, 0x06E6},
		{0x06DF, 0x06E0},
		{0x0657, 0x0658},
		{0x064B, 0x0652},
		{0x05C4, 0x05C4},
		{0x05C1, 0x05C2},
		{0x05BF, 0x05BF},
		{0x05A3, 0x05BD},
		{0x0591, 0x05A1},
		{0x0559, 0x0559},
		{0x0483, 0x0487},
		{0x0384, 0x0385},
		{0x037A, 0x037A},
		{0x0375, 0x0375},
		{0x0374, 0x0374},
		{0x035D, 0x0362},
		{0x0350, 0x0357},
		{0x0300, 0x034E},
		{0x02EF, 0x02FF},
		{0x02EE, 0x02EE},
		{0x02ED, 0x02ED},
		{0x02EC, 0x02EC},
		{0x02E5, 0x02EB},
		{0x02E0, 0x02E4},
		{0x02D2, 0x02DF},
		{0x02C6, 0x02D1},
		{0x02C2, 0x02C5},
		{0x02B0, 0x02C1},
		{0x00B8, 0x00B8},
		{0x00B7, 0x00B7},
		{0x00B4, 0x00B4},
		{0x00AF, 0x00AF},
		{0x00A8, 0x00A8},
		{0x0060, 0x0060},
		{0x005E, 0x005E},
	}},
	PropExtender: {"Extender", [][2]rune{
		{0x1E944, 0x1E946},
		{0x1E13C, 0x1E13D},
		{0x16FE3, 0x16FE3},
		{0x16FE0, 0x16FE1},
		{0x16B42, 0x16B43},
		{0x11A98, 0x11A98},
		{0x115C6, 0x115C8},
		{0x1135D, 0x1135D},
		{0x10781, 0x10782},
		{0xFF70, 0xFF70},
		{0xAAF3, 0xAAF4},
		{0xAADD, 0xAADD},
		{0xAA70, 0xAA70},
		{0xA9E6, 0xA9E6},
		{0xA9CF, 0xA9CF},
		{0xA60C, 0xA60C},
		{0xA015, 0xA015},
		{0x30FC, 0x30FE},
		{0x309D, 0x309E},
		{0x3031, 0x3035},
		{0x3005, 0x3005},
		{0x1C7B, 0x1C7B},
		{0x1C36, 0x1C36},
		{0x1AA7, 0x1AA7},
		{0x1843, 0x1843},
		{0x180A, 0x180A},
		{0x0EC6, 0x0EC6},
		{0x0E46, 0x0E46},
		{0x0B55, 0x0B55},
		{0x07FA, 0x07FA},
		{0x0640, 0x0640},
		{0x02D0, 0x02D1},
		{0x00B7, 0x00B7},
	}},
	PropHexDigit: {"Hex Digit", [][2]rune{
		{0xFF41, 0xFF46},
		{0xFF21, 0xFF26},
		{0xFF10, 0xFF19},
		{0x0061, 0x0066},
		{0x0041, 0x0046},
		{0x0030, 0x0039},
	}},
	PropHyphen: {"Hyphen", [][2]rune{
		{0xFF65, 0xFF65},
		{0xFF0D, 0xFF0D},
		{0xFE63, 0xFE63},
		{0x30FB, 0x30FB},
		{0x2E17, 0x2E17},
		{0x2010, 0x2011},
		{0x1806, 0x1806},
		{0x058A, 0x058A},
		{0x00AD, 0x00AD},
		{0x002D, 0x002D},
	}},
	PropIDSBinaryOperator: {"IDS Binary Operator", [][2]rune{
		{0x2FF4, 0x2FFB},
		{0x2FF0, 0x2FF1},
	}},
	PropIDSTrinaryOperator: {"IDS Trinary Operator", [][2]rune{
		{0x2FF2, 0x2FF3},
	}},
	PropIdeographic: {"Ideographic", [][2]rune{
		{0x31350, 0x323AF},
		{0x30000, 0x3134A},
		{0x2F800, 0x2FA1D},
		{0x2CEB0, 0x2EBE0},
		{0x2B820, 0x2CEA1},
		{0x2B740, 0x2B81D},
		{0x2A700, 0x2B739},
		{0x20000, 0x2A6DF},
		{0x1B170, 0x1B2FB},
		{0x18D00, 0x18D08},
		{0x18800, 0x18CD5},
		{0x17000, 0x187F7},
		{0x16FE4, 0x16FE4},
		{0xFA70, 0xFAD9},
		{0xF900, 0xFA6D},
		{0x4E00, 0x9FFF},
		{0x3400, 0x4DBF},
		{0x3038, 0x303A},
		{0x3021, 0x3029},
		{0x3007, 0x3007},
		{0x3006, 0x3006},
	}},
	PropJoinControl: {"Join Control", [][2]rune{
		{0x200C, 0x200D},
	}},
	PropLogicalOrderException: {"Logical Order Exception", [][2]rune{
		{0xAABB, 0xAABC},
		{0xAAB9, 0xAAB9},
		{0xAAB5, 0xAAB6},
		{0x19BA, 0x19BA},
		{0x19B5, 0x19B7},
		{0x0EC0, 0x0EC4},
		{0x0E40, 0x0E44},
	}},
	PropNoncharacterCodePoint: {"Noncharacter Code Point", [][2]rune{
		{0x10FFFE, 0x10FFFF},
		{0xFFFFE, 0xFFFFF},
		{0xEFFFE, 0xEFFFF},
		{0xDFFFE, 0xDFFFF},
		{0xCFFFE, 0xCFFFF},
		{0xBFFFE, 0xBFFFF},
		{0xAFFFE, 0xAFFFF},
		{0x9FFFE, 0x9FFFF},
		{0x8FFFE, 0x8FFFF},
		{0x7FFFE, 0x7FFFF},
		{0x6FFFE, 0x6FFFF},
		{0x5FFFE, 0x5FFFF},
		{0x4FFFE, 0x4FFFF},
		{0x3FFFE, 0x3FFFF},
		{0x2FFFE, 0x2FFFF},
		{0x1FFFE, 0x1FFFF},
		{0xFFFE, 0xFFFF},
		{0xFDD0, 0xFDEF},
	}},
	PropOtherAlphabetic: {"Other Alphabetic", [][2]rune{
		{0x1F170, 0x1F189},
		{0x1F150, 0x1F169},
		{0x1F130, 0x1F149},
		{0x1E947, 0x1E947},
		{0x1E08F, 0x1E08F},
		{0x1E026, 0x1E02A},
		{0x1E023, 0x1E024},
		{0x1E01B, 0x1E021},
		{0x1E008, 0x1E018},
		{0x1E000, 0x1E006},
		{0x1BC9E, 0x1BC9E},
		{0x16FF0, 0x16FF1},
		{0x16F8F, 0x16F92},
		{0x16F51, 0x16F87},
		{0x16F4F, 0x16F4F},
		{0x11F40, 0x11F40},
		{0x11F3E, 0x11F3F},
		{0x11F36, 0x11F3A},
		{0x11F34, 0x11F35},
		{0x11F03, 0x11F03},
		{0x11F00, 0x11F01},
		{0x11EF5, 0x11EF6},
		{0x11EF3, 0x11EF4},
		{0x11D96, 0x11D96},
		{0x11D95, 0x11D95},
		{0x11D93, 0x11D94},
		{0x11D90, 0x11D91},
		{0x11D8A, 0x11D8E},
		{0x11D47, 0x11D47},
		{0x11D43, 0x11D43},
		{0x11D3F, 0x11D41},
		{0x11D3C, 0x11D3D},
		{0x11D3A, 0x11D3A},
		{0x11D31, 0x11D36},
		{0x11CB5, 0x11CB6},
		{0x11CB4, 0x11CB4},
		{0x11CB2, 0x11CB3},
		{0x11CB1, 0x11CB1},
		{0x11CAA, 0x11CB0},
		{0x11CA9, 0x11CA9},
		{0x11C92, 0x11CA7},
		{0x11C3E, 0x11C3E},
		{0x11C38, 0x11C3D},
		{0x11C30, 0x11C36},
		{0x11C2F, 0x11C2F},
		{0x11A97, 0x11A97},
		{0x11A8A, 0x11A96},
		{0x11A59, 0x11A5B},
		{0x11A57, 0x11A58},
		{0x11A51, 0x11A56},
		{0x11A3B, 0x11A3E},
		{0x11A39, 0x11A39},
		{0x11A35, 0x11A38},
		{0x11A01, 0x11A0A},
		{0x119E4, 0x119E4},
		{0x119DC, 0x119DF},
		{0x119DA, 0x119DB},
		{0x119D4, 0x119D7},
		{0x119D1, 0x119D3},
		{0x11942, 0x11942},
		{0x11940, 0x11940},
		{0x1193B, 0x1193C},
		{0x11937, 0x11938},
		{0x11930, 0x11935},
		{0x11838, 0x11838},
		{0x1182F, 0x11837},
		{0x1182C, 0x1182E},
		{0x11727, 0x1172A},
		{0x11726, 0x11726},
		{0x11722, 0x11725},
		{0x11720, 0x11721},
		{0x1171D, 0x1171F},
		{0x116B0, 0x116B5},
		{0x116AE, 0x116AF},
		{0x116AD, 0x116AD},
		{0x116AC, 0x116AC},
		{0x116AB, 0x116AB},
		{0x11640, 0x11640},
		{0x1163E, 0x1163E},
		{0x1163D, 0x1163D},
		{0x1163B, 0x1163C},
		{0x11633, 0x1163A},
		{0x11630, 0x11632},
		{0x115DC, 0x115DD},
		{0x115BE, 0x115BE},
		{0x115BC, 0x115BD},
		{0x115B8, 0x115BB},
		{0x115B2, 0x115B5},
		{0x115AF, 0x115B1},
		{0x114C1, 0x114C1},
		{0x114BF, 0x114C0},
		{0x114BB, 0x114BE},
		{0x114BA, 0x114BA},
		{0x114B9, 0x114B9},
		{0x114B3, 0x114B8},
		{0x114B0, 0x114B2},
		{0x11445, 0x11445},
		{0x11443, 0x11444},
		{0x11440, 0x11441},
		{0x11438, 0x1143F},
		{0x11435, 0x11437},
		{0x11362, 0x11363},
		{0x11357, 0x11357},
		{0x1134B, 0x1134C},
		{0x11347, 0x11348},
		{0x11341, 0x11344},
		{0x11340, 0x11340},
		{0x1133E, 0x1133F},
		{0x11302, 0x11303},
		{0x11300, 0x11301},
		{0x112E3, 0x112E8},
		{0x112E0, 0x112E2},
		{0x112DF, 0x112DF},
		{0x11241, 0x11241},
		{0x1123E, 0x1123E},
		{0x11237, 0x11237},
		{0x11234, 0x11234},
		{0x11232, 0x11233},
		{0x1122F, 0x11231},
		{0x1122C, 0x1122E},
		{0x111CF, 0x111CF},
		{0x111CE, 0x111CE},
		{0x111BF, 0x111BF},
		{0x111B6, 0x111BE},
		{0x111B3, 0x111B5},
		{0x11182, 0x11182},
		{0x11180, 0x11181},
		{0x11145, 0x11146},
		{0x1112D, 0x11132},
		{0x1112C, 0x1112C},
		{0x11127, 0x1112B},
		{0x11100, 0x11102},
		{0x110C2, 0x110C2},
		{0x110B7, 0x110B8},
		{0x110B3, 0x110B6},
		{0x110B0, 0x110B2},
		{0x11082, 0x11082},
		{0x11080, 0x11081},
		{0x11073, 0x11074},
		{0x11038, 0x11045},
		{0x11002, 0x11002},
		{0x11001, 0x11001},
		{0x11000, 0x11000},
		{0x10EAB, 0x10EAC},
		{0x10D24, 0x10D27},
		{0x10A0C, 0x10A0F},
		{0x10A05, 0x10A06},
		{0x10A01, 0x10A03},
		{0x10376, 0x1037A},
		{0xFB1E, 0xFB1E},
		{0xABE9, 0xABEA},
		{0xABE8, 0xABE8},
		{0xABE6, 0xABE7},
		{0xABE5, 0xABE5},
		{0xABE3, 0xABE4},
		{0xAAF5, 0xAAF5},
		{0xAAEE, 0xAAEF},
		{0xAAEC, 0xAAED},
		{0xAAEB, 0xAAEB},
		{0xAABE, 0xAABE},
		{0xAAB7, 0xAAB8},
		{0xAAB2, 0xAAB4},
		{0xAAB0, 0xAAB0},
		{0xAA7D, 0xAA7D},
		{0xAA7C, 0xAA7C},
		{0xAA7B, 0xAA7B},
		{0xAA4D, 0xAA4D},
		{0xAA4C, 0xAA4C},
		{0xAA43, 0xAA43},
		{0xAA35, 0xAA36},
		{0xAA33, 0xAA34},
		{0xAA31, 0xAA32},
		{0xAA2F, 0xAA30},
		{0xAA29, 0xAA2E},
		{0xA9E5, 0xA9E5},
		{0xA9BE, 0xA9BF},
		{0xA9BC, 0xA9BD},
		{0xA9BA, 0xA9BB},
		{0xA9B6, 0xA9B9},
		{0xA9B4, 0xA9B5},
		{0xA983, 0xA983},
		{0xA980, 0xA982},
		{0xA952, 0xA952},
		{0xA947, 0xA951},
		{0xA926, 0xA92A},
		{0xA8FF, 0xA8FF},
		{0xA8C5, 0xA8C5},
		{0xA8B4, 0xA8C3},
		{0xA880, 0xA881},
		{0xA827, 0xA827},
		{0xA825, 0xA826},
		{0xA823, 0xA824},
		{0xA80B, 0xA80B},
		{0xA802, 0xA802},
		{0xA69E, 0xA69F},
		{0xA674, 0xA67B},
		{0x2DE0, 0x2DFF},
		{0x24B6, 0x24E9},
		{0x1DE7, 0x1DF4},
		{0x1C36, 0x1C36},
		{0x1C34, 0x1C35},
		{0x1C2C, 0x1C33},
		{0x1C24, 0x1C2B},
		{0x1BEF, 0x1BF1},
		{0x1BEE, 0x1BEE},
		{0x1BED, 0x1BED},
		{0x1BEA, 0x1BEC},
		{0x1BE8, 0x1BE9},
		{0x1BE7, 0x1BE7},
		{0x1BAC, 0x1BAD},
		{0x1BA8, 0x1BA9},
		{0x1BA6, 0x1BA7},
		{0x1BA2, 0x1BA5},
		{0x1BA1, 0x1BA1},
		{0x1B82, 0x1B82},
		{0x1B80, 0x1B81},
		{0x1B43, 0x1B43},
		{0x1B42, 0x1B42},
		{0x1B3D, 0x1B41},
		{0x1B3C, 0x1B3C},
		{0x1B3B, 0x1B3B},
		{0x1B36, 0x1B3A},
		{0x1B35, 0x1B35},
		{0x1B04, 0x1B04},
		{0x1B00, 0x1B03},
		{0x1ACC, 0x1ACE},
		{0x1ABF, 0x1AC0},
		{0x1A73, 0x1A74},
		{0x1A6D, 0x1A72},
		{0x1A65, 0x1A6C},
		{0x1A63, 0x1A64},
		{0x1A62, 0x1A62},
		{0x1A61, 0x1A61},
		{0x1A58, 0x1A5E},
		{0x1A57, 0x1A57},
		{0x1A56, 0x1A56},
		{0x1A55, 0x1A55},
		{0x1A1B, 0x1A1B},
		{0x1A19, 0x1A1A},
		{0x1A17, 0x1A18},
		{0x1933, 0x1938},
		{0x1932, 0x1932},
		{0x1930, 0x1931},
		{0x1929, 0x192B},
		{0x1927, 0x1928},
		{0x1923, 0x1926},
		{0x1920, 0x1922},
		{0x18A9, 0x18A9},
		{0x1885, 0x1886},
		{0x17C7, 0x17C8},
		{0x17C6, 0x17C6},
		{0x17BE, 0x17C5},
		{0x17B7, 0x17BD},
		{0x17B6, 0x17B6},
		{0x1772, 0x1773},
		{0x1752, 0x1753},
		{0x1732, 0x1733},
		{0x1712, 0x1713},
		{0x109D, 0x109D},
		{0x109A, 0x109C},
		{0x108F, 0x108F},
		{0x108D, 0x108D},
		{0x1087, 0x108C},
		{0x1085, 0x1086},
		{0x1083, 0x1084},
		{0x1082, 0x1082},
		{0x1071, 0x1074},
		{0x1067, 0x106D},
		{0x1062, 0x1064},
		{0x105E, 0x1060},
		{0x1058, 0x1059},
		{0x1056, 0x1057},
		{0x103D, 0x103E},
		{0x103B, 0x103C},
		{0x1038, 0x1038},
		{0x1032, 0x1036},
		{0x1031, 0x1031},
		{0x102D, 0x1030},
		{0x102B, 0x102C},
		{0x0F99, 0x0FBC},
		{0x0F8D, 0x0F97},
		{0x0F80, 0x0F83},
		{0x0F7F, 0x0F7F},
		{0x0F71, 0x0F7E},
		{0x0ECD, 0x0ECD},
		{0x0EBB, 0x0EBC},
		{0x0EB4, 0x0EB9},
		{0x0EB1, 0x0EB1},
		{0x0E4D, 0x0E4D},
		{0x0E34, 0x0E3A},
		{0x0E31, 0x0E31},
		{0x0DF2, 0x0DF3},
		{0x0DD8, 0x0DDF},
		{0x0DD6, 0x0DD6},
		{0x0DD2, 0x0DD4},
		{0x0DCF, 0x0DD1},
		{0x0D82, 0x0D83},
		{0x0D81, 0x0D81},
		{0x0D62, 0x0D63},
		{0x0D57, 0x0D57},
		{0x0D4A, 0x0D4C},
		{0x0D46, 0x0D48},
		{0x0D41, 0x0D44},
		{0x0D3E, 0x0D40},
		{0x0D02, 0x0D03},
		{0x0D00, 0x0D01},
		{0x0CF3, 0x0CF3},
		{0x0CE2, 0x0CE3},
		{0x0CD5, 0x0CD6},
		{0x0CCC, 0x0CCC},
		{0x0CCA, 0x0CCB},
		{0x0CC7, 0x0CC8},
		{0x0CC6, 0x0CC6},
		{0x0CC0, 0x0CC4},
		{0x0CBF, 0x0CBF},
		{0x0CBE, 0x0CBE},
		{0x0C82, 0x0C83},
		{0x0C81, 0x0C81},
		{0x0C62, 0x0C63},
		{0x0C55, 0x0C56},
		{0x0C4A, 0x0C4C},
		{0x0C46, 0x0C48},
		{0x0C41, 0x0C44},
		{0x0C3E, 0x0C40},
		{0x0C04, 0x0C04},
		{0x0C01, 0x0C03},
		{0x0C00, 0x0C00},
		{0x0BD7, 0x0BD7},
		{0x0BCA, 0x0BCC},
		{0x0BC6, 0x0BC8},
		{0x0BC1, 0x0BC2},
		{0x0BC0, 0x0BC0},
		{0x0BBE, 0x0BBF},
		{0x0B82, 0x0B82},
		{0x0B62, 0x0B63},
		{0x0B57, 0x0B57},
		{0x0B56, 0x0B56},
		{0x0B4B, 0x0B4C},
		{0x0B47, 0x0B48},
		{0x0B41, 0x0B44},
		{0x0B40, 0x0B40},
		{0x0B3F, 0x0B3F},
		{0x0B3E, 0x0B3E},
		{0x0B02, 0x0B03},
		{0x0B01, 0x0B01},
		{0x0AFA, 0x0AFC},
		{0x0AE2, 0x0AE3},
		{0x0ACB, 0x0ACC},
		{0x0AC9, 0x0AC9},
		{0x0AC7, 0x0AC8},
		{0x0AC1, 0x0AC5},
		{0x0ABE, 0x0AC0},
		{0x0A83, 0x0A83},
		{0x0A81, 0x0A82},
		{0x0A75, 0x0A75},
		{0x0A70, 0x0A71},
		{0x0A51, 0x0A51},
		{0x0A4B, 0x0A4C},
		{0x0A47, 0x0A48},
		{0x0A41, 0x0A42},
		{0x0A3E, 0x0A40},
		{0x0A03, 0x0A03},
		{0x0A01, 0x0A02},
		{0x09E2, 0x09E3},
		{0x09D7, 0x09D7},
		{0x09CB, 0x09CC},
		{0x09C7, 0x09C8},
		{0x09C1, 0x09C4},
		{0x09BE, 0x09C0},
		{0x0982, 0x0983},
		{0x0981, 0x0981},
		{0x0962, 0x0963},
		{0x0955, 0x0957},
		{0x094E, 0x094F},
		{0x0949, 0x094C},
		{0x0941, 0x0948},
		{0x093E, 0x0940},
		{0x093B, 0x093B},
		{0x093A, 0x093A},
		{0x0903, 0x0903},
		{0x08F0, 0x0902},
		{0x08E3, 0x08E9},
		{0x08D4, 0x08DF},
		{0x0829, 0x082C},
		{0x0825, 0x0827},
		{0x081B, 0x0823},
		{0x0816, 0x0817},
		{0x07A6, 0x07B0},
		{0x0730, 0x073F},
		{0x0711, 0x0711},
		{0x06ED, 0x06ED},
		{0x06E7, 0x06E8},
		{0x06E1, 0x06E4},
		{0x06D6, 0x06DC},
		{0x0670, 0x0670},
		{0x0659, 0x065F},
		{0x064B, 0x0657},
		{0x0610, 0x061A},
		{0x05C7, 0x05C7},
		{0x05C4, 0x05C5},
		{0x05C1, 0x05C2},
		{0x05BF, 0x05BF},
		{0x05B0, 0x05BD},
		{0x0345, 0x0345},
	}},
	PropOtherDefaultIgnorableCodePoint: {"Other Default Ignorable Code Point", [][2]rune{
		{0xE01F0, 0xE0FFF},
		{0xE0080, 0xE00FF},
		{0xE0002, 0xE001F},
		{0xE0000, 0xE0000},
		{0xFFF0, 0xFFF8},
		{0xFFA0, 0xFFA0},
		{0x3164, 0x3164},
		{0x2065, 0x2065},
		{0x17B4, 0x17B5},
		{0x115F, 0x1160},
		{0x034F, 0x034F},
	}},
	PropOtherGraphemeExtend: {"Other Grapheme Extend", [][2]rune{
		{0xE0020, 0xE007F},
		{0x1D16E, 0x1D172},
		{0x1D165, 0x1D165},
		{0x11930, 0x11930},
		{0x115AF, 0x115AF},
		{0x114BD, 0x114BD},
		{0x114B0, 0x114B0},
		{0x11357, 0x11357},
		{0x1133E, 0x1133E},
		{0xFF9E, 0xFF9F},
		{0x302E, 0x302F},
		{0x200C, 0x200C},
		{0x1B35, 0x1B35},
		{0x0DDF, 0x0DDF},
		{0x0DCF, 0x0DCF},
		{0x0D57, 0x0D57},
		{0x0D3E, 0x0D3E},
		{0x0CD5, 0x0CD6},
		{0x0CC2, 0x0CC2},
		{0x0BD7, 0x0BD7},
		{0x0BBE, 0x0BBE},
		{0x0B57, 0x0B57},
		{0x0B3E, 0x0B3E},
		{0x09D7, 0x09D7},
		{0x09BE, 0x09BE},
	}},
	PropOtherIDContinue: {"Other ID Continue", [][2]rune{
		{0x19DA, 0x19DA},
		{0x1369, 0x1371},
		{0x0387, 0x0387},
		{0x00B7, 0x00B7},
	}},
	PropOtherIDStart: {"Other ID Start", [][2]rune{
		{0x309B, 0x309C},
		{0x212E, 0x212E},
		{0x2118, 0x2118},
		{0x1885, 0x1886},
	}},
	PropOtherLowercase: {"Other Lowercase", [][2]rune{
		{0x1E030, 0x1E06D},
		{0x107B2, 0x107BA},
		{0x10787, 0x107B0},
		{0x10783, 0x10785},
		{0x10780, 0x10780},
		{0xAB69, 0xAB69},
		{0xAB5C, 0xAB5F},
		{0xA7F8, 0xA7F9},
		{0xA7F2, 0xA7F4},
		{0xA770, 0xA770},
		{0xA69C, 0xA69D},
		{0x2C7C, 0x2C7D},
		{0x24D0, 0x24E9},
		{0x2170, 0x217F},
		{0x2090, 0x209C},
		{0x207F, 0x207F},
		{0x2071, 0x2071},
		{0x1D9B, 0x1DBF},
		{0x1D78, 0x1D78},
		{0x1D2C, 0x1D6A},
		{0x10FC, 0x10FC},
		{0x037A, 0x037A},
		{0x0345, 0x0345},
		{0x02E0, 0x02E4},
		{0x02C0, 0x02C1},
		{0x02B0, 0x02B8},
		{0x00BA, 0x00BA},
		{0x00AA, 0x00AA},
	}},
	PropOtherMath: {"Other Math", [][2]rune{
		{0x1EEAB, 0x1EEBB},
		{0x1EEA5, 0x1EEA9},
		{0x1EEA1, 0x1EEA3},
		{0x1EE8B, 0x1EE9B},
		{0x1EE80, 0x1EE89},
		{0x1EE7E, 0x1EE7E},
		{0x1EE79, 0x1EE7C},
		{0x1EE74, 0x1EE77},
		{0x1EE6C, 0x1EE72},
		{0x1EE67, 0x1EE6A},
		{0x1EE64, 0x1EE64},
		{0x1EE61, 0x1EE62},
		{0x1EE5F, 0x1EE5F},
		{0x1EE5D, 0x1EE5D},
		{0x1EE5B, 0x1EE5B},
		{0x1EE59, 0x1EE59},
		{0x1EE57, 0x1EE57},
		{0x1EE54, 0x1EE54},
		{0x1EE51, 0x1EE52},
		{0x1EE4D, 0x1EE4F},
		{0x1EE4B, 0x1EE4B},
		{0x1EE49, 0x1EE49},
		{0x1EE47, 0x1EE47},
		{0x1EE42, 0x1EE42},
		{0x1EE3B, 0x1EE3B},
		{0x1EE39, 0x1EE39},
		{0x1EE34, 0x1EE37},
		{0x1EE29, 0x1EE32},
		{0x1EE27, 0x1EE27},
		{0x1EE24, 0x1EE24},
		{0x1EE21, 0x1EE22},
		{0x1EE05, 0x1EE1F},
		{0x1EE00, 0x1EE03},
		{0x1D7CE, 0x1D7FF},
		{0x1D7C4, 0x1D7CB},
		{0x1D7AA, 0x1D7C2},
		{0x1D78A, 0x1D7A8},
		{0x1D770, 0x1D788},
		{0x1D750, 0x1D76E},
		{0x1D736, 0x1D74E},
		{0x1D716, 0x1D734},
		{0x1D6FC, 0x1D714},
		{0x1D6DC, 0x1D6FA},
		{0x1D6C2, 0x1D6DA},
		{0x1D6A8, 0x1D6C0},
		{0x1D552, 0x1D6A5},
		{0x1D54A, 0x1D550},
		{0x1D546, 0x1D546},
		{0x1D540, 0x1D544},
		{0x1D53B, 0x1D53E},
		{0x1D51E, 0x1D539},
		{0x1D516, 0x1D51C},
		{0x1D50D, 0x1D514},
		{0x1D507, 0x1D50A},
		{0x1D4C5, 0x1D505},
		{0x1D4BD, 0x1D4C3},
		{0x1D4BB, 0x1D4BB},
		{0x1D4AE, 0x1D4B9},
		{0x1D4A9, 0x1D4AC},
		{0x1D4A5, 0x1D4A6},
		{0x1D4A2, 0x1D4A2},
		{0x1D49E, 0x1D49F},
		{0x1D456, 0x1D49C},
		{0x1D400, 0x1D454},
		{0xFF3E, 0xFF3E},
		{0xFF3C, 0xFF3C},
		{0xFE68, 0xFE68},
		{0xFE63, 0xFE63},
		{0xFE61, 0xFE61},
		{0x29FD, 0x29FD},
		{0x29FC, 0x29FC},
		{0x29DB, 0x29DB},
		{0x29DA, 0x29DA},
		{0x29D9, 0x29D9},
		{0x29D8, 0x29D8},
		{0x2998, 0x2998},
		{0x2997, 0x2997},
		{0x2996, 0x2996},
		{0x2995, 0x2995},
		{0x2994, 0x2994},
		{0x2993, 0x2993},
		{0x2992, 0x2992},
		{0x2991, 0x2991},
		{0x2990, 0x2990},
		{0x298F, 0x298F},
		{0x298E, 0x298E},
		{0x298D, 0x298D},
		{0x298C, 0x298C},
		{0x298B, 0x298B},
		{0x298A, 0x298A},
		{0x2989, 0x2989},
		{0x2988, 0x2988},
		{0x2987, 0x2987},
		{0x2986, 0x2986},
		{0x2985, 0x2985},
		{0x2984, 0x2984},
		{0x2983, 0x2983},
		{0x27EF, 0x27EF},
		{0x27EE, 0x27EE},
		{0x27ED, 0x27ED},
		{0x27EC, 0x27EC},
		{0x27EB, 0x27EB},
		{0x27EA, 0x27EA},
		{0x27E9, 0x27E9},
		{0x27E8, 0x27E8},
		{0x27E7, 0x27E7},
		{0x27E6, 0x27E6},
		{0x27C6, 0x27C6},
		{0x27C5, 0x27C5},
		{0x266D, 0x266E},
		{0x2660, 0x2663},
		{0x2642, 0x2642},
		{0x2640, 0x2640},
		{0x2605, 0x2606},
		{0x25E7, 0x25EC},
		{0x25E4, 0x25E4},
		{0x25E2, 0x25E2},
		{0x25CF, 0x25D3},
		{0x25CA, 0x25CB},
		{0x25C6, 0x25C7},
		{0x25BC, 0x25C0},
		{0x25AE, 0x25B6},
		{0x25A0, 0x25A1},
		{0x23E2, 0x23E2},
		{0x23D0, 0x23D0},
		{0x23B7, 0x23B7},
		{0x23B4, 0x23B5},
		{0x230B, 0x230B},
		{0x230A, 0x230A},
		{0x2309, 0x2309},
		{0x2308, 0x2308},
		{0x21E4, 0x21E5},
		{0x21DD, 0x21DD},
		{0x21D5, 0x21DB},
		{0x21D3, 0x21D3},
		{0x21D0, 0x21D1},
		{0x21BC, 0x21CD},
		{0x21B6, 0x21B7},
		{0x21B0, 0x21B1},
		{0x21A9, 0x21AD},
		{0x21A7, 0x21A7},
		{0x21A4, 0x21A5},
		{0x21A1, 0x21A2},
		{0x219C, 0x219F},
		{0x2195, 0x2199},
		{0x2145, 0x2149},
		{0x213C, 0x213F},
		{0x2135, 0x2138},
		{0x2133, 0x2134},
		{0x212F, 0x2131},
		{0x212C, 0x212D},
		{0x2129, 0x2129},
		{0x2128, 0x2128},
		{0x2124, 0x2124},
		{0x2119, 0x211D},
		{0x2115, 0x2115},
		{0x210A, 0x2113},
		{0x2107, 0x2107},
		{0x2102, 0x2102},
		{0x20EB, 0x20EF},
		{0x20E5, 0x20E6},
		{0x20E1, 0x20E1},
		{0x20D0, 0x20DC},
		{0x208E, 0x208E},
		{0x208D, 0x208D},
		{0x207E, 0x207E},
		{0x207D, 0x207D},
		{0x2061, 0x2064},
		{0x2040, 0x2040},
		{0x2032, 0x2034},
		{0x2016, 0x2016},
		{0x03F4, 0x03F5},
		{0x03F0, 0x03F1},
		{0x03D5, 0x03D5},
		{0x03D0, 0x03D2},
		{0x005E, 0x005E},
	}},
	PropOtherUppercase: {"Other Uppercase", [][2]rune{
		{0x1F170, 0x1F189},
		{0x1F150, 0x1F169},
		{0x1F130, 0x1F149},
		{0x24B6, 0x24CF},
		{0x2160, 0x216F},
	}},
	PropPatternSyntax: {"Pattern Syntax", [][2]rune{
		{0xFE45, 0xFE46},
		{0xFD3F, 0xFD3F},
		{0xFD3E, 0xFD3E},
		{0x3030, 0x3030},
		{0x3020, 0x3020},
		{0x301E, 0x301F},
		{0x301D, 0x301D},
		{0x301C, 0x301C},
		{0x301B, 0x301B},
		{0x301A, 0x301A},
		{0x3019, 0x3019},
		{0x3018, 0x3018},
		{0x3017, 0x3017},
		{0x3016, 0x3016},
		{0x3015, 0x3015},
		{0x3014, 0x3014},
		{0x3012, 0x3013},
		{0x3011, 0x3011},
		{0x3010, 0x3010},
		{0x300F, 0x300F},
		{0x300E, 0x300E},
		{0x300D, 0x300D},
		{0x300C, 0x300C},
		{0x300B, 0x300B},
		{0x300A, 0x300A},
		{0x3009, 0x3009},
		{0x3008, 0x3008},
		{0x3001, 0x3003},
		{0x2E5E, 0x2E7F},
		{0x2E5D, 0x2E5D},
		{0x2E5C, 0x2E5C},
		{0x2E5B, 0x2E5B},
		{0x2E5A, 0x2E5A},
		{0x2E59, 0x2E59},
		{0x2E58, 0x2E58},
		{0x2E57, 0x2E57},
		{0x2E56, 0x2E56},
		{0x2E55, 0x2E55},
		{0x2E52, 0x2E54},
		{0x2E50, 0x2E51},
		{0x2E43, 0x2E4F},
		{0x2E42, 0x2E42},
		{0x2E41, 0x2E41},
		{0x2E40, 0x2E40},
		{0x2E3C, 0x2E3F},
		{0x2E3A, 0x2E3B},
		{0x2E30, 0x2E39},
		{0x2E2F, 0x2E2F},
		{0x2E2A, 0x2E2E},
		{0x2E29, 0x2E29},
		{0x2E28, 0x2E28},
		{0x2E27, 0x2E27},
		{0x2E26, 0x2E26},
		{0x2E25, 0x2E25},
		{0x2E24, 0x2E24},
		{0x2E23, 0x2E23},
		{0x2E22, 0x2E22},
		{0x2E21, 0x2E21},
		{0x2E20, 0x2E20},
		{0x2E1E, 0x2E1F},
		{0x2E1D, 0x2E1D},
		{0x2E1C, 0x2E1C},
		{0x2E1B, 0x2E1B},
		{0x2E1A, 0x2E1A},
		{0x2E18, 0x2E19},
		{0x2E17, 0x2E17},
		{0x2E0E, 0x2E16},
		{0x2E0D, 0x2E0D},
		{0x2E0C, 0x2E0C},
		{0x2E0B, 0x2E0B},
		{0x2E0A, 0x2E0A},
		{0x2E09, 0x2E09},
		{0x2E06, 0x2E08},
		{0x2E05, 0x2E05},
		{0x2E04, 0x2E04},
		{0x2E03, 0x2E03},
		{0x2E02, 0x2E02},
		{0x2E00, 0x2E01},
		{0x2B97, 0x2BFF},
		{0x2B96, 0x2B96},
		{0x2B76, 0x2B95},
		{0x2B74, 0x2B75},
		{0x2B4D, 0x2B73},
		{0x2B47, 0x2B4C},
		{0x2B45, 0x2B46},
		{0x2B30, 0x2B44},
		{0x2B00, 0x2B2F},
		{0x29FE, 0x2AFF},
		{0x29FD, 0x29FD},
		{0x29FC, 0x29FC},
		{0x29DC, 0x29FB},
		{0x29DB, 0x29DB},
		{0x29DA, 0x29DA},
		{0x29D9, 0x29D9},
		{0x29D8, 0x29D8},
		{0x2999, 0x29D7},
		{0x2998, 0x2998},
		{0x2997, 0x2997},
		{0x2996, 0x2996},
		{0x2995, 0x2995},
		{0x2994, 0x2994},
		{0x2993, 0x2993},
		{0x2992, 0x2992},
		{0x2991, 0x2991},
		{0x2990, 0x2990},
		{0x298F, 0x298F},
		{0x298E, 0x298E},
		{0x298D, 0x298D},
		{0x298C, 0x298C},
		{0x298B, 0x298B},
		{0x298A, 0x298A},
		{0x2989, 0x2989},
		{0x2988, 0x2988},
		{0x2987, 0x2987},
		{0x2986, 0x2986},
		{0x2985, 0x2985},
		{0x2984, 0x2984},
		{0x2983, 0x2983},
		{0x2900, 0x2982},
		{0x2800, 0x28FF},
		{0x27F0, 0x27FF},
		{0x27EF, 0x27EF},
		{0x27EE, 0x27EE},
		{0x27ED, 0x27ED},
		{0x27EC, 0x27EC},
		{0x27EB, 0x27EB},
		{0x27EA, 0x27EA},
		{0x27E9, 0x27E9},
		{0x27E8, 0x27E8},
		{0x27E7, 0x27E7},
		{0x27E6, 0x27E6},
		{0x27C7, 0x27E5},
		{0x27C6, 0x27C6},
		{0x27C5, 0x27C5},
		{0x27C0, 0x27C4},
		{0x2794, 0x27BF},
		{0x2775, 0x2775},
		{0x2774, 0x2774},
		{0x2773, 0x2773},
		{0x2772, 0x2772},
		{0x2771, 0x2771},
		{0x2770, 0x2770},
		{0x276F, 0x276F},
		{0x276E, 0x276E},
		{0x276D, 0x276D},
		{0x276C, 0x276C},
		{0x276B, 0x276B},
		{0x276A, 0x276A},
		{0x2769, 0x2769},
		{0x2768, 0x2768},
		{0x2670, 0x2767},
		{0x266F, 0x266F},
		{0x2600, 0x266E},
		{0x25F8, 0x25FF},
		{0x25C2, 0x25F7},
		{0x25C1, 0x25C1},
		{0x25B8, 0x25C0},
		{0x25B7, 0x25B7},
		{0x2500, 0x25B6},
		{0x244B, 0x245F},
		{0x2440, 0x244A},
		{0x2427, 0x243F},
		{0x23E2, 0x2426},
		{0x23DC, 0x23E1},
		{0x23B4, 0x23DB},
		{0x239B, 0x23B3},
		{0x237D, 0x239A},
		{0x237C, 0x237C},
		{0x232B, 0x237B},
		{0x232A, 0x232A},
		{0x2329, 0x2329},
		{0x2322, 0x2328},
		{0x2320, 0x2321},
		{0x230C, 0x231F},
		{0x230B, 0x230B},
		{0x230A, 0x230A},
		{0x2309, 0x2309},
		{0x2308, 0x2308},
		{0x2300, 0x2307},
		{0x21F4, 0x22FF},
		{0x21D5, 0x21F3},
		{0x21D4, 0x21D4},
		{0x21D3, 0x21D3},
		{0x21D2, 0x21D2},
		{0x21D0, 0x21D1},
		{0x21CE, 0x21CF},
		{0x21AF, 0x21CD},
		{0x21AE, 0x21AE},
		{0x21A7, 0x21AD},
		{0x21A6, 0x21A6},
		{0x21A4, 0x21A5},
		{0x21A3, 0x21A3},
		{0x21A1, 0x21A2},
		{0x21A0, 0x21A0},
		{0x219C, 0x219F},
		{0x219A, 0x219B},
		{0x2195, 0x2199},
		{0x2190, 0x2194},
		{0x2055, 0x205E},
		{0x2053, 0x2053},
		{0x2052, 0x2052},
		{0x2047, 0x2051},
		{0x2046, 0x2046},
		{0x2045, 0x2045},
		{0x2044, 0x2044},
		{0x2041, 0x2043},
		{0x203B, 0x203E},
		{0x203A, 0x203A},
		{0x2039, 0x2039},
		{0x2030, 0x2038},
		{0x2020, 0x2027},
		{0x201F, 0x201F},
		{0x201E, 0x201E},
		{0x201D, 0x201D},
		{0x201B, 0x201C},
		{0x201A, 0x201A},
		{0x2019, 0x2019},
		{0x2018, 0x2018},
		{0x2016, 0x2017},
		{0x2010, 0x2015},
		{0x00F7, 0x00F7},
		{0x00D7, 0x00D7},
		{0x00BF, 0x00BF},
		{0x00BB, 0x00BB},
		{0x00B6, 0x00B6},
		{0x00B1, 0x00B1},
		{0x00B0, 0x00B0},
		{0x00AE, 0x00AE},
		{0x00AC, 0x00AC},
		{0x00AB, 0x00AB},
		{0x00A9, 0x00A9},
		{0x00A7, 0x00A7},
		{0x00A6, 0x00A6},
		{0x00A2, 0x00A5},
		{0x00A1, 0x00A1},
		{0x007E, 0x007E},
		{0x007D, 0x007D},
		{0x007C, 0x007C},
		{0x007B, 0x007B},
		{0x0060, 0x0060},
		{0x005E, 0x005E},
		{0x005D, 0x005D},
		{0x005C, 0x005C},
		{0x005B, 0x005B},
		{0x003F, 0x0040},
		{0x003C, 0x003E},
		{0x003A, 0x003B},
		{0x002E, 0x002F},
		{0x002D, 0x002D},
		{0x002C, 0x002C},
		{0x002B, 0x002B},
		{0x002A, 0x002A},
		{0x0029, 0x0029},
		{0x0028, 0x0028},
		{0x0025, 0x0027},
		{0x0024, 0x0024},
		{0x0021, 0x0023},
	}},
	PropPatternWhiteSpace: {"Pattern White Space", [][2]rune{
		{0x2029, 0x2029},
		{0x2028, 0x2028},
		{0x200E, 0x200F},
		{0x0085, 0x0085},
		{0x0020, 0x0020},
		{0x0009, 0x000D},
	}},
	PropPrependedConcatenationMark: {"Prepended Concatenation Mark", [][2]rune{
		{0x110CD, 0x110CD},
		{0x110BD, 0x110BD},
		{0x08E2, 0x08E2},
		{0x0890, 0x0891},
		{0x070F, 0x070F},
		{0x06DD, 0x06DD},
		{0x0600, 0x0605},
	}},
	PropQuotationMark: {"Quotation Mark", [][2]rune{
		{0xFF63, 0xFF63},
		{0xFF62, 0xFF62},
		{0xFF07, 0xFF07},
		{0xFF02, 0xFF02},
		{0xFE44, 0xFE44},
		{0xFE43, 0xFE43},
		{0xFE42, 0xFE42},
		{0xFE41, 0xFE41},
		{0x301E, 0x301F},
		{0x301D, 0x301D},
		{0x300F, 0x300F},
		{0x300E, 0x300E},
		{0x300D, 0x300D},
		{0x300C, 0x300C},
		{0x2E42, 0x2E42},
		{0x203A, 0x203A},
		{0x2039, 0x2039},
		{0x201F, 0x201F},
		{0x201E, 0x201E},
		{0x201D, 0x201D},
		{0x201B, 0x201C},
		{0x201A, 0x201A},
		{0x2019, 0x2019},
		{0x2018, 0x2018},
		{0x00BB, 0x00BB},
		{0x00AB, 0x00AB},
		{0x0027, 0x0027},
		{0x0022, 0x0022},
	}},
	PropRadical: {"Radical", [][2]rune{
		{0x2F00, 0x2FD5},
		{0x2E9B, 0x2EF3},
		{0x2E80, 0x2E99},
	}},
	PropRegionalIndicator: {"Regional Indicator", [][2]rune{
		{0x1F1E6, 0x1F1FF},
	}},
	PropSentenceTerminal: {"Sentence Terminal", [][2]rune{
		{0x1DA88, 0x1DA88},
		{0x1BC9F, 0x1BC9F},
		{0x16E98, 0x16E98},
		{0x16B44, 0x16B44},
		{0x16B37, 0x16B38},
		{0x16AF5, 0x16AF5},
		{0x16A6E, 0x16A6F},
		{0x11F43, 0x11F44},
		{0x11EF7, 0x11EF8},
		{0x11C41, 0x11C42},
		{0x11A9B, 0x11A9C},
		{0x11A42, 0x11A43},
		{0x11946, 0x11946},
		{0x11944, 0x11944},
		{0x1173C, 0x1173E},
		{0x11641, 0x11642},
		{0x115C9, 0x115D7},
		{0x115C2, 0x115C3},
		{0x1144B, 0x1144C},
		{0x112A9, 0x112A9},
		{0x1123B, 0x1123C},
		{0x11238, 0x11239},
		{0x111DE, 0x111DF},
		{0x111CD, 0x111CD},
		{0x111C5, 0x111C6},
		{0x11141, 0x11143},
		{0x110BE, 0x110C1},
		{0x11047, 0x11048},
		{0x10F86, 0x10F89},
		{0x10F55, 0x10F59},
		{0x10A56, 0x10A57},
		{0xFF61, 0xFF61},
		{0xFF1F, 0xFF1F},
		{0xFF0E, 0xFF0E},
		{0xFF01, 0xFF01},
		{0xFE56, 0xFE57},
		{0xFE52, 0xFE52},
		{0xABEB, 0xABEB},
		{0xAAF0, 0xAAF1},
		{0xAA5D, 0xAA5F},
		{0xA9C8, 0xA9C9},
		{0xA92F, 0xA92F},
		{0xA8CE, 0xA8CF},
		{0xA876, 0xA877},
		{0xA6F7, 0xA6F7},
		{0xA6F3, 0xA6F3},
		{0xA60E, 0xA60F},
		{0xA4FF, 0xA4FF},
		{0x3002, 0x3002},
		{0x2E53, 0x2E54},
		{0x2E3C, 0x2E3C},
		{0x2E2E, 0x2E2E},
		{0x2047, 0x2049},
		{0x203C, 0x203D},
		{0x1C7E, 0x1C7F},
		{0x1C3B, 0x1C3C},
		{0x1B7D, 0x1B7E},
		{0x1B5E, 0x1B5F},
		{0x1B5A, 0x1B5B},
		{0x1AA8, 0x1AAB},
		{0x1944, 0x1945},
		{0x1809, 0x1809},
		{0x1803, 0x1803},
		{0x1735, 0x1736},
		{0x166E, 0x166E},
		{0x1367, 0x1368},
		{0x1362, 0x1362},
		{0x104A, 0x104B},
		{0x0964, 0x0965},
		{0x083D, 0x083E},
		{0x0839, 0x0839},
		{0x0837, 0x0837},
		{0x07F9, 0x07F9},
		{0x0700, 0x0702},
		{0x06D4, 0x06D4},
		{0x061D, 0x061F},
		{0x0589, 0x0589},
		{0x003F, 0x003F},
		{0x002E, 0x002E},
		{0x0021, 0x0021},
	}},
	PropSoftDotted: {"Soft Dotted", [][2]rune{
		{0x1E068, 0x1E068},
		{0x1E04C, 0x1E04D},
		{0x1DF1A, 0x1DF1A},
		{0x1D692, 0x1D693},
		{0x1D65E, 0x1D65F},
		{0x1D62A, 0x1D62B},
		{0x1D5F6, 0x1D5F7},
		{0x1D5C2, 0x1D5C3},
		{0x1D58E, 0x1D58F},
		{0x1D55A, 0x1D55B},
		{0x1D526, 0x1D527},
		{0x1D4F2, 0x1D4F3},
		{0x1D4BE, 0x1D4BF},
		{0x1D48A, 0x1D48B},
		{0x1D456, 0x1D457},
		{0x1D422, 0x1D423},
		{0x2C7C, 0x2C7C},
		{0x2148, 0x2149},
		{0x2071, 0x2071},
		{0x1ECB, 0x1ECB},
		{0x1E2D, 0x1E2D},
		{0x1DA8, 0x1DA8},
		{0x1DA4, 0x1DA4},
		{0x1D96, 0x1D96},
		{0x1D62, 0x1D62},
		{0x0458, 0x0458},
		{0x0456, 0x0456},
		{0x03F3, 0x03F3},
		{0x02B2, 0x02B2},
		{0x029D, 0x029D},
		{0x0268, 0x0268},
		{0x0249, 0x0249},
		{0x012F, 0x012F},
		{0x0069, 0x006A},
	}},
	PropTerminalPunctuation: {"Terminal Punctuation", [][2]rune{
		{0x1DA87, 0x1DA8A},
		{0x1BC9F, 0x1BC9F},
		{0x16E97, 0x16E98},
		{0x16B44, 0x16B44},
		{0x16B37, 0x16B39},
		{0x16AF5, 0x16AF5},
		{0x16A6E, 0x16A6F},
		{0x12470, 0x12474},
		{0x11F43, 0x11F44},
		{0x11EF7, 0x11EF8},
		{0x11C71, 0x11C71},
		{0x11C41, 0x11C43},
		{0x11AA1, 0x11AA2},
		{0x11A9B, 0x11A9C},
		{0x11A42, 0x11A43},
		{0x11946, 0x11946},
		{0x11944, 0x11944},
		{0x1173C, 0x1173E},
		{0x11641, 0x11642},
		{0x115C9, 0x115D7},
		{0x115C2, 0x115C5},
		{0x1145A, 0x1145B},
		{0x1144B, 0x1144D},
		{0x112A9, 0x112A9},
		{0x11238, 0x1123C},
		{0x111DE, 0x111DF},
		{0x111CD, 0x111CD},
		{0x111C5, 0x111C6},
		{0x11141, 0x11143},
		{0x110BE, 0x110C1},
		{0x11047, 0x1104D},
		{0x10F86, 0x10F89},
		{0x10F55, 0x10F59},
		{0x10B99, 0x10B9C},
		{0x10B3A, 0x10B3F},
		{0x10AF0, 0x10AF5},
		{0x10A56, 0x10A57},
		{0x1091F, 0x1091F},
		{0x10857, 0x10857},
		{0x103D0, 0x103D0},
		{0x1039F, 0x1039F},
		{0xFF64, 0xFF64},
		{0xFF61, 0xFF61},
		{0xFF1F, 0xFF1F},
		{0xFF1A, 0xFF1B},
		{0xFF0E, 0xFF0E},
		{0xFF0C, 0xFF0C},
		{0xFF01, 0xFF01},
		{0xFE54, 0xFE57},
		{0xFE50, 0xFE52},
		{0xABEB, 0xABEB},
		{0xAAF0, 0xAAF1},
		{0xAADF, 0xAADF},
		{0xAA5D, 0xAA5F},
		{0xA9C7, 0xA9C9},
		{0xA92F, 0xA92F},
		{0xA8CE, 0xA8CF},
		{0xA876, 0xA877},
		{0xA6F3, 0xA6F7},
		{0xA60D, 0xA60F},
		{0xA4FE, 0xA4FF},
		{0x3001, 0x3002},
		{0x2E53, 0x2E54},
		{0x2E4E, 0x2E4F},
		{0x2E4C, 0x2E4C},
		{0x2E41, 0x2E41},
		{0x2E3C, 0x2E3C},
		{0x2E2E, 0x2E2E},
		{0x2047, 0x2049},
		{0x203C, 0x203D},
		{0x1C7E, 0x1C7F},
		{0x1C3B, 0x1C3F},
		{0x1B7D, 0x1B7E},
		{0x1B5D, 0x1B5F},
		{0x1B5A, 0x1B5B},
		{0x1AA8, 0x1AAB},
		{0x1944, 0x1945},
		{0x1808, 0x1809},
		{0x1802, 0x1805},
		{0x17DA, 0x17DA},
		{0x17D4, 0x17D6},
		{0x1735, 0x1736},
		{0x16EB, 0x16ED},
		{0x166E, 0x166E},
		{0x1361, 0x1368},
		{0x104A, 0x104B},
		{0x0F0D, 0x0F12},
		{0x0F08, 0x0F08},
		{0x0E5A, 0x0E5B},
		{0x0964, 0x0965},
		{0x085E, 0x085E},
		{0x0830, 0x083E},
		{0x07F8, 0x07F9},
		{0x070C, 0x070C},
		{0x0700, 0x070A},
		{0x06D4, 0x06D4},
		{0x061D, 0x061F},
		{0x061B, 0x061B},
		{0x060C, 0x060C},
		{0x05C3, 0x05C3},
		{0x0589, 0x0589},
		{0x0387, 0x0387},
		{0x037E, 0x037E},
		{0x003F, 0x003F},
		{0x003A, 0x003B},
		{0x002E, 0x002E},
		{0x002C, 0x002C},
		{0x0021, 0x0021},
	}},
	PropUnifiedIdeograph: {"Unified Ideograph", [][2]rune{
		{0x31350, 0x323AF},
		{0x30000, 0x3134A},
		{0x2CEB0, 0x2EBE0},
		{0x2B820, 0x2CEA1},
		{0x2B740, 0x2B81D},
		{0x2A700, 0x2B739},
		{0x20000, 0x2A6DF},
		{0xFA27, 0xFA29},
		{0xFA23, 0xFA24},
		{0xFA21, 0xFA21},
		{0xFA1F, 0xFA1F},
		{0xFA13, 0xFA14},
		{0xFA11, 0xFA11},
		{0xFA0E, 0xFA0F},
		{0x4E00, 0x9FFF},
		{0x3400, 0x4DBF},
	}},
	PropVariationSelector: {"Variation Selector", [][2]rune{
		{0xE0100, 0xE01EF},
		{0xFE00, 0xFE0F},
		{0x180F, 0x180F},
		{0x180B, 0x180D},
	}},
	PropWhiteSpace: {"White Space", [][2]rune{
		{0x3000, 0x3000},
		{0x205F, 0x205F},
		{0x202F, 0x202F},
		{0x2029, 0x2029},
		{0x2028, 0x2028},
		{0x2000, 0x200A},
		{0x1680, 0x1680},
		{0x00A0, 0x00A0},
		{0x0085, 0x0085},
		{0x0020, 0x0020},
		{0x0009, 0x000D},
	}},
}

Properties is a list of all Unicode properties.

View Source
var Scripts = map[Script]struct {
	Name   string
	Ranges [][2]rune

}{}/* 164 elements not displayed */

Scripts is a list of all Unicode scripts.

View Source
var Unicodes = map[Unicode]struct {
	Name, Released string
}{
	Unicode1_1:    {"1.1", "June, 1993"},
	Unicode2:      {"2.0", "July, 1996"},
	Unicode2_1:    {"2.1", "May, 1998"},
	Unicode3:      {"3.0", "September, 1999"},
	Unicode3_1:    {"3.1", "March, 2001"},
	Unicode3_2:    {"3.2", "March, 2002"},
	Unicode4:      {"4.0", "April, 2003"},
	Unicode4_1:    {"4.1", "March, 2005"},
	Unicode5:      {"5.0", "July, 2006"},
	Unicode5_1:    {"5.1", "March, 2008"},
	Unicode5_2:    {"5.2", "October, 2009"},
	Unicode6:      {"6.0", "October, 2010"},
	Unicode6_1:    {"6.1", "January, 2012"},
	Unicode6_2:    {"6.2", "September, 2012"},
	Unicode6_3:    {"6.3", "September, 2013"},
	Unicode7:      {"7.0", "June, 2014"},
	Unicode8:      {"8.0", "June, 2015"},
	Unicode9:      {"9.0", "June, 2016"},
	Unicode10:     {"10.0", "June, 2017"},
	Unicode11:     {"11.0", "June, 2018"},
	Unicode12:     {"12.0", "March, 2019"},
	Unicode12_1:   {"12.1", "May, 2019"},
	Unicode13:     {"13.0", "March, 2020"},
	Unicode14:     {"14.0", "September, 2021"},
	Unicode15:     {"15.0", "September, 2022"},
	Unicode15_1:   {"15.1", "September, 2023"},
	UnicodeLatest: {"15.1", "September, 2023"},
}

Unicodes is a list of all Unicode versions since 1.1.

View Source
var Widths = map[Width]string{
	WidthAmbiguous: "ambiguous",
	WidthFullWidth: "full",
	WidthHalfWidth: "half",
	WidthNarrow:    "narrow",
	WidthNeutral:   "neutral",
	WidthWide:      "wide",
}

Widths is a list of all Unicode Widths.

Functions

This section is empty.

Types

type Block added in v2.5.0

type Block uint16 // Unicode block

func FindBlock added in v2.5.0

func FindBlock(name string) (Block, bool)

FindBlock finds a block by name.

func (Block) String added in v2.5.0

func (b Block) String() string

type Category added in v2.5.0

type Category uint8 // Unicode category

func FindCategory added in v2.5.0

func FindCategory(name string) (Category, bool)

FindCategory finds a category by name.

func (Category) String added in v2.5.0

func (c Category) String() string

type Codepoint

type Codepoint struct {
	Codepoint rune // The actual codepoint.
	// contains filtered or unexported fields
}

Codepoint represents a single codepoint.

func Find

func Find(cp rune) (Codepoint, bool)

Find a Codepoint for this rune.

If the second return value is false, the codepoint wasn't found. The Codepoint will have only the Codepoint field set.

func FromString added in v2.5.0

func FromString(s string) (Codepoint, error)

FromString gets a codepoint from human input.

The input can be as (case-insensitive):

U+F1, U+00F1, UF1, F1   Unicode codepoint notation (hex)
0xF1, xF1               Hex number
0d241                   Decimal number
0o361, o361             Octal number
0b11110001              Binary number

func (Codepoint) Block

func (c Codepoint) Block() Block

Block gets the unicode block.

This only gets the block this codepoint is assigned to; use Codepoint.In() if you want to check if a codepoint is within a block (some blocks are a group of other blocks; for example Number is DecimalNumber + LetterNumber + OtherNumber).

func (Codepoint) Category

func (c Codepoint) Category() Category

Category gets this codepoint's category.

func (Codepoint) Digraph

func (c Codepoint) Digraph() string

Digraph gets the digraph sequence.

Digraphs are defined in RFC1345. This adds two digraphs that Vim recognises but are not in the RFC:

=e    €   U+20AC EURO SIGN
=R    ₽   U+20BD RUBLE SIGN

func (Codepoint) Display added in v2.5.0

func (c Codepoint) Display() string

Display this codepoint. This formats the codepoint as follows:

  • Combining characters are prefixed with ◌ (U+25CC)
  • C0 control characters use the graphical representation (Control Pictures block, U+2400-2426)
  • Other control characters (C1, bidi, tags, some script-specific controls) use open box ␣ (U+2423)
  • Everything else is converted to a string without processing.

func (Codepoint) Format

func (c Codepoint) Format(base int) string

Format the codepoint in the given base.

func (Codepoint) FormatCodepoint

func (c Codepoint) FormatCodepoint() string

FormatCodepoint formats the codepoint in Unicode notation.

func (Codepoint) HTML

func (c Codepoint) HTML() string

HTML formats the codepoint as an HTML entity, prefering a symbolic name if it exists (e.g. &amp; instead of &#x26;)

func (Codepoint) JSON

func (c Codepoint) JSON() string

JSON gets the JSON representation.

func (Codepoint) KeySym

func (c Codepoint) KeySym() string

KeySym gets the X11 keysym name.

func (Codepoint) Name

func (c Codepoint) Name() string

Name gets the name for this codepoint.

func (Codepoint) Plane

func (c Codepoint) Plane() Plane

Plane gets the Unicode plane.

func (Codepoint) Properties added in v2.5.0

func (c Codepoint) Properties() PropertyList

Properties gets the unicode properties for this codepoint.

func (Codepoint) Script added in v2.6.0

func (c Codepoint) Script() Script

func (Codepoint) String

func (c Codepoint) String() string

func (Codepoint) UTF16

func (c Codepoint) UTF16(bigEndian bool) []byte

UTF16 gets the UTF-16 representation of this codepoint.

The default is to use Little-Endian encoding (which is what Windows uses); set bigEndian to use Big-Endian encoding.

func (Codepoint) UTF8

func (c Codepoint) UTF8() []byte

UTF8 gets the UTF-8 representation of this codepoint.

func (Codepoint) Unicode added in v2.6.0

func (c Codepoint) Unicode() Unicode

func (Codepoint) Width

func (c Codepoint) Width() Width

Width gets this codepoint's width.

func (Codepoint) XML added in v2.5.0

func (c Codepoint) XML() string

XML formats the codepoint as an XML entity.

type Emoji

type Emoji struct {
	Codepoints []rune // Codepoints in this emoji
	Name       string // Emoji name

	CLDR []string // CLDR names
	// contains filtered or unexported fields
}

Emoji is an emoji sequence.

func (Emoji) Genders

func (e Emoji) Genders() bool

func (Emoji) Group

func (e Emoji) Group() EmojiGroup

func (Emoji) Skintones added in v2.5.0

func (e Emoji) Skintones() bool

func (Emoji) String

func (e Emoji) String() string

func (Emoji) Subgroup

func (e Emoji) Subgroup() EmojiSubgroup

func (Emoji) With added in v2.5.0

func (e Emoji) With(mod EmojiModifier, selmod ...EmojiModifier) Emoji

With returns a copy of this emoji with the given modifiers.

type EmojiGroup added in v2.5.0

type EmojiGroup uint8 // Emoji group.

Emoji is an emoji sequence.

func (EmojiGroup) String added in v2.5.0

func (e EmojiGroup) String() string

type EmojiModifier added in v2.5.0

type EmojiModifier uint16

EmojiModifier is a modifier to apply to an emoji to change the gender(s) or skintone(s).

type EmojiSubgroup added in v2.5.0

type EmojiSubgroup uint16 // Emoji subgroup.

Emoji is an emoji sequence.

func (EmojiSubgroup) String added in v2.5.0

func (e EmojiSubgroup) String() string

type Plane added in v2.5.0

type Plane uint8 // Unicode plane

func (Plane) String added in v2.5.0

func (p Plane) String() string

type Property added in v2.5.0

type Property uint8 // Unicode property

func FindProperty added in v2.5.0

func FindProperty(name string) (Property, bool)

FindProperty finds a property by name.

func (Property) String added in v2.5.0

func (p Property) String() string

type PropertyList added in v2.5.0

type PropertyList []Property // Unicode property

func (PropertyList) String added in v2.5.0

func (p PropertyList) String() string

type Script added in v2.6.0

type Script uint16 // Unicode script.

func FindScript added in v2.6.0

func FindScript(name string) (Script, bool)

FindScript finds a script by name.

func (Script) String added in v2.6.0

func (s Script) String() string

type Unicode added in v2.6.0

type Unicode uint8 // Unicode version

func (Unicode) String added in v2.6.0

func (u Unicode) String() string

type Width added in v2.5.0

type Width uint8 // Unicode width

func (Width) String added in v2.5.0

func (w Width) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL