decomposable={ 'À':'À','Á':'Á','Â':'Â','Ã':'Ã','Ä':'Ä','Å':'Å','Ç':'Ç','È':'È','É':'É','Ê':'Ê','Ë':'Ë','Ì':'Ì','Í':'Í','Î':'Î','Ï':'Ï','Ñ':'Ñ','Ò':'Ò','Ó':'Ó','Ô':'Ô','Õ':'Õ','Ö':'Ö','Ù':'Ù','Ú':'Ú','Û':'Û','Ü':'Ü','Ý':'Ý','à':'à','á':'á','â':'â','ã':'ã','ä':'ä','å':'å','ç':'ç','è':'è','é':'é','ê':'ê','ë':'ë','ì':'ì','í':'í','î':'î','ï':'ï','ñ':'ñ','ò':'ò','ó':'ó','ô':'ô','õ':'õ','ö':'ö','ù':'ù','ú':'ú','û':'û','ü':'ü','ý':'ý','Ā':'Ā','ā':'ā','Ă':'Ă','ă':'ă','Ą':'Ą','ą':'ą','Ć':'Ć','ć':'ć','Ĉ':'Ĉ','ĉ':'ĉ','Ċ':'Ċ','ċ':'ċ','Č':'Č','č':'č','Ď':'Ď','ď':'ď','Ē':'Ē','ē':'ē','Ĕ':'Ĕ','ĕ':'ĕ','Ė':'Ė','ė':'ė','Ę':'Ę','ę':'ę','Ě':'Ě','ě':'ě','Ĝ':'Ĝ','ĝ':'ĝ','Ğ':'Ğ','ğ':'ğ','Ġ':'Ġ','ġ':'ġ','Ģ':'Ģ','ģ':'ģ','Ĥ':'Ĥ','ĥ':'ĥ','Ĩ':'Ĩ','ĩ':'ĩ','Ī':'Ī','ī':'ī','Ĭ':'Ĭ','ĭ':'ĭ','Į':'Į','į':'į','İ':'İ','Ĵ':'Ĵ','ĵ':'ĵ','Ķ':'Ķ','ķ':'ķ','Ĺ':'Ĺ','ĺ':'ĺ','Ļ':'Ļ','ļ':'ļ','Ľ':'Ľ','ľ':'ľ','Ń':'Ń','ń':'ń','Ņ':'Ņ','ņ':'ņ','Ň':'Ň','ň':'ň','Ō':'Ō','ō':'ō','Ŏ':'Ŏ','ŏ':'ŏ','Ő':'Ő','ő':'ő','Ŕ':'Ŕ','ŕ':'ŕ','Ŗ':'Ŗ','ŗ':'ŗ','Ř':'Ř','ř':'ř','Ś':'Ś','ś':'ś','Ŝ':'Ŝ','ŝ':'ŝ','Ş':'Ş','ş':'ş','Š':'Š','š':'š','Ţ':'Ţ','ţ':'ţ','Ť':'Ť','ť':'ť','Ũ':'Ũ','ũ':'ũ','Ū':'Ū','ū':'ū','Ŭ':'Ŭ','ŭ':'ŭ','Ů':'Ů','ů':'ů','Ű':'Ű','ű':'ű','Ų':'Ų','ų':'ų','Ŵ':'Ŵ','ŵ':'ŵ','Ŷ':'Ŷ','ŷ':'ŷ','Ÿ':'Ÿ','Ź':'Ź','ź':'ź','Ż':'Ż','ż':'ż','Ž':'Ž','ž':'ž','Ơ':'Ơ','ơ':'ơ','Ư':'Ư','ư':'ư','Ǎ':'Ǎ','ǎ':'ǎ','Ǐ':'Ǐ','ǐ':'ǐ','Ǒ':'Ǒ','ǒ':'ǒ','Ǔ':'Ǔ','ǔ':'ǔ','Ǖ':'Ǖ','ǖ':'ǖ','Ǘ':'Ǘ','ǘ':'ǘ','Ǚ':'Ǚ','ǚ':'ǚ','Ǜ':'Ǜ','ǜ':'ǜ','Ǟ':'Ǟ','ǟ':'ǟ','Ǡ':'Ǡ','ǡ':'ǡ','Ǣ':'Ǣ','ǣ':'ǣ','Ǧ':'Ǧ','ǧ':'ǧ','Ǩ':'Ǩ','ǩ':'ǩ','Ǫ':'Ǫ','ǫ':'ǫ','Ǭ':'Ǭ','ǭ':'ǭ','Ǯ':'Ǯ','ǯ':'ǯ','ǰ':'ǰ','Ǵ':'Ǵ','ǵ':'ǵ','Ǹ':'Ǹ','ǹ':'ǹ','Ǻ':'Ǻ','ǻ':'ǻ','Ǽ':'Ǽ','ǽ':'ǽ','Ǿ':'Ǿ','ǿ':'ǿ','Ȁ':'Ȁ','ȁ':'ȁ','Ȃ':'Ȃ','ȃ':'ȃ','Ȅ':'Ȅ','ȅ':'ȅ','Ȇ':'Ȇ','ȇ':'ȇ','Ȉ':'Ȉ','ȉ':'ȉ','Ȋ':'Ȋ','ȋ':'ȋ','Ȍ':'Ȍ','ȍ':'ȍ','Ȏ':'Ȏ','ȏ':'ȏ','Ȑ':'Ȑ','ȑ':'ȑ','Ȓ':'Ȓ','ȓ':'ȓ','Ȕ':'Ȕ','ȕ':'ȕ','Ȗ':'Ȗ','ȗ':'ȗ','Ș':'Ș','ș':'ș','Ț':'Ț','ț':'ț','Ȟ':'Ȟ','ȟ':'ȟ','Ȧ':'Ȧ','ȧ':'ȧ','Ȩ':'Ȩ','ȩ':'ȩ','Ȫ':'Ȫ','ȫ':'ȫ','Ȭ':'Ȭ','ȭ':'ȭ','Ȯ':'Ȯ','ȯ':'ȯ','Ȱ':'Ȱ','ȱ':'ȱ','Ȳ':'Ȳ','ȳ':'ȳ','̀':'̀','́':'́','̓':'̓','̈́':'̈́','ʹ':'ʹ',';':';','΅':'΅','Ά':'Ά','·':'·','Έ':'Έ','Ή':'Ή','Ί':'Ί','Ό':'Ό','Ύ':'Ύ','Ώ':'Ώ','ΐ':'ΐ','Ϊ':'Ϊ','Ϋ':'Ϋ','ά':'ά','έ':'έ','ή':'ή','ί':'ί','ΰ':'ΰ','ϊ':'ϊ','ϋ':'ϋ','ό':'ό','ύ':'ύ','ώ':'ώ','ϓ':'ϓ','ϔ':'ϔ','Ѐ':'Ѐ','Ё':'Ё','Ѓ':'Ѓ','Ї':'Ї','Ќ':'Ќ','Ѝ':'Ѝ','Ў':'Ў','Й':'Й','й':'й','ѐ':'ѐ','ё':'ё','ѓ':'ѓ','ї':'ї','ќ':'ќ','ѝ':'ѝ','ў':'ў','Ѷ':'Ѷ','ѷ':'ѷ','Ӂ':'Ӂ','ӂ':'ӂ','Ӑ':'Ӑ','ӑ':'ӑ','Ӓ':'Ӓ','ӓ':'ӓ','Ӗ':'Ӗ','ӗ':'ӗ','Ӛ':'Ӛ','ӛ':'ӛ','Ӝ':'Ӝ','ӝ':'ӝ','Ӟ':'Ӟ','ӟ':'ӟ','Ӣ':'Ӣ','ӣ':'ӣ','Ӥ':'Ӥ','ӥ':'ӥ','Ӧ':'Ӧ','ӧ':'ӧ','Ӫ':'Ӫ','ӫ':'ӫ','Ӭ':'Ӭ','ӭ':'ӭ','Ӯ':'Ӯ','ӯ':'ӯ','Ӱ':'Ӱ','ӱ':'ӱ','Ӳ':'Ӳ','ӳ':'ӳ','Ӵ':'Ӵ','ӵ':'ӵ','Ӹ':'Ӹ','ӹ':'ӹ','آ':'آ','أ':'أ','ؤ':'ؤ','إ':'إ','ئ':'ئ','ۀ':'ۀ','ۂ':'ۂ','ۓ':'ۓ','ऩ':'ऩ','ऱ':'ऱ','ऴ':'ऴ','क़':'क़','ख़':'ख़','ग़':'ग़','ज़':'ज़','ड़':'ड़','ढ़':'ढ़','फ़':'फ़','य़':'य़','ো':'ো','ৌ':'ৌ','ড়':'ড়','ঢ়':'ঢ়','য়':'য়','ਲ਼':'ਲ਼','ਸ਼':'ਸ਼','ਖ਼':'ਖ਼','ਗ਼':'ਗ਼','ਜ਼':'ਜ਼','ਫ਼':'ਫ਼','ୈ':'ୈ','ୋ':'ୋ','ୌ':'ୌ','ଡ଼':'ଡ଼','ଢ଼':'ଢ଼','ஔ':'ஔ','ொ':'ொ','ோ':'ோ','ௌ':'ௌ','ై':'ై','ೀ':'ೀ','ೇ':'ೇ','ೈ':'ೈ','ೊ':'ೊ','ೋ':'ೋ','ൊ':'ൊ','ോ':'ോ','ൌ':'ൌ','ේ':'ේ','ො':'ො','ෝ':'ෝ','ෞ':'ෞ','གྷ':'གྷ','ཌྷ':'ཌྷ','དྷ':'དྷ','བྷ':'བྷ','ཛྷ':'ཛྷ','ཀྵ':'ཀྵ','ཱི':'ཱི','ཱུ':'ཱུ','ྲྀ':'ྲྀ','ླྀ':'ླྀ','ཱྀ':'ཱྀ','ྒྷ':'ྒྷ','ྜྷ':'ྜྷ','ྡྷ':'ྡྷ','ྦྷ':'ྦྷ','ྫྷ':'ྫྷ','ྐྵ':'ྐྵ','ဦ':'ဦ','ᬆ':'ᬆ','ᬈ':'ᬈ','ᬊ':'ᬊ','ᬌ':'ᬌ','ᬎ':'ᬎ','ᬒ':'ᬒ','ᬻ':'ᬻ','ᬽ':'ᬽ','ᭀ':'ᭀ','ᭁ':'ᭁ','ᭃ':'ᭃ','Ḁ':'Ḁ','ḁ':'ḁ','Ḃ':'Ḃ','ḃ':'ḃ','Ḅ':'Ḅ','ḅ':'ḅ','Ḇ':'Ḇ','ḇ':'ḇ','Ḉ':'Ḉ','ḉ':'ḉ','Ḋ':'Ḋ','ḋ':'ḋ','Ḍ':'Ḍ','ḍ':'ḍ','Ḏ':'Ḏ','ḏ':'ḏ','Ḑ':'Ḑ','ḑ':'ḑ','Ḓ':'Ḓ','ḓ':'ḓ','Ḕ':'Ḕ','ḕ':'ḕ','Ḗ':'Ḗ','ḗ':'ḗ','Ḙ':'Ḙ','ḙ':'ḙ','Ḛ':'Ḛ','ḛ':'ḛ','Ḝ':'Ḝ','ḝ':'ḝ','Ḟ':'Ḟ','ḟ':'ḟ','Ḡ':'Ḡ','ḡ':'ḡ','Ḣ':'Ḣ','ḣ':'ḣ','Ḥ':'Ḥ','ḥ':'ḥ','Ḧ':'Ḧ','ḧ':'ḧ','Ḩ':'Ḩ','ḩ':'ḩ','Ḫ':'Ḫ','ḫ':'ḫ','Ḭ':'Ḭ','ḭ':'ḭ','Ḯ':'Ḯ','ḯ':'ḯ','Ḱ':'Ḱ','ḱ':'ḱ','Ḳ':'Ḳ','ḳ':'ḳ','Ḵ':'Ḵ','ḵ':'ḵ','Ḷ':'Ḷ','ḷ':'ḷ','Ḹ':'Ḹ','ḹ':'ḹ','Ḻ':'Ḻ','ḻ':'ḻ','Ḽ':'Ḽ','ḽ':'ḽ','Ḿ':'Ḿ','ḿ':'ḿ','Ṁ':'Ṁ','ṁ':'ṁ','Ṃ':'Ṃ','ṃ':'ṃ','Ṅ':'Ṅ','ṅ':'ṅ','Ṇ':'Ṇ','ṇ':'ṇ','Ṉ':'Ṉ','ṉ':'ṉ','Ṋ':'Ṋ','ṋ':'ṋ','Ṍ':'Ṍ','ṍ':'ṍ','Ṏ':'Ṏ','ṏ':'ṏ','Ṑ':'Ṑ','ṑ':'ṑ','Ṓ':'Ṓ','ṓ':'ṓ','Ṕ':'Ṕ','ṕ':'ṕ','Ṗ':'Ṗ','ṗ':'ṗ','Ṙ':'Ṙ','ṙ':'ṙ','Ṛ':'Ṛ','ṛ':'ṛ','Ṝ':'Ṝ','ṝ':'ṝ','Ṟ':'Ṟ','ṟ':'ṟ','Ṡ':'Ṡ','ṡ':'ṡ','Ṣ':'Ṣ','ṣ':'ṣ','Ṥ':'Ṥ','ṥ':'ṥ','Ṧ':'Ṧ','ṧ':'ṧ','Ṩ':'Ṩ','ṩ':'ṩ','Ṫ':'Ṫ','ṫ':'ṫ','Ṭ':'Ṭ','ṭ':'ṭ','Ṯ':'Ṯ','ṯ':'ṯ','Ṱ':'Ṱ','ṱ':'ṱ','Ṳ':'Ṳ','ṳ':'ṳ','Ṵ':'Ṵ','ṵ':'ṵ','Ṷ':'Ṷ','ṷ':'ṷ','Ṹ':'Ṹ','ṹ':'ṹ','Ṻ':'Ṻ','ṻ':'ṻ','Ṽ':'Ṽ','ṽ':'ṽ','Ṿ':'Ṿ','ṿ':'ṿ','Ẁ':'Ẁ','ẁ':'ẁ','Ẃ':'Ẃ','ẃ':'ẃ','Ẅ':'Ẅ','ẅ':'ẅ','Ẇ':'Ẇ','ẇ':'ẇ','Ẉ':'Ẉ','ẉ':'ẉ','Ẋ':'Ẋ','ẋ':'ẋ','Ẍ':'Ẍ','ẍ':'ẍ','Ẏ':'Ẏ','ẏ':'ẏ','Ẑ':'Ẑ','ẑ':'ẑ','Ẓ':'Ẓ','ẓ':'ẓ','Ẕ':'Ẕ','ẕ':'ẕ','ẖ':'ẖ','ẗ':'ẗ','ẘ':'ẘ','ẙ':'ẙ','ẛ':'ẛ','Ạ':'Ạ','ạ':'ạ','Ả':'Ả','ả':'ả','Ấ':'Ấ','ấ':'ấ','Ầ':'Ầ','ầ':'ầ','Ẩ':'Ẩ','ẩ':'ẩ','Ẫ':'Ẫ','ẫ':'ẫ','Ậ':'Ậ','ậ':'ậ','Ắ':'Ắ','ắ':'ắ','Ằ':'Ằ','ằ':'ằ','Ẳ':'Ẳ','ẳ':'ẳ','Ẵ':'Ẵ','ẵ':'ẵ','Ặ':'Ặ','ặ':'ặ','Ẹ':'Ẹ','ẹ':'ẹ','Ẻ':'Ẻ','ẻ':'ẻ','Ẽ':'Ẽ','ẽ':'ẽ','Ế':'Ế','ế':'ế','Ề':'Ề','ề':'ề','Ể':'Ể','ể':'ể','Ễ':'Ễ','ễ':'ễ','Ệ':'Ệ','ệ':'ệ','Ỉ':'Ỉ','ỉ':'ỉ','Ị':'Ị','ị':'ị','Ọ':'Ọ','ọ':'ọ','Ỏ':'Ỏ','ỏ':'ỏ','Ố':'Ố','ố':'ố','Ồ':'Ồ','ồ':'ồ','Ổ':'Ổ','ổ':'ổ','Ỗ':'Ỗ','ỗ':'ỗ','Ộ':'Ộ','ộ':'ộ','Ớ':'Ớ','ớ':'ớ','Ờ':'Ờ','ờ':'ờ','Ở':'Ở','ở':'ở','Ỡ':'Ỡ','ỡ':'ỡ','Ợ':'Ợ','ợ':'ợ','Ụ':'Ụ','ụ':'ụ','Ủ':'Ủ','ủ':'ủ','Ứ':'Ứ','ứ':'ứ','Ừ':'Ừ','ừ':'ừ','Ử':'Ử','ử':'ử','Ữ':'Ữ','ữ':'ữ','Ự':'Ự','ự':'ự','Ỳ':'Ỳ','ỳ':'ỳ','Ỵ':'Ỵ','ỵ':'ỵ','Ỷ':'Ỷ','ỷ':'ỷ','Ỹ':'Ỹ','ỹ':'ỹ','ἀ':'ἀ','ἁ':'ἁ','ἂ':'ἂ','ἃ':'ἃ','ἄ':'ἄ','ἅ':'ἅ','ἆ':'ἆ','ἇ':'ἇ','Ἀ':'Ἀ','Ἁ':'Ἁ','Ἂ':'Ἂ','Ἃ':'Ἃ','Ἄ':'Ἄ','Ἅ':'Ἅ','Ἆ':'Ἆ','Ἇ':'Ἇ','ἐ':'ἐ','ἑ':'ἑ','ἒ':'ἒ','ἓ':'ἓ','ἔ':'ἔ','ἕ':'ἕ','Ἐ':'Ἐ','Ἑ':'Ἑ','Ἒ':'Ἒ','Ἓ':'Ἓ','Ἔ':'Ἔ','Ἕ':'Ἕ','ἠ':'ἠ','ἡ':'ἡ','ἢ':'ἢ','ἣ':'ἣ','ἤ':'ἤ','ἥ':'ἥ','ἦ':'ἦ','ἧ':'ἧ','Ἠ':'Ἠ','Ἡ':'Ἡ','Ἢ':'Ἢ','Ἣ':'Ἣ','Ἤ':'Ἤ','Ἥ':'Ἥ','Ἦ':'Ἦ','Ἧ':'Ἧ','ἰ':'ἰ','ἱ':'ἱ','ἲ':'ἲ','ἳ':'ἳ','ἴ':'ἴ','ἵ':'ἵ','ἶ':'ἶ','ἷ':'ἷ','Ἰ':'Ἰ','Ἱ':'Ἱ','Ἲ':'Ἲ','Ἳ':'Ἳ','Ἴ':'Ἴ','Ἵ':'Ἵ','Ἶ':'Ἶ','Ἷ':'Ἷ','ὀ':'ὀ','ὁ':'ὁ','ὂ':'ὂ','ὃ':'ὃ','ὄ':'ὄ','ὅ':'ὅ','Ὀ':'Ὀ','Ὁ':'Ὁ','Ὂ':'Ὂ','Ὃ':'Ὃ','Ὄ':'Ὄ','Ὅ':'Ὅ','ὐ':'ὐ','ὑ':'ὑ','ὒ':'ὒ','ὓ':'ὓ','ὔ':'ὔ','ὕ':'ὕ','ὖ':'ὖ','ὗ':'ὗ','Ὑ':'Ὑ','Ὓ':'Ὓ','Ὕ':'Ὕ','Ὗ':'Ὗ','ὠ':'ὠ','ὡ':'ὡ','ὢ':'ὢ','ὣ':'ὣ','ὤ':'ὤ','ὥ':'ὥ','ὦ':'ὦ','ὧ':'ὧ','Ὠ':'Ὠ','Ὡ':'Ὡ','Ὢ':'Ὢ','Ὣ':'Ὣ','Ὤ':'Ὤ','Ὥ':'Ὥ','Ὦ':'Ὦ','Ὧ':'Ὧ','ὰ':'ὰ','ά':'ά','ὲ':'ὲ','έ':'έ','ὴ':'ὴ','ή':'ή','ὶ':'ὶ','ί':'ί','ὸ':'ὸ','ό':'ό','ὺ':'ὺ','ύ':'ύ','ὼ':'ὼ','ώ':'ώ','ᾀ':'ᾀ','ᾁ':'ᾁ','ᾂ':'ᾂ','ᾃ':'ᾃ','ᾄ':'ᾄ','ᾅ':'ᾅ','ᾆ':'ᾆ','ᾇ':'ᾇ','ᾈ':'ᾈ','ᾉ':'ᾉ','ᾊ':'ᾊ','ᾋ':'ᾋ','ᾌ':'ᾌ','ᾍ':'ᾍ','ᾎ':'ᾎ','ᾏ':'ᾏ','ᾐ':'ᾐ','ᾑ':'ᾑ','ᾒ':'ᾒ','ᾓ':'ᾓ','ᾔ':'ᾔ','ᾕ':'ᾕ','ᾖ':'ᾖ','ᾗ':'ᾗ','ᾘ':'ᾘ','ᾙ':'ᾙ','ᾚ':'ᾚ','ᾛ':'ᾛ','ᾜ':'ᾜ','ᾝ':'ᾝ','ᾞ':'ᾞ','ᾟ':'ᾟ','ᾠ':'ᾠ','ᾡ':'ᾡ','ᾢ':'ᾢ','ᾣ':'ᾣ','ᾤ':'ᾤ','ᾥ':'ᾥ','ᾦ':'ᾦ','ᾧ':'ᾧ','ᾨ':'ᾨ','ᾩ':'ᾩ','ᾪ':'ᾪ','ᾫ':'ᾫ','ᾬ':'ᾬ','ᾭ':'ᾭ','ᾮ':'ᾮ','ᾯ':'ᾯ','ᾰ':'ᾰ','ᾱ':'ᾱ','ᾲ':'ᾲ','ᾳ':'ᾳ','ᾴ':'ᾴ','ᾶ':'ᾶ','ᾷ':'ᾷ','Ᾰ':'Ᾰ','Ᾱ':'Ᾱ','Ὰ':'Ὰ','Ά':'Ά','ᾼ':'ᾼ','ι':'ι','῁':'῁','ῂ':'ῂ','ῃ':'ῃ','ῄ':'ῄ','ῆ':'ῆ','ῇ':'ῇ','Ὲ':'Ὲ','Έ':'Έ','Ὴ':'Ὴ','Ή':'Ή','ῌ':'ῌ','῍':'῍','῎':'῎','῏':'῏','ῐ':'ῐ','ῑ':'ῑ','ῒ':'ῒ','ΐ':'ΐ','ῖ':'ῖ','ῗ':'ῗ','Ῐ':'Ῐ','Ῑ':'Ῑ','Ὶ':'Ὶ','Ί':'Ί','῝':'῝','῞':'῞','῟':'῟','ῠ':'ῠ','ῡ':'ῡ','ῢ':'ῢ','ΰ':'ΰ','ῤ':'ῤ','ῥ':'ῥ','ῦ':'ῦ','ῧ':'ῧ','Ῠ':'Ῠ','Ῡ':'Ῡ','Ὺ':'Ὺ','Ύ':'Ύ','Ῥ':'Ῥ','῭':'῭','΅':'΅','`':'`','ῲ':'ῲ','ῳ':'ῳ','ῴ':'ῴ','ῶ':'ῶ','ῷ':'ῷ','Ὸ':'Ὸ','Ό':'Ό','Ὼ':'Ὼ','Ώ':'Ώ','ῼ':'ῼ','´':'´',' ':' ',' ':' ','Ω':'Ω','K':'K','Å':'Å','↚':'↚','↛':'↛','↮':'↮','⇍':'⇍','⇎':'⇎','⇏':'⇏','∄':'∄','∉':'∉','∌':'∌','∤':'∤','∦':'∦','≁':'≁','≄':'≄','≇':'≇','≉':'≉','≠':'≠','≢':'≢','≭':'≭','≮':'≮','≯':'≯','≰':'≰','≱':'≱','≴':'≴','≵':'≵','≸':'≸','≹':'≹','⊀':'⊀','⊁':'⊁','⊄':'⊄','⊅':'⊅','⊈':'⊈','⊉':'⊉','⊬':'⊬','⊭':'⊭','⊮':'⊮','⊯':'⊯','⋠':'⋠','⋡':'⋡','⋢':'⋢','⋣':'⋣','⋪':'⋪','⋫':'⋫','⋬':'⋬','⋭':'⋭','〈':'〈','〉':'〉','⫝̸':'⫝̸','が':'が','ぎ':'ぎ','ぐ':'ぐ','げ':'げ','ご':'ご','ざ':'ざ','じ':'じ','ず':'ず','ぜ':'ぜ','ぞ':'ぞ','だ':'だ','ぢ':'ぢ','づ':'づ','で':'で','ど':'ど','ば':'ば','ぱ':'ぱ','び':'び','ぴ':'ぴ','ぶ':'ぶ','ぷ':'ぷ','べ':'べ','ぺ':'ぺ','ぼ':'ぼ','ぽ':'ぽ','ゔ':'ゔ','ゞ':'ゞ','ガ':'ガ','ギ':'ギ','グ':'グ','ゲ':'ゲ','ゴ':'ゴ','ザ':'ザ','ジ':'ジ','ズ':'ズ','ゼ':'ゼ','ゾ':'ゾ','ダ':'ダ','ヂ':'ヂ','ヅ':'ヅ','デ':'デ','ド':'ド','バ':'バ','パ':'パ','ビ':'ビ','ピ':'ピ','ブ':'ブ','プ':'プ','ベ':'ベ','ペ':'ペ','ボ':'ボ','ポ':'ポ','ヴ':'ヴ','ヷ':'ヷ','ヸ':'ヸ','ヹ':'ヹ','ヺ':'ヺ','ヾ':'ヾ','𢡊':'','𢡄':'','𣏕':'','㮝':'㮝','䀘':'䀘','䀹':'䀹','𥉉':'','𥳐':'','𧻓':'','齃':'齃','龎':'龎','יִ':'יִ','ײַ':'ײַ','שׁ':'שׁ','שׂ':'שׂ','שּׁ':'שּׁ','שּׂ':'שּׂ','אַ':'אַ','אָ':'אָ','אּ':'אּ','בּ':'בּ','גּ':'גּ','דּ':'דּ','הּ':'הּ','וּ':'וּ','זּ':'זּ','טּ':'טּ','יּ':'יּ','ךּ':'ךּ','כּ':'כּ','לּ':'לּ','מּ':'מּ','נּ':'נּ','סּ':'סּ','ףּ':'ףּ','פּ':'פּ','צּ':'צּ','קּ':'קּ','רּ':'רּ','שּ':'שּ','תּ':'תּ','וֹ':'וֹ','בֿ':'בֿ','כֿ':'כֿ','פֿ':'פֿ','':'','':'','':'','':'','':'','':'','':'','':'','':'','':'','':'','':'','':''};

var nonzerocc={'̀':230,'́':230,'̂':230,'̃':230,'̄':230,'̅':230,'̆':230,'̇':230,'̈':230,'̉':230,'̊':230,'̋':230,'̌':230,'̍':230,'̎':230,'̏':230,'̐':230,'̑':230,'̒':230,'̓':230,'̔':230,'̕':232,'̖':220,'̗':220,'̘':220,'̙':220,'̚':232,'̛':216,'̜':220,'̝':220,'̞':220,'̟':220,'̠':220,'̡':202,'̢':202,'̣':220,'̤':220,'̥':220,'̦':220,'̧':202,'̨':202,'̩':220,'̪':220,'̫':220,'̬':220,'̭':220,'̮':220,'̯':220,'̰':220,'̱':220,'̲':220,'̳':220,'̴':1,'̵':1,'̶':1,'̷':1,'̸':1,'̹':220,'̺':220,'̻':220,'̼':220,'̽':230,'̾':230,'̿':230,'̀':230,'́':230,'͂':230,'̓':230,'̈́':230,'ͅ':240,'͆':230,'͇':220,'͈':220,'͉':220,'͊':230,'͋':230,'͌':230,'͍':220,'͎':220,'͐':230,'͑':230,'͒':230,'͓':220,'͔':220,'͕':220,'͖':220,'͗':230,'͘':232,'͙':220,'͚':220,'͛':230,'͜':233,'͝':234,'͞':234,'͟':233,'͠':234,'͡':234,'͢':233,'ͣ':230,'ͤ':230,'ͥ':230,'ͦ':230,'ͧ':230,'ͨ':230,'ͩ':230,'ͪ':230,'ͫ':230,'ͬ':230,'ͭ':230,'ͮ':230,'҃':230,'҄':230,'҅':230,'҆':230,'҇':230,'֑':220,'֒':230,'֓':230,'֔':230,'֕':230,'֖':220,'֗':230,'֘':230,'֙':230,'֚':222,'֛':220,'֜':230,'֝':230,'֞':230,'֟':230,'֠':230,'֡':230,'֢':220,'֣':220,'֤':220,'֥':220,'֦':220,'֧':220,'֨':230,'֩':230,'֪':220,'֫':230,'֬':230,'֭':222,'֮':228,'֯':230,'ְ':10,'ֱ':11,'ֲ':12,'ֳ':13,'ִ':14,'ֵ':15,'ֶ':16,'ַ':17,'ָ':18,'ֹ':19,'ֺ':19,'ֻ':20,'ּ':21,'ֽ':22,'ֿ':23,'ׁ':24,'ׂ':25,'ׄ':230,'ׅ':220,'ׇ':18,'ؐ':230,'ؑ':230,'ؒ':230,'ؓ':230,'ؔ':230,'ؕ':230,'ؖ':230,'ؗ':230,'ؘ':30,'ؙ':31,'ؚ':32,'ً':27,'ٌ':28,'ٍ':29,'َ':30,'ُ':31,'ِ':32,'ّ':33,'ْ':34,'ٓ':230,'ٔ':230,'ٕ':220,'ٖ':220,'ٗ':230,'٘':230,'ٙ':230,'ٚ':230,'ٛ':230,'ٜ':220,'ٝ':230,'ٞ':230,'ٰ':35,'ۖ':230,'ۗ':230,'ۘ':230,'ۙ':230,'ۚ':230,'ۛ':230,'ۜ':230,'۟':230,'۠':230,'ۡ':230,'ۢ':230,'ۣ':220,'ۤ':230,'ۧ':230,'ۨ':230,'۪':220,'۫':230,'۬':230,'ۭ':220,'ܑ':36,'ܰ':230,'ܱ':220,'ܲ':230,'ܳ':230,'ܴ':220,'ܵ':230,'ܶ':230,'ܷ':220,'ܸ':220,'ܹ':220,'ܺ':230,'ܻ':220,'ܼ':220,'ܽ':230,'ܾ':220,'ܿ':230,'݀':230,'݁':230,'݂':220,'݃':230,'݄':220,'݅':230,'݆':220,'݇':230,'݈':220,'݉':230,'݊':230,'߫':230,'߬':230,'߭':230,'߮':230,'߯':230,'߰':230,'߱':230,'߲':220,'߳':230,'़':7,'्':9,'॑':230,'॒':220,'॓':230,'॔':230,'়':7,'্':9,'਼':7,'੍':9,'઼':7,'્':9,'଼':7,'୍':9,'்':9,'్':9,'ౕ':84,'ౖ':91,'಼':7,'್':9,'്':9,'්':9,'ุ':103,'ู':103,'ฺ':9,'่':107,'้':107,'๊':107,'๋':107,'ຸ':118,'ູ':118,'່':122,'້':122,'໊':122,'໋':122,'༘':220,'༙':220,'༵':220,'༷':220,'༹':216,'ཱ':129,'ི':130,'ུ':132,'ེ':130,'ཻ':130,'ོ':130,'ཽ':130,'ྀ':130,'ྂ':230,'ྃ':230,'྄':9,'྆':230,'྇':230,'࿆':220,'့':7,'္':9,'်':9,'ႍ':220,'፟':230,'᜔':9,'᜴':9,'្':9,'៝':230,'ᢩ':228,'᤹':222,'᤺':230,'᤻':220,'ᨗ':230,'ᨘ':220,'᬴':7,'᭄':9,'᭫':230,'᭬':220,'᭭':230,'᭮':230,'᭯':230,'᭰':230,'᭱':230,'᭲':230,'᭳':230,'᮪':9,'᰷':7,'᷀':230,'᷁':230,'᷂':220,'᷃':230,'᷄':230,'᷅':230,'᷆':230,'᷇':230,'᷈':230,'᷉':230,'᷊':220,'᷋':230,'᷌':230,'᷍':234,'᷎':214,'᷏':220,'᷐':202,'᷑':230,'᷒':230,'ᷓ':230,'ᷔ':230,'ᷕ':230,'ᷖ':230,'ᷗ':230,'ᷘ':230,'ᷙ':230,'ᷚ':230,'ᷛ':230,'ᷜ':230,'ᷝ':230,'ᷞ':230,'ᷟ':230,'ᷠ':230,'ᷡ':230,'ᷢ':230,'ᷣ':230,'ᷤ':230,'ᷥ':230,'ᷦ':230,'᷾':230,'⃐':230,'⃑':230,'⃒':1,'⃓':1,'⃔':230,'⃕':230,'⃖':230,'⃗':230,'⃘':1,'⃙':1,'⃚':1,'⃛':230,'⃜':230,'⃡':230,'⃥':1,'⃦':1,'⃧':230,'⃨':220,'⃩':230,'⃪':1,'⃫':1,'⃬':220,'⃭':220,'⃮':220,'⃯':220,'⃰':230,'ⷠ':230,'ⷡ':230,'ⷢ':230,'ⷣ':230,'ⷤ':230,'ⷥ':230,'ⷦ':230,'ⷧ':230,'ⷨ':230,'ⷩ':230,'ⷪ':230,'ⷫ':230,'ⷬ':230,'ⷭ':230,'ⷮ':230,'ⷯ':230,'ⷰ':230,'ⷱ':230,'ⷲ':230,'ⷳ':230,'ⷴ':230,'ⷵ':230,'ⷶ':230,'ⷷ':230,'ⷸ':230,'ⷹ':230,'ⷺ':230,'ⷻ':230,'ⷼ':230,'ⷽ':230,'ⷾ':230,'〪':218,'〫':228,'〬':232,'〭':222,'〮':224,'〯':224,'゙':8,'゚':8,'꙯':230,'꙼':230,'꙽':230,'꠆':9,'꣄':9,'꤫':220,'꤬':220,'꤭':220,'꥓':9,'ﬞ':26,'︠':230,'︡':230,'︢':230,'︣':230,'︤':230,'︥':230,'︦':230};

// create exclusion list (apart from non-starter decompositions)
var nfcexclusions={ 'क़':'','ख़':'','ग़':'','ज़':'','ड़':'','ढ़':'','फ़':'','य़':'','ড়':'','ঢ়':'','য়':'','ਲ਼':'','ਸ਼':'','ਖ਼':'','ਗ਼':'','ਜ਼':'','ਫ਼':'','ଡ଼':'','ଢ଼':'','གྷ':'','ཌྷ':'','དྷ':'','བྷ':'','ཛྷ':'','ཀྵ':'','ྲྀ':'','ླྀ':'','ྒྷ':'','ྜྷ':'','ྡྷ':'','ྦྷ':'','ྫྷ':'','ྐྵ':'','יִ':'','ײַ':'','שׁ':'','שׂ':'','שּׁ':'','שּׂ':'','אַ':'','אָ':'','אּ':'','בּ':'','גּ':'','דּ':'','הּ':'','וּ':'','זּ':'','טּ':'','יּ':'','ךּ':'','כּ':'','לּ':'','מּ':'','נּ':'','סּ':'','ףּ':'','פּ':'','צּ':'','קּ':'','רּ':'','שּ':'','תּ':'','וֹ':'','בֿ':'','כֿ':'','פֿ':'',
'⫝̸':'','':'','':'','':'','':'','':'','':'','':'','':'','':'','':'','':'','':'','':'' };
for (var ch in decomposable) { // add all singleton decompositions
	if (decomposable[ch].length == 1) {
		nfcexclusions[ch] = '';
		}
	}

// create composition list
var composable = { };
var ch;
for (ch in decomposable) { // search the decomposition list and include all but excluded 
	if (! (ch in nfcexclusions)) {
		composable[decomposable[ch]] = ch;
		}
	}

function nfc (str) { 
	var composed = '';
	var current; var next; var temp;
	str += 'X';
	var i=-1;
	// replace non-starter decompositions
	str = str.replace('\u0344', '\u0308\u0301')
	str = str.replace('\u0F73', '\u0F71\u0F72')
	str = str.replace('\u0F75', '\u0F71\u0F74')
	str = str.replace('\u0F81', '\u0F71\u0F80')
	while (++i<str.length-1) {
		current = str.charAt(i); //alert(current);
		next = str.charAt(i+1);
		if (current in decomposable) { // decomposable char
			if (!(next in nonzerocc)) { // followed by non-combining
				if (current in nfcexclusions) { // current char is a singleton
					composed += decomposable[current]; 
					}
				else { composed += current; } 
				}
			else { // followed by combining character(s)
				temp=current;
				while (str.charAt(++i) in nonzerocc) { temp+=str.charAt(i); } // find combining sequence
				temp = decompose(temp);
				temp = reorder(temp);
				composed += compose(temp);
				i--;
				}
			}
		else { // non-decomposable character
			if (next in nonzerocc) { // followed by combining character
				temp=current;
				while (str.charAt(++i) in nonzerocc) { temp+=str.charAt(i); } // find combining sequence
				temp = reorder(temp);
				composed += compose(temp);
				i--;
				}
			else {
				composed += current; 
				}
			}
		}
	return composed;
	}

function nfd (str) { 
	str = decompose(str);
	str = reorder(str);
	return str;
	}
	

function compose (str) {
	// takes a base character followed by combining characters in the right order and produces nfc
	var composed = str+'X';
	while (composed.charAt(0)+composed.charAt(1) in composable) {
		composed = composable[composed.charAt(0)+composed.charAt(1)] + composed.slice(2);
		}
	return composed.substring(0,composed.length-1);
	}


function decompose (str) {
	var decomposed = '';
	for (var i=0; i<str.length; i++) {
		var current = str.charAt(i); //alert(current);
		if (current in decomposable) {
			decomposed += decompose(decomposable[current].charAt(0))+decomposable[current].charAt(1);
			}
		else {
			decomposed += current;
			}
		}
	return decomposed;
	}

function ccorder (a, b) { return nonzerocc[a] - nonzerocc[b]; }

function reorder (str) {
	str += 'X';
	var reordered = ''; var j; var temp;
	var i = 0;
	while (i < str.length-1) { // go through each character
		//alert(str.charAt(i));
		if (str.charAt(i) in nonzerocc && str.charAt(i+1) in nonzerocc) { // if more than one cc...
			j = 0; temp = '';
			while ( str.charAt(i+j) in nonzerocc ) {
				temp += str.charAt(i+j); // collect all cc's  in temp
				j++;
				}
			if (temp.length == 2 && nonzerocc[temp.charAt(0)] > nonzerocc[temp.charAt(1)] ) { // if only to cc's, just swap them if needed
				reordered += str.charAt(i+1)+str.charAt(i);
				i += 2;
				}
			else if (temp.length > 2) { 
				temparray = new Array;
				for (k=0; k<temp.length; k++) { temparray[k] = temp.charAt(k); }
				temparray.sort(ccorder);
				for (k=0; k<temp.length; k++) { reordered += temparray[k]; }
				i += temp.length;
				}
			else {
				reordered += temp;
				i += 2;
			    }
			}
		else {
			reordered += str.charAt(i++);
			}
		}
	return reordered;
	}