File size: 118,208 Bytes
7d134e4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
# -*- coding: utf-8 -*-
# The tables below are taken from
# https://github.com/adobe-type-tools/agl-aglfn/raw/4036a9ca80a62f64f9de4f7321a9a045ad0ecfd6/glyphlist.txt
# and
# https://github.com/adobe-type-tools/agl-aglfn/raw/4036a9ca80a62f64f9de4f7321a9a045ad0ecfd6/aglfn.txt
"""

Interface to the Adobe Glyph List



This module exists to convert glyph names from the Adobe Glyph List

to their Unicode equivalents. Example usage:



	>>> from fontTools.agl import toUnicode

	>>> toUnicode("nahiragana")

	'な'



It also contains two dictionaries, ``UV2AGL`` and ``AGL2UV``, which map from

Unicode codepoints to AGL names and vice versa:



	>>> import fontTools

	>>> fontTools.agl.UV2AGL[ord("?")]

	'question'

	>>> fontTools.agl.AGL2UV["wcircumflex"]

	373



This is used by fontTools when it has to construct glyph names for a font which

doesn't include any (e.g. format 3.0 post tables).

"""

from fontTools.misc.textTools import tostr
import re


_aglText = """\

# -----------------------------------------------------------

# Copyright 2002-2019 Adobe (http://www.adobe.com/).

#

# Redistribution and use in source and binary forms, with or

# without modification, are permitted provided that the

# following conditions are met:

#

# Redistributions of source code must retain the above

# copyright notice, this list of conditions and the following

# disclaimer.

#

# Redistributions in binary form must reproduce the above

# copyright notice, this list of conditions and the following

# disclaimer in the documentation and/or other materials

# provided with the distribution.

#

# Neither the name of Adobe nor the names of its contributors

# may be used to endorse or promote products derived from this

# software without specific prior written permission.

#

# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND

# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,

# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR

# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT

# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN

# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# -----------------------------------------------------------

# Name:          Adobe Glyph List

# Table version: 2.0

# Date:          September 20, 2002

# URL:           https://github.com/adobe-type-tools/agl-aglfn

#

# Format: two semicolon-delimited fields:

#   (1) glyph name--upper/lowercase letters and digits

#   (2) Unicode scalar value--four uppercase hexadecimal digits

#

A;0041

AE;00C6

AEacute;01FC

AEmacron;01E2

AEsmall;F7E6

Aacute;00C1

Aacutesmall;F7E1

Abreve;0102

Abreveacute;1EAE

Abrevecyrillic;04D0

Abrevedotbelow;1EB6

Abrevegrave;1EB0

Abrevehookabove;1EB2

Abrevetilde;1EB4

Acaron;01CD

Acircle;24B6

Acircumflex;00C2

Acircumflexacute;1EA4

Acircumflexdotbelow;1EAC

Acircumflexgrave;1EA6

Acircumflexhookabove;1EA8

Acircumflexsmall;F7E2

Acircumflextilde;1EAA

Acute;F6C9

Acutesmall;F7B4

Acyrillic;0410

Adblgrave;0200

Adieresis;00C4

Adieresiscyrillic;04D2

Adieresismacron;01DE

Adieresissmall;F7E4

Adotbelow;1EA0

Adotmacron;01E0

Agrave;00C0

Agravesmall;F7E0

Ahookabove;1EA2

Aiecyrillic;04D4

Ainvertedbreve;0202

Alpha;0391

Alphatonos;0386

Amacron;0100

Amonospace;FF21

Aogonek;0104

Aring;00C5

Aringacute;01FA

Aringbelow;1E00

Aringsmall;F7E5

Asmall;F761

Atilde;00C3

Atildesmall;F7E3

Aybarmenian;0531

B;0042

Bcircle;24B7

Bdotaccent;1E02

Bdotbelow;1E04

Becyrillic;0411

Benarmenian;0532

Beta;0392

Bhook;0181

Blinebelow;1E06

Bmonospace;FF22

Brevesmall;F6F4

Bsmall;F762

Btopbar;0182

C;0043

Caarmenian;053E

Cacute;0106

Caron;F6CA

Caronsmall;F6F5

Ccaron;010C

Ccedilla;00C7

Ccedillaacute;1E08

Ccedillasmall;F7E7

Ccircle;24B8

Ccircumflex;0108

Cdot;010A

Cdotaccent;010A

Cedillasmall;F7B8

Chaarmenian;0549

Cheabkhasiancyrillic;04BC

Checyrillic;0427

Chedescenderabkhasiancyrillic;04BE

Chedescendercyrillic;04B6

Chedieresiscyrillic;04F4

Cheharmenian;0543

Chekhakassiancyrillic;04CB

Cheverticalstrokecyrillic;04B8

Chi;03A7

Chook;0187

Circumflexsmall;F6F6

Cmonospace;FF23

Coarmenian;0551

Csmall;F763

D;0044

DZ;01F1

DZcaron;01C4

Daarmenian;0534

Dafrican;0189

Dcaron;010E

Dcedilla;1E10

Dcircle;24B9

Dcircumflexbelow;1E12

Dcroat;0110

Ddotaccent;1E0A

Ddotbelow;1E0C

Decyrillic;0414

Deicoptic;03EE

Delta;2206

Deltagreek;0394

Dhook;018A

Dieresis;F6CB

DieresisAcute;F6CC

DieresisGrave;F6CD

Dieresissmall;F7A8

Digammagreek;03DC

Djecyrillic;0402

Dlinebelow;1E0E

Dmonospace;FF24

Dotaccentsmall;F6F7

Dslash;0110

Dsmall;F764

Dtopbar;018B

Dz;01F2

Dzcaron;01C5

Dzeabkhasiancyrillic;04E0

Dzecyrillic;0405

Dzhecyrillic;040F

E;0045

Eacute;00C9

Eacutesmall;F7E9

Ebreve;0114

Ecaron;011A

Ecedillabreve;1E1C

Echarmenian;0535

Ecircle;24BA

Ecircumflex;00CA

Ecircumflexacute;1EBE

Ecircumflexbelow;1E18

Ecircumflexdotbelow;1EC6

Ecircumflexgrave;1EC0

Ecircumflexhookabove;1EC2

Ecircumflexsmall;F7EA

Ecircumflextilde;1EC4

Ecyrillic;0404

Edblgrave;0204

Edieresis;00CB

Edieresissmall;F7EB

Edot;0116

Edotaccent;0116

Edotbelow;1EB8

Efcyrillic;0424

Egrave;00C8

Egravesmall;F7E8

Eharmenian;0537

Ehookabove;1EBA

Eightroman;2167

Einvertedbreve;0206

Eiotifiedcyrillic;0464

Elcyrillic;041B

Elevenroman;216A

Emacron;0112

Emacronacute;1E16

Emacrongrave;1E14

Emcyrillic;041C

Emonospace;FF25

Encyrillic;041D

Endescendercyrillic;04A2

Eng;014A

Enghecyrillic;04A4

Enhookcyrillic;04C7

Eogonek;0118

Eopen;0190

Epsilon;0395

Epsilontonos;0388

Ercyrillic;0420

Ereversed;018E

Ereversedcyrillic;042D

Escyrillic;0421

Esdescendercyrillic;04AA

Esh;01A9

Esmall;F765

Eta;0397

Etarmenian;0538

Etatonos;0389

Eth;00D0

Ethsmall;F7F0

Etilde;1EBC

Etildebelow;1E1A

Euro;20AC

Ezh;01B7

Ezhcaron;01EE

Ezhreversed;01B8

F;0046

Fcircle;24BB

Fdotaccent;1E1E

Feharmenian;0556

Feicoptic;03E4

Fhook;0191

Fitacyrillic;0472

Fiveroman;2164

Fmonospace;FF26

Fourroman;2163

Fsmall;F766

G;0047

GBsquare;3387

Gacute;01F4

Gamma;0393

Gammaafrican;0194

Gangiacoptic;03EA

Gbreve;011E

Gcaron;01E6

Gcedilla;0122

Gcircle;24BC

Gcircumflex;011C

Gcommaaccent;0122

Gdot;0120

Gdotaccent;0120

Gecyrillic;0413

Ghadarmenian;0542

Ghemiddlehookcyrillic;0494

Ghestrokecyrillic;0492

Gheupturncyrillic;0490

Ghook;0193

Gimarmenian;0533

Gjecyrillic;0403

Gmacron;1E20

Gmonospace;FF27

Grave;F6CE

Gravesmall;F760

Gsmall;F767

Gsmallhook;029B

Gstroke;01E4

H;0048

H18533;25CF

H18543;25AA

H18551;25AB

H22073;25A1

HPsquare;33CB

Haabkhasiancyrillic;04A8

Hadescendercyrillic;04B2

Hardsigncyrillic;042A

Hbar;0126

Hbrevebelow;1E2A

Hcedilla;1E28

Hcircle;24BD

Hcircumflex;0124

Hdieresis;1E26

Hdotaccent;1E22

Hdotbelow;1E24

Hmonospace;FF28

Hoarmenian;0540

Horicoptic;03E8

Hsmall;F768

Hungarumlaut;F6CF

Hungarumlautsmall;F6F8

Hzsquare;3390

I;0049

IAcyrillic;042F

IJ;0132

IUcyrillic;042E

Iacute;00CD

Iacutesmall;F7ED

Ibreve;012C

Icaron;01CF

Icircle;24BE

Icircumflex;00CE

Icircumflexsmall;F7EE

Icyrillic;0406

Idblgrave;0208

Idieresis;00CF

Idieresisacute;1E2E

Idieresiscyrillic;04E4

Idieresissmall;F7EF

Idot;0130

Idotaccent;0130

Idotbelow;1ECA

Iebrevecyrillic;04D6

Iecyrillic;0415

Ifraktur;2111

Igrave;00CC

Igravesmall;F7EC

Ihookabove;1EC8

Iicyrillic;0418

Iinvertedbreve;020A

Iishortcyrillic;0419

Imacron;012A

Imacroncyrillic;04E2

Imonospace;FF29

Iniarmenian;053B

Iocyrillic;0401

Iogonek;012E

Iota;0399

Iotaafrican;0196

Iotadieresis;03AA

Iotatonos;038A

Ismall;F769

Istroke;0197

Itilde;0128

Itildebelow;1E2C

Izhitsacyrillic;0474

Izhitsadblgravecyrillic;0476

J;004A

Jaarmenian;0541

Jcircle;24BF

Jcircumflex;0134

Jecyrillic;0408

Jheharmenian;054B

Jmonospace;FF2A

Jsmall;F76A

K;004B

KBsquare;3385

KKsquare;33CD

Kabashkircyrillic;04A0

Kacute;1E30

Kacyrillic;041A

Kadescendercyrillic;049A

Kahookcyrillic;04C3

Kappa;039A

Kastrokecyrillic;049E

Kaverticalstrokecyrillic;049C

Kcaron;01E8

Kcedilla;0136

Kcircle;24C0

Kcommaaccent;0136

Kdotbelow;1E32

Keharmenian;0554

Kenarmenian;053F

Khacyrillic;0425

Kheicoptic;03E6

Khook;0198

Kjecyrillic;040C

Klinebelow;1E34

Kmonospace;FF2B

Koppacyrillic;0480

Koppagreek;03DE

Ksicyrillic;046E

Ksmall;F76B

L;004C

LJ;01C7

LL;F6BF

Lacute;0139

Lambda;039B

Lcaron;013D

Lcedilla;013B

Lcircle;24C1

Lcircumflexbelow;1E3C

Lcommaaccent;013B

Ldot;013F

Ldotaccent;013F

Ldotbelow;1E36

Ldotbelowmacron;1E38

Liwnarmenian;053C

Lj;01C8

Ljecyrillic;0409

Llinebelow;1E3A

Lmonospace;FF2C

Lslash;0141

Lslashsmall;F6F9

Lsmall;F76C

M;004D

MBsquare;3386

Macron;F6D0

Macronsmall;F7AF

Macute;1E3E

Mcircle;24C2

Mdotaccent;1E40

Mdotbelow;1E42

Menarmenian;0544

Mmonospace;FF2D

Msmall;F76D

Mturned;019C

Mu;039C

N;004E

NJ;01CA

Nacute;0143

Ncaron;0147

Ncedilla;0145

Ncircle;24C3

Ncircumflexbelow;1E4A

Ncommaaccent;0145

Ndotaccent;1E44

Ndotbelow;1E46

Nhookleft;019D

Nineroman;2168

Nj;01CB

Njecyrillic;040A

Nlinebelow;1E48

Nmonospace;FF2E

Nowarmenian;0546

Nsmall;F76E

Ntilde;00D1

Ntildesmall;F7F1

Nu;039D

O;004F

OE;0152

OEsmall;F6FA

Oacute;00D3

Oacutesmall;F7F3

Obarredcyrillic;04E8

Obarreddieresiscyrillic;04EA

Obreve;014E

Ocaron;01D1

Ocenteredtilde;019F

Ocircle;24C4

Ocircumflex;00D4

Ocircumflexacute;1ED0

Ocircumflexdotbelow;1ED8

Ocircumflexgrave;1ED2

Ocircumflexhookabove;1ED4

Ocircumflexsmall;F7F4

Ocircumflextilde;1ED6

Ocyrillic;041E

Odblacute;0150

Odblgrave;020C

Odieresis;00D6

Odieresiscyrillic;04E6

Odieresissmall;F7F6

Odotbelow;1ECC

Ogoneksmall;F6FB

Ograve;00D2

Ogravesmall;F7F2

Oharmenian;0555

Ohm;2126

Ohookabove;1ECE

Ohorn;01A0

Ohornacute;1EDA

Ohorndotbelow;1EE2

Ohorngrave;1EDC

Ohornhookabove;1EDE

Ohorntilde;1EE0

Ohungarumlaut;0150

Oi;01A2

Oinvertedbreve;020E

Omacron;014C

Omacronacute;1E52

Omacrongrave;1E50

Omega;2126

Omegacyrillic;0460

Omegagreek;03A9

Omegaroundcyrillic;047A

Omegatitlocyrillic;047C

Omegatonos;038F

Omicron;039F

Omicrontonos;038C

Omonospace;FF2F

Oneroman;2160

Oogonek;01EA

Oogonekmacron;01EC

Oopen;0186

Oslash;00D8

Oslashacute;01FE

Oslashsmall;F7F8

Osmall;F76F

Ostrokeacute;01FE

Otcyrillic;047E

Otilde;00D5

Otildeacute;1E4C

Otildedieresis;1E4E

Otildesmall;F7F5

P;0050

Pacute;1E54

Pcircle;24C5

Pdotaccent;1E56

Pecyrillic;041F

Peharmenian;054A

Pemiddlehookcyrillic;04A6

Phi;03A6

Phook;01A4

Pi;03A0

Piwrarmenian;0553

Pmonospace;FF30

Psi;03A8

Psicyrillic;0470

Psmall;F770

Q;0051

Qcircle;24C6

Qmonospace;FF31

Qsmall;F771

R;0052

Raarmenian;054C

Racute;0154

Rcaron;0158

Rcedilla;0156

Rcircle;24C7

Rcommaaccent;0156

Rdblgrave;0210

Rdotaccent;1E58

Rdotbelow;1E5A

Rdotbelowmacron;1E5C

Reharmenian;0550

Rfraktur;211C

Rho;03A1

Ringsmall;F6FC

Rinvertedbreve;0212

Rlinebelow;1E5E

Rmonospace;FF32

Rsmall;F772

Rsmallinverted;0281

Rsmallinvertedsuperior;02B6

S;0053

SF010000;250C

SF020000;2514

SF030000;2510

SF040000;2518

SF050000;253C

SF060000;252C

SF070000;2534

SF080000;251C

SF090000;2524

SF100000;2500

SF110000;2502

SF190000;2561

SF200000;2562

SF210000;2556

SF220000;2555

SF230000;2563

SF240000;2551

SF250000;2557

SF260000;255D

SF270000;255C

SF280000;255B

SF360000;255E

SF370000;255F

SF380000;255A

SF390000;2554

SF400000;2569

SF410000;2566

SF420000;2560

SF430000;2550

SF440000;256C

SF450000;2567

SF460000;2568

SF470000;2564

SF480000;2565

SF490000;2559

SF500000;2558

SF510000;2552

SF520000;2553

SF530000;256B

SF540000;256A

Sacute;015A

Sacutedotaccent;1E64

Sampigreek;03E0

Scaron;0160

Scarondotaccent;1E66

Scaronsmall;F6FD

Scedilla;015E

Schwa;018F

Schwacyrillic;04D8

Schwadieresiscyrillic;04DA

Scircle;24C8

Scircumflex;015C

Scommaaccent;0218

Sdotaccent;1E60

Sdotbelow;1E62

Sdotbelowdotaccent;1E68

Seharmenian;054D

Sevenroman;2166

Shaarmenian;0547

Shacyrillic;0428

Shchacyrillic;0429

Sheicoptic;03E2

Shhacyrillic;04BA

Shimacoptic;03EC

Sigma;03A3

Sixroman;2165

Smonospace;FF33

Softsigncyrillic;042C

Ssmall;F773

Stigmagreek;03DA

T;0054

Tau;03A4

Tbar;0166

Tcaron;0164

Tcedilla;0162

Tcircle;24C9

Tcircumflexbelow;1E70

Tcommaaccent;0162

Tdotaccent;1E6A

Tdotbelow;1E6C

Tecyrillic;0422

Tedescendercyrillic;04AC

Tenroman;2169

Tetsecyrillic;04B4

Theta;0398

Thook;01AC

Thorn;00DE

Thornsmall;F7FE

Threeroman;2162

Tildesmall;F6FE

Tiwnarmenian;054F

Tlinebelow;1E6E

Tmonospace;FF34

Toarmenian;0539

Tonefive;01BC

Tonesix;0184

Tonetwo;01A7

Tretroflexhook;01AE

Tsecyrillic;0426

Tshecyrillic;040B

Tsmall;F774

Twelveroman;216B

Tworoman;2161

U;0055

Uacute;00DA

Uacutesmall;F7FA

Ubreve;016C

Ucaron;01D3

Ucircle;24CA

Ucircumflex;00DB

Ucircumflexbelow;1E76

Ucircumflexsmall;F7FB

Ucyrillic;0423

Udblacute;0170

Udblgrave;0214

Udieresis;00DC

Udieresisacute;01D7

Udieresisbelow;1E72

Udieresiscaron;01D9

Udieresiscyrillic;04F0

Udieresisgrave;01DB

Udieresismacron;01D5

Udieresissmall;F7FC

Udotbelow;1EE4

Ugrave;00D9

Ugravesmall;F7F9

Uhookabove;1EE6

Uhorn;01AF

Uhornacute;1EE8

Uhorndotbelow;1EF0

Uhorngrave;1EEA

Uhornhookabove;1EEC

Uhorntilde;1EEE

Uhungarumlaut;0170

Uhungarumlautcyrillic;04F2

Uinvertedbreve;0216

Ukcyrillic;0478

Umacron;016A

Umacroncyrillic;04EE

Umacrondieresis;1E7A

Umonospace;FF35

Uogonek;0172

Upsilon;03A5

Upsilon1;03D2

Upsilonacutehooksymbolgreek;03D3

Upsilonafrican;01B1

Upsilondieresis;03AB

Upsilondieresishooksymbolgreek;03D4

Upsilonhooksymbol;03D2

Upsilontonos;038E

Uring;016E

Ushortcyrillic;040E

Usmall;F775

Ustraightcyrillic;04AE

Ustraightstrokecyrillic;04B0

Utilde;0168

Utildeacute;1E78

Utildebelow;1E74

V;0056

Vcircle;24CB

Vdotbelow;1E7E

Vecyrillic;0412

Vewarmenian;054E

Vhook;01B2

Vmonospace;FF36

Voarmenian;0548

Vsmall;F776

Vtilde;1E7C

W;0057

Wacute;1E82

Wcircle;24CC

Wcircumflex;0174

Wdieresis;1E84

Wdotaccent;1E86

Wdotbelow;1E88

Wgrave;1E80

Wmonospace;FF37

Wsmall;F777

X;0058

Xcircle;24CD

Xdieresis;1E8C

Xdotaccent;1E8A

Xeharmenian;053D

Xi;039E

Xmonospace;FF38

Xsmall;F778

Y;0059

Yacute;00DD

Yacutesmall;F7FD

Yatcyrillic;0462

Ycircle;24CE

Ycircumflex;0176

Ydieresis;0178

Ydieresissmall;F7FF

Ydotaccent;1E8E

Ydotbelow;1EF4

Yericyrillic;042B

Yerudieresiscyrillic;04F8

Ygrave;1EF2

Yhook;01B3

Yhookabove;1EF6

Yiarmenian;0545

Yicyrillic;0407

Yiwnarmenian;0552

Ymonospace;FF39

Ysmall;F779

Ytilde;1EF8

Yusbigcyrillic;046A

Yusbigiotifiedcyrillic;046C

Yuslittlecyrillic;0466

Yuslittleiotifiedcyrillic;0468

Z;005A

Zaarmenian;0536

Zacute;0179

Zcaron;017D

Zcaronsmall;F6FF

Zcircle;24CF

Zcircumflex;1E90

Zdot;017B

Zdotaccent;017B

Zdotbelow;1E92

Zecyrillic;0417

Zedescendercyrillic;0498

Zedieresiscyrillic;04DE

Zeta;0396

Zhearmenian;053A

Zhebrevecyrillic;04C1

Zhecyrillic;0416

Zhedescendercyrillic;0496

Zhedieresiscyrillic;04DC

Zlinebelow;1E94

Zmonospace;FF3A

Zsmall;F77A

Zstroke;01B5

a;0061

aabengali;0986

aacute;00E1

aadeva;0906

aagujarati;0A86

aagurmukhi;0A06

aamatragurmukhi;0A3E

aarusquare;3303

aavowelsignbengali;09BE

aavowelsigndeva;093E

aavowelsigngujarati;0ABE

abbreviationmarkarmenian;055F

abbreviationsigndeva;0970

abengali;0985

abopomofo;311A

abreve;0103

abreveacute;1EAF

abrevecyrillic;04D1

abrevedotbelow;1EB7

abrevegrave;1EB1

abrevehookabove;1EB3

abrevetilde;1EB5

acaron;01CE

acircle;24D0

acircumflex;00E2

acircumflexacute;1EA5

acircumflexdotbelow;1EAD

acircumflexgrave;1EA7

acircumflexhookabove;1EA9

acircumflextilde;1EAB

acute;00B4

acutebelowcmb;0317

acutecmb;0301

acutecomb;0301

acutedeva;0954

acutelowmod;02CF

acutetonecmb;0341

acyrillic;0430

adblgrave;0201

addakgurmukhi;0A71

adeva;0905

adieresis;00E4

adieresiscyrillic;04D3

adieresismacron;01DF

adotbelow;1EA1

adotmacron;01E1

ae;00E6

aeacute;01FD

aekorean;3150

aemacron;01E3

afii00208;2015

afii08941;20A4

afii10017;0410

afii10018;0411

afii10019;0412

afii10020;0413

afii10021;0414

afii10022;0415

afii10023;0401

afii10024;0416

afii10025;0417

afii10026;0418

afii10027;0419

afii10028;041A

afii10029;041B

afii10030;041C

afii10031;041D

afii10032;041E

afii10033;041F

afii10034;0420

afii10035;0421

afii10036;0422

afii10037;0423

afii10038;0424

afii10039;0425

afii10040;0426

afii10041;0427

afii10042;0428

afii10043;0429

afii10044;042A

afii10045;042B

afii10046;042C

afii10047;042D

afii10048;042E

afii10049;042F

afii10050;0490

afii10051;0402

afii10052;0403

afii10053;0404

afii10054;0405

afii10055;0406

afii10056;0407

afii10057;0408

afii10058;0409

afii10059;040A

afii10060;040B

afii10061;040C

afii10062;040E

afii10063;F6C4

afii10064;F6C5

afii10065;0430

afii10066;0431

afii10067;0432

afii10068;0433

afii10069;0434

afii10070;0435

afii10071;0451

afii10072;0436

afii10073;0437

afii10074;0438

afii10075;0439

afii10076;043A

afii10077;043B

afii10078;043C

afii10079;043D

afii10080;043E

afii10081;043F

afii10082;0440

afii10083;0441

afii10084;0442

afii10085;0443

afii10086;0444

afii10087;0445

afii10088;0446

afii10089;0447

afii10090;0448

afii10091;0449

afii10092;044A

afii10093;044B

afii10094;044C

afii10095;044D

afii10096;044E

afii10097;044F

afii10098;0491

afii10099;0452

afii10100;0453

afii10101;0454

afii10102;0455

afii10103;0456

afii10104;0457

afii10105;0458

afii10106;0459

afii10107;045A

afii10108;045B

afii10109;045C

afii10110;045E

afii10145;040F

afii10146;0462

afii10147;0472

afii10148;0474

afii10192;F6C6

afii10193;045F

afii10194;0463

afii10195;0473

afii10196;0475

afii10831;F6C7

afii10832;F6C8

afii10846;04D9

afii299;200E

afii300;200F

afii301;200D

afii57381;066A

afii57388;060C

afii57392;0660

afii57393;0661

afii57394;0662

afii57395;0663

afii57396;0664

afii57397;0665

afii57398;0666

afii57399;0667

afii57400;0668

afii57401;0669

afii57403;061B

afii57407;061F

afii57409;0621

afii57410;0622

afii57411;0623

afii57412;0624

afii57413;0625

afii57414;0626

afii57415;0627

afii57416;0628

afii57417;0629

afii57418;062A

afii57419;062B

afii57420;062C

afii57421;062D

afii57422;062E

afii57423;062F

afii57424;0630

afii57425;0631

afii57426;0632

afii57427;0633

afii57428;0634

afii57429;0635

afii57430;0636

afii57431;0637

afii57432;0638

afii57433;0639

afii57434;063A

afii57440;0640

afii57441;0641

afii57442;0642

afii57443;0643

afii57444;0644

afii57445;0645

afii57446;0646

afii57448;0648

afii57449;0649

afii57450;064A

afii57451;064B

afii57452;064C

afii57453;064D

afii57454;064E

afii57455;064F

afii57456;0650

afii57457;0651

afii57458;0652

afii57470;0647

afii57505;06A4

afii57506;067E

afii57507;0686

afii57508;0698

afii57509;06AF

afii57511;0679

afii57512;0688

afii57513;0691

afii57514;06BA

afii57519;06D2

afii57534;06D5

afii57636;20AA

afii57645;05BE

afii57658;05C3

afii57664;05D0

afii57665;05D1

afii57666;05D2

afii57667;05D3

afii57668;05D4

afii57669;05D5

afii57670;05D6

afii57671;05D7

afii57672;05D8

afii57673;05D9

afii57674;05DA

afii57675;05DB

afii57676;05DC

afii57677;05DD

afii57678;05DE

afii57679;05DF

afii57680;05E0

afii57681;05E1

afii57682;05E2

afii57683;05E3

afii57684;05E4

afii57685;05E5

afii57686;05E6

afii57687;05E7

afii57688;05E8

afii57689;05E9

afii57690;05EA

afii57694;FB2A

afii57695;FB2B

afii57700;FB4B

afii57705;FB1F

afii57716;05F0

afii57717;05F1

afii57718;05F2

afii57723;FB35

afii57793;05B4

afii57794;05B5

afii57795;05B6

afii57796;05BB

afii57797;05B8

afii57798;05B7

afii57799;05B0

afii57800;05B2

afii57801;05B1

afii57802;05B3

afii57803;05C2

afii57804;05C1

afii57806;05B9

afii57807;05BC

afii57839;05BD

afii57841;05BF

afii57842;05C0

afii57929;02BC

afii61248;2105

afii61289;2113

afii61352;2116

afii61573;202C

afii61574;202D

afii61575;202E

afii61664;200C

afii63167;066D

afii64937;02BD

agrave;00E0

agujarati;0A85

agurmukhi;0A05

ahiragana;3042

ahookabove;1EA3

aibengali;0990

aibopomofo;311E

aideva;0910

aiecyrillic;04D5

aigujarati;0A90

aigurmukhi;0A10

aimatragurmukhi;0A48

ainarabic;0639

ainfinalarabic;FECA

aininitialarabic;FECB

ainmedialarabic;FECC

ainvertedbreve;0203

aivowelsignbengali;09C8

aivowelsigndeva;0948

aivowelsigngujarati;0AC8

akatakana;30A2

akatakanahalfwidth;FF71

akorean;314F

alef;05D0

alefarabic;0627

alefdageshhebrew;FB30

aleffinalarabic;FE8E

alefhamzaabovearabic;0623

alefhamzaabovefinalarabic;FE84

alefhamzabelowarabic;0625

alefhamzabelowfinalarabic;FE88

alefhebrew;05D0

aleflamedhebrew;FB4F

alefmaddaabovearabic;0622

alefmaddaabovefinalarabic;FE82

alefmaksuraarabic;0649

alefmaksurafinalarabic;FEF0

alefmaksurainitialarabic;FEF3

alefmaksuramedialarabic;FEF4

alefpatahhebrew;FB2E

alefqamatshebrew;FB2F

aleph;2135

allequal;224C

alpha;03B1

alphatonos;03AC

amacron;0101

amonospace;FF41

ampersand;0026

ampersandmonospace;FF06

ampersandsmall;F726

amsquare;33C2

anbopomofo;3122

angbopomofo;3124

angkhankhuthai;0E5A

angle;2220

anglebracketleft;3008

anglebracketleftvertical;FE3F

anglebracketright;3009

anglebracketrightvertical;FE40

angleleft;2329

angleright;232A

angstrom;212B

anoteleia;0387

anudattadeva;0952

anusvarabengali;0982

anusvaradeva;0902

anusvaragujarati;0A82

aogonek;0105

apaatosquare;3300

aparen;249C

apostrophearmenian;055A

apostrophemod;02BC

apple;F8FF

approaches;2250

approxequal;2248

approxequalorimage;2252

approximatelyequal;2245

araeaekorean;318E

araeakorean;318D

arc;2312

arighthalfring;1E9A

aring;00E5

aringacute;01FB

aringbelow;1E01

arrowboth;2194

arrowdashdown;21E3

arrowdashleft;21E0

arrowdashright;21E2

arrowdashup;21E1

arrowdblboth;21D4

arrowdbldown;21D3

arrowdblleft;21D0

arrowdblright;21D2

arrowdblup;21D1

arrowdown;2193

arrowdownleft;2199

arrowdownright;2198

arrowdownwhite;21E9

arrowheaddownmod;02C5

arrowheadleftmod;02C2

arrowheadrightmod;02C3

arrowheadupmod;02C4

arrowhorizex;F8E7

arrowleft;2190

arrowleftdbl;21D0

arrowleftdblstroke;21CD

arrowleftoverright;21C6

arrowleftwhite;21E6

arrowright;2192

arrowrightdblstroke;21CF

arrowrightheavy;279E

arrowrightoverleft;21C4

arrowrightwhite;21E8

arrowtableft;21E4

arrowtabright;21E5

arrowup;2191

arrowupdn;2195

arrowupdnbse;21A8

arrowupdownbase;21A8

arrowupleft;2196

arrowupleftofdown;21C5

arrowupright;2197

arrowupwhite;21E7

arrowvertex;F8E6

asciicircum;005E

asciicircummonospace;FF3E

asciitilde;007E

asciitildemonospace;FF5E

ascript;0251

ascriptturned;0252

asmallhiragana;3041

asmallkatakana;30A1

asmallkatakanahalfwidth;FF67

asterisk;002A

asteriskaltonearabic;066D

asteriskarabic;066D

asteriskmath;2217

asteriskmonospace;FF0A

asterisksmall;FE61

asterism;2042

asuperior;F6E9

asymptoticallyequal;2243

at;0040

atilde;00E3

atmonospace;FF20

atsmall;FE6B

aturned;0250

aubengali;0994

aubopomofo;3120

audeva;0914

augujarati;0A94

augurmukhi;0A14

aulengthmarkbengali;09D7

aumatragurmukhi;0A4C

auvowelsignbengali;09CC

auvowelsigndeva;094C

auvowelsigngujarati;0ACC

avagrahadeva;093D

aybarmenian;0561

ayin;05E2

ayinaltonehebrew;FB20

ayinhebrew;05E2

b;0062

babengali;09AC

backslash;005C

backslashmonospace;FF3C

badeva;092C

bagujarati;0AAC

bagurmukhi;0A2C

bahiragana;3070

bahtthai;0E3F

bakatakana;30D0

bar;007C

barmonospace;FF5C

bbopomofo;3105

bcircle;24D1

bdotaccent;1E03

bdotbelow;1E05

beamedsixteenthnotes;266C

because;2235

becyrillic;0431

beharabic;0628

behfinalarabic;FE90

behinitialarabic;FE91

behiragana;3079

behmedialarabic;FE92

behmeeminitialarabic;FC9F

behmeemisolatedarabic;FC08

behnoonfinalarabic;FC6D

bekatakana;30D9

benarmenian;0562

bet;05D1

beta;03B2

betasymbolgreek;03D0

betdagesh;FB31

betdageshhebrew;FB31

bethebrew;05D1

betrafehebrew;FB4C

bhabengali;09AD

bhadeva;092D

bhagujarati;0AAD

bhagurmukhi;0A2D

bhook;0253

bihiragana;3073

bikatakana;30D3

bilabialclick;0298

bindigurmukhi;0A02

birusquare;3331

blackcircle;25CF

blackdiamond;25C6

blackdownpointingtriangle;25BC

blackleftpointingpointer;25C4

blackleftpointingtriangle;25C0

blacklenticularbracketleft;3010

blacklenticularbracketleftvertical;FE3B

blacklenticularbracketright;3011

blacklenticularbracketrightvertical;FE3C

blacklowerlefttriangle;25E3

blacklowerrighttriangle;25E2

blackrectangle;25AC

blackrightpointingpointer;25BA

blackrightpointingtriangle;25B6

blacksmallsquare;25AA

blacksmilingface;263B

blacksquare;25A0

blackstar;2605

blackupperlefttriangle;25E4

blackupperrighttriangle;25E5

blackuppointingsmalltriangle;25B4

blackuppointingtriangle;25B2

blank;2423

blinebelow;1E07

block;2588

bmonospace;FF42

bobaimaithai;0E1A

bohiragana;307C

bokatakana;30DC

bparen;249D

bqsquare;33C3

braceex;F8F4

braceleft;007B

braceleftbt;F8F3

braceleftmid;F8F2

braceleftmonospace;FF5B

braceleftsmall;FE5B

bracelefttp;F8F1

braceleftvertical;FE37

braceright;007D

bracerightbt;F8FE

bracerightmid;F8FD

bracerightmonospace;FF5D

bracerightsmall;FE5C

bracerighttp;F8FC

bracerightvertical;FE38

bracketleft;005B

bracketleftbt;F8F0

bracketleftex;F8EF

bracketleftmonospace;FF3B

bracketlefttp;F8EE

bracketright;005D

bracketrightbt;F8FB

bracketrightex;F8FA

bracketrightmonospace;FF3D

bracketrighttp;F8F9

breve;02D8

brevebelowcmb;032E

brevecmb;0306

breveinvertedbelowcmb;032F

breveinvertedcmb;0311

breveinverteddoublecmb;0361

bridgebelowcmb;032A

bridgeinvertedbelowcmb;033A

brokenbar;00A6

bstroke;0180

bsuperior;F6EA

btopbar;0183

buhiragana;3076

bukatakana;30D6

bullet;2022

bulletinverse;25D8

bulletoperator;2219

bullseye;25CE

c;0063

caarmenian;056E

cabengali;099A

cacute;0107

cadeva;091A

cagujarati;0A9A

cagurmukhi;0A1A

calsquare;3388

candrabindubengali;0981

candrabinducmb;0310

candrabindudeva;0901

candrabindugujarati;0A81

capslock;21EA

careof;2105

caron;02C7

caronbelowcmb;032C

caroncmb;030C

carriagereturn;21B5

cbopomofo;3118

ccaron;010D

ccedilla;00E7

ccedillaacute;1E09

ccircle;24D2

ccircumflex;0109

ccurl;0255

cdot;010B

cdotaccent;010B

cdsquare;33C5

cedilla;00B8

cedillacmb;0327

cent;00A2

centigrade;2103

centinferior;F6DF

centmonospace;FFE0

centoldstyle;F7A2

centsuperior;F6E0

chaarmenian;0579

chabengali;099B

chadeva;091B

chagujarati;0A9B

chagurmukhi;0A1B

chbopomofo;3114

cheabkhasiancyrillic;04BD

checkmark;2713

checyrillic;0447

chedescenderabkhasiancyrillic;04BF

chedescendercyrillic;04B7

chedieresiscyrillic;04F5

cheharmenian;0573

chekhakassiancyrillic;04CC

cheverticalstrokecyrillic;04B9

chi;03C7

chieuchacirclekorean;3277

chieuchaparenkorean;3217

chieuchcirclekorean;3269

chieuchkorean;314A

chieuchparenkorean;3209

chochangthai;0E0A

chochanthai;0E08

chochingthai;0E09

chochoethai;0E0C

chook;0188

cieucacirclekorean;3276

cieucaparenkorean;3216

cieuccirclekorean;3268

cieuckorean;3148

cieucparenkorean;3208

cieucuparenkorean;321C

circle;25CB

circlemultiply;2297

circleot;2299

circleplus;2295

circlepostalmark;3036

circlewithlefthalfblack;25D0

circlewithrighthalfblack;25D1

circumflex;02C6

circumflexbelowcmb;032D

circumflexcmb;0302

clear;2327

clickalveolar;01C2

clickdental;01C0

clicklateral;01C1

clickretroflex;01C3

club;2663

clubsuitblack;2663

clubsuitwhite;2667

cmcubedsquare;33A4

cmonospace;FF43

cmsquaredsquare;33A0

coarmenian;0581

colon;003A

colonmonetary;20A1

colonmonospace;FF1A

colonsign;20A1

colonsmall;FE55

colontriangularhalfmod;02D1

colontriangularmod;02D0

comma;002C

commaabovecmb;0313

commaaboverightcmb;0315

commaaccent;F6C3

commaarabic;060C

commaarmenian;055D

commainferior;F6E1

commamonospace;FF0C

commareversedabovecmb;0314

commareversedmod;02BD

commasmall;FE50

commasuperior;F6E2

commaturnedabovecmb;0312

commaturnedmod;02BB

compass;263C

congruent;2245

contourintegral;222E

control;2303

controlACK;0006

controlBEL;0007

controlBS;0008

controlCAN;0018

controlCR;000D

controlDC1;0011

controlDC2;0012

controlDC3;0013

controlDC4;0014

controlDEL;007F

controlDLE;0010

controlEM;0019

controlENQ;0005

controlEOT;0004

controlESC;001B

controlETB;0017

controlETX;0003

controlFF;000C

controlFS;001C

controlGS;001D

controlHT;0009

controlLF;000A

controlNAK;0015

controlRS;001E

controlSI;000F

controlSO;000E

controlSOT;0002

controlSTX;0001

controlSUB;001A

controlSYN;0016

controlUS;001F

controlVT;000B

copyright;00A9

copyrightsans;F8E9

copyrightserif;F6D9

cornerbracketleft;300C

cornerbracketlefthalfwidth;FF62

cornerbracketleftvertical;FE41

cornerbracketright;300D

cornerbracketrighthalfwidth;FF63

cornerbracketrightvertical;FE42

corporationsquare;337F

cosquare;33C7

coverkgsquare;33C6

cparen;249E

cruzeiro;20A2

cstretched;0297

curlyand;22CF

curlyor;22CE

currency;00A4

cyrBreve;F6D1

cyrFlex;F6D2

cyrbreve;F6D4

cyrflex;F6D5

d;0064

daarmenian;0564

dabengali;09A6

dadarabic;0636

dadeva;0926

dadfinalarabic;FEBE

dadinitialarabic;FEBF

dadmedialarabic;FEC0

dagesh;05BC

dageshhebrew;05BC

dagger;2020

daggerdbl;2021

dagujarati;0AA6

dagurmukhi;0A26

dahiragana;3060

dakatakana;30C0

dalarabic;062F

dalet;05D3

daletdagesh;FB33

daletdageshhebrew;FB33

dalethatafpatah;05D3 05B2

dalethatafpatahhebrew;05D3 05B2

dalethatafsegol;05D3 05B1

dalethatafsegolhebrew;05D3 05B1

dalethebrew;05D3

dalethiriq;05D3 05B4

dalethiriqhebrew;05D3 05B4

daletholam;05D3 05B9

daletholamhebrew;05D3 05B9

daletpatah;05D3 05B7

daletpatahhebrew;05D3 05B7

daletqamats;05D3 05B8

daletqamatshebrew;05D3 05B8

daletqubuts;05D3 05BB

daletqubutshebrew;05D3 05BB

daletsegol;05D3 05B6

daletsegolhebrew;05D3 05B6

daletsheva;05D3 05B0

daletshevahebrew;05D3 05B0

dalettsere;05D3 05B5

dalettserehebrew;05D3 05B5

dalfinalarabic;FEAA

dammaarabic;064F

dammalowarabic;064F

dammatanaltonearabic;064C

dammatanarabic;064C

danda;0964

dargahebrew;05A7

dargalefthebrew;05A7

dasiapneumatacyrilliccmb;0485

dblGrave;F6D3

dblanglebracketleft;300A

dblanglebracketleftvertical;FE3D

dblanglebracketright;300B

dblanglebracketrightvertical;FE3E

dblarchinvertedbelowcmb;032B

dblarrowleft;21D4

dblarrowright;21D2

dbldanda;0965

dblgrave;F6D6

dblgravecmb;030F

dblintegral;222C

dbllowline;2017

dbllowlinecmb;0333

dbloverlinecmb;033F

dblprimemod;02BA

dblverticalbar;2016

dblverticallineabovecmb;030E

dbopomofo;3109

dbsquare;33C8

dcaron;010F

dcedilla;1E11

dcircle;24D3

dcircumflexbelow;1E13

dcroat;0111

ddabengali;09A1

ddadeva;0921

ddagujarati;0AA1

ddagurmukhi;0A21

ddalarabic;0688

ddalfinalarabic;FB89

dddhadeva;095C

ddhabengali;09A2

ddhadeva;0922

ddhagujarati;0AA2

ddhagurmukhi;0A22

ddotaccent;1E0B

ddotbelow;1E0D

decimalseparatorarabic;066B

decimalseparatorpersian;066B

decyrillic;0434

degree;00B0

dehihebrew;05AD

dehiragana;3067

deicoptic;03EF

dekatakana;30C7

deleteleft;232B

deleteright;2326

delta;03B4

deltaturned;018D

denominatorminusonenumeratorbengali;09F8

dezh;02A4

dhabengali;09A7

dhadeva;0927

dhagujarati;0AA7

dhagurmukhi;0A27

dhook;0257

dialytikatonos;0385

dialytikatonoscmb;0344

diamond;2666

diamondsuitwhite;2662

dieresis;00A8

dieresisacute;F6D7

dieresisbelowcmb;0324

dieresiscmb;0308

dieresisgrave;F6D8

dieresistonos;0385

dihiragana;3062

dikatakana;30C2

dittomark;3003

divide;00F7

divides;2223

divisionslash;2215

djecyrillic;0452

dkshade;2593

dlinebelow;1E0F

dlsquare;3397

dmacron;0111

dmonospace;FF44

dnblock;2584

dochadathai;0E0E

dodekthai;0E14

dohiragana;3069

dokatakana;30C9

dollar;0024

dollarinferior;F6E3

dollarmonospace;FF04

dollaroldstyle;F724

dollarsmall;FE69

dollarsuperior;F6E4

dong;20AB

dorusquare;3326

dotaccent;02D9

dotaccentcmb;0307

dotbelowcmb;0323

dotbelowcomb;0323

dotkatakana;30FB

dotlessi;0131

dotlessj;F6BE

dotlessjstrokehook;0284

dotmath;22C5

dottedcircle;25CC

doubleyodpatah;FB1F

doubleyodpatahhebrew;FB1F

downtackbelowcmb;031E

downtackmod;02D5

dparen;249F

dsuperior;F6EB

dtail;0256

dtopbar;018C

duhiragana;3065

dukatakana;30C5

dz;01F3

dzaltone;02A3

dzcaron;01C6

dzcurl;02A5

dzeabkhasiancyrillic;04E1

dzecyrillic;0455

dzhecyrillic;045F

e;0065

eacute;00E9

earth;2641

ebengali;098F

ebopomofo;311C

ebreve;0115

ecandradeva;090D

ecandragujarati;0A8D

ecandravowelsigndeva;0945

ecandravowelsigngujarati;0AC5

ecaron;011B

ecedillabreve;1E1D

echarmenian;0565

echyiwnarmenian;0587

ecircle;24D4

ecircumflex;00EA

ecircumflexacute;1EBF

ecircumflexbelow;1E19

ecircumflexdotbelow;1EC7

ecircumflexgrave;1EC1

ecircumflexhookabove;1EC3

ecircumflextilde;1EC5

ecyrillic;0454

edblgrave;0205

edeva;090F

edieresis;00EB

edot;0117

edotaccent;0117

edotbelow;1EB9

eegurmukhi;0A0F

eematragurmukhi;0A47

efcyrillic;0444

egrave;00E8

egujarati;0A8F

eharmenian;0567

ehbopomofo;311D

ehiragana;3048

ehookabove;1EBB

eibopomofo;311F

eight;0038

eightarabic;0668

eightbengali;09EE

eightcircle;2467

eightcircleinversesansserif;2791

eightdeva;096E

eighteencircle;2471

eighteenparen;2485

eighteenperiod;2499

eightgujarati;0AEE

eightgurmukhi;0A6E

eighthackarabic;0668

eighthangzhou;3028

eighthnotebeamed;266B

eightideographicparen;3227

eightinferior;2088

eightmonospace;FF18

eightoldstyle;F738

eightparen;247B

eightperiod;248F

eightpersian;06F8

eightroman;2177

eightsuperior;2078

eightthai;0E58

einvertedbreve;0207

eiotifiedcyrillic;0465

ekatakana;30A8

ekatakanahalfwidth;FF74

ekonkargurmukhi;0A74

ekorean;3154

elcyrillic;043B

element;2208

elevencircle;246A

elevenparen;247E

elevenperiod;2492

elevenroman;217A

ellipsis;2026

ellipsisvertical;22EE

emacron;0113

emacronacute;1E17

emacrongrave;1E15

emcyrillic;043C

emdash;2014

emdashvertical;FE31

emonospace;FF45

emphasismarkarmenian;055B

emptyset;2205

enbopomofo;3123

encyrillic;043D

endash;2013

endashvertical;FE32

endescendercyrillic;04A3

eng;014B

engbopomofo;3125

enghecyrillic;04A5

enhookcyrillic;04C8

enspace;2002

eogonek;0119

eokorean;3153

eopen;025B

eopenclosed;029A

eopenreversed;025C

eopenreversedclosed;025E

eopenreversedhook;025D

eparen;24A0

epsilon;03B5

epsilontonos;03AD

equal;003D

equalmonospace;FF1D

equalsmall;FE66

equalsuperior;207C

equivalence;2261

erbopomofo;3126

ercyrillic;0440

ereversed;0258

ereversedcyrillic;044D

escyrillic;0441

esdescendercyrillic;04AB

esh;0283

eshcurl;0286

eshortdeva;090E

eshortvowelsigndeva;0946

eshreversedloop;01AA

eshsquatreversed;0285

esmallhiragana;3047

esmallkatakana;30A7

esmallkatakanahalfwidth;FF6A

estimated;212E

esuperior;F6EC

eta;03B7

etarmenian;0568

etatonos;03AE

eth;00F0

etilde;1EBD

etildebelow;1E1B

etnahtafoukhhebrew;0591

etnahtafoukhlefthebrew;0591

etnahtahebrew;0591

etnahtalefthebrew;0591

eturned;01DD

eukorean;3161

euro;20AC

evowelsignbengali;09C7

evowelsigndeva;0947

evowelsigngujarati;0AC7

exclam;0021

exclamarmenian;055C

exclamdbl;203C

exclamdown;00A1

exclamdownsmall;F7A1

exclammonospace;FF01

exclamsmall;F721

existential;2203

ezh;0292

ezhcaron;01EF

ezhcurl;0293

ezhreversed;01B9

ezhtail;01BA

f;0066

fadeva;095E

fagurmukhi;0A5E

fahrenheit;2109

fathaarabic;064E

fathalowarabic;064E

fathatanarabic;064B

fbopomofo;3108

fcircle;24D5

fdotaccent;1E1F

feharabic;0641

feharmenian;0586

fehfinalarabic;FED2

fehinitialarabic;FED3

fehmedialarabic;FED4

feicoptic;03E5

female;2640

ff;FB00

ffi;FB03

ffl;FB04

fi;FB01

fifteencircle;246E

fifteenparen;2482

fifteenperiod;2496

figuredash;2012

filledbox;25A0

filledrect;25AC

finalkaf;05DA

finalkafdagesh;FB3A

finalkafdageshhebrew;FB3A

finalkafhebrew;05DA

finalkafqamats;05DA 05B8

finalkafqamatshebrew;05DA 05B8

finalkafsheva;05DA 05B0

finalkafshevahebrew;05DA 05B0

finalmem;05DD

finalmemhebrew;05DD

finalnun;05DF

finalnunhebrew;05DF

finalpe;05E3

finalpehebrew;05E3

finaltsadi;05E5

finaltsadihebrew;05E5

firsttonechinese;02C9

fisheye;25C9

fitacyrillic;0473

five;0035

fivearabic;0665

fivebengali;09EB

fivecircle;2464

fivecircleinversesansserif;278E

fivedeva;096B

fiveeighths;215D

fivegujarati;0AEB

fivegurmukhi;0A6B

fivehackarabic;0665

fivehangzhou;3025

fiveideographicparen;3224

fiveinferior;2085

fivemonospace;FF15

fiveoldstyle;F735

fiveparen;2478

fiveperiod;248C

fivepersian;06F5

fiveroman;2174

fivesuperior;2075

fivethai;0E55

fl;FB02

florin;0192

fmonospace;FF46

fmsquare;3399

fofanthai;0E1F

fofathai;0E1D

fongmanthai;0E4F

forall;2200

four;0034

fourarabic;0664

fourbengali;09EA

fourcircle;2463

fourcircleinversesansserif;278D

fourdeva;096A

fourgujarati;0AEA

fourgurmukhi;0A6A

fourhackarabic;0664

fourhangzhou;3024

fourideographicparen;3223

fourinferior;2084

fourmonospace;FF14

fournumeratorbengali;09F7

fouroldstyle;F734

fourparen;2477

fourperiod;248B

fourpersian;06F4

fourroman;2173

foursuperior;2074

fourteencircle;246D

fourteenparen;2481

fourteenperiod;2495

fourthai;0E54

fourthtonechinese;02CB

fparen;24A1

fraction;2044

franc;20A3

g;0067

gabengali;0997

gacute;01F5

gadeva;0917

gafarabic;06AF

gaffinalarabic;FB93

gafinitialarabic;FB94

gafmedialarabic;FB95

gagujarati;0A97

gagurmukhi;0A17

gahiragana;304C

gakatakana;30AC

gamma;03B3

gammalatinsmall;0263

gammasuperior;02E0

gangiacoptic;03EB

gbopomofo;310D

gbreve;011F

gcaron;01E7

gcedilla;0123

gcircle;24D6

gcircumflex;011D

gcommaaccent;0123

gdot;0121

gdotaccent;0121

gecyrillic;0433

gehiragana;3052

gekatakana;30B2

geometricallyequal;2251

gereshaccenthebrew;059C

gereshhebrew;05F3

gereshmuqdamhebrew;059D

germandbls;00DF

gershayimaccenthebrew;059E

gershayimhebrew;05F4

getamark;3013

ghabengali;0998

ghadarmenian;0572

ghadeva;0918

ghagujarati;0A98

ghagurmukhi;0A18

ghainarabic;063A

ghainfinalarabic;FECE

ghaininitialarabic;FECF

ghainmedialarabic;FED0

ghemiddlehookcyrillic;0495

ghestrokecyrillic;0493

gheupturncyrillic;0491

ghhadeva;095A

ghhagurmukhi;0A5A

ghook;0260

ghzsquare;3393

gihiragana;304E

gikatakana;30AE

gimarmenian;0563

gimel;05D2

gimeldagesh;FB32

gimeldageshhebrew;FB32

gimelhebrew;05D2

gjecyrillic;0453

glottalinvertedstroke;01BE

glottalstop;0294

glottalstopinverted;0296

glottalstopmod;02C0

glottalstopreversed;0295

glottalstopreversedmod;02C1

glottalstopreversedsuperior;02E4

glottalstopstroke;02A1

glottalstopstrokereversed;02A2

gmacron;1E21

gmonospace;FF47

gohiragana;3054

gokatakana;30B4

gparen;24A2

gpasquare;33AC

gradient;2207

grave;0060

gravebelowcmb;0316

gravecmb;0300

gravecomb;0300

gravedeva;0953

gravelowmod;02CE

gravemonospace;FF40

gravetonecmb;0340

greater;003E

greaterequal;2265

greaterequalorless;22DB

greatermonospace;FF1E

greaterorequivalent;2273

greaterorless;2277

greateroverequal;2267

greatersmall;FE65

gscript;0261

gstroke;01E5

guhiragana;3050

guillemotleft;00AB

guillemotright;00BB

guilsinglleft;2039

guilsinglright;203A

gukatakana;30B0

guramusquare;3318

gysquare;33C9

h;0068

haabkhasiancyrillic;04A9

haaltonearabic;06C1

habengali;09B9

hadescendercyrillic;04B3

hadeva;0939

hagujarati;0AB9

hagurmukhi;0A39

haharabic;062D

hahfinalarabic;FEA2

hahinitialarabic;FEA3

hahiragana;306F

hahmedialarabic;FEA4

haitusquare;332A

hakatakana;30CF

hakatakanahalfwidth;FF8A

halantgurmukhi;0A4D

hamzaarabic;0621

hamzadammaarabic;0621 064F

hamzadammatanarabic;0621 064C

hamzafathaarabic;0621 064E

hamzafathatanarabic;0621 064B

hamzalowarabic;0621

hamzalowkasraarabic;0621 0650

hamzalowkasratanarabic;0621 064D

hamzasukunarabic;0621 0652

hangulfiller;3164

hardsigncyrillic;044A

harpoonleftbarbup;21BC

harpoonrightbarbup;21C0

hasquare;33CA

hatafpatah;05B2

hatafpatah16;05B2

hatafpatah23;05B2

hatafpatah2f;05B2

hatafpatahhebrew;05B2

hatafpatahnarrowhebrew;05B2

hatafpatahquarterhebrew;05B2

hatafpatahwidehebrew;05B2

hatafqamats;05B3

hatafqamats1b;05B3

hatafqamats28;05B3

hatafqamats34;05B3

hatafqamatshebrew;05B3

hatafqamatsnarrowhebrew;05B3

hatafqamatsquarterhebrew;05B3

hatafqamatswidehebrew;05B3

hatafsegol;05B1

hatafsegol17;05B1

hatafsegol24;05B1

hatafsegol30;05B1

hatafsegolhebrew;05B1

hatafsegolnarrowhebrew;05B1

hatafsegolquarterhebrew;05B1

hatafsegolwidehebrew;05B1

hbar;0127

hbopomofo;310F

hbrevebelow;1E2B

hcedilla;1E29

hcircle;24D7

hcircumflex;0125

hdieresis;1E27

hdotaccent;1E23

hdotbelow;1E25

he;05D4

heart;2665

heartsuitblack;2665

heartsuitwhite;2661

hedagesh;FB34

hedageshhebrew;FB34

hehaltonearabic;06C1

heharabic;0647

hehebrew;05D4

hehfinalaltonearabic;FBA7

hehfinalalttwoarabic;FEEA

hehfinalarabic;FEEA

hehhamzaabovefinalarabic;FBA5

hehhamzaaboveisolatedarabic;FBA4

hehinitialaltonearabic;FBA8

hehinitialarabic;FEEB

hehiragana;3078

hehmedialaltonearabic;FBA9

hehmedialarabic;FEEC

heiseierasquare;337B

hekatakana;30D8

hekatakanahalfwidth;FF8D

hekutaarusquare;3336

henghook;0267

herutusquare;3339

het;05D7

hethebrew;05D7

hhook;0266

hhooksuperior;02B1

hieuhacirclekorean;327B

hieuhaparenkorean;321B

hieuhcirclekorean;326D

hieuhkorean;314E

hieuhparenkorean;320D

hihiragana;3072

hikatakana;30D2

hikatakanahalfwidth;FF8B

hiriq;05B4

hiriq14;05B4

hiriq21;05B4

hiriq2d;05B4

hiriqhebrew;05B4

hiriqnarrowhebrew;05B4

hiriqquarterhebrew;05B4

hiriqwidehebrew;05B4

hlinebelow;1E96

hmonospace;FF48

hoarmenian;0570

hohipthai;0E2B

hohiragana;307B

hokatakana;30DB

hokatakanahalfwidth;FF8E

holam;05B9

holam19;05B9

holam26;05B9

holam32;05B9

holamhebrew;05B9

holamnarrowhebrew;05B9

holamquarterhebrew;05B9

holamwidehebrew;05B9

honokhukthai;0E2E

hookabovecomb;0309

hookcmb;0309

hookpalatalizedbelowcmb;0321

hookretroflexbelowcmb;0322

hoonsquare;3342

horicoptic;03E9

horizontalbar;2015

horncmb;031B

hotsprings;2668

house;2302

hparen;24A3

hsuperior;02B0

hturned;0265

huhiragana;3075

huiitosquare;3333

hukatakana;30D5

hukatakanahalfwidth;FF8C

hungarumlaut;02DD

hungarumlautcmb;030B

hv;0195

hyphen;002D

hypheninferior;F6E5

hyphenmonospace;FF0D

hyphensmall;FE63

hyphensuperior;F6E6

hyphentwo;2010

i;0069

iacute;00ED

iacyrillic;044F

ibengali;0987

ibopomofo;3127

ibreve;012D

icaron;01D0

icircle;24D8

icircumflex;00EE

icyrillic;0456

idblgrave;0209

ideographearthcircle;328F

ideographfirecircle;328B

ideographicallianceparen;323F

ideographiccallparen;323A

ideographiccentrecircle;32A5

ideographicclose;3006

ideographiccomma;3001

ideographiccommaleft;FF64

ideographiccongratulationparen;3237

ideographiccorrectcircle;32A3

ideographicearthparen;322F

ideographicenterpriseparen;323D

ideographicexcellentcircle;329D

ideographicfestivalparen;3240

ideographicfinancialcircle;3296

ideographicfinancialparen;3236

ideographicfireparen;322B

ideographichaveparen;3232

ideographichighcircle;32A4

ideographiciterationmark;3005

ideographiclaborcircle;3298

ideographiclaborparen;3238

ideographicleftcircle;32A7

ideographiclowcircle;32A6

ideographicmedicinecircle;32A9

ideographicmetalparen;322E

ideographicmoonparen;322A

ideographicnameparen;3234

ideographicperiod;3002

ideographicprintcircle;329E

ideographicreachparen;3243

ideographicrepresentparen;3239

ideographicresourceparen;323E

ideographicrightcircle;32A8

ideographicsecretcircle;3299

ideographicselfparen;3242

ideographicsocietyparen;3233

ideographicspace;3000

ideographicspecialparen;3235

ideographicstockparen;3231

ideographicstudyparen;323B

ideographicsunparen;3230

ideographicsuperviseparen;323C

ideographicwaterparen;322C

ideographicwoodparen;322D

ideographiczero;3007

ideographmetalcircle;328E

ideographmooncircle;328A

ideographnamecircle;3294

ideographsuncircle;3290

ideographwatercircle;328C

ideographwoodcircle;328D

ideva;0907

idieresis;00EF

idieresisacute;1E2F

idieresiscyrillic;04E5

idotbelow;1ECB

iebrevecyrillic;04D7

iecyrillic;0435

ieungacirclekorean;3275

ieungaparenkorean;3215

ieungcirclekorean;3267

ieungkorean;3147

ieungparenkorean;3207

igrave;00EC

igujarati;0A87

igurmukhi;0A07

ihiragana;3044

ihookabove;1EC9

iibengali;0988

iicyrillic;0438

iideva;0908

iigujarati;0A88

iigurmukhi;0A08

iimatragurmukhi;0A40

iinvertedbreve;020B

iishortcyrillic;0439

iivowelsignbengali;09C0

iivowelsigndeva;0940

iivowelsigngujarati;0AC0

ij;0133

ikatakana;30A4

ikatakanahalfwidth;FF72

ikorean;3163

ilde;02DC

iluyhebrew;05AC

imacron;012B

imacroncyrillic;04E3

imageorapproximatelyequal;2253

imatragurmukhi;0A3F

imonospace;FF49

increment;2206

infinity;221E

iniarmenian;056B

integral;222B

integralbottom;2321

integralbt;2321

integralex;F8F5

integraltop;2320

integraltp;2320

intersection;2229

intisquare;3305

invbullet;25D8

invcircle;25D9

invsmileface;263B

iocyrillic;0451

iogonek;012F

iota;03B9

iotadieresis;03CA

iotadieresistonos;0390

iotalatin;0269

iotatonos;03AF

iparen;24A4

irigurmukhi;0A72

ismallhiragana;3043

ismallkatakana;30A3

ismallkatakanahalfwidth;FF68

issharbengali;09FA

istroke;0268

isuperior;F6ED

iterationhiragana;309D

iterationkatakana;30FD

itilde;0129

itildebelow;1E2D

iubopomofo;3129

iucyrillic;044E

ivowelsignbengali;09BF

ivowelsigndeva;093F

ivowelsigngujarati;0ABF

izhitsacyrillic;0475

izhitsadblgravecyrillic;0477

j;006A

jaarmenian;0571

jabengali;099C

jadeva;091C

jagujarati;0A9C

jagurmukhi;0A1C

jbopomofo;3110

jcaron;01F0

jcircle;24D9

jcircumflex;0135

jcrossedtail;029D

jdotlessstroke;025F

jecyrillic;0458

jeemarabic;062C

jeemfinalarabic;FE9E

jeeminitialarabic;FE9F

jeemmedialarabic;FEA0

jeharabic;0698

jehfinalarabic;FB8B

jhabengali;099D

jhadeva;091D

jhagujarati;0A9D

jhagurmukhi;0A1D

jheharmenian;057B

jis;3004

jmonospace;FF4A

jparen;24A5

jsuperior;02B2

k;006B

kabashkircyrillic;04A1

kabengali;0995

kacute;1E31

kacyrillic;043A

kadescendercyrillic;049B

kadeva;0915

kaf;05DB

kafarabic;0643

kafdagesh;FB3B

kafdageshhebrew;FB3B

kaffinalarabic;FEDA

kafhebrew;05DB

kafinitialarabic;FEDB

kafmedialarabic;FEDC

kafrafehebrew;FB4D

kagujarati;0A95

kagurmukhi;0A15

kahiragana;304B

kahookcyrillic;04C4

kakatakana;30AB

kakatakanahalfwidth;FF76

kappa;03BA

kappasymbolgreek;03F0

kapyeounmieumkorean;3171

kapyeounphieuphkorean;3184

kapyeounpieupkorean;3178

kapyeounssangpieupkorean;3179

karoriisquare;330D

kashidaautoarabic;0640

kashidaautonosidebearingarabic;0640

kasmallkatakana;30F5

kasquare;3384

kasraarabic;0650

kasratanarabic;064D

kastrokecyrillic;049F

katahiraprolongmarkhalfwidth;FF70

kaverticalstrokecyrillic;049D

kbopomofo;310E

kcalsquare;3389

kcaron;01E9

kcedilla;0137

kcircle;24DA

kcommaaccent;0137

kdotbelow;1E33

keharmenian;0584

kehiragana;3051

kekatakana;30B1

kekatakanahalfwidth;FF79

kenarmenian;056F

kesmallkatakana;30F6

kgreenlandic;0138

khabengali;0996

khacyrillic;0445

khadeva;0916

khagujarati;0A96

khagurmukhi;0A16

khaharabic;062E

khahfinalarabic;FEA6

khahinitialarabic;FEA7

khahmedialarabic;FEA8

kheicoptic;03E7

khhadeva;0959

khhagurmukhi;0A59

khieukhacirclekorean;3278

khieukhaparenkorean;3218

khieukhcirclekorean;326A

khieukhkorean;314B

khieukhparenkorean;320A

khokhaithai;0E02

khokhonthai;0E05

khokhuatthai;0E03

khokhwaithai;0E04

khomutthai;0E5B

khook;0199

khorakhangthai;0E06

khzsquare;3391

kihiragana;304D

kikatakana;30AD

kikatakanahalfwidth;FF77

kiroguramusquare;3315

kiromeetorusquare;3316

kirosquare;3314

kiyeokacirclekorean;326E

kiyeokaparenkorean;320E

kiyeokcirclekorean;3260

kiyeokkorean;3131

kiyeokparenkorean;3200

kiyeoksioskorean;3133

kjecyrillic;045C

klinebelow;1E35

klsquare;3398

kmcubedsquare;33A6

kmonospace;FF4B

kmsquaredsquare;33A2

kohiragana;3053

kohmsquare;33C0

kokaithai;0E01

kokatakana;30B3

kokatakanahalfwidth;FF7A

kooposquare;331E

koppacyrillic;0481

koreanstandardsymbol;327F

koroniscmb;0343

kparen;24A6

kpasquare;33AA

ksicyrillic;046F

ktsquare;33CF

kturned;029E

kuhiragana;304F

kukatakana;30AF

kukatakanahalfwidth;FF78

kvsquare;33B8

kwsquare;33BE

l;006C

labengali;09B2

lacute;013A

ladeva;0932

lagujarati;0AB2

lagurmukhi;0A32

lakkhangyaothai;0E45

lamaleffinalarabic;FEFC

lamalefhamzaabovefinalarabic;FEF8

lamalefhamzaaboveisolatedarabic;FEF7

lamalefhamzabelowfinalarabic;FEFA

lamalefhamzabelowisolatedarabic;FEF9

lamalefisolatedarabic;FEFB

lamalefmaddaabovefinalarabic;FEF6

lamalefmaddaaboveisolatedarabic;FEF5

lamarabic;0644

lambda;03BB

lambdastroke;019B

lamed;05DC

lameddagesh;FB3C

lameddageshhebrew;FB3C

lamedhebrew;05DC

lamedholam;05DC 05B9

lamedholamdagesh;05DC 05B9 05BC

lamedholamdageshhebrew;05DC 05B9 05BC

lamedholamhebrew;05DC 05B9

lamfinalarabic;FEDE

lamhahinitialarabic;FCCA

laminitialarabic;FEDF

lamjeeminitialarabic;FCC9

lamkhahinitialarabic;FCCB

lamlamhehisolatedarabic;FDF2

lammedialarabic;FEE0

lammeemhahinitialarabic;FD88

lammeeminitialarabic;FCCC

lammeemjeeminitialarabic;FEDF FEE4 FEA0

lammeemkhahinitialarabic;FEDF FEE4 FEA8

largecircle;25EF

lbar;019A

lbelt;026C

lbopomofo;310C

lcaron;013E

lcedilla;013C

lcircle;24DB

lcircumflexbelow;1E3D

lcommaaccent;013C

ldot;0140

ldotaccent;0140

ldotbelow;1E37

ldotbelowmacron;1E39

leftangleabovecmb;031A

lefttackbelowcmb;0318

less;003C

lessequal;2264

lessequalorgreater;22DA

lessmonospace;FF1C

lessorequivalent;2272

lessorgreater;2276

lessoverequal;2266

lesssmall;FE64

lezh;026E

lfblock;258C

lhookretroflex;026D

lira;20A4

liwnarmenian;056C

lj;01C9

ljecyrillic;0459

ll;F6C0

lladeva;0933

llagujarati;0AB3

llinebelow;1E3B

llladeva;0934

llvocalicbengali;09E1

llvocalicdeva;0961

llvocalicvowelsignbengali;09E3

llvocalicvowelsigndeva;0963

lmiddletilde;026B

lmonospace;FF4C

lmsquare;33D0

lochulathai;0E2C

logicaland;2227

logicalnot;00AC

logicalnotreversed;2310

logicalor;2228

lolingthai;0E25

longs;017F

lowlinecenterline;FE4E

lowlinecmb;0332

lowlinedashed;FE4D

lozenge;25CA

lparen;24A7

lslash;0142

lsquare;2113

lsuperior;F6EE

ltshade;2591

luthai;0E26

lvocalicbengali;098C

lvocalicdeva;090C

lvocalicvowelsignbengali;09E2

lvocalicvowelsigndeva;0962

lxsquare;33D3

m;006D

mabengali;09AE

macron;00AF

macronbelowcmb;0331

macroncmb;0304

macronlowmod;02CD

macronmonospace;FFE3

macute;1E3F

madeva;092E

magujarati;0AAE

magurmukhi;0A2E

mahapakhhebrew;05A4

mahapakhlefthebrew;05A4

mahiragana;307E

maichattawalowleftthai;F895

maichattawalowrightthai;F894

maichattawathai;0E4B

maichattawaupperleftthai;F893

maieklowleftthai;F88C

maieklowrightthai;F88B

maiekthai;0E48

maiekupperleftthai;F88A

maihanakatleftthai;F884

maihanakatthai;0E31

maitaikhuleftthai;F889

maitaikhuthai;0E47

maitholowleftthai;F88F

maitholowrightthai;F88E

maithothai;0E49

maithoupperleftthai;F88D

maitrilowleftthai;F892

maitrilowrightthai;F891

maitrithai;0E4A

maitriupperleftthai;F890

maiyamokthai;0E46

makatakana;30DE

makatakanahalfwidth;FF8F

male;2642

mansyonsquare;3347

maqafhebrew;05BE

mars;2642

masoracirclehebrew;05AF

masquare;3383

mbopomofo;3107

mbsquare;33D4

mcircle;24DC

mcubedsquare;33A5

mdotaccent;1E41

mdotbelow;1E43

meemarabic;0645

meemfinalarabic;FEE2

meeminitialarabic;FEE3

meemmedialarabic;FEE4

meemmeeminitialarabic;FCD1

meemmeemisolatedarabic;FC48

meetorusquare;334D

mehiragana;3081

meizierasquare;337E

mekatakana;30E1

mekatakanahalfwidth;FF92

mem;05DE

memdagesh;FB3E

memdageshhebrew;FB3E

memhebrew;05DE

menarmenian;0574

merkhahebrew;05A5

merkhakefulahebrew;05A6

merkhakefulalefthebrew;05A6

merkhalefthebrew;05A5

mhook;0271

mhzsquare;3392

middledotkatakanahalfwidth;FF65

middot;00B7

mieumacirclekorean;3272

mieumaparenkorean;3212

mieumcirclekorean;3264

mieumkorean;3141

mieumpansioskorean;3170

mieumparenkorean;3204

mieumpieupkorean;316E

mieumsioskorean;316F

mihiragana;307F

mikatakana;30DF

mikatakanahalfwidth;FF90

minus;2212

minusbelowcmb;0320

minuscircle;2296

minusmod;02D7

minusplus;2213

minute;2032

miribaarusquare;334A

mirisquare;3349

mlonglegturned;0270

mlsquare;3396

mmcubedsquare;33A3

mmonospace;FF4D

mmsquaredsquare;339F

mohiragana;3082

mohmsquare;33C1

mokatakana;30E2

mokatakanahalfwidth;FF93

molsquare;33D6

momathai;0E21

moverssquare;33A7

moverssquaredsquare;33A8

mparen;24A8

mpasquare;33AB

mssquare;33B3

msuperior;F6EF

mturned;026F

mu;00B5

mu1;00B5

muasquare;3382

muchgreater;226B

muchless;226A

mufsquare;338C

mugreek;03BC

mugsquare;338D

muhiragana;3080

mukatakana;30E0

mukatakanahalfwidth;FF91

mulsquare;3395

multiply;00D7

mumsquare;339B

munahhebrew;05A3

munahlefthebrew;05A3

musicalnote;266A

musicalnotedbl;266B

musicflatsign;266D

musicsharpsign;266F

mussquare;33B2

muvsquare;33B6

muwsquare;33BC

mvmegasquare;33B9

mvsquare;33B7

mwmegasquare;33BF

mwsquare;33BD

n;006E

nabengali;09A8

nabla;2207

nacute;0144

nadeva;0928

nagujarati;0AA8

nagurmukhi;0A28

nahiragana;306A

nakatakana;30CA

nakatakanahalfwidth;FF85

napostrophe;0149

nasquare;3381

nbopomofo;310B

nbspace;00A0

ncaron;0148

ncedilla;0146

ncircle;24DD

ncircumflexbelow;1E4B

ncommaaccent;0146

ndotaccent;1E45

ndotbelow;1E47

nehiragana;306D

nekatakana;30CD

nekatakanahalfwidth;FF88

newsheqelsign;20AA

nfsquare;338B

ngabengali;0999

ngadeva;0919

ngagujarati;0A99

ngagurmukhi;0A19

ngonguthai;0E07

nhiragana;3093

nhookleft;0272

nhookretroflex;0273

nieunacirclekorean;326F

nieunaparenkorean;320F

nieuncieuckorean;3135

nieuncirclekorean;3261

nieunhieuhkorean;3136

nieunkorean;3134

nieunpansioskorean;3168

nieunparenkorean;3201

nieunsioskorean;3167

nieuntikeutkorean;3166

nihiragana;306B

nikatakana;30CB

nikatakanahalfwidth;FF86

nikhahitleftthai;F899

nikhahitthai;0E4D

nine;0039

ninearabic;0669

ninebengali;09EF

ninecircle;2468

ninecircleinversesansserif;2792

ninedeva;096F

ninegujarati;0AEF

ninegurmukhi;0A6F

ninehackarabic;0669

ninehangzhou;3029

nineideographicparen;3228

nineinferior;2089

ninemonospace;FF19

nineoldstyle;F739

nineparen;247C

nineperiod;2490

ninepersian;06F9

nineroman;2178

ninesuperior;2079

nineteencircle;2472

nineteenparen;2486

nineteenperiod;249A

ninethai;0E59

nj;01CC

njecyrillic;045A

nkatakana;30F3

nkatakanahalfwidth;FF9D

nlegrightlong;019E

nlinebelow;1E49

nmonospace;FF4E

nmsquare;339A

nnabengali;09A3

nnadeva;0923

nnagujarati;0AA3

nnagurmukhi;0A23

nnnadeva;0929

nohiragana;306E

nokatakana;30CE

nokatakanahalfwidth;FF89

nonbreakingspace;00A0

nonenthai;0E13

nonuthai;0E19

noonarabic;0646

noonfinalarabic;FEE6

noonghunnaarabic;06BA

noonghunnafinalarabic;FB9F

noonhehinitialarabic;FEE7 FEEC

nooninitialarabic;FEE7

noonjeeminitialarabic;FCD2

noonjeemisolatedarabic;FC4B

noonmedialarabic;FEE8

noonmeeminitialarabic;FCD5

noonmeemisolatedarabic;FC4E

noonnoonfinalarabic;FC8D

notcontains;220C

notelement;2209

notelementof;2209

notequal;2260

notgreater;226F

notgreaternorequal;2271

notgreaternorless;2279

notidentical;2262

notless;226E

notlessnorequal;2270

notparallel;2226

notprecedes;2280

notsubset;2284

notsucceeds;2281

notsuperset;2285

nowarmenian;0576

nparen;24A9

nssquare;33B1

nsuperior;207F

ntilde;00F1

nu;03BD

nuhiragana;306C

nukatakana;30CC

nukatakanahalfwidth;FF87

nuktabengali;09BC

nuktadeva;093C

nuktagujarati;0ABC

nuktagurmukhi;0A3C

numbersign;0023

numbersignmonospace;FF03

numbersignsmall;FE5F

numeralsigngreek;0374

numeralsignlowergreek;0375

numero;2116

nun;05E0

nundagesh;FB40

nundageshhebrew;FB40

nunhebrew;05E0

nvsquare;33B5

nwsquare;33BB

nyabengali;099E

nyadeva;091E

nyagujarati;0A9E

nyagurmukhi;0A1E

o;006F

oacute;00F3

oangthai;0E2D

obarred;0275

obarredcyrillic;04E9

obarreddieresiscyrillic;04EB

obengali;0993

obopomofo;311B

obreve;014F

ocandradeva;0911

ocandragujarati;0A91

ocandravowelsigndeva;0949

ocandravowelsigngujarati;0AC9

ocaron;01D2

ocircle;24DE

ocircumflex;00F4

ocircumflexacute;1ED1

ocircumflexdotbelow;1ED9

ocircumflexgrave;1ED3

ocircumflexhookabove;1ED5

ocircumflextilde;1ED7

ocyrillic;043E

odblacute;0151

odblgrave;020D

odeva;0913

odieresis;00F6

odieresiscyrillic;04E7

odotbelow;1ECD

oe;0153

oekorean;315A

ogonek;02DB

ogonekcmb;0328

ograve;00F2

ogujarati;0A93

oharmenian;0585

ohiragana;304A

ohookabove;1ECF

ohorn;01A1

ohornacute;1EDB

ohorndotbelow;1EE3

ohorngrave;1EDD

ohornhookabove;1EDF

ohorntilde;1EE1

ohungarumlaut;0151

oi;01A3

oinvertedbreve;020F

okatakana;30AA

okatakanahalfwidth;FF75

okorean;3157

olehebrew;05AB

omacron;014D

omacronacute;1E53

omacrongrave;1E51

omdeva;0950

omega;03C9

omega1;03D6

omegacyrillic;0461

omegalatinclosed;0277

omegaroundcyrillic;047B

omegatitlocyrillic;047D

omegatonos;03CE

omgujarati;0AD0

omicron;03BF

omicrontonos;03CC

omonospace;FF4F

one;0031

onearabic;0661

onebengali;09E7

onecircle;2460

onecircleinversesansserif;278A

onedeva;0967

onedotenleader;2024

oneeighth;215B

onefitted;F6DC

onegujarati;0AE7

onegurmukhi;0A67

onehackarabic;0661

onehalf;00BD

onehangzhou;3021

oneideographicparen;3220

oneinferior;2081

onemonospace;FF11

onenumeratorbengali;09F4

oneoldstyle;F731

oneparen;2474

oneperiod;2488

onepersian;06F1

onequarter;00BC

oneroman;2170

onesuperior;00B9

onethai;0E51

onethird;2153

oogonek;01EB

oogonekmacron;01ED

oogurmukhi;0A13

oomatragurmukhi;0A4B

oopen;0254

oparen;24AA

openbullet;25E6

option;2325

ordfeminine;00AA

ordmasculine;00BA

orthogonal;221F

oshortdeva;0912

oshortvowelsigndeva;094A

oslash;00F8

oslashacute;01FF

osmallhiragana;3049

osmallkatakana;30A9

osmallkatakanahalfwidth;FF6B

ostrokeacute;01FF

osuperior;F6F0

otcyrillic;047F

otilde;00F5

otildeacute;1E4D

otildedieresis;1E4F

oubopomofo;3121

overline;203E

overlinecenterline;FE4A

overlinecmb;0305

overlinedashed;FE49

overlinedblwavy;FE4C

overlinewavy;FE4B

overscore;00AF

ovowelsignbengali;09CB

ovowelsigndeva;094B

ovowelsigngujarati;0ACB

p;0070

paampssquare;3380

paasentosquare;332B

pabengali;09AA

pacute;1E55

padeva;092A

pagedown;21DF

pageup;21DE

pagujarati;0AAA

pagurmukhi;0A2A

pahiragana;3071

paiyannoithai;0E2F

pakatakana;30D1

palatalizationcyrilliccmb;0484

palochkacyrillic;04C0

pansioskorean;317F

paragraph;00B6

parallel;2225

parenleft;0028

parenleftaltonearabic;FD3E

parenleftbt;F8ED

parenleftex;F8EC

parenleftinferior;208D

parenleftmonospace;FF08

parenleftsmall;FE59

parenleftsuperior;207D

parenlefttp;F8EB

parenleftvertical;FE35

parenright;0029

parenrightaltonearabic;FD3F

parenrightbt;F8F8

parenrightex;F8F7

parenrightinferior;208E

parenrightmonospace;FF09

parenrightsmall;FE5A

parenrightsuperior;207E

parenrighttp;F8F6

parenrightvertical;FE36

partialdiff;2202

paseqhebrew;05C0

pashtahebrew;0599

pasquare;33A9

patah;05B7

patah11;05B7

patah1d;05B7

patah2a;05B7

patahhebrew;05B7

patahnarrowhebrew;05B7

patahquarterhebrew;05B7

patahwidehebrew;05B7

pazerhebrew;05A1

pbopomofo;3106

pcircle;24DF

pdotaccent;1E57

pe;05E4

pecyrillic;043F

pedagesh;FB44

pedageshhebrew;FB44

peezisquare;333B

pefinaldageshhebrew;FB43

peharabic;067E

peharmenian;057A

pehebrew;05E4

pehfinalarabic;FB57

pehinitialarabic;FB58

pehiragana;307A

pehmedialarabic;FB59

pekatakana;30DA

pemiddlehookcyrillic;04A7

perafehebrew;FB4E

percent;0025

percentarabic;066A

percentmonospace;FF05

percentsmall;FE6A

period;002E

periodarmenian;0589

periodcentered;00B7

periodhalfwidth;FF61

periodinferior;F6E7

periodmonospace;FF0E

periodsmall;FE52

periodsuperior;F6E8

perispomenigreekcmb;0342

perpendicular;22A5

perthousand;2030

peseta;20A7

pfsquare;338A

phabengali;09AB

phadeva;092B

phagujarati;0AAB

phagurmukhi;0A2B

phi;03C6

phi1;03D5

phieuphacirclekorean;327A

phieuphaparenkorean;321A

phieuphcirclekorean;326C

phieuphkorean;314D

phieuphparenkorean;320C

philatin;0278

phinthuthai;0E3A

phisymbolgreek;03D5

phook;01A5

phophanthai;0E1E

phophungthai;0E1C

phosamphaothai;0E20

pi;03C0

pieupacirclekorean;3273

pieupaparenkorean;3213

pieupcieuckorean;3176

pieupcirclekorean;3265

pieupkiyeokkorean;3172

pieupkorean;3142

pieupparenkorean;3205

pieupsioskiyeokkorean;3174

pieupsioskorean;3144

pieupsiostikeutkorean;3175

pieupthieuthkorean;3177

pieuptikeutkorean;3173

pihiragana;3074

pikatakana;30D4

pisymbolgreek;03D6

piwrarmenian;0583

plus;002B

plusbelowcmb;031F

pluscircle;2295

plusminus;00B1

plusmod;02D6

plusmonospace;FF0B

plussmall;FE62

plussuperior;207A

pmonospace;FF50

pmsquare;33D8

pohiragana;307D

pointingindexdownwhite;261F

pointingindexleftwhite;261C

pointingindexrightwhite;261E

pointingindexupwhite;261D

pokatakana;30DD

poplathai;0E1B

postalmark;3012

postalmarkface;3020

pparen;24AB

precedes;227A

prescription;211E

primemod;02B9

primereversed;2035

product;220F

projective;2305

prolongedkana;30FC

propellor;2318

propersubset;2282

propersuperset;2283

proportion;2237

proportional;221D

psi;03C8

psicyrillic;0471

psilipneumatacyrilliccmb;0486

pssquare;33B0

puhiragana;3077

pukatakana;30D7

pvsquare;33B4

pwsquare;33BA

q;0071

qadeva;0958

qadmahebrew;05A8

qafarabic;0642

qaffinalarabic;FED6

qafinitialarabic;FED7

qafmedialarabic;FED8

qamats;05B8

qamats10;05B8

qamats1a;05B8

qamats1c;05B8

qamats27;05B8

qamats29;05B8

qamats33;05B8

qamatsde;05B8

qamatshebrew;05B8

qamatsnarrowhebrew;05B8

qamatsqatanhebrew;05B8

qamatsqatannarrowhebrew;05B8

qamatsqatanquarterhebrew;05B8

qamatsqatanwidehebrew;05B8

qamatsquarterhebrew;05B8

qamatswidehebrew;05B8

qarneyparahebrew;059F

qbopomofo;3111

qcircle;24E0

qhook;02A0

qmonospace;FF51

qof;05E7

qofdagesh;FB47

qofdageshhebrew;FB47

qofhatafpatah;05E7 05B2

qofhatafpatahhebrew;05E7 05B2

qofhatafsegol;05E7 05B1

qofhatafsegolhebrew;05E7 05B1

qofhebrew;05E7

qofhiriq;05E7 05B4

qofhiriqhebrew;05E7 05B4

qofholam;05E7 05B9

qofholamhebrew;05E7 05B9

qofpatah;05E7 05B7

qofpatahhebrew;05E7 05B7

qofqamats;05E7 05B8

qofqamatshebrew;05E7 05B8

qofqubuts;05E7 05BB

qofqubutshebrew;05E7 05BB

qofsegol;05E7 05B6

qofsegolhebrew;05E7 05B6

qofsheva;05E7 05B0

qofshevahebrew;05E7 05B0

qoftsere;05E7 05B5

qoftserehebrew;05E7 05B5

qparen;24AC

quarternote;2669

qubuts;05BB

qubuts18;05BB

qubuts25;05BB

qubuts31;05BB

qubutshebrew;05BB

qubutsnarrowhebrew;05BB

qubutsquarterhebrew;05BB

qubutswidehebrew;05BB

question;003F

questionarabic;061F

questionarmenian;055E

questiondown;00BF

questiondownsmall;F7BF

questiongreek;037E

questionmonospace;FF1F

questionsmall;F73F

quotedbl;0022

quotedblbase;201E

quotedblleft;201C

quotedblmonospace;FF02

quotedblprime;301E

quotedblprimereversed;301D

quotedblright;201D

quoteleft;2018

quoteleftreversed;201B

quotereversed;201B

quoteright;2019

quoterightn;0149

quotesinglbase;201A

quotesingle;0027

quotesinglemonospace;FF07

r;0072

raarmenian;057C

rabengali;09B0

racute;0155

radeva;0930

radical;221A

radicalex;F8E5

radoverssquare;33AE

radoverssquaredsquare;33AF

radsquare;33AD

rafe;05BF

rafehebrew;05BF

ragujarati;0AB0

ragurmukhi;0A30

rahiragana;3089

rakatakana;30E9

rakatakanahalfwidth;FF97

ralowerdiagonalbengali;09F1

ramiddlediagonalbengali;09F0

ramshorn;0264

ratio;2236

rbopomofo;3116

rcaron;0159

rcedilla;0157

rcircle;24E1

rcommaaccent;0157

rdblgrave;0211

rdotaccent;1E59

rdotbelow;1E5B

rdotbelowmacron;1E5D

referencemark;203B

reflexsubset;2286

reflexsuperset;2287

registered;00AE

registersans;F8E8

registerserif;F6DA

reharabic;0631

reharmenian;0580

rehfinalarabic;FEAE

rehiragana;308C

rehyehaleflamarabic;0631 FEF3 FE8E 0644

rekatakana;30EC

rekatakanahalfwidth;FF9A

resh;05E8

reshdageshhebrew;FB48

reshhatafpatah;05E8 05B2

reshhatafpatahhebrew;05E8 05B2

reshhatafsegol;05E8 05B1

reshhatafsegolhebrew;05E8 05B1

reshhebrew;05E8

reshhiriq;05E8 05B4

reshhiriqhebrew;05E8 05B4

reshholam;05E8 05B9

reshholamhebrew;05E8 05B9

reshpatah;05E8 05B7

reshpatahhebrew;05E8 05B7

reshqamats;05E8 05B8

reshqamatshebrew;05E8 05B8

reshqubuts;05E8 05BB

reshqubutshebrew;05E8 05BB

reshsegol;05E8 05B6

reshsegolhebrew;05E8 05B6

reshsheva;05E8 05B0

reshshevahebrew;05E8 05B0

reshtsere;05E8 05B5

reshtserehebrew;05E8 05B5

reversedtilde;223D

reviahebrew;0597

reviamugrashhebrew;0597

revlogicalnot;2310

rfishhook;027E

rfishhookreversed;027F

rhabengali;09DD

rhadeva;095D

rho;03C1

rhook;027D

rhookturned;027B

rhookturnedsuperior;02B5

rhosymbolgreek;03F1

rhotichookmod;02DE

rieulacirclekorean;3271

rieulaparenkorean;3211

rieulcirclekorean;3263

rieulhieuhkorean;3140

rieulkiyeokkorean;313A

rieulkiyeoksioskorean;3169

rieulkorean;3139

rieulmieumkorean;313B

rieulpansioskorean;316C

rieulparenkorean;3203

rieulphieuphkorean;313F

rieulpieupkorean;313C

rieulpieupsioskorean;316B

rieulsioskorean;313D

rieulthieuthkorean;313E

rieultikeutkorean;316A

rieulyeorinhieuhkorean;316D

rightangle;221F

righttackbelowcmb;0319

righttriangle;22BF

rihiragana;308A

rikatakana;30EA

rikatakanahalfwidth;FF98

ring;02DA

ringbelowcmb;0325

ringcmb;030A

ringhalfleft;02BF

ringhalfleftarmenian;0559

ringhalfleftbelowcmb;031C

ringhalfleftcentered;02D3

ringhalfright;02BE

ringhalfrightbelowcmb;0339

ringhalfrightcentered;02D2

rinvertedbreve;0213

rittorusquare;3351

rlinebelow;1E5F

rlongleg;027C

rlonglegturned;027A

rmonospace;FF52

rohiragana;308D

rokatakana;30ED

rokatakanahalfwidth;FF9B

roruathai;0E23

rparen;24AD

rrabengali;09DC

rradeva;0931

rragurmukhi;0A5C

rreharabic;0691

rrehfinalarabic;FB8D

rrvocalicbengali;09E0

rrvocalicdeva;0960

rrvocalicgujarati;0AE0

rrvocalicvowelsignbengali;09C4

rrvocalicvowelsigndeva;0944

rrvocalicvowelsigngujarati;0AC4

rsuperior;F6F1

rtblock;2590

rturned;0279

rturnedsuperior;02B4

ruhiragana;308B

rukatakana;30EB

rukatakanahalfwidth;FF99

rupeemarkbengali;09F2

rupeesignbengali;09F3

rupiah;F6DD

ruthai;0E24

rvocalicbengali;098B

rvocalicdeva;090B

rvocalicgujarati;0A8B

rvocalicvowelsignbengali;09C3

rvocalicvowelsigndeva;0943

rvocalicvowelsigngujarati;0AC3

s;0073

sabengali;09B8

sacute;015B

sacutedotaccent;1E65

sadarabic;0635

sadeva;0938

sadfinalarabic;FEBA

sadinitialarabic;FEBB

sadmedialarabic;FEBC

sagujarati;0AB8

sagurmukhi;0A38

sahiragana;3055

sakatakana;30B5

sakatakanahalfwidth;FF7B

sallallahoualayhewasallamarabic;FDFA

samekh;05E1

samekhdagesh;FB41

samekhdageshhebrew;FB41

samekhhebrew;05E1

saraaathai;0E32

saraaethai;0E41

saraaimaimalaithai;0E44

saraaimaimuanthai;0E43

saraamthai;0E33

saraathai;0E30

saraethai;0E40

saraiileftthai;F886

saraiithai;0E35

saraileftthai;F885

saraithai;0E34

saraothai;0E42

saraueeleftthai;F888

saraueethai;0E37

saraueleftthai;F887

sarauethai;0E36

sarauthai;0E38

sarauuthai;0E39

sbopomofo;3119

scaron;0161

scarondotaccent;1E67

scedilla;015F

schwa;0259

schwacyrillic;04D9

schwadieresiscyrillic;04DB

schwahook;025A

scircle;24E2

scircumflex;015D

scommaaccent;0219

sdotaccent;1E61

sdotbelow;1E63

sdotbelowdotaccent;1E69

seagullbelowcmb;033C

second;2033

secondtonechinese;02CA

section;00A7

seenarabic;0633

seenfinalarabic;FEB2

seeninitialarabic;FEB3

seenmedialarabic;FEB4

segol;05B6

segol13;05B6

segol1f;05B6

segol2c;05B6

segolhebrew;05B6

segolnarrowhebrew;05B6

segolquarterhebrew;05B6

segoltahebrew;0592

segolwidehebrew;05B6

seharmenian;057D

sehiragana;305B

sekatakana;30BB

sekatakanahalfwidth;FF7E

semicolon;003B

semicolonarabic;061B

semicolonmonospace;FF1B

semicolonsmall;FE54

semivoicedmarkkana;309C

semivoicedmarkkanahalfwidth;FF9F

sentisquare;3322

sentosquare;3323

seven;0037

sevenarabic;0667

sevenbengali;09ED

sevencircle;2466

sevencircleinversesansserif;2790

sevendeva;096D

seveneighths;215E

sevengujarati;0AED

sevengurmukhi;0A6D

sevenhackarabic;0667

sevenhangzhou;3027

sevenideographicparen;3226

seveninferior;2087

sevenmonospace;FF17

sevenoldstyle;F737

sevenparen;247A

sevenperiod;248E

sevenpersian;06F7

sevenroman;2176

sevensuperior;2077

seventeencircle;2470

seventeenparen;2484

seventeenperiod;2498

seventhai;0E57

sfthyphen;00AD

shaarmenian;0577

shabengali;09B6

shacyrillic;0448

shaddaarabic;0651

shaddadammaarabic;FC61

shaddadammatanarabic;FC5E

shaddafathaarabic;FC60

shaddafathatanarabic;0651 064B

shaddakasraarabic;FC62

shaddakasratanarabic;FC5F

shade;2592

shadedark;2593

shadelight;2591

shademedium;2592

shadeva;0936

shagujarati;0AB6

shagurmukhi;0A36

shalshelethebrew;0593

shbopomofo;3115

shchacyrillic;0449

sheenarabic;0634

sheenfinalarabic;FEB6

sheeninitialarabic;FEB7

sheenmedialarabic;FEB8

sheicoptic;03E3

sheqel;20AA

sheqelhebrew;20AA

sheva;05B0

sheva115;05B0

sheva15;05B0

sheva22;05B0

sheva2e;05B0

shevahebrew;05B0

shevanarrowhebrew;05B0

shevaquarterhebrew;05B0

shevawidehebrew;05B0

shhacyrillic;04BB

shimacoptic;03ED

shin;05E9

shindagesh;FB49

shindageshhebrew;FB49

shindageshshindot;FB2C

shindageshshindothebrew;FB2C

shindageshsindot;FB2D

shindageshsindothebrew;FB2D

shindothebrew;05C1

shinhebrew;05E9

shinshindot;FB2A

shinshindothebrew;FB2A

shinsindot;FB2B

shinsindothebrew;FB2B

shook;0282

sigma;03C3

sigma1;03C2

sigmafinal;03C2

sigmalunatesymbolgreek;03F2

sihiragana;3057

sikatakana;30B7

sikatakanahalfwidth;FF7C

siluqhebrew;05BD

siluqlefthebrew;05BD

similar;223C

sindothebrew;05C2

siosacirclekorean;3274

siosaparenkorean;3214

sioscieuckorean;317E

sioscirclekorean;3266

sioskiyeokkorean;317A

sioskorean;3145

siosnieunkorean;317B

siosparenkorean;3206

siospieupkorean;317D

siostikeutkorean;317C

six;0036

sixarabic;0666

sixbengali;09EC

sixcircle;2465

sixcircleinversesansserif;278F

sixdeva;096C

sixgujarati;0AEC

sixgurmukhi;0A6C

sixhackarabic;0666

sixhangzhou;3026

sixideographicparen;3225

sixinferior;2086

sixmonospace;FF16

sixoldstyle;F736

sixparen;2479

sixperiod;248D

sixpersian;06F6

sixroman;2175

sixsuperior;2076

sixteencircle;246F

sixteencurrencydenominatorbengali;09F9

sixteenparen;2483

sixteenperiod;2497

sixthai;0E56

slash;002F

slashmonospace;FF0F

slong;017F

slongdotaccent;1E9B

smileface;263A

smonospace;FF53

sofpasuqhebrew;05C3

softhyphen;00AD

softsigncyrillic;044C

sohiragana;305D

sokatakana;30BD

sokatakanahalfwidth;FF7F

soliduslongoverlaycmb;0338

solidusshortoverlaycmb;0337

sorusithai;0E29

sosalathai;0E28

sosothai;0E0B

sosuathai;0E2A

space;0020

spacehackarabic;0020

spade;2660

spadesuitblack;2660

spadesuitwhite;2664

sparen;24AE

squarebelowcmb;033B

squarecc;33C4

squarecm;339D

squarediagonalcrosshatchfill;25A9

squarehorizontalfill;25A4

squarekg;338F

squarekm;339E

squarekmcapital;33CE

squareln;33D1

squarelog;33D2

squaremg;338E

squaremil;33D5

squaremm;339C

squaremsquared;33A1

squareorthogonalcrosshatchfill;25A6

squareupperlefttolowerrightfill;25A7

squareupperrighttolowerleftfill;25A8

squareverticalfill;25A5

squarewhitewithsmallblack;25A3

srsquare;33DB

ssabengali;09B7

ssadeva;0937

ssagujarati;0AB7

ssangcieuckorean;3149

ssanghieuhkorean;3185

ssangieungkorean;3180

ssangkiyeokkorean;3132

ssangnieunkorean;3165

ssangpieupkorean;3143

ssangsioskorean;3146

ssangtikeutkorean;3138

ssuperior;F6F2

sterling;00A3

sterlingmonospace;FFE1

strokelongoverlaycmb;0336

strokeshortoverlaycmb;0335

subset;2282

subsetnotequal;228A

subsetorequal;2286

succeeds;227B

suchthat;220B

suhiragana;3059

sukatakana;30B9

sukatakanahalfwidth;FF7D

sukunarabic;0652

summation;2211

sun;263C

superset;2283

supersetnotequal;228B

supersetorequal;2287

svsquare;33DC

syouwaerasquare;337C

t;0074

tabengali;09A4

tackdown;22A4

tackleft;22A3

tadeva;0924

tagujarati;0AA4

tagurmukhi;0A24

taharabic;0637

tahfinalarabic;FEC2

tahinitialarabic;FEC3

tahiragana;305F

tahmedialarabic;FEC4

taisyouerasquare;337D

takatakana;30BF

takatakanahalfwidth;FF80

tatweelarabic;0640

tau;03C4

tav;05EA

tavdages;FB4A

tavdagesh;FB4A

tavdageshhebrew;FB4A

tavhebrew;05EA

tbar;0167

tbopomofo;310A

tcaron;0165

tccurl;02A8

tcedilla;0163

tcheharabic;0686

tchehfinalarabic;FB7B

tchehinitialarabic;FB7C

tchehmedialarabic;FB7D

tchehmeeminitialarabic;FB7C FEE4

tcircle;24E3

tcircumflexbelow;1E71

tcommaaccent;0163

tdieresis;1E97

tdotaccent;1E6B

tdotbelow;1E6D

tecyrillic;0442

tedescendercyrillic;04AD

teharabic;062A

tehfinalarabic;FE96

tehhahinitialarabic;FCA2

tehhahisolatedarabic;FC0C

tehinitialarabic;FE97

tehiragana;3066

tehjeeminitialarabic;FCA1

tehjeemisolatedarabic;FC0B

tehmarbutaarabic;0629

tehmarbutafinalarabic;FE94

tehmedialarabic;FE98

tehmeeminitialarabic;FCA4

tehmeemisolatedarabic;FC0E

tehnoonfinalarabic;FC73

tekatakana;30C6

tekatakanahalfwidth;FF83

telephone;2121

telephoneblack;260E

telishagedolahebrew;05A0

telishaqetanahebrew;05A9

tencircle;2469

tenideographicparen;3229

tenparen;247D

tenperiod;2491

tenroman;2179

tesh;02A7

tet;05D8

tetdagesh;FB38

tetdageshhebrew;FB38

tethebrew;05D8

tetsecyrillic;04B5

tevirhebrew;059B

tevirlefthebrew;059B

thabengali;09A5

thadeva;0925

thagujarati;0AA5

thagurmukhi;0A25

thalarabic;0630

thalfinalarabic;FEAC

thanthakhatlowleftthai;F898

thanthakhatlowrightthai;F897

thanthakhatthai;0E4C

thanthakhatupperleftthai;F896

theharabic;062B

thehfinalarabic;FE9A

thehinitialarabic;FE9B

thehmedialarabic;FE9C

thereexists;2203

therefore;2234

theta;03B8

theta1;03D1

thetasymbolgreek;03D1

thieuthacirclekorean;3279

thieuthaparenkorean;3219

thieuthcirclekorean;326B

thieuthkorean;314C

thieuthparenkorean;320B

thirteencircle;246C

thirteenparen;2480

thirteenperiod;2494

thonangmonthothai;0E11

thook;01AD

thophuthaothai;0E12

thorn;00FE

thothahanthai;0E17

thothanthai;0E10

thothongthai;0E18

thothungthai;0E16

thousandcyrillic;0482

thousandsseparatorarabic;066C

thousandsseparatorpersian;066C

three;0033

threearabic;0663

threebengali;09E9

threecircle;2462

threecircleinversesansserif;278C

threedeva;0969

threeeighths;215C

threegujarati;0AE9

threegurmukhi;0A69

threehackarabic;0663

threehangzhou;3023

threeideographicparen;3222

threeinferior;2083

threemonospace;FF13

threenumeratorbengali;09F6

threeoldstyle;F733

threeparen;2476

threeperiod;248A

threepersian;06F3

threequarters;00BE

threequartersemdash;F6DE

threeroman;2172

threesuperior;00B3

threethai;0E53

thzsquare;3394

tihiragana;3061

tikatakana;30C1

tikatakanahalfwidth;FF81

tikeutacirclekorean;3270

tikeutaparenkorean;3210

tikeutcirclekorean;3262

tikeutkorean;3137

tikeutparenkorean;3202

tilde;02DC

tildebelowcmb;0330

tildecmb;0303

tildecomb;0303

tildedoublecmb;0360

tildeoperator;223C

tildeoverlaycmb;0334

tildeverticalcmb;033E

timescircle;2297

tipehahebrew;0596

tipehalefthebrew;0596

tippigurmukhi;0A70

titlocyrilliccmb;0483

tiwnarmenian;057F

tlinebelow;1E6F

tmonospace;FF54

toarmenian;0569

tohiragana;3068

tokatakana;30C8

tokatakanahalfwidth;FF84

tonebarextrahighmod;02E5

tonebarextralowmod;02E9

tonebarhighmod;02E6

tonebarlowmod;02E8

tonebarmidmod;02E7

tonefive;01BD

tonesix;0185

tonetwo;01A8

tonos;0384

tonsquare;3327

topatakthai;0E0F

tortoiseshellbracketleft;3014

tortoiseshellbracketleftsmall;FE5D

tortoiseshellbracketleftvertical;FE39

tortoiseshellbracketright;3015

tortoiseshellbracketrightsmall;FE5E

tortoiseshellbracketrightvertical;FE3A

totaothai;0E15

tpalatalhook;01AB

tparen;24AF

trademark;2122

trademarksans;F8EA

trademarkserif;F6DB

tretroflexhook;0288

triagdn;25BC

triaglf;25C4

triagrt;25BA

triagup;25B2

ts;02A6

tsadi;05E6

tsadidagesh;FB46

tsadidageshhebrew;FB46

tsadihebrew;05E6

tsecyrillic;0446

tsere;05B5

tsere12;05B5

tsere1e;05B5

tsere2b;05B5

tserehebrew;05B5

tserenarrowhebrew;05B5

tserequarterhebrew;05B5

tserewidehebrew;05B5

tshecyrillic;045B

tsuperior;F6F3

ttabengali;099F

ttadeva;091F

ttagujarati;0A9F

ttagurmukhi;0A1F

tteharabic;0679

ttehfinalarabic;FB67

ttehinitialarabic;FB68

ttehmedialarabic;FB69

tthabengali;09A0

tthadeva;0920

tthagujarati;0AA0

tthagurmukhi;0A20

tturned;0287

tuhiragana;3064

tukatakana;30C4

tukatakanahalfwidth;FF82

tusmallhiragana;3063

tusmallkatakana;30C3

tusmallkatakanahalfwidth;FF6F

twelvecircle;246B

twelveparen;247F

twelveperiod;2493

twelveroman;217B

twentycircle;2473

twentyhangzhou;5344

twentyparen;2487

twentyperiod;249B

two;0032

twoarabic;0662

twobengali;09E8

twocircle;2461

twocircleinversesansserif;278B

twodeva;0968

twodotenleader;2025

twodotleader;2025

twodotleadervertical;FE30

twogujarati;0AE8

twogurmukhi;0A68

twohackarabic;0662

twohangzhou;3022

twoideographicparen;3221

twoinferior;2082

twomonospace;FF12

twonumeratorbengali;09F5

twooldstyle;F732

twoparen;2475

twoperiod;2489

twopersian;06F2

tworoman;2171

twostroke;01BB

twosuperior;00B2

twothai;0E52

twothirds;2154

u;0075

uacute;00FA

ubar;0289

ubengali;0989

ubopomofo;3128

ubreve;016D

ucaron;01D4

ucircle;24E4

ucircumflex;00FB

ucircumflexbelow;1E77

ucyrillic;0443

udattadeva;0951

udblacute;0171

udblgrave;0215

udeva;0909

udieresis;00FC

udieresisacute;01D8

udieresisbelow;1E73

udieresiscaron;01DA

udieresiscyrillic;04F1

udieresisgrave;01DC

udieresismacron;01D6

udotbelow;1EE5

ugrave;00F9

ugujarati;0A89

ugurmukhi;0A09

uhiragana;3046

uhookabove;1EE7

uhorn;01B0

uhornacute;1EE9

uhorndotbelow;1EF1

uhorngrave;1EEB

uhornhookabove;1EED

uhorntilde;1EEF

uhungarumlaut;0171

uhungarumlautcyrillic;04F3

uinvertedbreve;0217

ukatakana;30A6

ukatakanahalfwidth;FF73

ukcyrillic;0479

ukorean;315C

umacron;016B

umacroncyrillic;04EF

umacrondieresis;1E7B

umatragurmukhi;0A41

umonospace;FF55

underscore;005F

underscoredbl;2017

underscoremonospace;FF3F

underscorevertical;FE33

underscorewavy;FE4F

union;222A

universal;2200

uogonek;0173

uparen;24B0

upblock;2580

upperdothebrew;05C4

upsilon;03C5

upsilondieresis;03CB

upsilondieresistonos;03B0

upsilonlatin;028A

upsilontonos;03CD

uptackbelowcmb;031D

uptackmod;02D4

uragurmukhi;0A73

uring;016F

ushortcyrillic;045E

usmallhiragana;3045

usmallkatakana;30A5

usmallkatakanahalfwidth;FF69

ustraightcyrillic;04AF

ustraightstrokecyrillic;04B1

utilde;0169

utildeacute;1E79

utildebelow;1E75

uubengali;098A

uudeva;090A

uugujarati;0A8A

uugurmukhi;0A0A

uumatragurmukhi;0A42

uuvowelsignbengali;09C2

uuvowelsigndeva;0942

uuvowelsigngujarati;0AC2

uvowelsignbengali;09C1

uvowelsigndeva;0941

uvowelsigngujarati;0AC1

v;0076

vadeva;0935

vagujarati;0AB5

vagurmukhi;0A35

vakatakana;30F7

vav;05D5

vavdagesh;FB35

vavdagesh65;FB35

vavdageshhebrew;FB35

vavhebrew;05D5

vavholam;FB4B

vavholamhebrew;FB4B

vavvavhebrew;05F0

vavyodhebrew;05F1

vcircle;24E5

vdotbelow;1E7F

vecyrillic;0432

veharabic;06A4

vehfinalarabic;FB6B

vehinitialarabic;FB6C

vehmedialarabic;FB6D

vekatakana;30F9

venus;2640

verticalbar;007C

verticallineabovecmb;030D

verticallinebelowcmb;0329

verticallinelowmod;02CC

verticallinemod;02C8

vewarmenian;057E

vhook;028B

vikatakana;30F8

viramabengali;09CD

viramadeva;094D

viramagujarati;0ACD

visargabengali;0983

visargadeva;0903

visargagujarati;0A83

vmonospace;FF56

voarmenian;0578

voicediterationhiragana;309E

voicediterationkatakana;30FE

voicedmarkkana;309B

voicedmarkkanahalfwidth;FF9E

vokatakana;30FA

vparen;24B1

vtilde;1E7D

vturned;028C

vuhiragana;3094

vukatakana;30F4

w;0077

wacute;1E83

waekorean;3159

wahiragana;308F

wakatakana;30EF

wakatakanahalfwidth;FF9C

wakorean;3158

wasmallhiragana;308E

wasmallkatakana;30EE

wattosquare;3357

wavedash;301C

wavyunderscorevertical;FE34

wawarabic;0648

wawfinalarabic;FEEE

wawhamzaabovearabic;0624

wawhamzaabovefinalarabic;FE86

wbsquare;33DD

wcircle;24E6

wcircumflex;0175

wdieresis;1E85

wdotaccent;1E87

wdotbelow;1E89

wehiragana;3091

weierstrass;2118

wekatakana;30F1

wekorean;315E

weokorean;315D

wgrave;1E81

whitebullet;25E6

whitecircle;25CB

whitecircleinverse;25D9

whitecornerbracketleft;300E

whitecornerbracketleftvertical;FE43

whitecornerbracketright;300F

whitecornerbracketrightvertical;FE44

whitediamond;25C7

whitediamondcontainingblacksmalldiamond;25C8

whitedownpointingsmalltriangle;25BF

whitedownpointingtriangle;25BD

whiteleftpointingsmalltriangle;25C3

whiteleftpointingtriangle;25C1

whitelenticularbracketleft;3016

whitelenticularbracketright;3017

whiterightpointingsmalltriangle;25B9

whiterightpointingtriangle;25B7

whitesmallsquare;25AB

whitesmilingface;263A

whitesquare;25A1

whitestar;2606

whitetelephone;260F

whitetortoiseshellbracketleft;3018

whitetortoiseshellbracketright;3019

whiteuppointingsmalltriangle;25B5

whiteuppointingtriangle;25B3

wihiragana;3090

wikatakana;30F0

wikorean;315F

wmonospace;FF57

wohiragana;3092

wokatakana;30F2

wokatakanahalfwidth;FF66

won;20A9

wonmonospace;FFE6

wowaenthai;0E27

wparen;24B2

wring;1E98

wsuperior;02B7

wturned;028D

wynn;01BF

x;0078

xabovecmb;033D

xbopomofo;3112

xcircle;24E7

xdieresis;1E8D

xdotaccent;1E8B

xeharmenian;056D

xi;03BE

xmonospace;FF58

xparen;24B3

xsuperior;02E3

y;0079

yaadosquare;334E

yabengali;09AF

yacute;00FD

yadeva;092F

yaekorean;3152

yagujarati;0AAF

yagurmukhi;0A2F

yahiragana;3084

yakatakana;30E4

yakatakanahalfwidth;FF94

yakorean;3151

yamakkanthai;0E4E

yasmallhiragana;3083

yasmallkatakana;30E3

yasmallkatakanahalfwidth;FF6C

yatcyrillic;0463

ycircle;24E8

ycircumflex;0177

ydieresis;00FF

ydotaccent;1E8F

ydotbelow;1EF5

yeharabic;064A

yehbarreearabic;06D2

yehbarreefinalarabic;FBAF

yehfinalarabic;FEF2

yehhamzaabovearabic;0626

yehhamzaabovefinalarabic;FE8A

yehhamzaaboveinitialarabic;FE8B

yehhamzaabovemedialarabic;FE8C

yehinitialarabic;FEF3

yehmedialarabic;FEF4

yehmeeminitialarabic;FCDD

yehmeemisolatedarabic;FC58

yehnoonfinalarabic;FC94

yehthreedotsbelowarabic;06D1

yekorean;3156

yen;00A5

yenmonospace;FFE5

yeokorean;3155

yeorinhieuhkorean;3186

yerahbenyomohebrew;05AA

yerahbenyomolefthebrew;05AA

yericyrillic;044B

yerudieresiscyrillic;04F9

yesieungkorean;3181

yesieungpansioskorean;3183

yesieungsioskorean;3182

yetivhebrew;059A

ygrave;1EF3

yhook;01B4

yhookabove;1EF7

yiarmenian;0575

yicyrillic;0457

yikorean;3162

yinyang;262F

yiwnarmenian;0582

ymonospace;FF59

yod;05D9

yoddagesh;FB39

yoddageshhebrew;FB39

yodhebrew;05D9

yodyodhebrew;05F2

yodyodpatahhebrew;FB1F

yohiragana;3088

yoikorean;3189

yokatakana;30E8

yokatakanahalfwidth;FF96

yokorean;315B

yosmallhiragana;3087

yosmallkatakana;30E7

yosmallkatakanahalfwidth;FF6E

yotgreek;03F3

yoyaekorean;3188

yoyakorean;3187

yoyakthai;0E22

yoyingthai;0E0D

yparen;24B4

ypogegrammeni;037A

ypogegrammenigreekcmb;0345

yr;01A6

yring;1E99

ysuperior;02B8

ytilde;1EF9

yturned;028E

yuhiragana;3086

yuikorean;318C

yukatakana;30E6

yukatakanahalfwidth;FF95

yukorean;3160

yusbigcyrillic;046B

yusbigiotifiedcyrillic;046D

yuslittlecyrillic;0467

yuslittleiotifiedcyrillic;0469

yusmallhiragana;3085

yusmallkatakana;30E5

yusmallkatakanahalfwidth;FF6D

yuyekorean;318B

yuyeokorean;318A

yyabengali;09DF

yyadeva;095F

z;007A

zaarmenian;0566

zacute;017A

zadeva;095B

zagurmukhi;0A5B

zaharabic;0638

zahfinalarabic;FEC6

zahinitialarabic;FEC7

zahiragana;3056

zahmedialarabic;FEC8

zainarabic;0632

zainfinalarabic;FEB0

zakatakana;30B6

zaqefgadolhebrew;0595

zaqefqatanhebrew;0594

zarqahebrew;0598

zayin;05D6

zayindagesh;FB36

zayindageshhebrew;FB36

zayinhebrew;05D6

zbopomofo;3117

zcaron;017E

zcircle;24E9

zcircumflex;1E91

zcurl;0291

zdot;017C

zdotaccent;017C

zdotbelow;1E93

zecyrillic;0437

zedescendercyrillic;0499

zedieresiscyrillic;04DF

zehiragana;305C

zekatakana;30BC

zero;0030

zeroarabic;0660

zerobengali;09E6

zerodeva;0966

zerogujarati;0AE6

zerogurmukhi;0A66

zerohackarabic;0660

zeroinferior;2080

zeromonospace;FF10

zerooldstyle;F730

zeropersian;06F0

zerosuperior;2070

zerothai;0E50

zerowidthjoiner;FEFF

zerowidthnonjoiner;200C

zerowidthspace;200B

zeta;03B6

zhbopomofo;3113

zhearmenian;056A

zhebrevecyrillic;04C2

zhecyrillic;0436

zhedescendercyrillic;0497

zhedieresiscyrillic;04DD

zihiragana;3058

zikatakana;30B8

zinorhebrew;05AE

zlinebelow;1E95

zmonospace;FF5A

zohiragana;305E

zokatakana;30BE

zparen;24B5

zretroflexhook;0290

zstroke;01B6

zuhiragana;305A

zukatakana;30BA

# END

"""


_aglfnText = """\

# -----------------------------------------------------------

# Copyright 2002-2019 Adobe (http://www.adobe.com/).

#

# Redistribution and use in source and binary forms, with or

# without modification, are permitted provided that the

# following conditions are met:

#

# Redistributions of source code must retain the above

# copyright notice, this list of conditions and the following

# disclaimer.

#

# Redistributions in binary form must reproduce the above

# copyright notice, this list of conditions and the following

# disclaimer in the documentation and/or other materials

# provided with the distribution.

#

# Neither the name of Adobe nor the names of its contributors

# may be used to endorse or promote products derived from this

# software without specific prior written permission.

#

# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND

# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,

# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR

# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT

# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN

# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# -----------------------------------------------------------

# Name:          Adobe Glyph List For New Fonts

# Table version: 1.7

# Date:          November 6, 2008

# URL:           https://github.com/adobe-type-tools/agl-aglfn

#

# Description:

#

# AGLFN (Adobe Glyph List For New Fonts) provides a list of base glyph

# names that are recommended for new fonts, which are compatible with

# the AGL (Adobe Glyph List) Specification, and which should be used

# as described in Section 6 of that document. AGLFN comprises the set

# of glyph names from AGL that map via the AGL Specification rules to

# the semantically correct UV (Unicode Value). For example, "Asmall"

# is omitted because AGL maps this glyph name to the PUA (Private Use

# Area) value U+F761, rather than to the UV that maps from the glyph

# name "A." Also omitted is "ffi," because AGL maps this to the

# Alphabetic Presentation Forms value U+FB03, rather than decomposing

# it into the following sequence of three UVs: U+0066, U+0066, and

# U+0069. The name "arrowvertex" has been omitted because this glyph

# now has a real UV, and AGL is now incorrect in mapping it to the PUA

# value U+F8E6. If you do not find an appropriate name for your glyph

# in this list, then please refer to Section 6 of the AGL

# Specification.

#

# Format: three semicolon-delimited fields:

#   (1) Standard UV or CUS UV--four uppercase hexadecimal digits

#   (2) Glyph name--upper/lowercase letters and digits

#   (3) Character names: Unicode character names for standard UVs, and

#       descriptive names for CUS UVs--uppercase letters, hyphen, and

#       space

#

# The records are sorted by glyph name in increasing ASCII order,

# entries with the same glyph name are sorted in decreasing priority

# order, the UVs and Unicode character names are provided for

# convenience, lines starting with "#" are comments, and blank lines

# should be ignored.

#

# Revision History:

#

# 1.7 [6 November 2008]

# - Reverted to the original 1.4 and earlier mappings for Delta,

#   Omega, and mu.

# - Removed mappings for "afii" names. These should now be assigned

#   "uni" names.

# - Removed mappings for "commaaccent" names. These should now be

#   assigned "uni" names.

#

# 1.6 [30 January 2006]

# - Completed work intended in 1.5.

#

# 1.5 [23 November 2005]

# - Removed duplicated block at end of file.

# - Changed mappings:

#   2206;Delta;INCREMENT changed to 0394;Delta;GREEK CAPITAL LETTER DELTA

#   2126;Omega;OHM SIGN changed to 03A9;Omega;GREEK CAPITAL LETTER OMEGA

#   03BC;mu;MICRO SIGN changed to 03BC;mu;GREEK SMALL LETTER MU

# - Corrected statement above about why "ffi" is omitted.

#

# 1.4 [24 September 2003]

# - Changed version to 1.4, to avoid confusion with the AGL 1.3.

# - Fixed spelling errors in the header.

# - Fully removed "arrowvertex," as it is mapped only to a PUA Unicode

#   value in some fonts.

#

# 1.1 [17 April 2003]

# - Renamed [Tt]cedilla back to [Tt]commaaccent.

#

# 1.0 [31 January 2003]

# - Original version.

# - Derived from the AGLv1.2 by:

#   removing the PUA area codes;

#   removing duplicate Unicode mappings; and

#   renaming "tcommaaccent" to "tcedilla" and "Tcommaaccent" to "Tcedilla"

#

0041;A;LATIN CAPITAL LETTER A

00C6;AE;LATIN CAPITAL LETTER AE

01FC;AEacute;LATIN CAPITAL LETTER AE WITH ACUTE

00C1;Aacute;LATIN CAPITAL LETTER A WITH ACUTE

0102;Abreve;LATIN CAPITAL LETTER A WITH BREVE

00C2;Acircumflex;LATIN CAPITAL LETTER A WITH CIRCUMFLEX

00C4;Adieresis;LATIN CAPITAL LETTER A WITH DIAERESIS

00C0;Agrave;LATIN CAPITAL LETTER A WITH GRAVE

0391;Alpha;GREEK CAPITAL LETTER ALPHA

0386;Alphatonos;GREEK CAPITAL LETTER ALPHA WITH TONOS

0100;Amacron;LATIN CAPITAL LETTER A WITH MACRON

0104;Aogonek;LATIN CAPITAL LETTER A WITH OGONEK

00C5;Aring;LATIN CAPITAL LETTER A WITH RING ABOVE

01FA;Aringacute;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE

00C3;Atilde;LATIN CAPITAL LETTER A WITH TILDE

0042;B;LATIN CAPITAL LETTER B

0392;Beta;GREEK CAPITAL LETTER BETA

0043;C;LATIN CAPITAL LETTER C

0106;Cacute;LATIN CAPITAL LETTER C WITH ACUTE

010C;Ccaron;LATIN CAPITAL LETTER C WITH CARON

00C7;Ccedilla;LATIN CAPITAL LETTER C WITH CEDILLA

0108;Ccircumflex;LATIN CAPITAL LETTER C WITH CIRCUMFLEX

010A;Cdotaccent;LATIN CAPITAL LETTER C WITH DOT ABOVE

03A7;Chi;GREEK CAPITAL LETTER CHI

0044;D;LATIN CAPITAL LETTER D

010E;Dcaron;LATIN CAPITAL LETTER D WITH CARON

0110;Dcroat;LATIN CAPITAL LETTER D WITH STROKE

2206;Delta;INCREMENT

0045;E;LATIN CAPITAL LETTER E

00C9;Eacute;LATIN CAPITAL LETTER E WITH ACUTE

0114;Ebreve;LATIN CAPITAL LETTER E WITH BREVE

011A;Ecaron;LATIN CAPITAL LETTER E WITH CARON

00CA;Ecircumflex;LATIN CAPITAL LETTER E WITH CIRCUMFLEX

00CB;Edieresis;LATIN CAPITAL LETTER E WITH DIAERESIS

0116;Edotaccent;LATIN CAPITAL LETTER E WITH DOT ABOVE

00C8;Egrave;LATIN CAPITAL LETTER E WITH GRAVE

0112;Emacron;LATIN CAPITAL LETTER E WITH MACRON

014A;Eng;LATIN CAPITAL LETTER ENG

0118;Eogonek;LATIN CAPITAL LETTER E WITH OGONEK

0395;Epsilon;GREEK CAPITAL LETTER EPSILON

0388;Epsilontonos;GREEK CAPITAL LETTER EPSILON WITH TONOS

0397;Eta;GREEK CAPITAL LETTER ETA

0389;Etatonos;GREEK CAPITAL LETTER ETA WITH TONOS

00D0;Eth;LATIN CAPITAL LETTER ETH

20AC;Euro;EURO SIGN

0046;F;LATIN CAPITAL LETTER F

0047;G;LATIN CAPITAL LETTER G

0393;Gamma;GREEK CAPITAL LETTER GAMMA

011E;Gbreve;LATIN CAPITAL LETTER G WITH BREVE

01E6;Gcaron;LATIN CAPITAL LETTER G WITH CARON

011C;Gcircumflex;LATIN CAPITAL LETTER G WITH CIRCUMFLEX

0120;Gdotaccent;LATIN CAPITAL LETTER G WITH DOT ABOVE

0048;H;LATIN CAPITAL LETTER H

25CF;H18533;BLACK CIRCLE

25AA;H18543;BLACK SMALL SQUARE

25AB;H18551;WHITE SMALL SQUARE

25A1;H22073;WHITE SQUARE

0126;Hbar;LATIN CAPITAL LETTER H WITH STROKE

0124;Hcircumflex;LATIN CAPITAL LETTER H WITH CIRCUMFLEX

0049;I;LATIN CAPITAL LETTER I

0132;IJ;LATIN CAPITAL LIGATURE IJ

00CD;Iacute;LATIN CAPITAL LETTER I WITH ACUTE

012C;Ibreve;LATIN CAPITAL LETTER I WITH BREVE

00CE;Icircumflex;LATIN CAPITAL LETTER I WITH CIRCUMFLEX

00CF;Idieresis;LATIN CAPITAL LETTER I WITH DIAERESIS

0130;Idotaccent;LATIN CAPITAL LETTER I WITH DOT ABOVE

2111;Ifraktur;BLACK-LETTER CAPITAL I

00CC;Igrave;LATIN CAPITAL LETTER I WITH GRAVE

012A;Imacron;LATIN CAPITAL LETTER I WITH MACRON

012E;Iogonek;LATIN CAPITAL LETTER I WITH OGONEK

0399;Iota;GREEK CAPITAL LETTER IOTA

03AA;Iotadieresis;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA

038A;Iotatonos;GREEK CAPITAL LETTER IOTA WITH TONOS

0128;Itilde;LATIN CAPITAL LETTER I WITH TILDE

004A;J;LATIN CAPITAL LETTER J

0134;Jcircumflex;LATIN CAPITAL LETTER J WITH CIRCUMFLEX

004B;K;LATIN CAPITAL LETTER K

039A;Kappa;GREEK CAPITAL LETTER KAPPA

004C;L;LATIN CAPITAL LETTER L

0139;Lacute;LATIN CAPITAL LETTER L WITH ACUTE

039B;Lambda;GREEK CAPITAL LETTER LAMDA

013D;Lcaron;LATIN CAPITAL LETTER L WITH CARON

013F;Ldot;LATIN CAPITAL LETTER L WITH MIDDLE DOT

0141;Lslash;LATIN CAPITAL LETTER L WITH STROKE

004D;M;LATIN CAPITAL LETTER M

039C;Mu;GREEK CAPITAL LETTER MU

004E;N;LATIN CAPITAL LETTER N

0143;Nacute;LATIN CAPITAL LETTER N WITH ACUTE

0147;Ncaron;LATIN CAPITAL LETTER N WITH CARON

00D1;Ntilde;LATIN CAPITAL LETTER N WITH TILDE

039D;Nu;GREEK CAPITAL LETTER NU

004F;O;LATIN CAPITAL LETTER O

0152;OE;LATIN CAPITAL LIGATURE OE

00D3;Oacute;LATIN CAPITAL LETTER O WITH ACUTE

014E;Obreve;LATIN CAPITAL LETTER O WITH BREVE

00D4;Ocircumflex;LATIN CAPITAL LETTER O WITH CIRCUMFLEX

00D6;Odieresis;LATIN CAPITAL LETTER O WITH DIAERESIS

00D2;Ograve;LATIN CAPITAL LETTER O WITH GRAVE

01A0;Ohorn;LATIN CAPITAL LETTER O WITH HORN

0150;Ohungarumlaut;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE

014C;Omacron;LATIN CAPITAL LETTER O WITH MACRON

2126;Omega;OHM SIGN

038F;Omegatonos;GREEK CAPITAL LETTER OMEGA WITH TONOS

039F;Omicron;GREEK CAPITAL LETTER OMICRON

038C;Omicrontonos;GREEK CAPITAL LETTER OMICRON WITH TONOS

00D8;Oslash;LATIN CAPITAL LETTER O WITH STROKE

01FE;Oslashacute;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE

00D5;Otilde;LATIN CAPITAL LETTER O WITH TILDE

0050;P;LATIN CAPITAL LETTER P

03A6;Phi;GREEK CAPITAL LETTER PHI

03A0;Pi;GREEK CAPITAL LETTER PI

03A8;Psi;GREEK CAPITAL LETTER PSI

0051;Q;LATIN CAPITAL LETTER Q

0052;R;LATIN CAPITAL LETTER R

0154;Racute;LATIN CAPITAL LETTER R WITH ACUTE

0158;Rcaron;LATIN CAPITAL LETTER R WITH CARON

211C;Rfraktur;BLACK-LETTER CAPITAL R

03A1;Rho;GREEK CAPITAL LETTER RHO

0053;S;LATIN CAPITAL LETTER S

250C;SF010000;BOX DRAWINGS LIGHT DOWN AND RIGHT

2514;SF020000;BOX DRAWINGS LIGHT UP AND RIGHT

2510;SF030000;BOX DRAWINGS LIGHT DOWN AND LEFT

2518;SF040000;BOX DRAWINGS LIGHT UP AND LEFT

253C;SF050000;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL

252C;SF060000;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL

2534;SF070000;BOX DRAWINGS LIGHT UP AND HORIZONTAL

251C;SF080000;BOX DRAWINGS LIGHT VERTICAL AND RIGHT

2524;SF090000;BOX DRAWINGS LIGHT VERTICAL AND LEFT

2500;SF100000;BOX DRAWINGS LIGHT HORIZONTAL

2502;SF110000;BOX DRAWINGS LIGHT VERTICAL

2561;SF190000;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE

2562;SF200000;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE

2556;SF210000;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE

2555;SF220000;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE

2563;SF230000;BOX DRAWINGS DOUBLE VERTICAL AND LEFT

2551;SF240000;BOX DRAWINGS DOUBLE VERTICAL

2557;SF250000;BOX DRAWINGS DOUBLE DOWN AND LEFT

255D;SF260000;BOX DRAWINGS DOUBLE UP AND LEFT

255C;SF270000;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE

255B;SF280000;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE

255E;SF360000;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE

255F;SF370000;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE

255A;SF380000;BOX DRAWINGS DOUBLE UP AND RIGHT

2554;SF390000;BOX DRAWINGS DOUBLE DOWN AND RIGHT

2569;SF400000;BOX DRAWINGS DOUBLE UP AND HORIZONTAL

2566;SF410000;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL

2560;SF420000;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT

2550;SF430000;BOX DRAWINGS DOUBLE HORIZONTAL

256C;SF440000;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL

2567;SF450000;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE

2568;SF460000;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE

2564;SF470000;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE

2565;SF480000;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE

2559;SF490000;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE

2558;SF500000;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE

2552;SF510000;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE

2553;SF520000;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE

256B;SF530000;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE

256A;SF540000;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE

015A;Sacute;LATIN CAPITAL LETTER S WITH ACUTE

0160;Scaron;LATIN CAPITAL LETTER S WITH CARON

015E;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA

015C;Scircumflex;LATIN CAPITAL LETTER S WITH CIRCUMFLEX

03A3;Sigma;GREEK CAPITAL LETTER SIGMA

0054;T;LATIN CAPITAL LETTER T

03A4;Tau;GREEK CAPITAL LETTER TAU

0166;Tbar;LATIN CAPITAL LETTER T WITH STROKE

0164;Tcaron;LATIN CAPITAL LETTER T WITH CARON

0398;Theta;GREEK CAPITAL LETTER THETA

00DE;Thorn;LATIN CAPITAL LETTER THORN

0055;U;LATIN CAPITAL LETTER U

00DA;Uacute;LATIN CAPITAL LETTER U WITH ACUTE

016C;Ubreve;LATIN CAPITAL LETTER U WITH BREVE

00DB;Ucircumflex;LATIN CAPITAL LETTER U WITH CIRCUMFLEX

00DC;Udieresis;LATIN CAPITAL LETTER U WITH DIAERESIS

00D9;Ugrave;LATIN CAPITAL LETTER U WITH GRAVE

01AF;Uhorn;LATIN CAPITAL LETTER U WITH HORN

0170;Uhungarumlaut;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE

016A;Umacron;LATIN CAPITAL LETTER U WITH MACRON

0172;Uogonek;LATIN CAPITAL LETTER U WITH OGONEK

03A5;Upsilon;GREEK CAPITAL LETTER UPSILON

03D2;Upsilon1;GREEK UPSILON WITH HOOK SYMBOL

03AB;Upsilondieresis;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA

038E;Upsilontonos;GREEK CAPITAL LETTER UPSILON WITH TONOS

016E;Uring;LATIN CAPITAL LETTER U WITH RING ABOVE

0168;Utilde;LATIN CAPITAL LETTER U WITH TILDE

0056;V;LATIN CAPITAL LETTER V

0057;W;LATIN CAPITAL LETTER W

1E82;Wacute;LATIN CAPITAL LETTER W WITH ACUTE

0174;Wcircumflex;LATIN CAPITAL LETTER W WITH CIRCUMFLEX

1E84;Wdieresis;LATIN CAPITAL LETTER W WITH DIAERESIS

1E80;Wgrave;LATIN CAPITAL LETTER W WITH GRAVE

0058;X;LATIN CAPITAL LETTER X

039E;Xi;GREEK CAPITAL LETTER XI

0059;Y;LATIN CAPITAL LETTER Y

00DD;Yacute;LATIN CAPITAL LETTER Y WITH ACUTE

0176;Ycircumflex;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX

0178;Ydieresis;LATIN CAPITAL LETTER Y WITH DIAERESIS

1EF2;Ygrave;LATIN CAPITAL LETTER Y WITH GRAVE

005A;Z;LATIN CAPITAL LETTER Z

0179;Zacute;LATIN CAPITAL LETTER Z WITH ACUTE

017D;Zcaron;LATIN CAPITAL LETTER Z WITH CARON

017B;Zdotaccent;LATIN CAPITAL LETTER Z WITH DOT ABOVE

0396;Zeta;GREEK CAPITAL LETTER ZETA

0061;a;LATIN SMALL LETTER A

00E1;aacute;LATIN SMALL LETTER A WITH ACUTE

0103;abreve;LATIN SMALL LETTER A WITH BREVE

00E2;acircumflex;LATIN SMALL LETTER A WITH CIRCUMFLEX

00B4;acute;ACUTE ACCENT

0301;acutecomb;COMBINING ACUTE ACCENT

00E4;adieresis;LATIN SMALL LETTER A WITH DIAERESIS

00E6;ae;LATIN SMALL LETTER AE

01FD;aeacute;LATIN SMALL LETTER AE WITH ACUTE

00E0;agrave;LATIN SMALL LETTER A WITH GRAVE

2135;aleph;ALEF SYMBOL

03B1;alpha;GREEK SMALL LETTER ALPHA

03AC;alphatonos;GREEK SMALL LETTER ALPHA WITH TONOS

0101;amacron;LATIN SMALL LETTER A WITH MACRON

0026;ampersand;AMPERSAND

2220;angle;ANGLE

2329;angleleft;LEFT-POINTING ANGLE BRACKET

232A;angleright;RIGHT-POINTING ANGLE BRACKET

0387;anoteleia;GREEK ANO TELEIA

0105;aogonek;LATIN SMALL LETTER A WITH OGONEK

2248;approxequal;ALMOST EQUAL TO

00E5;aring;LATIN SMALL LETTER A WITH RING ABOVE

01FB;aringacute;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE

2194;arrowboth;LEFT RIGHT ARROW

21D4;arrowdblboth;LEFT RIGHT DOUBLE ARROW

21D3;arrowdbldown;DOWNWARDS DOUBLE ARROW

21D0;arrowdblleft;LEFTWARDS DOUBLE ARROW

21D2;arrowdblright;RIGHTWARDS DOUBLE ARROW

21D1;arrowdblup;UPWARDS DOUBLE ARROW

2193;arrowdown;DOWNWARDS ARROW

2190;arrowleft;LEFTWARDS ARROW

2192;arrowright;RIGHTWARDS ARROW

2191;arrowup;UPWARDS ARROW

2195;arrowupdn;UP DOWN ARROW

21A8;arrowupdnbse;UP DOWN ARROW WITH BASE

005E;asciicircum;CIRCUMFLEX ACCENT

007E;asciitilde;TILDE

002A;asterisk;ASTERISK

2217;asteriskmath;ASTERISK OPERATOR

0040;at;COMMERCIAL AT

00E3;atilde;LATIN SMALL LETTER A WITH TILDE

0062;b;LATIN SMALL LETTER B

005C;backslash;REVERSE SOLIDUS

007C;bar;VERTICAL LINE

03B2;beta;GREEK SMALL LETTER BETA

2588;block;FULL BLOCK

007B;braceleft;LEFT CURLY BRACKET

007D;braceright;RIGHT CURLY BRACKET

005B;bracketleft;LEFT SQUARE BRACKET

005D;bracketright;RIGHT SQUARE BRACKET

02D8;breve;BREVE

00A6;brokenbar;BROKEN BAR

2022;bullet;BULLET

0063;c;LATIN SMALL LETTER C

0107;cacute;LATIN SMALL LETTER C WITH ACUTE

02C7;caron;CARON

21B5;carriagereturn;DOWNWARDS ARROW WITH CORNER LEFTWARDS

010D;ccaron;LATIN SMALL LETTER C WITH CARON

00E7;ccedilla;LATIN SMALL LETTER C WITH CEDILLA

0109;ccircumflex;LATIN SMALL LETTER C WITH CIRCUMFLEX

010B;cdotaccent;LATIN SMALL LETTER C WITH DOT ABOVE

00B8;cedilla;CEDILLA

00A2;cent;CENT SIGN

03C7;chi;GREEK SMALL LETTER CHI

25CB;circle;WHITE CIRCLE

2297;circlemultiply;CIRCLED TIMES

2295;circleplus;CIRCLED PLUS

02C6;circumflex;MODIFIER LETTER CIRCUMFLEX ACCENT

2663;club;BLACK CLUB SUIT

003A;colon;COLON

20A1;colonmonetary;COLON SIGN

002C;comma;COMMA

2245;congruent;APPROXIMATELY EQUAL TO

00A9;copyright;COPYRIGHT SIGN

00A4;currency;CURRENCY SIGN

0064;d;LATIN SMALL LETTER D

2020;dagger;DAGGER

2021;daggerdbl;DOUBLE DAGGER

010F;dcaron;LATIN SMALL LETTER D WITH CARON

0111;dcroat;LATIN SMALL LETTER D WITH STROKE

00B0;degree;DEGREE SIGN

03B4;delta;GREEK SMALL LETTER DELTA

2666;diamond;BLACK DIAMOND SUIT

00A8;dieresis;DIAERESIS

0385;dieresistonos;GREEK DIALYTIKA TONOS

00F7;divide;DIVISION SIGN

2593;dkshade;DARK SHADE

2584;dnblock;LOWER HALF BLOCK

0024;dollar;DOLLAR SIGN

20AB;dong;DONG SIGN

02D9;dotaccent;DOT ABOVE

0323;dotbelowcomb;COMBINING DOT BELOW

0131;dotlessi;LATIN SMALL LETTER DOTLESS I

22C5;dotmath;DOT OPERATOR

0065;e;LATIN SMALL LETTER E

00E9;eacute;LATIN SMALL LETTER E WITH ACUTE

0115;ebreve;LATIN SMALL LETTER E WITH BREVE

011B;ecaron;LATIN SMALL LETTER E WITH CARON

00EA;ecircumflex;LATIN SMALL LETTER E WITH CIRCUMFLEX

00EB;edieresis;LATIN SMALL LETTER E WITH DIAERESIS

0117;edotaccent;LATIN SMALL LETTER E WITH DOT ABOVE

00E8;egrave;LATIN SMALL LETTER E WITH GRAVE

0038;eight;DIGIT EIGHT

2208;element;ELEMENT OF

2026;ellipsis;HORIZONTAL ELLIPSIS

0113;emacron;LATIN SMALL LETTER E WITH MACRON

2014;emdash;EM DASH

2205;emptyset;EMPTY SET

2013;endash;EN DASH

014B;eng;LATIN SMALL LETTER ENG

0119;eogonek;LATIN SMALL LETTER E WITH OGONEK

03B5;epsilon;GREEK SMALL LETTER EPSILON

03AD;epsilontonos;GREEK SMALL LETTER EPSILON WITH TONOS

003D;equal;EQUALS SIGN

2261;equivalence;IDENTICAL TO

212E;estimated;ESTIMATED SYMBOL

03B7;eta;GREEK SMALL LETTER ETA

03AE;etatonos;GREEK SMALL LETTER ETA WITH TONOS

00F0;eth;LATIN SMALL LETTER ETH

0021;exclam;EXCLAMATION MARK

203C;exclamdbl;DOUBLE EXCLAMATION MARK

00A1;exclamdown;INVERTED EXCLAMATION MARK

2203;existential;THERE EXISTS

0066;f;LATIN SMALL LETTER F

2640;female;FEMALE SIGN

2012;figuredash;FIGURE DASH

25A0;filledbox;BLACK SQUARE

25AC;filledrect;BLACK RECTANGLE

0035;five;DIGIT FIVE

215D;fiveeighths;VULGAR FRACTION FIVE EIGHTHS

0192;florin;LATIN SMALL LETTER F WITH HOOK

0034;four;DIGIT FOUR

2044;fraction;FRACTION SLASH

20A3;franc;FRENCH FRANC SIGN

0067;g;LATIN SMALL LETTER G

03B3;gamma;GREEK SMALL LETTER GAMMA

011F;gbreve;LATIN SMALL LETTER G WITH BREVE

01E7;gcaron;LATIN SMALL LETTER G WITH CARON

011D;gcircumflex;LATIN SMALL LETTER G WITH CIRCUMFLEX

0121;gdotaccent;LATIN SMALL LETTER G WITH DOT ABOVE

00DF;germandbls;LATIN SMALL LETTER SHARP S

2207;gradient;NABLA

0060;grave;GRAVE ACCENT

0300;gravecomb;COMBINING GRAVE ACCENT

003E;greater;GREATER-THAN SIGN

2265;greaterequal;GREATER-THAN OR EQUAL TO

00AB;guillemotleft;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK

00BB;guillemotright;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK

2039;guilsinglleft;SINGLE LEFT-POINTING ANGLE QUOTATION MARK

203A;guilsinglright;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK

0068;h;LATIN SMALL LETTER H

0127;hbar;LATIN SMALL LETTER H WITH STROKE

0125;hcircumflex;LATIN SMALL LETTER H WITH CIRCUMFLEX

2665;heart;BLACK HEART SUIT

0309;hookabovecomb;COMBINING HOOK ABOVE

2302;house;HOUSE

02DD;hungarumlaut;DOUBLE ACUTE ACCENT

002D;hyphen;HYPHEN-MINUS

0069;i;LATIN SMALL LETTER I

00ED;iacute;LATIN SMALL LETTER I WITH ACUTE

012D;ibreve;LATIN SMALL LETTER I WITH BREVE

00EE;icircumflex;LATIN SMALL LETTER I WITH CIRCUMFLEX

00EF;idieresis;LATIN SMALL LETTER I WITH DIAERESIS

00EC;igrave;LATIN SMALL LETTER I WITH GRAVE

0133;ij;LATIN SMALL LIGATURE IJ

012B;imacron;LATIN SMALL LETTER I WITH MACRON

221E;infinity;INFINITY

222B;integral;INTEGRAL

2321;integralbt;BOTTOM HALF INTEGRAL

2320;integraltp;TOP HALF INTEGRAL

2229;intersection;INTERSECTION

25D8;invbullet;INVERSE BULLET

25D9;invcircle;INVERSE WHITE CIRCLE

263B;invsmileface;BLACK SMILING FACE

012F;iogonek;LATIN SMALL LETTER I WITH OGONEK

03B9;iota;GREEK SMALL LETTER IOTA

03CA;iotadieresis;GREEK SMALL LETTER IOTA WITH DIALYTIKA

0390;iotadieresistonos;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS

03AF;iotatonos;GREEK SMALL LETTER IOTA WITH TONOS

0129;itilde;LATIN SMALL LETTER I WITH TILDE

006A;j;LATIN SMALL LETTER J

0135;jcircumflex;LATIN SMALL LETTER J WITH CIRCUMFLEX

006B;k;LATIN SMALL LETTER K

03BA;kappa;GREEK SMALL LETTER KAPPA

0138;kgreenlandic;LATIN SMALL LETTER KRA

006C;l;LATIN SMALL LETTER L

013A;lacute;LATIN SMALL LETTER L WITH ACUTE

03BB;lambda;GREEK SMALL LETTER LAMDA

013E;lcaron;LATIN SMALL LETTER L WITH CARON

0140;ldot;LATIN SMALL LETTER L WITH MIDDLE DOT

003C;less;LESS-THAN SIGN

2264;lessequal;LESS-THAN OR EQUAL TO

258C;lfblock;LEFT HALF BLOCK

20A4;lira;LIRA SIGN

2227;logicaland;LOGICAL AND

00AC;logicalnot;NOT SIGN

2228;logicalor;LOGICAL OR

017F;longs;LATIN SMALL LETTER LONG S

25CA;lozenge;LOZENGE

0142;lslash;LATIN SMALL LETTER L WITH STROKE

2591;ltshade;LIGHT SHADE

006D;m;LATIN SMALL LETTER M

00AF;macron;MACRON

2642;male;MALE SIGN

2212;minus;MINUS SIGN

2032;minute;PRIME

00B5;mu;MICRO SIGN

00D7;multiply;MULTIPLICATION SIGN

266A;musicalnote;EIGHTH NOTE

266B;musicalnotedbl;BEAMED EIGHTH NOTES

006E;n;LATIN SMALL LETTER N

0144;nacute;LATIN SMALL LETTER N WITH ACUTE

0149;napostrophe;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE

0148;ncaron;LATIN SMALL LETTER N WITH CARON

0039;nine;DIGIT NINE

2209;notelement;NOT AN ELEMENT OF

2260;notequal;NOT EQUAL TO

2284;notsubset;NOT A SUBSET OF

00F1;ntilde;LATIN SMALL LETTER N WITH TILDE

03BD;nu;GREEK SMALL LETTER NU

0023;numbersign;NUMBER SIGN

006F;o;LATIN SMALL LETTER O

00F3;oacute;LATIN SMALL LETTER O WITH ACUTE

014F;obreve;LATIN SMALL LETTER O WITH BREVE

00F4;ocircumflex;LATIN SMALL LETTER O WITH CIRCUMFLEX

00F6;odieresis;LATIN SMALL LETTER O WITH DIAERESIS

0153;oe;LATIN SMALL LIGATURE OE

02DB;ogonek;OGONEK

00F2;ograve;LATIN SMALL LETTER O WITH GRAVE

01A1;ohorn;LATIN SMALL LETTER O WITH HORN

0151;ohungarumlaut;LATIN SMALL LETTER O WITH DOUBLE ACUTE

014D;omacron;LATIN SMALL LETTER O WITH MACRON

03C9;omega;GREEK SMALL LETTER OMEGA

03D6;omega1;GREEK PI SYMBOL

03CE;omegatonos;GREEK SMALL LETTER OMEGA WITH TONOS

03BF;omicron;GREEK SMALL LETTER OMICRON

03CC;omicrontonos;GREEK SMALL LETTER OMICRON WITH TONOS

0031;one;DIGIT ONE

2024;onedotenleader;ONE DOT LEADER

215B;oneeighth;VULGAR FRACTION ONE EIGHTH

00BD;onehalf;VULGAR FRACTION ONE HALF

00BC;onequarter;VULGAR FRACTION ONE QUARTER

2153;onethird;VULGAR FRACTION ONE THIRD

25E6;openbullet;WHITE BULLET

00AA;ordfeminine;FEMININE ORDINAL INDICATOR

00BA;ordmasculine;MASCULINE ORDINAL INDICATOR

221F;orthogonal;RIGHT ANGLE

00F8;oslash;LATIN SMALL LETTER O WITH STROKE

01FF;oslashacute;LATIN SMALL LETTER O WITH STROKE AND ACUTE

00F5;otilde;LATIN SMALL LETTER O WITH TILDE

0070;p;LATIN SMALL LETTER P

00B6;paragraph;PILCROW SIGN

0028;parenleft;LEFT PARENTHESIS

0029;parenright;RIGHT PARENTHESIS

2202;partialdiff;PARTIAL DIFFERENTIAL

0025;percent;PERCENT SIGN

002E;period;FULL STOP

00B7;periodcentered;MIDDLE DOT

22A5;perpendicular;UP TACK

2030;perthousand;PER MILLE SIGN

20A7;peseta;PESETA SIGN

03C6;phi;GREEK SMALL LETTER PHI

03D5;phi1;GREEK PHI SYMBOL

03C0;pi;GREEK SMALL LETTER PI

002B;plus;PLUS SIGN

00B1;plusminus;PLUS-MINUS SIGN

211E;prescription;PRESCRIPTION TAKE

220F;product;N-ARY PRODUCT

2282;propersubset;SUBSET OF

2283;propersuperset;SUPERSET OF

221D;proportional;PROPORTIONAL TO

03C8;psi;GREEK SMALL LETTER PSI

0071;q;LATIN SMALL LETTER Q

003F;question;QUESTION MARK

00BF;questiondown;INVERTED QUESTION MARK

0022;quotedbl;QUOTATION MARK

201E;quotedblbase;DOUBLE LOW-9 QUOTATION MARK

201C;quotedblleft;LEFT DOUBLE QUOTATION MARK

201D;quotedblright;RIGHT DOUBLE QUOTATION MARK

2018;quoteleft;LEFT SINGLE QUOTATION MARK

201B;quotereversed;SINGLE HIGH-REVERSED-9 QUOTATION MARK

2019;quoteright;RIGHT SINGLE QUOTATION MARK

201A;quotesinglbase;SINGLE LOW-9 QUOTATION MARK

0027;quotesingle;APOSTROPHE

0072;r;LATIN SMALL LETTER R

0155;racute;LATIN SMALL LETTER R WITH ACUTE

221A;radical;SQUARE ROOT

0159;rcaron;LATIN SMALL LETTER R WITH CARON

2286;reflexsubset;SUBSET OF OR EQUAL TO

2287;reflexsuperset;SUPERSET OF OR EQUAL TO

00AE;registered;REGISTERED SIGN

2310;revlogicalnot;REVERSED NOT SIGN

03C1;rho;GREEK SMALL LETTER RHO

02DA;ring;RING ABOVE

2590;rtblock;RIGHT HALF BLOCK

0073;s;LATIN SMALL LETTER S

015B;sacute;LATIN SMALL LETTER S WITH ACUTE

0161;scaron;LATIN SMALL LETTER S WITH CARON

015F;scedilla;LATIN SMALL LETTER S WITH CEDILLA

015D;scircumflex;LATIN SMALL LETTER S WITH CIRCUMFLEX

2033;second;DOUBLE PRIME

00A7;section;SECTION SIGN

003B;semicolon;SEMICOLON

0037;seven;DIGIT SEVEN

215E;seveneighths;VULGAR FRACTION SEVEN EIGHTHS

2592;shade;MEDIUM SHADE

03C3;sigma;GREEK SMALL LETTER SIGMA

03C2;sigma1;GREEK SMALL LETTER FINAL SIGMA

223C;similar;TILDE OPERATOR

0036;six;DIGIT SIX

002F;slash;SOLIDUS

263A;smileface;WHITE SMILING FACE

0020;space;SPACE

2660;spade;BLACK SPADE SUIT

00A3;sterling;POUND SIGN

220B;suchthat;CONTAINS AS MEMBER

2211;summation;N-ARY SUMMATION

263C;sun;WHITE SUN WITH RAYS

0074;t;LATIN SMALL LETTER T

03C4;tau;GREEK SMALL LETTER TAU

0167;tbar;LATIN SMALL LETTER T WITH STROKE

0165;tcaron;LATIN SMALL LETTER T WITH CARON

2234;therefore;THEREFORE

03B8;theta;GREEK SMALL LETTER THETA

03D1;theta1;GREEK THETA SYMBOL

00FE;thorn;LATIN SMALL LETTER THORN

0033;three;DIGIT THREE

215C;threeeighths;VULGAR FRACTION THREE EIGHTHS

00BE;threequarters;VULGAR FRACTION THREE QUARTERS

02DC;tilde;SMALL TILDE

0303;tildecomb;COMBINING TILDE

0384;tonos;GREEK TONOS

2122;trademark;TRADE MARK SIGN

25BC;triagdn;BLACK DOWN-POINTING TRIANGLE

25C4;triaglf;BLACK LEFT-POINTING POINTER

25BA;triagrt;BLACK RIGHT-POINTING POINTER

25B2;triagup;BLACK UP-POINTING TRIANGLE

0032;two;DIGIT TWO

2025;twodotenleader;TWO DOT LEADER

2154;twothirds;VULGAR FRACTION TWO THIRDS

0075;u;LATIN SMALL LETTER U

00FA;uacute;LATIN SMALL LETTER U WITH ACUTE

016D;ubreve;LATIN SMALL LETTER U WITH BREVE

00FB;ucircumflex;LATIN SMALL LETTER U WITH CIRCUMFLEX

00FC;udieresis;LATIN SMALL LETTER U WITH DIAERESIS

00F9;ugrave;LATIN SMALL LETTER U WITH GRAVE

01B0;uhorn;LATIN SMALL LETTER U WITH HORN

0171;uhungarumlaut;LATIN SMALL LETTER U WITH DOUBLE ACUTE

016B;umacron;LATIN SMALL LETTER U WITH MACRON

005F;underscore;LOW LINE

2017;underscoredbl;DOUBLE LOW LINE

222A;union;UNION

2200;universal;FOR ALL

0173;uogonek;LATIN SMALL LETTER U WITH OGONEK

2580;upblock;UPPER HALF BLOCK

03C5;upsilon;GREEK SMALL LETTER UPSILON

03CB;upsilondieresis;GREEK SMALL LETTER UPSILON WITH DIALYTIKA

03B0;upsilondieresistonos;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS

03CD;upsilontonos;GREEK SMALL LETTER UPSILON WITH TONOS

016F;uring;LATIN SMALL LETTER U WITH RING ABOVE

0169;utilde;LATIN SMALL LETTER U WITH TILDE

0076;v;LATIN SMALL LETTER V

0077;w;LATIN SMALL LETTER W

1E83;wacute;LATIN SMALL LETTER W WITH ACUTE

0175;wcircumflex;LATIN SMALL LETTER W WITH CIRCUMFLEX

1E85;wdieresis;LATIN SMALL LETTER W WITH DIAERESIS

2118;weierstrass;SCRIPT CAPITAL P

1E81;wgrave;LATIN SMALL LETTER W WITH GRAVE

0078;x;LATIN SMALL LETTER X

03BE;xi;GREEK SMALL LETTER XI

0079;y;LATIN SMALL LETTER Y

00FD;yacute;LATIN SMALL LETTER Y WITH ACUTE

0177;ycircumflex;LATIN SMALL LETTER Y WITH CIRCUMFLEX

00FF;ydieresis;LATIN SMALL LETTER Y WITH DIAERESIS

00A5;yen;YEN SIGN

1EF3;ygrave;LATIN SMALL LETTER Y WITH GRAVE

007A;z;LATIN SMALL LETTER Z

017A;zacute;LATIN SMALL LETTER Z WITH ACUTE

017E;zcaron;LATIN SMALL LETTER Z WITH CARON

017C;zdotaccent;LATIN SMALL LETTER Z WITH DOT ABOVE

0030;zero;DIGIT ZERO

03B6;zeta;GREEK SMALL LETTER ZETA

# END

"""


class AGLError(Exception):
    pass


LEGACY_AGL2UV = {}
AGL2UV = {}
UV2AGL = {}


def _builddicts():
    import re

    lines = _aglText.splitlines()

    parseAGL_RE = re.compile("([A-Za-z0-9]+);((?:[0-9A-F]{4})(?: (?:[0-9A-F]{4}))*)$")

    for line in lines:
        if not line or line[:1] == "#":
            continue
        m = parseAGL_RE.match(line)
        if not m:
            raise AGLError("syntax error in glyphlist.txt: %s" % repr(line[:20]))
        unicodes = m.group(2)
        assert len(unicodes) % 5 == 4
        unicodes = [int(unicode, 16) for unicode in unicodes.split()]
        glyphName = tostr(m.group(1))
        LEGACY_AGL2UV[glyphName] = unicodes

    lines = _aglfnText.splitlines()

    parseAGLFN_RE = re.compile("([0-9A-F]{4});([A-Za-z0-9]+);.*?$")

    for line in lines:
        if not line or line[:1] == "#":
            continue
        m = parseAGLFN_RE.match(line)
        if not m:
            raise AGLError("syntax error in aglfn.txt: %s" % repr(line[:20]))
        unicode = m.group(1)
        assert len(unicode) == 4
        unicode = int(unicode, 16)
        glyphName = tostr(m.group(2))
        AGL2UV[glyphName] = unicode
        UV2AGL[unicode] = glyphName


_builddicts()


def toUnicode(glyph, isZapfDingbats=False):
    """Convert glyph names to Unicode, such as ``'longs_t.oldstyle'`` --> ``u'ſt'``



    If ``isZapfDingbats`` is ``True``, the implementation recognizes additional

    glyph names (as required by the AGL specification).

    """
    # https://github.com/adobe-type-tools/agl-specification#2-the-mapping
    #
    # 1. Drop all the characters from the glyph name starting with
    #    the first occurrence of a period (U+002E; FULL STOP), if any.
    glyph = glyph.split(".", 1)[0]

    # 2. Split the remaining string into a sequence of components,
    #    using underscore (U+005F; LOW LINE) as the delimiter.
    components = glyph.split("_")

    # 3. Map each component to a character string according to the
    #    procedure below, and concatenate those strings; the result
    #     is the character string to which the glyph name is mapped.
    result = [_glyphComponentToUnicode(c, isZapfDingbats) for c in components]
    return "".join(result)


def _glyphComponentToUnicode(component, isZapfDingbats):
    # If the font is Zapf Dingbats (PostScript FontName: ZapfDingbats),
    # and the component is in the ITC Zapf Dingbats Glyph List, then
    # map it to the corresponding character in that list.
    dingbat = _zapfDingbatsToUnicode(component) if isZapfDingbats else None
    if dingbat:
        return dingbat

    # Otherwise, if the component is in AGL, then map it
    # to the corresponding character in that list.
    uchars = LEGACY_AGL2UV.get(component)
    if uchars:
        return "".join(map(chr, uchars))

    # Otherwise, if the component is of the form "uni" (U+0075,
    # U+006E, and U+0069) followed by a sequence of uppercase
    # hexadecimal digits (0–9 and A–F, meaning U+0030 through
    # U+0039 and U+0041 through U+0046), if the length of that
    # sequence is a multiple of four, and if each group of four
    # digits represents a value in the ranges 0000 through D7FF
    # or E000 through FFFF, then interpret each as a Unicode scalar
    # value and map the component to the string made of those
    # scalar values. Note that the range and digit-length
    # restrictions mean that the "uni" glyph name prefix can be
    # used only with UVs in the Basic Multilingual Plane (BMP).
    uni = _uniToUnicode(component)
    if uni:
        return uni

    # Otherwise, if the component is of the form "u" (U+0075)
    # followed by a sequence of four to six uppercase hexadecimal
    # digits (0–9 and A–F, meaning U+0030 through U+0039 and
    # U+0041 through U+0046), and those digits represents a value
    # in the ranges 0000 through D7FF or E000 through 10FFFF, then
    # interpret it as a Unicode scalar value and map the component
    # to the string made of this scalar value.
    uni = _uToUnicode(component)
    if uni:
        return uni

    # Otherwise, map the component to an empty string.
    return ""


# https://github.com/adobe-type-tools/agl-aglfn/blob/master/zapfdingbats.txt
_AGL_ZAPF_DINGBATS = (
    " ✁✂✄☎✆✝✞✟✠✡☛☞✌✍✎✏✑✒✓✔✕✖✗✘✙✚✛✜✢✣✤✥✦✧★✩✪✫✬✭✮✯✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀"
    "❁❂❃❄❅❆❇❈❉❊❋●❍■❏❑▲▼◆❖ ◗❘❙❚❯❱❲❳❨❩❬❭❪❫❴❵❛❜❝❞❡❢❣❤✐❥❦❧♠♥♦♣    ✉✈✇"
    "①②③④⑤⑥⑦⑧⑨⑩❶❷❸❹❺❻❼❽❾❿➀➁➂➃➄➅➆➇➈➉➊➋➌➍➎➏➐➑➒➓➔→➣↔"
    "↕➙➛➜➝➞➟➠➡➢➤➥➦➧➨➩➫➭➯➲➳➵➸➺➻➼➽➾➚➪➶➹➘➴➷➬➮➱✃❐❒❮❰"
)


def _zapfDingbatsToUnicode(glyph):
    """Helper for toUnicode()."""
    if len(glyph) < 2 or glyph[0] != "a":
        return None
    try:
        gid = int(glyph[1:])
    except ValueError:
        return None
    if gid < 0 or gid >= len(_AGL_ZAPF_DINGBATS):
        return None
    uchar = _AGL_ZAPF_DINGBATS[gid]
    return uchar if uchar != " " else None


_re_uni = re.compile("^uni([0-9A-F]+)$")


def _uniToUnicode(component):
    """Helper for toUnicode() to handle "uniABCD" components."""
    match = _re_uni.match(component)
    if match is None:
        return None
    digits = match.group(1)
    if len(digits) % 4 != 0:
        return None
    chars = [int(digits[i : i + 4], 16) for i in range(0, len(digits), 4)]
    if any(c >= 0xD800 and c <= 0xDFFF for c in chars):
        # The AGL specification explicitly excluded surrogate pairs.
        return None
    return "".join([chr(c) for c in chars])


_re_u = re.compile("^u([0-9A-F]{4,6})$")


def _uToUnicode(component):
    """Helper for toUnicode() to handle "u1ABCD" components."""
    match = _re_u.match(component)
    if match is None:
        return None
    digits = match.group(1)
    try:
        value = int(digits, 16)
    except ValueError:
        return None
    if (value >= 0x0000 and value <= 0xD7FF) or (value >= 0xE000 and value <= 0x10FFFF):
        return chr(value)
    return None