GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Pull Request — develop (#1814)
by
unknown
11:57
created
classes/xml/xmlquery/argument/ConditionArgument.class.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -116,7 +116,7 @@
 block discarded – undo
116 116
 	 * In this case, the column type is retrieved according to argument
117 117
 	 * value type (using the PHP function is_numeric).
118 118
 	 *
119
-	 * @return type string
119
+	 * @return string string
120 120
 	 */
121 121
 	function getType()
122 122
 	{
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -26,7 +26,7 @@  discard block
 block discarded – undo
26 26
 	function ConditionArgument($name, $value, $operation)
27 27
 	{
28 28
 		$operationList = array('in' => 1, 'notin' => 1, 'not_in' => 1, 'between' => 1);
29
-		if(isset($value) && isset($operationList[$operation]) && !is_array($value) && $value != '')
29
+		if (isset($value) && isset($operationList[$operation]) && !is_array($value) && $value != '')
30 30
 		{
31 31
 			$value = str_replace(' ', '', $value);
32 32
 			$value = str_replace('\'', '', $value);
@@ -42,7 +42,7 @@  discard block
 block discarded – undo
42 42
 	 */
43 43
 	function createConditionValue()
44 44
 	{
45
-		if(!isset($this->value))
45
+		if (!isset($this->value))
46 46
 		{
47 47
 			return;
48 48
 		}
@@ -50,10 +50,10 @@  discard block
 block discarded – undo
50 50
 		$operation = $this->operation;
51 51
 		$value = $this->value;
52 52
 
53
-		switch($operation)
53
+		switch ($operation)
54 54
 		{
55 55
 			case 'like_prefix' :
56
-				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
56
+				if (defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
57 57
 				{
58 58
 					$this->value = '^' . str_replace('%', '(.*)', preg_quote($value));
59 59
 				}
@@ -63,7 +63,7 @@  discard block
 block discarded – undo
63 63
 				}
64 64
 				break;
65 65
 			case 'like_tail' :
66
-				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
66
+				if (defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
67 67
 				{
68 68
 					$this->value = str_replace('%', '(.*)', preg_quote($value)) . '$';
69 69
 				}
@@ -73,7 +73,7 @@  discard block
 block discarded – undo
73 73
 				}
74 74
 				break;
75 75
 			case 'like' :
76
-				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
76
+				if (defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
77 77
 				{
78 78
 					$this->value = str_replace('%', '(.*)', preg_quote($value));
79 79
 				}
@@ -92,14 +92,14 @@  discard block
 block discarded – undo
92 92
 				$this->value = '%' . $value;
93 93
 				break;
94 94
 			case 'in':
95
-				if(!is_array($value))
95
+				if (!is_array($value))
96 96
 				{
97 97
 					$this->value = array($value);
98 98
 				}
99 99
 				break;
100 100
 			case 'notin':
101 101
 			case 'not_in':
102
-				if(!is_array($value))
102
+				if (!is_array($value))
103 103
 				{
104 104
 					$this->value = array($value);
105 105
 				}
@@ -120,11 +120,11 @@  discard block
 block discarded – undo
120 120
 	 */
121 121
 	function getType()
122 122
 	{
123
-		if($this->type)
123
+		if ($this->type)
124 124
 		{
125 125
 			return $this->type;
126 126
 		}
127
-		else if(!is_numeric($this->value))
127
+		else if (!is_numeric($this->value))
128 128
 		{
129 129
 			return 'varchar';
130 130
 		}
@@ -136,11 +136,11 @@  discard block
 block discarded – undo
136 136
 
137 137
 	function setColumnType($column_type)
138 138
 	{
139
-		if(!isset($this->value))
139
+		if (!isset($this->value))
140 140
 		{
141 141
 			return;
142 142
 		}
143
-		if($column_type === '')
143
+		if ($column_type === '')
144 144
 		{
145 145
 			return;
146 146
 		}
Please login to merge, or discard this patch.
Braces   +5 added lines, -10 removed lines patch added patch discarded remove patch
@@ -56,8 +56,7 @@  discard block
 block discarded – undo
56 56
 				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
57 57
 				{
58 58
 					$this->value = '^' . str_replace('%', '(.*)', preg_quote($value));
59
-				}
60
-				else
59
+				} else
61 60
 				{
62 61
 					$this->value = $value . '%';
63 62
 				}
@@ -66,8 +65,7 @@  discard block
 block discarded – undo
66 65
 				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
67 66
 				{
68 67
 					$this->value = str_replace('%', '(.*)', preg_quote($value)) . '$';
69
-				}
70
-				else
68
+				} else
71 69
 				{
72 70
 					$this->value = '%' . $value;
73 71
 				}
@@ -76,8 +74,7 @@  discard block
 block discarded – undo
76 74
 				if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
77 75
 				{
78 76
 					$this->value = str_replace('%', '(.*)', preg_quote($value));
79
-				}
80
-				else
77
+				} else
81 78
 				{
82 79
 					$this->value = '%' . $value . '%';
83 80
 				}
@@ -123,12 +120,10 @@  discard block
 block discarded – undo
123 120
 		if($this->type)
124 121
 		{
125 122
 			return $this->type;
126
-		}
127
-		else if(!is_numeric($this->value))
123
+		} else if(!is_numeric($this->value))
128 124
 		{
129 125
 			return 'varchar';
130
-		}
131
-		else
126
+		} else
132 127
 		{
133 128
 			return '';
134 129
 		}
Please login to merge, or discard this patch.
classes/xml/xmlquery/QueryParser.class.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -28,7 +28,7 @@
 block discarded – undo
28 28
 	 *
29 29
 	 * @param object $query XML object obtained after reading the XML Query file
30 30
 	 * @param bool $isSubQuery
31
-	 * @return void
31
+	 * @return string
32 32
 	 */
33 33
 	function QueryParser($query = NULL, $isSubQuery = FALSE)
34 34
 	{
Please login to merge, or discard this patch.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -32,7 +32,7 @@  discard block
 block discarded – undo
32 32
 	 */
33 33
 	function QueryParser($query = NULL, $isSubQuery = FALSE)
34 34
 	{
35
-		if($query)
35
+		if ($query)
36 36
 		{
37 37
 			$this->queryTag = new QueryTag($query, $isSubQuery);
38 38
 		}
@@ -54,17 +54,17 @@  discard block
 block discarded – undo
54 54
 		$module = '';
55 55
 
56 56
 		$id_args = explode('.', $query_id);
57
-		if(count($id_args) == 2)
57
+		if (count($id_args) == 2)
58 58
 		{
59 59
 			$target = 'modules';
60 60
 			$module = $id_args[0];
61 61
 			$id = $id_args[1];
62 62
 		}
63
-		else if(count($id_args) == 3)
63
+		else if (count($id_args) == 3)
64 64
 		{
65 65
 			$target = $id_args[0];
66 66
 			$targetList = array('modules' => 1, 'addons' => 1, 'widgets' => 1);
67
-			if(!isset($targetList[$target]))
67
+			if (!isset($targetList[$target]))
68 68
 			{
69 69
 				return;
70 70
 			}
@@ -74,33 +74,33 @@  discard block
 block discarded – undo
74 74
 
75 75
 		// get column properties from the table
76 76
 		$table_file = sprintf('%s%s/%s/schemas/%s.xml', _XE_PATH_, 'modules', $module, $table_name);
77
-		if(!file_exists($table_file))
77
+		if (!file_exists($table_file))
78 78
 		{
79 79
 			$searched_list = FileHandler::readDir(_XE_PATH_ . 'modules');
80 80
 			$searched_count = count($searched_list);
81
-			for($i = 0; $i < $searched_count; $i++)
81
+			for ($i = 0; $i < $searched_count; $i++)
82 82
 			{
83 83
 				$table_file = sprintf('%s%s/%s/schemas/%s.xml', _XE_PATH_, 'modules', $searched_list[$i], $table_name);
84
-				if(file_exists($table_file))
84
+				if (file_exists($table_file))
85 85
 				{
86 86
 					break;
87 87
 				}
88 88
 			}
89 89
 		}
90 90
 
91
-		if(file_exists($table_file))
91
+		if (file_exists($table_file))
92 92
 		{
93 93
 			$table_xml = FileHandler::readFile($table_file);
94 94
 			$xml_parser = new XmlParser();
95 95
 			$table_obj = $xml_parser->parse($table_xml);
96
-			if($table_obj->table)
96
+			if ($table_obj->table)
97 97
 			{
98
-				if(isset($table_obj->table->column) && !is_array($table_obj->table->column))
98
+				if (isset($table_obj->table->column) && !is_array($table_obj->table->column))
99 99
 				{
100 100
 					$table_obj->table->column = array($table_obj->table->column);
101 101
 				}
102 102
 
103
-				foreach($table_obj->table->column as $k => $v)
103
+				foreach ($table_obj->table->column as $k => $v)
104 104
 				{
105 105
 					$column_type[$v->attrs->name] = $v->attrs->type;
106 106
 				}
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -59,8 +59,7 @@
 block discarded – undo
59 59
 			$target = 'modules';
60 60
 			$module = $id_args[0];
61 61
 			$id = $id_args[1];
62
-		}
63
-		else if(count($id_args) == 3)
62
+		} else if(count($id_args) == 3)
64 63
 		{
65 64
 			$target = $id_args[0];
66 65
 			$targetList = array('modules' => 1, 'addons' => 1, 'widgets' => 1);
Please login to merge, or discard this patch.
classes/xml/xmlquery/tags/query/QueryTag.class.php 3 patches
Doc Comments   +3 added lines patch added patch discarded remove patch
@@ -169,6 +169,9 @@
 block discarded – undo
169 169
 		return $this->query->attrs->action;
170 170
 	}
171 171
 
172
+	/**
173
+	 * @param TablesTag $tables
174
+	 */
172 175
 	function setTableColumnTypes($tables)
173 176
 	{
174 177
 		$query_id = $this->getQueryId();
Please login to merge, or discard this patch.
Spacing   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -126,11 +126,11 @@  discard block
 block discarded – undo
126 126
 		$this->priority = $query->attrs->priority;
127 127
 		$this->query = $query;
128 128
 		$this->isSubQuery = $isSubQuery;
129
-		if($this->isSubQuery)
129
+		if ($this->isSubQuery)
130 130
 		{
131 131
 			$this->action = 'select';
132 132
 		}
133
-		if($query->attrs->alias)
133
+		if ($query->attrs->alias)
134 134
 		{
135 135
 			$dbParser = DB::getParser();
136 136
 			$this->alias = $dbParser->escape($query->attrs->alias);
@@ -172,13 +172,13 @@  discard block
 block discarded – undo
172 172
 	function setTableColumnTypes($tables)
173 173
 	{
174 174
 		$query_id = $this->getQueryId();
175
-		if(!isset($this->column_type[$query_id]))
175
+		if (!isset($this->column_type[$query_id]))
176 176
 		{
177 177
 			$table_tags = $tables->getTables();
178 178
 			$column_type = array();
179
-			foreach($table_tags as $table_tag)
179
+			foreach ($table_tags as $table_tag)
180 180
 			{
181
-				if(is_a($table_tag, 'TableTag'))
181
+				if (is_a($table_tag, 'TableTag'))
182 182
 				{
183 183
 					$table_name = $table_tag->getTableName();
184 184
 					$table_alias = $table_tag->getTableAlias();
@@ -192,19 +192,19 @@  discard block
 block discarded – undo
192 192
 
193 193
 	function getColumns()
194 194
 	{
195
-		if($this->action == 'select')
195
+		if ($this->action == 'select')
196 196
 		{
197 197
 			return $this->columns = new SelectColumnsTag($this->query->columns);
198 198
 		}
199
-		else if($this->action == 'insert' || $this->action == 'insert-select')
199
+		else if ($this->action == 'insert' || $this->action == 'insert-select')
200 200
 		{
201 201
 			return $this->columns = new InsertColumnsTag($this->query->columns->column);
202 202
 		}
203
-		else if($this->action == 'update')
203
+		else if ($this->action == 'update')
204 204
 		{
205 205
 			return $this->columns = new UpdateColumnsTag($this->query->columns->column);
206 206
 		}
207
-		else if($this->action == 'delete')
207
+		else if ($this->action == 'delete')
208 208
 		{
209 209
 			return $this->columns = null;
210 210
 		}
@@ -212,7 +212,7 @@  discard block
 block discarded – undo
212 212
 
213 213
 	function getPrebuff()
214 214
 	{
215
-		if($this->isSubQuery)
215
+		if ($this->isSubQuery)
216 216
 		{
217 217
 			return;
218 218
 		}
@@ -220,20 +220,20 @@  discard block
 block discarded – undo
220 220
 		$arguments = $this->getArguments();
221 221
 
222 222
 		$prebuff = '';
223
-		foreach($arguments as $argument)
223
+		foreach ($arguments as $argument)
224 224
 		{
225
-			if(isset($argument))
225
+			if (isset($argument))
226 226
 			{
227 227
 				$arg_name = $argument->getArgumentName();
228
-				if($arg_name)
228
+				if ($arg_name)
229 229
 				{
230 230
 					unset($column_type);
231 231
 					$prebuff .= $argument->toString();
232 232
 
233 233
 					$table_alias = $argument->getTableName();
234
-					if(isset($table_alias))
234
+					if (isset($table_alias))
235 235
 					{
236
-						if(isset($this->column_type[$this->getQueryId()][$table_alias][$argument->getColumnName()]))
236
+						if (isset($this->column_type[$this->getQueryId()][$table_alias][$argument->getColumnName()]))
237 237
 						{
238 238
 							$column_type = $this->column_type[$this->getQueryId()][$table_alias][$argument->getColumnName()];
239 239
 						}
@@ -242,16 +242,16 @@  discard block
 block discarded – undo
242 242
 					{
243 243
 						$current_tables = $this->column_type[$this->getQueryId()];
244 244
 						$column_name = $argument->getColumnName();
245
-						foreach($current_tables as $current_table)
245
+						foreach ($current_tables as $current_table)
246 246
 						{
247
-							if(isset($current_table[$column_name]))
247
+							if (isset($current_table[$column_name]))
248 248
 							{
249 249
 								$column_type = $current_table[$column_name];
250 250
 							}
251 251
 						}
252 252
 					}
253 253
 
254
-					if(isset($column_type))
254
+					if (isset($column_type))
255 255
 					{
256 256
 						$prebuff .= sprintf('if(${\'%s_argument\'} !== null) ${\'%s_argument\'}->setColumnType(\'%s\');' . "\n"
257 257
 								, $arg_name
@@ -269,11 +269,11 @@  discard block
 block discarded – undo
269 269
 	function getBuff()
270 270
 	{
271 271
 		$buff = '';
272
-		if($this->isSubQuery)
272
+		if ($this->isSubQuery)
273 273
 		{
274 274
 			$buff = 'new Subquery(';
275 275
 			$buff .= "'" . $this->alias . '\', ';
276
-			$buff .= ($this->columns ? $this->columns->toString() : 'null' ) . ', ' . PHP_EOL;
276
+			$buff .= ($this->columns ? $this->columns->toString() : 'null') . ', ' . PHP_EOL;
277 277
 			$buff .= $this->tables->toString() . ',' . PHP_EOL;
278 278
 			$buff .= $this->conditions->toString() . ',' . PHP_EOL;
279 279
 			$buff .= $this->groups->toString() . ',' . PHP_EOL;
@@ -292,13 +292,13 @@  discard block
 block discarded – undo
292 292
 		$buff .= sprintf('$query->setAction("%s");%s', $this->action, "\n");
293 293
 		$buff .= sprintf('$query->setPriority("%s");%s', $this->priority, "\n");
294 294
 		$buff .= $this->preBuff;
295
-		if($this->columns)
295
+		if ($this->columns)
296 296
 		{
297 297
 			$buff .= '$query->setColumns(' . $this->columns->toString() . ');' . PHP_EOL;
298 298
 		}
299 299
 
300 300
 		$buff .= '$query->setTables(' . $this->tables->toString() . ');' . PHP_EOL;
301
-		if($this->action == 'insert-select')
301
+		if ($this->action == 'insert-select')
302 302
 		{
303 303
 			$buff .= '$query->setSubquery(' . $this->subquery->toString() . ');' . PHP_EOL;
304 304
 		}
@@ -313,7 +313,7 @@  discard block
 block discarded – undo
313 313
 
314 314
 	function getTables()
315 315
 	{
316
-		if($this->query->index_hint && ($this->query->index_hint->attrs->for == 'ALL' || Context::getDBType() == strtolower($this->query->index_hint->attrs->for)))
316
+		if ($this->query->index_hint && ($this->query->index_hint->attrs->for == 'ALL' || Context::getDBType() == strtolower($this->query->index_hint->attrs->for)))
317 317
 		{
318 318
 			return $this->tables = new TablesTag($this->query->tables, $this->query->index_hint);
319 319
 		}
@@ -325,7 +325,7 @@  discard block
 block discarded – undo
325 325
 
326 326
 	function getSubquery()
327 327
 	{
328
-		if($this->query->query)
328
+		if ($this->query->query)
329 329
 		{
330 330
 			$this->subquery = new QueryTag($this->query->query, true);
331 331
 		}
@@ -338,7 +338,7 @@  discard block
 block discarded – undo
338 338
 
339 339
 	function getGroups()
340 340
 	{
341
-		if($this->query->groups)
341
+		if ($this->query->groups)
342 342
 		{
343 343
 			return $this->groups = new GroupsTag($this->query->groups->group);
344 344
 		}
@@ -376,11 +376,11 @@  discard block
 block discarded – undo
376 376
 	function getArguments()
377 377
 	{
378 378
 		$arguments = array();
379
-		if($this->columns)
379
+		if ($this->columns)
380 380
 		{
381 381
 			$arguments = array_merge($arguments, $this->columns->getArguments());
382 382
 		}
383
-		if($this->action == 'insert-select')
383
+		if ($this->action == 'insert-select')
384 384
 		{
385 385
 			$arguments = array_merge($arguments, $this->subquery->getArguments());
386 386
 		}
Please login to merge, or discard this patch.
Braces   +6 added lines, -12 removed lines patch added patch discarded remove patch
@@ -195,16 +195,13 @@  discard block
 block discarded – undo
195 195
 		if($this->action == 'select')
196 196
 		{
197 197
 			return $this->columns = new SelectColumnsTag($this->query->columns);
198
-		}
199
-		else if($this->action == 'insert' || $this->action == 'insert-select')
198
+		} else if($this->action == 'insert' || $this->action == 'insert-select')
200 199
 		{
201 200
 			return $this->columns = new InsertColumnsTag($this->query->columns->column);
202
-		}
203
-		else if($this->action == 'update')
201
+		} else if($this->action == 'update')
204 202
 		{
205 203
 			return $this->columns = new UpdateColumnsTag($this->query->columns->column);
206
-		}
207
-		else if($this->action == 'delete')
204
+		} else if($this->action == 'delete')
208 205
 		{
209 206
 			return $this->columns = null;
210 207
 		}
@@ -237,8 +234,7 @@  discard block
 block discarded – undo
237 234
 						{
238 235
 							$column_type = $this->column_type[$this->getQueryId()][$table_alias][$argument->getColumnName()];
239 236
 						}
240
-					}
241
-					else
237
+					} else
242 238
 					{
243 239
 						$current_tables = $this->column_type[$this->getQueryId()];
244 240
 						$column_name = $argument->getColumnName();
@@ -316,8 +312,7 @@  discard block
 block discarded – undo
316 312
 		if($this->query->index_hint && ($this->query->index_hint->attrs->for == 'ALL' || Context::getDBType() == strtolower($this->query->index_hint->attrs->for)))
317 313
 		{
318 314
 			return $this->tables = new TablesTag($this->query->tables, $this->query->index_hint);
319
-		}
320
-		else
315
+		} else
321 316
 		{
322 317
 			return $this->tables = new TablesTag($this->query->tables);
323 318
 		}
@@ -341,8 +336,7 @@  discard block
 block discarded – undo
341 336
 		if($this->query->groups)
342 337
 		{
343 338
 			return $this->groups = new GroupsTag($this->query->groups->group);
344
-		}
345
-		else
339
+		} else
346 340
 		{
347 341
 			return $this->groups = new GroupsTag(NULL);
348 342
 		}
Please login to merge, or discard this patch.
classes/xml/XmlQueryParser.class.php 2 patches
Doc Comments   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -79,9 +79,9 @@
 block discarded – undo
79 79
 	/**
80 80
 	 * Override for parent "parse" method
81 81
 	 *
82
-	 * @param null $query_id
83
-	 * @param null $xml_file
84
-	 * @param null $cache_file
82
+	 * @param string $query_id
83
+	 * @param string $xml_file
84
+	 * @param string $cache_file
85 85
 	 *
86 86
 	 * @return void
87 87
 	 */
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
 /**
5 5
  * File containing the XE 1.5 XmlQueryParserClass
6 6
  */
7
-if(!defined('__XE_LOADED_XML_CLASS__'))
7
+if (!defined('__XE_LOADED_XML_CLASS__'))
8 8
 {
9 9
 	define('__XE_LOADED_XML_CLASS__', 1);
10 10
 }
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
 	function &getInstance()
38 38
 	{
39 39
 		static $theInstance = NULL;
40
-		if(!isset($theInstance))
40
+		if (!isset($theInstance))
41 41
 		{
42 42
 			$theInstance = new XmlQueryParser();
43 43
 		}
@@ -64,7 +64,7 @@  discard block
 block discarded – undo
64 64
 
65 65
 		// insert, update, delete, select action
66 66
 		$action = strtolower($xml_obj->query->attrs->action);
67
-		if(!$action)
67
+		if (!$action)
68 68
 		{
69 69
 			return;
70 70
 		}
@@ -101,7 +101,7 @@  discard block
 block discarded – undo
101 101
 	{
102 102
 		$buff = FileHandler::readFile($xml_file);
103 103
 		$xml_obj = parent::parse($buff);
104
-		if(!$xml_obj)
104
+		if (!$xml_obj)
105 105
 		{
106 106
 			return;
107 107
 		}
Please login to merge, or discard this patch.
config/func.inc.php 3 patches
Doc Comments   +19 added lines, -16 removed lines patch added patch discarded remove patch
@@ -74,7 +74,7 @@  discard block
 block discarded – undo
74 74
  * @param string $module_name The module name to get a instance
75 75
  * @param string $type disp, proc, controller, class
76 76
  * @param string $kind admin, null
77
- * @return mixed Module instance
77
+ * @return ModuleObject Module instance
78 78
  */
79 79
 function getModule($module_name, $type = 'view', $kind = '')
80 80
 {
@@ -85,7 +85,7 @@  discard block
 block discarded – undo
85 85
  * Create a controller instance of the module
86 86
  *
87 87
  * @param string $module_name The module name to get a controller instance
88
- * @return mixed Module controller instance
88
+ * @return ModuleObject Module controller instance
89 89
  */
90 90
 function getController($module_name)
91 91
 {
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
  * Create a admin controller instance of the module
97 97
  *
98 98
  * @param string $module_name The module name to get a admin controller instance
99
- * @return mixed Module admin controller instance
99
+ * @return ModuleObject Module admin controller instance
100 100
  */
101 101
 function getAdminController($module_name)
102 102
 {
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
  * Create a view instance of the module
108 108
  *
109 109
  * @param string $module_name The module name to get a view instance
110
- * @return mixed Module view instance
110
+ * @return ModuleObject Module view instance
111 111
  */
112 112
 function getView($module_name)
113 113
 {
@@ -118,7 +118,7 @@  discard block
 block discarded – undo
118 118
  * Create a mobile instance of the module
119 119
  *
120 120
  * @param string $module_name The module name to get a mobile instance
121
- * @return mixed Module mobile instance
121
+ * @return ModuleObject Module mobile instance
122 122
  */
123 123
 function &getMobile($module_name)
124 124
 {
@@ -129,7 +129,7 @@  discard block
 block discarded – undo
129 129
  * Create a admin view instance of the module
130 130
  *
131 131
  * @param string $module_name The module name to get a admin view instance
132
- * @return mixed Module admin view instance
132
+ * @return ModuleObject Module admin view instance
133 133
  */
134 134
 function getAdminView($module_name)
135 135
 {
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
  * Create a model instance of the module
141 141
  *
142 142
  * @param string $module_name The module name to get a model instance
143
- * @return mixed Module model instance
143
+ * @return ModuleObject Module model instance
144 144
  */
145 145
 function getModel($module_name)
146 146
 {
@@ -151,7 +151,7 @@  discard block
 block discarded – undo
151 151
  * Create an admin model instance of the module
152 152
  *
153 153
  * @param string $module_name The module name to get a admin model instance
154
- * @return mixed Module admin model instance
154
+ * @return ModuleObject Module admin model instance
155 155
  */
156 156
 function getAdminModel($module_name)
157 157
 {
@@ -162,7 +162,7 @@  discard block
 block discarded – undo
162 162
  * Create an api instance of the module
163 163
  *
164 164
  * @param string $module_name The module name to get a api instance
165
- * @return mixed Module api class instance
165
+ * @return ModuleObject Module api class instance
166 166
  */
167 167
 function getAPI($module_name)
168 168
 {
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
  * Create a wap instance of the module
174 174
  *
175 175
  * @param string $module_name The module name to get a wap instance
176
- * @return mixed Module wap class instance
176
+ * @return ModuleObject Module wap class instance
177 177
  */
178 178
 function getWAP($module_name)
179 179
 {
@@ -184,7 +184,7 @@  discard block
 block discarded – undo
184 184
  * Create a class instance of the module
185 185
  *
186 186
  * @param string $module_name The module name to get a class instance
187
- * @return mixed Module class instance
187
+ * @return ModuleObject Module class instance
188 188
  */
189 189
 function getClass($module_name)
190 190
 {
@@ -487,7 +487,7 @@  discard block
 block discarded – undo
487 487
  * Return if domain of the virtual site is url type or id type
488 488
  *
489 489
  * @param string $domain
490
- * @return bool
490
+ * @return integer
491 491
  */
492 492
 function isSiteID($domain)
493 493
 {
@@ -556,7 +556,7 @@  discard block
 block discarded – undo
556 556
 /**
557 557
  * Get a time gap between server's timezone and XE's timezone
558 558
  *
559
- * @return int
559
+ * @return double
560 560
  */
561 561
 function zgap()
562 562
 {
@@ -597,7 +597,7 @@  discard block
 block discarded – undo
597 597
  * YYYYMMDDHHIISS format changed to unix time value
598 598
  *
599 599
  * @param string $str Time value in format of YYYYMMDDHHIISS
600
- * @return int
600
+ * @return null|double
601 601
  */
602 602
 function ztime($str)
603 603
 {
@@ -790,7 +790,7 @@  discard block
 block discarded – undo
790 790
  * Display $buff contents into the file ./files/_debug_message.php.
791 791
  * You can see the file on your prompt by command: tail-f./files/_debug_message.php
792 792
  *
793
- * @param mixed $debug_output Target object to be printed
793
+ * @param string $debug_output Target object to be printed
794 794
  * @param bool $display_option boolean Flag whether to print seperator (default:true)
795 795
  * @param string $file Target file name
796 796
  * @return void
@@ -884,7 +884,7 @@  discard block
 block discarded – undo
884 884
 /**
885 885
  * @param string $type query, trigger
886 886
  * @param float $elapsed_time
887
- * @param object $obj
887
+ * @param stdClass $obj
888 888
  */
889 889
 function writeSlowlog($type, $elapsed_time, $obj)
890 890
 {
@@ -1631,6 +1631,9 @@  discard block
 block discarded – undo
1631 1631
 	}
1632 1632
 }
1633 1633
 
1634
+/**
1635
+ * @param string $key
1636
+ */
1634 1637
 function changeValueInUrl($key, $requestKey, $dbKey, $urlName = 'success_return_url')
1635 1638
 {
1636 1639
 	if($requestKey != $dbKey)
Please login to merge, or discard this patch.
Spacing   +140 added lines, -140 removed lines patch added patch discarded remove patch
@@ -6,13 +6,13 @@  discard block
 block discarded – undo
6 6
  *
7 7
  * @author NAVER ([email protected])
8 8
  */
9
-if(!defined('__XE__'))
9
+if (!defined('__XE__'))
10 10
 {
11 11
 	exit();
12 12
 }
13 13
 
14 14
 // define an empty function to avoid errors when iconv function doesn't exist
15
-if(!function_exists('iconv'))
15
+if (!function_exists('iconv'))
16 16
 {
17 17
 	eval('
18 18
 		function iconv($in_charset, $out_charset, $str)
@@ -220,7 +220,7 @@  discard block
 block discarded – undo
220 220
 {
221 221
 	$oDB = DB::getInstance();
222 222
 	$output = $oDB->executeQuery($query_id, $args, $arg_columns);
223
-	if(!is_array($output->data) && count($output->data) > 0)
223
+	if (!is_array($output->data) && count($output->data) > 0)
224 224
 	{
225 225
 		$output->data = array($output->data);
226 226
 	}
@@ -250,7 +250,7 @@  discard block
 block discarded – undo
250 250
 function setUserSequence($seq)
251 251
 {
252 252
 	$arr_seq = array();
253
-	if(isset($_SESSION['seq']))
253
+	if (isset($_SESSION['seq']))
254 254
 	{
255 255
 		$arr_seq = $_SESSION['seq'];
256 256
 	}
@@ -266,11 +266,11 @@  discard block
 block discarded – undo
266 266
  */
267 267
 function checkUserSequence($seq)
268 268
 {
269
-	if(!isset($_SESSION['seq']))
269
+	if (!isset($_SESSION['seq']))
270 270
 	{
271 271
 		return false;
272 272
 	}
273
-	if(!in_array($seq, $_SESSION['seq']))
273
+	if (!in_array($seq, $_SESSION['seq']))
274 274
 	{
275 275
 		return false;
276 276
 	}
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
 	$num_args = func_num_args();
297 297
 	$args_list = func_get_args();
298 298
 
299
-	if($num_args)
299
+	if ($num_args)
300 300
 		$url = Context::getUrl($num_args, $args_list);
301 301
 	else
302 302
 		$url = Context::getRequestUri();
@@ -315,7 +315,7 @@  discard block
 block discarded – undo
315 315
 	$num_args = func_num_args();
316 316
 	$args_list = func_get_args();
317 317
 
318
-	if($num_args)
318
+	if ($num_args)
319 319
 	{
320 320
 		$url = Context::getUrl($num_args, $args_list, NULL, FALSE);
321 321
 	}
@@ -338,7 +338,7 @@  discard block
 block discarded – undo
338 338
 	$num_args = func_num_args();
339 339
 	$args_list = func_get_args();
340 340
 
341
-	if($num_args)
341
+	if ($num_args)
342 342
 	{
343 343
 		$url = Context::getUrl($num_args, $args_list, NULL, TRUE, TRUE);
344 344
 	}
@@ -360,13 +360,13 @@  discard block
 block discarded – undo
360 360
 	$num_args = func_num_args();
361 361
 	$args_list = func_get_args();
362 362
 	$request_uri = Context::getRequestUri();
363
-	if(!$num_args)
363
+	if (!$num_args)
364 364
 	{
365 365
 		return $request_uri;
366 366
 	}
367 367
 
368 368
 	$url = Context::getUrl($num_args, $args_list);
369
-	if(strncasecmp('http', $url, 4) !== 0)
369
+	if (strncasecmp('http', $url, 4) !== 0)
370 370
 	{
371 371
 		preg_match('/^(http|https):\/\/([^\/]+)\//', $request_uri, $match);
372 372
 		return substr($match[0], 0, -1) . $url;
@@ -384,13 +384,13 @@  discard block
 block discarded – undo
384 384
 	$num_args = func_num_args();
385 385
 	$args_list = func_get_args();
386 386
 	$request_uri = Context::getRequestUri();
387
-	if(!$num_args)
387
+	if (!$num_args)
388 388
 	{
389 389
 		return $request_uri;
390 390
 	}
391 391
 
392 392
 	$url = Context::getUrl($num_args, $args_list, NULL, FALSE);
393
-	if(strncasecmp('http', $url, 4) !== 0)
393
+	if (strncasecmp('http', $url, 4) !== 0)
394 394
 	{
395 395
 		preg_match('/^(http|https):\/\/([^\/]+)\//', $request_uri, $match);
396 396
 		$url = Context::getUrl($num_args, $args_list, NULL, FALSE);
@@ -410,7 +410,7 @@  discard block
 block discarded – undo
410 410
 	$num_args = func_num_args();
411 411
 	$args_list = func_get_args();
412 412
 
413
-	if(!$num_args)
413
+	if (!$num_args)
414 414
 	{
415 415
 		return Context::getRequestUri();
416 416
 	}
@@ -432,7 +432,7 @@  discard block
 block discarded – undo
432 432
 	$num_args = func_num_args();
433 433
 	$args_list = func_get_args();
434 434
 
435
-	if(!$num_args)
435
+	if (!$num_args)
436 436
 	{
437 437
 		return Context::getRequestUri();
438 438
 	}
@@ -454,7 +454,7 @@  discard block
 block discarded – undo
454 454
 	$args_list = func_get_args();
455 455
 
456 456
 	$request_uri = Context::getRequestUri();
457
-	if(!$num_args)
457
+	if (!$num_args)
458 458
 	{
459 459
 		return $request_uri;
460 460
 	}
@@ -463,7 +463,7 @@  discard block
 block discarded – undo
463 463
 	$num_args = count($args_list);
464 464
 
465 465
 	$url = Context::getUrl($num_args, $args_list, $domain);
466
-	if(strncasecmp('http', $url, 4) !== 0)
466
+	if (strncasecmp('http', $url, 4) !== 0)
467 467
 	{
468 468
 		preg_match('/^(http|https):\/\/([^\/]+)\//', $request_uri, $match);
469 469
 		return substr($match[0], 0, -1) . $url;
@@ -504,12 +504,12 @@  discard block
 block discarded – undo
504 504
  */
505 505
 function cut_str($string, $cut_size = 0, $tail = '...')
506 506
 {
507
-	if($cut_size < 1 || !$string)
507
+	if ($cut_size < 1 || !$string)
508 508
 	{
509 509
 		return $string;
510 510
 	}
511 511
 
512
-	if($GLOBALS['use_mb_strimwidth'] || function_exists('mb_strimwidth'))
512
+	if ($GLOBALS['use_mb_strimwidth'] || function_exists('mb_strimwidth'))
513 513
 	{
514 514
 		$GLOBALS['use_mb_strimwidth'] = TRUE;
515 515
 		return mb_strimwidth($string, 0, $cut_size + 4, $tail, 'utf-8');
@@ -523,16 +523,16 @@  discard block
 block discarded – undo
523 523
 	$char_count = 0;
524 524
 
525 525
 	$idx = 0;
526
-	while($idx < $string_length && $char_count < $cut_size && $char_width <= $max_width)
526
+	while ($idx < $string_length && $char_count < $cut_size && $char_width <= $max_width)
527 527
 	{
528 528
 		$c = ord(substr($string, $idx, 1));
529 529
 		$char_count++;
530
-		if($c < 128)
530
+		if ($c < 128)
531 531
 		{
532 532
 			$char_width += (int) $chars[$c - 32];
533 533
 			$idx++;
534 534
 		}
535
-		else if(191 < $c && $c < 224)
535
+		else if (191 < $c && $c < 224)
536 536
 		{
537 537
 			$char_width += $chars[4];
538 538
 			$idx += 2;
@@ -545,7 +545,7 @@  discard block
 block discarded – undo
545 545
 	}
546 546
 
547 547
 	$output = substr($string, 0, $idx);
548
-	if(strlen($output) < $string_length)
548
+	if (strlen($output) < $string_length)
549 549
 	{
550 550
 		$output .= $tail;
551 551
 	}
@@ -561,7 +561,7 @@  discard block
 block discarded – undo
561 561
 function zgap()
562 562
 {
563 563
 	$time_zone = $GLOBALS['_time_zone'];
564
-	if($time_zone < 0)
564
+	if ($time_zone < 0)
565 565
 	{
566 566
 		$to = -1;
567 567
 	}
@@ -574,7 +574,7 @@  discard block
 block discarded – undo
574 574
 	$t_min = substr($time_zone, 3, 2) * $to;
575 575
 
576 576
 	$server_time_zone = date("O");
577
-	if($server_time_zone < 0)
577
+	if ($server_time_zone < 0)
578 578
 	{
579 579
 		$so = -1;
580 580
 	}
@@ -601,7 +601,7 @@  discard block
 block discarded – undo
601 601
  */
602 602
 function ztime($str)
603 603
 {
604
-	if(!$str)
604
+	if (!$str)
605 605
 	{
606 606
 		return;
607 607
 	}
@@ -612,7 +612,7 @@  discard block
 block discarded – undo
612 612
 	$year = (int) substr($str, 0, 4);
613 613
 	$month = (int) substr($str, 4, 2);
614 614
 	$day = (int) substr($str, 6, 2);
615
-	if(strlen($str) <= 8)
615
+	if (strlen($str) <= 8)
616 616
 	{
617 617
 		$gap = 0;
618 618
 	}
@@ -636,19 +636,19 @@  discard block
 block discarded – undo
636 636
 	$gap = $_SERVER['REQUEST_TIME'] + zgap() - ztime($date);
637 637
 
638 638
 	$lang_time_gap = Context::getLang('time_gap');
639
-	if($gap < 60)
639
+	if ($gap < 60)
640 640
 	{
641 641
 		$buff = sprintf($lang_time_gap['min'], (int) ($gap / 60) + 1);
642 642
 	}
643
-	elseif($gap < 60 * 60)
643
+	elseif ($gap < 60 * 60)
644 644
 	{
645 645
 		$buff = sprintf($lang_time_gap['mins'], (int) ($gap / 60) + 1);
646 646
 	}
647
-	elseif($gap < 60 * 60 * 2)
647
+	elseif ($gap < 60 * 60 * 2)
648 648
 	{
649 649
 		$buff = sprintf($lang_time_gap['hour'], (int) ($gap / 60 / 60) + 1);
650 650
 	}
651
-	elseif($gap < 60 * 60 * 24)
651
+	elseif ($gap < 60 * 60 * 24)
652 652
 	{
653 653
 		$buff = sprintf($lang_time_gap['hours'], (int) ($gap / 60 / 60) + 1);
654 654
 	}
@@ -685,40 +685,40 @@  discard block
 block discarded – undo
685 685
 function zdate($str, $format = 'Y-m-d H:i:s', $conversion = TRUE)
686 686
 {
687 687
 	// return null if no target time is specified
688
-	if(!$str)
688
+	if (!$str)
689 689
 	{
690 690
 		return;
691 691
 	}
692 692
 	// convert the date format according to the language
693
-	if($conversion == TRUE)
693
+	if ($conversion == TRUE)
694 694
 	{
695
-		switch(Context::getLangType())
695
+		switch (Context::getLangType())
696 696
 		{
697 697
 			case 'en' :
698 698
 			case 'es' :
699
-				if($format == 'Y-m-d')
699
+				if ($format == 'Y-m-d')
700 700
 				{
701 701
 					$format = 'M d, Y';
702 702
 				}
703
-				elseif($format == 'Y-m-d H:i:s')
703
+				elseif ($format == 'Y-m-d H:i:s')
704 704
 				{
705 705
 					$format = 'M d, Y H:i:s';
706 706
 				}
707
-				elseif($format == 'Y-m-d H:i')
707
+				elseif ($format == 'Y-m-d H:i')
708 708
 				{
709 709
 					$format = 'M d, Y H:i';
710 710
 				}
711 711
 				break;
712 712
 			case 'vi' :
713
-				if($format == 'Y-m-d')
713
+				if ($format == 'Y-m-d')
714 714
 				{
715 715
 					$format = 'd-m-Y';
716 716
 				}
717
-				elseif($format == 'Y-m-d H:i:s')
717
+				elseif ($format == 'Y-m-d H:i:s')
718 718
 				{
719 719
 					$format = 'H:i:s d-m-Y';
720 720
 				}
721
-				elseif($format == 'Y-m-d H:i')
721
+				elseif ($format == 'Y-m-d H:i')
722 722
 				{
723 723
 					$format = 'H:i d-m-Y';
724 724
 				}
@@ -727,7 +727,7 @@  discard block
 block discarded – undo
727 727
 	}
728 728
 
729 729
 	// If year value is less than 1970, handle it separately.
730
-	if((int) substr($str, 0, 4) < 1970)
730
+	if ((int) substr($str, 0, 4) < 1970)
731 731
 	{
732 732
 		$hour = (int) substr($str, 8, 2);
733 733
 		$min = (int) substr($str, 10, 2);
@@ -777,7 +777,7 @@  discard block
 block discarded – undo
777 777
 function getEncodeEmailAddress($email)
778 778
 {
779 779
 	$return = '';
780
-	for($i = 0, $c = strlen($email); $i < $c; $i++)
780
+	for ($i = 0, $c = strlen($email); $i < $c; $i++)
781 781
 	{
782 782
 		$return .= '&#' . (rand(0, 1) == 0 ? ord($email[$i]) : 'X' . dechex(ord($email[$i]))) . ';';
783 783
 	}
@@ -800,14 +800,14 @@  discard block
 block discarded – undo
800 800
 	static $debug_file;
801 801
 	static $debug_file_exist;
802 802
 
803
-	if(!(__DEBUG__ & 1))
803
+	if (!(__DEBUG__ & 1))
804 804
 	{
805 805
 		return;
806 806
 	}
807 807
 
808 808
 	static $firephp;
809 809
 	$bt = debug_backtrace();
810
-	if(is_array($bt))
810
+	if (is_array($bt))
811 811
 	{
812 812
 		$bt_debug_print = array_shift($bt);
813 813
 		$bt_called_function = array_shift($bt);
@@ -816,9 +816,9 @@  discard block
 block discarded – undo
816 816
 	$line_num = $bt_debug_print['line'];
817 817
 	$function = $bt_called_function['class'] . $bt_called_function['type'] . $bt_called_function['function'];
818 818
 
819
-	if(__DEBUG_OUTPUT__ == 2 && version_compare(PHP_VERSION, '6.0.0') === -1)
819
+	if (__DEBUG_OUTPUT__ == 2 && version_compare(PHP_VERSION, '6.0.0') === -1)
820 820
 	{
821
-		if(!isset($firephp))
821
+		if (!isset($firephp))
822 822
 		{
823 823
 			$firephp = FirePHP::getInstance(TRUE);
824 824
 		}
@@ -827,16 +827,16 @@  discard block
 block discarded – undo
827 827
 		$label = sprintf('[%s:%d] %s() (Memory usage: current=%s, peak=%s)', $file_name, $line_num, $function, FileHandler::filesize(memory_get_usage()), FileHandler::filesize(memory_get_peak_usage()));
828 828
 
829 829
 		// Check a FirePHP option
830
-		if($display_option === 'TABLE')
830
+		if ($display_option === 'TABLE')
831 831
 		{
832 832
 			$label = $display_option;
833 833
 		}
834
-		if($display_option === 'ERROR')
834
+		if ($display_option === 'ERROR')
835 835
 		{
836 836
 			$type = $display_option;
837 837
 		}
838 838
 		// Check if the IP specified by __DEBUG_PROTECT__ option is same as the access IP.
839
-		if(__DEBUG_PROTECT__ === 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR'])
839
+		if (__DEBUG_PROTECT__ === 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR'])
840 840
 		{
841 841
 			$debug_output = 'The IP address is not allowed. Change the value of __DEBUG_PROTECT_IP__ into your IP address in config/config.user.inc.php or config/config.inc.php';
842 842
 			$label = NULL;
@@ -846,18 +846,18 @@  discard block
 block discarded – undo
846 846
 	}
847 847
 	else
848 848
 	{
849
-		if(__DEBUG_PROTECT__ === 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR'])
849
+		if (__DEBUG_PROTECT__ === 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR'])
850 850
 		{
851 851
 			return;
852 852
 		}
853 853
 
854 854
 		$print = array();
855
-		if($debug_file_exist === NULL) $print[] = '<?php exit() ?>';
855
+		if ($debug_file_exist === NULL) $print[] = '<?php exit() ?>';
856 856
 
857
-		if(!$debug_file) $debug_file =  _XE_PATH_ . 'files/' . $file;
858
-		if(!$debug_file_exist) $debug_file_exist = file_exists($debug_file);
857
+		if (!$debug_file) $debug_file = _XE_PATH_ . 'files/' . $file;
858
+		if (!$debug_file_exist) $debug_file_exist = file_exists($debug_file);
859 859
 
860
-		if($display_option === TRUE || $display_option === 'ERROR')
860
+		if ($display_option === TRUE || $display_option === 'ERROR')
861 861
 		{
862 862
 			$print[] = str_repeat('=', 80);
863 863
 		}
@@ -865,11 +865,11 @@  discard block
 block discarded – undo
865 865
 		$print[] = sprintf("[%s %s:%d] %s() - mem(%s)", date('Y-m-d H:i:s'), $file_name, $line_num, $function, FileHandler::filesize(memory_get_usage()));
866 866
 
867 867
 		$type = gettype($debug_output);
868
-		if(!in_array($type, array('array', 'object', 'resource')))
868
+		if (!in_array($type, array('array', 'object', 'resource')))
869 869
 		{
870
-			if($display_option === 'ERROR') $print[] = 'ERROR : ' . var_export($debug_output, TRUE);
870
+			if ($display_option === 'ERROR') $print[] = 'ERROR : ' . var_export($debug_output, TRUE);
871 871
 			else $print[] = $type . '(' . var_export($debug_output, TRUE) . ')';
872
-			$print[] = PHP_EOL.PHP_EOL;
872
+			$print[] = PHP_EOL . PHP_EOL;
873 873
 		}
874 874
 		else
875 875
 		{
@@ -877,7 +877,7 @@  discard block
 block discarded – undo
877 877
 			$print[] = PHP_EOL;
878 878
 		}
879 879
 
880
-		@file_put_contents($debug_file, implode(PHP_EOL, $print), FILE_APPEND|LOCK_EX);
880
+		@file_put_contents($debug_file, implode(PHP_EOL, $print), FILE_APPEND | LOCK_EX);
881 881
 	}
882 882
 }
883 883
 
@@ -888,7 +888,7 @@  discard block
 block discarded – undo
888 888
  */
889 889
 function writeSlowlog($type, $elapsed_time, $obj)
890 890
 {
891
-	if(!__LOG_SLOW_TRIGGER__ && !__LOG_SLOW_ADDON__ && !__LOG_SLOW_WIDGET__ && !__LOG_SLOW_QUERY__) return;
891
+	if (!__LOG_SLOW_TRIGGER__ && !__LOG_SLOW_ADDON__ && !__LOG_SLOW_WIDGET__ && !__LOG_SLOW_QUERY__) return;
892 892
 
893 893
 	static $log_filename = array(
894 894
 		'query' => 'files/_slowlog_query.php',
@@ -904,21 +904,21 @@  discard block
 block discarded – undo
904 904
 	$buff[] = '<?php exit(); ?>';
905 905
 	$buff[] = date('c');
906 906
 
907
-	if($type == 'trigger' && __LOG_SLOW_TRIGGER__ > 0 && $elapsed_time > __LOG_SLOW_TRIGGER__)
907
+	if ($type == 'trigger' && __LOG_SLOW_TRIGGER__ > 0 && $elapsed_time > __LOG_SLOW_TRIGGER__)
908 908
 	{
909 909
 		$buff[] = "\tCaller : " . $obj->caller;
910 910
 		$buff[] = "\tCalled : " . $obj->called;
911 911
 	}
912
-	else if($type == 'addon' && __LOG_SLOW_ADDON__ > 0 && $elapsed_time > __LOG_SLOW_ADDON__)
912
+	else if ($type == 'addon' && __LOG_SLOW_ADDON__ > 0 && $elapsed_time > __LOG_SLOW_ADDON__)
913 913
 	{
914 914
 		$buff[] = "\tAddon : " . $obj->called;
915 915
 		$buff[] = "\tCalled position : " . $obj->caller;
916 916
 	}
917
-	else if($type == 'widget' && __LOG_SLOW_WIDGET__ > 0 && $elapsed_time > __LOG_SLOW_WIDGET__)
917
+	else if ($type == 'widget' && __LOG_SLOW_WIDGET__ > 0 && $elapsed_time > __LOG_SLOW_WIDGET__)
918 918
 	{
919 919
 		$buff[] = "\tWidget : " . $obj->called;
920 920
 	}
921
-	else if($type == 'query' && __LOG_SLOW_QUERY__ > 0 && $elapsed_time > __LOG_SLOW_QUERY__)
921
+	else if ($type == 'query' && __LOG_SLOW_QUERY__ > 0 && $elapsed_time > __LOG_SLOW_QUERY__)
922 922
 	{
923 923
 
924 924
 		$buff[] = $obj->query;
@@ -931,14 +931,14 @@  discard block
 block discarded – undo
931 931
 		$write_file = false;
932 932
 	}
933 933
 
934
-	if($write_file)
934
+	if ($write_file)
935 935
 	{
936 936
 		$buff[] = sprintf("\t%0.6f sec", $elapsed_time);
937 937
 		$buff[] = PHP_EOL . PHP_EOL;
938 938
 		file_put_contents($log_file, implode(PHP_EOL, $buff), FILE_APPEND);
939 939
 	}
940 940
 
941
-	if($type != 'query')
941
+	if ($type != 'query')
942 942
 	{
943 943
 		$trigger_args = $obj;
944 944
 		$trigger_args->_log_type = $type;
@@ -978,11 +978,11 @@  discard block
 block discarded – undo
978 978
  */
979 979
 function delObjectVars($target_obj, $del_obj)
980 980
 {
981
-	if(!is_object($target_obj))
981
+	if (!is_object($target_obj))
982 982
 	{
983 983
 		return;
984 984
 	}
985
-	if(!is_object($del_obj))
985
+	if (!is_object($del_obj))
986 986
 	{
987 987
 		return;
988 988
 	}
@@ -992,7 +992,7 @@  discard block
 block discarded – undo
992 992
 
993 993
 	$target = array_keys($target_vars);
994 994
 	$del = array_keys($del_vars);
995
-	if(!count($target) || !count($del))
995
+	if (!count($target) || !count($del))
996 996
 	{
997 997
 		return $target_obj;
998 998
 	}
@@ -1000,10 +1000,10 @@  discard block
 block discarded – undo
1000 1000
 	$return_obj = new stdClass();
1001 1001
 
1002 1002
 	$target_count = count($target);
1003
-	for($i = 0; $i < $target_count; $i++)
1003
+	for ($i = 0; $i < $target_count; $i++)
1004 1004
 	{
1005 1005
 		$target_key = $target[$i];
1006
-		if(!in_array($target_key, $del))
1006
+		if (!in_array($target_key, $del))
1007 1007
 		{
1008 1008
 			$return_obj->{$target_key} = $target_obj->{$target_key};
1009 1009
 		}
@@ -1016,10 +1016,10 @@  discard block
 block discarded – undo
1016 1016
 {
1017 1017
 	$del_vars = array('error_return_url', 'success_return_url', 'ruleset', 'xe_validator_id');
1018 1018
 
1019
-	foreach($del_vars as $var)
1019
+	foreach ($del_vars as $var)
1020 1020
 	{
1021
-		if(is_array($vars)) unset($vars[$var]);
1022
-		else if(is_object($vars)) unset($vars->$var);
1021
+		if (is_array($vars)) unset($vars[$var]);
1022
+		else if (is_object($vars)) unset($vars->$var);
1023 1023
 	}
1024 1024
 
1025 1025
 	return $vars;
@@ -1036,12 +1036,12 @@  discard block
 block discarded – undo
1036 1036
  */
1037 1037
 function handleError($errno, $errstr, $file, $line)
1038 1038
 {
1039
-	if(!__DEBUG__)
1039
+	if (!__DEBUG__)
1040 1040
 	{
1041 1041
 		return;
1042 1042
 	}
1043 1043
 	$errors = array(E_USER_ERROR, E_ERROR, E_PARSE);
1044
-	if(!in_array($errno, $errors))
1044
+	if (!in_array($errno, $errors))
1045 1045
 	{
1046 1046
 		return;
1047 1047
 	}
@@ -1062,7 +1062,7 @@  discard block
 block discarded – undo
1062 1062
 {
1063 1063
 	$mod = pow(10, $size);
1064 1064
 	$output = sprintf('%0' . $size . 'd/', $no % $mod);
1065
-	if($no >= $mod)
1065
+	if ($no >= $mod)
1066 1066
 	{
1067 1067
 		$output .= getNumberingPath((int) $no / $mod, $size);
1068 1068
 	}
@@ -1151,13 +1151,13 @@  discard block
 block discarded – undo
1151 1151
 {
1152 1152
 	$content = preg_replace('@<(/?)xmp.*?>@i', '<\1xmp>', $content);
1153 1153
 
1154
-	if(($start_xmp = strrpos($content, '<xmp>')) !== FALSE)
1154
+	if (($start_xmp = strrpos($content, '<xmp>')) !== FALSE)
1155 1155
 	{
1156
-		if(($close_xmp = strrpos($content, '</xmp>')) === FALSE)
1156
+		if (($close_xmp = strrpos($content, '</xmp>')) === FALSE)
1157 1157
 		{
1158 1158
 			$content .= '</xmp>';
1159 1159
 		}
1160
-		else if($close_xmp < $start_xmp)
1160
+		else if ($close_xmp < $start_xmp)
1161 1161
 		{
1162 1162
 			$content .= '</xmp>';
1163 1163
 		}
@@ -1177,25 +1177,25 @@  discard block
 block discarded – undo
1177 1177
 	$tag = strtolower($match[2]);
1178 1178
 
1179 1179
 	// xmp tag ?뺣━
1180
-	if($tag == 'xmp')
1180
+	if ($tag == 'xmp')
1181 1181
 	{
1182 1182
 		return "<{$match[1]}xmp>";
1183 1183
 	}
1184
-	if($match[1])
1184
+	if ($match[1])
1185 1185
 	{
1186 1186
 		return $match[0];
1187 1187
 	}
1188
-	if($match[4])
1188
+	if ($match[4])
1189 1189
 	{
1190 1190
 		$match[4] = ' ' . $match[4];
1191 1191
 	}
1192 1192
 
1193 1193
 	$attrs = array();
1194
-	if(preg_match_all('/([\w:-]+)\s*=(?:\s*(["\']))?(?(2)(.*?)\2|([^ ]+))/s', $match[3], $m))
1194
+	if (preg_match_all('/([\w:-]+)\s*=(?:\s*(["\']))?(?(2)(.*?)\2|([^ ]+))/s', $match[3], $m))
1195 1195
 	{
1196
-		foreach($m[1] as $idx => $name)
1196
+		foreach ($m[1] as $idx => $name)
1197 1197
 		{
1198
-			if(strlen($name) >= 2 && substr_compare($name, 'on', 0, 2) === 0)
1198
+			if (strlen($name) >= 2 && substr_compare($name, 'on', 0, 2) === 0)
1199 1199
 			{
1200 1200
 				continue;
1201 1201
 			}
@@ -1203,7 +1203,7 @@  discard block
 block discarded – undo
1203 1203
 			$val = preg_replace('/&#(?:x([a-fA-F0-9]+)|0*(\d+));/e', 'chr("\\1"?0x00\\1:\\2+0)', $m[3][$idx] . $m[4][$idx]);
1204 1204
 			$val = preg_replace('/^\s+|[\t\n\r]+/', '', $val);
1205 1205
 
1206
-			if(preg_match('/^[a-z]+script:/i', $val))
1206
+			if (preg_match('/^[a-z]+script:/i', $val))
1207 1207
 			{
1208 1208
 				continue;
1209 1209
 			}
@@ -1214,46 +1214,46 @@  discard block
 block discarded – undo
1214 1214
 
1215 1215
 	$filter_arrts = array('style', 'src', 'href');
1216 1216
 
1217
-	if($tag === 'object') array_push($filter_arrts, 'data');
1218
-	if($tag === 'param') array_push($filter_arrts, 'value');
1217
+	if ($tag === 'object') array_push($filter_arrts, 'data');
1218
+	if ($tag === 'param') array_push($filter_arrts, 'value');
1219 1219
 
1220
-	foreach($filter_arrts as $attr)
1220
+	foreach ($filter_arrts as $attr)
1221 1221
 	{
1222
-		if(!isset($attrs[$attr])) continue;
1222
+		if (!isset($attrs[$attr])) continue;
1223 1223
 
1224 1224
 		$attr_value = rawurldecode($attrs[$attr]);
1225 1225
 		$attr_value = htmlspecialchars_decode($attr_value, ENT_COMPAT);
1226 1226
 		$attr_value = preg_replace('/\s+|[\t\n\r]+/', '', $attr_value);
1227
-		if(preg_match('@(\?|&|;)(act=)@i', $attr_value))
1227
+		if (preg_match('@(\?|&|;)(act=)@i', $attr_value))
1228 1228
 		{
1229 1229
 			unset($attrs[$attr]);
1230 1230
 		}
1231 1231
 	}
1232 1232
 
1233
-	if(isset($attrs['style']) && preg_match('@(?:/\*|\*/|\n|:\s*expression\s*\()@i', $attrs['style']))
1233
+	if (isset($attrs['style']) && preg_match('@(?:/\*|\*/|\n|:\s*expression\s*\()@i', $attrs['style']))
1234 1234
 	{
1235 1235
 		unset($attrs['style']);
1236 1236
 	}
1237 1237
 
1238 1238
 	$attr = array();
1239
-	foreach($attrs as $name => $val)
1239
+	foreach ($attrs as $name => $val)
1240 1240
 	{
1241
-		if($tag == 'object' || $tag == 'embed' || $tag == 'a')
1241
+		if ($tag == 'object' || $tag == 'embed' || $tag == 'a')
1242 1242
 		{
1243 1243
 			$attribute = strtolower(trim($name));
1244
-			if($attribute == 'data' || $attribute == 'src' || $attribute == 'href')
1244
+			if ($attribute == 'data' || $attribute == 'src' || $attribute == 'href')
1245 1245
 			{
1246
-				if(stripos($val, 'data:') === 0)
1246
+				if (stripos($val, 'data:') === 0)
1247 1247
 				{
1248 1248
 					continue;
1249 1249
 				}
1250 1250
 			}
1251 1251
 		}
1252 1252
 
1253
-		if($tag == 'img')
1253
+		if ($tag == 'img')
1254 1254
 		{
1255 1255
 			$attribute = strtolower(trim($name));
1256
-			if(stripos($val, 'data:') === 0)
1256
+			if (stripos($val, 'data:') === 0)
1257 1257
 			{
1258 1258
 				continue;
1259 1259
 			}
@@ -1267,7 +1267,7 @@  discard block
 block discarded – undo
1267 1267
 }
1268 1268
 
1269 1269
 // convert hexa value to RGB
1270
-if(!function_exists('hexrgb'))
1270
+if (!function_exists('hexrgb'))
1271 1271
 {
1272 1272
 
1273 1273
 	/**
@@ -1303,9 +1303,9 @@  discard block
 block discarded – undo
1303 1303
 
1304 1304
 	settype($password, "string");
1305 1305
 
1306
-	for($i = 0; $i < strlen($password); $i++)
1306
+	for ($i = 0; $i < strlen($password); $i++)
1307 1307
 	{
1308
-		if($password[$i] == ' ' || $password[$i] == '\t')
1308
+		if ($password[$i] == ' ' || $password[$i] == '\t')
1309 1309
 		{
1310 1310
 			continue;
1311 1311
 		}
@@ -1317,11 +1317,11 @@  discard block
 block discarded – undo
1317 1317
 	$result1 = sprintf("%08lx", $nr & ((1 << 31) - 1));
1318 1318
 	$result2 = sprintf("%08lx", $nr2 & ((1 << 31) - 1));
1319 1319
 
1320
-	if($result1 == '80000000')
1320
+	if ($result1 == '80000000')
1321 1321
 	{
1322 1322
 		$nr += 0x80000000;
1323 1323
 	}
1324
-	if($result2 == '80000000')
1324
+	if ($result2 == '80000000')
1325 1325
 	{
1326 1326
 		$nr2 += 0x80000000;
1327 1327
 	}
@@ -1337,7 +1337,7 @@  discard block
 block discarded – undo
1337 1337
 function getScriptPath()
1338 1338
 {
1339 1339
 	static $url = NULL;
1340
-	if($url == NULL)
1340
+	if ($url == NULL)
1341 1341
 	{
1342 1342
 		$url = str_ireplace('/tools/', '/', preg_replace('/index.php$/i', '', str_replace('\\', '/', $_SERVER['SCRIPT_NAME'])));
1343 1343
 	}
@@ -1367,14 +1367,14 @@  discard block
 block discarded – undo
1367 1367
 	$decodedStr = '';
1368 1368
 	$pos = 0;
1369 1369
 	$len = strlen($source);
1370
-	while($pos < $len)
1370
+	while ($pos < $len)
1371 1371
 	{
1372 1372
 		$charAt = substr($source, $pos, 1);
1373
-		if($charAt == '%')
1373
+		if ($charAt == '%')
1374 1374
 		{
1375 1375
 			$pos++;
1376 1376
 			$charAt = substr($source, $pos, 1);
1377
-			if($charAt == 'u')
1377
+			if ($charAt == 'u')
1378 1378
 			{
1379 1379
 				// we got a unicode character
1380 1380
 				$pos++;
@@ -1408,19 +1408,19 @@  discard block
 block discarded – undo
1408 1408
  */
1409 1409
 function _code2utf($num)
1410 1410
 {
1411
-	if($num < 128)
1411
+	if ($num < 128)
1412 1412
 	{
1413 1413
 		return chr($num);
1414 1414
 	}
1415
-	if($num < 2048)
1415
+	if ($num < 2048)
1416 1416
 	{
1417 1417
 		return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
1418 1418
 	}
1419
-	if($num < 65536)
1419
+	if ($num < 65536)
1420 1420
 	{
1421 1421
 		return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
1422 1422
 	}
1423
-	if($num < 2097152)
1423
+	if ($num < 2097152)
1424 1424
 	{
1425 1425
 		return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
1426 1426
 	}
@@ -1437,7 +1437,7 @@  discard block
 block discarded – undo
1437 1437
  */
1438 1438
 function detectUTF8($string, $return_convert = FALSE, $urldecode = TRUE)
1439 1439
 {
1440
-	if($urldecode)
1440
+	if ($urldecode)
1441 1441
 	{
1442 1442
 		$string = urldecode($string);
1443 1443
 	}
@@ -1445,12 +1445,12 @@  discard block
 block discarded – undo
1445 1445
 	$sample = iconv('utf-8', 'utf-8', $string);
1446 1446
 	$is_utf8 = (md5($sample) == md5($string));
1447 1447
 
1448
-	if(!$urldecode)
1448
+	if (!$urldecode)
1449 1449
 	{
1450 1450
 		$string = urldecode($string);
1451 1451
 	}
1452 1452
 
1453
-	if($return_convert)
1453
+	if ($return_convert)
1454 1454
 	{
1455 1455
 		return ($is_utf8) ? $string : iconv('euc-kr', 'utf-8', $string);
1456 1456
 	}
@@ -1466,7 +1466,7 @@  discard block
 block discarded – undo
1466 1466
  */
1467 1467
 function json_encode2($data)
1468 1468
 {
1469
-	switch(gettype($data))
1469
+	switch (gettype($data))
1470 1470
 	{
1471 1471
 		case 'boolean':
1472 1472
 			return $data ? 'true' : 'false';
@@ -1480,9 +1480,9 @@  discard block
 block discarded – undo
1480 1480
 		case 'array':
1481 1481
 			$rel = FALSE; // relative array?
1482 1482
 			$key = array_keys($data);
1483
-			foreach($key as $v)
1483
+			foreach ($key as $v)
1484 1484
 			{
1485
-				if(!is_int($v))
1485
+				if (!is_int($v))
1486 1486
 				{
1487 1487
 					$rel = TRUE;
1488 1488
 					break;
@@ -1490,7 +1490,7 @@  discard block
 block discarded – undo
1490 1490
 			}
1491 1491
 
1492 1492
 			$arr = array();
1493
-			foreach($data as $k => $v)
1493
+			foreach ($data as $k => $v)
1494 1494
 			{
1495 1495
 				$arr[] = ($rel ? '"' . strtr($k, array('\\' => '\\\\', '"' => '\\"')) . '":' : '') . json_encode2($v);
1496 1496
 			}
@@ -1509,7 +1509,7 @@  discard block
 block discarded – undo
1509 1509
  */
1510 1510
 function isCrawler($agent = NULL)
1511 1511
 {
1512
-	if(!$agent)
1512
+	if (!$agent)
1513 1513
 	{
1514 1514
 		$agent = $_SERVER['HTTP_USER_AGENT'];
1515 1515
 	}
@@ -1519,9 +1519,9 @@  discard block
 block discarded – undo
1519 1519
 		/*'211.245.21.110-211.245.21.119' mixsh is closed */
1520 1520
 	);
1521 1521
 
1522
-	foreach($check_agent as $str)
1522
+	foreach ($check_agent as $str)
1523 1523
 	{
1524
-		if(stristr($agent, $str) != FALSE)
1524
+		if (stristr($agent, $str) != FALSE)
1525 1525
 		{
1526 1526
 			return TRUE;
1527 1527
 		}
@@ -1539,7 +1539,7 @@  discard block
 block discarded – undo
1539 1539
  */
1540 1540
 function stripEmbedTagForAdmin(&$content, $writer_member_srl)
1541 1541
 {
1542
-	if(!Context::get('is_logged'))
1542
+	if (!Context::get('is_logged'))
1543 1543
 	{
1544 1544
 		return;
1545 1545
 	}
@@ -1547,13 +1547,13 @@  discard block
 block discarded – undo
1547 1547
 	$oModuleModel = getModel('module');
1548 1548
 	$logged_info = Context::get('logged_info');
1549 1549
 
1550
-	if($writer_member_srl != $logged_info->member_srl && ($logged_info->is_admin == "Y" || $oModuleModel->isSiteAdmin($logged_info)))
1550
+	if ($writer_member_srl != $logged_info->member_srl && ($logged_info->is_admin == "Y" || $oModuleModel->isSiteAdmin($logged_info)))
1551 1551
 	{
1552
-		if($writer_member_srl)
1552
+		if ($writer_member_srl)
1553 1553
 		{
1554 1554
 			$oMemberModel = getModel('member');
1555 1555
 			$member_info = $oMemberModel->getMemberInfoByMemberSrl($writer_member_srl);
1556
-			if($member_info->is_admin == "Y")
1556
+			if ($member_info->is_admin == "Y")
1557 1557
 			{
1558 1558
 				return;
1559 1559
 			}
@@ -1574,7 +1574,7 @@  discard block
 block discarded – undo
1574 1574
  */
1575 1575
 function requirePear()
1576 1576
 {
1577
-	if(version_compare(PHP_VERSION, "5.3.0") < 0)
1577
+	if (version_compare(PHP_VERSION, "5.3.0") < 0)
1578 1578
 	{
1579 1579
 		set_include_path(_XE_PATH_ . "libs/PEAR" . PATH_SEPARATOR . get_include_path());
1580 1580
 	}
@@ -1586,7 +1586,7 @@  discard block
 block discarded – undo
1586 1586
 
1587 1587
 function checkCSRF()
1588 1588
 {
1589
-	if($_SERVER['REQUEST_METHOD'] != 'POST')
1589
+	if ($_SERVER['REQUEST_METHOD'] != 'POST')
1590 1590
 	{
1591 1591
 		return FALSE;
1592 1592
 	}
@@ -1594,7 +1594,7 @@  discard block
 block discarded – undo
1594 1594
 	$default_url = Context::getDefaultUrl();
1595 1595
 	$referer = $_SERVER["HTTP_REFERER"];
1596 1596
 
1597
-	if(strpos($default_url, 'xn--') !== FALSE && strpos($referer, 'xn--') === FALSE)
1597
+	if (strpos($default_url, 'xn--') !== FALSE && strpos($referer, 'xn--') === FALSE)
1598 1598
 	{
1599 1599
 		require_once(_XE_PATH_ . 'libs/idna_convert/idna_convert.class.php');
1600 1600
 		$IDN = new idna_convert(array('idn_version' => 2008));
@@ -1607,9 +1607,9 @@  discard block
 block discarded – undo
1607 1607
 	$oModuleModel = getModel('module');
1608 1608
 	$siteModuleInfo = $oModuleModel->getDefaultMid();
1609 1609
 
1610
-	if($siteModuleInfo->site_srl == 0)
1610
+	if ($siteModuleInfo->site_srl == 0)
1611 1611
 	{
1612
-		if($default_url['host'] !== $referer['host'])
1612
+		if ($default_url['host'] !== $referer['host'])
1613 1613
 		{
1614 1614
 			return FALSE;
1615 1615
 		}
@@ -1617,7 +1617,7 @@  discard block
 block discarded – undo
1617 1617
 	else
1618 1618
 	{
1619 1619
 		$virtualSiteInfo = $oModuleModel->getSiteInfo($siteModuleInfo->site_srl);
1620
-		if(strtolower($virtualSiteInfo->domain) != strtolower(Context::get('vid')) && !strstr(strtolower($virtualSiteInfo->domain), strtolower($referer['host'])))
1620
+		if (strtolower($virtualSiteInfo->domain) != strtolower(Context::get('vid')) && !strstr(strtolower($virtualSiteInfo->domain), strtolower($referer['host'])))
1621 1621
 		{
1622 1622
 			return FALSE;
1623 1623
 		}
@@ -1633,15 +1633,15 @@  discard block
 block discarded – undo
1633 1633
  */
1634 1634
 function recurciveExposureCheck(&$menu)
1635 1635
 {
1636
-	if(is_array($menu))
1636
+	if (is_array($menu))
1637 1637
 	{
1638
-		foreach($menu AS $key=>$value)
1638
+		foreach ($menu AS $key=>$value)
1639 1639
 		{
1640
-			if(!$value['isShow'])
1640
+			if (!$value['isShow'])
1641 1641
 			{
1642 1642
 				unset($menu[$key]);
1643 1643
 			}
1644
-			if(is_array($value['list']) && count($value['list']) > 0)
1644
+			if (is_array($value['list']) && count($value['list']) > 0)
1645 1645
 			{
1646 1646
 				recurciveExposureCheck($menu[$key]['list']);
1647 1647
 			}
@@ -1651,17 +1651,17 @@  discard block
 block discarded – undo
1651 1651
 
1652 1652
 function changeValueInUrl($key, $requestKey, $dbKey, $urlName = 'success_return_url')
1653 1653
 {
1654
-	if($requestKey != $dbKey)
1654
+	if ($requestKey != $dbKey)
1655 1655
 	{
1656 1656
 		$arrayUrl = parse_url(Context::get('success_return_url'));
1657
-		if($arrayUrl['query'])
1657
+		if ($arrayUrl['query'])
1658 1658
 		{
1659 1659
 			parse_str($arrayUrl['query'], $parsedStr);
1660 1660
 
1661
-			if(isset($parsedStr[$key]))
1661
+			if (isset($parsedStr[$key]))
1662 1662
 			{
1663 1663
 				$parsedStr[$key] = $requestKey;
1664
-				$successReturnUrl .= $arrayUrl['path'].'?'.http_build_query($parsedStr);
1664
+				$successReturnUrl .= $arrayUrl['path'] . '?' . http_build_query($parsedStr);
1665 1665
 				Context::set($urlName, $successReturnUrl);
1666 1666
 			}
1667 1667
 		}
@@ -1701,7 +1701,7 @@  discard block
 block discarded – undo
1701 1701
  */
1702 1702
 function alertScript($msg)
1703 1703
 {
1704
-	if(!$msg)
1704
+	if (!$msg)
1705 1705
 	{
1706 1706
 		return;
1707 1707
 	}
Please login to merge, or discard this patch.
Braces   +63 added lines, -69 removed lines patch added patch discarded remove patch
@@ -296,10 +296,11 @@  discard block
 block discarded – undo
296 296
 	$num_args = func_num_args();
297 297
 	$args_list = func_get_args();
298 298
 
299
-	if($num_args)
300
-		$url = Context::getUrl($num_args, $args_list);
301
-	else
302
-		$url = Context::getRequestUri();
299
+	if($num_args) {
300
+			$url = Context::getUrl($num_args, $args_list);
301
+	} else {
302
+			$url = Context::getRequestUri();
303
+	}
303 304
 
304 305
 	return preg_replace('@\berror_return_url=[^&]*|\w+=(?:&|$)@', '', $url);
305 306
 }
@@ -318,8 +319,7 @@  discard block
 block discarded – undo
318 319
 	if($num_args)
319 320
 	{
320 321
 		$url = Context::getUrl($num_args, $args_list, NULL, FALSE);
321
-	}
322
-	else
322
+	} else
323 323
 	{
324 324
 		$url = Context::getRequestUri();
325 325
 	}
@@ -341,8 +341,7 @@  discard block
 block discarded – undo
341 341
 	if($num_args)
342 342
 	{
343 343
 		$url = Context::getUrl($num_args, $args_list, NULL, TRUE, TRUE);
344
-	}
345
-	else
344
+	} else
346 345
 	{
347 346
 		$url = Context::getRequestUri();
348 347
 	}
@@ -531,13 +530,11 @@  discard block
 block discarded – undo
531 530
 		{
532 531
 			$char_width += (int) $chars[$c - 32];
533 532
 			$idx++;
534
-		}
535
-		else if(191 < $c && $c < 224)
533
+		} else if(191 < $c && $c < 224)
536 534
 		{
537 535
 			$char_width += $chars[4];
538 536
 			$idx += 2;
539
-		}
540
-		else
537
+		} else
541 538
 		{
542 539
 			$char_width += $chars[0];
543 540
 			$idx += 3;
@@ -564,8 +561,7 @@  discard block
 block discarded – undo
564 561
 	if($time_zone < 0)
565 562
 	{
566 563
 		$to = -1;
567
-	}
568
-	else
564
+	} else
569 565
 	{
570 566
 		$to = 1;
571 567
 	}
@@ -577,8 +573,7 @@  discard block
 block discarded – undo
577 573
 	if($server_time_zone < 0)
578 574
 	{
579 575
 		$so = -1;
580
-	}
581
-	else
576
+	} else
582 577
 	{
583 578
 		$so = 1;
584 579
 	}
@@ -615,8 +610,7 @@  discard block
 block discarded – undo
615 610
 	if(strlen($str) <= 8)
616 611
 	{
617 612
 		$gap = 0;
618
-	}
619
-	else
613
+	} else
620 614
 	{
621 615
 		$gap = zgap();
622 616
 	}
@@ -639,20 +633,16 @@  discard block
 block discarded – undo
639 633
 	if($gap < 60)
640 634
 	{
641 635
 		$buff = sprintf($lang_time_gap['min'], (int) ($gap / 60) + 1);
642
-	}
643
-	elseif($gap < 60 * 60)
636
+	} elseif($gap < 60 * 60)
644 637
 	{
645 638
 		$buff = sprintf($lang_time_gap['mins'], (int) ($gap / 60) + 1);
646
-	}
647
-	elseif($gap < 60 * 60 * 2)
639
+	} elseif($gap < 60 * 60 * 2)
648 640
 	{
649 641
 		$buff = sprintf($lang_time_gap['hour'], (int) ($gap / 60 / 60) + 1);
650
-	}
651
-	elseif($gap < 60 * 60 * 24)
642
+	} elseif($gap < 60 * 60 * 24)
652 643
 	{
653 644
 		$buff = sprintf($lang_time_gap['hours'], (int) ($gap / 60 / 60) + 1);
654
-	}
655
-	else
645
+	} else
656 646
 	{
657 647
 		$buff = zdate($date, $format);
658 648
 	}
@@ -699,12 +689,10 @@  discard block
 block discarded – undo
699 689
 				if($format == 'Y-m-d')
700 690
 				{
701 691
 					$format = 'M d, Y';
702
-				}
703
-				elseif($format == 'Y-m-d H:i:s')
692
+				} elseif($format == 'Y-m-d H:i:s')
704 693
 				{
705 694
 					$format = 'M d, Y H:i:s';
706
-				}
707
-				elseif($format == 'Y-m-d H:i')
695
+				} elseif($format == 'Y-m-d H:i')
708 696
 				{
709 697
 					$format = 'M d, Y H:i';
710 698
 				}
@@ -713,12 +701,10 @@  discard block
 block discarded – undo
713 701
 				if($format == 'Y-m-d')
714 702
 				{
715 703
 					$format = 'd-m-Y';
716
-				}
717
-				elseif($format == 'Y-m-d H:i:s')
704
+				} elseif($format == 'Y-m-d H:i:s')
718 705
 				{
719 706
 					$format = 'H:i:s d-m-Y';
720
-				}
721
-				elseif($format == 'Y-m-d H:i')
707
+				} elseif($format == 'Y-m-d H:i')
722 708
 				{
723 709
 					$format = 'H:i d-m-Y';
724 710
 				}
@@ -754,8 +740,7 @@  discard block
 block discarded – undo
754 740
 		);
755 741
 
756 742
 		$string = strtr($format, $trans);
757
-	}
758
-	else
743
+	} else
759 744
 	{
760 745
 		// if year value is greater than 1970, get unixtime by using ztime() for date() function's argument. 
761 746
 		$string = date($format, ztime($str));
@@ -843,8 +828,7 @@  discard block
 block discarded – undo
843 828
 		}
844 829
 
845 830
 		$firephp->fb($debug_output, $label, $type);
846
-	}
847
-	else
831
+	} else
848 832
 	{
849 833
 		if(__DEBUG_PROTECT__ === 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR'])
850 834
 		{
@@ -852,10 +836,16 @@  discard block
 block discarded – undo
852 836
 		}
853 837
 
854 838
 		$print = array();
855
-		if($debug_file_exist === NULL) $print[] = '<?php exit() ?>';
839
+		if($debug_file_exist === NULL) {
840
+			$print[] = '<?php exit() ?>';
841
+		}
856 842
 
857
-		if(!$debug_file) $debug_file =  _XE_PATH_ . 'files/' . $file;
858
-		if(!$debug_file_exist) $debug_file_exist = file_exists($debug_file);
843
+		if(!$debug_file) {
844
+			$debug_file =  _XE_PATH_ . 'files/' . $file;
845
+		}
846
+		if(!$debug_file_exist) {
847
+			$debug_file_exist = file_exists($debug_file);
848
+		}
859 849
 
860 850
 		if($display_option === TRUE || $display_option === 'ERROR')
861 851
 		{
@@ -867,11 +857,13 @@  discard block
 block discarded – undo
867 857
 		$type = gettype($debug_output);
868 858
 		if(!in_array($type, array('array', 'object', 'resource')))
869 859
 		{
870
-			if($display_option === 'ERROR') $print[] = 'ERROR : ' . var_export($debug_output, TRUE);
871
-			else $print[] = $type . '(' . var_export($debug_output, TRUE) . ')';
860
+			if($display_option === 'ERROR') {
861
+				$print[] = 'ERROR : ' . var_export($debug_output, TRUE);
862
+			} else {
863
+				$print[] = $type . '(' . var_export($debug_output, TRUE) . ')';
864
+			}
872 865
 			$print[] = PHP_EOL.PHP_EOL;
873
-		}
874
-		else
866
+		} else
875 867
 		{
876 868
 			$print[] = print_r($debug_output, TRUE);
877 869
 			$print[] = PHP_EOL;
@@ -888,7 +880,9 @@  discard block
 block discarded – undo
888 880
  */
889 881
 function writeSlowlog($type, $elapsed_time, $obj)
890 882
 {
891
-	if(!__LOG_SLOW_TRIGGER__ && !__LOG_SLOW_ADDON__ && !__LOG_SLOW_WIDGET__ && !__LOG_SLOW_QUERY__) return;
883
+	if(!__LOG_SLOW_TRIGGER__ && !__LOG_SLOW_ADDON__ && !__LOG_SLOW_WIDGET__ && !__LOG_SLOW_QUERY__) {
884
+		return;
885
+	}
892 886
 
893 887
 	static $log_filename = array(
894 888
 		'query' => 'files/_slowlog_query.php',
@@ -908,25 +902,21 @@  discard block
 block discarded – undo
908 902
 	{
909 903
 		$buff[] = "\tCaller : " . $obj->caller;
910 904
 		$buff[] = "\tCalled : " . $obj->called;
911
-	}
912
-	else if($type == 'addon' && __LOG_SLOW_ADDON__ > 0 && $elapsed_time > __LOG_SLOW_ADDON__)
905
+	} else if($type == 'addon' && __LOG_SLOW_ADDON__ > 0 && $elapsed_time > __LOG_SLOW_ADDON__)
913 906
 	{
914 907
 		$buff[] = "\tAddon : " . $obj->called;
915 908
 		$buff[] = "\tCalled position : " . $obj->caller;
916
-	}
917
-	else if($type == 'widget' && __LOG_SLOW_WIDGET__ > 0 && $elapsed_time > __LOG_SLOW_WIDGET__)
909
+	} else if($type == 'widget' && __LOG_SLOW_WIDGET__ > 0 && $elapsed_time > __LOG_SLOW_WIDGET__)
918 910
 	{
919 911
 		$buff[] = "\tWidget : " . $obj->called;
920
-	}
921
-	else if($type == 'query' && __LOG_SLOW_QUERY__ > 0 && $elapsed_time > __LOG_SLOW_QUERY__)
912
+	} else if($type == 'query' && __LOG_SLOW_QUERY__ > 0 && $elapsed_time > __LOG_SLOW_QUERY__)
922 913
 	{
923 914
 
924 915
 		$buff[] = $obj->query;
925 916
 		$buff[] = "\tQuery ID   : " . $obj->query_id;
926 917
 		$buff[] = "\tCaller     : " . $obj->caller;
927 918
 		$buff[] = "\tConnection : " . $obj->connection;
928
-	}
929
-	else
919
+	} else
930 920
 	{
931 921
 		$write_file = false;
932 922
 	}
@@ -1018,8 +1008,11 @@  discard block
 block discarded – undo
1018 1008
 
1019 1009
 	foreach($del_vars as $var)
1020 1010
 	{
1021
-		if(is_array($vars)) unset($vars[$var]);
1022
-		else if(is_object($vars)) unset($vars->$var);
1011
+		if(is_array($vars)) {
1012
+			unset($vars[$var]);
1013
+		} else if(is_object($vars)) {
1014
+			unset($vars->$var);
1015
+		}
1023 1016
 	}
1024 1017
 
1025 1018
 	return $vars;
@@ -1156,8 +1149,7 @@  discard block
 block discarded – undo
1156 1149
 		if(($close_xmp = strrpos($content, '</xmp>')) === FALSE)
1157 1150
 		{
1158 1151
 			$content .= '</xmp>';
1159
-		}
1160
-		else if($close_xmp < $start_xmp)
1152
+		} else if($close_xmp < $start_xmp)
1161 1153
 		{
1162 1154
 			$content .= '</xmp>';
1163 1155
 		}
@@ -1214,12 +1206,18 @@  discard block
 block discarded – undo
1214 1206
 
1215 1207
 	$filter_arrts = array('style', 'src', 'href');
1216 1208
 
1217
-	if($tag === 'object') array_push($filter_arrts, 'data');
1218
-	if($tag === 'param') array_push($filter_arrts, 'value');
1209
+	if($tag === 'object') {
1210
+		array_push($filter_arrts, 'data');
1211
+	}
1212
+	if($tag === 'param') {
1213
+		array_push($filter_arrts, 'value');
1214
+	}
1219 1215
 
1220 1216
 	foreach($filter_arrts as $attr)
1221 1217
 	{
1222
-		if(!isset($attrs[$attr])) continue;
1218
+		if(!isset($attrs[$attr])) {
1219
+			continue;
1220
+		}
1223 1221
 
1224 1222
 		$attr_value = rawurldecode($attrs[$attr]);
1225 1223
 		$attr_value = htmlspecialchars_decode($attr_value, ENT_COMPAT);
@@ -1382,16 +1380,14 @@  discard block
 block discarded – undo
1382 1380
 				$unicode = hexdec($unicodeHexVal);
1383 1381
 				$decodedStr .= _code2utf($unicode);
1384 1382
 				$pos += 4;
1385
-			}
1386
-			else
1383
+			} else
1387 1384
 			{
1388 1385
 				// we have an escaped ascii character
1389 1386
 				$hexVal = substr($source, $pos, 2);
1390 1387
 				$decodedStr .= chr(hexdec($hexVal));
1391 1388
 				$pos += 2;
1392 1389
 			}
1393
-		}
1394
-		else
1390
+		} else
1395 1391
 		{
1396 1392
 			$decodedStr .= $charAt;
1397 1393
 			$pos++;
@@ -1577,8 +1573,7 @@  discard block
 block discarded – undo
1577 1573
 	if(version_compare(PHP_VERSION, "5.3.0") < 0)
1578 1574
 	{
1579 1575
 		set_include_path(_XE_PATH_ . "libs/PEAR" . PATH_SEPARATOR . get_include_path());
1580
-	}
1581
-	else
1576
+	} else
1582 1577
 	{
1583 1578
 		set_include_path(_XE_PATH_ . "libs/PEAR.1.9.5" . PATH_SEPARATOR . get_include_path());
1584 1579
 	}
@@ -1613,8 +1608,7 @@  discard block
 block discarded – undo
1613 1608
 		{
1614 1609
 			return FALSE;
1615 1610
 		}
1616
-	}
1617
-	else
1611
+	} else
1618 1612
 	{
1619 1613
 		$virtualSiteInfo = $oModuleModel->getSiteInfo($siteModuleInfo->site_srl);
1620 1614
 		if(strtolower($virtualSiteInfo->domain) != strtolower(Context::get('vid')) && !strstr(strtolower($virtualSiteInfo->domain), strtolower($referer['host'])))
Please login to merge, or discard this patch.
libs/FirePHPCore/fb.php 3 patches
Doc Comments   +1 added lines, -3 removed lines patch added patch discarded remove patch
@@ -50,7 +50,6 @@  discard block
 block discarded – undo
50 50
  * "Server" request tab.
51 51
  * 
52 52
  * @see http://www.firephp.org/Wiki/Reference/Fb
53
- * @param mixed $Object
54 53
  * @return true
55 54
  * @throws Exception
56 55
  */
@@ -130,7 +129,6 @@  discard block
 block discarded – undo
130 129
    * Log object to firebug
131 130
    * 
132 131
    * @see http://www.firephp.org/Wiki/Reference/Fb
133
-   * @param mixed $Object
134 132
    * @return true
135 133
    * @throws Exception
136 134
    */
@@ -150,7 +148,7 @@  discard block
 block discarded – undo
150 148
    *
151 149
    * @param string $Name
152 150
    * @param array $Options OPTIONAL Instructions on how to log the group
153
-   * @return true
151
+   * @return boolean
154 152
    */
155 153
   public static function group($Name, $Options=null) {
156 154
     $instance = FirePHP::getInstance(true);
Please login to merge, or discard this patch.
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -73,8 +73,8 @@  discard block
 block discarded – undo
73 73
    * @return void
74 74
    */
75 75
   public static function setEnabled($Enabled) {
76
-    $instance = FirePHP::getInstance(true);
77
-    $instance->setEnabled($Enabled);
76
+	$instance = FirePHP::getInstance(true);
77
+	$instance->setEnabled($Enabled);
78 78
   }
79 79
   
80 80
   /**
@@ -84,8 +84,8 @@  discard block
 block discarded – undo
84 84
    * @return boolean TRUE if enabled
85 85
    */
86 86
   public static function getEnabled() {
87
-    $instance = FirePHP::getInstance(true);
88
-    return $instance->getEnabled();
87
+	$instance = FirePHP::getInstance(true);
88
+	return $instance->getEnabled();
89 89
   }  
90 90
   
91 91
   /**
@@ -99,8 +99,8 @@  discard block
 block discarded – undo
99 99
    * @return void
100 100
    */
101 101
   public static function setObjectFilter($Class, $Filter) {
102
-    $instance = FirePHP::getInstance(true);
103
-    $instance->setObjectFilter($Class, $Filter);
102
+	$instance = FirePHP::getInstance(true);
103
+	$instance->setObjectFilter($Class, $Filter);
104 104
   }
105 105
   
106 106
   /**
@@ -111,8 +111,8 @@  discard block
 block discarded – undo
111 111
    * @return void
112 112
    */
113 113
   public static function setOptions($Options) {
114
-    $instance = FirePHP::getInstance(true);
115
-    $instance->setOptions($Options);
114
+	$instance = FirePHP::getInstance(true);
115
+	$instance->setOptions($Options);
116 116
   }
117 117
 
118 118
   /**
@@ -122,8 +122,8 @@  discard block
 block discarded – undo
122 122
    * @return array The options
123 123
    */
124 124
   public static function getOptions() {
125
-    $instance = FirePHP::getInstance(true);
126
-    return $instance->getOptions();
125
+	$instance = FirePHP::getInstance(true);
126
+	return $instance->getOptions();
127 127
   }
128 128
 
129 129
   /**
@@ -136,9 +136,9 @@  discard block
 block discarded – undo
136 136
    */
137 137
   public static function send()
138 138
   {
139
-    $instance = FirePHP::getInstance(true);
140
-    $args = func_get_args();
141
-    return call_user_func_array(array($instance,'fb'),$args);
139
+	$instance = FirePHP::getInstance(true);
140
+	$args = func_get_args();
141
+	return call_user_func_array(array($instance,'fb'),$args);
142 142
   }
143 143
 
144 144
   /**
@@ -153,8 +153,8 @@  discard block
 block discarded – undo
153 153
    * @return true
154 154
    */
155 155
   public static function group($Name, $Options=null) {
156
-    $instance = FirePHP::getInstance(true);
157
-    return $instance->group($Name, $Options);
156
+	$instance = FirePHP::getInstance(true);
157
+	return $instance->group($Name, $Options);
158 158
   }
159 159
 
160 160
   /**
@@ -164,7 +164,7 @@  discard block
 block discarded – undo
164 164
    * @throws Exception
165 165
    */
166 166
   public static function groupEnd() {
167
-    return self::send(null, null, FirePHP::GROUP_END);
167
+	return self::send(null, null, FirePHP::GROUP_END);
168 168
   }
169 169
 
170 170
   /**
@@ -177,7 +177,7 @@  discard block
 block discarded – undo
177 177
    * @throws Exception
178 178
    */
179 179
   public static function log($Object, $Label=null) {
180
-    return self::send($Object, $Label, FirePHP::LOG);
180
+	return self::send($Object, $Label, FirePHP::LOG);
181 181
   } 
182 182
 
183 183
   /**
@@ -190,7 +190,7 @@  discard block
 block discarded – undo
190 190
    * @throws Exception
191 191
    */
192 192
   public static function info($Object, $Label=null) {
193
-    return self::send($Object, $Label, FirePHP::INFO);
193
+	return self::send($Object, $Label, FirePHP::INFO);
194 194
   } 
195 195
 
196 196
   /**
@@ -203,7 +203,7 @@  discard block
 block discarded – undo
203 203
    * @throws Exception
204 204
    */
205 205
   public static function warn($Object, $Label=null) {
206
-    return self::send($Object, $Label, FirePHP::WARN);
206
+	return self::send($Object, $Label, FirePHP::WARN);
207 207
   } 
208 208
 
209 209
   /**
@@ -216,7 +216,7 @@  discard block
 block discarded – undo
216 216
    * @throws Exception
217 217
    */
218 218
   public static function error($Object, $Label=null) {
219
-    return self::send($Object, $Label, FirePHP::ERROR);
219
+	return self::send($Object, $Label, FirePHP::ERROR);
220 220
   } 
221 221
 
222 222
   /**
@@ -229,7 +229,7 @@  discard block
 block discarded – undo
229 229
    * @throws Exception
230 230
    */
231 231
   public static function dump($Key, $Variable) {
232
-    return self::send($Variable, $Key, FirePHP::DUMP);
232
+	return self::send($Variable, $Key, FirePHP::DUMP);
233 233
   } 
234 234
 
235 235
   /**
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
    * @throws Exception
242 242
    */
243 243
   public static function trace($Label) {
244
-    return self::send($Label, FirePHP::TRACE);
244
+	return self::send($Label, FirePHP::TRACE);
245 245
   } 
246 246
 
247 247
   /**
@@ -254,7 +254,7 @@  discard block
 block discarded – undo
254 254
    * @throws Exception
255 255
    */
256 256
   public static function table($Label, $Table) {
257
-    return self::send($Table, $Label, FirePHP::TABLE);
257
+	return self::send($Table, $Label, FirePHP::TABLE);
258 258
   } 
259 259
 
260 260
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -42,7 +42,7 @@  discard block
 block discarded – undo
42 42
  * @package     FirePHP
43 43
  */
44 44
 
45
-require_once dirname(__FILE__).'/FirePHP.class.php';
45
+require_once dirname(__FILE__) . '/FirePHP.class.php';
46 46
 
47 47
 /**
48 48
  * Sends the given data to the FirePHP Firefox Extension.
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
   $instance = FirePHP::getInstance(true);
60 60
   
61 61
   $args = func_get_args();
62
-  return call_user_func_array(array($instance,'fb'),$args);
62
+  return call_user_func_array(array($instance, 'fb'), $args);
63 63
 }
64 64
 
65 65
 
@@ -138,7 +138,7 @@  discard block
 block discarded – undo
138 138
   {
139 139
     $instance = FirePHP::getInstance(true);
140 140
     $args = func_get_args();
141
-    return call_user_func_array(array($instance,'fb'),$args);
141
+    return call_user_func_array(array($instance, 'fb'), $args);
142 142
   }
143 143
 
144 144
   /**
@@ -152,7 +152,7 @@  discard block
 block discarded – undo
152 152
    * @param array $Options OPTIONAL Instructions on how to log the group
153 153
    * @return true
154 154
    */
155
-  public static function group($Name, $Options=null) {
155
+  public static function group($Name, $Options = null) {
156 156
     $instance = FirePHP::getInstance(true);
157 157
     return $instance->group($Name, $Options);
158 158
   }
@@ -176,7 +176,7 @@  discard block
 block discarded – undo
176 176
    * @return true
177 177
    * @throws Exception
178 178
    */
179
-  public static function log($Object, $Label=null) {
179
+  public static function log($Object, $Label = null) {
180 180
     return self::send($Object, $Label, FirePHP::LOG);
181 181
   } 
182 182
 
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
    * @return true
190 190
    * @throws Exception
191 191
    */
192
-  public static function info($Object, $Label=null) {
192
+  public static function info($Object, $Label = null) {
193 193
     return self::send($Object, $Label, FirePHP::INFO);
194 194
   } 
195 195
 
@@ -202,7 +202,7 @@  discard block
 block discarded – undo
202 202
    * @return true
203 203
    * @throws Exception
204 204
    */
205
-  public static function warn($Object, $Label=null) {
205
+  public static function warn($Object, $Label = null) {
206 206
     return self::send($Object, $Label, FirePHP::WARN);
207 207
   } 
208 208
 
@@ -215,7 +215,7 @@  discard block
 block discarded – undo
215 215
    * @return true
216 216
    * @throws Exception
217 217
    */
218
-  public static function error($Object, $Label=null) {
218
+  public static function error($Object, $Label = null) {
219 219
     return self::send($Object, $Label, FirePHP::ERROR);
220 220
   } 
221 221
 
Please login to merge, or discard this patch.
libs/FirePHPCore/FirePHP.class.php 4 patches
Doc Comments   +13 added lines, -14 removed lines patch added patch discarded remove patch
@@ -226,7 +226,7 @@  discard block
 block discarded – undo
226 226
   /**
227 227
    * When the object gets serialized only include specific object members.
228 228
    * 
229
-   * @return array
229
+   * @return string[]
230 230
    */  
231 231
   public function __sleep() {
232 232
     return array('options','objectFilters','enabled');
@@ -316,7 +316,7 @@  discard block
 block discarded – undo
316 316
    * 
317 317
    * Will throw exceptions for each php error.
318 318
    * 
319
-   * @return mixed Returns a string containing the previously defined error handler (if any)
319
+   * @return null|callable Returns a string containing the previously defined error handler (if any)
320 320
    */
321 321
   public function registerErrorHandler($throwErrorExceptions=true)
322 322
   {
@@ -362,7 +362,7 @@  discard block
 block discarded – undo
362 362
   /**
363 363
    * Register FirePHP as your exception handler
364 364
    * 
365
-   * @return mixed Returns the name of the previously defined exception handler,
365
+   * @return callable Returns the name of the previously defined exception handler,
366 366
    *               or NULL on error.
367 367
    *               If no previous handler was defined, NULL is also returned.
368 368
    */
@@ -467,7 +467,7 @@  discard block
 block discarded – undo
467 467
    *
468 468
    * @param string $Name
469 469
    * @param array $Options OPTIONAL Instructions on how to log the group
470
-   * @return true
470
+   * @return boolean
471 471
    * @throws Exception
472 472
    */
473 473
   public function group($Name, $Options=null) {
@@ -491,7 +491,7 @@  discard block
 block discarded – undo
491 491
   /**
492 492
    * Ends a group you have started before
493 493
    *
494
-   * @return true
494
+   * @return boolean
495 495
    * @throws Exception
496 496
    */
497 497
   public function groupEnd() {
@@ -504,7 +504,7 @@  discard block
 block discarded – undo
504 504
    * @see FirePHP::LOG
505 505
    * @param mixes $Object
506 506
    * @param string $Label
507
-   * @return true
507
+   * @return boolean
508 508
    * @throws Exception
509 509
    */
510 510
   public function log($Object, $Label=null) {
@@ -517,7 +517,7 @@  discard block
 block discarded – undo
517 517
    * @see FirePHP::INFO
518 518
    * @param mixes $Object
519 519
    * @param string $Label
520
-   * @return true
520
+   * @return boolean
521 521
    * @throws Exception
522 522
    */
523 523
   public function info($Object, $Label=null) {
@@ -530,7 +530,7 @@  discard block
 block discarded – undo
530 530
    * @see FirePHP::WARN
531 531
    * @param mixes $Object
532 532
    * @param string $Label
533
-   * @return true
533
+   * @return boolean
534 534
    * @throws Exception
535 535
    */
536 536
   public function warn($Object, $Label=null) {
@@ -543,7 +543,7 @@  discard block
 block discarded – undo
543 543
    * @see FirePHP::ERROR
544 544
    * @param mixes $Object
545 545
    * @param string $Label
546
-   * @return true
546
+   * @return boolean
547 547
    * @throws Exception
548 548
    */
549 549
   public function error($Object, $Label=null) {
@@ -556,7 +556,7 @@  discard block
 block discarded – undo
556 556
    * @see FirePHP::DUMP
557 557
    * @param string $Key
558 558
    * @param mixed $Variable
559
-   * @return true
559
+   * @return boolean
560 560
    * @throws Exception
561 561
    */
562 562
   public function dump($Key, $Variable) {
@@ -568,7 +568,7 @@  discard block
 block discarded – undo
568 568
    *
569 569
    * @see FirePHP::TRACE
570 570
    * @param string $Label
571
-   * @return true
571
+   * @return boolean
572 572
    * @throws Exception
573 573
    */
574 574
   public function trace($Label) {
@@ -581,7 +581,7 @@  discard block
 block discarded – undo
581 581
    * @see FirePHP::TABLE
582 582
    * @param string $Label
583 583
    * @param string $Table
584
-   * @return true
584
+   * @return boolean
585 585
    * @throws Exception
586 586
    */
587 587
   public function table($Label, $Table) {
@@ -607,7 +607,7 @@  discard block
 block discarded – undo
607 607
    * 
608 608
    * @see http://www.firephp.org/Wiki/Reference/Fb
609 609
    * @param mixed $Object The variable to be logged
610
-   * @return true Return TRUE if message was added to headers, FALSE otherwise
610
+   * @return boolean Return TRUE if message was added to headers, FALSE otherwise
611 611
    * @throws Exception
612 612
    */
613 613
   public function fb($Object) {
@@ -1005,7 +1005,6 @@  discard block
 block discarded – undo
1005 1005
    * protected and private visibility
1006 1006
    * 
1007 1007
    * @param Object $Object The object to be encoded
1008
-   * @param int $Depth The current traversal depth
1009 1008
    * @return array All members of the object
1010 1009
    */
1011 1010
   protected function encodeObject($Object, $ObjectDepth = 1, $ArrayDepth = 1)
Please login to merge, or discard this patch.
Indentation   +677 added lines, -677 removed lines patch added patch discarded remove patch
@@ -192,9 +192,9 @@  discard block
 block discarded – undo
192 192
    * @var array
193 193
    */
194 194
   protected $options = array('maxObjectDepth' => 10,
195
-                             'maxArrayDepth' => 20,
196
-                             'useNativeJsonEncode' => true,
197
-                             'includeLineNumbers' => true);
195
+							 'maxArrayDepth' => 20,
196
+							 'useNativeJsonEncode' => true,
197
+							 'includeLineNumbers' => true);
198 198
 
199 199
   /**
200 200
    * Filters used to exclude object members when encoding
@@ -229,7 +229,7 @@  discard block
 block discarded – undo
229 229
    * @return array
230 230
    */  
231 231
   public function __sleep() {
232
-    return array('options','objectFilters','enabled');
232
+	return array('options','objectFilters','enabled');
233 233
   }
234 234
     
235 235
   /**
@@ -239,10 +239,10 @@  discard block
 block discarded – undo
239 239
    * @return FirePHP
240 240
    */
241 241
   public static function getInstance($AutoCreate=false) {
242
-    if($AutoCreate===true && !self::$instance) {
243
-      self::init();
244
-    }
245
-    return self::$instance;
242
+	if($AutoCreate===true && !self::$instance) {
243
+	  self::init();
244
+	}
245
+	return self::$instance;
246 246
   }
247 247
    
248 248
   /**
@@ -251,7 +251,7 @@  discard block
 block discarded – undo
251 251
    * @return FirePHP
252 252
    */
253 253
   public static function init() {
254
-    return self::$instance = new self();
254
+	return self::$instance = new self();
255 255
   }
256 256
   
257 257
   /**
@@ -261,7 +261,7 @@  discard block
 block discarded – undo
261 261
    * @return void
262 262
    */
263 263
   public function setEnabled($Enabled) {
264
-    $this->enabled = $Enabled;
264
+	$this->enabled = $Enabled;
265 265
   }
266 266
   
267 267
   /**
@@ -270,7 +270,7 @@  discard block
 block discarded – undo
270 270
    * @return boolean TRUE if enabled
271 271
    */
272 272
   public function getEnabled() {
273
-    return $this->enabled;
273
+	return $this->enabled;
274 274
   }
275 275
   
276 276
   /**
@@ -283,7 +283,7 @@  discard block
 block discarded – undo
283 283
    * @return void
284 284
    */
285 285
   public function setObjectFilter($Class, $Filter) {
286
-    $this->objectFilters[strtolower($Class)] = $Filter;
286
+	$this->objectFilters[strtolower($Class)] = $Filter;
287 287
   }
288 288
   
289 289
   /**
@@ -299,7 +299,7 @@  discard block
 block discarded – undo
299 299
    * @return void
300 300
    */
301 301
   public function setOptions($Options) {
302
-    $this->options = array_merge($this->options,$Options);
302
+	$this->options = array_merge($this->options,$Options);
303 303
   }
304 304
   
305 305
   /**
@@ -308,7 +308,7 @@  discard block
 block discarded – undo
308 308
    * @return array The currently set options
309 309
    */
310 310
   public function getOptions() {
311
-    return $this->options;
311
+	return $this->options;
312 312
   }
313 313
   
314 314
   /**
@@ -320,14 +320,14 @@  discard block
 block discarded – undo
320 320
    */
321 321
   public function registerErrorHandler($throwErrorExceptions=true)
322 322
   {
323
-    //NOTE: The following errors will not be caught by this error handler:
324
-    //      E_ERROR, E_PARSE, E_CORE_ERROR,
325
-    //      E_CORE_WARNING, E_COMPILE_ERROR,
326
-    //      E_COMPILE_WARNING, E_STRICT
323
+	//NOTE: The following errors will not be caught by this error handler:
324
+	//      E_ERROR, E_PARSE, E_CORE_ERROR,
325
+	//      E_CORE_WARNING, E_COMPILE_ERROR,
326
+	//      E_COMPILE_WARNING, E_STRICT
327 327
     
328
-    $this->throwErrorExceptions = $throwErrorExceptions;
328
+	$this->throwErrorExceptions = $throwErrorExceptions;
329 329
     
330
-    return set_error_handler(array($this,'errorHandler'));     
330
+	return set_error_handler(array($this,'errorHandler'));     
331 331
   }
332 332
 
333 333
   /**
@@ -343,20 +343,20 @@  discard block
 block discarded – undo
343 343
    */
344 344
   public function errorHandler($errno, $errstr, $errfile, $errline, $errcontext)
345 345
   {
346
-    // Don't throw exception if error reporting is switched off
347
-    if (error_reporting() == 0) {
348
-      return;
349
-    }
350
-    // Only throw exceptions for errors we are asking for
351
-    if (error_reporting() & $errno) {
352
-
353
-      $exception = new ErrorException($errstr, 0, $errno, $errfile, $errline);
354
-      if($this->throwErrorExceptions) {
355
-        throw $exception;
356
-      } else {
357
-        $this->fb($exception);
358
-      }
359
-    }
346
+	// Don't throw exception if error reporting is switched off
347
+	if (error_reporting() == 0) {
348
+	  return;
349
+	}
350
+	// Only throw exceptions for errors we are asking for
351
+	if (error_reporting() & $errno) {
352
+
353
+	  $exception = new ErrorException($errstr, 0, $errno, $errfile, $errline);
354
+	  if($this->throwErrorExceptions) {
355
+		throw $exception;
356
+	  } else {
357
+		$this->fb($exception);
358
+	  }
359
+	}
360 360
   }
361 361
   
362 362
   /**
@@ -368,7 +368,7 @@  discard block
 block discarded – undo
368 368
    */
369 369
   public function registerExceptionHandler()
370 370
   {
371
-    return set_exception_handler(array($this,'exceptionHandler'));     
371
+	return set_exception_handler(array($this,'exceptionHandler'));     
372 372
   }
373 373
   
374 374
   /**
@@ -381,13 +381,13 @@  discard block
 block discarded – undo
381 381
    */
382 382
   function exceptionHandler($Exception) {
383 383
     
384
-    $this->inExceptionHandler = true;
384
+	$this->inExceptionHandler = true;
385 385
 
386
-    header('HTTP/1.1 500 Internal Server Error');
386
+	header('HTTP/1.1 500 Internal Server Error');
387 387
 
388
-    $this->fb($Exception);
388
+	$this->fb($Exception);
389 389
     
390
-    $this->inExceptionHandler = false;
390
+	$this->inExceptionHandler = false;
391 391
   }
392 392
   
393 393
   /**
@@ -399,14 +399,14 @@  discard block
 block discarded – undo
399 399
    */
400 400
   public function registerAssertionHandler($convertAssertionErrorsToExceptions=true, $throwAssertionExceptions=false)
401 401
   {
402
-    $this->convertAssertionErrorsToExceptions = $convertAssertionErrorsToExceptions;
403
-    $this->throwAssertionExceptions = $throwAssertionExceptions;
402
+	$this->convertAssertionErrorsToExceptions = $convertAssertionErrorsToExceptions;
403
+	$this->throwAssertionExceptions = $throwAssertionExceptions;
404 404
     
405
-    if($throwAssertionExceptions && !$convertAssertionErrorsToExceptions) {
406
-      throw $this->newException('Cannot throw assertion exceptions as assertion errors are not being converted to exceptions!');
407
-    }
405
+	if($throwAssertionExceptions && !$convertAssertionErrorsToExceptions) {
406
+	  throw $this->newException('Cannot throw assertion exceptions as assertion errors are not being converted to exceptions!');
407
+	}
408 408
     
409
-    return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler'));
409
+	return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler'));
410 410
   }
411 411
   
412 412
   /**
@@ -421,21 +421,21 @@  discard block
 block discarded – undo
421 421
   public function assertionHandler($file, $line, $code)
422 422
   {
423 423
 
424
-    if($this->convertAssertionErrorsToExceptions) {
424
+	if($this->convertAssertionErrorsToExceptions) {
425 425
       
426
-      $exception = new ErrorException('Assertion Failed - Code[ '.$code.' ]', 0, null, $file, $line);
426
+	  $exception = new ErrorException('Assertion Failed - Code[ '.$code.' ]', 0, null, $file, $line);
427 427
 
428
-      if($this->throwAssertionExceptions) {
429
-        throw $exception;
430
-      } else {
431
-        $this->fb($exception);
432
-      }
428
+	  if($this->throwAssertionExceptions) {
429
+		throw $exception;
430
+	  } else {
431
+		$this->fb($exception);
432
+	  }
433 433
     
434
-    } else {
434
+	} else {
435 435
     
436
-      $this->fb($code, 'Assertion Failed', FirePHP::ERROR, array('File'=>$file,'Line'=>$line));
436
+	  $this->fb($code, 'Assertion Failed', FirePHP::ERROR, array('File'=>$file,'Line'=>$line));
437 437
     
438
-    }
438
+	}
439 439
   }  
440 440
   
441 441
   /**
@@ -445,7 +445,7 @@  discard block
 block discarded – undo
445 445
    */    
446 446
   public function setProcessorUrl($URL)
447 447
   {
448
-    $this->setHeader('X-FirePHP-ProcessorURL', $URL);
448
+	$this->setHeader('X-FirePHP-ProcessorURL', $URL);
449 449
   }
450 450
 
451 451
   /**
@@ -455,7 +455,7 @@  discard block
 block discarded – undo
455 455
    */
456 456
   public function setRendererUrl($URL)
457 457
   {
458
-    $this->setHeader('X-FirePHP-RendererURL', $URL);
458
+	$this->setHeader('X-FirePHP-RendererURL', $URL);
459 459
   }
460 460
   
461 461
   /**
@@ -472,20 +472,20 @@  discard block
 block discarded – undo
472 472
    */
473 473
   public function group($Name, $Options=null) {
474 474
     
475
-    if(!$Name) {
476
-      throw $this->newException('You must specify a label for the group!');
477
-    }
475
+	if(!$Name) {
476
+	  throw $this->newException('You must specify a label for the group!');
477
+	}
478 478
     
479
-    if($Options) {
480
-      if(!is_array($Options)) {
481
-        throw $this->newException('Options must be defined as an array!');
482
-      }
483
-      if(array_key_exists('Collapsed', $Options)) {
484
-        $Options['Collapsed'] = ($Options['Collapsed'])?'true':'false';
485
-      }
486
-    }
479
+	if($Options) {
480
+	  if(!is_array($Options)) {
481
+		throw $this->newException('Options must be defined as an array!');
482
+	  }
483
+	  if(array_key_exists('Collapsed', $Options)) {
484
+		$Options['Collapsed'] = ($Options['Collapsed'])?'true':'false';
485
+	  }
486
+	}
487 487
     
488
-    return $this->fb(null, $Name, FirePHP::GROUP_START, $Options);
488
+	return $this->fb(null, $Name, FirePHP::GROUP_START, $Options);
489 489
   }
490 490
   
491 491
   /**
@@ -495,7 +495,7 @@  discard block
 block discarded – undo
495 495
    * @throws Exception
496 496
    */
497 497
   public function groupEnd() {
498
-    return $this->fb(null, null, FirePHP::GROUP_END);
498
+	return $this->fb(null, null, FirePHP::GROUP_END);
499 499
   }
500 500
 
501 501
   /**
@@ -508,7 +508,7 @@  discard block
 block discarded – undo
508 508
    * @throws Exception
509 509
    */
510 510
   public function log($Object, $Label=null) {
511
-    return $this->fb($Object, $Label, FirePHP::LOG);
511
+	return $this->fb($Object, $Label, FirePHP::LOG);
512 512
   } 
513 513
 
514 514
   /**
@@ -521,7 +521,7 @@  discard block
 block discarded – undo
521 521
    * @throws Exception
522 522
    */
523 523
   public function info($Object, $Label=null) {
524
-    return $this->fb($Object, $Label, FirePHP::INFO);
524
+	return $this->fb($Object, $Label, FirePHP::INFO);
525 525
   } 
526 526
 
527 527
   /**
@@ -534,7 +534,7 @@  discard block
 block discarded – undo
534 534
    * @throws Exception
535 535
    */
536 536
   public function warn($Object, $Label=null) {
537
-    return $this->fb($Object, $Label, FirePHP::WARN);
537
+	return $this->fb($Object, $Label, FirePHP::WARN);
538 538
   } 
539 539
 
540 540
   /**
@@ -547,7 +547,7 @@  discard block
 block discarded – undo
547 547
    * @throws Exception
548 548
    */
549 549
   public function error($Object, $Label=null) {
550
-    return $this->fb($Object, $Label, FirePHP::ERROR);
550
+	return $this->fb($Object, $Label, FirePHP::ERROR);
551 551
   } 
552 552
 
553 553
   /**
@@ -560,7 +560,7 @@  discard block
 block discarded – undo
560 560
    * @throws Exception
561 561
    */
562 562
   public function dump($Key, $Variable) {
563
-    return $this->fb($Variable, $Key, FirePHP::DUMP);
563
+	return $this->fb($Variable, $Key, FirePHP::DUMP);
564 564
   }
565 565
   
566 566
   /**
@@ -572,7 +572,7 @@  discard block
 block discarded – undo
572 572
    * @throws Exception
573 573
    */
574 574
   public function trace($Label) {
575
-    return $this->fb($Label, FirePHP::TRACE);
575
+	return $this->fb($Label, FirePHP::TRACE);
576 576
   } 
577 577
 
578 578
   /**
@@ -585,7 +585,7 @@  discard block
 block discarded – undo
585 585
    * @throws Exception
586 586
    */
587 587
   public function table($Label, $Table) {
588
-    return $this->fb($Table, $Label, FirePHP::TABLE);
588
+	return $this->fb($Table, $Label, FirePHP::TABLE);
589 589
   }
590 590
   
591 591
   /**
@@ -594,12 +594,12 @@  discard block
 block discarded – undo
594 594
    * @return boolean
595 595
    */
596 596
   public function detectClientExtension() {
597
-    /* Check if FirePHP is installed on client */
598
-    if(!@preg_match_all('/\sFirePHP\/([\.|\d]*)\s?/si',$this->getUserAgent(),$m) ||
599
-       !version_compare($m[1][0],'0.0.6','>=')) {
600
-      return false;
601
-    }
602
-    return true;    
597
+	/* Check if FirePHP is installed on client */
598
+	if(!@preg_match_all('/\sFirePHP\/([\.|\d]*)\s?/si',$this->getUserAgent(),$m) ||
599
+	   !version_compare($m[1][0],'0.0.6','>=')) {
600
+	  return false;
601
+	}
602
+	return true;    
603 603
   }
604 604
  
605 605
   /**
@@ -612,265 +612,265 @@  discard block
 block discarded – undo
612 612
    */
613 613
   public function fb($Object) {
614 614
   
615
-    if(!$this->enabled) {
616
-      return false;
617
-    }
615
+	if(!$this->enabled) {
616
+	  return false;
617
+	}
618 618
   
619
-    if (headers_sent($filename, $linenum)) {
620
-      // If we are logging from within the exception handler we cannot throw another exception
621
-      if($this->inExceptionHandler) {
622
-        // Simply echo the error out to the page
623
-        echo '<div style="border: 2px solid red; font-family: Arial; font-size: 12px; background-color: lightgray; padding: 5px;"><span style="color: red; font-weight: bold;">FirePHP ERROR:</span> Headers already sent in <b>'.$filename.'</b> on line <b>'.$linenum.'</b>. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.</div>';
624
-      } else {
625
-        throw $this->newException('Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.');
626
-      }
627
-    }
619
+	if (headers_sent($filename, $linenum)) {
620
+	  // If we are logging from within the exception handler we cannot throw another exception
621
+	  if($this->inExceptionHandler) {
622
+		// Simply echo the error out to the page
623
+		echo '<div style="border: 2px solid red; font-family: Arial; font-size: 12px; background-color: lightgray; padding: 5px;"><span style="color: red; font-weight: bold;">FirePHP ERROR:</span> Headers already sent in <b>'.$filename.'</b> on line <b>'.$linenum.'</b>. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.</div>';
624
+	  } else {
625
+		throw $this->newException('Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.');
626
+	  }
627
+	}
628 628
   
629
-    $Type = null;
630
-    $Label = null;
631
-    $Options = array();
629
+	$Type = null;
630
+	$Label = null;
631
+	$Options = array();
632 632
   
633
-    if(func_num_args()==1) {
634
-    } else
635
-    if(func_num_args()==2) {
636
-      switch(func_get_arg(1)) {
637
-        case self::LOG:
638
-        case self::INFO:
639
-        case self::WARN:
640
-        case self::ERROR:
641
-        case self::DUMP:
642
-        case self::TRACE:
643
-        case self::EXCEPTION:
644
-        case self::TABLE:
645
-        case self::GROUP_START:
646
-        case self::GROUP_END:
647
-          $Type = func_get_arg(1);
648
-          break;
649
-        default:
650
-          $Label = func_get_arg(1);
651
-          break;
652
-      }
653
-    } else
654
-    if(func_num_args()==3) {
655
-      $Type = func_get_arg(2);
656
-      $Label = func_get_arg(1);
657
-    } else
658
-    if(func_num_args()==4) {
659
-      $Type = func_get_arg(2);
660
-      $Label = func_get_arg(1);
661
-      $Options = func_get_arg(3);
662
-    } else {
663
-      throw $this->newException('Wrong number of arguments to fb() function!');
664
-    }
633
+	if(func_num_args()==1) {
634
+	} else
635
+	if(func_num_args()==2) {
636
+	  switch(func_get_arg(1)) {
637
+		case self::LOG:
638
+		case self::INFO:
639
+		case self::WARN:
640
+		case self::ERROR:
641
+		case self::DUMP:
642
+		case self::TRACE:
643
+		case self::EXCEPTION:
644
+		case self::TABLE:
645
+		case self::GROUP_START:
646
+		case self::GROUP_END:
647
+		  $Type = func_get_arg(1);
648
+		  break;
649
+		default:
650
+		  $Label = func_get_arg(1);
651
+		  break;
652
+	  }
653
+	} else
654
+	if(func_num_args()==3) {
655
+	  $Type = func_get_arg(2);
656
+	  $Label = func_get_arg(1);
657
+	} else
658
+	if(func_num_args()==4) {
659
+	  $Type = func_get_arg(2);
660
+	  $Label = func_get_arg(1);
661
+	  $Options = func_get_arg(3);
662
+	} else {
663
+	  throw $this->newException('Wrong number of arguments to fb() function!');
664
+	}
665 665
   
666 666
   
667
-    if(!$this->detectClientExtension()) {
668
-      return false;
669
-    }
667
+	if(!$this->detectClientExtension()) {
668
+	  return false;
669
+	}
670 670
   
671
-    $meta = array();
672
-    $skipFinalObjectEncode = false;
671
+	$meta = array();
672
+	$skipFinalObjectEncode = false;
673 673
   
674
-    if($Object instanceof Exception) {
674
+	if($Object instanceof Exception) {
675 675
 
676
-      $meta['file'] = $this->_escapeTraceFile($Object->getFile());
677
-      $meta['line'] = $Object->getLine();
676
+	  $meta['file'] = $this->_escapeTraceFile($Object->getFile());
677
+	  $meta['line'] = $Object->getLine();
678 678
       
679
-      $trace = $Object->getTrace();
680
-      if($Object instanceof ErrorException
681
-         && isset($trace[0]['function'])
682
-         && $trace[0]['function']=='errorHandler'
683
-         && isset($trace[0]['class'])
684
-         && $trace[0]['class']=='FirePHP') {
679
+	  $trace = $Object->getTrace();
680
+	  if($Object instanceof ErrorException
681
+		 && isset($trace[0]['function'])
682
+		 && $trace[0]['function']=='errorHandler'
683
+		 && isset($trace[0]['class'])
684
+		 && $trace[0]['class']=='FirePHP') {
685 685
            
686
-        $severity = false;
687
-        switch($Object->getSeverity()) {
688
-          case E_WARNING: $severity = 'E_WARNING'; break;
689
-          case E_NOTICE: $severity = 'E_NOTICE'; break;
690
-          case E_USER_ERROR: $severity = 'E_USER_ERROR'; break;
691
-          case E_USER_WARNING: $severity = 'E_USER_WARNING'; break;
692
-          case E_USER_NOTICE: $severity = 'E_USER_NOTICE'; break;
693
-          case E_STRICT: $severity = 'E_STRICT'; break;
694
-          case E_RECOVERABLE_ERROR: $severity = 'E_RECOVERABLE_ERROR'; break;
695
-          case E_DEPRECATED: $severity = 'E_DEPRECATED'; break;
696
-          case E_USER_DEPRECATED: $severity = 'E_USER_DEPRECATED'; break;
697
-        }
686
+		$severity = false;
687
+		switch($Object->getSeverity()) {
688
+		  case E_WARNING: $severity = 'E_WARNING'; break;
689
+		  case E_NOTICE: $severity = 'E_NOTICE'; break;
690
+		  case E_USER_ERROR: $severity = 'E_USER_ERROR'; break;
691
+		  case E_USER_WARNING: $severity = 'E_USER_WARNING'; break;
692
+		  case E_USER_NOTICE: $severity = 'E_USER_NOTICE'; break;
693
+		  case E_STRICT: $severity = 'E_STRICT'; break;
694
+		  case E_RECOVERABLE_ERROR: $severity = 'E_RECOVERABLE_ERROR'; break;
695
+		  case E_DEPRECATED: $severity = 'E_DEPRECATED'; break;
696
+		  case E_USER_DEPRECATED: $severity = 'E_USER_DEPRECATED'; break;
697
+		}
698 698
            
699
-        $Object = array('Class'=>get_class($Object),
700
-                        'Message'=>$severity.': '.$Object->getMessage(),
701
-                        'File'=>$this->_escapeTraceFile($Object->getFile()),
702
-                        'Line'=>$Object->getLine(),
703
-                        'Type'=>'trigger',
704
-                        'Trace'=>$this->_escapeTrace(array_splice($trace,2)));
705
-        $skipFinalObjectEncode = true;
706
-      } else {
707
-        $Object = array('Class'=>get_class($Object),
708
-                        'Message'=>$Object->getMessage(),
709
-                        'File'=>$this->_escapeTraceFile($Object->getFile()),
710
-                        'Line'=>$Object->getLine(),
711
-                        'Type'=>'throw',
712
-                        'Trace'=>$this->_escapeTrace($trace));
713
-        $skipFinalObjectEncode = true;
714
-      }
715
-      $Type = self::EXCEPTION;
699
+		$Object = array('Class'=>get_class($Object),
700
+						'Message'=>$severity.': '.$Object->getMessage(),
701
+						'File'=>$this->_escapeTraceFile($Object->getFile()),
702
+						'Line'=>$Object->getLine(),
703
+						'Type'=>'trigger',
704
+						'Trace'=>$this->_escapeTrace(array_splice($trace,2)));
705
+		$skipFinalObjectEncode = true;
706
+	  } else {
707
+		$Object = array('Class'=>get_class($Object),
708
+						'Message'=>$Object->getMessage(),
709
+						'File'=>$this->_escapeTraceFile($Object->getFile()),
710
+						'Line'=>$Object->getLine(),
711
+						'Type'=>'throw',
712
+						'Trace'=>$this->_escapeTrace($trace));
713
+		$skipFinalObjectEncode = true;
714
+	  }
715
+	  $Type = self::EXCEPTION;
716 716
       
717
-    } else
718
-    if($Type==self::TRACE) {
717
+	} else
718
+	if($Type==self::TRACE) {
719 719
       
720
-      $trace = debug_backtrace();
721
-      if(!$trace) return false;
722
-      for( $i=0 ; $i<sizeof($trace) ; $i++ ) {
723
-
724
-        if(isset($trace[$i]['class'])
725
-           && isset($trace[$i]['file'])
726
-           && ($trace[$i]['class']=='FirePHP'
727
-               || $trace[$i]['class']=='FB')
728
-           && (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
729
-               || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
730
-          /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
731
-        } else
732
-        if(isset($trace[$i]['class'])
733
-           && isset($trace[$i+1]['file'])
734
-           && $trace[$i]['class']=='FirePHP'
735
-           && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
736
-          /* Skip fb() */
737
-        } else
738
-        if($trace[$i]['function']=='fb'
739
-           || $trace[$i]['function']=='trace'
740
-           || $trace[$i]['function']=='send') {
741
-          $Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'',
742
-                          'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'',
743
-                          'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'',
744
-                          'Message'=>$trace[$i]['args'][0],
745
-                          'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'',
746
-                          'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'',
747
-                          'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'',
748
-                          'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1)));
749
-
750
-          $skipFinalObjectEncode = true;
751
-          $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
752
-          $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
753
-          break;
754
-        }
755
-      }
756
-
757
-    } else
758
-    if($Type==self::TABLE) {
720
+	  $trace = debug_backtrace();
721
+	  if(!$trace) return false;
722
+	  for( $i=0 ; $i<sizeof($trace) ; $i++ ) {
723
+
724
+		if(isset($trace[$i]['class'])
725
+		   && isset($trace[$i]['file'])
726
+		   && ($trace[$i]['class']=='FirePHP'
727
+			   || $trace[$i]['class']=='FB')
728
+		   && (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
729
+			   || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
730
+		  /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
731
+		} else
732
+		if(isset($trace[$i]['class'])
733
+		   && isset($trace[$i+1]['file'])
734
+		   && $trace[$i]['class']=='FirePHP'
735
+		   && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
736
+		  /* Skip fb() */
737
+		} else
738
+		if($trace[$i]['function']=='fb'
739
+		   || $trace[$i]['function']=='trace'
740
+		   || $trace[$i]['function']=='send') {
741
+		  $Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'',
742
+						  'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'',
743
+						  'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'',
744
+						  'Message'=>$trace[$i]['args'][0],
745
+						  'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'',
746
+						  'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'',
747
+						  'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'',
748
+						  'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1)));
749
+
750
+		  $skipFinalObjectEncode = true;
751
+		  $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
752
+		  $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
753
+		  break;
754
+		}
755
+	  }
756
+
757
+	} else
758
+	if($Type==self::TABLE) {
759 759
       
760
-      if(isset($Object[0]) && is_string($Object[0])) {
761
-        $Object[1] = $this->encodeTable($Object[1]);
762
-      } else {
763
-        $Object = $this->encodeTable($Object);
764
-      }
760
+	  if(isset($Object[0]) && is_string($Object[0])) {
761
+		$Object[1] = $this->encodeTable($Object[1]);
762
+	  } else {
763
+		$Object = $this->encodeTable($Object);
764
+	  }
765 765
 
766
-      $skipFinalObjectEncode = true;
766
+	  $skipFinalObjectEncode = true;
767 767
       
768
-    } else
769
-    if($Type==self::GROUP_START) {
768
+	} else
769
+	if($Type==self::GROUP_START) {
770 770
       
771
-      if(!$Label) {
772
-        throw $this->newException('You must specify a label for the group!');
773
-      }
771
+	  if(!$Label) {
772
+		throw $this->newException('You must specify a label for the group!');
773
+	  }
774 774
       
775
-    } else {
776
-      if($Type===null) {
777
-        $Type = self::LOG;
778
-      }
779
-    }
775
+	} else {
776
+	  if($Type===null) {
777
+		$Type = self::LOG;
778
+	  }
779
+	}
780 780
     
781
-    if($this->options['includeLineNumbers']) {
782
-      if(!isset($meta['file']) || !isset($meta['line'])) {
781
+	if($this->options['includeLineNumbers']) {
782
+	  if(!isset($meta['file']) || !isset($meta['line'])) {
783 783
 
784
-        $trace = debug_backtrace();
785
-        for( $i=0 ; $trace && $i<sizeof($trace) ; $i++ ) {
784
+		$trace = debug_backtrace();
785
+		for( $i=0 ; $trace && $i<sizeof($trace) ; $i++ ) {
786 786
   
787
-          if(isset($trace[$i]['class'])
788
-             && isset($trace[$i]['file'])
789
-             && ($trace[$i]['class']=='FirePHP'
790
-                 || $trace[$i]['class']=='FB')
791
-             && (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
792
-                 || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
793
-            /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
794
-          } else
795
-          if(isset($trace[$i]['class'])
796
-             && isset($trace[$i+1]['file'])
797
-             && $trace[$i]['class']=='FirePHP'
798
-             && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
799
-            /* Skip fb() */
800
-          } else
801
-          if(isset($trace[$i]['file'])
802
-             && substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') {
803
-            /* Skip FB::fb() */
804
-          } else {
805
-            $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
806
-            $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
807
-            break;
808
-          }
809
-        }      
787
+		  if(isset($trace[$i]['class'])
788
+			 && isset($trace[$i]['file'])
789
+			 && ($trace[$i]['class']=='FirePHP'
790
+				 || $trace[$i]['class']=='FB')
791
+			 && (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
792
+				 || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
793
+			/* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
794
+		  } else
795
+		  if(isset($trace[$i]['class'])
796
+			 && isset($trace[$i+1]['file'])
797
+			 && $trace[$i]['class']=='FirePHP'
798
+			 && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
799
+			/* Skip fb() */
800
+		  } else
801
+		  if(isset($trace[$i]['file'])
802
+			 && substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') {
803
+			/* Skip FB::fb() */
804
+		  } else {
805
+			$meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
806
+			$meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
807
+			break;
808
+		  }
809
+		}      
810 810
       
811
-      }
812
-    } else {
813
-      unset($meta['file']);
814
-      unset($meta['line']);
815
-    }
811
+	  }
812
+	} else {
813
+	  unset($meta['file']);
814
+	  unset($meta['line']);
815
+	}
816 816
 
817 817
   	$this->setHeader('X-Wf-Protocol-1','http://meta.wildfirehq.org/Protocol/JsonStream/0.2');
818 818
   	$this->setHeader('X-Wf-1-Plugin-1','http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/'.self::VERSION);
819 819
  
820
-    $structure_index = 1;
821
-    if($Type==self::DUMP) {
822
-      $structure_index = 2;
823
-    	$this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');
824
-    } else {
825
-    	$this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
826
-    }
820
+	$structure_index = 1;
821
+	if($Type==self::DUMP) {
822
+	  $structure_index = 2;
823
+		$this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');
824
+	} else {
825
+		$this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
826
+	}
827 827
   
828
-    if($Type==self::DUMP) {
829
-    	$msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}';
830
-    } else {
831
-      $msg_meta = $Options;
832
-      $msg_meta['Type'] = $Type;
833
-      if($Label!==null) {
834
-        $msg_meta['Label'] = $Label;
835
-      }
836
-      if(isset($meta['file']) && !isset($msg_meta['File'])) {
837
-        $msg_meta['File'] = $meta['file'];
838
-      }
839
-      if(isset($meta['line']) && !isset($msg_meta['Line'])) {
840
-        $msg_meta['Line'] = $meta['line'];
841
-      }
842
-    	$msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']';
843
-    }
828
+	if($Type==self::DUMP) {
829
+		$msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}';
830
+	} else {
831
+	  $msg_meta = $Options;
832
+	  $msg_meta['Type'] = $Type;
833
+	  if($Label!==null) {
834
+		$msg_meta['Label'] = $Label;
835
+	  }
836
+	  if(isset($meta['file']) && !isset($msg_meta['File'])) {
837
+		$msg_meta['File'] = $meta['file'];
838
+	  }
839
+	  if(isset($meta['line']) && !isset($msg_meta['Line'])) {
840
+		$msg_meta['Line'] = $meta['line'];
841
+	  }
842
+		$msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']';
843
+	}
844 844
     
845
-    $parts = explode("\n",chunk_split($msg, 5000, "\n"));
845
+	$parts = explode("\n",chunk_split($msg, 5000, "\n"));
846 846
 
847
-    for( $i=0 ; $i<count($parts) ; $i++) {
847
+	for( $i=0 ; $i<count($parts) ; $i++) {
848 848
         
849
-        $part = $parts[$i];
850
-        if ($part) {
849
+		$part = $parts[$i];
850
+		if ($part) {
851 851
             
852
-            if(count($parts)>2) {
853
-              // Message needs to be split into multiple parts
854
-              $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
855
-                               (($i==0)?strlen($msg):'')
856
-                               . '|' . $part . '|'
857
-                               . (($i<count($parts)-2)?'\\':''));
858
-            } else {
859
-              $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
860
-                               strlen($part) . '|' . $part . '|');
861
-            }
852
+			if(count($parts)>2) {
853
+			  // Message needs to be split into multiple parts
854
+			  $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
855
+							   (($i==0)?strlen($msg):'')
856
+							   . '|' . $part . '|'
857
+							   . (($i<count($parts)-2)?'\\':''));
858
+			} else {
859
+			  $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
860
+							   strlen($part) . '|' . $part . '|');
861
+			}
862 862
             
863
-            $this->messageIndex++;
863
+			$this->messageIndex++;
864 864
             
865
-            if ($this->messageIndex > 99999) {
866
-                throw $this->newException('Maximum number (99,999) of messages reached!');             
867
-            }
868
-        }
869
-    }
865
+			if ($this->messageIndex > 99999) {
866
+				throw $this->newException('Maximum number (99,999) of messages reached!');             
867
+			}
868
+		}
869
+	}
870 870
 
871 871
   	$this->setHeader('X-Wf-1-Index',$this->messageIndex-1);
872 872
 
873
-    return true;
873
+	return true;
874 874
   }
875 875
   
876 876
   /**
@@ -880,7 +880,7 @@  discard block
 block discarded – undo
880 880
    * @return string
881 881
    */
882 882
   protected function _standardizePath($Path) {
883
-    return preg_replace('/\\\\+/','/',$Path);    
883
+	return preg_replace('/\\\\+/','/',$Path);    
884 884
   }
885 885
   
886 886
   /**
@@ -890,16 +890,16 @@  discard block
 block discarded – undo
890 890
    * @return array
891 891
    */
892 892
   protected function _escapeTrace($Trace) {
893
-    if(!$Trace) return $Trace;
894
-    for( $i=0 ; $i<sizeof($Trace) ; $i++ ) {
895
-      if(isset($Trace[$i]['file'])) {
896
-        $Trace[$i]['file'] = $this->_escapeTraceFile($Trace[$i]['file']);
897
-      }
898
-      if(isset($Trace[$i]['args'])) {
899
-        $Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']);
900
-      }
901
-    }
902
-    return $Trace;    
893
+	if(!$Trace) return $Trace;
894
+	for( $i=0 ; $i<sizeof($Trace) ; $i++ ) {
895
+	  if(isset($Trace[$i]['file'])) {
896
+		$Trace[$i]['file'] = $this->_escapeTraceFile($Trace[$i]['file']);
897
+	  }
898
+	  if(isset($Trace[$i]['args'])) {
899
+		$Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']);
900
+	  }
901
+	}
902
+	return $Trace;    
903 903
   }
904 904
   
905 905
   /**
@@ -909,15 +909,15 @@  discard block
 block discarded – undo
909 909
    * @return string
910 910
    */
911 911
   protected function _escapeTraceFile($File) {
912
-    /* Check if we have a windows filepath */
913
-    if(strpos($File,'\\')) {
914
-      /* First strip down to single \ */
912
+	/* Check if we have a windows filepath */
913
+	if(strpos($File,'\\')) {
914
+	  /* First strip down to single \ */
915 915
       
916
-      $file = preg_replace('/\\\\+/','\\',$File);
916
+	  $file = preg_replace('/\\\\+/','\\',$File);
917 917
       
918
-      return $file;
919
-    }
920
-    return $File;
918
+	  return $file;
919
+	}
920
+	return $File;
921 921
   }
922 922
 
923 923
   /**
@@ -927,7 +927,7 @@  discard block
 block discarded – undo
927 927
    * @param string_type $Value
928 928
    */
929 929
   protected function setHeader($Name, $Value) {
930
-    return header($Name.': '.$Value);
930
+	return header($Name.': '.$Value);
931 931
   }
932 932
 
933 933
   /**
@@ -936,8 +936,8 @@  discard block
 block discarded – undo
936 936
    * @return string|false
937 937
    */
938 938
   protected function getUserAgent() {
939
-    if(!isset($_SERVER['HTTP_USER_AGENT'])) return false;
940
-    return $_SERVER['HTTP_USER_AGENT'];
939
+	if(!isset($_SERVER['HTTP_USER_AGENT'])) return false;
940
+	return $_SERVER['HTTP_USER_AGENT'];
941 941
   }
942 942
 
943 943
   /**
@@ -947,7 +947,7 @@  discard block
 block discarded – undo
947 947
    * @return Exception
948 948
    */
949 949
   protected function newException($Message) {
950
-    return new Exception($Message);
950
+	return new Exception($Message);
951 951
   }
952 952
   
953 953
   /**
@@ -960,17 +960,17 @@  discard block
 block discarded – undo
960 960
    */
961 961
   public function jsonEncode($Object, $skipObjectEncode=false)
962 962
   {
963
-    if(!$skipObjectEncode) {
964
-      $Object = $this->encodeObject($Object);
965
-    }
963
+	if(!$skipObjectEncode) {
964
+	  $Object = $this->encodeObject($Object);
965
+	}
966 966
     
967
-    if(function_exists('json_encode')
968
-       && $this->options['useNativeJsonEncode']!=false) {
967
+	if(function_exists('json_encode')
968
+	   && $this->options['useNativeJsonEncode']!=false) {
969 969
 
970
-      return json_encode($Object);
971
-    } else {
972
-      return $this->json_encode($Object);
973
-    }
970
+	  return json_encode($Object);
971
+	} else {
972
+	  return $this->json_encode($Object);
973
+	}
974 974
   }
975 975
 
976 976
   /**
@@ -981,23 +981,23 @@  discard block
 block discarded – undo
981 981
    */  
982 982
   protected function encodeTable($Table) {
983 983
     
984
-    if(!$Table) return $Table;
984
+	if(!$Table) return $Table;
985 985
     
986
-    $new_table = array();
987
-    foreach($Table as $row) {
986
+	$new_table = array();
987
+	foreach($Table as $row) {
988 988
   
989
-      if(is_array($row)) {
990
-        $new_row = array();
989
+	  if(is_array($row)) {
990
+		$new_row = array();
991 991
         
992
-        foreach($row as $item) {
993
-          $new_row[] = $this->encodeObject($item);
994
-        }
992
+		foreach($row as $item) {
993
+		  $new_row[] = $this->encodeObject($item);
994
+		}
995 995
         
996
-        $new_table[] = $new_row;
997
-      }
998
-    }
996
+		$new_table[] = $new_row;
997
+	  }
998
+	}
999 999
     
1000
-    return $new_table;
1000
+	return $new_table;
1001 1001
   }
1002 1002
 
1003 1003
   /**
@@ -1010,135 +1010,135 @@  discard block
 block discarded – undo
1010 1010
    */
1011 1011
   protected function encodeObject($Object, $ObjectDepth = 1, $ArrayDepth = 1)
1012 1012
   {
1013
-    $return = array();
1013
+	$return = array();
1014 1014
 
1015
-    if (is_resource($Object)) {
1015
+	if (is_resource($Object)) {
1016 1016
 
1017
-      return '** '.(string)$Object.' **';
1017
+	  return '** '.(string)$Object.' **';
1018 1018
 
1019
-    } else    
1020
-    if (is_object($Object)) {
1019
+	} else    
1020
+	if (is_object($Object)) {
1021 1021
 
1022
-        if ($ObjectDepth > $this->options['maxObjectDepth']) {
1023
-          return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **';
1024
-        }
1022
+		if ($ObjectDepth > $this->options['maxObjectDepth']) {
1023
+		  return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **';
1024
+		}
1025 1025
         
1026
-        foreach ($this->objectStack as $refVal) {
1027
-            if ($refVal === $Object) {
1028
-                return '** Recursion ('.get_class($Object).') **';
1029
-            }
1030
-        }
1031
-        array_push($this->objectStack, $Object);
1026
+		foreach ($this->objectStack as $refVal) {
1027
+			if ($refVal === $Object) {
1028
+				return '** Recursion ('.get_class($Object).') **';
1029
+			}
1030
+		}
1031
+		array_push($this->objectStack, $Object);
1032 1032
                 
1033
-        $return['__className'] = $class = get_class($Object);
1034
-        $class_lower = strtolower($class);
1035
-
1036
-        $reflectionClass = new ReflectionClass($class);  
1037
-        $properties = array();
1038
-        foreach( $reflectionClass->getProperties() as $property) {
1039
-          $properties[$property->getName()] = $property;
1040
-        }
1033
+		$return['__className'] = $class = get_class($Object);
1034
+		$class_lower = strtolower($class);
1035
+
1036
+		$reflectionClass = new ReflectionClass($class);  
1037
+		$properties = array();
1038
+		foreach( $reflectionClass->getProperties() as $property) {
1039
+		  $properties[$property->getName()] = $property;
1040
+		}
1041 1041
             
1042
-        $members = (array)$Object;
1042
+		$members = (array)$Object;
1043 1043
             
1044
-        foreach( $properties as $raw_name => $property ) {
1044
+		foreach( $properties as $raw_name => $property ) {
1045 1045
           
1046
-          $name = $raw_name;
1047
-          if($property->isStatic()) {
1048
-            $name = 'static:'.$name;
1049
-          }
1050
-          if($property->isPublic()) {
1051
-            $name = 'public:'.$name;
1052
-          } else
1053
-          if($property->isPrivate()) {
1054
-            $name = 'private:'.$name;
1055
-            $raw_name = "\0".$class."\0".$raw_name;
1056
-          } else
1057
-          if($property->isProtected()) {
1058
-            $name = 'protected:'.$name;
1059
-            $raw_name = "\0".'*'."\0".$raw_name;
1060
-          }
1046
+		  $name = $raw_name;
1047
+		  if($property->isStatic()) {
1048
+			$name = 'static:'.$name;
1049
+		  }
1050
+		  if($property->isPublic()) {
1051
+			$name = 'public:'.$name;
1052
+		  } else
1053
+		  if($property->isPrivate()) {
1054
+			$name = 'private:'.$name;
1055
+			$raw_name = "\0".$class."\0".$raw_name;
1056
+		  } else
1057
+		  if($property->isProtected()) {
1058
+			$name = 'protected:'.$name;
1059
+			$raw_name = "\0".'*'."\0".$raw_name;
1060
+		  }
1061 1061
           
1062
-          if(!(isset($this->objectFilters[$class_lower])
1063
-               && is_array($this->objectFilters[$class_lower])
1064
-               && in_array($raw_name,$this->objectFilters[$class_lower]))) {
1062
+		  if(!(isset($this->objectFilters[$class_lower])
1063
+			   && is_array($this->objectFilters[$class_lower])
1064
+			   && in_array($raw_name,$this->objectFilters[$class_lower]))) {
1065 1065
 
1066
-            if(array_key_exists($raw_name,$members)
1067
-               && !$property->isStatic()) {
1066
+			if(array_key_exists($raw_name,$members)
1067
+			   && !$property->isStatic()) {
1068 1068
               
1069
-              $return[$name] = $this->encodeObject($members[$raw_name], $ObjectDepth + 1, 1);      
1069
+			  $return[$name] = $this->encodeObject($members[$raw_name], $ObjectDepth + 1, 1);      
1070 1070
             
1071
-            } else {
1072
-              if(method_exists($property,'setAccessible')) {
1073
-                $property->setAccessible(true);
1074
-                $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
1075
-              } else
1076
-              if($property->isPublic()) {
1077
-                $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
1078
-              } else {
1079
-                $return[$name] = '** Need PHP 5.3 to get value **';
1080
-              }
1081
-            }
1082
-          } else {
1083
-            $return[$name] = '** Excluded by Filter **';
1084
-          }
1085
-        }
1071
+			} else {
1072
+			  if(method_exists($property,'setAccessible')) {
1073
+				$property->setAccessible(true);
1074
+				$return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
1075
+			  } else
1076
+			  if($property->isPublic()) {
1077
+				$return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
1078
+			  } else {
1079
+				$return[$name] = '** Need PHP 5.3 to get value **';
1080
+			  }
1081
+			}
1082
+		  } else {
1083
+			$return[$name] = '** Excluded by Filter **';
1084
+		  }
1085
+		}
1086 1086
         
1087
-        // Include all members that are not defined in the class
1088
-        // but exist in the object
1089
-        foreach( $members as $raw_name => $value ) {
1087
+		// Include all members that are not defined in the class
1088
+		// but exist in the object
1089
+		foreach( $members as $raw_name => $value ) {
1090 1090
           
1091
-          $name = $raw_name;
1091
+		  $name = $raw_name;
1092 1092
           
1093
-          if ($name{0} == "\0") {
1094
-            $parts = explode("\0", $name);
1095
-            $name = $parts[2];
1096
-          }
1093
+		  if ($name{0} == "\0") {
1094
+			$parts = explode("\0", $name);
1095
+			$name = $parts[2];
1096
+		  }
1097 1097
           
1098
-          if(!isset($properties[$name])) {
1099
-            $name = 'undeclared:'.$name;
1098
+		  if(!isset($properties[$name])) {
1099
+			$name = 'undeclared:'.$name;
1100 1100
               
1101
-            if(!(isset($this->objectFilters[$class_lower])
1102
-                 && is_array($this->objectFilters[$class_lower])
1103
-                 && in_array($raw_name,$this->objectFilters[$class_lower]))) {
1101
+			if(!(isset($this->objectFilters[$class_lower])
1102
+				 && is_array($this->objectFilters[$class_lower])
1103
+				 && in_array($raw_name,$this->objectFilters[$class_lower]))) {
1104 1104
               
1105
-              $return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1);
1106
-            } else {
1107
-              $return[$name] = '** Excluded by Filter **';
1108
-            }
1109
-          }
1110
-        }
1105
+			  $return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1);
1106
+			} else {
1107
+			  $return[$name] = '** Excluded by Filter **';
1108
+			}
1109
+		  }
1110
+		}
1111 1111
         
1112
-        array_pop($this->objectStack);
1112
+		array_pop($this->objectStack);
1113 1113
         
1114
-    } elseif (is_array($Object)) {
1114
+	} elseif (is_array($Object)) {
1115 1115
 
1116
-        if ($ArrayDepth > $this->options['maxArrayDepth']) {
1117
-          return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **';
1118
-        }
1116
+		if ($ArrayDepth > $this->options['maxArrayDepth']) {
1117
+		  return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **';
1118
+		}
1119 1119
       
1120
-        foreach ($Object as $key => $val) {
1120
+		foreach ($Object as $key => $val) {
1121 1121
           
1122
-          // Encoding the $GLOBALS PHP array causes an infinite loop
1123
-          // if the recursion is not reset here as it contains
1124
-          // a reference to itself. This is the only way I have come up
1125
-          // with to stop infinite recursion in this case.
1126
-          if($key=='GLOBALS'
1127
-             && is_array($val)
1128
-             && array_key_exists('GLOBALS',$val)) {
1129
-            $val['GLOBALS'] = '** Recursion (GLOBALS) **';
1130
-          }
1122
+		  // Encoding the $GLOBALS PHP array causes an infinite loop
1123
+		  // if the recursion is not reset here as it contains
1124
+		  // a reference to itself. This is the only way I have come up
1125
+		  // with to stop infinite recursion in this case.
1126
+		  if($key=='GLOBALS'
1127
+			 && is_array($val)
1128
+			 && array_key_exists('GLOBALS',$val)) {
1129
+			$val['GLOBALS'] = '** Recursion (GLOBALS) **';
1130
+		  }
1131 1131
           
1132
-          $return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1);
1133
-        }
1134
-    } else {
1135
-      if(self::is_utf8($Object)) {
1136
-        return $Object;
1137
-      } else {
1138
-        return utf8_encode($Object);
1139
-      }
1140
-    }
1141
-    return $return;
1132
+		  $return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1);
1133
+		}
1134
+	} else {
1135
+	  if(self::is_utf8($Object)) {
1136
+		return $Object;
1137
+	  } else {
1138
+		return utf8_encode($Object);
1139
+	  }
1140
+	}
1141
+	return $return;
1142 1142
   }
1143 1143
 
1144 1144
   /**
@@ -1148,29 +1148,29 @@  discard block
 block discarded – undo
1148 1148
    * @return boolean
1149 1149
    */
1150 1150
   protected static function is_utf8($str) {
1151
-    $c=0; $b=0;
1152
-    $bits=0;
1153
-    $len=strlen($str);
1154
-    for($i=0; $i<$len; $i++){
1155
-        $c=ord($str[$i]);
1156
-        if($c > 128){
1157
-            if(($c >= 254)) return false;
1158
-            elseif($c >= 252) $bits=6;
1159
-            elseif($c >= 248) $bits=5;
1160
-            elseif($c >= 240) $bits=4;
1161
-            elseif($c >= 224) $bits=3;
1162
-            elseif($c >= 192) $bits=2;
1163
-            else return false;
1164
-            if(($i+$bits) > $len) return false;
1165
-            while($bits > 1){
1166
-                $i++;
1167
-                $b=ord($str[$i]);
1168
-                if($b < 128 || $b > 191) return false;
1169
-                $bits--;
1170
-            }
1171
-        }
1172
-    }
1173
-    return true;
1151
+	$c=0; $b=0;
1152
+	$bits=0;
1153
+	$len=strlen($str);
1154
+	for($i=0; $i<$len; $i++){
1155
+		$c=ord($str[$i]);
1156
+		if($c > 128){
1157
+			if(($c >= 254)) return false;
1158
+			elseif($c >= 252) $bits=6;
1159
+			elseif($c >= 248) $bits=5;
1160
+			elseif($c >= 240) $bits=4;
1161
+			elseif($c >= 224) $bits=3;
1162
+			elseif($c >= 192) $bits=2;
1163
+			else return false;
1164
+			if(($i+$bits) > $len) return false;
1165
+			while($bits > 1){
1166
+				$i++;
1167
+				$b=ord($str[$i]);
1168
+				if($b < 128 || $b > 191) return false;
1169
+				$bits--;
1170
+			}
1171
+		}
1172
+	}
1173
+	return true;
1174 1174
   } 
1175 1175
 
1176 1176
   /**
@@ -1249,35 +1249,35 @@  discard block
 block discarded – undo
1249 1249
   */
1250 1250
   private function json_utf82utf16($utf8)
1251 1251
   {
1252
-      // oh please oh please oh please oh please oh please
1253
-      if(function_exists('mb_convert_encoding')) {
1254
-          return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
1255
-      }
1256
-
1257
-      switch(strlen($utf8)) {
1258
-          case 1:
1259
-              // this case should never be reached, because we are in ASCII range
1260
-              // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1261
-              return $utf8;
1262
-
1263
-          case 2:
1264
-              // return a UTF-16 character from a 2-byte UTF-8 char
1265
-              // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1266
-              return chr(0x07 & (ord($utf8{0}) >> 2))
1267
-                   . chr((0xC0 & (ord($utf8{0}) << 6))
1268
-                       | (0x3F & ord($utf8{1})));
1269
-
1270
-          case 3:
1271
-              // return a UTF-16 character from a 3-byte UTF-8 char
1272
-              // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1273
-              return chr((0xF0 & (ord($utf8{0}) << 4))
1274
-                       | (0x0F & (ord($utf8{1}) >> 2)))
1275
-                   . chr((0xC0 & (ord($utf8{1}) << 6))
1276
-                       | (0x7F & ord($utf8{2})));
1277
-      }
1278
-
1279
-      // ignoring UTF-32 for now, sorry
1280
-      return '';
1252
+	  // oh please oh please oh please oh please oh please
1253
+	  if(function_exists('mb_convert_encoding')) {
1254
+		  return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
1255
+	  }
1256
+
1257
+	  switch(strlen($utf8)) {
1258
+		  case 1:
1259
+			  // this case should never be reached, because we are in ASCII range
1260
+			  // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1261
+			  return $utf8;
1262
+
1263
+		  case 2:
1264
+			  // return a UTF-16 character from a 2-byte UTF-8 char
1265
+			  // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1266
+			  return chr(0x07 & (ord($utf8{0}) >> 2))
1267
+				   . chr((0xC0 & (ord($utf8{0}) << 6))
1268
+					   | (0x3F & ord($utf8{1})));
1269
+
1270
+		  case 3:
1271
+			  // return a UTF-16 character from a 3-byte UTF-8 char
1272
+			  // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1273
+			  return chr((0xF0 & (ord($utf8{0}) << 4))
1274
+					   | (0x0F & (ord($utf8{1}) >> 2)))
1275
+				   . chr((0xC0 & (ord($utf8{1}) << 6))
1276
+					   | (0x7F & ord($utf8{2})));
1277
+	  }
1278
+
1279
+	  // ignoring UTF-32 for now, sorry
1280
+	  return '';
1281 1281
   }
1282 1282
 
1283 1283
  /**
@@ -1294,133 +1294,133 @@  discard block
 block discarded – undo
1294 1294
   private function json_encode($var)
1295 1295
   {
1296 1296
     
1297
-    if(is_object($var)) {
1298
-      if(in_array($var,$this->json_objectStack)) {
1299
-        return '"** Recursion **"';
1300
-      }
1301
-    }
1297
+	if(is_object($var)) {
1298
+	  if(in_array($var,$this->json_objectStack)) {
1299
+		return '"** Recursion **"';
1300
+	  }
1301
+	}
1302 1302
           
1303
-      switch (gettype($var)) {
1304
-          case 'boolean':
1305
-              return $var ? 'true' : 'false';
1303
+	  switch (gettype($var)) {
1304
+		  case 'boolean':
1305
+			  return $var ? 'true' : 'false';
1306 1306
 
1307
-          case 'NULL':
1308
-              return 'null';
1307
+		  case 'NULL':
1308
+			  return 'null';
1309 1309
 
1310
-          case 'integer':
1311
-              return (int) $var;
1310
+		  case 'integer':
1311
+			  return (int) $var;
1312 1312
 
1313
-          case 'double':
1314
-          case 'float':
1315
-              return (float) $var;
1313
+		  case 'double':
1314
+		  case 'float':
1315
+			  return (float) $var;
1316 1316
 
1317
-          case 'string':
1318
-              // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
1319
-              $ascii = '';
1320
-              $strlen_var = strlen($var);
1317
+		  case 'string':
1318
+			  // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
1319
+			  $ascii = '';
1320
+			  $strlen_var = strlen($var);
1321 1321
 
1322
-             /*
1322
+			 /*
1323 1323
               * Iterate over every character in the string,
1324 1324
               * escaping with a slash or encoding to UTF-8 where necessary
1325 1325
               */
1326
-              for ($c = 0; $c < $strlen_var; ++$c) {
1327
-
1328
-                  $ord_var_c = ord($var{$c});
1329
-
1330
-                  switch (true) {
1331
-                      case $ord_var_c == 0x08:
1332
-                          $ascii .= '\b';
1333
-                          break;
1334
-                      case $ord_var_c == 0x09:
1335
-                          $ascii .= '\t';
1336
-                          break;
1337
-                      case $ord_var_c == 0x0A:
1338
-                          $ascii .= '\n';
1339
-                          break;
1340
-                      case $ord_var_c == 0x0C:
1341
-                          $ascii .= '\f';
1342
-                          break;
1343
-                      case $ord_var_c == 0x0D:
1344
-                          $ascii .= '\r';
1345
-                          break;
1346
-
1347
-                      case $ord_var_c == 0x22:
1348
-                      case $ord_var_c == 0x2F:
1349
-                      case $ord_var_c == 0x5C:
1350
-                          // double quote, slash, slosh
1351
-                          $ascii .= '\\'.$var{$c};
1352
-                          break;
1353
-
1354
-                      case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
1355
-                          // characters U-00000000 - U-0000007F (same as ASCII)
1356
-                          $ascii .= $var{$c};
1357
-                          break;
1358
-
1359
-                      case (($ord_var_c & 0xE0) == 0xC0):
1360
-                          // characters U-00000080 - U-000007FF, mask 110XXXXX
1361
-                          // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1362
-                          $char = pack('C*', $ord_var_c, ord($var{$c + 1}));
1363
-                          $c += 1;
1364
-                          $utf16 = $this->json_utf82utf16($char);
1365
-                          $ascii .= sprintf('\u%04s', bin2hex($utf16));
1366
-                          break;
1367
-
1368
-                      case (($ord_var_c & 0xF0) == 0xE0):
1369
-                          // characters U-00000800 - U-0000FFFF, mask 1110XXXX
1370
-                          // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1371
-                          $char = pack('C*', $ord_var_c,
1372
-                                       ord($var{$c + 1}),
1373
-                                       ord($var{$c + 2}));
1374
-                          $c += 2;
1375
-                          $utf16 = $this->json_utf82utf16($char);
1376
-                          $ascii .= sprintf('\u%04s', bin2hex($utf16));
1377
-                          break;
1378
-
1379
-                      case (($ord_var_c & 0xF8) == 0xF0):
1380
-                          // characters U-00010000 - U-001FFFFF, mask 11110XXX
1381
-                          // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1382
-                          $char = pack('C*', $ord_var_c,
1383
-                                       ord($var{$c + 1}),
1384
-                                       ord($var{$c + 2}),
1385
-                                       ord($var{$c + 3}));
1386
-                          $c += 3;
1387
-                          $utf16 = $this->json_utf82utf16($char);
1388
-                          $ascii .= sprintf('\u%04s', bin2hex($utf16));
1389
-                          break;
1390
-
1391
-                      case (($ord_var_c & 0xFC) == 0xF8):
1392
-                          // characters U-00200000 - U-03FFFFFF, mask 111110XX
1393
-                          // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1394
-                          $char = pack('C*', $ord_var_c,
1395
-                                       ord($var{$c + 1}),
1396
-                                       ord($var{$c + 2}),
1397
-                                       ord($var{$c + 3}),
1398
-                                       ord($var{$c + 4}));
1399
-                          $c += 4;
1400
-                          $utf16 = $this->json_utf82utf16($char);
1401
-                          $ascii .= sprintf('\u%04s', bin2hex($utf16));
1402
-                          break;
1403
-
1404
-                      case (($ord_var_c & 0xFE) == 0xFC):
1405
-                          // characters U-04000000 - U-7FFFFFFF, mask 1111110X
1406
-                          // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1407
-                          $char = pack('C*', $ord_var_c,
1408
-                                       ord($var{$c + 1}),
1409
-                                       ord($var{$c + 2}),
1410
-                                       ord($var{$c + 3}),
1411
-                                       ord($var{$c + 4}),
1412
-                                       ord($var{$c + 5}));
1413
-                          $c += 5;
1414
-                          $utf16 = $this->json_utf82utf16($char);
1415
-                          $ascii .= sprintf('\u%04s', bin2hex($utf16));
1416
-                          break;
1417
-                  }
1418
-              }
1419
-
1420
-              return '"'.$ascii.'"';
1421
-
1422
-          case 'array':
1423
-             /*
1326
+			  for ($c = 0; $c < $strlen_var; ++$c) {
1327
+
1328
+				  $ord_var_c = ord($var{$c});
1329
+
1330
+				  switch (true) {
1331
+					  case $ord_var_c == 0x08:
1332
+						  $ascii .= '\b';
1333
+						  break;
1334
+					  case $ord_var_c == 0x09:
1335
+						  $ascii .= '\t';
1336
+						  break;
1337
+					  case $ord_var_c == 0x0A:
1338
+						  $ascii .= '\n';
1339
+						  break;
1340
+					  case $ord_var_c == 0x0C:
1341
+						  $ascii .= '\f';
1342
+						  break;
1343
+					  case $ord_var_c == 0x0D:
1344
+						  $ascii .= '\r';
1345
+						  break;
1346
+
1347
+					  case $ord_var_c == 0x22:
1348
+					  case $ord_var_c == 0x2F:
1349
+					  case $ord_var_c == 0x5C:
1350
+						  // double quote, slash, slosh
1351
+						  $ascii .= '\\'.$var{$c};
1352
+						  break;
1353
+
1354
+					  case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
1355
+						  // characters U-00000000 - U-0000007F (same as ASCII)
1356
+						  $ascii .= $var{$c};
1357
+						  break;
1358
+
1359
+					  case (($ord_var_c & 0xE0) == 0xC0):
1360
+						  // characters U-00000080 - U-000007FF, mask 110XXXXX
1361
+						  // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1362
+						  $char = pack('C*', $ord_var_c, ord($var{$c + 1}));
1363
+						  $c += 1;
1364
+						  $utf16 = $this->json_utf82utf16($char);
1365
+						  $ascii .= sprintf('\u%04s', bin2hex($utf16));
1366
+						  break;
1367
+
1368
+					  case (($ord_var_c & 0xF0) == 0xE0):
1369
+						  // characters U-00000800 - U-0000FFFF, mask 1110XXXX
1370
+						  // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1371
+						  $char = pack('C*', $ord_var_c,
1372
+									   ord($var{$c + 1}),
1373
+									   ord($var{$c + 2}));
1374
+						  $c += 2;
1375
+						  $utf16 = $this->json_utf82utf16($char);
1376
+						  $ascii .= sprintf('\u%04s', bin2hex($utf16));
1377
+						  break;
1378
+
1379
+					  case (($ord_var_c & 0xF8) == 0xF0):
1380
+						  // characters U-00010000 - U-001FFFFF, mask 11110XXX
1381
+						  // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1382
+						  $char = pack('C*', $ord_var_c,
1383
+									   ord($var{$c + 1}),
1384
+									   ord($var{$c + 2}),
1385
+									   ord($var{$c + 3}));
1386
+						  $c += 3;
1387
+						  $utf16 = $this->json_utf82utf16($char);
1388
+						  $ascii .= sprintf('\u%04s', bin2hex($utf16));
1389
+						  break;
1390
+
1391
+					  case (($ord_var_c & 0xFC) == 0xF8):
1392
+						  // characters U-00200000 - U-03FFFFFF, mask 111110XX
1393
+						  // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1394
+						  $char = pack('C*', $ord_var_c,
1395
+									   ord($var{$c + 1}),
1396
+									   ord($var{$c + 2}),
1397
+									   ord($var{$c + 3}),
1398
+									   ord($var{$c + 4}));
1399
+						  $c += 4;
1400
+						  $utf16 = $this->json_utf82utf16($char);
1401
+						  $ascii .= sprintf('\u%04s', bin2hex($utf16));
1402
+						  break;
1403
+
1404
+					  case (($ord_var_c & 0xFE) == 0xFC):
1405
+						  // characters U-04000000 - U-7FFFFFFF, mask 1111110X
1406
+						  // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1407
+						  $char = pack('C*', $ord_var_c,
1408
+									   ord($var{$c + 1}),
1409
+									   ord($var{$c + 2}),
1410
+									   ord($var{$c + 3}),
1411
+									   ord($var{$c + 4}),
1412
+									   ord($var{$c + 5}));
1413
+						  $c += 5;
1414
+						  $utf16 = $this->json_utf82utf16($char);
1415
+						  $ascii .= sprintf('\u%04s', bin2hex($utf16));
1416
+						  break;
1417
+				  }
1418
+			  }
1419
+
1420
+			  return '"'.$ascii.'"';
1421
+
1422
+		  case 'array':
1423
+			 /*
1424 1424
               * As per JSON spec if any array key is not an integer
1425 1425
               * we must treat the the whole array as an object. We
1426 1426
               * also try to catch a sparsely populated associative
@@ -1438,63 +1438,63 @@  discard block
 block discarded – undo
1438 1438
               * bracket notation.
1439 1439
               */
1440 1440
 
1441
-              // treat as a JSON object
1442
-              if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
1441
+			  // treat as a JSON object
1442
+			  if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
1443 1443
                   
1444
-                  $this->json_objectStack[] = $var;
1444
+				  $this->json_objectStack[] = $var;
1445 1445
 
1446
-                  $properties = array_map(array($this, 'json_name_value'),
1447
-                                          array_keys($var),
1448
-                                          array_values($var));
1446
+				  $properties = array_map(array($this, 'json_name_value'),
1447
+										  array_keys($var),
1448
+										  array_values($var));
1449 1449
 
1450
-                  array_pop($this->json_objectStack);
1450
+				  array_pop($this->json_objectStack);
1451 1451
 
1452
-                  foreach($properties as $property) {
1453
-                      if($property instanceof Exception) {
1454
-                          return $property;
1455
-                      }
1456
-                  }
1452
+				  foreach($properties as $property) {
1453
+					  if($property instanceof Exception) {
1454
+						  return $property;
1455
+					  }
1456
+				  }
1457 1457
 
1458
-                  return '{' . join(',', $properties) . '}';
1459
-              }
1458
+				  return '{' . join(',', $properties) . '}';
1459
+			  }
1460 1460
 
1461
-              $this->json_objectStack[] = $var;
1461
+			  $this->json_objectStack[] = $var;
1462 1462
 
1463
-              // treat it like a regular array
1464
-              $elements = array_map(array($this, 'json_encode'), $var);
1463
+			  // treat it like a regular array
1464
+			  $elements = array_map(array($this, 'json_encode'), $var);
1465 1465
 
1466
-              array_pop($this->json_objectStack);
1466
+			  array_pop($this->json_objectStack);
1467 1467
 
1468
-              foreach($elements as $element) {
1469
-                  if($element instanceof Exception) {
1470
-                      return $element;
1471
-                  }
1472
-              }
1468
+			  foreach($elements as $element) {
1469
+				  if($element instanceof Exception) {
1470
+					  return $element;
1471
+				  }
1472
+			  }
1473 1473
 
1474
-              return '[' . join(',', $elements) . ']';
1474
+			  return '[' . join(',', $elements) . ']';
1475 1475
 
1476
-          case 'object':
1477
-              $vars = self::encodeObject($var);
1476
+		  case 'object':
1477
+			  $vars = self::encodeObject($var);
1478 1478
 
1479
-              $this->json_objectStack[] = $var;
1479
+			  $this->json_objectStack[] = $var;
1480 1480
 
1481
-              $properties = array_map(array($this, 'json_name_value'),
1482
-                                      array_keys($vars),
1483
-                                      array_values($vars));
1481
+			  $properties = array_map(array($this, 'json_name_value'),
1482
+									  array_keys($vars),
1483
+									  array_values($vars));
1484 1484
 
1485
-              array_pop($this->json_objectStack);
1485
+			  array_pop($this->json_objectStack);
1486 1486
               
1487
-              foreach($properties as $property) {
1488
-                  if($property instanceof Exception) {
1489
-                      return $property;
1490
-                  }
1491
-              }
1487
+			  foreach($properties as $property) {
1488
+				  if($property instanceof Exception) {
1489
+					  return $property;
1490
+				  }
1491
+			  }
1492 1492
                      
1493
-              return '{' . join(',', $properties) . '}';
1493
+			  return '{' . join(',', $properties) . '}';
1494 1494
 
1495
-          default:
1496
-              return null;
1497
-      }
1495
+		  default:
1496
+			  return null;
1497
+	  }
1498 1498
   }
1499 1499
 
1500 1500
  /**
@@ -1508,22 +1508,22 @@  discard block
 block discarded – undo
1508 1508
   */
1509 1509
   private function json_name_value($name, $value)
1510 1510
   {
1511
-      // Encoding the $GLOBALS PHP array causes an infinite loop
1512
-      // if the recursion is not reset here as it contains
1513
-      // a reference to itself. This is the only way I have come up
1514
-      // with to stop infinite recursion in this case.
1515
-      if($name=='GLOBALS'
1516
-         && is_array($value)
1517
-         && array_key_exists('GLOBALS',$value)) {
1518
-        $value['GLOBALS'] = '** Recursion **';
1519
-      }
1511
+	  // Encoding the $GLOBALS PHP array causes an infinite loop
1512
+	  // if the recursion is not reset here as it contains
1513
+	  // a reference to itself. This is the only way I have come up
1514
+	  // with to stop infinite recursion in this case.
1515
+	  if($name=='GLOBALS'
1516
+		 && is_array($value)
1517
+		 && array_key_exists('GLOBALS',$value)) {
1518
+		$value['GLOBALS'] = '** Recursion **';
1519
+	  }
1520 1520
     
1521
-      $encoded_value = $this->json_encode($value);
1521
+	  $encoded_value = $this->json_encode($value);
1522 1522
 
1523
-      if($encoded_value instanceof Exception) {
1524
-          return $encoded_value;
1525
-      }
1523
+	  if($encoded_value instanceof Exception) {
1524
+		  return $encoded_value;
1525
+	  }
1526 1526
 
1527
-      return $this->json_encode(strval($name)) . ':' . $encoded_value;
1527
+	  return $this->json_encode(strval($name)) . ':' . $encoded_value;
1528 1528
   }
1529 1529
 }
Please login to merge, or discard this patch.
Spacing   +185 added lines, -185 removed lines patch added patch discarded remove patch
@@ -229,7 +229,7 @@  discard block
 block discarded – undo
229 229
    * @return array
230 230
    */  
231 231
   public function __sleep() {
232
-    return array('options','objectFilters','enabled');
232
+    return array('options', 'objectFilters', 'enabled');
233 233
   }
234 234
     
235 235
   /**
@@ -238,8 +238,8 @@  discard block
 block discarded – undo
238 238
    * @param boolean $AutoCreate
239 239
    * @return FirePHP
240 240
    */
241
-  public static function getInstance($AutoCreate=false) {
242
-    if($AutoCreate===true && !self::$instance) {
241
+  public static function getInstance($AutoCreate = false) {
242
+    if ($AutoCreate === true && !self::$instance) {
243 243
       self::init();
244 244
     }
245 245
     return self::$instance;
@@ -299,7 +299,7 @@  discard block
 block discarded – undo
299 299
    * @return void
300 300
    */
301 301
   public function setOptions($Options) {
302
-    $this->options = array_merge($this->options,$Options);
302
+    $this->options = array_merge($this->options, $Options);
303 303
   }
304 304
   
305 305
   /**
@@ -318,7 +318,7 @@  discard block
 block discarded – undo
318 318
    * 
319 319
    * @return mixed Returns a string containing the previously defined error handler (if any)
320 320
    */
321
-  public function registerErrorHandler($throwErrorExceptions=true)
321
+  public function registerErrorHandler($throwErrorExceptions = true)
322 322
   {
323 323
     //NOTE: The following errors will not be caught by this error handler:
324 324
     //      E_ERROR, E_PARSE, E_CORE_ERROR,
@@ -327,7 +327,7 @@  discard block
 block discarded – undo
327 327
     
328 328
     $this->throwErrorExceptions = $throwErrorExceptions;
329 329
     
330
-    return set_error_handler(array($this,'errorHandler'));     
330
+    return set_error_handler(array($this, 'errorHandler'));     
331 331
   }
332 332
 
333 333
   /**
@@ -351,7 +351,7 @@  discard block
 block discarded – undo
351 351
     if (error_reporting() & $errno) {
352 352
 
353 353
       $exception = new ErrorException($errstr, 0, $errno, $errfile, $errline);
354
-      if($this->throwErrorExceptions) {
354
+      if ($this->throwErrorExceptions) {
355 355
         throw $exception;
356 356
       } else {
357 357
         $this->fb($exception);
@@ -368,7 +368,7 @@  discard block
 block discarded – undo
368 368
    */
369 369
   public function registerExceptionHandler()
370 370
   {
371
-    return set_exception_handler(array($this,'exceptionHandler'));     
371
+    return set_exception_handler(array($this, 'exceptionHandler'));     
372 372
   }
373 373
   
374 374
   /**
@@ -397,12 +397,12 @@  discard block
 block discarded – undo
397 397
    * @param boolean $throwAssertionExceptions
398 398
    * @return mixed Returns the original setting or FALSE on errors
399 399
    */
400
-  public function registerAssertionHandler($convertAssertionErrorsToExceptions=true, $throwAssertionExceptions=false)
400
+  public function registerAssertionHandler($convertAssertionErrorsToExceptions = true, $throwAssertionExceptions = false)
401 401
   {
402 402
     $this->convertAssertionErrorsToExceptions = $convertAssertionErrorsToExceptions;
403 403
     $this->throwAssertionExceptions = $throwAssertionExceptions;
404 404
     
405
-    if($throwAssertionExceptions && !$convertAssertionErrorsToExceptions) {
405
+    if ($throwAssertionExceptions && !$convertAssertionErrorsToExceptions) {
406 406
       throw $this->newException('Cannot throw assertion exceptions as assertion errors are not being converted to exceptions!');
407 407
     }
408 408
     
@@ -421,11 +421,11 @@  discard block
 block discarded – undo
421 421
   public function assertionHandler($file, $line, $code)
422 422
   {
423 423
 
424
-    if($this->convertAssertionErrorsToExceptions) {
424
+    if ($this->convertAssertionErrorsToExceptions) {
425 425
       
426
-      $exception = new ErrorException('Assertion Failed - Code[ '.$code.' ]', 0, null, $file, $line);
426
+      $exception = new ErrorException('Assertion Failed - Code[ ' . $code . ' ]', 0, null, $file, $line);
427 427
 
428
-      if($this->throwAssertionExceptions) {
428
+      if ($this->throwAssertionExceptions) {
429 429
         throw $exception;
430 430
       } else {
431 431
         $this->fb($exception);
@@ -433,7 +433,7 @@  discard block
 block discarded – undo
433 433
     
434 434
     } else {
435 435
     
436
-      $this->fb($code, 'Assertion Failed', FirePHP::ERROR, array('File'=>$file,'Line'=>$line));
436
+      $this->fb($code, 'Assertion Failed', FirePHP::ERROR, array('File'=>$file, 'Line'=>$line));
437 437
     
438 438
     }
439 439
   }  
@@ -470,18 +470,18 @@  discard block
 block discarded – undo
470 470
    * @return true
471 471
    * @throws Exception
472 472
    */
473
-  public function group($Name, $Options=null) {
473
+  public function group($Name, $Options = null) {
474 474
     
475
-    if(!$Name) {
475
+    if (!$Name) {
476 476
       throw $this->newException('You must specify a label for the group!');
477 477
     }
478 478
     
479
-    if($Options) {
480
-      if(!is_array($Options)) {
479
+    if ($Options) {
480
+      if (!is_array($Options)) {
481 481
         throw $this->newException('Options must be defined as an array!');
482 482
       }
483
-      if(array_key_exists('Collapsed', $Options)) {
484
-        $Options['Collapsed'] = ($Options['Collapsed'])?'true':'false';
483
+      if (array_key_exists('Collapsed', $Options)) {
484
+        $Options['Collapsed'] = ($Options['Collapsed']) ? 'true' : 'false';
485 485
       }
486 486
     }
487 487
     
@@ -507,7 +507,7 @@  discard block
 block discarded – undo
507 507
    * @return true
508 508
    * @throws Exception
509 509
    */
510
-  public function log($Object, $Label=null) {
510
+  public function log($Object, $Label = null) {
511 511
     return $this->fb($Object, $Label, FirePHP::LOG);
512 512
   } 
513 513
 
@@ -520,7 +520,7 @@  discard block
 block discarded – undo
520 520
    * @return true
521 521
    * @throws Exception
522 522
    */
523
-  public function info($Object, $Label=null) {
523
+  public function info($Object, $Label = null) {
524 524
     return $this->fb($Object, $Label, FirePHP::INFO);
525 525
   } 
526 526
 
@@ -533,7 +533,7 @@  discard block
 block discarded – undo
533 533
    * @return true
534 534
    * @throws Exception
535 535
    */
536
-  public function warn($Object, $Label=null) {
536
+  public function warn($Object, $Label = null) {
537 537
     return $this->fb($Object, $Label, FirePHP::WARN);
538 538
   } 
539 539
 
@@ -546,7 +546,7 @@  discard block
 block discarded – undo
546 546
    * @return true
547 547
    * @throws Exception
548 548
    */
549
-  public function error($Object, $Label=null) {
549
+  public function error($Object, $Label = null) {
550 550
     return $this->fb($Object, $Label, FirePHP::ERROR);
551 551
   } 
552 552
 
@@ -595,8 +595,8 @@  discard block
 block discarded – undo
595 595
    */
596 596
   public function detectClientExtension() {
597 597
     /* Check if FirePHP is installed on client */
598
-    if(!@preg_match_all('/\sFirePHP\/([\.|\d]*)\s?/si',$this->getUserAgent(),$m) ||
599
-       !version_compare($m[1][0],'0.0.6','>=')) {
598
+    if (!@preg_match_all('/\sFirePHP\/([\.|\d]*)\s?/si', $this->getUserAgent(), $m) ||
599
+       !version_compare($m[1][0], '0.0.6', '>=')) {
600 600
       return false;
601 601
     }
602 602
     return true;    
@@ -612,17 +612,17 @@  discard block
 block discarded – undo
612 612
    */
613 613
   public function fb($Object) {
614 614
   
615
-    if(!$this->enabled) {
615
+    if (!$this->enabled) {
616 616
       return false;
617 617
     }
618 618
   
619 619
     if (headers_sent($filename, $linenum)) {
620 620
       // If we are logging from within the exception handler we cannot throw another exception
621
-      if($this->inExceptionHandler) {
621
+      if ($this->inExceptionHandler) {
622 622
         // Simply echo the error out to the page
623
-        echo '<div style="border: 2px solid red; font-family: Arial; font-size: 12px; background-color: lightgray; padding: 5px;"><span style="color: red; font-weight: bold;">FirePHP ERROR:</span> Headers already sent in <b>'.$filename.'</b> on line <b>'.$linenum.'</b>. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.</div>';
623
+        echo '<div style="border: 2px solid red; font-family: Arial; font-size: 12px; background-color: lightgray; padding: 5px;"><span style="color: red; font-weight: bold;">FirePHP ERROR:</span> Headers already sent in <b>' . $filename . '</b> on line <b>' . $linenum . '</b>. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.</div>';
624 624
       } else {
625
-        throw $this->newException('Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.');
625
+        throw $this->newException('Headers already sent in ' . $filename . ' on line ' . $linenum . '. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.');
626 626
       }
627 627
     }
628 628
   
@@ -630,10 +630,10 @@  discard block
 block discarded – undo
630 630
     $Label = null;
631 631
     $Options = array();
632 632
   
633
-    if(func_num_args()==1) {
633
+    if (func_num_args() == 1) {
634 634
     } else
635
-    if(func_num_args()==2) {
636
-      switch(func_get_arg(1)) {
635
+    if (func_num_args() == 2) {
636
+      switch (func_get_arg(1)) {
637 637
         case self::LOG:
638 638
         case self::INFO:
639 639
         case self::WARN:
@@ -651,11 +651,11 @@  discard block
 block discarded – undo
651 651
           break;
652 652
       }
653 653
     } else
654
-    if(func_num_args()==3) {
654
+    if (func_num_args() == 3) {
655 655
       $Type = func_get_arg(2);
656 656
       $Label = func_get_arg(1);
657 657
     } else
658
-    if(func_num_args()==4) {
658
+    if (func_num_args() == 4) {
659 659
       $Type = func_get_arg(2);
660 660
       $Label = func_get_arg(1);
661 661
       $Options = func_get_arg(3);
@@ -664,27 +664,27 @@  discard block
 block discarded – undo
664 664
     }
665 665
   
666 666
   
667
-    if(!$this->detectClientExtension()) {
667
+    if (!$this->detectClientExtension()) {
668 668
       return false;
669 669
     }
670 670
   
671 671
     $meta = array();
672 672
     $skipFinalObjectEncode = false;
673 673
   
674
-    if($Object instanceof Exception) {
674
+    if ($Object instanceof Exception) {
675 675
 
676 676
       $meta['file'] = $this->_escapeTraceFile($Object->getFile());
677 677
       $meta['line'] = $Object->getLine();
678 678
       
679 679
       $trace = $Object->getTrace();
680
-      if($Object instanceof ErrorException
680
+      if ($Object instanceof ErrorException
681 681
          && isset($trace[0]['function'])
682
-         && $trace[0]['function']=='errorHandler'
682
+         && $trace[0]['function'] == 'errorHandler'
683 683
          && isset($trace[0]['class'])
684
-         && $trace[0]['class']=='FirePHP') {
684
+         && $trace[0]['class'] == 'FirePHP') {
685 685
            
686 686
         $severity = false;
687
-        switch($Object->getSeverity()) {
687
+        switch ($Object->getSeverity()) {
688 688
           case E_WARNING: $severity = 'E_WARNING'; break;
689 689
           case E_NOTICE: $severity = 'E_NOTICE'; break;
690 690
           case E_USER_ERROR: $severity = 'E_USER_ERROR'; break;
@@ -697,11 +697,11 @@  discard block
 block discarded – undo
697 697
         }
698 698
            
699 699
         $Object = array('Class'=>get_class($Object),
700
-                        'Message'=>$severity.': '.$Object->getMessage(),
700
+                        'Message'=>$severity . ': ' . $Object->getMessage(),
701 701
                         'File'=>$this->_escapeTraceFile($Object->getFile()),
702 702
                         'Line'=>$Object->getLine(),
703 703
                         'Type'=>'trigger',
704
-                        'Trace'=>$this->_escapeTrace(array_splice($trace,2)));
704
+                        'Trace'=>$this->_escapeTrace(array_splice($trace, 2)));
705 705
         $skipFinalObjectEncode = true;
706 706
       } else {
707 707
         $Object = array('Class'=>get_class($Object),
@@ -715,49 +715,49 @@  discard block
 block discarded – undo
715 715
       $Type = self::EXCEPTION;
716 716
       
717 717
     } else
718
-    if($Type==self::TRACE) {
718
+    if ($Type == self::TRACE) {
719 719
       
720 720
       $trace = debug_backtrace();
721
-      if(!$trace) return false;
722
-      for( $i=0 ; $i<sizeof($trace) ; $i++ ) {
721
+      if (!$trace) return false;
722
+      for ($i = 0; $i < sizeof($trace); $i++) {
723 723
 
724
-        if(isset($trace[$i]['class'])
724
+        if (isset($trace[$i]['class'])
725 725
            && isset($trace[$i]['file'])
726
-           && ($trace[$i]['class']=='FirePHP'
727
-               || $trace[$i]['class']=='FB')
728
-           && (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
729
-               || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
726
+           && ($trace[$i]['class'] == 'FirePHP'
727
+               || $trace[$i]['class'] == 'FB')
728
+           && (substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php'
729
+               || substr($this->_standardizePath($trace[$i]['file']), -29, 29) == 'FirePHPCore/FirePHP.class.php')) {
730 730
           /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
731 731
         } else
732
-        if(isset($trace[$i]['class'])
733
-           && isset($trace[$i+1]['file'])
734
-           && $trace[$i]['class']=='FirePHP'
735
-           && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
732
+        if (isset($trace[$i]['class'])
733
+           && isset($trace[$i + 1]['file'])
734
+           && $trace[$i]['class'] == 'FirePHP'
735
+           && substr($this->_standardizePath($trace[$i + 1]['file']), -18, 18) == 'FirePHPCore/fb.php') {
736 736
           /* Skip fb() */
737 737
         } else
738
-        if($trace[$i]['function']=='fb'
739
-           || $trace[$i]['function']=='trace'
740
-           || $trace[$i]['function']=='send') {
741
-          $Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'',
742
-                          'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'',
743
-                          'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'',
738
+        if ($trace[$i]['function'] == 'fb'
739
+           || $trace[$i]['function'] == 'trace'
740
+           || $trace[$i]['function'] == 'send') {
741
+          $Object = array('Class'=>isset($trace[$i]['class']) ? $trace[$i]['class'] : '',
742
+                          'Type'=>isset($trace[$i]['type']) ? $trace[$i]['type'] : '',
743
+                          'Function'=>isset($trace[$i]['function']) ? $trace[$i]['function'] : '',
744 744
                           'Message'=>$trace[$i]['args'][0],
745
-                          'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'',
746
-                          'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'',
747
-                          'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'',
748
-                          'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1)));
745
+                          'File'=>isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : '',
746
+                          'Line'=>isset($trace[$i]['line']) ? $trace[$i]['line'] : '',
747
+                          'Args'=>isset($trace[$i]['args']) ? $this->encodeObject($trace[$i]['args']) : '',
748
+                          'Trace'=>$this->_escapeTrace(array_splice($trace, $i + 1)));
749 749
 
750 750
           $skipFinalObjectEncode = true;
751
-          $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
752
-          $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
751
+          $meta['file'] = isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : '';
752
+          $meta['line'] = isset($trace[$i]['line']) ? $trace[$i]['line'] : '';
753 753
           break;
754 754
         }
755 755
       }
756 756
 
757 757
     } else
758
-    if($Type==self::TABLE) {
758
+    if ($Type == self::TABLE) {
759 759
       
760
-      if(isset($Object[0]) && is_string($Object[0])) {
760
+      if (isset($Object[0]) && is_string($Object[0])) {
761 761
         $Object[1] = $this->encodeTable($Object[1]);
762 762
       } else {
763 763
         $Object = $this->encodeTable($Object);
@@ -766,44 +766,44 @@  discard block
 block discarded – undo
766 766
       $skipFinalObjectEncode = true;
767 767
       
768 768
     } else
769
-    if($Type==self::GROUP_START) {
769
+    if ($Type == self::GROUP_START) {
770 770
       
771
-      if(!$Label) {
771
+      if (!$Label) {
772 772
         throw $this->newException('You must specify a label for the group!');
773 773
       }
774 774
       
775 775
     } else {
776
-      if($Type===null) {
776
+      if ($Type === null) {
777 777
         $Type = self::LOG;
778 778
       }
779 779
     }
780 780
     
781
-    if($this->options['includeLineNumbers']) {
782
-      if(!isset($meta['file']) || !isset($meta['line'])) {
781
+    if ($this->options['includeLineNumbers']) {
782
+      if (!isset($meta['file']) || !isset($meta['line'])) {
783 783
 
784 784
         $trace = debug_backtrace();
785
-        for( $i=0 ; $trace && $i<sizeof($trace) ; $i++ ) {
785
+        for ($i = 0; $trace && $i < sizeof($trace); $i++) {
786 786
   
787
-          if(isset($trace[$i]['class'])
787
+          if (isset($trace[$i]['class'])
788 788
              && isset($trace[$i]['file'])
789
-             && ($trace[$i]['class']=='FirePHP'
790
-                 || $trace[$i]['class']=='FB')
791
-             && (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
792
-                 || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
789
+             && ($trace[$i]['class'] == 'FirePHP'
790
+                 || $trace[$i]['class'] == 'FB')
791
+             && (substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php'
792
+                 || substr($this->_standardizePath($trace[$i]['file']), -29, 29) == 'FirePHPCore/FirePHP.class.php')) {
793 793
             /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
794 794
           } else
795
-          if(isset($trace[$i]['class'])
796
-             && isset($trace[$i+1]['file'])
797
-             && $trace[$i]['class']=='FirePHP'
798
-             && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
795
+          if (isset($trace[$i]['class'])
796
+             && isset($trace[$i + 1]['file'])
797
+             && $trace[$i]['class'] == 'FirePHP'
798
+             && substr($this->_standardizePath($trace[$i + 1]['file']), -18, 18) == 'FirePHPCore/fb.php') {
799 799
             /* Skip fb() */
800 800
           } else
801
-          if(isset($trace[$i]['file'])
802
-             && substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') {
801
+          if (isset($trace[$i]['file'])
802
+             && substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php') {
803 803
             /* Skip FB::fb() */
804 804
           } else {
805
-            $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
806
-            $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
805
+            $meta['file'] = isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : '';
806
+            $meta['line'] = isset($trace[$i]['line']) ? $trace[$i]['line'] : '';
807 807
             break;
808 808
           }
809 809
         }      
@@ -814,49 +814,49 @@  discard block
 block discarded – undo
814 814
       unset($meta['line']);
815 815
     }
816 816
 
817
-  	$this->setHeader('X-Wf-Protocol-1','http://meta.wildfirehq.org/Protocol/JsonStream/0.2');
818
-  	$this->setHeader('X-Wf-1-Plugin-1','http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/'.self::VERSION);
817
+  	$this->setHeader('X-Wf-Protocol-1', 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2');
818
+  	$this->setHeader('X-Wf-1-Plugin-1', 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/' . self::VERSION);
819 819
  
820 820
     $structure_index = 1;
821
-    if($Type==self::DUMP) {
821
+    if ($Type == self::DUMP) {
822 822
       $structure_index = 2;
823
-    	$this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');
823
+    	$this->setHeader('X-Wf-1-Structure-2', 'http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');
824 824
     } else {
825
-    	$this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
825
+    	$this->setHeader('X-Wf-1-Structure-1', 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
826 826
     }
827 827
   
828
-    if($Type==self::DUMP) {
829
-    	$msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}';
828
+    if ($Type == self::DUMP) {
829
+    	$msg = '{"' . $Label . '":' . $this->jsonEncode($Object, $skipFinalObjectEncode) . '}';
830 830
     } else {
831 831
       $msg_meta = $Options;
832 832
       $msg_meta['Type'] = $Type;
833
-      if($Label!==null) {
833
+      if ($Label !== null) {
834 834
         $msg_meta['Label'] = $Label;
835 835
       }
836
-      if(isset($meta['file']) && !isset($msg_meta['File'])) {
836
+      if (isset($meta['file']) && !isset($msg_meta['File'])) {
837 837
         $msg_meta['File'] = $meta['file'];
838 838
       }
839
-      if(isset($meta['line']) && !isset($msg_meta['Line'])) {
839
+      if (isset($meta['line']) && !isset($msg_meta['Line'])) {
840 840
         $msg_meta['Line'] = $meta['line'];
841 841
       }
842
-    	$msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']';
842
+    	$msg = '[' . $this->jsonEncode($msg_meta) . ',' . $this->jsonEncode($Object, $skipFinalObjectEncode) . ']';
843 843
     }
844 844
     
845
-    $parts = explode("\n",chunk_split($msg, 5000, "\n"));
845
+    $parts = explode("\n", chunk_split($msg, 5000, "\n"));
846 846
 
847
-    for( $i=0 ; $i<count($parts) ; $i++) {
847
+    for ($i = 0; $i < count($parts); $i++) {
848 848
         
849 849
         $part = $parts[$i];
850 850
         if ($part) {
851 851
             
852
-            if(count($parts)>2) {
852
+            if (count($parts) > 2) {
853 853
               // Message needs to be split into multiple parts
854
-              $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
855
-                               (($i==0)?strlen($msg):'')
854
+              $this->setHeader('X-Wf-1-' . $structure_index . '-' . '1-' . $this->messageIndex,
855
+                               (($i == 0) ? strlen($msg) : '')
856 856
                                . '|' . $part . '|'
857
-                               . (($i<count($parts)-2)?'\\':''));
857
+                               . (($i < count($parts) - 2) ? '\\' : ''));
858 858
             } else {
859
-              $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
859
+              $this->setHeader('X-Wf-1-' . $structure_index . '-' . '1-' . $this->messageIndex,
860 860
                                strlen($part) . '|' . $part . '|');
861 861
             }
862 862
             
@@ -868,7 +868,7 @@  discard block
 block discarded – undo
868 868
         }
869 869
     }
870 870
 
871
-  	$this->setHeader('X-Wf-1-Index',$this->messageIndex-1);
871
+  	$this->setHeader('X-Wf-1-Index', $this->messageIndex - 1);
872 872
 
873 873
     return true;
874 874
   }
@@ -880,7 +880,7 @@  discard block
 block discarded – undo
880 880
    * @return string
881 881
    */
882 882
   protected function _standardizePath($Path) {
883
-    return preg_replace('/\\\\+/','/',$Path);    
883
+    return preg_replace('/\\\\+/', '/', $Path);    
884 884
   }
885 885
   
886 886
   /**
@@ -890,12 +890,12 @@  discard block
 block discarded – undo
890 890
    * @return array
891 891
    */
892 892
   protected function _escapeTrace($Trace) {
893
-    if(!$Trace) return $Trace;
894
-    for( $i=0 ; $i<sizeof($Trace) ; $i++ ) {
895
-      if(isset($Trace[$i]['file'])) {
893
+    if (!$Trace) return $Trace;
894
+    for ($i = 0; $i < sizeof($Trace); $i++) {
895
+      if (isset($Trace[$i]['file'])) {
896 896
         $Trace[$i]['file'] = $this->_escapeTraceFile($Trace[$i]['file']);
897 897
       }
898
-      if(isset($Trace[$i]['args'])) {
898
+      if (isset($Trace[$i]['args'])) {
899 899
         $Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']);
900 900
       }
901 901
     }
@@ -910,10 +910,10 @@  discard block
 block discarded – undo
910 910
    */
911 911
   protected function _escapeTraceFile($File) {
912 912
     /* Check if we have a windows filepath */
913
-    if(strpos($File,'\\')) {
913
+    if (strpos($File, '\\')) {
914 914
       /* First strip down to single \ */
915 915
       
916
-      $file = preg_replace('/\\\\+/','\\',$File);
916
+      $file = preg_replace('/\\\\+/', '\\', $File);
917 917
       
918 918
       return $file;
919 919
     }
@@ -927,7 +927,7 @@  discard block
 block discarded – undo
927 927
    * @param string_type $Value
928 928
    */
929 929
   protected function setHeader($Name, $Value) {
930
-    return header($Name.': '.$Value);
930
+    return header($Name . ': ' . $Value);
931 931
   }
932 932
 
933 933
   /**
@@ -936,7 +936,7 @@  discard block
 block discarded – undo
936 936
    * @return string|false
937 937
    */
938 938
   protected function getUserAgent() {
939
-    if(!isset($_SERVER['HTTP_USER_AGENT'])) return false;
939
+    if (!isset($_SERVER['HTTP_USER_AGENT'])) return false;
940 940
     return $_SERVER['HTTP_USER_AGENT'];
941 941
   }
942 942
 
@@ -958,14 +958,14 @@  discard block
 block discarded – undo
958 958
    * @param object $Object The object to be encoded
959 959
    * @return string The JSON string
960 960
    */
961
-  public function jsonEncode($Object, $skipObjectEncode=false)
961
+  public function jsonEncode($Object, $skipObjectEncode = false)
962 962
   {
963
-    if(!$skipObjectEncode) {
963
+    if (!$skipObjectEncode) {
964 964
       $Object = $this->encodeObject($Object);
965 965
     }
966 966
     
967
-    if(function_exists('json_encode')
968
-       && $this->options['useNativeJsonEncode']!=false) {
967
+    if (function_exists('json_encode')
968
+       && $this->options['useNativeJsonEncode'] != false) {
969 969
 
970 970
       return json_encode($Object);
971 971
     } else {
@@ -981,15 +981,15 @@  discard block
 block discarded – undo
981 981
    */  
982 982
   protected function encodeTable($Table) {
983 983
     
984
-    if(!$Table) return $Table;
984
+    if (!$Table) return $Table;
985 985
     
986 986
     $new_table = array();
987
-    foreach($Table as $row) {
987
+    foreach ($Table as $row) {
988 988
   
989
-      if(is_array($row)) {
989
+      if (is_array($row)) {
990 990
         $new_row = array();
991 991
         
992
-        foreach($row as $item) {
992
+        foreach ($row as $item) {
993 993
           $new_row[] = $this->encodeObject($item);
994 994
         }
995 995
         
@@ -1014,18 +1014,18 @@  discard block
 block discarded – undo
1014 1014
 
1015 1015
     if (is_resource($Object)) {
1016 1016
 
1017
-      return '** '.(string)$Object.' **';
1017
+      return '** ' . (string) $Object . ' **';
1018 1018
 
1019 1019
     } else    
1020 1020
     if (is_object($Object)) {
1021 1021
 
1022 1022
         if ($ObjectDepth > $this->options['maxObjectDepth']) {
1023
-          return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **';
1023
+          return '** Max Object Depth (' . $this->options['maxObjectDepth'] . ') **';
1024 1024
         }
1025 1025
         
1026 1026
         foreach ($this->objectStack as $refVal) {
1027 1027
             if ($refVal === $Object) {
1028
-                return '** Recursion ('.get_class($Object).') **';
1028
+                return '** Recursion (' . get_class($Object) . ') **';
1029 1029
             }
1030 1030
         }
1031 1031
         array_push($this->objectStack, $Object);
@@ -1035,45 +1035,45 @@  discard block
 block discarded – undo
1035 1035
 
1036 1036
         $reflectionClass = new ReflectionClass($class);  
1037 1037
         $properties = array();
1038
-        foreach( $reflectionClass->getProperties() as $property) {
1038
+        foreach ($reflectionClass->getProperties() as $property) {
1039 1039
           $properties[$property->getName()] = $property;
1040 1040
         }
1041 1041
             
1042
-        $members = (array)$Object;
1042
+        $members = (array) $Object;
1043 1043
             
1044
-        foreach( $properties as $raw_name => $property ) {
1044
+        foreach ($properties as $raw_name => $property) {
1045 1045
           
1046 1046
           $name = $raw_name;
1047
-          if($property->isStatic()) {
1048
-            $name = 'static:'.$name;
1047
+          if ($property->isStatic()) {
1048
+            $name = 'static:' . $name;
1049 1049
           }
1050
-          if($property->isPublic()) {
1051
-            $name = 'public:'.$name;
1050
+          if ($property->isPublic()) {
1051
+            $name = 'public:' . $name;
1052 1052
           } else
1053
-          if($property->isPrivate()) {
1054
-            $name = 'private:'.$name;
1055
-            $raw_name = "\0".$class."\0".$raw_name;
1053
+          if ($property->isPrivate()) {
1054
+            $name = 'private:' . $name;
1055
+            $raw_name = "\0" . $class . "\0" . $raw_name;
1056 1056
           } else
1057
-          if($property->isProtected()) {
1058
-            $name = 'protected:'.$name;
1059
-            $raw_name = "\0".'*'."\0".$raw_name;
1057
+          if ($property->isProtected()) {
1058
+            $name = 'protected:' . $name;
1059
+            $raw_name = "\0" . '*' . "\0" . $raw_name;
1060 1060
           }
1061 1061
           
1062
-          if(!(isset($this->objectFilters[$class_lower])
1062
+          if (!(isset($this->objectFilters[$class_lower])
1063 1063
                && is_array($this->objectFilters[$class_lower])
1064
-               && in_array($raw_name,$this->objectFilters[$class_lower]))) {
1064
+               && in_array($raw_name, $this->objectFilters[$class_lower]))) {
1065 1065
 
1066
-            if(array_key_exists($raw_name,$members)
1066
+            if (array_key_exists($raw_name, $members)
1067 1067
                && !$property->isStatic()) {
1068 1068
               
1069 1069
               $return[$name] = $this->encodeObject($members[$raw_name], $ObjectDepth + 1, 1);      
1070 1070
             
1071 1071
             } else {
1072
-              if(method_exists($property,'setAccessible')) {
1072
+              if (method_exists($property, 'setAccessible')) {
1073 1073
                 $property->setAccessible(true);
1074 1074
                 $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
1075 1075
               } else
1076
-              if($property->isPublic()) {
1076
+              if ($property->isPublic()) {
1077 1077
                 $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
1078 1078
               } else {
1079 1079
                 $return[$name] = '** Need PHP 5.3 to get value **';
@@ -1086,7 +1086,7 @@  discard block
 block discarded – undo
1086 1086
         
1087 1087
         // Include all members that are not defined in the class
1088 1088
         // but exist in the object
1089
-        foreach( $members as $raw_name => $value ) {
1089
+        foreach ($members as $raw_name => $value) {
1090 1090
           
1091 1091
           $name = $raw_name;
1092 1092
           
@@ -1095,12 +1095,12 @@  discard block
 block discarded – undo
1095 1095
             $name = $parts[2];
1096 1096
           }
1097 1097
           
1098
-          if(!isset($properties[$name])) {
1099
-            $name = 'undeclared:'.$name;
1098
+          if (!isset($properties[$name])) {
1099
+            $name = 'undeclared:' . $name;
1100 1100
               
1101
-            if(!(isset($this->objectFilters[$class_lower])
1101
+            if (!(isset($this->objectFilters[$class_lower])
1102 1102
                  && is_array($this->objectFilters[$class_lower])
1103
-                 && in_array($raw_name,$this->objectFilters[$class_lower]))) {
1103
+                 && in_array($raw_name, $this->objectFilters[$class_lower]))) {
1104 1104
               
1105 1105
               $return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1);
1106 1106
             } else {
@@ -1114,7 +1114,7 @@  discard block
 block discarded – undo
1114 1114
     } elseif (is_array($Object)) {
1115 1115
 
1116 1116
         if ($ArrayDepth > $this->options['maxArrayDepth']) {
1117
-          return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **';
1117
+          return '** Max Array Depth (' . $this->options['maxArrayDepth'] . ') **';
1118 1118
         }
1119 1119
       
1120 1120
         foreach ($Object as $key => $val) {
@@ -1123,16 +1123,16 @@  discard block
 block discarded – undo
1123 1123
           // if the recursion is not reset here as it contains
1124 1124
           // a reference to itself. This is the only way I have come up
1125 1125
           // with to stop infinite recursion in this case.
1126
-          if($key=='GLOBALS'
1126
+          if ($key == 'GLOBALS'
1127 1127
              && is_array($val)
1128
-             && array_key_exists('GLOBALS',$val)) {
1128
+             && array_key_exists('GLOBALS', $val)) {
1129 1129
             $val['GLOBALS'] = '** Recursion (GLOBALS) **';
1130 1130
           }
1131 1131
           
1132 1132
           $return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1);
1133 1133
         }
1134 1134
     } else {
1135
-      if(self::is_utf8($Object)) {
1135
+      if (self::is_utf8($Object)) {
1136 1136
         return $Object;
1137 1137
       } else {
1138 1138
         return utf8_encode($Object);
@@ -1148,24 +1148,24 @@  discard block
 block discarded – undo
1148 1148
    * @return boolean
1149 1149
    */
1150 1150
   protected static function is_utf8($str) {
1151
-    $c=0; $b=0;
1152
-    $bits=0;
1153
-    $len=strlen($str);
1154
-    for($i=0; $i<$len; $i++){
1155
-        $c=ord($str[$i]);
1156
-        if($c > 128){
1157
-            if(($c >= 254)) return false;
1158
-            elseif($c >= 252) $bits=6;
1159
-            elseif($c >= 248) $bits=5;
1160
-            elseif($c >= 240) $bits=4;
1161
-            elseif($c >= 224) $bits=3;
1162
-            elseif($c >= 192) $bits=2;
1151
+    $c = 0; $b = 0;
1152
+    $bits = 0;
1153
+    $len = strlen($str);
1154
+    for ($i = 0; $i < $len; $i++) {
1155
+        $c = ord($str[$i]);
1156
+        if ($c > 128) {
1157
+            if (($c >= 254)) return false;
1158
+            elseif ($c >= 252) $bits = 6;
1159
+            elseif ($c >= 248) $bits = 5;
1160
+            elseif ($c >= 240) $bits = 4;
1161
+            elseif ($c >= 224) $bits = 3;
1162
+            elseif ($c >= 192) $bits = 2;
1163 1163
             else return false;
1164
-            if(($i+$bits) > $len) return false;
1165
-            while($bits > 1){
1164
+            if (($i + $bits) > $len) return false;
1165
+            while ($bits > 1) {
1166 1166
                 $i++;
1167
-                $b=ord($str[$i]);
1168
-                if($b < 128 || $b > 191) return false;
1167
+                $b = ord($str[$i]);
1168
+                if ($b < 128 || $b > 191) return false;
1169 1169
                 $bits--;
1170 1170
             }
1171 1171
         }
@@ -1250,11 +1250,11 @@  discard block
 block discarded – undo
1250 1250
   private function json_utf82utf16($utf8)
1251 1251
   {
1252 1252
       // oh please oh please oh please oh please oh please
1253
-      if(function_exists('mb_convert_encoding')) {
1253
+      if (function_exists('mb_convert_encoding')) {
1254 1254
           return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
1255 1255
       }
1256 1256
 
1257
-      switch(strlen($utf8)) {
1257
+      switch (strlen($utf8)) {
1258 1258
           case 1:
1259 1259
               // this case should never be reached, because we are in ASCII range
1260 1260
               // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
@@ -1294,8 +1294,8 @@  discard block
 block discarded – undo
1294 1294
   private function json_encode($var)
1295 1295
   {
1296 1296
     
1297
-    if(is_object($var)) {
1298
-      if(in_array($var,$this->json_objectStack)) {
1297
+    if (is_object($var)) {
1298
+      if (in_array($var, $this->json_objectStack)) {
1299 1299
         return '"** Recursion **"';
1300 1300
       }
1301 1301
     }
@@ -1348,7 +1348,7 @@  discard block
 block discarded – undo
1348 1348
                       case $ord_var_c == 0x2F:
1349 1349
                       case $ord_var_c == 0x5C:
1350 1350
                           // double quote, slash, slosh
1351
-                          $ascii .= '\\'.$var{$c};
1351
+                          $ascii .= '\\' . $var{$c};
1352 1352
                           break;
1353 1353
 
1354 1354
                       case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
@@ -1417,7 +1417,7 @@  discard block
 block discarded – undo
1417 1417
                   }
1418 1418
               }
1419 1419
 
1420
-              return '"'.$ascii.'"';
1420
+              return '"' . $ascii . '"';
1421 1421
 
1422 1422
           case 'array':
1423 1423
              /*
@@ -1449,8 +1449,8 @@  discard block
 block discarded – undo
1449 1449
 
1450 1450
                   array_pop($this->json_objectStack);
1451 1451
 
1452
-                  foreach($properties as $property) {
1453
-                      if($property instanceof Exception) {
1452
+                  foreach ($properties as $property) {
1453
+                      if ($property instanceof Exception) {
1454 1454
                           return $property;
1455 1455
                       }
1456 1456
                   }
@@ -1465,8 +1465,8 @@  discard block
 block discarded – undo
1465 1465
 
1466 1466
               array_pop($this->json_objectStack);
1467 1467
 
1468
-              foreach($elements as $element) {
1469
-                  if($element instanceof Exception) {
1468
+              foreach ($elements as $element) {
1469
+                  if ($element instanceof Exception) {
1470 1470
                       return $element;
1471 1471
                   }
1472 1472
               }
@@ -1484,8 +1484,8 @@  discard block
 block discarded – undo
1484 1484
 
1485 1485
               array_pop($this->json_objectStack);
1486 1486
               
1487
-              foreach($properties as $property) {
1488
-                  if($property instanceof Exception) {
1487
+              foreach ($properties as $property) {
1488
+                  if ($property instanceof Exception) {
1489 1489
                       return $property;
1490 1490
                   }
1491 1491
               }
@@ -1512,15 +1512,15 @@  discard block
 block discarded – undo
1512 1512
       // if the recursion is not reset here as it contains
1513 1513
       // a reference to itself. This is the only way I have come up
1514 1514
       // with to stop infinite recursion in this case.
1515
-      if($name=='GLOBALS'
1515
+      if ($name == 'GLOBALS'
1516 1516
          && is_array($value)
1517
-         && array_key_exists('GLOBALS',$value)) {
1517
+         && array_key_exists('GLOBALS', $value)) {
1518 1518
         $value['GLOBALS'] = '** Recursion **';
1519 1519
       }
1520 1520
     
1521 1521
       $encoded_value = $this->json_encode($value);
1522 1522
 
1523
-      if($encoded_value instanceof Exception) {
1523
+      if ($encoded_value instanceof Exception) {
1524 1524
           return $encoded_value;
1525 1525
       }
1526 1526
 
Please login to merge, or discard this patch.
Braces   +33 added lines, -13 removed lines patch added patch discarded remove patch
@@ -718,7 +718,9 @@  discard block
 block discarded – undo
718 718
     if($Type==self::TRACE) {
719 719
       
720 720
       $trace = debug_backtrace();
721
-      if(!$trace) return false;
721
+      if(!$trace) {
722
+      	return false;
723
+      }
722 724
       for( $i=0 ; $i<sizeof($trace) ; $i++ ) {
723 725
 
724 726
         if(isset($trace[$i]['class'])
@@ -890,7 +892,9 @@  discard block
 block discarded – undo
890 892
    * @return array
891 893
    */
892 894
   protected function _escapeTrace($Trace) {
893
-    if(!$Trace) return $Trace;
895
+    if(!$Trace) {
896
+    	return $Trace;
897
+    }
894 898
     for( $i=0 ; $i<sizeof($Trace) ; $i++ ) {
895 899
       if(isset($Trace[$i]['file'])) {
896 900
         $Trace[$i]['file'] = $this->_escapeTraceFile($Trace[$i]['file']);
@@ -936,7 +940,9 @@  discard block
 block discarded – undo
936 940
    * @return string|false
937 941
    */
938 942
   protected function getUserAgent() {
939
-    if(!isset($_SERVER['HTTP_USER_AGENT'])) return false;
943
+    if(!isset($_SERVER['HTTP_USER_AGENT'])) {
944
+    	return false;
945
+    }
940 946
     return $_SERVER['HTTP_USER_AGENT'];
941 947
   }
942 948
 
@@ -981,7 +987,9 @@  discard block
 block discarded – undo
981 987
    */  
982 988
   protected function encodeTable($Table) {
983 989
     
984
-    if(!$Table) return $Table;
990
+    if(!$Table) {
991
+    	return $Table;
992
+    }
985 993
     
986 994
     $new_table = array();
987 995
     foreach($Table as $row) {
@@ -1154,18 +1162,30 @@  discard block
 block discarded – undo
1154 1162
     for($i=0; $i<$len; $i++){
1155 1163
         $c=ord($str[$i]);
1156 1164
         if($c > 128){
1157
-            if(($c >= 254)) return false;
1158
-            elseif($c >= 252) $bits=6;
1159
-            elseif($c >= 248) $bits=5;
1160
-            elseif($c >= 240) $bits=4;
1161
-            elseif($c >= 224) $bits=3;
1162
-            elseif($c >= 192) $bits=2;
1163
-            else return false;
1164
-            if(($i+$bits) > $len) return false;
1165
+            if(($c >= 254)) {
1166
+            	return false;
1167
+            } elseif($c >= 252) {
1168
+            	$bits=6;
1169
+            } elseif($c >= 248) {
1170
+            	$bits=5;
1171
+            } elseif($c >= 240) {
1172
+            	$bits=4;
1173
+            } elseif($c >= 224) {
1174
+            	$bits=3;
1175
+            } elseif($c >= 192) {
1176
+            	$bits=2;
1177
+            } else {
1178
+            	return false;
1179
+            }
1180
+            if(($i+$bits) > $len) {
1181
+            	return false;
1182
+            }
1165 1183
             while($bits > 1){
1166 1184
                 $i++;
1167 1185
                 $b=ord($str[$i]);
1168
-                if($b < 128 || $b > 191) return false;
1186
+                if($b < 128 || $b > 191) {
1187
+                	return false;
1188
+                }
1169 1189
                 $bits--;
1170 1190
             }
1171 1191
         }
Please login to merge, or discard this patch.
libs/ftp.class.php 4 patches
Doc Comments   +25 added lines patch added patch discarded remove patch
@@ -177,6 +177,9 @@  discard block
 block discarded – undo
177 177
             return $response;
178 178
         }
179 179
 
180
+        /**
181
+         * @param string $pathname
182
+         */
180 183
         function ftp_delete($pathname)
181 184
         {
182 185
             $this->ftp_putcmd("DELE", $pathname);
@@ -187,6 +190,9 @@  discard block
 block discarded – undo
187 190
             return $response;
188 191
         }
189 192
 
193
+        /**
194
+         * @param string $pathname
195
+         */
190 196
         function ftp_rmdir($pathname)
191 197
         {
192 198
             $this->ftp_putcmd("RMD", $pathname);
@@ -197,6 +203,9 @@  discard block
 block discarded – undo
197 203
             return $response;
198 204
         }
199 205
 
206
+        /**
207
+         * @param string $pathname
208
+         */
200 209
         function ftp_mkdir($pathname)
201 210
         {
202 211
             $this->ftp_putcmd("MKD", $pathname);
@@ -358,6 +367,10 @@  discard block
 block discarded – undo
358 367
             return $response;
359 368
         }
360 369
 
370
+        /**
371
+         * @param string $remotefile
372
+         * @param string $localfile
373
+         */
361 374
         function ftp_put($remotefile, $localfile, $mode = 1)
362 375
         {
363 376
             
@@ -408,6 +421,9 @@  discard block
 block discarded – undo
408 421
             return $response;
409 422
         }
410 423
 
424
+        /**
425
+         * @param string $command
426
+         */
411 427
         function ftp_site($command)
412 428
         {
413 429
             $this->ftp_putcmd("SITE", $command);
@@ -431,6 +447,9 @@  discard block
 block discarded – undo
431 447
 
432 448
         /* Private Functions */
433 449
 
450
+        /**
451
+         * @param integer $mode
452
+         */
434 453
         function ftp_type($mode)
435 454
         {
436 455
             if ($mode) {
@@ -468,6 +487,9 @@  discard block
 block discarded – undo
468 487
             return $ip_port;
469 488
         }
470 489
 
490
+        /**
491
+         * @param string $cmd
492
+         */
471 493
         function ftp_putcmd($cmd, $arg = "")
472 494
         {
473 495
             if ($arg != "") {
@@ -536,6 +558,9 @@  discard block
 block discarded – undo
536 558
             return fclose($sock);
537 559
         }
538 560
 
561
+        /**
562
+         * @param string $ip_port
563
+         */
539 564
         function ftp_open_data_connection($ip_port)
540 565
         {
541 566
             if (!preg_match("@[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+@", $ip_port)) {
Please login to merge, or discard this patch.
Indentation   +479 added lines, -479 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-    /*********************************************************************
2
+	/*********************************************************************
3 3
      *
4 4
      *    PHP FTP Client Class By TOMO ( [email protected] )
5 5
 	 *    Modified By NAVER ( [email protected] )
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
      *
19 19
      ********************************************************************/
20 20
 
21
-    /*********************************************************************
21
+	/*********************************************************************
22 22
      * List of available functions
23 23
      * ftp_connect($server, $port = 21)
24 24
      * ftp_login($user, $pass)
@@ -41,448 +41,448 @@  discard block
 block discarded – undo
41 41
      * ftp_quit()
42 42
      *********************************************************************/
43 43
 
44
-    class ftp
45
-    {
46
-        /* Public variables */
47
-        var $debug;
48
-        var $umask;
49
-        var $timeout;
50
-
51
-        /* Private variables */
52
-        var $ftp_sock;
53
-        var $ftp_resp;
54
-
55
-        /* Constractor */
56
-        function ftp()
57
-        {
58
-            $this->debug = false;
59
-            $this->umask = 0022;
60
-            $this->timeout = 30;
61
-
62
-            if (!defined("FTP_BINARY")) {
63
-                define("FTP_BINARY", 1);
64
-            }
65
-            if (!defined("FTP_ASCII")) {
66
-                define("FTP_ASCII", 0);
67
-            }
68
-
69
-            $this->ftp_resp = "";
70
-        }
71
-
72
-        /* Public functions */
73
-        function ftp_connect($server, $port = 21)
74
-        {
75
-            $this->ftp_debug("Trying to ".$server.":".$port." ...\n");
76
-            $this->ftp_sock = @fsockopen($server, $port, $errno, $errstr, $this->timeout);
77
-
78
-            if (!$this->ftp_sock || !$this->ftp_ok()) {
79
-                $this->ftp_debug("Error : Cannot connect to remote host \"".$server.":".$port."\"\n");
80
-                $this->ftp_debug("Error : fsockopen() ".$errstr." (".$errno.")\n");
81
-                return FALSE;
82
-            }
44
+	class ftp
45
+	{
46
+		/* Public variables */
47
+		var $debug;
48
+		var $umask;
49
+		var $timeout;
50
+
51
+		/* Private variables */
52
+		var $ftp_sock;
53
+		var $ftp_resp;
54
+
55
+		/* Constractor */
56
+		function ftp()
57
+		{
58
+			$this->debug = false;
59
+			$this->umask = 0022;
60
+			$this->timeout = 30;
61
+
62
+			if (!defined("FTP_BINARY")) {
63
+				define("FTP_BINARY", 1);
64
+			}
65
+			if (!defined("FTP_ASCII")) {
66
+				define("FTP_ASCII", 0);
67
+			}
68
+
69
+			$this->ftp_resp = "";
70
+		}
71
+
72
+		/* Public functions */
73
+		function ftp_connect($server, $port = 21)
74
+		{
75
+			$this->ftp_debug("Trying to ".$server.":".$port." ...\n");
76
+			$this->ftp_sock = @fsockopen($server, $port, $errno, $errstr, $this->timeout);
77
+
78
+			if (!$this->ftp_sock || !$this->ftp_ok()) {
79
+				$this->ftp_debug("Error : Cannot connect to remote host \"".$server.":".$port."\"\n");
80
+				$this->ftp_debug("Error : fsockopen() ".$errstr." (".$errno.")\n");
81
+				return FALSE;
82
+			}
83 83
 
84 84
 			if(substr($this->ftp_resp, 0, 3) !== '220')
85 85
 			{
86 86
 				return FALSE;
87 87
 			}
88 88
 
89
-            $this->ftp_debug("Connected to remote host \"".$server.":".$port."\"\n");
90
-
91
-            return TRUE;
92
-        }
93
-
94
-        function ftp_login($user, $pass)
95
-        {
96
-            $this->ftp_putcmd("USER", $user);
97
-            if (!$this->ftp_ok()) {
98
-                $this->ftp_debug("Error : USER command failed\n");
99
-                return FALSE;
100
-            }
101
-
102
-            $this->ftp_putcmd("PASS", $pass);
103
-            if (!$this->ftp_ok()) {
104
-                $this->ftp_debug("Error : PASS command failed\n");
105
-                return FALSE;
106
-            }
107
-            $this->ftp_debug("Authentication succeeded\n");
108
-
109
-            return TRUE;
110
-        }
111
-
112
-        function ftp_pwd()
113
-        {
114
-            $this->ftp_putcmd("PWD");
115
-            if (!$this->ftp_ok()) {
116
-                $this->ftp_debug("Error : PWD command failed\n");
117
-                return FALSE;
118
-            }
119
-
120
-            return preg_replace("@^[0-9]{3} \"(.+)\" .+\r\n@", "\\1", $this->ftp_resp);
121
-        }
122
-
123
-        function ftp_size($pathname)
124
-        {
125
-            $this->ftp_putcmd("SIZE", $pathname);
126
-            if (!$this->ftp_ok()) {
127
-                $this->ftp_debug("Error : SIZE command failed\n");
128
-                return -1;
129
-            }
130
-
131
-            return preg_replace("@^[0-9]{3} ([0-9]+)\r\n@", "\\1", $this->ftp_resp);
132
-        }
133
-
134
-        function ftp_mdtm($pathname)
135
-        {
136
-            $this->ftp_putcmd("MDTM", $pathname);
137
-            if (!$this->ftp_ok()) {
138
-                $this->ftp_debug("Error : MDTM command failed\n");
139
-                return -1;
140
-            }
141
-            $mdtm = preg_replace("@^[0-9]{3} ([0-9]+)\r\n@", "\\1", $this->ftp_resp);
142
-            $date = sscanf($mdtm, "%4d%2d%2d%2d%2d%2d");
143
-            $timestamp = mktime($date[3], $date[4], $date[5], $date[1], $date[2], $date[0]);
144
-
145
-            return $timestamp;
146
-        }
147
-
148
-        function ftp_systype()
149
-        {
150
-            $this->ftp_putcmd("SYST");
151
-            if (!$this->ftp_ok()) {
152
-                $this->ftp_debug("Error : SYST command failed\n");
153
-                return FALSE;
154
-            }
155
-            $DATA = explode(" ", $this->ftp_resp);
156
-
157
-            return $DATA[1];
158
-        }
159
-
160
-        function ftp_cdup()
161
-        {
162
-            $this->ftp_putcmd("CDUP");
163
-            $response = $this->ftp_ok();
164
-            if (!$response) {
165
-                $this->ftp_debug("Error : CDUP command failed\n");
166
-            }
167
-            return $response;
168
-        }
169
-
170
-        function ftp_chdir($pathname)
171
-        {
172
-            $this->ftp_putcmd("CWD", $pathname);
173
-            $response = $this->ftp_ok();
174
-            if (!$response) {
175
-                $this->ftp_debug("Error : CWD command failed\n");
176
-            }
177
-            return $response;
178
-        }
179
-
180
-        function ftp_delete($pathname)
181
-        {
182
-            $this->ftp_putcmd("DELE", $pathname);
183
-            $response = $this->ftp_ok();
184
-            if (!$response) {
185
-                $this->ftp_debug("Error : DELE command failed\n");
186
-            }
187
-            return $response;
188
-        }
189
-
190
-        function ftp_rmdir($pathname)
191
-        {
192
-            $this->ftp_putcmd("RMD", $pathname);
193
-            $response = $this->ftp_ok();
194
-            if (!$response) {
195
-                $this->ftp_debug("Error : RMD command failed\n");
196
-            }
197
-            return $response;
198
-        }
199
-
200
-        function ftp_mkdir($pathname)
201
-        {
202
-            $this->ftp_putcmd("MKD", $pathname);
203
-            $response = $this->ftp_ok();
204
-            if (!$response) {
205
-                $this->ftp_debug("Error : MKD command failed\n");
206
-            }
207
-            return $response;
208
-        }
209
-
210
-        function ftp_file_exists($pathname)
211
-        {
212
-            if (!($remote_list = $this->ftp_nlist("-a"))) {
213
-                $this->ftp_debug("Error : Cannot get remote file list\n");
214
-                return -1;
215
-            }
89
+			$this->ftp_debug("Connected to remote host \"".$server.":".$port."\"\n");
90
+
91
+			return TRUE;
92
+		}
93
+
94
+		function ftp_login($user, $pass)
95
+		{
96
+			$this->ftp_putcmd("USER", $user);
97
+			if (!$this->ftp_ok()) {
98
+				$this->ftp_debug("Error : USER command failed\n");
99
+				return FALSE;
100
+			}
101
+
102
+			$this->ftp_putcmd("PASS", $pass);
103
+			if (!$this->ftp_ok()) {
104
+				$this->ftp_debug("Error : PASS command failed\n");
105
+				return FALSE;
106
+			}
107
+			$this->ftp_debug("Authentication succeeded\n");
108
+
109
+			return TRUE;
110
+		}
111
+
112
+		function ftp_pwd()
113
+		{
114
+			$this->ftp_putcmd("PWD");
115
+			if (!$this->ftp_ok()) {
116
+				$this->ftp_debug("Error : PWD command failed\n");
117
+				return FALSE;
118
+			}
119
+
120
+			return preg_replace("@^[0-9]{3} \"(.+)\" .+\r\n@", "\\1", $this->ftp_resp);
121
+		}
122
+
123
+		function ftp_size($pathname)
124
+		{
125
+			$this->ftp_putcmd("SIZE", $pathname);
126
+			if (!$this->ftp_ok()) {
127
+				$this->ftp_debug("Error : SIZE command failed\n");
128
+				return -1;
129
+			}
130
+
131
+			return preg_replace("@^[0-9]{3} ([0-9]+)\r\n@", "\\1", $this->ftp_resp);
132
+		}
133
+
134
+		function ftp_mdtm($pathname)
135
+		{
136
+			$this->ftp_putcmd("MDTM", $pathname);
137
+			if (!$this->ftp_ok()) {
138
+				$this->ftp_debug("Error : MDTM command failed\n");
139
+				return -1;
140
+			}
141
+			$mdtm = preg_replace("@^[0-9]{3} ([0-9]+)\r\n@", "\\1", $this->ftp_resp);
142
+			$date = sscanf($mdtm, "%4d%2d%2d%2d%2d%2d");
143
+			$timestamp = mktime($date[3], $date[4], $date[5], $date[1], $date[2], $date[0]);
144
+
145
+			return $timestamp;
146
+		}
147
+
148
+		function ftp_systype()
149
+		{
150
+			$this->ftp_putcmd("SYST");
151
+			if (!$this->ftp_ok()) {
152
+				$this->ftp_debug("Error : SYST command failed\n");
153
+				return FALSE;
154
+			}
155
+			$DATA = explode(" ", $this->ftp_resp);
156
+
157
+			return $DATA[1];
158
+		}
159
+
160
+		function ftp_cdup()
161
+		{
162
+			$this->ftp_putcmd("CDUP");
163
+			$response = $this->ftp_ok();
164
+			if (!$response) {
165
+				$this->ftp_debug("Error : CDUP command failed\n");
166
+			}
167
+			return $response;
168
+		}
169
+
170
+		function ftp_chdir($pathname)
171
+		{
172
+			$this->ftp_putcmd("CWD", $pathname);
173
+			$response = $this->ftp_ok();
174
+			if (!$response) {
175
+				$this->ftp_debug("Error : CWD command failed\n");
176
+			}
177
+			return $response;
178
+		}
179
+
180
+		function ftp_delete($pathname)
181
+		{
182
+			$this->ftp_putcmd("DELE", $pathname);
183
+			$response = $this->ftp_ok();
184
+			if (!$response) {
185
+				$this->ftp_debug("Error : DELE command failed\n");
186
+			}
187
+			return $response;
188
+		}
189
+
190
+		function ftp_rmdir($pathname)
191
+		{
192
+			$this->ftp_putcmd("RMD", $pathname);
193
+			$response = $this->ftp_ok();
194
+			if (!$response) {
195
+				$this->ftp_debug("Error : RMD command failed\n");
196
+			}
197
+			return $response;
198
+		}
199
+
200
+		function ftp_mkdir($pathname)
201
+		{
202
+			$this->ftp_putcmd("MKD", $pathname);
203
+			$response = $this->ftp_ok();
204
+			if (!$response) {
205
+				$this->ftp_debug("Error : MKD command failed\n");
206
+			}
207
+			return $response;
208
+		}
209
+
210
+		function ftp_file_exists($pathname)
211
+		{
212
+			if (!($remote_list = $this->ftp_nlist("-a"))) {
213
+				$this->ftp_debug("Error : Cannot get remote file list\n");
214
+				return -1;
215
+			}
216 216
             
217
-            reset($remote_list);
218
-            while (list(,$value) = each($remote_list)) {
219
-                if ($value == $pathname) {
220
-                    $this->ftp_debug("Remote file ".$pathname." exists\n");
221
-                    return 1;
222
-                }
223
-            }
224
-            $this->ftp_debug("Remote file ".$pathname." does not exist\n");
225
-
226
-            return 0;
227
-        }
228
-
229
-        function ftp_rename($from, $to)
230
-        {
231
-            $this->ftp_putcmd("RNFR", $from);
232
-            if (!$this->ftp_ok()) {
233
-                $this->ftp_debug("Error : RNFR command failed\n");
234
-                return FALSE;
235
-            }
236
-            $this->ftp_putcmd("RNTO", $to);
237
-
238
-            $response = $this->ftp_ok();
239
-            if (!$response) {
240
-                $this->ftp_debug("Error : RNTO command failed\n");
241
-            }
242
-            return $response;
243
-        }
244
-
245
-        function ftp_nlist($arg = "", $pathname = "")
246
-        {
247
-            if (!($string = $this->ftp_pasv())) {
248
-                return FALSE;
249
-            }
250
-
251
-            if ($arg == "") {
252
-                $nlst = "NLST";
253
-            } else {
254
-                $nlst = "NLST ".$arg;
255
-            }
256
-            $this->ftp_putcmd($nlst, $pathname);
257
-
258
-            $sock_data = $this->ftp_open_data_connection($string);
259
-            if (!$sock_data || !$this->ftp_ok()) {
260
-                $this->ftp_debug("Error : Cannot connect to remote host\n");
261
-                $this->ftp_debug("Error : NLST command failed\n");
262
-                return FALSE;
263
-            }
264
-            $this->ftp_debug("Connected to remote host\n");
217
+			reset($remote_list);
218
+			while (list(,$value) = each($remote_list)) {
219
+				if ($value == $pathname) {
220
+					$this->ftp_debug("Remote file ".$pathname." exists\n");
221
+					return 1;
222
+				}
223
+			}
224
+			$this->ftp_debug("Remote file ".$pathname." does not exist\n");
225
+
226
+			return 0;
227
+		}
228
+
229
+		function ftp_rename($from, $to)
230
+		{
231
+			$this->ftp_putcmd("RNFR", $from);
232
+			if (!$this->ftp_ok()) {
233
+				$this->ftp_debug("Error : RNFR command failed\n");
234
+				return FALSE;
235
+			}
236
+			$this->ftp_putcmd("RNTO", $to);
237
+
238
+			$response = $this->ftp_ok();
239
+			if (!$response) {
240
+				$this->ftp_debug("Error : RNTO command failed\n");
241
+			}
242
+			return $response;
243
+		}
244
+
245
+		function ftp_nlist($arg = "", $pathname = "")
246
+		{
247
+			if (!($string = $this->ftp_pasv())) {
248
+				return FALSE;
249
+			}
250
+
251
+			if ($arg == "") {
252
+				$nlst = "NLST";
253
+			} else {
254
+				$nlst = "NLST ".$arg;
255
+			}
256
+			$this->ftp_putcmd($nlst, $pathname);
257
+
258
+			$sock_data = $this->ftp_open_data_connection($string);
259
+			if (!$sock_data || !$this->ftp_ok()) {
260
+				$this->ftp_debug("Error : Cannot connect to remote host\n");
261
+				$this->ftp_debug("Error : NLST command failed\n");
262
+				return FALSE;
263
+			}
264
+			$this->ftp_debug("Connected to remote host\n");
265 265
 
266 266
 			$list = array();
267
-            while (!feof($sock_data)) {
268
-                $list[] = preg_replace("@[\r\n]@", "", fgets($sock_data, 512));
269
-            }
270
-            $this->ftp_close_data_connection($sock_data);
271
-            $this->ftp_debug(implode("\n", $list));
272
-
273
-            if (!$this->ftp_ok()) {
274
-                $this->ftp_debug("Error : NLST command failed\n");
275
-                return FALSE;
276
-            }
277
-
278
-            return $list;
279
-        }
280
-
281
-        function ftp_rawlist($pathname = "")
282
-        {
283
-            if (!($string = $this->ftp_pasv())) {
284
-                return FALSE;
285
-            }
286
-
287
-            $this->ftp_putcmd("LIST", $pathname);
288
-
289
-            $sock_data = $this->ftp_open_data_connection($string);
290
-            if (!$sock_data || !$this->ftp_ok()) {
291
-                $this->ftp_debug("Error : Cannot connect to remote host\n");
292
-                $this->ftp_debug("Error : LIST command failed\n");
293
-                return FALSE;
294
-            }
295
-
296
-            $this->ftp_debug("Connected to remote host\n");
297
-
298
-            while (!feof($sock_data)) {
299
-                $list[] = preg_replace("@[\r\n]@", "", fgets($sock_data, 512));
300
-            }
301
-            $this->ftp_debug(implode("\n", $list));
302
-            $this->ftp_close_data_connection($sock_data);
303
-
304
-            if (!$this->ftp_ok()) {
305
-                $this->ftp_debug("Error : LIST command failed\n");
306
-                return FALSE;
307
-            }
308
-
309
-            return $list;
310
-        }
311
-
312
-        function ftp_get($localfile, $remotefile, $mode = 1)
313
-        {
314
-            umask($this->umask);
315
-
316
-            if (@file_exists($localfile)) {
317
-                $this->ftp_debug("Warning : local file will be overwritten\n");
318
-            }
319
-
320
-            $fp = @fopen($localfile, "w");
321
-            if (!$fp) {
322
-                $this->ftp_debug("Error : Cannot create \"".$localfile."\"");
323
-                $this->ftp_debug("Error : GET command failed\n");
324
-                return FALSE;
325
-            }
326
-
327
-            if (!$this->ftp_type($mode)) {
328
-                $this->ftp_debug("Error : GET command failed\n");
329
-                return FALSE;
330
-            }
331
-
332
-            if (!($string = $this->ftp_pasv())) {
333
-                $this->ftp_debug("Error : GET command failed\n");
334
-                return FALSE;
335
-            }
336
-
337
-            $this->ftp_putcmd("RETR", $remotefile);
338
-
339
-            $sock_data = $this->ftp_open_data_connection($string);
340
-            if (!$sock_data || !$this->ftp_ok()) {
341
-                $this->ftp_debug("Error : Cannot connect to remote host\n");
342
-                $this->ftp_debug("Error : GET command failed\n");
343
-                return FALSE;
344
-            }
345
-            $this->ftp_debug("Connected to remote host\n");
346
-            $this->ftp_debug("Retrieving remote file \"".$remotefile."\" to local file \"".$localfile."\"\n");
347
-            while (!feof($sock_data)) {
348
-                fputs($fp, fread($sock_data, 4096));
349
-            }
350
-            fclose($fp);
351
-
352
-            $this->ftp_close_data_connection($sock_data);
353
-
354
-            $response = $this->ftp_ok();
355
-            if (!$response) {
356
-                $this->ftp_debug("Error : GET command failed\n");
357
-            }
358
-            return $response;
359
-        }
360
-
361
-        function ftp_put($remotefile, $localfile, $mode = 1)
362
-        {
267
+			while (!feof($sock_data)) {
268
+				$list[] = preg_replace("@[\r\n]@", "", fgets($sock_data, 512));
269
+			}
270
+			$this->ftp_close_data_connection($sock_data);
271
+			$this->ftp_debug(implode("\n", $list));
272
+
273
+			if (!$this->ftp_ok()) {
274
+				$this->ftp_debug("Error : NLST command failed\n");
275
+				return FALSE;
276
+			}
277
+
278
+			return $list;
279
+		}
280
+
281
+		function ftp_rawlist($pathname = "")
282
+		{
283
+			if (!($string = $this->ftp_pasv())) {
284
+				return FALSE;
285
+			}
286
+
287
+			$this->ftp_putcmd("LIST", $pathname);
288
+
289
+			$sock_data = $this->ftp_open_data_connection($string);
290
+			if (!$sock_data || !$this->ftp_ok()) {
291
+				$this->ftp_debug("Error : Cannot connect to remote host\n");
292
+				$this->ftp_debug("Error : LIST command failed\n");
293
+				return FALSE;
294
+			}
295
+
296
+			$this->ftp_debug("Connected to remote host\n");
297
+
298
+			while (!feof($sock_data)) {
299
+				$list[] = preg_replace("@[\r\n]@", "", fgets($sock_data, 512));
300
+			}
301
+			$this->ftp_debug(implode("\n", $list));
302
+			$this->ftp_close_data_connection($sock_data);
303
+
304
+			if (!$this->ftp_ok()) {
305
+				$this->ftp_debug("Error : LIST command failed\n");
306
+				return FALSE;
307
+			}
308
+
309
+			return $list;
310
+		}
311
+
312
+		function ftp_get($localfile, $remotefile, $mode = 1)
313
+		{
314
+			umask($this->umask);
315
+
316
+			if (@file_exists($localfile)) {
317
+				$this->ftp_debug("Warning : local file will be overwritten\n");
318
+			}
319
+
320
+			$fp = @fopen($localfile, "w");
321
+			if (!$fp) {
322
+				$this->ftp_debug("Error : Cannot create \"".$localfile."\"");
323
+				$this->ftp_debug("Error : GET command failed\n");
324
+				return FALSE;
325
+			}
326
+
327
+			if (!$this->ftp_type($mode)) {
328
+				$this->ftp_debug("Error : GET command failed\n");
329
+				return FALSE;
330
+			}
331
+
332
+			if (!($string = $this->ftp_pasv())) {
333
+				$this->ftp_debug("Error : GET command failed\n");
334
+				return FALSE;
335
+			}
336
+
337
+			$this->ftp_putcmd("RETR", $remotefile);
338
+
339
+			$sock_data = $this->ftp_open_data_connection($string);
340
+			if (!$sock_data || !$this->ftp_ok()) {
341
+				$this->ftp_debug("Error : Cannot connect to remote host\n");
342
+				$this->ftp_debug("Error : GET command failed\n");
343
+				return FALSE;
344
+			}
345
+			$this->ftp_debug("Connected to remote host\n");
346
+			$this->ftp_debug("Retrieving remote file \"".$remotefile."\" to local file \"".$localfile."\"\n");
347
+			while (!feof($sock_data)) {
348
+				fputs($fp, fread($sock_data, 4096));
349
+			}
350
+			fclose($fp);
351
+
352
+			$this->ftp_close_data_connection($sock_data);
353
+
354
+			$response = $this->ftp_ok();
355
+			if (!$response) {
356
+				$this->ftp_debug("Error : GET command failed\n");
357
+			}
358
+			return $response;
359
+		}
360
+
361
+		function ftp_put($remotefile, $localfile, $mode = 1)
362
+		{
363 363
             
364
-            if (!@file_exists($localfile)) {
365
-                $this->ftp_debug("Error : No such file or directory \"".$localfile."\"\n");
366
-                $this->ftp_debug("Error : PUT command failed\n");
367
-                return FALSE;
368
-            }
369
-
370
-            $fp = @fopen($localfile, "r");
371
-            if (!$fp) {
372
-                $this->ftp_debug("Error : Cannot read file \"".$localfile."\"\n");
373
-                $this->ftp_debug("Error : PUT command failed\n");
374
-                return FALSE;
375
-            }
376
-
377
-            if (!$this->ftp_type($mode)) {
378
-                $this->ftp_debug("Error : PUT command failed\n");
379
-                return FALSE;
380
-            }
381
-
382
-            if (!($string = $this->ftp_pasv())) {
383
-                $this->ftp_debug("Error : PUT command failed\n");
384
-                return FALSE;
385
-            }
386
-
387
-            $this->ftp_putcmd("STOR", $remotefile);
388
-
389
-            $sock_data = $this->ftp_open_data_connection($string);
390
-            if (!$sock_data || !$this->ftp_ok()) {
391
-                $this->ftp_debug("Error : Cannot connect to remote host\n");
392
-                $this->ftp_debug("Error : PUT command failed\n");
393
-                return FALSE;
394
-            }
395
-            $this->ftp_debug("Connected to remote host\n");
396
-            $this->ftp_debug("Storing local file \"".$localfile."\" to remote file \"".$remotefile."\"\n");
397
-            while (!feof($fp)) {
398
-                fputs($sock_data, fread($fp, 4096));
399
-            }
400
-            fclose($fp);
401
-
402
-            $this->ftp_close_data_connection($sock_data);
403
-
404
-            $response = $this->ftp_ok();
405
-            if (!$response) {
406
-                $this->ftp_debug("Error : PUT command failed\n");
407
-            }
408
-            return $response;
409
-        }
410
-
411
-        function ftp_site($command)
412
-        {
413
-            $this->ftp_putcmd("SITE", $command);
414
-            $response = $this->ftp_ok();
415
-            if (!$response) {
416
-                $this->ftp_debug("Error : SITE command failed\n");
417
-            }
418
-            return $response;
419
-        }
420
-
421
-        function ftp_quit()
422
-        {
423
-            $this->ftp_putcmd("QUIT");
424
-            if (!$this->ftp_ok() || !fclose($this->ftp_sock)) {
425
-                $this->ftp_debug("Error : QUIT command failed\n");
426
-                return FALSE;
427
-            }
428
-            $this->ftp_debug("Disconnected from remote host\n");
429
-            return TRUE;
430
-        }
431
-
432
-        /* Private Functions */
433
-
434
-        function ftp_type($mode)
435
-        {
436
-            if ($mode) {
437
-                $type = "I"; //Binary mode
438
-            } else {
439
-                $type = "A"; //ASCII mode
440
-            }
441
-            $this->ftp_putcmd("TYPE", $type);
442
-            $response = $this->ftp_ok();
443
-            if (!$response) {
444
-                $this->ftp_debug("Error : TYPE command failed\n");
445
-            }
446
-            return $response;
447
-        }
448
-
449
-        function ftp_port($ip_port)
450
-        {
451
-            $this->ftp_putcmd("PORT", $ip_port);
452
-            $response = $this->ftp_ok();
453
-            if (!$response) {
454
-                $this->ftp_debug("Error : PORT command failed\n");
455
-            }
456
-            return $response;
457
-        }
458
-
459
-        function ftp_pasv()
460
-        {
461
-            $this->ftp_putcmd("PASV");
462
-            if (!$this->ftp_ok()) {
463
-                $this->ftp_debug("Error : PASV command failed\n");
464
-                return FALSE;
465
-            }
466
-
467
-            $ip_port = preg_replace("@^.+ \\(?([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+)\\)?.*\r\n$@", "\\1", $this->ftp_resp);
468
-            return $ip_port;
469
-        }
470
-
471
-        function ftp_putcmd($cmd, $arg = "")
472
-        {
473
-            if ($arg != "") {
474
-                $cmd = $cmd." ".$arg;
475
-            }
476
-
477
-            fputs($this->ftp_sock, $cmd."\r\n");
478
-            $this->ftp_debug("> ".$cmd."\n");
479
-
480
-            return TRUE;
481
-        }
482
-
483
-        function ftp_ok()
484
-        {
485
-            $this->ftp_resp = "";
364
+			if (!@file_exists($localfile)) {
365
+				$this->ftp_debug("Error : No such file or directory \"".$localfile."\"\n");
366
+				$this->ftp_debug("Error : PUT command failed\n");
367
+				return FALSE;
368
+			}
369
+
370
+			$fp = @fopen($localfile, "r");
371
+			if (!$fp) {
372
+				$this->ftp_debug("Error : Cannot read file \"".$localfile."\"\n");
373
+				$this->ftp_debug("Error : PUT command failed\n");
374
+				return FALSE;
375
+			}
376
+
377
+			if (!$this->ftp_type($mode)) {
378
+				$this->ftp_debug("Error : PUT command failed\n");
379
+				return FALSE;
380
+			}
381
+
382
+			if (!($string = $this->ftp_pasv())) {
383
+				$this->ftp_debug("Error : PUT command failed\n");
384
+				return FALSE;
385
+			}
386
+
387
+			$this->ftp_putcmd("STOR", $remotefile);
388
+
389
+			$sock_data = $this->ftp_open_data_connection($string);
390
+			if (!$sock_data || !$this->ftp_ok()) {
391
+				$this->ftp_debug("Error : Cannot connect to remote host\n");
392
+				$this->ftp_debug("Error : PUT command failed\n");
393
+				return FALSE;
394
+			}
395
+			$this->ftp_debug("Connected to remote host\n");
396
+			$this->ftp_debug("Storing local file \"".$localfile."\" to remote file \"".$remotefile."\"\n");
397
+			while (!feof($fp)) {
398
+				fputs($sock_data, fread($fp, 4096));
399
+			}
400
+			fclose($fp);
401
+
402
+			$this->ftp_close_data_connection($sock_data);
403
+
404
+			$response = $this->ftp_ok();
405
+			if (!$response) {
406
+				$this->ftp_debug("Error : PUT command failed\n");
407
+			}
408
+			return $response;
409
+		}
410
+
411
+		function ftp_site($command)
412
+		{
413
+			$this->ftp_putcmd("SITE", $command);
414
+			$response = $this->ftp_ok();
415
+			if (!$response) {
416
+				$this->ftp_debug("Error : SITE command failed\n");
417
+			}
418
+			return $response;
419
+		}
420
+
421
+		function ftp_quit()
422
+		{
423
+			$this->ftp_putcmd("QUIT");
424
+			if (!$this->ftp_ok() || !fclose($this->ftp_sock)) {
425
+				$this->ftp_debug("Error : QUIT command failed\n");
426
+				return FALSE;
427
+			}
428
+			$this->ftp_debug("Disconnected from remote host\n");
429
+			return TRUE;
430
+		}
431
+
432
+		/* Private Functions */
433
+
434
+		function ftp_type($mode)
435
+		{
436
+			if ($mode) {
437
+				$type = "I"; //Binary mode
438
+			} else {
439
+				$type = "A"; //ASCII mode
440
+			}
441
+			$this->ftp_putcmd("TYPE", $type);
442
+			$response = $this->ftp_ok();
443
+			if (!$response) {
444
+				$this->ftp_debug("Error : TYPE command failed\n");
445
+			}
446
+			return $response;
447
+		}
448
+
449
+		function ftp_port($ip_port)
450
+		{
451
+			$this->ftp_putcmd("PORT", $ip_port);
452
+			$response = $this->ftp_ok();
453
+			if (!$response) {
454
+				$this->ftp_debug("Error : PORT command failed\n");
455
+			}
456
+			return $response;
457
+		}
458
+
459
+		function ftp_pasv()
460
+		{
461
+			$this->ftp_putcmd("PASV");
462
+			if (!$this->ftp_ok()) {
463
+				$this->ftp_debug("Error : PASV command failed\n");
464
+				return FALSE;
465
+			}
466
+
467
+			$ip_port = preg_replace("@^.+ \\(?([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+)\\)?.*\r\n$@", "\\1", $this->ftp_resp);
468
+			return $ip_port;
469
+		}
470
+
471
+		function ftp_putcmd($cmd, $arg = "")
472
+		{
473
+			if ($arg != "") {
474
+				$cmd = $cmd." ".$arg;
475
+			}
476
+
477
+			fputs($this->ftp_sock, $cmd."\r\n");
478
+			$this->ftp_debug("> ".$cmd."\n");
479
+
480
+			return TRUE;
481
+		}
482
+
483
+		function ftp_ok()
484
+		{
485
+			$this->ftp_resp = "";
486 486
 
487 487
 			// 한줄을 읽는다.
488 488
 			$line = '';
@@ -521,49 +521,49 @@  discard block
 block discarded – undo
521 521
 				}while($line);
522 522
 			}
523 523
 
524
-            $this->ftp_debug(str_replace("\r\n", "\n", $this->ftp_resp));
525
-
526
-            if (!preg_match("@^[123]@", $this->ftp_resp)) {
527
-                return FALSE;
528
-            }
529
-
530
-            return TRUE;
531
-        }
532
-
533
-        function ftp_close_data_connection($sock)
534
-        {
535
-            $this->ftp_debug("Disconnected from remote host\n");
536
-            return fclose($sock);
537
-        }
538
-
539
-        function ftp_open_data_connection($ip_port)
540
-        {
541
-            if (!preg_match("@[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+@", $ip_port)) {
542
-                $this->ftp_debug("Error : Illegal ip-port format(".$ip_port.")\n");
543
-                return FALSE;
544
-            }
545
-
546
-            $DATA = explode(",", $ip_port);
547
-            $ipaddr = $DATA[0].".".$DATA[1].".".$DATA[2].".".$DATA[3];
548
-            $port   = $DATA[4]*256 + $DATA[5];
549
-            $this->ftp_debug("Trying to ".$ipaddr.":".$port." ...\n");
550
-            $data_connection = @fsockopen($ipaddr, $port, $errno, $errstr);
551
-            if (!$data_connection) {
552
-                $this->ftp_debug("Error : Cannot open data connection to ".$ipaddr.":".$port."\n");
553
-                $this->ftp_debug("Error : ".$errstr." (".$errno.")\n");
554
-                return FALSE;
555
-            }
556
-
557
-            return $data_connection;
558
-        }
559
-
560
-        function ftp_debug($message = "")
561
-        {
562
-            if ($this->debug) {
563
-                echo $message;
564
-            }
565
-
566
-            return TRUE;
567
-        }
568
-    }
524
+			$this->ftp_debug(str_replace("\r\n", "\n", $this->ftp_resp));
525
+
526
+			if (!preg_match("@^[123]@", $this->ftp_resp)) {
527
+				return FALSE;
528
+			}
529
+
530
+			return TRUE;
531
+		}
532
+
533
+		function ftp_close_data_connection($sock)
534
+		{
535
+			$this->ftp_debug("Disconnected from remote host\n");
536
+			return fclose($sock);
537
+		}
538
+
539
+		function ftp_open_data_connection($ip_port)
540
+		{
541
+			if (!preg_match("@[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+@", $ip_port)) {
542
+				$this->ftp_debug("Error : Illegal ip-port format(".$ip_port.")\n");
543
+				return FALSE;
544
+			}
545
+
546
+			$DATA = explode(",", $ip_port);
547
+			$ipaddr = $DATA[0].".".$DATA[1].".".$DATA[2].".".$DATA[3];
548
+			$port   = $DATA[4]*256 + $DATA[5];
549
+			$this->ftp_debug("Trying to ".$ipaddr.":".$port." ...\n");
550
+			$data_connection = @fsockopen($ipaddr, $port, $errno, $errstr);
551
+			if (!$data_connection) {
552
+				$this->ftp_debug("Error : Cannot open data connection to ".$ipaddr.":".$port."\n");
553
+				$this->ftp_debug("Error : ".$errstr." (".$errno.")\n");
554
+				return FALSE;
555
+			}
556
+
557
+			return $data_connection;
558
+		}
559
+
560
+		function ftp_debug($message = "")
561
+		{
562
+			if ($this->debug) {
563
+				echo $message;
564
+			}
565
+
566
+			return TRUE;
567
+		}
568
+	}
569 569
 ?>
Please login to merge, or discard this patch.
Spacing   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -72,21 +72,21 @@  discard block
 block discarded – undo
72 72
         /* Public functions */
73 73
         function ftp_connect($server, $port = 21)
74 74
         {
75
-            $this->ftp_debug("Trying to ".$server.":".$port." ...\n");
75
+            $this->ftp_debug("Trying to " . $server . ":" . $port . " ...\n");
76 76
             $this->ftp_sock = @fsockopen($server, $port, $errno, $errstr, $this->timeout);
77 77
 
78 78
             if (!$this->ftp_sock || !$this->ftp_ok()) {
79
-                $this->ftp_debug("Error : Cannot connect to remote host \"".$server.":".$port."\"\n");
80
-                $this->ftp_debug("Error : fsockopen() ".$errstr." (".$errno.")\n");
79
+                $this->ftp_debug("Error : Cannot connect to remote host \"" . $server . ":" . $port . "\"\n");
80
+                $this->ftp_debug("Error : fsockopen() " . $errstr . " (" . $errno . ")\n");
81 81
                 return FALSE;
82 82
             }
83 83
 
84
-			if(substr($this->ftp_resp, 0, 3) !== '220')
84
+			if (substr($this->ftp_resp, 0, 3) !== '220')
85 85
 			{
86 86
 				return FALSE;
87 87
 			}
88 88
 
89
-            $this->ftp_debug("Connected to remote host \"".$server.":".$port."\"\n");
89
+            $this->ftp_debug("Connected to remote host \"" . $server . ":" . $port . "\"\n");
90 90
 
91 91
             return TRUE;
92 92
         }
@@ -217,11 +217,11 @@  discard block
 block discarded – undo
217 217
             reset($remote_list);
218 218
             while (list(,$value) = each($remote_list)) {
219 219
                 if ($value == $pathname) {
220
-                    $this->ftp_debug("Remote file ".$pathname." exists\n");
220
+                    $this->ftp_debug("Remote file " . $pathname . " exists\n");
221 221
                     return 1;
222 222
                 }
223 223
             }
224
-            $this->ftp_debug("Remote file ".$pathname." does not exist\n");
224
+            $this->ftp_debug("Remote file " . $pathname . " does not exist\n");
225 225
 
226 226
             return 0;
227 227
         }
@@ -251,7 +251,7 @@  discard block
 block discarded – undo
251 251
             if ($arg == "") {
252 252
                 $nlst = "NLST";
253 253
             } else {
254
-                $nlst = "NLST ".$arg;
254
+                $nlst = "NLST " . $arg;
255 255
             }
256 256
             $this->ftp_putcmd($nlst, $pathname);
257 257
 
@@ -319,7 +319,7 @@  discard block
 block discarded – undo
319 319
 
320 320
             $fp = @fopen($localfile, "w");
321 321
             if (!$fp) {
322
-                $this->ftp_debug("Error : Cannot create \"".$localfile."\"");
322
+                $this->ftp_debug("Error : Cannot create \"" . $localfile . "\"");
323 323
                 $this->ftp_debug("Error : GET command failed\n");
324 324
                 return FALSE;
325 325
             }
@@ -343,7 +343,7 @@  discard block
 block discarded – undo
343 343
                 return FALSE;
344 344
             }
345 345
             $this->ftp_debug("Connected to remote host\n");
346
-            $this->ftp_debug("Retrieving remote file \"".$remotefile."\" to local file \"".$localfile."\"\n");
346
+            $this->ftp_debug("Retrieving remote file \"" . $remotefile . "\" to local file \"" . $localfile . "\"\n");
347 347
             while (!feof($sock_data)) {
348 348
                 fputs($fp, fread($sock_data, 4096));
349 349
             }
@@ -362,14 +362,14 @@  discard block
 block discarded – undo
362 362
         {
363 363
             
364 364
             if (!@file_exists($localfile)) {
365
-                $this->ftp_debug("Error : No such file or directory \"".$localfile."\"\n");
365
+                $this->ftp_debug("Error : No such file or directory \"" . $localfile . "\"\n");
366 366
                 $this->ftp_debug("Error : PUT command failed\n");
367 367
                 return FALSE;
368 368
             }
369 369
 
370 370
             $fp = @fopen($localfile, "r");
371 371
             if (!$fp) {
372
-                $this->ftp_debug("Error : Cannot read file \"".$localfile."\"\n");
372
+                $this->ftp_debug("Error : Cannot read file \"" . $localfile . "\"\n");
373 373
                 $this->ftp_debug("Error : PUT command failed\n");
374 374
                 return FALSE;
375 375
             }
@@ -393,7 +393,7 @@  discard block
 block discarded – undo
393 393
                 return FALSE;
394 394
             }
395 395
             $this->ftp_debug("Connected to remote host\n");
396
-            $this->ftp_debug("Storing local file \"".$localfile."\" to remote file \"".$remotefile."\"\n");
396
+            $this->ftp_debug("Storing local file \"" . $localfile . "\" to remote file \"" . $remotefile . "\"\n");
397 397
             while (!feof($fp)) {
398 398
                 fputs($sock_data, fread($fp, 4096));
399 399
             }
@@ -471,11 +471,11 @@  discard block
 block discarded – undo
471 471
         function ftp_putcmd($cmd, $arg = "")
472 472
         {
473 473
             if ($arg != "") {
474
-                $cmd = $cmd." ".$arg;
474
+                $cmd = $cmd . " " . $arg;
475 475
             }
476 476
 
477
-            fputs($this->ftp_sock, $cmd."\r\n");
478
-            $this->ftp_debug("> ".$cmd."\n");
477
+            fputs($this->ftp_sock, $cmd . "\r\n");
478
+            $this->ftp_debug("> " . $cmd . "\n");
479 479
 
480 480
             return TRUE;
481 481
         }
@@ -486,14 +486,14 @@  discard block
 block discarded – undo
486 486
 
487 487
 			// 한줄을 읽는다.
488 488
 			$line = '';
489
-			while(($char = fgetc($this->ftp_sock)) !== FALSE)
489
+			while (($char = fgetc($this->ftp_sock)) !== FALSE)
490 490
 			{
491 491
 				$line .= $char;
492
-				if($char === "\n") break;
492
+				if ($char === "\n") break;
493 493
 			}
494 494
 				
495 495
 			// 세자리 응답 코드가 나와야 한다.
496
-			if(!preg_match('@^[0-9]{3}@', $line))
496
+			if (!preg_match('@^[0-9]{3}@', $line))
497 497
 			{
498 498
 				return FALSE;
499 499
 			}
@@ -501,7 +501,7 @@  discard block
 block discarded – undo
501 501
 			$this->ftp_resp = $line;
502 502
 
503 503
 			// 4번째 문자가 -이면 여러줄인 응답이다.
504
-			if($line[3] === '-')
504
+			if ($line[3] === '-')
505 505
 			{
506 506
 				$code = substr($line, 0, 3);
507 507
 
@@ -509,16 +509,16 @@  discard block
 block discarded – undo
509 509
 				do
510 510
 				{
511 511
 					$line = '';
512
-					while(($char = fgetc($this->ftp_sock)) !== FALSE)
512
+					while (($char = fgetc($this->ftp_sock)) !== FALSE)
513 513
 					{
514 514
 						$line .= $char;
515
-						if($char === "\n") break;
515
+						if ($char === "\n") break;
516 516
 					}
517 517
 					$this->ftp_resp .= $line;
518 518
 
519 519
 					// 응답 코드와 같은 코드가 나오고 공백이 있으면 끝
520
-					if($code . ' ' === substr($line, 0, 4)) break;
521
-				}while($line);
520
+					if ($code . ' ' === substr($line, 0, 4)) break;
521
+				} while ($line);
522 522
 			}
523 523
 
524 524
             $this->ftp_debug(str_replace("\r\n", "\n", $this->ftp_resp));
@@ -539,18 +539,18 @@  discard block
 block discarded – undo
539 539
         function ftp_open_data_connection($ip_port)
540 540
         {
541 541
             if (!preg_match("@[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]+,[0-9]+@", $ip_port)) {
542
-                $this->ftp_debug("Error : Illegal ip-port format(".$ip_port.")\n");
542
+                $this->ftp_debug("Error : Illegal ip-port format(" . $ip_port . ")\n");
543 543
                 return FALSE;
544 544
             }
545 545
 
546 546
             $DATA = explode(",", $ip_port);
547
-            $ipaddr = $DATA[0].".".$DATA[1].".".$DATA[2].".".$DATA[3];
548
-            $port   = $DATA[4]*256 + $DATA[5];
549
-            $this->ftp_debug("Trying to ".$ipaddr.":".$port." ...\n");
547
+            $ipaddr = $DATA[0] . "." . $DATA[1] . "." . $DATA[2] . "." . $DATA[3];
548
+            $port   = $DATA[4] * 256 + $DATA[5];
549
+            $this->ftp_debug("Trying to " . $ipaddr . ":" . $port . " ...\n");
550 550
             $data_connection = @fsockopen($ipaddr, $port, $errno, $errstr);
551 551
             if (!$data_connection) {
552
-                $this->ftp_debug("Error : Cannot open data connection to ".$ipaddr.":".$port."\n");
553
-                $this->ftp_debug("Error : ".$errstr." (".$errno.")\n");
552
+                $this->ftp_debug("Error : Cannot open data connection to " . $ipaddr . ":" . $port . "\n");
553
+                $this->ftp_debug("Error : " . $errstr . " (" . $errno . ")\n");
554 554
                 return FALSE;
555 555
             }
556 556
 
Please login to merge, or discard this patch.
Braces   +9 added lines, -3 removed lines patch added patch discarded remove patch
@@ -489,7 +489,9 @@  discard block
 block discarded – undo
489 489
 			while(($char = fgetc($this->ftp_sock)) !== FALSE)
490 490
 			{
491 491
 				$line .= $char;
492
-				if($char === "\n") break;
492
+				if($char === "\n") {
493
+					break;
494
+				}
493 495
 			}
494 496
 				
495 497
 			// 세자리 응답 코드가 나와야 한다.
@@ -512,12 +514,16 @@  discard block
 block discarded – undo
512 514
 					while(($char = fgetc($this->ftp_sock)) !== FALSE)
513 515
 					{
514 516
 						$line .= $char;
515
-						if($char === "\n") break;
517
+						if($char === "\n") {
518
+							break;
519
+						}
516 520
 					}
517 521
 					$this->ftp_resp .= $line;
518 522
 
519 523
 					// 응답 코드와 같은 코드가 나오고 공백이 있으면 끝
520
-					if($code . ' ' === substr($line, 0, 4)) break;
524
+					if($code . ' ' === substr($line, 0, 4)) {
525
+						break;
526
+					}
521 527
 				}while($line);
522 528
 			}
523 529
 
Please login to merge, or discard this patch.
libs/idna_convert/idna_convert.class.php 3 patches
Doc Comments   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -88,7 +88,7 @@  discard block
 block discarded – undo
88 88
      * the constructor
89 89
      *
90 90
      * @param array $options
91
-     * @return boolean
91
+     * @return boolean|null
92 92
      * @since 0.5.2
93 93
      */
94 94
     public function __construct($options = false)
@@ -393,7 +393,7 @@  discard block
 block discarded – undo
393 393
     /**
394 394
      * Use this method to get the last error ocurred
395 395
      * @param    void
396
-     * @return   string   The last error, that occured
396
+     * @return   boolean   The last error, that occured
397 397
      */
398 398
     public function get_last_error()
399 399
     {
@@ -403,7 +403,7 @@  discard block
 block discarded – undo
403 403
     /**
404 404
      * The actual decoding algorithm
405 405
      * @param string
406
-     * @return mixed
406
+     * @return false|string
407 407
      */
408 408
     protected function _decode($encoded)
409 409
     {
@@ -464,7 +464,7 @@  discard block
 block discarded – undo
464 464
     /**
465 465
      * The actual encoding algorithm
466 466
      * @param  string
467
-     * @return mixed
467
+     * @return false|string
468 468
      */
469 469
     protected function _encode($decoded)
470 470
     {
@@ -699,7 +699,7 @@  discard block
 block discarded – undo
699 699
      * Decomposes a Hangul syllable
700 700
      * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
701 701
      * @param    integer  32bit UCS4 code point
702
-     * @return   array    Either Hangul Syllable decomposed or original 32bit value as one value array
702
+     * @return   integer[]    Either Hangul Syllable decomposed or original 32bit value as one value array
703 703
      */
704 704
     protected function _hangul_decompose($char)
705 705
     {
Please login to merge, or discard this patch.
Indentation   +3367 added lines, -3367 removed lines patch added patch discarded remove patch
@@ -51,3411 +51,3411 @@
 block discarded – undo
51 51
  */
52 52
 class idna_convert {
53 53
 
54
-    private $version = '0.9.0';
55
-    protected $sub_version = 'main';
54
+	private $version = '0.9.0';
55
+	protected $sub_version = 'main';
56 56
 
57
-    // NP See below
58
-    // Internal settings, do not mess with them
59
-    protected $_punycode_prefix = 'xn--';
60
-    protected $_invalid_ucs = 0x80000000;
61
-    protected $_max_ucs = 0x10FFFF;
62
-    protected $_base = 36;
63
-    protected $_tmin = 1;
64
-    protected $_tmax = 26;
65
-    protected $_skew = 38;
66
-    protected $_damp = 700;
67
-    protected $_initial_bias = 72;
68
-    protected $_initial_n = 0x80;
69
-    protected $_sbase = 0xAC00;
70
-    protected $_lbase = 0x1100;
71
-    protected $_vbase = 0x1161;
72
-    protected $_tbase = 0x11A7;
73
-    protected $_lcount = 19;
74
-    protected $_vcount = 21;
75
-    protected $_tcount = 28;
76
-    protected $_ncount = 588;   // _vcount * _tcount
77
-    protected $_scount = 11172; // _lcount * _tcount * _vcount
78
-    protected $_error = false;
79
-    protected static $_mb_string_overload = null;
80
-    // See {@link set_paramter()} for details of how to change the following
81
-    // settings from within your script / application
82
-    protected $_api_encoding = 'utf8';   // Default input charset is UTF-8
83
-    protected $_allow_overlong = false;  // Overlong UTF-8 encodings are forbidden
84
-    protected $_strict_mode = false;     // Behave strict or not
85
-    protected $_idn_version = 2003;      // Can be either 2003 (old, default) or 2008
57
+	// NP See below
58
+	// Internal settings, do not mess with them
59
+	protected $_punycode_prefix = 'xn--';
60
+	protected $_invalid_ucs = 0x80000000;
61
+	protected $_max_ucs = 0x10FFFF;
62
+	protected $_base = 36;
63
+	protected $_tmin = 1;
64
+	protected $_tmax = 26;
65
+	protected $_skew = 38;
66
+	protected $_damp = 700;
67
+	protected $_initial_bias = 72;
68
+	protected $_initial_n = 0x80;
69
+	protected $_sbase = 0xAC00;
70
+	protected $_lbase = 0x1100;
71
+	protected $_vbase = 0x1161;
72
+	protected $_tbase = 0x11A7;
73
+	protected $_lcount = 19;
74
+	protected $_vcount = 21;
75
+	protected $_tcount = 28;
76
+	protected $_ncount = 588;   // _vcount * _tcount
77
+	protected $_scount = 11172; // _lcount * _tcount * _vcount
78
+	protected $_error = false;
79
+	protected static $_mb_string_overload = null;
80
+	// See {@link set_paramter()} for details of how to change the following
81
+	// settings from within your script / application
82
+	protected $_api_encoding = 'utf8';   // Default input charset is UTF-8
83
+	protected $_allow_overlong = false;  // Overlong UTF-8 encodings are forbidden
84
+	protected $_strict_mode = false;     // Behave strict or not
85
+	protected $_idn_version = 2003;      // Can be either 2003 (old, default) or 2008
86 86
 
87
-    /**
88
-     * the constructor
89
-     *
90
-     * @param array $options
91
-     * @return boolean
92
-     * @since 0.5.2
93
-     */
94
-    public function __construct($options = false)
95
-    {
96
-        $this->slast = $this->_sbase + $this->_lcount * $this->_vcount * $this->_tcount;
97
-        // If parameters are given, pass these to the respective method
98
-        if (is_array($options)) {
99
-            $this->set_parameter($options);
100
-        }
87
+	/**
88
+	 * the constructor
89
+	 *
90
+	 * @param array $options
91
+	 * @return boolean
92
+	 * @since 0.5.2
93
+	 */
94
+	public function __construct($options = false)
95
+	{
96
+		$this->slast = $this->_sbase + $this->_lcount * $this->_vcount * $this->_tcount;
97
+		// If parameters are given, pass these to the respective method
98
+		if (is_array($options)) {
99
+			$this->set_parameter($options);
100
+		}
101 101
 
102
-        // populate mbstring overloading cache if not set
103
-        if (self::$_mb_string_overload === null) {
104
-            self::$_mb_string_overload = (extension_loaded('mbstring') && (ini_get('mbstring.func_overload') & 0x02) === 0x02);
105
-        }
106
-    }
102
+		// populate mbstring overloading cache if not set
103
+		if (self::$_mb_string_overload === null) {
104
+			self::$_mb_string_overload = (extension_loaded('mbstring') && (ini_get('mbstring.func_overload') & 0x02) === 0x02);
105
+		}
106
+	}
107 107
 
108
-    public function get_version()
109
-    {
110
-        return $this->version.'-'.$this->sub_version;
111
-    }
108
+	public function get_version()
109
+	{
110
+		return $this->version.'-'.$this->sub_version;
111
+	}
112 112
 
113
-    /**
114
-     * Sets a new option value. Available options and values:
115
-     * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8,
116
-     *         'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8]
117
-     * [overlong - Unicode does not allow unnecessarily long encodings of chars,
118
-     *             to allow this, set this parameter to true, else to false;
119
-     *             default is false.]
120
-     * [strict - true: strict mode, good for registration purposes - Causes errors
121
-     *           on failures; false: loose mode, ideal for "wildlife" applications
122
-     *           by silently ignoring errors and returning the original input instead
123
-     *
124
-     * @param    mixed     Parameter to set (string: single parameter; array of Parameter => Value pairs)
125
-     * @param    string    Value to use (if parameter 1 is a string)
126
-     * @return   boolean   true on success, false otherwise
127
-     */
128
-    public function set_parameter($option, $value = false)
129
-    {
130
-        if (!is_array($option)) {
131
-            $option = array($option => $value);
132
-        }
133
-        foreach ($option as $k => $v) {
134
-            switch ($k) {
135
-                case 'encoding':
136
-                    switch ($v) {
137
-                        case 'utf8':
138
-                        case 'ucs4_string':
139
-                        case 'ucs4_array':
140
-                            $this->_api_encoding = $v;
141
-                            break;
142
-                        default:
143
-                            $this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
144
-                            return false;
145
-                    }
146
-                    break;
147
-                case 'overlong':
148
-                    $this->_allow_overlong = ($v) ? true : false;
149
-                    break;
150
-                case 'strict':
151
-                    $this->_strict_mode = ($v) ? true : false;
152
-                    break;
153
-                case 'idn_version':
154
-                    if (in_array($v, array('2003', '2008'))) {
155
-                        $this->_idn_version = $v;
156
-                    } else {
157
-                        $this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
158
-                    }
159
-                    break;
160
-                case 'encode_german_sz': // Deprecated
161
-                    if (!$v) {
162
-                        self::$NP['replacemaps'][0xDF] = array(0x73, 0x73);
163
-                    } else {
164
-                        unset(self::$NP['replacemaps'][0xDF]);
165
-                    }
166
-                    break;
167
-                default:
168
-                    $this->_error('Set Parameter: Unknown option ' . $k);
169
-                    return false;
170
-            }
171
-        }
172
-        return true;
173
-    }
113
+	/**
114
+	 * Sets a new option value. Available options and values:
115
+	 * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8,
116
+	 *         'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8]
117
+	 * [overlong - Unicode does not allow unnecessarily long encodings of chars,
118
+	 *             to allow this, set this parameter to true, else to false;
119
+	 *             default is false.]
120
+	 * [strict - true: strict mode, good for registration purposes - Causes errors
121
+	 *           on failures; false: loose mode, ideal for "wildlife" applications
122
+	 *           by silently ignoring errors and returning the original input instead
123
+	 *
124
+	 * @param    mixed     Parameter to set (string: single parameter; array of Parameter => Value pairs)
125
+	 * @param    string    Value to use (if parameter 1 is a string)
126
+	 * @return   boolean   true on success, false otherwise
127
+	 */
128
+	public function set_parameter($option, $value = false)
129
+	{
130
+		if (!is_array($option)) {
131
+			$option = array($option => $value);
132
+		}
133
+		foreach ($option as $k => $v) {
134
+			switch ($k) {
135
+				case 'encoding':
136
+					switch ($v) {
137
+						case 'utf8':
138
+						case 'ucs4_string':
139
+						case 'ucs4_array':
140
+							$this->_api_encoding = $v;
141
+							break;
142
+						default:
143
+							$this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
144
+							return false;
145
+					}
146
+					break;
147
+				case 'overlong':
148
+					$this->_allow_overlong = ($v) ? true : false;
149
+					break;
150
+				case 'strict':
151
+					$this->_strict_mode = ($v) ? true : false;
152
+					break;
153
+				case 'idn_version':
154
+					if (in_array($v, array('2003', '2008'))) {
155
+						$this->_idn_version = $v;
156
+					} else {
157
+						$this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
158
+					}
159
+					break;
160
+				case 'encode_german_sz': // Deprecated
161
+					if (!$v) {
162
+						self::$NP['replacemaps'][0xDF] = array(0x73, 0x73);
163
+					} else {
164
+						unset(self::$NP['replacemaps'][0xDF]);
165
+					}
166
+					break;
167
+				default:
168
+					$this->_error('Set Parameter: Unknown option ' . $k);
169
+					return false;
170
+			}
171
+		}
172
+		return true;
173
+	}
174 174
 
175
-    /**
176
-     * Decode a given ACE domain name
177
-     * @param    string   Domain name (ACE string)
178
-     * [@param    string   Desired output encoding, see {@link set_parameter}]
179
-     * @return   string   Decoded Domain name (UTF-8 or UCS-4)
180
-     */
181
-    public function decode($input, $one_time_encoding = false)
182
-    {
183
-        // Optionally set
184
-        if ($one_time_encoding) {
185
-            switch ($one_time_encoding) {
186
-                case 'utf8':
187
-                case 'ucs4_string':
188
-                case 'ucs4_array':
189
-                    break;
190
-                default:
191
-                    $this->_error('Unknown encoding ' . $one_time_encoding);
192
-                    return false;
193
-            }
194
-        }
195
-        // Make sure to drop any newline characters around
196
-        $input = trim($input);
175
+	/**
176
+	 * Decode a given ACE domain name
177
+	 * @param    string   Domain name (ACE string)
178
+	 * [@param    string   Desired output encoding, see {@link set_parameter}]
179
+	 * @return   string   Decoded Domain name (UTF-8 or UCS-4)
180
+	 */
181
+	public function decode($input, $one_time_encoding = false)
182
+	{
183
+		// Optionally set
184
+		if ($one_time_encoding) {
185
+			switch ($one_time_encoding) {
186
+				case 'utf8':
187
+				case 'ucs4_string':
188
+				case 'ucs4_array':
189
+					break;
190
+				default:
191
+					$this->_error('Unknown encoding ' . $one_time_encoding);
192
+					return false;
193
+			}
194
+		}
195
+		// Make sure to drop any newline characters around
196
+		$input = trim($input);
197 197
 
198
-        // Negotiate input and try to determine, whether it is a plain string,
199
-        // an email address or something like a complete URL
200
-        if (strpos($input, '@')) { // Maybe it is an email address
201
-            // No no in strict mode
202
-            if ($this->_strict_mode) {
203
-                $this->_error('Only simple domain name parts can be handled in strict mode');
204
-                return false;
205
-            }
206
-            list ($email_pref, $input) = explode('@', $input, 2);
207
-            $arr = explode('.', $input);
208
-            foreach ($arr as $k => $v) {
209
-                if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
210
-                    $conv = $this->_decode($v);
211
-                    if ($conv) {
212
-                        $arr[$k] = $conv;
213
-                    }
214
-                }
215
-            }
216
-            $input = join('.', $arr);
217
-            $arr = explode('.', $email_pref);
218
-            foreach ($arr as $k => $v) {
219
-                if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
220
-                    $conv = $this->_decode($v);
221
-                    if ($conv) {
222
-                        $arr[$k] = $conv;
223
-                    }
224
-                }
225
-            }
226
-            $email_pref = join('.', $arr);
227
-            $return = $email_pref . '@' . $input;
228
-        } elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters)
229
-            // No no in strict mode
230
-            if ($this->_strict_mode) {
231
-                $this->_error('Only simple domain name parts can be handled in strict mode');
232
-                return false;
233
-            }
234
-            $parsed = parse_url($input);
235
-            if (isset($parsed['host'])) {
236
-                $arr = explode('.', $parsed['host']);
237
-                foreach ($arr as $k => $v) {
238
-                    $conv = $this->_decode($v);
239
-                    if ($conv) {
240
-                        $arr[$k] = $conv;
241
-                    }
242
-                }
243
-                $parsed['host'] = join('.', $arr);
244
-                $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
245
-                        (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
246
-                        $parsed['host'].
247
-                        (empty($parsed['port']) ? '' : ':' . $parsed['port']).
248
-                        (empty($parsed['path']) ? '' : $parsed['path']).
249
-                        (empty($parsed['query']) ? '' : '?' . $parsed['query']).
250
-                        (empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
251
-            } else { // parse_url seems to have failed, try without it
252
-                $arr = explode('.', $input);
253
-                foreach ($arr as $k => $v) {
254
-                    $conv = $this->_decode($v);
255
-                    $arr[$k] = ($conv) ? $conv : $v;
256
-                }
257
-                $return = join('.', $arr);
258
-            }
259
-        } else { // Otherwise we consider it being a pure domain name string
260
-            $return = $this->_decode($input);
261
-            if (!$return) {
262
-                $return = $input;
263
-            }
264
-        }
265
-        // The output is UTF-8 by default, other output formats need conversion here
266
-        // If one time encoding is given, use this, else the objects property
267
-        switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) {
268
-            case 'utf8':        return $return; // break;
269
-            case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return));  // break;
270
-            case 'ucs4_array':  return $this->_utf8_to_ucs4($return); // break;
271
-            default:            $this->_error('Unsupported output format'); return false;
272
-        }
273
-    }
198
+		// Negotiate input and try to determine, whether it is a plain string,
199
+		// an email address or something like a complete URL
200
+		if (strpos($input, '@')) { // Maybe it is an email address
201
+			// No no in strict mode
202
+			if ($this->_strict_mode) {
203
+				$this->_error('Only simple domain name parts can be handled in strict mode');
204
+				return false;
205
+			}
206
+			list ($email_pref, $input) = explode('@', $input, 2);
207
+			$arr = explode('.', $input);
208
+			foreach ($arr as $k => $v) {
209
+				if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
210
+					$conv = $this->_decode($v);
211
+					if ($conv) {
212
+						$arr[$k] = $conv;
213
+					}
214
+				}
215
+			}
216
+			$input = join('.', $arr);
217
+			$arr = explode('.', $email_pref);
218
+			foreach ($arr as $k => $v) {
219
+				if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
220
+					$conv = $this->_decode($v);
221
+					if ($conv) {
222
+						$arr[$k] = $conv;
223
+					}
224
+				}
225
+			}
226
+			$email_pref = join('.', $arr);
227
+			$return = $email_pref . '@' . $input;
228
+		} elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters)
229
+			// No no in strict mode
230
+			if ($this->_strict_mode) {
231
+				$this->_error('Only simple domain name parts can be handled in strict mode');
232
+				return false;
233
+			}
234
+			$parsed = parse_url($input);
235
+			if (isset($parsed['host'])) {
236
+				$arr = explode('.', $parsed['host']);
237
+				foreach ($arr as $k => $v) {
238
+					$conv = $this->_decode($v);
239
+					if ($conv) {
240
+						$arr[$k] = $conv;
241
+					}
242
+				}
243
+				$parsed['host'] = join('.', $arr);
244
+				$return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
245
+						(empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
246
+						$parsed['host'].
247
+						(empty($parsed['port']) ? '' : ':' . $parsed['port']).
248
+						(empty($parsed['path']) ? '' : $parsed['path']).
249
+						(empty($parsed['query']) ? '' : '?' . $parsed['query']).
250
+						(empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
251
+			} else { // parse_url seems to have failed, try without it
252
+				$arr = explode('.', $input);
253
+				foreach ($arr as $k => $v) {
254
+					$conv = $this->_decode($v);
255
+					$arr[$k] = ($conv) ? $conv : $v;
256
+				}
257
+				$return = join('.', $arr);
258
+			}
259
+		} else { // Otherwise we consider it being a pure domain name string
260
+			$return = $this->_decode($input);
261
+			if (!$return) {
262
+				$return = $input;
263
+			}
264
+		}
265
+		// The output is UTF-8 by default, other output formats need conversion here
266
+		// If one time encoding is given, use this, else the objects property
267
+		switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) {
268
+			case 'utf8':        return $return; // break;
269
+			case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return));  // break;
270
+			case 'ucs4_array':  return $this->_utf8_to_ucs4($return); // break;
271
+			default:            $this->_error('Unsupported output format'); return false;
272
+		}
273
+	}
274 274
 
275
-    /**
276
-     * Encode a given UTF-8 domain name
277
-     * @param    string   Domain name (UTF-8 or UCS-4)
278
-     * [@param    string   Desired input encoding, see {@link set_parameter}]
279
-     * @return   string   Encoded Domain name (ACE string)
280
-     */
281
-    public function encode($decoded, $one_time_encoding = false)
282
-    {
283
-        // Forcing conversion of input to UCS4 array
284
-        // If one time encoding is given, use this, else the objects property
285
-        switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) {
286
-            case 'utf8':
287
-                $decoded = $this->_utf8_to_ucs4($decoded);
288
-                break;
289
-            case 'ucs4_string':
290
-                $decoded = $this->_ucs4_string_to_ucs4($decoded);
291
-            case 'ucs4_array':
292
-                break;
293
-            default:
294
-                $this->_error('Unsupported input format: ' . ($one_time_encoding ? $one_time_encoding : $this->_api_encoding));
295
-                return false;
296
-        }
275
+	/**
276
+	 * Encode a given UTF-8 domain name
277
+	 * @param    string   Domain name (UTF-8 or UCS-4)
278
+	 * [@param    string   Desired input encoding, see {@link set_parameter}]
279
+	 * @return   string   Encoded Domain name (ACE string)
280
+	 */
281
+	public function encode($decoded, $one_time_encoding = false)
282
+	{
283
+		// Forcing conversion of input to UCS4 array
284
+		// If one time encoding is given, use this, else the objects property
285
+		switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) {
286
+			case 'utf8':
287
+				$decoded = $this->_utf8_to_ucs4($decoded);
288
+				break;
289
+			case 'ucs4_string':
290
+				$decoded = $this->_ucs4_string_to_ucs4($decoded);
291
+			case 'ucs4_array':
292
+				break;
293
+			default:
294
+				$this->_error('Unsupported input format: ' . ($one_time_encoding ? $one_time_encoding : $this->_api_encoding));
295
+				return false;
296
+		}
297 297
 
298
-        // No input, no output, what else did you expect?
299
-        if (empty($decoded)) {
300
-            return '';
301
-        }
298
+		// No input, no output, what else did you expect?
299
+		if (empty($decoded)) {
300
+			return '';
301
+		}
302 302
 
303
-        // Anchors for iteration
304
-        $last_begin = 0;
305
-        // Output string
306
-        $output = '';
307
-        foreach ($decoded as $k => $v) {
308
-            // Make sure to use just the plain dot
309
-            switch ($v) {
310
-                case 0x3002:
311
-                case 0xFF0E:
312
-                case 0xFF61:
313
-                    $decoded[$k] = 0x2E;
314
-                    // Right, no break here, the above are converted to dots anyway
315
-                // Stumbling across an anchoring character
316
-                case 0x2E:
317
-                case 0x2F:
318
-                case 0x3A:
319
-                case 0x3F:
320
-                case 0x40:
321
-                    // Neither email addresses nor URLs allowed in strict mode
322
-                    if ($this->_strict_mode) {
323
-                        $this->_error('Neither email addresses nor URLs are allowed in strict mode.');
324
-                        return false;
325
-                    } else {
326
-                        // Skip first char
327
-                        if ($k) {
328
-                            $encoded = '';
329
-                            $encoded = $this->_encode(array_slice($decoded, $last_begin, (($k) - $last_begin)));
330
-                            if ($encoded) {
331
-                                $output .= $encoded;
332
-                            } else {
333
-                                $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k) - $last_begin)));
334
-                            }
335
-                            $output .= chr($decoded[$k]);
336
-                        }
337
-                        $last_begin = $k + 1;
338
-                    }
339
-            }
340
-        }
341
-        // Catch the rest of the string
342
-        if ($last_begin) {
343
-            $inp_len = sizeof($decoded);
344
-            $encoded = '';
345
-            $encoded = $this->_encode(array_slice($decoded, $last_begin, (($inp_len) - $last_begin)));
346
-            if ($encoded) {
347
-                $output .= $encoded;
348
-            } else {
349
-                $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($inp_len) - $last_begin)));
350
-            }
351
-            return $output;
352
-        } else {
353
-            if (false !== ($output = $this->_encode($decoded))) {
354
-                return $output;
355
-            } else {
356
-                return $this->_ucs4_to_utf8($decoded);
357
-            }
358
-        }
359
-    }
303
+		// Anchors for iteration
304
+		$last_begin = 0;
305
+		// Output string
306
+		$output = '';
307
+		foreach ($decoded as $k => $v) {
308
+			// Make sure to use just the plain dot
309
+			switch ($v) {
310
+				case 0x3002:
311
+				case 0xFF0E:
312
+				case 0xFF61:
313
+					$decoded[$k] = 0x2E;
314
+					// Right, no break here, the above are converted to dots anyway
315
+				// Stumbling across an anchoring character
316
+				case 0x2E:
317
+				case 0x2F:
318
+				case 0x3A:
319
+				case 0x3F:
320
+				case 0x40:
321
+					// Neither email addresses nor URLs allowed in strict mode
322
+					if ($this->_strict_mode) {
323
+						$this->_error('Neither email addresses nor URLs are allowed in strict mode.');
324
+						return false;
325
+					} else {
326
+						// Skip first char
327
+						if ($k) {
328
+							$encoded = '';
329
+							$encoded = $this->_encode(array_slice($decoded, $last_begin, (($k) - $last_begin)));
330
+							if ($encoded) {
331
+								$output .= $encoded;
332
+							} else {
333
+								$output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k) - $last_begin)));
334
+							}
335
+							$output .= chr($decoded[$k]);
336
+						}
337
+						$last_begin = $k + 1;
338
+					}
339
+			}
340
+		}
341
+		// Catch the rest of the string
342
+		if ($last_begin) {
343
+			$inp_len = sizeof($decoded);
344
+			$encoded = '';
345
+			$encoded = $this->_encode(array_slice($decoded, $last_begin, (($inp_len) - $last_begin)));
346
+			if ($encoded) {
347
+				$output .= $encoded;
348
+			} else {
349
+				$output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($inp_len) - $last_begin)));
350
+			}
351
+			return $output;
352
+		} else {
353
+			if (false !== ($output = $this->_encode($decoded))) {
354
+				return $output;
355
+			} else {
356
+				return $this->_ucs4_to_utf8($decoded);
357
+			}
358
+		}
359
+	}
360 360
 
361
-    /**
362
-     * Removes a weakness of encode(), which cannot properly handle URIs but instead encodes their
363
-     * path or query components, too.
364
-     * @param string  $uri  Expects the URI as a UTF-8 (or ASCII) string
365
-     * @return  string  The URI encoded to Punycode, everything but the host component is left alone
366
-     * @since 0.6.4
367
-     */
368
-    public function encode_uri($uri)
369
-    {
370
-        $parsed = parse_url($uri);
371
-        if (!isset($parsed['host'])) {
372
-            $this->_error('The given string does not look like a URI');
373
-            return false;
374
-        }
375
-        $arr = explode('.', $parsed['host']);
376
-        foreach ($arr as $k => $v) {
377
-            $conv = $this->encode($v, 'utf8');
378
-            if ($conv) {
379
-                $arr[$k] = $conv;
380
-            }
381
-        }
382
-        $parsed['host'] = join('.', $arr);
383
-        $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
384
-                (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
385
-                $parsed['host'].
386
-                (empty($parsed['port']) ? '' : ':' . $parsed['port']).
387
-                (empty($parsed['path']) ? '' : $parsed['path']).
388
-                (empty($parsed['query']) ? '' : '?' . $parsed['query']).
389
-                (empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
390
-        return $return;
391
-    }
361
+	/**
362
+	 * Removes a weakness of encode(), which cannot properly handle URIs but instead encodes their
363
+	 * path or query components, too.
364
+	 * @param string  $uri  Expects the URI as a UTF-8 (or ASCII) string
365
+	 * @return  string  The URI encoded to Punycode, everything but the host component is left alone
366
+	 * @since 0.6.4
367
+	 */
368
+	public function encode_uri($uri)
369
+	{
370
+		$parsed = parse_url($uri);
371
+		if (!isset($parsed['host'])) {
372
+			$this->_error('The given string does not look like a URI');
373
+			return false;
374
+		}
375
+		$arr = explode('.', $parsed['host']);
376
+		foreach ($arr as $k => $v) {
377
+			$conv = $this->encode($v, 'utf8');
378
+			if ($conv) {
379
+				$arr[$k] = $conv;
380
+			}
381
+		}
382
+		$parsed['host'] = join('.', $arr);
383
+		$return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
384
+				(empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
385
+				$parsed['host'].
386
+				(empty($parsed['port']) ? '' : ':' . $parsed['port']).
387
+				(empty($parsed['path']) ? '' : $parsed['path']).
388
+				(empty($parsed['query']) ? '' : '?' . $parsed['query']).
389
+				(empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
390
+		return $return;
391
+	}
392 392
 
393
-    /**
394
-     * Use this method to get the last error ocurred
395
-     * @param    void
396
-     * @return   string   The last error, that occured
397
-     */
398
-    public function get_last_error()
399
-    {
400
-        return $this->_error;
401
-    }
393
+	/**
394
+	 * Use this method to get the last error ocurred
395
+	 * @param    void
396
+	 * @return   string   The last error, that occured
397
+	 */
398
+	public function get_last_error()
399
+	{
400
+		return $this->_error;
401
+	}
402 402
 
403
-    /**
404
-     * The actual decoding algorithm
405
-     * @param string
406
-     * @return mixed
407
-     */
408
-    protected function _decode($encoded)
409
-    {
410
-        $decoded = array();
411
-        // find the Punycode prefix
412
-        if (!preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $encoded)) {
413
-            $this->_error('This is not a punycode string');
414
-            return false;
415
-        }
416
-        $encode_test = preg_replace('!^' . preg_quote($this->_punycode_prefix, '!') . '!', '', $encoded);
417
-        // If nothing left after removing the prefix, it is hopeless
418
-        if (!$encode_test) {
419
-            $this->_error('The given encoded string was empty');
420
-            return false;
421
-        }
422
-        // Find last occurence of the delimiter
423
-        $delim_pos = strrpos($encoded, '-');
424
-        if ($delim_pos > self::byteLength($this->_punycode_prefix)) {
425
-            for ($k = self::byteLength($this->_punycode_prefix); $k < $delim_pos; ++$k) {
426
-                $decoded[] = ord($encoded{$k});
427
-            }
428
-        }
429
-        $deco_len = count($decoded);
430
-        $enco_len = self::byteLength($encoded);
403
+	/**
404
+	 * The actual decoding algorithm
405
+	 * @param string
406
+	 * @return mixed
407
+	 */
408
+	protected function _decode($encoded)
409
+	{
410
+		$decoded = array();
411
+		// find the Punycode prefix
412
+		if (!preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $encoded)) {
413
+			$this->_error('This is not a punycode string');
414
+			return false;
415
+		}
416
+		$encode_test = preg_replace('!^' . preg_quote($this->_punycode_prefix, '!') . '!', '', $encoded);
417
+		// If nothing left after removing the prefix, it is hopeless
418
+		if (!$encode_test) {
419
+			$this->_error('The given encoded string was empty');
420
+			return false;
421
+		}
422
+		// Find last occurence of the delimiter
423
+		$delim_pos = strrpos($encoded, '-');
424
+		if ($delim_pos > self::byteLength($this->_punycode_prefix)) {
425
+			for ($k = self::byteLength($this->_punycode_prefix); $k < $delim_pos; ++$k) {
426
+				$decoded[] = ord($encoded{$k});
427
+			}
428
+		}
429
+		$deco_len = count($decoded);
430
+		$enco_len = self::byteLength($encoded);
431 431
 
432
-        // Wandering through the strings; init
433
-        $is_first = true;
434
-        $bias = $this->_initial_bias;
435
-        $idx = 0;
436
-        $char = $this->_initial_n;
432
+		// Wandering through the strings; init
433
+		$is_first = true;
434
+		$bias = $this->_initial_bias;
435
+		$idx = 0;
436
+		$char = $this->_initial_n;
437 437
 
438
-        for ($enco_idx = ($delim_pos) ? ($delim_pos + 1) : 0; $enco_idx < $enco_len; ++$deco_len) {
439
-            for ($old_idx = $idx, $w = 1, $k = $this->_base; 1; $k += $this->_base) {
440
-                $digit = $this->_decode_digit($encoded{$enco_idx++});
441
-                $idx += $digit * $w;
442
-                $t = ($k <= $bias) ? $this->_tmin :
443
-                        (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
444
-                if ($digit < $t) {
445
-                    break;
446
-                }
447
-                $w = (int) ($w * ($this->_base - $t));
448
-            }
449
-            $bias = $this->_adapt($idx - $old_idx, $deco_len + 1, $is_first);
450
-            $is_first = false;
451
-            $char += (int) ($idx / ($deco_len + 1));
452
-            $idx %= ($deco_len + 1);
453
-            if ($deco_len > 0) {
454
-                // Make room for the decoded char
455
-                for ($i = $deco_len; $i > $idx; $i--) {
456
-                    $decoded[$i] = $decoded[($i - 1)];
457
-                }
458
-            }
459
-            $decoded[$idx++] = $char;
460
-        }
461
-        return $this->_ucs4_to_utf8($decoded);
462
-    }
438
+		for ($enco_idx = ($delim_pos) ? ($delim_pos + 1) : 0; $enco_idx < $enco_len; ++$deco_len) {
439
+			for ($old_idx = $idx, $w = 1, $k = $this->_base; 1; $k += $this->_base) {
440
+				$digit = $this->_decode_digit($encoded{$enco_idx++});
441
+				$idx += $digit * $w;
442
+				$t = ($k <= $bias) ? $this->_tmin :
443
+						(($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
444
+				if ($digit < $t) {
445
+					break;
446
+				}
447
+				$w = (int) ($w * ($this->_base - $t));
448
+			}
449
+			$bias = $this->_adapt($idx - $old_idx, $deco_len + 1, $is_first);
450
+			$is_first = false;
451
+			$char += (int) ($idx / ($deco_len + 1));
452
+			$idx %= ($deco_len + 1);
453
+			if ($deco_len > 0) {
454
+				// Make room for the decoded char
455
+				for ($i = $deco_len; $i > $idx; $i--) {
456
+					$decoded[$i] = $decoded[($i - 1)];
457
+				}
458
+			}
459
+			$decoded[$idx++] = $char;
460
+		}
461
+		return $this->_ucs4_to_utf8($decoded);
462
+	}
463 463
 
464
-    /**
465
-     * The actual encoding algorithm
466
-     * @param  string
467
-     * @return mixed
468
-     */
469
-    protected function _encode($decoded)
470
-    {
471
-        // We cannot encode a domain name containing the Punycode prefix
472
-        $extract = self::byteLength($this->_punycode_prefix);
473
-        $check_pref = $this->_utf8_to_ucs4($this->_punycode_prefix);
474
-        $check_deco = array_slice($decoded, 0, $extract);
464
+	/**
465
+	 * The actual encoding algorithm
466
+	 * @param  string
467
+	 * @return mixed
468
+	 */
469
+	protected function _encode($decoded)
470
+	{
471
+		// We cannot encode a domain name containing the Punycode prefix
472
+		$extract = self::byteLength($this->_punycode_prefix);
473
+		$check_pref = $this->_utf8_to_ucs4($this->_punycode_prefix);
474
+		$check_deco = array_slice($decoded, 0, $extract);
475 475
 
476
-        if ($check_pref == $check_deco) {
477
-            $this->_error('This is already a punycode string');
478
-            return false;
479
-        }
480
-        // We will not try to encode strings consisting of basic code points only
481
-        $encodable = false;
482
-        foreach ($decoded as $k => $v) {
483
-            if ($v > 0x7a) {
484
-                $encodable = true;
485
-                break;
486
-            }
487
-        }
488
-        if (!$encodable) {
489
-            $this->_error('The given string does not contain encodable chars');
490
-            return false;
491
-        }
492
-        // Do NAMEPREP
493
-        $decoded = $this->_nameprep($decoded);
494
-        if (!$decoded || !is_array($decoded)) {
495
-            return false; // NAMEPREP failed
496
-        }
497
-        $deco_len = count($decoded);
498
-        if (!$deco_len) {
499
-            return false; // Empty array
500
-        }
501
-        $codecount = 0; // How many chars have been consumed
502
-        $encoded = '';
503
-        // Copy all basic code points to output
504
-        for ($i = 0; $i < $deco_len; ++$i) {
505
-            $test = $decoded[$i];
506
-            // Will match [-0-9a-zA-Z]
507
-            if ((0x2F < $test && $test < 0x40) || (0x40 < $test && $test < 0x5B) || (0x60 < $test && $test <= 0x7B) || (0x2D == $test)) {
508
-                $encoded .= chr($decoded[$i]);
509
-                $codecount++;
510
-            }
511
-        }
512
-        if ($codecount == $deco_len) {
513
-            return $encoded; // All codepoints were basic ones
514
-        }
515
-        // Start with the prefix; copy it to output
516
-        $encoded = $this->_punycode_prefix . $encoded;
517
-        // If we have basic code points in output, add an hyphen to the end
518
-        if ($codecount) {
519
-            $encoded .= '-';
520
-        }
521
-        // Now find and encode all non-basic code points
522
-        $is_first = true;
523
-        $cur_code = $this->_initial_n;
524
-        $bias = $this->_initial_bias;
525
-        $delta = 0;
526
-        while ($codecount < $deco_len) {
527
-            // Find the smallest code point >= the current code point and
528
-            // remember the last ouccrence of it in the input
529
-            for ($i = 0, $next_code = $this->_max_ucs; $i < $deco_len; $i++) {
530
-                if ($decoded[$i] >= $cur_code && $decoded[$i] <= $next_code) {
531
-                    $next_code = $decoded[$i];
532
-                }
533
-            }
534
-            $delta += ($next_code - $cur_code) * ($codecount + 1);
535
-            $cur_code = $next_code;
476
+		if ($check_pref == $check_deco) {
477
+			$this->_error('This is already a punycode string');
478
+			return false;
479
+		}
480
+		// We will not try to encode strings consisting of basic code points only
481
+		$encodable = false;
482
+		foreach ($decoded as $k => $v) {
483
+			if ($v > 0x7a) {
484
+				$encodable = true;
485
+				break;
486
+			}
487
+		}
488
+		if (!$encodable) {
489
+			$this->_error('The given string does not contain encodable chars');
490
+			return false;
491
+		}
492
+		// Do NAMEPREP
493
+		$decoded = $this->_nameprep($decoded);
494
+		if (!$decoded || !is_array($decoded)) {
495
+			return false; // NAMEPREP failed
496
+		}
497
+		$deco_len = count($decoded);
498
+		if (!$deco_len) {
499
+			return false; // Empty array
500
+		}
501
+		$codecount = 0; // How many chars have been consumed
502
+		$encoded = '';
503
+		// Copy all basic code points to output
504
+		for ($i = 0; $i < $deco_len; ++$i) {
505
+			$test = $decoded[$i];
506
+			// Will match [-0-9a-zA-Z]
507
+			if ((0x2F < $test && $test < 0x40) || (0x40 < $test && $test < 0x5B) || (0x60 < $test && $test <= 0x7B) || (0x2D == $test)) {
508
+				$encoded .= chr($decoded[$i]);
509
+				$codecount++;
510
+			}
511
+		}
512
+		if ($codecount == $deco_len) {
513
+			return $encoded; // All codepoints were basic ones
514
+		}
515
+		// Start with the prefix; copy it to output
516
+		$encoded = $this->_punycode_prefix . $encoded;
517
+		// If we have basic code points in output, add an hyphen to the end
518
+		if ($codecount) {
519
+			$encoded .= '-';
520
+		}
521
+		// Now find and encode all non-basic code points
522
+		$is_first = true;
523
+		$cur_code = $this->_initial_n;
524
+		$bias = $this->_initial_bias;
525
+		$delta = 0;
526
+		while ($codecount < $deco_len) {
527
+			// Find the smallest code point >= the current code point and
528
+			// remember the last ouccrence of it in the input
529
+			for ($i = 0, $next_code = $this->_max_ucs; $i < $deco_len; $i++) {
530
+				if ($decoded[$i] >= $cur_code && $decoded[$i] <= $next_code) {
531
+					$next_code = $decoded[$i];
532
+				}
533
+			}
534
+			$delta += ($next_code - $cur_code) * ($codecount + 1);
535
+			$cur_code = $next_code;
536 536
 
537
-            // Scan input again and encode all characters whose code point is $cur_code
538
-            for ($i = 0; $i < $deco_len; $i++) {
539
-                if ($decoded[$i] < $cur_code) {
540
-                    $delta++;
541
-                } elseif ($decoded[$i] == $cur_code) {
542
-                    for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) {
543
-                        $t = ($k <= $bias) ? $this->_tmin :
544
-                                (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
545
-                        if ($q < $t) {
546
-                            break;
547
-                        }
548
-                        $encoded .= $this->_encode_digit(intval($t + (($q - $t) % ($this->_base - $t)))); //v0.4.5 Changed from ceil() to intval()
549
-                        $q = (int) (($q - $t) / ($this->_base - $t));
550
-                    }
551
-                    $encoded .= $this->_encode_digit($q);
552
-                    $bias = $this->_adapt($delta, $codecount + 1, $is_first);
553
-                    $codecount++;
554
-                    $delta = 0;
555
-                    $is_first = false;
556
-                }
557
-            }
558
-            $delta++;
559
-            $cur_code++;
560
-        }
561
-        return $encoded;
562
-    }
537
+			// Scan input again and encode all characters whose code point is $cur_code
538
+			for ($i = 0; $i < $deco_len; $i++) {
539
+				if ($decoded[$i] < $cur_code) {
540
+					$delta++;
541
+				} elseif ($decoded[$i] == $cur_code) {
542
+					for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) {
543
+						$t = ($k <= $bias) ? $this->_tmin :
544
+								(($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
545
+						if ($q < $t) {
546
+							break;
547
+						}
548
+						$encoded .= $this->_encode_digit(intval($t + (($q - $t) % ($this->_base - $t)))); //v0.4.5 Changed from ceil() to intval()
549
+						$q = (int) (($q - $t) / ($this->_base - $t));
550
+					}
551
+					$encoded .= $this->_encode_digit($q);
552
+					$bias = $this->_adapt($delta, $codecount + 1, $is_first);
553
+					$codecount++;
554
+					$delta = 0;
555
+					$is_first = false;
556
+				}
557
+			}
558
+			$delta++;
559
+			$cur_code++;
560
+		}
561
+		return $encoded;
562
+	}
563 563
 
564
-    /**
565
-     * Adapt the bias according to the current code point and position
566
-     * @param int $delta
567
-     * @param int $npoints
568
-     * @param int $is_first
569
-     * @return int
570
-     */
571
-    protected function _adapt($delta, $npoints, $is_first)
572
-    {
573
-        $delta = intval($is_first ? ($delta / $this->_damp) : ($delta / 2));
574
-        $delta += intval($delta / $npoints);
575
-        for ($k = 0; $delta > (($this->_base - $this->_tmin) * $this->_tmax) / 2; $k += $this->_base) {
576
-            $delta = intval($delta / ($this->_base - $this->_tmin));
577
-        }
578
-        return intval($k + ($this->_base - $this->_tmin + 1) * $delta / ($delta + $this->_skew));
579
-    }
564
+	/**
565
+	 * Adapt the bias according to the current code point and position
566
+	 * @param int $delta
567
+	 * @param int $npoints
568
+	 * @param int $is_first
569
+	 * @return int
570
+	 */
571
+	protected function _adapt($delta, $npoints, $is_first)
572
+	{
573
+		$delta = intval($is_first ? ($delta / $this->_damp) : ($delta / 2));
574
+		$delta += intval($delta / $npoints);
575
+		for ($k = 0; $delta > (($this->_base - $this->_tmin) * $this->_tmax) / 2; $k += $this->_base) {
576
+			$delta = intval($delta / ($this->_base - $this->_tmin));
577
+		}
578
+		return intval($k + ($this->_base - $this->_tmin + 1) * $delta / ($delta + $this->_skew));
579
+	}
580 580
 
581
-    /**
582
-     * Encoding a certain digit
583
-     * @param    int $d
584
-     * @return string
585
-     */
586
-    protected function _encode_digit($d)
587
-    {
588
-        return chr($d + 22 + 75 * ($d < 26));
589
-    }
581
+	/**
582
+	 * Encoding a certain digit
583
+	 * @param    int $d
584
+	 * @return string
585
+	 */
586
+	protected function _encode_digit($d)
587
+	{
588
+		return chr($d + 22 + 75 * ($d < 26));
589
+	}
590 590
 
591
-    /**
592
-     * Decode a certain digit
593
-     * @param    int $cp
594
-     * @return int
595
-     */
596
-    protected function _decode_digit($cp)
597
-    {
598
-        $cp = ord($cp);
599
-        return ($cp - 48 < 10) ? $cp - 22 : (($cp - 65 < 26) ? $cp - 65 : (($cp - 97 < 26) ? $cp - 97 : $this->_base));
600
-    }
591
+	/**
592
+	 * Decode a certain digit
593
+	 * @param    int $cp
594
+	 * @return int
595
+	 */
596
+	protected function _decode_digit($cp)
597
+	{
598
+		$cp = ord($cp);
599
+		return ($cp - 48 < 10) ? $cp - 22 : (($cp - 65 < 26) ? $cp - 65 : (($cp - 97 < 26) ? $cp - 97 : $this->_base));
600
+	}
601 601
 
602
-    /**
603
-     * Internal error handling method
604
-     * @param  string $error
605
-     */
606
-    protected function _error($error = '')
607
-    {
608
-        $this->_error = $error;
609
-    }
602
+	/**
603
+	 * Internal error handling method
604
+	 * @param  string $error
605
+	 */
606
+	protected function _error($error = '')
607
+	{
608
+		$this->_error = $error;
609
+	}
610 610
 
611
-    /**
612
-     * Do Nameprep according to RFC3491 and RFC3454
613
-     * @param    array    Unicode Characters
614
-     * @return   string   Unicode Characters, Nameprep'd
615
-     */
616
-    protected function _nameprep($input)
617
-    {
618
-        $output = array();
619
-        //
620
-        // Mapping
621
-        // Walking through the input array, performing the required steps on each of
622
-        // the input chars and putting the result into the output array
623
-        // While mapping required chars we apply the cannonical ordering
624
-        foreach ($input as $v) {
625
-            // Map to nothing == skip that code point
626
-            if (in_array($v, self::$NP['map_nothing'])) {
627
-                continue;
628
-            }
629
-            // Try to find prohibited input
630
-            if (in_array($v, self::$NP['prohibit']) || in_array($v, self::$NP['general_prohibited'])) {
631
-                $this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
632
-                return false;
633
-            }
634
-            foreach (self::$NP['prohibit_ranges'] as $range) {
635
-                if ($range[0] <= $v && $v <= $range[1]) {
636
-                    $this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
637
-                    return false;
638
-                }
639
-            }
611
+	/**
612
+	 * Do Nameprep according to RFC3491 and RFC3454
613
+	 * @param    array    Unicode Characters
614
+	 * @return   string   Unicode Characters, Nameprep'd
615
+	 */
616
+	protected function _nameprep($input)
617
+	{
618
+		$output = array();
619
+		//
620
+		// Mapping
621
+		// Walking through the input array, performing the required steps on each of
622
+		// the input chars and putting the result into the output array
623
+		// While mapping required chars we apply the cannonical ordering
624
+		foreach ($input as $v) {
625
+			// Map to nothing == skip that code point
626
+			if (in_array($v, self::$NP['map_nothing'])) {
627
+				continue;
628
+			}
629
+			// Try to find prohibited input
630
+			if (in_array($v, self::$NP['prohibit']) || in_array($v, self::$NP['general_prohibited'])) {
631
+				$this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
632
+				return false;
633
+			}
634
+			foreach (self::$NP['prohibit_ranges'] as $range) {
635
+				if ($range[0] <= $v && $v <= $range[1]) {
636
+					$this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
637
+					return false;
638
+				}
639
+			}
640 640
 
641
-            if (0xAC00 <= $v && $v <= 0xD7AF) {
642
-                // Hangul syllable decomposition
643
-                foreach ($this->_hangul_decompose($v) as $out) {
644
-                    $output[] = (int) $out;
645
-                }
646
-            } elseif (($this->_idn_version == '2003') && isset(self::$NP['replacemaps_2003'][$v])) {
647
-                foreach ($this->_apply_cannonical_ordering(self::$NP['replacemaps_2003'][$v]) as $out) {
648
-                    $output[] = (int) $out;
649
-                }
650
-            } elseif (($this->_idn_version == '2008') && isset(self::$NP['replacemaps'][$v])) {
651
-                foreach ($this->_apply_cannonical_ordering(self::$NP['replacemaps'][$v]) as $out) {
652
-                    $output[] = (int) $out;
653
-                }
654
-            } else {
655
-                $output[] = (int) $v;
656
-            }
657
-        }
658
-        // Before applying any Combining, try to rearrange any Hangul syllables
659
-        $output = $this->_hangul_compose($output);
660
-        //
661
-        // Combine code points
662
-        //
663
-        $last_class = 0;
664
-        $last_starter = 0;
665
-        $out_len = count($output);
666
-        for ($i = 0; $i < $out_len; ++$i) {
667
-            $class = $this->_get_combining_class($output[$i]);
668
-            if ((!$last_class || $last_class > $class) && $class) {
669
-                // Try to match
670
-                $seq_len = $i - $last_starter;
671
-                $out = $this->_combine(array_slice($output, $last_starter, $seq_len));
672
-                // On match: Replace the last starter with the composed character and remove
673
-                // the now redundant non-starter(s)
674
-                if ($out) {
675
-                    $output[$last_starter] = $out;
676
-                    if (count($out) != $seq_len) {
677
-                        for ($j = $i + 1; $j < $out_len; ++$j) {
678
-                            $output[$j - 1] = $output[$j];
679
-                        }
680
-                        unset($output[$out_len]);
681
-                    }
682
-                    // Rewind the for loop by one, since there can be more possible compositions
683
-                    $i--;
684
-                    $out_len--;
685
-                    $last_class = ($i == $last_starter) ? 0 : $this->_get_combining_class($output[$i - 1]);
686
-                    continue;
687
-                }
688
-            }
689
-            // The current class is 0
690
-            if (!$class) {
691
-                $last_starter = $i;
692
-            }
693
-            $last_class = $class;
694
-        }
695
-        return $output;
696
-    }
641
+			if (0xAC00 <= $v && $v <= 0xD7AF) {
642
+				// Hangul syllable decomposition
643
+				foreach ($this->_hangul_decompose($v) as $out) {
644
+					$output[] = (int) $out;
645
+				}
646
+			} elseif (($this->_idn_version == '2003') && isset(self::$NP['replacemaps_2003'][$v])) {
647
+				foreach ($this->_apply_cannonical_ordering(self::$NP['replacemaps_2003'][$v]) as $out) {
648
+					$output[] = (int) $out;
649
+				}
650
+			} elseif (($this->_idn_version == '2008') && isset(self::$NP['replacemaps'][$v])) {
651
+				foreach ($this->_apply_cannonical_ordering(self::$NP['replacemaps'][$v]) as $out) {
652
+					$output[] = (int) $out;
653
+				}
654
+			} else {
655
+				$output[] = (int) $v;
656
+			}
657
+		}
658
+		// Before applying any Combining, try to rearrange any Hangul syllables
659
+		$output = $this->_hangul_compose($output);
660
+		//
661
+		// Combine code points
662
+		//
663
+		$last_class = 0;
664
+		$last_starter = 0;
665
+		$out_len = count($output);
666
+		for ($i = 0; $i < $out_len; ++$i) {
667
+			$class = $this->_get_combining_class($output[$i]);
668
+			if ((!$last_class || $last_class > $class) && $class) {
669
+				// Try to match
670
+				$seq_len = $i - $last_starter;
671
+				$out = $this->_combine(array_slice($output, $last_starter, $seq_len));
672
+				// On match: Replace the last starter with the composed character and remove
673
+				// the now redundant non-starter(s)
674
+				if ($out) {
675
+					$output[$last_starter] = $out;
676
+					if (count($out) != $seq_len) {
677
+						for ($j = $i + 1; $j < $out_len; ++$j) {
678
+							$output[$j - 1] = $output[$j];
679
+						}
680
+						unset($output[$out_len]);
681
+					}
682
+					// Rewind the for loop by one, since there can be more possible compositions
683
+					$i--;
684
+					$out_len--;
685
+					$last_class = ($i == $last_starter) ? 0 : $this->_get_combining_class($output[$i - 1]);
686
+					continue;
687
+				}
688
+			}
689
+			// The current class is 0
690
+			if (!$class) {
691
+				$last_starter = $i;
692
+			}
693
+			$last_class = $class;
694
+		}
695
+		return $output;
696
+	}
697 697
 
698
-    /**
699
-     * Decomposes a Hangul syllable
700
-     * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
701
-     * @param    integer  32bit UCS4 code point
702
-     * @return   array    Either Hangul Syllable decomposed or original 32bit value as one value array
703
-     */
704
-    protected function _hangul_decompose($char)
705
-    {
706
-        $sindex = (int) $char - $this->_sbase;
707
-        if ($sindex < 0 || $sindex >= $this->_scount) {
708
-            return array($char);
709
-        }
710
-        $result = array();
711
-        $result[] = (int) $this->_lbase + $sindex / $this->_ncount;
712
-        $result[] = (int) $this->_vbase + ($sindex % $this->_ncount) / $this->_tcount;
713
-        $T = intval($this->_tbase + $sindex % $this->_tcount);
714
-        if ($T != $this->_tbase) {
715
-            $result[] = $T;
716
-        }
717
-        return $result;
718
-    }
698
+	/**
699
+	 * Decomposes a Hangul syllable
700
+	 * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
701
+	 * @param    integer  32bit UCS4 code point
702
+	 * @return   array    Either Hangul Syllable decomposed or original 32bit value as one value array
703
+	 */
704
+	protected function _hangul_decompose($char)
705
+	{
706
+		$sindex = (int) $char - $this->_sbase;
707
+		if ($sindex < 0 || $sindex >= $this->_scount) {
708
+			return array($char);
709
+		}
710
+		$result = array();
711
+		$result[] = (int) $this->_lbase + $sindex / $this->_ncount;
712
+		$result[] = (int) $this->_vbase + ($sindex % $this->_ncount) / $this->_tcount;
713
+		$T = intval($this->_tbase + $sindex % $this->_tcount);
714
+		if ($T != $this->_tbase) {
715
+			$result[] = $T;
716
+		}
717
+		return $result;
718
+	}
719 719
 
720
-    /**
721
-     * Ccomposes a Hangul syllable
722
-     * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
723
-     * @param    array    Decomposed UCS4 sequence
724
-     * @return   array    UCS4 sequence with syllables composed
725
-     */
726
-    protected function _hangul_compose($input)
727
-    {
728
-        $inp_len = count($input);
729
-        if (!$inp_len) {
730
-            return array();
731
-        }
732
-        $result = array();
733
-        $last = (int) $input[0];
734
-        $result[] = $last; // copy first char from input to output
720
+	/**
721
+	 * Ccomposes a Hangul syllable
722
+	 * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
723
+	 * @param    array    Decomposed UCS4 sequence
724
+	 * @return   array    UCS4 sequence with syllables composed
725
+	 */
726
+	protected function _hangul_compose($input)
727
+	{
728
+		$inp_len = count($input);
729
+		if (!$inp_len) {
730
+			return array();
731
+		}
732
+		$result = array();
733
+		$last = (int) $input[0];
734
+		$result[] = $last; // copy first char from input to output
735 735
 
736
-        for ($i = 1; $i < $inp_len; ++$i) {
737
-            $char = (int) $input[$i];
738
-            $sindex = $last - $this->_sbase;
739
-            $lindex = $last - $this->_lbase;
740
-            $vindex = $char - $this->_vbase;
741
-            $tindex = $char - $this->_tbase;
742
-            // Find out, whether two current characters are LV and T
743
-            if (0 <= $sindex && $sindex < $this->_scount && ($sindex % $this->_tcount == 0) && 0 <= $tindex && $tindex <= $this->_tcount) {
744
-                // create syllable of form LVT
745
-                $last += $tindex;
746
-                $result[(count($result) - 1)] = $last; // reset last
747
-                continue; // discard char
748
-            }
749
-            // Find out, whether two current characters form L and V
750
-            if (0 <= $lindex && $lindex < $this->_lcount && 0 <= $vindex && $vindex < $this->_vcount) {
751
-                // create syllable of form LV
752
-                $last = (int) $this->_sbase + ($lindex * $this->_vcount + $vindex) * $this->_tcount;
753
-                $result[(count($result) - 1)] = $last; // reset last
754
-                continue; // discard char
755
-            }
756
-            // if neither case was true, just add the character
757
-            $last = $char;
758
-            $result[] = $char;
759
-        }
760
-        return $result;
761
-    }
736
+		for ($i = 1; $i < $inp_len; ++$i) {
737
+			$char = (int) $input[$i];
738
+			$sindex = $last - $this->_sbase;
739
+			$lindex = $last - $this->_lbase;
740
+			$vindex = $char - $this->_vbase;
741
+			$tindex = $char - $this->_tbase;
742
+			// Find out, whether two current characters are LV and T
743
+			if (0 <= $sindex && $sindex < $this->_scount && ($sindex % $this->_tcount == 0) && 0 <= $tindex && $tindex <= $this->_tcount) {
744
+				// create syllable of form LVT
745
+				$last += $tindex;
746
+				$result[(count($result) - 1)] = $last; // reset last
747
+				continue; // discard char
748
+			}
749
+			// Find out, whether two current characters form L and V
750
+			if (0 <= $lindex && $lindex < $this->_lcount && 0 <= $vindex && $vindex < $this->_vcount) {
751
+				// create syllable of form LV
752
+				$last = (int) $this->_sbase + ($lindex * $this->_vcount + $vindex) * $this->_tcount;
753
+				$result[(count($result) - 1)] = $last; // reset last
754
+				continue; // discard char
755
+			}
756
+			// if neither case was true, just add the character
757
+			$last = $char;
758
+			$result[] = $char;
759
+		}
760
+		return $result;
761
+	}
762 762
 
763
-    /**
764
-     * Returns the combining class of a certain wide char
765
-     * @param    integer    Wide char to check (32bit integer)
766
-     * @return   integer    Combining class if found, else 0
767
-     */
768
-    protected function _get_combining_class($char)
769
-    {
770
-        return isset(self::$NP['norm_combcls'][$char]) ? self::$NP['norm_combcls'][$char] : 0;
771
-    }
763
+	/**
764
+	 * Returns the combining class of a certain wide char
765
+	 * @param    integer    Wide char to check (32bit integer)
766
+	 * @return   integer    Combining class if found, else 0
767
+	 */
768
+	protected function _get_combining_class($char)
769
+	{
770
+		return isset(self::$NP['norm_combcls'][$char]) ? self::$NP['norm_combcls'][$char] : 0;
771
+	}
772 772
 
773
-    /**
774
-     * Applies the cannonical ordering of a decomposed UCS4 sequence
775
-     * @param    array      Decomposed UCS4 sequence
776
-     * @return   array      Ordered USC4 sequence
777
-     */
778
-    protected function _apply_cannonical_ordering($input)
779
-    {
780
-        $swap = true;
781
-        $size = count($input);
782
-        while ($swap) {
783
-            $swap = false;
784
-            $last = $this->_get_combining_class(intval($input[0]));
785
-            for ($i = 0; $i < $size - 1; ++$i) {
786
-                $next = $this->_get_combining_class(intval($input[$i + 1]));
787
-                if ($next != 0 && $last > $next) {
788
-                    // Move item leftward until it fits
789
-                    for ($j = $i + 1; $j > 0; --$j) {
790
-                        if ($this->_get_combining_class(intval($input[$j - 1])) <= $next) {
791
-                            break;
792
-                        }
793
-                        $t = intval($input[$j]);
794
-                        $input[$j] = intval($input[$j - 1]);
795
-                        $input[$j - 1] = $t;
796
-                        $swap = true;
797
-                    }
798
-                    // Reentering the loop looking at the old character again
799
-                    $next = $last;
800
-                }
801
-                $last = $next;
802
-            }
803
-        }
804
-        return $input;
805
-    }
773
+	/**
774
+	 * Applies the cannonical ordering of a decomposed UCS4 sequence
775
+	 * @param    array      Decomposed UCS4 sequence
776
+	 * @return   array      Ordered USC4 sequence
777
+	 */
778
+	protected function _apply_cannonical_ordering($input)
779
+	{
780
+		$swap = true;
781
+		$size = count($input);
782
+		while ($swap) {
783
+			$swap = false;
784
+			$last = $this->_get_combining_class(intval($input[0]));
785
+			for ($i = 0; $i < $size - 1; ++$i) {
786
+				$next = $this->_get_combining_class(intval($input[$i + 1]));
787
+				if ($next != 0 && $last > $next) {
788
+					// Move item leftward until it fits
789
+					for ($j = $i + 1; $j > 0; --$j) {
790
+						if ($this->_get_combining_class(intval($input[$j - 1])) <= $next) {
791
+							break;
792
+						}
793
+						$t = intval($input[$j]);
794
+						$input[$j] = intval($input[$j - 1]);
795
+						$input[$j - 1] = $t;
796
+						$swap = true;
797
+					}
798
+					// Reentering the loop looking at the old character again
799
+					$next = $last;
800
+				}
801
+				$last = $next;
802
+			}
803
+		}
804
+		return $input;
805
+	}
806 806
 
807
-    /**
808
-     * Do composition of a sequence of starter and non-starter
809
-     * @param    array      UCS4 Decomposed sequence
810
-     * @return   array      Ordered USC4 sequence
811
-     */
812
-    protected function _combine($input)
813
-    {
814
-        $inp_len = count($input);
815
-        if (0 == $inp_len) {
816
-            return false;
817
-        }
818
-        foreach (self::$NP['replacemaps'] as $np_src => $np_target) {
819
-            if ($np_target[0] != $input[0]) {
820
-                continue;
821
-            }
822
-            if (count($np_target) != $inp_len) {
823
-                continue;
824
-            }
825
-            $hit = false;
826
-            foreach ($input as $k2 => $v2) {
827
-                if ($v2 == $np_target[$k2]) {
828
-                    $hit = true;
829
-                } else {
830
-                    $hit = false;
831
-                    break;
832
-                }
833
-            }
834
-            if ($hit) {
835
-                return $np_src;
836
-            }
837
-        }
838
-        return false;
839
-    }
807
+	/**
808
+	 * Do composition of a sequence of starter and non-starter
809
+	 * @param    array      UCS4 Decomposed sequence
810
+	 * @return   array      Ordered USC4 sequence
811
+	 */
812
+	protected function _combine($input)
813
+	{
814
+		$inp_len = count($input);
815
+		if (0 == $inp_len) {
816
+			return false;
817
+		}
818
+		foreach (self::$NP['replacemaps'] as $np_src => $np_target) {
819
+			if ($np_target[0] != $input[0]) {
820
+				continue;
821
+			}
822
+			if (count($np_target) != $inp_len) {
823
+				continue;
824
+			}
825
+			$hit = false;
826
+			foreach ($input as $k2 => $v2) {
827
+				if ($v2 == $np_target[$k2]) {
828
+					$hit = true;
829
+				} else {
830
+					$hit = false;
831
+					break;
832
+				}
833
+			}
834
+			if ($hit) {
835
+				return $np_src;
836
+			}
837
+		}
838
+		return false;
839
+	}
840 840
 
841
-    /**
842
-     * This converts an UTF-8 encoded string to its UCS-4 representation
843
-     * By talking about UCS-4 "strings" we mean arrays of 32bit integers representing
844
-     * each of the "chars". This is due to PHP not being able to handle strings with
845
-     * bit depth different from 8. This apllies to the reverse method _ucs4_to_utf8(), too.
846
-     * The following UTF-8 encodings are supported:
847
-     * bytes bits  representation
848
-     * 1        7  0xxxxxxx
849
-     * 2       11  110xxxxx 10xxxxxx
850
-     * 3       16  1110xxxx 10xxxxxx 10xxxxxx
851
-     * 4       21  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
852
-     * 5       26  111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
853
-     * 6       31  1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
854
-     * Each x represents a bit that can be used to store character data.
855
-     * The five and six byte sequences are part of Annex D of ISO/IEC 10646-1:2000
856
-     * @param string $input
857
-     * @return string
858
-     */
859
-    protected function _utf8_to_ucs4($input)
860
-    {
861
-        $output = array();
862
-        $out_len = 0;
863
-        $inp_len = self::byteLength($input);
864
-        $mode = 'next';
865
-        $test = 'none';
866
-        for ($k = 0; $k < $inp_len; ++$k) {
867
-            $v = ord($input{$k}); // Extract byte from input string
868
-            if ($v < 128) { // We found an ASCII char - put into stirng as is
869
-                $output[$out_len] = $v;
870
-                ++$out_len;
871
-                if ('add' == $mode) {
872
-                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
873
-                    return false;
874
-                }
875
-                continue;
876
-            }
877
-            if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char
878
-                $start_byte = $v;
879
-                $mode = 'add';
880
-                $test = 'range';
881
-                if ($v >> 5 == 6) { // &110xxxxx 10xxxxx
882
-                    $next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left
883
-                    $v = ($v - 192) << 6;
884
-                } elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx
885
-                    $next_byte = 1;
886
-                    $v = ($v - 224) << 12;
887
-                } elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
888
-                    $next_byte = 2;
889
-                    $v = ($v - 240) << 18;
890
-                } elseif ($v >> 2 == 62) { // &111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
891
-                    $next_byte = 3;
892
-                    $v = ($v - 248) << 24;
893
-                } elseif ($v >> 1 == 126) { // &1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
894
-                    $next_byte = 4;
895
-                    $v = ($v - 252) << 30;
896
-                } else {
897
-                    $this->_error('This might be UTF-8, but I don\'t understand it at byte ' . $k);
898
-                    return false;
899
-                }
900
-                if ('add' == $mode) {
901
-                    $output[$out_len] = (int) $v;
902
-                    ++$out_len;
903
-                    continue;
904
-                }
905
-            }
906
-            if ('add' == $mode) {
907
-                if (!$this->_allow_overlong && $test == 'range') {
908
-                    $test = 'none';
909
-                    if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
910
-                        $this->_error('Bogus UTF-8 character detected (out of legal range) at byte ' . $k);
911
-                        return false;
912
-                    }
913
-                }
914
-                if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx
915
-                    $v = ($v - 128) << ($next_byte * 6);
916
-                    $output[($out_len - 1)] += $v;
917
-                    --$next_byte;
918
-                } else {
919
-                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
920
-                    return false;
921
-                }
922
-                if ($next_byte < 0) {
923
-                    $mode = 'next';
924
-                }
925
-            }
926
-        } // for
927
-        return $output;
928
-    }
841
+	/**
842
+	 * This converts an UTF-8 encoded string to its UCS-4 representation
843
+	 * By talking about UCS-4 "strings" we mean arrays of 32bit integers representing
844
+	 * each of the "chars". This is due to PHP not being able to handle strings with
845
+	 * bit depth different from 8. This apllies to the reverse method _ucs4_to_utf8(), too.
846
+	 * The following UTF-8 encodings are supported:
847
+	 * bytes bits  representation
848
+	 * 1        7  0xxxxxxx
849
+	 * 2       11  110xxxxx 10xxxxxx
850
+	 * 3       16  1110xxxx 10xxxxxx 10xxxxxx
851
+	 * 4       21  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
852
+	 * 5       26  111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
853
+	 * 6       31  1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
854
+	 * Each x represents a bit that can be used to store character data.
855
+	 * The five and six byte sequences are part of Annex D of ISO/IEC 10646-1:2000
856
+	 * @param string $input
857
+	 * @return string
858
+	 */
859
+	protected function _utf8_to_ucs4($input)
860
+	{
861
+		$output = array();
862
+		$out_len = 0;
863
+		$inp_len = self::byteLength($input);
864
+		$mode = 'next';
865
+		$test = 'none';
866
+		for ($k = 0; $k < $inp_len; ++$k) {
867
+			$v = ord($input{$k}); // Extract byte from input string
868
+			if ($v < 128) { // We found an ASCII char - put into stirng as is
869
+				$output[$out_len] = $v;
870
+				++$out_len;
871
+				if ('add' == $mode) {
872
+					$this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
873
+					return false;
874
+				}
875
+				continue;
876
+			}
877
+			if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char
878
+				$start_byte = $v;
879
+				$mode = 'add';
880
+				$test = 'range';
881
+				if ($v >> 5 == 6) { // &110xxxxx 10xxxxx
882
+					$next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left
883
+					$v = ($v - 192) << 6;
884
+				} elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx
885
+					$next_byte = 1;
886
+					$v = ($v - 224) << 12;
887
+				} elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
888
+					$next_byte = 2;
889
+					$v = ($v - 240) << 18;
890
+				} elseif ($v >> 2 == 62) { // &111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
891
+					$next_byte = 3;
892
+					$v = ($v - 248) << 24;
893
+				} elseif ($v >> 1 == 126) { // &1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
894
+					$next_byte = 4;
895
+					$v = ($v - 252) << 30;
896
+				} else {
897
+					$this->_error('This might be UTF-8, but I don\'t understand it at byte ' . $k);
898
+					return false;
899
+				}
900
+				if ('add' == $mode) {
901
+					$output[$out_len] = (int) $v;
902
+					++$out_len;
903
+					continue;
904
+				}
905
+			}
906
+			if ('add' == $mode) {
907
+				if (!$this->_allow_overlong && $test == 'range') {
908
+					$test = 'none';
909
+					if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
910
+						$this->_error('Bogus UTF-8 character detected (out of legal range) at byte ' . $k);
911
+						return false;
912
+					}
913
+				}
914
+				if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx
915
+					$v = ($v - 128) << ($next_byte * 6);
916
+					$output[($out_len - 1)] += $v;
917
+					--$next_byte;
918
+				} else {
919
+					$this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
920
+					return false;
921
+				}
922
+				if ($next_byte < 0) {
923
+					$mode = 'next';
924
+				}
925
+			}
926
+		} // for
927
+		return $output;
928
+	}
929 929
 
930
-    /**
931
-     * Convert UCS-4 string into UTF-8 string
932
-     * See _utf8_to_ucs4() for details
933
-     * @param string  $input
934
-     * @return string
935
-     */
936
-    protected function _ucs4_to_utf8($input)
937
-    {
938
-        $output = '';
939
-        foreach ($input as $k => $v) {
940
-            if ($v < 128) { // 7bit are transferred literally
941
-                $output .= chr($v);
942
-            } elseif ($v < (1 << 11)) { // 2 bytes
943
-                $output .= chr(192 + ($v >> 6)) . chr(128 + ($v & 63));
944
-            } elseif ($v < (1 << 16)) { // 3 bytes
945
-                $output .= chr(224 + ($v >> 12)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
946
-            } elseif ($v < (1 << 21)) { // 4 bytes
947
-                $output .= chr(240 + ($v >> 18)) . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
948
-            } else {
949
-                $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte ' . $k);
950
-                return false;
951
-            }
952
-        }
953
-        return $output;
954
-    }
930
+	/**
931
+	 * Convert UCS-4 string into UTF-8 string
932
+	 * See _utf8_to_ucs4() for details
933
+	 * @param string  $input
934
+	 * @return string
935
+	 */
936
+	protected function _ucs4_to_utf8($input)
937
+	{
938
+		$output = '';
939
+		foreach ($input as $k => $v) {
940
+			if ($v < 128) { // 7bit are transferred literally
941
+				$output .= chr($v);
942
+			} elseif ($v < (1 << 11)) { // 2 bytes
943
+				$output .= chr(192 + ($v >> 6)) . chr(128 + ($v & 63));
944
+			} elseif ($v < (1 << 16)) { // 3 bytes
945
+				$output .= chr(224 + ($v >> 12)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
946
+			} elseif ($v < (1 << 21)) { // 4 bytes
947
+				$output .= chr(240 + ($v >> 18)) . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
948
+			} else {
949
+				$this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte ' . $k);
950
+				return false;
951
+			}
952
+		}
953
+		return $output;
954
+	}
955 955
 
956
-    /**
957
-     * Convert UCS-4 array into UCS-4 string
958
-     *
959
-     * @param array $input
960
-     * @return string
961
-     */
962
-    protected function _ucs4_to_ucs4_string($input)
963
-    {
964
-        $output = '';
965
-        // Take array values and split output to 4 bytes per value
966
-        // The bit mask is 255, which reads &11111111
967
-        foreach ($input as $v) {
968
-            $output .= chr(($v >> 24) & 255) . chr(($v >> 16) & 255) . chr(($v >> 8) & 255) . chr($v & 255);
969
-        }
970
-        return $output;
971
-    }
956
+	/**
957
+	 * Convert UCS-4 array into UCS-4 string
958
+	 *
959
+	 * @param array $input
960
+	 * @return string
961
+	 */
962
+	protected function _ucs4_to_ucs4_string($input)
963
+	{
964
+		$output = '';
965
+		// Take array values and split output to 4 bytes per value
966
+		// The bit mask is 255, which reads &11111111
967
+		foreach ($input as $v) {
968
+			$output .= chr(($v >> 24) & 255) . chr(($v >> 16) & 255) . chr(($v >> 8) & 255) . chr($v & 255);
969
+		}
970
+		return $output;
971
+	}
972 972
 
973
-    /**
974
-     * Convert UCS-4 strin into UCS-4 garray
975
-     *
976
-     * @param  string $input
977
-     * @return array
978
-     */
979
-    protected function _ucs4_string_to_ucs4($input)
980
-    {
981
-        $output = array();
982
-        $inp_len = self::byteLength($input);
983
-        // Input length must be dividable by 4
984
-        if ($inp_len % 4) {
985
-            $this->_error('Input UCS4 string is broken');
986
-            return false;
987
-        }
988
-        // Empty input - return empty output
989
-        if (!$inp_len) {
990
-            return $output;
991
-        }
992
-        for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) {
993
-            // Increment output position every 4 input bytes
994
-            if (!($i % 4)) {
995
-                $out_len++;
996
-                $output[$out_len] = 0;
997
-            }
998
-            $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
999
-        }
1000
-        return $output;
1001
-    }
973
+	/**
974
+	 * Convert UCS-4 strin into UCS-4 garray
975
+	 *
976
+	 * @param  string $input
977
+	 * @return array
978
+	 */
979
+	protected function _ucs4_string_to_ucs4($input)
980
+	{
981
+		$output = array();
982
+		$inp_len = self::byteLength($input);
983
+		// Input length must be dividable by 4
984
+		if ($inp_len % 4) {
985
+			$this->_error('Input UCS4 string is broken');
986
+			return false;
987
+		}
988
+		// Empty input - return empty output
989
+		if (!$inp_len) {
990
+			return $output;
991
+		}
992
+		for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) {
993
+			// Increment output position every 4 input bytes
994
+			if (!($i % 4)) {
995
+				$out_len++;
996
+				$output[$out_len] = 0;
997
+			}
998
+			$output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
999
+		}
1000
+		return $output;
1001
+	}
1002 1002
 
1003
-    /**
1004
-     * Gets the length of a string in bytes even if mbstring function
1005
-     * overloading is turned on
1006
-     *
1007
-     * @param string $string the string for which to get the length.
1008
-     * @return integer the length of the string in bytes.
1009
-     */
1010
-    protected static function byteLength($string)
1011
-    {
1012
-        if (self::$_mb_string_overload) {
1013
-            return mb_strlen($string, '8bit');
1014
-        }
1015
-        return strlen((binary) $string);
1016
-    }
1003
+	/**
1004
+	 * Gets the length of a string in bytes even if mbstring function
1005
+	 * overloading is turned on
1006
+	 *
1007
+	 * @param string $string the string for which to get the length.
1008
+	 * @return integer the length of the string in bytes.
1009
+	 */
1010
+	protected static function byteLength($string)
1011
+	{
1012
+		if (self::$_mb_string_overload) {
1013
+			return mb_strlen($string, '8bit');
1014
+		}
1015
+		return strlen((binary) $string);
1016
+	}
1017 1017
 
1018
-    /**
1019
-     * Attempts to return a concrete IDNA instance.
1020
-     *
1021
-     * @param array $params Set of paramaters
1022
-     * @return idna_convert
1023
-     * @access public
1024
-     */
1025
-    public function getInstance($params = array())
1026
-    {
1027
-        return new idna_convert($params);
1028
-    }
1018
+	/**
1019
+	 * Attempts to return a concrete IDNA instance.
1020
+	 *
1021
+	 * @param array $params Set of paramaters
1022
+	 * @return idna_convert
1023
+	 * @access public
1024
+	 */
1025
+	public function getInstance($params = array())
1026
+	{
1027
+		return new idna_convert($params);
1028
+	}
1029 1029
 
1030
-    /**
1031
-     * Attempts to return a concrete IDNA instance for either php4 or php5,
1032
-     * only creating a new instance if no IDNA instance with the same
1033
-     * parameters currently exists.
1034
-     *
1035
-     * @param array $params Set of paramaters
1036
-     *
1037
-     * @return object idna_convert
1038
-     * @access public
1039
-     */
1040
-    public function singleton($params = array())
1041
-    {
1042
-        static $instances = array();
1030
+	/**
1031
+	 * Attempts to return a concrete IDNA instance for either php4 or php5,
1032
+	 * only creating a new instance if no IDNA instance with the same
1033
+	 * parameters currently exists.
1034
+	 *
1035
+	 * @param array $params Set of paramaters
1036
+	 *
1037
+	 * @return object idna_convert
1038
+	 * @access public
1039
+	 */
1040
+	public function singleton($params = array())
1041
+	{
1042
+		static $instances = array();
1043 1043
 
1044
-        $signature = serialize($params);
1045
-        if (!isset($instances[$signature])) {
1046
-            $instances[$signature] = idna_convert::getInstance($params);
1047
-        }
1048
-        return $instances[$signature];
1049
-    }
1044
+		$signature = serialize($params);
1045
+		if (!isset($instances[$signature])) {
1046
+			$instances[$signature] = idna_convert::getInstance($params);
1047
+		}
1048
+		return $instances[$signature];
1049
+	}
1050 1050
 
1051
-    /**
1052
-     * Holds all relevant mapping tables
1053
-     * See RFC3454 for details
1054
-     *
1055
-     * @private array
1056
-     * @since 0.5.2
1057
-     */
1058
-    protected static $NP = array(
1059
-            'map_nothing' => array(0xAD, 0x34F, 0x1806, 0x180B, 0x180C, 0x180D, 0x200B, 0x200C,
1060
-                    0x200D, 0x2060, 0xFE00, 0xFE01, 0xFE02, 0xFE03, 0xFE04, 0xFE05, 0xFE06, 0xFE07,
1061
-                    0xFE08, 0xFE09, 0xFE0A, 0xFE0B, 0xFE0C, 0xFE0D, 0xFE0E, 0xFE0F, 0xFEFF
1062
-            ),
1063
-            'general_prohibited' => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1064
-                    20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1065
-                    43, 44, 47, 59, 60, 61, 62, 63, 64, 91, 92, 93, 94, 95, 96, 123, 124, 125, 126, 127, 0x3002
1066
-            ),
1067
-            'prohibit' => array(0xA0, 0x340, 0x341, 0x6DD, 0x70F, 0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003,
1068
-                    0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x200B, 0x200C, 0x200D, 0x200E, 0x200F,
1069
-                    0x2028, 0x2029, 0x202A, 0x202B, 0x202C, 0x202D, 0x202E, 0x202F, 0x205F, 0x206A, 0x206B, 0x206C,
1070
-                    0x206D, 0x206E, 0x206F, 0x3000, 0x33C2, 0xFEFF, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFF,
1071
-                    0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, 0x6FFFE,
1072
-                    0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF,
1073
-                    0xCFFFE, 0xCFFFF, 0xDFFFE, 0xDFFFF, 0xE0001, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, 0x10FFFE, 0x10FFFF
1074
-            ),
1075
-            'prohibit_ranges' => array(array(0x80, 0x9F), array(0x2060, 0x206F), array(0x1D173, 0x1D17A),
1076
-                    array(0xE000, 0xF8FF), array(0xF0000, 0xFFFFD), array(0x100000, 0x10FFFD),
1077
-                    array(0xFDD0, 0xFDEF), array(0xD800, 0xDFFF), array(0x2FF0, 0x2FFB), array(0xE0020, 0xE007F)
1078
-            ),
1079
-            'replacemaps_2003' => array(0x41 => array(0x61), 0x42 => array(0x62), 0x43 => array(0x63),
1080
-                    0x44 => array(0x64), 0x45 => array(0x65), 0x46 => array(0x66), 0x47 => array(0x67),
1081
-                    0x48 => array(0x68), 0x49 => array(0x69), 0x4A => array(0x6A), 0x4B => array(0x6B),
1082
-                    0x4C => array(0x6C), 0x4D => array(0x6D), 0x4E => array(0x6E), 0x4F => array(0x6F),
1083
-                    0x50 => array(0x70), 0x51 => array(0x71), 0x52 => array(0x72), 0x53 => array(0x73),
1084
-                    0x54 => array(0x74), 0x55 => array(0x75), 0x56 => array(0x76), 0x57 => array(0x77),
1085
-                    0x58 => array(0x78), 0x59 => array(0x79), 0x5A => array(0x7A), 0xB5 => array(0x3BC),
1086
-                    0xC0 => array(0xE0), 0xC1 => array(0xE1), 0xC2 => array(0xE2), 0xC3 => array(0xE3),
1087
-                    0xC4 => array(0xE4), 0xC5 => array(0xE5), 0xC6 => array(0xE6), 0xC7 => array(0xE7),
1088
-                    0xC8 => array(0xE8), 0xC9 => array(0xE9), 0xCA => array(0xEA), 0xCB => array(0xEB),
1089
-                    0xCC => array(0xEC), 0xCD => array(0xED), 0xCE => array(0xEE), 0xCF => array(0xEF),
1090
-                    0xD0 => array(0xF0), 0xD1 => array(0xF1), 0xD2 => array(0xF2), 0xD3 => array(0xF3),
1091
-                    0xD4 => array(0xF4), 0xD5 => array(0xF5), 0xD6 => array(0xF6), 0xD8 => array(0xF8),
1092
-                    0xD9 => array(0xF9), 0xDA => array(0xFA), 0xDB => array(0xFB), 0xDC => array(0xFC),
1093
-                    0xDD => array(0xFD), 0xDE => array(0xFE), 0xDF => array(0x73, 0x73),
1094
-                    0x100 => array(0x101), 0x102 => array(0x103), 0x104 => array(0x105),
1095
-                    0x106 => array(0x107), 0x108 => array(0x109), 0x10A => array(0x10B),
1096
-                    0x10C => array(0x10D), 0x10E => array(0x10F), 0x110 => array(0x111),
1097
-                    0x112 => array(0x113), 0x114 => array(0x115), 0x116 => array(0x117),
1098
-                    0x118 => array(0x119), 0x11A => array(0x11B), 0x11C => array(0x11D),
1099
-                    0x11E => array(0x11F), 0x120 => array(0x121), 0x122 => array(0x123),
1100
-                    0x124 => array(0x125), 0x126 => array(0x127), 0x128 => array(0x129),
1101
-                    0x12A => array(0x12B), 0x12C => array(0x12D), 0x12E => array(0x12F),
1102
-                    0x130 => array(0x69, 0x307), 0x132 => array(0x133), 0x134 => array(0x135),
1103
-                    0x136 => array(0x137), 0x139 => array(0x13A), 0x13B => array(0x13C),
1104
-                    0x13D => array(0x13E), 0x13F => array(0x140), 0x141 => array(0x142),
1105
-                    0x143 => array(0x144), 0x145 => array(0x146), 0x147 => array(0x148),
1106
-                    0x149 => array(0x2BC, 0x6E), 0x14A => array(0x14B), 0x14C => array(0x14D),
1107
-                    0x14E => array(0x14F), 0x150 => array(0x151), 0x152 => array(0x153),
1108
-                    0x154 => array(0x155), 0x156 => array(0x157), 0x158 => array(0x159),
1109
-                    0x15A => array(0x15B), 0x15C => array(0x15D), 0x15E => array(0x15F),
1110
-                    0x160 => array(0x161), 0x162 => array(0x163), 0x164 => array(0x165),
1111
-                    0x166 => array(0x167), 0x168 => array(0x169), 0x16A => array(0x16B),
1112
-                    0x16C => array(0x16D), 0x16E => array(0x16F), 0x170 => array(0x171),
1113
-                    0x172 => array(0x173), 0x174 => array(0x175), 0x176 => array(0x177),
1114
-                    0x178 => array(0xFF), 0x179 => array(0x17A), 0x17B => array(0x17C),
1115
-                    0x17D => array(0x17E), 0x17F => array(0x73), 0x181 => array(0x253),
1116
-                    0x182 => array(0x183), 0x184 => array(0x185), 0x186 => array(0x254),
1117
-                    0x187 => array(0x188), 0x189 => array(0x256), 0x18A => array(0x257),
1118
-                    0x18B => array(0x18C), 0x18E => array(0x1DD), 0x18F => array(0x259),
1119
-                    0x190 => array(0x25B), 0x191 => array(0x192), 0x193 => array(0x260),
1120
-                    0x194 => array(0x263), 0x196 => array(0x269), 0x197 => array(0x268),
1121
-                    0x198 => array(0x199), 0x19C => array(0x26F), 0x19D => array(0x272),
1122
-                    0x19F => array(0x275), 0x1A0 => array(0x1A1), 0x1A2 => array(0x1A3),
1123
-                    0x1A4 => array(0x1A5), 0x1A6 => array(0x280), 0x1A7 => array(0x1A8),
1124
-                    0x1A9 => array(0x283), 0x1AC => array(0x1AD), 0x1AE => array(0x288),
1125
-                    0x1AF => array(0x1B0), 0x1B1 => array(0x28A), 0x1B2 => array(0x28B),
1126
-                    0x1B3 => array(0x1B4), 0x1B5 => array(0x1B6), 0x1B7 => array(0x292),
1127
-                    0x1B8 => array(0x1B9), 0x1BC => array(0x1BD), 0x1C4 => array(0x1C6),
1128
-                    0x1C5 => array(0x1C6), 0x1C7 => array(0x1C9), 0x1C8 => array(0x1C9),
1129
-                    0x1CA => array(0x1CC), 0x1CB => array(0x1CC), 0x1CD => array(0x1CE),
1130
-                    0x1CF => array(0x1D0), 0x1D1 => array(0x1D2), 0x1D3 => array(0x1D4),
1131
-                    0x1D5 => array(0x1D6), 0x1D7 => array(0x1D8), 0x1D9 => array(0x1DA),
1132
-                    0x1DB => array(0x1DC), 0x1DE => array(0x1DF), 0x1E0 => array(0x1E1),
1133
-                    0x1E2 => array(0x1E3), 0x1E4 => array(0x1E5), 0x1E6 => array(0x1E7),
1134
-                    0x1E8 => array(0x1E9), 0x1EA => array(0x1EB), 0x1EC => array(0x1ED),
1135
-                    0x1EE => array(0x1EF), 0x1F0 => array(0x6A, 0x30C), 0x1F1 => array(0x1F3),
1136
-                    0x1F2 => array(0x1F3), 0x1F4 => array(0x1F5), 0x1F6 => array(0x195),
1137
-                    0x1F7 => array(0x1BF), 0x1F8 => array(0x1F9), 0x1FA => array(0x1FB),
1138
-                    0x1FC => array(0x1FD), 0x1FE => array(0x1FF), 0x200 => array(0x201),
1139
-                    0x202 => array(0x203), 0x204 => array(0x205), 0x206 => array(0x207),
1140
-                    0x208 => array(0x209), 0x20A => array(0x20B), 0x20C => array(0x20D),
1141
-                    0x20E => array(0x20F), 0x210 => array(0x211), 0x212 => array(0x213),
1142
-                    0x214 => array(0x215), 0x216 => array(0x217), 0x218 => array(0x219),
1143
-                    0x21A => array(0x21B), 0x21C => array(0x21D), 0x21E => array(0x21F),
1144
-                    0x220 => array(0x19E), 0x222 => array(0x223), 0x224 => array(0x225),
1145
-                    0x226 => array(0x227), 0x228 => array(0x229), 0x22A => array(0x22B),
1146
-                    0x22C => array(0x22D), 0x22E => array(0x22F), 0x230 => array(0x231),
1147
-                    0x232 => array(0x233), 0x345 => array(0x3B9), 0x37A => array(0x20, 0x3B9),
1148
-                    0x386 => array(0x3AC), 0x388 => array(0x3AD), 0x389 => array(0x3AE),
1149
-                    0x38A => array(0x3AF), 0x38C => array(0x3CC), 0x38E => array(0x3CD),
1150
-                    0x38F => array(0x3CE), 0x390 => array(0x3B9, 0x308, 0x301),
1151
-                    0x391 => array(0x3B1), 0x392 => array(0x3B2), 0x393 => array(0x3B3),
1152
-                    0x394 => array(0x3B4), 0x395 => array(0x3B5), 0x396 => array(0x3B6),
1153
-                    0x397 => array(0x3B7), 0x398 => array(0x3B8), 0x399 => array(0x3B9),
1154
-                    0x39A => array(0x3BA), 0x39B => array(0x3BB), 0x39C => array(0x3BC),
1155
-                    0x39D => array(0x3BD), 0x39E => array(0x3BE), 0x39F => array(0x3BF),
1156
-                    0x3A0 => array(0x3C0), 0x3A1 => array(0x3C1), 0x3A3 => array(0x3C3),
1157
-                    0x3A4 => array(0x3C4), 0x3A5 => array(0x3C5), 0x3A6 => array(0x3C6),
1158
-                    0x3A7 => array(0x3C7), 0x3A8 => array(0x3C8), 0x3A9 => array(0x3C9),
1159
-                    0x3AA => array(0x3CA), 0x3AB => array(0x3CB), 0x3B0 => array(0x3C5, 0x308, 0x301),
1160
-                    0x3C2 => array(0x3C3), 0x3D0 => array(0x3B2), 0x3D1 => array(0x3B8),
1161
-                    0x3D2 => array(0x3C5), 0x3D3 => array(0x3CD), 0x3D4 => array(0x3CB),
1162
-                    0x3D5 => array(0x3C6), 0x3D6 => array(0x3C0), 0x3D8 => array(0x3D9),
1163
-                    0x3DA => array(0x3DB), 0x3DC => array(0x3DD), 0x3DE => array(0x3DF),
1164
-                    0x3E0 => array(0x3E1), 0x3E2 => array(0x3E3), 0x3E4 => array(0x3E5),
1165
-                    0x3E6 => array(0x3E7), 0x3E8 => array(0x3E9), 0x3EA => array(0x3EB),
1166
-                    0x3EC => array(0x3ED), 0x3EE => array(0x3EF), 0x3F0 => array(0x3BA),
1167
-                    0x3F1 => array(0x3C1), 0x3F2 => array(0x3C3), 0x3F4 => array(0x3B8),
1168
-                    0x3F5 => array(0x3B5), 0x400 => array(0x450), 0x401 => array(0x451),
1169
-                    0x402 => array(0x452), 0x403 => array(0x453), 0x404 => array(0x454),
1170
-                    0x405 => array(0x455), 0x406 => array(0x456), 0x407 => array(0x457),
1171
-                    0x408 => array(0x458), 0x409 => array(0x459), 0x40A => array(0x45A),
1172
-                    0x40B => array(0x45B), 0x40C => array(0x45C), 0x40D => array(0x45D),
1173
-                    0x40E => array(0x45E), 0x40F => array(0x45F), 0x410 => array(0x430),
1174
-                    0x411 => array(0x431), 0x412 => array(0x432), 0x413 => array(0x433),
1175
-                    0x414 => array(0x434), 0x415 => array(0x435), 0x416 => array(0x436),
1176
-                    0x417 => array(0x437), 0x418 => array(0x438), 0x419 => array(0x439),
1177
-                    0x41A => array(0x43A), 0x41B => array(0x43B), 0x41C => array(0x43C),
1178
-                    0x41D => array(0x43D), 0x41E => array(0x43E), 0x41F => array(0x43F),
1179
-                    0x420 => array(0x440), 0x421 => array(0x441), 0x422 => array(0x442),
1180
-                    0x423 => array(0x443), 0x424 => array(0x444), 0x425 => array(0x445),
1181
-                    0x426 => array(0x446), 0x427 => array(0x447), 0x428 => array(0x448),
1182
-                    0x429 => array(0x449), 0x42A => array(0x44A), 0x42B => array(0x44B),
1183
-                    0x42C => array(0x44C), 0x42D => array(0x44D), 0x42E => array(0x44E),
1184
-                    0x42F => array(0x44F), 0x460 => array(0x461), 0x462 => array(0x463),
1185
-                    0x464 => array(0x465), 0x466 => array(0x467), 0x468 => array(0x469),
1186
-                    0x46A => array(0x46B), 0x46C => array(0x46D), 0x46E => array(0x46F),
1187
-                    0x470 => array(0x471), 0x472 => array(0x473), 0x474 => array(0x475),
1188
-                    0x476 => array(0x477), 0x478 => array(0x479), 0x47A => array(0x47B),
1189
-                    0x47C => array(0x47D), 0x47E => array(0x47F), 0x480 => array(0x481),
1190
-                    0x48A => array(0x48B), 0x48C => array(0x48D), 0x48E => array(0x48F),
1191
-                    0x490 => array(0x491), 0x492 => array(0x493), 0x494 => array(0x495),
1192
-                    0x496 => array(0x497), 0x498 => array(0x499), 0x49A => array(0x49B),
1193
-                    0x49C => array(0x49D), 0x49E => array(0x49F), 0x4A0 => array(0x4A1),
1194
-                    0x4A2 => array(0x4A3), 0x4A4 => array(0x4A5), 0x4A6 => array(0x4A7),
1195
-                    0x4A8 => array(0x4A9), 0x4AA => array(0x4AB), 0x4AC => array(0x4AD),
1196
-                    0x4AE => array(0x4AF), 0x4B0 => array(0x4B1), 0x4B2 => array(0x4B3),
1197
-                    0x4B4 => array(0x4B5), 0x4B6 => array(0x4B7), 0x4B8 => array(0x4B9),
1198
-                    0x4BA => array(0x4BB), 0x4BC => array(0x4BD), 0x4BE => array(0x4BF),
1199
-                    0x4C1 => array(0x4C2), 0x4C3 => array(0x4C4), 0x4C5 => array(0x4C6),
1200
-                    0x4C7 => array(0x4C8), 0x4C9 => array(0x4CA), 0x4CB => array(0x4CC),
1201
-                    0x4CD => array(0x4CE), 0x4D0 => array(0x4D1), 0x4D2 => array(0x4D3),
1202
-                    0x4D4 => array(0x4D5), 0x4D6 => array(0x4D7), 0x4D8 => array(0x4D9),
1203
-                    0x4DA => array(0x4DB), 0x4DC => array(0x4DD), 0x4DE => array(0x4DF),
1204
-                    0x4E0 => array(0x4E1), 0x4E2 => array(0x4E3), 0x4E4 => array(0x4E5),
1205
-                    0x4E6 => array(0x4E7), 0x4E8 => array(0x4E9), 0x4EA => array(0x4EB),
1206
-                    0x4EC => array(0x4ED), 0x4EE => array(0x4EF), 0x4F0 => array(0x4F1),
1207
-                    0x4F2 => array(0x4F3), 0x4F4 => array(0x4F5), 0x4F8 => array(0x4F9),
1208
-                    0x500 => array(0x501), 0x502 => array(0x503), 0x504 => array(0x505),
1209
-                    0x506 => array(0x507), 0x508 => array(0x509), 0x50A => array(0x50B),
1210
-                    0x50C => array(0x50D), 0x50E => array(0x50F), 0x531 => array(0x561),
1211
-                    0x532 => array(0x562), 0x533 => array(0x563), 0x534 => array(0x564),
1212
-                    0x535 => array(0x565), 0x536 => array(0x566), 0x537 => array(0x567),
1213
-                    0x538 => array(0x568), 0x539 => array(0x569), 0x53A => array(0x56A),
1214
-                    0x53B => array(0x56B), 0x53C => array(0x56C), 0x53D => array(0x56D),
1215
-                    0x53E => array(0x56E), 0x53F => array(0x56F), 0x540 => array(0x570),
1216
-                    0x541 => array(0x571), 0x542 => array(0x572), 0x543 => array(0x573),
1217
-                    0x544 => array(0x574), 0x545 => array(0x575), 0x546 => array(0x576),
1218
-                    0x547 => array(0x577), 0x548 => array(0x578), 0x549 => array(0x579),
1219
-                    0x54A => array(0x57A), 0x54B => array(0x57B), 0x54C => array(0x57C),
1220
-                    0x54D => array(0x57D), 0x54E => array(0x57E), 0x54F => array(0x57F),
1221
-                    0x550 => array(0x580), 0x551 => array(0x581), 0x552 => array(0x582),
1222
-                    0x553 => array(0x583), 0x554 => array(0x584), 0x555 => array(0x585),
1223
-                    0x556 => array(0x586), 0x587 => array(0x565, 0x582), 0xE33 => array(0xE4D, 0xE32),
1224
-                    0x1E00 => array(0x1E01), 0x1E02 => array(0x1E03), 0x1E04 => array(0x1E05),
1225
-                    0x1E06 => array(0x1E07), 0x1E08 => array(0x1E09), 0x1E0A => array(0x1E0B),
1226
-                    0x1E0C => array(0x1E0D), 0x1E0E => array(0x1E0F), 0x1E10 => array(0x1E11),
1227
-                    0x1E12 => array(0x1E13), 0x1E14 => array(0x1E15), 0x1E16 => array(0x1E17),
1228
-                    0x1E18 => array(0x1E19), 0x1E1A => array(0x1E1B), 0x1E1C => array(0x1E1D),
1229
-                    0x1E1E => array(0x1E1F), 0x1E20 => array(0x1E21), 0x1E22 => array(0x1E23),
1230
-                    0x1E24 => array(0x1E25), 0x1E26 => array(0x1E27), 0x1E28 => array(0x1E29),
1231
-                    0x1E2A => array(0x1E2B), 0x1E2C => array(0x1E2D), 0x1E2E => array(0x1E2F),
1232
-                    0x1E30 => array(0x1E31), 0x1E32 => array(0x1E33), 0x1E34 => array(0x1E35),
1233
-                    0x1E36 => array(0x1E37), 0x1E38 => array(0x1E39), 0x1E3A => array(0x1E3B),
1234
-                    0x1E3C => array(0x1E3D), 0x1E3E => array(0x1E3F), 0x1E40 => array(0x1E41),
1235
-                    0x1E42 => array(0x1E43), 0x1E44 => array(0x1E45), 0x1E46 => array(0x1E47),
1236
-                    0x1E48 => array(0x1E49), 0x1E4A => array(0x1E4B), 0x1E4C => array(0x1E4D),
1237
-                    0x1E4E => array(0x1E4F), 0x1E50 => array(0x1E51), 0x1E52 => array(0x1E53),
1238
-                    0x1E54 => array(0x1E55), 0x1E56 => array(0x1E57), 0x1E58 => array(0x1E59),
1239
-                    0x1E5A => array(0x1E5B), 0x1E5C => array(0x1E5D), 0x1E5E => array(0x1E5F),
1240
-                    0x1E60 => array(0x1E61), 0x1E62 => array(0x1E63), 0x1E64 => array(0x1E65),
1241
-                    0x1E66 => array(0x1E67), 0x1E68 => array(0x1E69), 0x1E6A => array(0x1E6B),
1242
-                    0x1E6C => array(0x1E6D), 0x1E6E => array(0x1E6F), 0x1E70 => array(0x1E71),
1243
-                    0x1E72 => array(0x1E73), 0x1E74 => array(0x1E75), 0x1E76 => array(0x1E77),
1244
-                    0x1E78 => array(0x1E79), 0x1E7A => array(0x1E7B), 0x1E7C => array(0x1E7D),
1245
-                    0x1E7E => array(0x1E7F), 0x1E80 => array(0x1E81), 0x1E82 => array(0x1E83),
1246
-                    0x1E84 => array(0x1E85), 0x1E86 => array(0x1E87), 0x1E88 => array(0x1E89),
1247
-                    0x1E8A => array(0x1E8B), 0x1E8C => array(0x1E8D), 0x1E8E => array(0x1E8F),
1248
-                    0x1E90 => array(0x1E91), 0x1E92 => array(0x1E93), 0x1E94 => array(0x1E95),
1249
-                    0x1E96 => array(0x68, 0x331), 0x1E97 => array(0x74, 0x308), 0x1E98 => array(0x77, 0x30A),
1250
-                    0x1E99 => array(0x79, 0x30A), 0x1E9A => array(0x61, 0x2BE), 0x1E9B => array(0x1E61),
1251
-                    0x1EA0 => array(0x1EA1), 0x1EA2 => array(0x1EA3), 0x1EA4 => array(0x1EA5),
1252
-                    0x1EA6 => array(0x1EA7), 0x1EA8 => array(0x1EA9), 0x1EAA => array(0x1EAB),
1253
-                    0x1EAC => array(0x1EAD), 0x1EAE => array(0x1EAF), 0x1EB0 => array(0x1EB1),
1254
-                    0x1EB2 => array(0x1EB3), 0x1EB4 => array(0x1EB5), 0x1EB6 => array(0x1EB7),
1255
-                    0x1EB8 => array(0x1EB9), 0x1EBA => array(0x1EBB), 0x1EBC => array(0x1EBD),
1256
-                    0x1EBE => array(0x1EBF), 0x1EC0 => array(0x1EC1), 0x1EC2 => array(0x1EC3),
1257
-                    0x1EC4 => array(0x1EC5), 0x1EC6 => array(0x1EC7), 0x1EC8 => array(0x1EC9),
1258
-                    0x1ECA => array(0x1ECB), 0x1ECC => array(0x1ECD), 0x1ECE => array(0x1ECF),
1259
-                    0x1ED0 => array(0x1ED1), 0x1ED2 => array(0x1ED3), 0x1ED4 => array(0x1ED5),
1260
-                    0x1ED6 => array(0x1ED7), 0x1ED8 => array(0x1ED9), 0x1EDA => array(0x1EDB),
1261
-                    0x1EDC => array(0x1EDD), 0x1EDE => array(0x1EDF), 0x1EE0 => array(0x1EE1),
1262
-                    0x1EE2 => array(0x1EE3), 0x1EE4 => array(0x1EE5), 0x1EE6 => array(0x1EE7),
1263
-                    0x1EE8 => array(0x1EE9), 0x1EEA => array(0x1EEB), 0x1EEC => array(0x1EED),
1264
-                    0x1EEE => array(0x1EEF), 0x1EF0 => array(0x1EF1), 0x1EF2 => array(0x1EF3),
1265
-                    0x1EF4 => array(0x1EF5), 0x1EF6 => array(0x1EF7), 0x1EF8 => array(0x1EF9),
1266
-                    0x1F08 => array(0x1F00), 0x1F09 => array(0x1F01), 0x1F0A => array(0x1F02),
1267
-                    0x1F0B => array(0x1F03), 0x1F0C => array(0x1F04), 0x1F0D => array(0x1F05),
1268
-                    0x1F0E => array(0x1F06), 0x1F0F => array(0x1F07), 0x1F18 => array(0x1F10),
1269
-                    0x1F19 => array(0x1F11), 0x1F1A => array(0x1F12), 0x1F1B => array(0x1F13),
1270
-                    0x1F1C => array(0x1F14), 0x1F1D => array(0x1F15), 0x1F28 => array(0x1F20),
1271
-                    0x1F29 => array(0x1F21), 0x1F2A => array(0x1F22), 0x1F2B => array(0x1F23),
1272
-                    0x1F2C => array(0x1F24), 0x1F2D => array(0x1F25), 0x1F2E => array(0x1F26),
1273
-                    0x1F2F => array(0x1F27), 0x1F38 => array(0x1F30), 0x1F39 => array(0x1F31),
1274
-                    0x1F3A => array(0x1F32), 0x1F3B => array(0x1F33), 0x1F3C => array(0x1F34),
1275
-                    0x1F3D => array(0x1F35), 0x1F3E => array(0x1F36), 0x1F3F => array(0x1F37),
1276
-                    0x1F48 => array(0x1F40), 0x1F49 => array(0x1F41), 0x1F4A => array(0x1F42),
1277
-                    0x1F4B => array(0x1F43), 0x1F4C => array(0x1F44), 0x1F4D => array(0x1F45),
1278
-                    0x1F50 => array(0x3C5, 0x313), 0x1F52 => array(0x3C5, 0x313, 0x300),
1279
-                    0x1F54 => array(0x3C5, 0x313, 0x301), 0x1F56 => array(0x3C5, 0x313, 0x342),
1280
-                    0x1F59 => array(0x1F51), 0x1F5B => array(0x1F53), 0x1F5D => array(0x1F55),
1281
-                    0x1F5F => array(0x1F57), 0x1F68 => array(0x1F60), 0x1F69 => array(0x1F61),
1282
-                    0x1F6A => array(0x1F62), 0x1F6B => array(0x1F63), 0x1F6C => array(0x1F64),
1283
-                    0x1F6D => array(0x1F65), 0x1F6E => array(0x1F66), 0x1F6F => array(0x1F67),
1284
-                    0x1F80 => array(0x1F00, 0x3B9), 0x1F81 => array(0x1F01, 0x3B9),
1285
-                    0x1F82 => array(0x1F02, 0x3B9), 0x1F83 => array(0x1F03, 0x3B9),
1286
-                    0x1F84 => array(0x1F04, 0x3B9), 0x1F85 => array(0x1F05, 0x3B9),
1287
-                    0x1F86 => array(0x1F06, 0x3B9), 0x1F87 => array(0x1F07, 0x3B9),
1288
-                    0x1F88 => array(0x1F00, 0x3B9), 0x1F89 => array(0x1F01, 0x3B9),
1289
-                    0x1F8A => array(0x1F02, 0x3B9), 0x1F8B => array(0x1F03, 0x3B9),
1290
-                    0x1F8C => array(0x1F04, 0x3B9), 0x1F8D => array(0x1F05, 0x3B9),
1291
-                    0x1F8E => array(0x1F06, 0x3B9), 0x1F8F => array(0x1F07, 0x3B9),
1292
-                    0x1F90 => array(0x1F20, 0x3B9), 0x1F91 => array(0x1F21, 0x3B9),
1293
-                    0x1F92 => array(0x1F22, 0x3B9), 0x1F93 => array(0x1F23, 0x3B9),
1294
-                    0x1F94 => array(0x1F24, 0x3B9), 0x1F95 => array(0x1F25, 0x3B9),
1295
-                    0x1F96 => array(0x1F26, 0x3B9), 0x1F97 => array(0x1F27, 0x3B9),
1296
-                    0x1F98 => array(0x1F20, 0x3B9), 0x1F99 => array(0x1F21, 0x3B9),
1297
-                    0x1F9A => array(0x1F22, 0x3B9), 0x1F9B => array(0x1F23, 0x3B9),
1298
-                    0x1F9C => array(0x1F24, 0x3B9), 0x1F9D => array(0x1F25, 0x3B9),
1299
-                    0x1F9E => array(0x1F26, 0x3B9), 0x1F9F => array(0x1F27, 0x3B9),
1300
-                    0x1FA0 => array(0x1F60, 0x3B9), 0x1FA1 => array(0x1F61, 0x3B9),
1301
-                    0x1FA2 => array(0x1F62, 0x3B9), 0x1FA3 => array(0x1F63, 0x3B9),
1302
-                    0x1FA4 => array(0x1F64, 0x3B9), 0x1FA5 => array(0x1F65, 0x3B9),
1303
-                    0x1FA6 => array(0x1F66, 0x3B9), 0x1FA7 => array(0x1F67, 0x3B9),
1304
-                    0x1FA8 => array(0x1F60, 0x3B9), 0x1FA9 => array(0x1F61, 0x3B9),
1305
-                    0x1FAA => array(0x1F62, 0x3B9), 0x1FAB => array(0x1F63, 0x3B9),
1306
-                    0x1FAC => array(0x1F64, 0x3B9), 0x1FAD => array(0x1F65, 0x3B9),
1307
-                    0x1FAE => array(0x1F66, 0x3B9), 0x1FAF => array(0x1F67, 0x3B9),
1308
-                    0x1FB2 => array(0x1F70, 0x3B9), 0x1FB3 => array(0x3B1, 0x3B9),
1309
-                    0x1FB4 => array(0x3AC, 0x3B9), 0x1FB6 => array(0x3B1, 0x342),
1310
-                    0x1FB7 => array(0x3B1, 0x342, 0x3B9), 0x1FB8 => array(0x1FB0),
1311
-                    0x1FB9 => array(0x1FB1), 0x1FBA => array(0x1F70), 0x1FBB => array(0x1F71),
1312
-                    0x1FBC => array(0x3B1, 0x3B9), 0x1FBE => array(0x3B9),
1313
-                    0x1FC2 => array(0x1F74, 0x3B9), 0x1FC3 => array(0x3B7, 0x3B9),
1314
-                    0x1FC4 => array(0x3AE, 0x3B9), 0x1FC6 => array(0x3B7, 0x342),
1315
-                    0x1FC7 => array(0x3B7, 0x342, 0x3B9), 0x1FC8 => array(0x1F72),
1316
-                    0x1FC9 => array(0x1F73), 0x1FCA => array(0x1F74), 0x1FCB => array(0x1F75),
1317
-                    0x1FCC => array(0x3B7, 0x3B9), 0x1FD2 => array(0x3B9, 0x308, 0x300),
1318
-                    0x1FD3 => array(0x3B9, 0x308, 0x301), 0x1FD6 => array(0x3B9, 0x342),
1319
-                    0x1FD7 => array(0x3B9, 0x308, 0x342), 0x1FD8 => array(0x1FD0),
1320
-                    0x1FD9 => array(0x1FD1), 0x1FDA => array(0x1F76),
1321
-                    0x1FDB => array(0x1F77), 0x1FE2 => array(0x3C5, 0x308, 0x300),
1322
-                    0x1FE3 => array(0x3C5, 0x308, 0x301), 0x1FE4 => array(0x3C1, 0x313),
1323
-                    0x1FE6 => array(0x3C5, 0x342), 0x1FE7 => array(0x3C5, 0x308, 0x342),
1324
-                    0x1FE8 => array(0x1FE0), 0x1FE9 => array(0x1FE1),
1325
-                    0x1FEA => array(0x1F7A), 0x1FEB => array(0x1F7B),
1326
-                    0x1FEC => array(0x1FE5), 0x1FF2 => array(0x1F7C, 0x3B9),
1327
-                    0x1FF3 => array(0x3C9, 0x3B9), 0x1FF4 => array(0x3CE, 0x3B9),
1328
-                    0x1FF6 => array(0x3C9, 0x342), 0x1FF7 => array(0x3C9, 0x342, 0x3B9),
1329
-                    0x1FF8 => array(0x1F78), 0x1FF9 => array(0x1F79), 0x1FFA => array(0x1F7C),
1330
-                    0x1FFB => array(0x1F7D), 0x1FFC => array(0x3C9, 0x3B9),
1331
-                    0x20A8 => array(0x72, 0x73), 0x2102 => array(0x63), 0x2103 => array(0xB0, 0x63),
1332
-                    0x2107 => array(0x25B), 0x2109 => array(0xB0, 0x66), 0x210B => array(0x68),
1333
-                    0x210C => array(0x68), 0x210D => array(0x68), 0x2110 => array(0x69),
1334
-                    0x2111 => array(0x69), 0x2112 => array(0x6C), 0x2115 => array(0x6E),
1335
-                    0x2116 => array(0x6E, 0x6F), 0x2119 => array(0x70), 0x211A => array(0x71),
1336
-                    0x211B => array(0x72), 0x211C => array(0x72), 0x211D => array(0x72),
1337
-                    0x2120 => array(0x73, 0x6D), 0x2121 => array(0x74, 0x65, 0x6C),
1338
-                    0x2122 => array(0x74, 0x6D), 0x2124 => array(0x7A), 0x2126 => array(0x3C9),
1339
-                    0x2128 => array(0x7A), 0x212A => array(0x6B), 0x212B => array(0xE5),
1340
-                    0x212C => array(0x62), 0x212D => array(0x63), 0x2130 => array(0x65),
1341
-                    0x2131 => array(0x66), 0x2133 => array(0x6D), 0x213E => array(0x3B3),
1342
-                    0x213F => array(0x3C0), 0x2145 => array(0x64), 0x2160 => array(0x2170),
1343
-                    0x2161 => array(0x2171), 0x2162 => array(0x2172), 0x2163 => array(0x2173),
1344
-                    0x2164 => array(0x2174), 0x2165 => array(0x2175), 0x2166 => array(0x2176),
1345
-                    0x2167 => array(0x2177), 0x2168 => array(0x2178), 0x2169 => array(0x2179),
1346
-                    0x216A => array(0x217A), 0x216B => array(0x217B), 0x216C => array(0x217C),
1347
-                    0x216D => array(0x217D), 0x216E => array(0x217E), 0x216F => array(0x217F),
1348
-                    0x24B6 => array(0x24D0), 0x24B7 => array(0x24D1), 0x24B8 => array(0x24D2),
1349
-                    0x24B9 => array(0x24D3), 0x24BA => array(0x24D4), 0x24BB => array(0x24D5),
1350
-                    0x24BC => array(0x24D6), 0x24BD => array(0x24D7), 0x24BE => array(0x24D8),
1351
-                    0x24BF => array(0x24D9), 0x24C0 => array(0x24DA), 0x24C1 => array(0x24DB),
1352
-                    0x24C2 => array(0x24DC), 0x24C3 => array(0x24DD), 0x24C4 => array(0x24DE),
1353
-                    0x24C5 => array(0x24DF), 0x24C6 => array(0x24E0), 0x24C7 => array(0x24E1),
1354
-                    0x24C8 => array(0x24E2), 0x24C9 => array(0x24E3), 0x24CA => array(0x24E4),
1355
-                    0x24CB => array(0x24E5), 0x24CC => array(0x24E6), 0x24CD => array(0x24E7),
1356
-                    0x24CE => array(0x24E8), 0x24CF => array(0x24E9), 0x3371 => array(0x68, 0x70, 0x61),
1357
-                    0x3373 => array(0x61, 0x75), 0x3375 => array(0x6F, 0x76),
1358
-                    0x3380 => array(0x70, 0x61), 0x3381 => array(0x6E, 0x61),
1359
-                    0x3382 => array(0x3BC, 0x61), 0x3383 => array(0x6D, 0x61),
1360
-                    0x3384 => array(0x6B, 0x61), 0x3385 => array(0x6B, 0x62),
1361
-                    0x3386 => array(0x6D, 0x62), 0x3387 => array(0x67, 0x62),
1362
-                    0x338A => array(0x70, 0x66), 0x338B => array(0x6E, 0x66),
1363
-                    0x338C => array(0x3BC, 0x66), 0x3390 => array(0x68, 0x7A),
1364
-                    0x3391 => array(0x6B, 0x68, 0x7A), 0x3392 => array(0x6D, 0x68, 0x7A),
1365
-                    0x3393 => array(0x67, 0x68, 0x7A), 0x3394 => array(0x74, 0x68, 0x7A),
1366
-                    0x33A9 => array(0x70, 0x61), 0x33AA => array(0x6B, 0x70, 0x61),
1367
-                    0x33AB => array(0x6D, 0x70, 0x61), 0x33AC => array(0x67, 0x70, 0x61),
1368
-                    0x33B4 => array(0x70, 0x76), 0x33B5 => array(0x6E, 0x76),
1369
-                    0x33B6 => array(0x3BC, 0x76), 0x33B7 => array(0x6D, 0x76),
1370
-                    0x33B8 => array(0x6B, 0x76), 0x33B9 => array(0x6D, 0x76),
1371
-                    0x33BA => array(0x70, 0x77), 0x33BB => array(0x6E, 0x77),
1372
-                    0x33BC => array(0x3BC, 0x77), 0x33BD => array(0x6D, 0x77),
1373
-                    0x33BE => array(0x6B, 0x77), 0x33BF => array(0x6D, 0x77),
1374
-                    0x33C0 => array(0x6B, 0x3C9), 0x33C1 => array(0x6D, 0x3C9), /*
1051
+	/**
1052
+	 * Holds all relevant mapping tables
1053
+	 * See RFC3454 for details
1054
+	 *
1055
+	 * @private array
1056
+	 * @since 0.5.2
1057
+	 */
1058
+	protected static $NP = array(
1059
+			'map_nothing' => array(0xAD, 0x34F, 0x1806, 0x180B, 0x180C, 0x180D, 0x200B, 0x200C,
1060
+					0x200D, 0x2060, 0xFE00, 0xFE01, 0xFE02, 0xFE03, 0xFE04, 0xFE05, 0xFE06, 0xFE07,
1061
+					0xFE08, 0xFE09, 0xFE0A, 0xFE0B, 0xFE0C, 0xFE0D, 0xFE0E, 0xFE0F, 0xFEFF
1062
+			),
1063
+			'general_prohibited' => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1064
+					20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1065
+					43, 44, 47, 59, 60, 61, 62, 63, 64, 91, 92, 93, 94, 95, 96, 123, 124, 125, 126, 127, 0x3002
1066
+			),
1067
+			'prohibit' => array(0xA0, 0x340, 0x341, 0x6DD, 0x70F, 0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003,
1068
+					0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x200B, 0x200C, 0x200D, 0x200E, 0x200F,
1069
+					0x2028, 0x2029, 0x202A, 0x202B, 0x202C, 0x202D, 0x202E, 0x202F, 0x205F, 0x206A, 0x206B, 0x206C,
1070
+					0x206D, 0x206E, 0x206F, 0x3000, 0x33C2, 0xFEFF, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFF,
1071
+					0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, 0x6FFFE,
1072
+					0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF,
1073
+					0xCFFFE, 0xCFFFF, 0xDFFFE, 0xDFFFF, 0xE0001, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, 0x10FFFE, 0x10FFFF
1074
+			),
1075
+			'prohibit_ranges' => array(array(0x80, 0x9F), array(0x2060, 0x206F), array(0x1D173, 0x1D17A),
1076
+					array(0xE000, 0xF8FF), array(0xF0000, 0xFFFFD), array(0x100000, 0x10FFFD),
1077
+					array(0xFDD0, 0xFDEF), array(0xD800, 0xDFFF), array(0x2FF0, 0x2FFB), array(0xE0020, 0xE007F)
1078
+			),
1079
+			'replacemaps_2003' => array(0x41 => array(0x61), 0x42 => array(0x62), 0x43 => array(0x63),
1080
+					0x44 => array(0x64), 0x45 => array(0x65), 0x46 => array(0x66), 0x47 => array(0x67),
1081
+					0x48 => array(0x68), 0x49 => array(0x69), 0x4A => array(0x6A), 0x4B => array(0x6B),
1082
+					0x4C => array(0x6C), 0x4D => array(0x6D), 0x4E => array(0x6E), 0x4F => array(0x6F),
1083
+					0x50 => array(0x70), 0x51 => array(0x71), 0x52 => array(0x72), 0x53 => array(0x73),
1084
+					0x54 => array(0x74), 0x55 => array(0x75), 0x56 => array(0x76), 0x57 => array(0x77),
1085
+					0x58 => array(0x78), 0x59 => array(0x79), 0x5A => array(0x7A), 0xB5 => array(0x3BC),
1086
+					0xC0 => array(0xE0), 0xC1 => array(0xE1), 0xC2 => array(0xE2), 0xC3 => array(0xE3),
1087
+					0xC4 => array(0xE4), 0xC5 => array(0xE5), 0xC6 => array(0xE6), 0xC7 => array(0xE7),
1088
+					0xC8 => array(0xE8), 0xC9 => array(0xE9), 0xCA => array(0xEA), 0xCB => array(0xEB),
1089
+					0xCC => array(0xEC), 0xCD => array(0xED), 0xCE => array(0xEE), 0xCF => array(0xEF),
1090
+					0xD0 => array(0xF0), 0xD1 => array(0xF1), 0xD2 => array(0xF2), 0xD3 => array(0xF3),
1091
+					0xD4 => array(0xF4), 0xD5 => array(0xF5), 0xD6 => array(0xF6), 0xD8 => array(0xF8),
1092
+					0xD9 => array(0xF9), 0xDA => array(0xFA), 0xDB => array(0xFB), 0xDC => array(0xFC),
1093
+					0xDD => array(0xFD), 0xDE => array(0xFE), 0xDF => array(0x73, 0x73),
1094
+					0x100 => array(0x101), 0x102 => array(0x103), 0x104 => array(0x105),
1095
+					0x106 => array(0x107), 0x108 => array(0x109), 0x10A => array(0x10B),
1096
+					0x10C => array(0x10D), 0x10E => array(0x10F), 0x110 => array(0x111),
1097
+					0x112 => array(0x113), 0x114 => array(0x115), 0x116 => array(0x117),
1098
+					0x118 => array(0x119), 0x11A => array(0x11B), 0x11C => array(0x11D),
1099
+					0x11E => array(0x11F), 0x120 => array(0x121), 0x122 => array(0x123),
1100
+					0x124 => array(0x125), 0x126 => array(0x127), 0x128 => array(0x129),
1101
+					0x12A => array(0x12B), 0x12C => array(0x12D), 0x12E => array(0x12F),
1102
+					0x130 => array(0x69, 0x307), 0x132 => array(0x133), 0x134 => array(0x135),
1103
+					0x136 => array(0x137), 0x139 => array(0x13A), 0x13B => array(0x13C),
1104
+					0x13D => array(0x13E), 0x13F => array(0x140), 0x141 => array(0x142),
1105
+					0x143 => array(0x144), 0x145 => array(0x146), 0x147 => array(0x148),
1106
+					0x149 => array(0x2BC, 0x6E), 0x14A => array(0x14B), 0x14C => array(0x14D),
1107
+					0x14E => array(0x14F), 0x150 => array(0x151), 0x152 => array(0x153),
1108
+					0x154 => array(0x155), 0x156 => array(0x157), 0x158 => array(0x159),
1109
+					0x15A => array(0x15B), 0x15C => array(0x15D), 0x15E => array(0x15F),
1110
+					0x160 => array(0x161), 0x162 => array(0x163), 0x164 => array(0x165),
1111
+					0x166 => array(0x167), 0x168 => array(0x169), 0x16A => array(0x16B),
1112
+					0x16C => array(0x16D), 0x16E => array(0x16F), 0x170 => array(0x171),
1113
+					0x172 => array(0x173), 0x174 => array(0x175), 0x176 => array(0x177),
1114
+					0x178 => array(0xFF), 0x179 => array(0x17A), 0x17B => array(0x17C),
1115
+					0x17D => array(0x17E), 0x17F => array(0x73), 0x181 => array(0x253),
1116
+					0x182 => array(0x183), 0x184 => array(0x185), 0x186 => array(0x254),
1117
+					0x187 => array(0x188), 0x189 => array(0x256), 0x18A => array(0x257),
1118
+					0x18B => array(0x18C), 0x18E => array(0x1DD), 0x18F => array(0x259),
1119
+					0x190 => array(0x25B), 0x191 => array(0x192), 0x193 => array(0x260),
1120
+					0x194 => array(0x263), 0x196 => array(0x269), 0x197 => array(0x268),
1121
+					0x198 => array(0x199), 0x19C => array(0x26F), 0x19D => array(0x272),
1122
+					0x19F => array(0x275), 0x1A0 => array(0x1A1), 0x1A2 => array(0x1A3),
1123
+					0x1A4 => array(0x1A5), 0x1A6 => array(0x280), 0x1A7 => array(0x1A8),
1124
+					0x1A9 => array(0x283), 0x1AC => array(0x1AD), 0x1AE => array(0x288),
1125
+					0x1AF => array(0x1B0), 0x1B1 => array(0x28A), 0x1B2 => array(0x28B),
1126
+					0x1B3 => array(0x1B4), 0x1B5 => array(0x1B6), 0x1B7 => array(0x292),
1127
+					0x1B8 => array(0x1B9), 0x1BC => array(0x1BD), 0x1C4 => array(0x1C6),
1128
+					0x1C5 => array(0x1C6), 0x1C7 => array(0x1C9), 0x1C8 => array(0x1C9),
1129
+					0x1CA => array(0x1CC), 0x1CB => array(0x1CC), 0x1CD => array(0x1CE),
1130
+					0x1CF => array(0x1D0), 0x1D1 => array(0x1D2), 0x1D3 => array(0x1D4),
1131
+					0x1D5 => array(0x1D6), 0x1D7 => array(0x1D8), 0x1D9 => array(0x1DA),
1132
+					0x1DB => array(0x1DC), 0x1DE => array(0x1DF), 0x1E0 => array(0x1E1),
1133
+					0x1E2 => array(0x1E3), 0x1E4 => array(0x1E5), 0x1E6 => array(0x1E7),
1134
+					0x1E8 => array(0x1E9), 0x1EA => array(0x1EB), 0x1EC => array(0x1ED),
1135
+					0x1EE => array(0x1EF), 0x1F0 => array(0x6A, 0x30C), 0x1F1 => array(0x1F3),
1136
+					0x1F2 => array(0x1F3), 0x1F4 => array(0x1F5), 0x1F6 => array(0x195),
1137
+					0x1F7 => array(0x1BF), 0x1F8 => array(0x1F9), 0x1FA => array(0x1FB),
1138
+					0x1FC => array(0x1FD), 0x1FE => array(0x1FF), 0x200 => array(0x201),
1139
+					0x202 => array(0x203), 0x204 => array(0x205), 0x206 => array(0x207),
1140
+					0x208 => array(0x209), 0x20A => array(0x20B), 0x20C => array(0x20D),
1141
+					0x20E => array(0x20F), 0x210 => array(0x211), 0x212 => array(0x213),
1142
+					0x214 => array(0x215), 0x216 => array(0x217), 0x218 => array(0x219),
1143
+					0x21A => array(0x21B), 0x21C => array(0x21D), 0x21E => array(0x21F),
1144
+					0x220 => array(0x19E), 0x222 => array(0x223), 0x224 => array(0x225),
1145
+					0x226 => array(0x227), 0x228 => array(0x229), 0x22A => array(0x22B),
1146
+					0x22C => array(0x22D), 0x22E => array(0x22F), 0x230 => array(0x231),
1147
+					0x232 => array(0x233), 0x345 => array(0x3B9), 0x37A => array(0x20, 0x3B9),
1148
+					0x386 => array(0x3AC), 0x388 => array(0x3AD), 0x389 => array(0x3AE),
1149
+					0x38A => array(0x3AF), 0x38C => array(0x3CC), 0x38E => array(0x3CD),
1150
+					0x38F => array(0x3CE), 0x390 => array(0x3B9, 0x308, 0x301),
1151
+					0x391 => array(0x3B1), 0x392 => array(0x3B2), 0x393 => array(0x3B3),
1152
+					0x394 => array(0x3B4), 0x395 => array(0x3B5), 0x396 => array(0x3B6),
1153
+					0x397 => array(0x3B7), 0x398 => array(0x3B8), 0x399 => array(0x3B9),
1154
+					0x39A => array(0x3BA), 0x39B => array(0x3BB), 0x39C => array(0x3BC),
1155
+					0x39D => array(0x3BD), 0x39E => array(0x3BE), 0x39F => array(0x3BF),
1156
+					0x3A0 => array(0x3C0), 0x3A1 => array(0x3C1), 0x3A3 => array(0x3C3),
1157
+					0x3A4 => array(0x3C4), 0x3A5 => array(0x3C5), 0x3A6 => array(0x3C6),
1158
+					0x3A7 => array(0x3C7), 0x3A8 => array(0x3C8), 0x3A9 => array(0x3C9),
1159
+					0x3AA => array(0x3CA), 0x3AB => array(0x3CB), 0x3B0 => array(0x3C5, 0x308, 0x301),
1160
+					0x3C2 => array(0x3C3), 0x3D0 => array(0x3B2), 0x3D1 => array(0x3B8),
1161
+					0x3D2 => array(0x3C5), 0x3D3 => array(0x3CD), 0x3D4 => array(0x3CB),
1162
+					0x3D5 => array(0x3C6), 0x3D6 => array(0x3C0), 0x3D8 => array(0x3D9),
1163
+					0x3DA => array(0x3DB), 0x3DC => array(0x3DD), 0x3DE => array(0x3DF),
1164
+					0x3E0 => array(0x3E1), 0x3E2 => array(0x3E3), 0x3E4 => array(0x3E5),
1165
+					0x3E6 => array(0x3E7), 0x3E8 => array(0x3E9), 0x3EA => array(0x3EB),
1166
+					0x3EC => array(0x3ED), 0x3EE => array(0x3EF), 0x3F0 => array(0x3BA),
1167
+					0x3F1 => array(0x3C1), 0x3F2 => array(0x3C3), 0x3F4 => array(0x3B8),
1168
+					0x3F5 => array(0x3B5), 0x400 => array(0x450), 0x401 => array(0x451),
1169
+					0x402 => array(0x452), 0x403 => array(0x453), 0x404 => array(0x454),
1170
+					0x405 => array(0x455), 0x406 => array(0x456), 0x407 => array(0x457),
1171
+					0x408 => array(0x458), 0x409 => array(0x459), 0x40A => array(0x45A),
1172
+					0x40B => array(0x45B), 0x40C => array(0x45C), 0x40D => array(0x45D),
1173
+					0x40E => array(0x45E), 0x40F => array(0x45F), 0x410 => array(0x430),
1174
+					0x411 => array(0x431), 0x412 => array(0x432), 0x413 => array(0x433),
1175
+					0x414 => array(0x434), 0x415 => array(0x435), 0x416 => array(0x436),
1176
+					0x417 => array(0x437), 0x418 => array(0x438), 0x419 => array(0x439),
1177
+					0x41A => array(0x43A), 0x41B => array(0x43B), 0x41C => array(0x43C),
1178
+					0x41D => array(0x43D), 0x41E => array(0x43E), 0x41F => array(0x43F),
1179
+					0x420 => array(0x440), 0x421 => array(0x441), 0x422 => array(0x442),
1180
+					0x423 => array(0x443), 0x424 => array(0x444), 0x425 => array(0x445),
1181
+					0x426 => array(0x446), 0x427 => array(0x447), 0x428 => array(0x448),
1182
+					0x429 => array(0x449), 0x42A => array(0x44A), 0x42B => array(0x44B),
1183
+					0x42C => array(0x44C), 0x42D => array(0x44D), 0x42E => array(0x44E),
1184
+					0x42F => array(0x44F), 0x460 => array(0x461), 0x462 => array(0x463),
1185
+					0x464 => array(0x465), 0x466 => array(0x467), 0x468 => array(0x469),
1186
+					0x46A => array(0x46B), 0x46C => array(0x46D), 0x46E => array(0x46F),
1187
+					0x470 => array(0x471), 0x472 => array(0x473), 0x474 => array(0x475),
1188
+					0x476 => array(0x477), 0x478 => array(0x479), 0x47A => array(0x47B),
1189
+					0x47C => array(0x47D), 0x47E => array(0x47F), 0x480 => array(0x481),
1190
+					0x48A => array(0x48B), 0x48C => array(0x48D), 0x48E => array(0x48F),
1191
+					0x490 => array(0x491), 0x492 => array(0x493), 0x494 => array(0x495),
1192
+					0x496 => array(0x497), 0x498 => array(0x499), 0x49A => array(0x49B),
1193
+					0x49C => array(0x49D), 0x49E => array(0x49F), 0x4A0 => array(0x4A1),
1194
+					0x4A2 => array(0x4A3), 0x4A4 => array(0x4A5), 0x4A6 => array(0x4A7),
1195
+					0x4A8 => array(0x4A9), 0x4AA => array(0x4AB), 0x4AC => array(0x4AD),
1196
+					0x4AE => array(0x4AF), 0x4B0 => array(0x4B1), 0x4B2 => array(0x4B3),
1197
+					0x4B4 => array(0x4B5), 0x4B6 => array(0x4B7), 0x4B8 => array(0x4B9),
1198
+					0x4BA => array(0x4BB), 0x4BC => array(0x4BD), 0x4BE => array(0x4BF),
1199
+					0x4C1 => array(0x4C2), 0x4C3 => array(0x4C4), 0x4C5 => array(0x4C6),
1200
+					0x4C7 => array(0x4C8), 0x4C9 => array(0x4CA), 0x4CB => array(0x4CC),
1201
+					0x4CD => array(0x4CE), 0x4D0 => array(0x4D1), 0x4D2 => array(0x4D3),
1202
+					0x4D4 => array(0x4D5), 0x4D6 => array(0x4D7), 0x4D8 => array(0x4D9),
1203
+					0x4DA => array(0x4DB), 0x4DC => array(0x4DD), 0x4DE => array(0x4DF),
1204
+					0x4E0 => array(0x4E1), 0x4E2 => array(0x4E3), 0x4E4 => array(0x4E5),
1205
+					0x4E6 => array(0x4E7), 0x4E8 => array(0x4E9), 0x4EA => array(0x4EB),
1206
+					0x4EC => array(0x4ED), 0x4EE => array(0x4EF), 0x4F0 => array(0x4F1),
1207
+					0x4F2 => array(0x4F3), 0x4F4 => array(0x4F5), 0x4F8 => array(0x4F9),
1208
+					0x500 => array(0x501), 0x502 => array(0x503), 0x504 => array(0x505),
1209
+					0x506 => array(0x507), 0x508 => array(0x509), 0x50A => array(0x50B),
1210
+					0x50C => array(0x50D), 0x50E => array(0x50F), 0x531 => array(0x561),
1211
+					0x532 => array(0x562), 0x533 => array(0x563), 0x534 => array(0x564),
1212
+					0x535 => array(0x565), 0x536 => array(0x566), 0x537 => array(0x567),
1213
+					0x538 => array(0x568), 0x539 => array(0x569), 0x53A => array(0x56A),
1214
+					0x53B => array(0x56B), 0x53C => array(0x56C), 0x53D => array(0x56D),
1215
+					0x53E => array(0x56E), 0x53F => array(0x56F), 0x540 => array(0x570),
1216
+					0x541 => array(0x571), 0x542 => array(0x572), 0x543 => array(0x573),
1217
+					0x544 => array(0x574), 0x545 => array(0x575), 0x546 => array(0x576),
1218
+					0x547 => array(0x577), 0x548 => array(0x578), 0x549 => array(0x579),
1219
+					0x54A => array(0x57A), 0x54B => array(0x57B), 0x54C => array(0x57C),
1220
+					0x54D => array(0x57D), 0x54E => array(0x57E), 0x54F => array(0x57F),
1221
+					0x550 => array(0x580), 0x551 => array(0x581), 0x552 => array(0x582),
1222
+					0x553 => array(0x583), 0x554 => array(0x584), 0x555 => array(0x585),
1223
+					0x556 => array(0x586), 0x587 => array(0x565, 0x582), 0xE33 => array(0xE4D, 0xE32),
1224
+					0x1E00 => array(0x1E01), 0x1E02 => array(0x1E03), 0x1E04 => array(0x1E05),
1225
+					0x1E06 => array(0x1E07), 0x1E08 => array(0x1E09), 0x1E0A => array(0x1E0B),
1226
+					0x1E0C => array(0x1E0D), 0x1E0E => array(0x1E0F), 0x1E10 => array(0x1E11),
1227
+					0x1E12 => array(0x1E13), 0x1E14 => array(0x1E15), 0x1E16 => array(0x1E17),
1228
+					0x1E18 => array(0x1E19), 0x1E1A => array(0x1E1B), 0x1E1C => array(0x1E1D),
1229
+					0x1E1E => array(0x1E1F), 0x1E20 => array(0x1E21), 0x1E22 => array(0x1E23),
1230
+					0x1E24 => array(0x1E25), 0x1E26 => array(0x1E27), 0x1E28 => array(0x1E29),
1231
+					0x1E2A => array(0x1E2B), 0x1E2C => array(0x1E2D), 0x1E2E => array(0x1E2F),
1232
+					0x1E30 => array(0x1E31), 0x1E32 => array(0x1E33), 0x1E34 => array(0x1E35),
1233
+					0x1E36 => array(0x1E37), 0x1E38 => array(0x1E39), 0x1E3A => array(0x1E3B),
1234
+					0x1E3C => array(0x1E3D), 0x1E3E => array(0x1E3F), 0x1E40 => array(0x1E41),
1235
+					0x1E42 => array(0x1E43), 0x1E44 => array(0x1E45), 0x1E46 => array(0x1E47),
1236
+					0x1E48 => array(0x1E49), 0x1E4A => array(0x1E4B), 0x1E4C => array(0x1E4D),
1237
+					0x1E4E => array(0x1E4F), 0x1E50 => array(0x1E51), 0x1E52 => array(0x1E53),
1238
+					0x1E54 => array(0x1E55), 0x1E56 => array(0x1E57), 0x1E58 => array(0x1E59),
1239
+					0x1E5A => array(0x1E5B), 0x1E5C => array(0x1E5D), 0x1E5E => array(0x1E5F),
1240
+					0x1E60 => array(0x1E61), 0x1E62 => array(0x1E63), 0x1E64 => array(0x1E65),
1241
+					0x1E66 => array(0x1E67), 0x1E68 => array(0x1E69), 0x1E6A => array(0x1E6B),
1242
+					0x1E6C => array(0x1E6D), 0x1E6E => array(0x1E6F), 0x1E70 => array(0x1E71),
1243
+					0x1E72 => array(0x1E73), 0x1E74 => array(0x1E75), 0x1E76 => array(0x1E77),
1244
+					0x1E78 => array(0x1E79), 0x1E7A => array(0x1E7B), 0x1E7C => array(0x1E7D),
1245
+					0x1E7E => array(0x1E7F), 0x1E80 => array(0x1E81), 0x1E82 => array(0x1E83),
1246
+					0x1E84 => array(0x1E85), 0x1E86 => array(0x1E87), 0x1E88 => array(0x1E89),
1247
+					0x1E8A => array(0x1E8B), 0x1E8C => array(0x1E8D), 0x1E8E => array(0x1E8F),
1248
+					0x1E90 => array(0x1E91), 0x1E92 => array(0x1E93), 0x1E94 => array(0x1E95),
1249
+					0x1E96 => array(0x68, 0x331), 0x1E97 => array(0x74, 0x308), 0x1E98 => array(0x77, 0x30A),
1250
+					0x1E99 => array(0x79, 0x30A), 0x1E9A => array(0x61, 0x2BE), 0x1E9B => array(0x1E61),
1251
+					0x1EA0 => array(0x1EA1), 0x1EA2 => array(0x1EA3), 0x1EA4 => array(0x1EA5),
1252
+					0x1EA6 => array(0x1EA7), 0x1EA8 => array(0x1EA9), 0x1EAA => array(0x1EAB),
1253
+					0x1EAC => array(0x1EAD), 0x1EAE => array(0x1EAF), 0x1EB0 => array(0x1EB1),
1254
+					0x1EB2 => array(0x1EB3), 0x1EB4 => array(0x1EB5), 0x1EB6 => array(0x1EB7),
1255
+					0x1EB8 => array(0x1EB9), 0x1EBA => array(0x1EBB), 0x1EBC => array(0x1EBD),
1256
+					0x1EBE => array(0x1EBF), 0x1EC0 => array(0x1EC1), 0x1EC2 => array(0x1EC3),
1257
+					0x1EC4 => array(0x1EC5), 0x1EC6 => array(0x1EC7), 0x1EC8 => array(0x1EC9),
1258
+					0x1ECA => array(0x1ECB), 0x1ECC => array(0x1ECD), 0x1ECE => array(0x1ECF),
1259
+					0x1ED0 => array(0x1ED1), 0x1ED2 => array(0x1ED3), 0x1ED4 => array(0x1ED5),
1260
+					0x1ED6 => array(0x1ED7), 0x1ED8 => array(0x1ED9), 0x1EDA => array(0x1EDB),
1261
+					0x1EDC => array(0x1EDD), 0x1EDE => array(0x1EDF), 0x1EE0 => array(0x1EE1),
1262
+					0x1EE2 => array(0x1EE3), 0x1EE4 => array(0x1EE5), 0x1EE6 => array(0x1EE7),
1263
+					0x1EE8 => array(0x1EE9), 0x1EEA => array(0x1EEB), 0x1EEC => array(0x1EED),
1264
+					0x1EEE => array(0x1EEF), 0x1EF0 => array(0x1EF1), 0x1EF2 => array(0x1EF3),
1265
+					0x1EF4 => array(0x1EF5), 0x1EF6 => array(0x1EF7), 0x1EF8 => array(0x1EF9),
1266
+					0x1F08 => array(0x1F00), 0x1F09 => array(0x1F01), 0x1F0A => array(0x1F02),
1267
+					0x1F0B => array(0x1F03), 0x1F0C => array(0x1F04), 0x1F0D => array(0x1F05),
1268
+					0x1F0E => array(0x1F06), 0x1F0F => array(0x1F07), 0x1F18 => array(0x1F10),
1269
+					0x1F19 => array(0x1F11), 0x1F1A => array(0x1F12), 0x1F1B => array(0x1F13),
1270
+					0x1F1C => array(0x1F14), 0x1F1D => array(0x1F15), 0x1F28 => array(0x1F20),
1271
+					0x1F29 => array(0x1F21), 0x1F2A => array(0x1F22), 0x1F2B => array(0x1F23),
1272
+					0x1F2C => array(0x1F24), 0x1F2D => array(0x1F25), 0x1F2E => array(0x1F26),
1273
+					0x1F2F => array(0x1F27), 0x1F38 => array(0x1F30), 0x1F39 => array(0x1F31),
1274
+					0x1F3A => array(0x1F32), 0x1F3B => array(0x1F33), 0x1F3C => array(0x1F34),
1275
+					0x1F3D => array(0x1F35), 0x1F3E => array(0x1F36), 0x1F3F => array(0x1F37),
1276
+					0x1F48 => array(0x1F40), 0x1F49 => array(0x1F41), 0x1F4A => array(0x1F42),
1277
+					0x1F4B => array(0x1F43), 0x1F4C => array(0x1F44), 0x1F4D => array(0x1F45),
1278
+					0x1F50 => array(0x3C5, 0x313), 0x1F52 => array(0x3C5, 0x313, 0x300),
1279
+					0x1F54 => array(0x3C5, 0x313, 0x301), 0x1F56 => array(0x3C5, 0x313, 0x342),
1280
+					0x1F59 => array(0x1F51), 0x1F5B => array(0x1F53), 0x1F5D => array(0x1F55),
1281
+					0x1F5F => array(0x1F57), 0x1F68 => array(0x1F60), 0x1F69 => array(0x1F61),
1282
+					0x1F6A => array(0x1F62), 0x1F6B => array(0x1F63), 0x1F6C => array(0x1F64),
1283
+					0x1F6D => array(0x1F65), 0x1F6E => array(0x1F66), 0x1F6F => array(0x1F67),
1284
+					0x1F80 => array(0x1F00, 0x3B9), 0x1F81 => array(0x1F01, 0x3B9),
1285
+					0x1F82 => array(0x1F02, 0x3B9), 0x1F83 => array(0x1F03, 0x3B9),
1286
+					0x1F84 => array(0x1F04, 0x3B9), 0x1F85 => array(0x1F05, 0x3B9),
1287
+					0x1F86 => array(0x1F06, 0x3B9), 0x1F87 => array(0x1F07, 0x3B9),
1288
+					0x1F88 => array(0x1F00, 0x3B9), 0x1F89 => array(0x1F01, 0x3B9),
1289
+					0x1F8A => array(0x1F02, 0x3B9), 0x1F8B => array(0x1F03, 0x3B9),
1290
+					0x1F8C => array(0x1F04, 0x3B9), 0x1F8D => array(0x1F05, 0x3B9),
1291
+					0x1F8E => array(0x1F06, 0x3B9), 0x1F8F => array(0x1F07, 0x3B9),
1292
+					0x1F90 => array(0x1F20, 0x3B9), 0x1F91 => array(0x1F21, 0x3B9),
1293
+					0x1F92 => array(0x1F22, 0x3B9), 0x1F93 => array(0x1F23, 0x3B9),
1294
+					0x1F94 => array(0x1F24, 0x3B9), 0x1F95 => array(0x1F25, 0x3B9),
1295
+					0x1F96 => array(0x1F26, 0x3B9), 0x1F97 => array(0x1F27, 0x3B9),
1296
+					0x1F98 => array(0x1F20, 0x3B9), 0x1F99 => array(0x1F21, 0x3B9),
1297
+					0x1F9A => array(0x1F22, 0x3B9), 0x1F9B => array(0x1F23, 0x3B9),
1298
+					0x1F9C => array(0x1F24, 0x3B9), 0x1F9D => array(0x1F25, 0x3B9),
1299
+					0x1F9E => array(0x1F26, 0x3B9), 0x1F9F => array(0x1F27, 0x3B9),
1300
+					0x1FA0 => array(0x1F60, 0x3B9), 0x1FA1 => array(0x1F61, 0x3B9),
1301
+					0x1FA2 => array(0x1F62, 0x3B9), 0x1FA3 => array(0x1F63, 0x3B9),
1302
+					0x1FA4 => array(0x1F64, 0x3B9), 0x1FA5 => array(0x1F65, 0x3B9),
1303
+					0x1FA6 => array(0x1F66, 0x3B9), 0x1FA7 => array(0x1F67, 0x3B9),
1304
+					0x1FA8 => array(0x1F60, 0x3B9), 0x1FA9 => array(0x1F61, 0x3B9),
1305
+					0x1FAA => array(0x1F62, 0x3B9), 0x1FAB => array(0x1F63, 0x3B9),
1306
+					0x1FAC => array(0x1F64, 0x3B9), 0x1FAD => array(0x1F65, 0x3B9),
1307
+					0x1FAE => array(0x1F66, 0x3B9), 0x1FAF => array(0x1F67, 0x3B9),
1308
+					0x1FB2 => array(0x1F70, 0x3B9), 0x1FB3 => array(0x3B1, 0x3B9),
1309
+					0x1FB4 => array(0x3AC, 0x3B9), 0x1FB6 => array(0x3B1, 0x342),
1310
+					0x1FB7 => array(0x3B1, 0x342, 0x3B9), 0x1FB8 => array(0x1FB0),
1311
+					0x1FB9 => array(0x1FB1), 0x1FBA => array(0x1F70), 0x1FBB => array(0x1F71),
1312
+					0x1FBC => array(0x3B1, 0x3B9), 0x1FBE => array(0x3B9),
1313
+					0x1FC2 => array(0x1F74, 0x3B9), 0x1FC3 => array(0x3B7, 0x3B9),
1314
+					0x1FC4 => array(0x3AE, 0x3B9), 0x1FC6 => array(0x3B7, 0x342),
1315
+					0x1FC7 => array(0x3B7, 0x342, 0x3B9), 0x1FC8 => array(0x1F72),
1316
+					0x1FC9 => array(0x1F73), 0x1FCA => array(0x1F74), 0x1FCB => array(0x1F75),
1317
+					0x1FCC => array(0x3B7, 0x3B9), 0x1FD2 => array(0x3B9, 0x308, 0x300),
1318
+					0x1FD3 => array(0x3B9, 0x308, 0x301), 0x1FD6 => array(0x3B9, 0x342),
1319
+					0x1FD7 => array(0x3B9, 0x308, 0x342), 0x1FD8 => array(0x1FD0),
1320
+					0x1FD9 => array(0x1FD1), 0x1FDA => array(0x1F76),
1321
+					0x1FDB => array(0x1F77), 0x1FE2 => array(0x3C5, 0x308, 0x300),
1322
+					0x1FE3 => array(0x3C5, 0x308, 0x301), 0x1FE4 => array(0x3C1, 0x313),
1323
+					0x1FE6 => array(0x3C5, 0x342), 0x1FE7 => array(0x3C5, 0x308, 0x342),
1324
+					0x1FE8 => array(0x1FE0), 0x1FE9 => array(0x1FE1),
1325
+					0x1FEA => array(0x1F7A), 0x1FEB => array(0x1F7B),
1326
+					0x1FEC => array(0x1FE5), 0x1FF2 => array(0x1F7C, 0x3B9),
1327
+					0x1FF3 => array(0x3C9, 0x3B9), 0x1FF4 => array(0x3CE, 0x3B9),
1328
+					0x1FF6 => array(0x3C9, 0x342), 0x1FF7 => array(0x3C9, 0x342, 0x3B9),
1329
+					0x1FF8 => array(0x1F78), 0x1FF9 => array(0x1F79), 0x1FFA => array(0x1F7C),
1330
+					0x1FFB => array(0x1F7D), 0x1FFC => array(0x3C9, 0x3B9),
1331
+					0x20A8 => array(0x72, 0x73), 0x2102 => array(0x63), 0x2103 => array(0xB0, 0x63),
1332
+					0x2107 => array(0x25B), 0x2109 => array(0xB0, 0x66), 0x210B => array(0x68),
1333
+					0x210C => array(0x68), 0x210D => array(0x68), 0x2110 => array(0x69),
1334
+					0x2111 => array(0x69), 0x2112 => array(0x6C), 0x2115 => array(0x6E),
1335
+					0x2116 => array(0x6E, 0x6F), 0x2119 => array(0x70), 0x211A => array(0x71),
1336
+					0x211B => array(0x72), 0x211C => array(0x72), 0x211D => array(0x72),
1337
+					0x2120 => array(0x73, 0x6D), 0x2121 => array(0x74, 0x65, 0x6C),
1338
+					0x2122 => array(0x74, 0x6D), 0x2124 => array(0x7A), 0x2126 => array(0x3C9),
1339
+					0x2128 => array(0x7A), 0x212A => array(0x6B), 0x212B => array(0xE5),
1340
+					0x212C => array(0x62), 0x212D => array(0x63), 0x2130 => array(0x65),
1341
+					0x2131 => array(0x66), 0x2133 => array(0x6D), 0x213E => array(0x3B3),
1342
+					0x213F => array(0x3C0), 0x2145 => array(0x64), 0x2160 => array(0x2170),
1343
+					0x2161 => array(0x2171), 0x2162 => array(0x2172), 0x2163 => array(0x2173),
1344
+					0x2164 => array(0x2174), 0x2165 => array(0x2175), 0x2166 => array(0x2176),
1345
+					0x2167 => array(0x2177), 0x2168 => array(0x2178), 0x2169 => array(0x2179),
1346
+					0x216A => array(0x217A), 0x216B => array(0x217B), 0x216C => array(0x217C),
1347
+					0x216D => array(0x217D), 0x216E => array(0x217E), 0x216F => array(0x217F),
1348
+					0x24B6 => array(0x24D0), 0x24B7 => array(0x24D1), 0x24B8 => array(0x24D2),
1349
+					0x24B9 => array(0x24D3), 0x24BA => array(0x24D4), 0x24BB => array(0x24D5),
1350
+					0x24BC => array(0x24D6), 0x24BD => array(0x24D7), 0x24BE => array(0x24D8),
1351
+					0x24BF => array(0x24D9), 0x24C0 => array(0x24DA), 0x24C1 => array(0x24DB),
1352
+					0x24C2 => array(0x24DC), 0x24C3 => array(0x24DD), 0x24C4 => array(0x24DE),
1353
+					0x24C5 => array(0x24DF), 0x24C6 => array(0x24E0), 0x24C7 => array(0x24E1),
1354
+					0x24C8 => array(0x24E2), 0x24C9 => array(0x24E3), 0x24CA => array(0x24E4),
1355
+					0x24CB => array(0x24E5), 0x24CC => array(0x24E6), 0x24CD => array(0x24E7),
1356
+					0x24CE => array(0x24E8), 0x24CF => array(0x24E9), 0x3371 => array(0x68, 0x70, 0x61),
1357
+					0x3373 => array(0x61, 0x75), 0x3375 => array(0x6F, 0x76),
1358
+					0x3380 => array(0x70, 0x61), 0x3381 => array(0x6E, 0x61),
1359
+					0x3382 => array(0x3BC, 0x61), 0x3383 => array(0x6D, 0x61),
1360
+					0x3384 => array(0x6B, 0x61), 0x3385 => array(0x6B, 0x62),
1361
+					0x3386 => array(0x6D, 0x62), 0x3387 => array(0x67, 0x62),
1362
+					0x338A => array(0x70, 0x66), 0x338B => array(0x6E, 0x66),
1363
+					0x338C => array(0x3BC, 0x66), 0x3390 => array(0x68, 0x7A),
1364
+					0x3391 => array(0x6B, 0x68, 0x7A), 0x3392 => array(0x6D, 0x68, 0x7A),
1365
+					0x3393 => array(0x67, 0x68, 0x7A), 0x3394 => array(0x74, 0x68, 0x7A),
1366
+					0x33A9 => array(0x70, 0x61), 0x33AA => array(0x6B, 0x70, 0x61),
1367
+					0x33AB => array(0x6D, 0x70, 0x61), 0x33AC => array(0x67, 0x70, 0x61),
1368
+					0x33B4 => array(0x70, 0x76), 0x33B5 => array(0x6E, 0x76),
1369
+					0x33B6 => array(0x3BC, 0x76), 0x33B7 => array(0x6D, 0x76),
1370
+					0x33B8 => array(0x6B, 0x76), 0x33B9 => array(0x6D, 0x76),
1371
+					0x33BA => array(0x70, 0x77), 0x33BB => array(0x6E, 0x77),
1372
+					0x33BC => array(0x3BC, 0x77), 0x33BD => array(0x6D, 0x77),
1373
+					0x33BE => array(0x6B, 0x77), 0x33BF => array(0x6D, 0x77),
1374
+					0x33C0 => array(0x6B, 0x3C9), 0x33C1 => array(0x6D, 0x3C9), /*
1375 1375
                     0x33C2  => array(0x61, 0x2E, 0x6D, 0x2E), */
1376
-                    0x33C3 => array(0x62, 0x71), 0x33C6 => array(0x63, 0x2215, 0x6B, 0x67),
1377
-                    0x33C7 => array(0x63, 0x6F, 0x2E), 0x33C8 => array(0x64, 0x62),
1378
-                    0x33C9 => array(0x67, 0x79), 0x33CB => array(0x68, 0x70),
1379
-                    0x33CD => array(0x6B, 0x6B), 0x33CE => array(0x6B, 0x6D),
1380
-                    0x33D7 => array(0x70, 0x68), 0x33D9 => array(0x70, 0x70, 0x6D),
1381
-                    0x33DA => array(0x70, 0x72), 0x33DC => array(0x73, 0x76),
1382
-                    0x33DD => array(0x77, 0x62), 0xFB00 => array(0x66, 0x66),
1383
-                    0xFB01 => array(0x66, 0x69), 0xFB02 => array(0x66, 0x6C),
1384
-                    0xFB03 => array(0x66, 0x66, 0x69), 0xFB04 => array(0x66, 0x66, 0x6C),
1385
-                    0xFB05 => array(0x73, 0x74), 0xFB06 => array(0x73, 0x74),
1386
-                    0xFB13 => array(0x574, 0x576), 0xFB14 => array(0x574, 0x565),
1387
-                    0xFB15 => array(0x574, 0x56B), 0xFB16 => array(0x57E, 0x576),
1388
-                    0xFB17 => array(0x574, 0x56D), 0xFF21 => array(0xFF41),
1389
-                    0xFF22 => array(0xFF42), 0xFF23 => array(0xFF43), 0xFF24 => array(0xFF44),
1390
-                    0xFF25 => array(0xFF45), 0xFF26 => array(0xFF46), 0xFF27 => array(0xFF47),
1391
-                    0xFF28 => array(0xFF48), 0xFF29 => array(0xFF49), 0xFF2A => array(0xFF4A),
1392
-                    0xFF2B => array(0xFF4B), 0xFF2C => array(0xFF4C), 0xFF2D => array(0xFF4D),
1393
-                    0xFF2E => array(0xFF4E), 0xFF2F => array(0xFF4F), 0xFF30 => array(0xFF50),
1394
-                    0xFF31 => array(0xFF51), 0xFF32 => array(0xFF52), 0xFF33 => array(0xFF53),
1395
-                    0xFF34 => array(0xFF54), 0xFF35 => array(0xFF55), 0xFF36 => array(0xFF56),
1396
-                    0xFF37 => array(0xFF57), 0xFF38 => array(0xFF58), 0xFF39 => array(0xFF59),
1397
-                    0xFF3A => array(0xFF5A), 0x10400 => array(0x10428), 0x10401 => array(0x10429),
1398
-                    0x10402 => array(0x1042A), 0x10403 => array(0x1042B), 0x10404 => array(0x1042C),
1399
-                    0x10405 => array(0x1042D), 0x10406 => array(0x1042E), 0x10407 => array(0x1042F),
1400
-                    0x10408 => array(0x10430), 0x10409 => array(0x10431), 0x1040A => array(0x10432),
1401
-                    0x1040B => array(0x10433), 0x1040C => array(0x10434), 0x1040D => array(0x10435),
1402
-                    0x1040E => array(0x10436), 0x1040F => array(0x10437), 0x10410 => array(0x10438),
1403
-                    0x10411 => array(0x10439), 0x10412 => array(0x1043A), 0x10413 => array(0x1043B),
1404
-                    0x10414 => array(0x1043C), 0x10415 => array(0x1043D), 0x10416 => array(0x1043E),
1405
-                    0x10417 => array(0x1043F), 0x10418 => array(0x10440), 0x10419 => array(0x10441),
1406
-                    0x1041A => array(0x10442), 0x1041B => array(0x10443), 0x1041C => array(0x10444),
1407
-                    0x1041D => array(0x10445), 0x1041E => array(0x10446), 0x1041F => array(0x10447),
1408
-                    0x10420 => array(0x10448), 0x10421 => array(0x10449), 0x10422 => array(0x1044A),
1409
-                    0x10423 => array(0x1044B), 0x10424 => array(0x1044C), 0x10425 => array(0x1044D),
1410
-                    0x1D400 => array(0x61), 0x1D401 => array(0x62), 0x1D402 => array(0x63),
1411
-                    0x1D403 => array(0x64), 0x1D404 => array(0x65), 0x1D405 => array(0x66),
1412
-                    0x1D406 => array(0x67), 0x1D407 => array(0x68), 0x1D408 => array(0x69),
1413
-                    0x1D409 => array(0x6A), 0x1D40A => array(0x6B), 0x1D40B => array(0x6C),
1414
-                    0x1D40C => array(0x6D), 0x1D40D => array(0x6E), 0x1D40E => array(0x6F),
1415
-                    0x1D40F => array(0x70), 0x1D410 => array(0x71), 0x1D411 => array(0x72),
1416
-                    0x1D412 => array(0x73), 0x1D413 => array(0x74), 0x1D414 => array(0x75),
1417
-                    0x1D415 => array(0x76), 0x1D416 => array(0x77), 0x1D417 => array(0x78),
1418
-                    0x1D418 => array(0x79), 0x1D419 => array(0x7A), 0x1D434 => array(0x61),
1419
-                    0x1D435 => array(0x62), 0x1D436 => array(0x63), 0x1D437 => array(0x64),
1420
-                    0x1D438 => array(0x65), 0x1D439 => array(0x66), 0x1D43A => array(0x67),
1421
-                    0x1D43B => array(0x68), 0x1D43C => array(0x69), 0x1D43D => array(0x6A),
1422
-                    0x1D43E => array(0x6B), 0x1D43F => array(0x6C), 0x1D440 => array(0x6D),
1423
-                    0x1D441 => array(0x6E), 0x1D442 => array(0x6F), 0x1D443 => array(0x70),
1424
-                    0x1D444 => array(0x71), 0x1D445 => array(0x72), 0x1D446 => array(0x73),
1425
-                    0x1D447 => array(0x74), 0x1D448 => array(0x75), 0x1D449 => array(0x76),
1426
-                    0x1D44A => array(0x77), 0x1D44B => array(0x78), 0x1D44C => array(0x79),
1427
-                    0x1D44D => array(0x7A), 0x1D468 => array(0x61), 0x1D469 => array(0x62),
1428
-                    0x1D46A => array(0x63), 0x1D46B => array(0x64), 0x1D46C => array(0x65),
1429
-                    0x1D46D => array(0x66), 0x1D46E => array(0x67), 0x1D46F => array(0x68),
1430
-                    0x1D470 => array(0x69), 0x1D471 => array(0x6A), 0x1D472 => array(0x6B),
1431
-                    0x1D473 => array(0x6C), 0x1D474 => array(0x6D), 0x1D475 => array(0x6E),
1432
-                    0x1D476 => array(0x6F), 0x1D477 => array(0x70), 0x1D478 => array(0x71),
1433
-                    0x1D479 => array(0x72), 0x1D47A => array(0x73), 0x1D47B => array(0x74),
1434
-                    0x1D47C => array(0x75), 0x1D47D => array(0x76), 0x1D47E => array(0x77),
1435
-                    0x1D47F => array(0x78), 0x1D480 => array(0x79), 0x1D481 => array(0x7A),
1436
-                    0x1D49C => array(0x61), 0x1D49E => array(0x63), 0x1D49F => array(0x64),
1437
-                    0x1D4A2 => array(0x67), 0x1D4A5 => array(0x6A), 0x1D4A6 => array(0x6B),
1438
-                    0x1D4A9 => array(0x6E), 0x1D4AA => array(0x6F), 0x1D4AB => array(0x70),
1439
-                    0x1D4AC => array(0x71), 0x1D4AE => array(0x73), 0x1D4AF => array(0x74),
1440
-                    0x1D4B0 => array(0x75), 0x1D4B1 => array(0x76), 0x1D4B2 => array(0x77),
1441
-                    0x1D4B3 => array(0x78), 0x1D4B4 => array(0x79), 0x1D4B5 => array(0x7A),
1442
-                    0x1D4D0 => array(0x61), 0x1D4D1 => array(0x62), 0x1D4D2 => array(0x63),
1443
-                    0x1D4D3 => array(0x64), 0x1D4D4 => array(0x65), 0x1D4D5 => array(0x66),
1444
-                    0x1D4D6 => array(0x67), 0x1D4D7 => array(0x68), 0x1D4D8 => array(0x69),
1445
-                    0x1D4D9 => array(0x6A), 0x1D4DA => array(0x6B), 0x1D4DB => array(0x6C),
1446
-                    0x1D4DC => array(0x6D), 0x1D4DD => array(0x6E), 0x1D4DE => array(0x6F),
1447
-                    0x1D4DF => array(0x70), 0x1D4E0 => array(0x71), 0x1D4E1 => array(0x72),
1448
-                    0x1D4E2 => array(0x73), 0x1D4E3 => array(0x74), 0x1D4E4 => array(0x75),
1449
-                    0x1D4E5 => array(0x76), 0x1D4E6 => array(0x77), 0x1D4E7 => array(0x78),
1450
-                    0x1D4E8 => array(0x79), 0x1D4E9 => array(0x7A), 0x1D504 => array(0x61),
1451
-                    0x1D505 => array(0x62), 0x1D507 => array(0x64), 0x1D508 => array(0x65),
1452
-                    0x1D509 => array(0x66), 0x1D50A => array(0x67), 0x1D50D => array(0x6A),
1453
-                    0x1D50E => array(0x6B), 0x1D50F => array(0x6C), 0x1D510 => array(0x6D),
1454
-                    0x1D511 => array(0x6E), 0x1D512 => array(0x6F), 0x1D513 => array(0x70),
1455
-                    0x1D514 => array(0x71), 0x1D516 => array(0x73), 0x1D517 => array(0x74),
1456
-                    0x1D518 => array(0x75), 0x1D519 => array(0x76), 0x1D51A => array(0x77),
1457
-                    0x1D51B => array(0x78), 0x1D51C => array(0x79), 0x1D538 => array(0x61),
1458
-                    0x1D539 => array(0x62), 0x1D53B => array(0x64), 0x1D53C => array(0x65),
1459
-                    0x1D53D => array(0x66), 0x1D53E => array(0x67), 0x1D540 => array(0x69),
1460
-                    0x1D541 => array(0x6A), 0x1D542 => array(0x6B), 0x1D543 => array(0x6C),
1461
-                    0x1D544 => array(0x6D), 0x1D546 => array(0x6F), 0x1D54A => array(0x73),
1462
-                    0x1D54B => array(0x74), 0x1D54C => array(0x75), 0x1D54D => array(0x76),
1463
-                    0x1D54E => array(0x77), 0x1D54F => array(0x78), 0x1D550 => array(0x79),
1464
-                    0x1D56C => array(0x61), 0x1D56D => array(0x62), 0x1D56E => array(0x63),
1465
-                    0x1D56F => array(0x64), 0x1D570 => array(0x65), 0x1D571 => array(0x66),
1466
-                    0x1D572 => array(0x67), 0x1D573 => array(0x68), 0x1D574 => array(0x69),
1467
-                    0x1D575 => array(0x6A), 0x1D576 => array(0x6B), 0x1D577 => array(0x6C),
1468
-                    0x1D578 => array(0x6D), 0x1D579 => array(0x6E), 0x1D57A => array(0x6F),
1469
-                    0x1D57B => array(0x70), 0x1D57C => array(0x71), 0x1D57D => array(0x72),
1470
-                    0x1D57E => array(0x73), 0x1D57F => array(0x74), 0x1D580 => array(0x75),
1471
-                    0x1D581 => array(0x76), 0x1D582 => array(0x77), 0x1D583 => array(0x78),
1472
-                    0x1D584 => array(0x79), 0x1D585 => array(0x7A), 0x1D5A0 => array(0x61),
1473
-                    0x1D5A1 => array(0x62), 0x1D5A2 => array(0x63), 0x1D5A3 => array(0x64),
1474
-                    0x1D5A4 => array(0x65), 0x1D5A5 => array(0x66), 0x1D5A6 => array(0x67),
1475
-                    0x1D5A7 => array(0x68), 0x1D5A8 => array(0x69), 0x1D5A9 => array(0x6A),
1476
-                    0x1D5AA => array(0x6B), 0x1D5AB => array(0x6C), 0x1D5AC => array(0x6D),
1477
-                    0x1D5AD => array(0x6E), 0x1D5AE => array(0x6F), 0x1D5AF => array(0x70),
1478
-                    0x1D5B0 => array(0x71), 0x1D5B1 => array(0x72), 0x1D5B2 => array(0x73),
1479
-                    0x1D5B3 => array(0x74), 0x1D5B4 => array(0x75), 0x1D5B5 => array(0x76),
1480
-                    0x1D5B6 => array(0x77), 0x1D5B7 => array(0x78), 0x1D5B8 => array(0x79),
1481
-                    0x1D5B9 => array(0x7A), 0x1D5D4 => array(0x61), 0x1D5D5 => array(0x62),
1482
-                    0x1D5D6 => array(0x63), 0x1D5D7 => array(0x64), 0x1D5D8 => array(0x65),
1483
-                    0x1D5D9 => array(0x66), 0x1D5DA => array(0x67), 0x1D5DB => array(0x68),
1484
-                    0x1D5DC => array(0x69), 0x1D5DD => array(0x6A), 0x1D5DE => array(0x6B),
1485
-                    0x1D5DF => array(0x6C), 0x1D5E0 => array(0x6D), 0x1D5E1 => array(0x6E),
1486
-                    0x1D5E2 => array(0x6F), 0x1D5E3 => array(0x70), 0x1D5E4 => array(0x71),
1487
-                    0x1D5E5 => array(0x72), 0x1D5E6 => array(0x73), 0x1D5E7 => array(0x74),
1488
-                    0x1D5E8 => array(0x75), 0x1D5E9 => array(0x76), 0x1D5EA => array(0x77),
1489
-                    0x1D5EB => array(0x78), 0x1D5EC => array(0x79), 0x1D5ED => array(0x7A),
1490
-                    0x1D608 => array(0x61), 0x1D609 => array(0x62), 0x1D60A => array(0x63),
1491
-                    0x1D60B => array(0x64), 0x1D60C => array(0x65), 0x1D60D => array(0x66),
1492
-                    0x1D60E => array(0x67), 0x1D60F => array(0x68), 0x1D610 => array(0x69),
1493
-                    0x1D611 => array(0x6A), 0x1D612 => array(0x6B), 0x1D613 => array(0x6C),
1494
-                    0x1D614 => array(0x6D), 0x1D615 => array(0x6E), 0x1D616 => array(0x6F),
1495
-                    0x1D617 => array(0x70), 0x1D618 => array(0x71), 0x1D619 => array(0x72),
1496
-                    0x1D61A => array(0x73), 0x1D61B => array(0x74), 0x1D61C => array(0x75),
1497
-                    0x1D61D => array(0x76), 0x1D61E => array(0x77), 0x1D61F => array(0x78),
1498
-                    0x1D620 => array(0x79), 0x1D621 => array(0x7A), 0x1D63C => array(0x61),
1499
-                    0x1D63D => array(0x62), 0x1D63E => array(0x63), 0x1D63F => array(0x64),
1500
-                    0x1D640 => array(0x65), 0x1D641 => array(0x66), 0x1D642 => array(0x67),
1501
-                    0x1D643 => array(0x68), 0x1D644 => array(0x69), 0x1D645 => array(0x6A),
1502
-                    0x1D646 => array(0x6B), 0x1D647 => array(0x6C), 0x1D648 => array(0x6D),
1503
-                    0x1D649 => array(0x6E), 0x1D64A => array(0x6F), 0x1D64B => array(0x70),
1504
-                    0x1D64C => array(0x71), 0x1D64D => array(0x72), 0x1D64E => array(0x73),
1505
-                    0x1D64F => array(0x74), 0x1D650 => array(0x75), 0x1D651 => array(0x76),
1506
-                    0x1D652 => array(0x77), 0x1D653 => array(0x78), 0x1D654 => array(0x79),
1507
-                    0x1D655 => array(0x7A), 0x1D670 => array(0x61), 0x1D671 => array(0x62),
1508
-                    0x1D672 => array(0x63), 0x1D673 => array(0x64), 0x1D674 => array(0x65),
1509
-                    0x1D675 => array(0x66), 0x1D676 => array(0x67), 0x1D677 => array(0x68),
1510
-                    0x1D678 => array(0x69), 0x1D679 => array(0x6A), 0x1D67A => array(0x6B),
1511
-                    0x1D67B => array(0x6C), 0x1D67C => array(0x6D), 0x1D67D => array(0x6E),
1512
-                    0x1D67E => array(0x6F), 0x1D67F => array(0x70), 0x1D680 => array(0x71),
1513
-                    0x1D681 => array(0x72), 0x1D682 => array(0x73), 0x1D683 => array(0x74),
1514
-                    0x1D684 => array(0x75), 0x1D685 => array(0x76), 0x1D686 => array(0x77),
1515
-                    0x1D687 => array(0x78), 0x1D688 => array(0x79), 0x1D689 => array(0x7A),
1516
-                    0x1D6A8 => array(0x3B1), 0x1D6A9 => array(0x3B2), 0x1D6AA => array(0x3B3),
1517
-                    0x1D6AB => array(0x3B4), 0x1D6AC => array(0x3B5), 0x1D6AD => array(0x3B6),
1518
-                    0x1D6AE => array(0x3B7), 0x1D6AF => array(0x3B8), 0x1D6B0 => array(0x3B9),
1519
-                    0x1D6B1 => array(0x3BA), 0x1D6B2 => array(0x3BB), 0x1D6B3 => array(0x3BC),
1520
-                    0x1D6B4 => array(0x3BD), 0x1D6B5 => array(0x3BE), 0x1D6B6 => array(0x3BF),
1521
-                    0x1D6B7 => array(0x3C0), 0x1D6B8 => array(0x3C1), 0x1D6B9 => array(0x3B8),
1522
-                    0x1D6BA => array(0x3C3), 0x1D6BB => array(0x3C4), 0x1D6BC => array(0x3C5),
1523
-                    0x1D6BD => array(0x3C6), 0x1D6BE => array(0x3C7), 0x1D6BF => array(0x3C8),
1524
-                    0x1D6C0 => array(0x3C9), 0x1D6D3 => array(0x3C3), 0x1D6E2 => array(0x3B1),
1525
-                    0x1D6E3 => array(0x3B2), 0x1D6E4 => array(0x3B3), 0x1D6E5 => array(0x3B4),
1526
-                    0x1D6E6 => array(0x3B5), 0x1D6E7 => array(0x3B6), 0x1D6E8 => array(0x3B7),
1527
-                    0x1D6E9 => array(0x3B8), 0x1D6EA => array(0x3B9), 0x1D6EB => array(0x3BA),
1528
-                    0x1D6EC => array(0x3BB), 0x1D6ED => array(0x3BC), 0x1D6EE => array(0x3BD),
1529
-                    0x1D6EF => array(0x3BE), 0x1D6F0 => array(0x3BF), 0x1D6F1 => array(0x3C0),
1530
-                    0x1D6F2 => array(0x3C1), 0x1D6F3 => array(0x3B8), 0x1D6F4 => array(0x3C3),
1531
-                    0x1D6F5 => array(0x3C4), 0x1D6F6 => array(0x3C5), 0x1D6F7 => array(0x3C6),
1532
-                    0x1D6F8 => array(0x3C7), 0x1D6F9 => array(0x3C8), 0x1D6FA => array(0x3C9),
1533
-                    0x1D70D => array(0x3C3), 0x1D71C => array(0x3B1), 0x1D71D => array(0x3B2),
1534
-                    0x1D71E => array(0x3B3), 0x1D71F => array(0x3B4), 0x1D720 => array(0x3B5),
1535
-                    0x1D721 => array(0x3B6), 0x1D722 => array(0x3B7), 0x1D723 => array(0x3B8),
1536
-                    0x1D724 => array(0x3B9), 0x1D725 => array(0x3BA), 0x1D726 => array(0x3BB),
1537
-                    0x1D727 => array(0x3BC), 0x1D728 => array(0x3BD), 0x1D729 => array(0x3BE),
1538
-                    0x1D72A => array(0x3BF), 0x1D72B => array(0x3C0), 0x1D72C => array(0x3C1),
1539
-                    0x1D72D => array(0x3B8), 0x1D72E => array(0x3C3), 0x1D72F => array(0x3C4),
1540
-                    0x1D730 => array(0x3C5), 0x1D731 => array(0x3C6), 0x1D732 => array(0x3C7),
1541
-                    0x1D733 => array(0x3C8), 0x1D734 => array(0x3C9), 0x1D747 => array(0x3C3),
1542
-                    0x1D756 => array(0x3B1), 0x1D757 => array(0x3B2), 0x1D758 => array(0x3B3),
1543
-                    0x1D759 => array(0x3B4), 0x1D75A => array(0x3B5), 0x1D75B => array(0x3B6),
1544
-                    0x1D75C => array(0x3B7), 0x1D75D => array(0x3B8), 0x1D75E => array(0x3B9),
1545
-                    0x1D75F => array(0x3BA), 0x1D760 => array(0x3BB), 0x1D761 => array(0x3BC),
1546
-                    0x1D762 => array(0x3BD), 0x1D763 => array(0x3BE), 0x1D764 => array(0x3BF),
1547
-                    0x1D765 => array(0x3C0), 0x1D766 => array(0x3C1), 0x1D767 => array(0x3B8),
1548
-                    0x1D768 => array(0x3C3), 0x1D769 => array(0x3C4), 0x1D76A => array(0x3C5),
1549
-                    0x1D76B => array(0x3C6), 0x1D76C => array(0x3C7), 0x1D76D => array(0x3C8),
1550
-                    0x1D76E => array(0x3C9), 0x1D781 => array(0x3C3), 0x1D790 => array(0x3B1),
1551
-                    0x1D791 => array(0x3B2), 0x1D792 => array(0x3B3), 0x1D793 => array(0x3B4),
1552
-                    0x1D794 => array(0x3B5), 0x1D795 => array(0x3B6), 0x1D796 => array(0x3B7),
1553
-                    0x1D797 => array(0x3B8), 0x1D798 => array(0x3B9), 0x1D799 => array(0x3BA),
1554
-                    0x1D79A => array(0x3BB), 0x1D79B => array(0x3BC), 0x1D79C => array(0x3BD),
1555
-                    0x1D79D => array(0x3BE), 0x1D79E => array(0x3BF), 0x1D79F => array(0x3C0),
1556
-                    0x1D7A0 => array(0x3C1), 0x1D7A1 => array(0x3B8), 0x1D7A2 => array(0x3C3),
1557
-                    0x1D7A3 => array(0x3C4), 0x1D7A4 => array(0x3C5), 0x1D7A5 => array(0x3C6),
1558
-                    0x1D7A6 => array(0x3C7), 0x1D7A7 => array(0x3C8), 0x1D7A8 => array(0x3C9),
1559
-                    0x1D7BB => array(0x3C3), 0x3F9 => array(0x3C3), 0x1D2C => array(0x61),
1560
-                    0x1D2D => array(0xE6), 0x1D2E => array(0x62), 0x1D30 => array(0x64),
1561
-                    0x1D31 => array(0x65), 0x1D32 => array(0x1DD), 0x1D33 => array(0x67),
1562
-                    0x1D34 => array(0x68), 0x1D35 => array(0x69), 0x1D36 => array(0x6A),
1563
-                    0x1D37 => array(0x6B), 0x1D38 => array(0x6C), 0x1D39 => array(0x6D),
1564
-                    0x1D3A => array(0x6E), 0x1D3C => array(0x6F), 0x1D3D => array(0x223),
1565
-                    0x1D3E => array(0x70), 0x1D3F => array(0x72), 0x1D40 => array(0x74),
1566
-                    0x1D41 => array(0x75), 0x1D42 => array(0x77), 0x213B => array(0x66, 0x61, 0x78),
1567
-                    0x3250 => array(0x70, 0x74, 0x65), 0x32CC => array(0x68, 0x67),
1568
-                    0x32CE => array(0x65, 0x76), 0x32CF => array(0x6C, 0x74, 0x64),
1569
-                    0x337A => array(0x69, 0x75), 0x33DE => array(0x76, 0x2215, 0x6D),
1570
-                    0x33DF => array(0x61, 0x2215, 0x6D)
1571
-            ),
1572
-            'replacemaps' => array(0x41 => array(0x61), 0x42 => array(0x62), 0x43 => array(0x63),
1573
-                    0x44 => array(0x64), 0x45 => array(0x65), 0x46 => array(0x66),
1574
-                    0x47 => array(0x67), 0x48 => array(0x68), 0x49 => array(0x69),
1575
-                    0x4A => array(0x6A), 0x4B => array(0x6B), 0x4C => array(0x6C),
1576
-                    0x4D => array(0x6D), 0x4E => array(0x6E), 0x4F => array(0x6F),
1577
-                    0x50 => array(0x70), 0x51 => array(0x71), 0x52 => array(0x72),
1578
-                    0x53 => array(0x73), 0x54 => array(0x74), 0x55 => array(0x75),
1579
-                    0x56 => array(0x76), 0x57 => array(0x77), 0x58 => array(0x78),
1580
-                    0x59 => array(0x79), 0x5A => array(0x7A), 0xAA => array(0x61),
1581
-                    0xB2 => array(0x32), 0xB3 => array(0x33), 0xB5 => array(0x3BC),
1582
-                    0xB9 => array(0x31), 0xBA => array(0x6F), 0xBC => array(0x31, 0x2044, 0x34),
1583
-                    0xBD => array(0x31, 0x2044, 0x32), 0xBE => array(0x33, 0x2044, 0x34), 0xC0 => array(0xE0),
1584
-                    0xC1 => array(0xE1), 0xC2 => array(0xE2), 0xC3 => array(0xE3),
1585
-                    0xC4 => array(0xE4), 0xC5 => array(0xE5), 0xC6 => array(0xE6),
1586
-                    0xC7 => array(0xE7), 0xC8 => array(0xE8), 0xC9 => array(0xE9),
1587
-                    0xCA => array(0xEA), 0xCB => array(0xEB), 0xCC => array(0xEC),
1588
-                    0xCD => array(0xED), 0xCE => array(0xEE), 0xCF => array(0xEF),
1589
-                    0xD0 => array(0xF0), 0xD1 => array(0xF1), 0xD2 => array(0xF2),
1590
-                    0xD3 => array(0xF3), 0xD4 => array(0xF4), 0xD5 => array(0xF5),
1591
-                    0xD6 => array(0xF6), 0xD8 => array(0xF8), 0xD9 => array(0xF9),
1592
-                    0xDA => array(0xFA), 0xDB => array(0xFB), 0xDC => array(0xFC),
1593
-                    0xDD => array(0xFD), 0xDE => array(0xFE), 0x100 => array(0x101),
1594
-                    0x102 => array(0x103), 0x104 => array(0x105), 0x106 => array(0x107),
1595
-                    0x108 => array(0x109), 0x10A => array(0x10B), 0x10C => array(0x10D),
1596
-                    0x10E => array(0x10F), 0x110 => array(0x111), 0x112 => array(0x113),
1597
-                    0x114 => array(0x115), 0x116 => array(0x117), 0x118 => array(0x119),
1598
-                    0x11A => array(0x11B), 0x11C => array(0x11D), 0x11E => array(0x11F),
1599
-                    0x120 => array(0x121), 0x122 => array(0x123), 0x124 => array(0x125),
1600
-                    0x126 => array(0x127), 0x128 => array(0x129), 0x12A => array(0x12B),
1601
-                    0x12C => array(0x12D), 0x12E => array(0x12F), 0x130 => array(0x69, 0x307),
1602
-                    0x132 => array(0x69, 0x6A), 0x133 => array(0x69, 0x6A), 0x134 => array(0x135),
1603
-                    0x136 => array(0x137), 0x139 => array(0x13A), 0x13B => array(0x13C),
1604
-                    0x13D => array(0x13E), 0x13F => array(0x6C, 0xB7), 0x140 => array(0x6C, 0xB7),
1605
-                    0x141 => array(0x142), 0x143 => array(0x144), 0x145 => array(0x146),
1606
-                    0x147 => array(0x148), 0x149 => array(0x2BC, 0x6E), 0x14A => array(0x14B),
1607
-                    0x14C => array(0x14D), 0x14E => array(0x14F), 0x150 => array(0x151),
1608
-                    0x152 => array(0x153), 0x154 => array(0x155), 0x156 => array(0x157),
1609
-                    0x158 => array(0x159), 0x15A => array(0x15B), 0x15C => array(0x15D),
1610
-                    0x15E => array(0x15F), 0x160 => array(0x161), 0x162 => array(0x163),
1611
-                    0x164 => array(0x165), 0x166 => array(0x167), 0x168 => array(0x169),
1612
-                    0x16A => array(0x16B), 0x16C => array(0x16D), 0x16E => array(0x16F),
1613
-                    0x170 => array(0x171), 0x172 => array(0x173), 0x174 => array(0x175),
1614
-                    0x176 => array(0x177), 0x178 => array(0xFF), 0x179 => array(0x17A),
1615
-                    0x17B => array(0x17C), 0x17D => array(0x17E), 0x17F => array(0x73),
1616
-                    0x181 => array(0x253), 0x182 => array(0x183), 0x184 => array(0x185),
1617
-                    0x186 => array(0x254), 0x187 => array(0x188), 0x189 => array(0x256),
1618
-                    0x18A => array(0x257), 0x18B => array(0x18C), 0x18E => array(0x1DD),
1619
-                    0x18F => array(0x259), 0x190 => array(0x25B), 0x191 => array(0x192),
1620
-                    0x193 => array(0x260), 0x194 => array(0x263), 0x196 => array(0x269),
1621
-                    0x197 => array(0x268), 0x198 => array(0x199), 0x19C => array(0x26F),
1622
-                    0x19D => array(0x272), 0x19F => array(0x275), 0x1A0 => array(0x1A1),
1623
-                    0x1A2 => array(0x1A3), 0x1A4 => array(0x1A5), 0x1A6 => array(0x280),
1624
-                    0x1A7 => array(0x1A8), 0x1A9 => array(0x283), 0x1AC => array(0x1AD),
1625
-                    0x1AE => array(0x288), 0x1AF => array(0x1B0), 0x1B1 => array(0x28A),
1626
-                    0x1B2 => array(0x28B), 0x1B3 => array(0x1B4), 0x1B5 => array(0x1B6),
1627
-                    0x1B7 => array(0x292), 0x1B8 => array(0x1B9), 0x1BC => array(0x1BD),
1628
-                    0x1C4 => array(0x64, 0x17E), 0x1C5 => array(0x64, 0x17E), 0x1C6 => array(0x64, 0x17E),
1629
-                    0x1C7 => array(0x6C, 0x6A), 0x1C8 => array(0x6C, 0x6A), 0x1C9 => array(0x6C, 0x6A),
1630
-                    0x1CA => array(0x6E, 0x6A), 0x1CB => array(0x6E, 0x6A), 0x1CC => array(0x6E, 0x6A),
1631
-                    0x1CD => array(0x1CE), 0x1CF => array(0x1D0), 0x1D1 => array(0x1D2),
1632
-                    0x1D3 => array(0x1D4), 0x1D5 => array(0x1D6), 0x1D7 => array(0x1D8),
1633
-                    0x1D9 => array(0x1DA), 0x1DB => array(0x1DC), 0x1DE => array(0x1DF),
1634
-                    0x1E0 => array(0x1E1), 0x1E2 => array(0x1E3), 0x1E4 => array(0x1E5),
1635
-                    0x1E6 => array(0x1E7), 0x1E8 => array(0x1E9), 0x1EA => array(0x1EB),
1636
-                    0x1EC => array(0x1ED), 0x1EE => array(0x1EF), 0x1F1 => array(0x64, 0x7A),
1637
-                    0x1F2 => array(0x64, 0x7A), 0x1F3 => array(0x64, 0x7A), 0x1F4 => array(0x1F5),
1638
-                    0x1F6 => array(0x195), 0x1F7 => array(0x1BF), 0x1F8 => array(0x1F9),
1639
-                    0x1FA => array(0x1FB), 0x1FC => array(0x1FD), 0x1FE => array(0x1FF),
1640
-                    0x200 => array(0x201), 0x202 => array(0x203), 0x204 => array(0x205),
1641
-                    0x206 => array(0x207), 0x208 => array(0x209), 0x20A => array(0x20B),
1642
-                    0x20C => array(0x20D), 0x20E => array(0x20F), 0x210 => array(0x211),
1643
-                    0x212 => array(0x213), 0x214 => array(0x215), 0x216 => array(0x217),
1644
-                    0x218 => array(0x219), 0x21A => array(0x21B), 0x21C => array(0x21D),
1645
-                    0x21E => array(0x21F), 0x220 => array(0x19E), 0x222 => array(0x223),
1646
-                    0x224 => array(0x225), 0x226 => array(0x227), 0x228 => array(0x229),
1647
-                    0x22A => array(0x22B), 0x22C => array(0x22D), 0x22E => array(0x22F),
1648
-                    0x230 => array(0x231), 0x232 => array(0x233), 0x23A => array(0x2C65),
1649
-                    0x23B => array(0x23C), 0x23D => array(0x19A), 0x23E => array(0x2C66),
1650
-                    0x241 => array(0x242), 0x243 => array(0x180), 0x244 => array(0x289),
1651
-                    0x245 => array(0x28C), 0x246 => array(0x247), 0x248 => array(0x249),
1652
-                    0x24A => array(0x24B), 0x24C => array(0x24D), 0x24E => array(0x24F),
1653
-                    0x2B0 => array(0x68), 0x2B1 => array(0x266), 0x2B2 => array(0x6A),
1654
-                    0x2B3 => array(0x72), 0x2B4 => array(0x279), 0x2B5 => array(0x27B),
1655
-                    0x2B6 => array(0x281), 0x2B7 => array(0x77), 0x2B8 => array(0x79),
1656
-                    0x2E0 => array(0x263), 0x2E1 => array(0x6C), 0x2E2 => array(0x73),
1657
-                    0x2E3 => array(0x78), 0x2E4 => array(0x295), 0x340 => array(0x300),
1658
-                    0x341 => array(0x301), 0x343 => array(0x313), 0x344 => array(0x308, 0x301),
1659
-                    0x345 => array(0x3B9), 0x370 => array(0x371), 0x372 => array(0x373),
1660
-                    0x374 => array(0x2B9), 0x376 => array(0x377), 0x37F => array(0x3F3),
1661
-                    0x386 => array(0x3AC), 0x387 => array(0xB7), 0x388 => array(0x3AD),
1662
-                    0x389 => array(0x3AE), 0x38A => array(0x3AF), 0x38C => array(0x3CC),
1663
-                    0x38E => array(0x3CD), 0x38F => array(0x3CE), 0x391 => array(0x3B1),
1664
-                    0x392 => array(0x3B2), 0x393 => array(0x3B3), 0x394 => array(0x3B4),
1665
-                    0x395 => array(0x3B5), 0x396 => array(0x3B6), 0x397 => array(0x3B7),
1666
-                    0x398 => array(0x3B8), 0x399 => array(0x3B9), 0x39A => array(0x3BA),
1667
-                    0x39B => array(0x3BB), 0x39C => array(0x3BC), 0x39D => array(0x3BD),
1668
-                    0x39E => array(0x3BE), 0x39F => array(0x3BF), 0x3A0 => array(0x3C0),
1669
-                    0x3A1 => array(0x3C1), 0x3A3 => array(0x3C3), 0x3A4 => array(0x3C4),
1670
-                    0x3A5 => array(0x3C5), 0x3A6 => array(0x3C6), 0x3A7 => array(0x3C7),
1671
-                    0x3A8 => array(0x3C8), 0x3A9 => array(0x3C9), 0x3AA => array(0x3CA),
1672
-                    0x3AB => array(0x3CB), 0x3CF => array(0x3D7), 0x3D0 => array(0x3B2),
1673
-                    0x3D1 => array(0x3B8), 0x3D2 => array(0x3C5), 0x3D3 => array(0x3CD),
1674
-                    0x3D4 => array(0x3CB), 0x3D5 => array(0x3C6), 0x3D6 => array(0x3C0),
1675
-                    0x3D8 => array(0x3D9), 0x3DA => array(0x3DB), 0x3DC => array(0x3DD),
1676
-                    0x3DE => array(0x3DF), 0x3E0 => array(0x3E1), 0x3E2 => array(0x3E3),
1677
-                    0x3E4 => array(0x3E5), 0x3E6 => array(0x3E7), 0x3E8 => array(0x3E9),
1678
-                    0x3EA => array(0x3EB), 0x3EC => array(0x3ED), 0x3EE => array(0x3EF),
1679
-                    0x3F0 => array(0x3BA), 0x3F1 => array(0x3C1), 0x3F2 => array(0x3C3),
1680
-                    0x3F4 => array(0x3B8), 0x3F5 => array(0x3B5), 0x3F7 => array(0x3F8),
1681
-                    0x3F9 => array(0x3C3), 0x3FA => array(0x3FB), 0x3FD => array(0x37B),
1682
-                    0x3FE => array(0x37C), 0x3FF => array(0x37D), 0x400 => array(0x450),
1683
-                    0x401 => array(0x451), 0x402 => array(0x452), 0x403 => array(0x453),
1684
-                    0x404 => array(0x454), 0x405 => array(0x455), 0x406 => array(0x456),
1685
-                    0x407 => array(0x457), 0x408 => array(0x458), 0x409 => array(0x459),
1686
-                    0x40A => array(0x45A), 0x40B => array(0x45B), 0x40C => array(0x45C),
1687
-                    0x40D => array(0x45D), 0x40E => array(0x45E), 0x40F => array(0x45F),
1688
-                    0x410 => array(0x430), 0x411 => array(0x431), 0x412 => array(0x432),
1689
-                    0x413 => array(0x433), 0x414 => array(0x434), 0x415 => array(0x435),
1690
-                    0x416 => array(0x436), 0x417 => array(0x437), 0x418 => array(0x438),
1691
-                    0x419 => array(0x439), 0x41A => array(0x43A), 0x41B => array(0x43B),
1692
-                    0x41C => array(0x43C), 0x41D => array(0x43D), 0x41E => array(0x43E),
1693
-                    0x41F => array(0x43F), 0x420 => array(0x440), 0x421 => array(0x441),
1694
-                    0x422 => array(0x442), 0x423 => array(0x443), 0x424 => array(0x444),
1695
-                    0x425 => array(0x445), 0x426 => array(0x446), 0x427 => array(0x447),
1696
-                    0x428 => array(0x448), 0x429 => array(0x449), 0x42A => array(0x44A),
1697
-                    0x42B => array(0x44B), 0x42C => array(0x44C), 0x42D => array(0x44D),
1698
-                    0x42E => array(0x44E), 0x42F => array(0x44F), 0x460 => array(0x461),
1699
-                    0x462 => array(0x463), 0x464 => array(0x465), 0x466 => array(0x467),
1700
-                    0x468 => array(0x469), 0x46A => array(0x46B), 0x46C => array(0x46D),
1701
-                    0x46E => array(0x46F), 0x470 => array(0x471), 0x472 => array(0x473),
1702
-                    0x474 => array(0x475), 0x476 => array(0x477), 0x478 => array(0x479),
1703
-                    0x47A => array(0x47B), 0x47C => array(0x47D), 0x47E => array(0x47F),
1704
-                    0x480 => array(0x481), 0x48A => array(0x48B), 0x48C => array(0x48D),
1705
-                    0x48E => array(0x48F), 0x490 => array(0x491), 0x492 => array(0x493),
1706
-                    0x494 => array(0x495), 0x496 => array(0x497), 0x498 => array(0x499),
1707
-                    0x49A => array(0x49B), 0x49C => array(0x49D), 0x49E => array(0x49F),
1708
-                    0x4A0 => array(0x4A1), 0x4A2 => array(0x4A3), 0x4A4 => array(0x4A5),
1709
-                    0x4A6 => array(0x4A7), 0x4A8 => array(0x4A9), 0x4AA => array(0x4AB),
1710
-                    0x4AC => array(0x4AD), 0x4AE => array(0x4AF), 0x4B0 => array(0x4B1),
1711
-                    0x4B2 => array(0x4B3), 0x4B4 => array(0x4B5), 0x4B6 => array(0x4B7),
1712
-                    0x4B8 => array(0x4B9), 0x4BA => array(0x4BB), 0x4BC => array(0x4BD),
1713
-                    0x4BE => array(0x4BF), 0x4C1 => array(0x4C2), 0x4C3 => array(0x4C4),
1714
-                    0x4C5 => array(0x4C6), 0x4C7 => array(0x4C8), 0x4C9 => array(0x4CA),
1715
-                    0x4CB => array(0x4CC), 0x4CD => array(0x4CE), 0x4D0 => array(0x4D1),
1716
-                    0x4D2 => array(0x4D3), 0x4D4 => array(0x4D5), 0x4D6 => array(0x4D7),
1717
-                    0x4D8 => array(0x4D9), 0x4DA => array(0x4DB), 0x4DC => array(0x4DD),
1718
-                    0x4DE => array(0x4DF), 0x4E0 => array(0x4E1), 0x4E2 => array(0x4E3),
1719
-                    0x4E4 => array(0x4E5), 0x4E6 => array(0x4E7), 0x4E8 => array(0x4E9),
1720
-                    0x4EA => array(0x4EB), 0x4EC => array(0x4ED), 0x4EE => array(0x4EF),
1721
-                    0x4F0 => array(0x4F1), 0x4F2 => array(0x4F3), 0x4F4 => array(0x4F5),
1722
-                    0x4F6 => array(0x4F7), 0x4F8 => array(0x4F9), 0x4FA => array(0x4FB),
1723
-                    0x4FC => array(0x4FD), 0x4FE => array(0x4FF), 0x500 => array(0x501),
1724
-                    0x502 => array(0x503), 0x504 => array(0x505), 0x506 => array(0x507),
1725
-                    0x508 => array(0x509), 0x50A => array(0x50B), 0x50C => array(0x50D),
1726
-                    0x50E => array(0x50F), 0x510 => array(0x511), 0x512 => array(0x513),
1727
-                    0x514 => array(0x515), 0x516 => array(0x517), 0x518 => array(0x519),
1728
-                    0x51A => array(0x51B), 0x51C => array(0x51D), 0x51E => array(0x51F),
1729
-                    0x520 => array(0x521), 0x522 => array(0x523), 0x524 => array(0x525),
1730
-                    0x526 => array(0x527), 0x528 => array(0x529), 0x52A => array(0x52B),
1731
-                    0x52C => array(0x52D), 0x52E => array(0x52F), 0x531 => array(0x561),
1732
-                    0x532 => array(0x562), 0x533 => array(0x563), 0x534 => array(0x564),
1733
-                    0x535 => array(0x565), 0x536 => array(0x566), 0x537 => array(0x567),
1734
-                    0x538 => array(0x568), 0x539 => array(0x569), 0x53A => array(0x56A),
1735
-                    0x53B => array(0x56B), 0x53C => array(0x56C), 0x53D => array(0x56D),
1736
-                    0x53E => array(0x56E), 0x53F => array(0x56F), 0x540 => array(0x570),
1737
-                    0x541 => array(0x571), 0x542 => array(0x572), 0x543 => array(0x573),
1738
-                    0x544 => array(0x574), 0x545 => array(0x575), 0x546 => array(0x576),
1739
-                    0x547 => array(0x577), 0x548 => array(0x578), 0x549 => array(0x579),
1740
-                    0x54A => array(0x57A), 0x54B => array(0x57B), 0x54C => array(0x57C),
1741
-                    0x54D => array(0x57D), 0x54E => array(0x57E), 0x54F => array(0x57F),
1742
-                    0x550 => array(0x580), 0x551 => array(0x581), 0x552 => array(0x582),
1743
-                    0x553 => array(0x583), 0x554 => array(0x584), 0x555 => array(0x585),
1744
-                    0x556 => array(0x586), 0x587 => array(0x565, 0x582), 0x675 => array(0x627, 0x674),
1745
-                    0x676 => array(0x648, 0x674), 0x677 => array(0x6C7, 0x674), 0x678 => array(0x64A, 0x674),
1746
-                    0x958 => array(0x915, 0x93C), 0x959 => array(0x916, 0x93C), 0x95A => array(0x917, 0x93C),
1747
-                    0x95B => array(0x91C, 0x93C), 0x95C => array(0x921, 0x93C), 0x95D => array(0x922, 0x93C),
1748
-                    0x95E => array(0x92B, 0x93C), 0x95F => array(0x92F, 0x93C), 0x9DC => array(0x9A1, 0x9BC),
1749
-                    0x9DD => array(0x9A2, 0x9BC), 0x9DF => array(0x9AF, 0x9BC), 0xA33 => array(0xA32, 0xA3C),
1750
-                    0xA36 => array(0xA38, 0xA3C), 0xA59 => array(0xA16, 0xA3C), 0xA5A => array(0xA17, 0xA3C),
1751
-                    0xA5B => array(0xA1C, 0xA3C), 0xA5E => array(0xA2B, 0xA3C), 0xB5C => array(0xB21, 0xB3C),
1752
-                    0xB5D => array(0xB22, 0xB3C), 0xE33 => array(0xE4D, 0xE32), 0xEB3 => array(0xECD, 0xEB2),
1753
-                    0xEDC => array(0xEAB, 0xE99), 0xEDD => array(0xEAB, 0xEA1), 0xF0C => array(0xF0B),
1754
-                    0xF43 => array(0xF42, 0xFB7), 0xF4D => array(0xF4C, 0xFB7), 0xF52 => array(0xF51, 0xFB7),
1755
-                    0xF57 => array(0xF56, 0xFB7), 0xF5C => array(0xF5B, 0xFB7), 0xF69 => array(0xF40, 0xFB5),
1756
-                    0xF73 => array(0xF71, 0xF72), 0xF75 => array(0xF71, 0xF74), 0xF76 => array(0xFB2, 0xF80),
1757
-                    0xF77 => array(0xFB2, 0xF71, 0xF80), 0xF78 => array(0xFB3, 0xF80), 0xF79 => array(0xFB3, 0xF71, 0xF80),
1758
-                    0xF81 => array(0xF71, 0xF80), 0xF93 => array(0xF92, 0xFB7), 0xF9D => array(0xF9C, 0xFB7),
1759
-                    0xFA2 => array(0xFA1, 0xFB7), 0xFA7 => array(0xFA6, 0xFB7), 0xFAC => array(0xFAB, 0xFB7),
1760
-                    0xFB9 => array(0xF90, 0xFB5), 0x10C7 => array(0x2D27), 0x10CD => array(0x2D2D),
1761
-                    0x10FC => array(0x10DC), 0x1D2C => array(0x61), 0x1D2D => array(0xE6),
1762
-                    0x1D2E => array(0x62), 0x1D30 => array(0x64), 0x1D31 => array(0x65),
1763
-                    0x1D32 => array(0x1DD), 0x1D33 => array(0x67), 0x1D34 => array(0x68),
1764
-                    0x1D35 => array(0x69), 0x1D36 => array(0x6A), 0x1D37 => array(0x6B),
1765
-                    0x1D38 => array(0x6C), 0x1D39 => array(0x6D), 0x1D3A => array(0x6E),
1766
-                    0x1D3C => array(0x6F), 0x1D3D => array(0x223), 0x1D3E => array(0x70),
1767
-                    0x1D3F => array(0x72), 0x1D40 => array(0x74), 0x1D41 => array(0x75),
1768
-                    0x1D42 => array(0x77), 0x1D43 => array(0x61), 0x1D44 => array(0x250),
1769
-                    0x1D45 => array(0x251), 0x1D46 => array(0x1D02), 0x1D47 => array(0x62),
1770
-                    0x1D48 => array(0x64), 0x1D49 => array(0x65), 0x1D4A => array(0x259),
1771
-                    0x1D4B => array(0x25B), 0x1D4C => array(0x25C), 0x1D4D => array(0x67),
1772
-                    0x1D4F => array(0x6B), 0x1D50 => array(0x6D), 0x1D51 => array(0x14B),
1773
-                    0x1D52 => array(0x6F), 0x1D53 => array(0x254), 0x1D54 => array(0x1D16),
1774
-                    0x1D55 => array(0x1D17), 0x1D56 => array(0x70), 0x1D57 => array(0x74),
1775
-                    0x1D58 => array(0x75), 0x1D59 => array(0x1D1D), 0x1D5A => array(0x26F),
1776
-                    0x1D5B => array(0x76), 0x1D5C => array(0x1D25), 0x1D5D => array(0x3B2),
1777
-                    0x1D5E => array(0x3B3), 0x1D5F => array(0x3B4), 0x1D60 => array(0x3C6),
1778
-                    0x1D61 => array(0x3C7), 0x1D62 => array(0x69), 0x1D63 => array(0x72),
1779
-                    0x1D64 => array(0x75), 0x1D65 => array(0x76), 0x1D66 => array(0x3B2),
1780
-                    0x1D67 => array(0x3B3), 0x1D68 => array(0x3C1), 0x1D69 => array(0x3C6),
1781
-                    0x1D6A => array(0x3C7), 0x1D78 => array(0x43D), 0x1D9B => array(0x252),
1782
-                    0x1D9C => array(0x63), 0x1D9D => array(0x255), 0x1D9E => array(0xF0),
1783
-                    0x1D9F => array(0x25C), 0x1DA0 => array(0x66), 0x1DA1 => array(0x25F),
1784
-                    0x1DA2 => array(0x261), 0x1DA3 => array(0x265), 0x1DA4 => array(0x268),
1785
-                    0x1DA5 => array(0x269), 0x1DA6 => array(0x26A), 0x1DA7 => array(0x1D7B),
1786
-                    0x1DA8 => array(0x29D), 0x1DA9 => array(0x26D), 0x1DAA => array(0x1D85),
1787
-                    0x1DAB => array(0x29F), 0x1DAC => array(0x271), 0x1DAD => array(0x270),
1788
-                    0x1DAE => array(0x272), 0x1DAF => array(0x273), 0x1DB0 => array(0x274),
1789
-                    0x1DB1 => array(0x275), 0x1DB2 => array(0x278), 0x1DB3 => array(0x282),
1790
-                    0x1DB4 => array(0x283), 0x1DB5 => array(0x1AB), 0x1DB6 => array(0x289),
1791
-                    0x1DB7 => array(0x28A), 0x1DB8 => array(0x1D1C), 0x1DB9 => array(0x28B),
1792
-                    0x1DBA => array(0x28C), 0x1DBB => array(0x7A), 0x1DBC => array(0x290),
1793
-                    0x1DBD => array(0x291), 0x1DBE => array(0x292), 0x1DBF => array(0x3B8),
1794
-                    0x1E00 => array(0x1E01), 0x1E02 => array(0x1E03), 0x1E04 => array(0x1E05),
1795
-                    0x1E06 => array(0x1E07), 0x1E08 => array(0x1E09), 0x1E0A => array(0x1E0B),
1796
-                    0x1E0C => array(0x1E0D), 0x1E0E => array(0x1E0F), 0x1E10 => array(0x1E11),
1797
-                    0x1E12 => array(0x1E13), 0x1E14 => array(0x1E15), 0x1E16 => array(0x1E17),
1798
-                    0x1E18 => array(0x1E19), 0x1E1A => array(0x1E1B), 0x1E1C => array(0x1E1D),
1799
-                    0x1E1E => array(0x1E1F), 0x1E20 => array(0x1E21), 0x1E22 => array(0x1E23),
1800
-                    0x1E24 => array(0x1E25), 0x1E26 => array(0x1E27), 0x1E28 => array(0x1E29),
1801
-                    0x1E2A => array(0x1E2B), 0x1E2C => array(0x1E2D), 0x1E2E => array(0x1E2F),
1802
-                    0x1E30 => array(0x1E31), 0x1E32 => array(0x1E33), 0x1E34 => array(0x1E35),
1803
-                    0x1E36 => array(0x1E37), 0x1E38 => array(0x1E39), 0x1E3A => array(0x1E3B),
1804
-                    0x1E3C => array(0x1E3D), 0x1E3E => array(0x1E3F), 0x1E40 => array(0x1E41),
1805
-                    0x1E42 => array(0x1E43), 0x1E44 => array(0x1E45), 0x1E46 => array(0x1E47),
1806
-                    0x1E48 => array(0x1E49), 0x1E4A => array(0x1E4B), 0x1E4C => array(0x1E4D),
1807
-                    0x1E4E => array(0x1E4F), 0x1E50 => array(0x1E51), 0x1E52 => array(0x1E53),
1808
-                    0x1E54 => array(0x1E55), 0x1E56 => array(0x1E57), 0x1E58 => array(0x1E59),
1809
-                    0x1E5A => array(0x1E5B), 0x1E5C => array(0x1E5D), 0x1E5E => array(0x1E5F),
1810
-                    0x1E60 => array(0x1E61), 0x1E62 => array(0x1E63), 0x1E64 => array(0x1E65),
1811
-                    0x1E66 => array(0x1E67), 0x1E68 => array(0x1E69), 0x1E6A => array(0x1E6B),
1812
-                    0x1E6C => array(0x1E6D), 0x1E6E => array(0x1E6F), 0x1E70 => array(0x1E71),
1813
-                    0x1E72 => array(0x1E73), 0x1E74 => array(0x1E75), 0x1E76 => array(0x1E77),
1814
-                    0x1E78 => array(0x1E79), 0x1E7A => array(0x1E7B), 0x1E7C => array(0x1E7D),
1815
-                    0x1E7E => array(0x1E7F), 0x1E80 => array(0x1E81), 0x1E82 => array(0x1E83),
1816
-                    0x1E84 => array(0x1E85), 0x1E86 => array(0x1E87), 0x1E88 => array(0x1E89),
1817
-                    0x1E8A => array(0x1E8B), 0x1E8C => array(0x1E8D), 0x1E8E => array(0x1E8F),
1818
-                    0x1E90 => array(0x1E91), 0x1E92 => array(0x1E93), 0x1E94 => array(0x1E95),
1819
-                    0x1E9A => array(0x61, 0x2BE), 0x1E9B => array(0x1E61), 0x1E9E => array(0x73, 0x73),
1820
-                    0x1EA0 => array(0x1EA1), 0x1EA2 => array(0x1EA3), 0x1EA4 => array(0x1EA5),
1821
-                    0x1EA6 => array(0x1EA7), 0x1EA8 => array(0x1EA9), 0x1EAA => array(0x1EAB),
1822
-                    0x1EAC => array(0x1EAD), 0x1EAE => array(0x1EAF), 0x1EB0 => array(0x1EB1),
1823
-                    0x1EB2 => array(0x1EB3), 0x1EB4 => array(0x1EB5), 0x1EB6 => array(0x1EB7),
1824
-                    0x1EB8 => array(0x1EB9), 0x1EBA => array(0x1EBB), 0x1EBC => array(0x1EBD),
1825
-                    0x1EBE => array(0x1EBF), 0x1EC0 => array(0x1EC1), 0x1EC2 => array(0x1EC3),
1826
-                    0x1EC4 => array(0x1EC5), 0x1EC6 => array(0x1EC7), 0x1EC8 => array(0x1EC9),
1827
-                    0x1ECA => array(0x1ECB), 0x1ECC => array(0x1ECD), 0x1ECE => array(0x1ECF),
1828
-                    0x1ED0 => array(0x1ED1), 0x1ED2 => array(0x1ED3), 0x1ED4 => array(0x1ED5),
1829
-                    0x1ED6 => array(0x1ED7), 0x1ED8 => array(0x1ED9), 0x1EDA => array(0x1EDB),
1830
-                    0x1EDC => array(0x1EDD), 0x1EDE => array(0x1EDF), 0x1EE0 => array(0x1EE1),
1831
-                    0x1EE2 => array(0x1EE3), 0x1EE4 => array(0x1EE5), 0x1EE6 => array(0x1EE7),
1832
-                    0x1EE8 => array(0x1EE9), 0x1EEA => array(0x1EEB), 0x1EEC => array(0x1EED),
1833
-                    0x1EEE => array(0x1EEF), 0x1EF0 => array(0x1EF1), 0x1EF2 => array(0x1EF3),
1834
-                    0x1EF4 => array(0x1EF5), 0x1EF6 => array(0x1EF7), 0x1EF8 => array(0x1EF9),
1835
-                    0x1EFA => array(0x1EFB), 0x1EFC => array(0x1EFD), 0x1EFE => array(0x1EFF),
1836
-                    0x1F08 => array(0x1F00), 0x1F09 => array(0x1F01), 0x1F0A => array(0x1F02),
1837
-                    0x1F0B => array(0x1F03), 0x1F0C => array(0x1F04), 0x1F0D => array(0x1F05),
1838
-                    0x1F0E => array(0x1F06), 0x1F0F => array(0x1F07), 0x1F18 => array(0x1F10),
1839
-                    0x1F19 => array(0x1F11), 0x1F1A => array(0x1F12), 0x1F1B => array(0x1F13),
1840
-                    0x1F1C => array(0x1F14), 0x1F1D => array(0x1F15), 0x1F28 => array(0x1F20),
1841
-                    0x1F29 => array(0x1F21), 0x1F2A => array(0x1F22), 0x1F2B => array(0x1F23),
1842
-                    0x1F2C => array(0x1F24), 0x1F2D => array(0x1F25), 0x1F2E => array(0x1F26),
1843
-                    0x1F2F => array(0x1F27), 0x1F38 => array(0x1F30), 0x1F39 => array(0x1F31),
1844
-                    0x1F3A => array(0x1F32), 0x1F3B => array(0x1F33), 0x1F3C => array(0x1F34),
1845
-                    0x1F3D => array(0x1F35), 0x1F3E => array(0x1F36), 0x1F3F => array(0x1F37),
1846
-                    0x1F48 => array(0x1F40), 0x1F49 => array(0x1F41), 0x1F4A => array(0x1F42),
1847
-                    0x1F4B => array(0x1F43), 0x1F4C => array(0x1F44), 0x1F4D => array(0x1F45),
1848
-                    0x1F59 => array(0x1F51), 0x1F5B => array(0x1F53), 0x1F5D => array(0x1F55),
1849
-                    0x1F5F => array(0x1F57), 0x1F68 => array(0x1F60), 0x1F69 => array(0x1F61),
1850
-                    0x1F6A => array(0x1F62), 0x1F6B => array(0x1F63), 0x1F6C => array(0x1F64),
1851
-                    0x1F6D => array(0x1F65), 0x1F6E => array(0x1F66), 0x1F6F => array(0x1F67),
1852
-                    0x1F71 => array(0x3AC), 0x1F73 => array(0x3AD), 0x1F75 => array(0x3AE),
1853
-                    0x1F77 => array(0x3AF), 0x1F79 => array(0x3CC), 0x1F7B => array(0x3CD),
1854
-                    0x1F7D => array(0x3CE), 0x1F80 => array(0x1F00, 0x3B9), 0x1F81 => array(0x1F01, 0x3B9),
1855
-                    0x1F82 => array(0x1F02, 0x3B9), 0x1F83 => array(0x1F03, 0x3B9), 0x1F84 => array(0x1F04, 0x3B9),
1856
-                    0x1F85 => array(0x1F05, 0x3B9), 0x1F86 => array(0x1F06, 0x3B9), 0x1F87 => array(0x1F07, 0x3B9),
1857
-                    0x1F88 => array(0x1F00, 0x3B9), 0x1F89 => array(0x1F01, 0x3B9), 0x1F8A => array(0x1F02, 0x3B9),
1858
-                    0x1F8B => array(0x1F03, 0x3B9), 0x1F8C => array(0x1F04, 0x3B9), 0x1F8D => array(0x1F05, 0x3B9),
1859
-                    0x1F8E => array(0x1F06, 0x3B9), 0x1F8F => array(0x1F07, 0x3B9), 0x1F90 => array(0x1F20, 0x3B9),
1860
-                    0x1F91 => array(0x1F21, 0x3B9), 0x1F92 => array(0x1F22, 0x3B9), 0x1F93 => array(0x1F23, 0x3B9),
1861
-                    0x1F94 => array(0x1F24, 0x3B9), 0x1F95 => array(0x1F25, 0x3B9), 0x1F96 => array(0x1F26, 0x3B9),
1862
-                    0x1F97 => array(0x1F27, 0x3B9), 0x1F98 => array(0x1F20, 0x3B9), 0x1F99 => array(0x1F21, 0x3B9),
1863
-                    0x1F9A => array(0x1F22, 0x3B9), 0x1F9B => array(0x1F23, 0x3B9), 0x1F9C => array(0x1F24, 0x3B9),
1864
-                    0x1F9D => array(0x1F25, 0x3B9), 0x1F9E => array(0x1F26, 0x3B9), 0x1F9F => array(0x1F27, 0x3B9),
1865
-                    0x1FA0 => array(0x1F60, 0x3B9), 0x1FA1 => array(0x1F61, 0x3B9), 0x1FA2 => array(0x1F62, 0x3B9),
1866
-                    0x1FA3 => array(0x1F63, 0x3B9), 0x1FA4 => array(0x1F64, 0x3B9), 0x1FA5 => array(0x1F65, 0x3B9),
1867
-                    0x1FA6 => array(0x1F66, 0x3B9), 0x1FA7 => array(0x1F67, 0x3B9), 0x1FA8 => array(0x1F60, 0x3B9),
1868
-                    0x1FA9 => array(0x1F61, 0x3B9), 0x1FAA => array(0x1F62, 0x3B9), 0x1FAB => array(0x1F63, 0x3B9),
1869
-                    0x1FAC => array(0x1F64, 0x3B9), 0x1FAD => array(0x1F65, 0x3B9), 0x1FAE => array(0x1F66, 0x3B9),
1870
-                    0x1FAF => array(0x1F67, 0x3B9), 0x1FB2 => array(0x1F70, 0x3B9), 0x1FB3 => array(0x3B1, 0x3B9),
1871
-                    0x1FB4 => array(0x3AC, 0x3B9), 0x1FB7 => array(0x1FB6, 0x3B9), 0x1FB8 => array(0x1FB0),
1872
-                    0x1FB9 => array(0x1FB1), 0x1FBA => array(0x1F70), 0x1FBB => array(0x3AC),
1873
-                    0x1FBC => array(0x3B1, 0x3B9), 0x1FBE => array(0x3B9), 0x1FC2 => array(0x1F74, 0x3B9),
1874
-                    0x1FC3 => array(0x3B7, 0x3B9), 0x1FC4 => array(0x3AE, 0x3B9), 0x1FC7 => array(0x1FC6, 0x3B9),
1875
-                    0x1FC8 => array(0x1F72), 0x1FC9 => array(0x3AD), 0x1FCA => array(0x1F74),
1876
-                    0x1FCB => array(0x3AE), 0x1FCC => array(0x3B7, 0x3B9), 0x1FD3 => array(0x390),
1877
-                    0x1FD8 => array(0x1FD0), 0x1FD9 => array(0x1FD1), 0x1FDA => array(0x1F76),
1878
-                    0x1FDB => array(0x3AF), 0x1FE3 => array(0x3B0), 0x1FE8 => array(0x1FE0),
1879
-                    0x1FE9 => array(0x1FE1), 0x1FEA => array(0x1F7A), 0x1FEB => array(0x3CD),
1880
-                    0x1FEC => array(0x1FE5), 0x1FF2 => array(0x1F7C, 0x3B9), 0x1FF3 => array(0x3C9, 0x3B9),
1881
-                    0x1FF4 => array(0x3CE, 0x3B9), 0x1FF7 => array(0x1FF6, 0x3B9), 0x1FF8 => array(0x1F78),
1882
-                    0x1FF9 => array(0x3CC), 0x1FFA => array(0x1F7C), 0x1FFB => array(0x3CE),
1883
-                    0x1FFC => array(0x3C9, 0x3B9), 0x2011 => array(0x2010), 0x2033 => array(0x2032, 0x2032),
1884
-                    0x2034 => array(0x2032, 0x2032, 0x2032), 0x2036 => array(0x2035, 0x2035), 0x2037 => array(0x2035, 0x2035, 0x2035),
1885
-                    0x2057 => array(0x2032, 0x2032, 0x2032, 0x2032), 0x2070 => array(0x30), 0x2071 => array(0x69),
1886
-                    0x2074 => array(0x34), 0x2075 => array(0x35), 0x2076 => array(0x36),
1887
-                    0x2077 => array(0x37), 0x2078 => array(0x38), 0x2079 => array(0x39),
1888
-                    0x207B => array(0x2212), 0x207F => array(0x6E), 0x2080 => array(0x30),
1889
-                    0x2081 => array(0x31), 0x2082 => array(0x32), 0x2083 => array(0x33),
1890
-                    0x2084 => array(0x34), 0x2085 => array(0x35), 0x2086 => array(0x36),
1891
-                    0x2087 => array(0x37), 0x2088 => array(0x38), 0x2089 => array(0x39),
1892
-                    0x208B => array(0x2212), 0x2090 => array(0x61), 0x2091 => array(0x65),
1893
-                    0x2092 => array(0x6F), 0x2093 => array(0x78), 0x2094 => array(0x259),
1894
-                    0x2095 => array(0x68), 0x2096 => array(0x6B), 0x2097 => array(0x6C),
1895
-                    0x2098 => array(0x6D), 0x2099 => array(0x6E), 0x209A => array(0x70),
1896
-                    0x209B => array(0x73), 0x209C => array(0x74), 0x20A8 => array(0x72, 0x73),
1897
-                    0x2102 => array(0x63), 0x2103 => array(0xB0, 0x63), 0x2107 => array(0x25B),
1898
-                    0x2109 => array(0xB0, 0x66), 0x210A => array(0x67), 0x210B => array(0x68),
1899
-                    0x210C => array(0x68), 0x210D => array(0x68), 0x210E => array(0x68),
1900
-                    0x210F => array(0x127), 0x2110 => array(0x69), 0x2111 => array(0x69),
1901
-                    0x2112 => array(0x6C), 0x2113 => array(0x6C), 0x2115 => array(0x6E),
1902
-                    0x2116 => array(0x6E, 0x6F), 0x2119 => array(0x70), 0x211A => array(0x71),
1903
-                    0x211B => array(0x72), 0x211C => array(0x72), 0x211D => array(0x72),
1904
-                    0x2120 => array(0x73, 0x6D), 0x2121 => array(0x74, 0x65, 0x6C), 0x2122 => array(0x74, 0x6D),
1905
-                    0x2124 => array(0x7A), 0x2126 => array(0x3C9), 0x2128 => array(0x7A),
1906
-                    0x212A => array(0x6B), 0x212B => array(0xE5), 0x212C => array(0x62),
1907
-                    0x212D => array(0x63), 0x212F => array(0x65), 0x2130 => array(0x65),
1908
-                    0x2131 => array(0x66), 0x2133 => array(0x6D), 0x2134 => array(0x6F),
1909
-                    0x2135 => array(0x5D0), 0x2136 => array(0x5D1), 0x2137 => array(0x5D2),
1910
-                    0x2138 => array(0x5D3), 0x2139 => array(0x69), 0x213B => array(0x66, 0x61, 0x78),
1911
-                    0x213C => array(0x3C0), 0x213D => array(0x3B3), 0x213E => array(0x3B3),
1912
-                    0x213F => array(0x3C0), 0x2140 => array(0x2211), 0x2145 => array(0x64),
1913
-                    0x2146 => array(0x64), 0x2147 => array(0x65), 0x2148 => array(0x69),
1914
-                    0x2149 => array(0x6A), 0x2150 => array(0x31, 0x2044, 0x37), 0x2151 => array(0x31, 0x2044, 0x39),
1915
-                    0x2152 => array(0x31, 0x2044, 0x31, 0x30), 0x2153 => array(0x31, 0x2044, 0x33), 0x2154 => array(0x32, 0x2044, 0x33),
1916
-                    0x2155 => array(0x31, 0x2044, 0x35), 0x2156 => array(0x32, 0x2044, 0x35), 0x2157 => array(0x33, 0x2044, 0x35),
1917
-                    0x2158 => array(0x34, 0x2044, 0x35), 0x2159 => array(0x31, 0x2044, 0x36), 0x215A => array(0x35, 0x2044, 0x36),
1918
-                    0x215B => array(0x31, 0x2044, 0x38), 0x215C => array(0x33, 0x2044, 0x38), 0x215D => array(0x35, 0x2044, 0x38),
1919
-                    0x215E => array(0x37, 0x2044, 0x38), 0x215F => array(0x31, 0x2044), 0x2160 => array(0x69),
1920
-                    0x2161 => array(0x69, 0x69), 0x2162 => array(0x69, 0x69, 0x69), 0x2163 => array(0x69, 0x76),
1921
-                    0x2164 => array(0x76), 0x2165 => array(0x76, 0x69), 0x2166 => array(0x76, 0x69, 0x69),
1922
-                    0x2167 => array(0x76, 0x69, 0x69, 0x69), 0x2168 => array(0x69, 0x78), 0x2169 => array(0x78),
1923
-                    0x216A => array(0x78, 0x69), 0x216B => array(0x78, 0x69, 0x69), 0x216C => array(0x6C),
1924
-                    0x216D => array(0x63), 0x216E => array(0x64), 0x216F => array(0x6D),
1925
-                    0x2170 => array(0x69), 0x2171 => array(0x69, 0x69), 0x2172 => array(0x69, 0x69, 0x69),
1926
-                    0x2173 => array(0x69, 0x76), 0x2174 => array(0x76), 0x2175 => array(0x76, 0x69),
1927
-                    0x2176 => array(0x76, 0x69, 0x69), 0x2177 => array(0x76, 0x69, 0x69, 0x69), 0x2178 => array(0x69, 0x78),
1928
-                    0x2179 => array(0x78), 0x217A => array(0x78, 0x69), 0x217B => array(0x78, 0x69, 0x69),
1929
-                    0x217C => array(0x6C), 0x217D => array(0x63), 0x217E => array(0x64),
1930
-                    0x217F => array(0x6D), 0x2189 => array(0x30, 0x2044, 0x33), 0x222C => array(0x222B, 0x222B),
1931
-                    0x222D => array(0x222B, 0x222B, 0x222B), 0x222F => array(0x222E, 0x222E), 0x2230 => array(0x222E, 0x222E, 0x222E),
1932
-                    0x2329 => array(0x3008), 0x232A => array(0x3009), 0x2460 => array(0x31),
1933
-                    0x2461 => array(0x32), 0x2462 => array(0x33), 0x2463 => array(0x34),
1934
-                    0x2464 => array(0x35), 0x2465 => array(0x36), 0x2466 => array(0x37),
1935
-                    0x2467 => array(0x38), 0x2468 => array(0x39), 0x2469 => array(0x31, 0x30),
1936
-                    0x246A => array(0x31, 0x31), 0x246B => array(0x31, 0x32), 0x246C => array(0x31, 0x33),
1937
-                    0x246D => array(0x31, 0x34), 0x246E => array(0x31, 0x35), 0x246F => array(0x31, 0x36),
1938
-                    0x2470 => array(0x31, 0x37), 0x2471 => array(0x31, 0x38), 0x2472 => array(0x31, 0x39),
1939
-                    0x2473 => array(0x32, 0x30), 0x24B6 => array(0x61), 0x24B7 => array(0x62),
1940
-                    0x24B8 => array(0x63), 0x24B9 => array(0x64), 0x24BA => array(0x65),
1941
-                    0x24BB => array(0x66), 0x24BC => array(0x67), 0x24BD => array(0x68),
1942
-                    0x24BE => array(0x69), 0x24BF => array(0x6A), 0x24C0 => array(0x6B),
1943
-                    0x24C1 => array(0x6C), 0x24C2 => array(0x6D), 0x24C3 => array(0x6E),
1944
-                    0x24C4 => array(0x6F), 0x24C5 => array(0x70), 0x24C6 => array(0x71),
1945
-                    0x24C7 => array(0x72), 0x24C8 => array(0x73), 0x24C9 => array(0x74),
1946
-                    0x24CA => array(0x75), 0x24CB => array(0x76), 0x24CC => array(0x77),
1947
-                    0x24CD => array(0x78), 0x24CE => array(0x79), 0x24CF => array(0x7A),
1948
-                    0x24D0 => array(0x61), 0x24D1 => array(0x62), 0x24D2 => array(0x63),
1949
-                    0x24D3 => array(0x64), 0x24D4 => array(0x65), 0x24D5 => array(0x66),
1950
-                    0x24D6 => array(0x67), 0x24D7 => array(0x68), 0x24D8 => array(0x69),
1951
-                    0x24D9 => array(0x6A), 0x24DA => array(0x6B), 0x24DB => array(0x6C),
1952
-                    0x24DC => array(0x6D), 0x24DD => array(0x6E), 0x24DE => array(0x6F),
1953
-                    0x24DF => array(0x70), 0x24E0 => array(0x71), 0x24E1 => array(0x72),
1954
-                    0x24E2 => array(0x73), 0x24E3 => array(0x74), 0x24E4 => array(0x75),
1955
-                    0x24E5 => array(0x76), 0x24E6 => array(0x77), 0x24E7 => array(0x78),
1956
-                    0x24E8 => array(0x79), 0x24E9 => array(0x7A), 0x24EA => array(0x30),
1957
-                    0x2A0C => array(0x222B, 0x222B, 0x222B, 0x222B), 0x2ADC => array(0x2ADD, 0x338), 0x2C00 => array(0x2C30),
1958
-                    0x2C01 => array(0x2C31), 0x2C02 => array(0x2C32), 0x2C03 => array(0x2C33),
1959
-                    0x2C04 => array(0x2C34), 0x2C05 => array(0x2C35), 0x2C06 => array(0x2C36),
1960
-                    0x2C07 => array(0x2C37), 0x2C08 => array(0x2C38), 0x2C09 => array(0x2C39),
1961
-                    0x2C0A => array(0x2C3A), 0x2C0B => array(0x2C3B), 0x2C0C => array(0x2C3C),
1962
-                    0x2C0D => array(0x2C3D), 0x2C0E => array(0x2C3E), 0x2C0F => array(0x2C3F),
1963
-                    0x2C10 => array(0x2C40), 0x2C11 => array(0x2C41), 0x2C12 => array(0x2C42),
1964
-                    0x2C13 => array(0x2C43), 0x2C14 => array(0x2C44), 0x2C15 => array(0x2C45),
1965
-                    0x2C16 => array(0x2C46), 0x2C17 => array(0x2C47), 0x2C18 => array(0x2C48),
1966
-                    0x2C19 => array(0x2C49), 0x2C1A => array(0x2C4A), 0x2C1B => array(0x2C4B),
1967
-                    0x2C1C => array(0x2C4C), 0x2C1D => array(0x2C4D), 0x2C1E => array(0x2C4E),
1968
-                    0x2C1F => array(0x2C4F), 0x2C20 => array(0x2C50), 0x2C21 => array(0x2C51),
1969
-                    0x2C22 => array(0x2C52), 0x2C23 => array(0x2C53), 0x2C24 => array(0x2C54),
1970
-                    0x2C25 => array(0x2C55), 0x2C26 => array(0x2C56), 0x2C27 => array(0x2C57),
1971
-                    0x2C28 => array(0x2C58), 0x2C29 => array(0x2C59), 0x2C2A => array(0x2C5A),
1972
-                    0x2C2B => array(0x2C5B), 0x2C2C => array(0x2C5C), 0x2C2D => array(0x2C5D),
1973
-                    0x2C2E => array(0x2C5E), 0x2C60 => array(0x2C61), 0x2C62 => array(0x26B),
1974
-                    0x2C63 => array(0x1D7D), 0x2C64 => array(0x27D), 0x2C67 => array(0x2C68),
1975
-                    0x2C69 => array(0x2C6A), 0x2C6B => array(0x2C6C), 0x2C6D => array(0x251),
1976
-                    0x2C6E => array(0x271), 0x2C6F => array(0x250), 0x2C70 => array(0x252),
1977
-                    0x2C72 => array(0x2C73), 0x2C75 => array(0x2C76), 0x2C7C => array(0x6A),
1978
-                    0x2C7D => array(0x76), 0x2C7E => array(0x23F), 0x2C7F => array(0x240),
1979
-                    0x2C80 => array(0x2C81), 0x2C82 => array(0x2C83), 0x2C84 => array(0x2C85),
1980
-                    0x2C86 => array(0x2C87), 0x2C88 => array(0x2C89), 0x2C8A => array(0x2C8B),
1981
-                    0x2C8C => array(0x2C8D), 0x2C8E => array(0x2C8F), 0x2C90 => array(0x2C91),
1982
-                    0x2C92 => array(0x2C93), 0x2C94 => array(0x2C95), 0x2C96 => array(0x2C97),
1983
-                    0x2C98 => array(0x2C99), 0x2C9A => array(0x2C9B), 0x2C9C => array(0x2C9D),
1984
-                    0x2C9E => array(0x2C9F), 0x2CA0 => array(0x2CA1), 0x2CA2 => array(0x2CA3),
1985
-                    0x2CA4 => array(0x2CA5), 0x2CA6 => array(0x2CA7), 0x2CA8 => array(0x2CA9),
1986
-                    0x2CAA => array(0x2CAB), 0x2CAC => array(0x2CAD), 0x2CAE => array(0x2CAF),
1987
-                    0x2CB0 => array(0x2CB1), 0x2CB2 => array(0x2CB3), 0x2CB4 => array(0x2CB5),
1988
-                    0x2CB6 => array(0x2CB7), 0x2CB8 => array(0x2CB9), 0x2CBA => array(0x2CBB),
1989
-                    0x2CBC => array(0x2CBD), 0x2CBE => array(0x2CBF), 0x2CC0 => array(0x2CC1),
1990
-                    0x2CC2 => array(0x2CC3), 0x2CC4 => array(0x2CC5), 0x2CC6 => array(0x2CC7),
1991
-                    0x2CC8 => array(0x2CC9), 0x2CCA => array(0x2CCB), 0x2CCC => array(0x2CCD),
1992
-                    0x2CCE => array(0x2CCF), 0x2CD0 => array(0x2CD1), 0x2CD2 => array(0x2CD3),
1993
-                    0x2CD4 => array(0x2CD5), 0x2CD6 => array(0x2CD7), 0x2CD8 => array(0x2CD9),
1994
-                    0x2CDA => array(0x2CDB), 0x2CDC => array(0x2CDD), 0x2CDE => array(0x2CDF),
1995
-                    0x2CE0 => array(0x2CE1), 0x2CE2 => array(0x2CE3), 0x2CEB => array(0x2CEC),
1996
-                    0x2CED => array(0x2CEE), 0x2CF2 => array(0x2CF3), 0x2D6F => array(0x2D61),
1997
-                    0x2E9F => array(0x6BCD), 0x2EF3 => array(0x9F9F), 0x2F00 => array(0x4E00),
1998
-                    0x2F01 => array(0x4E28), 0x2F02 => array(0x4E36), 0x2F03 => array(0x4E3F),
1999
-                    0x2F04 => array(0x4E59), 0x2F05 => array(0x4E85), 0x2F06 => array(0x4E8C),
2000
-                    0x2F07 => array(0x4EA0), 0x2F08 => array(0x4EBA), 0x2F09 => array(0x513F),
2001
-                    0x2F0A => array(0x5165), 0x2F0B => array(0x516B), 0x2F0C => array(0x5182),
2002
-                    0x2F0D => array(0x5196), 0x2F0E => array(0x51AB), 0x2F0F => array(0x51E0),
2003
-                    0x2F10 => array(0x51F5), 0x2F11 => array(0x5200), 0x2F12 => array(0x529B),
2004
-                    0x2F13 => array(0x52F9), 0x2F14 => array(0x5315), 0x2F15 => array(0x531A),
2005
-                    0x2F16 => array(0x5338), 0x2F17 => array(0x5341), 0x2F18 => array(0x535C),
2006
-                    0x2F19 => array(0x5369), 0x2F1A => array(0x5382), 0x2F1B => array(0x53B6),
2007
-                    0x2F1C => array(0x53C8), 0x2F1D => array(0x53E3), 0x2F1E => array(0x56D7),
2008
-                    0x2F1F => array(0x571F), 0x2F20 => array(0x58EB), 0x2F21 => array(0x5902),
2009
-                    0x2F22 => array(0x590A), 0x2F23 => array(0x5915), 0x2F24 => array(0x5927),
2010
-                    0x2F25 => array(0x5973), 0x2F26 => array(0x5B50), 0x2F27 => array(0x5B80),
2011
-                    0x2F28 => array(0x5BF8), 0x2F29 => array(0x5C0F), 0x2F2A => array(0x5C22),
2012
-                    0x2F2B => array(0x5C38), 0x2F2C => array(0x5C6E), 0x2F2D => array(0x5C71),
2013
-                    0x2F2E => array(0x5DDB), 0x2F2F => array(0x5DE5), 0x2F30 => array(0x5DF1),
2014
-                    0x2F31 => array(0x5DFE), 0x2F32 => array(0x5E72), 0x2F33 => array(0x5E7A),
2015
-                    0x2F34 => array(0x5E7F), 0x2F35 => array(0x5EF4), 0x2F36 => array(0x5EFE),
2016
-                    0x2F37 => array(0x5F0B), 0x2F38 => array(0x5F13), 0x2F39 => array(0x5F50),
2017
-                    0x2F3A => array(0x5F61), 0x2F3B => array(0x5F73), 0x2F3C => array(0x5FC3),
2018
-                    0x2F3D => array(0x6208), 0x2F3E => array(0x6236), 0x2F3F => array(0x624B),
2019
-                    0x2F40 => array(0x652F), 0x2F41 => array(0x6534), 0x2F42 => array(0x6587),
2020
-                    0x2F43 => array(0x6597), 0x2F44 => array(0x65A4), 0x2F45 => array(0x65B9),
2021
-                    0x2F46 => array(0x65E0), 0x2F47 => array(0x65E5), 0x2F48 => array(0x66F0),
2022
-                    0x2F49 => array(0x6708), 0x2F4A => array(0x6728), 0x2F4B => array(0x6B20),
2023
-                    0x2F4C => array(0x6B62), 0x2F4D => array(0x6B79), 0x2F4E => array(0x6BB3),
2024
-                    0x2F4F => array(0x6BCB), 0x2F50 => array(0x6BD4), 0x2F51 => array(0x6BDB),
2025
-                    0x2F52 => array(0x6C0F), 0x2F53 => array(0x6C14), 0x2F54 => array(0x6C34),
2026
-                    0x2F55 => array(0x706B), 0x2F56 => array(0x722A), 0x2F57 => array(0x7236),
2027
-                    0x2F58 => array(0x723B), 0x2F59 => array(0x723F), 0x2F5A => array(0x7247),
2028
-                    0x2F5B => array(0x7259), 0x2F5C => array(0x725B), 0x2F5D => array(0x72AC),
2029
-                    0x2F5E => array(0x7384), 0x2F5F => array(0x7389), 0x2F60 => array(0x74DC),
2030
-                    0x2F61 => array(0x74E6), 0x2F62 => array(0x7518), 0x2F63 => array(0x751F),
2031
-                    0x2F64 => array(0x7528), 0x2F65 => array(0x7530), 0x2F66 => array(0x758B),
2032
-                    0x2F67 => array(0x7592), 0x2F68 => array(0x7676), 0x2F69 => array(0x767D),
2033
-                    0x2F6A => array(0x76AE), 0x2F6B => array(0x76BF), 0x2F6C => array(0x76EE),
2034
-                    0x2F6D => array(0x77DB), 0x2F6E => array(0x77E2), 0x2F6F => array(0x77F3),
2035
-                    0x2F70 => array(0x793A), 0x2F71 => array(0x79B8), 0x2F72 => array(0x79BE),
2036
-                    0x2F73 => array(0x7A74), 0x2F74 => array(0x7ACB), 0x2F75 => array(0x7AF9),
2037
-                    0x2F76 => array(0x7C73), 0x2F77 => array(0x7CF8), 0x2F78 => array(0x7F36),
2038
-                    0x2F79 => array(0x7F51), 0x2F7A => array(0x7F8A), 0x2F7B => array(0x7FBD),
2039
-                    0x2F7C => array(0x8001), 0x2F7D => array(0x800C), 0x2F7E => array(0x8012),
2040
-                    0x2F7F => array(0x8033), 0x2F80 => array(0x807F), 0x2F81 => array(0x8089),
2041
-                    0x2F82 => array(0x81E3), 0x2F83 => array(0x81EA), 0x2F84 => array(0x81F3),
2042
-                    0x2F85 => array(0x81FC), 0x2F86 => array(0x820C), 0x2F87 => array(0x821B),
2043
-                    0x2F88 => array(0x821F), 0x2F89 => array(0x826E), 0x2F8A => array(0x8272),
2044
-                    0x2F8B => array(0x8278), 0x2F8C => array(0x864D), 0x2F8D => array(0x866B),
2045
-                    0x2F8E => array(0x8840), 0x2F8F => array(0x884C), 0x2F90 => array(0x8863),
2046
-                    0x2F91 => array(0x897E), 0x2F92 => array(0x898B), 0x2F93 => array(0x89D2),
2047
-                    0x2F94 => array(0x8A00), 0x2F95 => array(0x8C37), 0x2F96 => array(0x8C46),
2048
-                    0x2F97 => array(0x8C55), 0x2F98 => array(0x8C78), 0x2F99 => array(0x8C9D),
2049
-                    0x2F9A => array(0x8D64), 0x2F9B => array(0x8D70), 0x2F9C => array(0x8DB3),
2050
-                    0x2F9D => array(0x8EAB), 0x2F9E => array(0x8ECA), 0x2F9F => array(0x8F9B),
2051
-                    0x2FA0 => array(0x8FB0), 0x2FA1 => array(0x8FB5), 0x2FA2 => array(0x9091),
2052
-                    0x2FA3 => array(0x9149), 0x2FA4 => array(0x91C6), 0x2FA5 => array(0x91CC),
2053
-                    0x2FA6 => array(0x91D1), 0x2FA7 => array(0x9577), 0x2FA8 => array(0x9580),
2054
-                    0x2FA9 => array(0x961C), 0x2FAA => array(0x96B6), 0x2FAB => array(0x96B9),
2055
-                    0x2FAC => array(0x96E8), 0x2FAD => array(0x9751), 0x2FAE => array(0x975E),
2056
-                    0x2FAF => array(0x9762), 0x2FB0 => array(0x9769), 0x2FB1 => array(0x97CB),
2057
-                    0x2FB2 => array(0x97ED), 0x2FB3 => array(0x97F3), 0x2FB4 => array(0x9801),
2058
-                    0x2FB5 => array(0x98A8), 0x2FB6 => array(0x98DB), 0x2FB7 => array(0x98DF),
2059
-                    0x2FB8 => array(0x9996), 0x2FB9 => array(0x9999), 0x2FBA => array(0x99AC),
2060
-                    0x2FBB => array(0x9AA8), 0x2FBC => array(0x9AD8), 0x2FBD => array(0x9ADF),
2061
-                    0x2FBE => array(0x9B25), 0x2FBF => array(0x9B2F), 0x2FC0 => array(0x9B32),
2062
-                    0x2FC1 => array(0x9B3C), 0x2FC2 => array(0x9B5A), 0x2FC3 => array(0x9CE5),
2063
-                    0x2FC4 => array(0x9E75), 0x2FC5 => array(0x9E7F), 0x2FC6 => array(0x9EA5),
2064
-                    0x2FC7 => array(0x9EBB), 0x2FC8 => array(0x9EC3), 0x2FC9 => array(0x9ECD),
2065
-                    0x2FCA => array(0x9ED1), 0x2FCB => array(0x9EF9), 0x2FCC => array(0x9EFD),
2066
-                    0x2FCD => array(0x9F0E), 0x2FCE => array(0x9F13), 0x2FCF => array(0x9F20),
2067
-                    0x2FD0 => array(0x9F3B), 0x2FD1 => array(0x9F4A), 0x2FD2 => array(0x9F52),
2068
-                    0x2FD3 => array(0x9F8D), 0x2FD4 => array(0x9F9C), 0x2FD5 => array(0x9FA0),
2069
-                    0x3002 => array(0x2E), 0x3036 => array(0x3012), 0x3038 => array(0x5341),
2070
-                    0x3039 => array(0x5344), 0x303A => array(0x5345), 0x309F => array(0x3088, 0x308A),
2071
-                    0x30FF => array(0x30B3, 0x30C8), 0x3131 => array(0x1100), 0x3132 => array(0x1101),
2072
-                    0x3133 => array(0x11AA), 0x3134 => array(0x1102), 0x3135 => array(0x11AC),
2073
-                    0x3136 => array(0x11AD), 0x3137 => array(0x1103), 0x3138 => array(0x1104),
2074
-                    0x3139 => array(0x1105), 0x313A => array(0x11B0), 0x313B => array(0x11B1),
2075
-                    0x313C => array(0x11B2), 0x313D => array(0x11B3), 0x313E => array(0x11B4),
2076
-                    0x313F => array(0x11B5), 0x3140 => array(0x111A), 0x3141 => array(0x1106),
2077
-                    0x3142 => array(0x1107), 0x3143 => array(0x1108), 0x3144 => array(0x1121),
2078
-                    0x3145 => array(0x1109), 0x3146 => array(0x110A), 0x3147 => array(0x110B),
2079
-                    0x3148 => array(0x110C), 0x3149 => array(0x110D), 0x314A => array(0x110E),
2080
-                    0x314B => array(0x110F), 0x314C => array(0x1110), 0x314D => array(0x1111),
2081
-                    0x314E => array(0x1112), 0x314F => array(0x1161), 0x3150 => array(0x1162),
2082
-                    0x3151 => array(0x1163), 0x3152 => array(0x1164), 0x3153 => array(0x1165),
2083
-                    0x3154 => array(0x1166), 0x3155 => array(0x1167), 0x3156 => array(0x1168),
2084
-                    0x3157 => array(0x1169), 0x3158 => array(0x116A), 0x3159 => array(0x116B),
2085
-                    0x315A => array(0x116C), 0x315B => array(0x116D), 0x315C => array(0x116E),
2086
-                    0x315D => array(0x116F), 0x315E => array(0x1170), 0x315F => array(0x1171),
2087
-                    0x3160 => array(0x1172), 0x3161 => array(0x1173), 0x3162 => array(0x1174),
2088
-                    0x3163 => array(0x1175), 0x3165 => array(0x1114), 0x3166 => array(0x1115),
2089
-                    0x3167 => array(0x11C7), 0x3168 => array(0x11C8), 0x3169 => array(0x11CC),
2090
-                    0x316A => array(0x11CE), 0x316B => array(0x11D3), 0x316C => array(0x11D7),
2091
-                    0x316D => array(0x11D9), 0x316E => array(0x111C), 0x316F => array(0x11DD),
2092
-                    0x3170 => array(0x11DF), 0x3171 => array(0x111D), 0x3172 => array(0x111E),
2093
-                    0x3173 => array(0x1120), 0x3174 => array(0x1122), 0x3175 => array(0x1123),
2094
-                    0x3176 => array(0x1127), 0x3177 => array(0x1129), 0x3178 => array(0x112B),
2095
-                    0x3179 => array(0x112C), 0x317A => array(0x112D), 0x317B => array(0x112E),
2096
-                    0x317C => array(0x112F), 0x317D => array(0x1132), 0x317E => array(0x1136),
2097
-                    0x317F => array(0x1140), 0x3180 => array(0x1147), 0x3181 => array(0x114C),
2098
-                    0x3182 => array(0x11F1), 0x3183 => array(0x11F2), 0x3184 => array(0x1157),
2099
-                    0x3185 => array(0x1158), 0x3186 => array(0x1159), 0x3187 => array(0x1184),
2100
-                    0x3188 => array(0x1185), 0x3189 => array(0x1188), 0x318A => array(0x1191),
2101
-                    0x318B => array(0x1192), 0x318C => array(0x1194), 0x318D => array(0x119E),
2102
-                    0x318E => array(0x11A1), 0x3192 => array(0x4E00), 0x3193 => array(0x4E8C),
2103
-                    0x3194 => array(0x4E09), 0x3195 => array(0x56DB), 0x3196 => array(0x4E0A),
2104
-                    0x3197 => array(0x4E2D), 0x3198 => array(0x4E0B), 0x3199 => array(0x7532),
2105
-                    0x319A => array(0x4E59), 0x319B => array(0x4E19), 0x319C => array(0x4E01),
2106
-                    0x319D => array(0x5929), 0x319E => array(0x5730), 0x319F => array(0x4EBA),
2107
-                    0x3244 => array(0x554F), 0x3245 => array(0x5E7C), 0x3246 => array(0x6587),
2108
-                    0x3247 => array(0x7B8F), 0x3250 => array(0x70, 0x74, 0x65), 0x3251 => array(0x32, 0x31),
2109
-                    0x3252 => array(0x32, 0x32), 0x3253 => array(0x32, 0x33), 0x3254 => array(0x32, 0x34),
2110
-                    0x3255 => array(0x32, 0x35), 0x3256 => array(0x32, 0x36), 0x3257 => array(0x32, 0x37),
2111
-                    0x3258 => array(0x32, 0x38), 0x3259 => array(0x32, 0x39), 0x325A => array(0x33, 0x30),
2112
-                    0x325B => array(0x33, 0x31), 0x325C => array(0x33, 0x32), 0x325D => array(0x33, 0x33),
2113
-                    0x325E => array(0x33, 0x34), 0x325F => array(0x33, 0x35), 0x3260 => array(0x1100),
2114
-                    0x3261 => array(0x1102), 0x3262 => array(0x1103), 0x3263 => array(0x1105),
2115
-                    0x3264 => array(0x1106), 0x3265 => array(0x1107), 0x3266 => array(0x1109),
2116
-                    0x3267 => array(0x110B), 0x3268 => array(0x110C), 0x3269 => array(0x110E),
2117
-                    0x326A => array(0x110F), 0x326B => array(0x1110), 0x326C => array(0x1111),
2118
-                    0x326D => array(0x1112), 0x326E => array(0xAC00), 0x326F => array(0xB098),
2119
-                    0x3270 => array(0xB2E4), 0x3271 => array(0xB77C), 0x3272 => array(0xB9C8),
2120
-                    0x3273 => array(0xBC14), 0x3274 => array(0xC0AC), 0x3275 => array(0xC544),
2121
-                    0x3276 => array(0xC790), 0x3277 => array(0xCC28), 0x3278 => array(0xCE74),
2122
-                    0x3279 => array(0xD0C0), 0x327A => array(0xD30C), 0x327B => array(0xD558),
2123
-                    0x327C => array(0xCC38, 0xACE0), 0x327D => array(0xC8FC, 0xC758), 0x327E => array(0xC6B0),
2124
-                    0x3280 => array(0x4E00), 0x3281 => array(0x4E8C), 0x3282 => array(0x4E09),
2125
-                    0x3283 => array(0x56DB), 0x3284 => array(0x4E94), 0x3285 => array(0x516D),
2126
-                    0x3286 => array(0x4E03), 0x3287 => array(0x516B), 0x3288 => array(0x4E5D),
2127
-                    0x3289 => array(0x5341), 0x328A => array(0x6708), 0x328B => array(0x706B),
2128
-                    0x328C => array(0x6C34), 0x328D => array(0x6728), 0x328E => array(0x91D1),
2129
-                    0x328F => array(0x571F), 0x3290 => array(0x65E5), 0x3291 => array(0x682A),
2130
-                    0x3292 => array(0x6709), 0x3293 => array(0x793E), 0x3294 => array(0x540D),
2131
-                    0x3295 => array(0x7279), 0x3296 => array(0x8CA1), 0x3297 => array(0x795D),
2132
-                    0x3298 => array(0x52B4), 0x3299 => array(0x79D8), 0x329A => array(0x7537),
2133
-                    0x329B => array(0x5973), 0x329C => array(0x9069), 0x329D => array(0x512A),
2134
-                    0x329E => array(0x5370), 0x329F => array(0x6CE8), 0x32A0 => array(0x9805),
2135
-                    0x32A1 => array(0x4F11), 0x32A2 => array(0x5199), 0x32A3 => array(0x6B63),
2136
-                    0x32A4 => array(0x4E0A), 0x32A5 => array(0x4E2D), 0x32A6 => array(0x4E0B),
2137
-                    0x32A7 => array(0x5DE6), 0x32A8 => array(0x53F3), 0x32A9 => array(0x533B),
2138
-                    0x32AA => array(0x5B97), 0x32AB => array(0x5B66), 0x32AC => array(0x76E3),
2139
-                    0x32AD => array(0x4F01), 0x32AE => array(0x8CC7), 0x32AF => array(0x5354),
2140
-                    0x32B0 => array(0x591C), 0x32B1 => array(0x33, 0x36), 0x32B2 => array(0x33, 0x37),
2141
-                    0x32B3 => array(0x33, 0x38), 0x32B4 => array(0x33, 0x39), 0x32B5 => array(0x34, 0x30),
2142
-                    0x32B6 => array(0x34, 0x31), 0x32B7 => array(0x34, 0x32), 0x32B8 => array(0x34, 0x33),
2143
-                    0x32B9 => array(0x34, 0x34), 0x32BA => array(0x34, 0x35), 0x32BB => array(0x34, 0x36),
2144
-                    0x32BC => array(0x34, 0x37), 0x32BD => array(0x34, 0x38), 0x32BE => array(0x34, 0x39),
2145
-                    0x32BF => array(0x35, 0x30), 0x32C0 => array(0x31, 0x6708), 0x32C1 => array(0x32, 0x6708),
2146
-                    0x32C2 => array(0x33, 0x6708), 0x32C3 => array(0x34, 0x6708), 0x32C4 => array(0x35, 0x6708),
2147
-                    0x32C5 => array(0x36, 0x6708), 0x32C6 => array(0x37, 0x6708), 0x32C7 => array(0x38, 0x6708),
2148
-                    0x32C8 => array(0x39, 0x6708), 0x32C9 => array(0x31, 0x30, 0x6708), 0x32CA => array(0x31, 0x31, 0x6708),
2149
-                    0x32CB => array(0x31, 0x32, 0x6708), 0x32CC => array(0x68, 0x67), 0x32CD => array(0x65, 0x72, 0x67),
2150
-                    0x32CE => array(0x65, 0x76), 0x32CF => array(0x6C, 0x74, 0x64), 0x32D0 => array(0x30A2),
2151
-                    0x32D1 => array(0x30A4), 0x32D2 => array(0x30A6), 0x32D3 => array(0x30A8),
2152
-                    0x32D4 => array(0x30AA), 0x32D5 => array(0x30AB), 0x32D6 => array(0x30AD),
2153
-                    0x32D7 => array(0x30AF), 0x32D8 => array(0x30B1), 0x32D9 => array(0x30B3),
2154
-                    0x32DA => array(0x30B5), 0x32DB => array(0x30B7), 0x32DC => array(0x30B9),
2155
-                    0x32DD => array(0x30BB), 0x32DE => array(0x30BD), 0x32DF => array(0x30BF),
2156
-                    0x32E0 => array(0x30C1), 0x32E1 => array(0x30C4), 0x32E2 => array(0x30C6),
2157
-                    0x32E3 => array(0x30C8), 0x32E4 => array(0x30CA), 0x32E5 => array(0x30CB),
2158
-                    0x32E6 => array(0x30CC), 0x32E7 => array(0x30CD), 0x32E8 => array(0x30CE),
2159
-                    0x32E9 => array(0x30CF), 0x32EA => array(0x30D2), 0x32EB => array(0x30D5),
2160
-                    0x32EC => array(0x30D8), 0x32ED => array(0x30DB), 0x32EE => array(0x30DE),
2161
-                    0x32EF => array(0x30DF), 0x32F0 => array(0x30E0), 0x32F1 => array(0x30E1),
2162
-                    0x32F2 => array(0x30E2), 0x32F3 => array(0x30E4), 0x32F4 => array(0x30E6),
2163
-                    0x32F5 => array(0x30E8), 0x32F6 => array(0x30E9), 0x32F7 => array(0x30EA),
2164
-                    0x32F8 => array(0x30EB), 0x32F9 => array(0x30EC), 0x32FA => array(0x30ED),
2165
-                    0x32FB => array(0x30EF), 0x32FC => array(0x30F0), 0x32FD => array(0x30F1),
2166
-                    0x32FE => array(0x30F2), 0x3300 => array(0x30A2, 0x30D1, 0x30FC, 0x30C8), 0x3301 => array(0x30A2, 0x30EB, 0x30D5, 0x30A1),
2167
-                    0x3302 => array(0x30A2, 0x30F3, 0x30DA, 0x30A2), 0x3303 => array(0x30A2, 0x30FC, 0x30EB), 0x3304 => array(0x30A4, 0x30CB, 0x30F3, 0x30B0),
2168
-                    0x3305 => array(0x30A4, 0x30F3, 0x30C1), 0x3306 => array(0x30A6, 0x30A9, 0x30F3), 0x3307 => array(0x30A8, 0x30B9, 0x30AF, 0x30FC, 0x30C9),
2169
-                    0x3308 => array(0x30A8, 0x30FC, 0x30AB, 0x30FC), 0x3309 => array(0x30AA, 0x30F3, 0x30B9), 0x330A => array(0x30AA, 0x30FC, 0x30E0),
2170
-                    0x330B => array(0x30AB, 0x30A4, 0x30EA), 0x330C => array(0x30AB, 0x30E9, 0x30C3, 0x30C8), 0x330D => array(0x30AB, 0x30ED, 0x30EA, 0x30FC),
2171
-                    0x330E => array(0x30AC, 0x30ED, 0x30F3), 0x330F => array(0x30AC, 0x30F3, 0x30DE), 0x3310 => array(0x30AE, 0x30AC),
2172
-                    0x3311 => array(0x30AE, 0x30CB, 0x30FC), 0x3312 => array(0x30AD, 0x30E5, 0x30EA, 0x30FC), 0x3313 => array(0x30AE, 0x30EB, 0x30C0, 0x30FC),
2173
-                    0x3314 => array(0x30AD, 0x30ED), 0x3315 => array(0x30AD, 0x30ED, 0x30B0, 0x30E9, 0x30E0), 0x3316 => array(0x30AD, 0x30ED, 0x30E1, 0x30FC, 0x30C8, 0x30EB),
2174
-                    0x3317 => array(0x30AD, 0x30ED, 0x30EF, 0x30C3, 0x30C8), 0x3318 => array(0x30B0, 0x30E9, 0x30E0), 0x3319 => array(0x30B0, 0x30E9, 0x30E0, 0x30C8, 0x30F3),
2175
-                    0x331A => array(0x30AF, 0x30EB, 0x30BC, 0x30A4, 0x30ED), 0x331B => array(0x30AF, 0x30ED, 0x30FC, 0x30CD), 0x331C => array(0x30B1, 0x30FC, 0x30B9),
2176
-                    0x331D => array(0x30B3, 0x30EB, 0x30CA), 0x331E => array(0x30B3, 0x30FC, 0x30DD), 0x331F => array(0x30B5, 0x30A4, 0x30AF, 0x30EB),
2177
-                    0x3320 => array(0x30B5, 0x30F3, 0x30C1, 0x30FC, 0x30E0), 0x3321 => array(0x30B7, 0x30EA, 0x30F3, 0x30B0), 0x3322 => array(0x30BB, 0x30F3, 0x30C1),
2178
-                    0x3323 => array(0x30BB, 0x30F3, 0x30C8), 0x3324 => array(0x30C0, 0x30FC, 0x30B9), 0x3325 => array(0x30C7, 0x30B7),
2179
-                    0x3326 => array(0x30C9, 0x30EB), 0x3327 => array(0x30C8, 0x30F3), 0x3328 => array(0x30CA, 0x30CE),
2180
-                    0x3329 => array(0x30CE, 0x30C3, 0x30C8), 0x332A => array(0x30CF, 0x30A4, 0x30C4), 0x332B => array(0x30D1, 0x30FC, 0x30BB, 0x30F3, 0x30C8),
2181
-                    0x332C => array(0x30D1, 0x30FC, 0x30C4), 0x332D => array(0x30D0, 0x30FC, 0x30EC, 0x30EB), 0x332E => array(0x30D4, 0x30A2, 0x30B9, 0x30C8, 0x30EB),
2182
-                    0x332F => array(0x30D4, 0x30AF, 0x30EB), 0x3330 => array(0x30D4, 0x30B3), 0x3331 => array(0x30D3, 0x30EB),
2183
-                    0x3332 => array(0x30D5, 0x30A1, 0x30E9, 0x30C3, 0x30C9), 0x3333 => array(0x30D5, 0x30A3, 0x30FC, 0x30C8), 0x3334 => array(0x30D6, 0x30C3, 0x30B7, 0x30A7, 0x30EB),
2184
-                    0x3335 => array(0x30D5, 0x30E9, 0x30F3), 0x3336 => array(0x30D8, 0x30AF, 0x30BF, 0x30FC, 0x30EB), 0x3337 => array(0x30DA, 0x30BD),
2185
-                    0x3338 => array(0x30DA, 0x30CB, 0x30D2), 0x3339 => array(0x30D8, 0x30EB, 0x30C4), 0x333A => array(0x30DA, 0x30F3, 0x30B9),
2186
-                    0x333B => array(0x30DA, 0x30FC, 0x30B8), 0x333C => array(0x30D9, 0x30FC, 0x30BF), 0x333D => array(0x30DD, 0x30A4, 0x30F3, 0x30C8),
2187
-                    0x333E => array(0x30DC, 0x30EB, 0x30C8), 0x333F => array(0x30DB, 0x30F3), 0x3340 => array(0x30DD, 0x30F3, 0x30C9),
2188
-                    0x3341 => array(0x30DB, 0x30FC, 0x30EB), 0x3342 => array(0x30DB, 0x30FC, 0x30F3), 0x3343 => array(0x30DE, 0x30A4, 0x30AF, 0x30ED),
2189
-                    0x3344 => array(0x30DE, 0x30A4, 0x30EB), 0x3345 => array(0x30DE, 0x30C3, 0x30CF), 0x3346 => array(0x30DE, 0x30EB, 0x30AF),
2190
-                    0x3347 => array(0x30DE, 0x30F3, 0x30B7, 0x30E7, 0x30F3), 0x3348 => array(0x30DF, 0x30AF, 0x30ED, 0x30F3), 0x3349 => array(0x30DF, 0x30EA),
2191
-                    0x334A => array(0x30DF, 0x30EA, 0x30D0, 0x30FC, 0x30EB), 0x334B => array(0x30E1, 0x30AC), 0x334C => array(0x30E1, 0x30AC, 0x30C8, 0x30F3),
2192
-                    0x334D => array(0x30E1, 0x30FC, 0x30C8, 0x30EB), 0x334E => array(0x30E4, 0x30FC, 0x30C9), 0x334F => array(0x30E4, 0x30FC, 0x30EB),
2193
-                    0x3350 => array(0x30E6, 0x30A2, 0x30F3), 0x3351 => array(0x30EA, 0x30C3, 0x30C8, 0x30EB), 0x3352 => array(0x30EA, 0x30E9),
2194
-                    0x3353 => array(0x30EB, 0x30D4, 0x30FC), 0x3354 => array(0x30EB, 0x30FC, 0x30D6, 0x30EB), 0x3355 => array(0x30EC, 0x30E0),
2195
-                    0x3356 => array(0x30EC, 0x30F3, 0x30C8, 0x30B2, 0x30F3), 0x3357 => array(0x30EF, 0x30C3, 0x30C8), 0x3358 => array(0x30, 0x70B9),
2196
-                    0x3359 => array(0x31, 0x70B9), 0x335A => array(0x32, 0x70B9), 0x335B => array(0x33, 0x70B9),
2197
-                    0x335C => array(0x34, 0x70B9), 0x335D => array(0x35, 0x70B9), 0x335E => array(0x36, 0x70B9),
2198
-                    0x335F => array(0x37, 0x70B9), 0x3360 => array(0x38, 0x70B9), 0x3361 => array(0x39, 0x70B9),
2199
-                    0x3362 => array(0x31, 0x30, 0x70B9), 0x3363 => array(0x31, 0x31, 0x70B9), 0x3364 => array(0x31, 0x32, 0x70B9),
2200
-                    0x3365 => array(0x31, 0x33, 0x70B9), 0x3366 => array(0x31, 0x34, 0x70B9), 0x3367 => array(0x31, 0x35, 0x70B9),
2201
-                    0x3368 => array(0x31, 0x36, 0x70B9), 0x3369 => array(0x31, 0x37, 0x70B9), 0x336A => array(0x31, 0x38, 0x70B9),
2202
-                    0x336B => array(0x31, 0x39, 0x70B9), 0x336C => array(0x32, 0x30, 0x70B9), 0x336D => array(0x32, 0x31, 0x70B9),
2203
-                    0x336E => array(0x32, 0x32, 0x70B9), 0x336F => array(0x32, 0x33, 0x70B9), 0x3370 => array(0x32, 0x34, 0x70B9),
2204
-                    0x3371 => array(0x68, 0x70, 0x61), 0x3372 => array(0x64, 0x61), 0x3373 => array(0x61, 0x75),
2205
-                    0x3374 => array(0x62, 0x61, 0x72), 0x3375 => array(0x6F, 0x76), 0x3376 => array(0x70, 0x63),
2206
-                    0x3377 => array(0x64, 0x6D), 0x3378 => array(0x64, 0x6D, 0x32), 0x3379 => array(0x64, 0x6D, 0x33),
2207
-                    0x337A => array(0x69, 0x75), 0x337B => array(0x5E73, 0x6210), 0x337C => array(0x662D, 0x548C),
2208
-                    0x337D => array(0x5927, 0x6B63), 0x337E => array(0x660E, 0x6CBB), 0x337F => array(0x682A, 0x5F0F, 0x4F1A, 0x793E),
2209
-                    0x3380 => array(0x70, 0x61), 0x3381 => array(0x6E, 0x61), 0x3382 => array(0x3BC, 0x61),
2210
-                    0x3383 => array(0x6D, 0x61), 0x3384 => array(0x6B, 0x61), 0x3385 => array(0x6B, 0x62),
2211
-                    0x3386 => array(0x6D, 0x62), 0x3387 => array(0x67, 0x62), 0x3388 => array(0x63, 0x61, 0x6C),
2212
-                    0x3389 => array(0x6B, 0x63, 0x61, 0x6C), 0x338A => array(0x70, 0x66), 0x338B => array(0x6E, 0x66),
2213
-                    0x338C => array(0x3BC, 0x66), 0x338D => array(0x3BC, 0x67), 0x338E => array(0x6D, 0x67),
2214
-                    0x338F => array(0x6B, 0x67), 0x3390 => array(0x68, 0x7A), 0x3391 => array(0x6B, 0x68, 0x7A),
2215
-                    0x3392 => array(0x6D, 0x68, 0x7A), 0x3393 => array(0x67, 0x68, 0x7A), 0x3394 => array(0x74, 0x68, 0x7A),
2216
-                    0x3395 => array(0x3BC, 0x6C), 0x3396 => array(0x6D, 0x6C), 0x3397 => array(0x64, 0x6C),
2217
-                    0x3398 => array(0x6B, 0x6C), 0x3399 => array(0x66, 0x6D), 0x339A => array(0x6E, 0x6D),
2218
-                    0x339B => array(0x3BC, 0x6D), 0x339C => array(0x6D, 0x6D), 0x339D => array(0x63, 0x6D),
2219
-                    0x339E => array(0x6B, 0x6D), 0x339F => array(0x6D, 0x6D, 0x32), 0x33A0 => array(0x63, 0x6D, 0x32),
2220
-                    0x33A1 => array(0x6D, 0x32), 0x33A2 => array(0x6B, 0x6D, 0x32), 0x33A3 => array(0x6D, 0x6D, 0x33),
2221
-                    0x33A4 => array(0x63, 0x6D, 0x33), 0x33A5 => array(0x6D, 0x33), 0x33A6 => array(0x6B, 0x6D, 0x33),
2222
-                    0x33A7 => array(0x6D, 0x2215, 0x73), 0x33A8 => array(0x6D, 0x2215, 0x73, 0x32), 0x33A9 => array(0x70, 0x61),
2223
-                    0x33AA => array(0x6B, 0x70, 0x61), 0x33AB => array(0x6D, 0x70, 0x61), 0x33AC => array(0x67, 0x70, 0x61),
2224
-                    0x33AD => array(0x72, 0x61, 0x64), 0x33AE => array(0x72, 0x61, 0x64, 0x2215, 0x73), 0x33AF => array(0x72, 0x61, 0x64, 0x2215, 0x73, 0x32),
2225
-                    0x33B0 => array(0x70, 0x73), 0x33B1 => array(0x6E, 0x73), 0x33B2 => array(0x3BC, 0x73),
2226
-                    0x33B3 => array(0x6D, 0x73), 0x33B4 => array(0x70, 0x76), 0x33B5 => array(0x6E, 0x76),
2227
-                    0x33B6 => array(0x3BC, 0x76), 0x33B7 => array(0x6D, 0x76), 0x33B8 => array(0x6B, 0x76),
2228
-                    0x33B9 => array(0x6D, 0x76), 0x33BA => array(0x70, 0x77), 0x33BB => array(0x6E, 0x77),
2229
-                    0x33BC => array(0x3BC, 0x77), 0x33BD => array(0x6D, 0x77), 0x33BE => array(0x6B, 0x77),
2230
-                    0x33BF => array(0x6D, 0x77), 0x33C0 => array(0x6B, 0x3C9), 0x33C1 => array(0x6D, 0x3C9),
2231
-                    0x33C3 => array(0x62, 0x71), 0x33C4 => array(0x63, 0x63), 0x33C5 => array(0x63, 0x64),
2232
-                    0x33C6 => array(0x63, 0x2215, 0x6B, 0x67), 0x33C8 => array(0x64, 0x62), 0x33C9 => array(0x67, 0x79),
2233
-                    0x33CA => array(0x68, 0x61), 0x33CB => array(0x68, 0x70), 0x33CC => array(0x69, 0x6E),
2234
-                    0x33CD => array(0x6B, 0x6B), 0x33CE => array(0x6B, 0x6D), 0x33CF => array(0x6B, 0x74),
2235
-                    0x33D0 => array(0x6C, 0x6D), 0x33D1 => array(0x6C, 0x6E), 0x33D2 => array(0x6C, 0x6F, 0x67),
2236
-                    0x33D3 => array(0x6C, 0x78), 0x33D4 => array(0x6D, 0x62), 0x33D5 => array(0x6D, 0x69, 0x6C),
2237
-                    0x33D6 => array(0x6D, 0x6F, 0x6C), 0x33D7 => array(0x70, 0x68), 0x33D9 => array(0x70, 0x70, 0x6D),
2238
-                    0x33DA => array(0x70, 0x72), 0x33DB => array(0x73, 0x72), 0x33DC => array(0x73, 0x76),
2239
-                    0x33DD => array(0x77, 0x62), 0x33DE => array(0x76, 0x2215, 0x6D), 0x33DF => array(0x61, 0x2215, 0x6D),
2240
-                    0x33E0 => array(0x31, 0x65E5), 0x33E1 => array(0x32, 0x65E5), 0x33E2 => array(0x33, 0x65E5),
2241
-                    0x33E3 => array(0x34, 0x65E5), 0x33E4 => array(0x35, 0x65E5), 0x33E5 => array(0x36, 0x65E5),
2242
-                    0x33E6 => array(0x37, 0x65E5), 0x33E7 => array(0x38, 0x65E5), 0x33E8 => array(0x39, 0x65E5),
2243
-                    0x33E9 => array(0x31, 0x30, 0x65E5), 0x33EA => array(0x31, 0x31, 0x65E5), 0x33EB => array(0x31, 0x32, 0x65E5),
2244
-                    0x33EC => array(0x31, 0x33, 0x65E5), 0x33ED => array(0x31, 0x34, 0x65E5), 0x33EE => array(0x31, 0x35, 0x65E5),
2245
-                    0x33EF => array(0x31, 0x36, 0x65E5), 0x33F0 => array(0x31, 0x37, 0x65E5), 0x33F1 => array(0x31, 0x38, 0x65E5),
2246
-                    0x33F2 => array(0x31, 0x39, 0x65E5), 0x33F3 => array(0x32, 0x30, 0x65E5), 0x33F4 => array(0x32, 0x31, 0x65E5),
2247
-                    0x33F5 => array(0x32, 0x32, 0x65E5), 0x33F6 => array(0x32, 0x33, 0x65E5), 0x33F7 => array(0x32, 0x34, 0x65E5),
2248
-                    0x33F8 => array(0x32, 0x35, 0x65E5), 0x33F9 => array(0x32, 0x36, 0x65E5), 0x33FA => array(0x32, 0x37, 0x65E5),
2249
-                    0x33FB => array(0x32, 0x38, 0x65E5), 0x33FC => array(0x32, 0x39, 0x65E5), 0x33FD => array(0x33, 0x30, 0x65E5),
2250
-                    0x33FE => array(0x33, 0x31, 0x65E5), 0x33FF => array(0x67, 0x61, 0x6C), 0xA640 => array(0xA641),
2251
-                    0xA642 => array(0xA643), 0xA644 => array(0xA645), 0xA646 => array(0xA647),
2252
-                    0xA648 => array(0xA649), 0xA64A => array(0xA64B), 0xA64C => array(0xA64D),
2253
-                    0xA64E => array(0xA64F), 0xA650 => array(0xA651), 0xA652 => array(0xA653),
2254
-                    0xA654 => array(0xA655), 0xA656 => array(0xA657), 0xA658 => array(0xA659),
2255
-                    0xA65A => array(0xA65B), 0xA65C => array(0xA65D), 0xA65E => array(0xA65F),
2256
-                    0xA660 => array(0xA661), 0xA662 => array(0xA663), 0xA664 => array(0xA665),
2257
-                    0xA666 => array(0xA667), 0xA668 => array(0xA669), 0xA66A => array(0xA66B),
2258
-                    0xA66C => array(0xA66D), 0xA680 => array(0xA681), 0xA682 => array(0xA683),
2259
-                    0xA684 => array(0xA685), 0xA686 => array(0xA687), 0xA688 => array(0xA689),
2260
-                    0xA68A => array(0xA68B), 0xA68C => array(0xA68D), 0xA68E => array(0xA68F),
2261
-                    0xA690 => array(0xA691), 0xA692 => array(0xA693), 0xA694 => array(0xA695),
2262
-                    0xA696 => array(0xA697), 0xA698 => array(0xA699), 0xA69A => array(0xA69B),
2263
-                    0xA69C => array(0x44A), 0xA69D => array(0x44C), 0xA722 => array(0xA723),
2264
-                    0xA724 => array(0xA725), 0xA726 => array(0xA727), 0xA728 => array(0xA729),
2265
-                    0xA72A => array(0xA72B), 0xA72C => array(0xA72D), 0xA72E => array(0xA72F),
2266
-                    0xA732 => array(0xA733), 0xA734 => array(0xA735), 0xA736 => array(0xA737),
2267
-                    0xA738 => array(0xA739), 0xA73A => array(0xA73B), 0xA73C => array(0xA73D),
2268
-                    0xA73E => array(0xA73F), 0xA740 => array(0xA741), 0xA742 => array(0xA743),
2269
-                    0xA744 => array(0xA745), 0xA746 => array(0xA747), 0xA748 => array(0xA749),
2270
-                    0xA74A => array(0xA74B), 0xA74C => array(0xA74D), 0xA74E => array(0xA74F),
2271
-                    0xA750 => array(0xA751), 0xA752 => array(0xA753), 0xA754 => array(0xA755),
2272
-                    0xA756 => array(0xA757), 0xA758 => array(0xA759), 0xA75A => array(0xA75B),
2273
-                    0xA75C => array(0xA75D), 0xA75E => array(0xA75F), 0xA760 => array(0xA761),
2274
-                    0xA762 => array(0xA763), 0xA764 => array(0xA765), 0xA766 => array(0xA767),
2275
-                    0xA768 => array(0xA769), 0xA76A => array(0xA76B), 0xA76C => array(0xA76D),
2276
-                    0xA76E => array(0xA76F), 0xA770 => array(0xA76F), 0xA779 => array(0xA77A),
2277
-                    0xA77B => array(0xA77C), 0xA77D => array(0x1D79), 0xA77E => array(0xA77F),
2278
-                    0xA780 => array(0xA781), 0xA782 => array(0xA783), 0xA784 => array(0xA785),
2279
-                    0xA786 => array(0xA787), 0xA78B => array(0xA78C), 0xA78D => array(0x265),
2280
-                    0xA790 => array(0xA791), 0xA792 => array(0xA793), 0xA796 => array(0xA797),
2281
-                    0xA798 => array(0xA799), 0xA79A => array(0xA79B), 0xA79C => array(0xA79D),
2282
-                    0xA79E => array(0xA79F), 0xA7A0 => array(0xA7A1), 0xA7A2 => array(0xA7A3),
2283
-                    0xA7A4 => array(0xA7A5), 0xA7A6 => array(0xA7A7), 0xA7A8 => array(0xA7A9),
2284
-                    0xA7AA => array(0x266), 0xA7AB => array(0x25C), 0xA7AC => array(0x261),
2285
-                    0xA7AD => array(0x26C), 0xA7B0 => array(0x29E), 0xA7B1 => array(0x287),
2286
-                    0xA7F8 => array(0x127), 0xA7F9 => array(0x153), 0xAB5C => array(0xA727),
2287
-                    0xAB5D => array(0xAB37), 0xAB5E => array(0x26B), 0xAB5F => array(0xAB52),
2288
-                    0xF900 => array(0x8C48), 0xF901 => array(0x66F4), 0xF902 => array(0x8ECA),
2289
-                    0xF903 => array(0x8CC8), 0xF904 => array(0x6ED1), 0xF905 => array(0x4E32),
2290
-                    0xF906 => array(0x53E5), 0xF907 => array(0x9F9C), 0xF908 => array(0x9F9C),
2291
-                    0xF909 => array(0x5951), 0xF90A => array(0x91D1), 0xF90B => array(0x5587),
2292
-                    0xF90C => array(0x5948), 0xF90D => array(0x61F6), 0xF90E => array(0x7669),
2293
-                    0xF90F => array(0x7F85), 0xF910 => array(0x863F), 0xF911 => array(0x87BA),
2294
-                    0xF912 => array(0x88F8), 0xF913 => array(0x908F), 0xF914 => array(0x6A02),
2295
-                    0xF915 => array(0x6D1B), 0xF916 => array(0x70D9), 0xF917 => array(0x73DE),
2296
-                    0xF918 => array(0x843D), 0xF919 => array(0x916A), 0xF91A => array(0x99F1),
2297
-                    0xF91B => array(0x4E82), 0xF91C => array(0x5375), 0xF91D => array(0x6B04),
2298
-                    0xF91E => array(0x721B), 0xF91F => array(0x862D), 0xF920 => array(0x9E1E),
2299
-                    0xF921 => array(0x5D50), 0xF922 => array(0x6FEB), 0xF923 => array(0x85CD),
2300
-                    0xF924 => array(0x8964), 0xF925 => array(0x62C9), 0xF926 => array(0x81D8),
2301
-                    0xF927 => array(0x881F), 0xF928 => array(0x5ECA), 0xF929 => array(0x6717),
2302
-                    0xF92A => array(0x6D6A), 0xF92B => array(0x72FC), 0xF92C => array(0x90CE),
2303
-                    0xF92D => array(0x4F86), 0xF92E => array(0x51B7), 0xF92F => array(0x52DE),
2304
-                    0xF930 => array(0x64C4), 0xF931 => array(0x6AD3), 0xF932 => array(0x7210),
2305
-                    0xF933 => array(0x76E7), 0xF934 => array(0x8001), 0xF935 => array(0x8606),
2306
-                    0xF936 => array(0x865C), 0xF937 => array(0x8DEF), 0xF938 => array(0x9732),
2307
-                    0xF939 => array(0x9B6F), 0xF93A => array(0x9DFA), 0xF93B => array(0x788C),
2308
-                    0xF93C => array(0x797F), 0xF93D => array(0x7DA0), 0xF93E => array(0x83C9),
2309
-                    0xF93F => array(0x9304), 0xF940 => array(0x9E7F), 0xF941 => array(0x8AD6),
2310
-                    0xF942 => array(0x58DF), 0xF943 => array(0x5F04), 0xF944 => array(0x7C60),
2311
-                    0xF945 => array(0x807E), 0xF946 => array(0x7262), 0xF947 => array(0x78CA),
2312
-                    0xF948 => array(0x8CC2), 0xF949 => array(0x96F7), 0xF94A => array(0x58D8),
2313
-                    0xF94B => array(0x5C62), 0xF94C => array(0x6A13), 0xF94D => array(0x6DDA),
2314
-                    0xF94E => array(0x6F0F), 0xF94F => array(0x7D2F), 0xF950 => array(0x7E37),
2315
-                    0xF951 => array(0x964B), 0xF952 => array(0x52D2), 0xF953 => array(0x808B),
2316
-                    0xF954 => array(0x51DC), 0xF955 => array(0x51CC), 0xF956 => array(0x7A1C),
2317
-                    0xF957 => array(0x7DBE), 0xF958 => array(0x83F1), 0xF959 => array(0x9675),
2318
-                    0xF95A => array(0x8B80), 0xF95B => array(0x62CF), 0xF95C => array(0x6A02),
2319
-                    0xF95D => array(0x8AFE), 0xF95E => array(0x4E39), 0xF95F => array(0x5BE7),
2320
-                    0xF960 => array(0x6012), 0xF961 => array(0x7387), 0xF962 => array(0x7570),
2321
-                    0xF963 => array(0x5317), 0xF964 => array(0x78FB), 0xF965 => array(0x4FBF),
2322
-                    0xF966 => array(0x5FA9), 0xF967 => array(0x4E0D), 0xF968 => array(0x6CCC),
2323
-                    0xF969 => array(0x6578), 0xF96A => array(0x7D22), 0xF96B => array(0x53C3),
2324
-                    0xF96C => array(0x585E), 0xF96D => array(0x7701), 0xF96E => array(0x8449),
2325
-                    0xF96F => array(0x8AAA), 0xF970 => array(0x6BBA), 0xF971 => array(0x8FB0),
2326
-                    0xF972 => array(0x6C88), 0xF973 => array(0x62FE), 0xF974 => array(0x82E5),
2327
-                    0xF975 => array(0x63A0), 0xF976 => array(0x7565), 0xF977 => array(0x4EAE),
2328
-                    0xF978 => array(0x5169), 0xF979 => array(0x51C9), 0xF97A => array(0x6881),
2329
-                    0xF97B => array(0x7CE7), 0xF97C => array(0x826F), 0xF97D => array(0x8AD2),
2330
-                    0xF97E => array(0x91CF), 0xF97F => array(0x52F5), 0xF980 => array(0x5442),
2331
-                    0xF981 => array(0x5973), 0xF982 => array(0x5EEC), 0xF983 => array(0x65C5),
2332
-                    0xF984 => array(0x6FFE), 0xF985 => array(0x792A), 0xF986 => array(0x95AD),
2333
-                    0xF987 => array(0x9A6A), 0xF988 => array(0x9E97), 0xF989 => array(0x9ECE),
2334
-                    0xF98A => array(0x529B), 0xF98B => array(0x66C6), 0xF98C => array(0x6B77),
2335
-                    0xF98D => array(0x8F62), 0xF98E => array(0x5E74), 0xF98F => array(0x6190),
2336
-                    0xF990 => array(0x6200), 0xF991 => array(0x649A), 0xF992 => array(0x6F23),
2337
-                    0xF993 => array(0x7149), 0xF994 => array(0x7489), 0xF995 => array(0x79CA),
2338
-                    0xF996 => array(0x7DF4), 0xF997 => array(0x806F), 0xF998 => array(0x8F26),
2339
-                    0xF999 => array(0x84EE), 0xF99A => array(0x9023), 0xF99B => array(0x934A),
2340
-                    0xF99C => array(0x5217), 0xF99D => array(0x52A3), 0xF99E => array(0x54BD),
2341
-                    0xF99F => array(0x70C8), 0xF9A0 => array(0x88C2), 0xF9A1 => array(0x8AAA),
2342
-                    0xF9A2 => array(0x5EC9), 0xF9A3 => array(0x5FF5), 0xF9A4 => array(0x637B),
2343
-                    0xF9A5 => array(0x6BAE), 0xF9A6 => array(0x7C3E), 0xF9A7 => array(0x7375),
2344
-                    0xF9A8 => array(0x4EE4), 0xF9A9 => array(0x56F9), 0xF9AA => array(0x5BE7),
2345
-                    0xF9AB => array(0x5DBA), 0xF9AC => array(0x601C), 0xF9AD => array(0x73B2),
2346
-                    0xF9AE => array(0x7469), 0xF9AF => array(0x7F9A), 0xF9B0 => array(0x8046),
2347
-                    0xF9B1 => array(0x9234), 0xF9B2 => array(0x96F6), 0xF9B3 => array(0x9748),
2348
-                    0xF9B4 => array(0x9818), 0xF9B5 => array(0x4F8B), 0xF9B6 => array(0x79AE),
2349
-                    0xF9B7 => array(0x91B4), 0xF9B8 => array(0x96B8), 0xF9B9 => array(0x60E1),
2350
-                    0xF9BA => array(0x4E86), 0xF9BB => array(0x50DA), 0xF9BC => array(0x5BEE),
2351
-                    0xF9BD => array(0x5C3F), 0xF9BE => array(0x6599), 0xF9BF => array(0x6A02),
2352
-                    0xF9C0 => array(0x71CE), 0xF9C1 => array(0x7642), 0xF9C2 => array(0x84FC),
2353
-                    0xF9C3 => array(0x907C), 0xF9C4 => array(0x9F8D), 0xF9C5 => array(0x6688),
2354
-                    0xF9C6 => array(0x962E), 0xF9C7 => array(0x5289), 0xF9C8 => array(0x677B),
2355
-                    0xF9C9 => array(0x67F3), 0xF9CA => array(0x6D41), 0xF9CB => array(0x6E9C),
2356
-                    0xF9CC => array(0x7409), 0xF9CD => array(0x7559), 0xF9CE => array(0x786B),
2357
-                    0xF9CF => array(0x7D10), 0xF9D0 => array(0x985E), 0xF9D1 => array(0x516D),
2358
-                    0xF9D2 => array(0x622E), 0xF9D3 => array(0x9678), 0xF9D4 => array(0x502B),
2359
-                    0xF9D5 => array(0x5D19), 0xF9D6 => array(0x6DEA), 0xF9D7 => array(0x8F2A),
2360
-                    0xF9D8 => array(0x5F8B), 0xF9D9 => array(0x6144), 0xF9DA => array(0x6817),
2361
-                    0xF9DB => array(0x7387), 0xF9DC => array(0x9686), 0xF9DD => array(0x5229),
2362
-                    0xF9DE => array(0x540F), 0xF9DF => array(0x5C65), 0xF9E0 => array(0x6613),
2363
-                    0xF9E1 => array(0x674E), 0xF9E2 => array(0x68A8), 0xF9E3 => array(0x6CE5),
2364
-                    0xF9E4 => array(0x7406), 0xF9E5 => array(0x75E2), 0xF9E6 => array(0x7F79),
2365
-                    0xF9E7 => array(0x88CF), 0xF9E8 => array(0x88E1), 0xF9E9 => array(0x91CC),
2366
-                    0xF9EA => array(0x96E2), 0xF9EB => array(0x533F), 0xF9EC => array(0x6EBA),
2367
-                    0xF9ED => array(0x541D), 0xF9EE => array(0x71D0), 0xF9EF => array(0x7498),
2368
-                    0xF9F0 => array(0x85FA), 0xF9F1 => array(0x96A3), 0xF9F2 => array(0x9C57),
2369
-                    0xF9F3 => array(0x9E9F), 0xF9F4 => array(0x6797), 0xF9F5 => array(0x6DCB),
2370
-                    0xF9F6 => array(0x81E8), 0xF9F7 => array(0x7ACB), 0xF9F8 => array(0x7B20),
2371
-                    0xF9F9 => array(0x7C92), 0xF9FA => array(0x72C0), 0xF9FB => array(0x7099),
2372
-                    0xF9FC => array(0x8B58), 0xF9FD => array(0x4EC0), 0xF9FE => array(0x8336),
2373
-                    0xF9FF => array(0x523A), 0xFA00 => array(0x5207), 0xFA01 => array(0x5EA6),
2374
-                    0xFA02 => array(0x62D3), 0xFA03 => array(0x7CD6), 0xFA04 => array(0x5B85),
2375
-                    0xFA05 => array(0x6D1E), 0xFA06 => array(0x66B4), 0xFA07 => array(0x8F3B),
2376
-                    0xFA08 => array(0x884C), 0xFA09 => array(0x964D), 0xFA0A => array(0x898B),
2377
-                    0xFA0B => array(0x5ED3), 0xFA0C => array(0x5140), 0xFA0D => array(0x55C0),
2378
-                    0xFA10 => array(0x585A), 0xFA12 => array(0x6674), 0xFA15 => array(0x51DE),
2379
-                    0xFA16 => array(0x732A), 0xFA17 => array(0x76CA), 0xFA18 => array(0x793C),
2380
-                    0xFA19 => array(0x795E), 0xFA1A => array(0x7965), 0xFA1B => array(0x798F),
2381
-                    0xFA1C => array(0x9756), 0xFA1D => array(0x7CBE), 0xFA1E => array(0x7FBD),
2382
-                    0xFA20 => array(0x8612), 0xFA22 => array(0x8AF8), 0xFA25 => array(0x9038),
2383
-                    0xFA26 => array(0x90FD), 0xFA2A => array(0x98EF), 0xFA2B => array(0x98FC),
2384
-                    0xFA2C => array(0x9928), 0xFA2D => array(0x9DB4), 0xFA2E => array(0x90DE),
2385
-                    0xFA2F => array(0x96B7), 0xFA30 => array(0x4FAE), 0xFA31 => array(0x50E7),
2386
-                    0xFA32 => array(0x514D), 0xFA33 => array(0x52C9), 0xFA34 => array(0x52E4),
2387
-                    0xFA35 => array(0x5351), 0xFA36 => array(0x559D), 0xFA37 => array(0x5606),
2388
-                    0xFA38 => array(0x5668), 0xFA39 => array(0x5840), 0xFA3A => array(0x58A8),
2389
-                    0xFA3B => array(0x5C64), 0xFA3C => array(0x5C6E), 0xFA3D => array(0x6094),
2390
-                    0xFA3E => array(0x6168), 0xFA3F => array(0x618E), 0xFA40 => array(0x61F2),
2391
-                    0xFA41 => array(0x654F), 0xFA42 => array(0x65E2), 0xFA43 => array(0x6691),
2392
-                    0xFA44 => array(0x6885), 0xFA45 => array(0x6D77), 0xFA46 => array(0x6E1A),
2393
-                    0xFA47 => array(0x6F22), 0xFA48 => array(0x716E), 0xFA49 => array(0x722B),
2394
-                    0xFA4A => array(0x7422), 0xFA4B => array(0x7891), 0xFA4C => array(0x793E),
2395
-                    0xFA4D => array(0x7949), 0xFA4E => array(0x7948), 0xFA4F => array(0x7950),
2396
-                    0xFA50 => array(0x7956), 0xFA51 => array(0x795D), 0xFA52 => array(0x798D),
2397
-                    0xFA53 => array(0x798E), 0xFA54 => array(0x7A40), 0xFA55 => array(0x7A81),
2398
-                    0xFA56 => array(0x7BC0), 0xFA57 => array(0x7DF4), 0xFA58 => array(0x7E09),
2399
-                    0xFA59 => array(0x7E41), 0xFA5A => array(0x7F72), 0xFA5B => array(0x8005),
2400
-                    0xFA5C => array(0x81ED), 0xFA5D => array(0x8279), 0xFA5E => array(0x8279),
2401
-                    0xFA5F => array(0x8457), 0xFA60 => array(0x8910), 0xFA61 => array(0x8996),
2402
-                    0xFA62 => array(0x8B01), 0xFA63 => array(0x8B39), 0xFA64 => array(0x8CD3),
2403
-                    0xFA65 => array(0x8D08), 0xFA66 => array(0x8FB6), 0xFA67 => array(0x9038),
2404
-                    0xFA68 => array(0x96E3), 0xFA69 => array(0x97FF), 0xFA6A => array(0x983B),
2405
-                    0xFA6B => array(0x6075), 0xFA6C => array(0x242EE), 0xFA6D => array(0x8218),
2406
-                    0xFA70 => array(0x4E26), 0xFA71 => array(0x51B5), 0xFA72 => array(0x5168),
2407
-                    0xFA73 => array(0x4F80), 0xFA74 => array(0x5145), 0xFA75 => array(0x5180),
2408
-                    0xFA76 => array(0x52C7), 0xFA77 => array(0x52FA), 0xFA78 => array(0x559D),
2409
-                    0xFA79 => array(0x5555), 0xFA7A => array(0x5599), 0xFA7B => array(0x55E2),
2410
-                    0xFA7C => array(0x585A), 0xFA7D => array(0x58B3), 0xFA7E => array(0x5944),
2411
-                    0xFA7F => array(0x5954), 0xFA80 => array(0x5A62), 0xFA81 => array(0x5B28),
2412
-                    0xFA82 => array(0x5ED2), 0xFA83 => array(0x5ED9), 0xFA84 => array(0x5F69),
2413
-                    0xFA85 => array(0x5FAD), 0xFA86 => array(0x60D8), 0xFA87 => array(0x614E),
2414
-                    0xFA88 => array(0x6108), 0xFA89 => array(0x618E), 0xFA8A => array(0x6160),
2415
-                    0xFA8B => array(0x61F2), 0xFA8C => array(0x6234), 0xFA8D => array(0x63C4),
2416
-                    0xFA8E => array(0x641C), 0xFA8F => array(0x6452), 0xFA90 => array(0x6556),
2417
-                    0xFA91 => array(0x6674), 0xFA92 => array(0x6717), 0xFA93 => array(0x671B),
2418
-                    0xFA94 => array(0x6756), 0xFA95 => array(0x6B79), 0xFA96 => array(0x6BBA),
2419
-                    0xFA97 => array(0x6D41), 0xFA98 => array(0x6EDB), 0xFA99 => array(0x6ECB),
2420
-                    0xFA9A => array(0x6F22), 0xFA9B => array(0x701E), 0xFA9C => array(0x716E),
2421
-                    0xFA9D => array(0x77A7), 0xFA9E => array(0x7235), 0xFA9F => array(0x72AF),
2422
-                    0xFAA0 => array(0x732A), 0xFAA1 => array(0x7471), 0xFAA2 => array(0x7506),
2423
-                    0xFAA3 => array(0x753B), 0xFAA4 => array(0x761D), 0xFAA5 => array(0x761F),
2424
-                    0xFAA6 => array(0x76CA), 0xFAA7 => array(0x76DB), 0xFAA8 => array(0x76F4),
2425
-                    0xFAA9 => array(0x774A), 0xFAAA => array(0x7740), 0xFAAB => array(0x78CC),
2426
-                    0xFAAC => array(0x7AB1), 0xFAAD => array(0x7BC0), 0xFAAE => array(0x7C7B),
2427
-                    0xFAAF => array(0x7D5B), 0xFAB0 => array(0x7DF4), 0xFAB1 => array(0x7F3E),
2428
-                    0xFAB2 => array(0x8005), 0xFAB3 => array(0x8352), 0xFAB4 => array(0x83EF),
2429
-                    0xFAB5 => array(0x8779), 0xFAB6 => array(0x8941), 0xFAB7 => array(0x8986),
2430
-                    0xFAB8 => array(0x8996), 0xFAB9 => array(0x8ABF), 0xFABA => array(0x8AF8),
2431
-                    0xFABB => array(0x8ACB), 0xFABC => array(0x8B01), 0xFABD => array(0x8AFE),
2432
-                    0xFABE => array(0x8AED), 0xFABF => array(0x8B39), 0xFAC0 => array(0x8B8A),
2433
-                    0xFAC1 => array(0x8D08), 0xFAC2 => array(0x8F38), 0xFAC3 => array(0x9072),
2434
-                    0xFAC4 => array(0x9199), 0xFAC5 => array(0x9276), 0xFAC6 => array(0x967C),
2435
-                    0xFAC7 => array(0x96E3), 0xFAC8 => array(0x9756), 0xFAC9 => array(0x97DB),
2436
-                    0xFACA => array(0x97FF), 0xFACB => array(0x980B), 0xFACC => array(0x983B),
2437
-                    0xFACD => array(0x9B12), 0xFACE => array(0x9F9C), 0xFACF => array(0x2284A),
2438
-                    0xFAD0 => array(0x22844), 0xFAD1 => array(0x233D5), 0xFAD2 => array(0x3B9D),
2439
-                    0xFAD3 => array(0x4018), 0xFAD4 => array(0x4039), 0xFAD5 => array(0x25249),
2440
-                    0xFAD6 => array(0x25CD0), 0xFAD7 => array(0x27ED3), 0xFAD8 => array(0x9F43),
2441
-                    0xFAD9 => array(0x9F8E), 0xFB00 => array(0x66, 0x66), 0xFB01 => array(0x66, 0x69),
2442
-                    0xFB02 => array(0x66, 0x6C), 0xFB03 => array(0x66, 0x66, 0x69), 0xFB04 => array(0x66, 0x66, 0x6C),
2443
-                    0xFB05 => array(0x73, 0x74), 0xFB06 => array(0x73, 0x74), 0xFB13 => array(0x574, 0x576),
2444
-                    0xFB14 => array(0x574, 0x565), 0xFB15 => array(0x574, 0x56B), 0xFB16 => array(0x57E, 0x576),
2445
-                    0xFB17 => array(0x574, 0x56D), 0xFB1D => array(0x5D9, 0x5B4), 0xFB1F => array(0x5F2, 0x5B7),
2446
-                    0xFB20 => array(0x5E2), 0xFB21 => array(0x5D0), 0xFB22 => array(0x5D3),
2447
-                    0xFB23 => array(0x5D4), 0xFB24 => array(0x5DB), 0xFB25 => array(0x5DC),
2448
-                    0xFB26 => array(0x5DD), 0xFB27 => array(0x5E8), 0xFB28 => array(0x5EA),
2449
-                    0xFB2A => array(0x5E9, 0x5C1), 0xFB2B => array(0x5E9, 0x5C2), 0xFB2C => array(0x5E9, 0x5BC, 0x5C1),
2450
-                    0xFB2D => array(0x5E9, 0x5BC, 0x5C2), 0xFB2E => array(0x5D0, 0x5B7), 0xFB2F => array(0x5D0, 0x5B8),
2451
-                    0xFB30 => array(0x5D0, 0x5BC), 0xFB31 => array(0x5D1, 0x5BC), 0xFB32 => array(0x5D2, 0x5BC),
2452
-                    0xFB33 => array(0x5D3, 0x5BC), 0xFB34 => array(0x5D4, 0x5BC), 0xFB35 => array(0x5D5, 0x5BC),
2453
-                    0xFB36 => array(0x5D6, 0x5BC), 0xFB38 => array(0x5D8, 0x5BC), 0xFB39 => array(0x5D9, 0x5BC),
2454
-                    0xFB3A => array(0x5DA, 0x5BC), 0xFB3B => array(0x5DB, 0x5BC), 0xFB3C => array(0x5DC, 0x5BC),
2455
-                    0xFB3E => array(0x5DE, 0x5BC), 0xFB40 => array(0x5E0, 0x5BC), 0xFB41 => array(0x5E1, 0x5BC),
2456
-                    0xFB43 => array(0x5E3, 0x5BC), 0xFB44 => array(0x5E4, 0x5BC), 0xFB46 => array(0x5E6, 0x5BC),
2457
-                    0xFB47 => array(0x5E7, 0x5BC), 0xFB48 => array(0x5E8, 0x5BC), 0xFB49 => array(0x5E9, 0x5BC),
2458
-                    0xFB4A => array(0x5EA, 0x5BC), 0xFB4B => array(0x5D5, 0x5B9), 0xFB4C => array(0x5D1, 0x5BF),
2459
-                    0xFB4D => array(0x5DB, 0x5BF), 0xFB4E => array(0x5E4, 0x5BF), 0xFB4F => array(0x5D0, 0x5DC),
2460
-                    0xFB50 => array(0x671), 0xFB51 => array(0x671), 0xFB52 => array(0x67B),
2461
-                    0xFB53 => array(0x67B), 0xFB54 => array(0x67B), 0xFB55 => array(0x67B),
2462
-                    0xFB56 => array(0x67E), 0xFB57 => array(0x67E), 0xFB58 => array(0x67E),
2463
-                    0xFB59 => array(0x67E), 0xFB5A => array(0x680), 0xFB5B => array(0x680),
2464
-                    0xFB5C => array(0x680), 0xFB5D => array(0x680), 0xFB5E => array(0x67A),
2465
-                    0xFB5F => array(0x67A), 0xFB60 => array(0x67A), 0xFB61 => array(0x67A),
2466
-                    0xFB62 => array(0x67F), 0xFB63 => array(0x67F), 0xFB64 => array(0x67F),
2467
-                    0xFB65 => array(0x67F), 0xFB66 => array(0x679), 0xFB67 => array(0x679),
2468
-                    0xFB68 => array(0x679), 0xFB69 => array(0x679), 0xFB6A => array(0x6A4),
2469
-                    0xFB6B => array(0x6A4), 0xFB6C => array(0x6A4), 0xFB6D => array(0x6A4),
2470
-                    0xFB6E => array(0x6A6), 0xFB6F => array(0x6A6), 0xFB70 => array(0x6A6),
2471
-                    0xFB71 => array(0x6A6), 0xFB72 => array(0x684), 0xFB73 => array(0x684),
2472
-                    0xFB74 => array(0x684), 0xFB75 => array(0x684), 0xFB76 => array(0x683),
2473
-                    0xFB77 => array(0x683), 0xFB78 => array(0x683), 0xFB79 => array(0x683),
2474
-                    0xFB7A => array(0x686), 0xFB7B => array(0x686), 0xFB7C => array(0x686),
2475
-                    0xFB7D => array(0x686), 0xFB7E => array(0x687), 0xFB7F => array(0x687),
2476
-                    0xFB80 => array(0x687), 0xFB81 => array(0x687), 0xFB82 => array(0x68D),
2477
-                    0xFB83 => array(0x68D), 0xFB84 => array(0x68C), 0xFB85 => array(0x68C),
2478
-                    0xFB86 => array(0x68E), 0xFB87 => array(0x68E), 0xFB88 => array(0x688),
2479
-                    0xFB89 => array(0x688), 0xFB8A => array(0x698), 0xFB8B => array(0x698),
2480
-                    0xFB8C => array(0x691), 0xFB8D => array(0x691), 0xFB8E => array(0x6A9),
2481
-                    0xFB8F => array(0x6A9), 0xFB90 => array(0x6A9), 0xFB91 => array(0x6A9),
2482
-                    0xFB92 => array(0x6AF), 0xFB93 => array(0x6AF), 0xFB94 => array(0x6AF),
2483
-                    0xFB95 => array(0x6AF), 0xFB96 => array(0x6B3), 0xFB97 => array(0x6B3),
2484
-                    0xFB98 => array(0x6B3), 0xFB99 => array(0x6B3), 0xFB9A => array(0x6B1),
2485
-                    0xFB9B => array(0x6B1), 0xFB9C => array(0x6B1), 0xFB9D => array(0x6B1),
2486
-                    0xFB9E => array(0x6BA), 0xFB9F => array(0x6BA), 0xFBA0 => array(0x6BB),
2487
-                    0xFBA1 => array(0x6BB), 0xFBA2 => array(0x6BB), 0xFBA3 => array(0x6BB),
2488
-                    0xFBA4 => array(0x6C0), 0xFBA5 => array(0x6C0), 0xFBA6 => array(0x6C1),
2489
-                    0xFBA7 => array(0x6C1), 0xFBA8 => array(0x6C1), 0xFBA9 => array(0x6C1),
2490
-                    0xFBAA => array(0x6BE), 0xFBAB => array(0x6BE), 0xFBAC => array(0x6BE),
2491
-                    0xFBAD => array(0x6BE), 0xFBAE => array(0x6D2), 0xFBAF => array(0x6D2),
2492
-                    0xFBB0 => array(0x6D3), 0xFBB1 => array(0x6D3), 0xFBD3 => array(0x6AD),
2493
-                    0xFBD4 => array(0x6AD), 0xFBD5 => array(0x6AD), 0xFBD6 => array(0x6AD),
2494
-                    0xFBD7 => array(0x6C7), 0xFBD8 => array(0x6C7), 0xFBD9 => array(0x6C6),
2495
-                    0xFBDA => array(0x6C6), 0xFBDB => array(0x6C8), 0xFBDC => array(0x6C8),
2496
-                    0xFBDD => array(0x6C7, 0x674), 0xFBDE => array(0x6CB), 0xFBDF => array(0x6CB),
2497
-                    0xFBE0 => array(0x6C5), 0xFBE1 => array(0x6C5), 0xFBE2 => array(0x6C9),
2498
-                    0xFBE3 => array(0x6C9), 0xFBE4 => array(0x6D0), 0xFBE5 => array(0x6D0),
2499
-                    0xFBE6 => array(0x6D0), 0xFBE7 => array(0x6D0), 0xFBE8 => array(0x649),
2500
-                    0xFBE9 => array(0x649), 0xFBEA => array(0x626, 0x627), 0xFBEB => array(0x626, 0x627),
2501
-                    0xFBEC => array(0x626, 0x6D5), 0xFBED => array(0x626, 0x6D5), 0xFBEE => array(0x626, 0x648),
2502
-                    0xFBEF => array(0x626, 0x648), 0xFBF0 => array(0x626, 0x6C7), 0xFBF1 => array(0x626, 0x6C7),
2503
-                    0xFBF2 => array(0x626, 0x6C6), 0xFBF3 => array(0x626, 0x6C6), 0xFBF4 => array(0x626, 0x6C8),
2504
-                    0xFBF5 => array(0x626, 0x6C8), 0xFBF6 => array(0x626, 0x6D0), 0xFBF7 => array(0x626, 0x6D0),
2505
-                    0xFBF8 => array(0x626, 0x6D0), 0xFBF9 => array(0x626, 0x649), 0xFBFA => array(0x626, 0x649),
2506
-                    0xFBFB => array(0x626, 0x649), 0xFBFC => array(0x6CC), 0xFBFD => array(0x6CC),
2507
-                    0xFBFE => array(0x6CC), 0xFBFF => array(0x6CC), 0xFC00 => array(0x626, 0x62C),
2508
-                    0xFC01 => array(0x626, 0x62D), 0xFC02 => array(0x626, 0x645), 0xFC03 => array(0x626, 0x649),
2509
-                    0xFC04 => array(0x626, 0x64A), 0xFC05 => array(0x628, 0x62C), 0xFC06 => array(0x628, 0x62D),
2510
-                    0xFC07 => array(0x628, 0x62E), 0xFC08 => array(0x628, 0x645), 0xFC09 => array(0x628, 0x649),
2511
-                    0xFC0A => array(0x628, 0x64A), 0xFC0B => array(0x62A, 0x62C), 0xFC0C => array(0x62A, 0x62D),
2512
-                    0xFC0D => array(0x62A, 0x62E), 0xFC0E => array(0x62A, 0x645), 0xFC0F => array(0x62A, 0x649),
2513
-                    0xFC10 => array(0x62A, 0x64A), 0xFC11 => array(0x62B, 0x62C), 0xFC12 => array(0x62B, 0x645),
2514
-                    0xFC13 => array(0x62B, 0x649), 0xFC14 => array(0x62B, 0x64A), 0xFC15 => array(0x62C, 0x62D),
2515
-                    0xFC16 => array(0x62C, 0x645), 0xFC17 => array(0x62D, 0x62C), 0xFC18 => array(0x62D, 0x645),
2516
-                    0xFC19 => array(0x62E, 0x62C), 0xFC1A => array(0x62E, 0x62D), 0xFC1B => array(0x62E, 0x645),
2517
-                    0xFC1C => array(0x633, 0x62C), 0xFC1D => array(0x633, 0x62D), 0xFC1E => array(0x633, 0x62E),
2518
-                    0xFC1F => array(0x633, 0x645), 0xFC20 => array(0x635, 0x62D), 0xFC21 => array(0x635, 0x645),
2519
-                    0xFC22 => array(0x636, 0x62C), 0xFC23 => array(0x636, 0x62D), 0xFC24 => array(0x636, 0x62E),
2520
-                    0xFC25 => array(0x636, 0x645), 0xFC26 => array(0x637, 0x62D), 0xFC27 => array(0x637, 0x645),
2521
-                    0xFC28 => array(0x638, 0x645), 0xFC29 => array(0x639, 0x62C), 0xFC2A => array(0x639, 0x645),
2522
-                    0xFC2B => array(0x63A, 0x62C), 0xFC2C => array(0x63A, 0x645), 0xFC2D => array(0x641, 0x62C),
2523
-                    0xFC2E => array(0x641, 0x62D), 0xFC2F => array(0x641, 0x62E), 0xFC30 => array(0x641, 0x645),
2524
-                    0xFC31 => array(0x641, 0x649), 0xFC32 => array(0x641, 0x64A), 0xFC33 => array(0x642, 0x62D),
2525
-                    0xFC34 => array(0x642, 0x645), 0xFC35 => array(0x642, 0x649), 0xFC36 => array(0x642, 0x64A),
2526
-                    0xFC37 => array(0x643, 0x627), 0xFC38 => array(0x643, 0x62C), 0xFC39 => array(0x643, 0x62D),
2527
-                    0xFC3A => array(0x643, 0x62E), 0xFC3B => array(0x643, 0x644), 0xFC3C => array(0x643, 0x645),
2528
-                    0xFC3D => array(0x643, 0x649), 0xFC3E => array(0x643, 0x64A), 0xFC3F => array(0x644, 0x62C),
2529
-                    0xFC40 => array(0x644, 0x62D), 0xFC41 => array(0x644, 0x62E), 0xFC42 => array(0x644, 0x645),
2530
-                    0xFC43 => array(0x644, 0x649), 0xFC44 => array(0x644, 0x64A), 0xFC45 => array(0x645, 0x62C),
2531
-                    0xFC46 => array(0x645, 0x62D), 0xFC47 => array(0x645, 0x62E), 0xFC48 => array(0x645, 0x645),
2532
-                    0xFC49 => array(0x645, 0x649), 0xFC4A => array(0x645, 0x64A), 0xFC4B => array(0x646, 0x62C),
2533
-                    0xFC4C => array(0x646, 0x62D), 0xFC4D => array(0x646, 0x62E), 0xFC4E => array(0x646, 0x645),
2534
-                    0xFC4F => array(0x646, 0x649), 0xFC50 => array(0x646, 0x64A), 0xFC51 => array(0x647, 0x62C),
2535
-                    0xFC52 => array(0x647, 0x645), 0xFC53 => array(0x647, 0x649), 0xFC54 => array(0x647, 0x64A),
2536
-                    0xFC55 => array(0x64A, 0x62C), 0xFC56 => array(0x64A, 0x62D), 0xFC57 => array(0x64A, 0x62E),
2537
-                    0xFC58 => array(0x64A, 0x645), 0xFC59 => array(0x64A, 0x649), 0xFC5A => array(0x64A, 0x64A),
2538
-                    0xFC5B => array(0x630, 0x670), 0xFC5C => array(0x631, 0x670), 0xFC5D => array(0x649, 0x670),
2539
-                    0xFC64 => array(0x626, 0x631), 0xFC65 => array(0x626, 0x632), 0xFC66 => array(0x626, 0x645),
2540
-                    0xFC67 => array(0x626, 0x646), 0xFC68 => array(0x626, 0x649), 0xFC69 => array(0x626, 0x64A),
2541
-                    0xFC6A => array(0x628, 0x631), 0xFC6B => array(0x628, 0x632), 0xFC6C => array(0x628, 0x645),
2542
-                    0xFC6D => array(0x628, 0x646), 0xFC6E => array(0x628, 0x649), 0xFC6F => array(0x628, 0x64A),
2543
-                    0xFC70 => array(0x62A, 0x631), 0xFC71 => array(0x62A, 0x632), 0xFC72 => array(0x62A, 0x645),
2544
-                    0xFC73 => array(0x62A, 0x646), 0xFC74 => array(0x62A, 0x649), 0xFC75 => array(0x62A, 0x64A),
2545
-                    0xFC76 => array(0x62B, 0x631), 0xFC77 => array(0x62B, 0x632), 0xFC78 => array(0x62B, 0x645),
2546
-                    0xFC79 => array(0x62B, 0x646), 0xFC7A => array(0x62B, 0x649), 0xFC7B => array(0x62B, 0x64A),
2547
-                    0xFC7C => array(0x641, 0x649), 0xFC7D => array(0x641, 0x64A), 0xFC7E => array(0x642, 0x649),
2548
-                    0xFC7F => array(0x642, 0x64A), 0xFC80 => array(0x643, 0x627), 0xFC81 => array(0x643, 0x644),
2549
-                    0xFC82 => array(0x643, 0x645), 0xFC83 => array(0x643, 0x649), 0xFC84 => array(0x643, 0x64A),
2550
-                    0xFC85 => array(0x644, 0x645), 0xFC86 => array(0x644, 0x649), 0xFC87 => array(0x644, 0x64A),
2551
-                    0xFC88 => array(0x645, 0x627), 0xFC89 => array(0x645, 0x645), 0xFC8A => array(0x646, 0x631),
2552
-                    0xFC8B => array(0x646, 0x632), 0xFC8C => array(0x646, 0x645), 0xFC8D => array(0x646, 0x646),
2553
-                    0xFC8E => array(0x646, 0x649), 0xFC8F => array(0x646, 0x64A), 0xFC90 => array(0x649, 0x670),
2554
-                    0xFC91 => array(0x64A, 0x631), 0xFC92 => array(0x64A, 0x632), 0xFC93 => array(0x64A, 0x645),
2555
-                    0xFC94 => array(0x64A, 0x646), 0xFC95 => array(0x64A, 0x649), 0xFC96 => array(0x64A, 0x64A),
2556
-                    0xFC97 => array(0x626, 0x62C), 0xFC98 => array(0x626, 0x62D), 0xFC99 => array(0x626, 0x62E),
2557
-                    0xFC9A => array(0x626, 0x645), 0xFC9B => array(0x626, 0x647), 0xFC9C => array(0x628, 0x62C),
2558
-                    0xFC9D => array(0x628, 0x62D), 0xFC9E => array(0x628, 0x62E), 0xFC9F => array(0x628, 0x645),
2559
-                    0xFCA0 => array(0x628, 0x647), 0xFCA1 => array(0x62A, 0x62C), 0xFCA2 => array(0x62A, 0x62D),
2560
-                    0xFCA3 => array(0x62A, 0x62E), 0xFCA4 => array(0x62A, 0x645), 0xFCA5 => array(0x62A, 0x647),
2561
-                    0xFCA6 => array(0x62B, 0x645), 0xFCA7 => array(0x62C, 0x62D), 0xFCA8 => array(0x62C, 0x645),
2562
-                    0xFCA9 => array(0x62D, 0x62C), 0xFCAA => array(0x62D, 0x645), 0xFCAB => array(0x62E, 0x62C),
2563
-                    0xFCAC => array(0x62E, 0x645), 0xFCAD => array(0x633, 0x62C), 0xFCAE => array(0x633, 0x62D),
2564
-                    0xFCAF => array(0x633, 0x62E), 0xFCB0 => array(0x633, 0x645), 0xFCB1 => array(0x635, 0x62D),
2565
-                    0xFCB2 => array(0x635, 0x62E), 0xFCB3 => array(0x635, 0x645), 0xFCB4 => array(0x636, 0x62C),
2566
-                    0xFCB5 => array(0x636, 0x62D), 0xFCB6 => array(0x636, 0x62E), 0xFCB7 => array(0x636, 0x645),
2567
-                    0xFCB8 => array(0x637, 0x62D), 0xFCB9 => array(0x638, 0x645), 0xFCBA => array(0x639, 0x62C),
2568
-                    0xFCBB => array(0x639, 0x645), 0xFCBC => array(0x63A, 0x62C), 0xFCBD => array(0x63A, 0x645),
2569
-                    0xFCBE => array(0x641, 0x62C), 0xFCBF => array(0x641, 0x62D), 0xFCC0 => array(0x641, 0x62E),
2570
-                    0xFCC1 => array(0x641, 0x645), 0xFCC2 => array(0x642, 0x62D), 0xFCC3 => array(0x642, 0x645),
2571
-                    0xFCC4 => array(0x643, 0x62C), 0xFCC5 => array(0x643, 0x62D), 0xFCC6 => array(0x643, 0x62E),
2572
-                    0xFCC7 => array(0x643, 0x644), 0xFCC8 => array(0x643, 0x645), 0xFCC9 => array(0x644, 0x62C),
2573
-                    0xFCCA => array(0x644, 0x62D), 0xFCCB => array(0x644, 0x62E), 0xFCCC => array(0x644, 0x645),
2574
-                    0xFCCD => array(0x644, 0x647), 0xFCCE => array(0x645, 0x62C), 0xFCCF => array(0x645, 0x62D),
2575
-                    0xFCD0 => array(0x645, 0x62E), 0xFCD1 => array(0x645, 0x645), 0xFCD2 => array(0x646, 0x62C),
2576
-                    0xFCD3 => array(0x646, 0x62D), 0xFCD4 => array(0x646, 0x62E), 0xFCD5 => array(0x646, 0x645),
2577
-                    0xFCD6 => array(0x646, 0x647), 0xFCD7 => array(0x647, 0x62C), 0xFCD8 => array(0x647, 0x645),
2578
-                    0xFCD9 => array(0x647, 0x670), 0xFCDA => array(0x64A, 0x62C), 0xFCDB => array(0x64A, 0x62D),
2579
-                    0xFCDC => array(0x64A, 0x62E), 0xFCDD => array(0x64A, 0x645), 0xFCDE => array(0x64A, 0x647),
2580
-                    0xFCDF => array(0x626, 0x645), 0xFCE0 => array(0x626, 0x647), 0xFCE1 => array(0x628, 0x645),
2581
-                    0xFCE2 => array(0x628, 0x647), 0xFCE3 => array(0x62A, 0x645), 0xFCE4 => array(0x62A, 0x647),
2582
-                    0xFCE5 => array(0x62B, 0x645), 0xFCE6 => array(0x62B, 0x647), 0xFCE7 => array(0x633, 0x645),
2583
-                    0xFCE8 => array(0x633, 0x647), 0xFCE9 => array(0x634, 0x645), 0xFCEA => array(0x634, 0x647),
2584
-                    0xFCEB => array(0x643, 0x644), 0xFCEC => array(0x643, 0x645), 0xFCED => array(0x644, 0x645),
2585
-                    0xFCEE => array(0x646, 0x645), 0xFCEF => array(0x646, 0x647), 0xFCF0 => array(0x64A, 0x645),
2586
-                    0xFCF1 => array(0x64A, 0x647), 0xFCF2 => array(0x640, 0x64E, 0x651), 0xFCF3 => array(0x640, 0x64F, 0x651),
2587
-                    0xFCF4 => array(0x640, 0x650, 0x651), 0xFCF5 => array(0x637, 0x649), 0xFCF6 => array(0x637, 0x64A),
2588
-                    0xFCF7 => array(0x639, 0x649), 0xFCF8 => array(0x639, 0x64A), 0xFCF9 => array(0x63A, 0x649),
2589
-                    0xFCFA => array(0x63A, 0x64A), 0xFCFB => array(0x633, 0x649), 0xFCFC => array(0x633, 0x64A),
2590
-                    0xFCFD => array(0x634, 0x649), 0xFCFE => array(0x634, 0x64A), 0xFCFF => array(0x62D, 0x649),
2591
-                    0xFD00 => array(0x62D, 0x64A), 0xFD01 => array(0x62C, 0x649), 0xFD02 => array(0x62C, 0x64A),
2592
-                    0xFD03 => array(0x62E, 0x649), 0xFD04 => array(0x62E, 0x64A), 0xFD05 => array(0x635, 0x649),
2593
-                    0xFD06 => array(0x635, 0x64A), 0xFD07 => array(0x636, 0x649), 0xFD08 => array(0x636, 0x64A),
2594
-                    0xFD09 => array(0x634, 0x62C), 0xFD0A => array(0x634, 0x62D), 0xFD0B => array(0x634, 0x62E),
2595
-                    0xFD0C => array(0x634, 0x645), 0xFD0D => array(0x634, 0x631), 0xFD0E => array(0x633, 0x631),
2596
-                    0xFD0F => array(0x635, 0x631), 0xFD10 => array(0x636, 0x631), 0xFD11 => array(0x637, 0x649),
2597
-                    0xFD12 => array(0x637, 0x64A), 0xFD13 => array(0x639, 0x649), 0xFD14 => array(0x639, 0x64A),
2598
-                    0xFD15 => array(0x63A, 0x649), 0xFD16 => array(0x63A, 0x64A), 0xFD17 => array(0x633, 0x649),
2599
-                    0xFD18 => array(0x633, 0x64A), 0xFD19 => array(0x634, 0x649), 0xFD1A => array(0x634, 0x64A),
2600
-                    0xFD1B => array(0x62D, 0x649), 0xFD1C => array(0x62D, 0x64A), 0xFD1D => array(0x62C, 0x649),
2601
-                    0xFD1E => array(0x62C, 0x64A), 0xFD1F => array(0x62E, 0x649), 0xFD20 => array(0x62E, 0x64A),
2602
-                    0xFD21 => array(0x635, 0x649), 0xFD22 => array(0x635, 0x64A), 0xFD23 => array(0x636, 0x649),
2603
-                    0xFD24 => array(0x636, 0x64A), 0xFD25 => array(0x634, 0x62C), 0xFD26 => array(0x634, 0x62D),
2604
-                    0xFD27 => array(0x634, 0x62E), 0xFD28 => array(0x634, 0x645), 0xFD29 => array(0x634, 0x631),
2605
-                    0xFD2A => array(0x633, 0x631), 0xFD2B => array(0x635, 0x631), 0xFD2C => array(0x636, 0x631),
2606
-                    0xFD2D => array(0x634, 0x62C), 0xFD2E => array(0x634, 0x62D), 0xFD2F => array(0x634, 0x62E),
2607
-                    0xFD30 => array(0x634, 0x645), 0xFD31 => array(0x633, 0x647), 0xFD32 => array(0x634, 0x647),
2608
-                    0xFD33 => array(0x637, 0x645), 0xFD34 => array(0x633, 0x62C), 0xFD35 => array(0x633, 0x62D),
2609
-                    0xFD36 => array(0x633, 0x62E), 0xFD37 => array(0x634, 0x62C), 0xFD38 => array(0x634, 0x62D),
2610
-                    0xFD39 => array(0x634, 0x62E), 0xFD3A => array(0x637, 0x645), 0xFD3B => array(0x638, 0x645),
2611
-                    0xFD3C => array(0x627, 0x64B), 0xFD3D => array(0x627, 0x64B), 0xFD50 => array(0x62A, 0x62C, 0x645),
2612
-                    0xFD51 => array(0x62A, 0x62D, 0x62C), 0xFD52 => array(0x62A, 0x62D, 0x62C), 0xFD53 => array(0x62A, 0x62D, 0x645),
2613
-                    0xFD54 => array(0x62A, 0x62E, 0x645), 0xFD55 => array(0x62A, 0x645, 0x62C), 0xFD56 => array(0x62A, 0x645, 0x62D),
2614
-                    0xFD57 => array(0x62A, 0x645, 0x62E), 0xFD58 => array(0x62C, 0x645, 0x62D), 0xFD59 => array(0x62C, 0x645, 0x62D),
2615
-                    0xFD5A => array(0x62D, 0x645, 0x64A), 0xFD5B => array(0x62D, 0x645, 0x649), 0xFD5C => array(0x633, 0x62D, 0x62C),
2616
-                    0xFD5D => array(0x633, 0x62C, 0x62D), 0xFD5E => array(0x633, 0x62C, 0x649), 0xFD5F => array(0x633, 0x645, 0x62D),
2617
-                    0xFD60 => array(0x633, 0x645, 0x62D), 0xFD61 => array(0x633, 0x645, 0x62C), 0xFD62 => array(0x633, 0x645, 0x645),
2618
-                    0xFD63 => array(0x633, 0x645, 0x645), 0xFD64 => array(0x635, 0x62D, 0x62D), 0xFD65 => array(0x635, 0x62D, 0x62D),
2619
-                    0xFD66 => array(0x635, 0x645, 0x645), 0xFD67 => array(0x634, 0x62D, 0x645), 0xFD68 => array(0x634, 0x62D, 0x645),
2620
-                    0xFD69 => array(0x634, 0x62C, 0x64A), 0xFD6A => array(0x634, 0x645, 0x62E), 0xFD6B => array(0x634, 0x645, 0x62E),
2621
-                    0xFD6C => array(0x634, 0x645, 0x645), 0xFD6D => array(0x634, 0x645, 0x645), 0xFD6E => array(0x636, 0x62D, 0x649),
2622
-                    0xFD6F => array(0x636, 0x62E, 0x645), 0xFD70 => array(0x636, 0x62E, 0x645), 0xFD71 => array(0x637, 0x645, 0x62D),
2623
-                    0xFD72 => array(0x637, 0x645, 0x62D), 0xFD73 => array(0x637, 0x645, 0x645), 0xFD74 => array(0x637, 0x645, 0x64A),
2624
-                    0xFD75 => array(0x639, 0x62C, 0x645), 0xFD76 => array(0x639, 0x645, 0x645), 0xFD77 => array(0x639, 0x645, 0x645),
2625
-                    0xFD78 => array(0x639, 0x645, 0x649), 0xFD79 => array(0x63A, 0x645, 0x645), 0xFD7A => array(0x63A, 0x645, 0x64A),
2626
-                    0xFD7B => array(0x63A, 0x645, 0x649), 0xFD7C => array(0x641, 0x62E, 0x645), 0xFD7D => array(0x641, 0x62E, 0x645),
2627
-                    0xFD7E => array(0x642, 0x645, 0x62D), 0xFD7F => array(0x642, 0x645, 0x645), 0xFD80 => array(0x644, 0x62D, 0x645),
2628
-                    0xFD81 => array(0x644, 0x62D, 0x64A), 0xFD82 => array(0x644, 0x62D, 0x649), 0xFD83 => array(0x644, 0x62C, 0x62C),
2629
-                    0xFD84 => array(0x644, 0x62C, 0x62C), 0xFD85 => array(0x644, 0x62E, 0x645), 0xFD86 => array(0x644, 0x62E, 0x645),
2630
-                    0xFD87 => array(0x644, 0x645, 0x62D), 0xFD88 => array(0x644, 0x645, 0x62D), 0xFD89 => array(0x645, 0x62D, 0x62C),
2631
-                    0xFD8A => array(0x645, 0x62D, 0x645), 0xFD8B => array(0x645, 0x62D, 0x64A), 0xFD8C => array(0x645, 0x62C, 0x62D),
2632
-                    0xFD8D => array(0x645, 0x62C, 0x645), 0xFD8E => array(0x645, 0x62E, 0x62C), 0xFD8F => array(0x645, 0x62E, 0x645),
2633
-                    0xFD92 => array(0x645, 0x62C, 0x62E), 0xFD93 => array(0x647, 0x645, 0x62C), 0xFD94 => array(0x647, 0x645, 0x645),
2634
-                    0xFD95 => array(0x646, 0x62D, 0x645), 0xFD96 => array(0x646, 0x62D, 0x649), 0xFD97 => array(0x646, 0x62C, 0x645),
2635
-                    0xFD98 => array(0x646, 0x62C, 0x645), 0xFD99 => array(0x646, 0x62C, 0x649), 0xFD9A => array(0x646, 0x645, 0x64A),
2636
-                    0xFD9B => array(0x646, 0x645, 0x649), 0xFD9C => array(0x64A, 0x645, 0x645), 0xFD9D => array(0x64A, 0x645, 0x645),
2637
-                    0xFD9E => array(0x628, 0x62E, 0x64A), 0xFD9F => array(0x62A, 0x62C, 0x64A), 0xFDA0 => array(0x62A, 0x62C, 0x649),
2638
-                    0xFDA1 => array(0x62A, 0x62E, 0x64A), 0xFDA2 => array(0x62A, 0x62E, 0x649), 0xFDA3 => array(0x62A, 0x645, 0x64A),
2639
-                    0xFDA4 => array(0x62A, 0x645, 0x649), 0xFDA5 => array(0x62C, 0x645, 0x64A), 0xFDA6 => array(0x62C, 0x62D, 0x649),
2640
-                    0xFDA7 => array(0x62C, 0x645, 0x649), 0xFDA8 => array(0x633, 0x62E, 0x649), 0xFDA9 => array(0x635, 0x62D, 0x64A),
2641
-                    0xFDAA => array(0x634, 0x62D, 0x64A), 0xFDAB => array(0x636, 0x62D, 0x64A), 0xFDAC => array(0x644, 0x62C, 0x64A),
2642
-                    0xFDAD => array(0x644, 0x645, 0x64A), 0xFDAE => array(0x64A, 0x62D, 0x64A), 0xFDAF => array(0x64A, 0x62C, 0x64A),
2643
-                    0xFDB0 => array(0x64A, 0x645, 0x64A), 0xFDB1 => array(0x645, 0x645, 0x64A), 0xFDB2 => array(0x642, 0x645, 0x64A),
2644
-                    0xFDB3 => array(0x646, 0x62D, 0x64A), 0xFDB4 => array(0x642, 0x645, 0x62D), 0xFDB5 => array(0x644, 0x62D, 0x645),
2645
-                    0xFDB6 => array(0x639, 0x645, 0x64A), 0xFDB7 => array(0x643, 0x645, 0x64A), 0xFDB8 => array(0x646, 0x62C, 0x62D),
2646
-                    0xFDB9 => array(0x645, 0x62E, 0x64A), 0xFDBA => array(0x644, 0x62C, 0x645), 0xFDBB => array(0x643, 0x645, 0x645),
2647
-                    0xFDBC => array(0x644, 0x62C, 0x645), 0xFDBD => array(0x646, 0x62C, 0x62D), 0xFDBE => array(0x62C, 0x62D, 0x64A),
2648
-                    0xFDBF => array(0x62D, 0x62C, 0x64A), 0xFDC0 => array(0x645, 0x62C, 0x64A), 0xFDC1 => array(0x641, 0x645, 0x64A),
2649
-                    0xFDC2 => array(0x628, 0x62D, 0x64A), 0xFDC3 => array(0x643, 0x645, 0x645), 0xFDC4 => array(0x639, 0x62C, 0x645),
2650
-                    0xFDC5 => array(0x635, 0x645, 0x645), 0xFDC6 => array(0x633, 0x62E, 0x64A), 0xFDC7 => array(0x646, 0x62C, 0x64A),
2651
-                    0xFDF0 => array(0x635, 0x644, 0x6D2), 0xFDF1 => array(0x642, 0x644, 0x6D2), 0xFDF2 => array(0x627, 0x644, 0x644, 0x647),
2652
-                    0xFDF3 => array(0x627, 0x643, 0x628, 0x631), 0xFDF4 => array(0x645, 0x62D, 0x645, 0x62F), 0xFDF5 => array(0x635, 0x644, 0x639, 0x645),
2653
-                    0xFDF6 => array(0x631, 0x633, 0x648, 0x644), 0xFDF7 => array(0x639, 0x644, 0x64A, 0x647), 0xFDF8 => array(0x648, 0x633, 0x644, 0x645),
2654
-                    0xFDF9 => array(0x635, 0x644, 0x649), 0xFDFC => array(0x631, 0x6CC, 0x627, 0x644), 0xFE11 => array(0x3001),
2655
-                    0xFE17 => array(0x3016), 0xFE18 => array(0x3017), 0xFE31 => array(0x2014),
2656
-                    0xFE32 => array(0x2013), 0xFE39 => array(0x3014), 0xFE3A => array(0x3015),
2657
-                    0xFE3B => array(0x3010), 0xFE3C => array(0x3011), 0xFE3D => array(0x300A),
2658
-                    0xFE3E => array(0x300B), 0xFE3F => array(0x3008), 0xFE40 => array(0x3009),
2659
-                    0xFE41 => array(0x300C), 0xFE42 => array(0x300D), 0xFE43 => array(0x300E),
2660
-                    0xFE44 => array(0x300F), 0xFE51 => array(0x3001), 0xFE58 => array(0x2014),
2661
-                    0xFE5D => array(0x3014), 0xFE5E => array(0x3015), 0xFE63 => array(0x2D),
2662
-                    0xFE71 => array(0x640, 0x64B), 0xFE77 => array(0x640, 0x64E), 0xFE79 => array(0x640, 0x64F),
2663
-                    0xFE7B => array(0x640, 0x650), 0xFE7D => array(0x640, 0x651), 0xFE7F => array(0x640, 0x652),
2664
-                    0xFE80 => array(0x621), 0xFE81 => array(0x622), 0xFE82 => array(0x622),
2665
-                    0xFE83 => array(0x623), 0xFE84 => array(0x623), 0xFE85 => array(0x624),
2666
-                    0xFE86 => array(0x624), 0xFE87 => array(0x625), 0xFE88 => array(0x625),
2667
-                    0xFE89 => array(0x626), 0xFE8A => array(0x626), 0xFE8B => array(0x626),
2668
-                    0xFE8C => array(0x626), 0xFE8D => array(0x627), 0xFE8E => array(0x627),
2669
-                    0xFE8F => array(0x628), 0xFE90 => array(0x628), 0xFE91 => array(0x628),
2670
-                    0xFE92 => array(0x628), 0xFE93 => array(0x629), 0xFE94 => array(0x629),
2671
-                    0xFE95 => array(0x62A), 0xFE96 => array(0x62A), 0xFE97 => array(0x62A),
2672
-                    0xFE98 => array(0x62A), 0xFE99 => array(0x62B), 0xFE9A => array(0x62B),
2673
-                    0xFE9B => array(0x62B), 0xFE9C => array(0x62B), 0xFE9D => array(0x62C),
2674
-                    0xFE9E => array(0x62C), 0xFE9F => array(0x62C), 0xFEA0 => array(0x62C),
2675
-                    0xFEA1 => array(0x62D), 0xFEA2 => array(0x62D), 0xFEA3 => array(0x62D),
2676
-                    0xFEA4 => array(0x62D), 0xFEA5 => array(0x62E), 0xFEA6 => array(0x62E),
2677
-                    0xFEA7 => array(0x62E), 0xFEA8 => array(0x62E), 0xFEA9 => array(0x62F),
2678
-                    0xFEAA => array(0x62F), 0xFEAB => array(0x630), 0xFEAC => array(0x630),
2679
-                    0xFEAD => array(0x631), 0xFEAE => array(0x631), 0xFEAF => array(0x632),
2680
-                    0xFEB0 => array(0x632), 0xFEB1 => array(0x633), 0xFEB2 => array(0x633),
2681
-                    0xFEB3 => array(0x633), 0xFEB4 => array(0x633), 0xFEB5 => array(0x634),
2682
-                    0xFEB6 => array(0x634), 0xFEB7 => array(0x634), 0xFEB8 => array(0x634),
2683
-                    0xFEB9 => array(0x635), 0xFEBA => array(0x635), 0xFEBB => array(0x635),
2684
-                    0xFEBC => array(0x635), 0xFEBD => array(0x636), 0xFEBE => array(0x636),
2685
-                    0xFEBF => array(0x636), 0xFEC0 => array(0x636), 0xFEC1 => array(0x637),
2686
-                    0xFEC2 => array(0x637), 0xFEC3 => array(0x637), 0xFEC4 => array(0x637),
2687
-                    0xFEC5 => array(0x638), 0xFEC6 => array(0x638), 0xFEC7 => array(0x638),
2688
-                    0xFEC8 => array(0x638), 0xFEC9 => array(0x639), 0xFECA => array(0x639),
2689
-                    0xFECB => array(0x639), 0xFECC => array(0x639), 0xFECD => array(0x63A),
2690
-                    0xFECE => array(0x63A), 0xFECF => array(0x63A), 0xFED0 => array(0x63A),
2691
-                    0xFED1 => array(0x641), 0xFED2 => array(0x641), 0xFED3 => array(0x641),
2692
-                    0xFED4 => array(0x641), 0xFED5 => array(0x642), 0xFED6 => array(0x642),
2693
-                    0xFED7 => array(0x642), 0xFED8 => array(0x642), 0xFED9 => array(0x643),
2694
-                    0xFEDA => array(0x643), 0xFEDB => array(0x643), 0xFEDC => array(0x643),
2695
-                    0xFEDD => array(0x644), 0xFEDE => array(0x644), 0xFEDF => array(0x644),
2696
-                    0xFEE0 => array(0x644), 0xFEE1 => array(0x645), 0xFEE2 => array(0x645),
2697
-                    0xFEE3 => array(0x645), 0xFEE4 => array(0x645), 0xFEE5 => array(0x646),
2698
-                    0xFEE6 => array(0x646), 0xFEE7 => array(0x646), 0xFEE8 => array(0x646),
2699
-                    0xFEE9 => array(0x647), 0xFEEA => array(0x647), 0xFEEB => array(0x647),
2700
-                    0xFEEC => array(0x647), 0xFEED => array(0x648), 0xFEEE => array(0x648),
2701
-                    0xFEEF => array(0x649), 0xFEF0 => array(0x649), 0xFEF1 => array(0x64A),
2702
-                    0xFEF2 => array(0x64A), 0xFEF3 => array(0x64A), 0xFEF4 => array(0x64A),
2703
-                    0xFEF5 => array(0x644, 0x622), 0xFEF6 => array(0x644, 0x622), 0xFEF7 => array(0x644, 0x623),
2704
-                    0xFEF8 => array(0x644, 0x623), 0xFEF9 => array(0x644, 0x625), 0xFEFA => array(0x644, 0x625),
2705
-                    0xFEFB => array(0x644, 0x627), 0xFEFC => array(0x644, 0x627), 0xFF0D => array(0x2D),
2706
-                    0xFF0E => array(0x2E), 0xFF10 => array(0x30), 0xFF11 => array(0x31),
2707
-                    0xFF12 => array(0x32), 0xFF13 => array(0x33), 0xFF14 => array(0x34),
2708
-                    0xFF15 => array(0x35), 0xFF16 => array(0x36), 0xFF17 => array(0x37),
2709
-                    0xFF18 => array(0x38), 0xFF19 => array(0x39), 0xFF21 => array(0x61),
2710
-                    0xFF22 => array(0x62), 0xFF23 => array(0x63), 0xFF24 => array(0x64),
2711
-                    0xFF25 => array(0x65), 0xFF26 => array(0x66), 0xFF27 => array(0x67),
2712
-                    0xFF28 => array(0x68), 0xFF29 => array(0x69), 0xFF2A => array(0x6A),
2713
-                    0xFF2B => array(0x6B), 0xFF2C => array(0x6C), 0xFF2D => array(0x6D),
2714
-                    0xFF2E => array(0x6E), 0xFF2F => array(0x6F), 0xFF30 => array(0x70),
2715
-                    0xFF31 => array(0x71), 0xFF32 => array(0x72), 0xFF33 => array(0x73),
2716
-                    0xFF34 => array(0x74), 0xFF35 => array(0x75), 0xFF36 => array(0x76),
2717
-                    0xFF37 => array(0x77), 0xFF38 => array(0x78), 0xFF39 => array(0x79),
2718
-                    0xFF3A => array(0x7A), 0xFF41 => array(0x61), 0xFF42 => array(0x62),
2719
-                    0xFF43 => array(0x63), 0xFF44 => array(0x64), 0xFF45 => array(0x65),
2720
-                    0xFF46 => array(0x66), 0xFF47 => array(0x67), 0xFF48 => array(0x68),
2721
-                    0xFF49 => array(0x69), 0xFF4A => array(0x6A), 0xFF4B => array(0x6B),
2722
-                    0xFF4C => array(0x6C), 0xFF4D => array(0x6D), 0xFF4E => array(0x6E),
2723
-                    0xFF4F => array(0x6F), 0xFF50 => array(0x70), 0xFF51 => array(0x71),
2724
-                    0xFF52 => array(0x72), 0xFF53 => array(0x73), 0xFF54 => array(0x74),
2725
-                    0xFF55 => array(0x75), 0xFF56 => array(0x76), 0xFF57 => array(0x77),
2726
-                    0xFF58 => array(0x78), 0xFF59 => array(0x79), 0xFF5A => array(0x7A),
2727
-                    0xFF5F => array(0x2985), 0xFF60 => array(0x2986), 0xFF61 => array(0x2E),
2728
-                    0xFF62 => array(0x300C), 0xFF63 => array(0x300D), 0xFF64 => array(0x3001),
2729
-                    0xFF65 => array(0x30FB), 0xFF66 => array(0x30F2), 0xFF67 => array(0x30A1),
2730
-                    0xFF68 => array(0x30A3), 0xFF69 => array(0x30A5), 0xFF6A => array(0x30A7),
2731
-                    0xFF6B => array(0x30A9), 0xFF6C => array(0x30E3), 0xFF6D => array(0x30E5),
2732
-                    0xFF6E => array(0x30E7), 0xFF6F => array(0x30C3), 0xFF70 => array(0x30FC),
2733
-                    0xFF71 => array(0x30A2), 0xFF72 => array(0x30A4), 0xFF73 => array(0x30A6),
2734
-                    0xFF74 => array(0x30A8), 0xFF75 => array(0x30AA), 0xFF76 => array(0x30AB),
2735
-                    0xFF77 => array(0x30AD), 0xFF78 => array(0x30AF), 0xFF79 => array(0x30B1),
2736
-                    0xFF7A => array(0x30B3), 0xFF7B => array(0x30B5), 0xFF7C => array(0x30B7),
2737
-                    0xFF7D => array(0x30B9), 0xFF7E => array(0x30BB), 0xFF7F => array(0x30BD),
2738
-                    0xFF80 => array(0x30BF), 0xFF81 => array(0x30C1), 0xFF82 => array(0x30C4),
2739
-                    0xFF83 => array(0x30C6), 0xFF84 => array(0x30C8), 0xFF85 => array(0x30CA),
2740
-                    0xFF86 => array(0x30CB), 0xFF87 => array(0x30CC), 0xFF88 => array(0x30CD),
2741
-                    0xFF89 => array(0x30CE), 0xFF8A => array(0x30CF), 0xFF8B => array(0x30D2),
2742
-                    0xFF8C => array(0x30D5), 0xFF8D => array(0x30D8), 0xFF8E => array(0x30DB),
2743
-                    0xFF8F => array(0x30DE), 0xFF90 => array(0x30DF), 0xFF91 => array(0x30E0),
2744
-                    0xFF92 => array(0x30E1), 0xFF93 => array(0x30E2), 0xFF94 => array(0x30E4),
2745
-                    0xFF95 => array(0x30E6), 0xFF96 => array(0x30E8), 0xFF97 => array(0x30E9),
2746
-                    0xFF98 => array(0x30EA), 0xFF99 => array(0x30EB), 0xFF9A => array(0x30EC),
2747
-                    0xFF9B => array(0x30ED), 0xFF9C => array(0x30EF), 0xFF9D => array(0x30F3),
2748
-                    0xFF9E => array(0x3099), 0xFF9F => array(0x309A), 0xFFA1 => array(0x1100),
2749
-                    0xFFA2 => array(0x1101), 0xFFA3 => array(0x11AA), 0xFFA4 => array(0x1102),
2750
-                    0xFFA5 => array(0x11AC), 0xFFA6 => array(0x11AD), 0xFFA7 => array(0x1103),
2751
-                    0xFFA8 => array(0x1104), 0xFFA9 => array(0x1105), 0xFFAA => array(0x11B0),
2752
-                    0xFFAB => array(0x11B1), 0xFFAC => array(0x11B2), 0xFFAD => array(0x11B3),
2753
-                    0xFFAE => array(0x11B4), 0xFFAF => array(0x11B5), 0xFFB0 => array(0x111A),
2754
-                    0xFFB1 => array(0x1106), 0xFFB2 => array(0x1107), 0xFFB3 => array(0x1108),
2755
-                    0xFFB4 => array(0x1121), 0xFFB5 => array(0x1109), 0xFFB6 => array(0x110A),
2756
-                    0xFFB7 => array(0x110B), 0xFFB8 => array(0x110C), 0xFFB9 => array(0x110D),
2757
-                    0xFFBA => array(0x110E), 0xFFBB => array(0x110F), 0xFFBC => array(0x1110),
2758
-                    0xFFBD => array(0x1111), 0xFFBE => array(0x1112), 0xFFC2 => array(0x1161),
2759
-                    0xFFC3 => array(0x1162), 0xFFC4 => array(0x1163), 0xFFC5 => array(0x1164),
2760
-                    0xFFC6 => array(0x1165), 0xFFC7 => array(0x1166), 0xFFCA => array(0x1167),
2761
-                    0xFFCB => array(0x1168), 0xFFCC => array(0x1169), 0xFFCD => array(0x116A),
2762
-                    0xFFCE => array(0x116B), 0xFFCF => array(0x116C), 0xFFD2 => array(0x116D),
2763
-                    0xFFD3 => array(0x116E), 0xFFD4 => array(0x116F), 0xFFD5 => array(0x1170),
2764
-                    0xFFD6 => array(0x1171), 0xFFD7 => array(0x1172), 0xFFDA => array(0x1173),
2765
-                    0xFFDB => array(0x1174), 0xFFDC => array(0x1175), 0xFFE0 => array(0xA2),
2766
-                    0xFFE1 => array(0xA3), 0xFFE2 => array(0xAC), 0xFFE4 => array(0xA6),
2767
-                    0xFFE5 => array(0xA5), 0xFFE6 => array(0x20A9), 0xFFE8 => array(0x2502),
2768
-                    0xFFE9 => array(0x2190), 0xFFEA => array(0x2191), 0xFFEB => array(0x2192),
2769
-                    0xFFEC => array(0x2193), 0xFFED => array(0x25A0), 0xFFEE => array(0x25CB),
2770
-                    0x10400 => array(0x10428), 0x10401 => array(0x10429), 0x10402 => array(0x1042A),
2771
-                    0x10403 => array(0x1042B), 0x10404 => array(0x1042C), 0x10405 => array(0x1042D),
2772
-                    0x10406 => array(0x1042E), 0x10407 => array(0x1042F), 0x10408 => array(0x10430),
2773
-                    0x10409 => array(0x10431), 0x1040A => array(0x10432), 0x1040B => array(0x10433),
2774
-                    0x1040C => array(0x10434), 0x1040D => array(0x10435), 0x1040E => array(0x10436),
2775
-                    0x1040F => array(0x10437), 0x10410 => array(0x10438), 0x10411 => array(0x10439),
2776
-                    0x10412 => array(0x1043A), 0x10413 => array(0x1043B), 0x10414 => array(0x1043C),
2777
-                    0x10415 => array(0x1043D), 0x10416 => array(0x1043E), 0x10417 => array(0x1043F),
2778
-                    0x10418 => array(0x10440), 0x10419 => array(0x10441), 0x1041A => array(0x10442),
2779
-                    0x1041B => array(0x10443), 0x1041C => array(0x10444), 0x1041D => array(0x10445),
2780
-                    0x1041E => array(0x10446), 0x1041F => array(0x10447), 0x10420 => array(0x10448),
2781
-                    0x10421 => array(0x10449), 0x10422 => array(0x1044A), 0x10423 => array(0x1044B),
2782
-                    0x10424 => array(0x1044C), 0x10425 => array(0x1044D), 0x10426 => array(0x1044E),
2783
-                    0x10427 => array(0x1044F), 0x118A0 => array(0x118C0), 0x118A1 => array(0x118C1),
2784
-                    0x118A2 => array(0x118C2), 0x118A3 => array(0x118C3), 0x118A4 => array(0x118C4),
2785
-                    0x118A5 => array(0x118C5), 0x118A6 => array(0x118C6), 0x118A7 => array(0x118C7),
2786
-                    0x118A8 => array(0x118C8), 0x118A9 => array(0x118C9), 0x118AA => array(0x118CA),
2787
-                    0x118AB => array(0x118CB), 0x118AC => array(0x118CC), 0x118AD => array(0x118CD),
2788
-                    0x118AE => array(0x118CE), 0x118AF => array(0x118CF), 0x118B0 => array(0x118D0),
2789
-                    0x118B1 => array(0x118D1), 0x118B2 => array(0x118D2), 0x118B3 => array(0x118D3),
2790
-                    0x118B4 => array(0x118D4), 0x118B5 => array(0x118D5), 0x118B6 => array(0x118D6),
2791
-                    0x118B7 => array(0x118D7), 0x118B8 => array(0x118D8), 0x118B9 => array(0x118D9),
2792
-                    0x118BA => array(0x118DA), 0x118BB => array(0x118DB), 0x118BC => array(0x118DC),
2793
-                    0x118BD => array(0x118DD), 0x118BE => array(0x118DE), 0x118BF => array(0x118DF),
2794
-                    0x1D15E => array(0x1D157, 0x1D165), 0x1D15F => array(0x1D158, 0x1D165), 0x1D160 => array(0x1D158, 0x1D165, 0x1D16E),
2795
-                    0x1D161 => array(0x1D158, 0x1D165, 0x1D16F), 0x1D162 => array(0x1D158, 0x1D165, 0x1D170), 0x1D163 => array(0x1D158, 0x1D165, 0x1D171),
2796
-                    0x1D164 => array(0x1D158, 0x1D165, 0x1D172), 0x1D1BB => array(0x1D1B9, 0x1D165), 0x1D1BC => array(0x1D1BA, 0x1D165),
2797
-                    0x1D1BD => array(0x1D1B9, 0x1D165, 0x1D16E), 0x1D1BE => array(0x1D1BA, 0x1D165, 0x1D16E), 0x1D1BF => array(0x1D1B9, 0x1D165, 0x1D16F),
2798
-                    0x1D1C0 => array(0x1D1BA, 0x1D165, 0x1D16F), 0x1D400 => array(0x61), 0x1D401 => array(0x62),
2799
-                    0x1D402 => array(0x63), 0x1D403 => array(0x64), 0x1D404 => array(0x65),
2800
-                    0x1D405 => array(0x66), 0x1D406 => array(0x67), 0x1D407 => array(0x68),
2801
-                    0x1D408 => array(0x69), 0x1D409 => array(0x6A), 0x1D40A => array(0x6B),
2802
-                    0x1D40B => array(0x6C), 0x1D40C => array(0x6D), 0x1D40D => array(0x6E),
2803
-                    0x1D40E => array(0x6F), 0x1D40F => array(0x70), 0x1D410 => array(0x71),
2804
-                    0x1D411 => array(0x72), 0x1D412 => array(0x73), 0x1D413 => array(0x74),
2805
-                    0x1D414 => array(0x75), 0x1D415 => array(0x76), 0x1D416 => array(0x77),
2806
-                    0x1D417 => array(0x78), 0x1D418 => array(0x79), 0x1D419 => array(0x7A),
2807
-                    0x1D41A => array(0x61), 0x1D41B => array(0x62), 0x1D41C => array(0x63),
2808
-                    0x1D41D => array(0x64), 0x1D41E => array(0x65), 0x1D41F => array(0x66),
2809
-                    0x1D420 => array(0x67), 0x1D421 => array(0x68), 0x1D422 => array(0x69),
2810
-                    0x1D423 => array(0x6A), 0x1D424 => array(0x6B), 0x1D425 => array(0x6C),
2811
-                    0x1D426 => array(0x6D), 0x1D427 => array(0x6E), 0x1D428 => array(0x6F),
2812
-                    0x1D429 => array(0x70), 0x1D42A => array(0x71), 0x1D42B => array(0x72),
2813
-                    0x1D42C => array(0x73), 0x1D42D => array(0x74), 0x1D42E => array(0x75),
2814
-                    0x1D42F => array(0x76), 0x1D430 => array(0x77), 0x1D431 => array(0x78),
2815
-                    0x1D432 => array(0x79), 0x1D433 => array(0x7A), 0x1D434 => array(0x61),
2816
-                    0x1D435 => array(0x62), 0x1D436 => array(0x63), 0x1D437 => array(0x64),
2817
-                    0x1D438 => array(0x65), 0x1D439 => array(0x66), 0x1D43A => array(0x67),
2818
-                    0x1D43B => array(0x68), 0x1D43C => array(0x69), 0x1D43D => array(0x6A),
2819
-                    0x1D43E => array(0x6B), 0x1D43F => array(0x6C), 0x1D440 => array(0x6D),
2820
-                    0x1D441 => array(0x6E), 0x1D442 => array(0x6F), 0x1D443 => array(0x70),
2821
-                    0x1D444 => array(0x71), 0x1D445 => array(0x72), 0x1D446 => array(0x73),
2822
-                    0x1D447 => array(0x74), 0x1D448 => array(0x75), 0x1D449 => array(0x76),
2823
-                    0x1D44A => array(0x77), 0x1D44B => array(0x78), 0x1D44C => array(0x79),
2824
-                    0x1D44D => array(0x7A), 0x1D44E => array(0x61), 0x1D44F => array(0x62),
2825
-                    0x1D450 => array(0x63), 0x1D451 => array(0x64), 0x1D452 => array(0x65),
2826
-                    0x1D453 => array(0x66), 0x1D454 => array(0x67), 0x1D456 => array(0x69),
2827
-                    0x1D457 => array(0x6A), 0x1D458 => array(0x6B), 0x1D459 => array(0x6C),
2828
-                    0x1D45A => array(0x6D), 0x1D45B => array(0x6E), 0x1D45C => array(0x6F),
2829
-                    0x1D45D => array(0x70), 0x1D45E => array(0x71), 0x1D45F => array(0x72),
2830
-                    0x1D460 => array(0x73), 0x1D461 => array(0x74), 0x1D462 => array(0x75),
2831
-                    0x1D463 => array(0x76), 0x1D464 => array(0x77), 0x1D465 => array(0x78),
2832
-                    0x1D466 => array(0x79), 0x1D467 => array(0x7A), 0x1D468 => array(0x61),
2833
-                    0x1D469 => array(0x62), 0x1D46A => array(0x63), 0x1D46B => array(0x64),
2834
-                    0x1D46C => array(0x65), 0x1D46D => array(0x66), 0x1D46E => array(0x67),
2835
-                    0x1D46F => array(0x68), 0x1D470 => array(0x69), 0x1D471 => array(0x6A),
2836
-                    0x1D472 => array(0x6B), 0x1D473 => array(0x6C), 0x1D474 => array(0x6D),
2837
-                    0x1D475 => array(0x6E), 0x1D476 => array(0x6F), 0x1D477 => array(0x70),
2838
-                    0x1D478 => array(0x71), 0x1D479 => array(0x72), 0x1D47A => array(0x73),
2839
-                    0x1D47B => array(0x74), 0x1D47C => array(0x75), 0x1D47D => array(0x76),
2840
-                    0x1D47E => array(0x77), 0x1D47F => array(0x78), 0x1D480 => array(0x79),
2841
-                    0x1D481 => array(0x7A), 0x1D482 => array(0x61), 0x1D483 => array(0x62),
2842
-                    0x1D484 => array(0x63), 0x1D485 => array(0x64), 0x1D486 => array(0x65),
2843
-                    0x1D487 => array(0x66), 0x1D488 => array(0x67), 0x1D489 => array(0x68),
2844
-                    0x1D48A => array(0x69), 0x1D48B => array(0x6A), 0x1D48C => array(0x6B),
2845
-                    0x1D48D => array(0x6C), 0x1D48E => array(0x6D), 0x1D48F => array(0x6E),
2846
-                    0x1D490 => array(0x6F), 0x1D491 => array(0x70), 0x1D492 => array(0x71),
2847
-                    0x1D493 => array(0x72), 0x1D494 => array(0x73), 0x1D495 => array(0x74),
2848
-                    0x1D496 => array(0x75), 0x1D497 => array(0x76), 0x1D498 => array(0x77),
2849
-                    0x1D499 => array(0x78), 0x1D49A => array(0x79), 0x1D49B => array(0x7A),
2850
-                    0x1D49C => array(0x61), 0x1D49E => array(0x63), 0x1D49F => array(0x64),
2851
-                    0x1D4A2 => array(0x67), 0x1D4A5 => array(0x6A), 0x1D4A6 => array(0x6B),
2852
-                    0x1D4A9 => array(0x6E), 0x1D4AA => array(0x6F), 0x1D4AB => array(0x70),
2853
-                    0x1D4AC => array(0x71), 0x1D4AE => array(0x73), 0x1D4AF => array(0x74),
2854
-                    0x1D4B0 => array(0x75), 0x1D4B1 => array(0x76), 0x1D4B2 => array(0x77),
2855
-                    0x1D4B3 => array(0x78), 0x1D4B4 => array(0x79), 0x1D4B5 => array(0x7A),
2856
-                    0x1D4B6 => array(0x61), 0x1D4B7 => array(0x62), 0x1D4B8 => array(0x63),
2857
-                    0x1D4B9 => array(0x64), 0x1D4BB => array(0x66), 0x1D4BD => array(0x68),
2858
-                    0x1D4BE => array(0x69), 0x1D4BF => array(0x6A), 0x1D4C0 => array(0x6B),
2859
-                    0x1D4C1 => array(0x6C), 0x1D4C2 => array(0x6D), 0x1D4C3 => array(0x6E),
2860
-                    0x1D4C5 => array(0x70), 0x1D4C6 => array(0x71), 0x1D4C7 => array(0x72),
2861
-                    0x1D4C8 => array(0x73), 0x1D4C9 => array(0x74), 0x1D4CA => array(0x75),
2862
-                    0x1D4CB => array(0x76), 0x1D4CC => array(0x77), 0x1D4CD => array(0x78),
2863
-                    0x1D4CE => array(0x79), 0x1D4CF => array(0x7A), 0x1D4D0 => array(0x61),
2864
-                    0x1D4D1 => array(0x62), 0x1D4D2 => array(0x63), 0x1D4D3 => array(0x64),
2865
-                    0x1D4D4 => array(0x65), 0x1D4D5 => array(0x66), 0x1D4D6 => array(0x67),
2866
-                    0x1D4D7 => array(0x68), 0x1D4D8 => array(0x69), 0x1D4D9 => array(0x6A),
2867
-                    0x1D4DA => array(0x6B), 0x1D4DB => array(0x6C), 0x1D4DC => array(0x6D),
2868
-                    0x1D4DD => array(0x6E), 0x1D4DE => array(0x6F), 0x1D4DF => array(0x70),
2869
-                    0x1D4E0 => array(0x71), 0x1D4E1 => array(0x72), 0x1D4E2 => array(0x73),
2870
-                    0x1D4E3 => array(0x74), 0x1D4E4 => array(0x75), 0x1D4E5 => array(0x76),
2871
-                    0x1D4E6 => array(0x77), 0x1D4E7 => array(0x78), 0x1D4E8 => array(0x79),
2872
-                    0x1D4E9 => array(0x7A), 0x1D4EA => array(0x61), 0x1D4EB => array(0x62),
2873
-                    0x1D4EC => array(0x63), 0x1D4ED => array(0x64), 0x1D4EE => array(0x65),
2874
-                    0x1D4EF => array(0x66), 0x1D4F0 => array(0x67), 0x1D4F1 => array(0x68),
2875
-                    0x1D4F2 => array(0x69), 0x1D4F3 => array(0x6A), 0x1D4F4 => array(0x6B),
2876
-                    0x1D4F5 => array(0x6C), 0x1D4F6 => array(0x6D), 0x1D4F7 => array(0x6E),
2877
-                    0x1D4F8 => array(0x6F), 0x1D4F9 => array(0x70), 0x1D4FA => array(0x71),
2878
-                    0x1D4FB => array(0x72), 0x1D4FC => array(0x73), 0x1D4FD => array(0x74),
2879
-                    0x1D4FE => array(0x75), 0x1D4FF => array(0x76), 0x1D500 => array(0x77),
2880
-                    0x1D501 => array(0x78), 0x1D502 => array(0x79), 0x1D503 => array(0x7A),
2881
-                    0x1D504 => array(0x61), 0x1D505 => array(0x62), 0x1D507 => array(0x64),
2882
-                    0x1D508 => array(0x65), 0x1D509 => array(0x66), 0x1D50A => array(0x67),
2883
-                    0x1D50D => array(0x6A), 0x1D50E => array(0x6B), 0x1D50F => array(0x6C),
2884
-                    0x1D510 => array(0x6D), 0x1D511 => array(0x6E), 0x1D512 => array(0x6F),
2885
-                    0x1D513 => array(0x70), 0x1D514 => array(0x71), 0x1D516 => array(0x73),
2886
-                    0x1D517 => array(0x74), 0x1D518 => array(0x75), 0x1D519 => array(0x76),
2887
-                    0x1D51A => array(0x77), 0x1D51B => array(0x78), 0x1D51C => array(0x79),
2888
-                    0x1D51E => array(0x61), 0x1D51F => array(0x62), 0x1D520 => array(0x63),
2889
-                    0x1D521 => array(0x64), 0x1D522 => array(0x65), 0x1D523 => array(0x66),
2890
-                    0x1D524 => array(0x67), 0x1D525 => array(0x68), 0x1D526 => array(0x69),
2891
-                    0x1D527 => array(0x6A), 0x1D528 => array(0x6B), 0x1D529 => array(0x6C),
2892
-                    0x1D52A => array(0x6D), 0x1D52B => array(0x6E), 0x1D52C => array(0x6F),
2893
-                    0x1D52D => array(0x70), 0x1D52E => array(0x71), 0x1D52F => array(0x72),
2894
-                    0x1D530 => array(0x73), 0x1D531 => array(0x74), 0x1D532 => array(0x75),
2895
-                    0x1D533 => array(0x76), 0x1D534 => array(0x77), 0x1D535 => array(0x78),
2896
-                    0x1D536 => array(0x79), 0x1D537 => array(0x7A), 0x1D538 => array(0x61),
2897
-                    0x1D539 => array(0x62), 0x1D53B => array(0x64), 0x1D53C => array(0x65),
2898
-                    0x1D53D => array(0x66), 0x1D53E => array(0x67), 0x1D540 => array(0x69),
2899
-                    0x1D541 => array(0x6A), 0x1D542 => array(0x6B), 0x1D543 => array(0x6C),
2900
-                    0x1D544 => array(0x6D), 0x1D546 => array(0x6F), 0x1D54A => array(0x73),
2901
-                    0x1D54B => array(0x74), 0x1D54C => array(0x75), 0x1D54D => array(0x76),
2902
-                    0x1D54E => array(0x77), 0x1D54F => array(0x78), 0x1D550 => array(0x79),
2903
-                    0x1D552 => array(0x61), 0x1D553 => array(0x62), 0x1D554 => array(0x63),
2904
-                    0x1D555 => array(0x64), 0x1D556 => array(0x65), 0x1D557 => array(0x66),
2905
-                    0x1D558 => array(0x67), 0x1D559 => array(0x68), 0x1D55A => array(0x69),
2906
-                    0x1D55B => array(0x6A), 0x1D55C => array(0x6B), 0x1D55D => array(0x6C),
2907
-                    0x1D55E => array(0x6D), 0x1D55F => array(0x6E), 0x1D560 => array(0x6F),
2908
-                    0x1D561 => array(0x70), 0x1D562 => array(0x71), 0x1D563 => array(0x72),
2909
-                    0x1D564 => array(0x73), 0x1D565 => array(0x74), 0x1D566 => array(0x75),
2910
-                    0x1D567 => array(0x76), 0x1D568 => array(0x77), 0x1D569 => array(0x78),
2911
-                    0x1D56A => array(0x79), 0x1D56B => array(0x7A), 0x1D56C => array(0x61),
2912
-                    0x1D56D => array(0x62), 0x1D56E => array(0x63), 0x1D56F => array(0x64),
2913
-                    0x1D570 => array(0x65), 0x1D571 => array(0x66), 0x1D572 => array(0x67),
2914
-                    0x1D573 => array(0x68), 0x1D574 => array(0x69), 0x1D575 => array(0x6A),
2915
-                    0x1D576 => array(0x6B), 0x1D577 => array(0x6C), 0x1D578 => array(0x6D),
2916
-                    0x1D579 => array(0x6E), 0x1D57A => array(0x6F), 0x1D57B => array(0x70),
2917
-                    0x1D57C => array(0x71), 0x1D57D => array(0x72), 0x1D57E => array(0x73),
2918
-                    0x1D57F => array(0x74), 0x1D580 => array(0x75), 0x1D581 => array(0x76),
2919
-                    0x1D582 => array(0x77), 0x1D583 => array(0x78), 0x1D584 => array(0x79),
2920
-                    0x1D585 => array(0x7A), 0x1D586 => array(0x61), 0x1D587 => array(0x62),
2921
-                    0x1D588 => array(0x63), 0x1D589 => array(0x64), 0x1D58A => array(0x65),
2922
-                    0x1D58B => array(0x66), 0x1D58C => array(0x67), 0x1D58D => array(0x68),
2923
-                    0x1D58E => array(0x69), 0x1D58F => array(0x6A), 0x1D590 => array(0x6B),
2924
-                    0x1D591 => array(0x6C), 0x1D592 => array(0x6D), 0x1D593 => array(0x6E),
2925
-                    0x1D594 => array(0x6F), 0x1D595 => array(0x70), 0x1D596 => array(0x71),
2926
-                    0x1D597 => array(0x72), 0x1D598 => array(0x73), 0x1D599 => array(0x74),
2927
-                    0x1D59A => array(0x75), 0x1D59B => array(0x76), 0x1D59C => array(0x77),
2928
-                    0x1D59D => array(0x78), 0x1D59E => array(0x79), 0x1D59F => array(0x7A),
2929
-                    0x1D5A0 => array(0x61), 0x1D5A1 => array(0x62), 0x1D5A2 => array(0x63),
2930
-                    0x1D5A3 => array(0x64), 0x1D5A4 => array(0x65), 0x1D5A5 => array(0x66),
2931
-                    0x1D5A6 => array(0x67), 0x1D5A7 => array(0x68), 0x1D5A8 => array(0x69),
2932
-                    0x1D5A9 => array(0x6A), 0x1D5AA => array(0x6B), 0x1D5AB => array(0x6C),
2933
-                    0x1D5AC => array(0x6D), 0x1D5AD => array(0x6E), 0x1D5AE => array(0x6F),
2934
-                    0x1D5AF => array(0x70), 0x1D5B0 => array(0x71), 0x1D5B1 => array(0x72),
2935
-                    0x1D5B2 => array(0x73), 0x1D5B3 => array(0x74), 0x1D5B4 => array(0x75),
2936
-                    0x1D5B5 => array(0x76), 0x1D5B6 => array(0x77), 0x1D5B7 => array(0x78),
2937
-                    0x1D5B8 => array(0x79), 0x1D5B9 => array(0x7A), 0x1D5BA => array(0x61),
2938
-                    0x1D5BB => array(0x62), 0x1D5BC => array(0x63), 0x1D5BD => array(0x64),
2939
-                    0x1D5BE => array(0x65), 0x1D5BF => array(0x66), 0x1D5C0 => array(0x67),
2940
-                    0x1D5C1 => array(0x68), 0x1D5C2 => array(0x69), 0x1D5C3 => array(0x6A),
2941
-                    0x1D5C4 => array(0x6B), 0x1D5C5 => array(0x6C), 0x1D5C6 => array(0x6D),
2942
-                    0x1D5C7 => array(0x6E), 0x1D5C8 => array(0x6F), 0x1D5C9 => array(0x70),
2943
-                    0x1D5CA => array(0x71), 0x1D5CB => array(0x72), 0x1D5CC => array(0x73),
2944
-                    0x1D5CD => array(0x74), 0x1D5CE => array(0x75), 0x1D5CF => array(0x76),
2945
-                    0x1D5D0 => array(0x77), 0x1D5D1 => array(0x78), 0x1D5D2 => array(0x79),
2946
-                    0x1D5D3 => array(0x7A), 0x1D5D4 => array(0x61), 0x1D5D5 => array(0x62),
2947
-                    0x1D5D6 => array(0x63), 0x1D5D7 => array(0x64), 0x1D5D8 => array(0x65),
2948
-                    0x1D5D9 => array(0x66), 0x1D5DA => array(0x67), 0x1D5DB => array(0x68),
2949
-                    0x1D5DC => array(0x69), 0x1D5DD => array(0x6A), 0x1D5DE => array(0x6B),
2950
-                    0x1D5DF => array(0x6C), 0x1D5E0 => array(0x6D), 0x1D5E1 => array(0x6E),
2951
-                    0x1D5E2 => array(0x6F), 0x1D5E3 => array(0x70), 0x1D5E4 => array(0x71),
2952
-                    0x1D5E5 => array(0x72), 0x1D5E6 => array(0x73), 0x1D5E7 => array(0x74),
2953
-                    0x1D5E8 => array(0x75), 0x1D5E9 => array(0x76), 0x1D5EA => array(0x77),
2954
-                    0x1D5EB => array(0x78), 0x1D5EC => array(0x79), 0x1D5ED => array(0x7A),
2955
-                    0x1D5EE => array(0x61), 0x1D5EF => array(0x62), 0x1D5F0 => array(0x63),
2956
-                    0x1D5F1 => array(0x64), 0x1D5F2 => array(0x65), 0x1D5F3 => array(0x66),
2957
-                    0x1D5F4 => array(0x67), 0x1D5F5 => array(0x68), 0x1D5F6 => array(0x69),
2958
-                    0x1D5F7 => array(0x6A), 0x1D5F8 => array(0x6B), 0x1D5F9 => array(0x6C),
2959
-                    0x1D5FA => array(0x6D), 0x1D5FB => array(0x6E), 0x1D5FC => array(0x6F),
2960
-                    0x1D5FD => array(0x70), 0x1D5FE => array(0x71), 0x1D5FF => array(0x72),
2961
-                    0x1D600 => array(0x73), 0x1D601 => array(0x74), 0x1D602 => array(0x75),
2962
-                    0x1D603 => array(0x76), 0x1D604 => array(0x77), 0x1D605 => array(0x78),
2963
-                    0x1D606 => array(0x79), 0x1D607 => array(0x7A), 0x1D608 => array(0x61),
2964
-                    0x1D609 => array(0x62), 0x1D60A => array(0x63), 0x1D60B => array(0x64),
2965
-                    0x1D60C => array(0x65), 0x1D60D => array(0x66), 0x1D60E => array(0x67),
2966
-                    0x1D60F => array(0x68), 0x1D610 => array(0x69), 0x1D611 => array(0x6A),
2967
-                    0x1D612 => array(0x6B), 0x1D613 => array(0x6C), 0x1D614 => array(0x6D),
2968
-                    0x1D615 => array(0x6E), 0x1D616 => array(0x6F), 0x1D617 => array(0x70),
2969
-                    0x1D618 => array(0x71), 0x1D619 => array(0x72), 0x1D61A => array(0x73),
2970
-                    0x1D61B => array(0x74), 0x1D61C => array(0x75), 0x1D61D => array(0x76),
2971
-                    0x1D61E => array(0x77), 0x1D61F => array(0x78), 0x1D620 => array(0x79),
2972
-                    0x1D621 => array(0x7A), 0x1D622 => array(0x61), 0x1D623 => array(0x62),
2973
-                    0x1D624 => array(0x63), 0x1D625 => array(0x64), 0x1D626 => array(0x65),
2974
-                    0x1D627 => array(0x66), 0x1D628 => array(0x67), 0x1D629 => array(0x68),
2975
-                    0x1D62A => array(0x69), 0x1D62B => array(0x6A), 0x1D62C => array(0x6B),
2976
-                    0x1D62D => array(0x6C), 0x1D62E => array(0x6D), 0x1D62F => array(0x6E),
2977
-                    0x1D630 => array(0x6F), 0x1D631 => array(0x70), 0x1D632 => array(0x71),
2978
-                    0x1D633 => array(0x72), 0x1D634 => array(0x73), 0x1D635 => array(0x74),
2979
-                    0x1D636 => array(0x75), 0x1D637 => array(0x76), 0x1D638 => array(0x77),
2980
-                    0x1D639 => array(0x78), 0x1D63A => array(0x79), 0x1D63B => array(0x7A),
2981
-                    0x1D63C => array(0x61), 0x1D63D => array(0x62), 0x1D63E => array(0x63),
2982
-                    0x1D63F => array(0x64), 0x1D640 => array(0x65), 0x1D641 => array(0x66),
2983
-                    0x1D642 => array(0x67), 0x1D643 => array(0x68), 0x1D644 => array(0x69),
2984
-                    0x1D645 => array(0x6A), 0x1D646 => array(0x6B), 0x1D647 => array(0x6C),
2985
-                    0x1D648 => array(0x6D), 0x1D649 => array(0x6E), 0x1D64A => array(0x6F),
2986
-                    0x1D64B => array(0x70), 0x1D64C => array(0x71), 0x1D64D => array(0x72),
2987
-                    0x1D64E => array(0x73), 0x1D64F => array(0x74), 0x1D650 => array(0x75),
2988
-                    0x1D651 => array(0x76), 0x1D652 => array(0x77), 0x1D653 => array(0x78),
2989
-                    0x1D654 => array(0x79), 0x1D655 => array(0x7A), 0x1D656 => array(0x61),
2990
-                    0x1D657 => array(0x62), 0x1D658 => array(0x63), 0x1D659 => array(0x64),
2991
-                    0x1D65A => array(0x65), 0x1D65B => array(0x66), 0x1D65C => array(0x67),
2992
-                    0x1D65D => array(0x68), 0x1D65E => array(0x69), 0x1D65F => array(0x6A),
2993
-                    0x1D660 => array(0x6B), 0x1D661 => array(0x6C), 0x1D662 => array(0x6D),
2994
-                    0x1D663 => array(0x6E), 0x1D664 => array(0x6F), 0x1D665 => array(0x70),
2995
-                    0x1D666 => array(0x71), 0x1D667 => array(0x72), 0x1D668 => array(0x73),
2996
-                    0x1D669 => array(0x74), 0x1D66A => array(0x75), 0x1D66B => array(0x76),
2997
-                    0x1D66C => array(0x77), 0x1D66D => array(0x78), 0x1D66E => array(0x79),
2998
-                    0x1D66F => array(0x7A), 0x1D670 => array(0x61), 0x1D671 => array(0x62),
2999
-                    0x1D672 => array(0x63), 0x1D673 => array(0x64), 0x1D674 => array(0x65),
3000
-                    0x1D675 => array(0x66), 0x1D676 => array(0x67), 0x1D677 => array(0x68),
3001
-                    0x1D678 => array(0x69), 0x1D679 => array(0x6A), 0x1D67A => array(0x6B),
3002
-                    0x1D67B => array(0x6C), 0x1D67C => array(0x6D), 0x1D67D => array(0x6E),
3003
-                    0x1D67E => array(0x6F), 0x1D67F => array(0x70), 0x1D680 => array(0x71),
3004
-                    0x1D681 => array(0x72), 0x1D682 => array(0x73), 0x1D683 => array(0x74),
3005
-                    0x1D684 => array(0x75), 0x1D685 => array(0x76), 0x1D686 => array(0x77),
3006
-                    0x1D687 => array(0x78), 0x1D688 => array(0x79), 0x1D689 => array(0x7A),
3007
-                    0x1D68A => array(0x61), 0x1D68B => array(0x62), 0x1D68C => array(0x63),
3008
-                    0x1D68D => array(0x64), 0x1D68E => array(0x65), 0x1D68F => array(0x66),
3009
-                    0x1D690 => array(0x67), 0x1D691 => array(0x68), 0x1D692 => array(0x69),
3010
-                    0x1D693 => array(0x6A), 0x1D694 => array(0x6B), 0x1D695 => array(0x6C),
3011
-                    0x1D696 => array(0x6D), 0x1D697 => array(0x6E), 0x1D698 => array(0x6F),
3012
-                    0x1D699 => array(0x70), 0x1D69A => array(0x71), 0x1D69B => array(0x72),
3013
-                    0x1D69C => array(0x73), 0x1D69D => array(0x74), 0x1D69E => array(0x75),
3014
-                    0x1D69F => array(0x76), 0x1D6A0 => array(0x77), 0x1D6A1 => array(0x78),
3015
-                    0x1D6A2 => array(0x79), 0x1D6A3 => array(0x7A), 0x1D6A4 => array(0x131),
3016
-                    0x1D6A5 => array(0x237), 0x1D6A8 => array(0x3B1), 0x1D6A9 => array(0x3B2),
3017
-                    0x1D6AA => array(0x3B3), 0x1D6AB => array(0x3B4), 0x1D6AC => array(0x3B5),
3018
-                    0x1D6AD => array(0x3B6), 0x1D6AE => array(0x3B7), 0x1D6AF => array(0x3B8),
3019
-                    0x1D6B0 => array(0x3B9), 0x1D6B1 => array(0x3BA), 0x1D6B2 => array(0x3BB),
3020
-                    0x1D6B3 => array(0x3BC), 0x1D6B4 => array(0x3BD), 0x1D6B5 => array(0x3BE),
3021
-                    0x1D6B6 => array(0x3BF), 0x1D6B7 => array(0x3C0), 0x1D6B8 => array(0x3C1),
3022
-                    0x1D6B9 => array(0x3B8), 0x1D6BA => array(0x3C3), 0x1D6BB => array(0x3C4),
3023
-                    0x1D6BC => array(0x3C5), 0x1D6BD => array(0x3C6), 0x1D6BE => array(0x3C7),
3024
-                    0x1D6BF => array(0x3C8), 0x1D6C0 => array(0x3C9), 0x1D6C1 => array(0x2207),
3025
-                    0x1D6C2 => array(0x3B1), 0x1D6C3 => array(0x3B2), 0x1D6C4 => array(0x3B3),
3026
-                    0x1D6C5 => array(0x3B4), 0x1D6C6 => array(0x3B5), 0x1D6C7 => array(0x3B6),
3027
-                    0x1D6C8 => array(0x3B7), 0x1D6C9 => array(0x3B8), 0x1D6CA => array(0x3B9),
3028
-                    0x1D6CB => array(0x3BA), 0x1D6CC => array(0x3BB), 0x1D6CD => array(0x3BC),
3029
-                    0x1D6CE => array(0x3BD), 0x1D6CF => array(0x3BE), 0x1D6D0 => array(0x3BF),
3030
-                    0x1D6D1 => array(0x3C0), 0x1D6D2 => array(0x3C1), 0x1D6D3 => array(0x3C3),
3031
-                    0x1D6D4 => array(0x3C3), 0x1D6D5 => array(0x3C4), 0x1D6D6 => array(0x3C5),
3032
-                    0x1D6D7 => array(0x3C6), 0x1D6D8 => array(0x3C7), 0x1D6D9 => array(0x3C8),
3033
-                    0x1D6DA => array(0x3C9), 0x1D6DB => array(0x2202), 0x1D6DC => array(0x3B5),
3034
-                    0x1D6DD => array(0x3B8), 0x1D6DE => array(0x3BA), 0x1D6DF => array(0x3C6),
3035
-                    0x1D6E0 => array(0x3C1), 0x1D6E1 => array(0x3C0), 0x1D6E2 => array(0x3B1),
3036
-                    0x1D6E3 => array(0x3B2), 0x1D6E4 => array(0x3B3), 0x1D6E5 => array(0x3B4),
3037
-                    0x1D6E6 => array(0x3B5), 0x1D6E7 => array(0x3B6), 0x1D6E8 => array(0x3B7),
3038
-                    0x1D6E9 => array(0x3B8), 0x1D6EA => array(0x3B9), 0x1D6EB => array(0x3BA),
3039
-                    0x1D6EC => array(0x3BB), 0x1D6ED => array(0x3BC), 0x1D6EE => array(0x3BD),
3040
-                    0x1D6EF => array(0x3BE), 0x1D6F0 => array(0x3BF), 0x1D6F1 => array(0x3C0),
3041
-                    0x1D6F2 => array(0x3C1), 0x1D6F3 => array(0x3B8), 0x1D6F4 => array(0x3C3),
3042
-                    0x1D6F5 => array(0x3C4), 0x1D6F6 => array(0x3C5), 0x1D6F7 => array(0x3C6),
3043
-                    0x1D6F8 => array(0x3C7), 0x1D6F9 => array(0x3C8), 0x1D6FA => array(0x3C9),
3044
-                    0x1D6FB => array(0x2207), 0x1D6FC => array(0x3B1), 0x1D6FD => array(0x3B2),
3045
-                    0x1D6FE => array(0x3B3), 0x1D6FF => array(0x3B4), 0x1D700 => array(0x3B5),
3046
-                    0x1D701 => array(0x3B6), 0x1D702 => array(0x3B7), 0x1D703 => array(0x3B8),
3047
-                    0x1D704 => array(0x3B9), 0x1D705 => array(0x3BA), 0x1D706 => array(0x3BB),
3048
-                    0x1D707 => array(0x3BC), 0x1D708 => array(0x3BD), 0x1D709 => array(0x3BE),
3049
-                    0x1D70A => array(0x3BF), 0x1D70B => array(0x3C0), 0x1D70C => array(0x3C1),
3050
-                    0x1D70D => array(0x3C3), 0x1D70E => array(0x3C3), 0x1D70F => array(0x3C4),
3051
-                    0x1D710 => array(0x3C5), 0x1D711 => array(0x3C6), 0x1D712 => array(0x3C7),
3052
-                    0x1D713 => array(0x3C8), 0x1D714 => array(0x3C9), 0x1D715 => array(0x2202),
3053
-                    0x1D716 => array(0x3B5), 0x1D717 => array(0x3B8), 0x1D718 => array(0x3BA),
3054
-                    0x1D719 => array(0x3C6), 0x1D71A => array(0x3C1), 0x1D71B => array(0x3C0),
3055
-                    0x1D71C => array(0x3B1), 0x1D71D => array(0x3B2), 0x1D71E => array(0x3B3),
3056
-                    0x1D71F => array(0x3B4), 0x1D720 => array(0x3B5), 0x1D721 => array(0x3B6),
3057
-                    0x1D722 => array(0x3B7), 0x1D723 => array(0x3B8), 0x1D724 => array(0x3B9),
3058
-                    0x1D725 => array(0x3BA), 0x1D726 => array(0x3BB), 0x1D727 => array(0x3BC),
3059
-                    0x1D728 => array(0x3BD), 0x1D729 => array(0x3BE), 0x1D72A => array(0x3BF),
3060
-                    0x1D72B => array(0x3C0), 0x1D72C => array(0x3C1), 0x1D72D => array(0x3B8),
3061
-                    0x1D72E => array(0x3C3), 0x1D72F => array(0x3C4), 0x1D730 => array(0x3C5),
3062
-                    0x1D731 => array(0x3C6), 0x1D732 => array(0x3C7), 0x1D733 => array(0x3C8),
3063
-                    0x1D734 => array(0x3C9), 0x1D735 => array(0x2207), 0x1D736 => array(0x3B1),
3064
-                    0x1D737 => array(0x3B2), 0x1D738 => array(0x3B3), 0x1D739 => array(0x3B4),
3065
-                    0x1D73A => array(0x3B5), 0x1D73B => array(0x3B6), 0x1D73C => array(0x3B7),
3066
-                    0x1D73D => array(0x3B8), 0x1D73E => array(0x3B9), 0x1D73F => array(0x3BA),
3067
-                    0x1D740 => array(0x3BB), 0x1D741 => array(0x3BC), 0x1D742 => array(0x3BD),
3068
-                    0x1D743 => array(0x3BE), 0x1D744 => array(0x3BF), 0x1D745 => array(0x3C0),
3069
-                    0x1D746 => array(0x3C1), 0x1D747 => array(0x3C3), 0x1D748 => array(0x3C3),
3070
-                    0x1D749 => array(0x3C4), 0x1D74A => array(0x3C5), 0x1D74B => array(0x3C6),
3071
-                    0x1D74C => array(0x3C7), 0x1D74D => array(0x3C8), 0x1D74E => array(0x3C9),
3072
-                    0x1D74F => array(0x2202), 0x1D750 => array(0x3B5), 0x1D751 => array(0x3B8),
3073
-                    0x1D752 => array(0x3BA), 0x1D753 => array(0x3C6), 0x1D754 => array(0x3C1),
3074
-                    0x1D755 => array(0x3C0), 0x1D756 => array(0x3B1), 0x1D757 => array(0x3B2),
3075
-                    0x1D758 => array(0x3B3), 0x1D759 => array(0x3B4), 0x1D75A => array(0x3B5),
3076
-                    0x1D75B => array(0x3B6), 0x1D75C => array(0x3B7), 0x1D75D => array(0x3B8),
3077
-                    0x1D75E => array(0x3B9), 0x1D75F => array(0x3BA), 0x1D760 => array(0x3BB),
3078
-                    0x1D761 => array(0x3BC), 0x1D762 => array(0x3BD), 0x1D763 => array(0x3BE),
3079
-                    0x1D764 => array(0x3BF), 0x1D765 => array(0x3C0), 0x1D766 => array(0x3C1),
3080
-                    0x1D767 => array(0x3B8), 0x1D768 => array(0x3C3), 0x1D769 => array(0x3C4),
3081
-                    0x1D76A => array(0x3C5), 0x1D76B => array(0x3C6), 0x1D76C => array(0x3C7),
3082
-                    0x1D76D => array(0x3C8), 0x1D76E => array(0x3C9), 0x1D76F => array(0x2207),
3083
-                    0x1D770 => array(0x3B1), 0x1D771 => array(0x3B2), 0x1D772 => array(0x3B3),
3084
-                    0x1D773 => array(0x3B4), 0x1D774 => array(0x3B5), 0x1D775 => array(0x3B6),
3085
-                    0x1D776 => array(0x3B7), 0x1D777 => array(0x3B8), 0x1D778 => array(0x3B9),
3086
-                    0x1D779 => array(0x3BA), 0x1D77A => array(0x3BB), 0x1D77B => array(0x3BC),
3087
-                    0x1D77C => array(0x3BD), 0x1D77D => array(0x3BE), 0x1D77E => array(0x3BF),
3088
-                    0x1D77F => array(0x3C0), 0x1D780 => array(0x3C1), 0x1D781 => array(0x3C3),
3089
-                    0x1D782 => array(0x3C3), 0x1D783 => array(0x3C4), 0x1D784 => array(0x3C5),
3090
-                    0x1D785 => array(0x3C6), 0x1D786 => array(0x3C7), 0x1D787 => array(0x3C8),
3091
-                    0x1D788 => array(0x3C9), 0x1D789 => array(0x2202), 0x1D78A => array(0x3B5),
3092
-                    0x1D78B => array(0x3B8), 0x1D78C => array(0x3BA), 0x1D78D => array(0x3C6),
3093
-                    0x1D78E => array(0x3C1), 0x1D78F => array(0x3C0), 0x1D790 => array(0x3B1),
3094
-                    0x1D791 => array(0x3B2), 0x1D792 => array(0x3B3), 0x1D793 => array(0x3B4),
3095
-                    0x1D794 => array(0x3B5), 0x1D795 => array(0x3B6), 0x1D796 => array(0x3B7),
3096
-                    0x1D797 => array(0x3B8), 0x1D798 => array(0x3B9), 0x1D799 => array(0x3BA),
3097
-                    0x1D79A => array(0x3BB), 0x1D79B => array(0x3BC), 0x1D79C => array(0x3BD),
3098
-                    0x1D79D => array(0x3BE), 0x1D79E => array(0x3BF), 0x1D79F => array(0x3C0),
3099
-                    0x1D7A0 => array(0x3C1), 0x1D7A1 => array(0x3B8), 0x1D7A2 => array(0x3C3),
3100
-                    0x1D7A3 => array(0x3C4), 0x1D7A4 => array(0x3C5), 0x1D7A5 => array(0x3C6),
3101
-                    0x1D7A6 => array(0x3C7), 0x1D7A7 => array(0x3C8), 0x1D7A8 => array(0x3C9),
3102
-                    0x1D7A9 => array(0x2207), 0x1D7AA => array(0x3B1), 0x1D7AB => array(0x3B2),
3103
-                    0x1D7AC => array(0x3B3), 0x1D7AD => array(0x3B4), 0x1D7AE => array(0x3B5),
3104
-                    0x1D7AF => array(0x3B6), 0x1D7B0 => array(0x3B7), 0x1D7B1 => array(0x3B8),
3105
-                    0x1D7B2 => array(0x3B9), 0x1D7B3 => array(0x3BA), 0x1D7B4 => array(0x3BB),
3106
-                    0x1D7B5 => array(0x3BC), 0x1D7B6 => array(0x3BD), 0x1D7B7 => array(0x3BE),
3107
-                    0x1D7B8 => array(0x3BF), 0x1D7B9 => array(0x3C0), 0x1D7BA => array(0x3C1),
3108
-                    0x1D7BB => array(0x3C3), 0x1D7BC => array(0x3C3), 0x1D7BD => array(0x3C4),
3109
-                    0x1D7BE => array(0x3C5), 0x1D7BF => array(0x3C6), 0x1D7C0 => array(0x3C7),
3110
-                    0x1D7C1 => array(0x3C8), 0x1D7C2 => array(0x3C9), 0x1D7C3 => array(0x2202),
3111
-                    0x1D7C4 => array(0x3B5), 0x1D7C5 => array(0x3B8), 0x1D7C6 => array(0x3BA),
3112
-                    0x1D7C7 => array(0x3C6), 0x1D7C8 => array(0x3C1), 0x1D7C9 => array(0x3C0),
3113
-                    0x1D7CA => array(0x3DD), 0x1D7CB => array(0x3DD), 0x1D7CE => array(0x30),
3114
-                    0x1D7CF => array(0x31), 0x1D7D0 => array(0x32), 0x1D7D1 => array(0x33),
3115
-                    0x1D7D2 => array(0x34), 0x1D7D3 => array(0x35), 0x1D7D4 => array(0x36),
3116
-                    0x1D7D5 => array(0x37), 0x1D7D6 => array(0x38), 0x1D7D7 => array(0x39),
3117
-                    0x1D7D8 => array(0x30), 0x1D7D9 => array(0x31), 0x1D7DA => array(0x32),
3118
-                    0x1D7DB => array(0x33), 0x1D7DC => array(0x34), 0x1D7DD => array(0x35),
3119
-                    0x1D7DE => array(0x36), 0x1D7DF => array(0x37), 0x1D7E0 => array(0x38),
3120
-                    0x1D7E1 => array(0x39), 0x1D7E2 => array(0x30), 0x1D7E3 => array(0x31),
3121
-                    0x1D7E4 => array(0x32), 0x1D7E5 => array(0x33), 0x1D7E6 => array(0x34),
3122
-                    0x1D7E7 => array(0x35), 0x1D7E8 => array(0x36), 0x1D7E9 => array(0x37),
3123
-                    0x1D7EA => array(0x38), 0x1D7EB => array(0x39), 0x1D7EC => array(0x30),
3124
-                    0x1D7ED => array(0x31), 0x1D7EE => array(0x32), 0x1D7EF => array(0x33),
3125
-                    0x1D7F0 => array(0x34), 0x1D7F1 => array(0x35), 0x1D7F2 => array(0x36),
3126
-                    0x1D7F3 => array(0x37), 0x1D7F4 => array(0x38), 0x1D7F5 => array(0x39),
3127
-                    0x1D7F6 => array(0x30), 0x1D7F7 => array(0x31), 0x1D7F8 => array(0x32),
3128
-                    0x1D7F9 => array(0x33), 0x1D7FA => array(0x34), 0x1D7FB => array(0x35),
3129
-                    0x1D7FC => array(0x36), 0x1D7FD => array(0x37), 0x1D7FE => array(0x38),
3130
-                    0x1D7FF => array(0x39), 0x1EE00 => array(0x627), 0x1EE01 => array(0x628),
3131
-                    0x1EE02 => array(0x62C), 0x1EE03 => array(0x62F), 0x1EE05 => array(0x648),
3132
-                    0x1EE06 => array(0x632), 0x1EE07 => array(0x62D), 0x1EE08 => array(0x637),
3133
-                    0x1EE09 => array(0x64A), 0x1EE0A => array(0x643), 0x1EE0B => array(0x644),
3134
-                    0x1EE0C => array(0x645), 0x1EE0D => array(0x646), 0x1EE0E => array(0x633),
3135
-                    0x1EE0F => array(0x639), 0x1EE10 => array(0x641), 0x1EE11 => array(0x635),
3136
-                    0x1EE12 => array(0x642), 0x1EE13 => array(0x631), 0x1EE14 => array(0x634),
3137
-                    0x1EE15 => array(0x62A), 0x1EE16 => array(0x62B), 0x1EE17 => array(0x62E),
3138
-                    0x1EE18 => array(0x630), 0x1EE19 => array(0x636), 0x1EE1A => array(0x638),
3139
-                    0x1EE1B => array(0x63A), 0x1EE1C => array(0x66E), 0x1EE1D => array(0x6BA),
3140
-                    0x1EE1E => array(0x6A1), 0x1EE1F => array(0x66F), 0x1EE21 => array(0x628),
3141
-                    0x1EE22 => array(0x62C), 0x1EE24 => array(0x647), 0x1EE27 => array(0x62D),
3142
-                    0x1EE29 => array(0x64A), 0x1EE2A => array(0x643), 0x1EE2B => array(0x644),
3143
-                    0x1EE2C => array(0x645), 0x1EE2D => array(0x646), 0x1EE2E => array(0x633),
3144
-                    0x1EE2F => array(0x639), 0x1EE30 => array(0x641), 0x1EE31 => array(0x635),
3145
-                    0x1EE32 => array(0x642), 0x1EE34 => array(0x634), 0x1EE35 => array(0x62A),
3146
-                    0x1EE36 => array(0x62B), 0x1EE37 => array(0x62E), 0x1EE39 => array(0x636),
3147
-                    0x1EE3B => array(0x63A), 0x1EE42 => array(0x62C), 0x1EE47 => array(0x62D),
3148
-                    0x1EE49 => array(0x64A), 0x1EE4B => array(0x644), 0x1EE4D => array(0x646),
3149
-                    0x1EE4E => array(0x633), 0x1EE4F => array(0x639), 0x1EE51 => array(0x635),
3150
-                    0x1EE52 => array(0x642), 0x1EE54 => array(0x634), 0x1EE57 => array(0x62E),
3151
-                    0x1EE59 => array(0x636), 0x1EE5B => array(0x63A), 0x1EE5D => array(0x6BA),
3152
-                    0x1EE5F => array(0x66F), 0x1EE61 => array(0x628), 0x1EE62 => array(0x62C),
3153
-                    0x1EE64 => array(0x647), 0x1EE67 => array(0x62D), 0x1EE68 => array(0x637),
3154
-                    0x1EE69 => array(0x64A), 0x1EE6A => array(0x643), 0x1EE6C => array(0x645),
3155
-                    0x1EE6D => array(0x646), 0x1EE6E => array(0x633), 0x1EE6F => array(0x639),
3156
-                    0x1EE70 => array(0x641), 0x1EE71 => array(0x635), 0x1EE72 => array(0x642),
3157
-                    0x1EE74 => array(0x634), 0x1EE75 => array(0x62A), 0x1EE76 => array(0x62B),
3158
-                    0x1EE77 => array(0x62E), 0x1EE79 => array(0x636), 0x1EE7A => array(0x638),
3159
-                    0x1EE7B => array(0x63A), 0x1EE7C => array(0x66E), 0x1EE7E => array(0x6A1),
3160
-                    0x1EE80 => array(0x627), 0x1EE81 => array(0x628), 0x1EE82 => array(0x62C),
3161
-                    0x1EE83 => array(0x62F), 0x1EE84 => array(0x647), 0x1EE85 => array(0x648),
3162
-                    0x1EE86 => array(0x632), 0x1EE87 => array(0x62D), 0x1EE88 => array(0x637),
3163
-                    0x1EE89 => array(0x64A), 0x1EE8B => array(0x644), 0x1EE8C => array(0x645),
3164
-                    0x1EE8D => array(0x646), 0x1EE8E => array(0x633), 0x1EE8F => array(0x639),
3165
-                    0x1EE90 => array(0x641), 0x1EE91 => array(0x635), 0x1EE92 => array(0x642),
3166
-                    0x1EE93 => array(0x631), 0x1EE94 => array(0x634), 0x1EE95 => array(0x62A),
3167
-                    0x1EE96 => array(0x62B), 0x1EE97 => array(0x62E), 0x1EE98 => array(0x630),
3168
-                    0x1EE99 => array(0x636), 0x1EE9A => array(0x638), 0x1EE9B => array(0x63A),
3169
-                    0x1EEA1 => array(0x628), 0x1EEA2 => array(0x62C), 0x1EEA3 => array(0x62F),
3170
-                    0x1EEA5 => array(0x648), 0x1EEA6 => array(0x632), 0x1EEA7 => array(0x62D),
3171
-                    0x1EEA8 => array(0x637), 0x1EEA9 => array(0x64A), 0x1EEAB => array(0x644),
3172
-                    0x1EEAC => array(0x645), 0x1EEAD => array(0x646), 0x1EEAE => array(0x633),
3173
-                    0x1EEAF => array(0x639), 0x1EEB0 => array(0x641), 0x1EEB1 => array(0x635),
3174
-                    0x1EEB2 => array(0x642), 0x1EEB3 => array(0x631), 0x1EEB4 => array(0x634),
3175
-                    0x1EEB5 => array(0x62A), 0x1EEB6 => array(0x62B), 0x1EEB7 => array(0x62E),
3176
-                    0x1EEB8 => array(0x630), 0x1EEB9 => array(0x636), 0x1EEBA => array(0x638),
3177
-                    0x1EEBB => array(0x63A), 0x1F12A => array(0x3014, 0x73, 0x3015), 0x1F12B => array(0x63),
3178
-                    0x1F12C => array(0x72), 0x1F12D => array(0x63, 0x64), 0x1F12E => array(0x77, 0x7A),
3179
-                    0x1F130 => array(0x61), 0x1F131 => array(0x62), 0x1F132 => array(0x63),
3180
-                    0x1F133 => array(0x64), 0x1F134 => array(0x65), 0x1F135 => array(0x66),
3181
-                    0x1F136 => array(0x67), 0x1F137 => array(0x68), 0x1F138 => array(0x69),
3182
-                    0x1F139 => array(0x6A), 0x1F13A => array(0x6B), 0x1F13B => array(0x6C),
3183
-                    0x1F13C => array(0x6D), 0x1F13D => array(0x6E), 0x1F13E => array(0x6F),
3184
-                    0x1F13F => array(0x70), 0x1F140 => array(0x71), 0x1F141 => array(0x72),
3185
-                    0x1F142 => array(0x73), 0x1F143 => array(0x74), 0x1F144 => array(0x75),
3186
-                    0x1F145 => array(0x76), 0x1F146 => array(0x77), 0x1F147 => array(0x78),
3187
-                    0x1F148 => array(0x79), 0x1F149 => array(0x7A), 0x1F14A => array(0x68, 0x76),
3188
-                    0x1F14B => array(0x6D, 0x76), 0x1F14C => array(0x73, 0x64), 0x1F14D => array(0x73, 0x73),
3189
-                    0x1F14E => array(0x70, 0x70, 0x76), 0x1F14F => array(0x77, 0x63), 0x1F16A => array(0x6D, 0x63),
3190
-                    0x1F16B => array(0x6D, 0x64), 0x1F190 => array(0x64, 0x6A), 0x1F200 => array(0x307B, 0x304B),
3191
-                    0x1F201 => array(0x30B3, 0x30B3), 0x1F202 => array(0x30B5), 0x1F210 => array(0x624B),
3192
-                    0x1F211 => array(0x5B57), 0x1F212 => array(0x53CC), 0x1F213 => array(0x30C7),
3193
-                    0x1F214 => array(0x4E8C), 0x1F215 => array(0x591A), 0x1F216 => array(0x89E3),
3194
-                    0x1F217 => array(0x5929), 0x1F218 => array(0x4EA4), 0x1F219 => array(0x6620),
3195
-                    0x1F21A => array(0x7121), 0x1F21B => array(0x6599), 0x1F21C => array(0x524D),
3196
-                    0x1F21D => array(0x5F8C), 0x1F21E => array(0x518D), 0x1F21F => array(0x65B0),
3197
-                    0x1F220 => array(0x521D), 0x1F221 => array(0x7D42), 0x1F222 => array(0x751F),
3198
-                    0x1F223 => array(0x8CA9), 0x1F224 => array(0x58F0), 0x1F225 => array(0x5439),
3199
-                    0x1F226 => array(0x6F14), 0x1F227 => array(0x6295), 0x1F228 => array(0x6355),
3200
-                    0x1F229 => array(0x4E00), 0x1F22A => array(0x4E09), 0x1F22B => array(0x904A),
3201
-                    0x1F22C => array(0x5DE6), 0x1F22D => array(0x4E2D), 0x1F22E => array(0x53F3),
3202
-                    0x1F22F => array(0x6307), 0x1F230 => array(0x8D70), 0x1F231 => array(0x6253),
3203
-                    0x1F232 => array(0x7981), 0x1F233 => array(0x7A7A), 0x1F234 => array(0x5408),
3204
-                    0x1F235 => array(0x6E80), 0x1F236 => array(0x6709), 0x1F237 => array(0x6708),
3205
-                    0x1F238 => array(0x7533), 0x1F239 => array(0x5272), 0x1F23A => array(0x55B6),
3206
-                    0x1F240 => array(0x3014, 0x672C, 0x3015), 0x1F241 => array(0x3014, 0x4E09, 0x3015), 0x1F242 => array(0x3014, 0x4E8C, 0x3015),
3207
-                    0x1F243 => array(0x3014, 0x5B89, 0x3015), 0x1F244 => array(0x3014, 0x70B9, 0x3015), 0x1F245 => array(0x3014, 0x6253, 0x3015),
3208
-                    0x1F246 => array(0x3014, 0x76D7, 0x3015), 0x1F247 => array(0x3014, 0x52DD, 0x3015), 0x1F248 => array(0x3014, 0x6557, 0x3015),
3209
-                    0x1F250 => array(0x5F97), 0x1F251 => array(0x53EF), 0x2F800 => array(0x4E3D),
3210
-                    0x2F801 => array(0x4E38), 0x2F802 => array(0x4E41), 0x2F803 => array(0x20122),
3211
-                    0x2F804 => array(0x4F60), 0x2F805 => array(0x4FAE), 0x2F806 => array(0x4FBB),
3212
-                    0x2F807 => array(0x5002), 0x2F808 => array(0x507A), 0x2F809 => array(0x5099),
3213
-                    0x2F80A => array(0x50E7), 0x2F80B => array(0x50CF), 0x2F80C => array(0x349E),
3214
-                    0x2F80D => array(0x2063A), 0x2F80E => array(0x514D), 0x2F80F => array(0x5154),
3215
-                    0x2F810 => array(0x5164), 0x2F811 => array(0x5177), 0x2F812 => array(0x2051C),
3216
-                    0x2F813 => array(0x34B9), 0x2F814 => array(0x5167), 0x2F815 => array(0x518D),
3217
-                    0x2F816 => array(0x2054B), 0x2F817 => array(0x5197), 0x2F818 => array(0x51A4),
3218
-                    0x2F819 => array(0x4ECC), 0x2F81A => array(0x51AC), 0x2F81B => array(0x51B5),
3219
-                    0x2F81C => array(0x291DF), 0x2F81D => array(0x51F5), 0x2F81E => array(0x5203),
3220
-                    0x2F81F => array(0x34DF), 0x2F820 => array(0x523B), 0x2F821 => array(0x5246),
3221
-                    0x2F822 => array(0x5272), 0x2F823 => array(0x5277), 0x2F824 => array(0x3515),
3222
-                    0x2F825 => array(0x52C7), 0x2F826 => array(0x52C9), 0x2F827 => array(0x52E4),
3223
-                    0x2F828 => array(0x52FA), 0x2F829 => array(0x5305), 0x2F82A => array(0x5306),
3224
-                    0x2F82B => array(0x5317), 0x2F82C => array(0x5349), 0x2F82D => array(0x5351),
3225
-                    0x2F82E => array(0x535A), 0x2F82F => array(0x5373), 0x2F830 => array(0x537D),
3226
-                    0x2F831 => array(0x537F), 0x2F832 => array(0x537F), 0x2F833 => array(0x537F),
3227
-                    0x2F834 => array(0x20A2C), 0x2F835 => array(0x7070), 0x2F836 => array(0x53CA),
3228
-                    0x2F837 => array(0x53DF), 0x2F838 => array(0x20B63), 0x2F839 => array(0x53EB),
3229
-                    0x2F83A => array(0x53F1), 0x2F83B => array(0x5406), 0x2F83C => array(0x549E),
3230
-                    0x2F83D => array(0x5438), 0x2F83E => array(0x5448), 0x2F83F => array(0x5468),
3231
-                    0x2F840 => array(0x54A2), 0x2F841 => array(0x54F6), 0x2F842 => array(0x5510),
3232
-                    0x2F843 => array(0x5553), 0x2F844 => array(0x5563), 0x2F845 => array(0x5584),
3233
-                    0x2F846 => array(0x5584), 0x2F847 => array(0x5599), 0x2F848 => array(0x55AB),
3234
-                    0x2F849 => array(0x55B3), 0x2F84A => array(0x55C2), 0x2F84B => array(0x5716),
3235
-                    0x2F84C => array(0x5606), 0x2F84D => array(0x5717), 0x2F84E => array(0x5651),
3236
-                    0x2F84F => array(0x5674), 0x2F850 => array(0x5207), 0x2F851 => array(0x58EE),
3237
-                    0x2F852 => array(0x57CE), 0x2F853 => array(0x57F4), 0x2F854 => array(0x580D),
3238
-                    0x2F855 => array(0x578B), 0x2F856 => array(0x5832), 0x2F857 => array(0x5831),
3239
-                    0x2F858 => array(0x58AC), 0x2F859 => array(0x214E4), 0x2F85A => array(0x58F2),
3240
-                    0x2F85B => array(0x58F7), 0x2F85C => array(0x5906), 0x2F85D => array(0x591A),
3241
-                    0x2F85E => array(0x5922), 0x2F85F => array(0x5962), 0x2F860 => array(0x216A8),
3242
-                    0x2F861 => array(0x216EA), 0x2F862 => array(0x59EC), 0x2F863 => array(0x5A1B),
3243
-                    0x2F864 => array(0x5A27), 0x2F865 => array(0x59D8), 0x2F866 => array(0x5A66),
3244
-                    0x2F867 => array(0x36EE), 0x2F869 => array(0x5B08), 0x2F86A => array(0x5B3E),
3245
-                    0x2F86B => array(0x5B3E), 0x2F86C => array(0x219C8), 0x2F86D => array(0x5BC3),
3246
-                    0x2F86E => array(0x5BD8), 0x2F86F => array(0x5BE7), 0x2F870 => array(0x5BF3),
3247
-                    0x2F871 => array(0x21B18), 0x2F872 => array(0x5BFF), 0x2F873 => array(0x5C06),
3248
-                    0x2F875 => array(0x5C22), 0x2F876 => array(0x3781), 0x2F877 => array(0x5C60),
3249
-                    0x2F878 => array(0x5C6E), 0x2F879 => array(0x5CC0), 0x2F87A => array(0x5C8D),
3250
-                    0x2F87B => array(0x21DE4), 0x2F87C => array(0x5D43), 0x2F87D => array(0x21DE6),
3251
-                    0x2F87E => array(0x5D6E), 0x2F87F => array(0x5D6B), 0x2F880 => array(0x5D7C),
3252
-                    0x2F881 => array(0x5DE1), 0x2F882 => array(0x5DE2), 0x2F883 => array(0x382F),
3253
-                    0x2F884 => array(0x5DFD), 0x2F885 => array(0x5E28), 0x2F886 => array(0x5E3D),
3254
-                    0x2F887 => array(0x5E69), 0x2F888 => array(0x3862), 0x2F889 => array(0x22183),
3255
-                    0x2F88A => array(0x387C), 0x2F88B => array(0x5EB0), 0x2F88C => array(0x5EB3),
3256
-                    0x2F88D => array(0x5EB6), 0x2F88E => array(0x5ECA), 0x2F88F => array(0x2A392),
3257
-                    0x2F890 => array(0x5EFE), 0x2F891 => array(0x22331), 0x2F892 => array(0x22331),
3258
-                    0x2F893 => array(0x8201), 0x2F894 => array(0x5F22), 0x2F895 => array(0x5F22),
3259
-                    0x2F896 => array(0x38C7), 0x2F897 => array(0x232B8), 0x2F898 => array(0x261DA),
3260
-                    0x2F899 => array(0x5F62), 0x2F89A => array(0x5F6B), 0x2F89B => array(0x38E3),
3261
-                    0x2F89C => array(0x5F9A), 0x2F89D => array(0x5FCD), 0x2F89E => array(0x5FD7),
3262
-                    0x2F89F => array(0x5FF9), 0x2F8A0 => array(0x6081), 0x2F8A1 => array(0x393A),
3263
-                    0x2F8A2 => array(0x391C), 0x2F8A3 => array(0x6094), 0x2F8A4 => array(0x226D4),
3264
-                    0x2F8A5 => array(0x60C7), 0x2F8A6 => array(0x6148), 0x2F8A7 => array(0x614C),
3265
-                    0x2F8A8 => array(0x614E), 0x2F8A9 => array(0x614C), 0x2F8AA => array(0x617A),
3266
-                    0x2F8AB => array(0x618E), 0x2F8AC => array(0x61B2), 0x2F8AD => array(0x61A4),
3267
-                    0x2F8AE => array(0x61AF), 0x2F8AF => array(0x61DE), 0x2F8B0 => array(0x61F2),
3268
-                    0x2F8B1 => array(0x61F6), 0x2F8B2 => array(0x6210), 0x2F8B3 => array(0x621B),
3269
-                    0x2F8B4 => array(0x625D), 0x2F8B5 => array(0x62B1), 0x2F8B6 => array(0x62D4),
3270
-                    0x2F8B7 => array(0x6350), 0x2F8B8 => array(0x22B0C), 0x2F8B9 => array(0x633D),
3271
-                    0x2F8BA => array(0x62FC), 0x2F8BB => array(0x6368), 0x2F8BC => array(0x6383),
3272
-                    0x2F8BD => array(0x63E4), 0x2F8BE => array(0x22BF1), 0x2F8BF => array(0x6422),
3273
-                    0x2F8C0 => array(0x63C5), 0x2F8C1 => array(0x63A9), 0x2F8C2 => array(0x3A2E),
3274
-                    0x2F8C3 => array(0x6469), 0x2F8C4 => array(0x647E), 0x2F8C5 => array(0x649D),
3275
-                    0x2F8C6 => array(0x6477), 0x2F8C7 => array(0x3A6C), 0x2F8C8 => array(0x654F),
3276
-                    0x2F8C9 => array(0x656C), 0x2F8CA => array(0x2300A), 0x2F8CB => array(0x65E3),
3277
-                    0x2F8CC => array(0x66F8), 0x2F8CD => array(0x6649), 0x2F8CE => array(0x3B19),
3278
-                    0x2F8CF => array(0x6691), 0x2F8D0 => array(0x3B08), 0x2F8D1 => array(0x3AE4),
3279
-                    0x2F8D2 => array(0x5192), 0x2F8D3 => array(0x5195), 0x2F8D4 => array(0x6700),
3280
-                    0x2F8D5 => array(0x669C), 0x2F8D6 => array(0x80AD), 0x2F8D7 => array(0x43D9),
3281
-                    0x2F8D8 => array(0x6717), 0x2F8D9 => array(0x671B), 0x2F8DA => array(0x6721),
3282
-                    0x2F8DB => array(0x675E), 0x2F8DC => array(0x6753), 0x2F8DD => array(0x233C3),
3283
-                    0x2F8DE => array(0x3B49), 0x2F8DF => array(0x67FA), 0x2F8E0 => array(0x6785),
3284
-                    0x2F8E1 => array(0x6852), 0x2F8E2 => array(0x6885), 0x2F8E3 => array(0x2346D),
3285
-                    0x2F8E4 => array(0x688E), 0x2F8E5 => array(0x681F), 0x2F8E6 => array(0x6914),
3286
-                    0x2F8E7 => array(0x3B9D), 0x2F8E8 => array(0x6942), 0x2F8E9 => array(0x69A3),
3287
-                    0x2F8EA => array(0x69EA), 0x2F8EB => array(0x6AA8), 0x2F8EC => array(0x236A3),
3288
-                    0x2F8ED => array(0x6ADB), 0x2F8EE => array(0x3C18), 0x2F8EF => array(0x6B21),
3289
-                    0x2F8F0 => array(0x238A7), 0x2F8F1 => array(0x6B54), 0x2F8F2 => array(0x3C4E),
3290
-                    0x2F8F3 => array(0x6B72), 0x2F8F4 => array(0x6B9F), 0x2F8F5 => array(0x6BBA),
3291
-                    0x2F8F6 => array(0x6BBB), 0x2F8F7 => array(0x23A8D), 0x2F8F8 => array(0x21D0B),
3292
-                    0x2F8F9 => array(0x23AFA), 0x2F8FA => array(0x6C4E), 0x2F8FB => array(0x23CBC),
3293
-                    0x2F8FC => array(0x6CBF), 0x2F8FD => array(0x6CCD), 0x2F8FE => array(0x6C67),
3294
-                    0x2F8FF => array(0x6D16), 0x2F900 => array(0x6D3E), 0x2F901 => array(0x6D77),
3295
-                    0x2F902 => array(0x6D41), 0x2F903 => array(0x6D69), 0x2F904 => array(0x6D78),
3296
-                    0x2F905 => array(0x6D85), 0x2F906 => array(0x23D1E), 0x2F907 => array(0x6D34),
3297
-                    0x2F908 => array(0x6E2F), 0x2F909 => array(0x6E6E), 0x2F90A => array(0x3D33),
3298
-                    0x2F90B => array(0x6ECB), 0x2F90C => array(0x6EC7), 0x2F90D => array(0x23ED1),
3299
-                    0x2F90E => array(0x6DF9), 0x2F90F => array(0x6F6E), 0x2F910 => array(0x23F5E),
3300
-                    0x2F911 => array(0x23F8E), 0x2F912 => array(0x6FC6), 0x2F913 => array(0x7039),
3301
-                    0x2F914 => array(0x701E), 0x2F915 => array(0x701B), 0x2F916 => array(0x3D96),
3302
-                    0x2F917 => array(0x704A), 0x2F918 => array(0x707D), 0x2F919 => array(0x7077),
3303
-                    0x2F91A => array(0x70AD), 0x2F91B => array(0x20525), 0x2F91C => array(0x7145),
3304
-                    0x2F91D => array(0x24263), 0x2F91E => array(0x719C), 0x2F920 => array(0x7228),
3305
-                    0x2F921 => array(0x7235), 0x2F922 => array(0x7250), 0x2F923 => array(0x24608),
3306
-                    0x2F924 => array(0x7280), 0x2F925 => array(0x7295), 0x2F926 => array(0x24735),
3307
-                    0x2F927 => array(0x24814), 0x2F928 => array(0x737A), 0x2F929 => array(0x738B),
3308
-                    0x2F92A => array(0x3EAC), 0x2F92B => array(0x73A5), 0x2F92C => array(0x3EB8),
3309
-                    0x2F92D => array(0x3EB8), 0x2F92E => array(0x7447), 0x2F92F => array(0x745C),
3310
-                    0x2F930 => array(0x7471), 0x2F931 => array(0x7485), 0x2F932 => array(0x74CA),
3311
-                    0x2F933 => array(0x3F1B), 0x2F934 => array(0x7524), 0x2F935 => array(0x24C36),
3312
-                    0x2F936 => array(0x753E), 0x2F937 => array(0x24C92), 0x2F938 => array(0x7570),
3313
-                    0x2F939 => array(0x2219F), 0x2F93A => array(0x7610), 0x2F93B => array(0x24FA1),
3314
-                    0x2F93C => array(0x24FB8), 0x2F93D => array(0x25044), 0x2F93E => array(0x3FFC),
3315
-                    0x2F93F => array(0x4008), 0x2F940 => array(0x76F4), 0x2F941 => array(0x250F3),
3316
-                    0x2F942 => array(0x250F2), 0x2F943 => array(0x25119), 0x2F944 => array(0x25133),
3317
-                    0x2F945 => array(0x771E), 0x2F946 => array(0x771F), 0x2F947 => array(0x771F),
3318
-                    0x2F948 => array(0x774A), 0x2F949 => array(0x4039), 0x2F94A => array(0x778B),
3319
-                    0x2F94B => array(0x4046), 0x2F94C => array(0x4096), 0x2F94D => array(0x2541D),
3320
-                    0x2F94E => array(0x784E), 0x2F94F => array(0x788C), 0x2F950 => array(0x78CC),
3321
-                    0x2F951 => array(0x40E3), 0x2F952 => array(0x25626), 0x2F953 => array(0x7956),
3322
-                    0x2F954 => array(0x2569A), 0x2F955 => array(0x256C5), 0x2F956 => array(0x798F),
3323
-                    0x2F957 => array(0x79EB), 0x2F958 => array(0x412F), 0x2F959 => array(0x7A40),
3324
-                    0x2F95A => array(0x7A4A), 0x2F95B => array(0x7A4F), 0x2F95C => array(0x2597C),
3325
-                    0x2F95D => array(0x25AA7), 0x2F95E => array(0x25AA7), 0x2F960 => array(0x4202),
3326
-                    0x2F961 => array(0x25BAB), 0x2F962 => array(0x7BC6), 0x2F963 => array(0x7BC9),
3327
-                    0x2F964 => array(0x4227), 0x2F965 => array(0x25C80), 0x2F966 => array(0x7CD2),
3328
-                    0x2F967 => array(0x42A0), 0x2F968 => array(0x7CE8), 0x2F969 => array(0x7CE3),
3329
-                    0x2F96A => array(0x7D00), 0x2F96B => array(0x25F86), 0x2F96C => array(0x7D63),
3330
-                    0x2F96D => array(0x4301), 0x2F96E => array(0x7DC7), 0x2F96F => array(0x7E02),
3331
-                    0x2F970 => array(0x7E45), 0x2F971 => array(0x4334), 0x2F972 => array(0x26228),
3332
-                    0x2F973 => array(0x26247), 0x2F974 => array(0x4359), 0x2F975 => array(0x262D9),
3333
-                    0x2F976 => array(0x7F7A), 0x2F977 => array(0x2633E), 0x2F978 => array(0x7F95),
3334
-                    0x2F979 => array(0x7FFA), 0x2F97A => array(0x8005), 0x2F97B => array(0x264DA),
3335
-                    0x2F97C => array(0x26523), 0x2F97D => array(0x8060), 0x2F97E => array(0x265A8),
3336
-                    0x2F97F => array(0x8070), 0x2F980 => array(0x2335F), 0x2F981 => array(0x43D5),
3337
-                    0x2F982 => array(0x80B2), 0x2F983 => array(0x8103), 0x2F984 => array(0x440B),
3338
-                    0x2F985 => array(0x813E), 0x2F986 => array(0x5AB5), 0x2F987 => array(0x267A7),
3339
-                    0x2F988 => array(0x267B5), 0x2F989 => array(0x23393), 0x2F98A => array(0x2339C),
3340
-                    0x2F98B => array(0x8201), 0x2F98C => array(0x8204), 0x2F98D => array(0x8F9E),
3341
-                    0x2F98E => array(0x446B), 0x2F98F => array(0x8291), 0x2F990 => array(0x828B),
3342
-                    0x2F991 => array(0x829D), 0x2F992 => array(0x52B3), 0x2F993 => array(0x82B1),
3343
-                    0x2F994 => array(0x82B3), 0x2F995 => array(0x82BD), 0x2F996 => array(0x82E6),
3344
-                    0x2F997 => array(0x26B3C), 0x2F998 => array(0x82E5), 0x2F999 => array(0x831D),
3345
-                    0x2F99A => array(0x8363), 0x2F99B => array(0x83AD), 0x2F99C => array(0x8323),
3346
-                    0x2F99D => array(0x83BD), 0x2F99E => array(0x83E7), 0x2F99F => array(0x8457),
3347
-                    0x2F9A0 => array(0x8353), 0x2F9A1 => array(0x83CA), 0x2F9A2 => array(0x83CC),
3348
-                    0x2F9A3 => array(0x83DC), 0x2F9A4 => array(0x26C36), 0x2F9A5 => array(0x26D6B),
3349
-                    0x2F9A6 => array(0x26CD5), 0x2F9A7 => array(0x452B), 0x2F9A8 => array(0x84F1),
3350
-                    0x2F9A9 => array(0x84F3), 0x2F9AA => array(0x8516), 0x2F9AB => array(0x273CA),
3351
-                    0x2F9AC => array(0x8564), 0x2F9AD => array(0x26F2C), 0x2F9AE => array(0x455D),
3352
-                    0x2F9AF => array(0x4561), 0x2F9B0 => array(0x26FB1), 0x2F9B1 => array(0x270D2),
3353
-                    0x2F9B2 => array(0x456B), 0x2F9B3 => array(0x8650), 0x2F9B4 => array(0x865C),
3354
-                    0x2F9B5 => array(0x8667), 0x2F9B6 => array(0x8669), 0x2F9B7 => array(0x86A9),
3355
-                    0x2F9B8 => array(0x8688), 0x2F9B9 => array(0x870E), 0x2F9BA => array(0x86E2),
3356
-                    0x2F9BB => array(0x8779), 0x2F9BC => array(0x8728), 0x2F9BD => array(0x876B),
3357
-                    0x2F9BE => array(0x8786), 0x2F9C0 => array(0x87E1), 0x2F9C1 => array(0x8801),
3358
-                    0x2F9C2 => array(0x45F9), 0x2F9C3 => array(0x8860), 0x2F9C4 => array(0x8863),
3359
-                    0x2F9C5 => array(0x27667), 0x2F9C6 => array(0x88D7), 0x2F9C7 => array(0x88DE),
3360
-                    0x2F9C8 => array(0x4635), 0x2F9C9 => array(0x88FA), 0x2F9CA => array(0x34BB),
3361
-                    0x2F9CB => array(0x278AE), 0x2F9CC => array(0x27966), 0x2F9CD => array(0x46BE),
3362
-                    0x2F9CE => array(0x46C7), 0x2F9CF => array(0x8AA0), 0x2F9D0 => array(0x8AED),
3363
-                    0x2F9D1 => array(0x8B8A), 0x2F9D2 => array(0x8C55), 0x2F9D3 => array(0x27CA8),
3364
-                    0x2F9D4 => array(0x8CAB), 0x2F9D5 => array(0x8CC1), 0x2F9D6 => array(0x8D1B),
3365
-                    0x2F9D7 => array(0x8D77), 0x2F9D8 => array(0x27F2F), 0x2F9D9 => array(0x20804),
3366
-                    0x2F9DA => array(0x8DCB), 0x2F9DB => array(0x8DBC), 0x2F9DC => array(0x8DF0),
3367
-                    0x2F9DD => array(0x208DE), 0x2F9DE => array(0x8ED4), 0x2F9DF => array(0x8F38),
3368
-                    0x2F9E0 => array(0x285D2), 0x2F9E1 => array(0x285ED), 0x2F9E2 => array(0x9094),
3369
-                    0x2F9E3 => array(0x90F1), 0x2F9E4 => array(0x9111), 0x2F9E5 => array(0x2872E),
3370
-                    0x2F9E6 => array(0x911B), 0x2F9E7 => array(0x9238), 0x2F9E8 => array(0x92D7),
3371
-                    0x2F9E9 => array(0x92D8), 0x2F9EA => array(0x927C), 0x2F9EB => array(0x93F9),
3372
-                    0x2F9EC => array(0x9415), 0x2F9ED => array(0x28BFA), 0x2F9EE => array(0x958B),
3373
-                    0x2F9EF => array(0x4995), 0x2F9F0 => array(0x95B7), 0x2F9F1 => array(0x28D77),
3374
-                    0x2F9F2 => array(0x49E6), 0x2F9F3 => array(0x96C3), 0x2F9F4 => array(0x5DB2),
3375
-                    0x2F9F5 => array(0x9723), 0x2F9F6 => array(0x29145), 0x2F9F7 => array(0x2921A),
3376
-                    0x2F9F8 => array(0x4A6E), 0x2F9F9 => array(0x4A76), 0x2F9FA => array(0x97E0),
3377
-                    0x2F9FB => array(0x2940A), 0x2F9FC => array(0x4AB2), 0x2F9FD => array(0x29496),
3378
-                    0x2F9FE => array(0x980B), 0x2F9FF => array(0x980B), 0x2FA00 => array(0x9829),
3379
-                    0x2FA01 => array(0x295B6), 0x2FA02 => array(0x98E2), 0x2FA03 => array(0x4B33),
3380
-                    0x2FA04 => array(0x9929), 0x2FA05 => array(0x99A7), 0x2FA06 => array(0x99C2),
3381
-                    0x2FA07 => array(0x99FE), 0x2FA08 => array(0x4BCE), 0x2FA09 => array(0x29B30),
3382
-                    0x2FA0A => array(0x9B12), 0x2FA0B => array(0x9C40), 0x2FA0C => array(0x9CFD),
3383
-                    0x2FA0D => array(0x4CCE), 0x2FA0E => array(0x4CED), 0x2FA0F => array(0x9D67),
3384
-                    0x2FA10 => array(0x2A0CE), 0x2FA11 => array(0x4CF8), 0x2FA12 => array(0x2A105),
3385
-                    0x2FA13 => array(0x2A20E), 0x2FA14 => array(0x2A291), 0x2FA15 => array(0x9EBB),
3386
-                    0x2FA16 => array(0x4D56), 0x2FA17 => array(0x9EF9), 0x2FA18 => array(0x9EFE),
3387
-                    0x2FA19 => array(0x9F05), 0x2FA1A => array(0x9F0F), 0x2FA1B => array(0x9F16),
3388
-                    0x2FA1C => array(0x9F3B), 0x2FA1D => array(0x2A600)
3389
-            ),
3390
-            'norm_combcls' => array(0x334 => 1, 0x335 => 1, 0x336 => 1, 0x337 => 1,
3391
-                    0x338 => 1, 0x93C => 7, 0x9BC => 7, 0xA3C => 7, 0xABC => 7,
3392
-                    0xB3C => 7, 0xCBC => 7, 0x1037 => 7, 0x3099 => 8, 0x309A => 8,
3393
-                    0x94D => 9, 0x9CD => 9, 0xA4D => 9, 0xACD => 9, 0xB4D => 9,
3394
-                    0xBCD => 9, 0xC4D => 9, 0xCCD => 9, 0xD4D => 9, 0xDCA => 9,
3395
-                    0xE3A => 9, 0xF84 => 9, 0x1039 => 9, 0x1714 => 9, 0x1734 => 9,
3396
-                    0x17D2 => 9, 0x5B0 => 10, 0x5B1 => 11, 0x5B2 => 12, 0x5B3 => 13,
3397
-                    0x5B4 => 14, 0x5B5 => 15, 0x5B6 => 16, 0x5B7 => 17, 0x5B8 => 18,
3398
-                    0x5B9 => 19, 0x5BB => 20, 0x5Bc => 21, 0x5BD => 22, 0x5BF => 23,
3399
-                    0x5C1 => 24, 0x5C2 => 25, 0xFB1E => 26, 0x64B => 27, 0x64C => 28,
3400
-                    0x64D => 29, 0x64E => 30, 0x64F => 31, 0x650 => 32, 0x651 => 33,
3401
-                    0x652 => 34, 0x670 => 35, 0x711 => 36, 0xC55 => 84, 0xC56 => 91,
3402
-                    0xE38 => 103, 0xE39 => 103, 0xE48 => 107, 0xE49 => 107, 0xE4A => 107,
3403
-                    0xE4B => 107, 0xEB8 => 118, 0xEB9 => 118, 0xEC8 => 122, 0xEC9 => 122,
3404
-                    0xECA => 122, 0xECB => 122, 0xF71 => 129, 0xF72 => 130, 0xF7A => 130,
3405
-                    0xF7B => 130, 0xF7C => 130, 0xF7D => 130, 0xF80 => 130, 0xF74 => 132,
3406
-                    0x321 => 202, 0x322 => 202, 0x327 => 202, 0x328 => 202, 0x31B => 216,
3407
-                    0xF39 => 216, 0x1D165 => 216, 0x1D166 => 216, 0x1D16E => 216, 0x1D16F => 216,
3408
-                    0x1D170 => 216, 0x1D171 => 216, 0x1D172 => 216, 0x302A => 218, 0x316 => 220,
3409
-                    0x317 => 220, 0x318 => 220, 0x319 => 220, 0x31C => 220, 0x31D => 220,
3410
-                    0x31E => 220, 0x31F => 220, 0x320 => 220, 0x323 => 220, 0x324 => 220,
3411
-                    0x325 => 220, 0x326 => 220, 0x329 => 220, 0x32A => 220, 0x32B => 220,
3412
-                    0x32C => 220, 0x32D => 220, 0x32E => 220, 0x32F => 220, 0x330 => 220,
3413
-                    0x331 => 220, 0x332 => 220, 0x333 => 220, 0x339 => 220, 0x33A => 220,
3414
-                    0x33B => 220, 0x33C => 220, 0x347 => 220, 0x348 => 220, 0x349 => 220,
3415
-                    0x34D => 220, 0x34E => 220, 0x353 => 220, 0x354 => 220, 0x355 => 220,
3416
-                    0x356 => 220, 0x591 => 220, 0x596 => 220, 0x59B => 220, 0x5A3 => 220,
3417
-                    0x5A4 => 220, 0x5A5 => 220, 0x5A6 => 220, 0x5A7 => 220, 0x5AA => 220,
3418
-                    0x655 => 220, 0x656 => 220, 0x6E3 => 220, 0x6EA => 220, 0x6ED => 220,
3419
-                    0x731 => 220, 0x734 => 220, 0x737 => 220, 0x738 => 220, 0x739 => 220,
3420
-                    0x73B => 220, 0x73C => 220, 0x73E => 220, 0x742 => 220, 0x744 => 220,
3421
-                    0x746 => 220, 0x748 => 220, 0x952 => 220, 0xF18 => 220, 0xF19 => 220,
3422
-                    0xF35 => 220, 0xF37 => 220, 0xFC6 => 220, 0x193B => 220, 0x20E8 => 220,
3423
-                    0x1D17B => 220, 0x1D17C => 220, 0x1D17D => 220, 0x1D17E => 220, 0x1D17F => 220,
3424
-                    0x1D180 => 220, 0x1D181 => 220, 0x1D182 => 220, 0x1D18A => 220, 0x1D18B => 220,
3425
-                    0x59A => 222, 0x5AD => 222, 0x1929 => 222, 0x302D => 222, 0x302E => 224,
3426
-                    0x302F => 224, 0x1D16D => 226, 0x5AE => 228, 0x18A9 => 228, 0x302B => 228,
3427
-                    0x300 => 230, 0x301 => 230, 0x302 => 230, 0x303 => 230, 0x304 => 230,
3428
-                    0x305 => 230, 0x306 => 230, 0x307 => 230, 0x308 => 230, 0x309 => 230,
3429
-                    0x30A => 230, 0x30B => 230, 0x30C => 230, 0x30D => 230, 0x30E => 230,
3430
-                    0x30F => 230, 0x310 => 230, 0x311 => 230, 0x312 => 230, 0x313 => 230,
3431
-                    0x314 => 230, 0x33D => 230, 0x33E => 230, 0x33F => 230, 0x340 => 230,
3432
-                    0x341 => 230, 0x342 => 230, 0x343 => 230, 0x344 => 230, 0x346 => 230,
3433
-                    0x34A => 230, 0x34B => 230, 0x34C => 230, 0x350 => 230, 0x351 => 230,
3434
-                    0x352 => 230, 0x357 => 230, 0x363 => 230, 0x364 => 230, 0x365 => 230,
3435
-                    0x366 => 230, 0x367 => 230, 0x368 => 230, 0x369 => 230, 0x36A => 230,
3436
-                    0x36B => 230, 0x36C => 230, 0x36D => 230, 0x36E => 230, 0x36F => 230,
3437
-                    0x483 => 230, 0x484 => 230, 0x485 => 230, 0x486 => 230, 0x592 => 230,
3438
-                    0x593 => 230, 0x594 => 230, 0x595 => 230, 0x597 => 230, 0x598 => 230,
3439
-                    0x599 => 230, 0x59C => 230, 0x59D => 230, 0x59E => 230, 0x59F => 230,
3440
-                    0x5A0 => 230, 0x5A1 => 230, 0x5A8 => 230, 0x5A9 => 230, 0x5AB => 230,
3441
-                    0x5AC => 230, 0x5AF => 230, 0x5C4 => 230, 0x610 => 230, 0x611 => 230,
3442
-                    0x612 => 230, 0x613 => 230, 0x614 => 230, 0x615 => 230, 0x653 => 230,
3443
-                    0x654 => 230, 0x657 => 230, 0x658 => 230, 0x6D6 => 230, 0x6D7 => 230,
3444
-                    0x6D8 => 230, 0x6D9 => 230, 0x6DA => 230, 0x6DB => 230, 0x6DC => 230,
3445
-                    0x6DF => 230, 0x6E0 => 230, 0x6E1 => 230, 0x6E2 => 230, 0x6E4 => 230,
3446
-                    0x6E7 => 230, 0x6E8 => 230, 0x6EB => 230, 0x6EC => 230, 0x730 => 230,
3447
-                    0x732 => 230, 0x733 => 230, 0x735 => 230, 0x736 => 230, 0x73A => 230,
3448
-                    0x73D => 230, 0x73F => 230, 0x740 => 230, 0x741 => 230, 0x743 => 230,
3449
-                    0x745 => 230, 0x747 => 230, 0x749 => 230, 0x74A => 230, 0x951 => 230,
3450
-                    0x953 => 230, 0x954 => 230, 0xF82 => 230, 0xF83 => 230, 0xF86 => 230,
3451
-                    0xF87 => 230, 0x170D => 230, 0x193A => 230, 0x20D0 => 230, 0x20D1 => 230,
3452
-                    0x20D4 => 230, 0x20D5 => 230, 0x20D6 => 230, 0x20D7 => 230, 0x20DB => 230,
3453
-                    0x20DC => 230, 0x20E1 => 230, 0x20E7 => 230, 0x20E9 => 230, 0xFE20 => 230,
3454
-                    0xFE21 => 230, 0xFE22 => 230, 0xFE23 => 230, 0x1D185 => 230, 0x1D186 => 230,
3455
-                    0x1D187 => 230, 0x1D189 => 230, 0x1D188 => 230, 0x1D1AA => 230, 0x1D1AB => 230,
3456
-                    0x1D1AC => 230, 0x1D1AD => 230, 0x315 => 232, 0x31A => 232, 0x302C => 232,
3457
-                    0x35F => 233, 0x362 => 233, 0x35D => 234, 0x35E => 234, 0x360 => 234,
3458
-                    0x361 => 234, 0x345 => 240
3459
-            )
3460
-    );
1376
+					0x33C3 => array(0x62, 0x71), 0x33C6 => array(0x63, 0x2215, 0x6B, 0x67),
1377
+					0x33C7 => array(0x63, 0x6F, 0x2E), 0x33C8 => array(0x64, 0x62),
1378
+					0x33C9 => array(0x67, 0x79), 0x33CB => array(0x68, 0x70),
1379
+					0x33CD => array(0x6B, 0x6B), 0x33CE => array(0x6B, 0x6D),
1380
+					0x33D7 => array(0x70, 0x68), 0x33D9 => array(0x70, 0x70, 0x6D),
1381
+					0x33DA => array(0x70, 0x72), 0x33DC => array(0x73, 0x76),
1382
+					0x33DD => array(0x77, 0x62), 0xFB00 => array(0x66, 0x66),
1383
+					0xFB01 => array(0x66, 0x69), 0xFB02 => array(0x66, 0x6C),
1384
+					0xFB03 => array(0x66, 0x66, 0x69), 0xFB04 => array(0x66, 0x66, 0x6C),
1385
+					0xFB05 => array(0x73, 0x74), 0xFB06 => array(0x73, 0x74),
1386
+					0xFB13 => array(0x574, 0x576), 0xFB14 => array(0x574, 0x565),
1387
+					0xFB15 => array(0x574, 0x56B), 0xFB16 => array(0x57E, 0x576),
1388
+					0xFB17 => array(0x574, 0x56D), 0xFF21 => array(0xFF41),
1389
+					0xFF22 => array(0xFF42), 0xFF23 => array(0xFF43), 0xFF24 => array(0xFF44),
1390
+					0xFF25 => array(0xFF45), 0xFF26 => array(0xFF46), 0xFF27 => array(0xFF47),
1391
+					0xFF28 => array(0xFF48), 0xFF29 => array(0xFF49), 0xFF2A => array(0xFF4A),
1392
+					0xFF2B => array(0xFF4B), 0xFF2C => array(0xFF4C), 0xFF2D => array(0xFF4D),
1393
+					0xFF2E => array(0xFF4E), 0xFF2F => array(0xFF4F), 0xFF30 => array(0xFF50),
1394
+					0xFF31 => array(0xFF51), 0xFF32 => array(0xFF52), 0xFF33 => array(0xFF53),
1395
+					0xFF34 => array(0xFF54), 0xFF35 => array(0xFF55), 0xFF36 => array(0xFF56),
1396
+					0xFF37 => array(0xFF57), 0xFF38 => array(0xFF58), 0xFF39 => array(0xFF59),
1397
+					0xFF3A => array(0xFF5A), 0x10400 => array(0x10428), 0x10401 => array(0x10429),
1398
+					0x10402 => array(0x1042A), 0x10403 => array(0x1042B), 0x10404 => array(0x1042C),
1399
+					0x10405 => array(0x1042D), 0x10406 => array(0x1042E), 0x10407 => array(0x1042F),
1400
+					0x10408 => array(0x10430), 0x10409 => array(0x10431), 0x1040A => array(0x10432),
1401
+					0x1040B => array(0x10433), 0x1040C => array(0x10434), 0x1040D => array(0x10435),
1402
+					0x1040E => array(0x10436), 0x1040F => array(0x10437), 0x10410 => array(0x10438),
1403
+					0x10411 => array(0x10439), 0x10412 => array(0x1043A), 0x10413 => array(0x1043B),
1404
+					0x10414 => array(0x1043C), 0x10415 => array(0x1043D), 0x10416 => array(0x1043E),
1405
+					0x10417 => array(0x1043F), 0x10418 => array(0x10440), 0x10419 => array(0x10441),
1406
+					0x1041A => array(0x10442), 0x1041B => array(0x10443), 0x1041C => array(0x10444),
1407
+					0x1041D => array(0x10445), 0x1041E => array(0x10446), 0x1041F => array(0x10447),
1408
+					0x10420 => array(0x10448), 0x10421 => array(0x10449), 0x10422 => array(0x1044A),
1409
+					0x10423 => array(0x1044B), 0x10424 => array(0x1044C), 0x10425 => array(0x1044D),
1410
+					0x1D400 => array(0x61), 0x1D401 => array(0x62), 0x1D402 => array(0x63),
1411
+					0x1D403 => array(0x64), 0x1D404 => array(0x65), 0x1D405 => array(0x66),
1412
+					0x1D406 => array(0x67), 0x1D407 => array(0x68), 0x1D408 => array(0x69),
1413
+					0x1D409 => array(0x6A), 0x1D40A => array(0x6B), 0x1D40B => array(0x6C),
1414
+					0x1D40C => array(0x6D), 0x1D40D => array(0x6E), 0x1D40E => array(0x6F),
1415
+					0x1D40F => array(0x70), 0x1D410 => array(0x71), 0x1D411 => array(0x72),
1416
+					0x1D412 => array(0x73), 0x1D413 => array(0x74), 0x1D414 => array(0x75),
1417
+					0x1D415 => array(0x76), 0x1D416 => array(0x77), 0x1D417 => array(0x78),
1418
+					0x1D418 => array(0x79), 0x1D419 => array(0x7A), 0x1D434 => array(0x61),
1419
+					0x1D435 => array(0x62), 0x1D436 => array(0x63), 0x1D437 => array(0x64),
1420
+					0x1D438 => array(0x65), 0x1D439 => array(0x66), 0x1D43A => array(0x67),
1421
+					0x1D43B => array(0x68), 0x1D43C => array(0x69), 0x1D43D => array(0x6A),
1422
+					0x1D43E => array(0x6B), 0x1D43F => array(0x6C), 0x1D440 => array(0x6D),
1423
+					0x1D441 => array(0x6E), 0x1D442 => array(0x6F), 0x1D443 => array(0x70),
1424
+					0x1D444 => array(0x71), 0x1D445 => array(0x72), 0x1D446 => array(0x73),
1425
+					0x1D447 => array(0x74), 0x1D448 => array(0x75), 0x1D449 => array(0x76),
1426
+					0x1D44A => array(0x77), 0x1D44B => array(0x78), 0x1D44C => array(0x79),
1427
+					0x1D44D => array(0x7A), 0x1D468 => array(0x61), 0x1D469 => array(0x62),
1428
+					0x1D46A => array(0x63), 0x1D46B => array(0x64), 0x1D46C => array(0x65),
1429
+					0x1D46D => array(0x66), 0x1D46E => array(0x67), 0x1D46F => array(0x68),
1430
+					0x1D470 => array(0x69), 0x1D471 => array(0x6A), 0x1D472 => array(0x6B),
1431
+					0x1D473 => array(0x6C), 0x1D474 => array(0x6D), 0x1D475 => array(0x6E),
1432
+					0x1D476 => array(0x6F), 0x1D477 => array(0x70), 0x1D478 => array(0x71),
1433
+					0x1D479 => array(0x72), 0x1D47A => array(0x73), 0x1D47B => array(0x74),
1434
+					0x1D47C => array(0x75), 0x1D47D => array(0x76), 0x1D47E => array(0x77),
1435
+					0x1D47F => array(0x78), 0x1D480 => array(0x79), 0x1D481 => array(0x7A),
1436
+					0x1D49C => array(0x61), 0x1D49E => array(0x63), 0x1D49F => array(0x64),
1437
+					0x1D4A2 => array(0x67), 0x1D4A5 => array(0x6A), 0x1D4A6 => array(0x6B),
1438
+					0x1D4A9 => array(0x6E), 0x1D4AA => array(0x6F), 0x1D4AB => array(0x70),
1439
+					0x1D4AC => array(0x71), 0x1D4AE => array(0x73), 0x1D4AF => array(0x74),
1440
+					0x1D4B0 => array(0x75), 0x1D4B1 => array(0x76), 0x1D4B2 => array(0x77),
1441
+					0x1D4B3 => array(0x78), 0x1D4B4 => array(0x79), 0x1D4B5 => array(0x7A),
1442
+					0x1D4D0 => array(0x61), 0x1D4D1 => array(0x62), 0x1D4D2 => array(0x63),
1443
+					0x1D4D3 => array(0x64), 0x1D4D4 => array(0x65), 0x1D4D5 => array(0x66),
1444
+					0x1D4D6 => array(0x67), 0x1D4D7 => array(0x68), 0x1D4D8 => array(0x69),
1445
+					0x1D4D9 => array(0x6A), 0x1D4DA => array(0x6B), 0x1D4DB => array(0x6C),
1446
+					0x1D4DC => array(0x6D), 0x1D4DD => array(0x6E), 0x1D4DE => array(0x6F),
1447
+					0x1D4DF => array(0x70), 0x1D4E0 => array(0x71), 0x1D4E1 => array(0x72),
1448
+					0x1D4E2 => array(0x73), 0x1D4E3 => array(0x74), 0x1D4E4 => array(0x75),
1449
+					0x1D4E5 => array(0x76), 0x1D4E6 => array(0x77), 0x1D4E7 => array(0x78),
1450
+					0x1D4E8 => array(0x79), 0x1D4E9 => array(0x7A), 0x1D504 => array(0x61),
1451
+					0x1D505 => array(0x62), 0x1D507 => array(0x64), 0x1D508 => array(0x65),
1452
+					0x1D509 => array(0x66), 0x1D50A => array(0x67), 0x1D50D => array(0x6A),
1453
+					0x1D50E => array(0x6B), 0x1D50F => array(0x6C), 0x1D510 => array(0x6D),
1454
+					0x1D511 => array(0x6E), 0x1D512 => array(0x6F), 0x1D513 => array(0x70),
1455
+					0x1D514 => array(0x71), 0x1D516 => array(0x73), 0x1D517 => array(0x74),
1456
+					0x1D518 => array(0x75), 0x1D519 => array(0x76), 0x1D51A => array(0x77),
1457
+					0x1D51B => array(0x78), 0x1D51C => array(0x79), 0x1D538 => array(0x61),
1458
+					0x1D539 => array(0x62), 0x1D53B => array(0x64), 0x1D53C => array(0x65),
1459
+					0x1D53D => array(0x66), 0x1D53E => array(0x67), 0x1D540 => array(0x69),
1460
+					0x1D541 => array(0x6A), 0x1D542 => array(0x6B), 0x1D543 => array(0x6C),
1461
+					0x1D544 => array(0x6D), 0x1D546 => array(0x6F), 0x1D54A => array(0x73),
1462
+					0x1D54B => array(0x74), 0x1D54C => array(0x75), 0x1D54D => array(0x76),
1463
+					0x1D54E => array(0x77), 0x1D54F => array(0x78), 0x1D550 => array(0x79),
1464
+					0x1D56C => array(0x61), 0x1D56D => array(0x62), 0x1D56E => array(0x63),
1465
+					0x1D56F => array(0x64), 0x1D570 => array(0x65), 0x1D571 => array(0x66),
1466
+					0x1D572 => array(0x67), 0x1D573 => array(0x68), 0x1D574 => array(0x69),
1467
+					0x1D575 => array(0x6A), 0x1D576 => array(0x6B), 0x1D577 => array(0x6C),
1468
+					0x1D578 => array(0x6D), 0x1D579 => array(0x6E), 0x1D57A => array(0x6F),
1469
+					0x1D57B => array(0x70), 0x1D57C => array(0x71), 0x1D57D => array(0x72),
1470
+					0x1D57E => array(0x73), 0x1D57F => array(0x74), 0x1D580 => array(0x75),
1471
+					0x1D581 => array(0x76), 0x1D582 => array(0x77), 0x1D583 => array(0x78),
1472
+					0x1D584 => array(0x79), 0x1D585 => array(0x7A), 0x1D5A0 => array(0x61),
1473
+					0x1D5A1 => array(0x62), 0x1D5A2 => array(0x63), 0x1D5A3 => array(0x64),
1474
+					0x1D5A4 => array(0x65), 0x1D5A5 => array(0x66), 0x1D5A6 => array(0x67),
1475
+					0x1D5A7 => array(0x68), 0x1D5A8 => array(0x69), 0x1D5A9 => array(0x6A),
1476
+					0x1D5AA => array(0x6B), 0x1D5AB => array(0x6C), 0x1D5AC => array(0x6D),
1477
+					0x1D5AD => array(0x6E), 0x1D5AE => array(0x6F), 0x1D5AF => array(0x70),
1478
+					0x1D5B0 => array(0x71), 0x1D5B1 => array(0x72), 0x1D5B2 => array(0x73),
1479
+					0x1D5B3 => array(0x74), 0x1D5B4 => array(0x75), 0x1D5B5 => array(0x76),
1480
+					0x1D5B6 => array(0x77), 0x1D5B7 => array(0x78), 0x1D5B8 => array(0x79),
1481
+					0x1D5B9 => array(0x7A), 0x1D5D4 => array(0x61), 0x1D5D5 => array(0x62),
1482
+					0x1D5D6 => array(0x63), 0x1D5D7 => array(0x64), 0x1D5D8 => array(0x65),
1483
+					0x1D5D9 => array(0x66), 0x1D5DA => array(0x67), 0x1D5DB => array(0x68),
1484
+					0x1D5DC => array(0x69), 0x1D5DD => array(0x6A), 0x1D5DE => array(0x6B),
1485
+					0x1D5DF => array(0x6C), 0x1D5E0 => array(0x6D), 0x1D5E1 => array(0x6E),
1486
+					0x1D5E2 => array(0x6F), 0x1D5E3 => array(0x70), 0x1D5E4 => array(0x71),
1487
+					0x1D5E5 => array(0x72), 0x1D5E6 => array(0x73), 0x1D5E7 => array(0x74),
1488
+					0x1D5E8 => array(0x75), 0x1D5E9 => array(0x76), 0x1D5EA => array(0x77),
1489
+					0x1D5EB => array(0x78), 0x1D5EC => array(0x79), 0x1D5ED => array(0x7A),
1490
+					0x1D608 => array(0x61), 0x1D609 => array(0x62), 0x1D60A => array(0x63),
1491
+					0x1D60B => array(0x64), 0x1D60C => array(0x65), 0x1D60D => array(0x66),
1492
+					0x1D60E => array(0x67), 0x1D60F => array(0x68), 0x1D610 => array(0x69),
1493
+					0x1D611 => array(0x6A), 0x1D612 => array(0x6B), 0x1D613 => array(0x6C),
1494
+					0x1D614 => array(0x6D), 0x1D615 => array(0x6E), 0x1D616 => array(0x6F),
1495
+					0x1D617 => array(0x70), 0x1D618 => array(0x71), 0x1D619 => array(0x72),
1496
+					0x1D61A => array(0x73), 0x1D61B => array(0x74), 0x1D61C => array(0x75),
1497
+					0x1D61D => array(0x76), 0x1D61E => array(0x77), 0x1D61F => array(0x78),
1498
+					0x1D620 => array(0x79), 0x1D621 => array(0x7A), 0x1D63C => array(0x61),
1499
+					0x1D63D => array(0x62), 0x1D63E => array(0x63), 0x1D63F => array(0x64),
1500
+					0x1D640 => array(0x65), 0x1D641 => array(0x66), 0x1D642 => array(0x67),
1501
+					0x1D643 => array(0x68), 0x1D644 => array(0x69), 0x1D645 => array(0x6A),
1502
+					0x1D646 => array(0x6B), 0x1D647 => array(0x6C), 0x1D648 => array(0x6D),
1503
+					0x1D649 => array(0x6E), 0x1D64A => array(0x6F), 0x1D64B => array(0x70),
1504
+					0x1D64C => array(0x71), 0x1D64D => array(0x72), 0x1D64E => array(0x73),
1505
+					0x1D64F => array(0x74), 0x1D650 => array(0x75), 0x1D651 => array(0x76),
1506
+					0x1D652 => array(0x77), 0x1D653 => array(0x78), 0x1D654 => array(0x79),
1507
+					0x1D655 => array(0x7A), 0x1D670 => array(0x61), 0x1D671 => array(0x62),
1508
+					0x1D672 => array(0x63), 0x1D673 => array(0x64), 0x1D674 => array(0x65),
1509
+					0x1D675 => array(0x66), 0x1D676 => array(0x67), 0x1D677 => array(0x68),
1510
+					0x1D678 => array(0x69), 0x1D679 => array(0x6A), 0x1D67A => array(0x6B),
1511
+					0x1D67B => array(0x6C), 0x1D67C => array(0x6D), 0x1D67D => array(0x6E),
1512
+					0x1D67E => array(0x6F), 0x1D67F => array(0x70), 0x1D680 => array(0x71),
1513
+					0x1D681 => array(0x72), 0x1D682 => array(0x73), 0x1D683 => array(0x74),
1514
+					0x1D684 => array(0x75), 0x1D685 => array(0x76), 0x1D686 => array(0x77),
1515
+					0x1D687 => array(0x78), 0x1D688 => array(0x79), 0x1D689 => array(0x7A),
1516
+					0x1D6A8 => array(0x3B1), 0x1D6A9 => array(0x3B2), 0x1D6AA => array(0x3B3),
1517
+					0x1D6AB => array(0x3B4), 0x1D6AC => array(0x3B5), 0x1D6AD => array(0x3B6),
1518
+					0x1D6AE => array(0x3B7), 0x1D6AF => array(0x3B8), 0x1D6B0 => array(0x3B9),
1519
+					0x1D6B1 => array(0x3BA), 0x1D6B2 => array(0x3BB), 0x1D6B3 => array(0x3BC),
1520
+					0x1D6B4 => array(0x3BD), 0x1D6B5 => array(0x3BE), 0x1D6B6 => array(0x3BF),
1521
+					0x1D6B7 => array(0x3C0), 0x1D6B8 => array(0x3C1), 0x1D6B9 => array(0x3B8),
1522
+					0x1D6BA => array(0x3C3), 0x1D6BB => array(0x3C4), 0x1D6BC => array(0x3C5),
1523
+					0x1D6BD => array(0x3C6), 0x1D6BE => array(0x3C7), 0x1D6BF => array(0x3C8),
1524
+					0x1D6C0 => array(0x3C9), 0x1D6D3 => array(0x3C3), 0x1D6E2 => array(0x3B1),
1525
+					0x1D6E3 => array(0x3B2), 0x1D6E4 => array(0x3B3), 0x1D6E5 => array(0x3B4),
1526
+					0x1D6E6 => array(0x3B5), 0x1D6E7 => array(0x3B6), 0x1D6E8 => array(0x3B7),
1527
+					0x1D6E9 => array(0x3B8), 0x1D6EA => array(0x3B9), 0x1D6EB => array(0x3BA),
1528
+					0x1D6EC => array(0x3BB), 0x1D6ED => array(0x3BC), 0x1D6EE => array(0x3BD),
1529
+					0x1D6EF => array(0x3BE), 0x1D6F0 => array(0x3BF), 0x1D6F1 => array(0x3C0),
1530
+					0x1D6F2 => array(0x3C1), 0x1D6F3 => array(0x3B8), 0x1D6F4 => array(0x3C3),
1531
+					0x1D6F5 => array(0x3C4), 0x1D6F6 => array(0x3C5), 0x1D6F7 => array(0x3C6),
1532
+					0x1D6F8 => array(0x3C7), 0x1D6F9 => array(0x3C8), 0x1D6FA => array(0x3C9),
1533
+					0x1D70D => array(0x3C3), 0x1D71C => array(0x3B1), 0x1D71D => array(0x3B2),
1534
+					0x1D71E => array(0x3B3), 0x1D71F => array(0x3B4), 0x1D720 => array(0x3B5),
1535
+					0x1D721 => array(0x3B6), 0x1D722 => array(0x3B7), 0x1D723 => array(0x3B8),
1536
+					0x1D724 => array(0x3B9), 0x1D725 => array(0x3BA), 0x1D726 => array(0x3BB),
1537
+					0x1D727 => array(0x3BC), 0x1D728 => array(0x3BD), 0x1D729 => array(0x3BE),
1538
+					0x1D72A => array(0x3BF), 0x1D72B => array(0x3C0), 0x1D72C => array(0x3C1),
1539
+					0x1D72D => array(0x3B8), 0x1D72E => array(0x3C3), 0x1D72F => array(0x3C4),
1540
+					0x1D730 => array(0x3C5), 0x1D731 => array(0x3C6), 0x1D732 => array(0x3C7),
1541
+					0x1D733 => array(0x3C8), 0x1D734 => array(0x3C9), 0x1D747 => array(0x3C3),
1542
+					0x1D756 => array(0x3B1), 0x1D757 => array(0x3B2), 0x1D758 => array(0x3B3),
1543
+					0x1D759 => array(0x3B4), 0x1D75A => array(0x3B5), 0x1D75B => array(0x3B6),
1544
+					0x1D75C => array(0x3B7), 0x1D75D => array(0x3B8), 0x1D75E => array(0x3B9),
1545
+					0x1D75F => array(0x3BA), 0x1D760 => array(0x3BB), 0x1D761 => array(0x3BC),
1546
+					0x1D762 => array(0x3BD), 0x1D763 => array(0x3BE), 0x1D764 => array(0x3BF),
1547
+					0x1D765 => array(0x3C0), 0x1D766 => array(0x3C1), 0x1D767 => array(0x3B8),
1548
+					0x1D768 => array(0x3C3), 0x1D769 => array(0x3C4), 0x1D76A => array(0x3C5),
1549
+					0x1D76B => array(0x3C6), 0x1D76C => array(0x3C7), 0x1D76D => array(0x3C8),
1550
+					0x1D76E => array(0x3C9), 0x1D781 => array(0x3C3), 0x1D790 => array(0x3B1),
1551
+					0x1D791 => array(0x3B2), 0x1D792 => array(0x3B3), 0x1D793 => array(0x3B4),
1552
+					0x1D794 => array(0x3B5), 0x1D795 => array(0x3B6), 0x1D796 => array(0x3B7),
1553
+					0x1D797 => array(0x3B8), 0x1D798 => array(0x3B9), 0x1D799 => array(0x3BA),
1554
+					0x1D79A => array(0x3BB), 0x1D79B => array(0x3BC), 0x1D79C => array(0x3BD),
1555
+					0x1D79D => array(0x3BE), 0x1D79E => array(0x3BF), 0x1D79F => array(0x3C0),
1556
+					0x1D7A0 => array(0x3C1), 0x1D7A1 => array(0x3B8), 0x1D7A2 => array(0x3C3),
1557
+					0x1D7A3 => array(0x3C4), 0x1D7A4 => array(0x3C5), 0x1D7A5 => array(0x3C6),
1558
+					0x1D7A6 => array(0x3C7), 0x1D7A7 => array(0x3C8), 0x1D7A8 => array(0x3C9),
1559
+					0x1D7BB => array(0x3C3), 0x3F9 => array(0x3C3), 0x1D2C => array(0x61),
1560
+					0x1D2D => array(0xE6), 0x1D2E => array(0x62), 0x1D30 => array(0x64),
1561
+					0x1D31 => array(0x65), 0x1D32 => array(0x1DD), 0x1D33 => array(0x67),
1562
+					0x1D34 => array(0x68), 0x1D35 => array(0x69), 0x1D36 => array(0x6A),
1563
+					0x1D37 => array(0x6B), 0x1D38 => array(0x6C), 0x1D39 => array(0x6D),
1564
+					0x1D3A => array(0x6E), 0x1D3C => array(0x6F), 0x1D3D => array(0x223),
1565
+					0x1D3E => array(0x70), 0x1D3F => array(0x72), 0x1D40 => array(0x74),
1566
+					0x1D41 => array(0x75), 0x1D42 => array(0x77), 0x213B => array(0x66, 0x61, 0x78),
1567
+					0x3250 => array(0x70, 0x74, 0x65), 0x32CC => array(0x68, 0x67),
1568
+					0x32CE => array(0x65, 0x76), 0x32CF => array(0x6C, 0x74, 0x64),
1569
+					0x337A => array(0x69, 0x75), 0x33DE => array(0x76, 0x2215, 0x6D),
1570
+					0x33DF => array(0x61, 0x2215, 0x6D)
1571
+			),
1572
+			'replacemaps' => array(0x41 => array(0x61), 0x42 => array(0x62), 0x43 => array(0x63),
1573
+					0x44 => array(0x64), 0x45 => array(0x65), 0x46 => array(0x66),
1574
+					0x47 => array(0x67), 0x48 => array(0x68), 0x49 => array(0x69),
1575
+					0x4A => array(0x6A), 0x4B => array(0x6B), 0x4C => array(0x6C),
1576
+					0x4D => array(0x6D), 0x4E => array(0x6E), 0x4F => array(0x6F),
1577
+					0x50 => array(0x70), 0x51 => array(0x71), 0x52 => array(0x72),
1578
+					0x53 => array(0x73), 0x54 => array(0x74), 0x55 => array(0x75),
1579
+					0x56 => array(0x76), 0x57 => array(0x77), 0x58 => array(0x78),
1580
+					0x59 => array(0x79), 0x5A => array(0x7A), 0xAA => array(0x61),
1581
+					0xB2 => array(0x32), 0xB3 => array(0x33), 0xB5 => array(0x3BC),
1582
+					0xB9 => array(0x31), 0xBA => array(0x6F), 0xBC => array(0x31, 0x2044, 0x34),
1583
+					0xBD => array(0x31, 0x2044, 0x32), 0xBE => array(0x33, 0x2044, 0x34), 0xC0 => array(0xE0),
1584
+					0xC1 => array(0xE1), 0xC2 => array(0xE2), 0xC3 => array(0xE3),
1585
+					0xC4 => array(0xE4), 0xC5 => array(0xE5), 0xC6 => array(0xE6),
1586
+					0xC7 => array(0xE7), 0xC8 => array(0xE8), 0xC9 => array(0xE9),
1587
+					0xCA => array(0xEA), 0xCB => array(0xEB), 0xCC => array(0xEC),
1588
+					0xCD => array(0xED), 0xCE => array(0xEE), 0xCF => array(0xEF),
1589
+					0xD0 => array(0xF0), 0xD1 => array(0xF1), 0xD2 => array(0xF2),
1590
+					0xD3 => array(0xF3), 0xD4 => array(0xF4), 0xD5 => array(0xF5),
1591
+					0xD6 => array(0xF6), 0xD8 => array(0xF8), 0xD9 => array(0xF9),
1592
+					0xDA => array(0xFA), 0xDB => array(0xFB), 0xDC => array(0xFC),
1593
+					0xDD => array(0xFD), 0xDE => array(0xFE), 0x100 => array(0x101),
1594
+					0x102 => array(0x103), 0x104 => array(0x105), 0x106 => array(0x107),
1595
+					0x108 => array(0x109), 0x10A => array(0x10B), 0x10C => array(0x10D),
1596
+					0x10E => array(0x10F), 0x110 => array(0x111), 0x112 => array(0x113),
1597
+					0x114 => array(0x115), 0x116 => array(0x117), 0x118 => array(0x119),
1598
+					0x11A => array(0x11B), 0x11C => array(0x11D), 0x11E => array(0x11F),
1599
+					0x120 => array(0x121), 0x122 => array(0x123), 0x124 => array(0x125),
1600
+					0x126 => array(0x127), 0x128 => array(0x129), 0x12A => array(0x12B),
1601
+					0x12C => array(0x12D), 0x12E => array(0x12F), 0x130 => array(0x69, 0x307),
1602
+					0x132 => array(0x69, 0x6A), 0x133 => array(0x69, 0x6A), 0x134 => array(0x135),
1603
+					0x136 => array(0x137), 0x139 => array(0x13A), 0x13B => array(0x13C),
1604
+					0x13D => array(0x13E), 0x13F => array(0x6C, 0xB7), 0x140 => array(0x6C, 0xB7),
1605
+					0x141 => array(0x142), 0x143 => array(0x144), 0x145 => array(0x146),
1606
+					0x147 => array(0x148), 0x149 => array(0x2BC, 0x6E), 0x14A => array(0x14B),
1607
+					0x14C => array(0x14D), 0x14E => array(0x14F), 0x150 => array(0x151),
1608
+					0x152 => array(0x153), 0x154 => array(0x155), 0x156 => array(0x157),
1609
+					0x158 => array(0x159), 0x15A => array(0x15B), 0x15C => array(0x15D),
1610
+					0x15E => array(0x15F), 0x160 => array(0x161), 0x162 => array(0x163),
1611
+					0x164 => array(0x165), 0x166 => array(0x167), 0x168 => array(0x169),
1612
+					0x16A => array(0x16B), 0x16C => array(0x16D), 0x16E => array(0x16F),
1613
+					0x170 => array(0x171), 0x172 => array(0x173), 0x174 => array(0x175),
1614
+					0x176 => array(0x177), 0x178 => array(0xFF), 0x179 => array(0x17A),
1615
+					0x17B => array(0x17C), 0x17D => array(0x17E), 0x17F => array(0x73),
1616
+					0x181 => array(0x253), 0x182 => array(0x183), 0x184 => array(0x185),
1617
+					0x186 => array(0x254), 0x187 => array(0x188), 0x189 => array(0x256),
1618
+					0x18A => array(0x257), 0x18B => array(0x18C), 0x18E => array(0x1DD),
1619
+					0x18F => array(0x259), 0x190 => array(0x25B), 0x191 => array(0x192),
1620
+					0x193 => array(0x260), 0x194 => array(0x263), 0x196 => array(0x269),
1621
+					0x197 => array(0x268), 0x198 => array(0x199), 0x19C => array(0x26F),
1622
+					0x19D => array(0x272), 0x19F => array(0x275), 0x1A0 => array(0x1A1),
1623
+					0x1A2 => array(0x1A3), 0x1A4 => array(0x1A5), 0x1A6 => array(0x280),
1624
+					0x1A7 => array(0x1A8), 0x1A9 => array(0x283), 0x1AC => array(0x1AD),
1625
+					0x1AE => array(0x288), 0x1AF => array(0x1B0), 0x1B1 => array(0x28A),
1626
+					0x1B2 => array(0x28B), 0x1B3 => array(0x1B4), 0x1B5 => array(0x1B6),
1627
+					0x1B7 => array(0x292), 0x1B8 => array(0x1B9), 0x1BC => array(0x1BD),
1628
+					0x1C4 => array(0x64, 0x17E), 0x1C5 => array(0x64, 0x17E), 0x1C6 => array(0x64, 0x17E),
1629
+					0x1C7 => array(0x6C, 0x6A), 0x1C8 => array(0x6C, 0x6A), 0x1C9 => array(0x6C, 0x6A),
1630
+					0x1CA => array(0x6E, 0x6A), 0x1CB => array(0x6E, 0x6A), 0x1CC => array(0x6E, 0x6A),
1631
+					0x1CD => array(0x1CE), 0x1CF => array(0x1D0), 0x1D1 => array(0x1D2),
1632
+					0x1D3 => array(0x1D4), 0x1D5 => array(0x1D6), 0x1D7 => array(0x1D8),
1633
+					0x1D9 => array(0x1DA), 0x1DB => array(0x1DC), 0x1DE => array(0x1DF),
1634
+					0x1E0 => array(0x1E1), 0x1E2 => array(0x1E3), 0x1E4 => array(0x1E5),
1635
+					0x1E6 => array(0x1E7), 0x1E8 => array(0x1E9), 0x1EA => array(0x1EB),
1636
+					0x1EC => array(0x1ED), 0x1EE => array(0x1EF), 0x1F1 => array(0x64, 0x7A),
1637
+					0x1F2 => array(0x64, 0x7A), 0x1F3 => array(0x64, 0x7A), 0x1F4 => array(0x1F5),
1638
+					0x1F6 => array(0x195), 0x1F7 => array(0x1BF), 0x1F8 => array(0x1F9),
1639
+					0x1FA => array(0x1FB), 0x1FC => array(0x1FD), 0x1FE => array(0x1FF),
1640
+					0x200 => array(0x201), 0x202 => array(0x203), 0x204 => array(0x205),
1641
+					0x206 => array(0x207), 0x208 => array(0x209), 0x20A => array(0x20B),
1642
+					0x20C => array(0x20D), 0x20E => array(0x20F), 0x210 => array(0x211),
1643
+					0x212 => array(0x213), 0x214 => array(0x215), 0x216 => array(0x217),
1644
+					0x218 => array(0x219), 0x21A => array(0x21B), 0x21C => array(0x21D),
1645
+					0x21E => array(0x21F), 0x220 => array(0x19E), 0x222 => array(0x223),
1646
+					0x224 => array(0x225), 0x226 => array(0x227), 0x228 => array(0x229),
1647
+					0x22A => array(0x22B), 0x22C => array(0x22D), 0x22E => array(0x22F),
1648
+					0x230 => array(0x231), 0x232 => array(0x233), 0x23A => array(0x2C65),
1649
+					0x23B => array(0x23C), 0x23D => array(0x19A), 0x23E => array(0x2C66),
1650
+					0x241 => array(0x242), 0x243 => array(0x180), 0x244 => array(0x289),
1651
+					0x245 => array(0x28C), 0x246 => array(0x247), 0x248 => array(0x249),
1652
+					0x24A => array(0x24B), 0x24C => array(0x24D), 0x24E => array(0x24F),
1653
+					0x2B0 => array(0x68), 0x2B1 => array(0x266), 0x2B2 => array(0x6A),
1654
+					0x2B3 => array(0x72), 0x2B4 => array(0x279), 0x2B5 => array(0x27B),
1655
+					0x2B6 => array(0x281), 0x2B7 => array(0x77), 0x2B8 => array(0x79),
1656
+					0x2E0 => array(0x263), 0x2E1 => array(0x6C), 0x2E2 => array(0x73),
1657
+					0x2E3 => array(0x78), 0x2E4 => array(0x295), 0x340 => array(0x300),
1658
+					0x341 => array(0x301), 0x343 => array(0x313), 0x344 => array(0x308, 0x301),
1659
+					0x345 => array(0x3B9), 0x370 => array(0x371), 0x372 => array(0x373),
1660
+					0x374 => array(0x2B9), 0x376 => array(0x377), 0x37F => array(0x3F3),
1661
+					0x386 => array(0x3AC), 0x387 => array(0xB7), 0x388 => array(0x3AD),
1662
+					0x389 => array(0x3AE), 0x38A => array(0x3AF), 0x38C => array(0x3CC),
1663
+					0x38E => array(0x3CD), 0x38F => array(0x3CE), 0x391 => array(0x3B1),
1664
+					0x392 => array(0x3B2), 0x393 => array(0x3B3), 0x394 => array(0x3B4),
1665
+					0x395 => array(0x3B5), 0x396 => array(0x3B6), 0x397 => array(0x3B7),
1666
+					0x398 => array(0x3B8), 0x399 => array(0x3B9), 0x39A => array(0x3BA),
1667
+					0x39B => array(0x3BB), 0x39C => array(0x3BC), 0x39D => array(0x3BD),
1668
+					0x39E => array(0x3BE), 0x39F => array(0x3BF), 0x3A0 => array(0x3C0),
1669
+					0x3A1 => array(0x3C1), 0x3A3 => array(0x3C3), 0x3A4 => array(0x3C4),
1670
+					0x3A5 => array(0x3C5), 0x3A6 => array(0x3C6), 0x3A7 => array(0x3C7),
1671
+					0x3A8 => array(0x3C8), 0x3A9 => array(0x3C9), 0x3AA => array(0x3CA),
1672
+					0x3AB => array(0x3CB), 0x3CF => array(0x3D7), 0x3D0 => array(0x3B2),
1673
+					0x3D1 => array(0x3B8), 0x3D2 => array(0x3C5), 0x3D3 => array(0x3CD),
1674
+					0x3D4 => array(0x3CB), 0x3D5 => array(0x3C6), 0x3D6 => array(0x3C0),
1675
+					0x3D8 => array(0x3D9), 0x3DA => array(0x3DB), 0x3DC => array(0x3DD),
1676
+					0x3DE => array(0x3DF), 0x3E0 => array(0x3E1), 0x3E2 => array(0x3E3),
1677
+					0x3E4 => array(0x3E5), 0x3E6 => array(0x3E7), 0x3E8 => array(0x3E9),
1678
+					0x3EA => array(0x3EB), 0x3EC => array(0x3ED), 0x3EE => array(0x3EF),
1679
+					0x3F0 => array(0x3BA), 0x3F1 => array(0x3C1), 0x3F2 => array(0x3C3),
1680
+					0x3F4 => array(0x3B8), 0x3F5 => array(0x3B5), 0x3F7 => array(0x3F8),
1681
+					0x3F9 => array(0x3C3), 0x3FA => array(0x3FB), 0x3FD => array(0x37B),
1682
+					0x3FE => array(0x37C), 0x3FF => array(0x37D), 0x400 => array(0x450),
1683
+					0x401 => array(0x451), 0x402 => array(0x452), 0x403 => array(0x453),
1684
+					0x404 => array(0x454), 0x405 => array(0x455), 0x406 => array(0x456),
1685
+					0x407 => array(0x457), 0x408 => array(0x458), 0x409 => array(0x459),
1686
+					0x40A => array(0x45A), 0x40B => array(0x45B), 0x40C => array(0x45C),
1687
+					0x40D => array(0x45D), 0x40E => array(0x45E), 0x40F => array(0x45F),
1688
+					0x410 => array(0x430), 0x411 => array(0x431), 0x412 => array(0x432),
1689
+					0x413 => array(0x433), 0x414 => array(0x434), 0x415 => array(0x435),
1690
+					0x416 => array(0x436), 0x417 => array(0x437), 0x418 => array(0x438),
1691
+					0x419 => array(0x439), 0x41A => array(0x43A), 0x41B => array(0x43B),
1692
+					0x41C => array(0x43C), 0x41D => array(0x43D), 0x41E => array(0x43E),
1693
+					0x41F => array(0x43F), 0x420 => array(0x440), 0x421 => array(0x441),
1694
+					0x422 => array(0x442), 0x423 => array(0x443), 0x424 => array(0x444),
1695
+					0x425 => array(0x445), 0x426 => array(0x446), 0x427 => array(0x447),
1696
+					0x428 => array(0x448), 0x429 => array(0x449), 0x42A => array(0x44A),
1697
+					0x42B => array(0x44B), 0x42C => array(0x44C), 0x42D => array(0x44D),
1698
+					0x42E => array(0x44E), 0x42F => array(0x44F), 0x460 => array(0x461),
1699
+					0x462 => array(0x463), 0x464 => array(0x465), 0x466 => array(0x467),
1700
+					0x468 => array(0x469), 0x46A => array(0x46B), 0x46C => array(0x46D),
1701
+					0x46E => array(0x46F), 0x470 => array(0x471), 0x472 => array(0x473),
1702
+					0x474 => array(0x475), 0x476 => array(0x477), 0x478 => array(0x479),
1703
+					0x47A => array(0x47B), 0x47C => array(0x47D), 0x47E => array(0x47F),
1704
+					0x480 => array(0x481), 0x48A => array(0x48B), 0x48C => array(0x48D),
1705
+					0x48E => array(0x48F), 0x490 => array(0x491), 0x492 => array(0x493),
1706
+					0x494 => array(0x495), 0x496 => array(0x497), 0x498 => array(0x499),
1707
+					0x49A => array(0x49B), 0x49C => array(0x49D), 0x49E => array(0x49F),
1708
+					0x4A0 => array(0x4A1), 0x4A2 => array(0x4A3), 0x4A4 => array(0x4A5),
1709
+					0x4A6 => array(0x4A7), 0x4A8 => array(0x4A9), 0x4AA => array(0x4AB),
1710
+					0x4AC => array(0x4AD), 0x4AE => array(0x4AF), 0x4B0 => array(0x4B1),
1711
+					0x4B2 => array(0x4B3), 0x4B4 => array(0x4B5), 0x4B6 => array(0x4B7),
1712
+					0x4B8 => array(0x4B9), 0x4BA => array(0x4BB), 0x4BC => array(0x4BD),
1713
+					0x4BE => array(0x4BF), 0x4C1 => array(0x4C2), 0x4C3 => array(0x4C4),
1714
+					0x4C5 => array(0x4C6), 0x4C7 => array(0x4C8), 0x4C9 => array(0x4CA),
1715
+					0x4CB => array(0x4CC), 0x4CD => array(0x4CE), 0x4D0 => array(0x4D1),
1716
+					0x4D2 => array(0x4D3), 0x4D4 => array(0x4D5), 0x4D6 => array(0x4D7),
1717
+					0x4D8 => array(0x4D9), 0x4DA => array(0x4DB), 0x4DC => array(0x4DD),
1718
+					0x4DE => array(0x4DF), 0x4E0 => array(0x4E1), 0x4E2 => array(0x4E3),
1719
+					0x4E4 => array(0x4E5), 0x4E6 => array(0x4E7), 0x4E8 => array(0x4E9),
1720
+					0x4EA => array(0x4EB), 0x4EC => array(0x4ED), 0x4EE => array(0x4EF),
1721
+					0x4F0 => array(0x4F1), 0x4F2 => array(0x4F3), 0x4F4 => array(0x4F5),
1722
+					0x4F6 => array(0x4F7), 0x4F8 => array(0x4F9), 0x4FA => array(0x4FB),
1723
+					0x4FC => array(0x4FD), 0x4FE => array(0x4FF), 0x500 => array(0x501),
1724
+					0x502 => array(0x503), 0x504 => array(0x505), 0x506 => array(0x507),
1725
+					0x508 => array(0x509), 0x50A => array(0x50B), 0x50C => array(0x50D),
1726
+					0x50E => array(0x50F), 0x510 => array(0x511), 0x512 => array(0x513),
1727
+					0x514 => array(0x515), 0x516 => array(0x517), 0x518 => array(0x519),
1728
+					0x51A => array(0x51B), 0x51C => array(0x51D), 0x51E => array(0x51F),
1729
+					0x520 => array(0x521), 0x522 => array(0x523), 0x524 => array(0x525),
1730
+					0x526 => array(0x527), 0x528 => array(0x529), 0x52A => array(0x52B),
1731
+					0x52C => array(0x52D), 0x52E => array(0x52F), 0x531 => array(0x561),
1732
+					0x532 => array(0x562), 0x533 => array(0x563), 0x534 => array(0x564),
1733
+					0x535 => array(0x565), 0x536 => array(0x566), 0x537 => array(0x567),
1734
+					0x538 => array(0x568), 0x539 => array(0x569), 0x53A => array(0x56A),
1735
+					0x53B => array(0x56B), 0x53C => array(0x56C), 0x53D => array(0x56D),
1736
+					0x53E => array(0x56E), 0x53F => array(0x56F), 0x540 => array(0x570),
1737
+					0x541 => array(0x571), 0x542 => array(0x572), 0x543 => array(0x573),
1738
+					0x544 => array(0x574), 0x545 => array(0x575), 0x546 => array(0x576),
1739
+					0x547 => array(0x577), 0x548 => array(0x578), 0x549 => array(0x579),
1740
+					0x54A => array(0x57A), 0x54B => array(0x57B), 0x54C => array(0x57C),
1741
+					0x54D => array(0x57D), 0x54E => array(0x57E), 0x54F => array(0x57F),
1742
+					0x550 => array(0x580), 0x551 => array(0x581), 0x552 => array(0x582),
1743
+					0x553 => array(0x583), 0x554 => array(0x584), 0x555 => array(0x585),
1744
+					0x556 => array(0x586), 0x587 => array(0x565, 0x582), 0x675 => array(0x627, 0x674),
1745
+					0x676 => array(0x648, 0x674), 0x677 => array(0x6C7, 0x674), 0x678 => array(0x64A, 0x674),
1746
+					0x958 => array(0x915, 0x93C), 0x959 => array(0x916, 0x93C), 0x95A => array(0x917, 0x93C),
1747
+					0x95B => array(0x91C, 0x93C), 0x95C => array(0x921, 0x93C), 0x95D => array(0x922, 0x93C),
1748
+					0x95E => array(0x92B, 0x93C), 0x95F => array(0x92F, 0x93C), 0x9DC => array(0x9A1, 0x9BC),
1749
+					0x9DD => array(0x9A2, 0x9BC), 0x9DF => array(0x9AF, 0x9BC), 0xA33 => array(0xA32, 0xA3C),
1750
+					0xA36 => array(0xA38, 0xA3C), 0xA59 => array(0xA16, 0xA3C), 0xA5A => array(0xA17, 0xA3C),
1751
+					0xA5B => array(0xA1C, 0xA3C), 0xA5E => array(0xA2B, 0xA3C), 0xB5C => array(0xB21, 0xB3C),
1752
+					0xB5D => array(0xB22, 0xB3C), 0xE33 => array(0xE4D, 0xE32), 0xEB3 => array(0xECD, 0xEB2),
1753
+					0xEDC => array(0xEAB, 0xE99), 0xEDD => array(0xEAB, 0xEA1), 0xF0C => array(0xF0B),
1754
+					0xF43 => array(0xF42, 0xFB7), 0xF4D => array(0xF4C, 0xFB7), 0xF52 => array(0xF51, 0xFB7),
1755
+					0xF57 => array(0xF56, 0xFB7), 0xF5C => array(0xF5B, 0xFB7), 0xF69 => array(0xF40, 0xFB5),
1756
+					0xF73 => array(0xF71, 0xF72), 0xF75 => array(0xF71, 0xF74), 0xF76 => array(0xFB2, 0xF80),
1757
+					0xF77 => array(0xFB2, 0xF71, 0xF80), 0xF78 => array(0xFB3, 0xF80), 0xF79 => array(0xFB3, 0xF71, 0xF80),
1758
+					0xF81 => array(0xF71, 0xF80), 0xF93 => array(0xF92, 0xFB7), 0xF9D => array(0xF9C, 0xFB7),
1759
+					0xFA2 => array(0xFA1, 0xFB7), 0xFA7 => array(0xFA6, 0xFB7), 0xFAC => array(0xFAB, 0xFB7),
1760
+					0xFB9 => array(0xF90, 0xFB5), 0x10C7 => array(0x2D27), 0x10CD => array(0x2D2D),
1761
+					0x10FC => array(0x10DC), 0x1D2C => array(0x61), 0x1D2D => array(0xE6),
1762
+					0x1D2E => array(0x62), 0x1D30 => array(0x64), 0x1D31 => array(0x65),
1763
+					0x1D32 => array(0x1DD), 0x1D33 => array(0x67), 0x1D34 => array(0x68),
1764
+					0x1D35 => array(0x69), 0x1D36 => array(0x6A), 0x1D37 => array(0x6B),
1765
+					0x1D38 => array(0x6C), 0x1D39 => array(0x6D), 0x1D3A => array(0x6E),
1766
+					0x1D3C => array(0x6F), 0x1D3D => array(0x223), 0x1D3E => array(0x70),
1767
+					0x1D3F => array(0x72), 0x1D40 => array(0x74), 0x1D41 => array(0x75),
1768
+					0x1D42 => array(0x77), 0x1D43 => array(0x61), 0x1D44 => array(0x250),
1769
+					0x1D45 => array(0x251), 0x1D46 => array(0x1D02), 0x1D47 => array(0x62),
1770
+					0x1D48 => array(0x64), 0x1D49 => array(0x65), 0x1D4A => array(0x259),
1771
+					0x1D4B => array(0x25B), 0x1D4C => array(0x25C), 0x1D4D => array(0x67),
1772
+					0x1D4F => array(0x6B), 0x1D50 => array(0x6D), 0x1D51 => array(0x14B),
1773
+					0x1D52 => array(0x6F), 0x1D53 => array(0x254), 0x1D54 => array(0x1D16),
1774
+					0x1D55 => array(0x1D17), 0x1D56 => array(0x70), 0x1D57 => array(0x74),
1775
+					0x1D58 => array(0x75), 0x1D59 => array(0x1D1D), 0x1D5A => array(0x26F),
1776
+					0x1D5B => array(0x76), 0x1D5C => array(0x1D25), 0x1D5D => array(0x3B2),
1777
+					0x1D5E => array(0x3B3), 0x1D5F => array(0x3B4), 0x1D60 => array(0x3C6),
1778
+					0x1D61 => array(0x3C7), 0x1D62 => array(0x69), 0x1D63 => array(0x72),
1779
+					0x1D64 => array(0x75), 0x1D65 => array(0x76), 0x1D66 => array(0x3B2),
1780
+					0x1D67 => array(0x3B3), 0x1D68 => array(0x3C1), 0x1D69 => array(0x3C6),
1781
+					0x1D6A => array(0x3C7), 0x1D78 => array(0x43D), 0x1D9B => array(0x252),
1782
+					0x1D9C => array(0x63), 0x1D9D => array(0x255), 0x1D9E => array(0xF0),
1783
+					0x1D9F => array(0x25C), 0x1DA0 => array(0x66), 0x1DA1 => array(0x25F),
1784
+					0x1DA2 => array(0x261), 0x1DA3 => array(0x265), 0x1DA4 => array(0x268),
1785
+					0x1DA5 => array(0x269), 0x1DA6 => array(0x26A), 0x1DA7 => array(0x1D7B),
1786
+					0x1DA8 => array(0x29D), 0x1DA9 => array(0x26D), 0x1DAA => array(0x1D85),
1787
+					0x1DAB => array(0x29F), 0x1DAC => array(0x271), 0x1DAD => array(0x270),
1788
+					0x1DAE => array(0x272), 0x1DAF => array(0x273), 0x1DB0 => array(0x274),
1789
+					0x1DB1 => array(0x275), 0x1DB2 => array(0x278), 0x1DB3 => array(0x282),
1790
+					0x1DB4 => array(0x283), 0x1DB5 => array(0x1AB), 0x1DB6 => array(0x289),
1791
+					0x1DB7 => array(0x28A), 0x1DB8 => array(0x1D1C), 0x1DB9 => array(0x28B),
1792
+					0x1DBA => array(0x28C), 0x1DBB => array(0x7A), 0x1DBC => array(0x290),
1793
+					0x1DBD => array(0x291), 0x1DBE => array(0x292), 0x1DBF => array(0x3B8),
1794
+					0x1E00 => array(0x1E01), 0x1E02 => array(0x1E03), 0x1E04 => array(0x1E05),
1795
+					0x1E06 => array(0x1E07), 0x1E08 => array(0x1E09), 0x1E0A => array(0x1E0B),
1796
+					0x1E0C => array(0x1E0D), 0x1E0E => array(0x1E0F), 0x1E10 => array(0x1E11),
1797
+					0x1E12 => array(0x1E13), 0x1E14 => array(0x1E15), 0x1E16 => array(0x1E17),
1798
+					0x1E18 => array(0x1E19), 0x1E1A => array(0x1E1B), 0x1E1C => array(0x1E1D),
1799
+					0x1E1E => array(0x1E1F), 0x1E20 => array(0x1E21), 0x1E22 => array(0x1E23),
1800
+					0x1E24 => array(0x1E25), 0x1E26 => array(0x1E27), 0x1E28 => array(0x1E29),
1801
+					0x1E2A => array(0x1E2B), 0x1E2C => array(0x1E2D), 0x1E2E => array(0x1E2F),
1802
+					0x1E30 => array(0x1E31), 0x1E32 => array(0x1E33), 0x1E34 => array(0x1E35),
1803
+					0x1E36 => array(0x1E37), 0x1E38 => array(0x1E39), 0x1E3A => array(0x1E3B),
1804
+					0x1E3C => array(0x1E3D), 0x1E3E => array(0x1E3F), 0x1E40 => array(0x1E41),
1805
+					0x1E42 => array(0x1E43), 0x1E44 => array(0x1E45), 0x1E46 => array(0x1E47),
1806
+					0x1E48 => array(0x1E49), 0x1E4A => array(0x1E4B), 0x1E4C => array(0x1E4D),
1807
+					0x1E4E => array(0x1E4F), 0x1E50 => array(0x1E51), 0x1E52 => array(0x1E53),
1808
+					0x1E54 => array(0x1E55), 0x1E56 => array(0x1E57), 0x1E58 => array(0x1E59),
1809
+					0x1E5A => array(0x1E5B), 0x1E5C => array(0x1E5D), 0x1E5E => array(0x1E5F),
1810
+					0x1E60 => array(0x1E61), 0x1E62 => array(0x1E63), 0x1E64 => array(0x1E65),
1811
+					0x1E66 => array(0x1E67), 0x1E68 => array(0x1E69), 0x1E6A => array(0x1E6B),
1812
+					0x1E6C => array(0x1E6D), 0x1E6E => array(0x1E6F), 0x1E70 => array(0x1E71),
1813
+					0x1E72 => array(0x1E73), 0x1E74 => array(0x1E75), 0x1E76 => array(0x1E77),
1814
+					0x1E78 => array(0x1E79), 0x1E7A => array(0x1E7B), 0x1E7C => array(0x1E7D),
1815
+					0x1E7E => array(0x1E7F), 0x1E80 => array(0x1E81), 0x1E82 => array(0x1E83),
1816
+					0x1E84 => array(0x1E85), 0x1E86 => array(0x1E87), 0x1E88 => array(0x1E89),
1817
+					0x1E8A => array(0x1E8B), 0x1E8C => array(0x1E8D), 0x1E8E => array(0x1E8F),
1818
+					0x1E90 => array(0x1E91), 0x1E92 => array(0x1E93), 0x1E94 => array(0x1E95),
1819
+					0x1E9A => array(0x61, 0x2BE), 0x1E9B => array(0x1E61), 0x1E9E => array(0x73, 0x73),
1820
+					0x1EA0 => array(0x1EA1), 0x1EA2 => array(0x1EA3), 0x1EA4 => array(0x1EA5),
1821
+					0x1EA6 => array(0x1EA7), 0x1EA8 => array(0x1EA9), 0x1EAA => array(0x1EAB),
1822
+					0x1EAC => array(0x1EAD), 0x1EAE => array(0x1EAF), 0x1EB0 => array(0x1EB1),
1823
+					0x1EB2 => array(0x1EB3), 0x1EB4 => array(0x1EB5), 0x1EB6 => array(0x1EB7),
1824
+					0x1EB8 => array(0x1EB9), 0x1EBA => array(0x1EBB), 0x1EBC => array(0x1EBD),
1825
+					0x1EBE => array(0x1EBF), 0x1EC0 => array(0x1EC1), 0x1EC2 => array(0x1EC3),
1826
+					0x1EC4 => array(0x1EC5), 0x1EC6 => array(0x1EC7), 0x1EC8 => array(0x1EC9),
1827
+					0x1ECA => array(0x1ECB), 0x1ECC => array(0x1ECD), 0x1ECE => array(0x1ECF),
1828
+					0x1ED0 => array(0x1ED1), 0x1ED2 => array(0x1ED3), 0x1ED4 => array(0x1ED5),
1829
+					0x1ED6 => array(0x1ED7), 0x1ED8 => array(0x1ED9), 0x1EDA => array(0x1EDB),
1830
+					0x1EDC => array(0x1EDD), 0x1EDE => array(0x1EDF), 0x1EE0 => array(0x1EE1),
1831
+					0x1EE2 => array(0x1EE3), 0x1EE4 => array(0x1EE5), 0x1EE6 => array(0x1EE7),
1832
+					0x1EE8 => array(0x1EE9), 0x1EEA => array(0x1EEB), 0x1EEC => array(0x1EED),
1833
+					0x1EEE => array(0x1EEF), 0x1EF0 => array(0x1EF1), 0x1EF2 => array(0x1EF3),
1834
+					0x1EF4 => array(0x1EF5), 0x1EF6 => array(0x1EF7), 0x1EF8 => array(0x1EF9),
1835
+					0x1EFA => array(0x1EFB), 0x1EFC => array(0x1EFD), 0x1EFE => array(0x1EFF),
1836
+					0x1F08 => array(0x1F00), 0x1F09 => array(0x1F01), 0x1F0A => array(0x1F02),
1837
+					0x1F0B => array(0x1F03), 0x1F0C => array(0x1F04), 0x1F0D => array(0x1F05),
1838
+					0x1F0E => array(0x1F06), 0x1F0F => array(0x1F07), 0x1F18 => array(0x1F10),
1839
+					0x1F19 => array(0x1F11), 0x1F1A => array(0x1F12), 0x1F1B => array(0x1F13),
1840
+					0x1F1C => array(0x1F14), 0x1F1D => array(0x1F15), 0x1F28 => array(0x1F20),
1841
+					0x1F29 => array(0x1F21), 0x1F2A => array(0x1F22), 0x1F2B => array(0x1F23),
1842
+					0x1F2C => array(0x1F24), 0x1F2D => array(0x1F25), 0x1F2E => array(0x1F26),
1843
+					0x1F2F => array(0x1F27), 0x1F38 => array(0x1F30), 0x1F39 => array(0x1F31),
1844
+					0x1F3A => array(0x1F32), 0x1F3B => array(0x1F33), 0x1F3C => array(0x1F34),
1845
+					0x1F3D => array(0x1F35), 0x1F3E => array(0x1F36), 0x1F3F => array(0x1F37),
1846
+					0x1F48 => array(0x1F40), 0x1F49 => array(0x1F41), 0x1F4A => array(0x1F42),
1847
+					0x1F4B => array(0x1F43), 0x1F4C => array(0x1F44), 0x1F4D => array(0x1F45),
1848
+					0x1F59 => array(0x1F51), 0x1F5B => array(0x1F53), 0x1F5D => array(0x1F55),
1849
+					0x1F5F => array(0x1F57), 0x1F68 => array(0x1F60), 0x1F69 => array(0x1F61),
1850
+					0x1F6A => array(0x1F62), 0x1F6B => array(0x1F63), 0x1F6C => array(0x1F64),
1851
+					0x1F6D => array(0x1F65), 0x1F6E => array(0x1F66), 0x1F6F => array(0x1F67),
1852
+					0x1F71 => array(0x3AC), 0x1F73 => array(0x3AD), 0x1F75 => array(0x3AE),
1853
+					0x1F77 => array(0x3AF), 0x1F79 => array(0x3CC), 0x1F7B => array(0x3CD),
1854
+					0x1F7D => array(0x3CE), 0x1F80 => array(0x1F00, 0x3B9), 0x1F81 => array(0x1F01, 0x3B9),
1855
+					0x1F82 => array(0x1F02, 0x3B9), 0x1F83 => array(0x1F03, 0x3B9), 0x1F84 => array(0x1F04, 0x3B9),
1856
+					0x1F85 => array(0x1F05, 0x3B9), 0x1F86 => array(0x1F06, 0x3B9), 0x1F87 => array(0x1F07, 0x3B9),
1857
+					0x1F88 => array(0x1F00, 0x3B9), 0x1F89 => array(0x1F01, 0x3B9), 0x1F8A => array(0x1F02, 0x3B9),
1858
+					0x1F8B => array(0x1F03, 0x3B9), 0x1F8C => array(0x1F04, 0x3B9), 0x1F8D => array(0x1F05, 0x3B9),
1859
+					0x1F8E => array(0x1F06, 0x3B9), 0x1F8F => array(0x1F07, 0x3B9), 0x1F90 => array(0x1F20, 0x3B9),
1860
+					0x1F91 => array(0x1F21, 0x3B9), 0x1F92 => array(0x1F22, 0x3B9), 0x1F93 => array(0x1F23, 0x3B9),
1861
+					0x1F94 => array(0x1F24, 0x3B9), 0x1F95 => array(0x1F25, 0x3B9), 0x1F96 => array(0x1F26, 0x3B9),
1862
+					0x1F97 => array(0x1F27, 0x3B9), 0x1F98 => array(0x1F20, 0x3B9), 0x1F99 => array(0x1F21, 0x3B9),
1863
+					0x1F9A => array(0x1F22, 0x3B9), 0x1F9B => array(0x1F23, 0x3B9), 0x1F9C => array(0x1F24, 0x3B9),
1864
+					0x1F9D => array(0x1F25, 0x3B9), 0x1F9E => array(0x1F26, 0x3B9), 0x1F9F => array(0x1F27, 0x3B9),
1865
+					0x1FA0 => array(0x1F60, 0x3B9), 0x1FA1 => array(0x1F61, 0x3B9), 0x1FA2 => array(0x1F62, 0x3B9),
1866
+					0x1FA3 => array(0x1F63, 0x3B9), 0x1FA4 => array(0x1F64, 0x3B9), 0x1FA5 => array(0x1F65, 0x3B9),
1867
+					0x1FA6 => array(0x1F66, 0x3B9), 0x1FA7 => array(0x1F67, 0x3B9), 0x1FA8 => array(0x1F60, 0x3B9),
1868
+					0x1FA9 => array(0x1F61, 0x3B9), 0x1FAA => array(0x1F62, 0x3B9), 0x1FAB => array(0x1F63, 0x3B9),
1869
+					0x1FAC => array(0x1F64, 0x3B9), 0x1FAD => array(0x1F65, 0x3B9), 0x1FAE => array(0x1F66, 0x3B9),
1870
+					0x1FAF => array(0x1F67, 0x3B9), 0x1FB2 => array(0x1F70, 0x3B9), 0x1FB3 => array(0x3B1, 0x3B9),
1871
+					0x1FB4 => array(0x3AC, 0x3B9), 0x1FB7 => array(0x1FB6, 0x3B9), 0x1FB8 => array(0x1FB0),
1872
+					0x1FB9 => array(0x1FB1), 0x1FBA => array(0x1F70), 0x1FBB => array(0x3AC),
1873
+					0x1FBC => array(0x3B1, 0x3B9), 0x1FBE => array(0x3B9), 0x1FC2 => array(0x1F74, 0x3B9),
1874
+					0x1FC3 => array(0x3B7, 0x3B9), 0x1FC4 => array(0x3AE, 0x3B9), 0x1FC7 => array(0x1FC6, 0x3B9),
1875
+					0x1FC8 => array(0x1F72), 0x1FC9 => array(0x3AD), 0x1FCA => array(0x1F74),
1876
+					0x1FCB => array(0x3AE), 0x1FCC => array(0x3B7, 0x3B9), 0x1FD3 => array(0x390),
1877
+					0x1FD8 => array(0x1FD0), 0x1FD9 => array(0x1FD1), 0x1FDA => array(0x1F76),
1878
+					0x1FDB => array(0x3AF), 0x1FE3 => array(0x3B0), 0x1FE8 => array(0x1FE0),
1879
+					0x1FE9 => array(0x1FE1), 0x1FEA => array(0x1F7A), 0x1FEB => array(0x3CD),
1880
+					0x1FEC => array(0x1FE5), 0x1FF2 => array(0x1F7C, 0x3B9), 0x1FF3 => array(0x3C9, 0x3B9),
1881
+					0x1FF4 => array(0x3CE, 0x3B9), 0x1FF7 => array(0x1FF6, 0x3B9), 0x1FF8 => array(0x1F78),
1882
+					0x1FF9 => array(0x3CC), 0x1FFA => array(0x1F7C), 0x1FFB => array(0x3CE),
1883
+					0x1FFC => array(0x3C9, 0x3B9), 0x2011 => array(0x2010), 0x2033 => array(0x2032, 0x2032),
1884
+					0x2034 => array(0x2032, 0x2032, 0x2032), 0x2036 => array(0x2035, 0x2035), 0x2037 => array(0x2035, 0x2035, 0x2035),
1885
+					0x2057 => array(0x2032, 0x2032, 0x2032, 0x2032), 0x2070 => array(0x30), 0x2071 => array(0x69),
1886
+					0x2074 => array(0x34), 0x2075 => array(0x35), 0x2076 => array(0x36),
1887
+					0x2077 => array(0x37), 0x2078 => array(0x38), 0x2079 => array(0x39),
1888
+					0x207B => array(0x2212), 0x207F => array(0x6E), 0x2080 => array(0x30),
1889
+					0x2081 => array(0x31), 0x2082 => array(0x32), 0x2083 => array(0x33),
1890
+					0x2084 => array(0x34), 0x2085 => array(0x35), 0x2086 => array(0x36),
1891
+					0x2087 => array(0x37), 0x2088 => array(0x38), 0x2089 => array(0x39),
1892
+					0x208B => array(0x2212), 0x2090 => array(0x61), 0x2091 => array(0x65),
1893
+					0x2092 => array(0x6F), 0x2093 => array(0x78), 0x2094 => array(0x259),
1894
+					0x2095 => array(0x68), 0x2096 => array(0x6B), 0x2097 => array(0x6C),
1895
+					0x2098 => array(0x6D), 0x2099 => array(0x6E), 0x209A => array(0x70),
1896
+					0x209B => array(0x73), 0x209C => array(0x74), 0x20A8 => array(0x72, 0x73),
1897
+					0x2102 => array(0x63), 0x2103 => array(0xB0, 0x63), 0x2107 => array(0x25B),
1898
+					0x2109 => array(0xB0, 0x66), 0x210A => array(0x67), 0x210B => array(0x68),
1899
+					0x210C => array(0x68), 0x210D => array(0x68), 0x210E => array(0x68),
1900
+					0x210F => array(0x127), 0x2110 => array(0x69), 0x2111 => array(0x69),
1901
+					0x2112 => array(0x6C), 0x2113 => array(0x6C), 0x2115 => array(0x6E),
1902
+					0x2116 => array(0x6E, 0x6F), 0x2119 => array(0x70), 0x211A => array(0x71),
1903
+					0x211B => array(0x72), 0x211C => array(0x72), 0x211D => array(0x72),
1904
+					0x2120 => array(0x73, 0x6D), 0x2121 => array(0x74, 0x65, 0x6C), 0x2122 => array(0x74, 0x6D),
1905
+					0x2124 => array(0x7A), 0x2126 => array(0x3C9), 0x2128 => array(0x7A),
1906
+					0x212A => array(0x6B), 0x212B => array(0xE5), 0x212C => array(0x62),
1907
+					0x212D => array(0x63), 0x212F => array(0x65), 0x2130 => array(0x65),
1908
+					0x2131 => array(0x66), 0x2133 => array(0x6D), 0x2134 => array(0x6F),
1909
+					0x2135 => array(0x5D0), 0x2136 => array(0x5D1), 0x2137 => array(0x5D2),
1910
+					0x2138 => array(0x5D3), 0x2139 => array(0x69), 0x213B => array(0x66, 0x61, 0x78),
1911
+					0x213C => array(0x3C0), 0x213D => array(0x3B3), 0x213E => array(0x3B3),
1912
+					0x213F => array(0x3C0), 0x2140 => array(0x2211), 0x2145 => array(0x64),
1913
+					0x2146 => array(0x64), 0x2147 => array(0x65), 0x2148 => array(0x69),
1914
+					0x2149 => array(0x6A), 0x2150 => array(0x31, 0x2044, 0x37), 0x2151 => array(0x31, 0x2044, 0x39),
1915
+					0x2152 => array(0x31, 0x2044, 0x31, 0x30), 0x2153 => array(0x31, 0x2044, 0x33), 0x2154 => array(0x32, 0x2044, 0x33),
1916
+					0x2155 => array(0x31, 0x2044, 0x35), 0x2156 => array(0x32, 0x2044, 0x35), 0x2157 => array(0x33, 0x2044, 0x35),
1917
+					0x2158 => array(0x34, 0x2044, 0x35), 0x2159 => array(0x31, 0x2044, 0x36), 0x215A => array(0x35, 0x2044, 0x36),
1918
+					0x215B => array(0x31, 0x2044, 0x38), 0x215C => array(0x33, 0x2044, 0x38), 0x215D => array(0x35, 0x2044, 0x38),
1919
+					0x215E => array(0x37, 0x2044, 0x38), 0x215F => array(0x31, 0x2044), 0x2160 => array(0x69),
1920
+					0x2161 => array(0x69, 0x69), 0x2162 => array(0x69, 0x69, 0x69), 0x2163 => array(0x69, 0x76),
1921
+					0x2164 => array(0x76), 0x2165 => array(0x76, 0x69), 0x2166 => array(0x76, 0x69, 0x69),
1922
+					0x2167 => array(0x76, 0x69, 0x69, 0x69), 0x2168 => array(0x69, 0x78), 0x2169 => array(0x78),
1923
+					0x216A => array(0x78, 0x69), 0x216B => array(0x78, 0x69, 0x69), 0x216C => array(0x6C),
1924
+					0x216D => array(0x63), 0x216E => array(0x64), 0x216F => array(0x6D),
1925
+					0x2170 => array(0x69), 0x2171 => array(0x69, 0x69), 0x2172 => array(0x69, 0x69, 0x69),
1926
+					0x2173 => array(0x69, 0x76), 0x2174 => array(0x76), 0x2175 => array(0x76, 0x69),
1927
+					0x2176 => array(0x76, 0x69, 0x69), 0x2177 => array(0x76, 0x69, 0x69, 0x69), 0x2178 => array(0x69, 0x78),
1928
+					0x2179 => array(0x78), 0x217A => array(0x78, 0x69), 0x217B => array(0x78, 0x69, 0x69),
1929
+					0x217C => array(0x6C), 0x217D => array(0x63), 0x217E => array(0x64),
1930
+					0x217F => array(0x6D), 0x2189 => array(0x30, 0x2044, 0x33), 0x222C => array(0x222B, 0x222B),
1931
+					0x222D => array(0x222B, 0x222B, 0x222B), 0x222F => array(0x222E, 0x222E), 0x2230 => array(0x222E, 0x222E, 0x222E),
1932
+					0x2329 => array(0x3008), 0x232A => array(0x3009), 0x2460 => array(0x31),
1933
+					0x2461 => array(0x32), 0x2462 => array(0x33), 0x2463 => array(0x34),
1934
+					0x2464 => array(0x35), 0x2465 => array(0x36), 0x2466 => array(0x37),
1935
+					0x2467 => array(0x38), 0x2468 => array(0x39), 0x2469 => array(0x31, 0x30),
1936
+					0x246A => array(0x31, 0x31), 0x246B => array(0x31, 0x32), 0x246C => array(0x31, 0x33),
1937
+					0x246D => array(0x31, 0x34), 0x246E => array(0x31, 0x35), 0x246F => array(0x31, 0x36),
1938
+					0x2470 => array(0x31, 0x37), 0x2471 => array(0x31, 0x38), 0x2472 => array(0x31, 0x39),
1939
+					0x2473 => array(0x32, 0x30), 0x24B6 => array(0x61), 0x24B7 => array(0x62),
1940
+					0x24B8 => array(0x63), 0x24B9 => array(0x64), 0x24BA => array(0x65),
1941
+					0x24BB => array(0x66), 0x24BC => array(0x67), 0x24BD => array(0x68),
1942
+					0x24BE => array(0x69), 0x24BF => array(0x6A), 0x24C0 => array(0x6B),
1943
+					0x24C1 => array(0x6C), 0x24C2 => array(0x6D), 0x24C3 => array(0x6E),
1944
+					0x24C4 => array(0x6F), 0x24C5 => array(0x70), 0x24C6 => array(0x71),
1945
+					0x24C7 => array(0x72), 0x24C8 => array(0x73), 0x24C9 => array(0x74),
1946
+					0x24CA => array(0x75), 0x24CB => array(0x76), 0x24CC => array(0x77),
1947
+					0x24CD => array(0x78), 0x24CE => array(0x79), 0x24CF => array(0x7A),
1948
+					0x24D0 => array(0x61), 0x24D1 => array(0x62), 0x24D2 => array(0x63),
1949
+					0x24D3 => array(0x64), 0x24D4 => array(0x65), 0x24D5 => array(0x66),
1950
+					0x24D6 => array(0x67), 0x24D7 => array(0x68), 0x24D8 => array(0x69),
1951
+					0x24D9 => array(0x6A), 0x24DA => array(0x6B), 0x24DB => array(0x6C),
1952
+					0x24DC => array(0x6D), 0x24DD => array(0x6E), 0x24DE => array(0x6F),
1953
+					0x24DF => array(0x70), 0x24E0 => array(0x71), 0x24E1 => array(0x72),
1954
+					0x24E2 => array(0x73), 0x24E3 => array(0x74), 0x24E4 => array(0x75),
1955
+					0x24E5 => array(0x76), 0x24E6 => array(0x77), 0x24E7 => array(0x78),
1956
+					0x24E8 => array(0x79), 0x24E9 => array(0x7A), 0x24EA => array(0x30),
1957
+					0x2A0C => array(0x222B, 0x222B, 0x222B, 0x222B), 0x2ADC => array(0x2ADD, 0x338), 0x2C00 => array(0x2C30),
1958
+					0x2C01 => array(0x2C31), 0x2C02 => array(0x2C32), 0x2C03 => array(0x2C33),
1959
+					0x2C04 => array(0x2C34), 0x2C05 => array(0x2C35), 0x2C06 => array(0x2C36),
1960
+					0x2C07 => array(0x2C37), 0x2C08 => array(0x2C38), 0x2C09 => array(0x2C39),
1961
+					0x2C0A => array(0x2C3A), 0x2C0B => array(0x2C3B), 0x2C0C => array(0x2C3C),
1962
+					0x2C0D => array(0x2C3D), 0x2C0E => array(0x2C3E), 0x2C0F => array(0x2C3F),
1963
+					0x2C10 => array(0x2C40), 0x2C11 => array(0x2C41), 0x2C12 => array(0x2C42),
1964
+					0x2C13 => array(0x2C43), 0x2C14 => array(0x2C44), 0x2C15 => array(0x2C45),
1965
+					0x2C16 => array(0x2C46), 0x2C17 => array(0x2C47), 0x2C18 => array(0x2C48),
1966
+					0x2C19 => array(0x2C49), 0x2C1A => array(0x2C4A), 0x2C1B => array(0x2C4B),
1967
+					0x2C1C => array(0x2C4C), 0x2C1D => array(0x2C4D), 0x2C1E => array(0x2C4E),
1968
+					0x2C1F => array(0x2C4F), 0x2C20 => array(0x2C50), 0x2C21 => array(0x2C51),
1969
+					0x2C22 => array(0x2C52), 0x2C23 => array(0x2C53), 0x2C24 => array(0x2C54),
1970
+					0x2C25 => array(0x2C55), 0x2C26 => array(0x2C56), 0x2C27 => array(0x2C57),
1971
+					0x2C28 => array(0x2C58), 0x2C29 => array(0x2C59), 0x2C2A => array(0x2C5A),
1972
+					0x2C2B => array(0x2C5B), 0x2C2C => array(0x2C5C), 0x2C2D => array(0x2C5D),
1973
+					0x2C2E => array(0x2C5E), 0x2C60 => array(0x2C61), 0x2C62 => array(0x26B),
1974
+					0x2C63 => array(0x1D7D), 0x2C64 => array(0x27D), 0x2C67 => array(0x2C68),
1975
+					0x2C69 => array(0x2C6A), 0x2C6B => array(0x2C6C), 0x2C6D => array(0x251),
1976
+					0x2C6E => array(0x271), 0x2C6F => array(0x250), 0x2C70 => array(0x252),
1977
+					0x2C72 => array(0x2C73), 0x2C75 => array(0x2C76), 0x2C7C => array(0x6A),
1978
+					0x2C7D => array(0x76), 0x2C7E => array(0x23F), 0x2C7F => array(0x240),
1979
+					0x2C80 => array(0x2C81), 0x2C82 => array(0x2C83), 0x2C84 => array(0x2C85),
1980
+					0x2C86 => array(0x2C87), 0x2C88 => array(0x2C89), 0x2C8A => array(0x2C8B),
1981
+					0x2C8C => array(0x2C8D), 0x2C8E => array(0x2C8F), 0x2C90 => array(0x2C91),
1982
+					0x2C92 => array(0x2C93), 0x2C94 => array(0x2C95), 0x2C96 => array(0x2C97),
1983
+					0x2C98 => array(0x2C99), 0x2C9A => array(0x2C9B), 0x2C9C => array(0x2C9D),
1984
+					0x2C9E => array(0x2C9F), 0x2CA0 => array(0x2CA1), 0x2CA2 => array(0x2CA3),
1985
+					0x2CA4 => array(0x2CA5), 0x2CA6 => array(0x2CA7), 0x2CA8 => array(0x2CA9),
1986
+					0x2CAA => array(0x2CAB), 0x2CAC => array(0x2CAD), 0x2CAE => array(0x2CAF),
1987
+					0x2CB0 => array(0x2CB1), 0x2CB2 => array(0x2CB3), 0x2CB4 => array(0x2CB5),
1988
+					0x2CB6 => array(0x2CB7), 0x2CB8 => array(0x2CB9), 0x2CBA => array(0x2CBB),
1989
+					0x2CBC => array(0x2CBD), 0x2CBE => array(0x2CBF), 0x2CC0 => array(0x2CC1),
1990
+					0x2CC2 => array(0x2CC3), 0x2CC4 => array(0x2CC5), 0x2CC6 => array(0x2CC7),
1991
+					0x2CC8 => array(0x2CC9), 0x2CCA => array(0x2CCB), 0x2CCC => array(0x2CCD),
1992
+					0x2CCE => array(0x2CCF), 0x2CD0 => array(0x2CD1), 0x2CD2 => array(0x2CD3),
1993
+					0x2CD4 => array(0x2CD5), 0x2CD6 => array(0x2CD7), 0x2CD8 => array(0x2CD9),
1994
+					0x2CDA => array(0x2CDB), 0x2CDC => array(0x2CDD), 0x2CDE => array(0x2CDF),
1995
+					0x2CE0 => array(0x2CE1), 0x2CE2 => array(0x2CE3), 0x2CEB => array(0x2CEC),
1996
+					0x2CED => array(0x2CEE), 0x2CF2 => array(0x2CF3), 0x2D6F => array(0x2D61),
1997
+					0x2E9F => array(0x6BCD), 0x2EF3 => array(0x9F9F), 0x2F00 => array(0x4E00),
1998
+					0x2F01 => array(0x4E28), 0x2F02 => array(0x4E36), 0x2F03 => array(0x4E3F),
1999
+					0x2F04 => array(0x4E59), 0x2F05 => array(0x4E85), 0x2F06 => array(0x4E8C),
2000
+					0x2F07 => array(0x4EA0), 0x2F08 => array(0x4EBA), 0x2F09 => array(0x513F),
2001
+					0x2F0A => array(0x5165), 0x2F0B => array(0x516B), 0x2F0C => array(0x5182),
2002
+					0x2F0D => array(0x5196), 0x2F0E => array(0x51AB), 0x2F0F => array(0x51E0),
2003
+					0x2F10 => array(0x51F5), 0x2F11 => array(0x5200), 0x2F12 => array(0x529B),
2004
+					0x2F13 => array(0x52F9), 0x2F14 => array(0x5315), 0x2F15 => array(0x531A),
2005
+					0x2F16 => array(0x5338), 0x2F17 => array(0x5341), 0x2F18 => array(0x535C),
2006
+					0x2F19 => array(0x5369), 0x2F1A => array(0x5382), 0x2F1B => array(0x53B6),
2007
+					0x2F1C => array(0x53C8), 0x2F1D => array(0x53E3), 0x2F1E => array(0x56D7),
2008
+					0x2F1F => array(0x571F), 0x2F20 => array(0x58EB), 0x2F21 => array(0x5902),
2009
+					0x2F22 => array(0x590A), 0x2F23 => array(0x5915), 0x2F24 => array(0x5927),
2010
+					0x2F25 => array(0x5973), 0x2F26 => array(0x5B50), 0x2F27 => array(0x5B80),
2011
+					0x2F28 => array(0x5BF8), 0x2F29 => array(0x5C0F), 0x2F2A => array(0x5C22),
2012
+					0x2F2B => array(0x5C38), 0x2F2C => array(0x5C6E), 0x2F2D => array(0x5C71),
2013
+					0x2F2E => array(0x5DDB), 0x2F2F => array(0x5DE5), 0x2F30 => array(0x5DF1),
2014
+					0x2F31 => array(0x5DFE), 0x2F32 => array(0x5E72), 0x2F33 => array(0x5E7A),
2015
+					0x2F34 => array(0x5E7F), 0x2F35 => array(0x5EF4), 0x2F36 => array(0x5EFE),
2016
+					0x2F37 => array(0x5F0B), 0x2F38 => array(0x5F13), 0x2F39 => array(0x5F50),
2017
+					0x2F3A => array(0x5F61), 0x2F3B => array(0x5F73), 0x2F3C => array(0x5FC3),
2018
+					0x2F3D => array(0x6208), 0x2F3E => array(0x6236), 0x2F3F => array(0x624B),
2019
+					0x2F40 => array(0x652F), 0x2F41 => array(0x6534), 0x2F42 => array(0x6587),
2020
+					0x2F43 => array(0x6597), 0x2F44 => array(0x65A4), 0x2F45 => array(0x65B9),
2021
+					0x2F46 => array(0x65E0), 0x2F47 => array(0x65E5), 0x2F48 => array(0x66F0),
2022
+					0x2F49 => array(0x6708), 0x2F4A => array(0x6728), 0x2F4B => array(0x6B20),
2023
+					0x2F4C => array(0x6B62), 0x2F4D => array(0x6B79), 0x2F4E => array(0x6BB3),
2024
+					0x2F4F => array(0x6BCB), 0x2F50 => array(0x6BD4), 0x2F51 => array(0x6BDB),
2025
+					0x2F52 => array(0x6C0F), 0x2F53 => array(0x6C14), 0x2F54 => array(0x6C34),
2026
+					0x2F55 => array(0x706B), 0x2F56 => array(0x722A), 0x2F57 => array(0x7236),
2027
+					0x2F58 => array(0x723B), 0x2F59 => array(0x723F), 0x2F5A => array(0x7247),
2028
+					0x2F5B => array(0x7259), 0x2F5C => array(0x725B), 0x2F5D => array(0x72AC),
2029
+					0x2F5E => array(0x7384), 0x2F5F => array(0x7389), 0x2F60 => array(0x74DC),
2030
+					0x2F61 => array(0x74E6), 0x2F62 => array(0x7518), 0x2F63 => array(0x751F),
2031
+					0x2F64 => array(0x7528), 0x2F65 => array(0x7530), 0x2F66 => array(0x758B),
2032
+					0x2F67 => array(0x7592), 0x2F68 => array(0x7676), 0x2F69 => array(0x767D),
2033
+					0x2F6A => array(0x76AE), 0x2F6B => array(0x76BF), 0x2F6C => array(0x76EE),
2034
+					0x2F6D => array(0x77DB), 0x2F6E => array(0x77E2), 0x2F6F => array(0x77F3),
2035
+					0x2F70 => array(0x793A), 0x2F71 => array(0x79B8), 0x2F72 => array(0x79BE),
2036
+					0x2F73 => array(0x7A74), 0x2F74 => array(0x7ACB), 0x2F75 => array(0x7AF9),
2037
+					0x2F76 => array(0x7C73), 0x2F77 => array(0x7CF8), 0x2F78 => array(0x7F36),
2038
+					0x2F79 => array(0x7F51), 0x2F7A => array(0x7F8A), 0x2F7B => array(0x7FBD),
2039
+					0x2F7C => array(0x8001), 0x2F7D => array(0x800C), 0x2F7E => array(0x8012),
2040
+					0x2F7F => array(0x8033), 0x2F80 => array(0x807F), 0x2F81 => array(0x8089),
2041
+					0x2F82 => array(0x81E3), 0x2F83 => array(0x81EA), 0x2F84 => array(0x81F3),
2042
+					0x2F85 => array(0x81FC), 0x2F86 => array(0x820C), 0x2F87 => array(0x821B),
2043
+					0x2F88 => array(0x821F), 0x2F89 => array(0x826E), 0x2F8A => array(0x8272),
2044
+					0x2F8B => array(0x8278), 0x2F8C => array(0x864D), 0x2F8D => array(0x866B),
2045
+					0x2F8E => array(0x8840), 0x2F8F => array(0x884C), 0x2F90 => array(0x8863),
2046
+					0x2F91 => array(0x897E), 0x2F92 => array(0x898B), 0x2F93 => array(0x89D2),
2047
+					0x2F94 => array(0x8A00), 0x2F95 => array(0x8C37), 0x2F96 => array(0x8C46),
2048
+					0x2F97 => array(0x8C55), 0x2F98 => array(0x8C78), 0x2F99 => array(0x8C9D),
2049
+					0x2F9A => array(0x8D64), 0x2F9B => array(0x8D70), 0x2F9C => array(0x8DB3),
2050
+					0x2F9D => array(0x8EAB), 0x2F9E => array(0x8ECA), 0x2F9F => array(0x8F9B),
2051
+					0x2FA0 => array(0x8FB0), 0x2FA1 => array(0x8FB5), 0x2FA2 => array(0x9091),
2052
+					0x2FA3 => array(0x9149), 0x2FA4 => array(0x91C6), 0x2FA5 => array(0x91CC),
2053
+					0x2FA6 => array(0x91D1), 0x2FA7 => array(0x9577), 0x2FA8 => array(0x9580),
2054
+					0x2FA9 => array(0x961C), 0x2FAA => array(0x96B6), 0x2FAB => array(0x96B9),
2055
+					0x2FAC => array(0x96E8), 0x2FAD => array(0x9751), 0x2FAE => array(0x975E),
2056
+					0x2FAF => array(0x9762), 0x2FB0 => array(0x9769), 0x2FB1 => array(0x97CB),
2057
+					0x2FB2 => array(0x97ED), 0x2FB3 => array(0x97F3), 0x2FB4 => array(0x9801),
2058
+					0x2FB5 => array(0x98A8), 0x2FB6 => array(0x98DB), 0x2FB7 => array(0x98DF),
2059
+					0x2FB8 => array(0x9996), 0x2FB9 => array(0x9999), 0x2FBA => array(0x99AC),
2060
+					0x2FBB => array(0x9AA8), 0x2FBC => array(0x9AD8), 0x2FBD => array(0x9ADF),
2061
+					0x2FBE => array(0x9B25), 0x2FBF => array(0x9B2F), 0x2FC0 => array(0x9B32),
2062
+					0x2FC1 => array(0x9B3C), 0x2FC2 => array(0x9B5A), 0x2FC3 => array(0x9CE5),
2063
+					0x2FC4 => array(0x9E75), 0x2FC5 => array(0x9E7F), 0x2FC6 => array(0x9EA5),
2064
+					0x2FC7 => array(0x9EBB), 0x2FC8 => array(0x9EC3), 0x2FC9 => array(0x9ECD),
2065
+					0x2FCA => array(0x9ED1), 0x2FCB => array(0x9EF9), 0x2FCC => array(0x9EFD),
2066
+					0x2FCD => array(0x9F0E), 0x2FCE => array(0x9F13), 0x2FCF => array(0x9F20),
2067
+					0x2FD0 => array(0x9F3B), 0x2FD1 => array(0x9F4A), 0x2FD2 => array(0x9F52),
2068
+					0x2FD3 => array(0x9F8D), 0x2FD4 => array(0x9F9C), 0x2FD5 => array(0x9FA0),
2069
+					0x3002 => array(0x2E), 0x3036 => array(0x3012), 0x3038 => array(0x5341),
2070
+					0x3039 => array(0x5344), 0x303A => array(0x5345), 0x309F => array(0x3088, 0x308A),
2071
+					0x30FF => array(0x30B3, 0x30C8), 0x3131 => array(0x1100), 0x3132 => array(0x1101),
2072
+					0x3133 => array(0x11AA), 0x3134 => array(0x1102), 0x3135 => array(0x11AC),
2073
+					0x3136 => array(0x11AD), 0x3137 => array(0x1103), 0x3138 => array(0x1104),
2074
+					0x3139 => array(0x1105), 0x313A => array(0x11B0), 0x313B => array(0x11B1),
2075
+					0x313C => array(0x11B2), 0x313D => array(0x11B3), 0x313E => array(0x11B4),
2076
+					0x313F => array(0x11B5), 0x3140 => array(0x111A), 0x3141 => array(0x1106),
2077
+					0x3142 => array(0x1107), 0x3143 => array(0x1108), 0x3144 => array(0x1121),
2078
+					0x3145 => array(0x1109), 0x3146 => array(0x110A), 0x3147 => array(0x110B),
2079
+					0x3148 => array(0x110C), 0x3149 => array(0x110D), 0x314A => array(0x110E),
2080
+					0x314B => array(0x110F), 0x314C => array(0x1110), 0x314D => array(0x1111),
2081
+					0x314E => array(0x1112), 0x314F => array(0x1161), 0x3150 => array(0x1162),
2082
+					0x3151 => array(0x1163), 0x3152 => array(0x1164), 0x3153 => array(0x1165),
2083
+					0x3154 => array(0x1166), 0x3155 => array(0x1167), 0x3156 => array(0x1168),
2084
+					0x3157 => array(0x1169), 0x3158 => array(0x116A), 0x3159 => array(0x116B),
2085
+					0x315A => array(0x116C), 0x315B => array(0x116D), 0x315C => array(0x116E),
2086
+					0x315D => array(0x116F), 0x315E => array(0x1170), 0x315F => array(0x1171),
2087
+					0x3160 => array(0x1172), 0x3161 => array(0x1173), 0x3162 => array(0x1174),
2088
+					0x3163 => array(0x1175), 0x3165 => array(0x1114), 0x3166 => array(0x1115),
2089
+					0x3167 => array(0x11C7), 0x3168 => array(0x11C8), 0x3169 => array(0x11CC),
2090
+					0x316A => array(0x11CE), 0x316B => array(0x11D3), 0x316C => array(0x11D7),
2091
+					0x316D => array(0x11D9), 0x316E => array(0x111C), 0x316F => array(0x11DD),
2092
+					0x3170 => array(0x11DF), 0x3171 => array(0x111D), 0x3172 => array(0x111E),
2093
+					0x3173 => array(0x1120), 0x3174 => array(0x1122), 0x3175 => array(0x1123),
2094
+					0x3176 => array(0x1127), 0x3177 => array(0x1129), 0x3178 => array(0x112B),
2095
+					0x3179 => array(0x112C), 0x317A => array(0x112D), 0x317B => array(0x112E),
2096
+					0x317C => array(0x112F), 0x317D => array(0x1132), 0x317E => array(0x1136),
2097
+					0x317F => array(0x1140), 0x3180 => array(0x1147), 0x3181 => array(0x114C),
2098
+					0x3182 => array(0x11F1), 0x3183 => array(0x11F2), 0x3184 => array(0x1157),
2099
+					0x3185 => array(0x1158), 0x3186 => array(0x1159), 0x3187 => array(0x1184),
2100
+					0x3188 => array(0x1185), 0x3189 => array(0x1188), 0x318A => array(0x1191),
2101
+					0x318B => array(0x1192), 0x318C => array(0x1194), 0x318D => array(0x119E),
2102
+					0x318E => array(0x11A1), 0x3192 => array(0x4E00), 0x3193 => array(0x4E8C),
2103
+					0x3194 => array(0x4E09), 0x3195 => array(0x56DB), 0x3196 => array(0x4E0A),
2104
+					0x3197 => array(0x4E2D), 0x3198 => array(0x4E0B), 0x3199 => array(0x7532),
2105
+					0x319A => array(0x4E59), 0x319B => array(0x4E19), 0x319C => array(0x4E01),
2106
+					0x319D => array(0x5929), 0x319E => array(0x5730), 0x319F => array(0x4EBA),
2107
+					0x3244 => array(0x554F), 0x3245 => array(0x5E7C), 0x3246 => array(0x6587),
2108
+					0x3247 => array(0x7B8F), 0x3250 => array(0x70, 0x74, 0x65), 0x3251 => array(0x32, 0x31),
2109
+					0x3252 => array(0x32, 0x32), 0x3253 => array(0x32, 0x33), 0x3254 => array(0x32, 0x34),
2110
+					0x3255 => array(0x32, 0x35), 0x3256 => array(0x32, 0x36), 0x3257 => array(0x32, 0x37),
2111
+					0x3258 => array(0x32, 0x38), 0x3259 => array(0x32, 0x39), 0x325A => array(0x33, 0x30),
2112
+					0x325B => array(0x33, 0x31), 0x325C => array(0x33, 0x32), 0x325D => array(0x33, 0x33),
2113
+					0x325E => array(0x33, 0x34), 0x325F => array(0x33, 0x35), 0x3260 => array(0x1100),
2114
+					0x3261 => array(0x1102), 0x3262 => array(0x1103), 0x3263 => array(0x1105),
2115
+					0x3264 => array(0x1106), 0x3265 => array(0x1107), 0x3266 => array(0x1109),
2116
+					0x3267 => array(0x110B), 0x3268 => array(0x110C), 0x3269 => array(0x110E),
2117
+					0x326A => array(0x110F), 0x326B => array(0x1110), 0x326C => array(0x1111),
2118
+					0x326D => array(0x1112), 0x326E => array(0xAC00), 0x326F => array(0xB098),
2119
+					0x3270 => array(0xB2E4), 0x3271 => array(0xB77C), 0x3272 => array(0xB9C8),
2120
+					0x3273 => array(0xBC14), 0x3274 => array(0xC0AC), 0x3275 => array(0xC544),
2121
+					0x3276 => array(0xC790), 0x3277 => array(0xCC28), 0x3278 => array(0xCE74),
2122
+					0x3279 => array(0xD0C0), 0x327A => array(0xD30C), 0x327B => array(0xD558),
2123
+					0x327C => array(0xCC38, 0xACE0), 0x327D => array(0xC8FC, 0xC758), 0x327E => array(0xC6B0),
2124
+					0x3280 => array(0x4E00), 0x3281 => array(0x4E8C), 0x3282 => array(0x4E09),
2125
+					0x3283 => array(0x56DB), 0x3284 => array(0x4E94), 0x3285 => array(0x516D),
2126
+					0x3286 => array(0x4E03), 0x3287 => array(0x516B), 0x3288 => array(0x4E5D),
2127
+					0x3289 => array(0x5341), 0x328A => array(0x6708), 0x328B => array(0x706B),
2128
+					0x328C => array(0x6C34), 0x328D => array(0x6728), 0x328E => array(0x91D1),
2129
+					0x328F => array(0x571F), 0x3290 => array(0x65E5), 0x3291 => array(0x682A),
2130
+					0x3292 => array(0x6709), 0x3293 => array(0x793E), 0x3294 => array(0x540D),
2131
+					0x3295 => array(0x7279), 0x3296 => array(0x8CA1), 0x3297 => array(0x795D),
2132
+					0x3298 => array(0x52B4), 0x3299 => array(0x79D8), 0x329A => array(0x7537),
2133
+					0x329B => array(0x5973), 0x329C => array(0x9069), 0x329D => array(0x512A),
2134
+					0x329E => array(0x5370), 0x329F => array(0x6CE8), 0x32A0 => array(0x9805),
2135
+					0x32A1 => array(0x4F11), 0x32A2 => array(0x5199), 0x32A3 => array(0x6B63),
2136
+					0x32A4 => array(0x4E0A), 0x32A5 => array(0x4E2D), 0x32A6 => array(0x4E0B),
2137
+					0x32A7 => array(0x5DE6), 0x32A8 => array(0x53F3), 0x32A9 => array(0x533B),
2138
+					0x32AA => array(0x5B97), 0x32AB => array(0x5B66), 0x32AC => array(0x76E3),
2139
+					0x32AD => array(0x4F01), 0x32AE => array(0x8CC7), 0x32AF => array(0x5354),
2140
+					0x32B0 => array(0x591C), 0x32B1 => array(0x33, 0x36), 0x32B2 => array(0x33, 0x37),
2141
+					0x32B3 => array(0x33, 0x38), 0x32B4 => array(0x33, 0x39), 0x32B5 => array(0x34, 0x30),
2142
+					0x32B6 => array(0x34, 0x31), 0x32B7 => array(0x34, 0x32), 0x32B8 => array(0x34, 0x33),
2143
+					0x32B9 => array(0x34, 0x34), 0x32BA => array(0x34, 0x35), 0x32BB => array(0x34, 0x36),
2144
+					0x32BC => array(0x34, 0x37), 0x32BD => array(0x34, 0x38), 0x32BE => array(0x34, 0x39),
2145
+					0x32BF => array(0x35, 0x30), 0x32C0 => array(0x31, 0x6708), 0x32C1 => array(0x32, 0x6708),
2146
+					0x32C2 => array(0x33, 0x6708), 0x32C3 => array(0x34, 0x6708), 0x32C4 => array(0x35, 0x6708),
2147
+					0x32C5 => array(0x36, 0x6708), 0x32C6 => array(0x37, 0x6708), 0x32C7 => array(0x38, 0x6708),
2148
+					0x32C8 => array(0x39, 0x6708), 0x32C9 => array(0x31, 0x30, 0x6708), 0x32CA => array(0x31, 0x31, 0x6708),
2149
+					0x32CB => array(0x31, 0x32, 0x6708), 0x32CC => array(0x68, 0x67), 0x32CD => array(0x65, 0x72, 0x67),
2150
+					0x32CE => array(0x65, 0x76), 0x32CF => array(0x6C, 0x74, 0x64), 0x32D0 => array(0x30A2),
2151
+					0x32D1 => array(0x30A4), 0x32D2 => array(0x30A6), 0x32D3 => array(0x30A8),
2152
+					0x32D4 => array(0x30AA), 0x32D5 => array(0x30AB), 0x32D6 => array(0x30AD),
2153
+					0x32D7 => array(0x30AF), 0x32D8 => array(0x30B1), 0x32D9 => array(0x30B3),
2154
+					0x32DA => array(0x30B5), 0x32DB => array(0x30B7), 0x32DC => array(0x30B9),
2155
+					0x32DD => array(0x30BB), 0x32DE => array(0x30BD), 0x32DF => array(0x30BF),
2156
+					0x32E0 => array(0x30C1), 0x32E1 => array(0x30C4), 0x32E2 => array(0x30C6),
2157
+					0x32E3 => array(0x30C8), 0x32E4 => array(0x30CA), 0x32E5 => array(0x30CB),
2158
+					0x32E6 => array(0x30CC), 0x32E7 => array(0x30CD), 0x32E8 => array(0x30CE),
2159
+					0x32E9 => array(0x30CF), 0x32EA => array(0x30D2), 0x32EB => array(0x30D5),
2160
+					0x32EC => array(0x30D8), 0x32ED => array(0x30DB), 0x32EE => array(0x30DE),
2161
+					0x32EF => array(0x30DF), 0x32F0 => array(0x30E0), 0x32F1 => array(0x30E1),
2162
+					0x32F2 => array(0x30E2), 0x32F3 => array(0x30E4), 0x32F4 => array(0x30E6),
2163
+					0x32F5 => array(0x30E8), 0x32F6 => array(0x30E9), 0x32F7 => array(0x30EA),
2164
+					0x32F8 => array(0x30EB), 0x32F9 => array(0x30EC), 0x32FA => array(0x30ED),
2165
+					0x32FB => array(0x30EF), 0x32FC => array(0x30F0), 0x32FD => array(0x30F1),
2166
+					0x32FE => array(0x30F2), 0x3300 => array(0x30A2, 0x30D1, 0x30FC, 0x30C8), 0x3301 => array(0x30A2, 0x30EB, 0x30D5, 0x30A1),
2167
+					0x3302 => array(0x30A2, 0x30F3, 0x30DA, 0x30A2), 0x3303 => array(0x30A2, 0x30FC, 0x30EB), 0x3304 => array(0x30A4, 0x30CB, 0x30F3, 0x30B0),
2168
+					0x3305 => array(0x30A4, 0x30F3, 0x30C1), 0x3306 => array(0x30A6, 0x30A9, 0x30F3), 0x3307 => array(0x30A8, 0x30B9, 0x30AF, 0x30FC, 0x30C9),
2169
+					0x3308 => array(0x30A8, 0x30FC, 0x30AB, 0x30FC), 0x3309 => array(0x30AA, 0x30F3, 0x30B9), 0x330A => array(0x30AA, 0x30FC, 0x30E0),
2170
+					0x330B => array(0x30AB, 0x30A4, 0x30EA), 0x330C => array(0x30AB, 0x30E9, 0x30C3, 0x30C8), 0x330D => array(0x30AB, 0x30ED, 0x30EA, 0x30FC),
2171
+					0x330E => array(0x30AC, 0x30ED, 0x30F3), 0x330F => array(0x30AC, 0x30F3, 0x30DE), 0x3310 => array(0x30AE, 0x30AC),
2172
+					0x3311 => array(0x30AE, 0x30CB, 0x30FC), 0x3312 => array(0x30AD, 0x30E5, 0x30EA, 0x30FC), 0x3313 => array(0x30AE, 0x30EB, 0x30C0, 0x30FC),
2173
+					0x3314 => array(0x30AD, 0x30ED), 0x3315 => array(0x30AD, 0x30ED, 0x30B0, 0x30E9, 0x30E0), 0x3316 => array(0x30AD, 0x30ED, 0x30E1, 0x30FC, 0x30C8, 0x30EB),
2174
+					0x3317 => array(0x30AD, 0x30ED, 0x30EF, 0x30C3, 0x30C8), 0x3318 => array(0x30B0, 0x30E9, 0x30E0), 0x3319 => array(0x30B0, 0x30E9, 0x30E0, 0x30C8, 0x30F3),
2175
+					0x331A => array(0x30AF, 0x30EB, 0x30BC, 0x30A4, 0x30ED), 0x331B => array(0x30AF, 0x30ED, 0x30FC, 0x30CD), 0x331C => array(0x30B1, 0x30FC, 0x30B9),
2176
+					0x331D => array(0x30B3, 0x30EB, 0x30CA), 0x331E => array(0x30B3, 0x30FC, 0x30DD), 0x331F => array(0x30B5, 0x30A4, 0x30AF, 0x30EB),
2177
+					0x3320 => array(0x30B5, 0x30F3, 0x30C1, 0x30FC, 0x30E0), 0x3321 => array(0x30B7, 0x30EA, 0x30F3, 0x30B0), 0x3322 => array(0x30BB, 0x30F3, 0x30C1),
2178
+					0x3323 => array(0x30BB, 0x30F3, 0x30C8), 0x3324 => array(0x30C0, 0x30FC, 0x30B9), 0x3325 => array(0x30C7, 0x30B7),
2179
+					0x3326 => array(0x30C9, 0x30EB), 0x3327 => array(0x30C8, 0x30F3), 0x3328 => array(0x30CA, 0x30CE),
2180
+					0x3329 => array(0x30CE, 0x30C3, 0x30C8), 0x332A => array(0x30CF, 0x30A4, 0x30C4), 0x332B => array(0x30D1, 0x30FC, 0x30BB, 0x30F3, 0x30C8),
2181
+					0x332C => array(0x30D1, 0x30FC, 0x30C4), 0x332D => array(0x30D0, 0x30FC, 0x30EC, 0x30EB), 0x332E => array(0x30D4, 0x30A2, 0x30B9, 0x30C8, 0x30EB),
2182
+					0x332F => array(0x30D4, 0x30AF, 0x30EB), 0x3330 => array(0x30D4, 0x30B3), 0x3331 => array(0x30D3, 0x30EB),
2183
+					0x3332 => array(0x30D5, 0x30A1, 0x30E9, 0x30C3, 0x30C9), 0x3333 => array(0x30D5, 0x30A3, 0x30FC, 0x30C8), 0x3334 => array(0x30D6, 0x30C3, 0x30B7, 0x30A7, 0x30EB),
2184
+					0x3335 => array(0x30D5, 0x30E9, 0x30F3), 0x3336 => array(0x30D8, 0x30AF, 0x30BF, 0x30FC, 0x30EB), 0x3337 => array(0x30DA, 0x30BD),
2185
+					0x3338 => array(0x30DA, 0x30CB, 0x30D2), 0x3339 => array(0x30D8, 0x30EB, 0x30C4), 0x333A => array(0x30DA, 0x30F3, 0x30B9),
2186
+					0x333B => array(0x30DA, 0x30FC, 0x30B8), 0x333C => array(0x30D9, 0x30FC, 0x30BF), 0x333D => array(0x30DD, 0x30A4, 0x30F3, 0x30C8),
2187
+					0x333E => array(0x30DC, 0x30EB, 0x30C8), 0x333F => array(0x30DB, 0x30F3), 0x3340 => array(0x30DD, 0x30F3, 0x30C9),
2188
+					0x3341 => array(0x30DB, 0x30FC, 0x30EB), 0x3342 => array(0x30DB, 0x30FC, 0x30F3), 0x3343 => array(0x30DE, 0x30A4, 0x30AF, 0x30ED),
2189
+					0x3344 => array(0x30DE, 0x30A4, 0x30EB), 0x3345 => array(0x30DE, 0x30C3, 0x30CF), 0x3346 => array(0x30DE, 0x30EB, 0x30AF),
2190
+					0x3347 => array(0x30DE, 0x30F3, 0x30B7, 0x30E7, 0x30F3), 0x3348 => array(0x30DF, 0x30AF, 0x30ED, 0x30F3), 0x3349 => array(0x30DF, 0x30EA),
2191
+					0x334A => array(0x30DF, 0x30EA, 0x30D0, 0x30FC, 0x30EB), 0x334B => array(0x30E1, 0x30AC), 0x334C => array(0x30E1, 0x30AC, 0x30C8, 0x30F3),
2192
+					0x334D => array(0x30E1, 0x30FC, 0x30C8, 0x30EB), 0x334E => array(0x30E4, 0x30FC, 0x30C9), 0x334F => array(0x30E4, 0x30FC, 0x30EB),
2193
+					0x3350 => array(0x30E6, 0x30A2, 0x30F3), 0x3351 => array(0x30EA, 0x30C3, 0x30C8, 0x30EB), 0x3352 => array(0x30EA, 0x30E9),
2194
+					0x3353 => array(0x30EB, 0x30D4, 0x30FC), 0x3354 => array(0x30EB, 0x30FC, 0x30D6, 0x30EB), 0x3355 => array(0x30EC, 0x30E0),
2195
+					0x3356 => array(0x30EC, 0x30F3, 0x30C8, 0x30B2, 0x30F3), 0x3357 => array(0x30EF, 0x30C3, 0x30C8), 0x3358 => array(0x30, 0x70B9),
2196
+					0x3359 => array(0x31, 0x70B9), 0x335A => array(0x32, 0x70B9), 0x335B => array(0x33, 0x70B9),
2197
+					0x335C => array(0x34, 0x70B9), 0x335D => array(0x35, 0x70B9), 0x335E => array(0x36, 0x70B9),
2198
+					0x335F => array(0x37, 0x70B9), 0x3360 => array(0x38, 0x70B9), 0x3361 => array(0x39, 0x70B9),
2199
+					0x3362 => array(0x31, 0x30, 0x70B9), 0x3363 => array(0x31, 0x31, 0x70B9), 0x3364 => array(0x31, 0x32, 0x70B9),
2200
+					0x3365 => array(0x31, 0x33, 0x70B9), 0x3366 => array(0x31, 0x34, 0x70B9), 0x3367 => array(0x31, 0x35, 0x70B9),
2201
+					0x3368 => array(0x31, 0x36, 0x70B9), 0x3369 => array(0x31, 0x37, 0x70B9), 0x336A => array(0x31, 0x38, 0x70B9),
2202
+					0x336B => array(0x31, 0x39, 0x70B9), 0x336C => array(0x32, 0x30, 0x70B9), 0x336D => array(0x32, 0x31, 0x70B9),
2203
+					0x336E => array(0x32, 0x32, 0x70B9), 0x336F => array(0x32, 0x33, 0x70B9), 0x3370 => array(0x32, 0x34, 0x70B9),
2204
+					0x3371 => array(0x68, 0x70, 0x61), 0x3372 => array(0x64, 0x61), 0x3373 => array(0x61, 0x75),
2205
+					0x3374 => array(0x62, 0x61, 0x72), 0x3375 => array(0x6F, 0x76), 0x3376 => array(0x70, 0x63),
2206
+					0x3377 => array(0x64, 0x6D), 0x3378 => array(0x64, 0x6D, 0x32), 0x3379 => array(0x64, 0x6D, 0x33),
2207
+					0x337A => array(0x69, 0x75), 0x337B => array(0x5E73, 0x6210), 0x337C => array(0x662D, 0x548C),
2208
+					0x337D => array(0x5927, 0x6B63), 0x337E => array(0x660E, 0x6CBB), 0x337F => array(0x682A, 0x5F0F, 0x4F1A, 0x793E),
2209
+					0x3380 => array(0x70, 0x61), 0x3381 => array(0x6E, 0x61), 0x3382 => array(0x3BC, 0x61),
2210
+					0x3383 => array(0x6D, 0x61), 0x3384 => array(0x6B, 0x61), 0x3385 => array(0x6B, 0x62),
2211
+					0x3386 => array(0x6D, 0x62), 0x3387 => array(0x67, 0x62), 0x3388 => array(0x63, 0x61, 0x6C),
2212
+					0x3389 => array(0x6B, 0x63, 0x61, 0x6C), 0x338A => array(0x70, 0x66), 0x338B => array(0x6E, 0x66),
2213
+					0x338C => array(0x3BC, 0x66), 0x338D => array(0x3BC, 0x67), 0x338E => array(0x6D, 0x67),
2214
+					0x338F => array(0x6B, 0x67), 0x3390 => array(0x68, 0x7A), 0x3391 => array(0x6B, 0x68, 0x7A),
2215
+					0x3392 => array(0x6D, 0x68, 0x7A), 0x3393 => array(0x67, 0x68, 0x7A), 0x3394 => array(0x74, 0x68, 0x7A),
2216
+					0x3395 => array(0x3BC, 0x6C), 0x3396 => array(0x6D, 0x6C), 0x3397 => array(0x64, 0x6C),
2217
+					0x3398 => array(0x6B, 0x6C), 0x3399 => array(0x66, 0x6D), 0x339A => array(0x6E, 0x6D),
2218
+					0x339B => array(0x3BC, 0x6D), 0x339C => array(0x6D, 0x6D), 0x339D => array(0x63, 0x6D),
2219
+					0x339E => array(0x6B, 0x6D), 0x339F => array(0x6D, 0x6D, 0x32), 0x33A0 => array(0x63, 0x6D, 0x32),
2220
+					0x33A1 => array(0x6D, 0x32), 0x33A2 => array(0x6B, 0x6D, 0x32), 0x33A3 => array(0x6D, 0x6D, 0x33),
2221
+					0x33A4 => array(0x63, 0x6D, 0x33), 0x33A5 => array(0x6D, 0x33), 0x33A6 => array(0x6B, 0x6D, 0x33),
2222
+					0x33A7 => array(0x6D, 0x2215, 0x73), 0x33A8 => array(0x6D, 0x2215, 0x73, 0x32), 0x33A9 => array(0x70, 0x61),
2223
+					0x33AA => array(0x6B, 0x70, 0x61), 0x33AB => array(0x6D, 0x70, 0x61), 0x33AC => array(0x67, 0x70, 0x61),
2224
+					0x33AD => array(0x72, 0x61, 0x64), 0x33AE => array(0x72, 0x61, 0x64, 0x2215, 0x73), 0x33AF => array(0x72, 0x61, 0x64, 0x2215, 0x73, 0x32),
2225
+					0x33B0 => array(0x70, 0x73), 0x33B1 => array(0x6E, 0x73), 0x33B2 => array(0x3BC, 0x73),
2226
+					0x33B3 => array(0x6D, 0x73), 0x33B4 => array(0x70, 0x76), 0x33B5 => array(0x6E, 0x76),
2227
+					0x33B6 => array(0x3BC, 0x76), 0x33B7 => array(0x6D, 0x76), 0x33B8 => array(0x6B, 0x76),
2228
+					0x33B9 => array(0x6D, 0x76), 0x33BA => array(0x70, 0x77), 0x33BB => array(0x6E, 0x77),
2229
+					0x33BC => array(0x3BC, 0x77), 0x33BD => array(0x6D, 0x77), 0x33BE => array(0x6B, 0x77),
2230
+					0x33BF => array(0x6D, 0x77), 0x33C0 => array(0x6B, 0x3C9), 0x33C1 => array(0x6D, 0x3C9),
2231
+					0x33C3 => array(0x62, 0x71), 0x33C4 => array(0x63, 0x63), 0x33C5 => array(0x63, 0x64),
2232
+					0x33C6 => array(0x63, 0x2215, 0x6B, 0x67), 0x33C8 => array(0x64, 0x62), 0x33C9 => array(0x67, 0x79),
2233
+					0x33CA => array(0x68, 0x61), 0x33CB => array(0x68, 0x70), 0x33CC => array(0x69, 0x6E),
2234
+					0x33CD => array(0x6B, 0x6B), 0x33CE => array(0x6B, 0x6D), 0x33CF => array(0x6B, 0x74),
2235
+					0x33D0 => array(0x6C, 0x6D), 0x33D1 => array(0x6C, 0x6E), 0x33D2 => array(0x6C, 0x6F, 0x67),
2236
+					0x33D3 => array(0x6C, 0x78), 0x33D4 => array(0x6D, 0x62), 0x33D5 => array(0x6D, 0x69, 0x6C),
2237
+					0x33D6 => array(0x6D, 0x6F, 0x6C), 0x33D7 => array(0x70, 0x68), 0x33D9 => array(0x70, 0x70, 0x6D),
2238
+					0x33DA => array(0x70, 0x72), 0x33DB => array(0x73, 0x72), 0x33DC => array(0x73, 0x76),
2239
+					0x33DD => array(0x77, 0x62), 0x33DE => array(0x76, 0x2215, 0x6D), 0x33DF => array(0x61, 0x2215, 0x6D),
2240
+					0x33E0 => array(0x31, 0x65E5), 0x33E1 => array(0x32, 0x65E5), 0x33E2 => array(0x33, 0x65E5),
2241
+					0x33E3 => array(0x34, 0x65E5), 0x33E4 => array(0x35, 0x65E5), 0x33E5 => array(0x36, 0x65E5),
2242
+					0x33E6 => array(0x37, 0x65E5), 0x33E7 => array(0x38, 0x65E5), 0x33E8 => array(0x39, 0x65E5),
2243
+					0x33E9 => array(0x31, 0x30, 0x65E5), 0x33EA => array(0x31, 0x31, 0x65E5), 0x33EB => array(0x31, 0x32, 0x65E5),
2244
+					0x33EC => array(0x31, 0x33, 0x65E5), 0x33ED => array(0x31, 0x34, 0x65E5), 0x33EE => array(0x31, 0x35, 0x65E5),
2245
+					0x33EF => array(0x31, 0x36, 0x65E5), 0x33F0 => array(0x31, 0x37, 0x65E5), 0x33F1 => array(0x31, 0x38, 0x65E5),
2246
+					0x33F2 => array(0x31, 0x39, 0x65E5), 0x33F3 => array(0x32, 0x30, 0x65E5), 0x33F4 => array(0x32, 0x31, 0x65E5),
2247
+					0x33F5 => array(0x32, 0x32, 0x65E5), 0x33F6 => array(0x32, 0x33, 0x65E5), 0x33F7 => array(0x32, 0x34, 0x65E5),
2248
+					0x33F8 => array(0x32, 0x35, 0x65E5), 0x33F9 => array(0x32, 0x36, 0x65E5), 0x33FA => array(0x32, 0x37, 0x65E5),
2249
+					0x33FB => array(0x32, 0x38, 0x65E5), 0x33FC => array(0x32, 0x39, 0x65E5), 0x33FD => array(0x33, 0x30, 0x65E5),
2250
+					0x33FE => array(0x33, 0x31, 0x65E5), 0x33FF => array(0x67, 0x61, 0x6C), 0xA640 => array(0xA641),
2251
+					0xA642 => array(0xA643), 0xA644 => array(0xA645), 0xA646 => array(0xA647),
2252
+					0xA648 => array(0xA649), 0xA64A => array(0xA64B), 0xA64C => array(0xA64D),
2253
+					0xA64E => array(0xA64F), 0xA650 => array(0xA651), 0xA652 => array(0xA653),
2254
+					0xA654 => array(0xA655), 0xA656 => array(0xA657), 0xA658 => array(0xA659),
2255
+					0xA65A => array(0xA65B), 0xA65C => array(0xA65D), 0xA65E => array(0xA65F),
2256
+					0xA660 => array(0xA661), 0xA662 => array(0xA663), 0xA664 => array(0xA665),
2257
+					0xA666 => array(0xA667), 0xA668 => array(0xA669), 0xA66A => array(0xA66B),
2258
+					0xA66C => array(0xA66D), 0xA680 => array(0xA681), 0xA682 => array(0xA683),
2259
+					0xA684 => array(0xA685), 0xA686 => array(0xA687), 0xA688 => array(0xA689),
2260
+					0xA68A => array(0xA68B), 0xA68C => array(0xA68D), 0xA68E => array(0xA68F),
2261
+					0xA690 => array(0xA691), 0xA692 => array(0xA693), 0xA694 => array(0xA695),
2262
+					0xA696 => array(0xA697), 0xA698 => array(0xA699), 0xA69A => array(0xA69B),
2263
+					0xA69C => array(0x44A), 0xA69D => array(0x44C), 0xA722 => array(0xA723),
2264
+					0xA724 => array(0xA725), 0xA726 => array(0xA727), 0xA728 => array(0xA729),
2265
+					0xA72A => array(0xA72B), 0xA72C => array(0xA72D), 0xA72E => array(0xA72F),
2266
+					0xA732 => array(0xA733), 0xA734 => array(0xA735), 0xA736 => array(0xA737),
2267
+					0xA738 => array(0xA739), 0xA73A => array(0xA73B), 0xA73C => array(0xA73D),
2268
+					0xA73E => array(0xA73F), 0xA740 => array(0xA741), 0xA742 => array(0xA743),
2269
+					0xA744 => array(0xA745), 0xA746 => array(0xA747), 0xA748 => array(0xA749),
2270
+					0xA74A => array(0xA74B), 0xA74C => array(0xA74D), 0xA74E => array(0xA74F),
2271
+					0xA750 => array(0xA751), 0xA752 => array(0xA753), 0xA754 => array(0xA755),
2272
+					0xA756 => array(0xA757), 0xA758 => array(0xA759), 0xA75A => array(0xA75B),
2273
+					0xA75C => array(0xA75D), 0xA75E => array(0xA75F), 0xA760 => array(0xA761),
2274
+					0xA762 => array(0xA763), 0xA764 => array(0xA765), 0xA766 => array(0xA767),
2275
+					0xA768 => array(0xA769), 0xA76A => array(0xA76B), 0xA76C => array(0xA76D),
2276
+					0xA76E => array(0xA76F), 0xA770 => array(0xA76F), 0xA779 => array(0xA77A),
2277
+					0xA77B => array(0xA77C), 0xA77D => array(0x1D79), 0xA77E => array(0xA77F),
2278
+					0xA780 => array(0xA781), 0xA782 => array(0xA783), 0xA784 => array(0xA785),
2279
+					0xA786 => array(0xA787), 0xA78B => array(0xA78C), 0xA78D => array(0x265),
2280
+					0xA790 => array(0xA791), 0xA792 => array(0xA793), 0xA796 => array(0xA797),
2281
+					0xA798 => array(0xA799), 0xA79A => array(0xA79B), 0xA79C => array(0xA79D),
2282
+					0xA79E => array(0xA79F), 0xA7A0 => array(0xA7A1), 0xA7A2 => array(0xA7A3),
2283
+					0xA7A4 => array(0xA7A5), 0xA7A6 => array(0xA7A7), 0xA7A8 => array(0xA7A9),
2284
+					0xA7AA => array(0x266), 0xA7AB => array(0x25C), 0xA7AC => array(0x261),
2285
+					0xA7AD => array(0x26C), 0xA7B0 => array(0x29E), 0xA7B1 => array(0x287),
2286
+					0xA7F8 => array(0x127), 0xA7F9 => array(0x153), 0xAB5C => array(0xA727),
2287
+					0xAB5D => array(0xAB37), 0xAB5E => array(0x26B), 0xAB5F => array(0xAB52),
2288
+					0xF900 => array(0x8C48), 0xF901 => array(0x66F4), 0xF902 => array(0x8ECA),
2289
+					0xF903 => array(0x8CC8), 0xF904 => array(0x6ED1), 0xF905 => array(0x4E32),
2290
+					0xF906 => array(0x53E5), 0xF907 => array(0x9F9C), 0xF908 => array(0x9F9C),
2291
+					0xF909 => array(0x5951), 0xF90A => array(0x91D1), 0xF90B => array(0x5587),
2292
+					0xF90C => array(0x5948), 0xF90D => array(0x61F6), 0xF90E => array(0x7669),
2293
+					0xF90F => array(0x7F85), 0xF910 => array(0x863F), 0xF911 => array(0x87BA),
2294
+					0xF912 => array(0x88F8), 0xF913 => array(0x908F), 0xF914 => array(0x6A02),
2295
+					0xF915 => array(0x6D1B), 0xF916 => array(0x70D9), 0xF917 => array(0x73DE),
2296
+					0xF918 => array(0x843D), 0xF919 => array(0x916A), 0xF91A => array(0x99F1),
2297
+					0xF91B => array(0x4E82), 0xF91C => array(0x5375), 0xF91D => array(0x6B04),
2298
+					0xF91E => array(0x721B), 0xF91F => array(0x862D), 0xF920 => array(0x9E1E),
2299
+					0xF921 => array(0x5D50), 0xF922 => array(0x6FEB), 0xF923 => array(0x85CD),
2300
+					0xF924 => array(0x8964), 0xF925 => array(0x62C9), 0xF926 => array(0x81D8),
2301
+					0xF927 => array(0x881F), 0xF928 => array(0x5ECA), 0xF929 => array(0x6717),
2302
+					0xF92A => array(0x6D6A), 0xF92B => array(0x72FC), 0xF92C => array(0x90CE),
2303
+					0xF92D => array(0x4F86), 0xF92E => array(0x51B7), 0xF92F => array(0x52DE),
2304
+					0xF930 => array(0x64C4), 0xF931 => array(0x6AD3), 0xF932 => array(0x7210),
2305
+					0xF933 => array(0x76E7), 0xF934 => array(0x8001), 0xF935 => array(0x8606),
2306
+					0xF936 => array(0x865C), 0xF937 => array(0x8DEF), 0xF938 => array(0x9732),
2307
+					0xF939 => array(0x9B6F), 0xF93A => array(0x9DFA), 0xF93B => array(0x788C),
2308
+					0xF93C => array(0x797F), 0xF93D => array(0x7DA0), 0xF93E => array(0x83C9),
2309
+					0xF93F => array(0x9304), 0xF940 => array(0x9E7F), 0xF941 => array(0x8AD6),
2310
+					0xF942 => array(0x58DF), 0xF943 => array(0x5F04), 0xF944 => array(0x7C60),
2311
+					0xF945 => array(0x807E), 0xF946 => array(0x7262), 0xF947 => array(0x78CA),
2312
+					0xF948 => array(0x8CC2), 0xF949 => array(0x96F7), 0xF94A => array(0x58D8),
2313
+					0xF94B => array(0x5C62), 0xF94C => array(0x6A13), 0xF94D => array(0x6DDA),
2314
+					0xF94E => array(0x6F0F), 0xF94F => array(0x7D2F), 0xF950 => array(0x7E37),
2315
+					0xF951 => array(0x964B), 0xF952 => array(0x52D2), 0xF953 => array(0x808B),
2316
+					0xF954 => array(0x51DC), 0xF955 => array(0x51CC), 0xF956 => array(0x7A1C),
2317
+					0xF957 => array(0x7DBE), 0xF958 => array(0x83F1), 0xF959 => array(0x9675),
2318
+					0xF95A => array(0x8B80), 0xF95B => array(0x62CF), 0xF95C => array(0x6A02),
2319
+					0xF95D => array(0x8AFE), 0xF95E => array(0x4E39), 0xF95F => array(0x5BE7),
2320
+					0xF960 => array(0x6012), 0xF961 => array(0x7387), 0xF962 => array(0x7570),
2321
+					0xF963 => array(0x5317), 0xF964 => array(0x78FB), 0xF965 => array(0x4FBF),
2322
+					0xF966 => array(0x5FA9), 0xF967 => array(0x4E0D), 0xF968 => array(0x6CCC),
2323
+					0xF969 => array(0x6578), 0xF96A => array(0x7D22), 0xF96B => array(0x53C3),
2324
+					0xF96C => array(0x585E), 0xF96D => array(0x7701), 0xF96E => array(0x8449),
2325
+					0xF96F => array(0x8AAA), 0xF970 => array(0x6BBA), 0xF971 => array(0x8FB0),
2326
+					0xF972 => array(0x6C88), 0xF973 => array(0x62FE), 0xF974 => array(0x82E5),
2327
+					0xF975 => array(0x63A0), 0xF976 => array(0x7565), 0xF977 => array(0x4EAE),
2328
+					0xF978 => array(0x5169), 0xF979 => array(0x51C9), 0xF97A => array(0x6881),
2329
+					0xF97B => array(0x7CE7), 0xF97C => array(0x826F), 0xF97D => array(0x8AD2),
2330
+					0xF97E => array(0x91CF), 0xF97F => array(0x52F5), 0xF980 => array(0x5442),
2331
+					0xF981 => array(0x5973), 0xF982 => array(0x5EEC), 0xF983 => array(0x65C5),
2332
+					0xF984 => array(0x6FFE), 0xF985 => array(0x792A), 0xF986 => array(0x95AD),
2333
+					0xF987 => array(0x9A6A), 0xF988 => array(0x9E97), 0xF989 => array(0x9ECE),
2334
+					0xF98A => array(0x529B), 0xF98B => array(0x66C6), 0xF98C => array(0x6B77),
2335
+					0xF98D => array(0x8F62), 0xF98E => array(0x5E74), 0xF98F => array(0x6190),
2336
+					0xF990 => array(0x6200), 0xF991 => array(0x649A), 0xF992 => array(0x6F23),
2337
+					0xF993 => array(0x7149), 0xF994 => array(0x7489), 0xF995 => array(0x79CA),
2338
+					0xF996 => array(0x7DF4), 0xF997 => array(0x806F), 0xF998 => array(0x8F26),
2339
+					0xF999 => array(0x84EE), 0xF99A => array(0x9023), 0xF99B => array(0x934A),
2340
+					0xF99C => array(0x5217), 0xF99D => array(0x52A3), 0xF99E => array(0x54BD),
2341
+					0xF99F => array(0x70C8), 0xF9A0 => array(0x88C2), 0xF9A1 => array(0x8AAA),
2342
+					0xF9A2 => array(0x5EC9), 0xF9A3 => array(0x5FF5), 0xF9A4 => array(0x637B),
2343
+					0xF9A5 => array(0x6BAE), 0xF9A6 => array(0x7C3E), 0xF9A7 => array(0x7375),
2344
+					0xF9A8 => array(0x4EE4), 0xF9A9 => array(0x56F9), 0xF9AA => array(0x5BE7),
2345
+					0xF9AB => array(0x5DBA), 0xF9AC => array(0x601C), 0xF9AD => array(0x73B2),
2346
+					0xF9AE => array(0x7469), 0xF9AF => array(0x7F9A), 0xF9B0 => array(0x8046),
2347
+					0xF9B1 => array(0x9234), 0xF9B2 => array(0x96F6), 0xF9B3 => array(0x9748),
2348
+					0xF9B4 => array(0x9818), 0xF9B5 => array(0x4F8B), 0xF9B6 => array(0x79AE),
2349
+					0xF9B7 => array(0x91B4), 0xF9B8 => array(0x96B8), 0xF9B9 => array(0x60E1),
2350
+					0xF9BA => array(0x4E86), 0xF9BB => array(0x50DA), 0xF9BC => array(0x5BEE),
2351
+					0xF9BD => array(0x5C3F), 0xF9BE => array(0x6599), 0xF9BF => array(0x6A02),
2352
+					0xF9C0 => array(0x71CE), 0xF9C1 => array(0x7642), 0xF9C2 => array(0x84FC),
2353
+					0xF9C3 => array(0x907C), 0xF9C4 => array(0x9F8D), 0xF9C5 => array(0x6688),
2354
+					0xF9C6 => array(0x962E), 0xF9C7 => array(0x5289), 0xF9C8 => array(0x677B),
2355
+					0xF9C9 => array(0x67F3), 0xF9CA => array(0x6D41), 0xF9CB => array(0x6E9C),
2356
+					0xF9CC => array(0x7409), 0xF9CD => array(0x7559), 0xF9CE => array(0x786B),
2357
+					0xF9CF => array(0x7D10), 0xF9D0 => array(0x985E), 0xF9D1 => array(0x516D),
2358
+					0xF9D2 => array(0x622E), 0xF9D3 => array(0x9678), 0xF9D4 => array(0x502B),
2359
+					0xF9D5 => array(0x5D19), 0xF9D6 => array(0x6DEA), 0xF9D7 => array(0x8F2A),
2360
+					0xF9D8 => array(0x5F8B), 0xF9D9 => array(0x6144), 0xF9DA => array(0x6817),
2361
+					0xF9DB => array(0x7387), 0xF9DC => array(0x9686), 0xF9DD => array(0x5229),
2362
+					0xF9DE => array(0x540F), 0xF9DF => array(0x5C65), 0xF9E0 => array(0x6613),
2363
+					0xF9E1 => array(0x674E), 0xF9E2 => array(0x68A8), 0xF9E3 => array(0x6CE5),
2364
+					0xF9E4 => array(0x7406), 0xF9E5 => array(0x75E2), 0xF9E6 => array(0x7F79),
2365
+					0xF9E7 => array(0x88CF), 0xF9E8 => array(0x88E1), 0xF9E9 => array(0x91CC),
2366
+					0xF9EA => array(0x96E2), 0xF9EB => array(0x533F), 0xF9EC => array(0x6EBA),
2367
+					0xF9ED => array(0x541D), 0xF9EE => array(0x71D0), 0xF9EF => array(0x7498),
2368
+					0xF9F0 => array(0x85FA), 0xF9F1 => array(0x96A3), 0xF9F2 => array(0x9C57),
2369
+					0xF9F3 => array(0x9E9F), 0xF9F4 => array(0x6797), 0xF9F5 => array(0x6DCB),
2370
+					0xF9F6 => array(0x81E8), 0xF9F7 => array(0x7ACB), 0xF9F8 => array(0x7B20),
2371
+					0xF9F9 => array(0x7C92), 0xF9FA => array(0x72C0), 0xF9FB => array(0x7099),
2372
+					0xF9FC => array(0x8B58), 0xF9FD => array(0x4EC0), 0xF9FE => array(0x8336),
2373
+					0xF9FF => array(0x523A), 0xFA00 => array(0x5207), 0xFA01 => array(0x5EA6),
2374
+					0xFA02 => array(0x62D3), 0xFA03 => array(0x7CD6), 0xFA04 => array(0x5B85),
2375
+					0xFA05 => array(0x6D1E), 0xFA06 => array(0x66B4), 0xFA07 => array(0x8F3B),
2376
+					0xFA08 => array(0x884C), 0xFA09 => array(0x964D), 0xFA0A => array(0x898B),
2377
+					0xFA0B => array(0x5ED3), 0xFA0C => array(0x5140), 0xFA0D => array(0x55C0),
2378
+					0xFA10 => array(0x585A), 0xFA12 => array(0x6674), 0xFA15 => array(0x51DE),
2379
+					0xFA16 => array(0x732A), 0xFA17 => array(0x76CA), 0xFA18 => array(0x793C),
2380
+					0xFA19 => array(0x795E), 0xFA1A => array(0x7965), 0xFA1B => array(0x798F),
2381
+					0xFA1C => array(0x9756), 0xFA1D => array(0x7CBE), 0xFA1E => array(0x7FBD),
2382
+					0xFA20 => array(0x8612), 0xFA22 => array(0x8AF8), 0xFA25 => array(0x9038),
2383
+					0xFA26 => array(0x90FD), 0xFA2A => array(0x98EF), 0xFA2B => array(0x98FC),
2384
+					0xFA2C => array(0x9928), 0xFA2D => array(0x9DB4), 0xFA2E => array(0x90DE),
2385
+					0xFA2F => array(0x96B7), 0xFA30 => array(0x4FAE), 0xFA31 => array(0x50E7),
2386
+					0xFA32 => array(0x514D), 0xFA33 => array(0x52C9), 0xFA34 => array(0x52E4),
2387
+					0xFA35 => array(0x5351), 0xFA36 => array(0x559D), 0xFA37 => array(0x5606),
2388
+					0xFA38 => array(0x5668), 0xFA39 => array(0x5840), 0xFA3A => array(0x58A8),
2389
+					0xFA3B => array(0x5C64), 0xFA3C => array(0x5C6E), 0xFA3D => array(0x6094),
2390
+					0xFA3E => array(0x6168), 0xFA3F => array(0x618E), 0xFA40 => array(0x61F2),
2391
+					0xFA41 => array(0x654F), 0xFA42 => array(0x65E2), 0xFA43 => array(0x6691),
2392
+					0xFA44 => array(0x6885), 0xFA45 => array(0x6D77), 0xFA46 => array(0x6E1A),
2393
+					0xFA47 => array(0x6F22), 0xFA48 => array(0x716E), 0xFA49 => array(0x722B),
2394
+					0xFA4A => array(0x7422), 0xFA4B => array(0x7891), 0xFA4C => array(0x793E),
2395
+					0xFA4D => array(0x7949), 0xFA4E => array(0x7948), 0xFA4F => array(0x7950),
2396
+					0xFA50 => array(0x7956), 0xFA51 => array(0x795D), 0xFA52 => array(0x798D),
2397
+					0xFA53 => array(0x798E), 0xFA54 => array(0x7A40), 0xFA55 => array(0x7A81),
2398
+					0xFA56 => array(0x7BC0), 0xFA57 => array(0x7DF4), 0xFA58 => array(0x7E09),
2399
+					0xFA59 => array(0x7E41), 0xFA5A => array(0x7F72), 0xFA5B => array(0x8005),
2400
+					0xFA5C => array(0x81ED), 0xFA5D => array(0x8279), 0xFA5E => array(0x8279),
2401
+					0xFA5F => array(0x8457), 0xFA60 => array(0x8910), 0xFA61 => array(0x8996),
2402
+					0xFA62 => array(0x8B01), 0xFA63 => array(0x8B39), 0xFA64 => array(0x8CD3),
2403
+					0xFA65 => array(0x8D08), 0xFA66 => array(0x8FB6), 0xFA67 => array(0x9038),
2404
+					0xFA68 => array(0x96E3), 0xFA69 => array(0x97FF), 0xFA6A => array(0x983B),
2405
+					0xFA6B => array(0x6075), 0xFA6C => array(0x242EE), 0xFA6D => array(0x8218),
2406
+					0xFA70 => array(0x4E26), 0xFA71 => array(0x51B5), 0xFA72 => array(0x5168),
2407
+					0xFA73 => array(0x4F80), 0xFA74 => array(0x5145), 0xFA75 => array(0x5180),
2408
+					0xFA76 => array(0x52C7), 0xFA77 => array(0x52FA), 0xFA78 => array(0x559D),
2409
+					0xFA79 => array(0x5555), 0xFA7A => array(0x5599), 0xFA7B => array(0x55E2),
2410
+					0xFA7C => array(0x585A), 0xFA7D => array(0x58B3), 0xFA7E => array(0x5944),
2411
+					0xFA7F => array(0x5954), 0xFA80 => array(0x5A62), 0xFA81 => array(0x5B28),
2412
+					0xFA82 => array(0x5ED2), 0xFA83 => array(0x5ED9), 0xFA84 => array(0x5F69),
2413
+					0xFA85 => array(0x5FAD), 0xFA86 => array(0x60D8), 0xFA87 => array(0x614E),
2414
+					0xFA88 => array(0x6108), 0xFA89 => array(0x618E), 0xFA8A => array(0x6160),
2415
+					0xFA8B => array(0x61F2), 0xFA8C => array(0x6234), 0xFA8D => array(0x63C4),
2416
+					0xFA8E => array(0x641C), 0xFA8F => array(0x6452), 0xFA90 => array(0x6556),
2417
+					0xFA91 => array(0x6674), 0xFA92 => array(0x6717), 0xFA93 => array(0x671B),
2418
+					0xFA94 => array(0x6756), 0xFA95 => array(0x6B79), 0xFA96 => array(0x6BBA),
2419
+					0xFA97 => array(0x6D41), 0xFA98 => array(0x6EDB), 0xFA99 => array(0x6ECB),
2420
+					0xFA9A => array(0x6F22), 0xFA9B => array(0x701E), 0xFA9C => array(0x716E),
2421
+					0xFA9D => array(0x77A7), 0xFA9E => array(0x7235), 0xFA9F => array(0x72AF),
2422
+					0xFAA0 => array(0x732A), 0xFAA1 => array(0x7471), 0xFAA2 => array(0x7506),
2423
+					0xFAA3 => array(0x753B), 0xFAA4 => array(0x761D), 0xFAA5 => array(0x761F),
2424
+					0xFAA6 => array(0x76CA), 0xFAA7 => array(0x76DB), 0xFAA8 => array(0x76F4),
2425
+					0xFAA9 => array(0x774A), 0xFAAA => array(0x7740), 0xFAAB => array(0x78CC),
2426
+					0xFAAC => array(0x7AB1), 0xFAAD => array(0x7BC0), 0xFAAE => array(0x7C7B),
2427
+					0xFAAF => array(0x7D5B), 0xFAB0 => array(0x7DF4), 0xFAB1 => array(0x7F3E),
2428
+					0xFAB2 => array(0x8005), 0xFAB3 => array(0x8352), 0xFAB4 => array(0x83EF),
2429
+					0xFAB5 => array(0x8779), 0xFAB6 => array(0x8941), 0xFAB7 => array(0x8986),
2430
+					0xFAB8 => array(0x8996), 0xFAB9 => array(0x8ABF), 0xFABA => array(0x8AF8),
2431
+					0xFABB => array(0x8ACB), 0xFABC => array(0x8B01), 0xFABD => array(0x8AFE),
2432
+					0xFABE => array(0x8AED), 0xFABF => array(0x8B39), 0xFAC0 => array(0x8B8A),
2433
+					0xFAC1 => array(0x8D08), 0xFAC2 => array(0x8F38), 0xFAC3 => array(0x9072),
2434
+					0xFAC4 => array(0x9199), 0xFAC5 => array(0x9276), 0xFAC6 => array(0x967C),
2435
+					0xFAC7 => array(0x96E3), 0xFAC8 => array(0x9756), 0xFAC9 => array(0x97DB),
2436
+					0xFACA => array(0x97FF), 0xFACB => array(0x980B), 0xFACC => array(0x983B),
2437
+					0xFACD => array(0x9B12), 0xFACE => array(0x9F9C), 0xFACF => array(0x2284A),
2438
+					0xFAD0 => array(0x22844), 0xFAD1 => array(0x233D5), 0xFAD2 => array(0x3B9D),
2439
+					0xFAD3 => array(0x4018), 0xFAD4 => array(0x4039), 0xFAD5 => array(0x25249),
2440
+					0xFAD6 => array(0x25CD0), 0xFAD7 => array(0x27ED3), 0xFAD8 => array(0x9F43),
2441
+					0xFAD9 => array(0x9F8E), 0xFB00 => array(0x66, 0x66), 0xFB01 => array(0x66, 0x69),
2442
+					0xFB02 => array(0x66, 0x6C), 0xFB03 => array(0x66, 0x66, 0x69), 0xFB04 => array(0x66, 0x66, 0x6C),
2443
+					0xFB05 => array(0x73, 0x74), 0xFB06 => array(0x73, 0x74), 0xFB13 => array(0x574, 0x576),
2444
+					0xFB14 => array(0x574, 0x565), 0xFB15 => array(0x574, 0x56B), 0xFB16 => array(0x57E, 0x576),
2445
+					0xFB17 => array(0x574, 0x56D), 0xFB1D => array(0x5D9, 0x5B4), 0xFB1F => array(0x5F2, 0x5B7),
2446
+					0xFB20 => array(0x5E2), 0xFB21 => array(0x5D0), 0xFB22 => array(0x5D3),
2447
+					0xFB23 => array(0x5D4), 0xFB24 => array(0x5DB), 0xFB25 => array(0x5DC),
2448
+					0xFB26 => array(0x5DD), 0xFB27 => array(0x5E8), 0xFB28 => array(0x5EA),
2449
+					0xFB2A => array(0x5E9, 0x5C1), 0xFB2B => array(0x5E9, 0x5C2), 0xFB2C => array(0x5E9, 0x5BC, 0x5C1),
2450
+					0xFB2D => array(0x5E9, 0x5BC, 0x5C2), 0xFB2E => array(0x5D0, 0x5B7), 0xFB2F => array(0x5D0, 0x5B8),
2451
+					0xFB30 => array(0x5D0, 0x5BC), 0xFB31 => array(0x5D1, 0x5BC), 0xFB32 => array(0x5D2, 0x5BC),
2452
+					0xFB33 => array(0x5D3, 0x5BC), 0xFB34 => array(0x5D4, 0x5BC), 0xFB35 => array(0x5D5, 0x5BC),
2453
+					0xFB36 => array(0x5D6, 0x5BC), 0xFB38 => array(0x5D8, 0x5BC), 0xFB39 => array(0x5D9, 0x5BC),
2454
+					0xFB3A => array(0x5DA, 0x5BC), 0xFB3B => array(0x5DB, 0x5BC), 0xFB3C => array(0x5DC, 0x5BC),
2455
+					0xFB3E => array(0x5DE, 0x5BC), 0xFB40 => array(0x5E0, 0x5BC), 0xFB41 => array(0x5E1, 0x5BC),
2456
+					0xFB43 => array(0x5E3, 0x5BC), 0xFB44 => array(0x5E4, 0x5BC), 0xFB46 => array(0x5E6, 0x5BC),
2457
+					0xFB47 => array(0x5E7, 0x5BC), 0xFB48 => array(0x5E8, 0x5BC), 0xFB49 => array(0x5E9, 0x5BC),
2458
+					0xFB4A => array(0x5EA, 0x5BC), 0xFB4B => array(0x5D5, 0x5B9), 0xFB4C => array(0x5D1, 0x5BF),
2459
+					0xFB4D => array(0x5DB, 0x5BF), 0xFB4E => array(0x5E4, 0x5BF), 0xFB4F => array(0x5D0, 0x5DC),
2460
+					0xFB50 => array(0x671), 0xFB51 => array(0x671), 0xFB52 => array(0x67B),
2461
+					0xFB53 => array(0x67B), 0xFB54 => array(0x67B), 0xFB55 => array(0x67B),
2462
+					0xFB56 => array(0x67E), 0xFB57 => array(0x67E), 0xFB58 => array(0x67E),
2463
+					0xFB59 => array(0x67E), 0xFB5A => array(0x680), 0xFB5B => array(0x680),
2464
+					0xFB5C => array(0x680), 0xFB5D => array(0x680), 0xFB5E => array(0x67A),
2465
+					0xFB5F => array(0x67A), 0xFB60 => array(0x67A), 0xFB61 => array(0x67A),
2466
+					0xFB62 => array(0x67F), 0xFB63 => array(0x67F), 0xFB64 => array(0x67F),
2467
+					0xFB65 => array(0x67F), 0xFB66 => array(0x679), 0xFB67 => array(0x679),
2468
+					0xFB68 => array(0x679), 0xFB69 => array(0x679), 0xFB6A => array(0x6A4),
2469
+					0xFB6B => array(0x6A4), 0xFB6C => array(0x6A4), 0xFB6D => array(0x6A4),
2470
+					0xFB6E => array(0x6A6), 0xFB6F => array(0x6A6), 0xFB70 => array(0x6A6),
2471
+					0xFB71 => array(0x6A6), 0xFB72 => array(0x684), 0xFB73 => array(0x684),
2472
+					0xFB74 => array(0x684), 0xFB75 => array(0x684), 0xFB76 => array(0x683),
2473
+					0xFB77 => array(0x683), 0xFB78 => array(0x683), 0xFB79 => array(0x683),
2474
+					0xFB7A => array(0x686), 0xFB7B => array(0x686), 0xFB7C => array(0x686),
2475
+					0xFB7D => array(0x686), 0xFB7E => array(0x687), 0xFB7F => array(0x687),
2476
+					0xFB80 => array(0x687), 0xFB81 => array(0x687), 0xFB82 => array(0x68D),
2477
+					0xFB83 => array(0x68D), 0xFB84 => array(0x68C), 0xFB85 => array(0x68C),
2478
+					0xFB86 => array(0x68E), 0xFB87 => array(0x68E), 0xFB88 => array(0x688),
2479
+					0xFB89 => array(0x688), 0xFB8A => array(0x698), 0xFB8B => array(0x698),
2480
+					0xFB8C => array(0x691), 0xFB8D => array(0x691), 0xFB8E => array(0x6A9),
2481
+					0xFB8F => array(0x6A9), 0xFB90 => array(0x6A9), 0xFB91 => array(0x6A9),
2482
+					0xFB92 => array(0x6AF), 0xFB93 => array(0x6AF), 0xFB94 => array(0x6AF),
2483
+					0xFB95 => array(0x6AF), 0xFB96 => array(0x6B3), 0xFB97 => array(0x6B3),
2484
+					0xFB98 => array(0x6B3), 0xFB99 => array(0x6B3), 0xFB9A => array(0x6B1),
2485
+					0xFB9B => array(0x6B1), 0xFB9C => array(0x6B1), 0xFB9D => array(0x6B1),
2486
+					0xFB9E => array(0x6BA), 0xFB9F => array(0x6BA), 0xFBA0 => array(0x6BB),
2487
+					0xFBA1 => array(0x6BB), 0xFBA2 => array(0x6BB), 0xFBA3 => array(0x6BB),
2488
+					0xFBA4 => array(0x6C0), 0xFBA5 => array(0x6C0), 0xFBA6 => array(0x6C1),
2489
+					0xFBA7 => array(0x6C1), 0xFBA8 => array(0x6C1), 0xFBA9 => array(0x6C1),
2490
+					0xFBAA => array(0x6BE), 0xFBAB => array(0x6BE), 0xFBAC => array(0x6BE),
2491
+					0xFBAD => array(0x6BE), 0xFBAE => array(0x6D2), 0xFBAF => array(0x6D2),
2492
+					0xFBB0 => array(0x6D3), 0xFBB1 => array(0x6D3), 0xFBD3 => array(0x6AD),
2493
+					0xFBD4 => array(0x6AD), 0xFBD5 => array(0x6AD), 0xFBD6 => array(0x6AD),
2494
+					0xFBD7 => array(0x6C7), 0xFBD8 => array(0x6C7), 0xFBD9 => array(0x6C6),
2495
+					0xFBDA => array(0x6C6), 0xFBDB => array(0x6C8), 0xFBDC => array(0x6C8),
2496
+					0xFBDD => array(0x6C7, 0x674), 0xFBDE => array(0x6CB), 0xFBDF => array(0x6CB),
2497
+					0xFBE0 => array(0x6C5), 0xFBE1 => array(0x6C5), 0xFBE2 => array(0x6C9),
2498
+					0xFBE3 => array(0x6C9), 0xFBE4 => array(0x6D0), 0xFBE5 => array(0x6D0),
2499
+					0xFBE6 => array(0x6D0), 0xFBE7 => array(0x6D0), 0xFBE8 => array(0x649),
2500
+					0xFBE9 => array(0x649), 0xFBEA => array(0x626, 0x627), 0xFBEB => array(0x626, 0x627),
2501
+					0xFBEC => array(0x626, 0x6D5), 0xFBED => array(0x626, 0x6D5), 0xFBEE => array(0x626, 0x648),
2502
+					0xFBEF => array(0x626, 0x648), 0xFBF0 => array(0x626, 0x6C7), 0xFBF1 => array(0x626, 0x6C7),
2503
+					0xFBF2 => array(0x626, 0x6C6), 0xFBF3 => array(0x626, 0x6C6), 0xFBF4 => array(0x626, 0x6C8),
2504
+					0xFBF5 => array(0x626, 0x6C8), 0xFBF6 => array(0x626, 0x6D0), 0xFBF7 => array(0x626, 0x6D0),
2505
+					0xFBF8 => array(0x626, 0x6D0), 0xFBF9 => array(0x626, 0x649), 0xFBFA => array(0x626, 0x649),
2506
+					0xFBFB => array(0x626, 0x649), 0xFBFC => array(0x6CC), 0xFBFD => array(0x6CC),
2507
+					0xFBFE => array(0x6CC), 0xFBFF => array(0x6CC), 0xFC00 => array(0x626, 0x62C),
2508
+					0xFC01 => array(0x626, 0x62D), 0xFC02 => array(0x626, 0x645), 0xFC03 => array(0x626, 0x649),
2509
+					0xFC04 => array(0x626, 0x64A), 0xFC05 => array(0x628, 0x62C), 0xFC06 => array(0x628, 0x62D),
2510
+					0xFC07 => array(0x628, 0x62E), 0xFC08 => array(0x628, 0x645), 0xFC09 => array(0x628, 0x649),
2511
+					0xFC0A => array(0x628, 0x64A), 0xFC0B => array(0x62A, 0x62C), 0xFC0C => array(0x62A, 0x62D),
2512
+					0xFC0D => array(0x62A, 0x62E), 0xFC0E => array(0x62A, 0x645), 0xFC0F => array(0x62A, 0x649),
2513
+					0xFC10 => array(0x62A, 0x64A), 0xFC11 => array(0x62B, 0x62C), 0xFC12 => array(0x62B, 0x645),
2514
+					0xFC13 => array(0x62B, 0x649), 0xFC14 => array(0x62B, 0x64A), 0xFC15 => array(0x62C, 0x62D),
2515
+					0xFC16 => array(0x62C, 0x645), 0xFC17 => array(0x62D, 0x62C), 0xFC18 => array(0x62D, 0x645),
2516
+					0xFC19 => array(0x62E, 0x62C), 0xFC1A => array(0x62E, 0x62D), 0xFC1B => array(0x62E, 0x645),
2517
+					0xFC1C => array(0x633, 0x62C), 0xFC1D => array(0x633, 0x62D), 0xFC1E => array(0x633, 0x62E),
2518
+					0xFC1F => array(0x633, 0x645), 0xFC20 => array(0x635, 0x62D), 0xFC21 => array(0x635, 0x645),
2519
+					0xFC22 => array(0x636, 0x62C), 0xFC23 => array(0x636, 0x62D), 0xFC24 => array(0x636, 0x62E),
2520
+					0xFC25 => array(0x636, 0x645), 0xFC26 => array(0x637, 0x62D), 0xFC27 => array(0x637, 0x645),
2521
+					0xFC28 => array(0x638, 0x645), 0xFC29 => array(0x639, 0x62C), 0xFC2A => array(0x639, 0x645),
2522
+					0xFC2B => array(0x63A, 0x62C), 0xFC2C => array(0x63A, 0x645), 0xFC2D => array(0x641, 0x62C),
2523
+					0xFC2E => array(0x641, 0x62D), 0xFC2F => array(0x641, 0x62E), 0xFC30 => array(0x641, 0x645),
2524
+					0xFC31 => array(0x641, 0x649), 0xFC32 => array(0x641, 0x64A), 0xFC33 => array(0x642, 0x62D),
2525
+					0xFC34 => array(0x642, 0x645), 0xFC35 => array(0x642, 0x649), 0xFC36 => array(0x642, 0x64A),
2526
+					0xFC37 => array(0x643, 0x627), 0xFC38 => array(0x643, 0x62C), 0xFC39 => array(0x643, 0x62D),
2527
+					0xFC3A => array(0x643, 0x62E), 0xFC3B => array(0x643, 0x644), 0xFC3C => array(0x643, 0x645),
2528
+					0xFC3D => array(0x643, 0x649), 0xFC3E => array(0x643, 0x64A), 0xFC3F => array(0x644, 0x62C),
2529
+					0xFC40 => array(0x644, 0x62D), 0xFC41 => array(0x644, 0x62E), 0xFC42 => array(0x644, 0x645),
2530
+					0xFC43 => array(0x644, 0x649), 0xFC44 => array(0x644, 0x64A), 0xFC45 => array(0x645, 0x62C),
2531
+					0xFC46 => array(0x645, 0x62D), 0xFC47 => array(0x645, 0x62E), 0xFC48 => array(0x645, 0x645),
2532
+					0xFC49 => array(0x645, 0x649), 0xFC4A => array(0x645, 0x64A), 0xFC4B => array(0x646, 0x62C),
2533
+					0xFC4C => array(0x646, 0x62D), 0xFC4D => array(0x646, 0x62E), 0xFC4E => array(0x646, 0x645),
2534
+					0xFC4F => array(0x646, 0x649), 0xFC50 => array(0x646, 0x64A), 0xFC51 => array(0x647, 0x62C),
2535
+					0xFC52 => array(0x647, 0x645), 0xFC53 => array(0x647, 0x649), 0xFC54 => array(0x647, 0x64A),
2536
+					0xFC55 => array(0x64A, 0x62C), 0xFC56 => array(0x64A, 0x62D), 0xFC57 => array(0x64A, 0x62E),
2537
+					0xFC58 => array(0x64A, 0x645), 0xFC59 => array(0x64A, 0x649), 0xFC5A => array(0x64A, 0x64A),
2538
+					0xFC5B => array(0x630, 0x670), 0xFC5C => array(0x631, 0x670), 0xFC5D => array(0x649, 0x670),
2539
+					0xFC64 => array(0x626, 0x631), 0xFC65 => array(0x626, 0x632), 0xFC66 => array(0x626, 0x645),
2540
+					0xFC67 => array(0x626, 0x646), 0xFC68 => array(0x626, 0x649), 0xFC69 => array(0x626, 0x64A),
2541
+					0xFC6A => array(0x628, 0x631), 0xFC6B => array(0x628, 0x632), 0xFC6C => array(0x628, 0x645),
2542
+					0xFC6D => array(0x628, 0x646), 0xFC6E => array(0x628, 0x649), 0xFC6F => array(0x628, 0x64A),
2543
+					0xFC70 => array(0x62A, 0x631), 0xFC71 => array(0x62A, 0x632), 0xFC72 => array(0x62A, 0x645),
2544
+					0xFC73 => array(0x62A, 0x646), 0xFC74 => array(0x62A, 0x649), 0xFC75 => array(0x62A, 0x64A),
2545
+					0xFC76 => array(0x62B, 0x631), 0xFC77 => array(0x62B, 0x632), 0xFC78 => array(0x62B, 0x645),
2546
+					0xFC79 => array(0x62B, 0x646), 0xFC7A => array(0x62B, 0x649), 0xFC7B => array(0x62B, 0x64A),
2547
+					0xFC7C => array(0x641, 0x649), 0xFC7D => array(0x641, 0x64A), 0xFC7E => array(0x642, 0x649),
2548
+					0xFC7F => array(0x642, 0x64A), 0xFC80 => array(0x643, 0x627), 0xFC81 => array(0x643, 0x644),
2549
+					0xFC82 => array(0x643, 0x645), 0xFC83 => array(0x643, 0x649), 0xFC84 => array(0x643, 0x64A),
2550
+					0xFC85 => array(0x644, 0x645), 0xFC86 => array(0x644, 0x649), 0xFC87 => array(0x644, 0x64A),
2551
+					0xFC88 => array(0x645, 0x627), 0xFC89 => array(0x645, 0x645), 0xFC8A => array(0x646, 0x631),
2552
+					0xFC8B => array(0x646, 0x632), 0xFC8C => array(0x646, 0x645), 0xFC8D => array(0x646, 0x646),
2553
+					0xFC8E => array(0x646, 0x649), 0xFC8F => array(0x646, 0x64A), 0xFC90 => array(0x649, 0x670),
2554
+					0xFC91 => array(0x64A, 0x631), 0xFC92 => array(0x64A, 0x632), 0xFC93 => array(0x64A, 0x645),
2555
+					0xFC94 => array(0x64A, 0x646), 0xFC95 => array(0x64A, 0x649), 0xFC96 => array(0x64A, 0x64A),
2556
+					0xFC97 => array(0x626, 0x62C), 0xFC98 => array(0x626, 0x62D), 0xFC99 => array(0x626, 0x62E),
2557
+					0xFC9A => array(0x626, 0x645), 0xFC9B => array(0x626, 0x647), 0xFC9C => array(0x628, 0x62C),
2558
+					0xFC9D => array(0x628, 0x62D), 0xFC9E => array(0x628, 0x62E), 0xFC9F => array(0x628, 0x645),
2559
+					0xFCA0 => array(0x628, 0x647), 0xFCA1 => array(0x62A, 0x62C), 0xFCA2 => array(0x62A, 0x62D),
2560
+					0xFCA3 => array(0x62A, 0x62E), 0xFCA4 => array(0x62A, 0x645), 0xFCA5 => array(0x62A, 0x647),
2561
+					0xFCA6 => array(0x62B, 0x645), 0xFCA7 => array(0x62C, 0x62D), 0xFCA8 => array(0x62C, 0x645),
2562
+					0xFCA9 => array(0x62D, 0x62C), 0xFCAA => array(0x62D, 0x645), 0xFCAB => array(0x62E, 0x62C),
2563
+					0xFCAC => array(0x62E, 0x645), 0xFCAD => array(0x633, 0x62C), 0xFCAE => array(0x633, 0x62D),
2564
+					0xFCAF => array(0x633, 0x62E), 0xFCB0 => array(0x633, 0x645), 0xFCB1 => array(0x635, 0x62D),
2565
+					0xFCB2 => array(0x635, 0x62E), 0xFCB3 => array(0x635, 0x645), 0xFCB4 => array(0x636, 0x62C),
2566
+					0xFCB5 => array(0x636, 0x62D), 0xFCB6 => array(0x636, 0x62E), 0xFCB7 => array(0x636, 0x645),
2567
+					0xFCB8 => array(0x637, 0x62D), 0xFCB9 => array(0x638, 0x645), 0xFCBA => array(0x639, 0x62C),
2568
+					0xFCBB => array(0x639, 0x645), 0xFCBC => array(0x63A, 0x62C), 0xFCBD => array(0x63A, 0x645),
2569
+					0xFCBE => array(0x641, 0x62C), 0xFCBF => array(0x641, 0x62D), 0xFCC0 => array(0x641, 0x62E),
2570
+					0xFCC1 => array(0x641, 0x645), 0xFCC2 => array(0x642, 0x62D), 0xFCC3 => array(0x642, 0x645),
2571
+					0xFCC4 => array(0x643, 0x62C), 0xFCC5 => array(0x643, 0x62D), 0xFCC6 => array(0x643, 0x62E),
2572
+					0xFCC7 => array(0x643, 0x644), 0xFCC8 => array(0x643, 0x645), 0xFCC9 => array(0x644, 0x62C),
2573
+					0xFCCA => array(0x644, 0x62D), 0xFCCB => array(0x644, 0x62E), 0xFCCC => array(0x644, 0x645),
2574
+					0xFCCD => array(0x644, 0x647), 0xFCCE => array(0x645, 0x62C), 0xFCCF => array(0x645, 0x62D),
2575
+					0xFCD0 => array(0x645, 0x62E), 0xFCD1 => array(0x645, 0x645), 0xFCD2 => array(0x646, 0x62C),
2576
+					0xFCD3 => array(0x646, 0x62D), 0xFCD4 => array(0x646, 0x62E), 0xFCD5 => array(0x646, 0x645),
2577
+					0xFCD6 => array(0x646, 0x647), 0xFCD7 => array(0x647, 0x62C), 0xFCD8 => array(0x647, 0x645),
2578
+					0xFCD9 => array(0x647, 0x670), 0xFCDA => array(0x64A, 0x62C), 0xFCDB => array(0x64A, 0x62D),
2579
+					0xFCDC => array(0x64A, 0x62E), 0xFCDD => array(0x64A, 0x645), 0xFCDE => array(0x64A, 0x647),
2580
+					0xFCDF => array(0x626, 0x645), 0xFCE0 => array(0x626, 0x647), 0xFCE1 => array(0x628, 0x645),
2581
+					0xFCE2 => array(0x628, 0x647), 0xFCE3 => array(0x62A, 0x645), 0xFCE4 => array(0x62A, 0x647),
2582
+					0xFCE5 => array(0x62B, 0x645), 0xFCE6 => array(0x62B, 0x647), 0xFCE7 => array(0x633, 0x645),
2583
+					0xFCE8 => array(0x633, 0x647), 0xFCE9 => array(0x634, 0x645), 0xFCEA => array(0x634, 0x647),
2584
+					0xFCEB => array(0x643, 0x644), 0xFCEC => array(0x643, 0x645), 0xFCED => array(0x644, 0x645),
2585
+					0xFCEE => array(0x646, 0x645), 0xFCEF => array(0x646, 0x647), 0xFCF0 => array(0x64A, 0x645),
2586
+					0xFCF1 => array(0x64A, 0x647), 0xFCF2 => array(0x640, 0x64E, 0x651), 0xFCF3 => array(0x640, 0x64F, 0x651),
2587
+					0xFCF4 => array(0x640, 0x650, 0x651), 0xFCF5 => array(0x637, 0x649), 0xFCF6 => array(0x637, 0x64A),
2588
+					0xFCF7 => array(0x639, 0x649), 0xFCF8 => array(0x639, 0x64A), 0xFCF9 => array(0x63A, 0x649),
2589
+					0xFCFA => array(0x63A, 0x64A), 0xFCFB => array(0x633, 0x649), 0xFCFC => array(0x633, 0x64A),
2590
+					0xFCFD => array(0x634, 0x649), 0xFCFE => array(0x634, 0x64A), 0xFCFF => array(0x62D, 0x649),
2591
+					0xFD00 => array(0x62D, 0x64A), 0xFD01 => array(0x62C, 0x649), 0xFD02 => array(0x62C, 0x64A),
2592
+					0xFD03 => array(0x62E, 0x649), 0xFD04 => array(0x62E, 0x64A), 0xFD05 => array(0x635, 0x649),
2593
+					0xFD06 => array(0x635, 0x64A), 0xFD07 => array(0x636, 0x649), 0xFD08 => array(0x636, 0x64A),
2594
+					0xFD09 => array(0x634, 0x62C), 0xFD0A => array(0x634, 0x62D), 0xFD0B => array(0x634, 0x62E),
2595
+					0xFD0C => array(0x634, 0x645), 0xFD0D => array(0x634, 0x631), 0xFD0E => array(0x633, 0x631),
2596
+					0xFD0F => array(0x635, 0x631), 0xFD10 => array(0x636, 0x631), 0xFD11 => array(0x637, 0x649),
2597
+					0xFD12 => array(0x637, 0x64A), 0xFD13 => array(0x639, 0x649), 0xFD14 => array(0x639, 0x64A),
2598
+					0xFD15 => array(0x63A, 0x649), 0xFD16 => array(0x63A, 0x64A), 0xFD17 => array(0x633, 0x649),
2599
+					0xFD18 => array(0x633, 0x64A), 0xFD19 => array(0x634, 0x649), 0xFD1A => array(0x634, 0x64A),
2600
+					0xFD1B => array(0x62D, 0x649), 0xFD1C => array(0x62D, 0x64A), 0xFD1D => array(0x62C, 0x649),
2601
+					0xFD1E => array(0x62C, 0x64A), 0xFD1F => array(0x62E, 0x649), 0xFD20 => array(0x62E, 0x64A),
2602
+					0xFD21 => array(0x635, 0x649), 0xFD22 => array(0x635, 0x64A), 0xFD23 => array(0x636, 0x649),
2603
+					0xFD24 => array(0x636, 0x64A), 0xFD25 => array(0x634, 0x62C), 0xFD26 => array(0x634, 0x62D),
2604
+					0xFD27 => array(0x634, 0x62E), 0xFD28 => array(0x634, 0x645), 0xFD29 => array(0x634, 0x631),
2605
+					0xFD2A => array(0x633, 0x631), 0xFD2B => array(0x635, 0x631), 0xFD2C => array(0x636, 0x631),
2606
+					0xFD2D => array(0x634, 0x62C), 0xFD2E => array(0x634, 0x62D), 0xFD2F => array(0x634, 0x62E),
2607
+					0xFD30 => array(0x634, 0x645), 0xFD31 => array(0x633, 0x647), 0xFD32 => array(0x634, 0x647),
2608
+					0xFD33 => array(0x637, 0x645), 0xFD34 => array(0x633, 0x62C), 0xFD35 => array(0x633, 0x62D),
2609
+					0xFD36 => array(0x633, 0x62E), 0xFD37 => array(0x634, 0x62C), 0xFD38 => array(0x634, 0x62D),
2610
+					0xFD39 => array(0x634, 0x62E), 0xFD3A => array(0x637, 0x645), 0xFD3B => array(0x638, 0x645),
2611
+					0xFD3C => array(0x627, 0x64B), 0xFD3D => array(0x627, 0x64B), 0xFD50 => array(0x62A, 0x62C, 0x645),
2612
+					0xFD51 => array(0x62A, 0x62D, 0x62C), 0xFD52 => array(0x62A, 0x62D, 0x62C), 0xFD53 => array(0x62A, 0x62D, 0x645),
2613
+					0xFD54 => array(0x62A, 0x62E, 0x645), 0xFD55 => array(0x62A, 0x645, 0x62C), 0xFD56 => array(0x62A, 0x645, 0x62D),
2614
+					0xFD57 => array(0x62A, 0x645, 0x62E), 0xFD58 => array(0x62C, 0x645, 0x62D), 0xFD59 => array(0x62C, 0x645, 0x62D),
2615
+					0xFD5A => array(0x62D, 0x645, 0x64A), 0xFD5B => array(0x62D, 0x645, 0x649), 0xFD5C => array(0x633, 0x62D, 0x62C),
2616
+					0xFD5D => array(0x633, 0x62C, 0x62D), 0xFD5E => array(0x633, 0x62C, 0x649), 0xFD5F => array(0x633, 0x645, 0x62D),
2617
+					0xFD60 => array(0x633, 0x645, 0x62D), 0xFD61 => array(0x633, 0x645, 0x62C), 0xFD62 => array(0x633, 0x645, 0x645),
2618
+					0xFD63 => array(0x633, 0x645, 0x645), 0xFD64 => array(0x635, 0x62D, 0x62D), 0xFD65 => array(0x635, 0x62D, 0x62D),
2619
+					0xFD66 => array(0x635, 0x645, 0x645), 0xFD67 => array(0x634, 0x62D, 0x645), 0xFD68 => array(0x634, 0x62D, 0x645),
2620
+					0xFD69 => array(0x634, 0x62C, 0x64A), 0xFD6A => array(0x634, 0x645, 0x62E), 0xFD6B => array(0x634, 0x645, 0x62E),
2621
+					0xFD6C => array(0x634, 0x645, 0x645), 0xFD6D => array(0x634, 0x645, 0x645), 0xFD6E => array(0x636, 0x62D, 0x649),
2622
+					0xFD6F => array(0x636, 0x62E, 0x645), 0xFD70 => array(0x636, 0x62E, 0x645), 0xFD71 => array(0x637, 0x645, 0x62D),
2623
+					0xFD72 => array(0x637, 0x645, 0x62D), 0xFD73 => array(0x637, 0x645, 0x645), 0xFD74 => array(0x637, 0x645, 0x64A),
2624
+					0xFD75 => array(0x639, 0x62C, 0x645), 0xFD76 => array(0x639, 0x645, 0x645), 0xFD77 => array(0x639, 0x645, 0x645),
2625
+					0xFD78 => array(0x639, 0x645, 0x649), 0xFD79 => array(0x63A, 0x645, 0x645), 0xFD7A => array(0x63A, 0x645, 0x64A),
2626
+					0xFD7B => array(0x63A, 0x645, 0x649), 0xFD7C => array(0x641, 0x62E, 0x645), 0xFD7D => array(0x641, 0x62E, 0x645),
2627
+					0xFD7E => array(0x642, 0x645, 0x62D), 0xFD7F => array(0x642, 0x645, 0x645), 0xFD80 => array(0x644, 0x62D, 0x645),
2628
+					0xFD81 => array(0x644, 0x62D, 0x64A), 0xFD82 => array(0x644, 0x62D, 0x649), 0xFD83 => array(0x644, 0x62C, 0x62C),
2629
+					0xFD84 => array(0x644, 0x62C, 0x62C), 0xFD85 => array(0x644, 0x62E, 0x645), 0xFD86 => array(0x644, 0x62E, 0x645),
2630
+					0xFD87 => array(0x644, 0x645, 0x62D), 0xFD88 => array(0x644, 0x645, 0x62D), 0xFD89 => array(0x645, 0x62D, 0x62C),
2631
+					0xFD8A => array(0x645, 0x62D, 0x645), 0xFD8B => array(0x645, 0x62D, 0x64A), 0xFD8C => array(0x645, 0x62C, 0x62D),
2632
+					0xFD8D => array(0x645, 0x62C, 0x645), 0xFD8E => array(0x645, 0x62E, 0x62C), 0xFD8F => array(0x645, 0x62E, 0x645),
2633
+					0xFD92 => array(0x645, 0x62C, 0x62E), 0xFD93 => array(0x647, 0x645, 0x62C), 0xFD94 => array(0x647, 0x645, 0x645),
2634
+					0xFD95 => array(0x646, 0x62D, 0x645), 0xFD96 => array(0x646, 0x62D, 0x649), 0xFD97 => array(0x646, 0x62C, 0x645),
2635
+					0xFD98 => array(0x646, 0x62C, 0x645), 0xFD99 => array(0x646, 0x62C, 0x649), 0xFD9A => array(0x646, 0x645, 0x64A),
2636
+					0xFD9B => array(0x646, 0x645, 0x649), 0xFD9C => array(0x64A, 0x645, 0x645), 0xFD9D => array(0x64A, 0x645, 0x645),
2637
+					0xFD9E => array(0x628, 0x62E, 0x64A), 0xFD9F => array(0x62A, 0x62C, 0x64A), 0xFDA0 => array(0x62A, 0x62C, 0x649),
2638
+					0xFDA1 => array(0x62A, 0x62E, 0x64A), 0xFDA2 => array(0x62A, 0x62E, 0x649), 0xFDA3 => array(0x62A, 0x645, 0x64A),
2639
+					0xFDA4 => array(0x62A, 0x645, 0x649), 0xFDA5 => array(0x62C, 0x645, 0x64A), 0xFDA6 => array(0x62C, 0x62D, 0x649),
2640
+					0xFDA7 => array(0x62C, 0x645, 0x649), 0xFDA8 => array(0x633, 0x62E, 0x649), 0xFDA9 => array(0x635, 0x62D, 0x64A),
2641
+					0xFDAA => array(0x634, 0x62D, 0x64A), 0xFDAB => array(0x636, 0x62D, 0x64A), 0xFDAC => array(0x644, 0x62C, 0x64A),
2642
+					0xFDAD => array(0x644, 0x645, 0x64A), 0xFDAE => array(0x64A, 0x62D, 0x64A), 0xFDAF => array(0x64A, 0x62C, 0x64A),
2643
+					0xFDB0 => array(0x64A, 0x645, 0x64A), 0xFDB1 => array(0x645, 0x645, 0x64A), 0xFDB2 => array(0x642, 0x645, 0x64A),
2644
+					0xFDB3 => array(0x646, 0x62D, 0x64A), 0xFDB4 => array(0x642, 0x645, 0x62D), 0xFDB5 => array(0x644, 0x62D, 0x645),
2645
+					0xFDB6 => array(0x639, 0x645, 0x64A), 0xFDB7 => array(0x643, 0x645, 0x64A), 0xFDB8 => array(0x646, 0x62C, 0x62D),
2646
+					0xFDB9 => array(0x645, 0x62E, 0x64A), 0xFDBA => array(0x644, 0x62C, 0x645), 0xFDBB => array(0x643, 0x645, 0x645),
2647
+					0xFDBC => array(0x644, 0x62C, 0x645), 0xFDBD => array(0x646, 0x62C, 0x62D), 0xFDBE => array(0x62C, 0x62D, 0x64A),
2648
+					0xFDBF => array(0x62D, 0x62C, 0x64A), 0xFDC0 => array(0x645, 0x62C, 0x64A), 0xFDC1 => array(0x641, 0x645, 0x64A),
2649
+					0xFDC2 => array(0x628, 0x62D, 0x64A), 0xFDC3 => array(0x643, 0x645, 0x645), 0xFDC4 => array(0x639, 0x62C, 0x645),
2650
+					0xFDC5 => array(0x635, 0x645, 0x645), 0xFDC6 => array(0x633, 0x62E, 0x64A), 0xFDC7 => array(0x646, 0x62C, 0x64A),
2651
+					0xFDF0 => array(0x635, 0x644, 0x6D2), 0xFDF1 => array(0x642, 0x644, 0x6D2), 0xFDF2 => array(0x627, 0x644, 0x644, 0x647),
2652
+					0xFDF3 => array(0x627, 0x643, 0x628, 0x631), 0xFDF4 => array(0x645, 0x62D, 0x645, 0x62F), 0xFDF5 => array(0x635, 0x644, 0x639, 0x645),
2653
+					0xFDF6 => array(0x631, 0x633, 0x648, 0x644), 0xFDF7 => array(0x639, 0x644, 0x64A, 0x647), 0xFDF8 => array(0x648, 0x633, 0x644, 0x645),
2654
+					0xFDF9 => array(0x635, 0x644, 0x649), 0xFDFC => array(0x631, 0x6CC, 0x627, 0x644), 0xFE11 => array(0x3001),
2655
+					0xFE17 => array(0x3016), 0xFE18 => array(0x3017), 0xFE31 => array(0x2014),
2656
+					0xFE32 => array(0x2013), 0xFE39 => array(0x3014), 0xFE3A => array(0x3015),
2657
+					0xFE3B => array(0x3010), 0xFE3C => array(0x3011), 0xFE3D => array(0x300A),
2658
+					0xFE3E => array(0x300B), 0xFE3F => array(0x3008), 0xFE40 => array(0x3009),
2659
+					0xFE41 => array(0x300C), 0xFE42 => array(0x300D), 0xFE43 => array(0x300E),
2660
+					0xFE44 => array(0x300F), 0xFE51 => array(0x3001), 0xFE58 => array(0x2014),
2661
+					0xFE5D => array(0x3014), 0xFE5E => array(0x3015), 0xFE63 => array(0x2D),
2662
+					0xFE71 => array(0x640, 0x64B), 0xFE77 => array(0x640, 0x64E), 0xFE79 => array(0x640, 0x64F),
2663
+					0xFE7B => array(0x640, 0x650), 0xFE7D => array(0x640, 0x651), 0xFE7F => array(0x640, 0x652),
2664
+					0xFE80 => array(0x621), 0xFE81 => array(0x622), 0xFE82 => array(0x622),
2665
+					0xFE83 => array(0x623), 0xFE84 => array(0x623), 0xFE85 => array(0x624),
2666
+					0xFE86 => array(0x624), 0xFE87 => array(0x625), 0xFE88 => array(0x625),
2667
+					0xFE89 => array(0x626), 0xFE8A => array(0x626), 0xFE8B => array(0x626),
2668
+					0xFE8C => array(0x626), 0xFE8D => array(0x627), 0xFE8E => array(0x627),
2669
+					0xFE8F => array(0x628), 0xFE90 => array(0x628), 0xFE91 => array(0x628),
2670
+					0xFE92 => array(0x628), 0xFE93 => array(0x629), 0xFE94 => array(0x629),
2671
+					0xFE95 => array(0x62A), 0xFE96 => array(0x62A), 0xFE97 => array(0x62A),
2672
+					0xFE98 => array(0x62A), 0xFE99 => array(0x62B), 0xFE9A => array(0x62B),
2673
+					0xFE9B => array(0x62B), 0xFE9C => array(0x62B), 0xFE9D => array(0x62C),
2674
+					0xFE9E => array(0x62C), 0xFE9F => array(0x62C), 0xFEA0 => array(0x62C),
2675
+					0xFEA1 => array(0x62D), 0xFEA2 => array(0x62D), 0xFEA3 => array(0x62D),
2676
+					0xFEA4 => array(0x62D), 0xFEA5 => array(0x62E), 0xFEA6 => array(0x62E),
2677
+					0xFEA7 => array(0x62E), 0xFEA8 => array(0x62E), 0xFEA9 => array(0x62F),
2678
+					0xFEAA => array(0x62F), 0xFEAB => array(0x630), 0xFEAC => array(0x630),
2679
+					0xFEAD => array(0x631), 0xFEAE => array(0x631), 0xFEAF => array(0x632),
2680
+					0xFEB0 => array(0x632), 0xFEB1 => array(0x633), 0xFEB2 => array(0x633),
2681
+					0xFEB3 => array(0x633), 0xFEB4 => array(0x633), 0xFEB5 => array(0x634),
2682
+					0xFEB6 => array(0x634), 0xFEB7 => array(0x634), 0xFEB8 => array(0x634),
2683
+					0xFEB9 => array(0x635), 0xFEBA => array(0x635), 0xFEBB => array(0x635),
2684
+					0xFEBC => array(0x635), 0xFEBD => array(0x636), 0xFEBE => array(0x636),
2685
+					0xFEBF => array(0x636), 0xFEC0 => array(0x636), 0xFEC1 => array(0x637),
2686
+					0xFEC2 => array(0x637), 0xFEC3 => array(0x637), 0xFEC4 => array(0x637),
2687
+					0xFEC5 => array(0x638), 0xFEC6 => array(0x638), 0xFEC7 => array(0x638),
2688
+					0xFEC8 => array(0x638), 0xFEC9 => array(0x639), 0xFECA => array(0x639),
2689
+					0xFECB => array(0x639), 0xFECC => array(0x639), 0xFECD => array(0x63A),
2690
+					0xFECE => array(0x63A), 0xFECF => array(0x63A), 0xFED0 => array(0x63A),
2691
+					0xFED1 => array(0x641), 0xFED2 => array(0x641), 0xFED3 => array(0x641),
2692
+					0xFED4 => array(0x641), 0xFED5 => array(0x642), 0xFED6 => array(0x642),
2693
+					0xFED7 => array(0x642), 0xFED8 => array(0x642), 0xFED9 => array(0x643),
2694
+					0xFEDA => array(0x643), 0xFEDB => array(0x643), 0xFEDC => array(0x643),
2695
+					0xFEDD => array(0x644), 0xFEDE => array(0x644), 0xFEDF => array(0x644),
2696
+					0xFEE0 => array(0x644), 0xFEE1 => array(0x645), 0xFEE2 => array(0x645),
2697
+					0xFEE3 => array(0x645), 0xFEE4 => array(0x645), 0xFEE5 => array(0x646),
2698
+					0xFEE6 => array(0x646), 0xFEE7 => array(0x646), 0xFEE8 => array(0x646),
2699
+					0xFEE9 => array(0x647), 0xFEEA => array(0x647), 0xFEEB => array(0x647),
2700
+					0xFEEC => array(0x647), 0xFEED => array(0x648), 0xFEEE => array(0x648),
2701
+					0xFEEF => array(0x649), 0xFEF0 => array(0x649), 0xFEF1 => array(0x64A),
2702
+					0xFEF2 => array(0x64A), 0xFEF3 => array(0x64A), 0xFEF4 => array(0x64A),
2703
+					0xFEF5 => array(0x644, 0x622), 0xFEF6 => array(0x644, 0x622), 0xFEF7 => array(0x644, 0x623),
2704
+					0xFEF8 => array(0x644, 0x623), 0xFEF9 => array(0x644, 0x625), 0xFEFA => array(0x644, 0x625),
2705
+					0xFEFB => array(0x644, 0x627), 0xFEFC => array(0x644, 0x627), 0xFF0D => array(0x2D),
2706
+					0xFF0E => array(0x2E), 0xFF10 => array(0x30), 0xFF11 => array(0x31),
2707
+					0xFF12 => array(0x32), 0xFF13 => array(0x33), 0xFF14 => array(0x34),
2708
+					0xFF15 => array(0x35), 0xFF16 => array(0x36), 0xFF17 => array(0x37),
2709
+					0xFF18 => array(0x38), 0xFF19 => array(0x39), 0xFF21 => array(0x61),
2710
+					0xFF22 => array(0x62), 0xFF23 => array(0x63), 0xFF24 => array(0x64),
2711
+					0xFF25 => array(0x65), 0xFF26 => array(0x66), 0xFF27 => array(0x67),
2712
+					0xFF28 => array(0x68), 0xFF29 => array(0x69), 0xFF2A => array(0x6A),
2713
+					0xFF2B => array(0x6B), 0xFF2C => array(0x6C), 0xFF2D => array(0x6D),
2714
+					0xFF2E => array(0x6E), 0xFF2F => array(0x6F), 0xFF30 => array(0x70),
2715
+					0xFF31 => array(0x71), 0xFF32 => array(0x72), 0xFF33 => array(0x73),
2716
+					0xFF34 => array(0x74), 0xFF35 => array(0x75), 0xFF36 => array(0x76),
2717
+					0xFF37 => array(0x77), 0xFF38 => array(0x78), 0xFF39 => array(0x79),
2718
+					0xFF3A => array(0x7A), 0xFF41 => array(0x61), 0xFF42 => array(0x62),
2719
+					0xFF43 => array(0x63), 0xFF44 => array(0x64), 0xFF45 => array(0x65),
2720
+					0xFF46 => array(0x66), 0xFF47 => array(0x67), 0xFF48 => array(0x68),
2721
+					0xFF49 => array(0x69), 0xFF4A => array(0x6A), 0xFF4B => array(0x6B),
2722
+					0xFF4C => array(0x6C), 0xFF4D => array(0x6D), 0xFF4E => array(0x6E),
2723
+					0xFF4F => array(0x6F), 0xFF50 => array(0x70), 0xFF51 => array(0x71),
2724
+					0xFF52 => array(0x72), 0xFF53 => array(0x73), 0xFF54 => array(0x74),
2725
+					0xFF55 => array(0x75), 0xFF56 => array(0x76), 0xFF57 => array(0x77),
2726
+					0xFF58 => array(0x78), 0xFF59 => array(0x79), 0xFF5A => array(0x7A),
2727
+					0xFF5F => array(0x2985), 0xFF60 => array(0x2986), 0xFF61 => array(0x2E),
2728
+					0xFF62 => array(0x300C), 0xFF63 => array(0x300D), 0xFF64 => array(0x3001),
2729
+					0xFF65 => array(0x30FB), 0xFF66 => array(0x30F2), 0xFF67 => array(0x30A1),
2730
+					0xFF68 => array(0x30A3), 0xFF69 => array(0x30A5), 0xFF6A => array(0x30A7),
2731
+					0xFF6B => array(0x30A9), 0xFF6C => array(0x30E3), 0xFF6D => array(0x30E5),
2732
+					0xFF6E => array(0x30E7), 0xFF6F => array(0x30C3), 0xFF70 => array(0x30FC),
2733
+					0xFF71 => array(0x30A2), 0xFF72 => array(0x30A4), 0xFF73 => array(0x30A6),
2734
+					0xFF74 => array(0x30A8), 0xFF75 => array(0x30AA), 0xFF76 => array(0x30AB),
2735
+					0xFF77 => array(0x30AD), 0xFF78 => array(0x30AF), 0xFF79 => array(0x30B1),
2736
+					0xFF7A => array(0x30B3), 0xFF7B => array(0x30B5), 0xFF7C => array(0x30B7),
2737
+					0xFF7D => array(0x30B9), 0xFF7E => array(0x30BB), 0xFF7F => array(0x30BD),
2738
+					0xFF80 => array(0x30BF), 0xFF81 => array(0x30C1), 0xFF82 => array(0x30C4),
2739
+					0xFF83 => array(0x30C6), 0xFF84 => array(0x30C8), 0xFF85 => array(0x30CA),
2740
+					0xFF86 => array(0x30CB), 0xFF87 => array(0x30CC), 0xFF88 => array(0x30CD),
2741
+					0xFF89 => array(0x30CE), 0xFF8A => array(0x30CF), 0xFF8B => array(0x30D2),
2742
+					0xFF8C => array(0x30D5), 0xFF8D => array(0x30D8), 0xFF8E => array(0x30DB),
2743
+					0xFF8F => array(0x30DE), 0xFF90 => array(0x30DF), 0xFF91 => array(0x30E0),
2744
+					0xFF92 => array(0x30E1), 0xFF93 => array(0x30E2), 0xFF94 => array(0x30E4),
2745
+					0xFF95 => array(0x30E6), 0xFF96 => array(0x30E8), 0xFF97 => array(0x30E9),
2746
+					0xFF98 => array(0x30EA), 0xFF99 => array(0x30EB), 0xFF9A => array(0x30EC),
2747
+					0xFF9B => array(0x30ED), 0xFF9C => array(0x30EF), 0xFF9D => array(0x30F3),
2748
+					0xFF9E => array(0x3099), 0xFF9F => array(0x309A), 0xFFA1 => array(0x1100),
2749
+					0xFFA2 => array(0x1101), 0xFFA3 => array(0x11AA), 0xFFA4 => array(0x1102),
2750
+					0xFFA5 => array(0x11AC), 0xFFA6 => array(0x11AD), 0xFFA7 => array(0x1103),
2751
+					0xFFA8 => array(0x1104), 0xFFA9 => array(0x1105), 0xFFAA => array(0x11B0),
2752
+					0xFFAB => array(0x11B1), 0xFFAC => array(0x11B2), 0xFFAD => array(0x11B3),
2753
+					0xFFAE => array(0x11B4), 0xFFAF => array(0x11B5), 0xFFB0 => array(0x111A),
2754
+					0xFFB1 => array(0x1106), 0xFFB2 => array(0x1107), 0xFFB3 => array(0x1108),
2755
+					0xFFB4 => array(0x1121), 0xFFB5 => array(0x1109), 0xFFB6 => array(0x110A),
2756
+					0xFFB7 => array(0x110B), 0xFFB8 => array(0x110C), 0xFFB9 => array(0x110D),
2757
+					0xFFBA => array(0x110E), 0xFFBB => array(0x110F), 0xFFBC => array(0x1110),
2758
+					0xFFBD => array(0x1111), 0xFFBE => array(0x1112), 0xFFC2 => array(0x1161),
2759
+					0xFFC3 => array(0x1162), 0xFFC4 => array(0x1163), 0xFFC5 => array(0x1164),
2760
+					0xFFC6 => array(0x1165), 0xFFC7 => array(0x1166), 0xFFCA => array(0x1167),
2761
+					0xFFCB => array(0x1168), 0xFFCC => array(0x1169), 0xFFCD => array(0x116A),
2762
+					0xFFCE => array(0x116B), 0xFFCF => array(0x116C), 0xFFD2 => array(0x116D),
2763
+					0xFFD3 => array(0x116E), 0xFFD4 => array(0x116F), 0xFFD5 => array(0x1170),
2764
+					0xFFD6 => array(0x1171), 0xFFD7 => array(0x1172), 0xFFDA => array(0x1173),
2765
+					0xFFDB => array(0x1174), 0xFFDC => array(0x1175), 0xFFE0 => array(0xA2),
2766
+					0xFFE1 => array(0xA3), 0xFFE2 => array(0xAC), 0xFFE4 => array(0xA6),
2767
+					0xFFE5 => array(0xA5), 0xFFE6 => array(0x20A9), 0xFFE8 => array(0x2502),
2768
+					0xFFE9 => array(0x2190), 0xFFEA => array(0x2191), 0xFFEB => array(0x2192),
2769
+					0xFFEC => array(0x2193), 0xFFED => array(0x25A0), 0xFFEE => array(0x25CB),
2770
+					0x10400 => array(0x10428), 0x10401 => array(0x10429), 0x10402 => array(0x1042A),
2771
+					0x10403 => array(0x1042B), 0x10404 => array(0x1042C), 0x10405 => array(0x1042D),
2772
+					0x10406 => array(0x1042E), 0x10407 => array(0x1042F), 0x10408 => array(0x10430),
2773
+					0x10409 => array(0x10431), 0x1040A => array(0x10432), 0x1040B => array(0x10433),
2774
+					0x1040C => array(0x10434), 0x1040D => array(0x10435), 0x1040E => array(0x10436),
2775
+					0x1040F => array(0x10437), 0x10410 => array(0x10438), 0x10411 => array(0x10439),
2776
+					0x10412 => array(0x1043A), 0x10413 => array(0x1043B), 0x10414 => array(0x1043C),
2777
+					0x10415 => array(0x1043D), 0x10416 => array(0x1043E), 0x10417 => array(0x1043F),
2778
+					0x10418 => array(0x10440), 0x10419 => array(0x10441), 0x1041A => array(0x10442),
2779
+					0x1041B => array(0x10443), 0x1041C => array(0x10444), 0x1041D => array(0x10445),
2780
+					0x1041E => array(0x10446), 0x1041F => array(0x10447), 0x10420 => array(0x10448),
2781
+					0x10421 => array(0x10449), 0x10422 => array(0x1044A), 0x10423 => array(0x1044B),
2782
+					0x10424 => array(0x1044C), 0x10425 => array(0x1044D), 0x10426 => array(0x1044E),
2783
+					0x10427 => array(0x1044F), 0x118A0 => array(0x118C0), 0x118A1 => array(0x118C1),
2784
+					0x118A2 => array(0x118C2), 0x118A3 => array(0x118C3), 0x118A4 => array(0x118C4),
2785
+					0x118A5 => array(0x118C5), 0x118A6 => array(0x118C6), 0x118A7 => array(0x118C7),
2786
+					0x118A8 => array(0x118C8), 0x118A9 => array(0x118C9), 0x118AA => array(0x118CA),
2787
+					0x118AB => array(0x118CB), 0x118AC => array(0x118CC), 0x118AD => array(0x118CD),
2788
+					0x118AE => array(0x118CE), 0x118AF => array(0x118CF), 0x118B0 => array(0x118D0),
2789
+					0x118B1 => array(0x118D1), 0x118B2 => array(0x118D2), 0x118B3 => array(0x118D3),
2790
+					0x118B4 => array(0x118D4), 0x118B5 => array(0x118D5), 0x118B6 => array(0x118D6),
2791
+					0x118B7 => array(0x118D7), 0x118B8 => array(0x118D8), 0x118B9 => array(0x118D9),
2792
+					0x118BA => array(0x118DA), 0x118BB => array(0x118DB), 0x118BC => array(0x118DC),
2793
+					0x118BD => array(0x118DD), 0x118BE => array(0x118DE), 0x118BF => array(0x118DF),
2794
+					0x1D15E => array(0x1D157, 0x1D165), 0x1D15F => array(0x1D158, 0x1D165), 0x1D160 => array(0x1D158, 0x1D165, 0x1D16E),
2795
+					0x1D161 => array(0x1D158, 0x1D165, 0x1D16F), 0x1D162 => array(0x1D158, 0x1D165, 0x1D170), 0x1D163 => array(0x1D158, 0x1D165, 0x1D171),
2796
+					0x1D164 => array(0x1D158, 0x1D165, 0x1D172), 0x1D1BB => array(0x1D1B9, 0x1D165), 0x1D1BC => array(0x1D1BA, 0x1D165),
2797
+					0x1D1BD => array(0x1D1B9, 0x1D165, 0x1D16E), 0x1D1BE => array(0x1D1BA, 0x1D165, 0x1D16E), 0x1D1BF => array(0x1D1B9, 0x1D165, 0x1D16F),
2798
+					0x1D1C0 => array(0x1D1BA, 0x1D165, 0x1D16F), 0x1D400 => array(0x61), 0x1D401 => array(0x62),
2799
+					0x1D402 => array(0x63), 0x1D403 => array(0x64), 0x1D404 => array(0x65),
2800
+					0x1D405 => array(0x66), 0x1D406 => array(0x67), 0x1D407 => array(0x68),
2801
+					0x1D408 => array(0x69), 0x1D409 => array(0x6A), 0x1D40A => array(0x6B),
2802
+					0x1D40B => array(0x6C), 0x1D40C => array(0x6D), 0x1D40D => array(0x6E),
2803
+					0x1D40E => array(0x6F), 0x1D40F => array(0x70), 0x1D410 => array(0x71),
2804
+					0x1D411 => array(0x72), 0x1D412 => array(0x73), 0x1D413 => array(0x74),
2805
+					0x1D414 => array(0x75), 0x1D415 => array(0x76), 0x1D416 => array(0x77),
2806
+					0x1D417 => array(0x78), 0x1D418 => array(0x79), 0x1D419 => array(0x7A),
2807
+					0x1D41A => array(0x61), 0x1D41B => array(0x62), 0x1D41C => array(0x63),
2808
+					0x1D41D => array(0x64), 0x1D41E => array(0x65), 0x1D41F => array(0x66),
2809
+					0x1D420 => array(0x67), 0x1D421 => array(0x68), 0x1D422 => array(0x69),
2810
+					0x1D423 => array(0x6A), 0x1D424 => array(0x6B), 0x1D425 => array(0x6C),
2811
+					0x1D426 => array(0x6D), 0x1D427 => array(0x6E), 0x1D428 => array(0x6F),
2812
+					0x1D429 => array(0x70), 0x1D42A => array(0x71), 0x1D42B => array(0x72),
2813
+					0x1D42C => array(0x73), 0x1D42D => array(0x74), 0x1D42E => array(0x75),
2814
+					0x1D42F => array(0x76), 0x1D430 => array(0x77), 0x1D431 => array(0x78),
2815
+					0x1D432 => array(0x79), 0x1D433 => array(0x7A), 0x1D434 => array(0x61),
2816
+					0x1D435 => array(0x62), 0x1D436 => array(0x63), 0x1D437 => array(0x64),
2817
+					0x1D438 => array(0x65), 0x1D439 => array(0x66), 0x1D43A => array(0x67),
2818
+					0x1D43B => array(0x68), 0x1D43C => array(0x69), 0x1D43D => array(0x6A),
2819
+					0x1D43E => array(0x6B), 0x1D43F => array(0x6C), 0x1D440 => array(0x6D),
2820
+					0x1D441 => array(0x6E), 0x1D442 => array(0x6F), 0x1D443 => array(0x70),
2821
+					0x1D444 => array(0x71), 0x1D445 => array(0x72), 0x1D446 => array(0x73),
2822
+					0x1D447 => array(0x74), 0x1D448 => array(0x75), 0x1D449 => array(0x76),
2823
+					0x1D44A => array(0x77), 0x1D44B => array(0x78), 0x1D44C => array(0x79),
2824
+					0x1D44D => array(0x7A), 0x1D44E => array(0x61), 0x1D44F => array(0x62),
2825
+					0x1D450 => array(0x63), 0x1D451 => array(0x64), 0x1D452 => array(0x65),
2826
+					0x1D453 => array(0x66), 0x1D454 => array(0x67), 0x1D456 => array(0x69),
2827
+					0x1D457 => array(0x6A), 0x1D458 => array(0x6B), 0x1D459 => array(0x6C),
2828
+					0x1D45A => array(0x6D), 0x1D45B => array(0x6E), 0x1D45C => array(0x6F),
2829
+					0x1D45D => array(0x70), 0x1D45E => array(0x71), 0x1D45F => array(0x72),
2830
+					0x1D460 => array(0x73), 0x1D461 => array(0x74), 0x1D462 => array(0x75),
2831
+					0x1D463 => array(0x76), 0x1D464 => array(0x77), 0x1D465 => array(0x78),
2832
+					0x1D466 => array(0x79), 0x1D467 => array(0x7A), 0x1D468 => array(0x61),
2833
+					0x1D469 => array(0x62), 0x1D46A => array(0x63), 0x1D46B => array(0x64),
2834
+					0x1D46C => array(0x65), 0x1D46D => array(0x66), 0x1D46E => array(0x67),
2835
+					0x1D46F => array(0x68), 0x1D470 => array(0x69), 0x1D471 => array(0x6A),
2836
+					0x1D472 => array(0x6B), 0x1D473 => array(0x6C), 0x1D474 => array(0x6D),
2837
+					0x1D475 => array(0x6E), 0x1D476 => array(0x6F), 0x1D477 => array(0x70),
2838
+					0x1D478 => array(0x71), 0x1D479 => array(0x72), 0x1D47A => array(0x73),
2839
+					0x1D47B => array(0x74), 0x1D47C => array(0x75), 0x1D47D => array(0x76),
2840
+					0x1D47E => array(0x77), 0x1D47F => array(0x78), 0x1D480 => array(0x79),
2841
+					0x1D481 => array(0x7A), 0x1D482 => array(0x61), 0x1D483 => array(0x62),
2842
+					0x1D484 => array(0x63), 0x1D485 => array(0x64), 0x1D486 => array(0x65),
2843
+					0x1D487 => array(0x66), 0x1D488 => array(0x67), 0x1D489 => array(0x68),
2844
+					0x1D48A => array(0x69), 0x1D48B => array(0x6A), 0x1D48C => array(0x6B),
2845
+					0x1D48D => array(0x6C), 0x1D48E => array(0x6D), 0x1D48F => array(0x6E),
2846
+					0x1D490 => array(0x6F), 0x1D491 => array(0x70), 0x1D492 => array(0x71),
2847
+					0x1D493 => array(0x72), 0x1D494 => array(0x73), 0x1D495 => array(0x74),
2848
+					0x1D496 => array(0x75), 0x1D497 => array(0x76), 0x1D498 => array(0x77),
2849
+					0x1D499 => array(0x78), 0x1D49A => array(0x79), 0x1D49B => array(0x7A),
2850
+					0x1D49C => array(0x61), 0x1D49E => array(0x63), 0x1D49F => array(0x64),
2851
+					0x1D4A2 => array(0x67), 0x1D4A5 => array(0x6A), 0x1D4A6 => array(0x6B),
2852
+					0x1D4A9 => array(0x6E), 0x1D4AA => array(0x6F), 0x1D4AB => array(0x70),
2853
+					0x1D4AC => array(0x71), 0x1D4AE => array(0x73), 0x1D4AF => array(0x74),
2854
+					0x1D4B0 => array(0x75), 0x1D4B1 => array(0x76), 0x1D4B2 => array(0x77),
2855
+					0x1D4B3 => array(0x78), 0x1D4B4 => array(0x79), 0x1D4B5 => array(0x7A),
2856
+					0x1D4B6 => array(0x61), 0x1D4B7 => array(0x62), 0x1D4B8 => array(0x63),
2857
+					0x1D4B9 => array(0x64), 0x1D4BB => array(0x66), 0x1D4BD => array(0x68),
2858
+					0x1D4BE => array(0x69), 0x1D4BF => array(0x6A), 0x1D4C0 => array(0x6B),
2859
+					0x1D4C1 => array(0x6C), 0x1D4C2 => array(0x6D), 0x1D4C3 => array(0x6E),
2860
+					0x1D4C5 => array(0x70), 0x1D4C6 => array(0x71), 0x1D4C7 => array(0x72),
2861
+					0x1D4C8 => array(0x73), 0x1D4C9 => array(0x74), 0x1D4CA => array(0x75),
2862
+					0x1D4CB => array(0x76), 0x1D4CC => array(0x77), 0x1D4CD => array(0x78),
2863
+					0x1D4CE => array(0x79), 0x1D4CF => array(0x7A), 0x1D4D0 => array(0x61),
2864
+					0x1D4D1 => array(0x62), 0x1D4D2 => array(0x63), 0x1D4D3 => array(0x64),
2865
+					0x1D4D4 => array(0x65), 0x1D4D5 => array(0x66), 0x1D4D6 => array(0x67),
2866
+					0x1D4D7 => array(0x68), 0x1D4D8 => array(0x69), 0x1D4D9 => array(0x6A),
2867
+					0x1D4DA => array(0x6B), 0x1D4DB => array(0x6C), 0x1D4DC => array(0x6D),
2868
+					0x1D4DD => array(0x6E), 0x1D4DE => array(0x6F), 0x1D4DF => array(0x70),
2869
+					0x1D4E0 => array(0x71), 0x1D4E1 => array(0x72), 0x1D4E2 => array(0x73),
2870
+					0x1D4E3 => array(0x74), 0x1D4E4 => array(0x75), 0x1D4E5 => array(0x76),
2871
+					0x1D4E6 => array(0x77), 0x1D4E7 => array(0x78), 0x1D4E8 => array(0x79),
2872
+					0x1D4E9 => array(0x7A), 0x1D4EA => array(0x61), 0x1D4EB => array(0x62),
2873
+					0x1D4EC => array(0x63), 0x1D4ED => array(0x64), 0x1D4EE => array(0x65),
2874
+					0x1D4EF => array(0x66), 0x1D4F0 => array(0x67), 0x1D4F1 => array(0x68),
2875
+					0x1D4F2 => array(0x69), 0x1D4F3 => array(0x6A), 0x1D4F4 => array(0x6B),
2876
+					0x1D4F5 => array(0x6C), 0x1D4F6 => array(0x6D), 0x1D4F7 => array(0x6E),
2877
+					0x1D4F8 => array(0x6F), 0x1D4F9 => array(0x70), 0x1D4FA => array(0x71),
2878
+					0x1D4FB => array(0x72), 0x1D4FC => array(0x73), 0x1D4FD => array(0x74),
2879
+					0x1D4FE => array(0x75), 0x1D4FF => array(0x76), 0x1D500 => array(0x77),
2880
+					0x1D501 => array(0x78), 0x1D502 => array(0x79), 0x1D503 => array(0x7A),
2881
+					0x1D504 => array(0x61), 0x1D505 => array(0x62), 0x1D507 => array(0x64),
2882
+					0x1D508 => array(0x65), 0x1D509 => array(0x66), 0x1D50A => array(0x67),
2883
+					0x1D50D => array(0x6A), 0x1D50E => array(0x6B), 0x1D50F => array(0x6C),
2884
+					0x1D510 => array(0x6D), 0x1D511 => array(0x6E), 0x1D512 => array(0x6F),
2885
+					0x1D513 => array(0x70), 0x1D514 => array(0x71), 0x1D516 => array(0x73),
2886
+					0x1D517 => array(0x74), 0x1D518 => array(0x75), 0x1D519 => array(0x76),
2887
+					0x1D51A => array(0x77), 0x1D51B => array(0x78), 0x1D51C => array(0x79),
2888
+					0x1D51E => array(0x61), 0x1D51F => array(0x62), 0x1D520 => array(0x63),
2889
+					0x1D521 => array(0x64), 0x1D522 => array(0x65), 0x1D523 => array(0x66),
2890
+					0x1D524 => array(0x67), 0x1D525 => array(0x68), 0x1D526 => array(0x69),
2891
+					0x1D527 => array(0x6A), 0x1D528 => array(0x6B), 0x1D529 => array(0x6C),
2892
+					0x1D52A => array(0x6D), 0x1D52B => array(0x6E), 0x1D52C => array(0x6F),
2893
+					0x1D52D => array(0x70), 0x1D52E => array(0x71), 0x1D52F => array(0x72),
2894
+					0x1D530 => array(0x73), 0x1D531 => array(0x74), 0x1D532 => array(0x75),
2895
+					0x1D533 => array(0x76), 0x1D534 => array(0x77), 0x1D535 => array(0x78),
2896
+					0x1D536 => array(0x79), 0x1D537 => array(0x7A), 0x1D538 => array(0x61),
2897
+					0x1D539 => array(0x62), 0x1D53B => array(0x64), 0x1D53C => array(0x65),
2898
+					0x1D53D => array(0x66), 0x1D53E => array(0x67), 0x1D540 => array(0x69),
2899
+					0x1D541 => array(0x6A), 0x1D542 => array(0x6B), 0x1D543 => array(0x6C),
2900
+					0x1D544 => array(0x6D), 0x1D546 => array(0x6F), 0x1D54A => array(0x73),
2901
+					0x1D54B => array(0x74), 0x1D54C => array(0x75), 0x1D54D => array(0x76),
2902
+					0x1D54E => array(0x77), 0x1D54F => array(0x78), 0x1D550 => array(0x79),
2903
+					0x1D552 => array(0x61), 0x1D553 => array(0x62), 0x1D554 => array(0x63),
2904
+					0x1D555 => array(0x64), 0x1D556 => array(0x65), 0x1D557 => array(0x66),
2905
+					0x1D558 => array(0x67), 0x1D559 => array(0x68), 0x1D55A => array(0x69),
2906
+					0x1D55B => array(0x6A), 0x1D55C => array(0x6B), 0x1D55D => array(0x6C),
2907
+					0x1D55E => array(0x6D), 0x1D55F => array(0x6E), 0x1D560 => array(0x6F),
2908
+					0x1D561 => array(0x70), 0x1D562 => array(0x71), 0x1D563 => array(0x72),
2909
+					0x1D564 => array(0x73), 0x1D565 => array(0x74), 0x1D566 => array(0x75),
2910
+					0x1D567 => array(0x76), 0x1D568 => array(0x77), 0x1D569 => array(0x78),
2911
+					0x1D56A => array(0x79), 0x1D56B => array(0x7A), 0x1D56C => array(0x61),
2912
+					0x1D56D => array(0x62), 0x1D56E => array(0x63), 0x1D56F => array(0x64),
2913
+					0x1D570 => array(0x65), 0x1D571 => array(0x66), 0x1D572 => array(0x67),
2914
+					0x1D573 => array(0x68), 0x1D574 => array(0x69), 0x1D575 => array(0x6A),
2915
+					0x1D576 => array(0x6B), 0x1D577 => array(0x6C), 0x1D578 => array(0x6D),
2916
+					0x1D579 => array(0x6E), 0x1D57A => array(0x6F), 0x1D57B => array(0x70),
2917
+					0x1D57C => array(0x71), 0x1D57D => array(0x72), 0x1D57E => array(0x73),
2918
+					0x1D57F => array(0x74), 0x1D580 => array(0x75), 0x1D581 => array(0x76),
2919
+					0x1D582 => array(0x77), 0x1D583 => array(0x78), 0x1D584 => array(0x79),
2920
+					0x1D585 => array(0x7A), 0x1D586 => array(0x61), 0x1D587 => array(0x62),
2921
+					0x1D588 => array(0x63), 0x1D589 => array(0x64), 0x1D58A => array(0x65),
2922
+					0x1D58B => array(0x66), 0x1D58C => array(0x67), 0x1D58D => array(0x68),
2923
+					0x1D58E => array(0x69), 0x1D58F => array(0x6A), 0x1D590 => array(0x6B),
2924
+					0x1D591 => array(0x6C), 0x1D592 => array(0x6D), 0x1D593 => array(0x6E),
2925
+					0x1D594 => array(0x6F), 0x1D595 => array(0x70), 0x1D596 => array(0x71),
2926
+					0x1D597 => array(0x72), 0x1D598 => array(0x73), 0x1D599 => array(0x74),
2927
+					0x1D59A => array(0x75), 0x1D59B => array(0x76), 0x1D59C => array(0x77),
2928
+					0x1D59D => array(0x78), 0x1D59E => array(0x79), 0x1D59F => array(0x7A),
2929
+					0x1D5A0 => array(0x61), 0x1D5A1 => array(0x62), 0x1D5A2 => array(0x63),
2930
+					0x1D5A3 => array(0x64), 0x1D5A4 => array(0x65), 0x1D5A5 => array(0x66),
2931
+					0x1D5A6 => array(0x67), 0x1D5A7 => array(0x68), 0x1D5A8 => array(0x69),
2932
+					0x1D5A9 => array(0x6A), 0x1D5AA => array(0x6B), 0x1D5AB => array(0x6C),
2933
+					0x1D5AC => array(0x6D), 0x1D5AD => array(0x6E), 0x1D5AE => array(0x6F),
2934
+					0x1D5AF => array(0x70), 0x1D5B0 => array(0x71), 0x1D5B1 => array(0x72),
2935
+					0x1D5B2 => array(0x73), 0x1D5B3 => array(0x74), 0x1D5B4 => array(0x75),
2936
+					0x1D5B5 => array(0x76), 0x1D5B6 => array(0x77), 0x1D5B7 => array(0x78),
2937
+					0x1D5B8 => array(0x79), 0x1D5B9 => array(0x7A), 0x1D5BA => array(0x61),
2938
+					0x1D5BB => array(0x62), 0x1D5BC => array(0x63), 0x1D5BD => array(0x64),
2939
+					0x1D5BE => array(0x65), 0x1D5BF => array(0x66), 0x1D5C0 => array(0x67),
2940
+					0x1D5C1 => array(0x68), 0x1D5C2 => array(0x69), 0x1D5C3 => array(0x6A),
2941
+					0x1D5C4 => array(0x6B), 0x1D5C5 => array(0x6C), 0x1D5C6 => array(0x6D),
2942
+					0x1D5C7 => array(0x6E), 0x1D5C8 => array(0x6F), 0x1D5C9 => array(0x70),
2943
+					0x1D5CA => array(0x71), 0x1D5CB => array(0x72), 0x1D5CC => array(0x73),
2944
+					0x1D5CD => array(0x74), 0x1D5CE => array(0x75), 0x1D5CF => array(0x76),
2945
+					0x1D5D0 => array(0x77), 0x1D5D1 => array(0x78), 0x1D5D2 => array(0x79),
2946
+					0x1D5D3 => array(0x7A), 0x1D5D4 => array(0x61), 0x1D5D5 => array(0x62),
2947
+					0x1D5D6 => array(0x63), 0x1D5D7 => array(0x64), 0x1D5D8 => array(0x65),
2948
+					0x1D5D9 => array(0x66), 0x1D5DA => array(0x67), 0x1D5DB => array(0x68),
2949
+					0x1D5DC => array(0x69), 0x1D5DD => array(0x6A), 0x1D5DE => array(0x6B),
2950
+					0x1D5DF => array(0x6C), 0x1D5E0 => array(0x6D), 0x1D5E1 => array(0x6E),
2951
+					0x1D5E2 => array(0x6F), 0x1D5E3 => array(0x70), 0x1D5E4 => array(0x71),
2952
+					0x1D5E5 => array(0x72), 0x1D5E6 => array(0x73), 0x1D5E7 => array(0x74),
2953
+					0x1D5E8 => array(0x75), 0x1D5E9 => array(0x76), 0x1D5EA => array(0x77),
2954
+					0x1D5EB => array(0x78), 0x1D5EC => array(0x79), 0x1D5ED => array(0x7A),
2955
+					0x1D5EE => array(0x61), 0x1D5EF => array(0x62), 0x1D5F0 => array(0x63),
2956
+					0x1D5F1 => array(0x64), 0x1D5F2 => array(0x65), 0x1D5F3 => array(0x66),
2957
+					0x1D5F4 => array(0x67), 0x1D5F5 => array(0x68), 0x1D5F6 => array(0x69),
2958
+					0x1D5F7 => array(0x6A), 0x1D5F8 => array(0x6B), 0x1D5F9 => array(0x6C),
2959
+					0x1D5FA => array(0x6D), 0x1D5FB => array(0x6E), 0x1D5FC => array(0x6F),
2960
+					0x1D5FD => array(0x70), 0x1D5FE => array(0x71), 0x1D5FF => array(0x72),
2961
+					0x1D600 => array(0x73), 0x1D601 => array(0x74), 0x1D602 => array(0x75),
2962
+					0x1D603 => array(0x76), 0x1D604 => array(0x77), 0x1D605 => array(0x78),
2963
+					0x1D606 => array(0x79), 0x1D607 => array(0x7A), 0x1D608 => array(0x61),
2964
+					0x1D609 => array(0x62), 0x1D60A => array(0x63), 0x1D60B => array(0x64),
2965
+					0x1D60C => array(0x65), 0x1D60D => array(0x66), 0x1D60E => array(0x67),
2966
+					0x1D60F => array(0x68), 0x1D610 => array(0x69), 0x1D611 => array(0x6A),
2967
+					0x1D612 => array(0x6B), 0x1D613 => array(0x6C), 0x1D614 => array(0x6D),
2968
+					0x1D615 => array(0x6E), 0x1D616 => array(0x6F), 0x1D617 => array(0x70),
2969
+					0x1D618 => array(0x71), 0x1D619 => array(0x72), 0x1D61A => array(0x73),
2970
+					0x1D61B => array(0x74), 0x1D61C => array(0x75), 0x1D61D => array(0x76),
2971
+					0x1D61E => array(0x77), 0x1D61F => array(0x78), 0x1D620 => array(0x79),
2972
+					0x1D621 => array(0x7A), 0x1D622 => array(0x61), 0x1D623 => array(0x62),
2973
+					0x1D624 => array(0x63), 0x1D625 => array(0x64), 0x1D626 => array(0x65),
2974
+					0x1D627 => array(0x66), 0x1D628 => array(0x67), 0x1D629 => array(0x68),
2975
+					0x1D62A => array(0x69), 0x1D62B => array(0x6A), 0x1D62C => array(0x6B),
2976
+					0x1D62D => array(0x6C), 0x1D62E => array(0x6D), 0x1D62F => array(0x6E),
2977
+					0x1D630 => array(0x6F), 0x1D631 => array(0x70), 0x1D632 => array(0x71),
2978
+					0x1D633 => array(0x72), 0x1D634 => array(0x73), 0x1D635 => array(0x74),
2979
+					0x1D636 => array(0x75), 0x1D637 => array(0x76), 0x1D638 => array(0x77),
2980
+					0x1D639 => array(0x78), 0x1D63A => array(0x79), 0x1D63B => array(0x7A),
2981
+					0x1D63C => array(0x61), 0x1D63D => array(0x62), 0x1D63E => array(0x63),
2982
+					0x1D63F => array(0x64), 0x1D640 => array(0x65), 0x1D641 => array(0x66),
2983
+					0x1D642 => array(0x67), 0x1D643 => array(0x68), 0x1D644 => array(0x69),
2984
+					0x1D645 => array(0x6A), 0x1D646 => array(0x6B), 0x1D647 => array(0x6C),
2985
+					0x1D648 => array(0x6D), 0x1D649 => array(0x6E), 0x1D64A => array(0x6F),
2986
+					0x1D64B => array(0x70), 0x1D64C => array(0x71), 0x1D64D => array(0x72),
2987
+					0x1D64E => array(0x73), 0x1D64F => array(0x74), 0x1D650 => array(0x75),
2988
+					0x1D651 => array(0x76), 0x1D652 => array(0x77), 0x1D653 => array(0x78),
2989
+					0x1D654 => array(0x79), 0x1D655 => array(0x7A), 0x1D656 => array(0x61),
2990
+					0x1D657 => array(0x62), 0x1D658 => array(0x63), 0x1D659 => array(0x64),
2991
+					0x1D65A => array(0x65), 0x1D65B => array(0x66), 0x1D65C => array(0x67),
2992
+					0x1D65D => array(0x68), 0x1D65E => array(0x69), 0x1D65F => array(0x6A),
2993
+					0x1D660 => array(0x6B), 0x1D661 => array(0x6C), 0x1D662 => array(0x6D),
2994
+					0x1D663 => array(0x6E), 0x1D664 => array(0x6F), 0x1D665 => array(0x70),
2995
+					0x1D666 => array(0x71), 0x1D667 => array(0x72), 0x1D668 => array(0x73),
2996
+					0x1D669 => array(0x74), 0x1D66A => array(0x75), 0x1D66B => array(0x76),
2997
+					0x1D66C => array(0x77), 0x1D66D => array(0x78), 0x1D66E => array(0x79),
2998
+					0x1D66F => array(0x7A), 0x1D670 => array(0x61), 0x1D671 => array(0x62),
2999
+					0x1D672 => array(0x63), 0x1D673 => array(0x64), 0x1D674 => array(0x65),
3000
+					0x1D675 => array(0x66), 0x1D676 => array(0x67), 0x1D677 => array(0x68),
3001
+					0x1D678 => array(0x69), 0x1D679 => array(0x6A), 0x1D67A => array(0x6B),
3002
+					0x1D67B => array(0x6C), 0x1D67C => array(0x6D), 0x1D67D => array(0x6E),
3003
+					0x1D67E => array(0x6F), 0x1D67F => array(0x70), 0x1D680 => array(0x71),
3004
+					0x1D681 => array(0x72), 0x1D682 => array(0x73), 0x1D683 => array(0x74),
3005
+					0x1D684 => array(0x75), 0x1D685 => array(0x76), 0x1D686 => array(0x77),
3006
+					0x1D687 => array(0x78), 0x1D688 => array(0x79), 0x1D689 => array(0x7A),
3007
+					0x1D68A => array(0x61), 0x1D68B => array(0x62), 0x1D68C => array(0x63),
3008
+					0x1D68D => array(0x64), 0x1D68E => array(0x65), 0x1D68F => array(0x66),
3009
+					0x1D690 => array(0x67), 0x1D691 => array(0x68), 0x1D692 => array(0x69),
3010
+					0x1D693 => array(0x6A), 0x1D694 => array(0x6B), 0x1D695 => array(0x6C),
3011
+					0x1D696 => array(0x6D), 0x1D697 => array(0x6E), 0x1D698 => array(0x6F),
3012
+					0x1D699 => array(0x70), 0x1D69A => array(0x71), 0x1D69B => array(0x72),
3013
+					0x1D69C => array(0x73), 0x1D69D => array(0x74), 0x1D69E => array(0x75),
3014
+					0x1D69F => array(0x76), 0x1D6A0 => array(0x77), 0x1D6A1 => array(0x78),
3015
+					0x1D6A2 => array(0x79), 0x1D6A3 => array(0x7A), 0x1D6A4 => array(0x131),
3016
+					0x1D6A5 => array(0x237), 0x1D6A8 => array(0x3B1), 0x1D6A9 => array(0x3B2),
3017
+					0x1D6AA => array(0x3B3), 0x1D6AB => array(0x3B4), 0x1D6AC => array(0x3B5),
3018
+					0x1D6AD => array(0x3B6), 0x1D6AE => array(0x3B7), 0x1D6AF => array(0x3B8),
3019
+					0x1D6B0 => array(0x3B9), 0x1D6B1 => array(0x3BA), 0x1D6B2 => array(0x3BB),
3020
+					0x1D6B3 => array(0x3BC), 0x1D6B4 => array(0x3BD), 0x1D6B5 => array(0x3BE),
3021
+					0x1D6B6 => array(0x3BF), 0x1D6B7 => array(0x3C0), 0x1D6B8 => array(0x3C1),
3022
+					0x1D6B9 => array(0x3B8), 0x1D6BA => array(0x3C3), 0x1D6BB => array(0x3C4),
3023
+					0x1D6BC => array(0x3C5), 0x1D6BD => array(0x3C6), 0x1D6BE => array(0x3C7),
3024
+					0x1D6BF => array(0x3C8), 0x1D6C0 => array(0x3C9), 0x1D6C1 => array(0x2207),
3025
+					0x1D6C2 => array(0x3B1), 0x1D6C3 => array(0x3B2), 0x1D6C4 => array(0x3B3),
3026
+					0x1D6C5 => array(0x3B4), 0x1D6C6 => array(0x3B5), 0x1D6C7 => array(0x3B6),
3027
+					0x1D6C8 => array(0x3B7), 0x1D6C9 => array(0x3B8), 0x1D6CA => array(0x3B9),
3028
+					0x1D6CB => array(0x3BA), 0x1D6CC => array(0x3BB), 0x1D6CD => array(0x3BC),
3029
+					0x1D6CE => array(0x3BD), 0x1D6CF => array(0x3BE), 0x1D6D0 => array(0x3BF),
3030
+					0x1D6D1 => array(0x3C0), 0x1D6D2 => array(0x3C1), 0x1D6D3 => array(0x3C3),
3031
+					0x1D6D4 => array(0x3C3), 0x1D6D5 => array(0x3C4), 0x1D6D6 => array(0x3C5),
3032
+					0x1D6D7 => array(0x3C6), 0x1D6D8 => array(0x3C7), 0x1D6D9 => array(0x3C8),
3033
+					0x1D6DA => array(0x3C9), 0x1D6DB => array(0x2202), 0x1D6DC => array(0x3B5),
3034
+					0x1D6DD => array(0x3B8), 0x1D6DE => array(0x3BA), 0x1D6DF => array(0x3C6),
3035
+					0x1D6E0 => array(0x3C1), 0x1D6E1 => array(0x3C0), 0x1D6E2 => array(0x3B1),
3036
+					0x1D6E3 => array(0x3B2), 0x1D6E4 => array(0x3B3), 0x1D6E5 => array(0x3B4),
3037
+					0x1D6E6 => array(0x3B5), 0x1D6E7 => array(0x3B6), 0x1D6E8 => array(0x3B7),
3038
+					0x1D6E9 => array(0x3B8), 0x1D6EA => array(0x3B9), 0x1D6EB => array(0x3BA),
3039
+					0x1D6EC => array(0x3BB), 0x1D6ED => array(0x3BC), 0x1D6EE => array(0x3BD),
3040
+					0x1D6EF => array(0x3BE), 0x1D6F0 => array(0x3BF), 0x1D6F1 => array(0x3C0),
3041
+					0x1D6F2 => array(0x3C1), 0x1D6F3 => array(0x3B8), 0x1D6F4 => array(0x3C3),
3042
+					0x1D6F5 => array(0x3C4), 0x1D6F6 => array(0x3C5), 0x1D6F7 => array(0x3C6),
3043
+					0x1D6F8 => array(0x3C7), 0x1D6F9 => array(0x3C8), 0x1D6FA => array(0x3C9),
3044
+					0x1D6FB => array(0x2207), 0x1D6FC => array(0x3B1), 0x1D6FD => array(0x3B2),
3045
+					0x1D6FE => array(0x3B3), 0x1D6FF => array(0x3B4), 0x1D700 => array(0x3B5),
3046
+					0x1D701 => array(0x3B6), 0x1D702 => array(0x3B7), 0x1D703 => array(0x3B8),
3047
+					0x1D704 => array(0x3B9), 0x1D705 => array(0x3BA), 0x1D706 => array(0x3BB),
3048
+					0x1D707 => array(0x3BC), 0x1D708 => array(0x3BD), 0x1D709 => array(0x3BE),
3049
+					0x1D70A => array(0x3BF), 0x1D70B => array(0x3C0), 0x1D70C => array(0x3C1),
3050
+					0x1D70D => array(0x3C3), 0x1D70E => array(0x3C3), 0x1D70F => array(0x3C4),
3051
+					0x1D710 => array(0x3C5), 0x1D711 => array(0x3C6), 0x1D712 => array(0x3C7),
3052
+					0x1D713 => array(0x3C8), 0x1D714 => array(0x3C9), 0x1D715 => array(0x2202),
3053
+					0x1D716 => array(0x3B5), 0x1D717 => array(0x3B8), 0x1D718 => array(0x3BA),
3054
+					0x1D719 => array(0x3C6), 0x1D71A => array(0x3C1), 0x1D71B => array(0x3C0),
3055
+					0x1D71C => array(0x3B1), 0x1D71D => array(0x3B2), 0x1D71E => array(0x3B3),
3056
+					0x1D71F => array(0x3B4), 0x1D720 => array(0x3B5), 0x1D721 => array(0x3B6),
3057
+					0x1D722 => array(0x3B7), 0x1D723 => array(0x3B8), 0x1D724 => array(0x3B9),
3058
+					0x1D725 => array(0x3BA), 0x1D726 => array(0x3BB), 0x1D727 => array(0x3BC),
3059
+					0x1D728 => array(0x3BD), 0x1D729 => array(0x3BE), 0x1D72A => array(0x3BF),
3060
+					0x1D72B => array(0x3C0), 0x1D72C => array(0x3C1), 0x1D72D => array(0x3B8),
3061
+					0x1D72E => array(0x3C3), 0x1D72F => array(0x3C4), 0x1D730 => array(0x3C5),
3062
+					0x1D731 => array(0x3C6), 0x1D732 => array(0x3C7), 0x1D733 => array(0x3C8),
3063
+					0x1D734 => array(0x3C9), 0x1D735 => array(0x2207), 0x1D736 => array(0x3B1),
3064
+					0x1D737 => array(0x3B2), 0x1D738 => array(0x3B3), 0x1D739 => array(0x3B4),
3065
+					0x1D73A => array(0x3B5), 0x1D73B => array(0x3B6), 0x1D73C => array(0x3B7),
3066
+					0x1D73D => array(0x3B8), 0x1D73E => array(0x3B9), 0x1D73F => array(0x3BA),
3067
+					0x1D740 => array(0x3BB), 0x1D741 => array(0x3BC), 0x1D742 => array(0x3BD),
3068
+					0x1D743 => array(0x3BE), 0x1D744 => array(0x3BF), 0x1D745 => array(0x3C0),
3069
+					0x1D746 => array(0x3C1), 0x1D747 => array(0x3C3), 0x1D748 => array(0x3C3),
3070
+					0x1D749 => array(0x3C4), 0x1D74A => array(0x3C5), 0x1D74B => array(0x3C6),
3071
+					0x1D74C => array(0x3C7), 0x1D74D => array(0x3C8), 0x1D74E => array(0x3C9),
3072
+					0x1D74F => array(0x2202), 0x1D750 => array(0x3B5), 0x1D751 => array(0x3B8),
3073
+					0x1D752 => array(0x3BA), 0x1D753 => array(0x3C6), 0x1D754 => array(0x3C1),
3074
+					0x1D755 => array(0x3C0), 0x1D756 => array(0x3B1), 0x1D757 => array(0x3B2),
3075
+					0x1D758 => array(0x3B3), 0x1D759 => array(0x3B4), 0x1D75A => array(0x3B5),
3076
+					0x1D75B => array(0x3B6), 0x1D75C => array(0x3B7), 0x1D75D => array(0x3B8),
3077
+					0x1D75E => array(0x3B9), 0x1D75F => array(0x3BA), 0x1D760 => array(0x3BB),
3078
+					0x1D761 => array(0x3BC), 0x1D762 => array(0x3BD), 0x1D763 => array(0x3BE),
3079
+					0x1D764 => array(0x3BF), 0x1D765 => array(0x3C0), 0x1D766 => array(0x3C1),
3080
+					0x1D767 => array(0x3B8), 0x1D768 => array(0x3C3), 0x1D769 => array(0x3C4),
3081
+					0x1D76A => array(0x3C5), 0x1D76B => array(0x3C6), 0x1D76C => array(0x3C7),
3082
+					0x1D76D => array(0x3C8), 0x1D76E => array(0x3C9), 0x1D76F => array(0x2207),
3083
+					0x1D770 => array(0x3B1), 0x1D771 => array(0x3B2), 0x1D772 => array(0x3B3),
3084
+					0x1D773 => array(0x3B4), 0x1D774 => array(0x3B5), 0x1D775 => array(0x3B6),
3085
+					0x1D776 => array(0x3B7), 0x1D777 => array(0x3B8), 0x1D778 => array(0x3B9),
3086
+					0x1D779 => array(0x3BA), 0x1D77A => array(0x3BB), 0x1D77B => array(0x3BC),
3087
+					0x1D77C => array(0x3BD), 0x1D77D => array(0x3BE), 0x1D77E => array(0x3BF),
3088
+					0x1D77F => array(0x3C0), 0x1D780 => array(0x3C1), 0x1D781 => array(0x3C3),
3089
+					0x1D782 => array(0x3C3), 0x1D783 => array(0x3C4), 0x1D784 => array(0x3C5),
3090
+					0x1D785 => array(0x3C6), 0x1D786 => array(0x3C7), 0x1D787 => array(0x3C8),
3091
+					0x1D788 => array(0x3C9), 0x1D789 => array(0x2202), 0x1D78A => array(0x3B5),
3092
+					0x1D78B => array(0x3B8), 0x1D78C => array(0x3BA), 0x1D78D => array(0x3C6),
3093
+					0x1D78E => array(0x3C1), 0x1D78F => array(0x3C0), 0x1D790 => array(0x3B1),
3094
+					0x1D791 => array(0x3B2), 0x1D792 => array(0x3B3), 0x1D793 => array(0x3B4),
3095
+					0x1D794 => array(0x3B5), 0x1D795 => array(0x3B6), 0x1D796 => array(0x3B7),
3096
+					0x1D797 => array(0x3B8), 0x1D798 => array(0x3B9), 0x1D799 => array(0x3BA),
3097
+					0x1D79A => array(0x3BB), 0x1D79B => array(0x3BC), 0x1D79C => array(0x3BD),
3098
+					0x1D79D => array(0x3BE), 0x1D79E => array(0x3BF), 0x1D79F => array(0x3C0),
3099
+					0x1D7A0 => array(0x3C1), 0x1D7A1 => array(0x3B8), 0x1D7A2 => array(0x3C3),
3100
+					0x1D7A3 => array(0x3C4), 0x1D7A4 => array(0x3C5), 0x1D7A5 => array(0x3C6),
3101
+					0x1D7A6 => array(0x3C7), 0x1D7A7 => array(0x3C8), 0x1D7A8 => array(0x3C9),
3102
+					0x1D7A9 => array(0x2207), 0x1D7AA => array(0x3B1), 0x1D7AB => array(0x3B2),
3103
+					0x1D7AC => array(0x3B3), 0x1D7AD => array(0x3B4), 0x1D7AE => array(0x3B5),
3104
+					0x1D7AF => array(0x3B6), 0x1D7B0 => array(0x3B7), 0x1D7B1 => array(0x3B8),
3105
+					0x1D7B2 => array(0x3B9), 0x1D7B3 => array(0x3BA), 0x1D7B4 => array(0x3BB),
3106
+					0x1D7B5 => array(0x3BC), 0x1D7B6 => array(0x3BD), 0x1D7B7 => array(0x3BE),
3107
+					0x1D7B8 => array(0x3BF), 0x1D7B9 => array(0x3C0), 0x1D7BA => array(0x3C1),
3108
+					0x1D7BB => array(0x3C3), 0x1D7BC => array(0x3C3), 0x1D7BD => array(0x3C4),
3109
+					0x1D7BE => array(0x3C5), 0x1D7BF => array(0x3C6), 0x1D7C0 => array(0x3C7),
3110
+					0x1D7C1 => array(0x3C8), 0x1D7C2 => array(0x3C9), 0x1D7C3 => array(0x2202),
3111
+					0x1D7C4 => array(0x3B5), 0x1D7C5 => array(0x3B8), 0x1D7C6 => array(0x3BA),
3112
+					0x1D7C7 => array(0x3C6), 0x1D7C8 => array(0x3C1), 0x1D7C9 => array(0x3C0),
3113
+					0x1D7CA => array(0x3DD), 0x1D7CB => array(0x3DD), 0x1D7CE => array(0x30),
3114
+					0x1D7CF => array(0x31), 0x1D7D0 => array(0x32), 0x1D7D1 => array(0x33),
3115
+					0x1D7D2 => array(0x34), 0x1D7D3 => array(0x35), 0x1D7D4 => array(0x36),
3116
+					0x1D7D5 => array(0x37), 0x1D7D6 => array(0x38), 0x1D7D7 => array(0x39),
3117
+					0x1D7D8 => array(0x30), 0x1D7D9 => array(0x31), 0x1D7DA => array(0x32),
3118
+					0x1D7DB => array(0x33), 0x1D7DC => array(0x34), 0x1D7DD => array(0x35),
3119
+					0x1D7DE => array(0x36), 0x1D7DF => array(0x37), 0x1D7E0 => array(0x38),
3120
+					0x1D7E1 => array(0x39), 0x1D7E2 => array(0x30), 0x1D7E3 => array(0x31),
3121
+					0x1D7E4 => array(0x32), 0x1D7E5 => array(0x33), 0x1D7E6 => array(0x34),
3122
+					0x1D7E7 => array(0x35), 0x1D7E8 => array(0x36), 0x1D7E9 => array(0x37),
3123
+					0x1D7EA => array(0x38), 0x1D7EB => array(0x39), 0x1D7EC => array(0x30),
3124
+					0x1D7ED => array(0x31), 0x1D7EE => array(0x32), 0x1D7EF => array(0x33),
3125
+					0x1D7F0 => array(0x34), 0x1D7F1 => array(0x35), 0x1D7F2 => array(0x36),
3126
+					0x1D7F3 => array(0x37), 0x1D7F4 => array(0x38), 0x1D7F5 => array(0x39),
3127
+					0x1D7F6 => array(0x30), 0x1D7F7 => array(0x31), 0x1D7F8 => array(0x32),
3128
+					0x1D7F9 => array(0x33), 0x1D7FA => array(0x34), 0x1D7FB => array(0x35),
3129
+					0x1D7FC => array(0x36), 0x1D7FD => array(0x37), 0x1D7FE => array(0x38),
3130
+					0x1D7FF => array(0x39), 0x1EE00 => array(0x627), 0x1EE01 => array(0x628),
3131
+					0x1EE02 => array(0x62C), 0x1EE03 => array(0x62F), 0x1EE05 => array(0x648),
3132
+					0x1EE06 => array(0x632), 0x1EE07 => array(0x62D), 0x1EE08 => array(0x637),
3133
+					0x1EE09 => array(0x64A), 0x1EE0A => array(0x643), 0x1EE0B => array(0x644),
3134
+					0x1EE0C => array(0x645), 0x1EE0D => array(0x646), 0x1EE0E => array(0x633),
3135
+					0x1EE0F => array(0x639), 0x1EE10 => array(0x641), 0x1EE11 => array(0x635),
3136
+					0x1EE12 => array(0x642), 0x1EE13 => array(0x631), 0x1EE14 => array(0x634),
3137
+					0x1EE15 => array(0x62A), 0x1EE16 => array(0x62B), 0x1EE17 => array(0x62E),
3138
+					0x1EE18 => array(0x630), 0x1EE19 => array(0x636), 0x1EE1A => array(0x638),
3139
+					0x1EE1B => array(0x63A), 0x1EE1C => array(0x66E), 0x1EE1D => array(0x6BA),
3140
+					0x1EE1E => array(0x6A1), 0x1EE1F => array(0x66F), 0x1EE21 => array(0x628),
3141
+					0x1EE22 => array(0x62C), 0x1EE24 => array(0x647), 0x1EE27 => array(0x62D),
3142
+					0x1EE29 => array(0x64A), 0x1EE2A => array(0x643), 0x1EE2B => array(0x644),
3143
+					0x1EE2C => array(0x645), 0x1EE2D => array(0x646), 0x1EE2E => array(0x633),
3144
+					0x1EE2F => array(0x639), 0x1EE30 => array(0x641), 0x1EE31 => array(0x635),
3145
+					0x1EE32 => array(0x642), 0x1EE34 => array(0x634), 0x1EE35 => array(0x62A),
3146
+					0x1EE36 => array(0x62B), 0x1EE37 => array(0x62E), 0x1EE39 => array(0x636),
3147
+					0x1EE3B => array(0x63A), 0x1EE42 => array(0x62C), 0x1EE47 => array(0x62D),
3148
+					0x1EE49 => array(0x64A), 0x1EE4B => array(0x644), 0x1EE4D => array(0x646),
3149
+					0x1EE4E => array(0x633), 0x1EE4F => array(0x639), 0x1EE51 => array(0x635),
3150
+					0x1EE52 => array(0x642), 0x1EE54 => array(0x634), 0x1EE57 => array(0x62E),
3151
+					0x1EE59 => array(0x636), 0x1EE5B => array(0x63A), 0x1EE5D => array(0x6BA),
3152
+					0x1EE5F => array(0x66F), 0x1EE61 => array(0x628), 0x1EE62 => array(0x62C),
3153
+					0x1EE64 => array(0x647), 0x1EE67 => array(0x62D), 0x1EE68 => array(0x637),
3154
+					0x1EE69 => array(0x64A), 0x1EE6A => array(0x643), 0x1EE6C => array(0x645),
3155
+					0x1EE6D => array(0x646), 0x1EE6E => array(0x633), 0x1EE6F => array(0x639),
3156
+					0x1EE70 => array(0x641), 0x1EE71 => array(0x635), 0x1EE72 => array(0x642),
3157
+					0x1EE74 => array(0x634), 0x1EE75 => array(0x62A), 0x1EE76 => array(0x62B),
3158
+					0x1EE77 => array(0x62E), 0x1EE79 => array(0x636), 0x1EE7A => array(0x638),
3159
+					0x1EE7B => array(0x63A), 0x1EE7C => array(0x66E), 0x1EE7E => array(0x6A1),
3160
+					0x1EE80 => array(0x627), 0x1EE81 => array(0x628), 0x1EE82 => array(0x62C),
3161
+					0x1EE83 => array(0x62F), 0x1EE84 => array(0x647), 0x1EE85 => array(0x648),
3162
+					0x1EE86 => array(0x632), 0x1EE87 => array(0x62D), 0x1EE88 => array(0x637),
3163
+					0x1EE89 => array(0x64A), 0x1EE8B => array(0x644), 0x1EE8C => array(0x645),
3164
+					0x1EE8D => array(0x646), 0x1EE8E => array(0x633), 0x1EE8F => array(0x639),
3165
+					0x1EE90 => array(0x641), 0x1EE91 => array(0x635), 0x1EE92 => array(0x642),
3166
+					0x1EE93 => array(0x631), 0x1EE94 => array(0x634), 0x1EE95 => array(0x62A),
3167
+					0x1EE96 => array(0x62B), 0x1EE97 => array(0x62E), 0x1EE98 => array(0x630),
3168
+					0x1EE99 => array(0x636), 0x1EE9A => array(0x638), 0x1EE9B => array(0x63A),
3169
+					0x1EEA1 => array(0x628), 0x1EEA2 => array(0x62C), 0x1EEA3 => array(0x62F),
3170
+					0x1EEA5 => array(0x648), 0x1EEA6 => array(0x632), 0x1EEA7 => array(0x62D),
3171
+					0x1EEA8 => array(0x637), 0x1EEA9 => array(0x64A), 0x1EEAB => array(0x644),
3172
+					0x1EEAC => array(0x645), 0x1EEAD => array(0x646), 0x1EEAE => array(0x633),
3173
+					0x1EEAF => array(0x639), 0x1EEB0 => array(0x641), 0x1EEB1 => array(0x635),
3174
+					0x1EEB2 => array(0x642), 0x1EEB3 => array(0x631), 0x1EEB4 => array(0x634),
3175
+					0x1EEB5 => array(0x62A), 0x1EEB6 => array(0x62B), 0x1EEB7 => array(0x62E),
3176
+					0x1EEB8 => array(0x630), 0x1EEB9 => array(0x636), 0x1EEBA => array(0x638),
3177
+					0x1EEBB => array(0x63A), 0x1F12A => array(0x3014, 0x73, 0x3015), 0x1F12B => array(0x63),
3178
+					0x1F12C => array(0x72), 0x1F12D => array(0x63, 0x64), 0x1F12E => array(0x77, 0x7A),
3179
+					0x1F130 => array(0x61), 0x1F131 => array(0x62), 0x1F132 => array(0x63),
3180
+					0x1F133 => array(0x64), 0x1F134 => array(0x65), 0x1F135 => array(0x66),
3181
+					0x1F136 => array(0x67), 0x1F137 => array(0x68), 0x1F138 => array(0x69),
3182
+					0x1F139 => array(0x6A), 0x1F13A => array(0x6B), 0x1F13B => array(0x6C),
3183
+					0x1F13C => array(0x6D), 0x1F13D => array(0x6E), 0x1F13E => array(0x6F),
3184
+					0x1F13F => array(0x70), 0x1F140 => array(0x71), 0x1F141 => array(0x72),
3185
+					0x1F142 => array(0x73), 0x1F143 => array(0x74), 0x1F144 => array(0x75),
3186
+					0x1F145 => array(0x76), 0x1F146 => array(0x77), 0x1F147 => array(0x78),
3187
+					0x1F148 => array(0x79), 0x1F149 => array(0x7A), 0x1F14A => array(0x68, 0x76),
3188
+					0x1F14B => array(0x6D, 0x76), 0x1F14C => array(0x73, 0x64), 0x1F14D => array(0x73, 0x73),
3189
+					0x1F14E => array(0x70, 0x70, 0x76), 0x1F14F => array(0x77, 0x63), 0x1F16A => array(0x6D, 0x63),
3190
+					0x1F16B => array(0x6D, 0x64), 0x1F190 => array(0x64, 0x6A), 0x1F200 => array(0x307B, 0x304B),
3191
+					0x1F201 => array(0x30B3, 0x30B3), 0x1F202 => array(0x30B5), 0x1F210 => array(0x624B),
3192
+					0x1F211 => array(0x5B57), 0x1F212 => array(0x53CC), 0x1F213 => array(0x30C7),
3193
+					0x1F214 => array(0x4E8C), 0x1F215 => array(0x591A), 0x1F216 => array(0x89E3),
3194
+					0x1F217 => array(0x5929), 0x1F218 => array(0x4EA4), 0x1F219 => array(0x6620),
3195
+					0x1F21A => array(0x7121), 0x1F21B => array(0x6599), 0x1F21C => array(0x524D),
3196
+					0x1F21D => array(0x5F8C), 0x1F21E => array(0x518D), 0x1F21F => array(0x65B0),
3197
+					0x1F220 => array(0x521D), 0x1F221 => array(0x7D42), 0x1F222 => array(0x751F),
3198
+					0x1F223 => array(0x8CA9), 0x1F224 => array(0x58F0), 0x1F225 => array(0x5439),
3199
+					0x1F226 => array(0x6F14), 0x1F227 => array(0x6295), 0x1F228 => array(0x6355),
3200
+					0x1F229 => array(0x4E00), 0x1F22A => array(0x4E09), 0x1F22B => array(0x904A),
3201
+					0x1F22C => array(0x5DE6), 0x1F22D => array(0x4E2D), 0x1F22E => array(0x53F3),
3202
+					0x1F22F => array(0x6307), 0x1F230 => array(0x8D70), 0x1F231 => array(0x6253),
3203
+					0x1F232 => array(0x7981), 0x1F233 => array(0x7A7A), 0x1F234 => array(0x5408),
3204
+					0x1F235 => array(0x6E80), 0x1F236 => array(0x6709), 0x1F237 => array(0x6708),
3205
+					0x1F238 => array(0x7533), 0x1F239 => array(0x5272), 0x1F23A => array(0x55B6),
3206
+					0x1F240 => array(0x3014, 0x672C, 0x3015), 0x1F241 => array(0x3014, 0x4E09, 0x3015), 0x1F242 => array(0x3014, 0x4E8C, 0x3015),
3207
+					0x1F243 => array(0x3014, 0x5B89, 0x3015), 0x1F244 => array(0x3014, 0x70B9, 0x3015), 0x1F245 => array(0x3014, 0x6253, 0x3015),
3208
+					0x1F246 => array(0x3014, 0x76D7, 0x3015), 0x1F247 => array(0x3014, 0x52DD, 0x3015), 0x1F248 => array(0x3014, 0x6557, 0x3015),
3209
+					0x1F250 => array(0x5F97), 0x1F251 => array(0x53EF), 0x2F800 => array(0x4E3D),
3210
+					0x2F801 => array(0x4E38), 0x2F802 => array(0x4E41), 0x2F803 => array(0x20122),
3211
+					0x2F804 => array(0x4F60), 0x2F805 => array(0x4FAE), 0x2F806 => array(0x4FBB),
3212
+					0x2F807 => array(0x5002), 0x2F808 => array(0x507A), 0x2F809 => array(0x5099),
3213
+					0x2F80A => array(0x50E7), 0x2F80B => array(0x50CF), 0x2F80C => array(0x349E),
3214
+					0x2F80D => array(0x2063A), 0x2F80E => array(0x514D), 0x2F80F => array(0x5154),
3215
+					0x2F810 => array(0x5164), 0x2F811 => array(0x5177), 0x2F812 => array(0x2051C),
3216
+					0x2F813 => array(0x34B9), 0x2F814 => array(0x5167), 0x2F815 => array(0x518D),
3217
+					0x2F816 => array(0x2054B), 0x2F817 => array(0x5197), 0x2F818 => array(0x51A4),
3218
+					0x2F819 => array(0x4ECC), 0x2F81A => array(0x51AC), 0x2F81B => array(0x51B5),
3219
+					0x2F81C => array(0x291DF), 0x2F81D => array(0x51F5), 0x2F81E => array(0x5203),
3220
+					0x2F81F => array(0x34DF), 0x2F820 => array(0x523B), 0x2F821 => array(0x5246),
3221
+					0x2F822 => array(0x5272), 0x2F823 => array(0x5277), 0x2F824 => array(0x3515),
3222
+					0x2F825 => array(0x52C7), 0x2F826 => array(0x52C9), 0x2F827 => array(0x52E4),
3223
+					0x2F828 => array(0x52FA), 0x2F829 => array(0x5305), 0x2F82A => array(0x5306),
3224
+					0x2F82B => array(0x5317), 0x2F82C => array(0x5349), 0x2F82D => array(0x5351),
3225
+					0x2F82E => array(0x535A), 0x2F82F => array(0x5373), 0x2F830 => array(0x537D),
3226
+					0x2F831 => array(0x537F), 0x2F832 => array(0x537F), 0x2F833 => array(0x537F),
3227
+					0x2F834 => array(0x20A2C), 0x2F835 => array(0x7070), 0x2F836 => array(0x53CA),
3228
+					0x2F837 => array(0x53DF), 0x2F838 => array(0x20B63), 0x2F839 => array(0x53EB),
3229
+					0x2F83A => array(0x53F1), 0x2F83B => array(0x5406), 0x2F83C => array(0x549E),
3230
+					0x2F83D => array(0x5438), 0x2F83E => array(0x5448), 0x2F83F => array(0x5468),
3231
+					0x2F840 => array(0x54A2), 0x2F841 => array(0x54F6), 0x2F842 => array(0x5510),
3232
+					0x2F843 => array(0x5553), 0x2F844 => array(0x5563), 0x2F845 => array(0x5584),
3233
+					0x2F846 => array(0x5584), 0x2F847 => array(0x5599), 0x2F848 => array(0x55AB),
3234
+					0x2F849 => array(0x55B3), 0x2F84A => array(0x55C2), 0x2F84B => array(0x5716),
3235
+					0x2F84C => array(0x5606), 0x2F84D => array(0x5717), 0x2F84E => array(0x5651),
3236
+					0x2F84F => array(0x5674), 0x2F850 => array(0x5207), 0x2F851 => array(0x58EE),
3237
+					0x2F852 => array(0x57CE), 0x2F853 => array(0x57F4), 0x2F854 => array(0x580D),
3238
+					0x2F855 => array(0x578B), 0x2F856 => array(0x5832), 0x2F857 => array(0x5831),
3239
+					0x2F858 => array(0x58AC), 0x2F859 => array(0x214E4), 0x2F85A => array(0x58F2),
3240
+					0x2F85B => array(0x58F7), 0x2F85C => array(0x5906), 0x2F85D => array(0x591A),
3241
+					0x2F85E => array(0x5922), 0x2F85F => array(0x5962), 0x2F860 => array(0x216A8),
3242
+					0x2F861 => array(0x216EA), 0x2F862 => array(0x59EC), 0x2F863 => array(0x5A1B),
3243
+					0x2F864 => array(0x5A27), 0x2F865 => array(0x59D8), 0x2F866 => array(0x5A66),
3244
+					0x2F867 => array(0x36EE), 0x2F869 => array(0x5B08), 0x2F86A => array(0x5B3E),
3245
+					0x2F86B => array(0x5B3E), 0x2F86C => array(0x219C8), 0x2F86D => array(0x5BC3),
3246
+					0x2F86E => array(0x5BD8), 0x2F86F => array(0x5BE7), 0x2F870 => array(0x5BF3),
3247
+					0x2F871 => array(0x21B18), 0x2F872 => array(0x5BFF), 0x2F873 => array(0x5C06),
3248
+					0x2F875 => array(0x5C22), 0x2F876 => array(0x3781), 0x2F877 => array(0x5C60),
3249
+					0x2F878 => array(0x5C6E), 0x2F879 => array(0x5CC0), 0x2F87A => array(0x5C8D),
3250
+					0x2F87B => array(0x21DE4), 0x2F87C => array(0x5D43), 0x2F87D => array(0x21DE6),
3251
+					0x2F87E => array(0x5D6E), 0x2F87F => array(0x5D6B), 0x2F880 => array(0x5D7C),
3252
+					0x2F881 => array(0x5DE1), 0x2F882 => array(0x5DE2), 0x2F883 => array(0x382F),
3253
+					0x2F884 => array(0x5DFD), 0x2F885 => array(0x5E28), 0x2F886 => array(0x5E3D),
3254
+					0x2F887 => array(0x5E69), 0x2F888 => array(0x3862), 0x2F889 => array(0x22183),
3255
+					0x2F88A => array(0x387C), 0x2F88B => array(0x5EB0), 0x2F88C => array(0x5EB3),
3256
+					0x2F88D => array(0x5EB6), 0x2F88E => array(0x5ECA), 0x2F88F => array(0x2A392),
3257
+					0x2F890 => array(0x5EFE), 0x2F891 => array(0x22331), 0x2F892 => array(0x22331),
3258
+					0x2F893 => array(0x8201), 0x2F894 => array(0x5F22), 0x2F895 => array(0x5F22),
3259
+					0x2F896 => array(0x38C7), 0x2F897 => array(0x232B8), 0x2F898 => array(0x261DA),
3260
+					0x2F899 => array(0x5F62), 0x2F89A => array(0x5F6B), 0x2F89B => array(0x38E3),
3261
+					0x2F89C => array(0x5F9A), 0x2F89D => array(0x5FCD), 0x2F89E => array(0x5FD7),
3262
+					0x2F89F => array(0x5FF9), 0x2F8A0 => array(0x6081), 0x2F8A1 => array(0x393A),
3263
+					0x2F8A2 => array(0x391C), 0x2F8A3 => array(0x6094), 0x2F8A4 => array(0x226D4),
3264
+					0x2F8A5 => array(0x60C7), 0x2F8A6 => array(0x6148), 0x2F8A7 => array(0x614C),
3265
+					0x2F8A8 => array(0x614E), 0x2F8A9 => array(0x614C), 0x2F8AA => array(0x617A),
3266
+					0x2F8AB => array(0x618E), 0x2F8AC => array(0x61B2), 0x2F8AD => array(0x61A4),
3267
+					0x2F8AE => array(0x61AF), 0x2F8AF => array(0x61DE), 0x2F8B0 => array(0x61F2),
3268
+					0x2F8B1 => array(0x61F6), 0x2F8B2 => array(0x6210), 0x2F8B3 => array(0x621B),
3269
+					0x2F8B4 => array(0x625D), 0x2F8B5 => array(0x62B1), 0x2F8B6 => array(0x62D4),
3270
+					0x2F8B7 => array(0x6350), 0x2F8B8 => array(0x22B0C), 0x2F8B9 => array(0x633D),
3271
+					0x2F8BA => array(0x62FC), 0x2F8BB => array(0x6368), 0x2F8BC => array(0x6383),
3272
+					0x2F8BD => array(0x63E4), 0x2F8BE => array(0x22BF1), 0x2F8BF => array(0x6422),
3273
+					0x2F8C0 => array(0x63C5), 0x2F8C1 => array(0x63A9), 0x2F8C2 => array(0x3A2E),
3274
+					0x2F8C3 => array(0x6469), 0x2F8C4 => array(0x647E), 0x2F8C5 => array(0x649D),
3275
+					0x2F8C6 => array(0x6477), 0x2F8C7 => array(0x3A6C), 0x2F8C8 => array(0x654F),
3276
+					0x2F8C9 => array(0x656C), 0x2F8CA => array(0x2300A), 0x2F8CB => array(0x65E3),
3277
+					0x2F8CC => array(0x66F8), 0x2F8CD => array(0x6649), 0x2F8CE => array(0x3B19),
3278
+					0x2F8CF => array(0x6691), 0x2F8D0 => array(0x3B08), 0x2F8D1 => array(0x3AE4),
3279
+					0x2F8D2 => array(0x5192), 0x2F8D3 => array(0x5195), 0x2F8D4 => array(0x6700),
3280
+					0x2F8D5 => array(0x669C), 0x2F8D6 => array(0x80AD), 0x2F8D7 => array(0x43D9),
3281
+					0x2F8D8 => array(0x6717), 0x2F8D9 => array(0x671B), 0x2F8DA => array(0x6721),
3282
+					0x2F8DB => array(0x675E), 0x2F8DC => array(0x6753), 0x2F8DD => array(0x233C3),
3283
+					0x2F8DE => array(0x3B49), 0x2F8DF => array(0x67FA), 0x2F8E0 => array(0x6785),
3284
+					0x2F8E1 => array(0x6852), 0x2F8E2 => array(0x6885), 0x2F8E3 => array(0x2346D),
3285
+					0x2F8E4 => array(0x688E), 0x2F8E5 => array(0x681F), 0x2F8E6 => array(0x6914),
3286
+					0x2F8E7 => array(0x3B9D), 0x2F8E8 => array(0x6942), 0x2F8E9 => array(0x69A3),
3287
+					0x2F8EA => array(0x69EA), 0x2F8EB => array(0x6AA8), 0x2F8EC => array(0x236A3),
3288
+					0x2F8ED => array(0x6ADB), 0x2F8EE => array(0x3C18), 0x2F8EF => array(0x6B21),
3289
+					0x2F8F0 => array(0x238A7), 0x2F8F1 => array(0x6B54), 0x2F8F2 => array(0x3C4E),
3290
+					0x2F8F3 => array(0x6B72), 0x2F8F4 => array(0x6B9F), 0x2F8F5 => array(0x6BBA),
3291
+					0x2F8F6 => array(0x6BBB), 0x2F8F7 => array(0x23A8D), 0x2F8F8 => array(0x21D0B),
3292
+					0x2F8F9 => array(0x23AFA), 0x2F8FA => array(0x6C4E), 0x2F8FB => array(0x23CBC),
3293
+					0x2F8FC => array(0x6CBF), 0x2F8FD => array(0x6CCD), 0x2F8FE => array(0x6C67),
3294
+					0x2F8FF => array(0x6D16), 0x2F900 => array(0x6D3E), 0x2F901 => array(0x6D77),
3295
+					0x2F902 => array(0x6D41), 0x2F903 => array(0x6D69), 0x2F904 => array(0x6D78),
3296
+					0x2F905 => array(0x6D85), 0x2F906 => array(0x23D1E), 0x2F907 => array(0x6D34),
3297
+					0x2F908 => array(0x6E2F), 0x2F909 => array(0x6E6E), 0x2F90A => array(0x3D33),
3298
+					0x2F90B => array(0x6ECB), 0x2F90C => array(0x6EC7), 0x2F90D => array(0x23ED1),
3299
+					0x2F90E => array(0x6DF9), 0x2F90F => array(0x6F6E), 0x2F910 => array(0x23F5E),
3300
+					0x2F911 => array(0x23F8E), 0x2F912 => array(0x6FC6), 0x2F913 => array(0x7039),
3301
+					0x2F914 => array(0x701E), 0x2F915 => array(0x701B), 0x2F916 => array(0x3D96),
3302
+					0x2F917 => array(0x704A), 0x2F918 => array(0x707D), 0x2F919 => array(0x7077),
3303
+					0x2F91A => array(0x70AD), 0x2F91B => array(0x20525), 0x2F91C => array(0x7145),
3304
+					0x2F91D => array(0x24263), 0x2F91E => array(0x719C), 0x2F920 => array(0x7228),
3305
+					0x2F921 => array(0x7235), 0x2F922 => array(0x7250), 0x2F923 => array(0x24608),
3306
+					0x2F924 => array(0x7280), 0x2F925 => array(0x7295), 0x2F926 => array(0x24735),
3307
+					0x2F927 => array(0x24814), 0x2F928 => array(0x737A), 0x2F929 => array(0x738B),
3308
+					0x2F92A => array(0x3EAC), 0x2F92B => array(0x73A5), 0x2F92C => array(0x3EB8),
3309
+					0x2F92D => array(0x3EB8), 0x2F92E => array(0x7447), 0x2F92F => array(0x745C),
3310
+					0x2F930 => array(0x7471), 0x2F931 => array(0x7485), 0x2F932 => array(0x74CA),
3311
+					0x2F933 => array(0x3F1B), 0x2F934 => array(0x7524), 0x2F935 => array(0x24C36),
3312
+					0x2F936 => array(0x753E), 0x2F937 => array(0x24C92), 0x2F938 => array(0x7570),
3313
+					0x2F939 => array(0x2219F), 0x2F93A => array(0x7610), 0x2F93B => array(0x24FA1),
3314
+					0x2F93C => array(0x24FB8), 0x2F93D => array(0x25044), 0x2F93E => array(0x3FFC),
3315
+					0x2F93F => array(0x4008), 0x2F940 => array(0x76F4), 0x2F941 => array(0x250F3),
3316
+					0x2F942 => array(0x250F2), 0x2F943 => array(0x25119), 0x2F944 => array(0x25133),
3317
+					0x2F945 => array(0x771E), 0x2F946 => array(0x771F), 0x2F947 => array(0x771F),
3318
+					0x2F948 => array(0x774A), 0x2F949 => array(0x4039), 0x2F94A => array(0x778B),
3319
+					0x2F94B => array(0x4046), 0x2F94C => array(0x4096), 0x2F94D => array(0x2541D),
3320
+					0x2F94E => array(0x784E), 0x2F94F => array(0x788C), 0x2F950 => array(0x78CC),
3321
+					0x2F951 => array(0x40E3), 0x2F952 => array(0x25626), 0x2F953 => array(0x7956),
3322
+					0x2F954 => array(0x2569A), 0x2F955 => array(0x256C5), 0x2F956 => array(0x798F),
3323
+					0x2F957 => array(0x79EB), 0x2F958 => array(0x412F), 0x2F959 => array(0x7A40),
3324
+					0x2F95A => array(0x7A4A), 0x2F95B => array(0x7A4F), 0x2F95C => array(0x2597C),
3325
+					0x2F95D => array(0x25AA7), 0x2F95E => array(0x25AA7), 0x2F960 => array(0x4202),
3326
+					0x2F961 => array(0x25BAB), 0x2F962 => array(0x7BC6), 0x2F963 => array(0x7BC9),
3327
+					0x2F964 => array(0x4227), 0x2F965 => array(0x25C80), 0x2F966 => array(0x7CD2),
3328
+					0x2F967 => array(0x42A0), 0x2F968 => array(0x7CE8), 0x2F969 => array(0x7CE3),
3329
+					0x2F96A => array(0x7D00), 0x2F96B => array(0x25F86), 0x2F96C => array(0x7D63),
3330
+					0x2F96D => array(0x4301), 0x2F96E => array(0x7DC7), 0x2F96F => array(0x7E02),
3331
+					0x2F970 => array(0x7E45), 0x2F971 => array(0x4334), 0x2F972 => array(0x26228),
3332
+					0x2F973 => array(0x26247), 0x2F974 => array(0x4359), 0x2F975 => array(0x262D9),
3333
+					0x2F976 => array(0x7F7A), 0x2F977 => array(0x2633E), 0x2F978 => array(0x7F95),
3334
+					0x2F979 => array(0x7FFA), 0x2F97A => array(0x8005), 0x2F97B => array(0x264DA),
3335
+					0x2F97C => array(0x26523), 0x2F97D => array(0x8060), 0x2F97E => array(0x265A8),
3336
+					0x2F97F => array(0x8070), 0x2F980 => array(0x2335F), 0x2F981 => array(0x43D5),
3337
+					0x2F982 => array(0x80B2), 0x2F983 => array(0x8103), 0x2F984 => array(0x440B),
3338
+					0x2F985 => array(0x813E), 0x2F986 => array(0x5AB5), 0x2F987 => array(0x267A7),
3339
+					0x2F988 => array(0x267B5), 0x2F989 => array(0x23393), 0x2F98A => array(0x2339C),
3340
+					0x2F98B => array(0x8201), 0x2F98C => array(0x8204), 0x2F98D => array(0x8F9E),
3341
+					0x2F98E => array(0x446B), 0x2F98F => array(0x8291), 0x2F990 => array(0x828B),
3342
+					0x2F991 => array(0x829D), 0x2F992 => array(0x52B3), 0x2F993 => array(0x82B1),
3343
+					0x2F994 => array(0x82B3), 0x2F995 => array(0x82BD), 0x2F996 => array(0x82E6),
3344
+					0x2F997 => array(0x26B3C), 0x2F998 => array(0x82E5), 0x2F999 => array(0x831D),
3345
+					0x2F99A => array(0x8363), 0x2F99B => array(0x83AD), 0x2F99C => array(0x8323),
3346
+					0x2F99D => array(0x83BD), 0x2F99E => array(0x83E7), 0x2F99F => array(0x8457),
3347
+					0x2F9A0 => array(0x8353), 0x2F9A1 => array(0x83CA), 0x2F9A2 => array(0x83CC),
3348
+					0x2F9A3 => array(0x83DC), 0x2F9A4 => array(0x26C36), 0x2F9A5 => array(0x26D6B),
3349
+					0x2F9A6 => array(0x26CD5), 0x2F9A7 => array(0x452B), 0x2F9A8 => array(0x84F1),
3350
+					0x2F9A9 => array(0x84F3), 0x2F9AA => array(0x8516), 0x2F9AB => array(0x273CA),
3351
+					0x2F9AC => array(0x8564), 0x2F9AD => array(0x26F2C), 0x2F9AE => array(0x455D),
3352
+					0x2F9AF => array(0x4561), 0x2F9B0 => array(0x26FB1), 0x2F9B1 => array(0x270D2),
3353
+					0x2F9B2 => array(0x456B), 0x2F9B3 => array(0x8650), 0x2F9B4 => array(0x865C),
3354
+					0x2F9B5 => array(0x8667), 0x2F9B6 => array(0x8669), 0x2F9B7 => array(0x86A9),
3355
+					0x2F9B8 => array(0x8688), 0x2F9B9 => array(0x870E), 0x2F9BA => array(0x86E2),
3356
+					0x2F9BB => array(0x8779), 0x2F9BC => array(0x8728), 0x2F9BD => array(0x876B),
3357
+					0x2F9BE => array(0x8786), 0x2F9C0 => array(0x87E1), 0x2F9C1 => array(0x8801),
3358
+					0x2F9C2 => array(0x45F9), 0x2F9C3 => array(0x8860), 0x2F9C4 => array(0x8863),
3359
+					0x2F9C5 => array(0x27667), 0x2F9C6 => array(0x88D7), 0x2F9C7 => array(0x88DE),
3360
+					0x2F9C8 => array(0x4635), 0x2F9C9 => array(0x88FA), 0x2F9CA => array(0x34BB),
3361
+					0x2F9CB => array(0x278AE), 0x2F9CC => array(0x27966), 0x2F9CD => array(0x46BE),
3362
+					0x2F9CE => array(0x46C7), 0x2F9CF => array(0x8AA0), 0x2F9D0 => array(0x8AED),
3363
+					0x2F9D1 => array(0x8B8A), 0x2F9D2 => array(0x8C55), 0x2F9D3 => array(0x27CA8),
3364
+					0x2F9D4 => array(0x8CAB), 0x2F9D5 => array(0x8CC1), 0x2F9D6 => array(0x8D1B),
3365
+					0x2F9D7 => array(0x8D77), 0x2F9D8 => array(0x27F2F), 0x2F9D9 => array(0x20804),
3366
+					0x2F9DA => array(0x8DCB), 0x2F9DB => array(0x8DBC), 0x2F9DC => array(0x8DF0),
3367
+					0x2F9DD => array(0x208DE), 0x2F9DE => array(0x8ED4), 0x2F9DF => array(0x8F38),
3368
+					0x2F9E0 => array(0x285D2), 0x2F9E1 => array(0x285ED), 0x2F9E2 => array(0x9094),
3369
+					0x2F9E3 => array(0x90F1), 0x2F9E4 => array(0x9111), 0x2F9E5 => array(0x2872E),
3370
+					0x2F9E6 => array(0x911B), 0x2F9E7 => array(0x9238), 0x2F9E8 => array(0x92D7),
3371
+					0x2F9E9 => array(0x92D8), 0x2F9EA => array(0x927C), 0x2F9EB => array(0x93F9),
3372
+					0x2F9EC => array(0x9415), 0x2F9ED => array(0x28BFA), 0x2F9EE => array(0x958B),
3373
+					0x2F9EF => array(0x4995), 0x2F9F0 => array(0x95B7), 0x2F9F1 => array(0x28D77),
3374
+					0x2F9F2 => array(0x49E6), 0x2F9F3 => array(0x96C3), 0x2F9F4 => array(0x5DB2),
3375
+					0x2F9F5 => array(0x9723), 0x2F9F6 => array(0x29145), 0x2F9F7 => array(0x2921A),
3376
+					0x2F9F8 => array(0x4A6E), 0x2F9F9 => array(0x4A76), 0x2F9FA => array(0x97E0),
3377
+					0x2F9FB => array(0x2940A), 0x2F9FC => array(0x4AB2), 0x2F9FD => array(0x29496),
3378
+					0x2F9FE => array(0x980B), 0x2F9FF => array(0x980B), 0x2FA00 => array(0x9829),
3379
+					0x2FA01 => array(0x295B6), 0x2FA02 => array(0x98E2), 0x2FA03 => array(0x4B33),
3380
+					0x2FA04 => array(0x9929), 0x2FA05 => array(0x99A7), 0x2FA06 => array(0x99C2),
3381
+					0x2FA07 => array(0x99FE), 0x2FA08 => array(0x4BCE), 0x2FA09 => array(0x29B30),
3382
+					0x2FA0A => array(0x9B12), 0x2FA0B => array(0x9C40), 0x2FA0C => array(0x9CFD),
3383
+					0x2FA0D => array(0x4CCE), 0x2FA0E => array(0x4CED), 0x2FA0F => array(0x9D67),
3384
+					0x2FA10 => array(0x2A0CE), 0x2FA11 => array(0x4CF8), 0x2FA12 => array(0x2A105),
3385
+					0x2FA13 => array(0x2A20E), 0x2FA14 => array(0x2A291), 0x2FA15 => array(0x9EBB),
3386
+					0x2FA16 => array(0x4D56), 0x2FA17 => array(0x9EF9), 0x2FA18 => array(0x9EFE),
3387
+					0x2FA19 => array(0x9F05), 0x2FA1A => array(0x9F0F), 0x2FA1B => array(0x9F16),
3388
+					0x2FA1C => array(0x9F3B), 0x2FA1D => array(0x2A600)
3389
+			),
3390
+			'norm_combcls' => array(0x334 => 1, 0x335 => 1, 0x336 => 1, 0x337 => 1,
3391
+					0x338 => 1, 0x93C => 7, 0x9BC => 7, 0xA3C => 7, 0xABC => 7,
3392
+					0xB3C => 7, 0xCBC => 7, 0x1037 => 7, 0x3099 => 8, 0x309A => 8,
3393
+					0x94D => 9, 0x9CD => 9, 0xA4D => 9, 0xACD => 9, 0xB4D => 9,
3394
+					0xBCD => 9, 0xC4D => 9, 0xCCD => 9, 0xD4D => 9, 0xDCA => 9,
3395
+					0xE3A => 9, 0xF84 => 9, 0x1039 => 9, 0x1714 => 9, 0x1734 => 9,
3396
+					0x17D2 => 9, 0x5B0 => 10, 0x5B1 => 11, 0x5B2 => 12, 0x5B3 => 13,
3397
+					0x5B4 => 14, 0x5B5 => 15, 0x5B6 => 16, 0x5B7 => 17, 0x5B8 => 18,
3398
+					0x5B9 => 19, 0x5BB => 20, 0x5Bc => 21, 0x5BD => 22, 0x5BF => 23,
3399
+					0x5C1 => 24, 0x5C2 => 25, 0xFB1E => 26, 0x64B => 27, 0x64C => 28,
3400
+					0x64D => 29, 0x64E => 30, 0x64F => 31, 0x650 => 32, 0x651 => 33,
3401
+					0x652 => 34, 0x670 => 35, 0x711 => 36, 0xC55 => 84, 0xC56 => 91,
3402
+					0xE38 => 103, 0xE39 => 103, 0xE48 => 107, 0xE49 => 107, 0xE4A => 107,
3403
+					0xE4B => 107, 0xEB8 => 118, 0xEB9 => 118, 0xEC8 => 122, 0xEC9 => 122,
3404
+					0xECA => 122, 0xECB => 122, 0xF71 => 129, 0xF72 => 130, 0xF7A => 130,
3405
+					0xF7B => 130, 0xF7C => 130, 0xF7D => 130, 0xF80 => 130, 0xF74 => 132,
3406
+					0x321 => 202, 0x322 => 202, 0x327 => 202, 0x328 => 202, 0x31B => 216,
3407
+					0xF39 => 216, 0x1D165 => 216, 0x1D166 => 216, 0x1D16E => 216, 0x1D16F => 216,
3408
+					0x1D170 => 216, 0x1D171 => 216, 0x1D172 => 216, 0x302A => 218, 0x316 => 220,
3409
+					0x317 => 220, 0x318 => 220, 0x319 => 220, 0x31C => 220, 0x31D => 220,
3410
+					0x31E => 220, 0x31F => 220, 0x320 => 220, 0x323 => 220, 0x324 => 220,
3411
+					0x325 => 220, 0x326 => 220, 0x329 => 220, 0x32A => 220, 0x32B => 220,
3412
+					0x32C => 220, 0x32D => 220, 0x32E => 220, 0x32F => 220, 0x330 => 220,
3413
+					0x331 => 220, 0x332 => 220, 0x333 => 220, 0x339 => 220, 0x33A => 220,
3414
+					0x33B => 220, 0x33C => 220, 0x347 => 220, 0x348 => 220, 0x349 => 220,
3415
+					0x34D => 220, 0x34E => 220, 0x353 => 220, 0x354 => 220, 0x355 => 220,
3416
+					0x356 => 220, 0x591 => 220, 0x596 => 220, 0x59B => 220, 0x5A3 => 220,
3417
+					0x5A4 => 220, 0x5A5 => 220, 0x5A6 => 220, 0x5A7 => 220, 0x5AA => 220,
3418
+					0x655 => 220, 0x656 => 220, 0x6E3 => 220, 0x6EA => 220, 0x6ED => 220,
3419
+					0x731 => 220, 0x734 => 220, 0x737 => 220, 0x738 => 220, 0x739 => 220,
3420
+					0x73B => 220, 0x73C => 220, 0x73E => 220, 0x742 => 220, 0x744 => 220,
3421
+					0x746 => 220, 0x748 => 220, 0x952 => 220, 0xF18 => 220, 0xF19 => 220,
3422
+					0xF35 => 220, 0xF37 => 220, 0xFC6 => 220, 0x193B => 220, 0x20E8 => 220,
3423
+					0x1D17B => 220, 0x1D17C => 220, 0x1D17D => 220, 0x1D17E => 220, 0x1D17F => 220,
3424
+					0x1D180 => 220, 0x1D181 => 220, 0x1D182 => 220, 0x1D18A => 220, 0x1D18B => 220,
3425
+					0x59A => 222, 0x5AD => 222, 0x1929 => 222, 0x302D => 222, 0x302E => 224,
3426
+					0x302F => 224, 0x1D16D => 226, 0x5AE => 228, 0x18A9 => 228, 0x302B => 228,
3427
+					0x300 => 230, 0x301 => 230, 0x302 => 230, 0x303 => 230, 0x304 => 230,
3428
+					0x305 => 230, 0x306 => 230, 0x307 => 230, 0x308 => 230, 0x309 => 230,
3429
+					0x30A => 230, 0x30B => 230, 0x30C => 230, 0x30D => 230, 0x30E => 230,
3430
+					0x30F => 230, 0x310 => 230, 0x311 => 230, 0x312 => 230, 0x313 => 230,
3431
+					0x314 => 230, 0x33D => 230, 0x33E => 230, 0x33F => 230, 0x340 => 230,
3432
+					0x341 => 230, 0x342 => 230, 0x343 => 230, 0x344 => 230, 0x346 => 230,
3433
+					0x34A => 230, 0x34B => 230, 0x34C => 230, 0x350 => 230, 0x351 => 230,
3434
+					0x352 => 230, 0x357 => 230, 0x363 => 230, 0x364 => 230, 0x365 => 230,
3435
+					0x366 => 230, 0x367 => 230, 0x368 => 230, 0x369 => 230, 0x36A => 230,
3436
+					0x36B => 230, 0x36C => 230, 0x36D => 230, 0x36E => 230, 0x36F => 230,
3437
+					0x483 => 230, 0x484 => 230, 0x485 => 230, 0x486 => 230, 0x592 => 230,
3438
+					0x593 => 230, 0x594 => 230, 0x595 => 230, 0x597 => 230, 0x598 => 230,
3439
+					0x599 => 230, 0x59C => 230, 0x59D => 230, 0x59E => 230, 0x59F => 230,
3440
+					0x5A0 => 230, 0x5A1 => 230, 0x5A8 => 230, 0x5A9 => 230, 0x5AB => 230,
3441
+					0x5AC => 230, 0x5AF => 230, 0x5C4 => 230, 0x610 => 230, 0x611 => 230,
3442
+					0x612 => 230, 0x613 => 230, 0x614 => 230, 0x615 => 230, 0x653 => 230,
3443
+					0x654 => 230, 0x657 => 230, 0x658 => 230, 0x6D6 => 230, 0x6D7 => 230,
3444
+					0x6D8 => 230, 0x6D9 => 230, 0x6DA => 230, 0x6DB => 230, 0x6DC => 230,
3445
+					0x6DF => 230, 0x6E0 => 230, 0x6E1 => 230, 0x6E2 => 230, 0x6E4 => 230,
3446
+					0x6E7 => 230, 0x6E8 => 230, 0x6EB => 230, 0x6EC => 230, 0x730 => 230,
3447
+					0x732 => 230, 0x733 => 230, 0x735 => 230, 0x736 => 230, 0x73A => 230,
3448
+					0x73D => 230, 0x73F => 230, 0x740 => 230, 0x741 => 230, 0x743 => 230,
3449
+					0x745 => 230, 0x747 => 230, 0x749 => 230, 0x74A => 230, 0x951 => 230,
3450
+					0x953 => 230, 0x954 => 230, 0xF82 => 230, 0xF83 => 230, 0xF86 => 230,
3451
+					0xF87 => 230, 0x170D => 230, 0x193A => 230, 0x20D0 => 230, 0x20D1 => 230,
3452
+					0x20D4 => 230, 0x20D5 => 230, 0x20D6 => 230, 0x20D7 => 230, 0x20DB => 230,
3453
+					0x20DC => 230, 0x20E1 => 230, 0x20E7 => 230, 0x20E9 => 230, 0xFE20 => 230,
3454
+					0xFE21 => 230, 0xFE22 => 230, 0xFE23 => 230, 0x1D185 => 230, 0x1D186 => 230,
3455
+					0x1D187 => 230, 0x1D189 => 230, 0x1D188 => 230, 0x1D1AA => 230, 0x1D1AB => 230,
3456
+					0x1D1AC => 230, 0x1D1AD => 230, 0x315 => 232, 0x31A => 232, 0x302C => 232,
3457
+					0x35F => 233, 0x362 => 233, 0x35D => 234, 0x35E => 234, 0x360 => 234,
3458
+					0x361 => 234, 0x345 => 240
3459
+			)
3460
+	);
3461 3461
 }
3462 3462
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +24 added lines, -27 removed lines patch added patch discarded remove patch
@@ -73,16 +73,16 @@  discard block
 block discarded – undo
73 73
     protected $_lcount = 19;
74 74
     protected $_vcount = 21;
75 75
     protected $_tcount = 28;
76
-    protected $_ncount = 588;   // _vcount * _tcount
76
+    protected $_ncount = 588; // _vcount * _tcount
77 77
     protected $_scount = 11172; // _lcount * _tcount * _vcount
78 78
     protected $_error = false;
79 79
     protected static $_mb_string_overload = null;
80 80
     // See {@link set_paramter()} for details of how to change the following
81 81
     // settings from within your script / application
82
-    protected $_api_encoding = 'utf8';   // Default input charset is UTF-8
83
-    protected $_allow_overlong = false;  // Overlong UTF-8 encodings are forbidden
84
-    protected $_strict_mode = false;     // Behave strict or not
85
-    protected $_idn_version = 2003;      // Can be either 2003 (old, default) or 2008
82
+    protected $_api_encoding = 'utf8'; // Default input charset is UTF-8
83
+    protected $_allow_overlong = false; // Overlong UTF-8 encodings are forbidden
84
+    protected $_strict_mode = false; // Behave strict or not
85
+    protected $_idn_version = 2003; // Can be either 2003 (old, default) or 2008
86 86
 
87 87
     /**
88 88
      * the constructor
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
 
108 108
     public function get_version()
109 109
     {
110
-        return $this->version.'-'.$this->sub_version;
110
+        return $this->version . '-' . $this->sub_version;
111 111
     }
112 112
 
113 113
     /**
@@ -241,12 +241,12 @@  discard block
 block discarded – undo
241 241
                     }
242 242
                 }
243 243
                 $parsed['host'] = join('.', $arr);
244
-                $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
245
-                        (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
246
-                        $parsed['host'].
247
-                        (empty($parsed['port']) ? '' : ':' . $parsed['port']).
248
-                        (empty($parsed['path']) ? '' : $parsed['path']).
249
-                        (empty($parsed['query']) ? '' : '?' . $parsed['query']).
244
+                $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')) .
245
+                        (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@') .
246
+                        $parsed['host'] .
247
+                        (empty($parsed['port']) ? '' : ':' . $parsed['port']) .
248
+                        (empty($parsed['path']) ? '' : $parsed['path']) .
249
+                        (empty($parsed['query']) ? '' : '?' . $parsed['query']) .
250 250
                         (empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
251 251
             } else { // parse_url seems to have failed, try without it
252 252
                 $arr = explode('.', $input);
@@ -265,8 +265,8 @@  discard block
 block discarded – undo
265 265
         // The output is UTF-8 by default, other output formats need conversion here
266 266
         // If one time encoding is given, use this, else the objects property
267 267
         switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) {
268
-            case 'utf8':        return $return; // break;
269
-            case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return));  // break;
268
+            case 'utf8' : return $return; // break;
269
+            case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return)); // break;
270 270
             case 'ucs4_array':  return $this->_utf8_to_ucs4($return); // break;
271 271
             default:            $this->_error('Unsupported output format'); return false;
272 272
         }
@@ -283,8 +283,7 @@  discard block
 block discarded – undo
283 283
         // Forcing conversion of input to UCS4 array
284 284
         // If one time encoding is given, use this, else the objects property
285 285
         switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) {
286
-            case 'utf8':
287
-                $decoded = $this->_utf8_to_ucs4($decoded);
286
+            case 'utf8' : $decoded = $this->_utf8_to_ucs4($decoded);
288 287
                 break;
289 288
             case 'ucs4_string':
290 289
                 $decoded = $this->_ucs4_string_to_ucs4($decoded);
@@ -380,12 +379,12 @@  discard block
 block discarded – undo
380 379
             }
381 380
         }
382 381
         $parsed['host'] = join('.', $arr);
383
-        $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
384
-                (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
385
-                $parsed['host'].
386
-                (empty($parsed['port']) ? '' : ':' . $parsed['port']).
387
-                (empty($parsed['path']) ? '' : $parsed['path']).
388
-                (empty($parsed['query']) ? '' : '?' . $parsed['query']).
382
+        $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')) .
383
+                (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@') .
384
+                $parsed['host'] .
385
+                (empty($parsed['port']) ? '' : ':' . $parsed['port']) .
386
+                (empty($parsed['path']) ? '' : $parsed['path']) .
387
+                (empty($parsed['query']) ? '' : '?' . $parsed['query']) .
389 388
                 (empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
390 389
         return $return;
391 390
     }
@@ -439,8 +438,7 @@  discard block
 block discarded – undo
439 438
             for ($old_idx = $idx, $w = 1, $k = $this->_base; 1; $k += $this->_base) {
440 439
                 $digit = $this->_decode_digit($encoded{$enco_idx++});
441 440
                 $idx += $digit * $w;
442
-                $t = ($k <= $bias) ? $this->_tmin :
443
-                        (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
441
+                $t = ($k <= $bias) ? $this->_tmin : (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
444 442
                 if ($digit < $t) {
445 443
                     break;
446 444
                 }
@@ -540,8 +538,7 @@  discard block
 block discarded – undo
540 538
                     $delta++;
541 539
                 } elseif ($decoded[$i] == $cur_code) {
542 540
                     for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) {
543
-                        $t = ($k <= $bias) ? $this->_tmin :
544
-                                (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
541
+                        $t = ($k <= $bias) ? $this->_tmin : (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
545 542
                         if ($q < $t) {
546 543
                             break;
547 544
                         }
@@ -995,7 +992,7 @@  discard block
 block discarded – undo
995 992
                 $out_len++;
996 993
                 $output[$out_len] = 0;
997 994
             }
998
-            $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
995
+            $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4)));
999 996
         }
1000 997
         return $output;
1001 998
     }
Please login to merge, or discard this patch.