<?php
/**
 * Contains and initializes the N11n class.
 * @package i18nChecker
 */
/**
 * Converts a string to NFC or NFD and returns the result
 * 
 * @package i18nChecker
 * @author Richard Ishida <ishida@w3.org>
 * @copyright 2009 Richard Ishida <ishida@w3.org>
 * @license http://creativecommons.org/licenses/by-nc-sa/3.0/
 */
class N11n {

	static private $decomposable, $nonzerocc, $zerocc, $nfcexclusions, $composable;
	
	static public function nfd ($str) { 
		$str = self::decompose($str); 
		$str = self::reorder($str); 
		return $str;
	}
	
	static public function nfc ($string) { 
		$composed = '';	
		$string .= 'X';
		// replace non-starter decompositions
		$string = str_replace('�?', '�?', $string);
		$string = str_replace('̀', '̀', $string);
		$string = str_replace('̓', '̓', $string);
		$string = str_replace('̈�?', '̈�?', $string);
		$string = str_replace('ཱི', 'ཱི', $string);
		$i=-1; 
		$str = self::toArray($string);
		//str = str.replace('\u0F73', '\u0F71\u0F72')
		//str = str.replace('\u0F75', '\u0F71\u0F74')
		//str = str.replace('\u0F81', '\u0F71\u0F80')
		while (++$i<count($str)-1) {
			$current = $str[$i];
			$next = $str[$i+1];
			if (isset(self::$decomposable[$current])) { // decomposable char 
				if ((! isset(self::$nfcexclusions[$current])) && (! isset(self::$nonzerocc[$next]))) { // current char is not in exclusions & next of cclass 0
					$composed .= $current;
				} else { // in exclusions or next not in cclass 0
					$temp = self::decompose($current);
					while (isset(self::$nonzerocc[$str[++$i]])) { $temp.=$str[$i]; } // find combining sequence
					$temp = self::reorder($temp);
					$composed .= self::compose($temp);
					$i--;
				}
			} else if ($current>='ᄀ' && $current<='ᇹ') { // jamo characters
				$temp = $current;
				while ($str[++$i]>='ᄀ' && $str[$i]<='ᇹ') { $temp.=$str[$i]; } // gather jamos
				$composed .= composeHangul($temp);
				$i--;
			} else { // not a composite character... 
				if (isset(self::$nonzerocc[$next])) { // but followed by combining char(s)
					$temp = $current;
					while (isset(self::$nonzerocc[$str[++$i]])) { $temp.=$str[$i]; } // find combining sequence
					$temp = self::reorder($temp);
					$composed .= self::compose($temp);
					$i--;
				} else { 
					if (! isset(self::$composable[$current.$next])) {
						$composed .= $current; 
					} else {
						$base=$i; 
						while (isset(self::$composable[$str[$base].$str[++$i]])) { 
							$str[$base] = self::$composable[$str[$base].$str[$i]]; 
						}
						$composed .= $str[$base]; $i--;
					}
				}
			}
		}
		return $composed;
	}
	
	static private function char2dec ($str) {
		$convmap = array(0x80, 0xffff, 0, 0xffff);
		$str = mb_encode_numericentity($str, $convmap, "UTF-8");
		$str = preg_replace('/[\&\#\;]/','',$str);
		return $str;
	}
	
	static private function int2char ($int) { 
		$convmap = array(0x80, 0xffff, 0, 0xffff);
		$int = mb_decode_numericentity('&#'.$int.';', $convmap, "UTF-8");
		return $int;
	}
		
	static private function decomposeHangul ($ch) {
		$chIndex = self::char2dec($ch);
		$sIndex = $chIndex-0xAC00;
		if ($sIndex<0 || $sIndex>=11172)
			return $ch;
		$result = '';
		$l = 0x1100+floor($sIndex/588);
		$v = 0x1161+floor(($sIndex % 588)/28);
		$t = 0x11a7+floor($sIndex % 28);
		$result .= self::int2char($l).self::int2char($v);
		if ($t != 0x11A7)
			$result .= self::int2char($t);
		return $result;
	}
	
	static private function toArray ($string) {
		$strlen = mb_strlen($string);
		while ($strlen) {
			$ch = mb_substr($string,0,1,"UTF-8");
			if ($ch >= '?' && $ch <= '?') 
				$width = 2;
			else
				$width = 1;
			$array[] = mb_substr($string,0,$width,"UTF-8");
			$string = mb_substr($string,$width,$strlen,"UTF-8");
			$strlen = mb_strlen($string);
		}
		return $array;
	}
	
	static private function decompose ($string) { 
		$str = self::toArray($string); 
		$decomposed = ''; 
		for ($i=0; $i<count($str); $i++) { 
			$current = $str[$i]; 
			if (isset(self::$decomposable[$current]))
				$decomposed .= self::decompose(self::$decomposable[$current]);
			else if ($current >= '가' && $current <= '힣') // hangul syllable
				$decomposed .= self::decomposeHangul($current);
			else
				$decomposed .= $current;
		}
		return $decomposed;
	}
	
	static private function isort ($array) {
		for ($i=1;$i<count($array);$i++) {
			$testvalue = self::$nonzerocc[$array[$i]];
			$value = $array[$i];
			$j = $i-1;
			while ($j >= 0 and self::$nonzerocc[$array[$j]] > $testvalue) {
				$array[$j + 1] = $array[$j];
				$j = $j-1;
			}
			$array[$j+1] = $value;
		}
		return $array;
	}
	
	static private function reorder ($string) { 
		$string .= 'X';
		$str = self::toArray($string);
		$reordered = ''; 
		$i = 0;
		while ($i < count($str)-1) { // go through each character
			if (isset(self::$nonzerocc[$str[$i]]) && isset(self::$nonzerocc[$str[$i+1]])) { // if more than one cc...
				$j = 0; $temp = array(); 
				while ( isset(self::$nonzerocc[$str[$i+$j]]) ) {
					$temp[$j] = $str[$i+$j]; 
					// temp is an array where the characters in str are keys and the comb class is the value
					$j++;
				}
				$newtemp = self::isort($temp);
				foreach ($newtemp as $ch) {
					$reordered .= $ch;
				}
				$i += count($temp);
			} else {
				$reordered .= $str[$i++];  
			}
		}
		return $reordered;
	}
	
	static private function compose ($str) { 
		// takes a base character followed by combining characters in the right order and produces nfc
		$strlength = mb_strlen($str,"UTF-8");
		$str = $str.'X';
		$lastcclass = -1;
		$base = mb_substr($str,0,1,"UTF-8");
		$store = '';
		$next = '';
		$ptr = 1; 
		while ($ptr < $strlength) {
			$next = mb_substr($str,$ptr,1,"UTF-8");
			if (isset(self::$composable[$base.$next]) && ((! isset(self::$nonzerocc[$next])) || self::$nonzerocc[$next] != $lastcclass)) { 
				$base = self::$composable[$base.$next];
				$ptr++;
			} else {
				$store .= $next;
				if (isset(self::$nonzerocc[$next]))
					$lastcclass = self::$nonzerocc[$next];
				$ptr++;
			}
		}
		return $base.$store;
	}
	
	static private function composeHangul ($str) {
		$strlength = mb_strlen($str);
		if ($strlength == 0) { return; }
		$last = self::char2dec(mb_substr($str,0,1));
		$result=array();
		$result[0] = mb_substr($str,0,1);
		for ($i=1; $i<$strlength; ++$i) {
			$ch = self::char2dec(mb_substr($str,$i,1));
			$lIndex = $last-0x1100;
			if (0<=$lIndex && $lIndex<19) {
				$vIndex = $ch-0x1161;
				if (0<=$vIndex && $vIndex<21) {
					$last = 0xAC00+($lIndex*21+$vIndex)*28;
					$result[count($result)-1] = self::int2char($last);
					continue;
				}
			}
			$sIndex = $last-0xAC00;
			if (0<=$sIndex && $sIndex<11172 && ($sIndex % 28)==0) {
				$tIndex = $ch-0x11A7;
				if (0<$tIndex && $tIndex<28) {
					$last = $last+$tIndex;
					$result[count($result)-1] = self::int2char($last);
					continue;
				}
			}
			$last = $ch;
			$result[] = self::int2char($ch);
		}
		$resultstr = '';
		for ($j=0;$j<count($result);$j++)
			$resultstr .= $result[$j];
		return $resultstr;
	}
	
	static public function _init() {
		self::$decomposable = array('À'=>'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�?', 'ÿ'=>'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', 'Å'=>'Å', '↚'=>'�?̸', '↛'=>'↛', '↮'=>'↮', '�?'=>'�?̸', '⇎'=>'⇎', '�?'=>'⇏', '∄'=>'∄', '∉'=>'∉', '∌'=>'∌', '∤'=>'∤', '∦'=>'∦', '�?'=>'≁', '≄'=>'≄', '≇'=>'≇', '≉'=>'≉', '≠'=>'≠', '≢'=>'≢', '≭'=>'�?̸', '≮'=>'≮', '≯'=>'≯', '≰'=>'≰', '≱'=>'≱', '≴'=>'≴', '≵'=>'≵', '≸'=>'≸', '≹'=>'≹', '⊀'=>'⊀', '�?'=>'⊁', '⊄'=>'⊄', '⊅'=>'⊅', '⊈'=>'⊈', '⊉'=>'⊉', '⊬'=>'⊬', '⊭'=>'⊭', '⊮'=>'⊮', '⊯'=>'⊯', '⋠'=>'⋠', '⋡'=>'⋡', '⋢'=>'⋢', '⋣'=>'⋣', '⋪'=>'⋪', '⋫'=>'⋫', '⋬'=>'⋬', '⋭'=>'⋭', '〈'=>'〈', '〉'=>'〉', '⫝̸'=>'�?̸', '�?�'=>'�?�゙', '�?�'=>'�??゙', '�??'=>'�??゙', '�?�'=>'�?�゙', '�?�'=>'�?�゙', '�?�'=>'�?�゙', '�?�'=>'�?�゙', '�?�'=>'�?�゙', '�?�'=>'�?�゙', '�?�'=>'�??゙', '�?�'=>'�?�゙', '�?�'=>'�?�゙', '�?�'=>'�?�゙', '�?�'=>'�?�゙', '�?�'=>'�?�゙', '�?�'=>'�?�゙', '�?�'=>'�?�゚', '�?�'=>'�?�゙', '�?�'=>'�?�゚', '�?�'=>'�?�゙', '�?�'=>'�?�゚', '�?�'=>'�?�゙', '�?�'=>'�?�゚', '�?�'=>'�?�゙', '�?�'=>'�?�゚', 'ゔ'=>'�?�゙', 'ゞ'=>'�?゙', 'ガ'=>'ガ', 'ギ'=>'ギ', 'グ'=>'グ', 'ゲ'=>'ゲ', 'ゴ'=>'ゴ', 'ザ'=>'ザ', 'ジ'=>'ジ', 'ズ'=>'ズ', 'ゼ'=>'ゼ', 'ゾ'=>'ゾ', 'ダ'=>'ダ', 'ヂ'=>'�?゙', 'ヅ'=>'ヅ', 'デ'=>'デ', 'ド'=>'ド', '�?'=>'�?゙', 'パ'=>'�?゚', 'ビ'=>'ビ', 'ピ'=>'ピ', 'ブ'=>'ブ', 'プ'=>'プ', 'ベ'=>'ベ', 'ペ'=>'ペ', 'ボ'=>'ボ', '�?'=>'ポ', 'ヴ'=>'ヴ', 'ヷ'=>'ヷ', 'ヸ'=>'ヸ', 'ヹ'=>'ヹ', 'ヺ'=>'ヺ', 'ヾ'=>'ヾ', '豈'=>'豈', '�?'=>'更', '車'=>'車', '賈'=>'賈', '滑'=>'滑', '串'=>'串', '句'=>'�?�', '龜'=>'龜', '龜'=>'龜', '契'=>'契', '金'=>'金', '喇'=>'喇', '奈'=>'奈', '�?'=>'懶', '癩'=>'癩', '�?'=>'羅', '�?'=>'蘿', '螺'=>'螺', '裸'=>'裸', '邏'=>'�?', '樂'=>'樂', '洛'=>'洛', '烙'=>'烙', '珞'=>'�?�', '落'=>'�?�', '酪'=>'酪', '駱'=>'駱', '亂'=>'亂', '卵'=>'�?�', '�?'=>'欄', '爛'=>'爛', '蘭'=>'蘭', '鸞'=>'鸞', '嵐'=>'�?', '濫'=>'濫', '藍'=>'�?', '襤'=>'襤', '拉'=>'拉', '臘'=>'臘', '蠟'=>'蠟', '廊'=>'廊', '朗'=>'朗', '浪'=>'浪', '狼'=>'狼', '郎'=>'郎', '來'=>'來', '冷'=>'冷', '勞'=>'勞', '擄'=>'擄', '櫓'=>'櫓', '爐'=>'�?', '盧'=>'盧', '老'=>'�?', '蘆'=>'蘆', '虜'=>'虜', '路'=>'路', '露'=>'露', '魯'=>'魯', '鷺'=>'鷺', '碌'=>'碌', '祿'=>'祿', '綠'=>'綠', '菉'=>'�?�', '錄'=>'錄', '鹿'=>'鹿', '�?'=>'論', '壟'=>'壟', '弄'=>'弄', '籠'=>'籠', '聾'=>'�?�', '牢'=>'牢', '磊'=>'磊', '賂'=>'賂', '雷'=>'雷', '壘'=>'壘', '屢'=>'屢', '樓'=>'樓', '�?'=>'淚', '漏'=>'�?', '�?'=>'累', '�?'=>'縷', '陋'=>'陋', '勒'=>'勒', '肋'=>'肋', '凜'=>'凜', '凌'=>'凌', '稜'=>'稜', '綾'=>'綾', '菱'=>'�?�', '陵'=>'陵', '讀'=>'讀', '拏'=>'�?', '樂'=>'樂', '�?'=>'諾', '丹'=>'丹', '寧'=>'寧', '怒'=>'怒', '率'=>'率', '異'=>'異', '北'=>'北', '磻'=>'磻', '便'=>'便', '復'=>'復', '不'=>'�?', '泌'=>'泌', '數'=>'數', '索'=>'索', '參'=>'�?�', '塞'=>'塞', '省'=>'�?', '葉'=>'葉', '說'=>'說', '殺'=>'殺', '辰'=>'辰', '沈'=>'沈', '拾'=>'拾', '若'=>'若', '掠'=>'掠', '略'=>'略', '亮'=>'亮', '兩'=>'兩', '凉'=>'凉', '梁'=>'�?', '糧'=>'糧', '良'=>'良', '諒'=>'諒', '量'=>'�?', '勵'=>'勵', '呂'=>'呂', '�?'=>'女', '廬'=>'廬', '旅'=>'旅', '濾'=>'濾', '礪'=>'礪', '閭'=>'閭', '驪'=>'驪', '麗'=>'麗', '黎'=>'黎', '力'=>'力', '曆'=>'曆', '歷'=>'歷', '�?'=>'轢', '年'=>'年', '�?'=>'�?', '�?'=>'戀', '撚'=>'撚', '漣'=>'漣', '煉'=>'煉', '璉'=>'璉', '秊'=>'秊', '練'=>'練', '聯'=>'�?�', '輦'=>'輦', '蓮'=>'蓮', '連'=>'連', '鍊'=>'�?�', '列'=>'列', '�?'=>'劣', '咽'=>'咽', '烈'=>'烈', '裂'=>'裂', '說'=>'說', '廉'=>'廉', '念'=>'念', '捻'=>'�?�', '殮'=>'殮', '簾'=>'簾', '獵'=>'�?�', '令'=>'令', '囹'=>'囹', '寧'=>'寧', '嶺'=>'嶺', '怜'=>'怜', '玲'=>'玲', '瑩'=>'瑩', '羚'=>'羚', '聆'=>'�?�', '鈴'=>'鈴', '零'=>'零', '靈'=>'�?�', '領'=>'領', '例'=>'例', '禮'=>'禮', '醴'=>'醴', '隸'=>'隸', '惡'=>'惡', '了'=>'了', '僚'=>'僚', '寮'=>'寮', '尿'=>'尿', '料'=>'料', '樂'=>'樂', '燎'=>'燎', '�?'=>'療', '蓼'=>'蓼', '遼'=>'�?�', '龍'=>'�?', '暈'=>'暈', '阮'=>'阮', '劉'=>'劉', '杻'=>'�?�', '柳'=>'柳', '流'=>'�?', '溜'=>'溜', '琉'=>'�?�', '�?'=>'留', '硫'=>'硫', '�?'=>'�?', '�?'=>'類', '六'=>'六', '戮'=>'戮', '陸'=>'陸', '倫'=>'倫', '崙'=>'崙', '淪'=>'淪', '輪'=>'輪', '律'=>'律', '慄'=>'慄', '栗'=>'栗', '率'=>'率', '隆'=>'隆', '�?'=>'利', '吏'=>'�??', '履'=>'履', '易'=>'易', '李'=>'�?�', '梨'=>'梨', '泥'=>'泥', '理'=>'�?�', '痢'=>'痢', '罹'=>'罹', '裏'=>'�?', '裡'=>'裡', '里'=>'里', '離'=>'離', '匿'=>'匿', '溺'=>'溺', '吝'=>'�??', '燐'=>'�?', '璘'=>'璘', '藺'=>'藺', '隣'=>'隣', '鱗'=>'鱗', '麟'=>'麟', '林'=>'林', '淋'=>'淋', '臨'=>'臨', '立'=>'立', '笠'=>'笠', '粒'=>'粒', '狀'=>'狀', '炙'=>'炙', '識'=>'識', '什'=>'什', '茶'=>'茶', '刺'=>'刺', '切'=>'切', '�?'=>'度', '拓'=>'拓', '糖'=>'糖', '宅'=>'宅', '洞'=>'洞', '暴'=>'暴', '輻'=>'輻', '行'=>'行', '降'=>'�?', '見'=>'見', '廓'=>'廓', '兀'=>'兀', '�?'=>'嗀', '�?'=>'塚', '晴'=>'晴', '凞'=>'凞', '猪'=>'猪', '益'=>'益', '礼'=>'礼', '神'=>'神', '祥'=>'祥', '福'=>'�?', '靖'=>'�?�', '�?'=>'精', '羽'=>'羽', '蘒'=>'蘒', '諸'=>'諸', '逸'=>'逸', '都'=>'都', '飯'=>'飯', '飼'=>'飼', '館'=>'館', '鶴'=>'鶴', '侮'=>'侮', '僧'=>'僧', '免'=>'�?', '勉'=>'勉', '勤'=>'勤', '卑'=>'�?�', '喝'=>'�?', '嘆'=>'嘆', '器'=>'器', '塀'=>'塀', '墨'=>'墨', '層'=>'層', '屮'=>'屮', '悔'=>'悔', '慨'=>'慨', '憎'=>'憎', '懲'=>'懲', '�?'=>'�?', '既'=>'既', '暑'=>'暑', '梅'=>'梅', '海'=>'海', '渚'=>'渚', '漢'=>'漢', '煮'=>'煮', '爫'=>'爫', '琢'=>'�?�', '碑'=>'碑', '社'=>'社', '�?'=>'祉', '祈'=>'祈', '�?'=>'�?', '�?'=>'祖', '祝'=>'�?', '禍'=>'�?', '禎'=>'禎', '穀'=>'穀', '突'=>'�?', '節'=>'節', '練'=>'練', '縉'=>'縉', '繁'=>'�?', '署'=>'署', '者'=>'者', '臭'=>'臭', '�?'=>'艹', '艹'=>'艹', '著'=>'著', '褐'=>'�?', '視'=>'視', '謁'=>'�?', '謹'=>'謹', '賓'=>'賓', '贈'=>'贈', '辶'=>'辶', '逸'=>'逸', '難'=>'難', '響'=>'響', '頻'=>'頻', '並'=>'並', '况'=>'况', '全'=>'全', '侀'=>'侀', '充'=>'充', '冀'=>'冀', '勇'=>'勇', '勺'=>'勺', '喝'=>'�?', '啕'=>'啕', '喙'=>'喙', '嗢'=>'嗢', '塚'=>'塚', '墳'=>'墳', '奄'=>'奄', '奔'=>'奔', '婢'=>'婢', '�?'=>'嬨', '廒'=>'廒', '廙'=>'廙', '彩'=>'彩', '徭'=>'徭', '惘'=>'惘', '慎'=>'慎', '愈'=>'愈', '憎'=>'憎', '慠'=>'慠', '懲'=>'懲', '戴'=>'戴', '�?'=>'�?�', '搜'=>'�?�', '�?'=>'摒', '�?'=>'敖', '晴'=>'晴', '朗'=>'朗', '望'=>'望', '杖'=>'�?�', '歹'=>'歹', '殺'=>'殺', '流'=>'�?', '滛'=>'滛', '滋'=>'滋', '漢'=>'漢', '瀞'=>'瀞', '煮'=>'煮', '�?'=>'瞧', '爵'=>'爵', '犯'=>'犯', '猪'=>'猪', '瑱'=>'瑱', '甆'=>'甆', '画'=>'画', '瘝'=>'�?', '瘟'=>'瘟', '益'=>'益', '盛'=>'盛', '直'=>'直', '睊'=>'�?�', '着'=>'�?�', '磌'=>'磌', '窱'=>'窱', '節'=>'節', '类'=>'类', '絛'=>'絛', '練'=>'練', '缾'=>'缾', '者'=>'者', '荒'=>'�?�', '華'=>'�?�', '蝹'=>'�?�', '襁'=>'�?', '覆'=>'覆', '視'=>'視', '調'=>'調', '諸'=>'諸', '請'=>'請', '謁'=>'�?', '諾'=>'諾', '諭'=>'諭', '謹'=>'謹', '變'=>'變', '�?'=>'贈', '輸'=>'輸', '遲'=>'�?�', '醙'=>'醙', '鉶'=>'鉶', '陼'=>'陼', '難'=>'難', '靖'=>'�?�', '韛'=>'韛', '響'=>'響', '頋'=>'頋', '頻'=>'頻', '�?'=>'鬒', '龜'=>'龜', '�?'=>'𢡊', '�?'=>'𢡄', '𣏕'=>'�?�', '㮝'=>'�?', '䀘'=>'䀘', '䀹'=>'䀹', '𥉉'=>'𥉉', '𥳐'=>'�?', '𧻓'=>'𧻓', '齃'=>'齃', '龎'=>'龎', '�?'=>'יִ', 'ײַ'=>'ײַ', 'שׁ'=>'ש�?', 'שׂ'=>'שׂ', 'שּׁ'=>'שּ�?', 'שּׂ'=>'שּׂ', 'אַ'=>'�?ַ', 'אָ'=>'�?ָ', 'אּ'=>'�?ּ', 'בּ'=>'בּ', 'גּ'=>'גּ', 'דּ'=>'דּ', 'הּ'=>'הּ', 'וּ'=>'וּ', 'זּ'=>'זּ', 'טּ'=>'טּ', 'יּ'=>'יּ', 'ךּ'=>'ךּ', 'כּ'=>'כּ', 'לּ'=>'לּ', 'מּ'=>'מּ', 'נּ'=>'נּ', '�?'=>'סּ', 'ףּ'=>'ףּ', 'פּ'=>'פּ', 'צּ'=>'צּ', 'קּ'=>'קּ', 'רּ'=>'רּ', 'שּ'=>'שּ', 'תּ'=>'תּ', 'וֹ'=>'וֹ', 'בֿ'=>'בֿ', '�?'=>'כֿ', 'פֿ'=>'פֿ', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '�?��'=>'�?���?��', '丽'=>'丽', '�?'=>'丸', '乁'=>'�?', '𠄢'=>'𠄢', '你'=>'你', '侮'=>'侮', '侻'=>'侻', '倂'=>'倂', '偺'=>'�?�', '備'=>'備', '僧'=>'僧', '像'=>'�?', '㒞'=>'㒞', '�?'=>'𠘺', '免'=>'�?', '�?'=>'兔', '�?'=>'兤', '具'=>'具', '𠔜'=>'𠔜', '㒹'=>'㒹', '內'=>'內', '再'=>'�?', '𠕋'=>'𠕋', '冗'=>'冗', '冤'=>'冤', '仌'=>'仌', '冬'=>'冬', '况'=>'况', '𩇟'=>'𩇟', '�?'=>'凵', '刃'=>'刃', '㓟'=>'㓟', '刻'=>'刻', '剆'=>'剆', '割'=>'割', '剷'=>'剷', '㔕'=>'㔕', '勇'=>'勇', '勉'=>'勉', '勤'=>'勤', '勺'=>'勺', '包'=>'包', '匆'=>'匆', '北'=>'北', '卉'=>'�?�', '卑'=>'�?�', '博'=>'�?�', '即'=>'�?�', '卽'=>'�?�', '卿'=>'�?�', '卿'=>'�?�', '卿'=>'�?�', '𠨬'=>'𠨬', '灰'=>'�?�', '及'=>'�?�', '叟'=>'�?�', '𠭣'=>'𠭣', '叫'=>'�?�', '叱'=>'�?�', '吆'=>'�?�', '咞'=>'咞', '吸'=>'�?�', '呈'=>'呈', '周'=>'周', '咢'=>'咢', '�?'=>'哶', '唐'=>'�?', '啓'=>'啓', '啣'=>'啣', '善'=>'善', '善'=>'善', '喙'=>'喙', '喫'=>'喫', '喳'=>'喳', '嗂'=>'嗂', '圖'=>'圖', '嘆'=>'嘆', '�?'=>'圗', '噑'=>'噑', '�?'=>'噴', '�?'=>'切', '壮'=>'壮', '城'=>'城', '埴'=>'埴', '堍'=>'�?', '型'=>'型', '堲'=>'堲', '報'=>'報', '墬'=>'墬', '𡓤'=>'𡓤', '売'=>'売', '壷'=>'壷', '夆'=>'夆', '�?'=>'多', '夢'=>'夢', '奢'=>'奢', '𡚨'=>'𡚨', '𡛪'=>'𡛪', '姬'=>'姬', '娛'=>'娛', '娧'=>'娧', '姘'=>'姘', '婦'=>'婦', '㛮'=>'㛮', '㛼'=>'㛼', '嬈'=>'嬈', '嬾'=>'嬾', '嬾'=>'嬾', '𡧈'=>'𡧈', '寃'=>'寃', '寘'=>'寘', '寧'=>'寧', '寳'=>'寳', '𡬘'=>'𡬘', '寿'=>'寿', '将'=>'将', '当'=>'当', '尢'=>'尢', '㞁'=>'�?', '屠'=>'屠', '屮'=>'屮', '峀'=>'峀', '岍'=>'�?', '𡷤'=>'𡷤', '嵃'=>'嵃', '𡷦'=>'𡷦', '嵮'=>'嵮', '嵫'=>'嵫', '嵼'=>'嵼', '�?'=>'巡', '巢'=>'巢', '㠯'=>'㠯', '巽'=>'巽', '帨'=>'帨', '帽'=>'帽', '幩'=>'幩', '㡢'=>'㡢', '𢆃'=>'𢆃', '㡼'=>'㡼', '庰'=>'庰', '庳'=>'庳', '�?'=>'庶', '廊'=>'廊', '�?'=>'𪎒', '�?'=>'廾', '𢌱'=>'𢌱', '𢌱'=>'𢌱', '舁'=>'�?', '弢'=>'弢', '弢'=>'弢', '㣇'=>'㣇', '𣊸'=>'𣊸', '𦇚'=>'𦇚', '形'=>'形', '彫'=>'彫', '㣣'=>'㣣', '徚'=>'徚', '�?'=>'�?', '志'=>'志', '忹'=>'忹', '悁'=>'�?', '㤺'=>'㤺', '㤜'=>'㤜', '悔'=>'悔', '𢛔'=>'𢛔', '惇'=>'惇', '慈'=>'慈', '慌'=>'慌', '慎'=>'慎', '慌'=>'慌', '慺'=>'慺', '憎'=>'憎', '憲'=>'憲', '憤'=>'憤', '憯'=>'憯', '懞'=>'懞', '懲'=>'懲', '懶'=>'懶', '成'=>'�?', '戛'=>'戛', '扝'=>'�?', '抱'=>'抱', '拔'=>'拔', '捐'=>'�??', '𢬌'=>'𢬌', '挽'=>'挽', '拼'=>'拼', '捨'=>'�?�', '掃'=>'掃', '揤'=>'�?�', '𢯱'=>'𢯱', '搢'=>'�?�', '揅'=>'�?�', '�?'=>'掩', '㨮'=>'㨮', '摩'=>'摩', '摾'=>'摾', '撝'=>'�?', '摷'=>'摷', '㩬'=>'㩬', '敏'=>'�?', '敬'=>'敬', '𣀊'=>'𣀊', '旣'=>'旣', '書'=>'書', '�?'=>'晉', '㬙'=>'㬙', '�?'=>'暑', '�?'=>'㬈', '㫤'=>'㫤', '冒'=>'冒', '冕'=>'冕', '最'=>'最', '暜'=>'暜', '肭'=>'肭', '䏙'=>'�?�', '朗'=>'朗', '望'=>'望', '朡'=>'朡', '杞'=>'�?�', '杓'=>'�?�', '�?'=>'�?�', '㭉'=>'㭉', '柺'=>'柺', '枅'=>'枅', '桒'=>'桒', '梅'=>'梅', '𣑭'=>'𣑭', '梎'=>'梎', '栟'=>'栟', '椔'=>'椔', '㮝'=>'�?', '楂'=>'楂', '榣'=>'榣', '槪'=>'槪', '檨'=>'檨', '𣚣'=>'𣚣', '櫛'=>'櫛', '㰘'=>'㰘', '次'=>'次', '𣢧'=>'𣢧', '歔'=>'歔', '㱎'=>'㱎', '歲'=>'歲', '殟'=>'殟', '殺'=>'殺', '殻'=>'殻', '𣪍'=>'�?', '𡴋'=>'𡴋', '𣫺'=>'𣫺', '汎'=>'汎', '𣲼'=>'𣲼', '沿'=>'沿', '泍'=>'�?', '汧'=>'汧', '洖'=>'洖', '派'=>'派', '�?'=>'海', '流'=>'�?', '浩'=>'浩', '浸'=>'浸', '涅'=>'涅', '𣴞'=>'𣴞', '洴'=>'洴', '港'=>'港', '湮'=>'湮', '㴳'=>'㴳', '滋'=>'滋', '滇'=>'滇', '�?'=>'𣻑', '淹'=>'淹', '�?'=>'潮', '�?'=>'𣽞', '𣾎'=>'𣾎', '濆'=>'濆', '瀹'=>'瀹', '瀞'=>'瀞', '瀛'=>'瀛', '㶖'=>'㶖', '灊'=>'�?�', '災'=>'�?�', '灷'=>'�?�', '炭'=>'炭', '𠔥'=>'𠔥', '煅'=>'煅', '�?'=>'𤉣', '熜'=>'熜', '𤎫'=>'𤎫', '爨'=>'爨', '爵'=>'爵', '牐'=>'�?', '𤘈'=>'𤘈', '犀'=>'犀', '犕'=>'犕', '𤜵'=>'𤜵', '𤠔'=>'𤠔', '獺'=>'�?�', '王'=>'王', '㺬'=>'㺬', '玥'=>'玥', '㺸'=>'㺸', '㺸'=>'㺸', '瑇'=>'瑇', '瑜'=>'瑜', '瑱'=>'瑱', '璅'=>'璅', '瓊'=>'瓊', '㼛'=>'㼛', '甤'=>'甤', '𤰶'=>'𤰶', '甾'=>'甾', '𤲒'=>'𤲒', '異'=>'異', '𢆟'=>'𢆟', '瘐'=>'�?', '𤾡'=>'𤾡', '𤾸'=>'𤾸', '𥁄'=>'�?�', '㿼'=>'㿼', '䀈'=>'䀈', '直'=>'直', '�?'=>'𥃳', '𥃲'=>'𥃲', '𥄙'=>'𥄙', '𥄳'=>'𥄳', '眞'=>'眞', '真'=>'真', '真'=>'真', '睊'=>'�?�', '䀹'=>'䀹', '瞋'=>'瞋', '䁆'=>'�?�', '䂖'=>'䂖', '�?'=>'�??', '硎'=>'硎', '�?'=>'碌', '�?'=>'磌', '䃣'=>'䃣', '𥘦'=>'𥘦', '祖'=>'祖', '𥚚'=>'𥚚', '𥛅'=>'𥛅', '福'=>'�?', '秫'=>'秫', '䄯'=>'䄯', '穀'=>'穀', '穊'=>'穊', '穏'=>'�?', '𥥼'=>'𥥼', '�?'=>'𥪧', '𥪧'=>'𥪧', '竮'=>'竮', '䈂'=>'䈂', '𥮫'=>'𥮫', '篆'=>'篆', '築'=>'築', '䈧'=>'䈧', '𥲀'=>'𥲀', '糒'=>'糒', '䊠'=>'䊠', '糨'=>'糨', '糣'=>'糣', '紀'=>'紀', '𥾆'=>'𥾆', '絣'=>'絣', '䌁'=>'�?', '緇'=>'緇', '縂'=>'縂', '繅'=>'繅', '䌴'=>'䌴', '𦈨'=>'𦈨', '𦉇'=>'𦉇', '䍙'=>'�?�', '𦋙'=>'𦋙', '罺'=>'罺', '𦌾'=>'𦌾', '羕'=>'羕', '翺'=>'翺', '者'=>'者', '𦓚'=>'𦓚', '𦔣'=>'𦔣', '聠'=>'�?�', '𦖨'=>'𦖨', '聰'=>'�?�', '𣍟'=>'�?�', '�?'=>'�?�', '育'=>'育', '脃'=>'脃', '䐋'=>'�?�', '脾'=>'脾', '媵'=>'媵', '𦞧'=>'𦞧', '𦞵'=>'𦞵', '𣎓'=>'𣎓', '𣎜'=>'𣎜', '舁'=>'�?', '舄'=>'舄', '�?'=>'辞', '䑫'=>'䑫', '�?'=>'芑', '�?'=>'芋', '芝'=>'�?', '劳'=>'劳', '花'=>'花', '芳'=>'芳', '芽'=>'芽', '苦'=>'苦', '𦬼'=>'𦬼', '若'=>'若', '茝'=>'�?', '荣'=>'�?�', '莭'=>'莭', '茣'=>'茣', '�?'=>'莽', '菧'=>'�?�', '著'=>'著', '荓'=>'�?�', '菊'=>'�?�', '菌'=>'�?�', '菜'=>'�?�', '𦰶'=>'𦰶', '𦵫'=>'𦵫', '𦳕'=>'𦳕', '䔫'=>'䔫', '蓱'=>'蓱', '蓳'=>'蓳', '蔖'=>'蔖', '𧏊'=>'�?�', '蕤'=>'蕤', '𦼬'=>'𦼬', '䕝'=>'�?', '䕡'=>'䕡', '𦾱'=>'𦾱', '𧃒'=>'𧃒', '䕫'=>'䕫', '虐'=>'�?', '虜'=>'虜', '虧'=>'虧', '虩'=>'虩', '蚩'=>'蚩', '蚈'=>'蚈', '蜎'=>'蜎', '蛢'=>'蛢', '蝹'=>'�?�', '蜨'=>'蜨', '蝫'=>'�?�', '螆'=>'螆', '䗗'=>'䗗', '蟡'=>'蟡', '�?'=>'�?', '䗹'=>'䗹', '衠'=>'衠', '衣'=>'衣', '𧙧'=>'𧙧', '裗'=>'裗', '裞'=>'裞', '䘵'=>'䘵', '裺'=>'裺', '㒻'=>'㒻', '𧢮'=>'𧢮', '𧥦'=>'𧥦', '�?'=>'䚾', '䛇'=>'䛇', '�?'=>'誠', '�?'=>'諭', '變'=>'變', '豕'=>'豕', '𧲨'=>'𧲨', '貫'=>'貫', '賁'=>'�?', '贛'=>'贛', '起'=>'起', '𧼯'=>'𧼯', '𠠄'=>'𠠄', '跋'=>'跋', '趼'=>'趼', '跰'=>'跰', '�?'=>'𠣞', '軔'=>'軔', '輸'=>'輸', '𨗒'=>'𨗒', '𨗭'=>'𨗭', '邔'=>'邔', '郱'=>'郱', '鄑'=>'鄑', '𨜮'=>'𨜮', '鄛'=>'鄛', '鈸'=>'鈸', '鋗'=>'鋗', '鋘'=>'鋘', '鉼'=>'鉼', '鏹'=>'�?�', '鐕'=>'�?�', '𨯺'=>'𨯺', '開'=>'開', '䦕'=>'䦕', '閷'=>'閷', '𨵷'=>'𨵷', '䧦'=>'䧦', '雃'=>'雃', '嶲'=>'嶲', '霣'=>'霣', '𩅅'=>'𩅅', '𩈚'=>'𩈚', '䩮'=>'䩮', '䩶'=>'䩶', '韠'=>'韠', '𩐊'=>'�?�', '䪲'=>'䪲', '𩒖'=>'𩒖', '頋'=>'頋', '頋'=>'頋', '頩'=>'頩', '�?'=>'𩖶', '飢'=>'飢', '䬳'=>'䬳', '餩'=>'餩', '馧'=>'馧', '駂'=>'駂', '駾'=>'駾', '䯎'=>'䯎', '𩬰'=>'𩬰', '鬒'=>'鬒', '鱀'=>'鱀', '鳽'=>'鳽', '�?'=>'䳎', '䳭'=>'䳭', '�?'=>'鵧', '�?'=>'𪃎', '䳸'=>'䳸', '𪄅'=>'𪄅', '𪈎'=>'𪈎', '𪊑'=>'𪊑', '麻'=>'麻', '䵖'=>'䵖', '黹'=>'黹', '黾'=>'黾', '鼅'=>'鼅', '鼏'=>'�?', '鼖'=>'鼖', '鼻'=>'鼻', '�?'=>'𪘀' );
		self::$nonzerocc = array('̀'=>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, '҇'=>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, '᷿'=>220, '�?'=>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, 'ⷿ'=>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, '�?��'=>220, '�?�?'=>220, '�?�?'=>230, '�?��'=>230, '�?��'=>1, '�?��'=>220, '�?��'=>9, '�?��'=>216, '�?��'=>216, '�?��'=>1, '�?��'=>1, '�?��'=>1, '�?��'=>226, '�?��'=>216, '�?��'=>216, '�?��'=>216, '�?��'=>216, '�?��'=>216, '�?��'=>220, '�?��'=>220, '�?��'=>220, '�?��'=>220, '�?��'=>220, '�?��'=>220, '�?�?'=>220, '�?��'=>220, '�?��'=>230, '�?��'=>230, '�?��'=>230, '�?��'=>230, '�?��'=>230, '�?��'=>220, '�?��'=>220, '�?��'=>230, '�?��'=>230, '�?��'=>230, '�?��'=>230, '�?��'=>230, '�?��'=>230, '�?��'=>230);
		self::$zerocc = array('ে'=>0, 'া'=>0, 'ৗ'=>0, 'େ'=>0, 'ୖ'=>0, 'ା'=>0, 'ୗ'=>0, 'ஒ'=>0, 'ௗ'=>0, 'ெ'=>0, 'ா'=>0, 'ே'=>0, 'ಿ'=>0, 'ೕ'=>0, 'ೆ'=>0, 'ೖ'=>0, 'ೂ'=>0, 'െ'=>0, 'ാ'=>0, 'േ'=>0, 'ൗ'=>0, 'ෙ'=>0, '�?'=>0, '්'=>0, 'ෟ'=>0, 'ཱི'=>0, 'ཱུ'=>0, '�?'=>0, 'ီ'=>0, 'ᬵ'=>0 );
		// create exclusion list (apart from non-starter decompositions)
		self::$nfcexclusions = array('क़'=>0,'ख़'=>0,'ग़'=>0,'ज़'=>0,'ड़'=>0,'�?'=>0,'फ़'=>0,'य़'=>0,'ড়'=>0,'�?'=>0,'য়'=>0,'ਲ਼'=>0,'ਸ਼'=>0,'ਖ਼'=>0,'ਗ਼'=>0,'ਜ਼'=>0,'ਫ਼'=>0,'ଡ଼'=>0,'�?'=>0,'གྷ'=>0,'�?'=>0,'དྷ'=>0,'བྷ'=>0,'ཛྷ'=>0,'ཀྵ'=>0,'ྲྀ'=>0,'ླྀ'=>0,'ྒྷ'=>0,'�?'=>0,'ྡྷ'=>0,'ྦྷ'=>0,'ྫྷ'=>0,'ྐྵ'=>0,'�?'=>0,'ײַ'=>0,'שׁ'=>0,'שׂ'=>0,'שּׁ'=>0,'שּׂ'=>0,'אַ'=>0,'אָ'=>0,'אּ'=>0,'בּ'=>0,'גּ'=>0,'דּ'=>0,'הּ'=>0,'וּ'=>0,'זּ'=>0,'טּ'=>0,'יּ'=>0,'ךּ'=>0,'כּ'=>0,'לּ'=>0,'מּ'=>0,'נּ'=>0,'�?'=>0,'ףּ'=>0,'פּ'=>0,'צּ'=>0,'קּ'=>0,'רּ'=>0,'שּ'=>0,'תּ'=>0,'וֹ'=>0,'בֿ'=>0,'�?'=>0,'פֿ'=>0,'⫝̸'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'�?��'=>0,'̈́'=>0,'ཱི'=>0,'ཱུ'=>0,'�?'=>0 );
		foreach (self::$decomposable as $ch => $val) { // add all singleton decompositions
			//print $ch.'=>'.$val.'    '.mb_strlen($val,'UTF-8').'<br />';
			if (mb_strlen($val,'UTF-8') == 1 || 
				((mb_strlen($val,'UTF-8') == 2) && mb_substr($val,0,1,"UTF-8") >= '?' && mb_substr($val,0,1,"UTF-8") <= '?'  )) {
				self::$nfcexclusions[$ch] = 0;  //print 'adding '.$ch.' to exclusion list<br/>';
			}
		}
		// create composition list
		self::$composable = array ();
		foreach (self::$decomposable as $ch => $val) { // search the decomposition list and include all but excluded 
			if (! isset(self::$nfcexclusions[$ch])) {
				self::$composable[$val] = $ch;
			}
		}
	}
}
mb_internal_encoding("UTF-8");
N11n::_init();