Internet Draft draft-ietf-krb-wg-utf8-profile-01.txt February 24, 2003 Expires in six months Preparation of Internationalized Strings Profile for Kerberos UTF-8 Strings J. Altman Status of this memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." To view the list Internet-Draft Shadow Directories, see http://www.ietf.org/shadow.html. Abstract This document describes how to prepare UTF-8 strings for use with Kerberos protocols in order to increase the likelihood that name input and name comparison work in ways that make sense for typical users throughout the world. This is a profile of "Preparation of Internationalized Strings" [RFC3454]. 1. Introduction This document specifies processing rules that will allow users to enter Kerberos Principal Names and input to cryptographic String to Key functions. It is a profile of stringprep [RFC3454]. This profile defines the following, as required by [RFC3454] - The intended applicability of the profile: internationalized host name parts - The character repertoire that is the input and output to stringprep: defined in Section 2 - The list of unassigned code points for the repertoire: defined in Appendix D. - The mappings used: defined in Section 3. - The Unicode normalization used: defined in Section 4 - The characters that are prohibited as output: Defined in section 5 1.2 Terminology The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", and "MAY" in this document are to be interpreted as described in RFC 2119 [RFC2119]. Examples in this document use the notation for code points and names from the Unicode Standard [Unicode3.1] and ISO/IEC 10646 [ISO10646]. For example, the letter "a" may be represented as either "U+0061" or "LATIN SMALL LETTER A". In the lists of prohibited characters, the "U+" is left off to make the lists easier to read. The comments for character ranges are shown in square brackets (such as "[SYMBOLS]") and do not come from the standards. 2. Character Repertoire Unicode 3.2 [Unicode3.2] is the repertoire used in this profile. The reason Unicode 3.2 was chosen instead of a version of ISO/IEC 10646 is that Unicode 3.2 is the basis for [RFC3454]. 3. Mapping This profile specifies stringprep mapping using the mapping table in Appendix C. That table includes all the steps described in this section. Note that text in this section describe how Appendix C was formed. It is there for people who want to understand more, but it should be ignored by implementors. Implementations of this profile MUST map based on Appendix C, not based on the descriptions in this section of how Appendix C was created. 3.1 Mapped to nothing The following characters are simply deleted from the input (that is, they are mapped to nothing) because their presence or absence should not make two strings different. Some characters are only useful in line-based text, and are otherwise invisible and ignored. 00AD; SOFT HYPHEN 1806; MONGOLIAN TODO SOFT HYPHEN 200B; ZERO WIDTH SPACE 2060; WORD JOINER FEFF; ZERO WIDTH NO-BREAK SPACE Variation selectors and cursive connectors select different glyphs, but do not bear semantics. 034F; COMBINING GRAPHEME JOINER 180B; MONGOLIAN FREE VARIATION SELECTOR ONE 180C; MONGOLIAN FREE VARIATION SELECTOR TWO 180D; MONGOLIAN FREE VARIATION SELECTOR THREE 200C; ZERO WIDTH NON-JOINER 200D; ZERO WIDTH JOINER FE00; VARIATION SELECTOR-1 FE01; VARIATION SELECTOR-2 FE02; VARIATION SELECTOR-3 FE03; VARIATION SELECTOR-4 FE04; VARIATION SELECTOR-5 FE05; VARIATION SELECTOR-6 FE06; VARIATION SELECTOR-7 FE07; VARIATION SELECTOR-8 FE08; VARIATION SELECTOR-9 FE09; VARIATION SELECTOR-10 FE0A; VARIATION SELECTOR-11 FE0B; VARIATION SELECTOR-12 FE0C; VARIATION SELECTOR-13 FE0D; VARIATION SELECTOR-14 FE0E; VARIATION SELECTOR-15 FE0F; VARIATION SELECTOR-16 3.2 Space Character Conversions Space characters can make accurate visual transcription of names nearly impossible and could lead to user entry errors in many ways. The following Unicode spaces are to be mapped to 0020; SPACE: 0020; SPACE 00A0; NO-BREAK SPACE 1680; OGHAM SPACE MARK 2000; EN QUAD 2001; EM QUAD 2002; EN SPACE 2003; EM SPACE 2004; THREE-PER-EM SPACE 2005; FOUR-PER-EM SPACE 2006; SIX-PER-EM SPACE 2007; FIGURE SPACE 2008; PUNCTUATION SPACE 2009; THIN SPACE 200A; HAIR SPACE 202F; NARROW NO-BREAK SPACE 205F; MEDIUM MATHEMATICAL SPACE 3000; IDEOGRAPHIC SPACE 4. Normalization This profile specifies using Unicode normalization form KC, as described in [UAX15]. NOTE: There was some discussion on the mailing list that would suggest that Unicode NFKC does not properly handle the composition of normalized Hangul strings. Following the lead of the IDN working group, the Kerberos working group will not attempt to second-guess the the authors of Unicode 3.1 Annex 15 (formerly Technical Report 15) [UAX15], which specifies the normalization methods, or the Ideographic Rappaorteur Group (IRG), which is the formal subgroup of ISO/IEC JTC1/SC2/WG2 charged with approving all CJKV elements of the Unicode standards. Such issues are outside the working group's charter and its area of expertise. 5. Prohibited Output This profile specifies using the prohibition table in Appendix D. Note that the subsections below describe how Appendix D was formed. They are there for people who want to understand more, but they should be ignored by implementors. Implementations of this profile MUST map based on Appendix D, not based on the descriptions in this section of how Appendix D was created. The collected lists of prohibited code points can be found in Appendix D of this document. The lists in Appendix D MUST be used by implementations of this specification. If there are any discrepancies between the lists in Appendix D and subsections below, the lists in Appendix D always takes precedence. Some code points listed in one section would also appear in other sections. Each code point is only listed once in the tables in Appendix D. 5.1 Control characters Control characters (or characters with control function) cannot be seen and can cause unpredictable results when displayed. 0000-001F; [CONTROL CHARACTERS] 007F; DELETE 0080-009F; [CONTROL CHARACTERS] 06DD; ARABIC END OF AYAH 070F; SYRIAC ABBREVIATION MARK 180E; MONGOLIAN VOWEL SEPARATOR 200C; ZERO WIDTH NON-JOINER 200D; ZERO WIDTH JOINER 2028; LINE SEPARATOR 2029; PARAGRAPH SEPARATOR 2060; WORD JOINER 2061; FUNCTION APPLICATION 2062; INVISIBLE TIMES 2063; INVISIBLE SEPARATOR 206A-206F; [CONTROL CHARACTERS] FEFF; ZERO WIDTH NO-BREAK SPACE FFF9-FFFC; [CONTROL CHARACTERS] 1D173-1D17A; [MUSICAL CONTROL CHARACTERS] 5.2 Private use and replacement characters Because private-use characters do not have defined meanings, they are prohibited. The private-use characters are: E000-F8FF; [PRIVATE USE, PLANE 0] F0000-FFFFD; [PRIVATE USE, PLANE 15] 100000-10FFFD; [PRIVATE USE, PLANE 16] 5.3 Non-character code points Non-character code points are code points that have been allocated in ISO/IEC 10646 but are not characters. Because they are already assigned, they are guaranteed not to later change into characters. FDD0-FDEF; [NONCHARACTER CODE POINTS] FFFE-FFFF; [NONCHARACTER CODE POINTS] 1FFFE-1FFFF; [NONCHARACTER CODE POINTS] 2FFFE-2FFFF; [NONCHARACTER CODE POINTS] 3FFFE-3FFFF; [NONCHARACTER CODE POINTS] 4FFFE-4FFFF; [NONCHARACTER CODE POINTS] 5FFFE-5FFFF; [NONCHARACTER CODE POINTS] 6FFFE-6FFFF; [NONCHARACTER CODE POINTS] 7FFFE-7FFFF; [NONCHARACTER CODE POINTS] 8FFFE-8FFFF; [NONCHARACTER CODE POINTS] 9FFFE-9FFFF; [NONCHARACTER CODE POINTS] AFFFE-AFFFF; [NONCHARACTER CODE POINTS] BFFFE-BFFFF; [NONCHARACTER CODE POINTS] CFFFE-CFFFF; [NONCHARACTER CODE POINTS] DFFFE-DFFFF; [NONCHARACTER CODE POINTS] EFFFE-EFFFF; [NONCHARACTER CODE POINTS] FFFFE-FFFFF; [NONCHARACTER CODE POINTS] 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] The non-character code points are listed the PropList.txt file from the Unicode database. 5.4 Surrogate codes The following code points are permanently reserved for use as surrogate code values in the UTF-16 encoding, will never be assigned to characters, and are therefore prohibited: D800-DFFF; [SURROGATE CODES] 5.5 Inappropriate for plain text The following characters should not appear in regular text. FFF9; INTERLINEAR ANNOTATION ANCHOR FFFA; INTERLINEAR ANNOTATION SEPARATOR FFFB; INTERLINEAR ANNOTATION TERMINATOR FFFC; OBJECT REPLACEMENT CHARACTER Although the replacement character (U+FFFD) might be used when a name is displayed, it doesn't make sense for it to be part of the name itself. It is often displayed by renderers to indicate "there would be some character here, but it cannot be rendered". For example, on a computer with no Asian fonts, a name with three ideographs might be rendered with three replacement characters. FFFD; REPLACEMENT CHARACTER 5.6 Inappropriate for canonical representation The ideographic description characters allow different sequences of characters to be rendered the same way, which makes them inappropriate for host names that must have a single canonical representation. 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] 5.7 Change display properties The following characters can cause changes in display or the order in which characters appear when rendered, or are deprecated in Unicode. 0340; COMBINING GRAVE TONE MARK 0341; COMBINING ACUTE TONE MARK 200E; LEFT-TO-RIGHT MARK 200F; RIGHT-TO-LEFT MARK 202A; LEFT-TO-RIGHT EMBEDDING 202B; RIGHT-TO-LEFT EMBEDDING 202C; POP DIRECTIONAL FORMATTING 202D; LEFT-TO-RIGHT OVERRIDE 202E; RIGHT-TO-LEFT OVERRIDE 206A; INHIBIT SYMMETRIC SWAPPING 206B; ACTIVATE SYMMETRIC SWAPPING 206C; INHIBIT ARABIC FORM SHAPING 206D; ACTIVATE ARABIC FORM SHAPING 206E; NATIONAL DIGIT SHAPES 206F; NOMINAL DIGIT SHAPES 5.8 Tagging characters The following characters are used for tagging text and are invisible. E0001; LANGUAGE TAG E0020-E007F; [TAGGING CHARACTERS] 6. Bidirectional Characters This profile specifies checking bidirectional strings as described in [RFC3454] section 6. 7. Unassigned Code Points This profile lists the unassigned code points for Unicode 3.2 in Appendix E. The list in Appendix E MUST be used by implementations of this specification. If there are any discrepancies between the list in Appendix E and the Unicode 3.2 specification, the list Appendix E always takes precedence. 8. Security Considerations ISO/IEC 10646 has many characters that look similar. In many cases, users of security protocols might do visual matching, such as when comparing the names of trusted third parties. This profile does nothing to map similar-looking characters together. Principal names and passwords are entered by users and used within the Kerberos protocol. The security of the Internet would be compromised if a user entering a single internationalized string could be connected to different servers or denied access based on different interpretations of internationalized strings. 9. IANA Considerations IANA is to register this profile as described in [RFC3454]. 10. References [CharModel] Unicode Technical Report;17, Character Encoding Model. . [Glossary] Unicode Glossary, . [ISO10646] ISO/IEC 10646-1:2000. International Standard -- Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1: Architecture and Basic Multilingual Plane. [RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate Requirement Levels", March 1997, RFC 2119. [RFC3454] Paul Hoffman and Marc Blanchet, "Preparation of Internationalized Strings ("stringprep")", draft-hoffman-stringprep, work in progress [Unicode3.2] The Unicode Standard, Version 3.2.0: The Unicode Consortium. The Unicode Standard, Version 3.0. Reading, MA, Addison-Wesley Developers Press, 2000. ISBN 0-201-61633-5, as amended by: Unicode Standard Annex #27: Unicode 3.1 ; and by: Unicode Standard Annex #28: Unicode 3.2 [UAX9] The Unicode Consortium. Unicode Standard Annex #9, The Bidirectional Algorithm, . [UAX15] Mark Davis and Martin Duerst. Unicode Standard Annex #15: Unicode Normalization Forms, Version 3.1.0. A. Acknowledgements This draft is based upon the work of the IETF IDN Working Group's IDN Nameprep design team. This profile is the work of the Kerberos Working Group. Significant contributions were provided by Jeffrey Hutzelman, Sam Hartman, Tom Yu, Ken Raeburn, and Jeffrey Altman. B. Editor Contact Information Jeffrey Altman Internet Access Methods 200 W 72ND ST STE 48 NEW YORK NY 10024 +1 (212) 580-2700 e-mail: jaltman@iamx.com C. Mapping Tables The following is the mapping table from Section 3. The table has three columns: - the character that is mapped from - the zero or more characters that it is mapped to - the reason for the mapping The columns are separated by semicolons. Note that the second column may be empty, or it may have one character, or it may have more than one character, with each character separated by a space. ----- Start Mapping Table ----- 00A0; 0020; NO-BREAK SPACE 00AD; ; Map to nothing 034F; ; Map to nothing 1680; 0020; OGHAM SPACE MARK 1806; ; Map to nothing 180B; ; Map to nothing 180C; ; Map to nothing 180D; ; Map to nothing 2000; 0020; EN QUAD 2001; 0020; EM QUAD 2002; 0020; EN SPACE 2003; 0020; EM SPACE 2004; 0020; THREE-PER-EM SPACE 2005; 0020; FOUR-PER-EM SPACE 2006; 0020; SIX-PER-EM SPACE 2007; 0020; FIGURE SPACE 2008; 0020; PUNCTUATION SPACE 2009; 0020; THIN SPACE 200A; 0020; HAIR SPACE 200B; ; Map to nothing 200C; ; Map to nothing 200D; ; Map to nothing 2060; ; Map to nothing 202F; 0020; NARROW NO-BREAK SPACE 205F; 0020; MEDIUM MATHEMATICAL SPACE 3000; 0020; IDEOGRAPHIC SPACE FE00; ; Map to nothing FE01; ; Map to nothing FE02; ; Map to nothing FE03; ; Map to nothing FE04; ; Map to nothing FE05; ; Map to nothing FE06; ; Map to nothing FE07; ; Map to nothing FE08; ; Map to nothing FE09; ; Map to nothing FE0A; ; Map to nothing FE0B; ; Map to nothing FE0C; ; Map to nothing FE0D; ; Map to nothing FE0E; ; Map to nothing FE0F; ; Map to nothing FEFF; ; Map to nothing ----- End Mapping Table ----- D. Prohibited Code Point List ----- Start Prohibited Table ----- 0000-001F; [CONTROL CHARACTERS] 007F; DELETE 0080-009F; [CONTROL CHARACTERS] 0340; COMBINING GRAVE TONE MARK 0341; COMBINING ACUTE TONE MARK 06DD; ARABIC END OF AYAH 070F; SYRIAC ABBREVIATION MARK 100000-10FFFD; [PRIVATE USE, PLANE 16] 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] 180E; MONGOLIAN VOWEL SEPARATOR 1D173-1D17A; [MUSICAL CONTROL CHARACTERS] 1FFFE-1FFFF; [NONCHARACTER CODE POINTS] 200C; ZERO WIDTH NON-JOINER 200D; ZERO WIDTH JOINER 200E; LEFT-TO-RIGHT MARK 200F; RIGHT-TO-LEFT MARK 2028; LINE SEPARATOR 2029; PARAGRAPH SEPARATOR 202A; LEFT-TO-RIGHT EMBEDDING 202B; RIGHT-TO-LEFT EMBEDDING 202C; POP DIRECTIONAL FORMATTING 202D; LEFT-TO-RIGHT OVERRIDE 202E; RIGHT-TO-LEFT OVERRIDE 2060; WORD JOINER 2061; FUNCTION APPLICATION 2062; INVISIBLE TIMES 2063; INVISIBLE SEPARATOR 206A-206F; [CONTROL CHARACTERS] 206A; INHIBIT SYMMETRIC SWAPPING 206B; ACTIVATE SYMMETRIC SWAPPING 206C; INHIBIT ARABIC FORM SHAPING 206D; ACTIVATE ARABIC FORM SHAPING 206E; NATIONAL DIGIT SHAPES 206F; NOMINAL DIGIT SHAPES 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] 2FFFE-2FFFF; [NONCHARACTER CODE POINTS] 3FFFE-3FFFF; [NONCHARACTER CODE POINTS] 4FFFE-4FFFF; [NONCHARACTER CODE POINTS] 5FFFE-5FFFF; [NONCHARACTER CODE POINTS] 6FFFE-6FFFF; [NONCHARACTER CODE POINTS] 7FFFE-7FFFF; [NONCHARACTER CODE POINTS] 8FFFE-8FFFF; [NONCHARACTER CODE POINTS] 9FFFE-9FFFF; [NONCHARACTER CODE POINTS] AFFFE-AFFFF; [NONCHARACTER CODE POINTS] BFFFE-BFFFF; [NONCHARACTER CODE POINTS] CFFFE-CFFFF; [NONCHARACTER CODE POINTS] D800-DFFF; [SURROGATE CODES] DFFFE-DFFFF; [NONCHARACTER CODE POINTS] E000-F8FF; [PRIVATE USE, PLANE 0] E0001; LANGUAGE TAG E0020-E007F; [TAGGING CHARACTERS] EFFFE-EFFFF; [NONCHARACTER CODE POINTS] F0000-FFFFD; [PRIVATE USE, PLANE 15] FDD0-FDEF; [NONCHARACTER CODE POINTS] FEFF; ZERO WIDTH NO-BREAK SPACE FFF9-FFFC; [CONTROL CHARACTERS] FFF9; INTERLINEAR ANNOTATION ANCHOR FFFA; INTERLINEAR ANNOTATION SEPARATOR FFFB; INTERLINEAR ANNOTATION TERMINATOR FFFC; OBJECT REPLACEMENT CHARACTER FFFD; REPLACEMENT CHARACTER FFFE-FFFF; [NONCHARACTER CODE POINTS] FFFFE-FFFFF; [NONCHARACTER CODE POINTS] ----- End Prohibited Table ----- NOTE WELL: Software that follows this specification that will be used to check names before they are put in authoritative name servers MUST add all unassigned code points to the list of characters that are prohibited. See Section 6 of [RFC3454] for more details. E. Unassigned Code Point List ----- Start Unassigned Table ----- 0221 0234-024F 02AE-02AF 02EF-02FF 0350-035F 0370-0373 0376-0379 037B-037D 037F-0383 038B 038D 03A2 03CF 03F7-03FF 0487 04CF 04F6-04F7 04FA-04FF 0510-0530 0557-0558 0560 0588 058B-0590 05A2 05BA 05C5-05CF 05EB-05EF 05F5-060B 060D-061A 061C-061E 0620 063B-063F 0656-065F 06EE-06EF 06FF 070E 072D-072F 074B-077F 07B2-0900 0904 093A-093B 094E-094F 0955-0957 0971-0980 0984 098D-098E 0991-0992 09A9 09B1 09B3-09B5 09BA-09BB 09BD 09C5-09C6 09C9-09CA 09CE-09D6 09D8-09DB 09DE 09E4-09E5 09FB-0A01 0A03-0A04 0A0B-0A0E 0A11-0A12 0A29 0A31 0A34 0A37 0A3A-0A3B 0A3D 0A43-0A46 0A49-0A4A 0A4E-0A58 0A5D 0A5F-0A65 0A75-0A80 0A84 0A8C 0A8E 0A92 0AA9 0AB1 0AB4 0ABA-0ABB 0AC6 0ACA 0ACE-0ACF 0AD1-0ADF 0AE1-0AE5 0AF0-0B00 0B04 0B0D-0B0E 0B11-0B12 0B29 0B31 0B34-0B35 0B3A-0B3B 0B44-0B46 0B49-0B4A 0B4E-0B55 0B58-0B5B 0B5E 0B62-0B65 0B71-0B81 0B84 0B8B-0B8D 0B91 0B96-0B98 0B9B 0B9D 0BA0-0BA2 0BA5-0BA7 0BAB-0BAD 0BB6 0BBA-0BBD 0BC3-0BC5 0BC9 0BCE-0BD6 0BD8-0BE6 0BF3-0C00 0C04 0C0D 0C11 0C29 0C34 0C3A-0C3D 0C45 0C49 0C4E-0C54 0C57-0C5F 0C62-0C65 0C70-0C81 0C84 0C8D 0C91 0CA9 0CB4 0CBA-0CBD 0CC5 0CC9 0CCE-0CD4 0CD7-0CDD 0CDF 0CE2-0CE5 0CF0-0D01 0D04 0D0D 0D11 0D29 0D3A-0D3D 0D44-0D45 0D49 0D4E-0D56 0D58-0D5F 0D62-0D65 0D70-0D81 0D84 0D97-0D99 0DB2 0DBC 0DBE-0DBF 0DC7-0DC9 0DCB-0DCE 0DD5 0DD7 0DE0-0DF1 0DF5-0E00 0E3B-0E3E 0E5C-0E80 0E83 0E85-0E86 0E89 0E8B-0E8C 0E8E-0E93 0E98 0EA0 0EA4 0EA6 0EA8-0EA9 0EAC 0EBA 0EBE-0EBF 0EC5 0EC7 0ECE-0ECF 0EDA-0EDB 0EDE-0EFF 0F48 0F6B-0F70 0F8C-0F8F 0F98 0FBD 0FCD-0FCE 0FD0-0FFF 1022 1028 102B 1033-1035 103A-103F 105A-109F 10C6-10CF 10F9-10FA 10FC-10FF 115A-115E 11A3-11A7 11FA-11FF 1207 1247 1249 124E-124F 1257 1259 125E-125F 1287 1289 128E-128F 12AF 12B1 12B6-12B7 12BF 12C1 12C6-12C7 12CF 12D7 12EF 130F 1311 1316-1317 131F 1347 135B-1360 137D-139F 13F5-1400 1677-167F 169D-169F 16F1-16FF 170D 1715-171F 1737-173F 1754-175F 176D 1771 1774-177F 17DD-17DF 17EA-17FF 180F 181A-181F 1878-187F 18AA-1DFF 1E9C-1E9F 1EFA-1EFF 1F16-1F17 1F1E-1F1F 1F46-1F47 1F4E-1F4F 1F58 1F5A 1F5C 1F5E 1F7E-1F7F 1FB5 1FC5 1FD4-1FD5 1FDC 1FF0-1FF1 1FF5 1FFF 2053-2056 2058-205E 2064-2069 2072-2073 208F-209F 20B2-20CF 20EB-20FF 213B-213C 214C-2152 2184-218F 23CF-23FF 2427-243F 244B-245F 24FF 2614-2615 2618 267E-267F 268A-2700 2705 270A-270B 2728 274C 274E 2753-2755 2757 275F-2760 2795-2797 27B0 27BF-27CF 27EC-27EF 2B00-2E7F 2E9A 2EF4-2EFF 2FD6-2FEF 2FFC-2FFF 3040 3097-3098 3100-3104 312D-3130 318F 31B8-31EF 321D-321F 3244-3250 327C-327E 32CC-32CF 32FF 3377-337A 33DE-33DF 33FF 4DB6-4DFF 9FA6-9FFF A48D-A48F A4C7-ABFF D7A4-D7FF FA2E-FA2F FA6B-FAFF FB07-FB12 FB18-FB1C FB37 FB3D FB3F FB42 FB45 FBB2-FBD2 FD40-FD4F FD90-FD91 FDC8-FDCF FDFD-FDFF FE10-FE1F FE24-FE2F FE47-FE48 FE53 FE67 FE6C-FE6F FE75 FEFD-FEFE FF00 FFBF-FFC1 FFC8-FFC9 FFD0-FFD1 FFD8-FFD9 FFDD-FFDF FFE7 FFEF-FFF8 10000-102FF 1031F 10324-1032F 1034B-103FF 10426-10427 1044E-1CFFF 1D0F6-1D0FF 1D127-1D129 1D1DE-1D3FF 1D455 1D49D 1D4A0-1D4A1 1D4A3-1D4A4 1D4A7-1D4A8 1D4AD 1D4BA 1D4BC 1D4C1 1D4C4 1D506 1D50B-1D50C 1D515 1D51D 1D53A 1D53F 1D545 1D547-1D549 1D551 1D6A4-1D6A7 1D7CA-1D7CD 1D800-1FFFD 2A6D7-2F7FF 2FA1E-2FFFD 30000-3FFFD 40000-4FFFD 50000-5FFFD 60000-6FFFD 70000-7FFFD 80000-8FFFD 90000-9FFFD A0000-AFFFD B0000-BFFFD C0000-CFFFD D0000-DFFFD E0000 E0002-E001F E0080-EFFFD ----- End Unassigned Table -----