precis_i18n-1.0.0/0000755000076500000240000000000013235417633014061 5ustar bfishstaff00000000000000precis_i18n-1.0.0/PKG-INFO0000644000076500000240000002636313235417633015170 0ustar bfishstaff00000000000000Metadata-Version: 1.1 Name: precis_i18n Version: 1.0.0 Summary: PRECIS-i18n: Internationalized Usernames and Passwords Home-page: https://github.com/byllyfish/precis_i18n Author: William W. Fisher Author-email: william.w.fisher@gmail.com License: MIT Description: PRECIS-i18n: Internationalized Usernames and Passwords ====================================================== |MIT licensed| |Build Status| |codecov.io| If you want your application to accept unicode user names and passwords, you must be careful in how you validate and compare them. The PRECIS framework makes internationalized user names and passwords safer for use by applications. PRECIS profiles transform unicode strings into a canonical form, suitable for comparison. This module implements the PRECIS Framework as described in: - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols (`RFC 8264 `__) - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords (`RFC 8265 `__) - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Nicknames (`RFC 8266 `__) Requires Python 3.3 or later. Usage ----- Use the ``get_profile`` function to obtain a profile object, then use its ``enforce`` method. The ``enforce`` method returns a Unicode string. :: >>> from precis_i18n import get_profile >>> username = get_profile('UsernameCaseMapped') >>> username.enforce('Kevin') 'kevin' >>> username.enforce('\u212Aevin') 'kevin' >>> username.enforce('\uFF2Bevin') 'kevin' >>> username.enforce('\U0001F17Aevin') Traceback (most recent call last): ... UnicodeEncodeError: 'UsernameCaseMapped' codec can't encode character '\U0001f17a' in position 0: DISALLOWED/symbols Alternatively, you can use the Python ``str.encode`` API. Import the ``precis_i18n.codec`` module to register the PRECIS codec names. Now you can use the ``str.encode`` method with any unicode string. The result will be a UTF-8 encoded byte string or a ``UnicodeEncodeError`` if the string is disallowed. :: >>> import precis_i18n.codec >>> 'Kevin'.encode('UsernameCasePreserved') b'Kevin' >>> '\u212Aevin'.encode('UsernameCasePreserved') b'Kevin' >>> '\uFF2Bevin'.encode('UsernameCasePreserved') b'Kevin' >>> '\u212Aevin'.encode('UsernameCaseMapped') b'kevin' >>> '\uFF2Bevin'.encode('OpaqueString') b'\xef\xbc\xabevin' >>> '\U0001F17Aevin'.encode('UsernameCasePreserved') Traceback (most recent call last): ... UnicodeEncodeError: 'UsernameCasePreserved' codec can't encode character '\U0001f17a' in position 0: DISALLOWED/symbols Supported Profiles and Codecs ----------------------------- Each PRECIS profile has a corresponding codec name. The ``CaseMapped`` variant converts the string to lower case for implementing case-insensitive comparison. - UsernameCasePreserved - UsernameCaseMapped - OpaqueString - NicknameCasePreserved - NicknameCaseMapped The ``CaseMapped`` profiles use Unicode ``ToLower`` per the latest RFC. Previous verions of this package used Unicode Default Case Folding. There are CaseMapped variants for different case transformations. These profile names are deprecated: - UsernameCaseMapped:ToLower - UsernameCaseMapped:CaseFold - NicknameCaseMapped:ToLower - NicknameCaseMapped:CaseFold The PRECIS base string classes are also available as codecs: - IdentifierClass - FreeFormClass Error Messages -------------- A PRECIS profile raises a ``UnicodeEncodeError`` exception if a string is disallowed. The ``reason`` field specifies the kind of error. +------------------------------+---------------------------------------------+ | Reason | Explanation | +==============================+=============================================+ | DISALLOWED/arabic\_indic | Arabic-Indic digits cannot be mixed with | | | Extended Arabic-Indic Digits. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/bidi\_rule | Right-to-left string cannot contain | | | left-to-right characters due to the "Bidi" | | | rule. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/controls | Control character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/empty | After applying the profile, the result | | | cannot be empty. | +------------------------------+---------------------------------------------+ | DISALLOWED/exceptions | Exception character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/extended\_arabic\ | Extended Arabic-Indic digits cannot be | | _indic | mixed with Arabic-Indic Digits. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/greek\_keraia | Greek keraia must be followed by a Greek | | | character. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/has\_compat | Compatibility characters are not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/hebrew\ | Hebrew punctuation geresh or gershayim must | | _punctuation | be preceded by Hebrew character. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/katakana\_middle\ | Katakana middle dot must be accompanied by | | _dot | a Hiragana, Katakana, or Han character. | | | (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/middle\_dot | Middle dot must be surrounded by the letter | | | 'l'. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/not\_idempotent | After reapplying the profile, the result is | | | not stable. | +------------------------------+---------------------------------------------+ | DISALLOWED/old\_hangul\_jamo | Conjoining Hangul Jamo is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/other | Other character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/other\_letter\ | Non-traditional letter or digit is not | | _digits | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/precis\ | Default ignorable or non-character is not | | _ignorable\_properties | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/punctuation | Non-ASCII punctuation character is not | | | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/spaces | Space character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/symbols | Non-ASCII symbol character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/unassigned | Unassigned unicode character is not | | | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/zero\_width\ | Zero width joiner must immediately follow a | | _joiner | combining virama. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/zero\_width\ | Zero width non-joiner must immediately | | _nonjoiner | follow a combining virama, or appear where | | | it breaks a cursive connection in a | | | formally cursive script. (Context) | +------------------------------+---------------------------------------------+ .. |MIT licensed| image:: https://img.shields.io/badge/license-MIT-blue.svg :target: https://raw.githubusercontent.com/byllyfish/precis_i18n/master/LICENSE.txt .. |Build Status| image:: https://travis-ci.org/byllyfish/precis_i18n.svg?branch=master :target: https://travis-ci.org/byllyfish/precis_i18n .. |codecov.io| image:: https://codecov.io/gh/byllyfish/precis_i18n/coverage.svg?branch=master :target: https://codecov.io/gh/byllyfish/precis_i18n?branch=master Keywords: precis codec username password Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Topic :: Software Development :: Internationalization precis_i18n-1.0.0/test/0000755000076500000240000000000013235417633015040 5ustar bfishstaff00000000000000precis_i18n-1.0.0/test/test_precis.py0000644000076500000240000004255013200230371017724 0ustar bfishstaff00000000000000# test_precis.py import unittest import platform import precis_i18n.context as pc from precis_i18n.baseclass import FreeFormClass, IdentifierClass from precis_i18n.bidi import bidi_rule, has_rtl from precis_i18n.derived import derived_property from precis_i18n.unicode import UnicodeData, _version_to_float _PYPY = (platform.python_implementation() == 'PyPy') UCD = UnicodeData() # Example characters for bidirectional properties. Used in testing Bidi Rule. L = 'A' R = '\u05d0' AL = '\u0621' EN = '0' AN = '\U00010e60' NSM = '\u0300' P = '*' class TestBidiRule(unittest.TestCase): def test_bidi_rule_ltr(self): self.assertTrue(bidi_rule(L, UCD)) self.assertTrue(bidi_rule(L + P + L, UCD)) self.assertFalse(bidi_rule(P + L, UCD)) self.assertFalse(bidi_rule(L + P, UCD)) self.assertFalse(bidi_rule(L + R + L, UCD)) def test_bidi_rule_rtl(self): self.assertTrue(bidi_rule(R, UCD)) self.assertTrue(bidi_rule(R + R, UCD)) self.assertTrue(bidi_rule(AL + R, UCD)) self.assertTrue(bidi_rule(AL + EN + R, UCD)) self.assertTrue(bidi_rule(AL + R + EN, UCD)) self.assertTrue(bidi_rule(R + P + R, UCD)) self.assertTrue(bidi_rule(R + P + R + NSM + NSM, UCD)) self.assertTrue(bidi_rule(R + AN + NSM + AN + R, UCD)) self.assertFalse(bidi_rule(P + R, UCD)) self.assertFalse(bidi_rule(R + P, UCD)) self.assertFalse(bidi_rule(R + L + R, UCD)) self.assertFalse(bidi_rule(EN + R, UCD)) self.assertFalse(bidi_rule(R + AN + EN, UCD)) self.assertFalse(bidi_rule(R + EN + AN + R, UCD)) def test_has_rtl(self): self.assertFalse(has_rtl('Juliet+', UCD)) self.assertTrue(has_rtl('\u05d0+', UCD)) class TestPrecisIdentifierClass(unittest.TestCase): def test_valid_identifier(self): ident = IdentifierClass(UCD) self.assertEqual(ident.name, 'IdentifierClass') self.assertEqual(ident.enforce('abc'), 'abc') self.assertEqual(ident.enforce('123'), '123') self.assertEqual( ident.enforce('\u0660\u0661\u0662\u0669'), '\u0660\u0661\u0662\u0669') self.assertEqual(ident.enforce('\u0370\u0371'), '\u0370\u0371') # CONTEXTJ self.assertEqual(ident.enforce('\u094d\u200c'), '\u094d\u200c') def test_invalid_identifier(self): ident = IdentifierClass(UCD) # DISALLOWED/spaces with self.assertRaisesRegex( UnicodeEncodeError, r"'IdentifierClass' codec can't encode character '\\x20' in position 0: DISALLOWED/spaces" ): ident.enforce(' ') # DISALLOWED/precis_ignorable_properties with self.assertRaisesRegex( UnicodeEncodeError, r"'IdentifierClass' codec can't encode character '\\xad' in position 0: DISALLOWED/precis_ignorable_properties" ): ident.enforce('\xad') # DISALLOWED/old_hangul_jamo with self.assertRaisesRegex( UnicodeEncodeError, r"'IdentifierClass' codec can't encode character '\\u1100' in position 0: DISALLOWED/old_hangul_jamo" ): ident.enforce('\u1100') # DISALLOWED/has_compat with self.assertRaisesRegex( UnicodeEncodeError, r"'IdentifierClass' codec can't encode character '\\u1fbf' in position 0: DISALLOWED/has_compat" ): ident.enforce('\u1FBF') class TestPrecisFreeformClass(unittest.TestCase): def test_valid_freeform(self): free = FreeFormClass(UCD) self.assertEqual(free.name, 'FreeFormClass') self.assertEqual(free.enforce('abc'), 'abc') self.assertEqual(free.enforce('123'), '123') self.assertEqual( free.enforce('\u0660\u0661\u0662\u0669'), '\u0660\u0661\u0662\u0669') self.assertEqual(free.enforce('\u0370\u0371'), '\u0370\u0371') self.assertEqual(free.enforce(' '), ' ') self.assertEqual(free.enforce('\u1FBF'), '\u1FBF') def test_invalid_freeform(self): free = FreeFormClass(UCD) # DISALLOWED/precis_ignorable_properties with self.assertRaisesRegex( UnicodeEncodeError, r"'FreeFormClass' codec can't encode character '\\xad' in position 0: DISALLOWED/precis_ignorable_properties" ): free.enforce('\xad') # DISALLOWED/old_hangul_jamo with self.assertRaisesRegex( UnicodeEncodeError, r"'FreeFormClass' codec can't encode character '\\u1100' in position 0: DISALLOWED/old_hangul_jamo" ): free.enforce('\u1100') # DISALLOWED/other (surrogates) with self.assertRaisesRegex( UnicodeEncodeError, r"'FreeFormClass' codec can't encode character '\\ud800' in position 0: DISALLOWED/other" ): if _PYPY: # pypy3-v5.5.0 treats surrogate pairs in .pyc files differently. (issue #2441) free.enforce('\ud800 \udc00') else: free.enforce('\ud800\udc00') class TestDerivedProperty(unittest.TestCase): def test_derived_property(self): self.assertEqual(derived_property(0, UCD), ('DISALLOWED', 'controls')) self.assertEqual( derived_property(0x10FFFF, UCD), ('DISALLOWED', 'precis_ignorable_properties')) self.assertEqual(derived_property(0x30, UCD), ('PVALID', 'ascii7')) self.assertEqual(derived_property(0x20, UCD), ('FREE_PVAL', 'spaces')) self.assertEqual( derived_property(0xad, UCD), ('DISALLOWED', 'precis_ignorable_properties')) with self.assertRaises(ValueError): derived_property(0x110000, UCD) # In Unicode 9.0, U+08E2 is 'DISALLOWED'. Before Unicode 9.0, it is # UNASSIGNED. prop = derived_property(0x08e2, UCD)[0] if UCD.version >= 9.0: self.assertEqual(prop, 'DISALLOWED') else: self.assertEqual(prop, 'UNASSIGNED') class TestPrecisContextRule(unittest.TestCase): def test_rule_zero_width_nonjoiner(self): # We're going to use a872 and 0622 in some tests. Make sure they aren't # combining_virama(). self.assertFalse(UCD.combining_virama(0xa872)) self.assertFalse(UCD.combining_virama(0x0622)) # Valid: combining_virama before self.assertTrue(pc.rule_zero_width_nonjoiner('\u094d\u200c', 1, UCD)) # Invalid: invalid join_type self.assertFalse(pc.rule_zero_width_nonjoiner('\ua872\u200c', 1, UCD)) # Invalid: undefined before with self.assertRaises(IndexError): pc.rule_zero_width_nonjoiner('\u200c', 0, UCD) # Valid: jointype(L J R) self.assertTrue( pc.rule_zero_width_nonjoiner('\ua872\u200c\u0622', 1, UCD)) # Invalid: jointype(R J L) self.assertFalse( pc.rule_zero_width_nonjoiner('\u0622\u200c\ua872', 1, UCD)) def test_rule_zero_width_joiner(self): # Valid: combining_virama before self.assertTrue(pc.rule_zero_width_joiner('\u094d\u200d', 1, UCD)) # Invalid: no combining_virama before self.assertFalse(pc.rule_zero_width_joiner('A\u200d', 1, UCD)) # Invalid: no combining_virama before, jointype(L J R) self.assertFalse( pc.rule_zero_width_joiner('\ua872\u200d\u0622', 1, UCD)) def test_rule_middle_dot(self): # Valid: 6c b7 6c self.assertTrue(pc.rule_middle_dot('\u006c\u00b7\u006c', 1, UCD)) # Invalid before: 6d b7 6c self.assertFalse(pc.rule_middle_dot('\u006d\u00b7\u006c', 1, UCD)) # Invalid after: 6c b7 6d self.assertFalse(pc.rule_middle_dot('\u006c\u00b7\u006d', 1, UCD)) # Invalid: undefined before with self.assertRaises(IndexError): pc.rule_middle_dot('\u00b7\u006c', 0, UCD) # Invalid: undefined after with self.assertRaises(IndexError): pc.rule_middle_dot('\u006c\u00b7', 1, UCD) def test_rule_greek_keraia(self): # Valid: 0375 03ff self.assertTrue(pc.rule_greek_keraia('\u0375\u03ff', 0, UCD)) # Invalid: 0375 1d25 self.assertFalse(pc.rule_greek_keraia('\u0375\u1d25', 0, UCD)) # Invalid: undefined after with self.assertRaises(IndexError): pc.rule_greek_keraia('\u0375', 0, UCD) def test_rule_hebrew_punctuation(self): # Valid: 0591 05f3 self.assertTrue(pc.rule_hebrew_punctuation('\u0591\u05f3', 1, UCD)) # Valid: 0591 05f4 self.assertTrue(pc.rule_hebrew_punctuation('\u0591\u05f4', 1, UCD)) # Invalid: 0031 05f3 self.assertFalse(pc.rule_hebrew_punctuation('\u0031\u05f3', 1, UCD)) # Invalid: 0031 05f4 self.assertFalse(pc.rule_hebrew_punctuation('\u0031\u05f4', 1, UCD)) # Invalid: undefined after with self.assertRaises(IndexError): pc.rule_hebrew_punctuation('\u05f3', 0, UCD) def test_katatana_middle_dot(self): # Valid: 0x30fb 0x2e99 self.assertTrue(pc.rule_katakana_middle_dot('\u30fb\u2e99', 0, UCD)) # Valid: 0x30f0 0x30fb 0x0021 self.assertTrue( pc.rule_katakana_middle_dot('\u30f0\u30fb\u0021', 1, UCD)) # Invalid: 0x30fb 0x3006 self.assertFalse(pc.rule_katakana_middle_dot('\u30fb\u3006', 0, UCD)) # Invalid: 0x30fb 0x0021 self.assertFalse(pc.rule_katakana_middle_dot('\u0021\u30fb', 1, UCD)) # Invalid: 0x30fb self.assertFalse(pc.rule_katakana_middle_dot('\u30fb', 0, UCD)) def test_arabic_indic(self): # Valid: 0x0660 0x0661 0x0662 0x0669 self.assertTrue( pc.rule_arabic_indic('\u0660\u0661\u0662\u0669', 0, UCD)) # Invalid: 0x660 0x0661 0x0662 0x06f0 self.assertFalse( pc.rule_arabic_indic('\u0660\u0661\u0662\u06f0', 0, UCD)) def test_extended_arabic_indic(self): # Valid: 0x06f0 0x06f1 0x06f2 0x06f9 self.assertTrue( pc.rule_extended_arabic_indic('\u06f0\u06f1\u06f2\u06f9', 0, UCD)) # Invalid: 0x6f0 0x06f1 0x06f2 0x0660 self.assertFalse( pc.rule_extended_arabic_indic('\u06f0\u06f1\u06f2\u0660', 0, UCD)) def test_context_rule(self): def _context_rule(value, offset, ucd): return not pc.context_rule_error(value, offset, ucd) # 1. rule_zero_width_nonjoiner # Valid: combining_virama before self.assertTrue(_context_rule('\u094d\u200c', 1, UCD)) # Invalid: invalid join_type self.assertFalse(_context_rule('\ua872\u200c', 1, UCD)) # Invalid: undefined before self.assertFalse(_context_rule('\u200c', 0, UCD)) # Valid: jointype(L J R) self.assertTrue(_context_rule('\ua872\u200c\u0622', 1, UCD)) # Invalid: jointype(R J L) self.assertFalse(_context_rule('\u0622\u200c\ua872', 1, UCD)) # 2. rule_zero_width_joiner # Valid: combining_virama before self.assertTrue(_context_rule('\u094d\u200d', 1, UCD)) # Invalid: no combining_virama before self.assertFalse(_context_rule('A\u200d', 1, UCD)) # Invalid: no combining_virama before, jointype(L J R) self.assertFalse(_context_rule('\ua872\u200d\u0622', 1, UCD)) # 3. rule_middle_dot # Valid: 6c b7 6c self.assertTrue(_context_rule('\u006c\u00b7\u006c', 1, UCD)) # Invalid before: 6d b7 6c self.assertFalse(_context_rule('\u006d\u00b7\u006c', 1, UCD)) # Invalid after: 6c b7 6d self.assertFalse(_context_rule('\u006c\u00b7\u006d', 1, UCD)) # Invalid: undefined before self.assertFalse(_context_rule('\u00b7\u006c', 0, UCD)) # Invalid: undefined after self.assertFalse(_context_rule('\u006c\u00b7', 1, UCD)) # 4. rule_greek_keraia # Valid: 0375 03ff self.assertTrue(_context_rule('\u0375\u03ff', 0, UCD)) # Invalid: 0375 1d25 self.assertFalse(_context_rule('\u0375\u1d25', 0, UCD)) # Invalid: undefined after self.assertFalse(_context_rule('\u0375', 0, UCD)) # 5. rule_hebrew_punctuation # Valid: 0591 05f3 self.assertTrue(_context_rule('\u0591\u05f3', 1, UCD)) # Valid: 0591 05f4 self.assertTrue(_context_rule('\u0591\u05f4', 1, UCD)) # Invalid: 0031 05f3 self.assertFalse(_context_rule('\u0031\u05f3', 1, UCD)) # Invalid: 0031 05f4 self.assertFalse(_context_rule('\u0031\u05f4', 1, UCD)) # Invalid: undefined after self.assertFalse(_context_rule('\u05f3', 0, UCD)) # 6. katakana_middle_dot # Valid: 0x30fb 0x2e99 self.assertTrue(_context_rule('\u30fb\u2e99', 0, UCD)) # Valid: 0x30f0 0x30fb 0x0021 self.assertTrue(_context_rule('\u30f0\u30fb\u0021', 1, UCD)) # Invalid: 0x30fb 0x3006 self.assertFalse(_context_rule('\u30fb\u3006', 0, UCD)) # Invalid: 0x30fb 0x0021 self.assertFalse(_context_rule('\u0021\u30fb', 1, UCD)) # Invalid: 0x30fb self.assertFalse(_context_rule('\u30fb', 0, UCD)) # 7. arabic_indic # Valid: 0x0660 0x0661 0x0662 0x0669 self.assertTrue(_context_rule('\u0660\u0661\u0662\u0669', 0, UCD)) # Invalid: 0x660 0x0661 0x0662 0x06f0 self.assertFalse(_context_rule('\u0660\u0661\u0662\u06f0', 0, UCD)) # 8. extended_arabic_indic # Valid: 0x06f0 0x06f1 0x06f2 0x06f9 self.assertTrue(_context_rule('\u06f0\u06f1\u06f2\u06f9', 0, UCD)) # Invalid: 0x6f0 0x06f1 0x06f2 0x0660 self.assertFalse(_context_rule('\u06f0\u06f1\u06f2\u0660', 0, UCD)) # 9. No rule matches. with self.assertRaises(KeyError): _context_rule('a', 0, UCD) class TestPrecisUnicodeData(unittest.TestCase): def test_width_map(self): self.assertEqual( UCD.width_map('\uff00\uff01\uff02\uffe3\uffef'), '\uff00!"\uffe3\uffef') def test_replace_whitespace(self): self.assertEqual( UCD.map_nonascii_space_to_ascii( ' .\u00a0.\u1680 .\u2000.\u200A.\u202F.\u205F.\u3000'), ' . . . . . . . ') def test_default_ignorable_code_point(self): self.assertTrue(UCD.default_ignorable(0x00ad)) self.assertFalse(UCD.default_ignorable(0x00ae)) def test_has_compat(self): self.assertFalse(UCD.has_compat(0x31)) self.assertTrue(UCD.has_compat(0xff01)) self.assertTrue(UCD.has_compat(0x212B)) def test_control(self): self.assertFalse(UCD.control(0x20)) self.assertTrue(UCD.control(0x0A)) self.assertTrue(UCD.control(0x80)) def test_noncharacter(self): self.assertTrue(UCD.noncharacter(0x02FFFF)) self.assertTrue(UCD.noncharacter(0xfdef)) self.assertFalse(UCD.noncharacter(0xfdf0)) def test_old_hangul_jamo(self): self.assertTrue(UCD.old_hangul_jamo(0xa97c)) self.assertFalse(UCD.old_hangul_jamo(0xa97d)) def test_greek_script(self): self.assertTrue(UCD.greek_script(0x0373)) self.assertFalse(UCD.greek_script(0x0374)) def test_hebrew_script(self): self.assertTrue(UCD.hebrew_script(0x05c7)) self.assertFalse(UCD.hebrew_script(0x05c8)) def test_hiragana_katakana_han_script(self): self.assertTrue(UCD.hiragana_katakana_han_script(0x1f200)) self.assertFalse(UCD.hiragana_katakana_han_script(0x1f201)) self.assertTrue(UCD.hiragana_katakana_han_script(0xff9d)) self.assertFalse(UCD.hiragana_katakana_han_script(0xff9e)) self.assertTrue(UCD.hiragana_katakana_han_script(0x2fd5)) self.assertFalse(UCD.hiragana_katakana_han_script(0x2fd6)) self.assertFalse(UCD.hiragana_katakana_han_script(0x3006)) self.assertFalse(UCD.hiragana_katakana_han_script(0x30fb)) def test_combining_virama(self): self.assertTrue(UCD.combining_virama(0x1714)) self.assertFalse(UCD.combining_virama(0x1715)) def test_arabic_indic(self): self.assertTrue(UCD.arabic_indic(0x669)) self.assertFalse(UCD.arabic_indic(0x66A)) def test_extended_arabic_indic(self): self.assertTrue(UCD.extended_arabic_indic(0x06f9)) self.assertFalse(UCD.extended_arabic_indic(0x06fa)) def test_valid_join_type(self): # Valid: L J R self.assertTrue(UCD.valid_jointype('\ua872\u200c\u0622', 1)) # Valid: L T J T R self.assertTrue( UCD.valid_jointype('\ua872\u00ad\u200c\u00ad\u0622', 2)) # Valid: D J D self.assertTrue(UCD.valid_jointype('\u0620\u200c\u0620', 1)) # Valid: D T J T D self.assertTrue( UCD.valid_jointype('\u0626\u0300\u200c\u0301\u0628', 2)) # Invalid: R J L self.assertFalse(UCD.valid_jointype('\u0622\u200c\ua872', 1)) # Invalid: R T J T L self.assertFalse( UCD.valid_jointype('\u0622\u00ad\u200c\u00ad\ua872', 2)) # Invalid: J self.assertFalse(UCD.valid_jointype('\u200c', 0)) # Invalid: T J T self.assertFalse(UCD.valid_jointype('\u00ad\u200c\u00ad', 1)) # Invalid: U T J T U self.assertFalse( UCD.valid_jointype('\u0031\u0300\u200c\u0301\u0032', 2)) def test_version_to_float(self): self.assertEqual(_version_to_float('8.0.0'), 8.0) self.assertEqual(_version_to_float('6.3.1'), 6.3) with self.assertRaises(ValueError): _version_to_float('8.0') if __name__ == '__main__': unittest.main(verbosity=2) precis_i18n-1.0.0/test/test_codec.py0000644000076500000240000000315513050473450017524 0ustar bfishstaff00000000000000import unittest import codecs import precis_i18n.codec class TestCodec(unittest.TestCase): def test_encode(self): self.assertEqual('Juliet'.encode('UsernameCasePreserved'), b'Juliet') self.assertEqual('Juliet'.encode('UsernameCaseMapped'), b'juliet') self.assertEqual(' pass \u1FBF\u3000'.encode('OpaqueString'), b' pass \xe1\xbe\xbf ') self.assertEqual(' Juliet '.encode('NicknameCaseMapped'), b'juliet') self.assertEqual('Juliet'.encode('IdentifierClass'), b'Juliet') self.assertEqual('Juliet'.encode('FreeFormClass'), b'Juliet') def test_decode(self): with self.assertRaises(NotImplementedError): b'Juliet'.decode('UsernameCasePreserved') def test_encode_errors(self): # errors must be 'strict'; 'replace' and others are not supported. with self.assertRaises(ValueError): 'Juliet'.encode('opaquestring', errors='replace') # non-matching codec names shouldn't work. with self.assertRaises(LookupError) as cm: 'Juliet'.encode('opaquestring_nonexistant') # Exception must be LookupError (not KeyError or IndexError). self.assertIs(type(cm.exception), LookupError) def test_search_function(self): _search = precis_i18n.codec.search # Check search function result. codec_info = _search('usernamecasepreserved') self.assertIsInstance(codec_info, codecs.CodecInfo) # Search function must return None for non-existant codec. codec_info = _search('opaquestring_nonexistant') self.assertIs(codec_info, None) precis_i18n-1.0.0/test/test_factory.py0000644000076500000240000000706113157351617020126 0ustar bfishstaff00000000000000import unittest import precis_i18n from precis_i18n import get_profile from precis_i18n.factory import UCD class TestGetProfile(unittest.TestCase): def test_missing(self): with self.assertRaises(KeyError): get_profile('_does_not_exist_') class TestUsernameCasePreserved(unittest.TestCase): def test_enforce(self): profile = get_profile('UsernameCasePreserved') self.assertEqual(profile.enforce('Juliet'), 'Juliet') self.assertEqual(profile.enforce('J*'), 'J*') self.assertEqual( profile.enforce('E\u0301\u0301\u0301'), '\u00c9\u0301\u0301') self.assertEqual(profile.enforce(b'Juliet'), 'Juliet') self.profile_fail(profile, '', 'empty') self.profile_fail(profile, ' J', 'spaces') self.profile_fail(profile, '\u05d0*', 'bidi_rule') def profile_fail(self, profile, value, reason): with self.assertRaisesRegex(UnicodeEncodeError, reason): profile.enforce(value) def test_invalid_argument(self): profile = get_profile('UsernameCasePreserved') with self.assertRaisesRegex(ValueError, 'not a string'): profile.enforce(1) def test_identifier_oddities(self): # Make a list of all codepoints < 10,000 which are allowed in the # UsernameCasePreserved profile even though they are not allowed in # IdentifierClass. profile = get_profile('UsernameCasePreserved') allowed = [] for cp in range(0, 10000): try: profile.enforce(chr(cp)) try: profile.base.enforce(chr(cp)) except UnicodeEncodeError: allowed.append(cp) except UnicodeEncodeError: pass self.assertEqual(allowed, [ 832, 833, 835, 836, 884, 894, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2524, 2525, 2527, 2611, 2614, 2649, 2650, 2651, 2654, 2908, 2909, 3907, 3917, 3922, 3927, 3932, 3945, 3955, 3957, 3958, 3960, 3969, 3987, 3997, 4002, 4007, 4012, 4025, 8049, 8051, 8053, 8055, 8057, 8059, 8061, 8123, 8126, 8137, 8139, 8147, 8155, 8163, 8171, 8175, 8185, 8187, 8486, 8490, 8491 ]) class TestUsernameCaseMapped(unittest.TestCase): def test_enforce(self): profile = get_profile('UsernameCaseMapped') self.assertEqual(profile.enforce('Juliet'), 'juliet') self.assertEqual( profile.enforce('E\u0301\u0301\u0301'), '\u00e9\u0301\u0301') class TestNickname(unittest.TestCase): def test_enforce(self): profile = get_profile('Nickname') self.assertEqual(profile.enforce('Juliet'), 'juliet') self.assertEqual( profile.enforce('E\u0301\u0301\u0301'), '\u00e9\u0301\u0301') self.assertEqual(profile.enforce('\u03d4'), '\u03cb') class TestNicknameCaseMapped(unittest.TestCase): def test_enforce(self): profile = get_profile('NicknameCaseMapped:ToLower') self.assertEqual(profile.enforce('Juliet'), 'juliet') self.assertEqual( profile.enforce('E\u0301\u0301\u0301'), '\u00e9\u0301\u0301') self.assertEqual(profile.enforce('\u03d4'), '\u03cb') class TestUsername(unittest.TestCase): def test_constructor(self): profile = precis_i18n.profile.Username(UCD, 'name', 'lower') self.assertEqual(profile.enforce('Fu\u00dfball'), 'fu\u00dfball') def test_constructor_fail(self): with self.assertRaises(ValueError): precis_i18n.profile.Username(UCD, 'name', 'unsupported-arg') precis_i18n-1.0.0/test/test_codepointset.py0000644000076500000240000000751313157351615021157 0ustar bfishstaff00000000000000import unittest from precis_i18n.codepointset import CodepointSet class TestCodepointSet(unittest.TestCase): def test_contains(self): cps = CodepointSet('0000\n') actual = [cp in cps for cp in range(-1, 4)] self.assertEqual(actual, [False, True, False, False, False]) self.assertFalse(0x010FFFF in cps) cps = CodepointSet('0000..0001\n') actual = [cp in cps for cp in range(-1, 4)] self.assertEqual(actual, [False, True, True, False, False]) cps = CodepointSet('0000\n0001\n0002') actual = [cp in cps for cp in range(-1, 4)] self.assertEqual(actual, [False, True, True, True, False]) cps = CodepointSet('0000\n0002') actual = [cp in cps for cp in range(-1, 4)] self.assertEqual(actual, [False, True, False, True, False]) cps = CodepointSet('10000..10FFFF') self.assertTrue(0x10FFFF in cps) self.assertFalse(0x110000 in cps) def test_len(self): cps = CodepointSet('0000\n') self.assertEqual(len(cps), 1) cps = CodepointSet('0000..0001\n') self.assertEqual(len(cps), 2) cps = CodepointSet('0000\n0001\n0002') self.assertEqual(len(cps), 3) cps = CodepointSet('0000\n0002') self.assertEqual(len(cps), 2) cps = CodepointSet('10000..10FFFF') self.assertEqual(len(cps), 0x10FFFF - 0x10000 + 1) def test_equals(self): cps = CodepointSet('0000..00FF') self.assertEqual(cps, CodepointSet('0000..00FF')) self.assertNotEqual(cps, CodepointSet('0000..00FE')) # Non-CodepointSet always not-equal. self.assertFalse(cps == 'what?') def test_repr(self): cps = CodepointSet('') self.assertEqual(repr(cps), "CodepointSet('')") cps = CodepointSet('0000') self.assertEqual(repr(cps), "CodepointSet('0000')") cps = CodepointSet('0000..00FF') self.assertEqual(repr(cps), "CodepointSet('0000..00FF')") cps = CodepointSet('0001..FFFF\n100000..10FFFF') self.assertEqual( repr(cps), r"CodepointSet('0001..FFFF\n100000..10FFFF')") cps = CodepointSet('FFFF..1FFFF') self.assertEqual(repr(cps), "CodepointSet('FFFF..1FFFF')") cps = CodepointSet('10000..1FFFF') self.assertEqual(repr(cps), "CodepointSet('10000..1FFFF')") cps = CodepointSet('FFFE\n10000..1FFFF') self.assertEqual(repr(cps), r"CodepointSet('FFFE\n10000..1FFFF')") def test_coalesce(self): cps = CodepointSet('0000\n0001\n0002') self.assertEqual(cps, CodepointSet('0000..0002')) cps = CodepointSet('0000\n0002\n0003..0004') self.assertEqual(cps, CodepointSet('0000\n0002..0004')) def test_malformed_range(self): with self.assertRaises(ValueError): CodepointSet('0002..0000\n0001') with self.assertRaises(ValueError): CodepointSet('0000..0001\n0000..0001\n0002') with self.assertRaises(ValueError): CodepointSet('0000\n0002\n0002..0004') with self.assertRaises(ValueError): CodepointSet('110000') with self.assertRaises(ValueError): CodepointSet('0000\n000G') def test_even_odd(self): data = '\n'.join("%04X" % cp for cp in range(0, 10000, 2)) cps = CodepointSet(data) for cp in range(10000): if cp in cps: self.assertTrue((cp % 2) == 0) else: self.assertFalse((cp % 2) == 0) def test_parse(self): cps = CodepointSet('A\nBB\n') self.assertEqual(repr(cps), r"CodepointSet('000A\n00BB')") cps = CodepointSet('AAA\nBBB..CCC\n') self.assertEqual(repr(cps), r"CodepointSet('0AAA\n0BBB..0CCC')") cps = CodepointSet('\n \n # comment \n \n') self.assertEqual(repr(cps), "CodepointSet('')") precis_i18n-1.0.0/test/test_idempotent.py0000644000076500000240000000211413215037047020612 0ustar bfishstaff00000000000000import unittest from precis_i18n.factory import UCD from precis_i18n.profile import Username from precis_i18n import get_profile class IdempotentTestCase(unittest.TestCase): def test_broken_profile(self): """Test that we can catch a profile that is not idempotent. """ class _BrokenProfile(Username): def additional_mapping_rule(self, value): return '%s+' % value broken = _BrokenProfile(UCD, name='Broken') with self.assertRaisesRegex(ValueError, 'DISALLOWED/not_idempotent'): broken.enforce('x') def test_all_codepoints(self): """Verify all individual code points are idempotent. """ profiles = [get_profile(profile) for profile in ('UsernameCaseMapped', 'NicknameCaseMapped')] for cp in range(0x0110000): original = chr(cp) for profile in profiles: try: profile.enforce(original) except UnicodeEncodeError as ex: if 'not_idempotent' in str(ex): raise precis_i18n-1.0.0/test/test_golden.py0000644000076500000240000000352313134314325017714 0ustar bfishstaff00000000000000import os import json import unittest import precis_i18n.codec HERE = os.path.abspath(os.path.dirname(__file__)) GOLDEN_JSON = os.path.join(HERE, 'golden.json') UCD_VERSION = precis_i18n.get_profile('FreeFormClass').ucd.version class TestGolden(unittest.TestCase): def test_golden_json(self): with open(GOLDEN_JSON, encoding='ascii') as input_file: entries = json.load(input_file) for entry in entries: if 'unicode_version' in entry and UCD_VERSION < entry[ 'unicode_version']: continue profile, input_, output, error = (entry['profile'], entry['input'], entry['output'], entry['error']) if not error: self.check_allow(profile, input_, output) else: self.check_disallow(profile, input_, error) def check_allow(self, profile, input_, expected): #print('check_allow', profile, input_) actual = input_.encode(profile).decode('utf-8') self.assertEqual(actual, expected) # Check that the profile encoding is idempotent. If the following # assertion fails, the profile is not idempotent. idempotent = actual.encode(profile).decode('utf-8') if idempotent != actual: print('\n"%s" not idempotent: "%s" => "%s" => "%s"' % (profile, _escape(input_), _escape(actual), _escape(idempotent))) self.assertEqual(idempotent, actual) def check_disallow(self, profile, input_, expected): #print('check_disallow', profile, input_) with self.assertRaisesRegex(UnicodeEncodeError, expected): input_.encode(profile) def _escape(s): return s.encode('unicode_escape').decode('ascii') if __name__ == '__main__': unittest.main(verbosity=2) precis_i18n-1.0.0/test/golden.json0000644000076500000240000155004013200400374017172 0ustar bfishstaff00000000000000[ { "profile": "UsernameCasePreserved", "input": "", "output": null, "error": "DISALLOWED/empty" }, { "profile": "UsernameCasePreserved", "input": "#", "output": "#", "error": null }, { "profile": "UsernameCasePreserved", "input": "\\", "output": "\\", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCasePreserved", "input": "\t", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCasePreserved", "input": "\n", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCasePreserved", "input": "\r", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCasePreserved", "input": "\u001f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCasePreserved", "input": " ", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "!", "output": "!", "error": null }, { "profile": "UsernameCasePreserved", "input": "~", "output": "~", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCasePreserved", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCasePreserved", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCasePreserved", "input": "\u00a0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "UsernameCasePreserved", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "UsernameCasePreserved", "input": "Kevin", "output": "Kevin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u212aevin", "output": "Kevin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u039aevin", "output": "\u039aevin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1e32evin", "output": "\u1e32evin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1e34evin", "output": "\u1e34evin", "error": null }, { "profile": "UsernameCasePreserved", "input": "K\u0301evin", "output": "\u1e30evin", "error": null }, { "profile": "UsernameCasePreserved", "input": "K\u0301\u0301evin", "output": "\u1e30\u0301evin", "error": null }, { "profile": "UsernameCasePreserved", "input": "K\ua717evin", "output": "K\ua717evin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u24c0evin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u2c69evin", "output": "\u2c69evin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\ua740evin", "output": "\ua740evin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\ua742evin", "output": "\ua742evin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\ua744evin", "output": "\ua744evin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\ua7a2evin", "output": "\ua7a2evin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\uff2bevin", "output": "Kevin", "error": null }, { "profile": "UsernameCasePreserved", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ud83c\udd1aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ud83c\udd3aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ud83c\udd5aevin", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCasePreserved", "input": "\ud83c\udd7aevin", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCasePreserved", "input": "StPeter", "output": "StPeter", "error": null }, { "profile": "UsernameCasePreserved", "input": "Juliet", "output": "Juliet", "error": null }, { "profile": "UsernameCasePreserved", "input": "Juliet@Example.COM", "output": "Juliet@Example.COM", "error": null }, { "profile": "UsernameCasePreserved", "input": "Fussball", "output": "Fussball", "error": null }, { "profile": "UsernameCasePreserved", "input": "Fu\u00dfball", "output": "Fu\u00dfball", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u03a3", "output": "\u03a3", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "UsernameCasePreserved", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "error": null }, { "profile": "UsernameCasePreserved", "input": "Foo", "output": "Foo", "error": null }, { "profile": "UsernameCasePreserved", "input": "foo", "output": "foo", "error": null }, { "profile": "UsernameCasePreserved", "input": "Foo Bar", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "foo bar", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "\u03a3", "output": "\u03a3", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u265a", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCasePreserved", "input": "Richard \u2163", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u19da", "output": null, "error": "DISALLOWED/other_letter_digits" }, { "profile": "UsernameCasePreserved", "input": "i\u0130\u0131I", "output": "i\u0130\u0131I", "error": null }, { "profile": "UsernameCasePreserved", "input": "I\u0307", "output": "\u0130", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "UsernameCasePreserved", "input": "A\ua717", "output": "A\ua717", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "UsernameCasePreserved", "input": "e\u0301\u0301\u0301", "output": "\u00e9\u0301\u0301", "error": null }, { "profile": "UsernameCasePreserved", "input": "e\u0301", "output": "\u00e9", "error": null }, { "profile": "UsernameCasePreserved", "input": "o", "output": "o", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "UsernameCasePreserved", "input": "\ufec9", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufeca", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufecb", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufecc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\uff76", "output": "\u30ab", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u3300", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "UsernameCasePreserved", "input": "i\u2079", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u00bc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u01c6", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe37", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u210c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u210d", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u037e", "output": ";", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fef", "output": "`", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u212a", "output": "K", "error": null }, { "profile": "UsernameCasePreserved", "input": "\uff01", "output": "!", "error": null }, { "profile": "UsernameCasePreserved", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": "Juliet", "error": null }, { "profile": "UsernameCasePreserved", "input": "\uff04", "output": "$", "error": null }, { "profile": "UsernameCasePreserved", "input": "\ufe69", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "Rs", "output": "Rs", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u20a8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ud83c\uddfa\ud83c\uddf8", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCasePreserved", "input": "K", "output": "K", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u212a", "output": "K", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u24c0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u2460", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u03a9", "output": "\u03a9", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u2126", "output": "\u03a9", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u00c7", "output": "\u00c7", "error": null }, { "profile": "UsernameCasePreserved", "input": "C\u0327", "output": "\u00c7", "error": null }, { "profile": "UsernameCasePreserved", "input": "q\u0307\u0323", "output": "q\u0323\u0307", "error": null }, { "profile": "UsernameCasePreserved", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "UsernameCasePreserved", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1100\u1161", "output": "\uac00", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u212b", "output": "\u00c5", "error": null }, { "profile": "UsernameCasePreserved", "input": "A\u030a", "output": "\u00c5", "error": null }, { "profile": "UsernameCasePreserved", "input": "s\u0323\u0307", "output": "\u1e69", "error": null }, { "profile": "UsernameCasePreserved", "input": "\ufb01", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1100\u1161\u11a8", "output": "\uac01", "error": null }, { "profile": "UsernameCasePreserved", "input": "\ud83d\udc7e", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCasePreserved", "input": "\ud83d\udc9a", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCasePreserved", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": "Z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033d", "error": null }, { "profile": "UsernameCasePreserved", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": "Z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033dA\u0334\u0335\u031c\u0330\u0354\u036b\u0357\u0362L\u0320\u0368\u0367\u0369\u0358G\u0334\u033b\u0348\u034d\u0354\u0339\u0311\u0357\u030e\u0305\u035b\u0301\u01ea\u0335\u0339\u033b\u031d\u0333\u0342\u030c\u030c\u0358!\u0356\u032c\u0330\u0319\u0317\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035c\u035e", "error": null }, { "profile": "UsernameCasePreserved", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "Z\u0334\u0322\u032d\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u0315A\u0334\u0327\u031d\u031d\u0356\u032c\u0329\u032f\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u013b\u031b\u032c\u0316\u0330\u032b\u033c\u0329\u0356\u034a\u0314\u0307\u0352\u0352\u0309\u0362\u035fG\u0336\u031d\u031e\u033c\u031d\u034d\u033d\u0307\u0350\u0313\u030c\u0342\u0313\u0360\u035dO\u0321\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u033f\u0308\u035b\u0306\u030f\u034b\u0342", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u037e", "output": ";", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": "\u0300\u0301\u0313\u0308\u0301\u02b9;\u0915\u093c\u0916\u093c\u0917\u093c\u091c\u093c\u0921\u093c\u0922\u093c\u092b\u093c\u092f\u093c\u09a1\u09bc\u09a2\u09bc\u09af\u09bc\u0a32\u0a3c\u0a38\u0a3c\u0a16\u0a3c\u0a17\u0a3c\u0a1c\u0a3c\u0a2b\u0a3c\u0b21\u0b3c\u0b22\u0b3c\u0f42\u0fb7\u0f4c\u0fb7\u0f51\u0fb7\u0f56\u0fb7\u0f5b\u0fb7\u0f40\u0fb5\u0f71\u0f71\u0f72\u0f74\u0fb2\u0f80\u0fb3\u0f71\u0f80\u0f80\u0f92\u0fb7\u0f9c\u0fb7\u0fa1\u0fb7\u0fa6\u0fb7\u0fab\u0fb7\u0f90\u0fb5\u03ac\u03ad\u03ae\u03af\u03cc\u03cd\u03ce\u0386\u03b9\u0388\u0389\u0390\u038a\u03b0\u038e`\u038c\u038f\u03a9K\u00c5", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\u1806", "output": null, "error": "DISALLOWED/punctuation" }, { "profile": "UsernameCasePreserved", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "UsernameCasePreserved", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "UsernameCasePreserved", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCasePreserved", "input": "Juliet Capulet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": " Juliet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "Juliet ", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "Juliet Capulet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "\"Juliet\"", "output": "\"Juliet\"", "error": null }, { "profile": "UsernameCasePreserved", "input": "'Juliet'", "output": "'Juliet'", "error": null }, { "profile": "UsernameCasePreserved", "input": "'Juliet '", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "' Juliet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "'Juliet Capulet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "'Juliet Capulet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCasePreserved", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "UsernameCasePreserved", "input": "\u05d0\u05d1+", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCasePreserved", "input": "+\u05d0\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCasePreserved", "input": "A\u05d0\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCasePreserved", "input": "\u05d0\u05d1A", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCasePreserved", "input": "\u05d0A\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCasePreserved", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "UsernameCasePreserved", "input": "Juliet+", "output": "Juliet+", "error": null }, { "profile": "UsernameCasePreserved", "input": "+Juliet", "output": "+Juliet", "error": null }, { "profile": "UsernameCasePreserved", "input": "Juliet\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCasePreserved", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "UsernameCasePreserved", "input": "\u00a8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u00af", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u00b4", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u00b8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u02d8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u02d9", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u02da", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u02db", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u02dc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u02dd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u037a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u0384", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u0385", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fbd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fbf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fc0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fc1", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fcd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fce", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fcf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fdd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fde", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fdf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fed", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1fee", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1ffd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u1ffe", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u2017", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u203e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u309b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u309c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufc5e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufc5f", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufc60", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufc61", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufc62", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufc63", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe49", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe4a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe4b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe4c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe70", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe72", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe74", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe76", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe78", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe7a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe7c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\ufe7e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\uffe3", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCasePreserved", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCasePreserved", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCasePreserved", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "UsernameCasePreserved", "input": "ruL\u00b7Lz", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCasePreserved", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCasePreserved", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCasePreserved", "input": "\u00df", "output": "\u00df", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCasePreserved", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "UsernameCasePreserved", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "UsernameCasePreserved", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "UsernameCasePreserved", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "UsernameCasePreserved", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCasePreserved", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCasePreserved", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCasePreserved", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCasePreserved", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCasePreserved", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCasePreserved", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCasePreserved", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCasePreserved", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCasePreserved", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCasePreserved", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCasePreserved", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCasePreserved", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCasePreserved", "input": "\u0600", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCasePreserved", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCasePreserved", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "UsernameCasePreserved", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCasePreserved", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCasePreserved", "input": "\u03a8\u03d3\u03a7\u0397", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCasePreserved", "input": "\u01f0j\u030c", "output": "\u01f0\u01f0", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1e96h\u0331", "output": "\u1e96\u1e96", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1e97t\u0308", "output": "\u1e97\u1e97", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1e98w\u030a", "output": "\u1e98\u1e98", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1e99y\u030a", "output": "\u1e99\u1e99", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u1f50", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u1f52", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u1f54", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u1f56", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u1fb6", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb7\u1fb7", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u1fc6", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc7\u1fc7", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u1fd2", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fd3\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u1fd6", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u1fd7", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u1fe2", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fe3\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u1fe4", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u1fe6", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u1fe7", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u1ff6", "error": null }, { "profile": "UsernameCasePreserved", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff7\u1ff7", "error": null }, { "profile": "UsernameCaseMapped", "input": "", "output": null, "error": "DISALLOWED/empty" }, { "profile": "UsernameCaseMapped", "input": "#", "output": "#", "error": null }, { "profile": "UsernameCaseMapped", "input": "\\", "output": "\\", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped", "input": "\t", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped", "input": "\n", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped", "input": "\r", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped", "input": "\u001f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped", "input": " ", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "!", "output": "!", "error": null }, { "profile": "UsernameCaseMapped", "input": "~", "output": "~", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped", "input": "\u00a0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "UsernameCaseMapped", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "UsernameCaseMapped", "input": "Kevin", "output": "kevin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u212aevin", "output": "kevin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u039aevin", "output": "\u03baevin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1e32evin", "output": "\u1e33evin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1e34evin", "output": "\u1e35evin", "error": null }, { "profile": "UsernameCaseMapped", "input": "K\u0301evin", "output": "\u1e31evin", "error": null }, { "profile": "UsernameCaseMapped", "input": "K\u0301\u0301evin", "output": "\u1e31\u0301evin", "error": null }, { "profile": "UsernameCaseMapped", "input": "K\ua717evin", "output": "k\ua717evin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u24c0evin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u2c69evin", "output": "\u2c6aevin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\ua740evin", "output": "\ua741evin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\ua742evin", "output": "\ua743evin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\ua744evin", "output": "\ua745evin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\ua7a2evin", "output": "\ua7a3evin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\uff2bevin", "output": "kevin", "error": null }, { "profile": "UsernameCaseMapped", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ud83c\udd1aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ud83c\udd3aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ud83c\udd5aevin", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped", "input": "\ud83c\udd7aevin", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped", "input": "StPeter", "output": "stpeter", "error": null }, { "profile": "UsernameCaseMapped", "input": "Juliet", "output": "juliet", "error": null }, { "profile": "UsernameCaseMapped", "input": "Juliet@Example.COM", "output": "juliet@example.com", "error": null }, { "profile": "UsernameCaseMapped", "input": "Fussball", "output": "fussball", "error": null }, { "profile": "UsernameCaseMapped", "input": "Fu\u00dfball", "output": "fu\u00dfball", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "UsernameCaseMapped", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\uabaa\uab72\uab85\uab7c\uab72\uab7c\uaba2", "error": null, "unicode_version": 8.0 }, { "profile": "UsernameCaseMapped", "input": "Foo", "output": "foo", "error": null }, { "profile": "UsernameCaseMapped", "input": "foo", "output": "foo", "error": null }, { "profile": "UsernameCaseMapped", "input": "Foo Bar", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "foo bar", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u265a", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped", "input": "Richard \u2163", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u19da", "output": null, "error": "DISALLOWED/other_letter_digits" }, { "profile": "UsernameCaseMapped", "input": "i\u0130\u0131I", "output": "ii\u0307\u0131i", "error": null }, { "profile": "UsernameCaseMapped", "input": "I\u0307", "output": "i\u0307", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "UsernameCaseMapped", "input": "A\ua717", "output": "a\ua717", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "UsernameCaseMapped", "input": "e\u0301\u0301\u0301", "output": "\u00e9\u0301\u0301", "error": null }, { "profile": "UsernameCaseMapped", "input": "e\u0301", "output": "\u00e9", "error": null }, { "profile": "UsernameCaseMapped", "input": "o", "output": "o", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "UsernameCaseMapped", "input": "\ufec9", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufeca", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufecb", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufecc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\uff76", "output": "\u30ab", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u3300", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "UsernameCaseMapped", "input": "i\u2079", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u00bc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u01c6", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe37", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u210c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u210d", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u037e", "output": ";", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fef", "output": "`", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u212a", "output": "k", "error": null }, { "profile": "UsernameCaseMapped", "input": "\uff01", "output": "!", "error": null }, { "profile": "UsernameCaseMapped", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": "juliet", "error": null }, { "profile": "UsernameCaseMapped", "input": "\uff04", "output": "$", "error": null }, { "profile": "UsernameCaseMapped", "input": "\ufe69", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "Rs", "output": "rs", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u20a8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ud83c\uddfa\ud83c\uddf8", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped", "input": "K", "output": "k", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u212a", "output": "k", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u24c0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u2460", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u03a9", "output": "\u03c9", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u2126", "output": "\u03c9", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u00c7", "output": "\u00e7", "error": null }, { "profile": "UsernameCaseMapped", "input": "C\u0327", "output": "\u00e7", "error": null }, { "profile": "UsernameCaseMapped", "input": "q\u0307\u0323", "output": "q\u0323\u0307", "error": null }, { "profile": "UsernameCaseMapped", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "UsernameCaseMapped", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1100\u1161", "output": "\uac00", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u212b", "output": "\u00e5", "error": null }, { "profile": "UsernameCaseMapped", "input": "A\u030a", "output": "\u00e5", "error": null }, { "profile": "UsernameCaseMapped", "input": "s\u0323\u0307", "output": "\u1e69", "error": null }, { "profile": "UsernameCaseMapped", "input": "\ufb01", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1100\u1161\u11a8", "output": "\uac01", "error": null }, { "profile": "UsernameCaseMapped", "input": "\ud83d\udc7e", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped", "input": "\ud83d\udc9a", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033d", "error": null }, { "profile": "UsernameCaseMapped", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033da\u0334\u0335\u031c\u0330\u0354\u036b\u0357\u0362l\u0320\u0368\u0367\u0369\u0358g\u0334\u033b\u0348\u034d\u0354\u0339\u0311\u0357\u030e\u0305\u035b\u0301\u01eb\u0335\u0339\u033b\u031d\u0333\u0342\u030c\u030c\u0358!\u0356\u032c\u0330\u0319\u0317\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035c\u035e", "error": null }, { "profile": "UsernameCaseMapped", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "z\u0334\u0322\u032d\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u0315a\u0334\u0327\u031d\u031d\u0356\u032c\u0329\u032f\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u013c\u031b\u032c\u0316\u0330\u032b\u033c\u0329\u0356\u034a\u0314\u0307\u0352\u0352\u0309\u0362\u035fg\u0336\u031d\u031e\u033c\u031d\u034d\u033d\u0307\u0350\u0313\u030c\u0342\u0313\u0360\u035do\u0321\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u033f\u0308\u035b\u0306\u030f\u034b\u0342", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u037e", "output": ";", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": "\u0300\u0301\u0313\u0308\u0301\u02b9;\u0915\u093c\u0916\u093c\u0917\u093c\u091c\u093c\u0921\u093c\u0922\u093c\u092b\u093c\u092f\u093c\u09a1\u09bc\u09a2\u09bc\u09af\u09bc\u0a32\u0a3c\u0a38\u0a3c\u0a16\u0a3c\u0a17\u0a3c\u0a1c\u0a3c\u0a2b\u0a3c\u0b21\u0b3c\u0b22\u0b3c\u0f42\u0fb7\u0f4c\u0fb7\u0f51\u0fb7\u0f56\u0fb7\u0f5b\u0fb7\u0f40\u0fb5\u0f71\u0f71\u0f72\u0f74\u0fb2\u0f80\u0fb3\u0f71\u0f80\u0f80\u0f92\u0fb7\u0f9c\u0fb7\u0fa1\u0fb7\u0fa6\u0fb7\u0fab\u0fb7\u0f90\u0fb5\u03ac\u03ad\u03ae\u03af\u03cc\u03cd\u03ce\u03ac\u03b9\u03ad\u03ae\u0390\u03af\u03b0\u03cd`\u03cc\u03ce\u03c9k\u00e5", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\u1806", "output": null, "error": "DISALLOWED/punctuation" }, { "profile": "UsernameCaseMapped", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "UsernameCaseMapped", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "UsernameCaseMapped", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped", "input": "Juliet Capulet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": " Juliet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "Juliet ", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "Juliet Capulet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "\"Juliet\"", "output": "\"juliet\"", "error": null }, { "profile": "UsernameCaseMapped", "input": "'Juliet'", "output": "'juliet'", "error": null }, { "profile": "UsernameCaseMapped", "input": "'Juliet '", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "' Juliet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "'Juliet Capulet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "'Juliet Capulet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "UsernameCaseMapped", "input": "\u05d0\u05d1+", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped", "input": "+\u05d0\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped", "input": "A\u05d0\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped", "input": "\u05d0\u05d1A", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped", "input": "\u05d0A\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "UsernameCaseMapped", "input": "Juliet+", "output": "juliet+", "error": null }, { "profile": "UsernameCaseMapped", "input": "+Juliet", "output": "+juliet", "error": null }, { "profile": "UsernameCaseMapped", "input": "Juliet\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "UsernameCaseMapped", "input": "\u00a8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u00af", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u00b4", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u00b8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u02d8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u02d9", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u02da", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u02db", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u02dc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u02dd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u037a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u0384", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u0385", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fbd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fbf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fc0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fc1", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fcd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fce", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fcf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fdd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fde", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fdf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fed", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1fee", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1ffd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u1ffe", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u2017", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u203e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u309b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u309c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufc5e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufc5f", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufc60", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufc61", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufc62", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufc63", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe49", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe4a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe4b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe4c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe70", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe72", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe74", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe76", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe78", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe7a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe7c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\ufe7e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\uffe3", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "UsernameCaseMapped", "input": "ruL\u00b7Lz", "output": "rul\u00b7lz", "error": null }, { "profile": "UsernameCaseMapped", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped", "input": "\u00df", "output": "\u00df", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "UsernameCaseMapped", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "UsernameCaseMapped", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "UsernameCaseMapped", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "UsernameCaseMapped", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped", "input": "\u0600", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCaseMapped", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "UsernameCaseMapped", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCaseMapped", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCaseMapped", "input": "\u03a8\u03d3\u03a7\u0397", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped", "input": "\u01f0j\u030c", "output": "\u01f0\u01f0", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1e96h\u0331", "output": "\u1e96\u1e96", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1e97t\u0308", "output": "\u1e97\u1e97", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1e98w\u030a", "output": "\u1e98\u1e98", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1e99y\u030a", "output": "\u1e99\u1e99", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u1f50", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u1f52", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u1f54", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u1f56", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u1fb6", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb7\u1fb7", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u1fc6", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc7\u1fc7", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u1fd2", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fd3\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u1fd6", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u1fd7", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u1fe2", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fe3\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u1fe4", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u1fe6", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u1fe7", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u1ff6", "error": null }, { "profile": "UsernameCaseMapped", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff7\u1ff7", "error": null }, { "profile": "OpaqueString", "input": "", "output": null, "error": "DISALLOWED/empty" }, { "profile": "OpaqueString", "input": "#", "output": "#", "error": null }, { "profile": "OpaqueString", "input": "\\", "output": "\\", "error": null }, { "profile": "OpaqueString", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "OpaqueString", "input": "\t", "output": null, "error": "DISALLOWED/controls" }, { "profile": "OpaqueString", "input": "\n", "output": null, "error": "DISALLOWED/controls" }, { "profile": "OpaqueString", "input": "\r", "output": null, "error": "DISALLOWED/controls" }, { "profile": "OpaqueString", "input": "\u001f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "OpaqueString", "input": " ", "output": " ", "error": null }, { "profile": "OpaqueString", "input": "!", "output": "!", "error": null }, { "profile": "OpaqueString", "input": "~", "output": "~", "error": null }, { "profile": "OpaqueString", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "OpaqueString", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "OpaqueString", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "OpaqueString", "input": "\u00a0", "output": " ", "error": null }, { "profile": "OpaqueString", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "OpaqueString", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "OpaqueString", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "OpaqueString", "input": "Kevin", "output": "Kevin", "error": null }, { "profile": "OpaqueString", "input": "\u212aevin", "output": "Kevin", "error": null }, { "profile": "OpaqueString", "input": "\u039aevin", "output": "\u039aevin", "error": null }, { "profile": "OpaqueString", "input": "\u1e32evin", "output": "\u1e32evin", "error": null }, { "profile": "OpaqueString", "input": "\u1e34evin", "output": "\u1e34evin", "error": null }, { "profile": "OpaqueString", "input": "K\u0301evin", "output": "\u1e30evin", "error": null }, { "profile": "OpaqueString", "input": "K\u0301\u0301evin", "output": "\u1e30\u0301evin", "error": null }, { "profile": "OpaqueString", "input": "K\ua717evin", "output": "K\ua717evin", "error": null }, { "profile": "OpaqueString", "input": "\u24c0evin", "output": "\u24c0evin", "error": null }, { "profile": "OpaqueString", "input": "\u2c69evin", "output": "\u2c69evin", "error": null }, { "profile": "OpaqueString", "input": "\ua740evin", "output": "\ua740evin", "error": null }, { "profile": "OpaqueString", "input": "\ua742evin", "output": "\ua742evin", "error": null }, { "profile": "OpaqueString", "input": "\ua744evin", "output": "\ua744evin", "error": null }, { "profile": "OpaqueString", "input": "\ua7a2evin", "output": "\ua7a2evin", "error": null }, { "profile": "OpaqueString", "input": "\uff2bevin", "output": "\uff2bevin", "error": null }, { "profile": "OpaqueString", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ud83c\udd1aevin", "output": "\ud83c\udd1aevin", "error": null }, { "profile": "OpaqueString", "input": "\ud83c\udd3aevin", "output": "\ud83c\udd3aevin", "error": null }, { "profile": "OpaqueString", "input": "\ud83c\udd5aevin", "output": "\ud83c\udd5aevin", "error": null }, { "profile": "OpaqueString", "input": "\ud83c\udd7aevin", "output": "\ud83c\udd7aevin", "error": null }, { "profile": "OpaqueString", "input": "StPeter", "output": "StPeter", "error": null }, { "profile": "OpaqueString", "input": "Juliet", "output": "Juliet", "error": null }, { "profile": "OpaqueString", "input": "Juliet@Example.COM", "output": "Juliet@Example.COM", "error": null }, { "profile": "OpaqueString", "input": "Fussball", "output": "Fussball", "error": null }, { "profile": "OpaqueString", "input": "Fu\u00dfball", "output": "Fu\u00dfball", "error": null }, { "profile": "OpaqueString", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "OpaqueString", "input": "\u03a3", "output": "\u03a3", "error": null }, { "profile": "OpaqueString", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "OpaqueString", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "OpaqueString", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "OpaqueString", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "error": null }, { "profile": "OpaqueString", "input": "Foo", "output": "Foo", "error": null }, { "profile": "OpaqueString", "input": "foo", "output": "foo", "error": null }, { "profile": "OpaqueString", "input": "Foo Bar", "output": "Foo Bar", "error": null }, { "profile": "OpaqueString", "input": "foo bar", "output": "foo bar", "error": null }, { "profile": "OpaqueString", "input": "\u03a3", "output": "\u03a3", "error": null }, { "profile": "OpaqueString", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "OpaqueString", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "OpaqueString", "input": "\u265a", "output": "\u265a", "error": null }, { "profile": "OpaqueString", "input": "Richard \u2163", "output": "Richard \u2163", "error": null }, { "profile": "OpaqueString", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "OpaqueString", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "OpaqueString", "input": "\u19da", "output": "\u19da", "error": null }, { "profile": "OpaqueString", "input": "i\u0130\u0131I", "output": "i\u0130\u0131I", "error": null }, { "profile": "OpaqueString", "input": "I\u0307", "output": "\u0130", "error": null }, { "profile": "OpaqueString", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "OpaqueString", "input": "A\ua717", "output": "A\ua717", "error": null }, { "profile": "OpaqueString", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "OpaqueString", "input": "e\u0301\u0301\u0301", "output": "\u00e9\u0301\u0301", "error": null }, { "profile": "OpaqueString", "input": "e\u0301", "output": "\u00e9", "error": null }, { "profile": "OpaqueString", "input": "o", "output": "o", "error": null }, { "profile": "OpaqueString", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "OpaqueString", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "OpaqueString", "input": "\ufec9", "output": "\ufec9", "error": null }, { "profile": "OpaqueString", "input": "\ufeca", "output": "\ufeca", "error": null }, { "profile": "OpaqueString", "input": "\ufecb", "output": "\ufecb", "error": null }, { "profile": "OpaqueString", "input": "\ufecc", "output": "\ufecc", "error": null }, { "profile": "OpaqueString", "input": "\uff76", "output": "\uff76", "error": null }, { "profile": "OpaqueString", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "OpaqueString", "input": "\u3300", "output": "\u3300", "error": null }, { "profile": "OpaqueString", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "OpaqueString", "input": "i\u2079", "output": "i\u2079", "error": null }, { "profile": "OpaqueString", "input": "\u00bc", "output": "\u00bc", "error": null }, { "profile": "OpaqueString", "input": "\u01c6", "output": "\u01c6", "error": null }, { "profile": "OpaqueString", "input": "\ufe37", "output": "\ufe37", "error": null }, { "profile": "OpaqueString", "input": "\u210c", "output": "\u210c", "error": null }, { "profile": "OpaqueString", "input": "\u210d", "output": "\u210d", "error": null }, { "profile": "OpaqueString", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "OpaqueString", "input": "\u037e", "output": ";", "error": null }, { "profile": "OpaqueString", "input": "\u1fef", "output": "`", "error": null }, { "profile": "OpaqueString", "input": "\u212a", "output": "K", "error": null }, { "profile": "OpaqueString", "input": "\uff01", "output": "\uff01", "error": null }, { "profile": "OpaqueString", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "error": null }, { "profile": "OpaqueString", "input": "\uff04", "output": "\uff04", "error": null }, { "profile": "OpaqueString", "input": "\ufe69", "output": "\ufe69", "error": null }, { "profile": "OpaqueString", "input": "Rs", "output": "Rs", "error": null }, { "profile": "OpaqueString", "input": "\u20a8", "output": "\u20a8", "error": null }, { "profile": "OpaqueString", "input": "\ud83c\uddfa\ud83c\uddf8", "output": "\ud83c\uddfa\ud83c\uddf8", "error": null }, { "profile": "OpaqueString", "input": "K", "output": "K", "error": null }, { "profile": "OpaqueString", "input": "\u212a", "output": "K", "error": null }, { "profile": "OpaqueString", "input": "\u24c0", "output": "\u24c0", "error": null }, { "profile": "OpaqueString", "input": "\u2460", "output": "\u2460", "error": null }, { "profile": "OpaqueString", "input": "\u03a9", "output": "\u03a9", "error": null }, { "profile": "OpaqueString", "input": "\u2126", "output": "\u03a9", "error": null }, { "profile": "OpaqueString", "input": "\u00c7", "output": "\u00c7", "error": null }, { "profile": "OpaqueString", "input": "C\u0327", "output": "\u00c7", "error": null }, { "profile": "OpaqueString", "input": "q\u0307\u0323", "output": "q\u0323\u0307", "error": null }, { "profile": "OpaqueString", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "OpaqueString", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "OpaqueString", "input": "\u1100\u1161", "output": "\uac00", "error": null }, { "profile": "OpaqueString", "input": "\u212b", "output": "\u00c5", "error": null }, { "profile": "OpaqueString", "input": "A\u030a", "output": "\u00c5", "error": null }, { "profile": "OpaqueString", "input": "s\u0323\u0307", "output": "\u1e69", "error": null }, { "profile": "OpaqueString", "input": "\ufb01", "output": "\ufb01", "error": null }, { "profile": "OpaqueString", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "OpaqueString", "input": "\u1100\u1161\u11a8", "output": "\uac01", "error": null }, { "profile": "OpaqueString", "input": "\ud83d\udc7e", "output": "\ud83d\udc7e", "error": null }, { "profile": "OpaqueString", "input": "\ud83d\udc9a", "output": "\ud83d\udc9a", "error": null }, { "profile": "OpaqueString", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": "Z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033d", "error": null }, { "profile": "OpaqueString", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": "Z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033dA\u0334\u0335\u031c\u0330\u0354\u036b\u0357\u0362L\u0320\u0368\u0367\u0369\u0358G\u0334\u033b\u0348\u034d\u0354\u0339\u0311\u0357\u030e\u0305\u035b\u0301\u01ea\u0335\u0339\u033b\u031d\u0333\u0342\u030c\u030c\u0358!\u0356\u032c\u0330\u0319\u0317\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035c\u035e", "error": null }, { "profile": "OpaqueString", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "Z\u0334\u0322\u032d\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u0315A\u0334\u0327\u031d\u031d\u0356\u032c\u0329\u032f\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u013b\u031b\u032c\u0316\u0330\u032b\u033c\u0329\u0356\u034a\u0314\u0307\u0352\u0352\u0309\u0362\u035fG\u0336\u031d\u031e\u033c\u031d\u034d\u033d\u0307\u0350\u0313\u030c\u0342\u0313\u0360\u035dO\u0321\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u033f\u0308\u035b\u0306\u030f\u034b\u0342", "error": null }, { "profile": "OpaqueString", "input": "\u037e", "output": ";", "error": null }, { "profile": "OpaqueString", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": "\u0300\u0301\u0313\u0308\u0301\u02b9;\u0915\u093c\u0916\u093c\u0917\u093c\u091c\u093c\u0921\u093c\u0922\u093c\u092b\u093c\u092f\u093c\u09a1\u09bc\u09a2\u09bc\u09af\u09bc\u0a32\u0a3c\u0a38\u0a3c\u0a16\u0a3c\u0a17\u0a3c\u0a1c\u0a3c\u0a2b\u0a3c\u0b21\u0b3c\u0b22\u0b3c\u0f42\u0fb7\u0f4c\u0fb7\u0f51\u0fb7\u0f56\u0fb7\u0f5b\u0fb7\u0f40\u0fb5\u0f71\u0f71\u0f72\u0f74\u0fb2\u0f80\u0fb3\u0f71\u0f80\u0f80\u0f92\u0fb7\u0f9c\u0fb7\u0fa1\u0fb7\u0fa6\u0fb7\u0fab\u0fb7\u0f90\u0fb5\u03ac\u03ad\u03ae\u03af\u03cc\u03cd\u03ce\u0386\u03b9\u0388\u0389\u0390\u038a\u03b0\u038e`\u038c\u038f\u03a9K\u00c5", "error": null }, { "profile": "OpaqueString", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\u1806", "output": "\u1806", "error": null }, { "profile": "OpaqueString", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "OpaqueString", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "OpaqueString", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "OpaqueString", "input": "Juliet Capulet", "output": "Juliet Capulet", "error": null }, { "profile": "OpaqueString", "input": " Juliet", "output": " Juliet", "error": null }, { "profile": "OpaqueString", "input": "Juliet ", "output": "Juliet ", "error": null }, { "profile": "OpaqueString", "input": "Juliet Capulet", "output": "Juliet Capulet", "error": null }, { "profile": "OpaqueString", "input": "\"Juliet\"", "output": "\"Juliet\"", "error": null }, { "profile": "OpaqueString", "input": "'Juliet'", "output": "'Juliet'", "error": null }, { "profile": "OpaqueString", "input": "'Juliet '", "output": "'Juliet '", "error": null }, { "profile": "OpaqueString", "input": "' Juliet'", "output": "' Juliet'", "error": null }, { "profile": "OpaqueString", "input": "'Juliet Capulet'", "output": "'Juliet Capulet'", "error": null }, { "profile": "OpaqueString", "input": "'Juliet Capulet'", "output": "'Juliet Capulet'", "error": null }, { "profile": "OpaqueString", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "OpaqueString", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "OpaqueString", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "OpaqueString", "input": "\u05d0\u05d1+", "output": "\u05d0\u05d1+", "error": null }, { "profile": "OpaqueString", "input": "+\u05d0\u05d1", "output": "+\u05d0\u05d1", "error": null }, { "profile": "OpaqueString", "input": "A\u05d0\u05d1", "output": "A\u05d0\u05d1", "error": null }, { "profile": "OpaqueString", "input": "\u05d0\u05d1A", "output": "\u05d0\u05d1A", "error": null }, { "profile": "OpaqueString", "input": "\u05d0A\u05d1", "output": "\u05d0A\u05d1", "error": null }, { "profile": "OpaqueString", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "OpaqueString", "input": "Juliet+", "output": "Juliet+", "error": null }, { "profile": "OpaqueString", "input": "+Juliet", "output": "+Juliet", "error": null }, { "profile": "OpaqueString", "input": "Juliet\u05d1", "output": "Juliet\u05d1", "error": null }, { "profile": "OpaqueString", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "OpaqueString", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "OpaqueString", "input": "\u00a8", "output": "\u00a8", "error": null }, { "profile": "OpaqueString", "input": "\u00af", "output": "\u00af", "error": null }, { "profile": "OpaqueString", "input": "\u00b4", "output": "\u00b4", "error": null }, { "profile": "OpaqueString", "input": "\u00b8", "output": "\u00b8", "error": null }, { "profile": "OpaqueString", "input": "\u02d8", "output": "\u02d8", "error": null }, { "profile": "OpaqueString", "input": "\u02d9", "output": "\u02d9", "error": null }, { "profile": "OpaqueString", "input": "\u02da", "output": "\u02da", "error": null }, { "profile": "OpaqueString", "input": "\u02db", "output": "\u02db", "error": null }, { "profile": "OpaqueString", "input": "\u02dc", "output": "\u02dc", "error": null }, { "profile": "OpaqueString", "input": "\u02dd", "output": "\u02dd", "error": null }, { "profile": "OpaqueString", "input": "\u037a", "output": "\u037a", "error": null }, { "profile": "OpaqueString", "input": "\u0384", "output": "\u0384", "error": null }, { "profile": "OpaqueString", "input": "\u0385", "output": "\u0385", "error": null }, { "profile": "OpaqueString", "input": "\u1fbd", "output": "\u1fbd", "error": null }, { "profile": "OpaqueString", "input": "\u1fbf", "output": "\u1fbf", "error": null }, { "profile": "OpaqueString", "input": "\u1fc0", "output": "\u1fc0", "error": null }, { "profile": "OpaqueString", "input": "\u1fc1", "output": "\u1fc1", "error": null }, { "profile": "OpaqueString", "input": "\u1fcd", "output": "\u1fcd", "error": null }, { "profile": "OpaqueString", "input": "\u1fce", "output": "\u1fce", "error": null }, { "profile": "OpaqueString", "input": "\u1fcf", "output": "\u1fcf", "error": null }, { "profile": "OpaqueString", "input": "\u1fdd", "output": "\u1fdd", "error": null }, { "profile": "OpaqueString", "input": "\u1fde", "output": "\u1fde", "error": null }, { "profile": "OpaqueString", "input": "\u1fdf", "output": "\u1fdf", "error": null }, { "profile": "OpaqueString", "input": "\u1fed", "output": "\u1fed", "error": null }, { "profile": "OpaqueString", "input": "\u1fee", "output": "\u0385", "error": null }, { "profile": "OpaqueString", "input": "\u1ffd", "output": "\u00b4", "error": null }, { "profile": "OpaqueString", "input": "\u1ffe", "output": "\u1ffe", "error": null }, { "profile": "OpaqueString", "input": "\u2017", "output": "\u2017", "error": null }, { "profile": "OpaqueString", "input": "\u203e", "output": "\u203e", "error": null }, { "profile": "OpaqueString", "input": "\u309b", "output": "\u309b", "error": null }, { "profile": "OpaqueString", "input": "\u309c", "output": "\u309c", "error": null }, { "profile": "OpaqueString", "input": "\ufc5e", "output": "\ufc5e", "error": null }, { "profile": "OpaqueString", "input": "\ufc5f", "output": "\ufc5f", "error": null }, { "profile": "OpaqueString", "input": "\ufc60", "output": "\ufc60", "error": null }, { "profile": "OpaqueString", "input": "\ufc61", "output": "\ufc61", "error": null }, { "profile": "OpaqueString", "input": "\ufc62", "output": "\ufc62", "error": null }, { "profile": "OpaqueString", "input": "\ufc63", "output": "\ufc63", "error": null }, { "profile": "OpaqueString", "input": "\ufe49", "output": "\ufe49", "error": null }, { "profile": "OpaqueString", "input": "\ufe4a", "output": "\ufe4a", "error": null }, { "profile": "OpaqueString", "input": "\ufe4b", "output": "\ufe4b", "error": null }, { "profile": "OpaqueString", "input": "\ufe4c", "output": "\ufe4c", "error": null }, { "profile": "OpaqueString", "input": "\ufe70", "output": "\ufe70", "error": null }, { "profile": "OpaqueString", "input": "\ufe72", "output": "\ufe72", "error": null }, { "profile": "OpaqueString", "input": "\ufe74", "output": "\ufe74", "error": null }, { "profile": "OpaqueString", "input": "\ufe76", "output": "\ufe76", "error": null }, { "profile": "OpaqueString", "input": "\ufe78", "output": "\ufe78", "error": null }, { "profile": "OpaqueString", "input": "\ufe7a", "output": "\ufe7a", "error": null }, { "profile": "OpaqueString", "input": "\ufe7c", "output": "\ufe7c", "error": null }, { "profile": "OpaqueString", "input": "\ufe7e", "output": "\ufe7e", "error": null }, { "profile": "OpaqueString", "input": "\uffe3", "output": "\uffe3", "error": null }, { "profile": "OpaqueString", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "OpaqueString", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "OpaqueString", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "OpaqueString", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "OpaqueString", "input": "ruL\u00b7Lz", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "OpaqueString", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "OpaqueString", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "OpaqueString", "input": "\u00df", "output": "\u00df", "error": null }, { "profile": "OpaqueString", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "OpaqueString", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "OpaqueString", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "OpaqueString", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "OpaqueString", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "OpaqueString", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "OpaqueString", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "OpaqueString", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "OpaqueString", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "OpaqueString", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "OpaqueString", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "OpaqueString", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "OpaqueString", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "OpaqueString", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "OpaqueString", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/arabic_indic" }, { "profile": "OpaqueString", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/extended_arabic_indic" }, { "profile": "OpaqueString", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "OpaqueString", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "OpaqueString", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "OpaqueString", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "OpaqueString", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "OpaqueString", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "OpaqueString", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "OpaqueString", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "OpaqueString", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "OpaqueString", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "OpaqueString", "input": "\u0600", "output": null, "error": "DISALLOWED/other" }, { "profile": "OpaqueString", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "OpaqueString", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "OpaqueString", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "OpaqueString", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "OpaqueString", "input": "\u03a8\u03d3\u03a7\u0397", "output": "\u03a8\u03d3\u03a7\u0397", "error": null }, { "profile": "OpaqueString", "input": "\u01f0j\u030c", "output": "\u01f0\u01f0", "error": null }, { "profile": "OpaqueString", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "OpaqueString", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "OpaqueString", "input": "\u1e96h\u0331", "output": "\u1e96\u1e96", "error": null }, { "profile": "OpaqueString", "input": "\u1e97t\u0308", "output": "\u1e97\u1e97", "error": null }, { "profile": "OpaqueString", "input": "\u1e98w\u030a", "output": "\u1e98\u1e98", "error": null }, { "profile": "OpaqueString", "input": "\u1e99y\u030a", "output": "\u1e99\u1e99", "error": null }, { "profile": "OpaqueString", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u1f50", "error": null }, { "profile": "OpaqueString", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u1f52", "error": null }, { "profile": "OpaqueString", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u1f54", "error": null }, { "profile": "OpaqueString", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u1f56", "error": null }, { "profile": "OpaqueString", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u1fb6", "error": null }, { "profile": "OpaqueString", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb7\u1fb7", "error": null }, { "profile": "OpaqueString", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u1fc6", "error": null }, { "profile": "OpaqueString", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc7\u1fc7", "error": null }, { "profile": "OpaqueString", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u1fd2", "error": null }, { "profile": "OpaqueString", "input": "\u1fd3\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "OpaqueString", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u1fd6", "error": null }, { "profile": "OpaqueString", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u1fd7", "error": null }, { "profile": "OpaqueString", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u1fe2", "error": null }, { "profile": "OpaqueString", "input": "\u1fe3\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "OpaqueString", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u1fe4", "error": null }, { "profile": "OpaqueString", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u1fe6", "error": null }, { "profile": "OpaqueString", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u1fe7", "error": null }, { "profile": "OpaqueString", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u1ff6", "error": null }, { "profile": "OpaqueString", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff7\u1ff7", "error": null }, { "profile": "NicknameCaseMapped", "input": "", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped", "input": "#", "output": "#", "error": null }, { "profile": "NicknameCaseMapped", "input": "\\", "output": "\\", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped", "input": "\t", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped", "input": "\n", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped", "input": "\r", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped", "input": "\u001f", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped", "input": " ", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped", "input": "!", "output": "!", "error": null }, { "profile": "NicknameCaseMapped", "input": "~", "output": "~", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped", "input": "\u00a0", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "NicknameCaseMapped", "input": "Kevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u212aevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u039aevin", "output": "\u03baevin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1e32evin", "output": "\u1e33evin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1e34evin", "output": "\u1e35evin", "error": null }, { "profile": "NicknameCaseMapped", "input": "K\u0301evin", "output": "\u1e31evin", "error": null }, { "profile": "NicknameCaseMapped", "input": "K\u0301\u0301evin", "output": "\u1e31\u0301evin", "error": null }, { "profile": "NicknameCaseMapped", "input": "K\ua717evin", "output": "k\ua717evin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u24c0evin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u2c69evin", "output": "\u2c6aevin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ua740evin", "output": "\ua741evin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ua742evin", "output": "\ua743evin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ua744evin", "output": "\ua745evin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ua7a2evin", "output": "\ua7a3evin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\uff2bevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ud83c\udd1aevin", "output": "(k)evin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ud83c\udd3aevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ud83c\udd5aevin", "output": "\ud83c\udd5aevin", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ud83c\udd7aevin", "output": "\ud83c\udd7aevin", "error": null }, { "profile": "NicknameCaseMapped", "input": "StPeter", "output": "stpeter", "error": null }, { "profile": "NicknameCaseMapped", "input": "Juliet", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped", "input": "Juliet@Example.COM", "output": "juliet@example.com", "error": null }, { "profile": "NicknameCaseMapped", "input": "Fussball", "output": "fussball", "error": null }, { "profile": "NicknameCaseMapped", "input": "Fu\u00dfball", "output": "fu\u00dfball", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "NicknameCaseMapped", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\uabaa\uab72\uab85\uab7c\uab72\uab7c\uaba2", "error": null, "unicode_version": 8.0 }, { "profile": "NicknameCaseMapped", "input": "Foo", "output": "foo", "error": null }, { "profile": "NicknameCaseMapped", "input": "foo", "output": "foo", "error": null }, { "profile": "NicknameCaseMapped", "input": "Foo Bar", "output": "foo bar", "error": null }, { "profile": "NicknameCaseMapped", "input": "foo bar", "output": "foo bar", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u265a", "output": "\u265a", "error": null }, { "profile": "NicknameCaseMapped", "input": "Richard \u2163", "output": "richard iv", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u19da", "output": "\u19da", "error": null }, { "profile": "NicknameCaseMapped", "input": "i\u0130\u0131I", "output": "ii\u0307\u0131i", "error": null }, { "profile": "NicknameCaseMapped", "input": "I\u0307", "output": "i\u0307", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "NicknameCaseMapped", "input": "A\ua717", "output": "a\ua717", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "NicknameCaseMapped", "input": "e\u0301\u0301\u0301", "output": "\u00e9\u0301\u0301", "error": null }, { "profile": "NicknameCaseMapped", "input": "e\u0301", "output": "\u00e9", "error": null }, { "profile": "NicknameCaseMapped", "input": "o", "output": "o", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufec9", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufeca", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufecb", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufecc", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped", "input": "\uff76", "output": "\u30ab", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u3300", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "NicknameCaseMapped", "input": "i\u2079", "output": "i9", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u00bc", "output": "1\u20444", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u01c6", "output": "d\u017e", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe37", "output": "{", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u210c", "output": "h", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u210d", "output": "h", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u037e", "output": ";", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fef", "output": "`", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u212a", "output": "k", "error": null }, { "profile": "NicknameCaseMapped", "input": "\uff01", "output": "!", "error": null }, { "profile": "NicknameCaseMapped", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped", "input": "\uff04", "output": "$", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe69", "output": "$", "error": null }, { "profile": "NicknameCaseMapped", "input": "Rs", "output": "rs", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u20a8", "output": "rs", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ud83c\uddfa\ud83c\uddf8", "output": "\ud83c\uddfa\ud83c\uddf8", "error": null }, { "profile": "NicknameCaseMapped", "input": "K", "output": "k", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u212a", "output": "k", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u24c0", "output": "k", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u2460", "output": "1", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03a9", "output": "\u03c9", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u2126", "output": "\u03c9", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u00c7", "output": "\u00e7", "error": null }, { "profile": "NicknameCaseMapped", "input": "C\u0327", "output": "\u00e7", "error": null }, { "profile": "NicknameCaseMapped", "input": "q\u0307\u0323", "output": "q\u0323\u0307", "error": null }, { "profile": "NicknameCaseMapped", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "NicknameCaseMapped", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1100\u1161", "output": "\uac00", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u212b", "output": "\u00e5", "error": null }, { "profile": "NicknameCaseMapped", "input": "A\u030a", "output": "\u00e5", "error": null }, { "profile": "NicknameCaseMapped", "input": "s\u0323\u0307", "output": "\u1e69", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufb01", "output": "fi", "error": null }, { "profile": "NicknameCaseMapped", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1100\u1161\u11a8", "output": "\uac01", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ud83d\udc7e", "output": "\ud83d\udc7e", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ud83d\udc9a", "output": "\ud83d\udc9a", "error": null }, { "profile": "NicknameCaseMapped", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033d", "error": null }, { "profile": "NicknameCaseMapped", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033da\u0334\u0335\u031c\u0330\u0354\u036b\u0357\u0362l\u0320\u0368\u0367\u0369\u0358g\u0334\u033b\u0348\u034d\u0354\u0339\u0311\u0357\u030e\u0305\u035b\u0301\u01eb\u0335\u0339\u033b\u031d\u0333\u0342\u030c\u030c\u0358!\u0356\u032c\u0330\u0319\u0317\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035c\u035e", "error": null }, { "profile": "NicknameCaseMapped", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "z\u0334\u0322\u032d\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u0315a\u0334\u0327\u031d\u031d\u0356\u032c\u0329\u032f\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u013c\u031b\u032c\u0316\u0330\u032b\u033c\u0329\u0356\u034a\u0314\u0307\u0352\u0352\u0309\u0362\u035fg\u0336\u031d\u031e\u033c\u031d\u034d\u033d\u0307\u0350\u0313\u030c\u0342\u0313\u0360\u035do\u0321\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u033f\u0308\u035b\u0306\u030f\u034b\u0342", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u037e", "output": ";", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": "\u0300\u0301\u0313\u0308\u0301\u02b9;\u0915\u093c\u0916\u093c\u0917\u093c\u091c\u093c\u0921\u093c\u0922\u093c\u092b\u093c\u092f\u093c\u09a1\u09bc\u09a2\u09bc\u09af\u09bc\u0a32\u0a3c\u0a38\u0a3c\u0a16\u0a3c\u0a17\u0a3c\u0a1c\u0a3c\u0a2b\u0a3c\u0b21\u0b3c\u0b22\u0b3c\u0f42\u0fb7\u0f4c\u0fb7\u0f51\u0fb7\u0f56\u0fb7\u0f5b\u0fb7\u0f40\u0fb5\u0f71\u0f71\u0f72\u0f74\u0fb2\u0f80\u0fb3\u0f71\u0f80\u0f80\u0f92\u0fb7\u0f9c\u0fb7\u0fa1\u0fb7\u0fa6\u0fb7\u0fab\u0fb7\u0f90\u0fb5\u03ac\u03ad\u03ae\u03af\u03cc\u03cd\u03ce\u03ac\u03b9\u03ad\u03ae\u0390\u03af\u03b0\u03cd`\u03cc\u03ce\u03c9k\u00e5", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\u1806", "output": "\u1806", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "NicknameCaseMapped", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "NicknameCaseMapped", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped", "input": "Juliet Capulet", "output": "juliet capulet", "error": null }, { "profile": "NicknameCaseMapped", "input": " Juliet", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped", "input": "Juliet ", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped", "input": "Juliet Capulet", "output": "juliet capulet", "error": null }, { "profile": "NicknameCaseMapped", "input": "\"Juliet\"", "output": "\"juliet\"", "error": null }, { "profile": "NicknameCaseMapped", "input": "'Juliet'", "output": "'juliet'", "error": null }, { "profile": "NicknameCaseMapped", "input": "'Juliet '", "output": "'juliet '", "error": null }, { "profile": "NicknameCaseMapped", "input": "' Juliet'", "output": "' juliet'", "error": null }, { "profile": "NicknameCaseMapped", "input": "'Juliet Capulet'", "output": "'juliet capulet'", "error": null }, { "profile": "NicknameCaseMapped", "input": "'Juliet Capulet'", "output": "'juliet capulet'", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "NicknameCaseMapped", "input": "\u05d0\u05d1+", "output": "\u05d0\u05d1+", "error": null }, { "profile": "NicknameCaseMapped", "input": "+\u05d0\u05d1", "output": "+\u05d0\u05d1", "error": null }, { "profile": "NicknameCaseMapped", "input": "A\u05d0\u05d1", "output": "a\u05d0\u05d1", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u05d0\u05d1A", "output": "\u05d0\u05d1a", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u05d0A\u05d1", "output": "\u05d0a\u05d1", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "NicknameCaseMapped", "input": "Juliet+", "output": "juliet+", "error": null }, { "profile": "NicknameCaseMapped", "input": "+Juliet", "output": "+juliet", "error": null }, { "profile": "NicknameCaseMapped", "input": "Juliet\u05d1", "output": "juliet\u05d1", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "NicknameCaseMapped", "input": "\u00a8", "output": "\u0308", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u00af", "output": "\u0304", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u00b4", "output": "\u0301", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u00b8", "output": "\u0327", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u02d8", "output": "\u0306", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u02d9", "output": "\u0307", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u02da", "output": "\u030a", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u02db", "output": "\u0328", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u02dc", "output": "\u0303", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u02dd", "output": "\u030b", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u037a", "output": "\u0345", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0384", "output": "\u0301", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0385", "output": "\u0308\u0301", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fbd", "output": "\u0313", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fbf", "output": "\u0313", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fc0", "output": "\u0342", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fc1", "output": "\u0308\u0342", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fcd", "output": "\u0313\u0300", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fce", "output": "\u0313\u0301", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fcf", "output": "\u0313\u0342", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fdd", "output": "\u0314\u0300", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fde", "output": "\u0314\u0301", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fdf", "output": "\u0314\u0342", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fed", "output": "\u0308\u0300", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fee", "output": "\u0308\u0301", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1ffd", "output": "\u0301", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1ffe", "output": "\u0314", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u2017", "output": "\u0333", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u203e", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u309b", "output": "\u3099", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u309c", "output": "\u309a", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufc5e", "output": "\u064c\u0651", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufc5f", "output": "\u064d\u0651", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufc60", "output": "\u064e\u0651", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufc61", "output": "\u064f\u0651", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufc62", "output": "\u0650\u0651", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufc63", "output": "\u0651\u0670", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe49", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe4a", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe4b", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe4c", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe70", "output": "\u064b", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe72", "output": "\u064c", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe74", "output": "\u064d", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe76", "output": "\u064e", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe78", "output": "\u064f", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe7a", "output": "\u0650", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe7c", "output": "\u0651", "error": null }, { "profile": "NicknameCaseMapped", "input": "\ufe7e", "output": "\u0652", "error": null }, { "profile": "NicknameCaseMapped", "input": "\uffe3", "output": "\u0304", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "NicknameCaseMapped", "input": "ruL\u00b7Lz", "output": "rul\u00b7lz", "error": null }, { "profile": "NicknameCaseMapped", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped", "input": "\u00df", "output": "\u00df", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "NicknameCaseMapped", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "NicknameCaseMapped", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "NicknameCaseMapped", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "NicknameCaseMapped", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/arabic_indic" }, { "profile": "NicknameCaseMapped", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/extended_arabic_indic" }, { "profile": "NicknameCaseMapped", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped", "input": "\u0600", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "NicknameCaseMapped", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped", "input": "\u03a8\u03d3\u03a7\u0397", "output": "\u03c8\u03cd\u03c7\u03b7", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u01f0j\u030c", "output": "\u01f0\u01f0", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1e96h\u0331", "output": "\u1e96\u1e96", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1e97t\u0308", "output": "\u1e97\u1e97", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1e98w\u030a", "output": "\u1e98\u1e98", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1e99y\u030a", "output": "\u1e99\u1e99", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u1f50", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u1f52", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u1f54", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u1f56", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u1fb6", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb7\u1fb7", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u1fc6", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc7\u1fc7", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u1fd2", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fd3\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u1fd6", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u1fd7", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u1fe2", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fe3\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u1fe4", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u1fe6", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u1fe7", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u1ff6", "error": null }, { "profile": "NicknameCaseMapped", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff7\u1ff7", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "", "output": null, "error": "DISALLOWED/empty" }, { "profile": "UsernameCaseMapped:ToLower", "input": "#", "output": "#", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\\", "output": "\\", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\t", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\n", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\r", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u001f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:ToLower", "input": " ", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "!", "output": "!", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "~", "output": "~", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00a0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "Kevin", "output": "kevin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u212aevin", "output": "kevin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u039aevin", "output": "\u03baevin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1e32evin", "output": "\u1e33evin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1e34evin", "output": "\u1e35evin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "K\u0301evin", "output": "\u1e31evin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "K\u0301\u0301evin", "output": "\u1e31\u0301evin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "K\ua717evin", "output": "k\ua717evin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u24c0evin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u2c69evin", "output": "\u2c6aevin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ua740evin", "output": "\ua741evin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ua742evin", "output": "\ua743evin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ua744evin", "output": "\ua745evin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ua7a2evin", "output": "\ua7a3evin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\uff2bevin", "output": "kevin", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ud83c\udd1aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ud83c\udd3aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ud83c\udd5aevin", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ud83c\udd7aevin", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:ToLower", "input": "StPeter", "output": "stpeter", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "Juliet", "output": "juliet", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "Juliet@Example.COM", "output": "juliet@example.com", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "Fussball", "output": "fussball", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "Fu\u00dfball", "output": "fu\u00dfball", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\uabaa\uab72\uab85\uab7c\uab72\uab7c\uaba2", "error": null, "unicode_version": 8.0 }, { "profile": "UsernameCaseMapped:ToLower", "input": "Foo", "output": "foo", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "foo", "output": "foo", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "Foo Bar", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "foo bar", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u265a", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:ToLower", "input": "Richard \u2163", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u19da", "output": null, "error": "DISALLOWED/other_letter_digits" }, { "profile": "UsernameCaseMapped:ToLower", "input": "i\u0130\u0131I", "output": "ii\u0307\u0131i", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "I\u0307", "output": "i\u0307", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "A\ua717", "output": "a\ua717", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "e\u0301\u0301\u0301", "output": "\u00e9\u0301\u0301", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "e\u0301", "output": "\u00e9", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "o", "output": "o", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufec9", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufeca", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufecb", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufecc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\uff76", "output": "\u30ab", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u3300", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "i\u2079", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00bc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u01c6", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe37", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u210c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u210d", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u037e", "output": ";", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fef", "output": "`", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u212a", "output": "k", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\uff01", "output": "!", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": "juliet", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\uff04", "output": "$", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe69", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "Rs", "output": "rs", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u20a8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ud83c\uddfa\ud83c\uddf8", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:ToLower", "input": "K", "output": "k", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u212a", "output": "k", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u24c0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u2460", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03a9", "output": "\u03c9", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u2126", "output": "\u03c9", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00c7", "output": "\u00e7", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "C\u0327", "output": "\u00e7", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "q\u0307\u0323", "output": "q\u0323\u0307", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1100\u1161", "output": "\uac00", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u212b", "output": "\u00e5", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "A\u030a", "output": "\u00e5", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "s\u0323\u0307", "output": "\u1e69", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufb01", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1100\u1161\u11a8", "output": "\uac01", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ud83d\udc7e", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ud83d\udc9a", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:ToLower", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033d", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033da\u0334\u0335\u031c\u0330\u0354\u036b\u0357\u0362l\u0320\u0368\u0367\u0369\u0358g\u0334\u033b\u0348\u034d\u0354\u0339\u0311\u0357\u030e\u0305\u035b\u0301\u01eb\u0335\u0339\u033b\u031d\u0333\u0342\u030c\u030c\u0358!\u0356\u032c\u0330\u0319\u0317\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035c\u035e", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "z\u0334\u0322\u032d\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u0315a\u0334\u0327\u031d\u031d\u0356\u032c\u0329\u032f\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u013c\u031b\u032c\u0316\u0330\u032b\u033c\u0329\u0356\u034a\u0314\u0307\u0352\u0352\u0309\u0362\u035fg\u0336\u031d\u031e\u033c\u031d\u034d\u033d\u0307\u0350\u0313\u030c\u0342\u0313\u0360\u035do\u0321\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u033f\u0308\u035b\u0306\u030f\u034b\u0342", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u037e", "output": ";", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": "\u0300\u0301\u0313\u0308\u0301\u02b9;\u0915\u093c\u0916\u093c\u0917\u093c\u091c\u093c\u0921\u093c\u0922\u093c\u092b\u093c\u092f\u093c\u09a1\u09bc\u09a2\u09bc\u09af\u09bc\u0a32\u0a3c\u0a38\u0a3c\u0a16\u0a3c\u0a17\u0a3c\u0a1c\u0a3c\u0a2b\u0a3c\u0b21\u0b3c\u0b22\u0b3c\u0f42\u0fb7\u0f4c\u0fb7\u0f51\u0fb7\u0f56\u0fb7\u0f5b\u0fb7\u0f40\u0fb5\u0f71\u0f71\u0f72\u0f74\u0fb2\u0f80\u0fb3\u0f71\u0f80\u0f80\u0f92\u0fb7\u0f9c\u0fb7\u0fa1\u0fb7\u0fa6\u0fb7\u0fab\u0fb7\u0f90\u0fb5\u03ac\u03ad\u03ae\u03af\u03cc\u03cd\u03ce\u03ac\u03b9\u03ad\u03ae\u0390\u03af\u03b0\u03cd`\u03cc\u03ce\u03c9k\u00e5", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1806", "output": null, "error": "DISALLOWED/punctuation" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:ToLower", "input": "Juliet Capulet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": " Juliet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "Juliet ", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "Juliet Capulet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\"Juliet\"", "output": "\"juliet\"", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "'Juliet'", "output": "'juliet'", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "'Juliet '", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "' Juliet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "'Juliet Capulet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "'Juliet Capulet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u05d0\u05d1+", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:ToLower", "input": "+\u05d0\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:ToLower", "input": "A\u05d0\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u05d0\u05d1A", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u05d0A\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "Juliet+", "output": "juliet+", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "+Juliet", "output": "+juliet", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "Juliet\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00a8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00af", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00b4", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00b8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u02d8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u02d9", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u02da", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u02db", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u02dc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u02dd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u037a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0384", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0385", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fbd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fbf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fc0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fc1", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fcd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fce", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fcf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fdd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fde", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fdf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fed", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fee", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1ffd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1ffe", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u2017", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u203e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u309b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u309c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufc5e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufc5f", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufc60", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufc61", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufc62", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufc63", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe49", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe4a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe4b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe4c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe70", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe72", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe74", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe76", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe78", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe7a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe7c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ufe7e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\uffe3", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:ToLower", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:ToLower", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "ruL\u00b7Lz", "output": "rul\u00b7lz", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:ToLower", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00df", "output": "\u00df", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0600", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03a8\u03d3\u03a7\u0397", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u01f0j\u030c", "output": "\u01f0\u01f0", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1e96h\u0331", "output": "\u1e96\u1e96", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1e97t\u0308", "output": "\u1e97\u1e97", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1e98w\u030a", "output": "\u1e98\u1e98", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1e99y\u030a", "output": "\u1e99\u1e99", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u1f50", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u1f52", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u1f54", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u1f56", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u1fb6", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb7\u1fb7", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u1fc6", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc7\u1fc7", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u1fd2", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fd3\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u1fd6", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u1fd7", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u1fe2", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fe3\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u1fe4", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u1fe6", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u1fe7", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u1ff6", "error": null }, { "profile": "UsernameCaseMapped:ToLower", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff7\u1ff7", "error": null }, { "profile": "NicknameCasePreserved", "input": "", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCasePreserved", "input": "#", "output": "#", "error": null }, { "profile": "NicknameCasePreserved", "input": "\\", "output": "\\", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCasePreserved", "input": "\t", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCasePreserved", "input": "\n", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCasePreserved", "input": "\r", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCasePreserved", "input": "\u001f", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCasePreserved", "input": " ", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCasePreserved", "input": "!", "output": "!", "error": null }, { "profile": "NicknameCasePreserved", "input": "~", "output": "~", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCasePreserved", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCasePreserved", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCasePreserved", "input": "\u00a0", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCasePreserved", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "NicknameCasePreserved", "input": "Kevin", "output": "Kevin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u212aevin", "output": "Kevin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u039aevin", "output": "\u039aevin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1e32evin", "output": "\u1e32evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1e34evin", "output": "\u1e34evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "K\u0301evin", "output": "\u1e30evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "K\u0301\u0301evin", "output": "\u1e30\u0301evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "K\ua717evin", "output": "K\ua717evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u24c0evin", "output": "Kevin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u2c69evin", "output": "\u2c69evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ua740evin", "output": "\ua740evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ua742evin", "output": "\ua742evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ua744evin", "output": "\ua744evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ua7a2evin", "output": "\ua7a2evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\uff2bevin", "output": "Kevin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ud83c\udd1aevin", "output": "(K)evin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ud83c\udd3aevin", "output": "Kevin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ud83c\udd5aevin", "output": "\ud83c\udd5aevin", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ud83c\udd7aevin", "output": "\ud83c\udd7aevin", "error": null }, { "profile": "NicknameCasePreserved", "input": "StPeter", "output": "StPeter", "error": null }, { "profile": "NicknameCasePreserved", "input": "Juliet", "output": "Juliet", "error": null }, { "profile": "NicknameCasePreserved", "input": "Juliet@Example.COM", "output": "Juliet@Example.COM", "error": null }, { "profile": "NicknameCasePreserved", "input": "Fussball", "output": "Fussball", "error": null }, { "profile": "NicknameCasePreserved", "input": "Fu\u00dfball", "output": "Fu\u00dfball", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03a3", "output": "\u03a3", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "NicknameCasePreserved", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "error": null }, { "profile": "NicknameCasePreserved", "input": "Foo", "output": "Foo", "error": null }, { "profile": "NicknameCasePreserved", "input": "foo", "output": "foo", "error": null }, { "profile": "NicknameCasePreserved", "input": "Foo Bar", "output": "Foo Bar", "error": null }, { "profile": "NicknameCasePreserved", "input": "foo bar", "output": "foo bar", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03a3", "output": "\u03a3", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u265a", "output": "\u265a", "error": null }, { "profile": "NicknameCasePreserved", "input": "Richard \u2163", "output": "Richard IV", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u19da", "output": "\u19da", "error": null }, { "profile": "NicknameCasePreserved", "input": "i\u0130\u0131I", "output": "i\u0130\u0131I", "error": null }, { "profile": "NicknameCasePreserved", "input": "I\u0307", "output": "\u0130", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "NicknameCasePreserved", "input": "A\ua717", "output": "A\ua717", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "NicknameCasePreserved", "input": "e\u0301\u0301\u0301", "output": "\u00e9\u0301\u0301", "error": null }, { "profile": "NicknameCasePreserved", "input": "e\u0301", "output": "\u00e9", "error": null }, { "profile": "NicknameCasePreserved", "input": "o", "output": "o", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufec9", "output": "\u0639", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufeca", "output": "\u0639", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufecb", "output": "\u0639", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufecc", "output": "\u0639", "error": null }, { "profile": "NicknameCasePreserved", "input": "\uff76", "output": "\u30ab", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u3300", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "NicknameCasePreserved", "input": "i\u2079", "output": "i9", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u00bc", "output": "1\u20444", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u01c6", "output": "d\u017e", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe37", "output": "{", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u210c", "output": "H", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u210d", "output": "H", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u037e", "output": ";", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fef", "output": "`", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u212a", "output": "K", "error": null }, { "profile": "NicknameCasePreserved", "input": "\uff01", "output": "!", "error": null }, { "profile": "NicknameCasePreserved", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": "Juliet", "error": null }, { "profile": "NicknameCasePreserved", "input": "\uff04", "output": "$", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe69", "output": "$", "error": null }, { "profile": "NicknameCasePreserved", "input": "Rs", "output": "Rs", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u20a8", "output": "Rs", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ud83c\uddfa\ud83c\uddf8", "output": "\ud83c\uddfa\ud83c\uddf8", "error": null }, { "profile": "NicknameCasePreserved", "input": "K", "output": "K", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u212a", "output": "K", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u24c0", "output": "K", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u2460", "output": "1", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03a9", "output": "\u03a9", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u2126", "output": "\u03a9", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u00c7", "output": "\u00c7", "error": null }, { "profile": "NicknameCasePreserved", "input": "C\u0327", "output": "\u00c7", "error": null }, { "profile": "NicknameCasePreserved", "input": "q\u0307\u0323", "output": "q\u0323\u0307", "error": null }, { "profile": "NicknameCasePreserved", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "NicknameCasePreserved", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1100\u1161", "output": "\uac00", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u212b", "output": "\u00c5", "error": null }, { "profile": "NicknameCasePreserved", "input": "A\u030a", "output": "\u00c5", "error": null }, { "profile": "NicknameCasePreserved", "input": "s\u0323\u0307", "output": "\u1e69", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufb01", "output": "fi", "error": null }, { "profile": "NicknameCasePreserved", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1100\u1161\u11a8", "output": "\uac01", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ud83d\udc7e", "output": "\ud83d\udc7e", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ud83d\udc9a", "output": "\ud83d\udc9a", "error": null }, { "profile": "NicknameCasePreserved", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": "Z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033d", "error": null }, { "profile": "NicknameCasePreserved", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": "Z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033dA\u0334\u0335\u031c\u0330\u0354\u036b\u0357\u0362L\u0320\u0368\u0367\u0369\u0358G\u0334\u033b\u0348\u034d\u0354\u0339\u0311\u0357\u030e\u0305\u035b\u0301\u01ea\u0335\u0339\u033b\u031d\u0333\u0342\u030c\u030c\u0358!\u0356\u032c\u0330\u0319\u0317\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035c\u035e", "error": null }, { "profile": "NicknameCasePreserved", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "Z\u0334\u0322\u032d\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u0315A\u0334\u0327\u031d\u031d\u0356\u032c\u0329\u032f\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u013b\u031b\u032c\u0316\u0330\u032b\u033c\u0329\u0356\u034a\u0314\u0307\u0352\u0352\u0309\u0362\u035fG\u0336\u031d\u031e\u033c\u031d\u034d\u033d\u0307\u0350\u0313\u030c\u0342\u0313\u0360\u035dO\u0321\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u033f\u0308\u035b\u0306\u030f\u034b\u0342", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u037e", "output": ";", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": "\u0300\u0301\u0313\u0308\u0301\u02b9;\u0915\u093c\u0916\u093c\u0917\u093c\u091c\u093c\u0921\u093c\u0922\u093c\u092b\u093c\u092f\u093c\u09a1\u09bc\u09a2\u09bc\u09af\u09bc\u0a32\u0a3c\u0a38\u0a3c\u0a16\u0a3c\u0a17\u0a3c\u0a1c\u0a3c\u0a2b\u0a3c\u0b21\u0b3c\u0b22\u0b3c\u0f42\u0fb7\u0f4c\u0fb7\u0f51\u0fb7\u0f56\u0fb7\u0f5b\u0fb7\u0f40\u0fb5\u0f71\u0f71\u0f72\u0f74\u0fb2\u0f80\u0fb3\u0f71\u0f80\u0f80\u0f92\u0fb7\u0f9c\u0fb7\u0fa1\u0fb7\u0fa6\u0fb7\u0fab\u0fb7\u0f90\u0fb5\u03ac\u03ad\u03ae\u03af\u03cc\u03cd\u03ce\u0386\u03b9\u0388\u0389\u0390\u038a\u03b0\u038e`\u038c\u038f\u03a9K\u00c5", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\u1806", "output": "\u1806", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "NicknameCasePreserved", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "NicknameCasePreserved", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCasePreserved", "input": "Juliet Capulet", "output": "Juliet Capulet", "error": null }, { "profile": "NicknameCasePreserved", "input": " Juliet", "output": "Juliet", "error": null }, { "profile": "NicknameCasePreserved", "input": "Juliet ", "output": "Juliet", "error": null }, { "profile": "NicknameCasePreserved", "input": "Juliet Capulet", "output": "Juliet Capulet", "error": null }, { "profile": "NicknameCasePreserved", "input": "\"Juliet\"", "output": "\"Juliet\"", "error": null }, { "profile": "NicknameCasePreserved", "input": "'Juliet'", "output": "'Juliet'", "error": null }, { "profile": "NicknameCasePreserved", "input": "'Juliet '", "output": "'Juliet '", "error": null }, { "profile": "NicknameCasePreserved", "input": "' Juliet'", "output": "' Juliet'", "error": null }, { "profile": "NicknameCasePreserved", "input": "'Juliet Capulet'", "output": "'Juliet Capulet'", "error": null }, { "profile": "NicknameCasePreserved", "input": "'Juliet Capulet'", "output": "'Juliet Capulet'", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "NicknameCasePreserved", "input": "\u05d0\u05d1+", "output": "\u05d0\u05d1+", "error": null }, { "profile": "NicknameCasePreserved", "input": "+\u05d0\u05d1", "output": "+\u05d0\u05d1", "error": null }, { "profile": "NicknameCasePreserved", "input": "A\u05d0\u05d1", "output": "A\u05d0\u05d1", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u05d0\u05d1A", "output": "\u05d0\u05d1A", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u05d0A\u05d1", "output": "\u05d0A\u05d1", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "NicknameCasePreserved", "input": "Juliet+", "output": "Juliet+", "error": null }, { "profile": "NicknameCasePreserved", "input": "+Juliet", "output": "+Juliet", "error": null }, { "profile": "NicknameCasePreserved", "input": "Juliet\u05d1", "output": "Juliet\u05d1", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "NicknameCasePreserved", "input": "\u00a8", "output": "\u0308", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u00af", "output": "\u0304", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u00b4", "output": "\u0301", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u00b8", "output": "\u0327", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u02d8", "output": "\u0306", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u02d9", "output": "\u0307", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u02da", "output": "\u030a", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u02db", "output": "\u0328", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u02dc", "output": "\u0303", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u02dd", "output": "\u030b", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u037a", "output": "\u0345", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0384", "output": "\u0301", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0385", "output": "\u0308\u0301", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fbd", "output": "\u0313", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fbf", "output": "\u0313", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fc0", "output": "\u0342", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fc1", "output": "\u0308\u0342", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fcd", "output": "\u0313\u0300", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fce", "output": "\u0313\u0301", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fcf", "output": "\u0313\u0342", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fdd", "output": "\u0314\u0300", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fde", "output": "\u0314\u0301", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fdf", "output": "\u0314\u0342", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fed", "output": "\u0308\u0300", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fee", "output": "\u0308\u0301", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1ffd", "output": "\u0301", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1ffe", "output": "\u0314", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u2017", "output": "\u0333", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u203e", "output": "\u0305", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u309b", "output": "\u3099", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u309c", "output": "\u309a", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufc5e", "output": "\u064c\u0651", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufc5f", "output": "\u064d\u0651", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufc60", "output": "\u064e\u0651", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufc61", "output": "\u064f\u0651", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufc62", "output": "\u0650\u0651", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufc63", "output": "\u0651\u0670", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe49", "output": "\u0305", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe4a", "output": "\u0305", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe4b", "output": "\u0305", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe4c", "output": "\u0305", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe70", "output": "\u064b", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe72", "output": "\u064c", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe74", "output": "\u064d", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe76", "output": "\u064e", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe78", "output": "\u064f", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe7a", "output": "\u0650", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe7c", "output": "\u0651", "error": null }, { "profile": "NicknameCasePreserved", "input": "\ufe7e", "output": "\u0652", "error": null }, { "profile": "NicknameCasePreserved", "input": "\uffe3", "output": "\u0304", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCasePreserved", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCasePreserved", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCasePreserved", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "NicknameCasePreserved", "input": "ruL\u00b7Lz", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCasePreserved", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCasePreserved", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCasePreserved", "input": "\u00df", "output": "\u00df", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCasePreserved", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "NicknameCasePreserved", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "NicknameCasePreserved", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "NicknameCasePreserved", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "NicknameCasePreserved", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/arabic_indic" }, { "profile": "NicknameCasePreserved", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/extended_arabic_indic" }, { "profile": "NicknameCasePreserved", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCasePreserved", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCasePreserved", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCasePreserved", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCasePreserved", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCasePreserved", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCasePreserved", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCasePreserved", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCasePreserved", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCasePreserved", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCasePreserved", "input": "\u0600", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCasePreserved", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCasePreserved", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "NicknameCasePreserved", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCasePreserved", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCasePreserved", "input": "\u03a8\u03d3\u03a7\u0397", "output": "\u03a8\u038e\u03a7\u0397", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u01f0j\u030c", "output": "\u01f0\u01f0", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1e96h\u0331", "output": "\u1e96\u1e96", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1e97t\u0308", "output": "\u1e97\u1e97", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1e98w\u030a", "output": "\u1e98\u1e98", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1e99y\u030a", "output": "\u1e99\u1e99", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u1f50", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u1f52", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u1f54", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u1f56", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u1fb6", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb7\u1fb7", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u1fc6", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc7\u1fc7", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u1fd2", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fd3\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u1fd6", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u1fd7", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u1fe2", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fe3\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u1fe4", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u1fe6", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u1fe7", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u1ff6", "error": null }, { "profile": "NicknameCasePreserved", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff7\u1ff7", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:ToLower", "input": "#", "output": "#", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\\", "output": "\\", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\t", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\n", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\r", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u001f", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:ToLower", "input": " ", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:ToLower", "input": "!", "output": "!", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "~", "output": "~", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00a0", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Kevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u212aevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u039aevin", "output": "\u03baevin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1e32evin", "output": "\u1e33evin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1e34evin", "output": "\u1e35evin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "K\u0301evin", "output": "\u1e31evin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "K\u0301\u0301evin", "output": "\u1e31\u0301evin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "K\ua717evin", "output": "k\ua717evin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u24c0evin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u2c69evin", "output": "\u2c6aevin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ua740evin", "output": "\ua741evin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ua742evin", "output": "\ua743evin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ua744evin", "output": "\ua745evin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ua7a2evin", "output": "\ua7a3evin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\uff2bevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ud83c\udd1aevin", "output": "(k)evin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ud83c\udd3aevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ud83c\udd5aevin", "output": "\ud83c\udd5aevin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ud83c\udd7aevin", "output": "\ud83c\udd7aevin", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "StPeter", "output": "stpeter", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Juliet", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Juliet@Example.COM", "output": "juliet@example.com", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Fussball", "output": "fussball", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Fu\u00dfball", "output": "fu\u00dfball", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\uabaa\uab72\uab85\uab7c\uab72\uab7c\uaba2", "error": null, "unicode_version": 8.0 }, { "profile": "NicknameCaseMapped:ToLower", "input": "Foo", "output": "foo", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "foo", "output": "foo", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Foo Bar", "output": "foo bar", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "foo bar", "output": "foo bar", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u265a", "output": "\u265a", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Richard \u2163", "output": "richard iv", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u19da", "output": "\u19da", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "i\u0130\u0131I", "output": "ii\u0307\u0131i", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "I\u0307", "output": "i\u0307", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "A\ua717", "output": "a\ua717", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "e\u0301\u0301\u0301", "output": "\u00e9\u0301\u0301", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "e\u0301", "output": "\u00e9", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "o", "output": "o", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufec9", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufeca", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufecb", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufecc", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\uff76", "output": "\u30ab", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u3300", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "i\u2079", "output": "i9", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00bc", "output": "1\u20444", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u01c6", "output": "d\u017e", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe37", "output": "{", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u210c", "output": "h", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u210d", "output": "h", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u037e", "output": ";", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fef", "output": "`", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u212a", "output": "k", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\uff01", "output": "!", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\uff04", "output": "$", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe69", "output": "$", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Rs", "output": "rs", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u20a8", "output": "rs", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ud83c\uddfa\ud83c\uddf8", "output": "\ud83c\uddfa\ud83c\uddf8", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "K", "output": "k", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u212a", "output": "k", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u24c0", "output": "k", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u2460", "output": "1", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03a9", "output": "\u03c9", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u2126", "output": "\u03c9", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00c7", "output": "\u00e7", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "C\u0327", "output": "\u00e7", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "q\u0307\u0323", "output": "q\u0323\u0307", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1100\u1161", "output": "\uac00", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u212b", "output": "\u00e5", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "A\u030a", "output": "\u00e5", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "s\u0323\u0307", "output": "\u1e69", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufb01", "output": "fi", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1100\u1161\u11a8", "output": "\uac01", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ud83d\udc7e", "output": "\ud83d\udc7e", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ud83d\udc9a", "output": "\ud83d\udc9a", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033d", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033da\u0334\u0335\u031c\u0330\u0354\u036b\u0357\u0362l\u0320\u0368\u0367\u0369\u0358g\u0334\u033b\u0348\u034d\u0354\u0339\u0311\u0357\u030e\u0305\u035b\u0301\u01eb\u0335\u0339\u033b\u031d\u0333\u0342\u030c\u030c\u0358!\u0356\u032c\u0330\u0319\u0317\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035c\u035e", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "z\u0334\u0322\u032d\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u0315a\u0334\u0327\u031d\u031d\u0356\u032c\u0329\u032f\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u013c\u031b\u032c\u0316\u0330\u032b\u033c\u0329\u0356\u034a\u0314\u0307\u0352\u0352\u0309\u0362\u035fg\u0336\u031d\u031e\u033c\u031d\u034d\u033d\u0307\u0350\u0313\u030c\u0342\u0313\u0360\u035do\u0321\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u033f\u0308\u035b\u0306\u030f\u034b\u0342", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u037e", "output": ";", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": "\u0300\u0301\u0313\u0308\u0301\u02b9;\u0915\u093c\u0916\u093c\u0917\u093c\u091c\u093c\u0921\u093c\u0922\u093c\u092b\u093c\u092f\u093c\u09a1\u09bc\u09a2\u09bc\u09af\u09bc\u0a32\u0a3c\u0a38\u0a3c\u0a16\u0a3c\u0a17\u0a3c\u0a1c\u0a3c\u0a2b\u0a3c\u0b21\u0b3c\u0b22\u0b3c\u0f42\u0fb7\u0f4c\u0fb7\u0f51\u0fb7\u0f56\u0fb7\u0f5b\u0fb7\u0f40\u0fb5\u0f71\u0f71\u0f72\u0f74\u0fb2\u0f80\u0fb3\u0f71\u0f80\u0f80\u0f92\u0fb7\u0f9c\u0fb7\u0fa1\u0fb7\u0fa6\u0fb7\u0fab\u0fb7\u0f90\u0fb5\u03ac\u03ad\u03ae\u03af\u03cc\u03cd\u03ce\u03ac\u03b9\u03ad\u03ae\u0390\u03af\u03b0\u03cd`\u03cc\u03ce\u03c9k\u00e5", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1806", "output": "\u1806", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:ToLower", "input": "Juliet Capulet", "output": "juliet capulet", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": " Juliet", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Juliet ", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Juliet Capulet", "output": "juliet capulet", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\"Juliet\"", "output": "\"juliet\"", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "'Juliet'", "output": "'juliet'", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "'Juliet '", "output": "'juliet '", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "' Juliet'", "output": "' juliet'", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "'Juliet Capulet'", "output": "'juliet capulet'", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "'Juliet Capulet'", "output": "'juliet capulet'", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u05d0\u05d1+", "output": "\u05d0\u05d1+", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "+\u05d0\u05d1", "output": "+\u05d0\u05d1", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "A\u05d0\u05d1", "output": "a\u05d0\u05d1", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u05d0\u05d1A", "output": "\u05d0\u05d1a", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u05d0A\u05d1", "output": "\u05d0a\u05d1", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Juliet+", "output": "juliet+", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "+Juliet", "output": "+juliet", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "Juliet\u05d1", "output": "juliet\u05d1", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00a8", "output": "\u0308", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00af", "output": "\u0304", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00b4", "output": "\u0301", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00b8", "output": "\u0327", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u02d8", "output": "\u0306", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u02d9", "output": "\u0307", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u02da", "output": "\u030a", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u02db", "output": "\u0328", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u02dc", "output": "\u0303", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u02dd", "output": "\u030b", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u037a", "output": "\u0345", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0384", "output": "\u0301", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0385", "output": "\u0308\u0301", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fbd", "output": "\u0313", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fbf", "output": "\u0313", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fc0", "output": "\u0342", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fc1", "output": "\u0308\u0342", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fcd", "output": "\u0313\u0300", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fce", "output": "\u0313\u0301", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fcf", "output": "\u0313\u0342", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fdd", "output": "\u0314\u0300", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fde", "output": "\u0314\u0301", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fdf", "output": "\u0314\u0342", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fed", "output": "\u0308\u0300", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fee", "output": "\u0308\u0301", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1ffd", "output": "\u0301", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1ffe", "output": "\u0314", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u2017", "output": "\u0333", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u203e", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u309b", "output": "\u3099", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u309c", "output": "\u309a", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufc5e", "output": "\u064c\u0651", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufc5f", "output": "\u064d\u0651", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufc60", "output": "\u064e\u0651", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufc61", "output": "\u064f\u0651", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufc62", "output": "\u0650\u0651", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufc63", "output": "\u0651\u0670", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe49", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe4a", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe4b", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe4c", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe70", "output": "\u064b", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe72", "output": "\u064c", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe74", "output": "\u064d", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe76", "output": "\u064e", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe78", "output": "\u064f", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe7a", "output": "\u0650", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe7c", "output": "\u0651", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ufe7e", "output": "\u0652", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\uffe3", "output": "\u0304", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:ToLower", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:ToLower", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "ruL\u00b7Lz", "output": "rul\u00b7lz", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:ToLower", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00df", "output": "\u00df", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/arabic_indic" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/extended_arabic_indic" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0600", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03a8\u03d3\u03a7\u0397", "output": "\u03c8\u03cd\u03c7\u03b7", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u01f0j\u030c", "output": "\u01f0\u01f0", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1e96h\u0331", "output": "\u1e96\u1e96", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1e97t\u0308", "output": "\u1e97\u1e97", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1e98w\u030a", "output": "\u1e98\u1e98", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1e99y\u030a", "output": "\u1e99\u1e99", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u1f50", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u1f52", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u1f54", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u1f56", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u1fb6", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb7\u1fb7", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u1fc6", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc7\u1fc7", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u1fd2", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fd3\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u1fd6", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u1fd7", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u1fe2", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fe3\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u1fe4", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u1fe6", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u1fe7", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u1ff6", "error": null }, { "profile": "NicknameCaseMapped:ToLower", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff7\u1ff7", "error": null }, { "profile": "FreeFormClass", "input": "", "output": "", "error": null }, { "profile": "FreeFormClass", "input": "#", "output": "#", "error": null }, { "profile": "FreeFormClass", "input": "\\", "output": "\\", "error": null }, { "profile": "FreeFormClass", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "FreeFormClass", "input": "\t", "output": null, "error": "DISALLOWED/controls" }, { "profile": "FreeFormClass", "input": "\n", "output": null, "error": "DISALLOWED/controls" }, { "profile": "FreeFormClass", "input": "\r", "output": null, "error": "DISALLOWED/controls" }, { "profile": "FreeFormClass", "input": "\u001f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "FreeFormClass", "input": " ", "output": " ", "error": null }, { "profile": "FreeFormClass", "input": "!", "output": "!", "error": null }, { "profile": "FreeFormClass", "input": "~", "output": "~", "error": null }, { "profile": "FreeFormClass", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "FreeFormClass", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "FreeFormClass", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "FreeFormClass", "input": "\u00a0", "output": "\u00a0", "error": null }, { "profile": "FreeFormClass", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "FreeFormClass", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "FreeFormClass", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "FreeFormClass", "input": "Kevin", "output": "Kevin", "error": null }, { "profile": "FreeFormClass", "input": "\u212aevin", "output": "\u212aevin", "error": null }, { "profile": "FreeFormClass", "input": "\u039aevin", "output": "\u039aevin", "error": null }, { "profile": "FreeFormClass", "input": "\u1e32evin", "output": "\u1e32evin", "error": null }, { "profile": "FreeFormClass", "input": "\u1e34evin", "output": "\u1e34evin", "error": null }, { "profile": "FreeFormClass", "input": "K\u0301evin", "output": "K\u0301evin", "error": null }, { "profile": "FreeFormClass", "input": "K\u0301\u0301evin", "output": "K\u0301\u0301evin", "error": null }, { "profile": "FreeFormClass", "input": "K\ua717evin", "output": "K\ua717evin", "error": null }, { "profile": "FreeFormClass", "input": "\u24c0evin", "output": "\u24c0evin", "error": null }, { "profile": "FreeFormClass", "input": "\u2c69evin", "output": "\u2c69evin", "error": null }, { "profile": "FreeFormClass", "input": "\ua740evin", "output": "\ua740evin", "error": null }, { "profile": "FreeFormClass", "input": "\ua742evin", "output": "\ua742evin", "error": null }, { "profile": "FreeFormClass", "input": "\ua744evin", "output": "\ua744evin", "error": null }, { "profile": "FreeFormClass", "input": "\ua7a2evin", "output": "\ua7a2evin", "error": null }, { "profile": "FreeFormClass", "input": "\uff2bevin", "output": "\uff2bevin", "error": null }, { "profile": "FreeFormClass", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ud83c\udd1aevin", "output": "\ud83c\udd1aevin", "error": null }, { "profile": "FreeFormClass", "input": "\ud83c\udd3aevin", "output": "\ud83c\udd3aevin", "error": null }, { "profile": "FreeFormClass", "input": "\ud83c\udd5aevin", "output": "\ud83c\udd5aevin", "error": null }, { "profile": "FreeFormClass", "input": "\ud83c\udd7aevin", "output": "\ud83c\udd7aevin", "error": null }, { "profile": "FreeFormClass", "input": "StPeter", "output": "StPeter", "error": null }, { "profile": "FreeFormClass", "input": "Juliet", "output": "Juliet", "error": null }, { "profile": "FreeFormClass", "input": "Juliet@Example.COM", "output": "Juliet@Example.COM", "error": null }, { "profile": "FreeFormClass", "input": "Fussball", "output": "Fussball", "error": null }, { "profile": "FreeFormClass", "input": "Fu\u00dfball", "output": "Fu\u00dfball", "error": null }, { "profile": "FreeFormClass", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "FreeFormClass", "input": "\u03a3", "output": "\u03a3", "error": null }, { "profile": "FreeFormClass", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "FreeFormClass", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "FreeFormClass", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "FreeFormClass", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "error": null }, { "profile": "FreeFormClass", "input": "Foo", "output": "Foo", "error": null }, { "profile": "FreeFormClass", "input": "foo", "output": "foo", "error": null }, { "profile": "FreeFormClass", "input": "Foo Bar", "output": "Foo Bar", "error": null }, { "profile": "FreeFormClass", "input": "foo bar", "output": "foo bar", "error": null }, { "profile": "FreeFormClass", "input": "\u03a3", "output": "\u03a3", "error": null }, { "profile": "FreeFormClass", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "FreeFormClass", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "FreeFormClass", "input": "\u265a", "output": "\u265a", "error": null }, { "profile": "FreeFormClass", "input": "Richard \u2163", "output": "Richard \u2163", "error": null }, { "profile": "FreeFormClass", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "FreeFormClass", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "FreeFormClass", "input": "\u19da", "output": "\u19da", "error": null }, { "profile": "FreeFormClass", "input": "i\u0130\u0131I", "output": "i\u0130\u0131I", "error": null }, { "profile": "FreeFormClass", "input": "I\u0307", "output": "I\u0307", "error": null }, { "profile": "FreeFormClass", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "FreeFormClass", "input": "A\ua717", "output": "A\ua717", "error": null }, { "profile": "FreeFormClass", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "FreeFormClass", "input": "e\u0301\u0301\u0301", "output": "e\u0301\u0301\u0301", "error": null }, { "profile": "FreeFormClass", "input": "e\u0301", "output": "e\u0301", "error": null }, { "profile": "FreeFormClass", "input": "o", "output": "o", "error": null }, { "profile": "FreeFormClass", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "FreeFormClass", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "FreeFormClass", "input": "\ufec9", "output": "\ufec9", "error": null }, { "profile": "FreeFormClass", "input": "\ufeca", "output": "\ufeca", "error": null }, { "profile": "FreeFormClass", "input": "\ufecb", "output": "\ufecb", "error": null }, { "profile": "FreeFormClass", "input": "\ufecc", "output": "\ufecc", "error": null }, { "profile": "FreeFormClass", "input": "\uff76", "output": "\uff76", "error": null }, { "profile": "FreeFormClass", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "FreeFormClass", "input": "\u3300", "output": "\u3300", "error": null }, { "profile": "FreeFormClass", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "FreeFormClass", "input": "i\u2079", "output": "i\u2079", "error": null }, { "profile": "FreeFormClass", "input": "\u00bc", "output": "\u00bc", "error": null }, { "profile": "FreeFormClass", "input": "\u01c6", "output": "\u01c6", "error": null }, { "profile": "FreeFormClass", "input": "\ufe37", "output": "\ufe37", "error": null }, { "profile": "FreeFormClass", "input": "\u210c", "output": "\u210c", "error": null }, { "profile": "FreeFormClass", "input": "\u210d", "output": "\u210d", "error": null }, { "profile": "FreeFormClass", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "FreeFormClass", "input": "\u037e", "output": "\u037e", "error": null }, { "profile": "FreeFormClass", "input": "\u1fef", "output": "\u1fef", "error": null }, { "profile": "FreeFormClass", "input": "\u212a", "output": "\u212a", "error": null }, { "profile": "FreeFormClass", "input": "\uff01", "output": "\uff01", "error": null }, { "profile": "FreeFormClass", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "error": null }, { "profile": "FreeFormClass", "input": "\uff04", "output": "\uff04", "error": null }, { "profile": "FreeFormClass", "input": "\ufe69", "output": "\ufe69", "error": null }, { "profile": "FreeFormClass", "input": "Rs", "output": "Rs", "error": null }, { "profile": "FreeFormClass", "input": "\u20a8", "output": "\u20a8", "error": null }, { "profile": "FreeFormClass", "input": "\ud83c\uddfa\ud83c\uddf8", "output": "\ud83c\uddfa\ud83c\uddf8", "error": null }, { "profile": "FreeFormClass", "input": "K", "output": "K", "error": null }, { "profile": "FreeFormClass", "input": "\u212a", "output": "\u212a", "error": null }, { "profile": "FreeFormClass", "input": "\u24c0", "output": "\u24c0", "error": null }, { "profile": "FreeFormClass", "input": "\u2460", "output": "\u2460", "error": null }, { "profile": "FreeFormClass", "input": "\u03a9", "output": "\u03a9", "error": null }, { "profile": "FreeFormClass", "input": "\u2126", "output": "\u2126", "error": null }, { "profile": "FreeFormClass", "input": "\u00c7", "output": "\u00c7", "error": null }, { "profile": "FreeFormClass", "input": "C\u0327", "output": "C\u0327", "error": null }, { "profile": "FreeFormClass", "input": "q\u0307\u0323", "output": "q\u0307\u0323", "error": null }, { "profile": "FreeFormClass", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "FreeFormClass", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "FreeFormClass", "input": "\u1100\u1161", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "FreeFormClass", "input": "\u212b", "output": "\u212b", "error": null }, { "profile": "FreeFormClass", "input": "A\u030a", "output": "A\u030a", "error": null }, { "profile": "FreeFormClass", "input": "s\u0323\u0307", "output": "s\u0323\u0307", "error": null }, { "profile": "FreeFormClass", "input": "\ufb01", "output": "\ufb01", "error": null }, { "profile": "FreeFormClass", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "FreeFormClass", "input": "\u1100\u1161\u11a8", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "FreeFormClass", "input": "\ud83d\udc7e", "output": "\ud83d\udc7e", "error": null }, { "profile": "FreeFormClass", "input": "\ud83d\udc9a", "output": "\ud83d\udc9a", "error": null }, { "profile": "FreeFormClass", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "error": null }, { "profile": "FreeFormClass", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "error": null }, { "profile": "FreeFormClass", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "error": null }, { "profile": "FreeFormClass", "input": "\u037e", "output": "\u037e", "error": null }, { "profile": "FreeFormClass", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "error": null }, { "profile": "FreeFormClass", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\u1806", "output": "\u1806", "error": null }, { "profile": "FreeFormClass", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "FreeFormClass", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "FreeFormClass", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "FreeFormClass", "input": "Juliet Capulet", "output": "Juliet Capulet", "error": null }, { "profile": "FreeFormClass", "input": " Juliet", "output": " Juliet", "error": null }, { "profile": "FreeFormClass", "input": "Juliet ", "output": "Juliet ", "error": null }, { "profile": "FreeFormClass", "input": "Juliet Capulet", "output": "Juliet Capulet", "error": null }, { "profile": "FreeFormClass", "input": "\"Juliet\"", "output": "\"Juliet\"", "error": null }, { "profile": "FreeFormClass", "input": "'Juliet'", "output": "'Juliet'", "error": null }, { "profile": "FreeFormClass", "input": "'Juliet '", "output": "'Juliet '", "error": null }, { "profile": "FreeFormClass", "input": "' Juliet'", "output": "' Juliet'", "error": null }, { "profile": "FreeFormClass", "input": "'Juliet Capulet'", "output": "'Juliet Capulet'", "error": null }, { "profile": "FreeFormClass", "input": "'Juliet Capulet'", "output": "'Juliet Capulet'", "error": null }, { "profile": "FreeFormClass", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "FreeFormClass", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "FreeFormClass", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "FreeFormClass", "input": "\u05d0\u05d1+", "output": "\u05d0\u05d1+", "error": null }, { "profile": "FreeFormClass", "input": "+\u05d0\u05d1", "output": "+\u05d0\u05d1", "error": null }, { "profile": "FreeFormClass", "input": "A\u05d0\u05d1", "output": "A\u05d0\u05d1", "error": null }, { "profile": "FreeFormClass", "input": "\u05d0\u05d1A", "output": "\u05d0\u05d1A", "error": null }, { "profile": "FreeFormClass", "input": "\u05d0A\u05d1", "output": "\u05d0A\u05d1", "error": null }, { "profile": "FreeFormClass", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "FreeFormClass", "input": "Juliet+", "output": "Juliet+", "error": null }, { "profile": "FreeFormClass", "input": "+Juliet", "output": "+Juliet", "error": null }, { "profile": "FreeFormClass", "input": "Juliet\u05d1", "output": "Juliet\u05d1", "error": null }, { "profile": "FreeFormClass", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "FreeFormClass", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "FreeFormClass", "input": "\u00a8", "output": "\u00a8", "error": null }, { "profile": "FreeFormClass", "input": "\u00af", "output": "\u00af", "error": null }, { "profile": "FreeFormClass", "input": "\u00b4", "output": "\u00b4", "error": null }, { "profile": "FreeFormClass", "input": "\u00b8", "output": "\u00b8", "error": null }, { "profile": "FreeFormClass", "input": "\u02d8", "output": "\u02d8", "error": null }, { "profile": "FreeFormClass", "input": "\u02d9", "output": "\u02d9", "error": null }, { "profile": "FreeFormClass", "input": "\u02da", "output": "\u02da", "error": null }, { "profile": "FreeFormClass", "input": "\u02db", "output": "\u02db", "error": null }, { "profile": "FreeFormClass", "input": "\u02dc", "output": "\u02dc", "error": null }, { "profile": "FreeFormClass", "input": "\u02dd", "output": "\u02dd", "error": null }, { "profile": "FreeFormClass", "input": "\u037a", "output": "\u037a", "error": null }, { "profile": "FreeFormClass", "input": "\u0384", "output": "\u0384", "error": null }, { "profile": "FreeFormClass", "input": "\u0385", "output": "\u0385", "error": null }, { "profile": "FreeFormClass", "input": "\u1fbd", "output": "\u1fbd", "error": null }, { "profile": "FreeFormClass", "input": "\u1fbf", "output": "\u1fbf", "error": null }, { "profile": "FreeFormClass", "input": "\u1fc0", "output": "\u1fc0", "error": null }, { "profile": "FreeFormClass", "input": "\u1fc1", "output": "\u1fc1", "error": null }, { "profile": "FreeFormClass", "input": "\u1fcd", "output": "\u1fcd", "error": null }, { "profile": "FreeFormClass", "input": "\u1fce", "output": "\u1fce", "error": null }, { "profile": "FreeFormClass", "input": "\u1fcf", "output": "\u1fcf", "error": null }, { "profile": "FreeFormClass", "input": "\u1fdd", "output": "\u1fdd", "error": null }, { "profile": "FreeFormClass", "input": "\u1fde", "output": "\u1fde", "error": null }, { "profile": "FreeFormClass", "input": "\u1fdf", "output": "\u1fdf", "error": null }, { "profile": "FreeFormClass", "input": "\u1fed", "output": "\u1fed", "error": null }, { "profile": "FreeFormClass", "input": "\u1fee", "output": "\u1fee", "error": null }, { "profile": "FreeFormClass", "input": "\u1ffd", "output": "\u1ffd", "error": null }, { "profile": "FreeFormClass", "input": "\u1ffe", "output": "\u1ffe", "error": null }, { "profile": "FreeFormClass", "input": "\u2017", "output": "\u2017", "error": null }, { "profile": "FreeFormClass", "input": "\u203e", "output": "\u203e", "error": null }, { "profile": "FreeFormClass", "input": "\u309b", "output": "\u309b", "error": null }, { "profile": "FreeFormClass", "input": "\u309c", "output": "\u309c", "error": null }, { "profile": "FreeFormClass", "input": "\ufc5e", "output": "\ufc5e", "error": null }, { "profile": "FreeFormClass", "input": "\ufc5f", "output": "\ufc5f", "error": null }, { "profile": "FreeFormClass", "input": "\ufc60", "output": "\ufc60", "error": null }, { "profile": "FreeFormClass", "input": "\ufc61", "output": "\ufc61", "error": null }, { "profile": "FreeFormClass", "input": "\ufc62", "output": "\ufc62", "error": null }, { "profile": "FreeFormClass", "input": "\ufc63", "output": "\ufc63", "error": null }, { "profile": "FreeFormClass", "input": "\ufe49", "output": "\ufe49", "error": null }, { "profile": "FreeFormClass", "input": "\ufe4a", "output": "\ufe4a", "error": null }, { "profile": "FreeFormClass", "input": "\ufe4b", "output": "\ufe4b", "error": null }, { "profile": "FreeFormClass", "input": "\ufe4c", "output": "\ufe4c", "error": null }, { "profile": "FreeFormClass", "input": "\ufe70", "output": "\ufe70", "error": null }, { "profile": "FreeFormClass", "input": "\ufe72", "output": "\ufe72", "error": null }, { "profile": "FreeFormClass", "input": "\ufe74", "output": "\ufe74", "error": null }, { "profile": "FreeFormClass", "input": "\ufe76", "output": "\ufe76", "error": null }, { "profile": "FreeFormClass", "input": "\ufe78", "output": "\ufe78", "error": null }, { "profile": "FreeFormClass", "input": "\ufe7a", "output": "\ufe7a", "error": null }, { "profile": "FreeFormClass", "input": "\ufe7c", "output": "\ufe7c", "error": null }, { "profile": "FreeFormClass", "input": "\ufe7e", "output": "\ufe7e", "error": null }, { "profile": "FreeFormClass", "input": "\uffe3", "output": "\uffe3", "error": null }, { "profile": "FreeFormClass", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "FreeFormClass", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "FreeFormClass", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "FreeFormClass", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "FreeFormClass", "input": "ruL\u00b7Lz", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "FreeFormClass", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "FreeFormClass", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "FreeFormClass", "input": "\u00df", "output": "\u00df", "error": null }, { "profile": "FreeFormClass", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "FreeFormClass", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "FreeFormClass", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "FreeFormClass", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "FreeFormClass", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "FreeFormClass", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "FreeFormClass", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "FreeFormClass", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "FreeFormClass", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "FreeFormClass", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "FreeFormClass", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "FreeFormClass", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "FreeFormClass", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "FreeFormClass", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "FreeFormClass", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/arabic_indic" }, { "profile": "FreeFormClass", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/extended_arabic_indic" }, { "profile": "FreeFormClass", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "FreeFormClass", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "FreeFormClass", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "FreeFormClass", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "FreeFormClass", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "FreeFormClass", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "FreeFormClass", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "FreeFormClass", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "FreeFormClass", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "FreeFormClass", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "FreeFormClass", "input": "\u0600", "output": null, "error": "DISALLOWED/other" }, { "profile": "FreeFormClass", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "FreeFormClass", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "FreeFormClass", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "FreeFormClass", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "FreeFormClass", "input": "\u03a8\u03d3\u03a7\u0397", "output": "\u03a8\u03d3\u03a7\u0397", "error": null }, { "profile": "FreeFormClass", "input": "\u01f0j\u030c", "output": "\u01f0j\u030c", "error": null }, { "profile": "FreeFormClass", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u03b9\u0308\u0301", "error": null }, { "profile": "FreeFormClass", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03c5\u0308\u0301", "error": null }, { "profile": "FreeFormClass", "input": "\u1e96h\u0331", "output": "\u1e96h\u0331", "error": null }, { "profile": "FreeFormClass", "input": "\u1e97t\u0308", "output": "\u1e97t\u0308", "error": null }, { "profile": "FreeFormClass", "input": "\u1e98w\u030a", "output": "\u1e98w\u030a", "error": null }, { "profile": "FreeFormClass", "input": "\u1e99y\u030a", "output": "\u1e99y\u030a", "error": null }, { "profile": "FreeFormClass", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u03c5\u0313", "error": null }, { "profile": "FreeFormClass", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u03c5\u0313\u0300", "error": null }, { "profile": "FreeFormClass", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u03c5\u0313\u0301", "error": null }, { "profile": "FreeFormClass", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u03c5\u0313\u0342", "error": null }, { "profile": "FreeFormClass", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u03b1\u0342", "error": null }, { "profile": "FreeFormClass", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb7\u03b1\u0342\u0345", "error": null }, { "profile": "FreeFormClass", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u03b7\u0342", "error": null }, { "profile": "FreeFormClass", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc7\u03b7\u0342\u0345", "error": null }, { "profile": "FreeFormClass", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u03b9\u0308\u0300", "error": null }, { "profile": "FreeFormClass", "input": "\u1fd3\u03b9\u0308\u0301", "output": "\u1fd3\u03b9\u0308\u0301", "error": null }, { "profile": "FreeFormClass", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u03b9\u0342", "error": null }, { "profile": "FreeFormClass", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u03b9\u0308\u0342", "error": null }, { "profile": "FreeFormClass", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u03c5\u0308\u0300", "error": null }, { "profile": "FreeFormClass", "input": "\u1fe3\u03c5\u0308\u0301", "output": "\u1fe3\u03c5\u0308\u0301", "error": null }, { "profile": "FreeFormClass", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u03c1\u0313", "error": null }, { "profile": "FreeFormClass", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u03c5\u0342", "error": null }, { "profile": "FreeFormClass", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u03c5\u0308\u0342", "error": null }, { "profile": "FreeFormClass", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u03c9\u0342", "error": null }, { "profile": "FreeFormClass", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff7\u03c9\u0342\u0345", "error": null }, { "profile": "IdentifierClass", "input": "", "output": "", "error": null }, { "profile": "IdentifierClass", "input": "#", "output": "#", "error": null }, { "profile": "IdentifierClass", "input": "\\", "output": "\\", "error": null }, { "profile": "IdentifierClass", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "IdentifierClass", "input": "\t", "output": null, "error": "DISALLOWED/controls" }, { "profile": "IdentifierClass", "input": "\n", "output": null, "error": "DISALLOWED/controls" }, { "profile": "IdentifierClass", "input": "\r", "output": null, "error": "DISALLOWED/controls" }, { "profile": "IdentifierClass", "input": "\u001f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "IdentifierClass", "input": " ", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "!", "output": "!", "error": null }, { "profile": "IdentifierClass", "input": "~", "output": "~", "error": null }, { "profile": "IdentifierClass", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "IdentifierClass", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "IdentifierClass", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "IdentifierClass", "input": "\u00a0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "IdentifierClass", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "IdentifierClass", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "IdentifierClass", "input": "Kevin", "output": "Kevin", "error": null }, { "profile": "IdentifierClass", "input": "\u212aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u039aevin", "output": "\u039aevin", "error": null }, { "profile": "IdentifierClass", "input": "\u1e32evin", "output": "\u1e32evin", "error": null }, { "profile": "IdentifierClass", "input": "\u1e34evin", "output": "\u1e34evin", "error": null }, { "profile": "IdentifierClass", "input": "K\u0301evin", "output": "K\u0301evin", "error": null }, { "profile": "IdentifierClass", "input": "K\u0301\u0301evin", "output": "K\u0301\u0301evin", "error": null }, { "profile": "IdentifierClass", "input": "K\ua717evin", "output": "K\ua717evin", "error": null }, { "profile": "IdentifierClass", "input": "\u24c0evin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u2c69evin", "output": "\u2c69evin", "error": null }, { "profile": "IdentifierClass", "input": "\ua740evin", "output": "\ua740evin", "error": null }, { "profile": "IdentifierClass", "input": "\ua742evin", "output": "\ua742evin", "error": null }, { "profile": "IdentifierClass", "input": "\ua744evin", "output": "\ua744evin", "error": null }, { "profile": "IdentifierClass", "input": "\ua7a2evin", "output": "\ua7a2evin", "error": null }, { "profile": "IdentifierClass", "input": "\uff2bevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ud83c\udd1aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ud83c\udd3aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ud83c\udd5aevin", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "IdentifierClass", "input": "\ud83c\udd7aevin", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "IdentifierClass", "input": "StPeter", "output": "StPeter", "error": null }, { "profile": "IdentifierClass", "input": "Juliet", "output": "Juliet", "error": null }, { "profile": "IdentifierClass", "input": "Juliet@Example.COM", "output": "Juliet@Example.COM", "error": null }, { "profile": "IdentifierClass", "input": "Fussball", "output": "Fussball", "error": null }, { "profile": "IdentifierClass", "input": "Fu\u00dfball", "output": "Fu\u00dfball", "error": null }, { "profile": "IdentifierClass", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "IdentifierClass", "input": "\u03a3", "output": "\u03a3", "error": null }, { "profile": "IdentifierClass", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "IdentifierClass", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "IdentifierClass", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "IdentifierClass", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "error": null }, { "profile": "IdentifierClass", "input": "Foo", "output": "Foo", "error": null }, { "profile": "IdentifierClass", "input": "foo", "output": "foo", "error": null }, { "profile": "IdentifierClass", "input": "Foo Bar", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "foo bar", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "\u03a3", "output": "\u03a3", "error": null }, { "profile": "IdentifierClass", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "IdentifierClass", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "IdentifierClass", "input": "\u265a", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "IdentifierClass", "input": "Richard \u2163", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "IdentifierClass", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "IdentifierClass", "input": "\u19da", "output": null, "error": "DISALLOWED/other_letter_digits" }, { "profile": "IdentifierClass", "input": "i\u0130\u0131I", "output": "i\u0130\u0131I", "error": null }, { "profile": "IdentifierClass", "input": "I\u0307", "output": "I\u0307", "error": null }, { "profile": "IdentifierClass", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "IdentifierClass", "input": "A\ua717", "output": "A\ua717", "error": null }, { "profile": "IdentifierClass", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "IdentifierClass", "input": "e\u0301\u0301\u0301", "output": "e\u0301\u0301\u0301", "error": null }, { "profile": "IdentifierClass", "input": "e\u0301", "output": "e\u0301", "error": null }, { "profile": "IdentifierClass", "input": "o", "output": "o", "error": null }, { "profile": "IdentifierClass", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "IdentifierClass", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "IdentifierClass", "input": "\ufec9", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufeca", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufecb", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufecc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\uff76", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "IdentifierClass", "input": "\u3300", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "IdentifierClass", "input": "i\u2079", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u00bc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u01c6", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe37", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u210c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u210d", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "IdentifierClass", "input": "\u037e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fef", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u212a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\uff01", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\uff04", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe69", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "Rs", "output": "Rs", "error": null }, { "profile": "IdentifierClass", "input": "\u20a8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ud83c\uddfa\ud83c\uddf8", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "IdentifierClass", "input": "K", "output": "K", "error": null }, { "profile": "IdentifierClass", "input": "\u212a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u24c0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u2460", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u03a9", "output": "\u03a9", "error": null }, { "profile": "IdentifierClass", "input": "\u2126", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u00c7", "output": "\u00c7", "error": null }, { "profile": "IdentifierClass", "input": "C\u0327", "output": "C\u0327", "error": null }, { "profile": "IdentifierClass", "input": "q\u0307\u0323", "output": "q\u0307\u0323", "error": null }, { "profile": "IdentifierClass", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "IdentifierClass", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "IdentifierClass", "input": "\u1100\u1161", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "IdentifierClass", "input": "\u212b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "A\u030a", "output": "A\u030a", "error": null }, { "profile": "IdentifierClass", "input": "s\u0323\u0307", "output": "s\u0323\u0307", "error": null }, { "profile": "IdentifierClass", "input": "\ufb01", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "IdentifierClass", "input": "\u1100\u1161\u11a8", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "IdentifierClass", "input": "\ud83d\udc7e", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "IdentifierClass", "input": "\ud83d\udc9a", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "IdentifierClass", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "error": null }, { "profile": "IdentifierClass", "input": "\u037e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\u1806", "output": null, "error": "DISALLOWED/punctuation" }, { "profile": "IdentifierClass", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "IdentifierClass", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "IdentifierClass", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "IdentifierClass", "input": "Juliet Capulet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": " Juliet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "Juliet ", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "Juliet Capulet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "\"Juliet\"", "output": "\"Juliet\"", "error": null }, { "profile": "IdentifierClass", "input": "'Juliet'", "output": "'Juliet'", "error": null }, { "profile": "IdentifierClass", "input": "'Juliet '", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "' Juliet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "'Juliet Capulet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "'Juliet Capulet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "IdentifierClass", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "IdentifierClass", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "IdentifierClass", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "IdentifierClass", "input": "\u05d0\u05d1+", "output": "\u05d0\u05d1+", "error": null }, { "profile": "IdentifierClass", "input": "+\u05d0\u05d1", "output": "+\u05d0\u05d1", "error": null }, { "profile": "IdentifierClass", "input": "A\u05d0\u05d1", "output": "A\u05d0\u05d1", "error": null }, { "profile": "IdentifierClass", "input": "\u05d0\u05d1A", "output": "\u05d0\u05d1A", "error": null }, { "profile": "IdentifierClass", "input": "\u05d0A\u05d1", "output": "\u05d0A\u05d1", "error": null }, { "profile": "IdentifierClass", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "IdentifierClass", "input": "Juliet+", "output": "Juliet+", "error": null }, { "profile": "IdentifierClass", "input": "+Juliet", "output": "+Juliet", "error": null }, { "profile": "IdentifierClass", "input": "Juliet\u05d1", "output": "Juliet\u05d1", "error": null }, { "profile": "IdentifierClass", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "IdentifierClass", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "IdentifierClass", "input": "\u00a8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u00af", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u00b4", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u00b8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u02d8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u02d9", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u02da", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u02db", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u02dc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u02dd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u037a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u0384", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u0385", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fbd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fbf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fc0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fc1", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fcd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fce", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fcf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fdd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fde", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fdf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fed", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fee", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1ffd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1ffe", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u2017", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u203e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u309b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u309c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufc5e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufc5f", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufc60", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufc61", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufc62", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufc63", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe49", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe4a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe4b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe4c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe70", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe72", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe74", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe76", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe78", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe7a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe7c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\ufe7e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\uffe3", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "IdentifierClass", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "IdentifierClass", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "IdentifierClass", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "IdentifierClass", "input": "ruL\u00b7Lz", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "IdentifierClass", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "IdentifierClass", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "IdentifierClass", "input": "\u00df", "output": "\u00df", "error": null }, { "profile": "IdentifierClass", "input": "\u03c2", "output": "\u03c2", "error": null }, { "profile": "IdentifierClass", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "IdentifierClass", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "IdentifierClass", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "IdentifierClass", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "IdentifierClass", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "IdentifierClass", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "IdentifierClass", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "IdentifierClass", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "IdentifierClass", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "IdentifierClass", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "IdentifierClass", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "IdentifierClass", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "IdentifierClass", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "IdentifierClass", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/arabic_indic" }, { "profile": "IdentifierClass", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/extended_arabic_indic" }, { "profile": "IdentifierClass", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "IdentifierClass", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "IdentifierClass", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "IdentifierClass", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "IdentifierClass", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "IdentifierClass", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "IdentifierClass", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "IdentifierClass", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "IdentifierClass", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "IdentifierClass", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "IdentifierClass", "input": "\u0600", "output": null, "error": "DISALLOWED/other" }, { "profile": "IdentifierClass", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "IdentifierClass", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "IdentifierClass", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "IdentifierClass", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "IdentifierClass", "input": "\u03a8\u03d3\u03a7\u0397", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u01f0j\u030c", "output": "\u01f0j\u030c", "error": null }, { "profile": "IdentifierClass", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u03b9\u0308\u0301", "error": null }, { "profile": "IdentifierClass", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03c5\u0308\u0301", "error": null }, { "profile": "IdentifierClass", "input": "\u1e96h\u0331", "output": "\u1e96h\u0331", "error": null }, { "profile": "IdentifierClass", "input": "\u1e97t\u0308", "output": "\u1e97t\u0308", "error": null }, { "profile": "IdentifierClass", "input": "\u1e98w\u030a", "output": "\u1e98w\u030a", "error": null }, { "profile": "IdentifierClass", "input": "\u1e99y\u030a", "output": "\u1e99y\u030a", "error": null }, { "profile": "IdentifierClass", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u03c5\u0313", "error": null }, { "profile": "IdentifierClass", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u03c5\u0313\u0300", "error": null }, { "profile": "IdentifierClass", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u03c5\u0313\u0301", "error": null }, { "profile": "IdentifierClass", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u03c5\u0313\u0342", "error": null }, { "profile": "IdentifierClass", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u03b1\u0342", "error": null }, { "profile": "IdentifierClass", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb7\u03b1\u0342\u0345", "error": null }, { "profile": "IdentifierClass", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u03b7\u0342", "error": null }, { "profile": "IdentifierClass", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc7\u03b7\u0342\u0345", "error": null }, { "profile": "IdentifierClass", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u03b9\u0308\u0300", "error": null }, { "profile": "IdentifierClass", "input": "\u1fd3\u03b9\u0308\u0301", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u03b9\u0342", "error": null }, { "profile": "IdentifierClass", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u03b9\u0308\u0342", "error": null }, { "profile": "IdentifierClass", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u03c5\u0308\u0300", "error": null }, { "profile": "IdentifierClass", "input": "\u1fe3\u03c5\u0308\u0301", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "IdentifierClass", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u03c1\u0313", "error": null }, { "profile": "IdentifierClass", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u03c5\u0342", "error": null }, { "profile": "IdentifierClass", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u03c5\u0308\u0342", "error": null }, { "profile": "IdentifierClass", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u03c9\u0342", "error": null }, { "profile": "IdentifierClass", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff7\u03c9\u0342\u0345", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "", "output": null, "error": "DISALLOWED/empty" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "#", "output": "#", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\\", "output": "\\", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\t", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\n", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\r", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u001f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:CaseFold", "input": " ", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "!", "output": "!", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "~", "output": "~", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00a0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Kevin", "output": "kevin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u212aevin", "output": "kevin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u039aevin", "output": "\u03baevin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1e32evin", "output": "\u1e33evin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1e34evin", "output": "\u1e35evin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "K\u0301evin", "output": "\u1e31evin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "K\u0301\u0301evin", "output": "\u1e31\u0301evin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "K\ua717evin", "output": "k\ua717evin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u24c0evin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u2c69evin", "output": "\u2c6aevin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ua740evin", "output": "\ua741evin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ua742evin", "output": "\ua743evin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ua744evin", "output": "\ua745evin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ua7a2evin", "output": "\ua7a3evin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\uff2bevin", "output": "kevin", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ud83c\udd1aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ud83c\udd3aevin", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ud83c\udd5aevin", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ud83c\udd7aevin", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "StPeter", "output": "stpeter", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Juliet", "output": "juliet", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Juliet@Example.COM", "output": "juliet@example.com", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Fussball", "output": "fussball", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Fu\u00dfball", "output": "fussball", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03c2", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "error": null, "unicode_version": 8.0 }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Foo", "output": "foo", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "foo", "output": "foo", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Foo Bar", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "foo bar", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03c2", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u265a", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Richard \u2163", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u19da", "output": null, "error": "DISALLOWED/other_letter_digits" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "i\u0130\u0131I", "output": "ii\u0307\u0131i", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "I\u0307", "output": "i\u0307", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "A\ua717", "output": "a\ua717", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "e\u0301\u0301\u0301", "output": "\u00e9\u0301\u0301", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "e\u0301", "output": "\u00e9", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "o", "output": "o", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufec9", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufeca", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufecb", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufecc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\uff76", "output": "\u30ab", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u3300", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "i\u2079", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00bc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u01c6", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe37", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u210c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u210d", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u037e", "output": ";", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fef", "output": "`", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u212a", "output": "k", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\uff01", "output": "!", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": "juliet", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\uff04", "output": "$", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe69", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Rs", "output": "rs", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u20a8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ud83c\uddfa\ud83c\uddf8", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "K", "output": "k", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u212a", "output": "k", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u24c0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u2460", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03a9", "output": "\u03c9", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u2126", "output": "\u03c9", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00c7", "output": "\u00e7", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "C\u0327", "output": "\u00e7", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "q\u0307\u0323", "output": "q\u0323\u0307", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1100\u1161", "output": "\uac00", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u212b", "output": "\u00e5", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "A\u030a", "output": "\u00e5", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "s\u0323\u0307", "output": "\u1e69", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufb01", "output": "fi", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1100\u1161\u11a8", "output": "\uac01", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ud83d\udc7e", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ud83d\udc9a", "output": null, "error": "DISALLOWED/symbols" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033d", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033da\u0334\u0335\u031c\u0330\u0354\u036b\u0357\u0362l\u0320\u0368\u0367\u0369\u0358g\u0334\u033b\u0348\u034d\u0354\u0339\u0311\u0357\u030e\u0305\u035b\u0301\u01eb\u0335\u0339\u033b\u031d\u0333\u0342\u030c\u030c\u0358!\u0356\u032c\u0330\u0319\u0317\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035c\u035e", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "z\u0334\u0322\u032d\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u0315a\u0334\u0327\u031d\u031d\u0356\u032c\u0329\u032f\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u013c\u031b\u032c\u0316\u0330\u032b\u033c\u0329\u0356\u034a\u0314\u0307\u0352\u0352\u0309\u0362\u035fg\u0336\u031d\u031e\u033c\u031d\u034d\u033d\u0307\u0350\u0313\u030c\u0342\u0313\u0360\u035do\u0321\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u033f\u0308\u035b\u0306\u030f\u034b\u0342", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u037e", "output": ";", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": "\u0300\u0301\u0313\u0308\u0301\u02b9;\u0915\u093c\u0916\u093c\u0917\u093c\u091c\u093c\u0921\u093c\u0922\u093c\u092b\u093c\u092f\u093c\u09a1\u09bc\u09a2\u09bc\u09af\u09bc\u0a32\u0a3c\u0a38\u0a3c\u0a16\u0a3c\u0a17\u0a3c\u0a1c\u0a3c\u0a2b\u0a3c\u0b21\u0b3c\u0b22\u0b3c\u0f42\u0fb7\u0f4c\u0fb7\u0f51\u0fb7\u0f56\u0fb7\u0f5b\u0fb7\u0f40\u0fb5\u0f71\u0f71\u0f72\u0f74\u0fb2\u0f80\u0fb3\u0f71\u0f80\u0f80\u0f92\u0fb7\u0f9c\u0fb7\u0fa1\u0fb7\u0fa6\u0fb7\u0fab\u0fb7\u0f90\u0fb5\u03ac\u03ad\u03ae\u03af\u03cc\u03cd\u03ce\u03ac\u03b9\u03ad\u03ae\u0390\u03af\u03b0\u03cd`\u03cc\u03ce\u03c9k\u00e5", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1806", "output": null, "error": "DISALLOWED/punctuation" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Juliet Capulet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": " Juliet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Juliet ", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Juliet Capulet", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\"Juliet\"", "output": "\"juliet\"", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "'Juliet'", "output": "'juliet'", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "'Juliet '", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "' Juliet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "'Juliet Capulet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "'Juliet Capulet'", "output": null, "error": "DISALLOWED/spaces" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u05d0\u05d1+", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "+\u05d0\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "A\u05d0\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u05d0\u05d1A", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u05d0A\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Juliet+", "output": "juliet+", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "+Juliet", "output": "+juliet", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "Juliet\u05d1", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00a8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00af", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00b4", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00b8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u02d8", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u02d9", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u02da", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u02db", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u02dc", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u02dd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u037a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0384", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0385", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fbd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fbf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fc0", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fc1", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fcd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fce", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fcf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fdd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fde", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fdf", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fed", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fee", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1ffd", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1ffe", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u2017", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u203e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u309b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u309c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufc5e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufc5f", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufc60", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufc61", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufc62", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufc63", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe49", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe4a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe4b", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe4c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe70", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe72", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe74", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe76", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe78", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe7a", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe7c", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ufe7e", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\uffe3", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "ruL\u00b7Lz", "output": "rul\u00b7lz", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00df", "output": "ss", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03c2", "output": "\u03c3", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0600", "output": null, "error": "DISALLOWED/bidi_rule" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03a8\u03d3\u03a7\u0397", "output": null, "error": "DISALLOWED/has_compat" }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u01f0j\u030c", "output": "\u01f0\u01f0", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1e96h\u0331", "output": "\u1e96\u1e96", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1e97t\u0308", "output": "\u1e97\u1e97", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1e98w\u030a", "output": "\u1e98\u1e98", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1e99y\u030a", "output": "\u1e99\u1e99", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u1f50", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u1f52", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u1f54", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u1f56", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u1fb6", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb6\u03b9\u1fb6\u03b9", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u1fc6", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc6\u03b9\u1fc6\u03b9", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u1fd2", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fd3\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u1fd6", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u1fd7", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u1fe2", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fe3\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u1fe4", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u1fe6", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u1fe7", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u1ff6", "error": null }, { "profile": "UsernameCaseMapped:CaseFold", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff6\u03b9\u1ff6\u03b9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "#", "output": "#", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\\", "output": "\\", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0000", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\t", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\n", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\r", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u001f", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:CaseFold", "input": " ", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "!", "output": "!", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "~", "output": "~", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u007f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0080", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u009f", "output": null, "error": "DISALLOWED/controls" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00a0", "output": null, "error": "DISALLOWED/empty" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00fe", "output": "\u00fe", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00ff", "output": "\u00ff", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufffe", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\udbff\udfff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "output": "~`!@#$%^&*()-_=+[{}]\\|;:'\",<.>/?", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Kevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u212aevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u039aevin", "output": "\u03baevin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1e32evin", "output": "\u1e33evin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1e34evin", "output": "\u1e35evin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "K\u0301evin", "output": "\u1e31evin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "K\u0301\u0301evin", "output": "\u1e31\u0301evin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "K\ua717evin", "output": "k\ua717evin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u24c0evin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u2c69evin", "output": "\u2c6aevin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ua740evin", "output": "\ua741evin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ua742evin", "output": "\ua743evin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ua744evin", "output": "\ua745evin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ua7a2evin", "output": "\ua7a3evin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\uff2bevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\udb40\udc4bevin", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ud83c\udd1aevin", "output": "(k)evin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ud83c\udd3aevin", "output": "kevin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ud83c\udd5aevin", "output": "\ud83c\udd5aevin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ud83c\udd7aevin", "output": "\ud83c\udd7aevin", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "StPeter", "output": "stpeter", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Juliet", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Juliet@Example.COM", "output": "juliet@example.com", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Fussball", "output": "fussball", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Fu\u00dfball", "output": "fussball", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03c0", "output": "\u03c0", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03c2", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "ju1iet", "output": "ju1iet", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "output": "\u13da\u13a2\u13b5\u13ac\u13a2\u13ac\u13d2", "error": null, "unicode_version": 8.0 }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Foo", "output": "foo", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "foo", "output": "foo", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Foo Bar", "output": "foo bar", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "foo bar", "output": "foo bar", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03a3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03c3", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03c2", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u265a", "output": "\u265a", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Richard \u2163", "output": "richard iv", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0cf1", "output": "\u0cf1", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0cf2", "output": "\u0cf2", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u19da", "output": "\u19da", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "i\u0130\u0131I", "output": "ii\u0307\u0131i", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "I\u0307", "output": "i\u0307", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0131\u0307", "output": "\u0131\u0307", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "A\ua717", "output": "a\ua717", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00e9", "output": "\u00e9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "e\u0301\u0301\u0301", "output": "\u00e9\u0301\u0301", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "e\u0301", "output": "\u00e9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "o", "output": "o", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03bf", "output": "\u03bf", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u043e", "output": "\u043e", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufec9", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufeca", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufecb", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufecc", "output": "\u0639", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\uff76", "output": "\u30ab", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u30ab", "output": "\u30ab", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u3300", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u30a2\u30d1\u30fc\u30c8", "output": "\u30a2\u30d1\u30fc\u30c8", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "i\u2079", "output": "i9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00bc", "output": "1\u20444", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u01c6", "output": "d\u017e", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe37", "output": "{", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u210c", "output": "h", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u210d", "output": "h", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u2e2f", "output": "\u2e2f", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u037e", "output": ";", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fef", "output": "`", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u212a", "output": "k", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\uff01", "output": "!", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\uff2a\uff55\uff4c\uff49\uff45\uff54", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\uff04", "output": "$", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe69", "output": "$", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Rs", "output": "rs", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u20a8", "output": "rs", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ud83c\uddfa\ud83c\uddf8", "output": "\ud83c\uddfa\ud83c\uddf8", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "K", "output": "k", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u212a", "output": "k", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u24c0", "output": "k", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u2460", "output": "1", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03a9", "output": "\u03c9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u2126", "output": "\u03c9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00c7", "output": "\u00e7", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "C\u0327", "output": "\u00e7", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "q\u0307\u0323", "output": "q\u0323\u0307", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "q\u0323\u0307", "output": "q\u0323\u0307", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\uac00", "output": "\uac00", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1100\u1161", "output": "\uac00", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u212b", "output": "\u00e5", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "A\u030a", "output": "\u00e5", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "s\u0323\u0307", "output": "\u1e69", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufb01", "output": "fi", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\uac01", "output": "\uac01", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1100\u1161\u11a8", "output": "\uac01", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ud83d\udc7e", "output": "\ud83d\udc7e", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ud83d\udc9a", "output": "\ud83d\udc9a", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033d", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": "z\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034d\u0351\u036b\u0313\u036a\u0302\u036b\u033da\u0334\u0335\u031c\u0330\u0354\u036b\u0357\u0362l\u0320\u0368\u0367\u0369\u0358g\u0334\u033b\u0348\u034d\u0354\u0339\u0311\u0357\u030e\u0305\u035b\u0301\u01eb\u0335\u0339\u033b\u031d\u0333\u0342\u030c\u030c\u0358!\u0356\u032c\u0330\u0319\u0317\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035c\u035e", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Z\u0351\u036b\u0343\u036a\u0302\u036b\u033d\u034f\u0334\u0319\u0324\u031e\u0349\u035a\u032f\u031e\u0320\u034dA\u036b\u0357\u0334\u0362\u0335\u031c\u0330\u0354L\u0368\u0367\u0369\u0358\u0320G\u0311\u0357\u030e\u0305\u035b\u0341\u0334\u033b\u0348\u034d\u0354\u0339O\u0342\u030c\u030c\u0358\u0328\u0335\u0339\u033b\u031d\u0333!\u033f\u030b\u0365\u0365\u0302\u0363\u0310\u0301\u0301\u035e\u035c\u0356\u032c\u0330\u0319\u0317", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Z\u0315\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u032d\u0322\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0334A\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u031d\u0327\u031d\u0356\u032c\u0329\u032f\u0334L\u031b\u034a\u0314\u0307\u0352\u0352\u0309\u0327\u032c\u0316\u0330\u032b\u0362\u033c\u0329\u035f\u0356G\u033d\u0307\u0360\u0350\u0313\u030c\u0342\u035d\u0313\u031d\u031e\u033c\u031d\u034d\u0336O\u033f\u0308\u035b\u0306\u030f\u034b\u0342\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u0321", "output": "z\u0334\u0322\u032d\u0326\u0319\u0318\u0318\u0324\u0347\u0320\u0313\u030c\u035b\u0350\u0306\u0311\u0307\u0342\u034c\u0315a\u0334\u0327\u031d\u031d\u0356\u032c\u0329\u032f\u033f\u0311\u0309\u0308\u0302\u0308\u034c\u035c\u013c\u031b\u032c\u0316\u0330\u032b\u033c\u0329\u0356\u034a\u0314\u0307\u0352\u0352\u0309\u0362\u035fg\u0336\u031d\u031e\u033c\u031d\u034d\u033d\u0307\u0350\u0313\u030c\u0342\u0313\u0360\u035do\u0321\u032b\u032f\u0320\u0348\u032f\u0356\u033a\u033f\u0308\u035b\u0306\u030f\u034b\u0342", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u037e", "output": ";", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0340\u0341\u0343\u0344\u0374\u037e\u0958\u0959\u095a\u095b\u095c\u095d\u095e\u095f\u09dc\u09dd\u09df\u0a33\u0a36\u0a59\u0a5a\u0a5b\u0a5e\u0b5c\u0b5d\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f73\u0f75\u0f76\u0f78\u0f81\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fef\u1ff9\u1ffb\u2126\u212a\u212b", "output": "\u0300\u0301\u0313\u0308\u0301\u02b9;\u0915\u093c\u0916\u093c\u0917\u093c\u091c\u093c\u0921\u093c\u0922\u093c\u092b\u093c\u092f\u093c\u09a1\u09bc\u09a2\u09bc\u09af\u09bc\u0a32\u0a3c\u0a38\u0a3c\u0a16\u0a3c\u0a17\u0a3c\u0a1c\u0a3c\u0a2b\u0a3c\u0b21\u0b3c\u0b22\u0b3c\u0f42\u0fb7\u0f4c\u0fb7\u0f51\u0fb7\u0f56\u0fb7\u0f5b\u0fb7\u0f40\u0fb5\u0f71\u0f71\u0f72\u0f74\u0fb2\u0f80\u0fb3\u0f71\u0f80\u0f80\u0f92\u0fb7\u0f9c\u0fb7\u0fa1\u0fb7\u0fa6\u0fb7\u0fab\u0fb7\u0f90\u0fb5\u03ac\u03ad\u03ae\u03af\u03cc\u03cd\u03ce\u03ac\u03b9\u03ad\u03ae\u0390\u03af\u03b0\u03cd`\u03cc\u03ce\u03c9k\u00e5", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00ad", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u034f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1806", "output": "\u1806", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u180b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u180c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u180d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u200b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u200c", "output": null, "error": "DISALLOWED/zero_width_nonjoiner" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u200d", "output": null, "error": "DISALLOWED/zero_width_joiner" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u2060", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe00", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe01", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe02", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe03", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe04", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe05", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe06", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe07", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe08", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe09", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe0a", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe0b", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe0c", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe0d", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe0e", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe0f", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufeff", "output": null, "error": "DISALLOWED/precis_ignorable_properties" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Juliet Capulet", "output": "juliet capulet", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": " Juliet", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Juliet ", "output": "juliet", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Juliet Capulet", "output": "juliet capulet", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\"Juliet\"", "output": "\"juliet\"", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "'Juliet'", "output": "'juliet'", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "'Juliet '", "output": "'juliet '", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "' Juliet'", "output": "' juliet'", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "'Juliet Capulet'", "output": "'juliet capulet'", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "'Juliet Capulet'", "output": "'juliet capulet'", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u05d0\u05d1", "output": "\u05d0\u05d1", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u05d0\u20d6\u05d1", "output": "\u05d0\u20d6\u05d1", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u05d0\u1ab6\u05d1", "output": "\u05d0\u1ab6\u05d1", "error": null, "unicode_version": 7.0 }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u05d0\u05d1+", "output": "\u05d0\u05d1+", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "+\u05d0\u05d1", "output": "+\u05d0\u05d1", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "A\u05d0\u05d1", "output": "a\u05d0\u05d1", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u05d0\u05d1A", "output": "\u05d0\u05d1a", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u05d0A\u05d1", "output": "\u05d0a\u05d1", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u05d0(/%\\))\u05d1", "output": "\u05d0(/%\\))\u05d1", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Juliet+", "output": "juliet+", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "+Juliet", "output": "+juliet", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "Juliet\u05d1", "output": "juliet\u05d1", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0b47\u0300\u0b3e\u0323", "output": "\u0b47\u0300\u0b3e\u0323", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1100\u0300\u1161\u0323", "output": null, "error": "DISALLOWED/old_hangul_jamo" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00a8", "output": "\u0308", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00af", "output": "\u0304", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00b4", "output": "\u0301", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00b8", "output": "\u0327", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u02d8", "output": "\u0306", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u02d9", "output": "\u0307", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u02da", "output": "\u030a", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u02db", "output": "\u0328", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u02dc", "output": "\u0303", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u02dd", "output": "\u030b", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u037a", "output": "\u03b9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0384", "output": "\u0301", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0385", "output": "\u0308\u0301", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fbd", "output": "\u0313", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fbf", "output": "\u0313", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fc0", "output": "\u0342", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fc1", "output": "\u0308\u0342", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fcd", "output": "\u0313\u0300", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fce", "output": "\u0313\u0301", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fcf", "output": "\u0313\u0342", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fdd", "output": "\u0314\u0300", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fde", "output": "\u0314\u0301", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fdf", "output": "\u0314\u0342", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fed", "output": "\u0308\u0300", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fee", "output": "\u0308\u0301", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1ffd", "output": "\u0301", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1ffe", "output": "\u0314", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u2017", "output": "\u0333", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u203e", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u309b", "output": "\u3099", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u309c", "output": "\u309a", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufc5e", "output": "\u064c\u0651", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufc5f", "output": "\u064d\u0651", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufc60", "output": "\u064e\u0651", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufc61", "output": "\u064f\u0651", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufc62", "output": "\u0650\u0651", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufc63", "output": "\u0651\u0670", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe49", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe4a", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe4b", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe4c", "output": "\u0305", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe70", "output": "\u064b", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe72", "output": "\u064c", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe74", "output": "\u064d", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe76", "output": "\u064e", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe78", "output": "\u064f", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe7a", "output": "\u0650", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe7c", "output": "\u0651", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ufe7e", "output": "\u0652", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\uffe3", "output": "\u0304", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00b7l", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "l\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "rul\u00b7lz", "output": "rul\u00b7lz", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "ruL\u00b7Lz", "output": "rul\u00b7lz", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "rul\u00b7ze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "ru\u00b7lze", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00df", "output": "ss", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03c2", "output": "\u03c3", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u06fd", "output": "\u06fd", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u06fe", "output": "\u06fe", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0f0b", "output": "\u0f0b", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u3007", "output": "\u3007", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u00b7", "output": null, "error": "DISALLOWED/middle_dot" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0375", "output": null, "error": "DISALLOWED/greek_keraia" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u05f3", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u05f4", "output": null, "error": "DISALLOWED/hebrew_punctuation" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u30fb", "output": null, "error": "DISALLOWED/katakana_middle_dot" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "output": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "output": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0623\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06f0", "output": null, "error": "DISALLOWED/arabic_indic" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0623\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u0660", "output": null, "error": "DISALLOWED/extended_arabic_indic" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0640", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u07fa", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u302e", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u302f", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u3031", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u3032", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u3033", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u3034", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u3035", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u303b", "output": null, "error": "DISALLOWED/exceptions" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0600", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\udb80\udc00", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\udb40\uddf0", "output": null, "error": "DISALLOWED/unassigned" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ud800", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\ud8ff", "output": null, "error": "DISALLOWED/other" }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03a8\u03d3\u03a7\u0397", "output": "\u03c8\u03cd\u03c7\u03b7", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u01f0j\u030c", "output": "\u01f0\u01f0", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u0390\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u03b0\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1e96h\u0331", "output": "\u1e96\u1e96", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1e97t\u0308", "output": "\u1e97\u1e97", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1e98w\u030a", "output": "\u1e98\u1e98", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1e99y\u030a", "output": "\u1e99\u1e99", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1f50\u03c5\u0313", "output": "\u1f50\u1f50", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1f52\u03c5\u0313\u0300", "output": "\u1f52\u1f52", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1f54\u03c5\u0313\u0301", "output": "\u1f54\u1f54", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1f56\u03c5\u0313\u0342", "output": "\u1f56\u1f56", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fb6\u03b1\u0342", "output": "\u1fb6\u1fb6", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fb7\u03b1\u0342\u0345", "output": "\u1fb6\u03b9\u1fb6\u03b9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fc6\u03b7\u0342", "output": "\u1fc6\u1fc6", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fc7\u03b7\u0342\u0345", "output": "\u1fc6\u03b9\u1fc6\u03b9", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fd2\u03b9\u0308\u0300", "output": "\u1fd2\u1fd2", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fd3\u03b9\u0308\u0301", "output": "\u0390\u0390", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fd6\u03b9\u0342", "output": "\u1fd6\u1fd6", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fd7\u03b9\u0308\u0342", "output": "\u1fd7\u1fd7", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fe2\u03c5\u0308\u0300", "output": "\u1fe2\u1fe2", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fe3\u03c5\u0308\u0301", "output": "\u03b0\u03b0", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fe4\u03c1\u0313", "output": "\u1fe4\u1fe4", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fe6\u03c5\u0342", "output": "\u1fe6\u1fe6", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1fe7\u03c5\u0308\u0342", "output": "\u1fe7\u1fe7", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1ff6\u03c9\u0342", "output": "\u1ff6\u1ff6", "error": null }, { "profile": "NicknameCaseMapped:CaseFold", "input": "\u1ff7\u03c9\u0342\u0345", "output": "\u1ff6\u03b9\u1ff6\u03b9", "error": null } ] precis_i18n-1.0.0/precis_i18n/0000755000076500000240000000000013235417633016205 5ustar bfishstaff00000000000000precis_i18n-1.0.0/precis_i18n/baseclass.py0000644000076500000240000000574413235411672020526 0ustar bfishstaff00000000000000"""Implements the PRECIS string classes.""" from precis_i18n.context import context_rule_error from precis_i18n.derived import (CONTEXTJ, CONTEXTO, FREE_PVAL, PVALID, derived_property) class BaseClass(object): """Abstract base class for all String classes in PRECIS framework. Subclasses must set `_allowed` to a tuple of derived property names. For example, `_allowed = (PVALID, )`. Args: ucd (UnicodeData): Unicode character database. name (str): String class name. Attributes: ucd (UnicodeData): Unicode character database. name (str): String class name. """ _allowed = () def __init__(self, ucd, name=None): self.ucd = ucd self.name = name or self.__class__.__name__ def enforce(self, value, codec_name=None): """Ensure that all characters in `value` are allowed by the string class. Args: value (str): String value to enforce. codec_name (Optional[str]): Codec name to report in exceptions. If None, use `self.name`. Returns: str: Enforced value. Raises: UnicodeEncodeError: Value is disallowed by the string class. """ if codec_name is None: codec_name = self.name for i, char in enumerate(value): prop, kind = derived_property(ord(char), self.ucd) if prop in self._allowed: continue if prop == CONTEXTJ or prop == CONTEXTO: # Replace `kind` ('exceptions', 'join_control') with the # specific name of the context rule, if the rule fails. kind = context_rule_error(value, i, self.ucd) if not kind: continue raise_error(codec_name, value, i, kind) return value class IdentifierClass(BaseClass): """Concrete class representing PRECIS IdentifierClass from RFC 8264. Args: ucd (UnicodeData): Unicode character database. name (str): String class name. """ _allowed = (PVALID, ) class FreeFormClass(BaseClass): """Concrete class repsenting PRECIS FreeFormClass from RFC 8264. Args: ucd (UnicodeData): Unicode character database. name (str): String class name. """ _allowed = (PVALID, FREE_PVAL) def raise_error(encoding, value, offset, error): """Raise specially formatted UnicodeEncodeError exception. Args: encoding (str): Name of the encoding/codec. value (str): Value being encoded. offset (int): Offset in `value` where error detected. Use -1 to indicate the entire string. error (str): Subtype of error detected. Raises: UnicodeEncodeError: Always. """ if offset < 0: start = 0 end = len(value) else: start = offset end = offset + 1 reason = 'DISALLOWED/%s' % error raise UnicodeEncodeError(encoding, value, start, end, reason) precis_i18n-1.0.0/precis_i18n/unicode.py0000644000076500000240000002546413235411750020212 0ustar bfishstaff00000000000000"""Implements the UnicodeData class.""" import re import unicodedata from precis_i18n.codepointset import CodepointSet # pylint: disable=no-self-use def _version_to_float(version): m = re.match(r'^([0-9]+\.[0-9]+)\.[0-9]+$', version) if not m: raise ValueError('Unexpected unicode version format: %s' % version) return float(m.group(1)) class UnicodeData(object): """Adapter for Python's built-in unicodedata module. This class extends the unicodedata module for use in PRECIS profiles. Args: ucd (Union[module,object]): Implements `unicodedata` interface. """ _halfwidth_chars = re.compile(r'[\uff01-\uffef]') _space_chars = re.compile(r'[\u00a0\u1680\u2000-\u200A\u202F\u205F\u3000]') def __init__(self, ucd=unicodedata): self._ucd = ucd self._version = _version_to_float(ucd.unidata_version) @property def version(self): return self._version # These methods call through to the underlying unicodedata object. def category(self, char): return self._ucd.category(char) def combining(self, char): return self._ucd.combining(char) def bidirectional(self, char): return self._ucd.bidirectional(char) def normalize(self, form, value): return self._ucd.normalize(form, value) def width_map(self, value): """Map half-width and full-width chars to their compat equivs. Args: value (str): Value to transform. Returns: str: Result. """ def _decompose(m): char = m.group(0) assert len(char) == 1 norm = self._ucd.normalize('NFKC', char) return norm if len(norm) == 1 else char return self._halfwidth_chars.sub(_decompose, value) def map_nonascii_space_to_ascii(self, value): """Convert non-ASCII white space {Zs} to ASCII space. Args: value (str): Value to transform. Returns: str: Result. """ return self._space_chars.sub(' ', value) def default_ignorable(self, cp): return cp in _DEFAULT_IGNORABLE def has_compat(self, cp): char = chr(cp) norm = self.normalize('NFKC', char) assert norm return norm != char def control(self, cp): return (0x00 <= cp <= 0x1f) or (0x7f <= cp <= 0x9f) def noncharacter(self, cp): last = cp & 0x0000ffff return (0xfffe <= last <= 0xffff) or (0xfdd0 <= cp <= 0xfdef) def old_hangul_jamo(self, cp): return cp in _OLD_HANGUL_JAMO def greek_script(self, cp): return cp in _GREEK_SCRIPT def hebrew_script(self, cp): return cp in _HEBREW_SCRIPT def hiragana_katakana_han_script(self, cp): return cp in _HIRAGANA_KATAKANA_HAN def combining_virama(self, cp): return self.combining(chr(cp)) == 9 def arabic_indic(self, cp): return 0x0660 <= cp <= 0x0669 def extended_arabic_indic(self, cp): return 0x06f0 <= cp <= 0x06f9 def valid_jointype(self, value, offset): assert 0x200c <= ord(value[offset]) <= 0x200d return self._scan_join(reversed(value[:offset]), 'L') and \ self._scan_join(value[offset + 1:], 'R') def _scan_join(self, iterable, term): for char in iterable: join_type = self._join_type(ord(char)) if join_type == term or join_type == 'D': return True if join_type != 'T': return False return False def _join_type(self, cp): if cp in _JOINTYPE_DUAL_JOINING: return 'D' elif cp in _JOINTYPE_RIGHT_JOINING: return 'R' elif cp in _JOINTYPE_LEFT_JOINING: return 'L' elif cp in _JOINTYPE_TRANSPARENT: return 'T' return None # http://www.unicode.org/Public/10.0.0/ucd/DerivedCoreProperties.txt # Derived Property: Default_Ignorable_Code_Point _DEFAULT_IGNORABLE = CodepointSet(''' 00AD 034F 061C 115F..1160 17B4..17B5 180B..180D 180E 200B..200F 202A..202E 2060..2064 2065 2066..206F 3164 FE00..FE0F FEFF FFA0 FFF0..FFF8 1BCA0..1BCA3 1D173..1D17A E0000 E0001 E0002..E001F E0020..E007F E0080..E00FF E0100..E01EF E01F0..E0FFF ''') assert len(_DEFAULT_IGNORABLE) == 4173 # http://www.unicode.org/Public/10.0.0/ucd/extracted/DerivedJoiningType.txt # Joining_Type=Dual_Joining _JOINTYPE_DUAL_JOINING = CodepointSet(''' 0620 0626 0628 062A..062E 0633..063F 0641..0647 0649..064A 066E..066F 0678..0687 069A..06BF 06C1..06C2 06CC 06CE 06D0..06D1 06FA..06FC 06FF 0712..0714 071A..071D 071F..0727 0729 072B 072D..072E 074E..0758 075C..076A 076D..0770 0772 0775..0777 077A..077F 07CA..07EA 0841..0845 0848 084A..0853 0855 0860 0862..0865 0868 08A0..08A9 08AF..08B0 08B3..08B4 08B6..08B8 08BA..08BD 1807 1820..1842 1843 1844..1877 1887..18A8 18AA A840..A871 10AC0..10AC4 10AD3..10AD6 10AD8..10ADC 10ADE..10AE0 10AEB..10AEE 10B80 10B82 10B86..10B88 10B8A..10B8B 10B8D 10B90 10BAD..10BAE 1E900..1E943 ''') assert len(_JOINTYPE_DUAL_JOINING) == 507 # http://www.unicode.org/Public/10.0.0/ucd/extracted/DerivedJoiningType.txt # Joining_Type=Right_Joining _JOINTYPE_RIGHT_JOINING = CodepointSet(''' 0622..0625 0627 0629 062F..0632 0648 0671..0673 0675..0677 0688..0699 06C0 06C3..06CB 06CD 06CF 06D2..06D3 06D5 06EE..06EF 0710 0715..0719 071E 0728 072A 072C 072F 074D 0759..075B 076B..076C 0771 0773..0774 0778..0779 0840 0846..0847 0849 0854 0867 0869..086A 08AA..08AC 08AE 08B1..08B2 08B9 10AC5 10AC7 10AC9..10ACA 10ACE..10AD2 10ADD 10AE1 10AE4 10AEF 10B81 10B83..10B85 10B89 10B8C 10B8E..10B8F 10B91 10BA9..10BAC ''') assert len(_JOINTYPE_RIGHT_JOINING) == 115 # http://www.unicode.org/Public/10.0.0/ucd/extracted/DerivedJoiningType.txt # Joining_Type=Left_Joining _JOINTYPE_LEFT_JOINING = CodepointSet(''' A872 10ACD 10AD7 ''') assert len(_JOINTYPE_LEFT_JOINING) == 3 # http://www.unicode.org/Public/10.0.0/ucd/extracted/DerivedJoiningType.txt # Joining_Type=Transparent _JOINTYPE_TRANSPARENT = CodepointSet(''' 00AD 0300..036F 0483..0487 0488..0489 0591..05BD 05BF 05C1..05C2 05C4..05C5 05C7 0610..061A 061C 064B..065F 0670 06D6..06DC 06DF..06E4 06E7..06E8 06EA..06ED 070F 0711 0730..074A 07A6..07B0 07EB..07F3 0816..0819 081B..0823 0825..0827 0829..082D 0859..085B 08D4..08E1 08E3..0902 093A 093C 0941..0948 094D 0951..0957 0962..0963 0981 09BC 09C1..09C4 09CD 09E2..09E3 0A01..0A02 0A3C 0A41..0A42 0A47..0A48 0A4B..0A4D 0A51 0A70..0A71 0A75 0A81..0A82 0ABC 0AC1..0AC5 0AC7..0AC8 0ACD 0AE2..0AE3 0AFA..0AFF 0B01 0B3C 0B3F 0B41..0B44 0B4D 0B56 0B62..0B63 0B82 0BC0 0BCD 0C00 0C3E..0C40 0C46..0C48 0C4A..0C4D 0C55..0C56 0C62..0C63 0C81 0CBC 0CBF 0CC6 0CCC..0CCD 0CE2..0CE3 0D00..0D01 0D3B..0D3C 0D41..0D44 0D4D 0D62..0D63 0DCA 0DD2..0DD4 0DD6 0E31 0E34..0E3A 0E47..0E4E 0EB1 0EB4..0EB9 0EBB..0EBC 0EC8..0ECD 0F18..0F19 0F35 0F37 0F39 0F71..0F7E 0F80..0F84 0F86..0F87 0F8D..0F97 0F99..0FBC 0FC6 102D..1030 1032..1037 1039..103A 103D..103E 1058..1059 105E..1060 1071..1074 1082 1085..1086 108D 109D 135D..135F 1712..1714 1732..1734 1752..1753 1772..1773 17B4..17B5 17B7..17BD 17C6 17C9..17D3 17DD 180B..180D 1885..1886 18A9 1920..1922 1927..1928 1932 1939..193B 1A17..1A18 1A1B 1A56 1A58..1A5E 1A60 1A62 1A65..1A6C 1A73..1A7C 1A7F 1AB0..1ABD 1ABE 1B00..1B03 1B34 1B36..1B3A 1B3C 1B42 1B6B..1B73 1B80..1B81 1BA2..1BA5 1BA8..1BA9 1BAB..1BAD 1BE6 1BE8..1BE9 1BED 1BEF..1BF1 1C2C..1C33 1C36..1C37 1CD0..1CD2 1CD4..1CE0 1CE2..1CE8 1CED 1CF4 1CF8..1CF9 1DC0..1DF9 1DFB..1DFF 200B 200E..200F 202A..202E 2060..2064 206A..206F 20D0..20DC 20DD..20E0 20E1 20E2..20E4 20E5..20F0 2CEF..2CF1 2D7F 2DE0..2DFF 302A..302D 3099..309A A66F A670..A672 A674..A67D A69E..A69F A6F0..A6F1 A802 A806 A80B A825..A826 A8C4..A8C5 A8E0..A8F1 A926..A92D A947..A951 A980..A982 A9B3 A9B6..A9B9 A9BC A9E5 AA29..AA2E AA31..AA32 AA35..AA36 AA43 AA4C AA7C AAB0 AAB2..AAB4 AAB7..AAB8 AABE..AABF AAC1 AAEC..AAED AAF6 ABE5 ABE8 ABED FB1E FE00..FE0F FE20..FE2F FEFF FFF9..FFFB 101FD 102E0 10376..1037A 10A01..10A03 10A05..10A06 10A0C..10A0F 10A38..10A3A 10A3F 10AE5..10AE6 11001 11038..11046 1107F..11081 110B3..110B6 110B9..110BA 110BD 11100..11102 11127..1112B 1112D..11134 11173 11180..11181 111B6..111BE 111CA..111CC 1122F..11231 11234 11236..11237 1123E 112DF 112E3..112EA 11300..11301 1133C 11340 11366..1136C 11370..11374 11438..1143F 11442..11444 11446 114B3..114B8 114BA 114BF..114C0 114C2..114C3 115B2..115B5 115BC..115BD 115BF..115C0 115DC..115DD 11633..1163A 1163D 1163F..11640 116AB 116AD 116B0..116B5 116B7 1171D..1171F 11722..11725 11727..1172B 11A01..11A06 11A09..11A0A 11A33..11A38 11A3B..11A3E 11A47 11A51..11A56 11A59..11A5B 11A8A..11A96 11A98..11A99 11C30..11C36 11C38..11C3D 11C3F 11C92..11CA7 11CAA..11CB0 11CB2..11CB3 11CB5..11CB6 11D31..11D36 11D3A 11D3C..11D3D 11D3F..11D45 11D47 16AF0..16AF4 16B30..16B36 16F8F..16F92 1BC9D..1BC9E 1BCA0..1BCA3 1D167..1D169 1D173..1D17A 1D17B..1D182 1D185..1D18B 1D1AA..1D1AD 1D242..1D244 1DA00..1DA36 1DA3B..1DA6C 1DA75 1DA84 1DA9B..1DA9F 1DAA1..1DAAF 1E000..1E006 1E008..1E018 1E01B..1E021 1E023..1E024 1E026..1E02A 1E8D0..1E8D6 1E944..1E94A E0001 E0020..E007F E0100..E01EF ''') assert len(_JOINTYPE_TRANSPARENT) == 1912 # http://www.unicode.org/Public/10.0.0/ucd/Scripts.txt # Greek _GREEK_SCRIPT = CodepointSet(''' 0370..0373 0375 0376..0377 037A 037B..037D 037F 0384 0386 0388..038A 038C 038E..03A1 03A3..03E1 03F0..03F5 03F6 03F7..03FF 1D26..1D2A 1D5D..1D61 1D66..1D6A 1DBF 1F00..1F15 1F18..1F1D 1F20..1F45 1F48..1F4D 1F50..1F57 1F59 1F5B 1F5D 1F5F..1F7D 1F80..1FB4 1FB6..1FBC 1FBD 1FBE 1FBF..1FC1 1FC2..1FC4 1FC6..1FCC 1FCD..1FCF 1FD0..1FD3 1FD6..1FDB 1FDD..1FDF 1FE0..1FEC 1FED..1FEF 1FF2..1FF4 1FF6..1FFC 1FFD..1FFE 2126 AB65 10140..10174 10175..10178 10179..10189 1018A..1018B 1018C..1018E 101A0 1D200..1D241 1D242..1D244 1D245 ''') assert len(_GREEK_SCRIPT) == 518 # http://www.unicode.org/Public/10.0.0/ucd/Scripts.txt # Hebrew _HEBREW_SCRIPT = CodepointSet(''' 0591..05BD 05BE 05BF 05C0 05C1..05C2 05C3 05C4..05C5 05C6 05C7 05D0..05EA 05F0..05F2 05F3..05F4 FB1D FB1E FB1F..FB28 FB29 FB2A..FB36 FB38..FB3C FB3E FB40..FB41 FB43..FB44 FB46..FB4F ''') assert len(_HEBREW_SCRIPT) == 133 # http://www.unicode.org/Public/10.0.0/ucd/Scripts.txt # Hiragana, Katakana, Han _HIRAGANA_KATAKANA_HAN = CodepointSet(''' # Hiragana (376) 3041..3096 309D..309E 309F 1B001..1B11E 1F200 # Katakana (300) 30A1..30FA 30FD..30FE 30FF 31F0..31FF 32D0..32FE 3300..3357 FF66..FF6F FF71..FF9D 1B000 # Han (89228) 2E80..2E99 2E9B..2EF3 2F00..2FD5 3005 3007 3021..3029 3038..303A 303B 3400..4DB5 4E00..9FEA F900..FA6D FA70..FAD9 20000..2A6D6 2A700..2B734 2B740..2B81D 2B820..2CEA1 2CEB0..2EBE0 2F800..2FA1D ''') assert len(_HIRAGANA_KATAKANA_HAN) == (376 + 300 + 89228) # http://www.unicode.org/Public/10.0.0/ucd/HangulSyllableType.txt # Leading_Jamo, Vowel_Jamo, Trailing_Jamo _OLD_HANGUL_JAMO = CodepointSet(''' # Leading_Jamo (125) 1100..115F A960..A97C # Vowel_Jamo (95) 1160..11A7 D7B0..D7C6 # Trailing_Jamo (137) 11A8..11FF D7CB..D7FB ''') assert len(_OLD_HANGUL_JAMO) == (125 + 95 + 137) precis_i18n-1.0.0/precis_i18n/codepointset.py0000644000076500000240000001155013235411711021250 0ustar bfishstaff00000000000000"""Implements the CodepointSet class.""" import io import re from bisect import bisect_left class CodepointSet(object): """Concrete class for an immutable set of Unicode code points. Inclusive ranges [a, b] are stored as adjacent unicode characters in a string. The low end of a range has an even index. The high end is at an odd index. Singleton ranges are stored as [c, c]. To test if a code point is in the set, search for the code point. If it matches a char in the string, the code point is in the set. If not, find the index of the next largest char. If this index is odd, the code point is in the set. This class is constructed from a multi-line string containing a sequence of codepoints and codepoint ranges. HHHH HHHH..HHHH H is a hexadecimal digit. Comment lines begin with '#'. Blank lines are ignored. Note: Sets with any non-BMP codepoints will use 32-bits for all codepoints. (PEP 393 Flexible String Representation) Args: table (str): Multi-line string of code point ranges. """ def __init__(self, table): self._table = _stringify(_coalesce(_parse(table))) assert (len(self._table) % 2) == 0 def __contains__(self, cp): """Check if code point `cp` is in the set. Args: cp (int): Code point. Returns: bool: True if `cp` is in the set. """ if not 0 <= cp <= 0x10FFFF: return False char = chr(cp) idx = bisect_left(self._table, char) if idx >= len(self._table): return False return (idx % 2) == 1 or self._table[idx] == char def __len__(self): """Return size of set. Used for debugging only. Returns: int: Count of total code points. """ count = 0 for lo, hi in self.items(): count += hi - lo + 1 return count def __eq__(self, rhs): """Check if set is equal to other set. Args: rhs (CodepointSet): Other set. Returns: bool: True if sets are equal. """ # pylint: disable=protected-access if self.__class__ != rhs.__class__: return False return self._table == rhs._table def __repr__(self): """Return string representation of set. Example: "CodepointSet('0000\n0010..00FF')" """ elems = '\\n'.join(_repr(elem) for elem in self.items()) return "CodepointSet('%s')" % elems def items(self): """Generator yielding sequence of range tuples (lo, hi).""" for i in range(len(self._table) // 2): lo = ord(self._table[2 * i]) hi = ord(self._table[2 * i + 1]) yield (lo, hi) def _parse(table): """Parse a multi-line string containing codepoint ranges. Args: table (str): Multi-line string of code point ranges. Returns: list: List of 2-tuples (lo, hi) representing code point ranges. Raises: ValueError: Error while parsing `table`. """ codepoint = re.compile(r'^([0-9A-Fa-f]+)(?:\.\.([0-9A-Fa-f]+))?$') elems = [] for line in io.StringIO(table): line = line.strip() m = codepoint.match(line) if not m: if line and line[0] != '#': raise ValueError('Unable to parse line: %s' % line) continue lo = int(m.group(1), 16) hi = int(m.group(2), 16) if m.group(2) else lo if lo > hi: raise ValueError('Invalid range (lo > hi): %s' % line) elems.append((lo, hi)) return elems def _coalesce(elems): """Sort and coalesce adjacent ranges (in-place). Args: elems (list): List of 2-tuples (lo, hi). Returns: list: List `elems` after sorting in-place and coalescing ranges. Raises: ValueError: Overlapping ranges. """ elems.sort() i = 0 while i < len(elems) - 1: (lo0, hi0), (lo1, hi1) = elems[i:i + 2] if not lo0 <= hi0 < lo1 <= hi1: raise ValueError('Range overlaps at index %d: %r' % (i, elems[i:i + 2])) if lo1 == hi0 + 1: elems[i:i + 2] = [(lo0, hi1)] else: i += 1 return elems def _stringify(elems): """Convert a sequence of ranges into a string. Args: elems (list): List of 2-tuples representing ranges. Returns: str: String with lo..hi ranges concatenated. """ return ''.join(chr(lo) + chr(hi) for (lo, hi) in elems) def _repr(elem): """Return string representation for tuple (lo, hi). Examples: "HHHH" "HHHH..HHHH" Args: elem (tuple): 2-tuple (lo, hi) Returns: str: String representation of range tuple. """ if elem[0] == elem[1]: return '%04X' % elem[0] return '%04X..%04X' % elem precis_i18n-1.0.0/precis_i18n/profile.py0000644000076500000240000002113513235411742020214 0ustar bfishstaff00000000000000"""Implements the PRECIS profile classes.""" import re from precis_i18n.baseclass import FreeFormClass, IdentifierClass, raise_error from precis_i18n.bidi import bidi_rule, has_rtl # pylint: disable=no-self-use class Profile(object): """Base class for a PRECIS profile. Subclasses should override the `*_rule` methods. Args: base (BaseClass): Base string class. name (str): Name of profile. casemap (Optional[str]): Case mapping function: 'fold' or 'lower'. """ def __init__(self, base, name, casemap=None): self._base = base self._name = name # casemap can be either None, 'fold', or 'lower'. if casemap is None: self._casemap = None elif casemap == 'fold': self._casemap = _casefold elif casemap == 'lower': self._casemap = _caselower else: raise ValueError('Unknown casemap value: %s' % casemap) @property def base(self): """Base string class.""" return self._base @property def name(self): """Profile name.""" return self._name def enforce(self, value): """Ensure that all characters in `value` are allowed by the profile. If `value` is bytes, it's first decoded as UTF-8 to a string. Args: value (Union[str, bytes]): String value to enforce. Returns: str: Enforced value. Raises: UnicodeEncodeError: Value is disallowed by the profile. ValueError: `value` not a string or bytes. """ # If we get called with a byte string, decode it first. if isinstance(value, bytes): value = value.decode('utf-8') elif not isinstance(value, str): raise ValueError('not a string') temp = self.apply_five_rules(value) temp = self.idempotence_check(temp) # Make sure the resulting value is not empty. if not temp: raise_error(self.name, value, -1, 'empty') # Apply behavioral rules from the base string class last. return self.base.enforce(temp, self.name) def apply_five_rules(self, value): """Apply the five rules specified by RFC 8264 in order. Args: value (str): Value to enforce. Returns: str: Enforced value. """ temp = self.width_mapping_rule(value) temp = self.additional_mapping_rule(temp) temp = self.case_mapping_rule(temp) temp = self.normalization_rule(temp) return self.directionality_rule(temp) def width_mapping_rule(self, value): """Apply width mapping rule. Args: value (str): Value to enforce. Returns: str: Enforced value. """ return value def additional_mapping_rule(self, value): """Apply additional mapping rule. Args: value (str): Value to enforce. Returns: str: Enforced value. """ return value def case_mapping_rule(self, value): """Apply case mapping rule. Args: value (str): Value to enforce. Returns: str: Enforced value. """ if self._casemap: return self._casemap(value) return value def normalization_rule(self, value): """Apply normalization rule. Args: value (str): Value to enforce. Returns: str: Enforced value. """ return self.base.ucd.normalize('NFC', value) def directionality_rule(self, value): """Apply directionality rule. Args: value (str): Value to enforce. Returns: str: Enforced value. """ return value def idempotence_check(self, value): """Check that profile result is idempotent. Profiles that are not idempotent should override this method. Args: value (str): Value to enforce. Returns: str: Enforced value. """ new_value = self.apply_five_rules(value) if new_value != value: raise_error(self.name, value, -1, 'not_idempotent') return value class Username(Profile): """Concrete class for Username profile. Reference: Name: UsernameCasePreserved | UsernameCaseMapped Base Class: IdentifierClass. Applicability: Usernames in security and application protocols. Replaces: The SASLprep profile of stringprep. Width-Mapping Rule: Map fullwidth and halfwidth characters to their decomposition mappings. Additional Mapping Rule: None. Case-Mapping Rule: None | Map uppercase and titlecase characters to lowercase. Normalization Rule: NFC. Directionality Rule: The "Bidi Rule" defined in RFC 5893 applies. Enforcement: To be defined by security or application protocols that use this profile. Specification: RFC 8265, Section 3.3. Args: ucd (UnicodeData): Unicode character database. name (str): Name of profile. casemap (Optional[str]): Case mapping function: 'fold' or 'lower'. """ def __init__(self, ucd, name, casemap=None): super().__init__(IdentifierClass(ucd), name, casemap) def width_mapping_rule(self, value): # Override return self.base.ucd.width_map(value) def directionality_rule(self, value): # Override # Only apply the "bidi rule" if the string contains RTL characters. if has_rtl(value, self.base.ucd): if not bidi_rule(value, self.base.ucd): raise_error(self.name, value, -1, 'bidi_rule') return value class OpaqueString(Profile): """Concrete class for OpaqueString profile. Reference: Name: OpaqueString. Base Class: FreeformClass. Applicability: Passwords and other opaque strings in security and application protocols. Replaces: The SASLprep profile of stringprep. Width-Mapping Rule: None. Additional Mapping Rule: Map non-ASCII space characters to ASCII space. Case-Mapping Rule: None. Normalization Rule: NFC. Directionality Rule: None. Enforcement: To be defined by security or application protocols that use this profile. Specification: RFC 8265, Section 4.2. Args: ucd (UnicodeData): Unicode character database. name (str): Name of profile. """ def __init__(self, ucd, name): super().__init__(FreeFormClass(ucd), name, casemap=None) def additional_mapping_rule(self, value): # Override return self.base.ucd.map_nonascii_space_to_ascii(value) class Nickname(Profile): """Concrete class for Nickname profile. Reference: Name: Nickname. Base Class: FreeformClass. Applicability: Nicknames in messaging and text conferencing technologies; petnames for devices, accounts, and people; and other uses of nicknames or petnames. Replaces: None. Width Mapping Rule: None (handled via NFKC). Additional Mapping Rule: Map non-ASCII space characters to ASCII space, strip leading and trailing space characters, map interior sequences of multiple space characters to a single ASCII space. Case Mapping Rule: Map uppercase and titlecase characters to lowercase using Unicode Default Case Folding. Normalization Rule: NFKC. Directionality Rule: None. Enforcement: To be specified by applications. Specification: RFC 8266 Args: ucd (UnicodeData): Unicode character database. name (str): Name of profile. casemap (Optional[str]): Case mapping function: 'fold' or 'lower'. """ def __init__(self, ucd, name, casemap=None): super().__init__(FreeFormClass(ucd), name, casemap) def additional_mapping_rule(self, value): # Override temp = self.base.ucd.map_nonascii_space_to_ascii(value) return re.sub(r' +', ' ', temp.strip()) def normalization_rule(self, value): # Override return self.base.ucd.normalize('NFKC', value) def idempotence_check(self, value): # Override # Nickname profile is not idempotent due to ordering of additional # and case mapping rules, so we apply them again. value = self.apply_five_rules(value) return super().idempotence_check(value) def _casefold(s): return s.casefold() def _caselower(s): return s.lower() precis_i18n-1.0.0/precis_i18n/__init__.py0000644000076500000240000000020213235414405020302 0ustar bfishstaff00000000000000"""PRECIS-i18n: Internationalized Usernames and Passwords.""" __version__ = '1.0.0' from precis_i18n.factory import get_profile precis_i18n-1.0.0/precis_i18n/factory.py0000644000076500000240000000460313235411736020227 0ustar bfishstaff00000000000000"""Implements the `get_profile` factory function used to create profiles.""" import precis_i18n.baseclass as _base import precis_i18n.profile as _profile import precis_i18n.unicode as _unicode UCD = _unicode.UnicodeData() def _factory(profile, **kwds): def _construct(): return profile(UCD, **kwds) return _construct _PROFILES = { 'identifierclass': _factory(_base.IdentifierClass, name='IdentifierClass'), 'freeformclass': _factory(_base.FreeFormClass, name='FreeFormClass'), 'usernamecasepreserved': _factory(_profile.Username, name='UsernameCasePreserved'), 'usernamecasemapped': _factory(_profile.Username, name='UsernameCaseMapped', casemap='lower'), 'usernamecasemapped:casefold': _factory( _profile.Username, name='UsernameCaseMapped:CaseFold', casemap='fold'), 'usernamecasemapped:tolower': _factory( _profile.Username, name='UsernameCaseMapped:ToLower', casemap='lower'), 'opaquestring': _factory(_profile.OpaqueString, name='OpaqueString'), 'nicknamecasepreserved': _factory(_profile.Nickname, name='NicknameCasePreserved'), 'nicknamecasemapped': _factory(_profile.Nickname, name='NicknameCaseMapped', casemap='lower'), 'nicknamecasemapped:casefold': _factory( _profile.Nickname, name='NicknameCaseMapped:CaseFold', casemap='fold'), 'nicknamecasemapped:tolower': _factory( _profile.Nickname, name='NicknameCaseMapped:ToLower', casemap='lower'), # Alias for backward-compatibility with previous version of codec. 'nickname': _factory(_profile.Nickname, name='Nickname', casemap='lower') } def get_profile(name): """Return the desired PRECIS profile object. Choose name from: "IdentifierClass" "FreeFormClass" "UsernameCasePreserved" "UsernameCaseMapped" "UsernameCaseMapped:CaseFold" "UsernameCaseMapped:ToLower" "OpaqueString" "NicknameCasePreserved" "NicknameCaseMapped" "NicknameCaseMapped:CaseFold" "NicknameCaseMapped:ToLower" "Nickname" (alias for "NicknameCaseMapped") This function constructs a new profile each time; there is no cache. Args: name (str): name of a PRECIS profile Returns: AbstractProfile: PRECIS profile object. Raises: KeyError: Profile not found. """ return _PROFILES[name.lower()]() precis_i18n-1.0.0/precis_i18n/context.py0000644000076500000240000001611113235411720020232 0ustar bfishstaff00000000000000"""Implements PRECIS rules for derived properties CONTEXTJ and CONTEXTO.""" def context_rule_error(value, offset, ucd): """Apply the PRECIS context rules to `value[offset]`. Args: value (str): String value to check. offset (int): Position within `value`. ucd (UnicodeData): Unicode character database. Returns: str: '' if no error, or name of the rule that failed. """ cp = ord(value[offset]) if ucd.arabic_indic(cp): rule = rule_arabic_indic elif ucd.extended_arabic_indic(cp): rule = rule_extended_arabic_indic else: rule = _RULES[cp] try: valid = rule(value, offset, ucd) except IndexError: # Handle failure of _before and _after accessors. valid = False if valid: return '' # If context rule fails, return name of context rule (the name of the # function with 'rule_' prefix removed.) result = rule.__name__ if result.startswith('rule_'): result = result[5:] return result # These rules test a character at a given offset in the string. def rule_zero_width_nonjoiner(value, offset, ucd): """Return true if context permits a ZERO WIDTH NON-JOINER (U+200C). From https://tools.ietf.org/html/rfc5892#appendix-A.1: "This may occur in a formally cursive script (such as Arabic) in a context where it breaks a cursive connection as required for orthographic rules, as in the Persian language, for example. It also may occur in Indic scripts in a consonant-conjunct context (immediately following a virama), to control required display of such conjuncts." Args: value (str): String value to check. offset (int): Position within `value`. ucd (UnicodeData): Unicode character database. Returns: bool: True if value is allowed. """ assert value[offset] == '\u200c' if ucd.combining_virama(_before(value, offset)): return True if ucd.valid_jointype(value, offset): return True return False def rule_zero_width_joiner(value, offset, ucd): """Return true if context permits a ZERO WIDTH JOINER (U+200D). From https://tools.ietf.org/html/rfc5892#appendix-A.2: "This may occur in Indic scripts in a consonant-conjunct context (immediately following a virama), to control required display of such conjuncts." Args: value (str): String value to check. offset (int): Position within `value`. ucd (UnicodeData): Unicode character database. Returns: bool: True if value is allowed. """ assert value[offset] == '\u200d' return ucd.combining_virama(_before(value, offset)) def rule_middle_dot(value, offset, ucd): """Return true if context permits a MIDDLE DOT (U+00B7). From https://tools.ietf.org/html/rfc5892#appendix-A.3: "Between 'l' (U+006C) characters only, used to permit the Catalan character ela geminada to be expressed." Args: value (str): String value to check. offset (int): Position within `value`. ucd (UnicodeData): Unicode character database. Returns: bool: True if value is allowed. """ # pylint: disable=unused-argument assert value[offset] == '\u00b7' return 0x06c == _before(value, offset) == _after(value, offset) def rule_greek_keraia(value, offset, ucd): """Return true if context permits GREEK LOWER NUMERAL SIGN (U+0375). From https://tools.ietf.org/html/rfc5892#appendix-A.4: "The script of the following character MUST be Greek." Args: value (str): String value to check. offset (int): Position within `value`. ucd (UnicodeData): Unicode character database. Returns: bool: True if value is allowed. """ assert value[offset] == '\u0375' return ucd.greek_script(_after(value, offset)) def rule_hebrew_punctuation(value, offset, ucd): """Return true if context permits HEBREW PUNCTUATION GERESH or GERSHAYIM (U+05F3, U+05F4). From https://tools.ietf.org/html/rfc5892#appendix-A.5, https://tools.ietf.org/html/rfc5892#appendix-A.6: "The script of the preceding character MUST be Hebrew." Args: value (str): String value to check. offset (int): Position within `value`. ucd (UnicodeData): Unicode character database. Returns: bool: True if value is allowed. """ assert value[offset] in '\u05f3\u05f4' return ucd.hebrew_script(_before(value, offset)) # These rules ignore the offset argument; they test the entire string. A string # only needs to be tested once, irrespective of the number of times the rule is # triggered. def rule_katakana_middle_dot(value, offset, ucd): """Return true if context permits KATAKANA MIDDLE DOT (U+30FB). From https://tools.ietf.org/html/rfc5892#appendix-A.7: "Note that the Script of Katakana Middle Dot is not any of "Hiragana", "Katakana", or "Han". The effect of this rule is to require at least one character in the label to be in one of those scripts." Args: value (str): String value to check. offset (int): Position within `value`. ucd (UnicodeData): Unicode character database. Returns: bool: True if value is allowed. """ assert value[offset] == '\u30fb' return any(ucd.hiragana_katakana_han_script(ord(x)) for x in value) def rule_arabic_indic(value, offset, ucd): """Return true if context permits ARABIC-INDIC DIGITS (U+0660..U+0669). From https://tools.ietf.org/html/rfc5892#appendix-A.8: "Can not be mixed with Extended Arabic-Indic Digits." Args: value (str): String value to check. offset (int): Position within `value`. ucd (UnicodeData): Unicode character database. Returns: bool: True if value is allowed. """ assert ucd.arabic_indic(ord(value[offset])) return not any(ucd.extended_arabic_indic(ord(x)) for x in value) def rule_extended_arabic_indic(value, offset, ucd): """Return true if context permits EXTENDED ARABIC-INDIC DIGITS (U+06F0..U+06F9). From https://tools.ietf.org/html/rfc5892#appendix-A.9: "Can not be mixed with Arabic-Indic Digits." Args: value (str): String value to check. offset (int): Position within `value`. ucd (UnicodeData): Unicode character database. Returns: bool: True if value is allowed. """ assert ucd.extended_arabic_indic(ord(value[offset])) return not any(ucd.arabic_indic(ord(x)) for x in value) _RULES = { 0x200c: rule_zero_width_nonjoiner, 0x200d: rule_zero_width_joiner, 0x00b7: rule_middle_dot, 0x0375: rule_greek_keraia, 0x05f3: rule_hebrew_punctuation, 0x05f4: rule_hebrew_punctuation, 0x30fb: rule_katakana_middle_dot, } def _before(value, offset): """Return code point before `value[offset]` or raise IndexError.""" if offset <= 0: raise IndexError(offset - 1) return ord(value[offset - 1]) def _after(value, offset): """Return code point after `value[offset]` or raise IndexError.""" return ord(value[offset + 1]) precis_i18n-1.0.0/precis_i18n/codec.py0000644000076500000240000000155013235411704017626 0ustar bfishstaff00000000000000"""Registers precis_i18n codec.""" import codecs from precis_i18n import get_profile def _make_encode(profile): def _encode(s, errors='strict'): if errors != 'strict': raise ValueError('invalid errors argument') return (profile.enforce(s).encode('utf-8'), len(s)) return _encode def _not_supported(s, errors='strict'): # pylint: disable=unused-argument raise NotImplementedError('decode not supported') def search(name): """Search function registered for PRECIS codecs. Args: name (str): Codec name. Returns: CodecInfo: Encode/decode information or None if not found. """ try: profile = get_profile(name) except KeyError: return None return codecs.CodecInfo( name=name, encode=_make_encode(profile), decode=_not_supported) codecs.register(search) precis_i18n-1.0.0/precis_i18n/bidi.py0000644000076500000240000000710113235411677017467 0ustar bfishstaff00000000000000"""Implements the BiDi Rule. (Source: RFC 5893, Section 2) The following rule, consisting of six conditions, applies to labels in Bidi domain names. The requirements that this rule satisfies are described in Section 3. All of the conditions must be satisfied for the rule to be satisfied. 1. The first character must be a character with Bidi property L, R, or AL. If it has the R or AL property, it is an RTL label; if it has the L property, it is an LTR label. 2. In an RTL label, only characters with the Bidi properties R, AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed. 3. In an RTL label, the end of the label must be a character with Bidi property R, AL, EN, or AN, followed by zero or more characters with Bidi property NSM. 4. In an RTL label, if an EN is present, no AN may be present, and vice versa. 5. In an LTR label, only characters with the Bidi properties L, EN, ES, CS, ET, ON, BN, or NSM are allowed. 6. In an LTR label, the end of the label must be a character with Bidi property L or EN, followed by zero or more characters with Bidi property NSM. """ _LTR_FIRST = {'L'} _LTR_ALLOWED = {'L', 'EN', 'ES', 'CS', 'ET', 'ON', 'BN', 'NSM'} _LTR_LAST = {'L', 'EN'} _LTR_EXCL = {} _RTL_FIRST = {'R', 'AL'} _RTL_ALLOWED = {'R', 'AL', 'AN', 'EN', 'ES', 'CS', 'ET', 'ON', 'BN', 'NSM'} _RTL_LAST = {'R', 'AL', 'EN', 'AN'} _RTL_EXCL = {'EN', 'AN'} _RTL_ANY = {'R', 'AL', 'AN'} def bidi_rule(value, ucd): """Check if `value` obeys the BiDi rule. Args: value (str): String value to check. ucd (UnicodeData): Unicode character database. Returns: bool: True if value satisfies BiDi rule. """ bidi = ucd.bidirectional(value[0]) if bidi in _LTR_FIRST: return _bidi_rule(value, ucd, _LTR_ALLOWED, _LTR_LAST, _LTR_EXCL) if bidi in _RTL_FIRST: return _bidi_rule(value, ucd, _RTL_ALLOWED, _RTL_LAST, _RTL_EXCL) return False def _bidi_rule(value, ucd, allowed, last, exclusive): """Check the bidi_rule for LTR or RTL, depending on parameters. Args: value (str): String value to check. ucd (UnicodeData): Unicode character database. allowed (set): Set of allowed BiDi properties. last (set): Set of BiDi properties allowed at end (followed by NSM). exclusive (set): Set of BiDi properties that are mutually exclusive. Returns: bool: True if value satisfies the BiDi rule. """ assert ucd.bidirectional(value[0]) in _LTR_FIRST | _RTL_FIRST # Starting from the end, find the first character whose bidi is not 'NSM'. found = -1 for i in reversed(range(len(value))): bidi = ucd.bidirectional(value[i]) if bidi != 'NSM': found = i break # Last non-NSM character must be in `last`. if found < 0 or bidi not in last: return False # Check if last char is in the exclusive set. bidi_seen = bidi if bidi in exclusive else None # Make sure the remaining characters are allowed. for i in range(1, found): bidi = ucd.bidirectional(value[i]) if bidi not in allowed: return False if bidi in exclusive and bidi_seen != bidi: if bidi_seen: return False bidi_seen = bidi return True def has_rtl(value, ucd): """Check if value contains any RTL characters. Args: value (str): String value to check. ucd (UnicodeData): Unicode character database. Returns: bool: True if value contains RTL characters. """ return any(ucd.bidirectional(x) in _RTL_ANY for x in value) precis_i18n-1.0.0/precis_i18n/derived.py0000644000076500000240000002260113235411731020173 0ustar bfishstaff00000000000000"""Implements the PRECIS (RFC 8264) `derived_property` function.""" PVALID = 'PVALID' FREE_PVAL = 'FREE_PVAL' DISALLOWED = 'DISALLOWED' UNASSIGNED = 'UNASSIGNED' CONTEXTJ = 'CONTEXTJ' CONTEXTO = 'CONTEXTO' # pylint: disable=too-many-return-statements,too-many-branches def derived_property(cp, ucd): """Return value of the PRECIS derived property of a code point. From section 8 of RFC 8264: If .cp. .in. Exceptions Then Exceptions(cp); Else If .cp. .in. BackwardCompatible Then BackwardCompatible(cp); Else If .cp. .in. Unassigned Then UNASSIGNED; Else If .cp. .in. ASCII7 Then PVALID; Else If .cp. .in. JoinControl Then CONTEXTJ; Else If .cp. .in. OldHangulJamo Then DISALLOWED; Else If .cp. .in. PrecisIgnorableProperties Then DISALLOWED; Else If .cp. .in. Controls Then DISALLOWED; Else If .cp. .in. HasCompat Then ID_DIS or FREE_PVAL; Else If .cp. .in. LetterDigits Then PVALID; Else If .cp. .in. OtherLetterDigits Then ID_DIS or FREE_PVAL; Else If .cp. .in. Spaces Then ID_DIS or FREE_PVAL; Else If .cp. .in. Symbols Then ID_DIS or FREE_PVAL; Else If .cp. .in. Punctuation Then ID_DIS or FREE_PVAL; Else DISALLOWED; Args: cp (int): Code point. ucd (UnicodeData): Unicode character database. Returns: str: Derived property for `cp`. """ category = ucd.category(chr(cp)) if in_exceptions(cp): return exceptions(cp), 'exceptions' if in_backward_compatible(cp): return backward_compatible( cp), 'backward_compatible' # pragma: no cover if in_unassigned(cp, category, ucd): return UNASSIGNED, 'unassigned' if in_ascii7(cp): return PVALID, 'ascii7' if in_join_control(cp): return CONTEXTJ, 'join_control' if in_old_hangul_jamo(cp, ucd): return DISALLOWED, 'old_hangul_jamo' if in_precis_ignorable_properties(cp, ucd): return DISALLOWED, 'precis_ignorable_properties' if in_controls(cp, ucd): return DISALLOWED, 'controls' if in_has_compat(cp, ucd): return FREE_PVAL, 'has_compat' if in_letter_digits(category): return PVALID, 'letter_digits' if in_other_letter_digits(category): return FREE_PVAL, 'other_letter_digits' if in_spaces(category): return FREE_PVAL, 'spaces' if in_symbols(category): return FREE_PVAL, 'symbols' if in_punctuation(category): return FREE_PVAL, 'punctuation' return DISALLOWED, 'other' def in_letter_digits(category): """Category for code points informally described as "language characters". Args: category (str): Unicode general category. Returns: bool: True if `category` in set. """ return category in {'Ll', 'Lu', 'Lo', 'Nd', 'Lm', 'Mn', 'Mc'} def in_exceptions(cp): """Code points for which the derived property cannot be assigned using only the Unicode core property values. Args: cp (int): Code point. Returns: bool: True if `cp` is in set. """ return cp in _EXCEPTIONS_TABLE def in_backward_compatible(cp): """Code points whose Unicode property values have changed such that their derived property changed. Args: cp (int): Code point. Returns: bool: True if `cp` is in set. """ return cp in _BACKWARD_COMPATIBLE_TABLE def in_join_control(cp): """Code points for Join Control characters required under some circumstances. (CONTEXTJ) Args: cp (int): Code point. Returns: bool: True if `cp` is in set. """ return 0x200c <= cp <= 0x200d def in_old_hangul_jamo(cp, ucd): """Code points for all conjoining Hangul Jamo (Leading Jamo, Vowel Jamo, and Trailing Jamo). Args: cp (int): Code point. ucd (UnicodeData): Unicode character database. Returns: bool: True if `cp` is in set. """ return ucd.old_hangul_jamo(cp) def in_unassigned(cp, category, ucd): """Code points that are not (yet) assigned in Unicode. Args: cp (int): Code point. category (str): Unicode general category for `cp`. ucd (UnicodeData): Unicode character database. Returns: bool: True if `cp` is in set. """ return category == 'Cn' and not ucd.noncharacter(cp) def in_ascii7(cp): """Code points for all printable, non-space characters from the 7-bit ASCII range. Args: cp (int): Code point. Returns: bool: True if `cp` is in set. """ return 0x21 <= cp <= 0x7E def in_controls(cp, ucd): """Code points for all control characters. Args: cp (int): Code point. ucd (UnicodeData): Unicode character database. Returns: bool: True if `cp` is in set. """ return ucd.control(cp) def in_precis_ignorable_properties(cp, ucd): """Code points that are discouraged from use in PRECIS string classes. Args: cp (int): Code point. ucd (UnicodeData): Unicode character database. Returns: bool: True if `cp` is in set. """ return ucd.default_ignorable(cp) or ucd.noncharacter(cp) def in_spaces(category): """Category for code points that are space characters. Args: category (str): Unicode general category. Returns: bool: True if `category` in set. """ return category in {'Zs'} def in_symbols(category): """Category for code points that are symbols. Args: category (str): Unicode general category. Returns: bool: True if `category` in set. """ return category in {'Sm', 'Sc', 'Sk', 'So'} def in_punctuation(category): """Category for code points that are punctuation characters. Args: category (str): Unicode general category. Returns: bool: True if `category` in set. """ return category in {'Pc', 'Pd', 'Ps', 'Pe', 'Pi', 'Pf', 'Po'} def in_has_compat(cp, ucd): """Code points that have compatibility equivalents. Args: cp (int): Code point. ucd (UnicodeData): Unicode character database. Returns: bool: True if `cp` is in set. """ return ucd.has_compat(cp) def in_other_letter_digits(category): """Code points that are letters and digits other than the "traditional" letters and digits. Args: category (str): Unicode general category. Returns: bool: True if `category` in set. """ return category in {'Lt', 'Nl', 'No', 'Me'} def exceptions(cp): """Return derived property for exception codepoint. Args: cp (int): Code point. Returns: str: Derived property for `cp`. """ return _EXCEPTIONS_TABLE[cp] def backward_compatible(cp): # pragma: no cover """Return derived property for backward-compatible code point. Args: cp (int): Code point. Returns: str: Derived property for `cp`. """ return _BACKWARD_COMPATIBLE_TABLE[cp] _EXCEPTIONS_TABLE = { # Source: RFC 5892, Section 2.6, pp. 7-8. # PVALID -- Would otherwise have been DISALLOWED 0x00DF: PVALID, # LATIN SMALL LETTER SHARP S 0x03C2: PVALID, # GREEK SMALL LETTER FINAL SIGMA 0x06FD: PVALID, # ARABIC SIGN SINDHI AMPERSAND 0x06FE: PVALID, # ARABIC SIGN SINDHI POSTPOSITION MEN 0x0F0B: PVALID, # TIBETAN MARK INTERSYLLABIC TSHEG 0x3007: PVALID, # IDEOGRAPHIC NUMBER ZERO # CONTEXTO -- Would otherwise have been DISALLOWED 0x00B7: CONTEXTO, # MIDDLE DOT 0x0375: CONTEXTO, # GREEK LOWER NUMERAL SIGN (KERAIA) 0x05F3: CONTEXTO, # HEBREW PUNCTUATION GERESH 0x05F4: CONTEXTO, # HEBREW PUNCTUATION GERSHAYIM 0x30FB: CONTEXTO, # KATAKANA MIDDLE DOT # CONTEXTO -- Would otherwise have been PVALID 0x0660: CONTEXTO, # ARABIC-INDIC DIGIT ZERO 0x0661: CONTEXTO, # ARABIC-INDIC DIGIT ONE 0x0662: CONTEXTO, # ARABIC-INDIC DIGIT TWO 0x0663: CONTEXTO, # ARABIC-INDIC DIGIT THREE 0x0664: CONTEXTO, # ARABIC-INDIC DIGIT FOUR 0x0665: CONTEXTO, # ARABIC-INDIC DIGIT FIVE 0x0666: CONTEXTO, # ARABIC-INDIC DIGIT SIX 0x0667: CONTEXTO, # ARABIC-INDIC DIGIT SEVEN 0x0668: CONTEXTO, # ARABIC-INDIC DIGIT EIGHT 0x0669: CONTEXTO, # ARABIC-INDIC DIGIT NINE 0x06F0: CONTEXTO, # EXTENDED ARABIC-INDIC DIGIT ZERO 0x06F1: CONTEXTO, # EXTENDED ARABIC-INDIC DIGIT ONE 0x06F2: CONTEXTO, # EXTENDED ARABIC-INDIC DIGIT TWO 0x06F3: CONTEXTO, # EXTENDED ARABIC-INDIC DIGIT THREE 0x06F4: CONTEXTO, # EXTENDED ARABIC-INDIC DIGIT FOUR 0x06F5: CONTEXTO, # EXTENDED ARABIC-INDIC DIGIT FIVE 0x06F6: CONTEXTO, # EXTENDED ARABIC-INDIC DIGIT SIX 0x06F7: CONTEXTO, # EXTENDED ARABIC-INDIC DIGIT SEVEN 0x06F8: CONTEXTO, # EXTENDED ARABIC-INDIC DIGIT EIGHT 0x06F9: CONTEXTO, # EXTENDED ARABIC-INDIC DIGIT NINE # DISALLOWED -- Would otherwise have been PVALID 0x0640: DISALLOWED, # ARABIC TATWEEL 0x07FA: DISALLOWED, # NKO LAJANYALAN 0x302E: DISALLOWED, # HANGUL SINGLE DOT TONE MARK 0x302F: DISALLOWED, # HANGUL DOUBLE DOT TONE MARK 0x3031: DISALLOWED, # VERTICAL KANA REPEAT MARK 0x3032: DISALLOWED, # VERTICAL KANA REPEAT WITH VOICED SOUND MARK 0x3033: DISALLOWED, # VERTICAL KANA REPEAT MARK UPPER HALF 0x3034: DISALLOWED, # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HA 0x3035: DISALLOWED, # VERTICAL KANA REPEAT MARK LOWER HALF 0x303B: DISALLOWED, # VERTICAL IDEOGRAPHIC ITERATION MARK } _BACKWARD_COMPATIBLE_TABLE = {} precis_i18n-1.0.0/MANIFEST.in0000644000076500000240000000014113157336171015613 0ustar bfishstaff00000000000000include README.rst LICENSE.txt CHANGELOG.rst test/golden.json exclude test/test_derived_props.py precis_i18n-1.0.0/setup.py0000644000076500000240000000401313235412153015561 0ustar bfishstaff00000000000000"""A setuptools based setup module for precis_i18n. See: https://packaging.python.org/en/latest/distributing.html https://github.com/pypa/sampleproject """ # Always prefer setuptools over distutils from setuptools import setup # To use a consistent encoding from codecs import open from os import path import re here = path.abspath(path.dirname(__file__)) description_path = path.join(here, 'README.rst') version_path = path.join(here, 'precis_i18n', '__init__.py') # Read README.rst. with open(description_path, encoding='utf-8') as f: long_description = f.read() # Extract version number. with open(version_path, encoding='utf-8') as f: version_regex = re.compile(r"(?m)__version__\s*=\s*'(\d+\.\d+\.\d+)'") version = version_regex.search(f.read()).group(1) # Running `python setup.py test` should run unit tests (see `test_suite`). def all_tests(): import unittest test_loader = unittest.TestLoader() return test_loader.discover('test') setup( name='precis_i18n', packages=['precis_i18n'], version=version, license='MIT', description='PRECIS-i18n: Internationalized Usernames and Passwords', long_description=long_description, keywords='precis codec username password', # The project's main homepage and author. url='https://github.com/byllyfish/precis_i18n', author='William W. Fisher', author_email='william.w.fisher@gmail.com', # See https://pypi.python.org/pypi?%3Aaction=list_classifiers classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Topic :: Software Development :: Internationalization' ], zip_safe=True, test_suite="setup.all_tests" ) precis_i18n-1.0.0/setup.cfg0000644000076500000240000000007313235417633015702 0ustar bfishstaff00000000000000[egg_info] tag_build = tag_date = 0 tag_svn_revision = 0 precis_i18n-1.0.0/precis_i18n.egg-info/0000755000076500000240000000000013235417633017677 5ustar bfishstaff00000000000000precis_i18n-1.0.0/precis_i18n.egg-info/PKG-INFO0000644000076500000240000002636313235417632021005 0ustar bfishstaff00000000000000Metadata-Version: 1.1 Name: precis-i18n Version: 1.0.0 Summary: PRECIS-i18n: Internationalized Usernames and Passwords Home-page: https://github.com/byllyfish/precis_i18n Author: William W. Fisher Author-email: william.w.fisher@gmail.com License: MIT Description: PRECIS-i18n: Internationalized Usernames and Passwords ====================================================== |MIT licensed| |Build Status| |codecov.io| If you want your application to accept unicode user names and passwords, you must be careful in how you validate and compare them. The PRECIS framework makes internationalized user names and passwords safer for use by applications. PRECIS profiles transform unicode strings into a canonical form, suitable for comparison. This module implements the PRECIS Framework as described in: - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols (`RFC 8264 `__) - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords (`RFC 8265 `__) - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Nicknames (`RFC 8266 `__) Requires Python 3.3 or later. Usage ----- Use the ``get_profile`` function to obtain a profile object, then use its ``enforce`` method. The ``enforce`` method returns a Unicode string. :: >>> from precis_i18n import get_profile >>> username = get_profile('UsernameCaseMapped') >>> username.enforce('Kevin') 'kevin' >>> username.enforce('\u212Aevin') 'kevin' >>> username.enforce('\uFF2Bevin') 'kevin' >>> username.enforce('\U0001F17Aevin') Traceback (most recent call last): ... UnicodeEncodeError: 'UsernameCaseMapped' codec can't encode character '\U0001f17a' in position 0: DISALLOWED/symbols Alternatively, you can use the Python ``str.encode`` API. Import the ``precis_i18n.codec`` module to register the PRECIS codec names. Now you can use the ``str.encode`` method with any unicode string. The result will be a UTF-8 encoded byte string or a ``UnicodeEncodeError`` if the string is disallowed. :: >>> import precis_i18n.codec >>> 'Kevin'.encode('UsernameCasePreserved') b'Kevin' >>> '\u212Aevin'.encode('UsernameCasePreserved') b'Kevin' >>> '\uFF2Bevin'.encode('UsernameCasePreserved') b'Kevin' >>> '\u212Aevin'.encode('UsernameCaseMapped') b'kevin' >>> '\uFF2Bevin'.encode('OpaqueString') b'\xef\xbc\xabevin' >>> '\U0001F17Aevin'.encode('UsernameCasePreserved') Traceback (most recent call last): ... UnicodeEncodeError: 'UsernameCasePreserved' codec can't encode character '\U0001f17a' in position 0: DISALLOWED/symbols Supported Profiles and Codecs ----------------------------- Each PRECIS profile has a corresponding codec name. The ``CaseMapped`` variant converts the string to lower case for implementing case-insensitive comparison. - UsernameCasePreserved - UsernameCaseMapped - OpaqueString - NicknameCasePreserved - NicknameCaseMapped The ``CaseMapped`` profiles use Unicode ``ToLower`` per the latest RFC. Previous verions of this package used Unicode Default Case Folding. There are CaseMapped variants for different case transformations. These profile names are deprecated: - UsernameCaseMapped:ToLower - UsernameCaseMapped:CaseFold - NicknameCaseMapped:ToLower - NicknameCaseMapped:CaseFold The PRECIS base string classes are also available as codecs: - IdentifierClass - FreeFormClass Error Messages -------------- A PRECIS profile raises a ``UnicodeEncodeError`` exception if a string is disallowed. The ``reason`` field specifies the kind of error. +------------------------------+---------------------------------------------+ | Reason | Explanation | +==============================+=============================================+ | DISALLOWED/arabic\_indic | Arabic-Indic digits cannot be mixed with | | | Extended Arabic-Indic Digits. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/bidi\_rule | Right-to-left string cannot contain | | | left-to-right characters due to the "Bidi" | | | rule. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/controls | Control character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/empty | After applying the profile, the result | | | cannot be empty. | +------------------------------+---------------------------------------------+ | DISALLOWED/exceptions | Exception character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/extended\_arabic\ | Extended Arabic-Indic digits cannot be | | _indic | mixed with Arabic-Indic Digits. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/greek\_keraia | Greek keraia must be followed by a Greek | | | character. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/has\_compat | Compatibility characters are not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/hebrew\ | Hebrew punctuation geresh or gershayim must | | _punctuation | be preceded by Hebrew character. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/katakana\_middle\ | Katakana middle dot must be accompanied by | | _dot | a Hiragana, Katakana, or Han character. | | | (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/middle\_dot | Middle dot must be surrounded by the letter | | | 'l'. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/not\_idempotent | After reapplying the profile, the result is | | | not stable. | +------------------------------+---------------------------------------------+ | DISALLOWED/old\_hangul\_jamo | Conjoining Hangul Jamo is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/other | Other character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/other\_letter\ | Non-traditional letter or digit is not | | _digits | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/precis\ | Default ignorable or non-character is not | | _ignorable\_properties | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/punctuation | Non-ASCII punctuation character is not | | | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/spaces | Space character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/symbols | Non-ASCII symbol character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/unassigned | Unassigned unicode character is not | | | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/zero\_width\ | Zero width joiner must immediately follow a | | _joiner | combining virama. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/zero\_width\ | Zero width non-joiner must immediately | | _nonjoiner | follow a combining virama, or appear where | | | it breaks a cursive connection in a | | | formally cursive script. (Context) | +------------------------------+---------------------------------------------+ .. |MIT licensed| image:: https://img.shields.io/badge/license-MIT-blue.svg :target: https://raw.githubusercontent.com/byllyfish/precis_i18n/master/LICENSE.txt .. |Build Status| image:: https://travis-ci.org/byllyfish/precis_i18n.svg?branch=master :target: https://travis-ci.org/byllyfish/precis_i18n .. |codecov.io| image:: https://codecov.io/gh/byllyfish/precis_i18n/coverage.svg?branch=master :target: https://codecov.io/gh/byllyfish/precis_i18n?branch=master Keywords: precis codec username password Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Topic :: Software Development :: Internationalization precis_i18n-1.0.0/precis_i18n.egg-info/zip-safe0000644000076500000240000000000113235417632021326 0ustar bfishstaff00000000000000 precis_i18n-1.0.0/precis_i18n.egg-info/SOURCES.txt0000644000076500000240000000113713235417633021565 0ustar bfishstaff00000000000000CHANGELOG.rst LICENSE.txt MANIFEST.in README.rst setup.py precis_i18n/__init__.py precis_i18n/baseclass.py precis_i18n/bidi.py precis_i18n/codec.py precis_i18n/codepointset.py precis_i18n/context.py precis_i18n/derived.py precis_i18n/factory.py precis_i18n/profile.py precis_i18n/unicode.py precis_i18n.egg-info/PKG-INFO precis_i18n.egg-info/SOURCES.txt precis_i18n.egg-info/dependency_links.txt precis_i18n.egg-info/top_level.txt precis_i18n.egg-info/zip-safe test/golden.json test/test_codec.py test/test_codepointset.py test/test_factory.py test/test_golden.py test/test_idempotent.py test/test_precis.pyprecis_i18n-1.0.0/precis_i18n.egg-info/top_level.txt0000644000076500000240000000001413235417632022423 0ustar bfishstaff00000000000000precis_i18n precis_i18n-1.0.0/precis_i18n.egg-info/dependency_links.txt0000644000076500000240000000000113235417632023744 0ustar bfishstaff00000000000000 precis_i18n-1.0.0/README.rst0000644000076500000240000002203713235414311015542 0ustar bfishstaff00000000000000PRECIS-i18n: Internationalized Usernames and Passwords ====================================================== |MIT licensed| |Build Status| |codecov.io| If you want your application to accept unicode user names and passwords, you must be careful in how you validate and compare them. The PRECIS framework makes internationalized user names and passwords safer for use by applications. PRECIS profiles transform unicode strings into a canonical form, suitable for comparison. This module implements the PRECIS Framework as described in: - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols (`RFC 8264 `__) - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords (`RFC 8265 `__) - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Nicknames (`RFC 8266 `__) Requires Python 3.3 or later. Usage ----- Use the ``get_profile`` function to obtain a profile object, then use its ``enforce`` method. The ``enforce`` method returns a Unicode string. :: >>> from precis_i18n import get_profile >>> username = get_profile('UsernameCaseMapped') >>> username.enforce('Kevin') 'kevin' >>> username.enforce('\u212Aevin') 'kevin' >>> username.enforce('\uFF2Bevin') 'kevin' >>> username.enforce('\U0001F17Aevin') Traceback (most recent call last): ... UnicodeEncodeError: 'UsernameCaseMapped' codec can't encode character '\U0001f17a' in position 0: DISALLOWED/symbols Alternatively, you can use the Python ``str.encode`` API. Import the ``precis_i18n.codec`` module to register the PRECIS codec names. Now you can use the ``str.encode`` method with any unicode string. The result will be a UTF-8 encoded byte string or a ``UnicodeEncodeError`` if the string is disallowed. :: >>> import precis_i18n.codec >>> 'Kevin'.encode('UsernameCasePreserved') b'Kevin' >>> '\u212Aevin'.encode('UsernameCasePreserved') b'Kevin' >>> '\uFF2Bevin'.encode('UsernameCasePreserved') b'Kevin' >>> '\u212Aevin'.encode('UsernameCaseMapped') b'kevin' >>> '\uFF2Bevin'.encode('OpaqueString') b'\xef\xbc\xabevin' >>> '\U0001F17Aevin'.encode('UsernameCasePreserved') Traceback (most recent call last): ... UnicodeEncodeError: 'UsernameCasePreserved' codec can't encode character '\U0001f17a' in position 0: DISALLOWED/symbols Supported Profiles and Codecs ----------------------------- Each PRECIS profile has a corresponding codec name. The ``CaseMapped`` variant converts the string to lower case for implementing case-insensitive comparison. - UsernameCasePreserved - UsernameCaseMapped - OpaqueString - NicknameCasePreserved - NicknameCaseMapped The ``CaseMapped`` profiles use Unicode ``ToLower`` per the latest RFC. Previous verions of this package used Unicode Default Case Folding. There are CaseMapped variants for different case transformations. These profile names are deprecated: - UsernameCaseMapped:ToLower - UsernameCaseMapped:CaseFold - NicknameCaseMapped:ToLower - NicknameCaseMapped:CaseFold The PRECIS base string classes are also available as codecs: - IdentifierClass - FreeFormClass Error Messages -------------- A PRECIS profile raises a ``UnicodeEncodeError`` exception if a string is disallowed. The ``reason`` field specifies the kind of error. +------------------------------+---------------------------------------------+ | Reason | Explanation | +==============================+=============================================+ | DISALLOWED/arabic\_indic | Arabic-Indic digits cannot be mixed with | | | Extended Arabic-Indic Digits. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/bidi\_rule | Right-to-left string cannot contain | | | left-to-right characters due to the "Bidi" | | | rule. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/controls | Control character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/empty | After applying the profile, the result | | | cannot be empty. | +------------------------------+---------------------------------------------+ | DISALLOWED/exceptions | Exception character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/extended\_arabic\ | Extended Arabic-Indic digits cannot be | | _indic | mixed with Arabic-Indic Digits. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/greek\_keraia | Greek keraia must be followed by a Greek | | | character. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/has\_compat | Compatibility characters are not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/hebrew\ | Hebrew punctuation geresh or gershayim must | | _punctuation | be preceded by Hebrew character. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/katakana\_middle\ | Katakana middle dot must be accompanied by | | _dot | a Hiragana, Katakana, or Han character. | | | (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/middle\_dot | Middle dot must be surrounded by the letter | | | 'l'. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/not\_idempotent | After reapplying the profile, the result is | | | not stable. | +------------------------------+---------------------------------------------+ | DISALLOWED/old\_hangul\_jamo | Conjoining Hangul Jamo is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/other | Other character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/other\_letter\ | Non-traditional letter or digit is not | | _digits | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/precis\ | Default ignorable or non-character is not | | _ignorable\_properties | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/punctuation | Non-ASCII punctuation character is not | | | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/spaces | Space character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/symbols | Non-ASCII symbol character is not allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/unassigned | Unassigned unicode character is not | | | allowed. | +------------------------------+---------------------------------------------+ | DISALLOWED/zero\_width\ | Zero width joiner must immediately follow a | | _joiner | combining virama. (Context) | +------------------------------+---------------------------------------------+ | DISALLOWED/zero\_width\ | Zero width non-joiner must immediately | | _nonjoiner | follow a combining virama, or appear where | | | it breaks a cursive connection in a | | | formally cursive script. (Context) | +------------------------------+---------------------------------------------+ .. |MIT licensed| image:: https://img.shields.io/badge/license-MIT-blue.svg :target: https://raw.githubusercontent.com/byllyfish/precis_i18n/master/LICENSE.txt .. |Build Status| image:: https://travis-ci.org/byllyfish/precis_i18n.svg?branch=master :target: https://travis-ci.org/byllyfish/precis_i18n .. |codecov.io| image:: https://codecov.io/gh/byllyfish/precis_i18n/coverage.svg?branch=master :target: https://codecov.io/gh/byllyfish/precis_i18n?branch=master precis_i18n-1.0.0/CHANGELOG.rst0000644000076500000240000000323713235412447016105 0ustar bfishstaff00000000000000Changelog ========= 1.0.0 ----- - Release 1.0 version. - Add test that all codepoints are idempotent. - Update copyright year (2018). 0.7.0 ----- - (IMPORTANT) This version changes the results of the CaseMapped profiles due to publication of new RFC's. - The CaseMapped profiles now default to using ToLower instead of CaseFold. - Added profile variants for CaseFold, just for completeness. - Update references to RFC numbers in documentation and comments. 0.6.0 ----- - (IMPORTANT) This version changes the results of the Nickname profile. - Add support for proposed changes to RFC 7564 that will make the Nickname profile idempotent (Issue #3). - Add the "DISALLOWED/not\_idempotent" error message. - Sign pypi package with gpg. 0.5.0 ----- - (API CHANGE) Profile's ``enforce`` method now returns a Unicode string instead of UTF-8 bytes. This API change affects code that uses get\_profile() to obtain a profile. The codec still returns UTF-8 bytes. (Issue 2) - The codec search function now returns None when it doesn't find a matching codec. 0.4.1 ----- - Add LICENSE.txt and CHANGELOG.md to source tarball. (Issue 1) - Update travis and pypi metadata for Python 3.6. 0.4.0 ----- - Improve error messages when a string is disallowed. - Clean up test examples. Add a few more test cases. 0.3.0 ----- - Added the ``get_profile`` function to access profiles, when not using the codec. - Removed the global variables previously used to access profiles. - Added codecs for different case mappings of username and nickname. - Added codecs for base string classes: identifierclass and freeformclass. 0.2.2 ----- - Initial release to PyPI. precis_i18n-1.0.0/LICENSE.txt0000644000076500000240000000205213235405741015700 0ustar bfishstaff00000000000000Copyright (c) 2016-2018 William W. Fisher Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.