feat(unicode,datastruct): port Unicode tables and data structures

ghostty-unicode: Ghostty computes codepoint properties with the uucode
Zig package (v0.2.0, Unicode 17.0.0). There is no Rust equivalent, so
a trimmed UCD set is vendored in ucd/ and build.rs re-implements
uucode's derivations: cell width rules incl. Ghostty's overrides for
emoji modifiers and Prepend, grapheme break classes with the
compile-time grapheme_break state table, the is_symbol set, and emoji
presentation. Lookups are three array indexes per codepoint. Validated
against the official GraphemeBreakTest.txt.

ghostty-datastruct: split_tree (used for GTK splits; f16 ratios so
rounding and debug diagrams match Zig), circ_buf, lru, cache_table,
blocking_queue, segmented_pool, message_data, comparison,
array_list_collection. intrusive_linked_list is not needed (lru is
index based). lru now reports the evicted (old) key, Zig reported the
new key, which appears to be a bug.

Not yet covered: case_folding_full (needed by input bindings).

Test Plan:
- cargo test -p ghostty-unicode (16) -p ghostty-datastruct (88)
- cargo clippy for both crates with -D warnings
This commit is contained in:
ddidderr committed 2026-10-11 21:54:57 +02:00
1 parent b96984b020
commit 5b8c92b98c
31 files changed
+18468 -3

No files matched your search

+2
View File
@@ -5,6 +5,8 @@ edition.workspace = true
license.workspace = true license.workspace = true
[dependencies] [dependencies]
half = "2.7.1"
thiserror = "2.0.21"
[lints] [lints]
@@ -0,0 +1,47 @@
//! A collection of Vecs with methods for bulk operations
//! (`array_list_collection.zig`).
/// A collection of Vecs with methods for bulk operations.
#[derive(Debug, Clone, Default)]
pub struct ArrayListCollection<T> {
/// The lists that belong to this collection.
pub lists: Vec<Vec<T>>,
}
impl<T> ArrayListCollection<T> {
/// The collection will be initialized with empty lists.
#[must_use]
pub fn new(list_count: usize, initial_capacity: usize) -> Self {
Self {
lists: (0..list_count)
.map(|_| Vec::with_capacity(initial_capacity))
.collect(),
}
}
/// Clear all lists in the collection, retaining capacity.
pub fn reset(&mut self) {
for list in &mut self.lists {
list.clear();
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn init_and_reset() {
let mut c: ArrayListCollection<u32> = ArrayListCollection::new(3, 8);
assert_eq!(c.lists.len(), 3);
for l in &c.lists {
assert!(l.is_empty());
assert!(l.capacity() >= 8);
}
c.lists[1].extend([1, 2, 3]);
c.reset();
assert!(c.lists.iter().all(Vec::is_empty));
assert!(c.lists[1].capacity() >= 8);
}
}
@@ -0,0 +1,275 @@
//! Blocking queue implementation aimed primarily for message passing
//! between threads (`blocking_queue.zig`).
use std::collections::VecDeque;
use std::sync::{Condvar, Mutex, MutexGuard, PoisonError};
use std::time::Duration;
/// The type we use for queue size types.
pub type Size = u32;
/// Specifies the timeout for an operation.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Timeout {
/// Fail instantly (non-blocking).
Instant,
/// Run forever or until interrupted
Forever,
/// Nanoseconds
Ns(u64),
}
#[derive(Debug)]
struct Inner<T> {
data: VecDeque<T>,
not_full_waiters: usize,
}
/// A blocking queue for type T with a fixed `CAPACITY`.
///
/// This is tailor made for ghostty usage so it isn't meant to be maximally
/// generic. Traits of this queue that are specific to our usage:
///
/// - Fixed size. We expect our queue to quickly drain and also not be
/// too large so we prefer a fixed size queue for now.
/// - No blocking pop. We use an external event loop mechanism such as
/// eventfd to notify our waiter that there is no data available so
/// we don't need to implement a blocking pop.
/// - Drain function. Most queues usually pop one at a time. We have
/// a mechanism for draining since on every IO loop our TTY drains
/// the full queue so we can get rid of the overhead of a ton of
/// locks and bounds checking and do a one-time drain.
///
/// One key usage pattern is that our blocking queues are single producer
/// single consumer (SPSC). This should let us do some interesting optimizations
/// in the future. At the time of writing this, the blocking queue implementation
/// is purposely naive to build something quickly, but we should benchmark
/// and make this more optimized as necessary.
#[derive(Debug)]
pub struct BlockingQueue<T, const CAPACITY: usize> {
/// The big mutex that must be held to read/write.
inner: Mutex<Inner<T>>,
/// A CV for being notified when the queue is no longer full. This is
/// used for writing. Note we DON'T have a CV for waiting on the
/// queue not being EMPTY because we use external notifiers for that.
cond_not_full: Condvar,
}
impl<T, const CAPACITY: usize> Default for BlockingQueue<T, CAPACITY> {
fn default() -> Self {
Self::new()
}
}
impl<T, const CAPACITY: usize> BlockingQueue<T, CAPACITY> {
#[must_use]
pub fn new() -> Self {
Self {
inner: Mutex::new(Inner {
data: VecDeque::with_capacity(CAPACITY),
not_full_waiters: 0,
}),
cond_not_full: Condvar::new(),
}
}
fn lock(&self) -> MutexGuard<'_, Inner<T>> {
self.inner.lock().unwrap_or_else(PoisonError::into_inner)
}
/// Push a value to the queue. This returns the total size of the
/// queue (unread items) after the push. A return value of zero
/// means that the push failed.
pub fn push(&self, value: T, timeout: Timeout) -> Size {
let mut g = self.lock();
if g.data.len() >= CAPACITY {
match timeout {
// If we're not waiting, then we failed to write.
Timeout::Instant => return 0,
Timeout::Forever => {
g.not_full_waiters += 1;
g = self
.cond_not_full
.wait_while(g, |i| i.data.len() >= CAPACITY)
.unwrap_or_else(PoisonError::into_inner);
g.not_full_waiters -= 1;
}
Timeout::Ns(ns) => {
g.not_full_waiters += 1;
let (guard, _timed_out) = self
.cond_not_full
.wait_timeout_while(g, Duration::from_nanos(ns), |i| {
i.data.len() >= CAPACITY
})
.unwrap_or_else(PoisonError::into_inner);
g = guard;
g.not_full_waiters -= 1;
}
}
// If we're still full, then we failed to write. This can
// happen in situations where we are interrupted.
if g.data.len() >= CAPACITY {
return 0;
}
}
// Add our data and update our accounting
g.data.push_back(value);
g.data.len() as Size
}
/// Pop a value from the queue without blocking.
pub fn pop(&self) -> Option<T> {
let mut g = self.lock();
// If we're empty we have nothing
let v = g.data.pop_front()?;
// If we have producers waiting on a full queue, notify.
if g.not_full_waiters > 0 {
self.cond_not_full.notify_one();
}
Some(v)
}
/// Pop all values from the queue. This will hold the big mutex
/// until the returned iterator is dropped. This is used if
/// you know you're going to "pop" and utilize all the values
/// quickly to avoid many locks, bounds checks, and cv signals.
pub fn drain(&self) -> DrainIterator<'_, T, CAPACITY> {
DrainIterator {
guard: self.lock(),
queue: self,
}
}
}
/// Iterator returned by [`BlockingQueue::drain`]. Holds the queue lock until
/// dropped (the Zig `deinit`).
pub struct DrainIterator<'a, T, const CAPACITY: usize> {
guard: MutexGuard<'a, Inner<T>>,
queue: &'a BlockingQueue<T, CAPACITY>,
}
impl<T, const CAPACITY: usize> Iterator for DrainIterator<'_, T, CAPACITY> {
type Item = T;
fn next(&mut self) -> Option<T> {
self.guard.data.pop_front()
}
}
impl<T, const CAPACITY: usize> Drop for DrainIterator<'_, T, CAPACITY> {
fn drop(&mut self) {
// If we have producers waiting on a full queue, notify. The lock is
// released after this when the guard is dropped.
if self.guard.not_full_waiters > 0 {
self.queue.cond_not_full.notify_one();
}
}
}
#[cfg(test)]
mod tests {
use super::*;
use std::sync::Arc;
use std::thread;
#[test]
fn basic_push_and_pop() {
let q = BlockingQueue::<u64, 4>::new();
// Should have no values
assert!(q.pop().is_none());
// Push until we're full
assert_eq!(q.push(1, Timeout::Instant), 1);
assert_eq!(q.push(2, Timeout::Instant), 2);
assert_eq!(q.push(3, Timeout::Instant), 3);
assert_eq!(q.push(4, Timeout::Instant), 4);
assert_eq!(q.push(5, Timeout::Instant), 0);
// Pop!
assert_eq!(q.pop().unwrap(), 1);
assert_eq!(q.pop().unwrap(), 2);
assert_eq!(q.pop().unwrap(), 3);
assert_eq!(q.pop().unwrap(), 4);
assert!(q.pop().is_none());
// Drain does nothing
let mut it = q.drain();
assert!(it.next().is_none());
drop(it);
// Verify we can still push
assert_eq!(q.push(1, Timeout::Instant), 1);
}
#[test]
fn timed_push() {
let q = BlockingQueue::<u64, 1>::new();
// Push
assert_eq!(q.push(1, Timeout::Instant), 1);
assert_eq!(q.push(2, Timeout::Instant), 0);
// Timed push should fail
assert_eq!(q.push(2, Timeout::Ns(1000)), 0);
}
#[test]
fn drain_returns_all_in_order() {
let q = BlockingQueue::<u8, 8>::new();
for i in 0..5 {
q.push(i, Timeout::Instant);
}
let v: Vec<u8> = q.drain().collect();
assert_eq!(v, [0, 1, 2, 3, 4]);
assert!(q.pop().is_none());
}
#[test]
fn blocking_push_wakes_on_pop() {
let q = Arc::new(BlockingQueue::<u32, 1>::new());
assert_eq!(q.push(1, Timeout::Instant), 1);
let q2 = Arc::clone(&q);
let t = thread::spawn(move || q2.push(2, Timeout::Forever));
// Wait until the producer is blocked, then pop.
loop {
if q.lock().not_full_waiters > 0 {
break;
}
thread::yield_now();
}
assert_eq!(q.pop(), Some(1));
assert_eq!(t.join().unwrap(), 1);
assert_eq!(q.pop(), Some(2));
}
#[test]
fn blocking_push_wakes_on_drain() {
let q = Arc::new(BlockingQueue::<u32, 1>::new());
assert_eq!(q.push(1, Timeout::Instant), 1);
let q2 = Arc::clone(&q);
let t = thread::spawn(move || q2.push(2, Timeout::Ns(5_000_000_000)));
loop {
if q.lock().not_full_waiters > 0 {
break;
}
thread::yield_now();
}
drop(q.drain().collect::<Vec<_>>());
assert_eq!(t.join().unwrap(), 1);
}
}
@@ -0,0 +1,226 @@
//! A fixed-size-bucket hash cache with LRU replacement (`cache_table.zig`).
/// Behaviours for a [`CacheTable`] (the Zig `Context`).
pub trait CacheContext<K, V> {
/// Return a hash for a key.
fn hash(&mut self, key: &K) -> u64;
/// Check two keys for equality.
fn eql(&mut self, a: &K, b: &K) -> bool;
/// [OPTIONAL] Eviction callback. Called whenever an item is evicted
/// from the cache.
fn evicted(&mut self, _key: K, _value: V) {}
}
/// A key/value pair stored in the cache.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Kv<K, V> {
pub key: K,
pub value: V,
}
/// An associative data structure used for efficiently storing and
/// retrieving values which are able to be recomputed if necessary.
///
/// This structure is effectively a hash table with fixed-sized buckets.
///
/// When inserting an item in to a full bucket, the least recently used
/// item is replaced.
///
/// To achieve this, when an item is accessed, it's moved to the end of
/// the bucket, and the rest of the items are moved over to fill the gap.
///
/// This should provide very good query performance and keep frequently
/// accessed items cached indefinitely.
///
/// Parameters:
///
/// `C`
/// A [`CacheContext`] defining hash/eql (and optionally an eviction hook).
///
/// `BUCKET_COUNT`
/// Should ideally be close to the median number of important items that
/// you expect to be cached at any given point. This is required to be a
/// power of 2 since performance suffers if it's not and there's no good
/// reason to allow it to be anything else.
///
/// `BUCKET_SIZE`
/// should be larger if you expect a large number of unimportant items to
/// enter the cache at a time. Having larger buckets will avoid important
/// items being dropped from the cache prematurely.
#[derive(Debug)]
pub struct CacheTable<K, V, C, const BUCKET_COUNT: usize, const BUCKET_SIZE: usize> {
/// `BUCKET_COUNT` buckets containing up to `BUCKET_SIZE` KV pairs each;
/// oldest first.
buckets: Vec<Vec<Kv<K, V>>>,
/// An instance of the context structure.
pub context: C,
}
impl<K, V, C, const BUCKET_COUNT: usize, const BUCKET_SIZE: usize>
CacheTable<K, V, C, BUCKET_COUNT, BUCKET_SIZE>
where
C: CacheContext<K, V>,
{
const ASSERT_POW2: () = assert!(BUCKET_COUNT.is_power_of_two());
const ASSERT_SIZE: () = assert!(BUCKET_SIZE > 0 && BUCKET_SIZE <= u8::MAX as usize);
#[must_use]
pub fn new(context: C) -> Self {
let () = Self::ASSERT_POW2;
let () = Self::ASSERT_SIZE;
let mut buckets = Vec::with_capacity(BUCKET_COUNT);
buckets.resize_with(BUCKET_COUNT, Vec::new);
Self { buckets, context }
}
fn index(&mut self, key: &K) -> usize {
(self.context.hash(key) % BUCKET_COUNT as u64) as usize
}
/// Adds an item to the cache table. If an old value was removed to
/// make room then it is returned in a struct with its key and value.
pub fn put(&mut self, key: K, value: V) -> Option<Kv<K, V>>
where
K: Clone,
V: Clone,
{
let idx = self.index(&key);
let bucket = &mut self.buckets[idx];
// If we have space available in the bucket then we just append
if bucket.len() < BUCKET_SIZE {
bucket.push(Kv { key, value });
return None;
}
debug_assert_eq!(bucket.len(), BUCKET_SIZE);
// Append our new item and return the oldest
let evicted = bucket.remove(0);
bucket.push(Kv { key, value });
// The Context is allowed to register an eviction hook.
self.context
.evicted(evicted.key.clone(), evicted.value.clone());
Some(evicted)
}
/// Retrieves an item from the cache table (marking it most recently
/// used).
///
/// Returns `None` if no item is found with the provided key.
pub fn get(&mut self, key: &K) -> Option<&V> {
let idx = self.index(key);
let len = self.buckets[idx].len();
let mut i = len;
while i > 0 {
i -= 1;
if self.context.eql(key, &self.buckets[idx][i].key) {
// Rotate the item to the end of the bucket.
self.buckets[idx][i..len].rotate_left(1);
return Some(&self.buckets[idx][len - 1].value);
}
}
None
}
/// Removes all items from the cache table.
///
/// If your `Context` has an `evicted` method,
/// it will be called with all removed items.
pub fn clear(&mut self) {
for b in &mut self.buckets {
for kv in b.drain(..) {
self.context.evicted(kv.key, kv.value);
}
}
}
}
/// A context for any `K: Hash + Eq` using the std default hasher (the Zig
/// `AutoContext`).
#[derive(Debug, Default, Clone, Copy)]
pub struct AutoContext;
impl<K: std::hash::Hash + Eq, V> CacheContext<K, V> for AutoContext {
fn hash(&mut self, key: &K) -> u64 {
use std::hash::Hasher;
let mut h = std::collections::hash_map::DefaultHasher::new();
key.hash(&mut h);
h.finish()
}
fn eql(&mut self, a: &K, b: &K) -> bool {
a == b
}
}
#[cfg(test)]
mod tests {
use super::*;
// A context that has a predictable hash so we can test all edge cases.
#[derive(Default)]
struct Ctx {
evicted: Vec<(u32, u32)>,
}
impl CacheContext<u32, u32> for Ctx {
fn hash(&mut self, key: &u32) -> u64 {
u64::from(*key)
}
fn eql(&mut self, a: &u32, b: &u32) -> bool {
a == b
}
fn evicted(&mut self, key: u32, value: u32) {
self.evicted.push((key, value));
}
}
#[test]
fn cache_table() {
let mut t: CacheTable<u32, u32, Ctx, 2, 2> = CacheTable::new(Ctx::default());
// Fill the table
assert!(t.put(0, 0).is_none());
assert!(t.put(1, 0).is_none());
assert!(t.put(2, 0).is_none());
assert!(t.put(3, 0).is_none());
// It should now be full, so any insert should evict the oldest item.
// NOTE: For the sake of this test, we're assuming that the first item
// is evicted but we don't need to promise this.
assert_eq!(t.put(4, 0).unwrap(), Kv { key: 0, value: 0 });
// The first item should now be gone
assert!(t.get(&0).is_none());
assert_eq!(t.context.evicted, vec![(0, 0)]);
}
#[test]
fn cache_table_get_refreshes_and_clear() {
let mut t: CacheTable<u32, u32, Ctx, 1, 3> = CacheTable::new(Ctx::default());
t.put(1, 10);
t.put(2, 20);
t.put(3, 30);
// Touch 1 so 2 becomes the oldest.
assert_eq!(t.get(&1), Some(&10));
assert_eq!(t.put(4, 40).unwrap().key, 2);
assert_eq!(t.get(&3), Some(&30));
t.clear();
assert!(t.get(&1).is_none());
assert_eq!(t.context.evicted.len(), 1 + 3);
}
#[test]
fn cache_table_auto_context() {
let mut t: CacheTable<String, u8, AutoContext, 4, 2> = CacheTable::new(AutoContext);
t.put("a".to_string(), 1);
assert_eq!(t.get(&"a".to_string()), Some(&1));
assert_eq!(t.get(&"b".to_string()), None);
}
}
+789
View File
@@ -0,0 +1,789 @@
//! A circular buffer (`circ_buf.zig`).
use crate::OutOfMemory;
/// Direction of a [`Iter`].
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Direction {
Forward,
Reverse,
}
/// A circular buffer containing type `T`, filled with a `default` value.
#[derive(Debug, Clone)]
pub struct CircBuf<T> {
// Implementation note: there's a lot of unsafe addition of usize
// here in this implementation that can technically overflow. If someone
// wants to fix this and make it overflow safe (use subtractions for
// checks prior to additions) then I welcome it. In reality, we'd
// have to be a really, really large terminal screen to even worry
// about this so I'm punting it.
pub storage: Vec<T>,
pub head: usize,
pub tail: usize,
// We could remove this and just use math with head/tail to figure
// it out, but our usage of circular buffers stores so much data that
// this minor overhead is not worth optimizing out.
pub full: bool,
default: T,
}
/// Iterator over the circular buffer.
#[derive(Debug, Clone)]
pub struct Iter<'a, T> {
buf: &'a CircBuf<T>,
idx: usize,
direction: Direction,
}
impl<T> Iter<'_, T> {
/// Seek the iterator by a given amount. This will clamp
/// the values to the bounds of the buffer so overflows are
/// not possible.
pub fn seek_by(&mut self, amount: isize) {
if amount > 0 {
self.idx = self.idx.saturating_add(amount as usize);
} else {
self.idx = self.idx.saturating_sub(amount.unsigned_abs());
}
}
/// Reset the iterator back to the first value.
pub fn reset(&mut self) {
self.idx = 0;
}
}
impl<'a, T> Iterator for Iter<'a, T> {
type Item = &'a T;
fn next(&mut self) -> Option<&'a T> {
if self.idx >= self.buf.len() {
return None;
}
// Get our index from the tail
let tail_idx = match self.direction {
Direction::Forward => self.idx,
Direction::Reverse => self.buf.len() - self.idx - 1,
};
// Translate the tail index to a storage index
let storage_idx = (self.buf.tail + tail_idx) % self.buf.capacity();
self.idx += 1;
Some(&self.buf.storage[storage_idx])
}
}
impl<T> CircBuf<T> {
/// Returns if the buffer is currently empty. To check if its
/// full, just check the "full" attribute.
#[must_use]
pub fn empty(&self) -> bool {
!self.full && self.head == self.tail
}
/// Returns the total capacity allocated for this buffer.
#[must_use]
pub fn capacity(&self) -> usize {
self.storage.len()
}
/// Returns the length in elements that are used.
#[must_use]
pub fn len(&self) -> usize {
if self.full {
return self.storage.len();
}
if self.head >= self.tail {
return self.head - self.tail;
}
self.storage.len() - (self.tail - self.head)
}
/// Alias for [`empty`](Self::empty) (the clippy-conventional name).
#[must_use]
pub fn is_empty(&self) -> bool {
self.empty()
}
}
impl<T: Clone> CircBuf<T> {
/// Initialize a new circular buffer that can store `size` elements.
#[must_use]
pub fn new(size: usize, default: T) -> Self {
Self {
storage: vec![default.clone(); size],
head: 0,
tail: 0,
full: size == 0,
default,
}
}
/// Append a single value to the buffer. If the buffer is full,
/// an error will be returned.
pub fn append(&mut self, v: T) -> Result<(), OutOfMemory> {
if self.full {
return Err(OutOfMemory);
}
self.storage[self.head] = v;
self.head += 1;
if self.head >= self.storage.len() {
self.head = 0;
}
self.full = self.head == self.tail;
Ok(())
}
/// Append a single value to the buffer, assuming there is capacity.
pub fn append_assume_capacity(&mut self, v: T) {
assert!(!self.full);
self.storage[self.head] = v;
self.head += 1;
if self.head >= self.storage.len() {
self.head = 0;
}
self.full = self.head == self.tail;
}
/// Append a slice to the buffer.
pub fn append_slice_assume_capacity(&mut self, slice: &[T]) {
let len = self.len();
let [a, b] = self.get_ptr_slice(len, slice.len());
let a_len = a.len();
a.clone_from_slice(&slice[..a_len]);
b.clone_from_slice(&slice[a_len..]);
}
/// Clear the buffer.
pub fn clear(&mut self) {
self.head = 0;
self.tail = 0;
self.full = false;
}
/// Iterate over the circular buffer.
#[must_use]
pub fn iterator(&self, direction: Direction) -> Iter<'_, T> {
Iter {
buf: self,
idx: 0,
direction,
}
}
/// Get the first (oldest) value in the buffer.
#[must_use]
pub fn first(&self) -> Option<&T> {
self.iterator(Direction::Forward).next()
}
/// Get the last (newest) value in the buffer.
#[must_use]
pub fn last(&self) -> Option<&T> {
self.iterator(Direction::Reverse).next()
}
/// Mutable access to the first (oldest) value in the buffer.
pub fn first_mut(&mut self) -> Option<&mut T> {
if self.is_empty() {
return None;
}
let idx = self.tail % self.capacity();
Some(&mut self.storage[idx])
}
/// Mutable access to the last (newest) value in the buffer.
pub fn last_mut(&mut self) -> Option<&mut T> {
let len = self.len();
if len == 0 {
return None;
}
let idx = (self.tail + len - 1) % self.capacity();
Some(&mut self.storage[idx])
}
/// Ensures that there is enough capacity to store `amount` more
/// items via append.
pub fn ensure_unused_capacity(&mut self, amount: usize) {
let new_cap = self.len() + amount;
if new_cap <= self.capacity() {
return;
}
self.resize(new_cap);
}
/// Resize the buffer to the given size (larger or smaller).
/// If larger, new values will be set to the default value.
pub fn resize(&mut self, size: usize) {
// Rotate to zero so it is aligned.
self.rotate_to_zero();
// Reallocate, this adds to the end so we're ready to go.
let prev_len = self.len();
let prev_cap = self.storage.len();
self.storage.resize(size, self.default.clone());
// If we grew, we need to set our new defaults. We can add it
// at the end since we rotated to start. (Done by `resize` above.)
if size > prev_cap {
// Fix up our head/tail
if self.full {
self.head = prev_len;
self.full = false;
}
}
}
/// Rotate the data so that it is zero-aligned.
pub(crate) fn rotate_to_zero(&mut self) {
// If we're already at zero then do nothing.
if self.tail == 0 {
return;
}
// Rotate our storage in-place.
self.storage.rotate_left(self.tail);
// Then fix up our head and tail.
self.head = self.len() % self.storage.len();
self.tail = 0;
}
/// Delete the oldest n values from the buffer. If there are less
/// than n values in the buffer, it'll delete everything.
pub fn delete_oldest(&mut self, n: usize) {
assert!(n <= self.storage.len());
// Special case n == 0 otherwise we will accidentally break
// our circular buffer.
if n == 0 {
return;
}
// Clear the values back to default
let default = self.default.clone();
let [a, b] = self.get_ptr_slice(0, n);
a.fill(default.clone());
b.fill(default);
// If we're not full, we can just advance the tail. We know
// it'll be less than the length because otherwise we'd be full.
self.tail += self.len().min(n);
if self.tail >= self.storage.len() {
self.tail -= self.storage.len();
}
self.full = false;
}
/// Returns the two (possibly empty) slices covering `slice_len` values at
/// `offset`, and considers this full amount of data "written" if it is
/// beyond the end of our buffer. This never "rotates" the buffer because
/// the offset can only be within the size of the buffer.
pub fn get_ptr_slice(&mut self, offset: usize, slice_len: usize) -> [&mut [T]; 2] {
// Special case the empty slice fast-path.
if slice_len == 0 {
return [&mut [], &mut []];
}
assert!(offset + slice_len <= self.capacity());
// End offset is the last offset (exclusive) for our slice.
// We use exclusive because it makes the math easier.
let end_offset = offset + slice_len;
// If our slice can't fit it in our length, then we need to advance.
if end_offset > self.len() {
self.advance(end_offset - self.len());
}
// Our start and end indexes into the storage buffer
let start_idx = self.storage_offset(offset);
let end_idx = self.storage_offset(end_offset - 1);
// Optimistically, our data fits in one slice
if end_idx >= start_idx {
return [&mut self.storage[start_idx..=end_idx], &mut []];
}
let (front, back) = self.storage.split_at_mut(start_idx);
[back, &mut front[..=end_idx]]
}
/// Advances the head/tail so that we can store amount.
fn advance(&mut self, amount: usize) {
assert!(amount <= self.storage.len() - self.len());
// Optimistically add our amount
self.head += amount;
// If we exceeded the length of the buffer, wrap around.
if self.head >= self.storage.len() {
self.head -= self.storage.len();
}
// If we're full, we have to keep tail lined up.
if self.full {
self.tail = self.head;
}
// We're full if the head reached the tail. The head can never
// pass the tail because advance asserts amount is only in
// available space left
self.full = self.head == self.tail;
}
/// For a given offset from zero, this returns the offset in the
/// storage buffer where this data can be found.
fn storage_offset(&self, offset: usize) -> usize {
assert!(offset < self.storage.len());
// This should be subtraction ideally to avoid overflows but
// it would take a really, really, huge buffer to overflow.
let fits_offset = self.tail + offset;
if fits_offset < self.storage.len() {
return fits_offset;
}
fits_offset - self.storage.len()
}
}
#[cfg(test)]
mod tests {
use super::*;
fn collect(buf: &CircBuf<u8>, d: Direction) -> Vec<u8> {
buf.iterator(d).copied().collect()
}
#[test]
fn circ_buf_basic() {
let buf = CircBuf::new(12, 0u8);
assert!(buf.empty());
assert_eq!(buf.len(), 0);
}
#[test]
fn circ_buf_append() {
let mut buf = CircBuf::new(3, 0u8);
buf.append(1).unwrap();
buf.append(2).unwrap();
buf.append(3).unwrap();
assert_eq!(buf.append(4), Err(OutOfMemory));
buf.delete_oldest(1);
buf.append(4).unwrap();
assert_eq!(buf.append(5), Err(OutOfMemory));
}
#[test]
fn circ_buf_forward_iterator() {
let mut buf = CircBuf::new(3, 0u8);
// Empty
assert!(buf.iterator(Direction::Forward).next().is_none());
// Partially full
buf.append(1).unwrap();
buf.append(2).unwrap();
assert_eq!(collect(&buf, Direction::Forward), [1, 2]);
// Full
buf.append(3).unwrap();
assert_eq!(collect(&buf, Direction::Forward), [1, 2, 3]);
// Delete and add
buf.delete_oldest(1);
buf.append(4).unwrap();
assert_eq!(collect(&buf, Direction::Forward), [2, 3, 4]);
}
#[test]
fn circ_buf_reverse_iterator() {
let mut buf = CircBuf::new(3, 0u8);
// Empty
assert!(buf.iterator(Direction::Reverse).next().is_none());
// Partially full
buf.append(1).unwrap();
buf.append(2).unwrap();
assert_eq!(collect(&buf, Direction::Reverse), [2, 1]);
// Full
buf.append(3).unwrap();
assert_eq!(collect(&buf, Direction::Reverse), [3, 2, 1]);
// Delete and add
buf.delete_oldest(1);
buf.append(4).unwrap();
assert_eq!(collect(&buf, Direction::Reverse), [4, 3, 2]);
}
#[test]
fn circ_buf_iterator_seek() {
let mut buf = CircBuf::new(4, 0u8);
buf.append_slice_assume_capacity(&[1, 2, 3, 4]);
let mut it = buf.iterator(Direction::Forward);
it.seek_by(2);
assert_eq!(it.next(), Some(&3));
it.seek_by(-100);
assert_eq!(it.next(), Some(&1));
it.seek_by(isize::MAX);
assert_eq!(it.next(), None);
it.reset();
assert_eq!(it.next(), Some(&1));
}
#[test]
fn circ_buf_first_last() {
let mut buf = CircBuf::new(3, 0u8);
buf.append(1).unwrap();
buf.append(2).unwrap();
buf.append(3).unwrap();
assert_eq!(buf.last(), Some(&3));
assert_eq!(buf.first(), Some(&1));
*buf.last_mut().unwrap() = 9;
*buf.first_mut().unwrap() = 7;
assert_eq!(collect(&buf, Direction::Forward), [7, 2, 9]);
}
#[test]
fn circ_buf_first_last_empty() {
let buf = CircBuf::new(0, 0u8);
assert!(buf.first().is_none());
assert!(buf.last().is_none());
}
#[test]
fn circ_buf_first_last_empty_with_cap() {
let mut buf = CircBuf::new(3, 0u8);
assert!(buf.first().is_none());
assert!(buf.last().is_none());
assert!(buf.first_mut().is_none());
assert!(buf.last_mut().is_none());
}
#[test]
fn circ_buf_append_slice() {
let mut buf = CircBuf::new(5, 0u8);
buf.append_slice_assume_capacity(b"hello");
assert_eq!(collect(&buf, Direction::Forward), b"hello");
}
#[test]
fn circ_buf_append_slice_with_wrap() {
let mut buf = CircBuf::new(4, 0u8);
// Fill the buffer
let cap = buf.capacity();
let _ = buf.get_ptr_slice(0, cap);
assert!(buf.full);
assert_eq!(buf.len(), 4);
// Delete
buf.delete_oldest(2);
assert!(!buf.full);
assert_eq!(buf.len(), 2);
buf.append_slice_assume_capacity(b"AB");
assert_eq!(collect(&buf, Direction::Forward), [0, 0, b'A', b'B']);
}
#[test]
fn circ_buf_get_ptr_slice_fits() {
let mut buf = CircBuf::new(12, 0u8);
let slices = buf.get_ptr_slice(0, 11);
assert_eq!(slices[0].len(), 11);
assert_eq!(slices[1].len(), 0);
assert_eq!(buf.len(), 11);
}
#[test]
fn circ_buf_get_ptr_slice_wraps() {
let mut buf = CircBuf::new(4, 0u8);
// Fill the buffer
let cap = buf.capacity();
let _ = buf.get_ptr_slice(0, cap);
assert!(buf.full);
assert_eq!(buf.len(), 4);
// Delete
buf.delete_oldest(2);
assert!(!buf.full);
assert_eq!(buf.len(), 2);
// Get a slice that doesn't grow
{
let slices = buf.get_ptr_slice(0, 2);
assert_eq!(slices[0].len(), 2);
assert_eq!(slices[1].len(), 0);
slices[0][0] = 1;
slices[0][1] = 2;
}
assert_eq!(buf.len(), 2);
// Get a slice that does grow, and forces wrap
{
let slices = buf.get_ptr_slice(2, 2);
assert_eq!(slices[0].len(), 2);
assert_eq!(slices[1].len(), 0);
// should be empty
assert_eq!(slices[0][0], 0);
assert_eq!(slices[0][1], 0);
slices[0][0] = 3;
slices[0][1] = 4;
}
assert_eq!(buf.len(), 4);
// Get a slice across boundaries
{
let slices = buf.get_ptr_slice(0, 4);
assert_eq!(slices[0].len(), 2);
assert_eq!(slices[1].len(), 2);
assert_eq!(slices[0][0], 1);
assert_eq!(slices[0][1], 2);
assert_eq!(slices[1][0], 3);
assert_eq!(slices[1][1], 4);
}
assert_eq!(buf.len(), 4);
}
#[test]
fn circ_buf_rotate_to_zero() {
let mut buf = CircBuf::new(12, 0u8);
let _ = buf.get_ptr_slice(0, 11);
buf.rotate_to_zero();
}
#[test]
fn circ_buf_rotate_to_zero_offset() {
let mut buf = CircBuf::new(4, 0u8);
// Fill the buffer
let _ = buf.get_ptr_slice(0, 3);
assert_eq!(buf.len(), 3);
// Delete
buf.delete_oldest(2);
assert!(!buf.full);
assert_eq!(buf.len(), 1);
assert!(buf.tail > 0 && buf.head >= buf.tail);
// Rotate to zero
buf.rotate_to_zero();
assert_eq!(buf.tail, 0);
assert_eq!(buf.head, 1);
}
#[test]
fn circ_buf_rotate_to_zero_wraps() {
let mut buf = CircBuf::new(4, 0u8);
// Fill the buffer
let _ = buf.get_ptr_slice(0, 3);
assert_eq!(buf.len(), 3);
assert!(buf.tail == 0 && buf.head == 3);
// Delete all
buf.delete_oldest(3);
assert_eq!(buf.len(), 0);
assert!(buf.tail == 3 && buf.head == 3);
// Refill to force a wrap
{
let slices = buf.get_ptr_slice(0, 3);
slices[0][0] = 1;
slices[1][0] = 2;
slices[1][1] = 3;
}
assert_eq!(buf.len(), 3);
assert!(buf.tail == 3 && buf.head == 2);
// Rotate to zero
buf.rotate_to_zero();
assert_eq!(buf.tail, 0);
assert_eq!(buf.head, 3);
{
let slices = buf.get_ptr_slice(0, 3);
assert_eq!(slices[0][0], 1);
assert_eq!(slices[0][1], 2);
assert_eq!(slices[0][2], 3);
}
}
#[test]
fn circ_buf_rotate_to_zero_full_no_wrap() {
let mut buf = CircBuf::new(4, 0u8);
// Fill the buffer
let _ = buf.get_ptr_slice(0, 3);
// Delete all
buf.delete_oldest(3);
// Refill to force a wrap
{
let slices = buf.get_ptr_slice(0, 4);
slices[0][0] = 1;
slices[1][0] = 2;
slices[1][1] = 3;
slices[1][2] = 4;
}
assert!(buf.full);
// Rotate to zero
buf.rotate_to_zero();
assert!(buf.full);
assert_eq!(buf.tail, 0);
assert_eq!(buf.head, 0);
{
let slices = buf.get_ptr_slice(0, 4);
assert_eq!(slices[0], [1, 2, 3, 4]);
}
}
#[test]
fn circ_buf_resize_grow_from_zero() {
let mut buf = CircBuf::new(0, 0u8);
assert!(buf.full);
// Resize
buf.resize(2);
assert!(!buf.full);
assert_eq!(buf.len(), 0);
assert_eq!(buf.capacity(), 2);
buf.append(1).unwrap();
buf.append(2).unwrap();
let slices = buf.get_ptr_slice(0, 2);
assert_eq!(slices[0][0], 1);
assert_eq!(slices[0][1], 2);
}
#[test]
fn circ_buf_resize_grow() {
let mut buf = CircBuf::new(4, 0u8);
// Fill and write
{
let slices = buf.get_ptr_slice(0, 4);
slices[0].copy_from_slice(&[1, 2, 3, 4]);
}
assert!(buf.full);
// Resize
buf.resize(6);
assert!(!buf.full);
assert_eq!(buf.len(), 4);
assert_eq!(buf.capacity(), 6);
let slices = buf.get_ptr_slice(0, 4);
assert_eq!(slices[0], [1, 2, 3, 4]);
}
#[test]
fn circ_buf_resize_shrink() {
let mut buf = CircBuf::new(4, 0u8);
// Fill and write
{
let slices = buf.get_ptr_slice(0, 4);
slices[0].copy_from_slice(&[1, 2, 3, 4]);
}
assert!(buf.full);
// Resize
buf.resize(3);
assert!(buf.full);
assert_eq!(buf.len(), 3);
assert_eq!(buf.capacity(), 3);
let slices = buf.get_ptr_slice(0, 3);
assert_eq!(slices[0], [1, 2, 3]);
}
#[test]
fn circ_buf_append_empty_slice() {
let mut buf = CircBuf::new(5, 0u8);
// Appending an empty slice to empty buffer should be a no-op
buf.append_slice_assume_capacity(b"");
assert_eq!(buf.len(), 0);
assert!(!buf.full);
// Buffer should still work normally after appending empty slice
buf.append_slice_assume_capacity(b"hi");
assert_eq!(buf.len(), 2);
// Appending an empty slice to non-empty buffer should also be a no-op
buf.append_slice_assume_capacity(b"");
assert_eq!(buf.len(), 2);
}
#[test]
fn circ_buf_get_ptr_slice_zero_length() {
let mut buf = CircBuf::new(5, 0u8);
// zero length on empty buffer should return empty slices
let slices = buf.get_ptr_slice(0, 0);
assert_eq!(slices[0].len(), 0);
assert_eq!(slices[1].len(), 0);
assert_eq!(buf.len(), 0);
// Fill buffer partially
buf.append_slice_assume_capacity(b"abc");
assert_eq!(buf.len(), 3);
// zero length on non-empty buffer should also work
let slices2 = buf.get_ptr_slice(0, 0);
assert_eq!(slices2[0].len(), 0);
assert_eq!(slices2[1].len(), 0);
assert_eq!(buf.len(), 3);
}
#[test]
fn circ_buf_delete_oldest_zero() {
let mut buf = CircBuf::new(5, 0u8);
// delete_oldest(0) on empty buffer should be a no-op
buf.delete_oldest(0);
assert_eq!(buf.len(), 0);
// Fill buffer
buf.append_slice_assume_capacity(b"hello");
assert_eq!(buf.len(), 5);
// delete_oldest(0) on non-empty buffer should be a no-op
buf.delete_oldest(0);
assert_eq!(buf.len(), 5);
// Verify data is unchanged
assert_eq!(buf.iterator(Direction::Forward).next(), Some(&b'h'));
}
#[test]
fn circ_buf_ensure_unused_capacity() {
let mut buf = CircBuf::new(2, 0u8);
buf.append(1).unwrap();
buf.ensure_unused_capacity(1);
assert_eq!(buf.capacity(), 2);
buf.ensure_unused_capacity(5);
assert_eq!(buf.capacity(), 6);
assert_eq!(collect(&buf, Direction::Forward), [1]);
}
}
+534
View File
@@ -0,0 +1,534 @@
//! Deep/approximate equality helpers (`comparison.zig`).
//!
//! The Zig version uses comptime reflection to compare arbitrary types
//! field-by-field. In Rust, `PartialEq` already covers structural equality;
//! [`DeepEqual`] exists to allow a type to customise its "deep equal"
//! behaviour independent of `PartialEq` (the Zig `equal` decl), and
//! [`ApproxEq`] provides the float-tolerant comparison used by
//! `expectApproxEqual`.
/// A deep equality comparison that works for most types. Types may implement
/// this to customise comparison (the Zig `equal` declaration). Blanket
/// implementations exist for primitives, strings, and containers of
/// `DeepEqual` types.
pub trait DeepEqual {
fn deep_equal(&self, other: &Self) -> bool;
}
/// Compare two values with [`DeepEqual`].
pub fn deep_equal<T: DeepEqual + ?Sized>(old: &T, new: &T) -> bool {
old.deep_equal(new)
}
macro_rules! impl_deep_equal_prim {
($($t:ty),* $(,)?) => {
$(impl DeepEqual for $t {
#[allow(clippy::float_cmp)]
fn deep_equal(&self, other: &Self) -> bool { self == other }
})*
};
}
impl_deep_equal_prim!(
(),
bool,
char,
i8,
i16,
i32,
i64,
i128,
isize,
u8,
u16,
u32,
u64,
u128,
usize,
f32,
f64,
str,
String,
);
impl<T: DeepEqual> DeepEqual for Option<T> {
fn deep_equal(&self, other: &Self) -> bool {
match (self, other) {
(None, None) => true,
(Some(a), Some(b)) => a.deep_equal(b),
_ => false,
}
}
}
impl<T: DeepEqual> DeepEqual for [T] {
fn deep_equal(&self, other: &Self) -> bool {
self.len() == other.len() && self.iter().zip(other).all(|(a, b)| a.deep_equal(b))
}
}
impl<T: DeepEqual, const N: usize> DeepEqual for [T; N] {
fn deep_equal(&self, other: &Self) -> bool {
self.as_slice().deep_equal(other.as_slice())
}
}
impl<T: DeepEqual> DeepEqual for Vec<T> {
fn deep_equal(&self, other: &Self) -> bool {
self.as_slice().deep_equal(other.as_slice())
}
}
impl<T: DeepEqual + ?Sized> DeepEqual for &T {
fn deep_equal(&self, other: &Self) -> bool {
(**self).deep_equal(*other)
}
}
/// Approximate equality: relative tolerance of `sqrt(eps)` for floats and
/// plain equality for everything else.
pub trait ApproxEq {
fn approx_eq(&self, other: &Self) -> bool;
}
macro_rules! impl_approx_float {
($($t:ty),*) => {
$(impl ApproxEq for $t {
fn approx_eq(&self, other: &Self) -> bool {
// std.math.approxEqRel with tolerance sqrt(eps)
let tolerance = <$t>::EPSILON.sqrt();
let (a, b) = (*self, *other);
if a == b { return true; }
if a.is_nan() || b.is_nan() { return false; }
if a.is_infinite() || b.is_infinite() { return false; }
(a - b).abs() <= a.abs().max(b.abs()) * tolerance
}
})*
};
}
impl_approx_float!(f32, f64);
macro_rules! impl_approx_eq_prim {
($($t:ty),* $(,)?) => {
$(impl ApproxEq for $t {
fn approx_eq(&self, other: &Self) -> bool { self == other }
})*
};
}
impl_approx_eq_prim!(
(),
bool,
char,
i8,
i16,
i32,
i64,
isize,
u8,
u16,
u32,
u64,
usize,
str,
String
);
impl<T: ApproxEq> ApproxEq for Option<T> {
fn approx_eq(&self, other: &Self) -> bool {
match (self, other) {
(None, None) => true,
(Some(a), Some(b)) => a.approx_eq(b),
_ => false,
}
}
}
impl<T: ApproxEq> ApproxEq for [T] {
fn approx_eq(&self, other: &Self) -> bool {
self.len() == other.len() && self.iter().zip(other).all(|(a, b)| a.approx_eq(b))
}
}
impl<T: ApproxEq, const N: usize> ApproxEq for [T; N] {
fn approx_eq(&self, other: &Self) -> bool {
self.as_slice().approx_eq(other.as_slice())
}
}
impl<T: ApproxEq> ApproxEq for Vec<T> {
fn approx_eq(&self, other: &Self) -> bool {
self.as_slice().approx_eq(other.as_slice())
}
}
macro_rules! impl_approx_tuple {
($(($($n:ident : $i:tt),+)),+ $(,)?) => {
$(impl<$($n: ApproxEq),+> ApproxEq for ($($n,)+) {
fn approx_eq(&self, other: &Self) -> bool {
$(self.$i.approx_eq(&other.$i))&&+
}
})+
};
}
impl_approx_tuple!((A: 0), (A: 0, B: 1), (A: 0, B: 1, C: 2), (A: 0, B: 1, C: 2, D: 3));
/// Asserts that two values are (approximately) equal, panicking otherwise.
/// Counterpart of `expectApproxEqual`.
#[track_caller]
pub fn expect_approx_equal<T: ApproxEq + std::fmt::Debug + ?Sized>(expected: &T, actual: &T) {
assert!(
expected.approx_eq(actual),
"expected approximately {expected:?}, found {actual:?}"
);
}
#[cfg(test)]
mod tests {
use super::*;
#[derive(Debug, Clone, Copy, PartialEq)]
enum Value {
Int(i32),
Float(f32),
}
impl ApproxEq for Value {
fn approx_eq(&self, other: &Self) -> bool {
match (self, other) {
(Value::Int(a), Value::Int(b)) => a.approx_eq(b),
(Value::Float(a), Value::Float(b)) => a.approx_eq(b),
_ => false,
}
}
}
#[test]
fn expect_approx_equal_union_enum() {
let b10 = Value::Float(10.0);
let b10plus = Value::Float(10.000001);
expect_approx_equal(&b10, &b10plus);
assert!(!Value::Int(1).approx_eq(&Value::Float(1.0)));
assert!(!Value::Float(10.0).approx_eq(&Value::Float(10.1)));
}
#[test]
fn expect_approx_equal_nested_array() {
let a = [[1.0f32, 0.0], [0.0, 1.0]];
let b = [[1.000001f32, 0.0], [0.0, 0.999999]];
expect_approx_equal(&a, &b);
let c = [[1.1f32, 0.0], [0.0, 1.0]];
assert!(!a.approx_eq(&c));
}
#[test]
fn expect_approx_equal_vector() {
// Zig @Vector(4, f32) maps to a fixed array.
let a = [4.0f32; 4];
let b = [4.000001f32; 4];
expect_approx_equal(&a, &b);
}
#[test]
fn expect_approx_equal_struct() {
// Zig anonymous struct maps to a tuple.
let a = (1, 1.0f32);
let b = (1, 0.999999f32);
expect_approx_equal(&a, &b);
}
#[test]
fn deep_equal_void() {
assert!(deep_equal(&(), &()));
}
#[test]
fn deep_equal_bool() {
assert!(deep_equal(&true, &true));
assert!(deep_equal(&false, &false));
assert!(!deep_equal(&true, &false));
assert!(!deep_equal(&false, &true));
}
#[test]
fn deep_equal_int() {
assert!(deep_equal(&42i32, &42));
assert!(deep_equal(&-100i32, &-100));
assert!(!deep_equal(&42i32, &43));
assert!(deep_equal(&0u64, &0));
assert!(!deep_equal(&0u64, &1));
}
#[test]
fn deep_equal_float() {
assert!(deep_equal(&1.0f32, &1.0));
assert!(!deep_equal(&1.0f32, &1.1));
assert!(deep_equal(&1.23456f64, &1.23456));
assert!(!deep_equal(&1.23456f64, &1.23455));
}
#[test]
fn deep_equal_enum() {
#[derive(PartialEq)]
enum Color {
Red,
Green,
Blue,
}
impl DeepEqual for Color {
fn deep_equal(&self, other: &Self) -> bool {
self == other
}
}
assert!(deep_equal(&Color::Red, &Color::Red));
assert!(deep_equal(&Color::Blue, &Color::Blue));
assert!(!deep_equal(&Color::Red, &Color::Green));
assert!(!deep_equal(&Color::Green, &Color::Blue));
}
#[test]
fn deep_equal_slice_u8() {
assert!(deep_equal("hello", "hello"));
assert!(deep_equal("", ""));
assert!(!deep_equal("hello", "world"));
assert!(!deep_equal("hello", "hell"));
assert!(!deep_equal("hello", "hello!"));
assert!(deep_equal(b"hello".as_slice(), b"hello".as_slice()));
}
#[test]
fn deep_equal_sentinel_slice_u8() {
// [:0]const u8 maps to &str / CString-like; plain strings here.
assert!(deep_equal("foo", "foo"));
assert!(!deep_equal("foo", "bar"));
assert!(!deep_equal("foo", "fo"));
}
#[test]
fn deep_equal_slice_of_strings() {
let a: &[&str] = &["one", "two", "three"];
let b: &[&str] = &["one", "two", "three"];
let c: &[&str] = &["one", "two"];
let d: &[&str] = &["one", "two", "four"];
let e: &[&str] = &[];
assert!(deep_equal(a, b));
assert!(!deep_equal(a, c));
assert!(!deep_equal(a, d));
assert!(deep_equal(e, e));
assert!(!deep_equal(a, e));
}
#[test]
fn deep_equal_optional() {
assert!(deep_equal::<Option<i32>>(&None, &None));
assert!(deep_equal(&Some(42), &Some(42)));
assert!(!deep_equal(&None, &Some(42)));
assert!(!deep_equal(&Some(42), &None));
assert!(!deep_equal(&Some(42), &Some(43)));
}
#[derive(Debug, PartialEq)]
struct Nested {
x: i32,
y: i32,
}
impl DeepEqual for Nested {
fn deep_equal(&self, other: &Self) -> bool {
self.x.deep_equal(&other.x) && self.y.deep_equal(&other.y)
}
}
#[test]
fn deep_equal_optional_nested() {
assert!(deep_equal::<Option<Nested>>(&None, &None));
assert!(deep_equal(
&Some(Nested { x: 1, y: 2 }),
&Some(Nested { x: 1, y: 2 })
));
assert!(!deep_equal(
&Some(Nested { x: 1, y: 2 }),
&Some(Nested { x: 1, y: 3 })
));
assert!(!deep_equal(&Some(Nested { x: 1, y: 2 }), &None));
}
#[test]
fn deep_equal_array() {
assert!(deep_equal(&[1, 2, 3], &[1, 2, 3]));
assert!(!deep_equal(&[1, 2, 3], &[1, 2, 4]));
assert!(!deep_equal(&[1, 2, 3], &[0, 2, 3]));
assert!(deep_equal::<[i32; 0]>(&[], &[]));
}
#[test]
fn deep_equal_nested_array() {
let a = [[1, 2], [3, 4]];
let b = [[1, 2], [3, 4]];
let c = [[1, 2], [3, 5]];
assert!(deep_equal(&a, &b));
assert!(!deep_equal(&a, &c));
}
struct Outer {
a: Nested,
b: Nested,
}
impl DeepEqual for Outer {
fn deep_equal(&self, o: &Self) -> bool {
self.a.deep_equal(&o.a) && self.b.deep_equal(&o.b)
}
}
#[test]
fn deep_equal_struct() {
assert!(deep_equal(
&Nested { x: 10, y: 20 },
&Nested { x: 10, y: 20 }
));
assert!(!deep_equal(
&Nested { x: 10, y: 20 },
&Nested { x: 10, y: 21 }
));
assert!(!deep_equal(
&Nested { x: 10, y: 20 },
&Nested { x: 11, y: 20 }
));
}
#[test]
fn deep_equal_struct_nested() {
let mk = |a, b| Outer {
a: Nested { x: a, y: 0 },
b: Nested { x: b, y: 0 },
};
assert!(deep_equal(&mk(1, 2), &mk(1, 2)));
assert!(!deep_equal(&mk(1, 2), &mk(1, 3)));
}
struct Custom {
value: i32,
}
impl DeepEqual for Custom {
fn deep_equal(&self, other: &Self) -> bool {
self.value.rem_euclid(10) == other.value.rem_euclid(10)
}
}
#[test]
fn deep_equal_struct_with_equal_decl() {
assert!(deep_equal(&Custom { value: 5 }, &Custom { value: 15 }));
assert!(deep_equal(&Custom { value: 100 }, &Custom { value: 0 }));
assert!(!deep_equal(&Custom { value: 5 }, &Custom { value: 6 }));
}
#[derive(Debug)]
enum U {
Int(i32),
Float(f32),
None,
}
impl DeepEqual for U {
fn deep_equal(&self, other: &Self) -> bool {
match (self, other) {
(U::Int(a), U::Int(b)) => a == b,
(U::Float(a), U::Float(b)) => a == b,
(U::None, U::None) => true,
_ => false,
}
}
}
#[test]
fn deep_equal_union() {
assert!(deep_equal(&U::Int(42), &U::Int(42)));
assert!(!deep_equal(&U::Int(42), &U::Int(43)));
assert!(!deep_equal(&U::Int(42), &U::Float(42.0)));
assert!(deep_equal(&U::None, &U::None));
assert!(!deep_equal(&U::None, &U::Int(0)));
}
enum UCustom {
Num(i32),
Str(&'static str),
}
impl DeepEqual for UCustom {
fn deep_equal(&self, other: &Self) -> bool {
match (self, other) {
(UCustom::Num(n), UCustom::Num(m)) => n.rem_euclid(10) == m.rem_euclid(10),
(UCustom::Str(s), UCustom::Str(t)) => s.len() == t.len(),
_ => false,
}
}
}
#[test]
fn deep_equal_union_with_equal_decl() {
assert!(deep_equal(&UCustom::Num(5), &UCustom::Num(25)));
assert!(!deep_equal(&UCustom::Num(5), &UCustom::Num(6)));
assert!(deep_equal(&UCustom::Str("abc"), &UCustom::Str("xyz")));
assert!(!deep_equal(&UCustom::Str("abc"), &UCustom::Str("ab")));
}
struct Item {
id: i32,
name: &'static str,
}
impl DeepEqual for Item {
fn deep_equal(&self, o: &Self) -> bool {
self.id.deep_equal(&o.id) && self.name.deep_equal(o.name)
}
}
#[test]
fn deep_equal_array_of_structs() {
let mk = |n: &'static str| [Item { id: 1, name: "one" }, Item { id: 2, name: n }];
assert!(deep_equal(&mk("two"), &mk("two")));
assert!(!deep_equal(&mk("two"), &mk("TWO")));
}
struct Config {
name: &'static str,
port: Option<u16>,
}
impl DeepEqual for Config {
fn deep_equal(&self, o: &Self) -> bool {
self.name.deep_equal(o.name) && self.port.deep_equal(&o.port)
}
}
#[test]
fn deep_equal_struct_with_optional_field() {
let c = |port| Config { name: "app", port };
assert!(deep_equal(&c(Some(8080)), &c(Some(8080))));
assert!(deep_equal(&c(None), &c(None)));
assert!(!deep_equal(&c(Some(8080)), &c(None)));
assert!(!deep_equal(&c(Some(8080)), &c(Some(8081))));
}
struct Data {
values: [i32; 3],
}
impl DeepEqual for Data {
fn deep_equal(&self, o: &Self) -> bool {
self.values.deep_equal(&o.values)
}
}
#[test]
fn deep_equal_struct_with_array_field() {
assert!(deep_equal(
&Data { values: [1, 2, 3] },
&Data { values: [1, 2, 3] }
));
assert!(!deep_equal(
&Data { values: [1, 2, 3] },
&Data { values: [1, 2, 4] }
));
}
#[test]
fn deep_equal_vec() {
assert!(deep_equal(&vec![1, 2], &vec![1, 2]));
assert!(!deep_equal(&vec![1, 2], &vec![1]));
}
}
+40 -1
View File
@@ -1 +1,40 @@
//! ghostty-datastruct: see docs/rewrite/ARCHITECTURE.md for the module map. //! The datastruct package contains data structures or anything closely
//! related to data structures. Port of `src/datastruct/*`.
//!
//! `intrusive_linked_list.zig` is intentionally not ported: its only user
//! (`lru.zig`) is implemented with an index-based list here. See
//! `docs/rewrite/notes/ghostty-datastruct.md`.
#![cfg_attr(
test,
allow(
clippy::unwrap_used,
clippy::float_cmp,
clippy::assert_is_empty,
clippy::redundant_closure_for_method_calls
)
)]
pub mod array_list_collection;
pub mod blocking_queue;
pub mod cache_table;
pub mod circ_buf;
pub mod comparison;
pub mod lru;
pub mod message_data;
pub mod segmented_pool;
pub mod split_tree;
pub use array_list_collection::ArrayListCollection;
pub use blocking_queue::BlockingQueue;
pub use cache_table::CacheTable;
pub use circ_buf::CircBuf;
pub use message_data::MessageData;
pub use segmented_pool::SegmentedPool;
pub use split_tree::SplitTree;
/// Stand-in for Zig's `Allocator.Error.OutOfMemory`, returned where a fixed
/// capacity structure cannot accept more data.
#[derive(Debug, Clone, Copy, PartialEq, Eq, thiserror::Error)]
#[error("out of memory")]
pub struct OutOfMemory;
+389
View File
@@ -0,0 +1,389 @@
//! A hash map with least-recently-used eviction (`lru.zig`).
//!
//! The Zig version threads an intrusive `std.DoublyLinkedList` through
//! allocated entries; here the entries live in a slab and are linked by
//! index.
use std::collections::HashMap as StdHashMap;
use std::hash::{BuildHasher, Hash, RandomState};
/// Create a HashMap for a key type that can be automatically hashed.
/// If you want finer-grained control, use [`HashMap`] directly.
pub type AutoHashMap<K, V> = HashMap<K, V, RandomState>;
/// A key/value pair.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Kv<K, V> {
pub key: K,
pub value: V,
}
/// The result of a `get_or_put` operation.
#[derive(Debug)]
pub struct GetOrPutResult<'a, K, V> {
/// The entry that was retrieved. If `found_existing` is false,
/// then this is a reference to space to store a V (initialized to
/// `V::default()`). If `found_existing` is true, the value is valid, but
/// can be overwritten.
pub value_ptr: &'a mut V,
/// Whether an existing value was found or not.
pub found_existing: bool,
/// If another entry had to be evicted to make space for this
/// put operation, then this is the value that was evicted.
pub evicted: Option<Kv<K, V>>,
}
#[derive(Debug)]
struct Entry<K, V> {
key: K,
value: V,
prev: Option<usize>,
next: Option<usize>,
}
/// HashMap implementation that supports least-recently-used eviction.
///
/// Note: This is a really elementary CS101 version of an LRU right now.
/// This is done initially to get something working. Once we have it working,
/// we can benchmark and improve if this ends up being a source of slowness.
#[derive(Debug)]
pub struct HashMap<K, V, S = RandomState> {
/// Map to maintain our entries (key -> slab index).
map: StdHashMap<K, usize, S>,
/// Slab of entries.
entries: Vec<Option<Entry<K, V>>>,
free: Vec<usize>,
/// Queue to maintain LRU order: `first` is the least recently used.
first: Option<usize>,
last: Option<usize>,
/// The capacity of our map. If this capacity is reached, cache
/// misses will begin evicting entries.
capacity: usize,
}
impl<K: Hash + Eq + Clone, V: Default> HashMap<K, V, RandomState> {
#[must_use]
pub fn new(capacity: usize) -> Self {
Self::with_hasher(capacity, RandomState::new())
}
}
impl<K: Hash + Eq + Clone, V: Default, S: BuildHasher> HashMap<K, V, S> {
#[must_use]
pub fn with_hasher(capacity: usize, hasher: S) -> Self {
Self {
map: StdHashMap::with_hasher(hasher),
entries: Vec::new(),
free: Vec::new(),
first: None,
last: None,
capacity,
}
}
/// The capacity of the map.
#[must_use]
pub fn capacity(&self) -> usize {
self.capacity
}
/// Number of entries.
#[must_use]
pub fn len(&self) -> usize {
self.map.len()
}
#[must_use]
pub fn is_empty(&self) -> bool {
self.map.is_empty()
}
fn entry(&self, idx: usize) -> &Entry<K, V> {
self.entries[idx].as_ref().expect("live lru entry")
}
fn entry_mut(&mut self, idx: usize) -> &mut Entry<K, V> {
self.entries[idx].as_mut().expect("live lru entry")
}
/// Unlink an entry from the queue.
fn unlink(&mut self, idx: usize) {
let (prev, next) = {
let e = self.entry(idx);
(e.prev, e.next)
};
match prev {
Some(p) => self.entry_mut(p).next = next,
None => self.first = next,
}
match next {
Some(n) => self.entry_mut(n).prev = prev,
None => self.last = prev,
}
let e = self.entry_mut(idx);
e.prev = None;
e.next = None;
}
/// Append an (unlinked) entry to the end (most recently used).
fn append(&mut self, idx: usize) {
let last = self.last;
{
let e = self.entry_mut(idx);
e.prev = last;
e.next = None;
}
match last {
Some(l) => self.entry_mut(l).next = Some(idx),
None => self.first = Some(idx),
}
self.last = Some(idx);
}
/// Get or put a value for a key. See [`GetOrPutResult`] on how to check
/// if an existing value was found, if an existing value was evicted,
/// etc.
pub fn get_or_put(&mut self, key: K) -> GetOrPutResult<'_, K, V> {
if let Some(&idx) = self.map.get(&key) {
// Move to end to mark as most recently used
self.unlink(idx);
self.append(idx);
return GetOrPutResult {
found_existing: true,
value_ptr: &mut self.entry_mut(idx).value,
evicted: None,
};
}
// We're evicting if our map insertion would increase our size
// beyond capacity.
let evict = self.map.len() + 1 > self.capacity;
let (idx, evicted) = if evict {
// Our first node is the least recently used. We avoid
// allocation by reusing the entry we evict.
let lru = self.first.expect("capacity must be non-zero to evict");
self.unlink(lru);
// Remove the least used from the map
let old_key = self.entry(lru).key.clone();
self.map.remove(&old_key);
let e = self.entry_mut(lru);
let old_key = std::mem::replace(&mut e.key, key.clone());
let old_value = std::mem::take(&mut e.value);
(
lru,
Some(Kv {
key: old_key,
value: old_value,
}),
)
} else {
let entry = Entry {
key: key.clone(),
value: V::default(),
prev: None,
next: None,
};
let idx = if let Some(i) = self.free.pop() {
self.entries[i] = Some(entry);
i
} else {
self.entries.push(Some(entry));
self.entries.len() - 1
};
(idx, None)
};
// Store our entry in the map and mark it as most recently used.
self.map.insert(key, idx);
self.append(idx);
GetOrPutResult {
found_existing: false,
value_ptr: &mut self.entry_mut(idx).value,
evicted,
}
}
/// Get a value for a key. This does not change the LRU order.
#[must_use]
pub fn get(&self, key: &K) -> Option<&V> {
let idx = *self.map.get(key)?;
Some(&self.entry(idx).value)
}
/// Resize the LRU. If this shrinks the LRU then LRU items will be
/// removed. The removed values are returned (oldest first).
pub fn resize(&mut self, capacity: usize) -> Option<Vec<V>> {
// Fastest
if capacity >= self.capacity {
self.capacity = capacity;
return None;
}
// If we're shrinking but we're smaller than the new capacity,
// then we don't have to do anything.
if self.map.len() <= capacity {
self.capacity = capacity;
return None;
}
// We're shrinking and we have more items than the new capacity
let delta = self.map.len() - capacity;
let mut evicted = Vec::with_capacity(delta);
for _ in 0..delta {
let idx = self.first.expect("non-empty queue");
self.unlink(idx);
let entry = self.entries[idx].take().expect("live lru entry");
self.free.push(idx);
self.map.remove(&entry.key);
evicted.push(entry.value);
}
self.capacity = capacity;
assert_eq!(self.map.len(), capacity);
Some(evicted)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn get_or_put() {
let mut m = AutoHashMap::<u32, u8>::new(2);
// Insert cap values, should be hits
{
let gop = m.get_or_put(1);
assert!(!gop.found_existing);
assert!(gop.evicted.is_none());
*gop.value_ptr = 1;
}
{
let gop = m.get_or_put(2);
assert!(!gop.found_existing);
assert!(gop.evicted.is_none());
*gop.value_ptr = 2;
}
// 1 is LRU
assert!(m.get_or_put(1).found_existing);
assert!(m.get_or_put(2).found_existing);
// Next should evict
{
let gop = m.get_or_put(3);
assert!(!gop.found_existing);
assert!(gop.evicted.is_some());
assert_eq!(gop.evicted.unwrap().value, 1);
*gop.value_ptr = 3;
}
// Currently: 2 is LRU, let's make 3 LRU
assert!(m.get_or_put(2).found_existing);
// Next should evict
{
let gop = m.get_or_put(4);
assert!(!gop.found_existing);
let ev = gop.evicted.unwrap();
assert_eq!(ev.value, 3);
assert_eq!(ev.key, 3);
*gop.value_ptr = 4;
}
}
#[test]
fn get() {
let mut m = AutoHashMap::<u32, u8>::new(2);
// Insert cap values, should be hits
{
let gop = m.get_or_put(1);
assert!(!gop.found_existing);
assert!(gop.evicted.is_none());
*gop.value_ptr = 1;
}
assert!(m.get(&1).is_some());
assert_eq!(*m.get(&1).unwrap(), 1);
assert!(m.get(&2).is_none());
}
#[test]
fn resize_shrink_without_removal() {
let mut m = AutoHashMap::<u32, u8>::new(2);
// Insert cap values, LRU is 1
{
let gop = m.get_or_put(1);
assert!(!gop.found_existing);
assert!(gop.evicted.is_none());
*gop.value_ptr = 1;
}
// Shrink
let evicted = m.resize(1);
assert!(evicted.is_none());
{
let gop = m.get_or_put(1);
assert!(gop.found_existing);
}
}
#[test]
fn resize_shrink_and_remove() {
let mut m = AutoHashMap::<u32, u8>::new(2);
// Insert cap values, LRU is 1
{
let gop = m.get_or_put(1);
assert!(!gop.found_existing);
assert!(gop.evicted.is_none());
*gop.value_ptr = 1;
}
{
let gop = m.get_or_put(2);
assert!(!gop.found_existing);
assert!(gop.evicted.is_none());
*gop.value_ptr = 2;
}
// Shrink
let evicted = m.resize(1).unwrap();
assert_eq!(evicted.len(), 1);
{
let gop = m.get_or_put(1);
assert!(!gop.found_existing);
assert_eq!(gop.evicted.as_ref().unwrap().value, 2);
*gop.value_ptr = 1;
}
}
#[test]
fn resize_grow_and_slot_reuse() {
let mut m = AutoHashMap::<u32, u8>::new(1);
*m.get_or_put(1).value_ptr = 1;
assert!(m.resize(3).is_none());
*m.get_or_put(2).value_ptr = 2;
*m.get_or_put(3).value_ptr = 3;
assert_eq!(m.len(), 3);
// Shrink to 1 evicts oldest-first and frees slots for reuse.
assert_eq!(m.resize(1).unwrap(), vec![1, 2]);
*m.get_or_put(4).value_ptr = 4;
assert_eq!(m.len(), 1);
assert_eq!(m.get(&4), Some(&4));
assert_eq!(m.get(&3), None);
}
}
@@ -0,0 +1,91 @@
//! Data that fits in an array, is a stable pointer, or is heap allocated
//! (`message_data.zig`). Helpful for thread messaging utilities.
/// A union that can be used to accommodate data that fit within an array,
/// are a stable pointer, or require deallocation. This is helpful for thread
/// messaging utilities.
#[derive(Debug, Clone)]
pub enum MessageData<Elem: Copy + Default + 'static, const SMALL_SIZE: usize> {
/// A small write where the data fits into this union size.
Small {
data: [Elem; SMALL_SIZE],
len: usize,
},
/// A stable pointer so we can just pass the slice directly through.
/// This is useful i.e. for const data.
Stable(&'static [Elem]),
/// Allocated. Freed on drop. This should be rarely used.
Alloc(Vec<Elem>),
}
impl<Elem: Copy + Default + 'static, const SMALL_SIZE: usize> MessageData<Elem, SMALL_SIZE> {
/// The maximum number of elements in the small variant.
pub const MAX: usize = SMALL_SIZE;
/// Initializes the union for a given data type. This will
/// attempt to fit into a small value if possible, otherwise
/// will allocate and put into `Alloc`.
///
/// This can't and will never detect stable pointers.
#[must_use]
pub fn init(data: &[Elem]) -> Self {
// If it fits in our small request, do that.
if data.len() <= SMALL_SIZE {
let mut buf = [Elem::default(); SMALL_SIZE];
buf[..data.len()].copy_from_slice(data);
return Self::Small {
data: buf,
len: data.len(),
};
}
// Otherwise, allocate
Self::Alloc(data.to_vec())
}
/// Returns a const slice of the data pointed to by this request.
#[must_use]
pub fn slice(&self) -> &[Elem] {
match self {
Self::Small { data, len } => &data[..*len],
Self::Stable(v) => v,
Self::Alloc(v) => v,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn message_data_init_small() {
let io = MessageData::<u8, 10>::init(b"hello!");
assert!(matches!(io, MessageData::Small { .. }));
assert_eq!(io.slice(), b"hello!");
}
#[test]
fn message_data_init_alloc() {
let input = "hello! ".repeat(100);
let io = MessageData::<u8, 10>::init(input.as_bytes());
assert!(matches!(io, MessageData::Alloc(_)));
assert_eq!(io.slice(), input.as_bytes());
}
#[test]
fn message_data_small_fits_non_u8_sized_data() {
let input = [b'X'; 500];
let io = MessageData::<u8, 500>::init(&input);
assert!(matches!(io, MessageData::Small { .. }));
assert_eq!(io.slice().len(), 500);
}
#[test]
fn message_data_stable() {
let io = MessageData::<u8, 4>::Stable(b"static");
assert_eq!(io.slice(), b"static");
}
}
@@ -0,0 +1,147 @@
//! A pool of values with stable slots (`segmented_pool.zig`).
/// Returned by [`SegmentedPool::get`] when there are no values available.
#[derive(Debug, Clone, Copy, PartialEq, Eq, thiserror::Error)]
#[error("out of values")]
pub struct OutOfValues;
/// A data structure where you can get stable (never moved) slots for
/// a type that automatically grows if necessary. The values can be "put back"
/// but are expected to be put back IN ORDER.
///
/// This is implemented specifically for libuv write requests, since the
/// write requests must have a stable pointer and are guaranteed to be processed
/// in order for a single stream.
///
/// Instead of raw pointers, slots are identified by a stable index returned
/// from [`get`](Self::get) and accessed with [`at`](Self::at) /
/// [`at_mut`](Self::at_mut).
///
/// This is NOT thread safe.
#[derive(Debug, Clone)]
pub struct SegmentedPool<T: Default, const PREALLOC: usize> {
i: usize,
available: usize,
list: Vec<T>,
}
impl<T: Default, const PREALLOC: usize> Default for SegmentedPool<T, PREALLOC> {
fn default() -> Self {
Self::new()
}
}
impl<T: Default, const PREALLOC: usize> SegmentedPool<T, PREALLOC> {
#[must_use]
pub fn new() -> Self {
Self {
i: 0,
available: PREALLOC,
list: (0..PREALLOC).map(|_| T::default()).collect(),
}
}
/// Number of values currently available without growing.
#[must_use]
pub fn available(&self) -> usize {
self.available
}
/// Total number of slots.
#[must_use]
pub fn len(&self) -> usize {
self.list.len()
}
#[must_use]
pub fn is_empty(&self) -> bool {
self.list.is_empty()
}
/// Access the slot at an index returned by `get`.
#[must_use]
pub fn at(&self, idx: usize) -> &T {
&self.list[idx]
}
/// Mutably access the slot at an index returned by `get`.
pub fn at_mut(&mut self, idx: usize) -> &mut T {
&mut self.list[idx]
}
/// Get the next available value out of the list (as a slot index). This
/// will not grow the list.
pub fn get(&mut self) -> Result<usize, OutOfValues> {
// Error to not have any
if self.available == 0 {
return Err(OutOfValues);
}
// The index we grab is just i % len, so we wrap around to the front.
let i = self.i % self.list.len();
self.i = self.i.wrapping_add(1); // Wrapping addition so we go back to 0
self.available -= 1;
Ok(i)
}
/// Get the next available value out of the list and grow the list
/// if necessary.
pub fn get_grow(&mut self) -> Result<usize, OutOfValues> {
if self.available == 0 {
self.grow();
}
self.get()
}
fn grow(&mut self) {
let old = self.list.len();
self.list.extend((0..old).map(|_| T::default()));
self.i = old;
self.available = old;
}
/// Put a value back. The value put back is expected to be the
/// in order of get.
pub fn put(&mut self) {
self.available += 1;
assert!(self.available <= self.list.len());
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn segmented_pool() {
let mut list: SegmentedPool<u8, 2> = SegmentedPool::new();
assert_eq!(list.available(), 2);
// Get to capacity
let v1 = list.get().unwrap();
let v2 = list.get().unwrap();
assert_ne!(v1, v2);
assert_eq!(list.get(), Err(OutOfValues));
// Test writing for later
*list.at_mut(v1) = 42;
// Put a value back
list.put();
let temp = list.get().unwrap();
assert_eq!(v1, temp);
assert_eq!(*list.at(temp), 42);
assert_eq!(list.get(), Err(OutOfValues));
// Grow
let v3 = list.get_grow().unwrap();
assert!(v1 != v3 && v2 != v3);
list.get().unwrap();
assert_eq!(list.get(), Err(OutOfValues));
// Put a value back
list.put();
assert_eq!(v1, list.get().unwrap());
assert_eq!(list.get(), Err(OutOfValues));
}
}
+1706
View File
@@ -0,0 +1,1706 @@
//! `SplitTree` represents a tree of view types that can be divided.
//!
//! Concretely for Ghostty, it represents a tree of terminal views. In
//! its basic state, there are no splits and it is a single full-sized
//! terminal. However, it can be split arbitrarily many times among two
//! axes (horizontal and vertical) to create a tree of terminal views.
//!
//! This is an immutable tree structure, meaning all operations on it
//! will return a new tree with the operation applied. This allows us to
//! store versions of the tree in a history for easy undo/redo. To facilitate
//! this, the stored View type must implement reference counting; in Rust that
//! is expressed with [`Clone`] (the Zig `ref`; e.g. `Rc<T>`, a GObject
//! handle) and [`Drop`] (the Zig `unref`).
//!
//! Optionally a view can implement [`SplitTreeView::split_tree_label`] to
//! provide a label used by the debug view. If this isn't specified then the
//! node handle will be used.
//!
//! Deviations from the Zig version: allocation is infallible (no allocator
//! parameters / `Allocator.Error`), the arena is replaced by a `Vec`, and the
//! GObject boxed-type glue (`getGObjectType`) is left to the GTK crate.
use half::f16;
use std::fmt;
/// The requirements on the view type stored in a [`SplitTree`].
pub trait SplitTreeView: Clone {
/// Return a label that is used for the debug view. If this returns
/// `None` then the node handle will be used.
fn split_tree_label(&self) -> Option<String> {
None
}
}
/// Error returned by [`SplitTree::split`] when the resulting tree would have
/// more nodes than a [`Handle`] can address (`error.OutOfMemory` in Zig).
#[derive(Debug, Clone, Copy, PartialEq, Eq, thiserror::Error)]
pub enum SplitError {
#[error("out of memory: too many nodes in split tree")]
OutOfMemory,
}
/// A handle into the nodes array. This lets us keep track of nodes with
/// 16-bit handles rather than full pointer-width values.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct Handle(u16);
impl Handle {
/// The root node (index 0).
pub const ROOT: Handle = Handle(0);
/// Create a handle from an index.
///
/// # Panics
/// If the index doesn't fit in the handle backing type.
#[must_use]
pub fn from_idx(idx: usize) -> Handle {
Handle(u16::try_from(idx).expect("split tree handle out of range"))
}
#[inline]
#[must_use]
pub fn idx(self) -> usize {
usize::from(self.0)
}
/// Offset the handle by a given amount.
#[must_use]
pub fn offset(self, v: usize) -> Handle {
let final_ = self.idx() + v;
assert!(final_ < usize::from(u16::MAX));
Handle::from_idx(final_)
}
}
#[derive(Debug, Clone)]
pub enum Node<V> {
Leaf(V),
Split(Split),
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Layout {
Horizontal,
Vertical,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Direction {
Left,
Right,
Down,
Up,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Split {
pub layout: Layout,
pub ratio: f16,
pub left: Handle,
pub right: Handle,
}
/// Alias matching the Zig `Split.Layout` / `Split.Direction` names.
pub type SplitLayout = Layout;
pub type SplitDirection = Direction;
/// A view in the tree with its handle.
#[derive(Debug, Clone, Copy)]
pub struct ViewEntry<'a, V> {
pub handle: Handle,
pub view: &'a V,
}
/// An iterator over all the views in the tree.
pub struct Iter<'a, V> {
i: usize,
nodes: &'a [Node<V>],
}
impl<'a, V> Iterator for Iter<'a, V> {
type Item = ViewEntry<'a, V>;
fn next(&mut self) -> Option<Self::Item> {
loop {
// If we have no nodes, return None.
if self.i >= self.nodes.len() {
return None;
}
// Get the current node and increment the index.
let handle = Handle::from_idx(self.i);
self.i += 1;
if let Node::Leaf(v) = &self.nodes[handle.idx()] {
return Some(ViewEntry { handle, view: v });
}
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Goto {
/// Previous view, null if we're the first view.
Previous,
/// Next view, null if we're the last view.
Next,
/// Previous view, but wrapped around to the last view. May
/// return the same view if this is the first view.
PreviousWrapped,
/// Next view, but wrapped around to the first view. May return
/// the same view if this is the last view.
NextWrapped,
/// A spatial direction. "Spatial" means that the direction is
/// based on the nearest surface in the given direction visually
/// as the surfaces are laid out on a 2D grid.
Spatial(SpatialDirection),
}
pub type SpatialDirection = Direction;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Side {
Left,
Right,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[allow(clippy::enum_variant_names)]
enum Backtrack {
Deadend,
Backtrack,
Result(Handle),
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Slot {
pub x: f16,
pub y: f16,
pub width: f16,
pub height: f16,
}
impl Slot {
fn max_x(self) -> f16 {
self.x + self.width
}
fn max_y(self) -> f16 {
self.y + self.height
}
}
/// Spatial representation of the split tree. See [`SplitTree::spatial`].
#[derive(Debug, Clone, Default, PartialEq)]
pub struct Spatial {
/// The slots of the spatial representation in the same order
/// as the tree it was created from.
pub slots: Vec<Slot>,
}
impl Spatial {
pub const EMPTY: Spatial = Spatial { slots: Vec::new() };
}
/// Unsigned integer to f16 (`@floatFromInt`).
fn f16_from_usize(v: usize) -> f16 {
f16::from_f32(v as f32)
}
fn f16_sqrt(v: f16) -> f16 {
f16::from_f32(v.to_f32().sqrt())
}
fn f16_min(a: f16, b: f16) -> f16 {
if b < a { b } else { a }
}
fn f16_max(a: f16, b: f16) -> f16 {
if b > a { b } else { a }
}
/// See the module documentation.
#[derive(Debug, Clone)]
pub struct SplitTree<V> {
/// All the nodes in the tree. Node at index 0 is always the root.
nodes: Vec<Node<V>>,
/// The handle of the zoomed node. A "zoomed" node is one that is
/// expected to be made the full size of the split tree. Various
/// operations may unzoom (e.g. resize).
zoomed: Option<Handle>,
}
impl<V> Default for SplitTree<V> {
fn default() -> Self {
Self::empty()
}
}
impl<V> SplitTree<V> {
/// An empty tree.
#[must_use]
pub const fn empty() -> Self {
Self {
nodes: Vec::new(),
zoomed: None,
}
}
/// All nodes of the tree. Node at index 0 is the root.
#[must_use]
pub fn nodes(&self) -> &[Node<V>] {
&self.nodes
}
/// The zoomed node, if any.
#[must_use]
pub fn zoomed(&self) -> Option<Handle> {
self.zoomed
}
/// Returns true if this is an empty tree.
#[must_use]
pub fn is_empty(&self) -> bool {
// An empty tree has no nodes.
self.nodes.is_empty()
}
/// Returns true if this tree has more than one split (i.e., the root
/// is a split node). This is useful for determining if actions like
/// resize_split or toggle_split_zoom are performable.
#[must_use]
pub fn is_split(&self) -> bool {
// An empty tree is not split.
if self.is_empty() {
return false;
}
// The root node is at index 0. If it's a split, we have multiple splits.
matches!(self.nodes[0], Node::Split(_))
}
/// An iterator over all the views in the tree.
#[must_use]
pub fn iterator(&self) -> Iter<'_, V> {
Iter {
i: 0,
nodes: &self.nodes,
}
}
/// Change the zoomed state to the given node. Assumes the handle
/// is valid.
pub fn zoom(&mut self, handle: Option<Handle>) {
if let Some(v) = handle {
assert!(v.idx() < self.nodes.len());
}
self.zoomed = handle;
}
fn split_node(&self, h: Handle) -> Option<&Split> {
match &self.nodes[h.idx()] {
Node::Split(s) => Some(s),
Node::Leaf(_) => None,
}
}
/// Goto a view from a certain point in the split tree. Returns `None`
/// if the direction results in no visitable view.
#[must_use]
pub fn goto(&self, from: Handle, to: Goto) -> Option<Handle> {
match to {
Goto::Previous => self.previous(from),
Goto::Next => self.next(from),
Goto::PreviousWrapped => self
.previous(from)
.or_else(|| Some(self.deepest(Side::Right, Handle::ROOT))),
Goto::NextWrapped => self
.next(from)
.or_else(|| Some(self.deepest(Side::Left, Handle::ROOT))),
Goto::Spatial(d) => {
// Get our spatial representation.
let sp = self.spatial();
self.nearest_wrapped(&sp, from, d)
}
}
}
/// Returns the deepest view in the tree in the given direction.
/// This can be used to find the leftmost/rightmost surface within
/// a given split structure.
#[must_use]
pub fn deepest(&self, side: Side, from: Handle) -> Handle {
let mut current = from;
loop {
match &self.nodes[current.idx()] {
Node::Leaf(_) => return current,
Node::Split(s) => {
current = match side {
Side::Left => s.left,
Side::Right => s.right,
};
}
}
}
}
/// Returns the previous view from the given node handle (which itself
/// doesn't need to be a view). If there is no previous (this is the
/// most previous view) then this will return `None`.
///
/// "Previous" is defined as the previous node in an in-order
/// traversal of the tree. This isn't a perfect definition and we
/// may want to change this to something that better matches a
/// spatial view of the tree later.
fn previous(&self, from: Handle) -> Option<Handle> {
match self.previous_backtrack(from, Handle::ROOT) {
Backtrack::Result(v) => Some(v),
Backtrack::Backtrack | Backtrack::Deadend => None,
}
}
/// Same as `previous`, but returns the next view instead.
fn next(&self, from: Handle) -> Option<Handle> {
match self.next_backtrack(from, Handle::ROOT) {
Backtrack::Result(v) => Some(v),
Backtrack::Backtrack | Backtrack::Deadend => None,
}
}
// Design note: we use a recursive backtracking search because
// split trees are never that deep, so we can abuse the stack as
// a safe allocator (stack overflow unlikely unless the kernel is
// tuned in some really weird way).
fn previous_backtrack(&self, from: Handle, current: Handle) -> Backtrack {
// If we reached the point that we're trying to find the previous
// value of, then we need to backtrack from here.
if from == current {
return Backtrack::Backtrack;
}
match &self.nodes[current.idx()] {
// If we hit a leaf that isn't our target, then deadend.
Node::Leaf(_) => Backtrack::Deadend,
Node::Split(s) => match self.previous_backtrack(from, s.left) {
Backtrack::Result(v) => Backtrack::Result(v),
// Backtrack from the left means we have to continue
// backtracking because we can't see what's before the left.
Backtrack::Backtrack => Backtrack::Backtrack,
// If we hit a deadend on the left then let's move right.
Backtrack::Deadend => match self.previous_backtrack(from, s.right) {
Backtrack::Result(v) => Backtrack::Result(v),
// Deadend means its not in this split at all since
// we already tracked the left.
Backtrack::Deadend => Backtrack::Deadend,
// Backtrack means that its in our left view because
// we can see the immediate previous and there MUST
// be leaves (we can't have split-only leaves).
Backtrack::Backtrack => Backtrack::Result(self.deepest(Side::Right, s.left)),
},
},
}
}
// See previous_backtrack for detailed comments. This is a mirror of that.
fn next_backtrack(&self, from: Handle, current: Handle) -> Backtrack {
if from == current {
return Backtrack::Backtrack;
}
match &self.nodes[current.idx()] {
Node::Leaf(_) => Backtrack::Deadend,
Node::Split(s) => match self.next_backtrack(from, s.right) {
Backtrack::Result(v) => Backtrack::Result(v),
Backtrack::Backtrack => Backtrack::Backtrack,
Backtrack::Deadend => match self.next_backtrack(from, s.left) {
Backtrack::Result(v) => Backtrack::Result(v),
Backtrack::Deadend => Backtrack::Deadend,
Backtrack::Backtrack => Backtrack::Result(self.deepest(Side::Left, s.right)),
},
},
}
}
/// Returns the nearest leaf node (view) in the given direction.
/// This does not handle wrapping and will return `None` if there
/// is no node in that direction.
fn nearest(
&self,
sp: &Spatial,
from: Handle,
direction: SpatialDirection,
target: Slot,
) -> Option<Handle> {
let mut result: Option<(Handle, f16)> = None;
for (handle, slot) in sp.slots.iter().enumerate() {
// Never match ourself
if handle == from.idx() {
continue;
}
// Only match leaves
if matches!(self.nodes[handle], Node::Split(_)) {
continue;
}
// Ensure it is in the proper direction
let ok = match direction {
Direction::Left => slot.max_x() <= target.x,
Direction::Right => slot.x >= target.max_x(),
Direction::Up => slot.max_y() <= target.y,
Direction::Down => slot.y >= target.max_y(),
};
if !ok {
continue;
}
// Track our distance
let dx = slot.x - target.x;
let dy = slot.y - target.y;
let distance = f16_sqrt(dx * dx + dy * dy);
// If we have a nearest it must be closer.
if let Some((_, d)) = result
&& distance >= d
{
continue;
}
result = Some((Handle::from_idx(handle), distance));
}
result.map(|(h, _)| h)
}
/// Same as nearest but supports wrapping.
fn nearest_wrapped(
&self,
sp: &Spatial,
from: Handle,
direction: SpatialDirection,
) -> Option<Handle> {
// If we can find a nearest value without wrapping, then use that.
let mut target = sp.slots[from.idx()];
if let Some(v) = self.nearest(sp, from, direction, target) {
return Some(v);
}
// The spatial grid is normalized to 1x1, so wrapping is modeled
// by shifting the target slot by one full grid in the opposite
// direction and reusing the same nearest distance logic.
// We don't actually modify the grid or spatial representation,
// this just fakes it.
let one = f16::ONE;
assert!(target.x >= f16::ZERO && target.y >= f16::ZERO);
assert!(target.max_x() <= one && target.max_y() <= one);
match direction {
Direction::Left => target.x += one,
Direction::Right => target.x -= one,
Direction::Up => target.y += one,
Direction::Down => target.y -= one,
}
self.nearest(sp, from, direction, target)
}
/// Resize the given node in place. The node MUST be a split (asserted).
///
/// In general, this is an immutable data structure so this is
/// heavily discouraged. However, this is provided for convenience
/// and performance reasons where its very important for GUIs to
/// update the ratio during a live resize than to redraw the entire
/// widget tree.
pub fn resize_in_place(&mut self, at: Handle, ratio: f16) {
match &mut self.nodes[at.idx()] {
Node::Split(s) => s.ratio = ratio,
Node::Leaf(_) => panic!("resize_in_place on a leaf node"),
}
}
/// Returns the number of nodes that would be needed to store
/// the tree if the target node is removed.
fn count_after_removal(&self, current: Handle, target: Handle, acc: usize) -> usize {
assert_ne!(current, target);
match &self.nodes[current.idx()] {
// Leaf is simple, always takes one node.
Node::Leaf(_) => acc + 1,
// Split is slightly more complicated. If either side is the
// target to remove, then we remove the split node as well
// so our count is just the count of the other side.
//
// If neither side is the target, then we count both sides
// and add one to account for the split node itself.
Node::Split(s) => {
if s.left == target {
self.count_after_removal(s.right, target, acc)
} else if s.right == target {
self.count_after_removal(s.left, target, acc)
} else {
self.count_after_removal(s.left, target, acc)
+ self.count_after_removal(s.right, target, acc)
+ 1
}
}
}
}
fn weight(&self, from: Handle, layout: Layout, acc: usize) -> usize {
match &self.nodes[from.idx()] {
Node::Leaf(_) => acc + 1,
Node::Split(s) => {
if s.layout == layout {
self.weight(s.left, layout, acc) + self.weight(s.right, layout, acc)
} else {
1
}
}
}
}
fn find_parent_split(&self, layout: Layout, from: Handle, current: Handle) -> Backtrack {
if from == current {
return Backtrack::Backtrack;
}
match &self.nodes[current.idx()] {
Node::Leaf(_) => Backtrack::Deadend,
Node::Split(s) => match self.find_parent_split(layout, from, s.left) {
Backtrack::Result(v) => Backtrack::Result(v),
Backtrack::Backtrack => {
if s.layout == layout {
Backtrack::Result(current)
} else {
Backtrack::Backtrack
}
}
Backtrack::Deadend => match self.find_parent_split(layout, from, s.right) {
Backtrack::Deadend => Backtrack::Deadend,
Backtrack::Result(v) => Backtrack::Result(v),
Backtrack::Backtrack => {
if s.layout == layout {
Backtrack::Result(current)
} else {
Backtrack::Backtrack
}
}
},
},
}
}
/// Spatial representation of the split tree. This can be used to
/// better understand the layout of the tree in a 2D space.
///
/// The bounds of the representation are always based on the total
/// 2D space being 1x1. The x/y coordinates and width/height dimensions
/// of each individual split and leaf are relative to this.
/// This means that the spatial representation is a normalized
/// representation of the actual space.
///
/// The top-left corner of the tree is always (0, 0).
///
/// We use a normalized form because we can calculate it without
/// accessing to the actual rendered view sizes. These actual sizes
/// may not be available at various times because GUI toolkits often
/// only make them available once they're part of a widget tree and
/// a SplitTree can represent views that aren't currently visible.
#[must_use]
pub fn spatial(&self) -> Spatial {
// No nodes, empty spatial representation.
if self.nodes.is_empty() {
return Spatial::EMPTY;
}
// Get our total dimensions.
let (dim_w, dim_h) = self.dimensions(Handle::ROOT);
// Create our slots which will match our nodes exactly.
let zero = Slot {
x: f16::ZERO,
y: f16::ZERO,
width: f16::ZERO,
height: f16::ZERO,
};
let mut slots = vec![zero; self.nodes.len()];
slots[0] = Slot {
x: f16::ZERO,
y: f16::ZERO,
width: f16_from_usize(usize::from(dim_w)),
height: f16_from_usize(usize::from(dim_h)),
};
self.fill_spatial_slots(&mut slots, Handle::ROOT);
// Normalize the dimensions to 1x1 grid.
let fw = f16_from_usize(usize::from(dim_w));
let fh = f16_from_usize(usize::from(dim_h));
for slot in &mut slots {
slot.x /= fw;
slot.y /= fh;
slot.width /= fw;
slot.height /= fh;
}
Spatial { slots }
}
fn fill_spatial_slots(&self, slots: &mut [Slot], current_: Handle) {
let current = current_.idx();
assert!(slots[current].width >= f16::ZERO && slots[current].height >= f16::ZERO);
match &self.nodes[current] {
// Leaf node, current slot is already filled by caller.
Node::Leaf(_) => {}
Node::Split(s) => {
let cur = slots[current];
let one = f16::ONE;
match s.layout {
Layout::Horizontal => {
slots[s.left.idx()] = Slot {
x: cur.x,
y: cur.y,
width: cur.width * s.ratio,
height: cur.height,
};
slots[s.right.idx()] = Slot {
x: cur.x + cur.width * s.ratio,
y: cur.y,
width: cur.width * (one - s.ratio),
height: cur.height,
};
}
Layout::Vertical => {
slots[s.left.idx()] = Slot {
x: cur.x,
y: cur.y,
width: cur.width,
height: cur.height * s.ratio,
};
slots[s.right.idx()] = Slot {
x: cur.x,
y: cur.y + cur.height * s.ratio,
width: cur.width,
height: cur.height * (one - s.ratio),
};
}
}
self.fill_spatial_slots(slots, s.left);
self.fill_spatial_slots(slots, s.right);
}
}
}
/// Get the dimensions of the tree starting from the given node.
///
/// This creates relative dimensions (see Spatial) by assuming each
/// leaf is exactly 1x1 unit in size. Returns `(width, height)`.
fn dimensions(&self, current: Handle) -> (u16, u16) {
match &self.nodes[current.idx()] {
Node::Leaf(_) => (1, 1),
Node::Split(s) => {
let left = self.dimensions(s.left);
let right = self.dimensions(s.right);
match s.layout {
Layout::Horizontal => (left.0 + right.0, left.1.max(right.1)),
Layout::Vertical => (left.0.max(right.0), left.1 + right.1),
}
}
}
}
}
impl<V: SplitTreeView> SplitTree<V> {
/// Initialize a new tree with a single view. The view is referenced
/// (cloned) by the tree.
#[must_use]
pub fn new(view: &V) -> Self {
Self {
nodes: vec![Node::Leaf(view.clone())],
zoomed: None,
}
}
/// Insert another tree into this tree at the given node in the
/// specified direction. The other tree will be inserted in the
/// new direction. For example, if the direction is "right" then
/// `insert` is inserted right of the existing node.
///
/// The previous trees are not modified, but reference counts for the
/// views will be increased accordingly for the new tree.
pub fn split(
&self,
at: Handle,
direction: Direction,
ratio: f16,
insert: &Self,
) -> Result<Self, SplitError> {
// We know we're going to need the sum total of the nodes
// between the two trees plus one for the new split node.
let total = self.nodes.len() + insert.nodes.len() + 1;
if total > usize::from(u16::MAX) {
return Err(SplitError::OutOfMemory);
}
// We can copy our nodes exactly as they are, since they're
// mostly not changing (only `at` is changing). We can copy the
// destination nodes as well directly next to the source nodes. We
// just have to go through and offset all the handles in the
// destination tree to account for the shift.
let mut nodes: Vec<Node<V>> = Vec::with_capacity(total);
nodes.extend(self.nodes.iter().cloned());
for node in &insert.nodes {
nodes.push(match node {
Node::Leaf(v) => Node::Leaf(v.clone()),
Node::Split(s) => Node::Split(Split {
left: s.left.offset(self.nodes.len()),
right: s.right.offset(self.nodes.len()),
..*s
}),
});
}
// Determine our split layout and if we're on the left
let (layout, left) = match direction {
Direction::Left => (Layout::Horizontal, true),
Direction::Right => (Layout::Horizontal, false),
Direction::Up => (Layout::Vertical, true),
Direction::Down => (Layout::Vertical, false),
};
// Copy our previous value to the end of the nodes list and
// create our new split node.
let prev = nodes[at.idx()].clone();
nodes.push(prev);
let last = nodes.len() - 1;
let (l, r) = if left {
(self.nodes.len(), last)
} else {
(last, self.nodes.len())
};
nodes[at.idx()] = Node::Split(Split {
layout,
ratio,
left: Handle::from_idx(l),
right: Handle::from_idx(r),
});
Ok(Self {
nodes,
// Splitting always resets zoom state.
zoomed: None,
})
}
/// Remove a node from the tree.
#[must_use]
pub fn remove(&self, at: Handle) -> Self {
assert!(at.idx() < self.nodes.len());
// If we're removing node zero then we're clearing the tree.
if at == Handle::ROOT {
return Self::empty();
}
// Allocate our new nodes list with the number of nodes we'll
// need after the removal.
let count = self.count_after_removal(Handle::ROOT, at, 0);
let mut new_nodes: Vec<Option<Node<V>>> = (0..count).map(|_| None).collect();
let mut new_zoomed = None;
// Traverse the tree and copy all our nodes into place.
assert!(self.remove_node(&mut new_nodes, &mut new_zoomed, 0, Handle::ROOT, at) != 0);
Self {
nodes: new_nodes
.into_iter()
.map(|n| n.expect("all nodes filled by remove"))
.collect(),
zoomed: new_zoomed,
}
}
fn remove_node(
&self,
new_nodes: &mut [Option<Node<V>>],
new_zoomed: &mut Option<Handle>,
new_offset: usize,
current: Handle,
target: Handle,
) -> usize {
assert_ne!(current, target);
// If we have a zoomed node and this is it then we migrate it.
if let Some(v) = self.zoomed
&& v == current
{
assert!(new_zoomed.is_none());
*new_zoomed = Some(Handle::from_idx(new_offset));
}
match &self.nodes[current.idx()] {
// Leaf is simple, just copy it over (cloning is the ref).
Node::Leaf(view) => {
new_nodes[new_offset] = Some(Node::Leaf(view.clone()));
1
}
Node::Split(s) => {
// If we're removing one of the split node sides then
// we remove the split node itself as well and only add
// the other (non-removed) side.
if s.left == target {
return self.remove_node(new_nodes, new_zoomed, new_offset, s.right, target);
}
if s.right == target {
return self.remove_node(new_nodes, new_zoomed, new_offset, s.left, target);
}
// Neither side is being directly removed, so we traverse.
let left = self.remove_node(new_nodes, new_zoomed, new_offset + 1, s.left, target);
assert!(left != 0);
let right = self.remove_node(
new_nodes,
new_zoomed,
new_offset + left + 1,
s.right,
target,
);
assert!(right != 0);
new_nodes[new_offset] = Some(Node::Split(Split {
layout: s.layout,
ratio: s.ratio,
left: Handle::from_idx(new_offset + 1),
right: Handle::from_idx(new_offset + 1 + left),
}));
left + right + 1
}
}
}
/// Equalize this node and all its children, returning a new node with splits
/// adjusted so that each split's ratio is based on the relative weight
/// (number of leaves) of its children.
#[must_use]
pub fn equalize(&self) -> Self {
if self.is_empty() {
return Self::empty();
}
// Copy the existing nodes (cloning the views).
let mut nodes = self.nodes.clone();
// Go through and equalize our ratios based on weights.
for node in &mut nodes {
if let Node::Split(s) = node {
let weight_left = self.weight(s.left, s.layout, 0);
let weight_right = self.weight(s.right, s.layout, 0);
assert!(weight_left > 0);
assert!(weight_right > 0);
let total_f16 = f16_from_usize(weight_left + weight_right);
let weight_left_f16 = f16_from_usize(weight_left);
s.ratio = weight_left_f16 / total_f16;
}
}
Self {
nodes,
zoomed: self.zoomed,
}
}
/// Resize the nearest split matching the layout by the given ratio.
/// Positive is right and down.
///
/// The ratio is a signed delta representing the percentage to move
/// the divider. The percentage is of the entire grid size, not just
/// the specific split size.
/// We use the entire grid size because that's what Ghostty's
/// `resize_split` keybind does, because it maps to a general human
/// understanding of moving a split relative to the entire window
/// (generally).
///
/// For example, a ratio of 0.1 and a layout of `vertical` will find
/// the nearest vertical split and move the divider down by 10% of
/// the total grid height.
///
/// If no matching split is found, this does nothing, but will always
/// still return a cloned tree.
#[must_use]
pub fn resize(&self, from: Handle, layout: Layout, ratio: f16) -> Self {
assert!(ratio >= f16::from_f32(-1.0) && ratio <= f16::ONE);
assert!(!ratio.is_nan());
assert!(!ratio.is_infinite());
// Fast path empty trees.
if self.is_empty() {
return Self::empty();
}
// From this point forward worst case we return a clone.
let mut result = self.clone();
// Find our nearest parent split node matching the layout.
let parent_handle = match self.find_parent_split(layout, from, Handle::ROOT) {
Backtrack::Deadend | Backtrack::Backtrack => return result,
Backtrack::Result(v) => v,
};
// Get our spatial layout, because we need the dimensions of this
// split with regards to the entire grid.
let sp = result.spatial();
// Get the ratio of the split relative to the full grid.
let full_ratio = {
// Our scale is the amount we need to multiply our individual
// ratio by to get the full ratio. Its actually a ratio on its
// own but I'm trying to avoid that word: its the ratio of
// our spatial width/height to the total.
let scale = match layout {
Layout::Horizontal => sp.slots[parent_handle.idx()].width / sp.slots[0].width,
Layout::Vertical => sp.slots[parent_handle.idx()].height / sp.slots[0].height,
};
let current = result
.split_node(parent_handle)
.expect("parent is a split")
.ratio;
current * scale
};
// Set the final new ratio, clamping it to [0, 1]
result.resize_in_place(
parent_handle,
f16_min(f16_max(full_ratio + ratio, f16::ZERO), f16::ONE),
);
result
}
/// Format the tree in a human-readable format. By default this will
/// output a diagram followed by a textual representation.
fn format_all(&self, w: &mut dyn fmt::Write) -> fmt::Result {
if self.nodes.is_empty() {
return w.write_str("empty");
}
let _ = self.format_diagram(w);
self.format_text(w)
}
/// Text representation of the tree.
pub fn format_text(&self, w: &mut dyn fmt::Write) -> fmt::Result {
if self.nodes.is_empty() {
return w.write_str("empty");
}
self.format_text_inner(w, Handle::ROOT, 0)
}
fn format_text_inner(
&self,
w: &mut dyn fmt::Write,
current: Handle,
depth: usize,
) -> fmt::Result {
for _ in 0..depth {
w.write_str(" ")?;
}
if let Some(zoomed) = self.zoomed
&& zoomed == current
{
w.write_str("(zoomed) ")?;
}
match &self.nodes[current.idx()] {
Node::Leaf(v) => match v.split_tree_label() {
Some(label) => writeln!(w, "leaf: {label}"),
None => writeln!(w, "leaf: {}", current.idx()),
},
Node::Split(s) => {
let layout = match s.layout {
Layout::Horizontal => "horizontal",
Layout::Vertical => "vertical",
};
writeln!(
w,
"split (layout: {layout}, ratio: {:.2})",
s.ratio.to_f32()
)?;
self.format_text_inner(w, s.left, depth + 1)?;
self.format_text_inner(w, s.right, depth + 1)
}
}
}
/// ASCII-art diagram of the tree.
#[allow(clippy::too_many_lines)]
pub fn format_diagram(&self, w: &mut dyn fmt::Write) -> fmt::Result {
if self.nodes.is_empty() {
return w.write_str("empty");
}
// Get our spatial representation.
let sp = {
let sp = self.spatial();
// Scale our spatial representation to have minimum width/height 1.
let mut min_w = f16::ONE;
let mut min_h = f16::ONE;
for slot in &sp.slots {
if slot.width > f16::ZERO {
min_w = f16_min(min_w, slot.width);
}
if slot.height > f16::ZERO {
min_h = f16_min(min_h, slot.height);
}
}
let ratio_w = f16::ONE / min_w;
let ratio_h = f16::ONE / min_h;
let mut slots = sp.slots.clone();
for slot in &mut slots {
slot.x *= ratio_w;
slot.y *= ratio_h;
slot.width *= ratio_w;
slot.height *= ratio_h;
}
Spatial { slots }
};
let label_of = |handle: usize, node: &Node<V>| -> Option<String> {
match node {
Node::Split(_) => None,
Node::Leaf(v) => Some(v.split_tree_label().unwrap_or_else(|| handle.to_string())),
}
};
// The width we need for the largest label.
let max_label_width: usize = {
let mut max = 0;
let mut any_label = false;
for node in &self.nodes {
if let Node::Leaf(v) = node
&& let Some(label) = v.split_tree_label()
{
any_label = true;
max = max.max(label.len());
}
}
if any_label {
max
} else {
(sp.slots.len().ilog10() + 1) as usize
}
};
// We need space for whitespace and ASCII art so add that.
// Border + whitespace + label + whitespace + border.
let cell_width = 2 + max_label_width + 2;
// Border + label + border. No whitespace needed on the vertical axis.
let cell_height = 1 + 1 + 1;
// Make a grid that can fit our entire ASCII diagram. We know
// the width/height based on node 0.
let mut grid: Vec<Vec<u8>> = {
// Get our initial width/height. Each leaf is 1x1 in this.
// We round up for this because partial widths/heights should
// take up an extra cell.
let mut width = sp.slots[0].width.to_f32().ceil() as usize;
let mut height = sp.slots[0].height.to_f32().ceil() as usize;
width *= cell_width;
height *= cell_height;
(0..height)
.map(|_| {
let mut row = vec![b' '; width + 1];
row[width] = b'\n';
row
})
.collect()
};
// Draw each node
for (handle, slot) in sp.slots.iter().enumerate() {
// We only draw leaf nodes. Splits are only used for layout.
let node = &self.nodes[handle];
let Some(label) = label_of(handle, node) else {
continue;
};
// If our width/height is zero then we skip this.
if slot.width == f16::ZERO || slot.height == f16::ZERO {
continue;
}
let mut x = slot.x.to_f32().floor() as usize;
let mut y = slot.y.to_f32().floor() as usize;
let mut width = slot.width.to_f32().floor().max(1.0) as usize;
let mut height = slot.height.to_f32().floor().max(1.0) as usize;
x *= cell_width;
y *= cell_height;
width *= cell_width;
height *= cell_height;
// Top border
{
let top = &mut grid[y][x..x + width];
top[0] = b'+';
for c in &mut top[1..width - 1] {
*c = b'-';
}
top[width - 1] = b'+';
}
// Bottom border
{
let bottom = &mut grid[y + height - 1][x..x + width];
bottom[0] = b'+';
for c in &mut bottom[1..width - 1] {
*c = b'-';
}
bottom[width - 1] = b'+';
}
// Left and right borders
for row in &mut grid[y + 1..y + height - 1] {
row[x] = b'|';
}
for row in &mut grid[y + 1..y + height - 1] {
row[x + width - 1] = b'|';
}
// Draw the handle in the center
let x_mid = width / 2 + x;
let y_mid = height / 2 + y;
let label_width = label.len();
let label_start = x_mid - label_width / 2;
let row = &mut grid[y_mid][label_start..];
if label.len() > row.len() {
return Err(fmt::Error);
}
row[..label.len()].copy_from_slice(label.as_bytes());
}
// Output every row
for row in &grid {
// We currently have a bug in our height calculation that
// results in trailing blank lines. Ignore those. We should
// really fix our height calculation instead. If someone wants
// to do that just remove this line and see the tests that fail
// and go from there.
if row[0] == b' ' {
break;
}
w.write_str(&String::from_utf8_lossy(row))?;
}
Ok(())
}
/// The diagram as a string (the Zig `{f}` of `std.fmt.alt(t, .formatDiagram)`).
#[must_use]
pub fn diagram_string(&self) -> String {
let mut s = String::new();
let _ = self.format_diagram(&mut s);
s
}
/// The text representation as a string (`.formatText`).
#[must_use]
pub fn text_string(&self) -> String {
let mut s = String::new();
let _ = self.format_text(&mut s);
s
}
}
impl<V: SplitTreeView> fmt::Display for SplitTree<V> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let mut s = String::new();
self.format_all(&mut s)?;
f.write_str(&s)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[derive(Debug, Clone)]
struct TestView {
label: &'static str,
}
impl SplitTreeView for TestView {
fn split_tree_label(&self) -> Option<String> {
Some(self.label.to_string())
}
}
type TestTree = SplitTree<TestView>;
fn v(label: &'static str) -> TestView {
TestView { label }
}
fn h(f: f32) -> f16 {
f16::from_f32(f)
}
fn find(t: &TestTree, label: &str) -> Handle {
t.iterator()
.find(|e| e.view.label == label)
.expect("not found")
.handle
}
fn leaf_label(t: &TestTree, handle: Handle) -> &'static str {
match &t.nodes()[handle.idx()] {
Node::Leaf(v) => v.label,
Node::Split(_) => panic!("not a leaf"),
}
}
#[test]
fn split_tree_is_split() {
// Empty tree should not be split
let empty = TestTree::empty();
assert!(!empty.is_split());
// Single node tree should not be split
let single = TestTree::new(&v("A"));
assert!(!single.is_split());
// Split tree should be split
let tree2 = TestTree::new(&v("B"));
let split = single
.split(Handle::ROOT, Direction::Right, h(0.5), &tree2)
.unwrap();
assert!(split.is_split());
}
#[test]
fn split_tree_empty_tree() {
let t = TestTree::empty();
assert_eq!(t.to_string(), "empty");
}
#[test]
fn split_tree_single_node() {
let t = TestTree::new(&v("A"));
assert_eq!(t.diagram_string(), "+---+\n| A |\n+---+\n");
}
#[test]
fn split_tree_split_horizontal() {
let t1 = TestTree::new(&v("A"));
let t2 = TestTree::new(&v("B"));
let t3 = t1
.split(Handle::ROOT, Direction::Right, h(0.5), &t2)
.unwrap();
assert_eq!(
t3.to_string(),
"+---++---+\n\
| A || B |\n\
+---++---+\n\
split (layout: horizontal, ratio: 0.50)\n\
\x20 leaf: A\n\
\x20 leaf: B\n"
);
// Split right at B
let tc = TestTree::new(&v("C"));
let t4 = t3
.split(find(&t3, "B"), Direction::Right, h(0.5), &tc)
.unwrap();
assert_eq!(
t4.to_string(),
"+--------++---++---+\n\
| A || B || C |\n\
+--------++---++---+\n\
split (layout: horizontal, ratio: 0.50)\n\
\x20 leaf: A\n\
\x20 split (layout: horizontal, ratio: 0.50)\n\
\x20 leaf: B\n\
\x20 leaf: C\n"
);
// Split right at C
let td = TestTree::new(&v("D"));
let t5 = t4
.split(find(&t4, "C"), Direction::Right, h(0.5), &td)
.unwrap();
assert_eq!(
t5.to_string(),
"+------------------++--------++---++---+\n\
| A || B || C || D |\n\
+------------------++--------++---++---+\n\
split (layout: horizontal, ratio: 0.50)\n\
\x20 leaf: A\n\
\x20 split (layout: horizontal, ratio: 0.50)\n\
\x20 leaf: B\n\
\x20 split (layout: horizontal, ratio: 0.50)\n\
\x20 leaf: C\n\
\x20 leaf: D\n"
);
// Find "previous" from D back.
let mut current = b'D';
while current != b'A' {
let label = (current as char).to_string();
let handle = t5.previous(find(&t5, &label)).unwrap();
assert_eq!(leaf_label(&t5, handle).as_bytes(), &[current - 1]);
current -= 1;
}
assert!(t5.previous(find(&t5, "A")).is_none());
// Find "next" from A forward.
let mut current = b'A';
while current != b'D' {
let label = (current as char).to_string();
let handle = t5.next(find(&t5, &label)).unwrap();
assert_eq!(leaf_label(&t5, handle).as_bytes(), &[current + 1]);
current += 1;
}
assert!(t5.next(find(&t5, "D")).is_none());
}
#[test]
fn split_tree_split_vertical() {
let t1 = TestTree::new(&v("A"));
let t2 = TestTree::new(&v("B"));
let t3 = t1
.split(Handle::ROOT, Direction::Down, h(0.5), &t2)
.unwrap();
assert_eq!(
t3.diagram_string(),
"+---+\n| A |\n+---+\n+---+\n| B |\n+---+\n"
);
}
fn ab_split(dir: Direction, ratio: f32) -> TestTree {
let t1 = TestTree::new(&v("A"));
let t2 = TestTree::new(&v("B"));
t1.split(Handle::ROOT, dir, h(ratio), &t2).unwrap()
}
#[test]
fn split_tree_split_horizontal_with_zero_ratio() {
assert_eq!(
ab_split(Direction::Right, 0.0).diagram_string(),
"+---+\n| B |\n+---+\n"
);
}
#[test]
fn split_tree_split_vertical_with_zero_ratio() {
assert_eq!(
ab_split(Direction::Down, 0.0).diagram_string(),
"+---+\n| B |\n+---+\n"
);
}
#[test]
fn split_tree_split_horizontal_with_full_width() {
assert_eq!(
ab_split(Direction::Right, 1.0).diagram_string(),
"+---+\n| A |\n+---+\n"
);
}
#[test]
fn split_tree_split_vertical_with_full_width() {
assert_eq!(
ab_split(Direction::Down, 1.0).diagram_string(),
"+---+\n| A |\n+---+\n"
);
}
#[test]
fn split_tree_remove_leaf() {
let t3 = ab_split(Direction::Right, 0.5);
let t4 = t3.remove(find(&t3, "A"));
assert_eq!(t4.diagram_string(), "+---+\n| B |\n+---+\n");
}
#[test]
fn split_tree_split_twice_remove_intermediary() {
let t3 = TestTree::new(&v("C"));
// A | B horizontal.
let split1 = ab_split(Direction::Right, 0.5);
// Insert C below that.
let split2 = split1
.split(Handle::ROOT, Direction::Down, h(0.5), &t3)
.unwrap();
assert_eq!(
split2.diagram_string(),
"+---++---+\n\
| A || B |\n\
+---++---+\n\
+--------+\n\
| C |\n\
+--------+\n"
);
// Remove "B"
let split3 = split2.remove(find(&split2, "B"));
assert_eq!(
split3.diagram_string(),
"+---+\n| A |\n+---+\n+---+\n| C |\n+---+\n"
);
// Remove every node from split2 (our most complex one), which should
// never crash. We don't test the result is correct, this just verifies
// we don't hit any assertion failures.
for i in 0..split2.nodes().len() {
let _ = split2.remove(Handle::from_idx(i));
}
}
#[test]
fn split_tree_spatial_goto() {
let t1 = TestTree::new(&v("A"));
let t2 = TestTree::new(&v("B"));
let t3 = TestTree::new(&v("C"));
let t4 = TestTree::new(&v("D"));
// A | B horizontal
let split_ab = t1
.split(Handle::ROOT, Direction::Right, h(0.5), &t2)
.unwrap();
// A | C vertical
let split_ac = split_ab
.split(find(&split_ab, "A"), Direction::Down, h(0.8), &t3)
.unwrap();
// B | D vertical
let split = split_ac
.split(find(&split_ab, "B"), Direction::Down, h(0.3), &t4)
.unwrap();
assert_eq!(
split.diagram_string(),
"+---++---+\n\
| || B |\n\
| |+---+\n\
| |+---+\n\
| A || |\n\
| || |\n\
| || |\n\
| || D |\n\
+---+| |\n\
+---+| |\n\
| C || |\n\
+---++---+\n"
);
let go = |from: &str, dir: Direction| {
let target = split
.goto(find(&split, from), Goto::Spatial(dir))
.expect("target");
leaf_label(&split, target)
};
// Spatial C => right
assert_eq!(go("C", Direction::Right), "D");
// Spatial D => left
assert_eq!(go("D", Direction::Left), "A");
// Spatial A => left (wrapped)
assert_eq!(go("A", Direction::Left), "B");
// Spatial B => right (wrapped)
assert_eq!(go("B", Direction::Right), "A");
// Spatial C => down (wrapped)
assert_eq!(go("C", Direction::Down), "A");
// Equalize
let equal = split.equalize();
assert_eq!(
equal.diagram_string(),
"+---++---+\n\
| A || B |\n\
+---++---+\n\
+---++---+\n\
| C || D |\n\
+---++---+\n"
);
}
#[test]
fn split_tree_resize() {
let split = ab_split(Direction::Right, 0.5);
assert_eq!(
split.diagram_string(),
"+---++---+\n| A || B |\n+---++---+\n"
);
// Resize
{
let resized = split.resize(find(&split, "B"), Layout::Horizontal, h(0.25));
assert_eq!(
resized.diagram_string(),
"+-------------++---+\n\
| A || B |\n\
+-------------++---+\n"
);
}
// Resize the other direction (negative ratio)
{
let resized = split.resize(find(&split, "B"), Layout::Horizontal, h(-0.25));
assert_eq!(
resized.diagram_string(),
"+---++-------------+\n\
| A || B |\n\
+---++-------------+\n"
);
}
}
#[test]
fn split_tree_clone_empty_tree() {
let t = TestTree::empty();
let t2 = t.clone();
assert_eq!(t2.to_string(), "empty");
}
#[test]
fn split_tree_zoom() {
let mut split = ab_split(Direction::Right, 0.5);
let b = find(&split, "B");
split.zoom(Some(b));
let expected = "split (layout: horizontal, ratio: 0.50)\n\
\x20 leaf: A\n\
\x20 (zoomed) leaf: B\n";
assert_eq!(split.text_string(), expected);
// Clone preserves zoom
let clone = split.clone();
assert_eq!(clone.text_string(), expected);
}
#[test]
fn split_tree_split_resets_zoom() {
let mut t1 = TestTree::new(&v("A"));
let t2 = TestTree::new(&v("B"));
// Zoom A
let a = find(&t1, "A");
t1.zoom(Some(a));
let split = t1
.split(Handle::ROOT, Direction::Right, h(0.5), &t2)
.unwrap();
assert_eq!(
split.text_string(),
"split (layout: horizontal, ratio: 0.50)\n\
\x20 leaf: A\n\
\x20 leaf: B\n"
);
}
#[test]
fn split_tree_remove_and_zoom() {
let mut split = ab_split(Direction::Right, 0.5);
let a = find(&split, "A");
split.zoom(Some(a));
// Remove A, should unzoom
{
let removed = split.remove(find(&split, "A"));
assert!(removed.zoomed().is_none());
assert_eq!(removed.text_string(), "leaf: B\n");
}
// Remove B, should keep zoom
{
let removed = split.remove(find(&split, "B"));
assert_eq!(removed.text_string(), "(zoomed) leaf: A\n");
}
}
// Extra tests beyond the Zig suite.
#[test]
fn split_tree_goto_linear() {
let mut t = TestTree::new(&v("A"));
for l in ["B", "C"] {
let n = TestTree::new(&v(l));
let at = find(&t, if l == "B" { "A" } else { "B" });
t = t.split(at, Direction::Right, h(0.5), &n).unwrap();
}
let a = find(&t, "A");
let c = find(&t, "C");
assert_eq!(t.goto(a, Goto::Previous), None);
assert_eq!(t.goto(c, Goto::Next), None);
assert_eq!(t.goto(a, Goto::PreviousWrapped), Some(c));
assert_eq!(t.goto(c, Goto::NextWrapped), Some(a));
assert_eq!(leaf_label(&t, t.goto(a, Goto::Next).unwrap()), "B");
}
#[test]
fn split_tree_split_too_many_nodes() {
// 2^15 each would exceed u16 handles.
let big = SplitTree {
nodes: vec![Node::Leaf(v("X")); 40_000],
zoomed: None,
};
let err = big
.split(Handle::ROOT, Direction::Right, h(0.5), &big)
.unwrap_err();
assert_eq!(err, SplitError::OutOfMemory);
}
#[test]
fn split_tree_default_label_uses_handle() {
#[derive(Clone)]
struct Plain;
impl SplitTreeView for Plain {}
let a = SplitTree::new(&Plain);
let b = SplitTree::new(&Plain);
let s = a.split(Handle::ROOT, Direction::Right, h(0.5), &b).unwrap();
assert_eq!(
s.to_string(),
"+---++---+\n\
| 2 || 1 |\n\
+---++---+\n\
split (layout: horizontal, ratio: 0.50)\n\
\x20 leaf: 2\n\
\x20 leaf: 1\n"
);
}
#[test]
fn split_tree_ref_counts_follow_clones() {
use std::rc::Rc;
#[derive(Clone)]
#[allow(dead_code)]
struct Rcv(Rc<()>);
impl SplitTreeView for Rcv {}
let rc = Rc::new(());
let a = SplitTree::new(&Rcv(rc.clone()));
assert_eq!(Rc::strong_count(&rc), 2);
let b = SplitTree::new(&Rcv(rc.clone()));
let s = a.split(Handle::ROOT, Direction::Right, h(0.5), &b).unwrap();
assert_eq!(Rc::strong_count(&rc), 5);
drop(a);
drop(b);
assert_eq!(Rc::strong_count(&rc), 3);
drop(s);
assert_eq!(Rc::strong_count(&rc), 1);
}
}
+2 -1
View File
@@ -3,9 +3,10 @@ name = "ghostty-unicode"
version.workspace = true version.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
build = "build.rs"
description = "Unicode properties (width, grapheme break, symbols) matching Ghostty's uucode configuration"
[dependencies] [dependencies]
[lints] [lints]
workspace = true workspace = true
+57
View File
@@ -0,0 +1,57 @@
//! Generates the Unicode lookup tables (Ghostty's `props_uucode.zig` /
//! `symbols_uucode.zig` generator `main`s) from the vendored UCD files in
//! `ucd/`.
#![allow(dead_code)]
#![allow(
clippy::unwrap_used,
clippy::single_match_else,
clippy::checked_conversions,
clippy::trivially_copy_pass_by_ref,
clippy::expect_used
)]
#[path = "src/lut.rs"]
mod lut;
#[path = "src/props.rs"]
mod props;
#[path = "build_support/ucd.rs"]
mod ucd;
use std::env;
use std::fs;
use std::path::PathBuf;
fn main() {
let manifest = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap());
let out = PathBuf::from(env::var_os("OUT_DIR").unwrap());
let ucd_dir = manifest.join("ucd");
println!("cargo:rerun-if-changed=build.rs");
println!("cargo:rerun-if-changed=build_support/ucd.rs");
println!("cargo:rerun-if-changed=src/lut.rs");
println!("cargo:rerun-if-changed=src/props.rs");
println!("cargo:rerun-if-changed=ucd");
let ucd = ucd::Ucd::load(&ucd_dir);
let props = lut::generate(|cp| ucd.get(cp)).expect("generate props tables");
fs::write(
out.join("props_tables.rs"),
props.write_rust("Properties", props::Properties::format_rust),
)
.unwrap();
let symbols = lut::generate(|cp| ucd.is_symbol(cp)).expect("generate symbols tables");
fs::write(
out.join("symbols_tables.rs"),
symbols.write_rust("bool", ToString::to_string),
)
.unwrap();
let emoji = lut::generate(|cp| ucd.is_emoji_presentation(cp)).expect("generate emoji tables");
fs::write(
out.join("emoji_tables.rs"),
emoji.write_rust("bool", ToString::to_string),
)
.unwrap();
}
+426
View File
@@ -0,0 +1,426 @@
//! Direct computation of Ghostty's per-codepoint Unicode properties from the
//! vendored UCD files. This reproduces what `uucode` computes with Ghostty's
//! `src/build/uucode_config.zig` (and uucode's `x/config_x/wcwidth.zig` and
//! `x/config_x/grapheme_break.zig`).
//!
//! It is used by `build.rs` to generate the lookup tables, and by the
//! `props_uucode` test module to verify that the generated tables match.
//!
//! This file is the Rust counterpart of `props_uucode.zig` /
//! `symbols_uucode.zig` (`get`).
#![allow(dead_code)]
#![allow(
clippy::unwrap_used,
clippy::single_match_else,
clippy::checked_conversions,
clippy::trivially_copy_pass_by_ref,
clippy::expect_used
)]
use crate::props::{GraphemeBreakNoControl as Gb, Properties};
use std::fs;
use std::path::Path;
/// Highest codepoint known to the UCD (`uucode.config.max_code_point`).
pub const MAX_CODE_POINT: u32 = 0x10FFFF;
const N: usize = MAX_CODE_POINT as usize + 1;
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
enum Gc {
Cn,
Cc,
Cs,
Co,
Zl,
Zp,
Mn,
Me,
Other,
}
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
enum Eaw {
Neutral,
Wide,
Fullwidth,
Other,
}
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
enum OrigGb {
Other,
Prepend,
Cr,
Lf,
Control,
Extend,
RegionalIndicator,
SpacingMark,
L,
V,
T,
Lv,
Lvt,
}
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
enum Incb {
None,
Linker,
Consonant,
Extend,
}
#[derive(Clone, Copy, Default)]
struct EmojiData {
presentation: bool,
modifier: bool,
modifier_base: bool,
extended_pictographic: bool,
}
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
enum Block {
None,
Symbol,
Other,
}
pub struct Ucd {
gc: Vec<Gc>,
eaw: Vec<Eaw>,
orig_gb: Vec<OrigGb>,
incb: Vec<Incb>,
default_ignorable: Vec<bool>,
emoji: Vec<EmojiData>,
emoji_vs_base: Vec<bool>,
block: Vec<Block>,
}
fn trim(line: &str) -> &str {
let line = match line.find('#') {
Some(i) => &line[..i],
None => line,
};
line.trim_matches([' ', '\t', '\r'])
}
fn parse_cp(s: &str) -> u32 {
u32::from_str_radix(s.trim(), 16).unwrap_or_else(|_| panic!("bad codepoint {s:?}"))
}
fn parse_range(s: &str) -> (u32, u32) {
match s.split_once("..") {
Some((a, b)) => (parse_cp(a), parse_cp(b)),
None => {
let c = parse_cp(s);
(c, c)
}
}
}
/// Iterate `range ; value ; rest...` data lines (comments stripped).
fn data_lines(content: &str) -> impl Iterator<Item = (u32, u32, Vec<&str>)> {
content.lines().filter_map(|line| {
let t = trim(line);
if t.is_empty() {
return None;
}
let mut parts = t.split(';').map(str::trim);
let (a, b) = parse_range(parts.next()?);
Some((a, b, parts.collect()))
})
}
fn read(dir: &Path, rel: &str) -> String {
let p = dir.join(rel);
fs::read_to_string(&p).unwrap_or_else(|e| panic!("reading {}: {e}", p.display()))
}
fn fill<T: Copy>(v: &mut [T], a: u32, b: u32, val: T) {
for cp in a..=b {
v[cp as usize] = val;
}
}
impl Ucd {
/// Load from a directory containing the vendored UCD files.
#[must_use]
pub fn load(dir: &Path) -> Self {
// General category.
let mut gc = vec![Gc::Cn; N];
for (a, b, parts) in data_lines(&read(dir, "extracted/DerivedGeneralCategory.txt")) {
let v = match parts[0] {
"Cc" => Gc::Cc,
"Cs" => Gc::Cs,
"Co" => Gc::Co,
"Zl" => Gc::Zl,
"Zp" => Gc::Zp,
"Mn" => Gc::Mn,
"Me" => Gc::Me,
"Cn" => Gc::Cn,
_ => Gc::Other,
};
fill(&mut gc, a, b, v);
}
// East Asian width, including the `@missing` directives (only
// Neutral and Wide occur).
let mut eaw = vec![Eaw::Neutral; N];
let content = read(dir, "extracted/DerivedEastAsianWidth.txt");
for line in content.lines() {
let t = line.trim_matches([' ', '\t', '\r']);
if let Some(rest) = t.strip_prefix("# @missing:") {
let mut parts = rest.split(';').map(str::trim);
let (a, b) = parse_range(parts.next().unwrap());
match parts.next().unwrap() {
"Neutral" => {}
"Wide" => fill(&mut eaw, a, b, Eaw::Wide),
other => panic!("Unknown @missing EastAsianWidth value: {other}"),
}
continue;
}
let t = trim(t);
if t.is_empty() {
continue;
}
let mut parts = t.split(';').map(str::trim);
let (a, b) = parse_range(parts.next().unwrap());
let v = match parts.next().unwrap() {
"W" => Eaw::Wide,
"F" => Eaw::Fullwidth,
"N" => Eaw::Neutral,
_ => Eaw::Other,
};
fill(&mut eaw, a, b, v);
}
// Original grapheme break property (unknown values are `other`).
let mut orig_gb = vec![OrigGb::Other; N];
for (a, b, parts) in data_lines(&read(dir, "auxiliary/GraphemeBreakProperty.txt")) {
let v = match parts[0] {
"Prepend" => OrigGb::Prepend,
"CR" => OrigGb::Cr,
"LF" => OrigGb::Lf,
"Control" => OrigGb::Control,
"Extend" => OrigGb::Extend,
"Regional_Indicator" => OrigGb::RegionalIndicator,
"SpacingMark" => OrigGb::SpacingMark,
"L" => OrigGb::L,
"V" => OrigGb::V,
"T" => OrigGb::T,
"LV" => OrigGb::Lv,
"LVT" => OrigGb::Lvt,
_ => OrigGb::Other,
};
fill(&mut orig_gb, a, b, v);
}
// Derived core properties: Default_Ignorable_Code_Point and InCB.
let mut incb = vec![Incb::None; N];
let mut default_ignorable = vec![false; N];
for (a, b, parts) in data_lines(&read(dir, "DerivedCoreProperties.txt")) {
match parts[0] {
"Default_Ignorable_Code_Point" => fill(&mut default_ignorable, a, b, true),
"InCB" => {
let v = match parts[1] {
"Linker" => Incb::Linker,
"Consonant" => Incb::Consonant,
"Extend" => Incb::Extend,
other => panic!("Unknown InCB value: {other}"),
};
fill(&mut incb, a, b, v);
}
_ => {}
}
}
// Emoji data.
let mut emoji = vec![EmojiData::default(); N];
for (a, b, parts) in data_lines(&read(dir, "emoji/emoji-data.txt")) {
for cp in a..=b {
let e = &mut emoji[cp as usize];
match parts[0] {
"Emoji_Presentation" => e.presentation = true,
"Emoji_Modifier" => e.modifier = true,
"Emoji_Modifier_Base" => e.modifier_base = true,
"Extended_Pictographic" => e.extended_pictographic = true,
_ => {}
}
}
}
// Emoji variation sequences (base codepoints of VS15/VS16 sequences).
let mut emoji_vs_base = vec![false; N];
let content = read(dir, "emoji/emoji-variation-sequences.txt");
for line in content.lines() {
let t = trim(line);
if t.is_empty() {
continue;
}
// "0023 FE0E ; text style; # ..."
let first = t.split(';').next().unwrap();
let mut it = first.split_whitespace();
let cp = parse_cp(it.next().unwrap());
let vs = parse_cp(it.next().unwrap());
assert!(vs == 0xFE0E || vs == 0xFE0F, "Unknown VS: {vs:x}");
emoji_vs_base[cp as usize] = true;
}
// Blocks (only the ones that matter for `is_symbol`).
let mut block = vec![Block::None; N];
for (a, b, parts) in data_lines(&read(dir, "Blocks.txt")) {
let v = match parts[0] {
"Arrows"
| "Dingbats"
| "Emoticons"
| "Miscellaneous Symbols"
| "Enclosed Alphanumerics"
| "Enclosed Alphanumeric Supplement"
| "Miscellaneous Symbols and Pictographs"
| "Transport and Map Symbols" => Block::Symbol,
_ => Block::Other,
};
fill(&mut block, a, b, v);
}
Self {
gc,
eaw,
orig_gb,
incb,
default_ignorable,
emoji,
emoji_vs_base,
block,
}
}
/// `grapheme_break_no_control` for a codepoint (uucode tables.zig +
/// `x/config_x/grapheme_break.zig`).
fn grapheme_break_no_control(&self, cp: u32) -> Gb {
let i = cp as usize;
let emoji = self.emoji[i];
let orig = self.orig_gb[i];
if emoji.modifier {
Gb::EmojiModifier
} else if emoji.modifier_base {
Gb::EmojiModifierBase
} else if emoji.extended_pictographic {
Gb::ExtendedPictographic
} else {
match self.incb[i] {
Incb::None => match orig {
OrigGb::Extend => {
// `zwnj` is the only grapheme break `extend` that is
// `none` for Indic conjunct break.
assert_eq!(cp, 0x200C, "unexpected extend without InCB: {cp:x}");
Gb::Zwnj
}
OrigGb::Control | OrigGb::Cr | OrigGb::Lf | OrigGb::Other => Gb::Other,
OrigGb::Prepend => Gb::Prepend,
OrigGb::RegionalIndicator => Gb::RegionalIndicator,
OrigGb::SpacingMark => Gb::SpacingMark,
OrigGb::L => Gb::L,
OrigGb::V => Gb::V,
OrigGb::T => Gb::T,
OrigGb::Lv => Gb::Lv,
OrigGb::Lvt => Gb::Lvt,
},
Incb::Extend => {
if cp == 0x200D {
Gb::Zwj
} else {
Gb::IndicConjunctBreakExtend
}
}
Incb::Linker => Gb::IndicConjunctBreakLinker,
Incb::Consonant => Gb::IndicConjunctBreakConsonant,
}
}
}
/// Port of `x/config_x/wcwidth.zig` `compute`: returns
/// `(wcwidth_standalone, wcwidth_zero_in_grapheme)`.
fn wcwidth(&self, cp: u32) -> (u8, bool) {
let i = cp as usize;
let gc = self.gc[i];
let gb = self.grapheme_break_no_control(cp);
let eaw = self.eaw[i];
let width: u8 = if matches!(gc, Gc::Cc | Gc::Cs | Gc::Zl | Gc::Zp) {
0
} else if cp == 0x00AD {
// Soft hyphen
1
} else if self.default_ignorable[i] {
0
} else if cp == 0x2E3A {
// Two-em dash
2
} else if cp == 0x2E3B {
// Three-em dash
3
} else if eaw == Eaw::Wide || eaw == Eaw::Fullwidth || gb == Gb::RegionalIndicator {
2
} else {
1
};
let standalone = if cp == 0x20E3 { 2 } else { width };
let zero = width == 0
|| self.emoji[i].modifier
|| gc == Gc::Mn
|| gc == Gc::Me
|| gb == Gb::V
|| gb == Gb::T
|| gb == Gb::Prepend;
(standalone, zero)
}
/// Port of `props_uucode.zig` `get`.
#[must_use]
pub fn get(&self, cp: u32) -> Properties {
if cp > MAX_CODE_POINT {
return Properties {
width: 1,
width_zero_in_grapheme: true,
grapheme_break: Gb::Other,
emoji_vs_base: false,
};
}
let i = cp as usize;
let gb = self.grapheme_break_no_control(cp);
let (standalone, zero) = self.wcwidth(cp);
// See uucode_config.zig `computeWidth`: emoji modifiers and prepend
// code points keep their standalone width.
let width = if zero && !self.emoji[i].modifier && gb != Gb::Prepend {
0
} else {
standalone.min(2)
};
Properties {
width,
width_zero_in_grapheme: zero,
grapheme_break: gb,
emoji_vs_base: self.emoji_vs_base[i],
}
}
/// Port of `symbols_uucode.zig` (`is_symbol`, see `computeIsSymbol`).
#[must_use]
pub fn is_symbol(&self, cp: u32) -> bool {
if cp > MAX_CODE_POINT {
return false;
}
let i = cp as usize;
self.gc[i] == Gc::Co || self.block[i] == Block::Symbol
}
/// uucode `is_emoji_presentation` (used by the font codepoint resolver).
#[must_use]
pub fn is_emoji_presentation(&self, cp: u32) -> bool {
cp <= MAX_CODE_POINT && self.emoji[cp as usize].presentation
}
}
+19
View File
@@ -0,0 +1,19 @@
//! The generated `is_emoji_presentation` lookup table (uucode runtime field, used by the font codepoint resolver; no Zig counterpart file). Generated by
//! `build.rs`.
use crate::lut::Tables;
mod generated {
include!(concat!(env!("OUT_DIR"), "/emoji_tables.rs"));
}
/// The lookup table (codepoint -> bool).
#[inline]
#[must_use]
pub fn table() -> Tables<'static, bool> {
Tables {
stage1: &generated::STAGE1,
stage2: &generated::STAGE2,
stage3: &generated::STAGE3,
}
}
+499
View File
@@ -0,0 +1,499 @@
//! Grapheme break detection (`grapheme.zig`), backed by uucode's
//! `x.grapheme.computeGraphemeBreakNoControl` precomputed for every
//! combination of state and break properties.
use crate::props::GraphemeBreakNoControl as Gb;
use crate::props_table::table;
/// State carried between sequential [`grapheme_break`] calls
/// (`uucode.grapheme.BreakState`).
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
#[repr(u8)]
pub enum BreakState {
#[default]
Default = 0,
RegionalIndicator,
ExtendedPictographic,
IndicConjunctBreakConsonant,
IndicConjunctBreakLinker,
}
const ALL_STATES: [BreakState; 5] = [
BreakState::Default,
BreakState::RegionalIndicator,
BreakState::ExtendedPictographic,
BreakState::IndicConjunctBreakConsonant,
BreakState::IndicConjunctBreakLinker,
];
const ALL_GB: [Gb; Gb::COUNT] = [
Gb::Other,
Gb::Prepend,
Gb::RegionalIndicator,
Gb::SpacingMark,
Gb::L,
Gb::V,
Gb::T,
Gb::Lv,
Gb::Lvt,
Gb::Zwj,
Gb::Zwnj,
Gb::ExtendedPictographic,
Gb::EmojiModifierBase,
Gb::EmojiModifier,
Gb::IndicConjunctBreakExtend,
Gb::IndicConjunctBreakLinker,
Gb::IndicConjunctBreakConsonant,
];
const fn is_indic_conjunct_break_extend(gb: Gb) -> bool {
matches!(gb, Gb::IndicConjunctBreakExtend | Gb::Zwj)
}
// Despite `emoji_modifier` being `extend` according to
// GraphemeBreakProperty.txt and UAX #29 (in addition to tests in
// GraphemeBreakTest.txt), UTS #51 states: `emoji_modifier_sequence :=
// emoji_modifier_base emoji_modifier` in ED-13 (emoji modifier sequence) under
// 1.4.4 (Emoji Modifiers), and: "When used alone, the default representation
// of these modifier characters is a color swatch... To have an effect on an
// emoji, an emoji modifier must immediately follow that base emoji
// character." in 2.4 (Diversity). Additionally it states "Skin tone
// modifiers and hair components should be displayed even in isolation" in
// ED-20 (basic emoji set) under 1.4.6 (Emoji Sets). Here we decide to diverge
// from the grapheme break spec, which is allowed under "tailored" grapheme
// clusters.
const fn is_extend(gb: Gb) -> bool {
matches!(
gb,
Gb::Zwnj | Gb::IndicConjunctBreakExtend | Gb::IndicConjunctBreakLinker
)
}
const fn is_extended_pictographic(gb: Gb) -> bool {
matches!(gb, Gb::ExtendedPictographic | Gb::EmojiModifierBase)
}
/// Port of uucode `x.grapheme.computeGraphemeBreakNoControl`: the rules for
/// `control`, `cr`, and `lf` are ignored, since they are assumed to have been
/// handled prior or stripped from the input.
#[must_use]
pub const fn compute_grapheme_break_no_control(gb1: Gb, gb2: Gb, state: &mut BreakState) -> bool {
// Set state back to default when `gb1` or `gb2` is not expected in sequence.
match *state {
BreakState::RegionalIndicator => {
if !matches!(gb1, Gb::RegionalIndicator) || !matches!(gb2, Gb::RegionalIndicator) {
*state = BreakState::Default;
}
}
BreakState::ExtendedPictographic => {
if !matches!(
gb1,
Gb::IndicConjunctBreakExtend
| Gb::IndicConjunctBreakLinker
| Gb::Zwnj
| Gb::Zwj
| Gb::ExtendedPictographic
| Gb::EmojiModifierBase
| Gb::EmojiModifier
) {
*state = BreakState::Default;
}
if !matches!(
gb2,
Gb::IndicConjunctBreakExtend
| Gb::IndicConjunctBreakLinker
| Gb::Zwnj
| Gb::Zwj
| Gb::ExtendedPictographic
| Gb::EmojiModifierBase
| Gb::EmojiModifier
) {
*state = BreakState::Default;
}
}
BreakState::IndicConjunctBreakConsonant | BreakState::IndicConjunctBreakLinker => {
if !matches!(
gb1,
Gb::IndicConjunctBreakConsonant
| Gb::IndicConjunctBreakLinker
| Gb::IndicConjunctBreakExtend
| Gb::Zwj
) {
*state = BreakState::Default;
}
if !matches!(
gb2,
Gb::IndicConjunctBreakConsonant
| Gb::IndicConjunctBreakLinker
| Gb::IndicConjunctBreakExtend
| Gb::Zwj
) {
*state = BreakState::Default;
}
}
BreakState::Default => {}
}
// GB6: L x (L | V | LV | VT)
if matches!(gb1, Gb::L) && matches!(gb2, Gb::L | Gb::V | Gb::Lv | Gb::Lvt) {
return false;
}
// GB7: (LV | V) x (V | T)
if matches!(gb1, Gb::Lv | Gb::V) && matches!(gb2, Gb::V | Gb::T) {
return false;
}
// GB8: (LVT | T) x T
if matches!(gb1, Gb::Lvt | Gb::T) && matches!(gb2, Gb::T) {
return false;
}
// Handle GB9 (Extend | ZWJ) later, since it can also match the start of
// GB9c (Indic) and GB11 (Emoji ZWJ)
// GB9a: SpacingMark
if matches!(gb2, Gb::SpacingMark) {
return false;
}
// GB9b: Prepend
if matches!(gb1, Gb::Prepend) {
return false;
}
// GB9c: Indic
if matches!(gb1, Gb::IndicConjunctBreakConsonant) {
// start of sequence:
if is_indic_conjunct_break_extend(gb2) {
*state = BreakState::IndicConjunctBreakConsonant;
return false;
} else if matches!(gb2, Gb::IndicConjunctBreakLinker) {
// jump straight to linker state
*state = BreakState::IndicConjunctBreakLinker;
return false;
}
// else, not an Indic sequence
} else if matches!(*state, BreakState::IndicConjunctBreakConsonant) {
// consonant state:
if matches!(gb2, Gb::IndicConjunctBreakLinker) {
// consonant -> linker transition
*state = BreakState::IndicConjunctBreakLinker;
return false;
} else if is_indic_conjunct_break_extend(gb2) {
// continue [extend]* sequence
return false;
}
// Not a valid Indic sequence
*state = BreakState::Default;
} else if matches!(*state, BreakState::IndicConjunctBreakLinker) {
// linker state:
if matches!(gb2, Gb::IndicConjunctBreakLinker) || is_indic_conjunct_break_extend(gb2) {
// continue [extend linker]* sequence
return false;
} else if matches!(gb2, Gb::IndicConjunctBreakConsonant) {
// linker -> end of sequence
*state = BreakState::Default;
return false;
}
// Not a valid Indic sequence
*state = BreakState::Default;
}
// GB11: Emoji ZWJ sequence and Emoji modifier sequence
if is_extended_pictographic(gb1) {
// start of sequence:
if is_extend(gb2) || matches!(gb2, Gb::Zwj) {
*state = BreakState::ExtendedPictographic;
return false;
}
// The `emoji_modifier_sequence` case is described in the comment for
// `is_extend` above, from UTS #51.
if matches!(gb1, Gb::EmojiModifierBase) && matches!(gb2, Gb::EmojiModifier) {
*state = BreakState::ExtendedPictographic;
return false;
}
// else, not an Emoji ZWJ sequence
} else if matches!(*state, BreakState::ExtendedPictographic) {
// continue or end sequence:
if (is_extend(gb1) || matches!(gb1, Gb::EmojiModifier))
&& (is_extend(gb2) || matches!(gb2, Gb::Zwj))
{
// continue extend* ZWJ sequence
return false;
} else if matches!(gb1, Gb::Zwj) && is_extended_pictographic(gb2) {
// ZWJ -> end of sequence
*state = BreakState::Default;
return false;
}
// Not a valid Emoji ZWJ sequence
*state = BreakState::Default;
}
// GB12 and GB13: Regional Indicator
if matches!(gb1, Gb::RegionalIndicator) && matches!(gb2, Gb::RegionalIndicator) {
if matches!(*state, BreakState::Default) {
*state = BreakState::RegionalIndicator;
return false;
}
*state = BreakState::Default;
return true;
}
// GB9: x (Extend | ZWJ)
if is_extend(gb2) || matches!(gb2, Gb::Zwj) {
return false;
}
// GB999: Otherwise, break everywhere
true
}
/// Result of one table lookup: the break decision and the next state.
#[derive(Debug, Clone, Copy)]
struct Value {
result: bool,
state: BreakState,
}
const N_GB: usize = Gb::COUNT;
const N_STATE: usize = 5;
/// Precomputed lookup table for all possible permutations of state and
/// grapheme break properties (5 states x 17 x 17 = 1445 entries).
static PRECOMPUTE: [Value; N_STATE * N_GB * N_GB] = {
let mut data = [Value {
result: false,
state: BreakState::Default,
}; N_STATE * N_GB * N_GB];
let mut s = 0;
while s < N_STATE {
let mut a = 0;
while a < N_GB {
let mut b = 0;
while b < N_GB {
let mut state = ALL_STATES[s];
let result = compute_grapheme_break_no_control(ALL_GB[a], ALL_GB[b], &mut state);
data[index(ALL_GB[a], ALL_GB[b], ALL_STATES[s])] = Value { result, state };
b += 1;
}
a += 1;
}
s += 1;
}
data
};
const fn index(gb1: Gb, gb2: Gb, state: BreakState) -> usize {
(state as usize) * N_GB * N_GB + (gb1 as usize) * N_GB + (gb2 as usize)
}
/// Determines if there is a grapheme break between two codepoints. This
/// must be called sequentially maintaining the state between calls.
///
/// This function does NOT work with control characters. Control characters,
/// line feeds, and carriage returns are expected to be filtered out before
/// calling this function. This is because this function is tuned for
/// Ghostty.
#[inline]
pub fn grapheme_break(cp1: u32, cp2: u32, state: &mut BreakState) -> bool {
let t = table();
grapheme_break_props(t.get(cp1).grapheme_break, t.get(cp2).grapheme_break, state)
}
/// Same as [`grapheme_break`] but with already-looked-up break properties.
#[inline]
pub fn grapheme_break_props(gb1: Gb, gb2: Gb, state: &mut BreakState) -> bool {
let value = PRECOMPUTE[index(gb1, gb2, *state)];
*state = value.state;
value.result
}
#[cfg(test)]
mod tests {
use super::*;
use std::path::Path;
#[test]
fn grapheme_break_emoji_modifier() {
// Emoji and modifier
{
let mut state = BreakState::Default;
assert!(!grapheme_break(0x261D, 0x1F3FF, &mut state));
}
// Non-emoji and emoji modifier
{
let mut state = BreakState::Default;
assert!(grapheme_break(0x22, 0x1F3FF, &mut state));
}
}
#[test]
fn long_emoji_zwj_sequences() {
let mut state = BreakState::Default;
// (family: woman, woman, girl, boy)
let cps: Vec<u32> = "\u{1F469}\u{200D}\u{1F469}\u{200D}\u{1F467}\u{200D}\u{1F466}_"
.chars()
.map(|c| c as u32)
.collect();
assert_eq!(cps[0], 0x1F469);
for (i, pair) in cps.windows(2).enumerate() {
let brk = grapheme_break(pair[0], pair[1], &mut state);
// Only the break between the last emoji and `_` is a break.
assert_eq!(brk, i == 6, "index {i}");
}
}
fn breaks(s: &str) -> Vec<&str> {
let mut out = Vec::new();
let mut state = BreakState::Default;
let mut start = 0;
let mut it = s.char_indices().peekable();
while let Some((i, c)) = it.next() {
let end = i + c.len_utf8();
match it.peek() {
None => {
out.push(&s[start..end]);
}
Some(&(_, n)) => {
if grapheme_break(c as u32, n as u32, &mut state) {
out.push(&s[start..end]);
start = end;
}
}
}
}
out
}
#[test]
fn grapheme_clusters() {
assert_eq!(breaks("abc"), ["a", "b", "c"]);
// Combining mark
assert_eq!(breaks("e\u{301}x"), ["e\u{301}", "x"]);
// VS15 / VS16
assert_eq!(breaks("\u{2764}\u{FE0F}x"), ["\u{2764}\u{FE0F}", "x"]);
assert_eq!(breaks("\u{2764}\u{FE0E}x"), ["\u{2764}\u{FE0E}", "x"]);
// Keycap
assert_eq!(breaks("1\u{FE0F}\u{20E3}2"), ["1\u{FE0F}\u{20E3}", "2"]);
// Skin tone and ZWJ with rocket
assert_eq!(breaks("👩🏽‍🚀🇨🇭👨🏻‍🍼"), ["👩🏽‍🚀", "🇨🇭", "👨🏻‍🍼"]);
// Sequence of regional indicators: pairs.
assert_eq!(
breaks("\u{1F1FA}\u{1F1F8}\u{1F1E6}\u{1F1F9}\u{1F1FC}_\u{1F1F3}_"),
[
"\u{1F1FA}\u{1F1F8}",
"\u{1F1E6}\u{1F1F9}",
"\u{1F1FC}",
"_",
"\u{1F1F3}",
"_"
]
);
// Kiss: man, man, light skin tone, dark skin tone (with modifiers).
assert_eq!(
breaks(
"\u{1F468}\u{1F3FB}\u{200D}\u{2764}\u{FE0F}\u{200D}\u{1F48B}\u{200D}\u{1F468}\u{1F3FF}_"
),
[
"\u{1F468}\u{1F3FB}\u{200D}\u{2764}\u{FE0F}\u{200D}\u{1F48B}\u{200D}\u{1F468}\u{1F3FF}",
"_"
]
);
// Lone emoji modifier after non-base breaks.
assert_eq!(breaks("a\u{1F3FB}"), ["a", "\u{1F3FB}"]);
// Hangul syllable sequence L V T
assert_eq!(
breaks("\u{1100}\u{1161}\u{11A8}"),
["\u{1100}\u{1161}\u{11A8}"]
);
// Prepend
assert_eq!(breaks("\u{0600}a"), ["\u{0600}a"]);
// Devanagari conjunct (GB9c): KA + virama + SSA
assert_eq!(
breaks("\u{0915}\u{094D}\u{0937}"),
["\u{0915}\u{094D}\u{0937}"]
);
// Devanagari no virama: break
assert_eq!(breaks("\u{0915}\u{0937}"), ["\u{0915}", "\u{0937}"]);
}
/// Runs the official GraphemeBreakTest.txt (with controls skipped and the
/// emoji-modifier tailoring applied, as in uucode's own test).
#[test]
fn grapheme_break_test_txt() {
let path =
Path::new(env!("CARGO_MANIFEST_DIR")).join("ucd/auxiliary/GraphemeBreakTest.txt");
let content = std::fs::read_to_string(path).unwrap();
let t = table();
let mut checked = 0;
'lines: for (ln, line) in content.lines().enumerate() {
let line = line.split('#').next().unwrap().trim();
if line.is_empty() {
continue;
}
let mut toks = line.split(' ');
assert_eq!(toks.next(), Some("÷"));
// Tokens: cp op cp op cp ... op(÷)
let mut cps = Vec::new();
let mut ops = Vec::new();
while let Some(cp) = toks.next() {
cps.push(u32::from_str_radix(cp, 16).unwrap());
ops.push(toks.next().unwrap());
}
assert_eq!(*ops.last().unwrap(), "÷");
// Skip lines with control/CR/LF (their break property was folded
// into `other`; handled by the caller in Ghostty).
for &cp in &cps {
if cp == 0x0D
|| cp == 0x0A
|| (cp < 0x20)
|| (0x7F..0xA0).contains(&cp)
|| [0x2028, 0x2029].contains(&cp)
|| is_gb_control(cp)
{
continue 'lines;
}
}
let mut state = BreakState::Default;
for i in 0..cps.len() - 1 {
let gb1 = t.get(cps[i]).grapheme_break;
let gb2 = t.get(cps[i + 1]).grapheme_break;
let mut expected = ops[i] == "÷";
// Ghostty/uucode diverge from UAX #29 for emoji modifiers.
if gb2 == Gb::EmojiModifier && gb1 != Gb::EmojiModifierBase {
assert!(!expected);
expected = true;
}
let actual = grapheme_break(cps[i], cps[i + 1], &mut state);
assert_eq!(actual, expected, "line {} idx {i}: {line}", ln + 1);
checked += 1;
}
}
assert!(checked > 800, "checked {checked}");
}
/// Codepoints whose original Grapheme_Cluster_Break is Control.
fn is_gb_control(cp: u32) -> bool {
// Cc, Zl/Zp, and format characters (excluding ZWNJ/ZWJ and prepend)
// that are `Control` in GraphemeBreakProperty.txt.
matches!(cp, 0x00AD | 0x061C | 0x180E | 0x200B | 0x200E | 0x200F | 0x202A..=0x202E | 0x2060..=0x206F | 0xFEFF | 0xFFF0..=0xFFFB | 0x13430..=0x1343F | 0x1BCA0..=0x1BCA3 | 0x1D173..=0x1D17A | 0xE0000..=0xE001F | 0xE0080..=0xE00FF | 0xE01F0..=0xE0FFF)
}
#[test]
fn precompute_matches_compute() {
for &s in &ALL_STATES {
for &a in &ALL_GB {
for &b in &ALL_GB {
let mut s1 = s;
let r1 = compute_grapheme_break_no_control(a, b, &mut s1);
let mut s2 = s;
let r2 = grapheme_break_props(a, b, &mut s2);
assert_eq!((r1, s1), (r2, s2));
}
}
}
}
}
+184 -1
View File
@@ -1 +1,184 @@
//! ghostty-unicode: see docs/rewrite/ARCHITECTURE.md for the module map. //! Unicode properties for Ghostty: codepoint width, grapheme breaking, and
//! the "is symbol" table used by the renderer for constraint width.
//!
//! Port of `src/unicode/*`. Ghostty derives these from the `uucode` package
//! configured by `src/build/uucode_config.zig` (Unicode 17.0.0); here the
//! same values are generated at build time (`build.rs`) from vendored UCD
//! files. See `docs/rewrite/notes/ghostty-unicode.md`.
#![cfg_attr(test, allow(clippy::unwrap_used))]
pub mod emoji_table;
pub mod grapheme;
pub mod lut;
pub mod props;
pub mod props_table;
pub mod symbols_table;
#[cfg(test)]
#[path = "../build_support/ucd.rs"]
mod props_uucode;
pub use grapheme::{BreakState, grapheme_break};
pub use props::{GraphemeBreakNoControl, Properties};
pub use props_table::table;
/// Unicode version of the vendored data.
pub const UNICODE_VERSION: (u8, u8, u8) = (17, 0, 0);
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn unicode_props_tables_match_uucode() {
let ucd =
props_uucode::Ucd::load(&std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("ucd"));
for cp in 0..=0x1F_FFFFu32 {
assert_eq!(table().get(cp), ucd.get(cp), "mismatch cp=U+{cp:x}");
}
}
#[test]
fn unicode_symbols_tables_match_uucode() {
let ucd =
props_uucode::Ucd::load(&std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("ucd"));
for cp in 0..=0x1F_FFFFu32 {
assert_eq!(
symbols_table::table().get(cp),
ucd.is_symbol(cp),
"mismatch cp=U+{cp:x}"
);
assert_eq!(emoji_table::table().get(cp), ucd.is_emoji_presentation(cp));
}
}
fn w(cp: u32) -> u8 {
table().get(cp).width
}
#[test]
fn widths_ascii() {
for cp in 0x20..0x7F {
assert_eq!(w(cp), 1, "{cp:x}");
}
// Control characters are zero width (handled before lookup by the
// terminal).
for cp in (0..0x20).chain(0x7F..0xA0) {
assert_eq!(w(cp), 0, "{cp:x}");
}
}
#[test]
fn widths_cjk_and_fullwidth() {
assert_eq!(w('中' as u32), 2);
assert_eq!(w('あ' as u32), 2);
assert_eq!(w('한' as u32), 2);
assert_eq!(w(0xFF21), 2); // fullwidth A
assert_eq!(w(0x3000), 2); // ideographic space
assert_eq!(w(0xFF61), 1); // halfwidth ideographic full stop
assert_eq!(w(0x20000), 2); // CJK ext B
assert_eq!(w(0x3FFFD), 2);
// Ambiguous width is narrow.
assert_eq!(w(0x00B1), 1);
assert_eq!(w(0x2460), 1);
}
#[test]
fn widths_emoji() {
assert_eq!(w(0x1F600), 2); // grinning face
assert_eq!(w(0x1F680), 2);
assert_eq!(w(0x2764), 1); // heart, text default
assert_eq!(w(0x231A), 2); // watch, emoji presentation
assert!(table().get(0x2764).emoji_vs_base);
assert!(!table().get(0x1F600).emoji_vs_base);
assert!(emoji_table::table().get(0x1F600));
assert!(!emoji_table::table().get(0x2764));
}
#[test]
fn widths_zero_and_combining() {
assert_eq!(w(0x0301), 0); // combining acute
assert_eq!(w(0x20DD), 0); // enclosing circle
assert_eq!(w(0x200B), 0); // ZWSP (default ignorable)
assert_eq!(w(0x200D), 0); // ZWJ
assert_eq!(w(0x200C), 0); // ZWNJ
assert_eq!(w(0xFE0E), 0); // VS15
assert_eq!(w(0xFE0F), 0); // VS16
assert_eq!(w(0xE0100), 0); // VS17
assert_eq!(w(0x2028), 0); // line separator
assert_eq!(w(0xD800), 0); // surrogate
assert_eq!(w(0x00AD), 1); // soft hyphen
assert_eq!(w(0x2E3A), 2); // two-em dash
assert_eq!(w(0x2E3B), 2); // three-em dash clamped to 2
for cp in [0x0301, 0x200D, 0xFE0F, 0x1F3FB, 0x1160, 0x11A8] {
assert!(table().get(cp).width_zero_in_grapheme, "{cp:x}");
}
assert!(!table().get('a' as u32).width_zero_in_grapheme);
assert!(!table().get(0x1F600).width_zero_in_grapheme);
}
#[test]
fn widths_emoji_modifier_prepend_ri_keycap() {
// Emoji modifiers display as colour patches on their own.
for cp in 0x1F3FB..=0x1F3FF {
assert_eq!(w(cp), 2);
assert!(table().get(cp).width_zero_in_grapheme);
assert_eq!(
table().get(cp).grapheme_break,
GraphemeBreakNoControl::EmojiModifier
);
}
// Prepend characters keep a width.
assert_eq!(w(0x0600), 1); // Arabic number sign (prepend, Cf)
assert_eq!(
table().get(0x0600).grapheme_break,
GraphemeBreakNoControl::Prepend
);
assert!(table().get(0x0600).width_zero_in_grapheme);
assert_eq!(w(0x0D4E), 1); // Malayalam letter dot reph
// Regional indicators are wide.
assert_eq!(w(0x1F1E6), 2);
assert_eq!(w(0x1F1FF), 2);
assert_eq!(
table().get(0x1F1E6).grapheme_break,
GraphemeBreakNoControl::RegionalIndicator
);
// Combining enclosing keycap is zero width in the table.
assert_eq!(w(0x20E3), 0);
// Hangul jamo.
assert_eq!(w(0x1100), 2); // choseong
assert_eq!(w(0x1160), 0); // jungseong, zero (V)
assert_eq!(w(0x11A8), 0); // jongseong (T)
}
#[test]
fn out_of_range_defaults() {
// Beyond the Unicode range (props_uucode.zig `get`).
let p = table().get(0x11_0000);
assert_eq!(p.width, 1);
assert!(p.width_zero_in_grapheme);
assert_eq!(p.grapheme_break, GraphemeBreakNoControl::Other);
assert!(!p.emoji_vs_base);
assert_eq!(table().get(0x1F_FFFF), p);
}
#[test]
fn symbols() {
let t = symbols_table::table();
assert!(t.get(0xE000)); // private use
assert!(t.get(0xF0001)); // supplementary private use
assert!(t.get(0x2190)); // arrows
assert!(t.get(0x2713)); // dingbats
assert!(t.get(0x1F600)); // emoticons
assert!(t.get(0x2600)); // misc symbols
assert!(t.get(0x2460)); // enclosed alphanumerics
assert!(t.get(0x1F100)); // enclosed alphanumeric supplement
assert!(t.get(0x1F300)); // misc symbols & pictographs
assert!(t.get(0x1F680)); // transport & map
assert!(!t.get('a' as u32));
assert!(!t.get('中' as u32));
assert!(!t.get(0x2500)); // box drawing
assert!(!t.get(0x11_0000));
}
}
+187
View File
@@ -0,0 +1,187 @@
//! Three-level lookup tables for Unicode properties.
//!
//! This whole file is based on the algorithm described here:
//! <https://here-be-braces.com/fast-lookup-of-unicode-properties/>
//!
//! NOTE: this file is also `#[path]`-included by `build.rs`, so it must not
//! depend on anything else in the crate.
#![allow(dead_code)]
#![allow(
clippy::unwrap_used,
clippy::single_match_else,
clippy::checked_conversions,
clippy::trivially_copy_pass_by_ref,
clippy::expect_used
)]
use std::collections::HashMap;
use std::fmt::Write as _;
const BLOCK_SIZE: usize = 256;
/// Number of codepoints covered by the tables (`maxInt(u21) + 1`).
pub const CODEPOINT_COUNT: usize = 0x20_0000;
/// Errors from table generation.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum GenerateError {
BlockTooLarge,
Stage2TooLarge,
}
/// Owned lookup tables, the output of [`generate`].
#[derive(Debug, Clone)]
pub struct OwnedTables<E> {
pub stage1: Vec<u16>,
pub stage2: Vec<u16>,
pub stage3: Vec<E>,
}
/// Generate the three-level lookup table for all `u21` codepoints.
/// `get` returns the mapping for a codepoint; mappings are compared with `==`
/// (the Zig `Context.eql`).
pub fn generate<E: Clone + PartialEq>(
mut get: impl FnMut(u32) -> E,
) -> Result<OwnedTables<E>, GenerateError> {
let mut blocks_map: HashMap<Vec<u16>, u16> = HashMap::new();
let mut stage1: Vec<u16> = Vec::new();
let mut stage2: Vec<u16> = Vec::new();
let mut stage3: Vec<E> = Vec::new();
let mut block: Vec<u16> = Vec::with_capacity(BLOCK_SIZE);
for cp in 0..CODEPOINT_COUNT {
// Get our block value and find the matching result value in our list
// of possible values in stage3. This way, each possible mapping only
// gets one entry in stage3.
let elem = get(cp as u32);
let idx = match stage3.iter().position(|item| *item == elem) {
Some(i) => i,
None => {
stage3.push(elem);
stage3.len() - 1
}
};
block.push(u16::try_from(idx).map_err(|_| GenerateError::BlockTooLarge)?);
if block.len() < BLOCK_SIZE && cp != CODEPOINT_COUNT - 1 {
continue;
}
block.resize(BLOCK_SIZE, 0);
let next = stage2.len();
let s2 = match blocks_map.get(&block) {
Some(&s) => s,
None => {
let s = u16::try_from(next).map_err(|_| GenerateError::Stage2TooLarge)?;
stage2.extend_from_slice(&block);
blocks_map.insert(block.clone(), s);
s
}
};
stage1.push(s2);
block.clear();
}
assert!(stage1.len() <= usize::from(u16::MAX));
assert!(stage2.len() <= usize::from(u16::MAX));
assert!(stage3.len() <= usize::from(u16::MAX));
Ok(OwnedTables {
stage1,
stage2,
stage3,
})
}
impl<E> OwnedTables<E> {
/// Borrow as lookup [`Tables`].
#[must_use]
pub fn as_tables(&self) -> Tables<'_, E> {
Tables {
stage1: &self.stage1,
stage2: &self.stage2,
stage3: &self.stage3,
}
}
/// Writes the lookup table as Rust source. The output defines three
/// statics (`STAGE1`, `STAGE2`, `STAGE3`) that can be used to rebuild the
/// lookup table.
pub fn write_rust(&self, elem_ty: &str, mut fmt_elem: impl FnMut(&E) -> String) -> String {
let mut out = String::new();
out.push_str("// This file is auto-generated. Do not edit.\n\n");
let _ = write!(out, "pub static STAGE1: [u16; {}] = [", self.stage1.len());
for e in &self.stage1 {
let _ = write!(out, "{e},");
}
out.push_str("];\n\n");
let _ = write!(out, "pub static STAGE2: [u16; {}] = [", self.stage2.len());
for e in &self.stage2 {
let _ = write!(out, "{e},");
}
out.push_str("];\n\n");
let _ = write!(
out,
"pub static STAGE3: [{elem_ty}; {}] = [",
self.stage3.len()
);
for e in &self.stage3 {
let _ = write!(out, "{},", fmt_elem(e));
}
out.push_str("];\n");
out
}
}
/// A 3-level lookup table from a Unicode codepoint to a mapping of type `E`.
#[derive(Debug, Clone, Copy)]
pub struct Tables<'a, E> {
pub stage1: &'a [u16],
pub stage2: &'a [u16],
pub stage3: &'a [E],
}
impl<E: Copy> Tables<'_, E> {
/// Given a codepoint (at most `0x1F_FFFF`), returns the mapping for it.
#[inline]
#[must_use]
pub fn get(&self, cp: u32) -> E {
let high = (cp >> 8) as usize;
let low = (cp & 0xFF) as usize;
self.stage3[self.stage2[self.stage1[high] as usize + low] as usize]
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn generate_roundtrip() {
let f = |cp: u32| -> u8 {
if cp < 0x80 {
0
} else if (0x1000..0x1100).contains(&cp) {
1
} else if cp == 0x1F600 {
2
} else {
3
}
};
let t = generate(f).unwrap();
let tables = t.as_tables();
for cp in 0..CODEPOINT_COUNT as u32 {
assert_eq!(tables.get(cp), f(cp), "cp={cp:x}");
}
// Blocks are deduplicated.
assert!(t.stage2.len() < 10 * BLOCK_SIZE);
assert_eq!(t.stage1.len(), CODEPOINT_COUNT / BLOCK_SIZE);
}
#[test]
fn write_rust_output() {
let t = generate(|cp| cp == 0x41).unwrap();
let src = t.write_rust("bool", ToString::to_string);
assert!(src.contains("pub static STAGE3: [bool; 2] = [false,true,];"));
}
}
+100
View File
@@ -0,0 +1,100 @@
//! Property set per codepoint that Ghostty cares about.
//!
//! Adding to this lets you find new properties but also potentially makes
//! our lookup tables less efficient.
//!
//! NOTE: this file is also `#[path]`-included by `build.rs`, so it must not
//! depend on anything else in the crate.
/// Grapheme break property with the control/CR/LF classes removed
/// (`uucode.x.types.GraphemeBreakNoControl`). The discriminant order matches
/// uucode and is used to index the precomputed break table.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
#[repr(u8)]
pub enum GraphemeBreakNoControl {
#[default]
Other = 0,
Prepend,
RegionalIndicator,
SpacingMark,
L,
V,
T,
Lv,
Lvt,
Zwj,
Zwnj,
ExtendedPictographic,
EmojiModifierBase,
EmojiModifier,
// extend, ==
// zwnj +
// indic_conjunct_break_extend +
// indic_conjunct_break_linker
IndicConjunctBreakExtend,
IndicConjunctBreakLinker,
IndicConjunctBreakConsonant,
}
impl GraphemeBreakNoControl {
/// Number of variants.
pub const COUNT: usize = 17;
/// Variant name in Rust syntax (used by the table generator).
#[must_use]
pub const fn rust_name(self) -> &'static str {
match self {
Self::Other => "Other",
Self::Prepend => "Prepend",
Self::RegionalIndicator => "RegionalIndicator",
Self::SpacingMark => "SpacingMark",
Self::L => "L",
Self::V => "V",
Self::T => "T",
Self::Lv => "Lv",
Self::Lvt => "Lvt",
Self::Zwj => "Zwj",
Self::Zwnj => "Zwnj",
Self::ExtendedPictographic => "ExtendedPictographic",
Self::EmojiModifierBase => "EmojiModifierBase",
Self::EmojiModifier => "EmojiModifier",
Self::IndicConjunctBreakExtend => "IndicConjunctBreakExtend",
Self::IndicConjunctBreakLinker => "IndicConjunctBreakLinker",
Self::IndicConjunctBreakConsonant => "IndicConjunctBreakConsonant",
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
pub struct Properties {
/// Codepoint width. We clamp to [0, 2] since Ghostty handles control
/// characters and we max out at 2 for wide characters (i.e. 3-em dash
/// becomes a 2-em dash). (`u2` in Zig.)
pub width: u8,
/// Whether the code point does not contribute to the width of a grapheme
/// cluster (not used for single code point cells).
pub width_zero_in_grapheme: bool,
/// Grapheme break property.
pub grapheme_break: GraphemeBreakNoControl,
/// Emoji VS compatibility
pub emoji_vs_base: bool,
}
impl Properties {
/// Rust source expression for this value (the Zig `format`), used by the
/// build script when writing the generated tables.
#[must_use]
#[allow(clippy::trivially_copy_pass_by_ref)]
pub fn format_rust(&self) -> String {
format!(
"Properties {{ width: {}, width_zero_in_grapheme: {}, grapheme_break: GraphemeBreakNoControl::{}, emoji_vs_base: {} }}",
self.width,
self.width_zero_in_grapheme,
self.grapheme_break.rust_name(),
self.emoji_vs_base,
)
}
}
+21
View File
@@ -0,0 +1,21 @@
//! The generated Unicode property lookup table for Ghostty
//! (`props_table.zig`). Generated by `build.rs`.
use crate::lut::Tables;
use crate::props::{GraphemeBreakNoControl, Properties};
mod generated {
use super::{GraphemeBreakNoControl, Properties};
include!(concat!(env!("OUT_DIR"), "/props_tables.rs"));
}
/// The lookup tables for Ghostty.
#[inline]
#[must_use]
pub fn table() -> Tables<'static, Properties> {
Tables {
stage1: &generated::STAGE1,
stage2: &generated::STAGE2,
stage3: &generated::STAGE3,
}
}
@@ -0,0 +1,19 @@
//! The generated `is_symbol` lookup table (used by the renderer for constraint width) (`symbols_table.zig`). Generated by
//! `build.rs`.
use crate::lut::Tables;
mod generated {
include!(concat!(env!("OUT_DIR"), "/symbols_tables.rs"));
}
/// The lookup table (codepoint -> bool).
#[inline]
#[must_use]
pub fn table() -> Tables<'static, bool> {
Tables {
stage1: &generated::STAGE1,
stage2: &generated::STAGE2,
stage3: &generated::STAGE3,
}
}
+383
View File
@@ -0,0 +1,383 @@
# Blocks-17.0.0.txt
# Date: 2025-08-01
# © 2025 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
# For documentation, see https://www.unicode.org/reports/tr44/
#
# Format:
# Start Code..End Code; Block Name
# ================================================
# Note: When comparing block names, casing, whitespace, hyphens,
# and underbars are ignored.
# For example, "Latin Extended-A" and "latin extended a" are equivalent.
# For more information on the comparison of property values,
# see UAX #44: https://www.unicode.org/reports/tr44/
#
# All block ranges start with a value where (cp MOD 16) = 0,
# and end with a value where (cp MOD 16) = 15. In other words,
# the last hexadecimal digit of the start of range is ...0
# and the last hexadecimal digit of the end of range is ...F.
# This constraint on block ranges guarantees that allocations
# are done in terms of whole columns, and that code chart display
# never involves splitting columns in the charts.
#
# All code points not explicitly listed for Block
# have the value No_Block.
# Property: Block
#
# @missing: 0000..10FFFF; No_Block
0000..007F; Basic Latin
0080..00FF; Latin-1 Supplement
0100..017F; Latin Extended-A
0180..024F; Latin Extended-B
0250..02AF; IPA Extensions
02B0..02FF; Spacing Modifier Letters
0300..036F; Combining Diacritical Marks
0370..03FF; Greek and Coptic
0400..04FF; Cyrillic
0500..052F; Cyrillic Supplement
0530..058F; Armenian
0590..05FF; Hebrew
0600..06FF; Arabic
0700..074F; Syriac
0750..077F; Arabic Supplement
0780..07BF; Thaana
07C0..07FF; NKo
0800..083F; Samaritan
0840..085F; Mandaic
0860..086F; Syriac Supplement
0870..089F; Arabic Extended-B
08A0..08FF; Arabic Extended-A
0900..097F; Devanagari
0980..09FF; Bengali
0A00..0A7F; Gurmukhi
0A80..0AFF; Gujarati
0B00..0B7F; Oriya
0B80..0BFF; Tamil
0C00..0C7F; Telugu
0C80..0CFF; Kannada
0D00..0D7F; Malayalam
0D80..0DFF; Sinhala
0E00..0E7F; Thai
0E80..0EFF; Lao
0F00..0FFF; Tibetan
1000..109F; Myanmar
10A0..10FF; Georgian
1100..11FF; Hangul Jamo
1200..137F; Ethiopic
1380..139F; Ethiopic Supplement
13A0..13FF; Cherokee
1400..167F; Unified Canadian Aboriginal Syllabics
1680..169F; Ogham
16A0..16FF; Runic
1700..171F; Tagalog
1720..173F; Hanunoo
1740..175F; Buhid
1760..177F; Tagbanwa
1780..17FF; Khmer
1800..18AF; Mongolian
18B0..18FF; Unified Canadian Aboriginal Syllabics Extended
1900..194F; Limbu
1950..197F; Tai Le
1980..19DF; New Tai Lue
19E0..19FF; Khmer Symbols
1A00..1A1F; Buginese
1A20..1AAF; Tai Tham
1AB0..1AFF; Combining Diacritical Marks Extended
1B00..1B7F; Balinese
1B80..1BBF; Sundanese
1BC0..1BFF; Batak
1C00..1C4F; Lepcha
1C50..1C7F; Ol Chiki
1C80..1C8F; Cyrillic Extended-C
1C90..1CBF; Georgian Extended
1CC0..1CCF; Sundanese Supplement
1CD0..1CFF; Vedic Extensions
1D00..1D7F; Phonetic Extensions
1D80..1DBF; Phonetic Extensions Supplement
1DC0..1DFF; Combining Diacritical Marks Supplement
1E00..1EFF; Latin Extended Additional
1F00..1FFF; Greek Extended
2000..206F; General Punctuation
2070..209F; Superscripts and Subscripts
20A0..20CF; Currency Symbols
20D0..20FF; Combining Diacritical Marks for Symbols
2100..214F; Letterlike Symbols
2150..218F; Number Forms
2190..21FF; Arrows
2200..22FF; Mathematical Operators
2300..23FF; Miscellaneous Technical
2400..243F; Control Pictures
2440..245F; Optical Character Recognition
2460..24FF; Enclosed Alphanumerics
2500..257F; Box Drawing
2580..259F; Block Elements
25A0..25FF; Geometric Shapes
2600..26FF; Miscellaneous Symbols
2700..27BF; Dingbats
27C0..27EF; Miscellaneous Mathematical Symbols-A
27F0..27FF; Supplemental Arrows-A
2800..28FF; Braille Patterns
2900..297F; Supplemental Arrows-B
2980..29FF; Miscellaneous Mathematical Symbols-B
2A00..2AFF; Supplemental Mathematical Operators
2B00..2BFF; Miscellaneous Symbols and Arrows
2C00..2C5F; Glagolitic
2C60..2C7F; Latin Extended-C
2C80..2CFF; Coptic
2D00..2D2F; Georgian Supplement
2D30..2D7F; Tifinagh
2D80..2DDF; Ethiopic Extended
2DE0..2DFF; Cyrillic Extended-A
2E00..2E7F; Supplemental Punctuation
2E80..2EFF; CJK Radicals Supplement
2F00..2FDF; Kangxi Radicals
2FF0..2FFF; Ideographic Description Characters
3000..303F; CJK Symbols and Punctuation
3040..309F; Hiragana
30A0..30FF; Katakana
3100..312F; Bopomofo
3130..318F; Hangul Compatibility Jamo
3190..319F; Kanbun
31A0..31BF; Bopomofo Extended
31C0..31EF; CJK Strokes
31F0..31FF; Katakana Phonetic Extensions
3200..32FF; Enclosed CJK Letters and Months
3300..33FF; CJK Compatibility
3400..4DBF; CJK Unified Ideographs Extension A
4DC0..4DFF; Yijing Hexagram Symbols
4E00..9FFF; CJK Unified Ideographs
A000..A48F; Yi Syllables
A490..A4CF; Yi Radicals
A4D0..A4FF; Lisu
A500..A63F; Vai
A640..A69F; Cyrillic Extended-B
A6A0..A6FF; Bamum
A700..A71F; Modifier Tone Letters
A720..A7FF; Latin Extended-D
A800..A82F; Syloti Nagri
A830..A83F; Common Indic Number Forms
A840..A87F; Phags-pa
A880..A8DF; Saurashtra
A8E0..A8FF; Devanagari Extended
A900..A92F; Kayah Li
A930..A95F; Rejang
A960..A97F; Hangul Jamo Extended-A
A980..A9DF; Javanese
A9E0..A9FF; Myanmar Extended-B
AA00..AA5F; Cham
AA60..AA7F; Myanmar Extended-A
AA80..AADF; Tai Viet
AAE0..AAFF; Meetei Mayek Extensions
AB00..AB2F; Ethiopic Extended-A
AB30..AB6F; Latin Extended-E
AB70..ABBF; Cherokee Supplement
ABC0..ABFF; Meetei Mayek
AC00..D7AF; Hangul Syllables
D7B0..D7FF; Hangul Jamo Extended-B
D800..DB7F; High Surrogates
DB80..DBFF; High Private Use Surrogates
DC00..DFFF; Low Surrogates
E000..F8FF; Private Use Area
F900..FAFF; CJK Compatibility Ideographs
FB00..FB4F; Alphabetic Presentation Forms
FB50..FDFF; Arabic Presentation Forms-A
FE00..FE0F; Variation Selectors
FE10..FE1F; Vertical Forms
FE20..FE2F; Combining Half Marks
FE30..FE4F; CJK Compatibility Forms
FE50..FE6F; Small Form Variants
FE70..FEFF; Arabic Presentation Forms-B
FF00..FFEF; Halfwidth and Fullwidth Forms
FFF0..FFFF; Specials
10000..1007F; Linear B Syllabary
10080..100FF; Linear B Ideograms
10100..1013F; Aegean Numbers
10140..1018F; Ancient Greek Numbers
10190..101CF; Ancient Symbols
101D0..101FF; Phaistos Disc
10280..1029F; Lycian
102A0..102DF; Carian
102E0..102FF; Coptic Epact Numbers
10300..1032F; Old Italic
10330..1034F; Gothic
10350..1037F; Old Permic
10380..1039F; Ugaritic
103A0..103DF; Old Persian
10400..1044F; Deseret
10450..1047F; Shavian
10480..104AF; Osmanya
104B0..104FF; Osage
10500..1052F; Elbasan
10530..1056F; Caucasian Albanian
10570..105BF; Vithkuqi
105C0..105FF; Todhri
10600..1077F; Linear A
10780..107BF; Latin Extended-F
10800..1083F; Cypriot Syllabary
10840..1085F; Imperial Aramaic
10860..1087F; Palmyrene
10880..108AF; Nabataean
108E0..108FF; Hatran
10900..1091F; Phoenician
10920..1093F; Lydian
10940..1095F; Sidetic
10980..1099F; Meroitic Hieroglyphs
109A0..109FF; Meroitic Cursive
10A00..10A5F; Kharoshthi
10A60..10A7F; Old South Arabian
10A80..10A9F; Old North Arabian
10AC0..10AFF; Manichaean
10B00..10B3F; Avestan
10B40..10B5F; Inscriptional Parthian
10B60..10B7F; Inscriptional Pahlavi
10B80..10BAF; Psalter Pahlavi
10C00..10C4F; Old Turkic
10C80..10CFF; Old Hungarian
10D00..10D3F; Hanifi Rohingya
10D40..10D8F; Garay
10E60..10E7F; Rumi Numeral Symbols
10E80..10EBF; Yezidi
10EC0..10EFF; Arabic Extended-C
10F00..10F2F; Old Sogdian
10F30..10F6F; Sogdian
10F70..10FAF; Old Uyghur
10FB0..10FDF; Chorasmian
10FE0..10FFF; Elymaic
11000..1107F; Brahmi
11080..110CF; Kaithi
110D0..110FF; Sora Sompeng
11100..1114F; Chakma
11150..1117F; Mahajani
11180..111DF; Sharada
111E0..111FF; Sinhala Archaic Numbers
11200..1124F; Khojki
11280..112AF; Multani
112B0..112FF; Khudawadi
11300..1137F; Grantha
11380..113FF; Tulu-Tigalari
11400..1147F; Newa
11480..114DF; Tirhuta
11580..115FF; Siddham
11600..1165F; Modi
11660..1167F; Mongolian Supplement
11680..116CF; Takri
116D0..116FF; Myanmar Extended-C
11700..1174F; Ahom
11800..1184F; Dogra
118A0..118FF; Warang Citi
11900..1195F; Dives Akuru
119A0..119FF; Nandinagari
11A00..11A4F; Zanabazar Square
11A50..11AAF; Soyombo
11AB0..11ABF; Unified Canadian Aboriginal Syllabics Extended-A
11AC0..11AFF; Pau Cin Hau
11B00..11B5F; Devanagari Extended-A
11B60..11B7F; Sharada Supplement
11BC0..11BFF; Sunuwar
11C00..11C6F; Bhaiksuki
11C70..11CBF; Marchen
11D00..11D5F; Masaram Gondi
11D60..11DAF; Gunjala Gondi
11DB0..11DEF; Tolong Siki
11EE0..11EFF; Makasar
11F00..11F5F; Kawi
11FB0..11FBF; Lisu Supplement
11FC0..11FFF; Tamil Supplement
12000..123FF; Cuneiform
12400..1247F; Cuneiform Numbers and Punctuation
12480..1254F; Early Dynastic Cuneiform
12F90..12FFF; Cypro-Minoan
13000..1342F; Egyptian Hieroglyphs
13430..1345F; Egyptian Hieroglyph Format Controls
13460..143FF; Egyptian Hieroglyphs Extended-A
14400..1467F; Anatolian Hieroglyphs
16100..1613F; Gurung Khema
16800..16A3F; Bamum Supplement
16A40..16A6F; Mro
16A70..16ACF; Tangsa
16AD0..16AFF; Bassa Vah
16B00..16B8F; Pahawh Hmong
16D40..16D7F; Kirat Rai
16E40..16E9F; Medefaidrin
16EA0..16EDF; Beria Erfe
16F00..16F9F; Miao
16FE0..16FFF; Ideographic Symbols and Punctuation
17000..187FF; Tangut
18800..18AFF; Tangut Components
18B00..18CFF; Khitan Small Script
18D00..18D7F; Tangut Supplement
18D80..18DFF; Tangut Components Supplement
1AFF0..1AFFF; Kana Extended-B
1B000..1B0FF; Kana Supplement
1B100..1B12F; Kana Extended-A
1B130..1B16F; Small Kana Extension
1B170..1B2FF; Nushu
1BC00..1BC9F; Duployan
1BCA0..1BCAF; Shorthand Format Controls
1CC00..1CEBF; Symbols for Legacy Computing Supplement
1CEC0..1CEFF; Miscellaneous Symbols Supplement
1CF00..1CFCF; Znamenny Musical Notation
1D000..1D0FF; Byzantine Musical Symbols
1D100..1D1FF; Musical Symbols
1D200..1D24F; Ancient Greek Musical Notation
1D2C0..1D2DF; Kaktovik Numerals
1D2E0..1D2FF; Mayan Numerals
1D300..1D35F; Tai Xuan Jing Symbols
1D360..1D37F; Counting Rod Numerals
1D400..1D7FF; Mathematical Alphanumeric Symbols
1D800..1DAAF; Sutton SignWriting
1DF00..1DFFF; Latin Extended-G
1E000..1E02F; Glagolitic Supplement
1E030..1E08F; Cyrillic Extended-D
1E100..1E14F; Nyiakeng Puachue Hmong
1E290..1E2BF; Toto
1E2C0..1E2FF; Wancho
1E4D0..1E4FF; Nag Mundari
1E5D0..1E5FF; Ol Onal
1E6C0..1E6FF; Tai Yo
1E7E0..1E7FF; Ethiopic Extended-B
1E800..1E8DF; Mende Kikakui
1E900..1E95F; Adlam
1EC70..1ECBF; Indic Siyaq Numbers
1ED00..1ED4F; Ottoman Siyaq Numbers
1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
1F000..1F02F; Mahjong Tiles
1F030..1F09F; Domino Tiles
1F0A0..1F0FF; Playing Cards
1F100..1F1FF; Enclosed Alphanumeric Supplement
1F200..1F2FF; Enclosed Ideographic Supplement
1F300..1F5FF; Miscellaneous Symbols and Pictographs
1F600..1F64F; Emoticons
1F650..1F67F; Ornamental Dingbats
1F680..1F6FF; Transport and Map Symbols
1F700..1F77F; Alchemical Symbols
1F780..1F7FF; Geometric Shapes Extended
1F800..1F8FF; Supplemental Arrows-C
1F900..1F9FF; Supplemental Symbols and Pictographs
1FA00..1FA6F; Chess Symbols
1FA70..1FAFF; Symbols and Pictographs Extended-A
1FB00..1FBFF; Symbols for Legacy Computing
20000..2A6DF; CJK Unified Ideographs Extension B
2A700..2B73F; CJK Unified Ideographs Extension C
2B740..2B81F; CJK Unified Ideographs Extension D
2B820..2CEAF; CJK Unified Ideographs Extension E
2CEB0..2EBEF; CJK Unified Ideographs Extension F
2EBF0..2EE5F; CJK Unified Ideographs Extension I
2F800..2FA1F; CJK Compatibility Ideographs Supplement
30000..3134F; CJK Unified Ideographs Extension G
31350..323AF; CJK Unified Ideographs Extension H
323B0..3347F; CJK Unified Ideographs Extension J
E0000..E007F; Tags
E0100..E01EF; Variation Selectors Supplement
F0000..FFFFF; Supplementary Private Use Area-A
100000..10FFFF; Supplementary Private Use Area-B
# EOF
@@ -0,0 +1,743 @@
# DerivedCoreProperties-17.0.0.txt
# Date: 2025-07-30, 23:55:08 GMT
# © 2025 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
# For documentation, see https://www.unicode.org/reports/tr44/
# Derived Property: Math
# Generated from: Sm + Other_Math
# Derived Property: Alphabetic
# Generated from: Uppercase + Lowercase + Lt + Lm + Lo + Nl + Other_Alphabetic
# Derived Property: Lowercase
# Generated from: Ll + Other_Lowercase
# Derived Property: Uppercase
# Generated from: Lu + Other_Uppercase
# Derived Property: Cased (Cased)
# As defined by Unicode Standard Definition D135
# C has the Lowercase or Uppercase property or has a General_Category value of Titlecase_Letter.
# Derived Property: Case_Ignorable (CI)
# As defined by Unicode Standard Definition D136
# C is defined to be case-ignorable if
# Word_Break(C) = MidLetter or MidNumLet or Single_Quote, or
# General_Category(C) = Nonspacing_Mark (Mn), Enclosing_Mark (Me), Format (Cf), Modifier_Letter (Lm), or Modifier_Symbol (Sk).
# Derived Property: Changes_When_Lowercased (CWL)
# Characters whose normalized forms are not stable under a toLowercase mapping.
# For more information, see the definition of "isLowercase(X)"
# in the "Conformance" / "Default Case Algorithms" section of the core specification.
# Changes_When_Lowercased(X) is true when toLowercase(toNFD(X)) != toNFD(X)
# Derived Property: Changes_When_Uppercased (CWU)
# Characters whose normalized forms are not stable under a toUppercase mapping.
# For more information, see the definition of "isUppercase(X)"
# in the "Conformance" / "Default Case Algorithms" section of the core specification.
# Changes_When_Uppercased(X) is true when toUppercase(toNFD(X)) != toNFD(X)
# Derived Property: Changes_When_Titlecased (CWT)
# Characters whose normalized forms are not stable under a toTitlecase mapping.
# For more information, see the definition of "isTitlecase(X)"
# in the "Conformance" / "Default Case Algorithms" section of the core specification.
# Changes_When_Titlecased(X) is true when toTitlecase(toNFD(X)) != toNFD(X)
# Derived Property: Changes_When_Casefolded (CWCF)
# Characters whose normalized forms are not stable under case folding.
# For more information, see the definition of "isCasefolded(X)"
# in the "Conformance" / "Default Case Algorithms" section of the core specification.
# Changes_When_Casefolded(X) is true when toCasefold(toNFD(X)) != toNFD(X)
# Derived Property: Changes_When_Casemapped (CWCM)
# Characters whose normalized forms are not stable under case mapping.
# For more information, see the definition of "isCased(X)"
# in the "Conformance" / "Default Case Algorithms" section of the core specification.
# Changes_When_Casemapped(X) is true when CWL(X), or CWT(X), or CWU(X)
# Derived Property: ID_Start
# Characters that can start an identifier.
# Generated from:
# Lu + Ll + Lt + Lm + Lo + Nl
# + Other_ID_Start
# - Pattern_Syntax
# - Pattern_White_Space
# NOTE: See UAX #31 for more information
# Derived Property: ID_Continue
# Characters that can continue an identifier.
# Generated from:
# ID_Start
# + Mn + Mc + Nd + Pc
# + Other_ID_Continue
# - Pattern_Syntax
# - Pattern_White_Space
# NOTE: See UAX #31 for more information
# Derived Property: XID_Start
# ID_Start modified for closure under NFKx
# Modified as described in UAX #15
# NOTE: Does NOT remove the non-NFKx characters.
# Merely ensures that if isIdentifer(string) then isIdentifier(NFKx(string))
# NOTE: See UAX #31 for more information
# Derived Property: XID_Continue
# Mod_ID_Continue modified for closure under NFKx
# Modified as described in UAX #15
# NOTE: Does NOT remove the non-NFKx characters.
# Merely ensures that if isIdentifer(string) then isIdentifier(NFKx(string))
# NOTE: See UAX #31 for more information
# Derived Property: Default_Ignorable_Code_Point
# Generated from
# Other_Default_Ignorable_Code_Point
# + Cf (Format characters)
# + Variation_Selector
# - White_Space
# - FFF9..FFFB (Interlinear annotation format characters)
# - 13430..13440 (Egyptian hieroglyph format characters)
# - Prepended_Concatenation_Mark (Exceptional format characters that should be visible)
#
# There are currently no stability guarantees for DICP. However, the
# values of DICP interact with the derivation of XID_Continue
# and NFKC_CF, for which there are stability guarantees.
# Maintainers of this property should note that in the
# unlikely case that the DICP value changes for an existing character
# which is also XID_Continue=Yes, then exceptions must be put
# in place to ensure that the NFKC_CF mapping value for that
# existing character does not change.
00AD ; Default_Ignorable_Code_Point # Cf SOFT HYPHEN
034F ; Default_Ignorable_Code_Point # Mn COMBINING GRAPHEME JOINER
061C ; Default_Ignorable_Code_Point # Cf ARABIC LETTER MARK
115F..1160 ; Default_Ignorable_Code_Point # Lo [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER
17B4..17B5 ; Default_Ignorable_Code_Point # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
180B..180D ; Default_Ignorable_Code_Point # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
180E ; Default_Ignorable_Code_Point # Cf MONGOLIAN VOWEL SEPARATOR
180F ; Default_Ignorable_Code_Point # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
200B..200F ; Default_Ignorable_Code_Point # Cf [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
202A..202E ; Default_Ignorable_Code_Point # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
2060..2064 ; Default_Ignorable_Code_Point # Cf [5] WORD JOINER..INVISIBLE PLUS
2065 ; Default_Ignorable_Code_Point # Cn <reserved-2065>
2066..206F ; Default_Ignorable_Code_Point # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
3164 ; Default_Ignorable_Code_Point # Lo HANGUL FILLER
FE00..FE0F ; Default_Ignorable_Code_Point # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
FEFF ; Default_Ignorable_Code_Point # Cf ZERO WIDTH NO-BREAK SPACE
FFA0 ; Default_Ignorable_Code_Point # Lo HALFWIDTH HANGUL FILLER
FFF0..FFF8 ; Default_Ignorable_Code_Point # Cn [9] <reserved-FFF0>..<reserved-FFF8>
1BCA0..1BCA3 ; Default_Ignorable_Code_Point # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Default_Ignorable_Code_Point # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0000 ; Default_Ignorable_Code_Point # Cn <reserved-E0000>
E0001 ; Default_Ignorable_Code_Point # Cf LANGUAGE TAG
E0002..E001F ; Default_Ignorable_Code_Point # Cn [30] <reserved-E0002>..<reserved-E001F>
E0020..E007F ; Default_Ignorable_Code_Point # Cf [96] TAG SPACE..CANCEL TAG
E0080..E00FF ; Default_Ignorable_Code_Point # Cn [128] <reserved-E0080>..<reserved-E00FF>
E0100..E01EF ; Default_Ignorable_Code_Point # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
E01F0..E0FFF ; Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
# Derived Property: Grapheme_Extend
# Generated from: Me + Mn + Other_Grapheme_Extend
# Note: depending on an application's interpretation of Co (private use),
# they may be either in Grapheme_Base, or in Grapheme_Extend, or in neither.
# Derived Property: Grapheme_Base
# Generated from: [0..10FFFF] - Cc - Cf - Cs - Co - Cn - Zl - Zp - Grapheme_Extend
# Note: depending on an application's interpretation of Co (private use),
# they may be either in Grapheme_Base, or in Grapheme_Extend, or in neither.
# Derived Property: Grapheme_Link (deprecated)
# Generated from: Canonical_Combining_Class=Virama
# Use Canonical_Combining_Class=Virama directly instead
# Derived Property: Indic_Conjunct_Break
# Generated from the Grapheme_Cluster_Break, Indic_Syllabic_Category,
# Canonical_Combining_Class, and Script properties as described in UAX #44:
# https://www.unicode.org/reports/tr44/.
# All code points not explicitly listed for Indic_Conjunct_Break
# have the value None.
# @missing: 0000..10FFFF; InCB; None
# Indic_Conjunct_Break=Linker
094D ; InCB; Linker # Mn DEVANAGARI SIGN VIRAMA
09CD ; InCB; Linker # Mn BENGALI SIGN VIRAMA
0ACD ; InCB; Linker # Mn GUJARATI SIGN VIRAMA
0B4D ; InCB; Linker # Mn ORIYA SIGN VIRAMA
0C4D ; InCB; Linker # Mn TELUGU SIGN VIRAMA
0D4D ; InCB; Linker # Mn MALAYALAM SIGN VIRAMA
1039 ; InCB; Linker # Mn MYANMAR SIGN VIRAMA
17D2 ; InCB; Linker # Mn KHMER SIGN COENG
1A60 ; InCB; Linker # Mn TAI THAM SIGN SAKOT
1B44 ; InCB; Linker # Mc BALINESE ADEG ADEG
1BAB ; InCB; Linker # Mn SUNDANESE SIGN VIRAMA
A9C0 ; InCB; Linker # Mc JAVANESE PANGKON
AAF6 ; InCB; Linker # Mn MEETEI MAYEK VIRAMA
10A3F ; InCB; Linker # Mn KHAROSHTHI VIRAMA
11133 ; InCB; Linker # Mn CHAKMA VIRAMA
113D0 ; InCB; Linker # Mn TULU-TIGALARI CONJOINER
1193E ; InCB; Linker # Mn DIVES AKURU VIRAMA
11A47 ; InCB; Linker # Mn ZANABAZAR SQUARE SUBJOINER
11A99 ; InCB; Linker # Mn SOYOMBO SUBJOINER
11F42 ; InCB; Linker # Mn KAWI CONJOINER
# Indic_Conjunct_Break=Consonant
0915..0939 ; InCB; Consonant # Lo [37] DEVANAGARI LETTER KA..DEVANAGARI LETTER HA
0958..095F ; InCB; Consonant # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
0978..097F ; InCB; Consonant # Lo [8] DEVANAGARI LETTER MARWARI DDA..DEVANAGARI LETTER BBA
0995..09A8 ; InCB; Consonant # Lo [20] BENGALI LETTER KA..BENGALI LETTER NA
09AA..09B0 ; InCB; Consonant # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
09B2 ; InCB; Consonant # Lo BENGALI LETTER LA
09B6..09B9 ; InCB; Consonant # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
09DC..09DD ; InCB; Consonant # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
09DF ; InCB; Consonant # Lo BENGALI LETTER YYA
09F0..09F1 ; InCB; Consonant # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
0A95..0AA8 ; InCB; Consonant # Lo [20] GUJARATI LETTER KA..GUJARATI LETTER NA
0AAA..0AB0 ; InCB; Consonant # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
0AB2..0AB3 ; InCB; Consonant # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
0AB5..0AB9 ; InCB; Consonant # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
0AF9 ; InCB; Consonant # Lo GUJARATI LETTER ZHA
0B15..0B28 ; InCB; Consonant # Lo [20] ORIYA LETTER KA..ORIYA LETTER NA
0B2A..0B30 ; InCB; Consonant # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
0B32..0B33 ; InCB; Consonant # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
0B35..0B39 ; InCB; Consonant # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
0B5C..0B5D ; InCB; Consonant # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
0B5F ; InCB; Consonant # Lo ORIYA LETTER YYA
0B71 ; InCB; Consonant # Lo ORIYA LETTER WA
0C15..0C28 ; InCB; Consonant # Lo [20] TELUGU LETTER KA..TELUGU LETTER NA
0C2A..0C39 ; InCB; Consonant # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
0C58..0C5A ; InCB; Consonant # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
0D15..0D3A ; InCB; Consonant # Lo [38] MALAYALAM LETTER KA..MALAYALAM LETTER TTTA
1000..102A ; InCB; Consonant # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU
103F ; InCB; Consonant # Lo MYANMAR LETTER GREAT SA
1050..1055 ; InCB; Consonant # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
105A..105D ; InCB; Consonant # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
1061 ; InCB; Consonant # Lo MYANMAR LETTER SGAW KAREN SHA
1065..1066 ; InCB; Consonant # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
106E..1070 ; InCB; Consonant # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
1075..1081 ; InCB; Consonant # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
108E ; InCB; Consonant # Lo MYANMAR LETTER RUMAI PALAUNG FA
1780..17B3 ; InCB; Consonant # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
1A20..1A54 ; InCB; Consonant # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
1B0B..1B0C ; InCB; Consonant # Lo [2] BALINESE LETTER RA REPA..BALINESE LETTER RA REPA TEDUNG
1B13..1B33 ; InCB; Consonant # Lo [33] BALINESE LETTER KA..BALINESE LETTER HA
1B45..1B4C ; InCB; Consonant # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
1B83..1BA0 ; InCB; Consonant # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
1BAE..1BAF ; InCB; Consonant # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
1BBB..1BBD ; InCB; Consonant # Lo [3] SUNDANESE LETTER REU..SUNDANESE LETTER BHA
A989..A98B ; InCB; Consonant # Lo [3] JAVANESE LETTER PA CEREK..JAVANESE LETTER NGA LELET RASWADI
A98F..A9B2 ; InCB; Consonant # Lo [36] JAVANESE LETTER KA..JAVANESE LETTER HA
A9E0..A9E4 ; InCB; Consonant # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
A9E7..A9EF ; InCB; Consonant # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
A9FA..A9FE ; InCB; Consonant # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
AA60..AA6F ; InCB; Consonant # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
AA71..AA73 ; InCB; Consonant # Lo [3] MYANMAR LETTER KHAMTI XA..MYANMAR LETTER KHAMTI RA
AA7A ; InCB; Consonant # Lo MYANMAR LETTER AITON RA
AA7E..AA7F ; InCB; Consonant # Lo [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
AAE0..AAEA ; InCB; Consonant # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
ABC0..ABDA ; InCB; Consonant # Lo [27] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER BHAM
10A00 ; InCB; Consonant # Lo KHAROSHTHI LETTER A
10A10..10A13 ; InCB; Consonant # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
10A15..10A17 ; InCB; Consonant # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
10A19..10A35 ; InCB; Consonant # Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
11103..11126 ; InCB; Consonant # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
11144 ; InCB; Consonant # Lo CHAKMA LETTER LHAA
11147 ; InCB; Consonant # Lo CHAKMA LETTER VAA
11380..11389 ; InCB; Consonant # Lo [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
1138B ; InCB; Consonant # Lo TULU-TIGALARI LETTER EE
1138E ; InCB; Consonant # Lo TULU-TIGALARI LETTER AI
11390..113B5 ; InCB; Consonant # Lo [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
11900..11906 ; InCB; Consonant # Lo [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E
11909 ; InCB; Consonant # Lo DIVES AKURU LETTER O
1190C..11913 ; InCB; Consonant # Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
11915..11916 ; InCB; Consonant # Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
11918..1192F ; InCB; Consonant # Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
11A00 ; InCB; Consonant # Lo ZANABAZAR SQUARE LETTER A
11A0B..11A32 ; InCB; Consonant # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
11A50 ; InCB; Consonant # Lo SOYOMBO LETTER A
11A5C..11A83 ; InCB; Consonant # Lo [40] SOYOMBO LETTER KA..SOYOMBO LETTER KSSA
11F04..11F10 ; InCB; Consonant # Lo [13] KAWI LETTER A..KAWI LETTER O
11F12..11F33 ; InCB; Consonant # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
# Indic_Conjunct_Break=Extend
0300..036F ; InCB; Extend # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
0483..0487 ; InCB; Extend # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
0488..0489 ; InCB; Extend # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
0591..05BD ; InCB; Extend # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
05BF ; InCB; Extend # Mn HEBREW POINT RAFE
05C1..05C2 ; InCB; Extend # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
05C4..05C5 ; InCB; Extend # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
05C7 ; InCB; Extend # Mn HEBREW POINT QAMATS QATAN
0610..061A ; InCB; Extend # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
064B..065F ; InCB; Extend # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
0670 ; InCB; Extend # Mn ARABIC LETTER SUPERSCRIPT ALEF
06D6..06DC ; InCB; Extend # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
06DF..06E4 ; InCB; Extend # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
06E7..06E8 ; InCB; Extend # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
06EA..06ED ; InCB; Extend # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
0711 ; InCB; Extend # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
0730..074A ; InCB; Extend # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
07A6..07B0 ; InCB; Extend # Mn [11] THAANA ABAFILI..THAANA SUKUN
07EB..07F3 ; InCB; Extend # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
07FD ; InCB; Extend # Mn NKO DANTAYALAN
0816..0819 ; InCB; Extend # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
081B..0823 ; InCB; Extend # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
0825..0827 ; InCB; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0829..082D ; InCB; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
0859..085B ; InCB; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
0897..089F ; InCB; Extend # Mn [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
08CA..08E1 ; InCB; Extend # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
08E3..0902 ; InCB; Extend # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
093A ; InCB; Extend # Mn DEVANAGARI VOWEL SIGN OE
093C ; InCB; Extend # Mn DEVANAGARI SIGN NUKTA
0941..0948 ; InCB; Extend # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
0951..0957 ; InCB; Extend # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
0962..0963 ; InCB; Extend # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
0981 ; InCB; Extend # Mn BENGALI SIGN CANDRABINDU
09BC ; InCB; Extend # Mn BENGALI SIGN NUKTA
09BE ; InCB; Extend # Mc BENGALI VOWEL SIGN AA
09C1..09C4 ; InCB; Extend # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
09D7 ; InCB; Extend # Mc BENGALI AU LENGTH MARK
09E2..09E3 ; InCB; Extend # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
09FE ; InCB; Extend # Mn BENGALI SANDHI MARK
0A01..0A02 ; InCB; Extend # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
0A3C ; InCB; Extend # Mn GURMUKHI SIGN NUKTA
0A41..0A42 ; InCB; Extend # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
0A47..0A48 ; InCB; Extend # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
0A4B..0A4D ; InCB; Extend # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
0A51 ; InCB; Extend # Mn GURMUKHI SIGN UDAAT
0A70..0A71 ; InCB; Extend # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
0A75 ; InCB; Extend # Mn GURMUKHI SIGN YAKASH
0A81..0A82 ; InCB; Extend # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
0ABC ; InCB; Extend # Mn GUJARATI SIGN NUKTA
0AC1..0AC5 ; InCB; Extend # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
0AC7..0AC8 ; InCB; Extend # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
0AE2..0AE3 ; InCB; Extend # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
0AFA..0AFF ; InCB; Extend # Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
0B01 ; InCB; Extend # Mn ORIYA SIGN CANDRABINDU
0B3C ; InCB; Extend # Mn ORIYA SIGN NUKTA
0B3E ; InCB; Extend # Mc ORIYA VOWEL SIGN AA
0B3F ; InCB; Extend # Mn ORIYA VOWEL SIGN I
0B41..0B44 ; InCB; Extend # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
0B55..0B56 ; InCB; Extend # Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
0B57 ; InCB; Extend # Mc ORIYA AU LENGTH MARK
0B62..0B63 ; InCB; Extend # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
0B82 ; InCB; Extend # Mn TAMIL SIGN ANUSVARA
0BBE ; InCB; Extend # Mc TAMIL VOWEL SIGN AA
0BC0 ; InCB; Extend # Mn TAMIL VOWEL SIGN II
0BCD ; InCB; Extend # Mn TAMIL SIGN VIRAMA
0BD7 ; InCB; Extend # Mc TAMIL AU LENGTH MARK
0C00 ; InCB; Extend # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C04 ; InCB; Extend # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
0C3C ; InCB; Extend # Mn TELUGU SIGN NUKTA
0C3E..0C40 ; InCB; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C46..0C48 ; InCB; Extend # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
0C4A..0C4C ; InCB; Extend # Mn [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU
0C55..0C56 ; InCB; Extend # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0C62..0C63 ; InCB; Extend # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
0C81 ; InCB; Extend # Mn KANNADA SIGN CANDRABINDU
0CBC ; InCB; Extend # Mn KANNADA SIGN NUKTA
0CBF ; InCB; Extend # Mn KANNADA VOWEL SIGN I
0CC0 ; InCB; Extend # Mc KANNADA VOWEL SIGN II
0CC2 ; InCB; Extend # Mc KANNADA VOWEL SIGN UU
0CC6 ; InCB; Extend # Mn KANNADA VOWEL SIGN E
0CC7..0CC8 ; InCB; Extend # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
0CCA..0CCB ; InCB; Extend # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
0CCC..0CCD ; InCB; Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CD5..0CD6 ; InCB; Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CE2..0CE3 ; InCB; Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0D00..0D01 ; InCB; Extend # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
0D3B..0D3C ; InCB; Extend # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
0D3E ; InCB; Extend # Mc MALAYALAM VOWEL SIGN AA
0D41..0D44 ; InCB; Extend # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
0D57 ; InCB; Extend # Mc MALAYALAM AU LENGTH MARK
0D62..0D63 ; InCB; Extend # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
0D81 ; InCB; Extend # Mn SINHALA SIGN CANDRABINDU
0DCA ; InCB; Extend # Mn SINHALA SIGN AL-LAKUNA
0DCF ; InCB; Extend # Mc SINHALA VOWEL SIGN AELA-PILLA
0DD2..0DD4 ; InCB; Extend # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
0DD6 ; InCB; Extend # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
0DDF ; InCB; Extend # Mc SINHALA VOWEL SIGN GAYANUKITTA
0E31 ; InCB; Extend # Mn THAI CHARACTER MAI HAN-AKAT
0E34..0E3A ; InCB; Extend # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
0E47..0E4E ; InCB; Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1 ; InCB; Extend # Mn LAO VOWEL SIGN MAI KAN
0EB4..0EBC ; InCB; Extend # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
0EC8..0ECE ; InCB; Extend # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0F18..0F19 ; InCB; Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35 ; InCB; Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
0F37 ; InCB; Extend # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
0F39 ; InCB; Extend # Mn TIBETAN MARK TSA -PHRU
0F71..0F7E ; InCB; Extend # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
0F80..0F84 ; InCB; Extend # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
0F86..0F87 ; InCB; Extend # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
0F8D..0F97 ; InCB; Extend # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
0F99..0FBC ; InCB; Extend # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
0FC6 ; InCB; Extend # Mn TIBETAN SYMBOL PADMA GDAN
102D..1030 ; InCB; Extend # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
1032..1037 ; InCB; Extend # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
103A ; InCB; Extend # Mn MYANMAR SIGN ASAT
103D..103E ; InCB; Extend # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
1058..1059 ; InCB; Extend # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
105E..1060 ; InCB; Extend # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
1071..1074 ; InCB; Extend # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
1082 ; InCB; Extend # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
1085..1086 ; InCB; Extend # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
108D ; InCB; Extend # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
109D ; InCB; Extend # Mn MYANMAR VOWEL SIGN AITON AI
135D..135F ; InCB; Extend # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
1712..1714 ; InCB; Extend # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
1715 ; InCB; Extend # Mc TAGALOG SIGN PAMUDPOD
1732..1733 ; InCB; Extend # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
1734 ; InCB; Extend # Mc HANUNOO SIGN PAMUDPOD
1752..1753 ; InCB; Extend # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
1772..1773 ; InCB; Extend # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
17B4..17B5 ; InCB; Extend # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
17B7..17BD ; InCB; Extend # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
17C6 ; InCB; Extend # Mn KHMER SIGN NIKAHIT
17C9..17D1 ; InCB; Extend # Mn [9] KHMER SIGN MUUSIKATOAN..KHMER SIGN VIRIAM
17D3 ; InCB; Extend # Mn KHMER SIGN BATHAMASAT
17DD ; InCB; Extend # Mn KHMER SIGN ATTHACAN
180B..180D ; InCB; Extend # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
180F ; InCB; Extend # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
1885..1886 ; InCB; Extend # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
18A9 ; InCB; Extend # Mn MONGOLIAN LETTER ALI GALI DAGALGA
1920..1922 ; InCB; Extend # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
1927..1928 ; InCB; Extend # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
1932 ; InCB; Extend # Mn LIMBU SMALL LETTER ANUSVARA
1939..193B ; InCB; Extend # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
1A17..1A18 ; InCB; Extend # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
1A1B ; InCB; Extend # Mn BUGINESE VOWEL SIGN AE
1A56 ; InCB; Extend # Mn TAI THAM CONSONANT SIGN MEDIAL LA
1A58..1A5E ; InCB; Extend # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
1A62 ; InCB; Extend # Mn TAI THAM VOWEL SIGN MAI SAT
1A65..1A6C ; InCB; Extend # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
1A73..1A7C ; InCB; Extend # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
1A7F ; InCB; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
1AB0..1ABD ; InCB; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
1ABE ; InCB; Extend # Me COMBINING PARENTHESES OVERLAY
1ABF..1ADD ; InCB; Extend # Mn [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
1AE0..1AEB ; InCB; Extend # Mn [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
1B00..1B03 ; InCB; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B34 ; InCB; Extend # Mn BALINESE SIGN REREKAN
1B35 ; InCB; Extend # Mc BALINESE VOWEL SIGN TEDUNG
1B36..1B3A ; InCB; Extend # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
1B3B ; InCB; Extend # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
1B3C ; InCB; Extend # Mn BALINESE VOWEL SIGN LA LENGA
1B3D ; InCB; Extend # Mc BALINESE VOWEL SIGN LA LENGA TEDUNG
1B42 ; InCB; Extend # Mn BALINESE VOWEL SIGN PEPET
1B43 ; InCB; Extend # Mc BALINESE VOWEL SIGN PEPET TEDUNG
1B6B..1B73 ; InCB; Extend # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
1B80..1B81 ; InCB; Extend # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
1BA2..1BA5 ; InCB; Extend # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
1BA8..1BA9 ; InCB; Extend # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
1BAA ; InCB; Extend # Mc SUNDANESE SIGN PAMAAEH
1BAC..1BAD ; InCB; Extend # Mn [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
1BE6 ; InCB; Extend # Mn BATAK SIGN TOMPI
1BE8..1BE9 ; InCB; Extend # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
1BED ; InCB; Extend # Mn BATAK VOWEL SIGN KARO O
1BEF..1BF1 ; InCB; Extend # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
1BF2..1BF3 ; InCB; Extend # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
1C2C..1C33 ; InCB; Extend # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
1C36..1C37 ; InCB; Extend # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
1CD0..1CD2 ; InCB; Extend # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
1CD4..1CE0 ; InCB; Extend # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
1CE2..1CE8 ; InCB; Extend # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CED ; InCB; Extend # Mn VEDIC SIGN TIRYAK
1CF4 ; InCB; Extend # Mn VEDIC TONE CANDRA ABOVE
1CF8..1CF9 ; InCB; Extend # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
1DC0..1DFF ; InCB; Extend # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200D ; InCB; Extend # Cf ZERO WIDTH JOINER
20D0..20DC ; InCB; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20DD..20E0 ; InCB; Extend # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
20E1 ; InCB; Extend # Mn COMBINING LEFT RIGHT ARROW ABOVE
20E2..20E4 ; InCB; Extend # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
20E5..20F0 ; InCB; Extend # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
2CEF..2CF1 ; InCB; Extend # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
2D7F ; InCB; Extend # Mn TIFINAGH CONSONANT JOINER
2DE0..2DFF ; InCB; Extend # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
302A..302D ; InCB; Extend # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
302E..302F ; InCB; Extend # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
3099..309A ; InCB; Extend # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
A66F ; InCB; Extend # Mn COMBINING CYRILLIC VZMET
A670..A672 ; InCB; Extend # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
A674..A67D ; InCB; Extend # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
A69E..A69F ; InCB; Extend # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
A6F0..A6F1 ; InCB; Extend # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
A802 ; InCB; Extend # Mn SYLOTI NAGRI SIGN DVISVARA
A806 ; InCB; Extend # Mn SYLOTI NAGRI SIGN HASANTA
A80B ; InCB; Extend # Mn SYLOTI NAGRI SIGN ANUSVARA
A825..A826 ; InCB; Extend # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
A82C ; InCB; Extend # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA
A8C4..A8C5 ; InCB; Extend # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
A8E0..A8F1 ; InCB; Extend # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
A8FF ; InCB; Extend # Mn DEVANAGARI VOWEL SIGN AY
A926..A92D ; InCB; Extend # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
A947..A951 ; InCB; Extend # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
A953 ; InCB; Extend # Mc REJANG VIRAMA
A980..A982 ; InCB; Extend # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
A9B3 ; InCB; Extend # Mn JAVANESE SIGN CECAK TELU
A9B6..A9B9 ; InCB; Extend # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BC..A9BD ; InCB; Extend # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
A9E5 ; InCB; Extend # Mn MYANMAR SIGN SHAN SAW
AA29..AA2E ; InCB; Extend # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
AA31..AA32 ; InCB; Extend # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
AA35..AA36 ; InCB; Extend # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
AA43 ; InCB; Extend # Mn CHAM CONSONANT SIGN FINAL NG
AA4C ; InCB; Extend # Mn CHAM CONSONANT SIGN FINAL M
AA7C ; InCB; Extend # Mn MYANMAR SIGN TAI LAING TONE-2
AAB0 ; InCB; Extend # Mn TAI VIET MAI KANG
AAB2..AAB4 ; InCB; Extend # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
AAB7..AAB8 ; InCB; Extend # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
AABE..AABF ; InCB; Extend # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
AAC1 ; InCB; Extend # Mn TAI VIET TONE MAI THO
AAEC..AAED ; InCB; Extend # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
ABE5 ; InCB; Extend # Mn MEETEI MAYEK VOWEL SIGN ANAP
ABE8 ; InCB; Extend # Mn MEETEI MAYEK VOWEL SIGN UNAP
ABED ; InCB; Extend # Mn MEETEI MAYEK APUN IYEK
FB1E ; InCB; Extend # Mn HEBREW POINT JUDEO-SPANISH VARIKA
FE00..FE0F ; InCB; Extend # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
FE20..FE2F ; InCB; Extend # Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
FF9E..FF9F ; InCB; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
101FD ; InCB; Extend # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
102E0 ; InCB; Extend # Mn COPTIC EPACT THOUSANDS MARK
10376..1037A ; InCB; Extend # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
10A01..10A03 ; InCB; Extend # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
10A05..10A06 ; InCB; Extend # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
10A0C..10A0F ; InCB; Extend # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
10A38..10A3A ; InCB; Extend # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
10AE5..10AE6 ; InCB; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
10D24..10D27 ; InCB; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
10D69..10D6D ; InCB; Extend # Mn [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
10EAB..10EAC ; InCB; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
10EFA..10EFF ; InCB; Extend # Mn [6] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC SMALL LOW WORD MADDA
10F46..10F50 ; InCB; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
10F82..10F85 ; InCB; Extend # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
11001 ; InCB; Extend # Mn BRAHMI SIGN ANUSVARA
11038..11046 ; InCB; Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
11070 ; InCB; Extend # Mn BRAHMI SIGN OLD TAMIL VIRAMA
11073..11074 ; InCB; Extend # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
1107F..11081 ; InCB; Extend # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
110B3..110B6 ; InCB; Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
110B9..110BA ; InCB; Extend # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
110C2 ; InCB; Extend # Mn KAITHI VOWEL SIGN VOCALIC R
11100..11102 ; InCB; Extend # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
11127..1112B ; InCB; Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
1112D..11132 ; InCB; Extend # Mn [6] CHAKMA VOWEL SIGN AI..CHAKMA AU MARK
11134 ; InCB; Extend # Mn CHAKMA MAAYYAA
11173 ; InCB; Extend # Mn MAHAJANI SIGN NUKTA
11180..11181 ; InCB; Extend # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
111B6..111BE ; InCB; Extend # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
111C0 ; InCB; Extend # Mc SHARADA SIGN VIRAMA
111C9..111CC ; InCB; Extend # Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
111CF ; InCB; Extend # Mn SHARADA SIGN INVERTED CANDRABINDU
1122F..11231 ; InCB; Extend # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
11234 ; InCB; Extend # Mn KHOJKI SIGN ANUSVARA
11235 ; InCB; Extend # Mc KHOJKI SIGN VIRAMA
11236..11237 ; InCB; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
1123E ; InCB; Extend # Mn KHOJKI SIGN SUKUN
11241 ; InCB; Extend # Mn KHOJKI VOWEL SIGN VOCALIC R
112DF ; InCB; Extend # Mn KHUDAWADI SIGN ANUSVARA
112E3..112EA ; InCB; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
11300..11301 ; InCB; Extend # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
1133B..1133C ; InCB; Extend # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
1133E ; InCB; Extend # Mc GRANTHA VOWEL SIGN AA
11340 ; InCB; Extend # Mn GRANTHA VOWEL SIGN II
1134D ; InCB; Extend # Mc GRANTHA SIGN VIRAMA
11357 ; InCB; Extend # Mc GRANTHA AU LENGTH MARK
11366..1136C ; InCB; Extend # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
11370..11374 ; InCB; Extend # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
113B8 ; InCB; Extend # Mc TULU-TIGALARI VOWEL SIGN AA
113BB..113C0 ; InCB; Extend # Mn [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
113C2 ; InCB; Extend # Mc TULU-TIGALARI VOWEL SIGN EE
113C5 ; InCB; Extend # Mc TULU-TIGALARI VOWEL SIGN AI
113C7..113C9 ; InCB; Extend # Mc [3] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI AU LENGTH MARK
113CE ; InCB; Extend # Mn TULU-TIGALARI SIGN VIRAMA
113CF ; InCB; Extend # Mc TULU-TIGALARI SIGN LOOPED VIRAMA
113D2 ; InCB; Extend # Mn TULU-TIGALARI GEMINATION MARK
113E1..113E2 ; InCB; Extend # Mn [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
11438..1143F ; InCB; Extend # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
11442..11444 ; InCB; Extend # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
11446 ; InCB; Extend # Mn NEWA SIGN NUKTA
1145E ; InCB; Extend # Mn NEWA SANDHI MARK
114B0 ; InCB; Extend # Mc TIRHUTA VOWEL SIGN AA
114B3..114B8 ; InCB; Extend # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
114BA ; InCB; Extend # Mn TIRHUTA VOWEL SIGN SHORT E
114BD ; InCB; Extend # Mc TIRHUTA VOWEL SIGN SHORT O
114BF..114C0 ; InCB; Extend # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
114C2..114C3 ; InCB; Extend # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
115AF ; InCB; Extend # Mc SIDDHAM VOWEL SIGN AA
115B2..115B5 ; InCB; Extend # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
115BC..115BD ; InCB; Extend # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
115BF..115C0 ; InCB; Extend # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
115DC..115DD ; InCB; Extend # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
11633..1163A ; InCB; Extend # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
1163D ; InCB; Extend # Mn MODI SIGN ANUSVARA
1163F..11640 ; InCB; Extend # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
116AB ; InCB; Extend # Mn TAKRI SIGN ANUSVARA
116AD ; InCB; Extend # Mn TAKRI VOWEL SIGN AA
116B0..116B5 ; InCB; Extend # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
116B6 ; InCB; Extend # Mc TAKRI SIGN VIRAMA
116B7 ; InCB; Extend # Mn TAKRI SIGN NUKTA
1171D ; InCB; Extend # Mn AHOM CONSONANT SIGN MEDIAL LA
1171F ; InCB; Extend # Mn AHOM CONSONANT SIGN MEDIAL LIGATING RA
11722..11725 ; InCB; Extend # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
11727..1172B ; InCB; Extend # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
1182F..11837 ; InCB; Extend # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
11839..1183A ; InCB; Extend # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
11930 ; InCB; Extend # Mc DIVES AKURU VOWEL SIGN AA
1193B..1193C ; InCB; Extend # Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
1193D ; InCB; Extend # Mc DIVES AKURU SIGN HALANTA
11943 ; InCB; Extend # Mn DIVES AKURU SIGN NUKTA
119D4..119D7 ; InCB; Extend # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
119DA..119DB ; InCB; Extend # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
119E0 ; InCB; Extend # Mn NANDINAGARI SIGN VIRAMA
11A01..11A0A ; InCB; Extend # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A33..11A38 ; InCB; Extend # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
11A3B..11A3E ; InCB; Extend # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
11A51..11A56 ; InCB; Extend # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
11A59..11A5B ; InCB; Extend # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
11A8A..11A96 ; InCB; Extend # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
11A98 ; InCB; Extend # Mn SOYOMBO GEMINATION MARK
11B60 ; InCB; Extend # Mn SHARADA VOWEL SIGN OE
11B62..11B64 ; InCB; Extend # Mn [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
11B66 ; InCB; Extend # Mn SHARADA VOWEL SIGN CANDRA E
11C30..11C36 ; InCB; Extend # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
11C38..11C3D ; InCB; Extend # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
11C3F ; InCB; Extend # Mn BHAIKSUKI SIGN VIRAMA
11C92..11CA7 ; InCB; Extend # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
11CAA..11CB0 ; InCB; Extend # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
11CB2..11CB3 ; InCB; Extend # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
11CB5..11CB6 ; InCB; Extend # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
11D31..11D36 ; InCB; Extend # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
11D3A ; InCB; Extend # Mn MASARAM GONDI VOWEL SIGN E
11D3C..11D3D ; InCB; Extend # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
11D3F..11D45 ; InCB; Extend # Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
11D47 ; InCB; Extend # Mn MASARAM GONDI RA-KARA
11D90..11D91 ; InCB; Extend # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
11D95 ; InCB; Extend # Mn GUNJALA GONDI SIGN ANUSVARA
11D97 ; InCB; Extend # Mn GUNJALA GONDI VIRAMA
11EF3..11EF4 ; InCB; Extend # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11F00..11F01 ; InCB; Extend # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
11F36..11F3A ; InCB; Extend # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
11F40 ; InCB; Extend # Mn KAWI VOWEL SIGN EU
11F41 ; InCB; Extend # Mc KAWI SIGN KILLER
11F5A ; InCB; Extend # Mn KAWI SIGN NUKTA
13440 ; InCB; Extend # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
13447..13455 ; InCB; Extend # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
1611E..16129 ; InCB; Extend # Mn [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
1612D..1612F ; InCB; Extend # Mn [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
16AF0..16AF4 ; InCB; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; InCB; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F4F ; InCB; Extend # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F8F..16F92 ; InCB; Extend # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
16FE4 ; InCB; Extend # Mn KHITAN SMALL SCRIPT FILLER
16FF0..16FF1 ; InCB; Extend # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
1BC9D..1BC9E ; InCB; Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
1CF00..1CF2D ; InCB; Extend # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
1CF30..1CF46 ; InCB; Extend # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
1D165..1D166 ; InCB; Extend # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D167..1D169 ; InCB; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D16D..1D172 ; InCB; Extend # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
1D17B..1D182 ; InCB; Extend # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
1D185..1D18B ; InCB; Extend # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; InCB; Extend # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
1D242..1D244 ; InCB; Extend # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
1DA00..1DA36 ; InCB; Extend # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
1DA3B..1DA6C ; InCB; Extend # Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
1DA75 ; InCB; Extend # Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
1DA84 ; InCB; Extend # Mn SIGNWRITING LOCATION HEAD NECK
1DA9B..1DA9F ; InCB; Extend # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
1DAA1..1DAAF ; InCB; Extend # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
1E000..1E006 ; InCB; Extend # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
1E008..1E018 ; InCB; Extend # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
1E01B..1E021 ; InCB; Extend # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; InCB; Extend # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; InCB; Extend # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
1E08F ; InCB; Extend # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E130..1E136 ; InCB; Extend # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
1E2AE ; InCB; Extend # Mn TOTO SIGN RISING TONE
1E2EC..1E2EF ; InCB; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
1E4EC..1E4EF ; InCB; Extend # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
1E5EE..1E5EF ; InCB; Extend # Mn [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
1E6E3 ; InCB; Extend # Mn TAI YO SIGN UE
1E6E6 ; InCB; Extend # Mn TAI YO SIGN AU
1E6EE..1E6EF ; InCB; Extend # Mn [2] TAI YO SIGN AY..TAI YO SIGN ANG
1E6F5 ; InCB; Extend # Mn TAI YO SIGN OM
1E8D0..1E8D6 ; InCB; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E94A ; InCB; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
1F3FB..1F3FF ; InCB; Extend # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
E0020..E007F ; InCB; Extend # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; InCB; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
# EOF
@@ -0,0 +1,1513 @@
# GraphemeBreakProperty-17.0.0.txt
# Date: 2025-06-30, 06:20:23 GMT
# © 2025 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
# For documentation, see https://www.unicode.org/reports/tr44/
# ================================================
# Property: Grapheme_Cluster_Break
# All code points not explicitly listed for Grapheme_Cluster_Break
# have the value Other (XX).
# @missing: 0000..10FFFF; Other
# ================================================
0600..0605 ; Prepend # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
06DD ; Prepend # Cf ARABIC END OF AYAH
070F ; Prepend # Cf SYRIAC ABBREVIATION MARK
0890..0891 ; Prepend # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
08E2 ; Prepend # Cf ARABIC DISPUTED END OF AYAH
0D4E ; Prepend # Lo MALAYALAM LETTER DOT REPH
110BD ; Prepend # Cf KAITHI NUMBER SIGN
110CD ; Prepend # Cf KAITHI NUMBER SIGN ABOVE
111C2..111C3 ; Prepend # Lo [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA
113D1 ; Prepend # Lo TULU-TIGALARI REPHA
1193F ; Prepend # Lo DIVES AKURU PREFIXED NASAL SIGN
11941 ; Prepend # Lo DIVES AKURU INITIAL RA
11A84..11A89 ; Prepend # Lo [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA
11D46 ; Prepend # Lo MASARAM GONDI REPHA
11F02 ; Prepend # Lo KAWI SIGN REPHA
# Total code points: 27
# ================================================
000D ; CR # Cc <control-000D>
# Total code points: 1
# ================================================
000A ; LF # Cc <control-000A>
# Total code points: 1
# ================================================
0000..0009 ; Control # Cc [10] <control-0000>..<control-0009>
000B..000C ; Control # Cc [2] <control-000B>..<control-000C>
000E..001F ; Control # Cc [18] <control-000E>..<control-001F>
007F..009F ; Control # Cc [33] <control-007F>..<control-009F>
00AD ; Control # Cf SOFT HYPHEN
061C ; Control # Cf ARABIC LETTER MARK
180E ; Control # Cf MONGOLIAN VOWEL SEPARATOR
200B ; Control # Cf ZERO WIDTH SPACE
200E..200F ; Control # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
2028 ; Control # Zl LINE SEPARATOR
2029 ; Control # Zp PARAGRAPH SEPARATOR
202A..202E ; Control # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
2060..2064 ; Control # Cf [5] WORD JOINER..INVISIBLE PLUS
2065 ; Control # Cn <reserved-2065>
2066..206F ; Control # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
FEFF ; Control # Cf ZERO WIDTH NO-BREAK SPACE
FFF0..FFF8 ; Control # Cn [9] <reserved-FFF0>..<reserved-FFF8>
FFF9..FFFB ; Control # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
13430..1343F ; Control # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
1BCA0..1BCA3 ; Control # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Control # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0000 ; Control # Cn <reserved-E0000>
E0001 ; Control # Cf LANGUAGE TAG
E0002..E001F ; Control # Cn [30] <reserved-E0002>..<reserved-E001F>
E0080..E00FF ; Control # Cn [128] <reserved-E0080>..<reserved-E00FF>
E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
# Total code points: 3893
# ================================================
0300..036F ; Extend # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
0483..0487 ; Extend # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
0488..0489 ; Extend # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
0591..05BD ; Extend # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
05BF ; Extend # Mn HEBREW POINT RAFE
05C1..05C2 ; Extend # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
05C4..05C5 ; Extend # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
05C7 ; Extend # Mn HEBREW POINT QAMATS QATAN
0610..061A ; Extend # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
064B..065F ; Extend # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
0670 ; Extend # Mn ARABIC LETTER SUPERSCRIPT ALEF
06D6..06DC ; Extend # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
06DF..06E4 ; Extend # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
06E7..06E8 ; Extend # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
06EA..06ED ; Extend # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
0711 ; Extend # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
0730..074A ; Extend # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
07A6..07B0 ; Extend # Mn [11] THAANA ABAFILI..THAANA SUKUN
07EB..07F3 ; Extend # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
07FD ; Extend # Mn NKO DANTAYALAN
0816..0819 ; Extend # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
081B..0823 ; Extend # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
0825..0827 ; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0829..082D ; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
0859..085B ; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
0897..089F ; Extend # Mn [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
08CA..08E1 ; Extend # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
08E3..0902 ; Extend # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
093A ; Extend # Mn DEVANAGARI VOWEL SIGN OE
093C ; Extend # Mn DEVANAGARI SIGN NUKTA
0941..0948 ; Extend # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
094D ; Extend # Mn DEVANAGARI SIGN VIRAMA
0951..0957 ; Extend # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
0962..0963 ; Extend # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
0981 ; Extend # Mn BENGALI SIGN CANDRABINDU
09BC ; Extend # Mn BENGALI SIGN NUKTA
09BE ; Extend # Mc BENGALI VOWEL SIGN AA
09C1..09C4 ; Extend # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
09CD ; Extend # Mn BENGALI SIGN VIRAMA
09D7 ; Extend # Mc BENGALI AU LENGTH MARK
09E2..09E3 ; Extend # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
09FE ; Extend # Mn BENGALI SANDHI MARK
0A01..0A02 ; Extend # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
0A3C ; Extend # Mn GURMUKHI SIGN NUKTA
0A41..0A42 ; Extend # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
0A47..0A48 ; Extend # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
0A4B..0A4D ; Extend # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
0A51 ; Extend # Mn GURMUKHI SIGN UDAAT
0A70..0A71 ; Extend # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
0A75 ; Extend # Mn GURMUKHI SIGN YAKASH
0A81..0A82 ; Extend # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
0ABC ; Extend # Mn GUJARATI SIGN NUKTA
0AC1..0AC5 ; Extend # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
0AC7..0AC8 ; Extend # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
0ACD ; Extend # Mn GUJARATI SIGN VIRAMA
0AE2..0AE3 ; Extend # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
0AFA..0AFF ; Extend # Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
0B01 ; Extend # Mn ORIYA SIGN CANDRABINDU
0B3C ; Extend # Mn ORIYA SIGN NUKTA
0B3E ; Extend # Mc ORIYA VOWEL SIGN AA
0B3F ; Extend # Mn ORIYA VOWEL SIGN I
0B41..0B44 ; Extend # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
0B4D ; Extend # Mn ORIYA SIGN VIRAMA
0B55..0B56 ; Extend # Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
0B57 ; Extend # Mc ORIYA AU LENGTH MARK
0B62..0B63 ; Extend # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
0B82 ; Extend # Mn TAMIL SIGN ANUSVARA
0BBE ; Extend # Mc TAMIL VOWEL SIGN AA
0BC0 ; Extend # Mn TAMIL VOWEL SIGN II
0BCD ; Extend # Mn TAMIL SIGN VIRAMA
0BD7 ; Extend # Mc TAMIL AU LENGTH MARK
0C00 ; Extend # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C04 ; Extend # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
0C3C ; Extend # Mn TELUGU SIGN NUKTA
0C3E..0C40 ; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C46..0C48 ; Extend # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
0C4A..0C4D ; Extend # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
0C55..0C56 ; Extend # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0C62..0C63 ; Extend # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
0C81 ; Extend # Mn KANNADA SIGN CANDRABINDU
0CBC ; Extend # Mn KANNADA SIGN NUKTA
0CBF ; Extend # Mn KANNADA VOWEL SIGN I
0CC0 ; Extend # Mc KANNADA VOWEL SIGN II
0CC2 ; Extend # Mc KANNADA VOWEL SIGN UU
0CC6 ; Extend # Mn KANNADA VOWEL SIGN E
0CC7..0CC8 ; Extend # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
0CCA..0CCB ; Extend # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
0CCC..0CCD ; Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CD5..0CD6 ; Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CE2..0CE3 ; Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0D00..0D01 ; Extend # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
0D3B..0D3C ; Extend # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
0D3E ; Extend # Mc MALAYALAM VOWEL SIGN AA
0D41..0D44 ; Extend # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
0D4D ; Extend # Mn MALAYALAM SIGN VIRAMA
0D57 ; Extend # Mc MALAYALAM AU LENGTH MARK
0D62..0D63 ; Extend # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
0D81 ; Extend # Mn SINHALA SIGN CANDRABINDU
0DCA ; Extend # Mn SINHALA SIGN AL-LAKUNA
0DCF ; Extend # Mc SINHALA VOWEL SIGN AELA-PILLA
0DD2..0DD4 ; Extend # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
0DD6 ; Extend # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
0DDF ; Extend # Mc SINHALA VOWEL SIGN GAYANUKITTA
0E31 ; Extend # Mn THAI CHARACTER MAI HAN-AKAT
0E34..0E3A ; Extend # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
0E47..0E4E ; Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1 ; Extend # Mn LAO VOWEL SIGN MAI KAN
0EB4..0EBC ; Extend # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
0EC8..0ECE ; Extend # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0F18..0F19 ; Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35 ; Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
0F37 ; Extend # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
0F39 ; Extend # Mn TIBETAN MARK TSA -PHRU
0F71..0F7E ; Extend # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
0F80..0F84 ; Extend # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
0F86..0F87 ; Extend # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
0F8D..0F97 ; Extend # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
0F99..0FBC ; Extend # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
0FC6 ; Extend # Mn TIBETAN SYMBOL PADMA GDAN
102D..1030 ; Extend # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
1032..1037 ; Extend # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
1039..103A ; Extend # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
103D..103E ; Extend # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
1058..1059 ; Extend # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
105E..1060 ; Extend # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
1071..1074 ; Extend # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
1082 ; Extend # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
1085..1086 ; Extend # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
108D ; Extend # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
109D ; Extend # Mn MYANMAR VOWEL SIGN AITON AI
135D..135F ; Extend # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
1712..1714 ; Extend # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
1715 ; Extend # Mc TAGALOG SIGN PAMUDPOD
1732..1733 ; Extend # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
1734 ; Extend # Mc HANUNOO SIGN PAMUDPOD
1752..1753 ; Extend # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
1772..1773 ; Extend # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
17B4..17B5 ; Extend # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
17B7..17BD ; Extend # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
17C6 ; Extend # Mn KHMER SIGN NIKAHIT
17C9..17D3 ; Extend # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
17DD ; Extend # Mn KHMER SIGN ATTHACAN
180B..180D ; Extend # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
180F ; Extend # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
1885..1886 ; Extend # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
18A9 ; Extend # Mn MONGOLIAN LETTER ALI GALI DAGALGA
1920..1922 ; Extend # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
1927..1928 ; Extend # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
1932 ; Extend # Mn LIMBU SMALL LETTER ANUSVARA
1939..193B ; Extend # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
1A17..1A18 ; Extend # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
1A1B ; Extend # Mn BUGINESE VOWEL SIGN AE
1A56 ; Extend # Mn TAI THAM CONSONANT SIGN MEDIAL LA
1A58..1A5E ; Extend # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
1A60 ; Extend # Mn TAI THAM SIGN SAKOT
1A62 ; Extend # Mn TAI THAM VOWEL SIGN MAI SAT
1A65..1A6C ; Extend # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
1A73..1A7C ; Extend # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
1A7F ; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
1AB0..1ABD ; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
1ABE ; Extend # Me COMBINING PARENTHESES OVERLAY
1ABF..1ADD ; Extend # Mn [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
1AE0..1AEB ; Extend # Mn [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B34 ; Extend # Mn BALINESE SIGN REREKAN
1B35 ; Extend # Mc BALINESE VOWEL SIGN TEDUNG
1B36..1B3A ; Extend # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
1B3B ; Extend # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
1B3C ; Extend # Mn BALINESE VOWEL SIGN LA LENGA
1B3D ; Extend # Mc BALINESE VOWEL SIGN LA LENGA TEDUNG
1B42 ; Extend # Mn BALINESE VOWEL SIGN PEPET
1B43..1B44 ; Extend # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
1B6B..1B73 ; Extend # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
1B80..1B81 ; Extend # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
1BA2..1BA5 ; Extend # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
1BA8..1BA9 ; Extend # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
1BAA ; Extend # Mc SUNDANESE SIGN PAMAAEH
1BAB..1BAD ; Extend # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
1BE6 ; Extend # Mn BATAK SIGN TOMPI
1BE8..1BE9 ; Extend # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
1BED ; Extend # Mn BATAK VOWEL SIGN KARO O
1BEF..1BF1 ; Extend # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
1BF2..1BF3 ; Extend # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
1C2C..1C33 ; Extend # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
1C36..1C37 ; Extend # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
1CD0..1CD2 ; Extend # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
1CD4..1CE0 ; Extend # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
1CE2..1CE8 ; Extend # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CED ; Extend # Mn VEDIC SIGN TIRYAK
1CF4 ; Extend # Mn VEDIC TONE CANDRA ABOVE
1CF8..1CF9 ; Extend # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
1DC0..1DFF ; Extend # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C ; Extend # Cf ZERO WIDTH NON-JOINER
20D0..20DC ; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20DD..20E0 ; Extend # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
20E1 ; Extend # Mn COMBINING LEFT RIGHT ARROW ABOVE
20E2..20E4 ; Extend # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
20E5..20F0 ; Extend # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
2CEF..2CF1 ; Extend # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
2D7F ; Extend # Mn TIFINAGH CONSONANT JOINER
2DE0..2DFF ; Extend # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
302A..302D ; Extend # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
302E..302F ; Extend # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
3099..309A ; Extend # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
A66F ; Extend # Mn COMBINING CYRILLIC VZMET
A670..A672 ; Extend # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
A674..A67D ; Extend # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
A69E..A69F ; Extend # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
A6F0..A6F1 ; Extend # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
A802 ; Extend # Mn SYLOTI NAGRI SIGN DVISVARA
A806 ; Extend # Mn SYLOTI NAGRI SIGN HASANTA
A80B ; Extend # Mn SYLOTI NAGRI SIGN ANUSVARA
A825..A826 ; Extend # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
A82C ; Extend # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA
A8C4..A8C5 ; Extend # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
A8E0..A8F1 ; Extend # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
A8FF ; Extend # Mn DEVANAGARI VOWEL SIGN AY
A926..A92D ; Extend # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
A947..A951 ; Extend # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
A953 ; Extend # Mc REJANG VIRAMA
A980..A982 ; Extend # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
A9B3 ; Extend # Mn JAVANESE SIGN CECAK TELU
A9B6..A9B9 ; Extend # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BC..A9BD ; Extend # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
A9C0 ; Extend # Mc JAVANESE PANGKON
A9E5 ; Extend # Mn MYANMAR SIGN SHAN SAW
AA29..AA2E ; Extend # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
AA31..AA32 ; Extend # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
AA35..AA36 ; Extend # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
AA43 ; Extend # Mn CHAM CONSONANT SIGN FINAL NG
AA4C ; Extend # Mn CHAM CONSONANT SIGN FINAL M
AA7C ; Extend # Mn MYANMAR SIGN TAI LAING TONE-2
AAB0 ; Extend # Mn TAI VIET MAI KANG
AAB2..AAB4 ; Extend # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
AAB7..AAB8 ; Extend # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
AABE..AABF ; Extend # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
AAC1 ; Extend # Mn TAI VIET TONE MAI THO
AAEC..AAED ; Extend # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
AAF6 ; Extend # Mn MEETEI MAYEK VIRAMA
ABE5 ; Extend # Mn MEETEI MAYEK VOWEL SIGN ANAP
ABE8 ; Extend # Mn MEETEI MAYEK VOWEL SIGN UNAP
ABED ; Extend # Mn MEETEI MAYEK APUN IYEK
FB1E ; Extend # Mn HEBREW POINT JUDEO-SPANISH VARIKA
FE00..FE0F ; Extend # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
FE20..FE2F ; Extend # Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
101FD ; Extend # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
102E0 ; Extend # Mn COPTIC EPACT THOUSANDS MARK
10376..1037A ; Extend # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
10A01..10A03 ; Extend # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
10A05..10A06 ; Extend # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
10A0C..10A0F ; Extend # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
10A38..10A3A ; Extend # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
10A3F ; Extend # Mn KHAROSHTHI VIRAMA
10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
10D24..10D27 ; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
10D69..10D6D ; Extend # Mn [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
10EAB..10EAC ; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
10EFA..10EFF ; Extend # Mn [6] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC SMALL LOW WORD MADDA
10F46..10F50 ; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
10F82..10F85 ; Extend # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
11001 ; Extend # Mn BRAHMI SIGN ANUSVARA
11038..11046 ; Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
11070 ; Extend # Mn BRAHMI SIGN OLD TAMIL VIRAMA
11073..11074 ; Extend # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
1107F..11081 ; Extend # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
110B3..110B6 ; Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
110B9..110BA ; Extend # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
110C2 ; Extend # Mn KAITHI VOWEL SIGN VOCALIC R
11100..11102 ; Extend # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
11127..1112B ; Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
1112D..11134 ; Extend # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
11173 ; Extend # Mn MAHAJANI SIGN NUKTA
11180..11181 ; Extend # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
111B6..111BE ; Extend # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
111C0 ; Extend # Mc SHARADA SIGN VIRAMA
111C9..111CC ; Extend # Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
111CF ; Extend # Mn SHARADA SIGN INVERTED CANDRABINDU
1122F..11231 ; Extend # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
11234 ; Extend # Mn KHOJKI SIGN ANUSVARA
11235 ; Extend # Mc KHOJKI SIGN VIRAMA
11236..11237 ; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
1123E ; Extend # Mn KHOJKI SIGN SUKUN
11241 ; Extend # Mn KHOJKI VOWEL SIGN VOCALIC R
112DF ; Extend # Mn KHUDAWADI SIGN ANUSVARA
112E3..112EA ; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
11300..11301 ; Extend # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
1133B..1133C ; Extend # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
1133E ; Extend # Mc GRANTHA VOWEL SIGN AA
11340 ; Extend # Mn GRANTHA VOWEL SIGN II
1134D ; Extend # Mc GRANTHA SIGN VIRAMA
11357 ; Extend # Mc GRANTHA AU LENGTH MARK
11366..1136C ; Extend # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
11370..11374 ; Extend # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
113B8 ; Extend # Mc TULU-TIGALARI VOWEL SIGN AA
113BB..113C0 ; Extend # Mn [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
113C2 ; Extend # Mc TULU-TIGALARI VOWEL SIGN EE
113C5 ; Extend # Mc TULU-TIGALARI VOWEL SIGN AI
113C7..113C9 ; Extend # Mc [3] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI AU LENGTH MARK
113CE ; Extend # Mn TULU-TIGALARI SIGN VIRAMA
113CF ; Extend # Mc TULU-TIGALARI SIGN LOOPED VIRAMA
113D0 ; Extend # Mn TULU-TIGALARI CONJOINER
113D2 ; Extend # Mn TULU-TIGALARI GEMINATION MARK
113E1..113E2 ; Extend # Mn [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
11438..1143F ; Extend # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
11442..11444 ; Extend # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
11446 ; Extend # Mn NEWA SIGN NUKTA
1145E ; Extend # Mn NEWA SANDHI MARK
114B0 ; Extend # Mc TIRHUTA VOWEL SIGN AA
114B3..114B8 ; Extend # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
114BA ; Extend # Mn TIRHUTA VOWEL SIGN SHORT E
114BD ; Extend # Mc TIRHUTA VOWEL SIGN SHORT O
114BF..114C0 ; Extend # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
114C2..114C3 ; Extend # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
115AF ; Extend # Mc SIDDHAM VOWEL SIGN AA
115B2..115B5 ; Extend # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
115BC..115BD ; Extend # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
115BF..115C0 ; Extend # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
115DC..115DD ; Extend # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
11633..1163A ; Extend # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
1163D ; Extend # Mn MODI SIGN ANUSVARA
1163F..11640 ; Extend # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
116AB ; Extend # Mn TAKRI SIGN ANUSVARA
116AD ; Extend # Mn TAKRI VOWEL SIGN AA
116B0..116B5 ; Extend # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
116B6 ; Extend # Mc TAKRI SIGN VIRAMA
116B7 ; Extend # Mn TAKRI SIGN NUKTA
1171D ; Extend # Mn AHOM CONSONANT SIGN MEDIAL LA
1171F ; Extend # Mn AHOM CONSONANT SIGN MEDIAL LIGATING RA
11722..11725 ; Extend # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
11727..1172B ; Extend # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
1182F..11837 ; Extend # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
11839..1183A ; Extend # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
11930 ; Extend # Mc DIVES AKURU VOWEL SIGN AA
1193B..1193C ; Extend # Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
1193D ; Extend # Mc DIVES AKURU SIGN HALANTA
1193E ; Extend # Mn DIVES AKURU VIRAMA
11943 ; Extend # Mn DIVES AKURU SIGN NUKTA
119D4..119D7 ; Extend # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
119DA..119DB ; Extend # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
119E0 ; Extend # Mn NANDINAGARI SIGN VIRAMA
11A01..11A0A ; Extend # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A33..11A38 ; Extend # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
11A3B..11A3E ; Extend # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
11A47 ; Extend # Mn ZANABAZAR SQUARE SUBJOINER
11A51..11A56 ; Extend # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
11A59..11A5B ; Extend # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
11A8A..11A96 ; Extend # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
11A98..11A99 ; Extend # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
11B60 ; Extend # Mn SHARADA VOWEL SIGN OE
11B62..11B64 ; Extend # Mn [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
11B66 ; Extend # Mn SHARADA VOWEL SIGN CANDRA E
11C30..11C36 ; Extend # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
11C38..11C3D ; Extend # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
11C3F ; Extend # Mn BHAIKSUKI SIGN VIRAMA
11C92..11CA7 ; Extend # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
11CAA..11CB0 ; Extend # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
11CB2..11CB3 ; Extend # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
11CB5..11CB6 ; Extend # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
11D31..11D36 ; Extend # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
11D3A ; Extend # Mn MASARAM GONDI VOWEL SIGN E
11D3C..11D3D ; Extend # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
11D3F..11D45 ; Extend # Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
11D47 ; Extend # Mn MASARAM GONDI RA-KARA
11D90..11D91 ; Extend # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
11D95 ; Extend # Mn GUNJALA GONDI SIGN ANUSVARA
11D97 ; Extend # Mn GUNJALA GONDI VIRAMA
11EF3..11EF4 ; Extend # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11F00..11F01 ; Extend # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
11F36..11F3A ; Extend # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
11F40 ; Extend # Mn KAWI VOWEL SIGN EU
11F41 ; Extend # Mc KAWI SIGN KILLER
11F42 ; Extend # Mn KAWI CONJOINER
11F5A ; Extend # Mn KAWI SIGN NUKTA
13440 ; Extend # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
13447..13455 ; Extend # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
1611E..16129 ; Extend # Mn [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
1612D..1612F ; Extend # Mn [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F4F ; Extend # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F8F..16F92 ; Extend # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
16FE4 ; Extend # Mn KHITAN SMALL SCRIPT FILLER
16FF0..16FF1 ; Extend # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
1BC9D..1BC9E ; Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
1CF00..1CF2D ; Extend # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
1CF30..1CF46 ; Extend # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
1D165..1D166 ; Extend # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D167..1D169 ; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D16D..1D172 ; Extend # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
1D17B..1D182 ; Extend # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
1D185..1D18B ; Extend # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; Extend # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
1D242..1D244 ; Extend # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
1DA00..1DA36 ; Extend # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
1DA3B..1DA6C ; Extend # Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
1DA75 ; Extend # Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
1DA84 ; Extend # Mn SIGNWRITING LOCATION HEAD NECK
1DA9B..1DA9F ; Extend # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
1DAA1..1DAAF ; Extend # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
1E000..1E006 ; Extend # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
1E008..1E018 ; Extend # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
1E01B..1E021 ; Extend # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Extend # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Extend # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
1E08F ; Extend # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E130..1E136 ; Extend # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
1E2AE ; Extend # Mn TOTO SIGN RISING TONE
1E2EC..1E2EF ; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
1E4EC..1E4EF ; Extend # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
1E5EE..1E5EF ; Extend # Mn [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
1E6E3 ; Extend # Mn TAI YO SIGN UE
1E6E6 ; Extend # Mn TAI YO SIGN AU
1E6EE..1E6EF ; Extend # Mn [2] TAI YO SIGN AY..TAI YO SIGN ANG
1E6F5 ; Extend # Mn TAI YO SIGN OM
1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E94A ; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
1F3FB..1F3FF ; Extend # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
E0020..E007F ; Extend # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
# Total code points: 2237
# ================================================
1F1E6..1F1FF ; Regional_Indicator # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
# Total code points: 26
# ================================================
0903 ; SpacingMark # Mc DEVANAGARI SIGN VISARGA
093B ; SpacingMark # Mc DEVANAGARI VOWEL SIGN OOE
093E..0940 ; SpacingMark # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
0949..094C ; SpacingMark # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
094E..094F ; SpacingMark # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
0982..0983 ; SpacingMark # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
09BF..09C0 ; SpacingMark # Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II
09C7..09C8 ; SpacingMark # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
09CB..09CC ; SpacingMark # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
0A03 ; SpacingMark # Mc GURMUKHI SIGN VISARGA
0A3E..0A40 ; SpacingMark # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
0A83 ; SpacingMark # Mc GUJARATI SIGN VISARGA
0ABE..0AC0 ; SpacingMark # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
0AC9 ; SpacingMark # Mc GUJARATI VOWEL SIGN CANDRA O
0ACB..0ACC ; SpacingMark # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
0B02..0B03 ; SpacingMark # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
0B40 ; SpacingMark # Mc ORIYA VOWEL SIGN II
0B47..0B48 ; SpacingMark # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
0B4B..0B4C ; SpacingMark # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
0BBF ; SpacingMark # Mc TAMIL VOWEL SIGN I
0BC1..0BC2 ; SpacingMark # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
0BC6..0BC8 ; SpacingMark # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
0BCA..0BCC ; SpacingMark # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
0C01..0C03 ; SpacingMark # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
0C41..0C44 ; SpacingMark # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
0C82..0C83 ; SpacingMark # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
0CBE ; SpacingMark # Mc KANNADA VOWEL SIGN AA
0CC1 ; SpacingMark # Mc KANNADA VOWEL SIGN U
0CC3..0CC4 ; SpacingMark # Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
0CF3 ; SpacingMark # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D02..0D03 ; SpacingMark # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D3F..0D40 ; SpacingMark # Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
0D46..0D48 ; SpacingMark # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
0D4A..0D4C ; SpacingMark # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
0D82..0D83 ; SpacingMark # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
0DD0..0DD1 ; SpacingMark # Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
0DD8..0DDE ; SpacingMark # Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
0DF2..0DF3 ; SpacingMark # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
0E33 ; SpacingMark # Lo THAI CHARACTER SARA AM
0EB3 ; SpacingMark # Lo LAO VOWEL SIGN AM
0F3E..0F3F ; SpacingMark # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
0F7F ; SpacingMark # Mc TIBETAN SIGN RNAM BCAD
1031 ; SpacingMark # Mc MYANMAR VOWEL SIGN E
103B..103C ; SpacingMark # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
1056..1057 ; SpacingMark # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
1084 ; SpacingMark # Mc MYANMAR VOWEL SIGN SHAN E
17B6 ; SpacingMark # Mc KHMER VOWEL SIGN AA
17BE..17C5 ; SpacingMark # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
17C7..17C8 ; SpacingMark # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
1923..1926 ; SpacingMark # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
1929..192B ; SpacingMark # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
1930..1931 ; SpacingMark # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
1933..1938 ; SpacingMark # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
1A19..1A1A ; SpacingMark # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
1A55 ; SpacingMark # Mc TAI THAM CONSONANT SIGN MEDIAL RA
1A57 ; SpacingMark # Mc TAI THAM CONSONANT SIGN LA TANG LAI
1A6D..1A72 ; SpacingMark # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
1B04 ; SpacingMark # Mc BALINESE SIGN BISAH
1B3E..1B41 ; SpacingMark # Mc [4] BALINESE VOWEL SIGN TALING..BALINESE VOWEL SIGN TALING REPA TEDUNG
1B82 ; SpacingMark # Mc SUNDANESE SIGN PANGWISAD
1BA1 ; SpacingMark # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
1BA6..1BA7 ; SpacingMark # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
1BE7 ; SpacingMark # Mc BATAK VOWEL SIGN E
1BEA..1BEC ; SpacingMark # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
1BEE ; SpacingMark # Mc BATAK VOWEL SIGN U
1C24..1C2B ; SpacingMark # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
1C34..1C35 ; SpacingMark # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
1CE1 ; SpacingMark # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
1CF7 ; SpacingMark # Mc VEDIC SIGN ATIKRAMA
A823..A824 ; SpacingMark # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
A827 ; SpacingMark # Mc SYLOTI NAGRI VOWEL SIGN OO
A880..A881 ; SpacingMark # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
A8B4..A8C3 ; SpacingMark # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
A952 ; SpacingMark # Mc REJANG CONSONANT SIGN H
A983 ; SpacingMark # Mc JAVANESE SIGN WIGNYAN
A9B4..A9B5 ; SpacingMark # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
A9BA..A9BB ; SpacingMark # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
A9BE..A9BF ; SpacingMark # Mc [2] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE CONSONANT SIGN CAKRA
AA2F..AA30 ; SpacingMark # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
AA33..AA34 ; SpacingMark # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
AA4D ; SpacingMark # Mc CHAM CONSONANT SIGN FINAL H
AAEB ; SpacingMark # Mc MEETEI MAYEK VOWEL SIGN II
AAEE..AAEF ; SpacingMark # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
AAF5 ; SpacingMark # Mc MEETEI MAYEK VOWEL SIGN VISARGA
ABE3..ABE4 ; SpacingMark # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
ABE6..ABE7 ; SpacingMark # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
ABE9..ABEA ; SpacingMark # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
ABEC ; SpacingMark # Mc MEETEI MAYEK LUM IYEK
11000 ; SpacingMark # Mc BRAHMI SIGN CANDRABINDU
11002 ; SpacingMark # Mc BRAHMI SIGN VISARGA
11082 ; SpacingMark # Mc KAITHI SIGN VISARGA
110B0..110B2 ; SpacingMark # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
110B7..110B8 ; SpacingMark # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
1112C ; SpacingMark # Mc CHAKMA VOWEL SIGN E
11145..11146 ; SpacingMark # Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
11182 ; SpacingMark # Mc SHARADA SIGN VISARGA
111B3..111B5 ; SpacingMark # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
111BF ; SpacingMark # Mc SHARADA VOWEL SIGN AU
111CE ; SpacingMark # Mc SHARADA VOWEL SIGN PRISHTHAMATRA E
1122C..1122E ; SpacingMark # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
11232..11233 ; SpacingMark # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
112E0..112E2 ; SpacingMark # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
11302..11303 ; SpacingMark # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
1133F ; SpacingMark # Mc GRANTHA VOWEL SIGN I
11341..11344 ; SpacingMark # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
11347..11348 ; SpacingMark # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
1134B..1134C ; SpacingMark # Mc [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
11362..11363 ; SpacingMark # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
113B9..113BA ; SpacingMark # Mc [2] TULU-TIGALARI VOWEL SIGN I..TULU-TIGALARI VOWEL SIGN II
113CA ; SpacingMark # Mc TULU-TIGALARI SIGN CANDRA ANUNASIKA
113CC..113CD ; SpacingMark # Mc [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
11435..11437 ; SpacingMark # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
11440..11441 ; SpacingMark # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
11445 ; SpacingMark # Mc NEWA SIGN VISARGA
114B1..114B2 ; SpacingMark # Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II
114B9 ; SpacingMark # Mc TIRHUTA VOWEL SIGN E
114BB..114BC ; SpacingMark # Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
114BE ; SpacingMark # Mc TIRHUTA VOWEL SIGN AU
114C1 ; SpacingMark # Mc TIRHUTA SIGN VISARGA
115B0..115B1 ; SpacingMark # Mc [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II
115B8..115BB ; SpacingMark # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
115BE ; SpacingMark # Mc SIDDHAM SIGN VISARGA
11630..11632 ; SpacingMark # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
1163B..1163C ; SpacingMark # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
1163E ; SpacingMark # Mc MODI SIGN VISARGA
116AC ; SpacingMark # Mc TAKRI SIGN VISARGA
116AE..116AF ; SpacingMark # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
1171E ; SpacingMark # Mc AHOM CONSONANT SIGN MEDIAL RA
11726 ; SpacingMark # Mc AHOM VOWEL SIGN E
1182C..1182E ; SpacingMark # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
11838 ; SpacingMark # Mc DOGRA SIGN VISARGA
11931..11935 ; SpacingMark # Mc [5] DIVES AKURU VOWEL SIGN I..DIVES AKURU VOWEL SIGN E
11937..11938 ; SpacingMark # Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
11940 ; SpacingMark # Mc DIVES AKURU MEDIAL YA
11942 ; SpacingMark # Mc DIVES AKURU MEDIAL RA
119D1..119D3 ; SpacingMark # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
119DC..119DF ; SpacingMark # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
119E4 ; SpacingMark # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
11A39 ; SpacingMark # Mc ZANABAZAR SQUARE SIGN VISARGA
11A57..11A58 ; SpacingMark # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
11A97 ; SpacingMark # Mc SOYOMBO SIGN VISARGA
11B61 ; SpacingMark # Mc SHARADA VOWEL SIGN OOE
11B65 ; SpacingMark # Mc SHARADA VOWEL SIGN SHORT O
11B67 ; SpacingMark # Mc SHARADA VOWEL SIGN CANDRA O
11C2F ; SpacingMark # Mc BHAIKSUKI VOWEL SIGN AA
11C3E ; SpacingMark # Mc BHAIKSUKI SIGN VISARGA
11CA9 ; SpacingMark # Mc MARCHEN SUBJOINED LETTER YA
11CB1 ; SpacingMark # Mc MARCHEN VOWEL SIGN I
11CB4 ; SpacingMark # Mc MARCHEN VOWEL SIGN O
11D8A..11D8E ; SpacingMark # Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
11D93..11D94 ; SpacingMark # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
11D96 ; SpacingMark # Mc GUNJALA GONDI SIGN VISARGA
11EF5..11EF6 ; SpacingMark # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
11F03 ; SpacingMark # Mc KAWI SIGN VISARGA
11F34..11F35 ; SpacingMark # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
11F3E..11F3F ; SpacingMark # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
1612A..1612C ; SpacingMark # Mc [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
16F51..16F87 ; SpacingMark # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
# Total code points: 381
# ================================================
1100..115F ; L # Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
A960..A97C ; L # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
# Total code points: 125
# ================================================
1160..11A7 ; V # Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
D7B0..D7C6 ; V # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
16D63 ; V # Lo KIRAT RAI VOWEL SIGN AA
16D67..16D6A ; V # Lo [4] KIRAT RAI VOWEL SIGN E..KIRAT RAI VOWEL SIGN AU
# Total code points: 100
# ================================================
11A8..11FF ; T # Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
D7CB..D7FB ; T # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
# Total code points: 137
# ================================================
AC00 ; LV # Lo HANGUL SYLLABLE GA
AC1C ; LV # Lo HANGUL SYLLABLE GAE
AC38 ; LV # Lo HANGUL SYLLABLE GYA
AC54 ; LV # Lo HANGUL SYLLABLE GYAE
AC70 ; LV # Lo HANGUL SYLLABLE GEO
AC8C ; LV # Lo HANGUL SYLLABLE GE
ACA8 ; LV # Lo HANGUL SYLLABLE GYEO
ACC4 ; LV # Lo HANGUL SYLLABLE GYE
ACE0 ; LV # Lo HANGUL SYLLABLE GO
ACFC ; LV # Lo HANGUL SYLLABLE GWA
AD18 ; LV # Lo HANGUL SYLLABLE GWAE
AD34 ; LV # Lo HANGUL SYLLABLE GOE
AD50 ; LV # Lo HANGUL SYLLABLE GYO
AD6C ; LV # Lo HANGUL SYLLABLE GU
AD88 ; LV # Lo HANGUL SYLLABLE GWEO
ADA4 ; LV # Lo HANGUL SYLLABLE GWE
ADC0 ; LV # Lo HANGUL SYLLABLE GWI
ADDC ; LV # Lo HANGUL SYLLABLE GYU
ADF8 ; LV # Lo HANGUL SYLLABLE GEU
AE14 ; LV # Lo HANGUL SYLLABLE GYI
AE30 ; LV # Lo HANGUL SYLLABLE GI
AE4C ; LV # Lo HANGUL SYLLABLE GGA
AE68 ; LV # Lo HANGUL SYLLABLE GGAE
AE84 ; LV # Lo HANGUL SYLLABLE GGYA
AEA0 ; LV # Lo HANGUL SYLLABLE GGYAE
AEBC ; LV # Lo HANGUL SYLLABLE GGEO
AED8 ; LV # Lo HANGUL SYLLABLE GGE
AEF4 ; LV # Lo HANGUL SYLLABLE GGYEO
AF10 ; LV # Lo HANGUL SYLLABLE GGYE
AF2C ; LV # Lo HANGUL SYLLABLE GGO
AF48 ; LV # Lo HANGUL SYLLABLE GGWA
AF64 ; LV # Lo HANGUL SYLLABLE GGWAE
AF80 ; LV # Lo HANGUL SYLLABLE GGOE
AF9C ; LV # Lo HANGUL SYLLABLE GGYO
AFB8 ; LV # Lo HANGUL SYLLABLE GGU
AFD4 ; LV # Lo HANGUL SYLLABLE GGWEO
AFF0 ; LV # Lo HANGUL SYLLABLE GGWE
B00C ; LV # Lo HANGUL SYLLABLE GGWI
B028 ; LV # Lo HANGUL SYLLABLE GGYU
B044 ; LV # Lo HANGUL SYLLABLE GGEU
B060 ; LV # Lo HANGUL SYLLABLE GGYI
B07C ; LV # Lo HANGUL SYLLABLE GGI
B098 ; LV # Lo HANGUL SYLLABLE NA
B0B4 ; LV # Lo HANGUL SYLLABLE NAE
B0D0 ; LV # Lo HANGUL SYLLABLE NYA
B0EC ; LV # Lo HANGUL SYLLABLE NYAE
B108 ; LV # Lo HANGUL SYLLABLE NEO
B124 ; LV # Lo HANGUL SYLLABLE NE
B140 ; LV # Lo HANGUL SYLLABLE NYEO
B15C ; LV # Lo HANGUL SYLLABLE NYE
B178 ; LV # Lo HANGUL SYLLABLE NO
B194 ; LV # Lo HANGUL SYLLABLE NWA
B1B0 ; LV # Lo HANGUL SYLLABLE NWAE
B1CC ; LV # Lo HANGUL SYLLABLE NOE
B1E8 ; LV # Lo HANGUL SYLLABLE NYO
B204 ; LV # Lo HANGUL SYLLABLE NU
B220 ; LV # Lo HANGUL SYLLABLE NWEO
B23C ; LV # Lo HANGUL SYLLABLE NWE
B258 ; LV # Lo HANGUL SYLLABLE NWI
B274 ; LV # Lo HANGUL SYLLABLE NYU
B290 ; LV # Lo HANGUL SYLLABLE NEU
B2AC ; LV # Lo HANGUL SYLLABLE NYI
B2C8 ; LV # Lo HANGUL SYLLABLE NI
B2E4 ; LV # Lo HANGUL SYLLABLE DA
B300 ; LV # Lo HANGUL SYLLABLE DAE
B31C ; LV # Lo HANGUL SYLLABLE DYA
B338 ; LV # Lo HANGUL SYLLABLE DYAE
B354 ; LV # Lo HANGUL SYLLABLE DEO
B370 ; LV # Lo HANGUL SYLLABLE DE
B38C ; LV # Lo HANGUL SYLLABLE DYEO
B3A8 ; LV # Lo HANGUL SYLLABLE DYE
B3C4 ; LV # Lo HANGUL SYLLABLE DO
B3E0 ; LV # Lo HANGUL SYLLABLE DWA
B3FC ; LV # Lo HANGUL SYLLABLE DWAE
B418 ; LV # Lo HANGUL SYLLABLE DOE
B434 ; LV # Lo HANGUL SYLLABLE DYO
B450 ; LV # Lo HANGUL SYLLABLE DU
B46C ; LV # Lo HANGUL SYLLABLE DWEO
B488 ; LV # Lo HANGUL SYLLABLE DWE
B4A4 ; LV # Lo HANGUL SYLLABLE DWI
B4C0 ; LV # Lo HANGUL SYLLABLE DYU
B4DC ; LV # Lo HANGUL SYLLABLE DEU
B4F8 ; LV # Lo HANGUL SYLLABLE DYI
B514 ; LV # Lo HANGUL SYLLABLE DI
B530 ; LV # Lo HANGUL SYLLABLE DDA
B54C ; LV # Lo HANGUL SYLLABLE DDAE
B568 ; LV # Lo HANGUL SYLLABLE DDYA
B584 ; LV # Lo HANGUL SYLLABLE DDYAE
B5A0 ; LV # Lo HANGUL SYLLABLE DDEO
B5BC ; LV # Lo HANGUL SYLLABLE DDE
B5D8 ; LV # Lo HANGUL SYLLABLE DDYEO
B5F4 ; LV # Lo HANGUL SYLLABLE DDYE
B610 ; LV # Lo HANGUL SYLLABLE DDO
B62C ; LV # Lo HANGUL SYLLABLE DDWA
B648 ; LV # Lo HANGUL SYLLABLE DDWAE
B664 ; LV # Lo HANGUL SYLLABLE DDOE
B680 ; LV # Lo HANGUL SYLLABLE DDYO
B69C ; LV # Lo HANGUL SYLLABLE DDU
B6B8 ; LV # Lo HANGUL SYLLABLE DDWEO
B6D4 ; LV # Lo HANGUL SYLLABLE DDWE
B6F0 ; LV # Lo HANGUL SYLLABLE DDWI
B70C ; LV # Lo HANGUL SYLLABLE DDYU
B728 ; LV # Lo HANGUL SYLLABLE DDEU
B744 ; LV # Lo HANGUL SYLLABLE DDYI
B760 ; LV # Lo HANGUL SYLLABLE DDI
B77C ; LV # Lo HANGUL SYLLABLE RA
B798 ; LV # Lo HANGUL SYLLABLE RAE
B7B4 ; LV # Lo HANGUL SYLLABLE RYA
B7D0 ; LV # Lo HANGUL SYLLABLE RYAE
B7EC ; LV # Lo HANGUL SYLLABLE REO
B808 ; LV # Lo HANGUL SYLLABLE RE
B824 ; LV # Lo HANGUL SYLLABLE RYEO
B840 ; LV # Lo HANGUL SYLLABLE RYE
B85C ; LV # Lo HANGUL SYLLABLE RO
B878 ; LV # Lo HANGUL SYLLABLE RWA
B894 ; LV # Lo HANGUL SYLLABLE RWAE
B8B0 ; LV # Lo HANGUL SYLLABLE ROE
B8CC ; LV # Lo HANGUL SYLLABLE RYO
B8E8 ; LV # Lo HANGUL SYLLABLE RU
B904 ; LV # Lo HANGUL SYLLABLE RWEO
B920 ; LV # Lo HANGUL SYLLABLE RWE
B93C ; LV # Lo HANGUL SYLLABLE RWI
B958 ; LV # Lo HANGUL SYLLABLE RYU
B974 ; LV # Lo HANGUL SYLLABLE REU
B990 ; LV # Lo HANGUL SYLLABLE RYI
B9AC ; LV # Lo HANGUL SYLLABLE RI
B9C8 ; LV # Lo HANGUL SYLLABLE MA
B9E4 ; LV # Lo HANGUL SYLLABLE MAE
BA00 ; LV # Lo HANGUL SYLLABLE MYA
BA1C ; LV # Lo HANGUL SYLLABLE MYAE
BA38 ; LV # Lo HANGUL SYLLABLE MEO
BA54 ; LV # Lo HANGUL SYLLABLE ME
BA70 ; LV # Lo HANGUL SYLLABLE MYEO
BA8C ; LV # Lo HANGUL SYLLABLE MYE
BAA8 ; LV # Lo HANGUL SYLLABLE MO
BAC4 ; LV # Lo HANGUL SYLLABLE MWA
BAE0 ; LV # Lo HANGUL SYLLABLE MWAE
BAFC ; LV # Lo HANGUL SYLLABLE MOE
BB18 ; LV # Lo HANGUL SYLLABLE MYO
BB34 ; LV # Lo HANGUL SYLLABLE MU
BB50 ; LV # Lo HANGUL SYLLABLE MWEO
BB6C ; LV # Lo HANGUL SYLLABLE MWE
BB88 ; LV # Lo HANGUL SYLLABLE MWI
BBA4 ; LV # Lo HANGUL SYLLABLE MYU
BBC0 ; LV # Lo HANGUL SYLLABLE MEU
BBDC ; LV # Lo HANGUL SYLLABLE MYI
BBF8 ; LV # Lo HANGUL SYLLABLE MI
BC14 ; LV # Lo HANGUL SYLLABLE BA
BC30 ; LV # Lo HANGUL SYLLABLE BAE
BC4C ; LV # Lo HANGUL SYLLABLE BYA
BC68 ; LV # Lo HANGUL SYLLABLE BYAE
BC84 ; LV # Lo HANGUL SYLLABLE BEO
BCA0 ; LV # Lo HANGUL SYLLABLE BE
BCBC ; LV # Lo HANGUL SYLLABLE BYEO
BCD8 ; LV # Lo HANGUL SYLLABLE BYE
BCF4 ; LV # Lo HANGUL SYLLABLE BO
BD10 ; LV # Lo HANGUL SYLLABLE BWA
BD2C ; LV # Lo HANGUL SYLLABLE BWAE
BD48 ; LV # Lo HANGUL SYLLABLE BOE
BD64 ; LV # Lo HANGUL SYLLABLE BYO
BD80 ; LV # Lo HANGUL SYLLABLE BU
BD9C ; LV # Lo HANGUL SYLLABLE BWEO
BDB8 ; LV # Lo HANGUL SYLLABLE BWE
BDD4 ; LV # Lo HANGUL SYLLABLE BWI
BDF0 ; LV # Lo HANGUL SYLLABLE BYU
BE0C ; LV # Lo HANGUL SYLLABLE BEU
BE28 ; LV # Lo HANGUL SYLLABLE BYI
BE44 ; LV # Lo HANGUL SYLLABLE BI
BE60 ; LV # Lo HANGUL SYLLABLE BBA
BE7C ; LV # Lo HANGUL SYLLABLE BBAE
BE98 ; LV # Lo HANGUL SYLLABLE BBYA
BEB4 ; LV # Lo HANGUL SYLLABLE BBYAE
BED0 ; LV # Lo HANGUL SYLLABLE BBEO
BEEC ; LV # Lo HANGUL SYLLABLE BBE
BF08 ; LV # Lo HANGUL SYLLABLE BBYEO
BF24 ; LV # Lo HANGUL SYLLABLE BBYE
BF40 ; LV # Lo HANGUL SYLLABLE BBO
BF5C ; LV # Lo HANGUL SYLLABLE BBWA
BF78 ; LV # Lo HANGUL SYLLABLE BBWAE
BF94 ; LV # Lo HANGUL SYLLABLE BBOE
BFB0 ; LV # Lo HANGUL SYLLABLE BBYO
BFCC ; LV # Lo HANGUL SYLLABLE BBU
BFE8 ; LV # Lo HANGUL SYLLABLE BBWEO
C004 ; LV # Lo HANGUL SYLLABLE BBWE
C020 ; LV # Lo HANGUL SYLLABLE BBWI
C03C ; LV # Lo HANGUL SYLLABLE BBYU
C058 ; LV # Lo HANGUL SYLLABLE BBEU
C074 ; LV # Lo HANGUL SYLLABLE BBYI
C090 ; LV # Lo HANGUL SYLLABLE BBI
C0AC ; LV # Lo HANGUL SYLLABLE SA
C0C8 ; LV # Lo HANGUL SYLLABLE SAE
C0E4 ; LV # Lo HANGUL SYLLABLE SYA
C100 ; LV # Lo HANGUL SYLLABLE SYAE
C11C ; LV # Lo HANGUL SYLLABLE SEO
C138 ; LV # Lo HANGUL SYLLABLE SE
C154 ; LV # Lo HANGUL SYLLABLE SYEO
C170 ; LV # Lo HANGUL SYLLABLE SYE
C18C ; LV # Lo HANGUL SYLLABLE SO
C1A8 ; LV # Lo HANGUL SYLLABLE SWA
C1C4 ; LV # Lo HANGUL SYLLABLE SWAE
C1E0 ; LV # Lo HANGUL SYLLABLE SOE
C1FC ; LV # Lo HANGUL SYLLABLE SYO
C218 ; LV # Lo HANGUL SYLLABLE SU
C234 ; LV # Lo HANGUL SYLLABLE SWEO
C250 ; LV # Lo HANGUL SYLLABLE SWE
C26C ; LV # Lo HANGUL SYLLABLE SWI
C288 ; LV # Lo HANGUL SYLLABLE SYU
C2A4 ; LV # Lo HANGUL SYLLABLE SEU
C2C0 ; LV # Lo HANGUL SYLLABLE SYI
C2DC ; LV # Lo HANGUL SYLLABLE SI
C2F8 ; LV # Lo HANGUL SYLLABLE SSA
C314 ; LV # Lo HANGUL SYLLABLE SSAE
C330 ; LV # Lo HANGUL SYLLABLE SSYA
C34C ; LV # Lo HANGUL SYLLABLE SSYAE
C368 ; LV # Lo HANGUL SYLLABLE SSEO
C384 ; LV # Lo HANGUL SYLLABLE SSE
C3A0 ; LV # Lo HANGUL SYLLABLE SSYEO
C3BC ; LV # Lo HANGUL SYLLABLE SSYE
C3D8 ; LV # Lo HANGUL SYLLABLE SSO
C3F4 ; LV # Lo HANGUL SYLLABLE SSWA
C410 ; LV # Lo HANGUL SYLLABLE SSWAE
C42C ; LV # Lo HANGUL SYLLABLE SSOE
C448 ; LV # Lo HANGUL SYLLABLE SSYO
C464 ; LV # Lo HANGUL SYLLABLE SSU
C480 ; LV # Lo HANGUL SYLLABLE SSWEO
C49C ; LV # Lo HANGUL SYLLABLE SSWE
C4B8 ; LV # Lo HANGUL SYLLABLE SSWI
C4D4 ; LV # Lo HANGUL SYLLABLE SSYU
C4F0 ; LV # Lo HANGUL SYLLABLE SSEU
C50C ; LV # Lo HANGUL SYLLABLE SSYI
C528 ; LV # Lo HANGUL SYLLABLE SSI
C544 ; LV # Lo HANGUL SYLLABLE A
C560 ; LV # Lo HANGUL SYLLABLE AE
C57C ; LV # Lo HANGUL SYLLABLE YA
C598 ; LV # Lo HANGUL SYLLABLE YAE
C5B4 ; LV # Lo HANGUL SYLLABLE EO
C5D0 ; LV # Lo HANGUL SYLLABLE E
C5EC ; LV # Lo HANGUL SYLLABLE YEO
C608 ; LV # Lo HANGUL SYLLABLE YE
C624 ; LV # Lo HANGUL SYLLABLE O
C640 ; LV # Lo HANGUL SYLLABLE WA
C65C ; LV # Lo HANGUL SYLLABLE WAE
C678 ; LV # Lo HANGUL SYLLABLE OE
C694 ; LV # Lo HANGUL SYLLABLE YO
C6B0 ; LV # Lo HANGUL SYLLABLE U
C6CC ; LV # Lo HANGUL SYLLABLE WEO
C6E8 ; LV # Lo HANGUL SYLLABLE WE
C704 ; LV # Lo HANGUL SYLLABLE WI
C720 ; LV # Lo HANGUL SYLLABLE YU
C73C ; LV # Lo HANGUL SYLLABLE EU
C758 ; LV # Lo HANGUL SYLLABLE YI
C774 ; LV # Lo HANGUL SYLLABLE I
C790 ; LV # Lo HANGUL SYLLABLE JA
C7AC ; LV # Lo HANGUL SYLLABLE JAE
C7C8 ; LV # Lo HANGUL SYLLABLE JYA
C7E4 ; LV # Lo HANGUL SYLLABLE JYAE
C800 ; LV # Lo HANGUL SYLLABLE JEO
C81C ; LV # Lo HANGUL SYLLABLE JE
C838 ; LV # Lo HANGUL SYLLABLE JYEO
C854 ; LV # Lo HANGUL SYLLABLE JYE
C870 ; LV # Lo HANGUL SYLLABLE JO
C88C ; LV # Lo HANGUL SYLLABLE JWA
C8A8 ; LV # Lo HANGUL SYLLABLE JWAE
C8C4 ; LV # Lo HANGUL SYLLABLE JOE
C8E0 ; LV # Lo HANGUL SYLLABLE JYO
C8FC ; LV # Lo HANGUL SYLLABLE JU
C918 ; LV # Lo HANGUL SYLLABLE JWEO
C934 ; LV # Lo HANGUL SYLLABLE JWE
C950 ; LV # Lo HANGUL SYLLABLE JWI
C96C ; LV # Lo HANGUL SYLLABLE JYU
C988 ; LV # Lo HANGUL SYLLABLE JEU
C9A4 ; LV # Lo HANGUL SYLLABLE JYI
C9C0 ; LV # Lo HANGUL SYLLABLE JI
C9DC ; LV # Lo HANGUL SYLLABLE JJA
C9F8 ; LV # Lo HANGUL SYLLABLE JJAE
CA14 ; LV # Lo HANGUL SYLLABLE JJYA
CA30 ; LV # Lo HANGUL SYLLABLE JJYAE
CA4C ; LV # Lo HANGUL SYLLABLE JJEO
CA68 ; LV # Lo HANGUL SYLLABLE JJE
CA84 ; LV # Lo HANGUL SYLLABLE JJYEO
CAA0 ; LV # Lo HANGUL SYLLABLE JJYE
CABC ; LV # Lo HANGUL SYLLABLE JJO
CAD8 ; LV # Lo HANGUL SYLLABLE JJWA
CAF4 ; LV # Lo HANGUL SYLLABLE JJWAE
CB10 ; LV # Lo HANGUL SYLLABLE JJOE
CB2C ; LV # Lo HANGUL SYLLABLE JJYO
CB48 ; LV # Lo HANGUL SYLLABLE JJU
CB64 ; LV # Lo HANGUL SYLLABLE JJWEO
CB80 ; LV # Lo HANGUL SYLLABLE JJWE
CB9C ; LV # Lo HANGUL SYLLABLE JJWI
CBB8 ; LV # Lo HANGUL SYLLABLE JJYU
CBD4 ; LV # Lo HANGUL SYLLABLE JJEU
CBF0 ; LV # Lo HANGUL SYLLABLE JJYI
CC0C ; LV # Lo HANGUL SYLLABLE JJI
CC28 ; LV # Lo HANGUL SYLLABLE CA
CC44 ; LV # Lo HANGUL SYLLABLE CAE
CC60 ; LV # Lo HANGUL SYLLABLE CYA
CC7C ; LV # Lo HANGUL SYLLABLE CYAE
CC98 ; LV # Lo HANGUL SYLLABLE CEO
CCB4 ; LV # Lo HANGUL SYLLABLE CE
CCD0 ; LV # Lo HANGUL SYLLABLE CYEO
CCEC ; LV # Lo HANGUL SYLLABLE CYE
CD08 ; LV # Lo HANGUL SYLLABLE CO
CD24 ; LV # Lo HANGUL SYLLABLE CWA
CD40 ; LV # Lo HANGUL SYLLABLE CWAE
CD5C ; LV # Lo HANGUL SYLLABLE COE
CD78 ; LV # Lo HANGUL SYLLABLE CYO
CD94 ; LV # Lo HANGUL SYLLABLE CU
CDB0 ; LV # Lo HANGUL SYLLABLE CWEO
CDCC ; LV # Lo HANGUL SYLLABLE CWE
CDE8 ; LV # Lo HANGUL SYLLABLE CWI
CE04 ; LV # Lo HANGUL SYLLABLE CYU
CE20 ; LV # Lo HANGUL SYLLABLE CEU
CE3C ; LV # Lo HANGUL SYLLABLE CYI
CE58 ; LV # Lo HANGUL SYLLABLE CI
CE74 ; LV # Lo HANGUL SYLLABLE KA
CE90 ; LV # Lo HANGUL SYLLABLE KAE
CEAC ; LV # Lo HANGUL SYLLABLE KYA
CEC8 ; LV # Lo HANGUL SYLLABLE KYAE
CEE4 ; LV # Lo HANGUL SYLLABLE KEO
CF00 ; LV # Lo HANGUL SYLLABLE KE
CF1C ; LV # Lo HANGUL SYLLABLE KYEO
CF38 ; LV # Lo HANGUL SYLLABLE KYE
CF54 ; LV # Lo HANGUL SYLLABLE KO
CF70 ; LV # Lo HANGUL SYLLABLE KWA
CF8C ; LV # Lo HANGUL SYLLABLE KWAE
CFA8 ; LV # Lo HANGUL SYLLABLE KOE
CFC4 ; LV # Lo HANGUL SYLLABLE KYO
CFE0 ; LV # Lo HANGUL SYLLABLE KU
CFFC ; LV # Lo HANGUL SYLLABLE KWEO
D018 ; LV # Lo HANGUL SYLLABLE KWE
D034 ; LV # Lo HANGUL SYLLABLE KWI
D050 ; LV # Lo HANGUL SYLLABLE KYU
D06C ; LV # Lo HANGUL SYLLABLE KEU
D088 ; LV # Lo HANGUL SYLLABLE KYI
D0A4 ; LV # Lo HANGUL SYLLABLE KI
D0C0 ; LV # Lo HANGUL SYLLABLE TA
D0DC ; LV # Lo HANGUL SYLLABLE TAE
D0F8 ; LV # Lo HANGUL SYLLABLE TYA
D114 ; LV # Lo HANGUL SYLLABLE TYAE
D130 ; LV # Lo HANGUL SYLLABLE TEO
D14C ; LV # Lo HANGUL SYLLABLE TE
D168 ; LV # Lo HANGUL SYLLABLE TYEO
D184 ; LV # Lo HANGUL SYLLABLE TYE
D1A0 ; LV # Lo HANGUL SYLLABLE TO
D1BC ; LV # Lo HANGUL SYLLABLE TWA
D1D8 ; LV # Lo HANGUL SYLLABLE TWAE
D1F4 ; LV # Lo HANGUL SYLLABLE TOE
D210 ; LV # Lo HANGUL SYLLABLE TYO
D22C ; LV # Lo HANGUL SYLLABLE TU
D248 ; LV # Lo HANGUL SYLLABLE TWEO
D264 ; LV # Lo HANGUL SYLLABLE TWE
D280 ; LV # Lo HANGUL SYLLABLE TWI
D29C ; LV # Lo HANGUL SYLLABLE TYU
D2B8 ; LV # Lo HANGUL SYLLABLE TEU
D2D4 ; LV # Lo HANGUL SYLLABLE TYI
D2F0 ; LV # Lo HANGUL SYLLABLE TI
D30C ; LV # Lo HANGUL SYLLABLE PA
D328 ; LV # Lo HANGUL SYLLABLE PAE
D344 ; LV # Lo HANGUL SYLLABLE PYA
D360 ; LV # Lo HANGUL SYLLABLE PYAE
D37C ; LV # Lo HANGUL SYLLABLE PEO
D398 ; LV # Lo HANGUL SYLLABLE PE
D3B4 ; LV # Lo HANGUL SYLLABLE PYEO
D3D0 ; LV # Lo HANGUL SYLLABLE PYE
D3EC ; LV # Lo HANGUL SYLLABLE PO
D408 ; LV # Lo HANGUL SYLLABLE PWA
D424 ; LV # Lo HANGUL SYLLABLE PWAE
D440 ; LV # Lo HANGUL SYLLABLE POE
D45C ; LV # Lo HANGUL SYLLABLE PYO
D478 ; LV # Lo HANGUL SYLLABLE PU
D494 ; LV # Lo HANGUL SYLLABLE PWEO
D4B0 ; LV # Lo HANGUL SYLLABLE PWE
D4CC ; LV # Lo HANGUL SYLLABLE PWI
D4E8 ; LV # Lo HANGUL SYLLABLE PYU
D504 ; LV # Lo HANGUL SYLLABLE PEU
D520 ; LV # Lo HANGUL SYLLABLE PYI
D53C ; LV # Lo HANGUL SYLLABLE PI
D558 ; LV # Lo HANGUL SYLLABLE HA
D574 ; LV # Lo HANGUL SYLLABLE HAE
D590 ; LV # Lo HANGUL SYLLABLE HYA
D5AC ; LV # Lo HANGUL SYLLABLE HYAE
D5C8 ; LV # Lo HANGUL SYLLABLE HEO
D5E4 ; LV # Lo HANGUL SYLLABLE HE
D600 ; LV # Lo HANGUL SYLLABLE HYEO
D61C ; LV # Lo HANGUL SYLLABLE HYE
D638 ; LV # Lo HANGUL SYLLABLE HO
D654 ; LV # Lo HANGUL SYLLABLE HWA
D670 ; LV # Lo HANGUL SYLLABLE HWAE
D68C ; LV # Lo HANGUL SYLLABLE HOE
D6A8 ; LV # Lo HANGUL SYLLABLE HYO
D6C4 ; LV # Lo HANGUL SYLLABLE HU
D6E0 ; LV # Lo HANGUL SYLLABLE HWEO
D6FC ; LV # Lo HANGUL SYLLABLE HWE
D718 ; LV # Lo HANGUL SYLLABLE HWI
D734 ; LV # Lo HANGUL SYLLABLE HYU
D750 ; LV # Lo HANGUL SYLLABLE HEU
D76C ; LV # Lo HANGUL SYLLABLE HYI
D788 ; LV # Lo HANGUL SYLLABLE HI
# Total code points: 399
# ================================================
AC01..AC1B ; LVT # Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
AC1D..AC37 ; LVT # Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
AC39..AC53 ; LVT # Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
AC55..AC6F ; LVT # Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
AC71..AC8B ; LVT # Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
AC8D..ACA7 ; LVT # Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
ACA9..ACC3 ; LVT # Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
ACC5..ACDF ; LVT # Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
ACE1..ACFB ; LVT # Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
ACFD..AD17 ; LVT # Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
AD19..AD33 ; LVT # Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
AD35..AD4F ; LVT # Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
AD51..AD6B ; LVT # Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
AD6D..AD87 ; LVT # Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
AD89..ADA3 ; LVT # Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
ADA5..ADBF ; LVT # Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
ADC1..ADDB ; LVT # Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
ADDD..ADF7 ; LVT # Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
ADF9..AE13 ; LVT # Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
AE15..AE2F ; LVT # Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
AE31..AE4B ; LVT # Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
AE4D..AE67 ; LVT # Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
AE69..AE83 ; LVT # Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
AE85..AE9F ; LVT # Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
AEA1..AEBB ; LVT # Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
AEBD..AED7 ; LVT # Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
AED9..AEF3 ; LVT # Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
AEF5..AF0F ; LVT # Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
AF11..AF2B ; LVT # Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
AF2D..AF47 ; LVT # Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
AF49..AF63 ; LVT # Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
AF65..AF7F ; LVT # Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
AF81..AF9B ; LVT # Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
AF9D..AFB7 ; LVT # Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
AFB9..AFD3 ; LVT # Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
AFD5..AFEF ; LVT # Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
AFF1..B00B ; LVT # Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
B00D..B027 ; LVT # Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
B029..B043 ; LVT # Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
B045..B05F ; LVT # Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
B061..B07B ; LVT # Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
B07D..B097 ; LVT # Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
B099..B0B3 ; LVT # Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
B0B5..B0CF ; LVT # Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
B0D1..B0EB ; LVT # Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
B0ED..B107 ; LVT # Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
B109..B123 ; LVT # Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
B125..B13F ; LVT # Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
B141..B15B ; LVT # Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
B15D..B177 ; LVT # Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
B179..B193 ; LVT # Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
B195..B1AF ; LVT # Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
B1B1..B1CB ; LVT # Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
B1CD..B1E7 ; LVT # Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
B1E9..B203 ; LVT # Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
B205..B21F ; LVT # Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
B221..B23B ; LVT # Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
B23D..B257 ; LVT # Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
B259..B273 ; LVT # Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
B275..B28F ; LVT # Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
B291..B2AB ; LVT # Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
B2AD..B2C7 ; LVT # Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
B2C9..B2E3 ; LVT # Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
B2E5..B2FF ; LVT # Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
B301..B31B ; LVT # Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
B31D..B337 ; LVT # Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
B339..B353 ; LVT # Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
B355..B36F ; LVT # Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
B371..B38B ; LVT # Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
B38D..B3A7 ; LVT # Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
B3A9..B3C3 ; LVT # Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
B3C5..B3DF ; LVT # Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
B3E1..B3FB ; LVT # Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
B3FD..B417 ; LVT # Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
B419..B433 ; LVT # Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
B435..B44F ; LVT # Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
B451..B46B ; LVT # Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
B46D..B487 ; LVT # Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
B489..B4A3 ; LVT # Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
B4A5..B4BF ; LVT # Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
B4C1..B4DB ; LVT # Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
B4DD..B4F7 ; LVT # Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
B4F9..B513 ; LVT # Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
B515..B52F ; LVT # Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
B531..B54B ; LVT # Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
B54D..B567 ; LVT # Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
B569..B583 ; LVT # Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
B585..B59F ; LVT # Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
B5A1..B5BB ; LVT # Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
B5BD..B5D7 ; LVT # Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
B5D9..B5F3 ; LVT # Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
B5F5..B60F ; LVT # Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
B611..B62B ; LVT # Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
B62D..B647 ; LVT # Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
B649..B663 ; LVT # Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
B665..B67F ; LVT # Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
B681..B69B ; LVT # Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
B69D..B6B7 ; LVT # Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
B6B9..B6D3 ; LVT # Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
B6D5..B6EF ; LVT # Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
B6F1..B70B ; LVT # Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
B70D..B727 ; LVT # Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
B729..B743 ; LVT # Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
B745..B75F ; LVT # Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
B761..B77B ; LVT # Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
B77D..B797 ; LVT # Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
B799..B7B3 ; LVT # Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
B7B5..B7CF ; LVT # Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
B7D1..B7EB ; LVT # Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
B7ED..B807 ; LVT # Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
B809..B823 ; LVT # Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
B825..B83F ; LVT # Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
B841..B85B ; LVT # Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
B85D..B877 ; LVT # Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
B879..B893 ; LVT # Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
B895..B8AF ; LVT # Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
B8B1..B8CB ; LVT # Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
B8CD..B8E7 ; LVT # Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
B8E9..B903 ; LVT # Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
B905..B91F ; LVT # Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
B921..B93B ; LVT # Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
B93D..B957 ; LVT # Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
B959..B973 ; LVT # Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
B975..B98F ; LVT # Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
B991..B9AB ; LVT # Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
B9AD..B9C7 ; LVT # Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
B9C9..B9E3 ; LVT # Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
B9E5..B9FF ; LVT # Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
BA01..BA1B ; LVT # Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
BA1D..BA37 ; LVT # Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
BA39..BA53 ; LVT # Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
BA55..BA6F ; LVT # Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
BA71..BA8B ; LVT # Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
BA8D..BAA7 ; LVT # Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
BAA9..BAC3 ; LVT # Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
BAC5..BADF ; LVT # Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
BAE1..BAFB ; LVT # Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
BAFD..BB17 ; LVT # Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
BB19..BB33 ; LVT # Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
BB35..BB4F ; LVT # Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
BB51..BB6B ; LVT # Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
BB6D..BB87 ; LVT # Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
BB89..BBA3 ; LVT # Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
BBA5..BBBF ; LVT # Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
BBC1..BBDB ; LVT # Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
BBDD..BBF7 ; LVT # Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
BBF9..BC13 ; LVT # Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
BC15..BC2F ; LVT # Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
BC31..BC4B ; LVT # Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
BC4D..BC67 ; LVT # Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
BC69..BC83 ; LVT # Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
BC85..BC9F ; LVT # Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
BCA1..BCBB ; LVT # Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
BCBD..BCD7 ; LVT # Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
BCD9..BCF3 ; LVT # Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
BCF5..BD0F ; LVT # Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
BD11..BD2B ; LVT # Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
BD2D..BD47 ; LVT # Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
BD49..BD63 ; LVT # Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
BD65..BD7F ; LVT # Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
BD81..BD9B ; LVT # Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
BD9D..BDB7 ; LVT # Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
BDB9..BDD3 ; LVT # Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
BDD5..BDEF ; LVT # Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
BDF1..BE0B ; LVT # Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
BE0D..BE27 ; LVT # Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
BE29..BE43 ; LVT # Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
BE45..BE5F ; LVT # Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
BE61..BE7B ; LVT # Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
BE7D..BE97 ; LVT # Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
BE99..BEB3 ; LVT # Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
BEB5..BECF ; LVT # Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
BED1..BEEB ; LVT # Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
BEED..BF07 ; LVT # Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
BF09..BF23 ; LVT # Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
BF25..BF3F ; LVT # Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
BF41..BF5B ; LVT # Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
BF5D..BF77 ; LVT # Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
BF79..BF93 ; LVT # Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
BF95..BFAF ; LVT # Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
BFB1..BFCB ; LVT # Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
BFCD..BFE7 ; LVT # Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
BFE9..C003 ; LVT # Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
C005..C01F ; LVT # Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
C021..C03B ; LVT # Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
C03D..C057 ; LVT # Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
C059..C073 ; LVT # Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
C075..C08F ; LVT # Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
C091..C0AB ; LVT # Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
C0AD..C0C7 ; LVT # Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
C0C9..C0E3 ; LVT # Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
C0E5..C0FF ; LVT # Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
C101..C11B ; LVT # Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
C11D..C137 ; LVT # Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
C139..C153 ; LVT # Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
C155..C16F ; LVT # Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
C171..C18B ; LVT # Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
C18D..C1A7 ; LVT # Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
C1A9..C1C3 ; LVT # Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
C1C5..C1DF ; LVT # Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
C1E1..C1FB ; LVT # Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
C1FD..C217 ; LVT # Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
C219..C233 ; LVT # Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
C235..C24F ; LVT # Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
C251..C26B ; LVT # Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
C26D..C287 ; LVT # Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
C289..C2A3 ; LVT # Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
C2A5..C2BF ; LVT # Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
C2C1..C2DB ; LVT # Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
C2DD..C2F7 ; LVT # Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
C2F9..C313 ; LVT # Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
C315..C32F ; LVT # Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
C331..C34B ; LVT # Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
C34D..C367 ; LVT # Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
C369..C383 ; LVT # Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
C385..C39F ; LVT # Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
C3A1..C3BB ; LVT # Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
C3BD..C3D7 ; LVT # Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
C3D9..C3F3 ; LVT # Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
C3F5..C40F ; LVT # Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
C411..C42B ; LVT # Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
C42D..C447 ; LVT # Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
C449..C463 ; LVT # Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
C465..C47F ; LVT # Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
C481..C49B ; LVT # Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
C49D..C4B7 ; LVT # Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
C4B9..C4D3 ; LVT # Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
C4D5..C4EF ; LVT # Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
C4F1..C50B ; LVT # Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
C50D..C527 ; LVT # Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
C529..C543 ; LVT # Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
C545..C55F ; LVT # Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
C561..C57B ; LVT # Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
C57D..C597 ; LVT # Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
C599..C5B3 ; LVT # Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
C5B5..C5CF ; LVT # Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
C5D1..C5EB ; LVT # Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
C5ED..C607 ; LVT # Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
C609..C623 ; LVT # Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
C625..C63F ; LVT # Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
C641..C65B ; LVT # Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
C65D..C677 ; LVT # Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
C679..C693 ; LVT # Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
C695..C6AF ; LVT # Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
C6B1..C6CB ; LVT # Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
C6CD..C6E7 ; LVT # Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
C6E9..C703 ; LVT # Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
C705..C71F ; LVT # Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
C721..C73B ; LVT # Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
C73D..C757 ; LVT # Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
C759..C773 ; LVT # Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
C775..C78F ; LVT # Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
C791..C7AB ; LVT # Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
C7AD..C7C7 ; LVT # Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
C7C9..C7E3 ; LVT # Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
C7E5..C7FF ; LVT # Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
C801..C81B ; LVT # Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
C81D..C837 ; LVT # Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
C839..C853 ; LVT # Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
C855..C86F ; LVT # Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
C871..C88B ; LVT # Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
C88D..C8A7 ; LVT # Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
C8A9..C8C3 ; LVT # Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
C8C5..C8DF ; LVT # Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
C8E1..C8FB ; LVT # Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
C8FD..C917 ; LVT # Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
C919..C933 ; LVT # Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
C935..C94F ; LVT # Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
C951..C96B ; LVT # Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
C96D..C987 ; LVT # Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
C989..C9A3 ; LVT # Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
C9A5..C9BF ; LVT # Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
C9C1..C9DB ; LVT # Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
C9DD..C9F7 ; LVT # Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
C9F9..CA13 ; LVT # Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
CA15..CA2F ; LVT # Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
CA31..CA4B ; LVT # Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
CA4D..CA67 ; LVT # Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
CA69..CA83 ; LVT # Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
CA85..CA9F ; LVT # Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
CAA1..CABB ; LVT # Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
CABD..CAD7 ; LVT # Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
CAD9..CAF3 ; LVT # Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
CAF5..CB0F ; LVT # Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
CB11..CB2B ; LVT # Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
CB2D..CB47 ; LVT # Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
CB49..CB63 ; LVT # Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
CB65..CB7F ; LVT # Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
CB81..CB9B ; LVT # Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
CB9D..CBB7 ; LVT # Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
CBB9..CBD3 ; LVT # Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
CBD5..CBEF ; LVT # Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
CBF1..CC0B ; LVT # Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
CC0D..CC27 ; LVT # Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
CC29..CC43 ; LVT # Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
CC45..CC5F ; LVT # Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
CC61..CC7B ; LVT # Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
CC7D..CC97 ; LVT # Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
CC99..CCB3 ; LVT # Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
CCB5..CCCF ; LVT # Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
CCD1..CCEB ; LVT # Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
CCED..CD07 ; LVT # Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
CD09..CD23 ; LVT # Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
CD25..CD3F ; LVT # Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
CD41..CD5B ; LVT # Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
CD5D..CD77 ; LVT # Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
CD79..CD93 ; LVT # Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
CD95..CDAF ; LVT # Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
CDB1..CDCB ; LVT # Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
CDCD..CDE7 ; LVT # Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
CDE9..CE03 ; LVT # Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
CE05..CE1F ; LVT # Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
CE21..CE3B ; LVT # Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
CE3D..CE57 ; LVT # Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
CE59..CE73 ; LVT # Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
CE75..CE8F ; LVT # Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
CE91..CEAB ; LVT # Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
CEAD..CEC7 ; LVT # Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
CEC9..CEE3 ; LVT # Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
CEE5..CEFF ; LVT # Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
CF01..CF1B ; LVT # Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
CF1D..CF37 ; LVT # Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
CF39..CF53 ; LVT # Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
CF55..CF6F ; LVT # Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
CF71..CF8B ; LVT # Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
CF8D..CFA7 ; LVT # Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
CFA9..CFC3 ; LVT # Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
CFC5..CFDF ; LVT # Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
CFE1..CFFB ; LVT # Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
CFFD..D017 ; LVT # Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
D019..D033 ; LVT # Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
D035..D04F ; LVT # Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
D051..D06B ; LVT # Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
D06D..D087 ; LVT # Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
D089..D0A3 ; LVT # Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
D0A5..D0BF ; LVT # Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
D0C1..D0DB ; LVT # Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
D0DD..D0F7 ; LVT # Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
D0F9..D113 ; LVT # Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
D115..D12F ; LVT # Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
D131..D14B ; LVT # Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
D14D..D167 ; LVT # Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
D169..D183 ; LVT # Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
D185..D19F ; LVT # Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
D1A1..D1BB ; LVT # Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
D1BD..D1D7 ; LVT # Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
D1D9..D1F3 ; LVT # Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
D1F5..D20F ; LVT # Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
D211..D22B ; LVT # Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
D22D..D247 ; LVT # Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
D249..D263 ; LVT # Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
D265..D27F ; LVT # Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
D281..D29B ; LVT # Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
D29D..D2B7 ; LVT # Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
D2B9..D2D3 ; LVT # Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
D2D5..D2EF ; LVT # Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
D2F1..D30B ; LVT # Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
D30D..D327 ; LVT # Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
D329..D343 ; LVT # Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
D345..D35F ; LVT # Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
D361..D37B ; LVT # Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
D37D..D397 ; LVT # Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
D399..D3B3 ; LVT # Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
D3B5..D3CF ; LVT # Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
D3D1..D3EB ; LVT # Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
D3ED..D407 ; LVT # Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
D409..D423 ; LVT # Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
D425..D43F ; LVT # Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
D441..D45B ; LVT # Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
D45D..D477 ; LVT # Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
D479..D493 ; LVT # Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
D495..D4AF ; LVT # Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
D4B1..D4CB ; LVT # Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
D4CD..D4E7 ; LVT # Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
D4E9..D503 ; LVT # Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
D505..D51F ; LVT # Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
D521..D53B ; LVT # Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
D53D..D557 ; LVT # Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
D559..D573 ; LVT # Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
D575..D58F ; LVT # Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
D591..D5AB ; LVT # Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
D5AD..D5C7 ; LVT # Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
D5C9..D5E3 ; LVT # Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
D5E5..D5FF ; LVT # Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
D601..D61B ; LVT # Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
D61D..D637 ; LVT # Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
D639..D653 ; LVT # Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
D655..D66F ; LVT # Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
D671..D68B ; LVT # Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
D68D..D6A7 ; LVT # Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
D6A9..D6C3 ; LVT # Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
D6C5..D6DF ; LVT # Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
D6E1..D6FB ; LVT # Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
D6FD..D717 ; LVT # Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
D719..D733 ; LVT # Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
D735..D74F ; LVT # Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
D751..D76B ; LVT # Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
D76D..D787 ; LVT # Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
D789..D7A3 ; LVT # Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
# Total code points: 10773
# ================================================
200D ; ZWJ # Cf ZERO WIDTH JOINER
# Total code points: 1
# EOF
@@ -0,0 +1,796 @@
# GraphemeBreakTest-17.0.0.txt
# Date: 2025-03-24, 14:45:55 GMT
# © 2025 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
# For documentation, see https://www.unicode.org/reports/tr44/
#
# Default Grapheme_Cluster_Break Test
#
# Format:
# <string> (# <comment>)?
# <string> contains hex Unicode code points, with
# ÷ wherever there is a break opportunity, and
# × wherever there is not.
# <comment> the format can change, but currently it shows:
# - the sample character name
# - (x) the Grapheme_Cluster_Break property value for the sample character and
# any other properties relevant to the algorithm, as described in
# GraphemeBreakTest.html
# - [x] the rule that determines whether there is a break or not,
# as listed in the Rules section of GraphemeBreakTest.html
#
# These samples may be extended or changed in the future.
#
÷ 000D ÷ 000D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 000D × 000A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) × [3.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 000D ÷ 0000 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <NULL> (Control) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 0000 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 000D ÷ 094D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 000D ÷ 0308 × 094D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 000D ÷ 0300 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 000D ÷ 0308 × 0300 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 000D ÷ 200C ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 000D ÷ 0308 × 200C ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 000D ÷ 200D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 000D ÷ 0308 × 200D ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 000D ÷ 1F1E6 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 000D ÷ 06DD ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 06DD ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 000D ÷ 0903 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 000D ÷ 0308 × 0903 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 000D ÷ 1100 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 000D ÷ 1160 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 000D ÷ 11A8 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 000D ÷ AC00 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 000D ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 000D ÷ AC01 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 000D ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 000D ÷ 0915 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 0915 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 000D ÷ 00A9 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 00A9 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 000D ÷ 0020 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 000D ÷ 0378 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 000D ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 000A ÷ 000D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 000A ÷ 000A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 000A ÷ 0000 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <NULL> (Control) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 0000 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 000A ÷ 094D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 000A ÷ 0308 × 094D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 000A ÷ 0300 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 000A ÷ 0308 × 0300 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 000A ÷ 200C ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 000A ÷ 0308 × 200C ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 000A ÷ 200D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 000A ÷ 0308 × 200D ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 000A ÷ 1F1E6 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 000A ÷ 06DD ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 06DD ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 000A ÷ 0903 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 000A ÷ 0308 × 0903 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 000A ÷ 1100 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 000A ÷ 1160 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 000A ÷ 11A8 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 000A ÷ AC00 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 000A ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 000A ÷ AC01 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 000A ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 000A ÷ 0915 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 0915 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 000A ÷ 00A9 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 00A9 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 000A ÷ 0020 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 000A ÷ 0378 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 000A ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0000 ÷ 000D ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 000D ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0000 ÷ 000A ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 000A ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0000 ÷ 0000 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] <NULL> (Control) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 0000 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0000 ÷ 094D ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0000 ÷ 0308 × 094D ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0000 ÷ 0300 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0000 ÷ 0308 × 0300 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0000 ÷ 200C ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0000 ÷ 0308 × 200C ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0000 ÷ 200D ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0000 ÷ 0308 × 200D ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0000 ÷ 1F1E6 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0000 ÷ 06DD ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 06DD ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0000 ÷ 0903 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0000 ÷ 0308 × 0903 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0000 ÷ 1100 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0000 ÷ 1160 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0000 ÷ 11A8 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0000 ÷ AC00 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0000 ÷ AC01 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0000 ÷ 0915 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 0915 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0000 ÷ 00A9 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 00A9 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0000 ÷ 0020 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0000 ÷ 0378 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0000 ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] <NULL> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 094D ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 094D × 0308 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 094D ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 094D × 0308 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 094D ÷ 0000 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 094D × 0308 ÷ 0000 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 094D × 094D ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 094D × 0308 × 094D ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 094D × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 094D × 0308 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 094D × 200C ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 094D × 0308 × 200C ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 094D × 200D ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 094D × 0308 × 200D ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 094D ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 094D × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 094D ÷ 06DD ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 094D × 0308 ÷ 06DD ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 094D × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 094D × 0308 × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 094D ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 094D × 0308 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 094D ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 094D × 0308 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 094D ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 094D × 0308 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 094D ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 094D × 0308 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 094D ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 094D × 0308 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 094D ÷ 0915 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 094D × 0308 ÷ 0915 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 094D ÷ 00A9 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 094D × 0308 ÷ 00A9 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 094D ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 094D × 0308 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 094D ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 094D × 0308 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0300 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0300 × 0308 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0300 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0300 × 0308 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0300 ÷ 0000 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0300 × 0308 ÷ 0000 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0300 × 094D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0300 × 0308 × 094D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0300 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0300 × 0308 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0300 × 200C ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0300 × 0308 × 200C ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0300 × 200D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0300 × 0308 × 200D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0300 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0300 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0300 ÷ 06DD ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0300 × 0308 ÷ 06DD ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0300 × 0903 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0300 × 0308 × 0903 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0300 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0300 × 0308 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0300 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0300 × 0308 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0300 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0300 × 0308 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0300 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0300 × 0308 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0300 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0300 × 0308 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0300 ÷ 0915 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0300 × 0308 ÷ 0915 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0300 ÷ 00A9 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0300 × 0308 ÷ 00A9 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0300 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0300 × 0308 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0300 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0300 × 0308 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 200C ÷ 000D ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 200C × 0308 ÷ 000D ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 200C ÷ 000A ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 200C × 0308 ÷ 000A ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 200C ÷ 0000 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 200C × 0308 ÷ 0000 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 200C × 094D ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 200C × 0308 × 094D ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 200C × 0300 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 200C × 0308 × 0300 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 200C × 200C ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 200C × 0308 × 200C ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 200C × 200D ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 200C × 0308 × 200D ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 200C ÷ 1F1E6 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 200C × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 200C ÷ 06DD ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 200C × 0308 ÷ 06DD ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 200C × 0903 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 200C × 0308 × 0903 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 200C ÷ 1100 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 200C × 0308 ÷ 1100 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 200C ÷ 1160 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 200C × 0308 ÷ 1160 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 200C ÷ 11A8 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 200C × 0308 ÷ 11A8 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 200C ÷ AC00 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 200C × 0308 ÷ AC00 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 200C ÷ AC01 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 200C × 0308 ÷ AC01 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 200C ÷ 0915 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 200C × 0308 ÷ 0915 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 200C ÷ 00A9 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 200C × 0308 ÷ 00A9 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 200C ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 200C × 0308 ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 200C ÷ 0378 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 200C × 0308 ÷ 0378 ÷ # ÷ [0.2] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 200D ÷ 000D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 200D × 0308 ÷ 000D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 200D ÷ 000A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 200D × 0308 ÷ 000A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 200D ÷ 0000 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 200D × 0308 ÷ 0000 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 200D × 094D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 200D × 0308 × 094D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 200D × 0300 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 200D × 0308 × 0300 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 200D × 200C ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 200D × 0308 × 200C ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 200D × 200D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 200D × 0308 × 200D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 200D ÷ 1F1E6 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 200D × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 200D ÷ 06DD ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 200D × 0308 ÷ 06DD ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 200D × 0903 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 200D × 0308 × 0903 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 200D ÷ 1100 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 200D × 0308 ÷ 1100 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 200D ÷ 1160 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 200D × 0308 ÷ 1160 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 200D ÷ 11A8 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 200D × 0308 ÷ 11A8 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 200D ÷ AC00 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 200D × 0308 ÷ AC00 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 200D ÷ AC01 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 200D × 0308 ÷ AC01 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 200D ÷ 0915 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 200D × 0308 ÷ 0915 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 200D ÷ 00A9 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 200D × 0308 ÷ 00A9 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 200D ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 200D × 0308 ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 200D ÷ 0378 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 200D × 0308 ÷ 0378 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1F1E6 ÷ 000D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 000D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 1F1E6 ÷ 000A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 000A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 1F1E6 ÷ 0000 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 0000 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 1F1E6 × 094D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 1F1E6 × 0308 × 094D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 1F1E6 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 1F1E6 × 0308 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 1F1E6 × 200C ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 1F1E6 × 0308 × 200C ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 1F1E6 × 200D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 1F1E6 × 0308 × 200D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 1F1E6 × 1F1E6 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [12.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 1F1E6 ÷ 06DD ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 06DD ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 1F1E6 × 0903 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 1F1E6 × 0308 × 0903 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 1F1E6 ÷ 1100 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 1100 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 1F1E6 ÷ 1160 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 1160 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 1F1E6 ÷ 11A8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 11A8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 1F1E6 ÷ AC00 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ AC00 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 1F1E6 ÷ AC01 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ AC01 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 1F1E6 ÷ 0915 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 0915 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 1F1E6 ÷ 00A9 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 00A9 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 1F1E6 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1F1E6 ÷ 0378 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1F1E6 × 0308 ÷ 0378 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 06DD ÷ 000D ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 06DD × 0308 ÷ 000D ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 06DD ÷ 000A ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 06DD × 0308 ÷ 000A ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 06DD ÷ 0000 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 06DD × 0308 ÷ 0000 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 06DD × 094D ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 06DD × 0308 × 094D ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 06DD × 0300 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 06DD × 0308 × 0300 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 06DD × 200C ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 06DD × 0308 × 200C ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 06DD × 200D ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 06DD × 0308 × 200D ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 06DD × 1F1E6 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 06DD × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 06DD × 06DD ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 06DD × 0308 ÷ 06DD ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 06DD × 0903 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 06DD × 0308 × 0903 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 06DD × 1100 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 06DD × 0308 ÷ 1100 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 06DD × 1160 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 06DD × 0308 ÷ 1160 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 06DD × 11A8 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 06DD × 0308 ÷ 11A8 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 06DD × AC00 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 06DD × 0308 ÷ AC00 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 06DD × AC01 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 06DD × 0308 ÷ AC01 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 06DD × 0915 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 06DD × 0308 ÷ 0915 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 06DD × 00A9 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 06DD × 0308 ÷ 00A9 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 06DD × 0020 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 06DD × 0308 ÷ 0020 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 06DD × 0378 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 06DD × 0308 ÷ 0378 ÷ # ÷ [0.2] ARABIC END OF AYAH (Prepend) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0903 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0903 × 0308 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0903 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0903 × 0308 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0903 ÷ 0000 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0903 × 0308 ÷ 0000 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0903 × 094D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0903 × 0308 × 094D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0903 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0903 × 0308 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0903 × 200C ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0903 × 0308 × 200C ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0903 × 200D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0903 × 0308 × 200D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0903 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0903 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0903 ÷ 06DD ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0903 × 0308 ÷ 06DD ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0903 × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0903 × 0308 × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0903 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0903 × 0308 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0903 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0903 × 0308 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0903 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0903 × 0308 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0903 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0903 × 0308 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0903 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0903 × 0308 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0903 ÷ 0915 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0903 × 0308 ÷ 0915 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0903 ÷ 00A9 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0903 × 0308 ÷ 00A9 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0903 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0903 × 0308 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0903 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0903 × 0308 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1100 ÷ 000D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 1100 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 1100 ÷ 000A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 1100 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 1100 ÷ 0000 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 1100 × 0308 ÷ 0000 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 1100 × 094D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 1100 × 0308 × 094D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 1100 × 0300 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 1100 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 1100 × 200C ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 1100 × 0308 × 200C ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 1100 × 200D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 1100 × 0308 × 200D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 1100 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 1100 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 1100 ÷ 06DD ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 1100 × 0308 ÷ 06DD ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 1100 × 0903 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 1100 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 1100 × 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 1100 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 1100 × 1160 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 1100 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 1100 ÷ 11A8 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 1100 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 1100 × AC00 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 1100 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 1100 × AC01 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 1100 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 1100 ÷ 0915 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 1100 × 0308 ÷ 0915 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 1100 ÷ 00A9 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 1100 × 0308 ÷ 00A9 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 1100 ÷ 0020 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1100 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1100 ÷ 0378 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1100 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1160 ÷ 000D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 1160 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 1160 ÷ 000A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 1160 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 1160 ÷ 0000 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 1160 × 0308 ÷ 0000 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 1160 × 094D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 1160 × 0308 × 094D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 1160 × 0300 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 1160 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 1160 × 200C ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 1160 × 0308 × 200C ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 1160 × 200D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 1160 × 0308 × 200D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 1160 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 1160 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 1160 ÷ 06DD ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 1160 × 0308 ÷ 06DD ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 1160 × 0903 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 1160 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 1160 ÷ 1100 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 1160 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 1160 × 1160 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [7.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 1160 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 1160 × 11A8 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 1160 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 1160 ÷ AC00 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 1160 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 1160 ÷ AC01 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 1160 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 1160 ÷ 0915 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 1160 × 0308 ÷ 0915 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 1160 ÷ 00A9 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 1160 × 0308 ÷ 00A9 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 1160 ÷ 0020 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1160 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1160 ÷ 0378 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1160 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 11A8 ÷ 000D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 11A8 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 11A8 ÷ 000A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 11A8 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 11A8 ÷ 0000 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 11A8 × 0308 ÷ 0000 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 11A8 × 094D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 11A8 × 0308 × 094D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 11A8 × 0300 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 11A8 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 11A8 × 200C ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 11A8 × 0308 × 200C ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 11A8 × 200D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 11A8 × 0308 × 200D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 11A8 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 11A8 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 11A8 ÷ 06DD ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 11A8 × 0308 ÷ 06DD ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 11A8 × 0903 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 11A8 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 11A8 ÷ 1100 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 11A8 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 11A8 ÷ 1160 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 11A8 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 11A8 × 11A8 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 11A8 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 11A8 ÷ AC00 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 11A8 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 11A8 ÷ AC01 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 11A8 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 11A8 ÷ 0915 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 11A8 × 0308 ÷ 0915 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 11A8 ÷ 00A9 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 11A8 × 0308 ÷ 00A9 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 11A8 ÷ 0020 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 11A8 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 11A8 ÷ 0378 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 11A8 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ AC00 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ AC00 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ AC00 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ AC00 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ AC00 ÷ 0000 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ AC00 × 0308 ÷ 0000 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ AC00 × 094D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ AC00 × 0308 × 094D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ AC00 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ AC00 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ AC00 × 200C ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ AC00 × 0308 × 200C ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ AC00 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ AC00 × 0308 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ AC00 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ AC00 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ AC00 ÷ 06DD ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ AC00 × 0308 ÷ 06DD ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ AC00 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ AC00 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ AC00 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ AC00 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ AC00 × 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ AC00 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ AC00 × 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ AC00 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ AC00 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ AC00 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ AC00 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ AC00 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ AC00 ÷ 0915 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ AC00 × 0308 ÷ 0915 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ AC00 ÷ 00A9 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ AC00 × 0308 ÷ 00A9 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ AC00 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ AC00 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ AC00 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ AC00 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ AC01 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ AC01 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ AC01 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ AC01 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ AC01 ÷ 0000 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ AC01 × 0308 ÷ 0000 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ AC01 × 094D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ AC01 × 0308 × 094D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ AC01 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ AC01 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ AC01 × 200C ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ AC01 × 0308 × 200C ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ AC01 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ AC01 × 0308 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ AC01 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ AC01 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ AC01 ÷ 06DD ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ AC01 × 0308 ÷ 06DD ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ AC01 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ AC01 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ AC01 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ AC01 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ AC01 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ AC01 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ AC01 × 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ AC01 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ AC01 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ AC01 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ AC01 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ AC01 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ AC01 ÷ 0915 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ AC01 × 0308 ÷ 0915 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ AC01 ÷ 00A9 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ AC01 × 0308 ÷ 00A9 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ AC01 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ AC01 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ AC01 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ AC01 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0915 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0915 × 0308 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0915 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0915 × 0308 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0915 ÷ 0000 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0915 × 0308 ÷ 0000 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0915 × 094D ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0915 × 0308 × 094D ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0915 × 0300 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0915 × 0308 × 0300 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0915 × 200C ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0915 × 0308 × 200C ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0915 × 200D ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0915 × 0308 × 200D ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0915 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0915 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0915 ÷ 06DD ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0915 × 0308 ÷ 06DD ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0915 × 0903 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0915 × 0308 × 0903 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0915 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0915 × 0308 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0915 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0915 × 0308 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0915 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0915 × 0308 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0915 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0915 × 0308 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0915 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0915 × 0308 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0915 ÷ 0915 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0915 × 0308 ÷ 0915 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0915 ÷ 00A9 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0915 × 0308 ÷ 00A9 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0915 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0915 × 0308 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0915 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0915 × 0308 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 00A9 ÷ 000D ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 00A9 × 0308 ÷ 000D ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 00A9 ÷ 000A ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 00A9 × 0308 ÷ 000A ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 00A9 ÷ 0000 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 00A9 × 0308 ÷ 0000 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 00A9 × 094D ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 00A9 × 0308 × 094D ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 00A9 × 0300 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 00A9 × 0308 × 0300 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 00A9 × 200C ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 00A9 × 0308 × 200C ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 00A9 × 200D ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 00A9 × 0308 × 200D ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 00A9 ÷ 1F1E6 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 00A9 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 00A9 ÷ 06DD ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 00A9 × 0308 ÷ 06DD ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 00A9 × 0903 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 00A9 × 0308 × 0903 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 00A9 ÷ 1100 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 00A9 × 0308 ÷ 1100 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 00A9 ÷ 1160 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 00A9 × 0308 ÷ 1160 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 00A9 ÷ 11A8 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 00A9 × 0308 ÷ 11A8 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 00A9 ÷ AC00 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 00A9 × 0308 ÷ AC00 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 00A9 ÷ AC01 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 00A9 × 0308 ÷ AC01 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 00A9 ÷ 0915 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 00A9 × 0308 ÷ 0915 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 00A9 ÷ 00A9 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 00A9 × 0308 ÷ 00A9 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 00A9 ÷ 0020 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 00A9 × 0308 ÷ 0020 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 00A9 ÷ 0378 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 00A9 × 0308 ÷ 0378 ÷ # ÷ [0.2] COPYRIGHT SIGN (ExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0020 ÷ 000D ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0020 × 0308 ÷ 000D ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0020 ÷ 000A ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0020 × 0308 ÷ 000A ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0020 ÷ 0000 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0020 × 0308 ÷ 0000 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0020 × 094D ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0020 × 0308 × 094D ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0020 × 0300 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0020 × 0308 × 0300 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0020 × 200C ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0020 × 0308 × 200C ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0020 × 200D ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0020 × 0308 × 200D ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0020 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0020 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0020 ÷ 06DD ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0020 × 0308 ÷ 06DD ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0020 × 0903 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0020 × 0308 × 0903 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0020 ÷ 1100 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0020 × 0308 ÷ 1100 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0020 ÷ 1160 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0020 × 0308 ÷ 1160 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0020 ÷ 11A8 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0020 × 0308 ÷ 11A8 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0020 ÷ AC00 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0020 × 0308 ÷ AC00 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0020 ÷ AC01 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0020 × 0308 ÷ AC01 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0020 ÷ 0915 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0020 × 0308 ÷ 0915 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0020 ÷ 00A9 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0020 × 0308 ÷ 00A9 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0020 ÷ 0020 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0020 × 0308 ÷ 0020 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0020 ÷ 0378 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0020 × 0308 ÷ 0378 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0378 ÷ 000D ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0378 × 0308 ÷ 000D ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
÷ 0378 ÷ 000A ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0378 × 0308 ÷ 000A ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
÷ 0378 ÷ 0000 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0378 × 0308 ÷ 0000 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [5.0] <NULL> (Control) ÷ [0.3]
÷ 0378 × 094D ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0378 × 0308 × 094D ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [0.3]
÷ 0378 × 0300 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0378 × 0308 × 0300 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING GRAVE ACCENT (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0378 × 200C ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0378 × 0308 × 200C ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH NON-JOINER (ExtendmConjunctLinkermConjunctExtender) ÷ [0.3]
÷ 0378 × 200D ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0378 × 0308 × 200D ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0378 ÷ 1F1E6 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0378 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3]
÷ 0378 ÷ 06DD ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0378 × 0308 ÷ 06DD ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] ARABIC END OF AYAH (Prepend) ÷ [0.3]
÷ 0378 × 0903 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0378 × 0308 × 0903 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
÷ 0378 ÷ 1100 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0378 × 0308 ÷ 1100 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 0378 ÷ 1160 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0378 × 0308 ÷ 1160 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
÷ 0378 ÷ 11A8 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0378 × 0308 ÷ 11A8 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
÷ 0378 ÷ AC00 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0378 × 0308 ÷ AC00 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
÷ 0378 ÷ AC01 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0378 × 0308 ÷ AC01 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
÷ 0378 ÷ 0915 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0378 × 0308 ÷ 0915 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 0378 ÷ 00A9 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0378 × 0308 ÷ 00A9 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] COPYRIGHT SIGN (ExtPict) ÷ [0.3]
÷ 0378 ÷ 0020 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0378 × 0308 ÷ 0020 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0378 ÷ 0378 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0378 × 0308 ÷ 0378 ÷ # ÷ [0.2] <reserved-0378> (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] <reserved-0378> (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 000D × 000A ÷ 0061 ÷ 000A ÷ 0308 ÷ # ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) × [3.0] <LINE FEED (LF)> (LF) ÷ [4.0] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0061 × 0308 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 0020 × 200D ÷ 0646 ÷ # ÷ [0.2] SPACE (XXmLinkingConsonantmExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] ARABIC LETTER NOON (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0646 × 200D ÷ 0020 ÷ # ÷ [0.2] ARABIC LETTER NOON (XXmLinkingConsonantmExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] SPACE (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1100 × 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ AC00 × 11A8 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ AC01 × 11A8 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
÷ 1F1E6 × 1F1E7 ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [12.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0061 ÷ 1F1E6 × 1F1E7 ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0061 ÷ 1F1E6 × 1F1E7 × 200D ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0061 ÷ 1F1E6 × 200D ÷ 1F1E7 × 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0061 ÷ 1F1E6 × 1F1E7 ÷ 1F1E8 × 1F1E9 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER D (RI) ÷ [999.0] LATIN SMALL LETTER B (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0061 × 200D ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3]
÷ 0061 × 0308 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] LATIN SMALL LETTER B (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0061 × 0903 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] LATIN SMALL LETTER B (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0061 ÷ 0600 × 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) × [9.2] LATIN SMALL LETTER B (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 1F476 × 1F3FF ÷ 1F476 ÷ # ÷ [0.2] BABY (ExtPict) × [9.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] BABY (ExtPict) ÷ [0.3]
÷ 0061 × 1F3FF ÷ 1F476 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) × [9.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] BABY (ExtPict) ÷ [0.3]
÷ 0061 × 1F3FF ÷ 1F476 × 200D × 1F6D1 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) × [9.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] BABY (ExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) × [11.0] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
÷ 1F476 × 1F3FF × 0308 × 200D × 1F476 × 1F3FF ÷ # ÷ [0.2] BABY (ExtPict) × [9.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend_ConjunctExtendermConjunctLinker) × [9.0] COMBINING DIAERESIS (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) × [11.0] BABY (ExtPict) × [9.0] EMOJI MODIFIER FITZPATRICK TYPE-6 (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 1F6D1 × 200D × 1F6D1 ÷ # ÷ [0.2] OCTAGONAL SIGN (ExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) × [11.0] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
÷ 0061 × 200D ÷ 1F6D1 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] OCTAGONAL SIGN (ExtPict) ÷ [0.3]
÷ 2701 × 200D ÷ 2701 ÷ # ÷ [0.2] UPPER BLADE SCISSORS (XXmLinkingConsonantmExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] UPPER BLADE SCISSORS (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0061 × 200D ÷ 2701 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] UPPER BLADE SCISSORS (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0915 ÷ 0924 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) ÷ [999.0] DEVANAGARI LETTER TA (LinkingConsonant) ÷ [0.3]
÷ 0915 × 094D × 0924 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.3] DEVANAGARI LETTER TA (LinkingConsonant) ÷ [0.3]
÷ 0915 × 094D × 094D × 0924 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.3] DEVANAGARI LETTER TA (LinkingConsonant) ÷ [0.3]
÷ 0915 × 094D × 200D × 0924 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) × [9.3] DEVANAGARI LETTER TA (LinkingConsonant) ÷ [0.3]
÷ 0915 × 093C × 200D × 094D × 0924 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] DEVANAGARI SIGN NUKTA (Extend_ConjunctExtendermConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.3] DEVANAGARI LETTER TA (LinkingConsonant) ÷ [0.3]
÷ 0915 × 093C × 094D × 200D × 0924 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] DEVANAGARI SIGN NUKTA (Extend_ConjunctExtendermConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] ZERO WIDTH JOINER (ZWJ) × [9.3] DEVANAGARI LETTER TA (LinkingConsonant) ÷ [0.3]
÷ 0915 × 094D × 0924 × 094D × 092F ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.3] DEVANAGARI LETTER TA (LinkingConsonant) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.3] DEVANAGARI LETTER YA (LinkingConsonant) ÷ [0.3]
÷ 0915 × 094D ÷ 0061 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) ÷ [0.3]
÷ 0061 × 094D ÷ 0924 ÷ # ÷ [0.2] LATIN SMALL LETTER A (XXmLinkingConsonantmExtPict) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] DEVANAGARI LETTER TA (LinkingConsonant) ÷ [0.3]
÷ 003F × 094D ÷ 0924 ÷ # ÷ [0.2] QUESTION MARK (XXmLinkingConsonantmExtPict) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) ÷ [999.0] DEVANAGARI LETTER TA (LinkingConsonant) ÷ [0.3]
÷ 0915 × 094D × 094D × 0924 ÷ # ÷ [0.2] DEVANAGARI LETTER KA (LinkingConsonant) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.0] DEVANAGARI SIGN VIRAMA (Extend_ConjunctLinker) × [9.3] DEVANAGARI LETTER TA (LinkingConsonant) ÷ [0.3]
÷ 0AB8 × 0AFB × 0ACD × 0AB8 × 0AFB ÷ # ÷ [0.2] GUJARATI LETTER SA (LinkingConsonant) × [9.0] GUJARATI SIGN SHADDA (Extend_ConjunctExtendermConjunctLinker) × [9.0] GUJARATI SIGN VIRAMA (Extend_ConjunctLinker) × [9.3] GUJARATI LETTER SA (LinkingConsonant) × [9.0] GUJARATI SIGN SHADDA (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 1019 × 1039 × 1018 ÷ 102C × 1037 ÷ # ÷ [0.2] MYANMAR LETTER MA (LinkingConsonant) × [9.0] MYANMAR SIGN VIRAMA (Extend_ConjunctLinker) × [9.3] MYANMAR LETTER BHA (LinkingConsonant) ÷ [999.0] MYANMAR VOWEL SIGN AA (XXmLinkingConsonantmExtPict) × [9.0] MYANMAR SIGN DOT BELOW (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 1004 × 103A × 1039 × 1011 × 1039 × 1011 ÷ # ÷ [0.2] MYANMAR LETTER NGA (LinkingConsonant) × [9.0] MYANMAR SIGN ASAT (Extend_ConjunctExtendermConjunctLinker) × [9.0] MYANMAR SIGN VIRAMA (Extend_ConjunctLinker) × [9.3] MYANMAR LETTER THA (LinkingConsonant) × [9.0] MYANMAR SIGN VIRAMA (Extend_ConjunctLinker) × [9.3] MYANMAR LETTER THA (LinkingConsonant) ÷ [0.3]
÷ 1B12 × 1B01 ÷ 1B32 × 1B44 × 1B2F ÷ 1B32 × 1B44 × 1B22 × 1B44 × 1B2C ÷ 1B32 × 1B44 × 1B22 × 1B38 ÷ # ÷ [0.2] BALINESE LETTER OKARA TEDUNG (XXmLinkingConsonantmExtPict) × [9.0] BALINESE SIGN ULU CANDRA (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] BALINESE LETTER SA (LinkingConsonant) × [9.0] BALINESE ADEG ADEG (Extend_ConjunctLinker) × [9.3] BALINESE LETTER WA (LinkingConsonant) ÷ [999.0] BALINESE LETTER SA (LinkingConsonant) × [9.0] BALINESE ADEG ADEG (Extend_ConjunctLinker) × [9.3] BALINESE LETTER TA (LinkingConsonant) × [9.0] BALINESE ADEG ADEG (Extend_ConjunctLinker) × [9.3] BALINESE LETTER YA (LinkingConsonant) ÷ [999.0] BALINESE LETTER SA (LinkingConsonant) × [9.0] BALINESE ADEG ADEG (Extend_ConjunctLinker) × [9.3] BALINESE LETTER TA (LinkingConsonant) × [9.0] BALINESE VOWEL SIGN SUKU (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 179F × 17D2 × 178F × 17D2 × 179A × 17B8 ÷ # ÷ [0.2] KHMER LETTER SA (LinkingConsonant) × [9.0] KHMER SIGN COENG (Extend_ConjunctLinker) × [9.3] KHMER LETTER TA (LinkingConsonant) × [9.0] KHMER SIGN COENG (Extend_ConjunctLinker) × [9.3] KHMER LETTER RO (LinkingConsonant) × [9.0] KHMER VOWEL SIGN II (Extend_ConjunctExtendermConjunctLinker) ÷ [0.3]
÷ 1B26 ÷ 1B17 × 1B44 × 1B13 ÷ # ÷ [0.2] BALINESE LETTER NA (LinkingConsonant) ÷ [999.0] BALINESE LETTER NGA (LinkingConsonant) × [9.0] BALINESE ADEG ADEG (Extend_ConjunctLinker) × [9.3] BALINESE LETTER KA (LinkingConsonant) ÷ [0.3]
÷ 1B27 ÷ 1B13 × 1B44 × 1B0B ÷ 1B0B × 1B04 ÷ # ÷ [0.2] BALINESE LETTER PA (LinkingConsonant) ÷ [999.0] BALINESE LETTER KA (LinkingConsonant) × [9.0] BALINESE ADEG ADEG (Extend_ConjunctLinker) × [9.3] BALINESE LETTER RA REPA (LinkingConsonant) ÷ [999.0] BALINESE LETTER RA REPA (LinkingConsonant) × [9.1] BALINESE SIGN BISAH (SpacingMark) ÷ [0.3]
÷ 1795 × 17D2 × 17AF ÷ 1798 ÷ # ÷ [0.2] KHMER LETTER PHA (LinkingConsonant) × [9.0] KHMER SIGN COENG (Extend_ConjunctLinker) × [9.3] KHMER INDEPENDENT VOWEL QE (LinkingConsonant) ÷ [999.0] KHMER LETTER MO (LinkingConsonant) ÷ [0.3]
÷ 17A0 × 17D2 × 17AB ÷ 1791 × 17D0 ÷ 1799 ÷ # ÷ [0.2] KHMER LETTER HA (LinkingConsonant) × [9.0] KHMER SIGN COENG (Extend_ConjunctLinker) × [9.3] KHMER INDEPENDENT VOWEL RY (LinkingConsonant) ÷ [999.0] KHMER LETTER TO (LinkingConsonant) × [9.0] KHMER SIGN SAMYOK SANNYA (Extend_ConjunctExtendermConjunctLinker) ÷ [999.0] KHMER LETTER YO (LinkingConsonant) ÷ [0.3]
#
# Lines: 766
#
# EOF
@@ -0,0 +1,1288 @@
# emoji-data.txt
# Date: 2025-07-25, 17:54:31 GMT
# © 2025 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Emoji Data for UTS #51
# Version: 17.0
#
# For documentation and usage, see https://www.unicode.org/reports/tr51
#
# Format:
# <codepoint(s)> ; <property> # <comments>
# Note: there is no guarantee as to the structure of whitespace or comments
#
# Characters and sequences are listed in code point order. Users should be shown a more natural order.
# See the CLDR collation order for Emoji.
# ================================================
# All omitted code points have Emoji=No
0023 ; Emoji # E0.0 [1] (#️) hash sign
002A ; Emoji # E0.0 [1] (*️) asterisk
0030..0039 ; Emoji # E0.0 [10] (0️..9️) digit zero..digit nine
00A9 ; Emoji # E0.6 [1] (©️) copyright
00AE ; Emoji # E0.6 [1] (®️) registered
203C ; Emoji # E0.6 [1] (‼️) double exclamation mark
2049 ; Emoji # E0.6 [1] (⁉️) exclamation question mark
2122 ; Emoji # E0.6 [1] (™️) trade mark
2139 ; Emoji # E0.6 [1] (ℹ️) information
2194..2199 ; Emoji # E0.6 [6] (↔️..↙️) left-right arrow..down-left arrow
21A9..21AA ; Emoji # E0.6 [2] (↩️..↪️) right arrow curving left..left arrow curving right
231A..231B ; Emoji # E0.6 [2] (⌚..⌛) watch..hourglass done
2328 ; Emoji # E1.0 [1] (⌨️) keyboard
23CF ; Emoji # E1.0 [1] (⏏️) eject button
23E9..23EC ; Emoji # E0.6 [4] (⏩..⏬) fast-forward button..fast down button
23ED..23EE ; Emoji # E0.7 [2] (⏭️..⏮️) next track button..last track button
23EF ; Emoji # E1.0 [1] (⏯️) play or pause button
23F0 ; Emoji # E0.6 [1] (⏰) alarm clock
23F1..23F2 ; Emoji # E1.0 [2] (⏱️..⏲️) stopwatch..timer clock
23F3 ; Emoji # E0.6 [1] (⏳) hourglass not done
23F8..23FA ; Emoji # E0.7 [3] (⏸️..⏺️) pause button..record button
24C2 ; Emoji # E0.6 [1] (Ⓜ️) circled M
25AA..25AB ; Emoji # E0.6 [2] (▪️..▫️) black small square..white small square
25B6 ; Emoji # E0.6 [1] (▶️) play button
25C0 ; Emoji # E0.6 [1] (◀️) reverse button
25FB..25FE ; Emoji # E0.6 [4] (◻️..◾) white medium square..black medium-small square
2600..2601 ; Emoji # E0.6 [2] (☀️..☁️) sun..cloud
2602..2603 ; Emoji # E0.7 [2] (☂️..☃️) umbrella..snowman
2604 ; Emoji # E1.0 [1] (☄️) comet
260E ; Emoji # E0.6 [1] (☎️) telephone
2611 ; Emoji # E0.6 [1] (☑️) check box with check
2614..2615 ; Emoji # E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage
2618 ; Emoji # E1.0 [1] (☘️) shamrock
261D ; Emoji # E0.6 [1] (☝️) index pointing up
2620 ; Emoji # E1.0 [1] (☠️) skull and crossbones
2622..2623 ; Emoji # E1.0 [2] (☢️..☣️) radioactive..biohazard
2626 ; Emoji # E1.0 [1] (☦️) orthodox cross
262A ; Emoji # E0.7 [1] (☪️) star and crescent
262E ; Emoji # E1.0 [1] (☮️) peace symbol
262F ; Emoji # E0.7 [1] (☯️) yin yang
2638..2639 ; Emoji # E0.7 [2] (☸️..☹️) wheel of dharma..frowning face
263A ; Emoji # E0.6 [1] (☺️) smiling face
2640 ; Emoji # E4.0 [1] (♀️) female sign
2642 ; Emoji # E4.0 [1] (♂️) male sign
2648..2653 ; Emoji # E0.6 [12] (♈..♓) Aries..Pisces
265F ; Emoji # E11.0 [1] (♟️) chess pawn
2660 ; Emoji # E0.6 [1] (♠️) spade suit
2663 ; Emoji # E0.6 [1] (♣️) club suit
2665..2666 ; Emoji # E0.6 [2] (♥️..♦️) heart suit..diamond suit
2668 ; Emoji # E0.6 [1] (♨️) hot springs
267B ; Emoji # E0.6 [1] (♻️) recycling symbol
267E ; Emoji # E11.0 [1] (♾️) infinity
267F ; Emoji # E0.6 [1] (♿) wheelchair symbol
2692 ; Emoji # E1.0 [1] (⚒️) hammer and pick
2693 ; Emoji # E0.6 [1] (⚓) anchor
2694 ; Emoji # E1.0 [1] (⚔️) crossed swords
2695 ; Emoji # E4.0 [1] (⚕️) medical symbol
2696..2697 ; Emoji # E1.0 [2] (⚖️..⚗️) balance scale..alembic
2699 ; Emoji # E1.0 [1] (⚙️) gear
269B..269C ; Emoji # E1.0 [2] (⚛️..⚜️) atom symbol..fleur-de-lis
26A0..26A1 ; Emoji # E0.6 [2] (⚠️..⚡) warning..high voltage
26A7 ; Emoji # E13.0 [1] (⚧️) transgender symbol
26AA..26AB ; Emoji # E0.6 [2] (⚪..⚫) white circle..black circle
26B0..26B1 ; Emoji # E1.0 [2] (⚰️..⚱️) coffin..funeral urn
26BD..26BE ; Emoji # E0.6 [2] (⚽..⚾) soccer ball..baseball
26C4..26C5 ; Emoji # E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud
26C8 ; Emoji # E0.7 [1] (⛈️) cloud with lightning and rain
26CE ; Emoji # E0.6 [1] (⛎) Ophiuchus
26CF ; Emoji # E0.7 [1] (⛏️) pick
26D1 ; Emoji # E0.7 [1] (⛑️) rescue worker’s helmet
26D3 ; Emoji # E0.7 [1] (⛓️) chains
26D4 ; Emoji # E0.6 [1] (⛔) no entry
26E9 ; Emoji # E0.7 [1] (⛩️) shinto shrine
26EA ; Emoji # E0.6 [1] (⛪) church
26F0..26F1 ; Emoji # E0.7 [2] (⛰️..⛱️) mountain..umbrella on ground
26F2..26F3 ; Emoji # E0.6 [2] (⛲..⛳) fountain..flag in hole
26F4 ; Emoji # E0.7 [1] (⛴️) ferry
26F5 ; Emoji # E0.6 [1] (⛵) sailboat
26F7..26F9 ; Emoji # E0.7 [3] (⛷️..⛹️) skier..person bouncing ball
26FA ; Emoji # E0.6 [1] (⛺) tent
26FD ; Emoji # E0.6 [1] (⛽) fuel pump
2702 ; Emoji # E0.6 [1] (✂️) scissors
2705 ; Emoji # E0.6 [1] (✅) check mark button
2708..270C ; Emoji # E0.6 [5] (✈️..✌️) airplane..victory hand
270D ; Emoji # E0.7 [1] (✍️) writing hand
270F ; Emoji # E0.6 [1] (✏️) pencil
2712 ; Emoji # E0.6 [1] (✒️) black nib
2714 ; Emoji # E0.6 [1] (✔️) check mark
2716 ; Emoji # E0.6 [1] (✖️) multiply
271D ; Emoji # E0.7 [1] (✝️) latin cross
2721 ; Emoji # E0.7 [1] (✡️) star of David
2728 ; Emoji # E0.6 [1] (✨) sparkles
2733..2734 ; Emoji # E0.6 [2] (✳️..✴️) eight-spoked asterisk..eight-pointed star
2744 ; Emoji # E0.6 [1] (❄️) snowflake
2747 ; Emoji # E0.6 [1] (❇️) sparkle
274C ; Emoji # E0.6 [1] (❌) cross mark
274E ; Emoji # E0.6 [1] (❎) cross mark button
2753..2755 ; Emoji # E0.6 [3] (❓..❕) red question mark..white exclamation mark
2757 ; Emoji # E0.6 [1] (❗) red exclamation mark
2763 ; Emoji # E1.0 [1] (❣️) heart exclamation
2764 ; Emoji # E0.6 [1] (❤️) red heart
2795..2797 ; Emoji # E0.6 [3] (➕..➗) plus..divide
27A1 ; Emoji # E0.6 [1] (➡️) right arrow
27B0 ; Emoji # E0.6 [1] (➰) curly loop
27BF ; Emoji # E1.0 [1] (➿) double curly loop
2934..2935 ; Emoji # E0.6 [2] (⤴️..⤵️) right arrow curving up..right arrow curving down
2B05..2B07 ; Emoji # E0.6 [3] (⬅️..⬇️) left arrow..down arrow
2B1B..2B1C ; Emoji # E0.6 [2] (⬛..⬜) black large square..white large square
2B50 ; Emoji # E0.6 [1] (⭐) star
2B55 ; Emoji # E0.6 [1] (⭕) hollow red circle
3030 ; Emoji # E0.6 [1] (〰️) wavy dash
303D ; Emoji # E0.6 [1] (〽️) part alternation mark
3297 ; Emoji # E0.6 [1] (㊗️) Japanese “congratulations” button
3299 ; Emoji # E0.6 [1] (㊙️) Japanese “secret” button
1F004 ; Emoji # E0.6 [1] (🀄) mahjong red dragon
1F0CF ; Emoji # E0.6 [1] (🃏) joker
1F170..1F171 ; Emoji # E0.6 [2] (🅰️..🅱️) A button (blood type)..B button (blood type)
1F17E..1F17F ; Emoji # E0.6 [2] (🅾️..🅿️) O button (blood type)..P button
1F18E ; Emoji # E0.6 [1] (🆎) AB button (blood type)
1F191..1F19A ; Emoji # E0.6 [10] (🆑..🆚) CL button..VS button
1F1E6..1F1FF ; Emoji # E0.0 [26] (🇦..🇿) regional indicator symbol letter a..regional indicator symbol letter z
1F201..1F202 ; Emoji # E0.6 [2] (🈁..🈂️) Japanese “here” button..Japanese “service charge” button
1F21A ; Emoji # E0.6 [1] (🈚) Japanese “free of charge” button
1F22F ; Emoji # E0.6 [1] (🈯) Japanese “reserved” button
1F232..1F23A ; Emoji # E0.6 [9] (🈲..🈺) Japanese “prohibited” button..Japanese “open for business” button
1F250..1F251 ; Emoji # E0.6 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button
1F300..1F30C ; Emoji # E0.6 [13] (🌀..🌌) cyclone..milky way
1F30D..1F30E ; Emoji # E0.7 [2] (🌍..🌎) globe showing Europe-Africa..globe showing Americas
1F30F ; Emoji # E0.6 [1] (🌏) globe showing Asia-Australia
1F310 ; Emoji # E1.0 [1] (🌐) globe with meridians
1F311 ; Emoji # E0.6 [1] (🌑) new moon
1F312 ; Emoji # E1.0 [1] (🌒) waxing crescent moon
1F313..1F315 ; Emoji # E0.6 [3] (🌓..🌕) first quarter moon..full moon
1F316..1F318 ; Emoji # E1.0 [3] (🌖..🌘) waning gibbous moon..waning crescent moon
1F319 ; Emoji # E0.6 [1] (🌙) crescent moon
1F31A ; Emoji # E1.0 [1] (🌚) new moon face
1F31B ; Emoji # E0.6 [1] (🌛) first quarter moon face
1F31C ; Emoji # E0.7 [1] (🌜) last quarter moon face
1F31D..1F31E ; Emoji # E1.0 [2] (🌝..🌞) full moon face..sun with face
1F31F..1F320 ; Emoji # E0.6 [2] (🌟..🌠) glowing star..shooting star
1F321 ; Emoji # E0.7 [1] (🌡️) thermometer
1F324..1F32C ; Emoji # E0.7 [9] (🌤️..🌬️) sun behind small cloud..wind face
1F32D..1F32F ; Emoji # E1.0 [3] (🌭..🌯) hot dog..burrito
1F330..1F331 ; Emoji # E0.6 [2] (🌰..🌱) chestnut..seedling
1F332..1F333 ; Emoji # E1.0 [2] (🌲..🌳) evergreen tree..deciduous tree
1F334..1F335 ; Emoji # E0.6 [2] (🌴..🌵) palm tree..cactus
1F336 ; Emoji # E0.7 [1] (🌶️) hot pepper
1F337..1F34A ; Emoji # E0.6 [20] (🌷..🍊) tulip..tangerine
1F34B ; Emoji # E1.0 [1] (🍋) lemon
1F34C..1F34F ; Emoji # E0.6 [4] (🍌..🍏) banana..green apple
1F350 ; Emoji # E1.0 [1] (🍐) pear
1F351..1F37B ; Emoji # E0.6 [43] (🍑..🍻) peach..clinking beer mugs
1F37C ; Emoji # E1.0 [1] (🍼) baby bottle
1F37D ; Emoji # E0.7 [1] (🍽️) fork and knife with plate
1F37E..1F37F ; Emoji # E1.0 [2] (🍾..🍿) bottle with popping cork..popcorn
1F380..1F393 ; Emoji # E0.6 [20] (🎀..🎓) ribbon..graduation cap
1F396..1F397 ; Emoji # E0.7 [2] (🎖️..🎗️) military medal..reminder ribbon
1F399..1F39B ; Emoji # E0.7 [3] (🎙️..🎛️) studio microphone..control knobs
1F39E..1F39F ; Emoji # E0.7 [2] (🎞️..🎟️) film frames..admission tickets
1F3A0..1F3C4 ; Emoji # E0.6 [37] (🎠..🏄) carousel horse..person surfing
1F3C5 ; Emoji # E1.0 [1] (🏅) sports medal
1F3C6 ; Emoji # E0.6 [1] (🏆) trophy
1F3C7 ; Emoji # E1.0 [1] (🏇) horse racing
1F3C8 ; Emoji # E0.6 [1] (🏈) american football
1F3C9 ; Emoji # E1.0 [1] (🏉) rugby football
1F3CA ; Emoji # E0.6 [1] (🏊) person swimming
1F3CB..1F3CE ; Emoji # E0.7 [4] (🏋️..🏎️) person lifting weights..racing car
1F3CF..1F3D3 ; Emoji # E1.0 [5] (🏏..🏓) cricket game..ping pong
1F3D4..1F3DF ; Emoji # E0.7 [12] (🏔️..🏟️) snow-capped mountain..stadium
1F3E0..1F3E3 ; Emoji # E0.6 [4] (🏠..🏣) house..Japanese post office
1F3E4 ; Emoji # E1.0 [1] (🏤) post office
1F3E5..1F3F0 ; Emoji # E0.6 [12] (🏥..🏰) hospital..castle
1F3F3 ; Emoji # E0.7 [1] (🏳️) white flag
1F3F4 ; Emoji # E1.0 [1] (🏴) black flag
1F3F5 ; Emoji # E0.7 [1] (🏵️) rosette
1F3F7 ; Emoji # E0.7 [1] (🏷️) label
1F3F8..1F407 ; Emoji # E1.0 [16] (🏸..🐇) badminton..rabbit
1F408 ; Emoji # E0.7 [1] (🐈) cat
1F409..1F40B ; Emoji # E1.0 [3] (🐉..🐋) dragon..whale
1F40C..1F40E ; Emoji # E0.6 [3] (🐌..🐎) snail..horse
1F40F..1F410 ; Emoji # E1.0 [2] (🐏..🐐) ram..goat
1F411..1F412 ; Emoji # E0.6 [2] (🐑..🐒) ewe..monkey
1F413 ; Emoji # E1.0 [1] (🐓) rooster
1F414 ; Emoji # E0.6 [1] (🐔) chicken
1F415 ; Emoji # E0.7 [1] (🐕) dog
1F416 ; Emoji # E1.0 [1] (🐖) pig
1F417..1F429 ; Emoji # E0.6 [19] (🐗..🐩) boar..poodle
1F42A ; Emoji # E1.0 [1] (🐪) camel
1F42B..1F43E ; Emoji # E0.6 [20] (🐫..🐾) two-hump camel..paw prints
1F43F ; Emoji # E0.7 [1] (🐿️) chipmunk
1F440 ; Emoji # E0.6 [1] (👀) eyes
1F441 ; Emoji # E0.7 [1] (👁️) eye
1F442..1F464 ; Emoji # E0.6 [35] (👂..👤) ear..bust in silhouette
1F465 ; Emoji # E1.0 [1] (👥) busts in silhouette
1F466..1F46B ; Emoji # E0.6 [6] (👦..👫) boy..woman and man holding hands
1F46C..1F46D ; Emoji # E1.0 [2] (👬..👭) men holding hands..women holding hands
1F46E..1F4AC ; Emoji # E0.6 [63] (👮..💬) police officer..speech balloon
1F4AD ; Emoji # E1.0 [1] (💭) thought balloon
1F4AE..1F4B5 ; Emoji # E0.6 [8] (💮..💵) white flower..dollar banknote
1F4B6..1F4B7 ; Emoji # E1.0 [2] (💶..💷) euro banknote..pound banknote
1F4B8..1F4EB ; Emoji # E0.6 [52] (💸..📫) money with wings..closed mailbox with raised flag
1F4EC..1F4ED ; Emoji # E0.7 [2] (📬..📭) open mailbox with raised flag..open mailbox with lowered flag
1F4EE ; Emoji # E0.6 [1] (📮) postbox
1F4EF ; Emoji # E1.0 [1] (📯) postal horn
1F4F0..1F4F4 ; Emoji # E0.6 [5] (📰..📴) newspaper..mobile phone off
1F4F5 ; Emoji # E1.0 [1] (📵) no mobile phones
1F4F6..1F4F7 ; Emoji # E0.6 [2] (📶..📷) antenna bars..camera
1F4F8 ; Emoji # E1.0 [1] (📸) camera with flash
1F4F9..1F4FC ; Emoji # E0.6 [4] (📹..📼) video camera..videocassette
1F4FD ; Emoji # E0.7 [1] (📽️) film projector
1F4FF..1F502 ; Emoji # E1.0 [4] (📿..🔂) prayer beads..repeat single button
1F503 ; Emoji # E0.6 [1] (🔃) clockwise vertical arrows
1F504..1F507 ; Emoji # E1.0 [4] (🔄..🔇) counterclockwise arrows button..muted speaker
1F508 ; Emoji # E0.7 [1] (🔈) speaker low volume
1F509 ; Emoji # E1.0 [1] (🔉) speaker medium volume
1F50A..1F514 ; Emoji # E0.6 [11] (🔊..🔔) speaker high volume..bell
1F515 ; Emoji # E1.0 [1] (🔕) bell with slash
1F516..1F52B ; Emoji # E0.6 [22] (🔖..🔫) bookmark..water pistol
1F52C..1F52D ; Emoji # E1.0 [2] (🔬..🔭) microscope..telescope
1F52E..1F53D ; Emoji # E0.6 [16] (🔮..🔽) crystal ball..downwards button
1F549..1F54A ; Emoji # E0.7 [2] (🕉️..🕊️) om..dove
1F54B..1F54E ; Emoji # E1.0 [4] (🕋..🕎) kaaba..menorah
1F550..1F55B ; Emoji # E0.6 [12] (🕐..🕛) one o’clock..twelve o’clock
1F55C..1F567 ; Emoji # E0.7 [12] (🕜..🕧) one-thirty..twelve-thirty
1F56F..1F570 ; Emoji # E0.7 [2] (🕯️..🕰️) candle..mantelpiece clock
1F573..1F579 ; Emoji # E0.7 [7] (🕳️..🕹️) hole..joystick
1F57A ; Emoji # E3.0 [1] (🕺) man dancing
1F587 ; Emoji # E0.7 [1] (🖇️) linked paperclips
1F58A..1F58D ; Emoji # E0.7 [4] (🖊️..🖍️) pen..crayon
1F590 ; Emoji # E0.7 [1] (🖐️) hand with fingers splayed
1F595..1F596 ; Emoji # E1.0 [2] (🖕..🖖) middle finger..vulcan salute
1F5A4 ; Emoji # E3.0 [1] (🖤) black heart
1F5A5 ; Emoji # E0.7 [1] (🖥️) desktop computer
1F5A8 ; Emoji # E0.7 [1] (🖨️) printer
1F5B1..1F5B2 ; Emoji # E0.7 [2] (🖱️..🖲️) computer mouse..trackball
1F5BC ; Emoji # E0.7 [1] (🖼️) framed picture
1F5C2..1F5C4 ; Emoji # E0.7 [3] (🗂️..🗄️) card index dividers..file cabinet
1F5D1..1F5D3 ; Emoji # E0.7 [3] (🗑️..🗓️) wastebasket..spiral calendar
1F5DC..1F5DE ; Emoji # E0.7 [3] (🗜️..🗞️) clamp..rolled-up newspaper
1F5E1 ; Emoji # E0.7 [1] (🗡️) dagger
1F5E3 ; Emoji # E0.7 [1] (🗣️) speaking head
1F5E8 ; Emoji # E2.0 [1] (🗨️) left speech bubble
1F5EF ; Emoji # E0.7 [1] (🗯️) right anger bubble
1F5F3 ; Emoji # E0.7 [1] (🗳️) ballot box with ballot
1F5FA ; Emoji # E0.7 [1] (🗺️) world map
1F5FB..1F5FF ; Emoji # E0.6 [5] (🗻..🗿) mount fuji..moai
1F600 ; Emoji # E1.0 [1] (😀) grinning face
1F601..1F606 ; Emoji # E0.6 [6] (😁..😆) beaming face with smiling eyes..grinning squinting face
1F607..1F608 ; Emoji # E1.0 [2] (😇..😈) smiling face with halo..smiling face with horns
1F609..1F60D ; Emoji # E0.6 [5] (😉..😍) winking face..smiling face with heart-eyes
1F60E ; Emoji # E1.0 [1] (😎) smiling face with sunglasses
1F60F ; Emoji # E0.6 [1] (😏) smirking face
1F610 ; Emoji # E0.7 [1] (😐) neutral face
1F611 ; Emoji # E1.0 [1] (😑) expressionless face
1F612..1F614 ; Emoji # E0.6 [3] (😒..😔) unamused face..pensive face
1F615 ; Emoji # E1.0 [1] (😕) confused face
1F616 ; Emoji # E0.6 [1] (😖) confounded face
1F617 ; Emoji # E1.0 [1] (😗) kissing face
1F618 ; Emoji # E0.6 [1] (😘) face blowing a kiss
1F619 ; Emoji # E1.0 [1] (😙) kissing face with smiling eyes
1F61A ; Emoji # E0.6 [1] (😚) kissing face with closed eyes
1F61B ; Emoji # E1.0 [1] (😛) face with tongue
1F61C..1F61E ; Emoji # E0.6 [3] (😜..😞) winking face with tongue..disappointed face
1F61F ; Emoji # E1.0 [1] (😟) worried face
1F620..1F625 ; Emoji # E0.6 [6] (😠..😥) angry face..sad but relieved face
1F626..1F627 ; Emoji # E1.0 [2] (😦..😧) frowning face with open mouth..anguished face
1F628..1F62B ; Emoji # E0.6 [4] (😨..😫) fearful face..tired face
1F62C ; Emoji # E1.0 [1] (😬) grimacing face
1F62D ; Emoji # E0.6 [1] (😭) loudly crying face
1F62E..1F62F ; Emoji # E1.0 [2] (😮..😯) face with open mouth..hushed face
1F630..1F633 ; Emoji # E0.6 [4] (😰..😳) anxious face with sweat..flushed face
1F634 ; Emoji # E1.0 [1] (😴) sleeping face
1F635 ; Emoji # E0.6 [1] (😵) face with crossed-out eyes
1F636 ; Emoji # E1.0 [1] (😶) face without mouth
1F637..1F640 ; Emoji # E0.6 [10] (😷..🙀) face with medical mask..weary cat
1F641..1F644 ; Emoji # E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes
1F645..1F64F ; Emoji # E0.6 [11] (🙅..🙏) person gesturing NO..folded hands
1F680 ; Emoji # E0.6 [1] (🚀) rocket
1F681..1F682 ; Emoji # E1.0 [2] (🚁..🚂) helicopter..locomotive
1F683..1F685 ; Emoji # E0.6 [3] (🚃..🚅) railway car..bullet train
1F686 ; Emoji # E1.0 [1] (🚆) train
1F687 ; Emoji # E0.6 [1] (🚇) metro
1F688 ; Emoji # E1.0 [1] (🚈) light rail
1F689 ; Emoji # E0.6 [1] (🚉) station
1F68A..1F68B ; Emoji # E1.0 [2] (🚊..🚋) tram..tram car
1F68C ; Emoji # E0.6 [1] (🚌) bus
1F68D ; Emoji # E0.7 [1] (🚍) oncoming bus
1F68E ; Emoji # E1.0 [1] (🚎) trolleybus
1F68F ; Emoji # E0.6 [1] (🚏) bus stop
1F690 ; Emoji # E1.0 [1] (🚐) minibus
1F691..1F693 ; Emoji # E0.6 [3] (🚑..🚓) ambulance..police car
1F694 ; Emoji # E0.7 [1] (🚔) oncoming police car
1F695 ; Emoji # E0.6 [1] (🚕) taxi
1F696 ; Emoji # E1.0 [1] (🚖) oncoming taxi
1F697 ; Emoji # E0.6 [1] (🚗) automobile
1F698 ; Emoji # E0.7 [1] (🚘) oncoming automobile
1F699..1F69A ; Emoji # E0.6 [2] (🚙..🚚) sport utility vehicle..delivery truck
1F69B..1F6A1 ; Emoji # E1.0 [7] (🚛..🚡) articulated lorry..aerial tramway
1F6A2 ; Emoji # E0.6 [1] (🚢) ship
1F6A3 ; Emoji # E1.0 [1] (🚣) person rowing boat
1F6A4..1F6A5 ; Emoji # E0.6 [2] (🚤..🚥) speedboat..horizontal traffic light
1F6A6 ; Emoji # E1.0 [1] (🚦) vertical traffic light
1F6A7..1F6AD ; Emoji # E0.6 [7] (🚧..🚭) construction..no smoking
1F6AE..1F6B1 ; Emoji # E1.0 [4] (🚮..🚱) litter in bin sign..non-potable water
1F6B2 ; Emoji # E0.6 [1] (🚲) bicycle
1F6B3..1F6B5 ; Emoji # E1.0 [3] (🚳..🚵) no bicycles..person mountain biking
1F6B6 ; Emoji # E0.6 [1] (🚶) person walking
1F6B7..1F6B8 ; Emoji # E1.0 [2] (🚷..🚸) no pedestrians..children crossing
1F6B9..1F6BE ; Emoji # E0.6 [6] (🚹..🚾) men’s room..water closet
1F6BF ; Emoji # E1.0 [1] (🚿) shower
1F6C0 ; Emoji # E0.6 [1] (🛀) person taking bath
1F6C1..1F6C5 ; Emoji # E1.0 [5] (🛁..🛅) bathtub..left luggage
1F6CB ; Emoji # E0.7 [1] (🛋️) couch and lamp
1F6CC ; Emoji # E1.0 [1] (🛌) person in bed
1F6CD..1F6CF ; Emoji # E0.7 [3] (🛍️..🛏️) shopping bags..bed
1F6D0 ; Emoji # E1.0 [1] (🛐) place of worship
1F6D1..1F6D2 ; Emoji # E3.0 [2] (🛑..🛒) stop sign..shopping cart
1F6D5 ; Emoji # E12.0 [1] (🛕) hindu temple
1F6D6..1F6D7 ; Emoji # E13.0 [2] (🛖..🛗) hut..elevator
1F6D8 ; Emoji # E17.0 [1] (🛘) landslide
1F6DC ; Emoji # E15.0 [1] (🛜) wireless
1F6DD..1F6DF ; Emoji # E14.0 [3] (🛝..🛟) playground slide..ring buoy
1F6E0..1F6E5 ; Emoji # E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat
1F6E9 ; Emoji # E0.7 [1] (🛩️) small airplane
1F6EB..1F6EC ; Emoji # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival
1F6F0 ; Emoji # E0.7 [1] (🛰️) satellite
1F6F3 ; Emoji # E0.7 [1] (🛳️) passenger ship
1F6F4..1F6F6 ; Emoji # E3.0 [3] (🛴..🛶) kick scooter..canoe
1F6F7..1F6F8 ; Emoji # E5.0 [2] (🛷..🛸) sled..flying saucer
1F6F9 ; Emoji # E11.0 [1] (🛹) skateboard
1F6FA ; Emoji # E12.0 [1] (🛺) auto rickshaw
1F6FB..1F6FC ; Emoji # E13.0 [2] (🛻..🛼) pickup truck..roller skate
1F7E0..1F7EB ; Emoji # E12.0 [12] (🟠..🟫) orange circle..brown square
1F7F0 ; Emoji # E14.0 [1] (🟰) heavy equals sign
1F90C ; Emoji # E13.0 [1] (🤌) pinched fingers
1F90D..1F90F ; Emoji # E12.0 [3] (🤍..🤏) white heart..pinching hand
1F910..1F918 ; Emoji # E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns
1F919..1F91E ; Emoji # E3.0 [6] (🤙..🤞) call me hand..crossed fingers
1F91F ; Emoji # E5.0 [1] (🤟) love-you gesture
1F920..1F927 ; Emoji # E3.0 [8] (🤠..🤧) cowboy hat face..sneezing face
1F928..1F92F ; Emoji # E5.0 [8] (🤨..🤯) face with raised eyebrow..exploding head
1F930 ; Emoji # E3.0 [1] (🤰) pregnant woman
1F931..1F932 ; Emoji # E5.0 [2] (🤱..🤲) breast-feeding..palms up together
1F933..1F93A ; Emoji # E3.0 [8] (🤳..🤺) selfie..person fencing
1F93C..1F93E ; Emoji # E3.0 [3] (🤼..🤾) people wrestling..person playing handball
1F93F ; Emoji # E12.0 [1] (🤿) diving mask
1F940..1F945 ; Emoji # E3.0 [6] (🥀..🥅) wilted flower..goal net
1F947..1F94B ; Emoji # E3.0 [5] (🥇..🥋) 1st place medal..martial arts uniform
1F94C ; Emoji # E5.0 [1] (🥌) curling stone
1F94D..1F94F ; Emoji # E11.0 [3] (🥍..🥏) lacrosse..flying disc
1F950..1F95E ; Emoji # E3.0 [15] (🥐..🥞) croissant..pancakes
1F95F..1F96B ; Emoji # E5.0 [13] (🥟..🥫) dumpling..canned food
1F96C..1F970 ; Emoji # E11.0 [5] (🥬..🥰) leafy green..smiling face with hearts
1F971 ; Emoji # E12.0 [1] (🥱) yawning face
1F972 ; Emoji # E13.0 [1] (🥲) smiling face with tear
1F973..1F976 ; Emoji # E11.0 [4] (🥳..🥶) partying face..cold face
1F977..1F978 ; Emoji # E13.0 [2] (🥷..🥸) ninja..disguised face
1F979 ; Emoji # E14.0 [1] (🥹) face holding back tears
1F97A ; Emoji # E11.0 [1] (🥺) pleading face
1F97B ; Emoji # E12.0 [1] (🥻) sari
1F97C..1F97F ; Emoji # E11.0 [4] (🥼..🥿) lab coat..flat shoe
1F980..1F984 ; Emoji # E1.0 [5] (🦀..🦄) crab..unicorn
1F985..1F991 ; Emoji # E3.0 [13] (🦅..🦑) eagle..squid
1F992..1F997 ; Emoji # E5.0 [6] (🦒..🦗) giraffe..cricket
1F998..1F9A2 ; Emoji # E11.0 [11] (🦘..🦢) kangaroo..swan
1F9A3..1F9A4 ; Emoji # E13.0 [2] (🦣..🦤) mammoth..dodo
1F9A5..1F9AA ; Emoji # E12.0 [6] (🦥..🦪) sloth..oyster
1F9AB..1F9AD ; Emoji # E13.0 [3] (🦫..🦭) beaver..seal
1F9AE..1F9AF ; Emoji # E12.0 [2] (🦮..🦯) guide dog..white cane
1F9B0..1F9B9 ; Emoji # E11.0 [10] (🦰..🦹) red hair..supervillain
1F9BA..1F9BF ; Emoji # E12.0 [6] (🦺..🦿) safety vest..mechanical leg
1F9C0 ; Emoji # E1.0 [1] (🧀) cheese wedge
1F9C1..1F9C2 ; Emoji # E11.0 [2] (🧁..🧂) cupcake..salt
1F9C3..1F9CA ; Emoji # E12.0 [8] (🧃..🧊) beverage box..ice
1F9CB ; Emoji # E13.0 [1] (🧋) bubble tea
1F9CC ; Emoji # E14.0 [1] (🧌) troll
1F9CD..1F9CF ; Emoji # E12.0 [3] (🧍..🧏) person standing..deaf person
1F9D0..1F9E6 ; Emoji # E5.0 [23] (🧐..🧦) face with monocle..socks
1F9E7..1F9FF ; Emoji # E11.0 [25] (🧧..🧿) red envelope..nazar amulet
1FA70..1FA73 ; Emoji # E12.0 [4] (🩰..🩳) ballet shoes..shorts
1FA74 ; Emoji # E13.0 [1] (🩴) thong sandal
1FA75..1FA77 ; Emoji # E15.0 [3] (🩵..🩷) light blue heart..pink heart
1FA78..1FA7A ; Emoji # E12.0 [3] (🩸..🩺) drop of blood..stethoscope
1FA7B..1FA7C ; Emoji # E14.0 [2] (🩻..🩼) x-ray..crutch
1FA80..1FA82 ; Emoji # E12.0 [3] (🪀..🪂) yo-yo..parachute
1FA83..1FA86 ; Emoji # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
1FA87..1FA88 ; Emoji # E15.0 [2] (🪇..🪈) maracas..flute
1FA89 ; Emoji # E16.0 [1] (🪉) harp
1FA8A ; Emoji # E17.0 [1] (🪊) trombone
1FA8E ; Emoji # E17.0 [1] (🪎) treasure chest
1FA8F ; Emoji # E16.0 [1] (🪏) shovel
1FA90..1FA95 ; Emoji # E12.0 [6] (🪐..🪕) ringed planet..banjo
1FA96..1FAA8 ; Emoji # E13.0 [19] (🪖..🪨) military helmet..rock
1FAA9..1FAAC ; Emoji # E14.0 [4] (🪩..🪬) mirror ball..hamsa
1FAAD..1FAAF ; Emoji # E15.0 [3] (🪭..🪯) folding hand fan..khanda
1FAB0..1FAB6 ; Emoji # E13.0 [7] (🪰..🪶) fly..feather
1FAB7..1FABA ; Emoji # E14.0 [4] (🪷..🪺) lotus..nest with eggs
1FABB..1FABD ; Emoji # E15.0 [3] (🪻..🪽) hyacinth..wing
1FABE ; Emoji # E16.0 [1] (🪾) leafless tree
1FABF ; Emoji # E15.0 [1] (🪿) goose
1FAC0..1FAC2 ; Emoji # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
1FAC3..1FAC5 ; Emoji # E14.0 [3] (🫃..🫅) pregnant man..person with crown
1FAC6 ; Emoji # E16.0 [1] (🫆) fingerprint
1FAC8 ; Emoji # E17.0 [1] (🫈) hairy creature
1FACD ; Emoji # E17.0 [1] (🫍) orca
1FACE..1FACF ; Emoji # E15.0 [2] (🫎..🫏) moose..donkey
1FAD0..1FAD6 ; Emoji # E13.0 [7] (🫐..🫖) blueberries..teapot
1FAD7..1FAD9 ; Emoji # E14.0 [3] (🫗..🫙) pouring liquid..jar
1FADA..1FADB ; Emoji # E15.0 [2] (🫚..🫛) ginger root..pea pod
1FADC ; Emoji # E16.0 [1] (🫜) root vegetable
1FADF ; Emoji # E16.0 [1] (🫟) splatter
1FAE0..1FAE7 ; Emoji # E14.0 [8] (🫠..🫧) melting face..bubbles
1FAE8 ; Emoji # E15.0 [1] (🫨) shaking face
1FAE9 ; Emoji # E16.0 [1] (🫩) face with bags under eyes
1FAEA ; Emoji # E17.0 [1] (🫪) distorted face
1FAEF ; Emoji # E17.0 [1] (🫯) fight cloud
1FAF0..1FAF6 ; Emoji # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
1FAF7..1FAF8 ; Emoji # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
# Total elements: 1438
# ================================================
# All omitted code points have Emoji_Presentation=No
231A..231B ; Emoji_Presentation # E0.6 [2] (⌚..⌛) watch..hourglass done
23E9..23EC ; Emoji_Presentation # E0.6 [4] (⏩..⏬) fast-forward button..fast down button
23F0 ; Emoji_Presentation # E0.6 [1] (⏰) alarm clock
23F3 ; Emoji_Presentation # E0.6 [1] (⏳) hourglass not done
25FD..25FE ; Emoji_Presentation # E0.6 [2] (◽..◾) white medium-small square..black medium-small square
2614..2615 ; Emoji_Presentation # E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage
2648..2653 ; Emoji_Presentation # E0.6 [12] (♈..♓) Aries..Pisces
267F ; Emoji_Presentation # E0.6 [1] (♿) wheelchair symbol
2693 ; Emoji_Presentation # E0.6 [1] (⚓) anchor
26A1 ; Emoji_Presentation # E0.6 [1] (⚡) high voltage
26AA..26AB ; Emoji_Presentation # E0.6 [2] (⚪..⚫) white circle..black circle
26BD..26BE ; Emoji_Presentation # E0.6 [2] (⚽..⚾) soccer ball..baseball
26C4..26C5 ; Emoji_Presentation # E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud
26CE ; Emoji_Presentation # E0.6 [1] (⛎) Ophiuchus
26D4 ; Emoji_Presentation # E0.6 [1] (⛔) no entry
26EA ; Emoji_Presentation # E0.6 [1] (⛪) church
26F2..26F3 ; Emoji_Presentation # E0.6 [2] (⛲..⛳) fountain..flag in hole
26F5 ; Emoji_Presentation # E0.6 [1] (⛵) sailboat
26FA ; Emoji_Presentation # E0.6 [1] (⛺) tent
26FD ; Emoji_Presentation # E0.6 [1] (⛽) fuel pump
2705 ; Emoji_Presentation # E0.6 [1] (✅) check mark button
270A..270B ; Emoji_Presentation # E0.6 [2] (✊..✋) raised fist..raised hand
2728 ; Emoji_Presentation # E0.6 [1] (✨) sparkles
274C ; Emoji_Presentation # E0.6 [1] (❌) cross mark
274E ; Emoji_Presentation # E0.6 [1] (❎) cross mark button
2753..2755 ; Emoji_Presentation # E0.6 [3] (❓..❕) red question mark..white exclamation mark
2757 ; Emoji_Presentation # E0.6 [1] (❗) red exclamation mark
2795..2797 ; Emoji_Presentation # E0.6 [3] (➕..➗) plus..divide
27B0 ; Emoji_Presentation # E0.6 [1] (➰) curly loop
27BF ; Emoji_Presentation # E1.0 [1] (➿) double curly loop
2B1B..2B1C ; Emoji_Presentation # E0.6 [2] (⬛..⬜) black large square..white large square
2B50 ; Emoji_Presentation # E0.6 [1] (⭐) star
2B55 ; Emoji_Presentation # E0.6 [1] (⭕) hollow red circle
1F004 ; Emoji_Presentation # E0.6 [1] (🀄) mahjong red dragon
1F0CF ; Emoji_Presentation # E0.6 [1] (🃏) joker
1F18E ; Emoji_Presentation # E0.6 [1] (🆎) AB button (blood type)
1F191..1F19A ; Emoji_Presentation # E0.6 [10] (🆑..🆚) CL button..VS button
1F1E6..1F1FF ; Emoji_Presentation # E0.0 [26] (🇦..🇿) regional indicator symbol letter a..regional indicator symbol letter z
1F201 ; Emoji_Presentation # E0.6 [1] (🈁) Japanese “here” button
1F21A ; Emoji_Presentation # E0.6 [1] (🈚) Japanese “free of charge” button
1F22F ; Emoji_Presentation # E0.6 [1] (🈯) Japanese “reserved” button
1F232..1F236 ; Emoji_Presentation # E0.6 [5] (🈲..🈶) Japanese “prohibited” button..Japanese “not free of charge” button
1F238..1F23A ; Emoji_Presentation # E0.6 [3] (🈸..🈺) Japanese “application” button..Japanese “open for business” button
1F250..1F251 ; Emoji_Presentation # E0.6 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button
1F300..1F30C ; Emoji_Presentation # E0.6 [13] (🌀..🌌) cyclone..milky way
1F30D..1F30E ; Emoji_Presentation # E0.7 [2] (🌍..🌎) globe showing Europe-Africa..globe showing Americas
1F30F ; Emoji_Presentation # E0.6 [1] (🌏) globe showing Asia-Australia
1F310 ; Emoji_Presentation # E1.0 [1] (🌐) globe with meridians
1F311 ; Emoji_Presentation # E0.6 [1] (🌑) new moon
1F312 ; Emoji_Presentation # E1.0 [1] (🌒) waxing crescent moon
1F313..1F315 ; Emoji_Presentation # E0.6 [3] (🌓..🌕) first quarter moon..full moon
1F316..1F318 ; Emoji_Presentation # E1.0 [3] (🌖..🌘) waning gibbous moon..waning crescent moon
1F319 ; Emoji_Presentation # E0.6 [1] (🌙) crescent moon
1F31A ; Emoji_Presentation # E1.0 [1] (🌚) new moon face
1F31B ; Emoji_Presentation # E0.6 [1] (🌛) first quarter moon face
1F31C ; Emoji_Presentation # E0.7 [1] (🌜) last quarter moon face
1F31D..1F31E ; Emoji_Presentation # E1.0 [2] (🌝..🌞) full moon face..sun with face
1F31F..1F320 ; Emoji_Presentation # E0.6 [2] (🌟..🌠) glowing star..shooting star
1F32D..1F32F ; Emoji_Presentation # E1.0 [3] (🌭..🌯) hot dog..burrito
1F330..1F331 ; Emoji_Presentation # E0.6 [2] (🌰..🌱) chestnut..seedling
1F332..1F333 ; Emoji_Presentation # E1.0 [2] (🌲..🌳) evergreen tree..deciduous tree
1F334..1F335 ; Emoji_Presentation # E0.6 [2] (🌴..🌵) palm tree..cactus
1F337..1F34A ; Emoji_Presentation # E0.6 [20] (🌷..🍊) tulip..tangerine
1F34B ; Emoji_Presentation # E1.0 [1] (🍋) lemon
1F34C..1F34F ; Emoji_Presentation # E0.6 [4] (🍌..🍏) banana..green apple
1F350 ; Emoji_Presentation # E1.0 [1] (🍐) pear
1F351..1F37B ; Emoji_Presentation # E0.6 [43] (🍑..🍻) peach..clinking beer mugs
1F37C ; Emoji_Presentation # E1.0 [1] (🍼) baby bottle
1F37E..1F37F ; Emoji_Presentation # E1.0 [2] (🍾..🍿) bottle with popping cork..popcorn
1F380..1F393 ; Emoji_Presentation # E0.6 [20] (🎀..🎓) ribbon..graduation cap
1F3A0..1F3C4 ; Emoji_Presentation # E0.6 [37] (🎠..🏄) carousel horse..person surfing
1F3C5 ; Emoji_Presentation # E1.0 [1] (🏅) sports medal
1F3C6 ; Emoji_Presentation # E0.6 [1] (🏆) trophy
1F3C7 ; Emoji_Presentation # E1.0 [1] (🏇) horse racing
1F3C8 ; Emoji_Presentation # E0.6 [1] (🏈) american football
1F3C9 ; Emoji_Presentation # E1.0 [1] (🏉) rugby football
1F3CA ; Emoji_Presentation # E0.6 [1] (🏊) person swimming
1F3CF..1F3D3 ; Emoji_Presentation # E1.0 [5] (🏏..🏓) cricket game..ping pong
1F3E0..1F3E3 ; Emoji_Presentation # E0.6 [4] (🏠..🏣) house..Japanese post office
1F3E4 ; Emoji_Presentation # E1.0 [1] (🏤) post office
1F3E5..1F3F0 ; Emoji_Presentation # E0.6 [12] (🏥..🏰) hospital..castle
1F3F4 ; Emoji_Presentation # E1.0 [1] (🏴) black flag
1F3F8..1F407 ; Emoji_Presentation # E1.0 [16] (🏸..🐇) badminton..rabbit
1F408 ; Emoji_Presentation # E0.7 [1] (🐈) cat
1F409..1F40B ; Emoji_Presentation # E1.0 [3] (🐉..🐋) dragon..whale
1F40C..1F40E ; Emoji_Presentation # E0.6 [3] (🐌..🐎) snail..horse
1F40F..1F410 ; Emoji_Presentation # E1.0 [2] (🐏..🐐) ram..goat
1F411..1F412 ; Emoji_Presentation # E0.6 [2] (🐑..🐒) ewe..monkey
1F413 ; Emoji_Presentation # E1.0 [1] (🐓) rooster
1F414 ; Emoji_Presentation # E0.6 [1] (🐔) chicken
1F415 ; Emoji_Presentation # E0.7 [1] (🐕) dog
1F416 ; Emoji_Presentation # E1.0 [1] (🐖) pig
1F417..1F429 ; Emoji_Presentation # E0.6 [19] (🐗..🐩) boar..poodle
1F42A ; Emoji_Presentation # E1.0 [1] (🐪) camel
1F42B..1F43E ; Emoji_Presentation # E0.6 [20] (🐫..🐾) two-hump camel..paw prints
1F440 ; Emoji_Presentation # E0.6 [1] (👀) eyes
1F442..1F464 ; Emoji_Presentation # E0.6 [35] (👂..👤) ear..bust in silhouette
1F465 ; Emoji_Presentation # E1.0 [1] (👥) busts in silhouette
1F466..1F46B ; Emoji_Presentation # E0.6 [6] (👦..👫) boy..woman and man holding hands
1F46C..1F46D ; Emoji_Presentation # E1.0 [2] (👬..👭) men holding hands..women holding hands
1F46E..1F4AC ; Emoji_Presentation # E0.6 [63] (👮..💬) police officer..speech balloon
1F4AD ; Emoji_Presentation # E1.0 [1] (💭) thought balloon
1F4AE..1F4B5 ; Emoji_Presentation # E0.6 [8] (💮..💵) white flower..dollar banknote
1F4B6..1F4B7 ; Emoji_Presentation # E1.0 [2] (💶..💷) euro banknote..pound banknote
1F4B8..1F4EB ; Emoji_Presentation # E0.6 [52] (💸..📫) money with wings..closed mailbox with raised flag
1F4EC..1F4ED ; Emoji_Presentation # E0.7 [2] (📬..📭) open mailbox with raised flag..open mailbox with lowered flag
1F4EE ; Emoji_Presentation # E0.6 [1] (📮) postbox
1F4EF ; Emoji_Presentation # E1.0 [1] (📯) postal horn
1F4F0..1F4F4 ; Emoji_Presentation # E0.6 [5] (📰..📴) newspaper..mobile phone off
1F4F5 ; Emoji_Presentation # E1.0 [1] (📵) no mobile phones
1F4F6..1F4F7 ; Emoji_Presentation # E0.6 [2] (📶..📷) antenna bars..camera
1F4F8 ; Emoji_Presentation # E1.0 [1] (📸) camera with flash
1F4F9..1F4FC ; Emoji_Presentation # E0.6 [4] (📹..📼) video camera..videocassette
1F4FF..1F502 ; Emoji_Presentation # E1.0 [4] (📿..🔂) prayer beads..repeat single button
1F503 ; Emoji_Presentation # E0.6 [1] (🔃) clockwise vertical arrows
1F504..1F507 ; Emoji_Presentation # E1.0 [4] (🔄..🔇) counterclockwise arrows button..muted speaker
1F508 ; Emoji_Presentation # E0.7 [1] (🔈) speaker low volume
1F509 ; Emoji_Presentation # E1.0 [1] (🔉) speaker medium volume
1F50A..1F514 ; Emoji_Presentation # E0.6 [11] (🔊..🔔) speaker high volume..bell
1F515 ; Emoji_Presentation # E1.0 [1] (🔕) bell with slash
1F516..1F52B ; Emoji_Presentation # E0.6 [22] (🔖..🔫) bookmark..water pistol
1F52C..1F52D ; Emoji_Presentation # E1.0 [2] (🔬..🔭) microscope..telescope
1F52E..1F53D ; Emoji_Presentation # E0.6 [16] (🔮..🔽) crystal ball..downwards button
1F54B..1F54E ; Emoji_Presentation # E1.0 [4] (🕋..🕎) kaaba..menorah
1F550..1F55B ; Emoji_Presentation # E0.6 [12] (🕐..🕛) one o’clock..twelve o’clock
1F55C..1F567 ; Emoji_Presentation # E0.7 [12] (🕜..🕧) one-thirty..twelve-thirty
1F57A ; Emoji_Presentation # E3.0 [1] (🕺) man dancing
1F595..1F596 ; Emoji_Presentation # E1.0 [2] (🖕..🖖) middle finger..vulcan salute
1F5A4 ; Emoji_Presentation # E3.0 [1] (🖤) black heart
1F5FB..1F5FF ; Emoji_Presentation # E0.6 [5] (🗻..🗿) mount fuji..moai
1F600 ; Emoji_Presentation # E1.0 [1] (😀) grinning face
1F601..1F606 ; Emoji_Presentation # E0.6 [6] (😁..😆) beaming face with smiling eyes..grinning squinting face
1F607..1F608 ; Emoji_Presentation # E1.0 [2] (😇..😈) smiling face with halo..smiling face with horns
1F609..1F60D ; Emoji_Presentation # E0.6 [5] (😉..😍) winking face..smiling face with heart-eyes
1F60E ; Emoji_Presentation # E1.0 [1] (😎) smiling face with sunglasses
1F60F ; Emoji_Presentation # E0.6 [1] (😏) smirking face
1F610 ; Emoji_Presentation # E0.7 [1] (😐) neutral face
1F611 ; Emoji_Presentation # E1.0 [1] (😑) expressionless face
1F612..1F614 ; Emoji_Presentation # E0.6 [3] (😒..😔) unamused face..pensive face
1F615 ; Emoji_Presentation # E1.0 [1] (😕) confused face
1F616 ; Emoji_Presentation # E0.6 [1] (😖) confounded face
1F617 ; Emoji_Presentation # E1.0 [1] (😗) kissing face
1F618 ; Emoji_Presentation # E0.6 [1] (😘) face blowing a kiss
1F619 ; Emoji_Presentation # E1.0 [1] (😙) kissing face with smiling eyes
1F61A ; Emoji_Presentation # E0.6 [1] (😚) kissing face with closed eyes
1F61B ; Emoji_Presentation # E1.0 [1] (😛) face with tongue
1F61C..1F61E ; Emoji_Presentation # E0.6 [3] (😜..😞) winking face with tongue..disappointed face
1F61F ; Emoji_Presentation # E1.0 [1] (😟) worried face
1F620..1F625 ; Emoji_Presentation # E0.6 [6] (😠..😥) angry face..sad but relieved face
1F626..1F627 ; Emoji_Presentation # E1.0 [2] (😦..😧) frowning face with open mouth..anguished face
1F628..1F62B ; Emoji_Presentation # E0.6 [4] (😨..😫) fearful face..tired face
1F62C ; Emoji_Presentation # E1.0 [1] (😬) grimacing face
1F62D ; Emoji_Presentation # E0.6 [1] (😭) loudly crying face
1F62E..1F62F ; Emoji_Presentation # E1.0 [2] (😮..😯) face with open mouth..hushed face
1F630..1F633 ; Emoji_Presentation # E0.6 [4] (😰..😳) anxious face with sweat..flushed face
1F634 ; Emoji_Presentation # E1.0 [1] (😴) sleeping face
1F635 ; Emoji_Presentation # E0.6 [1] (😵) face with crossed-out eyes
1F636 ; Emoji_Presentation # E1.0 [1] (😶) face without mouth
1F637..1F640 ; Emoji_Presentation # E0.6 [10] (😷..🙀) face with medical mask..weary cat
1F641..1F644 ; Emoji_Presentation # E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes
1F645..1F64F ; Emoji_Presentation # E0.6 [11] (🙅..🙏) person gesturing NO..folded hands
1F680 ; Emoji_Presentation # E0.6 [1] (🚀) rocket
1F681..1F682 ; Emoji_Presentation # E1.0 [2] (🚁..🚂) helicopter..locomotive
1F683..1F685 ; Emoji_Presentation # E0.6 [3] (🚃..🚅) railway car..bullet train
1F686 ; Emoji_Presentation # E1.0 [1] (🚆) train
1F687 ; Emoji_Presentation # E0.6 [1] (🚇) metro
1F688 ; Emoji_Presentation # E1.0 [1] (🚈) light rail
1F689 ; Emoji_Presentation # E0.6 [1] (🚉) station
1F68A..1F68B ; Emoji_Presentation # E1.0 [2] (🚊..🚋) tram..tram car
1F68C ; Emoji_Presentation # E0.6 [1] (🚌) bus
1F68D ; Emoji_Presentation # E0.7 [1] (🚍) oncoming bus
1F68E ; Emoji_Presentation # E1.0 [1] (🚎) trolleybus
1F68F ; Emoji_Presentation # E0.6 [1] (🚏) bus stop
1F690 ; Emoji_Presentation # E1.0 [1] (🚐) minibus
1F691..1F693 ; Emoji_Presentation # E0.6 [3] (🚑..🚓) ambulance..police car
1F694 ; Emoji_Presentation # E0.7 [1] (🚔) oncoming police car
1F695 ; Emoji_Presentation # E0.6 [1] (🚕) taxi
1F696 ; Emoji_Presentation # E1.0 [1] (🚖) oncoming taxi
1F697 ; Emoji_Presentation # E0.6 [1] (🚗) automobile
1F698 ; Emoji_Presentation # E0.7 [1] (🚘) oncoming automobile
1F699..1F69A ; Emoji_Presentation # E0.6 [2] (🚙..🚚) sport utility vehicle..delivery truck
1F69B..1F6A1 ; Emoji_Presentation # E1.0 [7] (🚛..🚡) articulated lorry..aerial tramway
1F6A2 ; Emoji_Presentation # E0.6 [1] (🚢) ship
1F6A3 ; Emoji_Presentation # E1.0 [1] (🚣) person rowing boat
1F6A4..1F6A5 ; Emoji_Presentation # E0.6 [2] (🚤..🚥) speedboat..horizontal traffic light
1F6A6 ; Emoji_Presentation # E1.0 [1] (🚦) vertical traffic light
1F6A7..1F6AD ; Emoji_Presentation # E0.6 [7] (🚧..🚭) construction..no smoking
1F6AE..1F6B1 ; Emoji_Presentation # E1.0 [4] (🚮..🚱) litter in bin sign..non-potable water
1F6B2 ; Emoji_Presentation # E0.6 [1] (🚲) bicycle
1F6B3..1F6B5 ; Emoji_Presentation # E1.0 [3] (🚳..🚵) no bicycles..person mountain biking
1F6B6 ; Emoji_Presentation # E0.6 [1] (🚶) person walking
1F6B7..1F6B8 ; Emoji_Presentation # E1.0 [2] (🚷..🚸) no pedestrians..children crossing
1F6B9..1F6BE ; Emoji_Presentation # E0.6 [6] (🚹..🚾) men’s room..water closet
1F6BF ; Emoji_Presentation # E1.0 [1] (🚿) shower
1F6C0 ; Emoji_Presentation # E0.6 [1] (🛀) person taking bath
1F6C1..1F6C5 ; Emoji_Presentation # E1.0 [5] (🛁..🛅) bathtub..left luggage
1F6CC ; Emoji_Presentation # E1.0 [1] (🛌) person in bed
1F6D0 ; Emoji_Presentation # E1.0 [1] (🛐) place of worship
1F6D1..1F6D2 ; Emoji_Presentation # E3.0 [2] (🛑..🛒) stop sign..shopping cart
1F6D5 ; Emoji_Presentation # E12.0 [1] (🛕) hindu temple
1F6D6..1F6D7 ; Emoji_Presentation # E13.0 [2] (🛖..🛗) hut..elevator
1F6D8 ; Emoji_Presentation # E17.0 [1] (🛘) landslide
1F6DC ; Emoji_Presentation # E15.0 [1] (🛜) wireless
1F6DD..1F6DF ; Emoji_Presentation # E14.0 [3] (🛝..🛟) playground slide..ring buoy
1F6EB..1F6EC ; Emoji_Presentation # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival
1F6F4..1F6F6 ; Emoji_Presentation # E3.0 [3] (🛴..🛶) kick scooter..canoe
1F6F7..1F6F8 ; Emoji_Presentation # E5.0 [2] (🛷..🛸) sled..flying saucer
1F6F9 ; Emoji_Presentation # E11.0 [1] (🛹) skateboard
1F6FA ; Emoji_Presentation # E12.0 [1] (🛺) auto rickshaw
1F6FB..1F6FC ; Emoji_Presentation # E13.0 [2] (🛻..🛼) pickup truck..roller skate
1F7E0..1F7EB ; Emoji_Presentation # E12.0 [12] (🟠..🟫) orange circle..brown square
1F7F0 ; Emoji_Presentation # E14.0 [1] (🟰) heavy equals sign
1F90C ; Emoji_Presentation # E13.0 [1] (🤌) pinched fingers
1F90D..1F90F ; Emoji_Presentation # E12.0 [3] (🤍..🤏) white heart..pinching hand
1F910..1F918 ; Emoji_Presentation # E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns
1F919..1F91E ; Emoji_Presentation # E3.0 [6] (🤙..🤞) call me hand..crossed fingers
1F91F ; Emoji_Presentation # E5.0 [1] (🤟) love-you gesture
1F920..1F927 ; Emoji_Presentation # E3.0 [8] (🤠..🤧) cowboy hat face..sneezing face
1F928..1F92F ; Emoji_Presentation # E5.0 [8] (🤨..🤯) face with raised eyebrow..exploding head
1F930 ; Emoji_Presentation # E3.0 [1] (🤰) pregnant woman
1F931..1F932 ; Emoji_Presentation # E5.0 [2] (🤱..🤲) breast-feeding..palms up together
1F933..1F93A ; Emoji_Presentation # E3.0 [8] (🤳..🤺) selfie..person fencing
1F93C..1F93E ; Emoji_Presentation # E3.0 [3] (🤼..🤾) people wrestling..person playing handball
1F93F ; Emoji_Presentation # E12.0 [1] (🤿) diving mask
1F940..1F945 ; Emoji_Presentation # E3.0 [6] (🥀..🥅) wilted flower..goal net
1F947..1F94B ; Emoji_Presentation # E3.0 [5] (🥇..🥋) 1st place medal..martial arts uniform
1F94C ; Emoji_Presentation # E5.0 [1] (🥌) curling stone
1F94D..1F94F ; Emoji_Presentation # E11.0 [3] (🥍..🥏) lacrosse..flying disc
1F950..1F95E ; Emoji_Presentation # E3.0 [15] (🥐..🥞) croissant..pancakes
1F95F..1F96B ; Emoji_Presentation # E5.0 [13] (🥟..🥫) dumpling..canned food
1F96C..1F970 ; Emoji_Presentation # E11.0 [5] (🥬..🥰) leafy green..smiling face with hearts
1F971 ; Emoji_Presentation # E12.0 [1] (🥱) yawning face
1F972 ; Emoji_Presentation # E13.0 [1] (🥲) smiling face with tear
1F973..1F976 ; Emoji_Presentation # E11.0 [4] (🥳..🥶) partying face..cold face
1F977..1F978 ; Emoji_Presentation # E13.0 [2] (🥷..🥸) ninja..disguised face
1F979 ; Emoji_Presentation # E14.0 [1] (🥹) face holding back tears
1F97A ; Emoji_Presentation # E11.0 [1] (🥺) pleading face
1F97B ; Emoji_Presentation # E12.0 [1] (🥻) sari
1F97C..1F97F ; Emoji_Presentation # E11.0 [4] (🥼..🥿) lab coat..flat shoe
1F980..1F984 ; Emoji_Presentation # E1.0 [5] (🦀..🦄) crab..unicorn
1F985..1F991 ; Emoji_Presentation # E3.0 [13] (🦅..🦑) eagle..squid
1F992..1F997 ; Emoji_Presentation # E5.0 [6] (🦒..🦗) giraffe..cricket
1F998..1F9A2 ; Emoji_Presentation # E11.0 [11] (🦘..🦢) kangaroo..swan
1F9A3..1F9A4 ; Emoji_Presentation # E13.0 [2] (🦣..🦤) mammoth..dodo
1F9A5..1F9AA ; Emoji_Presentation # E12.0 [6] (🦥..🦪) sloth..oyster
1F9AB..1F9AD ; Emoji_Presentation # E13.0 [3] (🦫..🦭) beaver..seal
1F9AE..1F9AF ; Emoji_Presentation # E12.0 [2] (🦮..🦯) guide dog..white cane
1F9B0..1F9B9 ; Emoji_Presentation # E11.0 [10] (🦰..🦹) red hair..supervillain
1F9BA..1F9BF ; Emoji_Presentation # E12.0 [6] (🦺..🦿) safety vest..mechanical leg
1F9C0 ; Emoji_Presentation # E1.0 [1] (🧀) cheese wedge
1F9C1..1F9C2 ; Emoji_Presentation # E11.0 [2] (🧁..🧂) cupcake..salt
1F9C3..1F9CA ; Emoji_Presentation # E12.0 [8] (🧃..🧊) beverage box..ice
1F9CB ; Emoji_Presentation # E13.0 [1] (🧋) bubble tea
1F9CC ; Emoji_Presentation # E14.0 [1] (🧌) troll
1F9CD..1F9CF ; Emoji_Presentation # E12.0 [3] (🧍..🧏) person standing..deaf person
1F9D0..1F9E6 ; Emoji_Presentation # E5.0 [23] (🧐..🧦) face with monocle..socks
1F9E7..1F9FF ; Emoji_Presentation # E11.0 [25] (🧧..🧿) red envelope..nazar amulet
1FA70..1FA73 ; Emoji_Presentation # E12.0 [4] (🩰..🩳) ballet shoes..shorts
1FA74 ; Emoji_Presentation # E13.0 [1] (🩴) thong sandal
1FA75..1FA77 ; Emoji_Presentation # E15.0 [3] (🩵..🩷) light blue heart..pink heart
1FA78..1FA7A ; Emoji_Presentation # E12.0 [3] (🩸..🩺) drop of blood..stethoscope
1FA7B..1FA7C ; Emoji_Presentation # E14.0 [2] (🩻..🩼) x-ray..crutch
1FA80..1FA82 ; Emoji_Presentation # E12.0 [3] (🪀..🪂) yo-yo..parachute
1FA83..1FA86 ; Emoji_Presentation # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
1FA87..1FA88 ; Emoji_Presentation # E15.0 [2] (🪇..🪈) maracas..flute
1FA89 ; Emoji_Presentation # E16.0 [1] (🪉) harp
1FA8A ; Emoji_Presentation # E17.0 [1] (🪊) trombone
1FA8E ; Emoji_Presentation # E17.0 [1] (🪎) treasure chest
1FA8F ; Emoji_Presentation # E16.0 [1] (🪏) shovel
1FA90..1FA95 ; Emoji_Presentation # E12.0 [6] (🪐..🪕) ringed planet..banjo
1FA96..1FAA8 ; Emoji_Presentation # E13.0 [19] (🪖..🪨) military helmet..rock
1FAA9..1FAAC ; Emoji_Presentation # E14.0 [4] (🪩..🪬) mirror ball..hamsa
1FAAD..1FAAF ; Emoji_Presentation # E15.0 [3] (🪭..🪯) folding hand fan..khanda
1FAB0..1FAB6 ; Emoji_Presentation # E13.0 [7] (🪰..🪶) fly..feather
1FAB7..1FABA ; Emoji_Presentation # E14.0 [4] (🪷..🪺) lotus..nest with eggs
1FABB..1FABD ; Emoji_Presentation # E15.0 [3] (🪻..🪽) hyacinth..wing
1FABE ; Emoji_Presentation # E16.0 [1] (🪾) leafless tree
1FABF ; Emoji_Presentation # E15.0 [1] (🪿) goose
1FAC0..1FAC2 ; Emoji_Presentation # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
1FAC3..1FAC5 ; Emoji_Presentation # E14.0 [3] (🫃..🫅) pregnant man..person with crown
1FAC6 ; Emoji_Presentation # E16.0 [1] (🫆) fingerprint
1FAC8 ; Emoji_Presentation # E17.0 [1] (🫈) hairy creature
1FACD ; Emoji_Presentation # E17.0 [1] (🫍) orca
1FACE..1FACF ; Emoji_Presentation # E15.0 [2] (🫎..🫏) moose..donkey
1FAD0..1FAD6 ; Emoji_Presentation # E13.0 [7] (🫐..🫖) blueberries..teapot
1FAD7..1FAD9 ; Emoji_Presentation # E14.0 [3] (🫗..🫙) pouring liquid..jar
1FADA..1FADB ; Emoji_Presentation # E15.0 [2] (🫚..🫛) ginger root..pea pod
1FADC ; Emoji_Presentation # E16.0 [1] (🫜) root vegetable
1FADF ; Emoji_Presentation # E16.0 [1] (🫟) splatter
1FAE0..1FAE7 ; Emoji_Presentation # E14.0 [8] (🫠..🫧) melting face..bubbles
1FAE8 ; Emoji_Presentation # E15.0 [1] (🫨) shaking face
1FAE9 ; Emoji_Presentation # E16.0 [1] (🫩) face with bags under eyes
1FAEA ; Emoji_Presentation # E17.0 [1] (🫪) distorted face
1FAEF ; Emoji_Presentation # E17.0 [1] (🫯) fight cloud
1FAF0..1FAF6 ; Emoji_Presentation # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
1FAF7..1FAF8 ; Emoji_Presentation # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
# Total elements: 1219
# ================================================
# All omitted code points have Emoji_Modifier=No
1F3FB..1F3FF ; Emoji_Modifier # E1.0 [5] (🏻..🏿) light skin tone..dark skin tone
# Total elements: 5
# ================================================
# All omitted code points have Emoji_Modifier_Base=No
261D ; Emoji_Modifier_Base # E0.6 [1] (☝️) index pointing up
26F9 ; Emoji_Modifier_Base # E0.7 [1] (⛹️) person bouncing ball
270A..270C ; Emoji_Modifier_Base # E0.6 [3] (✊..✌️) raised fist..victory hand
270D ; Emoji_Modifier_Base # E0.7 [1] (✍️) writing hand
1F385 ; Emoji_Modifier_Base # E0.6 [1] (🎅) Santa Claus
1F3C2..1F3C4 ; Emoji_Modifier_Base # E0.6 [3] (🏂..🏄) snowboarder..person surfing
1F3C7 ; Emoji_Modifier_Base # E1.0 [1] (🏇) horse racing
1F3CA ; Emoji_Modifier_Base # E0.6 [1] (🏊) person swimming
1F3CB..1F3CC ; Emoji_Modifier_Base # E0.7 [2] (🏋️..🏌️) person lifting weights..person golfing
1F442..1F443 ; Emoji_Modifier_Base # E0.6 [2] (👂..👃) ear..nose
1F446..1F450 ; Emoji_Modifier_Base # E0.6 [11] (👆..👐) backhand index pointing up..open hands
1F466..1F46B ; Emoji_Modifier_Base # E0.6 [6] (👦..👫) boy..woman and man holding hands
1F46C..1F46D ; Emoji_Modifier_Base # E1.0 [2] (👬..👭) men holding hands..women holding hands
1F46E..1F478 ; Emoji_Modifier_Base # E0.6 [11] (👮..👸) police officer..princess
1F47C ; Emoji_Modifier_Base # E0.6 [1] (👼) baby angel
1F481..1F483 ; Emoji_Modifier_Base # E0.6 [3] (💁..💃) person tipping hand..woman dancing
1F485..1F487 ; Emoji_Modifier_Base # E0.6 [3] (💅..💇) nail polish..person getting haircut
1F48F ; Emoji_Modifier_Base # E0.6 [1] (💏) kiss
1F491 ; Emoji_Modifier_Base # E0.6 [1] (💑) couple with heart
1F4AA ; Emoji_Modifier_Base # E0.6 [1] (💪) flexed biceps
1F574..1F575 ; Emoji_Modifier_Base # E0.7 [2] (🕴️..🕵️) person in suit levitating..detective
1F57A ; Emoji_Modifier_Base # E3.0 [1] (🕺) man dancing
1F590 ; Emoji_Modifier_Base # E0.7 [1] (🖐️) hand with fingers splayed
1F595..1F596 ; Emoji_Modifier_Base # E1.0 [2] (🖕..🖖) middle finger..vulcan salute
1F645..1F647 ; Emoji_Modifier_Base # E0.6 [3] (🙅..🙇) person gesturing NO..person bowing
1F64B..1F64F ; Emoji_Modifier_Base # E0.6 [5] (🙋..🙏) person raising hand..folded hands
1F6A3 ; Emoji_Modifier_Base # E1.0 [1] (🚣) person rowing boat
1F6B4..1F6B5 ; Emoji_Modifier_Base # E1.0 [2] (🚴..🚵) person biking..person mountain biking
1F6B6 ; Emoji_Modifier_Base # E0.6 [1] (🚶) person walking
1F6C0 ; Emoji_Modifier_Base # E0.6 [1] (🛀) person taking bath
1F6CC ; Emoji_Modifier_Base # E1.0 [1] (🛌) person in bed
1F90C ; Emoji_Modifier_Base # E13.0 [1] (🤌) pinched fingers
1F90F ; Emoji_Modifier_Base # E12.0 [1] (🤏) pinching hand
1F918 ; Emoji_Modifier_Base # E1.0 [1] (🤘) sign of the horns
1F919..1F91E ; Emoji_Modifier_Base # E3.0 [6] (🤙..🤞) call me hand..crossed fingers
1F91F ; Emoji_Modifier_Base # E5.0 [1] (🤟) love-you gesture
1F926 ; Emoji_Modifier_Base # E3.0 [1] (🤦) person facepalming
1F930 ; Emoji_Modifier_Base # E3.0 [1] (🤰) pregnant woman
1F931..1F932 ; Emoji_Modifier_Base # E5.0 [2] (🤱..🤲) breast-feeding..palms up together
1F933..1F939 ; Emoji_Modifier_Base # E3.0 [7] (🤳..🤹) selfie..person juggling
1F93C..1F93E ; Emoji_Modifier_Base # E3.0 [3] (🤼..🤾) people wrestling..person playing handball
1F977 ; Emoji_Modifier_Base # E13.0 [1] (🥷) ninja
1F9B5..1F9B6 ; Emoji_Modifier_Base # E11.0 [2] (🦵..🦶) leg..foot
1F9B8..1F9B9 ; Emoji_Modifier_Base # E11.0 [2] (🦸..🦹) superhero..supervillain
1F9BB ; Emoji_Modifier_Base # E12.0 [1] (🦻) ear with hearing aid
1F9CD..1F9CF ; Emoji_Modifier_Base # E12.0 [3] (🧍..🧏) person standing..deaf person
1F9D1..1F9DD ; Emoji_Modifier_Base # E5.0 [13] (🧑..🧝) person..elf
1FAC3..1FAC5 ; Emoji_Modifier_Base # E14.0 [3] (🫃..🫅) pregnant man..person with crown
1FAF0..1FAF6 ; Emoji_Modifier_Base # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
1FAF7..1FAF8 ; Emoji_Modifier_Base # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
# Total elements: 134
# ================================================
# All omitted code points have Emoji_Component=No
0023 ; Emoji_Component # E0.0 [1] (#️) hash sign
002A ; Emoji_Component # E0.0 [1] (*️) asterisk
0030..0039 ; Emoji_Component # E0.0 [10] (0️..9️) digit zero..digit nine
200D ; Emoji_Component # E0.0 [1] (‍) zero width joiner
20E3 ; Emoji_Component # E0.0 [1] (⃣) combining enclosing keycap
FE0F ; Emoji_Component # E0.0 [1] () VARIATION SELECTOR-16
1F1E6..1F1FF ; Emoji_Component # E0.0 [26] (🇦..🇿) regional indicator symbol letter a..regional indicator symbol letter z
1F3FB..1F3FF ; Emoji_Component # E1.0 [5] (🏻..🏿) light skin tone..dark skin tone
1F9B0..1F9B3 ; Emoji_Component # E11.0 [4] (🦰..🦳) red hair..white hair
E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..cancel tag
# Total elements: 146
# ================================================
# All omitted code points have Extended_Pictographic=No
00A9 ; Extended_Pictographic# E0.6 [1] (©️) copyright
00AE ; Extended_Pictographic# E0.6 [1] (®️) registered
203C ; Extended_Pictographic# E0.6 [1] (‼️) double exclamation mark
2049 ; Extended_Pictographic# E0.6 [1] (⁉️) exclamation question mark
2122 ; Extended_Pictographic# E0.6 [1] (™️) trade mark
2139 ; Extended_Pictographic# E0.6 [1] (ℹ️) information
2194..2199 ; Extended_Pictographic# E0.6 [6] (↔️..↙️) left-right arrow..down-left arrow
21A9..21AA ; Extended_Pictographic# E0.6 [2] (↩️..↪️) right arrow curving left..left arrow curving right
231A..231B ; Extended_Pictographic# E0.6 [2] (⌚..⌛) watch..hourglass done
2328 ; Extended_Pictographic# E1.0 [1] (⌨️) keyboard
23CF ; Extended_Pictographic# E1.0 [1] (⏏️) eject button
23E9..23EC ; Extended_Pictographic# E0.6 [4] (⏩..⏬) fast-forward button..fast down button
23ED..23EE ; Extended_Pictographic# E0.7 [2] (⏭️..⏮️) next track button..last track button
23EF ; Extended_Pictographic# E1.0 [1] (⏯️) play or pause button
23F0 ; Extended_Pictographic# E0.6 [1] (⏰) alarm clock
23F1..23F2 ; Extended_Pictographic# E1.0 [2] (⏱️..⏲️) stopwatch..timer clock
23F3 ; Extended_Pictographic# E0.6 [1] (⏳) hourglass not done
23F8..23FA ; Extended_Pictographic# E0.7 [3] (⏸️..⏺️) pause button..record button
24C2 ; Extended_Pictographic# E0.6 [1] (Ⓜ️) circled M
25AA..25AB ; Extended_Pictographic# E0.6 [2] (▪️..▫️) black small square..white small square
25B6 ; Extended_Pictographic# E0.6 [1] (▶️) play button
25C0 ; Extended_Pictographic# E0.6 [1] (◀️) reverse button
25FB..25FE ; Extended_Pictographic# E0.6 [4] (◻️..◾) white medium square..black medium-small square
2600..2601 ; Extended_Pictographic# E0.6 [2] (☀️..☁️) sun..cloud
2602..2603 ; Extended_Pictographic# E0.7 [2] (☂️..☃️) umbrella..snowman
2604 ; Extended_Pictographic# E1.0 [1] (☄️) comet
260E ; Extended_Pictographic# E0.6 [1] (☎️) telephone
2611 ; Extended_Pictographic# E0.6 [1] (☑️) check box with check
2614..2615 ; Extended_Pictographic# E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage
2618 ; Extended_Pictographic# E1.0 [1] (☘️) shamrock
261D ; Extended_Pictographic# E0.6 [1] (☝️) index pointing up
2620 ; Extended_Pictographic# E1.0 [1] (☠️) skull and crossbones
2622..2623 ; Extended_Pictographic# E1.0 [2] (☢️..☣️) radioactive..biohazard
2626 ; Extended_Pictographic# E1.0 [1] (☦️) orthodox cross
262A ; Extended_Pictographic# E0.7 [1] (☪️) star and crescent
262E ; Extended_Pictographic# E1.0 [1] (☮️) peace symbol
262F ; Extended_Pictographic# E0.7 [1] (☯️) yin yang
2638..2639 ; Extended_Pictographic# E0.7 [2] (☸️..☹️) wheel of dharma..frowning face
263A ; Extended_Pictographic# E0.6 [1] (☺️) smiling face
2640 ; Extended_Pictographic# E4.0 [1] (♀️) female sign
2642 ; Extended_Pictographic# E4.0 [1] (♂️) male sign
2648..2653 ; Extended_Pictographic# E0.6 [12] (♈..♓) Aries..Pisces
265F ; Extended_Pictographic# E11.0 [1] (♟️) chess pawn
2660 ; Extended_Pictographic# E0.6 [1] (♠️) spade suit
2663 ; Extended_Pictographic# E0.6 [1] (♣️) club suit
2665..2666 ; Extended_Pictographic# E0.6 [2] (♥️..♦️) heart suit..diamond suit
2668 ; Extended_Pictographic# E0.6 [1] (♨️) hot springs
267B ; Extended_Pictographic# E0.6 [1] (♻️) recycling symbol
267E ; Extended_Pictographic# E11.0 [1] (♾️) infinity
267F ; Extended_Pictographic# E0.6 [1] (♿) wheelchair symbol
2692 ; Extended_Pictographic# E1.0 [1] (⚒️) hammer and pick
2693 ; Extended_Pictographic# E0.6 [1] (⚓) anchor
2694 ; Extended_Pictographic# E1.0 [1] (⚔️) crossed swords
2695 ; Extended_Pictographic# E4.0 [1] (⚕️) medical symbol
2696..2697 ; Extended_Pictographic# E1.0 [2] (⚖️..⚗️) balance scale..alembic
2699 ; Extended_Pictographic# E1.0 [1] (⚙️) gear
269B..269C ; Extended_Pictographic# E1.0 [2] (⚛️..⚜️) atom symbol..fleur-de-lis
26A0..26A1 ; Extended_Pictographic# E0.6 [2] (⚠️..⚡) warning..high voltage
26A7 ; Extended_Pictographic# E13.0 [1] (⚧️) transgender symbol
26AA..26AB ; Extended_Pictographic# E0.6 [2] (⚪..⚫) white circle..black circle
26B0..26B1 ; Extended_Pictographic# E1.0 [2] (⚰️..⚱️) coffin..funeral urn
26BD..26BE ; Extended_Pictographic# E0.6 [2] (⚽..⚾) soccer ball..baseball
26C4..26C5 ; Extended_Pictographic# E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud
26C8 ; Extended_Pictographic# E0.7 [1] (⛈️) cloud with lightning and rain
26CE ; Extended_Pictographic# E0.6 [1] (⛎) Ophiuchus
26CF ; Extended_Pictographic# E0.7 [1] (⛏️) pick
26D1 ; Extended_Pictographic# E0.7 [1] (⛑️) rescue worker’s helmet
26D3 ; Extended_Pictographic# E0.7 [1] (⛓️) chains
26D4 ; Extended_Pictographic# E0.6 [1] (⛔) no entry
26E9 ; Extended_Pictographic# E0.7 [1] (⛩️) shinto shrine
26EA ; Extended_Pictographic# E0.6 [1] (⛪) church
26F0..26F1 ; Extended_Pictographic# E0.7 [2] (⛰️..⛱️) mountain..umbrella on ground
26F2..26F3 ; Extended_Pictographic# E0.6 [2] (⛲..⛳) fountain..flag in hole
26F4 ; Extended_Pictographic# E0.7 [1] (⛴️) ferry
26F5 ; Extended_Pictographic# E0.6 [1] (⛵) sailboat
26F7..26F9 ; Extended_Pictographic# E0.7 [3] (⛷️..⛹️) skier..person bouncing ball
26FA ; Extended_Pictographic# E0.6 [1] (⛺) tent
26FD ; Extended_Pictographic# E0.6 [1] (⛽) fuel pump
2702 ; Extended_Pictographic# E0.6 [1] (✂️) scissors
2705 ; Extended_Pictographic# E0.6 [1] (✅) check mark button
2708..270C ; Extended_Pictographic# E0.6 [5] (✈️..✌️) airplane..victory hand
270D ; Extended_Pictographic# E0.7 [1] (✍️) writing hand
270F ; Extended_Pictographic# E0.6 [1] (✏️) pencil
2712 ; Extended_Pictographic# E0.6 [1] (✒️) black nib
2714 ; Extended_Pictographic# E0.6 [1] (✔️) check mark
2716 ; Extended_Pictographic# E0.6 [1] (✖️) multiply
271D ; Extended_Pictographic# E0.7 [1] (✝️) latin cross
2721 ; Extended_Pictographic# E0.7 [1] (✡️) star of David
2728 ; Extended_Pictographic# E0.6 [1] (✨) sparkles
2733..2734 ; Extended_Pictographic# E0.6 [2] (✳️..✴️) eight-spoked asterisk..eight-pointed star
2744 ; Extended_Pictographic# E0.6 [1] (❄️) snowflake
2747 ; Extended_Pictographic# E0.6 [1] (❇️) sparkle
274C ; Extended_Pictographic# E0.6 [1] (❌) cross mark
274E ; Extended_Pictographic# E0.6 [1] (❎) cross mark button
2753..2755 ; Extended_Pictographic# E0.6 [3] (❓..❕) red question mark..white exclamation mark
2757 ; Extended_Pictographic# E0.6 [1] (❗) red exclamation mark
2763 ; Extended_Pictographic# E1.0 [1] (❣️) heart exclamation
2764 ; Extended_Pictographic# E0.6 [1] (❤️) red heart
2795..2797 ; Extended_Pictographic# E0.6 [3] (➕..➗) plus..divide
27A1 ; Extended_Pictographic# E0.6 [1] (➡️) right arrow
27B0 ; Extended_Pictographic# E0.6 [1] (➰) curly loop
27BF ; Extended_Pictographic# E1.0 [1] (➿) double curly loop
2934..2935 ; Extended_Pictographic# E0.6 [2] (⤴️..⤵️) right arrow curving up..right arrow curving down
2B05..2B07 ; Extended_Pictographic# E0.6 [3] (⬅️..⬇️) left arrow..down arrow
2B1B..2B1C ; Extended_Pictographic# E0.6 [2] (⬛..⬜) black large square..white large square
2B50 ; Extended_Pictographic# E0.6 [1] (⭐) star
2B55 ; Extended_Pictographic# E0.6 [1] (⭕) hollow red circle
3030 ; Extended_Pictographic# E0.6 [1] (〰️) wavy dash
303D ; Extended_Pictographic# E0.6 [1] (〽️) part alternation mark
3297 ; Extended_Pictographic# E0.6 [1] (㊗️) Japanese “congratulations” button
3299 ; Extended_Pictographic# E0.6 [1] (㊙️) Japanese “secret” button
1F004 ; Extended_Pictographic# E0.6 [1] (🀄) mahjong red dragon
1F02C..1F02F ; Extended_Pictographic# E0.0 [4] (🀬..🀯) <reserved-1F02C>..<reserved-1F02F>
1F094..1F09F ; Extended_Pictographic# E0.0 [12] (🂔..🂟) <reserved-1F094>..<reserved-1F09F>
1F0AF..1F0B0 ; Extended_Pictographic# E0.0 [2] (🂯..🂰) <reserved-1F0AF>..<reserved-1F0B0>
1F0C0 ; Extended_Pictographic# E0.0 [1] (🃀) <reserved-1F0C0>
1F0CF ; Extended_Pictographic# E0.6 [1] (🃏) joker
1F0D0 ; Extended_Pictographic# E0.0 [1] (🃐) <reserved-1F0D0>
1F0F6..1F0FF ; Extended_Pictographic# E0.0 [10] (🃶..🃿) <reserved-1F0F6>..<reserved-1F0FF>
1F170..1F171 ; Extended_Pictographic# E0.6 [2] (🅰️..🅱️) A button (blood type)..B button (blood type)
1F17E..1F17F ; Extended_Pictographic# E0.6 [2] (🅾️..🅿️) O button (blood type)..P button
1F18E ; Extended_Pictographic# E0.6 [1] (🆎) AB button (blood type)
1F191..1F19A ; Extended_Pictographic# E0.6 [10] (🆑..🆚) CL button..VS button
1F1AE..1F1E5 ; Extended_Pictographic# E0.0 [56] (🆮..🇥) <reserved-1F1AE>..<reserved-1F1E5>
1F201..1F202 ; Extended_Pictographic# E0.6 [2] (🈁..🈂️) Japanese “here” button..Japanese “service charge” button
1F203..1F20F ; Extended_Pictographic# E0.0 [13] (🈃..🈏) <reserved-1F203>..<reserved-1F20F>
1F21A ; Extended_Pictographic# E0.6 [1] (🈚) Japanese “free of charge” button
1F22F ; Extended_Pictographic# E0.6 [1] (🈯) Japanese “reserved” button
1F232..1F23A ; Extended_Pictographic# E0.6 [9] (🈲..🈺) Japanese “prohibited” button..Japanese “open for business” button
1F23C..1F23F ; Extended_Pictographic# E0.0 [4] (🈼..🈿) <reserved-1F23C>..<reserved-1F23F>
1F249..1F24F ; Extended_Pictographic# E0.0 [7] (🉉..🉏) <reserved-1F249>..<reserved-1F24F>
1F250..1F251 ; Extended_Pictographic# E0.6 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button
1F252..1F25F ; Extended_Pictographic# E0.0 [14] (🉒..🉟) <reserved-1F252>..<reserved-1F25F>
1F266..1F2FF ; Extended_Pictographic# E0.0 [154] (🉦..🋿) <reserved-1F266>..<reserved-1F2FF>
1F300..1F30C ; Extended_Pictographic# E0.6 [13] (🌀..🌌) cyclone..milky way
1F30D..1F30E ; Extended_Pictographic# E0.7 [2] (🌍..🌎) globe showing Europe-Africa..globe showing Americas
1F30F ; Extended_Pictographic# E0.6 [1] (🌏) globe showing Asia-Australia
1F310 ; Extended_Pictographic# E1.0 [1] (🌐) globe with meridians
1F311 ; Extended_Pictographic# E0.6 [1] (🌑) new moon
1F312 ; Extended_Pictographic# E1.0 [1] (🌒) waxing crescent moon
1F313..1F315 ; Extended_Pictographic# E0.6 [3] (🌓..🌕) first quarter moon..full moon
1F316..1F318 ; Extended_Pictographic# E1.0 [3] (🌖..🌘) waning gibbous moon..waning crescent moon
1F319 ; Extended_Pictographic# E0.6 [1] (🌙) crescent moon
1F31A ; Extended_Pictographic# E1.0 [1] (🌚) new moon face
1F31B ; Extended_Pictographic# E0.6 [1] (🌛) first quarter moon face
1F31C ; Extended_Pictographic# E0.7 [1] (🌜) last quarter moon face
1F31D..1F31E ; Extended_Pictographic# E1.0 [2] (🌝..🌞) full moon face..sun with face
1F31F..1F320 ; Extended_Pictographic# E0.6 [2] (🌟..🌠) glowing star..shooting star
1F321 ; Extended_Pictographic# E0.7 [1] (🌡️) thermometer
1F324..1F32C ; Extended_Pictographic# E0.7 [9] (🌤️..🌬️) sun behind small cloud..wind face
1F32D..1F32F ; Extended_Pictographic# E1.0 [3] (🌭..🌯) hot dog..burrito
1F330..1F331 ; Extended_Pictographic# E0.6 [2] (🌰..🌱) chestnut..seedling
1F332..1F333 ; Extended_Pictographic# E1.0 [2] (🌲..🌳) evergreen tree..deciduous tree
1F334..1F335 ; Extended_Pictographic# E0.6 [2] (🌴..🌵) palm tree..cactus
1F336 ; Extended_Pictographic# E0.7 [1] (🌶️) hot pepper
1F337..1F34A ; Extended_Pictographic# E0.6 [20] (🌷..🍊) tulip..tangerine
1F34B ; Extended_Pictographic# E1.0 [1] (🍋) lemon
1F34C..1F34F ; Extended_Pictographic# E0.6 [4] (🍌..🍏) banana..green apple
1F350 ; Extended_Pictographic# E1.0 [1] (🍐) pear
1F351..1F37B ; Extended_Pictographic# E0.6 [43] (🍑..🍻) peach..clinking beer mugs
1F37C ; Extended_Pictographic# E1.0 [1] (🍼) baby bottle
1F37D ; Extended_Pictographic# E0.7 [1] (🍽️) fork and knife with plate
1F37E..1F37F ; Extended_Pictographic# E1.0 [2] (🍾..🍿) bottle with popping cork..popcorn
1F380..1F393 ; Extended_Pictographic# E0.6 [20] (🎀..🎓) ribbon..graduation cap
1F396..1F397 ; Extended_Pictographic# E0.7 [2] (🎖️..🎗️) military medal..reminder ribbon
1F399..1F39B ; Extended_Pictographic# E0.7 [3] (🎙️..🎛️) studio microphone..control knobs
1F39E..1F39F ; Extended_Pictographic# E0.7 [2] (🎞️..🎟️) film frames..admission tickets
1F3A0..1F3C4 ; Extended_Pictographic# E0.6 [37] (🎠..🏄) carousel horse..person surfing
1F3C5 ; Extended_Pictographic# E1.0 [1] (🏅) sports medal
1F3C6 ; Extended_Pictographic# E0.6 [1] (🏆) trophy
1F3C7 ; Extended_Pictographic# E1.0 [1] (🏇) horse racing
1F3C8 ; Extended_Pictographic# E0.6 [1] (🏈) american football
1F3C9 ; Extended_Pictographic# E1.0 [1] (🏉) rugby football
1F3CA ; Extended_Pictographic# E0.6 [1] (🏊) person swimming
1F3CB..1F3CE ; Extended_Pictographic# E0.7 [4] (🏋️..🏎️) person lifting weights..racing car
1F3CF..1F3D3 ; Extended_Pictographic# E1.0 [5] (🏏..🏓) cricket game..ping pong
1F3D4..1F3DF ; Extended_Pictographic# E0.7 [12] (🏔️..🏟️) snow-capped mountain..stadium
1F3E0..1F3E3 ; Extended_Pictographic# E0.6 [4] (🏠..🏣) house..Japanese post office
1F3E4 ; Extended_Pictographic# E1.0 [1] (🏤) post office
1F3E5..1F3F0 ; Extended_Pictographic# E0.6 [12] (🏥..🏰) hospital..castle
1F3F3 ; Extended_Pictographic# E0.7 [1] (🏳️) white flag
1F3F4 ; Extended_Pictographic# E1.0 [1] (🏴) black flag
1F3F5 ; Extended_Pictographic# E0.7 [1] (🏵️) rosette
1F3F7 ; Extended_Pictographic# E0.7 [1] (🏷️) label
1F3F8..1F3FA ; Extended_Pictographic# E1.0 [3] (🏸..🏺) badminton..amphora
1F400..1F407 ; Extended_Pictographic# E1.0 [8] (🐀..🐇) rat..rabbit
1F408 ; Extended_Pictographic# E0.7 [1] (🐈) cat
1F409..1F40B ; Extended_Pictographic# E1.0 [3] (🐉..🐋) dragon..whale
1F40C..1F40E ; Extended_Pictographic# E0.6 [3] (🐌..🐎) snail..horse
1F40F..1F410 ; Extended_Pictographic# E1.0 [2] (🐏..🐐) ram..goat
1F411..1F412 ; Extended_Pictographic# E0.6 [2] (🐑..🐒) ewe..monkey
1F413 ; Extended_Pictographic# E1.0 [1] (🐓) rooster
1F414 ; Extended_Pictographic# E0.6 [1] (🐔) chicken
1F415 ; Extended_Pictographic# E0.7 [1] (🐕) dog
1F416 ; Extended_Pictographic# E1.0 [1] (🐖) pig
1F417..1F429 ; Extended_Pictographic# E0.6 [19] (🐗..🐩) boar..poodle
1F42A ; Extended_Pictographic# E1.0 [1] (🐪) camel
1F42B..1F43E ; Extended_Pictographic# E0.6 [20] (🐫..🐾) two-hump camel..paw prints
1F43F ; Extended_Pictographic# E0.7 [1] (🐿️) chipmunk
1F440 ; Extended_Pictographic# E0.6 [1] (👀) eyes
1F441 ; Extended_Pictographic# E0.7 [1] (👁️) eye
1F442..1F464 ; Extended_Pictographic# E0.6 [35] (👂..👤) ear..bust in silhouette
1F465 ; Extended_Pictographic# E1.0 [1] (👥) busts in silhouette
1F466..1F46B ; Extended_Pictographic# E0.6 [6] (👦..👫) boy..woman and man holding hands
1F46C..1F46D ; Extended_Pictographic# E1.0 [2] (👬..👭) men holding hands..women holding hands
1F46E..1F4AC ; Extended_Pictographic# E0.6 [63] (👮..💬) police officer..speech balloon
1F4AD ; Extended_Pictographic# E1.0 [1] (💭) thought balloon
1F4AE..1F4B5 ; Extended_Pictographic# E0.6 [8] (💮..💵) white flower..dollar banknote
1F4B6..1F4B7 ; Extended_Pictographic# E1.0 [2] (💶..💷) euro banknote..pound banknote
1F4B8..1F4EB ; Extended_Pictographic# E0.6 [52] (💸..📫) money with wings..closed mailbox with raised flag
1F4EC..1F4ED ; Extended_Pictographic# E0.7 [2] (📬..📭) open mailbox with raised flag..open mailbox with lowered flag
1F4EE ; Extended_Pictographic# E0.6 [1] (📮) postbox
1F4EF ; Extended_Pictographic# E1.0 [1] (📯) postal horn
1F4F0..1F4F4 ; Extended_Pictographic# E0.6 [5] (📰..📴) newspaper..mobile phone off
1F4F5 ; Extended_Pictographic# E1.0 [1] (📵) no mobile phones
1F4F6..1F4F7 ; Extended_Pictographic# E0.6 [2] (📶..📷) antenna bars..camera
1F4F8 ; Extended_Pictographic# E1.0 [1] (📸) camera with flash
1F4F9..1F4FC ; Extended_Pictographic# E0.6 [4] (📹..📼) video camera..videocassette
1F4FD ; Extended_Pictographic# E0.7 [1] (📽️) film projector
1F4FF..1F502 ; Extended_Pictographic# E1.0 [4] (📿..🔂) prayer beads..repeat single button
1F503 ; Extended_Pictographic# E0.6 [1] (🔃) clockwise vertical arrows
1F504..1F507 ; Extended_Pictographic# E1.0 [4] (🔄..🔇) counterclockwise arrows button..muted speaker
1F508 ; Extended_Pictographic# E0.7 [1] (🔈) speaker low volume
1F509 ; Extended_Pictographic# E1.0 [1] (🔉) speaker medium volume
1F50A..1F514 ; Extended_Pictographic# E0.6 [11] (🔊..🔔) speaker high volume..bell
1F515 ; Extended_Pictographic# E1.0 [1] (🔕) bell with slash
1F516..1F52B ; Extended_Pictographic# E0.6 [22] (🔖..🔫) bookmark..water pistol
1F52C..1F52D ; Extended_Pictographic# E1.0 [2] (🔬..🔭) microscope..telescope
1F52E..1F53D ; Extended_Pictographic# E0.6 [16] (🔮..🔽) crystal ball..downwards button
1F549..1F54A ; Extended_Pictographic# E0.7 [2] (🕉️..🕊️) om..dove
1F54B..1F54E ; Extended_Pictographic# E1.0 [4] (🕋..🕎) kaaba..menorah
1F550..1F55B ; Extended_Pictographic# E0.6 [12] (🕐..🕛) one o’clock..twelve o’clock
1F55C..1F567 ; Extended_Pictographic# E0.7 [12] (🕜..🕧) one-thirty..twelve-thirty
1F56F..1F570 ; Extended_Pictographic# E0.7 [2] (🕯️..🕰️) candle..mantelpiece clock
1F573..1F579 ; Extended_Pictographic# E0.7 [7] (🕳️..🕹️) hole..joystick
1F57A ; Extended_Pictographic# E3.0 [1] (🕺) man dancing
1F587 ; Extended_Pictographic# E0.7 [1] (🖇️) linked paperclips
1F58A..1F58D ; Extended_Pictographic# E0.7 [4] (🖊️..🖍️) pen..crayon
1F590 ; Extended_Pictographic# E0.7 [1] (🖐️) hand with fingers splayed
1F595..1F596 ; Extended_Pictographic# E1.0 [2] (🖕..🖖) middle finger..vulcan salute
1F5A4 ; Extended_Pictographic# E3.0 [1] (🖤) black heart
1F5A5 ; Extended_Pictographic# E0.7 [1] (🖥️) desktop computer
1F5A8 ; Extended_Pictographic# E0.7 [1] (🖨️) printer
1F5B1..1F5B2 ; Extended_Pictographic# E0.7 [2] (🖱️..🖲️) computer mouse..trackball
1F5BC ; Extended_Pictographic# E0.7 [1] (🖼️) framed picture
1F5C2..1F5C4 ; Extended_Pictographic# E0.7 [3] (🗂️..🗄️) card index dividers..file cabinet
1F5D1..1F5D3 ; Extended_Pictographic# E0.7 [3] (🗑️..🗓️) wastebasket..spiral calendar
1F5DC..1F5DE ; Extended_Pictographic# E0.7 [3] (🗜️..🗞️) clamp..rolled-up newspaper
1F5E1 ; Extended_Pictographic# E0.7 [1] (🗡️) dagger
1F5E3 ; Extended_Pictographic# E0.7 [1] (🗣️) speaking head
1F5E8 ; Extended_Pictographic# E2.0 [1] (🗨️) left speech bubble
1F5EF ; Extended_Pictographic# E0.7 [1] (🗯️) right anger bubble
1F5F3 ; Extended_Pictographic# E0.7 [1] (🗳️) ballot box with ballot
1F5FA ; Extended_Pictographic# E0.7 [1] (🗺️) world map
1F5FB..1F5FF ; Extended_Pictographic# E0.6 [5] (🗻..🗿) mount fuji..moai
1F600 ; Extended_Pictographic# E1.0 [1] (😀) grinning face
1F601..1F606 ; Extended_Pictographic# E0.6 [6] (😁..😆) beaming face with smiling eyes..grinning squinting face
1F607..1F608 ; Extended_Pictographic# E1.0 [2] (😇..😈) smiling face with halo..smiling face with horns
1F609..1F60D ; Extended_Pictographic# E0.6 [5] (😉..😍) winking face..smiling face with heart-eyes
1F60E ; Extended_Pictographic# E1.0 [1] (😎) smiling face with sunglasses
1F60F ; Extended_Pictographic# E0.6 [1] (😏) smirking face
1F610 ; Extended_Pictographic# E0.7 [1] (😐) neutral face
1F611 ; Extended_Pictographic# E1.0 [1] (😑) expressionless face
1F612..1F614 ; Extended_Pictographic# E0.6 [3] (😒..😔) unamused face..pensive face
1F615 ; Extended_Pictographic# E1.0 [1] (😕) confused face
1F616 ; Extended_Pictographic# E0.6 [1] (😖) confounded face
1F617 ; Extended_Pictographic# E1.0 [1] (😗) kissing face
1F618 ; Extended_Pictographic# E0.6 [1] (😘) face blowing a kiss
1F619 ; Extended_Pictographic# E1.0 [1] (😙) kissing face with smiling eyes
1F61A ; Extended_Pictographic# E0.6 [1] (😚) kissing face with closed eyes
1F61B ; Extended_Pictographic# E1.0 [1] (😛) face with tongue
1F61C..1F61E ; Extended_Pictographic# E0.6 [3] (😜..😞) winking face with tongue..disappointed face
1F61F ; Extended_Pictographic# E1.0 [1] (😟) worried face
1F620..1F625 ; Extended_Pictographic# E0.6 [6] (😠..😥) angry face..sad but relieved face
1F626..1F627 ; Extended_Pictographic# E1.0 [2] (😦..😧) frowning face with open mouth..anguished face
1F628..1F62B ; Extended_Pictographic# E0.6 [4] (😨..😫) fearful face..tired face
1F62C ; Extended_Pictographic# E1.0 [1] (😬) grimacing face
1F62D ; Extended_Pictographic# E0.6 [1] (😭) loudly crying face
1F62E..1F62F ; Extended_Pictographic# E1.0 [2] (😮..😯) face with open mouth..hushed face
1F630..1F633 ; Extended_Pictographic# E0.6 [4] (😰..😳) anxious face with sweat..flushed face
1F634 ; Extended_Pictographic# E1.0 [1] (😴) sleeping face
1F635 ; Extended_Pictographic# E0.6 [1] (😵) face with crossed-out eyes
1F636 ; Extended_Pictographic# E1.0 [1] (😶) face without mouth
1F637..1F640 ; Extended_Pictographic# E0.6 [10] (😷..🙀) face with medical mask..weary cat
1F641..1F644 ; Extended_Pictographic# E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes
1F645..1F64F ; Extended_Pictographic# E0.6 [11] (🙅..🙏) person gesturing NO..folded hands
1F680 ; Extended_Pictographic# E0.6 [1] (🚀) rocket
1F681..1F682 ; Extended_Pictographic# E1.0 [2] (🚁..🚂) helicopter..locomotive
1F683..1F685 ; Extended_Pictographic# E0.6 [3] (🚃..🚅) railway car..bullet train
1F686 ; Extended_Pictographic# E1.0 [1] (🚆) train
1F687 ; Extended_Pictographic# E0.6 [1] (🚇) metro
1F688 ; Extended_Pictographic# E1.0 [1] (🚈) light rail
1F689 ; Extended_Pictographic# E0.6 [1] (🚉) station
1F68A..1F68B ; Extended_Pictographic# E1.0 [2] (🚊..🚋) tram..tram car
1F68C ; Extended_Pictographic# E0.6 [1] (🚌) bus
1F68D ; Extended_Pictographic# E0.7 [1] (🚍) oncoming bus
1F68E ; Extended_Pictographic# E1.0 [1] (🚎) trolleybus
1F68F ; Extended_Pictographic# E0.6 [1] (🚏) bus stop
1F690 ; Extended_Pictographic# E1.0 [1] (🚐) minibus
1F691..1F693 ; Extended_Pictographic# E0.6 [3] (🚑..🚓) ambulance..police car
1F694 ; Extended_Pictographic# E0.7 [1] (🚔) oncoming police car
1F695 ; Extended_Pictographic# E0.6 [1] (🚕) taxi
1F696 ; Extended_Pictographic# E1.0 [1] (🚖) oncoming taxi
1F697 ; Extended_Pictographic# E0.6 [1] (🚗) automobile
1F698 ; Extended_Pictographic# E0.7 [1] (🚘) oncoming automobile
1F699..1F69A ; Extended_Pictographic# E0.6 [2] (🚙..🚚) sport utility vehicle..delivery truck
1F69B..1F6A1 ; Extended_Pictographic# E1.0 [7] (🚛..🚡) articulated lorry..aerial tramway
1F6A2 ; Extended_Pictographic# E0.6 [1] (🚢) ship
1F6A3 ; Extended_Pictographic# E1.0 [1] (🚣) person rowing boat
1F6A4..1F6A5 ; Extended_Pictographic# E0.6 [2] (🚤..🚥) speedboat..horizontal traffic light
1F6A6 ; Extended_Pictographic# E1.0 [1] (🚦) vertical traffic light
1F6A7..1F6AD ; Extended_Pictographic# E0.6 [7] (🚧..🚭) construction..no smoking
1F6AE..1F6B1 ; Extended_Pictographic# E1.0 [4] (🚮..🚱) litter in bin sign..non-potable water
1F6B2 ; Extended_Pictographic# E0.6 [1] (🚲) bicycle
1F6B3..1F6B5 ; Extended_Pictographic# E1.0 [3] (🚳..🚵) no bicycles..person mountain biking
1F6B6 ; Extended_Pictographic# E0.6 [1] (🚶) person walking
1F6B7..1F6B8 ; Extended_Pictographic# E1.0 [2] (🚷..🚸) no pedestrians..children crossing
1F6B9..1F6BE ; Extended_Pictographic# E0.6 [6] (🚹..🚾) men’s room..water closet
1F6BF ; Extended_Pictographic# E1.0 [1] (🚿) shower
1F6C0 ; Extended_Pictographic# E0.6 [1] (🛀) person taking bath
1F6C1..1F6C5 ; Extended_Pictographic# E1.0 [5] (🛁..🛅) bathtub..left luggage
1F6CB ; Extended_Pictographic# E0.7 [1] (🛋️) couch and lamp
1F6CC ; Extended_Pictographic# E1.0 [1] (🛌) person in bed
1F6CD..1F6CF ; Extended_Pictographic# E0.7 [3] (🛍️..🛏️) shopping bags..bed
1F6D0 ; Extended_Pictographic# E1.0 [1] (🛐) place of worship
1F6D1..1F6D2 ; Extended_Pictographic# E3.0 [2] (🛑..🛒) stop sign..shopping cart
1F6D5 ; Extended_Pictographic# E12.0 [1] (🛕) hindu temple
1F6D6..1F6D7 ; Extended_Pictographic# E13.0 [2] (🛖..🛗) hut..elevator
1F6D8 ; Extended_Pictographic# E17.0 [1] (🛘) landslide
1F6D9..1F6DB ; Extended_Pictographic# E0.0 [3] (🛙..🛛) <reserved-1F6D9>..<reserved-1F6DB>
1F6DC ; Extended_Pictographic# E15.0 [1] (🛜) wireless
1F6DD..1F6DF ; Extended_Pictographic# E14.0 [3] (🛝..🛟) playground slide..ring buoy
1F6E0..1F6E5 ; Extended_Pictographic# E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat
1F6E9 ; Extended_Pictographic# E0.7 [1] (🛩️) small airplane
1F6EB..1F6EC ; Extended_Pictographic# E1.0 [2] (🛫..🛬) airplane departure..airplane arrival
1F6ED..1F6EF ; Extended_Pictographic# E0.0 [3] (🛭..🛯) <reserved-1F6ED>..<reserved-1F6EF>
1F6F0 ; Extended_Pictographic# E0.7 [1] (🛰️) satellite
1F6F3 ; Extended_Pictographic# E0.7 [1] (🛳️) passenger ship
1F6F4..1F6F6 ; Extended_Pictographic# E3.0 [3] (🛴..🛶) kick scooter..canoe
1F6F7..1F6F8 ; Extended_Pictographic# E5.0 [2] (🛷..🛸) sled..flying saucer
1F6F9 ; Extended_Pictographic# E11.0 [1] (🛹) skateboard
1F6FA ; Extended_Pictographic# E12.0 [1] (🛺) auto rickshaw
1F6FB..1F6FC ; Extended_Pictographic# E13.0 [2] (🛻..🛼) pickup truck..roller skate
1F6FD..1F6FF ; Extended_Pictographic# E0.0 [3] (🛽..🛿) <reserved-1F6FD>..<reserved-1F6FF>
1F7DA..1F7DF ; Extended_Pictographic# E0.0 [6] (🟚..🟟) <reserved-1F7DA>..<reserved-1F7DF>
1F7E0..1F7EB ; Extended_Pictographic# E12.0 [12] (🟠..🟫) orange circle..brown square
1F7EC..1F7EF ; Extended_Pictographic# E0.0 [4] (🟬..🟯) <reserved-1F7EC>..<reserved-1F7EF>
1F7F0 ; Extended_Pictographic# E14.0 [1] (🟰) heavy equals sign
1F7F1..1F7FF ; Extended_Pictographic# E0.0 [15] (🟱..🟿) <reserved-1F7F1>..<reserved-1F7FF>
1F80C..1F80F ; Extended_Pictographic# E0.0 [4] (🠌..🠏) <reserved-1F80C>..<reserved-1F80F>
1F848..1F84F ; Extended_Pictographic# E0.0 [8] (🡈..🡏) <reserved-1F848>..<reserved-1F84F>
1F85A..1F85F ; Extended_Pictographic# E0.0 [6] (🡚..🡟) <reserved-1F85A>..<reserved-1F85F>
1F888..1F88F ; Extended_Pictographic# E0.0 [8] (🢈..🢏) <reserved-1F888>..<reserved-1F88F>
1F8AE..1F8AF ; Extended_Pictographic# E0.0 [2] (🢮..🢯) <reserved-1F8AE>..<reserved-1F8AF>
1F8BC..1F8BF ; Extended_Pictographic# E0.0 [4] (🢼..🢿) <reserved-1F8BC>..<reserved-1F8BF>
1F8C2..1F8CF ; Extended_Pictographic# E0.0 [14] (🣂..🣏) <reserved-1F8C2>..<reserved-1F8CF>
1F8D9..1F8FF ; Extended_Pictographic# E0.0 [39] (🣙..🣿) <reserved-1F8D9>..<reserved-1F8FF>
1F90C ; Extended_Pictographic# E13.0 [1] (🤌) pinched fingers
1F90D..1F90F ; Extended_Pictographic# E12.0 [3] (🤍..🤏) white heart..pinching hand
1F910..1F918 ; Extended_Pictographic# E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns
1F919..1F91E ; Extended_Pictographic# E3.0 [6] (🤙..🤞) call me hand..crossed fingers
1F91F ; Extended_Pictographic# E5.0 [1] (🤟) love-you gesture
1F920..1F927 ; Extended_Pictographic# E3.0 [8] (🤠..🤧) cowboy hat face..sneezing face
1F928..1F92F ; Extended_Pictographic# E5.0 [8] (🤨..🤯) face with raised eyebrow..exploding head
1F930 ; Extended_Pictographic# E3.0 [1] (🤰) pregnant woman
1F931..1F932 ; Extended_Pictographic# E5.0 [2] (🤱..🤲) breast-feeding..palms up together
1F933..1F93A ; Extended_Pictographic# E3.0 [8] (🤳..🤺) selfie..person fencing
1F93C..1F93E ; Extended_Pictographic# E3.0 [3] (🤼..🤾) people wrestling..person playing handball
1F93F ; Extended_Pictographic# E12.0 [1] (🤿) diving mask
1F940..1F945 ; Extended_Pictographic# E3.0 [6] (🥀..🥅) wilted flower..goal net
1F947..1F94B ; Extended_Pictographic# E3.0 [5] (🥇..🥋) 1st place medal..martial arts uniform
1F94C ; Extended_Pictographic# E5.0 [1] (🥌) curling stone
1F94D..1F94F ; Extended_Pictographic# E11.0 [3] (🥍..🥏) lacrosse..flying disc
1F950..1F95E ; Extended_Pictographic# E3.0 [15] (🥐..🥞) croissant..pancakes
1F95F..1F96B ; Extended_Pictographic# E5.0 [13] (🥟..🥫) dumpling..canned food
1F96C..1F970 ; Extended_Pictographic# E11.0 [5] (🥬..🥰) leafy green..smiling face with hearts
1F971 ; Extended_Pictographic# E12.0 [1] (🥱) yawning face
1F972 ; Extended_Pictographic# E13.0 [1] (🥲) smiling face with tear
1F973..1F976 ; Extended_Pictographic# E11.0 [4] (🥳..🥶) partying face..cold face
1F977..1F978 ; Extended_Pictographic# E13.0 [2] (🥷..🥸) ninja..disguised face
1F979 ; Extended_Pictographic# E14.0 [1] (🥹) face holding back tears
1F97A ; Extended_Pictographic# E11.0 [1] (🥺) pleading face
1F97B ; Extended_Pictographic# E12.0 [1] (🥻) sari
1F97C..1F97F ; Extended_Pictographic# E11.0 [4] (🥼..🥿) lab coat..flat shoe
1F980..1F984 ; Extended_Pictographic# E1.0 [5] (🦀..🦄) crab..unicorn
1F985..1F991 ; Extended_Pictographic# E3.0 [13] (🦅..🦑) eagle..squid
1F992..1F997 ; Extended_Pictographic# E5.0 [6] (🦒..🦗) giraffe..cricket
1F998..1F9A2 ; Extended_Pictographic# E11.0 [11] (🦘..🦢) kangaroo..swan
1F9A3..1F9A4 ; Extended_Pictographic# E13.0 [2] (🦣..🦤) mammoth..dodo
1F9A5..1F9AA ; Extended_Pictographic# E12.0 [6] (🦥..🦪) sloth..oyster
1F9AB..1F9AD ; Extended_Pictographic# E13.0 [3] (🦫..🦭) beaver..seal
1F9AE..1F9AF ; Extended_Pictographic# E12.0 [2] (🦮..🦯) guide dog..white cane
1F9B0..1F9B9 ; Extended_Pictographic# E11.0 [10] (🦰..🦹) red hair..supervillain
1F9BA..1F9BF ; Extended_Pictographic# E12.0 [6] (🦺..🦿) safety vest..mechanical leg
1F9C0 ; Extended_Pictographic# E1.0 [1] (🧀) cheese wedge
1F9C1..1F9C2 ; Extended_Pictographic# E11.0 [2] (🧁..🧂) cupcake..salt
1F9C3..1F9CA ; Extended_Pictographic# E12.0 [8] (🧃..🧊) beverage box..ice
1F9CB ; Extended_Pictographic# E13.0 [1] (🧋) bubble tea
1F9CC ; Extended_Pictographic# E14.0 [1] (🧌) troll
1F9CD..1F9CF ; Extended_Pictographic# E12.0 [3] (🧍..🧏) person standing..deaf person
1F9D0..1F9E6 ; Extended_Pictographic# E5.0 [23] (🧐..🧦) face with monocle..socks
1F9E7..1F9FF ; Extended_Pictographic# E11.0 [25] (🧧..🧿) red envelope..nazar amulet
1FA58..1FA5F ; Extended_Pictographic# E0.0 [8] (🩘..🩟) <reserved-1FA58>..<reserved-1FA5F>
1FA6E..1FA6F ; Extended_Pictographic# E0.0 [2] (🩮..🩯) <reserved-1FA6E>..<reserved-1FA6F>
1FA70..1FA73 ; Extended_Pictographic# E12.0 [4] (🩰..🩳) ballet shoes..shorts
1FA74 ; Extended_Pictographic# E13.0 [1] (🩴) thong sandal
1FA75..1FA77 ; Extended_Pictographic# E15.0 [3] (🩵..🩷) light blue heart..pink heart
1FA78..1FA7A ; Extended_Pictographic# E12.0 [3] (🩸..🩺) drop of blood..stethoscope
1FA7B..1FA7C ; Extended_Pictographic# E14.0 [2] (🩻..🩼) x-ray..crutch
1FA7D..1FA7F ; Extended_Pictographic# E0.0 [3] (🩽..🩿) <reserved-1FA7D>..<reserved-1FA7F>
1FA80..1FA82 ; Extended_Pictographic# E12.0 [3] (🪀..🪂) yo-yo..parachute
1FA83..1FA86 ; Extended_Pictographic# E13.0 [4] (🪃..🪆) boomerang..nesting dolls
1FA87..1FA88 ; Extended_Pictographic# E15.0 [2] (🪇..🪈) maracas..flute
1FA89 ; Extended_Pictographic# E16.0 [1] (🪉) harp
1FA8A ; Extended_Pictographic# E17.0 [1] (🪊) trombone
1FA8B..1FA8D ; Extended_Pictographic# E0.0 [3] (🪋..🪍) <reserved-1FA8B>..<reserved-1FA8D>
1FA8E ; Extended_Pictographic# E17.0 [1] (🪎) treasure chest
1FA8F ; Extended_Pictographic# E16.0 [1] (🪏) shovel
1FA90..1FA95 ; Extended_Pictographic# E12.0 [6] (🪐..🪕) ringed planet..banjo
1FA96..1FAA8 ; Extended_Pictographic# E13.0 [19] (🪖..🪨) military helmet..rock
1FAA9..1FAAC ; Extended_Pictographic# E14.0 [4] (🪩..🪬) mirror ball..hamsa
1FAAD..1FAAF ; Extended_Pictographic# E15.0 [3] (🪭..🪯) folding hand fan..khanda
1FAB0..1FAB6 ; Extended_Pictographic# E13.0 [7] (🪰..🪶) fly..feather
1FAB7..1FABA ; Extended_Pictographic# E14.0 [4] (🪷..🪺) lotus..nest with eggs
1FABB..1FABD ; Extended_Pictographic# E15.0 [3] (🪻..🪽) hyacinth..wing
1FABE ; Extended_Pictographic# E16.0 [1] (🪾) leafless tree
1FABF ; Extended_Pictographic# E15.0 [1] (🪿) goose
1FAC0..1FAC2 ; Extended_Pictographic# E13.0 [3] (🫀..🫂) anatomical heart..people hugging
1FAC3..1FAC5 ; Extended_Pictographic# E14.0 [3] (🫃..🫅) pregnant man..person with crown
1FAC6 ; Extended_Pictographic# E16.0 [1] (🫆) fingerprint
1FAC7 ; Extended_Pictographic# E0.0 [1] (🫇) <reserved-1FAC7>
1FAC8 ; Extended_Pictographic# E17.0 [1] (🫈) hairy creature
1FAC9..1FACC ; Extended_Pictographic# E0.0 [4] (🫉..🫌) <reserved-1FAC9>..<reserved-1FACC>
1FACD ; Extended_Pictographic# E17.0 [1] (🫍) orca
1FACE..1FACF ; Extended_Pictographic# E15.0 [2] (🫎..🫏) moose..donkey
1FAD0..1FAD6 ; Extended_Pictographic# E13.0 [7] (🫐..🫖) blueberries..teapot
1FAD7..1FAD9 ; Extended_Pictographic# E14.0 [3] (🫗..🫙) pouring liquid..jar
1FADA..1FADB ; Extended_Pictographic# E15.0 [2] (🫚..🫛) ginger root..pea pod
1FADC ; Extended_Pictographic# E16.0 [1] (🫜) root vegetable
1FADD..1FADE ; Extended_Pictographic# E0.0 [2] (🫝..🫞) <reserved-1FADD>..<reserved-1FADE>
1FADF ; Extended_Pictographic# E16.0 [1] (🫟) splatter
1FAE0..1FAE7 ; Extended_Pictographic# E14.0 [8] (🫠..🫧) melting face..bubbles
1FAE8 ; Extended_Pictographic# E15.0 [1] (🫨) shaking face
1FAE9 ; Extended_Pictographic# E16.0 [1] (🫩) face with bags under eyes
1FAEA ; Extended_Pictographic# E17.0 [1] (🫪) distorted face
1FAEB..1FAEE ; Extended_Pictographic# E0.0 [4] (🫫..🫮) <reserved-1FAEB>..<reserved-1FAEE>
1FAEF ; Extended_Pictographic# E17.0 [1] (🫯) fight cloud
1FAF0..1FAF6 ; Extended_Pictographic# E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
1FAF7..1FAF8 ; Extended_Pictographic# E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
1FAF9..1FAFF ; Extended_Pictographic# E0.0 [7] (🫹..🫿) <reserved-1FAF9>..<reserved-1FAFF>
1FC00..1FFFD ; Extended_Pictographic# E0.0[1022] (🰀..🿽) <reserved-1FC00>..<reserved-1FFFD>
# Total elements: 2848
#EOF
@@ -0,0 +1,757 @@
# emoji-variation-sequences.txt
# Date: 2025-01-30, 21:48:29 GMT
# © 2025 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Emoji Variation Sequences for UTS #51
# Version: 17.0
#
# For documentation and usage, see https://www.unicode.org/reports/tr51
#
0023 FE0E ; text style; # (1.1) NUMBER SIGN
0023 FE0F ; emoji style; # (1.1) NUMBER SIGN
002A FE0E ; text style; # (1.1) ASTERISK
002A FE0F ; emoji style; # (1.1) ASTERISK
0030 FE0E ; text style; # (1.1) DIGIT ZERO
0030 FE0F ; emoji style; # (1.1) DIGIT ZERO
0031 FE0E ; text style; # (1.1) DIGIT ONE
0031 FE0F ; emoji style; # (1.1) DIGIT ONE
0032 FE0E ; text style; # (1.1) DIGIT TWO
0032 FE0F ; emoji style; # (1.1) DIGIT TWO
0033 FE0E ; text style; # (1.1) DIGIT THREE
0033 FE0F ; emoji style; # (1.1) DIGIT THREE
0034 FE0E ; text style; # (1.1) DIGIT FOUR
0034 FE0F ; emoji style; # (1.1) DIGIT FOUR
0035 FE0E ; text style; # (1.1) DIGIT FIVE
0035 FE0F ; emoji style; # (1.1) DIGIT FIVE
0036 FE0E ; text style; # (1.1) DIGIT SIX
0036 FE0F ; emoji style; # (1.1) DIGIT SIX
0037 FE0E ; text style; # (1.1) DIGIT SEVEN
0037 FE0F ; emoji style; # (1.1) DIGIT SEVEN
0038 FE0E ; text style; # (1.1) DIGIT EIGHT
0038 FE0F ; emoji style; # (1.1) DIGIT EIGHT
0039 FE0E ; text style; # (1.1) DIGIT NINE
0039 FE0F ; emoji style; # (1.1) DIGIT NINE
00A9 FE0E ; text style; # (1.1) COPYRIGHT SIGN
00A9 FE0F ; emoji style; # (1.1) COPYRIGHT SIGN
00AE FE0E ; text style; # (1.1) REGISTERED SIGN
00AE FE0F ; emoji style; # (1.1) REGISTERED SIGN
203C FE0E ; text style; # (1.1) DOUBLE EXCLAMATION MARK
203C FE0F ; emoji style; # (1.1) DOUBLE EXCLAMATION MARK
2049 FE0E ; text style; # (3.0) EXCLAMATION QUESTION MARK
2049 FE0F ; emoji style; # (3.0) EXCLAMATION QUESTION MARK
2122 FE0E ; text style; # (1.1) TRADE MARK SIGN
2122 FE0F ; emoji style; # (1.1) TRADE MARK SIGN
2139 FE0E ; text style; # (3.0) INFORMATION SOURCE
2139 FE0F ; emoji style; # (3.0) INFORMATION SOURCE
2194 FE0E ; text style; # (1.1) LEFT RIGHT ARROW
2194 FE0F ; emoji style; # (1.1) LEFT RIGHT ARROW
2195 FE0E ; text style; # (1.1) UP DOWN ARROW
2195 FE0F ; emoji style; # (1.1) UP DOWN ARROW
2196 FE0E ; text style; # (1.1) NORTH WEST ARROW
2196 FE0F ; emoji style; # (1.1) NORTH WEST ARROW
2197 FE0E ; text style; # (1.1) NORTH EAST ARROW
2197 FE0F ; emoji style; # (1.1) NORTH EAST ARROW
2198 FE0E ; text style; # (1.1) SOUTH EAST ARROW
2198 FE0F ; emoji style; # (1.1) SOUTH EAST ARROW
2199 FE0E ; text style; # (1.1) SOUTH WEST ARROW
2199 FE0F ; emoji style; # (1.1) SOUTH WEST ARROW
21A9 FE0E ; text style; # (1.1) LEFTWARDS ARROW WITH HOOK
21A9 FE0F ; emoji style; # (1.1) LEFTWARDS ARROW WITH HOOK
21AA FE0E ; text style; # (1.1) RIGHTWARDS ARROW WITH HOOK
21AA FE0F ; emoji style; # (1.1) RIGHTWARDS ARROW WITH HOOK
231A FE0E ; text style; # (1.1) WATCH
231A FE0F ; emoji style; # (1.1) WATCH
231B FE0E ; text style; # (1.1) HOURGLASS
231B FE0F ; emoji style; # (1.1) HOURGLASS
2328 FE0E ; text style; # (1.1) KEYBOARD
2328 FE0F ; emoji style; # (1.1) KEYBOARD
23CF FE0E ; text style; # (4.0) EJECT SYMBOL
23CF FE0F ; emoji style; # (4.0) EJECT SYMBOL
23E9 FE0E ; text style; # (6.0) BLACK RIGHT-POINTING DOUBLE TRIANGLE
23E9 FE0F ; emoji style; # (6.0) BLACK RIGHT-POINTING DOUBLE TRIANGLE
23EA FE0E ; text style; # (6.0) BLACK LEFT-POINTING DOUBLE TRIANGLE
23EA FE0F ; emoji style; # (6.0) BLACK LEFT-POINTING DOUBLE TRIANGLE
23EB FE0E ; text style; # (6.0) BLACK UP-POINTING DOUBLE TRIANGLE
23EB FE0F ; emoji style; # (6.0) BLACK UP-POINTING DOUBLE TRIANGLE
23EC FE0E ; text style; # (6.0) BLACK DOWN-POINTING DOUBLE TRIANGLE
23EC FE0F ; emoji style; # (6.0) BLACK DOWN-POINTING DOUBLE TRIANGLE
23ED FE0E ; text style; # (6.0) BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
23ED FE0F ; emoji style; # (6.0) BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
23EE FE0E ; text style; # (6.0) BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
23EE FE0F ; emoji style; # (6.0) BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
23EF FE0E ; text style; # (6.0) BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
23EF FE0F ; emoji style; # (6.0) BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
23F0 FE0E ; text style; # (6.0) ALARM CLOCK
23F0 FE0F ; emoji style; # (6.0) ALARM CLOCK
23F1 FE0E ; text style; # (6.0) STOPWATCH
23F1 FE0F ; emoji style; # (6.0) STOPWATCH
23F2 FE0E ; text style; # (6.0) TIMER CLOCK
23F2 FE0F ; emoji style; # (6.0) TIMER CLOCK
23F3 FE0E ; text style; # (6.0) HOURGLASS WITH FLOWING SAND
23F3 FE0F ; emoji style; # (6.0) HOURGLASS WITH FLOWING SAND
23F8 FE0E ; text style; # (7.0) DOUBLE VERTICAL BAR
23F8 FE0F ; emoji style; # (7.0) DOUBLE VERTICAL BAR
23F9 FE0E ; text style; # (7.0) BLACK SQUARE FOR STOP
23F9 FE0F ; emoji style; # (7.0) BLACK SQUARE FOR STOP
23FA FE0E ; text style; # (7.0) BLACK CIRCLE FOR RECORD
23FA FE0F ; emoji style; # (7.0) BLACK CIRCLE FOR RECORD
24C2 FE0E ; text style; # (1.1) CIRCLED LATIN CAPITAL LETTER M
24C2 FE0F ; emoji style; # (1.1) CIRCLED LATIN CAPITAL LETTER M
25AA FE0E ; text style; # (1.1) BLACK SMALL SQUARE
25AA FE0F ; emoji style; # (1.1) BLACK SMALL SQUARE
25AB FE0E ; text style; # (1.1) WHITE SMALL SQUARE
25AB FE0F ; emoji style; # (1.1) WHITE SMALL SQUARE
25B6 FE0E ; text style; # (1.1) BLACK RIGHT-POINTING TRIANGLE
25B6 FE0F ; emoji style; # (1.1) BLACK RIGHT-POINTING TRIANGLE
25C0 FE0E ; text style; # (1.1) BLACK LEFT-POINTING TRIANGLE
25C0 FE0F ; emoji style; # (1.1) BLACK LEFT-POINTING TRIANGLE
25FB FE0E ; text style; # (3.2) WHITE MEDIUM SQUARE
25FB FE0F ; emoji style; # (3.2) WHITE MEDIUM SQUARE
25FC FE0E ; text style; # (3.2) BLACK MEDIUM SQUARE
25FC FE0F ; emoji style; # (3.2) BLACK MEDIUM SQUARE
25FD FE0E ; text style; # (3.2) WHITE MEDIUM SMALL SQUARE
25FD FE0F ; emoji style; # (3.2) WHITE MEDIUM SMALL SQUARE
25FE FE0E ; text style; # (3.2) BLACK MEDIUM SMALL SQUARE
25FE FE0F ; emoji style; # (3.2) BLACK MEDIUM SMALL SQUARE
2600 FE0E ; text style; # (1.1) BLACK SUN WITH RAYS
2600 FE0F ; emoji style; # (1.1) BLACK SUN WITH RAYS
2601 FE0E ; text style; # (1.1) CLOUD
2601 FE0F ; emoji style; # (1.1) CLOUD
2602 FE0E ; text style; # (1.1) UMBRELLA
2602 FE0F ; emoji style; # (1.1) UMBRELLA
2603 FE0E ; text style; # (1.1) SNOWMAN
2603 FE0F ; emoji style; # (1.1) SNOWMAN
2604 FE0E ; text style; # (1.1) COMET
2604 FE0F ; emoji style; # (1.1) COMET
260E FE0E ; text style; # (1.1) BLACK TELEPHONE
260E FE0F ; emoji style; # (1.1) BLACK TELEPHONE
2611 FE0E ; text style; # (1.1) BALLOT BOX WITH CHECK
2611 FE0F ; emoji style; # (1.1) BALLOT BOX WITH CHECK
2614 FE0E ; text style; # (4.0) UMBRELLA WITH RAIN DROPS
2614 FE0F ; emoji style; # (4.0) UMBRELLA WITH RAIN DROPS
2615 FE0E ; text style; # (4.0) HOT BEVERAGE
2615 FE0F ; emoji style; # (4.0) HOT BEVERAGE
2618 FE0E ; text style; # (4.1) SHAMROCK
2618 FE0F ; emoji style; # (4.1) SHAMROCK
261D FE0E ; text style; # (1.1) WHITE UP POINTING INDEX
261D FE0F ; emoji style; # (1.1) WHITE UP POINTING INDEX
2620 FE0E ; text style; # (1.1) SKULL AND CROSSBONES
2620 FE0F ; emoji style; # (1.1) SKULL AND CROSSBONES
2622 FE0E ; text style; # (1.1) RADIOACTIVE SIGN
2622 FE0F ; emoji style; # (1.1) RADIOACTIVE SIGN
2623 FE0E ; text style; # (1.1) BIOHAZARD SIGN
2623 FE0F ; emoji style; # (1.1) BIOHAZARD SIGN
2626 FE0E ; text style; # (1.1) ORTHODOX CROSS
2626 FE0F ; emoji style; # (1.1) ORTHODOX CROSS
262A FE0E ; text style; # (1.1) STAR AND CRESCENT
262A FE0F ; emoji style; # (1.1) STAR AND CRESCENT
262E FE0E ; text style; # (1.1) PEACE SYMBOL
262E FE0F ; emoji style; # (1.1) PEACE SYMBOL
262F FE0E ; text style; # (1.1) YIN YANG
262F FE0F ; emoji style; # (1.1) YIN YANG
2638 FE0E ; text style; # (1.1) WHEEL OF DHARMA
2638 FE0F ; emoji style; # (1.1) WHEEL OF DHARMA
2639 FE0E ; text style; # (1.1) WHITE FROWNING FACE
2639 FE0F ; emoji style; # (1.1) WHITE FROWNING FACE
263A FE0E ; text style; # (1.1) WHITE SMILING FACE
263A FE0F ; emoji style; # (1.1) WHITE SMILING FACE
2640 FE0E ; text style; # (1.1) FEMALE SIGN
2640 FE0F ; emoji style; # (1.1) FEMALE SIGN
2642 FE0E ; text style; # (1.1) MALE SIGN
2642 FE0F ; emoji style; # (1.1) MALE SIGN
2648 FE0E ; text style; # (1.1) ARIES
2648 FE0F ; emoji style; # (1.1) ARIES
2649 FE0E ; text style; # (1.1) TAURUS
2649 FE0F ; emoji style; # (1.1) TAURUS
264A FE0E ; text style; # (1.1) GEMINI
264A FE0F ; emoji style; # (1.1) GEMINI
264B FE0E ; text style; # (1.1) CANCER
264B FE0F ; emoji style; # (1.1) CANCER
264C FE0E ; text style; # (1.1) LEO
264C FE0F ; emoji style; # (1.1) LEO
264D FE0E ; text style; # (1.1) VIRGO
264D FE0F ; emoji style; # (1.1) VIRGO
264E FE0E ; text style; # (1.1) LIBRA
264E FE0F ; emoji style; # (1.1) LIBRA
264F FE0E ; text style; # (1.1) SCORPIUS
264F FE0F ; emoji style; # (1.1) SCORPIUS
2650 FE0E ; text style; # (1.1) SAGITTARIUS
2650 FE0F ; emoji style; # (1.1) SAGITTARIUS
2651 FE0E ; text style; # (1.1) CAPRICORN
2651 FE0F ; emoji style; # (1.1) CAPRICORN
2652 FE0E ; text style; # (1.1) AQUARIUS
2652 FE0F ; emoji style; # (1.1) AQUARIUS
2653 FE0E ; text style; # (1.1) PISCES
2653 FE0F ; emoji style; # (1.1) PISCES
265F FE0E ; text style; # (1.1) BLACK CHESS PAWN
265F FE0F ; emoji style; # (1.1) BLACK CHESS PAWN
2660 FE0E ; text style; # (1.1) BLACK SPADE SUIT
2660 FE0F ; emoji style; # (1.1) BLACK SPADE SUIT
2663 FE0E ; text style; # (1.1) BLACK CLUB SUIT
2663 FE0F ; emoji style; # (1.1) BLACK CLUB SUIT
2665 FE0E ; text style; # (1.1) BLACK HEART SUIT
2665 FE0F ; emoji style; # (1.1) BLACK HEART SUIT
2666 FE0E ; text style; # (1.1) BLACK DIAMOND SUIT
2666 FE0F ; emoji style; # (1.1) BLACK DIAMOND SUIT
2668 FE0E ; text style; # (1.1) HOT SPRINGS
2668 FE0F ; emoji style; # (1.1) HOT SPRINGS
267B FE0E ; text style; # (3.2) BLACK UNIVERSAL RECYCLING SYMBOL
267B FE0F ; emoji style; # (3.2) BLACK UNIVERSAL RECYCLING SYMBOL
267E FE0E ; text style; # (4.1) PERMANENT PAPER SIGN
267E FE0F ; emoji style; # (4.1) PERMANENT PAPER SIGN
267F FE0E ; text style; # (4.1) WHEELCHAIR SYMBOL
267F FE0F ; emoji style; # (4.1) WHEELCHAIR SYMBOL
2692 FE0E ; text style; # (4.1) HAMMER AND PICK
2692 FE0F ; emoji style; # (4.1) HAMMER AND PICK
2693 FE0E ; text style; # (4.1) ANCHOR
2693 FE0F ; emoji style; # (4.1) ANCHOR
2694 FE0E ; text style; # (4.1) CROSSED SWORDS
2694 FE0F ; emoji style; # (4.1) CROSSED SWORDS
2695 FE0E ; text style; # (4.1) STAFF OF AESCULAPIUS
2695 FE0F ; emoji style; # (4.1) STAFF OF AESCULAPIUS
2696 FE0E ; text style; # (4.1) SCALES
2696 FE0F ; emoji style; # (4.1) SCALES
2697 FE0E ; text style; # (4.1) ALEMBIC
2697 FE0F ; emoji style; # (4.1) ALEMBIC
2699 FE0E ; text style; # (4.1) GEAR
2699 FE0F ; emoji style; # (4.1) GEAR
269B FE0E ; text style; # (4.1) ATOM SYMBOL
269B FE0F ; emoji style; # (4.1) ATOM SYMBOL
269C FE0E ; text style; # (4.1) FLEUR-DE-LIS
269C FE0F ; emoji style; # (4.1) FLEUR-DE-LIS
26A0 FE0E ; text style; # (4.0) WARNING SIGN
26A0 FE0F ; emoji style; # (4.0) WARNING SIGN
26A1 FE0E ; text style; # (4.0) HIGH VOLTAGE SIGN
26A1 FE0F ; emoji style; # (4.0) HIGH VOLTAGE SIGN
26A7 FE0E ; text style; # (4.1) MALE WITH STROKE AND MALE AND FEMALE SIGN
26A7 FE0F ; emoji style; # (4.1) MALE WITH STROKE AND MALE AND FEMALE SIGN
26AA FE0E ; text style; # (4.1) MEDIUM WHITE CIRCLE
26AA FE0F ; emoji style; # (4.1) MEDIUM WHITE CIRCLE
26AB FE0E ; text style; # (4.1) MEDIUM BLACK CIRCLE
26AB FE0F ; emoji style; # (4.1) MEDIUM BLACK CIRCLE
26B0 FE0E ; text style; # (4.1) COFFIN
26B0 FE0F ; emoji style; # (4.1) COFFIN
26B1 FE0E ; text style; # (4.1) FUNERAL URN
26B1 FE0F ; emoji style; # (4.1) FUNERAL URN
26BD FE0E ; text style; # (5.2) SOCCER BALL
26BD FE0F ; emoji style; # (5.2) SOCCER BALL
26BE FE0E ; text style; # (5.2) BASEBALL
26BE FE0F ; emoji style; # (5.2) BASEBALL
26C4 FE0E ; text style; # (5.2) SNOWMAN WITHOUT SNOW
26C4 FE0F ; emoji style; # (5.2) SNOWMAN WITHOUT SNOW
26C5 FE0E ; text style; # (5.2) SUN BEHIND CLOUD
26C5 FE0F ; emoji style; # (5.2) SUN BEHIND CLOUD
26C8 FE0E ; text style; # (5.2) THUNDER CLOUD AND RAIN
26C8 FE0F ; emoji style; # (5.2) THUNDER CLOUD AND RAIN
26CE FE0E ; text style; # (6.0) OPHIUCHUS
26CE FE0F ; emoji style; # (6.0) OPHIUCHUS
26CF FE0E ; text style; # (5.2) PICK
26CF FE0F ; emoji style; # (5.2) PICK
26D1 FE0E ; text style; # (5.2) HELMET WITH WHITE CROSS
26D1 FE0F ; emoji style; # (5.2) HELMET WITH WHITE CROSS
26D3 FE0E ; text style; # (5.2) CHAINS
26D3 FE0F ; emoji style; # (5.2) CHAINS
26D4 FE0E ; text style; # (5.2) NO ENTRY
26D4 FE0F ; emoji style; # (5.2) NO ENTRY
26E9 FE0E ; text style; # (5.2) SHINTO SHRINE
26E9 FE0F ; emoji style; # (5.2) SHINTO SHRINE
26EA FE0E ; text style; # (5.2) CHURCH
26EA FE0F ; emoji style; # (5.2) CHURCH
26F0 FE0E ; text style; # (5.2) MOUNTAIN
26F0 FE0F ; emoji style; # (5.2) MOUNTAIN
26F1 FE0E ; text style; # (5.2) UMBRELLA ON GROUND
26F1 FE0F ; emoji style; # (5.2) UMBRELLA ON GROUND
26F2 FE0E ; text style; # (5.2) FOUNTAIN
26F2 FE0F ; emoji style; # (5.2) FOUNTAIN
26F3 FE0E ; text style; # (5.2) FLAG IN HOLE
26F3 FE0F ; emoji style; # (5.2) FLAG IN HOLE
26F4 FE0E ; text style; # (5.2) FERRY
26F4 FE0F ; emoji style; # (5.2) FERRY
26F5 FE0E ; text style; # (5.2) SAILBOAT
26F5 FE0F ; emoji style; # (5.2) SAILBOAT
26F7 FE0E ; text style; # (5.2) SKIER
26F7 FE0F ; emoji style; # (5.2) SKIER
26F8 FE0E ; text style; # (5.2) ICE SKATE
26F8 FE0F ; emoji style; # (5.2) ICE SKATE
26F9 FE0E ; text style; # (5.2) PERSON WITH BALL
26F9 FE0F ; emoji style; # (5.2) PERSON WITH BALL
26FA FE0E ; text style; # (5.2) TENT
26FA FE0F ; emoji style; # (5.2) TENT
26FD FE0E ; text style; # (5.2) FUEL PUMP
26FD FE0F ; emoji style; # (5.2) FUEL PUMP
2702 FE0E ; text style; # (1.1) BLACK SCISSORS
2702 FE0F ; emoji style; # (1.1) BLACK SCISSORS
2705 FE0E ; text style; # (6.0) WHITE HEAVY CHECK MARK
2705 FE0F ; emoji style; # (6.0) WHITE HEAVY CHECK MARK
2708 FE0E ; text style; # (1.1) AIRPLANE
2708 FE0F ; emoji style; # (1.1) AIRPLANE
2709 FE0E ; text style; # (1.1) ENVELOPE
2709 FE0F ; emoji style; # (1.1) ENVELOPE
270A FE0E ; text style; # (6.0) RAISED FIST
270A FE0F ; emoji style; # (6.0) RAISED FIST
270B FE0E ; text style; # (6.0) RAISED HAND
270B FE0F ; emoji style; # (6.0) RAISED HAND
270C FE0E ; text style; # (1.1) VICTORY HAND
270C FE0F ; emoji style; # (1.1) VICTORY HAND
270D FE0E ; text style; # (1.1) WRITING HAND
270D FE0F ; emoji style; # (1.1) WRITING HAND
270F FE0E ; text style; # (1.1) PENCIL
270F FE0F ; emoji style; # (1.1) PENCIL
2712 FE0E ; text style; # (1.1) BLACK NIB
2712 FE0F ; emoji style; # (1.1) BLACK NIB
2714 FE0E ; text style; # (1.1) HEAVY CHECK MARK
2714 FE0F ; emoji style; # (1.1) HEAVY CHECK MARK
2716 FE0E ; text style; # (1.1) HEAVY MULTIPLICATION X
2716 FE0F ; emoji style; # (1.1) HEAVY MULTIPLICATION X
271D FE0E ; text style; # (1.1) LATIN CROSS
271D FE0F ; emoji style; # (1.1) LATIN CROSS
2721 FE0E ; text style; # (1.1) STAR OF DAVID
2721 FE0F ; emoji style; # (1.1) STAR OF DAVID
2728 FE0E ; text style; # (6.0) SPARKLES
2728 FE0F ; emoji style; # (6.0) SPARKLES
2733 FE0E ; text style; # (1.1) EIGHT SPOKED ASTERISK
2733 FE0F ; emoji style; # (1.1) EIGHT SPOKED ASTERISK
2734 FE0E ; text style; # (1.1) EIGHT POINTED BLACK STAR
2734 FE0F ; emoji style; # (1.1) EIGHT POINTED BLACK STAR
2744 FE0E ; text style; # (1.1) SNOWFLAKE
2744 FE0F ; emoji style; # (1.1) SNOWFLAKE
2747 FE0E ; text style; # (1.1) SPARKLE
2747 FE0F ; emoji style; # (1.1) SPARKLE
274C FE0E ; text style; # (6.0) CROSS MARK
274C FE0F ; emoji style; # (6.0) CROSS MARK
274E FE0E ; text style; # (6.0) NEGATIVE SQUARED CROSS MARK
274E FE0F ; emoji style; # (6.0) NEGATIVE SQUARED CROSS MARK
2753 FE0E ; text style; # (6.0) BLACK QUESTION MARK ORNAMENT
2753 FE0F ; emoji style; # (6.0) BLACK QUESTION MARK ORNAMENT
2754 FE0E ; text style; # (6.0) WHITE QUESTION MARK ORNAMENT
2754 FE0F ; emoji style; # (6.0) WHITE QUESTION MARK ORNAMENT
2755 FE0E ; text style; # (6.0) WHITE EXCLAMATION MARK ORNAMENT
2755 FE0F ; emoji style; # (6.0) WHITE EXCLAMATION MARK ORNAMENT
2757 FE0E ; text style; # (5.2) HEAVY EXCLAMATION MARK SYMBOL
2757 FE0F ; emoji style; # (5.2) HEAVY EXCLAMATION MARK SYMBOL
2763 FE0E ; text style; # (1.1) HEAVY HEART EXCLAMATION MARK ORNAMENT
2763 FE0F ; emoji style; # (1.1) HEAVY HEART EXCLAMATION MARK ORNAMENT
2764 FE0E ; text style; # (1.1) HEAVY BLACK HEART
2764 FE0F ; emoji style; # (1.1) HEAVY BLACK HEART
2795 FE0E ; text style; # (6.0) HEAVY PLUS SIGN
2795 FE0F ; emoji style; # (6.0) HEAVY PLUS SIGN
2796 FE0E ; text style; # (6.0) HEAVY MINUS SIGN
2796 FE0F ; emoji style; # (6.0) HEAVY MINUS SIGN
2797 FE0E ; text style; # (6.0) HEAVY DIVISION SIGN
2797 FE0F ; emoji style; # (6.0) HEAVY DIVISION SIGN
27A1 FE0E ; text style; # (1.1) BLACK RIGHTWARDS ARROW
27A1 FE0F ; emoji style; # (1.1) BLACK RIGHTWARDS ARROW
27B0 FE0E ; text style; # (6.0) CURLY LOOP
27B0 FE0F ; emoji style; # (6.0) CURLY LOOP
27BF FE0E ; text style; # (6.0) DOUBLE CURLY LOOP
27BF FE0F ; emoji style; # (6.0) DOUBLE CURLY LOOP
2934 FE0E ; text style; # (3.2) ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
2934 FE0F ; emoji style; # (3.2) ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
2935 FE0E ; text style; # (3.2) ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
2935 FE0F ; emoji style; # (3.2) ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
2B05 FE0E ; text style; # (4.0) LEFTWARDS BLACK ARROW
2B05 FE0F ; emoji style; # (4.0) LEFTWARDS BLACK ARROW
2B06 FE0E ; text style; # (4.0) UPWARDS BLACK ARROW
2B06 FE0F ; emoji style; # (4.0) UPWARDS BLACK ARROW
2B07 FE0E ; text style; # (4.0) DOWNWARDS BLACK ARROW
2B07 FE0F ; emoji style; # (4.0) DOWNWARDS BLACK ARROW
2B1B FE0E ; text style; # (5.1) BLACK LARGE SQUARE
2B1B FE0F ; emoji style; # (5.1) BLACK LARGE SQUARE
2B1C FE0E ; text style; # (5.1) WHITE LARGE SQUARE
2B1C FE0F ; emoji style; # (5.1) WHITE LARGE SQUARE
2B50 FE0E ; text style; # (5.1) WHITE MEDIUM STAR
2B50 FE0F ; emoji style; # (5.1) WHITE MEDIUM STAR
2B55 FE0E ; text style; # (5.2) HEAVY LARGE CIRCLE
2B55 FE0F ; emoji style; # (5.2) HEAVY LARGE CIRCLE
3030 FE0E ; text style; # (1.1) WAVY DASH
3030 FE0F ; emoji style; # (1.1) WAVY DASH
303D FE0E ; text style; # (3.2) PART ALTERNATION MARK
303D FE0F ; emoji style; # (3.2) PART ALTERNATION MARK
3297 FE0E ; text style; # (1.1) CIRCLED IDEOGRAPH CONGRATULATION
3297 FE0F ; emoji style; # (1.1) CIRCLED IDEOGRAPH CONGRATULATION
3299 FE0E ; text style; # (1.1) CIRCLED IDEOGRAPH SECRET
3299 FE0F ; emoji style; # (1.1) CIRCLED IDEOGRAPH SECRET
1F004 FE0E ; text style; # (5.1) MAHJONG TILE RED DRAGON
1F004 FE0F ; emoji style; # (5.1) MAHJONG TILE RED DRAGON
1F170 FE0E ; text style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER A
1F170 FE0F ; emoji style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER A
1F171 FE0E ; text style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER B
1F171 FE0F ; emoji style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER B
1F17E FE0E ; text style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER O
1F17E FE0F ; emoji style; # (6.0) NEGATIVE SQUARED LATIN CAPITAL LETTER O
1F17F FE0E ; text style; # (5.2) NEGATIVE SQUARED LATIN CAPITAL LETTER P
1F17F FE0F ; emoji style; # (5.2) NEGATIVE SQUARED LATIN CAPITAL LETTER P
1F202 FE0E ; text style; # (6.0) SQUARED KATAKANA SA
1F202 FE0F ; emoji style; # (6.0) SQUARED KATAKANA SA
1F21A FE0E ; text style; # (5.2) SQUARED CJK UNIFIED IDEOGRAPH-7121
1F21A FE0F ; emoji style; # (5.2) SQUARED CJK UNIFIED IDEOGRAPH-7121
1F22F FE0E ; text style; # (5.2) SQUARED CJK UNIFIED IDEOGRAPH-6307
1F22F FE0F ; emoji style; # (5.2) SQUARED CJK UNIFIED IDEOGRAPH-6307
1F237 FE0E ; text style; # (6.0) SQUARED CJK UNIFIED IDEOGRAPH-6708
1F237 FE0F ; emoji style; # (6.0) SQUARED CJK UNIFIED IDEOGRAPH-6708
1F30D FE0E ; text style; # (6.0) EARTH GLOBE EUROPE-AFRICA
1F30D FE0F ; emoji style; # (6.0) EARTH GLOBE EUROPE-AFRICA
1F30E FE0E ; text style; # (6.0) EARTH GLOBE AMERICAS
1F30E FE0F ; emoji style; # (6.0) EARTH GLOBE AMERICAS
1F30F FE0E ; text style; # (6.0) EARTH GLOBE ASIA-AUSTRALIA
1F30F FE0F ; emoji style; # (6.0) EARTH GLOBE ASIA-AUSTRALIA
1F315 FE0E ; text style; # (6.0) FULL MOON SYMBOL
1F315 FE0F ; emoji style; # (6.0) FULL MOON SYMBOL
1F31C FE0E ; text style; # (6.0) LAST QUARTER MOON WITH FACE
1F31C FE0F ; emoji style; # (6.0) LAST QUARTER MOON WITH FACE
1F321 FE0E ; text style; # (7.0) THERMOMETER
1F321 FE0F ; emoji style; # (7.0) THERMOMETER
1F324 FE0E ; text style; # (7.0) WHITE SUN WITH SMALL CLOUD
1F324 FE0F ; emoji style; # (7.0) WHITE SUN WITH SMALL CLOUD
1F325 FE0E ; text style; # (7.0) WHITE SUN BEHIND CLOUD
1F325 FE0F ; emoji style; # (7.0) WHITE SUN BEHIND CLOUD
1F326 FE0E ; text style; # (7.0) WHITE SUN BEHIND CLOUD WITH RAIN
1F326 FE0F ; emoji style; # (7.0) WHITE SUN BEHIND CLOUD WITH RAIN
1F327 FE0E ; text style; # (7.0) CLOUD WITH RAIN
1F327 FE0F ; emoji style; # (7.0) CLOUD WITH RAIN
1F328 FE0E ; text style; # (7.0) CLOUD WITH SNOW
1F328 FE0F ; emoji style; # (7.0) CLOUD WITH SNOW
1F329 FE0E ; text style; # (7.0) CLOUD WITH LIGHTNING
1F329 FE0F ; emoji style; # (7.0) CLOUD WITH LIGHTNING
1F32A FE0E ; text style; # (7.0) CLOUD WITH TORNADO
1F32A FE0F ; emoji style; # (7.0) CLOUD WITH TORNADO
1F32B FE0E ; text style; # (7.0) FOG
1F32B FE0F ; emoji style; # (7.0) FOG
1F32C FE0E ; text style; # (7.0) WIND BLOWING FACE
1F32C FE0F ; emoji style; # (7.0) WIND BLOWING FACE
1F336 FE0E ; text style; # (7.0) HOT PEPPER
1F336 FE0F ; emoji style; # (7.0) HOT PEPPER
1F378 FE0E ; text style; # (6.0) COCKTAIL GLASS
1F378 FE0F ; emoji style; # (6.0) COCKTAIL GLASS
1F37D FE0E ; text style; # (7.0) FORK AND KNIFE WITH PLATE
1F37D FE0F ; emoji style; # (7.0) FORK AND KNIFE WITH PLATE
1F393 FE0E ; text style; # (6.0) GRADUATION CAP
1F393 FE0F ; emoji style; # (6.0) GRADUATION CAP
1F396 FE0E ; text style; # (7.0) MILITARY MEDAL
1F396 FE0F ; emoji style; # (7.0) MILITARY MEDAL
1F397 FE0E ; text style; # (7.0) REMINDER RIBBON
1F397 FE0F ; emoji style; # (7.0) REMINDER RIBBON
1F399 FE0E ; text style; # (7.0) STUDIO MICROPHONE
1F399 FE0F ; emoji style; # (7.0) STUDIO MICROPHONE
1F39A FE0E ; text style; # (7.0) LEVEL SLIDER
1F39A FE0F ; emoji style; # (7.0) LEVEL SLIDER
1F39B FE0E ; text style; # (7.0) CONTROL KNOBS
1F39B FE0F ; emoji style; # (7.0) CONTROL KNOBS
1F39E FE0E ; text style; # (7.0) FILM FRAMES
1F39E FE0F ; emoji style; # (7.0) FILM FRAMES
1F39F FE0E ; text style; # (7.0) ADMISSION TICKETS
1F39F FE0F ; emoji style; # (7.0) ADMISSION TICKETS
1F3A7 FE0E ; text style; # (6.0) HEADPHONE
1F3A7 FE0F ; emoji style; # (6.0) HEADPHONE
1F3AC FE0E ; text style; # (6.0) CLAPPER BOARD
1F3AC FE0F ; emoji style; # (6.0) CLAPPER BOARD
1F3AD FE0E ; text style; # (6.0) PERFORMING ARTS
1F3AD FE0F ; emoji style; # (6.0) PERFORMING ARTS
1F3AE FE0E ; text style; # (6.0) VIDEO GAME
1F3AE FE0F ; emoji style; # (6.0) VIDEO GAME
1F3C2 FE0E ; text style; # (6.0) SNOWBOARDER
1F3C2 FE0F ; emoji style; # (6.0) SNOWBOARDER
1F3C4 FE0E ; text style; # (6.0) SURFER
1F3C4 FE0F ; emoji style; # (6.0) SURFER
1F3C6 FE0E ; text style; # (6.0) TROPHY
1F3C6 FE0F ; emoji style; # (6.0) TROPHY
1F3CA FE0E ; text style; # (6.0) SWIMMER
1F3CA FE0F ; emoji style; # (6.0) SWIMMER
1F3CB FE0E ; text style; # (7.0) WEIGHT LIFTER
1F3CB FE0F ; emoji style; # (7.0) WEIGHT LIFTER
1F3CC FE0E ; text style; # (7.0) GOLFER
1F3CC FE0F ; emoji style; # (7.0) GOLFER
1F3CD FE0E ; text style; # (7.0) RACING MOTORCYCLE
1F3CD FE0F ; emoji style; # (7.0) RACING MOTORCYCLE
1F3CE FE0E ; text style; # (7.0) RACING CAR
1F3CE FE0F ; emoji style; # (7.0) RACING CAR
1F3D4 FE0E ; text style; # (7.0) SNOW CAPPED MOUNTAIN
1F3D4 FE0F ; emoji style; # (7.0) SNOW CAPPED MOUNTAIN
1F3D5 FE0E ; text style; # (7.0) CAMPING
1F3D5 FE0F ; emoji style; # (7.0) CAMPING
1F3D6 FE0E ; text style; # (7.0) BEACH WITH UMBRELLA
1F3D6 FE0F ; emoji style; # (7.0) BEACH WITH UMBRELLA
1F3D7 FE0E ; text style; # (7.0) BUILDING CONSTRUCTION
1F3D7 FE0F ; emoji style; # (7.0) BUILDING CONSTRUCTION
1F3D8 FE0E ; text style; # (7.0) HOUSE BUILDINGS
1F3D8 FE0F ; emoji style; # (7.0) HOUSE BUILDINGS
1F3D9 FE0E ; text style; # (7.0) CITYSCAPE
1F3D9 FE0F ; emoji style; # (7.0) CITYSCAPE
1F3DA FE0E ; text style; # (7.0) DERELICT HOUSE BUILDING
1F3DA FE0F ; emoji style; # (7.0) DERELICT HOUSE BUILDING
1F3DB FE0E ; text style; # (7.0) CLASSICAL BUILDING
1F3DB FE0F ; emoji style; # (7.0) CLASSICAL BUILDING
1F3DC FE0E ; text style; # (7.0) DESERT
1F3DC FE0F ; emoji style; # (7.0) DESERT
1F3DD FE0E ; text style; # (7.0) DESERT ISLAND
1F3DD FE0F ; emoji style; # (7.0) DESERT ISLAND
1F3DE FE0E ; text style; # (7.0) NATIONAL PARK
1F3DE FE0F ; emoji style; # (7.0) NATIONAL PARK
1F3DF FE0E ; text style; # (7.0) STADIUM
1F3DF FE0F ; emoji style; # (7.0) STADIUM
1F3E0 FE0E ; text style; # (6.0) HOUSE BUILDING
1F3E0 FE0F ; emoji style; # (6.0) HOUSE BUILDING
1F3ED FE0E ; text style; # (6.0) FACTORY
1F3ED FE0F ; emoji style; # (6.0) FACTORY
1F3F3 FE0E ; text style; # (7.0) WAVING WHITE FLAG
1F3F3 FE0F ; emoji style; # (7.0) WAVING WHITE FLAG
1F3F5 FE0E ; text style; # (7.0) ROSETTE
1F3F5 FE0F ; emoji style; # (7.0) ROSETTE
1F3F7 FE0E ; text style; # (7.0) LABEL
1F3F7 FE0F ; emoji style; # (7.0) LABEL
1F408 FE0E ; text style; # (6.0) CAT
1F408 FE0F ; emoji style; # (6.0) CAT
1F415 FE0E ; text style; # (6.0) DOG
1F415 FE0F ; emoji style; # (6.0) DOG
1F41F FE0E ; text style; # (6.0) FISH
1F41F FE0F ; emoji style; # (6.0) FISH
1F426 FE0E ; text style; # (6.0) BIRD
1F426 FE0F ; emoji style; # (6.0) BIRD
1F43F FE0E ; text style; # (7.0) CHIPMUNK
1F43F FE0F ; emoji style; # (7.0) CHIPMUNK
1F441 FE0E ; text style; # (7.0) EYE
1F441 FE0F ; emoji style; # (7.0) EYE
1F442 FE0E ; text style; # (6.0) EAR
1F442 FE0F ; emoji style; # (6.0) EAR
1F446 FE0E ; text style; # (6.0) WHITE UP POINTING BACKHAND INDEX
1F446 FE0F ; emoji style; # (6.0) WHITE UP POINTING BACKHAND INDEX
1F447 FE0E ; text style; # (6.0) WHITE DOWN POINTING BACKHAND INDEX
1F447 FE0F ; emoji style; # (6.0) WHITE DOWN POINTING BACKHAND INDEX
1F448 FE0E ; text style; # (6.0) WHITE LEFT POINTING BACKHAND INDEX
1F448 FE0F ; emoji style; # (6.0) WHITE LEFT POINTING BACKHAND INDEX
1F449 FE0E ; text style; # (6.0) WHITE RIGHT POINTING BACKHAND INDEX
1F449 FE0F ; emoji style; # (6.0) WHITE RIGHT POINTING BACKHAND INDEX
1F44D FE0E ; text style; # (6.0) THUMBS UP SIGN
1F44D FE0F ; emoji style; # (6.0) THUMBS UP SIGN
1F44E FE0E ; text style; # (6.0) THUMBS DOWN SIGN
1F44E FE0F ; emoji style; # (6.0) THUMBS DOWN SIGN
1F453 FE0E ; text style; # (6.0) EYEGLASSES
1F453 FE0F ; emoji style; # (6.0) EYEGLASSES
1F46A FE0E ; text style; # (6.0) FAMILY
1F46A FE0F ; emoji style; # (6.0) FAMILY
1F47D FE0E ; text style; # (6.0) EXTRATERRESTRIAL ALIEN
1F47D FE0F ; emoji style; # (6.0) EXTRATERRESTRIAL ALIEN
1F4A3 FE0E ; text style; # (6.0) BOMB
1F4A3 FE0F ; emoji style; # (6.0) BOMB
1F4B0 FE0E ; text style; # (6.0) MONEY BAG
1F4B0 FE0F ; emoji style; # (6.0) MONEY BAG
1F4B3 FE0E ; text style; # (6.0) CREDIT CARD
1F4B3 FE0F ; emoji style; # (6.0) CREDIT CARD
1F4BB FE0E ; text style; # (6.0) PERSONAL COMPUTER
1F4BB FE0F ; emoji style; # (6.0) PERSONAL COMPUTER
1F4BF FE0E ; text style; # (6.0) OPTICAL DISC
1F4BF FE0F ; emoji style; # (6.0) OPTICAL DISC
1F4CB FE0E ; text style; # (6.0) CLIPBOARD
1F4CB FE0F ; emoji style; # (6.0) CLIPBOARD
1F4DA FE0E ; text style; # (6.0) BOOKS
1F4DA FE0F ; emoji style; # (6.0) BOOKS
1F4DF FE0E ; text style; # (6.0) PAGER
1F4DF FE0F ; emoji style; # (6.0) PAGER
1F4E4 FE0E ; text style; # (6.0) OUTBOX TRAY
1F4E4 FE0F ; emoji style; # (6.0) OUTBOX TRAY
1F4E5 FE0E ; text style; # (6.0) INBOX TRAY
1F4E5 FE0F ; emoji style; # (6.0) INBOX TRAY
1F4E6 FE0E ; text style; # (6.0) PACKAGE
1F4E6 FE0F ; emoji style; # (6.0) PACKAGE
1F4EA FE0E ; text style; # (6.0) CLOSED MAILBOX WITH LOWERED FLAG
1F4EA FE0F ; emoji style; # (6.0) CLOSED MAILBOX WITH LOWERED FLAG
1F4EB FE0E ; text style; # (6.0) CLOSED MAILBOX WITH RAISED FLAG
1F4EB FE0F ; emoji style; # (6.0) CLOSED MAILBOX WITH RAISED FLAG
1F4EC FE0E ; text style; # (6.0) OPEN MAILBOX WITH RAISED FLAG
1F4EC FE0F ; emoji style; # (6.0) OPEN MAILBOX WITH RAISED FLAG
1F4ED FE0E ; text style; # (6.0) OPEN MAILBOX WITH LOWERED FLAG
1F4ED FE0F ; emoji style; # (6.0) OPEN MAILBOX WITH LOWERED FLAG
1F4F7 FE0E ; text style; # (6.0) CAMERA
1F4F7 FE0F ; emoji style; # (6.0) CAMERA
1F4F9 FE0E ; text style; # (6.0) VIDEO CAMERA
1F4F9 FE0F ; emoji style; # (6.0) VIDEO CAMERA
1F4FA FE0E ; text style; # (6.0) TELEVISION
1F4FA FE0F ; emoji style; # (6.0) TELEVISION
1F4FB FE0E ; text style; # (6.0) RADIO
1F4FB FE0F ; emoji style; # (6.0) RADIO
1F4FD FE0E ; text style; # (7.0) FILM PROJECTOR
1F4FD FE0F ; emoji style; # (7.0) FILM PROJECTOR
1F508 FE0E ; text style; # (6.0) SPEAKER
1F508 FE0F ; emoji style; # (6.0) SPEAKER
1F50D FE0E ; text style; # (6.0) LEFT-POINTING MAGNIFYING GLASS
1F50D FE0F ; emoji style; # (6.0) LEFT-POINTING MAGNIFYING GLASS
1F512 FE0E ; text style; # (6.0) LOCK
1F512 FE0F ; emoji style; # (6.0) LOCK
1F513 FE0E ; text style; # (6.0) OPEN LOCK
1F513 FE0F ; emoji style; # (6.0) OPEN LOCK
1F549 FE0E ; text style; # (7.0) OM SYMBOL
1F549 FE0F ; emoji style; # (7.0) OM SYMBOL
1F54A FE0E ; text style; # (7.0) DOVE OF PEACE
1F54A FE0F ; emoji style; # (7.0) DOVE OF PEACE
1F550 FE0E ; text style; # (6.0) CLOCK FACE ONE OCLOCK
1F550 FE0F ; emoji style; # (6.0) CLOCK FACE ONE OCLOCK
1F551 FE0E ; text style; # (6.0) CLOCK FACE TWO OCLOCK
1F551 FE0F ; emoji style; # (6.0) CLOCK FACE TWO OCLOCK
1F552 FE0E ; text style; # (6.0) CLOCK FACE THREE OCLOCK
1F552 FE0F ; emoji style; # (6.0) CLOCK FACE THREE OCLOCK
1F553 FE0E ; text style; # (6.0) CLOCK FACE FOUR OCLOCK
1F553 FE0F ; emoji style; # (6.0) CLOCK FACE FOUR OCLOCK
1F554 FE0E ; text style; # (6.0) CLOCK FACE FIVE OCLOCK
1F554 FE0F ; emoji style; # (6.0) CLOCK FACE FIVE OCLOCK
1F555 FE0E ; text style; # (6.0) CLOCK FACE SIX OCLOCK
1F555 FE0F ; emoji style; # (6.0) CLOCK FACE SIX OCLOCK
1F556 FE0E ; text style; # (6.0) CLOCK FACE SEVEN OCLOCK
1F556 FE0F ; emoji style; # (6.0) CLOCK FACE SEVEN OCLOCK
1F557 FE0E ; text style; # (6.0) CLOCK FACE EIGHT OCLOCK
1F557 FE0F ; emoji style; # (6.0) CLOCK FACE EIGHT OCLOCK
1F558 FE0E ; text style; # (6.0) CLOCK FACE NINE OCLOCK
1F558 FE0F ; emoji style; # (6.0) CLOCK FACE NINE OCLOCK
1F559 FE0E ; text style; # (6.0) CLOCK FACE TEN OCLOCK
1F559 FE0F ; emoji style; # (6.0) CLOCK FACE TEN OCLOCK
1F55A FE0E ; text style; # (6.0) CLOCK FACE ELEVEN OCLOCK
1F55A FE0F ; emoji style; # (6.0) CLOCK FACE ELEVEN OCLOCK
1F55B FE0E ; text style; # (6.0) CLOCK FACE TWELVE OCLOCK
1F55B FE0F ; emoji style; # (6.0) CLOCK FACE TWELVE OCLOCK
1F55C FE0E ; text style; # (6.0) CLOCK FACE ONE-THIRTY
1F55C FE0F ; emoji style; # (6.0) CLOCK FACE ONE-THIRTY
1F55D FE0E ; text style; # (6.0) CLOCK FACE TWO-THIRTY
1F55D FE0F ; emoji style; # (6.0) CLOCK FACE TWO-THIRTY
1F55E FE0E ; text style; # (6.0) CLOCK FACE THREE-THIRTY
1F55E FE0F ; emoji style; # (6.0) CLOCK FACE THREE-THIRTY
1F55F FE0E ; text style; # (6.0) CLOCK FACE FOUR-THIRTY
1F55F FE0F ; emoji style; # (6.0) CLOCK FACE FOUR-THIRTY
1F560 FE0E ; text style; # (6.0) CLOCK FACE FIVE-THIRTY
1F560 FE0F ; emoji style; # (6.0) CLOCK FACE FIVE-THIRTY
1F561 FE0E ; text style; # (6.0) CLOCK FACE SIX-THIRTY
1F561 FE0F ; emoji style; # (6.0) CLOCK FACE SIX-THIRTY
1F562 FE0E ; text style; # (6.0) CLOCK FACE SEVEN-THIRTY
1F562 FE0F ; emoji style; # (6.0) CLOCK FACE SEVEN-THIRTY
1F563 FE0E ; text style; # (6.0) CLOCK FACE EIGHT-THIRTY
1F563 FE0F ; emoji style; # (6.0) CLOCK FACE EIGHT-THIRTY
1F564 FE0E ; text style; # (6.0) CLOCK FACE NINE-THIRTY
1F564 FE0F ; emoji style; # (6.0) CLOCK FACE NINE-THIRTY
1F565 FE0E ; text style; # (6.0) CLOCK FACE TEN-THIRTY
1F565 FE0F ; emoji style; # (6.0) CLOCK FACE TEN-THIRTY
1F566 FE0E ; text style; # (6.0) CLOCK FACE ELEVEN-THIRTY
1F566 FE0F ; emoji style; # (6.0) CLOCK FACE ELEVEN-THIRTY
1F567 FE0E ; text style; # (6.0) CLOCK FACE TWELVE-THIRTY
1F567 FE0F ; emoji style; # (6.0) CLOCK FACE TWELVE-THIRTY
1F56F FE0E ; text style; # (7.0) CANDLE
1F56F FE0F ; emoji style; # (7.0) CANDLE
1F570 FE0E ; text style; # (7.0) MANTELPIECE CLOCK
1F570 FE0F ; emoji style; # (7.0) MANTELPIECE CLOCK
1F573 FE0E ; text style; # (7.0) HOLE
1F573 FE0F ; emoji style; # (7.0) HOLE
1F574 FE0E ; text style; # (7.0) MAN IN BUSINESS SUIT LEVITATING
1F574 FE0F ; emoji style; # (7.0) MAN IN BUSINESS SUIT LEVITATING
1F575 FE0E ; text style; # (7.0) SLEUTH OR SPY
1F575 FE0F ; emoji style; # (7.0) SLEUTH OR SPY
1F576 FE0E ; text style; # (7.0) DARK SUNGLASSES
1F576 FE0F ; emoji style; # (7.0) DARK SUNGLASSES
1F577 FE0E ; text style; # (7.0) SPIDER
1F577 FE0F ; emoji style; # (7.0) SPIDER
1F578 FE0E ; text style; # (7.0) SPIDER WEB
1F578 FE0F ; emoji style; # (7.0) SPIDER WEB
1F579 FE0E ; text style; # (7.0) JOYSTICK
1F579 FE0F ; emoji style; # (7.0) JOYSTICK
1F587 FE0E ; text style; # (7.0) LINKED PAPERCLIPS
1F587 FE0F ; emoji style; # (7.0) LINKED PAPERCLIPS
1F58A FE0E ; text style; # (7.0) LOWER LEFT BALLPOINT PEN
1F58A FE0F ; emoji style; # (7.0) LOWER LEFT BALLPOINT PEN
1F58B FE0E ; text style; # (7.0) LOWER LEFT FOUNTAIN PEN
1F58B FE0F ; emoji style; # (7.0) LOWER LEFT FOUNTAIN PEN
1F58C FE0E ; text style; # (7.0) LOWER LEFT PAINTBRUSH
1F58C FE0F ; emoji style; # (7.0) LOWER LEFT PAINTBRUSH
1F58D FE0E ; text style; # (7.0) LOWER LEFT CRAYON
1F58D FE0F ; emoji style; # (7.0) LOWER LEFT CRAYON
1F590 FE0E ; text style; # (7.0) RAISED HAND WITH FINGERS SPLAYED
1F590 FE0F ; emoji style; # (7.0) RAISED HAND WITH FINGERS SPLAYED
1F5A5 FE0E ; text style; # (7.0) DESKTOP COMPUTER
1F5A5 FE0F ; emoji style; # (7.0) DESKTOP COMPUTER
1F5A8 FE0E ; text style; # (7.0) PRINTER
1F5A8 FE0F ; emoji style; # (7.0) PRINTER
1F5B1 FE0E ; text style; # (7.0) THREE BUTTON MOUSE
1F5B1 FE0F ; emoji style; # (7.0) THREE BUTTON MOUSE
1F5B2 FE0E ; text style; # (7.0) TRACKBALL
1F5B2 FE0F ; emoji style; # (7.0) TRACKBALL
1F5BC FE0E ; text style; # (7.0) FRAME WITH PICTURE
1F5BC FE0F ; emoji style; # (7.0) FRAME WITH PICTURE
1F5C2 FE0E ; text style; # (7.0) CARD INDEX DIVIDERS
1F5C2 FE0F ; emoji style; # (7.0) CARD INDEX DIVIDERS
1F5C3 FE0E ; text style; # (7.0) CARD FILE BOX
1F5C3 FE0F ; emoji style; # (7.0) CARD FILE BOX
1F5C4 FE0E ; text style; # (7.0) FILE CABINET
1F5C4 FE0F ; emoji style; # (7.0) FILE CABINET
1F5D1 FE0E ; text style; # (7.0) WASTEBASKET
1F5D1 FE0F ; emoji style; # (7.0) WASTEBASKET
1F5D2 FE0E ; text style; # (7.0) SPIRAL NOTE PAD
1F5D2 FE0F ; emoji style; # (7.0) SPIRAL NOTE PAD
1F5D3 FE0E ; text style; # (7.0) SPIRAL CALENDAR PAD
1F5D3 FE0F ; emoji style; # (7.0) SPIRAL CALENDAR PAD
1F5DC FE0E ; text style; # (7.0) COMPRESSION
1F5DC FE0F ; emoji style; # (7.0) COMPRESSION
1F5DD FE0E ; text style; # (7.0) OLD KEY
1F5DD FE0F ; emoji style; # (7.0) OLD KEY
1F5DE FE0E ; text style; # (7.0) ROLLED-UP NEWSPAPER
1F5DE FE0F ; emoji style; # (7.0) ROLLED-UP NEWSPAPER
1F5E1 FE0E ; text style; # (7.0) DAGGER KNIFE
1F5E1 FE0F ; emoji style; # (7.0) DAGGER KNIFE
1F5E3 FE0E ; text style; # (7.0) SPEAKING HEAD IN SILHOUETTE
1F5E3 FE0F ; emoji style; # (7.0) SPEAKING HEAD IN SILHOUETTE
1F5E8 FE0E ; text style; # (7.0) LEFT SPEECH BUBBLE
1F5E8 FE0F ; emoji style; # (7.0) LEFT SPEECH BUBBLE
1F5EF FE0E ; text style; # (7.0) RIGHT ANGER BUBBLE
1F5EF FE0F ; emoji style; # (7.0) RIGHT ANGER BUBBLE
1F5F3 FE0E ; text style; # (7.0) BALLOT BOX WITH BALLOT
1F5F3 FE0F ; emoji style; # (7.0) BALLOT BOX WITH BALLOT
1F5FA FE0E ; text style; # (7.0) WORLD MAP
1F5FA FE0F ; emoji style; # (7.0) WORLD MAP
1F610 FE0E ; text style; # (6.0) NEUTRAL FACE
1F610 FE0F ; emoji style; # (6.0) NEUTRAL FACE
1F687 FE0E ; text style; # (6.0) METRO
1F687 FE0F ; emoji style; # (6.0) METRO
1F68D FE0E ; text style; # (6.0) ONCOMING BUS
1F68D FE0F ; emoji style; # (6.0) ONCOMING BUS
1F691 FE0E ; text style; # (6.0) AMBULANCE
1F691 FE0F ; emoji style; # (6.0) AMBULANCE
1F694 FE0E ; text style; # (6.0) ONCOMING POLICE CAR
1F694 FE0F ; emoji style; # (6.0) ONCOMING POLICE CAR
1F698 FE0E ; text style; # (6.0) ONCOMING AUTOMOBILE
1F698 FE0F ; emoji style; # (6.0) ONCOMING AUTOMOBILE
1F6AD FE0E ; text style; # (6.0) NO SMOKING SYMBOL
1F6AD FE0F ; emoji style; # (6.0) NO SMOKING SYMBOL
1F6B2 FE0E ; text style; # (6.0) BICYCLE
1F6B2 FE0F ; emoji style; # (6.0) BICYCLE
1F6B9 FE0E ; text style; # (6.0) MENS SYMBOL
1F6B9 FE0F ; emoji style; # (6.0) MENS SYMBOL
1F6BA FE0E ; text style; # (6.0) WOMENS SYMBOL
1F6BA FE0F ; emoji style; # (6.0) WOMENS SYMBOL
1F6BC FE0E ; text style; # (6.0) BABY SYMBOL
1F6BC FE0F ; emoji style; # (6.0) BABY SYMBOL
1F6CB FE0E ; text style; # (7.0) COUCH AND LAMP
1F6CB FE0F ; emoji style; # (7.0) COUCH AND LAMP
1F6CD FE0E ; text style; # (7.0) SHOPPING BAGS
1F6CD FE0F ; emoji style; # (7.0) SHOPPING BAGS
1F6CE FE0E ; text style; # (7.0) BELLHOP BELL
1F6CE FE0F ; emoji style; # (7.0) BELLHOP BELL
1F6CF FE0E ; text style; # (7.0) BED
1F6CF FE0F ; emoji style; # (7.0) BED
1F6E0 FE0E ; text style; # (7.0) HAMMER AND WRENCH
1F6E0 FE0F ; emoji style; # (7.0) HAMMER AND WRENCH
1F6E1 FE0E ; text style; # (7.0) SHIELD
1F6E1 FE0F ; emoji style; # (7.0) SHIELD
1F6E2 FE0E ; text style; # (7.0) OIL DRUM
1F6E2 FE0F ; emoji style; # (7.0) OIL DRUM
1F6E3 FE0E ; text style; # (7.0) MOTORWAY
1F6E3 FE0F ; emoji style; # (7.0) MOTORWAY
1F6E4 FE0E ; text style; # (7.0) RAILWAY TRACK
1F6E4 FE0F ; emoji style; # (7.0) RAILWAY TRACK
1F6E5 FE0E ; text style; # (7.0) MOTOR BOAT
1F6E5 FE0F ; emoji style; # (7.0) MOTOR BOAT
1F6E9 FE0E ; text style; # (7.0) SMALL AIRPLANE
1F6E9 FE0F ; emoji style; # (7.0) SMALL AIRPLANE
1F6F0 FE0E ; text style; # (7.0) SATELLITE
1F6F0 FE0F ; emoji style; # (7.0) SATELLITE
1F6F3 FE0E ; text style; # (7.0) PASSENGER SHIP
1F6F3 FE0F ; emoji style; # (7.0) PASSENGER SHIP
#Total sequences: 371
#EOF
@@ -0,0 +1,2710 @@
# DerivedEastAsianWidth-17.0.0.txt
# Date: 2025-07-24, 13:28:21 GMT
# © 2025 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
# For documentation, see https://www.unicode.org/reports/tr44/
# ================================================
# East_Asian_Width (listing EastAsianWidth.txt, field 1)
# All code points not explicitly listed for East_Asian_Width
# have the value Neutral (N).
# @missing: 0000..10FFFF; Neutral
# 3400..4DBF CJK_Unified_Ideographs_Extension_A
# @missing: 3400..4DBF; Wide
# 4E00..9FFF CJK_Unified_Ideographs
# @missing: 4E00..9FFF; Wide
# F900..FAFF CJK_Compatibility_Ideographs
# @missing: F900..FAFF; Wide
# 20000..2A6DF CJK_Unified_Ideographs_Extension_B
# 2A700..2B73F CJK_Unified_Ideographs_Extension_C
# 2B740..2B81F CJK_Unified_Ideographs_Extension_D
# 2B820..2CEAF CJK_Unified_Ideographs_Extension_E
# 2CEB0..2EBEF CJK_Unified_Ideographs_Extension_F
# 2EBF0..2EE5F CJK_Unified_Ideographs_Extension_I
# 2F800..2FA1F CJK_Compatibility_Ideographs_Supplement
# @missing: 20000..2FFFD; Wide
# 30000..3134F CJK_Unified_Ideographs_Extension_G
# 31350..323AF CJK_Unified_Ideographs_Extension_H
# 323B0..3347F CJK_Unified_Ideographs_Extension_J
# @missing: 30000..3FFFD; Wide
# ================================================
# East_Asian_Width=Neutral
0000..001F ; N # Cc [32] <control-0000>..<control-001F>
007F..009F ; N # Cc [33] <control-007F>..<control-009F>
00A0 ; N # Zs NO-BREAK SPACE
00A9 ; N # So COPYRIGHT SIGN
00AB ; N # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
00B5 ; N # L& MICRO SIGN
00BB ; N # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
00C0..00C5 ; N # L& [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE
00C7..00CF ; N # L& [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS
00D1..00D6 ; N # L& [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS
00D9..00DD ; N # L& [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE
00E2..00E5 ; N # L& [4] LATIN SMALL LETTER A WITH CIRCUMFLEX..LATIN SMALL LETTER A WITH RING ABOVE
00E7 ; N # L& LATIN SMALL LETTER C WITH CEDILLA
00EB ; N # L& LATIN SMALL LETTER E WITH DIAERESIS
00EE..00EF ; N # L& [2] LATIN SMALL LETTER I WITH CIRCUMFLEX..LATIN SMALL LETTER I WITH DIAERESIS
00F1 ; N # L& LATIN SMALL LETTER N WITH TILDE
00F4..00F6 ; N # L& [3] LATIN SMALL LETTER O WITH CIRCUMFLEX..LATIN SMALL LETTER O WITH DIAERESIS
00FB ; N # L& LATIN SMALL LETTER U WITH CIRCUMFLEX
00FD ; N # L& LATIN SMALL LETTER Y WITH ACUTE
00FF..0100 ; N # L& [2] LATIN SMALL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER A WITH MACRON
0102..0110 ; N # L& [15] LATIN CAPITAL LETTER A WITH BREVE..LATIN CAPITAL LETTER D WITH STROKE
0112 ; N # L& LATIN CAPITAL LETTER E WITH MACRON
0114..011A ; N # L& [7] LATIN CAPITAL LETTER E WITH BREVE..LATIN CAPITAL LETTER E WITH CARON
011C..0125 ; N # L& [10] LATIN CAPITAL LETTER G WITH CIRCUMFLEX..LATIN SMALL LETTER H WITH CIRCUMFLEX
0128..012A ; N # L& [3] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH MACRON
012C..0130 ; N # L& [5] LATIN CAPITAL LETTER I WITH BREVE..LATIN CAPITAL LETTER I WITH DOT ABOVE
0134..0137 ; N # L& [4] LATIN CAPITAL LETTER J WITH CIRCUMFLEX..LATIN SMALL LETTER K WITH CEDILLA
0139..013E ; N # L& [6] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH CARON
0143 ; N # L& LATIN CAPITAL LETTER N WITH ACUTE
0145..0147 ; N # L& [3] LATIN CAPITAL LETTER N WITH CEDILLA..LATIN CAPITAL LETTER N WITH CARON
014C ; N # L& LATIN CAPITAL LETTER O WITH MACRON
014E..0151 ; N # L& [4] LATIN CAPITAL LETTER O WITH BREVE..LATIN SMALL LETTER O WITH DOUBLE ACUTE
0154..0165 ; N # L& [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON
0168..016A ; N # L& [3] LATIN CAPITAL LETTER U WITH TILDE..LATIN CAPITAL LETTER U WITH MACRON
016C..01BA ; N # L& [79] LATIN CAPITAL LETTER U WITH BREVE..LATIN SMALL LETTER EZH WITH TAIL
01BB ; N # Lo LATIN LETTER TWO WITH STROKE
01BC..01BF ; N # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
01C0..01C3 ; N # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
01C4..01CD ; N # L& [10] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON
01CF ; N # L& LATIN CAPITAL LETTER I WITH CARON
01D1 ; N # L& LATIN CAPITAL LETTER O WITH CARON
01D3 ; N # L& LATIN CAPITAL LETTER U WITH CARON
01D5 ; N # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
01D7 ; N # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
01D9 ; N # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
01DB ; N # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
01DD..0250 ; N # L& [116] LATIN SMALL LETTER TURNED E..LATIN SMALL LETTER TURNED A
0252..0260 ; N # L& [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK
0262..0293 ; N # L& [50] LATIN LETTER SMALL CAPITAL G..LATIN SMALL LETTER EZH WITH CURL
0294..0295 ; N # Lo [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE
0296..02AF ; N # L& [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
02B0..02C1 ; N # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
02C2..02C3 ; N # Sk [2] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER RIGHT ARROWHEAD
02C5 ; N # Sk MODIFIER LETTER DOWN ARROWHEAD
02C6 ; N # Lm MODIFIER LETTER CIRCUMFLEX ACCENT
02C8 ; N # Lm MODIFIER LETTER VERTICAL LINE
02CC ; N # Lm MODIFIER LETTER LOW VERTICAL LINE
02CE..02CF ; N # Lm [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT
02D1 ; N # Lm MODIFIER LETTER HALF TRIANGULAR COLON
02D2..02D7 ; N # Sk [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
02DC ; N # Sk SMALL TILDE
02DE ; N # Sk MODIFIER LETTER RHOTIC HOOK
02E0..02E4 ; N # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
02E5..02EB ; N # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
02EC ; N # Lm MODIFIER LETTER VOICING
02ED ; N # Sk MODIFIER LETTER UNASPIRATED
02EE ; N # Lm MODIFIER LETTER DOUBLE APOSTROPHE
02EF..02FF ; N # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
0370..0373 ; N # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
0374 ; N # Lm GREEK NUMERAL SIGN
0375 ; N # Sk GREEK LOWER NUMERAL SIGN
0376..0377 ; N # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
037A ; N # Lm GREEK YPOGEGRAMMENI
037B..037D ; N # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
037E ; N # Po GREEK QUESTION MARK
037F ; N # L& GREEK CAPITAL LETTER YOT
0384..0385 ; N # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
0386 ; N # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
0387 ; N # Po GREEK ANO TELEIA
0388..038A ; N # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
038C ; N # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
038E..0390 ; N # L& [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
03AA..03B0 ; N # L& [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
03C2 ; N # L& GREEK SMALL LETTER FINAL SIGMA
03CA..03F5 ; N # L& [44] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK LUNATE EPSILON SYMBOL
03F6 ; N # Sm GREEK REVERSED LUNATE EPSILON SYMBOL
03F7..0400 ; N # L& [10] GREEK CAPITAL LETTER SHO..CYRILLIC CAPITAL LETTER IE WITH GRAVE
0402..040F ; N # L& [14] CYRILLIC CAPITAL LETTER DJE..CYRILLIC CAPITAL LETTER DZHE
0450 ; N # L& CYRILLIC SMALL LETTER IE WITH GRAVE
0452..0481 ; N # L& [48] CYRILLIC SMALL LETTER DJE..CYRILLIC SMALL LETTER KOPPA
0482 ; N # So CYRILLIC THOUSANDS SIGN
0483..0487 ; N # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
0488..0489 ; N # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
048A..052F ; N # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
0531..0556 ; N # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
0559 ; N # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
055A..055F ; N # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
0560..0588 ; N # L& [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
0589 ; N # Po ARMENIAN FULL STOP
058A ; N # Pd ARMENIAN HYPHEN
058D..058E ; N # So [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
058F ; N # Sc ARMENIAN DRAM SIGN
0591..05BD ; N # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
05BE ; N # Pd HEBREW PUNCTUATION MAQAF
05BF ; N # Mn HEBREW POINT RAFE
05C0 ; N # Po HEBREW PUNCTUATION PASEQ
05C1..05C2 ; N # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
05C3 ; N # Po HEBREW PUNCTUATION SOF PASUQ
05C4..05C5 ; N # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
05C6 ; N # Po HEBREW PUNCTUATION NUN HAFUKHA
05C7 ; N # Mn HEBREW POINT QAMATS QATAN
05D0..05EA ; N # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
05EF..05F2 ; N # Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
05F3..05F4 ; N # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
0600..0605 ; N # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
0606..0608 ; N # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
0609..060A ; N # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
060B ; N # Sc AFGHANI SIGN
060C..060D ; N # Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR
060E..060F ; N # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
0610..061A ; N # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
061B ; N # Po ARABIC SEMICOLON
061C ; N # Cf ARABIC LETTER MARK
061D..061F ; N # Po [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK
0620..063F ; N # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
0640 ; N # Lm ARABIC TATWEEL
0641..064A ; N # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
064B..065F ; N # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
0660..0669 ; N # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
066A..066D ; N # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
066E..066F ; N # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
0670 ; N # Mn ARABIC LETTER SUPERSCRIPT ALEF
0671..06D3 ; N # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
06D4 ; N # Po ARABIC FULL STOP
06D5 ; N # Lo ARABIC LETTER AE
06D6..06DC ; N # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
06DD ; N # Cf ARABIC END OF AYAH
06DE ; N # So ARABIC START OF RUB EL HIZB
06DF..06E4 ; N # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
06E5..06E6 ; N # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
06E7..06E8 ; N # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
06E9 ; N # So ARABIC PLACE OF SAJDAH
06EA..06ED ; N # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
06EE..06EF ; N # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
06F0..06F9 ; N # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
06FA..06FC ; N # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
06FD..06FE ; N # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
06FF ; N # Lo ARABIC LETTER HEH WITH INVERTED V
0700..070D ; N # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
070F ; N # Cf SYRIAC ABBREVIATION MARK
0710 ; N # Lo SYRIAC LETTER ALAPH
0711 ; N # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
0712..072F ; N # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
0730..074A ; N # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
074D..07A5 ; N # Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU
07A6..07B0 ; N # Mn [11] THAANA ABAFILI..THAANA SUKUN
07B1 ; N # Lo THAANA LETTER NAA
07C0..07C9 ; N # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
07CA..07EA ; N # Lo [33] NKO LETTER A..NKO LETTER JONA RA
07EB..07F3 ; N # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
07F4..07F5 ; N # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
07F6 ; N # So NKO SYMBOL OO DENNEN
07F7..07F9 ; N # Po [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
07FA ; N # Lm NKO LAJANYALAN
07FD ; N # Mn NKO DANTAYALAN
07FE..07FF ; N # Sc [2] NKO DOROME SIGN..NKO TAMAN SIGN
0800..0815 ; N # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
0816..0819 ; N # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
081A ; N # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT
081B..0823 ; N # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
0824 ; N # Lm SAMARITAN MODIFIER LETTER SHORT A
0825..0827 ; N # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0828 ; N # Lm SAMARITAN MODIFIER LETTER I
0829..082D ; N # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
0830..083E ; N # Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
0840..0858 ; N # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
0859..085B ; N # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
085E ; N # Po MANDAIC PUNCTUATION
0860..086A ; N # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
0870..0887 ; N # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
0888 ; N # Sk ARABIC RAISED ROUND DOT
0889..088F ; N # Lo [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE
0890..0891 ; N # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
0897..089F ; N # Mn [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
08A0..08C8 ; N # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
08C9 ; N # Lm ARABIC SMALL FARSI YEH
08CA..08E1 ; N # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
08E2 ; N # Cf ARABIC DISPUTED END OF AYAH
08E3..0902 ; N # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
0903 ; N # Mc DEVANAGARI SIGN VISARGA
0904..0939 ; N # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
093A ; N # Mn DEVANAGARI VOWEL SIGN OE
093B ; N # Mc DEVANAGARI VOWEL SIGN OOE
093C ; N # Mn DEVANAGARI SIGN NUKTA
093D ; N # Lo DEVANAGARI SIGN AVAGRAHA
093E..0940 ; N # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
0941..0948 ; N # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
0949..094C ; N # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
094D ; N # Mn DEVANAGARI SIGN VIRAMA
094E..094F ; N # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
0950 ; N # Lo DEVANAGARI OM
0951..0957 ; N # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
0958..0961 ; N # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
0962..0963 ; N # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
0964..0965 ; N # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
0966..096F ; N # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
0970 ; N # Po DEVANAGARI ABBREVIATION SIGN
0971 ; N # Lm DEVANAGARI SIGN HIGH SPACING DOT
0972..0980 ; N # Lo [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
0981 ; N # Mn BENGALI SIGN CANDRABINDU
0982..0983 ; N # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
0985..098C ; N # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
098F..0990 ; N # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
0993..09A8 ; N # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
09AA..09B0 ; N # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
09B2 ; N # Lo BENGALI LETTER LA
09B6..09B9 ; N # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
09BC ; N # Mn BENGALI SIGN NUKTA
09BD ; N # Lo BENGALI SIGN AVAGRAHA
09BE..09C0 ; N # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
09C1..09C4 ; N # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
09C7..09C8 ; N # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
09CB..09CC ; N # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
09CD ; N # Mn BENGALI SIGN VIRAMA
09CE ; N # Lo BENGALI LETTER KHANDA TA
09D7 ; N # Mc BENGALI AU LENGTH MARK
09DC..09DD ; N # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
09DF..09E1 ; N # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
09E2..09E3 ; N # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
09E6..09EF ; N # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
09F0..09F1 ; N # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
09F2..09F3 ; N # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
09F4..09F9 ; N # No [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
09FA ; N # So BENGALI ISSHAR
09FB ; N # Sc BENGALI GANDA MARK
09FC ; N # Lo BENGALI LETTER VEDIC ANUSVARA
09FD ; N # Po BENGALI ABBREVIATION SIGN
09FE ; N # Mn BENGALI SANDHI MARK
0A01..0A02 ; N # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
0A03 ; N # Mc GURMUKHI SIGN VISARGA
0A05..0A0A ; N # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
0A0F..0A10 ; N # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
0A13..0A28 ; N # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
0A2A..0A30 ; N # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
0A32..0A33 ; N # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
0A35..0A36 ; N # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
0A38..0A39 ; N # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
0A3C ; N # Mn GURMUKHI SIGN NUKTA
0A3E..0A40 ; N # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
0A41..0A42 ; N # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
0A47..0A48 ; N # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
0A4B..0A4D ; N # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
0A51 ; N # Mn GURMUKHI SIGN UDAAT
0A59..0A5C ; N # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
0A5E ; N # Lo GURMUKHI LETTER FA
0A66..0A6F ; N # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
0A70..0A71 ; N # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
0A72..0A74 ; N # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
0A75 ; N # Mn GURMUKHI SIGN YAKASH
0A76 ; N # Po GURMUKHI ABBREVIATION SIGN
0A81..0A82 ; N # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
0A83 ; N # Mc GUJARATI SIGN VISARGA
0A85..0A8D ; N # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
0A8F..0A91 ; N # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
0A93..0AA8 ; N # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
0AAA..0AB0 ; N # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
0AB2..0AB3 ; N # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
0AB5..0AB9 ; N # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
0ABC ; N # Mn GUJARATI SIGN NUKTA
0ABD ; N # Lo GUJARATI SIGN AVAGRAHA
0ABE..0AC0 ; N # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
0AC1..0AC5 ; N # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
0AC7..0AC8 ; N # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
0AC9 ; N # Mc GUJARATI VOWEL SIGN CANDRA O
0ACB..0ACC ; N # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
0ACD ; N # Mn GUJARATI SIGN VIRAMA
0AD0 ; N # Lo GUJARATI OM
0AE0..0AE1 ; N # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
0AE2..0AE3 ; N # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
0AE6..0AEF ; N # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
0AF0 ; N # Po GUJARATI ABBREVIATION SIGN
0AF1 ; N # Sc GUJARATI RUPEE SIGN
0AF9 ; N # Lo GUJARATI LETTER ZHA
0AFA..0AFF ; N # Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
0B01 ; N # Mn ORIYA SIGN CANDRABINDU
0B02..0B03 ; N # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
0B05..0B0C ; N # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
0B0F..0B10 ; N # Lo [2] ORIYA LETTER E..ORIYA LETTER AI
0B13..0B28 ; N # Lo [22] ORIYA LETTER O..ORIYA LETTER NA
0B2A..0B30 ; N # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
0B32..0B33 ; N # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
0B35..0B39 ; N # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
0B3C ; N # Mn ORIYA SIGN NUKTA
0B3D ; N # Lo ORIYA SIGN AVAGRAHA
0B3E ; N # Mc ORIYA VOWEL SIGN AA
0B3F ; N # Mn ORIYA VOWEL SIGN I
0B40 ; N # Mc ORIYA VOWEL SIGN II
0B41..0B44 ; N # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
0B47..0B48 ; N # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
0B4B..0B4C ; N # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
0B4D ; N # Mn ORIYA SIGN VIRAMA
0B55..0B56 ; N # Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
0B57 ; N # Mc ORIYA AU LENGTH MARK
0B5C..0B5D ; N # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
0B5F..0B61 ; N # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
0B62..0B63 ; N # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
0B66..0B6F ; N # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
0B70 ; N # So ORIYA ISSHAR
0B71 ; N # Lo ORIYA LETTER WA
0B72..0B77 ; N # No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
0B82 ; N # Mn TAMIL SIGN ANUSVARA
0B83 ; N # Lo TAMIL SIGN VISARGA
0B85..0B8A ; N # Lo [6] TAMIL LETTER A..TAMIL LETTER UU
0B8E..0B90 ; N # Lo [3] TAMIL LETTER E..TAMIL LETTER AI
0B92..0B95 ; N # Lo [4] TAMIL LETTER O..TAMIL LETTER KA
0B99..0B9A ; N # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
0B9C ; N # Lo TAMIL LETTER JA
0B9E..0B9F ; N # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
0BA3..0BA4 ; N # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
0BA8..0BAA ; N # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
0BAE..0BB9 ; N # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
0BBE..0BBF ; N # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
0BC0 ; N # Mn TAMIL VOWEL SIGN II
0BC1..0BC2 ; N # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
0BC6..0BC8 ; N # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
0BCA..0BCC ; N # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
0BCD ; N # Mn TAMIL SIGN VIRAMA
0BD0 ; N # Lo TAMIL OM
0BD7 ; N # Mc TAMIL AU LENGTH MARK
0BE6..0BEF ; N # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
0BF0..0BF2 ; N # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
0BF3..0BF8 ; N # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
0BF9 ; N # Sc TAMIL RUPEE SIGN
0BFA ; N # So TAMIL NUMBER SIGN
0C00 ; N # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C01..0C03 ; N # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
0C04 ; N # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
0C05..0C0C ; N # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
0C0E..0C10 ; N # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
0C12..0C28 ; N # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
0C2A..0C39 ; N # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
0C3C ; N # Mn TELUGU SIGN NUKTA
0C3D ; N # Lo TELUGU SIGN AVAGRAHA
0C3E..0C40 ; N # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C41..0C44 ; N # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
0C46..0C48 ; N # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
0C4A..0C4D ; N # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
0C55..0C56 ; N # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0C58..0C5A ; N # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
0C5C..0C5D ; N # Lo [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU
0C60..0C61 ; N # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
0C62..0C63 ; N # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
0C66..0C6F ; N # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
0C77 ; N # Po TELUGU SIGN SIDDHAM
0C78..0C7E ; N # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
0C7F ; N # So TELUGU SIGN TUUMU
0C80 ; N # Lo KANNADA SIGN SPACING CANDRABINDU
0C81 ; N # Mn KANNADA SIGN CANDRABINDU
0C82..0C83 ; N # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
0C84 ; N # Po KANNADA SIGN SIDDHAM
0C85..0C8C ; N # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
0C8E..0C90 ; N # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
0C92..0CA8 ; N # Lo [23] KANNADA LETTER O..KANNADA LETTER NA
0CAA..0CB3 ; N # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
0CB5..0CB9 ; N # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
0CBC ; N # Mn KANNADA SIGN NUKTA
0CBD ; N # Lo KANNADA SIGN AVAGRAHA
0CBE ; N # Mc KANNADA VOWEL SIGN AA
0CBF ; N # Mn KANNADA VOWEL SIGN I
0CC0..0CC4 ; N # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
0CC6 ; N # Mn KANNADA VOWEL SIGN E
0CC7..0CC8 ; N # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
0CCA..0CCB ; N # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
0CCC..0CCD ; N # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CD5..0CD6 ; N # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CDC..0CDE ; N # Lo [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA
0CE0..0CE1 ; N # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
0CE2..0CE3 ; N # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0CE6..0CEF ; N # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0CF1..0CF2 ; N # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
0CF3 ; N # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D00..0D01 ; N # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
0D02..0D03 ; N # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D04..0D0C ; N # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
0D0E..0D10 ; N # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
0D12..0D3A ; N # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
0D3B..0D3C ; N # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
0D3D ; N # Lo MALAYALAM SIGN AVAGRAHA
0D3E..0D40 ; N # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
0D41..0D44 ; N # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
0D46..0D48 ; N # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
0D4A..0D4C ; N # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
0D4D ; N # Mn MALAYALAM SIGN VIRAMA
0D4E ; N # Lo MALAYALAM LETTER DOT REPH
0D4F ; N # So MALAYALAM SIGN PARA
0D54..0D56 ; N # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
0D57 ; N # Mc MALAYALAM AU LENGTH MARK
0D58..0D5E ; N # No [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
0D5F..0D61 ; N # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
0D62..0D63 ; N # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
0D66..0D6F ; N # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
0D70..0D78 ; N # No [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS
0D79 ; N # So MALAYALAM DATE MARK
0D7A..0D7F ; N # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
0D81 ; N # Mn SINHALA SIGN CANDRABINDU
0D82..0D83 ; N # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
0D85..0D96 ; N # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
0D9A..0DB1 ; N # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
0DB3..0DBB ; N # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
0DBD ; N # Lo SINHALA LETTER DANTAJA LAYANNA
0DC0..0DC6 ; N # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
0DCA ; N # Mn SINHALA SIGN AL-LAKUNA
0DCF..0DD1 ; N # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
0DD2..0DD4 ; N # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
0DD6 ; N # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
0DD8..0DDF ; N # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
0DE6..0DEF ; N # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
0DF2..0DF3 ; N # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
0DF4 ; N # Po SINHALA PUNCTUATION KUNDDALIYA
0E01..0E30 ; N # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
0E31 ; N # Mn THAI CHARACTER MAI HAN-AKAT
0E32..0E33 ; N # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
0E34..0E3A ; N # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
0E3F ; N # Sc THAI CURRENCY SYMBOL BAHT
0E40..0E45 ; N # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
0E46 ; N # Lm THAI CHARACTER MAIYAMOK
0E47..0E4E ; N # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0E4F ; N # Po THAI CHARACTER FONGMAN
0E50..0E59 ; N # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
0E5A..0E5B ; N # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
0E81..0E82 ; N # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
0E84 ; N # Lo LAO LETTER KHO TAM
0E86..0E8A ; N # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
0E8C..0EA3 ; N # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
0EA5 ; N # Lo LAO LETTER LO LOOT
0EA7..0EB0 ; N # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
0EB1 ; N # Mn LAO VOWEL SIGN MAI KAN
0EB2..0EB3 ; N # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
0EB4..0EBC ; N # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
0EBD ; N # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4 ; N # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
0EC6 ; N # Lm LAO KO LA
0EC8..0ECE ; N # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0ED0..0ED9 ; N # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
0EDC..0EDF ; N # Lo [4] LAO HO NO..LAO LETTER KHMU NYO
0F00 ; N # Lo TIBETAN SYLLABLE OM
0F01..0F03 ; N # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
0F04..0F12 ; N # Po [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
0F13 ; N # So TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
0F14 ; N # Po TIBETAN MARK GTER TSHEG
0F15..0F17 ; N # So [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
0F18..0F19 ; N # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F1A..0F1F ; N # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
0F20..0F29 ; N # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
0F2A..0F33 ; N # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
0F34 ; N # So TIBETAN MARK BSDUS RTAGS
0F35 ; N # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
0F36 ; N # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
0F37 ; N # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
0F38 ; N # So TIBETAN MARK CHE MGO
0F39 ; N # Mn TIBETAN MARK TSA -PHRU
0F3A ; N # Ps TIBETAN MARK GUG RTAGS GYON
0F3B ; N # Pe TIBETAN MARK GUG RTAGS GYAS
0F3C ; N # Ps TIBETAN MARK ANG KHANG GYON
0F3D ; N # Pe TIBETAN MARK ANG KHANG GYAS
0F3E..0F3F ; N # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
0F40..0F47 ; N # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
0F49..0F6C ; N # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
0F71..0F7E ; N # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
0F7F ; N # Mc TIBETAN SIGN RNAM BCAD
0F80..0F84 ; N # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
0F85 ; N # Po TIBETAN MARK PALUTA
0F86..0F87 ; N # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
0F88..0F8C ; N # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
0F8D..0F97 ; N # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
0F99..0FBC ; N # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
0FBE..0FC5 ; N # So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
0FC6 ; N # Mn TIBETAN SYMBOL PADMA GDAN
0FC7..0FCC ; N # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
0FCE..0FCF ; N # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
0FD0..0FD4 ; N # Po [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
0FD5..0FD8 ; N # So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
0FD9..0FDA ; N # Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
1000..102A ; N # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU
102B..102C ; N # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
102D..1030 ; N # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
1031 ; N # Mc MYANMAR VOWEL SIGN E
1032..1037 ; N # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
1038 ; N # Mc MYANMAR SIGN VISARGA
1039..103A ; N # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
103B..103C ; N # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
103D..103E ; N # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
103F ; N # Lo MYANMAR LETTER GREAT SA
1040..1049 ; N # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
104A..104F ; N # Po [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
1050..1055 ; N # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
1056..1057 ; N # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
1058..1059 ; N # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
105A..105D ; N # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
105E..1060 ; N # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
1061 ; N # Lo MYANMAR LETTER SGAW KAREN SHA
1062..1064 ; N # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
1065..1066 ; N # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
1067..106D ; N # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
106E..1070 ; N # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
1071..1074 ; N # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
1075..1081 ; N # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
1082 ; N # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
1083..1084 ; N # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
1085..1086 ; N # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
1087..108C ; N # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
108D ; N # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
108E ; N # Lo MYANMAR LETTER RUMAI PALAUNG FA
108F ; N # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
1090..1099 ; N # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
109A..109C ; N # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
109D ; N # Mn MYANMAR VOWEL SIGN AITON AI
109E..109F ; N # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
10A0..10C5 ; N # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
10C7 ; N # L& GEORGIAN CAPITAL LETTER YN
10CD ; N # L& GEORGIAN CAPITAL LETTER AEN
10D0..10FA ; N # L& [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
10FB ; N # Po GEORGIAN PARAGRAPH SEPARATOR
10FC ; N # Lm MODIFIER LETTER GEORGIAN NAR
10FD..10FF ; N # L& [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
1160..1248 ; N # Lo [233] HANGUL JUNGSEONG FILLER..ETHIOPIC SYLLABLE QWA
124A..124D ; N # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
1250..1256 ; N # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
1258 ; N # Lo ETHIOPIC SYLLABLE QHWA
125A..125D ; N # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
1260..1288 ; N # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
128A..128D ; N # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
1290..12B0 ; N # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
12B2..12B5 ; N # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
12B8..12BE ; N # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
12C0 ; N # Lo ETHIOPIC SYLLABLE KXWA
12C2..12C5 ; N # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
12C8..12D6 ; N # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
12D8..1310 ; N # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
1312..1315 ; N # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
1318..135A ; N # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
135D..135F ; N # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
1360..1368 ; N # Po [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
1369..137C ; N # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
1380..138F ; N # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
1390..1399 ; N # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
13A0..13F5 ; N # L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
13F8..13FD ; N # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
1400 ; N # Pd CANADIAN SYLLABICS HYPHEN
1401..166C ; N # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
166D ; N # So CANADIAN SYLLABICS CHI SIGN
166E ; N # Po CANADIAN SYLLABICS FULL STOP
166F..167F ; N # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
1680 ; N # Zs OGHAM SPACE MARK
1681..169A ; N # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
169B ; N # Ps OGHAM FEATHER MARK
169C ; N # Pe OGHAM REVERSED FEATHER MARK
16A0..16EA ; N # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
16EB..16ED ; N # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
16EE..16F0 ; N # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
16F1..16F8 ; N # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
1700..1711 ; N # Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA
1712..1714 ; N # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
1715 ; N # Mc TAGALOG SIGN PAMUDPOD
171F..1731 ; N # Lo [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA
1732..1733 ; N # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
1734 ; N # Mc HANUNOO SIGN PAMUDPOD
1735..1736 ; N # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
1740..1751 ; N # Lo [18] BUHID LETTER A..BUHID LETTER HA
1752..1753 ; N # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
1760..176C ; N # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
176E..1770 ; N # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
1772..1773 ; N # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
1780..17B3 ; N # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
17B4..17B5 ; N # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
17B6 ; N # Mc KHMER VOWEL SIGN AA
17B7..17BD ; N # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
17BE..17C5 ; N # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
17C6 ; N # Mn KHMER SIGN NIKAHIT
17C7..17C8 ; N # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
17C9..17D3 ; N # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
17D4..17D6 ; N # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
17D7 ; N # Lm KHMER SIGN LEK TOO
17D8..17DA ; N # Po [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
17DB ; N # Sc KHMER CURRENCY SYMBOL RIEL
17DC ; N # Lo KHMER SIGN AVAKRAHASANYA
17DD ; N # Mn KHMER SIGN ATTHACAN
17E0..17E9 ; N # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
17F0..17F9 ; N # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
1800..1805 ; N # Po [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
1806 ; N # Pd MONGOLIAN TODO SOFT HYPHEN
1807..180A ; N # Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
180B..180D ; N # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
180E ; N # Cf MONGOLIAN VOWEL SEPARATOR
180F ; N # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
1810..1819 ; N # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
1820..1842 ; N # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
1843 ; N # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
1844..1878 ; N # Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
1880..1884 ; N # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
1885..1886 ; N # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
1887..18A8 ; N # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
18A9 ; N # Mn MONGOLIAN LETTER ALI GALI DAGALGA
18AA ; N # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
18B0..18F5 ; N # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
1900..191E ; N # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
1920..1922 ; N # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
1923..1926 ; N # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
1927..1928 ; N # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
1929..192B ; N # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
1930..1931 ; N # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
1932 ; N # Mn LIMBU SMALL LETTER ANUSVARA
1933..1938 ; N # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
1939..193B ; N # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
1940 ; N # So LIMBU SIGN LOO
1944..1945 ; N # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
1946..194F ; N # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
1950..196D ; N # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI
1970..1974 ; N # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
1980..19AB ; N # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
19B0..19C9 ; N # Lo [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
19D0..19D9 ; N # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
19DA ; N # No NEW TAI LUE THAM DIGIT ONE
19DE..19FF ; N # So [34] NEW TAI LUE SIGN LAE..KHMER SYMBOL DAP-PRAM ROC
1A00..1A16 ; N # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
1A17..1A18 ; N # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
1A19..1A1A ; N # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
1A1B ; N # Mn BUGINESE VOWEL SIGN AE
1A1E..1A1F ; N # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
1A20..1A54 ; N # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
1A55 ; N # Mc TAI THAM CONSONANT SIGN MEDIAL RA
1A56 ; N # Mn TAI THAM CONSONANT SIGN MEDIAL LA
1A57 ; N # Mc TAI THAM CONSONANT SIGN LA TANG LAI
1A58..1A5E ; N # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
1A60 ; N # Mn TAI THAM SIGN SAKOT
1A61 ; N # Mc TAI THAM VOWEL SIGN A
1A62 ; N # Mn TAI THAM VOWEL SIGN MAI SAT
1A63..1A64 ; N # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
1A65..1A6C ; N # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
1A6D..1A72 ; N # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
1A73..1A7C ; N # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
1A7F ; N # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
1A80..1A89 ; N # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
1A90..1A99 ; N # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
1AA0..1AA6 ; N # Po [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
1AA7 ; N # Lm TAI THAM SIGN MAI YAMOK
1AA8..1AAD ; N # Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
1AB0..1ABD ; N # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
1ABE ; N # Me COMBINING PARENTHESES OVERLAY
1ABF..1ADD ; N # Mn [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
1AE0..1AEB ; N # Mn [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
1B00..1B03 ; N # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B04 ; N # Mc BALINESE SIGN BISAH
1B05..1B33 ; N # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
1B34 ; N # Mn BALINESE SIGN REREKAN
1B35 ; N # Mc BALINESE VOWEL SIGN TEDUNG
1B36..1B3A ; N # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
1B3B ; N # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
1B3C ; N # Mn BALINESE VOWEL SIGN LA LENGA
1B3D..1B41 ; N # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
1B42 ; N # Mn BALINESE VOWEL SIGN PEPET
1B43..1B44 ; N # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
1B45..1B4C ; N # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
1B4E..1B4F ; N # Po [2] BALINESE INVERTED CARIK SIKI..BALINESE INVERTED CARIK PAREREN
1B50..1B59 ; N # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
1B5A..1B60 ; N # Po [7] BALINESE PANTI..BALINESE PAMENENG
1B61..1B6A ; N # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
1B6B..1B73 ; N # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
1B74..1B7C ; N # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
1B7D..1B7F ; N # Po [3] BALINESE PANTI LANTANG..BALINESE PANTI BAWAK
1B80..1B81 ; N # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
1B82 ; N # Mc SUNDANESE SIGN PANGWISAD
1B83..1BA0 ; N # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
1BA1 ; N # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
1BA2..1BA5 ; N # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
1BA6..1BA7 ; N # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
1BA8..1BA9 ; N # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
1BAA ; N # Mc SUNDANESE SIGN PAMAAEH
1BAB..1BAD ; N # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
1BAE..1BAF ; N # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
1BB0..1BB9 ; N # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
1BBA..1BE5 ; N # Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U
1BE6 ; N # Mn BATAK SIGN TOMPI
1BE7 ; N # Mc BATAK VOWEL SIGN E
1BE8..1BE9 ; N # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
1BEA..1BEC ; N # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
1BED ; N # Mn BATAK VOWEL SIGN KARO O
1BEE ; N # Mc BATAK VOWEL SIGN U
1BEF..1BF1 ; N # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
1BF2..1BF3 ; N # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
1BFC..1BFF ; N # Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
1C00..1C23 ; N # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A
1C24..1C2B ; N # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
1C2C..1C33 ; N # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
1C34..1C35 ; N # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
1C36..1C37 ; N # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
1C3B..1C3F ; N # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
1C40..1C49 ; N # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
1C4D..1C4F ; N # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
1C50..1C59 ; N # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
1C5A..1C77 ; N # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
1C78..1C7D ; N # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
1C7E..1C7F ; N # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
1C80..1C8A ; N # L& [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
1C90..1CBA ; N # L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
1CBD..1CBF ; N # L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
1CC0..1CC7 ; N # Po [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
1CD0..1CD2 ; N # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
1CD3 ; N # Po VEDIC SIGN NIHSHVASA
1CD4..1CE0 ; N # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
1CE1 ; N # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
1CE2..1CE8 ; N # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CE9..1CEC ; N # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
1CED ; N # Mn VEDIC SIGN TIRYAK
1CEE..1CF3 ; N # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF4 ; N # Mn VEDIC TONE CANDRA ABOVE
1CF5..1CF6 ; N # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
1CF7 ; N # Mc VEDIC SIGN ATIKRAMA
1CF8..1CF9 ; N # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
1CFA ; N # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
1D00..1D2B ; N # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D2C..1D6A ; N # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
1D6B..1D77 ; N # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
1D78 ; N # Lm MODIFIER LETTER CYRILLIC EN
1D79..1D9A ; N # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
1D9B..1DBF ; N # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
1DC0..1DFF ; N # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
1E00..1F15 ; N # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
1F18..1F1D ; N # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
1F20..1F45 ; N # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
1F48..1F4D ; N # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
1F50..1F57 ; N # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
1F59 ; N # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
1F5B ; N # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
1F5D ; N # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
1F5F..1F7D ; N # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
1F80..1FB4 ; N # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
1FB6..1FBC ; N # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
1FBD ; N # Sk GREEK KORONIS
1FBE ; N # L& GREEK PROSGEGRAMMENI
1FBF..1FC1 ; N # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
1FC2..1FC4 ; N # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
1FC6..1FCC ; N # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
1FCD..1FCF ; N # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
1FD0..1FD3 ; N # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
1FD6..1FDB ; N # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
1FDD..1FDF ; N # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
1FE0..1FEC ; N # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
1FED..1FEF ; N # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
1FF2..1FF4 ; N # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
1FF6..1FFC ; N # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
1FFD..1FFE ; N # Sk [2] GREEK OXIA..GREEK DASIA
2000..200A ; N # Zs [11] EN QUAD..HAIR SPACE
200B..200F ; N # Cf [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
2011..2012 ; N # Pd [2] NON-BREAKING HYPHEN..FIGURE DASH
2017 ; N # Po DOUBLE LOW LINE
201A ; N # Ps SINGLE LOW-9 QUOTATION MARK
201B ; N # Pi SINGLE HIGH-REVERSED-9 QUOTATION MARK
201E ; N # Ps DOUBLE LOW-9 QUOTATION MARK
201F ; N # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
2023 ; N # Po TRIANGULAR BULLET
2028 ; N # Zl LINE SEPARATOR
2029 ; N # Zp PARAGRAPH SEPARATOR
202A..202E ; N # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
202F ; N # Zs NARROW NO-BREAK SPACE
2031 ; N # Po PER TEN THOUSAND SIGN
2034 ; N # Po TRIPLE PRIME
2036..2038 ; N # Po [3] REVERSED DOUBLE PRIME..CARET
2039 ; N # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
203A ; N # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
203C..203D ; N # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
203F..2040 ; N # Pc [2] UNDERTIE..CHARACTER TIE
2041..2043 ; N # Po [3] CARET INSERTION POINT..HYPHEN BULLET
2044 ; N # Sm FRACTION SLASH
2045 ; N # Ps LEFT SQUARE BRACKET WITH QUILL
2046 ; N # Pe RIGHT SQUARE BRACKET WITH QUILL
2047..2051 ; N # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
2052 ; N # Sm COMMERCIAL MINUS SIGN
2053 ; N # Po SWUNG DASH
2054 ; N # Pc INVERTED UNDERTIE
2055..205E ; N # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
205F ; N # Zs MEDIUM MATHEMATICAL SPACE
2060..2064 ; N # Cf [5] WORD JOINER..INVISIBLE PLUS
2066..206F ; N # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
2070 ; N # No SUPERSCRIPT ZERO
2071 ; N # Lm SUPERSCRIPT LATIN SMALL LETTER I
2075..2079 ; N # No [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE
207A..207C ; N # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
207D ; N # Ps SUPERSCRIPT LEFT PARENTHESIS
207E ; N # Pe SUPERSCRIPT RIGHT PARENTHESIS
2080 ; N # No SUBSCRIPT ZERO
2085..2089 ; N # No [5] SUBSCRIPT FIVE..SUBSCRIPT NINE
208A..208C ; N # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
208D ; N # Ps SUBSCRIPT LEFT PARENTHESIS
208E ; N # Pe SUBSCRIPT RIGHT PARENTHESIS
2090..209C ; N # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
20A0..20A8 ; N # Sc [9] EURO-CURRENCY SIGN..RUPEE SIGN
20AA..20AB ; N # Sc [2] NEW SHEQEL SIGN..DONG SIGN
20AD..20C1 ; N # Sc [21] KIP SIGN..SAUDI RIYAL SIGN
20D0..20DC ; N # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20DD..20E0 ; N # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
20E1 ; N # Mn COMBINING LEFT RIGHT ARROW ABOVE
20E2..20E4 ; N # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
20E5..20F0 ; N # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
2100..2101 ; N # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
2102 ; N # L& DOUBLE-STRUCK CAPITAL C
2104 ; N # So CENTRE LINE SYMBOL
2106 ; N # So CADA UNA
2107 ; N # L& EULER CONSTANT
2108 ; N # So SCRUPLE
210A..2112 ; N # L& [9] SCRIPT SMALL G..SCRIPT CAPITAL L
2114 ; N # So L B BAR SYMBOL
2115 ; N # L& DOUBLE-STRUCK CAPITAL N
2117 ; N # So SOUND RECORDING COPYRIGHT
2118 ; N # Sm SCRIPT CAPITAL P
2119..211D ; N # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
211E..2120 ; N # So [3] PRESCRIPTION TAKE..SERVICE MARK
2123 ; N # So VERSICLE
2124 ; N # L& DOUBLE-STRUCK CAPITAL Z
2125 ; N # So OUNCE SIGN
2127 ; N # So INVERTED OHM SIGN
2128 ; N # L& BLACK-LETTER CAPITAL Z
2129 ; N # So TURNED GREEK SMALL LETTER IOTA
212A ; N # L& KELVIN SIGN
212C..212D ; N # L& [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
212E ; N # So ESTIMATED SYMBOL
212F..2134 ; N # L& [6] SCRIPT SMALL E..SCRIPT SMALL O
2135..2138 ; N # Lo [4] ALEF SYMBOL..DALET SYMBOL
2139 ; N # L& INFORMATION SOURCE
213A..213B ; N # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN
213C..213F ; N # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
2140..2144 ; N # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
2145..2149 ; N # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
214A ; N # So PROPERTY LINE
214B ; N # Sm TURNED AMPERSAND
214C..214D ; N # So [2] PER SIGN..AKTIESELSKAB
214E ; N # L& TURNED SMALL F
214F ; N # So SYMBOL FOR SAMARITAN SOURCE
2150..2152 ; N # No [3] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE TENTH
2155..215A ; N # No [6] VULGAR FRACTION ONE FIFTH..VULGAR FRACTION FIVE SIXTHS
215F ; N # No FRACTION NUMERATOR ONE
216C..216F ; N # Nl [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND
217A..2182 ; N # Nl [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND
2183..2184 ; N # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
2185..2188 ; N # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
218A..218B ; N # So [2] TURNED DIGIT TWO..TURNED DIGIT THREE
219A..219B ; N # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
219C..219F ; N # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
21A0 ; N # Sm RIGHTWARDS TWO HEADED ARROW
21A1..21A2 ; N # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
21A3 ; N # Sm RIGHTWARDS ARROW WITH TAIL
21A4..21A5 ; N # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
21A6 ; N # Sm RIGHTWARDS ARROW FROM BAR
21A7..21AD ; N # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
21AE ; N # Sm LEFT RIGHT ARROW WITH STROKE
21AF..21B7 ; N # So [9] DOWNWARDS ZIGZAG ARROW..CLOCKWISE TOP SEMICIRCLE ARROW
21BA..21CD ; N # So [20] ANTICLOCKWISE OPEN CIRCLE ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
21CE..21CF ; N # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
21D0..21D1 ; N # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
21D3 ; N # So DOWNWARDS DOUBLE ARROW
21D5..21E6 ; N # So [18] UP DOWN DOUBLE ARROW..LEFTWARDS WHITE ARROW
21E8..21F3 ; N # So [12] RIGHTWARDS WHITE ARROW..UP DOWN WHITE ARROW
21F4..21FF ; N # Sm [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
2201 ; N # Sm COMPLEMENT
2204..2206 ; N # Sm [3] THERE DOES NOT EXIST..INCREMENT
2209..220A ; N # Sm [2] NOT AN ELEMENT OF..SMALL ELEMENT OF
220C..220E ; N # Sm [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF
2210 ; N # Sm N-ARY COPRODUCT
2212..2214 ; N # Sm [3] MINUS SIGN..DOT PLUS
2216..2219 ; N # Sm [4] SET MINUS..BULLET OPERATOR
221B..221C ; N # Sm [2] CUBE ROOT..FOURTH ROOT
2221..2222 ; N # Sm [2] MEASURED ANGLE..SPHERICAL ANGLE
2224 ; N # Sm DOES NOT DIVIDE
2226 ; N # Sm NOT PARALLEL TO
222D ; N # Sm TRIPLE INTEGRAL
222F..2233 ; N # Sm [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL
2238..223B ; N # Sm [4] DOT MINUS..HOMOTHETIC
223E..2247 ; N # Sm [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
2249..224B ; N # Sm [3] NOT ALMOST EQUAL TO..TRIPLE TILDE
224D..2251 ; N # Sm [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO
2253..225F ; N # Sm [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO
2262..2263 ; N # Sm [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO
2268..2269 ; N # Sm [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO
226C..226D ; N # Sm [2] BETWEEN..NOT EQUIVALENT TO
2270..2281 ; N # Sm [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED
2284..2285 ; N # Sm [2] NOT A SUBSET OF..NOT A SUPERSET OF
2288..2294 ; N # Sm [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP
2296..2298 ; N # Sm [3] CIRCLED MINUS..CIRCLED DIVISION SLASH
229A..22A4 ; N # Sm [11] CIRCLED RING OPERATOR..DOWN TACK
22A6..22BE ; N # Sm [25] ASSERTION..RIGHT ANGLE WITH ARC
22C0..22FF ; N # Sm [64] N-ARY LOGICAL AND..Z NOTATION BAG MEMBERSHIP
2300..2307 ; N # So [8] DIAMETER SIGN..WAVY LINE
2308 ; N # Ps LEFT CEILING
2309 ; N # Pe RIGHT CEILING
230A ; N # Ps LEFT FLOOR
230B ; N # Pe RIGHT FLOOR
230C..2311 ; N # So [6] BOTTOM RIGHT CROP..SQUARE LOZENGE
2313..2319 ; N # So [7] SEGMENT..TURNED NOT SIGN
231C..231F ; N # So [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER
2320..2321 ; N # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
2322..2328 ; N # So [7] FROWN..KEYBOARD
232B..237B ; N # So [81] ERASE TO THE LEFT..NOT CHECK MARK
237C ; N # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
237D..239A ; N # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
239B..23B3 ; N # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
23B4..23DB ; N # So [40] TOP SQUARE BRACKET..FUSE
23DC..23E1 ; N # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
23E2..23E8 ; N # So [7] WHITE TRAPEZIUM..DECIMAL EXPONENT SYMBOL
23ED..23EF ; N # So [3] BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
23F1..23F2 ; N # So [2] STOPWATCH..TIMER CLOCK
23F4..2429 ; N # So [54] BLACK MEDIUM LEFT-POINTING TRIANGLE..SYMBOL FOR DELETE MEDIUM SHADE FORM
2440..244A ; N # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
24EA ; N # No CIRCLED DIGIT ZERO
254C..254F ; N # So [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
2574..257F ; N # So [12] BOX DRAWINGS LIGHT LEFT..BOX DRAWINGS HEAVY UP AND LIGHT DOWN
2590..2591 ; N # So [2] RIGHT HALF BLOCK..LIGHT SHADE
2596..259F ; N # So [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
25A2 ; N # So WHITE SQUARE WITH ROUNDED CORNERS
25AA..25B1 ; N # So [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM
25B4..25B5 ; N # So [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE
25B8..25BB ; N # So [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER
25BE..25BF ; N # So [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE
25C2..25C5 ; N # So [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER
25C9..25CA ; N # So [2] FISHEYE..LOZENGE
25CC..25CD ; N # So [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL
25D2..25E1 ; N # So [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE
25E6..25EE ; N # So [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
25F0..25F7 ; N # So [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
25F8..25FC ; N # Sm [5] UPPER LEFT TRIANGLE..BLACK MEDIUM SQUARE
25FF ; N # Sm LOWER RIGHT TRIANGLE
2600..2604 ; N # So [5] BLACK SUN WITH RAYS..COMET
2607..2608 ; N # So [2] LIGHTNING..THUNDERSTORM
260A..260D ; N # So [4] ASCENDING NODE..OPPOSITION
2610..2613 ; N # So [4] BALLOT BOX..SALTIRE
2616..261B ; N # So [6] WHITE SHOGI PIECE..BLACK RIGHT POINTING INDEX
261D ; N # So WHITE UP POINTING INDEX
261F..262F ; N # So [17] WHITE DOWN POINTING INDEX..YIN YANG
2638..263F ; N # So [8] WHEEL OF DHARMA..MERCURY
2641 ; N # So EARTH
2643..2647 ; N # So [5] JUPITER..PLUTO
2654..265F ; N # So [12] WHITE CHESS KING..BLACK CHESS PAWN
2662 ; N # So WHITE DIAMOND SUIT
2666 ; N # So BLACK DIAMOND SUIT
266B ; N # So BEAMED EIGHTH NOTES
266E ; N # So MUSIC NATURAL SIGN
2670..267E ; N # So [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN
2680..2689 ; N # So [10] DIE FACE-1..BLACK CIRCLE WITH TWO WHITE DOTS
2690..2692 ; N # So [3] WHITE FLAG..HAMMER AND PICK
2694..269D ; N # So [10] CROSSED SWORDS..OUTLINED WHITE STAR
26A0 ; N # So WARNING SIGN
26A2..26A9 ; N # So [8] DOUBLED FEMALE SIGN..HORIZONTAL MALE WITH STROKE SIGN
26AC..26BC ; N # So [17] MEDIUM SMALL WHITE CIRCLE..SESQUIQUADRATE
26C0..26C3 ; N # So [4] WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING
26E2 ; N # So ASTRONOMICAL SYMBOL FOR URANUS
26E4..26E7 ; N # So [4] PENTAGRAM..INVERTED PENTAGRAM
2700..2704 ; N # So [5] BLACK SAFETY SCISSORS..WHITE SCISSORS
2706..2709 ; N # So [4] TELEPHONE LOCATION SIGN..ENVELOPE
270C..2727 ; N # So [28] VICTORY HAND..WHITE FOUR POINTED STAR
2729..273C ; N # So [20] STRESS OUTLINED WHITE STAR..OPEN CENTRE TEARDROP-SPOKED ASTERISK
273E..274B ; N # So [14] SIX PETALLED BLACK AND WHITE FLORETTE..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
274D ; N # So SHADOWED WHITE CIRCLE
274F..2752 ; N # So [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
2756 ; N # So BLACK DIAMOND MINUS WHITE X
2758..2767 ; N # So [16] LIGHT VERTICAL BAR..ROTATED FLORAL HEART BULLET
2768 ; N # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
2769 ; N # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
276A ; N # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
276B ; N # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
276C ; N # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
276D ; N # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
276E ; N # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
276F ; N # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
2770 ; N # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
2771 ; N # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
2772 ; N # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
2773 ; N # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
2774 ; N # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
2775 ; N # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
2780..2793 ; N # No [20] DINGBAT CIRCLED SANS-SERIF DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
2794 ; N # So HEAVY WIDE-HEADED RIGHTWARDS ARROW
2798..27AF ; N # So [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
27B1..27BE ; N # So [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
27C0..27C4 ; N # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
27C5 ; N # Ps LEFT S-SHAPED BAG DELIMITER
27C6 ; N # Pe RIGHT S-SHAPED BAG DELIMITER
27C7..27E5 ; N # Sm [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
27EE ; N # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS
27EF ; N # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS
27F0..27FF ; N # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
2800..28FF ; N # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
2900..2982 ; N # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON
2983 ; N # Ps LEFT WHITE CURLY BRACKET
2984 ; N # Pe RIGHT WHITE CURLY BRACKET
2987 ; N # Ps Z NOTATION LEFT IMAGE BRACKET
2988 ; N # Pe Z NOTATION RIGHT IMAGE BRACKET
2989 ; N # Ps Z NOTATION LEFT BINDING BRACKET
298A ; N # Pe Z NOTATION RIGHT BINDING BRACKET
298B ; N # Ps LEFT SQUARE BRACKET WITH UNDERBAR
298C ; N # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
298D ; N # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
298E ; N # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
298F ; N # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
2990 ; N # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
2991 ; N # Ps LEFT ANGLE BRACKET WITH DOT
2992 ; N # Pe RIGHT ANGLE BRACKET WITH DOT
2993 ; N # Ps LEFT ARC LESS-THAN BRACKET
2994 ; N # Pe RIGHT ARC GREATER-THAN BRACKET
2995 ; N # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
2996 ; N # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
2997 ; N # Ps LEFT BLACK TORTOISE SHELL BRACKET
2998 ; N # Pe RIGHT BLACK TORTOISE SHELL BRACKET
2999..29D7 ; N # Sm [63] DOTTED FENCE..BLACK HOURGLASS
29D8 ; N # Ps LEFT WIGGLY FENCE
29D9 ; N # Pe RIGHT WIGGLY FENCE
29DA ; N # Ps LEFT DOUBLE WIGGLY FENCE
29DB ; N # Pe RIGHT DOUBLE WIGGLY FENCE
29DC..29FB ; N # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS
29FC ; N # Ps LEFT-POINTING CURVED ANGLE BRACKET
29FD ; N # Pe RIGHT-POINTING CURVED ANGLE BRACKET
29FE..2AFF ; N # Sm [258] TINY..N-ARY WHITE VERTICAL BAR
2B00..2B1A ; N # So [27] NORTH EAST WHITE ARROW..DOTTED SQUARE
2B1D..2B2F ; N # So [19] BLACK VERY SMALL SQUARE..WHITE VERTICAL ELLIPSE
2B30..2B44 ; N # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
2B45..2B46 ; N # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
2B47..2B4C ; N # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
2B4D..2B4F ; N # So [3] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW
2B51..2B54 ; N # So [4] BLACK SMALL STAR..WHITE RIGHT-POINTING PENTAGON
2B5A..2B73 ; N # So [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
2B76..2BFF ; N # So [138] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..HELLSCHREIBER PAUSE SYMBOL
2C00..2C7B ; N # L& [124] GLAGOLITIC CAPITAL LETTER AZU..LATIN LETTER SMALL CAPITAL TURNED E
2C7C..2C7D ; N # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
2C7E..2CE4 ; N # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI
2CE5..2CEA ; N # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
2CEB..2CEE ; N # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
2CEF..2CF1 ; N # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
2CF2..2CF3 ; N # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
2CF9..2CFC ; N # Po [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
2CFD ; N # No COPTIC FRACTION ONE HALF
2CFE..2CFF ; N # Po [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
2D00..2D25 ; N # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
2D27 ; N # L& GEORGIAN SMALL LETTER YN
2D2D ; N # L& GEORGIAN SMALL LETTER AEN
2D30..2D67 ; N # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
2D6F ; N # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
2D70 ; N # Po TIFINAGH SEPARATOR MARK
2D7F ; N # Mn TIFINAGH CONSONANT JOINER
2D80..2D96 ; N # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
2DA0..2DA6 ; N # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
2DA8..2DAE ; N # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
2DB0..2DB6 ; N # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
2DB8..2DBE ; N # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
2DC0..2DC6 ; N # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
2DC8..2DCE ; N # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
2DD0..2DD6 ; N # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
2DD8..2DDE ; N # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
2DE0..2DFF ; N # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
2E00..2E01 ; N # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
2E02 ; N # Pi LEFT SUBSTITUTION BRACKET
2E03 ; N # Pf RIGHT SUBSTITUTION BRACKET
2E04 ; N # Pi LEFT DOTTED SUBSTITUTION BRACKET
2E05 ; N # Pf RIGHT DOTTED SUBSTITUTION BRACKET
2E06..2E08 ; N # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
2E09 ; N # Pi LEFT TRANSPOSITION BRACKET
2E0A ; N # Pf RIGHT TRANSPOSITION BRACKET
2E0B ; N # Po RAISED SQUARE
2E0C ; N # Pi LEFT RAISED OMISSION BRACKET
2E0D ; N # Pf RIGHT RAISED OMISSION BRACKET
2E0E..2E16 ; N # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
2E17 ; N # Pd DOUBLE OBLIQUE HYPHEN
2E18..2E19 ; N # Po [2] INVERTED INTERROBANG..PALM BRANCH
2E1A ; N # Pd HYPHEN WITH DIAERESIS
2E1B ; N # Po TILDE WITH RING ABOVE
2E1C ; N # Pi LEFT LOW PARAPHRASE BRACKET
2E1D ; N # Pf RIGHT LOW PARAPHRASE BRACKET
2E1E..2E1F ; N # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
2E20 ; N # Pi LEFT VERTICAL BAR WITH QUILL
2E21 ; N # Pf RIGHT VERTICAL BAR WITH QUILL
2E22 ; N # Ps TOP LEFT HALF BRACKET
2E23 ; N # Pe TOP RIGHT HALF BRACKET
2E24 ; N # Ps BOTTOM LEFT HALF BRACKET
2E25 ; N # Pe BOTTOM RIGHT HALF BRACKET
2E26 ; N # Ps LEFT SIDEWAYS U BRACKET
2E27 ; N # Pe RIGHT SIDEWAYS U BRACKET
2E28 ; N # Ps LEFT DOUBLE PARENTHESIS
2E29 ; N # Pe RIGHT DOUBLE PARENTHESIS
2E2A..2E2E ; N # Po [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
2E2F ; N # Lm VERTICAL TILDE
2E30..2E39 ; N # Po [10] RING POINT..TOP HALF SECTION SIGN
2E3A..2E3B ; N # Pd [2] TWO-EM DASH..THREE-EM DASH
2E3C..2E3F ; N # Po [4] STENOGRAPHIC FULL STOP..CAPITULUM
2E40 ; N # Pd DOUBLE HYPHEN
2E41 ; N # Po REVERSED COMMA
2E42 ; N # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
2E43..2E4F ; N # Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
2E50..2E51 ; N # So [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
2E52..2E54 ; N # Po [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK
2E55 ; N # Ps LEFT SQUARE BRACKET WITH STROKE
2E56 ; N # Pe RIGHT SQUARE BRACKET WITH STROKE
2E57 ; N # Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE
2E58 ; N # Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE
2E59 ; N # Ps TOP HALF LEFT PARENTHESIS
2E5A ; N # Pe TOP HALF RIGHT PARENTHESIS
2E5B ; N # Ps BOTTOM HALF LEFT PARENTHESIS
2E5C ; N # Pe BOTTOM HALF RIGHT PARENTHESIS
2E5D ; N # Pd OBLIQUE HYPHEN
303F ; N # So IDEOGRAPHIC HALF FILL SPACE
A4D0..A4F7 ; N # Lo [40] LISU LETTER BA..LISU LETTER OE
A4F8..A4FD ; N # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
A4FE..A4FF ; N # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
A500..A60B ; N # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG
A60C ; N # Lm VAI SYLLABLE LENGTHENER
A60D..A60F ; N # Po [3] VAI COMMA..VAI QUESTION MARK
A610..A61F ; N # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
A620..A629 ; N # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
A62A..A62B ; N # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
A640..A66D ; N # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
A66E ; N # Lo CYRILLIC LETTER MULTIOCULAR O
A66F ; N # Mn COMBINING CYRILLIC VZMET
A670..A672 ; N # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
A673 ; N # Po SLAVONIC ASTERISK
A674..A67D ; N # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
A67E ; N # Po CYRILLIC KAVYKA
A67F ; N # Lm CYRILLIC PAYEROK
A680..A69B ; N # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
A69C..A69D ; N # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A69E..A69F ; N # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
A6A0..A6E5 ; N # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
A6E6..A6EF ; N # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
A6F0..A6F1 ; N # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
A6F2..A6F7 ; N # Po [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
A700..A716 ; N # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
A717..A71F ; N # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
A720..A721 ; N # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
A722..A76F ; N # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
A770 ; N # Lm MODIFIER LETTER US
A771..A787 ; N # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
A788 ; N # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A789..A78A ; N # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
A78B..A78E ; N # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A78F ; N # Lo LATIN LETTER SINOLOGICAL DOT
A790..A7DC ; N # L& [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE
A7F1..A7F4 ; N # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q
A7F5..A7F6 ; N # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
A7F7 ; N # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; N # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; N # L& LATIN LETTER SMALL CAPITAL TURNED M
A7FB..A801 ; N # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
A802 ; N # Mn SYLOTI NAGRI SIGN DVISVARA
A803..A805 ; N # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
A806 ; N # Mn SYLOTI NAGRI SIGN HASANTA
A807..A80A ; N # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
A80B ; N # Mn SYLOTI NAGRI SIGN ANUSVARA
A80C..A822 ; N # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
A823..A824 ; N # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
A825..A826 ; N # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
A827 ; N # Mc SYLOTI NAGRI VOWEL SIGN OO
A828..A82B ; N # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
A82C ; N # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA
A830..A835 ; N # No [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
A836..A837 ; N # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
A838 ; N # Sc NORTH INDIC RUPEE MARK
A839 ; N # So NORTH INDIC QUANTITY MARK
A840..A873 ; N # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
A874..A877 ; N # Po [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
A880..A881 ; N # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
A882..A8B3 ; N # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
A8B4..A8C3 ; N # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
A8C4..A8C5 ; N # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
A8CE..A8CF ; N # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
A8D0..A8D9 ; N # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
A8E0..A8F1 ; N # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
A8F2..A8F7 ; N # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
A8F8..A8FA ; N # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
A8FB ; N # Lo DEVANAGARI HEADSTROKE
A8FC ; N # Po DEVANAGARI SIGN SIDDHAM
A8FD..A8FE ; N # Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
A8FF ; N # Mn DEVANAGARI VOWEL SIGN AY
A900..A909 ; N # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
A90A..A925 ; N # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
A926..A92D ; N # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
A92E..A92F ; N # Po [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
A930..A946 ; N # Lo [23] REJANG LETTER KA..REJANG LETTER A
A947..A951 ; N # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
A952..A953 ; N # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
A95F ; N # Po REJANG SECTION MARK
A980..A982 ; N # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
A983 ; N # Mc JAVANESE SIGN WIGNYAN
A984..A9B2 ; N # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA
A9B3 ; N # Mn JAVANESE SIGN CECAK TELU
A9B4..A9B5 ; N # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
A9B6..A9B9 ; N # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BA..A9BB ; N # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
A9BC..A9BD ; N # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
A9BE..A9C0 ; N # Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
A9C1..A9CD ; N # Po [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
A9CF ; N # Lm JAVANESE PANGRANGKEP
A9D0..A9D9 ; N # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
A9DE..A9DF ; N # Po [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
A9E0..A9E4 ; N # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
A9E5 ; N # Mn MYANMAR SIGN SHAN SAW
A9E6 ; N # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION
A9E7..A9EF ; N # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
A9F0..A9F9 ; N # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
A9FA..A9FE ; N # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
AA00..AA28 ; N # Lo [41] CHAM LETTER A..CHAM LETTER HA
AA29..AA2E ; N # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
AA2F..AA30 ; N # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
AA31..AA32 ; N # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
AA33..AA34 ; N # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
AA35..AA36 ; N # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
AA40..AA42 ; N # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
AA43 ; N # Mn CHAM CONSONANT SIGN FINAL NG
AA44..AA4B ; N # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
AA4C ; N # Mn CHAM CONSONANT SIGN FINAL M
AA4D ; N # Mc CHAM CONSONANT SIGN FINAL H
AA50..AA59 ; N # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
AA5C..AA5F ; N # Po [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
AA60..AA6F ; N # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
AA70 ; N # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
AA71..AA76 ; N # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
AA77..AA79 ; N # So [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
AA7A ; N # Lo MYANMAR LETTER AITON RA
AA7B ; N # Mc MYANMAR SIGN PAO KAREN TONE
AA7C ; N # Mn MYANMAR SIGN TAI LAING TONE-2
AA7D ; N # Mc MYANMAR SIGN TAI LAING TONE-5
AA7E..AAAF ; N # Lo [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
AAB0 ; N # Mn TAI VIET MAI KANG
AAB1 ; N # Lo TAI VIET VOWEL AA
AAB2..AAB4 ; N # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
AAB5..AAB6 ; N # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O
AAB7..AAB8 ; N # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
AAB9..AABD ; N # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
AABE..AABF ; N # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
AAC0 ; N # Lo TAI VIET TONE MAI NUENG
AAC1 ; N # Mn TAI VIET TONE MAI THO
AAC2 ; N # Lo TAI VIET TONE MAI SONG
AADB..AADC ; N # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
AADD ; N # Lm TAI VIET SYMBOL SAM
AADE..AADF ; N # Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
AAE0..AAEA ; N # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
AAEB ; N # Mc MEETEI MAYEK VOWEL SIGN II
AAEC..AAED ; N # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
AAEE..AAEF ; N # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
AAF0..AAF1 ; N # Po [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
AAF2 ; N # Lo MEETEI MAYEK ANJI
AAF3..AAF4 ; N # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
AAF5 ; N # Mc MEETEI MAYEK VOWEL SIGN VISARGA
AAF6 ; N # Mn MEETEI MAYEK VIRAMA
AB01..AB06 ; N # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
AB09..AB0E ; N # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
AB11..AB16 ; N # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
AB20..AB26 ; N # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
AB28..AB2E ; N # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
AB30..AB5A ; N # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5B ; N # Sk MODIFIER BREVE WITH INVERTED BREVE
AB5C..AB5F ; N # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
AB60..AB68 ; N # L& [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
AB69 ; N # Lm MODIFIER LETTER SMALL TURNED W
AB6A..AB6B ; N # Sk [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK
AB70..ABBF ; N # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
ABC0..ABE2 ; N # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
ABE3..ABE4 ; N # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
ABE5 ; N # Mn MEETEI MAYEK VOWEL SIGN ANAP
ABE6..ABE7 ; N # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
ABE8 ; N # Mn MEETEI MAYEK VOWEL SIGN UNAP
ABE9..ABEA ; N # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
ABEB ; N # Po MEETEI MAYEK CHEIKHEI
ABEC ; N # Mc MEETEI MAYEK LUM IYEK
ABED ; N # Mn MEETEI MAYEK APUN IYEK
ABF0..ABF9 ; N # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
D7B0..D7C6 ; N # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
D7CB..D7FB ; N # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
FB00..FB06 ; N # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FB13..FB17 ; N # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
FB1D ; N # Lo HEBREW LETTER YOD WITH HIRIQ
FB1E ; N # Mn HEBREW POINT JUDEO-SPANISH VARIKA
FB1F..FB28 ; N # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
FB29 ; N # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
FB2A..FB36 ; N # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
FB38..FB3C ; N # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
FB3E ; N # Lo HEBREW LETTER MEM WITH DAGESH
FB40..FB41 ; N # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
FB43..FB44 ; N # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
FB46..FBB1 ; N # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
FBB2..FBC2 ; N # Sk [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
FBC3..FBD2 ; N # So [16] ARABIC LIGATURE JALLA WA-ALAA..ARABIC LIGATURE ALAYHI AR-RAHMAH
FBD3..FD3D ; N # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
FD3E ; N # Pe ORNATE LEFT PARENTHESIS
FD3F ; N # Ps ORNATE RIGHT PARENTHESIS
FD40..FD4F ; N # So [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
FD50..FD8F ; N # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
FD90..FD91 ; N # So [2] ARABIC LIGATURE RAHMATU ALLAAHI ALAYH..ARABIC LIGATURE RAHMATU ALLAAHI ALAYHAA
FD92..FDC7 ; N # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
FDC8..FDCF ; N # So [8] ARABIC LIGATURE RAHIMAHU ALLAAH TAAALAA..ARABIC LIGATURE SALAAMUHU ALAYNAA
FDF0..FDFB ; N # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
FDFC ; N # Sc RIAL SIGN
FDFD..FDFF ; N # So [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
FE20..FE2F ; N # Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
FE70..FE74 ; N # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
FE76..FEFC ; N # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
FEFF ; N # Cf ZERO WIDTH NO-BREAK SPACE
FFF9..FFFB ; N # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
FFFC ; N # So OBJECT REPLACEMENT CHARACTER
10000..1000B ; N # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
1000D..10026 ; N # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
10028..1003A ; N # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
1003C..1003D ; N # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
1003F..1004D ; N # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
10050..1005D ; N # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
10080..100FA ; N # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
10100..10102 ; N # Po [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
10107..10133 ; N # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
10137..1013F ; N # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
10140..10174 ; N # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
10175..10178 ; N # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
10179..10189 ; N # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
1018A..1018B ; N # No [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
1018C..1018E ; N # So [3] GREEK SINUSOID SIGN..NOMISMA SIGN
10190..1019C ; N # So [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
101A0 ; N # So GREEK SYMBOL TAU RHO
101D0..101FC ; N # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
101FD ; N # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
10280..1029C ; N # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
102A0..102D0 ; N # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
102E0 ; N # Mn COPTIC EPACT THOUSANDS MARK
102E1..102FB ; N # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
10300..1031F ; N # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
10320..10323 ; N # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
1032D..10340 ; N # Lo [20] OLD ITALIC LETTER YE..GOTHIC LETTER PAIRTHRA
10341 ; N # Nl GOTHIC LETTER NINETY
10342..10349 ; N # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
1034A ; N # Nl GOTHIC LETTER NINE HUNDRED
10350..10375 ; N # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
10376..1037A ; N # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
10380..1039D ; N # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
1039F ; N # Po UGARITIC WORD DIVIDER
103A0..103C3 ; N # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
103C8..103CF ; N # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
103D0 ; N # Po OLD PERSIAN WORD DIVIDER
103D1..103D5 ; N # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
10400..1044F ; N # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
10450..1049D ; N # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
104A0..104A9 ; N # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
104B0..104D3 ; N # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
104D8..104FB ; N # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
10500..10527 ; N # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
10530..10563 ; N # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
1056F ; N # Po CAUCASIAN ALBANIAN CITATION MARK
10570..1057A ; N # L& [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
1057C..1058A ; N # L& [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
1058C..10592 ; N # L& [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
10594..10595 ; N # L& [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
10597..105A1 ; N # L& [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
105A3..105B1 ; N # L& [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
105B3..105B9 ; N # L& [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
105BB..105BC ; N # L& [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
105C0..105F3 ; N # Lo [52] TODHRI LETTER A..TODHRI LETTER OO
10600..10736 ; N # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
10740..10755 ; N # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
10760..10767 ; N # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
10780..10785 ; N # Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
10787..107B0 ; N # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
107B2..107BA ; N # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
10800..10805 ; N # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
10808 ; N # Lo CYPRIOT SYLLABLE JO
1080A..10835 ; N # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
10837..10838 ; N # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
1083C ; N # Lo CYPRIOT SYLLABLE ZA
1083F..10855 ; N # Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
10857 ; N # Po IMPERIAL ARAMAIC SECTION SIGN
10858..1085F ; N # No [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
10860..10876 ; N # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
10877..10878 ; N # So [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
10879..1087F ; N # No [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
10880..1089E ; N # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
108A7..108AF ; N # No [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
108E0..108F2 ; N # Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
108F4..108F5 ; N # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
108FB..108FF ; N # No [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
10900..10915 ; N # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
10916..1091B ; N # No [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
1091F ; N # Po PHOENICIAN WORD SEPARATOR
10920..10939 ; N # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
1093F ; N # Po LYDIAN TRIANGULAR MARK
10940..10959 ; N # Lo [26] SIDETIC LETTER N01..SIDETIC LETTER N26
10980..109B7 ; N # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
109BC..109BD ; N # No [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
109BE..109BF ; N # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
109C0..109CF ; N # No [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
109D2..109FF ; N # No [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
10A00 ; N # Lo KHAROSHTHI LETTER A
10A01..10A03 ; N # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
10A05..10A06 ; N # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
10A0C..10A0F ; N # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
10A10..10A13 ; N # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
10A15..10A17 ; N # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
10A19..10A35 ; N # Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
10A38..10A3A ; N # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
10A3F ; N # Mn KHAROSHTHI VIRAMA
10A40..10A48 ; N # No [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
10A50..10A58 ; N # Po [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
10A60..10A7C ; N # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
10A7D..10A7E ; N # No [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
10A7F ; N # Po OLD SOUTH ARABIAN NUMERIC INDICATOR
10A80..10A9C ; N # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
10A9D..10A9F ; N # No [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
10AC0..10AC7 ; N # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
10AC8 ; N # So MANICHAEAN SIGN UD
10AC9..10AE4 ; N # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
10AE5..10AE6 ; N # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
10AEB..10AEF ; N # No [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
10AF0..10AF6 ; N # Po [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
10B00..10B35 ; N # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE
10B39..10B3F ; N # Po [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
10B40..10B55 ; N # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
10B58..10B5F ; N # No [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
10B60..10B72 ; N # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
10B78..10B7F ; N # No [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
10B80..10B91 ; N # Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
10B99..10B9C ; N # Po [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
10BA9..10BAF ; N # No [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
10C00..10C48 ; N # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
10C80..10CB2 ; N # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
10CC0..10CF2 ; N # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
10CFA..10CFF ; N # No [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
10D00..10D23 ; N # Lo [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
10D24..10D27 ; N # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
10D30..10D39 ; N # Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
10D40..10D49 ; N # Nd [10] GARAY DIGIT ZERO..GARAY DIGIT NINE
10D4A..10D4D ; N # Lo [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
10D4E ; N # Lm GARAY VOWEL LENGTH MARK
10D4F ; N # Lo GARAY SUKUN
10D50..10D65 ; N # L& [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
10D69..10D6D ; N # Mn [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
10D6E ; N # Pd GARAY HYPHEN
10D6F ; N # Lm GARAY REDUPLICATION MARK
10D70..10D85 ; N # L& [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
10D8E..10D8F ; N # Sm [2] GARAY PLUS SIGN..GARAY MINUS SIGN
10E60..10E7E ; N # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
10E80..10EA9 ; N # Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
10EAB..10EAC ; N # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
10EAD ; N # Pd YEZIDI HYPHENATION MARK
10EB0..10EB1 ; N # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
10EC2..10EC4 ; N # Lo [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
10EC5 ; N # Lm ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
10EC6..10EC7 ; N # Lo [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW
10ED0 ; N # Po ARABIC BIBLICAL END OF VERSE
10ED1..10ED8 ; N # So [8] ARABIC LIGATURE ALAYHAA AS-SALAATU WAS-SALAAM..ARABIC LIGATURE NAWWARA ALLAAHU MARQADAH
10EFA..10EFF ; N # Mn [6] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC SMALL LOW WORD MADDA
10F00..10F1C ; N # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
10F1D..10F26 ; N # No [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
10F27 ; N # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
10F30..10F45 ; N # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
10F46..10F50 ; N # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
10F51..10F54 ; N # No [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
10F55..10F59 ; N # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
10F70..10F81 ; N # Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
10F82..10F85 ; N # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
10F86..10F89 ; N # Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
10FB0..10FC4 ; N # Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
10FC5..10FCB ; N # No [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
10FE0..10FF6 ; N # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11000 ; N # Mc BRAHMI SIGN CANDRABINDU
11001 ; N # Mn BRAHMI SIGN ANUSVARA
11002 ; N # Mc BRAHMI SIGN VISARGA
11003..11037 ; N # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
11038..11046 ; N # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
11047..1104D ; N # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
11052..11065 ; N # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
11066..1106F ; N # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
11070 ; N # Mn BRAHMI SIGN OLD TAMIL VIRAMA
11071..11072 ; N # Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
11073..11074 ; N # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
11075 ; N # Lo BRAHMI LETTER OLD TAMIL LLA
1107F..11081 ; N # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
11082 ; N # Mc KAITHI SIGN VISARGA
11083..110AF ; N # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
110B0..110B2 ; N # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
110B3..110B6 ; N # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
110B7..110B8 ; N # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
110B9..110BA ; N # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
110BB..110BC ; N # Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
110BD ; N # Cf KAITHI NUMBER SIGN
110BE..110C1 ; N # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
110C2 ; N # Mn KAITHI VOWEL SIGN VOCALIC R
110CD ; N # Cf KAITHI NUMBER SIGN ABOVE
110D0..110E8 ; N # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
110F0..110F9 ; N # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
11100..11102 ; N # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
11103..11126 ; N # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
11127..1112B ; N # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
1112C ; N # Mc CHAKMA VOWEL SIGN E
1112D..11134 ; N # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
11136..1113F ; N # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
11140..11143 ; N # Po [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
11144 ; N # Lo CHAKMA LETTER LHAA
11145..11146 ; N # Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
11147 ; N # Lo CHAKMA LETTER VAA
11150..11172 ; N # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
11173 ; N # Mn MAHAJANI SIGN NUKTA
11174..11175 ; N # Po [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
11176 ; N # Lo MAHAJANI LIGATURE SHRI
11180..11181 ; N # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
11182 ; N # Mc SHARADA SIGN VISARGA
11183..111B2 ; N # Lo [48] SHARADA LETTER A..SHARADA LETTER HA
111B3..111B5 ; N # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
111B6..111BE ; N # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
111BF..111C0 ; N # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
111C1..111C4 ; N # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
111C5..111C8 ; N # Po [4] SHARADA DANDA..SHARADA SEPARATOR
111C9..111CC ; N # Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
111CD ; N # Po SHARADA SUTRA MARK
111CE ; N # Mc SHARADA VOWEL SIGN PRISHTHAMATRA E
111CF ; N # Mn SHARADA SIGN INVERTED CANDRABINDU
111D0..111D9 ; N # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
111DA ; N # Lo SHARADA EKAM
111DB ; N # Po SHARADA SIGN SIDDHAM
111DC ; N # Lo SHARADA HEADSTROKE
111DD..111DF ; N # Po [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
111E1..111F4 ; N # No [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
11200..11211 ; N # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
11213..1122B ; N # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
1122C..1122E ; N # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
1122F..11231 ; N # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
11232..11233 ; N # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
11234 ; N # Mn KHOJKI SIGN ANUSVARA
11235 ; N # Mc KHOJKI SIGN VIRAMA
11236..11237 ; N # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
11238..1123D ; N # Po [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
1123E ; N # Mn KHOJKI SIGN SUKUN
1123F..11240 ; N # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
11241 ; N # Mn KHOJKI VOWEL SIGN VOCALIC R
11280..11286 ; N # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
11288 ; N # Lo MULTANI LETTER GHA
1128A..1128D ; N # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
1128F..1129D ; N # Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA
1129F..112A8 ; N # Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA
112A9 ; N # Po MULTANI SECTION MARK
112B0..112DE ; N # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
112DF ; N # Mn KHUDAWADI SIGN ANUSVARA
112E0..112E2 ; N # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
112E3..112EA ; N # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
112F0..112F9 ; N # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
11300..11301 ; N # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
11302..11303 ; N # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
11305..1130C ; N # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
1130F..11310 ; N # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
11313..11328 ; N # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA
1132A..11330 ; N # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA
11332..11333 ; N # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
11335..11339 ; N # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA
1133B..1133C ; N # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
1133D ; N # Lo GRANTHA SIGN AVAGRAHA
1133E..1133F ; N # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
11340 ; N # Mn GRANTHA VOWEL SIGN II
11341..11344 ; N # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
11347..11348 ; N # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
1134B..1134D ; N # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
11350 ; N # Lo GRANTHA OM
11357 ; N # Mc GRANTHA AU LENGTH MARK
1135D..11361 ; N # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
11362..11363 ; N # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
11366..1136C ; N # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
11370..11374 ; N # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
11380..11389 ; N # Lo [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
1138B ; N # Lo TULU-TIGALARI LETTER EE
1138E ; N # Lo TULU-TIGALARI LETTER AI
11390..113B5 ; N # Lo [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
113B7 ; N # Lo TULU-TIGALARI SIGN AVAGRAHA
113B8..113BA ; N # Mc [3] TULU-TIGALARI VOWEL SIGN AA..TULU-TIGALARI VOWEL SIGN II
113BB..113C0 ; N # Mn [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
113C2 ; N # Mc TULU-TIGALARI VOWEL SIGN EE
113C5 ; N # Mc TULU-TIGALARI VOWEL SIGN AI
113C7..113CA ; N # Mc [4] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI SIGN CANDRA ANUNASIKA
113CC..113CD ; N # Mc [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
113CE ; N # Mn TULU-TIGALARI SIGN VIRAMA
113CF ; N # Mc TULU-TIGALARI SIGN LOOPED VIRAMA
113D0 ; N # Mn TULU-TIGALARI CONJOINER
113D1 ; N # Lo TULU-TIGALARI REPHA
113D2 ; N # Mn TULU-TIGALARI GEMINATION MARK
113D3 ; N # Lo TULU-TIGALARI SIGN PLUTA
113D4..113D5 ; N # Po [2] TULU-TIGALARI DANDA..TULU-TIGALARI DOUBLE DANDA
113D7..113D8 ; N # Po [2] TULU-TIGALARI SIGN OM PUSHPIKA..TULU-TIGALARI SIGN SHRII PUSHPIKA
113E1..113E2 ; N # Mn [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
11400..11434 ; N # Lo [53] NEWA LETTER A..NEWA LETTER HA
11435..11437 ; N # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
11438..1143F ; N # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
11440..11441 ; N # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
11442..11444 ; N # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
11445 ; N # Mc NEWA SIGN VISARGA
11446 ; N # Mn NEWA SIGN NUKTA
11447..1144A ; N # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
1144B..1144F ; N # Po [5] NEWA DANDA..NEWA ABBREVIATION SIGN
11450..11459 ; N # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
1145A..1145B ; N # Po [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK
1145D ; N # Po NEWA INSERTION SIGN
1145E ; N # Mn NEWA SANDHI MARK
1145F..11461 ; N # Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
11480..114AF ; N # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
114B0..114B2 ; N # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
114B3..114B8 ; N # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
114B9 ; N # Mc TIRHUTA VOWEL SIGN E
114BA ; N # Mn TIRHUTA VOWEL SIGN SHORT E
114BB..114BE ; N # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
114BF..114C0 ; N # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
114C1 ; N # Mc TIRHUTA SIGN VISARGA
114C2..114C3 ; N # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
114C4..114C5 ; N # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
114C6 ; N # Po TIRHUTA ABBREVIATION SIGN
114C7 ; N # Lo TIRHUTA OM
114D0..114D9 ; N # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
11580..115AE ; N # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
115AF..115B1 ; N # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
115B2..115B5 ; N # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
115B8..115BB ; N # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
115BC..115BD ; N # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
115BE ; N # Mc SIDDHAM SIGN VISARGA
115BF..115C0 ; N # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
115C1..115D7 ; N # Po [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
115D8..115DB ; N # Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U
115DC..115DD ; N # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
11600..1162F ; N # Lo [48] MODI LETTER A..MODI LETTER LLA
11630..11632 ; N # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
11633..1163A ; N # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
1163B..1163C ; N # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
1163D ; N # Mn MODI SIGN ANUSVARA
1163E ; N # Mc MODI SIGN VISARGA
1163F..11640 ; N # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
11641..11643 ; N # Po [3] MODI DANDA..MODI ABBREVIATION SIGN
11644 ; N # Lo MODI SIGN HUVA
11650..11659 ; N # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
11660..1166C ; N # Po [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
11680..116AA ; N # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
116AB ; N # Mn TAKRI SIGN ANUSVARA
116AC ; N # Mc TAKRI SIGN VISARGA
116AD ; N # Mn TAKRI VOWEL SIGN AA
116AE..116AF ; N # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
116B0..116B5 ; N # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
116B6 ; N # Mc TAKRI SIGN VIRAMA
116B7 ; N # Mn TAKRI SIGN NUKTA
116B8 ; N # Lo TAKRI LETTER ARCHAIC KHA
116B9 ; N # Po TAKRI ABBREVIATION SIGN
116C0..116C9 ; N # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
116D0..116E3 ; N # Nd [20] MYANMAR PAO DIGIT ZERO..MYANMAR EASTERN PWO KAREN DIGIT NINE
11700..1171A ; N # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
1171D ; N # Mn AHOM CONSONANT SIGN MEDIAL LA
1171E ; N # Mc AHOM CONSONANT SIGN MEDIAL RA
1171F ; N # Mn AHOM CONSONANT SIGN MEDIAL LIGATING RA
11720..11721 ; N # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
11722..11725 ; N # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
11726 ; N # Mc AHOM VOWEL SIGN E
11727..1172B ; N # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
11730..11739 ; N # Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
1173A..1173B ; N # No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
1173C..1173E ; N # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
1173F ; N # So AHOM SYMBOL VI
11740..11746 ; N # Lo [7] AHOM LETTER CA..AHOM LETTER LLA
11800..1182B ; N # Lo [44] DOGRA LETTER A..DOGRA LETTER RRA
1182C..1182E ; N # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
1182F..11837 ; N # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
11838 ; N # Mc DOGRA SIGN VISARGA
11839..1183A ; N # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
1183B ; N # Po DOGRA ABBREVIATION SIGN
118A0..118DF ; N # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
118E0..118E9 ; N # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
118EA..118F2 ; N # No [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
118FF..11906 ; N # Lo [8] WARANG CITI OM..DIVES AKURU LETTER E
11909 ; N # Lo DIVES AKURU LETTER O
1190C..11913 ; N # Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
11915..11916 ; N # Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
11918..1192F ; N # Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
11930..11935 ; N # Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E
11937..11938 ; N # Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
1193B..1193C ; N # Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
1193D ; N # Mc DIVES AKURU SIGN HALANTA
1193E ; N # Mn DIVES AKURU VIRAMA
1193F ; N # Lo DIVES AKURU PREFIXED NASAL SIGN
11940 ; N # Mc DIVES AKURU MEDIAL YA
11941 ; N # Lo DIVES AKURU INITIAL RA
11942 ; N # Mc DIVES AKURU MEDIAL RA
11943 ; N # Mn DIVES AKURU SIGN NUKTA
11944..11946 ; N # Po [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK
11950..11959 ; N # Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
119A0..119A7 ; N # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
119AA..119D0 ; N # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
119D1..119D3 ; N # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
119D4..119D7 ; N # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
119DA..119DB ; N # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
119DC..119DF ; N # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
119E0 ; N # Mn NANDINAGARI SIGN VIRAMA
119E1 ; N # Lo NANDINAGARI SIGN AVAGRAHA
119E2 ; N # Po NANDINAGARI SIGN SIDDHAM
119E3 ; N # Lo NANDINAGARI HEADSTROKE
119E4 ; N # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
11A00 ; N # Lo ZANABAZAR SQUARE LETTER A
11A01..11A0A ; N # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A0B..11A32 ; N # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
11A33..11A38 ; N # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
11A39 ; N # Mc ZANABAZAR SQUARE SIGN VISARGA
11A3A ; N # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
11A3B..11A3E ; N # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
11A3F..11A46 ; N # Po [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
11A47 ; N # Mn ZANABAZAR SQUARE SUBJOINER
11A50 ; N # Lo SOYOMBO LETTER A
11A51..11A56 ; N # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
11A57..11A58 ; N # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
11A59..11A5B ; N # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
11A5C..11A89 ; N # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A8A..11A96 ; N # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
11A97 ; N # Mc SOYOMBO SIGN VISARGA
11A98..11A99 ; N # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
11A9A..11A9C ; N # Po [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
11A9D ; N # Lo SOYOMBO MARK PLUTA
11A9E..11AA2 ; N # Po [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
11AB0..11AF8 ; N # Lo [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
11B00..11B09 ; N # Po [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
11B60 ; N # Mn SHARADA VOWEL SIGN OE
11B61 ; N # Mc SHARADA VOWEL SIGN OOE
11B62..11B64 ; N # Mn [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
11B65 ; N # Mc SHARADA VOWEL SIGN SHORT O
11B66 ; N # Mn SHARADA VOWEL SIGN CANDRA E
11B67 ; N # Mc SHARADA VOWEL SIGN CANDRA O
11BC0..11BE0 ; N # Lo [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
11BE1 ; N # Po SUNUWAR SIGN PVO
11BF0..11BF9 ; N # Nd [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE
11C00..11C08 ; N # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
11C0A..11C2E ; N # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
11C2F ; N # Mc BHAIKSUKI VOWEL SIGN AA
11C30..11C36 ; N # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
11C38..11C3D ; N # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
11C3E ; N # Mc BHAIKSUKI SIGN VISARGA
11C3F ; N # Mn BHAIKSUKI SIGN VIRAMA
11C40 ; N # Lo BHAIKSUKI SIGN AVAGRAHA
11C41..11C45 ; N # Po [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
11C50..11C59 ; N # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
11C5A..11C6C ; N # No [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
11C70..11C71 ; N # Po [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD
11C72..11C8F ; N # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A
11C92..11CA7 ; N # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
11CA9 ; N # Mc MARCHEN SUBJOINED LETTER YA
11CAA..11CB0 ; N # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
11CB1 ; N # Mc MARCHEN VOWEL SIGN I
11CB2..11CB3 ; N # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
11CB4 ; N # Mc MARCHEN VOWEL SIGN O
11CB5..11CB6 ; N # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
11D00..11D06 ; N # Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
11D08..11D09 ; N # Lo [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
11D0B..11D30 ; N # Lo [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA
11D31..11D36 ; N # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
11D3A ; N # Mn MASARAM GONDI VOWEL SIGN E
11D3C..11D3D ; N # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
11D3F..11D45 ; N # Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
11D46 ; N # Lo MASARAM GONDI REPHA
11D47 ; N # Mn MASARAM GONDI RA-KARA
11D50..11D59 ; N # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
11D60..11D65 ; N # Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
11D67..11D68 ; N # Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
11D6A..11D89 ; N # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
11D8A..11D8E ; N # Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
11D90..11D91 ; N # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
11D93..11D94 ; N # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
11D95 ; N # Mn GUNJALA GONDI SIGN ANUSVARA
11D96 ; N # Mc GUNJALA GONDI SIGN VISARGA
11D97 ; N # Mn GUNJALA GONDI VIRAMA
11D98 ; N # Lo GUNJALA GONDI OM
11DA0..11DA9 ; N # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
11DB0..11DD8 ; N # Lo [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH
11DD9 ; N # Lm TOLONG SIKI SIGN SELA
11DDA..11DDB ; N # Lo [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA
11DE0..11DE9 ; N # Nd [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI DIGIT NINE
11EE0..11EF2 ; N # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA
11EF3..11EF4 ; N # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11EF5..11EF6 ; N # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
11EF7..11EF8 ; N # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
11F00..11F01 ; N # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
11F02 ; N # Lo KAWI SIGN REPHA
11F03 ; N # Mc KAWI SIGN VISARGA
11F04..11F10 ; N # Lo [13] KAWI LETTER A..KAWI LETTER O
11F12..11F33 ; N # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
11F34..11F35 ; N # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
11F36..11F3A ; N # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
11F3E..11F3F ; N # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
11F40 ; N # Mn KAWI VOWEL SIGN EU
11F41 ; N # Mc KAWI SIGN KILLER
11F42 ; N # Mn KAWI CONJOINER
11F43..11F4F ; N # Po [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
11F50..11F59 ; N # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
11F5A ; N # Mn KAWI SIGN NUKTA
11FB0 ; N # Lo LISU LETTER YHA
11FC0..11FD4 ; N # No [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
11FD5..11FDC ; N # So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
11FDD..11FE0 ; N # Sc [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
11FE1..11FF1 ; N # So [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
11FFF ; N # Po TAMIL PUNCTUATION END OF TEXT
12000..12399 ; N # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
12400..1246E ; N # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
12470..12474 ; N # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
12480..12543 ; N # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
12F90..12FF0 ; N # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
12FF1..12FF2 ; N # Po [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
13000..1342F ; N # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
13430..1343F ; N # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
13440 ; N # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
13441..13446 ; N # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
13447..13455 ; N # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
13460..143FA ; N # Lo [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
14400..14646 ; N # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
16100..1611D ; N # Lo [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
1611E..16129 ; N # Mn [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
1612A..1612C ; N # Mc [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
1612D..1612F ; N # Mn [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
16130..16139 ; N # Nd [10] GURUNG KHEMA DIGIT ZERO..GURUNG KHEMA DIGIT NINE
16800..16A38 ; N # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
16A40..16A5E ; N # Lo [31] MRO LETTER TA..MRO LETTER TEK
16A60..16A69 ; N # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
16A6E..16A6F ; N # Po [2] MRO DANDA..MRO DOUBLE DANDA
16A70..16ABE ; N # Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA
16AC0..16AC9 ; N # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
16AD0..16AED ; N # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
16AF0..16AF4 ; N # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16AF5 ; N # Po BASSA VAH FULL STOP
16B00..16B2F ; N # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
16B30..16B36 ; N # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16B37..16B3B ; N # Po [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
16B3C..16B3F ; N # So [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
16B40..16B43 ; N # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
16B44 ; N # Po PAHAWH HMONG SIGN XAUS
16B45 ; N # So PAHAWH HMONG SIGN CIM TSOV ROG
16B50..16B59 ; N # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
16B5B..16B61 ; N # No [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
16B63..16B77 ; N # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
16B7D..16B8F ; N # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
16D40..16D42 ; N # Lm [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
16D43..16D6A ; N # Lo [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
16D6B..16D6C ; N # Lm [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
16D6D..16D6F ; N # Po [3] KIRAT RAI SIGN YUPI..KIRAT RAI DOUBLE DANDA
16D70..16D79 ; N # Nd [10] KIRAT RAI DIGIT ZERO..KIRAT RAI DIGIT NINE
16E40..16E7F ; N # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
16E80..16E96 ; N # No [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
16E97..16E9A ; N # Po [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH
16EA0..16EB8 ; N # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
16EBB..16ED3 ; N # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
16F00..16F4A ; N # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
16F4F ; N # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F50 ; N # Lo MIAO LETTER NASALIZATION
16F51..16F87 ; N # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
16F8F..16F92 ; N # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
16F93..16F9F ; N # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
1BC00..1BC6A ; N # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
1BC70..1BC7C ; N # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
1BC80..1BC88 ; N # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
1BC90..1BC99 ; N # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
1BC9C ; N # So DUPLOYAN SIGN O WITH CROSS
1BC9D..1BC9E ; N # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
1BC9F ; N # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
1BCA0..1BCA3 ; N # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1CC00..1CCEF ; N # So [240] UP-POINTING GO-KART..OUTLINED LATIN CAPITAL LETTER Z
1CCF0..1CCF9 ; N # Nd [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
1CCFA..1CCFC ; N # So [3] SNAKE SYMBOL..NOSE SYMBOL
1CD00..1CEB3 ; N # So [436] BLOCK OCTANT-3..BLACK RIGHT TRIANGLE CARET
1CEBA..1CED0 ; N # So [23] FRAGILE SYMBOL..LEUKOTHEA
1CEE0..1CEEF ; N # So [16] GEOMANTIC FIGURE POPULUS..GEOMANTIC FIGURE VIA
1CEF0 ; N # Sm MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR
1CF00..1CF2D ; N # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
1CF30..1CF46 ; N # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
1CF50..1CFC3 ; N # So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
1D000..1D0F5 ; N # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
1D100..1D126 ; N # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
1D129..1D164 ; N # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
1D165..1D166 ; N # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D167..1D169 ; N # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D16A..1D16C ; N # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
1D16D..1D172 ; N # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
1D173..1D17A ; N # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
1D17B..1D182 ; N # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
1D183..1D184 ; N # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
1D185..1D18B ; N # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D18C..1D1A9 ; N # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
1D1AA..1D1AD ; N # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
1D1AE..1D1EA ; N # So [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
1D200..1D241 ; N # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
1D242..1D244 ; N # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
1D245 ; N # So GREEK MUSICAL LEIMMA
1D2C0..1D2D3 ; N # No [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
1D2E0..1D2F3 ; N # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
1D377..1D378 ; N # No [2] TALLY MARK ONE..TALLY MARK FIVE
1D400..1D454 ; N # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
1D456..1D49C ; N # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
1D49E..1D49F ; N # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
1D4A2 ; N # L& MATHEMATICAL SCRIPT CAPITAL G
1D4A5..1D4A6 ; N # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
1D4A9..1D4AC ; N # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
1D4AE..1D4B9 ; N # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
1D4BB ; N # L& MATHEMATICAL SCRIPT SMALL F
1D4BD..1D4C3 ; N # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
1D4C5..1D505 ; N # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
1D507..1D50A ; N # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
1D50D..1D514 ; N # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
1D516..1D51C ; N # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
1D51E..1D539 ; N # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
1D53B..1D53E ; N # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
1D540..1D544 ; N # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
1D546 ; N # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
1D54A..1D550 ; N # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
1D552..1D6A5 ; N # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
1D6A8..1D6C0 ; N # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
1D6C1 ; N # Sm MATHEMATICAL BOLD NABLA
1D6C2..1D6DA ; N # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
1D6DB ; N # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
1D6DC..1D6FA ; N # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
1D6FB ; N # Sm MATHEMATICAL ITALIC NABLA
1D6FC..1D714 ; N # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
1D715 ; N # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
1D716..1D734 ; N # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
1D735 ; N # Sm MATHEMATICAL BOLD ITALIC NABLA
1D736..1D74E ; N # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
1D74F ; N # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
1D750..1D76E ; N # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
1D76F ; N # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
1D770..1D788 ; N # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
1D789 ; N # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
1D78A..1D7A8 ; N # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
1D7A9 ; N # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
1D7AA..1D7C2 ; N # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
1D7C3 ; N # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
1D7C4..1D7CB ; N # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
1D7CE..1D7FF ; N # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
1D800..1D9FF ; N # So [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD
1DA00..1DA36 ; N # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
1DA37..1DA3A ; N # So [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
1DA3B..1DA6C ; N # Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
1DA6D..1DA74 ; N # So [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
1DA75 ; N # Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
1DA76..1DA83 ; N # So [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
1DA84 ; N # Mn SIGNWRITING LOCATION HEAD NECK
1DA85..1DA86 ; N # So [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS
1DA87..1DA8B ; N # Po [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS
1DA9B..1DA9F ; N # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
1DAA1..1DAAF ; N # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
1DF00..1DF09 ; N # L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
1DF0A ; N # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
1DF0B..1DF1E ; N # L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
1DF25..1DF2A ; N # L& [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
1E000..1E006 ; N # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
1E008..1E018 ; N # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
1E01B..1E021 ; N # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; N # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; N # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
1E030..1E06D ; N # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1E08F ; N # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E100..1E12C ; N # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
1E130..1E136 ; N # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
1E137..1E13D ; N # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
1E140..1E149 ; N # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
1E14E ; N # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
1E14F ; N # So NYIAKENG PUACHUE HMONG CIRCLED CA
1E290..1E2AD ; N # Lo [30] TOTO LETTER PA..TOTO LETTER A
1E2AE ; N # Mn TOTO SIGN RISING TONE
1E2C0..1E2EB ; N # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
1E2EC..1E2EF ; N # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
1E2F0..1E2F9 ; N # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
1E2FF ; N # Sc WANCHO NGUN SIGN
1E4D0..1E4EA ; N # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
1E4EB ; N # Lm NAG MUNDARI SIGN OJOD
1E4EC..1E4EF ; N # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
1E4F0..1E4F9 ; N # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
1E5D0..1E5ED ; N # Lo [30] OL ONAL LETTER O..OL ONAL LETTER EG
1E5EE..1E5EF ; N # Mn [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
1E5F0 ; N # Lo OL ONAL SIGN HODDOND
1E5F1..1E5FA ; N # Nd [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE
1E5FF ; N # Po OL ONAL ABBREVIATION SIGN
1E6C0..1E6DE ; N # Lo [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO
1E6E0..1E6E2 ; N # Lo [3] TAI YO LETTER AA..TAI YO LETTER UE
1E6E3 ; N # Mn TAI YO SIGN UE
1E6E4..1E6E5 ; N # Lo [2] TAI YO LETTER U..TAI YO LETTER AE
1E6E6 ; N # Mn TAI YO SIGN AU
1E6E7..1E6ED ; N # Lo [7] TAI YO LETTER O..TAI YO LETTER AUE
1E6EE..1E6EF ; N # Mn [2] TAI YO SIGN AY..TAI YO SIGN ANG
1E6F0..1E6F4 ; N # Lo [5] TAI YO LETTER AN..TAI YO LETTER AP
1E6F5 ; N # Mn TAI YO SIGN OM
1E6FE ; N # Lo TAI YO SYMBOL MUEANG
1E6FF ; N # Lm TAI YO XAM LAI
1E7E0..1E7E6 ; N # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
1E7E8..1E7EB ; N # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
1E7ED..1E7EE ; N # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
1E7F0..1E7FE ; N # Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
1E800..1E8C4 ; N # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1E8C7..1E8CF ; N # No [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
1E8D0..1E8D6 ; N # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E900..1E943 ; N # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
1E944..1E94A ; N # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
1E94B ; N # Lm ADLAM NASALIZATION MARK
1E950..1E959 ; N # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
1E95E..1E95F ; N # Po [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
1EC71..1ECAB ; N # No [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
1ECAC ; N # So INDIC SIYAQ PLACEHOLDER
1ECAD..1ECAF ; N # No [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
1ECB0 ; N # Sc INDIC SIYAQ RUPEE MARK
1ECB1..1ECB4 ; N # No [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
1ED01..1ED2D ; N # No [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
1ED2E ; N # So OTTOMAN SIYAQ MARRATAN
1ED2F..1ED3D ; N # No [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
1EE00..1EE03 ; N # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; N # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; N # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
1EE24 ; N # Lo ARABIC MATHEMATICAL INITIAL HEH
1EE27 ; N # Lo ARABIC MATHEMATICAL INITIAL HAH
1EE29..1EE32 ; N # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
1EE34..1EE37 ; N # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
1EE39 ; N # Lo ARABIC MATHEMATICAL INITIAL DAD
1EE3B ; N # Lo ARABIC MATHEMATICAL INITIAL GHAIN
1EE42 ; N # Lo ARABIC MATHEMATICAL TAILED JEEM
1EE47 ; N # Lo ARABIC MATHEMATICAL TAILED HAH
1EE49 ; N # Lo ARABIC MATHEMATICAL TAILED YEH
1EE4B ; N # Lo ARABIC MATHEMATICAL TAILED LAM
1EE4D..1EE4F ; N # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
1EE51..1EE52 ; N # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
1EE54 ; N # Lo ARABIC MATHEMATICAL TAILED SHEEN
1EE57 ; N # Lo ARABIC MATHEMATICAL TAILED KHAH
1EE59 ; N # Lo ARABIC MATHEMATICAL TAILED DAD
1EE5B ; N # Lo ARABIC MATHEMATICAL TAILED GHAIN
1EE5D ; N # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON
1EE5F ; N # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF
1EE61..1EE62 ; N # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
1EE64 ; N # Lo ARABIC MATHEMATICAL STRETCHED HEH
1EE67..1EE6A ; N # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
1EE6C..1EE72 ; N # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
1EE74..1EE77 ; N # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
1EE79..1EE7C ; N # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
1EE7E ; N # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
1EE80..1EE89 ; N # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
1EE8B..1EE9B ; N # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
1EEA1..1EEA3 ; N # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
1EEA5..1EEA9 ; N # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
1EEAB..1EEBB ; N # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
1EEF0..1EEF1 ; N # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
1F000..1F003 ; N # So [4] MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND
1F005..1F02B ; N # So [39] MAHJONG TILE GREEN DRAGON..MAHJONG TILE BACK
1F030..1F093 ; N # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
1F0A0..1F0AE ; N # So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
1F0B1..1F0BF ; N # So [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
1F0C1..1F0CE ; N # So [14] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD KING OF DIAMONDS
1F0D1..1F0F5 ; N # So [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
1F10B..1F10C ; N # No [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
1F10D..1F10F ; N # So [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
1F12E..1F12F ; N # So [2] CIRCLED WZ..COPYLEFT SYMBOL
1F16A..1F16F ; N # So [6] RAISED MC SIGN..CIRCLED HUMAN FIGURE
1F1AD ; N # So MASK WORK SYMBOL
1F1E6..1F1FF ; N # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
1F321..1F32C ; N # So [12] THERMOMETER..WIND BLOWING FACE
1F336 ; N # So HOT PEPPER
1F37D ; N # So FORK AND KNIFE WITH PLATE
1F394..1F39F ; N # So [12] HEART WITH TIP ON THE LEFT..ADMISSION TICKETS
1F3CB..1F3CE ; N # So [4] WEIGHT LIFTER..RACING CAR
1F3D4..1F3DF ; N # So [12] SNOW CAPPED MOUNTAIN..STADIUM
1F3F1..1F3F3 ; N # So [3] WHITE PENNANT..WAVING WHITE FLAG
1F3F5..1F3F7 ; N # So [3] ROSETTE..LABEL
1F43F ; N # So CHIPMUNK
1F441 ; N # So EYE
1F4FD..1F4FE ; N # So [2] FILM PROJECTOR..PORTABLE STEREO
1F53E..1F54A ; N # So [13] LOWER RIGHT SHADOWED WHITE CIRCLE..DOVE OF PEACE
1F54F ; N # So BOWL OF HYGIEIA
1F568..1F579 ; N # So [18] RIGHT SPEAKER..JOYSTICK
1F57B..1F594 ; N # So [26] LEFT HAND TELEPHONE RECEIVER..REVERSED VICTORY HAND
1F597..1F5A3 ; N # So [13] WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX
1F5A5..1F5FA ; N # So [86] DESKTOP COMPUTER..WORLD MAP
1F650..1F67F ; N # So [48] NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD
1F6C6..1F6CB ; N # So [6] TRIANGLE WITH ROUNDED CORNERS..COUCH AND LAMP
1F6CD..1F6CF ; N # So [3] SHOPPING BAGS..BED
1F6D3..1F6D4 ; N # So [2] STUPA..PAGODA
1F6E0..1F6EA ; N # So [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE
1F6F0..1F6F3 ; N # So [4] SATELLITE..PASSENGER SHIP
1F700..1F7D9 ; N # So [218] ALCHEMICAL SYMBOL FOR QUINTESSENCE..NINE POINTED WHITE STAR
1F800..1F80B ; N # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
1F810..1F847 ; N # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
1F850..1F859 ; N # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
1F860..1F887 ; N # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
1F890..1F8AD ; N # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
1F8B0..1F8BB ; N # So [12] ARROW POINTING UPWARDS THEN NORTH WEST..SOUTH WEST ARROW FROM BAR
1F8C0..1F8C1 ; N # So [2] LEFTWARDS ARROW FROM DOWNWARDS ARROW..RIGHTWARDS ARROW FROM DOWNWARDS ARROW
1F8D0..1F8D8 ; N # Sm [9] LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW..LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE
1F900..1F90B ; N # So [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
1F93B ; N # So MODERN PENTATHLON
1F946 ; N # So RIFLE
1FA00..1FA57 ; N # So [88] NEUTRAL CHESS KING..BLACK CHESS ALFIL
1FA60..1FA6D ; N # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
1FB00..1FB92 ; N # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
1FB94..1FBEF ; N # So [92] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE
1FBF0..1FBF9 ; N # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
1FBFA ; N # So ALARM BELL SYMBOL
E0001 ; N # Cf LANGUAGE TAG
E0020..E007F ; N # Cf [96] TAG SPACE..CANCEL TAG
# The above property value applies to 760612 code points not listed here.
# Total code points: 792263
# ================================================
# East_Asian_Width=Ambiguous
00A1 ; A # Po INVERTED EXCLAMATION MARK
00A4 ; A # Sc CURRENCY SIGN
00A7 ; A # Po SECTION SIGN
00A8 ; A # Sk DIAERESIS
00AA ; A # Lo FEMININE ORDINAL INDICATOR
00AD ; A # Cf SOFT HYPHEN
00AE ; A # So REGISTERED SIGN
00B0 ; A # So DEGREE SIGN
00B1 ; A # Sm PLUS-MINUS SIGN
00B2..00B3 ; A # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
00B4 ; A # Sk ACUTE ACCENT
00B6..00B7 ; A # Po [2] PILCROW SIGN..MIDDLE DOT
00B8 ; A # Sk CEDILLA
00B9 ; A # No SUPERSCRIPT ONE
00BA ; A # Lo MASCULINE ORDINAL INDICATOR
00BC..00BE ; A # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
00BF ; A # Po INVERTED QUESTION MARK
00C6 ; A # L& LATIN CAPITAL LETTER AE
00D0 ; A # L& LATIN CAPITAL LETTER ETH
00D7 ; A # Sm MULTIPLICATION SIGN
00D8 ; A # L& LATIN CAPITAL LETTER O WITH STROKE
00DE..00E1 ; A # L& [4] LATIN CAPITAL LETTER THORN..LATIN SMALL LETTER A WITH ACUTE
00E6 ; A # L& LATIN SMALL LETTER AE
00E8..00EA ; A # L& [3] LATIN SMALL LETTER E WITH GRAVE..LATIN SMALL LETTER E WITH CIRCUMFLEX
00EC..00ED ; A # L& [2] LATIN SMALL LETTER I WITH GRAVE..LATIN SMALL LETTER I WITH ACUTE
00F0 ; A # L& LATIN SMALL LETTER ETH
00F2..00F3 ; A # L& [2] LATIN SMALL LETTER O WITH GRAVE..LATIN SMALL LETTER O WITH ACUTE
00F7 ; A # Sm DIVISION SIGN
00F8..00FA ; A # L& [3] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER U WITH ACUTE
00FC ; A # L& LATIN SMALL LETTER U WITH DIAERESIS
00FE ; A # L& LATIN SMALL LETTER THORN
0101 ; A # L& LATIN SMALL LETTER A WITH MACRON
0111 ; A # L& LATIN SMALL LETTER D WITH STROKE
0113 ; A # L& LATIN SMALL LETTER E WITH MACRON
011B ; A # L& LATIN SMALL LETTER E WITH CARON
0126..0127 ; A # L& [2] LATIN CAPITAL LETTER H WITH STROKE..LATIN SMALL LETTER H WITH STROKE
012B ; A # L& LATIN SMALL LETTER I WITH MACRON
0131..0133 ; A # L& [3] LATIN SMALL LETTER DOTLESS I..LATIN SMALL LIGATURE IJ
0138 ; A # L& LATIN SMALL LETTER KRA
013F..0142 ; A # L& [4] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH STROKE
0144 ; A # L& LATIN SMALL LETTER N WITH ACUTE
0148..014B ; A # L& [4] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER ENG
014D ; A # L& LATIN SMALL LETTER O WITH MACRON
0152..0153 ; A # L& [2] LATIN CAPITAL LIGATURE OE..LATIN SMALL LIGATURE OE
0166..0167 ; A # L& [2] LATIN CAPITAL LETTER T WITH STROKE..LATIN SMALL LETTER T WITH STROKE
016B ; A # L& LATIN SMALL LETTER U WITH MACRON
01CE ; A # L& LATIN SMALL LETTER A WITH CARON
01D0 ; A # L& LATIN SMALL LETTER I WITH CARON
01D2 ; A # L& LATIN SMALL LETTER O WITH CARON
01D4 ; A # L& LATIN SMALL LETTER U WITH CARON
01D6 ; A # L& LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
01D8 ; A # L& LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
01DA ; A # L& LATIN SMALL LETTER U WITH DIAERESIS AND CARON
01DC ; A # L& LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
0251 ; A # L& LATIN SMALL LETTER ALPHA
0261 ; A # L& LATIN SMALL LETTER SCRIPT G
02C4 ; A # Sk MODIFIER LETTER UP ARROWHEAD
02C7 ; A # Lm CARON
02C9..02CB ; A # Lm [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT
02CD ; A # Lm MODIFIER LETTER LOW MACRON
02D0 ; A # Lm MODIFIER LETTER TRIANGULAR COLON
02D8..02DB ; A # Sk [4] BREVE..OGONEK
02DD ; A # Sk DOUBLE ACUTE ACCENT
02DF ; A # Sk MODIFIER LETTER CROSS ACCENT
0300..036F ; A # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
0391..03A1 ; A # L& [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
03A3..03A9 ; A # L& [7] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER OMEGA
03B1..03C1 ; A # L& [17] GREEK SMALL LETTER ALPHA..GREEK SMALL LETTER RHO
03C3..03C9 ; A # L& [7] GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA
0401 ; A # L& CYRILLIC CAPITAL LETTER IO
0410..044F ; A # L& [64] CYRILLIC CAPITAL LETTER A..CYRILLIC SMALL LETTER YA
0451 ; A # L& CYRILLIC SMALL LETTER IO
2010 ; A # Pd HYPHEN
2013..2015 ; A # Pd [3] EN DASH..HORIZONTAL BAR
2016 ; A # Po DOUBLE VERTICAL LINE
2018 ; A # Pi LEFT SINGLE QUOTATION MARK
2019 ; A # Pf RIGHT SINGLE QUOTATION MARK
201C ; A # Pi LEFT DOUBLE QUOTATION MARK
201D ; A # Pf RIGHT DOUBLE QUOTATION MARK
2020..2022 ; A # Po [3] DAGGER..BULLET
2024..2027 ; A # Po [4] ONE DOT LEADER..HYPHENATION POINT
2030 ; A # Po PER MILLE SIGN
2032..2033 ; A # Po [2] PRIME..DOUBLE PRIME
2035 ; A # Po REVERSED PRIME
203B ; A # Po REFERENCE MARK
203E ; A # Po OVERLINE
2074 ; A # No SUPERSCRIPT FOUR
207F ; A # Lm SUPERSCRIPT LATIN SMALL LETTER N
2081..2084 ; A # No [4] SUBSCRIPT ONE..SUBSCRIPT FOUR
20AC ; A # Sc EURO SIGN
2103 ; A # So DEGREE CELSIUS
2105 ; A # So CARE OF
2109 ; A # So DEGREE FAHRENHEIT
2113 ; A # L& SCRIPT SMALL L
2116 ; A # So NUMERO SIGN
2121..2122 ; A # So [2] TELEPHONE SIGN..TRADE MARK SIGN
2126 ; A # L& OHM SIGN
212B ; A # L& ANGSTROM SIGN
2153..2154 ; A # No [2] VULGAR FRACTION ONE THIRD..VULGAR FRACTION TWO THIRDS
215B..215E ; A # No [4] VULGAR FRACTION ONE EIGHTH..VULGAR FRACTION SEVEN EIGHTHS
2160..216B ; A # Nl [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE
2170..2179 ; A # Nl [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN
2189 ; A # No VULGAR FRACTION ZERO THIRDS
2190..2194 ; A # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
2195..2199 ; A # So [5] UP DOWN ARROW..SOUTH WEST ARROW
21B8..21B9 ; A # So [2] NORTH WEST ARROW TO LONG BAR..LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
21D2 ; A # Sm RIGHTWARDS DOUBLE ARROW
21D4 ; A # Sm LEFT RIGHT DOUBLE ARROW
21E7 ; A # So UPWARDS WHITE ARROW
2200 ; A # Sm FOR ALL
2202..2203 ; A # Sm [2] PARTIAL DIFFERENTIAL..THERE EXISTS
2207..2208 ; A # Sm [2] NABLA..ELEMENT OF
220B ; A # Sm CONTAINS AS MEMBER
220F ; A # Sm N-ARY PRODUCT
2211 ; A # Sm N-ARY SUMMATION
2215 ; A # Sm DIVISION SLASH
221A ; A # Sm SQUARE ROOT
221D..2220 ; A # Sm [4] PROPORTIONAL TO..ANGLE
2223 ; A # Sm DIVIDES
2225 ; A # Sm PARALLEL TO
2227..222C ; A # Sm [6] LOGICAL AND..DOUBLE INTEGRAL
222E ; A # Sm CONTOUR INTEGRAL
2234..2237 ; A # Sm [4] THEREFORE..PROPORTION
223C..223D ; A # Sm [2] TILDE OPERATOR..REVERSED TILDE
2248 ; A # Sm ALMOST EQUAL TO
224C ; A # Sm ALL EQUAL TO
2252 ; A # Sm APPROXIMATELY EQUAL TO OR THE IMAGE OF
2260..2261 ; A # Sm [2] NOT EQUAL TO..IDENTICAL TO
2264..2267 ; A # Sm [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO
226A..226B ; A # Sm [2] MUCH LESS-THAN..MUCH GREATER-THAN
226E..226F ; A # Sm [2] NOT LESS-THAN..NOT GREATER-THAN
2282..2283 ; A # Sm [2] SUBSET OF..SUPERSET OF
2286..2287 ; A # Sm [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO
2295 ; A # Sm CIRCLED PLUS
2299 ; A # Sm CIRCLED DOT OPERATOR
22A5 ; A # Sm UP TACK
22BF ; A # Sm RIGHT TRIANGLE
2312 ; A # So ARC
2460..249B ; A # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
249C..24E9 ; A # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
24EB..24FF ; A # No [21] NEGATIVE CIRCLED NUMBER ELEVEN..NEGATIVE CIRCLED DIGIT ZERO
2500..254B ; A # So [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
2550..2573 ; A # So [36] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT DIAGONAL CROSS
2580..258F ; A # So [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK
2592..2595 ; A # So [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK
25A0..25A1 ; A # So [2] BLACK SQUARE..WHITE SQUARE
25A3..25A9 ; A # So [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL
25B2..25B3 ; A # So [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE
25B6 ; A # So BLACK RIGHT-POINTING TRIANGLE
25B7 ; A # Sm WHITE RIGHT-POINTING TRIANGLE
25BC..25BD ; A # So [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE
25C0 ; A # So BLACK LEFT-POINTING TRIANGLE
25C1 ; A # Sm WHITE LEFT-POINTING TRIANGLE
25C6..25C8 ; A # So [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
25CB ; A # So WHITE CIRCLE
25CE..25D1 ; A # So [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK
25E2..25E5 ; A # So [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE
25EF ; A # So LARGE CIRCLE
2605..2606 ; A # So [2] BLACK STAR..WHITE STAR
2609 ; A # So SUN
260E..260F ; A # So [2] BLACK TELEPHONE..WHITE TELEPHONE
261C ; A # So WHITE LEFT POINTING INDEX
261E ; A # So WHITE RIGHT POINTING INDEX
2640 ; A # So FEMALE SIGN
2642 ; A # So MALE SIGN
2660..2661 ; A # So [2] BLACK SPADE SUIT..WHITE HEART SUIT
2663..2665 ; A # So [3] BLACK CLUB SUIT..BLACK HEART SUIT
2667..266A ; A # So [4] WHITE CLUB SUIT..EIGHTH NOTE
266C..266D ; A # So [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN
266F ; A # Sm MUSIC SHARP SIGN
269E..269F ; A # So [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
26BF ; A # So SQUARED KEY
26C6..26CD ; A # So [8] RAIN..DISABLED CAR
26CF..26D3 ; A # So [5] PICK..CHAINS
26D5..26E1 ; A # So [13] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..RESTRICTED LEFT ENTRY-2
26E3 ; A # So HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
26E8..26E9 ; A # So [2] BLACK CROSS ON SHIELD..SHINTO SHRINE
26EB..26F1 ; A # So [7] CASTLE..UMBRELLA ON GROUND
26F4 ; A # So FERRY
26F6..26F9 ; A # So [4] SQUARE FOUR CORNERS..PERSON WITH BALL
26FB..26FC ; A # So [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
26FE..26FF ; A # So [2] CUP ON BLACK SQUARE..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
273D ; A # So HEAVY TEARDROP-SPOKED ASTERISK
2776..277F ; A # No [10] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED NUMBER TEN
2B56..2B59 ; A # So [4] HEAVY OVAL WITH OVAL INSIDE..HEAVY CIRCLED SALTIRE
3248..324F ; A # No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
E000..F8FF ; A # Co [6400] <private-use-E000>..<private-use-F8FF>
FE00..FE0F ; A # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
FFFD ; A # So REPLACEMENT CHARACTER
1F100..1F10A ; A # No [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
1F110..1F12D ; A # So [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
1F130..1F169 ; A # So [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
1F170..1F18D ; A # So [30] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED SA
1F18F..1F190 ; A # So [2] NEGATIVE SQUARED WC..SQUARE DJ
1F19B..1F1AC ; A # So [18] SQUARED THREE D..SQUARED VOD
E0100..E01EF ; A # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
F0000..FFFFD ; A # Co [65534] <private-use-F0000>..<private-use-FFFFD>
100000..10FFFD; A # Co [65534] <private-use-100000>..<private-use-10FFFD>
# Total code points: 138739
# ================================================
# East_Asian_Width=Halfwidth
20A9 ; H # Sc WON SIGN
FF61 ; H # Po HALFWIDTH IDEOGRAPHIC FULL STOP
FF62 ; H # Ps HALFWIDTH LEFT CORNER BRACKET
FF63 ; H # Pe HALFWIDTH RIGHT CORNER BRACKET
FF64..FF65 ; H # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
FF66..FF6F ; H # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
FF70 ; H # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
FF71..FF9D ; H # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
FF9E..FF9F ; H # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
FFA0..FFBE ; H # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
FFC2..FFC7 ; H # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
FFCA..FFCF ; H # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
FFD2..FFD7 ; H # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
FFDA..FFDC ; H # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
FFE8 ; H # So HALFWIDTH FORMS LIGHT VERTICAL
FFE9..FFEC ; H # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
FFED..FFEE ; H # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
# Total code points: 123
# ================================================
# East_Asian_Width=Wide
1100..115F ; W # Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
231A..231B ; W # So [2] WATCH..HOURGLASS
2329 ; W # Ps LEFT-POINTING ANGLE BRACKET
232A ; W # Pe RIGHT-POINTING ANGLE BRACKET
23E9..23EC ; W # So [4] BLACK RIGHT-POINTING DOUBLE TRIANGLE..BLACK DOWN-POINTING DOUBLE TRIANGLE
23F0 ; W # So ALARM CLOCK
23F3 ; W # So HOURGLASS WITH FLOWING SAND
25FD..25FE ; W # Sm [2] WHITE MEDIUM SMALL SQUARE..BLACK MEDIUM SMALL SQUARE
2614..2615 ; W # So [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE
2630..2637 ; W # So [8] TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH
2648..2653 ; W # So [12] ARIES..PISCES
267F ; W # So WHEELCHAIR SYMBOL
268A..268F ; W # So [6] MONOGRAM FOR YANG..DIGRAM FOR GREATER YIN
2693 ; W # So ANCHOR
26A1 ; W # So HIGH VOLTAGE SIGN
26AA..26AB ; W # So [2] MEDIUM WHITE CIRCLE..MEDIUM BLACK CIRCLE
26BD..26BE ; W # So [2] SOCCER BALL..BASEBALL
26C4..26C5 ; W # So [2] SNOWMAN WITHOUT SNOW..SUN BEHIND CLOUD
26CE ; W # So OPHIUCHUS
26D4 ; W # So NO ENTRY
26EA ; W # So CHURCH
26F2..26F3 ; W # So [2] FOUNTAIN..FLAG IN HOLE
26F5 ; W # So SAILBOAT
26FA ; W # So TENT
26FD ; W # So FUEL PUMP
2705 ; W # So WHITE HEAVY CHECK MARK
270A..270B ; W # So [2] RAISED FIST..RAISED HAND
2728 ; W # So SPARKLES
274C ; W # So CROSS MARK
274E ; W # So NEGATIVE SQUARED CROSS MARK
2753..2755 ; W # So [3] BLACK QUESTION MARK ORNAMENT..WHITE EXCLAMATION MARK ORNAMENT
2757 ; W # So HEAVY EXCLAMATION MARK SYMBOL
2795..2797 ; W # So [3] HEAVY PLUS SIGN..HEAVY DIVISION SIGN
27B0 ; W # So CURLY LOOP
27BF ; W # So DOUBLE CURLY LOOP
2B1B..2B1C ; W # So [2] BLACK LARGE SQUARE..WHITE LARGE SQUARE
2B50 ; W # So WHITE MEDIUM STAR
2B55 ; W # So HEAVY LARGE CIRCLE
2E80..2E99 ; W # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
2E9B..2EF3 ; W # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
2F00..2FD5 ; W # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
2FF0..2FFF ; W # So [16] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
3001..3003 ; W # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
3004 ; W # So JAPANESE INDUSTRIAL STANDARD SYMBOL
3005 ; W # Lm IDEOGRAPHIC ITERATION MARK
3006 ; W # Lo IDEOGRAPHIC CLOSING MARK
3007 ; W # Nl IDEOGRAPHIC NUMBER ZERO
3008 ; W # Ps LEFT ANGLE BRACKET
3009 ; W # Pe RIGHT ANGLE BRACKET
300A ; W # Ps LEFT DOUBLE ANGLE BRACKET
300B ; W # Pe RIGHT DOUBLE ANGLE BRACKET
300C ; W # Ps LEFT CORNER BRACKET
300D ; W # Pe RIGHT CORNER BRACKET
300E ; W # Ps LEFT WHITE CORNER BRACKET
300F ; W # Pe RIGHT WHITE CORNER BRACKET
3010 ; W # Ps LEFT BLACK LENTICULAR BRACKET
3011 ; W # Pe RIGHT BLACK LENTICULAR BRACKET
3012..3013 ; W # So [2] POSTAL MARK..GETA MARK
3014 ; W # Ps LEFT TORTOISE SHELL BRACKET
3015 ; W # Pe RIGHT TORTOISE SHELL BRACKET
3016 ; W # Ps LEFT WHITE LENTICULAR BRACKET
3017 ; W # Pe RIGHT WHITE LENTICULAR BRACKET
3018 ; W # Ps LEFT WHITE TORTOISE SHELL BRACKET
3019 ; W # Pe RIGHT WHITE TORTOISE SHELL BRACKET
301A ; W # Ps LEFT WHITE SQUARE BRACKET
301B ; W # Pe RIGHT WHITE SQUARE BRACKET
301C ; W # Pd WAVE DASH
301D ; W # Ps REVERSED DOUBLE PRIME QUOTATION MARK
301E..301F ; W # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
3020 ; W # So POSTAL MARK FACE
3021..3029 ; W # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
302A..302D ; W # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
302E..302F ; W # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
3030 ; W # Pd WAVY DASH
3031..3035 ; W # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
3036..3037 ; W # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
3038..303A ; W # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
303B ; W # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
303C ; W # Lo MASU MARK
303D ; W # Po PART ALTERNATION MARK
303E ; W # So IDEOGRAPHIC VARIATION INDICATOR
3041..3096 ; W # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
3099..309A ; W # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
309B..309C ; W # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
309D..309E ; W # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
309F ; W # Lo HIRAGANA DIGRAPH YORI
30A0 ; W # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
30A1..30FA ; W # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
30FB ; W # Po KATAKANA MIDDLE DOT
30FC..30FE ; W # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
30FF ; W # Lo KATAKANA DIGRAPH KOTO
3105..312F ; W # Lo [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
3131..318E ; W # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
3190..3191 ; W # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
3192..3195 ; W # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
3196..319F ; W # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
31A0..31BF ; W # Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
31C0..31E5 ; W # So [38] CJK STROKE T..CJK STROKE SZP
31EF ; W # So IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
31F0..31FF ; W # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
3200..321E ; W # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
3220..3229 ; W # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
322A..3247 ; W # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
3250 ; W # So PARTNERSHIP SIGN
3251..325F ; W # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
3260..327F ; W # So [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
3280..3289 ; W # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
328A..32B0 ; W # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
32B1..32BF ; W # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
32C0..33FF ; W # So [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
3400..4DBF ; W # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
4DC0..4DFF ; W # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
4E00..A014 ; W # Lo [21013] CJK UNIFIED IDEOGRAPH-4E00..YI SYLLABLE E
A015 ; W # Lm YI SYLLABLE WU
A016..A48C ; W # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
A490..A4C6 ; W # So [55] YI RADICAL QOT..YI RADICAL KE
A960..A97C ; W # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
AC00..D7A3 ; W # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
F900..FA6D ; W # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
FA70..FAD9 ; W # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
FE10..FE16 ; W # Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
FE17 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
FE18 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
FE19 ; W # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
FE30 ; W # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
FE31..FE32 ; W # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
FE33..FE34 ; W # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
FE35 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
FE36 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
FE37 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
FE38 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
FE39 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
FE3A ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
FE3B ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
FE3C ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
FE3D ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
FE3E ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
FE3F ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
FE40 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
FE41 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
FE42 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
FE43 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
FE44 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
FE45..FE46 ; W # Po [2] SESAME DOT..WHITE SESAME DOT
FE47 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
FE48 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
FE49..FE4C ; W # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
FE4D..FE4F ; W # Pc [3] DASHED LOW LINE..WAVY LOW LINE
FE50..FE52 ; W # Po [3] SMALL COMMA..SMALL FULL STOP
FE54..FE57 ; W # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
FE58 ; W # Pd SMALL EM DASH
FE59 ; W # Ps SMALL LEFT PARENTHESIS
FE5A ; W # Pe SMALL RIGHT PARENTHESIS
FE5B ; W # Ps SMALL LEFT CURLY BRACKET
FE5C ; W # Pe SMALL RIGHT CURLY BRACKET
FE5D ; W # Ps SMALL LEFT TORTOISE SHELL BRACKET
FE5E ; W # Pe SMALL RIGHT TORTOISE SHELL BRACKET
FE5F..FE61 ; W # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
FE62 ; W # Sm SMALL PLUS SIGN
FE63 ; W # Pd SMALL HYPHEN-MINUS
FE64..FE66 ; W # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
FE68 ; W # Po SMALL REVERSE SOLIDUS
FE69 ; W # Sc SMALL DOLLAR SIGN
FE6A..FE6B ; W # Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
16FE0..16FE1 ; W # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
16FE2 ; W # Po OLD CHINESE HOOK MARK
16FE3 ; W # Lm OLD CHINESE ITERATION MARK
16FE4 ; W # Mn KHITAN SMALL SCRIPT FILLER
16FF0..16FF1 ; W # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
16FF2..16FF3 ; W # Lm [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
16FF4..16FF6 ; W # Nl [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
17000..18CD5 ; W # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5
18CFF..18D1E ; W # Lo [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E
18D80..18DF2 ; W # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
1AFF0..1AFF3 ; W # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
1AFF5..1AFFB ; W # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
1AFFD..1AFFE ; W # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
1B000..1B122 ; W # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
1B132 ; W # Lo HIRAGANA LETTER SMALL KO
1B150..1B152 ; W # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
1B155 ; W # Lo KATAKANA LETTER SMALL KO
1B164..1B167 ; W # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB ; W # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1D300..1D356 ; W # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
1D360..1D376 ; W # No [23] COUNTING ROD UNIT DIGIT ONE..IDEOGRAPHIC TALLY MARK FIVE
1F004 ; W # So MAHJONG TILE RED DRAGON
1F0CF ; W # So PLAYING CARD BLACK JOKER
1F18E ; W # So NEGATIVE SQUARED AB
1F191..1F19A ; W # So [10] SQUARED CL..SQUARED VS
1F200..1F202 ; W # So [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
1F210..1F23B ; W # So [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
1F240..1F248 ; W # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
1F250..1F251 ; W # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
1F260..1F265 ; W # So [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
1F300..1F320 ; W # So [33] CYCLONE..SHOOTING STAR
1F32D..1F335 ; W # So [9] HOT DOG..CACTUS
1F337..1F37C ; W # So [70] TULIP..BABY BOTTLE
1F37E..1F393 ; W # So [22] BOTTLE WITH POPPING CORK..GRADUATION CAP
1F3A0..1F3CA ; W # So [43] CAROUSEL HORSE..SWIMMER
1F3CF..1F3D3 ; W # So [5] CRICKET BAT AND BALL..TABLE TENNIS PADDLE AND BALL
1F3E0..1F3F0 ; W # So [17] HOUSE BUILDING..EUROPEAN CASTLE
1F3F4 ; W # So WAVING BLACK FLAG
1F3F8..1F3FA ; W # So [3] BADMINTON RACQUET AND SHUTTLECOCK..AMPHORA
1F3FB..1F3FF ; W # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
1F400..1F43E ; W # So [63] RAT..PAW PRINTS
1F440 ; W # So EYES
1F442..1F4FC ; W # So [187] EAR..VIDEOCASSETTE
1F4FF..1F53D ; W # So [63] PRAYER BEADS..DOWN-POINTING SMALL RED TRIANGLE
1F54B..1F54E ; W # So [4] KAABA..MENORAH WITH NINE BRANCHES
1F550..1F567 ; W # So [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
1F57A ; W # So MAN DANCING
1F595..1F596 ; W # So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
1F5A4 ; W # So BLACK HEART
1F5FB..1F64F ; W # So [85] MOUNT FUJI..PERSON WITH FOLDED HANDS
1F680..1F6C5 ; W # So [70] ROCKET..LEFT LUGGAGE
1F6CC ; W # So SLEEPING ACCOMMODATION
1F6D0..1F6D2 ; W # So [3] PLACE OF WORSHIP..SHOPPING TROLLEY
1F6D5..1F6D8 ; W # So [4] HINDU TEMPLE..LANDSLIDE
1F6DC..1F6DF ; W # So [4] WIRELESS..RING BUOY
1F6EB..1F6EC ; W # So [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING
1F6F4..1F6FC ; W # So [9] SCOOTER..ROLLER SKATE
1F7E0..1F7EB ; W # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
1F7F0 ; W # So HEAVY EQUALS SIGN
1F90C..1F93A ; W # So [47] PINCHED FINGERS..FENCER
1F93C..1F945 ; W # So [10] WRESTLERS..GOAL NET
1F947..1F9FF ; W # So [185] FIRST PLACE MEDAL..NAZAR AMULET
1FA70..1FA7C ; W # So [13] BALLET SHOES..CRUTCH
1FA80..1FA8A ; W # So [11] YO-YO..TROMBONE
1FA8E..1FAC6 ; W # So [57] TREASURE CHEST..FINGERPRINT
1FAC8 ; W # So HAIRY CREATURE
1FACD..1FADC ; W # So [16] ORCA..ROOT VEGETABLE
1FADF..1FAEA ; W # So [12] SPLATTER..DISTORTED FACE
1FAEF..1FAF8 ; W # So [10] FIGHT CLOUD..RIGHTWARDS PUSHING HAND
20000..2A6DF ; W # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
2A700..2B81D ; W # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
2B820..2CEAD ; W # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
2CEB0..2EBE0 ; W # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
2EBF0..2EE5D ; W # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
2F800..2FA1D ; W # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
30000..3134A ; W # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
31350..33479 ; W # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
# The above property value applies to 56166 code points not listed here.
# Total code points: 182772
# ================================================
# East_Asian_Width=Fullwidth
3000 ; F # Zs IDEOGRAPHIC SPACE
FF01..FF03 ; F # Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
FF04 ; F # Sc FULLWIDTH DOLLAR SIGN
FF05..FF07 ; F # Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
FF08 ; F # Ps FULLWIDTH LEFT PARENTHESIS
FF09 ; F # Pe FULLWIDTH RIGHT PARENTHESIS
FF0A ; F # Po FULLWIDTH ASTERISK
FF0B ; F # Sm FULLWIDTH PLUS SIGN
FF0C ; F # Po FULLWIDTH COMMA
FF0D ; F # Pd FULLWIDTH HYPHEN-MINUS
FF0E..FF0F ; F # Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
FF10..FF19 ; F # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
FF1A..FF1B ; F # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
FF1C..FF1E ; F # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
FF1F..FF20 ; F # Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
FF21..FF3A ; F # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
FF3B ; F # Ps FULLWIDTH LEFT SQUARE BRACKET
FF3C ; F # Po FULLWIDTH REVERSE SOLIDUS
FF3D ; F # Pe FULLWIDTH RIGHT SQUARE BRACKET
FF3E ; F # Sk FULLWIDTH CIRCUMFLEX ACCENT
FF3F ; F # Pc FULLWIDTH LOW LINE
FF40 ; F # Sk FULLWIDTH GRAVE ACCENT
FF41..FF5A ; F # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
FF5B ; F # Ps FULLWIDTH LEFT CURLY BRACKET
FF5C ; F # Sm FULLWIDTH VERTICAL LINE
FF5D ; F # Pe FULLWIDTH RIGHT CURLY BRACKET
FF5E ; F # Sm FULLWIDTH TILDE
FF5F ; F # Ps FULLWIDTH LEFT WHITE PARENTHESIS
FF60 ; F # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
FFE0..FFE1 ; F # Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
FFE2 ; F # Sm FULLWIDTH NOT SIGN
FFE3 ; F # Sk FULLWIDTH MACRON
FFE4 ; F # So FULLWIDTH BROKEN BAR
FFE5..FFE6 ; F # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
# Total code points: 104
# ================================================
# East_Asian_Width=Narrow
0020 ; Na # Zs SPACE
0021..0023 ; Na # Po [3] EXCLAMATION MARK..NUMBER SIGN
0024 ; Na # Sc DOLLAR SIGN
0025..0027 ; Na # Po [3] PERCENT SIGN..APOSTROPHE
0028 ; Na # Ps LEFT PARENTHESIS
0029 ; Na # Pe RIGHT PARENTHESIS
002A ; Na # Po ASTERISK
002B ; Na # Sm PLUS SIGN
002C ; Na # Po COMMA
002D ; Na # Pd HYPHEN-MINUS
002E..002F ; Na # Po [2] FULL STOP..SOLIDUS
0030..0039 ; Na # Nd [10] DIGIT ZERO..DIGIT NINE
003A..003B ; Na # Po [2] COLON..SEMICOLON
003C..003E ; Na # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN
003F..0040 ; Na # Po [2] QUESTION MARK..COMMERCIAL AT
0041..005A ; Na # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
005B ; Na # Ps LEFT SQUARE BRACKET
005C ; Na # Po REVERSE SOLIDUS
005D ; Na # Pe RIGHT SQUARE BRACKET
005E ; Na # Sk CIRCUMFLEX ACCENT
005F ; Na # Pc LOW LINE
0060 ; Na # Sk GRAVE ACCENT
0061..007A ; Na # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
007B ; Na # Ps LEFT CURLY BRACKET
007C ; Na # Sm VERTICAL LINE
007D ; Na # Pe RIGHT CURLY BRACKET
007E ; Na # Sm TILDE
00A2..00A3 ; Na # Sc [2] CENT SIGN..POUND SIGN
00A5 ; Na # Sc YEN SIGN
00A6 ; Na # So BROKEN BAR
00AC ; Na # Sm NOT SIGN
00AF ; Na # Sk MACRON
27E6 ; Na # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
27E7 ; Na # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
27E8 ; Na # Ps MATHEMATICAL LEFT ANGLE BRACKET
27E9 ; Na # Pe MATHEMATICAL RIGHT ANGLE BRACKET
27EA ; Na # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
27EB ; Na # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
27EC ; Na # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
27ED ; Na # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
2985 ; Na # Ps LEFT WHITE PARENTHESIS
2986 ; Na # Pe RIGHT WHITE PARENTHESIS
# Total code points: 111
# EOF
@@ -0,0 +1,4368 @@
# DerivedGeneralCategory-17.0.0.txt
# Date: 2025-07-24, 00:12:50 GMT
# © 2025 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
# For documentation, see https://www.unicode.org/reports/tr44/
# ================================================
# Property: General_Category
# ================================================
# General_Category=Unassigned
0378..0379 ; Cn # [2] <reserved-0378>..<reserved-0379>
0380..0383 ; Cn # [4] <reserved-0380>..<reserved-0383>
038B ; Cn # <reserved-038B>
038D ; Cn # <reserved-038D>
03A2 ; Cn # <reserved-03A2>
0530 ; Cn # <reserved-0530>
0557..0558 ; Cn # [2] <reserved-0557>..<reserved-0558>
058B..058C ; Cn # [2] <reserved-058B>..<reserved-058C>
0590 ; Cn # <reserved-0590>
05C8..05CF ; Cn # [8] <reserved-05C8>..<reserved-05CF>
05EB..05EE ; Cn # [4] <reserved-05EB>..<reserved-05EE>
05F5..05FF ; Cn # [11] <reserved-05F5>..<reserved-05FF>
070E ; Cn # <reserved-070E>
074B..074C ; Cn # [2] <reserved-074B>..<reserved-074C>
07B2..07BF ; Cn # [14] <reserved-07B2>..<reserved-07BF>
07FB..07FC ; Cn # [2] <reserved-07FB>..<reserved-07FC>
082E..082F ; Cn # [2] <reserved-082E>..<reserved-082F>
083F ; Cn # <reserved-083F>
085C..085D ; Cn # [2] <reserved-085C>..<reserved-085D>
085F ; Cn # <reserved-085F>
086B..086F ; Cn # [5] <reserved-086B>..<reserved-086F>
0892..0896 ; Cn # [5] <reserved-0892>..<reserved-0896>
0984 ; Cn # <reserved-0984>
098D..098E ; Cn # [2] <reserved-098D>..<reserved-098E>
0991..0992 ; Cn # [2] <reserved-0991>..<reserved-0992>
09A9 ; Cn # <reserved-09A9>
09B1 ; Cn # <reserved-09B1>
09B3..09B5 ; Cn # [3] <reserved-09B3>..<reserved-09B5>
09BA..09BB ; Cn # [2] <reserved-09BA>..<reserved-09BB>
09C5..09C6 ; Cn # [2] <reserved-09C5>..<reserved-09C6>
09C9..09CA ; Cn # [2] <reserved-09C9>..<reserved-09CA>
09CF..09D6 ; Cn # [8] <reserved-09CF>..<reserved-09D6>
09D8..09DB ; Cn # [4] <reserved-09D8>..<reserved-09DB>
09DE ; Cn # <reserved-09DE>
09E4..09E5 ; Cn # [2] <reserved-09E4>..<reserved-09E5>
09FF..0A00 ; Cn # [2] <reserved-09FF>..<reserved-0A00>
0A04 ; Cn # <reserved-0A04>
0A0B..0A0E ; Cn # [4] <reserved-0A0B>..<reserved-0A0E>
0A11..0A12 ; Cn # [2] <reserved-0A11>..<reserved-0A12>
0A29 ; Cn # <reserved-0A29>
0A31 ; Cn # <reserved-0A31>
0A34 ; Cn # <reserved-0A34>
0A37 ; Cn # <reserved-0A37>
0A3A..0A3B ; Cn # [2] <reserved-0A3A>..<reserved-0A3B>
0A3D ; Cn # <reserved-0A3D>
0A43..0A46 ; Cn # [4] <reserved-0A43>..<reserved-0A46>
0A49..0A4A ; Cn # [2] <reserved-0A49>..<reserved-0A4A>
0A4E..0A50 ; Cn # [3] <reserved-0A4E>..<reserved-0A50>
0A52..0A58 ; Cn # [7] <reserved-0A52>..<reserved-0A58>
0A5D ; Cn # <reserved-0A5D>
0A5F..0A65 ; Cn # [7] <reserved-0A5F>..<reserved-0A65>
0A77..0A80 ; Cn # [10] <reserved-0A77>..<reserved-0A80>
0A84 ; Cn # <reserved-0A84>
0A8E ; Cn # <reserved-0A8E>
0A92 ; Cn # <reserved-0A92>
0AA9 ; Cn # <reserved-0AA9>
0AB1 ; Cn # <reserved-0AB1>
0AB4 ; Cn # <reserved-0AB4>
0ABA..0ABB ; Cn # [2] <reserved-0ABA>..<reserved-0ABB>
0AC6 ; Cn # <reserved-0AC6>
0ACA ; Cn # <reserved-0ACA>
0ACE..0ACF ; Cn # [2] <reserved-0ACE>..<reserved-0ACF>
0AD1..0ADF ; Cn # [15] <reserved-0AD1>..<reserved-0ADF>
0AE4..0AE5 ; Cn # [2] <reserved-0AE4>..<reserved-0AE5>
0AF2..0AF8 ; Cn # [7] <reserved-0AF2>..<reserved-0AF8>
0B00 ; Cn # <reserved-0B00>
0B04 ; Cn # <reserved-0B04>
0B0D..0B0E ; Cn # [2] <reserved-0B0D>..<reserved-0B0E>
0B11..0B12 ; Cn # [2] <reserved-0B11>..<reserved-0B12>
0B29 ; Cn # <reserved-0B29>
0B31 ; Cn # <reserved-0B31>
0B34 ; Cn # <reserved-0B34>
0B3A..0B3B ; Cn # [2] <reserved-0B3A>..<reserved-0B3B>
0B45..0B46 ; Cn # [2] <reserved-0B45>..<reserved-0B46>
0B49..0B4A ; Cn # [2] <reserved-0B49>..<reserved-0B4A>
0B4E..0B54 ; Cn # [7] <reserved-0B4E>..<reserved-0B54>
0B58..0B5B ; Cn # [4] <reserved-0B58>..<reserved-0B5B>
0B5E ; Cn # <reserved-0B5E>
0B64..0B65 ; Cn # [2] <reserved-0B64>..<reserved-0B65>
0B78..0B81 ; Cn # [10] <reserved-0B78>..<reserved-0B81>
0B84 ; Cn # <reserved-0B84>
0B8B..0B8D ; Cn # [3] <reserved-0B8B>..<reserved-0B8D>
0B91 ; Cn # <reserved-0B91>
0B96..0B98 ; Cn # [3] <reserved-0B96>..<reserved-0B98>
0B9B ; Cn # <reserved-0B9B>
0B9D ; Cn # <reserved-0B9D>
0BA0..0BA2 ; Cn # [3] <reserved-0BA0>..<reserved-0BA2>
0BA5..0BA7 ; Cn # [3] <reserved-0BA5>..<reserved-0BA7>
0BAB..0BAD ; Cn # [3] <reserved-0BAB>..<reserved-0BAD>
0BBA..0BBD ; Cn # [4] <reserved-0BBA>..<reserved-0BBD>
0BC3..0BC5 ; Cn # [3] <reserved-0BC3>..<reserved-0BC5>
0BC9 ; Cn # <reserved-0BC9>
0BCE..0BCF ; Cn # [2] <reserved-0BCE>..<reserved-0BCF>
0BD1..0BD6 ; Cn # [6] <reserved-0BD1>..<reserved-0BD6>
0BD8..0BE5 ; Cn # [14] <reserved-0BD8>..<reserved-0BE5>
0BFB..0BFF ; Cn # [5] <reserved-0BFB>..<reserved-0BFF>
0C0D ; Cn # <reserved-0C0D>
0C11 ; Cn # <reserved-0C11>
0C29 ; Cn # <reserved-0C29>
0C3A..0C3B ; Cn # [2] <reserved-0C3A>..<reserved-0C3B>
0C45 ; Cn # <reserved-0C45>
0C49 ; Cn # <reserved-0C49>
0C4E..0C54 ; Cn # [7] <reserved-0C4E>..<reserved-0C54>
0C57 ; Cn # <reserved-0C57>
0C5B ; Cn # <reserved-0C5B>
0C5E..0C5F ; Cn # [2] <reserved-0C5E>..<reserved-0C5F>
0C64..0C65 ; Cn # [2] <reserved-0C64>..<reserved-0C65>
0C70..0C76 ; Cn # [7] <reserved-0C70>..<reserved-0C76>
0C8D ; Cn # <reserved-0C8D>
0C91 ; Cn # <reserved-0C91>
0CA9 ; Cn # <reserved-0CA9>
0CB4 ; Cn # <reserved-0CB4>
0CBA..0CBB ; Cn # [2] <reserved-0CBA>..<reserved-0CBB>
0CC5 ; Cn # <reserved-0CC5>
0CC9 ; Cn # <reserved-0CC9>
0CCE..0CD4 ; Cn # [7] <reserved-0CCE>..<reserved-0CD4>
0CD7..0CDB ; Cn # [5] <reserved-0CD7>..<reserved-0CDB>
0CDF ; Cn # <reserved-0CDF>
0CE4..0CE5 ; Cn # [2] <reserved-0CE4>..<reserved-0CE5>
0CF0 ; Cn # <reserved-0CF0>
0CF4..0CFF ; Cn # [12] <reserved-0CF4>..<reserved-0CFF>
0D0D ; Cn # <reserved-0D0D>
0D11 ; Cn # <reserved-0D11>
0D45 ; Cn # <reserved-0D45>
0D49 ; Cn # <reserved-0D49>
0D50..0D53 ; Cn # [4] <reserved-0D50>..<reserved-0D53>
0D64..0D65 ; Cn # [2] <reserved-0D64>..<reserved-0D65>
0D80 ; Cn # <reserved-0D80>
0D84 ; Cn # <reserved-0D84>
0D97..0D99 ; Cn # [3] <reserved-0D97>..<reserved-0D99>
0DB2 ; Cn # <reserved-0DB2>
0DBC ; Cn # <reserved-0DBC>
0DBE..0DBF ; Cn # [2] <reserved-0DBE>..<reserved-0DBF>
0DC7..0DC9 ; Cn # [3] <reserved-0DC7>..<reserved-0DC9>
0DCB..0DCE ; Cn # [4] <reserved-0DCB>..<reserved-0DCE>
0DD5 ; Cn # <reserved-0DD5>
0DD7 ; Cn # <reserved-0DD7>
0DE0..0DE5 ; Cn # [6] <reserved-0DE0>..<reserved-0DE5>
0DF0..0DF1 ; Cn # [2] <reserved-0DF0>..<reserved-0DF1>
0DF5..0E00 ; Cn # [12] <reserved-0DF5>..<reserved-0E00>
0E3B..0E3E ; Cn # [4] <reserved-0E3B>..<reserved-0E3E>
0E5C..0E80 ; Cn # [37] <reserved-0E5C>..<reserved-0E80>
0E83 ; Cn # <reserved-0E83>
0E85 ; Cn # <reserved-0E85>
0E8B ; Cn # <reserved-0E8B>
0EA4 ; Cn # <reserved-0EA4>
0EA6 ; Cn # <reserved-0EA6>
0EBE..0EBF ; Cn # [2] <reserved-0EBE>..<reserved-0EBF>
0EC5 ; Cn # <reserved-0EC5>
0EC7 ; Cn # <reserved-0EC7>
0ECF ; Cn # <reserved-0ECF>
0EDA..0EDB ; Cn # [2] <reserved-0EDA>..<reserved-0EDB>
0EE0..0EFF ; Cn # [32] <reserved-0EE0>..<reserved-0EFF>
0F48 ; Cn # <reserved-0F48>
0F6D..0F70 ; Cn # [4] <reserved-0F6D>..<reserved-0F70>
0F98 ; Cn # <reserved-0F98>
0FBD ; Cn # <reserved-0FBD>
0FCD ; Cn # <reserved-0FCD>
0FDB..0FFF ; Cn # [37] <reserved-0FDB>..<reserved-0FFF>
10C6 ; Cn # <reserved-10C6>
10C8..10CC ; Cn # [5] <reserved-10C8>..<reserved-10CC>
10CE..10CF ; Cn # [2] <reserved-10CE>..<reserved-10CF>
1249 ; Cn # <reserved-1249>
124E..124F ; Cn # [2] <reserved-124E>..<reserved-124F>
1257 ; Cn # <reserved-1257>
1259 ; Cn # <reserved-1259>
125E..125F ; Cn # [2] <reserved-125E>..<reserved-125F>
1289 ; Cn # <reserved-1289>
128E..128F ; Cn # [2] <reserved-128E>..<reserved-128F>
12B1 ; Cn # <reserved-12B1>
12B6..12B7 ; Cn # [2] <reserved-12B6>..<reserved-12B7>
12BF ; Cn # <reserved-12BF>
12C1 ; Cn # <reserved-12C1>
12C6..12C7 ; Cn # [2] <reserved-12C6>..<reserved-12C7>
12D7 ; Cn # <reserved-12D7>
1311 ; Cn # <reserved-1311>
1316..1317 ; Cn # [2] <reserved-1316>..<reserved-1317>
135B..135C ; Cn # [2] <reserved-135B>..<reserved-135C>
137D..137F ; Cn # [3] <reserved-137D>..<reserved-137F>
139A..139F ; Cn # [6] <reserved-139A>..<reserved-139F>
13F6..13F7 ; Cn # [2] <reserved-13F6>..<reserved-13F7>
13FE..13FF ; Cn # [2] <reserved-13FE>..<reserved-13FF>
169D..169F ; Cn # [3] <reserved-169D>..<reserved-169F>
16F9..16FF ; Cn # [7] <reserved-16F9>..<reserved-16FF>
1716..171E ; Cn # [9] <reserved-1716>..<reserved-171E>
1737..173F ; Cn # [9] <reserved-1737>..<reserved-173F>
1754..175F ; Cn # [12] <reserved-1754>..<reserved-175F>
176D ; Cn # <reserved-176D>
1771 ; Cn # <reserved-1771>
1774..177F ; Cn # [12] <reserved-1774>..<reserved-177F>
17DE..17DF ; Cn # [2] <reserved-17DE>..<reserved-17DF>
17EA..17EF ; Cn # [6] <reserved-17EA>..<reserved-17EF>
17FA..17FF ; Cn # [6] <reserved-17FA>..<reserved-17FF>
181A..181F ; Cn # [6] <reserved-181A>..<reserved-181F>
1879..187F ; Cn # [7] <reserved-1879>..<reserved-187F>
18AB..18AF ; Cn # [5] <reserved-18AB>..<reserved-18AF>
18F6..18FF ; Cn # [10] <reserved-18F6>..<reserved-18FF>
191F ; Cn # <reserved-191F>
192C..192F ; Cn # [4] <reserved-192C>..<reserved-192F>
193C..193F ; Cn # [4] <reserved-193C>..<reserved-193F>
1941..1943 ; Cn # [3] <reserved-1941>..<reserved-1943>
196E..196F ; Cn # [2] <reserved-196E>..<reserved-196F>
1975..197F ; Cn # [11] <reserved-1975>..<reserved-197F>
19AC..19AF ; Cn # [4] <reserved-19AC>..<reserved-19AF>
19CA..19CF ; Cn # [6] <reserved-19CA>..<reserved-19CF>
19DB..19DD ; Cn # [3] <reserved-19DB>..<reserved-19DD>
1A1C..1A1D ; Cn # [2] <reserved-1A1C>..<reserved-1A1D>
1A5F ; Cn # <reserved-1A5F>
1A7D..1A7E ; Cn # [2] <reserved-1A7D>..<reserved-1A7E>
1A8A..1A8F ; Cn # [6] <reserved-1A8A>..<reserved-1A8F>
1A9A..1A9F ; Cn # [6] <reserved-1A9A>..<reserved-1A9F>
1AAE..1AAF ; Cn # [2] <reserved-1AAE>..<reserved-1AAF>
1ADE..1ADF ; Cn # [2] <reserved-1ADE>..<reserved-1ADF>
1AEC..1AFF ; Cn # [20] <reserved-1AEC>..<reserved-1AFF>
1B4D ; Cn # <reserved-1B4D>
1BF4..1BFB ; Cn # [8] <reserved-1BF4>..<reserved-1BFB>
1C38..1C3A ; Cn # [3] <reserved-1C38>..<reserved-1C3A>
1C4A..1C4C ; Cn # [3] <reserved-1C4A>..<reserved-1C4C>
1C8B..1C8F ; Cn # [5] <reserved-1C8B>..<reserved-1C8F>
1CBB..1CBC ; Cn # [2] <reserved-1CBB>..<reserved-1CBC>
1CC8..1CCF ; Cn # [8] <reserved-1CC8>..<reserved-1CCF>
1CFB..1CFF ; Cn # [5] <reserved-1CFB>..<reserved-1CFF>
1F16..1F17 ; Cn # [2] <reserved-1F16>..<reserved-1F17>
1F1E..1F1F ; Cn # [2] <reserved-1F1E>..<reserved-1F1F>
1F46..1F47 ; Cn # [2] <reserved-1F46>..<reserved-1F47>
1F4E..1F4F ; Cn # [2] <reserved-1F4E>..<reserved-1F4F>
1F58 ; Cn # <reserved-1F58>
1F5A ; Cn # <reserved-1F5A>
1F5C ; Cn # <reserved-1F5C>
1F5E ; Cn # <reserved-1F5E>
1F7E..1F7F ; Cn # [2] <reserved-1F7E>..<reserved-1F7F>
1FB5 ; Cn # <reserved-1FB5>
1FC5 ; Cn # <reserved-1FC5>
1FD4..1FD5 ; Cn # [2] <reserved-1FD4>..<reserved-1FD5>
1FDC ; Cn # <reserved-1FDC>
1FF0..1FF1 ; Cn # [2] <reserved-1FF0>..<reserved-1FF1>
1FF5 ; Cn # <reserved-1FF5>
1FFF ; Cn # <reserved-1FFF>
2065 ; Cn # <reserved-2065>
2072..2073 ; Cn # [2] <reserved-2072>..<reserved-2073>
208F ; Cn # <reserved-208F>
209D..209F ; Cn # [3] <reserved-209D>..<reserved-209F>
20C2..20CF ; Cn # [14] <reserved-20C2>..<reserved-20CF>
20F1..20FF ; Cn # [15] <reserved-20F1>..<reserved-20FF>
218C..218F ; Cn # [4] <reserved-218C>..<reserved-218F>
242A..243F ; Cn # [22] <reserved-242A>..<reserved-243F>
244B..245F ; Cn # [21] <reserved-244B>..<reserved-245F>
2B74..2B75 ; Cn # [2] <reserved-2B74>..<reserved-2B75>
2CF4..2CF8 ; Cn # [5] <reserved-2CF4>..<reserved-2CF8>
2D26 ; Cn # <reserved-2D26>
2D28..2D2C ; Cn # [5] <reserved-2D28>..<reserved-2D2C>
2D2E..2D2F ; Cn # [2] <reserved-2D2E>..<reserved-2D2F>
2D68..2D6E ; Cn # [7] <reserved-2D68>..<reserved-2D6E>
2D71..2D7E ; Cn # [14] <reserved-2D71>..<reserved-2D7E>
2D97..2D9F ; Cn # [9] <reserved-2D97>..<reserved-2D9F>
2DA7 ; Cn # <reserved-2DA7>
2DAF ; Cn # <reserved-2DAF>
2DB7 ; Cn # <reserved-2DB7>
2DBF ; Cn # <reserved-2DBF>
2DC7 ; Cn # <reserved-2DC7>
2DCF ; Cn # <reserved-2DCF>
2DD7 ; Cn # <reserved-2DD7>
2DDF ; Cn # <reserved-2DDF>
2E5E..2E7F ; Cn # [34] <reserved-2E5E>..<reserved-2E7F>
2E9A ; Cn # <reserved-2E9A>
2EF4..2EFF ; Cn # [12] <reserved-2EF4>..<reserved-2EFF>
2FD6..2FEF ; Cn # [26] <reserved-2FD6>..<reserved-2FEF>
3040 ; Cn # <reserved-3040>
3097..3098 ; Cn # [2] <reserved-3097>..<reserved-3098>
3100..3104 ; Cn # [5] <reserved-3100>..<reserved-3104>
3130 ; Cn # <reserved-3130>
318F ; Cn # <reserved-318F>
31E6..31EE ; Cn # [9] <reserved-31E6>..<reserved-31EE>
321F ; Cn # <reserved-321F>
A48D..A48F ; Cn # [3] <reserved-A48D>..<reserved-A48F>
A4C7..A4CF ; Cn # [9] <reserved-A4C7>..<reserved-A4CF>
A62C..A63F ; Cn # [20] <reserved-A62C>..<reserved-A63F>
A6F8..A6FF ; Cn # [8] <reserved-A6F8>..<reserved-A6FF>
A7DD..A7F0 ; Cn # [20] <reserved-A7DD>..<reserved-A7F0>
A82D..A82F ; Cn # [3] <reserved-A82D>..<reserved-A82F>
A83A..A83F ; Cn # [6] <reserved-A83A>..<reserved-A83F>
A878..A87F ; Cn # [8] <reserved-A878>..<reserved-A87F>
A8C6..A8CD ; Cn # [8] <reserved-A8C6>..<reserved-A8CD>
A8DA..A8DF ; Cn # [6] <reserved-A8DA>..<reserved-A8DF>
A954..A95E ; Cn # [11] <reserved-A954>..<reserved-A95E>
A97D..A97F ; Cn # [3] <reserved-A97D>..<reserved-A97F>
A9CE ; Cn # <reserved-A9CE>
A9DA..A9DD ; Cn # [4] <reserved-A9DA>..<reserved-A9DD>
A9FF ; Cn # <reserved-A9FF>
AA37..AA3F ; Cn # [9] <reserved-AA37>..<reserved-AA3F>
AA4E..AA4F ; Cn # [2] <reserved-AA4E>..<reserved-AA4F>
AA5A..AA5B ; Cn # [2] <reserved-AA5A>..<reserved-AA5B>
AAC3..AADA ; Cn # [24] <reserved-AAC3>..<reserved-AADA>
AAF7..AB00 ; Cn # [10] <reserved-AAF7>..<reserved-AB00>
AB07..AB08 ; Cn # [2] <reserved-AB07>..<reserved-AB08>
AB0F..AB10 ; Cn # [2] <reserved-AB0F>..<reserved-AB10>
AB17..AB1F ; Cn # [9] <reserved-AB17>..<reserved-AB1F>
AB27 ; Cn # <reserved-AB27>
AB2F ; Cn # <reserved-AB2F>
AB6C..AB6F ; Cn # [4] <reserved-AB6C>..<reserved-AB6F>
ABEE..ABEF ; Cn # [2] <reserved-ABEE>..<reserved-ABEF>
ABFA..ABFF ; Cn # [6] <reserved-ABFA>..<reserved-ABFF>
D7A4..D7AF ; Cn # [12] <reserved-D7A4>..<reserved-D7AF>
D7C7..D7CA ; Cn # [4] <reserved-D7C7>..<reserved-D7CA>
D7FC..D7FF ; Cn # [4] <reserved-D7FC>..<reserved-D7FF>
FA6E..FA6F ; Cn # [2] <reserved-FA6E>..<reserved-FA6F>
FADA..FAFF ; Cn # [38] <reserved-FADA>..<reserved-FAFF>
FB07..FB12 ; Cn # [12] <reserved-FB07>..<reserved-FB12>
FB18..FB1C ; Cn # [5] <reserved-FB18>..<reserved-FB1C>
FB37 ; Cn # <reserved-FB37>
FB3D ; Cn # <reserved-FB3D>
FB3F ; Cn # <reserved-FB3F>
FB42 ; Cn # <reserved-FB42>
FB45 ; Cn # <reserved-FB45>
FDD0..FDEF ; Cn # [32] <noncharacter-FDD0>..<noncharacter-FDEF>
FE1A..FE1F ; Cn # [6] <reserved-FE1A>..<reserved-FE1F>
FE53 ; Cn # <reserved-FE53>
FE67 ; Cn # <reserved-FE67>
FE6C..FE6F ; Cn # [4] <reserved-FE6C>..<reserved-FE6F>
FE75 ; Cn # <reserved-FE75>
FEFD..FEFE ; Cn # [2] <reserved-FEFD>..<reserved-FEFE>
FF00 ; Cn # <reserved-FF00>
FFBF..FFC1 ; Cn # [3] <reserved-FFBF>..<reserved-FFC1>
FFC8..FFC9 ; Cn # [2] <reserved-FFC8>..<reserved-FFC9>
FFD0..FFD1 ; Cn # [2] <reserved-FFD0>..<reserved-FFD1>
FFD8..FFD9 ; Cn # [2] <reserved-FFD8>..<reserved-FFD9>
FFDD..FFDF ; Cn # [3] <reserved-FFDD>..<reserved-FFDF>
FFE7 ; Cn # <reserved-FFE7>
FFEF..FFF8 ; Cn # [10] <reserved-FFEF>..<reserved-FFF8>
FFFE..FFFF ; Cn # [2] <noncharacter-FFFE>..<noncharacter-FFFF>
1000C ; Cn # <reserved-1000C>
10027 ; Cn # <reserved-10027>
1003B ; Cn # <reserved-1003B>
1003E ; Cn # <reserved-1003E>
1004E..1004F ; Cn # [2] <reserved-1004E>..<reserved-1004F>
1005E..1007F ; Cn # [34] <reserved-1005E>..<reserved-1007F>
100FB..100FF ; Cn # [5] <reserved-100FB>..<reserved-100FF>
10103..10106 ; Cn # [4] <reserved-10103>..<reserved-10106>
10134..10136 ; Cn # [3] <reserved-10134>..<reserved-10136>
1018F ; Cn # <reserved-1018F>
1019D..1019F ; Cn # [3] <reserved-1019D>..<reserved-1019F>
101A1..101CF ; Cn # [47] <reserved-101A1>..<reserved-101CF>
101FE..1027F ; Cn # [130] <reserved-101FE>..<reserved-1027F>
1029D..1029F ; Cn # [3] <reserved-1029D>..<reserved-1029F>
102D1..102DF ; Cn # [15] <reserved-102D1>..<reserved-102DF>
102FC..102FF ; Cn # [4] <reserved-102FC>..<reserved-102FF>
10324..1032C ; Cn # [9] <reserved-10324>..<reserved-1032C>
1034B..1034F ; Cn # [5] <reserved-1034B>..<reserved-1034F>
1037B..1037F ; Cn # [5] <reserved-1037B>..<reserved-1037F>
1039E ; Cn # <reserved-1039E>
103C4..103C7 ; Cn # [4] <reserved-103C4>..<reserved-103C7>
103D6..103FF ; Cn # [42] <reserved-103D6>..<reserved-103FF>
1049E..1049F ; Cn # [2] <reserved-1049E>..<reserved-1049F>
104AA..104AF ; Cn # [6] <reserved-104AA>..<reserved-104AF>
104D4..104D7 ; Cn # [4] <reserved-104D4>..<reserved-104D7>
104FC..104FF ; Cn # [4] <reserved-104FC>..<reserved-104FF>
10528..1052F ; Cn # [8] <reserved-10528>..<reserved-1052F>
10564..1056E ; Cn # [11] <reserved-10564>..<reserved-1056E>
1057B ; Cn # <reserved-1057B>
1058B ; Cn # <reserved-1058B>
10593 ; Cn # <reserved-10593>
10596 ; Cn # <reserved-10596>
105A2 ; Cn # <reserved-105A2>
105B2 ; Cn # <reserved-105B2>
105BA ; Cn # <reserved-105BA>
105BD..105BF ; Cn # [3] <reserved-105BD>..<reserved-105BF>
105F4..105FF ; Cn # [12] <reserved-105F4>..<reserved-105FF>
10737..1073F ; Cn # [9] <reserved-10737>..<reserved-1073F>
10756..1075F ; Cn # [10] <reserved-10756>..<reserved-1075F>
10768..1077F ; Cn # [24] <reserved-10768>..<reserved-1077F>
10786 ; Cn # <reserved-10786>
107B1 ; Cn # <reserved-107B1>
107BB..107FF ; Cn # [69] <reserved-107BB>..<reserved-107FF>
10806..10807 ; Cn # [2] <reserved-10806>..<reserved-10807>
10809 ; Cn # <reserved-10809>
10836 ; Cn # <reserved-10836>
10839..1083B ; Cn # [3] <reserved-10839>..<reserved-1083B>
1083D..1083E ; Cn # [2] <reserved-1083D>..<reserved-1083E>
10856 ; Cn # <reserved-10856>
1089F..108A6 ; Cn # [8] <reserved-1089F>..<reserved-108A6>
108B0..108DF ; Cn # [48] <reserved-108B0>..<reserved-108DF>
108F3 ; Cn # <reserved-108F3>
108F6..108FA ; Cn # [5] <reserved-108F6>..<reserved-108FA>
1091C..1091E ; Cn # [3] <reserved-1091C>..<reserved-1091E>
1093A..1093E ; Cn # [5] <reserved-1093A>..<reserved-1093E>
1095A..1097F ; Cn # [38] <reserved-1095A>..<reserved-1097F>
109B8..109BB ; Cn # [4] <reserved-109B8>..<reserved-109BB>
109D0..109D1 ; Cn # [2] <reserved-109D0>..<reserved-109D1>
10A04 ; Cn # <reserved-10A04>
10A07..10A0B ; Cn # [5] <reserved-10A07>..<reserved-10A0B>
10A14 ; Cn # <reserved-10A14>
10A18 ; Cn # <reserved-10A18>
10A36..10A37 ; Cn # [2] <reserved-10A36>..<reserved-10A37>
10A3B..10A3E ; Cn # [4] <reserved-10A3B>..<reserved-10A3E>
10A49..10A4F ; Cn # [7] <reserved-10A49>..<reserved-10A4F>
10A59..10A5F ; Cn # [7] <reserved-10A59>..<reserved-10A5F>
10AA0..10ABF ; Cn # [32] <reserved-10AA0>..<reserved-10ABF>
10AE7..10AEA ; Cn # [4] <reserved-10AE7>..<reserved-10AEA>
10AF7..10AFF ; Cn # [9] <reserved-10AF7>..<reserved-10AFF>
10B36..10B38 ; Cn # [3] <reserved-10B36>..<reserved-10B38>
10B56..10B57 ; Cn # [2] <reserved-10B56>..<reserved-10B57>
10B73..10B77 ; Cn # [5] <reserved-10B73>..<reserved-10B77>
10B92..10B98 ; Cn # [7] <reserved-10B92>..<reserved-10B98>
10B9D..10BA8 ; Cn # [12] <reserved-10B9D>..<reserved-10BA8>
10BB0..10BFF ; Cn # [80] <reserved-10BB0>..<reserved-10BFF>
10C49..10C7F ; Cn # [55] <reserved-10C49>..<reserved-10C7F>
10CB3..10CBF ; Cn # [13] <reserved-10CB3>..<reserved-10CBF>
10CF3..10CF9 ; Cn # [7] <reserved-10CF3>..<reserved-10CF9>
10D28..10D2F ; Cn # [8] <reserved-10D28>..<reserved-10D2F>
10D3A..10D3F ; Cn # [6] <reserved-10D3A>..<reserved-10D3F>
10D66..10D68 ; Cn # [3] <reserved-10D66>..<reserved-10D68>
10D86..10D8D ; Cn # [8] <reserved-10D86>..<reserved-10D8D>
10D90..10E5F ; Cn # [208] <reserved-10D90>..<reserved-10E5F>
10E7F ; Cn # <reserved-10E7F>
10EAA ; Cn # <reserved-10EAA>
10EAE..10EAF ; Cn # [2] <reserved-10EAE>..<reserved-10EAF>
10EB2..10EC1 ; Cn # [16] <reserved-10EB2>..<reserved-10EC1>
10EC8..10ECF ; Cn # [8] <reserved-10EC8>..<reserved-10ECF>
10ED9..10EF9 ; Cn # [33] <reserved-10ED9>..<reserved-10EF9>
10F28..10F2F ; Cn # [8] <reserved-10F28>..<reserved-10F2F>
10F5A..10F6F ; Cn # [22] <reserved-10F5A>..<reserved-10F6F>
10F8A..10FAF ; Cn # [38] <reserved-10F8A>..<reserved-10FAF>
10FCC..10FDF ; Cn # [20] <reserved-10FCC>..<reserved-10FDF>
10FF7..10FFF ; Cn # [9] <reserved-10FF7>..<reserved-10FFF>
1104E..11051 ; Cn # [4] <reserved-1104E>..<reserved-11051>
11076..1107E ; Cn # [9] <reserved-11076>..<reserved-1107E>
110C3..110CC ; Cn # [10] <reserved-110C3>..<reserved-110CC>
110CE..110CF ; Cn # [2] <reserved-110CE>..<reserved-110CF>
110E9..110EF ; Cn # [7] <reserved-110E9>..<reserved-110EF>
110FA..110FF ; Cn # [6] <reserved-110FA>..<reserved-110FF>
11135 ; Cn # <reserved-11135>
11148..1114F ; Cn # [8] <reserved-11148>..<reserved-1114F>
11177..1117F ; Cn # [9] <reserved-11177>..<reserved-1117F>
111E0 ; Cn # <reserved-111E0>
111F5..111FF ; Cn # [11] <reserved-111F5>..<reserved-111FF>
11212 ; Cn # <reserved-11212>
11242..1127F ; Cn # [62] <reserved-11242>..<reserved-1127F>
11287 ; Cn # <reserved-11287>
11289 ; Cn # <reserved-11289>
1128E ; Cn # <reserved-1128E>
1129E ; Cn # <reserved-1129E>
112AA..112AF ; Cn # [6] <reserved-112AA>..<reserved-112AF>
112EB..112EF ; Cn # [5] <reserved-112EB>..<reserved-112EF>
112FA..112FF ; Cn # [6] <reserved-112FA>..<reserved-112FF>
11304 ; Cn # <reserved-11304>
1130D..1130E ; Cn # [2] <reserved-1130D>..<reserved-1130E>
11311..11312 ; Cn # [2] <reserved-11311>..<reserved-11312>
11329 ; Cn # <reserved-11329>
11331 ; Cn # <reserved-11331>
11334 ; Cn # <reserved-11334>
1133A ; Cn # <reserved-1133A>
11345..11346 ; Cn # [2] <reserved-11345>..<reserved-11346>
11349..1134A ; Cn # [2] <reserved-11349>..<reserved-1134A>
1134E..1134F ; Cn # [2] <reserved-1134E>..<reserved-1134F>
11351..11356 ; Cn # [6] <reserved-11351>..<reserved-11356>
11358..1135C ; Cn # [5] <reserved-11358>..<reserved-1135C>
11364..11365 ; Cn # [2] <reserved-11364>..<reserved-11365>
1136D..1136F ; Cn # [3] <reserved-1136D>..<reserved-1136F>
11375..1137F ; Cn # [11] <reserved-11375>..<reserved-1137F>
1138A ; Cn # <reserved-1138A>
1138C..1138D ; Cn # [2] <reserved-1138C>..<reserved-1138D>
1138F ; Cn # <reserved-1138F>
113B6 ; Cn # <reserved-113B6>
113C1 ; Cn # <reserved-113C1>
113C3..113C4 ; Cn # [2] <reserved-113C3>..<reserved-113C4>
113C6 ; Cn # <reserved-113C6>
113CB ; Cn # <reserved-113CB>
113D6 ; Cn # <reserved-113D6>
113D9..113E0 ; Cn # [8] <reserved-113D9>..<reserved-113E0>
113E3..113FF ; Cn # [29] <reserved-113E3>..<reserved-113FF>
1145C ; Cn # <reserved-1145C>
11462..1147F ; Cn # [30] <reserved-11462>..<reserved-1147F>
114C8..114CF ; Cn # [8] <reserved-114C8>..<reserved-114CF>
114DA..1157F ; Cn # [166] <reserved-114DA>..<reserved-1157F>
115B6..115B7 ; Cn # [2] <reserved-115B6>..<reserved-115B7>
115DE..115FF ; Cn # [34] <reserved-115DE>..<reserved-115FF>
11645..1164F ; Cn # [11] <reserved-11645>..<reserved-1164F>
1165A..1165F ; Cn # [6] <reserved-1165A>..<reserved-1165F>
1166D..1167F ; Cn # [19] <reserved-1166D>..<reserved-1167F>
116BA..116BF ; Cn # [6] <reserved-116BA>..<reserved-116BF>
116CA..116CF ; Cn # [6] <reserved-116CA>..<reserved-116CF>
116E4..116FF ; Cn # [28] <reserved-116E4>..<reserved-116FF>
1171B..1171C ; Cn # [2] <reserved-1171B>..<reserved-1171C>
1172C..1172F ; Cn # [4] <reserved-1172C>..<reserved-1172F>
11747..117FF ; Cn # [185] <reserved-11747>..<reserved-117FF>
1183C..1189F ; Cn # [100] <reserved-1183C>..<reserved-1189F>
118F3..118FE ; Cn # [12] <reserved-118F3>..<reserved-118FE>
11907..11908 ; Cn # [2] <reserved-11907>..<reserved-11908>
1190A..1190B ; Cn # [2] <reserved-1190A>..<reserved-1190B>
11914 ; Cn # <reserved-11914>
11917 ; Cn # <reserved-11917>
11936 ; Cn # <reserved-11936>
11939..1193A ; Cn # [2] <reserved-11939>..<reserved-1193A>
11947..1194F ; Cn # [9] <reserved-11947>..<reserved-1194F>
1195A..1199F ; Cn # [70] <reserved-1195A>..<reserved-1199F>
119A8..119A9 ; Cn # [2] <reserved-119A8>..<reserved-119A9>
119D8..119D9 ; Cn # [2] <reserved-119D8>..<reserved-119D9>
119E5..119FF ; Cn # [27] <reserved-119E5>..<reserved-119FF>
11A48..11A4F ; Cn # [8] <reserved-11A48>..<reserved-11A4F>
11AA3..11AAF ; Cn # [13] <reserved-11AA3>..<reserved-11AAF>
11AF9..11AFF ; Cn # [7] <reserved-11AF9>..<reserved-11AFF>
11B0A..11B5F ; Cn # [86] <reserved-11B0A>..<reserved-11B5F>
11B68..11BBF ; Cn # [88] <reserved-11B68>..<reserved-11BBF>
11BE2..11BEF ; Cn # [14] <reserved-11BE2>..<reserved-11BEF>
11BFA..11BFF ; Cn # [6] <reserved-11BFA>..<reserved-11BFF>
11C09 ; Cn # <reserved-11C09>
11C37 ; Cn # <reserved-11C37>
11C46..11C4F ; Cn # [10] <reserved-11C46>..<reserved-11C4F>
11C6D..11C6F ; Cn # [3] <reserved-11C6D>..<reserved-11C6F>
11C90..11C91 ; Cn # [2] <reserved-11C90>..<reserved-11C91>
11CA8 ; Cn # <reserved-11CA8>
11CB7..11CFF ; Cn # [73] <reserved-11CB7>..<reserved-11CFF>
11D07 ; Cn # <reserved-11D07>
11D0A ; Cn # <reserved-11D0A>
11D37..11D39 ; Cn # [3] <reserved-11D37>..<reserved-11D39>
11D3B ; Cn # <reserved-11D3B>
11D3E ; Cn # <reserved-11D3E>
11D48..11D4F ; Cn # [8] <reserved-11D48>..<reserved-11D4F>
11D5A..11D5F ; Cn # [6] <reserved-11D5A>..<reserved-11D5F>
11D66 ; Cn # <reserved-11D66>
11D69 ; Cn # <reserved-11D69>
11D8F ; Cn # <reserved-11D8F>
11D92 ; Cn # <reserved-11D92>
11D99..11D9F ; Cn # [7] <reserved-11D99>..<reserved-11D9F>
11DAA..11DAF ; Cn # [6] <reserved-11DAA>..<reserved-11DAF>
11DDC..11DDF ; Cn # [4] <reserved-11DDC>..<reserved-11DDF>
11DEA..11EDF ; Cn # [246] <reserved-11DEA>..<reserved-11EDF>
11EF9..11EFF ; Cn # [7] <reserved-11EF9>..<reserved-11EFF>
11F11 ; Cn # <reserved-11F11>
11F3B..11F3D ; Cn # [3] <reserved-11F3B>..<reserved-11F3D>
11F5B..11FAF ; Cn # [85] <reserved-11F5B>..<reserved-11FAF>
11FB1..11FBF ; Cn # [15] <reserved-11FB1>..<reserved-11FBF>
11FF2..11FFE ; Cn # [13] <reserved-11FF2>..<reserved-11FFE>
1239A..123FF ; Cn # [102] <reserved-1239A>..<reserved-123FF>
1246F ; Cn # <reserved-1246F>
12475..1247F ; Cn # [11] <reserved-12475>..<reserved-1247F>
12544..12F8F ; Cn # [2636] <reserved-12544>..<reserved-12F8F>
12FF3..12FFF ; Cn # [13] <reserved-12FF3>..<reserved-12FFF>
13456..1345F ; Cn # [10] <reserved-13456>..<reserved-1345F>
143FB..143FF ; Cn # [5] <reserved-143FB>..<reserved-143FF>
14647..160FF ; Cn # [6841] <reserved-14647>..<reserved-160FF>
1613A..167FF ; Cn # [1734] <reserved-1613A>..<reserved-167FF>
16A39..16A3F ; Cn # [7] <reserved-16A39>..<reserved-16A3F>
16A5F ; Cn # <reserved-16A5F>
16A6A..16A6D ; Cn # [4] <reserved-16A6A>..<reserved-16A6D>
16ABF ; Cn # <reserved-16ABF>
16ACA..16ACF ; Cn # [6] <reserved-16ACA>..<reserved-16ACF>
16AEE..16AEF ; Cn # [2] <reserved-16AEE>..<reserved-16AEF>
16AF6..16AFF ; Cn # [10] <reserved-16AF6>..<reserved-16AFF>
16B46..16B4F ; Cn # [10] <reserved-16B46>..<reserved-16B4F>
16B5A ; Cn # <reserved-16B5A>
16B62 ; Cn # <reserved-16B62>
16B78..16B7C ; Cn # [5] <reserved-16B78>..<reserved-16B7C>
16B90..16D3F ; Cn # [432] <reserved-16B90>..<reserved-16D3F>
16D7A..16E3F ; Cn # [198] <reserved-16D7A>..<reserved-16E3F>
16E9B..16E9F ; Cn # [5] <reserved-16E9B>..<reserved-16E9F>
16EB9..16EBA ; Cn # [2] <reserved-16EB9>..<reserved-16EBA>
16ED4..16EFF ; Cn # [44] <reserved-16ED4>..<reserved-16EFF>
16F4B..16F4E ; Cn # [4] <reserved-16F4B>..<reserved-16F4E>
16F88..16F8E ; Cn # [7] <reserved-16F88>..<reserved-16F8E>
16FA0..16FDF ; Cn # [64] <reserved-16FA0>..<reserved-16FDF>
16FE5..16FEF ; Cn # [11] <reserved-16FE5>..<reserved-16FEF>
16FF7..16FFF ; Cn # [9] <reserved-16FF7>..<reserved-16FFF>
18CD6..18CFE ; Cn # [41] <reserved-18CD6>..<reserved-18CFE>
18D1F..18D7F ; Cn # [97] <reserved-18D1F>..<reserved-18D7F>
18DF3..1AFEF ; Cn # [8701] <reserved-18DF3>..<reserved-1AFEF>
1AFF4 ; Cn # <reserved-1AFF4>
1AFFC ; Cn # <reserved-1AFFC>
1AFFF ; Cn # <reserved-1AFFF>
1B123..1B131 ; Cn # [15] <reserved-1B123>..<reserved-1B131>
1B133..1B14F ; Cn # [29] <reserved-1B133>..<reserved-1B14F>
1B153..1B154 ; Cn # [2] <reserved-1B153>..<reserved-1B154>
1B156..1B163 ; Cn # [14] <reserved-1B156>..<reserved-1B163>
1B168..1B16F ; Cn # [8] <reserved-1B168>..<reserved-1B16F>
1B2FC..1BBFF ; Cn # [2308] <reserved-1B2FC>..<reserved-1BBFF>
1BC6B..1BC6F ; Cn # [5] <reserved-1BC6B>..<reserved-1BC6F>
1BC7D..1BC7F ; Cn # [3] <reserved-1BC7D>..<reserved-1BC7F>
1BC89..1BC8F ; Cn # [7] <reserved-1BC89>..<reserved-1BC8F>
1BC9A..1BC9B ; Cn # [2] <reserved-1BC9A>..<reserved-1BC9B>
1BCA4..1CBFF ; Cn # [3932] <reserved-1BCA4>..<reserved-1CBFF>
1CCFD..1CCFF ; Cn # [3] <reserved-1CCFD>..<reserved-1CCFF>
1CEB4..1CEB9 ; Cn # [6] <reserved-1CEB4>..<reserved-1CEB9>
1CED1..1CEDF ; Cn # [15] <reserved-1CED1>..<reserved-1CEDF>
1CEF1..1CEFF ; Cn # [15] <reserved-1CEF1>..<reserved-1CEFF>
1CF2E..1CF2F ; Cn # [2] <reserved-1CF2E>..<reserved-1CF2F>
1CF47..1CF4F ; Cn # [9] <reserved-1CF47>..<reserved-1CF4F>
1CFC4..1CFFF ; Cn # [60] <reserved-1CFC4>..<reserved-1CFFF>
1D0F6..1D0FF ; Cn # [10] <reserved-1D0F6>..<reserved-1D0FF>
1D127..1D128 ; Cn # [2] <reserved-1D127>..<reserved-1D128>
1D1EB..1D1FF ; Cn # [21] <reserved-1D1EB>..<reserved-1D1FF>
1D246..1D2BF ; Cn # [122] <reserved-1D246>..<reserved-1D2BF>
1D2D4..1D2DF ; Cn # [12] <reserved-1D2D4>..<reserved-1D2DF>
1D2F4..1D2FF ; Cn # [12] <reserved-1D2F4>..<reserved-1D2FF>
1D357..1D35F ; Cn # [9] <reserved-1D357>..<reserved-1D35F>
1D379..1D3FF ; Cn # [135] <reserved-1D379>..<reserved-1D3FF>
1D455 ; Cn # <reserved-1D455>
1D49D ; Cn # <reserved-1D49D>
1D4A0..1D4A1 ; Cn # [2] <reserved-1D4A0>..<reserved-1D4A1>
1D4A3..1D4A4 ; Cn # [2] <reserved-1D4A3>..<reserved-1D4A4>
1D4A7..1D4A8 ; Cn # [2] <reserved-1D4A7>..<reserved-1D4A8>
1D4AD ; Cn # <reserved-1D4AD>
1D4BA ; Cn # <reserved-1D4BA>
1D4BC ; Cn # <reserved-1D4BC>
1D4C4 ; Cn # <reserved-1D4C4>
1D506 ; Cn # <reserved-1D506>
1D50B..1D50C ; Cn # [2] <reserved-1D50B>..<reserved-1D50C>
1D515 ; Cn # <reserved-1D515>
1D51D ; Cn # <reserved-1D51D>
1D53A ; Cn # <reserved-1D53A>
1D53F ; Cn # <reserved-1D53F>
1D545 ; Cn # <reserved-1D545>
1D547..1D549 ; Cn # [3] <reserved-1D547>..<reserved-1D549>
1D551 ; Cn # <reserved-1D551>
1D6A6..1D6A7 ; Cn # [2] <reserved-1D6A6>..<reserved-1D6A7>
1D7CC..1D7CD ; Cn # [2] <reserved-1D7CC>..<reserved-1D7CD>
1DA8C..1DA9A ; Cn # [15] <reserved-1DA8C>..<reserved-1DA9A>
1DAA0 ; Cn # <reserved-1DAA0>
1DAB0..1DEFF ; Cn # [1104] <reserved-1DAB0>..<reserved-1DEFF>
1DF1F..1DF24 ; Cn # [6] <reserved-1DF1F>..<reserved-1DF24>
1DF2B..1DFFF ; Cn # [213] <reserved-1DF2B>..<reserved-1DFFF>
1E007 ; Cn # <reserved-1E007>
1E019..1E01A ; Cn # [2] <reserved-1E019>..<reserved-1E01A>
1E022 ; Cn # <reserved-1E022>
1E025 ; Cn # <reserved-1E025>
1E02B..1E02F ; Cn # [5] <reserved-1E02B>..<reserved-1E02F>
1E06E..1E08E ; Cn # [33] <reserved-1E06E>..<reserved-1E08E>
1E090..1E0FF ; Cn # [112] <reserved-1E090>..<reserved-1E0FF>
1E12D..1E12F ; Cn # [3] <reserved-1E12D>..<reserved-1E12F>
1E13E..1E13F ; Cn # [2] <reserved-1E13E>..<reserved-1E13F>
1E14A..1E14D ; Cn # [4] <reserved-1E14A>..<reserved-1E14D>
1E150..1E28F ; Cn # [320] <reserved-1E150>..<reserved-1E28F>
1E2AF..1E2BF ; Cn # [17] <reserved-1E2AF>..<reserved-1E2BF>
1E2FA..1E2FE ; Cn # [5] <reserved-1E2FA>..<reserved-1E2FE>
1E300..1E4CF ; Cn # [464] <reserved-1E300>..<reserved-1E4CF>
1E4FA..1E5CF ; Cn # [214] <reserved-1E4FA>..<reserved-1E5CF>
1E5FB..1E5FE ; Cn # [4] <reserved-1E5FB>..<reserved-1E5FE>
1E600..1E6BF ; Cn # [192] <reserved-1E600>..<reserved-1E6BF>
1E6DF ; Cn # <reserved-1E6DF>
1E6F6..1E6FD ; Cn # [8] <reserved-1E6F6>..<reserved-1E6FD>
1E700..1E7DF ; Cn # [224] <reserved-1E700>..<reserved-1E7DF>
1E7E7 ; Cn # <reserved-1E7E7>
1E7EC ; Cn # <reserved-1E7EC>
1E7EF ; Cn # <reserved-1E7EF>
1E7FF ; Cn # <reserved-1E7FF>
1E8C5..1E8C6 ; Cn # [2] <reserved-1E8C5>..<reserved-1E8C6>
1E8D7..1E8FF ; Cn # [41] <reserved-1E8D7>..<reserved-1E8FF>
1E94C..1E94F ; Cn # [4] <reserved-1E94C>..<reserved-1E94F>
1E95A..1E95D ; Cn # [4] <reserved-1E95A>..<reserved-1E95D>
1E960..1EC70 ; Cn # [785] <reserved-1E960>..<reserved-1EC70>
1ECB5..1ED00 ; Cn # [76] <reserved-1ECB5>..<reserved-1ED00>
1ED3E..1EDFF ; Cn # [194] <reserved-1ED3E>..<reserved-1EDFF>
1EE04 ; Cn # <reserved-1EE04>
1EE20 ; Cn # <reserved-1EE20>
1EE23 ; Cn # <reserved-1EE23>
1EE25..1EE26 ; Cn # [2] <reserved-1EE25>..<reserved-1EE26>
1EE28 ; Cn # <reserved-1EE28>
1EE33 ; Cn # <reserved-1EE33>
1EE38 ; Cn # <reserved-1EE38>
1EE3A ; Cn # <reserved-1EE3A>
1EE3C..1EE41 ; Cn # [6] <reserved-1EE3C>..<reserved-1EE41>
1EE43..1EE46 ; Cn # [4] <reserved-1EE43>..<reserved-1EE46>
1EE48 ; Cn # <reserved-1EE48>
1EE4A ; Cn # <reserved-1EE4A>
1EE4C ; Cn # <reserved-1EE4C>
1EE50 ; Cn # <reserved-1EE50>
1EE53 ; Cn # <reserved-1EE53>
1EE55..1EE56 ; Cn # [2] <reserved-1EE55>..<reserved-1EE56>
1EE58 ; Cn # <reserved-1EE58>
1EE5A ; Cn # <reserved-1EE5A>
1EE5C ; Cn # <reserved-1EE5C>
1EE5E ; Cn # <reserved-1EE5E>
1EE60 ; Cn # <reserved-1EE60>
1EE63 ; Cn # <reserved-1EE63>
1EE65..1EE66 ; Cn # [2] <reserved-1EE65>..<reserved-1EE66>
1EE6B ; Cn # <reserved-1EE6B>
1EE73 ; Cn # <reserved-1EE73>
1EE78 ; Cn # <reserved-1EE78>
1EE7D ; Cn # <reserved-1EE7D>
1EE7F ; Cn # <reserved-1EE7F>
1EE8A ; Cn # <reserved-1EE8A>
1EE9C..1EEA0 ; Cn # [5] <reserved-1EE9C>..<reserved-1EEA0>
1EEA4 ; Cn # <reserved-1EEA4>
1EEAA ; Cn # <reserved-1EEAA>
1EEBC..1EEEF ; Cn # [52] <reserved-1EEBC>..<reserved-1EEEF>
1EEF2..1EFFF ; Cn # [270] <reserved-1EEF2>..<reserved-1EFFF>
1F02C..1F02F ; Cn # [4] <reserved-1F02C>..<reserved-1F02F>
1F094..1F09F ; Cn # [12] <reserved-1F094>..<reserved-1F09F>
1F0AF..1F0B0 ; Cn # [2] <reserved-1F0AF>..<reserved-1F0B0>
1F0C0 ; Cn # <reserved-1F0C0>
1F0D0 ; Cn # <reserved-1F0D0>
1F0F6..1F0FF ; Cn # [10] <reserved-1F0F6>..<reserved-1F0FF>
1F1AE..1F1E5 ; Cn # [56] <reserved-1F1AE>..<reserved-1F1E5>
1F203..1F20F ; Cn # [13] <reserved-1F203>..<reserved-1F20F>
1F23C..1F23F ; Cn # [4] <reserved-1F23C>..<reserved-1F23F>
1F249..1F24F ; Cn # [7] <reserved-1F249>..<reserved-1F24F>
1F252..1F25F ; Cn # [14] <reserved-1F252>..<reserved-1F25F>
1F266..1F2FF ; Cn # [154] <reserved-1F266>..<reserved-1F2FF>
1F6D9..1F6DB ; Cn # [3] <reserved-1F6D9>..<reserved-1F6DB>
1F6ED..1F6EF ; Cn # [3] <reserved-1F6ED>..<reserved-1F6EF>
1F6FD..1F6FF ; Cn # [3] <reserved-1F6FD>..<reserved-1F6FF>
1F7DA..1F7DF ; Cn # [6] <reserved-1F7DA>..<reserved-1F7DF>
1F7EC..1F7EF ; Cn # [4] <reserved-1F7EC>..<reserved-1F7EF>
1F7F1..1F7FF ; Cn # [15] <reserved-1F7F1>..<reserved-1F7FF>
1F80C..1F80F ; Cn # [4] <reserved-1F80C>..<reserved-1F80F>
1F848..1F84F ; Cn # [8] <reserved-1F848>..<reserved-1F84F>
1F85A..1F85F ; Cn # [6] <reserved-1F85A>..<reserved-1F85F>
1F888..1F88F ; Cn # [8] <reserved-1F888>..<reserved-1F88F>
1F8AE..1F8AF ; Cn # [2] <reserved-1F8AE>..<reserved-1F8AF>
1F8BC..1F8BF ; Cn # [4] <reserved-1F8BC>..<reserved-1F8BF>
1F8C2..1F8CF ; Cn # [14] <reserved-1F8C2>..<reserved-1F8CF>
1F8D9..1F8FF ; Cn # [39] <reserved-1F8D9>..<reserved-1F8FF>
1FA58..1FA5F ; Cn # [8] <reserved-1FA58>..<reserved-1FA5F>
1FA6E..1FA6F ; Cn # [2] <reserved-1FA6E>..<reserved-1FA6F>
1FA7D..1FA7F ; Cn # [3] <reserved-1FA7D>..<reserved-1FA7F>
1FA8B..1FA8D ; Cn # [3] <reserved-1FA8B>..<reserved-1FA8D>
1FAC7 ; Cn # <reserved-1FAC7>
1FAC9..1FACC ; Cn # [4] <reserved-1FAC9>..<reserved-1FACC>
1FADD..1FADE ; Cn # [2] <reserved-1FADD>..<reserved-1FADE>
1FAEB..1FAEE ; Cn # [4] <reserved-1FAEB>..<reserved-1FAEE>
1FAF9..1FAFF ; Cn # [7] <reserved-1FAF9>..<reserved-1FAFF>
1FB93 ; Cn # <reserved-1FB93>
1FBFB..1FFFF ; Cn # [1029] <reserved-1FBFB>..<noncharacter-1FFFF>
2A6E0..2A6FF ; Cn # [32] <reserved-2A6E0>..<reserved-2A6FF>
2B81E..2B81F ; Cn # [2] <reserved-2B81E>..<reserved-2B81F>
2CEAE..2CEAF ; Cn # [2] <reserved-2CEAE>..<reserved-2CEAF>
2EBE1..2EBEF ; Cn # [15] <reserved-2EBE1>..<reserved-2EBEF>
2EE5E..2F7FF ; Cn # [2466] <reserved-2EE5E>..<reserved-2F7FF>
2FA1E..2FFFF ; Cn # [1506] <reserved-2FA1E>..<noncharacter-2FFFF>
3134B..3134F ; Cn # [5] <reserved-3134B>..<reserved-3134F>
3347A..E0000 ; Cn # [707463] <reserved-3347A>..<reserved-E0000>
E0002..E001F ; Cn # [30] <reserved-E0002>..<reserved-E001F>
E0080..E00FF ; Cn # [128] <reserved-E0080>..<reserved-E00FF>
E01F0..EFFFF ; Cn # [65040] <reserved-E01F0>..<noncharacter-EFFFF>
FFFFE..FFFFF ; Cn # [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
10FFFE..10FFFF; Cn # [2] <noncharacter-10FFFE>..<noncharacter-10FFFF>
# Total code points: 814730
# ================================================
# General_Category=Uppercase_Letter
0041..005A ; Lu # [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
00C0..00D6 ; Lu # [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
00D8..00DE ; Lu # [7] LATIN CAPITAL LETTER O WITH STROKE..LATIN CAPITAL LETTER THORN
0100 ; Lu # LATIN CAPITAL LETTER A WITH MACRON
0102 ; Lu # LATIN CAPITAL LETTER A WITH BREVE
0104 ; Lu # LATIN CAPITAL LETTER A WITH OGONEK
0106 ; Lu # LATIN CAPITAL LETTER C WITH ACUTE
0108 ; Lu # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
010A ; Lu # LATIN CAPITAL LETTER C WITH DOT ABOVE
010C ; Lu # LATIN CAPITAL LETTER C WITH CARON
010E ; Lu # LATIN CAPITAL LETTER D WITH CARON
0110 ; Lu # LATIN CAPITAL LETTER D WITH STROKE
0112 ; Lu # LATIN CAPITAL LETTER E WITH MACRON
0114 ; Lu # LATIN CAPITAL LETTER E WITH BREVE
0116 ; Lu # LATIN CAPITAL LETTER E WITH DOT ABOVE
0118 ; Lu # LATIN CAPITAL LETTER E WITH OGONEK
011A ; Lu # LATIN CAPITAL LETTER E WITH CARON
011C ; Lu # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
011E ; Lu # LATIN CAPITAL LETTER G WITH BREVE
0120 ; Lu # LATIN CAPITAL LETTER G WITH DOT ABOVE
0122 ; Lu # LATIN CAPITAL LETTER G WITH CEDILLA
0124 ; Lu # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
0126 ; Lu # LATIN CAPITAL LETTER H WITH STROKE
0128 ; Lu # LATIN CAPITAL LETTER I WITH TILDE
012A ; Lu # LATIN CAPITAL LETTER I WITH MACRON
012C ; Lu # LATIN CAPITAL LETTER I WITH BREVE
012E ; Lu # LATIN CAPITAL LETTER I WITH OGONEK
0130 ; Lu # LATIN CAPITAL LETTER I WITH DOT ABOVE
0132 ; Lu # LATIN CAPITAL LIGATURE IJ
0134 ; Lu # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
0136 ; Lu # LATIN CAPITAL LETTER K WITH CEDILLA
0139 ; Lu # LATIN CAPITAL LETTER L WITH ACUTE
013B ; Lu # LATIN CAPITAL LETTER L WITH CEDILLA
013D ; Lu # LATIN CAPITAL LETTER L WITH CARON
013F ; Lu # LATIN CAPITAL LETTER L WITH MIDDLE DOT
0141 ; Lu # LATIN CAPITAL LETTER L WITH STROKE
0143 ; Lu # LATIN CAPITAL LETTER N WITH ACUTE
0145 ; Lu # LATIN CAPITAL LETTER N WITH CEDILLA
0147 ; Lu # LATIN CAPITAL LETTER N WITH CARON
014A ; Lu # LATIN CAPITAL LETTER ENG
014C ; Lu # LATIN CAPITAL LETTER O WITH MACRON
014E ; Lu # LATIN CAPITAL LETTER O WITH BREVE
0150 ; Lu # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0152 ; Lu # LATIN CAPITAL LIGATURE OE
0154 ; Lu # LATIN CAPITAL LETTER R WITH ACUTE
0156 ; Lu # LATIN CAPITAL LETTER R WITH CEDILLA
0158 ; Lu # LATIN CAPITAL LETTER R WITH CARON
015A ; Lu # LATIN CAPITAL LETTER S WITH ACUTE
015C ; Lu # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
015E ; Lu # LATIN CAPITAL LETTER S WITH CEDILLA
0160 ; Lu # LATIN CAPITAL LETTER S WITH CARON
0162 ; Lu # LATIN CAPITAL LETTER T WITH CEDILLA
0164 ; Lu # LATIN CAPITAL LETTER T WITH CARON
0166 ; Lu # LATIN CAPITAL LETTER T WITH STROKE
0168 ; Lu # LATIN CAPITAL LETTER U WITH TILDE
016A ; Lu # LATIN CAPITAL LETTER U WITH MACRON
016C ; Lu # LATIN CAPITAL LETTER U WITH BREVE
016E ; Lu # LATIN CAPITAL LETTER U WITH RING ABOVE
0170 ; Lu # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
0172 ; Lu # LATIN CAPITAL LETTER U WITH OGONEK
0174 ; Lu # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
0176 ; Lu # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
0178..0179 ; Lu # [2] LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE
017B ; Lu # LATIN CAPITAL LETTER Z WITH DOT ABOVE
017D ; Lu # LATIN CAPITAL LETTER Z WITH CARON
0181..0182 ; Lu # [2] LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR
0184 ; Lu # LATIN CAPITAL LETTER TONE SIX
0186..0187 ; Lu # [2] LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK
0189..018B ; Lu # [3] LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR
018E..0191 ; Lu # [4] LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK
0193..0194 ; Lu # [2] LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA
0196..0198 ; Lu # [3] LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK
019C..019D ; Lu # [2] LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK
019F..01A0 ; Lu # [2] LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN
01A2 ; Lu # LATIN CAPITAL LETTER OI
01A4 ; Lu # LATIN CAPITAL LETTER P WITH HOOK
01A6..01A7 ; Lu # [2] LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO
01A9 ; Lu # LATIN CAPITAL LETTER ESH
01AC ; Lu # LATIN CAPITAL LETTER T WITH HOOK
01AE..01AF ; Lu # [2] LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN
01B1..01B3 ; Lu # [3] LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK
01B5 ; Lu # LATIN CAPITAL LETTER Z WITH STROKE
01B7..01B8 ; Lu # [2] LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED
01BC ; Lu # LATIN CAPITAL LETTER TONE FIVE
01C4 ; Lu # LATIN CAPITAL LETTER DZ WITH CARON
01C7 ; Lu # LATIN CAPITAL LETTER LJ
01CA ; Lu # LATIN CAPITAL LETTER NJ
01CD ; Lu # LATIN CAPITAL LETTER A WITH CARON
01CF ; Lu # LATIN CAPITAL LETTER I WITH CARON
01D1 ; Lu # LATIN CAPITAL LETTER O WITH CARON
01D3 ; Lu # LATIN CAPITAL LETTER U WITH CARON
01D5 ; Lu # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
01D7 ; Lu # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
01D9 ; Lu # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
01DB ; Lu # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
01DE ; Lu # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
01E0 ; Lu # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
01E2 ; Lu # LATIN CAPITAL LETTER AE WITH MACRON
01E4 ; Lu # LATIN CAPITAL LETTER G WITH STROKE
01E6 ; Lu # LATIN CAPITAL LETTER G WITH CARON
01E8 ; Lu # LATIN CAPITAL LETTER K WITH CARON
01EA ; Lu # LATIN CAPITAL LETTER O WITH OGONEK
01EC ; Lu # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
01EE ; Lu # LATIN CAPITAL LETTER EZH WITH CARON
01F1 ; Lu # LATIN CAPITAL LETTER DZ
01F4 ; Lu # LATIN CAPITAL LETTER G WITH ACUTE
01F6..01F8 ; Lu # [3] LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE
01FA ; Lu # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
01FC ; Lu # LATIN CAPITAL LETTER AE WITH ACUTE
01FE ; Lu # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
0200 ; Lu # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
0202 ; Lu # LATIN CAPITAL LETTER A WITH INVERTED BREVE
0204 ; Lu # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
0206 ; Lu # LATIN CAPITAL LETTER E WITH INVERTED BREVE
0208 ; Lu # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
020A ; Lu # LATIN CAPITAL LETTER I WITH INVERTED BREVE
020C ; Lu # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
020E ; Lu # LATIN CAPITAL LETTER O WITH INVERTED BREVE
0210 ; Lu # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
0212 ; Lu # LATIN CAPITAL LETTER R WITH INVERTED BREVE
0214 ; Lu # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
0216 ; Lu # LATIN CAPITAL LETTER U WITH INVERTED BREVE
0218 ; Lu # LATIN CAPITAL LETTER S WITH COMMA BELOW
021A ; Lu # LATIN CAPITAL LETTER T WITH COMMA BELOW
021C ; Lu # LATIN CAPITAL LETTER YOGH
021E ; Lu # LATIN CAPITAL LETTER H WITH CARON
0220 ; Lu # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
0222 ; Lu # LATIN CAPITAL LETTER OU
0224 ; Lu # LATIN CAPITAL LETTER Z WITH HOOK
0226 ; Lu # LATIN CAPITAL LETTER A WITH DOT ABOVE
0228 ; Lu # LATIN CAPITAL LETTER E WITH CEDILLA
022A ; Lu # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
022C ; Lu # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
022E ; Lu # LATIN CAPITAL LETTER O WITH DOT ABOVE
0230 ; Lu # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
0232 ; Lu # LATIN CAPITAL LETTER Y WITH MACRON
023A..023B ; Lu # [2] LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE
023D..023E ; Lu # [2] LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
0241 ; Lu # LATIN CAPITAL LETTER GLOTTAL STOP
0243..0246 ; Lu # [4] LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE
0248 ; Lu # LATIN CAPITAL LETTER J WITH STROKE
024A ; Lu # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
024C ; Lu # LATIN CAPITAL LETTER R WITH STROKE
024E ; Lu # LATIN CAPITAL LETTER Y WITH STROKE
0370 ; Lu # GREEK CAPITAL LETTER HETA
0372 ; Lu # GREEK CAPITAL LETTER ARCHAIC SAMPI
0376 ; Lu # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
037F ; Lu # GREEK CAPITAL LETTER YOT
0386 ; Lu # GREEK CAPITAL LETTER ALPHA WITH TONOS
0388..038A ; Lu # [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
038C ; Lu # GREEK CAPITAL LETTER OMICRON WITH TONOS
038E..038F ; Lu # [2] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS
0391..03A1 ; Lu # [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
03A3..03AB ; Lu # [9] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
03CF ; Lu # GREEK CAPITAL KAI SYMBOL
03D2..03D4 ; Lu # [3] GREEK UPSILON WITH HOOK SYMBOL..GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
03D8 ; Lu # GREEK LETTER ARCHAIC KOPPA
03DA ; Lu # GREEK LETTER STIGMA
03DC ; Lu # GREEK LETTER DIGAMMA
03DE ; Lu # GREEK LETTER KOPPA
03E0 ; Lu # GREEK LETTER SAMPI
03E2 ; Lu # COPTIC CAPITAL LETTER SHEI
03E4 ; Lu # COPTIC CAPITAL LETTER FEI
03E6 ; Lu # COPTIC CAPITAL LETTER KHEI
03E8 ; Lu # COPTIC CAPITAL LETTER HORI
03EA ; Lu # COPTIC CAPITAL LETTER GANGIA
03EC ; Lu # COPTIC CAPITAL LETTER SHIMA
03EE ; Lu # COPTIC CAPITAL LETTER DEI
03F4 ; Lu # GREEK CAPITAL THETA SYMBOL
03F7 ; Lu # GREEK CAPITAL LETTER SHO
03F9..03FA ; Lu # [2] GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN
03FD..042F ; Lu # [51] GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA
0460 ; Lu # CYRILLIC CAPITAL LETTER OMEGA
0462 ; Lu # CYRILLIC CAPITAL LETTER YAT
0464 ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED E
0466 ; Lu # CYRILLIC CAPITAL LETTER LITTLE YUS
0468 ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
046A ; Lu # CYRILLIC CAPITAL LETTER BIG YUS
046C ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
046E ; Lu # CYRILLIC CAPITAL LETTER KSI
0470 ; Lu # CYRILLIC CAPITAL LETTER PSI
0472 ; Lu # CYRILLIC CAPITAL LETTER FITA
0474 ; Lu # CYRILLIC CAPITAL LETTER IZHITSA
0476 ; Lu # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
0478 ; Lu # CYRILLIC CAPITAL LETTER UK
047A ; Lu # CYRILLIC CAPITAL LETTER ROUND OMEGA
047C ; Lu # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
047E ; Lu # CYRILLIC CAPITAL LETTER OT
0480 ; Lu # CYRILLIC CAPITAL LETTER KOPPA
048A ; Lu # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
048C ; Lu # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
048E ; Lu # CYRILLIC CAPITAL LETTER ER WITH TICK
0490 ; Lu # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
0492 ; Lu # CYRILLIC CAPITAL LETTER GHE WITH STROKE
0494 ; Lu # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
0496 ; Lu # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
0498 ; Lu # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
049A ; Lu # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
049C ; Lu # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
049E ; Lu # CYRILLIC CAPITAL LETTER KA WITH STROKE
04A0 ; Lu # CYRILLIC CAPITAL LETTER BASHKIR KA
04A2 ; Lu # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
04A4 ; Lu # CYRILLIC CAPITAL LIGATURE EN GHE
04A6 ; Lu # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
04A8 ; Lu # CYRILLIC CAPITAL LETTER ABKHASIAN HA
04AA ; Lu # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
04AC ; Lu # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
04AE ; Lu # CYRILLIC CAPITAL LETTER STRAIGHT U
04B0 ; Lu # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
04B2 ; Lu # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
04B4 ; Lu # CYRILLIC CAPITAL LIGATURE TE TSE
04B6 ; Lu # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
04B8 ; Lu # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
04BA ; Lu # CYRILLIC CAPITAL LETTER SHHA
04BC ; Lu # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
04BE ; Lu # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
04C0..04C1 ; Lu # [2] CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE
04C3 ; Lu # CYRILLIC CAPITAL LETTER KA WITH HOOK
04C5 ; Lu # CYRILLIC CAPITAL LETTER EL WITH TAIL
04C7 ; Lu # CYRILLIC CAPITAL LETTER EN WITH HOOK
04C9 ; Lu # CYRILLIC CAPITAL LETTER EN WITH TAIL
04CB ; Lu # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
04CD ; Lu # CYRILLIC CAPITAL LETTER EM WITH TAIL
04D0 ; Lu # CYRILLIC CAPITAL LETTER A WITH BREVE
04D2 ; Lu # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
04D4 ; Lu # CYRILLIC CAPITAL LIGATURE A IE
04D6 ; Lu # CYRILLIC CAPITAL LETTER IE WITH BREVE
04D8 ; Lu # CYRILLIC CAPITAL LETTER SCHWA
04DA ; Lu # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
04DC ; Lu # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
04DE ; Lu # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
04E0 ; Lu # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
04E2 ; Lu # CYRILLIC CAPITAL LETTER I WITH MACRON
04E4 ; Lu # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
04E6 ; Lu # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
04E8 ; Lu # CYRILLIC CAPITAL LETTER BARRED O
04EA ; Lu # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
04EC ; Lu # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
04EE ; Lu # CYRILLIC CAPITAL LETTER U WITH MACRON
04F0 ; Lu # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
04F2 ; Lu # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
04F4 ; Lu # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
04F6 ; Lu # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
04F8 ; Lu # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
04FA ; Lu # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
04FC ; Lu # CYRILLIC CAPITAL LETTER HA WITH HOOK
04FE ; Lu # CYRILLIC CAPITAL LETTER HA WITH STROKE
0500 ; Lu # CYRILLIC CAPITAL LETTER KOMI DE
0502 ; Lu # CYRILLIC CAPITAL LETTER KOMI DJE
0504 ; Lu # CYRILLIC CAPITAL LETTER KOMI ZJE
0506 ; Lu # CYRILLIC CAPITAL LETTER KOMI DZJE
0508 ; Lu # CYRILLIC CAPITAL LETTER KOMI LJE
050A ; Lu # CYRILLIC CAPITAL LETTER KOMI NJE
050C ; Lu # CYRILLIC CAPITAL LETTER KOMI SJE
050E ; Lu # CYRILLIC CAPITAL LETTER KOMI TJE
0510 ; Lu # CYRILLIC CAPITAL LETTER REVERSED ZE
0512 ; Lu # CYRILLIC CAPITAL LETTER EL WITH HOOK
0514 ; Lu # CYRILLIC CAPITAL LETTER LHA
0516 ; Lu # CYRILLIC CAPITAL LETTER RHA
0518 ; Lu # CYRILLIC CAPITAL LETTER YAE
051A ; Lu # CYRILLIC CAPITAL LETTER QA
051C ; Lu # CYRILLIC CAPITAL LETTER WE
051E ; Lu # CYRILLIC CAPITAL LETTER ALEUT KA
0520 ; Lu # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
0522 ; Lu # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
0524 ; Lu # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
0526 ; Lu # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
0528 ; Lu # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
052A ; Lu # CYRILLIC CAPITAL LETTER DZZHE
052C ; Lu # CYRILLIC CAPITAL LETTER DCHE
052E ; Lu # CYRILLIC CAPITAL LETTER EL WITH DESCENDER
0531..0556 ; Lu # [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
10A0..10C5 ; Lu # [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
10C7 ; Lu # GEORGIAN CAPITAL LETTER YN
10CD ; Lu # GEORGIAN CAPITAL LETTER AEN
13A0..13F5 ; Lu # [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
1C89 ; Lu # CYRILLIC CAPITAL LETTER TJE
1C90..1CBA ; Lu # [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
1CBD..1CBF ; Lu # [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
1E00 ; Lu # LATIN CAPITAL LETTER A WITH RING BELOW
1E02 ; Lu # LATIN CAPITAL LETTER B WITH DOT ABOVE
1E04 ; Lu # LATIN CAPITAL LETTER B WITH DOT BELOW
1E06 ; Lu # LATIN CAPITAL LETTER B WITH LINE BELOW
1E08 ; Lu # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
1E0A ; Lu # LATIN CAPITAL LETTER D WITH DOT ABOVE
1E0C ; Lu # LATIN CAPITAL LETTER D WITH DOT BELOW
1E0E ; Lu # LATIN CAPITAL LETTER D WITH LINE BELOW
1E10 ; Lu # LATIN CAPITAL LETTER D WITH CEDILLA
1E12 ; Lu # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
1E14 ; Lu # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
1E16 ; Lu # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
1E18 ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
1E1A ; Lu # LATIN CAPITAL LETTER E WITH TILDE BELOW
1E1C ; Lu # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
1E1E ; Lu # LATIN CAPITAL LETTER F WITH DOT ABOVE
1E20 ; Lu # LATIN CAPITAL LETTER G WITH MACRON
1E22 ; Lu # LATIN CAPITAL LETTER H WITH DOT ABOVE
1E24 ; Lu # LATIN CAPITAL LETTER H WITH DOT BELOW
1E26 ; Lu # LATIN CAPITAL LETTER H WITH DIAERESIS
1E28 ; Lu # LATIN CAPITAL LETTER H WITH CEDILLA
1E2A ; Lu # LATIN CAPITAL LETTER H WITH BREVE BELOW
1E2C ; Lu # LATIN CAPITAL LETTER I WITH TILDE BELOW
1E2E ; Lu # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
1E30 ; Lu # LATIN CAPITAL LETTER K WITH ACUTE
1E32 ; Lu # LATIN CAPITAL LETTER K WITH DOT BELOW
1E34 ; Lu # LATIN CAPITAL LETTER K WITH LINE BELOW
1E36 ; Lu # LATIN CAPITAL LETTER L WITH DOT BELOW
1E38 ; Lu # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
1E3A ; Lu # LATIN CAPITAL LETTER L WITH LINE BELOW
1E3C ; Lu # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
1E3E ; Lu # LATIN CAPITAL LETTER M WITH ACUTE
1E40 ; Lu # LATIN CAPITAL LETTER M WITH DOT ABOVE
1E42 ; Lu # LATIN CAPITAL LETTER M WITH DOT BELOW
1E44 ; Lu # LATIN CAPITAL LETTER N WITH DOT ABOVE
1E46 ; Lu # LATIN CAPITAL LETTER N WITH DOT BELOW
1E48 ; Lu # LATIN CAPITAL LETTER N WITH LINE BELOW
1E4A ; Lu # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
1E4C ; Lu # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
1E4E ; Lu # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
1E50 ; Lu # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
1E52 ; Lu # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
1E54 ; Lu # LATIN CAPITAL LETTER P WITH ACUTE
1E56 ; Lu # LATIN CAPITAL LETTER P WITH DOT ABOVE
1E58 ; Lu # LATIN CAPITAL LETTER R WITH DOT ABOVE
1E5A ; Lu # LATIN CAPITAL LETTER R WITH DOT BELOW
1E5C ; Lu # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
1E5E ; Lu # LATIN CAPITAL LETTER R WITH LINE BELOW
1E60 ; Lu # LATIN CAPITAL LETTER S WITH DOT ABOVE
1E62 ; Lu # LATIN CAPITAL LETTER S WITH DOT BELOW
1E64 ; Lu # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
1E66 ; Lu # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
1E68 ; Lu # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
1E6A ; Lu # LATIN CAPITAL LETTER T WITH DOT ABOVE
1E6C ; Lu # LATIN CAPITAL LETTER T WITH DOT BELOW
1E6E ; Lu # LATIN CAPITAL LETTER T WITH LINE BELOW
1E70 ; Lu # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
1E72 ; Lu # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
1E74 ; Lu # LATIN CAPITAL LETTER U WITH TILDE BELOW
1E76 ; Lu # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
1E78 ; Lu # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
1E7A ; Lu # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
1E7C ; Lu # LATIN CAPITAL LETTER V WITH TILDE
1E7E ; Lu # LATIN CAPITAL LETTER V WITH DOT BELOW
1E80 ; Lu # LATIN CAPITAL LETTER W WITH GRAVE
1E82 ; Lu # LATIN CAPITAL LETTER W WITH ACUTE
1E84 ; Lu # LATIN CAPITAL LETTER W WITH DIAERESIS
1E86 ; Lu # LATIN CAPITAL LETTER W WITH DOT ABOVE
1E88 ; Lu # LATIN CAPITAL LETTER W WITH DOT BELOW
1E8A ; Lu # LATIN CAPITAL LETTER X WITH DOT ABOVE
1E8C ; Lu # LATIN CAPITAL LETTER X WITH DIAERESIS
1E8E ; Lu # LATIN CAPITAL LETTER Y WITH DOT ABOVE
1E90 ; Lu # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
1E92 ; Lu # LATIN CAPITAL LETTER Z WITH DOT BELOW
1E94 ; Lu # LATIN CAPITAL LETTER Z WITH LINE BELOW
1E9E ; Lu # LATIN CAPITAL LETTER SHARP S
1EA0 ; Lu # LATIN CAPITAL LETTER A WITH DOT BELOW
1EA2 ; Lu # LATIN CAPITAL LETTER A WITH HOOK ABOVE
1EA4 ; Lu # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
1EA6 ; Lu # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
1EA8 ; Lu # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
1EAA ; Lu # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
1EAC ; Lu # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
1EAE ; Lu # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
1EB0 ; Lu # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
1EB2 ; Lu # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
1EB4 ; Lu # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
1EB6 ; Lu # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
1EB8 ; Lu # LATIN CAPITAL LETTER E WITH DOT BELOW
1EBA ; Lu # LATIN CAPITAL LETTER E WITH HOOK ABOVE
1EBC ; Lu # LATIN CAPITAL LETTER E WITH TILDE
1EBE ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
1EC0 ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
1EC2 ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
1EC4 ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
1EC6 ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
1EC8 ; Lu # LATIN CAPITAL LETTER I WITH HOOK ABOVE
1ECA ; Lu # LATIN CAPITAL LETTER I WITH DOT BELOW
1ECC ; Lu # LATIN CAPITAL LETTER O WITH DOT BELOW
1ECE ; Lu # LATIN CAPITAL LETTER O WITH HOOK ABOVE
1ED0 ; Lu # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
1ED2 ; Lu # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
1ED4 ; Lu # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
1ED6 ; Lu # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
1ED8 ; Lu # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
1EDA ; Lu # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
1EDC ; Lu # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
1EDE ; Lu # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
1EE0 ; Lu # LATIN CAPITAL LETTER O WITH HORN AND TILDE
1EE2 ; Lu # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
1EE4 ; Lu # LATIN CAPITAL LETTER U WITH DOT BELOW
1EE6 ; Lu # LATIN CAPITAL LETTER U WITH HOOK ABOVE
1EE8 ; Lu # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
1EEA ; Lu # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
1EEC ; Lu # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
1EEE ; Lu # LATIN CAPITAL LETTER U WITH HORN AND TILDE
1EF0 ; Lu # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
1EF2 ; Lu # LATIN CAPITAL LETTER Y WITH GRAVE
1EF4 ; Lu # LATIN CAPITAL LETTER Y WITH DOT BELOW
1EF6 ; Lu # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
1EF8 ; Lu # LATIN CAPITAL LETTER Y WITH TILDE
1EFA ; Lu # LATIN CAPITAL LETTER MIDDLE-WELSH LL
1EFC ; Lu # LATIN CAPITAL LETTER MIDDLE-WELSH V
1EFE ; Lu # LATIN CAPITAL LETTER Y WITH LOOP
1F08..1F0F ; Lu # [8] GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
1F18..1F1D ; Lu # [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
1F28..1F2F ; Lu # [8] GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
1F38..1F3F ; Lu # [8] GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
1F48..1F4D ; Lu # [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
1F59 ; Lu # GREEK CAPITAL LETTER UPSILON WITH DASIA
1F5B ; Lu # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
1F5D ; Lu # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
1F5F ; Lu # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
1F68..1F6F ; Lu # [8] GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
1FB8..1FBB ; Lu # [4] GREEK CAPITAL LETTER ALPHA WITH VRACHY..GREEK CAPITAL LETTER ALPHA WITH OXIA
1FC8..1FCB ; Lu # [4] GREEK CAPITAL LETTER EPSILON WITH VARIA..GREEK CAPITAL LETTER ETA WITH OXIA
1FD8..1FDB ; Lu # [4] GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA
1FE8..1FEC ; Lu # [5] GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
1FF8..1FFB ; Lu # [4] GREEK CAPITAL LETTER OMICRON WITH VARIA..GREEK CAPITAL LETTER OMEGA WITH OXIA
2102 ; Lu # DOUBLE-STRUCK CAPITAL C
2107 ; Lu # EULER CONSTANT
210B..210D ; Lu # [3] SCRIPT CAPITAL H..DOUBLE-STRUCK CAPITAL H
2110..2112 ; Lu # [3] SCRIPT CAPITAL I..SCRIPT CAPITAL L
2115 ; Lu # DOUBLE-STRUCK CAPITAL N
2119..211D ; Lu # [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
2124 ; Lu # DOUBLE-STRUCK CAPITAL Z
2126 ; Lu # OHM SIGN
2128 ; Lu # BLACK-LETTER CAPITAL Z
212A..212D ; Lu # [4] KELVIN SIGN..BLACK-LETTER CAPITAL C
2130..2133 ; Lu # [4] SCRIPT CAPITAL E..SCRIPT CAPITAL M
213E..213F ; Lu # [2] DOUBLE-STRUCK CAPITAL GAMMA..DOUBLE-STRUCK CAPITAL PI
2145 ; Lu # DOUBLE-STRUCK ITALIC CAPITAL D
2183 ; Lu # ROMAN NUMERAL REVERSED ONE HUNDRED
2C00..2C2F ; Lu # [48] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
2C60 ; Lu # LATIN CAPITAL LETTER L WITH DOUBLE BAR
2C62..2C64 ; Lu # [3] LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL
2C67 ; Lu # LATIN CAPITAL LETTER H WITH DESCENDER
2C69 ; Lu # LATIN CAPITAL LETTER K WITH DESCENDER
2C6B ; Lu # LATIN CAPITAL LETTER Z WITH DESCENDER
2C6D..2C70 ; Lu # [4] LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED ALPHA
2C72 ; Lu # LATIN CAPITAL LETTER W WITH HOOK
2C75 ; Lu # LATIN CAPITAL LETTER HALF H
2C7E..2C80 ; Lu # [3] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC CAPITAL LETTER ALFA
2C82 ; Lu # COPTIC CAPITAL LETTER VIDA
2C84 ; Lu # COPTIC CAPITAL LETTER GAMMA
2C86 ; Lu # COPTIC CAPITAL LETTER DALDA
2C88 ; Lu # COPTIC CAPITAL LETTER EIE
2C8A ; Lu # COPTIC CAPITAL LETTER SOU
2C8C ; Lu # COPTIC CAPITAL LETTER ZATA
2C8E ; Lu # COPTIC CAPITAL LETTER HATE
2C90 ; Lu # COPTIC CAPITAL LETTER THETHE
2C92 ; Lu # COPTIC CAPITAL LETTER IAUDA
2C94 ; Lu # COPTIC CAPITAL LETTER KAPA
2C96 ; Lu # COPTIC CAPITAL LETTER LAULA
2C98 ; Lu # COPTIC CAPITAL LETTER MI
2C9A ; Lu # COPTIC CAPITAL LETTER NI
2C9C ; Lu # COPTIC CAPITAL LETTER KSI
2C9E ; Lu # COPTIC CAPITAL LETTER O
2CA0 ; Lu # COPTIC CAPITAL LETTER PI
2CA2 ; Lu # COPTIC CAPITAL LETTER RO
2CA4 ; Lu # COPTIC CAPITAL LETTER SIMA
2CA6 ; Lu # COPTIC CAPITAL LETTER TAU
2CA8 ; Lu # COPTIC CAPITAL LETTER UA
2CAA ; Lu # COPTIC CAPITAL LETTER FI
2CAC ; Lu # COPTIC CAPITAL LETTER KHI
2CAE ; Lu # COPTIC CAPITAL LETTER PSI
2CB0 ; Lu # COPTIC CAPITAL LETTER OOU
2CB2 ; Lu # COPTIC CAPITAL LETTER DIALECT-P ALEF
2CB4 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC AIN
2CB6 ; Lu # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
2CB8 ; Lu # COPTIC CAPITAL LETTER DIALECT-P KAPA
2CBA ; Lu # COPTIC CAPITAL LETTER DIALECT-P NI
2CBC ; Lu # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
2CBE ; Lu # COPTIC CAPITAL LETTER OLD COPTIC OOU
2CC0 ; Lu # COPTIC CAPITAL LETTER SAMPI
2CC2 ; Lu # COPTIC CAPITAL LETTER CROSSED SHEI
2CC4 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC SHEI
2CC6 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC ESH
2CC8 ; Lu # COPTIC CAPITAL LETTER AKHMIMIC KHEI
2CCA ; Lu # COPTIC CAPITAL LETTER DIALECT-P HORI
2CCC ; Lu # COPTIC CAPITAL LETTER OLD COPTIC HORI
2CCE ; Lu # COPTIC CAPITAL LETTER OLD COPTIC HA
2CD0 ; Lu # COPTIC CAPITAL LETTER L-SHAPED HA
2CD2 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC HEI
2CD4 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC HAT
2CD6 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC GANGIA
2CD8 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC DJA
2CDA ; Lu # COPTIC CAPITAL LETTER OLD COPTIC SHIMA
2CDC ; Lu # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
2CDE ; Lu # COPTIC CAPITAL LETTER OLD NUBIAN NGI
2CE0 ; Lu # COPTIC CAPITAL LETTER OLD NUBIAN NYI
2CE2 ; Lu # COPTIC CAPITAL LETTER OLD NUBIAN WAU
2CEB ; Lu # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
2CED ; Lu # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
2CF2 ; Lu # COPTIC CAPITAL LETTER BOHAIRIC KHEI
A640 ; Lu # CYRILLIC CAPITAL LETTER ZEMLYA
A642 ; Lu # CYRILLIC CAPITAL LETTER DZELO
A644 ; Lu # CYRILLIC CAPITAL LETTER REVERSED DZE
A646 ; Lu # CYRILLIC CAPITAL LETTER IOTA
A648 ; Lu # CYRILLIC CAPITAL LETTER DJERV
A64A ; Lu # CYRILLIC CAPITAL LETTER MONOGRAPH UK
A64C ; Lu # CYRILLIC CAPITAL LETTER BROAD OMEGA
A64E ; Lu # CYRILLIC CAPITAL LETTER NEUTRAL YER
A650 ; Lu # CYRILLIC CAPITAL LETTER YERU WITH BACK YER
A652 ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED YAT
A654 ; Lu # CYRILLIC CAPITAL LETTER REVERSED YU
A656 ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED A
A658 ; Lu # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
A65A ; Lu # CYRILLIC CAPITAL LETTER BLENDED YUS
A65C ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
A65E ; Lu # CYRILLIC CAPITAL LETTER YN
A660 ; Lu # CYRILLIC CAPITAL LETTER REVERSED TSE
A662 ; Lu # CYRILLIC CAPITAL LETTER SOFT DE
A664 ; Lu # CYRILLIC CAPITAL LETTER SOFT EL
A666 ; Lu # CYRILLIC CAPITAL LETTER SOFT EM
A668 ; Lu # CYRILLIC CAPITAL LETTER MONOCULAR O
A66A ; Lu # CYRILLIC CAPITAL LETTER BINOCULAR O
A66C ; Lu # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
A680 ; Lu # CYRILLIC CAPITAL LETTER DWE
A682 ; Lu # CYRILLIC CAPITAL LETTER DZWE
A684 ; Lu # CYRILLIC CAPITAL LETTER ZHWE
A686 ; Lu # CYRILLIC CAPITAL LETTER CCHE
A688 ; Lu # CYRILLIC CAPITAL LETTER DZZE
A68A ; Lu # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
A68C ; Lu # CYRILLIC CAPITAL LETTER TWE
A68E ; Lu # CYRILLIC CAPITAL LETTER TSWE
A690 ; Lu # CYRILLIC CAPITAL LETTER TSSE
A692 ; Lu # CYRILLIC CAPITAL LETTER TCHE
A694 ; Lu # CYRILLIC CAPITAL LETTER HWE
A696 ; Lu # CYRILLIC CAPITAL LETTER SHWE
A698 ; Lu # CYRILLIC CAPITAL LETTER DOUBLE O
A69A ; Lu # CYRILLIC CAPITAL LETTER CROSSED O
A722 ; Lu # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
A724 ; Lu # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
A726 ; Lu # LATIN CAPITAL LETTER HENG
A728 ; Lu # LATIN CAPITAL LETTER TZ
A72A ; Lu # LATIN CAPITAL LETTER TRESILLO
A72C ; Lu # LATIN CAPITAL LETTER CUATRILLO
A72E ; Lu # LATIN CAPITAL LETTER CUATRILLO WITH COMMA
A732 ; Lu # LATIN CAPITAL LETTER AA
A734 ; Lu # LATIN CAPITAL LETTER AO
A736 ; Lu # LATIN CAPITAL LETTER AU
A738 ; Lu # LATIN CAPITAL LETTER AV
A73A ; Lu # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
A73C ; Lu # LATIN CAPITAL LETTER AY
A73E ; Lu # LATIN CAPITAL LETTER REVERSED C WITH DOT
A740 ; Lu # LATIN CAPITAL LETTER K WITH STROKE
A742 ; Lu # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
A744 ; Lu # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
A746 ; Lu # LATIN CAPITAL LETTER BROKEN L
A748 ; Lu # LATIN CAPITAL LETTER L WITH HIGH STROKE
A74A ; Lu # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
A74C ; Lu # LATIN CAPITAL LETTER O WITH LOOP
A74E ; Lu # LATIN CAPITAL LETTER OO
A750 ; Lu # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
A752 ; Lu # LATIN CAPITAL LETTER P WITH FLOURISH
A754 ; Lu # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
A756 ; Lu # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
A758 ; Lu # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
A75A ; Lu # LATIN CAPITAL LETTER R ROTUNDA
A75C ; Lu # LATIN CAPITAL LETTER RUM ROTUNDA
A75E ; Lu # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
A760 ; Lu # LATIN CAPITAL LETTER VY
A762 ; Lu # LATIN CAPITAL LETTER VISIGOTHIC Z
A764 ; Lu # LATIN CAPITAL LETTER THORN WITH STROKE
A766 ; Lu # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
A768 ; Lu # LATIN CAPITAL LETTER VEND
A76A ; Lu # LATIN CAPITAL LETTER ET
A76C ; Lu # LATIN CAPITAL LETTER IS
A76E ; Lu # LATIN CAPITAL LETTER CON
A779 ; Lu # LATIN CAPITAL LETTER INSULAR D
A77B ; Lu # LATIN CAPITAL LETTER INSULAR F
A77D..A77E ; Lu # [2] LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G
A780 ; Lu # LATIN CAPITAL LETTER TURNED L
A782 ; Lu # LATIN CAPITAL LETTER INSULAR R
A784 ; Lu # LATIN CAPITAL LETTER INSULAR S
A786 ; Lu # LATIN CAPITAL LETTER INSULAR T
A78B ; Lu # LATIN CAPITAL LETTER SALTILLO
A78D ; Lu # LATIN CAPITAL LETTER TURNED H
A790 ; Lu # LATIN CAPITAL LETTER N WITH DESCENDER
A792 ; Lu # LATIN CAPITAL LETTER C WITH BAR
A796 ; Lu # LATIN CAPITAL LETTER B WITH FLOURISH
A798 ; Lu # LATIN CAPITAL LETTER F WITH STROKE
A79A ; Lu # LATIN CAPITAL LETTER VOLAPUK AE
A79C ; Lu # LATIN CAPITAL LETTER VOLAPUK OE
A79E ; Lu # LATIN CAPITAL LETTER VOLAPUK UE
A7A0 ; Lu # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
A7A2 ; Lu # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
A7A4 ; Lu # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
A7A6 ; Lu # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
A7A8 ; Lu # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
A7AA..A7AE ; Lu # [5] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER SMALL CAPITAL I
A7B0..A7B4 ; Lu # [5] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA
A7B6 ; Lu # LATIN CAPITAL LETTER OMEGA
A7B8 ; Lu # LATIN CAPITAL LETTER U WITH STROKE
A7BA ; Lu # LATIN CAPITAL LETTER GLOTTAL A
A7BC ; Lu # LATIN CAPITAL LETTER GLOTTAL I
A7BE ; Lu # LATIN CAPITAL LETTER GLOTTAL U
A7C0 ; Lu # LATIN CAPITAL LETTER OLD POLISH O
A7C2 ; Lu # LATIN CAPITAL LETTER ANGLICANA W
A7C4..A7C7 ; Lu # [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
A7C9 ; Lu # LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
A7CB..A7CC ; Lu # [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE
A7CE ; Lu # LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE
A7D0 ; Lu # LATIN CAPITAL LETTER CLOSED INSULAR G
A7D2 ; Lu # LATIN CAPITAL LETTER DOUBLE THORN
A7D4 ; Lu # LATIN CAPITAL LETTER DOUBLE WYNN
A7D6 ; Lu # LATIN CAPITAL LETTER MIDDLE SCOTS S
A7D8 ; Lu # LATIN CAPITAL LETTER SIGMOID S
A7DA ; Lu # LATIN CAPITAL LETTER LAMBDA
A7DC ; Lu # LATIN CAPITAL LETTER LAMBDA WITH STROKE
A7F5 ; Lu # LATIN CAPITAL LETTER REVERSED HALF H
FF21..FF3A ; Lu # [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
10400..10427 ; Lu # [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
104B0..104D3 ; Lu # [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
10570..1057A ; Lu # [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
1057C..1058A ; Lu # [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
1058C..10592 ; Lu # [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
10594..10595 ; Lu # [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
10C80..10CB2 ; Lu # [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
10D50..10D65 ; Lu # [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
118A0..118BF ; Lu # [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
16E40..16E5F ; Lu # [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
16EA0..16EB8 ; Lu # [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
1D400..1D419 ; Lu # [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z
1D434..1D44D ; Lu # [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z
1D468..1D481 ; Lu # [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z
1D49C ; Lu # MATHEMATICAL SCRIPT CAPITAL A
1D49E..1D49F ; Lu # [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
1D4A2 ; Lu # MATHEMATICAL SCRIPT CAPITAL G
1D4A5..1D4A6 ; Lu # [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
1D4A9..1D4AC ; Lu # [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
1D4AE..1D4B5 ; Lu # [8] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT CAPITAL Z
1D4D0..1D4E9 ; Lu # [26] MATHEMATICAL BOLD SCRIPT CAPITAL A..MATHEMATICAL BOLD SCRIPT CAPITAL Z
1D504..1D505 ; Lu # [2] MATHEMATICAL FRAKTUR CAPITAL A..MATHEMATICAL FRAKTUR CAPITAL B
1D507..1D50A ; Lu # [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
1D50D..1D514 ; Lu # [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
1D516..1D51C ; Lu # [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
1D538..1D539 ; Lu # [2] MATHEMATICAL DOUBLE-STRUCK CAPITAL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
1D53B..1D53E ; Lu # [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
1D540..1D544 ; Lu # [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
1D546 ; Lu # MATHEMATICAL DOUBLE-STRUCK CAPITAL O
1D54A..1D550 ; Lu # [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
1D56C..1D585 ; Lu # [26] MATHEMATICAL BOLD FRAKTUR CAPITAL A..MATHEMATICAL BOLD FRAKTUR CAPITAL Z
1D5A0..1D5B9 ; Lu # [26] MATHEMATICAL SANS-SERIF CAPITAL A..MATHEMATICAL SANS-SERIF CAPITAL Z
1D5D4..1D5ED ; Lu # [26] MATHEMATICAL SANS-SERIF BOLD CAPITAL A..MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
1D608..1D621 ; Lu # [26] MATHEMATICAL SANS-SERIF ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
1D63C..1D655 ; Lu # [26] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
1D670..1D689 ; Lu # [26] MATHEMATICAL MONOSPACE CAPITAL A..MATHEMATICAL MONOSPACE CAPITAL Z
1D6A8..1D6C0 ; Lu # [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
1D6E2..1D6FA ; Lu # [25] MATHEMATICAL ITALIC CAPITAL ALPHA..MATHEMATICAL ITALIC CAPITAL OMEGA
1D71C..1D734 ; Lu # [25] MATHEMATICAL BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
1D756..1D76E ; Lu # [25] MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
1D790..1D7A8 ; Lu # [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
1D7CA ; Lu # MATHEMATICAL BOLD CAPITAL DIGAMMA
1E900..1E921 ; Lu # [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
# Total code points: 1886
# ================================================
# General_Category=Lowercase_Letter
0061..007A ; Ll # [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
00B5 ; Ll # MICRO SIGN
00DF..00F6 ; Ll # [24] LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS
00F8..00FF ; Ll # [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
0101 ; Ll # LATIN SMALL LETTER A WITH MACRON
0103 ; Ll # LATIN SMALL LETTER A WITH BREVE
0105 ; Ll # LATIN SMALL LETTER A WITH OGONEK
0107 ; Ll # LATIN SMALL LETTER C WITH ACUTE
0109 ; Ll # LATIN SMALL LETTER C WITH CIRCUMFLEX
010B ; Ll # LATIN SMALL LETTER C WITH DOT ABOVE
010D ; Ll # LATIN SMALL LETTER C WITH CARON
010F ; Ll # LATIN SMALL LETTER D WITH CARON
0111 ; Ll # LATIN SMALL LETTER D WITH STROKE
0113 ; Ll # LATIN SMALL LETTER E WITH MACRON
0115 ; Ll # LATIN SMALL LETTER E WITH BREVE
0117 ; Ll # LATIN SMALL LETTER E WITH DOT ABOVE
0119 ; Ll # LATIN SMALL LETTER E WITH OGONEK
011B ; Ll # LATIN SMALL LETTER E WITH CARON
011D ; Ll # LATIN SMALL LETTER G WITH CIRCUMFLEX
011F ; Ll # LATIN SMALL LETTER G WITH BREVE
0121 ; Ll # LATIN SMALL LETTER G WITH DOT ABOVE
0123 ; Ll # LATIN SMALL LETTER G WITH CEDILLA
0125 ; Ll # LATIN SMALL LETTER H WITH CIRCUMFLEX
0127 ; Ll # LATIN SMALL LETTER H WITH STROKE
0129 ; Ll # LATIN SMALL LETTER I WITH TILDE
012B ; Ll # LATIN SMALL LETTER I WITH MACRON
012D ; Ll # LATIN SMALL LETTER I WITH BREVE
012F ; Ll # LATIN SMALL LETTER I WITH OGONEK
0131 ; Ll # LATIN SMALL LETTER DOTLESS I
0133 ; Ll # LATIN SMALL LIGATURE IJ
0135 ; Ll # LATIN SMALL LETTER J WITH CIRCUMFLEX
0137..0138 ; Ll # [2] LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA
013A ; Ll # LATIN SMALL LETTER L WITH ACUTE
013C ; Ll # LATIN SMALL LETTER L WITH CEDILLA
013E ; Ll # LATIN SMALL LETTER L WITH CARON
0140 ; Ll # LATIN SMALL LETTER L WITH MIDDLE DOT
0142 ; Ll # LATIN SMALL LETTER L WITH STROKE
0144 ; Ll # LATIN SMALL LETTER N WITH ACUTE
0146 ; Ll # LATIN SMALL LETTER N WITH CEDILLA
0148..0149 ; Ll # [2] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
014B ; Ll # LATIN SMALL LETTER ENG
014D ; Ll # LATIN SMALL LETTER O WITH MACRON
014F ; Ll # LATIN SMALL LETTER O WITH BREVE
0151 ; Ll # LATIN SMALL LETTER O WITH DOUBLE ACUTE
0153 ; Ll # LATIN SMALL LIGATURE OE
0155 ; Ll # LATIN SMALL LETTER R WITH ACUTE
0157 ; Ll # LATIN SMALL LETTER R WITH CEDILLA
0159 ; Ll # LATIN SMALL LETTER R WITH CARON
015B ; Ll # LATIN SMALL LETTER S WITH ACUTE
015D ; Ll # LATIN SMALL LETTER S WITH CIRCUMFLEX
015F ; Ll # LATIN SMALL LETTER S WITH CEDILLA
0161 ; Ll # LATIN SMALL LETTER S WITH CARON
0163 ; Ll # LATIN SMALL LETTER T WITH CEDILLA
0165 ; Ll # LATIN SMALL LETTER T WITH CARON
0167 ; Ll # LATIN SMALL LETTER T WITH STROKE
0169 ; Ll # LATIN SMALL LETTER U WITH TILDE
016B ; Ll # LATIN SMALL LETTER U WITH MACRON
016D ; Ll # LATIN SMALL LETTER U WITH BREVE
016F ; Ll # LATIN SMALL LETTER U WITH RING ABOVE
0171 ; Ll # LATIN SMALL LETTER U WITH DOUBLE ACUTE
0173 ; Ll # LATIN SMALL LETTER U WITH OGONEK
0175 ; Ll # LATIN SMALL LETTER W WITH CIRCUMFLEX
0177 ; Ll # LATIN SMALL LETTER Y WITH CIRCUMFLEX
017A ; Ll # LATIN SMALL LETTER Z WITH ACUTE
017C ; Ll # LATIN SMALL LETTER Z WITH DOT ABOVE
017E..0180 ; Ll # [3] LATIN SMALL LETTER Z WITH CARON..LATIN SMALL LETTER B WITH STROKE
0183 ; Ll # LATIN SMALL LETTER B WITH TOPBAR
0185 ; Ll # LATIN SMALL LETTER TONE SIX
0188 ; Ll # LATIN SMALL LETTER C WITH HOOK
018C..018D ; Ll # [2] LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA
0192 ; Ll # LATIN SMALL LETTER F WITH HOOK
0195 ; Ll # LATIN SMALL LETTER HV
0199..019B ; Ll # [3] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
019E ; Ll # LATIN SMALL LETTER N WITH LONG RIGHT LEG
01A1 ; Ll # LATIN SMALL LETTER O WITH HORN
01A3 ; Ll # LATIN SMALL LETTER OI
01A5 ; Ll # LATIN SMALL LETTER P WITH HOOK
01A8 ; Ll # LATIN SMALL LETTER TONE TWO
01AA..01AB ; Ll # [2] LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK
01AD ; Ll # LATIN SMALL LETTER T WITH HOOK
01B0 ; Ll # LATIN SMALL LETTER U WITH HORN
01B4 ; Ll # LATIN SMALL LETTER Y WITH HOOK
01B6 ; Ll # LATIN SMALL LETTER Z WITH STROKE
01B9..01BA ; Ll # [2] LATIN SMALL LETTER EZH REVERSED..LATIN SMALL LETTER EZH WITH TAIL
01BD..01BF ; Ll # [3] LATIN SMALL LETTER TONE FIVE..LATIN LETTER WYNN
01C6 ; Ll # LATIN SMALL LETTER DZ WITH CARON
01C9 ; Ll # LATIN SMALL LETTER LJ
01CC ; Ll # LATIN SMALL LETTER NJ
01CE ; Ll # LATIN SMALL LETTER A WITH CARON
01D0 ; Ll # LATIN SMALL LETTER I WITH CARON
01D2 ; Ll # LATIN SMALL LETTER O WITH CARON
01D4 ; Ll # LATIN SMALL LETTER U WITH CARON
01D6 ; Ll # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
01D8 ; Ll # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
01DA ; Ll # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
01DC..01DD ; Ll # [2] LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E
01DF ; Ll # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
01E1 ; Ll # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
01E3 ; Ll # LATIN SMALL LETTER AE WITH MACRON
01E5 ; Ll # LATIN SMALL LETTER G WITH STROKE
01E7 ; Ll # LATIN SMALL LETTER G WITH CARON
01E9 ; Ll # LATIN SMALL LETTER K WITH CARON
01EB ; Ll # LATIN SMALL LETTER O WITH OGONEK
01ED ; Ll # LATIN SMALL LETTER O WITH OGONEK AND MACRON
01EF..01F0 ; Ll # [2] LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON
01F3 ; Ll # LATIN SMALL LETTER DZ
01F5 ; Ll # LATIN SMALL LETTER G WITH ACUTE
01F9 ; Ll # LATIN SMALL LETTER N WITH GRAVE
01FB ; Ll # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
01FD ; Ll # LATIN SMALL LETTER AE WITH ACUTE
01FF ; Ll # LATIN SMALL LETTER O WITH STROKE AND ACUTE
0201 ; Ll # LATIN SMALL LETTER A WITH DOUBLE GRAVE
0203 ; Ll # LATIN SMALL LETTER A WITH INVERTED BREVE
0205 ; Ll # LATIN SMALL LETTER E WITH DOUBLE GRAVE
0207 ; Ll # LATIN SMALL LETTER E WITH INVERTED BREVE
0209 ; Ll # LATIN SMALL LETTER I WITH DOUBLE GRAVE
020B ; Ll # LATIN SMALL LETTER I WITH INVERTED BREVE
020D ; Ll # LATIN SMALL LETTER O WITH DOUBLE GRAVE
020F ; Ll # LATIN SMALL LETTER O WITH INVERTED BREVE
0211 ; Ll # LATIN SMALL LETTER R WITH DOUBLE GRAVE
0213 ; Ll # LATIN SMALL LETTER R WITH INVERTED BREVE
0215 ; Ll # LATIN SMALL LETTER U WITH DOUBLE GRAVE
0217 ; Ll # LATIN SMALL LETTER U WITH INVERTED BREVE
0219 ; Ll # LATIN SMALL LETTER S WITH COMMA BELOW
021B ; Ll # LATIN SMALL LETTER T WITH COMMA BELOW
021D ; Ll # LATIN SMALL LETTER YOGH
021F ; Ll # LATIN SMALL LETTER H WITH CARON
0221 ; Ll # LATIN SMALL LETTER D WITH CURL
0223 ; Ll # LATIN SMALL LETTER OU
0225 ; Ll # LATIN SMALL LETTER Z WITH HOOK
0227 ; Ll # LATIN SMALL LETTER A WITH DOT ABOVE
0229 ; Ll # LATIN SMALL LETTER E WITH CEDILLA
022B ; Ll # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
022D ; Ll # LATIN SMALL LETTER O WITH TILDE AND MACRON
022F ; Ll # LATIN SMALL LETTER O WITH DOT ABOVE
0231 ; Ll # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
0233..0239 ; Ll # [7] LATIN SMALL LETTER Y WITH MACRON..LATIN SMALL LETTER QP DIGRAPH
023C ; Ll # LATIN SMALL LETTER C WITH STROKE
023F..0240 ; Ll # [2] LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL
0242 ; Ll # LATIN SMALL LETTER GLOTTAL STOP
0247 ; Ll # LATIN SMALL LETTER E WITH STROKE
0249 ; Ll # LATIN SMALL LETTER J WITH STROKE
024B ; Ll # LATIN SMALL LETTER Q WITH HOOK TAIL
024D ; Ll # LATIN SMALL LETTER R WITH STROKE
024F..0293 ; Ll # [69] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER EZH WITH CURL
0296..02AF ; Ll # [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
0371 ; Ll # GREEK SMALL LETTER HETA
0373 ; Ll # GREEK SMALL LETTER ARCHAIC SAMPI
0377 ; Ll # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
037B..037D ; Ll # [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
0390 ; Ll # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
03AC..03CE ; Ll # [35] GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS
03D0..03D1 ; Ll # [2] GREEK BETA SYMBOL..GREEK THETA SYMBOL
03D5..03D7 ; Ll # [3] GREEK PHI SYMBOL..GREEK KAI SYMBOL
03D9 ; Ll # GREEK SMALL LETTER ARCHAIC KOPPA
03DB ; Ll # GREEK SMALL LETTER STIGMA
03DD ; Ll # GREEK SMALL LETTER DIGAMMA
03DF ; Ll # GREEK SMALL LETTER KOPPA
03E1 ; Ll # GREEK SMALL LETTER SAMPI
03E3 ; Ll # COPTIC SMALL LETTER SHEI
03E5 ; Ll # COPTIC SMALL LETTER FEI
03E7 ; Ll # COPTIC SMALL LETTER KHEI
03E9 ; Ll # COPTIC SMALL LETTER HORI
03EB ; Ll # COPTIC SMALL LETTER GANGIA
03ED ; Ll # COPTIC SMALL LETTER SHIMA
03EF..03F3 ; Ll # [5] COPTIC SMALL LETTER DEI..GREEK LETTER YOT
03F5 ; Ll # GREEK LUNATE EPSILON SYMBOL
03F8 ; Ll # GREEK SMALL LETTER SHO
03FB..03FC ; Ll # [2] GREEK SMALL LETTER SAN..GREEK RHO WITH STROKE SYMBOL
0430..045F ; Ll # [48] CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE
0461 ; Ll # CYRILLIC SMALL LETTER OMEGA
0463 ; Ll # CYRILLIC SMALL LETTER YAT
0465 ; Ll # CYRILLIC SMALL LETTER IOTIFIED E
0467 ; Ll # CYRILLIC SMALL LETTER LITTLE YUS
0469 ; Ll # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
046B ; Ll # CYRILLIC SMALL LETTER BIG YUS
046D ; Ll # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
046F ; Ll # CYRILLIC SMALL LETTER KSI
0471 ; Ll # CYRILLIC SMALL LETTER PSI
0473 ; Ll # CYRILLIC SMALL LETTER FITA
0475 ; Ll # CYRILLIC SMALL LETTER IZHITSA
0477 ; Ll # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
0479 ; Ll # CYRILLIC SMALL LETTER UK
047B ; Ll # CYRILLIC SMALL LETTER ROUND OMEGA
047D ; Ll # CYRILLIC SMALL LETTER OMEGA WITH TITLO
047F ; Ll # CYRILLIC SMALL LETTER OT
0481 ; Ll # CYRILLIC SMALL LETTER KOPPA
048B ; Ll # CYRILLIC SMALL LETTER SHORT I WITH TAIL
048D ; Ll # CYRILLIC SMALL LETTER SEMISOFT SIGN
048F ; Ll # CYRILLIC SMALL LETTER ER WITH TICK
0491 ; Ll # CYRILLIC SMALL LETTER GHE WITH UPTURN
0493 ; Ll # CYRILLIC SMALL LETTER GHE WITH STROKE
0495 ; Ll # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
0497 ; Ll # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
0499 ; Ll # CYRILLIC SMALL LETTER ZE WITH DESCENDER
049B ; Ll # CYRILLIC SMALL LETTER KA WITH DESCENDER
049D ; Ll # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
049F ; Ll # CYRILLIC SMALL LETTER KA WITH STROKE
04A1 ; Ll # CYRILLIC SMALL LETTER BASHKIR KA
04A3 ; Ll # CYRILLIC SMALL LETTER EN WITH DESCENDER
04A5 ; Ll # CYRILLIC SMALL LIGATURE EN GHE
04A7 ; Ll # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
04A9 ; Ll # CYRILLIC SMALL LETTER ABKHASIAN HA
04AB ; Ll # CYRILLIC SMALL LETTER ES WITH DESCENDER
04AD ; Ll # CYRILLIC SMALL LETTER TE WITH DESCENDER
04AF ; Ll # CYRILLIC SMALL LETTER STRAIGHT U
04B1 ; Ll # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
04B3 ; Ll # CYRILLIC SMALL LETTER HA WITH DESCENDER
04B5 ; Ll # CYRILLIC SMALL LIGATURE TE TSE
04B7 ; Ll # CYRILLIC SMALL LETTER CHE WITH DESCENDER
04B9 ; Ll # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
04BB ; Ll # CYRILLIC SMALL LETTER SHHA
04BD ; Ll # CYRILLIC SMALL LETTER ABKHASIAN CHE
04BF ; Ll # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
04C2 ; Ll # CYRILLIC SMALL LETTER ZHE WITH BREVE
04C4 ; Ll # CYRILLIC SMALL LETTER KA WITH HOOK
04C6 ; Ll # CYRILLIC SMALL LETTER EL WITH TAIL
04C8 ; Ll # CYRILLIC SMALL LETTER EN WITH HOOK
04CA ; Ll # CYRILLIC SMALL LETTER EN WITH TAIL
04CC ; Ll # CYRILLIC SMALL LETTER KHAKASSIAN CHE
04CE..04CF ; Ll # [2] CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA
04D1 ; Ll # CYRILLIC SMALL LETTER A WITH BREVE
04D3 ; Ll # CYRILLIC SMALL LETTER A WITH DIAERESIS
04D5 ; Ll # CYRILLIC SMALL LIGATURE A IE
04D7 ; Ll # CYRILLIC SMALL LETTER IE WITH BREVE
04D9 ; Ll # CYRILLIC SMALL LETTER SCHWA
04DB ; Ll # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
04DD ; Ll # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
04DF ; Ll # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
04E1 ; Ll # CYRILLIC SMALL LETTER ABKHASIAN DZE
04E3 ; Ll # CYRILLIC SMALL LETTER I WITH MACRON
04E5 ; Ll # CYRILLIC SMALL LETTER I WITH DIAERESIS
04E7 ; Ll # CYRILLIC SMALL LETTER O WITH DIAERESIS
04E9 ; Ll # CYRILLIC SMALL LETTER BARRED O
04EB ; Ll # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
04ED ; Ll # CYRILLIC SMALL LETTER E WITH DIAERESIS
04EF ; Ll # CYRILLIC SMALL LETTER U WITH MACRON
04F1 ; Ll # CYRILLIC SMALL LETTER U WITH DIAERESIS
04F3 ; Ll # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
04F5 ; Ll # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
04F7 ; Ll # CYRILLIC SMALL LETTER GHE WITH DESCENDER
04F9 ; Ll # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
04FB ; Ll # CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
04FD ; Ll # CYRILLIC SMALL LETTER HA WITH HOOK
04FF ; Ll # CYRILLIC SMALL LETTER HA WITH STROKE
0501 ; Ll # CYRILLIC SMALL LETTER KOMI DE
0503 ; Ll # CYRILLIC SMALL LETTER KOMI DJE
0505 ; Ll # CYRILLIC SMALL LETTER KOMI ZJE
0507 ; Ll # CYRILLIC SMALL LETTER KOMI DZJE
0509 ; Ll # CYRILLIC SMALL LETTER KOMI LJE
050B ; Ll # CYRILLIC SMALL LETTER KOMI NJE
050D ; Ll # CYRILLIC SMALL LETTER KOMI SJE
050F ; Ll # CYRILLIC SMALL LETTER KOMI TJE
0511 ; Ll # CYRILLIC SMALL LETTER REVERSED ZE
0513 ; Ll # CYRILLIC SMALL LETTER EL WITH HOOK
0515 ; Ll # CYRILLIC SMALL LETTER LHA
0517 ; Ll # CYRILLIC SMALL LETTER RHA
0519 ; Ll # CYRILLIC SMALL LETTER YAE
051B ; Ll # CYRILLIC SMALL LETTER QA
051D ; Ll # CYRILLIC SMALL LETTER WE
051F ; Ll # CYRILLIC SMALL LETTER ALEUT KA
0521 ; Ll # CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
0523 ; Ll # CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
0525 ; Ll # CYRILLIC SMALL LETTER PE WITH DESCENDER
0527 ; Ll # CYRILLIC SMALL LETTER SHHA WITH DESCENDER
0529 ; Ll # CYRILLIC SMALL LETTER EN WITH LEFT HOOK
052B ; Ll # CYRILLIC SMALL LETTER DZZHE
052D ; Ll # CYRILLIC SMALL LETTER DCHE
052F ; Ll # CYRILLIC SMALL LETTER EL WITH DESCENDER
0560..0588 ; Ll # [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
10D0..10FA ; Ll # [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
10FD..10FF ; Ll # [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
13F8..13FD ; Ll # [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
1C80..1C88 ; Ll # [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
1C8A ; Ll # CYRILLIC SMALL LETTER TJE
1D00..1D2B ; Ll # [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D6B..1D77 ; Ll # [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
1D79..1D9A ; Ll # [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
1E01 ; Ll # LATIN SMALL LETTER A WITH RING BELOW
1E03 ; Ll # LATIN SMALL LETTER B WITH DOT ABOVE
1E05 ; Ll # LATIN SMALL LETTER B WITH DOT BELOW
1E07 ; Ll # LATIN SMALL LETTER B WITH LINE BELOW
1E09 ; Ll # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
1E0B ; Ll # LATIN SMALL LETTER D WITH DOT ABOVE
1E0D ; Ll # LATIN SMALL LETTER D WITH DOT BELOW
1E0F ; Ll # LATIN SMALL LETTER D WITH LINE BELOW
1E11 ; Ll # LATIN SMALL LETTER D WITH CEDILLA
1E13 ; Ll # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
1E15 ; Ll # LATIN SMALL LETTER E WITH MACRON AND GRAVE
1E17 ; Ll # LATIN SMALL LETTER E WITH MACRON AND ACUTE
1E19 ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
1E1B ; Ll # LATIN SMALL LETTER E WITH TILDE BELOW
1E1D ; Ll # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
1E1F ; Ll # LATIN SMALL LETTER F WITH DOT ABOVE
1E21 ; Ll # LATIN SMALL LETTER G WITH MACRON
1E23 ; Ll # LATIN SMALL LETTER H WITH DOT ABOVE
1E25 ; Ll # LATIN SMALL LETTER H WITH DOT BELOW
1E27 ; Ll # LATIN SMALL LETTER H WITH DIAERESIS
1E29 ; Ll # LATIN SMALL LETTER H WITH CEDILLA
1E2B ; Ll # LATIN SMALL LETTER H WITH BREVE BELOW
1E2D ; Ll # LATIN SMALL LETTER I WITH TILDE BELOW
1E2F ; Ll # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
1E31 ; Ll # LATIN SMALL LETTER K WITH ACUTE
1E33 ; Ll # LATIN SMALL LETTER K WITH DOT BELOW
1E35 ; Ll # LATIN SMALL LETTER K WITH LINE BELOW
1E37 ; Ll # LATIN SMALL LETTER L WITH DOT BELOW
1E39 ; Ll # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
1E3B ; Ll # LATIN SMALL LETTER L WITH LINE BELOW
1E3D ; Ll # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
1E3F ; Ll # LATIN SMALL LETTER M WITH ACUTE
1E41 ; Ll # LATIN SMALL LETTER M WITH DOT ABOVE
1E43 ; Ll # LATIN SMALL LETTER M WITH DOT BELOW
1E45 ; Ll # LATIN SMALL LETTER N WITH DOT ABOVE
1E47 ; Ll # LATIN SMALL LETTER N WITH DOT BELOW
1E49 ; Ll # LATIN SMALL LETTER N WITH LINE BELOW
1E4B ; Ll # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
1E4D ; Ll # LATIN SMALL LETTER O WITH TILDE AND ACUTE
1E4F ; Ll # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
1E51 ; Ll # LATIN SMALL LETTER O WITH MACRON AND GRAVE
1E53 ; Ll # LATIN SMALL LETTER O WITH MACRON AND ACUTE
1E55 ; Ll # LATIN SMALL LETTER P WITH ACUTE
1E57 ; Ll # LATIN SMALL LETTER P WITH DOT ABOVE
1E59 ; Ll # LATIN SMALL LETTER R WITH DOT ABOVE
1E5B ; Ll # LATIN SMALL LETTER R WITH DOT BELOW
1E5D ; Ll # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
1E5F ; Ll # LATIN SMALL LETTER R WITH LINE BELOW
1E61 ; Ll # LATIN SMALL LETTER S WITH DOT ABOVE
1E63 ; Ll # LATIN SMALL LETTER S WITH DOT BELOW
1E65 ; Ll # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
1E67 ; Ll # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
1E69 ; Ll # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
1E6B ; Ll # LATIN SMALL LETTER T WITH DOT ABOVE
1E6D ; Ll # LATIN SMALL LETTER T WITH DOT BELOW
1E6F ; Ll # LATIN SMALL LETTER T WITH LINE BELOW
1E71 ; Ll # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
1E73 ; Ll # LATIN SMALL LETTER U WITH DIAERESIS BELOW
1E75 ; Ll # LATIN SMALL LETTER U WITH TILDE BELOW
1E77 ; Ll # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
1E79 ; Ll # LATIN SMALL LETTER U WITH TILDE AND ACUTE
1E7B ; Ll # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
1E7D ; Ll # LATIN SMALL LETTER V WITH TILDE
1E7F ; Ll # LATIN SMALL LETTER V WITH DOT BELOW
1E81 ; Ll # LATIN SMALL LETTER W WITH GRAVE
1E83 ; Ll # LATIN SMALL LETTER W WITH ACUTE
1E85 ; Ll # LATIN SMALL LETTER W WITH DIAERESIS
1E87 ; Ll # LATIN SMALL LETTER W WITH DOT ABOVE
1E89 ; Ll # LATIN SMALL LETTER W WITH DOT BELOW
1E8B ; Ll # LATIN SMALL LETTER X WITH DOT ABOVE
1E8D ; Ll # LATIN SMALL LETTER X WITH DIAERESIS
1E8F ; Ll # LATIN SMALL LETTER Y WITH DOT ABOVE
1E91 ; Ll # LATIN SMALL LETTER Z WITH CIRCUMFLEX
1E93 ; Ll # LATIN SMALL LETTER Z WITH DOT BELOW
1E95..1E9D ; Ll # [9] LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER LONG S WITH HIGH STROKE
1E9F ; Ll # LATIN SMALL LETTER DELTA
1EA1 ; Ll # LATIN SMALL LETTER A WITH DOT BELOW
1EA3 ; Ll # LATIN SMALL LETTER A WITH HOOK ABOVE
1EA5 ; Ll # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
1EA7 ; Ll # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
1EA9 ; Ll # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
1EAB ; Ll # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
1EAD ; Ll # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
1EAF ; Ll # LATIN SMALL LETTER A WITH BREVE AND ACUTE
1EB1 ; Ll # LATIN SMALL LETTER A WITH BREVE AND GRAVE
1EB3 ; Ll # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
1EB5 ; Ll # LATIN SMALL LETTER A WITH BREVE AND TILDE
1EB7 ; Ll # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
1EB9 ; Ll # LATIN SMALL LETTER E WITH DOT BELOW
1EBB ; Ll # LATIN SMALL LETTER E WITH HOOK ABOVE
1EBD ; Ll # LATIN SMALL LETTER E WITH TILDE
1EBF ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
1EC1 ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
1EC3 ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
1EC5 ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
1EC7 ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
1EC9 ; Ll # LATIN SMALL LETTER I WITH HOOK ABOVE
1ECB ; Ll # LATIN SMALL LETTER I WITH DOT BELOW
1ECD ; Ll # LATIN SMALL LETTER O WITH DOT BELOW
1ECF ; Ll # LATIN SMALL LETTER O WITH HOOK ABOVE
1ED1 ; Ll # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
1ED3 ; Ll # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
1ED5 ; Ll # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
1ED7 ; Ll # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
1ED9 ; Ll # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
1EDB ; Ll # LATIN SMALL LETTER O WITH HORN AND ACUTE
1EDD ; Ll # LATIN SMALL LETTER O WITH HORN AND GRAVE
1EDF ; Ll # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
1EE1 ; Ll # LATIN SMALL LETTER O WITH HORN AND TILDE
1EE3 ; Ll # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
1EE5 ; Ll # LATIN SMALL LETTER U WITH DOT BELOW
1EE7 ; Ll # LATIN SMALL LETTER U WITH HOOK ABOVE
1EE9 ; Ll # LATIN SMALL LETTER U WITH HORN AND ACUTE
1EEB ; Ll # LATIN SMALL LETTER U WITH HORN AND GRAVE
1EED ; Ll # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
1EEF ; Ll # LATIN SMALL LETTER U WITH HORN AND TILDE
1EF1 ; Ll # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
1EF3 ; Ll # LATIN SMALL LETTER Y WITH GRAVE
1EF5 ; Ll # LATIN SMALL LETTER Y WITH DOT BELOW
1EF7 ; Ll # LATIN SMALL LETTER Y WITH HOOK ABOVE
1EF9 ; Ll # LATIN SMALL LETTER Y WITH TILDE
1EFB ; Ll # LATIN SMALL LETTER MIDDLE-WELSH LL
1EFD ; Ll # LATIN SMALL LETTER MIDDLE-WELSH V
1EFF..1F07 ; Ll # [9] LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
1F10..1F15 ; Ll # [6] GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
1F20..1F27 ; Ll # [8] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
1F30..1F37 ; Ll # [8] GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
1F40..1F45 ; Ll # [6] GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
1F50..1F57 ; Ll # [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
1F60..1F67 ; Ll # [8] GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
1F70..1F7D ; Ll # [14] GREEK SMALL LETTER ALPHA WITH VARIA..GREEK SMALL LETTER OMEGA WITH OXIA
1F80..1F87 ; Ll # [8] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
1F90..1F97 ; Ll # [8] GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
1FA0..1FA7 ; Ll # [8] GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
1FB0..1FB4 ; Ll # [5] GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
1FB6..1FB7 ; Ll # [2] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
1FBE ; Ll # GREEK PROSGEGRAMMENI
1FC2..1FC4 ; Ll # [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
1FC6..1FC7 ; Ll # [2] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
1FD0..1FD3 ; Ll # [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
1FD6..1FD7 ; Ll # [2] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
1FE0..1FE7 ; Ll # [8] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
1FF2..1FF4 ; Ll # [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
1FF6..1FF7 ; Ll # [2] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
210A ; Ll # SCRIPT SMALL G
210E..210F ; Ll # [2] PLANCK CONSTANT..PLANCK CONSTANT OVER TWO PI
2113 ; Ll # SCRIPT SMALL L
212F ; Ll # SCRIPT SMALL E
2134 ; Ll # SCRIPT SMALL O
2139 ; Ll # INFORMATION SOURCE
213C..213D ; Ll # [2] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK SMALL GAMMA
2146..2149 ; Ll # [4] DOUBLE-STRUCK ITALIC SMALL D..DOUBLE-STRUCK ITALIC SMALL J
214E ; Ll # TURNED SMALL F
2184 ; Ll # LATIN SMALL LETTER REVERSED C
2C30..2C5F ; Ll # [48] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
2C61 ; Ll # LATIN SMALL LETTER L WITH DOUBLE BAR
2C65..2C66 ; Ll # [2] LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE
2C68 ; Ll # LATIN SMALL LETTER H WITH DESCENDER
2C6A ; Ll # LATIN SMALL LETTER K WITH DESCENDER
2C6C ; Ll # LATIN SMALL LETTER Z WITH DESCENDER
2C71 ; Ll # LATIN SMALL LETTER V WITH RIGHT HOOK
2C73..2C74 ; Ll # [2] LATIN SMALL LETTER W WITH HOOK..LATIN SMALL LETTER V WITH CURL
2C76..2C7B ; Ll # [6] LATIN SMALL LETTER HALF H..LATIN LETTER SMALL CAPITAL TURNED E
2C81 ; Ll # COPTIC SMALL LETTER ALFA
2C83 ; Ll # COPTIC SMALL LETTER VIDA
2C85 ; Ll # COPTIC SMALL LETTER GAMMA
2C87 ; Ll # COPTIC SMALL LETTER DALDA
2C89 ; Ll # COPTIC SMALL LETTER EIE
2C8B ; Ll # COPTIC SMALL LETTER SOU
2C8D ; Ll # COPTIC SMALL LETTER ZATA
2C8F ; Ll # COPTIC SMALL LETTER HATE
2C91 ; Ll # COPTIC SMALL LETTER THETHE
2C93 ; Ll # COPTIC SMALL LETTER IAUDA
2C95 ; Ll # COPTIC SMALL LETTER KAPA
2C97 ; Ll # COPTIC SMALL LETTER LAULA
2C99 ; Ll # COPTIC SMALL LETTER MI
2C9B ; Ll # COPTIC SMALL LETTER NI
2C9D ; Ll # COPTIC SMALL LETTER KSI
2C9F ; Ll # COPTIC SMALL LETTER O
2CA1 ; Ll # COPTIC SMALL LETTER PI
2CA3 ; Ll # COPTIC SMALL LETTER RO
2CA5 ; Ll # COPTIC SMALL LETTER SIMA
2CA7 ; Ll # COPTIC SMALL LETTER TAU
2CA9 ; Ll # COPTIC SMALL LETTER UA
2CAB ; Ll # COPTIC SMALL LETTER FI
2CAD ; Ll # COPTIC SMALL LETTER KHI
2CAF ; Ll # COPTIC SMALL LETTER PSI
2CB1 ; Ll # COPTIC SMALL LETTER OOU
2CB3 ; Ll # COPTIC SMALL LETTER DIALECT-P ALEF
2CB5 ; Ll # COPTIC SMALL LETTER OLD COPTIC AIN
2CB7 ; Ll # COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
2CB9 ; Ll # COPTIC SMALL LETTER DIALECT-P KAPA
2CBB ; Ll # COPTIC SMALL LETTER DIALECT-P NI
2CBD ; Ll # COPTIC SMALL LETTER CRYPTOGRAMMIC NI
2CBF ; Ll # COPTIC SMALL LETTER OLD COPTIC OOU
2CC1 ; Ll # COPTIC SMALL LETTER SAMPI
2CC3 ; Ll # COPTIC SMALL LETTER CROSSED SHEI
2CC5 ; Ll # COPTIC SMALL LETTER OLD COPTIC SHEI
2CC7 ; Ll # COPTIC SMALL LETTER OLD COPTIC ESH
2CC9 ; Ll # COPTIC SMALL LETTER AKHMIMIC KHEI
2CCB ; Ll # COPTIC SMALL LETTER DIALECT-P HORI
2CCD ; Ll # COPTIC SMALL LETTER OLD COPTIC HORI
2CCF ; Ll # COPTIC SMALL LETTER OLD COPTIC HA
2CD1 ; Ll # COPTIC SMALL LETTER L-SHAPED HA
2CD3 ; Ll # COPTIC SMALL LETTER OLD COPTIC HEI
2CD5 ; Ll # COPTIC SMALL LETTER OLD COPTIC HAT
2CD7 ; Ll # COPTIC SMALL LETTER OLD COPTIC GANGIA
2CD9 ; Ll # COPTIC SMALL LETTER OLD COPTIC DJA
2CDB ; Ll # COPTIC SMALL LETTER OLD COPTIC SHIMA
2CDD ; Ll # COPTIC SMALL LETTER OLD NUBIAN SHIMA
2CDF ; Ll # COPTIC SMALL LETTER OLD NUBIAN NGI
2CE1 ; Ll # COPTIC SMALL LETTER OLD NUBIAN NYI
2CE3..2CE4 ; Ll # [2] COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI
2CEC ; Ll # COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
2CEE ; Ll # COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
2CF3 ; Ll # COPTIC SMALL LETTER BOHAIRIC KHEI
2D00..2D25 ; Ll # [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
2D27 ; Ll # GEORGIAN SMALL LETTER YN
2D2D ; Ll # GEORGIAN SMALL LETTER AEN
A641 ; Ll # CYRILLIC SMALL LETTER ZEMLYA
A643 ; Ll # CYRILLIC SMALL LETTER DZELO
A645 ; Ll # CYRILLIC SMALL LETTER REVERSED DZE
A647 ; Ll # CYRILLIC SMALL LETTER IOTA
A649 ; Ll # CYRILLIC SMALL LETTER DJERV
A64B ; Ll # CYRILLIC SMALL LETTER MONOGRAPH UK
A64D ; Ll # CYRILLIC SMALL LETTER BROAD OMEGA
A64F ; Ll # CYRILLIC SMALL LETTER NEUTRAL YER
A651 ; Ll # CYRILLIC SMALL LETTER YERU WITH BACK YER
A653 ; Ll # CYRILLIC SMALL LETTER IOTIFIED YAT
A655 ; Ll # CYRILLIC SMALL LETTER REVERSED YU
A657 ; Ll # CYRILLIC SMALL LETTER IOTIFIED A
A659 ; Ll # CYRILLIC SMALL LETTER CLOSED LITTLE YUS
A65B ; Ll # CYRILLIC SMALL LETTER BLENDED YUS
A65D ; Ll # CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
A65F ; Ll # CYRILLIC SMALL LETTER YN
A661 ; Ll # CYRILLIC SMALL LETTER REVERSED TSE
A663 ; Ll # CYRILLIC SMALL LETTER SOFT DE
A665 ; Ll # CYRILLIC SMALL LETTER SOFT EL
A667 ; Ll # CYRILLIC SMALL LETTER SOFT EM
A669 ; Ll # CYRILLIC SMALL LETTER MONOCULAR O
A66B ; Ll # CYRILLIC SMALL LETTER BINOCULAR O
A66D ; Ll # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
A681 ; Ll # CYRILLIC SMALL LETTER DWE
A683 ; Ll # CYRILLIC SMALL LETTER DZWE
A685 ; Ll # CYRILLIC SMALL LETTER ZHWE
A687 ; Ll # CYRILLIC SMALL LETTER CCHE
A689 ; Ll # CYRILLIC SMALL LETTER DZZE
A68B ; Ll # CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
A68D ; Ll # CYRILLIC SMALL LETTER TWE
A68F ; Ll # CYRILLIC SMALL LETTER TSWE
A691 ; Ll # CYRILLIC SMALL LETTER TSSE
A693 ; Ll # CYRILLIC SMALL LETTER TCHE
A695 ; Ll # CYRILLIC SMALL LETTER HWE
A697 ; Ll # CYRILLIC SMALL LETTER SHWE
A699 ; Ll # CYRILLIC SMALL LETTER DOUBLE O
A69B ; Ll # CYRILLIC SMALL LETTER CROSSED O
A723 ; Ll # LATIN SMALL LETTER EGYPTOLOGICAL ALEF
A725 ; Ll # LATIN SMALL LETTER EGYPTOLOGICAL AIN
A727 ; Ll # LATIN SMALL LETTER HENG
A729 ; Ll # LATIN SMALL LETTER TZ
A72B ; Ll # LATIN SMALL LETTER TRESILLO
A72D ; Ll # LATIN SMALL LETTER CUATRILLO
A72F..A731 ; Ll # [3] LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S
A733 ; Ll # LATIN SMALL LETTER AA
A735 ; Ll # LATIN SMALL LETTER AO
A737 ; Ll # LATIN SMALL LETTER AU
A739 ; Ll # LATIN SMALL LETTER AV
A73B ; Ll # LATIN SMALL LETTER AV WITH HORIZONTAL BAR
A73D ; Ll # LATIN SMALL LETTER AY
A73F ; Ll # LATIN SMALL LETTER REVERSED C WITH DOT
A741 ; Ll # LATIN SMALL LETTER K WITH STROKE
A743 ; Ll # LATIN SMALL LETTER K WITH DIAGONAL STROKE
A745 ; Ll # LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
A747 ; Ll # LATIN SMALL LETTER BROKEN L
A749 ; Ll # LATIN SMALL LETTER L WITH HIGH STROKE
A74B ; Ll # LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
A74D ; Ll # LATIN SMALL LETTER O WITH LOOP
A74F ; Ll # LATIN SMALL LETTER OO
A751 ; Ll # LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
A753 ; Ll # LATIN SMALL LETTER P WITH FLOURISH
A755 ; Ll # LATIN SMALL LETTER P WITH SQUIRREL TAIL
A757 ; Ll # LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
A759 ; Ll # LATIN SMALL LETTER Q WITH DIAGONAL STROKE
A75B ; Ll # LATIN SMALL LETTER R ROTUNDA
A75D ; Ll # LATIN SMALL LETTER RUM ROTUNDA
A75F ; Ll # LATIN SMALL LETTER V WITH DIAGONAL STROKE
A761 ; Ll # LATIN SMALL LETTER VY
A763 ; Ll # LATIN SMALL LETTER VISIGOTHIC Z
A765 ; Ll # LATIN SMALL LETTER THORN WITH STROKE
A767 ; Ll # LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
A769 ; Ll # LATIN SMALL LETTER VEND
A76B ; Ll # LATIN SMALL LETTER ET
A76D ; Ll # LATIN SMALL LETTER IS
A76F ; Ll # LATIN SMALL LETTER CON
A771..A778 ; Ll # [8] LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM
A77A ; Ll # LATIN SMALL LETTER INSULAR D
A77C ; Ll # LATIN SMALL LETTER INSULAR F
A77F ; Ll # LATIN SMALL LETTER TURNED INSULAR G
A781 ; Ll # LATIN SMALL LETTER TURNED L
A783 ; Ll # LATIN SMALL LETTER INSULAR R
A785 ; Ll # LATIN SMALL LETTER INSULAR S
A787 ; Ll # LATIN SMALL LETTER INSULAR T
A78C ; Ll # LATIN SMALL LETTER SALTILLO
A78E ; Ll # LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A791 ; Ll # LATIN SMALL LETTER N WITH DESCENDER
A793..A795 ; Ll # [3] LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER H WITH PALATAL HOOK
A797 ; Ll # LATIN SMALL LETTER B WITH FLOURISH
A799 ; Ll # LATIN SMALL LETTER F WITH STROKE
A79B ; Ll # LATIN SMALL LETTER VOLAPUK AE
A79D ; Ll # LATIN SMALL LETTER VOLAPUK OE
A79F ; Ll # LATIN SMALL LETTER VOLAPUK UE
A7A1 ; Ll # LATIN SMALL LETTER G WITH OBLIQUE STROKE
A7A3 ; Ll # LATIN SMALL LETTER K WITH OBLIQUE STROKE
A7A5 ; Ll # LATIN SMALL LETTER N WITH OBLIQUE STROKE
A7A7 ; Ll # LATIN SMALL LETTER R WITH OBLIQUE STROKE
A7A9 ; Ll # LATIN SMALL LETTER S WITH OBLIQUE STROKE
A7AF ; Ll # LATIN LETTER SMALL CAPITAL Q
A7B5 ; Ll # LATIN SMALL LETTER BETA
A7B7 ; Ll # LATIN SMALL LETTER OMEGA
A7B9 ; Ll # LATIN SMALL LETTER U WITH STROKE
A7BB ; Ll # LATIN SMALL LETTER GLOTTAL A
A7BD ; Ll # LATIN SMALL LETTER GLOTTAL I
A7BF ; Ll # LATIN SMALL LETTER GLOTTAL U
A7C1 ; Ll # LATIN SMALL LETTER OLD POLISH O
A7C3 ; Ll # LATIN SMALL LETTER ANGLICANA W
A7C8 ; Ll # LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY
A7CA ; Ll # LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
A7CD ; Ll # LATIN SMALL LETTER S WITH DIAGONAL STROKE
A7CF ; Ll # LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE
A7D1 ; Ll # LATIN SMALL LETTER CLOSED INSULAR G
A7D3 ; Ll # LATIN SMALL LETTER DOUBLE THORN
A7D5 ; Ll # LATIN SMALL LETTER DOUBLE WYNN
A7D7 ; Ll # LATIN SMALL LETTER MIDDLE SCOTS S
A7D9 ; Ll # LATIN SMALL LETTER SIGMOID S
A7DB ; Ll # LATIN SMALL LETTER LAMBDA
A7F6 ; Ll # LATIN SMALL LETTER REVERSED HALF H
A7FA ; Ll # LATIN LETTER SMALL CAPITAL TURNED M
AB30..AB5A ; Ll # [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB60..AB68 ; Ll # [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
AB70..ABBF ; Ll # [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
FB00..FB06 ; Ll # [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FB13..FB17 ; Ll # [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
FF41..FF5A ; Ll # [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
10428..1044F ; Ll # [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW
104D8..104FB ; Ll # [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
10597..105A1 ; Ll # [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
105A3..105B1 ; Ll # [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
105B3..105B9 ; Ll # [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
105BB..105BC ; Ll # [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
10CC0..10CF2 ; Ll # [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
10D70..10D85 ; Ll # [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
118C0..118DF ; Ll # [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
16E60..16E7F ; Ll # [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
16EBB..16ED3 ; Ll # [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
1D41A..1D433 ; Ll # [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z
1D44E..1D454 ; Ll # [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G
1D456..1D467 ; Ll # [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z
1D482..1D49B ; Ll # [26] MATHEMATICAL BOLD ITALIC SMALL A..MATHEMATICAL BOLD ITALIC SMALL Z
1D4B6..1D4B9 ; Ll # [4] MATHEMATICAL SCRIPT SMALL A..MATHEMATICAL SCRIPT SMALL D
1D4BB ; Ll # MATHEMATICAL SCRIPT SMALL F
1D4BD..1D4C3 ; Ll # [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
1D4C5..1D4CF ; Ll # [11] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL SCRIPT SMALL Z
1D4EA..1D503 ; Ll # [26] MATHEMATICAL BOLD SCRIPT SMALL A..MATHEMATICAL BOLD SCRIPT SMALL Z
1D51E..1D537 ; Ll # [26] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL FRAKTUR SMALL Z
1D552..1D56B ; Ll # [26] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL DOUBLE-STRUCK SMALL Z
1D586..1D59F ; Ll # [26] MATHEMATICAL BOLD FRAKTUR SMALL A..MATHEMATICAL BOLD FRAKTUR SMALL Z
1D5BA..1D5D3 ; Ll # [26] MATHEMATICAL SANS-SERIF SMALL A..MATHEMATICAL SANS-SERIF SMALL Z
1D5EE..1D607 ; Ll # [26] MATHEMATICAL SANS-SERIF BOLD SMALL A..MATHEMATICAL SANS-SERIF BOLD SMALL Z
1D622..1D63B ; Ll # [26] MATHEMATICAL SANS-SERIF ITALIC SMALL A..MATHEMATICAL SANS-SERIF ITALIC SMALL Z
1D656..1D66F ; Ll # [26] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
1D68A..1D6A5 ; Ll # [28] MATHEMATICAL MONOSPACE SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
1D6C2..1D6DA ; Ll # [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
1D6DC..1D6E1 ; Ll # [6] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL BOLD PI SYMBOL
1D6FC..1D714 ; Ll # [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
1D716..1D71B ; Ll # [6] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL ITALIC PI SYMBOL
1D736..1D74E ; Ll # [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
1D750..1D755 ; Ll # [6] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC PI SYMBOL
1D770..1D788 ; Ll # [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
1D78A..1D78F ; Ll # [6] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
1D7AA..1D7C2 ; Ll # [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
1D7C4..1D7C9 ; Ll # [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
1D7CB ; Ll # MATHEMATICAL BOLD SMALL DIGAMMA
1DF00..1DF09 ; Ll # [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
1DF0B..1DF1E ; Ll # [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
1DF25..1DF2A ; Ll # [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
1E922..1E943 ; Ll # [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
# Total code points: 2283
# ================================================
# General_Category=Titlecase_Letter
01C5 ; Lt # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
01C8 ; Lt # LATIN CAPITAL LETTER L WITH SMALL LETTER J
01CB ; Lt # LATIN CAPITAL LETTER N WITH SMALL LETTER J
01F2 ; Lt # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
1F88..1F8F ; Lt # [8] GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
1F98..1F9F ; Lt # [8] GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
1FA8..1FAF ; Lt # [8] GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
1FBC ; Lt # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
1FCC ; Lt # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
1FFC ; Lt # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
# Total code points: 31
# ================================================
# General_Category=Modifier_Letter
02B0..02C1 ; Lm # [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
02C6..02D1 ; Lm # [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
02E0..02E4 ; Lm # [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
02EC ; Lm # MODIFIER LETTER VOICING
02EE ; Lm # MODIFIER LETTER DOUBLE APOSTROPHE
0374 ; Lm # GREEK NUMERAL SIGN
037A ; Lm # GREEK YPOGEGRAMMENI
0559 ; Lm # ARMENIAN MODIFIER LETTER LEFT HALF RING
0640 ; Lm # ARABIC TATWEEL
06E5..06E6 ; Lm # [2] ARABIC SMALL WAW..ARABIC SMALL YEH
07F4..07F5 ; Lm # [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
07FA ; Lm # NKO LAJANYALAN
081A ; Lm # SAMARITAN MODIFIER LETTER EPENTHETIC YUT
0824 ; Lm # SAMARITAN MODIFIER LETTER SHORT A
0828 ; Lm # SAMARITAN MODIFIER LETTER I
08C9 ; Lm # ARABIC SMALL FARSI YEH
0971 ; Lm # DEVANAGARI SIGN HIGH SPACING DOT
0E46 ; Lm # THAI CHARACTER MAIYAMOK
0EC6 ; Lm # LAO KO LA
10FC ; Lm # MODIFIER LETTER GEORGIAN NAR
17D7 ; Lm # KHMER SIGN LEK TOO
1843 ; Lm # MONGOLIAN LETTER TODO LONG VOWEL SIGN
1AA7 ; Lm # TAI THAM SIGN MAI YAMOK
1C78..1C7D ; Lm # [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
1D2C..1D6A ; Lm # [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
1D78 ; Lm # MODIFIER LETTER CYRILLIC EN
1D9B..1DBF ; Lm # [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
2071 ; Lm # SUPERSCRIPT LATIN SMALL LETTER I
207F ; Lm # SUPERSCRIPT LATIN SMALL LETTER N
2090..209C ; Lm # [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
2C7C..2C7D ; Lm # [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
2D6F ; Lm # TIFINAGH MODIFIER LETTER LABIALIZATION MARK
2E2F ; Lm # VERTICAL TILDE
3005 ; Lm # IDEOGRAPHIC ITERATION MARK
3031..3035 ; Lm # [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
303B ; Lm # VERTICAL IDEOGRAPHIC ITERATION MARK
309D..309E ; Lm # [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
30FC..30FE ; Lm # [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
A015 ; Lm # YI SYLLABLE WU
A4F8..A4FD ; Lm # [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
A60C ; Lm # VAI SYLLABLE LENGTHENER
A67F ; Lm # CYRILLIC PAYEROK
A69C..A69D ; Lm # [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A717..A71F ; Lm # [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
A770 ; Lm # MODIFIER LETTER US
A788 ; Lm # MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A7F1..A7F4 ; Lm # [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q
A7F8..A7F9 ; Lm # [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A9CF ; Lm # JAVANESE PANGRANGKEP
A9E6 ; Lm # MYANMAR MODIFIER LETTER SHAN REDUPLICATION
AA70 ; Lm # MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
AADD ; Lm # TAI VIET SYMBOL SAM
AAF3..AAF4 ; Lm # [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
AB5C..AB5F ; Lm # [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
AB69 ; Lm # MODIFIER LETTER SMALL TURNED W
FF70 ; Lm # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
FF9E..FF9F ; Lm # [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
10780..10785 ; Lm # [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
10787..107B0 ; Lm # [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
107B2..107BA ; Lm # [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
10D4E ; Lm # GARAY VOWEL LENGTH MARK
10D6F ; Lm # GARAY REDUPLICATION MARK
10EC5 ; Lm # ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
11DD9 ; Lm # TOLONG SIKI SIGN SELA
16B40..16B43 ; Lm # [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
16D40..16D42 ; Lm # [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
16D6B..16D6C ; Lm # [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
16F93..16F9F ; Lm # [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
16FE0..16FE1 ; Lm # [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
16FE3 ; Lm # OLD CHINESE ITERATION MARK
16FF2..16FF3 ; Lm # [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
1AFF0..1AFF3 ; Lm # [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
1AFF5..1AFFB ; Lm # [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
1AFFD..1AFFE ; Lm # [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
1E030..1E06D ; Lm # [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1E137..1E13D ; Lm # [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
1E4EB ; Lm # NAG MUNDARI SIGN OJOD
1E6FF ; Lm # TAI YO XAM LAI
1E94B ; Lm # ADLAM NASALIZATION MARK
# Total code points: 410
# ================================================
# General_Category=Other_Letter
00AA ; Lo # FEMININE ORDINAL INDICATOR
00BA ; Lo # MASCULINE ORDINAL INDICATOR
01BB ; Lo # LATIN LETTER TWO WITH STROKE
01C0..01C3 ; Lo # [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
0294..0295 ; Lo # [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE
05D0..05EA ; Lo # [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
05EF..05F2 ; Lo # [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
0620..063F ; Lo # [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
0641..064A ; Lo # [10] ARABIC LETTER FEH..ARABIC LETTER YEH
066E..066F ; Lo # [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
0671..06D3 ; Lo # [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
06D5 ; Lo # ARABIC LETTER AE
06EE..06EF ; Lo # [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
06FA..06FC ; Lo # [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
06FF ; Lo # ARABIC LETTER HEH WITH INVERTED V
0710 ; Lo # SYRIAC LETTER ALAPH
0712..072F ; Lo # [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
074D..07A5 ; Lo # [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU
07B1 ; Lo # THAANA LETTER NAA
07CA..07EA ; Lo # [33] NKO LETTER A..NKO LETTER JONA RA
0800..0815 ; Lo # [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
0840..0858 ; Lo # [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
0860..086A ; Lo # [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
0870..0887 ; Lo # [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
0889..088F ; Lo # [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE
08A0..08C8 ; Lo # [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
0904..0939 ; Lo # [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
093D ; Lo # DEVANAGARI SIGN AVAGRAHA
0950 ; Lo # DEVANAGARI OM
0958..0961 ; Lo # [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
0972..0980 ; Lo # [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
0985..098C ; Lo # [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
098F..0990 ; Lo # [2] BENGALI LETTER E..BENGALI LETTER AI
0993..09A8 ; Lo # [22] BENGALI LETTER O..BENGALI LETTER NA
09AA..09B0 ; Lo # [7] BENGALI LETTER PA..BENGALI LETTER RA
09B2 ; Lo # BENGALI LETTER LA
09B6..09B9 ; Lo # [4] BENGALI LETTER SHA..BENGALI LETTER HA
09BD ; Lo # BENGALI SIGN AVAGRAHA
09CE ; Lo # BENGALI LETTER KHANDA TA
09DC..09DD ; Lo # [2] BENGALI LETTER RRA..BENGALI LETTER RHA
09DF..09E1 ; Lo # [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
09F0..09F1 ; Lo # [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
09FC ; Lo # BENGALI LETTER VEDIC ANUSVARA
0A05..0A0A ; Lo # [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
0A0F..0A10 ; Lo # [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
0A13..0A28 ; Lo # [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
0A2A..0A30 ; Lo # [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
0A32..0A33 ; Lo # [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
0A35..0A36 ; Lo # [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
0A38..0A39 ; Lo # [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
0A59..0A5C ; Lo # [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
0A5E ; Lo # GURMUKHI LETTER FA
0A72..0A74 ; Lo # [3] GURMUKHI IRI..GURMUKHI EK ONKAR
0A85..0A8D ; Lo # [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
0A8F..0A91 ; Lo # [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
0A93..0AA8 ; Lo # [22] GUJARATI LETTER O..GUJARATI LETTER NA
0AAA..0AB0 ; Lo # [7] GUJARATI LETTER PA..GUJARATI LETTER RA
0AB2..0AB3 ; Lo # [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
0AB5..0AB9 ; Lo # [5] GUJARATI LETTER VA..GUJARATI LETTER HA
0ABD ; Lo # GUJARATI SIGN AVAGRAHA
0AD0 ; Lo # GUJARATI OM
0AE0..0AE1 ; Lo # [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
0AF9 ; Lo # GUJARATI LETTER ZHA
0B05..0B0C ; Lo # [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
0B0F..0B10 ; Lo # [2] ORIYA LETTER E..ORIYA LETTER AI
0B13..0B28 ; Lo # [22] ORIYA LETTER O..ORIYA LETTER NA
0B2A..0B30 ; Lo # [7] ORIYA LETTER PA..ORIYA LETTER RA
0B32..0B33 ; Lo # [2] ORIYA LETTER LA..ORIYA LETTER LLA
0B35..0B39 ; Lo # [5] ORIYA LETTER VA..ORIYA LETTER HA
0B3D ; Lo # ORIYA SIGN AVAGRAHA
0B5C..0B5D ; Lo # [2] ORIYA LETTER RRA..ORIYA LETTER RHA
0B5F..0B61 ; Lo # [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
0B71 ; Lo # ORIYA LETTER WA
0B83 ; Lo # TAMIL SIGN VISARGA
0B85..0B8A ; Lo # [6] TAMIL LETTER A..TAMIL LETTER UU
0B8E..0B90 ; Lo # [3] TAMIL LETTER E..TAMIL LETTER AI
0B92..0B95 ; Lo # [4] TAMIL LETTER O..TAMIL LETTER KA
0B99..0B9A ; Lo # [2] TAMIL LETTER NGA..TAMIL LETTER CA
0B9C ; Lo # TAMIL LETTER JA
0B9E..0B9F ; Lo # [2] TAMIL LETTER NYA..TAMIL LETTER TTA
0BA3..0BA4 ; Lo # [2] TAMIL LETTER NNA..TAMIL LETTER TA
0BA8..0BAA ; Lo # [3] TAMIL LETTER NA..TAMIL LETTER PA
0BAE..0BB9 ; Lo # [12] TAMIL LETTER MA..TAMIL LETTER HA
0BD0 ; Lo # TAMIL OM
0C05..0C0C ; Lo # [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
0C0E..0C10 ; Lo # [3] TELUGU LETTER E..TELUGU LETTER AI
0C12..0C28 ; Lo # [23] TELUGU LETTER O..TELUGU LETTER NA
0C2A..0C39 ; Lo # [16] TELUGU LETTER PA..TELUGU LETTER HA
0C3D ; Lo # TELUGU SIGN AVAGRAHA
0C58..0C5A ; Lo # [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
0C5C..0C5D ; Lo # [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU
0C60..0C61 ; Lo # [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
0C80 ; Lo # KANNADA SIGN SPACING CANDRABINDU
0C85..0C8C ; Lo # [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
0C8E..0C90 ; Lo # [3] KANNADA LETTER E..KANNADA LETTER AI
0C92..0CA8 ; Lo # [23] KANNADA LETTER O..KANNADA LETTER NA
0CAA..0CB3 ; Lo # [10] KANNADA LETTER PA..KANNADA LETTER LLA
0CB5..0CB9 ; Lo # [5] KANNADA LETTER VA..KANNADA LETTER HA
0CBD ; Lo # KANNADA SIGN AVAGRAHA
0CDC..0CDE ; Lo # [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA
0CE0..0CE1 ; Lo # [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
0CF1..0CF2 ; Lo # [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
0D04..0D0C ; Lo # [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
0D0E..0D10 ; Lo # [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
0D12..0D3A ; Lo # [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
0D3D ; Lo # MALAYALAM SIGN AVAGRAHA
0D4E ; Lo # MALAYALAM LETTER DOT REPH
0D54..0D56 ; Lo # [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
0D5F..0D61 ; Lo # [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
0D7A..0D7F ; Lo # [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
0D85..0D96 ; Lo # [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
0D9A..0DB1 ; Lo # [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
0DB3..0DBB ; Lo # [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
0DBD ; Lo # SINHALA LETTER DANTAJA LAYANNA
0DC0..0DC6 ; Lo # [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
0E01..0E30 ; Lo # [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
0E32..0E33 ; Lo # [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
0E40..0E45 ; Lo # [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
0E81..0E82 ; Lo # [2] LAO LETTER KO..LAO LETTER KHO SUNG
0E84 ; Lo # LAO LETTER KHO TAM
0E86..0E8A ; Lo # [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
0E8C..0EA3 ; Lo # [24] LAO LETTER PALI JHA..LAO LETTER LO LING
0EA5 ; Lo # LAO LETTER LO LOOT
0EA7..0EB0 ; Lo # [10] LAO LETTER WO..LAO VOWEL SIGN A
0EB2..0EB3 ; Lo # [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
0EBD ; Lo # LAO SEMIVOWEL SIGN NYO
0EC0..0EC4 ; Lo # [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
0EDC..0EDF ; Lo # [4] LAO HO NO..LAO LETTER KHMU NYO
0F00 ; Lo # TIBETAN SYLLABLE OM
0F40..0F47 ; Lo # [8] TIBETAN LETTER KA..TIBETAN LETTER JA
0F49..0F6C ; Lo # [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
0F88..0F8C ; Lo # [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
1000..102A ; Lo # [43] MYANMAR LETTER KA..MYANMAR LETTER AU
103F ; Lo # MYANMAR LETTER GREAT SA
1050..1055 ; Lo # [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
105A..105D ; Lo # [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
1061 ; Lo # MYANMAR LETTER SGAW KAREN SHA
1065..1066 ; Lo # [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
106E..1070 ; Lo # [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
1075..1081 ; Lo # [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
108E ; Lo # MYANMAR LETTER RUMAI PALAUNG FA
1100..1248 ; Lo # [329] HANGUL CHOSEONG KIYEOK..ETHIOPIC SYLLABLE QWA
124A..124D ; Lo # [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
1250..1256 ; Lo # [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
1258 ; Lo # ETHIOPIC SYLLABLE QHWA
125A..125D ; Lo # [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
1260..1288 ; Lo # [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
128A..128D ; Lo # [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
1290..12B0 ; Lo # [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
12B2..12B5 ; Lo # [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
12B8..12BE ; Lo # [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
12C0 ; Lo # ETHIOPIC SYLLABLE KXWA
12C2..12C5 ; Lo # [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
12C8..12D6 ; Lo # [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
12D8..1310 ; Lo # [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
1312..1315 ; Lo # [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
1318..135A ; Lo # [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
1380..138F ; Lo # [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
1401..166C ; Lo # [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
166F..167F ; Lo # [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
1681..169A ; Lo # [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
16A0..16EA ; Lo # [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
16F1..16F8 ; Lo # [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
1700..1711 ; Lo # [18] TAGALOG LETTER A..TAGALOG LETTER HA
171F..1731 ; Lo # [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA
1740..1751 ; Lo # [18] BUHID LETTER A..BUHID LETTER HA
1760..176C ; Lo # [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
176E..1770 ; Lo # [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
1780..17B3 ; Lo # [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
17DC ; Lo # KHMER SIGN AVAKRAHASANYA
1820..1842 ; Lo # [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
1844..1878 ; Lo # [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
1880..1884 ; Lo # [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
1887..18A8 ; Lo # [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
18AA ; Lo # MONGOLIAN LETTER MANCHU ALI GALI LHA
18B0..18F5 ; Lo # [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
1900..191E ; Lo # [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
1950..196D ; Lo # [30] TAI LE LETTER KA..TAI LE LETTER AI
1970..1974 ; Lo # [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
1980..19AB ; Lo # [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
19B0..19C9 ; Lo # [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
1A00..1A16 ; Lo # [23] BUGINESE LETTER KA..BUGINESE LETTER HA
1A20..1A54 ; Lo # [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
1B05..1B33 ; Lo # [47] BALINESE LETTER AKARA..BALINESE LETTER HA
1B45..1B4C ; Lo # [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
1B83..1BA0 ; Lo # [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
1BAE..1BAF ; Lo # [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
1BBA..1BE5 ; Lo # [44] SUNDANESE AVAGRAHA..BATAK LETTER U
1C00..1C23 ; Lo # [36] LEPCHA LETTER KA..LEPCHA LETTER A
1C4D..1C4F ; Lo # [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
1C5A..1C77 ; Lo # [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
1CE9..1CEC ; Lo # [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
1CEE..1CF3 ; Lo # [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF5..1CF6 ; Lo # [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
1CFA ; Lo # VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
2135..2138 ; Lo # [4] ALEF SYMBOL..DALET SYMBOL
2D30..2D67 ; Lo # [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
2D80..2D96 ; Lo # [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
2DA0..2DA6 ; Lo # [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
2DA8..2DAE ; Lo # [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
2DB0..2DB6 ; Lo # [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
2DB8..2DBE ; Lo # [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
2DC0..2DC6 ; Lo # [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
2DC8..2DCE ; Lo # [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
2DD0..2DD6 ; Lo # [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
2DD8..2DDE ; Lo # [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
3006 ; Lo # IDEOGRAPHIC CLOSING MARK
303C ; Lo # MASU MARK
3041..3096 ; Lo # [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
309F ; Lo # HIRAGANA DIGRAPH YORI
30A1..30FA ; Lo # [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
30FF ; Lo # KATAKANA DIGRAPH KOTO
3105..312F ; Lo # [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
3131..318E ; Lo # [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
31A0..31BF ; Lo # [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
31F0..31FF ; Lo # [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
3400..4DBF ; Lo # [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
4E00..A014 ; Lo # [21013] CJK UNIFIED IDEOGRAPH-4E00..YI SYLLABLE E
A016..A48C ; Lo # [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
A4D0..A4F7 ; Lo # [40] LISU LETTER BA..LISU LETTER OE
A500..A60B ; Lo # [268] VAI SYLLABLE EE..VAI SYLLABLE NG
A610..A61F ; Lo # [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
A62A..A62B ; Lo # [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
A66E ; Lo # CYRILLIC LETTER MULTIOCULAR O
A6A0..A6E5 ; Lo # [70] BAMUM LETTER A..BAMUM LETTER KI
A78F ; Lo # LATIN LETTER SINOLOGICAL DOT
A7F7 ; Lo # LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7FB..A801 ; Lo # [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
A803..A805 ; Lo # [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
A807..A80A ; Lo # [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
A80C..A822 ; Lo # [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
A840..A873 ; Lo # [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
A882..A8B3 ; Lo # [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
A8F2..A8F7 ; Lo # [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
A8FB ; Lo # DEVANAGARI HEADSTROKE
A8FD..A8FE ; Lo # [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
A90A..A925 ; Lo # [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
A930..A946 ; Lo # [23] REJANG LETTER KA..REJANG LETTER A
A960..A97C ; Lo # [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
A984..A9B2 ; Lo # [47] JAVANESE LETTER A..JAVANESE LETTER HA
A9E0..A9E4 ; Lo # [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
A9E7..A9EF ; Lo # [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
A9FA..A9FE ; Lo # [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
AA00..AA28 ; Lo # [41] CHAM LETTER A..CHAM LETTER HA
AA40..AA42 ; Lo # [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
AA44..AA4B ; Lo # [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
AA60..AA6F ; Lo # [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
AA71..AA76 ; Lo # [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
AA7A ; Lo # MYANMAR LETTER AITON RA
AA7E..AAAF ; Lo # [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
AAB1 ; Lo # TAI VIET VOWEL AA
AAB5..AAB6 ; Lo # [2] TAI VIET VOWEL E..TAI VIET VOWEL O
AAB9..AABD ; Lo # [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
AAC0 ; Lo # TAI VIET TONE MAI NUENG
AAC2 ; Lo # TAI VIET TONE MAI SONG
AADB..AADC ; Lo # [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
AAE0..AAEA ; Lo # [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
AAF2 ; Lo # MEETEI MAYEK ANJI
AB01..AB06 ; Lo # [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
AB09..AB0E ; Lo # [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
AB11..AB16 ; Lo # [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
AB20..AB26 ; Lo # [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
AB28..AB2E ; Lo # [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
ABC0..ABE2 ; Lo # [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
AC00..D7A3 ; Lo # [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
D7B0..D7C6 ; Lo # [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
D7CB..D7FB ; Lo # [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
F900..FA6D ; Lo # [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
FA70..FAD9 ; Lo # [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
FB1D ; Lo # HEBREW LETTER YOD WITH HIRIQ
FB1F..FB28 ; Lo # [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
FB2A..FB36 ; Lo # [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
FB38..FB3C ; Lo # [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
FB3E ; Lo # HEBREW LETTER MEM WITH DAGESH
FB40..FB41 ; Lo # [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
FB43..FB44 ; Lo # [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
FB46..FBB1 ; Lo # [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
FBD3..FD3D ; Lo # [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
FD50..FD8F ; Lo # [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
FD92..FDC7 ; Lo # [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
FDF0..FDFB ; Lo # [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
FE70..FE74 ; Lo # [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
FE76..FEFC ; Lo # [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
FF66..FF6F ; Lo # [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
FF71..FF9D ; Lo # [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
FFA0..FFBE ; Lo # [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
FFC2..FFC7 ; Lo # [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
FFCA..FFCF ; Lo # [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
FFD2..FFD7 ; Lo # [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
FFDA..FFDC ; Lo # [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
10000..1000B ; Lo # [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
1000D..10026 ; Lo # [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
10028..1003A ; Lo # [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
1003C..1003D ; Lo # [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
1003F..1004D ; Lo # [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
10050..1005D ; Lo # [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
10080..100FA ; Lo # [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
10280..1029C ; Lo # [29] LYCIAN LETTER A..LYCIAN LETTER X
102A0..102D0 ; Lo # [49] CARIAN LETTER A..CARIAN LETTER UUU3
10300..1031F ; Lo # [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
1032D..10340 ; Lo # [20] OLD ITALIC LETTER YE..GOTHIC LETTER PAIRTHRA
10342..10349 ; Lo # [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
10350..10375 ; Lo # [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
10380..1039D ; Lo # [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
103A0..103C3 ; Lo # [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
103C8..103CF ; Lo # [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
10450..1049D ; Lo # [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
10500..10527 ; Lo # [40] ELBASAN LETTER A..ELBASAN LETTER KHE
10530..10563 ; Lo # [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
105C0..105F3 ; Lo # [52] TODHRI LETTER A..TODHRI LETTER OO
10600..10736 ; Lo # [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
10740..10755 ; Lo # [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
10760..10767 ; Lo # [8] LINEAR A SIGN A800..LINEAR A SIGN A807
10800..10805 ; Lo # [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
10808 ; Lo # CYPRIOT SYLLABLE JO
1080A..10835 ; Lo # [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
10837..10838 ; Lo # [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
1083C ; Lo # CYPRIOT SYLLABLE ZA
1083F..10855 ; Lo # [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
10860..10876 ; Lo # [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
10880..1089E ; Lo # [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
108E0..108F2 ; Lo # [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
108F4..108F5 ; Lo # [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
10900..10915 ; Lo # [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
10920..10939 ; Lo # [26] LYDIAN LETTER A..LYDIAN LETTER C
10940..10959 ; Lo # [26] SIDETIC LETTER N01..SIDETIC LETTER N26
10980..109B7 ; Lo # [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
109BE..109BF ; Lo # [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
10A00 ; Lo # KHAROSHTHI LETTER A
10A10..10A13 ; Lo # [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
10A15..10A17 ; Lo # [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
10A19..10A35 ; Lo # [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
10A60..10A7C ; Lo # [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
10A80..10A9C ; Lo # [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
10AC0..10AC7 ; Lo # [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
10AC9..10AE4 ; Lo # [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
10B00..10B35 ; Lo # [54] AVESTAN LETTER A..AVESTAN LETTER HE
10B40..10B55 ; Lo # [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
10B60..10B72 ; Lo # [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
10B80..10B91 ; Lo # [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
10C00..10C48 ; Lo # [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
10D00..10D23 ; Lo # [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
10D4A..10D4D ; Lo # [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
10D4F ; Lo # GARAY SUKUN
10E80..10EA9 ; Lo # [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
10EB0..10EB1 ; Lo # [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
10EC2..10EC4 ; Lo # [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
10EC6..10EC7 ; Lo # [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW
10F00..10F1C ; Lo # [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
10F27 ; Lo # OLD SOGDIAN LIGATURE AYIN-DALETH
10F30..10F45 ; Lo # [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
10F70..10F81 ; Lo # [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
10FB0..10FC4 ; Lo # [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
10FE0..10FF6 ; Lo # [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11003..11037 ; Lo # [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
11071..11072 ; Lo # [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
11075 ; Lo # BRAHMI LETTER OLD TAMIL LLA
11083..110AF ; Lo # [45] KAITHI LETTER A..KAITHI LETTER HA
110D0..110E8 ; Lo # [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
11103..11126 ; Lo # [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
11144 ; Lo # CHAKMA LETTER LHAA
11147 ; Lo # CHAKMA LETTER VAA
11150..11172 ; Lo # [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
11176 ; Lo # MAHAJANI LIGATURE SHRI
11183..111B2 ; Lo # [48] SHARADA LETTER A..SHARADA LETTER HA
111C1..111C4 ; Lo # [4] SHARADA SIGN AVAGRAHA..SHARADA OM
111DA ; Lo # SHARADA EKAM
111DC ; Lo # SHARADA HEADSTROKE
11200..11211 ; Lo # [18] KHOJKI LETTER A..KHOJKI LETTER JJA
11213..1122B ; Lo # [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
1123F..11240 ; Lo # [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
11280..11286 ; Lo # [7] MULTANI LETTER A..MULTANI LETTER GA
11288 ; Lo # MULTANI LETTER GHA
1128A..1128D ; Lo # [4] MULTANI LETTER CA..MULTANI LETTER JJA
1128F..1129D ; Lo # [15] MULTANI LETTER NYA..MULTANI LETTER BA
1129F..112A8 ; Lo # [10] MULTANI LETTER BHA..MULTANI LETTER RHA
112B0..112DE ; Lo # [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
11305..1130C ; Lo # [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
1130F..11310 ; Lo # [2] GRANTHA LETTER EE..GRANTHA LETTER AI
11313..11328 ; Lo # [22] GRANTHA LETTER OO..GRANTHA LETTER NA
1132A..11330 ; Lo # [7] GRANTHA LETTER PA..GRANTHA LETTER RA
11332..11333 ; Lo # [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
11335..11339 ; Lo # [5] GRANTHA LETTER VA..GRANTHA LETTER HA
1133D ; Lo # GRANTHA SIGN AVAGRAHA
11350 ; Lo # GRANTHA OM
1135D..11361 ; Lo # [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
11380..11389 ; Lo # [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
1138B ; Lo # TULU-TIGALARI LETTER EE
1138E ; Lo # TULU-TIGALARI LETTER AI
11390..113B5 ; Lo # [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
113B7 ; Lo # TULU-TIGALARI SIGN AVAGRAHA
113D1 ; Lo # TULU-TIGALARI REPHA
113D3 ; Lo # TULU-TIGALARI SIGN PLUTA
11400..11434 ; Lo # [53] NEWA LETTER A..NEWA LETTER HA
11447..1144A ; Lo # [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
1145F..11461 ; Lo # [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
11480..114AF ; Lo # [48] TIRHUTA ANJI..TIRHUTA LETTER HA
114C4..114C5 ; Lo # [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
114C7 ; Lo # TIRHUTA OM
11580..115AE ; Lo # [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
115D8..115DB ; Lo # [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U
11600..1162F ; Lo # [48] MODI LETTER A..MODI LETTER LLA
11644 ; Lo # MODI SIGN HUVA
11680..116AA ; Lo # [43] TAKRI LETTER A..TAKRI LETTER RRA
116B8 ; Lo # TAKRI LETTER ARCHAIC KHA
11700..1171A ; Lo # [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
11740..11746 ; Lo # [7] AHOM LETTER CA..AHOM LETTER LLA
11800..1182B ; Lo # [44] DOGRA LETTER A..DOGRA LETTER RRA
118FF..11906 ; Lo # [8] WARANG CITI OM..DIVES AKURU LETTER E
11909 ; Lo # DIVES AKURU LETTER O
1190C..11913 ; Lo # [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
11915..11916 ; Lo # [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
11918..1192F ; Lo # [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
1193F ; Lo # DIVES AKURU PREFIXED NASAL SIGN
11941 ; Lo # DIVES AKURU INITIAL RA
119A0..119A7 ; Lo # [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
119AA..119D0 ; Lo # [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
119E1 ; Lo # NANDINAGARI SIGN AVAGRAHA
119E3 ; Lo # NANDINAGARI HEADSTROKE
11A00 ; Lo # ZANABAZAR SQUARE LETTER A
11A0B..11A32 ; Lo # [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
11A3A ; Lo # ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
11A50 ; Lo # SOYOMBO LETTER A
11A5C..11A89 ; Lo # [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A9D ; Lo # SOYOMBO MARK PLUTA
11AB0..11AF8 ; Lo # [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
11BC0..11BE0 ; Lo # [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
11C00..11C08 ; Lo # [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
11C0A..11C2E ; Lo # [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
11C40 ; Lo # BHAIKSUKI SIGN AVAGRAHA
11C72..11C8F ; Lo # [30] MARCHEN LETTER KA..MARCHEN LETTER A
11D00..11D06 ; Lo # [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
11D08..11D09 ; Lo # [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
11D0B..11D30 ; Lo # [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA
11D46 ; Lo # MASARAM GONDI REPHA
11D60..11D65 ; Lo # [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
11D67..11D68 ; Lo # [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
11D6A..11D89 ; Lo # [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
11D98 ; Lo # GUNJALA GONDI OM
11DB0..11DD8 ; Lo # [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH
11DDA..11DDB ; Lo # [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA
11EE0..11EF2 ; Lo # [19] MAKASAR LETTER KA..MAKASAR ANGKA
11F02 ; Lo # KAWI SIGN REPHA
11F04..11F10 ; Lo # [13] KAWI LETTER A..KAWI LETTER O
11F12..11F33 ; Lo # [34] KAWI LETTER KA..KAWI LETTER JNYA
11FB0 ; Lo # LISU LETTER YHA
12000..12399 ; Lo # [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
12480..12543 ; Lo # [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
12F90..12FF0 ; Lo # [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
13000..1342F ; Lo # [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
13441..13446 ; Lo # [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
13460..143FA ; Lo # [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
14400..14646 ; Lo # [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
16100..1611D ; Lo # [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
16800..16A38 ; Lo # [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
16A40..16A5E ; Lo # [31] MRO LETTER TA..MRO LETTER TEK
16A70..16ABE ; Lo # [79] TANGSA LETTER OZ..TANGSA LETTER ZA
16AD0..16AED ; Lo # [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
16B00..16B2F ; Lo # [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
16B63..16B77 ; Lo # [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
16B7D..16B8F ; Lo # [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
16D43..16D6A ; Lo # [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
16F00..16F4A ; Lo # [75] MIAO LETTER PA..MIAO LETTER RTE
16F50 ; Lo # MIAO LETTER NASALIZATION
17000..18CD5 ; Lo # [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5
18CFF..18D1E ; Lo # [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E
18D80..18DF2 ; Lo # [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
1B000..1B122 ; Lo # [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
1B132 ; Lo # HIRAGANA LETTER SMALL KO
1B150..1B152 ; Lo # [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
1B155 ; Lo # KATAKANA LETTER SMALL KO
1B164..1B167 ; Lo # [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB ; Lo # [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A ; Lo # [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
1BC70..1BC7C ; Lo # [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
1BC80..1BC88 ; Lo # [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
1BC90..1BC99 ; Lo # [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
1DF0A ; Lo # LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
1E100..1E12C ; Lo # [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
1E14E ; Lo # NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
1E290..1E2AD ; Lo # [30] TOTO LETTER PA..TOTO LETTER A
1E2C0..1E2EB ; Lo # [44] WANCHO LETTER AA..WANCHO LETTER YIH
1E4D0..1E4EA ; Lo # [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
1E5D0..1E5ED ; Lo # [30] OL ONAL LETTER O..OL ONAL LETTER EG
1E5F0 ; Lo # OL ONAL SIGN HODDOND
1E6C0..1E6DE ; Lo # [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO
1E6E0..1E6E2 ; Lo # [3] TAI YO LETTER AA..TAI YO LETTER UE
1E6E4..1E6E5 ; Lo # [2] TAI YO LETTER U..TAI YO LETTER AE
1E6E7..1E6ED ; Lo # [7] TAI YO LETTER O..TAI YO LETTER AUE
1E6F0..1E6F4 ; Lo # [5] TAI YO LETTER AN..TAI YO LETTER AP
1E6FE ; Lo # TAI YO SYMBOL MUEANG
1E7E0..1E7E6 ; Lo # [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
1E7E8..1E7EB ; Lo # [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
1E7ED..1E7EE ; Lo # [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
1E7F0..1E7FE ; Lo # [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
1E800..1E8C4 ; Lo # [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1EE00..1EE03 ; Lo # [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; Lo # [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; Lo # [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
1EE24 ; Lo # ARABIC MATHEMATICAL INITIAL HEH
1EE27 ; Lo # ARABIC MATHEMATICAL INITIAL HAH
1EE29..1EE32 ; Lo # [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
1EE34..1EE37 ; Lo # [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
1EE39 ; Lo # ARABIC MATHEMATICAL INITIAL DAD
1EE3B ; Lo # ARABIC MATHEMATICAL INITIAL GHAIN
1EE42 ; Lo # ARABIC MATHEMATICAL TAILED JEEM
1EE47 ; Lo # ARABIC MATHEMATICAL TAILED HAH
1EE49 ; Lo # ARABIC MATHEMATICAL TAILED YEH
1EE4B ; Lo # ARABIC MATHEMATICAL TAILED LAM
1EE4D..1EE4F ; Lo # [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
1EE51..1EE52 ; Lo # [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
1EE54 ; Lo # ARABIC MATHEMATICAL TAILED SHEEN
1EE57 ; Lo # ARABIC MATHEMATICAL TAILED KHAH
1EE59 ; Lo # ARABIC MATHEMATICAL TAILED DAD
1EE5B ; Lo # ARABIC MATHEMATICAL TAILED GHAIN
1EE5D ; Lo # ARABIC MATHEMATICAL TAILED DOTLESS NOON
1EE5F ; Lo # ARABIC MATHEMATICAL TAILED DOTLESS QAF
1EE61..1EE62 ; Lo # [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
1EE64 ; Lo # ARABIC MATHEMATICAL STRETCHED HEH
1EE67..1EE6A ; Lo # [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
1EE6C..1EE72 ; Lo # [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
1EE74..1EE77 ; Lo # [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
1EE79..1EE7C ; Lo # [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
1EE7E ; Lo # ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
1EE80..1EE89 ; Lo # [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
1EE8B..1EE9B ; Lo # [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
1EEA1..1EEA3 ; Lo # [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
1EEA5..1EEA9 ; Lo # [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
1EEAB..1EEBB ; Lo # [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
20000..2A6DF ; Lo # [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
2A700..2B81D ; Lo # [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
2B820..2CEAD ; Lo # [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
2CEB0..2EBE0 ; Lo # [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
2EBF0..2EE5D ; Lo # [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
2F800..2FA1D ; Lo # [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
30000..3134A ; Lo # [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
31350..33479 ; Lo # [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
# Total code points: 141062
# ================================================
# General_Category=Nonspacing_Mark
0300..036F ; Mn # [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
0483..0487 ; Mn # [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
0591..05BD ; Mn # [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
05BF ; Mn # HEBREW POINT RAFE
05C1..05C2 ; Mn # [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
05C4..05C5 ; Mn # [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
05C7 ; Mn # HEBREW POINT QAMATS QATAN
0610..061A ; Mn # [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
064B..065F ; Mn # [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
0670 ; Mn # ARABIC LETTER SUPERSCRIPT ALEF
06D6..06DC ; Mn # [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
06DF..06E4 ; Mn # [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
06E7..06E8 ; Mn # [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
06EA..06ED ; Mn # [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
0711 ; Mn # SYRIAC LETTER SUPERSCRIPT ALAPH
0730..074A ; Mn # [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
07A6..07B0 ; Mn # [11] THAANA ABAFILI..THAANA SUKUN
07EB..07F3 ; Mn # [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
07FD ; Mn # NKO DANTAYALAN
0816..0819 ; Mn # [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
081B..0823 ; Mn # [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
0825..0827 ; Mn # [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0829..082D ; Mn # [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
0859..085B ; Mn # [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
0897..089F ; Mn # [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
08CA..08E1 ; Mn # [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
08E3..0902 ; Mn # [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
093A ; Mn # DEVANAGARI VOWEL SIGN OE
093C ; Mn # DEVANAGARI SIGN NUKTA
0941..0948 ; Mn # [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
094D ; Mn # DEVANAGARI SIGN VIRAMA
0951..0957 ; Mn # [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
0962..0963 ; Mn # [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
0981 ; Mn # BENGALI SIGN CANDRABINDU
09BC ; Mn # BENGALI SIGN NUKTA
09C1..09C4 ; Mn # [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
09CD ; Mn # BENGALI SIGN VIRAMA
09E2..09E3 ; Mn # [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
09FE ; Mn # BENGALI SANDHI MARK
0A01..0A02 ; Mn # [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
0A3C ; Mn # GURMUKHI SIGN NUKTA
0A41..0A42 ; Mn # [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
0A47..0A48 ; Mn # [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
0A4B..0A4D ; Mn # [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
0A51 ; Mn # GURMUKHI SIGN UDAAT
0A70..0A71 ; Mn # [2] GURMUKHI TIPPI..GURMUKHI ADDAK
0A75 ; Mn # GURMUKHI SIGN YAKASH
0A81..0A82 ; Mn # [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
0ABC ; Mn # GUJARATI SIGN NUKTA
0AC1..0AC5 ; Mn # [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
0AC7..0AC8 ; Mn # [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
0ACD ; Mn # GUJARATI SIGN VIRAMA
0AE2..0AE3 ; Mn # [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
0AFA..0AFF ; Mn # [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
0B01 ; Mn # ORIYA SIGN CANDRABINDU
0B3C ; Mn # ORIYA SIGN NUKTA
0B3F ; Mn # ORIYA VOWEL SIGN I
0B41..0B44 ; Mn # [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
0B4D ; Mn # ORIYA SIGN VIRAMA
0B55..0B56 ; Mn # [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
0B62..0B63 ; Mn # [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
0B82 ; Mn # TAMIL SIGN ANUSVARA
0BC0 ; Mn # TAMIL VOWEL SIGN II
0BCD ; Mn # TAMIL SIGN VIRAMA
0C00 ; Mn # TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C04 ; Mn # TELUGU SIGN COMBINING ANUSVARA ABOVE
0C3C ; Mn # TELUGU SIGN NUKTA
0C3E..0C40 ; Mn # [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C46..0C48 ; Mn # [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
0C4A..0C4D ; Mn # [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
0C55..0C56 ; Mn # [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0C62..0C63 ; Mn # [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
0C81 ; Mn # KANNADA SIGN CANDRABINDU
0CBC ; Mn # KANNADA SIGN NUKTA
0CBF ; Mn # KANNADA VOWEL SIGN I
0CC6 ; Mn # KANNADA VOWEL SIGN E
0CCC..0CCD ; Mn # [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CE2..0CE3 ; Mn # [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0D00..0D01 ; Mn # [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
0D3B..0D3C ; Mn # [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
0D41..0D44 ; Mn # [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
0D4D ; Mn # MALAYALAM SIGN VIRAMA
0D62..0D63 ; Mn # [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
0D81 ; Mn # SINHALA SIGN CANDRABINDU
0DCA ; Mn # SINHALA SIGN AL-LAKUNA
0DD2..0DD4 ; Mn # [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
0DD6 ; Mn # SINHALA VOWEL SIGN DIGA PAA-PILLA
0E31 ; Mn # THAI CHARACTER MAI HAN-AKAT
0E34..0E3A ; Mn # [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
0E47..0E4E ; Mn # [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1 ; Mn # LAO VOWEL SIGN MAI KAN
0EB4..0EBC ; Mn # [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
0EC8..0ECE ; Mn # [7] LAO TONE MAI EK..LAO YAMAKKAN
0F18..0F19 ; Mn # [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35 ; Mn # TIBETAN MARK NGAS BZUNG NYI ZLA
0F37 ; Mn # TIBETAN MARK NGAS BZUNG SGOR RTAGS
0F39 ; Mn # TIBETAN MARK TSA -PHRU
0F71..0F7E ; Mn # [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
0F80..0F84 ; Mn # [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
0F86..0F87 ; Mn # [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
0F8D..0F97 ; Mn # [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
0F99..0FBC ; Mn # [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
0FC6 ; Mn # TIBETAN SYMBOL PADMA GDAN
102D..1030 ; Mn # [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
1032..1037 ; Mn # [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
1039..103A ; Mn # [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
103D..103E ; Mn # [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
1058..1059 ; Mn # [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
105E..1060 ; Mn # [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
1071..1074 ; Mn # [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
1082 ; Mn # MYANMAR CONSONANT SIGN SHAN MEDIAL WA
1085..1086 ; Mn # [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
108D ; Mn # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
109D ; Mn # MYANMAR VOWEL SIGN AITON AI
135D..135F ; Mn # [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
1712..1714 ; Mn # [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
1732..1733 ; Mn # [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
1752..1753 ; Mn # [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
1772..1773 ; Mn # [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
17B4..17B5 ; Mn # [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
17B7..17BD ; Mn # [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
17C6 ; Mn # KHMER SIGN NIKAHIT
17C9..17D3 ; Mn # [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
17DD ; Mn # KHMER SIGN ATTHACAN
180B..180D ; Mn # [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
180F ; Mn # MONGOLIAN FREE VARIATION SELECTOR FOUR
1885..1886 ; Mn # [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
18A9 ; Mn # MONGOLIAN LETTER ALI GALI DAGALGA
1920..1922 ; Mn # [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
1927..1928 ; Mn # [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
1932 ; Mn # LIMBU SMALL LETTER ANUSVARA
1939..193B ; Mn # [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
1A17..1A18 ; Mn # [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
1A1B ; Mn # BUGINESE VOWEL SIGN AE
1A56 ; Mn # TAI THAM CONSONANT SIGN MEDIAL LA
1A58..1A5E ; Mn # [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
1A60 ; Mn # TAI THAM SIGN SAKOT
1A62 ; Mn # TAI THAM VOWEL SIGN MAI SAT
1A65..1A6C ; Mn # [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
1A73..1A7C ; Mn # [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
1A7F ; Mn # TAI THAM COMBINING CRYPTOGRAMMIC DOT
1AB0..1ABD ; Mn # [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
1ABF..1ADD ; Mn # [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
1AE0..1AEB ; Mn # [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
1B00..1B03 ; Mn # [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B34 ; Mn # BALINESE SIGN REREKAN
1B36..1B3A ; Mn # [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
1B3C ; Mn # BALINESE VOWEL SIGN LA LENGA
1B42 ; Mn # BALINESE VOWEL SIGN PEPET
1B6B..1B73 ; Mn # [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
1B80..1B81 ; Mn # [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
1BA2..1BA5 ; Mn # [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
1BA8..1BA9 ; Mn # [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
1BAB..1BAD ; Mn # [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
1BE6 ; Mn # BATAK SIGN TOMPI
1BE8..1BE9 ; Mn # [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
1BED ; Mn # BATAK VOWEL SIGN KARO O
1BEF..1BF1 ; Mn # [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
1C2C..1C33 ; Mn # [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
1C36..1C37 ; Mn # [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
1CD0..1CD2 ; Mn # [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
1CD4..1CE0 ; Mn # [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
1CE2..1CE8 ; Mn # [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CED ; Mn # VEDIC SIGN TIRYAK
1CF4 ; Mn # VEDIC TONE CANDRA ABOVE
1CF8..1CF9 ; Mn # [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
1DC0..1DFF ; Mn # [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
20D0..20DC ; Mn # [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20E1 ; Mn # COMBINING LEFT RIGHT ARROW ABOVE
20E5..20F0 ; Mn # [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
2CEF..2CF1 ; Mn # [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
2D7F ; Mn # TIFINAGH CONSONANT JOINER
2DE0..2DFF ; Mn # [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
302A..302D ; Mn # [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
3099..309A ; Mn # [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
A66F ; Mn # COMBINING CYRILLIC VZMET
A674..A67D ; Mn # [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
A69E..A69F ; Mn # [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
A6F0..A6F1 ; Mn # [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
A802 ; Mn # SYLOTI NAGRI SIGN DVISVARA
A806 ; Mn # SYLOTI NAGRI SIGN HASANTA
A80B ; Mn # SYLOTI NAGRI SIGN ANUSVARA
A825..A826 ; Mn # [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
A82C ; Mn # SYLOTI NAGRI SIGN ALTERNATE HASANTA
A8C4..A8C5 ; Mn # [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
A8E0..A8F1 ; Mn # [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
A8FF ; Mn # DEVANAGARI VOWEL SIGN AY
A926..A92D ; Mn # [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
A947..A951 ; Mn # [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
A980..A982 ; Mn # [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
A9B3 ; Mn # JAVANESE SIGN CECAK TELU
A9B6..A9B9 ; Mn # [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BC..A9BD ; Mn # [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
A9E5 ; Mn # MYANMAR SIGN SHAN SAW
AA29..AA2E ; Mn # [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
AA31..AA32 ; Mn # [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
AA35..AA36 ; Mn # [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
AA43 ; Mn # CHAM CONSONANT SIGN FINAL NG
AA4C ; Mn # CHAM CONSONANT SIGN FINAL M
AA7C ; Mn # MYANMAR SIGN TAI LAING TONE-2
AAB0 ; Mn # TAI VIET MAI KANG
AAB2..AAB4 ; Mn # [3] TAI VIET VOWEL I..TAI VIET VOWEL U
AAB7..AAB8 ; Mn # [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
AABE..AABF ; Mn # [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
AAC1 ; Mn # TAI VIET TONE MAI THO
AAEC..AAED ; Mn # [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
AAF6 ; Mn # MEETEI MAYEK VIRAMA
ABE5 ; Mn # MEETEI MAYEK VOWEL SIGN ANAP
ABE8 ; Mn # MEETEI MAYEK VOWEL SIGN UNAP
ABED ; Mn # MEETEI MAYEK APUN IYEK
FB1E ; Mn # HEBREW POINT JUDEO-SPANISH VARIKA
FE00..FE0F ; Mn # [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
FE20..FE2F ; Mn # [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
101FD ; Mn # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
102E0 ; Mn # COPTIC EPACT THOUSANDS MARK
10376..1037A ; Mn # [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
10A01..10A03 ; Mn # [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
10A05..10A06 ; Mn # [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
10A0C..10A0F ; Mn # [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
10A38..10A3A ; Mn # [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
10A3F ; Mn # KHAROSHTHI VIRAMA
10AE5..10AE6 ; Mn # [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
10D24..10D27 ; Mn # [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
10D69..10D6D ; Mn # [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
10EAB..10EAC ; Mn # [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
10EFA..10EFF ; Mn # [6] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC SMALL LOW WORD MADDA
10F46..10F50 ; Mn # [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
10F82..10F85 ; Mn # [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
11001 ; Mn # BRAHMI SIGN ANUSVARA
11038..11046 ; Mn # [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
11070 ; Mn # BRAHMI SIGN OLD TAMIL VIRAMA
11073..11074 ; Mn # [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
1107F..11081 ; Mn # [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
110B3..110B6 ; Mn # [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
110B9..110BA ; Mn # [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
110C2 ; Mn # KAITHI VOWEL SIGN VOCALIC R
11100..11102 ; Mn # [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
11127..1112B ; Mn # [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
1112D..11134 ; Mn # [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
11173 ; Mn # MAHAJANI SIGN NUKTA
11180..11181 ; Mn # [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
111B6..111BE ; Mn # [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
111C9..111CC ; Mn # [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
111CF ; Mn # SHARADA SIGN INVERTED CANDRABINDU
1122F..11231 ; Mn # [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
11234 ; Mn # KHOJKI SIGN ANUSVARA
11236..11237 ; Mn # [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
1123E ; Mn # KHOJKI SIGN SUKUN
11241 ; Mn # KHOJKI VOWEL SIGN VOCALIC R
112DF ; Mn # KHUDAWADI SIGN ANUSVARA
112E3..112EA ; Mn # [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
11300..11301 ; Mn # [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
1133B..1133C ; Mn # [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
11340 ; Mn # GRANTHA VOWEL SIGN II
11366..1136C ; Mn # [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
11370..11374 ; Mn # [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
113BB..113C0 ; Mn # [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
113CE ; Mn # TULU-TIGALARI SIGN VIRAMA
113D0 ; Mn # TULU-TIGALARI CONJOINER
113D2 ; Mn # TULU-TIGALARI GEMINATION MARK
113E1..113E2 ; Mn # [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
11438..1143F ; Mn # [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
11442..11444 ; Mn # [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
11446 ; Mn # NEWA SIGN NUKTA
1145E ; Mn # NEWA SANDHI MARK
114B3..114B8 ; Mn # [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
114BA ; Mn # TIRHUTA VOWEL SIGN SHORT E
114BF..114C0 ; Mn # [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
114C2..114C3 ; Mn # [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
115B2..115B5 ; Mn # [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
115BC..115BD ; Mn # [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
115BF..115C0 ; Mn # [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
115DC..115DD ; Mn # [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
11633..1163A ; Mn # [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
1163D ; Mn # MODI SIGN ANUSVARA
1163F..11640 ; Mn # [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
116AB ; Mn # TAKRI SIGN ANUSVARA
116AD ; Mn # TAKRI VOWEL SIGN AA
116B0..116B5 ; Mn # [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
116B7 ; Mn # TAKRI SIGN NUKTA
1171D ; Mn # AHOM CONSONANT SIGN MEDIAL LA
1171F ; Mn # AHOM CONSONANT SIGN MEDIAL LIGATING RA
11722..11725 ; Mn # [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
11727..1172B ; Mn # [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
1182F..11837 ; Mn # [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
11839..1183A ; Mn # [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
1193B..1193C ; Mn # [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
1193E ; Mn # DIVES AKURU VIRAMA
11943 ; Mn # DIVES AKURU SIGN NUKTA
119D4..119D7 ; Mn # [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
119DA..119DB ; Mn # [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
119E0 ; Mn # NANDINAGARI SIGN VIRAMA
11A01..11A0A ; Mn # [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A33..11A38 ; Mn # [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
11A3B..11A3E ; Mn # [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
11A47 ; Mn # ZANABAZAR SQUARE SUBJOINER
11A51..11A56 ; Mn # [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
11A59..11A5B ; Mn # [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
11A8A..11A96 ; Mn # [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
11A98..11A99 ; Mn # [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
11B60 ; Mn # SHARADA VOWEL SIGN OE
11B62..11B64 ; Mn # [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
11B66 ; Mn # SHARADA VOWEL SIGN CANDRA E
11C30..11C36 ; Mn # [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
11C38..11C3D ; Mn # [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
11C3F ; Mn # BHAIKSUKI SIGN VIRAMA
11C92..11CA7 ; Mn # [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
11CAA..11CB0 ; Mn # [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
11CB2..11CB3 ; Mn # [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
11CB5..11CB6 ; Mn # [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
11D31..11D36 ; Mn # [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
11D3A ; Mn # MASARAM GONDI VOWEL SIGN E
11D3C..11D3D ; Mn # [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
11D3F..11D45 ; Mn # [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
11D47 ; Mn # MASARAM GONDI RA-KARA
11D90..11D91 ; Mn # [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
11D95 ; Mn # GUNJALA GONDI SIGN ANUSVARA
11D97 ; Mn # GUNJALA GONDI VIRAMA
11EF3..11EF4 ; Mn # [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11F00..11F01 ; Mn # [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
11F36..11F3A ; Mn # [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
11F40 ; Mn # KAWI VOWEL SIGN EU
11F42 ; Mn # KAWI CONJOINER
11F5A ; Mn # KAWI SIGN NUKTA
13440 ; Mn # EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
13447..13455 ; Mn # [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
1611E..16129 ; Mn # [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
1612D..1612F ; Mn # [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
16AF0..16AF4 ; Mn # [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; Mn # [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F4F ; Mn # MIAO SIGN CONSONANT MODIFIER BAR
16F8F..16F92 ; Mn # [4] MIAO TONE RIGHT..MIAO TONE BELOW
16FE4 ; Mn # KHITAN SMALL SCRIPT FILLER
1BC9D..1BC9E ; Mn # [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
1CF00..1CF2D ; Mn # [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
1CF30..1CF46 ; Mn # [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
1D167..1D169 ; Mn # [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D17B..1D182 ; Mn # [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
1D185..1D18B ; Mn # [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; Mn # [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
1D242..1D244 ; Mn # [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
1DA00..1DA36 ; Mn # [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
1DA3B..1DA6C ; Mn # [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
1DA75 ; Mn # SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
1DA84 ; Mn # SIGNWRITING LOCATION HEAD NECK
1DA9B..1DA9F ; Mn # [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
1DAA1..1DAAF ; Mn # [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
1E000..1E006 ; Mn # [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
1E008..1E018 ; Mn # [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
1E01B..1E021 ; Mn # [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Mn # [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Mn # [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
1E08F ; Mn # COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E130..1E136 ; Mn # [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
1E2AE ; Mn # TOTO SIGN RISING TONE
1E2EC..1E2EF ; Mn # [4] WANCHO TONE TUP..WANCHO TONE KOINI
1E4EC..1E4EF ; Mn # [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
1E5EE..1E5EF ; Mn # [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
1E6E3 ; Mn # TAI YO SIGN UE
1E6E6 ; Mn # TAI YO SIGN AU
1E6EE..1E6EF ; Mn # [2] TAI YO SIGN AY..TAI YO SIGN ANG
1E6F5 ; Mn # TAI YO SIGN OM
1E8D0..1E8D6 ; Mn # [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E94A ; Mn # [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
E0100..E01EF ; Mn # [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
# Total code points: 2059
# ================================================
# General_Category=Enclosing_Mark
0488..0489 ; Me # [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
1ABE ; Me # COMBINING PARENTHESES OVERLAY
20DD..20E0 ; Me # [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
20E2..20E4 ; Me # [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
A670..A672 ; Me # [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
# Total code points: 13
# ================================================
# General_Category=Spacing_Mark
0903 ; Mc # DEVANAGARI SIGN VISARGA
093B ; Mc # DEVANAGARI VOWEL SIGN OOE
093E..0940 ; Mc # [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
0949..094C ; Mc # [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
094E..094F ; Mc # [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
0982..0983 ; Mc # [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
09BE..09C0 ; Mc # [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
09C7..09C8 ; Mc # [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
09CB..09CC ; Mc # [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
09D7 ; Mc # BENGALI AU LENGTH MARK
0A03 ; Mc # GURMUKHI SIGN VISARGA
0A3E..0A40 ; Mc # [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
0A83 ; Mc # GUJARATI SIGN VISARGA
0ABE..0AC0 ; Mc # [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
0AC9 ; Mc # GUJARATI VOWEL SIGN CANDRA O
0ACB..0ACC ; Mc # [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
0B02..0B03 ; Mc # [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
0B3E ; Mc # ORIYA VOWEL SIGN AA
0B40 ; Mc # ORIYA VOWEL SIGN II
0B47..0B48 ; Mc # [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
0B4B..0B4C ; Mc # [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
0B57 ; Mc # ORIYA AU LENGTH MARK
0BBE..0BBF ; Mc # [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
0BC1..0BC2 ; Mc # [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
0BC6..0BC8 ; Mc # [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
0BCA..0BCC ; Mc # [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
0BD7 ; Mc # TAMIL AU LENGTH MARK
0C01..0C03 ; Mc # [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
0C41..0C44 ; Mc # [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
0C82..0C83 ; Mc # [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
0CBE ; Mc # KANNADA VOWEL SIGN AA
0CC0..0CC4 ; Mc # [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
0CC7..0CC8 ; Mc # [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
0CCA..0CCB ; Mc # [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
0CD5..0CD6 ; Mc # [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CF3 ; Mc # KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D02..0D03 ; Mc # [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D3E..0D40 ; Mc # [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
0D46..0D48 ; Mc # [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
0D4A..0D4C ; Mc # [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
0D57 ; Mc # MALAYALAM AU LENGTH MARK
0D82..0D83 ; Mc # [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
0DCF..0DD1 ; Mc # [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
0DD8..0DDF ; Mc # [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
0DF2..0DF3 ; Mc # [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
0F3E..0F3F ; Mc # [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
0F7F ; Mc # TIBETAN SIGN RNAM BCAD
102B..102C ; Mc # [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
1031 ; Mc # MYANMAR VOWEL SIGN E
1038 ; Mc # MYANMAR SIGN VISARGA
103B..103C ; Mc # [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
1056..1057 ; Mc # [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
1062..1064 ; Mc # [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
1067..106D ; Mc # [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
1083..1084 ; Mc # [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
1087..108C ; Mc # [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
108F ; Mc # MYANMAR SIGN RUMAI PALAUNG TONE-5
109A..109C ; Mc # [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
1715 ; Mc # TAGALOG SIGN PAMUDPOD
1734 ; Mc # HANUNOO SIGN PAMUDPOD
17B6 ; Mc # KHMER VOWEL SIGN AA
17BE..17C5 ; Mc # [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
17C7..17C8 ; Mc # [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
1923..1926 ; Mc # [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
1929..192B ; Mc # [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
1930..1931 ; Mc # [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
1933..1938 ; Mc # [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
1A19..1A1A ; Mc # [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
1A55 ; Mc # TAI THAM CONSONANT SIGN MEDIAL RA
1A57 ; Mc # TAI THAM CONSONANT SIGN LA TANG LAI
1A61 ; Mc # TAI THAM VOWEL SIGN A
1A63..1A64 ; Mc # [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
1A6D..1A72 ; Mc # [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
1B04 ; Mc # BALINESE SIGN BISAH
1B35 ; Mc # BALINESE VOWEL SIGN TEDUNG
1B3B ; Mc # BALINESE VOWEL SIGN RA REPA TEDUNG
1B3D..1B41 ; Mc # [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
1B43..1B44 ; Mc # [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
1B82 ; Mc # SUNDANESE SIGN PANGWISAD
1BA1 ; Mc # SUNDANESE CONSONANT SIGN PAMINGKAL
1BA6..1BA7 ; Mc # [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
1BAA ; Mc # SUNDANESE SIGN PAMAAEH
1BE7 ; Mc # BATAK VOWEL SIGN E
1BEA..1BEC ; Mc # [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
1BEE ; Mc # BATAK VOWEL SIGN U
1BF2..1BF3 ; Mc # [2] BATAK PANGOLAT..BATAK PANONGONAN
1C24..1C2B ; Mc # [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
1C34..1C35 ; Mc # [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
1CE1 ; Mc # VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
1CF7 ; Mc # VEDIC SIGN ATIKRAMA
302E..302F ; Mc # [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
A823..A824 ; Mc # [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
A827 ; Mc # SYLOTI NAGRI VOWEL SIGN OO
A880..A881 ; Mc # [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
A8B4..A8C3 ; Mc # [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
A952..A953 ; Mc # [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
A983 ; Mc # JAVANESE SIGN WIGNYAN
A9B4..A9B5 ; Mc # [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
A9BA..A9BB ; Mc # [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
A9BE..A9C0 ; Mc # [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
AA2F..AA30 ; Mc # [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
AA33..AA34 ; Mc # [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
AA4D ; Mc # CHAM CONSONANT SIGN FINAL H
AA7B ; Mc # MYANMAR SIGN PAO KAREN TONE
AA7D ; Mc # MYANMAR SIGN TAI LAING TONE-5
AAEB ; Mc # MEETEI MAYEK VOWEL SIGN II
AAEE..AAEF ; Mc # [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
AAF5 ; Mc # MEETEI MAYEK VOWEL SIGN VISARGA
ABE3..ABE4 ; Mc # [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
ABE6..ABE7 ; Mc # [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
ABE9..ABEA ; Mc # [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
ABEC ; Mc # MEETEI MAYEK LUM IYEK
11000 ; Mc # BRAHMI SIGN CANDRABINDU
11002 ; Mc # BRAHMI SIGN VISARGA
11082 ; Mc # KAITHI SIGN VISARGA
110B0..110B2 ; Mc # [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
110B7..110B8 ; Mc # [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
1112C ; Mc # CHAKMA VOWEL SIGN E
11145..11146 ; Mc # [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
11182 ; Mc # SHARADA SIGN VISARGA
111B3..111B5 ; Mc # [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
111BF..111C0 ; Mc # [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
111CE ; Mc # SHARADA VOWEL SIGN PRISHTHAMATRA E
1122C..1122E ; Mc # [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
11232..11233 ; Mc # [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
11235 ; Mc # KHOJKI SIGN VIRAMA
112E0..112E2 ; Mc # [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
11302..11303 ; Mc # [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
1133E..1133F ; Mc # [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
11341..11344 ; Mc # [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
11347..11348 ; Mc # [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
1134B..1134D ; Mc # [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
11357 ; Mc # GRANTHA AU LENGTH MARK
11362..11363 ; Mc # [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
113B8..113BA ; Mc # [3] TULU-TIGALARI VOWEL SIGN AA..TULU-TIGALARI VOWEL SIGN II
113C2 ; Mc # TULU-TIGALARI VOWEL SIGN EE
113C5 ; Mc # TULU-TIGALARI VOWEL SIGN AI
113C7..113CA ; Mc # [4] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI SIGN CANDRA ANUNASIKA
113CC..113CD ; Mc # [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
113CF ; Mc # TULU-TIGALARI SIGN LOOPED VIRAMA
11435..11437 ; Mc # [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
11440..11441 ; Mc # [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
11445 ; Mc # NEWA SIGN VISARGA
114B0..114B2 ; Mc # [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
114B9 ; Mc # TIRHUTA VOWEL SIGN E
114BB..114BE ; Mc # [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
114C1 ; Mc # TIRHUTA SIGN VISARGA
115AF..115B1 ; Mc # [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
115B8..115BB ; Mc # [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
115BE ; Mc # SIDDHAM SIGN VISARGA
11630..11632 ; Mc # [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
1163B..1163C ; Mc # [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
1163E ; Mc # MODI SIGN VISARGA
116AC ; Mc # TAKRI SIGN VISARGA
116AE..116AF ; Mc # [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
116B6 ; Mc # TAKRI SIGN VIRAMA
1171E ; Mc # AHOM CONSONANT SIGN MEDIAL RA
11720..11721 ; Mc # [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
11726 ; Mc # AHOM VOWEL SIGN E
1182C..1182E ; Mc # [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
11838 ; Mc # DOGRA SIGN VISARGA
11930..11935 ; Mc # [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E
11937..11938 ; Mc # [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
1193D ; Mc # DIVES AKURU SIGN HALANTA
11940 ; Mc # DIVES AKURU MEDIAL YA
11942 ; Mc # DIVES AKURU MEDIAL RA
119D1..119D3 ; Mc # [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
119DC..119DF ; Mc # [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
119E4 ; Mc # NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
11A39 ; Mc # ZANABAZAR SQUARE SIGN VISARGA
11A57..11A58 ; Mc # [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
11A97 ; Mc # SOYOMBO SIGN VISARGA
11B61 ; Mc # SHARADA VOWEL SIGN OOE
11B65 ; Mc # SHARADA VOWEL SIGN SHORT O
11B67 ; Mc # SHARADA VOWEL SIGN CANDRA O
11C2F ; Mc # BHAIKSUKI VOWEL SIGN AA
11C3E ; Mc # BHAIKSUKI SIGN VISARGA
11CA9 ; Mc # MARCHEN SUBJOINED LETTER YA
11CB1 ; Mc # MARCHEN VOWEL SIGN I
11CB4 ; Mc # MARCHEN VOWEL SIGN O
11D8A..11D8E ; Mc # [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
11D93..11D94 ; Mc # [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
11D96 ; Mc # GUNJALA GONDI SIGN VISARGA
11EF5..11EF6 ; Mc # [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
11F03 ; Mc # KAWI SIGN VISARGA
11F34..11F35 ; Mc # [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
11F3E..11F3F ; Mc # [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
11F41 ; Mc # KAWI SIGN KILLER
1612A..1612C ; Mc # [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
16F51..16F87 ; Mc # [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
16FF0..16FF1 ; Mc # [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
1D165..1D166 ; Mc # [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D16D..1D172 ; Mc # [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
# Total code points: 471
# ================================================
# General_Category=Decimal_Number
0030..0039 ; Nd # [10] DIGIT ZERO..DIGIT NINE
0660..0669 ; Nd # [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
06F0..06F9 ; Nd # [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
07C0..07C9 ; Nd # [10] NKO DIGIT ZERO..NKO DIGIT NINE
0966..096F ; Nd # [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
09E6..09EF ; Nd # [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
0A66..0A6F ; Nd # [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
0AE6..0AEF ; Nd # [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
0B66..0B6F ; Nd # [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
0BE6..0BEF ; Nd # [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
0C66..0C6F ; Nd # [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
0CE6..0CEF ; Nd # [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0D66..0D6F ; Nd # [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
0DE6..0DEF ; Nd # [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
0E50..0E59 ; Nd # [10] THAI DIGIT ZERO..THAI DIGIT NINE
0ED0..0ED9 ; Nd # [10] LAO DIGIT ZERO..LAO DIGIT NINE
0F20..0F29 ; Nd # [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
1040..1049 ; Nd # [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
1090..1099 ; Nd # [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
17E0..17E9 ; Nd # [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
1810..1819 ; Nd # [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
1946..194F ; Nd # [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
19D0..19D9 ; Nd # [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
1A80..1A89 ; Nd # [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
1A90..1A99 ; Nd # [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
1B50..1B59 ; Nd # [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
1BB0..1BB9 ; Nd # [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
1C40..1C49 ; Nd # [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
1C50..1C59 ; Nd # [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
A620..A629 ; Nd # [10] VAI DIGIT ZERO..VAI DIGIT NINE
A8D0..A8D9 ; Nd # [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
A900..A909 ; Nd # [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
A9D0..A9D9 ; Nd # [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
A9F0..A9F9 ; Nd # [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
AA50..AA59 ; Nd # [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
ABF0..ABF9 ; Nd # [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
FF10..FF19 ; Nd # [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
104A0..104A9 ; Nd # [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
10D30..10D39 ; Nd # [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
10D40..10D49 ; Nd # [10] GARAY DIGIT ZERO..GARAY DIGIT NINE
11066..1106F ; Nd # [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
110F0..110F9 ; Nd # [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
11136..1113F ; Nd # [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
111D0..111D9 ; Nd # [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
112F0..112F9 ; Nd # [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
11450..11459 ; Nd # [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
114D0..114D9 ; Nd # [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
11650..11659 ; Nd # [10] MODI DIGIT ZERO..MODI DIGIT NINE
116C0..116C9 ; Nd # [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
116D0..116E3 ; Nd # [20] MYANMAR PAO DIGIT ZERO..MYANMAR EASTERN PWO KAREN DIGIT NINE
11730..11739 ; Nd # [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
118E0..118E9 ; Nd # [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
11950..11959 ; Nd # [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
11BF0..11BF9 ; Nd # [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE
11C50..11C59 ; Nd # [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
11D50..11D59 ; Nd # [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
11DA0..11DA9 ; Nd # [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
11DE0..11DE9 ; Nd # [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI DIGIT NINE
11F50..11F59 ; Nd # [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
16130..16139 ; Nd # [10] GURUNG KHEMA DIGIT ZERO..GURUNG KHEMA DIGIT NINE
16A60..16A69 ; Nd # [10] MRO DIGIT ZERO..MRO DIGIT NINE
16AC0..16AC9 ; Nd # [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
16B50..16B59 ; Nd # [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
16D70..16D79 ; Nd # [10] KIRAT RAI DIGIT ZERO..KIRAT RAI DIGIT NINE
1CCF0..1CCF9 ; Nd # [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
1D7CE..1D7FF ; Nd # [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
1E140..1E149 ; Nd # [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
1E2F0..1E2F9 ; Nd # [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
1E4F0..1E4F9 ; Nd # [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
1E5F1..1E5FA ; Nd # [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE
1E950..1E959 ; Nd # [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
1FBF0..1FBF9 ; Nd # [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
# Total code points: 770
# ================================================
# General_Category=Letter_Number
16EE..16F0 ; Nl # [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
2160..2182 ; Nl # [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
2185..2188 ; Nl # [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
3007 ; Nl # IDEOGRAPHIC NUMBER ZERO
3021..3029 ; Nl # [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
3038..303A ; Nl # [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
A6E6..A6EF ; Nl # [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
10140..10174 ; Nl # [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
10341 ; Nl # GOTHIC LETTER NINETY
1034A ; Nl # GOTHIC LETTER NINE HUNDRED
103D1..103D5 ; Nl # [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
12400..1246E ; Nl # [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
16FF4..16FF6 ; Nl # [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
# Total code points: 239
# ================================================
# General_Category=Other_Number
00B2..00B3 ; No # [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
00B9 ; No # SUPERSCRIPT ONE
00BC..00BE ; No # [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
09F4..09F9 ; No # [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
0B72..0B77 ; No # [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
0BF0..0BF2 ; No # [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
0C78..0C7E ; No # [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
0D58..0D5E ; No # [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
0D70..0D78 ; No # [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS
0F2A..0F33 ; No # [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
1369..137C ; No # [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
17F0..17F9 ; No # [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
19DA ; No # NEW TAI LUE THAM DIGIT ONE
2070 ; No # SUPERSCRIPT ZERO
2074..2079 ; No # [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE
2080..2089 ; No # [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
2150..215F ; No # [16] VULGAR FRACTION ONE SEVENTH..FRACTION NUMERATOR ONE
2189 ; No # VULGAR FRACTION ZERO THIRDS
2460..249B ; No # [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
24EA..24FF ; No # [22] CIRCLED DIGIT ZERO..NEGATIVE CIRCLED DIGIT ZERO
2776..2793 ; No # [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
2CFD ; No # COPTIC FRACTION ONE HALF
3192..3195 ; No # [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
3220..3229 ; No # [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
3248..324F ; No # [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
3251..325F ; No # [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
3280..3289 ; No # [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
32B1..32BF ; No # [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
A830..A835 ; No # [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
10107..10133 ; No # [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
10175..10178 ; No # [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
1018A..1018B ; No # [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
102E1..102FB ; No # [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
10320..10323 ; No # [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
10858..1085F ; No # [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
10879..1087F ; No # [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
108A7..108AF ; No # [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
108FB..108FF ; No # [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
10916..1091B ; No # [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
109BC..109BD ; No # [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
109C0..109CF ; No # [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
109D2..109FF ; No # [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
10A40..10A48 ; No # [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
10A7D..10A7E ; No # [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
10A9D..10A9F ; No # [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
10AEB..10AEF ; No # [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
10B58..10B5F ; No # [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
10B78..10B7F ; No # [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
10BA9..10BAF ; No # [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
10CFA..10CFF ; No # [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
10E60..10E7E ; No # [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
10F1D..10F26 ; No # [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
10F51..10F54 ; No # [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
10FC5..10FCB ; No # [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
11052..11065 ; No # [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
111E1..111F4 ; No # [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
1173A..1173B ; No # [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
118EA..118F2 ; No # [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
11C5A..11C6C ; No # [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
11FC0..11FD4 ; No # [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
16B5B..16B61 ; No # [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
16E80..16E96 ; No # [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
1D2C0..1D2D3 ; No # [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
1D2E0..1D2F3 ; No # [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
1D360..1D378 ; No # [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
1E8C7..1E8CF ; No # [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
1EC71..1ECAB ; No # [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
1ECAD..1ECAF ; No # [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
1ECB1..1ECB4 ; No # [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
1ED01..1ED2D ; No # [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
1ED2F..1ED3D ; No # [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
1F100..1F10C ; No # [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
# Total code points: 915
# ================================================
# General_Category=Space_Separator
0020 ; Zs # SPACE
00A0 ; Zs # NO-BREAK SPACE
1680 ; Zs # OGHAM SPACE MARK
2000..200A ; Zs # [11] EN QUAD..HAIR SPACE
202F ; Zs # NARROW NO-BREAK SPACE
205F ; Zs # MEDIUM MATHEMATICAL SPACE
3000 ; Zs # IDEOGRAPHIC SPACE
# Total code points: 17
# ================================================
# General_Category=Line_Separator
2028 ; Zl # LINE SEPARATOR
# Total code points: 1
# ================================================
# General_Category=Paragraph_Separator
2029 ; Zp # PARAGRAPH SEPARATOR
# Total code points: 1
# ================================================
# General_Category=Control
0000..001F ; Cc # [32] <control-0000>..<control-001F>
007F..009F ; Cc # [33] <control-007F>..<control-009F>
# Total code points: 65
# ================================================
# General_Category=Format
00AD ; Cf # SOFT HYPHEN
0600..0605 ; Cf # [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
061C ; Cf # ARABIC LETTER MARK
06DD ; Cf # ARABIC END OF AYAH
070F ; Cf # SYRIAC ABBREVIATION MARK
0890..0891 ; Cf # [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
08E2 ; Cf # ARABIC DISPUTED END OF AYAH
180E ; Cf # MONGOLIAN VOWEL SEPARATOR
200B..200F ; Cf # [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
202A..202E ; Cf # [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
2060..2064 ; Cf # [5] WORD JOINER..INVISIBLE PLUS
2066..206F ; Cf # [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
FEFF ; Cf # ZERO WIDTH NO-BREAK SPACE
FFF9..FFFB ; Cf # [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
110BD ; Cf # KAITHI NUMBER SIGN
110CD ; Cf # KAITHI NUMBER SIGN ABOVE
13430..1343F ; Cf # [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
1BCA0..1BCA3 ; Cf # [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Cf # [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0001 ; Cf # LANGUAGE TAG
E0020..E007F ; Cf # [96] TAG SPACE..CANCEL TAG
# Total code points: 170
# ================================================
# General_Category=Private_Use
E000..F8FF ; Co # [6400] <private-use-E000>..<private-use-F8FF>
F0000..FFFFD ; Co # [65534] <private-use-F0000>..<private-use-FFFFD>
100000..10FFFD; Co # [65534] <private-use-100000>..<private-use-10FFFD>
# Total code points: 137468
# ================================================
# General_Category=Surrogate
D800..DFFF ; Cs # [2048] <surrogate-D800>..<surrogate-DFFF>
# Total code points: 2048
# ================================================
# General_Category=Dash_Punctuation
002D ; Pd # HYPHEN-MINUS
058A ; Pd # ARMENIAN HYPHEN
05BE ; Pd # HEBREW PUNCTUATION MAQAF
1400 ; Pd # CANADIAN SYLLABICS HYPHEN
1806 ; Pd # MONGOLIAN TODO SOFT HYPHEN
2010..2015 ; Pd # [6] HYPHEN..HORIZONTAL BAR
2E17 ; Pd # DOUBLE OBLIQUE HYPHEN
2E1A ; Pd # HYPHEN WITH DIAERESIS
2E3A..2E3B ; Pd # [2] TWO-EM DASH..THREE-EM DASH
2E40 ; Pd # DOUBLE HYPHEN
2E5D ; Pd # OBLIQUE HYPHEN
301C ; Pd # WAVE DASH
3030 ; Pd # WAVY DASH
30A0 ; Pd # KATAKANA-HIRAGANA DOUBLE HYPHEN
FE31..FE32 ; Pd # [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
FE58 ; Pd # SMALL EM DASH
FE63 ; Pd # SMALL HYPHEN-MINUS
FF0D ; Pd # FULLWIDTH HYPHEN-MINUS
10D6E ; Pd # GARAY HYPHEN
10EAD ; Pd # YEZIDI HYPHENATION MARK
# Total code points: 27
# ================================================
# General_Category=Open_Punctuation
0028 ; Ps # LEFT PARENTHESIS
005B ; Ps # LEFT SQUARE BRACKET
007B ; Ps # LEFT CURLY BRACKET
0F3A ; Ps # TIBETAN MARK GUG RTAGS GYON
0F3C ; Ps # TIBETAN MARK ANG KHANG GYON
169B ; Ps # OGHAM FEATHER MARK
201A ; Ps # SINGLE LOW-9 QUOTATION MARK
201E ; Ps # DOUBLE LOW-9 QUOTATION MARK
2045 ; Ps # LEFT SQUARE BRACKET WITH QUILL
207D ; Ps # SUPERSCRIPT LEFT PARENTHESIS
208D ; Ps # SUBSCRIPT LEFT PARENTHESIS
2308 ; Ps # LEFT CEILING
230A ; Ps # LEFT FLOOR
2329 ; Ps # LEFT-POINTING ANGLE BRACKET
2768 ; Ps # MEDIUM LEFT PARENTHESIS ORNAMENT
276A ; Ps # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
276C ; Ps # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
276E ; Ps # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
2770 ; Ps # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
2772 ; Ps # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
2774 ; Ps # MEDIUM LEFT CURLY BRACKET ORNAMENT
27C5 ; Ps # LEFT S-SHAPED BAG DELIMITER
27E6 ; Ps # MATHEMATICAL LEFT WHITE SQUARE BRACKET
27E8 ; Ps # MATHEMATICAL LEFT ANGLE BRACKET
27EA ; Ps # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
27EC ; Ps # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
27EE ; Ps # MATHEMATICAL LEFT FLATTENED PARENTHESIS
2983 ; Ps # LEFT WHITE CURLY BRACKET
2985 ; Ps # LEFT WHITE PARENTHESIS
2987 ; Ps # Z NOTATION LEFT IMAGE BRACKET
2989 ; Ps # Z NOTATION LEFT BINDING BRACKET
298B ; Ps # LEFT SQUARE BRACKET WITH UNDERBAR
298D ; Ps # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
298F ; Ps # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
2991 ; Ps # LEFT ANGLE BRACKET WITH DOT
2993 ; Ps # LEFT ARC LESS-THAN BRACKET
2995 ; Ps # DOUBLE LEFT ARC GREATER-THAN BRACKET
2997 ; Ps # LEFT BLACK TORTOISE SHELL BRACKET
29D8 ; Ps # LEFT WIGGLY FENCE
29DA ; Ps # LEFT DOUBLE WIGGLY FENCE
29FC ; Ps # LEFT-POINTING CURVED ANGLE BRACKET
2E22 ; Ps # TOP LEFT HALF BRACKET
2E24 ; Ps # BOTTOM LEFT HALF BRACKET
2E26 ; Ps # LEFT SIDEWAYS U BRACKET
2E28 ; Ps # LEFT DOUBLE PARENTHESIS
2E42 ; Ps # DOUBLE LOW-REVERSED-9 QUOTATION MARK
2E55 ; Ps # LEFT SQUARE BRACKET WITH STROKE
2E57 ; Ps # LEFT SQUARE BRACKET WITH DOUBLE STROKE
2E59 ; Ps # TOP HALF LEFT PARENTHESIS
2E5B ; Ps # BOTTOM HALF LEFT PARENTHESIS
3008 ; Ps # LEFT ANGLE BRACKET
300A ; Ps # LEFT DOUBLE ANGLE BRACKET
300C ; Ps # LEFT CORNER BRACKET
300E ; Ps # LEFT WHITE CORNER BRACKET
3010 ; Ps # LEFT BLACK LENTICULAR BRACKET
3014 ; Ps # LEFT TORTOISE SHELL BRACKET
3016 ; Ps # LEFT WHITE LENTICULAR BRACKET
3018 ; Ps # LEFT WHITE TORTOISE SHELL BRACKET
301A ; Ps # LEFT WHITE SQUARE BRACKET
301D ; Ps # REVERSED DOUBLE PRIME QUOTATION MARK
FD3F ; Ps # ORNATE RIGHT PARENTHESIS
FE17 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
FE35 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
FE37 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
FE39 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
FE3B ; Ps # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
FE3D ; Ps # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
FE3F ; Ps # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
FE41 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
FE43 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
FE47 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
FE59 ; Ps # SMALL LEFT PARENTHESIS
FE5B ; Ps # SMALL LEFT CURLY BRACKET
FE5D ; Ps # SMALL LEFT TORTOISE SHELL BRACKET
FF08 ; Ps # FULLWIDTH LEFT PARENTHESIS
FF3B ; Ps # FULLWIDTH LEFT SQUARE BRACKET
FF5B ; Ps # FULLWIDTH LEFT CURLY BRACKET
FF5F ; Ps # FULLWIDTH LEFT WHITE PARENTHESIS
FF62 ; Ps # HALFWIDTH LEFT CORNER BRACKET
# Total code points: 79
# ================================================
# General_Category=Close_Punctuation
0029 ; Pe # RIGHT PARENTHESIS
005D ; Pe # RIGHT SQUARE BRACKET
007D ; Pe # RIGHT CURLY BRACKET
0F3B ; Pe # TIBETAN MARK GUG RTAGS GYAS
0F3D ; Pe # TIBETAN MARK ANG KHANG GYAS
169C ; Pe # OGHAM REVERSED FEATHER MARK
2046 ; Pe # RIGHT SQUARE BRACKET WITH QUILL
207E ; Pe # SUPERSCRIPT RIGHT PARENTHESIS
208E ; Pe # SUBSCRIPT RIGHT PARENTHESIS
2309 ; Pe # RIGHT CEILING
230B ; Pe # RIGHT FLOOR
232A ; Pe # RIGHT-POINTING ANGLE BRACKET
2769 ; Pe # MEDIUM RIGHT PARENTHESIS ORNAMENT
276B ; Pe # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
276D ; Pe # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
276F ; Pe # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
2771 ; Pe # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
2773 ; Pe # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
2775 ; Pe # MEDIUM RIGHT CURLY BRACKET ORNAMENT
27C6 ; Pe # RIGHT S-SHAPED BAG DELIMITER
27E7 ; Pe # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
27E9 ; Pe # MATHEMATICAL RIGHT ANGLE BRACKET
27EB ; Pe # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
27ED ; Pe # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
27EF ; Pe # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
2984 ; Pe # RIGHT WHITE CURLY BRACKET
2986 ; Pe # RIGHT WHITE PARENTHESIS
2988 ; Pe # Z NOTATION RIGHT IMAGE BRACKET
298A ; Pe # Z NOTATION RIGHT BINDING BRACKET
298C ; Pe # RIGHT SQUARE BRACKET WITH UNDERBAR
298E ; Pe # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
2990 ; Pe # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
2992 ; Pe # RIGHT ANGLE BRACKET WITH DOT
2994 ; Pe # RIGHT ARC GREATER-THAN BRACKET
2996 ; Pe # DOUBLE RIGHT ARC LESS-THAN BRACKET
2998 ; Pe # RIGHT BLACK TORTOISE SHELL BRACKET
29D9 ; Pe # RIGHT WIGGLY FENCE
29DB ; Pe # RIGHT DOUBLE WIGGLY FENCE
29FD ; Pe # RIGHT-POINTING CURVED ANGLE BRACKET
2E23 ; Pe # TOP RIGHT HALF BRACKET
2E25 ; Pe # BOTTOM RIGHT HALF BRACKET
2E27 ; Pe # RIGHT SIDEWAYS U BRACKET
2E29 ; Pe # RIGHT DOUBLE PARENTHESIS
2E56 ; Pe # RIGHT SQUARE BRACKET WITH STROKE
2E58 ; Pe # RIGHT SQUARE BRACKET WITH DOUBLE STROKE
2E5A ; Pe # TOP HALF RIGHT PARENTHESIS
2E5C ; Pe # BOTTOM HALF RIGHT PARENTHESIS
3009 ; Pe # RIGHT ANGLE BRACKET
300B ; Pe # RIGHT DOUBLE ANGLE BRACKET
300D ; Pe # RIGHT CORNER BRACKET
300F ; Pe # RIGHT WHITE CORNER BRACKET
3011 ; Pe # RIGHT BLACK LENTICULAR BRACKET
3015 ; Pe # RIGHT TORTOISE SHELL BRACKET
3017 ; Pe # RIGHT WHITE LENTICULAR BRACKET
3019 ; Pe # RIGHT WHITE TORTOISE SHELL BRACKET
301B ; Pe # RIGHT WHITE SQUARE BRACKET
301E..301F ; Pe # [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
FD3E ; Pe # ORNATE LEFT PARENTHESIS
FE18 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
FE36 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
FE38 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
FE3A ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
FE3C ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
FE3E ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
FE40 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
FE42 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
FE44 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
FE48 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
FE5A ; Pe # SMALL RIGHT PARENTHESIS
FE5C ; Pe # SMALL RIGHT CURLY BRACKET
FE5E ; Pe # SMALL RIGHT TORTOISE SHELL BRACKET
FF09 ; Pe # FULLWIDTH RIGHT PARENTHESIS
FF3D ; Pe # FULLWIDTH RIGHT SQUARE BRACKET
FF5D ; Pe # FULLWIDTH RIGHT CURLY BRACKET
FF60 ; Pe # FULLWIDTH RIGHT WHITE PARENTHESIS
FF63 ; Pe # HALFWIDTH RIGHT CORNER BRACKET
# Total code points: 77
# ================================================
# General_Category=Connector_Punctuation
005F ; Pc # LOW LINE
203F..2040 ; Pc # [2] UNDERTIE..CHARACTER TIE
2054 ; Pc # INVERTED UNDERTIE
FE33..FE34 ; Pc # [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
FE4D..FE4F ; Pc # [3] DASHED LOW LINE..WAVY LOW LINE
FF3F ; Pc # FULLWIDTH LOW LINE
# Total code points: 10
# ================================================
# General_Category=Other_Punctuation
0021..0023 ; Po # [3] EXCLAMATION MARK..NUMBER SIGN
0025..0027 ; Po # [3] PERCENT SIGN..APOSTROPHE
002A ; Po # ASTERISK
002C ; Po # COMMA
002E..002F ; Po # [2] FULL STOP..SOLIDUS
003A..003B ; Po # [2] COLON..SEMICOLON
003F..0040 ; Po # [2] QUESTION MARK..COMMERCIAL AT
005C ; Po # REVERSE SOLIDUS
00A1 ; Po # INVERTED EXCLAMATION MARK
00A7 ; Po # SECTION SIGN
00B6..00B7 ; Po # [2] PILCROW SIGN..MIDDLE DOT
00BF ; Po # INVERTED QUESTION MARK
037E ; Po # GREEK QUESTION MARK
0387 ; Po # GREEK ANO TELEIA
055A..055F ; Po # [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
0589 ; Po # ARMENIAN FULL STOP
05C0 ; Po # HEBREW PUNCTUATION PASEQ
05C3 ; Po # HEBREW PUNCTUATION SOF PASUQ
05C6 ; Po # HEBREW PUNCTUATION NUN HAFUKHA
05F3..05F4 ; Po # [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
0609..060A ; Po # [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
060C..060D ; Po # [2] ARABIC COMMA..ARABIC DATE SEPARATOR
061B ; Po # ARABIC SEMICOLON
061D..061F ; Po # [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK
066A..066D ; Po # [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
06D4 ; Po # ARABIC FULL STOP
0700..070D ; Po # [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
07F7..07F9 ; Po # [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
0830..083E ; Po # [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
085E ; Po # MANDAIC PUNCTUATION
0964..0965 ; Po # [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
0970 ; Po # DEVANAGARI ABBREVIATION SIGN
09FD ; Po # BENGALI ABBREVIATION SIGN
0A76 ; Po # GURMUKHI ABBREVIATION SIGN
0AF0 ; Po # GUJARATI ABBREVIATION SIGN
0C77 ; Po # TELUGU SIGN SIDDHAM
0C84 ; Po # KANNADA SIGN SIDDHAM
0DF4 ; Po # SINHALA PUNCTUATION KUNDDALIYA
0E4F ; Po # THAI CHARACTER FONGMAN
0E5A..0E5B ; Po # [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
0F04..0F12 ; Po # [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
0F14 ; Po # TIBETAN MARK GTER TSHEG
0F85 ; Po # TIBETAN MARK PALUTA
0FD0..0FD4 ; Po # [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
0FD9..0FDA ; Po # [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
104A..104F ; Po # [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
10FB ; Po # GEORGIAN PARAGRAPH SEPARATOR
1360..1368 ; Po # [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
166E ; Po # CANADIAN SYLLABICS FULL STOP
16EB..16ED ; Po # [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
1735..1736 ; Po # [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
17D4..17D6 ; Po # [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
17D8..17DA ; Po # [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
1800..1805 ; Po # [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
1807..180A ; Po # [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
1944..1945 ; Po # [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
1A1E..1A1F ; Po # [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
1AA0..1AA6 ; Po # [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
1AA8..1AAD ; Po # [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
1B4E..1B4F ; Po # [2] BALINESE INVERTED CARIK SIKI..BALINESE INVERTED CARIK PAREREN
1B5A..1B60 ; Po # [7] BALINESE PANTI..BALINESE PAMENENG
1B7D..1B7F ; Po # [3] BALINESE PANTI LANTANG..BALINESE PANTI BAWAK
1BFC..1BFF ; Po # [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
1C3B..1C3F ; Po # [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
1C7E..1C7F ; Po # [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
1CC0..1CC7 ; Po # [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
1CD3 ; Po # VEDIC SIGN NIHSHVASA
2016..2017 ; Po # [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE
2020..2027 ; Po # [8] DAGGER..HYPHENATION POINT
2030..2038 ; Po # [9] PER MILLE SIGN..CARET
203B..203E ; Po # [4] REFERENCE MARK..OVERLINE
2041..2043 ; Po # [3] CARET INSERTION POINT..HYPHEN BULLET
2047..2051 ; Po # [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
2053 ; Po # SWUNG DASH
2055..205E ; Po # [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
2CF9..2CFC ; Po # [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
2CFE..2CFF ; Po # [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
2D70 ; Po # TIFINAGH SEPARATOR MARK
2E00..2E01 ; Po # [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
2E06..2E08 ; Po # [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
2E0B ; Po # RAISED SQUARE
2E0E..2E16 ; Po # [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
2E18..2E19 ; Po # [2] INVERTED INTERROBANG..PALM BRANCH
2E1B ; Po # TILDE WITH RING ABOVE
2E1E..2E1F ; Po # [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
2E2A..2E2E ; Po # [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
2E30..2E39 ; Po # [10] RING POINT..TOP HALF SECTION SIGN
2E3C..2E3F ; Po # [4] STENOGRAPHIC FULL STOP..CAPITULUM
2E41 ; Po # REVERSED COMMA
2E43..2E4F ; Po # [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
2E52..2E54 ; Po # [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK
3001..3003 ; Po # [3] IDEOGRAPHIC COMMA..DITTO MARK
303D ; Po # PART ALTERNATION MARK
30FB ; Po # KATAKANA MIDDLE DOT
A4FE..A4FF ; Po # [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
A60D..A60F ; Po # [3] VAI COMMA..VAI QUESTION MARK
A673 ; Po # SLAVONIC ASTERISK
A67E ; Po # CYRILLIC KAVYKA
A6F2..A6F7 ; Po # [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
A874..A877 ; Po # [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
A8CE..A8CF ; Po # [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
A8F8..A8FA ; Po # [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
A8FC ; Po # DEVANAGARI SIGN SIDDHAM
A92E..A92F ; Po # [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
A95F ; Po # REJANG SECTION MARK
A9C1..A9CD ; Po # [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
A9DE..A9DF ; Po # [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
AA5C..AA5F ; Po # [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
AADE..AADF ; Po # [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
AAF0..AAF1 ; Po # [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
ABEB ; Po # MEETEI MAYEK CHEIKHEI
FE10..FE16 ; Po # [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
FE19 ; Po # PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
FE30 ; Po # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
FE45..FE46 ; Po # [2] SESAME DOT..WHITE SESAME DOT
FE49..FE4C ; Po # [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
FE50..FE52 ; Po # [3] SMALL COMMA..SMALL FULL STOP
FE54..FE57 ; Po # [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
FE5F..FE61 ; Po # [3] SMALL NUMBER SIGN..SMALL ASTERISK
FE68 ; Po # SMALL REVERSE SOLIDUS
FE6A..FE6B ; Po # [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
FF01..FF03 ; Po # [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
FF05..FF07 ; Po # [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
FF0A ; Po # FULLWIDTH ASTERISK
FF0C ; Po # FULLWIDTH COMMA
FF0E..FF0F ; Po # [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
FF1A..FF1B ; Po # [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
FF1F..FF20 ; Po # [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
FF3C ; Po # FULLWIDTH REVERSE SOLIDUS
FF61 ; Po # HALFWIDTH IDEOGRAPHIC FULL STOP
FF64..FF65 ; Po # [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
10100..10102 ; Po # [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
1039F ; Po # UGARITIC WORD DIVIDER
103D0 ; Po # OLD PERSIAN WORD DIVIDER
1056F ; Po # CAUCASIAN ALBANIAN CITATION MARK
10857 ; Po # IMPERIAL ARAMAIC SECTION SIGN
1091F ; Po # PHOENICIAN WORD SEPARATOR
1093F ; Po # LYDIAN TRIANGULAR MARK
10A50..10A58 ; Po # [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
10A7F ; Po # OLD SOUTH ARABIAN NUMERIC INDICATOR
10AF0..10AF6 ; Po # [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
10B39..10B3F ; Po # [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
10B99..10B9C ; Po # [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
10ED0 ; Po # ARABIC BIBLICAL END OF VERSE
10F55..10F59 ; Po # [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
10F86..10F89 ; Po # [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
11047..1104D ; Po # [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
110BB..110BC ; Po # [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
110BE..110C1 ; Po # [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
11140..11143 ; Po # [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
11174..11175 ; Po # [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
111C5..111C8 ; Po # [4] SHARADA DANDA..SHARADA SEPARATOR
111CD ; Po # SHARADA SUTRA MARK
111DB ; Po # SHARADA SIGN SIDDHAM
111DD..111DF ; Po # [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
11238..1123D ; Po # [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
112A9 ; Po # MULTANI SECTION MARK
113D4..113D5 ; Po # [2] TULU-TIGALARI DANDA..TULU-TIGALARI DOUBLE DANDA
113D7..113D8 ; Po # [2] TULU-TIGALARI SIGN OM PUSHPIKA..TULU-TIGALARI SIGN SHRII PUSHPIKA
1144B..1144F ; Po # [5] NEWA DANDA..NEWA ABBREVIATION SIGN
1145A..1145B ; Po # [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK
1145D ; Po # NEWA INSERTION SIGN
114C6 ; Po # TIRHUTA ABBREVIATION SIGN
115C1..115D7 ; Po # [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
11641..11643 ; Po # [3] MODI DANDA..MODI ABBREVIATION SIGN
11660..1166C ; Po # [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
116B9 ; Po # TAKRI ABBREVIATION SIGN
1173C..1173E ; Po # [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
1183B ; Po # DOGRA ABBREVIATION SIGN
11944..11946 ; Po # [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK
119E2 ; Po # NANDINAGARI SIGN SIDDHAM
11A3F..11A46 ; Po # [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
11A9A..11A9C ; Po # [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
11A9E..11AA2 ; Po # [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
11B00..11B09 ; Po # [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
11BE1 ; Po # SUNUWAR SIGN PVO
11C41..11C45 ; Po # [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
11C70..11C71 ; Po # [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD
11EF7..11EF8 ; Po # [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
11F43..11F4F ; Po # [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
11FFF ; Po # TAMIL PUNCTUATION END OF TEXT
12470..12474 ; Po # [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
12FF1..12FF2 ; Po # [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
16A6E..16A6F ; Po # [2] MRO DANDA..MRO DOUBLE DANDA
16AF5 ; Po # BASSA VAH FULL STOP
16B37..16B3B ; Po # [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
16B44 ; Po # PAHAWH HMONG SIGN XAUS
16D6D..16D6F ; Po # [3] KIRAT RAI SIGN YUPI..KIRAT RAI DOUBLE DANDA
16E97..16E9A ; Po # [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH
16FE2 ; Po # OLD CHINESE HOOK MARK
1BC9F ; Po # DUPLOYAN PUNCTUATION CHINOOK FULL STOP
1DA87..1DA8B ; Po # [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS
1E5FF ; Po # OL ONAL ABBREVIATION SIGN
1E95E..1E95F ; Po # [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
# Total code points: 641
# ================================================
# General_Category=Math_Symbol
002B ; Sm # PLUS SIGN
003C..003E ; Sm # [3] LESS-THAN SIGN..GREATER-THAN SIGN
007C ; Sm # VERTICAL LINE
007E ; Sm # TILDE
00AC ; Sm # NOT SIGN
00B1 ; Sm # PLUS-MINUS SIGN
00D7 ; Sm # MULTIPLICATION SIGN
00F7 ; Sm # DIVISION SIGN
03F6 ; Sm # GREEK REVERSED LUNATE EPSILON SYMBOL
0606..0608 ; Sm # [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
2044 ; Sm # FRACTION SLASH
2052 ; Sm # COMMERCIAL MINUS SIGN
207A..207C ; Sm # [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
208A..208C ; Sm # [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
2118 ; Sm # SCRIPT CAPITAL P
2140..2144 ; Sm # [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
214B ; Sm # TURNED AMPERSAND
2190..2194 ; Sm # [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
219A..219B ; Sm # [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
21A0 ; Sm # RIGHTWARDS TWO HEADED ARROW
21A3 ; Sm # RIGHTWARDS ARROW WITH TAIL
21A6 ; Sm # RIGHTWARDS ARROW FROM BAR
21AE ; Sm # LEFT RIGHT ARROW WITH STROKE
21CE..21CF ; Sm # [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
21D2 ; Sm # RIGHTWARDS DOUBLE ARROW
21D4 ; Sm # LEFT RIGHT DOUBLE ARROW
21F4..22FF ; Sm # [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP
2320..2321 ; Sm # [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
237C ; Sm # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
239B..23B3 ; Sm # [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
23DC..23E1 ; Sm # [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
25B7 ; Sm # WHITE RIGHT-POINTING TRIANGLE
25C1 ; Sm # WHITE LEFT-POINTING TRIANGLE
25F8..25FF ; Sm # [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
266F ; Sm # MUSIC SHARP SIGN
27C0..27C4 ; Sm # [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
27C7..27E5 ; Sm # [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
27F0..27FF ; Sm # [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
2900..2982 ; Sm # [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON
2999..29D7 ; Sm # [63] DOTTED FENCE..BLACK HOURGLASS
29DC..29FB ; Sm # [32] INCOMPLETE INFINITY..TRIPLE PLUS
29FE..2AFF ; Sm # [258] TINY..N-ARY WHITE VERTICAL BAR
2B30..2B44 ; Sm # [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
2B47..2B4C ; Sm # [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
FB29 ; Sm # HEBREW LETTER ALTERNATIVE PLUS SIGN
FE62 ; Sm # SMALL PLUS SIGN
FE64..FE66 ; Sm # [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
FF0B ; Sm # FULLWIDTH PLUS SIGN
FF1C..FF1E ; Sm # [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
FF5C ; Sm # FULLWIDTH VERTICAL LINE
FF5E ; Sm # FULLWIDTH TILDE
FFE2 ; Sm # FULLWIDTH NOT SIGN
FFE9..FFEC ; Sm # [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
10D8E..10D8F ; Sm # [2] GARAY PLUS SIGN..GARAY MINUS SIGN
1CEF0 ; Sm # MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR
1D6C1 ; Sm # MATHEMATICAL BOLD NABLA
1D6DB ; Sm # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
1D6FB ; Sm # MATHEMATICAL ITALIC NABLA
1D715 ; Sm # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
1D735 ; Sm # MATHEMATICAL BOLD ITALIC NABLA
1D74F ; Sm # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
1D76F ; Sm # MATHEMATICAL SANS-SERIF BOLD NABLA
1D789 ; Sm # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
1D7A9 ; Sm # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
1D7C3 ; Sm # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
1EEF0..1EEF1 ; Sm # [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
1F8D0..1F8D8 ; Sm # [9] LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW..LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE
# Total code points: 960
# ================================================
# General_Category=Currency_Symbol
0024 ; Sc # DOLLAR SIGN
00A2..00A5 ; Sc # [4] CENT SIGN..YEN SIGN
058F ; Sc # ARMENIAN DRAM SIGN
060B ; Sc # AFGHANI SIGN
07FE..07FF ; Sc # [2] NKO DOROME SIGN..NKO TAMAN SIGN
09F2..09F3 ; Sc # [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
09FB ; Sc # BENGALI GANDA MARK
0AF1 ; Sc # GUJARATI RUPEE SIGN
0BF9 ; Sc # TAMIL RUPEE SIGN
0E3F ; Sc # THAI CURRENCY SYMBOL BAHT
17DB ; Sc # KHMER CURRENCY SYMBOL RIEL
20A0..20C1 ; Sc # [34] EURO-CURRENCY SIGN..SAUDI RIYAL SIGN
A838 ; Sc # NORTH INDIC RUPEE MARK
FDFC ; Sc # RIAL SIGN
FE69 ; Sc # SMALL DOLLAR SIGN
FF04 ; Sc # FULLWIDTH DOLLAR SIGN
FFE0..FFE1 ; Sc # [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
FFE5..FFE6 ; Sc # [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
11FDD..11FE0 ; Sc # [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
1E2FF ; Sc # WANCHO NGUN SIGN
1ECB0 ; Sc # INDIC SIYAQ RUPEE MARK
# Total code points: 64
# ================================================
# General_Category=Modifier_Symbol
005E ; Sk # CIRCUMFLEX ACCENT
0060 ; Sk # GRAVE ACCENT
00A8 ; Sk # DIAERESIS
00AF ; Sk # MACRON
00B4 ; Sk # ACUTE ACCENT
00B8 ; Sk # CEDILLA
02C2..02C5 ; Sk # [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
02D2..02DF ; Sk # [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT
02E5..02EB ; Sk # [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
02ED ; Sk # MODIFIER LETTER UNASPIRATED
02EF..02FF ; Sk # [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
0375 ; Sk # GREEK LOWER NUMERAL SIGN
0384..0385 ; Sk # [2] GREEK TONOS..GREEK DIALYTIKA TONOS
0888 ; Sk # ARABIC RAISED ROUND DOT
1FBD ; Sk # GREEK KORONIS
1FBF..1FC1 ; Sk # [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
1FCD..1FCF ; Sk # [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
1FDD..1FDF ; Sk # [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
1FED..1FEF ; Sk # [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
1FFD..1FFE ; Sk # [2] GREEK OXIA..GREEK DASIA
309B..309C ; Sk # [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
A700..A716 ; Sk # [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
A720..A721 ; Sk # [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
A789..A78A ; Sk # [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
AB5B ; Sk # MODIFIER BREVE WITH INVERTED BREVE
AB6A..AB6B ; Sk # [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK
FBB2..FBC2 ; Sk # [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
FF3E ; Sk # FULLWIDTH CIRCUMFLEX ACCENT
FF40 ; Sk # FULLWIDTH GRAVE ACCENT
FFE3 ; Sk # FULLWIDTH MACRON
1F3FB..1F3FF ; Sk # [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
# Total code points: 125
# ================================================
# General_Category=Other_Symbol
00A6 ; So # BROKEN BAR
00A9 ; So # COPYRIGHT SIGN
00AE ; So # REGISTERED SIGN
00B0 ; So # DEGREE SIGN
0482 ; So # CYRILLIC THOUSANDS SIGN
058D..058E ; So # [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
060E..060F ; So # [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
06DE ; So # ARABIC START OF RUB EL HIZB
06E9 ; So # ARABIC PLACE OF SAJDAH
06FD..06FE ; So # [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
07F6 ; So # NKO SYMBOL OO DENNEN
09FA ; So # BENGALI ISSHAR
0B70 ; So # ORIYA ISSHAR
0BF3..0BF8 ; So # [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
0BFA ; So # TAMIL NUMBER SIGN
0C7F ; So # TELUGU SIGN TUUMU
0D4F ; So # MALAYALAM SIGN PARA
0D79 ; So # MALAYALAM DATE MARK
0F01..0F03 ; So # [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
0F13 ; So # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
0F15..0F17 ; So # [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
0F1A..0F1F ; So # [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
0F34 ; So # TIBETAN MARK BSDUS RTAGS
0F36 ; So # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
0F38 ; So # TIBETAN MARK CHE MGO
0FBE..0FC5 ; So # [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
0FC7..0FCC ; So # [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
0FCE..0FCF ; So # [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
0FD5..0FD8 ; So # [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
109E..109F ; So # [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
1390..1399 ; So # [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
166D ; So # CANADIAN SYLLABICS CHI SIGN
1940 ; So # LIMBU SIGN LOO
19DE..19FF ; So # [34] NEW TAI LUE SIGN LAE..KHMER SYMBOL DAP-PRAM ROC
1B61..1B6A ; So # [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
1B74..1B7C ; So # [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
2100..2101 ; So # [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
2103..2106 ; So # [4] DEGREE CELSIUS..CADA UNA
2108..2109 ; So # [2] SCRUPLE..DEGREE FAHRENHEIT
2114 ; So # L B BAR SYMBOL
2116..2117 ; So # [2] NUMERO SIGN..SOUND RECORDING COPYRIGHT
211E..2123 ; So # [6] PRESCRIPTION TAKE..VERSICLE
2125 ; So # OUNCE SIGN
2127 ; So # INVERTED OHM SIGN
2129 ; So # TURNED GREEK SMALL LETTER IOTA
212E ; So # ESTIMATED SYMBOL
213A..213B ; So # [2] ROTATED CAPITAL Q..FACSIMILE SIGN
214A ; So # PROPERTY LINE
214C..214D ; So # [2] PER SIGN..AKTIESELSKAB
214F ; So # SYMBOL FOR SAMARITAN SOURCE
218A..218B ; So # [2] TURNED DIGIT TWO..TURNED DIGIT THREE
2195..2199 ; So # [5] UP DOWN ARROW..SOUTH WEST ARROW
219C..219F ; So # [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
21A1..21A2 ; So # [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
21A4..21A5 ; So # [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
21A7..21AD ; So # [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
21AF..21CD ; So # [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
21D0..21D1 ; So # [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
21D3 ; So # DOWNWARDS DOUBLE ARROW
21D5..21F3 ; So # [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
2300..2307 ; So # [8] DIAMETER SIGN..WAVY LINE
230C..231F ; So # [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER
2322..2328 ; So # [7] FROWN..KEYBOARD
232B..237B ; So # [81] ERASE TO THE LEFT..NOT CHECK MARK
237D..239A ; So # [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
23B4..23DB ; So # [40] TOP SQUARE BRACKET..FUSE
23E2..2429 ; So # [72] WHITE TRAPEZIUM..SYMBOL FOR DELETE MEDIUM SHADE FORM
2440..244A ; So # [11] OCR HOOK..OCR DOUBLE BACKSLASH
249C..24E9 ; So # [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
2500..25B6 ; So # [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE
25B8..25C0 ; So # [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE
25C2..25F7 ; So # [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
2600..266E ; So # [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
2670..2767 ; So # [248] WEST SYRIAC CROSS..ROTATED FLORAL HEART BULLET
2794..27BF ; So # [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
2800..28FF ; So # [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
2B00..2B2F ; So # [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
2B45..2B46 ; So # [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
2B4D..2B73 ; So # [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
2B76..2BFF ; So # [138] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..HELLSCHREIBER PAUSE SYMBOL
2CE5..2CEA ; So # [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
2E50..2E51 ; So # [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
2E80..2E99 ; So # [26] CJK RADICAL REPEAT..CJK RADICAL RAP
2E9B..2EF3 ; So # [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
2F00..2FD5 ; So # [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
2FF0..2FFF ; So # [16] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
3004 ; So # JAPANESE INDUSTRIAL STANDARD SYMBOL
3012..3013 ; So # [2] POSTAL MARK..GETA MARK
3020 ; So # POSTAL MARK FACE
3036..3037 ; So # [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
303E..303F ; So # [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
3190..3191 ; So # [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
3196..319F ; So # [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
31C0..31E5 ; So # [38] CJK STROKE T..CJK STROKE SZP
31EF ; So # IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
3200..321E ; So # [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
322A..3247 ; So # [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
3250 ; So # PARTNERSHIP SIGN
3260..327F ; So # [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
328A..32B0 ; So # [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
32C0..33FF ; So # [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
4DC0..4DFF ; So # [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
A490..A4C6 ; So # [55] YI RADICAL QOT..YI RADICAL KE
A828..A82B ; So # [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
A836..A837 ; So # [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
A839 ; So # NORTH INDIC QUANTITY MARK
AA77..AA79 ; So # [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
FBC3..FBD2 ; So # [16] ARABIC LIGATURE JALLA WA-ALAA..ARABIC LIGATURE ALAYHI AR-RAHMAH
FD40..FD4F ; So # [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
FD90..FD91 ; So # [2] ARABIC LIGATURE RAHMATU ALLAAHI ALAYH..ARABIC LIGATURE RAHMATU ALLAAHI ALAYHAA
FDC8..FDCF ; So # [8] ARABIC LIGATURE RAHIMAHU ALLAAH TAAALAA..ARABIC LIGATURE SALAAMUHU ALAYNAA
FDFD..FDFF ; So # [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
FFE4 ; So # FULLWIDTH BROKEN BAR
FFE8 ; So # HALFWIDTH FORMS LIGHT VERTICAL
FFED..FFEE ; So # [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
FFFC..FFFD ; So # [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
10137..1013F ; So # [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
10179..10189 ; So # [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
1018C..1018E ; So # [3] GREEK SINUSOID SIGN..NOMISMA SIGN
10190..1019C ; So # [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
101A0 ; So # GREEK SYMBOL TAU RHO
101D0..101FC ; So # [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
10877..10878 ; So # [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
10AC8 ; So # MANICHAEAN SIGN UD
10ED1..10ED8 ; So # [8] ARABIC LIGATURE ALAYHAA AS-SALAATU WAS-SALAAM..ARABIC LIGATURE NAWWARA ALLAAHU MARQADAH
1173F ; So # AHOM SYMBOL VI
11FD5..11FDC ; So # [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
11FE1..11FF1 ; So # [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
16B3C..16B3F ; So # [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
16B45 ; So # PAHAWH HMONG SIGN CIM TSOV ROG
1BC9C ; So # DUPLOYAN SIGN O WITH CROSS
1CC00..1CCEF ; So # [240] UP-POINTING GO-KART..OUTLINED LATIN CAPITAL LETTER Z
1CCFA..1CCFC ; So # [3] SNAKE SYMBOL..NOSE SYMBOL
1CD00..1CEB3 ; So # [436] BLOCK OCTANT-3..BLACK RIGHT TRIANGLE CARET
1CEBA..1CED0 ; So # [23] FRAGILE SYMBOL..LEUKOTHEA
1CEE0..1CEEF ; So # [16] GEOMANTIC FIGURE POPULUS..GEOMANTIC FIGURE VIA
1CF50..1CFC3 ; So # [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
1D000..1D0F5 ; So # [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
1D100..1D126 ; So # [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
1D129..1D164 ; So # [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
1D16A..1D16C ; So # [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
1D183..1D184 ; So # [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
1D18C..1D1A9 ; So # [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
1D1AE..1D1EA ; So # [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
1D200..1D241 ; So # [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
1D245 ; So # GREEK MUSICAL LEIMMA
1D300..1D356 ; So # [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
1D800..1D9FF ; So # [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD
1DA37..1DA3A ; So # [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
1DA6D..1DA74 ; So # [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
1DA76..1DA83 ; So # [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
1DA85..1DA86 ; So # [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS
1E14F ; So # NYIAKENG PUACHUE HMONG CIRCLED CA
1ECAC ; So # INDIC SIYAQ PLACEHOLDER
1ED2E ; So # OTTOMAN SIYAQ MARRATAN
1F000..1F02B ; So # [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
1F030..1F093 ; So # [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
1F0A0..1F0AE ; So # [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
1F0B1..1F0BF ; So # [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
1F0C1..1F0CF ; So # [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
1F0D1..1F0F5 ; So # [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
1F10D..1F1AD ; So # [161] CIRCLED ZERO WITH SLASH..MASK WORK SYMBOL
1F1E6..1F202 ; So # [29] REGIONAL INDICATOR SYMBOL LETTER A..SQUARED KATAKANA SA
1F210..1F23B ; So # [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
1F240..1F248 ; So # [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
1F250..1F251 ; So # [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
1F260..1F265 ; So # [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
1F300..1F3FA ; So # [251] CYCLONE..AMPHORA
1F400..1F6D8 ; So # [729] RAT..LANDSLIDE
1F6DC..1F6EC ; So # [17] WIRELESS..AIRPLANE ARRIVING
1F6F0..1F6FC ; So # [13] SATELLITE..ROLLER SKATE
1F700..1F7D9 ; So # [218] ALCHEMICAL SYMBOL FOR QUINTESSENCE..NINE POINTED WHITE STAR
1F7E0..1F7EB ; So # [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
1F7F0 ; So # HEAVY EQUALS SIGN
1F800..1F80B ; So # [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
1F810..1F847 ; So # [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
1F850..1F859 ; So # [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
1F860..1F887 ; So # [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
1F890..1F8AD ; So # [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
1F8B0..1F8BB ; So # [12] ARROW POINTING UPWARDS THEN NORTH WEST..SOUTH WEST ARROW FROM BAR
1F8C0..1F8C1 ; So # [2] LEFTWARDS ARROW FROM DOWNWARDS ARROW..RIGHTWARDS ARROW FROM DOWNWARDS ARROW
1F900..1FA57 ; So # [344] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS ALFIL
1FA60..1FA6D ; So # [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
1FA70..1FA7C ; So # [13] BALLET SHOES..CRUTCH
1FA80..1FA8A ; So # [11] YO-YO..TROMBONE
1FA8E..1FAC6 ; So # [57] TREASURE CHEST..FINGERPRINT
1FAC8 ; So # HAIRY CREATURE
1FACD..1FADC ; So # [16] ORCA..ROOT VEGETABLE
1FADF..1FAEA ; So # [12] SPLATTER..DISTORTED FACE
1FAEF..1FAF8 ; So # [10] FIGHT CLOUD..RIGHTWARDS PUSHING HAND
1FB00..1FB92 ; So # [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
1FB94..1FBEF ; So # [92] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE
1FBFA ; So # ALARM BELL SYMBOL
# Total code points: 7468
# ================================================
# General_Category=Initial_Punctuation
00AB ; Pi # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
2018 ; Pi # LEFT SINGLE QUOTATION MARK
201B..201C ; Pi # [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
201F ; Pi # DOUBLE HIGH-REVERSED-9 QUOTATION MARK
2039 ; Pi # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
2E02 ; Pi # LEFT SUBSTITUTION BRACKET
2E04 ; Pi # LEFT DOTTED SUBSTITUTION BRACKET
2E09 ; Pi # LEFT TRANSPOSITION BRACKET
2E0C ; Pi # LEFT RAISED OMISSION BRACKET
2E1C ; Pi # LEFT LOW PARAPHRASE BRACKET
2E20 ; Pi # LEFT VERTICAL BAR WITH QUILL
# Total code points: 12
# ================================================
# General_Category=Final_Punctuation
00BB ; Pf # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
2019 ; Pf # RIGHT SINGLE QUOTATION MARK
201D ; Pf # RIGHT DOUBLE QUOTATION MARK
203A ; Pf # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
2E03 ; Pf # RIGHT SUBSTITUTION BRACKET
2E05 ; Pf # RIGHT DOTTED SUBSTITUTION BRACKET
2E0A ; Pf # RIGHT TRANSPOSITION BRACKET
2E0D ; Pf # RIGHT RAISED OMISSION BRACKET
2E1D ; Pf # RIGHT LOW PARAPHRASE BRACKET
2E21 ; Pf # RIGHT VERTICAL BAR WITH QUILL
# Total code points: 10
# EOF
+66
View File
@@ -0,0 +1,66 @@
# ghostty-datastruct
Port of `ZIG/src/datastruct/*`.
| Zig | Rust (`crates/ghostty-datastruct/src`) | Notes |
|---|---|---|
| `split_tree.zig` | `split_tree.rs` | Full port, all 17 tests (+4 extra). |
| `circ_buf.zig` | `circ_buf.rs` | `CircBuf<T>` takes the default value in `new`. All 21 tests (+2). |
| `lru.zig` | `lru.rs` | Slab + index linked list. All 4 tests (+1). |
| `cache_table.zig` | `cache_table.rs` | `CacheContext` trait (hash/eql/evicted). 1 test (+2). |
| `blocking_queue.zig` | `blocking_queue.rs` | `Mutex` + `Condvar`. 2 tests (+3, incl. cross-thread). |
| `segmented_pool.zig` | `segmented_pool.rs` | Index handles instead of pointers. 1 test. |
| `message_data.zig` | `message_data.rs` | enum `Small/Stable/Alloc`. 3 tests (+1). |
| `comparison.zig` | `comparison.rs` | `DeepEqual` / `ApproxEq` traits. All 24 tests. |
| `array_list_collection.zig` | `array_list_collection.rs` | 0 Zig tests (1 added). |
| `intrusive_linked_list.zig` | **not ported** | Only user is `lru.zig`; replaced by an index-based list. Its 1 test is skipped. |
| `main.zig` | `lib.rs` | `refAllDecls` test skipped (Zig only). |
Zig tests: 73 ported (all), 2 skipped (`intrusive_linked_list` basic test,
`main.zig` refAllDecls). Total Rust tests: 88.
## SplitTree design / deviations
* View type: Zig stores `*View` with `ref`/`unref`. Rust: `V: SplitTreeView`
(`Clone` + optional `split_tree_label() -> Option<String>`). `Clone` is the
ref, `Drop` is the unref (use `Rc`/`Arc`/GObject handles inside the view).
Allocation is infallible, so no allocator parameters; the arena is a `Vec`.
`SplitTree::new(&view)` replaces `init`, `empty()` replaces `.empty`,
`Clone` replaces `clone`, `Drop` replaces `deinit`.
* Only `split` can fail (`SplitError::OutOfMemory` when > 65535 nodes, as in Zig).
* `Handle` is a `u16` newtype (`Handle::ROOT`, `idx()`, `offset()`,
`from_idx()`); `nodes()`/`zoomed()` are read-only accessors.
* Ratios and spatial slots use `half::f16` exactly like Zig's `f16` (so
rounding in `{d:.2}` output, `resize`, spatial navigation match).
* `goto` no longer takes an allocator; spatial navigation allocates a `Vec`.
* Formatting: `Display` = diagram + text (like `{f}`); `format_diagram`,
`format_text` (writer based), `diagram_string()` / `text_string()` helpers
replace `std.fmt.alt(t, .formatDiagram/.formatText)`. If a view has no label,
the node index is used (digit width = `log10(nodes)+1`).
* `getGObjectType` (GTK boxed type glue) is not ported: the GTK crate should
wrap `SplitTree<V>` itself (e.g. a `glib::Boxed` newtype using `Clone`).
## Other deviations
* `lru`: `V: Default` is required (the new slot is default-initialised where
Zig leaves it undefined). `GetOrPutResult.evicted` contains the evicted
entry's **old key** and old value (Zig set the new key before copying the
entry out, which looks like a bug; only `.value` is used in tests). `get`
returns `Option<&V>` and does not affect LRU order (as in Zig).
`resize` returns the evicted values (oldest first) as `Option<Vec<V>>`.
* `cache_table`: `get` returns `Option<&V>` (moves the hit to the bucket end);
buckets are `Vec`s instead of fixed arrays; `K`/`V: Clone` for `put` because
the eviction hook and the return value both receive the evicted pair.
* `blocking_queue`: `create`/`destroy` -> `new()`/`Arc`; `drain()` returns a
guard iterator that releases the lock (and signals waiting producers) on drop.
Blocking pushes use `wait_while`, so spurious wakeups no longer fail a push.
* `segmented_pool`: `get()` returns a slot index; use `at`/`at_mut`.
* `message_data`: `Stable` holds `&'static [T]`; `Alloc` holds a `Vec`.
* `comparison`: Zig reflection (`deepEqual` over any type) is replaced by traits;
implement `DeepEqual` for custom types (rarely needed — prefer `PartialEq`).
`expect_approx_equal` panics instead of returning an error; `@Vector` and
anonymous structs map to arrays/tuples.
## TODO(integration)
None.
+84
View File
@@ -0,0 +1,84 @@
# ghostty-unicode
Port of `ZIG/src/unicode/*`.
## Module map
| Zig | Rust (`crates/ghostty-unicode`) |
|---|---|
| `main.zig` | `src/lib.rs` (re-exports `table`, `Properties`, `grapheme_break`, `BreakState`) |
| `lut.zig` | `src/lut.rs` (3-stage table generator + lookup; also included by `build.rs`) |
| `props.zig` | `src/props.rs` (`Properties`, `GraphemeBreakNoControl`) |
| `props_table.zig` | `src/props_table.rs` (`table()`; generated into `$OUT_DIR`) |
| `props_uucode.zig`, `symbols_uucode.zig` (the generators) | `build.rs` + `build_support/ucd.rs` (UCD parser and uucode-equivalent computation) |
| `symbols_table.zig` | `src/symbols_table.rs` |
| `grapheme.zig` | `src/grapheme.rs` |
| (uucode `is_emoji_presentation`, used by font `CodepointResolver`) | `src/emoji_table.rs` (extra) |
## How the data is derived (uucode)
Ghostty gets its data from the `uucode` Zig package (v0.2.0, vendored UCD =
**Unicode 17.0.0**), configured in `ZIG/src/build/uucode_config.zig`. Neither
a Rust crate nor runtime data is used; instead the exact UCD files uucode ships
(trimmed to the used properties) are vendored in `ucd/` and `build.rs`
re-implements uucode's computations, so results are identical to Ghostty:
* `ucd/extracted/DerivedGeneralCategory.txt`, `DerivedEastAsianWidth.txt`
(incl. `@missing` Wide ranges), `auxiliary/GraphemeBreakProperty.txt`,
`DerivedCoreProperties.txt` (trimmed to `Default_Ignorable_Code_Point` and
`InCB`), `emoji/emoji-data.txt`, `emoji/emoji-variation-sequences.txt`,
`Blocks.txt`, `auxiliary/GraphemeBreakTest.txt` (tests only).
(uucode uses `UnicodeData.txt` for general category; `DerivedGeneralCategory`
carries the same values and is 10x smaller.)
* **Width** (`uucode x/config_x/wcwidth.zig` + Ghostty `computeWidth`):
Cc/Cs/Zl/Zp -> 0; U+00AD -> 1; Default_Ignorable -> 0; U+2E3A -> 2;
U+2E3B -> 3 (clamped to 2 in `width`); EAW W/F -> 2; Regional Indicator -> 2;
else 1; U+20E3 standalone = 2. `width_zero_in_grapheme` = width 0, emoji
modifier, Mn, Me, GCB=V, GCB=T, or Prepend. Ghostty's final `width`:
`0` if `zero_in_grapheme && !emoji_modifier && gcb != prepend`, else
`min(2, standalone)` (so emoji modifiers and Prepend characters keep a width;
VS15/VS16/ZWJ/combining marks are 0).
* **Grapheme break** property (`grapheme_break_no_control`): emoji modifier,
emoji modifier base, extended pictographic, then InCB (linker / consonant /
extend; ZWJ and ZWNJ split out), else GCB with control/CR/LF folded into
`other` (the terminal filters controls first, as in Zig).
* **`graphemeBreak(cp1, cp2, state)`**: uucode's
`computeGraphemeBreakNoControl` (UAX #29 incl. GB9c Indic conjuncts, GB11,
GB12/13), with Ghostty/uucode's tailoring that emoji modifiers only extend
an emoji modifier base. Precomputed at compile time (const fn) into a
5 x 17 x 17 table. `grapheme_break_props(gb1, gb2, state)` takes
already-looked-up properties (hot path for the terminal).
* **`is_symbol`** (`symbols_table::table()`): general category Co or block in
{Arrows, Dingbats, Emoticons, Miscellaneous Symbols, Enclosed Alphanumerics,
Enclosed Alphanumeric Supplement, Miscellaneous Symbols and Pictographs,
Transport and Map Symbols}.
* Code points above U+10FFFF return `{width: 1, width_zero_in_grapheme: true,
Other, emoji_vs_base: false}` (as in `props_uucode.get`).
## API differences
* Code points are `u32` (Zig `u21`). `table().get(cp)` is branch-free:
three array loads. `table()` returns a tiny `Tables` view over static data.
* `Properties.width` is a `u8` in 0..=2 (Zig `u2`).
* Not ported: `uucode.get(.case_folding_full)` (used by `input/Binding.zig`;
the input crate should use `char::to_lowercase`/own folding or ask for this
later), `x.grapheme.wcwidth` (unused by Ghostty), uucode's UTF-8 iterator,
and the `main()` brute-force verification binary in `grapheme.zig` (replaced
by the `GraphemeBreakTest.txt` test below).
## Tests
Zig tests ported (4/4): `grapheme break: emoji modifier`,
`long emoji zwj sequences`, `unicode props: tables match uucode`
(`unicode_props_tables_match_uucode`, compares the generated table with a
direct computation from the UCD files for every code point),
`unicode symbols: tables match uucode`. Extras: official
`GraphemeBreakTest.txt` (with controls skipped and the emoji-modifier
tailoring, like uucode's own test), width tests for ASCII/CJK/emoji/combining/
ZWJ/VS15/VS16/RI/keycap/Hangul/Prepend, cluster tests (flags, ZWJ families,
skin tones, Indic conjunct), precompute-vs-compute equality, lut round-trip.
## Known gaps / notes
* Build time of the crate is a few seconds (generator walks 2M code points).
* Updating Unicode: replace files in `ucd/` (see uucode `bin/fetch-ucd.sh`).