pax_global_header00006660000000000000000000000064137644550530014526gustar00rootroot0000000000000052 comment=fa836292c20f824e7e3ef88bbca9be489cbf956d .github/000077500000000000000000000000001376445505300124325ustar00rootroot00000000000000.github/workflows/000077500000000000000000000000001376445505300144675ustar00rootroot00000000000000.github/workflows/publish-release.yml000066400000000000000000000033171376445505300203020ustar00rootroot00000000000000on: push: tags: - "v*" # Push events to matching `v*` version srings. e.g. v1.0, v20.15.10 name: Create and Publish Release jobs: build: name: Create and Publish Release runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: submodules: recursive fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Install release dependencies run: | python -m pip install --upgrade pip pip install --upgrade setuptools wheel twine - name: Get release notes id: release_notes run: | # By default, GH Actions checkout will only fetch a single commit. # For us to extract the release notes, we need to fetch the tags # and tag annotations as well. # https://github.com/actions/checkout/issues/290 git fetch --tags --force TAG_NAME=${GITHUB_REF/refs\/tags\//} echo "$(git tag -l --format='%(contents)' $TAG_NAME)" > "${{ runner.temp }}/CHANGELOG.md" - name: Create GitHub release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} body_path: "${{ runner.temp }}/CHANGELOG.md" draft: false prerelease: false - name: Build and publish to PyPI env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | python setup.py sdist bdist_wheel twine upload dist/gftools* .github/workflows/test.yml000066400000000000000000000015531376445505300161750ustar00rootroot00000000000000name: Test on: push: branches: [master] pull_request: branches: [master] jobs: build: runs-on: ${{ matrix.platform }} strategy: matrix: python-version: [3.6, 3.7, 3.8, 3.9] platform: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v2 with: submodules: recursive fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install packages run: | pip install . pip install mypy pytest - name: Run Tests run: | pytest ./Lib/gftools/tests/test_usage.py pytest ./Lib/gftools/tests/test_fix.py pytest ./Lib/gftools/tests/test_stat.py mypy ./Lib/gftools/packager.py .gitignore000066400000000000000000000003741376445505300130660ustar00rootroot00000000000000 # Basic *.pyc .DS_Store # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # auto-generated version file Lib/gftools/_version.py .gitmodules000066400000000000000000000002231376445505300132440ustar00rootroot00000000000000[submodule "Lib/gftools/util/GlyphsInfo"] path = Lib/gftools/util/GlyphsInfo url = https://github.com/schriftgestalt/GlyphsInfo branch = master LICENSE000066400000000000000000000261351376445505300121060ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright {yyyy} {name of copyright owner} Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Lib/000077500000000000000000000000001376445505300116005ustar00rootroot00000000000000Lib/gftools/000077500000000000000000000000001376445505300132555ustar00rootroot00000000000000Lib/gftools/__init__.py000066400000000000000000000001741376445505300153700ustar00rootroot00000000000000try: from ._version import version as __version__ # type: ignore except ImportError: __version__ = "0.0.0+unknown" Lib/gftools/axes.proto000066400000000000000000000016111376445505300153010ustar00rootroot00000000000000syntax = "proto2"; // GF Axis Registry Protos // An axis in the GF Axis Registry message AxisProto { // Axis tag optional string tag = 1; // Display name for axis, e.g. "Optical size" for 'opsz' // Like 'Name' in // https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_opsz optional string display_name = 7; // Lower bound for the axis optional float min_value = 2; // The default position to use and to prefer for exemplars optional float default_value = 3; // Upper bound for the axis optional float max_value = 4; // Input values for this axis must aligned to 10^precision optional int32 precision = 5; // Fallback positions along the axis repeated FallbackProto fallback = 6; // Short descriptive paragraph optional string description = 8; // Next = 9 } message FallbackProto { optional string name = 1; optional float value = 2; } Lib/gftools/axes_pb2.py000066400000000000000000000152441376445505300153400ustar00rootroot00000000000000# -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: axes.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor.FileDescriptor( name='axes.proto', package='', syntax='proto2', serialized_options=None, create_key=_descriptor._internal_create_key, serialized_pb=b'\n\naxes.proto\"\xb5\x01\n\tAxisProto\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x07 \x01(\t\x12\x11\n\tmin_value\x18\x02 \x01(\x02\x12\x15\n\rdefault_value\x18\x03 \x01(\x02\x12\x11\n\tmax_value\x18\x04 \x01(\x02\x12\x11\n\tprecision\x18\x05 \x01(\x05\x12 \n\x08\x66\x61llback\x18\x06 \x03(\x0b\x32\x0e.FallbackProto\x12\x13\n\x0b\x64\x65scription\x18\x08 \x01(\t\",\n\rFallbackProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02' ) _AXISPROTO = _descriptor.Descriptor( name='AxisProto', full_name='AxisProto', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='tag', full_name='AxisProto.tag', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='display_name', full_name='AxisProto.display_name', index=1, number=7, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='min_value', full_name='AxisProto.min_value', index=2, number=2, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='default_value', full_name='AxisProto.default_value', index=3, number=3, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='max_value', full_name='AxisProto.max_value', index=4, number=4, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='precision', full_name='AxisProto.precision', index=5, number=5, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='fallback', full_name='AxisProto.fallback', index=6, number=6, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='description', full_name='AxisProto.description', index=7, number=8, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], nested_types=[], enum_types=[ ], serialized_options=None, is_extendable=False, syntax='proto2', extension_ranges=[], oneofs=[ ], serialized_start=15, serialized_end=196, ) _FALLBACKPROTO = _descriptor.Descriptor( name='FallbackProto', full_name='FallbackProto', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='name', full_name='FallbackProto.name', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='value', full_name='FallbackProto.value', index=1, number=2, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], nested_types=[], enum_types=[ ], serialized_options=None, is_extendable=False, syntax='proto2', extension_ranges=[], oneofs=[ ], serialized_start=198, serialized_end=242, ) _AXISPROTO.fields_by_name['fallback'].message_type = _FALLBACKPROTO DESCRIPTOR.message_types_by_name['AxisProto'] = _AXISPROTO DESCRIPTOR.message_types_by_name['FallbackProto'] = _FALLBACKPROTO _sym_db.RegisterFileDescriptor(DESCRIPTOR) AxisProto = _reflection.GeneratedProtocolMessageType('AxisProto', (_message.Message,), { 'DESCRIPTOR' : _AXISPROTO, '__module__' : 'axes_pb2' # @@protoc_insertion_point(class_scope:AxisProto) }) _sym_db.RegisterMessage(AxisProto) FallbackProto = _reflection.GeneratedProtocolMessageType('FallbackProto', (_message.Message,), { 'DESCRIPTOR' : _FALLBACKPROTO, '__module__' : 'axes_pb2' # @@protoc_insertion_point(class_scope:FallbackProto) }) _sym_db.RegisterMessage(FallbackProto) # @@protoc_insertion_point(module_scope) Lib/gftools/axisreg.py000066400000000000000000000015111376445505300152670ustar00rootroot00000000000000from pkg_resources import resource_filename from gftools.axes_pb2 import AxisProto, FallbackProto from google.protobuf import text_format from glob import glob import os __all__ = ["axis_registry"] def AxisRegistry(): """Parse all axes in the Google Fonts axis registry""" results = {} axis_reg_dir = resource_filename("gftools", "axisregistry") proto_files = glob(os.path.join(axis_reg_dir, "*.textproto")) for proto_file in proto_files: axis = AxisProto() with open(proto_file, "rb") as textproto: text_format.Parse(textproto.read(), axis) results[axis.tag] = axis # Remove spaces from names for fallback in results[axis.tag].fallback: fallback.name = fallback.name.replace(" ", "") return results axis_registry = AxisRegistry() Lib/gftools/axisregistry/000077500000000000000000000000001376445505300160125ustar00rootroot00000000000000Lib/gftools/axisregistry/README.md000066400000000000000000000042141376445505300172720ustar00rootroot00000000000000# GF Axis Registry This package contains a collection of metadata source files that collectively form the Google Fonts Axis Registry. The live Axis Registry is here: [fonts.google.com/variablefonts](https://fonts.google.com/variablefonts) ## Axis Metadata Fields * `tag` * Tag for the axis used to specify an axis in `font-variation-settings` and CSS API requests. * `display_name` * Readable name for the axis, generally the expanded form of `tag`. * `min_value` * Lower bound of the axis. Inclusive. * `max_value` * Upper bound of the axis. Inclusive. * `default_value` * Default position of the aixs. * `precision` * Describes the specificity at which an axis position can be specified. For example, `0` means values must be specified as whole numbers while `-1` means values can be as precise as one decimal place. * `fallback` (repeated) * Important positions along the axis. For weight, these are positions like Regular, Medium, and Bold. * `description` * A description of the axis. ## Why does Google Fonts have its own Axis Registry? We support a superset of the [OpenType axis registry](https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg) axis set, and use additional metadata for each axis. Axes present in a font file but not in this registry will not function via our API. No variable font is expected to support all of the axes here. Any font foundry or distributor library that offers variable fonts has a implicit, latent, de-facto axis registry, which can be extracted by scanning the library for axes' tags, labels, and min/def/max values. While in 2016 Microsoft originally offered to include more axes in the OpenType 1.8 specification ([github.com/microsoft/OpenTypeDesignVariationAxisTags](https://github.com/microsoft/OpenTypeDesignVariationAxisTags)), as of August 2020, this effort has stalled. We hope more foundries and distributors will publish documents like this that make their axes explicit, to encourage of adoption of variable fonts throughout the industry, and provide source material for a future update to the OpenType specification's axis registry. Lib/gftools/axisregistry/casual.textproto000066400000000000000000000006651376445505300212630ustar00rootroot00000000000000# CASL based on https://github.com/arrowtype/Recursive#variable-axes tag: "CASL" display_name: "Casual" min_value: 0 max_value: 1 default_value: 0 precision: -2 fallback { name: "Linear" value: 0 } fallback { name: "Casual" value: 1 } description: "Along this axis, letterforms adjust in stroke curvature, contrast, and" " terminals to go from a sturdy, rational 'Linear' style to a friendly," " energetic 'Casual' style." Lib/gftools/axisregistry/cursive.textproto000066400000000000000000000010771376445505300214710ustar00rootroot00000000000000# CRSV based on https://github.com/arrowtype/Recursive#variable-axes tag: "CRSV" display_name: "Cursive" min_value: 0 max_value: 1 default_value: 0.5 precision: -1 fallback { name: "Roman" value: 0 } fallback { name: "Auto" value: 0.5 } fallback { name: "Cursive" value: 1 } description: "Controls the substitution of cursive forms along the Slant axis. 'Off' (0)" " maintains Roman letterforms such as a double-story a and g, 'Auto' (0.5)" " allows for Cursive substitution, and 'On' (1) asserts cursive forms even" " in upright text with a Slant of 0." Lib/gftools/axisregistry/flair.textproto000066400000000000000000000006401376445505300211010ustar00rootroot00000000000000tag: "FLAR" display_name: "Flair" min_value: 0.0 default_value: 0.0 max_value: 100.0 precision: 1 fallback { name: "Normal" value: 0.0 } fallback { name: "Flair" value: 100.0 } description: "As the flair axis grows, the straight sans serif terminals develop" " a swelling, and joints become more idiosyncratic. Originally referring" " to the flaring of the stems, Flair stands for style and panache." Lib/gftools/axisregistry/grade.textproto000066400000000000000000000014421376445505300210670ustar00rootroot00000000000000# GRAD based on https://github.com/TypeNetwork/Opentype-1.8-Axis-Proposal/blob/gh-pages/proposal/Grade/ProposalSummary.md tag: "GRAD" display_name: "Grade" min_value: -1 max_value: 1 default_value: 0 precision: -1 fallback { name: "Full Negative" value: -1 } fallback { name: "Half Negative" value: -0.5 } fallback { name: "Normal" value: 0 } fallback { name: "Half Positive" value: 0.5 } fallback { name: "Full Positive" value: 1 } description: "Finesse the style from lighter to bolder in typographic color, by varying" " stroke thicknesses or other forms, without any changes overall width," " inter-letter spacing, or kerning, so there are no changes to line breaks" " or page layout. Negative grade makes the style lighter, while positive" " grade makes it bolder. " Lib/gftools/axisregistry/italic.textproto000066400000000000000000000007601376445505300212540ustar00rootroot00000000000000# ital based on https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_ital tag: "ital" display_name: "Italic" min_value: 0 max_value: 1 default_value: 0 precision: -1 fallback { name: "Roman" value: 0 } fallback { name: "Italic" value: 1 } description: "Adjust the style from roman to italic. This can be provided as" " a continuous range within a single font file, like most axes, or as a" " toggle between two roman and italic files that form a family as a pair." Lib/gftools/axisregistry/monospace.textproto000066400000000000000000000013221376445505300217660ustar00rootroot00000000000000# FOR TESTING ONLY [for now anyway] # MONO based on https://github.com/arrowtype/Recursive#variable-axes tag: "MONO" display_name: "Monospace" min_value: 0 max_value: 1 default_value: 0 precision: -2 fallback { name: "Proportional" value: 0 } fallback { name: "Monospace" value: 1 } description: "Adjust the style from proportional (natural widths, default) to" " monospace (fixed width). Monospace is when all glyphs have the same" " total character width, and more wide or narrow letter proportions to fill" " the space such as a narrower 'w' or wider 'r.' Proportionally spaced" "fonts have letters drawn with more typical proportions, and each glyph" "takes up a unique amount of space on a line." Lib/gftools/axisregistry/optical_size.textproto000066400000000000000000000030321376445505300224670ustar00rootroot00000000000000# opsz based on https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_opsz # fallbacks based on https://en.wikipedia.org/wiki/Traditional_point-size_names # plus discussion with dcrossland@ tag: "opsz" display_name: "Optical size" min_value: 6 max_value: 144 default_value: 14 precision: -1 fallback { name: "6pt" value: 6 } fallback { name: "7pt" value: 7 } fallback { name: "8pt" value: 8 } fallback { name: "9pt" value: 9 } fallback { name: "10pt" value: 10 } fallback { name: "11pt" value: 11 } fallback { name: "12pt" value: 12 } fallback { name: "14pt" value: 14 } fallback { name: "18pt" value: 18 } fallback { name: "20pt" value: 20 } fallback { name: "24pt" value: 24 } fallback { name: "28pt" value: 28 } fallback { name: "36pt" value: 36 } fallback { name: "48pt" value: 48 } fallback { name: "60pt" value: 60 } fallback { name: "72pt" value: 72 } fallback { name: "96pt" value: 96 } fallback { name: "120pt" value: 120 } fallback { name: "144pt" value: 144 } description: "Adapt the style to specific text sizes, specified in Points. At smaller" " sizes, letters typically become optimized for more legibility, with loose" " spacing/kerning and thicker strokes with less detail. At larger sizes," " letters are typically optimized for headlines with thinner strokes and" " more detailed forms, and more extreme weights and widths. When used in" " CSS, this axis is activated by default, but not all products/platforms" " use it automatically." Lib/gftools/axisregistry/slant.textproto000066400000000000000000000006731376445505300211330ustar00rootroot00000000000000# slnt based on https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt tag: "slnt" display_name: "Slant" min_value: -90 max_value: 90 default_value: 0 precision: 0 fallback { name: "Default" value: 0 } description: "Adjust the style from upright to slanted, also known to typographers" " as an 'oblique' style. Rarely, slant can work in the other direction," " called a 'backslanted' or 'reverse oblique' style." Lib/gftools/axisregistry/softness.textproto000066400000000000000000000005371376445505300216550ustar00rootroot00000000000000# SOFT based on https://github.com/undercasetype/Fraunces#variable-axes tag: "SOFT" display_name: "Softness" min_value: 0 max_value: 100 default_value: 0 precision: -1 fallback { name: "Sharp" value: 0 } fallback { name: "Soft" value: 50 } fallback { name: "SuperSoft" value: 100 } description: "Letterforms become more soft and rounded." Lib/gftools/axisregistry/volume.textproto000066400000000000000000000004551376445505300213170ustar00rootroot00000000000000tag: "VOLM" display_name: "Volume" min_value: 0.0 default_value: 0.0 max_value: 100.0 precision: 1 fallback { name: "Normal" value: 0.0 } fallback { name: "Loud" value: 100.0 } description: "Transforms serifs from glyphic to wedge shapes," " and adds a little more edge to other details." Lib/gftools/axisregistry/weight.textproto000066400000000000000000000015051376445505300212740ustar00rootroot00000000000000# wght based on https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_wght tag: "wght" display_name: "Weight" min_value: 1 max_value: 1000 default_value: 400 precision: 0 fallback { name: "Thin" value: 100 } fallback { name: "Extra Light" value: 200 } fallback { name: "Light" value: 300 } fallback { name: "Regular" value: 400 } fallback { name: "Medium" value: 500 } fallback { name: "Semi Bold" value: 600 } fallback { name: "Bold" value: 700 } fallback { name: "Extra Bold" value: 800 } fallback { name: "Black" value: 900 } description: "Adjust the style from lighter to bolder in typographic color, by varying" " stroke thicknesses or other forms. This typically changes overall width," " and so may be used in conjunction with axes for Width and Grade (if" " present)." Lib/gftools/axisregistry/width.textproto000066400000000000000000000021101376445505300211150ustar00rootroot00000000000000# wdth based on https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_wdth tag: "wdth" display_name: "Width" min_value: 50 max_value: 200 default_value: 100 precision: -1 # Instance values based on https://docs.microsoft.com/en-us/typography/opentype/spec/os2#uswidthclass fallback { name: "Ultra Condensed" value: 50 } fallback { name: "Extra Condensed" value: 62.5 } fallback { name: "Condensed" value: 75 } fallback { name: "Semi Condensed" value: 87.5 } fallback { name: "Normal" value: 100 } fallback { name: "Semi Expanded" value: 112.5 } fallback { name: "Expanded" value: 125 } fallback { name: "Extra Expanded" value: 150 } fallback { name: "Ultra Expanded" value: 200 } description: "Adjust the style from narrower to wider, by varying the proportions of" " counters, stems, and other forms including overall spacinig and kerning." " This typically changes the apparent weight (what typographers call" " 'typographic color') in a subtle way, and so may be used in conjunction" " with axes for Width and Grade (if present)." Lib/gftools/axisregistry/wonkiness.textproto000066400000000000000000000010771376445505300220310ustar00rootroot00000000000000# WONK based on https://github.com/undercasetype/Fraunces#variable-axes tag: "WONK" display_name: "Wonkiness" min_value: 0 max_value: 1 default_value: 0 precision: 0 fallback { name: "Normal" value: 0 } fallback { name: "Wonky" value: 1 } description: "Binary axis to control the subsitution of wonky forms along the" " optical size axis. 'Off' (0) maintains more normalized letterforms," " such as the leaning n/m/h in roman, or the bulbous flags in the" " b/d/h/k/l of the italic." " In static fonts, this is also available as an OpenType Stylistic Set." Lib/gftools/constants.py000066400000000000000000000056061376445505300156520ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # ===================================== # GLOBAL CONSTANTS DEFINITIONS # nameID definitions for the name table: NAMEID_COPYRIGHT_NOTICE = 0 NAMEID_FONT_FAMILY_NAME = 1 NAMEID_FONT_SUBFAMILY_NAME = 2 NAMEID_UNIQUE_FONT_IDENTIFIER = 3 NAMEID_FULL_FONT_NAME = 4 NAMEID_VERSION_STRING = 5 NAMEID_POSTSCRIPT_NAME = 6 NAMEID_TRADEMARK = 7 NAMEID_MANUFACTURER_NAME = 8 NAMEID_DESIGNER = 9 NAMEID_DESCRIPTION = 10 NAMEID_VENDOR_URL = 11 NAMEID_DESIGNER_URL = 12 NAMEID_LICENSE_DESCRIPTION = 13 NAMEID_LICENSE_INFO_URL = 14 # Name ID 15 is RESERVED NAMEID_TYPOGRAPHIC_FAMILY_NAME = 16 NAMEID_TYPOGRAPHIC_SUBFAMILY_NAME = 17 NAMEID_COMPATIBLE_FULL_MACONLY = 18 NAMEID_SAMPLE_TEXT = 19 NAMEID_POSTSCRIPT_CID_NAME = 20 NAMEID_WWS_FAMILY_NAME = 21 NAMEID_WWS_SUBFAMILY_NAME = 22 NAMEID_LIGHT_BACKGROUND_PALETTE = 23 NAMEID_DARK_BACKGROUD_PALETTE = 24 NAMEID_STR = { NAMEID_COPYRIGHT_NOTICE: "COPYRIGHT_NOTICE", NAMEID_FONT_FAMILY_NAME: "FONT_FAMILY_NAME", NAMEID_FONT_SUBFAMILY_NAME: "FONT_SUBFAMILY_NAME", NAMEID_UNIQUE_FONT_IDENTIFIER: "UNIQUE_FONT_IDENTIFIER", NAMEID_FULL_FONT_NAME: "FULL_FONT_NAME", NAMEID_VERSION_STRING: "VERSION_STRING", NAMEID_POSTSCRIPT_NAME: "POSTSCRIPT_NAME", NAMEID_TRADEMARK: "TRADEMARK", NAMEID_MANUFACTURER_NAME: "MANUFACTURER_NAME", NAMEID_DESIGNER: "DESIGNER", NAMEID_DESCRIPTION: "DESCRIPTION", NAMEID_VENDOR_URL: "VENDOR_URL", NAMEID_DESIGNER_URL: "DESIGNER_URL", NAMEID_LICENSE_DESCRIPTION: "LICENSE_DESCRIPTION", NAMEID_LICENSE_INFO_URL: "LICENSE_INFO_URL", NAMEID_TYPOGRAPHIC_FAMILY_NAME: "TYPOGRAPHIC_FAMILY_NAME", NAMEID_TYPOGRAPHIC_SUBFAMILY_NAME: "TYPOGRAPHIC_SUBFAMILY_NAME", NAMEID_COMPATIBLE_FULL_MACONLY: "COMPATIBLE_FULL_MACONLY", NAMEID_SAMPLE_TEXT: "SAMPLE_TEXT", NAMEID_POSTSCRIPT_CID_NAME: "POSTSCRIPT_CID_NAME", NAMEID_WWS_FAMILY_NAME: "WWS_FAMILY_NAME", NAMEID_WWS_SUBFAMILY_NAME: "WWS_SUBFAMILY_NAME", NAMEID_LIGHT_BACKGROUND_PALETTE: "LIGHT_BACKGROUND_PALETTE", NAMEID_DARK_BACKGROUD_PALETTE: "DARK_BACKGROUD_PALETTE" } # Platform IDs: PLATFORM_ID__UNICODE = 0 PLATFORM_ID__MACINTOSH = 1 PLATFORM_ID__ISO = 2 PLATFORM_ID__WINDOWS = 3 PLATFORM_ID__CUSTOM = 4 PLATID_STR = { PLATFORM_ID__UNICODE: "UNICODE", PLATFORM_ID__MACINTOSH: "MACINTOSH", PLATFORM_ID__ISO: "ISO", PLATFORM_ID__WINDOWS: "WINDOWS", PLATFORM_ID__CUSTOM: "CUSTOM" } Lib/gftools/encodings/000077500000000000000000000000001376445505300152265ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/000077500000000000000000000000001376445505300174655ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Cyrillic/000077500000000000000000000000001376445505300212375ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Cyrillic/GF-cyrillic-historical_unique-glyphs.nam000066400000000000000000000032011376445505300310650ustar00rootroot00000000000000# Created by Alexei Vanyashin 2016-27-06 #$ include GF-cyrillic-plus_unique-glyphs.nam 0x0460 Ѡ CYRILLIC CAPITAL LETTER OMEGA 0x0461 ѡ CYRILLIC SMALL LETTER OMEGA 0x0464 Ѥ CYRILLIC CAPITAL LETTER IOTIFIED E 0x0465 ѥ CYRILLIC SMALL LETTER IOTIFIED E 0x0466 Ѧ CYRILLIC CAPITAL LETTER LITTLE YUS 0x0467 ѧ CYRILLIC SMALL LETTER LITTLE YUS 0x0468 Ѩ CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS 0x0469 ѩ CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS 0x046C Ѭ CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS 0x046D ѭ CYRILLIC SMALL LETTER IOTIFIED BIG YUS 0x046E Ѯ CYRILLIC CAPITAL LETTER KSI 0x046F ѯ CYRILLIC SMALL LETTER KSI 0x0470 Ѱ CYRILLIC CAPITAL LETTER PSI 0x0471 ѱ CYRILLIC SMALL LETTER PSI 0x0476 Ѷ CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT 0x0477 ѷ CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT 0x0478 Ѹ CYRILLIC CAPITAL LETTER UK 0x0479 ѹ CYRILLIC SMALL LETTER UK 0x047A Ѻ CYRILLIC CAPITAL LETTER ROUND OMEGA 0x047B ѻ CYRILLIC SMALL LETTER ROUND OMEGA 0x047C Ѽ CYRILLIC CAPITAL LETTER OMEGA WITH TITLO 0x047D ѽ CYRILLIC SMALL LETTER OMEGA WITH TITLO 0x047E Ѿ CYRILLIC CAPITAL LETTER OT 0x047F ѿ CYRILLIC SMALL LETTER OT 0x0480 Ҁ CYRILLIC CAPITAL LETTER KOPPA 0x0481 ҁ CYRILLIC SMALL LETTER KOPPA 0x0482 ҂ CYRILLIC THOUSANDS SIGN 0x0483 ҃ COMBINING CYRILLIC TITLO 0x0484 ҄ COMBINING CYRILLIC PALATALIZATION 0x0485 ҅ COMBINING CYRILLIC DASIA PNEUMATA 0x0486 ҆ COMBINING CYRILLIC PSILI PNEUMATA 0x0487 ҇ COMBINING CYRILLIC POKRYTIE 0x0488 ҈ COMBINING CYRILLIC HUNDRED THOUSANDS SIGN 0x0489 ҉ COMBINING CYRILLIC MILLIONS SIGN 0xA64C Ꙍ CYRILLIC CAPITAL LETTER BROAD OMEGA 0xA64D ꙍ CYRILLIC SMALL LETTER BROAD OMEGA Lib/gftools/encodings/GF Glyph Sets/Cyrillic/GF-cyrillic-plus-locl_unique-glyphs.nam000066400000000000000000000021331376445505300306410ustar00rootroot00000000000000# Created by Alexei Vanyashin 2016-05-07 #$ include GF-cyrillic-plus_unique-glyphs.nam Iigrave-cy.loclBGR De-cy.loclBGR Ii-cy.loclBGR Iishort-cy.loclBGR El-cy.loclBGR Ef-cy.loclBGR ve-cy.loclBGR ge-cy.loclBGR de-cy.loclBGR zhe-cy.loclBGR ze-cy.loclBGR ii-cy.loclBGR iishort-cy.loclBGR ka-cy.loclBGR el-cy.loclBGR en-cy.loclBGR pe-cy.loclBGR te-cy.loclBGR tse-cy.loclBGR che-cy.loclBGR sha-cy.loclBGR shcha-cy.loclBGR hardsign-cy.loclBGR softsign-cy.loclBGR iu-cy.loclBGR iigrave-cy.loclBGR Ghestroke-cy.loclBSH ghestroke-cy.loclBSH Zedescender-cy.loclBSH zedescender-cy.loclBSH Esdescender-cy.loclBSH esdescender-cy.loclBSH Esdescender-cy.loclCHU esdescender-cy.loclCHU gje-cy.loclMKD be-cy.loclSRB ge-cy.loclSRB de-cy.loclSRB pe-cy.loclSRB te-cy.loclSRB Lib/gftools/encodings/GF Glyph Sets/Cyrillic/GF-cyrillic-plus_unique-glyphs.nam000066400000000000000000000235401376445505300277170ustar00rootroot00000000000000# Created by Alexei Vanyashin 2016-27-06 #$ include ../GF-latin-core_unique-glyphs.nam 0x02BC ʼ MODIFIER LETTER APOSTROPHE 0x0300 ̀ COMBINING GRAVE ACCENT 0x0301 ́ COMBINING ACUTE ACCENT 0x0304 ̄ COMBINING MACRON 0x0308 ̈ COMBINING DIAERESIS 0x030B ̋ COMBINING DOUBLE ACUTE ACCENT 0x0400 Ѐ CYRILLIC CAPITAL LETTER IE WITH GRAVE 0x0401 Ё CYRILLIC CAPITAL LETTER IO 0x0402 Ђ CYRILLIC CAPITAL LETTER DJE 0x0403 Ѓ CYRILLIC CAPITAL LETTER GJE 0x0404 Є CYRILLIC CAPITAL LETTER UKRAINIAN IE 0x0405 Ѕ CYRILLIC CAPITAL LETTER DZE 0x0406 І CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 0x0407 Ї CYRILLIC CAPITAL LETTER YI 0x0408 Ј CYRILLIC CAPITAL LETTER JE 0x0409 Љ CYRILLIC CAPITAL LETTER LJE 0x040A Њ CYRILLIC CAPITAL LETTER NJE 0x040B Ћ CYRILLIC CAPITAL LETTER TSHE 0x040C Ќ CYRILLIC CAPITAL LETTER KJE 0x040D Ѝ CYRILLIC CAPITAL LETTER I WITH GRAVE 0x040E Ў CYRILLIC CAPITAL LETTER SHORT U 0x040F Џ CYRILLIC CAPITAL LETTER DZHE 0x0410 А CYRILLIC CAPITAL LETTER A 0x0411 Б CYRILLIC CAPITAL LETTER BE 0x0412 В CYRILLIC CAPITAL LETTER VE 0x0413 Г CYRILLIC CAPITAL LETTER GHE 0x0414 Д CYRILLIC CAPITAL LETTER DE 0x0415 Е CYRILLIC CAPITAL LETTER IE 0x0416 Ж CYRILLIC CAPITAL LETTER ZHE 0x0417 З CYRILLIC CAPITAL LETTER ZE 0x0418 И CYRILLIC CAPITAL LETTER I 0x0419 Й CYRILLIC CAPITAL LETTER SHORT I 0x041A К CYRILLIC CAPITAL LETTER KA 0x041B Л CYRILLIC CAPITAL LETTER EL 0x041C М CYRILLIC CAPITAL LETTER EM 0x041D Н CYRILLIC CAPITAL LETTER EN 0x041E О CYRILLIC CAPITAL LETTER O 0x041F П CYRILLIC CAPITAL LETTER PE 0x0420 Р CYRILLIC CAPITAL LETTER ER 0x0421 С CYRILLIC CAPITAL LETTER ES 0x0422 Т CYRILLIC CAPITAL LETTER TE 0x0423 У CYRILLIC CAPITAL LETTER U 0x0424 Ф CYRILLIC CAPITAL LETTER EF 0x0425 Х CYRILLIC CAPITAL LETTER HA 0x0426 Ц CYRILLIC CAPITAL LETTER TSE 0x0427 Ч CYRILLIC CAPITAL LETTER CHE 0x0428 Ш CYRILLIC CAPITAL LETTER SHA 0x0429 Щ CYRILLIC CAPITAL LETTER SHCHA 0x042A Ъ CYRILLIC CAPITAL LETTER HARD SIGN 0x042B Ы CYRILLIC CAPITAL LETTER YERU 0x042C Ь CYRILLIC CAPITAL LETTER SOFT SIGN 0x042D Э CYRILLIC CAPITAL LETTER E 0x042E Ю CYRILLIC CAPITAL LETTER YU 0x042F Я CYRILLIC CAPITAL LETTER YA 0x0430 а CYRILLIC SMALL LETTER A 0x0431 б CYRILLIC SMALL LETTER BE 0x0432 в CYRILLIC SMALL LETTER VE 0x0433 г CYRILLIC SMALL LETTER GHE 0x0434 д CYRILLIC SMALL LETTER DE 0x0435 е CYRILLIC SMALL LETTER IE 0x0436 ж CYRILLIC SMALL LETTER ZHE 0x0437 з CYRILLIC SMALL LETTER ZE 0x0438 и CYRILLIC SMALL LETTER I 0x0439 й CYRILLIC SMALL LETTER SHORT I 0x043A к CYRILLIC SMALL LETTER KA 0x043B л CYRILLIC SMALL LETTER EL 0x043C м CYRILLIC SMALL LETTER EM 0x043D н CYRILLIC SMALL LETTER EN 0x043E о CYRILLIC SMALL LETTER O 0x043F п CYRILLIC SMALL LETTER PE 0x0440 р CYRILLIC SMALL LETTER ER 0x0441 с CYRILLIC SMALL LETTER ES 0x0442 т CYRILLIC SMALL LETTER TE 0x0443 у CYRILLIC SMALL LETTER U 0x0444 ф CYRILLIC SMALL LETTER EF 0x0445 х CYRILLIC SMALL LETTER HA 0x0446 ц CYRILLIC SMALL LETTER TSE 0x0447 ч CYRILLIC SMALL LETTER CHE 0x0448 ш CYRILLIC SMALL LETTER SHA 0x0449 щ CYRILLIC SMALL LETTER SHCHA 0x044A ъ CYRILLIC SMALL LETTER HARD SIGN 0x044B ы CYRILLIC SMALL LETTER YERU 0x044C ь CYRILLIC SMALL LETTER SOFT SIGN 0x044D э CYRILLIC SMALL LETTER E 0x044E ю CYRILLIC SMALL LETTER YU 0x044F я CYRILLIC SMALL LETTER YA 0x0450 ѐ CYRILLIC SMALL LETTER IE WITH GRAVE 0x0451 ё CYRILLIC SMALL LETTER IO 0x0452 ђ CYRILLIC SMALL LETTER DJE 0x0453 ѓ CYRILLIC SMALL LETTER GJE 0x0454 є CYRILLIC SMALL LETTER UKRAINIAN IE 0x0455 ѕ CYRILLIC SMALL LETTER DZE 0x0456 і CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 0x0457 ї CYRILLIC SMALL LETTER YI 0x0458 ј CYRILLIC SMALL LETTER JE 0x0459 љ CYRILLIC SMALL LETTER LJE 0x045A њ CYRILLIC SMALL LETTER NJE 0x045B ћ CYRILLIC SMALL LETTER TSHE 0x045C ќ CYRILLIC SMALL LETTER KJE 0x045D ѝ CYRILLIC SMALL LETTER I WITH GRAVE 0x045E ў CYRILLIC SMALL LETTER SHORT U 0x045F џ CYRILLIC SMALL LETTER DZHE 0x0462 Ѣ CYRILLIC CAPITAL LETTER YAT 0x0463 ѣ CYRILLIC SMALL LETTER YAT 0x046A Ѫ CYRILLIC CAPITAL LETTER BIG YUS 0x046B ѫ CYRILLIC SMALL LETTER BIG YUS 0x0472 Ѳ CYRILLIC CAPITAL LETTER FITA 0x0473 ѳ CYRILLIC SMALL LETTER FITA 0x0474 Ѵ CYRILLIC CAPITAL LETTER IZHITSA 0x0475 ѵ CYRILLIC SMALL LETTER IZHITSA 0x0490 Ґ CYRILLIC CAPITAL LETTER GHE WITH UPTURN 0x0491 ґ CYRILLIC SMALL LETTER GHE WITH UPTURN 0x0492 Ғ CYRILLIC CAPITAL LETTER GHE WITH STROKE 0x0493 ғ CYRILLIC SMALL LETTER GHE WITH STROKE 0x0494 Ҕ CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK 0x0495 ҕ CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK 0x0496 Җ CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER 0x0497 җ CYRILLIC SMALL LETTER ZHE WITH DESCENDER 0x0498 Ҙ CYRILLIC CAPITAL LETTER ZE WITH DESCENDER 0x0499 ҙ CYRILLIC SMALL LETTER ZE WITH DESCENDER 0x049A Қ CYRILLIC CAPITAL LETTER KA WITH DESCENDER 0x049B қ CYRILLIC SMALL LETTER KA WITH DESCENDER 0x049C Ҝ CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE 0x049D ҝ CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE 0x04A0 Ҡ CYRILLIC CAPITAL LETTER BASHKIR KA 0x04A1 ҡ CYRILLIC SMALL LETTER BASHKIR KA 0x04A2 Ң CYRILLIC CAPITAL LETTER EN WITH DESCENDER 0x04A3 ң CYRILLIC SMALL LETTER EN WITH DESCENDER 0x04A4 Ҥ CYRILLIC CAPITAL LIGATURE EN GHE 0x04A5 ҥ CYRILLIC SMALL LIGATURE EN GHE 0x04AA Ҫ CYRILLIC CAPITAL LETTER ES WITH DESCENDER 0x04AB ҫ CYRILLIC SMALL LETTER ES WITH DESCENDER 0x04AE Ү CYRILLIC CAPITAL LETTER STRAIGHT U 0x04AF ү CYRILLIC SMALL LETTER STRAIGHT U 0x04B0 Ұ CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE 0x04B1 ұ CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE 0x04B2 Ҳ CYRILLIC CAPITAL LETTER HA WITH DESCENDER 0x04B3 ҳ CYRILLIC SMALL LETTER HA WITH DESCENDER 0x04B6 Ҷ CYRILLIC CAPITAL LETTER CHE WITH DESCENDER 0x04B7 ҷ CYRILLIC SMALL LETTER CHE WITH DESCENDER 0x04B8 Ҹ CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE 0x04B9 ҹ CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE 0x04BA Һ CYRILLIC CAPITAL LETTER SHHA 0x04BB һ CYRILLIC SMALL LETTER SHHA 0x04C0 Ӏ CYRILLIC LETTER PALOCHKA 0x04C1 Ӂ CYRILLIC CAPITAL LETTER ZHE WITH BREVE 0x04C2 ӂ CYRILLIC SMALL LETTER ZHE WITH BREVE 0x04CB Ӌ CYRILLIC CAPITAL LETTER KHAKASSIAN CHE 0x04CC ӌ CYRILLIC SMALL LETTER KHAKASSIAN CHE 0x04CF ӏ CYRILLIC SMALL LETTER PALOCHKA 0x04D0 Ӑ CYRILLIC CAPITAL LETTER A WITH BREVE 0x04D1 ӑ CYRILLIC SMALL LETTER A WITH BREVE 0x04D2 Ӓ CYRILLIC CAPITAL LETTER A WITH DIAERESIS 0x04D3 ӓ CYRILLIC SMALL LETTER A WITH DIAERESIS 0x04D4 Ӕ CYRILLIC CAPITAL LIGATURE A IE 0x04D5 ӕ CYRILLIC SMALL LIGATURE A IE 0x04D6 Ӗ CYRILLIC CAPITAL LETTER IE WITH BREVE 0x04D7 ӗ CYRILLIC SMALL LETTER IE WITH BREVE 0x04D8 Ә CYRILLIC CAPITAL LETTER SCHWA 0x04D9 ә CYRILLIC SMALL LETTER SCHWA 0x04DC Ӝ CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS 0x04DD ӝ CYRILLIC SMALL LETTER ZHE WITH DIAERESIS 0x04DE Ӟ CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS 0x04DF ӟ CYRILLIC SMALL LETTER ZE WITH DIAERESIS 0x04E2 Ӣ CYRILLIC CAPITAL LETTER I WITH MACRON 0x04E3 ӣ CYRILLIC SMALL LETTER I WITH MACRON 0x04E4 Ӥ CYRILLIC CAPITAL LETTER I WITH DIAERESIS 0x04E5 ӥ CYRILLIC SMALL LETTER I WITH DIAERESIS 0x04E6 Ӧ CYRILLIC CAPITAL LETTER O WITH DIAERESIS 0x04E7 ӧ CYRILLIC SMALL LETTER O WITH DIAERESIS 0x04E8 Ө CYRILLIC CAPITAL LETTER BARRED O 0x04E9 ө CYRILLIC SMALL LETTER BARRED O 0x04EE Ӯ CYRILLIC CAPITAL LETTER U WITH MACRON 0x04EF ӯ CYRILLIC SMALL LETTER U WITH MACRON 0x04F0 Ӱ CYRILLIC CAPITAL LETTER U WITH DIAERESIS 0x04F1 ӱ CYRILLIC SMALL LETTER U WITH DIAERESIS 0x04F2 Ӳ CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE 0x04F3 ӳ CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE 0x04F4 Ӵ CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS 0x04F5 ӵ CYRILLIC SMALL LETTER CHE WITH DIAERESIS 0x04F6 Ӷ CYRILLIC CAPITAL LETTER GHE WITH DESCENDER 0x04F7 ӷ CYRILLIC SMALL LETTER GHE WITH DESCENDER 0x04F8 Ӹ CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS 0x04F9 ӹ CYRILLIC SMALL LETTER YERU WITH DIAERESIS 0x051A Ԛ CYRILLIC CAPITAL LETTER QA 0x051B ԛ CYRILLIC SMALL LETTER QA 0x051C Ԝ CYRILLIC CAPITAL LETTER WE 0x051D ԝ CYRILLIC SMALL LETTER WE 0x20AE ₮ TUGRIK SIGN 0x20B4 ₴ HRYVNIA SIGN 0x20B8 ₸ TENGE SIGN 0x2116 № NUMERO SIGN brevecomb-cy a-cy.sc be-cy.sc ve-cy.sc ge-cy.sc de-cy.sc ie-cy.sc zhe-cy.sc ze-cy.sc ii-cy.sc iishort-cy.sc ka-cy.sc el-cy.sc em-cy.sc en-cy.sc o-cy.sc pe-cy.sc er-cy.sc es-cy.sc te-cy.sc u-cy.sc ef-cy.sc ha-cy.sc tse-cy.sc che-cy.sc sha-cy.sc shcha-cy.sc hardsign-cy.sc yeru-cy.sc softsign-cy.sc ereversed-cy.sc iu-cy.sc ia-cy.sc iegrave-cy.sc io-cy.sc dje-cy.sc gje-cy.sc e-cy.sc dze-cy.sc i-cy.sc yi-cy.sc je-cy.sc lje-cy.sc nje-cy.sc tshe-cy.sc kje-cy.sc iigrave-cy.sc ushort-cy.sc dzhe-cy.sc yat-cy.sc yusbig-cy.sc fita-cy.sc izhitsa-cy.sc gheupturn-cy.sc ghestroke-cy.sc ghemiddlehook-cy.sc zhedescender-cy.sc zedescender-cy.sc kadescender-cy.sc kaverticalstroke-cy.sc kabashkir-cy.sc endescender-cy.sc esdescender-cy.sc ustrait-cy.sc ustraitstroke-cy.sc hadescender-cy.sc chedescender-cy.sc cheverticalstroke-cy.sc shha-cy.sc zhebreve-cy.sc chekhakassian-cy.sc palochka-cy.sc abreve-cy.sc adieresis-cy.sc iebreve-cy.sc schwa-cy.sc zhedieresis-cy.sc zedieresis-cy.sc imacron-cy.sc idieresis-cy.sc odieresis-cy.sc obarred-cy.sc umacron-cy.sc udieresis-cy.sc uhungarumlaut-cy.sc chedieresis-cy.sc gedescender-cy.sc yerudieresis-cy.sc qa-cy.sc we-cy.sc pedescender-cy.sc Lib/gftools/encodings/GF Glyph Sets/Cyrillic/GF-cyrillic-pro_unique-glyphs.nam000066400000000000000000000067041376445505300275370ustar00rootroot00000000000000# Created by Alexei Vanyashin 2016-27-06 #$ include GF-cyrillic-plus_unique-glyphs.nam 0x048A Ҋ CYRILLIC CAPITAL LETTER SHORT I WITH TAIL 0x048B ҋ CYRILLIC SMALL LETTER SHORT I WITH TAIL 0x048C Ҍ CYRILLIC CAPITAL LETTER SEMISOFT SIGN 0x048D ҍ CYRILLIC SMALL LETTER SEMISOFT SIGN 0x048E Ҏ CYRILLIC CAPITAL LETTER ER WITH TICK 0x048F ҏ CYRILLIC SMALL LETTER ER WITH TICK 0x0494 Ҕ CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK 0x0495 ҕ CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK 0x049E Ҟ CYRILLIC CAPITAL LETTER KA WITH STROKE 0x049F ҟ CYRILLIC SMALL LETTER KA WITH STROKE 0x04A8 Ҩ CYRILLIC CAPITAL LETTER ABKHASIAN HA 0x04A9 ҩ CYRILLIC SMALL LETTER ABKHASIAN HA 0x04AC Ҭ CYRILLIC CAPITAL LETTER TE WITH DESCENDER 0x04AD ҭ CYRILLIC SMALL LETTER TE WITH DESCENDER 0x04B4 Ҵ CYRILLIC CAPITAL LIGATURE TE TSE 0x04B5 ҵ CYRILLIC SMALL LIGATURE TE TSE 0x04BC Ҽ CYRILLIC CAPITAL LETTER ABKHASIAN CHE 0x04BD ҽ CYRILLIC SMALL LETTER ABKHASIAN CHE 0x04BE Ҿ CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER 0x04BF ҿ CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER 0x04C3 Ӄ CYRILLIC CAPITAL LETTER KA WITH HOOK 0x04C4 ӄ CYRILLIC SMALL LETTER KA WITH HOOK 0x04C5 Ӆ CYRILLIC CAPITAL LETTER EL WITH TAIL 0x04C6 ӆ CYRILLIC SMALL LETTER EL WITH TAIL 0x04C7 Ӈ CYRILLIC CAPITAL LETTER EN WITH HOOK 0x04C8 ӈ CYRILLIC SMALL LETTER EN WITH HOOK 0x04C9 Ӊ CYRILLIC CAPITAL LETTER EN WITH TAIL 0x04CA ӊ CYRILLIC SMALL LETTER EN WITH TAIL 0x04CD Ӎ CYRILLIC CAPITAL LETTER EM WITH TAIL 0x04CE ӎ CYRILLIC SMALL LETTER EM WITH TAIL 0x04DA Ӛ CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS 0x04DB ӛ CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS 0x04E0 Ӡ CYRILLIC CAPITAL LETTER ABKHASIAN DZE 0x04E1 ӡ CYRILLIC SMALL LETTER ABKHASIAN DZE 0x04EA Ӫ CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS 0x04EB ӫ CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS 0x04EC Ӭ CYRILLIC CAPITAL LETTER E WITH DIAERESIS 0x04ED ӭ CYRILLIC SMALL LETTER E WITH DIAERESIS 0x04FA Ӻ CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK 0x04FB ӻ CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK 0x04FC Ӽ CYRILLIC CAPITAL LETTER HA WITH HOOK 0x04FD ӽ CYRILLIC SMALL LETTER HA WITH HOOK 0x04FE Ӿ CYRILLIC CAPITAL LETTER HA WITH STROKE 0x04FF ӿ CYRILLIC SMALL LETTER HA WITH STROKE 0x0510 Ԑ CYRILLIC CAPITAL LETTER REVERSED ZE 0x0511 ԑ CYRILLIC SMALL LETTER REVERSED ZE 0x0512 Ԓ CYRILLIC CAPITAL LETTER EL WITH HOOK 0x0513 ԓ CYRILLIC SMALL LETTER EL WITH HOOK 0x0524 Ԥ CYRILLIC CAPITAL LETTER PE WITH DESCENDER 0x0525 ԥ CYRILLIC SMALL LETTER PE WITH DESCENDER 0x0526 Ԧ CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER 0x0527 ԧ CYRILLIC SMALL LETTER SHHA WITH DESCENDER 0x0528 Ԩ CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK 0x0529 ԩ CYRILLIC SMALL LETTER EN WITH LEFT HOOK 0x052E Ԯ CYRILLIC CAPITAL LETTER EL WITH DESCENDER 0x052F ԯ CYRILLIC SMALL LETTER EL WITH DESCENDER iishorttail-cy.sc semisoftsign-cy.sc ertick-cy.sc kastroke-cy.sc pemiddlehook-cy.sc haabkhasian-cy.sc tedescender-cy.sc cheabkhasian-cy.sc chedescenderabkhasian-cy.sc kahook-cy.sc eltail-cy.sc enhook-cy.sc entail-cy.sc emtail-cy.sc schwadieresis-cy.sc dzeabkhasian-cy.sc obarreddieresis-cy.sc edieresis-cy.sc gestrokehook-cy.sc hahook-cy.sc hastroke-cy.sc reversedze-cy.sc elhook-cy.sc shhadescender-cy.sc enlefthook-cy.sc eldescender-cy.sc Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/000077500000000000000000000000001376445505300236435ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/nice names/000077500000000000000000000000001376445505300256455ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/nice names/historical_unique-glyphs.txt000066400000000000000000000007311376445505300334420ustar00rootroot00000000000000Omega-cy omega-cy Eiotified-cy eiotified-cy Yuslittle-cy yuslittle-cy Yuslittleiotified-cy yuslittleiotified-cy Yusbigiotified-cy yusbigiotified-cy Ksi-cy ksi-cy Psi-cy psi-cy Izhitsadblgrave-cy izhitsadblgrave-cy Uk-cy uk-cy uni047A uni047B uni047C uni047D uni047E uni047F Koppa-cy koppa-cy thousand-cy titlocomb-cy palatalizationcomb-cy dasiapneumatacomb-cy psilipneumatacomb-cy pokrytiecomb-cy hundredthousandssigncomb-cy millionssigncomb-cy OmegaBroad-cy omegaBroad-cy Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/nice names/plus-locl_unique-glyphs.txt000066400000000000000000000012341376445505300332120ustar00rootroot00000000000000Iigrave-cy.loclBGR De-cy.loclBGR Ii-cy.loclBGR Iishort-cy.loclBGR El-cy.loclBGR Ef-cy.loclBGR ve-cy.loclBGR ge-cy.loclBGR de-cy.loclBGR zhe-cy.loclBGR ze-cy.loclBGR ii-cy.loclBGR iishort-cy.loclBGR ka-cy.loclBGR el-cy.loclBGR en-cy.loclBGR pe-cy.loclBGR te-cy.loclBGR tse-cy.loclBGR che-cy.loclBGR sha-cy.loclBGR shcha-cy.loclBGR hardsign-cy.loclBGR softsign-cy.loclBGR iu-cy.loclBGR iigrave-cy.loclBGR Ghestroke-cy.loclBSH ghestroke-cy.loclBSH Zedescender-cy.loclBSH zedescender-cy.loclBSH Esdescender-cy.loclBSH esdescender-cy.loclBSH Esdescender-cy.loclCHU esdescender-cy.loclCHU gje-cy.loclMKD be-cy.loclSRB ge-cy.loclSRB de-cy.loclSRB pe-cy.loclSRB te-cy.loclSRB plus-locl_unique-glyphs_italic.txt000066400000000000000000000007451376445505300344660ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/nice namesDe-cy.loclBGR Ii-cy.loclBGR Iishort-cy.loclBGR Iigrave-cy.loclBGR El-cy.loclBGR Ef-cy.loclBGR ve-cy.loclBGR ge-cy.loclBGR de-cy.loclBGR zhe-cy.loclBGR ze-cy.loclBGR ka-cy.loclBGR el-cy.loclBGR en-cy.loclBGR iu-cy.loclBGR be-cy.loclSRB ge-cy.loclSRB de-cy.loclSRB pe-cy.loclSRB te-cy.loclSRB gje-cy.loclMKD Ghestroke-cy.loclBSH ghestroke-cy.loclBSH Zedescender-cy.loclBSH zedescender-cy.loclBSH Esdescender-cy.loclBSH esdescender-cy.loclBSH Esdescender-cy.loclCHU esdescender-cy.loclCHUplus-locl_unique-glyphs_roman.txt000066400000000000000000000011241376445505300343250ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/nice namesDe-cy.loclBGR Ii-cy.loclBGR Iishort-cy.loclBGR Iigrave-cy.loclBGR El-cy.loclBGR Ef-cy.loclBGR ve-cy.loclBGR ge-cy.loclBGR de-cy.loclBGR zhe-cy.loclBGR ze-cy.loclBGR ii-cy.loclBGR iishort-cy.loclBGR iigrave-cy.loclBGR ka-cy.loclBGR el-cy.loclBGR en-cy.loclBGR pe-cy.loclBGR te-cy.loclBGR tse-cy.loclBGR che-cy.loclBGR sha-cy.loclBGR shcha-cy.loclBGR softsign-cy.loclBGR hardsign-cy.loclBGR iu-cy.loclBGR be-cy.loclSRB Ghestroke-cy.loclBSH ghestroke-cy.loclBSH Zedescender-cy.loclBSH zedescender-cy.loclBSH Esdescender-cy.loclBSH esdescender-cy.loclBSH Esdescender-cy.loclCHU esdescender-cy.loclCHULib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/nice names/plus_unique-glyphs.txt000066400000000000000000000035531376445505300322710ustar00rootroot00000000000000apostrophemod gravecomb acutecomb macroncomb dieresiscomb hungarumlautcomb Iegrave-cy Io-cy Dje-cy Gje-cy E-cy Dze-cy I-cy Yi-cy Je-cy Lje-cy Nje-cy Tshe-cy Kje-cy Iigrave-cy Ushort-cy Dzhe-cy A-cy Be-cy Ve-cy Ge-cy De-cy Ie-cy Zhe-cy Ze-cy Ii-cy Iishort-cy Ka-cy El-cy Em-cy En-cy O-cy Pe-cy Er-cy Es-cy Te-cy U-cy Ef-cy Ha-cy Tse-cy Che-cy Sha-cy Shcha-cy Hardsign-cy Yeru-cy Softsign-cy Ereversed-cy Iu-cy Ia-cy a-cy be-cy ve-cy ge-cy de-cy ie-cy zhe-cy ze-cy ii-cy iishort-cy ka-cy el-cy em-cy en-cy o-cy pe-cy er-cy es-cy te-cy u-cy ef-cy ha-cy tse-cy che-cy sha-cy shcha-cy hardsign-cy yeru-cy softsign-cy ereversed-cy iu-cy ia-cy iegrave-cy io-cy dje-cy gje-cy e-cy dze-cy i-cy yi-cy je-cy lje-cy nje-cy tshe-cy kje-cy iigrave-cy ushort-cy dzhe-cy Yat-cy yat-cy Yusbig-cy yusbig-cy Fita-cy fita-cy Izhitsa-cy izhitsa-cy Gheupturn-cy gheupturn-cy Ghestroke-cy ghestroke-cy Ghemiddlehook-cy ghemiddlehook-cy Zhedescender-cy zhedescender-cy Zedescender-cy zedescender-cy Kadescender-cy kadescender-cy Kaverticalstroke-cy kaverticalstroke-cy Kabashkir-cy kabashkir-cy Endescender-cy endescender-cy Enghe-cy enghe-cy Esdescender-cy esdescender-cy Ustrait-cy ustrait-cy Ustraitstroke-cy ustraitstroke-cy Hadescender-cy hadescender-cy Chedescender-cy chedescender-cy Cheverticalstroke-cy cheverticalstroke-cy Shha-cy shha-cy Palochka-cy Zhebreve-cy zhebreve-cy Chekhakassian-cy chekhakassian-cy palochka-cy Abreve-cy abreve-cy Adieresis-cy adieresis-cy Aie-cy aie-cy Iebreve-cy iebreve-cy Schwa-cy schwa-cy Zhedieresis-cy zhedieresis-cy Zedieresis-cy zedieresis-cy Imacron-cy imacron-cy Idieresis-cy idieresis-cy Odieresis-cy odieresis-cy Obarred-cy obarred-cy Umacron-cy umacron-cy Udieresis-cy udieresis-cy Uhungarumlaut-cy uhungarumlaut-cy Chedieresis-cy chedieresis-cy Gedescender-cy gedescender-cy Yerudieresis-cy yerudieresis-cy Qa-cy qa-cy We-cy we-cy tugrik hryvnia tenge numero brevecomb-cyLib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/nice names/plus_unique-glyphs_core.txt000066400000000000000000000013101376445505300332660ustar00rootroot00000000000000Iegrave-cy Io-cy Dje-cy Gje-cy E-cy Dze-cy I-cy Yi-cy Je-cy Lje-cy Nje-cy Tshe-cy Kje-cy Iigrave-cy Ushort-cy Dzhe-cy A-cy Be-cy Ve-cy Ge-cy De-cy Ie-cy Zhe-cy Ze-cy Ii-cy Iishort-cy Ka-cy El-cy Em-cy En-cy O-cy Pe-cy Er-cy Es-cy Te-cy U-cy Ef-cy Ha-cy Tse-cy Che-cy Sha-cy Shcha-cy Hardsign-cy Yeru-cy Softsign-cy Ereversed-cy Iu-cy Ia-cy a-cy be-cy ve-cy ge-cy de-cy ie-cy zhe-cy ze-cy ii-cy iishort-cy ka-cy el-cy em-cy en-cy o-cy pe-cy er-cy es-cy te-cy u-cy ef-cy ha-cy tse-cy che-cy sha-cy shcha-cy hardsign-cy yeru-cy softsign-cy ereversed-cy iu-cy ia-cy iegrave-cy io-cy dje-cy gje-cy e-cy dze-cy i-cy yi-cy je-cy lje-cy nje-cy tshe-cy kje-cy iigrave-cy ushort-cy dzhe-cy Gheupturn-cy gheupturn-cy numeroplus_unique-glyphs_smallcaps.txt000066400000000000000000000022101376445505300342360ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/nice namesa-cy.sc be-cy.sc ve-cy.sc ge-cy.sc de-cy.sc ie-cy.sc zhe-cy.sc ze-cy.sc ii-cy.sc iishort-cy.sc ka-cy.sc el-cy.sc em-cy.sc en-cy.sc o-cy.sc pe-cy.sc er-cy.sc es-cy.sc te-cy.sc u-cy.sc ef-cy.sc ha-cy.sc tse-cy.sc che-cy.sc sha-cy.sc shcha-cy.sc hardsign-cy.sc yeru-cy.sc softsign-cy.sc ereversed-cy.sc iu-cy.sc ia-cy.sc iegrave-cy.sc io-cy.sc dje-cy.sc gje-cy.sc e-cy.sc dze-cy.sc i-cy.sc yi-cy.sc je-cy.sc lje-cy.sc nje-cy.sc tshe-cy.sc kje-cy.sc iigrave-cy.sc ushort-cy.sc dzhe-cy.sc yat-cy.sc yusbig-cy.sc fita-cy.sc izhitsa-cy.sc gheupturn-cy.sc ghestroke-cy.sc ghemiddlehook-cy.sc zhedescender-cy.sc zedescender-cy.sc kadescender-cy.sc kaverticalstroke-cy.sc kabashkir-cy.sc endescender-cy.sc esdescender-cy.sc ustrait-cy.sc ustraitstroke-cy.sc chedescender-cy.sc cheverticalstroke-cy.sc shha-cy.sc zhebreve-cy.sc chekhakassian-cy.sc palochka-cy.sc abreve-cy.sc adieresis-cy.sc iebreve-cy.sc schwa-cy.sc zhedieresis-cy.sc zedieresis-cy.sc imacron-cy.sc idieresis-cy.sc odieresis-cy.sc obarred-cy.sc umacron-cy.sc udieresis-cy.sc uhungarumlaut-cy.sc chedieresis-cy.sc gedescender-cy.sc yerudieresis-cy.sc qa-cy.sc we-cy.sc pedescender-cy.sc hadescender-cy.scLib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/nice names/pro_unique-glyphs.txt000066400000000000000000000023011376445505300320740ustar00rootroot00000000000000Iishorttail-cy iishorttail-cy Semisoftsign-cy semisoftsign-cy Ertick-cy ertick-cy Ghemiddlehook-cy ghemiddlehook-cy Kastroke-cy kastroke-cy Haabkhasian-cy haabkhasian-cy Tedescender-cy tedescender-cy Tetse-cy tetse-cy Cheabkhasian-cy cheabkhasian-cy Chedescenderabkhasian-cy chedescenderabkhasian-cy Kahook-cy kahook-cy Eltail-cy eltail-cy Enhook-cy enhook-cy Entail-cy entail-cy Emtail-cy emtail-cy Schwadieresis-cy schwadieresis-cy Dzeabkhasian-cy dzeabkhasian-cy Obarreddieresis-cy obarreddieresis-cy Edieresis-cy edieresis-cy Gestrokehook-cy gestrokehook-cy Hahook-cy hahook-cy Hastroke-cy hastroke-cy Reversedze-cy reversedze-cy Elhook-cy elhook-cy Pedescender-cy pedescender-cy Shhadescender-cy shhadescender-cy EnLeftHook-cy enlefthook-cy Eldescender-cy eldescender-cy iishorttail-cy.sc semisoftsign-cy.sc ertick-cy.sc kastroke-cy.sc pemiddlehook-cy.sc haabkhasian-cy.sc tedescender-cy.sc cheabkhasian-cy.sc chedescenderabkhasian-cy.sc kahook-cy.sc eltail-cy.sc enhook-cy.sc entail-cy.sc emtail-cy.sc schwadieresis-cy.sc dzeabkhasian-cy.sc obarreddieresis-cy.sc edieresis-cy.sc gestrokehook-cy.sc hahook-cy.sc hastroke-cy.sc reversedze-cy.sc elhook-cy.sc shhadescender-cy.sc enlefthook-cy.sc eldescender-cy.sc Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/nice names/pro_unique-glyphs_smallcaps.txt000066400000000000000000000007151376445505300341420ustar00rootroot00000000000000iishorttail-cy.sc semisoftsign-cy.sc ertick-cy.sc kastroke-cy.sc pemiddlehook-cy.sc haabkhasian-cy.sc tedescender-cy.sc cheabkhasian-cy.sc chedescenderabkhasian-cy.sc kahook-cy.sc eltail-cy.sc enhook-cy.sc entail-cy.sc emtail-cy.sc schwadieresis-cy.sc dzeabkhasian-cy.sc obarreddieresis-cy.sc edieresis-cy.sc gestrokehook-cy.sc hahook-cy.sc hastroke-cy.sc reversedze-cy.sc elhook-cy.sc shhadescender-cy.sc enlefthook-cy.sc eldescender-cy.sc ghemiddlehook-cy.sc Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/uni names/000077500000000000000000000000001376445505300255225ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/uni names/historical_unique-glyphs.txt000066400000000000000000000004401376445505300333140ustar00rootroot00000000000000uni0460 uni0461 uni0464 uni0465 uni0466 uni0467 uni0468 uni0469 uni046C uni046D uni046E uni046F uni0470 uni0471 uni0476 uni0477 uni0478 uni0479 uni047A uni047B uni047C uni047D uni047E uni047F uni0480 uni0481 uni0482 uni0483 uni0484 uni0485 uni0486 uni0487 uni0488 uni0489 uniA64C uniA64D Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/uni names/plus-locl_unique-glyphs.txt000066400000000000000000000012001376445505300330600ustar00rootroot00000000000000uni040D.loclBGR uni0414.loclBGR uni0418.loclBGR uni0419.loclBGR uni041B.loclBGR uni0424.loclBGR uni0432.loclBGR uni0433.loclBGR uni0434.loclBGR uni0436.loclBGR uni0437.loclBGR uni0438.loclBGR uni0439.loclBGR uni043A.loclBGR uni043B.loclBGR uni043D.loclBGR uni043F.loclBGR uni0442.loclBGR uni0446.loclBGR uni0447.loclBGR uni0448.loclBGR uni0449.loclBGR uni044A.loclBGR uni044C.loclBGR uni044E.loclBGR uni045D.loclBGR uni0492.loclBSH uni0493.loclBSH uni0498.loclBSH uni0499.loclBSH uni04AA.loclBSH uni04AB.loclBSH uni04AA.loclCHU uni04AB.loclCHU uni0453.loclMKD uni0431.loclSRB uni0433.loclSRB uni0434.loclSRB uni043F.loclSRB uni0442.loclSRB plus-locl_unique-glyphs_italic.txt000066400000000000000000000007171376445505300343420ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/uni namesuni0414.loclBGR uni0418.loclBGR uni0419.loclBGR uni040D.loclBGR uni041B.loclBGR uni0424.loclBGR uni0432.loclBGR uni0433.loclBGR uni0434.loclBGR uni0436.loclBGR uni0437.loclBGR uni043A.loclBGR uni043B.loclBGR uni043D.loclBGR uni044E.loclBGR uni0431.loclSRB uni0433.loclSRB uni0434.loclSRB uni043F.loclSRB uni0442.loclSRB uni0453.loclMKD uni0492.loclBSH uni0493.loclBSH uni0498.loclBSH uni0499.loclBSH uni04AA.loclBSH uni04AB.loclBSH uni04AA.loclCHU uni04AB.loclCHUplus-locl_unique-glyphs_roman.txt000066400000000000000000000010571376445505300342070ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/uni namesuni0414.loclBGR uni0418.loclBGR uni0419.loclBGR uni040D.loclBGR uni041B.loclBGR uni0424.loclBGR uni0432.loclBGR uni0433.loclBGR uni0434.loclBGR uni0436.loclBGR uni0437.loclBGR uni0438.loclBGR uni0439.loclBGR uni045D.loclBGR uni043A.loclBGR uni043B.loclBGR uni043D.loclBGR uni043F.loclBGR uni0442.loclBGR uni0446.loclBGR uni0447.loclBGR uni0448.loclBGR uni0449.loclBGR uni044C.loclBGR uni044A.loclBGR uni044E.loclBGR uni0431.loclSRB uni0492.loclBSH uni0493.loclBSH uni0498.loclBSH uni0499.loclBSH uni04AA.loclBSH uni04AB.loclBSH uni04AA.loclCHU uni04AB.loclCHULib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/uni names/plus_unique-glyphs.txt000066400000000000000000000047571376445505300321550ustar00rootroot00000000000000uni02BC gravecomb acutecomb uni0304 uni0308 uni030B uni0400 uni0401 uni0402 uni0403 uni0404 uni0405 uni0406 uni0407 uni0408 uni0409 uni040A uni040B uni040C uni040D uni040E uni040F uni0410 uni0411 uni0412 uni0413 uni0414 uni0415 uni0416 uni0417 uni0418 uni0419 uni041A uni041B uni041C uni041D uni041E uni041F uni0420 uni0421 uni0422 uni0423 uni0424 uni0425 uni0426 uni0427 uni0428 uni0429 uni042A uni042B uni042C uni042D uni042E uni042F uni0430 uni0431 uni0432 uni0433 uni0434 uni0435 uni0436 uni0437 uni0438 uni0439 uni043A uni043B uni043C uni043D uni043E uni043F uni0440 uni0441 uni0442 uni0443 uni0444 uni0445 uni0446 uni0447 uni0448 uni0449 uni044A uni044B uni044C uni044D uni044E uni044F uni0450 uni0451 uni0452 uni0453 uni0454 uni0455 uni0456 uni0457 uni0458 uni0459 uni045A uni045B uni045C uni045D uni045E uni045F uni0462 uni0463 uni046A uni046B uni0472 uni0473 uni0474 uni0475 uni0490 uni0491 uni0492 uni0493 uni0494 uni0495 uni0496 uni0497 uni0498 uni0499 uni049A uni049B uni049C uni049D uni04A0 uni04A1 uni04A2 uni04A3 uni04A4 uni04A5 uni04AA uni04AB uni04AE uni04AF uni04B0 uni04B1 uni04B2 uni04B3 uni04B6 uni04B7 uni04B8 uni04B9 uni04BA uni04BB uni04C0 uni04C1 uni04C2 uni04CB uni04CC uni04CF uni04D0 uni04D1 uni04D2 uni04D3 uni04D4 uni04D5 uni04D6 uni04D7 uni04D8 uni04D9 uni04DC uni04DD uni04DE uni04DF uni04E2 uni04E3 uni04E4 uni04E5 uni04E6 uni04E7 uni04E8 uni04E9 uni04EE uni04EF uni04F0 uni04F1 uni04F2 uni04F3 uni04F4 uni04F5 uni04F6 uni04F7 uni04F8 uni04F9 uni051A uni051B uni051C uni051D uni20AE uni20B4 uni20B8 uni2116 brevecomb-cy uni0430.sc uni0431.sc uni0432.sc uni0433.sc uni0434.sc uni0435.sc uni0436.sc uni0437.sc uni0438.sc uni0439.sc uni043A.sc uni043B.sc uni043C.sc uni043D.sc uni043E.sc uni043F.sc uni0440.sc uni0441.sc uni0442.sc uni0443.sc uni0444.sc uni0445.sc uni0446.sc uni0447.sc uni0448.sc uni0449.sc uni044A.sc uni044B.sc uni044C.sc uni044D.sc uni044E.sc uni044F.sc uni0450.sc uni0451.sc uni0452.sc uni0453.sc uni0454.sc uni0455.sc uni0456.sc uni0457.sc uni0458.sc uni0459.sc uni045A.sc uni045B.sc uni045C.sc uni045D.sc uni045E.sc uni045F.sc uni0463.sc uni046B.sc uni0473.sc uni0475.sc uni0491.sc uni0493.sc uni0495.sc uni0497.sc uni0499.sc uni049B.sc uni049D.sc uni04A1.sc uni04A3.sc uni04AB.sc uni04AF.sc uni04B1.sc uni04B3.sc uni04B7.sc uni04B9.sc uni04BB.sc uni04C2.sc uni04CC.sc uni04CF.sc uni04D1.sc uni04D3.sc uni04D7.sc uni04D9.sc uni04DD.sc uni04DF.sc uni04E3.sc uni04E5.sc uni04E7.sc uni04E9.sc uni04EF.sc uni04F1.sc uni04F3.sc uni04F5.sc uni04F7.sc uni04F9.sc uni051B.sc uni051D.sc uni0525.sc Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/uni names/plus_unique-glyphs_core.txt000066400000000000000000000014271376445505300331540ustar00rootroot00000000000000uni0400 uni0401 uni0402 uni0403 uni0404 uni0405 uni0406 uni0407 uni0408 uni0409 uni040A uni040B uni040C uni040D uni040E uni040F uni0410 uni0411 uni0412 uni0413 uni0414 uni0415 uni0416 uni0417 uni0418 uni0419 uni041A uni041B uni041C uni041D uni041E uni041F uni0420 uni0421 uni0422 uni0423 uni0424 uni0425 uni0426 uni0427 uni0428 uni0429 uni042A uni042B uni042C uni042D uni042E uni042F uni0430 uni0431 uni0432 uni0433 uni0434 uni0435 uni0436 uni0437 uni0438 uni0439 uni043A uni043B uni043C uni043D uni043E uni043F uni0440 uni0441 uni0442 uni0443 uni0444 uni0445 uni0446 uni0447 uni0448 uni0449 uni044A uni044B uni044C uni044D uni044E uni044F uni0450 uni0451 uni0452 uni0453 uni0454 uni0455 uni0456 uni0457 uni0458 uni0459 uni045A uni045B uni045C uni045D uni045E uni045F uni0490 uni0491 uni2116Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/uni names/plus_unique-glyphs_smallcaps.txt000066400000000000000000000017361376445505300342060ustar00rootroot00000000000000uni0430.sc uni0431.sc uni0432.sc uni0433.sc uni0434.sc uni0435.sc uni0436.sc uni0437.sc uni0438.sc uni0439.sc uni043A.sc uni043B.sc uni043C.sc uni043D.sc uni043E.sc uni043F.sc uni0440.sc uni0441.sc uni0442.sc uni0443.sc uni0444.sc uni0445.sc uni0446.sc uni0447.sc uni0448.sc uni0449.sc uni044A.sc uni044B.sc uni044C.sc uni044D.sc uni044E.sc uni044F.sc uni0450.sc uni0451.sc uni0452.sc uni0453.sc uni0454.sc uni0455.sc uni0456.sc uni0457.sc uni0458.sc uni0459.sc uni045A.sc uni045B.sc uni045C.sc uni045D.sc uni045E.sc uni045F.sc uni0463.sc uni046B.sc uni0473.sc uni0475.sc uni0491.sc uni0493.sc uni0495.sc uni0497.sc uni0499.sc uni049B.sc uni049D.sc uni04A1.sc uni04A3.sc uni04AB.sc uni04AF.sc uni04B1.sc uni04B3.sc uni04B7.sc uni04B9.sc uni04BB.sc uni04C2.sc uni04CC.sc uni04CF.sc uni04D1.sc uni04D3.sc uni04D7.sc uni04D9.sc uni04DD.sc uni04DF.sc uni04E3.sc uni04E5.sc uni04E7.sc uni04E9.sc uni04EF.sc uni04F1.sc uni04F3.sc uni04F5.sc uni04F7.sc uni04F9.sc uni051B.sc uni051D.sc uni0525.sc Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/uni names/pro_unique-glyphs.txt000066400000000000000000000013361376445505300317600ustar00rootroot00000000000000uni048A uni048B uni048C uni048D uni048E uni048F uni0494 uni0495 uni049E uni049F uni04A8 uni04A9 uni04AC uni04AD uni04B4 uni04B5 uni04BC uni04BD uni04BE uni04BF uni04C3 uni04C4 uni04C5 uni04C6 uni04C7 uni04C8 uni04C9 uni04CA uni04CD uni04CE uni04DA uni04DB uni04E0 uni04E1 uni04EA uni04EB uni04EC uni04ED uni04FA uni04FB uni04FC uni04FD uni04FE uni04FF uni0510 uni0511 uni0512 uni0513 uni0524 uni0525 uni0526 uni0527 uni0528 uni0529 uni052E uni052F uni048B.sc uni048D.sc uni048F.sc uni049F.sc uni04A7.sc uni04A9.sc uni04AD.sc uni04BD.sc uni04BF.sc uni04C4.sc uni04C6.sc uni04C8.sc uni04CA.sc uni04CE.sc uni04DB.sc uni04E1.sc uni04EB.sc uni04ED.sc uni04FB.sc uni04FD.sc uni04FF.sc uni0511.sc uni0513.sc uni0527.sc uni0529.sc uni052F.sc Lib/gftools/encodings/GF Glyph Sets/Cyrillic/filter lists/uni names/pro_unique-glyphs_smallcaps.txt000066400000000000000000000004511376445505300340140ustar00rootroot00000000000000uni048B.sc uni048D.sc uni048F.sc uni0495.sc uni049F.sc uni04A7.sc uni04A9.sc uni04AD.sc uni04BD.sc uni04BF.sc uni04C4.sc uni04C6.sc uni04C8.sc uni04CA.sc uni04CE.sc uni04DB.sc uni04E1.sc uni04EB.sc uni04ED.sc uni04FB.sc uni04FD.sc uni04FF.sc uni0511.sc uni0513.sc uni0527.sc uni0529.sc uni052F.sc Lib/gftools/encodings/GF Glyph Sets/GF-latin-core_unique-glyphs.nam000066400000000000000000000154621376445505300254130ustar00rootroot00000000000000 NULL 0x000D CR 0x0020 SPACE 0x0021 ! EXCLAMATION MARK 0x0022 " QUOTATION MARK 0x0023 # NUMBER SIGN 0x0024 $ DOLLAR SIGN 0x0025 % PERCENT SIGN 0x0026 & AMPERSAND 0x0027 ' APOSTROPHE 0x0028 ( LEFT PARENTHESIS 0x0029 ) RIGHT PARENTHESIS 0x002A * ASTERISK 0x002B + PLUS SIGN 0x002C , COMMA 0x002D - HYPHEN-MINUS 0x002E . FULL STOP 0x002F / SOLIDUS 0x0030 0 DIGIT ZERO 0x0031 1 DIGIT ONE 0x0032 2 DIGIT TWO 0x0033 3 DIGIT THREE 0x0034 4 DIGIT FOUR 0x0035 5 DIGIT FIVE 0x0036 6 DIGIT SIX 0x0037 7 DIGIT SEVEN 0x0038 8 DIGIT EIGHT 0x0039 9 DIGIT NINE 0x003A : COLON 0x003B ; SEMICOLON 0x003C < LESS-THAN SIGN 0x003D = EQUALS SIGN 0x003E > GREATER-THAN SIGN 0x003F ? QUESTION MARK 0x0040 @ COMMERCIAL AT 0x0041 A LATIN CAPITAL LETTER A 0x0042 B LATIN CAPITAL LETTER B 0x0043 C LATIN CAPITAL LETTER C 0x0044 D LATIN CAPITAL LETTER D 0x0045 E LATIN CAPITAL LETTER E 0x0046 F LATIN CAPITAL LETTER F 0x0047 G LATIN CAPITAL LETTER G 0x0048 H LATIN CAPITAL LETTER H 0x0049 I LATIN CAPITAL LETTER I 0x004A J LATIN CAPITAL LETTER J 0x004B K LATIN CAPITAL LETTER K 0x004C L LATIN CAPITAL LETTER L 0x004D M LATIN CAPITAL LETTER M 0x004E N LATIN CAPITAL LETTER N 0x004F O LATIN CAPITAL LETTER O 0x0050 P LATIN CAPITAL LETTER P 0x0051 Q LATIN CAPITAL LETTER Q 0x0052 R LATIN CAPITAL LETTER R 0x0053 S LATIN CAPITAL LETTER S 0x0054 T LATIN CAPITAL LETTER T 0x0055 U LATIN CAPITAL LETTER U 0x0056 V LATIN CAPITAL LETTER V 0x0057 W LATIN CAPITAL LETTER W 0x0058 X LATIN CAPITAL LETTER X 0x0059 Y LATIN CAPITAL LETTER Y 0x005A Z LATIN CAPITAL LETTER Z 0x005B [ LEFT SQUARE BRACKET 0x005C \ REVERSE SOLIDUS 0x005D ] RIGHT SQUARE BRACKET 0x005E ^ CIRCUMFLEX ACCENT 0x005F _ LOW LINE 0x0060 ` GRAVE ACCENT 0x0061 a LATIN SMALL LETTER A 0x0062 b LATIN SMALL LETTER B 0x0063 c LATIN SMALL LETTER C 0x0064 d LATIN SMALL LETTER D 0x0065 e LATIN SMALL LETTER E 0x0066 f LATIN SMALL LETTER F 0x0067 g LATIN SMALL LETTER G 0x0068 h LATIN SMALL LETTER H 0x0069 i LATIN SMALL LETTER I 0x006A j LATIN SMALL LETTER J 0x006B k LATIN SMALL LETTER K 0x006C l LATIN SMALL LETTER L 0x006D m LATIN SMALL LETTER M 0x006E n LATIN SMALL LETTER N 0x006F o LATIN SMALL LETTER O 0x0070 p LATIN SMALL LETTER P 0x0071 q LATIN SMALL LETTER Q 0x0072 r LATIN SMALL LETTER R 0x0073 s LATIN SMALL LETTER S 0x0074 t LATIN SMALL LETTER T 0x0075 u LATIN SMALL LETTER U 0x0076 v LATIN SMALL LETTER V 0x0077 w LATIN SMALL LETTER W 0x0078 x LATIN SMALL LETTER X 0x0079 y LATIN SMALL LETTER Y 0x007A z LATIN SMALL LETTER Z 0x007B { LEFT CURLY BRACKET 0x007C | VERTICAL LINE 0x007D } RIGHT CURLY BRACKET 0x007E ~ TILDE 0x00A0   NO-BREAK SPACE 0x00A1 ¡ INVERTED EXCLAMATION MARK 0x00A2 ¢ CENT SIGN 0x00A3 £ POUND SIGN 0x00A4 ¤ CURRENCY SIGN 0x00A5 ¥ YEN SIGN 0x00A6 ¦ BROKEN BAR 0x00A7 § SECTION SIGN 0x00A8 ¨ DIAERESIS 0x00A9 © COPYRIGHT SIGN 0x00AA ª FEMININE ORDINAL INDICATOR 0x00AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x00AC ¬ NOT SIGN 0x00AD ­ SOFT HYPHEN 0x00AE ® REGISTERED SIGN 0x00AF ¯ MACRON 0x00B0 ° DEGREE SIGN 0x00B1 ± PLUS-MINUS SIGN 0x00B2 ² SUPERSCRIPT TWO 0x00B3 ³ SUPERSCRIPT THREE 0x00B4 ´ ACUTE ACCENT 0x00B5 µ MICRO SIGN 0x00B6 ¶ PILCROW SIGN 0x00B7 · MIDDLE DOT 0x00B8 ¸ CEDILLA 0x00B9 ¹ SUPERSCRIPT ONE 0x00BA º MASCULINE ORDINAL INDICATOR 0x00BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x00BC ¼ VULGAR FRACTION ONE QUARTER 0x00BD ½ VULGAR FRACTION ONE HALF 0x00BE ¾ VULGAR FRACTION THREE QUARTERS 0x00BF ¿ INVERTED QUESTION MARK 0x00C0 À LATIN CAPITAL LETTER A WITH GRAVE 0x00C1 Á LATIN CAPITAL LETTER A WITH ACUTE 0x00C2  LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x00C3 à LATIN CAPITAL LETTER A WITH TILDE 0x00C4 Ä LATIN CAPITAL LETTER A WITH DIAERESIS 0x00C5 Å LATIN CAPITAL LETTER A WITH RING ABOVE 0x00C6 Æ LATIN CAPITAL LETTER AE 0x00C7 Ç LATIN CAPITAL LETTER C WITH CEDILLA 0x00C8 È LATIN CAPITAL LETTER E WITH GRAVE 0x00C9 É LATIN CAPITAL LETTER E WITH ACUTE 0x00CA Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0x00CB Ë LATIN CAPITAL LETTER E WITH DIAERESIS 0x00CC Ì LATIN CAPITAL LETTER I WITH GRAVE 0x00CD Í LATIN CAPITAL LETTER I WITH ACUTE 0x00CE Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x00CF Ï LATIN CAPITAL LETTER I WITH DIAERESIS 0x00D0 Ð LATIN CAPITAL LETTER ETH 0x00D1 Ñ LATIN CAPITAL LETTER N WITH TILDE 0x00D2 Ò LATIN CAPITAL LETTER O WITH GRAVE 0x00D3 Ó LATIN CAPITAL LETTER O WITH ACUTE 0x00D4 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x00D5 Õ LATIN CAPITAL LETTER O WITH TILDE 0x00D6 Ö LATIN CAPITAL LETTER O WITH DIAERESIS 0x00D7 × MULTIPLICATION SIGN 0x00D8 Ø LATIN CAPITAL LETTER O WITH STROKE 0x00D9 Ù LATIN CAPITAL LETTER U WITH GRAVE 0x00DA Ú LATIN CAPITAL LETTER U WITH ACUTE 0x00DB Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0x00DC Ü LATIN CAPITAL LETTER U WITH DIAERESIS 0x00DD Ý LATIN CAPITAL LETTER Y WITH ACUTE 0x00DE Þ LATIN CAPITAL LETTER THORN 0x00DF ß LATIN SMALL LETTER SHARP S 0x00E0 à LATIN SMALL LETTER A WITH GRAVE 0x00E1 á LATIN SMALL LETTER A WITH ACUTE 0x00E2 â LATIN SMALL LETTER A WITH CIRCUMFLEX 0x00E3 ã LATIN SMALL LETTER A WITH TILDE 0x00E4 ä LATIN SMALL LETTER A WITH DIAERESIS 0x00E5 å LATIN SMALL LETTER A WITH RING ABOVE 0x00E6 æ LATIN SMALL LETTER AE 0x00E7 ç LATIN SMALL LETTER C WITH CEDILLA 0x00E8 è LATIN SMALL LETTER E WITH GRAVE 0x00E9 é LATIN SMALL LETTER E WITH ACUTE 0x00EA ê LATIN SMALL LETTER E WITH CIRCUMFLEX 0x00EB ë LATIN SMALL LETTER E WITH DIAERESIS 0x00EC ì LATIN SMALL LETTER I WITH GRAVE 0x00ED í LATIN SMALL LETTER I WITH ACUTE 0x00EE î LATIN SMALL LETTER I WITH CIRCUMFLEX 0x00EF ï LATIN SMALL LETTER I WITH DIAERESIS 0x00F0 ð LATIN SMALL LETTER ETH 0x00F1 ñ LATIN SMALL LETTER N WITH TILDE 0x00F2 ò LATIN SMALL LETTER O WITH GRAVE 0x00F3 ó LATIN SMALL LETTER O WITH ACUTE 0x00F4 ô LATIN SMALL LETTER O WITH CIRCUMFLEX 0x00F5 õ LATIN SMALL LETTER O WITH TILDE 0x00F6 ö LATIN SMALL LETTER O WITH DIAERESIS 0x00F7 ÷ DIVISION SIGN 0x00F8 ø LATIN SMALL LETTER O WITH STROKE 0x00F9 ù LATIN SMALL LETTER U WITH GRAVE 0x00FA ú LATIN SMALL LETTER U WITH ACUTE 0x00FB û LATIN SMALL LETTER U WITH CIRCUMFLEX 0x00FC ü LATIN SMALL LETTER U WITH DIAERESIS 0x00FD ý LATIN SMALL LETTER Y WITH ACUTE 0x00FE þ LATIN SMALL LETTER THORN 0x00FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS 0x0131 ı LATIN SMALL LETTER DOTLESS I 0x0152 Œ LATIN CAPITAL LIGATURE OE 0x0153 œ LATIN SMALL LIGATURE OE 0x02C6 ˆ MODIFIER LETTER CIRCUMFLEX ACCENT 0x02DA ˚ RING ABOVE 0x02DC ˜ SMALL TILDE 0x2013 – EN DASH 0x2014 — EM DASH 0x2018 ‘ LEFT SINGLE QUOTATION MARK 0x2019 ’ RIGHT SINGLE QUOTATION MARK 0x201A ‚ SINGLE LOW-9 QUOTATION MARK 0x201C “ LEFT DOUBLE QUOTATION MARK 0x201D ” RIGHT DOUBLE QUOTATION MARK 0x201E „ DOUBLE LOW-9 QUOTATION MARK 0x2022 • BULLET 0x2026 … HORIZONTAL ELLIPSIS 0x2039 ‹ SINGLE LEFT-POINTING ANGLE QUOTATION MARK 0x203A › SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 0x2044 ⁄ FRACTION SLASH 0x2074 ⁴ SUPERSCRIPT FOUR 0x20AC € EURO SIGN 0x2212 − MINUS SIGN 0x2215 ∕ DIVISION SLASH Lib/gftools/encodings/GF Glyph Sets/GF-latin-expert_unique-glyphs.nam000066400000000000000000000140041376445505300257610ustar00rootroot00000000000000#$ include GF-latin-pro_unique-glyphs.nam 0x2153 ⅓ VULGAR FRACTION ONE THIRD 0x2154 ⅔ VULGAR FRACTION TWO THIRDS 0x215B ⅛ VULGAR FRACTION ONE EIGHTH 0x215C ⅜ VULGAR FRACTION THREE EIGHTHS 0x215D ⅝ VULGAR FRACTION FIVE EIGHTHS 0x215E ⅞ VULGAR FRACTION SEVEN EIGHTHS 0x2190 ← LEFTWARDS ARROW 0x2191 ↑ UPWARDS ARROW 0x2192 → RIGHTWARDS ARROW 0x2193 ↓ DOWNWARDS ARROW 0x25A0 ■ BLACK SQUARE 0x25A1 □ WHITE SQUARE 0x25B2 ▲ BLACK UP-POINTING TRIANGLE 0x25B3 △ WHITE UP-POINTING TRIANGLE 0x25B6 ▶ BLACK RIGHT-POINTING TRIANGLE 0x25B7 ▷ WHITE RIGHT-POINTING TRIANGLE 0x25BC ▼ BLACK DOWN-POINTING TRIANGLE 0x25BD ▽ WHITE DOWN-POINTING TRIANGLE 0x25C0 ◀ BLACK LEFT-POINTING TRIANGLE 0x25C1 ◁ WHITE LEFT-POINTING TRIANGLE 0x25C6 ◆ BLACK DIAMOND 0x25C7 ◇ WHITE DIAMOND T_h c_h c_t s_t germandbls.alt.sc periodcentered.loclCAT.sc exclam.sc quotedbl.sc ampersand.sc quotesingle.sc question.sc a.sc b.sc c.sc d.sc e.sc f.sc g.sc h.sc i.sc j.sc k.sc l.sc m.sc n.sc o.sc p.sc q.sc r.sc s.sc t.sc u.sc v.sc w.sc x.sc y.sc z.sc exclamdown.sc periodcentered.sc questiondown.sc germandbls.sc agrave.sc aacute.sc acircumflex.sc atilde.sc adieresis.sc aring.sc ae.sc ccedilla.sc egrave.sc eacute.sc ecircumflex.sc edieresis.sc igrave.sc iacute.sc icircumflex.sc idieresis.sc eth.sc ntilde.sc ograve.sc oacute.sc ocircumflex.sc otilde.sc odieresis.sc oslash.sc ugrave.sc uacute.sc ucircumflex.sc udieresis.sc yacute.sc thorn.sc ydieresis.sc amacron.sc abreve.sc aogonek.sc cacute.sc ccircumflex.sc cdotaccent.sc ccaron.sc dcaron.sc dcroat.sc emacron.sc ebreve.sc edotaccent.sc eogonek.sc ecaron.sc gcircumflex.sc gbreve.sc gdotaccent.sc gcommaaccent.sc hcircumflex.sc hbar.sc itilde.sc imacron.sc ibreve.sc iogonek.sc idotless.sc jcircumflex.sc kcommaaccent.sc kgreenlandic.sc lacute.sc lcommaaccent.sc lcaron.sc ldot.sc lslash.sc nacute.sc ncommaaccent.sc ncaron.sc eng.sc omacron.sc obreve.sc ohungarumlaut.sc oe.sc racute.sc rcommaaccent.sc rcaron.sc sacute.sc scircumflex.sc scedilla.sc scaron.sc tcedilla.sc tcaron.sc tbar.sc utilde.sc umacron.sc ubreve.sc uring.sc uhungarumlaut.sc uogonek.sc wcircumflex.sc ycircumflex.sc zacute.sc zdotaccent.sc zcaron.sc ohorn.sc uhorn.sc dzcaron.sc lj.sc nj.sc gcaron.sc oogonek.sc aringacute.sc aeacute.sc oslashacute.sc adblgrave.sc ainvertedbreve.sc edblgrave.sc einvertedbreve.sc idblgrave.sc iinvertedbreve.sc odblgrave.sc oinvertedbreve.sc rdblgrave.sc rinvertedbreve.sc udblgrave.sc uinvertedbreve.sc scommaaccent.sc tcommaaccent.sc odieresismacron.sc otildemacron.sc odotaccentmacron.sc ymacron.sc schwa.sc ccedillaacute.sc ddotbelow.sc dlinebelow.sc emacrongrave.sc emacronacute.sc ecedillabreve.sc gmacron.sc hdotbelow.sc hbrevebelow.sc idieresisacute.sc ldotbelow.sc llinebelow.sc mdotbelow.sc ndotaccent.sc ndotbelow.sc nlinebelow.sc otildeacute.sc otildedieresis.sc omacrongrave.sc omacronacute.sc rdotbelow.sc rlinebelow.sc sdotaccent.sc sdotbelow.sc sacutedotaccent.sc scarondotaccent.sc sdotbelowdotaccent.sc tdotbelow.sc tlinebelow.sc utildeacute.sc umacrondieresis.sc wgrave.sc wacute.sc wdieresis.sc ydotaccent.sc zdotbelow.sc tdieresis.sc adotbelow.sc ahookabove.sc acircumflexacute.sc acircumflexgrave.sc acircumflexhookabove.sc acircumflextilde.sc acircumflexdotbelow.sc abreveacute.sc abrevegrave.sc abrevehookabove.sc abrevetilde.sc abrevedotbelow.sc edotbelow.sc ehookabove.sc etilde.sc ecircumflexacute.sc ecircumflexgrave.sc ecircumflexhookabove.sc ecircumflextilde.sc ecircumflexdotbelow.sc ihookabove.sc idotbelow.sc odotbelow.sc ohookabove.sc ocircumflexacute.sc ocircumflexgrave.sc ocircumflexhookabove.sc ocircumflextilde.sc ocircumflexdotbelow.sc ohornacute.sc ohorngrave.sc ohornhookabove.sc ohorntilde.sc ohorndotbelow.sc udotbelow.sc uhornacute.sc uhorngrave.sc uhornhookabove.sc uhorntilde.sc uhorndotbelow.sc ygrave.sc ydotbelow.sc yhookabove.sc ytilde.sc quoteleft.sc quoteright.sc quotedblleft.sc quotedblright.sc Lib/gftools/encodings/GF Glyph Sets/GF-latin-plus_optional-glyphs.nam000066400000000000000000000012531376445505300257560ustar00rootroot00000000000000 gravecomb.case acutecomb.case circumflexcomb.case tildecomb.case macroncomb.case brevecomb.case dotaccentcomb.case dieresiscomb.case hookabovecomb.case ringcomb.case hungarumlautcomb.case caroncomb.case dblgravecomb.case breveinvertedcomb.case commaturnedabovecomb.case horncomb.case dotbelowcomb.case dieresisbelowcomb.case commaaccentcomb.case cedillacomb.case ogonekcomb.case brevebelowcomb.case macronbelowcomb.case periodcentered.loclCAT.case zero.zero Lib/gftools/encodings/GF Glyph Sets/GF-latin-plus_unique-glyphs.nam000066400000000000000000000373171376445505300254510ustar00rootroot00000000000000#$ include GF-latin-core_unique-glyphs.nam 0x0100 Ā LATIN CAPITAL LETTER A WITH MACRON 0x0101 ā LATIN SMALL LETTER A WITH MACRON 0x0102 Ă LATIN CAPITAL LETTER A WITH BREVE 0x0103 ă LATIN SMALL LETTER A WITH BREVE 0x0104 Ą LATIN CAPITAL LETTER A WITH OGONEK 0x0105 ą LATIN SMALL LETTER A WITH OGONEK 0x0106 Ć LATIN CAPITAL LETTER C WITH ACUTE 0x0107 ć LATIN SMALL LETTER C WITH ACUTE 0x0108 Ĉ LATIN CAPITAL LETTER C WITH CIRCUMFLEX 0x0109 ĉ LATIN SMALL LETTER C WITH CIRCUMFLEX 0x010A Ċ LATIN CAPITAL LETTER C WITH DOT ABOVE 0x010B ċ LATIN SMALL LETTER C WITH DOT ABOVE 0x010C Č LATIN CAPITAL LETTER C WITH CARON 0x010D č LATIN SMALL LETTER C WITH CARON 0x010E Ď LATIN CAPITAL LETTER D WITH CARON 0x010F ď LATIN SMALL LETTER D WITH CARON 0x0110 Đ LATIN CAPITAL LETTER D WITH STROKE 0x0111 đ LATIN SMALL LETTER D WITH STROKE 0x0112 Ē LATIN CAPITAL LETTER E WITH MACRON 0x0113 ē LATIN SMALL LETTER E WITH MACRON 0x0114 Ĕ LATIN CAPITAL LETTER E WITH BREVE 0x0115 ĕ LATIN SMALL LETTER E WITH BREVE 0x0116 Ė LATIN CAPITAL LETTER E WITH DOT ABOVE 0x0117 ė LATIN SMALL LETTER E WITH DOT ABOVE 0x0118 Ę LATIN CAPITAL LETTER E WITH OGONEK 0x0119 ę LATIN SMALL LETTER E WITH OGONEK 0x011A Ě LATIN CAPITAL LETTER E WITH CARON 0x011B ě LATIN SMALL LETTER E WITH CARON 0x011C Ĝ LATIN CAPITAL LETTER G WITH CIRCUMFLEX 0x011D ĝ LATIN SMALL LETTER G WITH CIRCUMFLEX 0x011E Ğ LATIN CAPITAL LETTER G WITH BREVE 0x011F ğ LATIN SMALL LETTER G WITH BREVE 0x0120 Ġ LATIN CAPITAL LETTER G WITH DOT ABOVE 0x0121 ġ LATIN SMALL LETTER G WITH DOT ABOVE 0x0122 Ģ LATIN CAPITAL LETTER G WITH CEDILLA 0x0123 ģ LATIN SMALL LETTER G WITH CEDILLA 0x0124 Ĥ LATIN CAPITAL LETTER H WITH CIRCUMFLEX 0x0125 ĥ LATIN SMALL LETTER H WITH CIRCUMFLEX 0x0126 Ħ LATIN CAPITAL LETTER H WITH STROKE 0x0127 ħ LATIN SMALL LETTER H WITH STROKE 0x0128 Ĩ LATIN CAPITAL LETTER I WITH TILDE 0x0129 ĩ LATIN SMALL LETTER I WITH TILDE 0x012A Ī LATIN CAPITAL LETTER I WITH MACRON 0x012B ī LATIN SMALL LETTER I WITH MACRON 0x012C Ĭ LATIN CAPITAL LETTER I WITH BREVE 0x012D ĭ LATIN SMALL LETTER I WITH BREVE 0x012E Į LATIN CAPITAL LETTER I WITH OGONEK 0x012F į LATIN SMALL LETTER I WITH OGONEK 0x0130 İ LATIN CAPITAL LETTER I WITH DOT ABOVE 0x0134 Ĵ LATIN CAPITAL LETTER J WITH CIRCUMFLEX 0x0135 ĵ LATIN SMALL LETTER J WITH CIRCUMFLEX 0x0136 Ķ LATIN CAPITAL LETTER K WITH CEDILLA 0x0137 ķ LATIN SMALL LETTER K WITH CEDILLA 0x0138 ĸ LATIN SMALL LETTER KRA 0x0139 Ĺ LATIN CAPITAL LETTER L WITH ACUTE 0x013A ĺ LATIN SMALL LETTER L WITH ACUTE 0x013B Ļ LATIN CAPITAL LETTER L WITH CEDILLA 0x013C ļ LATIN SMALL LETTER L WITH CEDILLA 0x013D Ľ LATIN CAPITAL LETTER L WITH CARON 0x013E ľ LATIN SMALL LETTER L WITH CARON 0x013F Ŀ LATIN CAPITAL LETTER L WITH MIDDLE DOT 0x0140 ŀ LATIN SMALL LETTER L WITH MIDDLE DOT 0x0141 Ł LATIN CAPITAL LETTER L WITH STROKE 0x0142 ł LATIN SMALL LETTER L WITH STROKE 0x0143 Ń LATIN CAPITAL LETTER N WITH ACUTE 0x0144 ń LATIN SMALL LETTER N WITH ACUTE 0x0145 Ņ LATIN CAPITAL LETTER N WITH CEDILLA 0x0146 ņ LATIN SMALL LETTER N WITH CEDILLA 0x0147 Ň LATIN CAPITAL LETTER N WITH CARON 0x0148 ň LATIN SMALL LETTER N WITH CARON 0x014A Ŋ LATIN CAPITAL LETTER ENG 0x014B ŋ LATIN SMALL LETTER ENG 0x014C Ō LATIN CAPITAL LETTER O WITH MACRON 0x014D ō LATIN SMALL LETTER O WITH MACRON 0x014E Ŏ LATIN CAPITAL LETTER O WITH BREVE 0x014F ŏ LATIN SMALL LETTER O WITH BREVE 0x0150 Ő LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0x0151 ő LATIN SMALL LETTER O WITH DOUBLE ACUTE 0x0154 Ŕ LATIN CAPITAL LETTER R WITH ACUTE 0x0155 ŕ LATIN SMALL LETTER R WITH ACUTE 0x0156 Ŗ LATIN CAPITAL LETTER R WITH CEDILLA 0x0157 ŗ LATIN SMALL LETTER R WITH CEDILLA 0x0158 Ř LATIN CAPITAL LETTER R WITH CARON 0x0159 ř LATIN SMALL LETTER R WITH CARON 0x015A Ś LATIN CAPITAL LETTER S WITH ACUTE 0x015B ś LATIN SMALL LETTER S WITH ACUTE 0x015C Ŝ LATIN CAPITAL LETTER S WITH CIRCUMFLEX 0x015D ŝ LATIN SMALL LETTER S WITH CIRCUMFLEX 0x015E Ş LATIN CAPITAL LETTER S WITH CEDILLA 0x015F ş LATIN SMALL LETTER S WITH CEDILLA 0x0160 Š LATIN CAPITAL LETTER S WITH CARON 0x0161 š LATIN SMALL LETTER S WITH CARON 0x0162 Ţ LATIN CAPITAL LETTER T WITH CEDILLA 0x0163 ţ LATIN SMALL LETTER T WITH CEDILLA 0x0164 Ť LATIN CAPITAL LETTER T WITH CARON 0x0165 ť LATIN SMALL LETTER T WITH CARON 0x0166 Ŧ LATIN CAPITAL LETTER T WITH STROKE 0x0167 ŧ LATIN SMALL LETTER T WITH STROKE 0x0168 Ũ LATIN CAPITAL LETTER U WITH TILDE 0x0169 ũ LATIN SMALL LETTER U WITH TILDE 0x016A Ū LATIN CAPITAL LETTER U WITH MACRON 0x016B ū LATIN SMALL LETTER U WITH MACRON 0x016C Ŭ LATIN CAPITAL LETTER U WITH BREVE 0x016D ŭ LATIN SMALL LETTER U WITH BREVE 0x016E Ů LATIN CAPITAL LETTER U WITH RING ABOVE 0x016F ů LATIN SMALL LETTER U WITH RING ABOVE 0x0170 Ű LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0x0171 ű LATIN SMALL LETTER U WITH DOUBLE ACUTE 0x0172 Ų LATIN CAPITAL LETTER U WITH OGONEK 0x0173 ų LATIN SMALL LETTER U WITH OGONEK 0x0174 Ŵ LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0x0175 ŵ LATIN SMALL LETTER W WITH CIRCUMFLEX 0x0176 Ŷ LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0x0177 ŷ LATIN SMALL LETTER Y WITH CIRCUMFLEX 0x0178 Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS 0x0179 Ź LATIN CAPITAL LETTER Z WITH ACUTE 0x017A ź LATIN SMALL LETTER Z WITH ACUTE 0x017B Ż LATIN CAPITAL LETTER Z WITH DOT ABOVE 0x017C ż LATIN SMALL LETTER Z WITH DOT ABOVE 0x017D Ž LATIN CAPITAL LETTER Z WITH CARON 0x017E ž LATIN SMALL LETTER Z WITH CARON 0x018F Ə LATIN CAPITAL LETTER SCHWA 0x0192 ƒ LATIN SMALL LETTER F WITH HOOK 0x01A0 Ơ LATIN CAPITAL LETTER O WITH HORN 0x01A1 ơ LATIN SMALL LETTER O WITH HORN 0x01AF Ư LATIN CAPITAL LETTER U WITH HORN 0x01B0 ư LATIN SMALL LETTER U WITH HORN 0x01C4 DŽ LATIN CAPITAL LETTER DZ WITH CARON 0x01C5 Dž LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON 0x01C6 dž LATIN SMALL LETTER DZ WITH CARON 0x01C7 LJ LATIN CAPITAL LETTER LJ 0x01C8 Lj LATIN CAPITAL LETTER L WITH SMALL LETTER J 0x01C9 lj LATIN SMALL LETTER LJ 0x01CA NJ LATIN CAPITAL LETTER NJ 0x01CB Nj LATIN CAPITAL LETTER N WITH SMALL LETTER J 0x01CC nj LATIN SMALL LETTER NJ 0x01E6 Ǧ LATIN CAPITAL LETTER G WITH CARON 0x01E7 ǧ LATIN SMALL LETTER G WITH CARON 0x01EA Ǫ LATIN CAPITAL LETTER O WITH OGONEK 0x01EB ǫ LATIN SMALL LETTER O WITH OGONEK 0x01FA Ǻ LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE 0x01FB ǻ LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE 0x01FC Ǽ LATIN CAPITAL LETTER AE WITH ACUTE 0x01FD ǽ LATIN SMALL LETTER AE WITH ACUTE 0x01FE Ǿ LATIN CAPITAL LETTER O WITH STROKE AND ACUTE 0x01FF ǿ LATIN SMALL LETTER O WITH STROKE AND ACUTE 0x0200 Ȁ LATIN CAPITAL LETTER A WITH DOUBLE GRAVE 0x0201 ȁ LATIN SMALL LETTER A WITH DOUBLE GRAVE 0x0202 Ȃ LATIN CAPITAL LETTER A WITH INVERTED BREVE 0x0203 ȃ LATIN SMALL LETTER A WITH INVERTED BREVE 0x0204 Ȅ LATIN CAPITAL LETTER E WITH DOUBLE GRAVE 0x0205 ȅ LATIN SMALL LETTER E WITH DOUBLE GRAVE 0x0206 Ȇ LATIN CAPITAL LETTER E WITH INVERTED BREVE 0x0207 ȇ LATIN SMALL LETTER E WITH INVERTED BREVE 0x0208 Ȉ LATIN CAPITAL LETTER I WITH DOUBLE GRAVE 0x0209 ȉ LATIN SMALL LETTER I WITH DOUBLE GRAVE 0x020A Ȋ LATIN CAPITAL LETTER I WITH INVERTED BREVE 0x020B ȋ LATIN SMALL LETTER I WITH INVERTED BREVE 0x020C Ȍ LATIN CAPITAL LETTER O WITH DOUBLE GRAVE 0x020D ȍ LATIN SMALL LETTER O WITH DOUBLE GRAVE 0x020E Ȏ LATIN CAPITAL LETTER O WITH INVERTED BREVE 0x020F ȏ LATIN SMALL LETTER O WITH INVERTED BREVE 0x0210 Ȑ LATIN CAPITAL LETTER R WITH DOUBLE GRAVE 0x0211 ȑ LATIN SMALL LETTER R WITH DOUBLE GRAVE 0x0212 Ȓ LATIN CAPITAL LETTER R WITH INVERTED BREVE 0x0213 ȓ LATIN SMALL LETTER R WITH INVERTED BREVE 0x0214 Ȕ LATIN CAPITAL LETTER U WITH DOUBLE GRAVE 0x0215 ȕ LATIN SMALL LETTER U WITH DOUBLE GRAVE 0x0216 Ȗ LATIN CAPITAL LETTER U WITH INVERTED BREVE 0x0217 ȗ LATIN SMALL LETTER U WITH INVERTED BREVE 0x0218 Ș LATIN CAPITAL LETTER S WITH COMMA BELOW 0x0219 ș LATIN SMALL LETTER S WITH COMMA BELOW 0x021A Ț LATIN CAPITAL LETTER T WITH COMMA BELOW 0x021B ț LATIN SMALL LETTER T WITH COMMA BELOW 0x022A Ȫ LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON 0x022B ȫ LATIN SMALL LETTER O WITH DIAERESIS AND MACRON 0x022C Ȭ LATIN CAPITAL LETTER O WITH TILDE AND MACRON 0x022D ȭ LATIN SMALL LETTER O WITH TILDE AND MACRON 0x0230 Ȱ LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON 0x0231 ȱ LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON 0x0232 Ȳ LATIN CAPITAL LETTER Y WITH MACRON 0x0233 ȳ LATIN SMALL LETTER Y WITH MACRON 0x0237 ȷ LATIN SMALL LETTER DOTLESS J 0x0259 ə LATIN SMALL LETTER SCHWA 0x02B9 ʹ MODIFIER LETTER PRIME 0x02BA ʺ MODIFIER LETTER DOUBLE PRIME 0x02BC ʼ MODIFIER LETTER APOSTROPHE 0x02C7 ˇ CARON 0x02D8 ˘ BREVE 0x02D9 ˙ DOT ABOVE 0x02DB ˛ OGONEK 0x02DD ˝ DOUBLE ACUTE ACCENT 0x0300 ̀ COMBINING GRAVE ACCENT 0x0301 ́ COMBINING ACUTE ACCENT 0x0302 ̂ COMBINING CIRCUMFLEX ACCENT 0x0303 ̃ COMBINING TILDE 0x0304 ̄ COMBINING MACRON 0x0306 ̆ COMBINING BREVE 0x0307 ̇ COMBINING DOT ABOVE 0x0308 ̈ COMBINING DIAERESIS 0x0309 ̉ COMBINING HOOK ABOVE 0x030A ̊ COMBINING RING ABOVE 0x030B ̋ COMBINING DOUBLE ACUTE ACCENT 0x030C ̌ COMBINING CARON 0x030F ̏ COMBINING DOUBLE GRAVE ACCENT 0x0311 ̑ COMBINING INVERTED BREVE 0x0312 ̒ COMBINING TURNED COMMA ABOVE 0x031B ̛ COMBINING HORN 0x0323 ̣ COMBINING DOT BELOW 0x0324 ̤ COMBINING DIAERESIS BELOW 0x0326 ̦ COMBINING COMMA BELOW 0x0327 ̧ COMBINING CEDILLA 0x0328 ̨ COMBINING OGONEK 0x032E ̮ COMBINING BREVE BELOW 0x0331 ̱ COMBINING MACRON BELOW 0x0335 ̵ COMBINING SHORT STROKE OVERLAY 0x1E80 Ẁ LATIN CAPITAL LETTER W WITH GRAVE 0x1E81 ẁ LATIN SMALL LETTER W WITH GRAVE 0x1E82 Ẃ LATIN CAPITAL LETTER W WITH ACUTE 0x1E83 ẃ LATIN SMALL LETTER W WITH ACUTE 0x1E84 Ẅ LATIN CAPITAL LETTER W WITH DIAERESIS 0x1E85 ẅ LATIN SMALL LETTER W WITH DIAERESIS 0x1E9E ẞ LATIN CAPITAL LETTER SHARP S 0x1EA0 Ạ LATIN CAPITAL LETTER A WITH DOT BELOW 0x1EA1 ạ LATIN SMALL LETTER A WITH DOT BELOW 0x1EA2 Ả LATIN CAPITAL LETTER A WITH HOOK ABOVE 0x1EA3 ả LATIN SMALL LETTER A WITH HOOK ABOVE 0x1EA4 Ấ LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE 0x1EA5 ấ LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE 0x1EA6 Ầ LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE 0x1EA7 ầ LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE 0x1EA8 Ẩ LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 0x1EA9 ẩ LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 0x1EAA Ẫ LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE 0x1EAB ẫ LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE 0x1EAC Ậ LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW 0x1EAD ậ LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW 0x1EAE Ắ LATIN CAPITAL LETTER A WITH BREVE AND ACUTE 0x1EAF ắ LATIN SMALL LETTER A WITH BREVE AND ACUTE 0x1EB0 Ằ LATIN CAPITAL LETTER A WITH BREVE AND GRAVE 0x1EB1 ằ LATIN SMALL LETTER A WITH BREVE AND GRAVE 0x1EB2 Ẳ LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE 0x1EB3 ẳ LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE 0x1EB4 Ẵ LATIN CAPITAL LETTER A WITH BREVE AND TILDE 0x1EB5 ẵ LATIN SMALL LETTER A WITH BREVE AND TILDE 0x1EB6 Ặ LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW 0x1EB7 ặ LATIN SMALL LETTER A WITH BREVE AND DOT BELOW 0x1EB8 Ẹ LATIN CAPITAL LETTER E WITH DOT BELOW 0x1EB9 ẹ LATIN SMALL LETTER E WITH DOT BELOW 0x1EBA Ẻ LATIN CAPITAL LETTER E WITH HOOK ABOVE 0x1EBB ẻ LATIN SMALL LETTER E WITH HOOK ABOVE 0x1EBC Ẽ LATIN CAPITAL LETTER E WITH TILDE 0x1EBD ẽ LATIN SMALL LETTER E WITH TILDE 0x1EBE Ế LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE 0x1EBF ế LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE 0x1EC0 Ề LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE 0x1EC1 ề LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE 0x1EC2 Ể LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 0x1EC3 ể LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 0x1EC4 Ễ LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE 0x1EC5 ễ LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE 0x1EC6 Ệ LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW 0x1EC7 ệ LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW 0x1EC8 Ỉ LATIN CAPITAL LETTER I WITH HOOK ABOVE 0x1EC9 ỉ LATIN SMALL LETTER I WITH HOOK ABOVE 0x1ECA Ị LATIN CAPITAL LETTER I WITH DOT BELOW 0x1ECB ị LATIN SMALL LETTER I WITH DOT BELOW 0x1ECC Ọ LATIN CAPITAL LETTER O WITH DOT BELOW 0x1ECD ọ LATIN SMALL LETTER O WITH DOT BELOW 0x1ECE Ỏ LATIN CAPITAL LETTER O WITH HOOK ABOVE 0x1ECF ỏ LATIN SMALL LETTER O WITH HOOK ABOVE 0x1ED0 Ố LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE 0x1ED1 ố LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE 0x1ED2 Ồ LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE 0x1ED3 ồ LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE 0x1ED4 Ổ LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 0x1ED5 ổ LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 0x1ED6 Ỗ LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE 0x1ED7 ỗ LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE 0x1ED8 Ộ LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW 0x1ED9 ộ LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW 0x1EDA Ớ LATIN CAPITAL LETTER O WITH HORN AND ACUTE 0x1EDB ớ LATIN SMALL LETTER O WITH HORN AND ACUTE 0x1EDC Ờ LATIN CAPITAL LETTER O WITH HORN AND GRAVE 0x1EDD ờ LATIN SMALL LETTER O WITH HORN AND GRAVE 0x1EDE Ở LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE 0x1EDF ở LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE 0x1EE0 Ỡ LATIN CAPITAL LETTER O WITH HORN AND TILDE 0x1EE1 ỡ LATIN SMALL LETTER O WITH HORN AND TILDE 0x1EE2 Ợ LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW 0x1EE3 ợ LATIN SMALL LETTER O WITH HORN AND DOT BELOW 0x1EE4 Ụ LATIN CAPITAL LETTER U WITH DOT BELOW 0x1EE5 ụ LATIN SMALL LETTER U WITH DOT BELOW 0x1EE6 Ủ LATIN CAPITAL LETTER U WITH HOOK ABOVE 0x1EE7 ủ LATIN SMALL LETTER U WITH HOOK ABOVE 0x1EE8 Ứ LATIN CAPITAL LETTER U WITH HORN AND ACUTE 0x1EE9 ứ LATIN SMALL LETTER U WITH HORN AND ACUTE 0x1EEA Ừ LATIN CAPITAL LETTER U WITH HORN AND GRAVE 0x1EEB ừ LATIN SMALL LETTER U WITH HORN AND GRAVE 0x1EEC Ử LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE 0x1EED ử LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE 0x1EEE Ữ LATIN CAPITAL LETTER U WITH HORN AND TILDE 0x1EEF ữ LATIN SMALL LETTER U WITH HORN AND TILDE 0x1EF0 Ự LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW 0x1EF1 ự LATIN SMALL LETTER U WITH HORN AND DOT BELOW 0x1EF2 Ỳ LATIN CAPITAL LETTER Y WITH GRAVE 0x1EF3 ỳ LATIN SMALL LETTER Y WITH GRAVE 0x1EF4 Ỵ LATIN CAPITAL LETTER Y WITH DOT BELOW 0x1EF5 ỵ LATIN SMALL LETTER Y WITH DOT BELOW 0x1EF6 Ỷ LATIN CAPITAL LETTER Y WITH HOOK ABOVE 0x1EF7 ỷ LATIN SMALL LETTER Y WITH HOOK ABOVE 0x1EF8 Ỹ LATIN CAPITAL LETTER Y WITH TILDE 0x1EF9 ỹ LATIN SMALL LETTER Y WITH TILDE 0x2010 ‐ HYPHEN 0x2020 † DAGGER 0x2021 ‡ DOUBLE DAGGER 0x2030 ‰ PER MILLE SIGN 0x2032 ′ PRIME 0x2033 ″ DOUBLE PRIME 0x2052 ⁒ COMMERCIAL MINUS SIGN 0x20A1 ₡ COLON SIGN 0x20A3 ₣ FRENCH FRANC SIGN 0x20A4 ₤ LIRA SIGN 0x20A6 ₦ NAIRA SIGN 0x20A7 ₧ PESETA SIGN 0x20A9 ₩ WON SIGN 0x20AB ₫ DONG SIGN 0x20AD ₭ KIP SIGN 0x20B1 ₱ PESO SIGN 0x20B2 ₲ GUARANI SIGN 0x20B5 ₵ CEDI SIGN 0x20B9 ₹ INDIAN RUPEE SIGN 0x20BA ₺ TURKISH LIRA SIGN 0x20BC ₼ MANAT SIGN 0x20BD ₽ RUBLE SIGN 0x2116 № NUMERO SIGN 0x2122 ™ TRADE MARK SIGN 0x2219 ∙ BULLET OPERATOR 0x2248 ≈ ALMOST EQUAL TO 0x2260 ≠ NOT EQUAL TO 0x2264 ≤ LESS-THAN OR EQUAL TO 0x2265 ≥ GREATER-THAN OR EQUAL TO 0x27E8 ⟨ MATHEMATICAL LEFT ANGLE BRACKET 0x27E9 ⟩ MATHEMATICAL RIGHT ANGLE BRACKET 0xFB01 fi LATIN SMALL LIGATURE FI 0xFB02 fl LATIN SMALL LIGATURE FL f_f f_f_i f_f_l circumflexcomb_acutecomb circumflexcomb_gravecomb circumflexcomb_hookabovecomb circumflexcomb_tildecomb brevecomb_acutecomb brevecomb_gravecomb brevecomb_hookabovecomb brevecomb_tildecomb idotaccent caroncomb.alt zero.lf one.lf two.lf three.lf four.lf five.lf six.lf seven.lf eight.lf nine.lf periodcentered.loclCAT Lib/gftools/encodings/GF Glyph Sets/GF-latin-pro_optional-glyphs.nam000066400000000000000000000014331376445505300255730ustar00rootroot00000000000000 parenright.case hyphen.case slash.case at.case bracketleft.case backslash.case bracketright.case braceleft.case braceright.case guillemetleft.case periodcentered.case guillemetright.case endash.case emdash.case bullet.case guilsinglleft.case guilsinglright.case zero.sinf one.sinf two.sinf three.sinf four.sinf five.sinf six.sinf seven.sinf eight.sinf nine.sinf zero.sups one.sups two.sups three.sups four.sups five.sups six.sups seven.sups eight.sups nine.sups Lib/gftools/encodings/GF Glyph Sets/GF-latin-pro_unique-glyphs.nam000066400000000000000000000125021376445505300252530ustar00rootroot00000000000000#$ include GF-latin-plus_unique-glyphs.nam 0x02B9 ʹ MODIFIER LETTER PRIME 0x02BA ʺ MODIFIER LETTER DOUBLE PRIME 0x02BB ʻ MODIFIER LETTER TURNED COMMA 0x02BE ʾ MODIFIER LETTER RIGHT HALF RING 0x02BF ʿ MODIFIER LETTER LEFT HALF RING 0x02C8 ˈ MODIFIER LETTER VERTICAL LINE 0x02C9 ˉ MODIFIER LETTER MACRON 0x02CA ˊ MODIFIER LETTER ACUTE ACCENT 0x02CB ˋ MODIFIER LETTER GRAVE ACCENT 0x02CC ˌ MODIFIER LETTER LOW VERTICAL LINE 0x03C0 π GREEK SMALL LETTER PI 0x1E08 Ḉ LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE 0x1E09 ḉ LATIN SMALL LETTER C WITH CEDILLA AND ACUTE 0x1E0C Ḍ LATIN CAPITAL LETTER D WITH DOT BELOW 0x1E0D ḍ LATIN SMALL LETTER D WITH DOT BELOW 0x1E0E Ḏ LATIN CAPITAL LETTER D WITH LINE BELOW 0x1E0F ḏ LATIN SMALL LETTER D WITH LINE BELOW 0x1E14 Ḕ LATIN CAPITAL LETTER E WITH MACRON AND GRAVE 0x1E15 ḕ LATIN SMALL LETTER E WITH MACRON AND GRAVE 0x1E16 Ḗ LATIN CAPITAL LETTER E WITH MACRON AND ACUTE 0x1E17 ḗ LATIN SMALL LETTER E WITH MACRON AND ACUTE 0x1E1C Ḝ LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE 0x1E1D ḝ LATIN SMALL LETTER E WITH CEDILLA AND BREVE 0x1E20 Ḡ LATIN CAPITAL LETTER G WITH MACRON 0x1E21 ḡ LATIN SMALL LETTER G WITH MACRON 0x1E24 Ḥ LATIN CAPITAL LETTER H WITH DOT BELOW 0x1E25 ḥ LATIN SMALL LETTER H WITH DOT BELOW 0x1E2A Ḫ LATIN CAPITAL LETTER H WITH BREVE BELOW 0x1E2B ḫ LATIN SMALL LETTER H WITH BREVE BELOW 0x1E2E Ḯ LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE 0x1E2F ḯ LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE 0x1E36 Ḷ LATIN CAPITAL LETTER L WITH DOT BELOW 0x1E37 ḷ LATIN SMALL LETTER L WITH DOT BELOW 0x1E3A Ḻ LATIN CAPITAL LETTER L WITH LINE BELOW 0x1E3B ḻ LATIN SMALL LETTER L WITH LINE BELOW 0x1E42 Ṃ LATIN CAPITAL LETTER M WITH DOT BELOW 0x1E43 ṃ LATIN SMALL LETTER M WITH DOT BELOW 0x1E44 Ṅ LATIN CAPITAL LETTER N WITH DOT ABOVE 0x1E45 ṅ LATIN SMALL LETTER N WITH DOT ABOVE 0x1E46 Ṇ LATIN CAPITAL LETTER N WITH DOT BELOW 0x1E47 ṇ LATIN SMALL LETTER N WITH DOT BELOW 0x1E48 Ṉ LATIN CAPITAL LETTER N WITH LINE BELOW 0x1E49 ṉ LATIN SMALL LETTER N WITH LINE BELOW 0x1E4C Ṍ LATIN CAPITAL LETTER O WITH TILDE AND ACUTE 0x1E4D ṍ LATIN SMALL LETTER O WITH TILDE AND ACUTE 0x1E4E Ṏ LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS 0x1E4F ṏ LATIN SMALL LETTER O WITH TILDE AND DIAERESIS 0x1E50 Ṑ LATIN CAPITAL LETTER O WITH MACRON AND GRAVE 0x1E51 ṑ LATIN SMALL LETTER O WITH MACRON AND GRAVE 0x1E52 Ṓ LATIN CAPITAL LETTER O WITH MACRON AND ACUTE 0x1E53 ṓ LATIN SMALL LETTER O WITH MACRON AND ACUTE 0x1E5A Ṛ LATIN CAPITAL LETTER R WITH DOT BELOW 0x1E5B ṛ LATIN SMALL LETTER R WITH DOT BELOW 0x1E5E Ṟ LATIN CAPITAL LETTER R WITH LINE BELOW 0x1E5F ṟ LATIN SMALL LETTER R WITH LINE BELOW 0x1E60 Ṡ LATIN CAPITAL LETTER S WITH DOT ABOVE 0x1E61 ṡ LATIN SMALL LETTER S WITH DOT ABOVE 0x1E62 Ṣ LATIN CAPITAL LETTER S WITH DOT BELOW 0x1E63 ṣ LATIN SMALL LETTER S WITH DOT BELOW 0x1E64 Ṥ LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE 0x1E65 ṥ LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE 0x1E66 Ṧ LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE 0x1E67 ṧ LATIN SMALL LETTER S WITH CARON AND DOT ABOVE 0x1E68 Ṩ LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE 0x1E69 ṩ LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE 0x1E6C Ṭ LATIN CAPITAL LETTER T WITH DOT BELOW 0x1E6D ṭ LATIN SMALL LETTER T WITH DOT BELOW 0x1E6E Ṯ LATIN CAPITAL LETTER T WITH LINE BELOW 0x1E6F ṯ LATIN SMALL LETTER T WITH LINE BELOW 0x1E78 Ṹ LATIN CAPITAL LETTER U WITH TILDE AND ACUTE 0x1E79 ṹ LATIN SMALL LETTER U WITH TILDE AND ACUTE 0x1E7A Ṻ LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS 0x1E7B ṻ LATIN SMALL LETTER U WITH MACRON AND DIAERESIS 0x1E8E Ẏ LATIN CAPITAL LETTER Y WITH DOT ABOVE 0x1E8F ẏ LATIN SMALL LETTER Y WITH DOT ABOVE 0x1E92 Ẓ LATIN CAPITAL LETTER Z WITH DOT BELOW 0x1E93 ẓ LATIN SMALL LETTER Z WITH DOT BELOW 0x1E97 ẗ LATIN SMALL LETTER T WITH DIAERESIS 0x2007   FIGURE SPACE 0x2008   PUNCTUATION SPACE 0x2009   THIN SPACE 0x200A   HAIR SPACE 0x200B ​ ZERO WIDTH SPACE 0x2010 ‐ HYPHEN 0x2012 ‒ FIGURE DASH 0x2015 ― HORIZONTAL BAR 0x2032 ′ PRIME 0x2033 ″ DOUBLE PRIME 0x2070 ⁰ SUPERSCRIPT ZERO 0x2075 ⁵ SUPERSCRIPT FIVE 0x2076 ⁶ SUPERSCRIPT SIX 0x2077 ⁷ SUPERSCRIPT SEVEN 0x2078 ⁸ SUPERSCRIPT EIGHT 0x2079 ⁹ SUPERSCRIPT NINE 0x2080 ₀ SUBSCRIPT ZERO 0x2081 ₁ SUBSCRIPT ONE 0x2082 ₂ SUBSCRIPT TWO 0x2083 ₃ SUBSCRIPT THREE 0x2084 ₄ SUBSCRIPT FOUR 0x2085 ₅ SUBSCRIPT FIVE 0x2086 ₆ SUBSCRIPT SIX 0x2087 ₇ SUBSCRIPT SEVEN 0x2088 ₈ SUBSCRIPT EIGHT 0x2089 ₉ SUBSCRIPT NINE 0x2113 ℓ SCRIPT SMALL L 0x2126 Ω OHM SIGN 0x212E ℮ ESTIMATED SYMBOL 0x2202 ∂ PARTIAL DIFFERENTIAL 0x2205 ∅ EMPTY SET 0x2206 ∆ INCREMENT 0x220F ∏ N-ARY PRODUCT 0x2211 ∑ N-ARY SUMMATION 0x221A √ SQUARE ROOT 0x221E ∞ INFINITY 0x222B ∫ INTEGRAL 0x25CA ◊ LOZENGE zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr zero.subs one.subs two.subs three.subs four.subs five.subs six.subs seven.subs eight.subs nine.subs Lib/gftools/encodings/GF Glyph Sets/Greek/000077500000000000000000000000001376445505300205225ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Greek/GF-greek-ancient-musical-symbols.nam000066400000000000000000000404321376445505300273510ustar00rootroot00000000000000# GF Greek Ancient Musical Symbols # Generated by Alexei Vanyashin 10 Feb 2017 0x1D000 𝀀 BYZANTINE MUSICAL SYMBOL PSILI 0x1D001 𝀁 BYZANTINE MUSICAL SYMBOL DASEIA 0x1D002 𝀂 BYZANTINE MUSICAL SYMBOL PERISPOMENI 0x1D003 𝀃 BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON 0x1D004 𝀄 BYZANTINE MUSICAL SYMBOL OXEIA DIPLI 0x1D005 𝀅 BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON 0x1D006 𝀆 BYZANTINE MUSICAL SYMBOL VAREIA DIPLI 0x1D007 𝀇 BYZANTINE MUSICAL SYMBOL KATHISTI 0x1D008 𝀈 BYZANTINE MUSICAL SYMBOL SYRMATIKI 0x1D009 𝀉 BYZANTINE MUSICAL SYMBOL PARAKLITIKI 0x1D00A 𝀊 BYZANTINE MUSICAL SYMBOL YPOKRISIS 0x1D00B 𝀋 BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI 0x1D00C 𝀌 BYZANTINE MUSICAL SYMBOL KREMASTI 0x1D00D 𝀍 BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON 0x1D00E 𝀎 BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON 0x1D00F 𝀏 BYZANTINE MUSICAL SYMBOL TELEIA 0x1D010 𝀐 BYZANTINE MUSICAL SYMBOL KENTIMATA 0x1D011 𝀑 BYZANTINE MUSICAL SYMBOL APOSTROFOS 0x1D012 𝀒 BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI 0x1D013 𝀓 BYZANTINE MUSICAL SYMBOL SYNEVMA 0x1D014 𝀔 BYZANTINE MUSICAL SYMBOL THITA 0x1D015 𝀕 BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION 0x1D016 𝀖 BYZANTINE MUSICAL SYMBOL GORGON ARCHAION 0x1D017 𝀗 BYZANTINE MUSICAL SYMBOL PSILON 0x1D018 𝀘 BYZANTINE MUSICAL SYMBOL CHAMILON 0x1D019 𝀙 BYZANTINE MUSICAL SYMBOL VATHY 0x1D01A 𝀚 BYZANTINE MUSICAL SYMBOL ISON ARCHAION 0x1D01B 𝀛 BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION 0x1D01C 𝀜 BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION 0x1D01D 𝀝 BYZANTINE MUSICAL SYMBOL SAXIMATA 0x1D01E 𝀞 BYZANTINE MUSICAL SYMBOL PARICHON 0x1D01F 𝀟 BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA 0x1D020 𝀠 BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION 0x1D021 𝀡 BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION 0x1D022 𝀢 BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION 0x1D023 𝀣 BYZANTINE MUSICAL SYMBOL APOTHEMA 0x1D024 𝀤 BYZANTINE MUSICAL SYMBOL KLASMA 0x1D025 𝀥 BYZANTINE MUSICAL SYMBOL REVMA 0x1D026 𝀦 BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION 0x1D027 𝀧 BYZANTINE MUSICAL SYMBOL TINAGMA 0x1D028 𝀨 BYZANTINE MUSICAL SYMBOL ANATRICHISMA 0x1D029 𝀩 BYZANTINE MUSICAL SYMBOL SEISMA 0x1D02A 𝀪 BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION 0x1D02B 𝀫 BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU 0x1D02C 𝀬 BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION 0x1D02D 𝀭 BYZANTINE MUSICAL SYMBOL THEMA 0x1D02E 𝀮 BYZANTINE MUSICAL SYMBOL LEMOI 0x1D02F 𝀯 BYZANTINE MUSICAL SYMBOL DYO 0x1D030 𝀰 BYZANTINE MUSICAL SYMBOL TRIA 0x1D031 𝀱 BYZANTINE MUSICAL SYMBOL TESSERA 0x1D032 𝀲 BYZANTINE MUSICAL SYMBOL KRATIMATA 0x1D033 𝀳 BYZANTINE MUSICAL SYMBOL APESO EXO NEO 0x1D034 𝀴 BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION 0x1D035 𝀵 BYZANTINE MUSICAL SYMBOL IMIFTHORA 0x1D036 𝀶 BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION 0x1D037 𝀷 BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON 0x1D038 𝀸 BYZANTINE MUSICAL SYMBOL PELASTON 0x1D039 𝀹 BYZANTINE MUSICAL SYMBOL PSIFISTON 0x1D03A 𝀺 BYZANTINE MUSICAL SYMBOL KONTEVMA 0x1D03B 𝀻 BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION 0x1D03C 𝀼 BYZANTINE MUSICAL SYMBOL RAPISMA 0x1D03D 𝀽 BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION 0x1D03E 𝀾 BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION 0x1D03F 𝀿 BYZANTINE MUSICAL SYMBOL ICHADIN 0x1D040 𝁀 BYZANTINE MUSICAL SYMBOL NANA 0x1D041 𝁁 BYZANTINE MUSICAL SYMBOL PETASMA 0x1D042 𝁂 BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO 0x1D043 𝁃 BYZANTINE MUSICAL SYMBOL TROMIKON ALLO 0x1D044 𝁄 BYZANTINE MUSICAL SYMBOL STRAGGISMATA 0x1D045 𝁅 BYZANTINE MUSICAL SYMBOL GRONTHISMATA 0x1D046 𝁆 BYZANTINE MUSICAL SYMBOL ISON NEO 0x1D047 𝁇 BYZANTINE MUSICAL SYMBOL OLIGON NEO 0x1D048 𝁈 BYZANTINE MUSICAL SYMBOL OXEIA NEO 0x1D049 𝁉 BYZANTINE MUSICAL SYMBOL PETASTI 0x1D04A 𝁊 BYZANTINE MUSICAL SYMBOL KOUFISMA 0x1D04B 𝁋 BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA 0x1D04C 𝁌 BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA 0x1D04D 𝁍 BYZANTINE MUSICAL SYMBOL PELASTON NEO 0x1D04E 𝁎 BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO 0x1D04F 𝁏 BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO 0x1D050 𝁐 BYZANTINE MUSICAL SYMBOL YPSILI 0x1D051 𝁑 BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO 0x1D052 𝁒 BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO 0x1D053 𝁓 BYZANTINE MUSICAL SYMBOL YPORROI 0x1D054 𝁔 BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON 0x1D055 𝁕 BYZANTINE MUSICAL SYMBOL ELAFRON 0x1D056 𝁖 BYZANTINE MUSICAL SYMBOL CHAMILI 0x1D057 𝁗 BYZANTINE MUSICAL SYMBOL MIKRON ISON 0x1D058 𝁘 BYZANTINE MUSICAL SYMBOL VAREIA NEO 0x1D059 𝁙 BYZANTINE MUSICAL SYMBOL PIASMA NEO 0x1D05A 𝁚 BYZANTINE MUSICAL SYMBOL PSIFISTON NEO 0x1D05B 𝁛 BYZANTINE MUSICAL SYMBOL OMALON 0x1D05C 𝁜 BYZANTINE MUSICAL SYMBOL ANTIKENOMA 0x1D05D 𝁝 BYZANTINE MUSICAL SYMBOL LYGISMA 0x1D05E 𝁞 BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO 0x1D05F 𝁟 BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO 0x1D060 𝁠 BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA 0x1D061 𝁡 BYZANTINE MUSICAL SYMBOL KYLISMA 0x1D062 𝁢 BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA 0x1D063 𝁣 BYZANTINE MUSICAL SYMBOL TROMIKON NEO 0x1D064 𝁤 BYZANTINE MUSICAL SYMBOL EKSTREPTON 0x1D065 𝁥 BYZANTINE MUSICAL SYMBOL SYNAGMA NEO 0x1D066 𝁦 BYZANTINE MUSICAL SYMBOL SYRMA 0x1D067 𝁧 BYZANTINE MUSICAL SYMBOL CHOREVMA NEO 0x1D068 𝁨 BYZANTINE MUSICAL SYMBOL EPEGERMA 0x1D069 𝁩 BYZANTINE MUSICAL SYMBOL SEISMA NEO 0x1D06A 𝁪 BYZANTINE MUSICAL SYMBOL XIRON KLASMA 0x1D06B 𝁫 BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON 0x1D06C 𝁬 BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA 0x1D06D 𝁭 BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA 0x1D06E 𝁮 BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA 0x1D06F 𝁯 BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA 0x1D070 𝁰 BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA 0x1D071 𝁱 BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA 0x1D072 𝁲 BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON 0x1D073 𝁳 BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON 0x1D074 𝁴 BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON 0x1D075 𝁵 BYZANTINE MUSICAL SYMBOL OYRANISMA NEO 0x1D076 𝁶 BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO 0x1D077 𝁷 BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO 0x1D078 𝁸 BYZANTINE MUSICAL SYMBOL THEMA APLOUN 0x1D079 𝁹 BYZANTINE MUSICAL SYMBOL THES KAI APOTHES 0x1D07A 𝁺 BYZANTINE MUSICAL SYMBOL KATAVASMA 0x1D07B 𝁻 BYZANTINE MUSICAL SYMBOL ENDOFONON 0x1D07C 𝁼 BYZANTINE MUSICAL SYMBOL YFEN KATO 0x1D07D 𝁽 BYZANTINE MUSICAL SYMBOL YFEN ANO 0x1D07E 𝁾 BYZANTINE MUSICAL SYMBOL STAVROS 0x1D07F 𝁿 BYZANTINE MUSICAL SYMBOL KLASMA ANO 0x1D080 𝂀 BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION 0x1D081 𝂁 BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION 0x1D082 𝂂 BYZANTINE MUSICAL SYMBOL KRATIMA ALLO 0x1D083 𝂃 BYZANTINE MUSICAL SYMBOL KRATIMA NEO 0x1D084 𝂄 BYZANTINE MUSICAL SYMBOL APODERMA NEO 0x1D085 𝂅 BYZANTINE MUSICAL SYMBOL APLI 0x1D086 𝂆 BYZANTINE MUSICAL SYMBOL DIPLI 0x1D087 𝂇 BYZANTINE MUSICAL SYMBOL TRIPLI 0x1D088 𝂈 BYZANTINE MUSICAL SYMBOL TETRAPLI 0x1D089 𝂉 BYZANTINE MUSICAL SYMBOL KORONIS 0x1D08A 𝂊 BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU 0x1D08B 𝂋 BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON 0x1D08C 𝂌 BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON 0x1D08D 𝂍 BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON 0x1D08E 𝂎 BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU 0x1D08F 𝂏 BYZANTINE MUSICAL SYMBOL GORGON NEO ANO 0x1D090 𝂐 BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA 0x1D091 𝂑 BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA 0x1D092 𝂒 BYZANTINE MUSICAL SYMBOL DIGORGON 0x1D093 𝂓 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO 0x1D094 𝂔 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO 0x1D095 𝂕 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA 0x1D096 𝂖 BYZANTINE MUSICAL SYMBOL TRIGORGON 0x1D097 𝂗 BYZANTINE MUSICAL SYMBOL ARGON 0x1D098 𝂘 BYZANTINE MUSICAL SYMBOL IMIDIARGON 0x1D099 𝂙 BYZANTINE MUSICAL SYMBOL DIARGON 0x1D09A 𝂚 BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI 0x1D09B 𝂛 BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI 0x1D09C 𝂜 BYZANTINE MUSICAL SYMBOL AGOGI ARGI 0x1D09D 𝂝 BYZANTINE MUSICAL SYMBOL AGOGI METRIA 0x1D09E 𝂞 BYZANTINE MUSICAL SYMBOL AGOGI MESI 0x1D09F 𝂟 BYZANTINE MUSICAL SYMBOL AGOGI GORGI 0x1D0A0 𝂠 BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI 0x1D0A1 𝂡 BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI 0x1D0A2 𝂢 BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS 0x1D0A3 𝂣 BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS 0x1D0A4 𝂤 BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS 0x1D0A5 𝂥 BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS 0x1D0A6 𝂦 BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS 0x1D0A7 𝂧 BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS 0x1D0A8 𝂨 BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS 0x1D0A9 𝂩 BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS 0x1D0AA 𝂪 BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS 0x1D0AB 𝂫 BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS 0x1D0AC 𝂬 BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS 0x1D0AD 𝂭 BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS 0x1D0AE 𝂮 BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS 0x1D0AF 𝂯 BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS 0x1D0B0 𝂰 BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS 0x1D0B1 𝂱 BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS 0x1D0B2 𝂲 BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS 0x1D0B3 𝂳 BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS 0x1D0B4 𝂴 BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN 0x1D0B5 𝂵 BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN 0x1D0B6 𝂶 BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU 0x1D0B7 𝂷 BYZANTINE MUSICAL SYMBOL IMIFONON 0x1D0B8 𝂸 BYZANTINE MUSICAL SYMBOL IMIFTHORON 0x1D0B9 𝂹 BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU 0x1D0BA 𝂺 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA 0x1D0BB 𝂻 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA 0x1D0BC 𝂼 BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS 0x1D0BD 𝂽 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI 0x1D0BE 𝂾 BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI 0x1D0BF 𝂿 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE 0x1D0C0 𝃀 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO 0x1D0C1 𝃁 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO 0x1D0C2 𝃂 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO 0x1D0C3 𝃃 BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS 0x1D0C4 𝃄 BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS 0x1D0C5 𝃅 BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS 0x1D0C6 𝃆 BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI 0x1D0C7 𝃇 BYZANTINE MUSICAL SYMBOL FTHORA NENANO 0x1D0C8 𝃈 BYZANTINE MUSICAL SYMBOL CHROA ZYGOS 0x1D0C9 𝃉 BYZANTINE MUSICAL SYMBOL CHROA KLITON 0x1D0CA 𝃊 BYZANTINE MUSICAL SYMBOL CHROA SPATHI 0x1D0CB 𝃋 BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION 0x1D0CC 𝃌 BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA 0x1D0CD 𝃍 BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION 0x1D0CE 𝃎 BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION 0x1D0CF 𝃏 BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION 0x1D0D0 𝃐 BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA 0x1D0D1 𝃑 BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA 0x1D0D2 𝃒 BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA 0x1D0D3 𝃓 BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA 0x1D0D4 𝃔 BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA 0x1D0D5 𝃕 BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA 0x1D0D6 𝃖 BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA 0x1D0D7 𝃗 BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA 0x1D0D8 𝃘 BYZANTINE MUSICAL SYMBOL GENIKI DIESIS 0x1D0D9 𝃙 BYZANTINE MUSICAL SYMBOL GENIKI YFESIS 0x1D0DA 𝃚 BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI 0x1D0DB 𝃛 BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI 0x1D0DC 𝃜 BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI 0x1D0DD 𝃝 BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS 0x1D0DE 𝃞 BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS 0x1D0DF 𝃟 BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU 0x1D0E0 𝃠 BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU 0x1D0E1 𝃡 BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU 0x1D0E2 𝃢 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS 0x1D0E3 𝃣 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU 0x1D0E4 𝃤 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU 0x1D0E5 𝃥 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU 0x1D0E6 𝃦 BYZANTINE MUSICAL SYMBOL DIGRAMMA GG 0x1D0E7 𝃧 BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU 0x1D0E8 𝃨 BYZANTINE MUSICAL SYMBOL STIGMA 0x1D0E9 𝃩 BYZANTINE MUSICAL SYMBOL ARKTIKO PA 0x1D0EA 𝃪 BYZANTINE MUSICAL SYMBOL ARKTIKO VOU 0x1D0EB 𝃫 BYZANTINE MUSICAL SYMBOL ARKTIKO GA 0x1D0EC 𝃬 BYZANTINE MUSICAL SYMBOL ARKTIKO DI 0x1D0ED 𝃭 BYZANTINE MUSICAL SYMBOL ARKTIKO KE 0x1D0EE 𝃮 BYZANTINE MUSICAL SYMBOL ARKTIKO ZO 0x1D0EF 𝃯 BYZANTINE MUSICAL SYMBOL ARKTIKO NI 0x1D0F0 𝃰 BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO 0x1D0F1 𝃱 BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO 0x1D0F2 𝃲 BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO 0x1D0F3 𝃳 BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO 0x1D0F4 𝃴 BYZANTINE MUSICAL SYMBOL KLASMA KATO 0x1D0F5 𝃵 BYZANTINE MUSICAL SYMBOL GORGON NEO KATO 0x1D200 𝈀 GREEK VOCAL NOTATION SYMBOL-1 0x1D201 𝈁 GREEK VOCAL NOTATION SYMBOL-2 0x1D202 𝈂 GREEK VOCAL NOTATION SYMBOL-3 0x1D203 𝈃 GREEK VOCAL NOTATION SYMBOL-4 0x1D204 𝈄 GREEK VOCAL NOTATION SYMBOL-5 0x1D205 𝈅 GREEK VOCAL NOTATION SYMBOL-6 0x1D206 𝈆 GREEK VOCAL NOTATION SYMBOL-7 0x1D207 𝈇 GREEK VOCAL NOTATION SYMBOL-8 0x1D208 𝈈 GREEK VOCAL NOTATION SYMBOL-9 0x1D209 𝈉 GREEK VOCAL NOTATION SYMBOL-10 0x1D20A 𝈊 GREEK VOCAL NOTATION SYMBOL-11 0x1D20B 𝈋 GREEK VOCAL NOTATION SYMBOL-12 0x1D20C 𝈌 GREEK VOCAL NOTATION SYMBOL-13 0x1D20D 𝈍 GREEK VOCAL NOTATION SYMBOL-14 0x1D20E 𝈎 GREEK VOCAL NOTATION SYMBOL-15 0x1D20F 𝈏 GREEK VOCAL NOTATION SYMBOL-16 0x1D210 𝈐 GREEK VOCAL NOTATION SYMBOL-17 0x1D211 𝈑 GREEK VOCAL NOTATION SYMBOL-18 0x1D212 𝈒 GREEK VOCAL NOTATION SYMBOL-19 0x1D213 𝈓 GREEK VOCAL NOTATION SYMBOL-20 0x1D214 𝈔 GREEK VOCAL NOTATION SYMBOL-21 0x1D215 𝈕 GREEK VOCAL NOTATION SYMBOL-22 0x1D216 𝈖 GREEK VOCAL NOTATION SYMBOL-23 0x1D217 𝈗 GREEK VOCAL NOTATION SYMBOL-24 0x1D218 𝈘 GREEK VOCAL NOTATION SYMBOL-50 0x1D219 𝈙 GREEK VOCAL NOTATION SYMBOL-51 0x1D21A 𝈚 GREEK VOCAL NOTATION SYMBOL-52 0x1D21B 𝈛 GREEK VOCAL NOTATION SYMBOL-53 0x1D21C 𝈜 GREEK VOCAL NOTATION SYMBOL-54 0x1D21D 𝈝 GREEK INSTRUMENTAL NOTATION SYMBOL-1 0x1D21E 𝈞 GREEK INSTRUMENTAL NOTATION SYMBOL-2 0x1D21F 𝈟 GREEK INSTRUMENTAL NOTATION SYMBOL-4 0x1D220 𝈠 GREEK INSTRUMENTAL NOTATION SYMBOL-5 0x1D221 𝈡 GREEK INSTRUMENTAL NOTATION SYMBOL-7 0x1D222 𝈢 GREEK INSTRUMENTAL NOTATION SYMBOL-8 0x1D223 𝈣 GREEK INSTRUMENTAL NOTATION SYMBOL-11 0x1D224 𝈤 GREEK INSTRUMENTAL NOTATION SYMBOL-12 0x1D225 𝈥 GREEK INSTRUMENTAL NOTATION SYMBOL-13 0x1D226 𝈦 GREEK INSTRUMENTAL NOTATION SYMBOL-14 0x1D227 𝈧 GREEK INSTRUMENTAL NOTATION SYMBOL-17 0x1D228 𝈨 GREEK INSTRUMENTAL NOTATION SYMBOL-18 0x1D229 𝈩 GREEK INSTRUMENTAL NOTATION SYMBOL-19 0x1D22A 𝈪 GREEK INSTRUMENTAL NOTATION SYMBOL-23 0x1D22B 𝈫 GREEK INSTRUMENTAL NOTATION SYMBOL-24 0x1D22C 𝈬 GREEK INSTRUMENTAL NOTATION SYMBOL-25 0x1D22D 𝈭 GREEK INSTRUMENTAL NOTATION SYMBOL-26 0x1D22E 𝈮 GREEK INSTRUMENTAL NOTATION SYMBOL-27 0x1D22F 𝈯 GREEK INSTRUMENTAL NOTATION SYMBOL-29 0x1D230 𝈰 GREEK INSTRUMENTAL NOTATION SYMBOL-30 0x1D231 𝈱 GREEK INSTRUMENTAL NOTATION SYMBOL-32 0x1D232 𝈲 GREEK INSTRUMENTAL NOTATION SYMBOL-36 0x1D233 𝈳 GREEK INSTRUMENTAL NOTATION SYMBOL-37 0x1D234 𝈴 GREEK INSTRUMENTAL NOTATION SYMBOL-38 0x1D235 𝈵 GREEK INSTRUMENTAL NOTATION SYMBOL-39 0x1D236 𝈶 GREEK INSTRUMENTAL NOTATION SYMBOL-40 0x1D237 𝈷 GREEK INSTRUMENTAL NOTATION SYMBOL-42 0x1D238 𝈸 GREEK INSTRUMENTAL NOTATION SYMBOL-43 0x1D239 𝈹 GREEK INSTRUMENTAL NOTATION SYMBOL-45 0x1D23A 𝈺 GREEK INSTRUMENTAL NOTATION SYMBOL-47 0x1D23B 𝈻 GREEK INSTRUMENTAL NOTATION SYMBOL-48 0x1D23C 𝈼 GREEK INSTRUMENTAL NOTATION SYMBOL-49 0x1D23D 𝈽 GREEK INSTRUMENTAL NOTATION SYMBOL-50 0x1D23E 𝈾 GREEK INSTRUMENTAL NOTATION SYMBOL-51 0x1D23F 𝈿 GREEK INSTRUMENTAL NOTATION SYMBOL-52 0x1D240 𝉀 GREEK INSTRUMENTAL NOTATION SYMBOL-53 0x1D241 𝉁 GREEK INSTRUMENTAL NOTATION SYMBOL-54 0x1D242 𝉂 COMBINING GREEK MUSICAL TRISEME 0x1D243 𝉃 COMBINING GREEK MUSICAL TETRASEME 0x1D244 𝉄 COMBINING GREEK MUSICAL PENTASEME 0x1D245 𝉅 GREEK MUSICAL LEIMMA Lib/gftools/encodings/GF Glyph Sets/Greek/GF-greek-archaic.nam000066400000000000000000000127251376445505300242050ustar00rootroot00000000000000# GF Greek Archaic # Generated by Alexei Vanyashin 10 Feb 2017 0x0370 Ͱ GREEK CAPITAL LETTER HETA 0x0371 ͱ GREEK SMALL LETTER HETA 0x0372 Ͳ GREEK CAPITAL LETTER ARCHAIC SAMPI 0x0373 ͳ GREEK SMALL LETTER ARCHAIC SAMPI 0x0376 Ͷ GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA 0x0377 ͷ GREEK SMALL LETTER PAMPHYLIAN DIGAMMA 0x037B ͻ GREEK SMALL REVERSED LUNATE SIGMA SYMBOL 0x037C ͼ GREEK SMALL DOTTED LUNATE SIGMA SYMBOL 0x037D ͽ GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL 0x03D0 ϐ GREEK BETA SYMBOL 0x03D1 ϑ GREEK THETA SYMBOL 0x03D2 ϒ GREEK UPSILON WITH HOOK SYMBOL 0x03D3 ϓ GREEK UPSILON WITH ACUTE AND HOOK SYMBOL 0x03D4 ϔ GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL 0x03D5 ϕ GREEK PHI SYMBOL 0x03D6 ϖ GREEK PI SYMBOL 0x03D8 Ϙ GREEK LETTER ARCHAIC KOPPA 0x03D9 ϙ GREEK SMALL LETTER ARCHAIC KOPPA 0x03F0 ϰ GREEK KAPPA SYMBOL 0x03F1 ϱ GREEK RHO SYMBOL 0x03F2 ϲ GREEK LUNATE SIGMA SYMBOL 0x03F3 ϳ GREEK LETTER YOT 0x03F4 ϴ GREEK CAPITAL THETA SYMBOL 0x03F5 ϵ GREEK LUNATE EPSILON SYMBOL 0x03F6 ϶ GREEK REVERSED LUNATE EPSILON SYMBOL 0x03F7 Ϸ GREEK CAPITAL LETTER SHO 0x03F8 ϸ GREEK SMALL LETTER SHO 0x03F9 Ϲ GREEK CAPITAL LUNATE SIGMA SYMBOL 0x03FA Ϻ GREEK CAPITAL LETTER SAN 0x03FB ϻ GREEK SMALL LETTER SAN 0x03FC ϼ GREEK RHO WITH STROKE SYMBOL 0x03FD Ͻ GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL 0x03FE Ͼ GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL 0x03FF Ͽ GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL 0x25A1 □ WHITE SQUARE 0x2605 ★ BLACK STAR 0x2609 ☉ SUN 0x260A ☊ ASCENDING NODE 0x260B ☋ DESCENDING NODE 0x260C ☌ CONJUNCTION 0x260D ☍ OPPOSITION 0x2627 ☧ CHI RHO 0x2629 ☩ CROSS OF JERUSALEM 0x263D ☽ FIRST QUARTER MOON 0x263E ☾ LAST QUARTER MOON 0x263F ☿ MERCURY 0x2640 ♀ FEMALE SIGN 0x2641 ♁ EARTH 0x2642 ♂ MALE SIGN 0x2643 ♃ JUPITER 0x2644 ♄ SATURN 0x2645 ♅ URANUS 0x2646 ♆ NEPTUNE 0x2647 ♇ PLUTO 0x2648 ♈ ARIES 0x2649 ♉ TAURUS 0x264A ♊ GEMINI 0x264B ♋ CANCER 0x264C ♌ LEO 0x264D ♍ VIRGO 0x264E ♎ LIBRA 0x264F ♏ SCORPIUS 0x2650 ♐ SAGITTARIUS 0x2651 ♑ CAPRICORN 0x2652 ♒ AQUARIUS 0x2653 ♓ PISCES 0x27C0 ⟀ THREE DIMENSIONAL ANGLE 0x27C1 ⟁ WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE 0x10140 𐅀 GREEK ACROPHONIC ATTIC ONE QUARTER 0x10141 𐅁 GREEK ACROPHONIC ATTIC ONE HALF 0x10142 𐅂 GREEK ACROPHONIC ATTIC ONE DRACHMA 0x10143 𐅃 GREEK ACROPHONIC ATTIC FIVE 0x10144 𐅄 GREEK ACROPHONIC ATTIC FIFTY 0x10145 𐅅 GREEK ACROPHONIC ATTIC FIVE HUNDRED 0x10146 𐅆 GREEK ACROPHONIC ATTIC FIVE THOUSAND 0x10147 𐅇 GREEK ACROPHONIC ATTIC FIFTY THOUSAND 0x10148 𐅈 GREEK ACROPHONIC ATTIC FIVE TALENTS 0x10149 𐅉 GREEK ACROPHONIC ATTIC TEN TALENTS 0x1014A 𐅊 GREEK ACROPHONIC ATTIC FIFTY TALENTS 0x1014B 𐅋 GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS 0x1014C 𐅌 GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS 0x1014D 𐅍 GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS 0x1014E 𐅎 GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS 0x1014F 𐅏 GREEK ACROPHONIC ATTIC FIVE STATERS 0x10150 𐅐 GREEK ACROPHONIC ATTIC TEN STATERS 0x10151 𐅑 GREEK ACROPHONIC ATTIC FIFTY STATERS 0x10152 𐅒 GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS 0x10153 𐅓 GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS 0x10154 𐅔 GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS 0x10155 𐅕 GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS 0x10156 𐅖 GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS 0x10157 𐅗 GREEK ACROPHONIC ATTIC TEN MNAS 0x10158 𐅘 GREEK ACROPHONIC HERAEUM ONE PLETHRON 0x10159 𐅙 GREEK ACROPHONIC THESPIAN ONE 0x1015A 𐅚 GREEK ACROPHONIC HERMIONIAN ONE 0x1015B 𐅛 GREEK ACROPHONIC EPIDAUREAN TWO 0x1015C 𐅜 GREEK ACROPHONIC THESPIAN TWO 0x1015D 𐅝 GREEK ACROPHONIC CYRENAIC TWO DRACHMAS 0x1015E 𐅞 GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS 0x1015F 𐅟 GREEK ACROPHONIC TROEZENIAN FIVE 0x10160 𐅠 GREEK ACROPHONIC TROEZENIAN TEN 0x10161 𐅡 GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM 0x10162 𐅢 GREEK ACROPHONIC HERMIONIAN TEN 0x10163 𐅣 GREEK ACROPHONIC MESSENIAN TEN 0x10164 𐅤 GREEK ACROPHONIC THESPIAN TEN 0x10165 𐅥 GREEK ACROPHONIC THESPIAN THIRTY 0x10166 𐅦 GREEK ACROPHONIC TROEZENIAN FIFTY 0x10167 𐅧 GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM 0x10168 𐅨 GREEK ACROPHONIC HERMIONIAN FIFTY 0x10169 𐅩 GREEK ACROPHONIC THESPIAN FIFTY 0x1016A 𐅪 GREEK ACROPHONIC THESPIAN ONE HUNDRED 0x1016B 𐅫 GREEK ACROPHONIC THESPIAN THREE HUNDRED 0x1016C 𐅬 GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED 0x1016D 𐅭 GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED 0x1016E 𐅮 GREEK ACROPHONIC THESPIAN FIVE HUNDRED 0x1016F 𐅯 GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED 0x10170 𐅰 GREEK ACROPHONIC NAXIAN FIVE HUNDRED 0x10171 𐅱 GREEK ACROPHONIC THESPIAN ONE THOUSAND 0x10172 𐅲 GREEK ACROPHONIC THESPIAN FIVE THOUSAND 0x10173 𐅳 GREEK ACROPHONIC DELPHIC FIVE MNAS 0x10174 𐅴 GREEK ACROPHONIC STRATIAN FIFTY MNAS 0x10175 𐅵 GREEK ONE HALF SIGN 0x10176 𐅶 GREEK ONE HALF SIGN ALTERNATE FORM 0x10177 𐅷 GREEK TWO THIRDS SIGN 0x10178 𐅸 GREEK THREE QUARTERS SIGN 0x10179 𐅹 GREEK YEAR SIGN 0x1017A 𐅺 GREEK TALENT SIGN 0x1017B 𐅻 GREEK DRACHMA SIGN 0x1017C 𐅼 GREEK OBOL SIGN 0x1017D 𐅽 GREEK TWO OBOLS SIGN 0x1017E 𐅾 GREEK THREE OBOLS SIGN 0x1017F 𐅿 GREEK FOUR OBOLS SIGN 0x10180 𐆀 GREEK FIVE OBOLS SIGN 0x10181 𐆁 GREEK METRETES SIGN 0x10182 𐆂 GREEK KYATHOS BASE SIGN 0x10183 𐆃 GREEK LITRA SIGN 0x10184 𐆄 GREEK OUNKIA SIGN 0x10185 𐆅 GREEK XESTES SIGN 0x10186 𐆆 GREEK ARTABE SIGN 0x10187 𐆇 GREEK AROURA SIGN 0x10188 𐆈 GREEK GRAMMA SIGN 0x10189 𐆉 GREEK TRYBLION BASE SIGN 0x1018A 𐆊 GREEK ZERO SIGN Lib/gftools/encodings/GF Glyph Sets/Greek/GF-greek-coptic.nam000066400000000000000000000130371376445505300240710ustar00rootroot00000000000000# GF Greek Coptic # Generated by Alexei Vanyashin 10 Feb 2017 0x03E2 Ϣ COPTIC CAPITAL LETTER SHEI 0x03E3 ϣ COPTIC SMALL LETTER SHEI 0x03E4 Ϥ COPTIC CAPITAL LETTER FEI 0x03E5 ϥ COPTIC SMALL LETTER FEI 0x03E6 Ϧ COPTIC CAPITAL LETTER KHEI 0x03E7 ϧ COPTIC SMALL LETTER KHEI 0x03E8 Ϩ COPTIC CAPITAL LETTER HORI 0x03E9 ϩ COPTIC SMALL LETTER HORI 0x03EA Ϫ COPTIC CAPITAL LETTER GANGIA 0x03EB ϫ COPTIC SMALL LETTER GANGIA 0x03EC Ϭ COPTIC CAPITAL LETTER SHIMA 0x03ED ϭ COPTIC SMALL LETTER SHIMA 0x03EE Ϯ COPTIC CAPITAL LETTER DEI 0x03EF ϯ COPTIC SMALL LETTER DEI 0x2C80 Ⲁ COPTIC CAPITAL LETTER ALFA 0x2C81 ⲁ COPTIC SMALL LETTER ALFA 0x2C82 Ⲃ COPTIC CAPITAL LETTER VIDA 0x2C83 ⲃ COPTIC SMALL LETTER VIDA 0x2C84 Ⲅ COPTIC CAPITAL LETTER GAMMA 0x2C85 ⲅ COPTIC SMALL LETTER GAMMA 0x2C86 Ⲇ COPTIC CAPITAL LETTER DALDA 0x2C87 ⲇ COPTIC SMALL LETTER DALDA 0x2C88 Ⲉ COPTIC CAPITAL LETTER EIE 0x2C89 ⲉ COPTIC SMALL LETTER EIE 0x2C8A Ⲋ COPTIC CAPITAL LETTER SOU 0x2C8B ⲋ COPTIC SMALL LETTER SOU 0x2C8C Ⲍ COPTIC CAPITAL LETTER ZATA 0x2C8D ⲍ COPTIC SMALL LETTER ZATA 0x2C8E Ⲏ COPTIC CAPITAL LETTER HATE 0x2C8F ⲏ COPTIC SMALL LETTER HATE 0x2C90 Ⲑ COPTIC CAPITAL LETTER THETHE 0x2C91 ⲑ COPTIC SMALL LETTER THETHE 0x2C92 Ⲓ COPTIC CAPITAL LETTER IAUDA 0x2C93 ⲓ COPTIC SMALL LETTER IAUDA 0x2C94 Ⲕ COPTIC CAPITAL LETTER KAPA 0x2C95 ⲕ COPTIC SMALL LETTER KAPA 0x2C96 Ⲗ COPTIC CAPITAL LETTER LAULA 0x2C97 ⲗ COPTIC SMALL LETTER LAULA 0x2C98 Ⲙ COPTIC CAPITAL LETTER MI 0x2C99 ⲙ COPTIC SMALL LETTER MI 0x2C9A Ⲛ COPTIC CAPITAL LETTER NI 0x2C9B ⲛ COPTIC SMALL LETTER NI 0x2C9C Ⲝ COPTIC CAPITAL LETTER KSI 0x2C9D ⲝ COPTIC SMALL LETTER KSI 0x2C9E Ⲟ COPTIC CAPITAL LETTER O 0x2C9F ⲟ COPTIC SMALL LETTER O 0x2CA0 Ⲡ COPTIC CAPITAL LETTER PI 0x2CA1 ⲡ COPTIC SMALL LETTER PI 0x2CA2 Ⲣ COPTIC CAPITAL LETTER RO 0x2CA3 ⲣ COPTIC SMALL LETTER RO 0x2CA4 Ⲥ COPTIC CAPITAL LETTER SIMA 0x2CA5 ⲥ COPTIC SMALL LETTER SIMA 0x2CA6 Ⲧ COPTIC CAPITAL LETTER TAU 0x2CA7 ⲧ COPTIC SMALL LETTER TAU 0x2CA8 Ⲩ COPTIC CAPITAL LETTER UA 0x2CA9 ⲩ COPTIC SMALL LETTER UA 0x2CAA Ⲫ COPTIC CAPITAL LETTER FI 0x2CAB ⲫ COPTIC SMALL LETTER FI 0x2CAC Ⲭ COPTIC CAPITAL LETTER KHI 0x2CAD ⲭ COPTIC SMALL LETTER KHI 0x2CAE Ⲯ COPTIC CAPITAL LETTER PSI 0x2CAF ⲯ COPTIC SMALL LETTER PSI 0x2CB0 Ⲱ COPTIC CAPITAL LETTER OOU 0x2CB1 ⲱ COPTIC SMALL LETTER OOU 0x2CB2 Ⲳ COPTIC CAPITAL LETTER DIALECT-P ALEF 0x2CB3 ⲳ COPTIC SMALL LETTER DIALECT-P ALEF 0x2CB4 Ⲵ COPTIC CAPITAL LETTER OLD COPTIC AIN 0x2CB5 ⲵ COPTIC SMALL LETTER OLD COPTIC AIN 0x2CB6 Ⲷ COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE 0x2CB7 ⲷ COPTIC SMALL LETTER CRYPTOGRAMMIC EIE 0x2CB8 Ⲹ COPTIC CAPITAL LETTER DIALECT-P KAPA 0x2CB9 ⲹ COPTIC SMALL LETTER DIALECT-P KAPA 0x2CBA Ⲻ COPTIC CAPITAL LETTER DIALECT-P NI 0x2CBB ⲻ COPTIC SMALL LETTER DIALECT-P NI 0x2CBC Ⲽ COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI 0x2CBD ⲽ COPTIC SMALL LETTER CRYPTOGRAMMIC NI 0x2CBE Ⲿ COPTIC CAPITAL LETTER OLD COPTIC OOU 0x2CBF ⲿ COPTIC SMALL LETTER OLD COPTIC OOU 0x2CC0 Ⳁ COPTIC CAPITAL LETTER SAMPI 0x2CC1 ⳁ COPTIC SMALL LETTER SAMPI 0x2CC2 Ⳃ COPTIC CAPITAL LETTER CROSSED SHEI 0x2CC3 ⳃ COPTIC SMALL LETTER CROSSED SHEI 0x2CC4 Ⳅ COPTIC CAPITAL LETTER OLD COPTIC SHEI 0x2CC5 ⳅ COPTIC SMALL LETTER OLD COPTIC SHEI 0x2CC6 Ⳇ COPTIC CAPITAL LETTER OLD COPTIC ESH 0x2CC7 ⳇ COPTIC SMALL LETTER OLD COPTIC ESH 0x2CC8 Ⳉ COPTIC CAPITAL LETTER AKHMIMIC KHEI 0x2CC9 ⳉ COPTIC SMALL LETTER AKHMIMIC KHEI 0x2CCA Ⳋ COPTIC CAPITAL LETTER DIALECT-P HORI 0x2CCB ⳋ COPTIC SMALL LETTER DIALECT-P HORI 0x2CCC Ⳍ COPTIC CAPITAL LETTER OLD COPTIC HORI 0x2CCD ⳍ COPTIC SMALL LETTER OLD COPTIC HORI 0x2CCE Ⳏ COPTIC CAPITAL LETTER OLD COPTIC HA 0x2CCF ⳏ COPTIC SMALL LETTER OLD COPTIC HA 0x2CD0 Ⳑ COPTIC CAPITAL LETTER L-SHAPED HA 0x2CD1 ⳑ COPTIC SMALL LETTER L-SHAPED HA 0x2CD2 Ⳓ COPTIC CAPITAL LETTER OLD COPTIC HEI 0x2CD3 ⳓ COPTIC SMALL LETTER OLD COPTIC HEI 0x2CD4 Ⳕ COPTIC CAPITAL LETTER OLD COPTIC HAT 0x2CD5 ⳕ COPTIC SMALL LETTER OLD COPTIC HAT 0x2CD6 Ⳗ COPTIC CAPITAL LETTER OLD COPTIC GANGIA 0x2CD7 ⳗ COPTIC SMALL LETTER OLD COPTIC GANGIA 0x2CD8 Ⳙ COPTIC CAPITAL LETTER OLD COPTIC DJA 0x2CD9 ⳙ COPTIC SMALL LETTER OLD COPTIC DJA 0x2CDA Ⳛ COPTIC CAPITAL LETTER OLD COPTIC SHIMA 0x2CDB ⳛ COPTIC SMALL LETTER OLD COPTIC SHIMA 0x2CDC Ⳝ COPTIC CAPITAL LETTER OLD NUBIAN SHIMA 0x2CDD ⳝ COPTIC SMALL LETTER OLD NUBIAN SHIMA 0x2CDE Ⳟ COPTIC CAPITAL LETTER OLD NUBIAN NGI 0x2CDF ⳟ COPTIC SMALL LETTER OLD NUBIAN NGI 0x2CE0 Ⳡ COPTIC CAPITAL LETTER OLD NUBIAN NYI 0x2CE1 ⳡ COPTIC SMALL LETTER OLD NUBIAN NYI 0x2CE2 Ⳣ COPTIC CAPITAL LETTER OLD NUBIAN WAU 0x2CE3 ⳣ COPTIC SMALL LETTER OLD NUBIAN WAU 0x2CE4 ⳤ COPTIC SYMBOL KAI 0x2CE5 ⳥ COPTIC SYMBOL MI RO 0x2CE6 ⳦ COPTIC SYMBOL PI RO 0x2CE7 ⳧ COPTIC SYMBOL STAUROS 0x2CE8 ⳨ COPTIC SYMBOL TAU RO 0x2CE9 ⳩ COPTIC SYMBOL KHI RO 0x2CEA ⳪ COPTIC SYMBOL SHIMA SIMA 0x2CEB Ⳬ COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI 0x2CEC ⳬ COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI 0x2CED Ⳮ COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA 0x2CEE ⳮ COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA 0x2CEF ⳯ COPTIC COMBINING NI ABOVE 0x2CF0 ⳰ COPTIC COMBINING SPIRITUS ASPER 0x2CF1 ⳱ COPTIC COMBINING SPIRITUS LENIS 0x2CF2 Ⳳ COPTIC CAPITAL LETTER BOHAIRIC KHEI 0x2CF3 ⳳ COPTIC SMALL LETTER BOHAIRIC KHEI 0x2CF9 ⳹ COPTIC OLD NUBIAN FULL STOP 0x2CFA ⳺ COPTIC OLD NUBIAN DIRECT QUESTION MARK 0x2CFB ⳻ COPTIC OLD NUBIAN INDIRECT QUESTION MARK 0x2CFC ⳼ COPTIC OLD NUBIAN VERSE DIVIDER 0x2CFD ⳽ COPTIC FRACTION ONE HALF 0x2CFE ⳾ COPTIC FULL STOP 0x2CFF ⳿ COPTIC MORPHOLOGICAL DIVIDER Lib/gftools/encodings/GF Glyph Sets/Greek/GF-greek-core.nam000066400000000000000000000057651376445505300235510ustar00rootroot00000000000000# GF Greek Core # Generated by Alexei Vanyashin 10 Feb 2017 #$ include ../GF-latin-core_unique-glyphs.nam 0x0374 ʹ GREEK NUMERAL SIGN 0x0375 ͵ GREEK LOWER NUMERAL SIGN 0x037E ; GREEK QUESTION MARK 0x0384 ΄ GREEK TONOS 0x0385 ΅ GREEK DIALYTIKA TONOS 0x0386 Ά GREEK CAPITAL LETTER ALPHA WITH TONOS 0x0387 · GREEK ANO TELEIA 0x0388 Έ GREEK CAPITAL LETTER EPSILON WITH TONOS 0x0389 Ή GREEK CAPITAL LETTER ETA WITH TONOS 0x038A Ί GREEK CAPITAL LETTER IOTA WITH TONOS 0x038C Ό GREEK CAPITAL LETTER OMICRON WITH TONOS 0x038E Ύ GREEK CAPITAL LETTER UPSILON WITH TONOS 0x038F Ώ GREEK CAPITAL LETTER OMEGA WITH TONOS 0x0390 ΐ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 0x0391 Α GREEK CAPITAL LETTER ALPHA 0x0392 Β GREEK CAPITAL LETTER BETA 0x0393 Γ GREEK CAPITAL LETTER GAMMA 0x0394 Δ GREEK CAPITAL LETTER DELTA 0x0395 Ε GREEK CAPITAL LETTER EPSILON 0x0396 Ζ GREEK CAPITAL LETTER ZETA 0x0397 Η GREEK CAPITAL LETTER ETA 0x0398 Θ GREEK CAPITAL LETTER THETA 0x0399 Ι GREEK CAPITAL LETTER IOTA 0x039A Κ GREEK CAPITAL LETTER KAPPA 0x039B Λ GREEK CAPITAL LETTER LAMDA 0x039C Μ GREEK CAPITAL LETTER MU 0x039D Ν GREEK CAPITAL LETTER NU 0x039E Ξ GREEK CAPITAL LETTER XI 0x039F Ο GREEK CAPITAL LETTER OMICRON 0x03A0 Π GREEK CAPITAL LETTER PI 0x03A1 Ρ GREEK CAPITAL LETTER RHO 0x03A3 Σ GREEK CAPITAL LETTER SIGMA 0x03A4 Τ GREEK CAPITAL LETTER TAU 0x03A5 Υ GREEK CAPITAL LETTER UPSILON 0x03A6 Φ GREEK CAPITAL LETTER PHI 0x03A7 Χ GREEK CAPITAL LETTER CHI 0x03A8 Ψ GREEK CAPITAL LETTER PSI 0x03A9 Ω GREEK CAPITAL LETTER OMEGA 0x03AA Ϊ GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 0x03AB Ϋ GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 0x03AC ά GREEK SMALL LETTER ALPHA WITH TONOS 0x03AD έ GREEK SMALL LETTER EPSILON WITH TONOS 0x03AE ή GREEK SMALL LETTER ETA WITH TONOS 0x03AF ί GREEK SMALL LETTER IOTA WITH TONOS 0x03B0 ΰ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 0x03B1 α GREEK SMALL LETTER ALPHA 0x03B2 β GREEK SMALL LETTER BETA 0x03B3 γ GREEK SMALL LETTER GAMMA 0x03B4 δ GREEK SMALL LETTER DELTA 0x03B5 ε GREEK SMALL LETTER EPSILON 0x03B6 ζ GREEK SMALL LETTER ZETA 0x03B7 η GREEK SMALL LETTER ETA 0x03B8 θ GREEK SMALL LETTER THETA 0x03B9 ι GREEK SMALL LETTER IOTA 0x03BA κ GREEK SMALL LETTER KAPPA 0x03BB λ GREEK SMALL LETTER LAMDA 0x03BC μ GREEK SMALL LETTER MU 0x03BD ν GREEK SMALL LETTER NU 0x03BE ξ GREEK SMALL LETTER XI 0x03BF ο GREEK SMALL LETTER OMICRON 0x03C0 π GREEK SMALL LETTER PI 0x03C1 ρ GREEK SMALL LETTER RHO 0x03C2 ς GREEK SMALL LETTER FINAL SIGMA 0x03C3 σ GREEK SMALL LETTER SIGMA 0x03C4 τ GREEK SMALL LETTER TAU 0x03C5 υ GREEK SMALL LETTER UPSILON 0x03C6 φ GREEK SMALL LETTER PHI 0x03C7 χ GREEK SMALL LETTER CHI 0x03C8 ψ GREEK SMALL LETTER PSI 0x03C9 ω GREEK SMALL LETTER OMEGA 0x03CA ϊ GREEK SMALL LETTER IOTA WITH DIALYTIKA 0x03CB ϋ GREEK SMALL LETTER UPSILON WITH DIALYTIKA 0x03CC ό GREEK SMALL LETTER OMICRON WITH TONOS 0x03CD ύ GREEK SMALL LETTER UPSILON WITH TONOS 0x03CE ώ GREEK SMALL LETTER OMEGA WITH TONOS 0x03CF Ϗ GREEK CAPITAL KAI SYMBOL 0x03D7 ϗ GREEK KAI SYMBOL Lib/gftools/encodings/GF Glyph Sets/Greek/GF-greek-expert.nam000066400000000000000000000205731376445505300241220ustar00rootroot00000000000000# GF Greek Expert # This set contains no characters with unicode values. See Filter Lists folder #$ include GF-greek-plus.nam gamma_gamma lambda_lambda numeral-greek.sc lowernumeral-greek.sc questiongreek.sc tonos.sc dieresistonos.sc anoteleia.sc iotadieresistonos.sc alphatonos.sc epsilontonos.sc etatonos.sc iotatonos.sc upsilondieresistonos.sc alpha.sc beta.sc gamma.sc delta.sc epsilon.sc zeta.sc eta.sc theta.sc iota.sc kappa.sc lambda.sc mu.sc nu.sc xi.sc omicron.sc pi.sc rho.sc sigma.sc tau.sc upsilon.sc phi.sc chi.sc psi.sc omega.sc iotadieresis.sc upsilondieresis.sc omicrontonos.sc upsilontonos.sc omegatonos.sc kaiSymbol.sc stigma.sc digamma.sc koppa.sc sampi.sc alphapsili.sc alphadasia.sc alphapsilivaria.sc alphadasiavaria.sc alphapsilioxia.sc alphadasiaoxia.sc alphapsiliperispomeni.sc alphadasiaperispomeni.sc epsilonpsili.sc epsilondasia.sc epsilonpsilivaria.sc epsilondasiavaria.sc epsilonpsilioxia.sc epsilondasiaoxia.sc etapsili.sc etadasia.sc etapsilivaria.sc etadasiavaria.sc etapsilioxia.sc etadasiaoxia.sc etapsiliperispomeni.sc etadasiaperispomeni.sc iotapsili.sc iotadasia.sc iotapsilivaria.sc iotadasiavaria.sc iotapsilioxia.sc iotadasiaoxia.sc iotapsiliperispomeni.sc iotadasiaperispomeni.sc omicronpsili.sc omicrondasia.sc omicronpsilivaria.sc omicrondasiavaria.sc omicronpsilioxia.sc omicrondasiaoxia.sc upsilonpsili.sc upsilondasia.sc upsilonpsilivaria.sc upsilondasiavaria.sc upsilonpsilioxia.sc upsilondasiaoxia.sc upsilonpsiliperispomeni.sc upsilondasiaperispomeni.sc omegapsili.sc omegadasia.sc omegapsilivaria.sc omegadasiavaria.sc omegapsilioxia.sc omegadasiaoxia.sc omegapsiliperispomeni.sc omegadasiaperispomeni.sc alphavaria.sc alphaoxia.sc epsilonvaria.sc epsilonoxia.sc etavaria.sc etaoxia.sc iotavaria.sc iotaoxia.sc omicronvaria.sc omicronoxia.sc upsilonvaria.sc upsilonoxia.sc omegavaria.sc omegaoxia.sc alphapsiliypogegrammeni.sc alphapsiliypogegrammeni.sc.ss01 alphadasiaypogegrammeni.sc alphadasiaypogegrammeni.sc.ss01 alphapsilivariaypogegrammeni.sc alphapsilivariaypogegrammeni.sc.ss01 alphadasiavariaypogegrammeni.sc alphadasiavariaypogegrammeni.sc.ss01 alphapsilioxiaypogegrammeni.sc alphapsilioxiaypogegrammeni.sc.ss01 alphadasiaoxiaypogegrammeni.sc alphadasiaoxiaypogegrammeni.sc.ss01 alphapsiliperispomeniypogegrammeni.sc alphapsiliperispomeniypogegrammeni.sc.ss01 alphadasiaperispomeniypogegrammeni.sc alphadasiaperispomeniypogegrammeni.sc.ss01 Alphapsiliprosgegrammeni.sc.ss01 Alphadasiaprosgegrammeni.sc.ss01 Alphapsilivariaprosgegrammeni.sc.ss01 Alphadasiavariaprosgegrammeni.sc.ss01 Alphapsilioxiaprosgegrammeni.sc.ss01 Alphadasiaoxiaprosgegrammeni.sc.ss01 Alphapsiliperispomeniprosgegrammeni.sc.ss01 Alphadasiaperispomeniprosgegrammeni.sc.ss01 etapsiliypogegrammeni.sc etapsiliypogegrammeni.sc.ss01 etadasiaypogegrammeni.sc etadasiaypogegrammeni.sc.ss01 etapsilivariaypogegrammeni.sc etapsilivariaypogegrammeni.sc.ss01 etadasiavariaypogegrammeni.sc etadasiavariaypogegrammeni.sc.ss01 etapsilioxiaypogegrammeni.sc etapsilioxiaypogegrammeni.sc.ss01 etadasiaoxiaypogegrammeni.sc etadasiaoxiaypogegrammeni.sc.ss01 etapsiliperispomeniypogegrammeni.sc etapsiliperispomeniypogegrammeni.sc.ss01 etadasiaperispomeniypogegrammeni.sc etadasiaperispomeniypogegrammeni.sc.ss01 Etapsiliprosgegrammeni.sc.ss01 Etadasiaprosgegrammeni.sc.ss01 Etapsilivariaprosgegrammeni.sc.ss01 Etadasiavariaprosgegrammeni.sc.ss01 Etapsilioxiaprosgegrammeni.sc.ss01 Etadasiaoxiaprosgegrammeni.sc.ss01 Etapsiliperispomeniprosgegrammeni.sc.ss01 Etadasiaperispomeniprosgegrammeni.sc.ss01 omegapsiliypogegrammeni.sc omegapsiliypogegrammeni.sc.ss01 omegadasiaypogegrammeni.sc omegadasiaypogegrammeni.sc.ss01 omegapsilivariaypogegrammeni.sc omegapsilivariaypogegrammeni.sc.ss01 omegadasiavariaypogegrammeni.sc omegadasiavariaypogegrammeni.sc.ss01 omegapsilioxiaypogegrammeni.sc omegapsilioxiaypogegrammeni.sc.ss01 omegadasiaoxiaypogegrammeni.sc omegadasiaoxiaypogegrammeni.sc.ss01 omegapsiliperispomeniypogegrammeni.sc omegapsiliperispomeniypogegrammeni.sc.ss01 omegadasiaperispomeniypogegrammeni.sc omegadasiaperispomeniypogegrammeni.sc.ss01 Omegapsiliprosgegrammeni.sc.ss01 Omegadasiaprosgegrammeni.sc.ss01 Omegapsilivariaprosgegrammeni.sc.ss01 Omegadasiavariaprosgegrammeni.sc.ss01 Omegapsilioxiaprosgegrammeni.sc.ss01 Omegadasiaoxiaprosgegrammeni.sc.ss01 Omegapsiliperispomeniprosgegrammeni.sc.ss01 Omegadasiaperispomeniprosgegrammeni.sc.ss01 alphavrachy.sc alphamacron.sc alphavariaypogegrammeni.sc alphavariaypogegrammeni.sc.ss01 alphaypogegrammeni.sc alphaypogegrammeni.sc.ss01 alphaoxiaypogegrammeni.sc alphaoxiaypogegrammeni.sc.ss01 alphaperispomeni.sc alphaperispomeniypogegrammeni.sc alphaperispomeniypogegrammeni.sc.ss01 Alphaprosgegrammeni.sc.ss01 prosgegrammeni.sc etavariaypogegrammeni.sc etavariaypogegrammeni.sc.ss01 etaypogegrammeni.sc etaypogegrammeni.sc.ss01 etaoxiaypogegrammeni.sc etaoxiaypogegrammeni.sc.ss01 etaperispomeni.sc etaperispomeniypogegrammeni.sc etaperispomeniypogegrammeni.sc.ss01 Etaprosgegrammeni.sc.ss01 iotavrachy.sc iotamacron.sc iotadialytikavaria.sc iotadialytikaoxia.sc iotaperispomeni.sc iotadialytikaperispomeni.sc upsilonvrachy.sc upsilonmacron.sc upsilondialytikavaria.sc upsilondialytikaoxia.sc rhopsili.sc rhodasia.sc upsilonperispomeni.sc upsilondialytikaperispomeni.sc omegavariaypogegrammeni.sc omegavariaypogegrammeni.sc.ss01 omegaypogegrammeni.sc omegaypogegrammeni.sc.ss01 omegaoxiaypogegrammeni.sc omegaoxiaypogegrammeni.sc.ss01 omegaperispomeni.sc omegaperispomeniypogegrammeni.sc omegaperispomeniypogegrammeni.sc.ss01 Omegaprosgegrammeni.sc.ss01 Alpha.sups Beta.sups Gamma.sups Delta.sups Epsilon.sups Zeta.sups Eta.sups Theta.sups Iota.sups Kappa.sups Lambda.sups Mu.sups Nu.sups Xi.sups Omicron.sups Pi.sups Rho.sups Sigma.sups Tau.sups Upsilon.sups Phi.sups Chi.sups Psi.sups Omega.sups alpha.sups beta.sups gamma.sups delta.sups epsilon.sups zeta.sups eta.sups theta.sups iota.sups kappa.sups lambda.sups mu.sups nu.sups xi.sups omicron.sups pi.sups rho.sups sigmafinal.sups sigma.sups tau.sups upsilon.sups phi.sups chi.sups psi.sups omega.sups Lib/gftools/encodings/GF Glyph Sets/Greek/GF-greek-plus.nam000066400000000000000000000347531376445505300236030ustar00rootroot00000000000000# GF Greek Plus # Generated by Alexei Vanyashin 10 Feb 2017 # For Iota Adscript as .ss01 see Filter Lists folder #$ include GF-greek-core.nam 0x0342 ͂ COMBINING GREEK PERISPOMENI 0x0343 ̓ COMBINING GREEK KORONIS 0x0344 ̈́ COMBINING GREEK DIALYTIKA TONOS 0x0345 ͅ COMBINING GREEK YPOGEGRAMMENI 0x037A ͺ GREEK YPOGEGRAMMENI 0x1F00 ἀ GREEK SMALL LETTER ALPHA WITH PSILI 0x1F01 ἁ GREEK SMALL LETTER ALPHA WITH DASIA 0x1F02 ἂ GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA 0x1F03 ἃ GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA 0x1F04 ἄ GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA 0x1F05 ἅ GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA 0x1F06 ἆ GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI 0x1F07 ἇ GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI 0x1F08 Ἀ GREEK CAPITAL LETTER ALPHA WITH PSILI 0x1F09 Ἁ GREEK CAPITAL LETTER ALPHA WITH DASIA 0x1F0A Ἂ GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA 0x1F0B Ἃ GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA 0x1F0C Ἄ GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA 0x1F0D Ἅ GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA 0x1F0E Ἆ GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI 0x1F0F Ἇ GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI 0x1F10 ἐ GREEK SMALL LETTER EPSILON WITH PSILI 0x1F11 ἑ GREEK SMALL LETTER EPSILON WITH DASIA 0x1F12 ἒ GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA 0x1F13 ἓ GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA 0x1F14 ἔ GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA 0x1F15 ἕ GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA 0x1F18 Ἐ GREEK CAPITAL LETTER EPSILON WITH PSILI 0x1F19 Ἑ GREEK CAPITAL LETTER EPSILON WITH DASIA 0x1F1A Ἒ GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA 0x1F1B Ἓ GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA 0x1F1C Ἔ GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA 0x1F1D Ἕ GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA 0x1F20 ἠ GREEK SMALL LETTER ETA WITH PSILI 0x1F21 ἡ GREEK SMALL LETTER ETA WITH DASIA 0x1F22 ἢ GREEK SMALL LETTER ETA WITH PSILI AND VARIA 0x1F23 ἣ GREEK SMALL LETTER ETA WITH DASIA AND VARIA 0x1F24 ἤ GREEK SMALL LETTER ETA WITH PSILI AND OXIA 0x1F25 ἥ GREEK SMALL LETTER ETA WITH DASIA AND OXIA 0x1F26 ἦ GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI 0x1F27 ἧ GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI 0x1F28 Ἠ GREEK CAPITAL LETTER ETA WITH PSILI 0x1F29 Ἡ GREEK CAPITAL LETTER ETA WITH DASIA 0x1F2A Ἢ GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA 0x1F2B Ἣ GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA 0x1F2C Ἤ GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA 0x1F2D Ἥ GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA 0x1F2E Ἦ GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI 0x1F2F Ἧ GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI 0x1F30 ἰ GREEK SMALL LETTER IOTA WITH PSILI 0x1F31 ἱ GREEK SMALL LETTER IOTA WITH DASIA 0x1F32 ἲ GREEK SMALL LETTER IOTA WITH PSILI AND VARIA 0x1F33 ἳ GREEK SMALL LETTER IOTA WITH DASIA AND VARIA 0x1F34 ἴ GREEK SMALL LETTER IOTA WITH PSILI AND OXIA 0x1F35 ἵ GREEK SMALL LETTER IOTA WITH DASIA AND OXIA 0x1F36 ἶ GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI 0x1F37 ἷ GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI 0x1F38 Ἰ GREEK CAPITAL LETTER IOTA WITH PSILI 0x1F39 Ἱ GREEK CAPITAL LETTER IOTA WITH DASIA 0x1F3A Ἲ GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA 0x1F3B Ἳ GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA 0x1F3C Ἴ GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA 0x1F3D Ἵ GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA 0x1F3E Ἶ GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI 0x1F3F Ἷ GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI 0x1F40 ὀ GREEK SMALL LETTER OMICRON WITH PSILI 0x1F41 ὁ GREEK SMALL LETTER OMICRON WITH DASIA 0x1F42 ὂ GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA 0x1F43 ὃ GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA 0x1F44 ὄ GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA 0x1F45 ὅ GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA 0x1F48 Ὀ GREEK CAPITAL LETTER OMICRON WITH PSILI 0x1F49 Ὁ GREEK CAPITAL LETTER OMICRON WITH DASIA 0x1F4A Ὂ GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA 0x1F4B Ὃ GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA 0x1F4C Ὄ GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA 0x1F4D Ὅ GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA 0x1F50 ὐ GREEK SMALL LETTER UPSILON WITH PSILI 0x1F51 ὑ GREEK SMALL LETTER UPSILON WITH DASIA 0x1F52 ὒ GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA 0x1F53 ὓ GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA 0x1F54 ὔ GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA 0x1F55 ὕ GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA 0x1F56 ὖ GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI 0x1F57 ὗ GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI 0x1F59 Ὑ GREEK CAPITAL LETTER UPSILON WITH DASIA 0x1F5B Ὓ GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA 0x1F5D Ὕ GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA 0x1F5F Ὗ GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI 0x1F60 ὠ GREEK SMALL LETTER OMEGA WITH PSILI 0x1F61 ὡ GREEK SMALL LETTER OMEGA WITH DASIA 0x1F62 ὢ GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA 0x1F63 ὣ GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA 0x1F64 ὤ GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA 0x1F65 ὥ GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA 0x1F66 ὦ GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI 0x1F67 ὧ GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI 0x1F68 Ὠ GREEK CAPITAL LETTER OMEGA WITH PSILI 0x1F69 Ὡ GREEK CAPITAL LETTER OMEGA WITH DASIA 0x1F6A Ὢ GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA 0x1F6B Ὣ GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA 0x1F6C Ὤ GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA 0x1F6D Ὥ GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA 0x1F6E Ὦ GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI 0x1F6F Ὧ GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI 0x1F70 ὰ GREEK SMALL LETTER ALPHA WITH VARIA 0x1F71 ά GREEK SMALL LETTER ALPHA WITH OXIA 0x1F72 ὲ GREEK SMALL LETTER EPSILON WITH VARIA 0x1F73 έ GREEK SMALL LETTER EPSILON WITH OXIA 0x1F74 ὴ GREEK SMALL LETTER ETA WITH VARIA 0x1F75 ή GREEK SMALL LETTER ETA WITH OXIA 0x1F76 ὶ GREEK SMALL LETTER IOTA WITH VARIA 0x1F77 ί GREEK SMALL LETTER IOTA WITH OXIA 0x1F78 ὸ GREEK SMALL LETTER OMICRON WITH VARIA 0x1F79 ό GREEK SMALL LETTER OMICRON WITH OXIA 0x1F7A ὺ GREEK SMALL LETTER UPSILON WITH VARIA 0x1F7B ύ GREEK SMALL LETTER UPSILON WITH OXIA 0x1F7C ὼ GREEK SMALL LETTER OMEGA WITH VARIA 0x1F7D ώ GREEK SMALL LETTER OMEGA WITH OXIA 0x1F80 ᾀ GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI 0x1F81 ᾁ GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI 0x1F82 ᾂ GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI 0x1F83 ᾃ GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI 0x1F84 ᾄ GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI 0x1F85 ᾅ GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI 0x1F86 ᾆ GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 0x1F87 ᾇ GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 0x1F88 ᾈ GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 0x1F89 ᾉ GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 0x1F8A ᾊ GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 0x1F8B ᾋ GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 0x1F8C ᾌ GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 0x1F8D ᾍ GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 0x1F8E ᾎ GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 0x1F8F ᾏ GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 0x1F90 ᾐ GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI 0x1F91 ᾑ GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI 0x1F92 ᾒ GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI 0x1F93 ᾓ GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI 0x1F94 ᾔ GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI 0x1F95 ᾕ GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI 0x1F96 ᾖ GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 0x1F97 ᾗ GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 0x1F98 ᾘ GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 0x1F99 ᾙ GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 0x1F9A ᾚ GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 0x1F9B ᾛ GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 0x1F9C ᾜ GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 0x1F9D ᾝ GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 0x1F9E ᾞ GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 0x1F9F ᾟ GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 0x1FA0 ᾠ GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI 0x1FA1 ᾡ GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI 0x1FA2 ᾢ GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI 0x1FA3 ᾣ GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI 0x1FA4 ᾤ GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI 0x1FA5 ᾥ GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI 0x1FA6 ᾦ GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 0x1FA7 ᾧ GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 0x1FA8 ᾨ GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 0x1FA9 ᾩ GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 0x1FAA ᾪ GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 0x1FAB ᾫ GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 0x1FAC ᾬ GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 0x1FAD ᾭ GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 0x1FAE ᾮ GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 0x1FAF ᾯ GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 0x1FB0 ᾰ GREEK SMALL LETTER ALPHA WITH VRACHY 0x1FB1 ᾱ GREEK SMALL LETTER ALPHA WITH MACRON 0x1FB2 ᾲ GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI 0x1FB3 ᾳ GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI 0x1FB4 ᾴ GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI 0x1FB6 ᾶ GREEK SMALL LETTER ALPHA WITH PERISPOMENI 0x1FB7 ᾷ GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI 0x1FB8 Ᾰ GREEK CAPITAL LETTER ALPHA WITH VRACHY 0x1FB9 Ᾱ GREEK CAPITAL LETTER ALPHA WITH MACRON 0x1FBA Ὰ GREEK CAPITAL LETTER ALPHA WITH VARIA 0x1FBB Ά GREEK CAPITAL LETTER ALPHA WITH OXIA 0x1FBC ᾼ GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 0x1FBD ᾽ GREEK KORONIS 0x1FBE ι GREEK PROSGEGRAMMENI 0x1FBF ᾿ GREEK PSILI 0x1FC0 ῀ GREEK PERISPOMENI 0x1FC1 ῁ GREEK DIALYTIKA AND PERISPOMENI 0x1FC2 ῂ GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI 0x1FC3 ῃ GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI 0x1FC4 ῄ GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI 0x1FC6 ῆ GREEK SMALL LETTER ETA WITH PERISPOMENI 0x1FC7 ῇ GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI 0x1FC8 Ὲ GREEK CAPITAL LETTER EPSILON WITH VARIA 0x1FC9 Έ GREEK CAPITAL LETTER EPSILON WITH OXIA 0x1FCA Ὴ GREEK CAPITAL LETTER ETA WITH VARIA 0x1FCB Ή GREEK CAPITAL LETTER ETA WITH OXIA 0x1FCC ῌ GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 0x1FCD ῍ GREEK PSILI AND VARIA 0x1FCE ῎ GREEK PSILI AND OXIA 0x1FCF ῏ GREEK PSILI AND PERISPOMENI 0x1FD0 ῐ GREEK SMALL LETTER IOTA WITH VRACHY 0x1FD1 ῑ GREEK SMALL LETTER IOTA WITH MACRON 0x1FD2 ῒ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA 0x1FD3 ΐ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA 0x1FD6 ῖ GREEK SMALL LETTER IOTA WITH PERISPOMENI 0x1FD7 ῗ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI 0x1FD8 Ῐ GREEK CAPITAL LETTER IOTA WITH VRACHY 0x1FD9 Ῑ GREEK CAPITAL LETTER IOTA WITH MACRON 0x1FDA Ὶ GREEK CAPITAL LETTER IOTA WITH VARIA 0x1FDB Ί GREEK CAPITAL LETTER IOTA WITH OXIA 0x1FDD ῝ GREEK DASIA AND VARIA 0x1FDE ῞ GREEK DASIA AND OXIA 0x1FDF ῟ GREEK DASIA AND PERISPOMENI 0x1FE0 ῠ GREEK SMALL LETTER UPSILON WITH VRACHY 0x1FE1 ῡ GREEK SMALL LETTER UPSILON WITH MACRON 0x1FE2 ῢ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA 0x1FE3 ΰ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA 0x1FE4 ῤ GREEK SMALL LETTER RHO WITH PSILI 0x1FE5 ῥ GREEK SMALL LETTER RHO WITH DASIA 0x1FE6 ῦ GREEK SMALL LETTER UPSILON WITH PERISPOMENI 0x1FE7 ῧ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI 0x1FE8 Ῠ GREEK CAPITAL LETTER UPSILON WITH VRACHY 0x1FE9 Ῡ GREEK CAPITAL LETTER UPSILON WITH MACRON 0x1FEA Ὺ GREEK CAPITAL LETTER UPSILON WITH VARIA 0x1FEB Ύ GREEK CAPITAL LETTER UPSILON WITH OXIA 0x1FEC Ῥ GREEK CAPITAL LETTER RHO WITH DASIA 0x1FED ῭ GREEK DIALYTIKA AND VARIA 0x1FEE ΅ GREEK DIALYTIKA AND OXIA 0x1FEF ` GREEK VARIA 0x1FF2 ῲ GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI 0x1FF3 ῳ GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI 0x1FF4 ῴ GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI 0x1FF6 ῶ GREEK SMALL LETTER OMEGA WITH PERISPOMENI 0x1FF7 ῷ GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI 0x1FF8 Ὸ GREEK CAPITAL LETTER OMICRON WITH VARIA 0x1FF9 Ό GREEK CAPITAL LETTER OMICRON WITH OXIA 0x1FFA Ὼ GREEK CAPITAL LETTER OMEGA WITH VARIA 0x1FFB Ώ GREEK CAPITAL LETTER OMEGA WITH OXIA 0x1FFC ῼ GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 0x1FFD ´ GREEK OXIA 0x1FFE ῾ GREEK DASIA Alphapsiliprosgegrammeni.ss01 Alphadasiaprosgegrammeni.ss01 Alphapsilivariaprosgegrammeni.ss01 Alphadasiavariaprosgegrammeni.ss01 Alphapsilioxiaprosgegrammeni.ss01 Alphadasiaoxiaprosgegrammeni.ss01 Alphapsiliperispomeniprosgegrammeni.ss01 Alphadasiaperispomeniprosgegrammeni.ss01 Etapsiliprosgegrammeni.ss01 Etadasiaprosgegrammeni.ss01 Etapsilivariaprosgegrammeni.ss01 Etadasiavariaprosgegrammeni.ss01 Etapsilioxiaprosgegrammeni.ss01 Etadasiaoxiaprosgegrammeni.ss01 Etapsiliperispomeniprosgegrammeni.ss01 Etadasiaperispomeniprosgegrammeni.ss01 Omegapsiliprosgegrammeni.ss01 Omegadasiaprosgegrammeni.ss01 Omegapsilivariaprosgegrammeni.ss01 Omegadasiavariaprosgegrammeni.ss01 Omegapsilioxiaprosgegrammeni.ss01 Omegadasiaoxiaprosgegrammeni.ss01 Omegapsiliperispomeniprosgegrammeni.ss01 Omegadasiaperispomeniprosgegrammeni.ss01 Alphaprosgegrammeni.ss01 Etaprosgegrammeni.ss01 Omegaprosgegrammeni.ss01 Lib/gftools/encodings/GF Glyph Sets/Greek/GF-greek-pro.nam000066400000000000000000000053301376445505300234050ustar00rootroot00000000000000# GF Greek Pro # Generated by Alexei Vanyashin 10 Feb 2017 0x02D9 ˙ DOT ABOVE 0x0305 ̅ COMBINING OVERLINE 0x0323 ̣ COMBINING DOT BELOW 0x0359 ͙ COMBINING ASTERISK BELOW 0x035C ͜ COMBINING DOUBLE BREVE BELOW 0x03DA Ϛ GREEK LETTER STIGMA 0x03DB ϛ GREEK SMALL LETTER STIGMA 0x03DC Ϝ GREEK LETTER DIGAMMA 0x03DD ϝ GREEK SMALL LETTER DIGAMMA 0x03DE Ϟ GREEK LETTER KOPPA 0x03DF ϟ GREEK SMALL LETTER KOPPA 0x03E0 Ϡ GREEK LETTER SAMPI 0x03E1 ϡ GREEK SMALL LETTER SAMPI 0x2016 ‖ DOUBLE VERTICAL LINE 0x203B ※ REFERENCE MARK 0x203F ‿ UNDERTIE 0x2042 ⁂ ASTERISM 0x2056 ⁖ THREE DOT PUNCTUATION 0x2058 ⁘ FOUR DOT PUNCTUATION 0x2059 ⁙ FIVE DOT PUNCTUATION 0x205A ⁚ TWO DOT PUNCTUATION 0x205B ⁛ FOUR DOT MARK 0x205C ⁜ DOTTED CROSS 0x205D ⁝ TRICOLON 0x205E ⁞ VERTICAL FOUR DOTS 0x207A ⁺ SUPERSCRIPT PLUS SIGN 0x207B ⁻ SUPERSCRIPT MINUS 0x207C ⁼ SUPERSCRIPT EQUALS SIGN 0x208A ₊ SUBSCRIPT PLUS SIGN 0x208B ₋ SUBSCRIPT MINUS 0x208C ₌ SUBSCRIPT EQUALS SIGN 0x2135 ℵ ALEF SYMBOL 0x2136 ℶ BET SYMBOL 0x2297 ⊗ CIRCLED TIMES 0x22EE ⋮ VERTICAL ELLIPSIS 0x23D1 ⏑ METRICAL BREVE 0x23D2 ⏒ METRICAL LONG OVER SHORT 0x23D3 ⏓ METRICAL SHORT OVER LONG 0x23D4 ⏔ METRICAL LONG OVER TWO SHORTS 0x23D5 ⏕ METRICAL TWO SHORTS OVER LONG 0x23D6 ⏖ METRICAL TWO SHORTS JOINED 0x23D7 ⏗ METRICAL TRISEME 0x23D8 ⏘ METRICAL TETRASEME 0x23D9 ⏙ METRICAL PENTASEME 0x2AFD ⫽ DOUBLE SOLIDUS OPERATOR 0x2E00 ⸀ RIGHT ANGLE SUBSTITUTION MARKER 0x2E01 ⸁ RIGHT ANGLE DOTTED SUBSTITUTION MARKER 0x2E02 ⸂ LEFT SUBSTITUTION BRACKET 0x2E03 ⸃ RIGHT SUBSTITUTION BRACKET 0x2E04 ⸄ LEFT DOTTED SUBSTITUTION BRACKET 0x2E05 ⸅ RIGHT DOTTED SUBSTITUTION BRACKET 0x2E06 ⸆ RAISED INTERPOLATION MARKER 0x2E07 ⸇ RAISED DOTTED INTERPOLATION MARKER 0x2E08 ⸈ DOTTED TRANSPOSITION MARKER 0x2E09 ⸉ LEFT TRANSPOSITION BRACKET 0x2E0A ⸊ RIGHT TRANSPOSITION BRACKET 0x2E0B ⸋ RAISED SQUARE 0x2E0C ⸌ LEFT RAISED OMISSION BRACKET 0x2E0D ⸍ RIGHT RAISED OMISSION BRACKET 0x2E0E ⸎ EDITORIAL CORONIS 0x2E0F ⸏ PARAGRAPHOS 0x2E10 ⸐ FORKED PARAGRAPHOS 0x2E11 ⸑ REVERSED FORKED PARAGRAPHOS 0x2E12 ⸒ HYPODIASTOLE 0x2E13 ⸓ DOTTED OBELOS 0x2E14 ⸔ DOWNWARDS ANCORA 0x2E15 ⸕ UPWARDS ANCORA 0x2E16 ⸖ DOTTED RIGHT-POINTING ANGLE 0x2E17 ⸗ DOUBLE OBLIQUE HYPHEN 0x3008 〈 LEFT ANGLE BRACKET 0x3009 〉 RIGHT ANGLE BRACKET 0x300A 《 LEFT DOUBLE ANGLE BRACKET 0x300B 》 RIGHT DOUBLE ANGLE BRACKET 0x300C 「 LEFT CORNER BRACKET 0x300D 」 RIGHT CORNER BRACKET 0x301A 〚 LEFT WHITE SQUARE BRACKET 0x301B 〛 RIGHT WHITE SQUARE BRACKET 0x1D459 𝑙 MATHEMATICAL ITALIC SMALL L 0x1D510 𝔐 MATHEMATICAL FRAKTUR CAPITAL M 0x1D513 𝔓 MATHEMATICAL FRAKTUR CAPITAL P 0x1D516 𝔖 MATHEMATICAL FRAKTUR CAPITAL S 0x1D52D 𝔭 MATHEMATICAL FRAKTUR SMALL P Lib/gftools/encodings/GF Glyph Sets/Greek/README.md000066400000000000000000000152101376445505300220000ustar00rootroot00000000000000 Google Fonts Greek Glyphs Sets ============================ ## Structure and Hierarchy of Glyph Sets for Greek: **** ###General Use 1. **Core** Basic Monotonic set for everyday Modern Greek 2. **Plus** Basic Polytonic set for Scholarly Greek 3. **Expert** Small Caps for Core and Plus sets, Superscript Letters ###Scholarly Use 1. **Pro** Extended Polytonic set for Ancient Greek Studies 2. **Archaic** Variable Letterforms for Ancient Texts, Papyri 3. **Ancient Musical Symbols** Greek and Byzantine Musical Symbols 4. **Coptic** Liturgical language for Coptic Church **** ## General Use ### 1. GF Greek Core, 77 glyphs total > +43 Optional Small Cap Glyphs Basic Monotonic Greek * Basic Greek UC ` ΆΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫ ` * Basic Greek LC ` άέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ ` * Punctuation ` · ; ` * Greek numeral signs or keraia ` ʹ ͵ ` * Accents ` ́ ΅ ` * Kai symbol ` ϗ Ϗ ` ### 2. GF Greek Plus, 265 glyphs total > +185 Optional Small Cap Glyphs > Basic Polytonic Greek * Polytonic UC `ἈἉἊἋἌἍἎἏἘἙἚἛἜἝἨἩἪἫἬἭἮἯἸἹἺἻἼἽἾἿὈὉὊὋὌὍὙὛὝὟὨὩὪὫὬὭὮὯᾈᾉᾊᾋᾌᾍᾎᾏᾘᾙᾚᾛᾜᾝᾞᾟᾨᾩᾪᾫᾬᾭᾮᾯᾸᾹᾺΆᾼῈΈῊΉῌῘῙῚΊῨῩῪΎῬῸΌῺΏῼ ` * Polytonic LC ` ἀἁἂἃἄἅἆἇἐἑἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀὁὂὃὄὅὐὑὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷιῂῃῄῆῇῐῑῒΐῖῗῠῡῢΰῤῥῦῧῲῳῴῶῷ ` * Accents ``` ́ ` ῀ ` ``` * Breathings ` ῾ ᾿ ` * Combinations ` ῁ ῍ ῎ ῏ ῝ ῞ ῟ ̈́ ` * Diactritics ` ͅ ι ` * Punctuation ` ᾽ ` * Combining Marks ` ̓ ΅ ͂ ͅ ` * Iota Adscript as ss01 `ᾈᾉᾊᾋᾌᾍᾎᾏᾘᾙᾚᾛᾜᾝᾞᾟᾨᾩᾪᾫᾬᾭᾮᾯᾼῌῼ` ### 3. GF Greek Expert, 283 glyphs total Small Caps for Core and Plus sets, Superscript Letters * Core .sc `άέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ` * Plus .sc `ἀἁἂἃἄἅἆἇἐἑἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀὁὂὃὄὅὐὑὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷιῂῃῄῆῇῐῑῒΐῖῗῠῡῢΰῤῥῦῧῲῳῴῶῷ Ϗ` * Archaic Numerals .sc `ϛ ϟ ϡ ϝ` * Iota Adscript as ss01 .sc `ᾈᾉᾊᾋᾌᾍᾎᾏᾘᾙᾚᾛᾜᾝᾞᾟᾨᾩᾪᾫᾬᾭᾮᾯᾼῌῼ` * Superior Letters .sups `ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψω` *** * Ligatures `λλ γγ` ## Scholarly Use ### 1. GF Greek Pro, 82 glyphs total Extended Polytonic Greek, for scholarly edition of ancient texts (Ancient and Roman Greece studies, Byzantine studies, Greek Biblical studies) **N.B.** List of characters from GF Latin Plus and Pro sets that are prerequisites to this set. № | char | nice name (Glyphs App) | uni name | set ---|---|---|---|--- 1|²|twosuperior|uni00B2|GF Latin Plus 2|³|threesuperior|uni00B3|GF Latin Plus 3|¹|onesuperior|uni00B9|GF Latin Plus 4|⁰|zerosuperior|uni0270|GF Latin Pro 5|†|dagger|uni2020|GF Latin Plus 6|‡|daggerdbl|uni2021|GF Latin Plus 7|⁴|foursuperior|uni2074|GF Latin Plus 8|⁵|fivesuperior|uni2075|GF Latin Pro 9|⁶|sixsuperior|uni2076|GF Latin Pro 10|⁷|sevensuperior|uni2077|GF Latin Pro 11|⁸|eightsuperior|uni2078|GF Latin Pro 12|⁹|ninesuperior|uni2079|GF Latin Pro 13|₀|zeroinferior|uni2080|GF Latin Pro 14|₁|oneinferior|uni2081|GF Latin Pro 15|₂|twoinferior|uni2082|GF Latin Pro 16|₃|threeinferior|uni2083|GF Latin Pro 17|₄|fourinferior|uni2084|GF Latin Pro 18|₅|fiveinferior|uni2085|GF Latin Pro 19|₆|sixinferior|uni2086|GF Latin Pro 20|₇|seveninferior|uni2087|GF Latin Pro 21|₈|eightinferior|uni2088|GF Latin Pro 22|₉|nineinferior|uni2089|GF Latin Pro * Archaic Letters and Numerals `Ϛ Ϟ Ϡ Ϝ ϛ ϟ ϡ ϝ` * Ancient Greek Textual symbols `⸎ ⸏ ⸐ ⸑ ⸒ ⸓ ⸔ ⸕ ⸖ ⸗` * Archaic Punctuation `※ ⁂ ‿ ͜ ˙ ⁖ ⁘ ⁙ ⁚ ⁛ ⁜ ⁝ ⁞ ⊗ ⋮` * Greek Metrical Symbols `⏑ ⏒ ⏓ ⏔ ⏕ ⏖ ⏗ ⏘ ⏙` * Critical Sigla `̅ ̣ ͙ ‖ ⁺ ⁻ ⁼ ₊ ₋ ₌ ⫽ ⸀ ⸁ ⸂ ⸃ ⸄ ⸅ ⸆ ⸇ ⸈ ⸉ ⸊ ⸋ ⸌ ⸍ 〈 〉《 》「 」〚 〛` * Biblical Apparatus `ℵ ℶ 𝑙 𝔖 𝔐 𝔓 𝔭` **N.B.** For certain design cases it is best practice to include inital and final variants of ` ̅` overlinecomb (uni0305): * `overlinecomb.init`, cropped on the left * `overlinecomb.fina`, cropped on the right ### 2. GF Greek Archaic, 143 glyphs total Archaic, Papyri * Archaic UC `ϘϚϜϞϠϺ` * Archaic LC `ϙϛϝϟϡϻ` * Variant Letterforms `κρςΣ`, `Θϐϑϒϓϔϕϖε϶` * Additional Letter `ϳ` * Additional Archaic Letters for Bactrian `Ϸϸ` * Symbols `ϼ ☧` * Editorial Symbols `ϽϾϿ` * Ancient Greek Mathematical Character `⟀ ⟁` * Ancient Greek Acrophonic Numerals `𐅀𐅁𐅂𐅃𐅆𐅇𐅈𐅉𐅊𐅋𐅌𐅍𐅎𐅏𐅐𐅑𐅒𐅓𐅔𐅕𐅖𐅗𐅘𐅙𐅚𐅛𐅜𐅝𐅞𐅟𐅠𐅡𐅢𐅣𐅤𐅥𐅦𐅧𐅨𐅩𐅪𐅫𐅬𐅭𐅮𐅯𐅰𐅱𐅲𐅳𐅴` * Geometric shape `□` * Astrological symbols `★☉☊☋☌☍☽☾☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓` ### 3. GF Ancient Musical Symbols, 316 glyphs total * Greek Vocal Notation Symbols * Greek Instrumental Notation Symbols * Byzantine Musical Symbols ### 4. GF Coptic, 137 glyphs total Coptic `U+03E2` – `U+03EF`, Coptic Unicode block `U+2C80` – `U+2CFF` * Coptic Letters `ϢϣϤϥϦϧϨϩϪϫϬϭϮϯ` * Bohairic Coptic UC ` ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰ` * Bohairic Coptic LC ` ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱ ` * Old Coptic and Dialect Letters UC` ⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚ` * Old Coptic and Dialect Letters LC ` ⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛ ` * Old Nubian Letters ` ⳜⳞⳠⳢⳝⳟⳡⳣ ` * Symbols ` ⳤ⳥⳦⳧⳨⳩⳪ ` * Cryptogrammic Letters ` ⳫⳬⳭⳮ⳯⳰⳱ ` * Combining Marks ` ⳯⳰⳱ ` * Bohairic Coptic Letters ` Ⳳⳳ ` * Old Nubian Punctuation ` ⳹⳺⳻⳼ ` * Coptic Fraction ` ⳽ ` * Punctuation ` ⳾ ⳿ ` ### Acknowledgements: GF Greek Glyph Sets defined by Irene Vlachou @irenevl and Thomas Linard @thlinard. Documented by Alexei Vanyashin @alexeiva January 2017. Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/000077500000000000000000000000001376445505300231265ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/nice names/000077500000000000000000000000001376445505300251305ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/nice names/ancient-musical-symbols.txt000066400000000000000000000042441376445505300324370ustar00rootroot00000000000000u1D000 u1D001 u1D002 u1D003 u1D004 u1D005 u1D006 u1D007 u1D008 u1D009 u1D00A u1D00B u1D00C u1D00D u1D00E u1D00F u1D010 u1D011 u1D012 u1D013 u1D014 u1D015 u1D016 u1D017 u1D018 u1D019 u1D01A u1D01B u1D01C u1D01D u1D01E u1D01F u1D020 u1D021 u1D022 u1D023 u1D024 u1D025 u1D026 u1D027 u1D028 u1D029 u1D02A u1D02B u1D02C u1D02D u1D02E u1D02F u1D030 u1D031 u1D032 u1D033 u1D034 u1D035 u1D036 u1D037 u1D038 u1D039 u1D03A u1D03B u1D03C u1D03D u1D03E u1D03F u1D040 u1D041 u1D042 u1D043 u1D044 u1D045 u1D046 u1D047 u1D048 u1D049 u1D04A u1D04B u1D04C u1D04D u1D04E u1D04F u1D050 u1D051 u1D052 u1D053 u1D054 u1D055 u1D056 u1D057 u1D058 u1D059 u1D05A u1D05B u1D05C u1D05D u1D05E u1D05F u1D060 u1D061 u1D062 u1D063 u1D064 u1D065 u1D066 u1D067 u1D068 u1D069 u1D06A u1D06B u1D06C u1D06D u1D06E u1D06F u1D070 u1D071 u1D072 u1D073 u1D074 u1D075 u1D076 u1D077 u1D078 u1D079 u1D07A u1D07B u1D07C u1D07D u1D07E u1D07F u1D080 u1D081 u1D082 u1D083 u1D084 u1D085 u1D086 u1D087 u1D088 u1D089 u1D08A u1D08B u1D08C u1D08D u1D08E u1D08F u1D090 u1D091 u1D092 u1D093 u1D094 u1D095 u1D096 u1D097 u1D098 u1D099 u1D09A u1D09B u1D09C u1D09D u1D09E u1D09F u1D0A0 u1D0A1 u1D0A2 u1D0A3 u1D0A4 u1D0A5 u1D0A6 u1D0A7 u1D0A8 u1D0A9 u1D0AA u1D0AB u1D0AC u1D0AD u1D0AE u1D0AF u1D0B0 u1D0B1 u1D0B2 u1D0B3 u1D0B4 u1D0B5 u1D0B6 u1D0B7 u1D0B8 u1D0B9 u1D0BA u1D0BB u1D0BC u1D0BD u1D0BE u1D0BF u1D0C0 u1D0C1 u1D0C2 u1D0C3 u1D0C4 u1D0C5 u1D0C6 u1D0C7 u1D0C8 u1D0C9 u1D0CA u1D0CB u1D0CC u1D0CD u1D0CE u1D0CF u1D0D0 u1D0D1 u1D0D2 u1D0D3 u1D0D4 u1D0D5 u1D0D6 u1D0D7 u1D0D8 u1D0D9 u1D0DA u1D0DB u1D0DC u1D0DD u1D0DE u1D0DF u1D0E0 u1D0E1 u1D0E2 u1D0E3 u1D0E4 u1D0E5 u1D0E6 u1D0E7 u1D0E8 u1D0E9 u1D0EA u1D0EB u1D0EC u1D0ED u1D0EE u1D0EF u1D0F0 u1D0F1 u1D0F2 u1D0F3 u1D0F4 u1D0F5 u1D200 u1D201 u1D202 u1D203 u1D204 u1D205 u1D206 u1D207 u1D208 u1D209 u1D20A u1D20B u1D20C u1D20D u1D20E u1D20F u1D210 u1D211 u1D212 u1D213 u1D214 u1D215 u1D216 u1D217 u1D218 u1D219 u1D21A u1D21B u1D21C u1D21D u1D21E u1D21F u1D220 u1D221 u1D222 u1D223 u1D224 u1D225 u1D226 u1D227 u1D228 u1D229 u1D22A u1D22B u1D22C u1D22D u1D22E u1D22F u1D230 u1D231 u1D232 u1D233 u1D234 u1D235 u1D236 u1D237 u1D238 u1D239 u1D23A u1D23B u1D23C u1D23D u1D23E u1D23F u1D240 u1D241 u1D242 u1D243 u1D244 u1D245 Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/nice names/archaic.txt000066400000000000000000000052131376445505300272640ustar00rootroot00000000000000Heta heta Archaicsampi archaicsampi Pamphyliandigamma pamphyliandigamma sigmaLunateReversedSymbol sigmaLunateDottedSymbol sigmaLunateDottedReversedSymbol betaSymbol thetaSymbol UpsilonhookSymbol UpsilonacutehookSymbol UpsilondieresishookSymbol phiSymbol piSymbol KoppaArchaic koppaArchaic kappaSymbol rhoSymbol sigmaLunateSymbol yot ThetaSymbol epsilonLunateSymbol epsilonLunateReversedSymbol Sho sho SigmaLunateSymbol San san rhoStrokeSymbol SigmaLunateReversedSymbol SigmaLunateDottedSymbol SigmaLunateDottedReversedSymbol whiteSquare blackstar sunSymbol ascendingNode descendingNode conjunction opposition constantineCross jerusalemCross firstQuarterMoon lastQuarterMoon mercury venus earth mars jupiter saturn uranus neptune pluto aries taurus gemini cancer leo virgo libra scorpius sagittarius capricorn aquarius pisces threeDimensionalAngle whitetrianglecontainingwhitetriangle onequarter-atticGreek onehalf-atticGreek onedrachma-atticGreek five-atticGreek fifty-atticGreek fivehundred-atticGreek fivethousand-atticGreek fiftythousand-atticGreek fivetalents-atticGreek tentalents-atticGreek fiftytalents-atticGreek onehundredtalents-atticGreek fivehundredtalents-atticGreek onethousandtalents-atticGreek fivethousandtalents-atticGreek fivestaters-atticGreek tenstaters-atticGreek fiftystaters-atticGreek onehundredstaters-atticGreek fivehundredstaters-atticGreek onethousandstaters-atticGreek tenthousandstaters-atticGreek fiftythousandstaters-atticGreek tenmnas-atticGreek heraeumoneplethron-ancientGreek thespianone-ancientGreek hermionianone-ancientGreek epidaureantwo-ancientGreek thespiantwo-ancientGreek cyrenaictwodrachmas-ancientGreek epidaureantwodrachmas-ancientGreek troezenianfive-ancientGreek troezenianten-ancientGreek troezeniantenalternateform-ancientGreek hermionianten-ancientGreek messenianten-ancientGreek thespianten-ancientGreek thespianthirty-ancientGreek troezenianfifty-ancientGreek troezenianfiftyalternateform-ancientGreek hermionianfifty-ancientGreek thespianfifty-ancientGreek thespianonehundred-ancientGreek thespianthreehundred-ancientGreek epidaureanfivehundred-ancientGreek troezenianfivehundred-ancientGreek thespianfivehundred-ancientGreek carystianfivehundred-ancientGreek naxianfivehundred-ancientGreek thespianonethousand-ancientGreek thespianfivethousand-ancientGreek delphicfivemnas-ancientGreek stratianfiftymnas-ancientGreek onehalf-greek onehalfAlternate-greek twothirds-greek threequarters-greek year-greek talent-greek drachma-greek obol-greek twoObols-greek threeObols-greek fourObols-greek fiveObols-greek metretes-greek kyathosBase-greek litra-greek ounkia-greek xestes-greek artabe-greek aroura-greek gramma-greek tryblionBase-greek zero-greek Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/nice names/coptic.txt000066400000000000000000000036631376445505300271620ustar00rootroot00000000000000Shei-coptic shei-coptic Fei-coptic fei-coptic Khei-coptic khei-coptic Hori-coptic hori-coptic Gangia-coptic gangia-coptic Shima-coptic shima-coptic Dei-coptic dei-coptic Alfa-coptic alfa-coptic Vida-coptic vida-coptic Gamma-coptic gamma-coptic Dalda-coptic dalda-coptic Eie-coptic eie-coptic Sou-coptic sou-coptic Zata-coptic zata-coptic Hate-coptic hate-coptic Thethe-coptic thethe-coptic Iauda-coptic iauda-coptic Kapa-coptic kapa-coptic Laula-coptic laula-coptic Mi-coptic mi-coptic Ni-coptic ni-coptic Ksi-coptic ksi-coptic O-coptic o-coptic Pi-coptic pi-coptic Ro-coptic ro-coptic Sima-coptic sima-coptic Tau-coptic tau-coptic Ua-coptic ua-coptic Fi-coptic fi-coptic Khi-coptic khi-coptic Psi-coptic psi-coptic Oou-coptic oou-coptic dialectPalef-coptic dialectpalef-coptic oldAin-coptic oldain-coptic Cryptogrammiceie-coptic cryptogrammiceie-coptic dialectPkapa-coptic dialectpkapa-coptic dialectPni-coptic dialectpni-coptic Cryptogrammicni-coptic cryptogrammicni-coptic ldOou-coptic oldoou-coptic Sampi-coptic sampi-coptic Crossedshei-coptic crossedshei-coptic oldShei-coptic oldshei-coptic oldEsh-coptic oldesh-coptic Akhmimickhei-coptic akhmimickhei-coptic dialectPhori-coptic dialectphori-coptic oldHori-coptic oldhori-coptic oldHa-coptic oldha-coptic LshapedHa-coptic Lshapedha-coptic oldHei-coptic oldhei-coptic oldHat-coptic oldhat-coptic oldGangia-coptic oldgangia-coptic oldDja-coptic olddja-coptic oldShima-coptic oldshima-coptic oldShima-nubian-coptic oldshima-nubian-coptic oldNgi-nubian-coptic oldngi-nubian-coptic oldNyi-nubian-coptic oldnyi-nubian-coptic oldWau-nubian-coptic oldwau-nubian-coptic kai-coptic miro-coptic piro-coptic stauros-coptic tauro-coptic khiro-coptic shimasima-coptic uni2CEB uni2CEC uni2CED uni2CEE uni2CEF uni2CF0 uni2CF1 uni2CF2 uni2CF3 oldfullstop-nubian-coptic olddirectquestion-nubian-coptic oldindirectquestion-nubian-coptic oldversedivider-nubian-coptic fractiononehalf-coptic fullstop-coptic morphologicaldivider-coptic Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/nice names/core.txt000066400000000000000000000011451376445505300266220ustar00rootroot00000000000000numeral-greek lowernumeral-greek questiongreek tonos dieresistonos Alphatonos anoteleia Epsilontonos Etatonos Iotatonos Omicrontonos Upsilontonos Omegatonos iotadieresistonos Alpha Beta Gamma Delta Epsilon Zeta Eta Theta Iota Kappa Lambda Mu Nu Xi Omicron Pi Rho Sigma Tau Upsilon Phi Chi Psi Omega Iotadieresis Upsilondieresis alphatonos epsilontonos etatonos iotatonos upsilondieresistonos alpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu nu xi omicron pi rho sigmafinal sigma tau upsilon phi chi psi omega iotadieresis upsilondieresis omicrontonos upsilontonos omegatonos KaiSymbol kaiSymbol Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/nice names/expert.txt000066400000000000000000000134231376445505300272030ustar00rootroot00000000000000gamma_gamma lambda_lambda numeral-greek.sc lowernumeral-greek.sc questiongreek.sc tonos.sc dieresistonos.sc anoteleia.sc iotadieresistonos.sc alphatonos.sc epsilontonos.sc etatonos.sc iotatonos.sc upsilondieresistonos.sc alpha.sc beta.sc gamma.sc delta.sc epsilon.sc zeta.sc eta.sc theta.sc iota.sc kappa.sc lambda.sc mu.sc nu.sc xi.sc omicron.sc pi.sc rho.sc sigma.sc tau.sc upsilon.sc phi.sc chi.sc psi.sc omega.sc iotadieresis.sc upsilondieresis.sc omicrontonos.sc upsilontonos.sc omegatonos.sc kaiSymbol.sc stigma.sc digamma.sc koppa.sc sampi.sc alphapsili.sc alphadasia.sc alphapsilivaria.sc alphadasiavaria.sc alphapsilioxia.sc alphadasiaoxia.sc alphapsiliperispomeni.sc alphadasiaperispomeni.sc epsilonpsili.sc epsilondasia.sc epsilonpsilivaria.sc epsilondasiavaria.sc epsilonpsilioxia.sc epsilondasiaoxia.sc etapsili.sc etadasia.sc etapsilivaria.sc etadasiavaria.sc etapsilioxia.sc etadasiaoxia.sc etapsiliperispomeni.sc etadasiaperispomeni.sc iotapsili.sc iotadasia.sc iotapsilivaria.sc iotadasiavaria.sc iotapsilioxia.sc iotadasiaoxia.sc iotapsiliperispomeni.sc iotadasiaperispomeni.sc omicronpsili.sc omicrondasia.sc omicronpsilivaria.sc omicrondasiavaria.sc omicronpsilioxia.sc omicrondasiaoxia.sc upsilonpsili.sc upsilondasia.sc upsilonpsilivaria.sc upsilondasiavaria.sc upsilonpsilioxia.sc upsilondasiaoxia.sc upsilonpsiliperispomeni.sc upsilondasiaperispomeni.sc omegapsili.sc omegadasia.sc omegapsilivaria.sc omegadasiavaria.sc omegapsilioxia.sc omegadasiaoxia.sc omegapsiliperispomeni.sc omegadasiaperispomeni.sc alphavaria.sc alphaoxia.sc epsilonvaria.sc epsilonoxia.sc etavaria.sc etaoxia.sc iotavaria.sc iotaoxia.sc omicronvaria.sc omicronoxia.sc upsilonvaria.sc upsilonoxia.sc omegavaria.sc omegaoxia.sc alphapsiliypogegrammeni.sc alphapsiliypogegrammeni.sc.ss01 alphadasiaypogegrammeni.sc alphadasiaypogegrammeni.sc.ss01 alphapsilivariaypogegrammeni.sc alphapsilivariaypogegrammeni.sc.ss01 alphadasiavariaypogegrammeni.sc alphadasiavariaypogegrammeni.sc.ss01 alphapsilioxiaypogegrammeni.sc alphapsilioxiaypogegrammeni.sc.ss01 alphadasiaoxiaypogegrammeni.sc alphadasiaoxiaypogegrammeni.sc.ss01 alphapsiliperispomeniypogegrammeni.sc alphapsiliperispomeniypogegrammeni.sc.ss01 alphadasiaperispomeniypogegrammeni.sc alphadasiaperispomeniypogegrammeni.sc.ss01 Alphapsiliprosgegrammeni.sc.ss01 Alphadasiaprosgegrammeni.sc.ss01 Alphapsilivariaprosgegrammeni.sc.ss01 Alphadasiavariaprosgegrammeni.sc.ss01 Alphapsilioxiaprosgegrammeni.sc.ss01 Alphadasiaoxiaprosgegrammeni.sc.ss01 Alphapsiliperispomeniprosgegrammeni.sc.ss01 Alphadasiaperispomeniprosgegrammeni.sc.ss01 etapsiliypogegrammeni.sc etapsiliypogegrammeni.sc.ss01 etadasiaypogegrammeni.sc etadasiaypogegrammeni.sc.ss01 etapsilivariaypogegrammeni.sc etapsilivariaypogegrammeni.sc.ss01 etadasiavariaypogegrammeni.sc etadasiavariaypogegrammeni.sc.ss01 etapsilioxiaypogegrammeni.sc etapsilioxiaypogegrammeni.sc.ss01 etadasiaoxiaypogegrammeni.sc etadasiaoxiaypogegrammeni.sc.ss01 etapsiliperispomeniypogegrammeni.sc etapsiliperispomeniypogegrammeni.sc.ss01 etadasiaperispomeniypogegrammeni.sc etadasiaperispomeniypogegrammeni.sc.ss01 Etapsiliprosgegrammeni.sc.ss01 Etadasiaprosgegrammeni.sc.ss01 Etapsilivariaprosgegrammeni.sc.ss01 Etadasiavariaprosgegrammeni.sc.ss01 Etapsilioxiaprosgegrammeni.sc.ss01 Etadasiaoxiaprosgegrammeni.sc.ss01 Etapsiliperispomeniprosgegrammeni.sc.ss01 Etadasiaperispomeniprosgegrammeni.sc.ss01 omegapsiliypogegrammeni.sc omegapsiliypogegrammeni.sc.ss01 omegadasiaypogegrammeni.sc omegadasiaypogegrammeni.sc.ss01 omegapsilivariaypogegrammeni.sc omegapsilivariaypogegrammeni.sc.ss01 omegadasiavariaypogegrammeni.sc omegadasiavariaypogegrammeni.sc.ss01 omegapsilioxiaypogegrammeni.sc omegapsilioxiaypogegrammeni.sc.ss01 omegadasiaoxiaypogegrammeni.sc omegadasiaoxiaypogegrammeni.sc.ss01 omegapsiliperispomeniypogegrammeni.sc omegapsiliperispomeniypogegrammeni.sc.ss01 omegadasiaperispomeniypogegrammeni.sc omegadasiaperispomeniypogegrammeni.sc.ss01 Omegapsiliprosgegrammeni.sc.ss01 Omegadasiaprosgegrammeni.sc.ss01 Omegapsilivariaprosgegrammeni.sc.ss01 Omegadasiavariaprosgegrammeni.sc.ss01 Omegapsilioxiaprosgegrammeni.sc.ss01 Omegadasiaoxiaprosgegrammeni.sc.ss01 Omegapsiliperispomeniprosgegrammeni.sc.ss01 Omegadasiaperispomeniprosgegrammeni.sc.ss01 alphavrachy.sc alphamacron.sc alphavariaypogegrammeni.sc alphavariaypogegrammeni.sc.ss01 alphaypogegrammeni.sc alphaypogegrammeni.sc.ss01 alphaoxiaypogegrammeni.sc alphaoxiaypogegrammeni.sc.ss01 alphaperispomeni.sc alphaperispomeniypogegrammeni.sc alphaperispomeniypogegrammeni.sc.ss01 Alphaprosgegrammeni.sc.ss01 prosgegrammeni.sc etavariaypogegrammeni.sc etavariaypogegrammeni.sc.ss01 etaypogegrammeni.sc etaypogegrammeni.sc.ss01 etaoxiaypogegrammeni.sc etaoxiaypogegrammeni.sc.ss01 etaperispomeni.sc etaperispomeniypogegrammeni.sc etaperispomeniypogegrammeni.sc.ss01 Etaprosgegrammeni.sc.ss01 iotavrachy.sc iotamacron.sc iotadialytikavaria.sc iotadialytikaoxia.sc iotaperispomeni.sc iotadialytikaperispomeni.sc upsilonvrachy.sc upsilonmacron.sc upsilondialytikavaria.sc upsilondialytikaoxia.sc rhopsili.sc rhodasia.sc upsilonperispomeni.sc upsilondialytikaperispomeni.sc omegavariaypogegrammeni.sc omegavariaypogegrammeni.sc.ss01 omegaypogegrammeni.sc omegaypogegrammeni.sc.ss01 omegaoxiaypogegrammeni.sc omegaoxiaypogegrammeni.sc.ss01 omegaperispomeni.sc omegaperispomeniypogegrammeni.sc omegaperispomeniypogegrammeni.sc.ss01 Omegaprosgegrammeni.sc.ss01 Alpha.sups Beta.sups Gamma.sups Delta.sups Epsilon.sups Zeta.sups Eta.sups Theta.sups Iota.sups Kappa.sups Lambda.sups Mu.sups Nu.sups Xi.sups Omicron.sups Pi.sups Rho.sups Sigma.sups Tau.sups Upsilon.sups Phi.sups Chi.sups Psi.sups Omega.sups alpha.sups beta.sups gamma.sups delta.sups epsilon.sups zeta.sups eta.sups theta.sups iota.sups kappa.sups lambda.sups mu.sups nu.sups xi.sups omicron.sups pi.sups rho.sups sigmafinal.sups sigma.sups tau.sups upsilon.sups phi.sups chi.sups psi.sups omega.sups Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/nice names/plus.txt000066400000000000000000000120441376445505300266550ustar00rootroot00000000000000perispomenicomb koroniscomb dialytikatonoscomb ypogegrammenicomb ypogegrammeni alphapsili alphadasia alphapsilivaria alphadasiavaria alphapsilioxia alphadasiaoxia alphapsiliperispomeni alphadasiaperispomeni Alphapsili Alphadasia Alphapsilivaria Alphadasiavaria Alphapsilioxia Alphadasiaoxia Alphapsiliperispomeni Alphadasiaperispomeni epsilonpsili epsilondasia epsilonpsilivaria epsilondasiavaria epsilonpsilioxia epsilondasiaoxia Epsilonpsili Epsilondasia Epsilonpsilivaria Epsilondasiavaria Epsilonpsilioxia Epsilondasiaoxia etapsili etadasia etapsilivaria etadasiavaria etapsilioxia etadasiaoxia etapsiliperispomeni etadasiaperispomeni Etapsili Etadasia Etapsilivaria Etadasiavaria Etapsilioxia Etadasiaoxia Etapsiliperispomeni Etadasiaperispomeni iotapsili iotadasia iotapsilivaria iotadasiavaria iotapsilioxia iotadasiaoxia iotapsiliperispomeni iotadasiaperispomeni Iotapsili Iotadasia Iotapsilivaria Iotadasiavaria Iotapsilioxia Iotadasiaoxia Iotapsiliperispomeni Iotadasiaperispomeni omicronpsili omicrondasia omicronpsilivaria omicrondasiavaria omicronpsilioxia omicrondasiaoxia Omicronpsili Omicrondasia Omicronpsilivaria Omicrondasiavaria Omicronpsilioxia Omicrondasiaoxia upsilonpsili upsilondasia upsilonpsilivaria upsilondasiavaria upsilonpsilioxia upsilondasiaoxia upsilonpsiliperispomeni upsilondasiaperispomeni Upsilondasia Upsilondasiavaria Upsilondasiaoxia Upsilondasiaperispomeni omegapsili omegadasia omegapsilivaria omegadasiavaria omegapsilioxia omegadasiaoxia omegapsiliperispomeni omegadasiaperispomeni Omegapsili Omegadasia Omegapsilivaria Omegadasiavaria Omegapsilioxia Omegadasiaoxia Omegapsiliperispomeni Omegadasiaperispomeni alphavaria alphaoxia epsilonvaria epsilonoxia etavaria etaoxia iotavaria iotaoxia omicronvaria omicronoxia upsilonvaria upsilonoxia omegavaria omegaoxia alphapsiliypogegrammeni alphadasiaypogegrammeni alphapsilivariaypogegrammeni alphadasiavariaypogegrammeni alphapsilioxiaypogegrammeni alphadasiaoxiaypogegrammeni alphapsiliperispomeniypogegrammeni alphadasiaperispomeniypogegrammeni Alphapsiliprosgegrammeni Alphadasiaprosgegrammeni Alphapsilivariaprosgegrammeni Alphadasiavariaprosgegrammeni Alphapsilioxiaprosgegrammeni Alphadasiaoxiaprosgegrammeni Alphapsiliperispomeniprosgegrammeni Alphadasiaperispomeniprosgegrammeni etapsiliypogegrammeni etadasiaypogegrammeni etapsilivariaypogegrammeni etadasiavariaypogegrammeni etapsilioxiaypogegrammeni etadasiaoxiaypogegrammeni etapsiliperispomeniypogegrammeni etadasiaperispomeniypogegrammeni Etapsiliprosgegrammeni Etadasiaprosgegrammeni Etapsilivariaprosgegrammeni Etadasiavariaprosgegrammeni Etapsilioxiaprosgegrammeni Etadasiaoxiaprosgegrammeni Etapsiliperispomeniprosgegrammeni Etadasiaperispomeniprosgegrammeni omegapsiliypogegrammeni omegadasiaypogegrammeni omegapsilivariaypogegrammeni omegadasiavariaypogegrammeni omegapsilioxiaypogegrammeni omegadasiaoxiaypogegrammeni omegapsiliperispomeniypogegrammeni omegadasiaperispomeniypogegrammeni Omegapsiliprosgegrammeni Omegadasiaprosgegrammeni Omegapsilivariaprosgegrammeni Omegadasiavariaprosgegrammeni Omegapsilioxiaprosgegrammeni Omegadasiaoxiaprosgegrammeni Omegapsiliperispomeniprosgegrammeni Omegadasiaperispomeniprosgegrammeni alphavrachy alphamacron alphavariaypogegrammeni alphaypogegrammeni alphaoxiaypogegrammeni alphaperispomeni alphaperispomeniypogegrammeni Alphavrachy Alphamacron Alphavaria Alphaoxia Alphaprosgegrammeni koronis prosgegrammeni psili perispomeni dialytikaperispomeni etavariaypogegrammeni etaypogegrammeni etaoxiaypogegrammeni etaperispomeni etaperispomeniypogegrammeni Epsilonvaria Epsilonoxia Etavaria Etaoxia Etaprosgegrammeni psilivaria psilioxia psiliperispomeni iotavrachy iotamacron iotadialytikavaria iotadialytikaoxia iotaperispomeni iotadialytikaperispomeni Iotavrachy Iotamacron Iotavaria Iotaoxia dasiavaria dasiaoxia dasiaperispomeni upsilonvrachy upsilonmacron upsilondialytikavaria upsilondialytikaoxia rhopsili rhodasia upsilonperispomeni upsilondialytikaperispomeni Upsilonvrachy Upsilonmacron Upsilonvaria Upsilonoxia Rhodasia dialytikavaria dialytikaoxia varia omegavariaypogegrammeni omegaypogegrammeni omegaoxiaypogegrammeni omegaperispomeni omegaperispomeniypogegrammeni Omicronvaria Omicronoxia Omegavaria Omegaoxia Omegaprosgegrammeni oxia dasia Alphapsiliprosgegrammeni.ss01 Alphadasiaprosgegrammeni.ss01 Alphapsilivariaprosgegrammeni.ss01 Alphadasiavariaprosgegrammeni.ss01 Alphapsilioxiaprosgegrammeni.ss01 Alphadasiaoxiaprosgegrammeni.ss01 Alphapsiliperispomeniprosgegrammeni.ss01 Alphadasiaperispomeniprosgegrammeni.ss01 Etapsiliprosgegrammeni.ss01 Etadasiaprosgegrammeni.ss01 Etapsilivariaprosgegrammeni.ss01 Etadasiavariaprosgegrammeni.ss01 Etapsilioxiaprosgegrammeni.ss01 Etadasiaoxiaprosgegrammeni.ss01 Etapsiliperispomeniprosgegrammeni.ss01 Etadasiaperispomeniprosgegrammeni.ss01 Omegapsiliprosgegrammeni.ss01 Omegadasiaprosgegrammeni.ss01 Omegapsilivariaprosgegrammeni.ss01 Omegadasiavariaprosgegrammeni.ss01 Omegapsilioxiaprosgegrammeni.ss01 Omegadasiaoxiaprosgegrammeni.ss01 Omegapsiliperispomeniprosgegrammeni.ss01 Omegadasiaperispomeniprosgegrammeni.ss01 Alphaprosgegrammeni.ss01 Etaprosgegrammeni.ss01 Omegaprosgegrammeni.ss01 Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/nice names/pro.txt000066400000000000000000000025701376445505300264750ustar00rootroot00000000000000dotaccent overlinecomb dotbelowcomb asteriskbelowcomb doublebrevebelowcomb Stigma stigma Digamma digamma Koppa koppa Sampi sampi dblverticalbar referencemark undertie asterism threedotpunctuation fourdotpunctuation fivedotpunctuation twodotpunctuation fourdotmark dottedcross tricolon verticalfourdots plussuperior minussuperior equalsuperior plusinferior minusinferior equalinferior alephsymbol betsymbol multiply.circled ellipsisvertical metricalbreve metricallongovershort metricalshortoverlong metricallongovertwoshorts metricaltwoshortsoverlong metricaltwoshortsjoined metricaltriseme metricaltetraseme metricalpentaseme doubleSolidusOperator rightanglesubstitutionmarker rightangledottedsubstitutionmarker leftsubstitutionbracket rightsubstitutionbracket leftdottedsubstitutionbracket rightdottedsubstitutionbracket raisedinterpolationmarker raiseddottedinterpolationmarker dottedtranspositionmarker lefttranspositionbracket righttranspositionbracket raisedsquare leftraisedomissionbracket rightraisedomissionbracket editorialcoronis paragraphos forkedparagraphos reversedforkedparagraphos hypodiastole dottedobelos downancora upancora dottedrightpointingangle doubleobliquehyphen anglebracketleft anglebracketright dblanglebracketleft dblanglebracketright cornerbracketleft cornerbracketright whitesquarebracketleft whitesquarebracketright litalic-math M-fraktur P-fraktur S-fraktur p-fraktur Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/uni names/000077500000000000000000000000001376445505300250055ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/uni names/ancient-musical-symbols.txt000066400000000000000000000042441376445505300323140ustar00rootroot00000000000000u1D000 u1D001 u1D002 u1D003 u1D004 u1D005 u1D006 u1D007 u1D008 u1D009 u1D00A u1D00B u1D00C u1D00D u1D00E u1D00F u1D010 u1D011 u1D012 u1D013 u1D014 u1D015 u1D016 u1D017 u1D018 u1D019 u1D01A u1D01B u1D01C u1D01D u1D01E u1D01F u1D020 u1D021 u1D022 u1D023 u1D024 u1D025 u1D026 u1D027 u1D028 u1D029 u1D02A u1D02B u1D02C u1D02D u1D02E u1D02F u1D030 u1D031 u1D032 u1D033 u1D034 u1D035 u1D036 u1D037 u1D038 u1D039 u1D03A u1D03B u1D03C u1D03D u1D03E u1D03F u1D040 u1D041 u1D042 u1D043 u1D044 u1D045 u1D046 u1D047 u1D048 u1D049 u1D04A u1D04B u1D04C u1D04D u1D04E u1D04F u1D050 u1D051 u1D052 u1D053 u1D054 u1D055 u1D056 u1D057 u1D058 u1D059 u1D05A u1D05B u1D05C u1D05D u1D05E u1D05F u1D060 u1D061 u1D062 u1D063 u1D064 u1D065 u1D066 u1D067 u1D068 u1D069 u1D06A u1D06B u1D06C u1D06D u1D06E u1D06F u1D070 u1D071 u1D072 u1D073 u1D074 u1D075 u1D076 u1D077 u1D078 u1D079 u1D07A u1D07B u1D07C u1D07D u1D07E u1D07F u1D080 u1D081 u1D082 u1D083 u1D084 u1D085 u1D086 u1D087 u1D088 u1D089 u1D08A u1D08B u1D08C u1D08D u1D08E u1D08F u1D090 u1D091 u1D092 u1D093 u1D094 u1D095 u1D096 u1D097 u1D098 u1D099 u1D09A u1D09B u1D09C u1D09D u1D09E u1D09F u1D0A0 u1D0A1 u1D0A2 u1D0A3 u1D0A4 u1D0A5 u1D0A6 u1D0A7 u1D0A8 u1D0A9 u1D0AA u1D0AB u1D0AC u1D0AD u1D0AE u1D0AF u1D0B0 u1D0B1 u1D0B2 u1D0B3 u1D0B4 u1D0B5 u1D0B6 u1D0B7 u1D0B8 u1D0B9 u1D0BA u1D0BB u1D0BC u1D0BD u1D0BE u1D0BF u1D0C0 u1D0C1 u1D0C2 u1D0C3 u1D0C4 u1D0C5 u1D0C6 u1D0C7 u1D0C8 u1D0C9 u1D0CA u1D0CB u1D0CC u1D0CD u1D0CE u1D0CF u1D0D0 u1D0D1 u1D0D2 u1D0D3 u1D0D4 u1D0D5 u1D0D6 u1D0D7 u1D0D8 u1D0D9 u1D0DA u1D0DB u1D0DC u1D0DD u1D0DE u1D0DF u1D0E0 u1D0E1 u1D0E2 u1D0E3 u1D0E4 u1D0E5 u1D0E6 u1D0E7 u1D0E8 u1D0E9 u1D0EA u1D0EB u1D0EC u1D0ED u1D0EE u1D0EF u1D0F0 u1D0F1 u1D0F2 u1D0F3 u1D0F4 u1D0F5 u1D200 u1D201 u1D202 u1D203 u1D204 u1D205 u1D206 u1D207 u1D208 u1D209 u1D20A u1D20B u1D20C u1D20D u1D20E u1D20F u1D210 u1D211 u1D212 u1D213 u1D214 u1D215 u1D216 u1D217 u1D218 u1D219 u1D21A u1D21B u1D21C u1D21D u1D21E u1D21F u1D220 u1D221 u1D222 u1D223 u1D224 u1D225 u1D226 u1D227 u1D228 u1D229 u1D22A u1D22B u1D22C u1D22D u1D22E u1D22F u1D230 u1D231 u1D232 u1D233 u1D234 u1D235 u1D236 u1D237 u1D238 u1D239 u1D23A u1D23B u1D23C u1D23D u1D23E u1D23F u1D240 u1D241 u1D242 u1D243 u1D244 u1D245 Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/uni names/archaic.txt000066400000000000000000000020511376445505300271360ustar00rootroot00000000000000uni0370 uni0371 uni0372 uni0373 uni0376 uni0377 uni037B uni037C uni037D uni03D0 uni03D1 uni03D2 uni03D3 uni03D4 uni03D5 uni03D6 uni03D8 uni03D9 uni03F0 uni03F1 uni03F2 uni03F3 uni03F4 uni03F5 uni03F6 uni03F7 uni03F8 uni03F9 uni03FA uni03FB uni03FC uni03FD uni03FE uni03FF uni25A1 uni2605 uni2609 uni260A uni260B uni260C uni260D uni2627 uni2629 uni263D uni263E uni263F female uni2641 male uni2643 uni2644 uni2645 uni2646 uni2647 uni2648 uni2649 uni264A uni264B uni264C uni264D uni264E uni264F uni2650 uni2651 uni2652 uni2653 uni27C0 uni27C1 u10140 u10141 u10142 u10143 u10144 u10145 u10146 u10147 u10148 u10149 u1014A u1014B u1014C u1014D u1014E u1014F u10150 u10151 u10152 u10153 u10154 u10155 u10156 u10157 u10158 u10159 u1015A u1015B u1015C u1015D u1015E u1015F u10160 u10161 u10162 u10163 u10164 u10165 u10166 u10167 u10168 u10169 u1016A u1016B u1016C u1016D u1016E u1016F u10170 u10171 u10172 u10173 u10174 u10175 u10176 u10177 u10178 u10179 u1017A u1017B u1017C u1017D u1017E u1017F u10180 u10181 u10182 u10183 u10184 u10185 u10186 u10187 u10188 u10189 u1018A Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/uni names/coptic.txt000066400000000000000000000021101376445505300270210ustar00rootroot00000000000000uni03E2 uni03E3 uni03E4 uni03E5 uni03E6 uni03E7 uni03E8 uni03E9 uni03EA uni03EB uni03EC uni03ED uni03EE uni03EF uni2C80 uni2C81 uni2C82 uni2C83 uni2C84 uni2C85 uni2C86 uni2C87 uni2C88 uni2C89 uni2C8A uni2C8B uni2C8C uni2C8D uni2C8E uni2C8F uni2C90 uni2C91 uni2C92 uni2C93 uni2C94 uni2C95 uni2C96 uni2C97 uni2C98 uni2C99 uni2C9A uni2C9B uni2C9C uni2C9D uni2C9E uni2C9F uni2CA0 uni2CA1 uni2CA2 uni2CA3 uni2CA4 uni2CA5 uni2CA6 uni2CA7 uni2CA8 uni2CA9 uni2CAA uni2CAB uni2CAC uni2CAD uni2CAE uni2CAF uni2CB0 uni2CB1 uni2CB2 uni2CB3 uni2CB4 uni2CB5 uni2CB6 uni2CB7 uni2CB8 uni2CB9 uni2CBA uni2CBB uni2CBC uni2CBD uni2CBE uni2CBF uni2CC0 uni2CC1 uni2CC2 uni2CC3 uni2CC4 uni2CC5 uni2CC6 uni2CC7 uni2CC8 uni2CC9 uni2CCA uni2CCB uni2CCC uni2CCD uni2CCE uni2CCF uni2CD0 uni2CD1 uni2CD2 uni2CD3 uni2CD4 uni2CD5 uni2CD6 uni2CD7 uni2CD8 uni2CD9 uni2CDA uni2CDB uni2CDC uni2CDD uni2CDE uni2CDF uni2CE0 uni2CE1 uni2CE2 uni2CE3 uni2CE4 uni2CE5 uni2CE6 uni2CE7 uni2CE8 uni2CE9 uni2CEA uni2CEB uni2CEC uni2CED uni2CEE uni2CEF uni2CF0 uni2CF1 uni2CF2 uni2CF3 uni2CF9 uni2CFA uni2CFB uni2CFC uni2CFD uni2CFE uni2CFF Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/uni names/core.txt000066400000000000000000000011201376445505300264700ustar00rootroot00000000000000uni0374 uni0375 uni037E tonos dieresistonos Alphatonos anoteleia Epsilontonos Etatonos Iotatonos Omicrontonos Upsilontonos Omegatonos iotadieresistonos Alpha Beta Gamma uni0394 Epsilon Zeta Eta Theta Iota Kappa Lambda Mu Nu Xi Omicron Pi Rho Sigma Tau Upsilon Phi Chi Psi uni03A9 Iotadieresis Upsilondieresis alphatonos epsilontonos etatonos iotatonos upsilondieresistonos alpha beta gamma delta epsilon zeta eta theta iota kappa lambda uni03BC nu xi omicron pi rho uni03C2 sigma tau upsilon phi chi psi omega iotadieresis upsilondieresis omicrontonos upsilontonos omegatonos uni03CF uni03D7 Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/uni names/expert.txt000066400000000000000000000065031376445505300270610ustar00rootroot00000000000000gamma_gamma lambda_lambda uni0374.sc uni0375.sc uni037E.sc tonos.sc dieresistonos.sc anoteleia.sc iotadieresistonos.sc alphatonos.sc epsilontonos.sc etatonos.sc iotatonos.sc upsilondieresistonos.sc alpha.sc beta.sc gamma.sc delta.sc epsilon.sc zeta.sc eta.sc theta.sc iota.sc kappa.sc lambda.sc uni03BC.sc nu.sc xi.sc omicron.sc pi.sc rho.sc sigma.sc tau.sc upsilon.sc phi.sc chi.sc psi.sc omega.sc iotadieresis.sc upsilondieresis.sc omicrontonos.sc upsilontonos.sc omegatonos.sc uni03D7.sc uni03DB.sc uni03DD.sc uni03DF.sc uni03E1.sc uni1F00.sc uni1F01.sc uni1F02.sc uni1F03.sc uni1F04.sc uni1F05.sc uni1F06.sc uni1F07.sc uni1F10.sc uni1F11.sc uni1F12.sc uni1F13.sc uni1F14.sc uni1F15.sc uni1F20.sc uni1F21.sc uni1F22.sc uni1F23.sc uni1F24.sc uni1F25.sc uni1F26.sc uni1F27.sc uni1F30.sc uni1F31.sc uni1F32.sc uni1F33.sc uni1F34.sc uni1F35.sc uni1F36.sc uni1F37.sc uni1F40.sc uni1F41.sc uni1F42.sc uni1F43.sc uni1F44.sc uni1F45.sc uni1F50.sc uni1F51.sc uni1F52.sc uni1F53.sc uni1F54.sc uni1F55.sc uni1F56.sc uni1F57.sc uni1F60.sc uni1F61.sc uni1F62.sc uni1F63.sc uni1F64.sc uni1F65.sc uni1F66.sc uni1F67.sc uni1F70.sc uni1F71.sc uni1F72.sc uni1F73.sc uni1F74.sc uni1F75.sc uni1F76.sc uni1F77.sc uni1F78.sc uni1F79.sc uni1F7A.sc uni1F7B.sc uni1F7C.sc uni1F7D.sc uni1F80.sc uni1F80.sc.ss01 uni1F81.sc uni1F81.sc.ss01 uni1F82.sc uni1F82.sc.ss01 uni1F83.sc uni1F83.sc.ss01 uni1F84.sc uni1F84.sc.ss01 uni1F85.sc uni1F85.sc.ss01 uni1F86.sc uni1F86.sc.ss01 uni1F87.sc uni1F87.sc.ss01 uni1F88.sc.ss01 uni1F89.sc.ss01 uni1F8A.sc.ss01 uni1F8B.sc.ss01 uni1F8C.sc.ss01 uni1F8D.sc.ss01 uni1F8E.sc.ss01 uni1F8F.sc.ss01 uni1F90.sc uni1F90.sc.ss01 uni1F91.sc uni1F91.sc.ss01 uni1F92.sc uni1F92.sc.ss01 uni1F93.sc uni1F93.sc.ss01 uni1F94.sc uni1F94.sc.ss01 uni1F95.sc uni1F95.sc.ss01 uni1F96.sc uni1F96.sc.ss01 uni1F97.sc uni1F97.sc.ss01 uni1F98.sc.ss01 uni1F99.sc.ss01 uni1F9A.sc.ss01 uni1F9B.sc.ss01 uni1F9C.sc.ss01 uni1F9D.sc.ss01 uni1F9E.sc.ss01 uni1F9F.sc.ss01 uni1FA0.sc uni1FA0.sc.ss01 uni1FA1.sc uni1FA1.sc.ss01 uni1FA2.sc uni1FA2.sc.ss01 uni1FA3.sc uni1FA3.sc.ss01 uni1FA4.sc uni1FA4.sc.ss01 uni1FA5.sc uni1FA5.sc.ss01 uni1FA6.sc uni1FA6.sc.ss01 uni1FA7.sc uni1FA7.sc.ss01 uni1FA8.sc.ss01 uni1FA9.sc.ss01 uni1FAA.sc.ss01 uni1FAB.sc.ss01 uni1FAC.sc.ss01 uni1FAD.sc.ss01 uni1FAE.sc.ss01 uni1FAF.sc.ss01 uni1FB0.sc uni1FB1.sc uni1FB2.sc uni1FB2.sc.ss01 uni1FB3.sc uni1FB3.sc.ss01 uni1FB4.sc uni1FB4.sc.ss01 uni1FB6.sc uni1FB7.sc uni1FB7.sc.ss01 uni1FBC.sc.ss01 uni1FBE.sc uni1FC2.sc uni1FC2.sc.ss01 uni1FC3.sc uni1FC3.sc.ss01 uni1FC4.sc uni1FC4.sc.ss01 uni1FC6.sc uni1FC7.sc uni1FC7.sc.ss01 uni1FCC.sc.ss01 uni1FD0.sc uni1FD1.sc uni1FD2.sc uni1FD3.sc uni1FD6.sc uni1FD7.sc uni1FE0.sc uni1FE1.sc uni1FE2.sc uni1FE3.sc uni1FE4.sc uni1FE5.sc uni1FE6.sc uni1FE7.sc uni1FF2.sc uni1FF2.sc.ss01 uni1FF3.sc uni1FF3.sc.ss01 uni1FF4.sc uni1FF4.sc.ss01 uni1FF6.sc uni1FF7.sc uni1FF7.sc.ss01 uni1FFC.sc.ss01 Alpha.sups Beta.sups Gamma.sups uni0394.sups Epsilon.sups Zeta.sups Eta.sups Theta.sups Iota.sups Kappa.sups Lambda.sups Mu.sups Nu.sups Xi.sups Omicron.sups Pi.sups Rho.sups Sigma.sups Tau.sups Upsilon.sups Phi.sups Chi.sups Psi.sups uni03A9.sups alpha.sups beta.sups gamma.sups delta.sups epsilon.sups zeta.sups eta.sups theta.sups iota.sups kappa.sups lambda.sups uni03BC.sups nu.sups xi.sups omicron.sups pi.sups rho.sups uni03C2.sups sigma.sups tau.sups upsilon.sups phi.sups chi.sups psi.sups omega.sups Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/uni names/plus.txt000066400000000000000000000043171376445505300265360ustar00rootroot00000000000000uni0342 uni0343 uni0344 uni0345 uni037A uni1F00 uni1F01 uni1F02 uni1F03 uni1F04 uni1F05 uni1F06 uni1F07 uni1F08 uni1F09 uni1F0A uni1F0B uni1F0C uni1F0D uni1F0E uni1F0F uni1F10 uni1F11 uni1F12 uni1F13 uni1F14 uni1F15 uni1F18 uni1F19 uni1F1A uni1F1B uni1F1C uni1F1D uni1F20 uni1F21 uni1F22 uni1F23 uni1F24 uni1F25 uni1F26 uni1F27 uni1F28 uni1F29 uni1F2A uni1F2B uni1F2C uni1F2D uni1F2E uni1F2F uni1F30 uni1F31 uni1F32 uni1F33 uni1F34 uni1F35 uni1F36 uni1F37 uni1F38 uni1F39 uni1F3A uni1F3B uni1F3C uni1F3D uni1F3E uni1F3F uni1F40 uni1F41 uni1F42 uni1F43 uni1F44 uni1F45 uni1F48 uni1F49 uni1F4A uni1F4B uni1F4C uni1F4D uni1F50 uni1F51 uni1F52 uni1F53 uni1F54 uni1F55 uni1F56 uni1F57 uni1F59 uni1F5B uni1F5D uni1F5F uni1F60 uni1F61 uni1F62 uni1F63 uni1F64 uni1F65 uni1F66 uni1F67 uni1F68 uni1F69 uni1F6A uni1F6B uni1F6C uni1F6D uni1F6E uni1F6F uni1F70 uni1F71 uni1F72 uni1F73 uni1F74 uni1F75 uni1F76 uni1F77 uni1F78 uni1F79 uni1F7A uni1F7B uni1F7C uni1F7D uni1F80 uni1F81 uni1F82 uni1F83 uni1F84 uni1F85 uni1F86 uni1F87 uni1F88 uni1F89 uni1F8A uni1F8B uni1F8C uni1F8D uni1F8E uni1F8F uni1F90 uni1F91 uni1F92 uni1F93 uni1F94 uni1F95 uni1F96 uni1F97 uni1F98 uni1F99 uni1F9A uni1F9B uni1F9C uni1F9D uni1F9E uni1F9F uni1FA0 uni1FA1 uni1FA2 uni1FA3 uni1FA4 uni1FA5 uni1FA6 uni1FA7 uni1FA8 uni1FA9 uni1FAA uni1FAB uni1FAC uni1FAD uni1FAE uni1FAF uni1FB0 uni1FB1 uni1FB2 uni1FB3 uni1FB4 uni1FB6 uni1FB7 uni1FB8 uni1FB9 uni1FBA uni1FBB uni1FBC uni1FBD uni1FBE uni1FBF uni1FC0 uni1FC1 uni1FC2 uni1FC3 uni1FC4 uni1FC6 uni1FC7 uni1FC8 uni1FC9 uni1FCA uni1FCB uni1FCC uni1FCD uni1FCE uni1FCF uni1FD0 uni1FD1 uni1FD2 uni1FD3 uni1FD6 uni1FD7 uni1FD8 uni1FD9 uni1FDA uni1FDB uni1FDD uni1FDE uni1FDF uni1FE0 uni1FE1 uni1FE2 uni1FE3 uni1FE4 uni1FE5 uni1FE6 uni1FE7 uni1FE8 uni1FE9 uni1FEA uni1FEB uni1FEC uni1FED uni1FEE uni1FEF uni1FF2 uni1FF3 uni1FF4 uni1FF6 uni1FF7 uni1FF8 uni1FF9 uni1FFA uni1FFB uni1FFC uni1FFD uni1FFE uni1F88.ss01 uni1F89.ss01 uni1F8A.ss01 uni1F8B.ss01 uni1F8C.ss01 uni1F8D.ss01 uni1F8E.ss01 uni1F8F.ss01 uni1F98.ss01 uni1F99.ss01 uni1F9A.ss01 uni1F9B.ss01 uni1F9C.ss01 uni1F9D.ss01 uni1F9E.ss01 uni1F9F.ss01 uni1FA8.ss01 uni1FA9.ss01 uni1FAA.ss01 uni1FAB.ss01 uni1FAC.ss01 uni1FAD.ss01 uni1FAE.ss01 uni1FAF.ss01 uni1FBC.ss01 uni1FCC.ss01 uni1FFC.ss01 Lib/gftools/encodings/GF Glyph Sets/Greek/filter lists/uni names/pro.txt000066400000000000000000000012311376445505300263430ustar00rootroot00000000000000dotaccent uni0305 dotbelowcomb uni0359 uni035C uni03DA uni03DB uni03DC uni03DD uni03DE uni03DF uni03E0 uni03E1 uni2016 uni203B uni203F uni2042 uni2056 uni2058 uni2059 uni205A uni205B uni205C uni205D uni205E uni207A uni207B uni207C uni208A uni208B uni208C uni2135 uni2136 circlemultiply uni22EE uni23D1 uni23D2 uni23D3 uni23D4 uni23D5 uni23D6 uni23D7 uni23D8 uni23D9 uni2AFD uni2E00 uni2E01 uni2E02 uni2E03 uni2E04 uni2E05 uni2E06 uni2E07 uni2E08 uni2E09 uni2E0A uni2E0B uni2E0C uni2E0D uni2E0E uni2E0F uni2E10 uni2E11 uni2E12 uni2E13 uni2E14 uni2E15 uni2E16 uni2E17 uni3008 uni3009 uni300A uni300B uni300C uni300D uni301A uni301B u1D459 u1D510 u1D513 u1D516 u1D52D Lib/gftools/encodings/GF Glyph Sets/README.md000066400000000000000000000312401376445505300207440ustar00rootroot00000000000000 Google Fonts 2016 Glyph Sets ============================ Three levels of glyph sets were developed in June 2016 as a new baseline standard for fonts in the Google Fonts library. Existing fonts in the library can be upgraded to these as part of a drive towards new quality standards. All new fonts submitted to the library must now support the Plus level as a minumum requirement. Three sets are available in this directory: **Plus, Pro and Expert.** #### Glyphs App Tip Inside **[filter lists](./filter%20lists)** are text files with a list of glyphs for each set. Open Glyphs and in the left bottom sidebar, create a new list filter, and paste the contents of these TXT files to check if your fonts supports these characters. A ✓ will indicate you are all set. Otherwise **ctrl + click** on the numbers to generate missing glyphs. > N.B. If you get an error while creating new glyphs, select all glyphs in your font, from the top menu choose Glyph -> Update Glyph Info. Try again. If updating Glyph Info didn't work make sure [ ] Use custom naming is unckecked in Font Info > Other Settings. See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for more details. ![Glyphs list filter](tutorials/img/list-filter.png) ![Glyphs list filter](tutorials/img/list-filter-1.png) Latin --------------------------- Structure and Hierarchy of Glyph Sets for Latin: 1. **Core** A Basic Latin set for Western Europe 2. **Plus** For all fonts in the library, an Extended Latin with wide language support (Central and Eastern European languages and Vietnamese) 3. **Pro** For casual and headline fonts that need a little more typographic sophistication, an extra 171 glyphs 4. **Expert** For text and workhorse typefaces that must supply everything typographers need, such as small caps, an additional 300 glyphs | Glyph Set | Drawn | Composite | Either/Or | From Core | From Core contingency | |:----------|------:|----------:|----------:|----------:|----------------------:| | Core | 150 | 70 | | | | | Plus | 215 | 359 | 19 | 65 | 19 | | Pro | 26 | 117 | 4 | 23 | 23 | | Expert | 62 | 207 | 4 | 153 | 27 | | Total | 303 | 683 | 27 | | | ### GF Latin Core [encodings/GF Glyph Sets/latin_unique-glyphs.nam](./GF-latin-core_unique-glyphs.nam) ### GF Latin Plus (567 glyphs total + 25 optional) [encodings/GF Glyph Sets/GF-latin-plus_unique-glyphs.nam](./GF-latin-plus_unique-glyphs.nam) - Western & Central European - Vietnamese - Currencies (₡ ₣ ₤ ₦ ₧ ₩ ₫ ₭ ₱ ₲ ₵ ₹ ₺ ₼ ₽) - Alternate Numerals: Proportonal Lining Includes characters from the following unicode ranges: - Latin-1 - Latin Extended A - Latin Extended B - Latin Extended Additional - Latin-1 Supplement Optional additions: [encodings/GF Glyph Sets/GF-latin-plus_optional-glyphs.nam](./GF-latin-plus_optional-glyphs.nam) - Uppercase Accents, 25 - Slashed zero (zero.zero) #### Glyphs App Tip To quickly create base glyphs for lining figures, press *Cmd + G*, and paste in this code: | Type | Paste this code | |----------------|-----------------| | Lining Figures | `zero=zero.lf one=one.lf two=two.lf three=three.lf four=four.lf five=five.lf six=six.lf seven=seven.lf eight=eight.lf nine=nine.lf` | See [tutorials/README.md](tutorials/README.md) for more details #### Ligated Dutch IJ In case your IJ diagraph is really ligated, or has a special form (like shortened I) you will need to add these glyphs: `I_J.loclNLD i_j.loclNLD Iacute_J.loclNLD iacute_j.loclNLD`. Glyphs (versions 2.3.1 or later) will automate the OT code. If your font includes small caps, make sure to add `.sc` glyphs too. Read more about this in the [GlyphsApp Ligated Dutch IJ Tutorial](https://www.glyphsapp.com/tutorials/localize-your-font-accented-dutch-ij) **Language support for the following Latin-based languages:** Abenaki, Afaan Oromo, Afar, Afrikaans, Albanian, Alsatian, Amis, Anuta, Aragonese, Aranese, Aromanian, Arrernte, Arvanitic (Latin), Asturian, Atayal, Aymara, Azerbaijani, Bashkir (Latin), Basque, Belarusian (Latin), Bemba, Bikol, Bislama, Bosnian, Breton, Cape Verdean Creole, Catalan, Cebuano, Chamorro, Chavacano, Chichewa, Chickasaw, Cimbrian, Cofán, Cornish, Corsican, Creek, Crimean Tatar (Latin), Croatian, Czech, Danish, Dawan, Delaware, Dholuo, Drehu, Dutch, English, Esperanto, Estonian, Faroese, Fijian, Filipino, Finnish, Folkspraak, French, Frisian, Friulian, Gagauz (Latin), Galician, Ganda, Genoese, German, Gikuyu, Gooniyandi, Greenlandic (Kalaallisut), Guadeloupean Creole, Gwich’in, Haitian Creole, Hän, Hawaiian, Hiligaynon, Hopi, Hotcąk (Latin), Hungarian, Icelandic, Ido, Igbo, Ilocano, Indonesian, Interglossa, Interlingua, Irish, Istro-Romanian, Italian, Jamaican, Javanese (Latin), Jèrriais, Kaingang, Kala Lagaw Ya, Kapampangan (Latin), Kaqchikel, Karakalpak (Latin), Karelian (Latin), Kashubian, Kikongo, Kinyarwanda, Kiribati, Kirundi, Klingon, Kurdish (Latin), Ladin, Latin, Latino sine Flexione, Latvian, Lithuanian, Lojban, Lombard, Low Saxon, Luxembourgish, Maasai, Makhuwa, Malay, Maltese, Manx, Māori, Marquesan, Megleno-Romanian, Meriam Mir, Mirandese, Mohawk, Moldovan, Montagnais, Montenegrin, Murrinh-Patha, Nagamese Creole, Nahuatl, Ndebele, Neapolitan, Ngiyambaa, Niuean, Noongar, Norwegian, Novial, Occidental, Occitan, Old Icelandic, Old Norse, Onĕipŏt, Oshiwambo, Ossetian (Latin), Palauan, Papiamento, Piedmontese, Polish, Portuguese, Potawatomi, Q’eqchi’, Quechua, Rarotongan, Romanian, Romansh, Rotokas, Sami (Inari Sami), Sami (Lule Sami), Sami (Northern Sami), Sami (Southern Sami), Samoan, Sango, Saramaccan, Sardinian, Scottish Gaelic, Serbian (Latin), Seri, Seychellois Creole, Shawnee, Shona, Sicilian, Silesian, Slovak, Slovenian, Slovio (Latin), Somali, Sorbian (Lower Sorbian), Sorbian (Upper Sorbian), Sotho (Northern), Sotho (Southern), Spanish, Sranan, Sundanese (Latin), Swahili, Swazi, Swedish, Tagalog, Tahitian, Tetum, Tok Pisin, Tokelauan, Tongan, Tshiluba, Tsonga, Tswana, Tumbuka, Turkish, Turkmen (Latin), Tuvaluan, Tzotzil, Uzbek (Latin), Venetian, Vepsian, Volapük, Võro, Wallisian, Walloon, Waray-Waray, Warlpiri, Wayuu, Welsh, Wik-Mungkan, Wiradjuri, Wolof, Xavante, Xhosa, Yapese, Yindjibarndi, Zapotec, Zarma, Zazaki, Zulu, Zuni ### GF Latin Pro (+146 for 713 glyphs total + 17 optional .case) [encodings/GF Glyph Sets/GF-latin-pro_unique-glyphs.nam](./GF-latin-pro_unique-glyphs.nam) - Math symbols and Units of Measure (∆ Ω π ℓ ℮ ∞ ∂ ∫ √ ∑ ∏ ◊ ∅) - Latin General Use Extensions (U+1E08 to U+1EC9) - Superiors and Inferiors (⁰ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉) - Scientific Inferiors as *".subs"* (₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉) - Spacing Modifier Letters (ʻ ʼ ʾ ʿ ˈ ˊ ˋ ˌ) - Typographic Spaces (figure, punctuation, thin, hair, zero-width) - Additional General Punctuation (‐ ‒ ― ′ ″) - Alternate Punctuation Glyphs for Capitals - Numerators and Denominators Instructions for OT code in the GF Latin Pro set using unencoded glyphs: | feature name | created | sub one by ... | |--------------|----------|----------------| | `.sups` | auto | `one.sups` | | `.subs` | auto | `one.subs` | | `.sinf` | manually | `one.subs` | #### Optional glyphs in the GF Latin Pro set include: [encodings/GF Glyph Sets/GF-latin-pro_optional-glyphs.nam](./GF-latin-pro_optional-glyphs.nam) - Case Punctuation `.case` ### GF Latin Expert (+271 for 984 total) [encodings/GF Glyph Sets/GF-latin-expert_unique-glyphs.nam](./GF-latin-expert_unique-glyphs.nam) - Additional Unicode Fractions (⅓ ⅔ ⅛ ⅜ ⅝ ⅞) - Arrows (← ↑ → ↓) - Geometric Shapes (■ □ ▲ △ ▶ ▷ ▼ ▽ ◀ ◁ ◆ ◇) - Small Capitals - Discretionary Ligatures (T_h c_t c_h s_t) * * * Cyrillic ------------------- Structure and Hierarchy of Glyph Sets for Cyrillic: 1. **Core** is the existing default set, a Basic Cyrillic 3. **Plus** includes added language coverage for Slavic, Non-Slavic, and Uralic languages 3. **Pro** for Headline typefaces, with language support more Non-Slavic languages 4. **Historic** provides support for historic Cyrillic, Old Church Slavonic Texts ### GF Cyrillic Core (not used) **Supports the following Cyrillic languages:** Balkar, Belarusian (Cyrillic), Bosnian (Cyrillic), Bulgarian, Croatian (Cyrillic), Erzya, Karachay, Kumyk, Macedonian, Moksha, Montenigrin, Nanai, Nogai, Russian, Rusyn, Serbian (Cyrillic), Ukrainian, West Polesian ### GF Cyrillic Plus (184 Unicode characters in 277 glyphs including Small Caps + 40 localized variants: 317 total) [encodings/GF Glyph Sets/Cyrillic/GF-cyrillic-plus_unique-glyphs.nam](./Cyrillic/GF-cyrillic-plus_unique-glyphs.nam) [encodings/GF Glyph Sets/Cyrillic/GF-cyrillic-plus-locl_unique-glyphs.nam](./Cyrillic/GF-cyrillic-plus-locl_unique-glyphs.nam) **Supports the following 90 Cyrillic languages:** Abaza, Adyghe, Agul, Akhvakh, Altay, Andi, Archi, Avar, Azerbaijani (Cyrillic), Bagvalal Balkar, Bashkir, Belarusian (Cyrillic), Bosnian (Cyrillic), Botlikh, Budukh, Bulgarian, Buryat, Chamalal, Chechen, Chuvash, Crimean Tatar (Cyrillic), Croatian (Cyrillic), Dargwa/Dargin, Dungan, Erzya, Gagauz (Cyrillic), Godoberi, Hinukh, Hunzib, Ingush, Juhuri/çuhuri (Cyrillic), Kabardian, Kalmyk, Karachay, Karaim (Cyrillic), Karakalpak (Cyrillic), Karata, Kazakh, Ket (Cyrillic), Khakas (Cyrillic), Khinalugh, Komi, Krymchak, Kryts, Kubachi, Kumyk, Kurdish (Cyrillic), Kurdish (Cyrillic), Kyrgyz (Cyrillic), Lak, Lezgian, Lingua Franca Nova (Cyrillic), Macedonian, Mari (Hill and Meadow), Moksha, Moldovan (Cyrillic), Mongolian (Cyrillic), Montenigrin (Cyrillic), Nanai, Nogai, Ossetian, Russian, Rusyn, Rutul, Serbian (Cyrillic), Shor, Slovio, Tabassaran, Tajik, Talysh (Cyrillic), Tat, Tatar, Tindi, Tofa, Tsakhur (Cyrillic), Tsez, Turkmen, Tuvan/Tuvinian, Udi, Udmurt, Ukrainian, Urum, Uyghur (Cyrillic), Uzbek (Cyrillic), Votik (Cyrillic), Wakhi (Cyrillic), West Polesian, Yaghnobi (Cyrillic), Yukaghir (Northern and Southern). Includes currencies: ₮, ₴, ₸. The ruble sign (₽ U+20BD) is not included, since it is already present in the Latin Plus set. ### GF Cyrillic Pro (+82 glyphs for 399 glyphs total) [encodings/GF Glyph Sets/Cyrillic/GF-cyrillic-pro_unique-glyphs.nam](./Cyrillic/GF-cyrillic-pro_unique-glyphs.nam) **Additional characters in this set provide support for the following 18 languages:** Abkhaz, Chukchi, Enets, Eskimo, Even, Evenki, Itelmen, Khanty, Kildin Sami, Koryak, Mansi, Nganasan, Nenets, Oroch, Orok, Sakha/Yakut, Tati, Yukaghir, Yupik Ulch, **Full list of supported 110 Cyrillic languages:** Abaza, Abkhaz, Adyghe, Agul, Akhvakh, Altay, Andi, Archi, Avar, Azerbaijani (Cyrillic), Bagvalal Balkar, Bashkir, Belarusian (Cyrillic), Bosnian (Cyrillic), Botlikh, Budukh, Bulgarian, Buryat, Chamalal, Chechen, Chukchi, Chuvash, Crimean Tatar (Cyrillic), Croatian (Cyrillic), Dargwa/Dargin, Dungan, Enets, Erzya, Eskimo, Even, Evenki, Gagauz (Cyrillic), Godoberi, Hinukh, Hunzib, Ingush, Itelmen, Juhuri/çuhuri (Cyrillic), Kabardian, Kalmyk, Karachay, Karaim (Cyrillic), Karakalpak (Cyrillic), Karata, Kazakh, Ket (Cyrillic), Khakas (Cyrillic), Khanty, Khinalugh, Kildin Sami, Komi, Koryak, Krymchak, Kryts, Kubachi, Kumyk, Kurdish (Cyrillic), Kurdish (Cyrillic), Kyrgyz (Cyrillic), Lak, Lezgian, Lingua Franca Nova (Cyrillic), Macedonian, Mansi, Mari (Hill and Meadow), Moksha, Moldovan (Cyrillic), Mongolian (Cyrillic), Montenigrin (Cyrillic), Nanai, Nenets, Nganasan, Nogai, Oroch, Orok, Ossetian, Russian, Rusyn, Rutul, Sakha/Yakut, Serbian (Cyrillic), Shor, Slovio, Tabassaran, Tajik, Talysh (Cyrillic), Tat, Tatar, Tati, Tindi, Tofa, Tsakhur (Cyrillic), Tsez, Turkmen, Tuvan/Tuvinian, Udi, Udmurt, Ukrainian, Ulch, Urum, Uyghur (Cyrillic), Uzbek (Cyrillic), Votik (Cyrillic), Wakhi (Cyrillic), West Polesian, Yaghnobi (Cyrillic), Yukaghir (Northern and Southern), Yukaghir, Yupik. ### GF Cyrillic Historic ( 37 glyphs ) [encodings/GF Glyph Sets/Cyrillic/GF-cyrillic-historical_unique-glyphs.nam](./Cyrillic/GF-cyrillic-historical_unique-glyphs.nam) Provides support for Pre-Petrine Old Church Slavonic Texts. ### Recommended Additions See [RECOMMENDED.md](RECOMMENDED.md) ### Acknowledgements: GF Glyph Sets defined by Alexei Vanyashin (@alexeiva) and Kalapi Gajjar (@kalapi) from 2016-06-27 to 2016-10-11, with input from Dave Crossland, Denis Jacquerye, Frank Grießhammer, Georg Seifert, Gunnar Vilhjálmsson, Jacques Le Bailly, Michael Everson, Nhung Nguyen (Vietnamese lists), Pablo Impallari (Impallari Encoding), Rainer Erich Scheichelbauer (@mekkablue), Thomas Jockin, Thomas Phinney (Adobe Cyrillic lists), and Underware (Latin Plus Encoding) Lib/gftools/encodings/GF Glyph Sets/RECOMMENDED.md000066400000000000000000000071231376445505300215340ustar00rootroot00000000000000 Recommended additions === to [Google Fonts 2016 Glyph Sets](README.md) Although **Plus, Pro and Expert** sets provide extensive language coverage there may be particular design cases where additional characters would be helpful to have. Here is a list of popular ligatures that are recommended for addition on a case-to-case basis: f_b f_f_b f_h f_f_h f_j f_f_j f_k f_f_k f_t f_f_t c_k c_p e_t l_l s_p t_h t_t t_z *** ### Space Characters [Space Characters Design Standards — Microsoft Typography](1) ### Better Components Generation in Glyphs ### By adding the following glyphs, you will enable auto-generation of many components for the GF Latin encodings. ``` DZ Dz dz slashlongcomb slashshortcomb ``` ### Armenian Dram ### Armenian Dram currency symbol is a recommended addition to any Cyrillic-supporting fonts, due to popular use of Russian in Armenia. 0x058F ֏ dram-arm ### Better Vietnamese ### Stacked Vietnamese accents may require custom tailoring. This can be achieved by adding additional accents. Glyphs will automatically place these newly created accents were applicable. Image: `ecircumflexacute`, `circumflexcomb_acutecomb` and `acutecomb` ![ecircumflexacute](tutorials/img/ecircumflexacute.jpg) Recommended glyphs for better Vietnamese diacritics. ``` brevecomb_acutecomb brevecomb_gravecomb brevecomb_hookabovecomb brevecomb_tildecomb circumflexcomb_acutecomb circumflexcomb_gravecomb circumflexcomb_hookabovecomb circumflexcomb_tildecomb ``` *Further reading:* [Customized Vietnamese accents](Vietnamese/README.md) ### Polish Kreska ### Polish Kreska shares the same unicode as the acute accent, however it is designed differently. Explore Adam Twardoch's guidelines on [Polish Kreska](2) Here is a list of additional glyphs for better Polish support: ``` Cacute.loclPLK Nacute.loclPLK Oacute.loclPLK Sacute.loclPLK Zacute.loclPLK cacute.loclPLK nacute.loclPLK oacute.loclPLK sacute.loclPLK zacute.loclPLK acutecomb.loclPLK acutecomb.loclPLK.case ``` ### STRASSE or Straße? ### The Google Lating Plus encoding includes **ẞ Germandbls U+1E9E**. Does your font include Small Capitals? For better compatibility you may consider adding the germandbls.calt glyph to access ẞ U+1E9E in Small Caps fonts. In Glyphs go to *Glyph > Add Glyphs*, and paste this code: ``` Germandbls=germandbls.calt ``` Add this calt feature: ``` sub @Uppercase germandbls' @Uppercase by germandbls.calt; sub @Uppercase @Uppercase germandbls' by germandbls.calt; ``` ### Duodecimal(dozenal) notation Add these glyphs for single-digit representations of numbers 10 and 11. ``` U+218A (turned digit two) U+218B (turned digit three) ``` Recommended links for further reading: * [How to draw a Capital Sharp S](https://typography.guru/journal/how-to-draw-a-capital-sharp-s-r18/) by Ralf Herrmann * [Localize Your Font: German Capital Sharp S](https://www.glyphsapp.com/tutorials/localize-your-font-german-capital-sharp-s) by Rainer Erich Scheichelbauer N.B. The question of German Uppercase Capital Sharp S is still highly debatable, and its usage hasn't passed into the official orthography. ### Cyrillic component building These glyphs are used for component building and are non-exportable. Don't forget to set the non-export tag. ``` descender-cy descender-cy.case verticalbar-cy verticalbar-cy.case ``` ### Recommended links: ### Pablo Impallari's [Latin encoding](https://github.com/impallari/Impallari-Fontlab-Encodings/tree/master/Impallari%20Latin) [1]:https://www.microsoft.com/typography/developers/fdsspec/spaces.htm [2]:http://www.twardoch.com/download/polishhowto/kreska.htmlLib/gftools/encodings/GF Glyph Sets/TROUBLESHOOTING.md000066400000000000000000000022041376445505300222740ustar00rootroot00000000000000 Troubleshooting List Filters === back to [Google Fonts 2016 Glyph Sets README.md](README.md) You are adding new glyphs to your font, and you may get this error: ![glyphs app fix](tutorials/img/fix-1.png) Say, you are trying to add `DZcaron`, but the font already includes the same glyph with a different name `uni01C4`. The FilterLists are fully compatible with the Glyphs naming scheme. So, for a seamless workflow we advise changing the glyph name in the existing font to follow the same convention. To do this you would need to Update Glyph Info by following these steps. Step 1. Open Font *Info > Other Settings*. Make sure `Use custom naming` is unchecked. ![glyphs app fix](tutorials/img/fix-2.png) Step 2. Select all glyphs, from the top menu choose *Glyphs > Update Glyph Info*. You might get this message. Click Update. ![glyphs app fix](tutorials/img/fix-3.png) Step 3. Now your glyphs should all appear in the list filer *** ### Recommended links: ### * [Glyphs App Forum](https://forum.glyphsapp.com) * [Glyphs Handbook 2.2](https://glyphsapp.com/content/1-get-started/2-manuals/1-handbook-glyphs-2-0/Glyphs-Handbook-2.2.pdf) Lib/gftools/encodings/GF Glyph Sets/Vietnamese/000077500000000000000000000000001376445505300215655ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Vietnamese/README.md000066400000000000000000000106021376445505300230430ustar00rootroot00000000000000### Making Vietnamese look better Here is how to create localized Vietnamese glyphs, different from default Latin ones, in Glyphs App. First, let's create glyphs for localized Vietnamese accents. Go to `Glyphs > Add Glyphs`, copy and paste the command below: ``` acutecomb=acutecomb.loclVIT gravecomb=gravecomb.loclVIT circumflexcomb=circumflexcomb.loclVIT brevecomb=brevecomb.loclVIT tildecomb=tildecomb.loclVIT ``` ![Vietnamese accents](img/VIT_accents.jpg) Adjust the new accents to your liking. Then add localised Vietnamese glyphs with the next command. Go to `Glyphs > Add Glyphs`, copy and paste the code below: ``` A+acutecomb.loclVIT=Aacute.loclVIT E+acutecomb.loclVIT=Eacute.loclVIT I+acutecomb.loclVIT=Iacute.loclVIT O+acutecomb.loclVIT=Oacute.loclVIT Ohorn+acutecomb.loclVIT=Ohornacute U+acutecomb.loclVIT=Uacute.loclVIT Uhorn+acutecomb.loclVIT=Uhornacute Y+acutecomb.loclVIT=Yacute.loclVIT a+acutecomb.loclVIT=aacute.loclVIT e+acutecomb.loclVIT=eacute.loclVIT idotless+acutecomb.loclVIT=iacute.loclVIT o+acutecomb.loclVIT=oacute.loclVIT ohorn+acutecomb.loclVIT=ohornacute u+acutecomb.loclVIT=uacute.loclVIT uhorn+acutecomb.loclVIT=uhornacute y+acutecomb.loclVIT=yacute.loclVIT A+gravecomb.loclVIT=Agrave.loclVIT E+gravecomb.loclVIT=Egrave.loclVIT I+gravecomb.loclVIT=Igrave.loclVIT O+gravecomb.loclVIT=Ograve.loclVIT Ohorn+gravecomb.loclVIT=Ohorngrave U+gravecomb.loclVIT=Ugrave.loclVIT Uhorn+gravecomb.loclVIT=Uhorngrave Y+gravecomb.loclVIT=Ygrave.loclVIT a+gravecomb.loclVIT=agrave.loclVIT e+gravecomb.loclVIT=egrave.loclVIT idotless+gravecomb.loclVIT=igrave.loclVIT o+gravecomb.loclVIT=ograve.loclVIT ohorn+gravecomb.loclVIT=ohorngrave u+gravecomb.loclVIT=ugrave.loclVIT uhorn+gravecomb.loclVIT=uhorngrave y+gravecomb.loclVIT=ygrave.loclVIT A+circumflexcomb.loclVIT=Acircumflex.loclVIT A+circumflexcomb.loclVIT+dotbelowcomb=Acircumflexdotbelow E+circumflexcomb.loclVIT=Ecircumflex.loclVIT E+circumflexcomb.loclVIT+dotbelowcomb.loclVIT=Ecircumflexdotbelow O+circumflexcomb.loclVIT=Ocircumflex.loclVIT O+circumflexcomb.loclVIT+dotbelowcomb=Ocircumflexdotbelow a+circumflexcomb.loclVIT=acircumflex.loclVIT a+circumflexcomb.loclVIT+dotbelowcomb=acircumflexdotbelow e+circumflexcomb.loclVIT=ecircumflex.loclVIT e+circumflexcomb.loclVIT+dotbelowcomb=ecircumflexdotbelow o+circumflexcomb.loclVIT=ocircumflex.loclVIT o+circumflexcomb.loclVIT+dotbelowcomb=ocircumflexdotbelow A+brevecomb.loclVIT=Abreve.loclVIT A+brevecomb.loclVIT+dotbelowcomb=Abrevedotbelow a+brevecomb.loclVIT=abreve.loclVIT a+brevecomb.loclVIT+dotbelowcomb=abrevedotbelow A+tildecomb.loclVIT=Atilde.loclVIT E+tildecomb.loclVIT=Etilde I+tildecomb.loclVIT=Itilde Ohorn+tildecomb.loclVIT=Ohorntilde O+tildecomb.loclVIT=Otilde.loclVIT Uhorn+tildecomb.loclVIT=Uhorntilde U+tildecomb.loclVIT=Utilde Y+tildecomb.loclVIT=Ytilde a+tildecomb.loclVIT=atilde.loclVIT e+tildecomb.loclVIT=etilde idotless+tildecomb.loclVIT=itilde ohorn+tildecomb.loclVIT=ohorntilde o+tildecomb.loclVIT=otilde.loclVIT uhorn+tildecomb.loclVIT=uhorntilde u+tildecomb.loclVIT=utilde y+tildecomb.loclVIT=ytilde ``` Then, create new unique Vietnamese glyphs with special accents, and generate additional localized variants for these glyphs. Go to `Glyphs > Add Glyphs`, copy and paste the command below: ``` Aacute.loclVIT Abreve.loclVIT Acircumflex.loclVIT Agrave.loclVIT Atilde.loclVIT Eacute.loclVIT Ecircumflex.loclVIT Egrave.loclVIT Iacute.loclVIT Igrave.loclVIT Oacute.loclVIT Ocircumflex.loclVIT Ograve.loclVIT Otilde.loclVIT Uacute.loclVIT Ugrave.loclVIT Yacute.loclVIT Ygrave.loclVIT aacute.loclVIT abreve.loclVIT acircumflex.loclVIT agrave.loclVIT atilde.loclVIT eacute.loclVIT ecircumflex.loclVIT egrave.loclVIT iacute.loclVIT igrave.loclVIT oacute.loclVIT ocircumflex.loclVIT ograve.loclVIT otilde.loclVIT uacute.loclVIT ugrave.loclVIT yacute.loclVIT ygrave.loclVIT ``` ![Vietnamese accents](img/VIT_glyphs.jpg) Finally, update your `locl` OT feature. Go to `File > Font Info`, Features tab, `locl` sidebar item, and check the "generate Feature automatically" checkbox at the top, then click the "Update" (rotating arrow symbol) to refresh the code: ![Update locl feature](img/locl.png) Other glyphs are unique for Vietnamese within the GF Latin glyphs sets range, they will be created with special Vietnamese accents. *Acknowledgments: Nhung Nguyen [@crystaltype](https://github.com/crystaltype) had the idea and this tutorial was written by Alexei Vanyashin [@alexeiva](https://github.com/alexeiva)* Lib/gftools/encodings/GF Glyph Sets/Vietnamese/img/000077500000000000000000000000001376445505300223415ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/Vietnamese/img/VIT_accents.jpg000066400000000000000000000376271376445505300252240ustar00rootroot00000000000000ExifII*DuckyP-http://ns.adobe.com/xap/1.0/ Adobed      tX   !1TUA"Qaq2r45 #3stVBRb%Ѣc& !1AQaRq"23rBbS#cC$£4 ?R·1$'"5ϓ,ME߆THF߈Q`G5yyLjQ y} ^^q+tC_CWx믯e"GD0!5yyLjQ y} ^^q+tC_CWx믯e"GD0!5yyLjQ y} ^^q+tC_CWx믯e"GD0!5yyϤj[֕txjB02# :PYVE5=̵&ff333#Ee@<>NeoQ/_CWx믯e"GD0!5yyLjQ y} ^^q+tC_CWx믯e"GD0!5yyLjQ y} ^^q+tC_CWx믯e"GD0!5yyLjQ y} ^^q+tC_CW@Զ$!m3ajIY\0ĽlE]5a_i9¡obQ],~-Sj]u죢W]}{(Ήe1{BM4ذ>oLCZwτokPQ>~T ->ݯL&>?@Y־P0{ʈBMʀ WbDJ6'l+bCi>/s! 6 }-c/{7.i߱`}{F9)ޙ +W}*= 8߸H[D1G_.pV:K֩bKp!s)<x֥'D ďJB=jiK+gV-+MOtN#UjZn).u%}*Us\s1Y'nkN}n5e?HFFFded6>ZPϮ]҄Mqݾ.T@.bnTM%JQ%BK)J<31$7U?ÿ/Zvm5m\iwx(lq2LCdGl4tY1kiMi7Jj߾KsfeۆٺGKA̱N$dc'VU*XfaS 3t>cO>DKqϳwk)Is;_Eý%#Uim%:mf#E9 #$'p(LHe=6Q^VzjzI|EGA3#z;I?76K;&LzzxWakὥFF,f‘u5,DLKm~ Dy\Z8rR{ELFj33E('V}u"k6rsr:vngt| ϴr[S%,qI-9oDQLPG&JYpyV43H\ӛ9-Ɋk%f$㔳`eiCS'3M|#FntkH>0VjTD6,}HZ͂VDjIc;d<ѿj=kx(u>џK:pT#%$*##2m\6O #S)xv47DZ׳OWKR:M$;Hkf݁aZ=[ )9rJW#8DDJ2%*Td9Zq?'N}2V~cQ=rߠ݉=l) I YcI O +5=%h;4dE([XMzLی쇕Kf ddK'>Oh+Qd V)TqujDžx2Rwyׇ2eJ{;- ogykgD{B2!&D%T_Z?qPPò}7U&͘j7pO穎ktoUTff''.V4# r<fWK;&+TJx$%?d+sS;2V_ U i{>qq C? D?S$D7v2D>wJ5OvQIP؟y j̄$&tO׿#) Bl~Ł矬|wzd4]Ӹ|'~X=  _Hn9nze 7'V}u"k6rsr ?Cc7[I{IMs蟯hFS{ٸ$9sN+1?XOiZ7T5qOqư.z@@%'OsAnN_E(Dm=D!&@b~o!1֓2`?^Ќ2p/yIrWc~!ҵwokN`\ 1J'~Oʟa"%ٻ锂$Y־P0{ʈBMʀ& lCcW'd!&5ϳ~eLef^`;,hcO>DKqϳwk)I:}t\ao M鿊؇ƯZOBMkgD{B2!&˚wXA^юyx7C5|Kԙ06Xڔ{ UY[Q~Q~chi=mʾOLmnU~ch0o)I&JeRx_}]\5Aj¾DLX֒Ka-2nIo>&)˛$U܎ ?[D/4xmrے\Iޔ4Zjd^㮥nlBcPәy-Q~mIm,SNQ)D%I<26' }H}Ia#N3nk֘uֿ|ZQp:a:qk-5P3͙/{(Ȣf3`X)7gnqU 4&+2IqgK3f*_Pk}ڶRD'b5>8Q?iQ0t$}<ĄUBQ*zw6ᨏ:ГQ`y-~dM O{}YS$(kLs_rjqXLMcz+HUKu.p%DXVIHR$;I;mY*B[&qwM7١sV#P͊MCJzuJLwTO4b&o""I]l8JX?_1_jSsFجۜ3+&VIN/i]ԦQI<N_Ӥj/k--L2$?5!"i\VM˰M򕉼!$$8xJ|=6頗Ԣ5j.I^Y{MnږU%a˻S&Lj⫑!k&7ʑ+dҔ^[K4ffpΫM-gS Tq7ܱ2znq(ҷTZ.%kϓ%5/2\Ӯd^X+>P(awlP)kK+t)h<_5]+|0mYjTHi84X] q_u+4gJSKmZlb|M+x ֍IREoYY-G5<2l0JY啸Ms}[5vAjZ+::;LKW*Bђd!'CjG!c6K /v׈Vu%pύuT.N/1zNsUW%juRf&Q' ,ViAĵIl))G(NkV乿tb_NJH2Fe/Jaz% t; iW5s'OsmJDYyX$ԞQ2I[/(Χ֕8axT0pJl[.KZԵUJ*)}ݛ2Uѫfr94O+申$fyFSNӌ Υ}5+YZ=E=:uO6ٶZ.Fj /\!&Zq< Xr m3s&bJDWͥNknVҟU}R]“`cTu9jY k6G*G%ؽy/rK502\Ta&'ܟsej?O&yɲ͋$ӊQz#JXI%j$͍K.7rrǁW[OV7,ɹdѹ%et桹ZBVkNqUUcU $T10+l=&FJuF*s)fU8zS5iLԚhdZOςy1&V6#\YɰJi/DٓhI(14fnN3>ݒ93fi=G5Ss5}omkE tR%$S}[kݒːyu[R6Oo &'.NtIUom ; eQl$!u**I'>B,_B?aJI|盧,]JR149¦?iwx+ .-PܔuN7jS!_9-nI A/$!YwK\O˪O\+[2d\K@t#\'o.7;\󠏼/}%t?˲_:d4R7j*ZRI,^8^b>Id՜m޶t7%pO $ye$.QY+T?ISE<.qϙ_ B_tzvHhԧ#6Of&_]w299O7~QQϋX/+o2NK[̤ysb#xG!C4{%g,9%4px?A?xY3uOXhD6KhY4Ql'{f_ p AxKB۸:'ݞ.I93Ж즷?5.{Ƚ2 A/~BvKF+S4){)U35rSχ'0o:K[ױc%o%>tYz_o:_Xʮ}^Y-؏.2ޯ5{ʪh7.[D2NV~nOx zTLƃ '6a+ˇ&c<=wBݒGɳZ=Vun;ΤT&Df|a';cd|ɣT&DF`FD\}濥~w/󠟽?&Ϥ'_garɴӭrL6F )X-f~aY2?UTi|$RZceu6ΨYA{2J$h{jȳ$Xr)GdZMI7d,0f/:7q7TmyPt%Xs8@_Xʔ>B>"7bHʬZlj9 lB]7sLx󠟼cs얣dD7Ǹebj:^*3ǟm0BUu~q0J|FTTNoy 9^^pt'ď,L1xO4wUe󠉾kWdZ ㆅմ|}!'$/v8C3oY՝Y;˙E>^ptW/.+lezZN'"xjOg.C @BݒYk'$kرOK5M6[, z\0t]A~_< Y=`%H'0r)-/{$ aUV]һygӒ^j3OMq/MyM%o8 uDԓ#V&^tT[ /˃+7z 9(&䚫f+3{"%!r΂~JݒɲZ\-Vq!¯I)(ď!+}'.N`t&'QS$W!-3%4'ғцWm}UZM$U##6jyux6djeXge,R @Y+vKqC؆Tq[bdCdH2#2.LCyBKb\rYb+ MZuM!9N.,jr@?Vҿ\_nbsgEJrS%_9-nG"0rm7AE~nhs+͚vlK9$\};3Ye Wm.Im,Q0PXC%V!,Kd>RO1 tY3uKr|VJ6$-{ŢEK.'n*S_4 k'${IYjBM Vm8LȏB-$dybn,Mn)sa&dU5#x#Rk+o_$73)J2P)+dDBO0@_Y%u'|MR{rF\$ȋ+x=E󠟼?7do˚ZNFa4MY),Tfj< ,L0t?.xWЗyOޟ]m:ibY L}%nhJžI' mE 0U(u?KYʚ%2W[5/¿/=?#|_ @?˲DgL(cjɤKUmi͔It2ÛL7d*Kݒ<4Mu PR^O68DoB/eQ{%OamV(XԲi |)N}, n'goKwL%OK/A(7vK:ԭLҔQ֠iݚUdqÓ7濥~a,FP<2KFX(H7W/_dWx r#ʿG^4kkʍQӗ Cy>+?7d}oI9)L=O1'H6n-I7\A6뽞Abd+}ϐ9L7l~OOQ4j#ݐm\ ȈҌHȈ.NB AyV~nw/ޟ]>^=bϬh$"<>#7G :x~oudhxXr lN,ii5Yʈ9Lib/gftools/encodings/GF Glyph Sets/Vietnamese/img/VIT_glyphs.jpg000066400000000000000000002241151376445505300251000ustar00rootroot00000000000000ExifII*DuckyP-http://ns.adobe.com/xap/1.0/ Adobed      TX   !1AQ" a2Rs4qBr#3T5UtVfv'8b$7CSu6wc%ĥD& 1!AQaq2"R3Bbc$Sr#C ?EyE4a4A⤚-]ڝ)*RGqac]n!>UH/?ac]Rz]t蚯4[y :lٲ Ln)OǎӀӄⴄBN ss&:Sv%Qe-ԕys'=4Eac]n!>UH/?ac]cYJ #̈J4%FK|)]>UH/?ac]n!>UJ n {aڲ}["HrtW"DE]U;j|`yw{'e򭑎mնJn2" rjUFO#Xv03']!bIA%y svTD,];n#/Ayh~ 7 *甮rH*'b8">J)]>UH/?ac]n!>U//*$# \6lmYeSq DEUUtD!rUv.wXX]Bc&D'L;#HdQHd/IOsSac]n"~ʻC=4C,|d7T/O5ӎ")}{gdoKV@MPꢭB]XՊ ~?qv {CiXWiȮ$gq E#2DDN*)>UPnA~ەh͢2 4eX!]eoQB/ylXr=4Eac]n!>UH/?ac]n!>U7#!e+db#/9Ğ Soޗïԅ>^?sSʻC=4C,|_J=UMql#,|nD'p GycI=w*Ⱥ+Fv&EKT^(vj[U6v9#0gvf'#&6(@5.SŢTD2;*{+p|ǦAraKe@uE 4Q!TTTSq,]яq>UH/?ac]7d3YJfvž:R;v ~?q}v {CiXWh} ~?}v {CiXWinw}sw6фǒ1%}UttByO *'jpĦ_+mVIr2;s'tPpyHI5BEDQS-7Ր=4Dv {CiXWh[G%Zb:/B ; ǂEac]n!>UH/?ac]{jn-}vp㦛]]wPW2J$օ.BN"/!(5I:Qr7+>$Y/#6 [ lrmƞeCmQDQQQtT[ ˽*+c=4Dv {CiXWh} O?h~ 7 *ݕ䔬v"EUPE6x}1)]>UH/?ac]Ҫ"OqU{A4[ *-%8VyycfٲL –͋"1o ]LU9TuN E ɴip~~?aoXWh} ~?}v {CiXWh} ~?}v5:Ly9)&Q57OAV!j"E?~jU;<3/OyOVfP9T41y6+4˰9 [\|wH{"cn}ojlކjru͂\kw2г5&'b$Ǩ$qE4?%)R7˗1P ӨVkK*j.R Gމ,=jkAR) <U%ADU84%v\///YOWlxZ%buH"֎sV|)j.\h-P81mQbGi7f!o fݺE[#ZQz1ݸ3V  شS>W' >-B(nYa{L>%m5eC]9T9Ťhknch'U\ܬWWqT'U TM`yo[u?gi>n3kK$Z,FLܦKx˜\uF4@G2UGG!+йjl.:A@/}.R, q׭J @ܣ4rG@PAO]Qhar;hҽs{eŷf76ckdCXy+s;i-r{vnEW "Q=;Mm"FwC,V"^6촁GUI]5]8]S?irqB`ɤ#R@NeUW\wA)7Z f[C*RXF( $V&st9Lg:޻ķn)*ۢ6b]O^ADTFy^ݶ`=5rsכlu%Y,Ju]pu7y^P>QO! +G9Sr-z{KQI[o 6Pfʴ8P 7ꪨhr-SJBkAP "^Kb%@xJmf,)\n45e@utBUB{t"J7U)]6q,y͹5S$X M]{VUWTT;OSۯX[p2VkY-2 ͐ k ]+uTf1f`_#+M=]˩]d s~&ɘ yuTuTNZhyTds.Lé7B-ϕ¢ρt P( s^qOp,˳*ޔve=\Jw+qrzslna|ƙ2 dl1TAuAE-UQ;8dyįm6qzϲ͵V7>y'@H [^C|U;3ܴ3'kPyECEpKԅK""j"P7C@I̷6bwG,kbcOꪆ.9y}ZuDy5(؏Z]7{;oxX1 4`d(&bkxQ$eq)= XDWWEFHTk?TW}z;e-Mm759PǠ߶$J۬zC¯o[˗Aot;-]J`P_Cvu$ =hmTuMA<4-Su;(\{b ޭ܆'g*d%tNWSN=FV<ȽS;K{JF[h"ehC / N9>>YiWn8:.Fh|Ov| Z@jӻEvgڋ|_K4+|gPuP9(UDr8(|[yd~q-+ۤ.YpE#%BƋõyNEmJQrX,}%iӦ]]hcc7[>ʕdCz^+yq2\:3DDDJ )oXv%Iaw6Hx_r}x~IҞ㶙{/ȣNv;uqX+mh{j4w+S֗2qVEJ>? Et"k""FZ^\M{\ma[AYol0Vg|DEVIPܵj6 @3/߃kcPx}/TȇY__˭k3fLmf[㘰~E3=#<'TOݬXi:i[ܦe걝w6~P|v+ՊF!OpSymM4D'J5[cq5?w3sv>'ɖy~,/\. :H=-Yi⎗Fyv̫NP i%rG-RX=n ͷ +%ҽg9$d""D("%Py½Zx?LMosc:*xv˜X7z en &D!EESM8V0G&Ƹ̾yP+|bT-P_{YdU.qZ*^ `qBσn%mіFkBt7krpw2\~b/%$y(J 5mk;|&2[OWZvB(em~Lj]j9+Uou{&y ՗IaxOƱ DzRr.1387nXnGkƛqY[mXz"WMt-܌.+ʩgPy( ~{IyT]_.[)lԟoJS})6˕@ķ[v]Y 넾!UZDN77so..LR&\TV wPV]O~7-˲tO^Ge6]gYٸZfi 4 $`H' ˖ŔRE.7e#Y]pw^f*p$ 4fT8+bvHlSuz+qJ9/K gFwNۣ/}'X*WEO['N*ߎo:eoƺZ(ok{mqO{g;PDدTj- D\RHݲ~7/%3 *ZFFP8M!:j&*kX(74qV+AQ7W.` hۤ\;W$K+r*we\1ͦhP9\-5"3FȘ%Mj;1]÷{kQH%К}$O!)[uXAI ӿew0]+^@jûC.Ƕ6Hv. hih(H{qVIⷷm|6jxr1MħfY 0ݞFeD\tE5UTJER_3TD|UWDYyr_wvvi;l-gvtv5m֌WQSX4Ε}W;B齬6|zW',&|ҭ֓n-.lˠft/b L\*, @ ;Fm܍} l\<i/Ffm4kQ|#R/9E<""\nv5Z |53UE|8*?.[ {K ;U{?);!vSڵAC8) n&X%-ۤT~ݬh2-jɗ POM||VZzhtMٸˠ^=P _:W}HZ&^Ԇr#.uy+"Z1UQK]=1FߪkZug].|b=u9Vlٻ#-ݡd[’8\.{S$*S{NՒIewì3 %htZէEPl5h(^vd .lͲxiUsu9ǣ.'H::enwpEƜZqtQ1$I;QSVӪ#PH_&?:W/}=%@jpr]+sь#rL~/m('1wl\j' zM:U?ZJfIw%UO ^حymg\F^q侵.+ZĖȫ׬|3\R6nn`TQRfCbdSQ$]:ITr)oXv%Iaw6Hx_r}x|%:xޞ6ms+K&bLb+ZȎ2[udPt| $[=jݵbl2 j'\ȫ׬ؽl\N×a[-X&`nI'~lzGmThhRjޱ~7P(em~Lj]j9+Uou{&y ՗IViΕxVV^>#8 :w㧏ejj56rvSOY%tHWl{Qlz͎t{鰝bR73S/z]'t1X0hࢢh_9 KRmrя /4jsee-V[pϠ==YC 7#cK՘f6aN:<@&8nWUxCҴfa)q,f%ߔq̲L%H.1&()JpVB0AmPQI^ժp®o-1іS[}YKcK}%θ0o۰@v#a*iƦqĻ!bmQmr:h|Ov| Zuݰvw{, ܗ℆#2c6X )*'ׅc4ڢ43'z])Oj ܝջs%nmye~d(-H6&k[i՚9^8\R(}*úk{2Ψn de̷ؐ]њm(.2z"&/s8JWJ sաNn4,~sxںN3(+!ǛiL5MQt+ےu4۰V7\u^]|UqXi!PHyECEpKԅK |!tKfm}Oc)mb\Iul!UEA]E҅W)Ah7'&DnQ`͌-\:l"8`ǘuTMS_U>S8 ݮ}C;j1{l%NHNPMjB;I[^6/7E|4V|!a'Eမ( FnǝmY/Hu; Uݫodqķ ycܶ`BĢW0JXF-|gꇉ\Q T=wt3V,Z->Q^vCՏwj$:mZw]O)]ڻ}xt .ŸY]lfl 8{t{2[2GAtપVB8?%;nT6Y`.V1%Qwq=l)b L/xr/f[m5=GvR3ޥ[QOj;yKܷ^qp+SUS&,s@5#_-x$TO%j78φsF˱Qw lĺAn>J$8'. 2"&MŴRtW;Ai-1N|o·phz7;vǘWK*n1F̚J.?a!ބHd\7aᣨA.b#O$STTTQU/Mrzms=] %o$.s<}ԍxrpIUZ}dosrm% 95NT4t^(;kegw{;;};\adGœIWQlWTђ"%E4U^5.1dˇۋO  9QJnKhcH`w(Dࠖ+̚/Jזaڭ9۵-: ߍݟաZVi;3V+*|d9$sWn}>is_?gvt.9!=S$>`.)KQ&誢%UW'z.2=忏f*i%Oc"^vH.! "s*j5~g,FuqZCWO&@K H}֊BH:孤>$ĚV!8UD! (-*jkڣXݍ+Renz }l tX2ݟ&Qn$L+ݼCz-Ej#?0Ư }. VA|c2trA8!޾HmPA>uNUwZY QrN)M[OdWYcXBryN nF5mVU@Qt_{U۫f';Kmb\X!9pÈ0 r8"uә5ѺJW*ҮzB'!"˪h**i!"p5z-ٯKj|r/H2]6+}m8|@Q5%B%P JnQXss71eMsm>ӠB/TAPQUVv;JFmo][+{/ͺ,IͽˣRJEkvQ]5U*|JԛyW0lo\npuI(rLED[]yPKGTTiҤ,lշװIqG2P])7#, ]9OF*T#m~0TxFɠpM4̩ի#N\&^'P\uOY+uUe&TOjy\߆xД+?qF8wǙ=Ci)J5%?0Ư˿ }wՈ[mqݔ&[B'U@E'8.FX%J.6Dp7ď9ڌ#tuRTTTWSEPMR[L>iѫo6 oܢK n 31ʪඣ~ k\ʋG,;G N߼BPta3p&a>BlK_$t9Qj]bY Qnhjcp&V# ( +yQj6E:9۵B&sgmn/m'!:4qx{<(BM%&5v\?5~ Om=^iSޯ_{V21mW: K:}|?5^2=彃v5 mNz]o"pEWP4uTU6k:QX=CணhWW9w`Pu Ĺ޸Ӎ1r f F*Zvൊv[<9ӞUD[ii;6[Gs^P$Uv6pmffY΅6ɷ1!In1(;D]x*-7 í[枍]CM9FMGEމI1Eu@Q.eMIҥk%e5mkMaB vDy E/Gp%Сk1iZqmڈY+mxWn89XOϏͶ6ħWF'#8L N":ڞ.5*jZ~bzZTOj+lzɔkgOX)ả帜iĊʡ*p8Vkӗjssl$#?YaH/bCpfT}#"o3CUA?t:*]EWx;I t͇eÑFcmM SU]Wrя8pt˜Sf#v7$ձ $H/'͍Q{d 8Iu-Vg7*S8$aOᨪS%$eI;~W/M^ҧ{ 4[UN2="q~BQyLr/xڜjtJ]t񫑱;jme%{ K?WůMHXcuB[-^YRPIEoskʚ#swʔ2+_+NtDݴ0cmGc\DIUJV{ aw{f$G~{ 9/Im`<+,&񞨈r褩ÍaAWU˛T٧~Ig潆%i$lm%a7xq7Z&;<ӌ)j)*pTtZθ]\T_$%N$CWGԄ{+hЉ6`!pEuC^n9v~B7>m36d?ol yn):̮U"4lDWSDеMi!!Uk`L2., Ǝ:/?x SWD4CUU$U#z:4h<;bYa4Jĉ^H%zlpO?kں".p[; uSϽiP 4+rD"KR}Wq_§{ cwp;?f$G~{ 9/Im`ԜGCsqqyM=uZ ;jmڢ~.n`O?57?9/I=d0ۃsVYԶӱmuP0u"Hk:+Go{iq)iQ$39閦 C1q\%0%B5BVx/KxIE8eqlYz7vE1UCgD˧[)NoSet݋Nn;rn "2zPq `Lf!#DBA)!**q&\B6bg}˓[neAv$j,yRfETtJvByZkxFA:cc,e32=YOCC~>ie潜b:XW6͚ { 9/I9ػz㐺p~nTԕMu'uO=ƮP]kOي}&%_Bvkz{ K]҇omn=jCYv`rzQshyf&Z)D°R;MG7|o^:>UZi "32x SD^)RWd.#V̏5bqu<~Fr^^usC7rY)wja*7U#OXa?a5[.ŷ>eϥ6TM\-]ECEM)ݤ}(hX|oGFӞ1jy`]]d#:%']}^sMߒf_dNavoCoH an$FMJJfoE%AN*K~Hnw֭[usb )|מh&9N"QS_UnXUZ˼.5e|ֻi&lvu6I%ЊΑrtzp5.խޅXw(Gns~ik+~5B%@bP 6n'f!;kIvk$Wul;l!!Wqf: .zq;Zw\a!̀7:K!u|CPf6xz&˖qVۄ;v=6VfA1!u4Na$]|uaًMUА|ţ+], ,u}8aM["{vsFjlR˚m8 6DxT6QFwikx}l;ŪK1릪*HnpaS.+mA)ַ#ͺ++$6N6jd JUK6iL1^_XŮ1*{6zA}Rkr+R<*]s}^skY3}yrՀN gH?ʬԔ7fm_ / @53r~0+], ebU9N~ō4W"gxwU4h_)0R/Ϣ,}ߣYVA>F1V&"!<(h"4WBZ9eSḾ&hKc0-g8h'(y_RjT2%*i6/:HP _:W}HZ(nw;m6yŴZmk4vA5'uO B%%Vkre= Xf9&p&Rj\{=g[S9p8캞s r(\6=eަ}X3x|gVYcȦD$i}ڧ2+j)CQ Qδ/I{Eѐ_,Xw-Ցl}1d4^ƞiH WƋYIU-|gꇉ\Q TEUDDW맦MMd^2qqtӡHu(IsKi^Z%S7 K-lqeX!Z53mwkm6vڋrcԘ`*ʵ:BYpZ0R/5jwTJ4][6Tj4 Q[TlET_UUׂ%IU߿1ޑYwr[d^lR;m5WWTN5B\Jf&t;jgi|y 杚B$#tdX#z^<([lfEG,hf6䩣Z$('biQ)M2e؞vè $zxn8C8N<: Ԧ|oľ46f_߿ơ_{,:5;VK\ ㅢjB592?1=2'7We%[ߜ<[SGx$MBƕuFݩ*f=eNn mͻLwƭw#oi;ud QD_*IEg,ƨl*]닧ݻedaɝ<[&;:DĨ{hV3uwRnrя /4jsee-V[pϠ==Y@-޳񏹟^KGq~Os /Q Ǣ QC TPb݈Ư𪻸#?IĮ;SNVSCwjZ=!@ӿew0]+^@a\L6;xNnhٰFD!w"`IQSEp֢RF3F,r?;+̳ 7>H>|PTp8jֶ'-CȘ33j~n5xA!9X wSP@RϧV/t k, ^X2 o;s 1yQ%0JEEEQSMRN22%Uzgff&ah|l.Q h~Ź-)*ykf2U=VK3[**M شS>W' >-BŒ\õ&]C̓ Ⱥ\4 XE{MO|IL V}D%?' ~CըAtDM9ML2⵭)o3f/=K}6۹>ٲ6NbE[T䨨G͸-m[㸘`Ve'_!BPm"]|JF-#jԮEbg.z7Sevv˸1xZ`GTX{!{^myʺ-Y+M*lGz0c;pl܎,mDd.p^-mƢHXFN.-umn7snəd ÝD/dVk]'u\W-yP+|bT5R mV7<'3.\3lXkKgg8gG6^Z:3EO5>;=PJׅ#}k326&5ׇصIaJg8ݩEw|'xVG:?lٷ=G +Y\6KqWs5r[1Ӆ\z.V1%Qwq=lR~ѿ5*xN3|(c13k[}w/שn!VVe#>zA@#7~945~j L^^Wwq85!/Xc}ht_[GD(b7w wа({}pY{϶z [ )Dʦҏ=˸~1o=_l\9}rx&@"[Kȭcoč㬴UEEN]RZ@Dߛ\ѨwYhSD$TD"kMRLK69p&O8Eohŕ_$_%H2/Jγ'IIro~;h|Ov| Zj9 /IL +Z(aq'7ɫ=-RXR;{s6c[m;{Ȑx?+-ضqVupy'tR"%ԉU{UUkLmcIfnWf7S\DDq*tV͵𞓅*ZQ7Z"ܺGM : jB|J\qE[=s$@BBJ$*$bֱN++}&܋\UzT]qW*u=X&PeLP+>j9C2.n ]Q-`D|H*_Uk^牞K==w=ꁳŗzxpw[Je"x?v6B7.-,sGa^l2$ 1\hSr;ѡڦtȥ:^hDmbY W"/Jf}V_93r:pPÿF=$Ѫ.y/GSjO7Yo>foPz>3í{#q/> *,}Gt/W(d~F7F]-RX@i!v#ª'&:YLq9YOvkhP FNCbѕtz\F 6>c;r+m+)nL -%)(~мUUՃ8bz2r5ѾmjΨ6W+J6y1.3]anA'L#ľMk:I.ӠZC'YmSyTԈx""qUVZ䒩Q٤ ߽ͭ/ NG]edv"1a Փl)\XT?,[睷>8y2g*PPKCg[[\i7mV شS>W' >-BeX,ߤs &f>ݔwBpIH3_`VNM\-լys݅mU$^nj%̦KNi0$*VuI-5;iE޷<}ߌ7%20۝uSW(^?/B+]>-RXIr[9>7cR6/b Uu(wnG` G(v&uhMȈ2/R't?ͭL%-?.2w./o)8ۣkbӬOAfk7fLq3պ{o< B4O .?+4oY7 b9[ [!$-4آv"%kv1rtZp|h0' Û$ V2v/En:}^JeLP+>j9lsϲAnTTLpeTd-Qu|G6/>.g6c}G^񋔦⹸u$tI MG^&uQ<*Tƅ*֞ows;^m^7!݋"1Xi5'QO *%]~gxӧV7 JqG(ҷrZhBXŒP'8HmR'qIKPըx>ZS*KZ_Haw;#ZFR_anxNwv_7rqQT]>ka 00ܪ-#[&2@O*k5S[5(6QզT՚[sGڬ77$ Wm 8j;^"ENԭ{<M_6%~ɏ;tu,j bST"U'GE7Fk326&5ׇصIa&vrSi6b5)ʹOlQU%0Wލ!iO\LD}T3ŵCUIjiA,?"CN0D=y+غ/kf߄.iKgKl,!ʾ !WH{PMZv-cwQTy0Om7&lTD `a}xR4Zn֎*Ӆrя /4jsee-V[pϠ==Y@.!!rQAU;Sx~V帟~{wEVQ74^TRTE_VVe#>JA@#7~945~j L%$W/WRӂ*Ƈk]DԇJnu/B^QEUn D֪(e>:QZխ"@1;FWsһXc> ,.H2lǙmɄ/Fj)*D<5֍UP1a^9iߎ{f}!f9yRy@;[s5(8ZV嗥hSzߩrae!8QF(BjrUӆSyҕ!nMBM: 6#ɵbDpͦ#:d'8ZkRU^Qԑ9/= FөlKc*95dƣ,Q;^y2T<.)[)SB=E*Qsh\A{jgaQ`WgX)> ֫F˜wb\`>(m?Vi^1%EOSTg4=_d;U q^rUU:ٯ7dPo]ENuTN09;nUF[WodɰT ɖ]+}Вh*M`jBjm {;;oޤ']]MUUu'4O$;Л|+t? .i_x\Z<T؈~S6؆@*s"dr~DjfpFP _:W}HZ( 6zw;|>7L{h{uAK%D7ֵ9Øԑk Gd:r(MJoPDHINU}&iTƌigM7s-)79j:k$MW^PM5Qħ;M[77 #2+fo{ե;%hcI$n7ETlE /9UM,pߟr7IVk?TZ3ϴEs3+$S.R$W4Df$UOKx.MRM,:Fr"lWt8̊,kkN ]pWQHrd'uJ:hڭ+UeͲfM84pFh yDL(H? Z]U;En>a,/ۜ;gjjzw <޼94}1WvڹwoŪK*.-U9ow)m&dWKz8mLS$) 4b¸M8Ȃ܆)FnQULז {)7Mͯ=P#3d٦UT{tEU ]M|.߅{V`w$ؙ8\Qx'bSK'-mzAt=Ǝ]a(:[% g!WsCuU]PbZq=ɻ+zXdU aߣ^hq<ˣ/.즞.4٘pUmvxM-\5oƏ׫7Y[#-#0~7Xk#m#~4~7X[#%C}5LA6çv'1Mװ<`z l06܈:鯆`Y;>;Mװm>:/zne|laPz|~T}RMT\j7]JZ΅~u~;n>t~c>u~cnZSs`\ܔiBMQ tC]x1fĢ#E}->11^DQS)GCd;o}ߕ[UצG]_QoƏצ'nf-ڦ㮑U@]Wŕ]^+W8ζ?^u}ߑΖMװ}ߑ[EGENWumw}G <\r#Gt1RCe }!3kgўmvga_ex+Pl:+m44")؂)Su}Q;rOQ{]_Q8-?ߺצ'm/z?^,ߑ1;h̔%>88H-BU/ 9t轋ש{ ~|la]Q[EutTU k}1 ^e>oꯍ\u%_ݦVoLS*kgы,ABg|laQO߬T"ED@KHySĝa,S>l6=:hKixX֛`FqΖu3k+";r&>:'MǰKgߍMOSjmXU.k{8O-w~? ׫W[gߌS~KgM>nEgEw+cw˴=̆I}BnjS)[^v9i>˅yȼ6_8BHMװd&TS+ۋcUtWn?CȚx{]_QoƏצ'njRAUPDp}{5.WTjKD1?^uߑ2?:[?XF`zn~G:[?XG`znz}K.F.ϧ+ѝ 6:צ>-ڋ#jw~WCKgߍM>˝_ЧE]*Wg-uzدζ?^u}ߑ?umw}@khrGE?+uQ7l+i/e Ry\]K57Z"Uno!72{fm|v`6Q`Aa1\}Lm?u3k+ۇMgM{5p~7^_}D>u~cnD$_8$$ה8juQc[/%$±f=$1i"$<7@A$tTTZٱ49+%uM{KG]|[wbMJٙl0IgCq]tF]SU<:V UOS5z3_E:?Զa*kv\$!(A`6?uȓ]ҙjK̝rޏyToI^kư>ggdn!Gն9E $q-S A}Ω{WU1n8KMظҞ%˟^ɸ=nqr+Nɺ ٴgnwZGT5yEKuЦ2yu)hK٣]ܖ=TTj$e1RℼZ(~>5DN5&𧿴ƚc]>\Nxa7p+wEQ4Mk2;ؚsf1#]׭mZR\=+-<rWfbe\!\\91W#HmED+QNU]k ʫC+(7"Զk[=sH=s3G{ƕqi ZUM4ZLuէs-ݔߙ颲\}'Lj-E%Ţq\z8] Tֈ Ӊk-K}IwR壗?->ܽd\=zv鄼irH"bK8c+Z<-n1n|Q֞C%4z#[MϺ/iNe<^-Ve40d̦ H'6BmLSQB;*%$Ur)/ihX8.vu+c%H%b>nU!4MU$QByj Fnbk') -$yS-Qu s 9DG;թˬW^dRWglȑ+$jwm*"8!kȚcGvkkgio:Il<겂}Hcމ]4~:U=IKsn%@;8MZAF"Ihi̋`[Zwb4.xefwQbcbj3)MSQ^Jm:1e⨧/^!dOՊnE{OqQU܍/i;ɭ$+чlԑ!6!0EEKIb N8mHKd7Œ.HfM  eZNW#loKuZ&$v64h< x-u3 SjkXi'-+^El]cb$Ҭ$j|„*rrb>%q2Tz-L7~_ظII%lB뀢̶ mڛ&HtVr⥵OԺum}J9>v?hz FvK\ȈdoxmiӷM;w7nGu5p+3v9ns$.I@NwHUk-6lڷƩi=eŻYxu3$qG;".Z7#W-NԮGD6G{V[iV>x->an#nglfZ/ܴ^ 0[$" y(L ,9էy|4un{2ٍu r]dDzf};+!j*}*pETSErti֮PmI꬗5_GktoR, S p ȂUB^k[T-k-8,sbOn\K|^\gXMIn7j+108Ds 6)2>Z}InW zpyQd"4[*ShNCbqc?`'>IħyhNb]pQnyY&ȹ9cDncR7C`M'6/Qשwi6,%Ҟ%rQYﭦX[<&A)j2EՇ *q]V.jwh߷r5{Aԗ| }m7>ܽ(|nj[0.WN _oWpE*CXZȦӧĽMjd(fʇm"2>aGX>U~Ӟhr)4o5O=@:2+wc,h /4ک$^9^]F5~wM oL$Y"\&s#E} HZ4@BoRM6n]r su讍ˌ/H;[ދ c=*YIf㣭D*# 䐢)iƉCUQv;?RN͵\F7 ~c-"w>cʼSTN50ib/]}EݘI܎ש3._n}Տ?{I3jgbŎw7#D6"j"qg8em܎i[ [U\1Xj=ewaW#mY5wŵbʸA4E};hQd%EƢRMhf2i2?{K=+ǝlh 0FLj"nh*jXizq$j?z6(qxzk4\kR7neU.R8'^uxޏYqcΫ[A0iZopnHpwnml yB0mKqB[n4)]-k%ioe$DȲɸ$1 %E^ZNW%]/49IƎplCݭϥ%=\X擓ܱKo}&6ZW%UIe ۭҺ>%Hk-hZذ\nf 9SPUWRuZm7m^(B\lw%UU*7Ϻ#d~=!Vq_vSST$TT-c ŬM</rU-i~z=%[MϺ/ie2Low~2g8SfMXIgr9 M(z ꫥn\uu9*+Uxh^XPqD"Kd蚹2G6a3IZPTTOs*XUB䚋wcĴ*.a: u>ܐI'XecQRQP!>%ESER{۽(JW`0XvhNBcp8qڌаˮnдV1]{p0m$Viv4sukӧFnm;9$NgbQA{^^_+ Y$]omYbۓߎ/nڕgR\=*w/i;3x0ބOj#bH+iAUwskrI):iV1/9rmj:𩷁 lyߗY ۠A~ Synk`Vg,*b6ɫ{7Hy#(a9 .ĶgvȤe6DlɖCTs1đTtUETt4-J3{kY ?~^snyh+QM%N?P9KwPs/nu97Q]Ig=-[gߋ-ZvDx@ fۮN+p쨔q539XĮ6(C/kٓH1ucO}B6x9|J)eūhZ97Ps/nu }LcJ9ЋJZ?~^Ԗ97Ps/nu97Ps/nu97Ps/nu97Pw'2EN(A yӛ$"WUUZUE[I-B۩-A~ ۠A~ ۠A~ ۠A~ 7!版"N 4H(>u [T_ s/nu97Ps/nu97Ps/nu97Ps/nu97P/1'h&s UCZJop9KwPs/nu97Ps/nu97Ps/nu97Ps/nu@y@"UQ, . 5M=8/Ԗ?~^sn?~^sn?~^sn?~^s?ntjf5"k}S{u%9ߗA{t9ߗA{t9ߗA{t9ߗAbRh:'(1<I^T)LԟoJW})""P}Gթ1ߎP{ܝl;V 0dvͺ-+-HrkW+ux:Wo9h.z6k[pQύsH)ۙy40T^Sx{TV.-jOK\+O*G+Yѝ < d~F7F]-RX4ꦨѪ/bMbRm/Se}^؎±ެR9˧ސ/'C_iXe-15r$ѽl4GZ~%-'FFv3.(\}6;{b f[p`_2yfϘ"7\ϜU馼jſ)7HWB*iBA#ӿew0]+^@@Jo-i~p1SxIj$V<& e5Y,3|Gqq~ ʱ6X..Fjhfh|Ov| Z@-*l( wG2%d99Q5_m,OcLd$ĒԸH`EyLQtTӂ&m)."+qHi tE@2E]Wp!! PO TPqcm6ٵ $z%UE2-.Q]JhX] jt$k[5Rnpr,3@ d˔]V5nȊ"M<eۡpP_&?:W/}=%@ m˭Xe=]wXrcD(㊂"&C ܌WwV2䦆|7̜ăT+P "^Kb%@tUDV7BۭvU|1\ǒeqXFL'U!ECTBuTD* zzJ@ÿF=$Ѫ.y/GSjO7Yo>fo}a9^}2dr_moyT 8ډ!6Zo4^ 0 rav{p7/1ħRݼ 3!Wd.DS8=ϪkZ.G..vt/M|y"%k͢*R*:/6I˰Y/R6Gg;^\W 6K*0  =QR2++68gʆŚoCn7"msίMBG! uUkEE`ʫK:a 08d6(#fD'U{VOTjFGns~ik+~5B%QtTT. o>Tr4ۍzE|oW+|mʨ8hDZikF嫕eX9oo7ݹ,Y@n&54HGtTd~E0g% y=D߻V ڼt2`IPyt~#kW!Su.īۦz93w]Ow/ev92{6fcAMSDJ֫luے[uEoh2 +*n2ޘoܥ}HD_sm=vTT=FZӷ/U ߈wZ2./B :wٌqIm/G;**#&HIʄCm-ٹ\*ԽլxgnC>vo !KRB}S-RXz49rcr";;9 T7H@T9QIQ^+xh4stV@[2۝iiq.gs#꜇ E5/$D*'s'~B˨C+# qxN Na&p o2Y4ENdO(5ZX.vXt.]r]pl6ܿ) WcmHS] TNݶV%OC0k?TOO|b6Ȏd6Byk<8;?=5t$2Svɛ+/.hyTK$t/`8s#c5cÇ-L&3jZ#X7gbfWdӌ7KȦ+.f K|VzÓrTeˡhP KPըx>ZS*Kp[kF;G/R\OaK`E_n+\ѴDIgC=t02<f==BW|B󧅹SQOXy[>%.{=ދnh%6+C.R. .+$}AytD{jcmV[-S7V ~_Wk}Z( (ʅm8mI rpYSw9YtNZ}k0io4H{qJ\nk̛8lMwƥT] "Pj`'(;-"j]M7˗1jP+F8]RO?hߚe Sՙh1~pF7swJ]Ď Jjr8Wz;˗~ysEXZʦj&>UO PN IIj.R5ǺArwb݋c FDqKsu#}8lAB7>n)FUb[9Qם5J؄wQr_&qfmԛ@2?#wNY[,  7R[9f=,| KuZwO%^J5j9,Vxr{֛?5}rĘ歺٧HU+QW' >-B5ַ]VׇcV_| [pȉ*8:@\ R"DBs9if˺dʓgmyVz 0vHqZS*K}eҶ6>X-sr= $DW"EѷޛZfgʅM8--&(3Gmi>;lXvD?E-j2G?9V: ֳ8-A^*y+aFJkYݮ绗<.C䶫$mi4mG3 QSDS_ TY̳ ;ZGf3b![-Kk)30#mxDUxkl6;3 ߈wZ2./B"*v-nի-9W~gnCP"UCq5A5J{q3k1x=clGNO ZXM˲>dFn a6U]uݪ [4]>\dDaHI8**LkEJ6~zWyڛ~{zۖ'tUDh|Ov| Z@`XsyS]X[/!48@޺sHꈤTKwY,tKi=O6IgO}2KϜٳ9qe +Z9-GTMᜇ'lX.. Yc}Ixp%.Qg2ozMXtD} R)*X *7h =VCˊp(^?/B+]>-RX|sc/x Pv~~*~vB3 i GBiyWQW5qJRuw7NxnGȯWg!i4'̴>x(Vc87b۷^#٭<&%A^JyJUVJsUٹR7.yO&)q|5[Ѭdøܴi5A{$jӬN ݺ=Oyrя /4jsee-V[pϠ==Y@/^vE}/_VXp.Z:%D@2?#wNY[, 4w#G/i.&o8Tq99_v@~쾪A!@1;FWsһX%n 9XYW.=tḑ.47]`P|:)¤j-;}>ut컌j㎸k*i1Y.ގ.?fٞ1tb˛r:H$1%=UQ}qݢ:Yb*fvPmvr%a]AZ+E]`Pzr|$vyC͗${lhth|쩪j&y<ܯ:3_Q l_ۙcyw.j2ˀѭR7JrnQӉYj<ș3- EwnUBp%ŭETD쪙͹-9mgT= $9KxQrF&]T@2aQ~P\1UFdc 7ϧVqTuqKZ`CN{2Nm tǢLY‹uZPzL W4i y m'N'[}u]b6<~=o&8D)<[WE uTyQrJO@_8%CaН@ 'qk:\.n;A@2ɦ~ΨxOpI`Pg2lGعn-c@Nf4B(ѫj*~iq J6d-(o$2fBr";ᮒRmu&4T_mkWI-+٧]Stչ[COV@fh{.,a3,qWyy|tJ-4Nڄ9w;Ao_̳ ~$S~RVBf[C*RXFxie3e~b*?*Q$ȳ *r/YsoIUW}%H✫x4N Z՞.䜤V ՇG{WŞ-V,Z4*piݝ.8h"دeqQ:Yf.Uj9ۥ-GePd26&5ׇصI`PնVox.;HU/*&N2:5<sS(zݑ,MY2ʹ3ûɷ q)ά$y^K3 USFEwKb;4v²8#%-aFnC(&: MujF!IuvvѸce"q~31fpOecM@m Pxj<'USCz6Xwǿ5EO9MIFԫ-u8g^ _Bz˨ϺEdYvhC8L p0WSN`5e'Sѽ=*zΖi9OtYl݆(2R lUIIDtDׇG8./xJ#N4@EEJEIQlTgxvwr26 ! ^ASӎ.[KYkRj6jα |ţ+], 5cު=Yk \qA IňٸÌ *s`X;i*SVߪ\+m7gSijZKjlM4..8/b**Qn)}R[9,̥bE7ƭWEQkTBQU*<&1uz9l6ddkIUWjuPIZ+E]`PIBM6Yup3#]tf0*4b&$Bh,>zK Cgmt}vLU}$qSZ m#^ ]dzf^ʲ̏&؜KEfŽ I,xL-><v" t-vwl,/8v.2Cq/!n#b 舝TT:V-+PQZBР{0((u)tI`PCz|ێ03b@1f}_*}(WBNRMQf2H=q"y%!|]y Q8׵XyKi͏tBno|Q_m|\^Җb-Õu%MvX8㯪F9S %dvJh}:Y Fi /Y?wpz1Yx[8o~JLb,ij$&9b1+Zؽ7mDjDgE$M5EਨQQR3I|˅X݁II"Kvܮ:'b)Uxn9oC.[K;snsgŸKJosucYޭݯ-^.pnF2؄+-! *"*qҊN/ãf{lR:a@3-BVW{kNĩ,#@pTZZ[n;98l)Rv@F3d7 TU^((+i9d.Ky: ͷnVv/SȄċlHh'oUB >RЄP[x]c=O{,sj۵^{J[Jdf,hZly[|z%XvBBf_߿ơ_{, l?rqc^wqoӈhM/0T!^"0n3T5qz~r7̓ dhv}Nw<E%ݤr ކ.ZʷjT[^߳@1uڷڌQQ_aqQ=ʺ$*Upqugljj$H1bM4ؠ ""&aI%D{TÿF=$Ѫ.y/G'sr1Ï!i("Jڱ{/Fܔe%WW(/o.'o>^[,}L:ۛg8q+:|áH~OI-*(" Ejc)jԼ)ZǽSӰFC· $;E8>l+"򙮂QEqQQ=8Naf+YmǏQHDs5 ZB! kRۧGYQ2H-Кg3e p dݝD.`ERDE2IӷJhzypQ+L Zyf>Ν(Ԓ im}BJTF+F>Um4ӏe:˅n~gt3wrkA((dn'p̅7{DE|SA`tkk۳Rފ{wӋi>\MX{XfUJwǘf0M*7#Rlyn툇Ӌi>\Kce'nUښ!dxoAmax$CˢHqs^R$Ea-E9qތ+WB $HBc$GWD+ {Qyva:vWIޭbnbpnθg#d$ F^@ě!T;9cbFa/j{Yэcwu$GLYxy \u\qt5ɧü0{KnYBIn:k׏6$CV+ mő RpH"2*Ngv4tӸw/iWNůh*[&gK%L(o nv) Kݠ<_R)7BSIk}8~vYyq7cc㒐BihJ B%a%{PӋi>\KcdS֫\HL+Q<5Rv^1m\Yf JYSwg mK>\1Ǚy^^^<*);]Ҷoi3q(Faɪ*[mdF4tϹTQU/u<9i;y]:pѴNwdl j%Q}QtYqOq;$e_r/u4Vښϟ^?R[ Xյ$Ou؏k\|yy@VUQ.htԹRF^z# <_^ QY}ܱ=iqW.p#Z*[;[KMư[{R}/hG%x+cͧ5Mtײ܉\2Ƹ,_cؿ`Z\I\2ɝ43t42E9TF56õk%N.ߝTq/eF7w(lWu}]0yn0!3| Ӌtν $O3>wHq $N0@uY"j\8H s.?˓ 9Z 7czzXaIzCM]CҸ" !h駔:vR[7L k-=J_5vL>H>8dPPDuHX~DSH`ny/T(F ?ZT[| +ܜvJ p`SbW9 E4puAơB3LV8bSm~D7zPnjm*c8M>@,FוxqkNZ}m䷔:t۳V#u4mpr.M"ʶ' pD&9SEUt]TҜ{FV ;+$A*\%,ò;m HqțP|:%ᢕyv[T^xNqN3fM˜' ɜŁe(yGMWRT!jt-;+9  m G2|`:C{Tw5`$;yl0-zz9c"Ry3%%0nekD-!oSVM%gm=}yV~MixF/܋nfet\/N[Y&˜c*!\ɢ%L`Ҷ:v8}9oGL_-eu5 ,ui# }/& An}8~vSĿ>^RY?㲲+&Α tI' hqoSk D|5z05TrA62Z۸n|D#*wk1mʁ(/ҍEjʽF4qN=I{KrǞ3wהSO{vݵRq$S35Z[z]SrDx,HÒ6MpuxTV5E9w4*N^M.vɾwX`oڟ2\[wMÐći r#P V+kfB-9EnRN{N.ߝSˉe Niuv$꜁hTJFkVQ٭Ds=a|X{YoďX{Yfo]MJ]|22 Ϟ<!E]x/J/W.H޷4~fi=WLl7.N~7ajb|#Lw nc&XTeRYx;ziR* Rkb;'ݭ)pXF_'~N'6J:"n1\}Nh W0M0m<$u/9Qp'VdyzC!0@!c4D wo 5G/Y.]ըhXԱZxӬ1՘2QO6̛_6ܧ"Y-kG-nmR ^o|X{Y./k&7LԾAbӐ>Ɇ|5#B :̗8~vSĿ>^YHؽ%L9U~@vymT^ *hH°vk4/+jR6=L`C}Ɵ܊:4ᚪ8J)̞%(\B|xS8rrj󑜊/`aT'* "ռGM;=~؄'Fcj":rtʠ*)EV& 9l4ZTvTB[\aIc̨ۧI 3ުE%G.)ڲFq~Ӽxdmq dڄ).ER%xQu"iKDEO L"cZ{ZZU_N.ߝTq/ewY|j\.#Б8#mOiRx/MYF0T[/W:G0md+*']5Im\b^N\[-[yͻ9!EEU•>'~y`̇aCC@Bxי]A^>/N#9~`\c?+WUB㮾VJ?%^=;y6=.W]7g_{_4zKڝ8}<̿jIk]KIO&٪U;hg_ KsTߖdG2HY+B|ڦ'׍a-Ԗw4Z1\%o|*~[Mv]5**"yxe|Om|f01>ux(x 4%>b-QQWgP\3ZIiDv&s3r.맒S3b_{pP%g޶^-^x+M?%^ ›ؒ *s*"qi?2z&a躥^ec>m"4*>2zr*.MO?2@v ƁȺiZ }Wv)r&D%$5Yի1hIb_6¬k(-ĄFbᒼjcMU{I4ཀྵQc_{ۜ)M[1+ؚ.ʫڝM?%^]TŲ*1r.~K3/ڽ?fGOU^Ͼhv>˶~K3/ڽmijq4M$>xg_INIO"'D*~O3ڃ%o|*ohk(\Fd o;6q *+K̨ZxI&_;˒+V-a =VA;Jr%Nêgͧij//ڽmެ/!%U%UW_QY^6oVHڴJ/򎝉M?#^6 EA*Iux|%Na;k#ab@mTl^4^+xWۨc9~l;:s-ua=yޔ]uZm'y~G%o|*ohk(%l1, :3dU8Wm8bqU!تꀒ| x+=m6/W~ ?'eWBVN`UPWTU 9WE]8r-Ss2}&hNY R|Cr*iQ?2}~puu_Iw]t^S<̿j@1/{S}|`8**$NYo⽄W9%l; !P$KNtư&K;ow̮[Y$~ ߖoyͶ#'l}8) .*M{<ij//ڽk)x^5Uq W_t^)s2l ,zϦ2}^=cY~"m?5 75y6/*:y* o,̿j;S)wTN'y~>oM𦪺$UT{G_: KsTߖfoPPPߎo:eoƺZ((((#{~!1h`Wx (((-ϕ¢ρt P((((^?/B+]>-RX@@@-|gꇉ\Q TPPP? Z]U;PPPP "^Kb%@@@@\;cK'YtzKe?~jU:3/OyOVfP Om5mÒ7N L0"㮸j"64AmuԎڶÏW(`/ɾ2.sU^]=LF6"p/gn^k\P.w[k`^ʈm/dpl%c6˻OHq8n"Ti"rۛ{ mN :(m:$$ &*þOQC TPuK -S|z2Wd<3^l2FB$$ன°p9G3rԖ%޷\B-;.Pw0P|&Id4n5 ag'jm7e2+5!k(Lz,\A4N`$] |iVIU:ӿew0]+^@Ο0Ϸ.* enK&c㍰B/1iĨX߿1ޑFr,G>|!s7&",VK${NË{Z g>crw#tzyǯmnNϻ^"G6hi& 4)-Yu27';I0*M @53r~0+], K2lÖdˋVm%V aQN*CE' ;cڝl7hhBMK%DC]iTbyq;W.o5uO*ɇ|am up#6`ӏ3)67=ПpldaB˺p(e"xB%@m>߲,.8ܧhlCr8ӲuQ_$s3+i3,V\^}V1㼨kmY|VWV(eLP+>j U~u޻0AFɢI2PuD!h:Я21N{''?b`˩`/f0_9ǟm!Ŕ*j@*4 9n q \Ƶ&E$Ò(9MvDv/Q!U4fnI*@3-BVW{kNĩ,#@1uپt[qo͕dbXktB֢Nrm&vgչXFop-ڐ-wAD:z+ 2ݧ"tMW-6+-7m\uR@ßȒKV-@y3XBkԗP "^Kb%@cUlۛXj aߣ^hq<ˣ[)5'RAz{z7€\qvw ђbg܈^$4PJ&5~n;::½S'qLjNJV;G:Y̽^oԖ\W&.yĩ6#=}^( )E(țy*j6#  mqmL"M(""VGERHP ӨVkK( l~U;.т!2`0W;iZBܫ^ h&ݫ^'ץӨoU].mm&<(,xF^b||*masc)u\sn]0 +.KmN'"58Ґ(JAůyPfӿew0]+^@Gks-!5Y#AEy_HxV) $xQҚJoUF^[d;\D~J]<%)@%TֱSø[e?a}5o}dfd Hl\h-5Ek6ubZ -ϕ¢ρt P(v( |oOY}(e|Vs֫,Wf E)jS MT.GIJ+UyeX˜;h522q6$ Yc^ *br&PyECEpKԅK;h So&z2ܿn\䒭62K-jK!Ѷv\yZPNEXN&?X'HtX99 mk $% /S cW]g?bZŪK^nkMtȦ¶mErqi*6 %ҤM%ܿ~+sj_3`թ3v"."P! kq-g>|J]1.Nu^~glc̮w;xnS xJ(ܒ+n{*iYc7feI@\;cK'YtzKe?~jU:3/OyOVfP}u!~ob0ۛ.3Ў B(FKh"J䨨qe(-fG]|~7R o'ŷI7zZ ") ."ss%poIY|n.>6h6slnkfli/@|qH~* +ʋIji'ݨ[ jnՅ x6nf'.Nʋ&1X=/&I]UEUZܪ ;.ΠP ӨVkKGNr͓ PH?x08*^MITm9`bw5do~dr#eN󤚨yD Ryx/2ky3O:Lۍ]=o qfݑ92Xy &6&CE 8d3s7' U\UWP7[v b.'d[̩T 2RܤZ01OtH ڜV/0=ǃ:!Fӿew0]+^@7=͒*Wqj0Sn?e,= YTZ+E]`PGXWy3Z]&}TEq*~¾-5dt€(^?/B+]>-RX}j}E_6s ;j{2e(vH䌤`$T!In!*vdQPqL˄T#E=1veaԼm^kl@l3uqIP*UB;|]+m2?, qcJ#>!ITZNYX ٿ{oe;\K،py M805"m[|>_r"eUPÒpzUd(Z4x, zާ:~\rnGn߉!]nF2BҒC@T[rr[2k]gX2/'reHJ"2 µyX^MlZ^W-~޲Dܢ[38wI1lG[5>uvUGC9V`սEi7&\=ݙYo\^=GNhWjsqהtܨUóLӳ^zyP+|bTUW9зoifu-{qk? \&ЕU;CxS~hHEڻ+RRGb8ak,#,3B[WnURcnjqRZʮa@3/߃kcPx}/To[EcL3b$7 ̦H#{ˀ*!:UvZ;3SX"t7%9s̞l֨>dɞmwHml)v/-,#WrګOۛm]ܛ'cwn\)jӀʾIk$] K;z[TaɄmc}(kF&^GvޜQUÿF=$Ѫ.y/GSjO7Yo>foGr) 9&-+$jCC0~S{Xu>o[їLxTٮOw)vjmz磨q8$$頭c)o8u _Kl:a@/}.R, \6=sQ8Vk$+2muN[kTZQ^_7._-wrq/W,G- OaTlO*lч WI"mCn]lɗFQMKN < II| Di'4.T$,r3| *d , )3Op.3vƪ1$ZKH~c|ܻ_&?:W/}=%@k֏\%%ۛqv6ޫB"DN('$|] HgF@-dVOo/[U4pꠃMpx 2*:4p2+oi"n3fjo:ı"xyZJW/%QL-#d6vJ,"nKN}*kv=(T̓U?v>j yP+|bT)*6:b[.J-(Ҥw<`ʓc\7MQNSmD{FgXYavǶp޻MSN酴[Qe؊یxJێ=ebqțw:]tC3^۞'f͋ QhJ 4=~R.6_!@3/߃kcPx}/Tw;_M!}kx.+BaEST]3y;'/6W6fpQ]HGiT{yT(4-iGSyms _2 nEHܘhdѣS(UR6ynp6gsIMշ#Xi.-#x <m j Vg`( ~{IyT]_.[)lԟoJS}) nK[GexasmY = `yBʫ93)B{H^Y\Z5"KI-/6T;rGFhUQwwo.R¯+eYb+:^!zBL]ğN:TonJ$û)TD[mU{EQh5׉yDtbz UX57Rmߎo:eoƺZ( _61r,0ʠo[Tyu;@ӈ*!'$EN)C ȸbo^ Svvln5-ˀD$F=sv2iW' >-B >z4/yrcfw".w%/pLȍ%qU]I;STZpn]KY_W~CӔlOr1HMu-A^ٚ6Ḓ|5lQ;:ܡjFsԛ@/}.R, :klPZ\1<׭uT{IA9x* $45Yhߍ.iЏX;- s jy\XJ^.Uyq]#O%~Դ/JRCcofP<"g~9ϟv*h:R弨( 8Q[_/z_*tf%ڱJw< +u۔NdoRh|U5UU"%[U2eb4XRm_&?:W/}=%@IrLvɗ׼S%xDzH/ovVE ۭSQ^ Qx jCoVmrc>mj!7M.ʈd Cc@;*Zz9᳃4L]pnMۏ~ (-2r8-(7CDNH+2\|co}iqp`iA:>I#DKt!u9'\N'2 qJnQ'Z[d͸clwB679rv-g}$mXy^ueoQݣgNX9қ6u 5~ ɛp}m.LdgI58ܧ TuOa8'V@3/߃kcPx}/T}l[i,wq͌z(K'D"WmPIIATB]1w~w$4lInbcwYDr;"CRX"ӕ%Z-@yISDw$"-?:{nO '??׼!Q[D[/uR,MYc]- IѶ'x&3DV"EK늪IW8Uh=JTVXÿF=$Ѫ.y/G8ɭܒd9|lr *h@A\ܽJUA 'UFDQIQ5TqVyL~& uY8i)rؼ4O-eU\@UFAtuN)O)=~Zal\bZ]'y8JȈKØU>/i˒0|6j5_?}ÒAf'QFyȵBA(Wvǯ 5 ;BNM]D&**'S!pU8 o82B1%0V9RDtOƔpZ(Y7S "hMLp U8Z+m+\:XO0-td2 'ieTyn/^уιYO>e2^ںF uRAB!E"]5RUS!Zkï4R!-TBԑ|DUݱKXx NS^NUQEӎ7C 1. 2qSȍ|Tًn5|6m˄L(."i$n`0fdQ`qL)shhJAqĵJ*Q'VƮܭkhIMr8 C'YvqRMQ>YO>G;*j`"IE^ap\zǓ;7[3q;6DdjH$ۢO-]׮=dLfJWƪ:yltsڏ^w-gfaq@**qRCrRz}饟TLpDgO=mυ^SѦ5"(D(UUK*|]W_Uƣ(m(%7ItBtUf/Z_=y3tBMQx8*-c">*"/"芚N4UݱN6OJ6DªUEM)pKqƘ){@SfOx"k 9y ű-PTR$|kO-pۑUn4i׶\?$XnS6$.hH bJIWz4qT1~dv%qIl]aЀQ$ԑx^S- $j{4|*yLp܎BGX.}kt)¯8F/_;ig?U˿{j/VR 3@ bdFSU_qv!q*[v* m7)ꥢrQiTpN:ہFqBT;L[#$Oh=~F#3*}rrqDUD](X|.UzĖ^mT; GTSOBa|UŢUގW$Nn5to}pfŔ'+:pZewfT|ῦoOO)~"/6\]l$Ea舺|uz4gyX,wW{,˖X".;<̺d**rhj]fQ?Rլ5*TLקksr\W<͵b"U1%* &g)E:YZ{նؒ#bsKF&[ISدRMڊh£k ORiDx"RK-<}Vj\ Nn09dQ̴Jo\bJpqN.E\kWg9̬~|czt%WV,R2!H'vRssKNN'HQIimCIb]vu.5=Ÿn >95UmUSTDӱC5g-}V쩺ӝsoY_dl=RQu{[ƿT;KYO.Dߤ-IuDژ2#a]e[uy.U$EMU8sc*uOO)]n>2|eر"+ "H"'2\&YsOhNQ0zlwoq5?FyiE46^hTT^BTTRJIk,ghW6`}3ɖ,54d/w[e$Dqhz퓊qf=?ҫXF}j՜{+t3 P}P68k]KZ(e Z ?E5lOew-_*|mg/]^p'NQxj*ȺQSd qZv(1au;AilS拮Nk]<J-ZN=lj^loB8Cbn;Ȫ颪/r*i*i9SK~ {Dbs-"^aD-AN*DX/o;;U*i:ƾ )YٳiP7ӕ͗ϵpl JmQ1Gg\g3m=(^tkTȏiG%1t.&\MHn>5WsJʬc9Ûއ$%8tns=>+Y3kjҹmma+Ųe툢r5,ɧ-jJTJ+ O탿H!oAFHͪrq!MW쬖b:yzظ}%,*~g j} ~sg/c 15ԏ{dssAQwѓmWL*hQg%cHD-9<͸**@@I߃.e\IkǣbMV'ݾi"-8 /v6,(i1þy~T\L2to']0Fv+w9v#HK\9SD\ybLIWwuMtcvfK%}LxԢ*l::֤b^ڈ݂uOxf5?/;~K#~DiJHJ#C Tc0r袮p!ia>-dߞw*+IAzptBP^F`(枎6<\2wO}UǕ:DZ)J^yX)(pO 6"+,HqSuEGژ.1Ô\w +WNݢ{w&6,4KS=k%6abTO\ h3rl]Gԛ!@㪪V3F 37Ѣ։2 X& %5Z mY_fwC8D$6m75 TUD5Ex-C?/cܮz,oH*H 6;T*=yFؘy9/'*,~:eN}d]WBt[n"off<^a(ݶFMhT֧ͅkW.\p&妟fJ;ܼQ䶩Ҋ\, v,KJʕ*RH.;utyۥ~+GZR#rVUMPiPWxb#8rrѳщ2^W Fǹ7Jc$`ȣr4+c5ZE^5 Rr9&{JDDjK*߹6MeTODVXWA!_߶7+FXх^WCmlӔ *9IdպOy:UŶ/q3l~ e6~,9 h"F8?㭑2} D/]Rd)NfDɷ--ՇFYp٭aHl)c *>X1fO_~g j?NClia]qLp^IN-&$ $ *Z&kµoMNUGBw1n)iY/MIFԬnϠ==Y@@@@2?#wNY[, ߈wZ2./B @53r~0+], ⿡w<{_}wл9@@@@@@@@@@@@@@@@@@MIFԭx}) ) pp]n_i,)jb8^!R_0ĮwcV_~+{w;.)eηR;|aĒgIEAZM7Djۻsr&gFPߎo:eoƺZ( +glp;rJ23(o k۶iee .v$BrKS1%-e۝=ݴ%lFkoAB}mcTDbyZwqV.¡hPot;-]J`PvN+,!;õ' w㍚˻<t7_|B$ibk[&S6uAQX2s1>j (Ƒqy9KTQ-j#%, r٨MQ&P^Š?TX.jPE'mv 9̦|~{,M" 2ct3jNͥcCC9r ɲ_,5%l!q^̑~ff&A@C1yZ1<w`s€(((((((((((((((((( U[=O SՙbJHH h**Qki,q[˘1jTz%׉0Qe[@SN mg|6Wfܧ݁p ÷|7Ɯ77KDe&H$F_$4qN uDD5NeVhERA@1;FWsһX"jؔL3+6>ð̎^6iq+r$D&^eĈy AUӍKE*3Pgtd\cݘJS֪VVޙ˗ON=$_L^Nʂ+y3\eeWI|׏m[S[̗֚졶h|Ov| Z@z:& KR1m`٫=Qlwxxm`if$N])֫v̻uNIMtÔ1nWe;m/O9VaJ?eZlil̇(àfDXnr7Rit\ ޒrWmΖҼN8cWQf:/꙽®Ji6Mg\(Gns~ik+~5B%@keXoLqe6r.6NÐQɉJʤتtJ9NrINwvQlu9mqʡƸ[fާH.s N@bH**UvrG+E9>lϜ^l!nIՖe7'(YAM2\g\0^S$8*"۩ïNWTzΔjхot;-]J`Pv3l 3'Ͷ[ry0Id :ڡ .LJ-'CLu:o׬f ;>E 32b:M: 1Tf~[NN5tmnLxFwn[ߴ9i.<|n*؃w*O\}7ޢ.-Ej@ìnƇLbh/*'a֨rz nݤd^'Txqz-Ul6ؖp-b jn9J`'42 @53r~0+],ਾ*o~)٣nmQr_nA؋"1ADEʦyۺӋ3EG[7#i^FKͻvdi NF;Rwf%:N/I~e߈im/AdH.$whm9T=;VK5/3v-lf s|_2ḙ%$sw)|sHp)f6ʬ:Z[Ͷ3& ⿡w<{_}wл9@@@@@@@@@@@@@@@@@@MIFԭx}) o[?MO;8?JβxGc_a^?5fxzCL |O_EvfFjô#7~945~j5c P?6YՅ Ki;c_rVH>Mzho˸#0qo[oRS߈]zNjot;-]J`P׭Oe~o=͵Dqᆳe azVHTZk\R1e&u IC=)O5yS1FϗnQۇT&ONf4ᎢWd&`b/>%t|*ޮ\NjZ+E]`PlӍnŦ'{~YRU3\{];QFU]'ކWC|vL;s&eR!e6ȼtI%UQpQUqa ߚuߍt?PI`PW˥ G'=^;B~!D42;+9NVjsgk3Cq`]5ܠW7c6袊"h/Etyspe7U]MT%fX|΀h*0l?q؎yfk"$@/0^"bB0n3T?a}t_͘%#7'f]Pf{**QKQ 6 ur7rڛ&[>Q^Meh ZtyS*pid_NC !O(%`7 l9MqTS]t\jr1_qͺW}SVI, eX=6Dky]HQK*Zh cf5ԴSݡzqq{˽peۖF:ʃq=ծNIUtOuknYJN^ bR9_߯ש/nΔ8pپ\Dꂥ؊V5kJ1EweQ~r_Y>RRyiZ-m_%o4qYEtĖ3{|[]x Ldޢ#Xƾgj{9@@c/ZjK)pZӅ5U5NAUJI^ZхӔytcׁoYqHq♩s! G 3$ңt =T[9rKyϦU5T7rQP$fK|⎶6/~Hh(!yzRyh-&aٯOc۫a%s3 .q?wAWSs{]IOw%>.q?2oͯw_5|~^ѹ{<{;j>*?wc%w%O_?wG}{=|\#$?8??J|\ )s$?&6ߢ3ksw~n/ը{/JqjJ O|$?j^:'m>.q?wAWSs{]IOw%>.q?wG?@;y˧uҟ9{̧wp׼;*Y{է`{]ISs}/}֧?>?J|\ )s$?8??J|\ )s/z;>z'"z?sx9yxi+soo=]q=`@@@@@@@@@@@@@@@@@@Lib/gftools/encodings/GF Glyph Sets/Vietnamese/img/locl.png000066400000000000000000003133241376445505300240060ustar00rootroot00000000000000PNG  IHDRSDzsRGB@IDATx]`TE]rNzGzEEAD?l? b/ذ*JKT˕./\%$"o5{vgwٝѥBC;r% 4 h8s1ͮ13wh#0a@@5r]h0aƀl||NjV:q=U5O` <]TUfWu턧1Q+a@u'! RЧn.$ 6:;t~~9Xޤ##Ë`(KmEǏuz 6n¢߱Ƕ62cX >1t1Wo絇4 hc@.0>ϝ `&a5M%}e%E4mUCc7L7ctguX C'{ˉ37Pn w8+᪨Dg{<{baw4=0a@]:"#̟l7;x( CɭBNB>?{.~ҏc!<UuԤ'w>OSd(/HeP<'EL@<y'^ <x]VX;E`R4P:| 4 (߷_qI+8ovnL1L&DD| CP~) β 3Bm:2*]: J\Qy%ޏ ~5yj⁸t|=V:7P_̚N,Hr+;hN3'4 hpc@Z?rz>@GSW~ʈgՄr1v^PMQ161"8Ht Ibr&;˚{bex fmdje5 h81۷w߱":SH:,%1w[3 @2 PTqWe$Jف' m}t|Z4 h0pc@c Ӻa@À)lj4 h0pcs 񠴮k0a@a@)޴Z4 hWbG 8|^DLb{\fdFCW}Nhק%zOf\r8{2=Э8$ Ǐ3UZ˰a.l檘/#1}}9[ bG|FXS/݃VpЭ~a|(ö;!z?b 媫tUeڲ\u!`Pc8}Y* cǎÕc5W]V p:\U?=W\fsÇLAVvE9xwWR]VGgη$"A͎e@Wiżsi ?vMYxpw^z0#fs='Tࣷ'!5~RR_U9w}yW C¹lqoe[1Tam^6n^6akŀ?p t9.L}ߖb-¬+{O82P/+bh6xP\^|W|7tmC;8xΎE"lʾK~_N-/Qt澭Xe/||{q NΟs ̍-;uc.ԯ>ǁBL~\{-8_2 \b*qW_Œ=)S]<5Yp)9)x=ѹzP ZX+wb`cuؾ cVwnf 106-n/fBwno>qKR!Ciq5נk$4J=70% .> {KchYS- >t9X% Wp=:6?LC߇7coUѴ=Z7 ǖ[0|׭=coA=a7_>K4>W^vb'/ŵԝQiAdFb1W)4[qY!OOۉ*A?Ahު%e[ѩv_Ev|t#.2tl 1A.,3\Hl ZAX"8ѣuV{n1X ]y8,%E4ot:֒"X`pb{X{t ߉PfO'm@{iShѽY'Eb̘hOZ&!>yٵHHVS>q/W5_uiՎcV$Y+Ly,;uchU䟈eu,cL!p,a^q:U=?qw00`fRDZѵMPcy?uv DDl&<$̟6h&'cA6O%DТ]g>+]M/qb߰p L) XQ/_;Sp |pK&qغ7e,B*Gߗ >6?D^L΂ VF^Kn[Scа9otEnDēOaYmF]YvbT\{Kk=[$E4,2 e,* ?cpc;;PڑK:=o4ޜ::'b˿ z,N Z Ȋ^uu9׺xa1`/0@Xob{_`z4E3W擘Ǡ_׮g }zvZ!Ęg5GruD|HȗMsfτ/$D$Ymx9)T:q!߈2zWK$&;7f!,ԂƍA9M nLmݼhLMi>w6bc"+ig++=`'Hhڐq 1<݊\P`@iQ>R#:>5`V:h X1#= D6FGК͊L8o|p % Д BoFIaM'w͚'#)ٙ!e_cE=셭R fbde(0}h1'er7S"8 lڢ1-GG^uJrهDy.w  ٲ*6>ze wb.Sԙ݋_v 2$2wd8D' F搜{QWm`eUݔx9۠yMu0YH[{]y.mi~ hL~hO5 h0pFa@3I=^6X 4 ԏuvўj0a€Ψ׭ VÀ c@c G{a@À3 >: VÀ ƀ*.1r_DžjqILG`4c"՝qWQo~ ,wi1oDwW=:.Cն=.PUF '~*WCUbբ*XeVv"P[IۈvaOhXXUOݟJ$ԏ;rĝ܄G9dHP/SFꅡ6To?5TYUe$K)ZudsL]@ܝGIMzT9rP P%xufYUL-]M d^QK0a:"Q?gwWN#p/ U|<(ԌZy~>?(^ذhTd扥Zk dSQ#)m2v~BX,Sv#K Z%KOBFZ:'uRګauc\4c@8ǍC[ f>{«. Vi<.]h0pz`߼xK7!RY@< בQ$]m 5ruMS_QPUjxVSoWuv[a-OÀC11Kh@ xő\֋-)__n`ADÀOk1,#սRh4x|<8X$=iQD/9O%TRMgŇJ wG8WlӿA1FϑԆ9~|.3=ZT@TZ~.C9(ݳ[ހIYZ GaQu)΀?3+d[a4i7>%ǟ[B#A4\IaCau #Ql1:-.l8VNR3ٔ}F+q.]v5\9-l ۚMbo{%Gu8UV~wGPy,Zw?'fUK46}ֺ.dfZc ߘa+䓩zPE-V%@vVx9iX2X]&\53aK@-<;k׬FՉ!]=#"*q@An6 ޭ# *a"C,NVFJ**6Xc 6[$usRlT@X |I0lX/eI(PZQla4l8;cr2JJi&›4ÅI&)ےP~;ҔP~` .Dꇟ`/s# *q3zDKk_gNVUAT|40 5vc7|˹eXGˮ0kiM ~9tKnR:.$!B3!%-cԡy?nƠcHWa:5ç"&%I8IP”xdcڻ/ar 5ur!DyY.>[t6 ݛwFaA϶pp}2SxUbZK pm#_eEbN˃ "`* hL0Ac[vAM@%9X||@΄62_ڗ~#11_p҄a\q,S[׽~:W]egOpj NBă,ʸJÈ8pPD1ߋQC>^Wuc ڪb+382U=!cWBxkt!Jԓ,˅iָv08F~Տ /.91ͪd@{#?<.+TO(jeg>&6-;ghݺy-)<%1W_??\KDӜs>wthO:XF/bqۑ9'QqR]ZQ?`M5: %CbQ;t.ݿQuU=^f#0Lr=t˞6x[ǼΗa ޿L0p.ܿi9>ܽVk_#.@'⧂ʭ\IY9+Xv9c>s"LZBLk,R?S7x3SVh40ˬ'BO8BHTKQTR?8B/q qAQ[+8S۰ a5\|EoDYZ|..~caS9RGt0J b?/NB0*=m6V1Db- 짌벗#piD(';O8+m\a9{$Z|}Yb`(u2%F8: #n}f_R:F8J均 0\iE|/%6X{1ők'Ł(x7OlXw#w*rj ZL;B~!HHKФh6 leС.s~ 68p\::ċpD cF'?8"? tc޼_=C hv1ܿAOv]mC' X`tvSJYxޛ2t5_P3~f DdW/K/tCѿOglےg,GhxPae`0n ƄC0YZ2;c?1pw_ķ IKTxA Y;a_7#aXrǥ3X6?=8J>Eǜ1W> ^Ï<b B $dLAp Uļ>۟ E&K Q\yNR"L|L\0.w9u._\}3;+>^c[/0éx'1pY Lx~r>n^ KXػl^pcƹF HtE? ?.>v^;Ͼ3{M4 2ROYW&>b@D}ŊF߆'n0ױ#5KaQm⩇G0%ޙ<ر~qw,eI#C=R?*R_oݔgꟷ'W_'X,sNĘJÉ!F{v#稤^<Ȏ쀉$(4 f;9Lؿ<1l ~m\6=ޜ$oIWD:6oIJɗ̣!s<|,-fd2ޜW~et љHgSD7bvx|";{I{]>Wg0G+j 5>XTڄ+?'[F<>:\yw]3?3?]*t"c|7sF\y'%{ L vdV}SȖَ 4!p2RBqcb,HKO==E>x{8OJʰrD7|+2<ēh5o: ߼M&pp4oF]wү[`o?{=HNC/3ݍ&qnĊw¹cn$ :_O=y݂17>w} ÓC6£o쐓dnQ,i+DGj۝!+|WoU+;eSZc9zumK_w(ZV)q-▛F+G&"䋕X5k fۆCs16)1½P7PGѿ%Qﰞ5l=`Gsؗ䕕 t~ؐVWrPgWD|o"/3Vt]=']KQB%, S<`yX|+_ oy^7w(r/k + 菥q(۫w.\q5؜s8-tPkéfPXa (j۲-"Pnݺߖ/CWlKW]!cT$E{ci-9;B"{/^o¿ \6b,#NJ[gl|hߵCرjV-S s]] K `ٖG@o+F>D^}I&šzyVd2(4Jȹ$ _z"梠QXEtւKX3 ݀sX*&a" QEBld|>p B7)'!BϮ}: !47{,؇YBB{ݍXYeTnIauJaV!9F^f9o<26A ӲRG+ݨ+Aŀ/G_ƽ(Xг#pIǑr>` A|d#VRNdr8*8IFPn@T8o xGZ:Xy!2O+B8uOG:{ aGް"sOˏ@N[sۻg/W$v$ ~\hDg_~T2́TR ;!ʺRx춋)(WÀʷ*A 5|`ŧͅh=>oI1D}Εxᰕ[SK1 Eq}w舀*Ea&aO:'!$t$ !X*/:lٍX]+&*)㳖WgKB$=~x乗Kf)+^Ewzd20ɘ!/ڶCx Du8.1`'sėJW+fv)DS\\  vJ j?z^uKA%oK/eb,26/}|K J=%F8NdAϾ];[PYÙvF^ER_7]5j8"}iڡ':71 p;A0*xdrN#Ε@<>rmXOє(6 xDRhVl¼iS~B%R%d;a",\[ƲPױ@yhD^]|LlSА _:P{Ћ̟uJhqfqЗfK#Q'ͻ?=ht KOŴ څ?^fpV eU~I27w#$,ٛV[Ú Q4q`oq1$~(HفM)ièQ۵KVmDia6}fWrUn]PgU 3~Zd<mTdV8ҬdŐE!cZ32|Zh1\>[.rJ`s,ІMyֆĖR>)YHو'}vhD1t}SVtl~G` YM/_+VkNcLBj[Ob)b$˴ y/Lx !Q8K1 \tz-_yp?0I=/@o*9~ڴU%YpAHW_{>Qa~(+nERt0=ra`Sqehib |]9bh^ϾnTځyFZDRN^RjLjoE\mIz$QKuτ9fܰ-o=y;> a(tnǃPW y:v4B|p9$ Z׎ÃOKiE5UpxDė&O*S1TUߎm{s$e?bȤnڧ+П:7= ҬLѬYfdo|#X͂i+E{ H3݈<n=&<"^br#ZC-D"Ve}쮲-ΪwM{Ac1d׏!|wfx ,gޝkҷ$]0&:t}?v' g w+zo&W_鏿/ E+xePD݇ EG!etN 8 22eިcW:P?,•Rޫ)*=OEOvٙi =q\;sR<&{vYрز{&r]A<x2$)3emPڽe{GǡySc)uf!46ghy졃F%ܑ̧xFd\X6k>3[ZDlM-|x4PLK C(//Ƕmо}{Z9k~` Ҿ0Z=#T0(6O~e_})TS׾?Õ|LVVc;_l:6fl _WX5' {tl8LYde~3`#vO?"2Zd /^>Q}[fb&׺ukkv T F SoobV"Hن+2 [c`U?=w#!;[i^`"2J_mKp uh\tܽX5}2TfaOvؽ Xbډ~=iN ]뷧?4]5=0՛F݊%WDgoAXzzg 'X0m QEؕe}/,_V%iݱ;hmêͩѕ}胍+acR )zk{yNàAGSNšC&!fy)geZÀ3')xǓ />$4_fL-S1mC: ;2XDKb~D=`܎_RK3׵wuמ牿iH< &4s]wׯ?+B۳zw6e.:yxǰ/VJG #t ԄWs>eq#< VXزu7 r?,>|2tEᕘ17<6q"zVxNm#7Kp!rWRfp% R N!.ȞKK4 N8eLA,K.$\γt4&G >|QLh}ďGZ|yOGBd w<\7 oM()f/D^w_|3wP]ɂOkO)1T?41\tn_ߵvG,i<s]4]ؔZkq,.H e>]oM =s⫟e'P̜=:-Bů~SV72eq*"$ 0K39I_aȐ!t% Nnp t"3?~` rѼ"yzbn郸l Mx17|I0{z pPX/<#}[qP&۝Mi!`(oFtiRd#?#Ow(/<! *ѱ Z5] z>1zblckQgnWp>ZG3G\0p;M TހQQ%$[MǭkgC/-lJ+Y $@tLSK0)Jlk -)Hॊr,+Cuu(ǰ&W]۶be.R> 1?l⥐} oFvvIY2Ir^_uΣ|^2 a{]Z7y_aSAHy 3I_N[v&uoӣr|aCȰ^IgaǶ\/k=_:Gh,[ע]s.xwkv]\o{)i%x⮋9q&݊mq1lKL|k*[7݈N a'=CŌؼn'[!).a!u5`9`%*/gR ~6>fwd0n( I,RSS0J^,D=0#,+B,<sx r=pY{@ۓ1䎝P+t]v=6zO?xتǘD-1X*Jڪ.ߞahۭBFqT;oj½ex:2EQQlB^0q߽ŗ';^n &+[AOՋgz ?lZ(-E8Xx6]9 YZ%qVֶm[]?jDDDTʊ[vLN9'&&V?kPg`b"mg &![0@G?%*./7D;P2`dī& XRbK _HR1 hr#m[5?VcL^F*-Ktqq1(/+E0wN7/'Y45 drM"CڴJ`Z|)1&]?p.]ElT"!S@faWf9GxktʶLbRRKcˀ+`@ r2R> p0#DWӬI|D(n| a[P)k?[(CQQzRϨOҰzj _gC9p|01QA#G*j9.<f91?6;RD ܊x|/cWb7kx U+o<0"›"gwB<42V2.nlC\VjԶ(S!;=1[A4",_. !5 غ]G99H8c}mbXȮ ʊ]yn15o,//Lrt8ouąLaV 9La1=s3kI@0p;5ӈRtiy ݼ 6ʅv>=;2ĞDGj,tڰi͟Xe7O!Юk/F@`öT;cBO;*Rmvͽ^\labOEaCON@5zk )ɶ!>hlU5(I`JdW\; ĝ:F3RUjcXMZuK,Y䤲LSuFN[`Åp0cf'?SϔHW=6wr[зiؿgFA~G;lHٻ+fMݟbׯ aZUsF!8=zwi]-+a~iޝ^ظ=S0c *XVuCPߤCNp\q Tjs˯V$x:ޓ$ЌB0l SfrL!!84ZCoɀ$7+ķYt[E/ǽCpMЈ=4y%Qϥ8z_ E;^2'O?3w}U1tI"׻{ExpU4DkQbo ͞s ` yc@|3F;KCFI U`=c閥X PL.b7c@pt/} n=pe(z{Yxo6U+ъh-9IS`I'L&Q_Nt2D7-_y%ב\7-39Ə;E44{JwKo4ck ȊI,ih;%m@3 8_/!xSVl+˱f_MԁfsGA q>񉆣`?.<\|rup<ѧXӋן 1rP|؊å7=pLj~;sN5SFkB-8a™6m (qT"H_2S\Ԟ" y6\#"LZ$.l_q^m!z :q1!;G[X\HqΓd K+eu -ьd_daoi%"c|1&1KigG`Uw uW'ŬxcF(`WZP%I‰xF7BϤ|NhT8F +Z U+:a歌̺RAKg%< *X%I/KzZ-hG>7A#Hꠐj]sB$CxV2CȶڙmǀJy_֐#?/ݻxKByJ|s~3 ;*0*z=~r _V3H(í;|^~`!b6^^L$zPtI[R++K|+Պ;ܶﰳv !)&<ص775: 9t1N"x@HG/0?}EyG%IHrVZ}Yj ĀKg !, /4=DaKbk@#)KtZqvB [ ̕=Y\x]T-b~,Ayo;Q@s`b*Ķʝ(J@GƢ>;=݃םfИ?h]?T]I1Dyڍ  eNca@À lj)'j4 h7b@ߪ60"iCAhZJiF=Xg+w9!L~H ,&'ӊI.dn F3ƕTQm{2 m;BGKg4pF3}.lȵ}vn03Q܀WiW$d#2qpIWТusdg.$uƄd?."oE_91P78%@A*Ku[s՟肠ʐ\bx6QװJ!9:$W qA,-sʓعq؁ ^$:ϳKcw!YpK ytrwv |B;Vyh*Hg@%K9t\.-;bmN& -!ah.˱A@wR a<nl}6muz]q~q#tpߨR!Nq"eOB ĠWӲMUnYAA?"_+(N;\J!f@{ɠlApj2 |#g=~n (S~O ;`-v1ܪڶGx̻#s#1PiFJ)Rs|x,fy]`;n]jcn|>M1R/ۗ}]|1fe|Cg/<ߕ04q1ry63f2n peR>jvm(#Jc IŇt 尛,.IÔ.ȅǓl0Ҕ7(aaaʘ5ZƵXwtg9%3Vf10sBhFJ_= ܈;E  CpTbX5E*+}=c7_dp횇,#ܚW\Q\\߷u f/X2~%dpEp /3BeUg#FSR6\ًב]DCm W^~ waHϥ& #?"muZ=PsFHsB̞>~QaŒY}مt7}̍WL /N`7;{1~ζ} G?joJɎ7ZP )rT [8u/IP;q4 xxbs ϤǛvJʍ>S%}/1C=hAg͞Z1fܬxmu/ eW{jq:pdŇnݯ.9q36&X?xZdEd ]%ΟEାCЩelkΙ` ‚|Kb :+ 3qnckD"i+_ҧ~̚+ yszȎ#.Eъt X% ׇJC6?("˱98!Pԛ1gnthX߿"-B>=[O8S 5)ys?wtfk*$}ifƔXHS9)~;nM2#¦jîWx:"R r_Ϡ+yе$]O/Vɹ/Qe!nY]xT] %B JUEP|>v]D{$!7Bz2%3iw2a& x 8s޽eBRp@?? ~(2_Ğېrj'4qc%k34Wf%a;WrRַJ:+'v)+ϰ jAK&ثdNJBN vnsU nLFSfZ#,5Tm&gJ|5|]6!hXΧxwpBˑ„#_!ۿ ~>MW,~~erCP@T/O'A)oQmnm&- U=Kz4g! nn;dRK"DЫ +S~]2;Mvzږ gɑo)ᦄmgJզtRd:?@r ¬WOAǠI3;w#H{ggUJ fuLJ?a.Gnp YaChQD%l+/e{1;;DuSS) AQJt4e,ZT^? B~#څ0߉ :OӼZv1 :Wu6֮X_[ ~ŞptPK;??_sjoĪZn >j0|-Wv2I^[XZMу6apϔBS/JL/(?О*2} uS +z/m'Q5UN.f ȉMθ2q#4F[W[f|xFR\Z}6yPB#G@ViO1xKùu+OL/7 y3D;zᣯB֟w*/Sڥ~vu检pڋ4ry1GGftAdrj#4{#NPߊ:m\riTu4tb;Jn|cc||RR2(LiށYLeO*?*wtϵ=>w/~qQgd";;*1XMKZG"T*C|\*zo\ܷeЭQ(^?^0䅵AHҍNu %S) cs |tKc} ןq. tANz"ZuE^ZQcߖL;xiZiJdKIS)@|BF @.u wr̜B5&ZT[v;6..c' EQ^MFoM\PyWRΞ֢Ҹb iwF0_xHt䮖`mw!@Gh+kE<Z28D oq@ aT]rPu 9yZpŠ6J)NapJaw[_;\mzo1txLG Tb@BATCAk lF{(a^]MCO;_E^LƉ.*i'OF¿EGLc,dGRysТp rm :8{6?W.&OJqbjL}#(D9 KKn_GRG(&M„͇3=+͛!ތ7%6{'/L{&Wb3bjI2d7ڜ*0WzԇWqd,~['; 0.3\.[e(Ыяɟi\YxpiGE8sHJU4rGKiLE`&U\lTy/iBBZ* 9z{,#nPU(¨Fc&2f еtka=c.(/ͥ*IPb`a1< >8?ҳ a84VeXՎ8u\EKm9gTVp<+Hd \7z-d@[ v]}%Ws5x>J F‘mXnw?_o3?<^lّh$3 Ouc) N :q"v+-XKLT6eW'Fx'+F;Bfu֔]Te#P ەgv="q@lyqZNGŸqvnv$Q #A(8=Zbx;\Yxo ېN,l޸6͈gq׮(lݵv74tBFH#Z]&牏Ʊ㧉d= ,8ゴسc QӦcDt ]m;_.= m߼Y%0)&1BH`¤F[EWx&ٓ|~of!hhW,.*@̹8U3!ZR<+v`{Q@l=HrI[{7oOfX)}$8Y @;x6*'_ r7+cz}J;a4 Mɔ7#D)Tr1go8U2|JWzHɏq +с#KaǴxc4 + =2N`k*yOcw/"6~4e9)/~o>g^wo޹1n~gyL1M%SRcgE2&ccm[Lb>:#6LA샘j_@O3S_Ĥ;a?Чޟ9j/#"yzMþE/غa+ÇRxa܂ơ??duIQe'a5cU8,ˎŊY:~84#5sJTœn($\{C (uqPY"p_FRtx3:,uln=4esTPe z\ x|~I1 Dj!*,C8LS[#dAs| RȚo[Dg|E q^B@y ]}'~^5[ĜQ`8D\/o;+ xkH|7o"6,8[#$ `Y? (˾E I; zG Cpp4rCPZ.=v.^ٌY]1dxxT%Q)#^7|b-uSJidWP V^GC0bc zC3]9_AQ '~X=ޖ ㉔, }6Ħl|Yc܍-z?Z;Oo@yr`@FVPFmtqa; Vee* tht `rЙd |;&19LRflKQNO;|⍵`\wC&MSm֢P gTb~~ cvyBC]HŒIp'ޒ0'%CG6An>E:aK 9Numb鳰SYXuPB $;aZ޸ gcb̊& -}$뱋zd'tLd [cTIQbQqշ_gP }RjgjWs4 FxGh() 'FE\kV.,=%K"R8Ց-m$Ez1J:FTu?)| =1\\1IQlK/_c V**?L㚟 sXڶzYuAGUp%ю&.0G)vC)yf'OW[7 xJ̭ ɓ ?`64PtAb>`~Zub%(b R|u3\)^PӞ9Ua8soi yUl2&Q@ST&*A8}6LGfAm~NEF,um;tl^'N#erӓ;^NXmU{`ϲX;FÙ[Q<^ѱ~?Iˆ}[ cv-ېiO3Y l/ &o⧝=u j"К;+zvq}R, Kdry+7g15B6Li|1GMt-u}a5mJC-Ԗ4~xNqebQj,_E ?8K?Kyd+W9>e*:wƪ퇱tر#>i[ +Sw(Q>*w ^EN-+ <"k0{'D N+;(߆1 O[4|lݽj-_sS#03+J.ӟGZ>2mg휂~ݻ]p< / -Gg>64.NS`< &͑!@<4m*V:wꄏ4"nGTڟ\% GkXo(p: W#A)_}[bp" cC9`>Ztuk3&@ #;IΈi@MめOLʌj,dzQTD{Ry ڬ#i>yO"!iXН±}zeaEoLvk/]!29E; l3v/=HLd4)nt||,eLu{6*d֡2r9/(LVuySFn]b_/ZB(x-=31bTT j͚!eK <͕nLW^T2GgxX]^j Y6<|{dgS<}-FmU_< OƂM'0mX[_ ic=sVBAVJ"~LJIPp_C}jR rpNw\66$YjQtu+'nZJ 'ˎ74QWpfM_bfÖ6*@7ma\w*OdlNtdv7kRϢ@%: ƞ+YMך73lJ9g^WN(yN$Vt1Km'>RGX͏W\nRJ+P(f"/TL8|&,bKb{2^00ðqq+@T/bXtgHKmb0J)ABFm/+Z CEJ@ ɺ"Ǹ3;+~GcݷRJ+](BE.DBslf4s{#:L,`PQcq(}͟O7=cz;-X"Q #`$6i/!<"v.^HKWv{->AQh `AE.k,!ؔ0rQ6}oAs_%Z ?c+Ecqh{mUkмy0B8**D(Gt q-|`(UE~e Jtvq<ˌ1ջSLpu#aLY^{Gֳ7 ( KićZbW6ݸ9;)Q5K樓'ڨmՄ=>C$#чp!7PuTV2a˂O#\㧅a+أCֲ2㑱 7Ξi>Gxx*̩}=n0ꫮhmphQAPĕ<SYH`L0Ùw"Ye6X"Z+%6ЉXANPfhhv{F!'#Z-Ȫ8UPB.p˟O }`5[ͱ٣,'.qR[i pTgٺt9Te 2_AGz/5j3k6lRTt Gw;kG,Z M]m5 IHR%ߛ `tMjEգrBe5J/QA44MAh%9B4s+ W\~ 53WϹHagP336ع~^ j)ߠ hѶ#OŜo>G`"Sg 9w" a}q87id7jWWuJԸty^LdYL.68XsS0u|gխ4BtqJ*B N A`i1&C4eхx0 2<w%w3~$1;|jzs|a8X :["Sr=xHrr ##6тg0U$f,o3Sp o. 1tH4`㑱 4w7zEK OsUY{ (^RU=+YRrXpDW+/r¯:{E7w4DDm1}CJ fuP%arL1{F#"<. #q&^R2%=1Z rN8:7u$Ƞ4d?BY&Ϙ>[cˆ5U=n=Hy.g2KLʒmU0kvmđ %0q"Z#5=ߖ#<ݜ݄%d2}tFh֥ HKSk, NkdopyT8Uti];!ﮧH p[l{uhp(*ȺE~t̑^O"ދQXLJɐ%DՊ\sBVe j,EdFz>JԙP$c$L[|J؇c[t 浅 Q+@j K ڽ%t`Qp4[q̎lrF <+x m'3߹drUu`4 ?2|eؼz)v2M(v 1;dWh#z D'E ϩh;k+rz#9x5#`۽@wՕFKIu0#ؖ`[E;o)T2)΄8$j E)L Vl|1'+QZ;ɏEii ^!a4mN4|_4ѣL$V@(:pCs(߀F8P& _ sA"-Wn|;r([0ە񈺫Ҟ+l`,=j()P,a3JR5f`L~x?F3 )ؘؐxh]HJ#6Vzxe]xd$ű q?p]>J:2A ݁#2TG".g""Fe~d,nx艧;;C]&(0"q~1GmQ1ܸ|ᬑ6{2 AЦ`Ѯ5yYcR?QA޽ f>Ԯp˿K:5w)@;N9D QԼڅW؏֫9#YQP0l7b3ƌltrppE wFۅaQL*RcC^ S(y9M#&8XwRӓvW^'Lb\~letOggljѬNn00uќ(/W0Fؐ_sG3rQw7ޥHJ*eʻOX|)318W(${Zb~.]vr| 7m%YȤ޸U5xtD!e5ч˪ywS2fyMuMAȔ^8c1dԆ8%Rұymwve&t#7@9Fy.Ғ8\հ+ۑn#AE,< aڵ ǏZ$סw DU JƜa D'uHsriOг2s5sV>5cғ "5jRd35IIQ ݦ>a97,7ްwU9a.ΑYUյu`DHh hY_WZ0.r5D5W?Td?弣O3J_NZ X_Kk$Eeن_EEUSg?ZgmJ+OmGuD7/&{u7@뀬ROU(i>;Ahc*dBϢu܏<Y1Vkp.oRc^ Vn;^X މ"wQ#j|ǺXw,]?6~~^Oϯ+r@\( $ZB ?OOO7GEdddEBf||7$ě0ZEݱ})]~Ku"^cv  }oDx wOehMo"{6qR`ɱMT Fbm°"EX+:1AžeMbta L rР؄"})N2`N CMz(/3q:T+HUm^:֮[`3B;?#f̆n6~n\q&9uɹ^̃*tF *MJ/oa2SQԪ)t)0]u~7W$܈c&4dooŤ>ƌmG}|pcѼk8![™7 MS~7O"/Oamqv766gzF5Y)(覜*V"hDOj@ 8b8j |ŧhgtտ9ٷ0ճtN?SګVvM}I#F0RPt<7 V3]DDzq]nsNg2ږOZ"-?+8 Van7銑_1DKB?I) ߆9J!P]լf[oճmZDsEX@UkGjBTXB\$W9][j+o8޹ _D1HE9#TO6 ӼE34Wu҄*S5UZQMM[Q@6rZ7þ)rDN=5WUzƙ5ۡ%¹aTaTXMzUTx}1oNLL1a /^Ă q"d;vr@r ޹Cv/P \I^IT^؇B跫 T[PT̟3c0Flf#]!"MżMK \m!+D2=d/%Dׯ+kJ%tthvÈ ѩ8vIۨ1%"833hOMt`>)'Ɛ S Mn" q3P ͚[QrPv 3&R3u$ɗg`W~Y "Dh` A^Sg1umbJW.6E 4wW~a8w ç1뫥>`J|: ZՇuQQe0gޠdn+Ҩ w*|DW2N'$IE:uRpۭ[7EA_.u.31ˣ)x3|\BՅ2گ}b_Stf]L"RtyoZY( rFflΐkZqBح$)f&TLd}pQ"[EH_rL &(Jz,LB"l+YrxϢѦsXj#:Ĝg` QǦj*7lxj"bH1/1"3ؕSwB9oGZt>h̘Pz% \z◎UlU<.|.x7cA{1Y??/<:kizaqmCrpŴԫؕQ@}:Hb\D߷o_Vqܯ]ŏ }ƌ c l2x &%lED"V <B('§$ZJaY 3wMT3KM[cjPO4^mC]D֍R2gNii-+p.:biqqX]K ED4-@^:Yt(Zv]kPR=lloHXO Hڋy;}xxe3H{(AAФG \^ }oQ9Muq!_J_/ yy.E[P "eDgŖhl >QK.{a*ګܓU6 'GvN.E h,Y1JHku]u Khl(ZO./\qcB|9@,;"vڥX <'^3]WZpnI^kxGQ`51^ېYU?ݗm ;U.""س=̫N)bα7'4&u"LߋStG`;7ڕc9-Rm\W1ɳ4,= @4/^K!YNpˉ pwӆ{cUuݿaoC. -w]Sއ^;]%XF="zwcҬb3OW'>=6-iϽ {D^è0z8O6̅6--7/9xv  у0ŷq$n̛78il̙+\.MRo}V~*z#rmʩ"=ZFD"oZjMA!.+R$'<\gy3f}V}yGf~z-vW숇zo<2/_ہO- zO ⁺BuŎyzԯPjP-Zx͜9VcrJJ |}}BQ$ƤΖs n߀3)yl0߁g2@gk2ȢEinf`NTl['eSr.gY-tPU0#r7U04 cӳ{W ~XR:lRB|s xc,3UJhΡP3g$qq7)}g:QW{߱YJ|l"lܪUe:I S̩  ܕHHτ0}.V/LKCS TCe%(to>ה"|^~hlpC.1A$ʧ:ɊRNnJ=9Ⓡ1yc)LT[Nkd:,71*7I$LҶM~]D0Пڶ F8=|Ԧ00nn#BTmkH6LtjȵPCT9$$6T_/;Cqkl 3Gc T)98{70.d5̲Tk,"$nt_oqk5slaኁTҙa>sX+-Z{GͼĘM)dBzTwF밶7?ELţbI414e­֖aCk*.xٱm:Nzp1*.+6}.+j=1|ٙ/b7]\`kI0GvAQ%ά"6ѕyk5{XҠk:f>X:~Yjq"$̯ކ;44K,ѤIUVъ3ſ4QWaӒJm9.lѕmuh!p} _|ÍpG).=ž|oUa\Jk+! oԝ*dk1,P,Dp4Yx>d{5k-h'xK.E2=2:wf͚)]Ix'nSTGՅB6/ ȯo5RઅP>NSjMɉZI<×2) ⠱ gd,ƚ7]Vgj۶Զ^V "?xI ަU(TuJ VY]##7 >obg鞯_Xf1J@"0?nz5RJD(߲IS!,6!Y!0RylKJj ` FWؐBC!6_ش<}{8R5j#;aԚ [Nz:9q5eV~}E0w;V=] N[7o \Inz WgkjWoݺUڋ^RQƚLR[B]5:)_ce7w|RH8~Z^ԌXzx'ۙMP4wg6`FQ1=?cUW7t`tM}\&z|yz {ql^ rVw~RN&AOnkۏ_}O>xfo½SGTY9ɴZQ!EhۖpK9nba`v)r]Sq5tǎ#NZԮ9jzh؈== \,*VVEx3BX=QYR-xfvحA ZKskCsmڲR"D=~:g"_@rwwGjjvޭ/ȕMU[2߻OLfWVD-z%'@\Yz nX ތBUtOuylҔɖ+ 5iEnSuy/Ƞ#`V&dB'gNPqW^4h\=m3vFwg;P SO/vyDypW8R}vBy\EL+*^=707B\gxz1uf'5.E+s"Dk5#HL&O @{-X7nd XvZP 6L!fbq`gK9uēC0T@W/֓| \'Eʚ܆KqSqbq/dt/jx Qڵkq~`sNm> <~~~`I'$$СCd6J+ͷz+ڷoR#E!Yx'rsr@AAFG)Y'H@>\Ȍu9YoQW73F"$BWGd R(+fkMP%L4T,:&A1?w^<ݹᢡ%09ͮc{j ì-FohqGZ9an:V B ӷbOҋA$x?}2yN-sFtO'~za,<[ mA  zԨ— ;^M`k ':/!1~צb>ZӱD^T#++ +V@ZZz!eptnnpԺLzJcVڭ*;@4눧tp+ߒ$sfF^BPH՟WۗRqŸ%QG7ai54gKUQV1lq <,,XS)j}R8{ҷ3IA!S3 C1x'QG{ ]&3#;;zX)Qr F䂲|d3it@rydiN4̌t6O^(9qh!X2 cc˾$*buhis j26WPm>g3y2nW=[uږ0QFFEA`~J2X)`߇  8hPyD'ĞxXzsV{A>}}# KB(@Oҝ 50_>%7.Ūбw7&dVܮNHr4K5a"dGGGHJy!==];TwϤXIȋK6R΀ƨYPqfo|J---vT@'~ea## @ÄBJ ?zO;Ehٳ-z SGvâo'y{tw]s4˸$+=  bopJzV?sm g]2^{i2H큒 jò@QI氰t"L>ŋ+y[ #VsZl1W@ .HaN&~ %3 ̓aŦ]57?ݓ3'?~Ksqה}_=}U䎄1_vB~a!룸b/`\'TOW'6JpSo,z}lSBg"΁aSl i G;?{ >vKKQ J&QjaĉXr%pu'Br2K'.JSu _8rn+_\ I|=Z.G:C H_cG,;ȁF3NLJ(N,zܙq wW_Ğ}sh^{劳b_;1z?,ZT3A J|9ܠá{o>Oh4 XbB>qerVQ2`M('FO^bρyX~ܚ`K_ԉص0 Jwa
'[#{_;` > ߬8cFXe^p|feboP9@'?ϞY+\ D4^dFqo^,#]O^8<fm _in(L><<\ VT1(Ɏnd5/䠄b-;_b>uv|U6]hG\*,SpGQ/mOmBl!Jnٮ=vgCSFB=B~xS{갘߅:!U?q\(2t*e9s6M :t=Pn4Oy&,_ېPX@O|UYLWmǸGݦq[Xڏh!}?k | ʜS\3ƍfJc ) >%2iVCT$ tx &En:o;8yNJ$P uX3Ց #16 %26߃3[@8oġ զD{V/q+©al^3>z~F݋f݇j銀Yc*%>J.-bwpxpxh7Ιfښ/n(_ WgGv/t$KGܷR˄:%=p +KOjM{|eX_ } X ^#Qe7\:vεйe @Ԡ@y}8OpvЅ~}[Cwqa\%"aP(`i4104|φs$SƤf1nv{m+[>2Kڼ浆ȁIgTR{X,[WN_@n7`(xbIt#&PO/vZ2YUȤy<Ro:ݖc~sN=] ^W |V5quL|xr>'];Acs3 sm[peݻ [o/q1fφެ?пk;j>4NC&aX%A_\郍X/=7rlKwƧ?A륳 Vn%&1XSr2rUTYw|*5+_um=G=ny% hd3_'r/C-o&Mi>S5ff KY:;/زB9aj$t2g8XB^ j~S!Yy/T!ic@ϬIlGF'Aw.m4DF7ˣ \иdZK!{U?ܟag 6gvpu~7lH;V(mVNuS\B:lD-u%nx$\QZvл _ np/u7w#h7C,ɕ0ʳ91c=0  ];Goj*L^uj,|.ʺ͕sZSB1j]*2uL'垡%E&Yst.ndj2VHI65ɚ I j,*` -,m5gQBlW P^﷒S z-P)=ʂ9$ 9CxZF1[_#ҁC߶vNYU?.^!+ar9+ |.{*/ 0" $E'ke/3eWto.dڞOQTR?DaG nRhePjS)r,`s Dٌh\5>t.h]U䫠7WG&Ʋ:Qa\H YLh \ FwW jR:oyS k< b[Ț-aF\NlAE4:njEpX HuE_" 蓘s+>$-;:;pM{32 J y 3v0Vfʆ+Z: bH_\i1t Z(Ѩ\A2Z4+K#Zlad{uy)2@ixu*'`Bs |[~@R}PB-ԧ'i58rwŒZv^zFh<m'WfT/G+T>E~)P0V30!YAhmQ& kB+['?Ŋ;O ={PVTUZY]OIt*Jš,^Bi C\JH)3: c^R҉ pFt &΅.bBf<o0ӕ(i@HҖwTlb{(ɄƶF]Dl!)zGH!d, q!k;q)hhGxr]׈!OZ8T+hkQ1rBO; IqM9Q@}PnARBOg yyN#IL MLqOõbMxYc.OXH+hrJR6XD875ӱyt*E::5i%w4}$bFJ\-ie!\WL3x?Yy'8bE'ofB}#! n ;mX )h^ۻ3ϛPfJ $l30>7N" '+7v.@ؘ/QH|2 VQ%%wP[s[V[-.p!Ù.ŔU%7* ~x1J3n8#.[P԰0lUVdr;5jV0z#Q#͚HTLM`x 蝎XLbцfx30dfhPykb \k% jm`!\IT+ Meb9V%ў/zpD)"wX+?sx$I?{$&: %cǎqy:7Ƹ JW;CԔdTl/4!ݒϾřGѶvJ_zZ(P$$Te妥&41Ì|i u+BlO̥'-19\*Wdh5#ji;|ZhčC&~'Z|L@ًvA]yQPʡQZ8mF@4} aβ0LT4Q~lX QtJFKf}iK0߳7_|?MzOO5@^Ƙ!(j!Z^83'eG5r)!/ j@|ffx@-#-faHZ:I>ΔW%Q  !9z. dTj>IPLƞEV̲:2\R8/]x\DRC [\Sg+TH:l{Ӝɼr$J(36g]FpdR ү90ރP!ur[qvF *W1j"'E5$3 [*Wq սiTI/̚6Zw؊-t4:eӦJR(iT x^8=OQj+zgY"er)*U0K :hػ{y@IDAT@X&ޣ&ujD_ "JHfS+^?FPGOCR)VT?dwWb1IcR&:>sSWS dZ&+* K)Dtedrpn#<umpW!Tkpdd$%'ؗ!DZj[y|[4hfNT #)"<3  T23pG $s%ckw ퟭo{׏RM?O! 9[u3ͮ5B^P1mEu\TmT[бW_:&Tr?[_L2P}ʩ^r=f\x-Hmm끕A M!܍3dj5b)TIG_8hOQoT҃ne0GM .kPZRD|f^Od Ų 3+5Q_I1v/IkdP3N2x9cD@0&SxlJ"d ̡f[bzݴžS6:.rG-k~)}1I'D(XQo.¥(VcqbhEIrndQ4PuvqHAUgK7oN5pnIBT0]ȳsJRqz)`t4Mps"MUl f0Ο[zc)'(od_V:G5 3j~2_Q$ *qoRQTV\G1 A7oZqV`zqn<cI>zcFGVӴp)4"F0k2T{"$BYMǡ}{q+<7.Q͋8r*޽`>GqF<6`Ns(.P$)XW\iJiP?%ӱȥb h, ?6[{96ˮ' h/Vǃ&͇.NFzg 3bii&ݽ|!N2ZU%L /dXgc֢MĘ6-ҕlX,h;AŬrUWH}"@2SG4%%/F^NNIWׯWWKedUlٲ۶:vUMިxJ"~҅8 }\C?z3Gdj$ )yM&uz1 }B 8O /Liz\(f5^Wy^_/ݬDax6`2$$D`ϱliŊfh yD1߼zN! ZԦѭg_ W~ ϓbʷFΕxw-OPH 8Ĉ?Na/Jq2^`̛6:P̘0>CHWc9ǖ%jqϦU[LE#y+8t(bbq bO\TSp :mdbHfZo]%^cP[ءC"ֆ$cvU+l&9?ͩ:Y7ޅÚ2-aB 5،`sЂ+MPJK?t09wW1fLڭ;i?s/뾟g$˩j9M?PfF~+~~OtAog3?FboBkAX:#K;\8XqEk" TWįqqb_8։8y?"Y -,_9QkZ* :\l ,*p3Fk)t|˜99#fHNkq .ѴCԂvOR* hWpuEe4|p<쳸{.-[+ZjH!E~NVhP(Wm#="B8p.0QձsM<aQjN!F&D)_ڊ)A@cJֽ\&ΞRw(bzxUlDE$޹͔Z]^@ Nn+eJ &#&QBMTG0 r͠qpf0 Zghq9Z\>!'ꑑۛI _*fmZmނ$7\񆵓9n݄;U<~5 V;#9kHgTQ HuQ\k4pi3JgnD?7jkc"%+rgR yWcY|Jt0_!$`_[#'I:sfs9T~t7f&1cNy4m޻1\ k2Ɠ=zۢg1*],Әr1z Jj098z1wƬ}8u49f:Ք #!!S+D܋`%l愑 Kt$a3Ÿbv}/v_%_!8B54ӣ N {fH ^gG%IOFxAsId,Ysk+[pvvS؃+Du4䡂r$d1uwr5^*!|,mpBoQ&._uꎏ|w^~*Y>Pz˖th}4/2>zM^;+4 ĈWي5T>V̈́i|dϠlٲڧ @^FOs ZR¥3^$/_Ma멆_HT3fP2D5$I8X̻C+rAU ~J)LE pcMԚy.َkfNlٺA]luLFA|SqVA.A!=-ډ;w%8 g.= vmAP?~7$c*$DbOPMU7o_0ݻMs GRyg3q8B4z|׃qeV]Ws]ü[}ڳ ]a]D% !gΈǷ)NNp'sx #q`3 F|&,qx6 DDLv!Wpe٣RQԲp:筜-gWR`aJj}<:| i5㙪F;xJÐW&2n0)>Nt헀6-Q`I'toأgܻ^Z_#J 9haUk© db`Ƕ%n|'Z8˟10:iG ΟT׊7к}RHV5Ɯ{aXe+U-1%/]<'>hk,GBnPfOʗ-6n޻(A+N0(mQƝ{RbrxٲTO%ˆpZ oa1fb&3P|>iwq% ~~e_OWB?7c?+R%\FKV3kM@uedXY4?mg`\sn0Ο56l؀H7NT×kPPz~Ւ74-\}#XRZJgڻp|ײ =[I #uI@~q$^D,UA3`KՐhJy #%dANΌfV\=w*gA49DZ2"]{ ;U5'+Yp^-م/},?Jf2dZ_&יS|Sl&9 m[Rr"T-L2-Z,9e < 1YƔ Qq\9z"-^ Ubٗ4tbb "SgKAU}i*ɦH2DdX9ʌMөrusdEEzbW8ĂurL-99J%i]⃲ՑI D+tAc<X7PE_|C_GϠ\hoǒ!أr9g񶵠u[^F6͕&A]9u]}[TET ??}akYr a5/_IhޠA\Ra1LzX hk|qV i￰i/mt0ѧm~&,QJ;sT=fLes+whC"~ ,Ykڸy~^wXuZvśF/ wW3ϞGfכ6mRX U^ݠ&Fk׮EZ0pU4oZ=Z?Jx˰b,JS@f~1idHv"4_Kq  'd\Z:.RaG.R \NSG [' 1W"O2GAMhQ+>1;pRRNbsH_ gY>fi<+S+O_RrqyTF}vZ\QLP+UTčJ@S>}zsSU'0Tc J(\=Wǒ_Zȝ |_)tuzjaf4_,/LN羱(=Iems#D고\.]H PF Yf3M5Td_<âS0mNB!'_+@(j: W K2uB8$B@pQwKwY2{#:{uQD) 4(O" ~ - 'K0Ta ВdeE]\]ڮAJvC|%Zxy"nT&eiaӱG/r4yWyg!"<{vl].[菱~ޭ&@.lJOf߀۴=-uEUy"#" {&iC1狏qf*5R,λ84B*{Q=q8xj4m˘\L͕ cs^gʚ o& m N̢T 4Ua\|O@>ڼ.[IJDz` N+9,?|6ޘ)/_Kbɲ:Ș~ Ϸm+Q*dF!ww:{w31fX|-W \gDcA;$ lfM^P2k俆9Mu0e?Ļ1aXUal=ͷ-6Įń>SWLz_.mOc..((PD9m7e›`A::ۜv ,@g%tv,5Xɐf/:N=гc3,4%6 h%4iMN=ʍQ+"n5:e8s8q*vDz׮ꮴ֬l$nyUIKGYz.!$HEf)1*ۛӉ0\QTr%&x9疒jxlSZ=CzM;`@NXZD޸^gPك .B*ծ@g{yA6p .@nrڰ%ծpkV:;0&Zݑp qȎ8p2JW#>sp}#\}Zpp-}a?A2hcHrH+;9SCLK%bbi>YyHJ[^_G3~ϴyg1s_)GnP6 0唦_"BR7Iݛq9)1[غyn݇{Qm h#1j"dLMrꡳIgӿl"˽)| may8|ǡ#'ZF<#zM>Aoax2@ k3~*D,q{D&d VzfxqG$tv/N9:]>S Ӊߣ{q~D>}q6=HUSDt& 1&F{vn5FBXA *r ?:CG~ |'QYƈSјR_Du vkPz`ʱ@gxn' u>zRx羒/t|R޿>;HɚX3c2z `4 6Om m }BBas@gY nC"R1cogt']F]<~[Cg2m"@zJAc=DEtx2tDСC l aL_^5#˧ȡG 4ky8{b1O}f :#8kO`#Vd&7Axk_U >RXN쩄Gl_Bg7:ۚոw0R7뎽 98svO|wɳ;Qr4 t }R` t1o;W F|_YDaX bߞvz߼FM+𺋙3aA`2:cݥf\9,V?*pUQ+qޥtN3La37aѦXu<6-GDBg똩5-Չ<& Ξ~Ѡј߯+\ɟc\jn3Y=̝Al "+A%uǿhk"9h6}l\8] @l+m3]#q h`l3e<Ƽ1 54GG$8fyL9\Y(1K=ʔ?/nuuma R-5*#A %={PV 7XZlrEţ 7 ( 0ԛ7=6 6#Z.5 \?bz)s$7f\pn-}y7'92 Kξ2)y_= l\uțJ:;1LĴ;5Uf:Ebt,.zmèG8&Bwp#F\UHJ<!=ʃ"t7\%K@*B荶&a_ZdǠMŏ3kս$;ʢF {nB ɂЮvDIAPE Ubw`4[J0_I/Y@XE-5Cm qŝLOU8!ٶ^ZU@Fuj3_ A*|HH{#XbK0ոR(ݚdYgJBr>ʏ7:5?'AYEϞ=j*={͚5#1Ƙ2ţXToˌP$h,AGG2H 7a>y~lCtӕ-]qM G`8WҦȸ}AH Cg PɌ? k._bqԯT K oO ɚZ8+?v2:9nl mntT+ }%o`ZH. U. t[Kk,L2dBcoikZW[!>.J1,4lD:A 372頾;#&OEe`XE̅v|>WN ٝµ0 ž0~Hq*+D[XZ#!& SytlK ~+t`Pʂ\,w֕X|*GOl<샌|?GI\{ޑ!=Ŷc1?] 9{m+2ᔭQws!|nܸ *hT  ,?hlYJRպ y q+Ca>lKc׺e8~*PP|-%+T t'/?pNDrHtv^#ѡiicữSA8oAgKs$u9=nZjυX|=Rd']6a獗}"!o]ƴ&a3pK1'jEFF#y7n&M8`f?~" V$0lWBݹ 퇠hZ8{CtKtϯ% $QA5[HaP pGd5 Q`f7a(zƑz.P Γ>L y:jkpM1 ÌF vW7Оg[ѹZBu2fOC;e:{I>]h l V 8@e.֘S_H 7@g۠D> +#!1#ueeTiuk|-Ԭ@gWoKH:zc Be4P"zt4tl,WHؔ>C=hn19|v~d]}\VJ:P&dg ɫɸQ7$Y8=]:'ˏa/\EN}(>ߎ c~lt5ZI@c!RXUA+AB _}!z̙8`.Tb+L TJLdn,ײz+u<3i?)̱W -C6U -$6޽{{UmڴCf?, m5# CBgZ")vC.2 dpshZᡳt/:8ZAg಩@ H¥qʪJ"И %PΊ>fQGpqSՁ:FBl77g͉F}'!{ K;jN &C+J!3" H(!OR5Ssr97*2n=Z[7 EĆo"$B ^ A *2c?+pϦ& m <۪;<>{W%0_2%ha1kάgR[Iϫ'%u9rʗ9ueAb tȑ#kY GZ*g,!kyU[_1VUJPA~k&[F+H<]7x<4G=ꡠ#Qz(Xy'P9*?| ljAu[_L73߅Cfaݫ.FPr!|V=WAJ5Q34ѶeHwHOʞ_7#/=? þt*p)2aЫW/B[U\iJ4ke9AV*4d,r*Y|P-+%834Zp,WN^r G9SK.:yӦF%$]&z*Əꌔ{:y 16ԄV7^zmR OJ0|\bE"DfbR^=e*]MR#¬8=> XSu/qq˅@B?lFK&b_ {V㵗_'# ,ZGf~balpui~lhH)FY%fYʘ/k͏,Jao/WTM=6)PLr 鸖@F5}TrH~8W ^ب>u_/;1[bVeL,UdL2 Qt鯣1WOy2+>*@1> J(Ȏwt%L:=7rpww-d<*$BsJdTr]i35_VgzT$鸠shzT~L7aY8XIu!22B"EK6u"KC軐DG;[b WGi)4۽M,M qKtVX|Vߊh=dCt/" U,1t`LB1~psܽ~ Fࡃb Cزhr-IlۆXN—ߙ#u Ae67A)["P_KVz{vġMK0et7ǣ\Zڅz ,A7{j-rꆒtw'KCk9]!k0ٜ*k&V5j^zU1}$OժUoϝXFFƏb9d> 8Kj(2G( +"+ޞXOLxy f~+֓EQEH6cF "Tw&3nR101犿0i8\ao` [&kM޵0izc1gnC=P63YnVƔ,D diK`7m Jf[{%ȅC\5|lWA`?8$$je;NXо;/ɝzu:ϴܿuO$Z+W91śaÆEPOoD&iѲSO5Pكm{[UTvC" @mtp+u+r)G4nuTzj?Vߣ@g~i,jwUbSOdKlz.TɆ!tv26`(bPBBg7sV {gMOо=ۿi-_:ݻvD<5kA}V7GMOǎup5:{(f Os&u -1>۠}đslj#[͝Ѹ ZԭwV\{U_@s#:[X؜ :;Qʳ0o>[Ol3'tB&(_b_">g튬z2ZAiӧtBg #&o ً+w4}[Z[oaՇ+Oq#!A7p/BNg~Kz sf郋=G<֝曀/n$aJ }B`8a>TUz&r~#.2S~5^;|>Wt&^}t|M vRt͗/k+)7Wq1q$"Α"|>[\~8r^A}X@fW8 :Š"|!h=t Ў^'og_#}GÉ@gω}عsbia' ݥ=)*a~sTj + 3?c2Z뙹+ 93g^<ʭ\fGy$?9;ꞕ5kT/bW'V5Bgϝg;[{kѷt}$ł[0?M{Np lD/FaOS_Q}M4|m'eNF1r/MpPH &ȨsOA!k5k&txoF5ɣ:ۏ&Ꮝ^4#T_aoVWt@dfeK]^Ykɕ s16 ೊLBj'&{QjuDppM}':; -tϬrݦM[]wmf8S%jC]IQ.)٥ -vG2,cӗWR]V`>?-ސ :{7@IDAT0Y Ҧʻ*y%d>ywedfA,xr%YO% rV)VhnPAWB.*x kGŸ"Ncpܐ974C@g Q1˨l9K2"k,gք-XDj:gegsG_Fٶsbb<#ǝ aMee@gs5DI_,§#[?WaDdT12 hYɘGɊn cHE=Ll!5$t7cšsӸVal[BgS-:oa&٤)t6W?29K/ h ƿ>tpef6- }pJ렳5{O2pHcM9LdL;؄J3Hq%AgLwSq;ԸYs99zg;4>uLI_̼i~ϭuB͑3{:պs%Sʪ -~l<674]QOD $:sLEI{:Q&W/ƾ'z2g+J]Ӓ"q?>يϖ$: Uc_p̏3P:{W^ѵ߸CBn[H@[Z -Ti)P !5 4w{C5@ٙsfΜ(ٵw^ǬAg[5nۏ;w- EФ^ ,[twnl^aqywҏgɫʄȷBTnŕ܀n[|z&N=θpY"Ir1D}qLS [ͦp —}Ğ8|rGkr߿{ޞQ/qdܼu'͖m;ȇغn˺E?stvRs L# n~0 TPʇKbO_zܹoH]o^S-sD|x+Z sMo-uZće:Xg T6kڍ6C  I>C_NMK_s5?-4ղWf2SQHO%QidbY#h3{x,Řڙk-tvOBgWU'W`9z7GcD”3%5#W&Bxa9 ջ| b`hФϫJ75s)4؟: M hզ;WD 8=ϰwh߾v^x:8s UCNmдY+tZ=&:)cȴ*CAK$N~t*!;GCU.ط{tǢx&2 r/MѰєE.6rUξ> 7 NR7*3 G~XBZf7\NcŞcJn1f@4m-Dv6.ٮe+bY؊E^F6Əc Q( 4k7]zaQۙaP |]oQ-DШXٛ!J. {[†+.%iiZ-a4;Zv]l;F+Y:ۑٟ3 &sG5ZFIP)-Zivtm#;8Z)D )*,Tζw L ь3'IPbj+ϐ8`%#A 0AЁRdi16Bgp45Njhv7gAiN $XUiLAo8&zv)$Aal{)¸st|T ٤Dp!._C2>vjO |G$|%˯<4)!&f Ĉk9tڦdO7 tv9͍<} }NvSB:;cE#@‚TK"  Qts E,T%O1UP5c<3}^&/.[ya`@ f I _w3Qc&UK(ήs.B=][6tv,G4]'РCw,萡;gFslRGoHvF9 Vd!-Z(1/^Zj9[˳"M=OwהZ%tnD*HZd}e]0cL qV "Qz[7S4PP[PY$3}I@zwUڋR2;?roCafD5&q@HseC ⓖ( $)˩TSH~%ֻxѱcǔ r˗/WG]vEuF줍fq{j8!fU(HQq={ eʔIfْIJ~r@GZ롴&4Ů5x) i2QxV1mfҶGan$ ,P*s4ǹ0k_8eW=^D7`nCG#!?| f_h٨J{z~ cFrFqtFeעJᘐػ #A0so8y1JSp?@Su8Oƙ<EfےL) %nBԛY-Dֈ+#+^Wq \)\y*!Z6g!4{V`!/|Ъ-ĮU qͰ2I {X=8HkZ.K2Kf X988о= \8ӈa~ ]_RK炗7 PSd<~7FUn<GsT+e83d t7ќЪp7Ůe?mױxE)a_^0tDC; \IossƐaq WH7e !35GSU.؂ s,P ʣ9g}-]%0ylx\M[[xs{qvEQyXȕ杩^g &dt1u)ʀ"FsٲewZ7A.gl 2jF5_G+zUivW_1vB5hѦ\}? :ۓ[ %AggP:{XITgёw`c~񈙸6~I‰8|^Gj;hxJ#^ycУ{I"hqr% S;-Z+ga帖FyW'7=b=rGCP1.ٷ嫁lGL86u Z1ƀ)^5`@ \טIGz#bşbKT<K @gWoP:h樱QAصa-/ tvE ;~19Q| ĆҸ%BoÉKx!Nn_'Q[gw.`ݚ tvnѰ1hs!ڏmq8} #tv ?7ZMw.`P= tvӶ]Ѭ~̇M۠j"ɠ9!q@gV;K(XhJ'^}, .'xN6=QfL FG]:x *WUJ^/Y$.B.JO^;D6); p#ųع}؁{3A;PBg['"Їp:٫F`҃|GЁIp)3?.ޤ |cpe+5o\hT : &Bqo^S1^ g}o׷< VA6ʘcQagP Af޺x RΎ ~B7r"kKN<@_ fCyS5ل۷ >z_m+46 nBgyoX!]D}6q4}}xa>l">1if a# Ag<=>&fX`7ڕma.M|gK(wtv8<܏] 5_r}lx,&&R쭸a?q A$9#:7&XI4j~ޏkJ]~23o%w|1\+KR O \?^V6%6}<Ȫ6߆ bjQʠ/q$ʕʊ~-A5+_Y߽gSթؽ4*n 8~8zwE.ljWgz: Ƶw߆|8N|΄Ǚh[l=NQCMN%$5 aؾwk(yKOih/ne~Kc;|Ѳ(0FоXj=I"cգ[w eZZڡxGl<ǪC%trRXp&zc7^UKa^4ʗ.-sz?Nt'd3 ȪA6O>u7C!4ti$3ʕ+aժUYQ5˽͛JNgM_ZIe=+syq&f [ L"qCNBm؀wQ>y̰60 ]M ]^Bzz6g2,q*ĺ&Xɜx2ǽ}O{>pr.0;p_S)SkTJ=+{(5ΖIyJV|d"q }t}bYE( Q,a"k:(i#>Ez>0>|cV5*7(Z J:IaQ-[%wJ7 9B@g;G"KқY:;@gsӮ ,I78Z_Ke|͹ -^:ĶN-'#׬pdҺ eC~Lvy n.|͸p)f-gfѺ|X[n~5uާ)j%J(F۷oWujG_6FJ< BG]{*-tb%`Ta@gNr99#.I4Ymz%ȅ=^Q1 [<&R>(A80J l~G2!p>%7D$06\G3\]=Š!v|q 6F8ndZl=Lo߆ŠE_ȵ2;¸cgg XDԦHNf;!e˖ M6)b$IL;}||QZ5io%#z'pWaoIyd>ti]|3~ { />.'Y,@g;Z$:C }|ڰ{C '{ &18ψc 3|+-?L~:\fĪ!htuĽ|CcoܼoCƣ4bзMenB=Рt.*~_@8! ) C^3NX4@ZysAsN}?DA_{ޏvnu'{ ? >N=ݸ:۞ *0yf9UZkWhScVxG^aco܍4GW@gjwK%9>Z"UTPӺH:kfP" t6d Cbݹ#{ F(SFr'iT\εi<9mɇA{W(b~];t`;lV6Vچ:{٣?wگ>֛|moY8 \e*TkՊsO ӘVH||BgQ"6:mvQ0KQ"/!;AgwĈ!0o)BgGin8ؑ*+Dϭb &lJ>CCaS7+2\91Q VHA#l ݤ/j '3"pեA. ݰzi )1.q9bm砙`%5{yl_B?+XζjVV !JR#d7>&~Յ`4xkR!~8Wv1HhZ9sbu8e^}B'='fj:DҀD}* 3h:V\ fau!%/487dۨ ClS(u#pF!ΙjPTSTN{vA40q;ewp@H.Dw0_, ?=8{*mIKR&_ٸkG&eees 2dR Υoha?9=eܺu+B[Wg@6=ȤPgBH߆FrI`_xɘ ˆn߱Htv%Jc 6Q)/6n `I=zHZGe6myNgؓq8sUhGcMPD"tS:$)!ߍmbpfH>=m6X=TL l۴Ck A<߳[0>ֹ#{ |^Of<CD=b椵E /'+HA\p!zoǎQ o|5|P2NG+͇}}57;!hӾ).Mk2ktjR^^Ll=aˠFy :{~(SD 7=`݄Ah=69^\t6yB_]lK+kls:oQ"MoJ SBj޼'?k:Oыx:-۴GJ,5U )e|H* sj~9 !<<6l T.ڢAO\rի\-WH練gm&A8>}G#6ewl۾ Tb{ Q5z74٧"1j(<o-Y=Ol:;sϿ#0Κ_ 4 {B+,:v Kp?0@)"F.߾ T7"L@Ǐ D:'zB#"Gvmp1RI Iw0s̕ 7a|%*tZ2"'a0ҝDS)x|\ Cb@-a4}6WQēG{ik@'` mΘ%[+1ữFiD GDEㅟ7 #V4n 7_:&=e}%]cI'FQSaHwv=F0Ѩu}e ;@,3f8w'v}]xrh]; l'\2`xQI1Q$հJwF!Ba4,(AR9ăOmORz1 tpsS)b״2_~,ʻ{x?0x9%Jp?+PƈqF!vۗ$){Ēv6'1 )xN*lh:1V2ԴF"],ص>>N&'~ 1%pC GK|=1? Fg2{Tgݺ4:kCMlk[|2~,z c;ήܨڹD g*+ZCkyzM5r9Y,"_bqݛ׉nVs &Ow;DREm `hE ҍY/:v@}O|1g{y)=+~AcIL;,E$krND`g26Y4=1n߾f_ )aʕȓ'DvBihl*EDX9:E8q5EI۵E9'2cqSf$tB_ B]BgW"Hgn(+F|Z•-w|CV>adj ]t:;#' K.!ed*ǒ.5xӡX9  KBg)v/} O K {-6h 4%41 A(Dbc=}!D곌x >**+ VB9+"ݚ7W]r Cg! ?/ۃ APJSKd, tv&о,=c>45F!+ԋ%U|B\:I߷bpz(MD%uS^vn?)A8$.a_p|طi-heiԅζ5B#_Wcs,{J%aF`sbF{Z,ڵKUpr´~D؝п/6:tӘiihS|3f?S{5nk\73&t1E t c \ } _0٣Zĸ!}й{ A hgX] HVrUF * 5[ T[L|( :0}TgSʕ@g&|r(QDnK 7-X~#:N3 t@v/M+g#v&m=7.mbq;:cĨ/_Е:#^{cQWܠB瑬[<y„ocv<s7?g`㷣T+ЉѬs#`?"hA;aÆi}JcȪ*"4]bT)E*D^)[ п~J=[-_їGhѸ!cBqaD @8[WVzQR9e $+Fp /3ea6)>[#Uh⦠`馰Pv9Zw0+[;*=&ތbS*+m;:', qP$1Bg~/ '"Ma.԰OjIN5AC+mHɿP粠 H'gH_"Ô >HjjZh(NtIZDx(•t\,d_+BAh8zow\K|g)(!WVfU&[t_2a 9ͰsF+GcP^v~dJ=J&QCrO4/iEm?GB*~7|}2V\YMuTAUӚ/`W^Ν;gـkRbh3s,9mFyvDDwK)=D ͲJBW'Vij=%b JvgpfJw@KB!bfI" /$ C@gOQ=Apn% 浅u?teѽ e( -[ke`g,XVNA`V>w8*ujN,.z6TP]ćVTq~ʹ].-\p*T6gڦcYr>Q1yL)OFگc]}쌚5kb;W b[l9PU/m]6K*׳W& ge-s$"M]( )vУL50I}Q"zڑFlR2'FKf+.d9NԤKmբէ!"P%ݾEzۮO@}Y Ң`Pb4g 4+Uu$3@.2>J$KzGi$],Z$_)`й eJ-y9S@b*"uÔ0,}M-E/qpu*V8߲eKɪl ,{6lds@*B!#2$c@2wt6;[f<Y-/V\/@f&I3tkn*}-oDIoL#khg=ݤw l}}sRۯWmoz_~Z"|"dU'穥>5: ytjw c"=d3MB=:;mpb="NSJiMxRd84t?];eXLbVtp 6]G~&޾a=gyqJ*p?G/E]߁WjγoڅB, w }460gYA+5yrndЯ,$$*{q#,?ЫI3l E jRB0m3t\6h8[׍L]Ns|$^D |1x>HΞg8qNnI-Åѯ__|2/"t#=ij*T@dI41O)=3V&N9Z^yVХOgRO|ۧHkm'0\ ū31 il49;&T=zD2-Zv/aoMF?~MCcmԇb^wӤZ6hqG{k7iZJk+VuBgV@>ZR۷yKy OE-q=+!XEQO'{i Dv<.߉54}j 7X{\Lw=C!z.r#μGB_Px즰,Mg,>v#_-F纾p-q7ٍ 4^as8sD* g:@IDAT'Q%Ү!NVZQLk溙5*V[)+]:{ȰA([5w%\9g6FUCԪ JmAG$lX/Ì:4ɵ^BP7G%ܷ- &eqCxkNZ乆W O^'YFQvPdO!=:2oǥG$7 RdT,{a*'k7f8rb;ӟFb  wʖ*!qz_b bl0mhOL[VigtﻀEp`j(˷Qz_O~RÂ/@&_ йp. ӀsB< 3RD?qʽpEe6j0_q~-?XZk0\rvJRС |BdŠKpMʔ(3ơ9$>A[a/[DI< nM$m=m?Ǽy&upDA@?#U{v#ac:b˱J޻D%Gaa7?v?+(%X?w=BiΦC-غm+6l܂@B~ $0JCzN11i>G{gx'EbX ]Ojk<#%FCдiS͛ Y!!&'or5z& nBn0uImB\w{wq%;8q5l"St(3dΒeVf%##WMX&εç.ao:1lzLq=yQ(`JaP]wG!saw=p($•]Q?/>~$6 -DULՈn*)!2> ePGc}jqRo t {c(|AzEl-t}Kt+;]~AOlm0oq[mRl{[im6*ȕ ]Hͩ*E.u8&ą/F Sb 3"_Gk(YבΜ#tv *D4OMR=h a@Q s|x^$Ҩ}!rʩHW@gG&R J.vϟrEW1^F١G&4m{6 9CӗBZT?BMѩOp3G6myȟ`db+`|~Z5SV>p@k6I>*_7#xyy)rm~+;aaeKrcШ xx]BՆM[0E*z $a't915|Cb˃HM`r=8q|F$-tK/zbm}1xxx`ÌϹaLpa+7q>5-&>yhmH+ JBgV:>&Fc#:{;z!V<["YC |DY|/K+':">5CtZ웇"tq5u %q4V:www,24) ;[<qzI H"-Qhj3Xh {F|{K CTau*biL&zS$l੯ 'AMd㵖c)K : ɒ:XR~5՛oT'7-;{h dPI!>xNe9{&1===l2̛7O&̱cKӍS-B@*|5i:T-Q0*~Axjask&=݅Ӟ^/x*9t wo'`  ;ۏ(|]Ol?z]vi24uC}s.\xQL^i{4*rOnM+`iƘ9y-Cp⌈uǴo>x 7PV⑯DYvqm<㻱zuT SI.۸+ZV͍PqX8t܏otc&MҩK*OXWĪ7ѢUs$mF&',/yyo>O"°i&BT^] Ke KVVS3Y !MR03TSAOlÿY79Qj&+PP;0%1#y&9Q4_l?vAQ5? x9 '*2|d~"أ%r.5bXb-y\Ƈ{\(YlĊ5`[\]i.(,dmQX8mU2W JWh_6s6lيК9JMÕ9D,}z ItSb ,ok6~-\<%WX8)ZU.jY1b_.amq[̭ƒ ZU+箣!ÉO X:uUC&`ヹöQ~h݀كP=]}hըjiʕpFG?c)L~e/z=dcg}eXAhmMxi`눎1""\,@%y d*qbk-%d#6% &J:LyY:ƍK^z)QJ[b4Kܺu*G2K&QlQ?fʜMR=wDV {",/w ^X;s.ٲ8^VuW5|Tn7*2bLW_Fw3%ƃ~DbXqGfjTSUNAj\$9"wib87QPQ"tv4"rJEAx(A.VɢiqC:[\$d۟_x:a©3$7y2s}:r//2TV?8%`F"*eN=+XЙ}_"_2p?` }`B܏4C<{"%0d`΀[׭Kw(QB= Е\fص/<0[^FP:{/#?Ro6Ɔ ͛7q} 0%JPp$FDcS,{)<Q6R6,!Q@9sDn VG Pb4gd`~ƕf#8C4+eEx .7΅b$lE^]Q)@M} 4Xlwp n6:|P# Djv%u0bHes>DhP yD~Qť]_u7킏t#f.ѽ}=xוnIS݅D."d !y=ws{sZa@BB"Ρ@$#dřչZ}4 9.S+&-d32*5 V_$XNQp;_~:5Q&>:RG= U:@e&t!a BgldsŁL r$$_’z;S?~F[]E,&\}C#y 3ӓ] L४5*2۴B6e@6Eudl«WDyo~1_ÿFL4 hP꽻n ,RqVDqysXtyQU@̒fc7&a28/ywmTf6& ߬JR8A+F hմ)NZ輖QG͚`1j Q׬x|4o;x^l;xz7j%˼Ԑ!t[p}lE8?]>|2a"Ê^m~8+yp^Gj\\hQLihQ6Ċ{PY/ bRY:R NJ(O+[(B[x7J}O5C9տ~|=IDŋNx˗"俤 .(14UkP2B tv( XG )ýݷ Jߊ] }[nb? c}; _M}">KxƏC4"^/'E_\?M&! DaE쩓`Φt3{`tY^ ]D 9W7R PaI]y$"qӔP8بcu1ЋxnH[SO(FJ Sm2)z)rfU~NX>.6!ɗqhZ4 :!N"J+Kۡ;b#艻 OG1r8 v\4N݌tzM(MZ=nA>w3G:{(`Cv"_FR:B:hûp,a9pcM[~'^b:{#'yƘܳ-#q)4:‰+m4Š,19BxXۈu[hCFBՒx=ƮG*nnpʩDR~DAK"Dɑ=] !tK{ vA={A[QNUz z|oxk#mT 4 OV|kanb꤄0l[ٷxy|4b(-}T \<7:4NjÊj7A&Y[Z1v=LdMSfo=-Cg[Лތd38FfnL]uN݁;/ѩKg2lmI/U%⵪MmHrqZ*{!JHH^Jꊻ誸ꊊ.{i" HHPC@BzOy3/y3L&%{=̻lP%u|V`O`/p;[:2%MyJ~f|6!7b&:ޝ1( h4>O} f;ypxjL6hsdH̠rɺ|B*ȨPoL0;yR+'Я]|G`On9!8:y\PݸLȈ>"TA/G mI,G=pI? &<쁲|vֹ,|5㎧A3Hxv|Ll&PS^ňA:QpȥtfJ_>WJ 3oaQa#\9R7()0i %tvav&XH+X1W$9|ިٌdž<7Z7=1xK&ϐ'qS06><L "Pn s. lAa1?>[BJ޽С Ki;@g_ =xRpa*&G3SѫKc uF>G&`Tzjĝ`%߆ ;Ql5b؊%b>y,;ك,(zomq ? <#vҌu{bK ]1(N4ٿaW*ĕ9|4=Xv~ZM~6CYHGxLٯ2JC'>̝|[9, :h g.؃pIbv*7#n<4E tv3䄴èG)V7 bxuٳ7n~wB.)C SO)sd !w٩H:~O}~ {= tvt<(h˫_yy hۊ)/;t_o\ 5bY:)cz?,bN4Sp+lԪu$nKVGS+A0&;nKF= 6>axW,nu3.We!?M;qK88 d"06 Ω: WѦSG (/xj_AP aRdrc|9{|^{-A£oSl-$t'Tx=Bg7a4Ăzct0G9j[A8zx+y8ߠjwͽq'=V.[Gl8\ir]IO4l1kn!>(}`L$ LzZ:002_:=H%s10B .^c]h49\%ݳ3W/1ӱ'!YIcRPAAUy+FٜJFc[ h)~{x#?tq}4UeAWdGPRn;Ґ gw7ŝ|Ex*"h[ vlJ^r5 Svx՗dOUM#xΠbٰa.5/-yޡJoUQzihӫ/v!*%lg~?aR = ViofsH95!E "ŗwmL#*+"`4Ch/}%½`' y ENǯKgc̕ȣc1P\ݷ/w:!cw$ =AOrQy p2R-^ogqf&7p'|X,[ 1{wK:yF(ʦ#YSMEi؟p=tzQPvx߱l;R~Sk|˯;g> O A1{`ط}wGlιSE _/{(Egbڃ ~thj2l޹ MxnXP "gb8Y鋕S'aµ\})r:{yJơ6o\O%'lCЎO|WPFl.aX&jX,ޝŤBj7Xjе|[*PV{>Za܀)sWc'7 8pIDxX#;B~F\]oFaykHUtJz@$X3LbeJٜN7а~$qaêMA5iꗘd)\&&p82<k~WnAd. aᢇήueR. tv/w芼k4PaCC[,8_\ rs5Izl衳eVO1G~:=KYXr1p < k^ |u!=7E1{Oܞ`k\Ή{)<."Pp T6oEIsQXGOЯ zz`e`}j}2fdc~۴ ӿI6xYHvu٠EI:/L_>0 z+1\! [齘M,HBŮѱ`顳w9J>֥-ܐSb͈(>?YIgGÆ!tx#tvǦS}1:ۿ*)i(n Y. H%sYZR`ݺލDKEҸn$ydwYTv95,iױtmߖEOslϠҮ !u՞֎;Я_?eK9'83B8fn'5/B/GKoNM^ss8$킺XҦW9Zu.&j,o_H0]Jqv?Rr^@ r"+yrҠS!\(u&GJ$$✋bȇ,DAL(YqpH?w#5A051"p40~{}\8 !-n;;ۋ1Q(* ZHlUh錂_Ι3W9+t8jXqIZN|,zQQPKe/t$ܴAk VUZj.rCL?jxv&[R-6e+Wm(c!+#*EWzHqo`MvW$POWPbΝO1ޥ!1P;O}Wj$b.)Ugsg~Uqfpg[sWB>A789&!fby\at.K˻LʖRuZْt;yY9G*}ӝ([('k+HxSK1weޫ4R@NiW'q]UQ"rb.K󩈻D~ĬFO r/tKߨ1i =j=-u nѫeX|2"== ?87nBMݸ S>r* ^Jׂ 5UV ()Hc^em(j_/~Z;9uM<$qx_l99Ok|`TsE^)q]G\?pKWo kYcL^ %GCx8rsoe?bӡh٪9vk֬'T>zjS\Ɨ_OǪQ4F1IDF5hxf~JN`w܉#Gnݺv1Wr+3::u>b% SHtKaN˞ t[+e_@faeBB= g/8; =D<] Q8u|vl~dgΠ 5xNB1,|y4>h 6À-ݟJmcF?3#7ZD*4n_üyon.v~w0/êѠaȖ~*. X|=ւ;OL`ES>T; yХ^vDo { tD; 6f%Ш]O #F\#cϙyE؜ܳ_yx6:<9 㑞qgZ %w:ïV= xG;.E{ to썝G1=Qx}y+gJe872w?ix<|;ͷf:P6}fᭋ䓣)ka(7)SEcR %vXcl{tNī)iJ߱cF7]m6.N 5m=n*L1N>xap&HYdX%c:^*_i 楯%[(/ݝYS9}W}-(,6$,qg>ǧ>[As/YBZdFb!5Gϳ:gÜ04 l3!6{GIYtt<lwɼus}Ѵf'Q<7-[MQ~tX?87'ǟ 11cioE#=,m ͣZ[= (rǨ1Ϣm`S5"ŮX |z1 9bڔL8qNDWuq<4.f SL4ea<жW3PYG c.*钮ŋ/}@gvݜ@OKA(,Pv@gRG~v9X`Λロ)Cg:{P@BgO'9!-%m3zv.U0SPy3R)x8qN j{ctwu;,zPACLL8#)4o\9_j,4\a|0xֳ,,$qgSg7 X{_ܤ(BgNo3P tv~#ѾeClZO::ktmþW=:oA7c+ shDh[ܳW:;)noT5gxI|'O"Ç;3#!ٿKûЦ.Ix9<.;ԝ;:Q.c_~Bbp}Kae[φ J9w'_q:6O>F>r{;ٲź*73sLtW(@}cCG&f`D4PDK]PPڃу\\ܐCXsqqHطG«J٢m|,|:]`3p%ZSo[0#4s=I=*>ՑJO_ciҴ):cǎe˖k[b"Z_jeFZTy0ua>k NN^fJ0)\Ba} Щ3+oH~Jl*=:.݋߀gKH+1*mHL΄^Rt.ӂ*d\;Q Fpiy%~#N1:;W.;aLCgg"~ Ο뱁hk+buWB:>BY(ل+11H\ =qD IxG,?kF!;&/j^@f3g$3j>27l[9\t7N݄ f83|'#G.) ZC"ċ]:۞ c⧷uw5r75q۸@?5 WHUVkH!p(L-Bgl$tˌT#T84$^@S ԇHAgsAyI&[V?E&YTԚ`饊UUgrj_˽&bӡҥ^ Gsrr2 B{tIIR1{5,l#uxiNᨅN:(~@̝+yGc҉:j:TӠ4p@g3~Tħoҳù4> =fܝBg WΞĹ+Wq! =km^B;q ^scnL˳ )YV̝ACN!ٜS48vugI%a>zt'#!({wCAF(Y6?S$V]Iq4z9rPtx Oc\M[»v|\\Q t ˯Nb? tvoW1>|8ZbP,Xl߼K= o̩萈?a2&!^8w'j6~zry.I4 *15S3:DE}(`psCW3LxyD:\y O4U ƂhoN-o/WhuA|S'rJ,ϽϿ[~n14f, N% q K[.KB!Nx_eb1 FvkRDi ڢ 6F]tϚ2- ʪKK#Jrʜܗc3NCY+W!R6R":er&Lߡ^zW-@z&ٳ'5j y$(*Agsxe@E4 ajAҫ?a9JuF\ٶsH*w?z7 ;l = tvO 6 ̴O@(j;[8~.Dmqjj|m{|0[tmFIDATڠy)ת5)8zUFZ"퐆mz QA"w|pqrA8:>ˎ~2;аȺy CܵƳ ܕuet tv&ae`)Ÿq[eMrjҪEY6|M7qr%|eic.R_I~ihIUG_{_N=Mѻ,Ƚ佹<bE{*=nh $ex{y)F^-˒l?M<[ 4fobcHcb&fP2ZYZٷbhھ jݶ*oNOKYq<罆G-a7Ͽ'wꑤ,ULKU*'#ӎpo$ ^Ղ,"O?7Yމd˲8ʗ+2$B ٬Y0!ՖhTWB  ⿙wl\R5srZZ%`UV 1%`gv1+WV X%`!-PEuRꕡ-45}K$YJ XEeZ-/ݠon<>~^ߜ||%we#uSRVV %`HA>p/?R!322 3 BzKȪOOOWnSxPPզdwZZ⋹|\\\g;f*M*b*;E#Q_f͚•ޘTE,J>Rދg/#˥c*E r L/4dčPUv>>>(OV&FC 81%S2NUCq/Zq+_V A$P1GUi8;DQCJ]2;jWi5j(QһSL)^АxmPK/XKZQ(L8Q-%vWp*z'QlNML@8?(QA!j{(ÿ.K9t8 #ӱ4)W>*ںj oZ%`y T8RPFVޟċ//^m*=UVD]5Nh ї .Tsf͚)X: 4@~UՆ+ly–YQ83QnAb5+yOgaױ#fXGez?"k&[xъSʣkyIq!\ݎ; oB̎I6{ r +y|N 15N,HI^)?NFj= ?`5,pl;VmoIc;I40F&=2E@,<hӾǘ:g_T m9b dAݍcQѯ ըP6 Gz{p)~hFB*jHL83PĿ%Ȳq)$eq#&' GCEݥ:n$\ssrEFpNl ,?R@g(f̃OTo@Ej-xhتFBnv:\v(koEWi[Fp! .&rq2T ]"^FG:›wT>T[|kH;euG4->"떮*J%P)U(2.-q3g(sVQ(4T6wUhEMSUzZãЦWio޽bdڨcǎ(8O榵AKԽ-E\كO] !ps TmgSN]ˆLi勳q{Fn Czv|1u>l_C[`3 SMA巢"pW\0ndw8KFūF36M{e 41wkmŊIhP&R,wDjtr5='MgMx@ByD郱#Xq,8;%4TqWQ՗pа30JkSXJ,ޒ*D&[n'~EAHJJRI:Qu:{\(V7ޥdLCz 6?(q:J_ oFPPPӧO+>AGC_ SiU\cWh^WukыX׮o~xu^o2_dh?$R\ft? cCcʊxuíY#cϩuK]]T ^uPe$߀{ :n FaMSŘU{6 ~mD?`ڪUѪ!! ƿ<WńV?Gc⽉7:BᨊțB6 QȤ/#_/рi8WvxihWܺtMCtCp_ӘAlZ%`eQ)^b%2=~8v܉gyDJÔb4* RK/\tȗK UJz<[UV X&x'MwY<P{ۖKVZY]-*}*J?,, S59Y9pI\=9ҽi֔⧯kwgs#I(lX)$Pҥi1;bP+@\}KcUYWTUF\H0{_k ACk\;+⺀=9z/-B!2R,f^' .L p :KezVL7oz6<5[=NF~`tP"^VAM"wVq :7 ~k{9=O-Ȏ|6DK([ou+70á:yI҈C~[䥀v5U$VK#~)<>9x茇Zz(ezJ*R ؎;Dzw(EIJ9&S1RRE+jPḊqWQ$sf7w ""k+r(f)Oq&`6oڊWoe>hQ?C^oU>Rg)5{W鬰FpMRΠaF=83Qup|69xAnׯѿAnV*.> QWFy6ѵcdQpCz5dP6 p#*=Qu#Qx32݁ Ihף 2p)o&u՞ޖ`U%`9s(Q(===J:0* QL7.OEp2*j|c!66:uxVAeb D.UG caދx/V⩩eٯ/[Pe@ٻBnUOIv[,=dSI{UK=8`Xϓl˛dJ7RS+x9u.SjlDG䱎2/YD//f+2);٣/-y:嬆[8I{@ځw':ȓURt"hy_"ileR?b1t6N`UI#Qbd&)Pi%tTrXL޲*R4Ub8hB#ҺukO$\}$ v4u *{mȅSAyTXTN7Eq[](ԑ4S>YQipjFC4M@lY0h8NeQK ^;! qb`9ںY}C Chgr`Ne$J]72oM9qJSZJX6qqquDiИ9`L\})WvH0wB_vU0g( N;=%%}|3et)QBeuQQ)J",q/5eDFѐ:0*RW˵kהBy\6<[Q%@^ ^gI1BtN049З^7-}7 I#JR#%m0dI*[2U(kHojUZ-2.کm{UK/\#8KB[ʨ gz'Rʓ^oըhZ?%4QUAJGg TWsu_Y/yeIv;׍N^TwV X%ǑQ<nIENDB`Lib/gftools/encodings/GF Glyph Sets/filter lists/000077500000000000000000000000001376445505300220715ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/filter lists/README.md000066400000000000000000000001421376445505300233450ustar00rootroot00000000000000See https://github.com/google/fonts/tree/master/tools/encodings/GF%20Glyph%20Sets/#glyphs-app-tip Lib/gftools/encodings/GF Glyph Sets/filter lists/nice names/000077500000000000000000000000001376445505300240735ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/filter lists/nice names/core_unique-glyphs.txt000066400000000000000000000027411376445505300304620ustar00rootroot00000000000000NULL CR space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore grave a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde nbspace exclamdown cent sterling currency yen brokenbar section dieresis copyright ordfeminine guillemetleft logicalnot softhyphen registered macron degree plusminus twosuperior threesuperior acute micro paragraph periodcentered cedilla onesuperior ordmasculine guillemetright onequarter onehalf threequarters questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis idotless OE oe circumflex ring tilde endash emdash quoteleft quoteright quotesinglbase quotedblleft quotedblright quotedblbase bullet ellipsis guilsinglleft guilsinglright fraction foursuperior euro minus divisionslash Lib/gftools/encodings/GF Glyph Sets/filter lists/nice names/expert_unique-glyphs.txt000066400000000000000000000065261376445505300310460ustar00rootroot00000000000000onethird twothirds oneeighth threeeighths fiveeighths seveneighths leftArrow upArrow rightArrow downArrow blackSquare whiteSquare upBlackTriangle upWhiteTriangle rightBlackTriangle rightWhiteTriangle downBlackTriangle downWhiteTriangle leftBlackTriangle leftWhiteTriangle blackDiamond whiteDiamond T_h c_h c_t s_t germandbls.alt.sc periodcentered.loclCAT.sc exclam.sc quotedbl.sc ampersand.sc quotesingle.sc question.sc a.sc b.sc c.sc d.sc e.sc f.sc g.sc h.sc i.sc j.sc k.sc l.sc m.sc n.sc o.sc p.sc q.sc r.sc s.sc t.sc u.sc v.sc w.sc x.sc y.sc z.sc exclamdown.sc periodcentered.sc questiondown.sc germandbls.sc agrave.sc aacute.sc acircumflex.sc atilde.sc adieresis.sc aring.sc ae.sc ccedilla.sc egrave.sc eacute.sc ecircumflex.sc edieresis.sc igrave.sc iacute.sc icircumflex.sc idieresis.sc eth.sc ntilde.sc ograve.sc oacute.sc ocircumflex.sc otilde.sc odieresis.sc oslash.sc ugrave.sc uacute.sc ucircumflex.sc udieresis.sc yacute.sc thorn.sc ydieresis.sc amacron.sc abreve.sc aogonek.sc cacute.sc ccircumflex.sc cdotaccent.sc ccaron.sc dcaron.sc dcroat.sc emacron.sc ebreve.sc edotaccent.sc eogonek.sc ecaron.sc gcircumflex.sc gbreve.sc gdotaccent.sc gcommaaccent.sc hcircumflex.sc hbar.sc itilde.sc imacron.sc ibreve.sc iogonek.sc idotless.sc jcircumflex.sc kcommaaccent.sc kgreenlandic.sc lacute.sc lcommaaccent.sc lcaron.sc ldot.sc lslash.sc nacute.sc ncommaaccent.sc ncaron.sc eng.sc omacron.sc obreve.sc ohungarumlaut.sc oe.sc racute.sc rcommaaccent.sc rcaron.sc sacute.sc scircumflex.sc scedilla.sc scaron.sc tcedilla.sc tcaron.sc tbar.sc utilde.sc umacron.sc ubreve.sc uring.sc uhungarumlaut.sc uogonek.sc wcircumflex.sc ycircumflex.sc zacute.sc zdotaccent.sc zcaron.sc ohorn.sc uhorn.sc dzcaron.sc lj.sc nj.sc gcaron.sc oogonek.sc aringacute.sc aeacute.sc oslashacute.sc adblgrave.sc ainvertedbreve.sc edblgrave.sc einvertedbreve.sc idblgrave.sc iinvertedbreve.sc odblgrave.sc oinvertedbreve.sc rdblgrave.sc rinvertedbreve.sc udblgrave.sc uinvertedbreve.sc scommaaccent.sc tcommaaccent.sc odieresismacron.sc otildemacron.sc odotaccentmacron.sc ymacron.sc schwa.sc ccedillaacute.sc ddotbelow.sc dlinebelow.sc emacrongrave.sc emacronacute.sc ecedillabreve.sc gmacron.sc hdotbelow.sc hbrevebelow.sc idieresisacute.sc ldotbelow.sc llinebelow.sc mdotbelow.sc ndotaccent.sc ndotbelow.sc nlinebelow.sc otildeacute.sc otildedieresis.sc omacrongrave.sc omacronacute.sc rdotbelow.sc rlinebelow.sc sdotaccent.sc sdotbelow.sc sacutedotaccent.sc scarondotaccent.sc sdotbelowdotaccent.sc tdotbelow.sc tlinebelow.sc utildeacute.sc umacrondieresis.sc wgrave.sc wacute.sc wdieresis.sc ydotaccent.sc zdotbelow.sc tdieresis.sc adotbelow.sc ahookabove.sc acircumflexacute.sc acircumflexgrave.sc acircumflexhookabove.sc acircumflextilde.sc acircumflexdotbelow.sc abreveacute.sc abrevegrave.sc abrevehookabove.sc abrevetilde.sc abrevedotbelow.sc edotbelow.sc ehookabove.sc etilde.sc ecircumflexacute.sc ecircumflexgrave.sc ecircumflexhookabove.sc ecircumflextilde.sc ecircumflexdotbelow.sc ihookabove.sc idotbelow.sc odotbelow.sc ohookabove.sc ocircumflexacute.sc ocircumflexgrave.sc ocircumflexhookabove.sc ocircumflextilde.sc ocircumflexdotbelow.sc ohornacute.sc ohorngrave.sc ohornhookabove.sc ohorntilde.sc ohorndotbelow.sc udotbelow.sc uhornacute.sc uhorngrave.sc uhornhookabove.sc uhorntilde.sc uhorndotbelow.sc ygrave.sc ydotbelow.sc yhookabove.sc ytilde.sc quoteleft.sc quoteright.sc quotedblleft.sc quotedblright.sc Lib/gftools/encodings/GF Glyph Sets/filter lists/nice names/plus_optional-glyphs.txt000066400000000000000000000007121376445505300310300ustar00rootroot00000000000000gravecomb.case acutecomb.case circumflexcomb.case tildecomb.case macroncomb.case brevecomb.case dotaccentcomb.case dieresiscomb.case hookabovecomb.case ringcomb.case hungarumlautcomb.case caroncomb.case dblgravecomb.case breveinvertedcomb.case commaturnedabovecomb.case horncomb.case dotbelowcomb.case dieresisbelowcomb.case commaaccentcomb.case cedillacomb.case ogonekcomb.case brevebelowcomb.case macronbelowcomb.case periodcentered.loclCAT.case zero.zero Lib/gftools/encodings/GF Glyph Sets/filter lists/nice names/plus_unique-glyphs.txt000066400000000000000000000076671376445505300305310ustar00rootroot00000000000000Amacron amacron Abreve abreve Aogonek aogonek Cacute cacute Ccircumflex ccircumflex Cdotaccent cdotaccent Ccaron ccaron Dcaron dcaron Dcroat dcroat Emacron emacron Ebreve ebreve Edotaccent edotaccent Eogonek eogonek Ecaron ecaron Gcircumflex gcircumflex Gbreve gbreve Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflex Hbar hbar Itilde itilde Imacron imacron Ibreve ibreve Iogonek iogonek Idotaccent Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandic Lacute lacute Lcommaaccent lcommaaccent Lcaron lcaron Ldot ldot Lslash lslash Nacute nacute Ncommaaccent ncommaaccent Ncaron ncaron Eng eng Omacron omacron Obreve obreve Ohungarumlaut ohungarumlaut Racute racute Rcommaaccent rcommaaccent Rcaron rcaron Sacute sacute Scircumflex scircumflex Scedilla scedilla Scaron scaron Tcedilla tcedilla Tcaron tcaron Tbar tbar Utilde utilde Umacron umacron Ubreve ubreve Uring uring Uhungarumlaut uhungarumlaut Uogonek uogonek Wcircumflex wcircumflex Ycircumflex ycircumflex Ydieresis Zacute zacute Zdotaccent zdotaccent Zcaron zcaron Schwa florin Ohorn ohorn Uhorn uhorn DZcaron Dzcaron dzcaron LJ Lj lj NJ Nj nj Gcaron gcaron Oogonek oogonek Aringacute aringacute AEacute aeacute Oslashacute oslashacute Adblgrave adblgrave Ainvertedbreve ainvertedbreve Edblgrave edblgrave Einvertedbreve einvertedbreve Idblgrave idblgrave Iinvertedbreve iinvertedbreve Odblgrave odblgrave Oinvertedbreve oinvertedbreve Rdblgrave rdblgrave Rinvertedbreve rinvertedbreve Udblgrave udblgrave Uinvertedbreve uinvertedbreve Scommaaccent scommaaccent Tcommaaccent tcommaaccent Odieresismacron odieresismacron Otildemacron otildemacron Odotaccentmacron odotaccentmacron Ymacron ymacron jdotless schwa primemod doubleprimemod apostrophemod caron breve dotaccent ogonek hungarumlaut gravecomb acutecomb circumflexcomb tildecomb macroncomb brevecomb dotaccentcomb dieresiscomb hookabovecomb ringcomb hungarumlautcomb caroncomb dblgravecomb breveinvertedcomb commaturnedabovecomb horncomb dotbelowcomb dieresisbelowcomb commaaccentcomb cedillacomb ogonekcomb brevebelowcomb macronbelowcomb strokeshortcomb Wgrave wgrave Wacute wacute Wdieresis wdieresis Germandbls Adotbelow adotbelow Ahookabove ahookabove Acircumflexacute acircumflexacute Acircumflexgrave acircumflexgrave Acircumflexhookabove acircumflexhookabove Acircumflextilde acircumflextilde Acircumflexdotbelow acircumflexdotbelow Abreveacute abreveacute Abrevegrave abrevegrave Abrevehookabove abrevehookabove Abrevetilde abrevetilde Abrevedotbelow abrevedotbelow Edotbelow edotbelow Ehookabove ehookabove Etilde etilde Ecircumflexacute ecircumflexacute Ecircumflexgrave ecircumflexgrave Ecircumflexhookabove ecircumflexhookabove Ecircumflextilde ecircumflextilde Ecircumflexdotbelow ecircumflexdotbelow Ihookabove ihookabove Idotbelow idotbelow Odotbelow odotbelow Ohookabove ohookabove Ocircumflexacute ocircumflexacute Ocircumflexgrave ocircumflexgrave Ocircumflexhookabove ocircumflexhookabove Ocircumflextilde ocircumflextilde Ocircumflexdotbelow ocircumflexdotbelow Ohornacute ohornacute Ohorngrave ohorngrave Ohornhookabove ohornhookabove Ohorntilde ohorntilde Ohorndotbelow ohorndotbelow Udotbelow udotbelow Uhookabove uhookabove Uhornacute uhornacute Uhorngrave uhorngrave Uhornhookabove uhornhookabove Uhorntilde uhorntilde Uhorndotbelow uhorndotbelow Ygrave ygrave Ydotbelow ydotbelow Yhookabove yhookabove Ytilde ytilde hyphentwo dagger daggerdbl perthousand minute second commercialMinusSign colonsign franc lira naira peseta won dong kip peso guarani cedi rupeeIndian liraTurkish manat ruble numero trademark bulletoperator approxequal notequal lessequal greaterequal leftanglebracket-math rightanglebracket-math fi fl f_f f_f_i f_f_l circumflexcomb_acutecomb circumflexcomb_gravecomb circumflexcomb_hookabovecomb circumflexcomb_tildecomb brevecomb_acutecomb brevecomb_gravecomb brevecomb_hookabovecomb brevecomb_tildecomb idotaccent caroncomb.alt zero.lf one.lf two.lf three.lf four.lf five.lf six.lf seven.lf eight.lf nine.lf periodcentered.loclCAT Lib/gftools/encodings/GF Glyph Sets/filter lists/nice names/pro_optional-glyphs.txt000066400000000000000000000007161376445505300306510ustar00rootroot00000000000000parenright.case hyphen.case slash.case at.case bracketleft.case backslash.case bracketright.case braceleft.case braceright.case guillemetleft.case periodcentered.case guillemetright.case endash.case emdash.case bullet.case guilsinglleft.case guilsinglright.case zero.sinf one.sinf two.sinf three.sinf four.sinf five.sinf six.sinf seven.sinf eight.sinf nine.sinf zero.sups one.sups two.sups three.sups four.sups five.sups six.sups seven.sups eight.sups nine.sups Lib/gftools/encodings/GF Glyph Sets/filter lists/nice names/pro_unique-glyphs.txt000066400000000000000000000032361376445505300303320ustar00rootroot00000000000000primemod doubleprimemod commaturnedmod ringhalfright ringhalfleft verticallinemod firsttonechinese secondtonechinese fourthtonechinese verticallinelowmod pi Ccedillaacute ccedillaacute Ddotbelow ddotbelow Dlinebelow dlinebelow Emacrongrave emacrongrave Emacronacute emacronacute Ecedillabreve ecedillabreve Gmacron gmacron Hdotbelow hdotbelow Hbrevebelow hbrevebelow Idieresisacute idieresisacute Ldotbelow ldotbelow Llinebelow llinebelow Mdotbelow mdotbelow Ndotaccent ndotaccent Ndotbelow ndotbelow Nlinebelow nlinebelow Otildeacute otildeacute Otildedieresis otildedieresis Omacrongrave omacrongrave Omacronacute omacronacute Rdotbelow rdotbelow Rlinebelow rlinebelow Sdotaccent sdotaccent Sdotbelow sdotbelow Sacutedotaccent sacutedotaccent Scarondotaccent scarondotaccent Sdotbelowdotaccent sdotbelowdotaccent Tdotbelow tdotbelow Tlinebelow tlinebelow Utildeacute utildeacute Umacrondieresis umacrondieresis Ydotaccent ydotaccent Zdotbelow zdotbelow tdieresis figurespace punctuationspace thinspace hairspace zerowidthspace hyphentwo figuredash horizontalbar minute second zerosuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior seveninferior eightinferior nineinferior literSign Ohm estimated partialdiff emptyset increment product summation radical infinity integral lozenge zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr zero.subs one.subs two.subs three.subs four.subs five.subs six.subs seven.subs eight.subs nine.subs Lib/gftools/encodings/GF Glyph Sets/filter lists/plus_optional-glyphs_case-accents.txt000066400000000000000000000007211376445505300314370ustar00rootroot00000000000000gravecomb.case acutecomb.case circumflexcomb.case tildecomb.case macroncomb.case brevecomb.case dotaccentcomb.case dieresiscomb.case hookabovecomb.case ringcomb.case hungarumlautcomb.case caroncomb.case breveinvertedcomb.case dblgravecomb.case horncomb.case dotbelowcomb.case dieresisbelowcomb.case commaaccentcomb.case commaturnedabovecomb.case cedillacomb.case ogonekcomb.case brevebelowcomb.case macronbelowcomb.case periodcentered.loclCAT.case zero.zeroLib/gftools/encodings/GF Glyph Sets/filter lists/plus_unique-glyphs_vietnamese-all.txt000066400000000000000000000027411376445505300315010ustar00rootroot00000000000000Abreveacute Abrevedotbelow Abrevegrave Abrevehookabove Abrevetilde Acircumflexacute Acircumflexdotbelow Acircumflexgrave Acircumflexhookabove Acircumflextilde Adotbelow Ahookabove Ecircumflexacute Ecircumflexdotbelow Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Edotbelow Ehookabove Etilde Idotbelow Ihookabove Itilde Ocircumflexacute Ocircumflexdotbelow Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde Odotbelow Ohookabove Ohorn Ohornacute Ohorndotbelow Ohorngrave Ohornhookabove Ohorntilde Udotbelow Uhookabove Uhorn Uhornacute Uhorndotbelow Uhorngrave Uhornhookabove Uhorntilde Utilde Ydotbelow Yhookabove Ytilde abreveacute abrevedotbelow abrevegrave abrevehookabove abrevetilde acircumflexacute acircumflexdotbelow acircumflexgrave acircumflexhookabove acircumflextilde adotbelow ahookabove ecircumflexacute ecircumflexdotbelow ecircumflexgrave ecircumflexhookabove ecircumflextilde edotbelow ehookabove etilde idotbelow ihookabove itilde ocircumflexacute ocircumflexdotbelow ocircumflexgrave ocircumflexhookabove ocircumflextilde odotbelow ohookabove ohorn ohornacute ohorndotbelow ohorngrave ohornhookabove ohorntilde udotbelow uhookabove uhorn uhornacute uhorndotbelow uhorngrave uhornhookabove uhorntilde utilde ydotbelow yhookabove ytilde hookabovecomb horncomb dotbelowcomb strokeshortcomb brevecomb_acutecomb brevecomb_gravecomb brevecomb_hookabovecomb brevecomb_tildecomb circumflexcomb_acutecomb circumflexcomb_gravecomb circumflexcomb_hookabovecomb circumflexcomb_tildecombLib/gftools/encodings/GF Glyph Sets/filter lists/plus_unique-glyphs_vietnamese-unique.txt000066400000000000000000000020631376445505300322340ustar00rootroot00000000000000Abreveacute Abrevedotbelow Abrevegrave Abrevehookabove Abrevetilde Acircumflexacute Acircumflexdotbelow Acircumflexgrave Acircumflexhookabove Acircumflextilde Adotbelow Ahookabove Ecircumflexacute Ecircumflexdotbelow Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Ehookabove Ocircumflexacute Ocircumflexdotbelow Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde Ohookabove Ohorn Ohornacute Ohorndotbelow Ohorngrave Ohornhookabove Ohorntilde Uhorn Uhornacute Uhorndotbelow Uhorngrave Uhornhookabove Uhorntilde Ydotbelow Yhookabove abreveacute abrevedotbelow abrevegrave abrevehookabove abrevetilde acircumflexacute acircumflexdotbelow acircumflexgrave acircumflexhookabove acircumflextilde ahookabove ecircumflexacute ecircumflexdotbelow ecircumflexgrave ecircumflexhookabove ecircumflextilde ehookabove ocircumflexacute ocircumflexdotbelow ocircumflexgrave ocircumflexhookabove ocircumflextilde ohookabove ohorn ohornacute ohorndotbelow ohorngrave ohornhookabove ohorntilde uhorn uhornacute uhorndotbelow uhorngrave uhornhookabove uhorntilde ydotbelow yhookaboveLib/gftools/encodings/GF Glyph Sets/filter lists/pro_optional-glyphs_case-punctuation.txt000066400000000000000000000007151376445505300322100ustar00rootroot00000000000000at.case hyphen.case endash.case emdash.case periodcentered.case bullet.case slash.case backslash.case parenright.case bracketleft.case bracketright.case braceleft.case braceright.case guilsinglleft.case guilsinglright.case guillemetleft.case guillemetright.case zero.sups one.sups two.sups three.sups four.sups five.sups six.sups seven.sups eight.sups nine.sups zero.sinf one.sinf two.sinf three.sinf four.sinf five.sinf six.sinf seven.sinf eight.sinf nine.sinfLib/gftools/encodings/GF Glyph Sets/filter lists/uni names/000077500000000000000000000000001376445505300237505ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/filter lists/uni names/core_unique-glyphs.txt000066400000000000000000000027071376445505300303410ustar00rootroot00000000000000NULL CR space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore grave a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde uni00A0 exclamdown cent sterling currency yen brokenbar section dieresis copyright ordfeminine guillemotleft logicalnot uni00AD registered macron degree plusminus uni00B2 uni00B3 acute uni00B5 paragraph periodcentered cedilla uni00B9 ordmasculine guillemotright onequarter onehalf threequarters questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis dotlessi OE oe circumflex ring tilde endash emdash quoteleft quoteright quotesinglbase quotedblleft quotedblright quotedblbase bullet ellipsis guilsinglleft guilsinglright fraction uni2074 Euro minus uni2215 Lib/gftools/encodings/GF Glyph Sets/filter lists/uni names/expert_unique-glyphs.txt000066400000000000000000000054141376445505300307160ustar00rootroot00000000000000uni2153 uni2154 oneeighth threeeighths fiveeighths seveneighths arrowleft arrowup arrowright arrowdown filledbox uni25A1 triagup uni25B3 uni25B6 uni25B7 triagdn uni25BD uni25C0 uni25C1 uni25C6 uni25C7 T_h c_h c_t s_t germandbls.alt.sc periodcentered.loclCAT.sc exclam.sc quotedbl.sc ampersand.sc quotesingle.sc question.sc a.sc b.sc c.sc d.sc e.sc f.sc g.sc h.sc i.sc j.sc k.sc l.sc m.sc n.sc o.sc p.sc q.sc r.sc s.sc t.sc u.sc v.sc w.sc x.sc y.sc z.sc exclamdown.sc periodcentered.sc questiondown.sc germandbls.sc agrave.sc aacute.sc acircumflex.sc atilde.sc adieresis.sc aring.sc ae.sc ccedilla.sc egrave.sc eacute.sc ecircumflex.sc edieresis.sc igrave.sc iacute.sc icircumflex.sc idieresis.sc eth.sc ntilde.sc ograve.sc oacute.sc ocircumflex.sc otilde.sc odieresis.sc oslash.sc ugrave.sc uacute.sc ucircumflex.sc udieresis.sc yacute.sc thorn.sc ydieresis.sc amacron.sc abreve.sc aogonek.sc cacute.sc ccircumflex.sc cdotaccent.sc ccaron.sc dcaron.sc dcroat.sc emacron.sc ebreve.sc edotaccent.sc eogonek.sc ecaron.sc gcircumflex.sc gbreve.sc gdotaccent.sc uni0123.sc hcircumflex.sc hbar.sc itilde.sc imacron.sc ibreve.sc iogonek.sc dotlessi.sc jcircumflex.sc uni0137.sc kgreenlandic.sc lacute.sc uni013C.sc lcaron.sc ldot.sc lslash.sc nacute.sc uni0146.sc ncaron.sc eng.sc omacron.sc obreve.sc ohungarumlaut.sc oe.sc racute.sc uni0157.sc rcaron.sc sacute.sc scircumflex.sc scedilla.sc scaron.sc uni0163.sc tcaron.sc tbar.sc utilde.sc umacron.sc ubreve.sc uring.sc uhungarumlaut.sc uogonek.sc wcircumflex.sc ycircumflex.sc zacute.sc zdotaccent.sc zcaron.sc ohorn.sc uhorn.sc uni01C6.sc uni01C9.sc uni01CC.sc gcaron.sc uni01EB.sc aringacute.sc aeacute.sc oslashacute.sc uni0201.sc uni0203.sc uni0205.sc uni0207.sc uni0209.sc uni020B.sc uni020D.sc uni020F.sc uni0211.sc uni0213.sc uni0215.sc uni0217.sc uni0219.sc uni021B.sc uni022B.sc uni022D.sc uni0231.sc uni0233.sc uni0259.sc uni1E09.sc uni1E0D.sc uni1E0F.sc uni1E15.sc uni1E17.sc uni1E1D.sc uni1E21.sc uni1E25.sc uni1E2B.sc uni1E2F.sc uni1E37.sc uni1E3B.sc uni1E43.sc uni1E45.sc uni1E47.sc uni1E49.sc uni1E4D.sc uni1E4F.sc uni1E51.sc uni1E53.sc uni1E5B.sc uni1E5F.sc uni1E61.sc uni1E63.sc uni1E65.sc uni1E67.sc uni1E69.sc uni1E6D.sc uni1E6F.sc uni1E79.sc uni1E7B.sc wgrave.sc wacute.sc wdieresis.sc uni1E8F.sc uni1E93.sc uni1E97.sc uni1EA1.sc uni1EA3.sc uni1EA5.sc uni1EA7.sc uni1EA9.sc uni1EAB.sc uni1EAD.sc uni1EAF.sc uni1EB1.sc uni1EB3.sc uni1EB5.sc uni1EB7.sc uni1EB9.sc uni1EBB.sc uni1EBD.sc uni1EBF.sc uni1EC1.sc uni1EC3.sc uni1EC5.sc uni1EC7.sc uni1EC9.sc uni1ECB.sc uni1ECD.sc uni1ECF.sc uni1ED1.sc uni1ED3.sc uni1ED5.sc uni1ED7.sc uni1ED9.sc uni1EDB.sc uni1EDD.sc uni1EDF.sc uni1EE1.sc uni1EE3.sc uni1EE5.sc uni1EE9.sc uni1EEB.sc uni1EED.sc uni1EEF.sc uni1EF1.sc ygrave.sc uni1EF5.sc uni1EF7.sc uni1EF9.sc quoteleft.sc quoteright.sc quotedblleft.sc quotedblright.sc Lib/gftools/encodings/GF Glyph Sets/filter lists/uni names/plus_optional-glyphs.txt000066400000000000000000000005421376445505300307060ustar00rootroot00000000000000gravecomb.case acutecomb.case uni0302.case tildecomb.case uni0304.case uni0306.case uni0307.case uni0308.case hookabovecomb.case uni030A.case uni030B.case uni030C.case uni030F.case uni0311.case uni0312.case uni031B.case dotbelowcomb.case uni0324.case uni0326.case uni0327.case uni0328.case uni032E.case uni0331.case periodcentered.loclCAT.case zero.zero Lib/gftools/encodings/GF Glyph Sets/filter lists/uni names/plus_unique-glyphs.txt000066400000000000000000000060631376445505300303730ustar00rootroot00000000000000Amacron amacron Abreve abreve Aogonek aogonek Cacute cacute Ccircumflex ccircumflex Cdotaccent cdotaccent Ccaron ccaron Dcaron dcaron Dcroat dcroat Emacron emacron Ebreve ebreve Edotaccent edotaccent Eogonek eogonek Ecaron ecaron Gcircumflex gcircumflex Gbreve gbreve Gdotaccent gdotaccent uni0122 uni0123 Hcircumflex hcircumflex Hbar hbar Itilde itilde Imacron imacron Ibreve ibreve Iogonek iogonek Idotaccent Jcircumflex jcircumflex uni0136 uni0137 kgreenlandic Lacute lacute uni013B uni013C Lcaron lcaron Ldot ldot Lslash lslash Nacute nacute uni0145 uni0146 Ncaron ncaron Eng eng Omacron omacron Obreve obreve Ohungarumlaut ohungarumlaut Racute racute uni0156 uni0157 Rcaron rcaron Sacute sacute Scircumflex scircumflex Scedilla scedilla Scaron scaron uni0162 uni0163 Tcaron tcaron Tbar tbar Utilde utilde Umacron umacron Ubreve ubreve Uring uring Uhungarumlaut uhungarumlaut Uogonek uogonek Wcircumflex wcircumflex Ycircumflex ycircumflex Ydieresis Zacute zacute Zdotaccent zdotaccent Zcaron zcaron uni018F florin Ohorn ohorn Uhorn uhorn uni01C4 uni01C5 uni01C6 uni01C7 uni01C8 uni01C9 uni01CA uni01CB uni01CC Gcaron gcaron uni01EA uni01EB Aringacute aringacute AEacute aeacute Oslashacute oslashacute uni0200 uni0201 uni0202 uni0203 uni0204 uni0205 uni0206 uni0207 uni0208 uni0209 uni020A uni020B uni020C uni020D uni020E uni020F uni0210 uni0211 uni0212 uni0213 uni0214 uni0215 uni0216 uni0217 uni0218 uni0219 uni021A uni021B uni022A uni022B uni022C uni022D uni0230 uni0231 uni0232 uni0233 uni0237 uni0259 uni02B9 uni02BA uni02BC caron breve dotaccent ogonek hungarumlaut gravecomb acutecomb uni0302 tildecomb uni0304 uni0306 uni0307 uni0308 hookabovecomb uni030A uni030B uni030C uni030F uni0311 uni0312 uni031B dotbelowcomb uni0324 uni0326 uni0327 uni0328 uni032E uni0331 uni0335 Wgrave wgrave Wacute wacute Wdieresis wdieresis uni1E9E uni1EA0 uni1EA1 uni1EA2 uni1EA3 uni1EA4 uni1EA5 uni1EA6 uni1EA7 uni1EA8 uni1EA9 uni1EAA uni1EAB uni1EAC uni1EAD uni1EAE uni1EAF uni1EB0 uni1EB1 uni1EB2 uni1EB3 uni1EB4 uni1EB5 uni1EB6 uni1EB7 uni1EB8 uni1EB9 uni1EBA uni1EBB uni1EBC uni1EBD uni1EBE uni1EBF uni1EC0 uni1EC1 uni1EC2 uni1EC3 uni1EC4 uni1EC5 uni1EC6 uni1EC7 uni1EC8 uni1EC9 uni1ECA uni1ECB uni1ECC uni1ECD uni1ECE uni1ECF uni1ED0 uni1ED1 uni1ED2 uni1ED3 uni1ED4 uni1ED5 uni1ED6 uni1ED7 uni1ED8 uni1ED9 uni1EDA uni1EDB uni1EDC uni1EDD uni1EDE uni1EDF uni1EE0 uni1EE1 uni1EE2 uni1EE3 uni1EE4 uni1EE5 uni1EE6 uni1EE7 uni1EE8 uni1EE9 uni1EEA uni1EEB uni1EEC uni1EED uni1EEE uni1EEF uni1EF0 uni1EF1 Ygrave ygrave uni1EF4 uni1EF5 uni1EF6 uni1EF7 uni1EF8 uni1EF9 uni2010 dagger daggerdbl perthousand minute second uni2052 colonmonetary franc lira uni20A6 peseta uni20A9 dong uni20AD uni20B1 uni20B2 uni20B5 uni20B9 uni20BA uni20BC uni20BD uni2116 trademark uni2219 approxequal notequal lessequal greaterequal uni27E8 uni27E9 fi fl f_f f_f_i f_f_l uni0302_acutecomb uni0302_gravecomb uni0302_hookabovecomb uni0302_tildecomb uni0306_acutecomb uni0306_gravecomb uni0306_hookabovecomb uni0306_tildecomb i.loclTRK caroncomb.alt zero.lf one.lf two.lf three.lf four.lf five.lf six.lf seven.lf eight.lf nine.lf periodcentered.loclCAT Lib/gftools/encodings/GF Glyph Sets/filter lists/uni names/pro_optional-glyphs.txt000066400000000000000000000007161376445505300305260ustar00rootroot00000000000000parenright.case hyphen.case slash.case at.case bracketleft.case backslash.case bracketright.case braceleft.case braceright.case guillemotleft.case periodcentered.case guillemotright.case endash.case emdash.case bullet.case guilsinglleft.case guilsinglright.case zero.sinf one.sinf two.sinf three.sinf four.sinf five.sinf six.sinf seven.sinf eight.sinf nine.sinf zero.sups one.sups two.sups three.sups four.sups five.sups six.sups seven.sups eight.sups nine.sups Lib/gftools/encodings/GF Glyph Sets/filter lists/uni names/pro_unique-glyphs.txt000066400000000000000000000023231376445505300302030ustar00rootroot00000000000000uni02B9 uni02BA uni02BB uni02BE uni02BF uni02C8 uni02C9 uni02CA uni02CB uni02CC pi uni1E08 uni1E09 uni1E0C uni1E0D uni1E0E uni1E0F uni1E14 uni1E15 uni1E16 uni1E17 uni1E1C uni1E1D uni1E20 uni1E21 uni1E24 uni1E25 uni1E2A uni1E2B uni1E2E uni1E2F uni1E36 uni1E37 uni1E3A uni1E3B uni1E42 uni1E43 uni1E44 uni1E45 uni1E46 uni1E47 uni1E48 uni1E49 uni1E4C uni1E4D uni1E4E uni1E4F uni1E50 uni1E51 uni1E52 uni1E53 uni1E5A uni1E5B uni1E5E uni1E5F uni1E60 uni1E61 uni1E62 uni1E63 uni1E64 uni1E65 uni1E66 uni1E67 uni1E68 uni1E69 uni1E6C uni1E6D uni1E6E uni1E6F uni1E78 uni1E79 uni1E7A uni1E7B uni1E8E uni1E8F uni1E92 uni1E93 uni1E97 uni2007 uni2008 uni2009 uni200A uni200B uni2010 figuredash uni2015 minute second uni2070 uni2075 uni2076 uni2077 uni2078 uni2079 uni2080 uni2081 uni2082 uni2083 uni2084 uni2085 uni2086 uni2087 uni2088 uni2089 uni2113 uni2126 estimated partialdiff emptyset uni2206 product summation radical infinity integral lozenge zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr zero.subs one.subs two.subs three.subs four.subs five.subs six.subs seven.subs eight.subs nine.subs Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/000077500000000000000000000000001376445505300230205ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/EXPERT_composites_207.txt000066400000000000000000000114651376445505300274340ustar00rootroot000000000000000x2153 ⅓ onethird 0x2154 ⅔ twothirds 0x215B ⅛ oneeighth 0x215C ⅜ threeeighths 0x215D ⅝ fiveeighths 0x215E ⅞ seveneighths 0x2191 ↑ upArrow 0x2192 → rightArrow 0x2193 ↓ downArrow aacute.sc abreve.sc abreveacute.sc abrevedotbelow.sc abrevegrave.sc abrevehookabove.sc abrevetilde.sc acircumflex.sc acircumflexacute.sc acircumflexdotbelow.sc acircumflexgrave.sc acircumflexhookabove.sc acircumflextilde.sc adieresis.sc adotbelow.sc agrave.sc ahookabove.sc amacron.sc aogonek.sc aringacute.sc atilde.sc aeacute.sc cacute.sc ccaron.sc ccedilla.sc ccircumflex.sc cdotaccent.sc dcaron.sc eacute.sc ebreve.sc ecaron.sc ecircumflex.sc ecircumflexacute.sc ecircumflexdotbelow.sc ecircumflexgrave.sc ecircumflexhookabove.sc ecircumflextilde.sc edieresis.sc edotaccent.sc edotbelow.sc egrave.sc ehookabove.sc emacron.sc eogonek.sc etilde.sc gbreve.sc gcaron.sc gcircumflex.sc gcommaaccent.sc gdotaccent.sc hcircumflex.sc idotless.sc iacute.sc ibreve.sc icircumflex.sc idieresis.sc idotbelow.sc igrave.sc ij.sc imacron.sc iogonek.sc itilde.sc jcircumflex.sc kcommaaccent.sc lacute.sc lcaron.sc lcommaaccent.sc ldot.sc nacute.sc ncaron.sc ncommaaccent.sc ntilde.sc oacute.sc obreve.sc ocircumflex.sc ocircumflexacute.sc ocircumflexdotbelow.sc ocircumflexgrave.sc ocircumflexhookabove.sc ocircumflextilde.sc odieresis.sc odotbelow.sc ograve.sc ohookabove.sc ohornacute.sc ohorndotbelow.sc ohorngrave.sc ohornhookabove.sc ohorntilde.sc ohungarumlaut.sc omacron.sc oogonek.sc oslashacute.sc otilde.sc racute.sc rcaron.sc rcommaaccent.sc sacute.sc scaron.sc scedilla.sc scircumflex.sc scommaaccent.sc tcaron.sc tcedilla.sc tcommaaccent.sc uacute.sc ubreve.sc ucircumflex.sc udieresis.sc udotbelow.sc ugrave.sc uhornacute.sc uhorndotbelow.sc uhorngrave.sc uhornhookabove.sc uhorntilde.sc uhungarumlaut.sc umacron.sc dzcaron.sc lj.sc nj.sc adblgrave.sc ainvertedbreve.sc edblgrave.sc einvertedbreve.sc idblgrave.sc iinvertedbreve.sc odblgrave.sc oinvertedbreve.sc rdblgrave.sc rinvertedbreve.sc udblgrave.sc uinvertedbreve.sc odieresismacron.sc otildemacron.sc odotaccentmacron.sc ccedillaacute.sc ddotbelow.sc dlinebelow.sc emacrongrave.sc emacronacute.sc ecedillabreve.sc gmacron.sc hdotbelow.sc hbrevebelow.sc idieresisacute.sc ldotbelow.sc llinebelow.sc mdotbelow.sc ndotaccent.sc ndotbelow.sc nlinebelow.sc otildeacute.sc otildedieresis.sc omacrongrave.sc omacronacute.sc rdotbelow.sc rlinebelow.sc sdotaccent.sc sdotbelow.sc sacutedotaccent.sc scarondotaccent.sc sdotbelowdotaccent.sc tdotbelow.sc tlinebelow.sc utildeacute.sc umacrondieresis.sc ydotaccent.sc zdotbelow.sc tdieresis.sc ihookabove.sc uogonek.sc uring.sc utilde.sc wacute.sc wcircumflex.sc wdieresis.sc wgrave.sc yacute.sc ycircumflex.sc ydieresis.sc ydotbelow.sc ygrave.sc yhookabove.sc ymacron.sc ytilde.sc zacute.sc zcaron.sc zdotaccent.sc i.sc.TRK.sc periodcentered.loclCAT.sc exclamdown.sc questiondown.sc quotedbl.sc quotedblleft.sc quotedblright.sc quotesingle.sc Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/EXPERT_drawn_62.txt000066400000000000000000000023021376445505300262670ustar00rootroot000000000000000x2190 ← leftArrow 0x25A0 ■ blackSquare 0x25A1 □ whiteSquare 0x25B2 ▲ upBlackTriangle 0x25B3 △ upWhiteTriangle 0x25B6 ▶ rightBlackTriangle 0x25B7 ▷ rightWhiteTriangle 0x25BC ▼ downBlackTriangle 0x25BD ▽ downWhiteTriangle 0x25C0 ◀ leftBlackTriangle 0x25C1 ◁ leftWhiteTriangle 0x25C6 ◆ blackDiamond 0x25C7 ◇ whiteDiamond a.sc ae.sc b.sc c.sc d.sc eth.sc dcroat.sc e.sc f.sc g.sc h.sc hbar.sc i.sc j.sc k.sc kgreenlandic.sc l.sc lslash.sc m.sc n.sc eng.sc o.sc oslash.sc oe.sc p.sc thorn.sc q.sc r.sc s.sc germandbls.sc schwa.sc t.sc tbar.sc u.sc v.sc w.sc x.sc y.sc z.sc germandbls.alt.sc periodcentered.sc exclam.sc question.sc quoteleft.sc quoteright.sc ampersand.sc c_t c_h s_t Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/EXPERT_either_4.txt000066400000000000000000000001211376445505300263450ustar00rootroot00000000000000 aring.sc ohorn.sc uhorn.sc T_h Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/PLUS_composites_360.txt000066400000000000000000000172271376445505300272120ustar00rootroot000000000000000x00C0 À Agrave 0x00E0 à agrave 0x00C1 Á Aacute 0x00E1 á aacute 0x00C2  Acircumflex 0x00E2 â acircumflex 0x00C3 à Atilde 0x00E3 ã atilde 0x00C4 Ä Adieresis 0x00E4 ä adieresis 0x0100 Ā Amacron 0x0101 ā amacron 0x0102 Ă Abreve 0x0103 ă abreve 0x01FA Ǻ Aringacute 0x01FB ǻ aringacute 0x1EA0 Ạ Adotbelow 0x1EA1 ạ adotbelow 0x01FC Ǽ AEacute 0x01FD ǽ aeacute 0x0106 Ć Cacute 0x0107 ć cacute 0x0108 Ĉ Ccircumflex 0x0109 ĉ ccircumflex 0x010C Č Ccaron 0x010D č ccaron 0x010A Ċ Cdotaccent 0x010B ċ cdotaccent 0x00C7 Ç Ccedilla 0x00E7 ç ccedilla 0x010E Ď Dcaron 0x010F ď dcaron 0x00C8 È Egrave 0x00E8 è egrave 0x00C9 É Eacute 0x00E9 é eacute 0x00CA Ê Ecircumflex 0x00EA ê ecircumflex 0x1EBC Ẽ Etilde 0x1EBD ẽ etilde 0x011A Ě Ecaron 0x011B ě ecaron 0x00CB Ë Edieresis 0x00EB ë edieresis 0x0112 Ē Emacron 0x0113 ē emacron 0x0114 Ĕ Ebreve 0x0115 ĕ ebreve 0x0116 Ė Edotaccent 0x0117 ė edotaccent 0x1EB8 Ẹ Edotbelow 0x1EB9 ẹ edotbelow 0x0118 Ę Eogonek 0x0119 ę eogonek 0x011C Ĝ Gcircumflex 0x011D ĝ gcircumflex 0x01E6 Ǧ Gcaron 0x01E7 ǧ gcaron 0x011E Ğ Gbreve 0x011F ğ gbreve 0x0120 Ġ Gdotaccent 0x0121 ġ gdotaccent 0x0122 Ģ Gcommaaccent 0x0123 ģ gcommaaccent 0x0124 Ĥ Hcircumflex 0x0125 ĥ hcircumflex 0x00CC Ì Igrave 0x00EC ì igrave 0x00CD Í Iacute 0x00ED í iacute 0x00CE Î Icircumflex 0x00EE î icircumflex 0x0128 Ĩ Itilde 0x0129 ĩ itilde 0x00CF Ï Idieresis 0x00EF ï idieresis 0x012A Ī Imacron 0x012B ī imacron 0x012C Ĭ Ibreve 0x012D ĭ ibreve 0x0130 İ Idotaccent idotaccent 0x1ECA Ị Idotbelow 0x1ECB ị idotbelow 0x0134 Ĵ Jcircumflex 0x0135 ĵ jcircumflex 0x0136 Ķ Kcommaaccent 0x0137 ķ kcommaaccent 0x0139 Ĺ Lacute 0x013A ĺ lacute 0x013D Ľ Lcaron 0x013E ľ lcaron 0x013B Ļ Lcommaaccent 0x013C ļ lcommaaccent 0x013F Ŀ Ldot 0x0140 ŀ ldot 0x0143 Ń Nacute 0x0144 ń nacute 0x00D1 Ñ Ntilde 0x00F1 ñ ntilde 0x0147 Ň Ncaron 0x0148 ň ncaron 0x0145 Ņ Ncommaaccent 0x0146 ņ ncommaaccent 0x0149 ʼn napostrophe 0x00D2 Ò Ograve 0x00F2 ò ograve 0x00D3 Ó Oacute 0x00F3 ó oacute 0x00D4 Ô Ocircumflex 0x00F4 ô ocircumflex 0x00D5 Õ Otilde 0x00F5 õ otilde 0x00D6 Ö Odieresis 0x00F6 ö odieresis 0x014C Ō Omacron 0x014D ō omacron 0x014E Ŏ Obreve 0x014F ŏ obreve 0x0150 Ő Ohungarumlaut 0x0151 ő ohungarumlaut 0x1ECC Ọ Odotbelow 0x1ECD ọ odotbelow 0x01EA Ǫ Oogonek 0x01EB ǫ oogonek 0x01FE Ǿ Oslashacute 0x01FF ǿ oslashacute 0x0154 Ŕ Racute 0x0155 ŕ racute 0x0158 Ř Rcaron 0x0159 ř rcaron 0x0156 Ŗ Rcommaaccent 0x0157 ŗ rcommaaccent 0x015A Ś Sacute 0x015B ś sacute 0x015C Ŝ Scircumflex 0x015D ŝ scircumflex 0x0160 Š Scaron 0x0161 š scaron 0x015E Ş Scedilla 0x015F ş scedilla 0x0218 Ș Scommaaccent 0x0219 ș scommaaccent 0x0164 Ť Tcaron 0x0165 ť tcaron 0x0162 Ţ Tcedilla 0x0163 ţ tcedilla 0x021A Ț Tcommaaccent 0x021B ț tcommaaccent 0x00D9 Ù Ugrave 0x00F9 ù ugrave 0x00DA Ú Uacute 0x00FA ú uacute 0x00DB Û Ucircumflex 0x00FB û ucircumflex 0x0168 Ũ Utilde 0x0169 ũ utilde 0x00DC Ü Udieresis 0x00FC ü udieresis 0x016A Ū Umacron 0x016B ū umacron 0x016C Ŭ Ubreve 0x016D ŭ ubreve 0x016E Ů Uring 0x016F ů uring 0x0170 Ű Uhungarumlaut 0x0171 ű uhungarumlaut 0x1EE4 Ụ Udotbelow 0x1EE5 ụ udotbelow 0x0172 Ų Uogonek 0x0173 ų uogonek 0x1E80 Ẁ Wgrave 0x1E81 ẁ wgrave 0x1E82 Ẃ Wacute 0x1E83 ẃ wacute 0x0174 Ŵ Wcircumflex 0x0175 ŵ wcircumflex 0x1E84 Ẅ Wdieresis 0x1E85 ẅ wdieresis 0x1EF2 Ỳ Ygrave 0x1EF3 ỳ ygrave 0x00DD Ý Yacute 0x00FD ý yacute 0x0176 Ŷ Ycircumflex 0x0177 ŷ ycircumflex 0x1EF8 Ỹ Ytilde 0x1EF9 ỹ ytilde 0x0178 Ÿ Ydieresis 0x00FF ÿ ydieresis 0x0232 Ȳ Ymacron 0x0233 ȳ ymacron 0x0179 Ź Zacute 0x017A ź zacute 0x017D Ž Zcaron 0x017E ž zcaron 0x017B Ż Zdotaccent 0x017C ż zdotaccent 0x0132 IJ IJ 0x0133 ij ij  IJacute  ijacute 0x01C4 DŽ DZcaron 0x01C5 Dž Dzcaron 0x01C6 dž dzcaron 0x01C7 LJ LJ 0x01C8 Lj Lj 0x01C9 lj lj 0x01CA NJ NJ 0x01CB Nj Nj 0x01CC nj nj 0x0200 Ȁ Adblgrave 0x0201 ȁ adblgrave 0x0202 Ȃ Ainvertedbreve 0x0203 ȃ ainvertedbreve 0x0204 Ȅ Edblgrave 0x0205 ȅ edblgrave 0x0206 Ȇ Einvertedbreve 0x0207 ȇ einvertedbreve 0x0208 Ȉ Idblgrave 0x0209 ȉ idblgrave 0x020A Ȋ Iinvertedbreve 0x020B ȋ iinvertedbreve 0x020C Ȍ Odblgrave 0x020D ȍ odblgrave 0x020E Ȏ Oinvertedbreve 0x020F ȏ oinvertedbreve 0x0210 Ȑ Rdblgrave 0x0211 ȑ rdblgrave 0x0212 Ȓ Rinvertedbreve 0x0213 ȓ rinvertedbreve 0x0214 Ȕ Udblgrave 0x0215 ȕ udblgrave 0x0216 Ȗ Uinvertedbreve 0x0217 ȗ uinvertedbreve 0x022A Ȫ Odieresismacron 0x022B ȫ odieresismacron 0x022C Ȭ Otildemacron 0x022D ȭ otildemacron 0x0230 Ȱ Odotaccentmacron 0x0231 ȱ odotaccentmacron 0x0060 ` grave 0x00B4 ´ acute 0x02C6 ˆ circumflex 0x02C7 ˇ caron 0x02DC ˜ tilde 0x00A8 ¨ dieresis 0x00AF ¯ macron 0x02C9 ˉ firsttonechinese 0x02D8 ˘ breve 0x02DA ˚ ring 0x02DD ˝ hungarumlaut 0x02D9 ˙ dotaccent 0x00B8 ¸ cedilla 0x02DB ˛ ogonek 0x002D - hyphen 0x003A : colon 0x003B ; semicolon 0x2026 … ellipsis 0x00A1 ¡ exclamdown 0x00BF ¿ questiondown periodcentered.loclCAT periodcentered.loclCAT.case 0x2022 • bullet 0x0027 ' quotesingle 0x0022 " quotedbl 0x2019 ’ quoteright 0x201C “ quotedblleft 0x201D ” quotedblright 0x201A ‚ quotesinglbase 0x201E „ quotedblbase 0x00AB « guillemetleft 0x00BB » guillemetright 0x2215 ∕ divisionslash 0x00BC ¼ onequarter 0x00BD ½ onehalf 0x00BE ¾ threequarters 0x0025 % percent 0x2030 ‰ perthousand zero.lf one.lf two.lf three.lf four.lf five.lf six.lf seven.lf eight.lf nine.lf 0x1EAE Ắ Abreveacute 0x1EB6 Ặ Abrevedotbelow 0x1EB0 Ằ Abrevegrave 0x1EB2 Ẳ Abrevehookabove 0x1EB4 Ẵ Abrevetilde 0x1EA4 Ấ Acircumflexacute 0x1EAC Ậ Acircumflexdotbelow 0x1EA6 Ầ Acircumflexgrave 0x1EA8 Ẩ Acircumflexhookabove 0x1EAA Ẫ Acircumflextilde 0x1EA2 Ả Ahookabove 0x1EBE Ế Ecircumflexacute 0x1EC6 Ệ Ecircumflexdotbelow 0x1EC0 Ề Ecircumflexgrave 0x1EC2 Ể Ecircumflexhookabove 0x1EC4 Ễ Ecircumflextilde 0x1EBA Ẻ Ehookabove 0x1ED0 Ố Ocircumflexacute 0x1ED8 Ộ Ocircumflexdotbelow 0x1ED2 Ồ Ocircumflexgrave 0x1ED4 Ổ Ocircumflexhookabove 0x1ED6 Ỗ Ocircumflextilde 0x1ECE Ỏ Ohookabove 0x1EDA Ớ Ohornacute 0x1EE2 Ợ Ohorndotbelow 0x1EDC Ờ Ohorngrave 0x1EDE Ở Ohornhookabove 0x1EE0 Ỡ Ohorntilde 0x1EE8 Ứ Uhornacute 0x1EF0 Ự Uhorndotbelow 0x1EEA Ừ Uhorngrave 0x1EEC Ử Uhornhookabove 0x1EEE Ữ Uhorntilde 0x1EF4 Ỵ Ydotbelow 0x1EF6 Ỷ Yhookabove 0x1EAF ắ abreveacute 0x1EB7 ặ abrevedotbelow 0x1EB1 ằ abrevegrave 0x1EB3 ẳ abrevehookabove 0x1EB5 ẵ abrevetilde 0x1EA5 ấ acircumflexacute 0x1EAD ậ acircumflexdotbelow 0x1EA7 ầ acircumflexgrave 0x1EA9 ẩ acircumflexhookabove 0x1EAB ẫ acircumflextilde 0x1EA3 ả ahookabove 0x1EBF ế ecircumflexacute 0x1EC7 ệ ecircumflexdotbelow 0x1EC1 ề ecircumflexgrave 0x1EC3 ể ecircumflexhookabove 0x1EC5 ễ ecircumflextilde 0x1EBB ẻ ehookabove 0x1EC8 Ỉ Ihookabove 0x1EC9 ỉ ihookabove 0x1ED1 ố ocircumflexacute 0x1ED9 ộ ocircumflexdotbelow 0x1ED3 ồ ocircumflexgrave 0x1ED5 ổ ocircumflexhookabove 0x1ED7 ỗ ocircumflextilde 0x1ECF ỏ ohookabove 0x1EDB ớ ohornacute 0x1EE3 ợ ohorndotbelow 0x1EDD ờ ohorngrave 0x1EDF ở ohornhookabove 0x1EE1 ỡ ohorntilde 0x1EE9 ứ uhornacute 0x1EF1 ự uhorndotbelow 0x1EEB ừ uhorngrave 0x1EED ử uhornhookabove 0x1EEF ữ uhorntilde 0x1EF5 ỵ ydotbelow 0x1EF7 ỷ yhookabove Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/PLUS_drawn_215.txt000066400000000000000000000076521376445505300261400ustar00rootroot000000000000000x0041 A A 0x0042 B B 0x0043 C C 0x0044 D D 0x0045 E E 0x0046 F F 0x0047 G G 0x0048 H H 0x0049 I I 0x004A J J 0x004B K K 0x004C L L 0x004D M M 0x004E N N 0x004F O O 0x0050 P P 0x0051 Q Q 0x0052 R R 0x0053 S S 0x0054 T T 0x0055 U U 0x0056 V V 0x0057 W W 0x0058 X X 0x0059 Y Y 0x005A Z Z 0x0061 a a 0x0062 b b 0x0063 c c 0x0064 d d 0x0065 e e 0x0066 f f 0x0067 g g 0x0068 h h 0x0069 i i 0x006A j j 0x006B k k 0x006C l l 0x006D m m 0x006E n n 0x006F o o 0x0070 p p 0x0071 q q 0x0072 r r 0x0073 s s 0x0074 t t 0x0075 u u 0x0076 v v 0x0077 w w 0x0078 x x 0x0079 y y 0x007A z z 0x00C6 Æ AE 0x00E6 æ ae 0x0110 Đ Dcroat 0x0111 đ dcroat 0x00D0 Ð Eth 0x00F0 ð eth 0x0126 Ħ Hbar 0x0127 ħ hbar 0x0131 ı idotless 0x0237 ȷ dotlessj 0x0141 Ł Lslash 0x0142 ł lslash 0x014A Ŋ Eng 0x014B ŋ eng 0x00D8 Ø Oslash 0x00F8 ø oslash 0x0152 Œ OE 0x0153 œ oe 0x1E9E ẞ Germandbls 0x00DF ß germandbls 0x0138 ĸ kgreenlandic 0x0166 Ŧ Tbar 0x0167 ŧ tbar 0x00DE Þ Thorn 0x00FE þ thorn 0x018F Ə Schwa 0x0259 ə schwa 0x0026 & ampersand 0x0040 @ at 0x002A * asterisk 0x00A9 © copyright 0x00AE ® registered 0x2122 ™ trademark 0x005E ^ asciicircum 0x007E ~ asciitilde 0x0300 ̀ gravecomb gravecomb.case 0x0301 ́ acutecomb acutecomb.case 0x0302 ̂ circumflexcomb circumflexcomb.case 0x0303 ̃ tildecomb tildecomb.case 0x0304 ̄ macroncomb macroncomb.case 0x0306 ̆ brevecomb brevecomb.case 0x0307 ̇ dotaccentcomb dotaccentcomb.case 0x0308 ̈ dieresiscomb dieresiscomb.case 0x0309 ̉ hookabovecomb hookabovecomb.case 0x030A ̊ ringcomb ringcomb.case 0x030B ̋ hungarumlautcomb hungarumlautcomb.case 0x030C ̌ caroncomb caroncomb.case caroncomb.alt 0x030F ̏ breveinvertedcomb breveinvertedcomb.case 0x0311 ̑ dblgravecomb dblgravecomb.case 0x031B ̛ horncomb horncomb.case 0x0323 ̣ dotbelowcomb dotbelowcomb.case 0x0324 ̤ dieresisbelowcomb dieresisbelowcomb.case 0x0326 ̦ commaaccentcomb commaaccentcomb.case commaaccentcomb.alt 0x0327 ̧ cedillacomb cedillacomb.case 0x0328 ̨ ogonekcomb ogonekcomb.case 0x032E ̮ brevebelowcomb brevebelowcomb.case 0x0331 ̱ macronbelowcomb macronbelowcomb.case 0x00AD ­ softhyphen 0x2013 – endash 0x2014 — emdash 0x005F _ underscore 0x002E . period 0x002C , comma 0x0021 ! exclam 0x003F ? question 0x00B7 · periodcentered 0x2219 ∙ bulletoperator 0x002F / slash 0x005C \ backslash 0x007C | bar 0x00A6 ¦ brokenbar 0x0028 ( parenleft 0x0029 ) parenright 0x005B [ bracketleft 0x005D ] bracketright 0x007B { braceleft 0x007D } braceright 0x2018 ‘ quoteleft 0x2039 ‹ guilsinglleft 0x203A › guilsinglright 0x00B6 ¶ paragraph 0x0023 # numbersign 0x0030 0 zero 0x0031 1 one 0x0032 2 two 0x0033 3 three 0x0034 4 four 0x0035 5 five 0x0036 6 six 0x0037 7 seven 0x0038 8 eight 0x0039 9 nine zero.zero 0x2044 ⁄ fraction 0x00B0 ° degree 0x002B + plus 0x2212 − minus 0x00B1 ± plusminus 0x2260 ≠ notequal 0x2248 ≈ approxequal 0x00D7 × multiply 0x003C < less 0x003E > greater 0x2264 ≤ lessequal 0x2265 ≥ greaterequal 0x00AC ¬ logicalnot 0x2020 † dagger 0x2021 ‡ daggerdbl 0x00A7 § section 0x20AC € euro 0x00A4 ¤ currency 0x0024 $ dollar 0x00A2 ¢ cent 0x0192 ƒ florin 0x00A3 £ sterling 0x00A5 ¥ yen 0x00B9 ¹ onesuperior 0x00B2 ² twosuperior 0x00B3 ³ threesuperior 0x00AA ª ordfeminine 0x00BA º ordmasculine 0x2116 № numero 0x00B5 µ micro 0x20A1 ₡ colonsign 0x20A3 ₣ franc 0x20A4 ₤ lira 0x20A6 ₦ naira 0x20A7 ₧ peseta 0x20A9 ₩ won 0x20AB ₫ dong 0x20AD ₭ kip 0x20B1 ₱ peso 0x20B2 ₲ guarani 0x20B5 ₵ cedi 0x20B9 ₹ rupeeIndian 0x20BA ₺ liraTurkish 0x20BC ₼ manat 0x20BD ₽ ruble Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/PLUS_drawn_216.txt000066400000000000000000000077311376445505300261370ustar00rootroot000000000000000x0041 A A 0x0042 B B 0x0043 C C 0x0044 D D 0x0045 E E 0x0046 F F 0x0047 G G 0x0048 H H 0x0049 I I 0x004A J J 0x004B K K 0x004C L L 0x004D M M 0x004E N N 0x004F O O 0x0050 P P 0x0051 Q Q 0x0052 R R 0x0053 S S 0x0054 T T 0x0055 U U 0x0056 V V 0x0057 W W 0x0058 X X 0x0059 Y Y 0x005A Z Z 0x0061 a a 0x0062 b b 0x0063 c c 0x0064 d d 0x0065 e e 0x0066 f f 0x0067 g g 0x0068 h h 0x0069 i i 0x006A j j 0x006B k k 0x006C l l 0x006D m m 0x006E n n 0x006F o o 0x0070 p p 0x0071 q q 0x0072 r r 0x0073 s s 0x0074 t t 0x0075 u u 0x0076 v v 0x0077 w w 0x0078 x x 0x0079 y y 0x007A z z 0x00C6 Æ AE 0x00E6 æ ae 0x0110 Đ Dcroat 0x0111 đ dcroat 0x00D0 Ð Eth 0x00F0 ð eth 0x0126 Ħ Hbar 0x0127 ħ hbar 0x0131 ı idotless 0x0237 ȷ dotlessj 0x0141 Ł Lslash 0x0142 ł lslash 0x014A Ŋ Eng 0x014B ŋ eng 0x00D8 Ø Oslash 0x00F8 ø oslash 0x0152 Œ OE 0x0153 œ oe 0x1E9E ẞ Germandbls 0x00DF ß germandbls 0x0138 ĸ kgreenlandic 0x0166 Ŧ Tbar 0x0167 ŧ tbar 0x00DE Þ Thorn 0x00FE þ thorn 0x018F Ə Schwa 0x0259 ə schwa 0x0026 & ampersand 0x0040 @ at 0x002A * asterisk 0x00A9 © copyright 0x00AE ® registered 0x2122 ™ trademark 0x005E ^ asciicircum 0x007E ~ asciitilde 0x0300 ̀ gravecomb gravecomb.case 0x0301 ́ acutecomb acutecomb.case 0x0302 ̂ circumflexcomb circumflexcomb.case 0x0303 ̃ tildecomb tildecomb.case 0x0304 ̄ macroncomb macroncomb.case 0x0306 ̆ brevecomb brevecomb.case 0x0307 ̇ dotaccentcomb dotaccentcomb.case 0x0308 ̈ dieresiscomb dieresiscomb.case 0x0309 ̉ hookabovecomb hookabovecomb.case 0x030A ̊ ringcomb ringcomb.case 0x030B ̋ hungarumlautcomb hungarumlautcomb.case 0x030C ̌ caroncomb caroncomb.alt caroncomb.case 0x030F ̏ breveinvertedcomb breveinvertedcomb.case 0x0311 ̑ dblgravecomb dblgravecomb.case 0x031B ̛ horncomb horncomb.case 0x0323 ̣ dotbelowcomb dotbelowcomb.case 0x0324 ̤ dieresisbelowcomb dieresisbelowcomb.case 0x0326 ̦ commaaccentcomb commaaccentcomb.case commaaccentcomb.alt 0x0327 ̧ cedillacomb cedillacomb.case 0x0328 ̨ ogonekcomb ogonekcomb.case 0x032E ̮ brevebelowcomb brevebelowcomb.case 0x0331 ̱ macronbelowcomb macronbelowcomb.case 0x00AD ­ softhyphen 0x2013 – endash 0x2014 — emdash 0x005F _ underscore 0x002E . period 0x002C , comma 0x0021 ! exclam 0x003F ? question 0x00B7 · periodcentered 0x2219 ∙ bulletoperator 0x002F / slash 0x005C \ backslash 0x007C | bar 0x00A6 ¦ brokenbar 0x0028 ( parenleft 0x0029 ) parenright 0x005B [ bracketleft 0x005D ] bracketright 0x007B { braceleft 0x007D } braceright 0x2018 ‘ quoteleft 0x2039 ‹ guilsinglleft 0x203A › guilsinglright 0x00B6 ¶ paragraph 0x0023 # numbersign 0x0030 0 zero 0x0031 1 one 0x0032 2 two 0x0033 3 three 0x0034 4 four 0x0035 5 five 0x0036 6 six 0x0037 7 seven 0x0038 8 eight 0x0039 9 nine zero.zero 0x2044 ⁄ fraction 0x00B0 ° degree 0x002B + plus 0x2212 − minus 0x00B1 ± plusminus 0x2260 ≠ notequal 0x2248 ≈ approxequal 0x00D7 × multiply 0x003C < less 0x003E > greater 0x2264 ≤ lessequal 0x2265 ≥ greaterequal 0x00AC ¬ logicalnot 0x2020 † dagger 0x2021 ‡ daggerdbl 0x00A7 § section 0x20AC € euro 0x00A4 ¤ currency 0x0024 $ dollar 0x00A2 ¢ cent 0x0192 ƒ florin 0x00A3 £ sterling 0x00A5 ¥ yen 0x00B9 ¹ onesuperior 0x00B2 ² twosuperior 0x00B3 ³ threesuperior 0x2074 ⁴ foursuperior 0x00AA ª ordfeminine 0x00BA º ordmasculine 0x2116 № numero 0x00B5 µ micro 0x20A1 ₡ colonsign 0x20A3 ₣ franc 0x20A4 ₤ lira 0x20A6 ₦ naira 0x20A7 ₧ peseta 0x20A9 ₩ won 0x20AB ₫ dong 0x20AD ₭ kip 0x20B1 ₱ peso 0x20B2 ₲ guarani 0x20B5 ₵ cedi 0x20B9 ₹ rupeeIndian 0x20BA ₺ liraTurkish 0x20BC ₼ manat 0x20BD ₽ ruble Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/PLUS_either_19.txt000066400000000000000000000005121376445505300262130ustar00rootroot000000000000000x00C5 Å Aring 0x00E5 å aring 0x0104 Ą Aogonek 0x0105 ą aogonek 0x012E Į Iogonek 0x012F į iogonek 0xFB00 ff f_f 0xFB01 fi fi 0xFB02 fl fl  f_ij 0xFB03 ffi f_f_i 0xFB04 ffl f_f_l  f_f_ij 0x003D = equal 0x00F7 ÷ divide 0x01A0 Ơ Ohorn 0x01AF Ư Uhorn 0x01A1 ơ ohorn 0x01B0 ư uhorn Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/PRO_composites_116.txt000066400000000000000000000052571376445505300270660ustar00rootroot00000000000000 at.case hyphen.case endash.case emdash.case periodcentered.case bullet.case slash.case backslash.case parenright.case bracketleft.case bracketright.case braceleft.case braceright.case guilsinglleft.case guilsinglright.case guillemetleft.case guillemetright.case zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr 0x1E08 Ḉ Ccedillaacute 0x1E09 ḉ ccedillaacute 0x1E0C Ḍ Ddotbelow 0x1E0D ḍ ddotbelow 0x1E0E Ḏ Dlinebelow 0x1E0F ḏ dlinebelow 0x1E14 Ḕ Emacrongrave 0x1E15 ḕ emacrongrave 0x1E16 Ḗ Emacronacute 0x1E17 ḗ emacronacute 0x1E1C Ḝ Ecedillabreve 0x1E1D ḝ ecedillabreve 0x1E20 Ḡ Gmacron 0x1E21 ḡ gmacron 0x1E24 Ḥ Hdotbelow 0x1E25 ḥ hdotbelow 0x1E2A Ḫ Hbrevebelow 0x1E2B ḫ hbrevebelow 0x1E2E Ḯ Idieresisacute 0x1E2F ḯ idieresisacute 0x1E36 Ḷ Ldotbelow 0x1E37 ḷ ldotbelow 0x1E3A Ḻ Llinebelow 0x1E3B ḻ llinebelow 0x1E42 Ṃ Mdotbelow 0x1E43 ṃ mdotbelow 0x1E44 Ṅ Ndotaccent 0x1E45 ṅ ndotaccent 0x1E46 Ṇ Ndotbelow 0x1E47 ṇ ndotbelow 0x1E48 Ṉ Nlinebelow 0x1E49 ṉ nlinebelow 0x1E4C Ṍ Otildeacute 0x1E4D ṍ otildeacute 0x1E4E Ṏ Otildedieresis 0x1E4F ṏ otildedieresis 0x1E50 Ṑ Omacrongrave 0x1E51 ṑ omacrongrave 0x1E52 Ṓ Omacronacute 0x1E53 ṓ omacronacute 0x1E5A Ṛ Rdotbelow 0x1E5B ṛ rdotbelow 0x1E5E Ṟ Rlinebelow 0x1E5F ṟ rlinebelow 0x1E60 Ṡ Sdotaccent 0x1E61 ṡ sdotaccent 0x1E62 Ṣ Sdotbelow 0x1E63 ṣ sdotbelow 0x1E64 Ṥ Sacutedotaccent 0x1E65 ṥ sacutedotaccent 0x1E66 Ṧ Scarondotaccent 0x1E67 ṧ scarondotaccent 0x1E68 Ṩ Sdotbelowdotaccent 0x1E69 ṩ sdotbelowdotaccent 0x1E6C Ṭ Tdotbelow 0x1E6D ṭ tdotbelow 0x1E6E Ṯ Tlinebelow 0x1E6F ṯ tlinebelow 0x1E78 Ṹ Utildeacute 0x1E79 ṹ utildeacute 0x1E7A Ṻ Umacrondieresis 0x1E7B ṻ umacrondieresis 0x1E8E Ẏ Ydotaccent 0x1E8F ẏ ydotaccent 0x1E92 Ẓ Zdotbelow 0x1E93 ẓ zdotbelow 0x1E97 ẗ tdieresis 0x2010 ‐ hyphentwo 0x2033 ″ second 0x2080 ₀ zeroinferior 0x2081 ₁ oneinferior 0x2082 ₂ twoinferior 0x2083 ₃ threeinferior 0x2084 ₄ fourinferior 0x2085 ₅ fiveinferior 0x2086 ₆ sixinferior 0x2087 ₇ seveninferior 0x2088 ₈ eightinferior 0x2089 ₉ nineinferior Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/PRO_drawn_26.txt000066400000000000000000000011111376445505300257150ustar00rootroot000000000000000x03C0 π pi 0x2113 ℓ literSign 0x212E ℮ estimated 0x221E ∞ infinity 0x2202 ∂ partialdiff 0x222B ∫ integral 0x221A √ radical 0x2211 ∑ summation 0x220F ∏ product 0x25CA ◊ lozenge 0x2205 ∅ emptyset 0x02BE ʾ ringhalfright 0x02BF ʿ ringhalfleft 0x02C8 ˈ verticallinemod 0x02CA ˊ secondtonechinese 0x02CB ˋ fourthtonechinese 0x02CC ˌ verticallinelowmod 0x2032 ′ prime 0x2070 ⁰ zerosuperior 0x2074 ⁴ foursuperior 0x2075 ⁵ fivesuperior 0x2076 ⁶ sixsuperior 0x2077 ⁷ sevensuperior 0x2078 ⁸ eightsuperior 0x2079 ⁹ ninesuperior Lib/gftools/encodings/GF Glyph Sets/glyphTypeSorting/PRO_either_4.txt000066400000000000000000000001441376445505300260030ustar00rootroot000000000000000x02BB ʻ commaturnedmod 0x02BC ʼ apostrophemod 0x2012 ‒ figuredash 0x2015 ― horizontalbar Lib/gftools/encodings/GF Glyph Sets/tutorials/000077500000000000000000000000001376445505300215135ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/tutorials/Glyphs/000077500000000000000000000000001376445505300227615ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/tutorials/Glyphs/CustomFilter.plist000066400000000000000000001252221376445505300264620ustar00rootroot00000000000000 list space nbspace A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Agrave agrave Aacute aacute Acircumflex acircumflex Atilde atilde Adieresis adieresis Amacron amacron Abreve abreve Aring aring Aringacute aringacute Adotbelow adotbelow Aogonek aogonek AE ae AEacute aeacute Cacute cacute Ccircumflex ccircumflex Ccaron ccaron Cdotaccent cdotaccent Ccedilla ccedilla Dcaron dcaron Dcroat dcroat Eth eth Egrave egrave Eacute eacute Ecircumflex ecircumflex Etilde etilde Ecaron ecaron Edieresis edieresis Emacron emacron Ebreve ebreve Edotaccent edotaccent Edotbelow edotbelow Eogonek eogonek Gcircumflex gcircumflex Gcaron gcaron Gbreve gbreve Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflex Hbar hbar idotless Igrave igrave Iacute iacute Icircumflex icircumflex Itilde itilde Idieresis idieresis Imacron imacron Ibreve ibreve Idotaccent idotaccent Idotbelow idotbelow Iogonek iogonek jdotless Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandic Lacute lacute Lcaron lcaron Lcommaaccent lcommaaccent Lslash lslash Ldot ldot Nacute nacute Ntilde ntilde Ncaron ncaron Ncommaaccent ncommaaccent Eng eng Ograve ograve Oacute oacute Ocircumflex ocircumflex Otilde otilde Odieresis odieresis Omacron omacron Obreve obreve Ohungarumlaut ohungarumlaut Odotbelow odotbelow Oogonek oogonek Oslash oslash Oslashacute oslashacute OE oe Racute racute Rcaron rcaron Rcommaaccent rcommaaccent Sacute sacute Scircumflex scircumflex Scaron scaron Scedilla scedilla Scommaaccent scommaaccent Germandbls germandbls Tcaron tcaron Tcedilla tcedilla Tcommaaccent tcommaaccent Tbar tbar Thorn thorn Ugrave ugrave Uacute uacute Ucircumflex ucircumflex Utilde utilde Udieresis udieresis Umacron umacron Ubreve ubreve Uring uring Uhungarumlaut uhungarumlaut Udotbelow udotbelow Uogonek uogonek Wgrave wgrave Wacute wacute Wcircumflex wcircumflex Wdieresis wdieresis Ygrave ygrave Yacute yacute Ycircumflex ycircumflex Ytilde ytilde Ydieresis ydieresis Ymacron ymacron Zacute zacute Zcaron zcaron Zdotaccent zdotaccent Schwa schwa DZcaron Dzcaron dzcaron LJ Lj lj NJ Nj nj Adblgrave adblgrave Ainvertedbreve ainvertedbreve Edblgrave edblgrave Einvertedbreve einvertedbreve Idblgrave idblgrave Iinvertedbreve iinvertedbreve Odblgrave odblgrave Oinvertedbreve oinvertedbreve Rdblgrave rdblgrave Rinvertedbreve rinvertedbreve Udblgrave udblgrave Uinvertedbreve uinvertedbreve Odieresismacron odieresismacron Otildemacron otildemacron Odotaccentmacron odotaccentmacron f_f fi fl f_f_i f_f_l ampersand at asterisk copyright registered trademark asciicircum asciitilde grave acute circumflex caron caroncomb.alt tilde dieresis macron apostrophemod firsttonechinese breve ring hungarumlaut dotaccent cedilla ogonek gravecomb acutecomb circumflexcomb tildecomb macroncomb brevecomb dotaccentcomb dieresiscomb hookabovecomb ringcomb hungarumlautcomb caroncomb breveinvertedcomb dblgravecomb horncomb dotbelowcomb dieresisbelowcomb commaaccentcomb commaturnedabovecomb cedillacomb ogonekcomb brevebelowcomb macronbelowcomb softhyphen hyphen endash emdash underscore period comma colon semicolon exclam exclamdown question questiondown ellipsis periodcentered periodcentered.loclCAT bulletoperator bullet slash backslash bar brokenbar parenleft parenright bracketleft bracketright braceleft braceright quotesingle quotedbl quoteleft quoteright quotedblleft quotedblright quotesinglbase quotedblbase guilsinglleft guilsinglright guillemetleft guillemetright paragraph numbersign zero one two three four five six seven eight nine fraction divisionslash onequarter onehalf threequarters degree percent perthousand plus minus plusminus equal notequal approxequal multiply less greater lessequal greaterequal divide logicalnot dagger daggerdbl section euro currency dollar cent florin sterling yen onesuperior twosuperior threesuperior foursuperior ordfeminine ordmasculine numero micro zero.lf one.lf two.lf three.lf four.lf five.lf six.lf seven.lf eight.lf nine.lf Abreveacute Abrevedotbelow Abrevegrave Abrevehookabove Abrevetilde Acircumflexacute Acircumflexdotbelow Acircumflexgrave Acircumflexhookabove Acircumflextilde Ahookabove Ecircumflexacute Ecircumflexdotbelow Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Ehookabove Ocircumflexacute Ocircumflexdotbelow Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde Ohookabove Ohorn Ohornacute Ohorndotbelow Ohorngrave Ohornhookabove Ohorntilde Uhookabove Uhorn Uhornacute Uhorndotbelow Uhorngrave Uhornhookabove Uhorntilde Ydotbelow Yhookabove abreveacute abrevedotbelow abrevegrave abrevehookabove abrevetilde acircumflexacute acircumflexdotbelow acircumflexgrave acircumflexhookabove acircumflextilde ahookabove ecircumflexacute ecircumflexdotbelow ecircumflexgrave ecircumflexhookabove ecircumflextilde ehookabove Ihookabove ihookabove ocircumflexacute ocircumflexdotbelow ocircumflexgrave ocircumflexhookabove ocircumflextilde ohookabove ohorn ohornacute ohorndotbelow ohorngrave ohornhookabove ohorntilde uhookabove uhorn uhornacute uhorndotbelow uhorngrave uhornhookabove uhorntilde ydotbelow yhookabove colonsign franc lira naira peseta won dong kip peso guarani cedi rupeeIndian liraTurkish manat ruble name GF Latin Plus list gravecomb.case acutecomb.case circumflexcomb.case tildecomb.case macroncomb.case brevecomb.case dotaccentcomb.case dieresiscomb.case hookabovecomb.case ringcomb.case hungarumlautcomb.case caroncomb.case breveinvertedcomb.case dblgravecomb.case horncomb.case dotbelowcomb.case dieresisbelowcomb.case commaaccentcomb.case commaturnedabovecomb.case cedillacomb.case ogonekcomb.case brevebelowcomb.case macronbelowcomb.case periodcentered.loclCAT.case zero.zero name GF Latin Plus Case Accents list zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr pi literSign Ohm estimated partialdiff increment product summation radical infinity integral lozenge emptyset commaturnedmod ringhalfright ringhalfleft verticallinemod secondtonechinese fourthtonechinese verticallinelowmod Ccedillaacute ccedillaacute Ddotbelow ddotbelow Dlinebelow dlinebelow Emacrongrave emacrongrave Emacronacute emacronacute Ecedillabreve ecedillabreve Gmacron gmacron Hdotbelow hdotbelow Hbrevebelow hbrevebelow Idieresisacute idieresisacute Ldotbelow ldotbelow Llinebelow llinebelow Mdotbelow mdotbelow Ndotaccent ndotaccent Ndotbelow ndotbelow Nlinebelow nlinebelow Otildeacute otildeacute Otildedieresis otildedieresis Omacrongrave omacrongrave Omacronacute omacronacute Rdotbelow rdotbelow Rlinebelow rlinebelow Sdotaccent sdotaccent Sdotbelow sdotbelow Sacutedotaccent sacutedotaccent Scarondotaccent scarondotaccent Sdotbelowdotaccent sdotbelowdotaccent Tdotbelow tdotbelow Tlinebelow tlinebelow Utildeacute utildeacute Umacrondieresis umacrondieresis Ydotaccent ydotaccent Zdotbelow zdotbelow tdieresis figurespace punctuationspace thinspace hairspace zerowidthspace hyphentwo figuredash horizontalbar prime second zerosuperior foursuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior seveninferior eightinferior nineinferior zero.subs one.subs two.subs three.subs four.subs five.subs six.subs seven.subs eight.subs nine.subs name GF Latin Pro list at.case hyphen.case endash.case emdash.case periodcentered.case bullet.case slash.case backslash.case parenright.case bracketleft.case bracketright.case braceleft.case braceright.case guilsinglleft.case guilsinglright.case guillemetleft.case guillemetright.case zero.sups one.sups two.sups three.sups four.sups five.sups six.sups seven.sups eight.sups nine.sups zero.sinf one.sinf two.sinf three.sinf four.sinf five.sinf six.sinf seven.sinf eight.sinf nine.sinf name GF Latin Pro Optional list onethird twothirds oneeighth threeeighths fiveeighths seveneighths leftArrow upArrow rightArrow downArrow blackSquare whiteSquare upBlackTriangle upWhiteTriangle rightBlackTriangle rightWhiteTriangle downBlackTriangle downWhiteTriangle leftBlackTriangle leftWhiteTriangle blackDiamond whiteDiamond a.sc aacute.sc abreve.sc abreveacute.sc abrevedotbelow.sc abrevegrave.sc abrevehookabove.sc abrevetilde.sc acircumflex.sc acircumflexacute.sc acircumflexdotbelow.sc acircumflexgrave.sc acircumflexhookabove.sc acircumflextilde.sc adieresis.sc adotbelow.sc agrave.sc ahookabove.sc amacron.sc aogonek.sc aring.sc aringacute.sc atilde.sc ae.sc aeacute.sc b.sc c.sc cacute.sc ccaron.sc ccedilla.sc ccircumflex.sc cdotaccent.sc d.sc eth.sc dcaron.sc dcroat.sc e.sc eacute.sc ebreve.sc ecaron.sc ecircumflex.sc ecircumflexacute.sc ecircumflexdotbelow.sc ecircumflexgrave.sc ecircumflexhookabove.sc ecircumflextilde.sc edieresis.sc edotaccent.sc edotbelow.sc egrave.sc ehookabove.sc emacron.sc eogonek.sc etilde.sc f.sc g.sc gbreve.sc gcaron.sc gcircumflex.sc gcommaaccent.sc gdotaccent.sc h.sc hbar.sc hcircumflex.sc i.sc idotless.sc iacute.sc ibreve.sc icircumflex.sc idieresis.sc idotbelow.sc igrave.sc imacron.sc iogonek.sc itilde.sc j.sc jcircumflex.sc k.sc kcommaaccent.sc kgreenlandic.sc l.sc lacute.sc lcaron.sc lcommaaccent.sc ldot.sc lslash.sc m.sc n.sc nacute.sc ncaron.sc ncommaaccent.sc eng.sc ntilde.sc o.sc oacute.sc obreve.sc ocircumflex.sc ocircumflexacute.sc ocircumflexdotbelow.sc ocircumflexgrave.sc ocircumflexhookabove.sc ocircumflextilde.sc odieresis.sc odotbelow.sc ograve.sc ohookabove.sc ohorn.sc ohornacute.sc ohorndotbelow.sc ohorngrave.sc ohornhookabove.sc ohorntilde.sc ohungarumlaut.sc omacron.sc oogonek.sc oslash.sc oslashacute.sc otilde.sc oe.sc p.sc thorn.sc q.sc r.sc racute.sc rcaron.sc rcommaaccent.sc s.sc sacute.sc scaron.sc scedilla.sc scircumflex.sc scommaaccent.sc germandbls.sc schwa.sc t.sc tbar.sc tcaron.sc tcedilla.sc tcommaaccent.sc u.sc uacute.sc ubreve.sc ucircumflex.sc udieresis.sc udotbelow.sc ugrave.sc uhorn.sc uhornacute.sc uhorndotbelow.sc uhorngrave.sc uhornhookabove.sc uhorntilde.sc uhungarumlaut.sc umacron.sc dzcaron.sc lj.sc nj.sc adblgrave.sc ainvertedbreve.sc edblgrave.sc einvertedbreve.sc idblgrave.sc iinvertedbreve.sc odblgrave.sc oinvertedbreve.sc rdblgrave.sc rinvertedbreve.sc udblgrave.sc uinvertedbreve.sc odieresismacron.sc otildemacron.sc odotaccentmacron.sc ccedillaacute.sc ddotbelow.sc dlinebelow.sc emacrongrave.sc emacronacute.sc ecedillabreve.sc gmacron.sc hdotbelow.sc hbrevebelow.sc idieresisacute.sc ldotbelow.sc llinebelow.sc mdotbelow.sc ndotaccent.sc ndotbelow.sc nlinebelow.sc otildeacute.sc otildedieresis.sc omacrongrave.sc omacronacute.sc rdotbelow.sc rlinebelow.sc sdotaccent.sc sdotbelow.sc sacutedotaccent.sc scarondotaccent.sc sdotbelowdotaccent.sc tdotbelow.sc tlinebelow.sc utildeacute.sc umacrondieresis.sc ydotaccent.sc zdotbelow.sc tdieresis.sc ihookabove.sc uogonek.sc uring.sc utilde.sc v.sc w.sc wacute.sc wcircumflex.sc wdieresis.sc wgrave.sc x.sc y.sc yacute.sc ycircumflex.sc ydieresis.sc ydotbelow.sc ygrave.sc yhookabove.sc ymacron.sc ytilde.sc z.sc zacute.sc zcaron.sc zdotaccent.sc germandbls.alt.sc periodcentered.sc periodcentered.loclCAT.sc exclam.sc exclamdown.sc question.sc questiondown.sc quotedbl.sc quotedblleft.sc quotedblright.sc quoteleft.sc quoteright.sc quotesingle.sc ampersand.sc T_h c_t c_h s_t name GF Latin Expert list Iegrave-cy Io-cy Dje-cy Gje-cy E-cy Dze-cy I-cy Yi-cy Je-cy Lje-cy Nje-cy Tshe-cy Kje-cy Iigrave-cy Ushort-cy Dzhe-cy A-cy Be-cy Ve-cy Ge-cy De-cy Ie-cy Zhe-cy Ze-cy Ii-cy Iishort-cy Ka-cy El-cy Em-cy En-cy O-cy Pe-cy Er-cy Es-cy Te-cy U-cy Ef-cy Ha-cy Tse-cy Che-cy Sha-cy Shcha-cy Hardsign-cy Yeru-cy Softsign-cy Ereversed-cy Iu-cy Ia-cy a-cy be-cy ve-cy ge-cy de-cy ie-cy zhe-cy ze-cy ii-cy iishort-cy ka-cy el-cy em-cy en-cy o-cy pe-cy er-cy es-cy te-cy u-cy ef-cy ha-cy tse-cy che-cy sha-cy shcha-cy hardsign-cy yeru-cy softsign-cy ereversed-cy iu-cy ia-cy iegrave-cy io-cy dje-cy gje-cy e-cy dze-cy i-cy yi-cy je-cy lje-cy nje-cy tshe-cy kje-cy iigrave-cy ushort-cy dzhe-cy Yat-cy yat-cy Yusbig-cy yusbig-cy Fita-cy fita-cy Izhitsa-cy izhitsa-cy Gheupturn-cy gheupturn-cy Ghestroke-cy ghestroke-cy Ghemiddlehook-cy ghemiddlehook-cy Zhedescender-cy zhedescender-cy Zedescender-cy zedescender-cy Kadescender-cy kadescender-cy Kaverticalstroke-cy kaverticalstroke-cy Kabashkir-cy kabashkir-cy Endescender-cy endescender-cy Enghe-cy enghe-cy Esdescender-cy esdescender-cy Ustrait-cy ustrait-cy Ustraitstroke-cy ustraitstroke-cy Chedescender-cy chedescender-cy Cheverticalstroke-cy cheverticalstroke-cy Shha-cy shha-cy Palochka-cy Zhebreve-cy zhebreve-cy Chekhakassian-cy chekhakassian-cy palochka-cy Abreve-cy abreve-cy Adieresis-cy adieresis-cy Aie-cy aie-cy Iebreve-cy iebreve-cy Schwa-cy schwa-cy Zhedieresis-cy zhedieresis-cy Zedieresis-cy zedieresis-cy Imacron-cy imacron-cy Idieresis-cy idieresis-cy Odieresis-cy odieresis-cy Obarred-cy obarred-cy Umacron-cy umacron-cy Udieresis-cy udieresis-cy Uhungarumlaut-cy uhungarumlaut-cy Chedieresis-cy chedieresis-cy Gedescender-cy gedescender-cy Yerudieresis-cy yerudieresis-cy Qa-cy qa-cy We-cy we-cy Pedescender-cy pedescender-cy acutecomb apostrophemod brevecomb-cy commaaccentcomb gravecomb hryvnia tenge tugrik descender-cy descender-cy.case verticalbar-cy verticalbar-cy.case name GF Cyrillic Plus list De-cy.loclBGR Ii-cy.loclBGR Iishort-cy.loclBGR Iigrave-cy.loclBGR El-cy.loclBGR Ef-cy.loclBGR ve-cy.loclBGR ge-cy.loclBGR de-cy.loclBGR zhe-cy.loclBGR ze-cy.loclBGR ii-cy.loclBGR iishort-cy.loclBGR iigrave-cy.loclBGR ka-cy.loclBGR el-cy.loclBGR en-cy.loclBGR pe-cy.loclBGR te-cy.loclBGR tse-cy.loclBGR che-cy.loclBGR sha-cy.loclBGR shcha-cy.loclBGR softsign-cy.loclBGR hardsign-cy.loclBGR iu-cy.loclBGR be-cy.loclSRB ge-cy.loclSRB de-cy.loclSRB pe-cy.loclSRB te-cy.loclSRB gje-cy.loclMKD Ghestroke-cy.loclBSH ghestroke-cy.loclBSH Zedescender-cy.loclBSH zedescender-cy.loclBSH Esdescender-cy.loclBSH esdescender-cy.loclBSH Esdescender-cy.loclCHU esdescender-cy.loclCHU name GF Cyrillic Plus .locl list Iishorttail-cy iishorttail-cy Semisoftsign-cy semisoftsign-cy Ertick-cy ertick-cy Kastroke-cy kastroke-cy Pemiddlehook-cy pemiddlehook-cy Haabkhasian-cy haabkhasian-cy Tedescender-cy tedescender-cy Hadescender-cy hadescender-cy Tetse-cy tetse-cy Cheabkhasian-cy cheabkhasian-cy Chedescenderabkhasian-cy chedescenderabkhasian-cy Kahook-cy kahook-cy Eltail-cy eltail-cy Enhook-cy enhook-cy Entail-cy entail-cy Emtail-cy emtail-cy Schwadieresis-cy schwadieresis-cy Dzeabkhasian-cy dzeabkhasian-cy Obarreddieresis-cy obarreddieresis-cy Edieresis-cy edieresis-cy Gestrokehook-cy gestrokehook-cy Hahook-cy hahook-cy Hastroke-cy hastroke-cy Reversedze-cy reversedze-cy Elhook-cy elhook-cy Shhadescender-cy shhadescender-cy EnLeftHook-cy enlefthook-cy Eldescender-cy eldescender-cy name GF Cyrillic Pro list Omega-cy omega-cy Eiotified-cy eiotified-cy Yuslittle-cy yuslittle-cy Yuslittleiotified-cy yuslittleiotified-cy Yusbigiotified-cy yusbigiotified-cy Ksi-cy ksi-cy Psi-cy psi-cy Izhitsadblgrave-cy izhitsadblgrave-cy Uk-cy uk-cy uni047A uni047B uni047C uni047D uni047E uni047F Koppa-cy koppa-cy thousand-cy titlocomb-cy palatalizationcomb-cy dasiapneumatacomb-cy psilipneumatacomb-cy pokrytiecomb-cy hundredthousandssigncomb-cy millionssigncomb-cy OmegaBroad-cy omegaBroad-cy name GF Cyrillic Historical Lib/gftools/encodings/GF Glyph Sets/tutorials/Glyphs/Info/000077500000000000000000000000001376445505300236545ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/tutorials/Glyphs/Info/GlyphData.xml000066400000000000000000002575541376445505300262750ustar00rootroot00000000000000 ]> Lib/gftools/encodings/GF Glyph Sets/tutorials/README.md000066400000000000000000000217011376445505300227730ustar00rootroot00000000000000## Glyphs App Tips #### List Filters for GF Encodings To create list filters for all new GF Encodings in one batch, you can copy this [*CustomFilter.plist*](Glyphs/CustomFilter.plist) file to your local *~/Library/Application Support/Glyphs/* folder. Copying this file will rewrite your old list filters. If you have filters you wish to keep, you can merge the two files, or add list filters manually as described in the [README.md](../README.md) ![List Filters](img/ListFilters.png) #### Custom GlyphsData XML for Cyrillic This custom GlyphsData XML file tells Glyphs what components should be placed for newly created Cyrillic Plus glyphs. It will greatly speed up your process. You need to place [*CustomFilter.plist*](Glyphs/CustomFilter.plist) in your *~/Library/Application Support/Glyphs/Info* folder. If you don't have an *Info* folder: create it. After copying custom List Filters, and GlyphsData XML your directory structure will look similar to this: ![](img/Directory.png) #### for GF Latin Glyph Sets Are you seeing empty cells in your newly generated glyphs? You can speed up your work by pasting in components to rapidly start your work. To generate new glyphs press *⌘-G* and paste in the respective code. If the chacaters already exist, choose *'replace'* from the popup menu. This will recreate your exising glyphs with components. ``` N.B. Using starting components will speed up your workflow. However the result will only be a starting point for the final design. ``` *GF Latin Plus* To get: | *⌘-G*, Paste this code: | ------------ | ------------- | Lining Figures | zero=zero.lf one=one.lf two=two.lf three=three.lf four=four.lf five=five.lf six=six.lf seven=seven.lf eight=eight.lf nine=nine.lf | Currencies | C+slash+slash=colonsign N+macron=naira P+macron=peseta W+macron=won d+macron+macron=dong K+macron=kip P+macron+macron=peso G+bar=guarani C+bar=cedi R+equal=rupeeIndian L+equal=liraTurkish bar=manat P+macron=ruble | ẞ | germandbsl=Germandbls ĸ | k=kgreenlandic Ŋ ŋ DŽ Dž dž| N+J=Eng n+j=eng D+Z+caroncomb=DZcaron D+z+caroncomb=Dzcaron d+z+caroncomb=dzcaron *GF Latin Pro* To get: | *⌘-G*, Paste this code: | ------------ | ------------- | Numerators from Lining Figures | zero=zero.numr one=one.numr two=two.numr three=three.numr four=four.numr five=five.numr six=six.numr seven=seven.numr eight=eight.numr nine=nine.numr Denominators from Numerators | zero.numr=zero.dnom one.numr=one.dnom two.numr=two.dnom three.numr=three.dnom four.numr=four.dnom five.numr=five.dnom six.numr=six.dnom seven.numr=seven.dnom eight.numr=eight.dnom nine.numr=nine.dnom There are two methods for generating Scientific Inferiors and Subscript Figures. *[Further Reading (Glyphs website)](https://www.glyphsapp.com/tutorials/superscript-and-subscript-figures)* **Recommended Method** If you want a different design for Scientific Inferiors and Subscript Figures, add a set of .sinf figures, and paste in this code to generate components. As a result, your Subscript Figures *(oneinferior)* will have unicode values, while Scientific Inferiors *(one.sinf)* will not. To get: | *⌘-G*, Paste this code: | --- | --- | Subscript Figures *(with Unicode)* | zero.numr=zeroinferior one.numr=oneinferior two.numr=twoinferior three.numr=threeinferior four.numr=fourinferior five.numr=fiveinferior six.numr=sixinferior seven.numr=seveninferior eight.numr=eightinferior nine.numr=nineinferior | Scientific Inferiors (no unicode)| zeroinferior=zero.sinf oneinferior=one.sinf twoinferior=two.sinf threeinferior=three.sinf fourinferior=four.sinf fiveinferior=five.sinf sixinferior=six.sinf seveninferior=seven.sinf eightinferior=eight.sinf nineinferior=nine.sinf | **Easy Method** If you want your Scientific Inferiors and Subscript Figures to match, rename all glyphs ending with *inferior* to *.subs* (i.e. *oneinferior > one.subs*). Glyphs will then autogenerate both .sinf and .subs features with identical characters. However, the figures will not have any unicode values. To get: | *⌘-G*, Paste this code: | --- | --- | Scientific Inferiors and Subscript *(no unicode)* | zero.numr=zero.subs one.numr=one.subs two.numr=two.subs three.numr=three.subs four.numr=four.subs five.numr=five.subs six.numr=six.subs seven.numr=seven.subs eight.numr=eight.subs nine.numr=nine.subs | #### for GF Cyrillic Glyph Sets Most of Cyrillic glyphs will already have starting components, if you include the special [GlyphData-GFCyrillic.xml](Cyrillic/GlyphData-GFCyrillic.xml) There may be certain glyphs that reqiure manual actions. *GF Cyrillic Plus* To get: | *⌘-G*, Paste this code: | ------------ | ------------- | ҽ | e+breve=cheabkhasian-cy | Ҥ ҥ| En-cy+Ge-cy=Enghe-cy en-cy+ge-cy=enghe-cy | Ҧ ҧ | Pe-cy+Dje-cy=Pemiddlehook-cy pe-cy+dje-cy=pemiddlehook-cy | *GF Cyrillic Plus: Localised variants* ![PoireOne localized variants](img/PoiretOne-locl.png) *localised Variants in Poiret One* Paste this code to quickly build starting components for you localised glyph variants. To get: | *⌘-G*, Paste this code: | ------------ | ------------- | Bulgarian | De-cy=De-cy.loclBGR Ii-cy=Ii-cy.loclBGR Iishort-cy=Iishort-cy.loclBGR Iigrave-cy=Iigrave-cy.loclBGR El-cy=El-cy.loclBGR Ef-cy=Ef-cy.loclBGR ve-cy=ve-cy.loclBGR s=ge-cy.loclBGR g=de-cy.loclBGR zhe-cy=zhe-cy.loclBGR ze-cy=ze-cy.loclBGR u=ii-cy.loclBGR u+brevecomb-cy=iishort-cy.loclBGR ugrave=iigrave-cy.loclBGR k=ka-cy.loclBGR el-cy=el-cy.loclBGR en-cy=en-cy.loclBGR n=pe-cy.loclBGR m=te-cy.loclBGR u+descender-cy=tse-cy.loclBGR che-cy=che-cy.loclBGR m=sha-cy.loclBGR m+descender-cy=shcha-cy.loclBGR | Serbian (Roman)| be-cy=be-cy.loclSRB Serbian (Italic) | imacron=ge-cy.loclSRB eth=de-cy.loclSRB n=pe-cy.loclSRB m=te-cy.loclSRB | Macedonian | ge-cy.loclSRB+acutecomb=gje-cy.loclMKD | Bashkir | F=Ghestroke-cy.loclBSH ghestroke-cy=ghestroke-cy.loclBSH Zedescender-cy=Zedescender-cy.loclBSH zedescender-cy=zedescender-cy.loclBSH Esdescender-cy=Esdescender-cy.loclBSH esdescender-cy=esdescender-cy.loclBSH | Chuvash | Ccedilla=Esdescender-cy.loclCHU ccedilla=esdescender-cy.loclCHU | *Cyrillic Small Caps (.sc)* To get: | *⌘-G*, Paste this code: | ------------ | ------------- | Cyrillic Small Caps | A-cy=a-cy.sc Be-cy=be-cy.sc Ve-cy=ve-cy.sc Ge-cy=ge-cy.sc Gje-cy=gje-cy.sc Gheupturn-cy=gheupturn-cy.sc De-cy=de-cy.sc Ie-cy=ie-cy.sc Iegrave-cy=iegrave-cy.sc Io-cy=io-cy.sc Zhe-cy=zhe-cy.sc Ze-cy=ze-cy.sc Ii-cy=ii-cy.sc Iishort-cy=iishort-cy.sc Iigrave-cy=iigrave-cy.sc Iishorttail-cy=iishorttail-cy.sc Ka-cy=ka-cy.sc Kje-cy=kje-cy.sc El-cy=el-cy.sc Em-cy=em-cy.sc En-cy=en-cy.sc O-cy=o-cy.sc Pe-cy=pe-cy.sc Er-cy=er-cy.sc Es-cy=es-cy.sc Te-cy=te-cy.sc U-cy=u-cy.sc Ushort-cy=ushort-cy.sc Ef-cy=ef-cy.sc Ha-cy=ha-cy.sc Che-cy=che-cy.sc Tse-cy=tse-cy.sc Sha-cy=sha-cy.sc Shcha-cy=shcha-cy.sc Dzhe-cy=dzhe-cy.sc Softsign-cy=softsign-cy.sc Hardsign-cy=hardsign-cy.sc Yeru-cy=yeru-cy.sc Lje-cy=lje-cy.sc Nje-cy=nje-cy.sc Dze-cy=dze-cy.sc E-cy=e-cy.sc Ereversed-cy=ereversed-cy.sc I-cy=i-cy.sc Yi-cy=yi-cy.sc Je-cy=je-cy.sc Tshe-cy=tshe-cy.sc Iu-cy=iu-cy.sc Ia-cy=ia-cy.sc Dje-cy=dje-cy.sc Yat-cy=yat-cy.sc Yusbig-cy=yusbig-cy.sc Yusbigiotified-cy=yusbigiotified-cy.sc Fita-cy=fita-cy.sc Izhitsa-cy=izhitsa-cy.sc Ghestroke-cy=ghestroke-cy.sc Ghemiddlehook-cy=ghemiddlehook-cy.sc Zhedescender-cy=zhedescender-cy.sc Zedescender-cy=zedescender-cy.sc Kadescender-cy=kadescender-cy.sc Kaverticalstroke-cy=kaverticalstroke-cy.sc Kastroke-cy=kastroke-cy.sc Kabashkir-cy=kabashkir-cy.sc Endescender-cy=endescender-cy.sc Pemiddlehook-cy=pemiddlehook-cy.sc Pedescender-cy=pedescender-cy.sc Haabkhasian-cy=haabkhasian-cy.sc Esdescender-cy=esdescender-cy.sc Tedescender-cy=tedescender-cy.sc Ustrait-cy=ustrait-cy.sc Ustraitstroke-cy=ustraitstroke-cy.sc Hadescender-cy=hadescender-cy.sc Chedescender-cy=chedescender-cy.sc Cheverticalstroke-cy=cheverticalstroke-cy.sc Shha-cy=shha-cy.sc Shhadescender-cy=shhadescender-cy.sc Cheabkhasian-cy=cheabkhasian-cy.sc Chedescenderabkhasian-cy=chedescenderabkhasian-cy.sc Palochka-cy=palochka-cy.sc Zhebreve-cy=zhebreve-cy.sc Kahook-cy=kahook-cy.sc Eltail-cy=eltail-cy.sc Enhook-cy=enhook-cy.sc Entail-cy=entail-cy.sc Chekhakassian-cy=chekhakassian-cy.sc Emtail-cy=emtail-cy.sc Abreve-cy=abreve-cy.sc Adieresis-cy=adieresis-cy.sc Iebreve-cy=iebreve-cy.sc Schwa-cy=schwa-cy.sc Schwadieresis-cy=schwadieresis-cy.sc Zhedieresis-cy=zhedieresis-cy.sc Zedieresis-cy=zedieresis-cy.sc Dzeabkhasian-cy=dzeabkhasian-cy.sc Imacron-cy=imacron-cy.sc Idieresis-cy=idieresis-cy.sc Odieresis-cy=odieresis-cy.sc Obarred-cy=obarred-cy.sc Obarreddieresis-cy=obarreddieresis-cy.sc Edieresis-cy=edieresis-cy.sc Umacron-cy=umacron-cy.sc Udieresis-cy=udieresis-cy.sc Uhungarumlaut-cy=uhungarumlaut-cy.sc Chedieresis-cy=chedieresis-cy.sc Gedescender-cy=gedescender-cy.sc Yerudieresis-cy=yerudieresis-cy.sc Gestrokehook-cy=gestrokehook-cy.sc Hahook-cy=hahook-cy.sc Hastroke-cy=hastroke-cy.sc Reversedze-cy=reversedze-cy.sc Elhook-cy=elhook-cy.sc Qa-cy=qa-cy.sc We-cy=we-cy.sc Koppa-cy=koppa-cy.sc Semisoftsign-cy=semisoftsign-cy.sc Ertick-cy=ertick-cy.sc | Created by Alexei Vanyashin @alexeiva July 11, 2016 Lib/gftools/encodings/GF Glyph Sets/tutorials/img/000077500000000000000000000000001376445505300222675ustar00rootroot00000000000000Lib/gftools/encodings/GF Glyph Sets/tutorials/img/Directory.png000066400000000000000000001044241376445505300247460ustar00rootroot00000000000000PNG  IHDR%3 iCCPICC ProfileHWTSIWR -)7Az;FHC ؑEׂEEW@\ kŮ,oQQł _ϙ7߻s7 , U /a&&%3Ib@(L ' PF˻,%9_EcDAc@|\-@zY ~ Ht֒TFBb Pga|v=,b'̄X iwq3u,&>eHdߒ-C6j0(Z3[mP ܑԈHU H%n((nľ k~l/bXK!ʊ,ڣ*=-gGY UQ.(/cZIG Y 9&a-1Gg%A6d .\ 4oO]G1QFf?0gp FK1Fmpc!gx07h۷Z8FX}1~W#CĖa)"vkLւc$xl%<٢ܲ`ިuua ~oϝ/3s|7#s|#!o#Kt'p)o:G@Mgnd2.y(t09G? $ Š`= @38 Ns27=6z 0ށ!AH #.bX 3#aH4 !%HRlFv uȯrB Hb(UEQct"zh,: MGsB]nDѽhz @ t<0K"d, b RVabq:- p6/WZ ?_û+F"X\ DB:aPAM8L8 N/HdMNpo&3s+[ē.bqD"i,HHO*!m"% ]%>ɺd[r9'+{WOCrJrFrrr9rvɵ](SL(XJ&e1e#rrF^^^_E~m%vA`QXPФpUᥢtB ŃW䔌|XJ *(RT+(G*(Pޣ|Q IX_RSJ}l.Yz*QD5X5SLujꀚZlJcjb0f37i|\øޫWR窗7PXѬ@4ל9KJfxnKW 2׊֚S]kP[G;P[IvCK'Sgq>].Ow L573y9'ۡס7o_ߨblfΠ`P0pa]#9#g F'/5n6~fnlRhRorߔfikZmz݌hleլ5w004bZ8Z,ZtM LpP=%۲޲ۊafUdlrk&:z="V׶lJv4v-v-UK8:9  R8rVur^|GWG|Yeq{6dwҮI=,bGv'˳󑗁kSo3L/}}>}=uoP087d!(4hMЭ``vp]@S3И͡ÄahxHFH6AITno&WN~m=/| =fF̞w>břƉſOK(O'NLx9I3ԒLJOޝ<8)SL9dikNϞ~l ֌)=)Yj`jp/{Njus=KwO_ޗQm ܖ>+2&k8;!1s⟙3s.D u]; C£NTìYg+nc>gӛx^|; R-4XXwQŔY/.*/z$aIkv➟/Q(Zt2|oYr囖-^*.(6?oyxeʎUVWW\㹦\gmڦuuޮb}Ŷ a[6nZ7*}*hmYV֫U^U ۴mM;; v>/ο]K F\]{Ωn֞UhoԽ4X6hd4E:l8dtha&iN@sF%HȑVÿYVsTh1cS>QxbdS=m3N<}3gC^8py'._8zKΗ/;^njwh?;;8]itluS|]7n޾56;w^-;to}J*j=FX_wGz=/=[Ӻgώu>Pɟnyi_^$~ƛoy7ƇڏJthg_̾~ z8gxXG 64- 5В( TٝQ²;Tɥ E3JlFSa/9~znH^,bh@jpxxh]N}!3v j~l^C/ pHYs%%IR$iTXtXML:com.adobe.xmp 426 236 ϒiDOTv(vv?6~'>IDATx} xTչB BBE*Z`+Hm*'֚zlx4rjPST" 5b_Ȑ}o^g2$0Z0{wwZaP( E /PD7G5K!P(0Q@!P(BET|wT B@iTP( F@iT}T "+P( F Ym =״r㕈 FXN!P(:@ՙsSL@SDVSzw"w3~ArI=#sI@5Z!P@UMCr ^w!<sVi~D%@,FG7"XEB@!,Qdž/H@ZFd u*L\]h hqчzP т| t @4W Cͅi!1z&Nh(Fğ#E/0}%N;Er5ŔtP(..~Վ;PVV֩9~!*.>Gbȯ*xF'jaH6a'tV(pR]q'Q…f><1}T(.Qcl6"9}x寱|?N3BrB/+E:X[yGw‰3apC1_`!` #qՋT.AjDL-tFJօ t &(4c}пms {?@xr{?&BnjB0etp%Kǘr/0AqL *.~wGuSNŭPJ"鶽-KdE~tʦ+ĤsZӅDPKD\xƞHUɐHgغxb\(}/=Os7x8 `m#c=ªⷑY <^n*mA8* c~)C=mT (y>9ď#0W!𛨚ꫯ@kQ ,pkddz`3Ut+I>Bwx8/MלxPeX d$5P!2; w_xXr>qUDLBQ;}ũhB@!eDT &*&,q#JŐ ˴8311xc[T8]HɲBL^fMXKD8 FJ~;Ƽ5&&z*efxImCٙQW1rىG^@K!]r^<ԙB@!:m޼~=.\DTAD0t<%H؈9[2S'#)ˤ%8Գӵx29"c_HrnAĘ"w+0KtKXjÃR u~ej[Nl(ȬN @ 0Qqq&%g?Hma={:Кt1iE3]3Wtd9f&LV$Cu5x*)*u3ͣn%DT "deoKt2 @ !bNJ-[ͼ.ܷ '4MwL!i\6a;*ɈmV4XP 3D +[p)Fe%"*,bYX? B 40Qqwz-9rֳ8PX bz*~P"F4W'>0 {II;JD!GIJL!j('LDddji=g% 2u"?j)>ZD @")tjjԧHr5Q ,d$$(5{JWvryTSU<(]T-j g{(IT>!L:BԘ_N#&'abmy{+pZSıcxiTZ =Xɨ0;fAܰ'V#eIRz'í{TB@!tcw&`5<1ۥxɊIgءSt4&)&%6.^$"Bۗc̜.{9<׽@ CD=;/DN_^E$hGJX&Ι$!11!O\xvsgB #Wʣǰr `Y5.u_~Zi'XYFek߷OcӢ8=uumbv'fQ B $ QuE*IU)$F_V W`к8^~XϭuT(|!Bm GD#!k_\ZnhF g]*>X( F)|YoƵ^+?3TUUoF~ZhıO}.|~ BT\$F#<2_4 xxh6~4߅‡_C`58O|7\ >-Lc[.UՁ|;'ߋٓ;2r}ahmѸ{lxޒ ۴Stz8G&w?kܖ&/qGs,(^Le\c$*֐k<䚂|ɓ3gN*+ 1 ͊HgXnt?I j<Ӱ *|Rll]ӈf&b%UX_KǷ[Sし8merl ʁfb5ґEm\~h\:pǐ}d l}|6l.{SXV//M +<)O&֣bRx{cEDUGD]{/;Z*(3Q1AFǬ,YIW璨\!{P!9?ЦX4iR虙+)B laN u[ տ yuʲK{JO#>%RsnDe-,x0n-ۤٗancȎF H1c N~&=^lH =OV#3f8X"@IY(߷ .{`+6WD tyϐ7yAl\j`^vs~ mRD%QI*33<BDVŤƮ۷o6˗ rb;* 8V᭧2.G?470^)[?;CTi(ۈX&9s< W_7ar2e ::' ypkH.[(.:SY~ZUv`4da8\j@1{5T40)+lPZ~([f!*&y1!6!)44eh [U6+.B9x ڎ3?{X6eネIiA6]m؍o s;|3pW&s3w =f;ɾT%5ڃ_Ed̙=DBƇ'ǰf|wv׫C8(hAN 3Og۶Qhv7+bme;p h<4˭x`x{wod޴; ϭNۃ9 !4ڕX#.\=ږ-[[lT?i&m٪jvڥ=z( aI +HKmsQYOuʌgXKwoT:FZKJ_an;>kwJ-'E/##SKOr[WZ4)S`OuIZ8OJw蘶nɴ_H)"֏`|L,f>z>>i6Q>'%u, ;FZV㒴8XYj)dVL9JH9d*l&{XQsX_f9s"hIV\e|SZpS}踜Ҩ.u6FŶ&^e5UV  &*""BT}R?"6,X>9W_}U/quaj1^imjT@S0;ݘ2l6(fjHڴ15,[;6$Z>Nw>e"2PB_X63FE`U<ވ ř]ش{Yds:={$~|>ˮcy6O9>Y f bV iï:CXXdGa|SAW EB? z>Fz9&mfzKȺ; Ɣ#C_;v#XwYä^]8#f5Bh!MxLL%&Oj.ٶ{w|uS!mpqե2Y*))AB#}QmƍU>}?,4*[co>([oF=miT&X;x/7ߎVZQ75$b6-Ǣ)7`|S`j[|? е)n\eo4le}jҊso)^KC7 tElqf4CS>g\5dGn n%i9&f wg5{c{o?Z?2QI߳ UuM5jm[aoӪ;|4 Ww0\od_fMMѳ_b~?=3SU^F5fQ-[L8E_*IŁ98m w_;v &&B FrDH]E9j?CWM X=ߌ]4[͋|@rdTQ|myt\O`|kG>>?~|>8a-{װe' >=UGnDO!rN,W R&5p c~8湙 m?ǍFr&ŎIM{)2ڽO䓦suZ {9Hȯ6%iO2ۑBҘ[4ùcMd_75Gt!m}[[72F&ܱf[L͢)sKިNvWz h޼yN?A#7so4֨ΝM]iÃ;2ma>yf**oQ7xШ,Y"/‹t+KFcI UlFզ/a7oW{(E VyFn{Ÿ{n>cXaB~g~e2}Af<:bފ2<}ZQbXQ")#2iZG{uF 6Xw}d+[17&ϵo t+kFQr۩6lؠvM7yp<9^h!`,6jXYYU6z0ͷ1?4m>Wyn<MmiHvd}cT[q ӋK9RRm&6\,|u68RF))=sFy}㞛g*Nג)ZͻѴӸʴ ]k$26>kq-ШNjxQ2*/L|S{>2-vչҨ@Q ۨXZhТ~ӟɿ@j5Đ "&ݻWL=tPZaknL-6μ HyP6gy2Ÿea"#9vjnCC*ah&g^50?4*ވ|䖼Y]ZoLao^f~x:E'Va3g7o=W[xg#-٢/ ;U‚qlr c s^M밷=dwLvǶWh_)ml$1HK [:=}1;|ϵk$;qNldOEf)j|~=5$ODeю<*eDؤh2dۇ[*+4*CeuF+h@JR-7fovGZk 9Q,oѐPcӄD; [QsΚ:ppm%*Q-;4? ^Z?AL|.e"m}Ak@ 6ҽZ bi2mm .}9ЫIx`$m]i)8Kyzz"vNEU@[-h6zܐy䕋=}ܡ~~+CZvETA#VbO>zAdk?hd՝#> ^1*p|5mD>9G8GڃS.ϭ |w\( !Q׿/C[cĉbԠģ H҈h'R?^3/T^Cq=@$ơ!+\Zs@x0\>QP;c&bO@ 2ڪ}6_) @D%+Ç˨%QǁH YDB-LL&p$jNjv+N0JL'"?elGD}jF[hʪB@!P@JVDÁL\ U Xg""br᡿0Bk[F"\ԈZ:X9,ϐ0,E\ ^>HΤ*:}{?yچC/%Z6[$qC#ݲB@!P@kɓ'@0.DV'h؏NtE\#ehsNrtA .fss{"1:#G*#9aq /);;oxLk&~r;^$SqhmfCq6b&|ⅵxgkK7*K,zg9~uuz\3VcMX[kI؛8AaCR]( t˄ՙ Xs"臛T")CkHp Cy.JAAPtCI-)%456 k\o `$<8*[3f$c+Y<1>84l@LE)ZM%X5`,F!zҎfwހŕB@!r<8i$r-p`%y=9D!' #i=vKq>f&c""bI<Ƕp&*;LeEΙ͚뱖*q@]"*'/9/A*Zwc<#,lMTxըl'I1sa 82[Uc/`/ft`3&Y7N EDˈJ\yV&:DTtpg!zT8 b#>g!2c=u2Ƥ%8Գӵx29HY" u3uok9ZV${O_nO@P!&cG~{N|T|\)BQ u8_snAĘzQD!P\D+pȑujmD#RqۨxXt8߈s&AD +:3qZ&+ࡿƺ<DezǞ<_?JfET/'m+%#y$G~+(#>D< "ڇÂ4/l6 MOQA!P\tx菇xCCQhBt{e a5!qP3&#Y<^?ÀB"by dӕ(Tre .'՜S7fv>/ $;Q+QYvy ]:|4OE+ nGKV3ŀ܎;"510>ș a$֪8ħ%11qe11q\3k}ő5ՕX;>)F$bҙ(уs˲3k\ё'LD wtڨD2 W^ P\<BTjjԧHr5Q !,dd%Q (]9]D_1HU?&% 4in$(~Ĺh#Xh&5SFt9ST3Pg1ۼ"*qSB 4QcΔ7nLha*XyVAA{l!lxx4:8k31o=f`uXthsUM^L횓^e1ͯxU<#{"XKJ4N EF z뭷dtoTFSHz .ūL0p Z9z֢8^~Xϭ[,Ķ DI<حY2H-H(&f,䇶2a .DÂ102ަz:MĜYՆSeU(|#Qo8a$''#""wɝLk߆!a`փwxڔTZ\4R8P4nyEEtBbdK3&ǵ`X0-?%ΒMk0klk2^Bⴕ9P@D5)HDuख़rطԩB@!BdTP&LNMoH#кdâKdNg'5yJ0J@Tj*1T?DGXñU=E?2diyW}U 2E꺹eܸ#;!HJD!0QIx8+T]#Ù\xO%ET·+"\Hy#Vcb%v qO% r^7uISdm^[ÝXfnݬ6%R󐕗)ExcXyRH{æW&[ZY:kCTEX4VY CDeZ_XrIB@!pY %DpqM7 sÁ'ٯz _ P;|D8ga-ezdΤ%8Գӵ~fO`Y%8UoڨnDelvQ5in{ΑEPY=I%~4e'#{{WoOGR-^.2JT6{Çן0){0 ę֗iGQ= ADLZ@$&^ё嘙HdE0 {'`-bvA11),;SAyBN`h"MX>Oykw(ZsM2ITV9l0IoJVhcܲtXu"F5%*@I.ں%U˰o[`2M7m-Bk\![; ;IDAT} TU׹D*=RIcT> c:2ꚷcl[|xn9g=meE bΪb-mޫ=[=ZR-HҢ/2¶_L1ecjT^z$uɿP5~1e,pbbXUKƎ"̡N԰/Ɉ{D\Sez`6L)Way'4u0sL @1LTk?s n\Ob&>Häl#DF_aW)ҵ]H߰>8[UgD|;NlFeܤ%$'SK4c5>ƒ@#9o LX)#NTe# *N2-+!"<`b>A$3 7 %`+?NǪ/y fz;ѯ*S5D@"ps#4Q111A1QuG`V:B ԗ_A9ٔ.4b^8K":"@TpkjxUj5&= ,⺮[٬p)R[|gl@z9VLZOz]}˧5LHnJ&*6}HLL23'/\K_AQDHvD6Q0)1 1Av=їOYx'33U m!. 7 T{o[7nuijeƊcO,'N[ { B-8)yuxQ#߶L Y3?-T#I1J>U5 {^MfrubxaXF8OaOxunM^ +3'H]LH$"}a֬Y]nH=ԑFG!QT3uɆ ֔聍lLZ8+ߛè3[pBs3Dfc`fe=:rjtĀ( 䦻tգNgj3> h~#*1!G߹nB \ 򕹫*Hz5UO|S3|vGd\斮%娚Q[DsOlc2jڵ:*;yK<6!{{!Ж M@U[[LDOD@׈qˆɇɊ_89cMAX c =oR߿x|Ki^D#DŞ~ab_w6Ӈ4mn6k+t{#%Hn\BtȻdH$E *tI$@O 'PmH$@H :YP" Hz0O^!H$7<nW,;(Hz7zK$IT7+H$ITI% @HUVi|/ h4!f m$M@+(VlLe G7 zS&c\{|棸7zJ3S}C}JA U$zD^ѐ!Cv5vX=K:Q *Idrc:pDUR}q"y UYI*O ⲜF W逪uy0DpS(||zNf7QQ<9`^SsKcYhcceBl[8zVWՀD@"`B h`bs WW ́apC1O%ET·+"'؏ΗkFJO%*RɌIo ڑO7ӑ{d'B .UG24&.[ڀeScԊBYA)9֞ѵ5݁/_:<\RrJh~,ɔҌMR]}++/%K#W_ބM~70; FESmJ&JERn#U" иȦLO`b9ϝhC@H% YdhX$ؔ[1?u&zxpT"Sf!&2M{DF[!csokO0pP4'杈pHkv>"fADBϦ>DELN"<EѸFL|fMD˽}6o bj_-?>ۈNj&+a Dut|L[3\" +E_a|MLD7ڮ]6{"dLiy YWhɦaa&Sl,]E2m W D@"p#mDkހ́DT'5D8Fea<%H؈9,yD>4~&~)_eӇ[V]ꃙDu%?P8u x̾F*K`DW-KR;<[bބ|_1.5hv 2dH$:=BT8~xMLT/#rP"uzl5%qϤ#I13q>NdErO)ڼT7wu6h۵+aQ9kvaڨTͤиH~?1 ~I2MO"qTviT)i=L<=J$7=FTlc2Fub՝)@FL$I1SlgS 3D w:xņsxABTExH-t3Qq+5DJL7fLܘJvc> ^w`K$gvXD@""-Dkؙ"&FW%k"5aXl<ș ZkUXS[֒xt}. }4 G6Ehr~*15 %j6=; DTI5 HGѕH1) "aG>(Q<'q^v`^\YdMD5v¼J4fk-j1+aW.-g%Frk`&EY(:6AZ۵fﳹm^zu:QWw|?oᥥkLho-roA+\I"  :M|pF&2&GHY{bb2bbN3{2q?x|~55x~`2OTAOmz4Gah=PQk=_ݓ5.? ۮ&m8,hzN'HdNcyx /߅Y-".v_㭘^KgotJC%G2 ɳߥg+a,^W.15xh}7kҨi:Rӳ?OB#X ͭKeD@"p!4Qu.`gZ:B Rlcbn8x.22)A0":"爨;aZfZm[+(jCs"53 c͒]0`#nOAUih+-b+.EV(H%6:o{O!vUD/ )Y±ϥX .K;#4 ah{ťCl1'{gu;[KU^I$B d=sM}hU_RCwWzOJ: yy-#%uG dJGHJF fr8TGsh.,.LED@" ^ϡFajQdi!"^H%3&hG[NTɫ }pW˰Ǩm N17Vetͩ-1uFTp~ۓCT$&*naW눨^""ЂNv4=G5" IIh\%Zx:g rcs9v oz;Qm<ߩI5Gk0jjajbݸՂcC|˔>CO!̜`A8umŮ j1f؆9*;~g{1}UE Km3Reߎ8dG>cu7' '0eo8M*1=<7Tوu{T y?Fڈ偉?|GT "f{*-~Ƃ3orcطhC1?CD]l`8U" `t(Y9s&LT9_Q :mINp ݈{g6zf6լK5ep"klNDv";~%`+yv0dkKCA N|6ꃽVǢ|vBf_&+͈yv൬92rv`BZpՒLoϿ`3ɹX͖O1X榌XX>D"o*+F1Z0ǘ;-*sTd>ۏbp4U+o%%*O&*&Θ.`}9< I%b5#vૡaQLVaS<(`,3 [RK3kb`89h+4e%zOJ*3$'cRq2 #gXMly,KxE5̌Dp .seelmq1}jqZ͸Y圷"0q-izoQü c;kܜGIK^e|'XS2pbV`q4#$7=]Qds)Sp]wr:{t M&:2\#e;311S}ݶ V-g,3"@b-.5%$X1n!*^[CDjͩv '9SPy֚XKbkJ|ZsYL`Ld_e8|-&D3EsT+V`}e2{0ojh{9&f(M/'L70ә@k2gOW뿰zk)t 7?Es4M+k'kjDT1/Xv@ٙ"b]sLT=4ZlH0n<?jx"*ώ_~4;w:ZP_SᅢME[4VKo^&4F Qayʽ`[u'*aA֬e:$*KDZêdM@hTxmElC܈DF| =kOBLFLZIB##~fO@ݕ|Wi:CT^gyM4yّŎØcZkwX$^;7dϙ-LQA\mHrmOŒ/ZM?H.:ؽV2y!BS45U"ﷃL{Yt6g QQ$0r::n(}>`6=~Y˸m]g"ד^TGXtcu8zRFJnZ:MT _3 }&97z iB*kXcbRvuXKLRLNb>-".v_CW渾٪*UU {٦m\8{d~-S؀aN+?=oؖOKK^ +3 ZIbA+]Ua͊=ԄK ]2ȩ# 2ect2sAk-!8-UM@@Do߾n)[#j}%ďCdmBed]&l8h<%6zూIg{s<=S鏪rHa@T EF:bHyN'x9<e]_ [SGm|qFU! "947E}4V~%ͭj_1Ȟb^@@DՓ=:Ԍ-C_lsKWI'fEC ěъtb2jg͂ JS"O6_v'"/|h=ٽ۲_l6!K$E d}Q5>? xomV[W*p:3vsD4„;EyJvǰ($G̡xDoE$ !KT&)6uG`_Z`՗T/nE)D@" %*;ERzLV2H$@"DI$D'D(6$D h$Q ,(H$=@uBOH/ېH$IT7+H$^AT~Y\|٧:GC{K$@W['K.:N/xXu뭷 r,#$DW!+kllڪfI󕉬N<7| D@"{DP[ZZ0l00ir:kUhֈAnCΰD@"*6n .22qW3Ao@\AfF.FE&=\-SOmmr9NSW_}|g}>|X)++S٢s*i&Uj(24Ҵi)ev&k>6)/Լk>x12ȸ}:wA~ ^|=3{|\&u]cM7!:q)OAQ<2}_%` H-ŎeSN .@yxOq4 ` F9ϝqE= mcRn=Yy1& 4'2x;N|Exֺ5u1-HA՞|l}%T?l 5.ʅ 5ap[[q|bmWދ6.' qK]?lz'aDӏ1Gh[:+>Oݍa:@kG|no^e8LONB叇B{3,%~#}555ݻw+ʧ~?~\υĚkZ￯| 믿SvR)CThl*44ųԪhk5?[jmۇ$/Zr TMY(f}R+4L2w]Y+-=zOj(؞vn ;@`ڣرctbsN>VN8!}555DŁ- .JBT4|U+e4x5A1ꣁ|A3%]/ܩ*i&20Jdde+z9貳).K_irkfnRTj +t٩?9$e)9nzJf"״2S>00rpT2 \JB%P`…J7gDd(5:ӲrLމ9:@mkZzinFzNP5O7 \ߪ@#*&&/G}5>@)))RoreΝb*v2{Yuh*57`׮()i ɨԏ9r`uNϿtJJK*q lEmd<v|;.l煨|ˏ2%]#0F쒍LJaB6kڕZ7ͻU󟶿 ?1pϓ\4خ7+Id1F^y#^GTlcMɓƇ%}I)РpY]ރ {5Xoo 2eb`ě/-jhf9]bW&S,&헹3QJQ~H_%פXzl2y8Ф9Y Um*Z̏LnMu\+wjڲo7Wl ^~$ꫧ eD@#*֨>CСCƇ+֘׿ Jqqа8tbb0vo5@GM-s^u]&<5+uOg>oD|rz˯ExsV<{7g<]1sO.iFOV]Kj65k{tڈx!*E)6?*yJqi9}mdJ>JEW/VsQEh 6Uuu.8]Y2kT\gղӼ1wƒ|_R1px#x˯M-ph!n3BaI]3zcNwkjVRiѾBF^W@:bȬ%tQùO>sXLfe\QqYn*#T%gkFt:ZW(_@qΠo׀dJT1psg]~(eJ樣;ќgyL; 8諭Fo \ت*9h'-Ҝ-\hWD z%Q10 dx-XbG vA㻌LNMH.g׼G?z{R?0 07oծeh&To&*CK4w>ޯ{GZ 5'^g@RPP/Ҟ9X5AV{$T]ۅ[UK^% 눊wL< w`g 9b2M*Oh&'a sm.*3p\ݝ6oגr/Fi1p@){5ۧlݺUy뭷;v<{Q8]1)D UidQ΄ЮԕܘI53/5I Nf 8[%,Pu M­lBn&㭛ԬBX)*6(4ipY]T'NYEF~o\HQyA>ֲS)*"YT 'ze3EgJ}1&ָJ `BU*\efQYRdzز)N Pоxl9V$? )53Ol}Չ91[1 *{zyZ5[͂{oUvfôW]SDRv~Ҥ.:ƕv),ii9*K_=M\oN^ƅѶFlݮaZeȴ*BCw7SlI?ĕ_=%-64ih$DFF<0bbڤ$:Pj(s>ÇIT8C! *^"DKy)y~|>9PXL}e&ʣ̖yf2Hn^BXSb3@')'>$Q?(Q?4{~|ρ󇇇cd H$@CG^}Bcb͊<4'PXXbM)"""BH$FWUc"H$B@U )D@" #ƋbݣeD@" HBITD@"IT^D@"H H$/HH$@@Uh)D@" xA@`dD@" B=H)$D #%D 4DAJ!H$^6J5lIENDB`Lib/gftools/encodings/GF Glyph Sets/tutorials/img/ListFilters.png000066400000000000000000003003471376445505300252500ustar00rootroot00000000000000PNG  IHDR+ iCCPICC ProfileHWTSIWR -)7Az;FHC ؑEׂEEW@\ kŮ,oQQł _ϙ7߻s7 , U /a&&%3Ib@(L ' PF˻,%9_EcDAc@|\-@zY ~ Ht֒TFBb Pga|v=,b'̄X iwq3u,&>eHdߒ-C6j0(Z3[mP ܑԈHU H%n((nľ k~l/bXK!ʊ,ڣ*=-gGY UQ.(/cZIG Y 9&a-1Gg%A6d .\ 4oO]G1QFf?0gp FK1Fmpc!gx07h۷Z8FX}1~W#CĖa)"vkLւc$xl%<٢ܲ`ިuua ~oϝ/3s|7#s|#!o#Kt'p)o:G@Mgnd2.y(t09G? $ Š`= @38 Ns27=6z 0ށ!AH #.bX 3#aH4 !%HRlFv uȯrB Hb(UEQct"zh,: MGsB]nDѽhz @ t<0K"d, b RVabq:- p6/WZ ?_û+F"X\ DB:aPAM8L8 N/HdMNpo&3s+[ē.bqD"i,HHO*!m"% ]%>ɺd[r9'+{WOCrJrFrrr9rvɵ](SL(XJ&e1e#rrF^^^_E~m%vA`QXPФpUᥢtB ŃW䔌|XJ *(RT+(G*(Pޣ|Q IX_RSJ}l.Yz*QD5X5SLujꀚZlJcjb0f37i|\øޫWR窗7PXѬ@4ל9KJfxnKW 2׊֚S]kP[G;P[IvCK'Sgq>].Ow L573y9'ۡס7o_ߨblfΠ`P0pa]#9#g F'/5n6~fnlRhRorߔfikZmz݌hleլ5w004bZ8Z,ZtM LpP=%۲޲ۊafUdlrk&:z="V׶lJv4v-v-UK8:9  R8rVur^|GWG|Yeq{6dwҮI=,bGv'˳󑗁kSo3L/}}>}=uoP087d!(4hMЭ``vp]@S3И͡ÄahxHFH6AITno&WN~m=/| =fF̞w>břƉſOK(O'NLx9I3ԒLJOޝ<8)SL9dikNϞ~l ֌)=)Yj`jp/{Njus=KwO_ޗQm ܖ>+2&k8;!1s⟙3s.D u]; C£NTìYg+nc>gӛx^|; R-4XXwQŔY/.*/z$aIkv➟/Q(Zt2|oYr囖-^*.(6?oyxeʎUVWW\㹦\gmڦuuޮb}Ŷ a[6nZ7*}*hmYV֫U^U ۴mM;; v>/ο]K F\]{Ωn֞UhoԽ4X6hd4E:l8dtha&iN@sF%HȑVÿYVsTh1cS>QxbdS=m3N<}3gC^8py'._8zKΗ/;^njwh?;;8]itluS|]7n޾56;w^-;to}J*j=FX_wGz=/=[Ӻgώu>Pɟnyi_^$~ƛoy7ƇڏJthg_̾~ z8gxXG 64- 5В( TٝQ²;Tɥ E3JlFSa/9~znH^,bh@jpxxh]N}!3v j~l^C/ pHYs%%IR$iTXtXML:com.adobe.xmp 490 440 liDOT(Q}k@IDATx} |յH$ A"PԪh}z׶bժzWmb}!(**AQAT@ $!gf̞=3''!K~o3k=39G'GQB7-j?X+LBp%Ga^Wi?0zp*\1)-@Zg-c+h&gIcT&ip ;ObrVk|HC 1iL3'^(/RRՀDm8ɁU%zsSiYsñ)EHf1Ȭ*!<*g#\*g73E~Ozw dY=%3erSI° }a1Ա8‘`J蓨 ||iv2? ]kk2 f ܠiW6D:_9.##Z |oֱ  IDN]E`R$ fQcqPw/ ]n>E0nEYfO*\0ϼ+ ᨏ>bFDDdǰcٰ bR_fZTYMP3$Z\!'L1"@\Д +6Q2F)l_a!c!d=BtTx>όƋnE@>1yսXFCl CYF'C^VB* UP'9˜V,誼W9ؘjLUDpw=6pvMe_x(b.(e)#,1ZBJ xp&߉"0ȁ BBp\c8'l,}qhr3M.]Ue^9;PaMiُ@EEG OJ(u8F3^YF'MW3jXLY!4,h r(pr0Q8Njζ>ר EK9:f(pmMWU$DQzq(k/m,횡H/  )o+)Rvh%f*@7Q ZY5kG%]ըvcK9qDN  7F<6v s+iX&/l2sdD!bE@.YW5*l,pU#MQ8KiqMs\gip^Nf-So7, ulD&6UngʼnV7w{"Ұ:Q$m4e,0 Ȯ qC8{ͺO9[Ͱo LI.QR`Qke րɥHTg jc MF3$(f( j B˘IeI`D؎i3e* $%4D@g/L;: &o8kXlDT1|NN>Tk6?h%p]"lGm;b]qIH$ddD9dMIAmǶ"Sݴ2f$udoB,Aʐ6Oh5n6}%]"UVk԰\-AIҜQ܋jvh-P `v2#a@l4hJ}'{mz\`54:`JsbUŒpS$ ZNZD]{7B[-[BuuMaQ3m܇lr"\c[us39sV[cwcwtKUJE}g(e FO&쪭FH9#g5>ivZ_yR'nl6xiOۢa ɝ$++QW}:~pփq5?Cv݉1v8ppx[O?'[ a>!iŕw_\XSk,E3t &O>z?;/>*v"}ǝc <9(lSsS%. 0pÎ,fvV쌢w v@غ|: y <ѡm2`E(%E'd$Xާ? l=xͩ˔ˌD}2%CDj7 D]%ᘜĠ_%1nA5NWg(T<`i4[{QU L>R,b0C56*#Y W5׆^n=ٽس˙q, 缆aM{ZbH#,`.B@m }F| JԻ /{jssu޽KFǁFqZ_RE&N9rw6-Qv3qRa7xxoGz=[w’Y&0k0֦pJ;9E5!FxB5ԻC"h|Gr{"au-樸 ֓Pgb_tuZ|sN}&j@5MaLp`Heh<"Г GHh 6  <]s^^]x+=ӷJ1" ۦC"(TTԡ3*Ԙ @2(t h6E<:I?[ݶ!v:*aT)$mv|K.Q;pY9/+s6XB %d-U[Dm_zcZu@Q'M ́D*R XfĭVwV#48 ZC pTo|AÍٴhݮ=^{%hJ}gsZҴMx TDyx,=H+4E6Bcw8.Gŏ oP4c6ٹK08`X% CO{_ᓞstL_pduy9-q75pbyw G_6%[gZ/qWdɚ_]}.SV[nSTR0Yg.QWeV_Io[2rbQzDN*.߶ 8O@)\F3QK:NJ_$T34f=y;^Ye\wn7v5?s$G})G4Uo?'eIOpc]\n *}JJf9$QjŦ_[IDNB$?5r0M7qo!RLe=BV&jz:w)P+ 쑝9S0H#e^h.AZ쏓Ξ< ;8Qn>/Zpx g>"~][قyXѼJn#񧞏nzL 1Ty3|9y*GCpl5j4_ ɴ^f_@e~qF0pT.][hN2BK9\:~i܇GL#S٘16DEGKѸH91ք̸-dրn$jwq[ػ<$j!IE,^2'G䭁`XB G l'M2BDc<5mj#NNB^RAyO[E#]K#/cm)eWB_}qĞBs6A*u_.szfFqcsS޷cAhx)X7T4cš!DXnydqʷC#8wRJ)skrwlߌ6mŮ:mvDqq%,@Y.  Wl6bS/-%>pD.;./1'Yyc'Ax0a+~x/ܜ2vޗaS4mC⪦S \O*7YN.n2%^Pb\L3ݜ3(c4PTR6怀)!MJxՈd["76F8K 桲%Ӝ dey%}H!FWX'{prUP!jsҀ}H;oO-WE7#asHZWp1 TMa5[F0IarcFG=>_!fW K-%"q Uv'n6K#Ypw Dާ INY_ʢ=!T2RsUh_IvoQXIAdj̼:@/zAcÉ;-6z&uіq *qj\Q&Ӷ`%#*)VFcXP&) 'ƅCJ؜xH" QJY ))jQ#5{,a{ƑCk Ǐab$(JZDXT;EbU eR|(? lp7h-U5x MI17'5ފ`&<?>gaI+ $`f&ӛ»3$meV<mѱvTl\ ]N MI1~޺"g(:&ly$aم`X fx&jLm׎Ц)U}~0mm)AjAqLRTØ!Dy~y`X~6U;QU x~"K'! % ܖh m QܹJN d&jMT];(0]r2SU6%mRB]W o FÖ p)TT&QpǷ/F >x9aBE!^sL`y7Z&u5.eopV(vL {LB[qeo6blʨtFdQS=Xl%>Y ex A9`v&!&vǠC{E /e"MMlTeI)>S56rhF0,IB0/S ߾!Fܙ+ lD}aIY/&W8T 7JYmqA aپ͙.8jx|9C "vVc[e-rۡ}AȤ>Zv#D{Ր` ,9?O$r[ 7l~Ef> mGq;ʱzoV{X"X];oy0ᄱ씷tB?g> ޜ .v-]%/ o+7mQo ?9HU*ʑ{B a#PgnrZ~+-E,lj9T5r6蔵b.'<+^Fq`[MlF`2zkۿFJ"zwEUj-H>W/VБGbT}| K1uŘ4Pt-vmo/²-{:Jr1<}-zsV9ÿE8y`tWbvRkS3 X[XVeR!%.?~xi!=0/gcµDPohh9 5mw^~Vaӟxu껅*p/os\6-{XF o?Г=r)%j@Pt q-1c5/z>)X䆜\CUxiY2O=p,orgI]uUjqf_|Z8'>#blWOsmZDS zJU5+l ;}q܉#!,QۍTj6/q/%;XvrÏ0? tE0'L8S\ u9Ƕ忓ˠ;m}m(0%5q[7PRYkҟnO܁aj 6+7 XbLcCf Dw~j_t>׊x a%`Nn =u:>s%"J35FS4t s;rUr V<=hէf6`g׎زcz}*]Mi%V8d^UݠE ݜ' atHӋWWԦ KǴ]h}m9-t8GkPNS~1UmTح[?8BԕH[‰EowKoD#-Q)^ {$=pi#g-ۦu 큓;`_`׈ۉ^K9QgDh $k4L\(OP,[ќq묹\c45'j@gTf2VДTD>d_? x͇yMzJgr|˦ht0ΝCZ߷-GԔGN~$eE]ҁv}^D;i:Bbgx~׌_< 4)GOmaYcG81 Qv-ςq^\qTwA۳yҕxO- j>L%lp$ ViN]B;kķyW->x؏q7Fuj\~AV57nE-8[wn݌mnk7|/ {rQڷ]זzkZ,gٍ}Wĕ@S>ԛqi쟨+QYktְ8l\eX~#v!]{Q^us[%i3me(1)[Rg󔹩uӵaDm^׮<?dz tjwZc qP+4%g?atQ;|O翎GE}`h\fq P~1̈vo~=#jɉ+&ꀨi"ĐJv7ݿ/\ -?h]\LyuSp8dqK-R"5faL"yy"|ÏEQ1jJ{4ʭXv->^cdHL~{jѻx[Ux!8ex7m\ ϔ^H8`5ɃXJZx}:uU-Gay˱ljlt,"0?&Px| ;g㒿0"&j=P.1Q 8w3pOxR]3Zђ\Cڶ㝮u몖bsFk'S˞?c^XZ5M')Q? {OX-cJزG.Q/kѮ$s-B svBS-@II[(N4Gr䎮F~BtTDt+s}.8pn=sǨ>-f->mڡ9 TA{FuWbƛ+מfQc]ק>hAZ7P9O(~u]~Ԓm\'0N>Z;ZI "$({hc|p\Bjf#oJkQM|-9RtޑtSwcΌ0]dgn>v.>Gڪ"\)sD]zF]>1f+ L]*θAt5J6OL&O7&?F\t :dan{a6[G?S[aWLeVȟ>f 6 /GNTbշ娣Եn #r=q1m.-}-qJl:({U UtGҔz?ROl'C_ ذmJ~%t;h(N#G=͖w"k< 㜓&8;n:UBAWcQ7ϵ0[SUkp"z `ZP:sCu5zSYeHSӍkanjB7[_v摻6uD]k~7;ۥ8uTQSBOW5k4ؼ|!J#}O3݉'Ѵwcw{!8/]v1OZ\ߊ0$QGM {p;h8]֖R+idh!qSW[hL;D' $VM}2'jnvXHܖtD :b jϣlVs=^0?}%5]KO%>tfx_.[e@Y`?[ "Gjꛒ\IBjnc%zɅcJ"~]Ρ{O6ލ.۫[w<`LݘN߁-:bȦt9_tG٨xos;њ]f:8U371X?ud1*Nx,)%i濉cnVߘ(tZTRƓKg qWV*:?5556T4dg'Qהcw>Y57zsvH%Y.ێx.pݑEv[7L>QWy \ {09 Çe,UsvbfN.G,;7d @)Hu?JմPw,m)ΞGMoZ^Xj'i\a]8x-ݰ-؀%vK V(=ܫ6o޼ү6¾v jz:|,c%hg,d9gb2'E4OV Un{&Kh:!O&3'oG;->{Z|kW~<ο1}7fx{n?Dʣj2Egޮ8! |V̤l48NTbȬ8|8 +zUe]<#BW0<~.!kض(xI霶aڤw>yq/,=^T{9jq3CxÎ^RGp[Bf]=$CBJ01aPoj/l[n ݬ k,eAO]WMh1CmK`XNӵˬGN<*LAَ^{Ɉ7eӶ:c:ubٞ9X%\ЃO^q'}૷gIqq#t:pTZ6߯?x/^7f?<=װuYo8TbhZ {%4́6WBv׹~av鉉C{w;YKkCVQY, kQr2e?mbY1{D[֭+ﭴΔ~0hRV臡Fc^KW 귷sëĵs"źMe~͎'z U 򰩿<1GS,Q SoZF^NԵb%9i%j>idqGԲ:8K~mWo;j}չ˞=32.z {]֫=ϋڔCO O`Wkx9[gʬY<1XɦOaҎx'i߭³W'\:^z\zMTbY{69.IhOsp7*AnS__tvӋzTSfʅ#tv J0qY8H]_~?ELR/~.k` ^xs!͊ ncT#4sh]G/%uhG]*@O0,7fYհHwrla **vЛvد[7ؙ[F4`ߵZNKDj:Q/*.rѯfg-MR+A1L^\zWaQ{$[KqZXK)DA'//0kFOooHJE%y~ƍ%A\X5 @k pykU/eE*:ATmȺTdHz2نʮDMQ_hnvݠn ' XDGѬ~oh+1.[?bA%lDxJ|6hTPua;ۦ[]1U  YJpl``L=sɺDԪoՈ[Nrơ֍B| nNZ=B*MQ%N_EΘF*l5bKuxUqÝMˋh\<NCs2*i4g]NIKk $$B2V4SA!*=8eﶍ '?VbMڥ]o2-1|k1w>Ffoj m QܹJin?ܩ;Cͮ Lڭx.% 𥗉?lcQqpnQ jbEˌa1#Q&jC ]#46C#DǣO[GkKl&|e!)TqҊ/ OB1x ˮtAeHC(%9iNiĹWtsp2LW|1 R椓[ &#u>pgrqdha+G[4}Dt r_5--! TCcV8H,> `9t}2x|Աq1q9\QF?[du-an[;+T W t5! ΦGұ2슢YB<8NCZecc@,WQ)͉:60w  2atcUs=! Ixk7TU)"4C<>j[pL*[TC UlR:$Q7\XE9^Hn|hd9)a72/4H٧='݇x$9GÏ7 fB&<63М-[TBD ^Q(=,57AOT|,eocP#HƿO1zj~<@t<sy88^rp7N9QF׽Mɭ))fZM;=,ͺ7AD œ) {)FNQ͟>*ŋ#!9LiZeGϮ`D-[SnbE(y-:zf_dցD*{%MDr6)9P' Ǐq4rzC <wGk~)6Em(ȷ&Eyo I *i5cP_hO1rjbzk4 Dc,s:N?tx0'GEuLjZ UIޏx8~Le+oP&+?!Фk򝚪W1ʡ$>ow :'Z˄0Wދ0+)Qm[` @CA%*F!ߔo7FPupDl74?Ï*1 s<3aq]8vlFׇe9|GOW 'X;" EXTQ)u P#':<K16K/lDx[u1@9+$+O0,#7Q3) PEWߔ%[ˠQ~U3*gŖl_Gy^5i< r.cUEՕVYv(j_߈5C(<9z^z~,,9?i,:݋Zn7v؉7{LQVϭ:LN xJڶ:TUaSSAAnӆVkj5bld}QSLԌ˛ ýf i[afM ?=J İc0|AĤbU^V-t\伊A|PЋUJ 3u1&.bUVy_9aɵ,?WbvmݱoKN$n2{g9i7,ŬwM^YO!{jXvG,n;vW9W *mw^~{ 45_"La 6: Ы(ÅZ9z#`l|AP۴3晉 xf Np:7,Gk Mbj@H3}wc?b̺=5g&Bq]fYVc85'?^}[niQơo]xZBk[@1^[xcnh頑87\|Iܭ0ڲ>o|MЭ&+Ev݁/.]ǭpAx@m];cs:-ߺcFMbJTfSD4^o?`z:mc4V̺u:^7OJ8vc%`_`s텳5+E/Jv1AL?H:t˳z}V|E6mѸtD_Z/&W$|[F&5h"M.[RgOFýh4yX mkжF4%Si`ۯil ˭wݍWlɦUV(}9JiN.tYh> JrtHO z܊tf@rtQ ZL6kTѮMܝ(+W=wQ(7̿ߣF]\;@ۑ\Dz9~$]?ݎy+tzo؏ hh-?"-L;}?sҞxd8rqŤCLáߎX$j6p9]`g@aר#j^.#\Fǟ>4C;q/| n4]2QYmm[op#T͹m{xƟOtvVoKT[j'a"LM8^\ZO&q;BĿHD qM&V:׀y qGb~xkǷ8Oz`{hAӃ5R|-kyM]ۍΜl r؃ٵ,[Xf6]q&]+ϧ1jJ{4گXv->^]Y /P?;2c%DDv /__w(HvRN S6Eu.@+Zn$l;ZO`y}Tu]RL|կI;MS˞?_KNYӴ=IYS~%FNjE. Kmvwyi^PKn[2ZVc.?f@gW6X+94Grw8/YYv,P`ĥx%km]ookialv JЦjʹMv2m3m˄qcx:q8q5LgW# 熢iAorAp8HnyO|>7NhjTvf ŻyOЈX6"7OkMMSg ں]ԋ٫[w\tRA]z̞98;|kڴ/#rJ$&JԢJ3DMjصYZxm:S_+Wr19,\Noїۘn9̸>v.>@Gڪ"\M}Y'"R?*I"]#1[aux8Ӂ(9D%x %6q$n{a6;SNR-׮Kgތ\4pªO=7>XmY{sۚ]p@&66Fڧ94tkB[=Ͼa:nSƧ l-ڡ*wժ9ou_![ׄm 5ش~ʫKSksQ+ocv!>=OKקWקMC"i|ꉃщ?z-|TaBvCM%V}[:uP׎zr޺+0͕\@)9iBb!D-N$nW}s-zhM+݈v(qSqia˦Qow]c7Fx.5?s .MT(>RNK/:C?6۞kൗi X(ZWp DՋڙ&.-=[Ɯy[k |L/V)W=U܄g {[w]{v?| Rɔ$eQ1qXO6ecLjv* IEc^8|4xX<D]`lO1 6}zq}uNñC gaW\ž0m~Zxv*vVE8k`-B{ϳQ>;Dmmѵ8~Fm-$E d_k*Ǿ۵uN.P yOj4i_;mir~Ƃ-rm.t?b Ђ!-N'[3.F9WXKR'jK)瀎Lb;JhKQz mt?ݛ}Rn;ZjWHSߓO=QNXq4o'Gd[΂Hʶj?{-^,{aL8Я8kjjm8i\%jv5IU,m)|k6n@*TuK6o`~x#;Q3y{&Ke[nJv荎7`Mr'5/q)@!0r( : v1JtyڝEŌ_m@r[S泍Y$IAI/ 6ۜ1i- JI'sxy^p1qQA+y_{XۃbB7|gĺ>\2O_v)hGĀ eITXF'NhrzbL`I^3ph5MDtZF/ަnk5H6;!ڬi}ܺwkИuђ}[ZPIJj^.n}@z`(QHЌ홨v5o[Go5xv;Ӧ צ#Ds([ǟ،j5R]`imx5ۦ.I̛uE7K]uMS ye쌑ՠSPsu's)[Jx{shL(ez7L+ڴshZޅ@zOscRys:1= 0g kniYSОiBT/fnulNԡ9W-$zOwdZ42߮=^pɣQq_.hx?Q-ylEgzUd`IWlהysupһ|5}faL2|vҶ-2,|{=OO┾@71]oMcK}Ѽ %`s+12' gJOx OsMj}JMR98bk}J:4shN4`*<9k0pV:d4N5׍ر+L9~nxO8DCI, vQQv̍ƈ?n{f XmO\D-Jt^-V&!ʏ ǦvM$b2Q&4 ؉=s{VZڊe`8wc0Qs2 QqԿk? 3{eN|Ç>Xʖ#\AV_[p}oRZkLֽx\oeJ䚂_E䁓3@QMDh}6}JܡKOLzӥ>1(S [sh+}Ҁ |s|~94z/=t&xvLqݾ} #D"Z.QU{L5[ܝ[t'Weμ]{8nl۟E`@et=%g;Soܞeދ׍ٗĴFMͧK&ұh)P[/eroyc[fL5/շ+ZԖ㳹\, mOhxvEW2fs]ɟdGjVTu$VyX<K!F.8v!(<6-+tN+|]Kv-VMl4 F7Wpx͉m$K^sjle׶MnS_p3M67Sߎf{uKX8g{v߯!,+{Tz=Nsd;L;|ҕGGd2Ӿ[B~OQvjk5\S3ԭ'$tJZA~|o%C̄*|=i YIYixs[X8Y8?-1>?zY* 1(b!DUE &-˄1oUjACI}PW~ԦM7=EO3!R µ/.@:ԷE \&0خ'8ZTY7V]޼&t؃4f?|xkR4zu=MS|F=y[%.z< pGĽ6%k?]͏_ݚ/3e,|Gsdg0Gq>bTtBN/7Lv=~Hi .۰؉D`5wxTq/W1SEq^D0cn|c趮»<Ou#d8s0>rm+}݅2w NIRx*[d*FI0b*LNL&\Hw~kLo{Zb'f39L^O0Lc)wOfܼa6{Ծk*7c[PAoYC}z~ݺΪzxdoe@59 m쌳%I*ߡ#ُܧ!Vcqy^EIB;qBo_舏)1UIX3z-E[j@.ڶoOO8v0 M ڡ!TQ5^%y~-]ǰܕ"W[qG[l$=naIҌ^;m|'gI=PaŭU:#DWau:Q}s:#- Z8_/[CQC*,.mc:|vXcm0-ط;=iOwY61ZQiGA$@İH G *hwCwB!RDe%><pl5-Tuk?KJ!In;?:/4K~q,P] ZܚZ"EMnn 1r$Cy@q)19ɑ.ǃa,vɰjg5]-?4G:77.B|wҮelQiNԢp:D4nɝ5M"^ ޖ45ےbv'qb 8+(!<u yHK1N!gkD-LBC: *RFj =ޖ|wv[۫M9VL!ކtDKX(DM-o_GaQB Y@Dm[d CRVzw!inD#CIOƳ蜤0!K 1~ )NBuŷCh0dJ>d|y+{Cj!ݮ%^5GD1m0P7Fz9$ &* vB(acx5(87`!Y}׈0|J9Va5Ӑir 2CĎKg||1M5py Fs߼FKiu5(8sq$k3 .H78هOC3uc"UtNMʒu:0K 26fL6^4(xjXH5ȦpjG:ۀ.[?ݒ7]26?DƈOO/QC!͉:V'٥F 4 WKARLm[4bu@W&6Ӈt81dE  Stu sNFuz7%6H4 B@mhQt" *Bjrm9񒁏>͙^'ŐN:?7*BD> Gҹ-Phf.rƹ" Gq;ʱz^xrr[!?WW1x ΘVk)Ւ|ɋ>9V&Skxu~[92gQ?nʍgmld}QS÷SVCf i[afM ?=J İc0|AOwr~F a#PԷ뷢~?]u8朲 E[^*4KN L(8%C"8yhש+z;EB;>|M5NA?4}q'"@*$q+:H꺏o?ްYi]IEI Uk {m1r-Ɣ>YY'zv"/:̸lrz%2Kpȩa8o*>.Su+/-W3r,%|۴3q:#L):YZ5A^ak)'t%FKrG DDs?F=xwzx 0%g7>xi-8cI{5KCZXrw>,޸9 7ۣqK+f'L8S\ =Q32;7%WѰÛcNQY kps_s%5q[7PBM%1k%;.{ 7?q%%nt 7 Xv| 1k'GDwR Ub!ܱ,((ΝtB ܧ\CǧY`7|,A U&x=lІ>z8jXh lS_t[kvlٱj/<l%Ѫ_wWSڤ=%C bֻ,=w0:I]UUA7 .PvD7O^yp7dIZj:r!dN~VƗ?}e$1aP++x|~8h k}ݺc?͞!-j/EFF쓄^}n%`ţwҠc}*ڹnNZ3^0 v2L , {~c n)=uz = hy/Дmud~ضb>?Ez]tGsֹ7}HqPfvpp|0s[cH{@ ُp# r6hS|/in8rd!f>Kl"ۻp桙ߛP/"dqpu7?i]p1gVl&P9-&m57E@IbO=m/̻GY(4CGnyf]]0k`̧^*\H?>W[ ?ӦN xÉOͪz?1 O/<ˉq-ƾPG?z@{EI"%~hD;?Y? FUs0y*W}FNze8[| 7{^ȜӪ34cص ,VMf+0eRON/Z<(pw]V{)Pc=I푭kՎ굑:L ԃMuz0~J ԿACߗ֩_vw1(:e9SgEnH"OʛjPnyr:]֫ӝ [U(%&W^\ń~u(!|0gˆza( s?ggRMM8bR%+%,ئIBuUuJhѮQ^ ՊdpU-oh"'RXe?1ᔐ"PogRϫ6}z0c]I-_RoP D۾nȕߩ cbW!g CwiDEj_Y&cg{zhO]%,ө2V+jgiZ)0r(.F`uzQs>]ա]ZIZfJ2. SQqr2W/)8:0NF0qqg=p̚65bi}S~j&?2&ׅ  @)CazK,QoHP/OYpL۞;Za',3"&17pŤ#;ފ]8qӍm^s9k 9*6]r#%8z,-D*䎯?R!A-3*bmܵG|~|m??rӛf.Pu]e8R@=_\(m.ubN{I{y %K$MdlPzӊsf՞~qyvM4lhY.";xE_mG,"2> NFMzҒnS>l+j|742},ݕe}N딕l~~Z 4S貾 z)JXv0UC^] %?5Zj,C@T&=j:&U-F꼭J&'uj)?o*'U m#/,GT*:ߎ~|U{M(ǚ+7lCQ|E4 Jzy旧9~g_91Ps94L:\ɩ:?6M]GC3CXf loB"A{n(ZĦIGS1Pd?E뭔(!G2bhfRo*kw\ς%(%3lOWQו{уK={^Z/OO eGiZ1sw8jFw IU8r0=ˎќ"6nii2YO6X) FiylV~pܬ;]p'i7h*ʎÏ%=qY͇kEnbfAp4I(> eCQŀJpAj,4B&ܿ# 7-F!3%'!ӘK&b)nׅc{@/tXmt1?<>hi5SGpu[A*.=:BY4.$A6_W,V$r-AJ[.gsH-ƗCȤN8d#MoS{:Rͩ]NZ 9թT~ {$e⮾ˉL5$˳~9j{>MY+]1J&֞֞4zhVz&LfggEE> Yjw9##T 5c=9j@-ؖ"=jf%K~{9ju[(%UlKPJNX_6^LQV7c)Pkj}-;AeZ//<]-9'{ֈ[5E[BmqҌ&*A }2ffU~/h9U<媃mϑ˘BE{J@͜Ch_1"ɨ=l7ʆy =1y !h2o mڏB lQ͋U}9me%oޣs*f8U:2Pً"F%f.g{|};" %iJ=jZ(yFDWG9:[ҧ**)VK_E+1{(Q9Ho~Q(%D֨o[Ca5iA ҇;mB?KKnbذSX8-bŬ#ON&!wۇGgȤ ӁmX4o毓 {hIP3bA_z.JZc`TeGc"[wj%'Oc _L2@}D[RIz@AIʹJ8^_V.4?N Q6_hTOLFlCƵ >:Kqo~LK@8\S Xز#0ln9xfb6jϓt/b6m9Jܭ9x/h YsGH [Vй12&|n zs;,I5>?䟏?MvuHmtq}GV/Mƛ5Jca̽7#;-:~%E} '"bN&eOePܷ,%k-.ӽ4q=i57KZ^1&BJgz?77T$ [FBw BÕqhe]0s $~wzE98=Ywvߌ.d[J717TD `vgxQCҩНF-h=`sEl 2^K'$~ɩ-ι@̵ 6h#Sj2l^$+ 6*{h)}[']`6W)Z`cltK2k}ѝ9.sb6i-кLNr֙`ZX ym&N|<moӔ>:И,\o [lf{4:gEŬ$PUzq:72NtjAǥSm*<Zm(t<VGgy$21:s:P3]"iQ1wL!Kβ NVTN]9 E5xϡل# Tб*_YT]5G%:tO/oFq'^vrl0T$ot0vBEs@7>IQk6M:$;UÇUkgxdnG&4"P3_lr/=%GBtܮPaQJHCk3M uUiڏ|NW>"GD<(l~{K$oBQK:?'+-XT{}6i2-b˟Z\QYbҢ:*U?of4%ϴ/iekj4i s/z~:^iT(xPl!ͯ5XeܾQmMѻ3qv D/ ilq6K;BEuT~6޴iJni 4nlM 5`=j=[Xo!.:ȇpj~)Qo4x D9b$Z_~r>[iuq}[=4JRZSF ɜBE 6M$hd-n0,^Is^QOJJ4hXٙ\ gNcޟP*qFS3^%gPZ!P )xLRUԘ!:g1 anڠ5W=5@O>Ʋ(P*^yѡuغmصoG/V?@"f** nW8t {UGؘՋ׾5#_ҕ3YL:f7/P3]pHDw]6F,c|kE.n(WѫUZ;vs]YM`xÊ_cI= &Mg$eGc=\ԽjI,V} [ 9U4'6b W_Z41Y ԬG^VrĽKw,Pa_yib Ƹmʶ0Nýw ^cޘbl=XC z h z?[h %-^OavF WJn|Tx|е&/N_KmŢZ{6iMZ< XvKd0],HAA"L1+jSS۩S.-wypl:^,0fۣmNh}Kz 6 \x0sZRO絨lp@<{\U0ccم'icq1t. ޺v7_Czo?Ҥ+4_A+ [<:xvQNߧ0!08WDޕ6{5NRyXxOEP(ӧ%:RA1MÄ!myТJԩo,kA6T \} WRV%P|HtC#qqp:|E~635̔XʎE;u섩r h Xgm (xk@MCYYye%HnȓmkZq[ޝLۂL@QdPd H{CHJ^yo1qX$w*)zށw&FSKM7G9ށZO/sE"AXȗo/YxaRŕ!<\U ZTФm2L *4ȖԪݪc d$gzRj^a74手hxuz@,ֵ.ƊW`Q\ R/ú]F/3vu$³Ǿ}UK\EI{SO:ch8!r1feצO1+zv"!qox߃R z(B .)uplOQq7v= MKKEVhXN `R|5%{ W^C(M:5+jήq lj?%Is'vimG#1.E/w**IPAɖ~ vp%%nբ p2wˎ;P*վ]V6*-®-p)\D jANKI]DjA;ؾ!.ave^F_+R k8v;lq%-<ՠ֭f˓Fѱ:6M:$;UČ@0kKjUn۲SZ3mEt4n=s}wtEؿv*ĥOpf|]JlԎunۀ7Fznk i-P]IlY9m^c~1P3m/A'f{;p桙QM%)e+}˽.t/5 .wy y>s[L~%,!?ܵ`Ϣkyi%=Rbμ{( 6'Q[aWפ"1) *}}P+Jn|s?M 0m0{8ÓppScOLèxx13{9Bm1">ҵz;Un=swW!#3Rh^Tz+mz:wXI^Υc l]"/xtp*zPަIGd*pM J|IۭO?dIt4 XgG`=Sjb+>GJHWN^qXΤ@=!P쎦EoANm{l/jM[aׄJ )Eq PJxҬ1%9灚Q0G]V%(Esc@̙4X @x3䧫0g`#oܬ.}+S}i5:|уx F S'#mVCQ$I& ]h xhƫ9)wa(i{"+ !'*^F TENr~e'^2m4ccbBAɦIJ¢ \ ,/UupАS@:4Gw`9W uzv:_!Ja O'?5S =j-qRfy+v>wD^cB ԼxszƳA˘h; ?${_„AW* KS'CV* }F^DorC-06BEIV̚?}(hjYIU.=/1j"3]J5{q}U-iԣkf=lNyh ¿<|T F8URF$9sRذ?=Yz`~Eƙ(?mRQ/=[ԓ'&+^3yJ>Y|Acys)%o?3[|;&~)"<3ԯvl_C$'t/3?DׯR{&߭>.XBKYzS"YJ$3#,ցZo@tM(x Ԥ/%I47vna_O~ufZ[$P aAg}E I'О*=llUHIaӜ/FU%L .iZ)E0ht .LoYmdpCM8Fb9=yJU9ncwa:]/I"HCÕbG?fM D ^|KO}ȘHByHyjn 4S Ӈtۆp&3]-.uEamsxdZ**/Ǿi.>*Jw zC>lY)'cT^WgrxM4P'Q \@cN' uN+Z?݌r$i3wx ԙW04әFd 9{3ҏ,H~ަD26NJ=iӔjO7].r&,P39"Zf1d/uQe7 zF3ba,MZeAmJ`XB\Pu2AeXVJq3NΎum;0G#u,E|yU'JB|a3J[N5&4vdTD/WCS-~^RJęAv&mRU?#P:)-xa/#˷4CߑʆzjU힂ԛ~J/Y=OoNt@)"# z^"f9BC;:cE .|;@F+J ۰A-B?t'P9j^9js1E4*o=yEE>3\ZQN;ǥǦxx|d%܃C(**Ҭ#҉ iܹ :o.K9p[ uwS4L@bU`ѫtA% dunuf#J:SG|I'-$Lf`5>gx-ai^Mܧ !$-ޑME5xѷǖMP|VdlU|`%5AH(2Ұ}`U?YZL&ΒRh$ # O`pSR2;+"}%(1'AML)E~Rڟ(ʋCOn/Ų??Ez.~nVlc_uyQW{Z3u#xך{NBaoZޤ:Q N˳FY% ]ب1Õ07A|<"P`zdUδĉz K\k hڡH_%5M̦y}giw!;t=jW2"TV^{)Mٌͯ2ńDӋĬR,歧m*jv FD"VM uU'X¨ڕ_>TkA}kVh`n-kqo^gb)-}y;AM7󺻄b#ݦJqӇ ~xziLzZԧaDa5-hŮ->ӘȖCfY]}?rI4 ҟ}{\l7肬ul!< 6/yV@]֘ȗ57 E)üW]q0 k :pxlHS ?ƛ$ۮmJbJh\"͘0fkjG_˛`[- nH٩NMgZ`cK0ށM;_*|4t&3=knɄ:!'VPj3sпgm#T8#>[{͔%|/P}c=*ƪV` )MW*hwwt$3r;#[K4ꊦFMƲ#0<\|3CWyU=s4-M^}YF&]cKQ6xD&Y#%G?G-KIEeb2Hc7L9B90AWo\q&ܞm*?30>7L[zQ8:ai׽k͉3"y za7-DEX>uZ-oCn6H5&TpM4΍1GX54ؖ0?c_VN η/fLD2wstK6˛S}ԔЏprt4%>Tŗ]u:lH#'bz g][HMWjUJ'k r},J~*Fّ 6{pRmaik :P]rX,RIO&jJۧV#E!顝Jg5kdnIŸcE"iŕuq`M=k;{R*gcVN#ߟibWo &Mfjv2> ,U0+ax;4[Ytbyt ѝT-:gD woeAjo݉ vC+'WhZig}䗺´h#nPZ3n`r2MTgUVqz'fN<\vlFDFj°8(vhvcK7*tݒP-s3͉7>d,Aj[ 8v8oo͎vzn[N-֗/hq'SskUv&Tƒ\V4,I!IٗWAP:Bn6̭ڧ \(7ߐvxkKACs{7Vw=6 . Qp6 y?8.'V }cG_kMOs@k9GQFHϚ$br= '4 ΍&^UR܊sVyF+.HĻ882j~q ?'Mέhb<+\4#ɾ% pPF&Zj7ĬFMS$`^qA8;x[_0߹QZjƢ=ibfR4t(uXhd0 8nԚ޺% fbl4IԹK8,:p.'q::x[mynn`ZG1P$ $y4BEGK$Kg|~/^t{eQfD+PXݩS|%]*tIE NCp٬P,@ã'>m=wT`mgSetQG]GTD ;_L&,bRx슉H1 `գ8=X4GN|ںZ@}ϜBhI]D#p$8:1q]4t X2Vyi-I@ ~5:Zf#Th*SxT&noL0,Կ8?c BEz `'vQOƤ:P3힮eLjҦɅI OX&ݟH\nt$(:PzR>IS!UdL.eweX̥5{ ԢĺLD"]rI&}10ѽ_f3dIXR7\yyo݉ v<\XbRaya^l/īBnmlJ;Ps*hr˵~ׄȨX&R %pRziMdž ?/e,جU* F:,TU6b0G]־eܾQufNb FbO-ƨ7TKq9 "^΃HgQ;)tU DFĢaD=[{vKN@=ge|M X/ ɂɀPZU~r>[iuq}lJ$1D1GD؋A`Ҡйcǂū{ҩJM095Wf0eE1{RpE*HO[tq^xU.r 8(;{ ~8"Q[T[HfP2(v:ii7gN^_Fdbl8r$gR6XHfx/7^񳀴l:< T Dn^ktt:n~b:|5i:uZQQu˾!{UG:QBsUxReg1ipk-Agj[_$ :wAZEݚ%Ln[hLR7n?,\ROy n*ddO+SP*;s ?_5<+5^+V־J,+qۀt)֞iBY pcȪ˒ۿ~f))U6` ,)5YMGנM lX8eXsЮE3brj}v=j.܍Kf7?,pwȫԟZRޞvյzʲpBc7$omѥGkAS> } ~bF'˧k6[Eذr0he"ɶ"5-,@Gh|e85 GWق˅@Z_,F ,AQa 23XJl?å)pӭPWN:+0e$PZi Ioz.8eva4=d_ZժwYx4B Wc㒥XsT轧TµQ|iE^8H! EI4K0'ulۂkI^@IDAT ?lٛ-MQ|(#*E_NrDSKDnHtAEE)"vߛ;53k֚5g>{~yy5zgf3kgOEH@NJ IB KQQp3:n<ꏒLtʟOnYgNW"ܛy/8ïvG{\xqm۫aeܿ]Dz=`>аpMXʖu:qOve9|?%%7uۃV}}Ll E:C~SEgfO;<u:5D ?Z@LNQR>anh7y]g I8Fd6hka\21ih[M$ę%;^Q> XHf&sK!-ڒ-R r6Ӈ~a֞=DyT0${A;x8._룚u_ v~FAlG2؅4| ա`TpK},K|2)P݌UJJsqS`o=;r=4(Sʠ=ќo݀%_daoDY )25É=XfdAd'TeN7Wa рZUbvF |cl-ڥT•WwBr$V}֞'q4V׫#Wd/U;5{f`3Ka-*:Y7֙M6P+, O^sh}\0zrp`cV E>Oضs?ʕKE:AH0St}x~ Q!<T/ʈU"wiUŔqHY{T\j7kZྈǗ}KT}Y2b1T4q@jPD~NS4Zw?lނP.5?abE_y3ryy4rҢ T=YGsS~ ͏靆!AU6~GdgqҺ#lm[$zoSow<uqK^ Z-^ԻUKB˫.A`QmBBd4lCDė8-_\|j|5gwg8[L"O ڡw; WHzц} ˇlR 96o$\ʲU,N %47#zȽRemSpWl[9WglLD/Yzgq+.w>jx W"ԁcXKwO{]ϡ)R `IoF|=C}'MLs0o ,>+mJ:ץ@\wx_⵻E6O@G+XB/b\?m ]p݇ɿ2~?D c4! 0S" }N;xqz? #4A.UmKO}pkԐd/>`oZ_~=䭺b&9}D^hR#{ p:vڅ/wulW4qbO'1TQ< Xdض Xe+eءAݴk@z 9wcCxO5S#f`5N3uSo~Pm H.EC0K8F5{GqMEmjAw t,(C@qӅ1d9E&@͞\&P-A97P! 4d<=='O70~n[,S;9 2KhRN$?) G Zlqe,飫 >}ttqiq,%V8bAXȵ`_ɏ_[ڮzǜE7Vg@CcyKUfQ|d$eA!^!aQMw>l@_^`y4֦ { {)Y9~|Q22sנ^]S%`~l ru&O_a1ZM1\faB=܋/h/Vl蛆3/E#橗yjME=ЦaɨQy^WPC. T)s,rpyih^>>9gj=]^#аC,=A)םoǺncoѡz* }"G 4~NtmTl8x)x #``—1| tf~G RChq#^~jzd<,Ӑc؃qUc70a\wèN5+1xF0&v琿r9x5$%D)}h7: [R ̨a;:ucڇGX݅xJ$0mJ'o$<: /.{n)w?k]ll9 iqN``u4ת4°VBV*|yH_[ܭv!攈秙L6<=:+>m޻ D߾ =c̈́1T^#ȺG r~G?3 zUjjYxMOϽp٩!@ө_؛S8g|0j xk`<=41Ɩyhs23hӘ0Uf 4=7s97 ./EpZv>䕫uAeGau#3*)8%?8u w??]ϒ R{)~7kHxLR})U944?o͒L~^8xr>7y`'IB cm =suݍ)?u5?3 Or d^k'JRb0rdjh*'@U[EdEDb$P]z}؊%kV+| W^5#zwM1K}3N\F,?TSz+eF 01zp:1X P+槹PeP:;H˨Jxܰ9Pd9\PA.XY >:֬ ]`L}aK82q.GR3$zlH˅cd)ͱ";[x;1 Ubljl*hp[j^%9U*r9Yw4K+Pֶ{@- :7#C/KUM4h#Pg:2%nlNxnXԵN6.s1_Y8{ehbv 5k(s"kefxxLG(*@C4YafRaƇ4;-LJ;P=wl@,"eEKl8};h.Uݍ(' _]Xn(ĎvhIa_?JSgf^QU1HYpl?TB).Yu %կ=)@]3p`>-ZӉ2JQ y[@ُ7mGM(%ʣz.ЬuRwN*eaڂ"`rhZ 6@ͰH֥>P0\~:7< ß\uiUРvUȗ4L?QO*c0s(r<"pZ箭"džtV [8$ }\p{UEU-.J&sQ`zMMfsZo54'LAfUKri4"ۋ{O!-nm4^줞{XC|i'J1>lԬt *Cf|nv5(ĦWbA۔ oTFz2(;{H?}\|y/ߦ4|CL>GM#~Ud2ۍT_Y%sKroeYI8I*j(\֔%q_gyF P^Yřm2YFHduzMo놏^һIbԢg1F#f߇nA"ei==&Tr/'ַ] xlKz1wƗȞLVz5FHA@#>6}Lf{mmCKhe;;fvbX]%@-k (l_UlL>-4?_ {El( гn%`MG?lF6(6ܰestoV."Q`gy9jiªo=V|iX̗Qlai1G} 짞腴knDw;ֹ{ʭH;#6ιر6r2b*-DϏKUU!O׻\89,0ɑhP[c9mPZzRǰG@g{^e~!h݋/./McnL}:?ė"p+UO+Xɪi{Vf2rŰs%OڎR;7PKnՀ/!E7ڪ4A-׿~Wۚ)'a~@vfeԡ N|r9tĢ -v.uo;|AxbZR3m†зQ6 bt^y/?E3-B{ mV9\eಈ5 K]J^&2'mcJ;؅?('==]D_:$.)4҂PDL^Үa6xḊaԹ0E5bZ2,\Ӕ,shA*yL"ڡKYз̐6yz=_]B>>xfMoh`;v%m_Deq|趏0)okth$+O"Qb9z?㵴?y^~ мY"DNQ+geFŜ/r`\RKZ%QjtytkƶCAi}Xmeb ϧ\h{(9}Ʊc'p2$%RdzP%'Hit0 ̥u/Je_eF%8L bD Gi\ӦzZr(-N˨hڔYa]h{y^TZ-D-:"Z{ےu]9 ֫>ڷg9_>(jD ?]iY3|%Pt-@?:@p9b ӣ29cv(("]5VDTMU` [\"PVƄG~-?y&^PUbteD:hn|븣}PBIj8֪Y'- wRd}1+CRn_sSBNPLf!i*O@ %X1ڈŅ3.r 3EcykRZCB0BIj[vϧNodetRIRF5+G)#'r|keS祦J!)zW#O+K#FFlᔳ{hSq9'i $[׮/Z%!*.` 연*GtJNQ4ϧN "r9z* "I[bRkaW$tN7WD$e崌4ߌ|\xjXx[u4]RhZCB0Bqj/4S@b͂:x(D$*;8&Q'k ^NR6ec)n}~hK+՗"(.D0bq.](W\dZ%!&.`[e97؍WE.=E܌CDlJzB֘JJIzJ+2 Rpb=8jtBA!BQilߪwڥV@9\Q9*8!~Ag@"*:|AזNnWTHbrt)&Kg]x*W^uMY8ԴʈUI7t1YnMP.Y*bHTpXRwvkTNI .7RۈIJJuJGpPc?z7IR":`0×Mq7])Q>7}G2]zAӷa3B: (6R $J1&-x\ x~I+=:FF>|c얫z݁/qk% !1RΏ0kZP|ՈѪ& lRCIwو;rD.و{MV.4wܓ(=je#@-SqiWxvWmoh8|_B4B{XVI1#*/~\>jPpLg/wޅngP{Ҳxmrng 2ou|7ѫUs0aѓn7y]g7>FdH1ӯ5+EĄ-q{)%>صIǦz:.@ |LQhz? #;otJ*8_NH]n9P[:t.=5 m; NLuԁ)(JLk! UTdIM4B{XVI lNh æVUU/.|+kAVq䧦pi9GOIh1JBK#gؖ:nUu?lmk>͉bR#GDF j`fWh >æRuy-_֡zR4cK֬XuY֛-ëm yY+O^֧WjU]|cʎ@]9"/SB _!Jud2q/ deQLK.*a&;fvb)'07u؏|=}'Σ+jݶ`D,@`%p':\ثׅз[fm8>X.[j(2:x5 x1w{j9>1d@9mz֬G}1GQIv&##n{yer/^/8cn>ʞBvdfVRy]*Yk"k?a0Tܑ$$5 JuJ;d[Mh ^}- Ͽ٢0i Լ*vzUQEy-+w?=PFL D4ي:y|LCup0’#>Ez.f='tPa0l5L 6n ZH*lj:xIm-9HN<>Sy]f/^?^좞B5k!}!i 1/u➋޷.T_mc5?>c笧̓/y:vv W}(Yn]pr 7P'ożD=v<&6(m^灸u;^myKkmAfZ?7mp; 4byҔR[b10Pg&^ZFnncj,B3P3Fw3)@L6_ȁkf[Q((n5_җpa\d&į'@[]?7t^^>~lql"jf ƒrumadJ_D;U4*9b;PVwY4eQj6eA WO?pBTY1J.=jZ5ggE2gm>m_~>wK_€f4V..C}wncpvKSRT]S)ҳ)ˠ*IUc #zօǘiqO4HRn9B fk]˔$m ޞXxu>mimxZO66c#KO!yմy )Ϥ 54z/Y /Q;Qh+5k|HfUrDvH9G| }:VEV g}o%^v1sJT}Im[cU?+|l <0[_opR0R'Ty_|+&ICݻ.]&#)ClϺ>E@Se[_u~I Fm)ۧW`Tsf{}ۇ8e?6PgbϢ4Omb&eN; dܣ7}UEIo\B.^hl{ O>Ww{%ʈ!iKT8'vwIM_B:Yw}E28ĆEՑG\^MUp{ܽ*UҒ66@ !mK5h]7g&Ƞ!C{`9Cԏ.N{Lp~zi_ںƸҬRi=[7g`okLd߳G>+ypj~̘[ƋSNšð >M(3޷ރ?wla'Mv¿LC+GcD] fd]L?8.~>]_םlŮЁ wJER@L̖A :xtecɤ̹곺jPCJwt#SdT5;"s p$NX6=+Y6!>\g޹yŊӝg0d<~[F9-5%Rfg%f/E[ zIzt\:xֻ)2.vA70yz-c#Z~FfLRIXE7 B(ũ"LbUgkk`Fmꈴm'a/Lkaҟ ?=uK`țRdrM>*+ƑHw^Jì >0v1gvˆ17-+}\L)!qKlǪ),H[{h "?׸RzJP5AMםC 6Id}=~\*'fᚦL4Kkl}ۍ#|5i>FH -/ #nu) _lZ}Nq#?y`lXŊS{,-c{&h?!agG}93^*ϧREz&zj;n3Ѣ_p{[*A Є0aoTM=YW"Cc4u 檏o>toF#%0mtA7u#GE \~^vzǎ_5:I P^=ԭQo |v2w܏H?N窨sN]2Pvt ؛OYu}nI\9AE]I>d#vvB%%ꭍ=Wd{<6LIEZFeTu#'O_iblZ#$YޭT_,EI|Y_dh$ Ep: o/ٸtqllf &P3${Z JX\KvzTg'/2 Enw%n!,v',;9l EVj<2)KOX>޸W8V>*CT_,EIzu8V-4s\8l/u ȧ\.!ͧ5%؛f۠X5\CՠT r$me[w-Ӵ9uq)8 6S~/YFR+4 ;١˗".B1 *[;4& ~o;ĄJŢ$!G}z576П'+IqAjwg8MJ_/_X"T/ 7dфǜBcI QRh<*!XKH'boLο+]w+O*O:+fwn& 9!L>{AO|^۠{N#"ܗ)IQJ|s(9FѪ^5LixJf!D[jWޘ$[lT`''%BHU@ݼJSG̑`s #ߡ0wt;Ipx\2 @^hKh!hn\cq˺JX @IDAT?ɁZk% 0''%!IWTp*0n^/Zq %h#gAc՟IpǯYloO8ME[FeH .>J$ŦK< /V zR%[e?<ڿlϤ:18)h7$]ɣ`a^!ؿ*ڇ?8s5TN1?jw9#_Žc1XK@bIIuCo+>]?नeU|p0L@;K(#ǩx6dԸa]B2=cʄԚԺ+զBI1rP,l?7h !RSvv^{:FJI xr`I{[\uˋ;,E՞yV$] HR҆8%n_]fiˆT-a$V>1'&G "vǯ7ߣ=>zC!QN@8nP "=6>e({`.i 2BeVqᏫQqzDq4Ɯ?rB=7~fea@ݓ8 )IZDMX ",&4]AGg@T0co754 : noÄ3'̩;y"o@ͼ2yj`\ă%>_|<4l Ui֔*nng(< qT@?sR0jȜ++"`Q3oq0g޵2gr&2^ 찀akgߘZ&,am dC &Yjq@G@Ϙ|&*3'?@mP_hgY\ E(C1ۜ ָ.K0VVqltŵB%$h #E!fL 6 "tW6U\fWޟCHOv~o$#J}JSp}u28DZ PQm jo>-JuItqI`ՌI4Щt+%LMp0εBa(x  ArZ-/hma+,].~U8lqTJ߄! hA{`߯s29~3'ШZʣbzjըujzJI@9}Msk*7\0,6E_ ᰄ8yQtpOM1 .O[<+$]߄kǰopXRm099Agf{U=Ӂ(Q!O:Gooٗ䌧\!I@`\<+ݩUkSFbTji7{JLׯB ŷՖ~t Ic)3ťvuf F(SƉ3ąp)f`:C@HE<V%_˵BT|6<^KXI_5?-H#DZ곯qhȊW$W1I8 *uȆ|>Pc*$fTu'%G>ۥ?QhRha)u)ՠTz+mxVpw&ٛVRzk ^˂k+i=jʊAЋ3X:1$zWI_50⮇ϙIԃ4,I]+1&\L۫U6.j{|UFJyt* &ڜ}G@VJ-LapEAϳ_X%z< w/[VI[Z.JhZ:*QZ pal}>bgFX%O`/S⠥!-5'sEJ]:%iG>$UzPD)޵ a=k.0 lx) E\ehEYX vX״*߼5:t[Ckq ,+'lV"ʕJ9l^{+7lBժq~NkG4QS g/ 74as0o ,e>XT+|Ձe``yrQI#4[p0twl􇘃'A?qwd'_8*lQҔv*Z^ޭVҽVM!%鄵=]W?WtiF ފwl<.k1\ۿ"_nvR/Ug~,\R.uxp&a?Z4W'?P[-+IQ˴FI*Po}BDuǣOAj{Qgũjby=SyKO=Grø.R~Dpf5^Qwkb@p șpP3P;:pH6`ZxńmUZ9&~sҙ<\pEMs 5tխܩB(qu1,?5Ǹ&l1=%R \ ٺv5V5yRk5ЋkhZمQ혷GyYnPl'ate?ĚC zq@M]hS/DNiTavlϼ5K0"H \/R h硢9(?J̙һ j?݀ [W|&7}セ1^崮1&-x\ x~I+=:FF>|c얫z݁/q N,BlRΏ0kZU#nF孁:FzjMfٜN 9a3 r6A3Ӱn)0}W\[h9ƙZg^ l߶w|?߅,B d=W"^ߦ3.kL뙳w`;ߛEK wҥGV i_[g:ug=vЇ*Ƶ]ڟv!6뎘d8f-SNu؂tr{_ U>[rMrB {X w^@e#?2N$ך"Pgb‹qvZ$FcuR ǖc"@Y9|˄jEG0Pǡ$&Rٷt9}=5 m; NLu25W{_S|8y6m5 B Vp&^3<Ȗ._@2àvzuw?Ᾰ{tzכR\Գsn*25Yp< ڬq Ҿ3 Xi"n y-ѼYKn׫hVZ%c$M:^5ٯWǸ˸dsZK]κy(Vm*n'Z e>I 9%pV`߹'ʡ&tVsРvU>Hsf0vf0хOyŲp 9:|JJ?;|JBQZm>jeN[9l"l#rk[w o**U;MMW>ٿ}9vr3!RMӰX[amSW`ߋ59Ȃѽa6mʹZg|acxulerߕkcx{Z즊m(A>/;5ogϵ3pjt[N~tg4lM:(0qp~nJ=fU@yU?k^Q@sY/m7Q]r߹q@}n:G={2ιS/)KV9vgq+.w>je@6Qw)i^+_q}lhA,&g xnx+cM`+*a&;fvb)'̄X~p@|~9O;q%X@e}!/ 0[YxbL׵^C\ w9DžIw)@͆jt#MS42B\m-P5o\z<@|1Y6Ҽm^4FtdY4d#Cr¤sX< yK@p5mqw+Wbڗ0Ks߃C:MŽ,ѳb|oZ_~=bMJZקz"R7^#۱ѯq둖4[R Z?rϯߚ)pj>DˏƏķZtUX(wp`Ώ{ŵ{vY9)^@{ac%#7-VSJ8$ɁA0t)Lւp-Z Ky'h=WԗEQշq ֘}xoi|3Q/s({VceuJ=j n&5zvj9,mƄod|0r,@{Ԫ;q,W!r 72:Y-^ph8 b0{wxWfC' Tv;>"9{&OeD-OD.bHri{q/VA(VLYAǴttSI[U6}FZ{uLvZk*'ؼm>SbnfS^nőIW4읖i&<3-?3(Pr iÐ,S{sHi<4 `! \?ˆS^OXm}Єta0R`fb}wL6*R[)P&<.}F4YyD||Hk|#\m@<+M9{tM:@-z@abUm4liln O4 6bv?$>sٹʍ`}AZWtrxO֧EhET~p~7jN>Ů^W|/.{kI <_-[9R :+>nR/GfCѽi~24?e~:5Cz|W6n pԶ]6һc;PҳkwNj]ԛ]H=_,KG뾇P=+?;6.Mm޷,T)x}2YO4ˊ?UPث֗BJ YY]Χ`;-Y7|aq 6Fc>~f=n{9.9Wgk~VmJH26PX>ЋPT&gg1gwxyffvqٹ"(9y<+*4ڜOpinh K?>#ꙁV1-{f{`s9 7jpO:۝Od^6jDFRMKAGk^m8х3P[_s^w+Bǜ:xIm]5 |/i#](}@̦0D.O䠉X'˅$$U.(>e*z=(v#@mkZm?J4=9‘=,i_)B]9z9g32)!3{lPL%:*dD>pJ_<B}KV%xw~FKv /.iBa7[OKMoKb~e1Oy"bi] aֽk)kK97[=WcA6Qi=-`.m}3Kzj,QY"]l!:0@-u-lcHrTz^K +lӆ#ci]&bnxg*z\:x,(#czGq=[G#v_Z&Ǩ02"&`C&:s.ؾje9~ωMRRc7g&:TwW~nTE0l,ٔ*.8%CJ`.ddej9|+eTXWt\vsFJgP,$͖W< I)ʹ\M(ħoE`shΜ ğ>=-amJ:/%by|+@@y@'3kmE9d/&)Pj{]{ 1I|'r]~ Cץ>qZ5Xu1?|J/Uu^m@ͤU-f)똲( %9P6<ːVcʥG-6yZ>m_~>470DGn]e$B$1lbmoQêsl`'dA{O+d0+ڹeO&s&ԃB=X-]V<|Ԋᆞ[pp+f/K=g}iKVQ\*g=l5( 9OoSzXo׳TgR?8"g j^uNd&c#d*+@I[{ @ bɅi7B˹a׽w C[uo궴6zgd`m|g9=^U?9g;7r2ߖ7=p| }ݻPa~Jo%?ꝇڏŨq8!S#FYܷ%J&p3ٿbg,}zF}ccMм7P/V͎;NJv0eV{..qGý.k{:HTAkLwD8vBUO?_Tm {i[2* :\`gh)M}r$e@^;oa d:P+Ig5} M?̜2D|:)G]B'1Jl-%8K+hG0ݼYxGci7=m;؎7sj͉jZVJ&vg+W4\?]LYyoD9h{*tT56z͜X@C҂Zze]bo.MYK׳fA=(yQ&Se׷*:3IIٮչfl`qh,_ނw@ݽ۳Z9f?׻QXȵ搡;3a0p?_t&׼axyd652Ѫԕ" tOg|]LunxŢdaي8t4[X–>Vuд?OkEck)ʈUrP$kf맭{ (3yS+VFZPp"gT.سhG+k.2e.d{ >[Ƣ^Jì >0m3;aÖvm׹yn[fwJԦCRxd~fG/7'm.n/˿zJP*A-kI,g=~\"'f7͔*L=o:6lB\YL[Kӄi&JULQ.Qbýhg_.XŊS0=vݾ=޼g#!u3|*Ug\>aLɴ1<ЗW~U]oCïro<{'UT͡{*Os$4 `!RrXbk (HE^&",릋S;[&B׊E{v@~=P۽%]{,0ѯ;I +fz[CE0o( 30vQAvA!*(DH}q(1h%jC D) \ @mafwowpr9]OJ E.9>$dm{4;r+ochٺ$=2yl'£Ϟ5`bPVV+@N&sDjKY%B#kRQVKhG,'YGFTA/yWmШ}'(׏Ũģ%!Hry$X/]-^{uRIp] Zo=uG'%V.ғҧ[dAjt %-Ԉ q`hH 96U& bVdMD\iǔR)U݊۹ oN2( UZoҹk+$4uF7&9u~..kڴ<%an}GKMto'D#GPC) _=_%{A~ML/_FXI5S1g"cJ)r7HVnC6')hZjpKGe&BբFĐFXV~: J %JQ+|1V1H 3Lb%;%v[5;ѷ.3P8Z8A, X]^c Db s C,&)X/yc+ԗc$߳2=u,=qbcͰhbU@x&b"ӊ+ pIJj>}RD K?P-NŬ ?x: L]~?N}-پ}  FͱFYz"MDV "MQOG.0 NKw@w8?3..@R*^¦2ty)o,=zV*R Tԭ$>b HT" % LDL)X"'_Rӣpך{@MaM_a,l®# T0J_q$pvxw[ĶRJe MKtGl8cP%KMכg$:V?lR(&- $G#%Zeɋ@LT:bkB#H͏wEn~~BEZ_JSg (5HIH C4}^;ϛ.5S1f*.-E3.$/@[!%]ldfH7.!0HG1aP tIM838I"iI AE.PTI^ 5:z q^(9BSJg(dIiw1 l=&⓬@f)L^V9+pJYI)TK… MswF@w@167*[jƥqH1s2|,"& r!*--BKUh}&f*Lťsc"r~ Cջ];#; C6&5Z8Bq\RD HFjA!ŋ٭/Lƚؼ|w b/.r, eTk_ qG=,!B$HREQ@M"50w`k l` ~u\d9WzJ3k&cZڸ u {@|$'\ZBA2Aq&!ZJ^s9_sPE,!uSEF1p5X%$E'٫C/!7Sq]-ZD~VU6Ǔȼ%YϪ 6xc !և% Wzj bk}3ՎGBW}S@Zb*+e!䈹LlDB8 [$:: %#Fn2xE^T\~>KAON ^j?T, o3YMu7բùrګXN JϜTSL:*t "7!~ d"Eq;u$M:Gbe$+}Z9z=A$f"&=+u4 @z|q[O͛ &=K̟nrS=j 7+Ĭ Q񘙛:O1)~V.bW+5X<Aa0|Phk2¡ iFfy\%dih !!7@^Am Y9i4<]*6_H[ WOngz*+u_Fάкm hZpm\gp3IOͩkf+*Tc1/8 H}mP(G yЮyC8ɰܲ'[Q2ҳtx?csEFI%_7%+3Pnv*#` pGHu$p,yXؼ~}FЦK<ף5n|Ӡhh>SVˡ!z.$0rR?~ 4n6'л+St ?܋`֜ Gr(zFiTǏ5K>}&=_ xBcfdt0%W.bNNZrܙ%%.쮂EpW]Essg h^dPpnˆuIF,[ 6 n&ifՂÇAƵL=0/kp>i<ܷ -j)ѱ"e~5C΂< XjpIc>?9A$j*z|5*r9+d2,G`Eg}˜!B&HfB> dTgG6w1WZ\n*,OINzrJíFML`? #M &31 bN%TAّ S$[Uir$H_A$Jr j@};òw?MFTd{èRMG1P$W kmÿ9 u8ˡճ"e?MG^컯gȂaJqfke D-NHt6ޖe' E(Ql]țpL0pDOh^(|a )`opO9DIoh&8t ec奶ܬDڿ+>N$.r~4ڹln6Qcxi |z~ lL@N`6Q$*0'jR5.Zu,~7vW(w|i)I2 ׈aM̩KW*1?R# @LnYE;ὥ_2|]t.P\ =90zܵ~ ޼u:g ng;Plƴf부_]|5zԵp^7.[}dlhk\E(ٹ ɓ3{e;2/>n'֭#yy7Dl7dp*c҅o9g+p ?_?Of{WS.˼/gލ|Ћl_Ol)Co~ny6+`㢙 @3/>tf xr1 j=`FtаlN\t/L]M8Ō&Rz}{M7']&[_B}8(3S;;>'y Vx4`0 &9.~(4ۖ~~Ihc E$⭼p݅m܉J0 bг)Zaote$ >7.O ٧``Q )lPـDpeRl|: 8mBo=Kd#M¢)=d4<"_[s˳ kOhs>͚7%CFOQ(6muNnڲ5mAi)7zC8cos<2qRosmA?6㥅~S8o N=vol.!Rj+C%y*.)ffc4[& #:6[aoE`ƭf#;C)ng kCzZsѦt'X ߂]tk}mg7Pi( np6l0l ugaH5ooC$Fɵ@ :<3F2${{uiϕg 5AÍꮢ¢bwWwbpe&Xe=7exspV>P\:\s,S|UyaJ|0zWxrCRxqX<Ъ=e=~\2!0!QY?  \7Qp3`OaZ gZԎ0\g!<8lW|a:2|;okEejB>pM.h\ve/xoY47c|*<\n.6wp< u}sػڻ֥K(xojB^ .>Sÿv|/}k-&p baoSl!?X?rkn. *`Q O{~]dڲa7wEi nqVy:w1jPy ̑+dz}쐹fMgC{_.쐩G 3s.W,@ܘ1P? Ɵ1J@ݼؓ2o#ȳz \d5ƹU.IyA8TBzmQq?:Cn$:m>o^8`kZIP&0P5(.~p5E| /i9A"ezkCe'} Fhk@=GFX[YFg N I.bH7^+.I:XWQAv&X7Ėx_F'h-!l-­evA#σcdyٲacqzՇK`㐇z_Oz9 |iC}}Yo/{IB~SWCn>7-i ~9r jzPhvuhStdEM(z_Z7,D8ٝ u~-6P?ƳХn9}Xzeɫ1tF.qݸ2oh\#a|Ta#0ǘg $l;q).&C܌h\<6/Gx-t9>"3`O>@]>vL1:\De~CxNϩ ;?jsa?<tl @g44HD 'ޅso-}?؇gv}s[Br`.$k v޲(_uk1緿"-@ ;Ӣf6(v04%c4֧f#/ajecH]&zDy=Jɮ5#_[^=U2+6h7i Ը8+7vAUV~q \w^4W{O>@ dwWkDv6ao2jxjk n{~*g4@MgA"2P做}!0uМy("O o9^6,\ Ql]<kkkb0[VKz<q| عٻο+HĜO 78yj4fp6P7LY Gqx{kVj ?⤳ v[M]'PC OW l_y+:۳t^&,>9w ~,qApG"L\Hf1uL.Y9%E^p/̹YqTI T-@e&9uvFGOYh ]1g/1P}YIꃟ:d!POi-k96PC?L98VN }`@IDATN::+ Aw<^S/kv˨l'bTH,p֩_%"{kV1佔A K`H6gÕ} {ٺy` \j,IyWCp =wh7 Կ2-W<6x59_mhGFcNnےqV' S=zÈ_\6>xjb8c>qjdt% ;dS TsNV* ּ?9_7εR|EZVX.&n統:9ǰhubxfg<.ڸJk^k4x F,-P~ r3AGij9Aq#;Zij12%x{\[*[LF[¢ j}9Ys17wmj \G+{OMPzp7m8٠Pyh%yϋ8L'nszԸ ֓5> .o|o/xzЦ~BAj]o\?c1ZJ w@{w!|i]5?m`zې׮n#`Km=z6dٱcf&, dm"d\T o )@SWKeMh WZ졊7!{1YGneW>nƭ^WY[.liW{ۭQj4IG΅pUEON_6*n)?^G~PF)5(SX#Q^Sz-`EgC#=e=ИXB3 QCx\ Q"zv<~Ԙc`+'1@-eDUsȷgQʢ/74ZlrA _gSV%Bu{K`!KϦ6O{ǽt'60>j8<<<Tjrr3)PZRe7.nwbޣ|/Pe$@|}J T#(\*KǒbG!zn.-ã4CI#Q[wM9A2Mo5{5@7yʳ91tmyl`ʱ$'S[[6j!y)?Uxiق)ǡ%qV0vdgExgv.1]=ߞŝ]K|oV ym3X|zW<~Q:\U)'K9)^Һ"c P@[&%%6Y,E>\y= 1wnsü8i} =-Fޣ&+o|90鐍TķҼ܆ǚ>O5 n{)AW0 SĢ Ԥ~V-}Er #lvlw^~X+sqk`;P;Ԧ!1B#\9OlT\Vp@&tiׯ(@I-@&0B J3PփehZl܁Sac'qrQj)!p.ı4&ǝ>mKަ@7ȍ]SgJYGvfbw8 aGZ}lvY][C:GaӺ(4g6BpG@LwJW(Cgn>NdZGe`z{5ML6&%[M as:)"9q{!U'}ڤw_^52u\b ,($0oԦi}BjlV@M93@*qJ1q5=D)AE*=¤͉BClKsiVMNcrj>a;0JJˠh7n+ Gh2s"Mt@țԅ9мYch6RJ/[j*2̯=hUM(b1|J@MזjX\|qB%Fxi;nRܑj8B$,,KȎ$NӦ@ NXP5\I&Γ=5J O29n*N>NXi+0sJQ ixPת'F 2u˒%p&»C(臔! B6P UVh&rH%U'{V$lv{@i$z- "`: ;ju@SrysJ,7J -Xnj ?'m6^;Akj~=0M2o]N߽"#S,-5:YRލ]"+beDhMNRB[+ Nbwu6n`VU$q}_F`yRmCMtJB+ Yj"UJk,^]pGKhzEL~o9V[9jbDZjL r”0K".W\S͉:3$߽[N`bv|5nǝbS$E󑫒 2 6DQK+Xx:q 5=I'{ZN@Ԋcvcg(7@H7)F(,ex: x jQ+ TeIQ,_ŗpR82[#U)&- 6BVVc*mGTԉU:>7eD D(Pb|YؼA*MYZGL|d' FqzY*LZ%UJP1u TTڧ%)`yR2"VFAD,4PS,3ZʧףT);)k#*&- z ,m %'0quIu5>՜',*T|iTjDw9)3,OoS#<YA_Ll9*AA@MT Zo`ʃ#b8ddRE* 2NGkh)aN>X H[:k7l/6~ǏԆ6 m8"R.ĔeBϳCZQtp<|bpJKXu0\L2i0!h"SH~ӧ9n>x!`-aCőʕ amV;H^${5iHz"zGmYTwTu"U/4ԁnI;ޗEe$^푘藔aV)^zETt^7Zx^H:5Vd#6, I8/7`koҁɹH!qZ< }ej#&+.nec-*uC`5TV@iENRI+BEIjgs@VMIhTy!cҹ-"}ya>GR^kroGE//0$A_|ZuL 23cZ;㵰y@9MзyЯGk M^mYm(:u>_ s!Q Oz߷߇k6s3IK镊/-4L%0cXGs/Ysn0p\*9H?k|"AÎ0o'uN>+ hx##RaK_l=[NJ'K?#YvpٰZU~-\kXU  ]2Yo^=O;AM0mVBѳ ֯7|;xfeʋa5za%^s9,sߔ+ <3As} kZN'ba&.x%0kXx珂YSli9 29:T=G ^|Ș1zhnBrV|Ω0phi)ĎH$c' { 0P; PeG*NT筂 0Hd_y j@};fòw&wlF);j50wm> lh,gCxS؊8]o fvSσg }O!]b{pi$] _ ͻ_t![7wp> mцy8Pȸ '3]an~2:i,)p!r%Xe#;'̧hQ@)BlIX4,zPӷ]{B柼pAFhzxƐ8vO)]m;́S[-?(Oα:` dS ąM!!*. vϡY>|9F]۾^ @J1ty oaSn(DžuM[w-}K a8p{ڥaQFzА;e.S0im$Wb} I9J? Y3/0cc(?f-_< 3Ñ{^3!c-`(ܱzH{/bϾoNjm2K9@RzvLQ5[{J?w5_F\z&!?|,ۿYse;1~ܳ0PCp澱 y '@MVҞNrj2&@(=+  9jnDWwbv^S`g=7eA?tԁgke+a:@WxrCRxqX<Ъ b?~\2!0!u^?  lPu9 q3ຟɐ8}l1V> [CI{'}[SIB ˰m\AmOr|X ^15%ק5FX~y{8ş~ {,&<;?UG0mw{bDG_.7keZ[_h-s4Y)n៫6o/3Qzoja!՚Avoі.S >>`˭]k8Mϩf~ e` t~ϸaEqy 8|j?Z^2w wmȽ nq&Z W;q(ڼ/"Ӛ5 @m9[֦up,Zםpsq*(n,K³-jG}cZENT_*#4ƃ{LJH׮-j?{_]g0]0F)\qFA(e^C"lR;Euak_ 'o /7.U.Gä__ۚ1Av{9 Fg_ Զpyz%GEs݋=qsȜ|]b6qRsрRL ֬\c%./M֚>c]m{(P+mbcӁXxB{_VF'Eka¡߭evA#σθez:r%q@=/PeGd~ZmV-Ant;TᖐXp^/}p8|[1$O Ln ~ q=Po/IB~SzWMr@UucoC H/6ɸsv 'Ll~gK]Cqe^t.偭bpӍO+܍|C:H+0g?70[><%'lp#P/yl j9Y*6$/ZΗ'zշjoG ZTM ^XC&gy1T7ܼMN{o~WwUeeuy\=yHqqZH`Wk?m7]ŭT3ڎjS=E:nHgCԁ}!0uvDPo9^65pMϢ(6P;VS# z: 8y0b5P&O0Kft N?offݤ)pl )nK.y |døFb!ee%~{FhRHThy6[QB bʓH NjMT҆ ԉ=q˔>qx{kR~ p/2qjqz^h7ӂsNV6nrJv~/ޙѽ-V/UNiL{ŖȍQ=cqbc=+N,8!zh?fk$C.U r d3q!y@{Cxd \4Z%LQ.82a1Ωw jnΞo89>7`E@^ֺӁd<;Hg ?6_yv):Ν)V߸1ssJ6jIsZDQ)NŲaڜCи^r#3+g@UԣpuXuvq1+9WZM+m[qz@i'/-p.|a '/%E{`cIBa9v\PqjhaS~7iuz)o[`Vq5Ha `]49SEi<ٍy]^CKjyElcR7(!{%q}@:!8ہ3tKGcא68Dݣ6WJp SaЩ ݰ%lui:v.b,??F^dޠ iW cߥ'Hw174@ͳUR:iLFVZN&.$O5XKKB84*;1 qd u7un7Ozza?Й4W.a7v1sL\b1*&er'c'j/1{W=<@O.L~]Icٱ~/s`?:ԟgm[9ZJGnL~)#De1,Q$jlϲ4jW_Zq .Z9=^rܞٞe.nmʪ1T冬*XB{ot]G(ݿ~Cd`φ@Gۥ7l#YtWEf@fWo[Ԁ|5 0a.;V[$ BP ۳,6˩ vjx-c$6(oţ(:@}S\ШVeaa"IW>{<1f#!;<#7G ZUƎmnʼnSNKa5PpԼ ^܁&o!(|5I@uyh cB?\h>gYUŰY|fp=,5bXwu<@MA9i@M+!a]eїx'A~ddRj0:HtD}Φ{ǽtxhďj;ru GM>k<<<<Y0nCH8!|=$,:+8|n ]kMHfe $u<L=Y,5 ~z=Pc$fr$|_ʡUnz8}`cUeAu^C&LwaXώj΍`t]ixV +L0c)s_+f}f— )gw\56i͙wSԙ+("VJ5tfMP'a]Ɣ^pZzNRk>rR?—8rʜT[)|U瀟@'K5m֋C8֬pVЯ}c߱]pW܋X޼aDvДَE+5KhRw)[ˆ5 ٫l ,& ٢`6>xjN5m[Iy4W W1,6&k NO :p񌗜rGMEiBkk^ctm~oŷg4^ k.}#灆dG֙Xߘǹ3nnlc̋_}NS+6ظmN{&@18p?T14 M\.;va[}X FiQzVv]h޴1 c%"a e!M3Q|G}9K-KZ6Gˡn:P8ۤa\:Ԫeb Sa2.N`MQ:V0irW'7?x0SSWx\uXN繙1Z Ru;xOZ=zkL2.OL@) sk.e9\1/Y{wA ZvdKߗcʡ#e|ٟp#Db 9ޭ·pXGjfXu-2?03̃8-<6<&'kv]R%t_o h0C݇7b{ȹ=LqD`jʷ٧_kP8yw8G]RRRHh%jU8pNf8>;ZŬ+KޘEeA5DpnEN،4< ;ӡU3ɛ;uwm{4Vвu+[d"a'DQCڡAODG# 'P; e%P\\ ehA*$ߊu]4jm~dk 1=-*s^vq 9dH^j]D=h 7xg`x֑FzCt4Jeh@L(E]M595H #CE5$i)ŦLu⠩TD.-" ውO{nPʁu¦u["P80OpG@Ln!٫bZk]VӋ{$Ma[M ٱ̀+:oTJMR(m/;p):zVJ92_k8uqNP/l 5}B3q5@FZ.e1s.e _F'%i [xxyqG\$.ďIľzҫ/$SNxL|(TJe̫'[w`LŕAIрo܊蕓lϩ sqZЦ)an.'>T&䮡RƝl؉X E'%i bz9= 7Ŷdjra!>ʉDߨR^YrI:$I+R9Ƈ> C H)@-Sݜ!F+ TU*U, 6]Kk xTѥ}*@@-I;W4"@ad˔\ذdqc͖9f 3<\MRFECDkI5O|:PKA6˒ٛ2\i)" LJ0k(lJFÏSkL'"[w#VG um GG.0vjȤJ뒵p.-*-SN]h'R_@!dS8I~֧=.@fEf#TGum+DY2^z*DĂ/̤ MѺLɀ +s `BfXXϩX*Ayu,^X)#O{ h@XDF/d^|.9AzJ S2 mr;!J_9 m0%8EqڀP|8UcMTŬ?f18+T.O!ex\2tLLP(BgR !>oBfN7 wI7T] eR}pIr zwRihUV<+U"e]E @f+DΏ'io2CT:ngh Nm!tj|sM0YR/@礠5AL+I9Pp+MYILyeۂ](D.PkIN|&dH,- +ի,YCM;&8)/Al|ΐ#) "?hO0s2ǽ>n$>v@EpPqd]LbNb:H Qfv&2 d'sexLITIqb&E!f9!g0XɅI2ΚLݜFiQ:6!2 T*ЊͰǞ09&;< >gI<^}@ͬ5i@-VrAoi M (=NDG ԄITH~9@\T%7rFOQ $ A@ "&}2YkHX],Bf>@3]JDܯHս2uϠ@M P5a"z$"Wm,H<&E.09eBgv*? "W į=K!S,Ґ<bS&ՒRݞFH8$E"RPĵ8T#8D珕6R?G*,+2ħ@uRiT۾29 J1{Ta5%Tp*-boZQ~K]`'ˆ A( Ġ;H/Ae=#&4Zh4 Kւ"0AC+SoIӱr5N)/J-bR޵,eشK]`'Š A!)U3$ ČCGVDHcJ<$>(#0^^V2E^#  *V/8TGB%iZ:lޥ.aEkӢVkHuJQ`Ɇ@$DHH%K_ExC\ gk9WIDATA2N7H5CR"i5+EAI ]`'"%D_RQ3u +<I[D,lx~ۏ>F#uDG /Ra.g]PC&Vy"r74v"r*bTg8TG/vs\Ц~Cs#9z+LM&nv"JYQ(N9p\p(P"'0433!uMSI N٘B5Z buKQ*LqLTF)g{@q+LqSf T00&1jb;\>w3̍]bPOe}5Jw|.OLv=jHJ^GDx  v"%s9)CM v}$ R5q5HlףRkLKNhLJNV::Nj D:GlPb>bxCи$ jSW /ge!1I'V Pkj'XuB [P( XbjX8h\d N䉖Qۯ9!|yj5vK.?%z\rRIQ8/UM`Y$;a=%_^z8!r tjq"Q;n0rIYSQQkrMiT8*h^\MPeN*c& ,  J8-dRY*$b'*LH YMW_ipi:9C&VM2 /tRxyhQ$) -JUʊ@:RM\=QKpXQ>$ '`R y `~,%'&PKڕK BmjE:!+O!a TdhTYHW*'TzѕΊZw`gq% FzVC7fPr偺z]WZBV0*ʤEm(nTV g3QI^BT SD#2b5$0xEO>JW˪ Ւ.QkSO%jJQH)2QI^Bm =QE'FVy[Z//:jO_KIk5% EY큌qT@`{%D2-8 zѣO2b5"po=V_^t ԞƓ(|%O)jJAxM59$/JDdZp>7AX\4@ 0@)`>M*%iSvΒc'ڒ (\ISˑbN"Pn.c M֟%gHN.7g{( K[alv$26@/Nc8qN\YdW@ F0H]Y~rvJ9Jp(a(?Y**ʳ(W57 J9(y,7)U 898}Gu (R)ϐsr @p\= JB_q3]9_|\sc@K8IJ>Pcp|0G)!`fa>QX ؂؍p 8Sсk.tAB'LKžp!"!t"!DE|MT+ 68J"-C$>&I#ҊKzAd4DN&sb\H.%ב5^3CaȰg0i4F9qqqxd2uLOf$3ǜ\lfv21Y,>˞NJcqYRV9k=k/$2NAYDE!\!CA@Ja O-}3)PlRح8d䧔4_i>Jw^)++){+OT*S^|@lM;=-c/eb7o_XdHUԪVNUKQ5J:WZ^s5E5K )jejUj.+[sWUޯQDcy,M+0MB횧5iQZZ!Z!CCЈЊ0Ͱ as"#fF4G2"#WDވ2EF?{hvtb1v1 VMk+mC\Tܪ{?MdNX=qs¬Dĩ{$'-Kl,KnIQKR654uejWشi ҅_}I']l=yS L9>Um*wLFfj̏8n ?+*kcV/_ V de~㗳*'7 *W" |%m~\Ԃ GE|љ"Eb{qاxMq$Z(\(Ֆm27ե殮L;4]chz g<) /~&=7em1'kN\ vϋ{,pZrSnZhpGD|SWZ.)[ы.^sBSeU%%snwK/Xy9sh+vXYѪ WsVW~fUnU[*Zq?np:zFÍ7tys}[TnU消m5V5UۙK?ޑ{kwihWgj=kkYVGzNCmۯcFl9uhah'g56t57vɷO?:fze'N,<1xdTΩG-S[N;}3gϞ9ӭA';v ^.z\oso;/G=/y^jhyrSWB|5k:'_ycҍOozqyww+߫ox?uA胶<=zkɯ>Vy\ISz{:~ggk֗BbWvv{Mᛁ~C'>>ds练b ]J:(/!?ȿcvf`s3`9`7ACV"ŖwVI288ip4>`[?lm$ cHRMmusdph0>;IDATxwx?3w!@ t4QDAEP"6k" H{w!l!y<0[[y{( 𠢢r;h4-PQQQQQQQ#xWEeEQMsDQDEAe(ԾvQUC< I`9Nw^рH\f Fbf!I7DN(V$aټ[` Ba{j'A0t:v;.˻F"}OE, |<j";]1 L&:>(.oF#ݻc&S'Q<!%m"hq(W{B)+3ߺ);d\_F_ h5Id"w*?(|۶S); dciԸ +=VE"̵jӢ5__l[q=eQNz=X Ӹ&Mu:֭ƶw7z HRQy0(z%Lo\OƔ DSb;jqS'OvQ4ly56};) h$v톥U4>VE0kR` Z-$~hܻ/§eD?ЅcKI8MtZ|D4orUׯy$>ڠ$N:=~$^hTir-ALǧyKYV"ɥukЅGܧ/}{H#\K&O_dm[ZQ!\r/ːd^l7,q=Rvva76)ۮH&^O?'nD{\y֭)x"wZ[7Ӳ5~&cDRFtbi؈_'O i'4nJߑ17|۶Ƿc'l;w/TTTyÁ'% ]xA&d!IKP<@܉ {Jwr Ӽ%}$r׮Fk2aT)+ )7𤓗NJ@4ЉՒA!<d[k4HYH99V# ӦPUIMZ; OZsz}O,:fDELU!; dyuSQQփVcœg)%/q=tQj[i|(wr% Bn܀h4!JGu(Z5"A%?Ķ{wI9^dlFq$(Rb{?ݕiSI0OJJ cZ;)wRHiYIOGX,-TTT@2!z𒘪T\-mh9c۾{(xi wuk`i}xMp=LΒ8ϟ\>:xm VQܕQN a,v]l;rxmbi,EAcqݻ0׬T), Y8CRO4F#"x;8qsF#"i wb 8yC<<zNRQA22>H6DS8Ϝ·]GvCv{)BYF d/Ta\ `߻CVS`2p<bN_ 3}2mAQ^.,+ߺ0nOQz"eeҧu%;O* r,`|XmnP6VUT%(JD^^WZAq''Hlv\ ]%f}A^G=m].%<9k:RVhDQX2oTRAFRQ $/@ =[Z- ~s 2(F^+hF#=IsgAS(t~:hZ4 ;d0n5'NJ(JEj-Z"_JSQQodhR@)8qaPCt9xP$ EQ[`]Y+1ȶ|ta (N'x*EDgyN";KEaRAC-EX׏"Kͥ<)h|0V.,P42K^* d“N#HYh1V6 ڄ*TTTzhtzmafwAqoTXJ-v?h4xi}7}BauyP,  >%AZXcOAQ.TEXEh4:}Y)w=+U`<8KMDq[Sy<dYf׮]DFFr]HHH %%իy;u9[C^^>(ՊnwbF0*A**jG3}e̘1X^ÿoyzWzG$I"((W_}+VЪU+bccU*TT , ͛7g޼ya4z?`Μ9<3 ͷt:iڴ)w&00 n:{KNEEEEX**\. Drr2 ??V+Պ/7o駟z6|Xb?<ڵ㧟~W=r1X*NjժӣG-[F=^:dff`,YB&M6mV?l"th;v,+WfРA۷otUTTT1U=Ex㨧oNB.\ĉYr%H^J*<쳈xN=Hi[VիWqF}Y*W>쫧oV)BES˗WiP֣+dtbp\FV+ `ۑcU`a2t,Up DJ,ɨQ4hTF`=[VR48-oA]].CԭjE%nw0ŁvoH\*.((0-Mm=m! nC>6EwQ;RQ wNŋYx1&k ;wߕN#//C=QIHHɓ7$"J,F"Ckt=zWLϞ=gϞ=zTUTux~W3g Pumۙl 6mڄ (zAv;1n8MPo{ yF䝜P}}}Yx1|M%>l63k,2334ikcOÆ ܹ3,_/__|K/@Æ ݻ7Gf\xÇ}vbbb۷/ꬬ =xM<IV#F ++krpGpٌ={xKaba֭uBTmOd2qy|M5jT|h42qDF#֭c^;v,u`Ϟ=,_:\59u ӧOVZ8p@UTu7j$%%1j({= ӧ7oWy`=y$oo$ymkʢW^4jԈߪ!0Eo߾X,~LJ^߬?>gϞeܸq?{KQ}]'|®][-_'OJ X`t~zk~m>3͛Gvv:ب^'OFewN֭SÆ X;=n^uK.A0 {2a„*LJou1i$V9`"yyy1F++`5rˈ#SN1|Ջu Ύ;>7x>}߫*n̴iӰvv;O>$5kdذaGop2eܹ >~MxT\eܹs'o6o6?^F#qqqݛz{ϫ bȑ/_;KժUy_9u#\d ~!}ݻwk3eʔ)CnzxEzkܹsӿ3l0>?@u4 1~Ud21d;ƢET/ Ϝ9C߾}֭ ''G5t:rrrݻ7k?a(.-jV姟~B$J,j6ٴi۶m㭷YqäImœO6m/g3}tN>_|rw}w}]BCCխBU`ݾadggoi{fѹsgWw}nWX#V%I_ߟ#GgVˌ#a4yc UcʕL2,[O?Lnݰ@azO0~x.^Hn߱N:ߟcǎ=2vt̘1ݻ|kF#mڴaÆ [YYY1޽{8!YX, 2ÇtRՋu|||ꫯزe SL!88Xh8q"+ƍjժjUZ\?/mzUzŋy7 +n/:=[o̙3 ㏼ 4j}G}Ncя-Ϟ=K||<ڵK*EBBS֭aX={6 8𪓜f駟J* 6L-z.\1l0Zhny]޽{4h{檆@BB;vdȐ!^i'Nرctv;-[qƌ=Gŋ޻E^>}#ui*TpCl6zk Gѐի+VEeV+C a޽XBb]e}yC׮]4h*1YӫW/jԨW_}uCşnpEDQ(˜1ck:z[mz(c>}ܹ3wubӧ*UoU㮮/Z- t2vXmtFEӦMi֬YqjO%J`|glݺ^ z!!!ʼnSr1x`L&SqRLϹsOA `߾}T^O/]4'OlٲL6o~}baѢE:u~l6uF2e>|x'CAׯz~Ijl6sĉAj_eĈ,\ɓ'qWEc… IHH`v^z ?a3h<}h:}ЫW/u *zRSSyhӦ |WO3ͬZÇ3hР87O> III?2nLJ6mڰ`V\ɒ%KxDWᣏ>vӳgOU`Lҥ uԹ$I1dV\ɖ-[`Wb4^'SEUj8^{5ʕ+w}GAAwuoNc3~xAт x5j!!!<7Ct:R ={dɜ9sYe˖;Fʕ=k׎+Va%RSSi߾=&L`)brJ{w[{tޝ%KGa2E ?,qWW$- }GaҤIXVnj+e̝;'RlY^)L&nƍRf(*v2eClٲlڴ|~JJ ǎI&^&[lɐ!C>|8^?fM0erihe8tP:uD nk $}].]ʎ;y//Æ cٲeL2%Kzm(*3zhFMݺu|WWLJ͛7ӹsgO]!"cƌAѳg[@wԉqƑV}(Ѷm[֬Ys_ⰶmۆM6^Wf^kcǎѸqcx ѣG[w凙f֬YÎ;2dl6zI%zMEqWW>?ڵSگΎ;F~ի{VP^'==^{-Z駟z}Jȁ;w.UL"Й̚5롍!޽;III])S([, 6Y|yTºuUѣGox=S# 2C]v4nlCx<J(!CX`w~$XE{MTp4 N>}PT)P㮮z=?FqW߲*nӢE 4i¨Q|(@lْڵk7ݵk-o߾T[bŊ:uoo߾|l߾U> ,̆ ؼy3|ܱIr/ֈ#J7uҥv{uǿLJ_ݻ)S]]???ƌìY8q"˗JzӧO3uTyj׮}EE Dll,K,y('|֭[Yp=/H-nn 2XO>~}( :6mмy;:{<xw={6h4>2 ח~E1i$J*]]e"eΜ9㏌9 qWWba۶m 2gyF-DapԩSq\.x Tˆ#(((x(C{9{1>{2/X%K_ȴ3ٌ(lD.M4wy#jڼy3֭>(\wƫJ`` #Fx\>%??Ox 5mԩSۗ=zзo_554YYYk4lؐ?㮠0GBBƍI&wMQzvڇIMM_s ^~e:tA$Ik ~޽{yVQaÆѬY3ZjuWry<y1c|XTz?|KQGxӧj5Nw%%%'j> ̞=L|eqnfXTzmhf͚ŬY/gdeesԩSK*T@Q.b9|07~| s\=d2}vVZŇ~(wm^QF=^,Qh4[vƍNW >>>|ܹ)S]](1qDf̘/BŊ"wRgff2zh*WLrQJ~Xk׎~_|wccci֬.\`ܹ(Qkoʕ#005k6oLff&;vF!55w\deeyECҰaC:nJ,2e G}h-Kqɓ'SL5*b0o|8.뎶zcȲرcw<%ÝLr/1L,\}*{~f̘1gI&}HNNfСTX/}j|G_9sP~}Xݻwg߾}l߾~rʡhp\$''3c Kʕ+O< ,NGrr2}AcX|Gt6gaYd QQQ%::QF!m';Y1LZP> 1cxG2E1dYb`49r$+W&'' "CtAxxmŹQN'*U7`ŊPK"00/x)W5k$00(Lp :Ç̤\r|׼xpݻ7!!! 0J*QjU*Tl&33ӧOKӦMٳgj[:t(j?fرDDD`X&''|~@EoՄiҤ K,aÆDdb<,Z:$\4Ba08Z-&NѤt:1we( FIpwN p8\8 ZaQ=JwN. ǃ](黢th4g~';??d'H<;)Jۤǎ;X~="66GFٲe)S קuT^3v6mĺux"SJڷoOj(JS΃ݞbuvP*RwC(VE#C2LnhZz=FIN ܻ uۺVmҶm[O?}rZݩCtA5`0hԨ5z(n",#I}K-p??v='w{=vzpaJۺ~R6j4^nUb^RJ1T;%"6srwgx[{s/b]zT݊zmucTTTȼh08..N]R*T ,Xw%Kǃ]TTTTTTT? ,ue٨Kڞt۔"rܑ(nx{QQʋ"pD\ߠp;# & ۯE}˿5JQI}S[?׍mg׷( 7fGA@J[An=i4ZdýA {H.u#/طA@ )QEDK)nY0WVN+p81h@vɳ9 D$ ˍ$ɷc<Kp^nZ Qj{ty@<8]L&#n Yå8W< &3}aLD5tt\yk(Z':ͥIr`w^r,)(y4oM)LApKR``Ԇf^9oFKnF"?K +D9k47e_F^JW8Ё^eŊNz/@$`1j}r4mEP0Ч?liE*7$|}0D1M,YXN^ NѪc' jhEIVE8gV3h8=ZQм2FGAV֬tT llztM(n~?odSnc:oS(&nczGhMe# $O}lv, $jSjV*Bj=hu:nzYQH8{ԭQ (h4:4"HJaRv$\y,^=(xHr@.2AԲpU*j32$gvy޹GЊкS4[b(W\^F. ghIJu%IAquZ<x1 KRDAd:,E%0HFApN&l.hHbkB ᕸxx G/,s= 3f M'&mA+R28">[Vje%_Z([=PtP8KO=ҥ Dpۻk  ݞhJ^ NBYl *d%fxWJcoXIy^0Y > Rl''K.xCIŦCן@RԸc4{7eth؝;R i&3`"Q?ħ۩V4;_GAV"vFL#(2S<1mxǢ ,ObH+Ndܹ$.FN V,KJa?}8Htd0Nz}֡c6g{` ݆N'rxv2b}BIKHiٸkH)|ظj W:)_!fy{7B@zd#'OHKAv2.yys`<]|-INX.2r~:Ӗ-TʤO<]7i ٹ}Y<#-jH.Y"hh9BvA(Vb"r$$RQ}RfTV fSOOen(uۉ(h4HAqx1 }p4=G3ev&"+դQJJ#Gǁ')#}N.ÒĹ|"4_ *qj֮ص{s>d^|V/?e%>wNoυ8r=`ղEd$ѸMe2\NhPmWs*.adg2HK8f<}dFKb~}Bաvo3 ԮU5vӭGrӓd';HS VDDyi}ŪٓXx1g$obrL& rt|.$P\ԎU+MJ!ti2bħr8N` FǏd67 _[i)Cvj$8ؿe#n̹Q,f#/$z+#2gd.o'7{AQ`ٻsY q19 Ț[([!(1gxىz+uI:%=gR…pˁ'hڸ;td'6m%/m4r8a6'#5_:}䔋hM:̚gO\\pukUaۺ\$ǝo!byekxx˦ߢ[WBJ?e*a;ժ6i6l=φ8y.FG&mVQ`w/3ج7)Pp^Jc揄$$)"55žϪM[)W."3_pdЪS;~XQi[LcɒeX0":*uH`pKĠ,v];S2sb$H ^*EBAANo/xJqL<=OQr4'pQ"tZsKX4ޮ$Irx% HQ(,] 6ФQ-fΚNz L%+׆Bd |)KrQP"fCMڅx~޷< _9(mЄ :-rwek*TZaTlXEP2,\zOY#y jAE M"$(E2 h4WSV$_!qsED-[֠G<7Ԟnrt݅Z.\"Y$9IqܽNCE㦍Y9:ְZ5"˖J2-V1#e< Y)Yp ,^z*sf GFvK(\$Qp{\8]NhD^ܚavFʔBJSs 䱖-Ћ`0qMSQ@Xx9^zat  &*4IKR`RY4W=.DYK5 mvr:htzc$lI?{<iټ1`v{nһAyݷiZ:$!"?*VDT1ѮmS&NG-IKMnCkRDdd4AVpy<8n7jGs-ۺJE hױ3%MzmM ]`YGAO*iа&!T\_d\# IZW7y$g!Ƀ-dCEH8N>&tmŎꍬ߸uq1R3 +3Ot@' X^!''DՠE/m[H *UAP[4Gpfhb3x۳'>A%iڠ&LJhQ䱻BIX,\.Nu$D?zgKˠFͺ"]#5{!ekд^U2rmDGEصcѕSb4>>cZv;FTDGjvW.zqx6=N]S> pb UVFVB-lټRv#?ފ Yb5NHg;cͦT ST\2u/Jt@NV&>!hԑHSCe0X|  BymvJ)GZ5;OzMZ>3ǸI+S0,>V>z_@\jǝȹ '-V`ݔ-[ t*/ܙ3QأI,ZoX82ٰi nہ&c*6mM1<޼>Y9o;lѥq{oq8\th݌ K9^zMjE1e$.Pn-d cl߹ZL'ɉ?o ׭7E14URn.VSc4jXsqB55RDcG˯'uF$;B~<Ѵ sr2%W Ə%Og@gy)rW^6jиvEv6ULGt):' P|TNAetz=nAEB4Ȓ}-zn7&3=o=/~`?$SXԬj4HFUFECEThv ՈH(R]NG$4:=.[SL^맩S G. DQ"KV-Z (4E#+4 фBhzdOp6V/Os{xt~\y]`` Kr7=oT ӅlF[lײSa(f3III%_R'4Î&00]e0Uh\J59b` ..?=㢬AR͝Ѻ[l?׻h 8x+:&:/I=2>\(dg30n\N:=٦,.ź[BaEy`-%_<1w*o?[Iy[ԕv/v1dQWV7,bq^'?GRNu>(z0T~oA;nyZj}KEEEEEEEU"[tZ(L\pj^]T)\Y(2Υ("q9p/b%jQ\SWSUdL  Mn}Ti%-Bk/^ F''f3}{cJ~3 M@&ʃ jDez=S'Y]P<HY4jBȀ\ɞEUrj؇p:c,u2[2`ms:BϿg,+rz d#/-+1j;Ճr9 ‘m8ΜFO§Isƌ$ɸ/ A4[*Trr0k& qƢ y+2&q>-[#L\-ErxGDF §U4v˅ekx逫T4\oM vl#s gNH!XkK/ n7f/iT ,ĝv FrڨWX5 O JrA߾NX********CQPzzPEEEEEEE ,U`KEEEEEEEEX*********RQQQQQQQQ*TXÌ3$I5CCXnjU`<̙3~өCEEE!`YUcK} ^['JEnt:ϿuxVQWtRׯC"+--Zjap**RQQQQUVԩS,_o9s&/^jժ^e#EQԆ ,rʼ+۷׭X~~RJyRRR֭o6,(UM9֭KϞ=yWDQΝ;رcYd /"|',,.]g,X@HHpTՃrXV-[رcٿ?;wN:ԩSnݺNJ5jԈ#GPfM86E`耩ү_?KJJ PD @@pp06m_~ԫWnݺQQ0Tc\FÄ V?<}_}Z:x]we͔.]t *^PQQQQk4k֌f͚P:TC(hZt:{`8quqYRSSRJhт5kht}JJ ))) ^ѣԨQ__ߛ~TRū:bFFc͚5$&&b2S={$&&k4V-x<=JDD#} ?77gRreL&-MǏחGNǏSlYo=Μ9 +WNUWo'O$&&@ ^̙3l6j׮@z`ɲe˨]6UT/`֭dffrNݺuR ۟cN8&M`'c{S>|85">>ޫ:I(S  "++ZjQlY/^L6̙3iРL4h̙3i;m߾:upĉ[z,tؑoSll,uaڵoSeٳjժ1l0zjKfƌ+//{N:p;v`ҥl޼XC xWxINNeXXx1m۶%//^7b>#fϞM۶m^O><dzj*FŸq8z(3gdذa;h3K,QFt҅ 咳ܹs̙3իWk׮[.{JMMyX%KtRZjhuu2m4mƑ#Gh޼9^Xf Nmmّ#G2w\z) _̚5)gݺư7嶺Η*Usi&&LlFĺuȠ}@O ƍ㭷bƌ}?~}cǎ9sqp80`$/&*Piٲet҅_~_~oo۶-/f̙kҥK?n:Ǝː!Ccbb0L7o^ (SL*VȊ+nyA<l6ӠAV^}K_jN@TTk֬!55;v0ͬ_[h0($%%1s‹u_ e|g,vIΝUVѩS'^xLrïԩ__Wnݚɓ'3|p6n5O>ɤInzkΝ̜9x@{y?Mnj?{M޽;~d2*VȚ5k8s O=ץEQ>|8!ЬY3qFAVV}_7O֭6l~-|Mvر|'|wi檁o ׯ'K.L6u< 3gdĉ 0@Gԭ[Cz}$''駟k޽;M4jzE|_d΋/Hɒ%)Ymǚ>,Bjժ 8D{>}'&&F=|5j`ժU޽]>sܕL&oڵkt7SAxe݋u_}>St1!kߟ/~aٕ-[h߾=:t`ٷ /믿2f~mu={彅z?0j( 6lvDDD/)ćL²eܹ>|듘ٳ1^!D SNٳno=~-[ryM.]dzIҥyԩe˖h4b8rfbҥtЁ3f@AAة^zl޼ /3PbE, SN1|f̘AZ8x ʕ#??bE)زeK,YBǎڵ+syuF6mĢE:u*&<2d]ve̙ݛ|XP+tIOԩSݻ7$hxK N:uٳ?3f rL& 4`t Ae'|:uxիǑ#Gߘ2e }ri,^:SN_,צM8t9uEa:pBʕ+ܹ#kA8y$ݻw'3F6mx׈[(@d䬬,bPt4WҶm[رcTn"##9r$Z;ȲLzz:8|}})Y$FQm$WAzz:6 J,y!--Cx*****l[n-[Çqq;vQ JS|?UВ1[|p9 jx.\ V +G KHbrs2If~iÜ hܲ5sH8{=ǒox Yr;[6E{OEđCG0 d8*I8~~l߶g)dDR)p)XF6rr;s^ Tu䓐g^vh5'`" Ygk=s !A5 E9sмeKΞÑ,|$LE^v6lyfw4h /D!~F.&&PGV AGB|:Y (2N$!)/+Vi)cABb'gm4_rX},H$$ģ1ͻpa689BϿ?&=sgA*1>y%t QHA l:G/,*W(Ÿ Z$ضe=Sml\8L7,7"g0zr/f 6s([~)S*սVCJRI@'mZթ KȲV%#5^GA^n[z׬nfd&/" ȢDo=-v%1N\Ȣ\aCG#ku]eٺlGc9{.vodYb\Ѡ yS~aڷMZ}YϾ}Giج1ESb 9wbsyX|-5k`?Rv|DdXI =q(H=3ٺm;ᑤe28LDr!ņƞɠ~=\,Z4yM*roYϳzJ~1J8{aT\qGuN$jV+W;VٽÊ[U5Qq&8Ҹ+?_m̚lfvLJhbOШCwU`ݴ}!lyYOHAH@V3e=C;Fs|R#C0!!:'͉3T.}7=wK9XBN8|QQ~Ͽ5k`kf!ZJҿK,7[kE#8vpPl7-fg0ڊF}2}6o%TcRrqg%3{J~k(9rc=&qxv|¢ٲx:BQ;ఒL;vLR%,w߳{.rFDxg.$?x~lw|!kŠ)NPz9ߢ-X΂\I#Xda_ر [NوPBI=Uk89qezK<ٵa57o4_}[V3vtv܍Gnfb*aOiڬ1yCƳkV ߹Y Wm.J '&LB N .8@z㹧)h@BlHy]8}?V#8~Z,!D5wx/_gt*r:sV~$ǝĭ3s`\W>G g:yd@nJ,[t$)JEyJ^>ڶ ׂNMJosv<0*=U\V^gצ5[FRZbAs|fΜq]lܼ*J3etթl$6!  S~+fъ5޻0\L!e jvhM:oٺم@Z-/S/iQw, T$cs'ݧ}Ŧ9H= {iIϾرq-1=DѩM=lvr.g?ZW0l߾M'ߍl[ :@jJIBR5t9IJ$d ̞=(̜3'N2am,Y" j'2Ҵ^ma{xV/]4ι ?rEѨc߸ߢf@.N9)U (amaΤiX_c( {qةF̜=MCvi藜48Auٿk7ϡ| 2哑$76!%pٞ4/gsl9׭&0 o|c :܇cG#?GNvGvmdEi|akȑF_/2'/ڭ'pN "Y\p>. â8`]2ڸ-KfQsYq/ ^ d{ aiTߔ;gEDFq9:i̪ 1"#t,OujÁq۽5Ӡcy{C n;YP^ÖU *񗅘kt<BV@db 5zp榐qQ-<Ǚ5{&՛w@i?uL'_~%,ĞNrj:֟g# ']/FϤ ?__xUBJ׻۔ep;k"ٲy3ӈhì[jp/}:B#Y-YOPIJ*Ոؽ_Y9c¡GᔋeƵ, IHLjN@t:l^21h5M -zvn͑؞2)2nۅ7ٍːxֱh*|!DN?Ǒ$POijzVȑCYb1Ev#jLTR EњctA(hQ״}gN!sK(xn$Y (4ҁ̛=LdF+:#&6[Ζ)"{Nų'q@{nP lX+۸N8=.#‰;MkDV.;X| GQd7Z*U`P0D, Wn#Y! >ŧ ;o%Ep;FqzjN&EDMlb$ 7#jp%x\4bРZT&N=ٟVS"X8>Rn\кUSl\Kv~Npvlºucͪ,X|;Ǎ%\" +q.6z52׉J""V3?e9rލQ2 [W.bŜSpӤu{K5kVfyB3:|0CYunIBgȬ\.PF 8okqI n (UeKGƏ/˃h"42/ Y.I"fdI#+qNs/su~cf/^̙,ՋaѢ4lP˖"$8#{6|,2+lXeVmvtQLIR/R& +EbAM^CӚ8q "ߧ,nwtr2ݽ*5i֬5#DWE2 FDW&/5ZjfqNIhjm™^xp^sϗĝ?Åt:w}Z5u)]vD7V'l}3D,CKU: :k@U̅5nLp_JUN&Тy#q.K=')U?7ԞJq'3ݨ]¬_2Ux'0LFPj%)Ń.jPd8%JkAb $<νiФ l\ǟ~_FC\tiVAUî'xۋԪUٖ 4kْА J;sݹ{'$SABQYkժZVu+" ;a$$!{}9G  `z4;k\vpzt kjR㮻 &4,n4?1X?mJNbR*qX `)W0n)DDFLPH8Ď IW_f#>)4o#h#01D+l޺A\D\t+['`4R:'ӥ ",y;0ۧކrjhHbINɤwŌp=gv^=`B#YuŨx"+ORjjʎTRYcHI$&6h*|tJ%&&HOO'1&]{;`QmV׮]9on PWz>&}{ IN"*2aÇSq`M~1]3[Ȕ. ד(bٿw'Non=zbW\FqE1$ҹS*N'kf /M]&& &'3xCX,f tIĤwwNؚKHZ7F Jaadw!:!}6g5}/Eºy0.df{AxƏ}{Ssx/o,̶`SRI %<555ߙ"/4,>kBw./곏:RzwIr3ͨa}'a\o+;b6@QofNaORrWmgF靝PSgp-wbY|r>,$+X- ^EwYĒ$cX$x̟3윆,dY`Z$x Xf4Mu(a6uߋϧbXPMz<&l-$ E~]v+@  MӨ ё\Rq|RcБ0L\9o~?gkE!::ov4 {ҹD ogj@ :a[wtd2Ѳuŷj^52ٚL&:@ NI:lX JkrG2t}pd h~ / @ lܜK%8=q z!?bLHDQ@ ']hW|W_{ F社 1?g*_ۅ$"b@ `al4k4ZNe pQ׶|"@ !w%xvI_ڭ'D_|E"q!E 0Xm1X:z@EE6` UoJol6$="@DӐV݃CL,zT-yKFey@ VCuB. _ٳCDqOSJ*sgc#hg1 @ |UUcL3~M$KVgtM[9(?oT@ N,IB2lq<  X S<t]K 0Xf; ed=G?z0X@ bD&нޖ&.!@ F:-]h g@ %@ @ 0X@ a@ @ K @ @ 0X@ ` @ @ K @,@ a@ ` @ %@ @ @,@ a@ \ h4z麎` 44EQNl{zEDǃim.*GĒ@ ~KQƎ;0m.k2(..瞣خӧ3mڴXhw}7z"==t:w3gi6mn5=.]FNؼyI_rs%Z檫bԩv]~~>o.ʻ\.z-}Y^^kFYYY;ڝgG}Ċ+N&NȢE~y1˗/?rӦMcUf֬Y|Wܹ_8aN@MM < eF#СCLvȿۼ曭/_=zpUWQXXu]_W^|E9رc6lh,^'|@ իw ''nݺqb2xGyWyGz?ѣGSQQ755㏓ VQQO<EEEm.`|I<Oӣ'x+W<|ק^/'OYi=i[oo}Ze{=vZ{1~p.\OwjXYYn$I`h^~e|In6.\HZZwӟ֭[?~<Æ cڵddd+ME!88 p뭷rwkvu=@BB/Xd ^z)GfʕGeٲe;qƱbŊv5J*I$qݑe5;4:{Us&sv61z>tS{Kbĉy'2cǎe` @j<Ȑ!CN_NΝOە&Ǧ|6]߹sgȪUxN:u2󩭭(a:6_|1ׯMTUW^m.ӯ_V=JVV>O,@ !'22AQ޽{{@tttD4m.,DEELpp04t<:\ 6_+Wr!|>)))5Çwπ@ @bbi Cu;VxZ;Egٱ9`1m 1@pmի#F`ҤIRSS̙3K> 3@4Ϻho d]uO t\ջ69l,X!CгgOݻ?>sΥ"_·~x|bb`0VZuZQo~}Y|ɓ^Njj*կ0`}K$֬Ylnsc!Gc`X˙3?|1&K,駟梋.b޽"Ґt"N#dfq駟vL\xx7|fcٲer-"$""Mp:gTTӇwy7ҧOl6q!z-x yzvmN ~nu?W ̓O{D4z2ݻws>|^DDDyf#$$DD@p-'geev 6t(ȣ> %<<KEEYYY̙3l6cXhlllsO+㡾gc,tZʑ#GN{ԥ]z<Ȳ]x^,UU mv@ശM Mll,s;6tcre͛ ((aÆqޞ !22={ڵk ڵ ۦr߾}TUUCBBk}:Gf %~z}Q"##;ۼkw}<裄";3൏=L8!CSOz̻7|lYM7݄$IK?xoixw[x稨2 ,^#$$믳u6CO_,ԩScРA_OrUWOOv[;?1]߱袋y'yOzMyy9ƍ㭷'%%l۶nu8x xѳgϟurLu466{\y+h O>ɠA5j?5.<쳼 0t\X~9ɂYub^PUBIg#GdӦMs= 6ݻ3j(:ub\/_lfʔ)?JV+O=/<8.[}6s[oquבD}}=k׮eDFF.w̟?kLƍСC$;w2{l*++̓>7ƍILL$883gҵkvk6s]wqUWѭ[7ƌCrr2^;v`TUeĉqgt]"TUIϪSO΅^H.]ms,Xd(YuL&&?>6TYd 7|3aaa瓟τ ڼt׮]_ &yÇ?>ƍ#22+W2c 6nH}}=>F׮]k[wn\./"\r)G2:"۷og˖-L0ݮ9ƚ5kٴi 2227nǏ?npB %>>뮻[nkbbb9r^>C֬Y:z5\Nllw{1c *++peqw X|9{_| 6Я_vo'O&//FL&)))\yz뭭sPw len|>_Gt]h4bp:dGӹ2XOmTUm+8>c!\GUUdY>XU՟B3IJAm޽;+Wr^Ϫu[Λ-B>:=EdvB}y!c=D&d=wr4@xrI\t)ٲ%}JV^OKZJ^ϞUk0# e9[FJZr9G5Z-?k_18 ˩3]e X!?bh9SWLtw fbKv!D:k+M^"„VCUI!s֯~0Sy*K~fhj0uT&1-̙زm;"B~vw "S1)Ik U>6TV'&.M;0kLl-h ':2=p.Ԕ1k{BYϒKKF#ObgoFTL e%GFpdfQD.V%2: kV@iL uڿ~ذfE+IMI:s9kYt)^]hF5\W5̖-8T=9yBLTn'g&RRY+e˙>3:cìv/_G3c$,1I?wۢ+'#{5eLXTA&KR&1c8ˊuFFSsp ll$3EVbG-ٴm7Z `U\a]GUcm%K.`h#kvIHĨXThq6z UZc1 mi.N+sE]U90jl1cӺ+f Gaپu#wF©hfsK11`:!`q 98w?joVr vlVJլݲO|R Y2Ld؉}Ǟy\@tL4GII!TX- =~rhf6nIBR F9eK)sbb\Œ^E3) Л". בUQW$E\6}/ܱD&aŋsąS"&;O&ozg>gE Hb4` SM6Q!!D_Rk6CUY9ְ*JhtkYY<3;@m`U؂# bmKFz3,ŪYG^ȇJy/=%k H0uj3n/ n:}j:0`R^`uDEDŧuyՓ#hْÂ[Jٜ~3!Æy8XRBSM99w/Pe36ʡrpN!x|~&}*;QGǘK Q9\),`9@mʀ`}d:Z7_eÁj兔6ٴr*X9w.}{q4Ͼn(>R59D%vIk0fv{~FX+6wVdM>J\n/ɑ6wàH WiP"mܕNbR"h&0fsr1`MܺN+ y{85N(۹C2ݳR(-9W3t V-\=$ɓ&nfGa,aؕlg}!W=7ȇ|@pd(/jzLx)r*Vl`y}IJHw-@\b"Zf .' O$/,vc5}e(8}vZ_~o8,DX3~rac_NCP] 4:<];co1Ż5a4TR#)ص I_jf Ąįa}nĬIbV%Gj5%<$$&w5Q^ov*;w‹Fu/+/=$][0x )|!l۾HM;JpU&,pc؈ h>7 Qyh'~2 U@Y [֮$"&~D{1y:c1fE^JChl¦;1K^ !F&x%DR| 5}o[ 6 v'"eKq5GL*); yt5^q5SxU .ؕsWq{G3WC%uM ! #ok>fj";#%簫p:rV $&Ԍ?2̈́U@n߼=SX|#%6p63QYҚ&ˊdr/A LyToƧM1ټf>{2꛸ [p .n`eެY:LaoQ+-b pΧschvXCNIFR[aYUÏ})! p˵nnQ(.9HeU{4fö]g_N{ ( 8$#[pSq֔ҥ ԆJ>=R;Sg'%{( ]7S}V{WrӸkQMVGDe 9*( rײc _^eelbyxe;p vlBR} J5d r#ɱlں*س f#s:&}]ٹMkV"F5rו`N~oԿ?G FA2vmBdz7`5嗈 7W;oAiWlYDR9yڥ AF-_qWb`NjCݷn 5dmƓKA~. s˭(ޝG3P[[υ#{Z1̬LvÖ+H3vb4)!.)[}ojir_ӯ{7JЩ߅\'8}h:93(rPS93q YY>.$$"/lIcm%݆pMcXhj\+}C5J$ERSSGσԹtL'74Wau2v,Coo[VA g#`/EvoE 5I<)aRn n- .*ʚnf wnŇFF\8Mk|"Ɇ-n߈ ?)š3u LU!1t́tэܭ6OFttɼyٴi΀.L1S$,&%ҕmV ]qhir7!$}/>W#rҚF***0\e s=1l{t+,ַ\µؽ=.!ʦRR^fbԨ1 :] 1Yl/FJ|%HJs E3Z5+.3]Fc(96<,- d˲l[LՑ2zA0M$ 1sr\|97Xv6 CueBd^8` Æ ".>kYz+VpU7et)K bn6B ᘛtM.sۄYx),b1μ8E=t Q o%.xE᏿'"l]I=g(Y3m!TWVXEDWl10xJ= c޼yl+(`\uX: UHr:BP٬p`4l 6_?!_w pf뫉Nf )47Sg01`v`ͬJxkX,Qf Y]"ٳ ؞GI@sJvQ^vfJEF^vÇFltogSA!׌C+;)_sX-۶1FsؑLz:۶lƣc 4Ě}h:Ϝ-*NA`&fOSs]5[wP_aC)Bz߾.Hn^>wiF"dp%B7(/aq <ٙ ̝1m[)hڱcxr-wj1(bP?[ Gߴ`fϝϚՄ$P] =.%s5 l^:S[YJa;I1q2s FH y;hl@Dcf%ٳ+ҽ Yi?!VJjj8 IIJFf:,"o6Sm0v( 1;\<9sVP=L~-zmКK5=i[n#ǎfil˥yc5 _P+%i"1'٩QT5~}Xm6Xܽ^/w>X%IFxپca $EPHxd !K½9UzF΂8PXDTL4Ȩ݅/ӣG6$dP(:pUՙP; 5l߹;S]Y(Q^QM\|<nS  ** Izsj7u΢G.nNVʉF8XV؛k_}ou)-YM͑=PF~[ݹ _o7l5on^?hdߧ;͍`dСS0*vqQXTBvۑC3ҧWw_:ےOBjӳ\uC ÑZ5`s63EUy ѷ>7F9R]KL| Gm~l(*P ёaTʲb|Lie}lٚCp=d8QUν5` 8y毯?h_jְ#6Ւs/]{&*NɁ43__8/u3IAyۜK@ b<͸}:a!..!2.{Z@jf6F0+2;[7oZng#۶ޅ ?AA78uKll" [x]_}{лTg=:9b>>YnEݷ?6%E(ij1B83Zuڴy3la]\^Ȉ`JKMItڿw}Xj갅uԲm>{ŦQ%fYQ!$'qAS'5Ͽ"22-:m puN v ٹ+Gyc߻; H !v3ŇJHHN};mѯ__ϖ͛ Nsdj}IOOfmF'gM,߰ z]t=W )8Ɔz`}eWLAPKxogNĥ5l!j(صn=ġ{w2__ 8X&)2I&s97|n=DSQzkX6ok5XtC%eYh2TEQ T5IMFdIjmt܍P$*M&d$c2T@@C_ƖlUPF- 誊 hOWHVVY/r(-EH[5YN%>tC 1@in**zb~JH 1N[эNpXSΚu0#5b6n8n׳x[',Mhll~(F^$a1 jly j@?T/;$$\錎KX#i~$_Οx::t;/x,ql@4hm|EeΝf ^pⅲ8[ 8x<^oAd9EQlȲYn]4$Il6c6 T񄮷huNVшNl6> 9zKEȊ1+黃/ѵ @ >,ft@6l6Uχ, n7AP$Bz-V$MC;zr(-[;jLIf d i. \.;nlӉd0 x=Fb6t̺'HCK<*rPk*y%.Œ` v܇g=qtW PSb6p0acG @z4cᛯp[؀}]y G;E4&i7Hk7^KW4zudNJ4-^lګ7aހ)9A$|I;`H bfMǵ}׋)1ˮ~Ht5k5Msg~ke|~*_bNмt Gju4$知iB1SQhZ0"샆 1s*G6[6vaBXqm@ES0wʀ@CGI5GY$I8V±&Kv7LG7p4Vd|ʟ{0u~Uon$:1+2Q;s-A6"oy*_{wME"I2?™L FgMS;z ԎFF2qovG.HF#;xT:N;nXhZi_a?ܔKKSIz $KKG7@c=Uosj>%+ _a}ɟaBLXuWvܲ&M4'G[v(F`;O?m@* gM[!Lt]؀).g)1#/5>,#Б 2ɄrDu/wK¹TP-k:qeӄIyqB^OO}4 4l͔l2 _0?=g[T!M-'{bP 8t)B]Gqnųg1%$4h(b³wqmvdxS6+Uc`l޾E/D [@V0 sb_VJX:w[h;- F̙SGsrP{pm܀O?) LÜxvnGs4~/0DǠHR"DVUE ’S&˗XߡC hhw %u:D98yډ!2 9, ct,k.! /t] LìKDFaD\ZWG=ڳ7߁wp_#g%-9؎)5 =`?BVMRq4-[kp`)ng7!c.#~ C4X)>Y)s[֩aak <(|`pT@ z\A6[h?CmjB iIi4z5Du/YFQ9(lOuE)R+L/Lx0Aq)n'/\' @ 9l@6[™0l}cGSUFc5XGMl6ٷW^. 1 9#eQCՑ Vi765ܸfw6`غfbtXb,pn\p1Պgol}5\z6XL+ h74ݲ" %u6bF#ز W]Uѽ>@Guad2mlƎnPd Nq)IR7X̃d4ZG2 >8:|*% s&|*IPUnO@H=NEi@ K @,@ a@ @ %@ @ A{E:9jGDX~|>&_ =';Z  O?EwnFڈ^ ..o.dF#555ss%{ޮuq8<|g 8{QFlvS^^… yWIOOW^ﰱd4ٻw/˗/nzaZmx:XV֮]˔)SgȐ!`ɲLSS+W+ ==oPUYȌXV3w,̟?ʘ1c'5X&0? ;w1~F2XB#cΫsbyN[]]}Y<]馛X|9/2oSi0`o{o߾̚5ݞWYYUW]/[O9fddr} /Ow^{;*v4$rp~Pe~mN?LZZZ!~1f̘6Y9|0hڸnѣrl$%%gIfN'^cAdz_x5O=IL:o yK<Ǎ7͛YnC2#F ??sevZ߮t?aeL&>,;wo백:͘,Vbڴim2W3a^|Ey-[&LpR7xݻsr}GQTTd a~l۶7xo1[,>c8믿nt9t =cƌ9@^_"MpuV5{wq0X-bmV ׿>֭<ofI9i$μ22O=֭'d2oرcijj"))xw}FJ r1ydjzIFFݻwg̞=C.ܹs =׺۩gڵB3g2jԨ!9f, f3;wdʔ)<i.{MO:|9@p,BQQ={W6oz &ȵ^СC)**P_K.9ٳ'_gK}}={/>׊wbKpҶ&!!ou!'--_W9r5@ yBܶm]t\peeeL:?<,\B~?#G|Y?JRLNBBRWW{ra:Z1L۷'裏~(׿5L4 !@ e{=n&NHXXId(c=.mu\O?V~Dj'<< &|' #++;3_TWW(N W>xy6<੧"::C<=}SLᡇjwPA9F<^z)mz6lhW_$InZ喯k˖-gŔӧO^$$$uֳ~@ ݻܹh@~h;8eMKnݸ?ICC:?L$IձEFFb6Ù7o .d…,Xŋ3rHꫳ~(ʏ0|/ 굶mÇD `0P^^λ<@BB)3C?̡C6mX%uZ|ou'@ .ꈄwlܸKk\.r7.(++cg:.!!!MPP'Nq=<޽{3~x^u[G0X`4Ν;QU=zt/lر\~<#83z?2tPƎ|fgT裏%Z(TUUor֦@{{2{l1%uX`AS/$%%1x}r~)/o&J_:.[WWDŽ ܹYe/ihhv\{꫸n1%un{ O?/.srbb" ,`ʕ9#G`]_]w{~ߴ;]222믙:u*7p)#bFIYYSL9,7$DSSo?]tAQVk~ O=,\] `Wi"##/?ի۷h:x<0g߿?k׮=q$a6ѣ?#11v}[0Xgѣٴi?#F >>tL&ɓ0aB#Y4 裏x饗x饗HOO'11ܪke"\޽{/K~2btBxx8555ر]_󟉌B&(fvň#PUEQqo_]:1w&ml@e>@4M#??UVqATU%!!aÆ1t-ȱcZ\e˖V\.tޝ1c!dYYsaɒ%LHH)))\ve\y\׋:,R__OZZ7c4Q?byfF_|AVV_OQ|>\s O?4<`YV<O+..&996 e2)))?gX,m^WS} T0[,(SGsTc~>s_@gH şK[%t-9 ^ ֦MKٴiݻw?Ev?Σ> 1d2|m F#,v Z/:_{4X-bF5u٩ 8] -N']{Fu^/ OmvH8|1V)~\1+0Y?먪z~L 1%O~y׈9=M0W^ݔ@ K yp8gRAudY殻zŎ9@,@ XH?Bc7 s%%~N؏mZ ~X'#tjV-#h$$ @p*>i$ ΧMo/6?t~p!h4ΛmI$ ص׆ ~>N 8+?q@:f9 Gl/DG c~7z=(E>{;OGWq߭~N-9tN_:ѸH6O?!liz&M h*:2Ғ[S Kh6tf'W]ױZ֩?uCoNӿvb0`eAihPБTLCKIx@'Zub] uNߣ1rkˉGC @hUL&##K0[~Wd s},֩۳1F]skޢla0| #(x^ F#MPCs VM;fN:Ro<,+F^:`4YT? Zb4~$IiiS$ t S',"+>쓀{MLz!={t-.diZtBn]~˩ӉO#jbD&f;+Śkp6ꂙSÈ:ӃL2N]Nx|55@ oVYj&=% Y9oǚukIZR97Wue,Y]>f`i>ekVRڠ?o5w3iۘGFvv{Naݺ DĥyvC{<#3Gpc60 5dnm[X]GVL&3=EBUBcMVlwϮ-gPP*Ɉba-BqӉzFR3ٻ}=MʆMأSh.-O'aC.FjR꺎A1ZvjK%h2bgݒY8bP$c61t% F4M'ifڼtń*bl2a2,=;I ?b MGxO٘! kwrw씆NnpܭלRdneY"W{Z=z^r4|3{!qIiP31Mx=Qv&}Kģ[ 2zaau)9RGYH[8ՊcEx26FX kz3ddhѯIRP b`ԸeReY*fрlfvvla7ߵt&O+sؾ];g2kʇ[HEńvܫiX,fj4 f bdQgEEHFVZ+/a4QCFMU##r!!ѩ!+J뀘hB1TVF`ӚUvK\56aHe\󾦰  vbоgsɴ 1A$`m2Xc┩/CFJ 'Mdm62t!oB]LxD$~ɪ59V a|>i"%5n:g,iNc vl',2k5{.%E2e,P. *17ڝKfFmc'h:bbٲ03;&09۶ ɞw^o˅c.?@mryM.*&!)אʱ->fuDes,_lfrӳgNf'uƢ7{!oGi)l(8Wo?;??W:E[ٱ uUeDkϷ>ҫ.9ǞJK0ד'tZ2b[.-?`ׁrl "X| Y(/-bWQw{ٰrNl TOpgu#w&wfnD5ى.#{Xl^Èa`[Ti 9K0{R$%50gR"㈉ G9ژ5VIl*؃pp3W'% rwg}m%6_QƤ9ٺt_Оi8<N3s8]D.Z }hya0Z]3`4#w-SklaʴY(`b[uf,[{P;vl'%-U+c ,Xq;=Ҙg\,2ITľõ4Ia}]OuU-凋 ̍ /fbY2L6CbZ[?l6.ʷYuxR6sv6vŔqtRRPYU fE{š0jY&YY\0yWIsg}q8p7RUY/&M!8$F&YӦճ!6#zy`93؈x/@5}wbWYu7i[Zt% ri44TƃW];)M6ax;FGsf2Kd(0çI̚5v|x^>ȶՋrTrMwZI|3eG:ݶ%m+fP)rBAjV:qi(I5?V oR#E Ix:|`+[6MQ"6d #$ºy؝GHT>iD5i-#G?b\$do 6QNҳu{_N!Xv]R3 \Oòoe[ZY6a^lX=~ُo|j !k#5XF&8ӝC%Hu1*JK(+`Fe׎inI#oc dvI":"2αX3 U̘9G*Kݽ+Ӿ_Qg1)TNȠ7cVBݸ~CGzlfV,S{ά1`8jQdΏxϸPm,TB,۹GU1Ŏ"pJ떯fyصݘ7m ԖX#P|l+Q(i`mG~6z juC{\4; fݦԕҊt5@/fפI\y X:WS &62҃i8TH }Káa0HN sOrd_i#f V1WeUd1k*ˎPp o(ƪmaW3o FqťQQ~\1r iruvgה:0#}3 Ea}3O]5 Mk)Ǥb4SQ8bDM͘"Rٷ~!!Qj=BP ,!46Swh(޺~WhM5Z9Ͼ]{7b4[,rw0~c8U!F4@JZŻ V Oj1tԱ|LDF`ԥY9Rzn136MFD%eүoo23Rٱ)CM|"ؿ/=٭3è-%˗at<tBFz"H}Hqx466@vҕ1b(љLJ]T{(!55=~46%ԗ H2o|DJz&~w3I)8d6xkN~u dп@:wEw@ :Mħuw~5n:gwcȐĆ\0 _+فӧP^`%Ҧ34HθHNt^R~"cbMBiq9c}ҷwWNNǍïݭ; w$Gh|6k ƍD޽HO0ְhewcP>xNw?h sV'j%3_b;c??q0BHKM!&:P $eһw6^Ӂ&S={W~Y>t05UTKKFtJOBvv7쎂 3346ԓJe<}T즬 vlsup&={&)&z^Kߠ>>CCS3qɩ݋4_~NVwP39Ws-?duJ>e>/յ\{m(LfɸMD'&#k~σ=iYѽoڢˉ֠`Dmu gXNCcc#1 ٓ.2ot{GV]<>@FMzfgC݂磲n_\w _|u^c£!1 "6ŠH;eWDt81[mdAzJ48].f0ѭ[wfeo ofgy3}eP]Sk8M(`zAX#FӽGOdh!" O=5[YGHhaA oKf5GmOskZ=x4 ۉ18dlYe=b#G?ӁhORfOS5S0Ggd5r94 WSV{Qtƚ"bH܇аp>^.h,̖|2lB\߱{.-]GUuK(=tPԝ6Mꪏػ;Ň e߾}x|{̤Ogcn:egyI]h ˎcڌYNbf6E!GO*wٗ>z)5x6ǴiV q!3NnzG{˛Pd}r6ѹ[w\Vf͙KĥueRQgfQ|qߍ *+_2s0l0slEbZӸΛضi#jڻ/=閝MxxAYy/ 5+9tDsL;4<ЃT\ϤQ'%9*vϦRY^^MzM;5w۶mQyVrhhh8/USRVTƼm.+GNJo^t"::QgoXGJDY̍W]/f)&͔ƈ!6}76esf #q47ѿoW/d᪍:]f6nNJz'~p'Sx=_/g$&q- J&.q!f錧-Wf6.>]6ڣ7}z$Sʹ8T^Qٿe Zx'25BxD(Qiȍ|LL)xlٸyDfʅ,_Pnh7Mͣ .E\dzS*6*NiMj-8}ڷ Gs=1hvAنHHJdl:gAGAZV>n/!-n|v!v">eA<,x ΨOYO<|Z ( t4#L,q9 uk0m߽<}i* ;"s{=Gs3FA㥿HaWr՘ЪEsS&Ɉ47;Hu(F3!v$]蛑#A6YcCC Os(YʹqTWdf' 6-v9e#v'KjdxN:fGSHՂ4c EBCl2PWSlܚ\1ȲFC",4ǙLz$ـ"TWŤȲ$-rڂYLx}3/=jn\IQ..14zw`j+1m ?:b@x\n#8=nP}K r"~*aZu``u# ~`jށ:::-%}Zm6X?Z9T|sPm_TА :"u5B"~h@:c*t]:Oڽ+i9@Ee Iح4]CѢXcI葉XtMcB>Ҡu۳kWZ>#J3B#K2:z뎪ﻏ+hSz:V4;𵎿^WYY[F{:+FMM-ᘍr˫$4?$K-I4"`ӺJ;#&:D)+/Cz~ܲLӐZuZ߱rTW[=4AnQxBƤ=:-Nrkm+| DP^^NUu%N֠GwOUt\N.FtdX˺p쫔e?'8:ءg!q{=H!('v85XF/>WH-ᚆ4RUd$9=~֒DPeQq6zd~b@|O,K-(ƖNjIG 8ղڍX즣GziSEFSOgѯZ|I ,*[pˮO_Iӻ)b.S)]ױDąOCu3&eeim;:+aW6rz~-Q> q!M-VMʏ4sqG&-;s[Fo]s9ל|k~ɮuHrJ(wFAN+.x{yۈkl!fzNFa\" kt*uv('`TGlz(VQW  }ak=Be2\tO j5!wd!G=ؿ# bh^v.C"yMb&|d,u:߹HЂC4MmHG7Xc0 NFRf FY4^'SXNQN5AEQ# vԣ:"hN:To8aQp" -myswO姠bCOn^B@;%A, שuR$}-KZt>tMWt MqS=h=ߝOHHZJ@ЩST<O?v$f~8$Q($*ߙT!@ 0X@ ` @ %@ K @,@ a@ ` @ %@ @ @,@ a@ @ K @ @ AH hO,ȊhB_cH:kGu!HO$ɀK&I3d2Jx&Ehd4hFLfFnK%8mFfUSq84q4;|جAC0M^|~NpRŀdF$\NFMndYfa n &f#jkk)8@M|1}>/N]hVGFel JKr'^14J$i466R^Uʎ-ٺ٫$-3#\:Ą&3&:"F Nj4g!~g_q7Ȳ_]7=Ŀ>;_-p\nPpҘO_`iĄ/ahDUTU;%Uը`q!wJjX\nuYR{;UT-ne옛LbIGUk$eKulغɳ?7~5M/+;=躎h!%1 M ]'ÒÇk#>11L{/x'7sU` Z Y?Lzu}r~́& O=<.C^u@{e5[)-+W藺dO27^ |~iœi8$IbUqۍE$!0XUUIKKkI@IA@ ZG`6lY͓.=yHGj@Q107?q" cAu,..advy-XV(䏯Ԅ z3BCC[F 8L,+y1?Y3"k 1!D;%bBV=adHѡ1 W2iޗ+F^S!=` $dYd4E<݄EȝBg|y+fp7q׍b2Nfc2پwk,eܘ;U$hmBAxT4!'w~Ʀ>i29Hf؀bjPpvҵs󎷳ws{%W 4Eq68TFGQAiIBB{ron~ sy^kmnL؛dY~~v7LOCDF0||#NyYEMF\ɲSu"e$+|3i?DG_3{ǿv_cN^hI01-M$DظI/gFU}ԑ[UQQde2n[X躆v57 PTJ;B?;\e܀8 0d_y\J>xm4GmB#&˓k;+VrE`_)xxIrPMmGH$]^}E̪KQA q[gJp'WA*| E$=CDbAdYʦd7iEڈ8N*ߑ]+h9`$筼}-, ˲ y~ueC|MWx"zV,@{n~F\FFGQC֞s/, ATV陣G^@:wi;¥|qNͪEKDϘ7YQi`vt/q[8>kyN䜩Tf^]v.=*|@d|Yu$K\w-"۟M(W_']TWUe;NiA>?3  _~gw?EUq= XBʃO;~\S?ck 8#&AYA%7_.Z+/Q L%q0 "0._=JgpW=DV"ƻn|/T*[v=ß _gB`x\.d<$/S^y\^0#c| ߂L˴p82a>7V~?䮿ށ^񯣨b1{7;'3#^RecwqKBmuI=**x@wo= HR0>s9yϏcwqU*ʪG1t]4MLD5bhsW^ou?yz#8Tǩ-PNj$) 3Z n ca{~NY5SLJ¾.rP-BQnZJˬ쉞@2wv E/nw?qq$IBʢX,P2BdWnݾgv>Gn G087Md*?Shz(ȱp; PZ\g*SOv'wP]2rZ"0bv|pX`oE_9)cp8^|!衲ꬪBv:;ضolkkO49]j[#$#N^M'&ۛ;~+iȲ$;ψIaTo%Ҳ ONV8س}| ?/?ݫ>}JX"S>`9$$ԌfkFmuY#Ȓ/c @iA%fp:$RSZj3DEIefdYahdmʵבWH$zewHNEi {䭗ܔ!I,d s^Uɩ$V4 \qUȊ8.8B$eQ-{_&f_٬0D*zVMXn|H Y1uˣwrybN|~\q Z3W`YX(*(aND8FV̪I̞124͛weۢ*+Ƣ躞WS©\EVȈ+2\.;]?KPVV9GƟ~(3Ru*ʪX:g5Omyծ6(+8 ŧ[,q8\|[d]΢™W> 87}qMMlN;߭?ݼ7~x\ H/$`0lԧaH&i>+:Z߿݉qfvc^/PlwNmcIdΏYJKpːnfNRdUgyoYRA~ yœ<.f&ڽٸ,30@4D,W^ͣxp I{'\tΕ~TE8Ƌ r$/dY΀6MӨ̎Ûشs=^7KiNl~K5#ĖԒ̩^  sV9k I`6ʦ-^09gBṶ34Co$p2/&tr΃g~"KO>SuK Ȉ%Bj>-G E{F`]“p4t!H$W3#I2Pn`ټg8N&Ņax. {=ެ N`z:{sظI^y]SZ|/~5L7OE߸׫HK88grܳI"r_nWUmxj# xۥ<+ dY>$ g3˲0ǿEm,uټc#Y쌳pfZYܓx=>^n$IA2̪sR a/.NkrPe</2¼cgOx<9c ٟGvv߆ Ŗ2c퟼;}%='LpPl !PU^P~>w?|eYa|W3?57 y,VI2u|~x]Yq:EQuf~w>Kwq 稽A)q| E@Enxw՟?%睒SOV Ǒ7 'AJO/'m{6 ^O>˃CqUdY!O_xh_Uwd1_'-ax@RV6pxvP~I)&ν3j$W@XoHi$ <oxg&er Y4s%vswF"x]~|,x'QYiUAK$",e2d";Xˋ*; iGynAC\~Ż;s>du/1 r?Yӄn\X5 EIv?~J=_b48wOKe&%9X`{Y95 B_x~o:04yDco؀(sq/F:s*}w34GHō]OK irPTMޡ7OdS?} ^5,Ts;K/'?5>EN_Cw$qygDYQeE1z:$8'+obaL>ܖeQC#)rH4Y㷴EX||Y C>,/̮O<}c#@V%оgSUvyH46X}7c:yYEW+30O 144x/֋[.,b'vI|b$7pr3NGZ~눥"d{f $NMYC\s ( VR1'oNule9]שXtB6si♫.e,R)ٖ8kCnH$= v3lܲ?lJSx &LeND6CsG#sv(YjMC<6̧ D2 &EӍit[`˞u|/RSYKÌ8ALݢvfu5 Dbab'^)2FRhZ ,҉d %&gg@L$Ȓ6~_)-EJKإ #8D$s 4?ԈŢ$SI,$4ocP^[JÉt4&㮯zZ.[{99yvL;'9dZ:_4p7V-v2UXƞ/0-3#^$Te0r)ʿ|݌Y! G}?_ÿ+{F,=gV*$#^2 WEU2"$ŕ$$dȆ23f~z,J2wB~{_OqnpfTr+%C3(LV΂neV|Q]&8k03['adoG^v!g@y>q֮W\%I w!,'g!hlaG)Ze 1[z1/OagXOOѓ˲zl[{ fY:)Bi`I#XV:{;{8TܯQUDg,RK ┖8!ٯ' K3HͩӑORǧK7RfY ҼeqZS+ |NGn_'$n?҅IoX@8b-`ʵTVVQSQek)-.'L^]dk ,=i^~$ۧ[B`ٽ_=PtX/>5֔ϕ$;O|/Krv3ݳHq6DL{˞},MCB!!ҫSqSqbzSX-i]x_شNb ߧIJ9c0Vi !$VSiZM>KטS5JHB~%yfc]))7_nb$d,]H )O%}7yp}oc|O(1ƥeZU $jfzz$e21J ݲ@qH 4ŏ{8DuY5*nsx~fΣCa,|3;#`zzJ&byVP+A'Irjn@حPFt OC^TXH"Ssbގ}@K'Xn1ޟ&H&  pd&B]8$HCk"M4idd!;p*Aqǻw,͖&,%8>ܪ>I7@d'>A ˴O4{Da<.?ut\lIF7i?3Lh*Ǚec7!i8LKQdE}gKPU$%Pe uQiN;PSKĂ} )4RDQ'Ł\DD"5KuM)ܚvSab":<\X2pӱ²$ø>4=NR?i% 8VaaQ',1yB !.U1Eȉxw`ěL-0WrcMF8|$Rat =)=J  /2-YRL YxUKI3 %t>E1- t8gq|:٢К'a t#\TY FC/ɧ ƴKTII"É qc 0EIŨ)Ox"'FMX2(' qqH)8ۗ:%q&B]x^'!,"0ni ΃,)s|*E\]v =`Wx2$pGˑ* FB}]>ZII`"-aBypc SK4#?/O)Eq'q܅!dYǘ/EIQT d@lkyˑGqV1-pB$$^GP]Ie,3#F^V:SQgݡǩ.$Xn4d % ' ȲB(ҿ--XPw ijj$Q* gOQ$ ,44@UM4&::$Bd'x= Q,agl`apL`K?{+!5P:'2p;%y,o6=|}9r ߹`yTΝ=KXɡ- (+ vGO¤(uEUS$EFR$LqpXiWJVyIjު:7tG.EĴÙ3I)n[#^8=w^9ؽ"vll> ȃ/@L,a!P֐ELvg$K ͈,,L+3M(-KL>[GV$YBGKi,HqL$;Ncxd'J7ShF CeGShҜ\bZt4KTYQ r+y?P=JaL5ΦSV(}iRR'I#)L^$H ;HJb P!Yf_0lSʌ# "ac8 Y"PN'}-H`a:lMqvauELw{(w!-폲s?FR&5E5nynӻ wV>`ӡ#'o&n<9AH:v)6^f䱻^V*cwnB._4=@h7y)E754d٬ixCffQ,:{G 0 LL @e E*;h`&Y6*!{K]M1cNE;%>[J? %+ΎTr{Bq+PޭC/๦1%ͻ|,ĴR<z+k l$&rYY20e Y=sO3D3.FyXrT E 008eb`/eٽt&_VIa dkGwG8eIՐcgnaV{{[P rX6c>._v5 +r$tiF1deKo%)YX>򕬬;mʹW )ʸeUj K"3DX/EX;<}7DYU!Nm4ryźh" J0,b(Gx*j0d1,y21ۣSa_$1FaA-X[a8Kʲpҵ=;(-g`0}ba<}%4-d~R"#,6 q9о //n34N/{iyC4bUry p>T~J%i95k>ASa{ӓDb\m.m,@I&k+?v@x !twmagzeTd} + È/UGPd-h<]#$t,W.y̪:R$̿}Yfq#cM:6KW~y D a K$"[et5K9в1"pN"/"1c NESxmԕtԳ6Jko#>3d5o[n|i/G⃓X < [@Kg^av=pX1v4>X" 3E5 ue 8DR)̮o'8 ܏Q'*IhhB-7T@",IyQMKf3PSbH9upŒPe+i@nN~\V-g?s'BR i@|o:N`1?-DSQ܎<ž\̯XH4϶-4?|`/dlO zj4qeI\ݻ'✿蝸Uq ƃDp0lNŢ9zCg`Z04pRF43޶=6ѩ|\xu"a$m]44KnM-Y9#Ռw`,ە[8رKѵ ֑ۚ;p6±0پmC]\6V/P:Ɠn={ Y:Z*r@c8)[OPҀw'Cee^ZdžaqZl8g7(EYhD$:ĞR LKoI>0q$u7Iw?tWB 蓴 K4_J^RRׯ ,vof(1ۅ&WHSF rݪ<׼: pk;lo / Kkgyx3qw$h ?B^r[^\^,$] VY̫\8ڽ۹l´?W}X鼼_hZȯgcabz9IܰCzr8ڹHBo6GzN[2EY%4vo%+1ן*ln\GA^=c6UrkH a2,{w2NnzQFb nv;4' Mh*WSe,] F{n7?Mp`Mi< OԤ$ttoc8"e82$Uq" Uv *5%ysYC=X T 1E4Sd.&* ^_1Eg3| < = w:BmQG2tL,&]cA\.a0Hxь$0\VΡ{wQ7Rqk'.Ι6Xv+U9E$$&j4 p)2=#MEme7Uq!$U8T40Ci!BDQb$X4$I8]z|4ǡz8oy̤>MB RU턅1҆aځ^CH}ot@7X>xUOrlxsiIp.H4HK]KQI)a[`l?U :@((x}T+p0EU<˖08zfd1b84";ʩ 8T'B#tf(Ex]CI!0nT.apViD@7 t0! O*cd VH'Ixt\Z *' zARpH ⣪d6er}=c(d@7NՅ$3e!Iv.'i@/CPt@c sg$p4nPxb@: .Ue<`x2nj$yu}9czpw2:H_p\nXe&Ч`bsɜtS*sײfB(]9$Ib8hd='IrRU:;% ( v1?ƧJ BUȊ M14OIY`Ik\Ic8az6ɧ@  0&ctthIP,z'ɠ~/K] ej0QS-Uq",A~~E9%(]([CMD SV<"*12v, 'K,´L'c 51F\z,].Bj:ҎiXB`qDRI41eshj ]4u`auK86Q ?t!65mB.Ͼ+JUAeI:pΡÄS|2_u$pfSS: 4vm?< NJ)/"7v5?A0Ň vNDp).P,BU(Ev0oݴ7RYRYAp}}BJ10ARKvz'a7%M4pgxbH̯xs*543HSAzF2PpxEv9Xp&&0-e=qSbͼ+V +E]@e~}()w3+p2AsJs)+g`/]C})Щ:UR)+EQv Uqdu KaFv jqeg6j+eqRz:9OEhݏ.fEmlـWUӾ攤}ϮO14LoZ28D԰Q2FƜR_ X҅TV޷ɑCe~}{T? /$bW$5E3!Ʃx.>_ BX8QF-n}:ZwPZ#ߗCVV y.),\Ċ-=HqA>,o>pM{ql6v4?[UhF4.g(IYytKX61pnw:hj$6 f&롩95,x( 3t1s?t֡6KQ_JK<+d,L!%ÌDh$@Mq=;2bRƓY?95x;۶RS37v g e񫰳y=0q2dܬrs߲Kg]Imow5C1۝Lv; 'p*8Dl(U%0ícIjGЌˣ+TEl_:ǰMEqOBJs_'d뺉/ɭ_̓we|Y4ӫV,&pJ_ӫt:1Nd2xsJiah8I>v7Rt|_KpblDcj:F)S*8Ii-ePRu_ʟh|ZulMd!&u#";&s)tyىc Adobed      sX   !1 AQ"24R#3sTaqBSb$rCcӕVXDt5u'W8&1QA!qa"2R# ?5oߒ9_ H l O FٔP@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Am{Vg+9imIaH20y|C[جiY&Wg7^h1I(M, 3]ZCտW5Ttu9m=S0|t\z]p~.:ldg7#d@}+OuX6t{Mq3/!ί36<+AQA tWSW0(ZW_WU=wmCcsX8/JK]\I猒_#$eGWr<;+%,N>] b KUPHcIր ǀAFQmn=5e"ȩ}_O]i*i弐bE }kW]x~>?8ycV-m UdPFssRWoM:̺RHB8,}wب[<>C!19Hie :Sg4}"V=^uWVVf>`s2&xÙ` Q+3𜴂 -[h+{J&2j?=pDnCd2>%=dNS>Ж݈8'\}ul?͊axuDĭ:y!pV-tΫCϧ[&17zM $[GxgR}R0̧* s7?2b>z۝[y!6esh.Ò!:̱Vޮ_< %("|qs{9j s\ .;\U /H.c{Ag,"L1 cYU=AmQ(ź9G831}ٱ5"ȮKZ۽޶VOMO KYCZִIAψ7穛VmUMbU_FJz5[\5$s0 3s]R3Z]h)n;馒1%-_o%kG(T,M#b&+kZ֍KO((Z̫q10!xbAF15h耀 )>)[fSA47ft);wd'5;1FGy3~T][nUىȳqtp*[-Pӧ{3 cCmCg[nkmq>zpdqEa{jJ-tսn1rOCiwG5zLohq.~<эyAsݮղzjxZ_$ֵIAG-ߩ[Vm]Mb\O FIS m]Sx9p]$s0պ isk7;[U>x<8zoaY9f3G5 C K1IgG /v< ۑcÔwu4'q][1y ,aŹ{m{}%Iu=];* a pku'WVwO|ȠpYd8p{-<q=h AIY)Ag|{]zԻFE< KCXւ8@A[]c\nCo5]% \㣫jZLjct\ kAstq$2xdͤ[z73Ǩj%cZ&^sCr {m~J|'- nE.=Ji٥E@̡c!UN0YeYgW<2M4{sxOiAp6o.yRYw6=z28v'i ƛ==ɣ=svz\ݺA7-Rs}tԺp4h<c$otrFa-s\Ө Pf2hƲIG yh][\Ə?yPd ^w*ɛpTJzJ\^O {t+Oo1?Í3lwI5x>3twNY#ZO }GһTh[au&mYr8cd^# D^Hk^-Eh۩KEFH!nAI'RI$IԒIA5gR}R0̧* stmıg[[$楴u7gA`Ї2#ƞzWOuzs[n^KUeWQ]RtlQ x!0tdlڃUoFkhݴ겜Z[}3}i Qy h(:^M俄w +GKi7I)m,-|G}F@@@@@@@@@@@@@@@A/zr_nT{-Z˭ֲVOMO KYCZִI<rvFYa[Sg-N9j!wURӣL aAV7e}r7G][}_0p]+xtt18}/DaևFx?W8 W1av#;4|JY7aPCs7;b‚a\;c$RG1$9 .˹mxuiw%M3u%}#3QDC(Qik6 ̱mm:| @MkO)2C&(n82 Y>OPϦhPÃ; zv !sM5DTJyqs\8$7\(hSu-ՐFG=x ?ڱ{M-J)hi9lj%Ⱦحy-xm]cyd-#{4 ~VE +GG4v/hI!9 ᙄ{NsH=mmǖC=LrjviOPtkk$oy@ .dS_3l7m%m l4=KƄy+UK_Ŧq31/_g(1_-o Vlg!}{,HS8y= I$EWI׍b5MtoYLYU1;Ij%t}]Hiv5#hs9i0dبELWLCyhրʽtmIaH2? '@8Phv。OyQd,VqlϤʊf,tw;]w\*nkU\uzq|,{Iq:#:aCumJr济L>Y+=,C<-?{G˳4Ӱvq4A8 @@@@@@@@@@@@@@@Aݮֻ {i{E4Kd,!!WNnջW6TUThgɪ!viͥc{NH9[j6<;SٺK)fʽ+cߥaՕqsi}9~1q1@8uF  3O!sbW>W~D}6<9=v3}b2jԷkUHpױV71%ii 6~ ǴnVMҀW;d΢9EY#94!`].A}Um&wTK/%6e#][g-(s P9dohyѶ?`5ڊg6!urI!Ixpe$AK4MMMb+XƷ@@5oߒ9_ H ;pIaʌK(̡cvC4T-ED{y\W9 qkZqô{aO+ )Y迃[[G;G t75ڛ5=}vKMisk#۪t=qR\}}WJKV4g𶘝֖qD4~_glz˗\q(*q}ƶn:h*XPDZ3RZKyd#^Qy?1i5}e}{mIaH2<<%ǰ)Tx9a}epSSAI#PsGwA; Y[;KV98oc?i1 EuSr2O%C> ]nJ[K$< _3>>"j ­{./Y50wJ_4y.wH ].y)VU.OT׷z]gG6㤒nVA׾;hh ,Vɧ%B(Xb9GtOO,554m&Glc >01Npp \wyqg7-syYU@ qnI|#+|g:o+ƪEzUXeg55%ii- };3nEr6S9qP9GWHkծA;駩]m7 o-6UT=_˫4&9呼F @@@@@Am{Vg+9i/vj > ,V)QT2^GxhaS<53>G=qsIASm8hѣ t/ƷAlKaj{5H*]yHRpT< ez-OIP5k "zFs|5`|m&}D@sM~ B IMUK#eů:#9uZVe6SIo62<'hce5m9i.:WSWF)dsl[+}'7No^["u]O5Vf?/U l O FٔP@@Ahw}v˧pwK#d:*a RYKEOtҿNpykpRzszIoKk2c[yM1-ya!w)ӳ$}=7u;&)l.q =hizgp".H8Fiv%fZm6#dD(ZƵB\ku}_OkZ䫹\l0S KYCX4I:OP:KEdm5;9'ډeG6 y szo҃xwv5YyyC'ciᤲ\QTTv:Ku }1PPFءqֵӡkM6\{{G7ȞpfˋԱĞN&'+ C\pLf6Zw(*䡽+Xcxk8hA tԎt6tɱP(9}-KGsFIPC.۞v۸wp])zw7֊dcO5ծۣH {m~J|'- AcHʜO2$vO5UTϩ{{usĒPT8'x/0YlJNT x0>fiSM #`U)f6z- }('nH% }fUi3q`"*#?BFKU|oi9yPg^n.sF-7GIGDeS4#7^TmIaH20۫\ϐNܗqn9LԞ-mESwᩃ5vF׸.3t/Uxv*~hW;QMEN\${xV ~x3hj_QSS<`'P4y67ǰrT1s$5m)[fSA4tŞdw|4ٌ{(Ӛ3@8::!G|thq?%4Ϥm򂑭d229\XQA~PANZAgR}R0̧*5oߒ9_ H l O FٔP@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AܪᣩK6Ҵrxkպmy>"uWǿ<|Dcy>"wT<;uXO:{'NV=A'uNUPySǿ<|Dcy>"wT<;uXO:{'NV=A'uNUPySǿ<|Dcy>"wT<;uXO:{'NV=A'uNUPySǿ<|Dcߴy>"wTEC#}Y!k]+:3xeȀS?eX+Y%YjQr | nkpgzq$rǨ^B;4tqxw~f2U~oٞQU~ogcns_'Wv9F;-UibqQU~ogcns_'Wv9F;-UibqQU~ogcns_'Wv9F;-UibqQU~ogcns_'U~ogcn?ר =AxKT^"ՕvJ\444q:jډQFֵjI:'ŷ`C&4kovwA|$ ^yPwg%cW0#YitJey.s.'$I IA^Xt2vc{o-#Pe0ǣ/:6ZNhů,?֧N*:tx.pƮNPP m~E96j]%phˬ4 c{F#AAAnk –cUٮ/Q\gG,NkG5ŋ }p*:KM~yCM{msP|ڄ鯮z 3&6 UY%5yob @@@@Am{Vg+9iB`j)[fSA[6tl}6O^rūmFW!m$$\^Єu7uI_<B ymdsqXꁯ=\N^Fa ovqwb3U7K6=$.3 bg!Pmwf+e-xK>[|:RGK>q4yZfi7it.d;)<7c6_nj1,HArtt=J 4 YmF%>ycGZ=:hh(0Ou<':G8'qۦey=U xA V^z~g21SA"I{ @r<ΎhAMڜz|:ӅcԺZ4̧c䥣G+K jr~{8r~sV֒ǻ>?;5AW[䵙E DLYպ6[{˭+K.=& ת ++mf5To ~aQV7]59 R=X8{F:>vϩpە}!Z厾YJ&9%P^j=%fr@@@@@@@@@@@@@@@@@@@@@@@@@Af-)ʠD~%"R_:t[u咇s ON_F[]V騞Vc'1`sI$u'%DKmկJJcV]V6gyӾ.v4sC.71nb!k2ŹF]+pS5l1^d2ª*:ȟ]$lK-{AhB UwwΖ܎>(ٺapIc{Ihx'jZdTSW5vF?S;Q]SMObupЇjztpԘ7q;Smmw= hl9WEWI{5U!%Am{Vg+9imIaH25Sgw۵{mud{˟Q_ KnMK9ei$i48Y^K8\xOiA=%ucN.kǭ:32{U vp] aP\u'F5hu{!=>+ v[5U-el,iǀ5 h O""{It]C_UИ2\a"Z־:CVV\k* 撢GK4J$G9$N(2.w#Ť0:?246z;C4s=@H_=;3mͷnvRåE8iWYY#@sѭZ/5oߒ9_ H l O FٔP@@@@@@@@@@@@@@@@@@@Ae_}̷g,p&lk%\&=%ZTҐ J*Os2,s3d|)3pBO,Pm ,x<SW2M1'H`t8i(;5郦'ݨ **.\ڋF=T7ll`kxI @@@@@@@@@@@@@@AoM]aȍ>S[,8R7q-usxGOFFWU__U5uutϨ{ieq{%sI$IA-Vn%6Қ;M|3Ρ9%#Ny_D3Z^?t5ճn6)()tx5Z4 k+%shXA{ANZAgR}R0̧*b|^qvb1~/N:?=yA7gJQmFamͷ>Å;=;&fZ?_ ӟ.S]GcV\N2w6H:(vCO@^Z_=edt,.|=Ĺs$(2_^Ã)ͺn1ϛfV7;Ngy4@X=׮l&v[@P-/+nuhV$~`֍ր^j=%fr@@@@@@@@@@@@@@@@@@@@@@@@@Af-)ʠ݋>=ERj.2?hڙ#iT@/WLwȯ\oWڋ)IꪤtJ/{(2]? /.5̪i?MZnotۭ6}IO%E 0Glhִ<& wLj6S;cnUTn g "ƣx@uqA~@nZʹ_5]\2I,q%q$NLN ,Sּb3sT?I<@ĖsCMؽo-mf,Vɣ.5KY[0, N4hֆh € GWr =‘e9Thƿwk¶d-eue9,m [AR&GtPtY৲a7:R+bxVrTH[,PoAF|G) lU:ԨԹiJwɄY$\>"ku;(KS(G?;wmmv.9ffq5.KWY64jֆh GWr =‘e9T~$1is{RJg,<={/.Nn.~Yf:ء_JFGC#cF4؃􀀀K#^#|Wk*7*f>8Ω}{u>~9ifWQ;$:qԒIԒ/:;p:[e6Kb7AC A-T0xzѣTvm`=[v,f*{WW64j h GWr =‘e9T[༿Mbw-cຖiA8HAVV_ )2 㧙*ƟAAr (xŶ޶a/Lq%k̰ÖJ:)Q>ÛiYgW||RDK6Z[3~h[m(.X g5Dӽ@f^v @@@@@@@Am{Vg+9imIaH21jGQ5 %sGV"l'i0d27_8Pu怀I#$/{ W˟HgہDQPDoPs{,M$M#W+sKOI(33.3ήcs;%w-T[鿆FmFx%m=tRK#QQ)WzO{4.*5oߒ9_ H l O FٔP@@@@@@@@@@@@@@@@@Aaz}Ϧnbo<s"P?3&g[!#Z1BPiwĆ<͂ e$ ¢فղPHI ?Cu18H^e{GI#.sԒOIAUsw7pwਹ,R7ql`Zkvٜ÷;sa1T40\2O<ҖY]=$( {m~J|'- )>)[fSA)8>ew^SI Ji@G+hsNdgGDxgT!9S8rYRYIbh{ĉ[oIIC[C&oWhP~obsI#y.{u$${IA=Iq?m>9P=(9,24cíݳ<#gm݂m8OkWI,{sI%x GWr =‘e9Tq^ K{q1tZiMCic!\j+}ڂSu*)k%F;9ns -<(3; J[_M@ßD xxm`:}nPn&ɨeۥiSei/UK9s9q{KI'$C٧VgN58Kgrh4yli bi~vnp,;} lk5LG]$8=%q.q$ANZAgR}R0̧*^|dؗR6 ƦۺTL7+6S|?Pu5l~츽UHw:j2~ow($#Sehčо;$"J ܊ 5KnfSs8$(3ۡΆsrq gfʦ/̃4}Kۣ _;G3-ڒ<:ö`8 fmь`9W=q.{K\I%d GWr =‘e9Tkœe_].\r]'r-fMNZ5\?lNl$ j}xR2wiwb魒:j)ǜ2PhĐXEޞPn>PIdd?]٦i>,a5ta%ĹĒNPlnޯlrʲַZY^tsBؚuv,cv`%1VYm(ĒN{\9ĹĒJ mYA{'م# lr ut^)#Z/T]h%=5LnX4!AItm>[-s0gkf73 ؿAV9K*j/ w=x.[\q] b ?ax]űVQY,LvIԹė9ĹĒJ ;e<(f_.. jvN@tRPXw^vn߻g^+&9nA]%5!A8&ANZAgR}R0̧*մt:}–* dHVIp!sI n+-m5gNs$M\Ȣ.{d te.0ICtGwt7;jߧ5Y I]8<OoKo̷ܽ}klӴμ 6KVEaWlf=Uy/3Au?W'X&5eð%&9cY,1ূ1ZƏ$q$I%B&>I㍥HZ5$`|N:|l~݌GVsdgGswRS8}G'2k^__k!s 25oߒ9_ H l O FٔP@@@@@@@@@@@@@@@@@@@@A`z wia![:t림ůn:k4gll7^GXLt],1lZyc _ >qkC{A$I:ĒduMCfU`][UwAoq Y=@ű'bXƱXlJT 1{IxĒ2&>Y^㍥HZ5$sAE]/Ĕ;/s[-+~3~a2Pu5Nֲ2 Q+3𜴂6`0amNUCE؏W8֞ s'PVL6k5miٝoSeAZ[FdF= PQ7$t,zOܺvAMKO OZֵcl֕A %[p Y4#C$R0AЄRmm5usp˔͂;s8kFq4@A]'2['-f#^ǮkSR?/^AbOf6k?߽±mYxȯzO:wՕrDPqh.sZCvFCgO~n?/U0WVJꊩ׻I R!ANZAgR}R0̧* /.͏ܫ;ۅ(yO1IAXu%վuK6빙% ϓ{pw bq|p2Gn] eA}z|t:i05QH]kg4qh>[=%%`m(,93|&Pj2Owq qs˜C+ANZAgR}R0̧* E;Aax&%~gNPT*p;Nz.i-!W>{,oݭg]`ZtD sX;gh ظA.YKqVOnP٨dt3C#|r05Pm`|Zzh講i 2#Q3{GYA}tnm5ڵsvLռS5Aw/ΡcCa|͓ Ė)#wTGke@e hQ[K&1W@[rx%vO uo{j_c˧&fRh[TrsJ8ǀZ Q+3𜴂6`0amNUg/__ZmiwY2v Zľ۫!Is1< оkAe/3ۗb 6!ǚ4UCctcB#Hs\{AA._l[QoUT:꣩lM+)"g0b M]#ȺO1&X\OA.n {*:#4Ղ@,Q[ӛH̲e:Ouug7ZI$=s\Ē{3a|;zhm,&!UfsdRGc\;PoO mw۲\J2ɣ)UЇQV|MA0? {m~J|'- )>)[fSA8H8}6m5v얚'[k ?b inWnݝUW;~ey/J,&VMx6Q`Gb|3;%j :xJPc{k b.u\;E5\?؂pcu >VZxN/jC^-E+iƙ.%6huh x/u'xtRe86V\nLȉmPf^x'H*w;uLFmjj{%+k[+(65}tձ߆nvlbka7+pa'4~,K,'҉YH+t*s՟wn1QӜqjV~oslsT~z3|;cc՟9L=9gfw85G?S7Ns69?=Yzs1QӜqjV~oslsT~z3|;cc՟9L=9gfw85G?S7Ns69?=Yzs1QӜqjV~oslsT~z3|;cc՟9L=9gfw85G?S7Ns69?=Yzs1QӜqGgfw8éZ%Gu'$]?>x:H*mL\Jt:i|պk? _?5kǸ(~$c? _?t /:jwX—5;{KN=C'MNRaupP)~0ISǸ(~$c? _?t /:jwX—5;{KN=C'MNRaupP)~0ISǸ(~$c? _?t /:jwX—5;{KN=C'MNRaupP)~0ISǸ(~$c? _?tU;e mז8Z۠.">^uz* Q+3𜴂6`0amNUj=%fr@@@@@@@@@@@@@@@@@@@@@@@@@Af-)ʠLib/gftools/encodings/GF Glyph Sets/tutorials/img/fix-1.png000066400000000000000000002134071376445505300237300ustar00rootroot00000000000000PNG  IHDRZ iCCPiccxڕwPSsNz%D@JM^P`#$@!P슨ZP` ŶAu],Ps޹3w9s~w@ @H* e'$&2@Ƞ \^'22 `tV\XlT<$Rl$r'H0>HRl0% IX50(0Sƹ (?J;.FhhR@ f)7'_+r-̛h(  uY B,J1x&.#/8vy~INp^Vs% ,R3DOp 31/9Yѡk$/J9M8cvd6wr/iFLdE~B*֋ O0r20HG+Jbz&7$r'Rq? pOP @H"Hϐ}ba*#YOc:$$& Mjf`~XalVc5X#֎uc1#86 x2\%ׂFp?t6|1ߌ",)LH$d6v>aH$j-"(%wo_HTɎHJ"HHCs[!YlLv#GEMvM yJ1xPb( J# J5RgQ Qj?+MfA͡6jit:݄MOKg/J %k%_iRR-deceyʅ'o*Q!pUTR2PUPVݠzHK5Z_HmE0d1xՌKA&i03#戺zB*22aqXB&q=ַ):S|NY?qʭ)5jxkjh4i ܢ٪T e5K@k%7SSݧL=>6mX{ Q] N:otY޺t1<zb}Bv=OG `ASCa6N#=p%F F.;?ě5i5yia1-4m0}bF7211cN0w12ekZ8ZdXTYܴD-,,᧹NMvߊfco`oͲ^ejv[wOih#9`V6vm{; ;]{}r6w82:v:prv85: ;9';W;waDlpwu]z_VY_0:>'3sKߋUЛ}{'[__og?7~OZ@l@e@ ǠA-9:34+Z<"Lo 2xhfkDp"F<4̉<=0+rVլQQKE8,6/3N9nN\}xxY mIĤIfo=8qN{sM.{u<ἳsH''J΍pGS8))#r=;(;v**vܼ{eF*ߪj՟wwqΞ= >Ƥ|?atkAԊjeuQu]mj@9{H[U&VSQ8wձcX|Ho3Áýf|-~=O?ߚ=_7FFIog?}.o߆ W03y\.J(wb@{nkU.D1P[A.A}|~ {UKσݙٙ'[TVVJ#0ʟM@aF' $0#aFa0 #0?BFa!@#0f aFaG30#0#HaF $0#aFa0 #0?BFagF!xN@dUUR>jh~s?q\20H)lE0t^/^UU1ǏD"6joX_)hߖV-0aPLJ00Y@ARY^BUA|\fUر7Bra<=n#%~E 22HH]S_FX1SVV8HJGyͳ_"u QU潯( ^w%B!*&a 4,cwE"0tꑨm&KK IIX ~wss_!MG 2PՀPKiy%DEo$P F]mb(/+/U|+)A5ۈnQ1D[Oqy%&GR((,0^*d!&& H$**}T{@1t:Qh~ TYv{:\ybwwPTtXO$@ eԻڝbVc;Y< =>,vǍj3 H!P,ǯ?>c=n  H"=:18C-+xdt:6N؅85{TES_CEY%VGqQA|DDD0TSY]j͢" (>< 4x>|E>:7|\wչؼ%]l&-̢yByySlF>zlca[a>*=۱RžKG{"YsVv1;o8%W&n~FAz<{6Sϲdot옃!NAM^^z9f_ark0wE片k.Pk z+G(O}&MKV?s~m\HHncITɸocը(^On,J>{M&5%U874n}-1|%_O9aL)&N[EӯkF0㋷yk\λ|,bw19Ԯa ש<;F_؅Z.-i7puq.<]+?&>`˼/rx>TE][ruSYa'QIY\z]\4'ue{x՗v<*=~SZqq'an?w>XQt|">vql[>^ky\~hޟ9k̠SB6,]7z..LU^ }v_d_񢐝ۆo} D+"l.Q5H20jfDh*++lj$"Ӂ*N˅@x,\#֯] Uڏ~hf͜ʶOy㡧>҆A YpO?kl<aӚE||"ٵv-v[[GjTQWWw~m߀8<qƗ*E0s, Yn7d&Eky]_bq7[+L~)w^kOևJ̏_LG!sNW󯽇%2._\AN4٤c٫vUOg?2oRN&2wvmk ,=)(P[9Uy~[ їE{YdJ.>'C^躎*('׍Ftf\=?f|/Ks]ٳ؋hIEZ*U>ZC~v[;;=7ZQ]Sj!B,q*m F=̠!'vI=}$rJ| @(*;VDq%ط~?}mڒI|1g%=%Q~bOݺPtpfd_iM}v~O,wÔIdwσf£2x*q:?|=w>3ȪǍ@JG |wEu 1br|GAk6uAT\6ϾL};)>-Unɹg ŎQՠ!f£w`1+|!_}:l`"r:D>wob+EzS2-ϤUcMڣ&nyY&{Π!m1fʻo'suWСm E%x =9ޝ4oVOgR1P-:yoO**a.E5s3[p9#xȍQ[zm&W&=._~)苯e[vӮF#=h KWcY+={'O?M/®:}-c֢%芋ySn"ު=⚍aJHg PU,]Yn=qYԧ!v3iT>'uɤh:~YTO.䥉Iحwy eWUSMA\sڋ Z}\˖ ٵWv`ӖmlRL|Ng:7sn/NzY\$8g/ҳP47E~aiy6&vC/O^W^Cˈä֫3WLm0^toEMdS4$]z1dp/f,믘OTB]:N)ALZm۶_3}BDpY2Xh&h?i,AXZMl`Z5Zɡ{.DF633E5aZ*,ح6'J'`<5{xهq;>>z4Cb G Y9|J\ѱ܃oVۺ? j,ǔ Ѹ5SHlT4XJAEG"jz6VHMueqCv\0BtŨzEvC\sM0vSPhI !bap' 닯ťXcuZ(izѥ݊ ՔW40sv4Vs J (Id BkHv'R}'e5nbU̚^whf8PNqQ9M"o^'aŢ61ZiD5U5qpR&"u1xqyS{o٬}C Ng[令Aaf$dA/)e߾bȍgm=:}Ɍj"6n)]ٹ}#ln Cպ }0s/|NUCO@U!DamT8l۱Ū6GXh/0p%eqc9wmɓ5#r6,S مOfMprɏGTUiџrGl׌8 E9diHd>5kl`rR"d` "~NԔRZYMj~GPIU7=LSQ\t~!y >{äy=dqZ]٬-ԂNLfJjҦsqmH?.~PUaһ Zx}Cװ h;9^{i6.sf=N̝1/뙋yק]}4 Ijt˖C7OaҔ19ѧf*Z(|L~m8xӲҹU*6GCoMƕǧg`,G^p?Vf'Sc֩'vSc_-= FUC11鴎KuUl]=^?l;̭R"Q07/Nb/YԱ |>;b۝nGA.+6/d#~pg^W[X#Թ;?!/>z7[fudkft4-:oݴ$_ ?M}ĸܵbr֦R[G!^QyIt$/7ew`5G*8={`ȾE=<:uDDV [D棄 "0'~FvOhcgG_J;!ЏS޿< If݁`aG WB,Dt+\^/~ _@QTvvŎPf8Nlvknlp8Ag\m+w3_v]p'4^T ÁniLcSؓnnN8=p89mF-V ӎbX1t$`ʼnbU/vtZw?z?  .5;nmɹnvT0}\X6WKG`RJ8vL4 T+=",Ocxeܭ:Db>=t/$&bPjt8T 6fG fӉbR(q |=qdvSO%%1orYȫ[ѫG'<\6L VFWn9o01*Ōf H=3}DIl+wӾ Қ]Ze}lW3.ˮm2F'v%"0[m8LNK߽ϴCQ :;3:!eHIvthMպЃ8z eԓ6iH@17}OOլZw' v#0o},N,67{nv~Fŏ~ޣ߉ðXl8N,֠FA(Նw!5YS'aG3ԭm! Iv閛'3cO_#Tmc]̙;#+/86*0,8N̶NLfS`ap:U yT_O4λ::`^X/~?n8lV3zȺibCQ콨B{ٶ};a'?/YA"yjٲu# ̊hNVԓK| 6QY]AnAI-d! lپ{t2yQEf1 )"= 5lݶGAV:&kv*5sqZƁ)*"*6V4WܳmI~N+L"SWU-;hbhӺ5Q3[a5Q~p{VCR\48Lul޲!Ho]%??=-"-3H۶n--e(<Udyضe ťXhO!vcAL3(ڷi '2j,G|ztHƅpڜW!VTu>"H[`ɓougF19y8X=*օyL jlۉ9"4LWy#.AME1[I~a!1 ;wPUSOFv 1Tk\qd¤j+cwId$ )-Ǟ%؝dbUrpԔdǾ"bZb#(r1*ر d&b=ڲzJ^AN"6mفHaa.{8!jmJEmNN^ 1x+ٺu ^AjF+uTrT@) d$FQ[~IL&5)ڊb>@lr(BRovC%qgb5)u@_ACCX;FkW27g#GXQco RTUj U F͂@  2 #0C! ㈹u^{5_jgW߇2?!])r_UE=Y}vc Ep{fTx fR-\/0dtߋQfR6n;kVJ?}/O#wH^{9ZE[Q7>U=cG.E1sHc||iG!ڏ5wjvбc+GtgmNaGKG˿3Bچ#Żu}/@|>^x&}{1qKE<%b TWWp80ڻ0A O~0w)|bo",s^̂.vd&o8c#KWo& gŮF Dup:"" + jFmh=0'ĎS:ƭ7 AI.I6Y;fCs#?IPР(8V^77 C #LD"bX;b`AJKaFt4 MfwD0Ż!COk. CCiyP20_R:>H`-F7AiCJ 5sk`BH7vFW|_/Eغ`uf?zm4{|ѨW>~#? 3l6cڑs0 -bamJ@# )̐Z zH(< BejKfl۵c154d0 #;r D4t]t:zlwcs@}%k*x1H$fF"tm(Ѱa+BɎu0a<:P*_c>ɼUFG #O?k|Z?12Ez&nh$]}#K Fa__Rl6,+g3Fݢ%B5y"׀ad RJAJ|>_B QAɶxr @] ?Kg<˜_wMOJN̡S.1P(6WCkx8X_TkkgFel UJi4W@)`̇ch5Gj@`4ˍ B}6NL&_"O"!5X s 9ӿʈ!-PoXpՖTNq*Vs[ZErZNB,Tt/3gĺmGѹ[ݬc9̜ Ih'(=ӦD$w tmQm708Na !t&%k)oeBGjE15556KT^3aŒu!Z} =s8"LTl&}5ky{{. bs˽vWT$5d˯Ed ED4`v1'㊳X`*74QĄxunl1*l宛o뙫SSĉy왷`D:I\aX1CEjaЫ~Mf0Ht_9y0PԬ4/ 8Nt]?~z50|Ե|oE~=RFV1X\8)O Nxzf>٩??̓ވ]ۯźmXާ^~'t>Rdt=>s:];t&0ʶr^3ݽ#m7W 9R9T  R ܛ.[.G8crvj6S =4ѐQI\~eˏe/Y~~N!v;Օ%W\`EHLKg~@pȋ~`|ә7addž̎.n uGf$͡B-7aH(ڴ[[[ރ{)p%Ka?4qn0ѫ炡#-@(3R"j tZ tJ72FCŖ@PGO6Cn{Iw,f$t}CQf1`T^i@|z*moko)5v٩q4rAhV#Iغc0gqoLEv,L~r't\q"3?C-]Ocg;XiĥfmwsgERRa]HHZ,LK$73Rf.[GCaՖJ .v>oQ}ĵ#R >e/ ^VWBW_D9κϞg0QM1P?NCyiEF1|崩waCж\]JVDkʫEn#F+ϾFEWt*=A= zS`bu0zzo|/芍CSqEVӺ{`T(C53d8lJuixu]͆@V>xC`w '.rTՊ]Bp("X3:SB cJaƜ~ 5(A=U( Y݋0@}UQcԱ(&"Z .PMj L%XP@J4]GIݚa)H(ߕPDp+B+E|B?eL <%UykAf1pV !U0)X,jkkQ-Bf+U(*v{(Co]͏-EU-~*>teSW)9䱁*:ae) D4~0ߕV1a@S9/jkl>@&0%c(ٞٞjBA*v@D Y k> #2 0ƅd`4l_9/,M=DKG1)AlCHoyHTQq%#3%PRn=@u PI$fE(XUVՄl!j'ɞݻ1AFFaH)=.0pHG. dJ.qMdppezaKBbgi?jM8A33x0#0㯎)1 ǃlAUMh5+Ъ7I .l4 Fg@a à e1tw>*gKj>@I>B"Ehd"|F"ё!u4]iQ 30oimb"UhӐÿ)҇Fi7De_߇EE{^]!dc(D4 $nцa0FaQ1]AV+"W,@X(c7>)!$cāRd*I6OAYyi:3 ?6jK a B`6[=@~WƋdsbmT]j&1YbJ?} n6GGGHq!6͘Hb:n67x3fFa?a 퀆tzþMC9cҡIxC<_!P6Q[S;sd6míyPT0xt)hRk2UX# jjF[ $JUUTn5rŁfGxsaWp$`Hf x oI֡"paFa]2\Ӵ`z|%?`*m1NKSHMId!PT CCoR'e  1AQU vݟ/.7tD0QA"L[ ?j-Xѯ((ƴ*4>92-nwp2PPTMZ`GESX^ joP-¡ı_U;2C?b@B҇lFQTh Z^o/Q-K<ڃ)W30yTU 6ՌIQH|E:n) TẹtKs$DڑFIq>IBr2.[ K3bcV5!(E|\fЅN⮫Ռf=R1o7mv1 EAyp{u;J`Ո!6:\7^y&1_A,m=$a|1I-`+HCލ AeY UunHb0P !6QRZbդX ٲf l RTx`X(n<~ݎcކZKˑظ" iqÚ| Mt/K,^HǂVҊq$F6ntE]_[-BtF)))3O igHlfW&#G=Zg>QZKUykb G}$$ft&E5݊uƫGSԩEuLcԍ"(W5&B Ex~ULK՛/2Dgo&+ɉ>yX^0w8^KJL~U&~[}5l'?Mxgiߥ}/GW" j?O=p?,<=Ĩ| ?J:EQT.'D x.ڪ*0;pXjjjPU(/$9!M< מ{-OisϽH/Ps0:w)RPTg%X^zᅧwv c~>N^|>#S0Q0 &a♠MApsZ\CW!+!TUW34 :XFlo̸ȧ՜NftWu<ͯ sȯz!c/? q _xᣯ#&*-O{_L~˳gݪ8Z̅gJ]p ykLJ֮Ow=uw`wg$:;F_IMA)bČf'21 w$yO.Ųo>e?mwx`Q_yhMLx} *رb 1}RD4d T|1g}NfHo?Vqf9A|rKIE=X<"\JDbf;aRg>W=*q%'OMeAYI1_e=:s0~5lKqEOV'J7&/̙'_V+vIMt -cNWkhɢ%yXT0 c#y6o_4P<*`~BA||Wr5{DVn74^4݇fuE3|hJ_MEJ )5 !~ HGJ&4RұgFni۩5^?^.Eg0I+ {*yqv̈m4x:>wXf>JPPBҦ5'J0dOӃ+ GT] D ='OG2w|"it*-dt0=:ҹwor y[Jp*Fیf.G3WMAsxE9Q b_}(_SN]a> UO7 n +u}sC`J$^>;aUJ0Dw`%1I)8}8y 6l#i7t@yg((*l^8CO[v,sg̠ƣ[Z+CHu*$"Ji4jAc!t^iPw3lY(%?D`U-61 CLxs.-};҇nѥ/g>tC; ʪ!kf(ҟPLvDObV$;vljj:Nml+AäL~/Qo+se߮u&,ֹIl`UEm2l áiN& };p%ǡlaH1)8$,_ ]͏SeڭPX؉ZMIR|T4*j#shNnPmZ@ z\QƧMx Il^0XwTQV/YA? ǤJNO[EVT4=%)6ڦUeꥤf-^*hRE;Lݵ!")["hJþMلdh;o QM*6.y @kN ]*КD0oa(-6VҀtU=XdE1QD*>YS#;xOSR Iys;W^5︎M+fqUU[T \Jٮj `+@M6tdK6 tjsRbRQ&ntC&no"Y@3 vWFbc d5W{Injd7ә=Ux^N  `]{}~>ҋ>9.ޝ:vGlb zpsbyVr_*vƳO>K3NqQFTӻS[d}97iXTlw/(&\D7FI0 k$=NÄӽ]ʎ,Xy!R Tޗ'zX=ڦyox>yG.833?rLFӾR@y B`ߓcڔ( ha{}LyUx2\VZ=0f`ygɜ>37-g^+g ۆO{DgZ]KNZDCIl78#߳~Nu/f'zuE\-8 ;&!+?vG,e']dwMVoԣ#o/'>Ǽ}ќxޙcG7Z#h 'D5dDĹغa?͘K{3saDXzcl6sŤ%oN,Dc1'5}F3gIV^ttԣaOb}IIL`/sy| W*6Ν5}; -@snpXZyȆw–Y*¬=@R\!*FcCJFp -]e eG74>'}d0pP_b]R%= AMJ#*~#dhCbFpک'i3n^Qd4KJ$%DKWMM HAWhGcI͏+CzĤx)%&8[c4fl3"gDaL/[RCOKF׶Y#K !#zqq1դc;@GwEk0-2r׈ƽfwkD%wAůzw\ߐ>hDBnF~B(w#**?{g0 )zҒ.%㴆-蚆PGs̲M"L&bcc|ܱW(,L6s+ǠJs*BYPh@N9iL\>)$dh<8. ZhhAȱ@(B@q|>_KG3z6mDۼwswc{1d(@H6'.@]m3(YǞz9 ´(5Z *Uأ?F"fϚŎe8"3"% ~fͦ#8aIq7yAqYRcYl =y׳IU~-_kP=po\o0'NuT>=VF\eYd 3N9씸 Ɔ S0`P/ؽi5.cAIvR_]ʜyPSFJ;ޫ2ÿ U Wa2cm?-XGXs)t-L "ٵe-kӧ\V`̙z?2xPb]Xl<ٌ4Yi۹}{vƦc7{.BLZb8$E:1clJk5r p 8*سf93~YGSRgϯ~fo0G%sɧ& #uر7wTUl6cZq88N'.BJIiY)vF.n՛6ImIp&mfcRXT "ZqZ#qY"HtMۤtNʼn#^p*I$˱l-Ǣς1wx]PTEiLExk*صNb硛n`bZ=h?w_ӡ:$Q[Gn3[ٰx}=Kvx1Yl:?,XKsZ`X*M;>EQ;Bٳe+l:aA*5'{+5xVO){}.8i 6άosL}vԛӽ3Vݼ>.~2NVbG_Ohtk1q,ϋ7w`٤׸FF̆%3{ٸfڷSX.^˵7e_i%dL>' $i9,iǭ!F y}MVѧ'u;s_ˤ~sŘs]|2}9CFMfUs`؇WY~{2iL}}l"^Tm?JOg֨hC8j|Jػsjt+fc[X\Q,)v0p`?dn&~ gʦWBn\cnfWPW>.}d'QˏL_xACa;>UP^saZx^awKŽ AiD7F߀kB`QXU+6ՎxnY3mkq@c@B _s}1T]z3lPSӯ1VOr'Nz)6w MNI4rE1?coӿC6>2#B.87^<}Liw]:$}]aao+RXh%P3hNnpGn}!qOAl_KȢNNaPw!/~;ogJ6i̒UHsIf]H߶.0 b?WoW9MlY=u0wg,Co# ~] Rhպ#^Ƿ>"y-xv-kne^ rQ]X R~ub Ogn'9sǘ<@dl< ]rر(e!SÂӺ_?#(ݽq>l]:}յ8@i^ѯ{{23m|W&tc +}|\Fv/gw虨˖"[s7{V=q0n4nYo:Ew?f7]9 ~/M;։Bb&mdP^8J4~;{nA~Eױ $US2F|v-z/E?GH^w7?d2mzceゟde1zvۏ^_k9_Ə ~e):Y^ЫmSytс6r᭧ X91v7P`ߎMTH1 \݀#.O V͟ݍCZ޴9_x)Q#jP)߱Q&-+RȔ1kଡٵ{f.‡dʹ|Bql];aбSVl~'3(4~F( 5;XڛFkCtr;൉cIH_\w{6쾃ZkR6s?6^ĥ9h;xij &_>L<%jBޜ>]+h۵'QDQHaxݵνO>~+V-E*u$D4ICycb.TJ?o V$fN>Z y&BQ8e{aљCx FʯdR|fmjOezc{*%kw2>=q+`/d 5Cco\ 萎VcsP\Zl7X UTh(}9w@43 ٶm7CRWYξB^!wCsYT50w qĸ,,_~}:eYy& S{g3Y0^~[/;t,4j4{DzRTgwq1 ldF1wbP[ի֐)hPR*h_S &Uy\wQĢY?_؛o[nbWI5Hj|Ct؊`1kݥ%xESIYiC!39Kp}mFr;VNQIG㩔1Tvc-ABl\ 錢0oq_?Ȟ%}OwR62RSY`&eu~%Z8:jpG0zDgC# #CZeݚ|1/_ 3ei&c% 7/**!D n)_󶷌"h>j-1@wP`Gro?yv+B(.DHM>"aE$:FKqh$lVԼhWp\"4K~GzU#L-m[g"MIWUЁ=H?ƭy@62D9S CGAߎ qHztEQZtAu[`?y*+h޶mB(BTe=i4ݔ!4'14^}D `M#sw0 ߆8 ԶcS?߶ukv:qH]l_Onm1iWaDQrVb"/=#@Pn4x_(( u]8rLqEQuw 븆8FyhQs 0%Ks8}?t@`d!r*s?h8h#3 @[!pWxB}_RSYNqI>h|1~/e%TV<oC-Թ}-^P58y:[W-gݖ]¥ySUx-UWRRZׯ7HJEY m{())sݱƦKظc4P\TLu1ihPVQ!"y(-)5KewQ#>wE4xo6J*k-S^Y#<B ٱi-+7Dwiq1u-Kh Ok14,/"29:>o7!8hgqؗx&M)7AZwդڨ8gyuJ@‰ NiVر=*5^Qq~h ڥsy㕷)x9?[oW@ hvsg]e )+ˬo>I? Vm蜓]G_+19 qYUvg}=utr c8Ğgx<;<{en^3=z K׍w2qە[oxy~oHa0|\󏳱;Vٗ^bo5H)8d9~Sk!j5q$.qϲ{72zda7R'mnm4yQkygd+Ru?S0~7< b WsatcY-_g~U@U|ubLYd^}sLn6n_YIF벰v7<{@c\yNK d H͏뮣llRGҵkڵɣh\>/N7C =sx~Ze=w>uߓheoRՙ{nU?/[6|(Macϳnn"qʰy䝤xOǍO y HCOn!Y9х(o*sm,tFo|ϳ 89?Sbxi\q] mW_#uڥx[(vu[Rw>ǐÉu9x=n4]v7 ^l$] ]"Xނ0Y/hCn4y[k;Pm1L[ɧHѺ$F^{ NSaОmKZn$I~={ !/%x;?6n!uNG~^SJTǍnTWѰl(Jjv!]v#=ƤUNRL݇z3mN^|:}_8Al90Q`D<>xk"jb;zvdﲹɕ_N֥ Y0#,E*0wYqEՕ󪛱o][S**U8b~a2qmRԜ\}$:޼ISvPrdN8ՙV|9{عͽɰ\%>φEu?tUa9|&nw3Q[On>-r'BPQ@Ǖe(IFD.חsO2o7:eF3o5,[\p u&I1Vv,Yz;K8ћ 2cE1:xOHq㕢*l5o䶇)|ԥ!Q>pӷүW>" \3;:"n=HiYV\Sˢ 9uUwd}!/繫9sBP#3TN X?[7Hr7_d5Ąd{_eUu:\{׏KX]Jaykq2 cY/%9~d;|˒KI==e,eӋb7%%``%'7 |HY_%)->mDEm=%Yq/^:2}vVhy)=Nm( ; U'8 8o4w-_>{*=9PQINZ ~l: ?aU:1!Jvo?(>ݥHÖ5k1Z8c?jFEvSWYpXicM*2quٵ~\IݱfsN֭1)Rߖ(λ*:$R_)}DrA/r)=;1þjbc/7&HfPEUԔ"/+ #"&djRreiSٺ}lm Pd'5誝`-ӏ=mL 0 ⎒Kطߞ]EֳnZ 2ntNRyxu}[(dXr34q$@Iy-zqŧ0 /w+v2wgmu&ڷXfSCQٶrU_Oj1&h[_˾=9̈́b.(F5s<#'oSޠQVzE44T_]~+t͏52t*^JrW3Db 3rSz<-fGxx]^+_ @Bj2F*XԨK>OSy#Tq'hw1cK]C4B`:4 }׻PF%b+&/8n:3SPftd Q;1ԬSQ*A ?`{[G>ՌjBG_BtB\0];sYÑz J`yHxpS! U#ߌ@U`9hFMl^¹oѦJ)KI ΣK.|IPirT˿ٴ;yqОH]CE Uj[)z6'vGs/6 f̙wqRvٜs"dĄ 0 ("(Hd$.9-l9N~D^SUN<{`ep{hEDP$,xjƊLخ< hTEu{>~^Q Kx|̳L3|jVmj/Z]E[JW҅8G#X6F ^Ÿ+0냟5vîJ0%Z ltV&SUza [LD**>V7yH Nk=مN,^ân!h d䠨"*SQ!8(MLxstEUsG WtUn-Hu6 4 u3{d2ukh/e+# 6ju>ędsQ@qQY18Ⱦ{0'q/$Բy!IՆ?2vW- gQVZ.EjyQj*Z$Km e ~f=(RuM!1n~: LɩABu٩,-'4cmrWYs~ek v6$(x^$( ⭴oJh L#I5P[])Qו޴)I$AQd‰Lvn5ƈ$t؝o:).)Emߞ(#7&`8ufÚ,(JzPzvEUQIփ#Yj˕JB}5\=/68ruDLPʢϖs"8K>M`4R½:^* /DCE!Fђl6&cy7Dz K"CX˿Xd:ٹbޟ8uGk`*8v<z Ⱥ?Uf]ץrnN:BEmi.֭jYH^>nm TC]г{:Y[ac]{_Y滯>fs8r*?ׯeRTvT4: .' pɕ7~2F?IhTi3fꥋGȄG! {/zOU36:a\Ư]s?ūo}#F ɯe֡0A`p8DQԾLOK5.LgqJTA3(90`3ΏGG^Gƭ51 %PzE;Q˘1.i8bʸ'd}p gC[~݀֨cOKo.s530Yd>WҿF~9B#MBxd 2:UU1DE!dAc dԘ[WƌDRfHTнɗ\IkAq6KanYӀkvS^MXdQ 4"jDF`z} D533x};<dc0ODB/G6cwa7^BUT:uioᏱ1$Yd ꞌ^mw$qu]w*G._1}q/Use gH¢≍B4Db6{4#f@T3hhOӏ=h{nA]ؼV`{S={07{ܛqYCA$-{`ʛHV$IDATxjNn7-We̚+ч0wT& Xkk/"nF$h`G#(nŅEX]* ن쏏IJeY u&|e4"xw<+s+H- 8l**|0khGN#v9h7֣:LF(P_]NiE-:*ne i !NbdAGTt4&EiъLQEg؞|wʪt&3>hkNq94:SJ}MX>Cj"{Ȱt/cp-,*1*r.jEͪujIkDΗfv}7^rk֋Lۿ(*o"-quW3ĘN@G񟝚/<9 gϹq6ls:6iMT~l6e=xⶫۜ/tAҢH@Jџ@`aQ-x#HZOE.. ]vE0_.Zl[~ߚuV[':{ٱg?p7@3MG=Ի%rHm-{[+zkj(bt9J%S2O\GRt bo+өs'~q ?Kp8l\)zwj^~FUj櫯Ȫ.Ź8ZK6IBKb3~Scֲ}gH Zo}TguJz}f<޷_Ojˉ eϋTTZ*Z̗߭&c>g?'JDQj9mڭ=(N'JH"SGLx],8uŷ4qytL|9~ޚ$_|S\F?s8wnOˮ$Ĭ/1a<,v?r1.2}NR~Ύ_dl}twb糙<삝}C5}S=yejםHn^"¡ذ$.?fMdeX25 Я/sH( iMz~@U8~`jz~M\l] st@J}u,Kc.Ow/?PV%A:o?{7J8a3sATh͛}i,&ANˆ;itKDEa0 6ӮC;oa y(AKiGL-O/~c10,%Gf2lq9.t dko7!ޝ:Y3:!7- eذ;g<{CgdTgqH1H̑};(QؾqY&eɄzxm9D -.ϲslv37)W98ؘrսmB;ӿc8.w3WO{V%=Ctk(PɱSG#)N 6Q7Wk11ķkQSG_f/f1fnռ7g6s3W\ǐ]X2 ]Y nЅۛ}%SƣձO0K,_HM 9k_cU!;"4,F=T9 H~a L$_)cHfOHZqdF61܃Ԑ1ؼb>ڙ3r-CV.FP~qF @EM؅m߮l󷧲x~'y/]0z[u6}E5rNfғq->HKOގI#`Z@7(!2HDAap.Gt= Vo8k<[T6!Hr&K(91Odo8g;ƍez-\ rOeaO᪾%kiu\zcLyu !f=.,`RQL]ϠkaԊtޏ^12GhF~tf.\aߌ[޵O?*"(NV~e-fsqޞČEFeӊyٞA}y1r+I"}.#5‘bS/"i 7-<\57 "*@Pl.v%ꉏde]X!u!6OWFe?DZV0eSL~{.2 d5 -{ {R[O>$ѳ$9[LWIGvX >^7"WGXrzIЮc4l :uHAԙ@eD|xuvIRؼ3|y_ē7ٕ%f0i|ʶ ??4TU`㦛¬Hz "971}Ƃ"hb @:9y*ˇOp 7^NAA,RɯvrǓ-PSbG&q*%_[Ǽ9IM `f (xxT"bCъf#ZQ-CDt,~Tg.EUcnC>zEEk4t5n+{3P;˘4]qд" i>TT:0w`\,S'#{XTJkh|TUA%ILd"͘ ᪞Xʑt2a!fTEAtkq9<\P(r|:6e]b+,bzU:S#Nf{9p( KA=e/G#胪H=A~N9ĸh$k̽ Fr[(ui Q "s݆*hI?IL{C$ }8Yn!*!|M|?~{!k0i 3* Z@_CLb\Ɨ|jTgen!`B '{3g~z>FV ^@jjT>s2'r8 T FnCc0QX袡8OHA,rpA ߉MȁuOҒm#eӍ"0BCs0ՍҜDL*Xk/O\Ie0$ ZN٣ryH$ QU LNcI<9ejo#*~ͤ揠1Fj5I 7 8j{eSEQpyɧM[n~t"̙â-=wn> ~/G V/ Ƣi}U,v2Fmgsd/ύDHDIG褾 a D"-XDnH}lrDњ hD0n,Tt:AX]N5^Rٻ~%?3/눀'FVU8g#z3.`<2Y-…RO795Q=MNK"w6 -hTDKY^LN}8fDrYQ AP.ZSwрLDL8 QiSp)nDQ fw6/d# "z*VUiZį"GMI&GjD؊CX’|G xbPdߠ|Vv'["1:Q8c[7rݷ`x٬3Sblm2JUeEkpͩTE/4 jeP@BT(2;_¬V2ʼn ' $X  .- ZMEҫ9%.CR0%nl6ۙ;MyM6VHueUۭ*q5;tVK^!NT눏 Ŧp>ʫ 8ʲ9PP"Se;xmeU瀫I[^"MQF7_/weA7͕ӹ4fM-YCt 7Xtg ~=b|`h%㓙?K^ʨ?JBAVZKz Yq -u)_}-=q&-6?eRopא~T,d܎!ql(g_i- *do27E-29҅L2a:n? =;n^TowE k{(?û7~-=;Qxx+/MD.kt`1<0=ᅗ1Ugs;z,ѣ}0".OcY6UKܵ?c3i)Y /㧖1 d1-q.&"G+:h+mH{3Id]KI]p'\ɑԋF {੉rB1m<Ewd߭榫{o%rU; VrH @QTTU?",ޚ*ɡ:~' 7MU)**n/*9wȤw_ 7u D%w$&Qh $O#>68)*$!<hWe%gG>HY峏hN+zNH!"PKIe kЩsB} kGE tԞ`zvF.~&@mY%q$'#"O!sw|NҮ'ώyp36K=[ Av9XSJUU/,Ą*JĭCo!K'#1ͤvI*.$ԙpwANVA91]d!Ih%F@ i]LPrN!#ybsMGԚqIotn+E |_ĝCF\oO\LDtcCHMH\X F_RuŬa bS҈ Sמr +I5gGOR% #5-v '+ mp{4FYOAI1i'I5,Ywh*&`SYY.8.ii$Š5蔚JD ڧ׈D%>6vDH3=MJTzN1h5h4́!@zDsr > inUeĥPP dҒ>$ە-nsVjL'kʇI(J@eT/ќ}$SGzYEP x DIj<r xYVyu%<\v&MeP$z{pz슢 IRs  RU.m1YM{FQ6׃P5It3oh1N#Ó$Muzt($IGKAiՇ (6 Qk-*ͻQ=Vmt>@S%be8΄n9 [}NnZ$h(g+J.oOsnFK[2HQi6xwK;)",7ׄ4$ȧ@i/[=/^aI^ﭩlǞ~p[?QznU\n}D.x7[@zJ ]cNNS|腇_AFv͇ 6oER,]\@.?i/DI ۨB; Ӛ|?u, ΢& LADOz~hZy6mjW+C Lc 9y?`gr|_uT]E-_oQ_\<r h48Hm] - 4a9ZU rPW[%7l'}?_.E֯xb u4ZlmpQs68Ev:F]]6Ok.k=zdq@7}(as0 Gơɗ)$nk^k "y60z3 eodO8d]S>@l.;s*02IvsɷY1ܘg.6ֻ q&^^7`AYHk;W3fw|3ŚYK>]y3h*8ca-;G<̓.A+Aͼ'8{˜I˭<W/&x#Sd7nEm\NQDUddUh[lHQ`sj*]:P}Oƽ8NЫsyD7o3ljV37 '#m?noDu,eCi)ҕ4:}gTi$].FN7:X %6ucW[y'IװpRR/pM }Gd_wy iU'63n]77_OhLd@vό}k0SǼbM[X,](gG穥p!夡ъ"I":)Ik!FLD~}oV %B̪SY&|_;W&1Ȩ3w3+ˇqgI[DϮ)XU.7ҫr% UvVAviZhtHnuL6yi-.,{e~Ȩ ] n1]3V2K9OŝkjG:t@:n4ׯZw;mXv4Z~0S11feGsbҳ}M'F>9W]s=T2i3ԇwwl=ncK8s _r{FZtБ;ߞ2vqr(_sXN;m`o'0fɯܔԑޟ=QîއC;ኾѣ',Rwe~jرws>w`V6P(؉Z^Y@G#^Ǒ EИ$n.ttK_`s`i1ly=̃w Av~BrRk:۱ 5*F|_ظ;+:7Kk?ACymnΦl"[<MtެsDܙ0{&n եgg,e'Pe?R Gygf*OpFxw0Wu;JjKjroMgadȉ.!R $1Ĉۈ̧_|ΐ!o[.h`y^z7Cz%Stl7s/W^h_j]ǫ/ˍ'UTԒx-dk%k6g=ݫz>z7zYv \ۍ޼pu\?D_V1z|*r6ٳ^_F}KG "1 y ]Niv <1A\ ܷzj ٰ9S#d_X; YC{i;(/ʣ].%\HjxDg [yvE[Yj%R0ݒ),m}|.$uHyn&-fMg򴹤0Opz8v$"sb.e3bԳ/}@aB*nT O1.F?C(+_HHOI(v= ;}<8^MIr:?7o@lL~V&ZǑ={-+dIp cFO3mgc[*&"1=.J\jw[!nlg/SS$jJч>1Epx Bʪ꽺$*[Fv&jKjP]Pe79'S]kA U޻MEA66Cwphl9i9QQGRT|4ȊHBZw,EXn~ 4o/ǥ%%1ʢ\cIrOFDI0>ܹs;#,ls~z TǨybj*8vBYIl=UC{odʅ^Io9:]A>ԞZFUy.d4s"UmzEDj%+4 FVP% meID[2T]ky[18X f&Ev C~&EՋ2|OOgJQsuL&4:.׹D,*H_~6\U˰ZA" " Z^xQGYQ|H(v"iED[H*h6G zZ_Z$2ACr둬elYV G@<(*ZC!;ִHU7-leKӊm}OpIןVTpt#b-|2EQ:PAQhi*Q2az*%B=]V񓠤CEXo%<" T`s KebUbw;0 6<+h,ۖ\q5jwp+f#F"Dۛ`&Zk#AHEq;*Aϳ,,x&?kd[IO E&04ye0K*E58ZL~}9s?Λf?ʶ5_3s6\ UQ5vNdR'+^zh{4M "r1uޘVЎc϶d6ә+Ҽw>GcBn%}ֽ:̲_ >?A 2v%KHyUwsώcc@ΑdAmE.""{V ؼq'j!j jUQlUUEQ:IqA~Zc,[ 0u`ύq)˥d5|rJJX[J4%E*.g#yfg滅Lzw].Br{8tM iP6vnF^A>lH͎H*ڿngϷ_%4i9Z{i:I cPvP]o%<<'JaŷX:!&UQ";+,ʪQ72vq4~Q [sv rYq%WNKKeU]"cu{X|==tǬٻ'ƾ>岴8rrmJ`1Vn9jxW"g"NNő=;9W?ʺ9OLAϥDF>t?aDaЛ5 1j$?@$7l㽉PҠnE綱nϜX۹2~FQ <$/O?ݫ<=ubXLAX3y m|kdt*OW2Ą"{("S6 gN`y`(~_P&*2H@4`?Ѝ*h:1'pqpmԕdҟq:m,h>VLaʴάWB5{1UC2_3t:*ZD’wަPvN&n,iཛ ">> FD6 v{:?A H#J2z'ڃ0I.6Ժ~PT;S]Obqφﱩz~jIafN9(4"z=nxoNQti"ˠ_n~0vBP qHח TAIC%|``Ƅ'1*!p4uKGTIC5]3!|0V~Mg̸)D)4X}O=Kd1|_IHjR[JULvu"۸ _c#XQ|1h5?cPnyן= .aAgWR^oe皥[ ·QͰKx{6&kByh| kWp5Vɤ>6ΉXL#(0|4 Z?ӊũBUu5/:?( Fh$T6d"Prl;DB 7!2yٔUER\$N[#e8:pz-~n/kc n{#yȒ`?dE%0*$>d݋;z'! ed"h}Ii^tP^R]i$z""#1h=>u2 S%*1 3LOq9ΦъǏD| :yr*gԘy]\@3TZTC 4S։(M78()\ydc%\ȪlI{>~3(NׄX[Ԕ젞~b`یZ]a%*Na<3n"!3bxǭqlbjn}չY|ID oaƗk{*0mmt=!Qpp#m_"OjFYp">&ʿlbtưeՎlr`;5_p2nÉ?~qh#iWr!ۅކ 5mզp MlښgzG61jWE筲Ep^'YbM<)s6 ^&A6߃Wh:w_ mįNq:|noO9E󘝥Þz4nHI/~kۯﳍ.ra]&"e";t%va.+vmg};TBσX]֭8z2Io&ߓA$I"e.N-6Vsx.&@ :G߬'[W|ZuUز!k̈́;QZi!($SO"Q Xjرm+fTx3Er1OLBd*vlvk̈́y|DP)8um$;߀ |Mz@In&u"Ɓ=;ٹ{%U `ERϦ@:$Dmܳ2 mڲ|nƑl/A>R[QSyz䔽NN>DE,('7޽>z<6o||7PPvşQZe%(N2~=|S9PXT٤_;oUy<R[).*Rp5J"C5 f;ӹ[4~b"sǁ̚6gr3_}5@–D&}ǸC gy G*m"(/-!ц8Yx6>_Or|$y8N؍J.uLy]pϵL1%:A^~'r07?͹vMʙbSRD VV* 0v܋5w݅"!DK>`ŸHI)0},|lY}wƍ/,vM0ZQ_°:#w!JsS)1'w@jgc-EU;v!S aIyb}_`9S?^@8#ǎ泯Vзv=}1cT&ătT2Utه*{]! >[Jʨ;^oOz|RyǩtNjԑSE‚b"+|vTe/pߘ9'+f>gЕ} d>=p'Ś?ޯ;DŸU0Gǯ |Lc X͞ywmV6>iJAcW<&ϙπ>[z6rc0kbNI~S>ӢPNDQ$z:n  M@&aaDTH.:-&Šzڥ-=qx|$slܙˤ9}oNY6;a7Xrw1jyŜ˼/WҮGor =\j:c^.gﯟ}tO?cB(̤asR (Nۃ_l Bۻ`nQ#?gOLٻo0OL܏%Ouћٳa kG5ܒPɜԥ ~:ocg2ID|rjIҙA]i 6Hy B{ 7bZcYh,yl߭37vb 9?~Y?3aSVn-OW꫊k+j@ ዕ牉l[5_ Vǯʶ#Y[9_xgyke LBcDޝ d˨Ϡ¢2Ѽ2Lz ZIBw#8R5_`ߕגbHNW-_|(} NѠ1Ϻnon,9koDYG֯{?~-GqpTr*9qAKo?7\E]anno$AVVi%:0m{<0JOGUјywg`?DfYw XgєI8Auƌz^~1Y6΢@>%8^U7݌h%3 eڴhNCjh}5q/y`c 8X'Taנ]<{u1s|ɒ4[WΌi;Yٻ(//qoR\ ޚF{#34:EԅW&cA FMCh@7qe/7J]BW,?p=r *#]%9sY4Í9ZJ+2ꦶp(@P/Z )a9tI`<ҡ"25$axpxq;]*qI 3Cr9HɠzS4sh*yI&Nh8i Qdgx4"4M#hD-N:Gt7q+0У[R (df1DkLݠ(nBZ!|B&~UU + ;m8$"C")0bIO. 3t|A #6LBt#[Qs(0Qyg 5|] ag 4;''*EYROMY0l2ѓc-e+)Ohz9  QVpXTjȪFpe.2S&O:{O"(2ŽE+ wZNvwlB,A$6>"}-= CShd+?G3a ʙ: 8O>[!7pCvg=wj#:CHc|HI$3_m JPYӀ%=<LwpY*X8wԾ$[N}M%eD{7㭜Jh~.UIOb4|#2 z8B%3d/*Pw)_<|&_[})*i\g_g2A[n ?-R_aw ɲL^Q9(vةq:6m72&; n<`GoAFwߛDzB9Bcj+8t, NGi~&bƒPw3FkS2dQnMTIO DDDcXv:C{pDBCAqfB~gs%iYC2DQn^}wC-=ś#ޘ0P?9[ej:~n7"r*kw "QQd-3UGٕSȭ"+[9,^@K"oxÒp oY16?|o?\z.xpnUUH~ |6kuY7{/tH[ˌ~Z )*2ϗ0c&X 3Tw{EvD$=5S^Uit)=Kh^%֑ܳu7τݧ#zėTɏ_~Bo z-z:Da{ 96/]̋%@q2 ]/Kx}dz%-1?;y:ec=EPD;Hj1%2lȕ[jS"w|(>3"N^KNGHQ^Ȋ7$g;,_-w _TnEF\qPDrzʛ[ LW?i|h\?tzo)Cepbyb*Hɑiם!WsמEIP]$@\.ESХcf]Rw=ʈ[@: Ê94q؜.:tDlDӨ;ʱgF=@Q@@d<IJ Y2Х[O"Eѻ~ ̞O ߡr H7~{ҽ{)8.i*Vؤvćɟ kj2'eUXe=ģ%2%IuPWW&[O"}@Uq9tsXKs~!tm3Qrp7ӄ=aTAwFT<#p:vIxx4Su^NL]b8n 1^=:b{TOpx&1ώn +7\Vh񑰨xB g߅sz"|qj^i'8ɉ؜NR:t >"]PWɑY$1O?D\lf1ЭS;ƍ.zk@%}Px[IhyJz:$P'@.9$2#P[}j/z'M"9҇];vxh ꛊh$DQuu izoۉ1Dťb}r!J1c"x+".,Her>Y+Kx@K2zj*DQDU8/n"gToJyO_ -/|!6ІRe3U(j[D Uv"H-ctV_iٶJ@YF -c 4[]܁g֚mX|A~3?okkۇ 9Wςէ|=Zngp7Nv:зo:Fxϵ1oi♟W\N$s }tŤ>ic&dUQ}j6|3}GNAlR R<Sgp~zčWD'y8v/M;FFZa 4&#WFXN~d MyxH\U|9g;E3⑧ְ˕Xm.b:G .ͫ }):xÏ(6O=7P魸%c;x"wU,j9LJy[ b/gEl{Q;d5}ы*'v/Ra F콇 S<1qbM0Q>`z>_.A,{P5zna\`gT瑑ӵ],ªKYj;*= Z?Bfȭ\sE7ftDM!5'ǝWs~ R{3pZjXBV<rm5t Iao?wHؗND2/މ?:rNx~Y gv@+x'QH\|"]Si ϿHP+3|ӯwXAN|l,XW\1'L`ʵp06M?Oߐ6Byht-t aݎ h4"!tڅp?=6e?\yϿJ@ܿ3k_Lf/v%2q<6l>D+o -)ZBT.`]j>Iihto_+$O_ktFbHG!=;c~\ۯ=}J>{&r|Nn.R|-!&yGxwnt ;\ʎSN,,9>5% [{2 rqZ ` "}Rbر ^-n(O?Η^CʴpC%{5\M7u!x']c | =i`ӾG?'PO?+!)|OUmʼjxݎ"@Xt"]X yԚ;2]2gWsy_v=m,ݮ qO$5 Վ_XD#+c5Oy ]Dwn|<>{99W}yb,C7^lbHl6 h2yQtb LCp_ƿ;"6xoo@EJew)}]HjLgO%[y}? ]D+\GߡQ2\Z=t"*{_'s]Wr]7vb@#I 7d,,zKxYbE]=)U0~*v39 3R_xً~G~t߮وt_QKRz_<=e〫8k+>?`Jm)_ QO#w_+v=J}%:;CZ?Fk.?%c2j(;ĞSn;~_íWu$rsAZ~߮anbtΏ_#ƒ\{n , oe<} ;y?nȠ݉Hϝj IvFZ ,0ާx1dđS9o$w ң)?އAlYԅ殁ݱT03U\ԋώ$$s$3>Ji}=K?p+n՟#݂d-b㖝df6{y٧>ĦGq:bDpz-kFV/a<1A¬*A@q[ٿy#5:ʊrnn}vg#۫FjvJ sIѝP_n$:Fq QvmL`uīcGfԔPcG0v<<ۏ:@}iťz7NOFV!-¾|+w pY,)l'Gh*m05ۉX ]cTғ"*@E~&kkj;L>A2\ m3YٳGv }03nnN Qq6ְy.NrUwǝCb߰r dG-{vlb R;C*ƪp}sKQ]vlRP;0$P[[IH덯^Bdvm\1>/peĺ͇xӝWm$3;8QлW4hL$wJ43) ѯL0ueo%w'GOы*dOv Sp9*Yr|Ӧґbڨ1U% ^)P[oG;n oqvΖ)SZNp\'#̸ ]{iUw=w]R 9%.Psm[С[/$G%z4\.Syf`D;DQBRE/4|:y>aTU7"$ b$oIjIvޏD!*IlCਸTdv^yVisi߻; |V~0tj5CHgCSY.ti̶( dQ,fMWULa*e5Q\`!"*>z v2 $y,"D˽߀9u7yUuAhī W"04bnQzNvo qOxȒyi#N#5>#>QHͼ7oFoZGݒuRӍCVۭ( zUv#HcXFCAay) *nkxdbe/y\%~+gW/ FS7g⯾x3W! l3+{\IgB#|6u 뇭6'ZSj5DIn&6WdžaDmy+VFPR/ WWbbu,}_GO0#5.~n2wyi̚;weءCXZUEj-)dTu[雜EM*H:?R{~dqY{iazVuż <}GP^^KKyo{\w/UKmmgqTTQYQI~N'JL"eqTi( vC{pλREHJBuIVoG}U ?~=a)D)=K/Bc@_VY츬|4 ^@E5`4P1F3۷4Fn=?2aO^00?J\Z/'0nԃihA`2DI VgӢ11au:66(:;~\EۇχBtLgaf A1|h<|]vmd/o|8b2y ˀ +oS>k5i0!IVش t{&:'Ǫe0dʯٖ[@$kx?P|!L,d)u X*%wO{ORtlKs2Wwڇx M^?u,CB D% zh"z I4Z >zTQːaW1|J~7qtbgWâ1$צĺWVSD5} EQtFޛOcp L;`|Ld+! \/gp1$$L1t } JtEe#+?S d椱BBALy#ż=~`m#}jD—ޠ-5N8GX.RG&RZCnq1iez QQH "ȨR\RFhT<`WJrT즴8V~P3* Ք80P(";1Nq'2)ZZTr2+9@?d#EyDg2`Q\e%>&B_‚Q(>NfnP:[+풛zc ))qsM^^~!("!.(be#wxxH67& *k-DƁ,R_MItl 2%B|DJ Ǥrajnbw&%: TʪuDtfܬ\슌UԛFQZ\JHd4^IXҒ"dɇSr/vam0Z8C0,+DSVZh $"Ќid[-P4@eYGBڥ ~yrht4:I)-U7S܃@@P1~dggc;QUIo$66@?_k9EGܽ<ďM~dQXYKXd,F9$ HqHTC^QuV>HUOD@⪚V8!4:`@n^V>A$ǡD\9Beo:w&׈6|#'2>trYS-pj(z9fDK16 鮭QQpoRڛ6bͬM$~̼ں>MlMx u{ZLmO(RW'~oIzlAV$Mu-2+޳mg۪)Cm?-bɞ:MxMۤ$MmhbofM- -qpVX/sFeUoss$cp+4K)1Om@mAc[mٝ[QS y<> цe\TꪪCႨ]v*k, @l d  0]T?@oaAumm.@0Qܵ]x}~6gt(5._hiEƧF}zH51mtr}Vi&顜8UTOP7|Ikq&aoiz*_ 鞭)[ojmÞg͡|hovkkM/ڐVg=gkW8]\s >=#83XDQ w6Xi ZP__# s(-- (Xj+8Y؜ AA@vX<|CORou~A?]9*@_P\bq qΦԋKw|u̶MoB-@E"~)*X@O=q4A"HR,g;TTP! 'm3pz>O̓u3=~hR9 GT'OY {w"ϸ0Q:\9BS [l݀{I gqz.f=OƱ="9WIjÉ9Y~Qr2lT Y /@|\$B"! g?Js˓>cy8Ώ0:1&㰡м<7v86"ZGDBp,;mxBe;0Qzw37aݚwY<Kg㩉 Ы7]b<8f&6SXڻ sw@5E˟'A-`ԣ޿6ʂit[ ֌ > +:ER]៏RՙϱRpslqи^-ĦԊŬd3I8NP܎ V c8 X1k XEO a<;}-;xOemi|< /<ap""(ax]9Fb#+ρ,Ln! iT&QM1O?/u[H+vb ϜgP_'M%kqYL cFM&͇f̜,5KbKtnv5pJ6E\TPM<>= {L:W䯏 g<, 8q-еm*щu_7NfRđFTt !_&4㧿HΩDDG | ;q ԨU!SW_PLQUNdƼd~X/.ZUƲhR) lo,fG?h hҮ;Ze^Lݧ3avbK߸í ą*qk1aw){~ʤ}{iH_ٷyw1c+)b17p*\e,:!?+K1qp&z۾E(`ߞyEмʹl`Nᩩsг 0;1Q/GZY4s )A8}{u£BPT̩i;okXd6Sz/ž<~S ¸3Xh.>4'6.]@SN?o.:VgJhh(aaaP9 V{b2-^b_УY"6r(sx[UKR垬T&&BPQCRj&HЌjoQ760t*Vx7} m,X:P+!Pϙ8mxodZPRPbd-ӊ|jM=^=b|CL+*4@:6{=1aJع t\۫"m#ysGKNj}j@ EVDPa=j;^\^FQ<Ӊ8i o3qs9(wK.ygB~=Z<3 oh>FIiDBR^=GY àVT4A L&$u8 a̠!CI FQpStYutCA><>hV, _;7^*:'r&Qi/%FPL&p+J0{d ф[]Ŭ=ۊ=*?m)/Ҡy~-*o̊bd6c6 d?ziw`FRb ܘJ=.*`TV;9NR8ؓ][t#EUJgʤ41É :{6# ;wE%gމC;pmN٬f,ʝ+Ť(qr^X"HcOg2&}#83#!,klNxp[GlN'3oO4BSWXrlٌЍ#ʄ7 &7[n%;)DNr] j,,^D-c/Z` CM`%tÓʥmJ9mWCBTǃè Am NGI @kbRcC =4g!og٭ͻp#%^\Mrb* W E%&&UtE(%GvYU @+u(?+؅5{.CX&>:_b+oaCc)܃#G9CcXO+_%  6 ;™φ?"{f5t}mboH ǒW8${}Zh0 -hoa ?wKSÌgƱ#<:'SP$z$(f!ԉ|ZL=zt?S K!'ӆwy0X1=OBt˗,fG`KRz z2Kp$]WPJί9VR)=cX Oۯc w?u鯼3w>v 0 4]J25yOI+&3quGqx?Bьʞv/r:^-MLƾcLv4ЍMk3[yvWDilm- ?IDATWHDm~-f.XDZSjv g[q$ VPbtk,)wW9kDT^Se SEsזb[ˑ3nN֍yVƘ}f洉4q76寒6s/U'\Eka.;-?bGiֺ=&CZTLR^#Rb)(q4#5jԢar 6gL}&@g.6;cdeT A &)̤XSh׮-]Bvv&YdʥIތ9 jo3I;R3"? S'Ύ?qn=Ҥq#Z4mLaa50)[FE4zPSR!!/)3Sڪ!3ں ss8'im;ڴ)V7| {"Y/FabKn@\ϿgבޣG~{@Bmێ 4Alݺ=nq&6G~a!unB^FbL84COCxb:6K{=;҉I! 233)pziݶ=͚a|gPM??v?Q!6_t7E4NL|_(.7uHQTjLq?itn՘m:bܺ)V Y)1a8*ke@AA!ڴlVdeeq<+$mLd4mIpMn`"j3zZ7=&-vXEtbѣ]ʶ&k%Ss-;ظ5ѲmGH:jE&:9:Q..UZ B ?Ȅ:lZ,N$qga%ѮE} ld];y1ޒx%GclߛN673?jo W-*RX L&3RЭjҿ l(#*Ozxת&pu9& ;u f^}/ۮ*JN@Y ZMR!/WKg~M@>0+xJo>nRk3`K^)I$]@$I"$ItQd$I. $IED$I(2H$IEI$ȍ$]Wd 9e$!)?[ &p  a AVD2MyUʚbP#FѡN#)JtS3xw0aR}eŸڣAhS;$I<8LzRu*.wBd$: (uhbP2ĨRF=g"گe/R1t_-d$麠(Mx+X- bLć(xcJOV 8@LJ' tqZ1T7;d$`թT}!*}[ZHV8S"Zԇl< hYB.C@r;ZX؝X>WߊP_^ $] C_g2)J*x;7'`2AZ] }S)v3 &4pƆc:+4]-ar2Ht]0 j^H20Bo=Iz6ďgM`[Z8:eZhTGBV@$I.T a)Wf0 *Tp.648gpc݀Y p,ۭQK"IuA\ _c0+ ?vJސf@$3* A yGKee$P>u Y"*Ht-ph?<3/rO; 9=rVB΁H$/fFx4e:pS1ө{A"TT~9' k2V+4hK,qJ[{)"Iu0@@U+uP Wgpk ¤3 0P43R <֭g ^ݤ1yxL!,& K$a+G Top:f( d4v_#]'k?(U2d.oqB|&d$ڧ0|OveNACTLFߥ|IPr$I"@TW*U5N(*'b_yϕ U |Rd$:jWo4 ~Dk!EA^~.aR cנCS&YPJ$G;ߙ8gTES=/wߨjD$0(*[[[UA*1VlV%&Du<.r'IuEe+U+H$I$@$I"$ItQd$I. $IED$I(2H$IEI$"I$]@$I"$ItQd$I. $IE_\t%tEXtdate:create2016-07-01T13:30:26-04:00-7!%tEXtdate:modify2016-07-01T13:30:26-04:00\j IENDB`Lib/gftools/encodings/GF Glyph Sets/tutorials/img/fix-2.png000066400000000000000000001014051376445505300237230ustar00rootroot00000000000000PNG  IHDR,) iCCPiccxڕwPSsNz%D@JM^P`#$@!P슨ZP` ŶAu],Ps޹3w9s~w@ @H* e'$&2@Ƞ \^'22 `tV\XlT<$Rl$r'H0>HRl0% IX50(0Sƹ (?J;.FhhR@ f)7'_+r-̛h(  uY B,J1x&.#/8vy~INp^Vs% ,R3DOp 31/9Yѡk$/J9M8cvd6wr/iFLdE~B*֋ O0r20HG+Jbz&7$r'Rq? pOP @H"Hϐ}ba*#YOc:$$& Mjf`~XalVc5X#֎uc1#86 x2\%ׂFp?t6|1ߌ",)LH$d6v>aH$j-"(%wo_HTɎHJ"HHCs[!YlLv#GEMvM yJ1xPb( J# J5RgQ Qj?+MfA͡6jit:݄MOKg/J %k%_iRR-deceyʅ'o*Q!pUTR2PUPVݠzHK5Z_HmE0d1xՌKA&i03#戺zB*22aqXB&q=ַ):S|NY?qʭ)5jxkjh4i ܢ٪T e5K@k%7SSݧL=>6mX{ Q] N:otY޺t1<zb}Bv=OG `ASCa6N#=p%F F.;?ě5i5yia1-4m0}bF7211cN0w12ekZ8ZdXTYܴD-,,᧹NMvߊfco`oͲ^ejv[wOih#9`V6vm{; ;]{}r6w82:v:prv85: ;9';W;waDlpwu]z_VY_0:>'3sKߋUЛ}{'[__og?7~OZ@l@e@ ǠA-9:34+Z<"Lo 2xhfkDp"F<4̉<=0+rVլQQKE8,6/3N9nN\}xxY mIĤIfo=8qN{sM.{u<ἳsH''J΍pGS8))#r=;(;v**vܼ{eF*ߪj՟wwqΞ= >Ƥ|?atkAԊjeuQu]mj@9{H[U&VSQ8wձcX|Ho3Áýf|-~=O?ߚ=_7FFIog?}.o߆ W03y\.J(wb@{'ֽV!-H1B[)l}D FI jaYaXea ɑZM>:BK4GM3$ z!~n3cxYjGⳮÈB]a%f-ְ$C;B܏"j ]oaRD[P|t)!%V|A^A;bPw O0H/N_/aXHLJ$ Ӌj;hJͫ.,0;N[ۇ^zGluBiW3sH0iSނ3dbqCqQW߈F'AVV6ITc4a0~ػonNq(b"I2wјZ93;}{pcRR:XfUU4M GpUU4 `+/Yg0iLq9Zр՘W,( N77"'a غjrE´K-zdA͑@'w>GY2 iQ9'enSRNHx!,#IBIlL!a$m[w^$)j8D՚O21$UQF;8B ]Bbp`X;m੗%/7M ɳKʡВ4cE*'Wb%=d!pm-+hE@ +6gʔJjvmmr88$U=Ԭ$I5 #5[r# 4к4"ICL:k*Uө u}P9R]}BZ'K^n&mc[(+̡u5KUseg7v5TNMC#&x?ܜl:[&pWn%3%mX~$u+ɜ=o.]ݭ~.H;VH9$ampLD i*Ȱ5!0u۴iGjh{1Aцt$a1: t/F d3  մJ$ʰFB&匊)'ْk"S%Inclmv:::X,C:$PCaȗlD XM2Ǟ];pzdd琞DCAjV.) 4#‚|V3p2vۭ$-K9)Hš +;Ԕ$AcS d ;'Ԕ+uJ(HccRlh&?XnN'!/DrRaU, |~pƼ3HHgWhڰ5= MSiml=|fa*%p]_#aa?<63sp@BZfY@U4Ibr vɊb LF@=^2Ӣ!PGCCN7 `2[@@WWIf *5M% c2Ԏx;Hx^zoy#;me0vtQT4r3%*455Ճ-&,&=]Ba}h&%y,p`/U{ZfBi>-xػ>/uupye͛)*%!Ζ*7)G~Ngs6)^:;$NX 򱚍njDbȤ&uP_߀/&5=sw"D|s 40H2R}-߇XGj!B*  h*G1#B8؇0ICc#ĀOsڈαa#Ac2HOmDy>"B$n-w^g[Z2OmwEI|N{E4 OJf puEFB  Ȓdl2TCtBGF>h#R$B)#a5GuGRzن6E(x]~'OΠe:RU@Q`t~;LRF>_mE;,^Ag0uW_r6{$s咳fq`zyMN= Yٻc+O-LcS^@R_N; NLC?-.ӯ`f֝hZE۹[x[J!wrXWXUX;*wO++Vdom9lݾ񳱛hYE~D,XD3Siܳ?2fdtnn?Zq50+hy%9To^~ISdưx"*ͣqa4TKWVLⶩgP^byj%1S˰YCfĤxLc?ۅl$;3U!BRZ:ɀ#)K/< 뫹;IOrаYl[ =#[vQ|9gqYsطm=>3MA IߺXdYD^Q-,e97"MΤ\źίQVۯ<·٧1r`2r睷"]A%2){%vxlLSY=rLr?@gW;;[2vn݂h8! C|C6#;&"hDF]CSa34{ $$G`"NORG*smX9\Tf2X4&Weeu PY6QV\LF[k-4s]>ªBO^Af5l01yxxgQ0-]T d[yDŽJb4 عˮcK zic ՗_@Sv;Yb$]Î;ɋUp8Xh9CS{C}G0qOO;ջf׮j::";gYt!U[wcz" At*Nfz2jꉉfCC_wٵs' {}-$%8uэUkxW%SQ1$BJft+6y)]AT0Z1b2:z\CNDUUr0k.[&a1JDTuXUEQp$Nz<},_ _P!1%).*n5G:k4dLRZ6g1uK@+w%1>U{L 3yX|27`qv~FjbɊU򪪢j;DFV.qv3uچ2XW# {vS=0$8p%`ْj$p஺d4}:]$$RYObbwlj!QUF#u쫭# G㌔o=X _oꭻL{cd**'#;߽"#"ҳ]Ձ*i(K Kç *-i6!K/hs6$2]H 4 Ȯ)( M0^;B1 }轡P~L&6I]-lߵ{cm߉ёJrD@Ѐ`-TmNNx.l̲l0ʮmUYFd˜QuyVhhb)HsPkko{ظ8K2 ][Yz ;vd8m޾.zA&OBiq.{nĭ9u,:jXb%w&)YL꣫Ċd 0-<}e?LVښG8&²ǐXn={k(-ĄȒon*&V`6HNIv~̴S1k~X-[e̙MZJ yy9 tS{|v#!)S*P3~6+99z[8$PdLf b& ~!Eaw`4ʑGф!*$ϋ`0pB ~`(Y6`Y|x~+I$c2 $ D8"(Xf^šj! x@DP^_8"R^4FTe(p( &B>^H=>]Gf%2/ U, h*npXjcQޛ?)Y*wпaYWr9p]hHmV4A4f U vфjf~?шpb@UA,fa˨BD 1cjTKVh*EK@(8X~F$!|x> Fs}@ )1~Ӊ]{ԛ&cڰF?!6dI"lCA F@ٌ,I(0P9!&t&^r`۱'dXTwȑY|{p])_|Dt ZG֥O=Ws8``(fU?q~pPachǟ11a ϞƕKxEX>)9+?l}dR)rL'9lgW'ؽu#ϽтcK믣 3I;yi>@ /`nM, n\d#V@} $YN8qS4t caZdhqNTt :#ɇ^Cm (P(XDFl-qDGGKP(F19_:Z¡.|#/@bB°ȥy4>q!K4LBۨivry76ux,V\IC|b*s!-9) ]}'$b4"$#ٺ?XwAzXw::QFJx)P"V\lnE$g4+NjM* p` 珘_˯/ R">D ܾe<< _ٹy<MmHDy=^B! " K $gյ-S srBa~?@A+)7/)Z5{vqN4¡P B>WԸGD4,% AD-Q hz=^P܎4Ua54ucfc4덶H9h-?U<!TE% G-D|J<}֖ξ|͚ j[BTޘO<.",x];xᥗ^1ի$2 ƌK/x%q͵גc_e:bc1%]p)qF_z wɖUW^AvFQmI_1 l╗^gūnSX>.,[]rY̙>VLGAN<I|y:Gfر۾~wƚc QU@?KlOGk7lgs=u"}N JP̹ݷDeqUWhgͤ<֮X)1K.x t<|F8`ߞQw!=;cՊ."V<>IS*IOᴹTAy^i&q*zCؒ+NVv7/]ܳyٵm;ͼ|KKܿUVͻ8^1{E?a֭^s>sϽ́V6[N.Jr gg 6&UN$'93* y]47j`M /W0s7g G}s'֬ƇK/QZ[H&/;P(q=N,-.b*ǏAS|;YSdzjrZ[xI+UW\JCVV߂)3Oe)-b+)xŧӽlM9%[)!k:>X)SHOS2a|9J(0qx=Nj4 ٽkb&W_}%66nmUݸ .)cٺm;NmV seQr;.vaE:wY6 Ipu63k 2i ;ZHɉdcŦl$!)^D?9vZT:CMi'asݱMt9 )&$!3+YsF`%n#==Y q[ &l7SX20 >X݌7XehQxBBTl1L$7QyaG╼Mq$'Rda12ׯE beɔP6N&Rr2edTFN]}4w:=X yn[W-l$h8ⓒZmddd@l|,HzڣfQT iS)-+bT(mV&P9qVGL{`5_~)VMS!F"eE> &3nW/@QVV %28Q%%g`rq;YB^n4q .TL٧MP%HJb}nAik+tգ(ѝ[9 ~1_.LXmTTNf*-'+-b熛2noa[b0p(U\Ǘٸ =XEEI6FcQE!bYErF.4 EAUiV̹s)PAQ~<:.oBQqS'bti)af#2hJ~PgPbUǀKESMBO'o:>B XЪi|əZyHbמ:.nt׎0wi*G,_S& ^# cWo1~6( l-]l޸u $MO[#/<%x>R18b,z{>_A ,Z駟y6XU huHq`09ZOHNK}G*_-f&aX,X,V$?.\) 1J jmFkCZ(FAh cAZ{umLXƵ_ n^x=F ILru1E;EQP! M`닯jZ=8Ҋ8e\.B Sg7}͵8gNq8zkX| R9xɧC[3aOJH/aĘ" JFm 7 Ʉa;n5UU)bz~!vM=Þ:+-&xwJƔGgGq]okNJl!-=Ԕ$ledSXP gJyYfdťc(NR0j,$>>l3&Դ2(.*$aK欳"35BFUOJyi1 Ip=qڜXDZk6,bi$&-+3AZJ"q0~,$$$lܜL|>/y%c,JJ14B L:%fRHE 4ePA pgc'_0LTNj#3# $lrrr"IH"#5$2҉OH '7Ōl%##X;f4 jn|"cUf2r|AFcL~iܾ󸨽A:1pAi:p@9TOd6F{r*Ghi`,#ᇪy)젥DN^>aG:.uttt,}brZ:)/C?S胶L D2( D'Y~Z?vV[GGGGt:4|Bu'`HNIӤs|%:fG:::::}1/9&tsLDGGGG1 cB :::::DŽ.@ttttt ]9&tsLDGGGG19FНG|Ztk'69BPN Ʉ,_tRt]}}}L&F׋'11QDNPts HDFF6z{ Gww O.@tt>!v(m`\ͤ蜼Dbx ,i*z=Ihv(B}N B 2|kx jFT}VF$GWu>Iz=4چ@lp5ώMPnvރ;! nG#r3C^.M) D$$\u]9*UK_.P%q9a#y!<μy)Bp_g& PC^~aQ43/;nYf0NP\B}?Wn;/% wFո>"Jn̎v]}::;sD$V}7} ~lB  toW>4} ( n18!&_ _tX:~U ۋaP5BB P#ڋOww/@#9~E( { I|n'=a¡ aE_o+o< ~vŬXQ$믖ɏ N%)JI8/``{q |G?eWrW-'L~^:Ұytu5$ri1vlKʙHb~*u;_/0Z]*֯sZ00-b~zIz= $g͘4xɧ9oaj/$ClV ?ɏ%oǥh!B _s'z$A"@w}3ξv}ΨAtNna]q: ~ZqSQCb|{e\^okMQ:RoN~zZ+18F+V[jسs%n:avo"G8+ϾOGz -[ppw5ϼլq?ȅ/~Ψo.ݮ]7Q0EEhk :G *Ŏ$$<}7{ޮ.g\5%nN"G I=[WZ2o~ZRfv;×4U%plX2f9ltÞ׿#nyٱ};n=5A݂V0Zmę<&N$FPU$4| aE!.%dvd4MdAjaYa5QUɌn(!`pJK>sD4ȴ3Πy/O5F~&=٪V΅gw|<eys99uD7U[}KnR4:-Zˏ J3ػks g44!"YQuA!4RWo䯏?–e`4BJz'ΫiDK֛Blٴ=54Aq&O*bٹq㉳T=۶aM˥ +Vn]VɨcsFjk`t:ǧ1mtSiܺAoHf)$ڸ^ť(~7HdÆ|bB)"e].G8;iR^>-61 +נm&&bO)}|ԡ#`4X_ kw_M޼_pg39[n紎Ơ-$ݘ .@t>h vV!% UU$ˠI4ޡ4lHSU4!Ѽs?1~3:;UUQT5z8P IR4̑aG~Qhz#PU@ c0_|;lq)޶z~$0r5PCt6EjJ Ss%]|9}hh'mBً̢%!8tz`."@h*IcjC GE '>av$0<15WHHڛoj9Id<$1i$ .9FOgK翏.@tt^BQ3|4`ۉՅ .@ttEQj~I9a刺NΧ@ ::ǀhr¢oB8o:d{V!G>~0ttt>>9v@H<*~cT0~ɀ!*)G'}>|FD͂7^g?1?OyUIq74F9Iؽz?3~LJ0MBiowVX[cr$2<ݬZfρFRKHuKO'_̚4ꋮ%]h ̤dn|} vcܩMp@',mGŁ',UWÏ>A;eJ}_? zhٽG. df[*zZYh,|^\u]4]Wpw5miC7G~wPaﳥj~U.os*!w;p`,LΗ]94-羟'#Ô-w}Eֈ?EJxpE3 7h]_}v^YޥF@ѓgx՛)K*fݜvOADz:iw+>LN(8jkl+o-ooOq󭼻t-H/~;* 5yn;*4d_bClz ݥΗ]9&4M#` ۃ<}wu#kB0$L4U#>+ Ja2(IKv)8$Jl5MÞ'v vnHLUU)0Ϛog[I4^'nIjGr45wV5b$9P4b q`$664U>tTD#~w7>o:@v~^|%߸B}]h> qq $@W'ېF<}]@zB*9[C2sΜG_fye '̦8+`M$7yG]ײ'y{ƈ@4f+&H㤡x$TA!Is1a4ܳyri >(%3܇isLDvT*`1[$PU !Ihi i͒(09 UU#a!IȒtp:ID#M !z  2*!4 pMNNΈO zX曤q_tMRRvtOa3pMf "vѢAbc>\D(ὡ5-zߴC8<=ڰp#3xO$ |=בLvν/NttD3  3~z2<1*/:)',n[:1`q:\/:)',au!r/g.$1 cB :::::DŽ)8 Ɉ.@tt>xGG$V+VNg.@G5"I~)O}Hml} TU !fC%&&&7DG$A E{&`5%DcK'q ͺ9 W^#|&ElvSPχd"''pԩ,UUqݴp8o-8C%j6??@gI!w7lӌ$DM>Ѯ={hXbȫp$~~^o(0)HÞVN㰿(!imX8`CL(bX0 Ȳ|ďXh2 ]9BA|N/z4ۍBqL|n52HN9ht5у5&ܜ,,&.0ZIM -8 {&BDVv.qv#{wmE )7 wX h%'7X5Itw`M$;#&]~ҳrIIeZwyjfgb>'1 )de`2\=Bs+45aq$%6r'T^Naq@RҰ$0XIJY?>?::' 9.GGGˮFv}aPO}X 8DŽ8ШZ>>2Nfmsi~yh{~J\93}ÃI b֫wӏ?շ~BS?}$)[Z<`PCA WRc"fe}[}cQ!];\vD{1^|g-v~/g_y+7]~:'وaObfF-餷ϵw|K(Lt?8gLaG_l{<:zn\= $͵;XCɴ|^.kt/IѺx% wo O=Lh pN. =&%KQ p%gɲe no7Ps#yO&aFBw@ :<˖ʋ=OԳWovܞ,q z:mJL%#'b4Yz.w  Ҁ/kh5=mtVn9RI}6%fc1 j !5xL0SUM۞:dX4/ͭu]g@zgL{(L1L44 rv20G"!1ftDR%f2r)v&M%13fhV?VӼMMES54MP\<\\r7Trik`Aq\HoGy''2u63'ۂɊ.@C$!ߋEE#5g {زe+;m?,? $HNd q$bseP(eP" 1LjdL @Q42=lټ7sߟqɸ+D=EPXSH )jd묦jC^#ےf$z/U0r,P?hDF|q  @H::#Ч34U#1+X_xmt  o1b_s%I=NʊP}g3yb940n4RȲy7oico_Nf+7l W{O,SiO?Nk"Y2`ZTS i,|-vod,^ұ!4"?Ew }tu2tNT3ܭC ރ.l1M^nkocz qĦsGW?ߊI ;Du~w/0*9u82c9cOY`Y#G 4Mw΃?ů~?H?nl")-O+׿(kNH̓;|\}W/AS0T.;{Gl|"f4cH!Ol4/$8 @h SOˏcb0haSXbc4$d&h`0"#.t8c0;]'G%-+4%IP>悺^ݡqE[GAEIzj"hB::фLJZ1IpG[{;0$8|nz1Ya4DNuutQŎfvم"dRSӉ[@sLÊkMc5Q}}bⰚ xNAĄ8Pza1"G|BYzpB$&&xhoD{ecP }8ⱚ x\N 0ۋYRpyGcfo3&1r,?L8v ԨB|>RSS1zp``˥D9qk8oQ3(Gzha7"4X?ZGoĔh0"C‘1!yƣ;Ȣ@ KOK߉wҬġ-~u)Iv]? sR #)!݋lRT\BR͗蜌DG( 7asc4eA׫utttt ]9&tsL::vFGdK/@"#>100@(:j%Ij$98ȇ4mh{ |R;yJ8px@H>Sןc!;x#+kXUQTTB0F %Tmǝۣu(8l6Q5 EQ璘/:;::~{D|!wQy ;vlg߁zTa")1,eś/2r*>n_, _f}]?aqxg/]X|n`8bs$3b6 o}NKFq6Lzn.V$z[kyW)ˎ^で3q b׸r#Zbnjc۱lcXS:' 'oKy6M}]-/{AU#%sfc3i 2H$ zׅ@{9І$O-E]Sא]߆l#ɂ4tɲ`Okˑ !?}0~' =/ =;a4Z>\ȼE;/=ş # xغy;._Q̙5YF2[>#~dIckô#6TwX,os| >s40.;{_|xRJSH`6 l\0$1c,rXz u R8e$oJSK'c3{Sd[\s3w(J~VZ\2ӦE{6&+t::Y9Yn/_Ikw?Iy̙=$m5o쥡}1&l~v$s,O;dZr:z]1wL$ } ;}b9Mbj6f"#9nGI\˖VrrRXj-M.$GQE%RHwiXL֬\NMC;i9E؍XRKզȒ޽0$3KK~7{ t9@^6nچdIdΩsX}%8h޿'6z-YSߵk6rtddΜSNM~r]98$}|IZFQa>-B-$|-f~*>&XϚLV> WĮ5Yj5o/\+$aR/66Xf .@fF&Y <߳dK-)1}60}F%f"KϿXlV/`GK xfv,A+eyɬ[~R).c ѡ$1qT:G^]6Z]L6 ۰V`&q姳|j&2X ygҷ{%9c/KbJ*s/Br ~EվV];3s5~0m^bl63,#R^|㔩T|>̈́W^Ś=Gx5kf232(-+l@& Q41L 9i85aD* $E+AFZ 4>2-9Y0,^Dvz;פK+u@S(ͼ_ya\|Ȕ$ٴos֌^}/$#j]0aYL;$gIDȠI3Oeckٵj> سn1l +;ocR^;bwE,'˹Ө; m"Sbvz>no8of9wx0أS5Br&J+eI mCi)#GD\ɺ{[xwνqř g?ɐgA5+n&ϪwV1lw g]7>_/onﯮ梯RM! #2*kn \ęre({`/;_ JO;@=)!14ψOJԳ/bQwM\=K/(,@Z7َ x<{4 㓉wXFnn:;]ވaU=|ޜd$ȲRj1ڝ;}#藄^O?8I{EJ]-KyCw{c#BMb4ld˹_19n(M:6p/Pv#<fCK`7E $ct&#>go'P8;thCGAy]U2Vǂc}:x hZ}l0O[W?i8{ZV}qIp#eO01g48̂E!{54f+`5&WoMH5~IH .F=wd;>rRٺK] -oh*FH累NG Boή$;Xf`j+jdX]K% b`Y0dZ[ٳc+N9Jtʳm۔Ͼx+pMQI)abaVtj7bG~9D",01AZNͯ=ϳ/BLney3@vťT%;?9oN+·fPߪ 3KV!z*F iljj%1ᠿs?.͛d[y`;V/dö́Hބ՛8嬛 [՛bZ F5BLRfD|~acsHٱu3}~&ND^~!GP[O2L"Ljn %%)-m\ӍF5? Ww+].{.)EE6Y~EfTQ.nO4>Ċ0ry(?s9 P>1^\>& ܄X&L)tP<ܴ vq8*ErivS_GxK&@twxٗrTqSr핗][9P74v4L&}tDCA( $Á$v=vOIsbiXeՅΗ]QGGGG1 cB_8n,}-GdE ::P(@F݌IǗLDN:GG$4U=. ~|>><χbAGds &>"\pb2>w *F,^:IMj2 Ibϓ؈IBt7UB 1>a M$c1}BD il$%#Rן\v|~Arssz\4TUf~]sѩ$8.dYfy E$1DaqT!Q/$ů_.琟ޖAz|:Y~ޠ2"Jׅ `ú#XX9C vR`B*!$zU3//@?PxZX,>VNjj*rԾ4)+y۾?o?p;<̝9,!<\.70#uBpӉ?BH\n7aE;jwY|1vG$ M w*-;x?=h ۍE WQ0n1!i^Үi*n 5D <ԶDD"a\?xfFrGt "5BЈp8i۸G  #jkXhiSUN7ᰊF`>/ߑe9-.7#|jhB (J8b}(J,|Ĝ*.А x .+b, _cϭE l b{O#2P^*.]? E哹+IӺ'<,X\ru̮,cWYKst č%!T*͝Ɔ+xTb,JLOS5^yzvۘ^ț/? ;Єq$7qWnd454S$w9= WG=<{lbhN)=kx~͜JK}!O$٪h,XPXx[$:oחhjnuʤхt7Q؎ٗ^iuW\@xeW؋oQ>|nbY0bDwlB nq#7$ 2~T6 ^y˖ԓO:Rrs9L2͌SHLMsΧ(ʋ建8c8^{_+o/;rWpڴѼ,G]˯ҳf|KDgz5* W]@O.vնr`Z|UJk/ub|]B`YH @mc sUx ba/Z@;w_ƠzzY4$,~w:%dU˾xw6@+W _[OX4"ƓgARR5k(Gzn!-kDIqUsڙpѸ} }$]|bH6X~ 0G"c¤IȬڂ5I [ɲKܲ p̞6x5󮼆yK/.)u8}_y5&  (-+#661*OcK Rؽi^UB1|[LWtp\mMI/ګdӹ̹x;ldîFrrKP~R2rZس)]JwLnb(-%.6I$آ5$JGላgbe%1ˎ5\qs.N͖-C` &Wt ;+٥lٶ1ӹ+1AH2`5 ^dQR8P[GȘm_3޸Nfj '7m;pyCB4U[ogr答䥍Ӑ9 Ziػ~堩$dof۱*T׵Spep1{Z6|x5 TcX#OM)&w}&$MÒ̜(!?`}Z4Y30ӣ 0ɉH @f5ӷ=.ε+!Ai#-:oW¸]lTiNpL>b01Rd\,ҚL&%b#`BU¬|zs%مĘ40B0$4UESU ~[7#aN)`ZV1c᷿΂v=m1HF$cPP5sN%#Ɂd2vh|ϽCrN TUqߪ!9Mr*J(IJLUA&ciQO"T`&!)M+SORw FZoyBA?A۷`@[:s*  1٬8lEbs`X?%o Sٰ~=ir'O]%&&|8%&Ɍ@ cA"YP'@4 -"*f_+Rr2qиI}<S 8?t`& lܶw6;Ȋٸ~#544>VXIy|k0ʂ=mwc*\!d$!%p˝ jZ,#n~M PV/^Cs7~2 1I2II%zIsz\RF<_vf/7$5GjQOלu뷓J^|m3OGE,]?fO@ qV q}#ظa3+ Ȟ9$`_@53<_Ww6Svl6/[JBT~lNt6 ʯ?^,l1\z-dR وne \z$,_L]s8( dgٷQ\K/} lO)cٷc mn/i)t2C:: 9@%27S宯࿞kןEƊ?{!?AZ.̜4 ϜųOmiEQ9c6BhƟ~ęTv4r7~Hň96cM?dti1DyZsJR }ksl߸{H2=?) fЄ6"_f4XKZ:jpBH$,x5f~.KWP- ؿy{Rpb18KW->K.:5Ux:qFM[/=I1,~<'[z)ٹ^/NFDM#>1gn..Bq&\$n7 IS>.Ħeu^\u8mu)4Y퍴8%' /!ŪЭ9o(* Qh=&{^N6h)p,W^x*/?/6.IC  Im@#Ⲷly.(*i* x꡿aQwQ\y62XBCcax 9#\lݹ b"b_S/SO#<ƆMG3~l)&D8e7wbKbd$:xG@v41nDfJ-I-(#;%Ŷm]Sar AHOT=%t7ױqV[6KFN!䗒GcCP( :Y_/Dv(&8+_8`Xqs]?IYlڲ$wWq ? d ?<pv)L6+ 5 Z7 v,*:Xdff~]MxjdBѢCHe$yQr|@Uh5h؇T:, =Ha01U}{(N!o~M^5`} z`Zn7FAUU n::_'OtFs>|AqA6:D;kYt}nl1 > FGGt(7Ic]}]oꤴ Q:UcL`0 'UG $8;HG"B\bh}d=QPn|ga^䣌)蜌0 :|=vD ag]H| я9&tձ 9.E ,`@X"E ,`Kјd^[O%tEXtdate:create2016-07-01T13:31:59-04:00>x%tEXtdate:modify2016-07-01T13:31:59-04:00O%SIENDB`Lib/gftools/encodings/GF Glyph Sets/tutorials/img/fix-3.png000066400000000000000000001302411376445505300237240ustar00rootroot00000000000000PNG  IHDR": iCCPiccxڕwPSsNz%D@JM^P`#$@!P슨ZP` ŶAu],Ps޹3w9s~w@ @H* e'$&2@Ƞ \^'22 `tV\XlT<$Rl$r'H0>HRl0% IX50(0Sƹ (?J;.FhhR@ f)7'_+r-̛h(  uY B,J1x&.#/8vy~INp^Vs% ,R3DOp 31/9Yѡk$/J9M8cvd6wr/iFLdE~B*֋ O0r20HG+Jbz&7$r'Rq? pOP @H"Hϐ}ba*#YOc:$$& Mjf`~XalVc5X#֎uc1#86 x2\%ׂFp?t6|1ߌ",)LH$d6v>aH$j-"(%wo_HTɎHJ"HHCs[!YlLv#GEMvM yJ1xPb( J# J5RgQ Qj?+MfA͡6jit:݄MOKg/J %k%_iRR-deceyʅ'o*Q!pUTR2PUPVݠzHK5Z_HmE0d1xՌKA&i03#戺zB*22aqXB&q=ַ):S|NY?qʭ)5jxkjh4i ܢ٪T e5K@k%7SSݧL=>6mX{ Q] N:otY޺t1<zb}Bv=OG `ASCa6N#=p%F F.;?ě5i5yia1-4m0}bF7211cN0w12ekZ8ZdXTYܴD-,,᧹NMvߊfco`oͲ^ejv[wOih#9`V6vm{; ;]{}r6w82:v:prv85: ;9';W;waDlpwu]z_VY_0:>'3sKߋUЛ}{'[__og?7~OZ@l@e@ ǠA-9:34+Z<"Lo 2xhfkDp"F<4̉<=0+rVլQQKE8,6/3N9nN\}xxY mIĤIfo=8qN{sM.{u<ἳsH''J΍pGS8))#r=;(;v**vܼ{eF*ߪj՟wwqΞ= >Ƥ|?atkAԊjeuQu]mj@9{H[U&VSQ8wձcX|Ho3Áýf|-~=O?ߚ=_7FFIog?}.o߆ W03y\.J(wb@{2Bhhڿ,#K7IQd>j K$?7{YQ%p=( pEAӡPβ7{@4<b"k\x$)?4-vxpt:FNWDDh*( ?rQ?$EQ׈M$Jc~tɴi?~Zj$$$k{hTO$ $cRBx7[I$ 8{@}A0w"Ed7AM$ʋuh٬9;6qvEkT<m۶{рj ,TUCQtzzMt:XlV*,-UVVQVUIYUr/8‰ !$*kKJٸa#,I(>TTX!..P Go h4tHIUy_x/Ldƌ̘>Ks4CQŖ9TPNTl &) ;v}WƿŊNa)p-ɫa?zݹm;Dj:ёd*w0q$*(ڶjGxW~D :ڵk; JB6A1Ru:|e0!Pe||=z&M[8){Q>}m~%Nm4;?:Yeǯp#/rDp?*: ?u7M]cha]["d{zlf( PX]nl7U.Un6 ǃKSQi'Ҫ2tv쪓\k{Q/sǥQ=@]>$Ӽc.M cd^Pt:eMUE'$vVϞG8e{oҨn}zYB(k}dXQ''H оP.Jׁ0(% Y'$:]ϟs ہ£:7n ?QUp¼hBPvQlQ`Scuq<'KIJ S^;6IhB<3+ R% oRWDUQQK %ev{X_Pob, $!0Eӻe2.>e/c|]q<;{!&4U\re퇘2ywCg}~\t9$ǚT&:3vn; I脓I?~ŶPZtA4N> OoeU¼'yI(?~}p0BDiܝ4?|0a <V+f-/.|3dA#3ZÉ`Â)2G͍x9g$aQ ٍd4aI̞>KyEӳc+m_[/9OhٮՌ_㕧n€$Y"g~#.}4Yf&~#v;6 #umRm(:+<F%m3mF&_fs 8Nv;$$$`0pxkF!N&<Ԁ (:Hy{v]fa=m=ziS&rZ7?3*F\FKnۚ5;*;e1Dr̞1~U2^~hfG^z& )"ν;vuO.m؆[غ~3pBI!coy~;O_f=k~ʁUs4u*Ou%zܰc%Fޕ[/P5BOƅC.^_CWE[WiEl=)%ߙW|\ 7?ӦaDYK8 SǮf wykܜx/Q_}H&޴%v~^ qSRo-NOd|7|Nb񴉬ޒ{\45oCNMY=o[vdYi{EDu$7L;w\П3uZn~en[^zKnciGvj`;;v@ l!:);ߌd@v"G.e_ޑgs ~_p8p\c6ф ZŦ,^T~Ʌ&]՟^D!4P 2v"_Q?ŔWBqbZRὅ$gs%:#SSoVdc KشWvvؖOz͈ce /GX399T\Ym#UcCND0kWvӲ- Ulܱrv:܈]0{|K=" QT.J]@HoV(ZjIIO):8>Wtd6kNrb4Hz2ѮYWPaQi?d(Ç J{q>\q r?kFJp4 uL_C(+𰅴V=+iٿFCڳ30ۏ(;Ȯ $c IjNjR,#i:d`$Jm /??4r(-@дfFhBmʦWFc)Z3Q]ެ;I"r!LMQQtwd6FқMToECrnJAm8Gi/`H_soF9doDru ~↽hѦ-M4|sk2u/s0e]3{T#:E{vqNV. KL&پ|OwY;:@!4R3bątI[ YJț1>(?meHr(Ꙁ\tc[^ZȖB;p;٨鋚|z ,5E4j| vPr&!:' gSu.KI̶M 1 hdy{ QӬXж{?Zg&ev&MqR\.LSBxτYdŻˆ,+lvmiݡ#ѬmEt{ #xx>:nppBnpIع#j ~oGk(hwOI26'.U WU1BG4Oo^Bm[/"X eOFz{w`s R\&5-|Q1o;=L:=UJFcU7W>t7IQKg L{=mP=5ޒΌ^Gx&z"I]*V214!h{8#?1g;vbS;k"$Zq͝ϐ&|}:uhOP#0k@R"_jKDRg&IݗC&X/!'Laölۼw]IJIl^xV t߁1g\ Of I埫=ԫK$Yb%8Nbcc18Uk  ljc$ /N /i>n X;ASQфTZ] {Єwy4N3qf`L:W{W?G21܁4nLz s2l޴?@ 0Sh ؍v4BF,$,161qO,rR1~ҥKqZ{0ЈLlJ׬Lo¦ZuG߮m{ٰy+1h88TZJV}y'ڣ#z|:$Gok),P4xضf%s IHiFIϾ>o +~ǨY@ijrFF3u\L⹫jdY&b>=_&ѠIF<驤Gc'}5~ǟFadIRr}yHl=<.cZʎ5+ٙsLbF4LAs5` "j%6|M%&iE瞃IӤy<.FFn|MtHRi%,"EG 6{a>v1iu!SffU-O/?~fG'c]B%4.;/=Izaɲ paaaxƆ|+ a&jEZ"Qs7)O\d?tI_zYۃ9L(_w>!#́1s)Ziߣ5B:λ f,Zp_qZ+ьx4OKڿlh.[2 TG@ Qty:BBڦ aDGSj/c$DgŶeŨ6 %n/ C`MQ4Me1}adRصt-_{1ᦨ }Tl@FZ2!z7>}y]\w0n:^s!a&¢b [B ~^A\toNʕ4߶ΫWGPZTDHt3z_p=߸)!Lu烗kTkF|znR{^zn SRRNԶ1f1);R,.$*9st@drR"Sch|ӽ#._w(/.DAvG,-߉0zʙX/S], MrtH  -V&MyFl[{n*H5'^ i81DEE-GP;ה`$cu VQ~DL4Q$P!ρ4zs4ïⲀ!Md梕.S~ɕtj~-j$fdNQ~}"!҈$G~ƄI9x !ttg]λrBIݹ]\" r͇HwD|kZ'eng]QViܺ/!.EULtޙݛq$b]a%g9;MuAXFGBAHT=fPFTkn}f~0G3զ-7V!uqբ !Ї'Ћ|+hюHv[4MUI|!O\ו# 2tD=E\lVmCD\#nͺKmܕf 9\V{ tWguْ5+'~χ͏[K5mk?@Vc}R+]+ˊב4~Q߄P5o<!P>@T* K$8"Ȧp>Ġ!]7J'ĤP\P[$$%a+޲$(-"<*b&XF_ev,=Ȫmyd4F-ٽy5k౽E$va8CUenBBC1bZQ5 sӆ[PX.¢b {+ˊ))CtDP2E8=b"2|e~=a/Kx:vOf) {OTp4Ph4"IP8 8} n!@,jwMu._ 'pޓa' ޓyn{eĉ2ÕB zdfDj2Z %1S-('4:î;#`Wgs,RK dS*O>똿(Ch$i):VǞy- u/` {mf-T3:s+i>3r`ْ W2[%Y4 жC ː4+/<,[rhަE~c84}"$Imb׎wtm 4>_y[-$!vV>$eKn1KΎ >c-N%.āX0VҺys3JP~w]-Zf*bYA&|>_8>_yMB2a2]DEU^_bS:<kf+z# 7 =NTilK,QsD>al"{rؿ w~%͢<|ڛp3gY$6msZ6 z=0C;a‰\CZ o +b㬯控)]c~$DҬYk^]uLݸ _Ŕ>&=\F6$ Ki3WmƘمG~€v_:N3#~jБQo_̣jvՠ›ڤq޿Զi卟".~i1)^p8P#!]Ir|UV'NXُnx$o8i!a#!\GEY)-;V($IGh\y#\ԯ nR Qć{b4ƥ?gRR\!<؀٫5|,L&=F( pʆ)uгw:'Po:7Q=Zĉ2,c>$mc\vv7ZcwO GQ!D%s>Y=S'|Ͷôq3Ѵ2c i8Tkf2-[v&32MK~;m$+GpӱY 1z\;qpY=ٽn Sg,EK5L8W5 _B2#[ٻr{ 1F1"ڋHQmż3Z…w fetH^뽊̛5bwZ}f|jQ?ulWx}D,)+D$B0Z+1 N_[qUV#H:dbL5 ֢ݬ=Ђ z& QhL]ilLmdrbK^/gM%4bZ o0GD1Fq5wжE*B+C$E CFͿsel$қuބeoDa&t fǸSHLF 8:[N'K\ gu{>a'0N4tLaIgL"޶42'{_fEfK,^ڛ 9W_z^5?Odh >h#wNACgJ68x ZЯGd4tzB5>xv7[s}8ƌ$)(Hr^etѴoݒFːe )LBPYx@KHy%!OO$u.@?WnnchvmqQ9*RdH`3r>4UC/+RZ6 jsSP7&Q!Jљo &(*]>saM";9Whnلh$11g\+Fe`M:oY'#P9k3T!)%Zy}0T'[6oJ]G [e1km)Vm$-qk: *UvLl'vUa ˭Bhն{lD[GBlޱ&-hyس} ;@dRҳЮ9&EwдM"el\E5Ѿc'M:leGN!-!XWJZnOZB_8#/ّ?Еjݖ8} vfC1ҺmgڴhN7T"б<+Θ;}y gn>/chlpSZa'I ڵDTƁ#4oӞHl\ة%f-*KhLm0۞+VbӍqkG_h?g7bЇٟmk(4ZE0COmR#$ xVB*:I6Yvy}T8+ $jvLTJV`.(yRdȲROzO6-VlY&@ JS}Ou{jOOoc ʒ?Q,( :s9]y+ jgD%uQ_ҧ]Z_['sY!)ŏ\3_"<}|8/'岾Q5~'9ر:Io@"/?A<꯶j "'z e*)$KCP :4T/whADpi*E@y! p^8ICNSKTw'Tu ߼]1 j%QLvBSIhڅ7>~hW^I6+63o"c0jކp#ڷ.s|j>f;&+q$p: crl;N\X?t:b"Bv=P ;s|n$\U=*GN&BM_exl &9Ǎj!c,T599 Z6o0 (t֮H}돈+IbW_6oiٸarGo`xOo/܈&T*jw5~eyw ۋw4w .4~"BU PWӔ$T#h~=B pbԀBi^o0Y=5M} ـia_կ?\ZCȾ󪪢{3i.DIRG-]+۫&:<î}kFtHUUE.$BB@SERʌz ,R=@^O(7G3]࿌S]s"W`ɧVtPo",MdIƨ|܇F2_Mց $HΚ ۀ^уE=Pu$b'hـ/ֱt!BEf4p 'B}?r;]:~psysG`=كP +[eN'!Fa3C#<8HBX7j_rG\I$f)(2Z|F0T~V{C#NwBk8OC~T&TA}? *4z:_P( I)Evzׂep,8BKTH].[\yE@jK $?sBz% . MhąDaևx}2 fkr~Qj㈾|^TpdQĸN.t~֠D?N]L!?c}Th$q8"oʪ7ln8\ȵƯn.xX\1f/qi먳oϑοyOg\}fZ}q┈I\W&"f z=r0 4LemFD ڨ2eQ6@H*y p;u*DXu"3Gp}Gp;NFyk_U%2IɌjYgxX5w,T lP4 wW1fµ`'Y+Y/4]/D~!Ex9L')F9r t: LY%8 IV+y,+>S2|_;dtH)pkN$s*9~~:qɚ5gԋ# `0x1T2j^BO@I `gSÉiC"L'ƕC<>F^[}o͗J>L$}o~rrrؿFyQ. aZu{_ [wcbu;#8i}Q ~IL|wZW`j,OPNqjmܬ_ O$Yi_]FBuZN\;D^}(ϣzpfPm$سa[cǕQOz\%r,'Pp{~KpY$o?)'\+'o"7 bkZDX4M? f$2RRhЋ~cBFV,L QQR\jJlv3oI=?̸sH >v"<CIt2R㑄@hn?@Aq9aqd6IǨQGYF4NI"M/}6Jk=I$$jD8;92Hw R $FP9{cT,ܢ2YPx(8fcT,?wˣMBٷw%UNbh@S]OaI% d6iYUxT79;RPj!% i) 4)ᬪ`Ϟ}݂MH JMittrM#8Pc"Ys]KHj[bq}@Gt\zg.FS87!+3ȗ$ZDoH“o˰n1| !zZSrfSGFǡcąlƯ-䙧џw3I@et@hH2*7+ƒWRw%<9e$yهmTn=t$q!sB$p{|ϠWpyo6 &}+N%:"*ν)7S~/fl "HE^n)^9^zP $4{9=$# d:|%y#UdYbٌXfiKw]2>}~a1JCE?穗>ܥ'22#%V U|ޫ0WbTI\9;~z7MlD.9we?Iy?)oM $c㽗f抽(ּɈSwiСysC-?| SAxI.'DqcioJ#0=|:-S"شh"/w% tKԯx4SV=9|mReYbxw1I?|NBR4<ۉ}cOLS%,,wUgrq,spJMrG&Ƴ11{H,ιvѲLu1j ~/HYQZW$aן߉3G̛_"8X 7MNEa7?ă\Azb,:'W>UM}Ў X[u2 P YрZcR^@iP*_#h6'ߎ;l9nUPi4lȶO:_|6[erz ; XlV<*.YD_n&5/nE(b_ӯGo;gaU7qnf\v`d͟C&oZ~i7>:cG|O`J_泯X=s Ue̞]ͧ#G[@4TCŊLOX|UNVPҘM\.C [ez(/r%rY-Xh&Ō[b:` <+/ARdl[ŨK7(n8 _yVta/.+vPx\~G870OMLfڦr^ F)=i>qGT fb+3o3)'fsF~_|BǷcTUVAp;TZlIN MW>/#j+w"or;y|Ot3}7 \rs35/q~Ҹ+ߏϛ݋ˮ=VҬ@~z^>D0#=G_^߲) ʑEŎQU1| #x;ؒҭKs.Xŭy2c_~=]/y?}ȲR%<6Ucp7/&V#untݼyNKeEp4kH撾mfzuFPHʷȔ!!&^CΥq9TDuХW/2R MrZnWA|;c9oVӱDx8OaCI!r9ti sh(,>b-'mpxb**n9mRKRjq %ip֨{v$.1]qtJT<Hz DhCh"K".:^ħ/Bzdǃp1W"I6{;x ĆpcJȦCRpXD&,|@aR׌'l2Hx墒Nh mxٵc;+釟g@v@?4IϹ<@^ټ~&|ƾR >}{-Xx#I2FDe !BZaE1x*eF8F!K^y}zO./V,B6pнlܸ)?"P3Qk YGZ3 >\wvǛ,:U !(Shq!!4_rVtFU+p;WYbZaP{ GA敗#.kSlrܪ DUe6dI$܀^/҄gGHTr&:TH2Q%EeF@ZЄN֨*SȲSFQ]X$I7E/Ag1p$<Лo٩v3I.ٜc"Tw|ӁJdT4Azˎ509k{t afztO]NBkTU oOgGh(BZÎjf)Y 3Xt3$Ѽ'd<hԉFVIiDݬY?5zhqgN~&M" SGavW`\2o:; P4~:~;[t*@gsǶl+?9S1r*wFlt cpL~0ջVjGTK 42ܑH a4X|+$9 N6n݊dd_e6tqtm´Q2u}5lDHJ=PH2q0Js7lfL Y䋑%|٧Tir,Ej>ك{1OP"ұY2 Mhg嫑_OJmT<^#ZJbͺHzvc'I&<< 3{B0rc:LN#y!?/Z̷5f͉w_ob5ӢE B B0L $*$vm 8e rͷ(ZCT}-_t]|>^P8*p9df^st:aaa'afy$2*ߠE*-`o!}:)OMMزk?-;vUj,[V-m_w3>E>zbfNˌbk]BFrw$ ᶳe>ZvEHlӥZnV?Mdup@B ٳLt锍xIL 69K/fMwm;i4Iɢߐ^HeG8i-֙{︚M۫!ZU0w"FL2gλv:fKl&LEUmFڇ8гwo"MPdSsgor&OE'u+ZwFNJӘ5o!fmжi -ž+X~ϢGlX)3Pd7rнuz@\$IU-q3W vn'$[g#ylٕCH$2ĮݻѵhU,6X)ծ )?l:eDzj{+iЕ=ArT46mh4`wl!4\.z>`wi*nP4zF)2DžbC EhU$v˃ɨ Vv#>љۣe M`Z$Po0ߘvdŀPS2*I`Zq~g=0)IAz.T]'EЩ{$ZFhEإȬo}=sox;#p2\c0''TݯBE)xRW(~(:s;Aw8k~֋ sR묶 w#I՜nr"""HKK#**(t/[ SQeUykr&wMPB`ъt޿ YR+!x4npy=# (V:#C3%ӵiI%Go LI-֓|p;Rk5vR5L&Ii9qhk8 ͙[/^Z~_+'Z'&oXBjUdY, yyysa"HLL$<, Hd7S`-Zȑ#RQSuR]x4W:q5D l6]*0 ^Y&TDHH%*1Hc$$& [ٲV[<apӍ LFq7 Qlj3xO֊@T;xx'z2#z[^Y5LM,@eBvItL z*6ATTGDb2:w"P}V%.͍G8RRƨp.de`6Q$EVѤI4ɨ<Vа0ncڨniqqqDFFd6 Ɖ 9I唯v/_8ND;_ՆȊrRm}z#\ĉ? _fzTۍncZl\.Eh4NXXfшh@E# Ys0XClBCDudP|Rz`!{.f= =7B<^nHx9zaUY>`󎳏@(>4g3/!`Z+xTQPvh/;{x)ھU) ;,jYȸس/{z|}n+- :eJ9ǎA\TG3OC0jϽ,ɴ\sٹ(Ww./X+Vvl}Wۥ`˦iψ!jA5@7H[_ 5CkhBc9/|7M)xT- Ck|,[(I2ץ R" ޱW{;V;Ǜ"45O&DAf<vx)E'㲖ˌ>ZBv]չ zY$?˖EjV ә]1m/42ަzKҷ1zJ{ RbT7/ch.=ҶyκKؼD@z|Dz$\ V/["B??)q57"k Vݎ0ӵW_e,XY8w:Վ}bx2W߸)!\vj 0(wɀAIKBn6\{N̠I%:͛ⶔˢ;\Hrz3 KI\l^UvNŅlV]_R !1ў]sA.=ڮ%c3\*w-3Y1~Y0)rF,_:)(1wPcAQ^-Y)nיn[c4rvndoS^iA0!ɾ9$E,\Ԗi8u+Wa^Q <8kHНfɑ,[F-$9Pώ > 0L&BBB0̈́Nxx8DDDxEEE^/',,Pf3!!!8N &% +`/R%ea(>!]k;f6-X;%ᒍt֓07*~>/=*[%b~'v`֏'!Daı.0_v.=>M3g@ŎE|3n.eAζGIQk_LBUϚ̷cѦ0RLV.{/2ڑ}9O< eoGRdo3~Nj43nԷ,[malպ <+E;mKdOѧ@B ES"u̬,6 G Ki "(Mrt F#Me Kqi0:ݴ܃FiaYLŎ8*kn! DQ&tߝu-fM20c MiDT JHơR 7^A4Qh gX!0$4*ҢMK2#Ü;#_ _=bn_"{r*7r#/1=],=$4% 4a7ذe+K700zp qO[r"7`6߷6=D6jg|P[9+@ aݰsh<״vn15`;ވd$wjt YJJvdY-KVD`y^eƒM ,4қ1;#rCXtB VykRrȮ,m-&/ޢo8})N Id$/K*8^|A#yOP5Ƙ<[0w|tݙ f4]U菿<{^q*fwz#ʙ3{)i-yJTyd||.1.Ғ ÖR|?osh":Ď;%{v6bc;8Kc*J (,wATm/VmM:FA5c} uĘheh#O܆Yv{ @$Ђ$M@&..ëSZ"5Rb㒟0'.+7JZ /5M[t!Q=C4^ߦ#t&.Lp}q=\@1ąE6#?RnSVe#,"ۇNXڬ a;7O*Gg^έ@UhƦ3_3Ə \ w+Wvm4L-}1 W0Qf, #.v^F!43tH&44gVN.'<'_}x)hŽ,Ycy6F `|Wg?#X <,8!KB FlFxXry3sZI6܄?SFեF@BK[s? t.~y6汳 E,_-y_LxD2For%$(3{mbƤ2MHy\Ϡp-C{($Ě̥x5JTOBBQc˺i"{lE5 Ec{N>)$4kG.|'T p%v.]7|09;}L_^{BB6>!d#}.Qgߚido[WjE1?|NB܃$KxukTM9 O<<1m{Azs =p!LDGk iq wapO{ p E(QMҞTS$C5>7>Chvʽ/oYmk$//WAnAfEقmێM5q]snvHn7C׮kK;cP+ٴu'tn:Z5M'3;;)(3iժ%m[4I4IbmXE7qguoa!&5T$ahܪ VEBRHH =5 >}Pw3M{GvR4LtnלPY3o2.^6KbĶBjơ"'#Kꁂ-hۦFT U1ѦUKB &Ɛ?BVćKcnauMv-HN`s<^0f-Z,=FT#о̛tٲ3Qah.V]Ѳm Uܽ]лWڴ@۶-*enBҹ{h?Y޻*mZѾe6_&՚Hn݆M ;ep]Ntqti"i':1Z4-}{RiӼ-7pѲsWP=n\J]ڵ >. B:ZtCOL&Sx}OqMpuWNZV+R"ضlοxMUFHxL6iDLKfd#hѦڵyj;6m.qe1{[LRR%I+p*!tКp8n2[u"#[fk &` IDdlB7AsA8N6i߮ bTv.-۶p7.3k0oj.>:d&ZZ=tэp=;i 8>dY @H^wqAm~04͛i# )fzT dojx}%FKK \~nY{ynZC;~O>dsq |&w܌<}5hԧ|XdISa++{i~)kCujE=e;ȊPo*Ze+6ӿQk%_ߖ>^YQ|9m29ŗ tOy}2F2oʝ MUh14oG_jٿ4!1&N_>=`_on qxjE MQ@,||8e%~{WI -׹.ku" H7C\dʩmV;e+/EeCR%qtNvދU5rÝѻmS$;I"Fv;h8>pZ5iܬDk,׺Z} Q}uuv1[WS:{%RSQ غe q-I!5~wjsǙ7 {kx}=^ٿWV$"oԘ ߾܌i@ uAVti%ӣ<ɆʫxF^\n7 KJ;XX'㵝h,N"2].?ǿO@ 8-EN`u;M(@L|yE'0sO{;o'O㗝 .4eʊԀ!<<ځe?Vҩ9ӝg44P뷜g87t8Nx4p'Fi)d6Sy*ۀDOj]ֵk]* ;HX&93? I,Hy^u{9sg̱SδqYZk9:._gh 'GB8e'šqÎ;^;chضMEEض}}YYYBk" :|="Ҥ"Z{=[hъpC]U7ao[G QF)Eyy9m` w.2\&PU]# t/;QOM$?碶ں,NƩ( a 0Y>< *+*H؊@(L/0(jǛ'cԍJ+AeUѸE?H +F!V=$A(;a'ۙHEfGReGh:p5++UT%8LJPUYI,! "m8l4pNDXBr@UeR8 gq;uxkFt:cvAQQzЧ uL.dCykL{{& azw\ 4i%<2l޲%pqUtreR}Y6FA>CrmVS^ZƓ5K'^^l~l_3_(E!1[0>9)Xt&e56?(f7gPϾ&Mieݓ̺]<'L2dOd}p ,,o|Sxמ3wSOsX~xzS$z.aÒSRӀP0srUdg楐$sՒP.=1nx/~<:|v=Hv=VnVp>rѯL{i܌T v7&OqyS0M'*\dd7S}+cI'3U79㆓/I~x5t?R~3i?ˬOנP{1ym2GKAb޿xaQ'?fݲYgHkB!=\b6•igϨdWE5ѧNӸ{֘~7wjr᧔'s|I,|%>| H)#rw'Q~m\qa.u\1a .yec1t}%7SDf/@I]wJQoQr|}rgw%aԧxtTGofOYpIʋ7b! A&'v!B^x-ꛏRPWW~&_~6kό9+PjW1K+UTx}o˦埰vnD(Jwd Np9|5+pʅcʵDVϹsM{wmn;oS{Ś3>s52g"*J٩x:Ϲpϙ:Yu;7q߽w۟g^!Β^o~Ęs/BgYϣſ?۳Wp7sO~Gxݵ f7yO0~r}\w9,}A}E1O?(e2[t/>泍[,kl]9^}3 *:U1g˖D6h=/ )>6 ?+ю㞫h G)f#\n"^ #reg0n\¥+Q)57]+ȬضRn~g E`#KԅT&gx32E]H,qMM=󃊢0=q.=CѰkxu5u,_DhSnd1r`O7m%'xw v֭$ ٰeέpүg>*Q г0uqN1[II|.p㍜9!=Y`ť_bɱHURdh᧞S!+oqO.$CFX3r,Y0dR,]ʀghB\;+VR-%s0~pNftqGH*(!< " d2N>l.5[.k'8WMA W}xN gS?ttkt|az\s,P6ނ^t Rw>t9dNHGN‘JDӿ7?@ E0ɓ'sr<wbO)ٹIv'Gtj~G.ۍw!VOמ2'O"Dzx\nLVi#5ehcʹeYdrNˊSo'پSV`ǣt&i%= d;/x8`FDw H G.sؽs{J# 22--Fun|nefBZIGօ7)k0Sxm7;EpسH4AV̜8Mc&\L8.eU} A׋(R()0 TMQ3JJֻ$ZSɖ O=.mCA0A0ۋQVQ/<|-`bG\=dp9s'e >c5RHLZD1Im+/EUV/͓OewCuVNˈrc*I2.{AJrݔ;:vlK/>ó/྿3Iϥtg/=C}WX_垻g~?ϋ3rz&jY.*vc:4\"LV"F]}y(bCشo3'%g@ԗ~ '[w1( v%X 7m*;![螓o?%5qX"!u՞Vvscx-k?[Β%K?ÿ+g.8q8;«o~zޞ>葃`LCKA+[Iރgg5X8EntcN:})eU{BԿU2}W_x1 1-4)YHR,n M7 П6]>_kY[ GƗ@Jy؎@۶hBn7>g>.H+bʽpфqf^y%&+璳NF(٢l8\C\F '*n'緿~S%1r5!I,7N7&㞛H™qY̋Z;Q>@y|YwF~_8qc ?[ph&T 7#,G$|^WBiţOm"\Y\q-fytҩ<ş~KNfsWѯwNܗw_yYz[ H|U_}?z2 ANx%?yo^۰rRʖ(WŽGxF\gm\H%=K>?Â|ù*r )dxVp8+YsϛI0؍L?!PN`ibl |zӓnE%c Til*+p3<)Je9UH rDG(S+#@`J5{SQ4t'CI oL H"TFb٩tIJKp3-%-*q23 ,CN(+rj"1By}ʪe )\~SZBUm=NC<@ H HDBR@{~?Ǿo~un !gTC3~k5W9[lcz+DzZ5]a'0ǫ4qi34*t-QpʛokKJ_4AYz1e ^}a ,@JrxMyR? bcƝ-c╌z~|x5!DI} #]U;# IJ?0 Ng>!~Q[#r( 0wr lN=cN(hӂ[Wgx SGh޾@ 1/~s äآ?TC5t0aT(Hi#@騆Cgj}]h'hG[8⚕q#H5.l1-v @z֦#(D㲻h!Rc*Z`9R it,D;2yZ8GnFWMۊx:h8)I˔͑ }tbg3e*qjHq䮨_LqM VGKh^M}/7Ɔ7#rO7JErmΐ>h>-|fCHp- S4|>Uh4NI:ZH3ch:5{T hעѡhh4 Kj4Mhh4Mh46Dh4mB;5vZ(4:;BLAzJRga!8Mh4m&H1!G.FRrpm>I| " !ZB)>sDidxe"uM>cy(%$,A:i땂!E /mV^\p[!9X -p#*{϶ltʶnѝ^y7(}/e%QJp:jUXI >CJI,0fK JI˒l"a'=-V`+A^ФG1wM5&9[l heRDJ$Ԡ;!J CNp0>$IB~o~.t+Jah D96l?`İd=-yOW'!Mη܀u-U+Vo8o3q`L6[oݸ|ƞ1isj|-&3܍ /ss[BNK5Vm mJ}'-H$ ҄~A  M Vm(M]WyA&NKlT2u|[pbI Un^m0I~&W|ͮ"i0I+$+vHbRQW~Dj{tT/6l3h;)?}?Y?ϟG מ}}y7孙+/ή]U$jJà w+]WٟRs#u||سqX)Ói*ݖOJTZfۤ K6bK: A\ǹ)4'!7w/dp 줫/u>%^&R zwsp.f ` @(g.(%8k(yoJmh4i%Iד_lG ;c$#b֬cv1qnP\,ܑ$*xmY~N\HQ讟'+8hΚW KBևR 5l %d $XRx7>&[ Ym$ _g( |T*Q `ɢ.|xmE"3!${пֱ JV)S>f @Dn/2m^{9RZl\n)tVtKAOn q*Jv d2fʏ߾I4Rg}vꨤDgX( R@?I+fu")!QXS21_Ykl4|#vu GasbL3SpsJF]hY>E'9pAja(`x|due)#iɦYWR1y=>}yPƞ}Fo1L;#D@>gsn]JNA_N8ReW*H@l8SMT߾ O_˒JUȦTR]bۂP3I6V*NnF+.mF ()+dʒla~oY#3GDyr佭fH,K :$m6I|Qmu7N61[ sNr0"4(p%ф`*!sN7@Re*)t;"Lm-[e;3bja8|[=D%6J,.f_NV44΍jZ= ǡQV.[`nWƞz*'tjX8o!;k+Cl'S t:aؓ9 Z-\B$x'lھ ''e@ f ,dgY0ƞB`Y6!ڧ[ݧRm۶[P<\8e0, K%6ڔ4S97<\2C)lljWg0@Hb'àRZ3`tAx'S.Emk!;(IJT:&ZJiW%Di%GR@+ ~`TR~a$eR>#\uEn4PcC4mk&UT(.'%.{ Z@5 OĉTC3- MiH$BvvN7zRm((FX i~}NM[%u`E~Iơ(dt/h4mPVV@ Жab6uuut`T_ȵ1{13R"-(̈sptk>,hH$)^D4}7ۜgB8,YIC\/Kx88MIQNNѾZ@4vL&I$Hsc!p\8\eY#&?rr9h46Gk4Mhh4Mh46Dh4mB FhڄFѴ - FiZ@4F&h4Mhh4Mh46Dh4m1/ٓg%tEXtdate:create2016-07-01T13:33:03-04:00!%tEXtdate:modify2016-07-01T13:33:03-04:00@DIENDB`Lib/gftools/encodings/GF Glyph Sets/tutorials/img/list-filter-1.png000066400000000000000000001475111376445505300254020ustar00rootroot00000000000000PNG  IHDR^RogAMA asRGB cHRMz&u0`:pQ<bKGD pHYs%%IR$IDATxwE{9‘3DA* f0#*""bs#&L"JFrG;?fvo/rw WVnggz{Wߛ. I_"".WXQ-Ӌ#EYGkgC~+\XQ០W(pMUUXbZjEbBB%oݺ!B8`YYY[΢ S_Gd]D/7(%vy-DU$d߽>"E_;B*E -$4R{ 5Q[#4Դ)8V3K_L$˧XQG,G׀)彶bϩ \ *hMHM( JxRBw(:NHĶ,)QE*X IK#ng;a(AE)#GߒVB{V B|3s:+7!mMfL oA`_2nQf&z}2Ҹ =OJ_8Xg+_q$š=[lھ]έZ"E?=s9K͡+ ׾ 9R oFnZþf͚ѤI5Wb+}XǻF:5ifdľ,AӦM[*\: Niؤ ) e4m݆yi =5; ]՟Si/h~ϊR$:IDOH*bT*[X2]8fρ,:MF4hv2)Gm'xoWO[Zw/2Wcv]*B]X/DlX /\O0a.DJ˲0U ۶l ˲ld3ݏp ee3履т|tD(x > Ɯܮ `Jp>Ƚb)ޙv\x%wVHqo.R~u75 ) h +"PT#%s7Ͻ t)ANsJ,R)>݀eX/ݲ}jbۦCKRGo{MFG5q7OQD˿DʣuGZYHq8SZ.g@ ii+c;TkЂ/N0@(^S9iض S&CVmIӐ=*᷏aO3y굏ٺ7@ /Ly]FӻV1z {v@ `&F"˜oIY8+YLՃ߯޶(SȠ%9O+' ˱1- 3$ 4-b-l!'}=w$h mkbY q%؎M`F{ a•Cn&ٱ09Ng6m:\_yڦ%m`{U8C!J$rdm:s7zCR` D䛸@*|%RqZb(Wb_z j*^FU\BQ0xZwhshKހ(ҬE cXO4SGB0s/KWGUضf-tNڶ;MXu'=XapؕG'S-%2ݜ" "Y@qA)A-!EBR7UUEhՊ< "r`*¦M+qRSS XX8EXX?I|@s} Bq7^xU:7y-uu)nN0tu2BM qP7)Qma;6>'^2bRrr4VuLu`I\UUϿh٪ض{VByf`i|4DJIRRiHI])4"wL"Mn6CIe۶@q㝟W<(;}dh0ǿ޷ӓu.yұ+ߐ}U8GB\_U !)N. 0i$F 6VqzU\!DۜO/=GyY -8DK @JpB>ChovcOzeZW !KWzQC 6ɿ8BADT쨜[\ro%q2wKGnW m ݶm (rXa]A MJC ݚ_9"K9| eyzR-2[zQ_~_O2\H;rGكiakc߾})%999niVoDq,WLLL2)NYAHyv+a8͖aƍ"^¬*h2Ʋ,7$:OJ<###m۶QJ®!u9Z )8C0dAnUyH:E r n{pQ0hs#dEr{1sOw'IQ H7@LdԬY] TH E˖-Yd > [( Mܼu;AB~ ueӸQ}LR:3-˲P:%yPHlWuWUuWm)䖡 '*. -Uiz2-"%EV%GyV(q_ EEؾ;ȦD3Hհʼnpe:q8t111yG{yJvAeC.DQy׭xU[n-;+$eQ''kQU鞔xft֊Bj~]Yr0`ӲmgJjU0̼sG[+7/%R:yVBi:?{gfmgڋw R \mg !4y|6cz)`􆢩9d$i0q۵䊇ܶ fivczNZ47!e-Y{%XMyٚeRƍy$U脒''7=!RSS/ 5D[pYdNP~=_H8IeDC;-uvuHLHH4<}WR= >|' XM0``{ "×3ڛ8^"">3ޠFK^T>dt UM W( xɐVA؋ /m-!?i,k:pevބx%U彧x1j 7jZ|a|`&m˔f63ޜFR#9e3/1mO4>!.®9x)w9Eܦg6KDBY:2Kg̸q#h^;ÅK㐓?JEA؆#m ˲QT0McbY|!.&h$r㲚 O?B>Ѻae,*0i(GEi*[7n #hSvbc-UKnE( CT]g?bWO59p0la&.0oٽ{ґɐk/-e*2{ =c{C:s9]si͙Tl.ӥ{?; yl۟I3bPjıo}vvdҢiY;}Pt]GUu4M<΄gdmh#SRAt* x42wYn'qi e$5u\5m<-Zv ϴ_VcֽLnx%t\FqT8|`5tݸUt>|~|{;fݏPU9O>˂U[MuCnEʘrbuUŋYa]wG۴w_㦛sRdA[:6F^y&vCQWǻEE $&>݆<ɷo!;;/*^yÞ XrB(ÏbڄPN5PD.B'9>t sa=O^Ȭ/́|B l#fDZN!ؚ'ύ&XNm~a`YvYGk/ImUU(;_&ʴiv6m|6mΦp켫EPv^]sn7P+3o[[VyawDpiώ>A׳?o+~dا4CnfN'<7M3asύiM$gA-x@R}ޫ,f1t0$e1HӜNrBZ̛;u;qh:" ;pEyG`+FvB&7FӰP2[4.7F|4f}MЙDf.#oQ|/&J12ǜQ 0cTF?o~9Ͽ1o}9نk *6J l!%ro ~4'*~M;%|7M᥏s:!s_y,^V .6(O?קd*~xϧq؝a$߽5m~(wwsQ|~,^0[qŒSy8m) 8GoOw>$kÞ6ǧ2sjJ$gd4a4HXfK=:PbO 99' d?es2G&rmO,YW^ϐ/`lt֜-}DXYpV;~pKޤ}tlUBQ\̫/&Ь];f<LIjqhX7{V%VUg KUQZ{p+6oXҮFD"瞤Z?4n[rW2BQ@hO lܺŠdtUED< &JXj#kwevɯ64h}nܱ% '(8 8nD+E'.:;_>aEaW2M, ۞JS{뾠I pOrJy]:d'~ K܋߲ 12sQ o"}^Pز;dEA Lr!\C8׹re#Y٤հŐŒÕvg̻ <:v;rïqpw>}(kλ߿|I™OpN'5o|][ Z`ֿ³VYsޏ nkƒqG̷^kIGRFf`8^Epd ޴JJUd >Ibj%:G6J&JyaY޼_8RrY~(HF) Es'jGJ4]]U<48;B j\KtMMl@EU, * DGE<{yTOO G!Q4l0+f:}6=]ccn g(UDCsR6)3R2VfK-/C:U#}Fa98 E\R?<~+#x;Sˀeġ8RcedCz ^ Fᯝ>8/;}25t]G4tTay` :jlINiY[ł]&7=oe_W?/?={Iۏ$R(@߂teKVvvfMiY R86'I&? =4Jj/}f.S};N`§_2^$(nrZuKzj=>쨪TMHV|7_/Mg.׿x(ħR5>ZMNc5ggb^Q oЅmceba";.:o<˽&9M7KOض ^4__}k`Z5 !*7o`H,?|QOaYk |2F &(OPPk]qeTjԖg;ھN| B=_ug"x)%7o >+^d3+_ӞFҀMGnbUkvp`>;YW7]ws(dVM/5 l"Vhܰ.4JREőo\~tۇq.aءtesQ5i޽ilMNpl6kTD_wV~4!Y*ۋ<btqDGP LOYc4<sɱj= MkԼ_]E=! '1.=4C_Ĩk/:5ٸ=(SJLõʥZ_9dekؼkԛ%ks%Y&A6_dmoiY1>Kfcn8Sʍ]KU3; ꧲ŶĞKVͪ8mJL[Ϡ L +GtFfj0ky_}ΣM'69 ݩK, |=:ˋLDO~Dj$/]YIo Fv6^矷`E5OJEss $jU(҈{e몄TiZT;o{V%w!p&܏P/9Rb[&`Moۮ fce *3v8gupV@$H4ima)L=ϻޠiQ75'={^N gQ'LpIkŭݛz o_湺0YlMrG[ )\Mq8GWE 8\BUUDy H$Ժ z4^vp)Q,R&oAJPU[?SgѾɬY:awc mEaФ(aJʝTv~ tr!\fBy~TD'Tn8Qzp1qDF[yQ: /Q&l߱S۵ò?( a(?AJ >H 2BQ}dž8t8$lT= l"ʧ#4 bxR%w ?˹cMĴl7C͡Ҫ >J4-LA%&Gv.n߄_;/7|Y1Hvl`)TECl\46`z?_p]י5kjAjnOhg?hxl)mB|j|kB~B&Pd@HT3\ΖnU8fG\D^[}n mJAEqg*uќ^ eE\_ ;2RrS\8aF0N '!099(}vǞ"1 ( arbr<Wevi쇜Da-dⓓ!+;;g\y -㷕;Tv>isW1oOɓ~p~¢K0d(Uiն 5$೩܅o^ył7pz(இAw娪c9>)q%;ç/Onיx?_@OA:Ǫf񕹲TN22ys ݲNʋz4wBApaiE~p%QQVSBcjӺi5,`ê,{vE:53٬ Y([ؽ1O't2]О1t?%˗2n_)0y;is],]GeD~[D-t#,^7ߥW1 #La{߲^?a/\=U6\p+R66 ~!. Πѩ圑Ǧ~_q~4nQÎVVl ~Z{>=^h.3fP'FZ*yp~1ݧ뒙/Mf)X+آ#~ϧ[ϱ7 ټz%ͱP*ѳU2$*O(6c-qlɐEAf)S< EZ,\{^ڠ% Hr1T\4Qڞv:u<]WOkisI|8b?y*x)u;iSHNJ(mVf'- n~&ԃ;WZ}/^ Kzuٽ͏ԂzvB:p}yl=D.By1Mk @N֧g,nrN_~áj* Ômź>֛d-ز2r-A:Hj<&hqBfz.mp~ z¼BmEQ˜Gd߁XGVPRʢKҴg=5rQ.A|4w& |y & W^sfV63[Ǿݛ48oK"0G[44UE:E >6tv0љdCBXݯ*f{9B8u~f?qANie ~-%Bt+J/M[sFԼ>yys73iY5횳9K? 92)Z¿ ON|+ע{aΧ 8ǡrzX[Yt gT^yUoOb4f@S\>f)AW6 /Ňfgr(+HsI$6pR8p0Q;M"7Eu|>jq!lMi͘!9k=W}*86%zO522 D@IZu#7%`IThw0ךOۯVa/S$V}mTUr. A+iaX.8ѬdLT]GH=!i;ahe]pA$PD-( c v@<]PC.Ų>_⭙39Z!%5l꺼B1"b+[*]INNvj|:qu=]Z0,|(( > K@ ' n"ہ`%{, !T|J D|h !*ұlwQj*G0 pTȱ/Bu5k*_~eBPwPJQ\ D0qo2TMEHA> 8X.2Ml2~}A KZ3+vFJt]'>>B/ YYYYڒoL{8pP= E蠒6HkOIYҐ {?Ox)mcFkD? OTHiEQ2eE]K"qdP8eVLGKWzYeUT :5EL1ZQ]$hh>\EqZtH 9f=i"+\kR")9kHD8=xIgJSlJx%.=T<(ߓb,B61O)|U+e vAWH d;eݬ)D""r5, ywX@Pt ņٟ~hGX9[8OQ\䒮,`o!ӡqnэvj&j^M~J+6bo14k݆.)3G[YI%qqW:N8AXU0߈mɎKm_D*u M"8na9T E F8NiBɊw%Pӑἅ8 RV "s(vAiW\LyN"O(G/]D.%K5PA^xE\arZQvGQ|` W|HNj.c9~˖, }#Ww,e`o"nEX*:5HV=í_y׾&_t9{`t~Y:!ZES\tV'`?ht x!H" NUfڍ꣐f\w@c/rȰivr{P˅@.܄p)Үyu|]|90#QLUؿ{;A%j-z-̋"ql}>6!"R@S`M8-Z5`4w(XT Q %y].]aɸ\4c=NMUGs|jи?eMG,vfѷGAi0ϽOc5m?n浻]3Xt1].Z\.+ЩQV8~!|vx])!@v>3ϩj抪is |S ?{n}O--Zyn"{Ň<,3M7BR X ݣ+ɨni&|H<=84ŃK^A (9CfxFnT]gߙ <V[xYN Nt?w2A"qN5j: g ;Ud0#53v1LVn7J0-;0mDiz83[ ?LaKUʀRzpkc7{~z)y|f vPRˆ͡~,9o ]׹nvtxJ{u~?O*|.€u艥]kѮ_8*1ydʗDkVUM7cٰj_JI؟eEr| .Ll\4o<1=Ƌ^yO{ V@JԪQ ˴ |"iZРe+E1#GsyĨ kͅ}rQfٺ_~]<ke`y *uҡMKt@ aLhGݦttMw!Ϭڸ*ԡ-p7{t"5z.ԥ3z~7V㏧pVדmLV6VDņ{9i+Z5"*M)L;Hpϲ0Զ=+'~bMkxVI\J5doݼԪuԱ-Q`ђRY|9-:Ay`!?4ñK7΍O-EJrwhN0ePN-=L~{rsy ML [4F"aUδZ'߹;9!/>ɯmm"e3y= }.^;߯Îpb\w|R"B pR=~g m<޸wg?]Ź3 g$R\uncϽʕkQ5Y!F¯fCJxEطfEӑ4lӝ_JlZ2.אܤ }2p ġtOK3q 9W=[!gӪV Nnd .lt0=墩~>~a<5[7Ⅰ`1A3/bfiT}?Jӑ,&9Ȥ'o; MuݧQF+|o:1lǟMݓsE$ ҥL|b0>?K_h܋;ˎsyr۴r詌|>L{N.g\rdF ]׹v㌼+H2~ _~?M95y8ɁeO_+jURTl`yxNNfVb%%ҰP;B`z ꦥ(׍z9ky\weo=+.<1qdUHLF8Eh@Ʀ%|(:_:Ԫx`GVSIƱdUS4vUHA)V]?ͮ={Ny]_.8<ٍRJR` JbuR}6;YTصΝZ͙ؿvKZHqiđŁdiԤ7NVV@dx&lP)3$4Maڥ<25r$,,@s"+rxVRbف=4Ip(& k% Ap,J N֫2Lv{#ouSh$ec,{ X6n 4lmy|%8.?J/E'pdypڷd20m-H_Gƴ4U.iRsH)ys~ rۋ0lPTXex4=veHo0[@FF6q.fah1ٿWm{bWrdI kZ0cd[: $?qV޶#M J3W9ԺهXh`DUT͇DEYǟex`y~ p;"8=ܕm m$ݛb㈊"71_[}vށ([ױi_RٶyYNIщ$1)to'Wl"-y$Wn̾tBpA*qfvg/dlڟ}7Jb9j"Lm(|"@ ȗ{ACb۶2^ؼ,3>B C!-)=ۆ]o8 #f i .&/Ijz:*«}L X^{Nc\z=\~9XŅ7ilޱaCs۵QI:ҟ k>CJ7Yv~H'nY&@}8zPxc;ly>ƺm1 g^m’ ӆi6gz,^Hs CٟBmhtK&12O<0wO\.3B~^ .2Ln(hrBth\-#;|< /摏I7<)1M&;3$)b}GiUU|hrLH0HOߗkd!5?-%#3;)%eѡm+EaxM .*ԧ*;UUEմ<!M֟qm_|7oQ%^ J%)ubYv@rYBvpp 9/_E@*L*%sVp4 EQ=W1e ն1SqEMr@r+M~0vy%R:޼E̓)(}7\²? a$LOw3իowUTHXv͞={SN) EאnMVQI/xPSXJmY8rcEV6/˚8gW.Jnz} FEj\Ƕ1#w4]|h%q!#mfa>VƏ `:v2mk`V^)~e;@M⨐) +dr[LE]6݊BrD'V# aB*VduNOiWcqɜ!Ƕ `+&R8ɱ*3_ $lEVrplbccJ|B*0xJ/nt,$C t!:uEwqGp,v!W~cX[A vAkn+аEk7H㖇>wn֡zG~Z8s'n+vcJ.\!_nh@opU(\7P`󾰋ʡeokGur>H~5_W/] I߻?~Zȗ~ 1SgUlX3Ɋ?Z#a sϛX_z{?&<$/?xk\ćwN(PM~~k)+?n 9E9vVVM ɥ*$R  Z|$}H.μ\ӻ+wMqsn׎-?~oE\zJ?-޿y}7UEk7S|;w8tԍ7ߟ\U#֏^YW_[6PLi{8rq_VB .[/[(_B}2a^˲܍vY>E||Q(t{i^GM^ă{h-+i!z(,ӭǘQ17MSOEyڣ4Ɍ ZulːQOwKسƇ̗+tNgdՆ\Dzx V.*|ؽ3ξM+穣V{^wvoCZx}|$+Er}GT1%R n~Xa37n)al Q r(bbb%:* ]?)Um]@MusHU`w9UEvϧ{OyW*G*DQ5R(*#**h}hG7pGQ)GuR/B)5:wcܝOg3ϕ4jтJZm*ֽ"Xd4"oZ_;4jنѽ.wK0Sӣ%>,E֞87WRv"[9 yv6$\K~gסl;w,bxesNZ߻n<GW!څ( OY;xȠJk#EsR^y ޲ rWҪQ-A#UWٺa=*7iQc8^ W' ؖahr^^=cw ύlڰCtBX^D$US<%KZf83B"'@u>xl$6!qFЪv2t4%-#=}/Aanvbt'>[ T?5R߿v9v=HR*$'99w8ncHE|,-:x%EŒ^wYWz&12z%q/E,DJX._eW^־ț ey-<.kЧ\sq?OoɷOsT{\ }VΛɬe x:_@Nнu>e>w,-s ODu˒˖lnve|ЛӪv tEGE *U?:,v7c\YVbKN=61z)y)>?х\돎RRQT=R!H)IMMZj.ŲS!ОlY ߺ}kmbͬ])gͺM^٣I--ݫ`DפWS0 @N%2ӿe3:n"t?: V\e `uC~0'ײ "82@jYU5v[j:⷟ظ ȸ_Uq^>DvӦ2IL{&6wf|Iaq~+vRMuQM cLݻ;v}vn֭[ٲeKO\Xx8w\WLvN X B#'].J[Z8nWdXKغ>'ά֜{xRt{ct~oT'oPTNҾ}x˯iդZcZdT `oDlXԬ⋦u۶.KiZkQVͣӽK[]R Ϗ{3we{DUoSSvxQcy~w9jR3fp_*)13 #AG)Kyb6@ p"&P<RRi 0)=':pqdeeGPچ@\rDz0-уAOnr-<}pUkdYt+́]'_qUIPrr9i5ж.ᛅ٦>s*TID^&wy]ntMTPٙt7dʇ?F%ٶ9ޗ_m8ٺ.KsG+8_'}eOkǃF&tdБ8O*֧to1>D8_ȱ-p #nm.IiyVk0@;eH-ϊt&LFXx>:7 Oe _*"aA\V8|h'^ۏQdͣFg[h=7]a I$2 0 IM"eq@ [aEJdPռ v!NYֱ1M?<3nܞNJk9֬&V́|UѓXۀq!>ϐA0x~Mmɨ{";aOq7IJAƲMFhF̍co懏N` 4~ #1a4qMV\|MNϖuSQ;Fc$TG6uyq;abZn^Dm4 ,$hLim1?CoC/ٿc'tGZB 8VX&`06EFF> z/ssĶM}|4cJ>|&m&Q!*6a,8>N0-YL+eHÉ4M9عQ2+3c'蚎H$iaK鐕CLlBX 3# L,"]FNۮP"R9(}:ne+׺ya1֮Y(#!)du Pvש 6oކjׯO_v46oXϡ UU# iyBMI^W;д`۾ujVAQnbϾc[v%P( #ɚfߡlbRh:H1>u-KDk^{xb ԨNamԩߐ=[ *qT IZXdƭԪW(Meߞl߱-*uk`]}`LjiIawPt6oL )߳;RxLr\4`tn:5=5ټ})G/Xs^) ۲#s [OPŋiXaԭ[;{n))!3yVIݘZލPJ*{wn'ju61g\6\+{̷Ѥz'ύ呩_3Qy3y垁|%_#/aمO/O`_sM4m0ѨR ꎑ`6)iiG1܄ 9> $ peWA&N!RB&+q]/7Y%/֣lE嚑9+ٴ#!7Ӻ8&c %%vB1IܙFJB4aʼp`Gl,^TЎ%/?RGVKDTCD27EDԄ$8AbX=F`WSl.8TM0ϸ3ڳ ?Ȓ_c )]9$KѤF+cַұ3=$ #!\>bi )?rH0Ҭ'_GizO ݣDJpN1r%Cfz`&;, v:mA[1ˌ}|hm`Ԫc՗[c|I.8ILLzbNxb>}I lҢ 26&۰['Ϛwg[NbT&/t=}1q? )7)"ZA+W@&"v^rbrj(+CP.RB)m4e_t:.xs{`NmGUNcZR.n/70[d\oBpQ )@a^8 Γq.D^ S7$Oȗu.U eKPPUwR?ﰢxu YƻN)h!Wђr u"8ŷJeC~gt A.0 e( :DG_0)ޠ4IZiH0"/Rdg4Gi*"be/ hYXvTu\QdݏӈN1j£%ϧVxQQ2N rgQiiZ ~Esc*MO]rikǂus [;-ҽH-WlbCܱB^W!MJ;LlܲM[#lQE!!&3+W-@)V 7gi[G&yHSt|1oYQs< ",j೷'KHz,\3W_.D%x,7Zcx 0d;y!@u~wE*uq]cU)62%Yus0cK2 xR@AAW?T#X(Ī.Ca[.A[Eb 9~%RwLpFB2-rUT|~ =Lubg0j:SN2r-URRږh@VD`a8iV }DEuE ewb㓉a@u͞OM{O,u6uG+ k^G;ض ʯc}3Ҥ3}9 6ڇJn|mݱؓD ! ڻ j &9#?M)dvMRr*Q~ 2$$% )%R %"3C0y7 7o؛GQ CE躎;- )ùH%2QVۀV"I0y'}[goYȌ7Gsh, GNc ˅pb2Qb4~)%zR=kğ`G̶Ik5{wOtVƐncjtcz 4'cUߞinaPs0 /}7rX2>9(w;Ȁ8zpF;e<^7Bx' U9/~"1}C gՎHt.a$p BnydWIUhne N {'w9h d,x'W /ЩI "t9UQܻ?p 79W":c]C_,)m(ɵQ]!Ǣ,\cKw3ʈH~[ 0ry"vmو?6mUL_KT"*WWo<TW8}oeأr}Fn߽ʃ#y$y)TExI`0|4î-{8+I7!8PU']ϰd6jS/fÅ.ve+OfЁnfxO pQO5w"`;Y6c%VRB(HQ1I5tA>ԇtY.ٚIo LPؖ`΃QȋXRJ%G!n/\/dęUG F@\GA޺KART\ةQ- J)T %49I8HBykO7߸Yޗ^(}tٳMNjU;"K/ivh?` ګM~)" Kn {ѷ<|9{N_>!@rFv79j֜)5XJ3N"g6O-=S!תP+ o͓EM:awg*J".EQX w#̋hmp}߫VA\vfkR^xfY B[r=B.J!w( { gg jNiL `yVfEȔ4MZLZ~G8c'r Yb6e#X}]0s]Lm^ n'4يI1O:CSa݃ ITDMXDƲut(<# X{lTUp9?q? Az'q]S0 X"Vf Ɠg1GM?rq/TqO]D^g>\ -zgPR0$7*}nzM3|̠wQ~&rHPMM)]t~M~|z7T x7b)8ML6\1Çˢ5deg㘳*@V8v|5u /\Ū~d껳Ю%7"ȃfm<=q2mFۦU7n~7n `,ѪN9O`תyg.i\ye}wO6~t:#FbmӨ q}q,S$>mw忶sY m6!&}a^f53{\ζٹ]%֫Kzu F'm:Z^]x|‹$lOVxLOX\E㘙sДz r\@ t;Q;N؏YTSpϴld{uXgҩɴ8x*t6;yCˋczz5(oZrpǽa~`nZj V+ϙt%ӹd5rY4=95V)QzUթLɦBK:L^two!b)4-_zVDEձ  ==eMJ< 45r 5Z$OC*Mzqw=B&V9>s?=Ͻ xat֛66z|UebJg9vލ4n9^ev)ygxx.!\vOYef1 ~jUB;RV]4"RecbLj`:*5kBCyc{&2޻Z҅ƏKJ8¥XU%H)QҶ,{L4l+OރU rp# X:h#B[@LT"n,BUB /o Y6.YB ٲe vgׯ^7:.wy;z׮ w2^$_מъ8R~ ௪]xji\2W)ɏͧXGmwj/ʼn^ }L=}/z?/G:W\ Ajo1˨6̙XOB-ٽ{7{N:呉^nx&vL T8XmY_ zI}jV7d`mNj՗`sѵkWzb_1x@+lQFBK)]e > iX^ve'Pjʠ4 =0e"dMpj>pnI$m܍d 2FщeTZ/(GyZ"!Xvm)SdY#?+y!Ե| dq<`l[zH!q$33䰛+\ZRkFK_ü-0% bLWk-FÂCՂA۳8Q}>›IpS& @sl{6w_W'Ѹbi{4n\FgQٶ'*FIj 9tnV^|OW*P!LJ+'?GJa<]DV(P&RN"pbty'esy*w*5r6xus[f6-`!Bar]XQy{*Y;hֱ~a+UIͷKгc3==X3e8щ\3oMIDATvդ 7qGfV\pQ/{5;RNk^_"aNε $V z#?vsҠJܿ*R嵌r'phG.8Xn#y*V!(4%Wt# D !qAæR\$1,LTHR=;oZs -Ð4×PV)¬ǫ'ֈ?1p󊸼gۄ3E a0NTiH5irbb+BW|S,^ xGy;7{?Rn@[t$.PC{6|ep|v1!qa:H)TP!%ҍ?m3u;4C+jtm{R&,,Q7YJ«Op m[#JP!"\rbqkKB#%s[mS5؜VyGיT$tlف2kw_FSkKa$ WEqsJ)?$`;`X`ڞۡ4hJHSWB18e5cKJPlrt"QZ˂3Z?2rq L[b)"RhYkC즰~IrmAg[ v{3NVIHv8I_{'EoUwl%dDTT̀0bx;yxwS|gEs0 sZݝٝٝ|fwCuUuU=d>=ʙޏGlu廪T#c6+ ;7re4PUFtXtu.#v9>^svWA6+qsy-\y^ȳo1ao]S/_/<&`1N͟w l7>bcE6 >`;gۛo毧aLvnjٗ?'DpYKlmu@hGQ} .sc@(~Ȅ5XJI,!DC߯g=ћk\z8p^B!/qe27( 㮛A{Í^E,o ^;y=Rc3y2rCD>>b8nI!LXoks;>*A{N0Y͂b 4.Ь٬ j/=)Z13=iq9|`!O^۟ 0p H씱l?G^|λ_]OE|vR*O6nZ>LC h 2q$4\ja:lHpl!wwl[1}{ 7ix[*3 hxކK2(!x_͖0ܽ]m72c6_pXX#:}?Rl>T8u66n(_x/8Fg,ekHYXYLJeIn0rYG( (->rǤYTs8hɭ':\@u|mo;n|w_u)WcŒ 96<70e7yH#ya|28x(n.xӫB``8xtKhyYa5}V~wӼ3kvƑ7Oi)t$=tHǏ;^=n,"M y#DVdħ4"A3xd,1{FB~6f,`3a:MziM'h3*Vl3+%r T6ǂw4\STTr] ap?_dp?u+qN;BE6 # ,*=W+|^쮠/0e. ,YwnaxCsa%bsie~o n>hb`@9l*$a%=z#f'aHXU-RpOg-![/͛6bB:u:zwaټ|it~^cGsN^>['3f܁M(Xd.V0s'|lٺ_y :Kҥ ڿ؋y Aspg1{>?ٽ_p\1-.òxsfCvaȸ&u-)=vdJzޯϘH;gzgH2 9.IɊx`|Z-?O8cO @/+hfF )A>};7豧pC1$? AAb [v ̐ac#յ$+6 t-~r p)u%N{φ 〕%4vR"LlC) V$9jG+>"|B -(4 |T*mt&=ž A>Zl20k550RZjJ娠S'[KzfYP {hnCNeVՁ U!Õ8n WyrE[VypW&SabY+W `EG~;g"/L33Cv¦ yὙ ?`Yz[1l zt7oNf~]UQjvv3 Ð# ,+~XIcfӊ%M: zv39h6.gU9xI-Xa+8w㶗1EnB6A"2 6m@8ʵr]B hZ8x^l:82mwig>J1mli>]}O#fnf[D)p.F)a1lGwߏg9}˕,ش0ڔ_g|M.P2}y2h&/׿&5Q!‰L ~KeD@ .=G5*${ byec{K5]3<|@5&,Y(q/0t_wPt6)ǕdL-xg`LrnF2$|⨉9\hvI'URXn[ÝϙQQ!x py-(,A{$K a"jN`C݂\=qY:d&<0` 9lÚɉ{9fxD꿭Ho޽5nұ4 )x\HK@IEw]Ep1pWg48rxtứ+ogYzv ڑ=w݉;zw8Y|ty9q9QMөoON>x~$ )SOlk6' H"GoCO!UpmpZ7 x1la wr~a8k t!o+>x#[qcy[9r1]vpͿMqg|FK?#~y nkex2 .ٙ< .Gx{k+B8D :\ e1bfɪ `$2iA"w"Bb2dΒN˼bӳQPj 7l^_bM\5YYbO/dJX)(/Ӭ-nrohm,$S.MlȲ@~ҳ.ˋ V!YZ;X^],,1|ZP]4~vDѬZ+Hog`LoNH)LVՒtAFA4] dA~} u'v/?^J굕 C%3hX 8 e4p{ )Q.wUY3BcX:Ȭ~=U5TTT\|Xw{vΝp ߟ?lOzwU _`aKO=b?> x~d0&'7l3ҚO8E܅zٙp2!$.r~ my6 1h)?C;},'ht6['gpV+r :uBJŋԩ{1>҄ɫB䨾s+բ}>Sފ}) 'Y|(,r4ޮ׊5 [N!*wkS wx%A^]dҧ{luewmDmȚ΁ 'uZCg̘ZXFE9Gl? WH~D)F668mAo<}Tsp*Q/^aQi:S .<í(b:AI߆<#%5>:}׵mJK7Kb.TpfC,)%[l߿R6DT^=D!R谮0+s]ǎ [Q^LJaX h8]I2NB`F[iaeMc~>H)ټy37p HIcǕan6ƔC׈][u%F8o1]8)8a?Nݠ]XFBK̽8Hcou6۪W3RǤW:Ću A,V(QZb煋ȳ=,ݒm-*6 v,[^JJH Զkw *Ђff24THWOD8C PS?#FRi\\RlOqZBukAN@ VMѱ/C<[l]h3rZE>$*)psv.cK h8ŷWZ捻ADd,Nͺu0ds3Ƞ~ʢ8{wHS8鈣PsTB9V}) [V<^:X4.6wzUi JyU88 )%Hfؙ_~G~RfEebQ| AF6'Kfz-,Imhh'nDo.=::#ZJ^5o;cb0ENn+WdA骆R$:I͟TImI;BwpCn!Q p 鉱gI0h!)((` 4( d+#C:P|<*NN.ʭz_żmsI's3x8 ?Og>IlȠ]3:;͖TWAfyB׼WP33hIhZ{uO/s9(GЮ[2h-4ɢCkz2D$r]<4őbƊs!㉳"*sU, 3\z/h{yz ءr|YLKbH O~|)`p8uzwϦrM׿GwfЫohu?^b];?'Dn2yd^>L䪫/[WgRsy/ l-Qc:nݻxi]+ַ-CLqq:A,oǛr-M6u[fXޤQcT-j O'lҼlu?7[zÎ>_۞fsV.ǁ., 0oF( {rEGGJ .v+w{ l[owN8acƎ~ `ճ9ጳةc wP1cؒ5c3V>HCiCCpKNfE(7+4#SIJ,, \~{(s'301$lhQ0L7q/[_iy"&)Jê?;(Zʺ̨pͻǫ␃?oHˢogʘC҃Z5Q|{5 ?2Uk#Չ+Ӱz9VƇnR-'iAGr QJaJ V1` =ʼً~[RNNټsߙb;z#W 3x'd&=6sk!gGoá4-L |3sz}EwέCX:F0vL3h#a-n'}O&i.Ѝ\-^D a-і\Zcfil=?}S7lF`;Sq] aCkיT1zA<|x??>`̮9Q\z(zC*{,`ݗpƅSTZ=&0٬q*,]v_{WΣ-~K6Y̨!ybo$ ΙTϙV ?EUn㾥YǼ%nJ;4uqQsc$8 = !c.#Cߐ=0h (PC9.HJ+dIOpOҋ}(#> &,i6j sҾ9>hsFG&"r=l/3#wFhE: &/}Kf]Z*ܓ^t[+t*ssJ֮]ȑ#QJyfBG)a,TZ\HRHl/L>LC`B81/j ;vYhp) C80xх>NV80*!l;3V)%7o>}`~axͤzL ̠ќ\F8uk8U_s'|c+t֪I\׍zOs ]ED󛠣ϱm)+MA@%I{l׶!42깭5nc>I$m ƥ6ّ6M|]S1=CH2H%eƛA#ײbQre Zh1 4r Kk(MQVQ3GmͲI{Mש&|f]L"ȝ^’aŃbwqG奬^kװj 綬^7`զndi@Ol4B4"4xfŊe9Б,8so =5}Wp"[f[}^yAN}^n~ƿpk6W?ٹg,M@gSc&r^2hB4+ytj\m#Z$Ц%~诗^c֝x9x?헟}tJO{~n|m>.:q;p=zu֝E߼λFäb80|_.+mAmJ7$"+k@c,F-z,ev:O Xlj=}O? ?23Ͼ>,Eq矷#X1 u y?;Jv9~ݛ4!7ҙZּԮIeIt5j% glƩnhJiE-,,`ѪZY36mDaa!}4zDfZB՚*rA*h" "h_ZWDokZ,O%Bd Z>Λ! i@m HKEX:,p]9$ilj22hnVZVFjeNMN@2S>(掬ikyP(eR{DUODA@zCtχieYЁxhJ'?"5iV82+r.2#`U|HbvG Xdg*nQ}"=B@jNT^JaB~lL K@A\^̫=*~͛RTߟea"a 7}&>iZ-e˴|>YdX> 4k+eV!mG?PP(D0IL@DRnALɾ@$*h4M&>3 L0B.P%<ē]]p6Q k# eAfF JaX.';3=wKAW ajWg?ɍAF}wVC"vx\x<c=|UZSTeqY 7zbl_m@>`3Xf# wC/a?cv(`ԁ7 NFPP&1x;K(k9ްxSp!NoJ6ݴ.$ 4X;(0ugy]#)_sqYsfs dwIu_Wxrz:kY8U'( i;'sGVu`<yfb/8P{cj:"JD9 UT(I=AI u/}OJTk )0L+ ,>g\=3Y&l^{Fq[\Gl\MK0oor)鋜tH_v ẪB `Êm?.n͟.G]=͔O?RɆ̠ u+zn0ZAc#v4,XsEqRH4RtET֋{GػK7FܺalY/>M)cs W칌{wxxx :s6`R;2LgqWd?9fӃ^}-iԉރxEh u9F{PG ]Q976a Ct/{R~++ Fn41k ۇo=E,7mc~X=pۯΔϩ(Z^OͤiduNJTGWo\ŻSg"_^Ŭy 莼g ;_4 (Y=N=VBH2No>H{a.'i,ͷT1:%:y椞3P@SQ$k;@ qĩ̳ 78ٳ_G~Q{X“u .0 hi`]"7;R\ C Pl\mX:8=X"DN0 *J^RF^:ql@P ؔrs+(/ӡ#>ӈvGIQrspqZoRRXXHQQ}0F ֫V#w4@m ֈn&R1&Bm ДWD#tmha+!š讴{ӲUОD 0 ЊbTƃBA0R %z uS--Fr?cpV7˲(//gѢEEd2tODm&e %;vMJ2_g5<אѫ'0Qر#:uj^Ƞ!W(H)ZJa֬ՉHl[3H yə AS#|3=#?LI?tqD3chF 4#T9!)$47\JS%~"m[vJEW̢AF%XBG&DZ-{je>-Oo_6#$ŵԅ48CL4Fv@jj2Tv X?1-r4"ïmA7|7"{ýeW•!MOs\Ս$h[ /@mA_QZHTfHBW:"_MҮVLJ"kTm)2`S' amd#Ʃtv3v79KD.04HVh~kSjÈ8(m쭒P\t ul,+X0CqAn<dӎp86?ۏU3=6b a [X )NOw"f '"ɼǖn#ZN ,[Y^Ғ\}D h 0h !G3|L|e^(1{.{"[*AA ǂ2MH:eCi&?ObD㠑\ 4%B%cĵ5ۂ CJ XTl`lsY]Qs$AŖ HYVv5-[ms}&MvZw1 o;VXnp9")ŔiVϐ( -SThNMV(:w筊*rR )(ٶ= %6(.M?\zu6dv n?..ƕ`+z;AXA|tʶytð7$#y/W9@/J\6$1b_i(u=)H5V%!42!I**GzjA:ZV $Q}א΃V)%0t ~]RX{K% #pńh/rnY!~2nW?ϥ}x!!5"oa0{Agg9晋/mF ,hCp~T'; xfiOVPd :(lltSZ)$n+ ICW:gI#vC): S 6w{Zy3yyR9 `aJr% `< ʷj*p p y99 -pZ!$,Y钋03 JC ;5ŮC 7N/++ `4)jS\us̹^k! 5 k=^̂" I-u=MImҩlA"́`$aUlbإ֮s9.|ys. 4J]Q "彑Ҁ uE_0 @(U))r5!W3?7#6eh\qRq 3[\͓봼7{T*EͧԈrݤԵ7ij 1hj[Q|}>dIiww<qA q~v{z!XN3w\&r&4]/4<{kvq!v%vcSm>_c@+pT BdDmt˾2q?mV. ĎwI8Vi /O相- X&cd3]f D :G*. #pdzb!ÿ%\Ci"+Gbb.p|mAE_)1g_J6wy[g/ϡ,͂޶ jO <"|͓I\f)4p1cKqUz|4PkB(4+@+?7_%'ۋc-yⅸP$ꥧaLz 2 5JuJk; ڵk9r$lRB^d:)^eK!OJxhW$/kJȿb CXCd6E@xJz#yCjw,۪pa49> JP4>$KXf84I]m`PN/s( HFT8D!rQ¤!,>#0 L0 @J2Vbi eQfP-[D%)G0Pײ`Wņ+P_>G4\ z,D.,cR힘k]Wd <&r^ *X5(.+Ph|/#riƠٰ9jsBFb:η~vmt&ilKh5S$.p([(0sA` p-Q|lOEEI":{$դq<#_L `6^C~NidJf4 pYԵGZ@kwxJ##ڔ>hʵh)˶;w^DS_J2QC3bJ9b4u >_1BmuDzœh-pЍV:==ҷɋ}X,ޔCѡ_g9h<L Xݱ)kQ8vfEC:>q_BtO]Qk"}R5]ڳPKTZNyxeن֪Y$DCԛ~فL+8ae6<-IUgG\7ֶ9ݎ&vt$?bS`$ҭ*Ww]J BYsCkp4h[7(m,wSp1!X+LBS|ZޞyD:(/hJWڌ%*qa+*jR9 G]pCJ7\VQ_G*<&9FDқ09̸.qJK]n!b'¸5nxX&:U5P94sKHU.8@Ӎ]BBaD Hb>[V(fئ&DS/eS! VhBԩ7n{-.͚!)%۶m: %uD Mm/n:|2=PT&@oӎ*O|VZE.]0 #J\F5daɒ%tر:+J3Ͽ!Rh\ @(q\E)EEEWjȱt=dggG=BJCB<2>ҥK4hbz NDQ!?hsR-[41e?3hxK^‘K#02Y}>aD'vvvW՘(3ZCgc4B"}Fݭ~m5H7"hΈX-"b1+z?2"L *1W'ב!&CkeYXծH| v,npKD|r 9hX mi41@ŮMi]FHF) 5*'.ϻLn E@kC8튀C<KD"Ԩ9ό9M nkiw%LGRnMhh mo!BF9Xu M=UeUQŁDGu1VjƑ~$ BȘ%FљƎHr6MUUɅYuwgfXF/dGaE'A2xꎄG [,me& 9XkDZDZ"-T$!1^d*|O,r-K-!Vbv$ Ց .Ҋ{]콵mf&>j#WZdWRXR]Az])ڝ6TwbC:c,US昖 0IM54YjD^o~i5HpTϱ5gHz0oCxH!Gm$=݁C:HOhShs)ȪNp,ʎ_D$ N@"Oz#n@IM[Q[uǚ^btEXtcommentborder bs:0 bc:#000000 ps:0 pc:#eeeeee es:0 ec:#000000 ck:500d02a4f1f1d7497340cc586896bf11%tEXtdate:create2016-06-28T00:27:54+00:004d%tEXtdate:modify2016-06-28T00:27:54+00:00E91IENDB`Lib/gftools/encodings/GF Glyph Sets/tutorials/img/list-filter.png000066400000000000000000000167751376445505300252530ustar00rootroot00000000000000JFIF``C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222 " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?nj ٬?FQ~TCRQٮd67Ґ q>"=ċo J+]TLcӽuv}]i֗yi>l:PRn>ߕ]qRp>OmNTt>7g'܁ҘRn>ߕp_]fXU|v8'd?z{~Tn>ߕG qsDۣC)@}*7oʒ`.Q~TRwAQʛE0ʌʛKH}*7oʒ.Q~TSwoʍ򤢀q}*J(woʍ򤢀q 4 f fѤ98xmou4f]u{k1zuVPio.oaCg193a>o% xbw/}ݏR3W|+}u}[=GэP3Q]Od'!3,Ym_Z-뺞xoκ3OD G1zk4v+zfz},|=m'2 |L}>:ޙ6@Z̻YoB= 7J}y1̷3`ݾuqk'ڿu#dc"PSRv5\!hte+<;𱼱-f qG4;עkgl1lӭix>"[ $c֫?;&ih|/~$U,#gP08x{E?-iU*,ĪZ4nRfM)L{wPFi4)@MFhRfEPz(=M9ɺ"?s|ZϘs |~68 T )ݎ9N`XOθkZ8V1H~r 4Ue3o@jZJ`G꿝oԔPoPNm B ti~>۾bPo꿝II@ }_ΏUPh}Zh}Zh}Zg}zIE3:>o=W@ }_Δ_[U&deX05(5zd8<*\`4es1-q i[*O# ?Uy}?Vß³eI؎Mq3]Ѕv%QJqz>T;.gYwK3k1Q f.[g b\f2BI_` w9Գ\mS֣[%n-ր.dRq‘<Fk%. ^zr+b$0B=sր+><-4g QA ;mĄOSn}g~qR{T`Ĭ ;"G,G!BzvaO>vR㟥M{ɭ-# qעI`B8dT浬#lݹ,YOE.)hRJ)hbRMyeIT?w\A5 Z~ʕR}mt>hygνkVUB^ bο'+#?Z.dЅv'⒟IJqa̋$۔`r8*5Q *c anIFdbΙk"C,#,2NAƣd"F`'}M3pyrdz+), o=GM56q3%2(Y@`pGP, Hr=hH-\٠{`Rp RE$sIJ"Itt`"!LJŘO{tʒpj(S]:`l|9?Y :O%%a̐.~ (TW-eQ[xIT:sS%ݴgKo,KaJv)((.)hS %^kj^~?]u\_A5綑>?PH#?jG@|C&y~z֙aZG5W"o+ [?M;׭oZ_$Դ=F'ҮuM'UͰR^ǓiԼY yLY&$2<q|U/z~&51R[XcPkWº,)Wty`|5]PwuuDTmćq,O=jǟb&4/7[a{[햓\ͧ5a*m7lsڬj:4׾%ѵD5(bmޓeđ^yk/15}Vvh:~S:e viR~ӡ#u^LaJ XU&a{wn }1GP8 :]Aur:;W'O5+OHԡ"ό䜎٫־ wRid$>lL[pݞ:U'EZ收`$qKIys6 ̰yieH9ZqXfдm'9]4`b@mPDV//#Gqg#tP(HaT1sW< \E*!T^+FATx ; uOWBG&1N&(1IN`UHY[{A(sb si..#dp=F `^;t;'C<t7n~QciĺpYd)~e|>wRmΟ %t!ܳ;q<@n(sz4>Zkfqu=x>mW:^4su~dc7F*+;YCsMkO@ bPqE;b+ b?GorkOG RXӊG@|j |*ߗA@*UIGz>tOVkp?!['(!񕅌Rit€O(CÚ޽E-k6hKL=ʱ =Ƶq>oJ9̶e[}{GA^1KhZǨMOkүbf[Y`2;vl}}kC0x`ݣsrS:(@R^\i=J78ӯ]ŝաܓ۲8 yb:FO2.Mcm;Us ^|8-FMFX𞯩Y\a.cuk4#ԧI_*)fkw rNr^ntHSRXc2$rsZ(ε{4*Z=4@FIa9__µ5חMWm䶑2ٱ޻Z2GCB]Z_kuAhnU@ 5me2(짊 [I$0k h (1EPJZ(q\ŲOG譫Me/#tPӊ%*-L"HSS&-8UVQ[j(1ʿ?!Zǩ?!Z(Z Ev`8.zօq7tmH%u&:m X_mu;tdI&69(AS W̻]}T@:4=j.2 0 >L5v/02NMY+%j2j ct+]FKK#AAjz(/J捡LiF$9,IO` Nszδ 3z62ͧiJǽ39 ϭ@GPm\o] ؒX]Һcom_;n#l+g@ O{UUYe˅Ҭ)w"S ( ( ( ("I#U,G#tU5ZDҌqSQGҧb4Z WX=*("/tOVk:|]Bz(+*=bxQ䟕WqZ\~[ mǭe8F d!hHlU^>~*;U`vv=jD9Y\m㱩ŁPٛ8=ai}Ydu#bs5@t tqOm>eyו,szӑ7)Uh3o7xQ4#%sGzG0]MH>a HfUkn9M"F\p"2vM-1=)--WӴ7lnoZԎ{4`RK2|o z:d7"R#} ZGQnqBÍOZ^]]fڏ{VG@fեoٽ7iytytoj>Z^]]fڏ{VG@fեoٽ~Z>]]gjzW|Nt&)iP: JZJZ)(QE-PbR@ 1KE&(-PbR@ 1KE&(-PbR@ \QEJ(i(?Lib/gftools/encodings/README.md000066400000000000000000000132061376445505300165070ustar00rootroot00000000000000This directory contains "Namelist" files, that list Unicode characters followed by glyph names or glyph descriptions. Typically all the Unicodes in each file are in each font. If the fonts go beyond that list, those additional characters will not be available to Fonts API end users. The Google Fonts API uses these files in combination with [pyftsubset](https://github.com/behdad/fonttools/blob/master/Lib/fontTools/subset.py) to generate script subsets from the full `.ttf` files in this repository. There are "legacy" encodings, the files directly in this directory, and "novel" encodings contained in the `GF Glyph Sets` subdirectory. The latter directory contains itself a [`README.md`]('GF Glyph Sets/README.md'). # The "Namelist" file format The extension of a Namelist file is "`.nam`". Namelist files are encoded in UTF-8. ### *legacy* subsetting * all encodings with the exception of `khmer` include `latin_unique-glyphs.nam` * all *extended* encodings with filenames like`{lang}-ext_unique-glyphs.nam` also include `{lang}_unique-glyphs.nam` This is implemented in the `CodepointFiles` function of [google_fonts.py](../util/google_fonts.py) *NOTE: the legacy files have also been adapted to the novel header `#$ include` style.* ### *novel* subsetting The [`README.md`]('GF Glyph Sets/README.md') describes mostly how each of the Namelist files depend on each other, to implement this [header includes](#header) were created. ## Codepoint format A line that starts with `0x` and then have 4 or 5 **uppercase** hex digits; what follows is an arbitrary description to the end of the line. Example: ``` 0x0061 a LATIN SMALL LETTER A 0x0062 b LATIN SMALL LETTER B 0x0063 c LATIN SMALL LETTER C 0x03E4 Ϥ COPTIC CAPITAL LETTER FEI 0x10142 𐅂 GREEK ACROPHONIC ATTIC ONE DRACHMA ``` ## Comments Comments are lines starting with `#`. Example: ``` # Created by Alexei Vanyashin 2016-27-06 #$ include ../GF-latin-plus_unique-glyphs.nam ``` ## glyphs without Unicode (since the "novel" encodings) A line that starts with at least six spaces describes a glyph that has no Unicode and will usually be accessible via OpenType GSUB. These glyphs are used to ensure the fonts contain certain OpenType features. The description is a human readable glyph name that can be used in the authoring application (targeted at Glyphs) to create and process the glyph properly. Example: ``` aacute.sc abreve.sc abreveacute.sc abrevedotbelow.sc ``` For legacy reasons, we also accept lines in the form of: ``` Д uni0414.loclBGR И uni0418.loclBGR Й uni0419.loclBGR ``` Using this sample python implementation to obtain the glyph name: ```py line.strip().rsplit(' ')[-1] ``` ## Header The header was created to make the Namelist format more self contained. The Namelist header is made of all consecutive comment lines at the beginning of the file. The first non-comment line ends the header. Specially crafted comment lines, "header data", define the meta data of the file. Other comments are just that, comments. A header data line begins with `#$` then is followed by a keyword and then followed by the arguments for the keyword. The keyword is separated from its arguments by one or more space characters. The keywords, the semantics of a keyword and the syntax of its arguments should be documented here. Format for header data: ``` #$ {keyword} {arguments} ``` ### Keyword `#$ include {namfile}` The `include` keyword can be used zero or more times. Order of appearance should have no effect on the resulting set and thus be not important. It specifies the namfiles on which the current namfile depends. The file plus all of its includes together define the complete char-set. Includes are loaded recursively, meaning that the includes of an included files must also be loaded. E.g. a novel a "pro" encoding would include its "plus" encoding and the latter would include its "base" encoding. The Pro charset then is the union of pro, plus and base. Loops in the includes are not followed; the final result as a `set` wouldn't have a different value whether the same file is included once or many times. `{namfile}` is a file path to a namfile relative to the path of the file that contains the include statement. Example from `GF-latin-expert_unique-glyphs.nam` ``` #$ include GF-latin-pro_unique-glyphs.nam 0x2153 ⅓ onethird 0x2154 ⅔ twothirds 0x215B ⅛ oneeighth ``` ### Possible Keywords * `author {name}` (zero or more) since we can already find `# Created by` comments in the novel nam-files we could as well just institutionalize it. * `label {name}` A human readable name for the file, to be used in user interfaces. Could also have a further `{locale}` argument for internationalization. # Scripts A python script, `tools/namelist.py` can generate these files: namelist.py Font.ttf > NameList.nam The `[wgl-latin.enc]` file can be used by [Fontlab Studio 5](http://www.fontlab.com), and represented Microsoft's [Windows Glyph List 4](https://en.wikipedia.org/wiki/Windows_Glyph_List_4) glyph set. A python script, `tools/unicode_names.py` can reformat these files: python unicode_names.py --nam_file=encodings/latin_unique-glyphs.nam; 0x0020 SPACE 0x0021 ! EXCLAMATION MARK 0x0022 " QUOTATION MARK 0x0023 # NUMBER SIGN ... Namelist parsing is implemented in: Python: `tools/util/google_fonts.py` use the function `CodepointsInSubset` for legacy Namelist files and `codepointsInNamelist` for novel Namelist files. JavaScript: [analyzeCharSets.js](https://github.com/graphicore/specimenTools/blob/languages/build/analyzeCharSets.js) implements novel style Namefile parsing. Lib/gftools/encodings/arabic_unique-glyphs.nam000066400000000000000000000366161376445505300220520ustar00rootroot00000000000000# 2011-01-03 DC generated by namelist.py and the Ubuntu Font Family # 2014-09-03 Arabic generated by Roozbeh Pournader # 2017-11-22 Added Pashto and Sindhi # # Supports the five languages Arabic, Persian, Urdu, Pashto, and Sindhi. The # presentation forms are added since they are not expected to add to the font # size much, but could help with displaying still-too-common text encoded using # presentation forms instead of ZWJ and ZWNJ. 0x0600 # ARABIC NUMBER SIGN 0x0601 # ARABIC SIGN SANAH 0x0602 # ARABIC FOOTNOTE MARKER 0x0603 # ARABIC SIGN SAFHA 0x060B # AFGHANI SIGN 0x060C # ARABIC COMMA 0x060D # ARABIC DATE SEPARATOR 0x061B # ARABIC SEMICOLON 0x061E # ARABIC TRIPLE DOT PUNCTUATION MARK 0x061F # ARABIC QUESTION MARK 0x0621 # ARABIC LETTER HAMZA 0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE 0x0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE 0x0624 # ARABIC LETTER WAW WITH HAMZA ABOVE 0x0625 # ARABIC LETTER ALEF WITH HAMZA BELOW 0x0626 # ARABIC LETTER YEH WITH HAMZA ABOVE 0x0627 # ARABIC LETTER ALEF 0x0628 # ARABIC LETTER BEH 0x0629 # ARABIC LETTER TEH MARBUTA 0x062A # ARABIC LETTER TEH 0x062B # ARABIC LETTER THEH 0x062C # ARABIC LETTER JEEM 0x062D # ARABIC LETTER HAH 0x062E # ARABIC LETTER KHAH 0x062F # ARABIC LETTER DAL 0x0630 # ARABIC LETTER THAL 0x0631 # ARABIC LETTER REH 0x0632 # ARABIC LETTER ZAIN 0x0633 # ARABIC LETTER SEEN 0x0634 # ARABIC LETTER SHEEN 0x0635 # ARABIC LETTER SAD 0x0636 # ARABIC LETTER DAD 0x0637 # ARABIC LETTER TAH 0x0638 # ARABIC LETTER ZAH 0x0639 # ARABIC LETTER AIN 0x063A # ARABIC LETTER GHAIN 0x0640 # ARABIC TATWEEL 0x0641 # ARABIC LETTER FEH 0x0642 # ARABIC LETTER QAF 0x0643 # ARABIC LETTER KAF 0x0644 # ARABIC LETTER LAM 0x0645 # ARABIC LETTER MEEM 0x0646 # ARABIC LETTER NOON 0x0647 # ARABIC LETTER HEH 0x0648 # ARABIC LETTER WAW 0x0649 # ARABIC LETTER ALEF MAKSURA 0x064A # ARABIC LETTER YEH 0x064B # ARABIC FATHATAN 0x064C # ARABIC DAMMATAN 0x064D # ARABIC KASRATAN 0x064E # ARABIC FATHA 0x064F # ARABIC DAMMA 0x0650 # ARABIC KASRA 0x0651 # ARABIC SHADDA 0x0652 # ARABIC SUKUN 0x0653 # ARABIC MADDAH ABOVE 0x0654 # ARABIC HAMZA ABOVE 0x0655 # ARABIC HAMZA BELOW 0x0656 # ARABIC SUBSCRIPT ALEF 0x0657 # ARABIC INVERTED DAMMA 0x0658 # ARABIC MARK NOON GHUNNA 0x0659 # ARABIC ZWARAKAY 0x0660 # ARABIC-INDIC DIGIT ZERO 0x0661 # ARABIC-INDIC DIGIT ONE 0x0662 # ARABIC-INDIC DIGIT TWO 0x0663 # ARABIC-INDIC DIGIT THREE 0x0664 # ARABIC-INDIC DIGIT FOUR 0x0665 # ARABIC-INDIC DIGIT FIVE 0x0666 # ARABIC-INDIC DIGIT SIX 0x0667 # ARABIC-INDIC DIGIT SEVEN 0x0668 # ARABIC-INDIC DIGIT EIGHT 0x0669 # ARABIC-INDIC DIGIT NINE 0x066A # ARABIC PERCENT SIGN 0x066B # ARABIC DECIMAL SEPARATOR 0x066C # ARABIC THOUSANDS SEPARATOR 0x066D # ARABIC FIVE POINTED STAR 0x0670 # ARABIC LETTER SUPERSCRIPT ALEF 0x0671 # ARABIC LETTER ALEF WASLA 0x0679 # ARABIC LETTER TTEH 0x067A # ARABIC LETTER TTEHEH 0x067B # ARABIC LETTER BEEH 0x067C # ARABIC LETTER TEH WITH RING 0x067D # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS 0x067E # ARABIC LETTER PEH 0x067F # ARABIC LETTER TEHEH 0x0680 # ARABIC LETTER BEHEH 0x0681 # ARABIC LETTER HAH WITH HAMZA ABOVE 0x0683 # ARABIC LETTER NYEH 0x0684 # ARABIC LETTER DYEH 0x0685 # ARABIC LETTER HAH WITH THREE DOTS ABOVE 0x0686 # ARABIC LETTER TCHEH 0x0687 # ARABIC LETTER TCHEHEH 0x0688 # ARABIC LETTER DDAL 0x0689 # ARABIC LETTER DAL WITH RING 0x068A # ARABIC LETTER DAL WITH DOT BELOW 0x068C # ARABIC LETTER DAHAL 0x068D # ARABIC LETTER DDAHAL 0x068F # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS 0x0691 # ARABIC LETTER RREH 0x0693 # ARABIC LETTER REH WITH RING 0x0696 # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE 0x0698 # ARABIC LETTER JEH 0x0699 # ARABIC LETTER REH WITH FOUR DOTS ABOVE 0x069A # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE 0x069C # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE 0x06A2 # ARABIC LETTER FEH WITH DOT MOVED BELOW 0x06A4 # ARABIC LETTER VEH 0x06A5 # ARABIC LETTER FEH WITH THREE DOTS BELOW 0x06A6 # ARABIC LETTER PEHEH 0x06A7 # ARABIC LETTER QAF WITH DOT ABOVE 0x06A8 # ARABIC LETTER QAF WITH THREE DOTS ABOVE 0x06A9 # ARABIC LETTER KEHEH 0x06AA # ARABIC LETTER SWASH KAF 0x06AB # ARABIC LETTER KAF WITH RING 0x06AF # ARABIC LETTER GAF 0x06B1 # ARABIC LETTER NGOEH 0x06B3 # ARABIC LETTER GUEH 0x06BA # ARABIC LETTER NOON GHUNNA 0x06BB # ARABIC LETTER RNOON 0x06BC # ARABIC LETTER NOON WITH RING 0x06BE # ARABIC LETTER HEH DOACHASHMEE 0x06C0 # ARABIC LETTER HEH WITH YEH ABOVE 0x06C1 # ARABIC LETTER HEH GOAL 0x06C2 # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE 0x06C3 # ARABIC LETTER TEH MARBUTA GOAL 0x06CC # ARABIC LETTER FARSI YEH 0x06CD # ARABIC LETTER YEH WITH TAIL 0x06D0 # ARABIC LETTER E 0x06D2 # ARABIC LETTER YEH BARREE 0x06D3 # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE 0x06D4 # ARABIC FULL STOP 0x06DD # ARABIC END OF AYAH 0x06DE # ARABIC START OF RUB EL HIZB 0x06E9 # ARABIC PLACE OF SAJDAH 0x06F0 # EXTENDED ARABIC-INDIC DIGIT ZERO 0x06F1 # EXTENDED ARABIC-INDIC DIGIT ONE 0x06F2 # EXTENDED ARABIC-INDIC DIGIT TWO 0x06F3 # EXTENDED ARABIC-INDIC DIGIT THREE 0x06F4 # EXTENDED ARABIC-INDIC DIGIT FOUR 0x06F5 # EXTENDED ARABIC-INDIC DIGIT FIVE 0x06F6 # EXTENDED ARABIC-INDIC DIGIT SIX 0x06F7 # EXTENDED ARABIC-INDIC DIGIT SEVEN 0x06F8 # EXTENDED ARABIC-INDIC DIGIT EIGHT 0x06F9 # EXTENDED ARABIC-INDIC DIGIT NINE 0x06FD # ARABIC SIGN SINDHI AMPERSAND 0x06FE # ARABIC SIGN SINDHI POSTPOSITION MEN 0x200C # ZERO WIDTH NON-JOINER 0x200D # ZERO WIDTH JOINER 0x200E # LEFT-TO-RIGHT MARK 0x2010 # HYPHEN 0x2011 # NON-BREAKING HYPHEN 0x204F # REVERSED SEMICOLON 0x2E41 # REVERSED COMMA 0xFB50 # ARABIC LETTER ALEF WASLA ISOLATED FORM 0xFB51 # ARABIC LETTER ALEF WASLA FINAL FORM 0xFB52 # ARABIC LETTER BEEH ISOLATED FORM 0xFB53 # ARABIC LETTER BEEH FINAL FORM 0xFB54 # ARABIC LETTER BEEH INITIAL FORM 0xFB55 # ARABIC LETTER BEEH MEDIAL FORM 0xFB56 # ARABIC LETTER PEH ISOLATED FORM 0xFB57 # ARABIC LETTER PEH FINAL FORM 0xFB58 # ARABIC LETTER PEH INITIAL FORM 0xFB59 # ARABIC LETTER PEH MEDIAL FORM 0xFB5A # ARABIC LETTER BEHEH ISOLATED FORM 0xFB5B # ARABIC LETTER BEHEH FINAL FORM 0xFB5C # ARABIC LETTER BEHEH INITIAL FORM 0xFB5D # ARABIC LETTER BEHEH MEDIAL FORM 0xFB5E # ARABIC LETTER TTEHEH ISOLATED FORM 0xFB5F # ARABIC LETTER TTEHEH FINAL FORM 0xFB60 # ARABIC LETTER TTEHEH INITIAL FORM 0xFB61 # ARABIC LETTER TTEHEH MEDIAL FORM 0xFB62 # ARABIC LETTER TEHEH ISOLATED FORM 0xFB63 # ARABIC LETTER TEHEH FINAL FORM 0xFB64 # ARABIC LETTER TEHEH INITIAL FORM 0xFB65 # ARABIC LETTER TEHEH MEDIAL FORM 0xFB66 # ARABIC LETTER TTEH ISOLATED FORM 0xFB67 # ARABIC LETTER TTEH FINAL FORM 0xFB68 # ARABIC LETTER TTEH INITIAL FORM 0xFB69 # ARABIC LETTER TTEH MEDIAL FORM 0xFB6A # ARABIC LETTER VEH ISOLATED FORM 0xFB6B # ARABIC LETTER VEH FINAL FORM 0xFB6C # ARABIC LETTER VEH INITIAL FORM 0xFB6D # ARABIC LETTER VEH MEDIAL FORM 0xFB6E # ARABIC LETTER PEHEH ISOLATED FORM 0xFB6F # ARABIC LETTER PEHEH FINAL FORM 0xFB70 # ARABIC LETTER PEHEH INITIAL FORM 0xFB71 # ARABIC LETTER PEHEH MEDIAL FORM 0xFB72 # ARABIC LETTER DYEH ISOLATED FORM 0xFB73 # ARABIC LETTER DYEH FINAL FORM 0xFB74 # ARABIC LETTER DYEH INITIAL FORM 0xFB75 # ARABIC LETTER DYEH MEDIAL FORM 0xFB76 # ARABIC LETTER NYEH ISOLATED FORM 0xFB77 # ARABIC LETTER NYEH FINAL FORM 0xFB78 # ARABIC LETTER NYEH INITIAL FORM 0xFB79 # ARABIC LETTER NYEH MEDIAL FORM 0xFB7A # ARABIC LETTER TCHEH ISOLATED FORM 0xFB7B # ARABIC LETTER TCHEH FINAL FORM 0xFB7C # ARABIC LETTER TCHEH INITIAL FORM 0xFB7D # ARABIC LETTER TCHEH MEDIAL FORM 0xFB7E # ARABIC LETTER TCHEHEH ISOLATED FORM 0xFB7F # ARABIC LETTER TCHEHEH FINAL FORM 0xFB80 # ARABIC LETTER TCHEHEH INITIAL FORM 0xFB81 # ARABIC LETTER TCHEHEH MEDIAL FORM 0xFB82 # ARABIC LETTER DDAHAL ISOLATED FORM 0xFB83 # ARABIC LETTER DDAHAL FINAL FORM 0xFB84 # ARABIC LETTER DAHAL ISOLATED FORM 0xFB85 # ARABIC LETTER DAHAL FINAL FORM 0xFB88 # ARABIC LETTER DDAL ISOLATED FORM 0xFB89 # ARABIC LETTER DDAL FINAL FORM 0xFB8A # ARABIC LETTER JEH ISOLATED FORM 0xFB8B # ARABIC LETTER JEH FINAL FORM 0xFB8C # ARABIC LETTER RREH ISOLATED FORM 0xFB8D # ARABIC LETTER RREH FINAL FORM 0xFB8E # ARABIC LETTER KEHEH ISOLATED FORM 0xFB8F # ARABIC LETTER KEHEH FINAL FORM 0xFB90 # ARABIC LETTER KEHEH INITIAL FORM 0xFB91 # ARABIC LETTER KEHEH MEDIAL FORM 0xFB92 # ARABIC LETTER GAF ISOLATED FORM 0xFB93 # ARABIC LETTER GAF FINAL FORM 0xFB94 # ARABIC LETTER GAF INITIAL FORM 0xFB95 # ARABIC LETTER GAF MEDIAL FORM 0xFB96 # ARABIC LETTER GUEH ISOLATED FORM 0xFB97 # ARABIC LETTER GUEH FINAL FORM 0xFB98 # ARABIC LETTER GUEH INITIAL FORM 0xFB99 # ARABIC LETTER GUEH MEDIAL FORM 0xFB9A # ARABIC LETTER NGOEH ISOLATED FORM 0xFB9B # ARABIC LETTER NGOEH FINAL FORM 0xFB9C # ARABIC LETTER NGOEH INITIAL FORM 0xFB9D # ARABIC LETTER NGOEH MEDIAL FORM 0xFB9E # ARABIC LETTER NOON GHUNNA ISOLATED FORM 0xFB9F # ARABIC LETTER NOON GHUNNA FINAL FORM 0xFBA0 # ARABIC LETTER RNOON ISOLATED FORM 0xFBA1 # ARABIC LETTER RNOON FINAL FORM 0xFBA2 # ARABIC LETTER RNOON INITIAL FORM 0xFBA3 # ARABIC LETTER RNOON MEDIAL FORM 0xFBA4 # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM 0xFBA5 # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM 0xFBA6 # ARABIC LETTER HEH GOAL ISOLATED FORM 0xFBA7 # ARABIC LETTER HEH GOAL FINAL FORM 0xFBA8 # ARABIC LETTER HEH GOAL INITIAL FORM 0xFBA9 # ARABIC LETTER HEH GOAL MEDIAL FORM 0xFBAA # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM 0xFBAB # ARABIC LETTER HEH DOACHASHMEE FINAL FORM 0xFBAC # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM 0xFBAD # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM 0xFBAE # ARABIC LETTER YEH BARREE ISOLATED FORM 0xFBAF # ARABIC LETTER YEH BARREE FINAL FORM 0xFBB0 # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM 0xFBB1 # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM 0xFBE4 # ARABIC LETTER E ISOLATED FORM 0xFBE5 # ARABIC LETTER E FINAL FORM 0xFBE6 # ARABIC LETTER E INITIAL FORM 0xFBE7 # ARABIC LETTER E MEDIAL FORM 0xFBE8 # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM 0xFBE9 # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM 0xFBFC # ARABIC LETTER FARSI YEH ISOLATED FORM 0xFBFD # ARABIC LETTER FARSI YEH FINAL FORM 0xFBFE # ARABIC LETTER FARSI YEH INITIAL FORM 0xFBFF # ARABIC LETTER FARSI YEH MEDIAL FORM 0xFD3E # ORNATE LEFT PARENTHESIS 0xFD3F # ORNATE RIGHT PARENTHESIS 0xFDF2 # ARABIC LIGATURE ALLAH ISOLATED FORM 0xFDFA # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM 0xFDFC # RIAL SIGN 0xFDFD # ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM 0xFE80 # ARABIC LETTER HAMZA ISOLATED FORM 0xFE81 # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM 0xFE82 # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM 0xFE83 # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM 0xFE84 # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM 0xFE85 # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM 0xFE86 # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM 0xFE87 # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM 0xFE88 # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM 0xFE89 # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM 0xFE8A # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM 0xFE8B # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM 0xFE8C # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM 0xFE8D # ARABIC LETTER ALEF ISOLATED FORM 0xFE8E # ARABIC LETTER ALEF FINAL FORM 0xFE8F # ARABIC LETTER BEH ISOLATED FORM 0xFE90 # ARABIC LETTER BEH FINAL FORM 0xFE91 # ARABIC LETTER BEH INITIAL FORM 0xFE92 # ARABIC LETTER BEH MEDIAL FORM 0xFE93 # ARABIC LETTER TEH MARBUTA ISOLATED FORM 0xFE94 # ARABIC LETTER TEH MARBUTA FINAL FORM 0xFE95 # ARABIC LETTER TEH ISOLATED FORM 0xFE96 # ARABIC LETTER TEH FINAL FORM 0xFE97 # ARABIC LETTER TEH INITIAL FORM 0xFE98 # ARABIC LETTER TEH MEDIAL FORM 0xFE99 # ARABIC LETTER THEH ISOLATED FORM 0xFE9A # ARABIC LETTER THEH FINAL FORM 0xFE9B # ARABIC LETTER THEH INITIAL FORM 0xFE9C # ARABIC LETTER THEH MEDIAL FORM 0xFE9D # ARABIC LETTER JEEM ISOLATED FORM 0xFE9E # ARABIC LETTER JEEM FINAL FORM 0xFE9F # ARABIC LETTER JEEM INITIAL FORM 0xFEA0 # ARABIC LETTER JEEM MEDIAL FORM 0xFEA1 # ARABIC LETTER HAH ISOLATED FORM 0xFEA2 # ARABIC LETTER HAH FINAL FORM 0xFEA3 # ARABIC LETTER HAH INITIAL FORM 0xFEA4 # ARABIC LETTER HAH MEDIAL FORM 0xFEA5 # ARABIC LETTER KHAH ISOLATED FORM 0xFEA6 # ARABIC LETTER KHAH FINAL FORM 0xFEA7 # ARABIC LETTER KHAH INITIAL FORM 0xFEA8 # ARABIC LETTER KHAH MEDIAL FORM 0xFEA9 # ARABIC LETTER DAL ISOLATED FORM 0xFEAA # ARABIC LETTER DAL FINAL FORM 0xFEAB # ARABIC LETTER THAL ISOLATED FORM 0xFEAC # ARABIC LETTER THAL FINAL FORM 0xFEAD # ARABIC LETTER REH ISOLATED FORM 0xFEAE # ARABIC LETTER REH FINAL FORM 0xFEAF # ARABIC LETTER ZAIN ISOLATED FORM 0xFEB0 # ARABIC LETTER ZAIN FINAL FORM 0xFEB1 # ARABIC LETTER SEEN ISOLATED FORM 0xFEB2 # ARABIC LETTER SEEN FINAL FORM 0xFEB3 # ARABIC LETTER SEEN INITIAL FORM 0xFEB4 # ARABIC LETTER SEEN MEDIAL FORM 0xFEB5 # ARABIC LETTER SHEEN ISOLATED FORM 0xFEB6 # ARABIC LETTER SHEEN FINAL FORM 0xFEB7 # ARABIC LETTER SHEEN INITIAL FORM 0xFEB8 # ARABIC LETTER SHEEN MEDIAL FORM 0xFEB9 # ARABIC LETTER SAD ISOLATED FORM 0xFEBA # ARABIC LETTER SAD FINAL FORM 0xFEBB # ARABIC LETTER SAD INITIAL FORM 0xFEBC # ARABIC LETTER SAD MEDIAL FORM 0xFEBD # ARABIC LETTER DAD ISOLATED FORM 0xFEBE # ARABIC LETTER DAD FINAL FORM 0xFEBF # ARABIC LETTER DAD INITIAL FORM 0xFEC0 # ARABIC LETTER DAD MEDIAL FORM 0xFEC1 # ARABIC LETTER TAH ISOLATED FORM 0xFEC2 # ARABIC LETTER TAH FINAL FORM 0xFEC3 # ARABIC LETTER TAH INITIAL FORM 0xFEC4 # ARABIC LETTER TAH MEDIAL FORM 0xFEC5 # ARABIC LETTER ZAH ISOLATED FORM 0xFEC6 # ARABIC LETTER ZAH FINAL FORM 0xFEC7 # ARABIC LETTER ZAH INITIAL FORM 0xFEC8 # ARABIC LETTER ZAH MEDIAL FORM 0xFEC9 # ARABIC LETTER AIN ISOLATED FORM 0xFECA # ARABIC LETTER AIN FINAL FORM 0xFECB # ARABIC LETTER AIN INITIAL FORM 0xFECC # ARABIC LETTER AIN MEDIAL FORM 0xFECD # ARABIC LETTER GHAIN ISOLATED FORM 0xFECE # ARABIC LETTER GHAIN FINAL FORM 0xFECF # ARABIC LETTER GHAIN INITIAL FORM 0xFED0 # ARABIC LETTER GHAIN MEDIAL FORM 0xFED1 # ARABIC LETTER FEH ISOLATED FORM 0xFED2 # ARABIC LETTER FEH FINAL FORM 0xFED3 # ARABIC LETTER FEH INITIAL FORM 0xFED4 # ARABIC LETTER FEH MEDIAL FORM 0xFED5 # ARABIC LETTER QAF ISOLATED FORM 0xFED6 # ARABIC LETTER QAF FINAL FORM 0xFED7 # ARABIC LETTER QAF INITIAL FORM 0xFED8 # ARABIC LETTER QAF MEDIAL FORM 0xFED9 # ARABIC LETTER KAF ISOLATED FORM 0xFEDA # ARABIC LETTER KAF FINAL FORM 0xFEDB # ARABIC LETTER KAF INITIAL FORM 0xFEDC # ARABIC LETTER KAF MEDIAL FORM 0xFEDD # ARABIC LETTER LAM ISOLATED FORM 0xFEDE # ARABIC LETTER LAM FINAL FORM 0xFEDF # ARABIC LETTER LAM INITIAL FORM 0xFEE0 # ARABIC LETTER LAM MEDIAL FORM 0xFEE1 # ARABIC LETTER MEEM ISOLATED FORM 0xFEE2 # ARABIC LETTER MEEM FINAL FORM 0xFEE3 # ARABIC LETTER MEEM INITIAL FORM 0xFEE4 # ARABIC LETTER MEEM MEDIAL FORM 0xFEE5 # ARABIC LETTER NOON ISOLATED FORM 0xFEE6 # ARABIC LETTER NOON FINAL FORM 0xFEE7 # ARABIC LETTER NOON INITIAL FORM 0xFEE8 # ARABIC LETTER NOON MEDIAL FORM 0xFEE9 # ARABIC LETTER HEH ISOLATED FORM 0xFEEA # ARABIC LETTER HEH FINAL FORM 0xFEEB # ARABIC LETTER HEH INITIAL FORM 0xFEEC # ARABIC LETTER HEH MEDIAL FORM 0xFEED # ARABIC LETTER WAW ISOLATED FORM 0xFEEE # ARABIC LETTER WAW FINAL FORM 0xFEEF # ARABIC LETTER ALEF MAKSURA ISOLATED FORM 0xFEF0 # ARABIC LETTER ALEF MAKSURA FINAL FORM 0xFEF1 # ARABIC LETTER YEH ISOLATED FORM 0xFEF2 # ARABIC LETTER YEH FINAL FORM 0xFEF3 # ARABIC LETTER YEH INITIAL FORM 0xFEF4 # ARABIC LETTER YEH MEDIAL FORM 0xFEF5 # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM 0xFEF6 # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM 0xFEF7 # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM 0xFEF8 # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM 0xFEF9 # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM 0xFEFA # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM 0xFEFB # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM 0xFEFC # ARABIC LIGATURE LAM WITH ALEF FINAL FORM Lib/gftools/encodings/armenian_unique-glyphs.nam000066400000000000000000000067621376445505300224220ustar00rootroot000000000000000x0531 Ա ARMENIAN CAPITAL LETTER AYB 0x0532 Բ ARMENIAN CAPITAL LETTER BEN 0x0533 Գ ARMENIAN CAPITAL LETTER GIM 0x0534 Դ ARMENIAN CAPITAL LETTER DA 0x0535 Ե ARMENIAN CAPITAL LETTER ECH 0x0536 Զ ARMENIAN CAPITAL LETTER ZA 0x0537 Է ARMENIAN CAPITAL LETTER EH 0x0538 Ը ARMENIAN CAPITAL LETTER ET 0x0539 Թ ARMENIAN CAPITAL LETTER TO 0x053A Ժ ARMENIAN CAPITAL LETTER ZHE 0x053B Ի ARMENIAN CAPITAL LETTER INI 0x053C Լ ARMENIAN CAPITAL LETTER LIWN 0x053D Խ ARMENIAN CAPITAL LETTER XEH 0x053E Ծ ARMENIAN CAPITAL LETTER CA 0x053F Կ ARMENIAN CAPITAL LETTER KEN 0x0540 Հ ARMENIAN CAPITAL LETTER HO 0x0541 Ձ ARMENIAN CAPITAL LETTER JA 0x0542 Ղ ARMENIAN CAPITAL LETTER GHAD 0x0543 Ճ ARMENIAN CAPITAL LETTER CHEH 0x0544 Մ ARMENIAN CAPITAL LETTER MEN 0x0545 Յ ARMENIAN CAPITAL LETTER YI 0x0546 Ն ARMENIAN CAPITAL LETTER NOW 0x0547 Շ ARMENIAN CAPITAL LETTER SHA 0x0548 Ո ARMENIAN CAPITAL LETTER VO 0x0549 Չ ARMENIAN CAPITAL LETTER CHA 0x054A Պ ARMENIAN CAPITAL LETTER PEH 0x054B Ջ ARMENIAN CAPITAL LETTER JHEH 0x054C Ռ ARMENIAN CAPITAL LETTER RA 0x054D Ս ARMENIAN CAPITAL LETTER SEH 0x054E Վ ARMENIAN CAPITAL LETTER VEW 0x054F Տ ARMENIAN CAPITAL LETTER TIWN 0x0550 Ր ARMENIAN CAPITAL LETTER REH 0x0551 Ց ARMENIAN CAPITAL LETTER CO 0x0552 Ւ ARMENIAN CAPITAL LETTER YIWN 0x0553 Փ ARMENIAN CAPITAL LETTER PIWR 0x0554 Ք ARMENIAN CAPITAL LETTER KEH 0x0555 Օ ARMENIAN CAPITAL LETTER OH 0x0556 Ֆ ARMENIAN CAPITAL LETTER FEH 0x0559 ՙ ARMENIAN MODIFIER LETTER LEFT HALF RING 0x055A ՚ ARMENIAN APOSTROPHE 0x055B ՛ ARMENIAN EMPHASIS MARK 0x055C ՜ ARMENIAN EXCLAMATION MARK 0x055D ՝ ARMENIAN COMMA 0x055E ՞ ARMENIAN QUESTION MARK 0x055F ՟ ARMENIAN ABBREVIATION MARK 0x0561 ա ARMENIAN SMALL LETTER AYB 0x0562 բ ARMENIAN SMALL LETTER BEN 0x0563 գ ARMENIAN SMALL LETTER GIM 0x0564 դ ARMENIAN SMALL LETTER DA 0x0565 ե ARMENIAN SMALL LETTER ECH 0x0566 զ ARMENIAN SMALL LETTER ZA 0x0567 է ARMENIAN SMALL LETTER EH 0x0568 ը ARMENIAN SMALL LETTER ET 0x0569 թ ARMENIAN SMALL LETTER TO 0x056A ժ ARMENIAN SMALL LETTER ZHE 0x056B ի ARMENIAN SMALL LETTER INI 0x056C լ ARMENIAN SMALL LETTER LIWN 0x056D խ ARMENIAN SMALL LETTER XEH 0x056E ծ ARMENIAN SMALL LETTER CA 0x056F կ ARMENIAN SMALL LETTER KEN 0x0570 հ ARMENIAN SMALL LETTER HO 0x0571 ձ ARMENIAN SMALL LETTER JA 0x0572 ղ ARMENIAN SMALL LETTER GHAD 0x0573 ճ ARMENIAN SMALL LETTER CHEH 0x0574 մ ARMENIAN SMALL LETTER MEN 0x0575 յ ARMENIAN SMALL LETTER YI 0x0576 ն ARMENIAN SMALL LETTER NOW 0x0577 շ ARMENIAN SMALL LETTER SHA 0x0578 ո ARMENIAN SMALL LETTER VO 0x0579 չ ARMENIAN SMALL LETTER CHA 0x057A պ ARMENIAN SMALL LETTER PEH 0x057B ջ ARMENIAN SMALL LETTER JHEH 0x057C ռ ARMENIAN SMALL LETTER RA 0x057D ս ARMENIAN SMALL LETTER SEH 0x057E վ ARMENIAN SMALL LETTER VEW 0x057F տ ARMENIAN SMALL LETTER TIWN 0x0580 ր ARMENIAN SMALL LETTER REH 0x0581 ց ARMENIAN SMALL LETTER CO 0x0582 ւ ARMENIAN SMALL LETTER YIWN 0x0583 փ ARMENIAN SMALL LETTER PIWR 0x0584 ք ARMENIAN SMALL LETTER KEH 0x0585 օ ARMENIAN SMALL LETTER OH 0x0586 ֆ ARMENIAN SMALL LETTER FEH 0x0587 և ARMENIAN SMALL LIGATURE ECH YIWN 0x0589 ։ ARMENIAN FULL STOP 0x058A ֊ ARMENIAN HYPHEN 0x058D ֍ RIGHT-FACING ARMENIAN ETERNITY SIGN 0x058E ֎ LEFT-FACING ARMENIAN ETERNITY SIGN 0x058F ֏ ARMENIAN DRAM SIGN 0xFB13 ﬓ ARMENIAN SMALL LIGATURE MEN NOW 0xFB14 ﬔ ARMENIAN SMALL LIGATURE MEN ECH 0xFB15 ﬕ ARMENIAN SMALL LIGATURE MEN INI 0xFB16 ﬖ ARMENIAN SMALL LIGATURE VEW NOW 0xFB17 ﬗ ARMENIAN SMALL LIGATURE MEN XEH Lib/gftools/encodings/bengali_unique-glyphs.nam000066400000000000000000000061531376445505300222230ustar00rootroot000000000000000x0964 । DEVANAGARI DANDA 0x0965 ॥ DEVANAGARI DOUBLE DANDA 0x0981 ঁ BENGALI SIGN CANDRABINDU 0x0982 ং BENGALI SIGN ANUSVARA 0x0983 ঃ BENGALI SIGN VISARGA 0x0985 অ BENGALI LETTER A 0x0986 আ BENGALI LETTER AA 0x0987 ই BENGALI LETTER I 0x0988 ঈ BENGALI LETTER II 0x0989 উ BENGALI LETTER U 0x098A ঊ BENGALI LETTER UU 0x098B ঋ BENGALI LETTER VOCALIC R 0x098C ঌ BENGALI LETTER VOCALIC L 0x098F এ BENGALI LETTER E 0x0990 ঐ BENGALI LETTER AI 0x0993 ও BENGALI LETTER O 0x0994 ঔ BENGALI LETTER AU 0x0995 ক BENGALI LETTER KA 0x0996 খ BENGALI LETTER KHA 0x0997 গ BENGALI LETTER GA 0x0998 ঘ BENGALI LETTER GHA 0x0999 ঙ BENGALI LETTER NGA 0x099A চ BENGALI LETTER CA 0x099B ছ BENGALI LETTER CHA 0x099C জ BENGALI LETTER JA 0x099D ঝ BENGALI LETTER JHA 0x099E ঞ BENGALI LETTER NYA 0x099F ট BENGALI LETTER TTA 0x09A0 ঠ BENGALI LETTER TTHA 0x09A1 ড BENGALI LETTER DDA 0x09A2 ঢ BENGALI LETTER DDHA 0x09A3 ণ BENGALI LETTER NNA 0x09A4 ত BENGALI LETTER TA 0x09A5 থ BENGALI LETTER THA 0x09A6 দ BENGALI LETTER DA 0x09A7 ধ BENGALI LETTER DHA 0x09A8 ন BENGALI LETTER NA 0x09AA প BENGALI LETTER PA 0x09AB ফ BENGALI LETTER PHA 0x09AC ব BENGALI LETTER BA 0x09AD ভ BENGALI LETTER BHA 0x09AE ম BENGALI LETTER MA 0x09AF য BENGALI LETTER YA 0x09B0 র BENGALI LETTER RA 0x09B2 ল BENGALI LETTER LA 0x09B6 শ BENGALI LETTER SHA 0x09B7 ষ BENGALI LETTER SSA 0x09B8 স BENGALI LETTER SA 0x09B9 হ BENGALI LETTER HA 0x09BC ় BENGALI SIGN NUKTA 0x09BD ঽ BENGALI SIGN AVAGRAHA 0x09BE া BENGALI VOWEL SIGN AA 0x09BF ি BENGALI VOWEL SIGN I 0x09C0 ী BENGALI VOWEL SIGN II 0x09C1 ু BENGALI VOWEL SIGN U 0x09C2 ূ BENGALI VOWEL SIGN UU 0x09C3 ৃ BENGALI VOWEL SIGN VOCALIC R 0x09C4 ৄ BENGALI VOWEL SIGN VOCALIC RR 0x09C7 ে BENGALI VOWEL SIGN E 0x09C8 ৈ BENGALI VOWEL SIGN AI 0x09CB ো BENGALI VOWEL SIGN O 0x09CC ৌ BENGALI VOWEL SIGN AU 0x09CD ্ BENGALI SIGN VIRAMA 0x09CE ৎ BENGALI LETTER KHANDA TA 0x09D7 ৗ BENGALI AU LENGTH MARK 0x09DC ড় BENGALI LETTER RRA 0x09DD ঢ় BENGALI LETTER RHA 0x09DF য় BENGALI LETTER YYA 0x09E0 ৠ BENGALI LETTER VOCALIC RR 0x09E1 ৡ BENGALI LETTER VOCALIC LL 0x09E2 ৢ BENGALI VOWEL SIGN VOCALIC L 0x09E3 ৣ BENGALI VOWEL SIGN VOCALIC LL 0x09E6 ০ BENGALI DIGIT ZERO 0x09E7 ১ BENGALI DIGIT ONE 0x09E8 ২ BENGALI DIGIT TWO 0x09E9 ৩ BENGALI DIGIT THREE 0x09EA ৪ BENGALI DIGIT FOUR 0x09EB ৫ BENGALI DIGIT FIVE 0x09EC ৬ BENGALI DIGIT SIX 0x09ED ৭ BENGALI DIGIT SEVEN 0x09EE ৮ BENGALI DIGIT EIGHT 0x09EF ৯ BENGALI DIGIT NINE 0x09F0 ৰ BENGALI LETTER RA WITH MIDDLE DIAGONAL 0x09F1 ৱ BENGALI LETTER RA WITH LOWER DIAGONAL 0x09F2 ৲ BENGALI RUPEE MARK 0x09F3 ৳ BENGALI RUPEE SIGN 0x09F4 ৴ BENGALI CURRENCY NUMERATOR ONE 0x09F5 ৵ BENGALI CURRENCY NUMERATOR TWO 0x09F6 ৶ BENGALI CURRENCY NUMERATOR THREE 0x09F7 ৷ BENGALI CURRENCY NUMERATOR FOUR 0x09F8 ৸ BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR 0x09F9 ৹ BENGALI CURRENCY DENOMINATOR SIXTEEN 0x09FA ৺ BENGALI ISSHAR 0x09FB ৻ BENGALI GANDA MARK 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x200D ‍ ZERO WIDTH JOINER 0x20B9 ₹ 0x25CC ◌ DOTTED CIRCLELib/gftools/encodings/chinese-simplified_unique-glyphs.nam000066400000000000000000011065541376445505300243720ustar00rootroot000000000000000x3000   IDEOGRAPHIC SPACE 0x3001 、 IDEOGRAPHIC COMMA 0x3002 。 IDEOGRAPHIC FULL STOP 0x3003 〃 DITTO MARK 0x3005 々 IDEOGRAPHIC ITERATION MARK 0x3006 〆 IDEOGRAPHIC CLOSING MARK 0x3007 〇 IDEOGRAPHIC NUMBER ZERO 0x3008 〈 LEFT ANGLE BRACKET 0x3009 〉 RIGHT ANGLE BRACKET 0x300A 《 LEFT DOUBLE ANGLE BRACKET 0x300B 》 RIGHT DOUBLE ANGLE BRACKET 0x300C 「 LEFT CORNER BRACKET 0x300D 」 RIGHT CORNER BRACKET 0x300E 『 LEFT WHITE CORNER BRACKET 0x300F 』 RIGHT WHITE CORNER BRACKET 0x3010 【 LEFT BLACK LENTICULAR BRACKET 0x3011 】 RIGHT BLACK LENTICULAR BRACKET 0x3012 〒 POSTAL MARK 0x3013 〓 GETA MARK 0x3014 〔 LEFT TORTOISE SHELL BRACKET 0x3015 〕 RIGHT TORTOISE SHELL BRACKET 0x3016 〖 LEFT WHITE LENTICULAR BRACKET 0x3017 〗 RIGHT WHITE LENTICULAR BRACKET 0x301D 〝 REVERSED DOUBLE PRIME QUOTATION MARK 0x301E 〞 DOUBLE PRIME QUOTATION MARK 0x3041 ぁ HIRAGANA LETTER SMALL A 0x3042 あ HIRAGANA LETTER A 0x3043 ぃ HIRAGANA LETTER SMALL I 0x3044 い HIRAGANA LETTER I 0x3045 ぅ HIRAGANA LETTER SMALL U 0x3046 う HIRAGANA LETTER U 0x3047 ぇ HIRAGANA LETTER SMALL E 0x3048 え HIRAGANA LETTER E 0x3049 ぉ HIRAGANA LETTER SMALL O 0x304A お HIRAGANA LETTER O 0x304B か HIRAGANA LETTER KA 0x304C が HIRAGANA LETTER GA 0x304D き HIRAGANA LETTER KI 0x304E ぎ HIRAGANA LETTER GI 0x304F く HIRAGANA LETTER KU 0x3050 ぐ HIRAGANA LETTER GU 0x3051 け HIRAGANA LETTER KE 0x3052 げ HIRAGANA LETTER GE 0x3053 こ HIRAGANA LETTER KO 0x3054 ご HIRAGANA LETTER GO 0x3055 さ HIRAGANA LETTER SA 0x3056 ざ HIRAGANA LETTER ZA 0x3057 し HIRAGANA LETTER SI 0x3058 じ HIRAGANA LETTER ZI 0x3059 す HIRAGANA LETTER SU 0x305A ず HIRAGANA LETTER ZU 0x305B せ HIRAGANA LETTER SE 0x305C ぜ HIRAGANA LETTER ZE 0x305D そ HIRAGANA LETTER SO 0x305E ぞ HIRAGANA LETTER ZO 0x305F た HIRAGANA LETTER TA 0x3060 だ HIRAGANA LETTER DA 0x3061 ち HIRAGANA LETTER TI 0x3063 っ HIRAGANA LETTER SMALL TU 0x3064 つ HIRAGANA LETTER TU 0x3065 づ HIRAGANA LETTER DU 0x3066 て HIRAGANA LETTER TE 0x3067 で HIRAGANA LETTER DE 0x3068 と HIRAGANA LETTER TO 0x3069 ど HIRAGANA LETTER DO 0x306A な HIRAGANA LETTER NA 0x306B に HIRAGANA LETTER NI 0x306C ぬ HIRAGANA LETTER NU 0x306D ね HIRAGANA LETTER NE 0x306E の HIRAGANA LETTER NO 0x306F は HIRAGANA LETTER HA 0x3070 ば HIRAGANA LETTER BA 0x3071 ぱ HIRAGANA LETTER PA 0x3072 ひ HIRAGANA LETTER HI 0x3073 び HIRAGANA LETTER BI 0x3074 ぴ HIRAGANA LETTER PI 0x3075 ふ HIRAGANA LETTER HU 0x3076 ぶ HIRAGANA LETTER BU 0x3077 ぷ HIRAGANA LETTER PU 0x3078 へ HIRAGANA LETTER HE 0x3079 べ HIRAGANA LETTER BE 0x307A ぺ HIRAGANA LETTER PE 0x307B ほ HIRAGANA LETTER HO 0x307C ぼ HIRAGANA LETTER BO 0x307D ぽ HIRAGANA LETTER PO 0x307E ま HIRAGANA LETTER MA 0x307F み HIRAGANA LETTER MI 0x3080 む HIRAGANA LETTER MU 0x3081 め HIRAGANA LETTER ME 0x3082 も HIRAGANA LETTER MO 0x3083 ゃ HIRAGANA LETTER SMALL YA 0x3084 や HIRAGANA LETTER YA 0x3085 ゅ HIRAGANA LETTER SMALL YU 0x3086 ゆ HIRAGANA LETTER YU 0x3087 ょ HIRAGANA LETTER SMALL YO 0x3088 よ HIRAGANA LETTER YO 0x3089 ら HIRAGANA LETTER RA 0x308A り HIRAGANA LETTER RI 0x308B る HIRAGANA LETTER RU 0x308C れ HIRAGANA LETTER RE 0x308D ろ HIRAGANA LETTER RO 0x308F わ HIRAGANA LETTER WA 0x3092 を HIRAGANA LETTER WO 0x3093 ん HIRAGANA LETTER N 0x309B ゛ KATAKANA-HIRAGANA VOICED SOUND MARK 0x309C ゜ KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK 0x309D ゝ HIRAGANA ITERATION MARK 0x309E ゞ HIRAGANA VOICED ITERATION MARK 0x30A1 ァ KATAKANA LETTER SMALL A 0x30A2 ア KATAKANA LETTER A 0x30A3 ィ KATAKANA LETTER SMALL I 0x30A4 イ KATAKANA LETTER I 0x30A5 ゥ KATAKANA LETTER SMALL U 0x30A6 ウ KATAKANA LETTER U 0x30A7 ェ KATAKANA LETTER SMALL E 0x30A8 エ KATAKANA LETTER E 0x30A9 ォ KATAKANA LETTER SMALL O 0x30AA オ KATAKANA LETTER O 0x30AB カ KATAKANA LETTER KA 0x30AC ガ KATAKANA LETTER GA 0x30AD キ KATAKANA LETTER KI 0x30AE ギ KATAKANA LETTER GI 0x30AF ク KATAKANA LETTER KU 0x30B0 グ KATAKANA LETTER GU 0x30B1 ケ KATAKANA LETTER KE 0x30B2 ゲ KATAKANA LETTER GE 0x30B3 コ KATAKANA LETTER KO 0x30B4 ゴ KATAKANA LETTER GO 0x30B5 サ KATAKANA LETTER SA 0x30B6 ザ KATAKANA LETTER ZA 0x30B7 シ KATAKANA LETTER SI 0x30B8 ジ KATAKANA LETTER ZI 0x30B9 ス KATAKANA LETTER SU 0x30BA ズ KATAKANA LETTER ZU 0x30BB セ KATAKANA LETTER SE 0x30BC ゼ KATAKANA LETTER ZE 0x30BD ソ KATAKANA LETTER SO 0x30BE ゾ KATAKANA LETTER ZO 0x30BF タ KATAKANA LETTER TA 0x30C0 ダ KATAKANA LETTER DA 0x30C1 チ KATAKANA LETTER TI 0x30C3 ッ KATAKANA LETTER SMALL TU 0x30C4 ツ KATAKANA LETTER TU 0x30C6 テ KATAKANA LETTER TE 0x30C7 デ KATAKANA LETTER DE 0x30C8 ト KATAKANA LETTER TO 0x30C9 ド KATAKANA LETTER DO 0x30CA ナ KATAKANA LETTER NA 0x30CB ニ KATAKANA LETTER NI 0x30CC ヌ KATAKANA LETTER NU 0x30CD ネ KATAKANA LETTER NE 0x30CE ノ KATAKANA LETTER NO 0x30CF ハ KATAKANA LETTER HA 0x30D0 バ KATAKANA LETTER BA 0x30D1 パ KATAKANA LETTER PA 0x30D2 ヒ KATAKANA LETTER HI 0x30D3 ビ KATAKANA LETTER BI 0x30D4 ピ KATAKANA LETTER PI 0x30D5 フ KATAKANA LETTER HU 0x30D6 ブ KATAKANA LETTER BU 0x30D7 プ KATAKANA LETTER PU 0x30D8 ヘ KATAKANA LETTER HE 0x30D9 ベ KATAKANA LETTER BE 0x30DA ペ KATAKANA LETTER PE 0x30DB ホ KATAKANA LETTER HO 0x30DC ボ KATAKANA LETTER BO 0x30DD ポ KATAKANA LETTER PO 0x30DE マ KATAKANA LETTER MA 0x30DF ミ KATAKANA LETTER MI 0x30E0 ム KATAKANA LETTER MU 0x30E1 メ KATAKANA LETTER ME 0x30E2 モ KATAKANA LETTER MO 0x30E3 ャ KATAKANA LETTER SMALL YA 0x30E4 ヤ KATAKANA LETTER YA 0x30E5 ュ KATAKANA LETTER SMALL YU 0x30E6 ユ KATAKANA LETTER YU 0x30E7 ョ KATAKANA LETTER SMALL YO 0x30E8 ヨ KATAKANA LETTER YO 0x30E9 ラ KATAKANA LETTER RA 0x30EA リ KATAKANA LETTER RI 0x30EB ル KATAKANA LETTER RU 0x30EC レ KATAKANA LETTER RE 0x30ED ロ KATAKANA LETTER RO 0x30EF ワ KATAKANA LETTER WA 0x30F2 ヲ KATAKANA LETTER WO 0x30F3 ン KATAKANA LETTER N 0x30F4 ヴ KATAKANA LETTER VU 0x30F6 ヶ KATAKANA LETTER SMALL KE 0x30FC ー KATAKANA-HIRAGANA PROLONGED SOUND MARK 0x30FD ヽ KATAKANA ITERATION MARK 0x30FE ヾ KATAKANA VOICED ITERATION MARK 0x3106 ㄆ BOPOMOFO LETTER P 0x3107 ㄇ BOPOMOFO LETTER M 0x3108 ㄈ BOPOMOFO LETTER F 0x3109 ㄉ BOPOMOFO LETTER D 0x310A ㄊ BOPOMOFO LETTER T 0x310B ㄋ BOPOMOFO LETTER N 0x310C ㄌ BOPOMOFO LETTER L 0x310F ㄏ BOPOMOFO LETTER H 0x3110 ㄐ BOPOMOFO LETTER J 0x3111 ㄑ BOPOMOFO LETTER Q 0x3112 ㄒ BOPOMOFO LETTER X 0x3113 ㄓ BOPOMOFO LETTER ZH 0x3116 ㄖ BOPOMOFO LETTER R 0x3118 ㄘ BOPOMOFO LETTER C 0x311A ㄚ BOPOMOFO LETTER A 0x311B ㄛ BOPOMOFO LETTER O 0x311F ㄟ BOPOMOFO LETTER EI 0x3122 ㄢ BOPOMOFO LETTER AN 0x3123 ㄣ BOPOMOFO LETTER EN 0x3124 ㄤ BOPOMOFO LETTER ANG 0x3125 ㄥ BOPOMOFO LETTER ENG 0x3126 ㄦ BOPOMOFO LETTER ER 0x3127 ㄧ BOPOMOFO LETTER I 0x3128 ㄨ BOPOMOFO LETTER U 0x3129 ㄩ BOPOMOFO LETTER IU 0x3220 ㈠ PARENTHESIZED IDEOGRAPH ONE 0x3221 ㈡ PARENTHESIZED IDEOGRAPH TWO 0x3222 ㈢ PARENTHESIZED IDEOGRAPH THREE 0x3223 ㈣ PARENTHESIZED IDEOGRAPH FOUR 0x3224 ㈤ PARENTHESIZED IDEOGRAPH FIVE 0x32A3 ㊣ CIRCLED IDEOGRAPH CORRECT 0x339C ㎜ SQUARE MM 0x339D ㎝ SQUARE CM 0x33A1 ㎡ SQUARE M SQUARED 0x4E00 一 CJK UNIFIED IDEOGRAPH-4E00 0x4E01 丁 CJK UNIFIED IDEOGRAPH-4E01 0x4E03 七 CJK UNIFIED IDEOGRAPH-4E03 0x4E05 丅 CJK UNIFIED IDEOGRAPH-4E05 0x4E07 万 CJK UNIFIED IDEOGRAPH-4E07 0x4E08 丈 CJK UNIFIED IDEOGRAPH-4E08 0x4E09 三 CJK UNIFIED IDEOGRAPH-4E09 0x4E0A 上 CJK UNIFIED IDEOGRAPH-4E0A 0x4E0B 下 CJK UNIFIED IDEOGRAPH-4E0B 0x4E0D 不 CJK UNIFIED IDEOGRAPH-4E0D 0x4E0E 与 CJK UNIFIED IDEOGRAPH-4E0E 0x4E10 丐 CJK UNIFIED IDEOGRAPH-4E10 0x4E11 丑 CJK UNIFIED IDEOGRAPH-4E11 0x4E13 专 CJK UNIFIED IDEOGRAPH-4E13 0x4E14 且 CJK UNIFIED IDEOGRAPH-4E14 0x4E15 丕 CJK UNIFIED IDEOGRAPH-4E15 0x4E16 世 CJK UNIFIED IDEOGRAPH-4E16 0x4E18 丘 CJK UNIFIED IDEOGRAPH-4E18 0x4E19 丙 CJK UNIFIED IDEOGRAPH-4E19 0x4E1A 业 CJK UNIFIED IDEOGRAPH-4E1A 0x4E1B 丛 CJK UNIFIED IDEOGRAPH-4E1B 0x4E1C 东 CJK UNIFIED IDEOGRAPH-4E1C 0x4E1D 丝 CJK UNIFIED IDEOGRAPH-4E1D 0x4E1E 丞 CJK UNIFIED IDEOGRAPH-4E1E 0x4E1F 丟 CJK UNIFIED IDEOGRAPH-4E1F 0x4E21 両 CJK UNIFIED IDEOGRAPH-4E21 0x4E22 丢 CJK UNIFIED IDEOGRAPH-4E22 0x4E24 两 CJK UNIFIED IDEOGRAPH-4E24 0x4E25 严 CJK UNIFIED IDEOGRAPH-4E25 0x4E26 並 CJK UNIFIED IDEOGRAPH-4E26 0x4E27 丧 CJK UNIFIED IDEOGRAPH-4E27 0x4E28 丨 CJK UNIFIED IDEOGRAPH-4E28 0x4E2A 个 CJK UNIFIED IDEOGRAPH-4E2A 0x4E2B 丫 CJK UNIFIED IDEOGRAPH-4E2B 0x4E2D 中 CJK UNIFIED IDEOGRAPH-4E2D 0x4E30 丰 CJK UNIFIED IDEOGRAPH-4E30 0x4E32 串 CJK UNIFIED IDEOGRAPH-4E32 0x4E34 临 CJK UNIFIED IDEOGRAPH-4E34 0x4E36 丶 CJK UNIFIED IDEOGRAPH-4E36 0x4E37 丷 CJK UNIFIED IDEOGRAPH-4E37 0x4E38 丸 CJK UNIFIED IDEOGRAPH-4E38 0x4E39 丹 CJK UNIFIED IDEOGRAPH-4E39 0x4E3A 为 CJK UNIFIED IDEOGRAPH-4E3A 0x4E3B 主 CJK UNIFIED IDEOGRAPH-4E3B 0x4E3C 丼 CJK UNIFIED IDEOGRAPH-4E3C 0x4E3D 丽 CJK UNIFIED IDEOGRAPH-4E3D 0x4E3E 举 CJK UNIFIED IDEOGRAPH-4E3E 0x4E3F 丿 CJK UNIFIED IDEOGRAPH-4E3F 0x4E42 乂 CJK UNIFIED IDEOGRAPH-4E42 0x4E43 乃 CJK UNIFIED IDEOGRAPH-4E43 0x4E44 乄 CJK UNIFIED IDEOGRAPH-4E44 0x4E45 久 CJK UNIFIED IDEOGRAPH-4E45 0x4E48 么 CJK UNIFIED IDEOGRAPH-4E48 0x4E49 义 CJK UNIFIED IDEOGRAPH-4E49 0x4E4B 之 CJK UNIFIED IDEOGRAPH-4E4B 0x4E4C 乌 CJK UNIFIED IDEOGRAPH-4E4C 0x4E4D 乍 CJK UNIFIED IDEOGRAPH-4E4D 0x4E4E 乎 CJK UNIFIED IDEOGRAPH-4E4E 0x4E4F 乏 CJK UNIFIED IDEOGRAPH-4E4F 0x4E50 乐 CJK UNIFIED IDEOGRAPH-4E50 0x4E52 乒 CJK UNIFIED IDEOGRAPH-4E52 0x4E53 乓 CJK UNIFIED IDEOGRAPH-4E53 0x4E54 乔 CJK UNIFIED IDEOGRAPH-4E54 0x4E56 乖 CJK UNIFIED IDEOGRAPH-4E56 0x4E57 乗 CJK UNIFIED IDEOGRAPH-4E57 0x4E58 乘 CJK UNIFIED IDEOGRAPH-4E58 0x4E59 乙 CJK UNIFIED IDEOGRAPH-4E59 0x4E5C 乜 CJK UNIFIED IDEOGRAPH-4E5C 0x4E5D 九 CJK UNIFIED IDEOGRAPH-4E5D 0x4E5E 乞 CJK UNIFIED IDEOGRAPH-4E5E 0x4E5F 也 CJK UNIFIED IDEOGRAPH-4E5F 0x4E60 习 CJK UNIFIED IDEOGRAPH-4E60 0x4E61 乡 CJK UNIFIED IDEOGRAPH-4E61 0x4E66 书 CJK UNIFIED IDEOGRAPH-4E66 0x4E69 乩 CJK UNIFIED IDEOGRAPH-4E69 0x4E70 买 CJK UNIFIED IDEOGRAPH-4E70 0x4E71 乱 CJK UNIFIED IDEOGRAPH-4E71 0x4E73 乳 CJK UNIFIED IDEOGRAPH-4E73 0x4E7E 乾 CJK UNIFIED IDEOGRAPH-4E7E 0x4E82 亂 CJK UNIFIED IDEOGRAPH-4E82 0x4E85 亅 CJK UNIFIED IDEOGRAPH-4E85 0x4E86 了 CJK UNIFIED IDEOGRAPH-4E86 0x4E88 予 CJK UNIFIED IDEOGRAPH-4E88 0x4E89 争 CJK UNIFIED IDEOGRAPH-4E89 0x4E8B 事 CJK UNIFIED IDEOGRAPH-4E8B 0x4E8C 二 CJK UNIFIED IDEOGRAPH-4E8C 0x4E8D 亍 CJK UNIFIED IDEOGRAPH-4E8D 0x4E8E 于 CJK UNIFIED IDEOGRAPH-4E8E 0x4E8F 亏 CJK UNIFIED IDEOGRAPH-4E8F 0x4E91 云 CJK UNIFIED IDEOGRAPH-4E91 0x4E92 互 CJK UNIFIED IDEOGRAPH-4E92 0x4E93 亓 CJK UNIFIED IDEOGRAPH-4E93 0x4E94 五 CJK UNIFIED IDEOGRAPH-4E94 0x4E95 井 CJK UNIFIED IDEOGRAPH-4E95 0x4E98 亘 CJK UNIFIED IDEOGRAPH-4E98 0x4E9A 亚 CJK UNIFIED IDEOGRAPH-4E9A 0x4E9B 些 CJK UNIFIED IDEOGRAPH-4E9B 0x4E9C 亜 CJK UNIFIED IDEOGRAPH-4E9C 0x4E9E 亞 CJK UNIFIED IDEOGRAPH-4E9E 0x4E9F 亟 CJK UNIFIED IDEOGRAPH-4E9F 0x4EA1 亡 CJK UNIFIED IDEOGRAPH-4EA1 0x4EA2 亢 CJK UNIFIED IDEOGRAPH-4EA2 0x4EA4 交 CJK UNIFIED IDEOGRAPH-4EA4 0x4EA5 亥 CJK UNIFIED IDEOGRAPH-4EA5 0x4EA6 亦 CJK UNIFIED IDEOGRAPH-4EA6 0x4EA7 产 CJK UNIFIED IDEOGRAPH-4EA7 0x4EA8 亨 CJK UNIFIED IDEOGRAPH-4EA8 0x4EA9 亩 CJK UNIFIED IDEOGRAPH-4EA9 0x4EAB 享 CJK UNIFIED IDEOGRAPH-4EAB 0x4EAC 京 CJK UNIFIED IDEOGRAPH-4EAC 0x4EAD 亭 CJK UNIFIED IDEOGRAPH-4EAD 0x4EAE 亮 CJK UNIFIED IDEOGRAPH-4EAE 0x4EB2 亲 CJK UNIFIED IDEOGRAPH-4EB2 0x4EB3 亳 CJK UNIFIED IDEOGRAPH-4EB3 0x4EB5 亵 CJK UNIFIED IDEOGRAPH-4EB5 0x4EBA 人 CJK UNIFIED IDEOGRAPH-4EBA 0x4EBB 亻 CJK UNIFIED IDEOGRAPH-4EBB 0x4EBE 亾 CJK UNIFIED IDEOGRAPH-4EBE 0x4EBF 亿 CJK UNIFIED IDEOGRAPH-4EBF 0x4EC0 什 CJK UNIFIED IDEOGRAPH-4EC0 0x4EC1 仁 CJK UNIFIED IDEOGRAPH-4EC1 0x4EC3 仃 CJK UNIFIED IDEOGRAPH-4EC3 0x4EC4 仄 CJK UNIFIED IDEOGRAPH-4EC4 0x4EC5 仅 CJK UNIFIED IDEOGRAPH-4EC5 0x4EC6 仆 CJK UNIFIED IDEOGRAPH-4EC6 0x4EC7 仇 CJK UNIFIED IDEOGRAPH-4EC7 0x4ECA 今 CJK UNIFIED IDEOGRAPH-4ECA 0x4ECB 介 CJK UNIFIED IDEOGRAPH-4ECB 0x4ECD 仍 CJK UNIFIED IDEOGRAPH-4ECD 0x4ECE 从 CJK UNIFIED IDEOGRAPH-4ECE 0x4ED1 仑 CJK UNIFIED IDEOGRAPH-4ED1 0x4ED3 仓 CJK UNIFIED IDEOGRAPH-4ED3 0x4ED4 仔 CJK UNIFIED IDEOGRAPH-4ED4 0x4ED5 仕 CJK UNIFIED IDEOGRAPH-4ED5 0x4ED6 他 CJK UNIFIED IDEOGRAPH-4ED6 0x4ED7 仗 CJK UNIFIED IDEOGRAPH-4ED7 0x4ED8 付 CJK UNIFIED IDEOGRAPH-4ED8 0x4ED9 仙 CJK UNIFIED IDEOGRAPH-4ED9 0x4EDD 仝 CJK UNIFIED IDEOGRAPH-4EDD 0x4EDE 仞 CJK UNIFIED IDEOGRAPH-4EDE 0x4EDF 仟 CJK UNIFIED IDEOGRAPH-4EDF 0x4EE1 仡 CJK UNIFIED IDEOGRAPH-4EE1 0x4EE3 代 CJK UNIFIED IDEOGRAPH-4EE3 0x4EE4 令 CJK UNIFIED IDEOGRAPH-4EE4 0x4EE5 以 CJK UNIFIED IDEOGRAPH-4EE5 0x4EE8 仨 CJK UNIFIED IDEOGRAPH-4EE8 0x4EEA 仪 CJK UNIFIED IDEOGRAPH-4EEA 0x4EEC 们 CJK UNIFIED IDEOGRAPH-4EEC 0x4EEE 仮 CJK UNIFIED IDEOGRAPH-4EEE 0x4EF0 仰 CJK UNIFIED IDEOGRAPH-4EF0 0x4EF2 仲 CJK UNIFIED IDEOGRAPH-4EF2 0x4EF5 仵 CJK UNIFIED IDEOGRAPH-4EF5 0x4EF6 件 CJK UNIFIED IDEOGRAPH-4EF6 0x4EF7 价 CJK UNIFIED IDEOGRAPH-4EF7 0x4EFB 任 CJK UNIFIED IDEOGRAPH-4EFB 0x4EFD 份 CJK UNIFIED IDEOGRAPH-4EFD 0x4EFF 仿 CJK UNIFIED IDEOGRAPH-4EFF 0x4F01 企 CJK UNIFIED IDEOGRAPH-4F01 0x4F05 伅 CJK UNIFIED IDEOGRAPH-4F05 0x4F09 伉 CJK UNIFIED IDEOGRAPH-4F09 0x4F0A 伊 CJK UNIFIED IDEOGRAPH-4F0A 0x4F0D 伍 CJK UNIFIED IDEOGRAPH-4F0D 0x4F0E 伎 CJK UNIFIED IDEOGRAPH-4F0E 0x4F0F 伏 CJK UNIFIED IDEOGRAPH-4F0F 0x4F10 伐 CJK UNIFIED IDEOGRAPH-4F10 0x4F11 休 CJK UNIFIED IDEOGRAPH-4F11 0x4F17 众 CJK UNIFIED IDEOGRAPH-4F17 0x4F18 优 CJK UNIFIED IDEOGRAPH-4F18 0x4F19 伙 CJK UNIFIED IDEOGRAPH-4F19 0x4F1A 会 CJK UNIFIED IDEOGRAPH-4F1A 0x4F1D 伝 CJK UNIFIED IDEOGRAPH-4F1D 0x4F1E 伞 CJK UNIFIED IDEOGRAPH-4F1E 0x4F1F 伟 CJK UNIFIED IDEOGRAPH-4F1F 0x4F20 传 CJK UNIFIED IDEOGRAPH-4F20 0x4F22 伢 CJK UNIFIED IDEOGRAPH-4F22 0x4F24 伤 CJK UNIFIED IDEOGRAPH-4F24 0x4F26 伦 CJK UNIFIED IDEOGRAPH-4F26 0x4F27 伧 CJK UNIFIED IDEOGRAPH-4F27 0x4F2A 伪 CJK UNIFIED IDEOGRAPH-4F2A 0x4F2B 伫 CJK UNIFIED IDEOGRAPH-4F2B 0x4F2D 伭 CJK UNIFIED IDEOGRAPH-4F2D 0x4F2F 伯 CJK UNIFIED IDEOGRAPH-4F2F 0x4F30 估 CJK UNIFIED IDEOGRAPH-4F30 0x4F31 伱 CJK UNIFIED IDEOGRAPH-4F31 0x4F34 伴 CJK UNIFIED IDEOGRAPH-4F34 0x4F36 伶 CJK UNIFIED IDEOGRAPH-4F36 0x4F38 伸 CJK UNIFIED IDEOGRAPH-4F38 0x4F3A 伺 CJK UNIFIED IDEOGRAPH-4F3A 0x4F3C 似 CJK UNIFIED IDEOGRAPH-4F3C 0x4F3D 伽 CJK UNIFIED IDEOGRAPH-4F3D 0x4F43 佃 CJK UNIFIED IDEOGRAPH-4F43 0x4F46 但 CJK UNIFIED IDEOGRAPH-4F46 0x4F48 佈 CJK UNIFIED IDEOGRAPH-4F48 0x4F4D 位 CJK UNIFIED IDEOGRAPH-4F4D 0x4F4E 低 CJK UNIFIED IDEOGRAPH-4F4E 0x4F4F 住 CJK UNIFIED IDEOGRAPH-4F4F 0x4F50 佐 CJK UNIFIED IDEOGRAPH-4F50 0x4F51 佑 CJK UNIFIED IDEOGRAPH-4F51 0x4F53 体 CJK UNIFIED IDEOGRAPH-4F53 0x4F54 佔 CJK UNIFIED IDEOGRAPH-4F54 0x4F55 何 CJK UNIFIED IDEOGRAPH-4F55 0x4F57 佗 CJK UNIFIED IDEOGRAPH-4F57 0x4F58 佘 CJK UNIFIED IDEOGRAPH-4F58 0x4F59 余 CJK UNIFIED IDEOGRAPH-4F59 0x4F5A 佚 CJK UNIFIED IDEOGRAPH-4F5A 0x4F5B 佛 CJK UNIFIED IDEOGRAPH-4F5B 0x4F5C 作 CJK UNIFIED IDEOGRAPH-4F5C 0x4F5D 佝 CJK UNIFIED IDEOGRAPH-4F5D 0x4F5E 佞 CJK UNIFIED IDEOGRAPH-4F5E 0x4F5F 佟 CJK UNIFIED IDEOGRAPH-4F5F 0x4F60 你 CJK UNIFIED IDEOGRAPH-4F60 0x4F62 佢 CJK UNIFIED IDEOGRAPH-4F62 0x4F63 佣 CJK UNIFIED IDEOGRAPH-4F63 0x4F64 佤 CJK UNIFIED IDEOGRAPH-4F64 0x4F65 佥 CJK UNIFIED IDEOGRAPH-4F65 0x4F69 佩 CJK UNIFIED IDEOGRAPH-4F69 0x4F6C 佬 CJK UNIFIED IDEOGRAPH-4F6C 0x4F6F 佯 CJK UNIFIED IDEOGRAPH-4F6F 0x4F70 佰 CJK UNIFIED IDEOGRAPH-4F70 0x4F73 佳 CJK UNIFIED IDEOGRAPH-4F73 0x4F75 併 CJK UNIFIED IDEOGRAPH-4F75 0x4F76 佶 CJK UNIFIED IDEOGRAPH-4F76 0x4F77 佷 CJK UNIFIED IDEOGRAPH-4F77 0x4F78 佸 CJK UNIFIED IDEOGRAPH-4F78 0x4F79 佹 CJK UNIFIED IDEOGRAPH-4F79 0x4F7A 佺 CJK UNIFIED IDEOGRAPH-4F7A 0x4F7B 佻 CJK UNIFIED IDEOGRAPH-4F7B 0x4F7C 佼 CJK UNIFIED IDEOGRAPH-4F7C 0x4F7D 佽 CJK UNIFIED IDEOGRAPH-4F7D 0x4F7F 使 CJK UNIFIED IDEOGRAPH-4F7F 0x4F80 侀 CJK UNIFIED IDEOGRAPH-4F80 0x4F83 侃 CJK UNIFIED IDEOGRAPH-4F83 0x4F84 侄 CJK UNIFIED IDEOGRAPH-4F84 0x4F86 來 CJK UNIFIED IDEOGRAPH-4F86 0x4F88 侈 CJK UNIFIED IDEOGRAPH-4F88 0x4F8B 例 CJK UNIFIED IDEOGRAPH-4F8B 0x4F8D 侍 CJK UNIFIED IDEOGRAPH-4F8D 0x4F8F 侏 CJK UNIFIED IDEOGRAPH-4F8F 0x4F91 侑 CJK UNIFIED IDEOGRAPH-4F91 0x4F97 侗 CJK UNIFIED IDEOGRAPH-4F97 0x4F9B 供 CJK UNIFIED IDEOGRAPH-4F9B 0x4F9D 依 CJK UNIFIED IDEOGRAPH-4F9D 0x4FA0 侠 CJK UNIFIED IDEOGRAPH-4FA0 0x4FA1 価 CJK UNIFIED IDEOGRAPH-4FA1 0x4FA3 侣 CJK UNIFIED IDEOGRAPH-4FA3 0x4FA5 侥 CJK UNIFIED IDEOGRAPH-4FA5 0x4FA6 侦 CJK UNIFIED IDEOGRAPH-4FA6 0x4FA7 侧 CJK UNIFIED IDEOGRAPH-4FA7 0x4FA8 侨 CJK UNIFIED IDEOGRAPH-4FA8 0x4FA9 侩 CJK UNIFIED IDEOGRAPH-4FA9 0x4FAA 侪 CJK UNIFIED IDEOGRAPH-4FAA 0x4FAC 侬 CJK UNIFIED IDEOGRAPH-4FAC 0x4FAE 侮 CJK UNIFIED IDEOGRAPH-4FAE 0x4FAF 侯 CJK UNIFIED IDEOGRAPH-4FAF 0x4FB5 侵 CJK UNIFIED IDEOGRAPH-4FB5 0x4FB6 侶 CJK UNIFIED IDEOGRAPH-4FB6 0x4FBF 便 CJK UNIFIED IDEOGRAPH-4FBF 0x4FC2 係 CJK UNIFIED IDEOGRAPH-4FC2 0x4FC3 促 CJK UNIFIED IDEOGRAPH-4FC3 0x4FC4 俄 CJK UNIFIED IDEOGRAPH-4FC4 0x4FC5 俅 CJK UNIFIED IDEOGRAPH-4FC5 0x4FCA 俊 CJK UNIFIED IDEOGRAPH-4FCA 0x4FCE 俎 CJK UNIFIED IDEOGRAPH-4FCE 0x4FCF 俏 CJK UNIFIED IDEOGRAPH-4FCF 0x4FD0 俐 CJK UNIFIED IDEOGRAPH-4FD0 0x4FD1 俑 CJK UNIFIED IDEOGRAPH-4FD1 0x4FD7 俗 CJK UNIFIED IDEOGRAPH-4FD7 0x4FD8 俘 CJK UNIFIED IDEOGRAPH-4FD8 0x4FDA 俚 CJK UNIFIED IDEOGRAPH-4FDA 0x4FDD 保 CJK UNIFIED IDEOGRAPH-4FDD 0x4FDE 俞 CJK UNIFIED IDEOGRAPH-4FDE 0x4FDF 俟 CJK UNIFIED IDEOGRAPH-4FDF 0x4FE0 俠 CJK UNIFIED IDEOGRAPH-4FE0 0x4FE1 信 CJK UNIFIED IDEOGRAPH-4FE1 0x4FE3 俣 CJK UNIFIED IDEOGRAPH-4FE3 0x4FE6 俦 CJK UNIFIED IDEOGRAPH-4FE6 0x4FE8 俨 CJK UNIFIED IDEOGRAPH-4FE8 0x4FE9 俩 CJK UNIFIED IDEOGRAPH-4FE9 0x4FEA 俪 CJK UNIFIED IDEOGRAPH-4FEA 0x4FEC 俬 CJK UNIFIED IDEOGRAPH-4FEC 0x4FED 俭 CJK UNIFIED IDEOGRAPH-4FED 0x4FEE 修 CJK UNIFIED IDEOGRAPH-4FEE 0x4FEF 俯 CJK UNIFIED IDEOGRAPH-4FEF 0x4FF1 俱 CJK UNIFIED IDEOGRAPH-4FF1 0x4FF3 俳 CJK UNIFIED IDEOGRAPH-4FF3 0x4FF6 俶 CJK UNIFIED IDEOGRAPH-4FF6 0x4FF8 俸 CJK UNIFIED IDEOGRAPH-4FF8 0x4FFA 俺 CJK UNIFIED IDEOGRAPH-4FFA 0x4FFE 俾 CJK UNIFIED IDEOGRAPH-4FFE 0x5006 倆 CJK UNIFIED IDEOGRAPH-5006 0x5009 倉 CJK UNIFIED IDEOGRAPH-5009 0x500B 個 CJK UNIFIED IDEOGRAPH-500B 0x500C 倌 CJK UNIFIED IDEOGRAPH-500C 0x500D 倍 CJK UNIFIED IDEOGRAPH-500D 0x500F 倏 CJK UNIFIED IDEOGRAPH-500F 0x5011 們 CJK UNIFIED IDEOGRAPH-5011 0x5012 倒 CJK UNIFIED IDEOGRAPH-5012 0x5014 倔 CJK UNIFIED IDEOGRAPH-5014 0x5016 倖 CJK UNIFIED IDEOGRAPH-5016 0x5018 倘 CJK UNIFIED IDEOGRAPH-5018 0x5019 候 CJK UNIFIED IDEOGRAPH-5019 0x501A 倚 CJK UNIFIED IDEOGRAPH-501A 0x501C 倜 CJK UNIFIED IDEOGRAPH-501C 0x501F 借 CJK UNIFIED IDEOGRAPH-501F 0x5021 倡 CJK UNIFIED IDEOGRAPH-5021 0x5024 値 CJK UNIFIED IDEOGRAPH-5024 0x5026 倦 CJK UNIFIED IDEOGRAPH-5026 0x5028 倨 CJK UNIFIED IDEOGRAPH-5028 0x5029 倩 CJK UNIFIED IDEOGRAPH-5029 0x502A 倪 CJK UNIFIED IDEOGRAPH-502A 0x502B 倫 CJK UNIFIED IDEOGRAPH-502B 0x502C 倬 CJK UNIFIED IDEOGRAPH-502C 0x502D 倭 CJK UNIFIED IDEOGRAPH-502D 0x502E 倮 CJK UNIFIED IDEOGRAPH-502E 0x5036 倶 CJK UNIFIED IDEOGRAPH-5036 0x503A 债 CJK UNIFIED IDEOGRAPH-503A 0x503C 值 CJK UNIFIED IDEOGRAPH-503C 0x503E 倾 CJK UNIFIED IDEOGRAPH-503E 0x5043 偃 CJK UNIFIED IDEOGRAPH-5043 0x5047 假 CJK UNIFIED IDEOGRAPH-5047 0x5048 偈 CJK UNIFIED IDEOGRAPH-5048 0x5049 偉 CJK UNIFIED IDEOGRAPH-5049 0x504C 偌 CJK UNIFIED IDEOGRAPH-504C 0x504E 偎 CJK UNIFIED IDEOGRAPH-504E 0x504F 偏 CJK UNIFIED IDEOGRAPH-504F 0x5055 偕 CJK UNIFIED IDEOGRAPH-5055 0x505A 做 CJK UNIFIED IDEOGRAPH-505A 0x505C 停 CJK UNIFIED IDEOGRAPH-505C 0x5065 健 CJK UNIFIED IDEOGRAPH-5065 0x5072 偲 CJK UNIFIED IDEOGRAPH-5072 0x5074 側 CJK UNIFIED IDEOGRAPH-5074 0x5075 偵 CJK UNIFIED IDEOGRAPH-5075 0x5076 偶 CJK UNIFIED IDEOGRAPH-5076 0x5077 偷 CJK UNIFIED IDEOGRAPH-5077 0x5078 偸 CJK UNIFIED IDEOGRAPH-5078 0x507B 偻 CJK UNIFIED IDEOGRAPH-507B 0x507D 偽 CJK UNIFIED IDEOGRAPH-507D 0x507F 偿 CJK UNIFIED IDEOGRAPH-507F 0x5080 傀 CJK UNIFIED IDEOGRAPH-5080 0x5085 傅 CJK UNIFIED IDEOGRAPH-5085 0x5088 傈 CJK UNIFIED IDEOGRAPH-5088 0x508D 傍 CJK UNIFIED IDEOGRAPH-508D 0x5091 傑 CJK UNIFIED IDEOGRAPH-5091 0x5098 傘 CJK UNIFIED IDEOGRAPH-5098 0x5099 備 CJK UNIFIED IDEOGRAPH-5099 0x509A 傚 CJK UNIFIED IDEOGRAPH-509A 0x509B 傛 CJK UNIFIED IDEOGRAPH-509B 0x509C 傜 CJK UNIFIED IDEOGRAPH-509C 0x509D 傝 CJK UNIFIED IDEOGRAPH-509D 0x50A2 傢 CJK UNIFIED IDEOGRAPH-50A2 0x50A3 傣 CJK UNIFIED IDEOGRAPH-50A3 0x50A5 傥 CJK UNIFIED IDEOGRAPH-50A5 0x50A8 储 CJK UNIFIED IDEOGRAPH-50A8 0x50A9 傩 CJK UNIFIED IDEOGRAPH-50A9 0x50AC 催 CJK UNIFIED IDEOGRAPH-50AC 0x50B2 傲 CJK UNIFIED IDEOGRAPH-50B2 0x50B3 傳 CJK UNIFIED IDEOGRAPH-50B3 0x50B5 債 CJK UNIFIED IDEOGRAPH-50B5 0x50B7 傷 CJK UNIFIED IDEOGRAPH-50B7 0x50BB 傻 CJK UNIFIED IDEOGRAPH-50BB 0x50BE 傾 CJK UNIFIED IDEOGRAPH-50BE 0x50C5 僅 CJK UNIFIED IDEOGRAPH-50C5 0x50CD 働 CJK UNIFIED IDEOGRAPH-50CD 0x50CF 像 CJK UNIFIED IDEOGRAPH-50CF 0x50D5 僕 CJK UNIFIED IDEOGRAPH-50D5 0x50D6 僖 CJK UNIFIED IDEOGRAPH-50D6 0x50DA 僚 CJK UNIFIED IDEOGRAPH-50DA 0x50E7 僧 CJK UNIFIED IDEOGRAPH-50E7 0x50ED 僭 CJK UNIFIED IDEOGRAPH-50ED 0x50EE 僮 CJK UNIFIED IDEOGRAPH-50EE 0x50F3 僳 CJK UNIFIED IDEOGRAPH-50F3 0x50F5 僵 CJK UNIFIED IDEOGRAPH-50F5 0x50F9 價 CJK UNIFIED IDEOGRAPH-50F9 0x50FB 僻 CJK UNIFIED IDEOGRAPH-50FB 0x50FE 僾 CJK UNIFIED IDEOGRAPH-50FE 0x5100 儀 CJK UNIFIED IDEOGRAPH-5100 0x5104 億 CJK UNIFIED IDEOGRAPH-5104 0x5106 儆 CJK UNIFIED IDEOGRAPH-5106 0x510B 儋 CJK UNIFIED IDEOGRAPH-510B 0x510F 儏 CJK UNIFIED IDEOGRAPH-510F 0x5112 儒 CJK UNIFIED IDEOGRAPH-5112 0x5118 儘 CJK UNIFIED IDEOGRAPH-5118 0x511F 償 CJK UNIFIED IDEOGRAPH-511F 0x5121 儡 CJK UNIFIED IDEOGRAPH-5121 0x512A 優 CJK UNIFIED IDEOGRAPH-512A 0x5132 儲 CJK UNIFIED IDEOGRAPH-5132 0x5134 儴 CJK UNIFIED IDEOGRAPH-5134 0x513F 儿 CJK UNIFIED IDEOGRAPH-513F 0x5140 兀 CJK UNIFIED IDEOGRAPH-5140 0x5141 允 CJK UNIFIED IDEOGRAPH-5141 0x5143 元 CJK UNIFIED IDEOGRAPH-5143 0x5144 兄 CJK UNIFIED IDEOGRAPH-5144 0x5145 充 CJK UNIFIED IDEOGRAPH-5145 0x5146 兆 CJK UNIFIED IDEOGRAPH-5146 0x5147 兇 CJK UNIFIED IDEOGRAPH-5147 0x5148 先 CJK UNIFIED IDEOGRAPH-5148 0x5149 光 CJK UNIFIED IDEOGRAPH-5149 0x514B 克 CJK UNIFIED IDEOGRAPH-514B 0x514C 兌 CJK UNIFIED IDEOGRAPH-514C 0x514D 免 CJK UNIFIED IDEOGRAPH-514D 0x514E 兎 CJK UNIFIED IDEOGRAPH-514E 0x5150 児 CJK UNIFIED IDEOGRAPH-5150 0x5151 兑 CJK UNIFIED IDEOGRAPH-5151 0x5152 兒 CJK UNIFIED IDEOGRAPH-5152 0x5154 兔 CJK UNIFIED IDEOGRAPH-5154 0x5156 兖 CJK UNIFIED IDEOGRAPH-5156 0x5158 兘 CJK UNIFIED IDEOGRAPH-5158 0x515A 党 CJK UNIFIED IDEOGRAPH-515A 0x515C 兜 CJK UNIFIED IDEOGRAPH-515C 0x5162 兢 CJK UNIFIED IDEOGRAPH-5162 0x5165 入 CJK UNIFIED IDEOGRAPH-5165 0x5167 內 CJK UNIFIED IDEOGRAPH-5167 0x5168 全 CJK UNIFIED IDEOGRAPH-5168 0x5169 兩 CJK UNIFIED IDEOGRAPH-5169 0x516B 八 CJK UNIFIED IDEOGRAPH-516B 0x516C 公 CJK UNIFIED IDEOGRAPH-516C 0x516D 六 CJK UNIFIED IDEOGRAPH-516D 0x516E 兮 CJK UNIFIED IDEOGRAPH-516E 0x5170 兰 CJK UNIFIED IDEOGRAPH-5170 0x5171 共 CJK UNIFIED IDEOGRAPH-5171 0x5172 兲 CJK UNIFIED IDEOGRAPH-5172 0x5173 关 CJK UNIFIED IDEOGRAPH-5173 0x5174 兴 CJK UNIFIED IDEOGRAPH-5174 0x5175 兵 CJK UNIFIED IDEOGRAPH-5175 0x5176 其 CJK UNIFIED IDEOGRAPH-5176 0x5177 具 CJK UNIFIED IDEOGRAPH-5177 0x5178 典 CJK UNIFIED IDEOGRAPH-5178 0x5179 兹 CJK UNIFIED IDEOGRAPH-5179 0x517B 养 CJK UNIFIED IDEOGRAPH-517B 0x517C 兼 CJK UNIFIED IDEOGRAPH-517C 0x517D 兽 CJK UNIFIED IDEOGRAPH-517D 0x5180 冀 CJK UNIFIED IDEOGRAPH-5180 0x5185 内 CJK UNIFIED IDEOGRAPH-5185 0x5186 円 CJK UNIFIED IDEOGRAPH-5186 0x5187 冇 CJK UNIFIED IDEOGRAPH-5187 0x5188 冈 CJK UNIFIED IDEOGRAPH-5188 0x5189 冉 CJK UNIFIED IDEOGRAPH-5189 0x518A 冊 CJK UNIFIED IDEOGRAPH-518A 0x518C 册 CJK UNIFIED IDEOGRAPH-518C 0x518D 再 CJK UNIFIED IDEOGRAPH-518D 0x5192 冒 CJK UNIFIED IDEOGRAPH-5192 0x5195 冕 CJK UNIFIED IDEOGRAPH-5195 0x5197 冗 CJK UNIFIED IDEOGRAPH-5197 0x5199 写 CJK UNIFIED IDEOGRAPH-5199 0x519B 军 CJK UNIFIED IDEOGRAPH-519B 0x519C 农 CJK UNIFIED IDEOGRAPH-519C 0x51A0 冠 CJK UNIFIED IDEOGRAPH-51A0 0x51A2 冢 CJK UNIFIED IDEOGRAPH-51A2 0x51A4 冤 CJK UNIFIED IDEOGRAPH-51A4 0x51A5 冥 CJK UNIFIED IDEOGRAPH-51A5 0x51A7 冧 CJK UNIFIED IDEOGRAPH-51A7 0x51A8 冨 CJK UNIFIED IDEOGRAPH-51A8 0x51A9 冩 CJK UNIFIED IDEOGRAPH-51A9 0x51AA 冪 CJK UNIFIED IDEOGRAPH-51AA 0x51AB 冫 CJK UNIFIED IDEOGRAPH-51AB 0x51AC 冬 CJK UNIFIED IDEOGRAPH-51AC 0x51AF 冯 CJK UNIFIED IDEOGRAPH-51AF 0x51B0 冰 CJK UNIFIED IDEOGRAPH-51B0 0x51B2 冲 CJK UNIFIED IDEOGRAPH-51B2 0x51B3 决 CJK UNIFIED IDEOGRAPH-51B3 0x51B4 冴 CJK UNIFIED IDEOGRAPH-51B4 0x51B5 况 CJK UNIFIED IDEOGRAPH-51B5 0x51B6 冶 CJK UNIFIED IDEOGRAPH-51B6 0x51B7 冷 CJK UNIFIED IDEOGRAPH-51B7 0x51BB 冻 CJK UNIFIED IDEOGRAPH-51BB 0x51BC 冼 CJK UNIFIED IDEOGRAPH-51BC 0x51BD 冽 CJK UNIFIED IDEOGRAPH-51BD 0x51C0 净 CJK UNIFIED IDEOGRAPH-51C0 0x51C4 凄 CJK UNIFIED IDEOGRAPH-51C4 0x51C6 准 CJK UNIFIED IDEOGRAPH-51C6 0x51C7 凇 CJK UNIFIED IDEOGRAPH-51C7 0x51C9 凉 CJK UNIFIED IDEOGRAPH-51C9 0x51CB 凋 CJK UNIFIED IDEOGRAPH-51CB 0x51CC 凌 CJK UNIFIED IDEOGRAPH-51CC 0x51CD 凍 CJK UNIFIED IDEOGRAPH-51CD 0x51CF 减 CJK UNIFIED IDEOGRAPH-51CF 0x51D1 凑 CJK UNIFIED IDEOGRAPH-51D1 0x51DB 凛 CJK UNIFIED IDEOGRAPH-51DB 0x51DC 凜 CJK UNIFIED IDEOGRAPH-51DC 0x51DD 凝 CJK UNIFIED IDEOGRAPH-51DD 0x51E0 几 CJK UNIFIED IDEOGRAPH-51E0 0x51E1 凡 CJK UNIFIED IDEOGRAPH-51E1 0x51E4 凤 CJK UNIFIED IDEOGRAPH-51E4 0x51E6 処 CJK UNIFIED IDEOGRAPH-51E6 0x51EA 凪 CJK UNIFIED IDEOGRAPH-51EA 0x51EB 凫 CJK UNIFIED IDEOGRAPH-51EB 0x51ED 凭 CJK UNIFIED IDEOGRAPH-51ED 0x51EF 凯 CJK UNIFIED IDEOGRAPH-51EF 0x51F0 凰 CJK UNIFIED IDEOGRAPH-51F0 0x51F1 凱 CJK UNIFIED IDEOGRAPH-51F1 0x51F3 凳 CJK UNIFIED IDEOGRAPH-51F3 0x51F6 凶 CJK UNIFIED IDEOGRAPH-51F6 0x51F8 凸 CJK UNIFIED IDEOGRAPH-51F8 0x51F9 凹 CJK UNIFIED IDEOGRAPH-51F9 0x51FA 出 CJK UNIFIED IDEOGRAPH-51FA 0x51FB 击 CJK UNIFIED IDEOGRAPH-51FB 0x51FC 凼 CJK UNIFIED IDEOGRAPH-51FC 0x51FD 函 CJK UNIFIED IDEOGRAPH-51FD 0x51FF 凿 CJK UNIFIED IDEOGRAPH-51FF 0x5200 刀 CJK UNIFIED IDEOGRAPH-5200 0x5201 刁 CJK UNIFIED IDEOGRAPH-5201 0x5202 刂 CJK UNIFIED IDEOGRAPH-5202 0x5203 刃 CJK UNIFIED IDEOGRAPH-5203 0x5206 分 CJK UNIFIED IDEOGRAPH-5206 0x5207 切 CJK UNIFIED IDEOGRAPH-5207 0x5208 刈 CJK UNIFIED IDEOGRAPH-5208 0x520A 刊 CJK UNIFIED IDEOGRAPH-520A 0x520D 刍 CJK UNIFIED IDEOGRAPH-520D 0x520E 刎 CJK UNIFIED IDEOGRAPH-520E 0x5211 刑 CJK UNIFIED IDEOGRAPH-5211 0x5212 划 CJK UNIFIED IDEOGRAPH-5212 0x5217 列 CJK UNIFIED IDEOGRAPH-5217 0x5218 刘 CJK UNIFIED IDEOGRAPH-5218 0x5219 则 CJK UNIFIED IDEOGRAPH-5219 0x521A 刚 CJK UNIFIED IDEOGRAPH-521A 0x521B 创 CJK UNIFIED IDEOGRAPH-521B 0x521D 初 CJK UNIFIED IDEOGRAPH-521D 0x5220 删 CJK UNIFIED IDEOGRAPH-5220 0x5224 判 CJK UNIFIED IDEOGRAPH-5224 0x5225 別 CJK UNIFIED IDEOGRAPH-5225 0x5228 刨 CJK UNIFIED IDEOGRAPH-5228 0x5229 利 CJK UNIFIED IDEOGRAPH-5229 0x522A 刪 CJK UNIFIED IDEOGRAPH-522A 0x522B 别 CJK UNIFIED IDEOGRAPH-522B 0x522E 刮 CJK UNIFIED IDEOGRAPH-522E 0x5230 到 CJK UNIFIED IDEOGRAPH-5230 0x5236 制 CJK UNIFIED IDEOGRAPH-5236 0x5237 刷 CJK UNIFIED IDEOGRAPH-5237 0x5238 券 CJK UNIFIED IDEOGRAPH-5238 0x5239 刹 CJK UNIFIED IDEOGRAPH-5239 0x523A 刺 CJK UNIFIED IDEOGRAPH-523A 0x523B 刻 CJK UNIFIED IDEOGRAPH-523B 0x523D 刽 CJK UNIFIED IDEOGRAPH-523D 0x5241 剁 CJK UNIFIED IDEOGRAPH-5241 0x5242 剂 CJK UNIFIED IDEOGRAPH-5242 0x5243 剃 CJK UNIFIED IDEOGRAPH-5243 0x5247 則 CJK UNIFIED IDEOGRAPH-5247 0x524A 削 CJK UNIFIED IDEOGRAPH-524A 0x524C 剌 CJK UNIFIED IDEOGRAPH-524C 0x524D 前 CJK UNIFIED IDEOGRAPH-524D 0x524E 剎 CJK UNIFIED IDEOGRAPH-524E 0x5250 剐 CJK UNIFIED IDEOGRAPH-5250 0x5251 剑 CJK UNIFIED IDEOGRAPH-5251 0x5254 剔 CJK UNIFIED IDEOGRAPH-5254 0x5256 剖 CJK UNIFIED IDEOGRAPH-5256 0x525B 剛 CJK UNIFIED IDEOGRAPH-525B 0x525C 剜 CJK UNIFIED IDEOGRAPH-525C 0x5263 剣 CJK UNIFIED IDEOGRAPH-5263 0x5265 剥 CJK UNIFIED IDEOGRAPH-5265 0x5267 剧 CJK UNIFIED IDEOGRAPH-5267 0x5269 剩 CJK UNIFIED IDEOGRAPH-5269 0x526A 剪 CJK UNIFIED IDEOGRAPH-526A 0x526F 副 CJK UNIFIED IDEOGRAPH-526F 0x5272 割 CJK UNIFIED IDEOGRAPH-5272 0x5275 創 CJK UNIFIED IDEOGRAPH-5275 0x527D 剽 CJK UNIFIED IDEOGRAPH-527D 0x527F 剿 CJK UNIFIED IDEOGRAPH-527F 0x5283 劃 CJK UNIFIED IDEOGRAPH-5283 0x5287 劇 CJK UNIFIED IDEOGRAPH-5287 0x5288 劈 CJK UNIFIED IDEOGRAPH-5288 0x5289 劉 CJK UNIFIED IDEOGRAPH-5289 0x528D 劍 CJK UNIFIED IDEOGRAPH-528D 0x5291 劑 CJK UNIFIED IDEOGRAPH-5291 0x529B 力 CJK UNIFIED IDEOGRAPH-529B 0x529D 劝 CJK UNIFIED IDEOGRAPH-529D 0x529E 办 CJK UNIFIED IDEOGRAPH-529E 0x529F 功 CJK UNIFIED IDEOGRAPH-529F 0x52A0 加 CJK UNIFIED IDEOGRAPH-52A0 0x52A1 务 CJK UNIFIED IDEOGRAPH-52A1 0x52A3 劣 CJK UNIFIED IDEOGRAPH-52A3 0x52A8 动 CJK UNIFIED IDEOGRAPH-52A8 0x52A9 助 CJK UNIFIED IDEOGRAPH-52A9 0x52AA 努 CJK UNIFIED IDEOGRAPH-52AA 0x52AB 劫 CJK UNIFIED IDEOGRAPH-52AB 0x52AD 劭 CJK UNIFIED IDEOGRAPH-52AD 0x52B1 励 CJK UNIFIED IDEOGRAPH-52B1 0x52B2 劲 CJK UNIFIED IDEOGRAPH-52B2 0x52B3 劳 CJK UNIFIED IDEOGRAPH-52B3 0x52B5 劵 CJK UNIFIED IDEOGRAPH-52B5 0x52B9 効 CJK UNIFIED IDEOGRAPH-52B9 0x52BC 劼 CJK UNIFIED IDEOGRAPH-52BC 0x52BE 劾 CJK UNIFIED IDEOGRAPH-52BE 0x52BF 势 CJK UNIFIED IDEOGRAPH-52BF 0x52C1 勁 CJK UNIFIED IDEOGRAPH-52C1 0x52C3 勃 CJK UNIFIED IDEOGRAPH-52C3 0x52C7 勇 CJK UNIFIED IDEOGRAPH-52C7 0x52C9 勉 CJK UNIFIED IDEOGRAPH-52C9 0x52CB 勋 CJK UNIFIED IDEOGRAPH-52CB 0x52D0 勐 CJK UNIFIED IDEOGRAPH-52D0 0x52D2 勒 CJK UNIFIED IDEOGRAPH-52D2 0x52D5 動 CJK UNIFIED IDEOGRAPH-52D5 0x52D6 勖 CJK UNIFIED IDEOGRAPH-52D6 0x52D8 勘 CJK UNIFIED IDEOGRAPH-52D8 0x52D9 務 CJK UNIFIED IDEOGRAPH-52D9 0x52DD 勝 CJK UNIFIED IDEOGRAPH-52DD 0x52DE 勞 CJK UNIFIED IDEOGRAPH-52DE 0x52DF 募 CJK UNIFIED IDEOGRAPH-52DF 0x52E2 勢 CJK UNIFIED IDEOGRAPH-52E2 0x52E4 勤 CJK UNIFIED IDEOGRAPH-52E4 0x52EB 勫 CJK UNIFIED IDEOGRAPH-52EB 0x52EC 勬 CJK UNIFIED IDEOGRAPH-52EC 0x52ED 勭 CJK UNIFIED IDEOGRAPH-52ED 0x52EE 勮 CJK UNIFIED IDEOGRAPH-52EE 0x52EF 勯 CJK UNIFIED IDEOGRAPH-52EF 0x52F0 勰 CJK UNIFIED IDEOGRAPH-52F0 0x52F3 勳 CJK UNIFIED IDEOGRAPH-52F3 0x52F5 勵 CJK UNIFIED IDEOGRAPH-52F5 0x52FA 勺 CJK UNIFIED IDEOGRAPH-52FA 0x52FE 勾 CJK UNIFIED IDEOGRAPH-52FE 0x52FF 勿 CJK UNIFIED IDEOGRAPH-52FF 0x5300 匀 CJK UNIFIED IDEOGRAPH-5300 0x5305 包 CJK UNIFIED IDEOGRAPH-5305 0x5306 匆 CJK UNIFIED IDEOGRAPH-5306 0x5308 匈 CJK UNIFIED IDEOGRAPH-5308 0x530D 匍 CJK UNIFIED IDEOGRAPH-530D 0x530F 匏 CJK UNIFIED IDEOGRAPH-530F 0x5310 匐 CJK UNIFIED IDEOGRAPH-5310 0x5315 匕 CJK UNIFIED IDEOGRAPH-5315 0x5316 化 CJK UNIFIED IDEOGRAPH-5316 0x5317 北 CJK UNIFIED IDEOGRAPH-5317 0x5319 匙 CJK UNIFIED IDEOGRAPH-5319 0x531D 匝 CJK UNIFIED IDEOGRAPH-531D 0x5320 匠 CJK UNIFIED IDEOGRAPH-5320 0x5321 匡 CJK UNIFIED IDEOGRAPH-5321 0x5323 匣 CJK UNIFIED IDEOGRAPH-5323 0x532A 匪 CJK UNIFIED IDEOGRAPH-532A 0x532E 匮 CJK UNIFIED IDEOGRAPH-532E 0x532F 匯 CJK UNIFIED IDEOGRAPH-532F 0x5339 匹 CJK UNIFIED IDEOGRAPH-5339 0x533A 区 CJK UNIFIED IDEOGRAPH-533A 0x533B 医 CJK UNIFIED IDEOGRAPH-533B 0x533E 匾 CJK UNIFIED IDEOGRAPH-533E 0x533F 匿 CJK UNIFIED IDEOGRAPH-533F 0x5340 區 CJK UNIFIED IDEOGRAPH-5340 0x5341 十 CJK UNIFIED IDEOGRAPH-5341 0x5343 千 CJK UNIFIED IDEOGRAPH-5343 0x5345 卅 CJK UNIFIED IDEOGRAPH-5345 0x5347 升 CJK UNIFIED IDEOGRAPH-5347 0x5348 午 CJK UNIFIED IDEOGRAPH-5348 0x5349 卉 CJK UNIFIED IDEOGRAPH-5349 0x534A 半 CJK UNIFIED IDEOGRAPH-534A 0x534D 卍 CJK UNIFIED IDEOGRAPH-534D 0x534E 华 CJK UNIFIED IDEOGRAPH-534E 0x534F 协 CJK UNIFIED IDEOGRAPH-534F 0x5350 卐 CJK UNIFIED IDEOGRAPH-5350 0x5351 卑 CJK UNIFIED IDEOGRAPH-5351 0x5352 卒 CJK UNIFIED IDEOGRAPH-5352 0x5353 卓 CJK UNIFIED IDEOGRAPH-5353 0x5354 協 CJK UNIFIED IDEOGRAPH-5354 0x5355 单 CJK UNIFIED IDEOGRAPH-5355 0x5356 卖 CJK UNIFIED IDEOGRAPH-5356 0x5357 南 CJK UNIFIED IDEOGRAPH-5357 0x5358 単 CJK UNIFIED IDEOGRAPH-5358 0x535A 博 CJK UNIFIED IDEOGRAPH-535A 0x535C 卜 CJK UNIFIED IDEOGRAPH-535C 0x535E 卞 CJK UNIFIED IDEOGRAPH-535E 0x535F 卟 CJK UNIFIED IDEOGRAPH-535F 0x5360 占 CJK UNIFIED IDEOGRAPH-5360 0x5361 卡 CJK UNIFIED IDEOGRAPH-5361 0x5362 卢 CJK UNIFIED IDEOGRAPH-5362 0x5364 卤 CJK UNIFIED IDEOGRAPH-5364 0x5366 卦 CJK UNIFIED IDEOGRAPH-5366 0x5367 卧 CJK UNIFIED IDEOGRAPH-5367 0x5369 卩 CJK UNIFIED IDEOGRAPH-5369 0x536B 卫 CJK UNIFIED IDEOGRAPH-536B 0x536F 卯 CJK UNIFIED IDEOGRAPH-536F 0x5370 印 CJK UNIFIED IDEOGRAPH-5370 0x5371 危 CJK UNIFIED IDEOGRAPH-5371 0x5373 即 CJK UNIFIED IDEOGRAPH-5373 0x5374 却 CJK UNIFIED IDEOGRAPH-5374 0x5375 卵 CJK UNIFIED IDEOGRAPH-5375 0x5377 卷 CJK UNIFIED IDEOGRAPH-5377 0x5378 卸 CJK UNIFIED IDEOGRAPH-5378 0x537B 卻 CJK UNIFIED IDEOGRAPH-537B 0x537F 卿 CJK UNIFIED IDEOGRAPH-537F 0x5382 厂 CJK UNIFIED IDEOGRAPH-5382 0x5384 厄 CJK UNIFIED IDEOGRAPH-5384 0x5385 厅 CJK UNIFIED IDEOGRAPH-5385 0x5386 历 CJK UNIFIED IDEOGRAPH-5386 0x5389 厉 CJK UNIFIED IDEOGRAPH-5389 0x538B 压 CJK UNIFIED IDEOGRAPH-538B 0x538C 厌 CJK UNIFIED IDEOGRAPH-538C 0x538D 厍 CJK UNIFIED IDEOGRAPH-538D 0x5395 厕 CJK UNIFIED IDEOGRAPH-5395 0x5398 厘 CJK UNIFIED IDEOGRAPH-5398 0x539A 厚 CJK UNIFIED IDEOGRAPH-539A 0x539D 厝 CJK UNIFIED IDEOGRAPH-539D 0x539F 原 CJK UNIFIED IDEOGRAPH-539F 0x53A2 厢 CJK UNIFIED IDEOGRAPH-53A2 0x53A5 厥 CJK UNIFIED IDEOGRAPH-53A5 0x53A6 厦 CJK UNIFIED IDEOGRAPH-53A6 0x53A8 厨 CJK UNIFIED IDEOGRAPH-53A8 0x53A9 厩 CJK UNIFIED IDEOGRAPH-53A9 0x53AD 厭 CJK UNIFIED IDEOGRAPH-53AD 0x53AE 厮 CJK UNIFIED IDEOGRAPH-53AE 0x53B2 厲 CJK UNIFIED IDEOGRAPH-53B2 0x53B6 厶 CJK UNIFIED IDEOGRAPH-53B6 0x53BB 去 CJK UNIFIED IDEOGRAPH-53BB 0x53BF 县 CJK UNIFIED IDEOGRAPH-53BF 0x53C1 叁 CJK UNIFIED IDEOGRAPH-53C1 0x53C2 参 CJK UNIFIED IDEOGRAPH-53C2 0x53C3 參 CJK UNIFIED IDEOGRAPH-53C3 0x53C6 叆 CJK UNIFIED IDEOGRAPH-53C6 0x53C8 又 CJK UNIFIED IDEOGRAPH-53C8 0x53C9 叉 CJK UNIFIED IDEOGRAPH-53C9 0x53CA 及 CJK UNIFIED IDEOGRAPH-53CA 0x53CB 友 CJK UNIFIED IDEOGRAPH-53CB 0x53CC 双 CJK UNIFIED IDEOGRAPH-53CC 0x53CD 反 CJK UNIFIED IDEOGRAPH-53CD 0x53CE 収 CJK UNIFIED IDEOGRAPH-53CE 0x53CF 叏 CJK UNIFIED IDEOGRAPH-53CF 0x53D1 发 CJK UNIFIED IDEOGRAPH-53D1 0x53D2 叒 CJK UNIFIED IDEOGRAPH-53D2 0x53D4 叔 CJK UNIFIED IDEOGRAPH-53D4 0x53D5 叕 CJK UNIFIED IDEOGRAPH-53D5 0x53D6 取 CJK UNIFIED IDEOGRAPH-53D6 0x53D7 受 CJK UNIFIED IDEOGRAPH-53D7 0x53D8 变 CJK UNIFIED IDEOGRAPH-53D8 0x53D9 叙 CJK UNIFIED IDEOGRAPH-53D9 0x53DB 叛 CJK UNIFIED IDEOGRAPH-53DB 0x53DF 叟 CJK UNIFIED IDEOGRAPH-53DF 0x53E0 叠 CJK UNIFIED IDEOGRAPH-53E0 0x53E1 叡 CJK UNIFIED IDEOGRAPH-53E1 0x53E2 叢 CJK UNIFIED IDEOGRAPH-53E2 0x53E3 口 CJK UNIFIED IDEOGRAPH-53E3 0x53E4 古 CJK UNIFIED IDEOGRAPH-53E4 0x53E5 句 CJK UNIFIED IDEOGRAPH-53E5 0x53E6 另 CJK UNIFIED IDEOGRAPH-53E6 0x53E7 叧 CJK UNIFIED IDEOGRAPH-53E7 0x53E8 叨 CJK UNIFIED IDEOGRAPH-53E8 0x53E9 叩 CJK UNIFIED IDEOGRAPH-53E9 0x53EA 只 CJK UNIFIED IDEOGRAPH-53EA 0x53EB 叫 CJK UNIFIED IDEOGRAPH-53EB 0x53EC 召 CJK UNIFIED IDEOGRAPH-53EC 0x53ED 叭 CJK UNIFIED IDEOGRAPH-53ED 0x53EE 叮 CJK UNIFIED IDEOGRAPH-53EE 0x53EF 可 CJK UNIFIED IDEOGRAPH-53EF 0x53F0 台 CJK UNIFIED IDEOGRAPH-53F0 0x53F1 叱 CJK UNIFIED IDEOGRAPH-53F1 0x53F2 史 CJK UNIFIED IDEOGRAPH-53F2 0x53F3 右 CJK UNIFIED IDEOGRAPH-53F3 0x53F5 叵 CJK UNIFIED IDEOGRAPH-53F5 0x53F6 叶 CJK UNIFIED IDEOGRAPH-53F6 0x53F7 号 CJK UNIFIED IDEOGRAPH-53F7 0x53F8 司 CJK UNIFIED IDEOGRAPH-53F8 0x53F9 叹 CJK UNIFIED IDEOGRAPH-53F9 0x53FB 叻 CJK UNIFIED IDEOGRAPH-53FB 0x53FC 叼 CJK UNIFIED IDEOGRAPH-53FC 0x53FD 叽 CJK UNIFIED IDEOGRAPH-53FD 0x5401 吁 CJK UNIFIED IDEOGRAPH-5401 0x5403 吃 CJK UNIFIED IDEOGRAPH-5403 0x5404 各 CJK UNIFIED IDEOGRAPH-5404 0x5406 吆 CJK UNIFIED IDEOGRAPH-5406 0x5408 合 CJK UNIFIED IDEOGRAPH-5408 0x5409 吉 CJK UNIFIED IDEOGRAPH-5409 0x540A 吊 CJK UNIFIED IDEOGRAPH-540A 0x540B 吋 CJK UNIFIED IDEOGRAPH-540B 0x540C 同 CJK UNIFIED IDEOGRAPH-540C 0x540D 名 CJK UNIFIED IDEOGRAPH-540D 0x540E 后 CJK UNIFIED IDEOGRAPH-540E 0x540F 吏 CJK UNIFIED IDEOGRAPH-540F 0x5410 吐 CJK UNIFIED IDEOGRAPH-5410 0x5411 向 CJK UNIFIED IDEOGRAPH-5411 0x5412 吒 CJK UNIFIED IDEOGRAPH-5412 0x5413 吓 CJK UNIFIED IDEOGRAPH-5413 0x5414 吔 CJK UNIFIED IDEOGRAPH-5414 0x5415 吕 CJK UNIFIED IDEOGRAPH-5415 0x5416 吖 CJK UNIFIED IDEOGRAPH-5416 0x5417 吗 CJK UNIFIED IDEOGRAPH-5417 0x541B 君 CJK UNIFIED IDEOGRAPH-541B 0x541D 吝 CJK UNIFIED IDEOGRAPH-541D 0x541E 吞 CJK UNIFIED IDEOGRAPH-541E 0x541F 吟 CJK UNIFIED IDEOGRAPH-541F 0x5420 吠 CJK UNIFIED IDEOGRAPH-5420 0x5421 吡 CJK UNIFIED IDEOGRAPH-5421 0x5425 吥 CJK UNIFIED IDEOGRAPH-5425 0x5426 否 CJK UNIFIED IDEOGRAPH-5426 0x5427 吧 CJK UNIFIED IDEOGRAPH-5427 0x5428 吨 CJK UNIFIED IDEOGRAPH-5428 0x5429 吩 CJK UNIFIED IDEOGRAPH-5429 0x542B 含 CJK UNIFIED IDEOGRAPH-542B 0x542C 听 CJK UNIFIED IDEOGRAPH-542C 0x542D 吭 CJK UNIFIED IDEOGRAPH-542D 0x542E 吮 CJK UNIFIED IDEOGRAPH-542E 0x542F 启 CJK UNIFIED IDEOGRAPH-542F 0x5431 吱 CJK UNIFIED IDEOGRAPH-5431 0x5432 吲 CJK UNIFIED IDEOGRAPH-5432 0x5433 吳 CJK UNIFIED IDEOGRAPH-5433 0x5434 吴 CJK UNIFIED IDEOGRAPH-5434 0x5435 吵 CJK UNIFIED IDEOGRAPH-5435 0x5436 吶 CJK UNIFIED IDEOGRAPH-5436 0x5438 吸 CJK UNIFIED IDEOGRAPH-5438 0x5439 吹 CJK UNIFIED IDEOGRAPH-5439 0x543B 吻 CJK UNIFIED IDEOGRAPH-543B 0x543C 吼 CJK UNIFIED IDEOGRAPH-543C 0x543D 吽 CJK UNIFIED IDEOGRAPH-543D 0x543E 吾 CJK UNIFIED IDEOGRAPH-543E 0x5440 呀 CJK UNIFIED IDEOGRAPH-5440 0x5442 呂 CJK UNIFIED IDEOGRAPH-5442 0x5443 呃 CJK UNIFIED IDEOGRAPH-5443 0x5446 呆 CJK UNIFIED IDEOGRAPH-5446 0x5448 呈 CJK UNIFIED IDEOGRAPH-5448 0x544A 告 CJK UNIFIED IDEOGRAPH-544A 0x544B 呋 CJK UNIFIED IDEOGRAPH-544B 0x544E 呎 CJK UNIFIED IDEOGRAPH-544E 0x5450 呐 CJK UNIFIED IDEOGRAPH-5450 0x5453 呓 CJK UNIFIED IDEOGRAPH-5453 0x5455 呕 CJK UNIFIED IDEOGRAPH-5455 0x5457 呗 CJK UNIFIED IDEOGRAPH-5457 0x5458 员 CJK UNIFIED IDEOGRAPH-5458 0x545B 呛 CJK UNIFIED IDEOGRAPH-545B 0x545C 呜 CJK UNIFIED IDEOGRAPH-545C 0x5462 呢 CJK UNIFIED IDEOGRAPH-5462 0x5464 呤 CJK UNIFIED IDEOGRAPH-5464 0x5466 呦 CJK UNIFIED IDEOGRAPH-5466 0x5468 周 CJK UNIFIED IDEOGRAPH-5468 0x546D 呭 CJK UNIFIED IDEOGRAPH-546D 0x546E 呮 CJK UNIFIED IDEOGRAPH-546E 0x546F 呯 CJK UNIFIED IDEOGRAPH-546F 0x5470 呰 CJK UNIFIED IDEOGRAPH-5470 0x5471 呱 CJK UNIFIED IDEOGRAPH-5471 0x5472 呲 CJK UNIFIED IDEOGRAPH-5472 0x5473 味 CJK UNIFIED IDEOGRAPH-5473 0x5475 呵 CJK UNIFIED IDEOGRAPH-5475 0x5477 呷 CJK UNIFIED IDEOGRAPH-5477 0x5478 呸 CJK UNIFIED IDEOGRAPH-5478 0x547B 呻 CJK UNIFIED IDEOGRAPH-547B 0x547C 呼 CJK UNIFIED IDEOGRAPH-547C 0x547D 命 CJK UNIFIED IDEOGRAPH-547D 0x5480 咀 CJK UNIFIED IDEOGRAPH-5480 0x5481 咁 CJK UNIFIED IDEOGRAPH-5481 0x5482 咂 CJK UNIFIED IDEOGRAPH-5482 0x5484 咄 CJK UNIFIED IDEOGRAPH-5484 0x5486 咆 CJK UNIFIED IDEOGRAPH-5486 0x548B 咋 CJK UNIFIED IDEOGRAPH-548B 0x548C 和 CJK UNIFIED IDEOGRAPH-548C 0x548E 咎 CJK UNIFIED IDEOGRAPH-548E 0x548F 咏 CJK UNIFIED IDEOGRAPH-548F 0x5490 咐 CJK UNIFIED IDEOGRAPH-5490 0x5492 咒 CJK UNIFIED IDEOGRAPH-5492 0x5494 咔 CJK UNIFIED IDEOGRAPH-5494 0x5495 咕 CJK UNIFIED IDEOGRAPH-5495 0x5496 咖 CJK UNIFIED IDEOGRAPH-5496 0x5497 咗 CJK UNIFIED IDEOGRAPH-5497 0x5498 咘 CJK UNIFIED IDEOGRAPH-5498 0x5499 咙 CJK UNIFIED IDEOGRAPH-5499 0x549A 咚 CJK UNIFIED IDEOGRAPH-549A 0x549B 咛 CJK UNIFIED IDEOGRAPH-549B 0x54A3 咣 CJK UNIFIED IDEOGRAPH-54A3 0x54A4 咤 CJK UNIFIED IDEOGRAPH-54A4 0x54A6 咦 CJK UNIFIED IDEOGRAPH-54A6 0x54A7 咧 CJK UNIFIED IDEOGRAPH-54A7 0x54A8 咨 CJK UNIFIED IDEOGRAPH-54A8 0x54A9 咩 CJK UNIFIED IDEOGRAPH-54A9 0x54AA 咪 CJK UNIFIED IDEOGRAPH-54AA 0x54AB 咫 CJK UNIFIED IDEOGRAPH-54AB 0x54AC 咬 CJK UNIFIED IDEOGRAPH-54AC 0x54AD 咭 CJK UNIFIED IDEOGRAPH-54AD 0x54AF 咯 CJK UNIFIED IDEOGRAPH-54AF 0x54B1 咱 CJK UNIFIED IDEOGRAPH-54B1 0x54B2 咲 CJK UNIFIED IDEOGRAPH-54B2 0x54B3 咳 CJK UNIFIED IDEOGRAPH-54B3 0x54B8 咸 CJK UNIFIED IDEOGRAPH-54B8 0x54BB 咻 CJK UNIFIED IDEOGRAPH-54BB 0x54BD 咽 CJK UNIFIED IDEOGRAPH-54BD 0x54BF 咿 CJK UNIFIED IDEOGRAPH-54BF 0x54C0 哀 CJK UNIFIED IDEOGRAPH-54C0 0x54C1 品 CJK UNIFIED IDEOGRAPH-54C1 0x54C2 哂 CJK UNIFIED IDEOGRAPH-54C2 0x54C4 哄 CJK UNIFIED IDEOGRAPH-54C4 0x54C6 哆 CJK UNIFIED IDEOGRAPH-54C6 0x54C7 哇 CJK UNIFIED IDEOGRAPH-54C7 0x54C8 哈 CJK UNIFIED IDEOGRAPH-54C8 0x54C9 哉 CJK UNIFIED IDEOGRAPH-54C9 0x54CB 哋 CJK UNIFIED IDEOGRAPH-54CB 0x54CC 哌 CJK UNIFIED IDEOGRAPH-54CC 0x54CD 响 CJK UNIFIED IDEOGRAPH-54CD 0x54CE 哎 CJK UNIFIED IDEOGRAPH-54CE 0x54CF 哏 CJK UNIFIED IDEOGRAPH-54CF 0x54D0 哐 CJK UNIFIED IDEOGRAPH-54D0 0x54D1 哑 CJK UNIFIED IDEOGRAPH-54D1 0x54D2 哒 CJK UNIFIED IDEOGRAPH-54D2 0x54D4 哔 CJK UNIFIED IDEOGRAPH-54D4 0x54D7 哗 CJK UNIFIED IDEOGRAPH-54D7 0x54DA 哚 CJK UNIFIED IDEOGRAPH-54DA 0x54DD 哝 CJK UNIFIED IDEOGRAPH-54DD 0x54DE 哞 CJK UNIFIED IDEOGRAPH-54DE 0x54DF 哟 CJK UNIFIED IDEOGRAPH-54DF 0x54E1 員 CJK UNIFIED IDEOGRAPH-54E1 0x54E5 哥 CJK UNIFIED IDEOGRAPH-54E5 0x54E6 哦 CJK UNIFIED IDEOGRAPH-54E6 0x54E7 哧 CJK UNIFIED IDEOGRAPH-54E7 0x54E8 哨 CJK UNIFIED IDEOGRAPH-54E8 0x54E9 哩 CJK UNIFIED IDEOGRAPH-54E9 0x54EA 哪 CJK UNIFIED IDEOGRAPH-54EA 0x54ED 哭 CJK UNIFIED IDEOGRAPH-54ED 0x54EE 哮 CJK UNIFIED IDEOGRAPH-54EE 0x54F2 哲 CJK UNIFIED IDEOGRAPH-54F2 0x54FA 哺 CJK UNIFIED IDEOGRAPH-54FA 0x54FC 哼 CJK UNIFIED IDEOGRAPH-54FC 0x54FD 哽 CJK UNIFIED IDEOGRAPH-54FD 0x5501 唁 CJK UNIFIED IDEOGRAPH-5501 0x5504 唄 CJK UNIFIED IDEOGRAPH-5504 0x5506 唆 CJK UNIFIED IDEOGRAPH-5506 0x5507 唇 CJK UNIFIED IDEOGRAPH-5507 0x5509 唉 CJK UNIFIED IDEOGRAPH-5509 0x550F 唏 CJK UNIFIED IDEOGRAPH-550F 0x5510 唐 CJK UNIFIED IDEOGRAPH-5510 0x5511 唑 CJK UNIFIED IDEOGRAPH-5511 0x5514 唔 CJK UNIFIED IDEOGRAPH-5514 0x551B 唛 CJK UNIFIED IDEOGRAPH-551B 0x5520 唠 CJK UNIFIED IDEOGRAPH-5520 0x5522 唢 CJK UNIFIED IDEOGRAPH-5522 0x5524 唤 CJK UNIFIED IDEOGRAPH-5524 0x5527 唧 CJK UNIFIED IDEOGRAPH-5527 0x552C 唬 CJK UNIFIED IDEOGRAPH-552C 0x552E 售 CJK UNIFIED IDEOGRAPH-552E 0x552F 唯 CJK UNIFIED IDEOGRAPH-552F 0x5530 唰 CJK UNIFIED IDEOGRAPH-5530 0x5531 唱 CJK UNIFIED IDEOGRAPH-5531 0x5533 唳 CJK UNIFIED IDEOGRAPH-5533 0x5534 唴 CJK UNIFIED IDEOGRAPH-5534 0x5535 唵 CJK UNIFIED IDEOGRAPH-5535 0x5537 唷 CJK UNIFIED IDEOGRAPH-5537 0x5538 唸 CJK UNIFIED IDEOGRAPH-5538 0x553E 唾 CJK UNIFIED IDEOGRAPH-553E 0x5541 啁 CJK UNIFIED IDEOGRAPH-5541 0x5543 啃 CJK UNIFIED IDEOGRAPH-5543 0x5544 啄 CJK UNIFIED IDEOGRAPH-5544 0x5546 商 CJK UNIFIED IDEOGRAPH-5546 0x5549 啉 CJK UNIFIED IDEOGRAPH-5549 0x554A 啊 CJK UNIFIED IDEOGRAPH-554A 0x554F 問 CJK UNIFIED IDEOGRAPH-554F 0x5553 啓 CJK UNIFIED IDEOGRAPH-5553 0x5555 啕 CJK UNIFIED IDEOGRAPH-5555 0x5556 啖 CJK UNIFIED IDEOGRAPH-5556 0x555C 啜 CJK UNIFIED IDEOGRAPH-555C 0x555F 啟 CJK UNIFIED IDEOGRAPH-555F 0x5561 啡 CJK UNIFIED IDEOGRAPH-5561 0x5564 啤 CJK UNIFIED IDEOGRAPH-5564 0x5565 啥 CJK UNIFIED IDEOGRAPH-5565 0x5566 啦 CJK UNIFIED IDEOGRAPH-5566 0x5567 啧 CJK UNIFIED IDEOGRAPH-5567 0x556A 啪 CJK UNIFIED IDEOGRAPH-556A 0x556B 啫 CJK UNIFIED IDEOGRAPH-556B 0x556C 啬 CJK UNIFIED IDEOGRAPH-556C 0x556D 啭 CJK UNIFIED IDEOGRAPH-556D 0x556E 啮 CJK UNIFIED IDEOGRAPH-556E 0x5570 啰 CJK UNIFIED IDEOGRAPH-5570 0x5571 啱 CJK UNIFIED IDEOGRAPH-5571 0x5572 啲 CJK UNIFIED IDEOGRAPH-5572 0x5575 啵 CJK UNIFIED IDEOGRAPH-5575 0x5576 啶 CJK UNIFIED IDEOGRAPH-5576 0x5577 啷 CJK UNIFIED IDEOGRAPH-5577 0x5578 啸 CJK UNIFIED IDEOGRAPH-5578 0x557B 啻 CJK UNIFIED IDEOGRAPH-557B 0x557C 啼 CJK UNIFIED IDEOGRAPH-557C 0x557E 啾 CJK UNIFIED IDEOGRAPH-557E 0x5580 喀 CJK UNIFIED IDEOGRAPH-5580 0x5582 喂 CJK UNIFIED IDEOGRAPH-5582 0x5583 喃 CJK UNIFIED IDEOGRAPH-5583 0x5584 善 CJK UNIFIED IDEOGRAPH-5584 0x5586 喆 CJK UNIFIED IDEOGRAPH-5586 0x5587 喇 CJK UNIFIED IDEOGRAPH-5587 0x5589 喉 CJK UNIFIED IDEOGRAPH-5589 0x558A 喊 CJK UNIFIED IDEOGRAPH-558A 0x558B 喋 CJK UNIFIED IDEOGRAPH-558B 0x558F 喏 CJK UNIFIED IDEOGRAPH-558F 0x5591 喑 CJK UNIFIED IDEOGRAPH-5591 0x5594 喔 CJK UNIFIED IDEOGRAPH-5594 0x5598 喘 CJK UNIFIED IDEOGRAPH-5598 0x5599 喙 CJK UNIFIED IDEOGRAPH-5599 0x559A 喚 CJK UNIFIED IDEOGRAPH-559A 0x559C 喜 CJK UNIFIED IDEOGRAPH-559C 0x559D 喝 CJK UNIFIED IDEOGRAPH-559D 0x559F 喟 CJK UNIFIED IDEOGRAPH-559F 0x55A7 喧 CJK UNIFIED IDEOGRAPH-55A7 0x55AA 喪 CJK UNIFIED IDEOGRAPH-55AA 0x55AB 喫 CJK UNIFIED IDEOGRAPH-55AB 0x55AC 喬 CJK UNIFIED IDEOGRAPH-55AC 0x55AE 單 CJK UNIFIED IDEOGRAPH-55AE 0x55B0 喰 CJK UNIFIED IDEOGRAPH-55B0 0x55B1 喱 CJK UNIFIED IDEOGRAPH-55B1 0x55B2 喲 CJK UNIFIED IDEOGRAPH-55B2 0x55B3 喳 CJK UNIFIED IDEOGRAPH-55B3 0x55B5 喵 CJK UNIFIED IDEOGRAPH-55B5 0x55B6 営 CJK UNIFIED IDEOGRAPH-55B6 0x55B7 喷 CJK UNIFIED IDEOGRAPH-55B7 0x55B9 喹 CJK UNIFIED IDEOGRAPH-55B9 0x55BA 喺 CJK UNIFIED IDEOGRAPH-55BA 0x55BB 喻 CJK UNIFIED IDEOGRAPH-55BB 0x55BD 喽 CJK UNIFIED IDEOGRAPH-55BD 0x55C5 嗅 CJK UNIFIED IDEOGRAPH-55C5 0x55CE 嗎 CJK UNIFIED IDEOGRAPH-55CE 0x55D1 嗑 CJK UNIFIED IDEOGRAPH-55D1 0x55D2 嗒 CJK UNIFIED IDEOGRAPH-55D2 0x55D3 嗓 CJK UNIFIED IDEOGRAPH-55D3 0x55D4 嗔 CJK UNIFIED IDEOGRAPH-55D4 0x55D5 嗕 CJK UNIFIED IDEOGRAPH-55D5 0x55D6 嗖 CJK UNIFIED IDEOGRAPH-55D6 0x55D7 嗗 CJK UNIFIED IDEOGRAPH-55D7 0x55D8 嗘 CJK UNIFIED IDEOGRAPH-55D8 0x55D9 嗙 CJK UNIFIED IDEOGRAPH-55D9 0x55DA 嗚 CJK UNIFIED IDEOGRAPH-55DA 0x55DB 嗛 CJK UNIFIED IDEOGRAPH-55DB 0x55DC 嗜 CJK UNIFIED IDEOGRAPH-55DC 0x55DD 嗝 CJK UNIFIED IDEOGRAPH-55DD 0x55DF 嗟 CJK UNIFIED IDEOGRAPH-55DF 0x55E1 嗡 CJK UNIFIED IDEOGRAPH-55E1 0x55E3 嗣 CJK UNIFIED IDEOGRAPH-55E3 0x55E4 嗤 CJK UNIFIED IDEOGRAPH-55E4 0x55E6 嗦 CJK UNIFIED IDEOGRAPH-55E6 0x55E8 嗨 CJK UNIFIED IDEOGRAPH-55E8 0x55EA 嗪 CJK UNIFIED IDEOGRAPH-55EA 0x55ED 嗭 CJK UNIFIED IDEOGRAPH-55ED 0x55EE 嗮 CJK UNIFIED IDEOGRAPH-55EE 0x55EF 嗯 CJK UNIFIED IDEOGRAPH-55EF 0x55F0 嗰 CJK UNIFIED IDEOGRAPH-55F0 0x55F2 嗲 CJK UNIFIED IDEOGRAPH-55F2 0x55F3 嗳 CJK UNIFIED IDEOGRAPH-55F3 0x55F7 嗷 CJK UNIFIED IDEOGRAPH-55F7 0x55FD 嗽 CJK UNIFIED IDEOGRAPH-55FD 0x5600 嘀 CJK UNIFIED IDEOGRAPH-5600 0x5605 嘅 CJK UNIFIED IDEOGRAPH-5605 0x5606 嘆 CJK UNIFIED IDEOGRAPH-5606 0x5608 嘈 CJK UNIFIED IDEOGRAPH-5608 0x5609 嘉 CJK UNIFIED IDEOGRAPH-5609 0x560C 嘌 CJK UNIFIED IDEOGRAPH-560C 0x560E 嘎 CJK UNIFIED IDEOGRAPH-560E 0x5617 嘗 CJK UNIFIED IDEOGRAPH-5617 0x5618 嘘 CJK UNIFIED IDEOGRAPH-5618 0x561A 嘚 CJK UNIFIED IDEOGRAPH-561A 0x561B 嘛 CJK UNIFIED IDEOGRAPH-561B 0x561E 嘞 CJK UNIFIED IDEOGRAPH-561E 0x561F 嘟 CJK UNIFIED IDEOGRAPH-561F 0x5622 嘢 CJK UNIFIED IDEOGRAPH-5622 0x5623 嘣 CJK UNIFIED IDEOGRAPH-5623 0x5624 嘤 CJK UNIFIED IDEOGRAPH-5624 0x5627 嘧 CJK UNIFIED IDEOGRAPH-5627 0x562C 嘬 CJK UNIFIED IDEOGRAPH-562C 0x562D 嘭 CJK UNIFIED IDEOGRAPH-562D 0x5631 嘱 CJK UNIFIED IDEOGRAPH-5631 0x5632 嘲 CJK UNIFIED IDEOGRAPH-5632 0x5634 嘴 CJK UNIFIED IDEOGRAPH-5634 0x5636 嘶 CJK UNIFIED IDEOGRAPH-5636 0x5639 嘹 CJK UNIFIED IDEOGRAPH-5639 0x563B 嘻 CJK UNIFIED IDEOGRAPH-563B 0x563F 嘿 CJK UNIFIED IDEOGRAPH-563F 0x5641 噁 CJK UNIFIED IDEOGRAPH-5641 0x564C 噌 CJK UNIFIED IDEOGRAPH-564C 0x564E 噎 CJK UNIFIED IDEOGRAPH-564E 0x564F 噏 CJK UNIFIED IDEOGRAPH-564F 0x5654 噔 CJK UNIFIED IDEOGRAPH-5654 0x5657 噗 CJK UNIFIED IDEOGRAPH-5657 0x5658 噘 CJK UNIFIED IDEOGRAPH-5658 0x5659 噙 CJK UNIFIED IDEOGRAPH-5659 0x565A 噚 CJK UNIFIED IDEOGRAPH-565A 0x565C 噜 CJK UNIFIED IDEOGRAPH-565C 0x5662 噢 CJK UNIFIED IDEOGRAPH-5662 0x5664 噤 CJK UNIFIED IDEOGRAPH-5664 0x5668 器 CJK UNIFIED IDEOGRAPH-5668 0x5669 噩 CJK UNIFIED IDEOGRAPH-5669 0x566A 噪 CJK UNIFIED IDEOGRAPH-566A 0x566B 噫 CJK UNIFIED IDEOGRAPH-566B 0x566C 噬 CJK UNIFIED IDEOGRAPH-566C 0x5671 噱 CJK UNIFIED IDEOGRAPH-5671 0x5674 噴 CJK UNIFIED IDEOGRAPH-5674 0x5676 噶 CJK UNIFIED IDEOGRAPH-5676 0x5678 噸 CJK UNIFIED IDEOGRAPH-5678 0x5679 噹 CJK UNIFIED IDEOGRAPH-5679 0x567B 噻 CJK UNIFIED IDEOGRAPH-567B 0x567C 噼 CJK UNIFIED IDEOGRAPH-567C 0x5687 嚇 CJK UNIFIED IDEOGRAPH-5687 0x568E 嚎 CJK UNIFIED IDEOGRAPH-568E 0x568F 嚏 CJK UNIFIED IDEOGRAPH-568F 0x5690 嚐 CJK UNIFIED IDEOGRAPH-5690 0x5693 嚓 CJK UNIFIED IDEOGRAPH-5693 0x569F 嚟 CJK UNIFIED IDEOGRAPH-569F 0x56A3 嚣 CJK UNIFIED IDEOGRAPH-56A3 0x56AE 嚮 CJK UNIFIED IDEOGRAPH-56AE 0x56AF 嚯 CJK UNIFIED IDEOGRAPH-56AF 0x56B4 嚴 CJK UNIFIED IDEOGRAPH-56B4 0x56B7 嚷 CJK UNIFIED IDEOGRAPH-56B7 0x56BC 嚼 CJK UNIFIED IDEOGRAPH-56BC 0x56C9 囉 CJK UNIFIED IDEOGRAPH-56C9 0x56CA 囊 CJK UNIFIED IDEOGRAPH-56CA 0x56CD 囍 CJK UNIFIED IDEOGRAPH-56CD 0x56D4 囔 CJK UNIFIED IDEOGRAPH-56D4 0x56D7 囗 CJK UNIFIED IDEOGRAPH-56D7 0x56DA 囚 CJK UNIFIED IDEOGRAPH-56DA 0x56DB 四 CJK UNIFIED IDEOGRAPH-56DB 0x56DD 囝 CJK UNIFIED IDEOGRAPH-56DD 0x56DE 回 CJK UNIFIED IDEOGRAPH-56DE 0x56DF 囟 CJK UNIFIED IDEOGRAPH-56DF 0x56E0 因 CJK UNIFIED IDEOGRAPH-56E0 0x56E1 囡 CJK UNIFIED IDEOGRAPH-56E1 0x56E2 团 CJK UNIFIED IDEOGRAPH-56E2 0x56E3 団 CJK UNIFIED IDEOGRAPH-56E3 0x56E4 囤 CJK UNIFIED IDEOGRAPH-56E4 0x56E7 囧 CJK UNIFIED IDEOGRAPH-56E7 0x56E8 囨 CJK UNIFIED IDEOGRAPH-56E8 0x56E9 囩 CJK UNIFIED IDEOGRAPH-56E9 0x56EB 囫 CJK UNIFIED IDEOGRAPH-56EB 0x56ED 园 CJK UNIFIED IDEOGRAPH-56ED 0x56EF 囯 CJK UNIFIED IDEOGRAPH-56EF 0x56F0 困 CJK UNIFIED IDEOGRAPH-56F0 0x56F1 囱 CJK UNIFIED IDEOGRAPH-56F1 0x56F2 囲 CJK UNIFIED IDEOGRAPH-56F2 0x56F3 図 CJK UNIFIED IDEOGRAPH-56F3 0x56F4 围 CJK UNIFIED IDEOGRAPH-56F4 0x56F5 囵 CJK UNIFIED IDEOGRAPH-56F5 0x56F9 囹 CJK UNIFIED IDEOGRAPH-56F9 0x56FA 固 CJK UNIFIED IDEOGRAPH-56FA 0x56FD 国 CJK UNIFIED IDEOGRAPH-56FD 0x56FE 图 CJK UNIFIED IDEOGRAPH-56FE 0x56FF 囿 CJK UNIFIED IDEOGRAPH-56FF 0x5703 圃 CJK UNIFIED IDEOGRAPH-5703 0x5704 圄 CJK UNIFIED IDEOGRAPH-5704 0x5706 圆 CJK UNIFIED IDEOGRAPH-5706 0x5708 圈 CJK UNIFIED IDEOGRAPH-5708 0x570B 國 CJK UNIFIED IDEOGRAPH-570B 0x570D 圍 CJK UNIFIED IDEOGRAPH-570D 0x5712 園 CJK UNIFIED IDEOGRAPH-5712 0x5713 圓 CJK UNIFIED IDEOGRAPH-5713 0x5716 圖 CJK UNIFIED IDEOGRAPH-5716 0x5718 團 CJK UNIFIED IDEOGRAPH-5718 0x571C 圜 CJK UNIFIED IDEOGRAPH-571C 0x571F 土 CJK UNIFIED IDEOGRAPH-571F 0x5723 圣 CJK UNIFIED IDEOGRAPH-5723 0x5727 圧 CJK UNIFIED IDEOGRAPH-5727 0x5728 在 CJK UNIFIED IDEOGRAPH-5728 0x5729 圩 CJK UNIFIED IDEOGRAPH-5729 0x572A 圪 CJK UNIFIED IDEOGRAPH-572A 0x572D 圭 CJK UNIFIED IDEOGRAPH-572D 0x5730 地 CJK UNIFIED IDEOGRAPH-5730 0x5733 圳 CJK UNIFIED IDEOGRAPH-5733 0x573A 场 CJK UNIFIED IDEOGRAPH-573A 0x573B 圻 CJK UNIFIED IDEOGRAPH-573B 0x573E 圾 CJK UNIFIED IDEOGRAPH-573E 0x5740 址 CJK UNIFIED IDEOGRAPH-5740 0x5742 坂 CJK UNIFIED IDEOGRAPH-5742 0x5747 均 CJK UNIFIED IDEOGRAPH-5747 0x5749 坉 CJK UNIFIED IDEOGRAPH-5749 0x574A 坊 CJK UNIFIED IDEOGRAPH-574A 0x574D 坍 CJK UNIFIED IDEOGRAPH-574D 0x574E 坎 CJK UNIFIED IDEOGRAPH-574E 0x574F 坏 CJK UNIFIED IDEOGRAPH-574F 0x5750 坐 CJK UNIFIED IDEOGRAPH-5750 0x5751 坑 CJK UNIFIED IDEOGRAPH-5751 0x5757 块 CJK UNIFIED IDEOGRAPH-5757 0x575A 坚 CJK UNIFIED IDEOGRAPH-575A 0x575B 坛 CJK UNIFIED IDEOGRAPH-575B 0x575D 坝 CJK UNIFIED IDEOGRAPH-575D 0x575E 坞 CJK UNIFIED IDEOGRAPH-575E 0x575F 坟 CJK UNIFIED IDEOGRAPH-575F 0x5760 坠 CJK UNIFIED IDEOGRAPH-5760 0x5761 坡 CJK UNIFIED IDEOGRAPH-5761 0x5764 坤 CJK UNIFIED IDEOGRAPH-5764 0x5766 坦 CJK UNIFIED IDEOGRAPH-5766 0x5768 坨 CJK UNIFIED IDEOGRAPH-5768 0x5769 坩 CJK UNIFIED IDEOGRAPH-5769 0x576A 坪 CJK UNIFIED IDEOGRAPH-576A 0x576B 坫 CJK UNIFIED IDEOGRAPH-576B 0x576D 坭 CJK UNIFIED IDEOGRAPH-576D 0x576F 坯 CJK UNIFIED IDEOGRAPH-576F 0x5773 坳 CJK UNIFIED IDEOGRAPH-5773 0x5777 坷 CJK UNIFIED IDEOGRAPH-5777 0x577B 坻 CJK UNIFIED IDEOGRAPH-577B 0x5782 垂 CJK UNIFIED IDEOGRAPH-5782 0x5783 垃 CJK UNIFIED IDEOGRAPH-5783 0x5784 垄 CJK UNIFIED IDEOGRAPH-5784 0x5785 垅 CJK UNIFIED IDEOGRAPH-5785 0x578B 型 CJK UNIFIED IDEOGRAPH-578B 0x578E 垎 CJK UNIFIED IDEOGRAPH-578E 0x5792 垒 CJK UNIFIED IDEOGRAPH-5792 0x5793 垓 CJK UNIFIED IDEOGRAPH-5793 0x579A 垚 CJK UNIFIED IDEOGRAPH-579A 0x579B 垛 CJK UNIFIED IDEOGRAPH-579B 0x579F 垟 CJK UNIFIED IDEOGRAPH-579F 0x57A0 垠 CJK UNIFIED IDEOGRAPH-57A0 0x57A1 垡 CJK UNIFIED IDEOGRAPH-57A1 0x57A2 垢 CJK UNIFIED IDEOGRAPH-57A2 0x57A3 垣 CJK UNIFIED IDEOGRAPH-57A3 0x57A6 垦 CJK UNIFIED IDEOGRAPH-57A6 0x57A9 垩 CJK UNIFIED IDEOGRAPH-57A9 0x57AB 垫 CJK UNIFIED IDEOGRAPH-57AB 0x57AD 垭 CJK UNIFIED IDEOGRAPH-57AD 0x57AE 垮 CJK UNIFIED IDEOGRAPH-57AE 0x57B5 垵 CJK UNIFIED IDEOGRAPH-57B5 0x57C2 埂 CJK UNIFIED IDEOGRAPH-57C2 0x57C3 埃 CJK UNIFIED IDEOGRAPH-57C3 0x57C7 埇 CJK UNIFIED IDEOGRAPH-57C7 0x57CB 埋 CJK UNIFIED IDEOGRAPH-57CB 0x57CC 埌 CJK UNIFIED IDEOGRAPH-57CC 0x57CE 城 CJK UNIFIED IDEOGRAPH-57CE 0x57D4 埔 CJK UNIFIED IDEOGRAPH-57D4 0x57D5 埕 CJK UNIFIED IDEOGRAPH-57D5 0x57D7 埗 CJK UNIFIED IDEOGRAPH-57D7 0x57D9 埙 CJK UNIFIED IDEOGRAPH-57D9 0x57DA 埚 CJK UNIFIED IDEOGRAPH-57DA 0x57DF 域 CJK UNIFIED IDEOGRAPH-57DF 0x57E0 埠 CJK UNIFIED IDEOGRAPH-57E0 0x57ED 埭 CJK UNIFIED IDEOGRAPH-57ED 0x57F5 埵 CJK UNIFIED IDEOGRAPH-57F5 0x57F7 執 CJK UNIFIED IDEOGRAPH-57F7 0x57F8 埸 CJK UNIFIED IDEOGRAPH-57F8 0x57F9 培 CJK UNIFIED IDEOGRAPH-57F9 0x57FA 基 CJK UNIFIED IDEOGRAPH-57FA 0x57FC 埼 CJK UNIFIED IDEOGRAPH-57FC 0x5800 堀 CJK UNIFIED IDEOGRAPH-5800 0x5802 堂 CJK UNIFIED IDEOGRAPH-5802 0x5803 堃 CJK UNIFIED IDEOGRAPH-5803 0x5805 堅 CJK UNIFIED IDEOGRAPH-5805 0x5806 堆 CJK UNIFIED IDEOGRAPH-5806 0x5807 堇 CJK UNIFIED IDEOGRAPH-5807 0x5811 堑 CJK UNIFIED IDEOGRAPH-5811 0x5815 堕 CJK UNIFIED IDEOGRAPH-5815 0x581D 堝 CJK UNIFIED IDEOGRAPH-581D 0x581F 堟 CJK UNIFIED IDEOGRAPH-581F 0x5821 堡 CJK UNIFIED IDEOGRAPH-5821 0x5824 堤 CJK UNIFIED IDEOGRAPH-5824 0x582A 堪 CJK UNIFIED IDEOGRAPH-582A 0x5830 堰 CJK UNIFIED IDEOGRAPH-5830 0x5831 報 CJK UNIFIED IDEOGRAPH-5831 0x5834 場 CJK UNIFIED IDEOGRAPH-5834 0x5835 堵 CJK UNIFIED IDEOGRAPH-5835 0x583A 堺 CJK UNIFIED IDEOGRAPH-583A 0x584A 塊 CJK UNIFIED IDEOGRAPH-584A 0x584C 塌 CJK UNIFIED IDEOGRAPH-584C 0x584D 塍 CJK UNIFIED IDEOGRAPH-584D 0x5851 塑 CJK UNIFIED IDEOGRAPH-5851 0x5854 塔 CJK UNIFIED IDEOGRAPH-5854 0x5857 塗 CJK UNIFIED IDEOGRAPH-5857 0x5858 塘 CJK UNIFIED IDEOGRAPH-5858 0x585A 塚 CJK UNIFIED IDEOGRAPH-585A 0x585E 塞 CJK UNIFIED IDEOGRAPH-585E 0x5869 塩 CJK UNIFIED IDEOGRAPH-5869 0x586B 填 CJK UNIFIED IDEOGRAPH-586B 0x586C 塬 CJK UNIFIED IDEOGRAPH-586C 0x5875 塵 CJK UNIFIED IDEOGRAPH-5875 0x587E 塾 CJK UNIFIED IDEOGRAPH-587E 0x5883 境 CJK UNIFIED IDEOGRAPH-5883 0x5885 墅 CJK UNIFIED IDEOGRAPH-5885 0x5889 墉 CJK UNIFIED IDEOGRAPH-5889 0x588A 墊 CJK UNIFIED IDEOGRAPH-588A 0x5892 墒 CJK UNIFIED IDEOGRAPH-5892 0x5893 墓 CJK UNIFIED IDEOGRAPH-5893 0x5896 墖 CJK UNIFIED IDEOGRAPH-5896 0x5897 増 CJK UNIFIED IDEOGRAPH-5897 0x5899 墙 CJK UNIFIED IDEOGRAPH-5899 0x589C 墜 CJK UNIFIED IDEOGRAPH-589C 0x589E 增 CJK UNIFIED IDEOGRAPH-589E 0x589F 墟 CJK UNIFIED IDEOGRAPH-589F 0x58A0 墠 CJK UNIFIED IDEOGRAPH-58A0 0x58A6 墦 CJK UNIFIED IDEOGRAPH-58A6 0x58A8 墨 CJK UNIFIED IDEOGRAPH-58A8 0x58A9 墩 CJK UNIFIED IDEOGRAPH-58A9 0x58AE 墮 CJK UNIFIED IDEOGRAPH-58AE 0x58C1 壁 CJK UNIFIED IDEOGRAPH-58C1 0x58C5 壅 CJK UNIFIED IDEOGRAPH-58C5 0x58C7 壇 CJK UNIFIED IDEOGRAPH-58C7 0x58CA 壊 CJK UNIFIED IDEOGRAPH-58CA 0x58D1 壑 CJK UNIFIED IDEOGRAPH-58D1 0x58D3 壓 CJK UNIFIED IDEOGRAPH-58D3 0x58D5 壕 CJK UNIFIED IDEOGRAPH-58D5 0x58DE 壞 CJK UNIFIED IDEOGRAPH-58DE 0x58E4 壤 CJK UNIFIED IDEOGRAPH-58E4 0x58EB 士 CJK UNIFIED IDEOGRAPH-58EB 0x58EC 壬 CJK UNIFIED IDEOGRAPH-58EC 0x58EE 壮 CJK UNIFIED IDEOGRAPH-58EE 0x58EF 壯 CJK UNIFIED IDEOGRAPH-58EF 0x58F0 声 CJK UNIFIED IDEOGRAPH-58F0 0x58F2 売 CJK UNIFIED IDEOGRAPH-58F2 0x58F3 壳 CJK UNIFIED IDEOGRAPH-58F3 0x58F6 壶 CJK UNIFIED IDEOGRAPH-58F6 0x58F9 壹 CJK UNIFIED IDEOGRAPH-58F9 0x58FA 壺 CJK UNIFIED IDEOGRAPH-58FA 0x58FD 壽 CJK UNIFIED IDEOGRAPH-58FD 0x5904 处 CJK UNIFIED IDEOGRAPH-5904 0x5907 备 CJK UNIFIED IDEOGRAPH-5907 0x5909 変 CJK UNIFIED IDEOGRAPH-5909 0x590A 夊 CJK UNIFIED IDEOGRAPH-590A 0x590B 夋 CJK UNIFIED IDEOGRAPH-590B 0x590C 夌 CJK UNIFIED IDEOGRAPH-590C 0x590D 复 CJK UNIFIED IDEOGRAPH-590D 0x590E 夎 CJK UNIFIED IDEOGRAPH-590E 0x590F 夏 CJK UNIFIED IDEOGRAPH-590F 0x5910 夐 CJK UNIFIED IDEOGRAPH-5910 0x5914 夔 CJK UNIFIED IDEOGRAPH-5914 0x5915 夕 CJK UNIFIED IDEOGRAPH-5915 0x5916 外 CJK UNIFIED IDEOGRAPH-5916 0x5919 夙 CJK UNIFIED IDEOGRAPH-5919 0x591A 多 CJK UNIFIED IDEOGRAPH-591A 0x591C 夜 CJK UNIFIED IDEOGRAPH-591C 0x591F 够 CJK UNIFIED IDEOGRAPH-591F 0x5920 夠 CJK UNIFIED IDEOGRAPH-5920 0x5922 夢 CJK UNIFIED IDEOGRAPH-5922 0x5925 夥 CJK UNIFIED IDEOGRAPH-5925 0x5927 大 CJK UNIFIED IDEOGRAPH-5927 0x5929 天 CJK UNIFIED IDEOGRAPH-5929 0x592A 太 CJK UNIFIED IDEOGRAPH-592A 0x592B 夫 CJK UNIFIED IDEOGRAPH-592B 0x592D 夭 CJK UNIFIED IDEOGRAPH-592D 0x592E 央 CJK UNIFIED IDEOGRAPH-592E 0x592F 夯 CJK UNIFIED IDEOGRAPH-592F 0x5931 失 CJK UNIFIED IDEOGRAPH-5931 0x5932 夲 CJK UNIFIED IDEOGRAPH-5932 0x5934 头 CJK UNIFIED IDEOGRAPH-5934 0x5937 夷 CJK UNIFIED IDEOGRAPH-5937 0x5938 夸 CJK UNIFIED IDEOGRAPH-5938 0x5939 夹 CJK UNIFIED IDEOGRAPH-5939 0x593A 夺 CJK UNIFIED IDEOGRAPH-593A 0x593E 夾 CJK UNIFIED IDEOGRAPH-593E 0x5942 奂 CJK UNIFIED IDEOGRAPH-5942 0x5944 奄 CJK UNIFIED IDEOGRAPH-5944 0x5947 奇 CJK UNIFIED IDEOGRAPH-5947 0x5948 奈 CJK UNIFIED IDEOGRAPH-5948 0x5949 奉 CJK UNIFIED IDEOGRAPH-5949 0x594B 奋 CJK UNIFIED IDEOGRAPH-594B 0x594E 奎 CJK UNIFIED IDEOGRAPH-594E 0x594F 奏 CJK UNIFIED IDEOGRAPH-594F 0x5951 契 CJK UNIFIED IDEOGRAPH-5951 0x5954 奔 CJK UNIFIED IDEOGRAPH-5954 0x5955 奕 CJK UNIFIED IDEOGRAPH-5955 0x5956 奖 CJK UNIFIED IDEOGRAPH-5956 0x5957 套 CJK UNIFIED IDEOGRAPH-5957 0x5958 奘 CJK UNIFIED IDEOGRAPH-5958 0x595A 奚 CJK UNIFIED IDEOGRAPH-595A 0x5960 奠 CJK UNIFIED IDEOGRAPH-5960 0x5962 奢 CJK UNIFIED IDEOGRAPH-5962 0x5965 奥 CJK UNIFIED IDEOGRAPH-5965 0x5967 奧 CJK UNIFIED IDEOGRAPH-5967 0x596A 奪 CJK UNIFIED IDEOGRAPH-596A 0x596D 奭 CJK UNIFIED IDEOGRAPH-596D 0x596E 奮 CJK UNIFIED IDEOGRAPH-596E 0x5973 女 CJK UNIFIED IDEOGRAPH-5973 0x5974 奴 CJK UNIFIED IDEOGRAPH-5974 0x5976 奶 CJK UNIFIED IDEOGRAPH-5976 0x5977 奷 CJK UNIFIED IDEOGRAPH-5977 0x5978 奸 CJK UNIFIED IDEOGRAPH-5978 0x5979 她 CJK UNIFIED IDEOGRAPH-5979 0x597D 好 CJK UNIFIED IDEOGRAPH-597D 0x5982 如 CJK UNIFIED IDEOGRAPH-5982 0x5983 妃 CJK UNIFIED IDEOGRAPH-5983 0x5984 妄 CJK UNIFIED IDEOGRAPH-5984 0x5986 妆 CJK UNIFIED IDEOGRAPH-5986 0x5987 妇 CJK UNIFIED IDEOGRAPH-5987 0x5988 妈 CJK UNIFIED IDEOGRAPH-5988 0x598A 妊 CJK UNIFIED IDEOGRAPH-598A 0x598D 妍 CJK UNIFIED IDEOGRAPH-598D 0x5992 妒 CJK UNIFIED IDEOGRAPH-5992 0x5993 妓 CJK UNIFIED IDEOGRAPH-5993 0x5996 妖 CJK UNIFIED IDEOGRAPH-5996 0x5997 妗 CJK UNIFIED IDEOGRAPH-5997 0x5999 妙 CJK UNIFIED IDEOGRAPH-5999 0x599D 妝 CJK UNIFIED IDEOGRAPH-599D 0x599E 妞 CJK UNIFIED IDEOGRAPH-599E 0x59A3 妣 CJK UNIFIED IDEOGRAPH-59A3 0x59A4 妤 CJK UNIFIED IDEOGRAPH-59A4 0x59A5 妥 CJK UNIFIED IDEOGRAPH-59A5 0x59A8 妨 CJK UNIFIED IDEOGRAPH-59A8 0x59A9 妩 CJK UNIFIED IDEOGRAPH-59A9 0x59AA 妪 CJK UNIFIED IDEOGRAPH-59AA 0x59AB 妫 CJK UNIFIED IDEOGRAPH-59AB 0x59AE 妮 CJK UNIFIED IDEOGRAPH-59AE 0x59AF 妯 CJK UNIFIED IDEOGRAPH-59AF 0x59B2 妲 CJK UNIFIED IDEOGRAPH-59B2 0x59B3 妳 CJK UNIFIED IDEOGRAPH-59B3 0x59B9 妹 CJK UNIFIED IDEOGRAPH-59B9 0x59BA 妺 CJK UNIFIED IDEOGRAPH-59BA 0x59BB 妻 CJK UNIFIED IDEOGRAPH-59BB 0x59BE 妾 CJK UNIFIED IDEOGRAPH-59BE 0x59C6 姆 CJK UNIFIED IDEOGRAPH-59C6 0x59C9 姉 CJK UNIFIED IDEOGRAPH-59C9 0x59CA 姊 CJK UNIFIED IDEOGRAPH-59CA 0x59CB 始 CJK UNIFIED IDEOGRAPH-59CB 0x59D0 姐 CJK UNIFIED IDEOGRAPH-59D0 0x59D1 姑 CJK UNIFIED IDEOGRAPH-59D1 0x59D2 姒 CJK UNIFIED IDEOGRAPH-59D2 0x59D3 姓 CJK UNIFIED IDEOGRAPH-59D3 0x59D4 委 CJK UNIFIED IDEOGRAPH-59D4 0x59D7 姗 CJK UNIFIED IDEOGRAPH-59D7 0x59D8 姘 CJK UNIFIED IDEOGRAPH-59D8 0x59DA 姚 CJK UNIFIED IDEOGRAPH-59DA 0x59DC 姜 CJK UNIFIED IDEOGRAPH-59DC 0x59DD 姝 CJK UNIFIED IDEOGRAPH-59DD 0x59DE 姞 CJK UNIFIED IDEOGRAPH-59DE 0x59DF 姟 CJK UNIFIED IDEOGRAPH-59DF 0x59E3 姣 CJK UNIFIED IDEOGRAPH-59E3 0x59E4 姤 CJK UNIFIED IDEOGRAPH-59E4 0x59E5 姥 CJK UNIFIED IDEOGRAPH-59E5 0x59E6 姦 CJK UNIFIED IDEOGRAPH-59E6 0x59E7 姧 CJK UNIFIED IDEOGRAPH-59E7 0x59E8 姨 CJK UNIFIED IDEOGRAPH-59E8 0x59E9 姩 CJK UNIFIED IDEOGRAPH-59E9 0x59EA 姪 CJK UNIFIED IDEOGRAPH-59EA 0x59EB 姫 CJK UNIFIED IDEOGRAPH-59EB 0x59EC 姬 CJK UNIFIED IDEOGRAPH-59EC 0x59F9 姹 CJK UNIFIED IDEOGRAPH-59F9 0x59FB 姻 CJK UNIFIED IDEOGRAPH-59FB 0x59FF 姿 CJK UNIFIED IDEOGRAPH-59FF 0x5A01 威 CJK UNIFIED IDEOGRAPH-5A01 0x5A03 娃 CJK UNIFIED IDEOGRAPH-5A03 0x5A04 娄 CJK UNIFIED IDEOGRAPH-5A04 0x5A05 娅 CJK UNIFIED IDEOGRAPH-5A05 0x5A06 娆 CJK UNIFIED IDEOGRAPH-5A06 0x5A07 娇 CJK UNIFIED IDEOGRAPH-5A07 0x5A08 娈 CJK UNIFIED IDEOGRAPH-5A08 0x5A09 娉 CJK UNIFIED IDEOGRAPH-5A09 0x5A0C 娌 CJK UNIFIED IDEOGRAPH-5A0C 0x5A11 娑 CJK UNIFIED IDEOGRAPH-5A11 0x5A13 娓 CJK UNIFIED IDEOGRAPH-5A13 0x5A18 娘 CJK UNIFIED IDEOGRAPH-5A18 0x5A1B 娛 CJK UNIFIED IDEOGRAPH-5A1B 0x5A1C 娜 CJK UNIFIED IDEOGRAPH-5A1C 0x5A1F 娟 CJK UNIFIED IDEOGRAPH-5A1F 0x5A20 娠 CJK UNIFIED IDEOGRAPH-5A20 0x5A23 娣 CJK UNIFIED IDEOGRAPH-5A23 0x5A25 娥 CJK UNIFIED IDEOGRAPH-5A25 0x5A29 娩 CJK UNIFIED IDEOGRAPH-5A29 0x5A31 娱 CJK UNIFIED IDEOGRAPH-5A31 0x5A32 娲 CJK UNIFIED IDEOGRAPH-5A32 0x5A34 娴 CJK UNIFIED IDEOGRAPH-5A34 0x5A36 娶 CJK UNIFIED IDEOGRAPH-5A36 0x5A3C 娼 CJK UNIFIED IDEOGRAPH-5A3C 0x5A40 婀 CJK UNIFIED IDEOGRAPH-5A40 0x5A41 婁 CJK UNIFIED IDEOGRAPH-5A41 0x5A42 婂 CJK UNIFIED IDEOGRAPH-5A42 0x5A43 婃 CJK UNIFIED IDEOGRAPH-5A43 0x5A46 婆 CJK UNIFIED IDEOGRAPH-5A46 0x5A49 婉 CJK UNIFIED IDEOGRAPH-5A49 0x5A4A 婊 CJK UNIFIED IDEOGRAPH-5A4A 0x5A50 婐 CJK UNIFIED IDEOGRAPH-5A50 0x5A55 婕 CJK UNIFIED IDEOGRAPH-5A55 0x5A5A 婚 CJK UNIFIED IDEOGRAPH-5A5A 0x5A62 婢 CJK UNIFIED IDEOGRAPH-5A62 0x5A66 婦 CJK UNIFIED IDEOGRAPH-5A66 0x5A67 婧 CJK UNIFIED IDEOGRAPH-5A67 0x5A6A 婪 CJK UNIFIED IDEOGRAPH-5A6A 0x5A73 婳 CJK UNIFIED IDEOGRAPH-5A73 0x5A74 婴 CJK UNIFIED IDEOGRAPH-5A74 0x5A75 婵 CJK UNIFIED IDEOGRAPH-5A75 0x5A76 婶 CJK UNIFIED IDEOGRAPH-5A76 0x5A77 婷 CJK UNIFIED IDEOGRAPH-5A77 0x5A7A 婺 CJK UNIFIED IDEOGRAPH-5A7A 0x5A7F 婿 CJK UNIFIED IDEOGRAPH-5A7F 0x5A92 媒 CJK UNIFIED IDEOGRAPH-5A92 0x5A9A 媚 CJK UNIFIED IDEOGRAPH-5A9A 0x5A9B 媛 CJK UNIFIED IDEOGRAPH-5A9B 0x5A9E 媞 CJK UNIFIED IDEOGRAPH-5A9E 0x5AB2 媲 CJK UNIFIED IDEOGRAPH-5AB2 0x5AB3 媳 CJK UNIFIED IDEOGRAPH-5AB3 0x5AB8 媸 CJK UNIFIED IDEOGRAPH-5AB8 0x5ABA 媺 CJK UNIFIED IDEOGRAPH-5ABA 0x5ABD 媽 CJK UNIFIED IDEOGRAPH-5ABD 0x5ABE 媾 CJK UNIFIED IDEOGRAPH-5ABE 0x5AC1 嫁 CJK UNIFIED IDEOGRAPH-5AC1 0x5AC2 嫂 CJK UNIFIED IDEOGRAPH-5AC2 0x5AC9 嫉 CJK UNIFIED IDEOGRAPH-5AC9 0x5ACC 嫌 CJK UNIFIED IDEOGRAPH-5ACC 0x5AD2 嫒 CJK UNIFIED IDEOGRAPH-5AD2 0x5AD4 嫔 CJK UNIFIED IDEOGRAPH-5AD4 0x5AD6 嫖 CJK UNIFIED IDEOGRAPH-5AD6 0x5ADA 嫚 CJK UNIFIED IDEOGRAPH-5ADA 0x5AE1 嫡 CJK UNIFIED IDEOGRAPH-5AE1 0x5AE3 嫣 CJK UNIFIED IDEOGRAPH-5AE3 0x5AE6 嫦 CJK UNIFIED IDEOGRAPH-5AE6 0x5AE9 嫩 CJK UNIFIED IDEOGRAPH-5AE9 0x5AF0 嫰 CJK UNIFIED IDEOGRAPH-5AF0 0x5B05 嬅 CJK UNIFIED IDEOGRAPH-5B05 0x5B09 嬉 CJK UNIFIED IDEOGRAPH-5B09 0x5B0C 嬌 CJK UNIFIED IDEOGRAPH-5B0C 0x5B17 嬗 CJK UNIFIED IDEOGRAPH-5B17 0x5B1B 嬛 CJK UNIFIED IDEOGRAPH-5B1B 0x5B22 嬢 CJK UNIFIED IDEOGRAPH-5B22 0x5B29 嬩 CJK UNIFIED IDEOGRAPH-5B29 0x5B2A 嬪 CJK UNIFIED IDEOGRAPH-5B2A 0x5B2B 嬫 CJK UNIFIED IDEOGRAPH-5B2B 0x5B2C 嬬 CJK UNIFIED IDEOGRAPH-5B2C 0x5B2D 嬭 CJK UNIFIED IDEOGRAPH-5B2D 0x5B30 嬰 CJK UNIFIED IDEOGRAPH-5B30 0x5B32 嬲 CJK UNIFIED IDEOGRAPH-5B32 0x5B34 嬴 CJK UNIFIED IDEOGRAPH-5B34 0x5B37 嬷 CJK UNIFIED IDEOGRAPH-5B37 0x5B3F 嬿 CJK UNIFIED IDEOGRAPH-5B3F 0x5B40 孀 CJK UNIFIED IDEOGRAPH-5B40 0x5B50 子 CJK UNIFIED IDEOGRAPH-5B50 0x5B51 孑 CJK UNIFIED IDEOGRAPH-5B51 0x5B53 孓 CJK UNIFIED IDEOGRAPH-5B53 0x5B54 孔 CJK UNIFIED IDEOGRAPH-5B54 0x5B55 孕 CJK UNIFIED IDEOGRAPH-5B55 0x5B56 孖 CJK UNIFIED IDEOGRAPH-5B56 0x5B57 字 CJK UNIFIED IDEOGRAPH-5B57 0x5B58 存 CJK UNIFIED IDEOGRAPH-5B58 0x5B59 孙 CJK UNIFIED IDEOGRAPH-5B59 0x5B5A 孚 CJK UNIFIED IDEOGRAPH-5B5A 0x5B5B 孛 CJK UNIFIED IDEOGRAPH-5B5B 0x5B5C 孜 CJK UNIFIED IDEOGRAPH-5B5C 0x5B5D 孝 CJK UNIFIED IDEOGRAPH-5B5D 0x5B5F 孟 CJK UNIFIED IDEOGRAPH-5B5F 0x5B62 孢 CJK UNIFIED IDEOGRAPH-5B62 0x5B63 季 CJK UNIFIED IDEOGRAPH-5B63 0x5B64 孤 CJK UNIFIED IDEOGRAPH-5B64 0x5B66 学 CJK UNIFIED IDEOGRAPH-5B66 0x5B69 孩 CJK UNIFIED IDEOGRAPH-5B69 0x5B6A 孪 CJK UNIFIED IDEOGRAPH-5B6A 0x5B6B 孫 CJK UNIFIED IDEOGRAPH-5B6B 0x5B6C 孬 CJK UNIFIED IDEOGRAPH-5B6C 0x5B70 孰 CJK UNIFIED IDEOGRAPH-5B70 0x5B71 孱 CJK UNIFIED IDEOGRAPH-5B71 0x5B73 孳 CJK UNIFIED IDEOGRAPH-5B73 0x5B75 孵 CJK UNIFIED IDEOGRAPH-5B75 0x5B78 學 CJK UNIFIED IDEOGRAPH-5B78 0x5B7A 孺 CJK UNIFIED IDEOGRAPH-5B7A 0x5B7D 孽 CJK UNIFIED IDEOGRAPH-5B7D 0x5B80 宀 CJK UNIFIED IDEOGRAPH-5B80 0x5B81 宁 CJK UNIFIED IDEOGRAPH-5B81 0x5B83 它 CJK UNIFIED IDEOGRAPH-5B83 0x5B85 宅 CJK UNIFIED IDEOGRAPH-5B85 0x5B87 宇 CJK UNIFIED IDEOGRAPH-5B87 0x5B88 守 CJK UNIFIED IDEOGRAPH-5B88 0x5B89 安 CJK UNIFIED IDEOGRAPH-5B89 0x5B8B 宋 CJK UNIFIED IDEOGRAPH-5B8B 0x5B8C 完 CJK UNIFIED IDEOGRAPH-5B8C 0x5B8F 宏 CJK UNIFIED IDEOGRAPH-5B8F 0x5B93 宓 CJK UNIFIED IDEOGRAPH-5B93 0x5B95 宕 CJK UNIFIED IDEOGRAPH-5B95 0x5B97 宗 CJK UNIFIED IDEOGRAPH-5B97 0x5B98 官 CJK UNIFIED IDEOGRAPH-5B98 0x5B99 宙 CJK UNIFIED IDEOGRAPH-5B99 0x5B9A 定 CJK UNIFIED IDEOGRAPH-5B9A 0x5B9B 宛 CJK UNIFIED IDEOGRAPH-5B9B 0x5B9C 宜 CJK UNIFIED IDEOGRAPH-5B9C 0x5B9D 宝 CJK UNIFIED IDEOGRAPH-5B9D 0x5B9E 实 CJK UNIFIED IDEOGRAPH-5B9E 0x5B9F 実 CJK UNIFIED IDEOGRAPH-5B9F 0x5BA0 宠 CJK UNIFIED IDEOGRAPH-5BA0 0x5BA1 审 CJK UNIFIED IDEOGRAPH-5BA1 0x5BA2 客 CJK UNIFIED IDEOGRAPH-5BA2 0x5BA3 宣 CJK UNIFIED IDEOGRAPH-5BA3 0x5BA4 室 CJK UNIFIED IDEOGRAPH-5BA4 0x5BA5 宥 CJK UNIFIED IDEOGRAPH-5BA5 0x5BA6 宦 CJK UNIFIED IDEOGRAPH-5BA6 0x5BAA 宪 CJK UNIFIED IDEOGRAPH-5BAA 0x5BAB 宫 CJK UNIFIED IDEOGRAPH-5BAB 0x5BAC 宬 CJK UNIFIED IDEOGRAPH-5BAC 0x5BAE 宮 CJK UNIFIED IDEOGRAPH-5BAE 0x5BB0 宰 CJK UNIFIED IDEOGRAPH-5BB0 0x5BB3 害 CJK UNIFIED IDEOGRAPH-5BB3 0x5BB4 宴 CJK UNIFIED IDEOGRAPH-5BB4 0x5BB5 宵 CJK UNIFIED IDEOGRAPH-5BB5 0x5BB6 家 CJK UNIFIED IDEOGRAPH-5BB6 0x5BB8 宸 CJK UNIFIED IDEOGRAPH-5BB8 0x5BB9 容 CJK UNIFIED IDEOGRAPH-5BB9 0x5BBD 宽 CJK UNIFIED IDEOGRAPH-5BBD 0x5BBE 宾 CJK UNIFIED IDEOGRAPH-5BBE 0x5BBF 宿 CJK UNIFIED IDEOGRAPH-5BBF 0x5BC2 寂 CJK UNIFIED IDEOGRAPH-5BC2 0x5BC4 寄 CJK UNIFIED IDEOGRAPH-5BC4 0x5BC5 寅 CJK UNIFIED IDEOGRAPH-5BC5 0x5BC6 密 CJK UNIFIED IDEOGRAPH-5BC6 0x5BC7 寇 CJK UNIFIED IDEOGRAPH-5BC7 0x5BCC 富 CJK UNIFIED IDEOGRAPH-5BCC 0x5BD0 寐 CJK UNIFIED IDEOGRAPH-5BD0 0x5BD2 寒 CJK UNIFIED IDEOGRAPH-5BD2 0x5BD3 寓 CJK UNIFIED IDEOGRAPH-5BD3 0x5BD4 寔 CJK UNIFIED IDEOGRAPH-5BD4 0x5BDD 寝 CJK UNIFIED IDEOGRAPH-5BDD 0x5BDE 寞 CJK UNIFIED IDEOGRAPH-5BDE 0x5BDF 察 CJK UNIFIED IDEOGRAPH-5BDF 0x5BE1 寡 CJK UNIFIED IDEOGRAPH-5BE1 0x5BE4 寤 CJK UNIFIED IDEOGRAPH-5BE4 0x5BE5 寥 CJK UNIFIED IDEOGRAPH-5BE5 0x5BE6 實 CJK UNIFIED IDEOGRAPH-5BE6 0x5BE7 寧 CJK UNIFIED IDEOGRAPH-5BE7 0x5BE8 寨 CJK UNIFIED IDEOGRAPH-5BE8 0x5BE9 審 CJK UNIFIED IDEOGRAPH-5BE9 0x5BEB 寫 CJK UNIFIED IDEOGRAPH-5BEB 0x5BEC 寬 CJK UNIFIED IDEOGRAPH-5BEC 0x5BEE 寮 CJK UNIFIED IDEOGRAPH-5BEE 0x5BF0 寰 CJK UNIFIED IDEOGRAPH-5BF0 0x5BF3 寳 CJK UNIFIED IDEOGRAPH-5BF3 0x5BF5 寵 CJK UNIFIED IDEOGRAPH-5BF5 0x5BF6 寶 CJK UNIFIED IDEOGRAPH-5BF6 0x5BF8 寸 CJK UNIFIED IDEOGRAPH-5BF8 0x5BF9 对 CJK UNIFIED IDEOGRAPH-5BF9 0x5BFA 寺 CJK UNIFIED IDEOGRAPH-5BFA 0x5BFB 寻 CJK UNIFIED IDEOGRAPH-5BFB 0x5BFC 导 CJK UNIFIED IDEOGRAPH-5BFC 0x5BFE 対 CJK UNIFIED IDEOGRAPH-5BFE 0x5BFF 寿 CJK UNIFIED IDEOGRAPH-5BFF 0x5C01 封 CJK UNIFIED IDEOGRAPH-5C01 0x5C02 専 CJK UNIFIED IDEOGRAPH-5C02 0x5C04 射 CJK UNIFIED IDEOGRAPH-5C04 0x5C06 将 CJK UNIFIED IDEOGRAPH-5C06 0x5C07 將 CJK UNIFIED IDEOGRAPH-5C07 0x5C08 專 CJK UNIFIED IDEOGRAPH-5C08 0x5C09 尉 CJK UNIFIED IDEOGRAPH-5C09 0x5C0A 尊 CJK UNIFIED IDEOGRAPH-5C0A 0x5C0B 尋 CJK UNIFIED IDEOGRAPH-5C0B 0x5C0D 對 CJK UNIFIED IDEOGRAPH-5C0D 0x5C0E 導 CJK UNIFIED IDEOGRAPH-5C0E 0x5C0F 小 CJK UNIFIED IDEOGRAPH-5C0F 0x5C10 尐 CJK UNIFIED IDEOGRAPH-5C10 0x5C11 少 CJK UNIFIED IDEOGRAPH-5C11 0x5C13 尓 CJK UNIFIED IDEOGRAPH-5C13 0x5C14 尔 CJK UNIFIED IDEOGRAPH-5C14 0x5C15 尕 CJK UNIFIED IDEOGRAPH-5C15 0x5C16 尖 CJK UNIFIED IDEOGRAPH-5C16 0x5C18 尘 CJK UNIFIED IDEOGRAPH-5C18 0x5C1A 尚 CJK UNIFIED IDEOGRAPH-5C1A 0x5C1B 尛 CJK UNIFIED IDEOGRAPH-5C1B 0x5C1D 尝 CJK UNIFIED IDEOGRAPH-5C1D 0x5C24 尤 CJK UNIFIED IDEOGRAPH-5C24 0x5C27 尧 CJK UNIFIED IDEOGRAPH-5C27 0x5C2C 尬 CJK UNIFIED IDEOGRAPH-5C2C 0x5C2F 尯 CJK UNIFIED IDEOGRAPH-5C2F 0x5C31 就 CJK UNIFIED IDEOGRAPH-5C31 0x5C34 尴 CJK UNIFIED IDEOGRAPH-5C34 0x5C38 尸 CJK UNIFIED IDEOGRAPH-5C38 0x5C39 尹 CJK UNIFIED IDEOGRAPH-5C39 0x5C3A 尺 CJK UNIFIED IDEOGRAPH-5C3A 0x5C3B 尻 CJK UNIFIED IDEOGRAPH-5C3B 0x5C3C 尼 CJK UNIFIED IDEOGRAPH-5C3C 0x5C3D 尽 CJK UNIFIED IDEOGRAPH-5C3D 0x5C3E 尾 CJK UNIFIED IDEOGRAPH-5C3E 0x5C3F 尿 CJK UNIFIED IDEOGRAPH-5C3F 0x5C40 局 CJK UNIFIED IDEOGRAPH-5C40 0x5C41 屁 CJK UNIFIED IDEOGRAPH-5C41 0x5C42 层 CJK UNIFIED IDEOGRAPH-5C42 0x5C44 屄 CJK UNIFIED IDEOGRAPH-5C44 0x5C45 居 CJK UNIFIED IDEOGRAPH-5C45 0x5C46 屆 CJK UNIFIED IDEOGRAPH-5C46 0x5C48 屈 CJK UNIFIED IDEOGRAPH-5C48 0x5C49 屉 CJK UNIFIED IDEOGRAPH-5C49 0x5C4A 届 CJK UNIFIED IDEOGRAPH-5C4A 0x5C4B 屋 CJK UNIFIED IDEOGRAPH-5C4B 0x5C4C 屌 CJK UNIFIED IDEOGRAPH-5C4C 0x5C4D 屍 CJK UNIFIED IDEOGRAPH-5C4D 0x5C4E 屎 CJK UNIFIED IDEOGRAPH-5C4E 0x5C4F 屏 CJK UNIFIED IDEOGRAPH-5C4F 0x5C50 屐 CJK UNIFIED IDEOGRAPH-5C50 0x5C51 屑 CJK UNIFIED IDEOGRAPH-5C51 0x5C55 展 CJK UNIFIED IDEOGRAPH-5C55 0x5C5E 属 CJK UNIFIED IDEOGRAPH-5C5E 0x5C60 屠 CJK UNIFIED IDEOGRAPH-5C60 0x5C61 屡 CJK UNIFIED IDEOGRAPH-5C61 0x5C64 層 CJK UNIFIED IDEOGRAPH-5C64 0x5C65 履 CJK UNIFIED IDEOGRAPH-5C65 0x5C6C 屬 CJK UNIFIED IDEOGRAPH-5C6C 0x5C6F 屯 CJK UNIFIED IDEOGRAPH-5C6F 0x5C71 山 CJK UNIFIED IDEOGRAPH-5C71 0x5C79 屹 CJK UNIFIED IDEOGRAPH-5C79 0x5C7C 屼 CJK UNIFIED IDEOGRAPH-5C7C 0x5C7D 屽 CJK UNIFIED IDEOGRAPH-5C7D 0x5C7E 屾 CJK UNIFIED IDEOGRAPH-5C7E 0x5C7F 屿 CJK UNIFIED IDEOGRAPH-5C7F 0x5C80 岀 CJK UNIFIED IDEOGRAPH-5C80 0x5C81 岁 CJK UNIFIED IDEOGRAPH-5C81 0x5C82 岂 CJK UNIFIED IDEOGRAPH-5C82 0x5C83 岃 CJK UNIFIED IDEOGRAPH-5C83 0x5C84 岄 CJK UNIFIED IDEOGRAPH-5C84 0x5C8C 岌 CJK UNIFIED IDEOGRAPH-5C8C 0x5C90 岐 CJK UNIFIED IDEOGRAPH-5C90 0x5C91 岑 CJK UNIFIED IDEOGRAPH-5C91 0x5C94 岔 CJK UNIFIED IDEOGRAPH-5C94 0x5C96 岖 CJK UNIFIED IDEOGRAPH-5C96 0x5C97 岗 CJK UNIFIED IDEOGRAPH-5C97 0x5C98 岘 CJK UNIFIED IDEOGRAPH-5C98 0x5C99 岙 CJK UNIFIED IDEOGRAPH-5C99 0x5C9A 岚 CJK UNIFIED IDEOGRAPH-5C9A 0x5C9B 岛 CJK UNIFIED IDEOGRAPH-5C9B 0x5CA1 岡 CJK UNIFIED IDEOGRAPH-5CA1 0x5CA2 岢 CJK UNIFIED IDEOGRAPH-5CA2 0x5CA9 岩 CJK UNIFIED IDEOGRAPH-5CA9 0x5CAB 岫 CJK UNIFIED IDEOGRAPH-5CAB 0x5CAC 岬 CJK UNIFIED IDEOGRAPH-5CAC 0x5CAD 岭 CJK UNIFIED IDEOGRAPH-5CAD 0x5CB1 岱 CJK UNIFIED IDEOGRAPH-5CB1 0x5CB3 岳 CJK UNIFIED IDEOGRAPH-5CB3 0x5CB7 岷 CJK UNIFIED IDEOGRAPH-5CB7 0x5CB8 岸 CJK UNIFIED IDEOGRAPH-5CB8 0x5CBF 岿 CJK UNIFIED IDEOGRAPH-5CBF 0x5CC1 峁 CJK UNIFIED IDEOGRAPH-5CC1 0x5CC4 峄 CJK UNIFIED IDEOGRAPH-5CC4 0x5CC7 峇 CJK UNIFIED IDEOGRAPH-5CC7 0x5CCB 峋 CJK UNIFIED IDEOGRAPH-5CCB 0x5CD2 峒 CJK UNIFIED IDEOGRAPH-5CD2 0x5CD9 峙 CJK UNIFIED IDEOGRAPH-5CD9 0x5CE1 峡 CJK UNIFIED IDEOGRAPH-5CE1 0x5CE4 峤 CJK UNIFIED IDEOGRAPH-5CE4 0x5CE5 峥 CJK UNIFIED IDEOGRAPH-5CE5 0x5CE6 峦 CJK UNIFIED IDEOGRAPH-5CE6 0x5CE8 峨 CJK UNIFIED IDEOGRAPH-5CE8 0x5CEA 峪 CJK UNIFIED IDEOGRAPH-5CEA 0x5CED 峭 CJK UNIFIED IDEOGRAPH-5CED 0x5CEF 峯 CJK UNIFIED IDEOGRAPH-5CEF 0x5CF0 峰 CJK UNIFIED IDEOGRAPH-5CF0 0x5CF6 島 CJK UNIFIED IDEOGRAPH-5CF6 0x5CFB 峻 CJK UNIFIED IDEOGRAPH-5CFB 0x5CFD 峽 CJK UNIFIED IDEOGRAPH-5CFD 0x5D02 崂 CJK UNIFIED IDEOGRAPH-5D02 0x5D03 崃 CJK UNIFIED IDEOGRAPH-5D03 0x5D06 崆 CJK UNIFIED IDEOGRAPH-5D06 0x5D07 崇 CJK UNIFIED IDEOGRAPH-5D07 0x5D0E 崎 CJK UNIFIED IDEOGRAPH-5D0E 0x5D11 崑 CJK UNIFIED IDEOGRAPH-5D11 0x5D14 崔 CJK UNIFIED IDEOGRAPH-5D14 0x5D16 崖 CJK UNIFIED IDEOGRAPH-5D16 0x5D17 崗 CJK UNIFIED IDEOGRAPH-5D17 0x5D1B 崛 CJK UNIFIED IDEOGRAPH-5D1B 0x5D27 崧 CJK UNIFIED IDEOGRAPH-5D27 0x5D29 崩 CJK UNIFIED IDEOGRAPH-5D29 0x5D2D 崭 CJK UNIFIED IDEOGRAPH-5D2D 0x5D2E 崮 CJK UNIFIED IDEOGRAPH-5D2E 0x5D34 崴 CJK UNIFIED IDEOGRAPH-5D34 0x5D3D 崽 CJK UNIFIED IDEOGRAPH-5D3D 0x5D47 嵇 CJK UNIFIED IDEOGRAPH-5D47 0x5D4A 嵊 CJK UNIFIED IDEOGRAPH-5D4A 0x5D4B 嵋 CJK UNIFIED IDEOGRAPH-5D4B 0x5D4C 嵌 CJK UNIFIED IDEOGRAPH-5D4C 0x5D4E 嵎 CJK UNIFIED IDEOGRAPH-5D4E 0x5D50 嵐 CJK UNIFIED IDEOGRAPH-5D50 0x5D58 嵘 CJK UNIFIED IDEOGRAPH-5D58 0x5D5B 嵛 CJK UNIFIED IDEOGRAPH-5D5B 0x5D69 嵩 CJK UNIFIED IDEOGRAPH-5D69 0x5D6C 嵬 CJK UNIFIED IDEOGRAPH-5D6C 0x5D6F 嵯 CJK UNIFIED IDEOGRAPH-5D6F 0x5D74 嵴 CJK UNIFIED IDEOGRAPH-5D74 0x5D82 嶂 CJK UNIFIED IDEOGRAPH-5D82 0x5D84 嶄 CJK UNIFIED IDEOGRAPH-5D84 0x5D85 嶅 CJK UNIFIED IDEOGRAPH-5D85 0x5D86 嶆 CJK UNIFIED IDEOGRAPH-5D86 0x5D87 嶇 CJK UNIFIED IDEOGRAPH-5D87 0x5D88 嶈 CJK UNIFIED IDEOGRAPH-5D88 0x5D8B 嶋 CJK UNIFIED IDEOGRAPH-5D8B 0x5D99 嶙 CJK UNIFIED IDEOGRAPH-5D99 0x5DB7 嶷 CJK UNIFIED IDEOGRAPH-5DB7 0x5DBA 嶺 CJK UNIFIED IDEOGRAPH-5DBA 0x5DBD 嶽 CJK UNIFIED IDEOGRAPH-5DBD 0x5DC5 巅 CJK UNIFIED IDEOGRAPH-5DC5 0x5DCD 巍 CJK UNIFIED IDEOGRAPH-5DCD 0x5DDD 川 CJK UNIFIED IDEOGRAPH-5DDD 0x5DDE 州 CJK UNIFIED IDEOGRAPH-5DDE 0x5DE1 巡 CJK UNIFIED IDEOGRAPH-5DE1 0x5DE2 巢 CJK UNIFIED IDEOGRAPH-5DE2 0x5DE5 工 CJK UNIFIED IDEOGRAPH-5DE5 0x5DE6 左 CJK UNIFIED IDEOGRAPH-5DE6 0x5DE7 巧 CJK UNIFIED IDEOGRAPH-5DE7 0x5DE8 巨 CJK UNIFIED IDEOGRAPH-5DE8 0x5DE9 巩 CJK UNIFIED IDEOGRAPH-5DE9 0x5DEB 巫 CJK UNIFIED IDEOGRAPH-5DEB 0x5DEE 差 CJK UNIFIED IDEOGRAPH-5DEE 0x5DEF 巯 CJK UNIFIED IDEOGRAPH-5DEF 0x5DF1 己 CJK UNIFIED IDEOGRAPH-5DF1 0x5DF2 已 CJK UNIFIED IDEOGRAPH-5DF2 0x5DF3 巳 CJK UNIFIED IDEOGRAPH-5DF3 0x5DF4 巴 CJK UNIFIED IDEOGRAPH-5DF4 0x5DF7 巷 CJK UNIFIED IDEOGRAPH-5DF7 0x5DFB 巻 CJK UNIFIED IDEOGRAPH-5DFB 0x5DFD 巽 CJK UNIFIED IDEOGRAPH-5DFD 0x5DFE 巾 CJK UNIFIED IDEOGRAPH-5DFE 0x5DFF 巿 CJK UNIFIED IDEOGRAPH-5DFF 0x5E01 币 CJK UNIFIED IDEOGRAPH-5E01 0x5E02 市 CJK UNIFIED IDEOGRAPH-5E02 0x5E03 布 CJK UNIFIED IDEOGRAPH-5E03 0x5E05 帅 CJK UNIFIED IDEOGRAPH-5E05 0x5E06 帆 CJK UNIFIED IDEOGRAPH-5E06 0x5E08 师 CJK UNIFIED IDEOGRAPH-5E08 0x5E0C 希 CJK UNIFIED IDEOGRAPH-5E0C 0x5E0F 帏 CJK UNIFIED IDEOGRAPH-5E0F 0x5E10 帐 CJK UNIFIED IDEOGRAPH-5E10 0x5E14 帔 CJK UNIFIED IDEOGRAPH-5E14 0x5E15 帕 CJK UNIFIED IDEOGRAPH-5E15 0x5E16 帖 CJK UNIFIED IDEOGRAPH-5E16 0x5E18 帘 CJK UNIFIED IDEOGRAPH-5E18 0x5E1A 帚 CJK UNIFIED IDEOGRAPH-5E1A 0x5E1B 帛 CJK UNIFIED IDEOGRAPH-5E1B 0x5E1C 帜 CJK UNIFIED IDEOGRAPH-5E1C 0x5E1D 帝 CJK UNIFIED IDEOGRAPH-5E1D 0x5E25 帥 CJK UNIFIED IDEOGRAPH-5E25 0x5E26 带 CJK UNIFIED IDEOGRAPH-5E26 0x5E27 帧 CJK UNIFIED IDEOGRAPH-5E27 0x5E2B 師 CJK UNIFIED IDEOGRAPH-5E2B 0x5E2D 席 CJK UNIFIED IDEOGRAPH-5E2D 0x5E2E 帮 CJK UNIFIED IDEOGRAPH-5E2E 0x5E2F 帯 CJK UNIFIED IDEOGRAPH-5E2F 0x5E30 帰 CJK UNIFIED IDEOGRAPH-5E30 0x5E33 帳 CJK UNIFIED IDEOGRAPH-5E33 0x5E36 帶 CJK UNIFIED IDEOGRAPH-5E36 0x5E37 帷 CJK UNIFIED IDEOGRAPH-5E37 0x5E38 常 CJK UNIFIED IDEOGRAPH-5E38 0x5E3C 帼 CJK UNIFIED IDEOGRAPH-5E3C 0x5E3D 帽 CJK UNIFIED IDEOGRAPH-5E3D 0x5E42 幂 CJK UNIFIED IDEOGRAPH-5E42 0x5E44 幄 CJK UNIFIED IDEOGRAPH-5E44 0x5E45 幅 CJK UNIFIED IDEOGRAPH-5E45 0x5E4C 幌 CJK UNIFIED IDEOGRAPH-5E4C 0x5E54 幔 CJK UNIFIED IDEOGRAPH-5E54 0x5E55 幕 CJK UNIFIED IDEOGRAPH-5E55 0x5E61 幡 CJK UNIFIED IDEOGRAPH-5E61 0x5E62 幢 CJK UNIFIED IDEOGRAPH-5E62 0x5E63 幣 CJK UNIFIED IDEOGRAPH-5E63 0x5E6B 幫 CJK UNIFIED IDEOGRAPH-5E6B 0x5E72 干 CJK UNIFIED IDEOGRAPH-5E72 0x5E73 平 CJK UNIFIED IDEOGRAPH-5E73 0x5E74 年 CJK UNIFIED IDEOGRAPH-5E74 0x5E76 并 CJK UNIFIED IDEOGRAPH-5E76 0x5E78 幸 CJK UNIFIED IDEOGRAPH-5E78 0x5E79 幹 CJK UNIFIED IDEOGRAPH-5E79 0x5E7A 幺 CJK UNIFIED IDEOGRAPH-5E7A 0x5E7B 幻 CJK UNIFIED IDEOGRAPH-5E7B 0x5E7C 幼 CJK UNIFIED IDEOGRAPH-5E7C 0x5E7D 幽 CJK UNIFIED IDEOGRAPH-5E7D 0x5E7E 幾 CJK UNIFIED IDEOGRAPH-5E7E 0x5E7F 广 CJK UNIFIED IDEOGRAPH-5E7F 0x5E83 広 CJK UNIFIED IDEOGRAPH-5E83 0x5E84 庄 CJK UNIFIED IDEOGRAPH-5E84 0x5E86 庆 CJK UNIFIED IDEOGRAPH-5E86 0x5E87 庇 CJK UNIFIED IDEOGRAPH-5E87 0x5E8A 床 CJK UNIFIED IDEOGRAPH-5E8A 0x5E8F 序 CJK UNIFIED IDEOGRAPH-5E8F 0x5E90 庐 CJK UNIFIED IDEOGRAPH-5E90 0x5E91 庑 CJK UNIFIED IDEOGRAPH-5E91 0x5E93 库 CJK UNIFIED IDEOGRAPH-5E93 0x5E94 应 CJK UNIFIED IDEOGRAPH-5E94 0x5E95 底 CJK UNIFIED IDEOGRAPH-5E95 0x5E96 庖 CJK UNIFIED IDEOGRAPH-5E96 0x5E97 店 CJK UNIFIED IDEOGRAPH-5E97 0x5E99 庙 CJK UNIFIED IDEOGRAPH-5E99 0x5E9A 庚 CJK UNIFIED IDEOGRAPH-5E9A 0x5E9C 府 CJK UNIFIED IDEOGRAPH-5E9C 0x5E9D 庝 CJK UNIFIED IDEOGRAPH-5E9D 0x5E9E 庞 CJK UNIFIED IDEOGRAPH-5E9E 0x5E9F 废 CJK UNIFIED IDEOGRAPH-5E9F 0x5EA0 庠 CJK UNIFIED IDEOGRAPH-5EA0 0x5EA1 庡 CJK UNIFIED IDEOGRAPH-5EA1 0x5EA2 庢 CJK UNIFIED IDEOGRAPH-5EA2 0x5EA3 庣 CJK UNIFIED IDEOGRAPH-5EA3 0x5EA6 度 CJK UNIFIED IDEOGRAPH-5EA6 0x5EA7 座 CJK UNIFIED IDEOGRAPH-5EA7 0x5EAB 庫 CJK UNIFIED IDEOGRAPH-5EAB 0x5EAD 庭 CJK UNIFIED IDEOGRAPH-5EAD 0x5EB5 庵 CJK UNIFIED IDEOGRAPH-5EB5 0x5EB6 庶 CJK UNIFIED IDEOGRAPH-5EB6 0x5EB7 康 CJK UNIFIED IDEOGRAPH-5EB7 0x5EB8 庸 CJK UNIFIED IDEOGRAPH-5EB8 0x5EB9 庹 CJK UNIFIED IDEOGRAPH-5EB9 0x5EBE 庾 CJK UNIFIED IDEOGRAPH-5EBE 0x5EC1 廁 CJK UNIFIED IDEOGRAPH-5EC1 0x5EC8 廈 CJK UNIFIED IDEOGRAPH-5EC8 0x5EC9 廉 CJK UNIFIED IDEOGRAPH-5EC9 0x5ECA 廊 CJK UNIFIED IDEOGRAPH-5ECA 0x5ECB 廋 CJK UNIFIED IDEOGRAPH-5ECB 0x5ED3 廓 CJK UNIFIED IDEOGRAPH-5ED3 0x5ED6 廖 CJK UNIFIED IDEOGRAPH-5ED6 0x5EDA 廚 CJK UNIFIED IDEOGRAPH-5EDA 0x5EDF 廟 CJK UNIFIED IDEOGRAPH-5EDF 0x5EE0 廠 CJK UNIFIED IDEOGRAPH-5EE0 0x5EE2 廢 CJK UNIFIED IDEOGRAPH-5EE2 0x5EE3 廣 CJK UNIFIED IDEOGRAPH-5EE3 0x5EEA 廪 CJK UNIFIED IDEOGRAPH-5EEA 0x5EF3 廳 CJK UNIFIED IDEOGRAPH-5EF3 0x5EF6 延 CJK UNIFIED IDEOGRAPH-5EF6 0x5EF7 廷 CJK UNIFIED IDEOGRAPH-5EF7 0x5EFA 建 CJK UNIFIED IDEOGRAPH-5EFA 0x5EFF 廿 CJK UNIFIED IDEOGRAPH-5EFF 0x5F00 开 CJK UNIFIED IDEOGRAPH-5F00 0x5F01 弁 CJK UNIFIED IDEOGRAPH-5F01 0x5F02 异 CJK UNIFIED IDEOGRAPH-5F02 0x5F03 弃 CJK UNIFIED IDEOGRAPH-5F03 0x5F04 弄 CJK UNIFIED IDEOGRAPH-5F04 0x5F08 弈 CJK UNIFIED IDEOGRAPH-5F08 0x5F0A 弊 CJK UNIFIED IDEOGRAPH-5F0A 0x5F0B 弋 CJK UNIFIED IDEOGRAPH-5F0B 0x5F0F 式 CJK UNIFIED IDEOGRAPH-5F0F 0x5F11 弑 CJK UNIFIED IDEOGRAPH-5F11 0x5F13 弓 CJK UNIFIED IDEOGRAPH-5F13 0x5F15 引 CJK UNIFIED IDEOGRAPH-5F15 0x5F17 弗 CJK UNIFIED IDEOGRAPH-5F17 0x5F18 弘 CJK UNIFIED IDEOGRAPH-5F18 0x5F1B 弛 CJK UNIFIED IDEOGRAPH-5F1B 0x5F1F 弟 CJK UNIFIED IDEOGRAPH-5F1F 0x5F20 张 CJK UNIFIED IDEOGRAPH-5F20 0x5F22 弢 CJK UNIFIED IDEOGRAPH-5F22 0x5F25 弥 CJK UNIFIED IDEOGRAPH-5F25 0x5F26 弦 CJK UNIFIED IDEOGRAPH-5F26 0x5F27 弧 CJK UNIFIED IDEOGRAPH-5F27 0x5F29 弩 CJK UNIFIED IDEOGRAPH-5F29 0x5F2D 弭 CJK UNIFIED IDEOGRAPH-5F2D 0x5F2F 弯 CJK UNIFIED IDEOGRAPH-5F2F 0x5F31 弱 CJK UNIFIED IDEOGRAPH-5F31 0x5F35 張 CJK UNIFIED IDEOGRAPH-5F35 0x5F37 強 CJK UNIFIED IDEOGRAPH-5F37 0x5F39 弹 CJK UNIFIED IDEOGRAPH-5F39 0x5F3A 强 CJK UNIFIED IDEOGRAPH-5F3A 0x5F3C 弼 CJK UNIFIED IDEOGRAPH-5F3C 0x5F3E 弾 CJK UNIFIED IDEOGRAPH-5F3E 0x5F40 彀 CJK UNIFIED IDEOGRAPH-5F40 0x5F42 彂 CJK UNIFIED IDEOGRAPH-5F42 0x5F48 彈 CJK UNIFIED IDEOGRAPH-5F48 0x5F4C 彌 CJK UNIFIED IDEOGRAPH-5F4C 0x5F4E 彎 CJK UNIFIED IDEOGRAPH-5F4E 0x5F52 归 CJK UNIFIED IDEOGRAPH-5F52 0x5F53 当 CJK UNIFIED IDEOGRAPH-5F53 0x5F55 录 CJK UNIFIED IDEOGRAPH-5F55 0x5F57 彗 CJK UNIFIED IDEOGRAPH-5F57 0x5F58 彘 CJK UNIFIED IDEOGRAPH-5F58 0x5F59 彙 CJK UNIFIED IDEOGRAPH-5F59 0x5F5D 彝 CJK UNIFIED IDEOGRAPH-5F5D 0x5F61 彡 CJK UNIFIED IDEOGRAPH-5F61 0x5F62 形 CJK UNIFIED IDEOGRAPH-5F62 0x5F64 彤 CJK UNIFIED IDEOGRAPH-5F64 0x5F65 彥 CJK UNIFIED IDEOGRAPH-5F65 0x5F66 彦 CJK UNIFIED IDEOGRAPH-5F66 0x5F67 彧 CJK UNIFIED IDEOGRAPH-5F67 0x5F69 彩 CJK UNIFIED IDEOGRAPH-5F69 0x5F6A 彪 CJK UNIFIED IDEOGRAPH-5F6A 0x5F6C 彬 CJK UNIFIED IDEOGRAPH-5F6C 0x5F6D 彭 CJK UNIFIED IDEOGRAPH-5F6D 0x5F70 彰 CJK UNIFIED IDEOGRAPH-5F70 0x5F71 影 CJK UNIFIED IDEOGRAPH-5F71 0x5F73 彳 CJK UNIFIED IDEOGRAPH-5F73 0x5F77 彷 CJK UNIFIED IDEOGRAPH-5F77 0x5F79 役 CJK UNIFIED IDEOGRAPH-5F79 0x5F7B 彻 CJK UNIFIED IDEOGRAPH-5F7B 0x5F7C 彼 CJK UNIFIED IDEOGRAPH-5F7C 0x5F7F 彿 CJK UNIFIED IDEOGRAPH-5F7F 0x5F80 往 CJK UNIFIED IDEOGRAPH-5F80 0x5F81 征 CJK UNIFIED IDEOGRAPH-5F81 0x5F83 徃 CJK UNIFIED IDEOGRAPH-5F83 0x5F84 径 CJK UNIFIED IDEOGRAPH-5F84 0x5F85 待 CJK UNIFIED IDEOGRAPH-5F85 0x5F87 徇 CJK UNIFIED IDEOGRAPH-5F87 0x5F88 很 CJK UNIFIED IDEOGRAPH-5F88 0x5F89 徉 CJK UNIFIED IDEOGRAPH-5F89 0x5F8A 徊 CJK UNIFIED IDEOGRAPH-5F8A 0x5F8B 律 CJK UNIFIED IDEOGRAPH-5F8B 0x5F8C 後 CJK UNIFIED IDEOGRAPH-5F8C 0x5F90 徐 CJK UNIFIED IDEOGRAPH-5F90 0x5F91 徑 CJK UNIFIED IDEOGRAPH-5F91 0x5F92 徒 CJK UNIFIED IDEOGRAPH-5F92 0x5F93 従 CJK UNIFIED IDEOGRAPH-5F93 0x5F95 徕 CJK UNIFIED IDEOGRAPH-5F95 0x5F97 得 CJK UNIFIED IDEOGRAPH-5F97 0x5F98 徘 CJK UNIFIED IDEOGRAPH-5F98 0x5F99 徙 CJK UNIFIED IDEOGRAPH-5F99 0x5F9C 徜 CJK UNIFIED IDEOGRAPH-5F9C 0x5F9E 從 CJK UNIFIED IDEOGRAPH-5F9E 0x5FA1 御 CJK UNIFIED IDEOGRAPH-5FA1 0x5FA8 徨 CJK UNIFIED IDEOGRAPH-5FA8 0x5FA9 復 CJK UNIFIED IDEOGRAPH-5FA9 0x5FAA 循 CJK UNIFIED IDEOGRAPH-5FAA 0x5FAD 徭 CJK UNIFIED IDEOGRAPH-5FAD 0x5FAE 微 CJK UNIFIED IDEOGRAPH-5FAE 0x5FB3 徳 CJK UNIFIED IDEOGRAPH-5FB3 0x5FB5 徵 CJK UNIFIED IDEOGRAPH-5FB5 0x5FB7 德 CJK UNIFIED IDEOGRAPH-5FB7 0x5FB9 徹 CJK UNIFIED IDEOGRAPH-5FB9 0x5FBD 徽 CJK UNIFIED IDEOGRAPH-5FBD 0x5FC3 心 CJK UNIFIED IDEOGRAPH-5FC3 0x5FC4 忄 CJK UNIFIED IDEOGRAPH-5FC4 0x5FC5 必 CJK UNIFIED IDEOGRAPH-5FC5 0x5FC6 忆 CJK UNIFIED IDEOGRAPH-5FC6 0x5FCC 忌 CJK UNIFIED IDEOGRAPH-5FCC 0x5FCD 忍 CJK UNIFIED IDEOGRAPH-5FCD 0x5FCF 忏 CJK UNIFIED IDEOGRAPH-5FCF 0x5FD0 忐 CJK UNIFIED IDEOGRAPH-5FD0 0x5FD1 忑 CJK UNIFIED IDEOGRAPH-5FD1 0x5FD2 忒 CJK UNIFIED IDEOGRAPH-5FD2 0x5FD3 忓 CJK UNIFIED IDEOGRAPH-5FD3 0x5FD4 忔 CJK UNIFIED IDEOGRAPH-5FD4 0x5FD6 忖 CJK UNIFIED IDEOGRAPH-5FD6 0x5FD7 志 CJK UNIFIED IDEOGRAPH-5FD7 0x5FD8 忘 CJK UNIFIED IDEOGRAPH-5FD8 0x5FD9 忙 CJK UNIFIED IDEOGRAPH-5FD9 0x5FDA 忚 CJK UNIFIED IDEOGRAPH-5FDA 0x5FDC 応 CJK UNIFIED IDEOGRAPH-5FDC 0x5FDD 忝 CJK UNIFIED IDEOGRAPH-5FDD 0x5FE0 忠 CJK UNIFIED IDEOGRAPH-5FE0 0x5FE1 忡 CJK UNIFIED IDEOGRAPH-5FE1 0x5FE4 忤 CJK UNIFIED IDEOGRAPH-5FE4 0x5FE7 忧 CJK UNIFIED IDEOGRAPH-5FE7 0x5FEA 忪 CJK UNIFIED IDEOGRAPH-5FEA 0x5FEB 快 CJK UNIFIED IDEOGRAPH-5FEB 0x5FF1 忱 CJK UNIFIED IDEOGRAPH-5FF1 0x5FF5 念 CJK UNIFIED IDEOGRAPH-5FF5 0x5FFB 忻 CJK UNIFIED IDEOGRAPH-5FFB 0x5FFD 忽 CJK UNIFIED IDEOGRAPH-5FFD 0x5FFE 忾 CJK UNIFIED IDEOGRAPH-5FFE 0x5FFF 忿 CJK UNIFIED IDEOGRAPH-5FFF 0x6000 怀 CJK UNIFIED IDEOGRAPH-6000 0x6001 态 CJK UNIFIED IDEOGRAPH-6001 0x6002 怂 CJK UNIFIED IDEOGRAPH-6002 0x6004 怄 CJK UNIFIED IDEOGRAPH-6004 0x6005 怅 CJK UNIFIED IDEOGRAPH-6005 0x6006 怆 CJK UNIFIED IDEOGRAPH-6006 0x600E 怎 CJK UNIFIED IDEOGRAPH-600E 0x600F 怏 CJK UNIFIED IDEOGRAPH-600F 0x6012 怒 CJK UNIFIED IDEOGRAPH-6012 0x6014 怔 CJK UNIFIED IDEOGRAPH-6014 0x6015 怕 CJK UNIFIED IDEOGRAPH-6015 0x6016 怖 CJK UNIFIED IDEOGRAPH-6016 0x6019 怙 CJK UNIFIED IDEOGRAPH-6019 0x601B 怛 CJK UNIFIED IDEOGRAPH-601B 0x601C 怜 CJK UNIFIED IDEOGRAPH-601C 0x601D 思 CJK UNIFIED IDEOGRAPH-601D 0x6020 怠 CJK UNIFIED IDEOGRAPH-6020 0x6021 怡 CJK UNIFIED IDEOGRAPH-6021 0x6025 急 CJK UNIFIED IDEOGRAPH-6025 0x6026 怦 CJK UNIFIED IDEOGRAPH-6026 0x6027 性 CJK UNIFIED IDEOGRAPH-6027 0x6028 怨 CJK UNIFIED IDEOGRAPH-6028 0x602A 怪 CJK UNIFIED IDEOGRAPH-602A 0x602F 怯 CJK UNIFIED IDEOGRAPH-602F 0x6035 怵 CJK UNIFIED IDEOGRAPH-6035 0x603B 总 CJK UNIFIED IDEOGRAPH-603B 0x603C 怼 CJK UNIFIED IDEOGRAPH-603C 0x603F 怿 CJK UNIFIED IDEOGRAPH-603F 0x6041 恁 CJK UNIFIED IDEOGRAPH-6041 0x6042 恂 CJK UNIFIED IDEOGRAPH-6042 0x6043 恃 CJK UNIFIED IDEOGRAPH-6043 0x6046 恆 CJK UNIFIED IDEOGRAPH-6046 0x604B 恋 CJK UNIFIED IDEOGRAPH-604B 0x604D 恍 CJK UNIFIED IDEOGRAPH-604D 0x6050 恐 CJK UNIFIED IDEOGRAPH-6050 0x6052 恒 CJK UNIFIED IDEOGRAPH-6052 0x6055 恕 CJK UNIFIED IDEOGRAPH-6055 0x6059 恙 CJK UNIFIED IDEOGRAPH-6059 0x6062 恢 CJK UNIFIED IDEOGRAPH-6062 0x6063 恣 CJK UNIFIED IDEOGRAPH-6063 0x6064 恤 CJK UNIFIED IDEOGRAPH-6064 0x6065 恥 CJK UNIFIED IDEOGRAPH-6065 0x6068 恨 CJK UNIFIED IDEOGRAPH-6068 0x6069 恩 CJK UNIFIED IDEOGRAPH-6069 0x606A 恪 CJK UNIFIED IDEOGRAPH-606A 0x606B 恫 CJK UNIFIED IDEOGRAPH-606B 0x606C 恬 CJK UNIFIED IDEOGRAPH-606C 0x606D 恭 CJK UNIFIED IDEOGRAPH-606D 0x606F 息 CJK UNIFIED IDEOGRAPH-606F 0x6070 恰 CJK UNIFIED IDEOGRAPH-6070 0x6073 恳 CJK UNIFIED IDEOGRAPH-6073 0x6075 恵 CJK UNIFIED IDEOGRAPH-6075 0x6076 恶 CJK UNIFIED IDEOGRAPH-6076 0x6078 恸 CJK UNIFIED IDEOGRAPH-6078 0x607A 恺 CJK UNIFIED IDEOGRAPH-607A 0x607B 恻 CJK UNIFIED IDEOGRAPH-607B 0x607C 恼 CJK UNIFIED IDEOGRAPH-607C 0x607D 恽 CJK UNIFIED IDEOGRAPH-607D 0x607F 恿 CJK UNIFIED IDEOGRAPH-607F 0x6084 悄 CJK UNIFIED IDEOGRAPH-6084 0x6085 悅 CJK UNIFIED IDEOGRAPH-6085 0x6089 悉 CJK UNIFIED IDEOGRAPH-6089 0x608A 悊 CJK UNIFIED IDEOGRAPH-608A 0x608C 悌 CJK UNIFIED IDEOGRAPH-608C 0x608D 悍 CJK UNIFIED IDEOGRAPH-608D 0x6094 悔 CJK UNIFIED IDEOGRAPH-6094 0x6096 悖 CJK UNIFIED IDEOGRAPH-6096 0x609A 悚 CJK UNIFIED IDEOGRAPH-609A 0x609F 悟 CJK UNIFIED IDEOGRAPH-609F 0x60A0 悠 CJK UNIFIED IDEOGRAPH-60A0 0x60A3 患 CJK UNIFIED IDEOGRAPH-60A3 0x60A6 悦 CJK UNIFIED IDEOGRAPH-60A6 0x60A8 您 CJK UNIFIED IDEOGRAPH-60A8 0x60A9 悩 CJK UNIFIED IDEOGRAPH-60A9 0x60AA 悪 CJK UNIFIED IDEOGRAPH-60AA 0x60AC 悬 CJK UNIFIED IDEOGRAPH-60AC 0x60AD 悭 CJK UNIFIED IDEOGRAPH-60AD 0x60AF 悯 CJK UNIFIED IDEOGRAPH-60AF 0x60B1 悱 CJK UNIFIED IDEOGRAPH-60B1 0x60B2 悲 CJK UNIFIED IDEOGRAPH-60B2 0x60B4 悴 CJK UNIFIED IDEOGRAPH-60B4 0x60B6 悶 CJK UNIFIED IDEOGRAPH-60B6 0x60B8 悸 CJK UNIFIED IDEOGRAPH-60B8 0x60BB 悻 CJK UNIFIED IDEOGRAPH-60BB 0x60BC 悼 CJK UNIFIED IDEOGRAPH-60BC 0x60C5 情 CJK UNIFIED IDEOGRAPH-60C5 0x60C6 惆 CJK UNIFIED IDEOGRAPH-60C6 0x60C7 惇 CJK UNIFIED IDEOGRAPH-60C7 0x60CA 惊 CJK UNIFIED IDEOGRAPH-60CA 0x60CB 惋 CJK UNIFIED IDEOGRAPH-60CB 0x60D1 惑 CJK UNIFIED IDEOGRAPH-60D1 0x60D5 惕 CJK UNIFIED IDEOGRAPH-60D5 0x60D8 惘 CJK UNIFIED IDEOGRAPH-60D8 0x60DA 惚 CJK UNIFIED IDEOGRAPH-60DA 0x60DC 惜 CJK UNIFIED IDEOGRAPH-60DC 0x60DF 惟 CJK UNIFIED IDEOGRAPH-60DF 0x60E0 惠 CJK UNIFIED IDEOGRAPH-60E0 0x60E1 惡 CJK UNIFIED IDEOGRAPH-60E1 0x60E2 惢 CJK UNIFIED IDEOGRAPH-60E2 0x60E6 惦 CJK UNIFIED IDEOGRAPH-60E6 0x60E7 惧 CJK UNIFIED IDEOGRAPH-60E7 0x60E8 惨 CJK UNIFIED IDEOGRAPH-60E8 0x60E9 惩 CJK UNIFIED IDEOGRAPH-60E9 0x60EB 惫 CJK UNIFIED IDEOGRAPH-60EB 0x60EC 惬 CJK UNIFIED IDEOGRAPH-60EC 0x60ED 惭 CJK UNIFIED IDEOGRAPH-60ED 0x60EE 惮 CJK UNIFIED IDEOGRAPH-60EE 0x60EF 惯 CJK UNIFIED IDEOGRAPH-60EF 0x60F0 惰 CJK UNIFIED IDEOGRAPH-60F0 0x60F1 惱 CJK UNIFIED IDEOGRAPH-60F1 0x60F3 想 CJK UNIFIED IDEOGRAPH-60F3 0x60F4 惴 CJK UNIFIED IDEOGRAPH-60F4 0x60F6 惶 CJK UNIFIED IDEOGRAPH-60F6 0x60F9 惹 CJK UNIFIED IDEOGRAPH-60F9 0x60FA 惺 CJK UNIFIED IDEOGRAPH-60FA 0x6101 愁 CJK UNIFIED IDEOGRAPH-6101 0x6108 愈 CJK UNIFIED IDEOGRAPH-6108 0x6109 愉 CJK UNIFIED IDEOGRAPH-6109 0x610D 愍 CJK UNIFIED IDEOGRAPH-610D 0x610E 愎 CJK UNIFIED IDEOGRAPH-610E 0x610F 意 CJK UNIFIED IDEOGRAPH-610F 0x6115 愕 CJK UNIFIED IDEOGRAPH-6115 0x611A 愚 CJK UNIFIED IDEOGRAPH-611A 0x611B 愛 CJK UNIFIED IDEOGRAPH-611B 0x611F 感 CJK UNIFIED IDEOGRAPH-611F 0x6120 愠 CJK UNIFIED IDEOGRAPH-6120 0x6123 愣 CJK UNIFIED IDEOGRAPH-6123 0x6124 愤 CJK UNIFIED IDEOGRAPH-6124 0x6127 愧 CJK UNIFIED IDEOGRAPH-6127 0x612A 愪 CJK UNIFIED IDEOGRAPH-612A 0x612B 愫 CJK UNIFIED IDEOGRAPH-612B 0x612C 愬 CJK UNIFIED IDEOGRAPH-612C 0x612D 愭 CJK UNIFIED IDEOGRAPH-612D 0x612E 愮 CJK UNIFIED IDEOGRAPH-612E 0x613F 愿 CJK UNIFIED IDEOGRAPH-613F 0x6148 慈 CJK UNIFIED IDEOGRAPH-6148 0x614B 態 CJK UNIFIED IDEOGRAPH-614B 0x614C 慌 CJK UNIFIED IDEOGRAPH-614C 0x614E 慎 CJK UNIFIED IDEOGRAPH-614E 0x6151 慑 CJK UNIFIED IDEOGRAPH-6151 0x6155 慕 CJK UNIFIED IDEOGRAPH-6155 0x6158 慘 CJK UNIFIED IDEOGRAPH-6158 0x615C 慜 CJK UNIFIED IDEOGRAPH-615C 0x6162 慢 CJK UNIFIED IDEOGRAPH-6162 0x6163 慣 CJK UNIFIED IDEOGRAPH-6163 0x6167 慧 CJK UNIFIED IDEOGRAPH-6167 0x6168 慨 CJK UNIFIED IDEOGRAPH-6168 0x616E 慮 CJK UNIFIED IDEOGRAPH-616E 0x6170 慰 CJK UNIFIED IDEOGRAPH-6170 0x6175 慵 CJK UNIFIED IDEOGRAPH-6175 0x6176 慶 CJK UNIFIED IDEOGRAPH-6176 0x6177 慷 CJK UNIFIED IDEOGRAPH-6177 0x617E 慾 CJK UNIFIED IDEOGRAPH-617E 0x6182 憂 CJK UNIFIED IDEOGRAPH-6182 0x618B 憋 CJK UNIFIED IDEOGRAPH-618B 0x618E 憎 CJK UNIFIED IDEOGRAPH-618E 0x6190 憐 CJK UNIFIED IDEOGRAPH-6190 0x6191 憑 CJK UNIFIED IDEOGRAPH-6191 0x6194 憔 CJK UNIFIED IDEOGRAPH-6194 0x61A1 憡 CJK UNIFIED IDEOGRAPH-61A1 0x61A3 憣 CJK UNIFIED IDEOGRAPH-61A3 0x61A7 憧 CJK UNIFIED IDEOGRAPH-61A7 0x61A8 憨 CJK UNIFIED IDEOGRAPH-61A8 0x61A9 憩 CJK UNIFIED IDEOGRAPH-61A9 0x61AC 憬 CJK UNIFIED IDEOGRAPH-61AC 0x61B2 憲 CJK UNIFIED IDEOGRAPH-61B2 0x61B6 憶 CJK UNIFIED IDEOGRAPH-61B6 0x61BE 憾 CJK UNIFIED IDEOGRAPH-61BE 0x61C2 懂 CJK UNIFIED IDEOGRAPH-61C2 0x61C6 懆 CJK UNIFIED IDEOGRAPH-61C6 0x61C8 懈 CJK UNIFIED IDEOGRAPH-61C8 0x61C9 應 CJK UNIFIED IDEOGRAPH-61C9 0x61CA 懊 CJK UNIFIED IDEOGRAPH-61CA 0x61CB 懋 CJK UNIFIED IDEOGRAPH-61CB 0x61D1 懑 CJK UNIFIED IDEOGRAPH-61D1 0x61D2 懒 CJK UNIFIED IDEOGRAPH-61D2 0x61E6 懦 CJK UNIFIED IDEOGRAPH-61E6 0x61F2 懲 CJK UNIFIED IDEOGRAPH-61F2 0x61F5 懵 CJK UNIFIED IDEOGRAPH-61F5 0x61F6 懶 CJK UNIFIED IDEOGRAPH-61F6 0x61F7 懷 CJK UNIFIED IDEOGRAPH-61F7 0x61F8 懸 CJK UNIFIED IDEOGRAPH-61F8 0x61FF 懿 CJK UNIFIED IDEOGRAPH-61FF 0x6200 戀 CJK UNIFIED IDEOGRAPH-6200 0x6208 戈 CJK UNIFIED IDEOGRAPH-6208 0x620A 戊 CJK UNIFIED IDEOGRAPH-620A 0x620C 戌 CJK UNIFIED IDEOGRAPH-620C 0x620D 戍 CJK UNIFIED IDEOGRAPH-620D 0x620E 戎 CJK UNIFIED IDEOGRAPH-620E 0x620F 戏 CJK UNIFIED IDEOGRAPH-620F 0x6210 成 CJK UNIFIED IDEOGRAPH-6210 0x6211 我 CJK UNIFIED IDEOGRAPH-6211 0x6212 戒 CJK UNIFIED IDEOGRAPH-6212 0x6215 戕 CJK UNIFIED IDEOGRAPH-6215 0x6216 或 CJK UNIFIED IDEOGRAPH-6216 0x6218 战 CJK UNIFIED IDEOGRAPH-6218 0x621A 戚 CJK UNIFIED IDEOGRAPH-621A 0x621B 戛 CJK UNIFIED IDEOGRAPH-621B 0x621C 戜 CJK UNIFIED IDEOGRAPH-621C 0x621D 戝 CJK UNIFIED IDEOGRAPH-621D 0x621E 戞 CJK UNIFIED IDEOGRAPH-621E 0x621F 戟 CJK UNIFIED IDEOGRAPH-621F 0x6220 戠 CJK UNIFIED IDEOGRAPH-6220 0x6223 戣 CJK UNIFIED IDEOGRAPH-6223 0x6226 戦 CJK UNIFIED IDEOGRAPH-6226 0x622A 截 CJK UNIFIED IDEOGRAPH-622A 0x622C 戬 CJK UNIFIED IDEOGRAPH-622C 0x622E 戮 CJK UNIFIED IDEOGRAPH-622E 0x622F 戯 CJK UNIFIED IDEOGRAPH-622F 0x6230 戰 CJK UNIFIED IDEOGRAPH-6230 0x6232 戲 CJK UNIFIED IDEOGRAPH-6232 0x6233 戳 CJK UNIFIED IDEOGRAPH-6233 0x6234 戴 CJK UNIFIED IDEOGRAPH-6234 0x6236 戶 CJK UNIFIED IDEOGRAPH-6236 0x6237 户 CJK UNIFIED IDEOGRAPH-6237 0x6238 戸 CJK UNIFIED IDEOGRAPH-6238 0x623B 戻 CJK UNIFIED IDEOGRAPH-623B 0x623E 戾 CJK UNIFIED IDEOGRAPH-623E 0x623F 房 CJK UNIFIED IDEOGRAPH-623F 0x6240 所 CJK UNIFIED IDEOGRAPH-6240 0x6241 扁 CJK UNIFIED IDEOGRAPH-6241 0x6247 扇 CJK UNIFIED IDEOGRAPH-6247 0x6248 扈 CJK UNIFIED IDEOGRAPH-6248 0x6249 扉 CJK UNIFIED IDEOGRAPH-6249 0x624B 手 CJK UNIFIED IDEOGRAPH-624B 0x624C 扌 CJK UNIFIED IDEOGRAPH-624C 0x624D 才 CJK UNIFIED IDEOGRAPH-624D 0x624E 扎 CJK UNIFIED IDEOGRAPH-624E 0x6251 扑 CJK UNIFIED IDEOGRAPH-6251 0x6252 扒 CJK UNIFIED IDEOGRAPH-6252 0x6253 打 CJK UNIFIED IDEOGRAPH-6253 0x6254 扔 CJK UNIFIED IDEOGRAPH-6254 0x6255 払 CJK UNIFIED IDEOGRAPH-6255 0x6258 托 CJK UNIFIED IDEOGRAPH-6258 0x625B 扛 CJK UNIFIED IDEOGRAPH-625B 0x6263 扣 CJK UNIFIED IDEOGRAPH-6263 0x6266 扦 CJK UNIFIED IDEOGRAPH-6266 0x6267 执 CJK UNIFIED IDEOGRAPH-6267 0x6269 扩 CJK UNIFIED IDEOGRAPH-6269 0x626A 扪 CJK UNIFIED IDEOGRAPH-626A 0x626B 扫 CJK UNIFIED IDEOGRAPH-626B 0x626C 扬 CJK UNIFIED IDEOGRAPH-626C 0x626D 扭 CJK UNIFIED IDEOGRAPH-626D 0x626E 扮 CJK UNIFIED IDEOGRAPH-626E 0x626F 扯 CJK UNIFIED IDEOGRAPH-626F 0x6270 扰 CJK UNIFIED IDEOGRAPH-6270 0x6271 扱 CJK UNIFIED IDEOGRAPH-6271 0x6273 扳 CJK UNIFIED IDEOGRAPH-6273 0x6276 扶 CJK UNIFIED IDEOGRAPH-6276 0x6279 批 CJK UNIFIED IDEOGRAPH-6279 0x627C 扼 CJK UNIFIED IDEOGRAPH-627C 0x627E 找 CJK UNIFIED IDEOGRAPH-627E 0x627F 承 CJK UNIFIED IDEOGRAPH-627F 0x6280 技 CJK UNIFIED IDEOGRAPH-6280 0x6284 抄 CJK UNIFIED IDEOGRAPH-6284 0x6289 抉 CJK UNIFIED IDEOGRAPH-6289 0x628A 把 CJK UNIFIED IDEOGRAPH-628A 0x6291 抑 CJK UNIFIED IDEOGRAPH-6291 0x6292 抒 CJK UNIFIED IDEOGRAPH-6292 0x6293 抓 CJK UNIFIED IDEOGRAPH-6293 0x6295 投 CJK UNIFIED IDEOGRAPH-6295 0x6296 抖 CJK UNIFIED IDEOGRAPH-6296 0x6297 抗 CJK UNIFIED IDEOGRAPH-6297 0x6298 折 CJK UNIFIED IDEOGRAPH-6298 0x629A 抚 CJK UNIFIED IDEOGRAPH-629A 0x629B 抛 CJK UNIFIED IDEOGRAPH-629B 0x629C 抜 CJK UNIFIED IDEOGRAPH-629C 0x629F 抟 CJK UNIFIED IDEOGRAPH-629F 0x62A0 抠 CJK UNIFIED IDEOGRAPH-62A0 0x62A1 抡 CJK UNIFIED IDEOGRAPH-62A1 0x62A2 抢 CJK UNIFIED IDEOGRAPH-62A2 0x62A4 护 CJK UNIFIED IDEOGRAPH-62A4 0x62A5 报 CJK UNIFIED IDEOGRAPH-62A5 0x62A8 抨 CJK UNIFIED IDEOGRAPH-62A8 0x62AB 披 CJK UNIFIED IDEOGRAPH-62AB 0x62AC 抬 CJK UNIFIED IDEOGRAPH-62AC 0x62B1 抱 CJK UNIFIED IDEOGRAPH-62B1 0x62B5 抵 CJK UNIFIED IDEOGRAPH-62B5 0x62B9 抹 CJK UNIFIED IDEOGRAPH-62B9 0x62BB 抻 CJK UNIFIED IDEOGRAPH-62BB 0x62BC 押 CJK UNIFIED IDEOGRAPH-62BC 0x62BD 抽 CJK UNIFIED IDEOGRAPH-62BD 0x62BF 抿 CJK UNIFIED IDEOGRAPH-62BF 0x62C2 拂 CJK UNIFIED IDEOGRAPH-62C2 0x62C4 拄 CJK UNIFIED IDEOGRAPH-62C4 0x62C5 担 CJK UNIFIED IDEOGRAPH-62C5 0x62C6 拆 CJK UNIFIED IDEOGRAPH-62C6 0x62C7 拇 CJK UNIFIED IDEOGRAPH-62C7 0x62C8 拈 CJK UNIFIED IDEOGRAPH-62C8 0x62C9 拉 CJK UNIFIED IDEOGRAPH-62C9 0x62CB 拋 CJK UNIFIED IDEOGRAPH-62CB 0x62CC 拌 CJK UNIFIED IDEOGRAPH-62CC 0x62CD 拍 CJK UNIFIED IDEOGRAPH-62CD 0x62CE 拎 CJK UNIFIED IDEOGRAPH-62CE 0x62D0 拐 CJK UNIFIED IDEOGRAPH-62D0 0x62D2 拒 CJK UNIFIED IDEOGRAPH-62D2 0x62D3 拓 CJK UNIFIED IDEOGRAPH-62D3 0x62D4 拔 CJK UNIFIED IDEOGRAPH-62D4 0x62D6 拖 CJK UNIFIED IDEOGRAPH-62D6 0x62D7 拗 CJK UNIFIED IDEOGRAPH-62D7 0x62D8 拘 CJK UNIFIED IDEOGRAPH-62D8 0x62D9 拙 CJK UNIFIED IDEOGRAPH-62D9 0x62DA 拚 CJK UNIFIED IDEOGRAPH-62DA 0x62DB 招 CJK UNIFIED IDEOGRAPH-62DB 0x62DC 拜 CJK UNIFIED IDEOGRAPH-62DC 0x62DF 拟 CJK UNIFIED IDEOGRAPH-62DF 0x62E2 拢 CJK UNIFIED IDEOGRAPH-62E2 0x62E3 拣 CJK UNIFIED IDEOGRAPH-62E3 0x62E5 拥 CJK UNIFIED IDEOGRAPH-62E5 0x62E6 拦 CJK UNIFIED IDEOGRAPH-62E6 0x62E7 拧 CJK UNIFIED IDEOGRAPH-62E7 0x62E8 拨 CJK UNIFIED IDEOGRAPH-62E8 0x62E9 择 CJK UNIFIED IDEOGRAPH-62E9 0x62EC 括 CJK UNIFIED IDEOGRAPH-62EC 0x62ED 拭 CJK UNIFIED IDEOGRAPH-62ED 0x62EE 拮 CJK UNIFIED IDEOGRAPH-62EE 0x62EF 拯 CJK UNIFIED IDEOGRAPH-62EF 0x62F0 拰 CJK UNIFIED IDEOGRAPH-62F0 0x62F1 拱 CJK UNIFIED IDEOGRAPH-62F1 0x62F3 拳 CJK UNIFIED IDEOGRAPH-62F3 0x62F4 拴 CJK UNIFIED IDEOGRAPH-62F4 0x62F7 拷 CJK UNIFIED IDEOGRAPH-62F7 0x62FC 拼 CJK UNIFIED IDEOGRAPH-62FC 0x62FD 拽 CJK UNIFIED IDEOGRAPH-62FD 0x62FE 拾 CJK UNIFIED IDEOGRAPH-62FE 0x62FF 拿 CJK UNIFIED IDEOGRAPH-62FF 0x6301 持 CJK UNIFIED IDEOGRAPH-6301 0x6302 挂 CJK UNIFIED IDEOGRAPH-6302 0x6307 指 CJK UNIFIED IDEOGRAPH-6307 0x6308 挈 CJK UNIFIED IDEOGRAPH-6308 0x6309 按 CJK UNIFIED IDEOGRAPH-6309 0x630E 挎 CJK UNIFIED IDEOGRAPH-630E 0x6311 挑 CJK UNIFIED IDEOGRAPH-6311 0x6313 挓 CJK UNIFIED IDEOGRAPH-6313 0x6316 挖 CJK UNIFIED IDEOGRAPH-6316 0x631A 挚 CJK UNIFIED IDEOGRAPH-631A 0x631B 挛 CJK UNIFIED IDEOGRAPH-631B 0x631D 挝 CJK UNIFIED IDEOGRAPH-631D 0x631E 挞 CJK UNIFIED IDEOGRAPH-631E 0x631F 挟 CJK UNIFIED IDEOGRAPH-631F 0x6320 挠 CJK UNIFIED IDEOGRAPH-6320 0x6321 挡 CJK UNIFIED IDEOGRAPH-6321 0x6323 挣 CJK UNIFIED IDEOGRAPH-6323 0x6324 挤 CJK UNIFIED IDEOGRAPH-6324 0x6325 挥 CJK UNIFIED IDEOGRAPH-6325 0x6328 挨 CJK UNIFIED IDEOGRAPH-6328 0x632A 挪 CJK UNIFIED IDEOGRAPH-632A 0x632B 挫 CJK UNIFIED IDEOGRAPH-632B 0x632F 振 CJK UNIFIED IDEOGRAPH-632F 0x6332 挲 CJK UNIFIED IDEOGRAPH-6332 0x6339 挹 CJK UNIFIED IDEOGRAPH-6339 0x633A 挺 CJK UNIFIED IDEOGRAPH-633A 0x633D 挽 CJK UNIFIED IDEOGRAPH-633D 0x633F 挿 CJK UNIFIED IDEOGRAPH-633F 0x6342 捂 CJK UNIFIED IDEOGRAPH-6342 0x6345 捅 CJK UNIFIED IDEOGRAPH-6345 0x6346 捆 CJK UNIFIED IDEOGRAPH-6346 0x6349 捉 CJK UNIFIED IDEOGRAPH-6349 0x634B 捋 CJK UNIFIED IDEOGRAPH-634B 0x634C 捌 CJK UNIFIED IDEOGRAPH-634C 0x634D 捍 CJK UNIFIED IDEOGRAPH-634D 0x634E 捎 CJK UNIFIED IDEOGRAPH-634E 0x634F 捏 CJK UNIFIED IDEOGRAPH-634F 0x6350 捐 CJK UNIFIED IDEOGRAPH-6350 0x6355 捕 CJK UNIFIED IDEOGRAPH-6355 0x635C 捜 CJK UNIFIED IDEOGRAPH-635C 0x635E 捞 CJK UNIFIED IDEOGRAPH-635E 0x635F 损 CJK UNIFIED IDEOGRAPH-635F 0x6361 捡 CJK UNIFIED IDEOGRAPH-6361 0x6362 换 CJK UNIFIED IDEOGRAPH-6362 0x6363 捣 CJK UNIFIED IDEOGRAPH-6363 0x6367 捧 CJK UNIFIED IDEOGRAPH-6367 0x6368 捨 CJK UNIFIED IDEOGRAPH-6368 0x636D 捭 CJK UNIFIED IDEOGRAPH-636D 0x636E 据 CJK UNIFIED IDEOGRAPH-636E 0x6370 捰 CJK UNIFIED IDEOGRAPH-6370 0x6371 捱 CJK UNIFIED IDEOGRAPH-6371 0x6372 捲 CJK UNIFIED IDEOGRAPH-6372 0x6376 捶 CJK UNIFIED IDEOGRAPH-6376 0x6377 捷 CJK UNIFIED IDEOGRAPH-6377 0x637A 捺 CJK UNIFIED IDEOGRAPH-637A 0x637B 捻 CJK UNIFIED IDEOGRAPH-637B 0x6380 掀 CJK UNIFIED IDEOGRAPH-6380 0x6382 掂 CJK UNIFIED IDEOGRAPH-6382 0x6383 掃 CJK UNIFIED IDEOGRAPH-6383 0x6387 掇 CJK UNIFIED IDEOGRAPH-6387 0x6388 授 CJK UNIFIED IDEOGRAPH-6388 0x6389 掉 CJK UNIFIED IDEOGRAPH-6389 0x638C 掌 CJK UNIFIED IDEOGRAPH-638C 0x638F 掏 CJK UNIFIED IDEOGRAPH-638F 0x6390 掐 CJK UNIFIED IDEOGRAPH-6390 0x6391 掑 CJK UNIFIED IDEOGRAPH-6391 0x6392 排 CJK UNIFIED IDEOGRAPH-6392 0x6396 掖 CJK UNIFIED IDEOGRAPH-6396 0x6398 掘 CJK UNIFIED IDEOGRAPH-6398 0x639B 掛 CJK UNIFIED IDEOGRAPH-639B 0x63A0 掠 CJK UNIFIED IDEOGRAPH-63A0 0x63A1 採 CJK UNIFIED IDEOGRAPH-63A1 0x63A2 探 CJK UNIFIED IDEOGRAPH-63A2 0x63A3 掣 CJK UNIFIED IDEOGRAPH-63A3 0x63A5 接 CJK UNIFIED IDEOGRAPH-63A5 0x63A7 控 CJK UNIFIED IDEOGRAPH-63A7 0x63A8 推 CJK UNIFIED IDEOGRAPH-63A8 0x63A9 掩 CJK UNIFIED IDEOGRAPH-63A9 0x63AA 措 CJK UNIFIED IDEOGRAPH-63AA 0x63AC 掬 CJK UNIFIED IDEOGRAPH-63AC 0x63AE 掮 CJK UNIFIED IDEOGRAPH-63AE 0x63B0 掰 CJK UNIFIED IDEOGRAPH-63B0 0x63B2 掲 CJK UNIFIED IDEOGRAPH-63B2 0x63B3 掳 CJK UNIFIED IDEOGRAPH-63B3 0x63B4 掴 CJK UNIFIED IDEOGRAPH-63B4 0x63B7 掷 CJK UNIFIED IDEOGRAPH-63B7 0x63B8 掸 CJK UNIFIED IDEOGRAPH-63B8 0x63BA 掺 CJK UNIFIED IDEOGRAPH-63BA 0x63BC 掼 CJK UNIFIED IDEOGRAPH-63BC 0x63C4 揄 CJK UNIFIED IDEOGRAPH-63C4 0x63C6 揆 CJK UNIFIED IDEOGRAPH-63C6 0x63C9 揉 CJK UNIFIED IDEOGRAPH-63C9 0x63CD 揍 CJK UNIFIED IDEOGRAPH-63CD 0x63CF 描 CJK UNIFIED IDEOGRAPH-63CF 0x63D0 提 CJK UNIFIED IDEOGRAPH-63D0 0x63D2 插 CJK UNIFIED IDEOGRAPH-63D2 0x63D6 揖 CJK UNIFIED IDEOGRAPH-63D6 0x63DA 揚 CJK UNIFIED IDEOGRAPH-63DA 0x63DB 換 CJK UNIFIED IDEOGRAPH-63DB 0x63E0 揠 CJK UNIFIED IDEOGRAPH-63E0 0x63E1 握 CJK UNIFIED IDEOGRAPH-63E1 0x63E3 揣 CJK UNIFIED IDEOGRAPH-63E3 0x63E9 揩 CJK UNIFIED IDEOGRAPH-63E9 0x63EA 揪 CJK UNIFIED IDEOGRAPH-63EA 0x63ED 揭 CJK UNIFIED IDEOGRAPH-63ED 0x63EE 揮 CJK UNIFIED IDEOGRAPH-63EE 0x63F4 援 CJK UNIFIED IDEOGRAPH-63F4 0x63F6 揶 CJK UNIFIED IDEOGRAPH-63F6 0x63F8 揸 CJK UNIFIED IDEOGRAPH-63F8 0x63FA 揺 CJK UNIFIED IDEOGRAPH-63FA 0x63FD 揽 CJK UNIFIED IDEOGRAPH-63FD 0x6400 搀 CJK UNIFIED IDEOGRAPH-6400 0x6401 搁 CJK UNIFIED IDEOGRAPH-6401 0x6402 搂 CJK UNIFIED IDEOGRAPH-6402 0x6405 搅 CJK UNIFIED IDEOGRAPH-6405 0x640D 損 CJK UNIFIED IDEOGRAPH-640D 0x640F 搏 CJK UNIFIED IDEOGRAPH-640F 0x6410 搐 CJK UNIFIED IDEOGRAPH-6410 0x6413 搓 CJK UNIFIED IDEOGRAPH-6413 0x6414 搔 CJK UNIFIED IDEOGRAPH-6414 0x6416 搖 CJK UNIFIED IDEOGRAPH-6416 0x641C 搜 CJK UNIFIED IDEOGRAPH-641C 0x641E 搞 CJK UNIFIED IDEOGRAPH-641E 0x6421 搡 CJK UNIFIED IDEOGRAPH-6421 0x6427 搧 CJK UNIFIED IDEOGRAPH-6427 0x642A 搪 CJK UNIFIED IDEOGRAPH-642A 0x642C 搬 CJK UNIFIED IDEOGRAPH-642C 0x642D 搭 CJK UNIFIED IDEOGRAPH-642D 0x6434 搴 CJK UNIFIED IDEOGRAPH-6434 0x6435 搵 CJK UNIFIED IDEOGRAPH-6435 0x6436 搶 CJK UNIFIED IDEOGRAPH-6436 0x643A 携 CJK UNIFIED IDEOGRAPH-643A 0x643D 搽 CJK UNIFIED IDEOGRAPH-643D 0x643E 搾 CJK UNIFIED IDEOGRAPH-643E 0x6441 摁 CJK UNIFIED IDEOGRAPH-6441 0x6444 摄 CJK UNIFIED IDEOGRAPH-6444 0x6446 摆 CJK UNIFIED IDEOGRAPH-6446 0x6447 摇 CJK UNIFIED IDEOGRAPH-6447 0x6448 摈 CJK UNIFIED IDEOGRAPH-6448 0x644A 摊 CJK UNIFIED IDEOGRAPH-644A 0x6452 摒 CJK UNIFIED IDEOGRAPH-6452 0x6454 摔 CJK UNIFIED IDEOGRAPH-6454 0x6458 摘 CJK UNIFIED IDEOGRAPH-6458 0x645E 摞 CJK UNIFIED IDEOGRAPH-645E 0x6467 摧 CJK UNIFIED IDEOGRAPH-6467 0x6469 摩 CJK UNIFIED IDEOGRAPH-6469 0x6478 摸 CJK UNIFIED IDEOGRAPH-6478 0x6479 摹 CJK UNIFIED IDEOGRAPH-6479 0x647A 摺 CJK UNIFIED IDEOGRAPH-647A 0x6482 撂 CJK UNIFIED IDEOGRAPH-6482 0x6483 撃 CJK UNIFIED IDEOGRAPH-6483 0x6485 撅 CJK UNIFIED IDEOGRAPH-6485 0x6487 撇 CJK UNIFIED IDEOGRAPH-6487 0x6490 撐 CJK UNIFIED IDEOGRAPH-6490 0x6491 撑 CJK UNIFIED IDEOGRAPH-6491 0x6492 撒 CJK UNIFIED IDEOGRAPH-6492 0x6495 撕 CJK UNIFIED IDEOGRAPH-6495 0x649E 撞 CJK UNIFIED IDEOGRAPH-649E 0x64A4 撤 CJK UNIFIED IDEOGRAPH-64A4 0x64A5 撥 CJK UNIFIED IDEOGRAPH-64A5 0x64A9 撩 CJK UNIFIED IDEOGRAPH-64A9 0x64AB 撫 CJK UNIFIED IDEOGRAPH-64AB 0x64AC 撬 CJK UNIFIED IDEOGRAPH-64AC 0x64AD 播 CJK UNIFIED IDEOGRAPH-64AD 0x64AE 撮 CJK UNIFIED IDEOGRAPH-64AE 0x64B0 撰 CJK UNIFIED IDEOGRAPH-64B0 0x64B2 撲 CJK UNIFIED IDEOGRAPH-64B2 0x64B3 撳 CJK UNIFIED IDEOGRAPH-64B3 0x64B4 撴 CJK UNIFIED IDEOGRAPH-64B4 0x64B5 撵 CJK UNIFIED IDEOGRAPH-64B5 0x64B7 撷 CJK UNIFIED IDEOGRAPH-64B7 0x64B8 撸 CJK UNIFIED IDEOGRAPH-64B8 0x64BA 撺 CJK UNIFIED IDEOGRAPH-64BA 0x64BB 撻 CJK UNIFIED IDEOGRAPH-64BB 0x64BC 撼 CJK UNIFIED IDEOGRAPH-64BC 0x64C0 擀 CJK UNIFIED IDEOGRAPH-64C0 0x64C1 擁 CJK UNIFIED IDEOGRAPH-64C1 0x64C2 擂 CJK UNIFIED IDEOGRAPH-64C2 0x64C5 擅 CJK UNIFIED IDEOGRAPH-64C5 0x64C7 擇 CJK UNIFIED IDEOGRAPH-64C7 0x64CA 擊 CJK UNIFIED IDEOGRAPH-64CA 0x64CB 擋 CJK UNIFIED IDEOGRAPH-64CB 0x64CD 操 CJK UNIFIED IDEOGRAPH-64CD 0x64CE 擎 CJK UNIFIED IDEOGRAPH-64CE 0x64D2 擒 CJK UNIFIED IDEOGRAPH-64D2 0x64D4 擔 CJK UNIFIED IDEOGRAPH-64D4 0x64D8 擘 CJK UNIFIED IDEOGRAPH-64D8 0x64DA 據 CJK UNIFIED IDEOGRAPH-64DA 0x64DE 擞 CJK UNIFIED IDEOGRAPH-64DE 0x64E0 擠 CJK UNIFIED IDEOGRAPH-64E0 0x64E2 擢 CJK UNIFIED IDEOGRAPH-64E2 0x64E4 擤 CJK UNIFIED IDEOGRAPH-64E4 0x64E6 擦 CJK UNIFIED IDEOGRAPH-64E6 0x64EC 擬 CJK UNIFIED IDEOGRAPH-64EC 0x64F4 擴 CJK UNIFIED IDEOGRAPH-64F4 0x64FA 擺 CJK UNIFIED IDEOGRAPH-64FA 0x64FC 擼 CJK UNIFIED IDEOGRAPH-64FC 0x64FE 擾 CJK UNIFIED IDEOGRAPH-64FE 0x6500 攀 CJK UNIFIED IDEOGRAPH-6500 0x6512 攒 CJK UNIFIED IDEOGRAPH-6512 0x6518 攘 CJK UNIFIED IDEOGRAPH-6518 0x651C 攜 CJK UNIFIED IDEOGRAPH-651C 0x651D 攝 CJK UNIFIED IDEOGRAPH-651D 0x651E 攞 CJK UNIFIED IDEOGRAPH-651E 0x6523 攣 CJK UNIFIED IDEOGRAPH-6523 0x6524 攤 CJK UNIFIED IDEOGRAPH-6524 0x6525 攥 CJK UNIFIED IDEOGRAPH-6525 0x652B 攫 CJK UNIFIED IDEOGRAPH-652B 0x652F 支 CJK UNIFIED IDEOGRAPH-652F 0x6536 收 CJK UNIFIED IDEOGRAPH-6536 0x6538 攸 CJK UNIFIED IDEOGRAPH-6538 0x6539 改 CJK UNIFIED IDEOGRAPH-6539 0x653B 攻 CJK UNIFIED IDEOGRAPH-653B 0x653E 放 CJK UNIFIED IDEOGRAPH-653E 0x653F 政 CJK UNIFIED IDEOGRAPH-653F 0x6545 故 CJK UNIFIED IDEOGRAPH-6545 0x6548 效 CJK UNIFIED IDEOGRAPH-6548 0x654C 敌 CJK UNIFIED IDEOGRAPH-654C 0x654F 敏 CJK UNIFIED IDEOGRAPH-654F 0x6551 救 CJK UNIFIED IDEOGRAPH-6551 0x6553 敓 CJK UNIFIED IDEOGRAPH-6553 0x6555 敕 CJK UNIFIED IDEOGRAPH-6555 0x6556 敖 CJK UNIFIED IDEOGRAPH-6556 0x6557 敗 CJK UNIFIED IDEOGRAPH-6557 0x6558 敘 CJK UNIFIED IDEOGRAPH-6558 0x6559 教 CJK UNIFIED IDEOGRAPH-6559 0x655B 敛 CJK UNIFIED IDEOGRAPH-655B 0x655D 敝 CJK UNIFIED IDEOGRAPH-655D 0x655E 敞 CJK UNIFIED IDEOGRAPH-655E 0x6562 敢 CJK UNIFIED IDEOGRAPH-6562 0x6563 散 CJK UNIFIED IDEOGRAPH-6563 0x6564 敤 CJK UNIFIED IDEOGRAPH-6564 0x6566 敦 CJK UNIFIED IDEOGRAPH-6566 0x656C 敬 CJK UNIFIED IDEOGRAPH-656C 0x6570 数 CJK UNIFIED IDEOGRAPH-6570 0x6572 敲 CJK UNIFIED IDEOGRAPH-6572 0x6574 整 CJK UNIFIED IDEOGRAPH-6574 0x6575 敵 CJK UNIFIED IDEOGRAPH-6575 0x6577 敷 CJK UNIFIED IDEOGRAPH-6577 0x6578 數 CJK UNIFIED IDEOGRAPH-6578 0x6581 斁 CJK UNIFIED IDEOGRAPH-6581 0x6582 斂 CJK UNIFIED IDEOGRAPH-6582 0x6587 文 CJK UNIFIED IDEOGRAPH-6587 0x6589 斉 CJK UNIFIED IDEOGRAPH-6589 0x658B 斋 CJK UNIFIED IDEOGRAPH-658B 0x658C 斌 CJK UNIFIED IDEOGRAPH-658C 0x658E 斎 CJK UNIFIED IDEOGRAPH-658E 0x6590 斐 CJK UNIFIED IDEOGRAPH-6590 0x6591 斑 CJK UNIFIED IDEOGRAPH-6591 0x6593 斓 CJK UNIFIED IDEOGRAPH-6593 0x6597 斗 CJK UNIFIED IDEOGRAPH-6597 0x6599 料 CJK UNIFIED IDEOGRAPH-6599 0x659B 斛 CJK UNIFIED IDEOGRAPH-659B 0x659C 斜 CJK UNIFIED IDEOGRAPH-659C 0x659F 斟 CJK UNIFIED IDEOGRAPH-659F 0x65A1 斡 CJK UNIFIED IDEOGRAPH-65A1 0x65A4 斤 CJK UNIFIED IDEOGRAPH-65A4 0x65A5 斥 CJK UNIFIED IDEOGRAPH-65A5 0x65A7 斧 CJK UNIFIED IDEOGRAPH-65A7 0x65A9 斩 CJK UNIFIED IDEOGRAPH-65A9 0x65AB 斫 CJK UNIFIED IDEOGRAPH-65AB 0x65AC 斬 CJK UNIFIED IDEOGRAPH-65AC 0x65AD 断 CJK UNIFIED IDEOGRAPH-65AD 0x65AF 斯 CJK UNIFIED IDEOGRAPH-65AF 0x65B0 新 CJK UNIFIED IDEOGRAPH-65B0 0x65B7 斷 CJK UNIFIED IDEOGRAPH-65B7 0x65B9 方 CJK UNIFIED IDEOGRAPH-65B9 0x65BC 於 CJK UNIFIED IDEOGRAPH-65BC 0x65BD 施 CJK UNIFIED IDEOGRAPH-65BD 0x65BF 斿 CJK UNIFIED IDEOGRAPH-65BF 0x65C1 旁 CJK UNIFIED IDEOGRAPH-65C1 0x65C2 旂 CJK UNIFIED IDEOGRAPH-65C2 0x65C3 旃 CJK UNIFIED IDEOGRAPH-65C3 0x65C5 旅 CJK UNIFIED IDEOGRAPH-65C5 0x65CB 旋 CJK UNIFIED IDEOGRAPH-65CB 0x65CC 旌 CJK UNIFIED IDEOGRAPH-65CC 0x65CE 旎 CJK UNIFIED IDEOGRAPH-65CE 0x65CF 族 CJK UNIFIED IDEOGRAPH-65CF 0x65D6 旖 CJK UNIFIED IDEOGRAPH-65D6 0x65D7 旗 CJK UNIFIED IDEOGRAPH-65D7 0x65E0 无 CJK UNIFIED IDEOGRAPH-65E0 0x65E2 既 CJK UNIFIED IDEOGRAPH-65E2 0x65E5 日 CJK UNIFIED IDEOGRAPH-65E5 0x65E6 旦 CJK UNIFIED IDEOGRAPH-65E6 0x65E7 旧 CJK UNIFIED IDEOGRAPH-65E7 0x65E8 旨 CJK UNIFIED IDEOGRAPH-65E8 0x65E9 早 CJK UNIFIED IDEOGRAPH-65E9 0x65EC 旬 CJK UNIFIED IDEOGRAPH-65EC 0x65ED 旭 CJK UNIFIED IDEOGRAPH-65ED 0x65EE 旮 CJK UNIFIED IDEOGRAPH-65EE 0x65EF 旯 CJK UNIFIED IDEOGRAPH-65EF 0x65F1 旱 CJK UNIFIED IDEOGRAPH-65F1 0x65F3 旳 CJK UNIFIED IDEOGRAPH-65F3 0x65F6 时 CJK UNIFIED IDEOGRAPH-65F6 0x65F7 旷 CJK UNIFIED IDEOGRAPH-65F7 0x65F8 旸 CJK UNIFIED IDEOGRAPH-65F8 0x65FA 旺 CJK UNIFIED IDEOGRAPH-65FA 0x65FB 旻 CJK UNIFIED IDEOGRAPH-65FB 0x65FC 旼 CJK UNIFIED IDEOGRAPH-65FC 0x6600 昀 CJK UNIFIED IDEOGRAPH-6600 0x6602 昂 CJK UNIFIED IDEOGRAPH-6602 0x6606 昆 CJK UNIFIED IDEOGRAPH-6606 0x6607 昇 CJK UNIFIED IDEOGRAPH-6607 0x6609 昉 CJK UNIFIED IDEOGRAPH-6609 0x660A 昊 CJK UNIFIED IDEOGRAPH-660A 0x660C 昌 CJK UNIFIED IDEOGRAPH-660C 0x660E 明 CJK UNIFIED IDEOGRAPH-660E 0x660F 昏 CJK UNIFIED IDEOGRAPH-660F 0x6613 易 CJK UNIFIED IDEOGRAPH-6613 0x6614 昔 CJK UNIFIED IDEOGRAPH-6614 0x6615 昕 CJK UNIFIED IDEOGRAPH-6615 0x6619 昙 CJK UNIFIED IDEOGRAPH-6619 0x661D 昝 CJK UNIFIED IDEOGRAPH-661D 0x661F 星 CJK UNIFIED IDEOGRAPH-661F 0x6620 映 CJK UNIFIED IDEOGRAPH-6620 0x6625 春 CJK UNIFIED IDEOGRAPH-6625 0x6627 昧 CJK UNIFIED IDEOGRAPH-6627 0x6628 昨 CJK UNIFIED IDEOGRAPH-6628 0x662D 昭 CJK UNIFIED IDEOGRAPH-662D 0x662F 是 CJK UNIFIED IDEOGRAPH-662F 0x6630 昰 CJK UNIFIED IDEOGRAPH-6630 0x6631 昱 CJK UNIFIED IDEOGRAPH-6631 0x6634 昴 CJK UNIFIED IDEOGRAPH-6634 0x6635 昵 CJK UNIFIED IDEOGRAPH-6635 0x6636 昶 CJK UNIFIED IDEOGRAPH-6636 0x663C 昼 CJK UNIFIED IDEOGRAPH-663C 0x663E 显 CJK UNIFIED IDEOGRAPH-663E 0x6641 晁 CJK UNIFIED IDEOGRAPH-6641 0x6642 時 CJK UNIFIED IDEOGRAPH-6642 0x6643 晃 CJK UNIFIED IDEOGRAPH-6643 0x6649 晉 CJK UNIFIED IDEOGRAPH-6649 0x664B 晋 CJK UNIFIED IDEOGRAPH-664B 0x664C 晌 CJK UNIFIED IDEOGRAPH-664C 0x664F 晏 CJK UNIFIED IDEOGRAPH-664F 0x6652 晒 CJK UNIFIED IDEOGRAPH-6652 0x6653 晓 CJK UNIFIED IDEOGRAPH-6653 0x6654 晔 CJK UNIFIED IDEOGRAPH-6654 0x6655 晕 CJK UNIFIED IDEOGRAPH-6655 0x6656 晖 CJK UNIFIED IDEOGRAPH-6656 0x6657 晗 CJK UNIFIED IDEOGRAPH-6657 0x665A 晚 CJK UNIFIED IDEOGRAPH-665A 0x665E 晞 CJK UNIFIED IDEOGRAPH-665E 0x665F 晟 CJK UNIFIED IDEOGRAPH-665F 0x6664 晤 CJK UNIFIED IDEOGRAPH-6664 0x6666 晦 CJK UNIFIED IDEOGRAPH-6666 0x6668 晨 CJK UNIFIED IDEOGRAPH-6668 0x6669 晩 CJK UNIFIED IDEOGRAPH-6669 0x666E 普 CJK UNIFIED IDEOGRAPH-666E 0x666F 景 CJK UNIFIED IDEOGRAPH-666F 0x6670 晰 CJK UNIFIED IDEOGRAPH-6670 0x6674 晴 CJK UNIFIED IDEOGRAPH-6674 0x6676 晶 CJK UNIFIED IDEOGRAPH-6676 0x6677 晷 CJK UNIFIED IDEOGRAPH-6677 0x667A 智 CJK UNIFIED IDEOGRAPH-667A 0x667E 晾 CJK UNIFIED IDEOGRAPH-667E 0x6680 暀 CJK UNIFIED IDEOGRAPH-6680 0x6682 暂 CJK UNIFIED IDEOGRAPH-6682 0x6684 暄 CJK UNIFIED IDEOGRAPH-6684 0x6687 暇 CJK UNIFIED IDEOGRAPH-6687 0x6688 暈 CJK UNIFIED IDEOGRAPH-6688 0x668C 暌 CJK UNIFIED IDEOGRAPH-668C 0x6690 暐 CJK UNIFIED IDEOGRAPH-6690 0x6691 暑 CJK UNIFIED IDEOGRAPH-6691 0x6696 暖 CJK UNIFIED IDEOGRAPH-6696 0x6697 暗 CJK UNIFIED IDEOGRAPH-6697 0x669D 暝 CJK UNIFIED IDEOGRAPH-669D 0x66A2 暢 CJK UNIFIED IDEOGRAPH-66A2 0x66A3 暣 CJK UNIFIED IDEOGRAPH-66A3 0x66A7 暧 CJK UNIFIED IDEOGRAPH-66A7 0x66A8 暨 CJK UNIFIED IDEOGRAPH-66A8 0x66AB 暫 CJK UNIFIED IDEOGRAPH-66AB 0x66AE 暮 CJK UNIFIED IDEOGRAPH-66AE 0x66B1 暱 CJK UNIFIED IDEOGRAPH-66B1 0x66B4 暴 CJK UNIFIED IDEOGRAPH-66B4 0x66B9 暹 CJK UNIFIED IDEOGRAPH-66B9 0x66BB 暻 CJK UNIFIED IDEOGRAPH-66BB 0x66C6 曆 CJK UNIFIED IDEOGRAPH-66C6 0x66C8 曈 CJK UNIFIED IDEOGRAPH-66C8 0x66C9 曉 CJK UNIFIED IDEOGRAPH-66C9 0x66CC 曌 CJK UNIFIED IDEOGRAPH-66CC 0x66D9 曙 CJK UNIFIED IDEOGRAPH-66D9 0x66DC 曜 CJK UNIFIED IDEOGRAPH-66DC 0x66DD 曝 CJK UNIFIED IDEOGRAPH-66DD 0x66DE 曞 CJK UNIFIED IDEOGRAPH-66DE 0x66E0 曠 CJK UNIFIED IDEOGRAPH-66E0 0x66E1 曡 CJK UNIFIED IDEOGRAPH-66E1 0x66E6 曦 CJK UNIFIED IDEOGRAPH-66E6 0x66E9 曩 CJK UNIFIED IDEOGRAPH-66E9 0x66EC 曬 CJK UNIFIED IDEOGRAPH-66EC 0x66F0 曰 CJK UNIFIED IDEOGRAPH-66F0 0x66F2 曲 CJK UNIFIED IDEOGRAPH-66F2 0x66F3 曳 CJK UNIFIED IDEOGRAPH-66F3 0x66F4 更 CJK UNIFIED IDEOGRAPH-66F4 0x66F8 書 CJK UNIFIED IDEOGRAPH-66F8 0x66F9 曹 CJK UNIFIED IDEOGRAPH-66F9 0x66FC 曼 CJK UNIFIED IDEOGRAPH-66FC 0x66FD 曽 CJK UNIFIED IDEOGRAPH-66FD 0x66FE 曾 CJK UNIFIED IDEOGRAPH-66FE 0x66FF 替 CJK UNIFIED IDEOGRAPH-66FF 0x6700 最 CJK UNIFIED IDEOGRAPH-6700 0x6703 會 CJK UNIFIED IDEOGRAPH-6703 0x6708 月 CJK UNIFIED IDEOGRAPH-6708 0x6709 有 CJK UNIFIED IDEOGRAPH-6709 0x670B 朋 CJK UNIFIED IDEOGRAPH-670B 0x670D 服 CJK UNIFIED IDEOGRAPH-670D 0x6710 朐 CJK UNIFIED IDEOGRAPH-6710 0x6714 朔 CJK UNIFIED IDEOGRAPH-6714 0x6715 朕 CJK UNIFIED IDEOGRAPH-6715 0x6717 朗 CJK UNIFIED IDEOGRAPH-6717 0x671B 望 CJK UNIFIED IDEOGRAPH-671B 0x671D 朝 CJK UNIFIED IDEOGRAPH-671D 0x671F 期 CJK UNIFIED IDEOGRAPH-671F 0x6725 朥 CJK UNIFIED IDEOGRAPH-6725 0x6726 朦 CJK UNIFIED IDEOGRAPH-6726 0x6728 木 CJK UNIFIED IDEOGRAPH-6728 0x672A 未 CJK UNIFIED IDEOGRAPH-672A 0x672B 末 CJK UNIFIED IDEOGRAPH-672B 0x672C 本 CJK UNIFIED IDEOGRAPH-672C 0x672D 札 CJK UNIFIED IDEOGRAPH-672D 0x672F 术 CJK UNIFIED IDEOGRAPH-672F 0x6731 朱 CJK UNIFIED IDEOGRAPH-6731 0x6734 朴 CJK UNIFIED IDEOGRAPH-6734 0x6735 朵 CJK UNIFIED IDEOGRAPH-6735 0x673A 机 CJK UNIFIED IDEOGRAPH-673A 0x673D 朽 CJK UNIFIED IDEOGRAPH-673D 0x6740 杀 CJK UNIFIED IDEOGRAPH-6740 0x6742 杂 CJK UNIFIED IDEOGRAPH-6742 0x6743 权 CJK UNIFIED IDEOGRAPH-6743 0x6746 杆 CJK UNIFIED IDEOGRAPH-6746 0x6748 杈 CJK UNIFIED IDEOGRAPH-6748 0x6749 杉 CJK UNIFIED IDEOGRAPH-6749 0x674C 杌 CJK UNIFIED IDEOGRAPH-674C 0x674E 李 CJK UNIFIED IDEOGRAPH-674E 0x674F 杏 CJK UNIFIED IDEOGRAPH-674F 0x6750 材 CJK UNIFIED IDEOGRAPH-6750 0x6751 村 CJK UNIFIED IDEOGRAPH-6751 0x6753 杓 CJK UNIFIED IDEOGRAPH-6753 0x6756 杖 CJK UNIFIED IDEOGRAPH-6756 0x675C 杜 CJK UNIFIED IDEOGRAPH-675C 0x675E 杞 CJK UNIFIED IDEOGRAPH-675E 0x675F 束 CJK UNIFIED IDEOGRAPH-675F 0x6760 杠 CJK UNIFIED IDEOGRAPH-6760 0x6761 条 CJK UNIFIED IDEOGRAPH-6761 0x6765 来 CJK UNIFIED IDEOGRAPH-6765 0x6768 杨 CJK UNIFIED IDEOGRAPH-6768 0x6769 杩 CJK UNIFIED IDEOGRAPH-6769 0x676A 杪 CJK UNIFIED IDEOGRAPH-676A 0x676D 杭 CJK UNIFIED IDEOGRAPH-676D 0x676F 杯 CJK UNIFIED IDEOGRAPH-676F 0x6770 杰 CJK UNIFIED IDEOGRAPH-6770 0x6771 東 CJK UNIFIED IDEOGRAPH-6771 0x6772 杲 CJK UNIFIED IDEOGRAPH-6772 0x6773 杳 CJK UNIFIED IDEOGRAPH-6773 0x6775 杵 CJK UNIFIED IDEOGRAPH-6775 0x6777 杷 CJK UNIFIED IDEOGRAPH-6777 0x677C 杼 CJK UNIFIED IDEOGRAPH-677C 0x677E 松 CJK UNIFIED IDEOGRAPH-677E 0x677F 板 CJK UNIFIED IDEOGRAPH-677F 0x6781 极 CJK UNIFIED IDEOGRAPH-6781 0x6783 枃 CJK UNIFIED IDEOGRAPH-6783 0x6784 构 CJK UNIFIED IDEOGRAPH-6784 0x6787 枇 CJK UNIFIED IDEOGRAPH-6787 0x6789 枉 CJK UNIFIED IDEOGRAPH-6789 0x678B 枋 CJK UNIFIED IDEOGRAPH-678B 0x6790 析 CJK UNIFIED IDEOGRAPH-6790 0x6793 枓 CJK UNIFIED IDEOGRAPH-6793 0x6795 枕 CJK UNIFIED IDEOGRAPH-6795 0x6797 林 CJK UNIFIED IDEOGRAPH-6797 0x679A 枚 CJK UNIFIED IDEOGRAPH-679A 0x679C 果 CJK UNIFIED IDEOGRAPH-679C 0x679D 枝 CJK UNIFIED IDEOGRAPH-679D 0x679E 枞 CJK UNIFIED IDEOGRAPH-679E 0x67A2 枢 CJK UNIFIED IDEOGRAPH-67A2 0x67A3 枣 CJK UNIFIED IDEOGRAPH-67A3 0x67A5 枥 CJK UNIFIED IDEOGRAPH-67A5 0x67A7 枧 CJK UNIFIED IDEOGRAPH-67A7 0x67AA 枪 CJK UNIFIED IDEOGRAPH-67AA 0x67AB 枫 CJK UNIFIED IDEOGRAPH-67AB 0x67AD 枭 CJK UNIFIED IDEOGRAPH-67AD 0x67AF 枯 CJK UNIFIED IDEOGRAPH-67AF 0x67B0 枰 CJK UNIFIED IDEOGRAPH-67B0 0x67B1 枱 CJK UNIFIED IDEOGRAPH-67B1 0x67B3 枳 CJK UNIFIED IDEOGRAPH-67B3 0x67B6 架 CJK UNIFIED IDEOGRAPH-67B6 0x67B7 枷 CJK UNIFIED IDEOGRAPH-67B7 0x67B8 枸 CJK UNIFIED IDEOGRAPH-67B8 0x67C4 柄 CJK UNIFIED IDEOGRAPH-67C4 0x67CA 柊 CJK UNIFIED IDEOGRAPH-67CA 0x67CF 柏 CJK UNIFIED IDEOGRAPH-67CF 0x67D0 某 CJK UNIFIED IDEOGRAPH-67D0 0x67D1 柑 CJK UNIFIED IDEOGRAPH-67D1 0x67D2 柒 CJK UNIFIED IDEOGRAPH-67D2 0x67D3 染 CJK UNIFIED IDEOGRAPH-67D3 0x67D4 柔 CJK UNIFIED IDEOGRAPH-67D4 0x67D8 柘 CJK UNIFIED IDEOGRAPH-67D8 0x67DA 柚 CJK UNIFIED IDEOGRAPH-67DA 0x67DC 柜 CJK UNIFIED IDEOGRAPH-67DC 0x67DE 柞 CJK UNIFIED IDEOGRAPH-67DE 0x67DF 柟 CJK UNIFIED IDEOGRAPH-67DF 0x67E0 柠 CJK UNIFIED IDEOGRAPH-67E0 0x67E2 柢 CJK UNIFIED IDEOGRAPH-67E2 0x67E5 查 CJK UNIFIED IDEOGRAPH-67E5 0x67E9 柩 CJK UNIFIED IDEOGRAPH-67E9 0x67EC 柬 CJK UNIFIED IDEOGRAPH-67EC 0x67EF 柯 CJK UNIFIED IDEOGRAPH-67EF 0x67F0 柰 CJK UNIFIED IDEOGRAPH-67F0 0x67F1 柱 CJK UNIFIED IDEOGRAPH-67F1 0x67F3 柳 CJK UNIFIED IDEOGRAPH-67F3 0x67F4 柴 CJK UNIFIED IDEOGRAPH-67F4 0x67FB 査 CJK UNIFIED IDEOGRAPH-67FB 0x67FE 柾 CJK UNIFIED IDEOGRAPH-67FE 0x67FF 柿 CJK UNIFIED IDEOGRAPH-67FF 0x6800 栀 CJK UNIFIED IDEOGRAPH-6800 0x6804 栄 CJK UNIFIED IDEOGRAPH-6804 0x6805 栅 CJK UNIFIED IDEOGRAPH-6805 0x6807 标 CJK UNIFIED IDEOGRAPH-6807 0x6808 栈 CJK UNIFIED IDEOGRAPH-6808 0x6809 栉 CJK UNIFIED IDEOGRAPH-6809 0x680B 栋 CJK UNIFIED IDEOGRAPH-680B 0x680C 栌 CJK UNIFIED IDEOGRAPH-680C 0x680E 栎 CJK UNIFIED IDEOGRAPH-680E 0x680F 栏 CJK UNIFIED IDEOGRAPH-680F 0x6811 树 CJK UNIFIED IDEOGRAPH-6811 0x6813 栓 CJK UNIFIED IDEOGRAPH-6813 0x6816 栖 CJK UNIFIED IDEOGRAPH-6816 0x6817 栗 CJK UNIFIED IDEOGRAPH-6817 0x681E 栞 CJK UNIFIED IDEOGRAPH-681E 0x6821 校 CJK UNIFIED IDEOGRAPH-6821 0x6822 栢 CJK UNIFIED IDEOGRAPH-6822 0x6827 栧 CJK UNIFIED IDEOGRAPH-6827 0x6828 栨 CJK UNIFIED IDEOGRAPH-6828 0x6829 栩 CJK UNIFIED IDEOGRAPH-6829 0x682A 株 CJK UNIFIED IDEOGRAPH-682A 0x682D 栭 CJK UNIFIED IDEOGRAPH-682D 0x6837 样 CJK UNIFIED IDEOGRAPH-6837 0x6838 核 CJK UNIFIED IDEOGRAPH-6838 0x6839 根 CJK UNIFIED IDEOGRAPH-6839 0x683C 格 CJK UNIFIED IDEOGRAPH-683C 0x683D 栽 CJK UNIFIED IDEOGRAPH-683D 0x683E 栾 CJK UNIFIED IDEOGRAPH-683E 0x6840 桀 CJK UNIFIED IDEOGRAPH-6840 0x6841 桁 CJK UNIFIED IDEOGRAPH-6841 0x6842 桂 CJK UNIFIED IDEOGRAPH-6842 0x6843 桃 CJK UNIFIED IDEOGRAPH-6843 0x6845 桅 CJK UNIFIED IDEOGRAPH-6845 0x6846 框 CJK UNIFIED IDEOGRAPH-6846 0x6848 案 CJK UNIFIED IDEOGRAPH-6848 0x6849 桉 CJK UNIFIED IDEOGRAPH-6849 0x684C 桌 CJK UNIFIED IDEOGRAPH-684C 0x684E 桎 CJK UNIFIED IDEOGRAPH-684E 0x6850 桐 CJK UNIFIED IDEOGRAPH-6850 0x6851 桑 CJK UNIFIED IDEOGRAPH-6851 0x6853 桓 CJK UNIFIED IDEOGRAPH-6853 0x6854 桔 CJK UNIFIED IDEOGRAPH-6854 0x6855 桕 CJK UNIFIED IDEOGRAPH-6855 0x6856 桖 CJK UNIFIED IDEOGRAPH-6856 0x685C 桜 CJK UNIFIED IDEOGRAPH-685C 0x6860 桠 CJK UNIFIED IDEOGRAPH-6860 0x6861 桡 CJK UNIFIED IDEOGRAPH-6861 0x6862 桢 CJK UNIFIED IDEOGRAPH-6862 0x6863 档 CJK UNIFIED IDEOGRAPH-6863 0x6865 桥 CJK UNIFIED IDEOGRAPH-6865 0x6866 桦 CJK UNIFIED IDEOGRAPH-6866 0x6867 桧 CJK UNIFIED IDEOGRAPH-6867 0x6868 桨 CJK UNIFIED IDEOGRAPH-6868 0x6869 桩 CJK UNIFIED IDEOGRAPH-6869 0x6876 桶 CJK UNIFIED IDEOGRAPH-6876 0x6877 桷 CJK UNIFIED IDEOGRAPH-6877 0x687F 桿 CJK UNIFIED IDEOGRAPH-687F 0x6881 梁 CJK UNIFIED IDEOGRAPH-6881 0x6885 梅 CJK UNIFIED IDEOGRAPH-6885 0x6886 梆 CJK UNIFIED IDEOGRAPH-6886 0x688F 梏 CJK UNIFIED IDEOGRAPH-688F 0x6893 梓 CJK UNIFIED IDEOGRAPH-6893 0x6897 梗 CJK UNIFIED IDEOGRAPH-6897 0x689D 條 CJK UNIFIED IDEOGRAPH-689D 0x68A2 梢 CJK UNIFIED IDEOGRAPH-68A2 0x68A6 梦 CJK UNIFIED IDEOGRAPH-68A6 0x68A7 梧 CJK UNIFIED IDEOGRAPH-68A7 0x68A8 梨 CJK UNIFIED IDEOGRAPH-68A8 0x68AD 梭 CJK UNIFIED IDEOGRAPH-68AD 0x68AF 梯 CJK UNIFIED IDEOGRAPH-68AF 0x68B0 械 CJK UNIFIED IDEOGRAPH-68B0 0x68B1 梱 CJK UNIFIED IDEOGRAPH-68B1 0x68B3 梳 CJK UNIFIED IDEOGRAPH-68B3 0x68B5 梵 CJK UNIFIED IDEOGRAPH-68B5 0x68B6 梶 CJK UNIFIED IDEOGRAPH-68B6 0x68C0 检 CJK UNIFIED IDEOGRAPH-68C0 0x68C2 棂 CJK UNIFIED IDEOGRAPH-68C2 0x68C4 棄 CJK UNIFIED IDEOGRAPH-68C4 0x68C9 棉 CJK UNIFIED IDEOGRAPH-68C9 0x68CB 棋 CJK UNIFIED IDEOGRAPH-68CB 0x68CD 棍 CJK UNIFIED IDEOGRAPH-68CD 0x68D2 棒 CJK UNIFIED IDEOGRAPH-68D2 0x68D5 棕 CJK UNIFIED IDEOGRAPH-68D5 0x68D8 棘 CJK UNIFIED IDEOGRAPH-68D8 0x68DA 棚 CJK UNIFIED IDEOGRAPH-68DA 0x68DF 棟 CJK UNIFIED IDEOGRAPH-68DF 0x68E0 棠 CJK UNIFIED IDEOGRAPH-68E0 0x68E3 棣 CJK UNIFIED IDEOGRAPH-68E3 0x68EC 棬 CJK UNIFIED IDEOGRAPH-68EC 0x68EE 森 CJK UNIFIED IDEOGRAPH-68EE 0x68F0 棰 CJK UNIFIED IDEOGRAPH-68F0 0x68F1 棱 CJK UNIFIED IDEOGRAPH-68F1 0x68F2 棲 CJK UNIFIED IDEOGRAPH-68F2 0x68F4 棴 CJK UNIFIED IDEOGRAPH-68F4 0x68F5 棵 CJK UNIFIED IDEOGRAPH-68F5 0x68F9 棹 CJK UNIFIED IDEOGRAPH-68F9 0x68FA 棺 CJK UNIFIED IDEOGRAPH-68FA 0x68FF 棿 CJK UNIFIED IDEOGRAPH-68FF 0x6901 椁 CJK UNIFIED IDEOGRAPH-6901 0x6902 椂 CJK UNIFIED IDEOGRAPH-6902 0x6905 椅 CJK UNIFIED IDEOGRAPH-6905 0x6908 椈 CJK UNIFIED IDEOGRAPH-6908 0x690B 椋 CJK UNIFIED IDEOGRAPH-690B 0x690D 植 CJK UNIFIED IDEOGRAPH-690D 0x690E 椎 CJK UNIFIED IDEOGRAPH-690E 0x6912 椒 CJK UNIFIED IDEOGRAPH-6912 0x691C 検 CJK UNIFIED IDEOGRAPH-691C 0x6924 椤 CJK UNIFIED IDEOGRAPH-6924 0x692D 椭 CJK UNIFIED IDEOGRAPH-692D 0x6930 椰 CJK UNIFIED IDEOGRAPH-6930 0x6934 椴 CJK UNIFIED IDEOGRAPH-6934 0x6939 椹 CJK UNIFIED IDEOGRAPH-6939 0x693D 椽 CJK UNIFIED IDEOGRAPH-693D 0x693E 椾 CJK UNIFIED IDEOGRAPH-693E 0x693F 椿 CJK UNIFIED IDEOGRAPH-693F 0x6940 楀 CJK UNIFIED IDEOGRAPH-6940 0x6942 楂 CJK UNIFIED IDEOGRAPH-6942 0x694A 楊 CJK UNIFIED IDEOGRAPH-694A 0x6953 楓 CJK UNIFIED IDEOGRAPH-6953 0x6954 楔 CJK UNIFIED IDEOGRAPH-6954 0x695A 楚 CJK UNIFIED IDEOGRAPH-695A 0x695D 楝 CJK UNIFIED IDEOGRAPH-695D 0x695E 楞 CJK UNIFIED IDEOGRAPH-695E 0x6960 楠 CJK UNIFIED IDEOGRAPH-6960 0x6963 楣 CJK UNIFIED IDEOGRAPH-6963 0x6966 楦 CJK UNIFIED IDEOGRAPH-6966 0x696B 楫 CJK UNIFIED IDEOGRAPH-696B 0x696D 業 CJK UNIFIED IDEOGRAPH-696D 0x696E 楮 CJK UNIFIED IDEOGRAPH-696E 0x6975 極 CJK UNIFIED IDEOGRAPH-6975 0x6977 楷 CJK UNIFIED IDEOGRAPH-6977 0x6978 楸 CJK UNIFIED IDEOGRAPH-6978 0x6979 楹 CJK UNIFIED IDEOGRAPH-6979 0x697C 楼 CJK UNIFIED IDEOGRAPH-697C 0x697D 楽 CJK UNIFIED IDEOGRAPH-697D 0x6982 概 CJK UNIFIED IDEOGRAPH-6982 0x6984 榄 CJK UNIFIED IDEOGRAPH-6984 0x6986 榆 CJK UNIFIED IDEOGRAPH-6986 0x6988 榈 CJK UNIFIED IDEOGRAPH-6988 0x6989 榉 CJK UNIFIED IDEOGRAPH-6989 0x698A 榊 CJK UNIFIED IDEOGRAPH-698A 0x698E 榎 CJK UNIFIED IDEOGRAPH-698E 0x6994 榔 CJK UNIFIED IDEOGRAPH-6994 0x6995 榕 CJK UNIFIED IDEOGRAPH-6995 0x699B 榛 CJK UNIFIED IDEOGRAPH-699B 0x699C 榜 CJK UNIFIED IDEOGRAPH-699C 0x69A7 榧 CJK UNIFIED IDEOGRAPH-69A7 0x69A8 榨 CJK UNIFIED IDEOGRAPH-69A8 0x69AB 榫 CJK UNIFIED IDEOGRAPH-69AB 0x69AD 榭 CJK UNIFIED IDEOGRAPH-69AD 0x69AE 榮 CJK UNIFIED IDEOGRAPH-69AE 0x69B4 榴 CJK UNIFIED IDEOGRAPH-69B4 0x69B7 榷 CJK UNIFIED IDEOGRAPH-69B7 0x69BB 榻 CJK UNIFIED IDEOGRAPH-69BB 0x69C1 槁 CJK UNIFIED IDEOGRAPH-69C1 0x69C3 槃 CJK UNIFIED IDEOGRAPH-69C3 0x69CA 槊 CJK UNIFIED IDEOGRAPH-69CA 0x69CB 構 CJK UNIFIED IDEOGRAPH-69CB 0x69CC 槌 CJK UNIFIED IDEOGRAPH-69CC 0x69CD 槍 CJK UNIFIED IDEOGRAPH-69CD 0x69CE 槎 CJK UNIFIED IDEOGRAPH-69CE 0x69D0 槐 CJK UNIFIED IDEOGRAPH-69D0 0x69D1 槑 CJK UNIFIED IDEOGRAPH-69D1 0x69D8 様 CJK UNIFIED IDEOGRAPH-69D8 0x69DB 槛 CJK UNIFIED IDEOGRAPH-69DB 0x69DF 槟 CJK UNIFIED IDEOGRAPH-69DF 0x69ED 槭 CJK UNIFIED IDEOGRAPH-69ED 0x69F2 槲 CJK UNIFIED IDEOGRAPH-69F2 0x69F8 槸 CJK UNIFIED IDEOGRAPH-69F8 0x69FB 槻 CJK UNIFIED IDEOGRAPH-69FB 0x69FD 槽 CJK UNIFIED IDEOGRAPH-69FD 0x69FF 槿 CJK UNIFIED IDEOGRAPH-69FF 0x6A02 樂 CJK UNIFIED IDEOGRAPH-6A02 0x6A0A 樊 CJK UNIFIED IDEOGRAPH-6A0A 0x6A0B 樋 CJK UNIFIED IDEOGRAPH-6A0B 0x6A11 樑 CJK UNIFIED IDEOGRAPH-6A11 0x6A13 樓 CJK UNIFIED IDEOGRAPH-6A13 0x6A18 樘 CJK UNIFIED IDEOGRAPH-6A18 0x6A19 標 CJK UNIFIED IDEOGRAPH-6A19 0x6A1F 樟 CJK UNIFIED IDEOGRAPH-6A1F 0x6A21 模 CJK UNIFIED IDEOGRAPH-6A21 0x6A23 樣 CJK UNIFIED IDEOGRAPH-6A23 0x6A28 樨 CJK UNIFIED IDEOGRAPH-6A28 0x6A29 権 CJK UNIFIED IDEOGRAPH-6A29 0x6A2A 横 CJK UNIFIED IDEOGRAPH-6A2A 0x6A2F 樯 CJK UNIFIED IDEOGRAPH-6A2F 0x6A31 樱 CJK UNIFIED IDEOGRAPH-6A31 0x6A35 樵 CJK UNIFIED IDEOGRAPH-6A35 0x6A38 樸 CJK UNIFIED IDEOGRAPH-6A38 0x6A39 樹 CJK UNIFIED IDEOGRAPH-6A39 0x6A3A 樺 CJK UNIFIED IDEOGRAPH-6A3A 0x6A3B 樻 CJK UNIFIED IDEOGRAPH-6A3B 0x6A3C 樼 CJK UNIFIED IDEOGRAPH-6A3C 0x6A3D 樽 CJK UNIFIED IDEOGRAPH-6A3D 0x6A3E 樾 CJK UNIFIED IDEOGRAPH-6A3E 0x6A44 橄 CJK UNIFIED IDEOGRAPH-6A44 0x6A47 橇 CJK UNIFIED IDEOGRAPH-6A47 0x6A4B 橋 CJK UNIFIED IDEOGRAPH-6A4B 0x6A58 橘 CJK UNIFIED IDEOGRAPH-6A58 0x6A59 橙 CJK UNIFIED IDEOGRAPH-6A59 0x6A5F 機 CJK UNIFIED IDEOGRAPH-6A5F 0x6A61 橡 CJK UNIFIED IDEOGRAPH-6A61 0x6A6B 橫 CJK UNIFIED IDEOGRAPH-6A6B 0x6A71 橱 CJK UNIFIED IDEOGRAPH-6A71 0x6A79 橹 CJK UNIFIED IDEOGRAPH-6A79 0x6A7C 橼 CJK UNIFIED IDEOGRAPH-6A7C 0x6A7E 橾 CJK UNIFIED IDEOGRAPH-6A7E 0x6A80 檀 CJK UNIFIED IDEOGRAPH-6A80 0x6A84 檄 CJK UNIFIED IDEOGRAPH-6A84 0x6A8E 檎 CJK UNIFIED IDEOGRAPH-6A8E 0x6A90 檐 CJK UNIFIED IDEOGRAPH-6A90 0x6A94 檔 CJK UNIFIED IDEOGRAPH-6A94 0x6A97 檗 CJK UNIFIED IDEOGRAPH-6A97 0x6AA2 檢 CJK UNIFIED IDEOGRAPH-6AA2 0x6AA9 檩 CJK UNIFIED IDEOGRAPH-6AA9 0x6AAB 檫 CJK UNIFIED IDEOGRAPH-6AAB 0x6AAC 檬 CJK UNIFIED IDEOGRAPH-6AAC 0x6AAF 檯 CJK UNIFIED IDEOGRAPH-6AAF 0x6AB3 檳 CJK UNIFIED IDEOGRAPH-6AB3 0x6AB8 檸 CJK UNIFIED IDEOGRAPH-6AB8 0x6AC3 櫃 CJK UNIFIED IDEOGRAPH-6AC3 0x6AFB 櫻 CJK UNIFIED IDEOGRAPH-6AFB 0x6B04 欄 CJK UNIFIED IDEOGRAPH-6B04 0x6B0A 權 CJK UNIFIED IDEOGRAPH-6B0A 0x6B0F 欏 CJK UNIFIED IDEOGRAPH-6B0F 0x6B10 欐 CJK UNIFIED IDEOGRAPH-6B10 0x6B12 欒 CJK UNIFIED IDEOGRAPH-6B12 0x6B20 欠 CJK UNIFIED IDEOGRAPH-6B20 0x6B21 次 CJK UNIFIED IDEOGRAPH-6B21 0x6B22 欢 CJK UNIFIED IDEOGRAPH-6B22 0x6B23 欣 CJK UNIFIED IDEOGRAPH-6B23 0x6B27 欧 CJK UNIFIED IDEOGRAPH-6B27 0x6B32 欲 CJK UNIFIED IDEOGRAPH-6B32 0x6B38 欸 CJK UNIFIED IDEOGRAPH-6B38 0x6B3A 欺 CJK UNIFIED IDEOGRAPH-6B3A 0x6B3E 款 CJK UNIFIED IDEOGRAPH-6B3E 0x6B46 歆 CJK UNIFIED IDEOGRAPH-6B46 0x6B47 歇 CJK UNIFIED IDEOGRAPH-6B47 0x6B49 歉 CJK UNIFIED IDEOGRAPH-6B49 0x6B4C 歌 CJK UNIFIED IDEOGRAPH-6B4C 0x6B50 歐 CJK UNIFIED IDEOGRAPH-6B50 0x6B59 歙 CJK UNIFIED IDEOGRAPH-6B59 0x6B61 歡 CJK UNIFIED IDEOGRAPH-6B61 0x6B62 止 CJK UNIFIED IDEOGRAPH-6B62 0x6B63 正 CJK UNIFIED IDEOGRAPH-6B63 0x6B64 此 CJK UNIFIED IDEOGRAPH-6B64 0x6B65 步 CJK UNIFIED IDEOGRAPH-6B65 0x6B66 武 CJK UNIFIED IDEOGRAPH-6B66 0x6B67 歧 CJK UNIFIED IDEOGRAPH-6B67 0x6B69 歩 CJK UNIFIED IDEOGRAPH-6B69 0x6B6A 歪 CJK UNIFIED IDEOGRAPH-6B6A 0x6B72 歲 CJK UNIFIED IDEOGRAPH-6B72 0x6B73 歳 CJK UNIFIED IDEOGRAPH-6B73 0x6B74 歴 CJK UNIFIED IDEOGRAPH-6B74 0x6B77 歷 CJK UNIFIED IDEOGRAPH-6B77 0x6B78 歸 CJK UNIFIED IDEOGRAPH-6B78 0x6B79 歹 CJK UNIFIED IDEOGRAPH-6B79 0x6B7B 死 CJK UNIFIED IDEOGRAPH-6B7B 0x6B7C 歼 CJK UNIFIED IDEOGRAPH-6B7C 0x6B81 殁 CJK UNIFIED IDEOGRAPH-6B81 0x6B83 殃 CJK UNIFIED IDEOGRAPH-6B83 0x6B84 殄 CJK UNIFIED IDEOGRAPH-6B84 0x6B86 殆 CJK UNIFIED IDEOGRAPH-6B86 0x6B87 殇 CJK UNIFIED IDEOGRAPH-6B87 0x6B89 殉 CJK UNIFIED IDEOGRAPH-6B89 0x6B8A 殊 CJK UNIFIED IDEOGRAPH-6B8A 0x6B8B 残 CJK UNIFIED IDEOGRAPH-6B8B 0x6B91 殑 CJK UNIFIED IDEOGRAPH-6B91 0x6B92 殒 CJK UNIFIED IDEOGRAPH-6B92 0x6B93 殓 CJK UNIFIED IDEOGRAPH-6B93 0x6B96 殖 CJK UNIFIED IDEOGRAPH-6B96 0x6B98 殘 CJK UNIFIED IDEOGRAPH-6B98 0x6B9A 殚 CJK UNIFIED IDEOGRAPH-6B9A 0x6BA1 殡 CJK UNIFIED IDEOGRAPH-6BA1 0x6BB4 殴 CJK UNIFIED IDEOGRAPH-6BB4 0x6BB5 段 CJK UNIFIED IDEOGRAPH-6BB5 0x6BB7 殷 CJK UNIFIED IDEOGRAPH-6BB7 0x6BBA 殺 CJK UNIFIED IDEOGRAPH-6BBA 0x6BBC 殼 CJK UNIFIED IDEOGRAPH-6BBC 0x6BBF 殿 CJK UNIFIED IDEOGRAPH-6BBF 0x6BC0 毀 CJK UNIFIED IDEOGRAPH-6BC0 0x6BC1 毁 CJK UNIFIED IDEOGRAPH-6BC1 0x6BC2 毂 CJK UNIFIED IDEOGRAPH-6BC2 0x6BC5 毅 CJK UNIFIED IDEOGRAPH-6BC5 0x6BCB 毋 CJK UNIFIED IDEOGRAPH-6BCB 0x6BCD 母 CJK UNIFIED IDEOGRAPH-6BCD 0x6BCE 毎 CJK UNIFIED IDEOGRAPH-6BCE 0x6BCF 每 CJK UNIFIED IDEOGRAPH-6BCF 0x6BD2 毒 CJK UNIFIED IDEOGRAPH-6BD2 0x6BD3 毓 CJK UNIFIED IDEOGRAPH-6BD3 0x6BD4 比 CJK UNIFIED IDEOGRAPH-6BD4 0x6BD5 毕 CJK UNIFIED IDEOGRAPH-6BD5 0x6BD7 毗 CJK UNIFIED IDEOGRAPH-6BD7 0x6BD9 毙 CJK UNIFIED IDEOGRAPH-6BD9 0x6BDB 毛 CJK UNIFIED IDEOGRAPH-6BDB 0x6BE1 毡 CJK UNIFIED IDEOGRAPH-6BE1 0x6BEB 毫 CJK UNIFIED IDEOGRAPH-6BEB 0x6BEF 毯 CJK UNIFIED IDEOGRAPH-6BEF 0x6BFD 毽 CJK UNIFIED IDEOGRAPH-6BFD 0x6C0F 氏 CJK UNIFIED IDEOGRAPH-6C0F 0x6C10 氐 CJK UNIFIED IDEOGRAPH-6C10 0x6C11 民 CJK UNIFIED IDEOGRAPH-6C11 0x6C13 氓 CJK UNIFIED IDEOGRAPH-6C13 0x6C14 气 CJK UNIFIED IDEOGRAPH-6C14 0x6C16 氖 CJK UNIFIED IDEOGRAPH-6C16 0x6C17 気 CJK UNIFIED IDEOGRAPH-6C17 0x6C18 氘 CJK UNIFIED IDEOGRAPH-6C18 0x6C19 氙 CJK UNIFIED IDEOGRAPH-6C19 0x6C1B 氛 CJK UNIFIED IDEOGRAPH-6C1B 0x6C1F 氟 CJK UNIFIED IDEOGRAPH-6C1F 0x6C21 氡 CJK UNIFIED IDEOGRAPH-6C21 0x6C22 氢 CJK UNIFIED IDEOGRAPH-6C22 0x6C23 氣 CJK UNIFIED IDEOGRAPH-6C23 0x6C24 氤 CJK UNIFIED IDEOGRAPH-6C24 0x6C26 氦 CJK UNIFIED IDEOGRAPH-6C26 0x6C27 氧 CJK UNIFIED IDEOGRAPH-6C27 0x6C28 氨 CJK UNIFIED IDEOGRAPH-6C28 0x6C29 氩 CJK UNIFIED IDEOGRAPH-6C29 0x6C2A 氪 CJK UNIFIED IDEOGRAPH-6C2A 0x6C2B 氫 CJK UNIFIED IDEOGRAPH-6C2B 0x6C2C 氬 CJK UNIFIED IDEOGRAPH-6C2C 0x6C2D 氭 CJK UNIFIED IDEOGRAPH-6C2D 0x6C2E 氮 CJK UNIFIED IDEOGRAPH-6C2E 0x6C2F 氯 CJK UNIFIED IDEOGRAPH-6C2F 0x6C30 氰 CJK UNIFIED IDEOGRAPH-6C30 0x6C31 氱 CJK UNIFIED IDEOGRAPH-6C31 0x6C32 氲 CJK UNIFIED IDEOGRAPH-6C32 0x6C33 氳 CJK UNIFIED IDEOGRAPH-6C33 0x6C34 水 CJK UNIFIED IDEOGRAPH-6C34 0x6C35 氵 CJK UNIFIED IDEOGRAPH-6C35 0x6C36 氶 CJK UNIFIED IDEOGRAPH-6C36 0x6C37 氷 CJK UNIFIED IDEOGRAPH-6C37 0x6C38 永 CJK UNIFIED IDEOGRAPH-6C38 0x6C39 氹 CJK UNIFIED IDEOGRAPH-6C39 0x6C3A 氺 CJK UNIFIED IDEOGRAPH-6C3A 0x6C3D 氽 CJK UNIFIED IDEOGRAPH-6C3D 0x6C3E 氾 CJK UNIFIED IDEOGRAPH-6C3E 0x6C40 汀 CJK UNIFIED IDEOGRAPH-6C40 0x6C41 汁 CJK UNIFIED IDEOGRAPH-6C41 0x6C42 求 CJK UNIFIED IDEOGRAPH-6C42 0x6C46 汆 CJK UNIFIED IDEOGRAPH-6C46 0x6C47 汇 CJK UNIFIED IDEOGRAPH-6C47 0x6C49 汉 CJK UNIFIED IDEOGRAPH-6C49 0x6C4A 汊 CJK UNIFIED IDEOGRAPH-6C4A 0x6C50 汐 CJK UNIFIED IDEOGRAPH-6C50 0x6C55 汕 CJK UNIFIED IDEOGRAPH-6C55 0x6C57 汗 CJK UNIFIED IDEOGRAPH-6C57 0x6C5A 汚 CJK UNIFIED IDEOGRAPH-6C5A 0x6C5B 汛 CJK UNIFIED IDEOGRAPH-6C5B 0x6C5C 汜 CJK UNIFIED IDEOGRAPH-6C5C 0x6C5D 汝 CJK UNIFIED IDEOGRAPH-6C5D 0x6C5E 汞 CJK UNIFIED IDEOGRAPH-6C5E 0x6C5F 江 CJK UNIFIED IDEOGRAPH-6C5F 0x6C60 池 CJK UNIFIED IDEOGRAPH-6C60 0x6C61 污 CJK UNIFIED IDEOGRAPH-6C61 0x6C64 汤 CJK UNIFIED IDEOGRAPH-6C64 0x6C68 汨 CJK UNIFIED IDEOGRAPH-6C68 0x6C69 汩 CJK UNIFIED IDEOGRAPH-6C69 0x6C6A 汪 CJK UNIFIED IDEOGRAPH-6C6A 0x6C70 汰 CJK UNIFIED IDEOGRAPH-6C70 0x6C72 汲 CJK UNIFIED IDEOGRAPH-6C72 0x6C74 汴 CJK UNIFIED IDEOGRAPH-6C74 0x6C76 汶 CJK UNIFIED IDEOGRAPH-6C76 0x6C79 汹 CJK UNIFIED IDEOGRAPH-6C79 0x6C7A 決 CJK UNIFIED IDEOGRAPH-6C7A 0x6C7D 汽 CJK UNIFIED IDEOGRAPH-6C7D 0x6C7E 汾 CJK UNIFIED IDEOGRAPH-6C7E 0x6C81 沁 CJK UNIFIED IDEOGRAPH-6C81 0x6C82 沂 CJK UNIFIED IDEOGRAPH-6C82 0x6C83 沃 CJK UNIFIED IDEOGRAPH-6C83 0x6C84 沄 CJK UNIFIED IDEOGRAPH-6C84 0x6C85 沅 CJK UNIFIED IDEOGRAPH-6C85 0x6C86 沆 CJK UNIFIED IDEOGRAPH-6C86 0x6C88 沈 CJK UNIFIED IDEOGRAPH-6C88 0x6C89 沉 CJK UNIFIED IDEOGRAPH-6C89 0x6C8C 沌 CJK UNIFIED IDEOGRAPH-6C8C 0x6C8F 沏 CJK UNIFIED IDEOGRAPH-6C8F 0x6C90 沐 CJK UNIFIED IDEOGRAPH-6C90 0x6C92 沒 CJK UNIFIED IDEOGRAPH-6C92 0x6C93 沓 CJK UNIFIED IDEOGRAPH-6C93 0x6C96 沖 CJK UNIFIED IDEOGRAPH-6C96 0x6C99 沙 CJK UNIFIED IDEOGRAPH-6C99 0x6C9B 沛 CJK UNIFIED IDEOGRAPH-6C9B 0x6C9F 沟 CJK UNIFIED IDEOGRAPH-6C9F 0x6CA1 没 CJK UNIFIED IDEOGRAPH-6CA1 0x6CA2 沢 CJK UNIFIED IDEOGRAPH-6CA2 0x6CA3 沣 CJK UNIFIED IDEOGRAPH-6CA3 0x6CA4 沤 CJK UNIFIED IDEOGRAPH-6CA4 0x6CA5 沥 CJK UNIFIED IDEOGRAPH-6CA5 0x6CA6 沦 CJK UNIFIED IDEOGRAPH-6CA6 0x6CA7 沧 CJK UNIFIED IDEOGRAPH-6CA7 0x6CA9 沩 CJK UNIFIED IDEOGRAPH-6CA9 0x6CAA 沪 CJK UNIFIED IDEOGRAPH-6CAA 0x6CAB 沫 CJK UNIFIED IDEOGRAPH-6CAB 0x6CAD 沭 CJK UNIFIED IDEOGRAPH-6CAD 0x6CAE 沮 CJK UNIFIED IDEOGRAPH-6CAE 0x6CB1 沱 CJK UNIFIED IDEOGRAPH-6CB1 0x6CB3 河 CJK UNIFIED IDEOGRAPH-6CB3 0x6CB8 沸 CJK UNIFIED IDEOGRAPH-6CB8 0x6CB9 油 CJK UNIFIED IDEOGRAPH-6CB9 0x6CBB 治 CJK UNIFIED IDEOGRAPH-6CBB 0x6CBC 沼 CJK UNIFIED IDEOGRAPH-6CBC 0x6CBD 沽 CJK UNIFIED IDEOGRAPH-6CBD 0x6CBE 沾 CJK UNIFIED IDEOGRAPH-6CBE 0x6CBF 沿 CJK UNIFIED IDEOGRAPH-6CBF 0x6CC1 況 CJK UNIFIED IDEOGRAPH-6CC1 0x6CC4 泄 CJK UNIFIED IDEOGRAPH-6CC4 0x6CC5 泅 CJK UNIFIED IDEOGRAPH-6CC5 0x6CC9 泉 CJK UNIFIED IDEOGRAPH-6CC9 0x6CCA 泊 CJK UNIFIED IDEOGRAPH-6CCA 0x6CCC 泌 CJK UNIFIED IDEOGRAPH-6CCC 0x6CD3 泓 CJK UNIFIED IDEOGRAPH-6CD3 0x6CD4 泔 CJK UNIFIED IDEOGRAPH-6CD4 0x6CD5 法 CJK UNIFIED IDEOGRAPH-6CD5 0x6CD7 泗 CJK UNIFIED IDEOGRAPH-6CD7 0x6CDB 泛 CJK UNIFIED IDEOGRAPH-6CDB 0x6CDE 泞 CJK UNIFIED IDEOGRAPH-6CDE 0x6CE0 泠 CJK UNIFIED IDEOGRAPH-6CE0 0x6CE1 泡 CJK UNIFIED IDEOGRAPH-6CE1 0x6CE2 波 CJK UNIFIED IDEOGRAPH-6CE2 0x6CE3 泣 CJK UNIFIED IDEOGRAPH-6CE3 0x6CE5 泥 CJK UNIFIED IDEOGRAPH-6CE5 0x6CE8 注 CJK UNIFIED IDEOGRAPH-6CE8 0x6CEA 泪 CJK UNIFIED IDEOGRAPH-6CEA 0x6CEB 泫 CJK UNIFIED IDEOGRAPH-6CEB 0x6CEE 泮 CJK UNIFIED IDEOGRAPH-6CEE 0x6CEF 泯 CJK UNIFIED IDEOGRAPH-6CEF 0x6CF0 泰 CJK UNIFIED IDEOGRAPH-6CF0 0x6CF1 泱 CJK UNIFIED IDEOGRAPH-6CF1 0x6CF3 泳 CJK UNIFIED IDEOGRAPH-6CF3 0x6CF5 泵 CJK UNIFIED IDEOGRAPH-6CF5 0x6CF7 泷 CJK UNIFIED IDEOGRAPH-6CF7 0x6CF8 泸 CJK UNIFIED IDEOGRAPH-6CF8 0x6CFA 泺 CJK UNIFIED IDEOGRAPH-6CFA 0x6CFB 泻 CJK UNIFIED IDEOGRAPH-6CFB 0x6CFC 泼 CJK UNIFIED IDEOGRAPH-6CFC 0x6CFD 泽 CJK UNIFIED IDEOGRAPH-6CFD 0x6CFE 泾 CJK UNIFIED IDEOGRAPH-6CFE 0x6D01 洁 CJK UNIFIED IDEOGRAPH-6D01 0x6D04 洄 CJK UNIFIED IDEOGRAPH-6D04 0x6D0B 洋 CJK UNIFIED IDEOGRAPH-6D0B 0x6D0C 洌 CJK UNIFIED IDEOGRAPH-6D0C 0x6D12 洒 CJK UNIFIED IDEOGRAPH-6D12 0x6D17 洗 CJK UNIFIED IDEOGRAPH-6D17 0x6D19 洙 CJK UNIFIED IDEOGRAPH-6D19 0x6D1B 洛 CJK UNIFIED IDEOGRAPH-6D1B 0x6D1E 洞 CJK UNIFIED IDEOGRAPH-6D1E 0x6D25 津 CJK UNIFIED IDEOGRAPH-6D25 0x6D27 洧 CJK UNIFIED IDEOGRAPH-6D27 0x6D29 洩 CJK UNIFIED IDEOGRAPH-6D29 0x6D2A 洪 CJK UNIFIED IDEOGRAPH-6D2A 0x6D2E 洮 CJK UNIFIED IDEOGRAPH-6D2E 0x6D31 洱 CJK UNIFIED IDEOGRAPH-6D31 0x6D32 洲 CJK UNIFIED IDEOGRAPH-6D32 0x6D35 洵 CJK UNIFIED IDEOGRAPH-6D35 0x6D38 洸 CJK UNIFIED IDEOGRAPH-6D38 0x6D39 洹 CJK UNIFIED IDEOGRAPH-6D39 0x6D3A 洺 CJK UNIFIED IDEOGRAPH-6D3A 0x6D3B 活 CJK UNIFIED IDEOGRAPH-6D3B 0x6D3C 洼 CJK UNIFIED IDEOGRAPH-6D3C 0x6D3D 洽 CJK UNIFIED IDEOGRAPH-6D3D 0x6D3E 派 CJK UNIFIED IDEOGRAPH-6D3E 0x6D3F 洿 CJK UNIFIED IDEOGRAPH-6D3F 0x6D41 流 CJK UNIFIED IDEOGRAPH-6D41 0x6D43 浃 CJK UNIFIED IDEOGRAPH-6D43 0x6D44 浄 CJK UNIFIED IDEOGRAPH-6D44 0x6D45 浅 CJK UNIFIED IDEOGRAPH-6D45 0x6D46 浆 CJK UNIFIED IDEOGRAPH-6D46 0x6D47 浇 CJK UNIFIED IDEOGRAPH-6D47 0x6D48 浈 CJK UNIFIED IDEOGRAPH-6D48 0x6D49 浉 CJK UNIFIED IDEOGRAPH-6D49 0x6D4A 浊 CJK UNIFIED IDEOGRAPH-6D4A 0x6D4B 测 CJK UNIFIED IDEOGRAPH-6D4B 0x6D4E 济 CJK UNIFIED IDEOGRAPH-6D4E 0x6D4F 浏 CJK UNIFIED IDEOGRAPH-6D4F 0x6D50 浐 CJK UNIFIED IDEOGRAPH-6D50 0x6D51 浑 CJK UNIFIED IDEOGRAPH-6D51 0x6D52 浒 CJK UNIFIED IDEOGRAPH-6D52 0x6D53 浓 CJK UNIFIED IDEOGRAPH-6D53 0x6D54 浔 CJK UNIFIED IDEOGRAPH-6D54 0x6D57 浗 CJK UNIFIED IDEOGRAPH-6D57 0x6D58 浘 CJK UNIFIED IDEOGRAPH-6D58 0x6D59 浙 CJK UNIFIED IDEOGRAPH-6D59 0x6D5A 浚 CJK UNIFIED IDEOGRAPH-6D5A 0x6D5C 浜 CJK UNIFIED IDEOGRAPH-6D5C 0x6D60 浠 CJK UNIFIED IDEOGRAPH-6D60 0x6D63 浣 CJK UNIFIED IDEOGRAPH-6D63 0x6D66 浦 CJK UNIFIED IDEOGRAPH-6D66 0x6D69 浩 CJK UNIFIED IDEOGRAPH-6D69 0x6D6A 浪 CJK UNIFIED IDEOGRAPH-6D6A 0x6D6E 浮 CJK UNIFIED IDEOGRAPH-6D6E 0x6D6F 浯 CJK UNIFIED IDEOGRAPH-6D6F 0x6D74 浴 CJK UNIFIED IDEOGRAPH-6D74 0x6D77 海 CJK UNIFIED IDEOGRAPH-6D77 0x6D78 浸 CJK UNIFIED IDEOGRAPH-6D78 0x6D7C 浼 CJK UNIFIED IDEOGRAPH-6D7C 0x6D82 涂 CJK UNIFIED IDEOGRAPH-6D82 0x6D85 涅 CJK UNIFIED IDEOGRAPH-6D85 0x6D88 消 CJK UNIFIED IDEOGRAPH-6D88 0x6D89 涉 CJK UNIFIED IDEOGRAPH-6D89 0x6D8C 涌 CJK UNIFIED IDEOGRAPH-6D8C 0x6D8E 涎 CJK UNIFIED IDEOGRAPH-6D8E 0x6D93 涓 CJK UNIFIED IDEOGRAPH-6D93 0x6D94 涔 CJK UNIFIED IDEOGRAPH-6D94 0x6D95 涕 CJK UNIFIED IDEOGRAPH-6D95 0x6D98 涘 CJK UNIFIED IDEOGRAPH-6D98 0x6D99 涙 CJK UNIFIED IDEOGRAPH-6D99 0x6D9B 涛 CJK UNIFIED IDEOGRAPH-6D9B 0x6D9D 涝 CJK UNIFIED IDEOGRAPH-6D9D 0x6D9E 涞 CJK UNIFIED IDEOGRAPH-6D9E 0x6D9F 涟 CJK UNIFIED IDEOGRAPH-6D9F 0x6DA0 涠 CJK UNIFIED IDEOGRAPH-6DA0 0x6DA1 涡 CJK UNIFIED IDEOGRAPH-6DA1 0x6DA3 涣 CJK UNIFIED IDEOGRAPH-6DA3 0x6DA4 涤 CJK UNIFIED IDEOGRAPH-6DA4 0x6DA6 润 CJK UNIFIED IDEOGRAPH-6DA6 0x6DA7 涧 CJK UNIFIED IDEOGRAPH-6DA7 0x6DA8 涨 CJK UNIFIED IDEOGRAPH-6DA8 0x6DA9 涩 CJK UNIFIED IDEOGRAPH-6DA9 0x6DAA 涪 CJK UNIFIED IDEOGRAPH-6DAA 0x6DAE 涮 CJK UNIFIED IDEOGRAPH-6DAE 0x6DAF 涯 CJK UNIFIED IDEOGRAPH-6DAF 0x6DB2 液 CJK UNIFIED IDEOGRAPH-6DB2 0x6DB5 涵 CJK UNIFIED IDEOGRAPH-6DB5 0x6DB8 涸 CJK UNIFIED IDEOGRAPH-6DB8 0x6DBC 涼 CJK UNIFIED IDEOGRAPH-6DBC 0x6DBF 涿 CJK UNIFIED IDEOGRAPH-6DBF 0x6DC0 淀 CJK UNIFIED IDEOGRAPH-6DC0 0x6DC4 淄 CJK UNIFIED IDEOGRAPH-6DC4 0x6DC5 淅 CJK UNIFIED IDEOGRAPH-6DC5 0x6DC6 淆 CJK UNIFIED IDEOGRAPH-6DC6 0x6DC7 淇 CJK UNIFIED IDEOGRAPH-6DC7 0x6DCB 淋 CJK UNIFIED IDEOGRAPH-6DCB 0x6DCC 淌 CJK UNIFIED IDEOGRAPH-6DCC 0x6DD1 淑 CJK UNIFIED IDEOGRAPH-6DD1 0x6DD6 淖 CJK UNIFIED IDEOGRAPH-6DD6 0x6DD8 淘 CJK UNIFIED IDEOGRAPH-6DD8 0x6DD9 淙 CJK UNIFIED IDEOGRAPH-6DD9 0x6DDA 淚 CJK UNIFIED IDEOGRAPH-6DDA 0x6DDD 淝 CJK UNIFIED IDEOGRAPH-6DDD 0x6DDE 淞 CJK UNIFIED IDEOGRAPH-6DDE 0x6DE1 淡 CJK UNIFIED IDEOGRAPH-6DE1 0x6DE4 淤 CJK UNIFIED IDEOGRAPH-6DE4 0x6DE6 淦 CJK UNIFIED IDEOGRAPH-6DE6 0x6DE8 淨 CJK UNIFIED IDEOGRAPH-6DE8 0x6DE9 淩 CJK UNIFIED IDEOGRAPH-6DE9 0x6DEB 淫 CJK UNIFIED IDEOGRAPH-6DEB 0x6DEC 淬 CJK UNIFIED IDEOGRAPH-6DEC 0x6DEE 淮 CJK UNIFIED IDEOGRAPH-6DEE 0x6DF1 深 CJK UNIFIED IDEOGRAPH-6DF1 0x6DF3 淳 CJK UNIFIED IDEOGRAPH-6DF3 0x6DF5 淵 CJK UNIFIED IDEOGRAPH-6DF5 0x6DF7 混 CJK UNIFIED IDEOGRAPH-6DF7 0x6DF8 淸 CJK UNIFIED IDEOGRAPH-6DF8 0x6DF9 淹 CJK UNIFIED IDEOGRAPH-6DF9 0x6DFA 淺 CJK UNIFIED IDEOGRAPH-6DFA 0x6DFB 添 CJK UNIFIED IDEOGRAPH-6DFB 0x6DFC 淼 CJK UNIFIED IDEOGRAPH-6DFC 0x6E05 清 CJK UNIFIED IDEOGRAPH-6E05 0x6E08 済 CJK UNIFIED IDEOGRAPH-6E08 0x6E09 渉 CJK UNIFIED IDEOGRAPH-6E09 0x6E0A 渊 CJK UNIFIED IDEOGRAPH-6E0A 0x6E0B 渋 CJK UNIFIED IDEOGRAPH-6E0B 0x6E0C 渌 CJK UNIFIED IDEOGRAPH-6E0C 0x6E0D 渍 CJK UNIFIED IDEOGRAPH-6E0D 0x6E0E 渎 CJK UNIFIED IDEOGRAPH-6E0E 0x6E10 渐 CJK UNIFIED IDEOGRAPH-6E10 0x6E11 渑 CJK UNIFIED IDEOGRAPH-6E11 0x6E14 渔 CJK UNIFIED IDEOGRAPH-6E14 0x6E17 渗 CJK UNIFIED IDEOGRAPH-6E17 0x6E1A 渚 CJK UNIFIED IDEOGRAPH-6E1A 0x6E1B 減 CJK UNIFIED IDEOGRAPH-6E1B 0x6E1D 渝 CJK UNIFIED IDEOGRAPH-6E1D 0x6E20 渠 CJK UNIFIED IDEOGRAPH-6E20 0x6E21 渡 CJK UNIFIED IDEOGRAPH-6E21 0x6E23 渣 CJK UNIFIED IDEOGRAPH-6E23 0x6E24 渤 CJK UNIFIED IDEOGRAPH-6E24 0x6E25 渥 CJK UNIFIED IDEOGRAPH-6E25 0x6E29 温 CJK UNIFIED IDEOGRAPH-6E29 0x6E2C 測 CJK UNIFIED IDEOGRAPH-6E2C 0x6E2D 渭 CJK UNIFIED IDEOGRAPH-6E2D 0x6E2F 港 CJK UNIFIED IDEOGRAPH-6E2F 0x6E32 渲 CJK UNIFIED IDEOGRAPH-6E32 0x6E34 渴 CJK UNIFIED IDEOGRAPH-6E34 0x6E36 渶 CJK UNIFIED IDEOGRAPH-6E36 0x6E38 游 CJK UNIFIED IDEOGRAPH-6E38 0x6E39 渹 CJK UNIFIED IDEOGRAPH-6E39 0x6E3A 渺 CJK UNIFIED IDEOGRAPH-6E3A 0x6E41 湁 CJK UNIFIED IDEOGRAPH-6E41 0x6E43 湃 CJK UNIFIED IDEOGRAPH-6E43 0x6E44 湄 CJK UNIFIED IDEOGRAPH-6E44 0x6E45 湅 CJK UNIFIED IDEOGRAPH-6E45 0x6E49 湉 CJK UNIFIED IDEOGRAPH-6E49 0x6E4A 湊 CJK UNIFIED IDEOGRAPH-6E4A 0x6E4D 湍 CJK UNIFIED IDEOGRAPH-6E4D 0x6E4E 湎 CJK UNIFIED IDEOGRAPH-6E4E 0x6E51 湑 CJK UNIFIED IDEOGRAPH-6E51 0x6E56 湖 CJK UNIFIED IDEOGRAPH-6E56 0x6E58 湘 CJK UNIFIED IDEOGRAPH-6E58 0x6E5B 湛 CJK UNIFIED IDEOGRAPH-6E5B 0x6E5F 湟 CJK UNIFIED IDEOGRAPH-6E5F 0x6E61 湡 CJK UNIFIED IDEOGRAPH-6E61 0x6E67 湧 CJK UNIFIED IDEOGRAPH-6E67 0x6E6A 湪 CJK UNIFIED IDEOGRAPH-6E6A 0x6E6B 湫 CJK UNIFIED IDEOGRAPH-6E6B 0x6E6E 湮 CJK UNIFIED IDEOGRAPH-6E6E 0x6E6F 湯 CJK UNIFIED IDEOGRAPH-6E6F 0x6E74 湴 CJK UNIFIED IDEOGRAPH-6E74 0x6E7E 湾 CJK UNIFIED IDEOGRAPH-6E7E 0x6E7F 湿 CJK UNIFIED IDEOGRAPH-6E7F 0x6E80 満 CJK UNIFIED IDEOGRAPH-6E80 0x6E83 溃 CJK UNIFIED IDEOGRAPH-6E83 0x6E85 溅 CJK UNIFIED IDEOGRAPH-6E85 0x6E86 溆 CJK UNIFIED IDEOGRAPH-6E86 0x6E89 溉 CJK UNIFIED IDEOGRAPH-6E89 0x6E8F 溏 CJK UNIFIED IDEOGRAPH-6E8F 0x6E90 源 CJK UNIFIED IDEOGRAPH-6E90 0x6E96 準 CJK UNIFIED IDEOGRAPH-6E96 0x6E9C 溜 CJK UNIFIED IDEOGRAPH-6E9C 0x6E9D 溝 CJK UNIFIED IDEOGRAPH-6E9D 0x6E9F 溟 CJK UNIFIED IDEOGRAPH-6E9F 0x6EA2 溢 CJK UNIFIED IDEOGRAPH-6EA2 0x6EA5 溥 CJK UNIFIED IDEOGRAPH-6EA5 0x6EA7 溧 CJK UNIFIED IDEOGRAPH-6EA7 0x6EAA 溪 CJK UNIFIED IDEOGRAPH-6EAA 0x6EAB 溫 CJK UNIFIED IDEOGRAPH-6EAB 0x6EAF 溯 CJK UNIFIED IDEOGRAPH-6EAF 0x6EB1 溱 CJK UNIFIED IDEOGRAPH-6EB1 0x6EB4 溴 CJK UNIFIED IDEOGRAPH-6EB4 0x6EB6 溶 CJK UNIFIED IDEOGRAPH-6EB6 0x6EBA 溺 CJK UNIFIED IDEOGRAPH-6EBA 0x6EBC 溼 CJK UNIFIED IDEOGRAPH-6EBC 0x6EC0 滀 CJK UNIFIED IDEOGRAPH-6EC0 0x6EC1 滁 CJK UNIFIED IDEOGRAPH-6EC1 0x6EC2 滂 CJK UNIFIED IDEOGRAPH-6EC2 0x6EC3 滃 CJK UNIFIED IDEOGRAPH-6EC3 0x6EC4 滄 CJK UNIFIED IDEOGRAPH-6EC4 0x6EC5 滅 CJK UNIFIED IDEOGRAPH-6EC5 0x6EC6 滆 CJK UNIFIED IDEOGRAPH-6EC6 0x6EC7 滇 CJK UNIFIED IDEOGRAPH-6EC7 0x6ECB 滋 CJK UNIFIED IDEOGRAPH-6ECB 0x6ED1 滑 CJK UNIFIED IDEOGRAPH-6ED1 0x6ED3 滓 CJK UNIFIED IDEOGRAPH-6ED3 0x6ED4 滔 CJK UNIFIED IDEOGRAPH-6ED4 0x6ED5 滕 CJK UNIFIED IDEOGRAPH-6ED5 0x6ED8 滘 CJK UNIFIED IDEOGRAPH-6ED8 0x6ED9 滙 CJK UNIFIED IDEOGRAPH-6ED9 0x6EDA 滚 CJK UNIFIED IDEOGRAPH-6EDA 0x6EDB 滛 CJK UNIFIED IDEOGRAPH-6EDB 0x6EDD 滝 CJK UNIFIED IDEOGRAPH-6EDD 0x6EDE 滞 CJK UNIFIED IDEOGRAPH-6EDE 0x6EDF 滟 CJK UNIFIED IDEOGRAPH-6EDF 0x6EE1 满 CJK UNIFIED IDEOGRAPH-6EE1 0x6EE2 滢 CJK UNIFIED IDEOGRAPH-6EE2 0x6EE4 滤 CJK UNIFIED IDEOGRAPH-6EE4 0x6EE5 滥 CJK UNIFIED IDEOGRAPH-6EE5 0x6EE6 滦 CJK UNIFIED IDEOGRAPH-6EE6 0x6EE8 滨 CJK UNIFIED IDEOGRAPH-6EE8 0x6EE9 滩 CJK UNIFIED IDEOGRAPH-6EE9 0x6EF4 滴 CJK UNIFIED IDEOGRAPH-6EF4 0x6EFE 滾 CJK UNIFIED IDEOGRAPH-6EFE 0x6EFF 滿 CJK UNIFIED IDEOGRAPH-6EFF 0x6F01 漁 CJK UNIFIED IDEOGRAPH-6F01 0x6F02 漂 CJK UNIFIED IDEOGRAPH-6F02 0x6F06 漆 CJK UNIFIED IDEOGRAPH-6F06 0x6F09 漉 CJK UNIFIED IDEOGRAPH-6F09 0x6F0F 漏 CJK UNIFIED IDEOGRAPH-6F0F 0x6F13 漓 CJK UNIFIED IDEOGRAPH-6F13 0x6F14 演 CJK UNIFIED IDEOGRAPH-6F14 0x6F15 漕 CJK UNIFIED IDEOGRAPH-6F15 0x6F20 漠 CJK UNIFIED IDEOGRAPH-6F20 0x6F22 漢 CJK UNIFIED IDEOGRAPH-6F22 0x6F29 漩 CJK UNIFIED IDEOGRAPH-6F29 0x6F2A 漪 CJK UNIFIED IDEOGRAPH-6F2A 0x6F2B 漫 CJK UNIFIED IDEOGRAPH-6F2B 0x6F2F 漯 CJK UNIFIED IDEOGRAPH-6F2F 0x6F31 漱 CJK UNIFIED IDEOGRAPH-6F31 0x6F32 漲 CJK UNIFIED IDEOGRAPH-6F32 0x6F33 漳 CJK UNIFIED IDEOGRAPH-6F33 0x6F38 漸 CJK UNIFIED IDEOGRAPH-6F38 0x6F3E 漾 CJK UNIFIED IDEOGRAPH-6F3E 0x6F3F 漿 CJK UNIFIED IDEOGRAPH-6F3F 0x6F43 潃 CJK UNIFIED IDEOGRAPH-6F43 0x6F47 潇 CJK UNIFIED IDEOGRAPH-6F47 0x6F48 潈 CJK UNIFIED IDEOGRAPH-6F48 0x6F4B 潋 CJK UNIFIED IDEOGRAPH-6F4B 0x6F4D 潍 CJK UNIFIED IDEOGRAPH-6F4D 0x6F51 潑 CJK UNIFIED IDEOGRAPH-6F51 0x6F54 潔 CJK UNIFIED IDEOGRAPH-6F54 0x6F58 潘 CJK UNIFIED IDEOGRAPH-6F58 0x6F5B 潛 CJK UNIFIED IDEOGRAPH-6F5B 0x6F5C 潜 CJK UNIFIED IDEOGRAPH-6F5C 0x6F5E 潞 CJK UNIFIED IDEOGRAPH-6F5E 0x6F5F 潟 CJK UNIFIED IDEOGRAPH-6F5F 0x6F62 潢 CJK UNIFIED IDEOGRAPH-6F62 0x6F64 潤 CJK UNIFIED IDEOGRAPH-6F64 0x6F66 潦 CJK UNIFIED IDEOGRAPH-6F66 0x6F6D 潭 CJK UNIFIED IDEOGRAPH-6F6D 0x6F6E 潮 CJK UNIFIED IDEOGRAPH-6F6E 0x6F70 潰 CJK UNIFIED IDEOGRAPH-6F70 0x6F74 潴 CJK UNIFIED IDEOGRAPH-6F74 0x6F78 潸 CJK UNIFIED IDEOGRAPH-6F78 0x6F7A 潺 CJK UNIFIED IDEOGRAPH-6F7A 0x6F7C 潼 CJK UNIFIED IDEOGRAPH-6F7C 0x6F80 澀 CJK UNIFIED IDEOGRAPH-6F80 0x6F84 澄 CJK UNIFIED IDEOGRAPH-6F84 0x6F88 澈 CJK UNIFIED IDEOGRAPH-6F88 0x6F8D 澍 CJK UNIFIED IDEOGRAPH-6F8D 0x6F8E 澎 CJK UNIFIED IDEOGRAPH-6F8E 0x6F9C 澜 CJK UNIFIED IDEOGRAPH-6F9C 0x6FA1 澡 CJK UNIFIED IDEOGRAPH-6FA1 0x6FA4 澤 CJK UNIFIED IDEOGRAPH-6FA4 0x6FA7 澧 CJK UNIFIED IDEOGRAPH-6FA7 0x6FAA 澪 CJK UNIFIED IDEOGRAPH-6FAA 0x6FB3 澳 CJK UNIFIED IDEOGRAPH-6FB3 0x6FB6 澶 CJK UNIFIED IDEOGRAPH-6FB6 0x6FB9 澹 CJK UNIFIED IDEOGRAPH-6FB9 0x6FC0 激 CJK UNIFIED IDEOGRAPH-6FC0 0x6FC1 濁 CJK UNIFIED IDEOGRAPH-6FC1 0x6FC2 濂 CJK UNIFIED IDEOGRAPH-6FC2 0x6FC3 濃 CJK UNIFIED IDEOGRAPH-6FC3 0x6FC6 濆 CJK UNIFIED IDEOGRAPH-6FC6 0x6FC7 濇 CJK UNIFIED IDEOGRAPH-6FC7 0x6FC9 濉 CJK UNIFIED IDEOGRAPH-6FC9 0x6FCB 濋 CJK UNIFIED IDEOGRAPH-6FCB 0x6FD1 濑 CJK UNIFIED IDEOGRAPH-6FD1 0x6FD2 濒 CJK UNIFIED IDEOGRAPH-6FD2 0x6FD5 濕 CJK UNIFIED IDEOGRAPH-6FD5 0x6FDB 濛 CJK UNIFIED IDEOGRAPH-6FDB 0x6FDE 濞 CJK UNIFIED IDEOGRAPH-6FDE 0x6FDF 濟 CJK UNIFIED IDEOGRAPH-6FDF 0x6FE0 濠 CJK UNIFIED IDEOGRAPH-6FE0 0x6FE1 濡 CJK UNIFIED IDEOGRAPH-6FE1 0x6FE4 濤 CJK UNIFIED IDEOGRAPH-6FE4 0x6FEB 濫 CJK UNIFIED IDEOGRAPH-6FEB 0x6FEE 濮 CJK UNIFIED IDEOGRAPH-6FEE 0x6FEF 濯 CJK UNIFIED IDEOGRAPH-6FEF 0x6FF1 濱 CJK UNIFIED IDEOGRAPH-6FF1 0x6FFE 濾 CJK UNIFIED IDEOGRAPH-6FFE 0x700F 瀏 CJK UNIFIED IDEOGRAPH-700F 0x7011 瀑 CJK UNIFIED IDEOGRAPH-7011 0x701A 瀚 CJK UNIFIED IDEOGRAPH-701A 0x701B 瀛 CJK UNIFIED IDEOGRAPH-701B 0x7028 瀨 CJK UNIFIED IDEOGRAPH-7028 0x702C 瀬 CJK UNIFIED IDEOGRAPH-702C 0x7035 瀵 CJK UNIFIED IDEOGRAPH-7035 0x7039 瀹 CJK UNIFIED IDEOGRAPH-7039 0x704C 灌 CJK UNIFIED IDEOGRAPH-704C 0x704F 灏 CJK UNIFIED IDEOGRAPH-704F 0x7058 灘 CJK UNIFIED IDEOGRAPH-7058 0x705E 灞 CJK UNIFIED IDEOGRAPH-705E 0x7063 灣 CJK UNIFIED IDEOGRAPH-7063 0x706B 火 CJK UNIFIED IDEOGRAPH-706B 0x706C 灬 CJK UNIFIED IDEOGRAPH-706C 0x706D 灭 CJK UNIFIED IDEOGRAPH-706D 0x706F 灯 CJK UNIFIED IDEOGRAPH-706F 0x7070 灰 CJK UNIFIED IDEOGRAPH-7070 0x7075 灵 CJK UNIFIED IDEOGRAPH-7075 0x7076 灶 CJK UNIFIED IDEOGRAPH-7076 0x7078 灸 CJK UNIFIED IDEOGRAPH-7078 0x707C 灼 CJK UNIFIED IDEOGRAPH-707C 0x707D 災 CJK UNIFIED IDEOGRAPH-707D 0x707E 灾 CJK UNIFIED IDEOGRAPH-707E 0x707F 灿 CJK UNIFIED IDEOGRAPH-707F 0x7080 炀 CJK UNIFIED IDEOGRAPH-7080 0x7085 炅 CJK UNIFIED IDEOGRAPH-7085 0x7086 炆 CJK UNIFIED IDEOGRAPH-7086 0x7089 炉 CJK UNIFIED IDEOGRAPH-7089 0x708A 炊 CJK UNIFIED IDEOGRAPH-708A 0x708E 炎 CJK UNIFIED IDEOGRAPH-708E 0x7092 炒 CJK UNIFIED IDEOGRAPH-7092 0x7094 炔 CJK UNIFIED IDEOGRAPH-7094 0x7095 炕 CJK UNIFIED IDEOGRAPH-7095 0x7096 炖 CJK UNIFIED IDEOGRAPH-7096 0x7099 炙 CJK UNIFIED IDEOGRAPH-7099 0x709C 炜 CJK UNIFIED IDEOGRAPH-709C 0x709D 炝 CJK UNIFIED IDEOGRAPH-709D 0x70A9 炩 CJK UNIFIED IDEOGRAPH-70A9 0x70AB 炫 CJK UNIFIED IDEOGRAPH-70AB 0x70AC 炬 CJK UNIFIED IDEOGRAPH-70AC 0x70AD 炭 CJK UNIFIED IDEOGRAPH-70AD 0x70AE 炮 CJK UNIFIED IDEOGRAPH-70AE 0x70AF 炯 CJK UNIFIED IDEOGRAPH-70AF 0x70B2 炲 CJK UNIFIED IDEOGRAPH-70B2 0x70B3 炳 CJK UNIFIED IDEOGRAPH-70B3 0x70B7 炷 CJK UNIFIED IDEOGRAPH-70B7 0x70B8 炸 CJK UNIFIED IDEOGRAPH-70B8 0x70B9 点 CJK UNIFIED IDEOGRAPH-70B9 0x70BA 為 CJK UNIFIED IDEOGRAPH-70BA 0x70BC 炼 CJK UNIFIED IDEOGRAPH-70BC 0x70BD 炽 CJK UNIFIED IDEOGRAPH-70BD 0x70C1 烁 CJK UNIFIED IDEOGRAPH-70C1 0x70C2 烂 CJK UNIFIED IDEOGRAPH-70C2 0x70C3 烃 CJK UNIFIED IDEOGRAPH-70C3 0x70C8 烈 CJK UNIFIED IDEOGRAPH-70C8 0x70CA 烊 CJK UNIFIED IDEOGRAPH-70CA 0x70CF 烏 CJK UNIFIED IDEOGRAPH-70CF 0x70D8 烘 CJK UNIFIED IDEOGRAPH-70D8 0x70D9 烙 CJK UNIFIED IDEOGRAPH-70D9 0x70DB 烛 CJK UNIFIED IDEOGRAPH-70DB 0x70DC 烜 CJK UNIFIED IDEOGRAPH-70DC 0x70DF 烟 CJK UNIFIED IDEOGRAPH-70DF 0x70E4 烤 CJK UNIFIED IDEOGRAPH-70E4 0x70E6 烦 CJK UNIFIED IDEOGRAPH-70E6 0x70E7 烧 CJK UNIFIED IDEOGRAPH-70E7 0x70E8 烨 CJK UNIFIED IDEOGRAPH-70E8 0x70E9 烩 CJK UNIFIED IDEOGRAPH-70E9 0x70EB 烫 CJK UNIFIED IDEOGRAPH-70EB 0x70EC 烬 CJK UNIFIED IDEOGRAPH-70EC 0x70ED 热 CJK UNIFIED IDEOGRAPH-70ED 0x70EF 烯 CJK UNIFIED IDEOGRAPH-70EF 0x70F7 烷 CJK UNIFIED IDEOGRAPH-70F7 0x70F9 烹 CJK UNIFIED IDEOGRAPH-70F9 0x70FD 烽 CJK UNIFIED IDEOGRAPH-70FD 0x7109 焉 CJK UNIFIED IDEOGRAPH-7109 0x710A 焊 CJK UNIFIED IDEOGRAPH-710A 0x7113 焓 CJK UNIFIED IDEOGRAPH-7113 0x7115 焕 CJK UNIFIED IDEOGRAPH-7115 0x7116 焖 CJK UNIFIED IDEOGRAPH-7116 0x7117 焗 CJK UNIFIED IDEOGRAPH-7117 0x7118 焘 CJK UNIFIED IDEOGRAPH-7118 0x7119 焙 CJK UNIFIED IDEOGRAPH-7119 0x711A 焚 CJK UNIFIED IDEOGRAPH-711A 0x711C 焜 CJK UNIFIED IDEOGRAPH-711C 0x7121 無 CJK UNIFIED IDEOGRAPH-7121 0x7126 焦 CJK UNIFIED IDEOGRAPH-7126 0x712F 焯 CJK UNIFIED IDEOGRAPH-712F 0x7130 焰 CJK UNIFIED IDEOGRAPH-7130 0x7131 焱 CJK UNIFIED IDEOGRAPH-7131 0x7136 然 CJK UNIFIED IDEOGRAPH-7136 0x713C 焼 CJK UNIFIED IDEOGRAPH-713C 0x7144 煄 CJK UNIFIED IDEOGRAPH-7144 0x7145 煅 CJK UNIFIED IDEOGRAPH-7145 0x7149 煉 CJK UNIFIED IDEOGRAPH-7149 0x714A 煊 CJK UNIFIED IDEOGRAPH-714A 0x714C 煌 CJK UNIFIED IDEOGRAPH-714C 0x714E 煎 CJK UNIFIED IDEOGRAPH-714E 0x7159 煙 CJK UNIFIED IDEOGRAPH-7159 0x715C 煜 CJK UNIFIED IDEOGRAPH-715C 0x715E 煞 CJK UNIFIED IDEOGRAPH-715E 0x7164 煤 CJK UNIFIED IDEOGRAPH-7164 0x7166 煦 CJK UNIFIED IDEOGRAPH-7166 0x7167 照 CJK UNIFIED IDEOGRAPH-7167 0x7168 煨 CJK UNIFIED IDEOGRAPH-7168 0x7169 煩 CJK UNIFIED IDEOGRAPH-7169 0x716E 煮 CJK UNIFIED IDEOGRAPH-716E 0x7172 煲 CJK UNIFIED IDEOGRAPH-7172 0x7178 煸 CJK UNIFIED IDEOGRAPH-7178 0x717D 煽 CJK UNIFIED IDEOGRAPH-717D 0x7184 熄 CJK UNIFIED IDEOGRAPH-7184 0x718A 熊 CJK UNIFIED IDEOGRAPH-718A 0x718F 熏 CJK UNIFIED IDEOGRAPH-718F 0x7194 熔 CJK UNIFIED IDEOGRAPH-7194 0x7198 熘 CJK UNIFIED IDEOGRAPH-7198 0x7199 熙 CJK UNIFIED IDEOGRAPH-7199 0x719F 熟 CJK UNIFIED IDEOGRAPH-719F 0x71A0 熠 CJK UNIFIED IDEOGRAPH-71A0 0x71A8 熨 CJK UNIFIED IDEOGRAPH-71A8 0x71AC 熬 CJK UNIFIED IDEOGRAPH-71AC 0x71B1 熱 CJK UNIFIED IDEOGRAPH-71B1 0x71B5 熵 CJK UNIFIED IDEOGRAPH-71B5 0x71B7 熷 CJK UNIFIED IDEOGRAPH-71B7 0x71B8 熸 CJK UNIFIED IDEOGRAPH-71B8 0x71B9 熹 CJK UNIFIED IDEOGRAPH-71B9 0x71BA 熺 CJK UNIFIED IDEOGRAPH-71BA 0x71BB 熻 CJK UNIFIED IDEOGRAPH-71BB 0x71C3 燃 CJK UNIFIED IDEOGRAPH-71C3 0x71C8 燈 CJK UNIFIED IDEOGRAPH-71C8 0x71CA 燊 CJK UNIFIED IDEOGRAPH-71CA 0x71CE 燎 CJK UNIFIED IDEOGRAPH-71CE 0x71D2 燒 CJK UNIFIED IDEOGRAPH-71D2 0x71D5 燕 CJK UNIFIED IDEOGRAPH-71D5 0x71DA 燚 CJK UNIFIED IDEOGRAPH-71DA 0x71DF 營 CJK UNIFIED IDEOGRAPH-71DF 0x71E5 燥 CJK UNIFIED IDEOGRAPH-71E5 0x71E6 燦 CJK UNIFIED IDEOGRAPH-71E6 0x71E7 燧 CJK UNIFIED IDEOGRAPH-71E7 0x71EE 燮 CJK UNIFIED IDEOGRAPH-71EE 0x7206 爆 CJK UNIFIED IDEOGRAPH-7206 0x7210 爐 CJK UNIFIED IDEOGRAPH-7210 0x721B 爛 CJK UNIFIED IDEOGRAPH-721B 0x7228 爨 CJK UNIFIED IDEOGRAPH-7228 0x722A 爪 CJK UNIFIED IDEOGRAPH-722A 0x722C 爬 CJK UNIFIED IDEOGRAPH-722C 0x722D 爭 CJK UNIFIED IDEOGRAPH-722D 0x7230 爰 CJK UNIFIED IDEOGRAPH-7230 0x7231 爱 CJK UNIFIED IDEOGRAPH-7231 0x7232 爲 CJK UNIFIED IDEOGRAPH-7232 0x7235 爵 CJK UNIFIED IDEOGRAPH-7235 0x7236 父 CJK UNIFIED IDEOGRAPH-7236 0x7237 爷 CJK UNIFIED IDEOGRAPH-7237 0x7238 爸 CJK UNIFIED IDEOGRAPH-7238 0x7239 爹 CJK UNIFIED IDEOGRAPH-7239 0x723A 爺 CJK UNIFIED IDEOGRAPH-723A 0x723B 爻 CJK UNIFIED IDEOGRAPH-723B 0x723D 爽 CJK UNIFIED IDEOGRAPH-723D 0x723E 爾 CJK UNIFIED IDEOGRAPH-723E 0x7246 牆 CJK UNIFIED IDEOGRAPH-7246 0x7247 片 CJK UNIFIED IDEOGRAPH-7247 0x7248 版 CJK UNIFIED IDEOGRAPH-7248 0x724C 牌 CJK UNIFIED IDEOGRAPH-724C 0x724D 牍 CJK UNIFIED IDEOGRAPH-724D 0x7252 牒 CJK UNIFIED IDEOGRAPH-7252 0x7259 牙 CJK UNIFIED IDEOGRAPH-7259 0x725B 牛 CJK UNIFIED IDEOGRAPH-725B 0x725D 牝 CJK UNIFIED IDEOGRAPH-725D 0x725F 牟 CJK UNIFIED IDEOGRAPH-725F 0x7260 牠 CJK UNIFIED IDEOGRAPH-7260 0x7261 牡 CJK UNIFIED IDEOGRAPH-7261 0x7262 牢 CJK UNIFIED IDEOGRAPH-7262 0x7266 牦 CJK UNIFIED IDEOGRAPH-7266 0x7267 牧 CJK UNIFIED IDEOGRAPH-7267 0x7269 物 CJK UNIFIED IDEOGRAPH-7269 0x726F 牯 CJK UNIFIED IDEOGRAPH-726F 0x7272 牲 CJK UNIFIED IDEOGRAPH-7272 0x7275 牵 CJK UNIFIED IDEOGRAPH-7275 0x7279 特 CJK UNIFIED IDEOGRAPH-7279 0x727A 牺 CJK UNIFIED IDEOGRAPH-727A 0x727D 牽 CJK UNIFIED IDEOGRAPH-727D 0x7280 犀 CJK UNIFIED IDEOGRAPH-7280 0x7281 犁 CJK UNIFIED IDEOGRAPH-7281 0x7284 犄 CJK UNIFIED IDEOGRAPH-7284 0x7287 犇 CJK UNIFIED IDEOGRAPH-7287 0x728A 犊 CJK UNIFIED IDEOGRAPH-728A 0x728D 犍 CJK UNIFIED IDEOGRAPH-728D 0x7292 犒 CJK UNIFIED IDEOGRAPH-7292 0x729F 犟 CJK UNIFIED IDEOGRAPH-729F 0x72AC 犬 CJK UNIFIED IDEOGRAPH-72AC 0x72AF 犯 CJK UNIFIED IDEOGRAPH-72AF 0x72B2 犲 CJK UNIFIED IDEOGRAPH-72B2 0x72B3 犳 CJK UNIFIED IDEOGRAPH-72B3 0x72B5 犵 CJK UNIFIED IDEOGRAPH-72B5 0x72B6 状 CJK UNIFIED IDEOGRAPH-72B6 0x72B7 犷 CJK UNIFIED IDEOGRAPH-72B7 0x72B8 犸 CJK UNIFIED IDEOGRAPH-72B8 0x72B9 犹 CJK UNIFIED IDEOGRAPH-72B9 0x72C0 狀 CJK UNIFIED IDEOGRAPH-72C0 0x72C2 狂 CJK UNIFIED IDEOGRAPH-72C2 0x72C4 狄 CJK UNIFIED IDEOGRAPH-72C4 0x72C8 狈 CJK UNIFIED IDEOGRAPH-72C8 0x72CD 狍 CJK UNIFIED IDEOGRAPH-72CD 0x72CE 狎 CJK UNIFIED IDEOGRAPH-72CE 0x72D0 狐 CJK UNIFIED IDEOGRAPH-72D0 0x72D2 狒 CJK UNIFIED IDEOGRAPH-72D2 0x72D7 狗 CJK UNIFIED IDEOGRAPH-72D7 0x72D9 狙 CJK UNIFIED IDEOGRAPH-72D9 0x72DE 狞 CJK UNIFIED IDEOGRAPH-72DE 0x72E0 狠 CJK UNIFIED IDEOGRAPH-72E0 0x72E1 狡 CJK UNIFIED IDEOGRAPH-72E1 0x72E9 狩 CJK UNIFIED IDEOGRAPH-72E9 0x72EC 独 CJK UNIFIED IDEOGRAPH-72EC 0x72ED 狭 CJK UNIFIED IDEOGRAPH-72ED 0x72EE 狮 CJK UNIFIED IDEOGRAPH-72EE 0x72F0 狰 CJK UNIFIED IDEOGRAPH-72F0 0x72F1 狱 CJK UNIFIED IDEOGRAPH-72F1 0x72F2 狲 CJK UNIFIED IDEOGRAPH-72F2 0x72F7 狷 CJK UNIFIED IDEOGRAPH-72F7 0x72F8 狸 CJK UNIFIED IDEOGRAPH-72F8 0x72FC 狼 CJK UNIFIED IDEOGRAPH-72FC 0x7301 猁 CJK UNIFIED IDEOGRAPH-7301 0x730A 猊 CJK UNIFIED IDEOGRAPH-730A 0x730E 猎 CJK UNIFIED IDEOGRAPH-730E 0x7315 猕 CJK UNIFIED IDEOGRAPH-7315 0x7316 猖 CJK UNIFIED IDEOGRAPH-7316 0x7317 猗 CJK UNIFIED IDEOGRAPH-7317 0x731B 猛 CJK UNIFIED IDEOGRAPH-731B 0x731C 猜 CJK UNIFIED IDEOGRAPH-731C 0x731D 猝 CJK UNIFIED IDEOGRAPH-731D 0x731E 猞 CJK UNIFIED IDEOGRAPH-731E 0x7325 猥 CJK UNIFIED IDEOGRAPH-7325 0x7329 猩 CJK UNIFIED IDEOGRAPH-7329 0x732A 猪 CJK UNIFIED IDEOGRAPH-732A 0x732B 猫 CJK UNIFIED IDEOGRAPH-732B 0x732C 猬 CJK UNIFIED IDEOGRAPH-732C 0x732E 献 CJK UNIFIED IDEOGRAPH-732E 0x7334 猴 CJK UNIFIED IDEOGRAPH-7334 0x7336 猶 CJK UNIFIED IDEOGRAPH-7336 0x7337 猷 CJK UNIFIED IDEOGRAPH-7337 0x733E 猾 CJK UNIFIED IDEOGRAPH-733E 0x733F 猿 CJK UNIFIED IDEOGRAPH-733F 0x7344 獄 CJK UNIFIED IDEOGRAPH-7344 0x7345 獅 CJK UNIFIED IDEOGRAPH-7345 0x734E 獎 CJK UNIFIED IDEOGRAPH-734E 0x7350 獐 CJK UNIFIED IDEOGRAPH-7350 0x7352 獒 CJK UNIFIED IDEOGRAPH-7352 0x7357 獗 CJK UNIFIED IDEOGRAPH-7357 0x7360 獠 CJK UNIFIED IDEOGRAPH-7360 0x7363 獣 CJK UNIFIED IDEOGRAPH-7363 0x7368 獨 CJK UNIFIED IDEOGRAPH-7368 0x736D 獭 CJK UNIFIED IDEOGRAPH-736D 0x7372 獲 CJK UNIFIED IDEOGRAPH-7372 0x7375 獵 CJK UNIFIED IDEOGRAPH-7375 0x7378 獸 CJK UNIFIED IDEOGRAPH-7378 0x737B 獻 CJK UNIFIED IDEOGRAPH-737B 0x737E 獾 CJK UNIFIED IDEOGRAPH-737E 0x7384 玄 CJK UNIFIED IDEOGRAPH-7384 0x7387 率 CJK UNIFIED IDEOGRAPH-7387 0x7389 玉 CJK UNIFIED IDEOGRAPH-7389 0x738B 王 CJK UNIFIED IDEOGRAPH-738B 0x738F 玏 CJK UNIFIED IDEOGRAPH-738F 0x7391 玑 CJK UNIFIED IDEOGRAPH-7391 0x7396 玖 CJK UNIFIED IDEOGRAPH-7396 0x739B 玛 CJK UNIFIED IDEOGRAPH-739B 0x739F 玟 CJK UNIFIED IDEOGRAPH-739F 0x73A5 玥 CJK UNIFIED IDEOGRAPH-73A5 0x73A6 玦 CJK UNIFIED IDEOGRAPH-73A6 0x73A7 玧 CJK UNIFIED IDEOGRAPH-73A7 0x73A9 玩 CJK UNIFIED IDEOGRAPH-73A9 0x73AB 玫 CJK UNIFIED IDEOGRAPH-73AB 0x73AE 玮 CJK UNIFIED IDEOGRAPH-73AE 0x73AF 环 CJK UNIFIED IDEOGRAPH-73AF 0x73B0 现 CJK UNIFIED IDEOGRAPH-73B0 0x73B2 玲 CJK UNIFIED IDEOGRAPH-73B2 0x73B3 玳 CJK UNIFIED IDEOGRAPH-73B3 0x73B7 玷 CJK UNIFIED IDEOGRAPH-73B7 0x73B9 玹 CJK UNIFIED IDEOGRAPH-73B9 0x73BA 玺 CJK UNIFIED IDEOGRAPH-73BA 0x73BB 玻 CJK UNIFIED IDEOGRAPH-73BB 0x73C0 珀 CJK UNIFIED IDEOGRAPH-73C0 0x73C2 珂 CJK UNIFIED IDEOGRAPH-73C2 0x73C5 珅 CJK UNIFIED IDEOGRAPH-73C5 0x73C8 珈 CJK UNIFIED IDEOGRAPH-73C8 0x73C9 珉 CJK UNIFIED IDEOGRAPH-73C9 0x73CA 珊 CJK UNIFIED IDEOGRAPH-73CA 0x73CD 珍 CJK UNIFIED IDEOGRAPH-73CD 0x73CF 珏 CJK UNIFIED IDEOGRAPH-73CF 0x73D0 珐 CJK UNIFIED IDEOGRAPH-73D0 0x73D1 珑 CJK UNIFIED IDEOGRAPH-73D1 0x73D9 珙 CJK UNIFIED IDEOGRAPH-73D9 0x73DE 珞 CJK UNIFIED IDEOGRAPH-73DE 0x73E0 珠 CJK UNIFIED IDEOGRAPH-73E0 0x73E3 珣 CJK UNIFIED IDEOGRAPH-73E3 0x73E5 珥 CJK UNIFIED IDEOGRAPH-73E5 0x73E9 珩 CJK UNIFIED IDEOGRAPH-73E9 0x73EA 珪 CJK UNIFIED IDEOGRAPH-73EA 0x73ED 班 CJK UNIFIED IDEOGRAPH-73ED 0x73EE 珮 CJK UNIFIED IDEOGRAPH-73EE 0x73EF 珯 CJK UNIFIED IDEOGRAPH-73EF 0x73F2 珲 CJK UNIFIED IDEOGRAPH-73F2 0x73FA 珺 CJK UNIFIED IDEOGRAPH-73FA 0x73FE 現 CJK UNIFIED IDEOGRAPH-73FE 0x7403 球 CJK UNIFIED IDEOGRAPH-7403 0x7405 琅 CJK UNIFIED IDEOGRAPH-7405 0x7406 理 CJK UNIFIED IDEOGRAPH-7406 0x7407 琇 CJK UNIFIED IDEOGRAPH-7407 0x7409 琉 CJK UNIFIED IDEOGRAPH-7409 0x740A 琊 CJK UNIFIED IDEOGRAPH-740A 0x740D 琍 CJK UNIFIED IDEOGRAPH-740D 0x740F 琏 CJK UNIFIED IDEOGRAPH-740F 0x7410 琐 CJK UNIFIED IDEOGRAPH-7410 0x741A 琚 CJK UNIFIED IDEOGRAPH-741A 0x741B 琛 CJK UNIFIED IDEOGRAPH-741B 0x7422 琢 CJK UNIFIED IDEOGRAPH-7422 0x7424 琤 CJK UNIFIED IDEOGRAPH-7424 0x7425 琥 CJK UNIFIED IDEOGRAPH-7425 0x7426 琦 CJK UNIFIED IDEOGRAPH-7426 0x7428 琨 CJK UNIFIED IDEOGRAPH-7428 0x742A 琪 CJK UNIFIED IDEOGRAPH-742A 0x742C 琬 CJK UNIFIED IDEOGRAPH-742C 0x742E 琮 CJK UNIFIED IDEOGRAPH-742E 0x742F 琯 CJK UNIFIED IDEOGRAPH-742F 0x7430 琰 CJK UNIFIED IDEOGRAPH-7430 0x7433 琳 CJK UNIFIED IDEOGRAPH-7433 0x7434 琴 CJK UNIFIED IDEOGRAPH-7434 0x7435 琵 CJK UNIFIED IDEOGRAPH-7435 0x7436 琶 CJK UNIFIED IDEOGRAPH-7436 0x743C 琼 CJK UNIFIED IDEOGRAPH-743C 0x7440 瑀 CJK UNIFIED IDEOGRAPH-7440 0x7441 瑁 CJK UNIFIED IDEOGRAPH-7441 0x7444 瑄 CJK UNIFIED IDEOGRAPH-7444 0x744B 瑋 CJK UNIFIED IDEOGRAPH-744B 0x7455 瑕 CJK UNIFIED IDEOGRAPH-7455 0x7457 瑗 CJK UNIFIED IDEOGRAPH-7457 0x7459 瑙 CJK UNIFIED IDEOGRAPH-7459 0x745A 瑚 CJK UNIFIED IDEOGRAPH-745A 0x745B 瑛 CJK UNIFIED IDEOGRAPH-745B 0x745C 瑜 CJK UNIFIED IDEOGRAPH-745C 0x745E 瑞 CJK UNIFIED IDEOGRAPH-745E 0x745F 瑟 CJK UNIFIED IDEOGRAPH-745F 0x7460 瑠 CJK UNIFIED IDEOGRAPH-7460 0x7463 瑣 CJK UNIFIED IDEOGRAPH-7463 0x7464 瑤 CJK UNIFIED IDEOGRAPH-7464 0x7469 瑩 CJK UNIFIED IDEOGRAPH-7469 0x746A 瑪 CJK UNIFIED IDEOGRAPH-746A 0x746D 瑭 CJK UNIFIED IDEOGRAPH-746D 0x7470 瑰 CJK UNIFIED IDEOGRAPH-7470 0x7476 瑶 CJK UNIFIED IDEOGRAPH-7476 0x7477 瑷 CJK UNIFIED IDEOGRAPH-7477 0x747E 瑾 CJK UNIFIED IDEOGRAPH-747E 0x7480 璀 CJK UNIFIED IDEOGRAPH-7480 0x7481 璁 CJK UNIFIED IDEOGRAPH-7481 0x7483 璃 CJK UNIFIED IDEOGRAPH-7483 0x7487 璇 CJK UNIFIED IDEOGRAPH-7487 0x748B 璋 CJK UNIFIED IDEOGRAPH-748B 0x748E 璎 CJK UNIFIED IDEOGRAPH-748E 0x7490 璐 CJK UNIFIED IDEOGRAPH-7490 0x7498 璘 CJK UNIFIED IDEOGRAPH-7498 0x749C 璜 CJK UNIFIED IDEOGRAPH-749C 0x749E 璞 CJK UNIFIED IDEOGRAPH-749E 0x749F 璟 CJK UNIFIED IDEOGRAPH-749F 0x74A0 璠 CJK UNIFIED IDEOGRAPH-74A0 0x74A7 璧 CJK UNIFIED IDEOGRAPH-74A7 0x74A8 璨 CJK UNIFIED IDEOGRAPH-74A8 0x74A9 璩 CJK UNIFIED IDEOGRAPH-74A9 0x74B0 環 CJK UNIFIED IDEOGRAPH-74B0 0x74BA 璺 CJK UNIFIED IDEOGRAPH-74BA 0x74CA 瓊 CJK UNIFIED IDEOGRAPH-74CA 0x74D2 瓒 CJK UNIFIED IDEOGRAPH-74D2 0x74D9 瓙 CJK UNIFIED IDEOGRAPH-74D9 0x74DC 瓜 CJK UNIFIED IDEOGRAPH-74DC 0x74E0 瓠 CJK UNIFIED IDEOGRAPH-74E0 0x74E2 瓢 CJK UNIFIED IDEOGRAPH-74E2 0x74E3 瓣 CJK UNIFIED IDEOGRAPH-74E3 0x74E4 瓤 CJK UNIFIED IDEOGRAPH-74E4 0x74E6 瓦 CJK UNIFIED IDEOGRAPH-74E6 0x74EE 瓮 CJK UNIFIED IDEOGRAPH-74EE 0x74EF 瓯 CJK UNIFIED IDEOGRAPH-74EF 0x74F4 瓴 CJK UNIFIED IDEOGRAPH-74F4 0x74F6 瓶 CJK UNIFIED IDEOGRAPH-74F6 0x74F7 瓷 CJK UNIFIED IDEOGRAPH-74F7 0x7504 甄 CJK UNIFIED IDEOGRAPH-7504 0x7511 甑 CJK UNIFIED IDEOGRAPH-7511 0x7518 甘 CJK UNIFIED IDEOGRAPH-7518 0x7519 甙 CJK UNIFIED IDEOGRAPH-7519 0x751A 甚 CJK UNIFIED IDEOGRAPH-751A 0x751C 甜 CJK UNIFIED IDEOGRAPH-751C 0x751F 生 CJK UNIFIED IDEOGRAPH-751F 0x7522 產 CJK UNIFIED IDEOGRAPH-7522 0x7523 産 CJK UNIFIED IDEOGRAPH-7523 0x7525 甥 CJK UNIFIED IDEOGRAPH-7525 0x7526 甦 CJK UNIFIED IDEOGRAPH-7526 0x7528 用 CJK UNIFIED IDEOGRAPH-7528 0x7529 甩 CJK UNIFIED IDEOGRAPH-7529 0x752A 甪 CJK UNIFIED IDEOGRAPH-752A 0x752B 甫 CJK UNIFIED IDEOGRAPH-752B 0x752C 甬 CJK UNIFIED IDEOGRAPH-752C 0x752D 甭 CJK UNIFIED IDEOGRAPH-752D 0x752F 甯 CJK UNIFIED IDEOGRAPH-752F 0x7530 田 CJK UNIFIED IDEOGRAPH-7530 0x7531 由 CJK UNIFIED IDEOGRAPH-7531 0x7532 甲 CJK UNIFIED IDEOGRAPH-7532 0x7533 申 CJK UNIFIED IDEOGRAPH-7533 0x7535 电 CJK UNIFIED IDEOGRAPH-7535 0x7537 男 CJK UNIFIED IDEOGRAPH-7537 0x7538 甸 CJK UNIFIED IDEOGRAPH-7538 0x753A 町 CJK UNIFIED IDEOGRAPH-753A 0x753B 画 CJK UNIFIED IDEOGRAPH-753B 0x753E 甾 CJK UNIFIED IDEOGRAPH-753E 0x7540 畀 CJK UNIFIED IDEOGRAPH-7540 0x7545 畅 CJK UNIFIED IDEOGRAPH-7545 0x7548 畈 CJK UNIFIED IDEOGRAPH-7548 0x754A 畊 CJK UNIFIED IDEOGRAPH-754A 0x754C 界 CJK UNIFIED IDEOGRAPH-754C 0x754F 畏 CJK UNIFIED IDEOGRAPH-754F 0x7551 畑 CJK UNIFIED IDEOGRAPH-7551 0x7554 畔 CJK UNIFIED IDEOGRAPH-7554 0x7559 留 CJK UNIFIED IDEOGRAPH-7559 0x755C 畜 CJK UNIFIED IDEOGRAPH-755C 0x7562 畢 CJK UNIFIED IDEOGRAPH-7562 0x7565 略 CJK UNIFIED IDEOGRAPH-7565 0x7566 畦 CJK UNIFIED IDEOGRAPH-7566 0x7568 畨 CJK UNIFIED IDEOGRAPH-7568 0x756A 番 CJK UNIFIED IDEOGRAPH-756A 0x756B 畫 CJK UNIFIED IDEOGRAPH-756B 0x756C 畬 CJK UNIFIED IDEOGRAPH-756C 0x7570 異 CJK UNIFIED IDEOGRAPH-7570 0x7572 畲 CJK UNIFIED IDEOGRAPH-7572 0x7574 畴 CJK UNIFIED IDEOGRAPH-7574 0x7576 當 CJK UNIFIED IDEOGRAPH-7576 0x7578 畸 CJK UNIFIED IDEOGRAPH-7578 0x7579 畹 CJK UNIFIED IDEOGRAPH-7579 0x757E 畾 CJK UNIFIED IDEOGRAPH-757E 0x757F 畿 CJK UNIFIED IDEOGRAPH-757F 0x7583 疃 CJK UNIFIED IDEOGRAPH-7583 0x7586 疆 CJK UNIFIED IDEOGRAPH-7586 0x758A 疊 CJK UNIFIED IDEOGRAPH-758A 0x758F 疏 CJK UNIFIED IDEOGRAPH-758F 0x7591 疑 CJK UNIFIED IDEOGRAPH-7591 0x7594 疔 CJK UNIFIED IDEOGRAPH-7594 0x7596 疖 CJK UNIFIED IDEOGRAPH-7596 0x7597 疗 CJK UNIFIED IDEOGRAPH-7597 0x7599 疙 CJK UNIFIED IDEOGRAPH-7599 0x759A 疚 CJK UNIFIED IDEOGRAPH-759A 0x759D 疝 CJK UNIFIED IDEOGRAPH-759D 0x759F 疟 CJK UNIFIED IDEOGRAPH-759F 0x75A1 疡 CJK UNIFIED IDEOGRAPH-75A1 0x75A3 疣 CJK UNIFIED IDEOGRAPH-75A3 0x75A4 疤 CJK UNIFIED IDEOGRAPH-75A4 0x75A5 疥 CJK UNIFIED IDEOGRAPH-75A5 0x75AB 疫 CJK UNIFIED IDEOGRAPH-75AB 0x75AE 疮 CJK UNIFIED IDEOGRAPH-75AE 0x75AF 疯 CJK UNIFIED IDEOGRAPH-75AF 0x75B1 疱 CJK UNIFIED IDEOGRAPH-75B1 0x75B2 疲 CJK UNIFIED IDEOGRAPH-75B2 0x75B3 疳 CJK UNIFIED IDEOGRAPH-75B3 0x75B4 疴 CJK UNIFIED IDEOGRAPH-75B4 0x75B5 疵 CJK UNIFIED IDEOGRAPH-75B5 0x75B8 疸 CJK UNIFIED IDEOGRAPH-75B8 0x75B9 疹 CJK UNIFIED IDEOGRAPH-75B9 0x75BC 疼 CJK UNIFIED IDEOGRAPH-75BC 0x75BD 疽 CJK UNIFIED IDEOGRAPH-75BD 0x75BE 疾 CJK UNIFIED IDEOGRAPH-75BE 0x75C2 痂 CJK UNIFIED IDEOGRAPH-75C2 0x75C5 病 CJK UNIFIED IDEOGRAPH-75C5 0x75C7 症 CJK UNIFIED IDEOGRAPH-75C7 0x75C8 痈 CJK UNIFIED IDEOGRAPH-75C8 0x75C9 痉 CJK UNIFIED IDEOGRAPH-75C9 0x75CA 痊 CJK UNIFIED IDEOGRAPH-75CA 0x75CD 痍 CJK UNIFIED IDEOGRAPH-75CD 0x75D2 痒 CJK UNIFIED IDEOGRAPH-75D2 0x75D4 痔 CJK UNIFIED IDEOGRAPH-75D4 0x75D5 痕 CJK UNIFIED IDEOGRAPH-75D5 0x75D8 痘 CJK UNIFIED IDEOGRAPH-75D8 0x75D9 痙 CJK UNIFIED IDEOGRAPH-75D9 0x75DB 痛 CJK UNIFIED IDEOGRAPH-75DB 0x75DE 痞 CJK UNIFIED IDEOGRAPH-75DE 0x75E2 痢 CJK UNIFIED IDEOGRAPH-75E2 0x75E3 痣 CJK UNIFIED IDEOGRAPH-75E3 0x75E4 痤 CJK UNIFIED IDEOGRAPH-75E4 0x75E7 痧 CJK UNIFIED IDEOGRAPH-75E7 0x75E8 痨 CJK UNIFIED IDEOGRAPH-75E8 0x75EA 痪 CJK UNIFIED IDEOGRAPH-75EA 0x75EB 痫 CJK UNIFIED IDEOGRAPH-75EB 0x75F0 痰 CJK UNIFIED IDEOGRAPH-75F0 0x75F1 痱 CJK UNIFIED IDEOGRAPH-75F1 0x75F4 痴 CJK UNIFIED IDEOGRAPH-75F4 0x75F9 痹 CJK UNIFIED IDEOGRAPH-75F9 0x75FC 痼 CJK UNIFIED IDEOGRAPH-75FC 0x75FF 痿 CJK UNIFIED IDEOGRAPH-75FF 0x7600 瘀 CJK UNIFIED IDEOGRAPH-7600 0x7601 瘁 CJK UNIFIED IDEOGRAPH-7601 0x7606 瘆 CJK UNIFIED IDEOGRAPH-7606 0x760A 瘊 CJK UNIFIED IDEOGRAPH-760A 0x760B 瘋 CJK UNIFIED IDEOGRAPH-760B 0x7611 瘑 CJK UNIFIED IDEOGRAPH-7611 0x7618 瘘 CJK UNIFIED IDEOGRAPH-7618 0x7619 瘙 CJK UNIFIED IDEOGRAPH-7619 0x761F 瘟 CJK UNIFIED IDEOGRAPH-761F 0x7620 瘠 CJK UNIFIED IDEOGRAPH-7620 0x7621 瘡 CJK UNIFIED IDEOGRAPH-7621 0x7622 瘢 CJK UNIFIED IDEOGRAPH-7622 0x7624 瘤 CJK UNIFIED IDEOGRAPH-7624 0x7626 瘦 CJK UNIFIED IDEOGRAPH-7626 0x7629 瘩 CJK UNIFIED IDEOGRAPH-7629 0x762A 瘪 CJK UNIFIED IDEOGRAPH-762A 0x762B 瘫 CJK UNIFIED IDEOGRAPH-762B 0x7634 瘴 CJK UNIFIED IDEOGRAPH-7634 0x7638 瘸 CJK UNIFIED IDEOGRAPH-7638 0x763D 瘽 CJK UNIFIED IDEOGRAPH-763D 0x763E 瘾 CJK UNIFIED IDEOGRAPH-763E 0x763F 瘿 CJK UNIFIED IDEOGRAPH-763F 0x7640 癀 CJK UNIFIED IDEOGRAPH-7640 0x7642 療 CJK UNIFIED IDEOGRAPH-7642 0x764C 癌 CJK UNIFIED IDEOGRAPH-764C 0x7652 癒 CJK UNIFIED IDEOGRAPH-7652 0x7654 癔 CJK UNIFIED IDEOGRAPH-7654 0x7656 癖 CJK UNIFIED IDEOGRAPH-7656 0x765C 癜 CJK UNIFIED IDEOGRAPH-765C 0x765E 癞 CJK UNIFIED IDEOGRAPH-765E 0x7661 癡 CJK UNIFIED IDEOGRAPH-7661 0x7662 癢 CJK UNIFIED IDEOGRAPH-7662 0x7663 癣 CJK UNIFIED IDEOGRAPH-7663 0x766B 癫 CJK UNIFIED IDEOGRAPH-766B 0x7678 癸 CJK UNIFIED IDEOGRAPH-7678 0x767A 発 CJK UNIFIED IDEOGRAPH-767A 0x767B 登 CJK UNIFIED IDEOGRAPH-767B 0x767C 發 CJK UNIFIED IDEOGRAPH-767C 0x767D 白 CJK UNIFIED IDEOGRAPH-767D 0x767E 百 CJK UNIFIED IDEOGRAPH-767E 0x7682 皂 CJK UNIFIED IDEOGRAPH-7682 0x7684 的 CJK UNIFIED IDEOGRAPH-7684 0x7686 皆 CJK UNIFIED IDEOGRAPH-7686 0x7687 皇 CJK UNIFIED IDEOGRAPH-7687 0x7688 皈 CJK UNIFIED IDEOGRAPH-7688 0x768B 皋 CJK UNIFIED IDEOGRAPH-768B 0x768E 皎 CJK UNIFIED IDEOGRAPH-768E 0x7691 皑 CJK UNIFIED IDEOGRAPH-7691 0x7693 皓 CJK UNIFIED IDEOGRAPH-7693 0x7696 皖 CJK UNIFIED IDEOGRAPH-7696 0x7699 皙 CJK UNIFIED IDEOGRAPH-7699 0x76AE 皮 CJK UNIFIED IDEOGRAPH-76AE 0x76AF 皯 CJK UNIFIED IDEOGRAPH-76AF 0x76B1 皱 CJK UNIFIED IDEOGRAPH-76B1 0x76B2 皲 CJK UNIFIED IDEOGRAPH-76B2 0x76B4 皴 CJK UNIFIED IDEOGRAPH-76B4 0x76BF 皿 CJK UNIFIED IDEOGRAPH-76BF 0x76C2 盂 CJK UNIFIED IDEOGRAPH-76C2 0x76C3 盃 CJK UNIFIED IDEOGRAPH-76C3 0x76C5 盅 CJK UNIFIED IDEOGRAPH-76C5 0x76C6 盆 CJK UNIFIED IDEOGRAPH-76C6 0x76C8 盈 CJK UNIFIED IDEOGRAPH-76C8 0x76CA 益 CJK UNIFIED IDEOGRAPH-76CA 0x76CE 盎 CJK UNIFIED IDEOGRAPH-76CE 0x76CF 盏 CJK UNIFIED IDEOGRAPH-76CF 0x76D0 盐 CJK UNIFIED IDEOGRAPH-76D0 0x76D1 监 CJK UNIFIED IDEOGRAPH-76D1 0x76D2 盒 CJK UNIFIED IDEOGRAPH-76D2 0x76D4 盔 CJK UNIFIED IDEOGRAPH-76D4 0x76D6 盖 CJK UNIFIED IDEOGRAPH-76D6 0x76D7 盗 CJK UNIFIED IDEOGRAPH-76D7 0x76D8 盘 CJK UNIFIED IDEOGRAPH-76D8 0x76DB 盛 CJK UNIFIED IDEOGRAPH-76DB 0x76DC 盜 CJK UNIFIED IDEOGRAPH-76DC 0x76DF 盟 CJK UNIFIED IDEOGRAPH-76DF 0x76E1 盡 CJK UNIFIED IDEOGRAPH-76E1 0x76E3 監 CJK UNIFIED IDEOGRAPH-76E3 0x76E4 盤 CJK UNIFIED IDEOGRAPH-76E4 0x76E5 盥 CJK UNIFIED IDEOGRAPH-76E5 0x76E7 盧 CJK UNIFIED IDEOGRAPH-76E7 0x76EE 目 CJK UNIFIED IDEOGRAPH-76EE 0x76EF 盯 CJK UNIFIED IDEOGRAPH-76EF 0x76F1 盱 CJK UNIFIED IDEOGRAPH-76F1 0x76F2 盲 CJK UNIFIED IDEOGRAPH-76F2 0x76F4 直 CJK UNIFIED IDEOGRAPH-76F4 0x76F8 相 CJK UNIFIED IDEOGRAPH-76F8 0x76F9 盹 CJK UNIFIED IDEOGRAPH-76F9 0x76FC 盼 CJK UNIFIED IDEOGRAPH-76FC 0x76FE 盾 CJK UNIFIED IDEOGRAPH-76FE 0x7701 省 CJK UNIFIED IDEOGRAPH-7701 0x7708 眈 CJK UNIFIED IDEOGRAPH-7708 0x7709 眉 CJK UNIFIED IDEOGRAPH-7709 0x770B 看 CJK UNIFIED IDEOGRAPH-770B 0x770C 県 CJK UNIFIED IDEOGRAPH-770C 0x7719 眙 CJK UNIFIED IDEOGRAPH-7719 0x771E 眞 CJK UNIFIED IDEOGRAPH-771E 0x771F 真 CJK UNIFIED IDEOGRAPH-771F 0x7720 眠 CJK UNIFIED IDEOGRAPH-7720 0x7726 眦 CJK UNIFIED IDEOGRAPH-7726 0x7728 眨 CJK UNIFIED IDEOGRAPH-7728 0x7729 眩 CJK UNIFIED IDEOGRAPH-7729 0x772F 眯 CJK UNIFIED IDEOGRAPH-772F 0x7736 眶 CJK UNIFIED IDEOGRAPH-7736 0x7737 眷 CJK UNIFIED IDEOGRAPH-7737 0x7738 眸 CJK UNIFIED IDEOGRAPH-7738 0x773A 眺 CJK UNIFIED IDEOGRAPH-773A 0x773C 眼 CJK UNIFIED IDEOGRAPH-773C 0x773E 眾 CJK UNIFIED IDEOGRAPH-773E 0x7740 着 CJK UNIFIED IDEOGRAPH-7740 0x7741 睁 CJK UNIFIED IDEOGRAPH-7741 0x7747 睇 CJK UNIFIED IDEOGRAPH-7747 0x7750 睐 CJK UNIFIED IDEOGRAPH-7750 0x7751 睑 CJK UNIFIED IDEOGRAPH-7751 0x775A 睚 CJK UNIFIED IDEOGRAPH-775A 0x775B 睛 CJK UNIFIED IDEOGRAPH-775B 0x7761 睡 CJK UNIFIED IDEOGRAPH-7761 0x7762 睢 CJK UNIFIED IDEOGRAPH-7762 0x7763 督 CJK UNIFIED IDEOGRAPH-7763 0x7765 睥 CJK UNIFIED IDEOGRAPH-7765 0x7766 睦 CJK UNIFIED IDEOGRAPH-7766 0x7768 睨 CJK UNIFIED IDEOGRAPH-7768 0x776B 睫 CJK UNIFIED IDEOGRAPH-776B 0x776C 睬 CJK UNIFIED IDEOGRAPH-776C 0x7779 睹 CJK UNIFIED IDEOGRAPH-7779 0x777D 睽 CJK UNIFIED IDEOGRAPH-777D 0x777E 睾 CJK UNIFIED IDEOGRAPH-777E 0x777F 睿 CJK UNIFIED IDEOGRAPH-777F 0x7784 瞄 CJK UNIFIED IDEOGRAPH-7784 0x7785 瞅 CJK UNIFIED IDEOGRAPH-7785 0x778B 瞋 CJK UNIFIED IDEOGRAPH-778B 0x778C 瞌 CJK UNIFIED IDEOGRAPH-778C 0x778E 瞎 CJK UNIFIED IDEOGRAPH-778E 0x7791 瞑 CJK UNIFIED IDEOGRAPH-7791 0x7792 瞒 CJK UNIFIED IDEOGRAPH-7792 0x779F 瞟 CJK UNIFIED IDEOGRAPH-779F 0x77A0 瞠 CJK UNIFIED IDEOGRAPH-77A0 0x77A5 瞥 CJK UNIFIED IDEOGRAPH-77A5 0x77A7 瞧 CJK UNIFIED IDEOGRAPH-77A7 0x77A9 瞩 CJK UNIFIED IDEOGRAPH-77A9 0x77AA 瞪 CJK UNIFIED IDEOGRAPH-77AA 0x77AC 瞬 CJK UNIFIED IDEOGRAPH-77AC 0x77AD 瞭 CJK UNIFIED IDEOGRAPH-77AD 0x77B0 瞰 CJK UNIFIED IDEOGRAPH-77B0 0x77B3 瞳 CJK UNIFIED IDEOGRAPH-77B3 0x77BB 瞻 CJK UNIFIED IDEOGRAPH-77BB 0x77BF 瞿 CJK UNIFIED IDEOGRAPH-77BF 0x77CD 矍 CJK UNIFIED IDEOGRAPH-77CD 0x77D7 矗 CJK UNIFIED IDEOGRAPH-77D7 0x77DB 矛 CJK UNIFIED IDEOGRAPH-77DB 0x77DC 矜 CJK UNIFIED IDEOGRAPH-77DC 0x77E2 矢 CJK UNIFIED IDEOGRAPH-77E2 0x77E3 矣 CJK UNIFIED IDEOGRAPH-77E3 0x77E5 知 CJK UNIFIED IDEOGRAPH-77E5 0x77E9 矩 CJK UNIFIED IDEOGRAPH-77E9 0x77EB 矫 CJK UNIFIED IDEOGRAPH-77EB 0x77EC 矬 CJK UNIFIED IDEOGRAPH-77EC 0x77ED 短 CJK UNIFIED IDEOGRAPH-77ED 0x77EE 矮 CJK UNIFIED IDEOGRAPH-77EE 0x77F3 石 CJK UNIFIED IDEOGRAPH-77F3 0x77F6 矶 CJK UNIFIED IDEOGRAPH-77F6 0x77F8 矸 CJK UNIFIED IDEOGRAPH-77F8 0x77FD 矽 CJK UNIFIED IDEOGRAPH-77FD 0x77FE 矾 CJK UNIFIED IDEOGRAPH-77FE 0x77FF 矿 CJK UNIFIED IDEOGRAPH-77FF 0x7800 砀 CJK UNIFIED IDEOGRAPH-7800 0x7801 码 CJK UNIFIED IDEOGRAPH-7801 0x7802 砂 CJK UNIFIED IDEOGRAPH-7802 0x780C 砌 CJK UNIFIED IDEOGRAPH-780C 0x780D 砍 CJK UNIFIED IDEOGRAPH-780D 0x7812 砒 CJK UNIFIED IDEOGRAPH-7812 0x7814 研 CJK UNIFIED IDEOGRAPH-7814 0x7816 砖 CJK UNIFIED IDEOGRAPH-7816 0x7817 砗 CJK UNIFIED IDEOGRAPH-7817 0x781A 砚 CJK UNIFIED IDEOGRAPH-781A 0x781C 砜 CJK UNIFIED IDEOGRAPH-781C 0x781D 砝 CJK UNIFIED IDEOGRAPH-781D 0x7823 砣 CJK UNIFIED IDEOGRAPH-7823 0x7825 砥 CJK UNIFIED IDEOGRAPH-7825 0x7827 砧 CJK UNIFIED IDEOGRAPH-7827 0x782D 砭 CJK UNIFIED IDEOGRAPH-782D 0x7830 砰 CJK UNIFIED IDEOGRAPH-7830 0x7832 砲 CJK UNIFIED IDEOGRAPH-7832 0x7834 破 CJK UNIFIED IDEOGRAPH-7834 0x7837 砷 CJK UNIFIED IDEOGRAPH-7837 0x7838 砸 CJK UNIFIED IDEOGRAPH-7838 0x783A 砺 CJK UNIFIED IDEOGRAPH-783A 0x783B 砻 CJK UNIFIED IDEOGRAPH-783B 0x783C 砼 CJK UNIFIED IDEOGRAPH-783C 0x783E 砾 CJK UNIFIED IDEOGRAPH-783E 0x7840 础 CJK UNIFIED IDEOGRAPH-7840 0x7845 硅 CJK UNIFIED IDEOGRAPH-7845 0x784C 硌 CJK UNIFIED IDEOGRAPH-784C 0x7850 硐 CJK UNIFIED IDEOGRAPH-7850 0x7852 硒 CJK UNIFIED IDEOGRAPH-7852 0x7855 硕 CJK UNIFIED IDEOGRAPH-7855 0x7856 硖 CJK UNIFIED IDEOGRAPH-7856 0x785A 硚 CJK UNIFIED IDEOGRAPH-785A 0x785D 硝 CJK UNIFIED IDEOGRAPH-785D 0x786B 硫 CJK UNIFIED IDEOGRAPH-786B 0x786C 硬 CJK UNIFIED IDEOGRAPH-786C 0x786E 确 CJK UNIFIED IDEOGRAPH-786E 0x7877 硷 CJK UNIFIED IDEOGRAPH-7877 0x787C 硼 CJK UNIFIED IDEOGRAPH-787C 0x7881 碁 CJK UNIFIED IDEOGRAPH-7881 0x7887 碇 CJK UNIFIED IDEOGRAPH-7887 0x7889 碉 CJK UNIFIED IDEOGRAPH-7889 0x788C 碌 CJK UNIFIED IDEOGRAPH-788C 0x788D 碍 CJK UNIFIED IDEOGRAPH-788D 0x788E 碎 CJK UNIFIED IDEOGRAPH-788E 0x7891 碑 CJK UNIFIED IDEOGRAPH-7891 0x7893 碓 CJK UNIFIED IDEOGRAPH-7893 0x7897 碗 CJK UNIFIED IDEOGRAPH-7897 0x7898 碘 CJK UNIFIED IDEOGRAPH-7898 0x789A 碚 CJK UNIFIED IDEOGRAPH-789A 0x789B 碛 CJK UNIFIED IDEOGRAPH-789B 0x789C 碜 CJK UNIFIED IDEOGRAPH-789C 0x789F 碟 CJK UNIFIED IDEOGRAPH-789F 0x78A3 碣 CJK UNIFIED IDEOGRAPH-78A3 0x78A7 碧 CJK UNIFIED IDEOGRAPH-78A7 0x78A9 碩 CJK UNIFIED IDEOGRAPH-78A9 0x78B0 碰 CJK UNIFIED IDEOGRAPH-78B0 0x78B1 碱 CJK UNIFIED IDEOGRAPH-78B1 0x78B3 碳 CJK UNIFIED IDEOGRAPH-78B3 0x78B4 碴 CJK UNIFIED IDEOGRAPH-78B4 0x78BA 確 CJK UNIFIED IDEOGRAPH-78BA 0x78BC 碼 CJK UNIFIED IDEOGRAPH-78BC 0x78BE 碾 CJK UNIFIED IDEOGRAPH-78BE 0x78C1 磁 CJK UNIFIED IDEOGRAPH-78C1 0x78C5 磅 CJK UNIFIED IDEOGRAPH-78C5 0x78CA 磊 CJK UNIFIED IDEOGRAPH-78CA 0x78CB 磋 CJK UNIFIED IDEOGRAPH-78CB 0x78D0 磐 CJK UNIFIED IDEOGRAPH-78D0 0x78D5 磕 CJK UNIFIED IDEOGRAPH-78D5 0x78E1 磡 CJK UNIFIED IDEOGRAPH-78E1 0x78E8 磨 CJK UNIFIED IDEOGRAPH-78E8 0x78EC 磬 CJK UNIFIED IDEOGRAPH-78EC 0x78EF 磯 CJK UNIFIED IDEOGRAPH-78EF 0x78F2 磲 CJK UNIFIED IDEOGRAPH-78F2 0x78F4 磴 CJK UNIFIED IDEOGRAPH-78F4 0x78F7 磷 CJK UNIFIED IDEOGRAPH-78F7 0x78FA 磺 CJK UNIFIED IDEOGRAPH-78FA 0x7901 礁 CJK UNIFIED IDEOGRAPH-7901 0x790E 礎 CJK UNIFIED IDEOGRAPH-790E 0x7919 礙 CJK UNIFIED IDEOGRAPH-7919 0x7926 礦 CJK UNIFIED IDEOGRAPH-7926 0x7934 礴 CJK UNIFIED IDEOGRAPH-7934 0x793A 示 CJK UNIFIED IDEOGRAPH-793A 0x793C 礼 CJK UNIFIED IDEOGRAPH-793C 0x793E 社 CJK UNIFIED IDEOGRAPH-793E 0x7940 祀 CJK UNIFIED IDEOGRAPH-7940 0x7941 祁 CJK UNIFIED IDEOGRAPH-7941 0x7942 祂 CJK UNIFIED IDEOGRAPH-7942 0x7947 祇 CJK UNIFIED IDEOGRAPH-7947 0x7948 祈 CJK UNIFIED IDEOGRAPH-7948 0x7949 祉 CJK UNIFIED IDEOGRAPH-7949 0x794E 祎 CJK UNIFIED IDEOGRAPH-794E 0x7950 祐 CJK UNIFIED IDEOGRAPH-7950 0x7955 祕 CJK UNIFIED IDEOGRAPH-7955 0x7956 祖 CJK UNIFIED IDEOGRAPH-7956 0x7957 祗 CJK UNIFIED IDEOGRAPH-7957 0x7959 祙 CJK UNIFIED IDEOGRAPH-7959 0x795A 祚 CJK UNIFIED IDEOGRAPH-795A 0x795B 祛 CJK UNIFIED IDEOGRAPH-795B 0x795C 祜 CJK UNIFIED IDEOGRAPH-795C 0x795D 祝 CJK UNIFIED IDEOGRAPH-795D 0x795E 神 CJK UNIFIED IDEOGRAPH-795E 0x795F 祟 CJK UNIFIED IDEOGRAPH-795F 0x7960 祠 CJK UNIFIED IDEOGRAPH-7960 0x7962 祢 CJK UNIFIED IDEOGRAPH-7962 0x7965 祥 CJK UNIFIED IDEOGRAPH-7965 0x7968 票 CJK UNIFIED IDEOGRAPH-7968 0x796D 祭 CJK UNIFIED IDEOGRAPH-796D 0x796F 祯 CJK UNIFIED IDEOGRAPH-796F 0x7977 祷 CJK UNIFIED IDEOGRAPH-7977 0x7978 祸 CJK UNIFIED IDEOGRAPH-7978 0x797A 祺 CJK UNIFIED IDEOGRAPH-797A 0x797C 祼 CJK UNIFIED IDEOGRAPH-797C 0x7980 禀 CJK UNIFIED IDEOGRAPH-7980 0x7981 禁 CJK UNIFIED IDEOGRAPH-7981 0x7984 禄 CJK UNIFIED IDEOGRAPH-7984 0x7985 禅 CJK UNIFIED IDEOGRAPH-7985 0x798D 禍 CJK UNIFIED IDEOGRAPH-798D 0x798F 福 CJK UNIFIED IDEOGRAPH-798F 0x799B 禛 CJK UNIFIED IDEOGRAPH-799B 0x79A6 禦 CJK UNIFIED IDEOGRAPH-79A6 0x79A7 禧 CJK UNIFIED IDEOGRAPH-79A7 0x79AA 禪 CJK UNIFIED IDEOGRAPH-79AA 0x79AE 禮 CJK UNIFIED IDEOGRAPH-79AE 0x79B3 禳 CJK UNIFIED IDEOGRAPH-79B3 0x79B9 禹 CJK UNIFIED IDEOGRAPH-79B9 0x79BA 禺 CJK UNIFIED IDEOGRAPH-79BA 0x79BB 离 CJK UNIFIED IDEOGRAPH-79BB 0x79BD 禽 CJK UNIFIED IDEOGRAPH-79BD 0x79BE 禾 CJK UNIFIED IDEOGRAPH-79BE 0x79C0 秀 CJK UNIFIED IDEOGRAPH-79C0 0x79C1 私 CJK UNIFIED IDEOGRAPH-79C1 0x79C3 秃 CJK UNIFIED IDEOGRAPH-79C3 0x79C6 秆 CJK UNIFIED IDEOGRAPH-79C6 0x79C9 秉 CJK UNIFIED IDEOGRAPH-79C9 0x79CB 秋 CJK UNIFIED IDEOGRAPH-79CB 0x79CD 种 CJK UNIFIED IDEOGRAPH-79CD 0x79D1 科 CJK UNIFIED IDEOGRAPH-79D1 0x79D2 秒 CJK UNIFIED IDEOGRAPH-79D2 0x79D8 秘 CJK UNIFIED IDEOGRAPH-79D8 0x79DF 租 CJK UNIFIED IDEOGRAPH-79DF 0x79E3 秣 CJK UNIFIED IDEOGRAPH-79E3 0x79E4 秤 CJK UNIFIED IDEOGRAPH-79E4 0x79E6 秦 CJK UNIFIED IDEOGRAPH-79E6 0x79E7 秧 CJK UNIFIED IDEOGRAPH-79E7 0x79E9 秩 CJK UNIFIED IDEOGRAPH-79E9 0x79ED 秭 CJK UNIFIED IDEOGRAPH-79ED 0x79EF 积 CJK UNIFIED IDEOGRAPH-79EF 0x79F0 称 CJK UNIFIED IDEOGRAPH-79F0 0x79F8 秸 CJK UNIFIED IDEOGRAPH-79F8 0x79FB 移 CJK UNIFIED IDEOGRAPH-79FB 0x79FD 秽 CJK UNIFIED IDEOGRAPH-79FD 0x7A00 稀 CJK UNIFIED IDEOGRAPH-7A00 0x7A05 稅 CJK UNIFIED IDEOGRAPH-7A05 0x7A0B 程 CJK UNIFIED IDEOGRAPH-7A0B 0x7A0D 稍 CJK UNIFIED IDEOGRAPH-7A0D 0x7A0E 税 CJK UNIFIED IDEOGRAPH-7A0E 0x7A14 稔 CJK UNIFIED IDEOGRAPH-7A14 0x7A17 稗 CJK UNIFIED IDEOGRAPH-7A17 0x7A1A 稚 CJK UNIFIED IDEOGRAPH-7A1A 0x7A1E 稞 CJK UNIFIED IDEOGRAPH-7A1E 0x7A20 稠 CJK UNIFIED IDEOGRAPH-7A20 0x7A23 稣 CJK UNIFIED IDEOGRAPH-7A23 0x7A25 稥 CJK UNIFIED IDEOGRAPH-7A25 0x7A2E 種 CJK UNIFIED IDEOGRAPH-7A2E 0x7A31 稱 CJK UNIFIED IDEOGRAPH-7A31 0x7A32 稲 CJK UNIFIED IDEOGRAPH-7A32 0x7A33 稳 CJK UNIFIED IDEOGRAPH-7A33 0x7A37 稷 CJK UNIFIED IDEOGRAPH-7A37 0x7A39 稹 CJK UNIFIED IDEOGRAPH-7A39 0x7A3B 稻 CJK UNIFIED IDEOGRAPH-7A3B 0x7A3C 稼 CJK UNIFIED IDEOGRAPH-7A3C 0x7A3D 稽 CJK UNIFIED IDEOGRAPH-7A3D 0x7A3F 稿 CJK UNIFIED IDEOGRAPH-7A3F 0x7A40 穀 CJK UNIFIED IDEOGRAPH-7A40 0x7A42 穂 CJK UNIFIED IDEOGRAPH-7A42 0x7A46 穆 CJK UNIFIED IDEOGRAPH-7A46 0x7A4D 積 CJK UNIFIED IDEOGRAPH-7A4D 0x7A4E 穎 CJK UNIFIED IDEOGRAPH-7A4E 0x7A57 穗 CJK UNIFIED IDEOGRAPH-7A57 0x7A62 穢 CJK UNIFIED IDEOGRAPH-7A62 0x7A69 穩 CJK UNIFIED IDEOGRAPH-7A69 0x7A70 穰 CJK UNIFIED IDEOGRAPH-7A70 0x7A74 穴 CJK UNIFIED IDEOGRAPH-7A74 0x7A76 究 CJK UNIFIED IDEOGRAPH-7A76 0x7A77 穷 CJK UNIFIED IDEOGRAPH-7A77 0x7A79 穹 CJK UNIFIED IDEOGRAPH-7A79 0x7A7A 空 CJK UNIFIED IDEOGRAPH-7A7A 0x7A7F 穿 CJK UNIFIED IDEOGRAPH-7A7F 0x7A81 突 CJK UNIFIED IDEOGRAPH-7A81 0x7A83 窃 CJK UNIFIED IDEOGRAPH-7A83 0x7A84 窄 CJK UNIFIED IDEOGRAPH-7A84 0x7A88 窈 CJK UNIFIED IDEOGRAPH-7A88 0x7A8D 窍 CJK UNIFIED IDEOGRAPH-7A8D 0x7A91 窑 CJK UNIFIED IDEOGRAPH-7A91 0x7A92 窒 CJK UNIFIED IDEOGRAPH-7A92 0x7A93 窓 CJK UNIFIED IDEOGRAPH-7A93 0x7A95 窕 CJK UNIFIED IDEOGRAPH-7A95 0x7A96 窖 CJK UNIFIED IDEOGRAPH-7A96 0x7A97 窗 CJK UNIFIED IDEOGRAPH-7A97 0x7A98 窘 CJK UNIFIED IDEOGRAPH-7A98 0x7A9C 窜 CJK UNIFIED IDEOGRAPH-7A9C 0x7A9D 窝 CJK UNIFIED IDEOGRAPH-7A9D 0x7A9F 窟 CJK UNIFIED IDEOGRAPH-7A9F 0x7AA0 窠 CJK UNIFIED IDEOGRAPH-7AA0 0x7AA5 窥 CJK UNIFIED IDEOGRAPH-7AA5 0x7AA6 窦 CJK UNIFIED IDEOGRAPH-7AA6 0x7AA8 窨 CJK UNIFIED IDEOGRAPH-7AA8 0x7AA9 窩 CJK UNIFIED IDEOGRAPH-7AA9 0x7AAE 窮 CJK UNIFIED IDEOGRAPH-7AAE 0x7ABA 窺 CJK UNIFIED IDEOGRAPH-7ABA 0x7ABF 窿 CJK UNIFIED IDEOGRAPH-7ABF 0x7ACB 立 CJK UNIFIED IDEOGRAPH-7ACB 0x7AD6 竖 CJK UNIFIED IDEOGRAPH-7AD6 0x7AD9 站 CJK UNIFIED IDEOGRAPH-7AD9 0x7ADC 竜 CJK UNIFIED IDEOGRAPH-7ADC 0x7ADE 竞 CJK UNIFIED IDEOGRAPH-7ADE 0x7ADF 竟 CJK UNIFIED IDEOGRAPH-7ADF 0x7AE0 章 CJK UNIFIED IDEOGRAPH-7AE0 0x7AE3 竣 CJK UNIFIED IDEOGRAPH-7AE3 0x7AE5 童 CJK UNIFIED IDEOGRAPH-7AE5 0x7AED 竭 CJK UNIFIED IDEOGRAPH-7AED 0x7AEF 端 CJK UNIFIED IDEOGRAPH-7AEF 0x7AF4 竴 CJK UNIFIED IDEOGRAPH-7AF4 0x7AF6 競 CJK UNIFIED IDEOGRAPH-7AF6 0x7AF7 竷 CJK UNIFIED IDEOGRAPH-7AF7 0x7AF9 竹 CJK UNIFIED IDEOGRAPH-7AF9 0x7AFA 竺 CJK UNIFIED IDEOGRAPH-7AFA 0x7AFD 竽 CJK UNIFIED IDEOGRAPH-7AFD 0x7AFF 竿 CJK UNIFIED IDEOGRAPH-7AFF 0x7B02 笂 CJK UNIFIED IDEOGRAPH-7B02 0x7B03 笃 CJK UNIFIED IDEOGRAPH-7B03 0x7B04 笄 CJK UNIFIED IDEOGRAPH-7B04 0x7B05 笅 CJK UNIFIED IDEOGRAPH-7B05 0x7B06 笆 CJK UNIFIED IDEOGRAPH-7B06 0x7B08 笈 CJK UNIFIED IDEOGRAPH-7B08 0x7B09 笉 CJK UNIFIED IDEOGRAPH-7B09 0x7B0B 笋 CJK UNIFIED IDEOGRAPH-7B0B 0x7B0F 笏 CJK UNIFIED IDEOGRAPH-7B0F 0x7B11 笑 CJK UNIFIED IDEOGRAPH-7B11 0x7B14 笔 CJK UNIFIED IDEOGRAPH-7B14 0x7B15 笕 CJK UNIFIED IDEOGRAPH-7B15 0x7B19 笙 CJK UNIFIED IDEOGRAPH-7B19 0x7B1B 笛 CJK UNIFIED IDEOGRAPH-7B1B 0x7B1E 笞 CJK UNIFIED IDEOGRAPH-7B1E 0x7B1F 笟 CJK UNIFIED IDEOGRAPH-7B1F 0x7B20 笠 CJK UNIFIED IDEOGRAPH-7B20 0x7B26 符 CJK UNIFIED IDEOGRAPH-7B26 0x7B28 笨 CJK UNIFIED IDEOGRAPH-7B28 0x7B2A 笪 CJK UNIFIED IDEOGRAPH-7B2A 0x7B2B 笫 CJK UNIFIED IDEOGRAPH-7B2B 0x7B2C 第 CJK UNIFIED IDEOGRAPH-7B2C 0x7B33 笳 CJK UNIFIED IDEOGRAPH-7B33 0x7B39 笹 CJK UNIFIED IDEOGRAPH-7B39 0x7B3A 笺 CJK UNIFIED IDEOGRAPH-7B3A 0x7B3C 笼 CJK UNIFIED IDEOGRAPH-7B3C 0x7B46 筆 CJK UNIFIED IDEOGRAPH-7B46 0x7B49 等 CJK UNIFIED IDEOGRAPH-7B49 0x7B4B 筋 CJK UNIFIED IDEOGRAPH-7B4B 0x7B4F 筏 CJK UNIFIED IDEOGRAPH-7B4F 0x7B50 筐 CJK UNIFIED IDEOGRAPH-7B50 0x7B51 筑 CJK UNIFIED IDEOGRAPH-7B51 0x7B52 筒 CJK UNIFIED IDEOGRAPH-7B52 0x7B54 答 CJK UNIFIED IDEOGRAPH-7B54 0x7B56 策 CJK UNIFIED IDEOGRAPH-7B56 0x7B5A 筚 CJK UNIFIED IDEOGRAPH-7B5A 0x7B5B 筛 CJK UNIFIED IDEOGRAPH-7B5B 0x7B5D 筝 CJK UNIFIED IDEOGRAPH-7B5D 0x7B60 筠 CJK UNIFIED IDEOGRAPH-7B60 0x7B71 筱 CJK UNIFIED IDEOGRAPH-7B71 0x7B72 筲 CJK UNIFIED IDEOGRAPH-7B72 0x7B75 筵 CJK UNIFIED IDEOGRAPH-7B75 0x7B77 筷 CJK UNIFIED IDEOGRAPH-7B77 0x7B79 筹 CJK UNIFIED IDEOGRAPH-7B79 0x7B7E 签 CJK UNIFIED IDEOGRAPH-7B7E 0x7B80 简 CJK UNIFIED IDEOGRAPH-7B80 0x7B85 箅 CJK UNIFIED IDEOGRAPH-7B85 0x7B8D 箍 CJK UNIFIED IDEOGRAPH-7B8D 0x7B90 箐 CJK UNIFIED IDEOGRAPH-7B90 0x7B93 箓 CJK UNIFIED IDEOGRAPH-7B93 0x7B94 箔 CJK UNIFIED IDEOGRAPH-7B94 0x7B95 箕 CJK UNIFIED IDEOGRAPH-7B95 0x7B97 算 CJK UNIFIED IDEOGRAPH-7B97 0x7B9C 箜 CJK UNIFIED IDEOGRAPH-7B9C 0x7BA1 管 CJK UNIFIED IDEOGRAPH-7BA1 0x7BA7 箧 CJK UNIFIED IDEOGRAPH-7BA7 0x7BA9 箩 CJK UNIFIED IDEOGRAPH-7BA9 0x7BAB 箫 CJK UNIFIED IDEOGRAPH-7BAB 0x7BAC 箬 CJK UNIFIED IDEOGRAPH-7BAC 0x7BAD 箭 CJK UNIFIED IDEOGRAPH-7BAD 0x7BB1 箱 CJK UNIFIED IDEOGRAPH-7BB1 0x7BB4 箴 CJK UNIFIED IDEOGRAPH-7BB4 0x7BB8 箸 CJK UNIFIED IDEOGRAPH-7BB8 0x7BC0 節 CJK UNIFIED IDEOGRAPH-7BC0 0x7BC1 篁 CJK UNIFIED IDEOGRAPH-7BC1 0x7BC4 範 CJK UNIFIED IDEOGRAPH-7BC4 0x7BC6 篆 CJK UNIFIED IDEOGRAPH-7BC6 0x7BC7 篇 CJK UNIFIED IDEOGRAPH-7BC7 0x7BC9 築 CJK UNIFIED IDEOGRAPH-7BC9 0x7BCC 篌 CJK UNIFIED IDEOGRAPH-7BCC 0x7BD1 篑 CJK UNIFIED IDEOGRAPH-7BD1 0x7BD3 篓 CJK UNIFIED IDEOGRAPH-7BD3 0x7BD9 篙 CJK UNIFIED IDEOGRAPH-7BD9 0x7BDD 篝 CJK UNIFIED IDEOGRAPH-7BDD 0x7BE0 篠 CJK UNIFIED IDEOGRAPH-7BE0 0x7BE1 篡 CJK UNIFIED IDEOGRAPH-7BE1 0x7BE6 篦 CJK UNIFIED IDEOGRAPH-7BE6 0x7BEA 篪 CJK UNIFIED IDEOGRAPH-7BEA 0x7BEE 篮 CJK UNIFIED IDEOGRAPH-7BEE 0x7BF1 篱 CJK UNIFIED IDEOGRAPH-7BF1 0x7BF7 篷 CJK UNIFIED IDEOGRAPH-7BF7 0x7BFC 篼 CJK UNIFIED IDEOGRAPH-7BFC 0x7BFE 篾 CJK UNIFIED IDEOGRAPH-7BFE 0x7C07 簇 CJK UNIFIED IDEOGRAPH-7C07 0x7C0B 簋 CJK UNIFIED IDEOGRAPH-7C0B 0x7C0C 簌 CJK UNIFIED IDEOGRAPH-7C0C 0x7C1F 簟 CJK UNIFIED IDEOGRAPH-7C1F 0x7C21 簡 CJK UNIFIED IDEOGRAPH-7C21 0x7C27 簧 CJK UNIFIED IDEOGRAPH-7C27 0x7C28 簨 CJK UNIFIED IDEOGRAPH-7C28 0x7C2A 簪 CJK UNIFIED IDEOGRAPH-7C2A 0x7C2C 簬 CJK UNIFIED IDEOGRAPH-7C2C 0x7C38 簸 CJK UNIFIED IDEOGRAPH-7C38 0x7C3D 簽 CJK UNIFIED IDEOGRAPH-7C3D 0x7C3F 簿 CJK UNIFIED IDEOGRAPH-7C3F 0x7C41 籁 CJK UNIFIED IDEOGRAPH-7C41 0x7C43 籃 CJK UNIFIED IDEOGRAPH-7C43 0x7C4C 籌 CJK UNIFIED IDEOGRAPH-7C4C 0x7C4D 籍 CJK UNIFIED IDEOGRAPH-7C4D 0x7C60 籠 CJK UNIFIED IDEOGRAPH-7C60 0x7C64 籤 CJK UNIFIED IDEOGRAPH-7C64 0x7C73 米 CJK UNIFIED IDEOGRAPH-7C73 0x7C7B 类 CJK UNIFIED IDEOGRAPH-7C7B 0x7C7C 籼 CJK UNIFIED IDEOGRAPH-7C7C 0x7C7D 籽 CJK UNIFIED IDEOGRAPH-7C7D 0x7C89 粉 CJK UNIFIED IDEOGRAPH-7C89 0x7C8F 粏 CJK UNIFIED IDEOGRAPH-7C8F 0x7C91 粑 CJK UNIFIED IDEOGRAPH-7C91 0x7C92 粒 CJK UNIFIED IDEOGRAPH-7C92 0x7C95 粕 CJK UNIFIED IDEOGRAPH-7C95 0x7C97 粗 CJK UNIFIED IDEOGRAPH-7C97 0x7C98 粘 CJK UNIFIED IDEOGRAPH-7C98 0x7C9F 粟 CJK UNIFIED IDEOGRAPH-7C9F 0x7CA4 粤 CJK UNIFIED IDEOGRAPH-7CA4 0x7CA5 粥 CJK UNIFIED IDEOGRAPH-7CA5 0x7CAA 粪 CJK UNIFIED IDEOGRAPH-7CAA 0x7CAE 粮 CJK UNIFIED IDEOGRAPH-7CAE 0x7CB1 粱 CJK UNIFIED IDEOGRAPH-7CB1 0x7CB2 粲 CJK UNIFIED IDEOGRAPH-7CB2 0x7CB3 粳 CJK UNIFIED IDEOGRAPH-7CB3 0x7CB5 粵 CJK UNIFIED IDEOGRAPH-7CB5 0x7CB9 粹 CJK UNIFIED IDEOGRAPH-7CB9 0x7CBC 粼 CJK UNIFIED IDEOGRAPH-7CBC 0x7CBD 粽 CJK UNIFIED IDEOGRAPH-7CBD 0x7CBE 精 CJK UNIFIED IDEOGRAPH-7CBE 0x7CBF 粿 CJK UNIFIED IDEOGRAPH-7CBF 0x7CC1 糁 CJK UNIFIED IDEOGRAPH-7CC1 0x7CC5 糅 CJK UNIFIED IDEOGRAPH-7CC5 0x7CCA 糊 CJK UNIFIED IDEOGRAPH-7CCA 0x7CCD 糍 CJK UNIFIED IDEOGRAPH-7CCD 0x7CD5 糕 CJK UNIFIED IDEOGRAPH-7CD5 0x7CD6 糖 CJK UNIFIED IDEOGRAPH-7CD6 0x7CD7 糗 CJK UNIFIED IDEOGRAPH-7CD7 0x7CD9 糙 CJK UNIFIED IDEOGRAPH-7CD9 0x7CDC 糜 CJK UNIFIED IDEOGRAPH-7CDC 0x7CDF 糟 CJK UNIFIED IDEOGRAPH-7CDF 0x7CE0 糠 CJK UNIFIED IDEOGRAPH-7CE0 0x7CEF 糯 CJK UNIFIED IDEOGRAPH-7CEF 0x7CF8 糸 CJK UNIFIED IDEOGRAPH-7CF8 0x7CFB 系 CJK UNIFIED IDEOGRAPH-7CFB 0x7D00 紀 CJK UNIFIED IDEOGRAPH-7D00 0x7D04 約 CJK UNIFIED IDEOGRAPH-7D04 0x7D05 紅 CJK UNIFIED IDEOGRAPH-7D05 0x7D0A 紊 CJK UNIFIED IDEOGRAPH-7D0A 0x7D0B 紋 CJK UNIFIED IDEOGRAPH-7D0B 0x7D0D 納 CJK UNIFIED IDEOGRAPH-7D0D 0x7D10 紐 CJK UNIFIED IDEOGRAPH-7D10 0x7D11 紑 CJK UNIFIED IDEOGRAPH-7D11 0x7D12 紒 CJK UNIFIED IDEOGRAPH-7D12 0x7D14 純 CJK UNIFIED IDEOGRAPH-7D14 0x7D17 紗 CJK UNIFIED IDEOGRAPH-7D17 0x7D18 紘 CJK UNIFIED IDEOGRAPH-7D18 0x7D19 紙 CJK UNIFIED IDEOGRAPH-7D19 0x7D1A 級 CJK UNIFIED IDEOGRAPH-7D1A 0x7D1B 紛 CJK UNIFIED IDEOGRAPH-7D1B 0x7D1D 紝 CJK UNIFIED IDEOGRAPH-7D1D 0x7D20 素 CJK UNIFIED IDEOGRAPH-7D20 0x7D21 紡 CJK UNIFIED IDEOGRAPH-7D21 0x7D22 索 CJK UNIFIED IDEOGRAPH-7D22 0x7D27 紧 CJK UNIFIED IDEOGRAPH-7D27 0x7D2B 紫 CJK UNIFIED IDEOGRAPH-7D2B 0x7D2C 紬 CJK UNIFIED IDEOGRAPH-7D2C 0x7D2D 紭 CJK UNIFIED IDEOGRAPH-7D2D 0x7D2E 紮 CJK UNIFIED IDEOGRAPH-7D2E 0x7D2F 累 CJK UNIFIED IDEOGRAPH-7D2F 0x7D30 細 CJK UNIFIED IDEOGRAPH-7D30 0x7D33 紳 CJK UNIFIED IDEOGRAPH-7D33 0x7D39 紹 CJK UNIFIED IDEOGRAPH-7D39 0x7D42 終 CJK UNIFIED IDEOGRAPH-7D42 0x7D44 組 CJK UNIFIED IDEOGRAPH-7D44 0x7D4C 経 CJK UNIFIED IDEOGRAPH-7D4C 0x7D50 結 CJK UNIFIED IDEOGRAPH-7D50 0x7D55 絕 CJK UNIFIED IDEOGRAPH-7D55 0x7D61 絡 CJK UNIFIED IDEOGRAPH-7D61 0x7D66 給 CJK UNIFIED IDEOGRAPH-7D66 0x7D6E 絮 CJK UNIFIED IDEOGRAPH-7D6E 0x7D71 統 CJK UNIFIED IDEOGRAPH-7D71 0x7D72 絲 CJK UNIFIED IDEOGRAPH-7D72 0x7D75 絵 CJK UNIFIED IDEOGRAPH-7D75 0x7D76 絶 CJK UNIFIED IDEOGRAPH-7D76 0x7D81 綁 CJK UNIFIED IDEOGRAPH-7D81 0x7D89 綉 CJK UNIFIED IDEOGRAPH-7D89 0x7D8B 綋 CJK UNIFIED IDEOGRAPH-7D8B 0x7D8D 綍 CJK UNIFIED IDEOGRAPH-7D8D 0x7D93 經 CJK UNIFIED IDEOGRAPH-7D93 0x7D94 綔 CJK UNIFIED IDEOGRAPH-7D94 0x7D9A 続 CJK UNIFIED IDEOGRAPH-7D9A 0x7D9C 綜 CJK UNIFIED IDEOGRAPH-7D9C 0x7DA0 綠 CJK UNIFIED IDEOGRAPH-7DA0 0x7DA6 綦 CJK UNIFIED IDEOGRAPH-7DA6 0x7DAB 綫 CJK UNIFIED IDEOGRAPH-7DAB 0x7DAD 維 CJK UNIFIED IDEOGRAPH-7DAD 0x7DB1 綱 CJK UNIFIED IDEOGRAPH-7DB1 0x7DB2 網 CJK UNIFIED IDEOGRAPH-7DB2 0x7DBA 綺 CJK UNIFIED IDEOGRAPH-7DBA 0x7DBE 綾 CJK UNIFIED IDEOGRAPH-7DBE 0x7DBF 綿 CJK UNIFIED IDEOGRAPH-7DBF 0x7DCA 緊 CJK UNIFIED IDEOGRAPH-7DCA 0x7DCF 総 CJK UNIFIED IDEOGRAPH-7DCF 0x7DD1 緑 CJK UNIFIED IDEOGRAPH-7DD1 0x7DD2 緒 CJK UNIFIED IDEOGRAPH-7DD2 0x7DDA 線 CJK UNIFIED IDEOGRAPH-7DDA 0x7DE3 緣 CJK UNIFIED IDEOGRAPH-7DE3 0x7DE8 編 CJK UNIFIED IDEOGRAPH-7DE8 0x7DE9 緩 CJK UNIFIED IDEOGRAPH-7DE9 0x7DEC 緬 CJK UNIFIED IDEOGRAPH-7DEC 0x7DF4 練 CJK UNIFIED IDEOGRAPH-7DF4 0x7DFB 緻 CJK UNIFIED IDEOGRAPH-7DFB 0x7E04 縄 CJK UNIFIED IDEOGRAPH-7E04 0x7E1B 縛 CJK UNIFIED IDEOGRAPH-7E1B 0x7E23 縣 CJK UNIFIED IDEOGRAPH-7E23 0x7E2B 縫 CJK UNIFIED IDEOGRAPH-7E2B 0x7E2E 縮 CJK UNIFIED IDEOGRAPH-7E2E 0x7E31 縱 CJK UNIFIED IDEOGRAPH-7E31 0x7E3D 總 CJK UNIFIED IDEOGRAPH-7E3D 0x7E3E 績 CJK UNIFIED IDEOGRAPH-7E3E 0x7E41 繁 CJK UNIFIED IDEOGRAPH-7E41 0x7E43 繃 CJK UNIFIED IDEOGRAPH-7E43 0x7E47 繇 CJK UNIFIED IDEOGRAPH-7E47 0x7E4B 繋 CJK UNIFIED IDEOGRAPH-7E4B 0x7E54 織 CJK UNIFIED IDEOGRAPH-7E54 0x7E5E 繞 CJK UNIFIED IDEOGRAPH-7E5E 0x7E69 繩 CJK UNIFIED IDEOGRAPH-7E69 0x7E6A 繪 CJK UNIFIED IDEOGRAPH-7E6A 0x7E6B 繫 CJK UNIFIED IDEOGRAPH-7E6B 0x7E79 繹 CJK UNIFIED IDEOGRAPH-7E79 0x7E7C 繼 CJK UNIFIED IDEOGRAPH-7E7C 0x7E7D 繽 CJK UNIFIED IDEOGRAPH-7E7D 0x7E82 纂 CJK UNIFIED IDEOGRAPH-7E82 0x7E8C 續 CJK UNIFIED IDEOGRAPH-7E8C 0x7E8F 纏 CJK UNIFIED IDEOGRAPH-7E8F 0x7E96 纖 CJK UNIFIED IDEOGRAPH-7E96 0x7EA0 纠 CJK UNIFIED IDEOGRAPH-7EA0 0x7EA1 纡 CJK UNIFIED IDEOGRAPH-7EA1 0x7EA2 红 CJK UNIFIED IDEOGRAPH-7EA2 0x7EA3 纣 CJK UNIFIED IDEOGRAPH-7EA3 0x7EA4 纤 CJK UNIFIED IDEOGRAPH-7EA4 0x7EA6 约 CJK UNIFIED IDEOGRAPH-7EA6 0x7EA7 级 CJK UNIFIED IDEOGRAPH-7EA7 0x7EA8 纨 CJK UNIFIED IDEOGRAPH-7EA8 0x7EAA 纪 CJK UNIFIED IDEOGRAPH-7EAA 0x7EAB 纫 CJK UNIFIED IDEOGRAPH-7EAB 0x7EAC 纬 CJK UNIFIED IDEOGRAPH-7EAC 0x7EAD 纭 CJK UNIFIED IDEOGRAPH-7EAD 0x7EAE 纮 CJK UNIFIED IDEOGRAPH-7EAE 0x7EAF 纯 CJK UNIFIED IDEOGRAPH-7EAF 0x7EB0 纰 CJK UNIFIED IDEOGRAPH-7EB0 0x7EB1 纱 CJK UNIFIED IDEOGRAPH-7EB1 0x7EB2 纲 CJK UNIFIED IDEOGRAPH-7EB2 0x7EB3 纳 CJK UNIFIED IDEOGRAPH-7EB3 0x7EB5 纵 CJK UNIFIED IDEOGRAPH-7EB5 0x7EB6 纶 CJK UNIFIED IDEOGRAPH-7EB6 0x7EB7 纷 CJK UNIFIED IDEOGRAPH-7EB7 0x7EB8 纸 CJK UNIFIED IDEOGRAPH-7EB8 0x7EB9 纹 CJK UNIFIED IDEOGRAPH-7EB9 0x7EBA 纺 CJK UNIFIED IDEOGRAPH-7EBA 0x7EBD 纽 CJK UNIFIED IDEOGRAPH-7EBD 0x7EBE 纾 CJK UNIFIED IDEOGRAPH-7EBE 0x7EBF 线 CJK UNIFIED IDEOGRAPH-7EBF 0x7EC0 绀 CJK UNIFIED IDEOGRAPH-7EC0 0x7EC1 绁 CJK UNIFIED IDEOGRAPH-7EC1 0x7EC2 绂 CJK UNIFIED IDEOGRAPH-7EC2 0x7EC3 练 CJK UNIFIED IDEOGRAPH-7EC3 0x7EC4 组 CJK UNIFIED IDEOGRAPH-7EC4 0x7EC5 绅 CJK UNIFIED IDEOGRAPH-7EC5 0x7EC6 细 CJK UNIFIED IDEOGRAPH-7EC6 0x7EC7 织 CJK UNIFIED IDEOGRAPH-7EC7 0x7EC8 终 CJK UNIFIED IDEOGRAPH-7EC8 0x7EC9 绉 CJK UNIFIED IDEOGRAPH-7EC9 0x7ECA 绊 CJK UNIFIED IDEOGRAPH-7ECA 0x7ECB 绋 CJK UNIFIED IDEOGRAPH-7ECB 0x7ECC 绌 CJK UNIFIED IDEOGRAPH-7ECC 0x7ECD 绍 CJK UNIFIED IDEOGRAPH-7ECD 0x7ECE 绎 CJK UNIFIED IDEOGRAPH-7ECE 0x7ECF 经 CJK UNIFIED IDEOGRAPH-7ECF 0x7ED0 绐 CJK UNIFIED IDEOGRAPH-7ED0 0x7ED1 绑 CJK UNIFIED IDEOGRAPH-7ED1 0x7ED2 绒 CJK UNIFIED IDEOGRAPH-7ED2 0x7ED3 结 CJK UNIFIED IDEOGRAPH-7ED3 0x7ED4 绔 CJK UNIFIED IDEOGRAPH-7ED4 0x7ED5 绕 CJK UNIFIED IDEOGRAPH-7ED5 0x7ED7 绗 CJK UNIFIED IDEOGRAPH-7ED7 0x7ED8 绘 CJK UNIFIED IDEOGRAPH-7ED8 0x7ED9 给 CJK UNIFIED IDEOGRAPH-7ED9 0x7EDA 绚 CJK UNIFIED IDEOGRAPH-7EDA 0x7EDB 绛 CJK UNIFIED IDEOGRAPH-7EDB 0x7EDC 络 CJK UNIFIED IDEOGRAPH-7EDC 0x7EDD 绝 CJK UNIFIED IDEOGRAPH-7EDD 0x7EDE 绞 CJK UNIFIED IDEOGRAPH-7EDE 0x7EDF 统 CJK UNIFIED IDEOGRAPH-7EDF 0x7EE0 绠 CJK UNIFIED IDEOGRAPH-7EE0 0x7EE1 绡 CJK UNIFIED IDEOGRAPH-7EE1 0x7EE2 绢 CJK UNIFIED IDEOGRAPH-7EE2 0x7EE3 绣 CJK UNIFIED IDEOGRAPH-7EE3 0x7EE5 绥 CJK UNIFIED IDEOGRAPH-7EE5 0x7EE6 绦 CJK UNIFIED IDEOGRAPH-7EE6 0x7EE7 继 CJK UNIFIED IDEOGRAPH-7EE7 0x7EE9 绩 CJK UNIFIED IDEOGRAPH-7EE9 0x7EEA 绪 CJK UNIFIED IDEOGRAPH-7EEA 0x7EEB 绫 CJK UNIFIED IDEOGRAPH-7EEB 0x7EED 续 CJK UNIFIED IDEOGRAPH-7EED 0x7EEE 绮 CJK UNIFIED IDEOGRAPH-7EEE 0x7EEF 绯 CJK UNIFIED IDEOGRAPH-7EEF 0x7EF0 绰 CJK UNIFIED IDEOGRAPH-7EF0 0x7EF1 绱 CJK UNIFIED IDEOGRAPH-7EF1 0x7EF3 绳 CJK UNIFIED IDEOGRAPH-7EF3 0x7EF4 维 CJK UNIFIED IDEOGRAPH-7EF4 0x7EF5 绵 CJK UNIFIED IDEOGRAPH-7EF5 0x7EF6 绶 CJK UNIFIED IDEOGRAPH-7EF6 0x7EF7 绷 CJK UNIFIED IDEOGRAPH-7EF7 0x7EF8 绸 CJK UNIFIED IDEOGRAPH-7EF8 0x7EFA 绺 CJK UNIFIED IDEOGRAPH-7EFA 0x7EFB 绻 CJK UNIFIED IDEOGRAPH-7EFB 0x7EFC 综 CJK UNIFIED IDEOGRAPH-7EFC 0x7EFD 绽 CJK UNIFIED IDEOGRAPH-7EFD 0x7EFE 绾 CJK UNIFIED IDEOGRAPH-7EFE 0x7EFF 绿 CJK UNIFIED IDEOGRAPH-7EFF 0x7F00 缀 CJK UNIFIED IDEOGRAPH-7F00 0x7F01 缁 CJK UNIFIED IDEOGRAPH-7F01 0x7F02 缂 CJK UNIFIED IDEOGRAPH-7F02 0x7F03 缃 CJK UNIFIED IDEOGRAPH-7F03 0x7F04 缄 CJK UNIFIED IDEOGRAPH-7F04 0x7F05 缅 CJK UNIFIED IDEOGRAPH-7F05 0x7F06 缆 CJK UNIFIED IDEOGRAPH-7F06 0x7F07 缇 CJK UNIFIED IDEOGRAPH-7F07 0x7F08 缈 CJK UNIFIED IDEOGRAPH-7F08 0x7F09 缉 CJK UNIFIED IDEOGRAPH-7F09 0x7F0E 缎 CJK UNIFIED IDEOGRAPH-7F0E 0x7F13 缓 CJK UNIFIED IDEOGRAPH-7F13 0x7F14 缔 CJK UNIFIED IDEOGRAPH-7F14 0x7F15 缕 CJK UNIFIED IDEOGRAPH-7F15 0x7F16 编 CJK UNIFIED IDEOGRAPH-7F16 0x7F18 缘 CJK UNIFIED IDEOGRAPH-7F18 0x7F19 缙 CJK UNIFIED IDEOGRAPH-7F19 0x7F1A 缚 CJK UNIFIED IDEOGRAPH-7F1A 0x7F1B 缛 CJK UNIFIED IDEOGRAPH-7F1B 0x7F1C 缜 CJK UNIFIED IDEOGRAPH-7F1C 0x7F1D 缝 CJK UNIFIED IDEOGRAPH-7F1D 0x7F1F 缟 CJK UNIFIED IDEOGRAPH-7F1F 0x7F20 缠 CJK UNIFIED IDEOGRAPH-7F20 0x7F22 缢 CJK UNIFIED IDEOGRAPH-7F22 0x7F24 缤 CJK UNIFIED IDEOGRAPH-7F24 0x7F25 缥 CJK UNIFIED IDEOGRAPH-7F25 0x7F26 缦 CJK UNIFIED IDEOGRAPH-7F26 0x7F28 缨 CJK UNIFIED IDEOGRAPH-7F28 0x7F29 缩 CJK UNIFIED IDEOGRAPH-7F29 0x7F2A 缪 CJK UNIFIED IDEOGRAPH-7F2A 0x7F2C 缬 CJK UNIFIED IDEOGRAPH-7F2C 0x7F2D 缭 CJK UNIFIED IDEOGRAPH-7F2D 0x7F2E 缮 CJK UNIFIED IDEOGRAPH-7F2E 0x7F30 缰 CJK UNIFIED IDEOGRAPH-7F30 0x7F31 缱 CJK UNIFIED IDEOGRAPH-7F31 0x7F34 缴 CJK UNIFIED IDEOGRAPH-7F34 0x7F36 缶 CJK UNIFIED IDEOGRAPH-7F36 0x7F38 缸 CJK UNIFIED IDEOGRAPH-7F38 0x7F3A 缺 CJK UNIFIED IDEOGRAPH-7F3A 0x7F42 罂 CJK UNIFIED IDEOGRAPH-7F42 0x7F44 罄 CJK UNIFIED IDEOGRAPH-7F44 0x7F45 罅 CJK UNIFIED IDEOGRAPH-7F45 0x7F50 罐 CJK UNIFIED IDEOGRAPH-7F50 0x7F51 网 CJK UNIFIED IDEOGRAPH-7F51 0x7F52 罒 CJK UNIFIED IDEOGRAPH-7F52 0x7F54 罔 CJK UNIFIED IDEOGRAPH-7F54 0x7F55 罕 CJK UNIFIED IDEOGRAPH-7F55 0x7F57 罗 CJK UNIFIED IDEOGRAPH-7F57 0x7F58 罘 CJK UNIFIED IDEOGRAPH-7F58 0x7F5A 罚 CJK UNIFIED IDEOGRAPH-7F5A 0x7F61 罡 CJK UNIFIED IDEOGRAPH-7F61 0x7F62 罢 CJK UNIFIED IDEOGRAPH-7F62 0x7F69 罩 CJK UNIFIED IDEOGRAPH-7F69 0x7F6A 罪 CJK UNIFIED IDEOGRAPH-7F6A 0x7F6E 置 CJK UNIFIED IDEOGRAPH-7F6E 0x7F70 罰 CJK UNIFIED IDEOGRAPH-7F70 0x7F72 署 CJK UNIFIED IDEOGRAPH-7F72 0x7F75 罵 CJK UNIFIED IDEOGRAPH-7F75 0x7F79 罹 CJK UNIFIED IDEOGRAPH-7F79 0x7F81 羁 CJK UNIFIED IDEOGRAPH-7F81 0x7F85 羅 CJK UNIFIED IDEOGRAPH-7F85 0x7F8A 羊 CJK UNIFIED IDEOGRAPH-7F8A 0x7F8C 羌 CJK UNIFIED IDEOGRAPH-7F8C 0x7F8E 美 CJK UNIFIED IDEOGRAPH-7F8E 0x7F94 羔 CJK UNIFIED IDEOGRAPH-7F94 0x7F9A 羚 CJK UNIFIED IDEOGRAPH-7F9A 0x7F9E 羞 CJK UNIFIED IDEOGRAPH-7F9E 0x7F9F 羟 CJK UNIFIED IDEOGRAPH-7F9F 0x7FA1 羡 CJK UNIFIED IDEOGRAPH-7FA1 0x7FA3 羣 CJK UNIFIED IDEOGRAPH-7FA3 0x7FA4 群 CJK UNIFIED IDEOGRAPH-7FA4 0x7FA7 羧 CJK UNIFIED IDEOGRAPH-7FA7 0x7FA9 義 CJK UNIFIED IDEOGRAPH-7FA9 0x7FAF 羯 CJK UNIFIED IDEOGRAPH-7FAF 0x7FB0 羰 CJK UNIFIED IDEOGRAPH-7FB0 0x7FB2 羲 CJK UNIFIED IDEOGRAPH-7FB2 0x7FB8 羸 CJK UNIFIED IDEOGRAPH-7FB8 0x7FB9 羹 CJK UNIFIED IDEOGRAPH-7FB9 0x7FBD 羽 CJK UNIFIED IDEOGRAPH-7FBD 0x7FBF 羿 CJK UNIFIED IDEOGRAPH-7FBF 0x7FC0 翀 CJK UNIFIED IDEOGRAPH-7FC0 0x7FC1 翁 CJK UNIFIED IDEOGRAPH-7FC1 0x7FC5 翅 CJK UNIFIED IDEOGRAPH-7FC5 0x7FCA 翊 CJK UNIFIED IDEOGRAPH-7FCA 0x7FCC 翌 CJK UNIFIED IDEOGRAPH-7FCC 0x7FCE 翎 CJK UNIFIED IDEOGRAPH-7FCE 0x7FD2 習 CJK UNIFIED IDEOGRAPH-7FD2 0x7FD4 翔 CJK UNIFIED IDEOGRAPH-7FD4 0x7FD5 翕 CJK UNIFIED IDEOGRAPH-7FD5 0x7FD8 翘 CJK UNIFIED IDEOGRAPH-7FD8 0x7FDF 翟 CJK UNIFIED IDEOGRAPH-7FDF 0x7FE0 翠 CJK UNIFIED IDEOGRAPH-7FE0 0x7FE1 翡 CJK UNIFIED IDEOGRAPH-7FE1 0x7FE5 翥 CJK UNIFIED IDEOGRAPH-7FE5 0x7FE6 翦 CJK UNIFIED IDEOGRAPH-7FE6 0x7FE9 翩 CJK UNIFIED IDEOGRAPH-7FE9 0x7FF0 翰 CJK UNIFIED IDEOGRAPH-7FF0 0x7FF1 翱 CJK UNIFIED IDEOGRAPH-7FF1 0x7FF3 翳 CJK UNIFIED IDEOGRAPH-7FF3 0x7FF9 翹 CJK UNIFIED IDEOGRAPH-7FF9 0x7FFB 翻 CJK UNIFIED IDEOGRAPH-7FFB 0x7FFC 翼 CJK UNIFIED IDEOGRAPH-7FFC 0x8000 耀 CJK UNIFIED IDEOGRAPH-8000 0x8001 老 CJK UNIFIED IDEOGRAPH-8001 0x8003 考 CJK UNIFIED IDEOGRAPH-8003 0x8004 耄 CJK UNIFIED IDEOGRAPH-8004 0x8005 者 CJK UNIFIED IDEOGRAPH-8005 0x8006 耆 CJK UNIFIED IDEOGRAPH-8006 0x800B 耋 CJK UNIFIED IDEOGRAPH-800B 0x800C 而 CJK UNIFIED IDEOGRAPH-800C 0x800D 耍 CJK UNIFIED IDEOGRAPH-800D 0x8010 耐 CJK UNIFIED IDEOGRAPH-8010 0x8012 耒 CJK UNIFIED IDEOGRAPH-8012 0x8015 耕 CJK UNIFIED IDEOGRAPH-8015 0x8017 耗 CJK UNIFIED IDEOGRAPH-8017 0x8018 耘 CJK UNIFIED IDEOGRAPH-8018 0x8019 耙 CJK UNIFIED IDEOGRAPH-8019 0x8026 耦 CJK UNIFIED IDEOGRAPH-8026 0x8033 耳 CJK UNIFIED IDEOGRAPH-8033 0x8036 耶 CJK UNIFIED IDEOGRAPH-8036 0x8037 耷 CJK UNIFIED IDEOGRAPH-8037 0x8038 耸 CJK UNIFIED IDEOGRAPH-8038 0x803B 耻 CJK UNIFIED IDEOGRAPH-803B 0x803D 耽 CJK UNIFIED IDEOGRAPH-803D 0x803F 耿 CJK UNIFIED IDEOGRAPH-803F 0x8042 聂 CJK UNIFIED IDEOGRAPH-8042 0x8046 聆 CJK UNIFIED IDEOGRAPH-8046 0x804A 聊 CJK UNIFIED IDEOGRAPH-804A 0x804B 聋 CJK UNIFIED IDEOGRAPH-804B 0x804C 职 CJK UNIFIED IDEOGRAPH-804C 0x8052 聒 CJK UNIFIED IDEOGRAPH-8052 0x8054 联 CJK UNIFIED IDEOGRAPH-8054 0x8056 聖 CJK UNIFIED IDEOGRAPH-8056 0x8058 聘 CJK UNIFIED IDEOGRAPH-8058 0x805A 聚 CJK UNIFIED IDEOGRAPH-805A 0x805E 聞 CJK UNIFIED IDEOGRAPH-805E 0x8069 聩 CJK UNIFIED IDEOGRAPH-8069 0x806A 聪 CJK UNIFIED IDEOGRAPH-806A 0x806F 聯 CJK UNIFIED IDEOGRAPH-806F 0x8070 聰 CJK UNIFIED IDEOGRAPH-8070 0x8072 聲 CJK UNIFIED IDEOGRAPH-8072 0x8074 聴 CJK UNIFIED IDEOGRAPH-8074 0x8077 職 CJK UNIFIED IDEOGRAPH-8077 0x807D 聽 CJK UNIFIED IDEOGRAPH-807D 0x807F 聿 CJK UNIFIED IDEOGRAPH-807F 0x8083 肃 CJK UNIFIED IDEOGRAPH-8083 0x8084 肄 CJK UNIFIED IDEOGRAPH-8084 0x8086 肆 CJK UNIFIED IDEOGRAPH-8086 0x8087 肇 CJK UNIFIED IDEOGRAPH-8087 0x8089 肉 CJK UNIFIED IDEOGRAPH-8089 0x808B 肋 CJK UNIFIED IDEOGRAPH-808B 0x808C 肌 CJK UNIFIED IDEOGRAPH-808C 0x808F 肏 CJK UNIFIED IDEOGRAPH-808F 0x8093 肓 CJK UNIFIED IDEOGRAPH-8093 0x8096 肖 CJK UNIFIED IDEOGRAPH-8096 0x8098 肘 CJK UNIFIED IDEOGRAPH-8098 0x809A 肚 CJK UNIFIED IDEOGRAPH-809A 0x809B 肛 CJK UNIFIED IDEOGRAPH-809B 0x809D 肝 CJK UNIFIED IDEOGRAPH-809D 0x809F 肟 CJK UNIFIED IDEOGRAPH-809F 0x80A0 肠 CJK UNIFIED IDEOGRAPH-80A0 0x80A1 股 CJK UNIFIED IDEOGRAPH-80A1 0x80A2 肢 CJK UNIFIED IDEOGRAPH-80A2 0x80A4 肤 CJK UNIFIED IDEOGRAPH-80A4 0x80A5 肥 CJK UNIFIED IDEOGRAPH-80A5 0x80A9 肩 CJK UNIFIED IDEOGRAPH-80A9 0x80AA 肪 CJK UNIFIED IDEOGRAPH-80AA 0x80AE 肮 CJK UNIFIED IDEOGRAPH-80AE 0x80AF 肯 CJK UNIFIED IDEOGRAPH-80AF 0x80B1 肱 CJK UNIFIED IDEOGRAPH-80B1 0x80B2 育 CJK UNIFIED IDEOGRAPH-80B2 0x80B4 肴 CJK UNIFIED IDEOGRAPH-80B4 0x80BA 肺 CJK UNIFIED IDEOGRAPH-80BA 0x80BC 肼 CJK UNIFIED IDEOGRAPH-80BC 0x80BD 肽 CJK UNIFIED IDEOGRAPH-80BD 0x80BE 肾 CJK UNIFIED IDEOGRAPH-80BE 0x80BF 肿 CJK UNIFIED IDEOGRAPH-80BF 0x80C0 胀 CJK UNIFIED IDEOGRAPH-80C0 0x80C1 胁 CJK UNIFIED IDEOGRAPH-80C1 0x80C3 胃 CJK UNIFIED IDEOGRAPH-80C3 0x80C4 胄 CJK UNIFIED IDEOGRAPH-80C4 0x80C6 胆 CJK UNIFIED IDEOGRAPH-80C6 0x80CC 背 CJK UNIFIED IDEOGRAPH-80CC 0x80CD 胍 CJK UNIFIED IDEOGRAPH-80CD 0x80CE 胎 CJK UNIFIED IDEOGRAPH-80CE 0x80D4 胔 CJK UNIFIED IDEOGRAPH-80D4 0x80D6 胖 CJK UNIFIED IDEOGRAPH-80D6 0x80D7 胗 CJK UNIFIED IDEOGRAPH-80D7 0x80DA 胚 CJK UNIFIED IDEOGRAPH-80DA 0x80DB 胛 CJK UNIFIED IDEOGRAPH-80DB 0x80DC 胜 CJK UNIFIED IDEOGRAPH-80DC 0x80DD 胝 CJK UNIFIED IDEOGRAPH-80DD 0x80DE 胞 CJK UNIFIED IDEOGRAPH-80DE 0x80E1 胡 CJK UNIFIED IDEOGRAPH-80E1 0x80E4 胤 CJK UNIFIED IDEOGRAPH-80E4 0x80E5 胥 CJK UNIFIED IDEOGRAPH-80E5 0x80E7 胧 CJK UNIFIED IDEOGRAPH-80E7 0x80EA 胪 CJK UNIFIED IDEOGRAPH-80EA 0x80EB 胫 CJK UNIFIED IDEOGRAPH-80EB 0x80ED 胭 CJK UNIFIED IDEOGRAPH-80ED 0x80EF 胯 CJK UNIFIED IDEOGRAPH-80EF 0x80F0 胰 CJK UNIFIED IDEOGRAPH-80F0 0x80F1 胱 CJK UNIFIED IDEOGRAPH-80F1 0x80F3 胳 CJK UNIFIED IDEOGRAPH-80F3 0x80F4 胴 CJK UNIFIED IDEOGRAPH-80F4 0x80F6 胶 CJK UNIFIED IDEOGRAPH-80F6 0x80F8 胸 CJK UNIFIED IDEOGRAPH-80F8 0x80FA 胺 CJK UNIFIED IDEOGRAPH-80FA 0x80FC 胼 CJK UNIFIED IDEOGRAPH-80FC 0x80FD 能 CJK UNIFIED IDEOGRAPH-80FD 0x8102 脂 CJK UNIFIED IDEOGRAPH-8102 0x8105 脅 CJK UNIFIED IDEOGRAPH-8105 0x8106 脆 CJK UNIFIED IDEOGRAPH-8106 0x8107 脇 CJK UNIFIED IDEOGRAPH-8107 0x8108 脈 CJK UNIFIED IDEOGRAPH-8108 0x8109 脉 CJK UNIFIED IDEOGRAPH-8109 0x810A 脊 CJK UNIFIED IDEOGRAPH-810A 0x810D 脍 CJK UNIFIED IDEOGRAPH-810D 0x810F 脏 CJK UNIFIED IDEOGRAPH-810F 0x8110 脐 CJK UNIFIED IDEOGRAPH-8110 0x8111 脑 CJK UNIFIED IDEOGRAPH-8111 0x8113 脓 CJK UNIFIED IDEOGRAPH-8113 0x8114 脔 CJK UNIFIED IDEOGRAPH-8114 0x8116 脖 CJK UNIFIED IDEOGRAPH-8116 0x8118 脘 CJK UNIFIED IDEOGRAPH-8118 0x811A 脚 CJK UNIFIED IDEOGRAPH-811A 0x812B 脫 CJK UNIFIED IDEOGRAPH-812B 0x812F 脯 CJK UNIFIED IDEOGRAPH-812F 0x8131 脱 CJK UNIFIED IDEOGRAPH-8131 0x8132 脲 CJK UNIFIED IDEOGRAPH-8132 0x8133 脳 CJK UNIFIED IDEOGRAPH-8133 0x8138 脸 CJK UNIFIED IDEOGRAPH-8138 0x813E 脾 CJK UNIFIED IDEOGRAPH-813E 0x8146 腆 CJK UNIFIED IDEOGRAPH-8146 0x8148 腈 CJK UNIFIED IDEOGRAPH-8148 0x814A 腊 CJK UNIFIED IDEOGRAPH-814A 0x814B 腋 CJK UNIFIED IDEOGRAPH-814B 0x814C 腌 CJK UNIFIED IDEOGRAPH-814C 0x814E 腎 CJK UNIFIED IDEOGRAPH-814E 0x8150 腐 CJK UNIFIED IDEOGRAPH-8150 0x8151 腑 CJK UNIFIED IDEOGRAPH-8151 0x8153 腓 CJK UNIFIED IDEOGRAPH-8153 0x8154 腔 CJK UNIFIED IDEOGRAPH-8154 0x8155 腕 CJK UNIFIED IDEOGRAPH-8155 0x8158 腘 CJK UNIFIED IDEOGRAPH-8158 0x815A 腚 CJK UNIFIED IDEOGRAPH-815A 0x8165 腥 CJK UNIFIED IDEOGRAPH-8165 0x8166 腦 CJK UNIFIED IDEOGRAPH-8166 0x8167 腧 CJK UNIFIED IDEOGRAPH-8167 0x8169 腩 CJK UNIFIED IDEOGRAPH-8169 0x816B 腫 CJK UNIFIED IDEOGRAPH-816B 0x816D 腭 CJK UNIFIED IDEOGRAPH-816D 0x816E 腮 CJK UNIFIED IDEOGRAPH-816E 0x8170 腰 CJK UNIFIED IDEOGRAPH-8170 0x8171 腱 CJK UNIFIED IDEOGRAPH-8171 0x8173 腳 CJK UNIFIED IDEOGRAPH-8173 0x8174 腴 CJK UNIFIED IDEOGRAPH-8174 0x8178 腸 CJK UNIFIED IDEOGRAPH-8178 0x8179 腹 CJK UNIFIED IDEOGRAPH-8179 0x817A 腺 CJK UNIFIED IDEOGRAPH-817A 0x817B 腻 CJK UNIFIED IDEOGRAPH-817B 0x817C 腼 CJK UNIFIED IDEOGRAPH-817C 0x817E 腾 CJK UNIFIED IDEOGRAPH-817E 0x817F 腿 CJK UNIFIED IDEOGRAPH-817F 0x8180 膀 CJK UNIFIED IDEOGRAPH-8180 0x8188 膈 CJK UNIFIED IDEOGRAPH-8188 0x818A 膊 CJK UNIFIED IDEOGRAPH-818A 0x818F 膏 CJK UNIFIED IDEOGRAPH-818F 0x8191 膑 CJK UNIFIED IDEOGRAPH-8191 0x8198 膘 CJK UNIFIED IDEOGRAPH-8198 0x819A 膚 CJK UNIFIED IDEOGRAPH-819A 0x819B 膛 CJK UNIFIED IDEOGRAPH-819B 0x819C 膜 CJK UNIFIED IDEOGRAPH-819C 0x819D 膝 CJK UNIFIED IDEOGRAPH-819D 0x81A0 膠 CJK UNIFIED IDEOGRAPH-81A0 0x81A3 膣 CJK UNIFIED IDEOGRAPH-81A3 0x81A6 膦 CJK UNIFIED IDEOGRAPH-81A6 0x81A8 膨 CJK UNIFIED IDEOGRAPH-81A8 0x81A9 膩 CJK UNIFIED IDEOGRAPH-81A9 0x81B3 膳 CJK UNIFIED IDEOGRAPH-81B3 0x81BA 膺 CJK UNIFIED IDEOGRAPH-81BA 0x81BB 膻 CJK UNIFIED IDEOGRAPH-81BB 0x81BD 膽 CJK UNIFIED IDEOGRAPH-81BD 0x81C0 臀 CJK UNIFIED IDEOGRAPH-81C0 0x81C2 臂 CJK UNIFIED IDEOGRAPH-81C2 0x81C3 臃 CJK UNIFIED IDEOGRAPH-81C3 0x81C6 臆 CJK UNIFIED IDEOGRAPH-81C6 0x81C9 臉 CJK UNIFIED IDEOGRAPH-81C9 0x81CA 臊 CJK UNIFIED IDEOGRAPH-81CA 0x81D8 臘 CJK UNIFIED IDEOGRAPH-81D8 0x81DF 臟 CJK UNIFIED IDEOGRAPH-81DF 0x81E3 臣 CJK UNIFIED IDEOGRAPH-81E3 0x81E5 臥 CJK UNIFIED IDEOGRAPH-81E5 0x81E7 臧 CJK UNIFIED IDEOGRAPH-81E7 0x81E8 臨 CJK UNIFIED IDEOGRAPH-81E8 0x81EA 自 CJK UNIFIED IDEOGRAPH-81EA 0x81EC 臬 CJK UNIFIED IDEOGRAPH-81EC 0x81ED 臭 CJK UNIFIED IDEOGRAPH-81ED 0x81F3 至 CJK UNIFIED IDEOGRAPH-81F3 0x81F4 致 CJK UNIFIED IDEOGRAPH-81F4 0x81FA 臺 CJK UNIFIED IDEOGRAPH-81FA 0x81FB 臻 CJK UNIFIED IDEOGRAPH-81FB 0x81FC 臼 CJK UNIFIED IDEOGRAPH-81FC 0x81FE 臾 CJK UNIFIED IDEOGRAPH-81FE 0x8200 舀 CJK UNIFIED IDEOGRAPH-8200 0x8202 舂 CJK UNIFIED IDEOGRAPH-8202 0x8205 舅 CJK UNIFIED IDEOGRAPH-8205 0x8206 舆 CJK UNIFIED IDEOGRAPH-8206 0x8207 與 CJK UNIFIED IDEOGRAPH-8207 0x8208 興 CJK UNIFIED IDEOGRAPH-8208 0x8209 舉 CJK UNIFIED IDEOGRAPH-8209 0x820A 舊 CJK UNIFIED IDEOGRAPH-820A 0x820C 舌 CJK UNIFIED IDEOGRAPH-820C 0x820D 舍 CJK UNIFIED IDEOGRAPH-820D 0x820E 舎 CJK UNIFIED IDEOGRAPH-820E 0x8210 舐 CJK UNIFIED IDEOGRAPH-8210 0x8212 舒 CJK UNIFIED IDEOGRAPH-8212 0x8214 舔 CJK UNIFIED IDEOGRAPH-8214 0x8216 舖 CJK UNIFIED IDEOGRAPH-8216 0x821B 舛 CJK UNIFIED IDEOGRAPH-821B 0x821C 舜 CJK UNIFIED IDEOGRAPH-821C 0x821E 舞 CJK UNIFIED IDEOGRAPH-821E 0x821F 舟 CJK UNIFIED IDEOGRAPH-821F 0x822A 航 CJK UNIFIED IDEOGRAPH-822A 0x822B 舫 CJK UNIFIED IDEOGRAPH-822B 0x822C 般 CJK UNIFIED IDEOGRAPH-822C 0x8230 舰 CJK UNIFIED IDEOGRAPH-8230 0x8231 舱 CJK UNIFIED IDEOGRAPH-8231 0x8235 舵 CJK UNIFIED IDEOGRAPH-8235 0x8236 舶 CJK UNIFIED IDEOGRAPH-8236 0x8237 舷 CJK UNIFIED IDEOGRAPH-8237 0x8238 舸 CJK UNIFIED IDEOGRAPH-8238 0x8239 船 CJK UNIFIED IDEOGRAPH-8239 0x823A 舺 CJK UNIFIED IDEOGRAPH-823A 0x8247 艇 CJK UNIFIED IDEOGRAPH-8247 0x824B 艋 CJK UNIFIED IDEOGRAPH-824B 0x8258 艘 CJK UNIFIED IDEOGRAPH-8258 0x8266 艦 CJK UNIFIED IDEOGRAPH-8266 0x826E 艮 CJK UNIFIED IDEOGRAPH-826E 0x826F 良 CJK UNIFIED IDEOGRAPH-826F 0x8270 艰 CJK UNIFIED IDEOGRAPH-8270 0x8272 色 CJK UNIFIED IDEOGRAPH-8272 0x8273 艳 CJK UNIFIED IDEOGRAPH-8273 0x8276 艶 CJK UNIFIED IDEOGRAPH-8276 0x8277 艷 CJK UNIFIED IDEOGRAPH-8277 0x8278 艸 CJK UNIFIED IDEOGRAPH-8278 0x8279 艹 CJK UNIFIED IDEOGRAPH-8279 0x827A 艺 CJK UNIFIED IDEOGRAPH-827A 0x827E 艾 CJK UNIFIED IDEOGRAPH-827E 0x827F 艿 CJK UNIFIED IDEOGRAPH-827F 0x8282 节 CJK UNIFIED IDEOGRAPH-8282 0x8283 芃 CJK UNIFIED IDEOGRAPH-8283 0x8288 芈 CJK UNIFIED IDEOGRAPH-8288 0x828A 芊 CJK UNIFIED IDEOGRAPH-828A 0x828B 芋 CJK UNIFIED IDEOGRAPH-828B 0x828D 芍 CJK UNIFIED IDEOGRAPH-828D 0x828E 芎 CJK UNIFIED IDEOGRAPH-828E 0x8292 芒 CJK UNIFIED IDEOGRAPH-8292 0x8297 芗 CJK UNIFIED IDEOGRAPH-8297 0x8298 芘 CJK UNIFIED IDEOGRAPH-8298 0x8299 芙 CJK UNIFIED IDEOGRAPH-8299 0x829C 芜 CJK UNIFIED IDEOGRAPH-829C 0x829D 芝 CJK UNIFIED IDEOGRAPH-829D 0x82A1 芡 CJK UNIFIED IDEOGRAPH-82A1 0x82A5 芥 CJK UNIFIED IDEOGRAPH-82A5 0x82A6 芦 CJK UNIFIED IDEOGRAPH-82A6 0x82A8 芨 CJK UNIFIED IDEOGRAPH-82A8 0x82A9 芩 CJK UNIFIED IDEOGRAPH-82A9 0x82AA 芪 CJK UNIFIED IDEOGRAPH-82AA 0x82AB 芫 CJK UNIFIED IDEOGRAPH-82AB 0x82AC 芬 CJK UNIFIED IDEOGRAPH-82AC 0x82AD 芭 CJK UNIFIED IDEOGRAPH-82AD 0x82AE 芮 CJK UNIFIED IDEOGRAPH-82AE 0x82AF 芯 CJK UNIFIED IDEOGRAPH-82AF 0x82B1 花 CJK UNIFIED IDEOGRAPH-82B1 0x82B3 芳 CJK UNIFIED IDEOGRAPH-82B3 0x82B7 芷 CJK UNIFIED IDEOGRAPH-82B7 0x82B8 芸 CJK UNIFIED IDEOGRAPH-82B8 0x82B9 芹 CJK UNIFIED IDEOGRAPH-82B9 0x82BD 芽 CJK UNIFIED IDEOGRAPH-82BD 0x82BE 芾 CJK UNIFIED IDEOGRAPH-82BE 0x82C1 苁 CJK UNIFIED IDEOGRAPH-82C1 0x82C4 苄 CJK UNIFIED IDEOGRAPH-82C4 0x82C7 苇 CJK UNIFIED IDEOGRAPH-82C7 0x82CB 苋 CJK UNIFIED IDEOGRAPH-82CB 0x82CC 苌 CJK UNIFIED IDEOGRAPH-82CC 0x82CD 苍 CJK UNIFIED IDEOGRAPH-82CD 0x82CE 苎 CJK UNIFIED IDEOGRAPH-82CE 0x82CF 苏 CJK UNIFIED IDEOGRAPH-82CF 0x82D1 苑 CJK UNIFIED IDEOGRAPH-82D1 0x82D2 苒 CJK UNIFIED IDEOGRAPH-82D2 0x82D3 苓 CJK UNIFIED IDEOGRAPH-82D3 0x82D4 苔 CJK UNIFIED IDEOGRAPH-82D4 0x82D5 苕 CJK UNIFIED IDEOGRAPH-82D5 0x82D7 苗 CJK UNIFIED IDEOGRAPH-82D7 0x82DB 苛 CJK UNIFIED IDEOGRAPH-82DB 0x82DC 苜 CJK UNIFIED IDEOGRAPH-82DC 0x82DE 苞 CJK UNIFIED IDEOGRAPH-82DE 0x82DF 苟 CJK UNIFIED IDEOGRAPH-82DF 0x82E1 苡 CJK UNIFIED IDEOGRAPH-82E1 0x82E3 苣 CJK UNIFIED IDEOGRAPH-82E3 0x82E5 若 CJK UNIFIED IDEOGRAPH-82E5 0x82E6 苦 CJK UNIFIED IDEOGRAPH-82E6 0x82EB 苫 CJK UNIFIED IDEOGRAPH-82EB 0x82EF 苯 CJK UNIFIED IDEOGRAPH-82EF 0x82F1 英 CJK UNIFIED IDEOGRAPH-82F1 0x82F4 苴 CJK UNIFIED IDEOGRAPH-82F4 0x82F7 苷 CJK UNIFIED IDEOGRAPH-82F7 0x82F9 苹 CJK UNIFIED IDEOGRAPH-82F9 0x82FB 苻 CJK UNIFIED IDEOGRAPH-82FB 0x82FE 苾 CJK UNIFIED IDEOGRAPH-82FE 0x8301 茁 CJK UNIFIED IDEOGRAPH-8301 0x8302 茂 CJK UNIFIED IDEOGRAPH-8302 0x8303 范 CJK UNIFIED IDEOGRAPH-8303 0x8304 茄 CJK UNIFIED IDEOGRAPH-8304 0x8305 茅 CJK UNIFIED IDEOGRAPH-8305 0x8306 茆 CJK UNIFIED IDEOGRAPH-8306 0x8308 茈 CJK UNIFIED IDEOGRAPH-8308 0x8309 茉 CJK UNIFIED IDEOGRAPH-8309 0x830C 茌 CJK UNIFIED IDEOGRAPH-830C 0x830E 茎 CJK UNIFIED IDEOGRAPH-830E 0x830F 茏 CJK UNIFIED IDEOGRAPH-830F 0x8314 茔 CJK UNIFIED IDEOGRAPH-8314 0x8315 茕 CJK UNIFIED IDEOGRAPH-8315 0x8317 茗 CJK UNIFIED IDEOGRAPH-8317 0x831B 茛 CJK UNIFIED IDEOGRAPH-831B 0x831C 茜 CJK UNIFIED IDEOGRAPH-831C 0x8327 茧 CJK UNIFIED IDEOGRAPH-8327 0x8328 茨 CJK UNIFIED IDEOGRAPH-8328 0x832B 茫 CJK UNIFIED IDEOGRAPH-832B 0x832C 茬 CJK UNIFIED IDEOGRAPH-832C 0x832D 茭 CJK UNIFIED IDEOGRAPH-832D 0x832F 茯 CJK UNIFIED IDEOGRAPH-832F 0x8331 茱 CJK UNIFIED IDEOGRAPH-8331 0x8332 茲 CJK UNIFIED IDEOGRAPH-8332 0x8334 茴 CJK UNIFIED IDEOGRAPH-8334 0x8335 茵 CJK UNIFIED IDEOGRAPH-8335 0x8336 茶 CJK UNIFIED IDEOGRAPH-8336 0x8338 茸 CJK UNIFIED IDEOGRAPH-8338 0x8339 茹 CJK UNIFIED IDEOGRAPH-8339 0x833C 茼 CJK UNIFIED IDEOGRAPH-833C 0x8340 荀 CJK UNIFIED IDEOGRAPH-8340 0x8343 荃 CJK UNIFIED IDEOGRAPH-8343 0x8346 荆 CJK UNIFIED IDEOGRAPH-8346 0x8347 荇 CJK UNIFIED IDEOGRAPH-8347 0x8349 草 CJK UNIFIED IDEOGRAPH-8349 0x834F 荏 CJK UNIFIED IDEOGRAPH-834F 0x8350 荐 CJK UNIFIED IDEOGRAPH-8350 0x8352 荒 CJK UNIFIED IDEOGRAPH-8352 0x8354 荔 CJK UNIFIED IDEOGRAPH-8354 0x835A 荚 CJK UNIFIED IDEOGRAPH-835A 0x835E 荞 CJK UNIFIED IDEOGRAPH-835E 0x835F 荟 CJK UNIFIED IDEOGRAPH-835F 0x8360 荠 CJK UNIFIED IDEOGRAPH-8360 0x8361 荡 CJK UNIFIED IDEOGRAPH-8361 0x8363 荣 CJK UNIFIED IDEOGRAPH-8363 0x8364 荤 CJK UNIFIED IDEOGRAPH-8364 0x8365 荥 CJK UNIFIED IDEOGRAPH-8365 0x8367 荧 CJK UNIFIED IDEOGRAPH-8367 0x8368 荨 CJK UNIFIED IDEOGRAPH-8368 0x836A 荪 CJK UNIFIED IDEOGRAPH-836A 0x836B 荫 CJK UNIFIED IDEOGRAPH-836B 0x836D 荭 CJK UNIFIED IDEOGRAPH-836D 0x836F 药 CJK UNIFIED IDEOGRAPH-836F 0x8377 荷 CJK UNIFIED IDEOGRAPH-8377 0x8378 荸 CJK UNIFIED IDEOGRAPH-8378 0x837B 荻 CJK UNIFIED IDEOGRAPH-837B 0x837C 荼 CJK UNIFIED IDEOGRAPH-837C 0x837D 荽 CJK UNIFIED IDEOGRAPH-837D 0x8385 莅 CJK UNIFIED IDEOGRAPH-8385 0x8386 莆 CJK UNIFIED IDEOGRAPH-8386 0x8389 莉 CJK UNIFIED IDEOGRAPH-8389 0x838A 莊 CJK UNIFIED IDEOGRAPH-838A 0x838E 莎 CJK UNIFIED IDEOGRAPH-838E 0x8392 莒 CJK UNIFIED IDEOGRAPH-8392 0x8393 莓 CJK UNIFIED IDEOGRAPH-8393 0x8396 莖 CJK UNIFIED IDEOGRAPH-8396 0x8398 莘 CJK UNIFIED IDEOGRAPH-8398 0x839C 莜 CJK UNIFIED IDEOGRAPH-839C 0x839E 莞 CJK UNIFIED IDEOGRAPH-839E 0x83A0 莠 CJK UNIFIED IDEOGRAPH-83A0 0x83A8 莨 CJK UNIFIED IDEOGRAPH-83A8 0x83AA 莪 CJK UNIFIED IDEOGRAPH-83AA 0x83AB 莫 CJK UNIFIED IDEOGRAPH-83AB 0x83B1 莱 CJK UNIFIED IDEOGRAPH-83B1 0x83B2 莲 CJK UNIFIED IDEOGRAPH-83B2 0x83B3 莳 CJK UNIFIED IDEOGRAPH-83B3 0x83B4 莴 CJK UNIFIED IDEOGRAPH-83B4 0x83B7 获 CJK UNIFIED IDEOGRAPH-83B7 0x83B9 莹 CJK UNIFIED IDEOGRAPH-83B9 0x83BA 莺 CJK UNIFIED IDEOGRAPH-83BA 0x83BC 莼 CJK UNIFIED IDEOGRAPH-83BC 0x83BD 莽 CJK UNIFIED IDEOGRAPH-83BD 0x83C0 菀 CJK UNIFIED IDEOGRAPH-83C0 0x83C1 菁 CJK UNIFIED IDEOGRAPH-83C1 0x83C5 菅 CJK UNIFIED IDEOGRAPH-83C5 0x83C7 菇 CJK UNIFIED IDEOGRAPH-83C7 0x83C8 菈 CJK UNIFIED IDEOGRAPH-83C8 0x83CA 菊 CJK UNIFIED IDEOGRAPH-83CA 0x83CC 菌 CJK UNIFIED IDEOGRAPH-83CC 0x83CF 菏 CJK UNIFIED IDEOGRAPH-83CF 0x83D3 菓 CJK UNIFIED IDEOGRAPH-83D3 0x83D4 菔 CJK UNIFIED IDEOGRAPH-83D4 0x83D6 菖 CJK UNIFIED IDEOGRAPH-83D6 0x83D8 菘 CJK UNIFIED IDEOGRAPH-83D8 0x83DC 菜 CJK UNIFIED IDEOGRAPH-83DC 0x83DF 菟 CJK UNIFIED IDEOGRAPH-83DF 0x83E0 菠 CJK UNIFIED IDEOGRAPH-83E0 0x83E1 菡 CJK UNIFIED IDEOGRAPH-83E1 0x83E9 菩 CJK UNIFIED IDEOGRAPH-83E9 0x83EF 華 CJK UNIFIED IDEOGRAPH-83EF 0x83F0 菰 CJK UNIFIED IDEOGRAPH-83F0 0x83F1 菱 CJK UNIFIED IDEOGRAPH-83F1 0x83F2 菲 CJK UNIFIED IDEOGRAPH-83F2 0x83F8 菸 CJK UNIFIED IDEOGRAPH-83F8 0x83FD 菽 CJK UNIFIED IDEOGRAPH-83FD 0x8401 萁 CJK UNIFIED IDEOGRAPH-8401 0x8403 萃 CJK UNIFIED IDEOGRAPH-8403 0x8404 萄 CJK UNIFIED IDEOGRAPH-8404 0x840A 萊 CJK UNIFIED IDEOGRAPH-840A 0x840B 萋 CJK UNIFIED IDEOGRAPH-840B 0x840C 萌 CJK UNIFIED IDEOGRAPH-840C 0x840D 萍 CJK UNIFIED IDEOGRAPH-840D 0x840E 萎 CJK UNIFIED IDEOGRAPH-840E 0x8418 萘 CJK UNIFIED IDEOGRAPH-8418 0x841C 萜 CJK UNIFIED IDEOGRAPH-841C 0x841D 萝 CJK UNIFIED IDEOGRAPH-841D 0x8424 萤 CJK UNIFIED IDEOGRAPH-8424 0x8425 营 CJK UNIFIED IDEOGRAPH-8425 0x8426 萦 CJK UNIFIED IDEOGRAPH-8426 0x8427 萧 CJK UNIFIED IDEOGRAPH-8427 0x8428 萨 CJK UNIFIED IDEOGRAPH-8428 0x8429 萩 CJK UNIFIED IDEOGRAPH-8429 0x842C 萬 CJK UNIFIED IDEOGRAPH-842C 0x8431 萱 CJK UNIFIED IDEOGRAPH-8431 0x8438 萸 CJK UNIFIED IDEOGRAPH-8438 0x843C 萼 CJK UNIFIED IDEOGRAPH-843C 0x843D 落 CJK UNIFIED IDEOGRAPH-843D 0x8446 葆 CJK UNIFIED IDEOGRAPH-8446 0x8449 葉 CJK UNIFIED IDEOGRAPH-8449 0x8451 葑 CJK UNIFIED IDEOGRAPH-8451 0x8457 著 CJK UNIFIED IDEOGRAPH-8457 0x845A 葚 CJK UNIFIED IDEOGRAPH-845A 0x845B 葛 CJK UNIFIED IDEOGRAPH-845B 0x8461 葡 CJK UNIFIED IDEOGRAPH-8461 0x8463 董 CJK UNIFIED IDEOGRAPH-8463 0x8469 葩 CJK UNIFIED IDEOGRAPH-8469 0x846B 葫 CJK UNIFIED IDEOGRAPH-846B 0x846C 葬 CJK UNIFIED IDEOGRAPH-846C 0x846D 葭 CJK UNIFIED IDEOGRAPH-846D 0x8471 葱 CJK UNIFIED IDEOGRAPH-8471 0x8473 葳 CJK UNIFIED IDEOGRAPH-8473 0x8475 葵 CJK UNIFIED IDEOGRAPH-8475 0x8476 葶 CJK UNIFIED IDEOGRAPH-8476 0x847A 葺 CJK UNIFIED IDEOGRAPH-847A 0x8482 蒂 CJK UNIFIED IDEOGRAPH-8482 0x848B 蒋 CJK UNIFIED IDEOGRAPH-848B 0x848C 蒌 CJK UNIFIED IDEOGRAPH-848C 0x8490 蒐 CJK UNIFIED IDEOGRAPH-8490 0x8497 蒗 CJK UNIFIED IDEOGRAPH-8497 0x8499 蒙 CJK UNIFIED IDEOGRAPH-8499 0x849C 蒜 CJK UNIFIED IDEOGRAPH-849C 0x849F 蒟 CJK UNIFIED IDEOGRAPH-849F 0x84A1 蒡 CJK UNIFIED IDEOGRAPH-84A1 0x84AF 蒯 CJK UNIFIED IDEOGRAPH-84AF 0x84B2 蒲 CJK UNIFIED IDEOGRAPH-84B2 0x84B4 蒴 CJK UNIFIED IDEOGRAPH-84B4 0x84B8 蒸 CJK UNIFIED IDEOGRAPH-84B8 0x84B9 蒹 CJK UNIFIED IDEOGRAPH-84B9 0x84BA 蒺 CJK UNIFIED IDEOGRAPH-84BA 0x84BB 蒻 CJK UNIFIED IDEOGRAPH-84BB 0x84BC 蒼 CJK UNIFIED IDEOGRAPH-84BC 0x84BD 蒽 CJK UNIFIED IDEOGRAPH-84BD 0x84BF 蒿 CJK UNIFIED IDEOGRAPH-84BF 0x84C1 蓁 CJK UNIFIED IDEOGRAPH-84C1 0x84C4 蓄 CJK UNIFIED IDEOGRAPH-84C4 0x84C9 蓉 CJK UNIFIED IDEOGRAPH-84C9 0x84CB 蓋 CJK UNIFIED IDEOGRAPH-84CB 0x84D1 蓑 CJK UNIFIED IDEOGRAPH-84D1 0x84D3 蓓 CJK UNIFIED IDEOGRAPH-84D3 0x84D6 蓖 CJK UNIFIED IDEOGRAPH-84D6 0x84DD 蓝 CJK UNIFIED IDEOGRAPH-84DD 0x84DF 蓟 CJK UNIFIED IDEOGRAPH-84DF 0x84E5 蓥 CJK UNIFIED IDEOGRAPH-84E5 0x84E6 蓦 CJK UNIFIED IDEOGRAPH-84E6 0x84EC 蓬 CJK UNIFIED IDEOGRAPH-84EC 0x84EE 蓮 CJK UNIFIED IDEOGRAPH-84EE 0x84FC 蓼 CJK UNIFIED IDEOGRAPH-84FC 0x84FF 蓿 CJK UNIFIED IDEOGRAPH-84FF 0x8511 蔑 CJK UNIFIED IDEOGRAPH-8511 0x8513 蔓 CJK UNIFIED IDEOGRAPH-8513 0x8514 蔔 CJK UNIFIED IDEOGRAPH-8514 0x8517 蔗 CJK UNIFIED IDEOGRAPH-8517 0x851A 蔚 CJK UNIFIED IDEOGRAPH-851A 0x8521 蔡 CJK UNIFIED IDEOGRAPH-8521 0x8523 蔣 CJK UNIFIED IDEOGRAPH-8523 0x852B 蔫 CJK UNIFIED IDEOGRAPH-852B 0x852C 蔬 CJK UNIFIED IDEOGRAPH-852C 0x8535 蔵 CJK UNIFIED IDEOGRAPH-8535 0x8537 蔷 CJK UNIFIED IDEOGRAPH-8537 0x853A 蔺 CJK UNIFIED IDEOGRAPH-853A 0x853B 蔻 CJK UNIFIED IDEOGRAPH-853B 0x853C 蔼 CJK UNIFIED IDEOGRAPH-853C 0x853D 蔽 CJK UNIFIED IDEOGRAPH-853D 0x8543 蕃 CJK UNIFIED IDEOGRAPH-8543 0x8548 蕈 CJK UNIFIED IDEOGRAPH-8548 0x8549 蕉 CJK UNIFIED IDEOGRAPH-8549 0x854A 蕊 CJK UNIFIED IDEOGRAPH-854A 0x8556 蕖 CJK UNIFIED IDEOGRAPH-8556 0x8559 蕙 CJK UNIFIED IDEOGRAPH-8559 0x855E 蕞 CJK UNIFIED IDEOGRAPH-855E 0x8564 蕤 CJK UNIFIED IDEOGRAPH-8564 0x8568 蕨 CJK UNIFIED IDEOGRAPH-8568 0x8569 蕩 CJK UNIFIED IDEOGRAPH-8569 0x856D 蕭 CJK UNIFIED IDEOGRAPH-856D 0x8572 蕲 CJK UNIFIED IDEOGRAPH-8572 0x8574 蕴 CJK UNIFIED IDEOGRAPH-8574 0x857B 蕻 CJK UNIFIED IDEOGRAPH-857B 0x857E 蕾 CJK UNIFIED IDEOGRAPH-857E 0x8584 薄 CJK UNIFIED IDEOGRAPH-8584 0x8585 薅 CJK UNIFIED IDEOGRAPH-8585 0x8587 薇 CJK UNIFIED IDEOGRAPH-8587 0x858F 薏 CJK UNIFIED IDEOGRAPH-858F 0x8599 薙 CJK UNIFIED IDEOGRAPH-8599 0x859B 薛 CJK UNIFIED IDEOGRAPH-859B 0x859C 薜 CJK UNIFIED IDEOGRAPH-859C 0x85A6 薦 CJK UNIFIED IDEOGRAPH-85A6 0x85A8 薨 CJK UNIFIED IDEOGRAPH-85A8 0x85A9 薩 CJK UNIFIED IDEOGRAPH-85A9 0x85AA 薪 CJK UNIFIED IDEOGRAPH-85AA 0x85AB 薫 CJK UNIFIED IDEOGRAPH-85AB 0x85AC 薬 CJK UNIFIED IDEOGRAPH-85AC 0x85AE 薮 CJK UNIFIED IDEOGRAPH-85AE 0x85AF 薯 CJK UNIFIED IDEOGRAPH-85AF 0x85B0 薰 CJK UNIFIED IDEOGRAPH-85B0 0x85B9 薹 CJK UNIFIED IDEOGRAPH-85B9 0x85C1 藁 CJK UNIFIED IDEOGRAPH-85C1 0x85C9 藉 CJK UNIFIED IDEOGRAPH-85C9 0x85CD 藍 CJK UNIFIED IDEOGRAPH-85CD 0x85CF 藏 CJK UNIFIED IDEOGRAPH-85CF 0x85D0 藐 CJK UNIFIED IDEOGRAPH-85D0 0x85D3 藓 CJK UNIFIED IDEOGRAPH-85D3 0x85D5 藕 CJK UNIFIED IDEOGRAPH-85D5 0x85DC 藜 CJK UNIFIED IDEOGRAPH-85DC 0x85DD 藝 CJK UNIFIED IDEOGRAPH-85DD 0x85E4 藤 CJK UNIFIED IDEOGRAPH-85E4 0x85E5 藥 CJK UNIFIED IDEOGRAPH-85E5 0x85E9 藩 CJK UNIFIED IDEOGRAPH-85E9 0x85FB 藻 CJK UNIFIED IDEOGRAPH-85FB 0x85FF 藿 CJK UNIFIED IDEOGRAPH-85FF 0x8605 蘅 CJK UNIFIED IDEOGRAPH-8605 0x8606 蘆 CJK UNIFIED IDEOGRAPH-8606 0x8607 蘇 CJK UNIFIED IDEOGRAPH-8607 0x860B 蘋 CJK UNIFIED IDEOGRAPH-860B 0x8611 蘑 CJK UNIFIED IDEOGRAPH-8611 0x8616 蘖 CJK UNIFIED IDEOGRAPH-8616 0x862D 蘭 CJK UNIFIED IDEOGRAPH-862D 0x8638 蘸 CJK UNIFIED IDEOGRAPH-8638 0x863C 蘼 CJK UNIFIED IDEOGRAPH-863C 0x863F 蘿 CJK UNIFIED IDEOGRAPH-863F 0x864E 虎 CJK UNIFIED IDEOGRAPH-864E 0x864F 虏 CJK UNIFIED IDEOGRAPH-864F 0x8650 虐 CJK UNIFIED IDEOGRAPH-8650 0x8651 虑 CJK UNIFIED IDEOGRAPH-8651 0x8654 虔 CJK UNIFIED IDEOGRAPH-8654 0x8655 處 CJK UNIFIED IDEOGRAPH-8655 0x865A 虚 CJK UNIFIED IDEOGRAPH-865A 0x865B 虛 CJK UNIFIED IDEOGRAPH-865B 0x865E 虞 CJK UNIFIED IDEOGRAPH-865E 0x865F 號 CJK UNIFIED IDEOGRAPH-865F 0x8662 虢 CJK UNIFIED IDEOGRAPH-8662 0x866B 虫 CJK UNIFIED IDEOGRAPH-866B 0x866C 虬 CJK UNIFIED IDEOGRAPH-866C 0x8671 虱 CJK UNIFIED IDEOGRAPH-8671 0x8679 虹 CJK UNIFIED IDEOGRAPH-8679 0x867B 虻 CJK UNIFIED IDEOGRAPH-867B 0x867D 虽 CJK UNIFIED IDEOGRAPH-867D 0x867E 虾 CJK UNIFIED IDEOGRAPH-867E 0x8680 蚀 CJK UNIFIED IDEOGRAPH-8680 0x8681 蚁 CJK UNIFIED IDEOGRAPH-8681 0x8682 蚂 CJK UNIFIED IDEOGRAPH-8682 0x868A 蚊 CJK UNIFIED IDEOGRAPH-868A 0x868C 蚌 CJK UNIFIED IDEOGRAPH-868C 0x8693 蚓 CJK UNIFIED IDEOGRAPH-8693 0x8695 蚕 CJK UNIFIED IDEOGRAPH-8695 0x869C 蚜 CJK UNIFIED IDEOGRAPH-869C 0x869D 蚝 CJK UNIFIED IDEOGRAPH-869D 0x86A3 蚣 CJK UNIFIED IDEOGRAPH-86A3 0x86A4 蚤 CJK UNIFIED IDEOGRAPH-86A4 0x86A7 蚧 CJK UNIFIED IDEOGRAPH-86A7 0x86A9 蚩 CJK UNIFIED IDEOGRAPH-86A9 0x86AA 蚪 CJK UNIFIED IDEOGRAPH-86AA 0x86AC 蚬 CJK UNIFIED IDEOGRAPH-86AC 0x86AF 蚯 CJK UNIFIED IDEOGRAPH-86AF 0x86B1 蚱 CJK UNIFIED IDEOGRAPH-86B1 0x86B5 蚵 CJK UNIFIED IDEOGRAPH-86B5 0x86B6 蚶 CJK UNIFIED IDEOGRAPH-86B6 0x86C0 蛀 CJK UNIFIED IDEOGRAPH-86C0 0x86C4 蛄 CJK UNIFIED IDEOGRAPH-86C4 0x86C6 蛆 CJK UNIFIED IDEOGRAPH-86C6 0x86C7 蛇 CJK UNIFIED IDEOGRAPH-86C7 0x86C9 蛉 CJK UNIFIED IDEOGRAPH-86C9 0x86CA 蛊 CJK UNIFIED IDEOGRAPH-86CA 0x86CB 蛋 CJK UNIFIED IDEOGRAPH-86CB 0x86CE 蛎 CJK UNIFIED IDEOGRAPH-86CE 0x86CF 蛏 CJK UNIFIED IDEOGRAPH-86CF 0x86D0 蛐 CJK UNIFIED IDEOGRAPH-86D0 0x86D4 蛔 CJK UNIFIED IDEOGRAPH-86D4 0x86D9 蛙 CJK UNIFIED IDEOGRAPH-86D9 0x86DB 蛛 CJK UNIFIED IDEOGRAPH-86DB 0x86DE 蛞 CJK UNIFIED IDEOGRAPH-86DE 0x86DF 蛟 CJK UNIFIED IDEOGRAPH-86DF 0x86E4 蛤 CJK UNIFIED IDEOGRAPH-86E4 0x86E6 蛦 CJK UNIFIED IDEOGRAPH-86E6 0x86ED 蛭 CJK UNIFIED IDEOGRAPH-86ED 0x86EE 蛮 CJK UNIFIED IDEOGRAPH-86EE 0x86F0 蛰 CJK UNIFIED IDEOGRAPH-86F0 0x86F3 蛳 CJK UNIFIED IDEOGRAPH-86F3 0x86F9 蛹 CJK UNIFIED IDEOGRAPH-86F9 0x86FE 蛾 CJK UNIFIED IDEOGRAPH-86FE 0x8700 蜀 CJK UNIFIED IDEOGRAPH-8700 0x8702 蜂 CJK UNIFIED IDEOGRAPH-8702 0x8703 蜃 CJK UNIFIED IDEOGRAPH-8703 0x8707 蜇 CJK UNIFIED IDEOGRAPH-8707 0x8708 蜈 CJK UNIFIED IDEOGRAPH-8708 0x8709 蜉 CJK UNIFIED IDEOGRAPH-8709 0x870A 蜊 CJK UNIFIED IDEOGRAPH-870A 0x870D 蜍 CJK UNIFIED IDEOGRAPH-870D 0x8712 蜒 CJK UNIFIED IDEOGRAPH-8712 0x8713 蜓 CJK UNIFIED IDEOGRAPH-8713 0x8715 蜕 CJK UNIFIED IDEOGRAPH-8715 0x8717 蜗 CJK UNIFIED IDEOGRAPH-8717 0x8718 蜘 CJK UNIFIED IDEOGRAPH-8718 0x871A 蜚 CJK UNIFIED IDEOGRAPH-871A 0x871C 蜜 CJK UNIFIED IDEOGRAPH-871C 0x8721 蜡 CJK UNIFIED IDEOGRAPH-8721 0x8722 蜢 CJK UNIFIED IDEOGRAPH-8722 0x8725 蜥 CJK UNIFIED IDEOGRAPH-8725 0x8731 蜱 CJK UNIFIED IDEOGRAPH-8731 0x8734 蜴 CJK UNIFIED IDEOGRAPH-8734 0x8737 蜷 CJK UNIFIED IDEOGRAPH-8737 0x873B 蜻 CJK UNIFIED IDEOGRAPH-873B 0x873F 蜿 CJK UNIFIED IDEOGRAPH-873F 0x8747 蝇 CJK UNIFIED IDEOGRAPH-8747 0x8748 蝈 CJK UNIFIED IDEOGRAPH-8748 0x8749 蝉 CJK UNIFIED IDEOGRAPH-8749 0x874C 蝌 CJK UNIFIED IDEOGRAPH-874C 0x874E 蝎 CJK UNIFIED IDEOGRAPH-874E 0x8753 蝓 CJK UNIFIED IDEOGRAPH-8753 0x8757 蝗 CJK UNIFIED IDEOGRAPH-8757 0x8759 蝙 CJK UNIFIED IDEOGRAPH-8759 0x8760 蝠 CJK UNIFIED IDEOGRAPH-8760 0x8763 蝣 CJK UNIFIED IDEOGRAPH-8763 0x8766 蝦 CJK UNIFIED IDEOGRAPH-8766 0x876E 蝮 CJK UNIFIED IDEOGRAPH-876E 0x8770 蝰 CJK UNIFIED IDEOGRAPH-8770 0x8774 蝴 CJK UNIFIED IDEOGRAPH-8774 0x8776 蝶 CJK UNIFIED IDEOGRAPH-8776 0x877C 蝼 CJK UNIFIED IDEOGRAPH-877C 0x877E 蝾 CJK UNIFIED IDEOGRAPH-877E 0x8782 螂 CJK UNIFIED IDEOGRAPH-8782 0x8783 螃 CJK UNIFIED IDEOGRAPH-8783 0x8788 螈 CJK UNIFIED IDEOGRAPH-8788 0x878D 融 CJK UNIFIED IDEOGRAPH-878D 0x879F 螟 CJK UNIFIED IDEOGRAPH-879F 0x87A2 螢 CJK UNIFIED IDEOGRAPH-87A2 0x87A8 螨 CJK UNIFIED IDEOGRAPH-87A8 0x87AD 螭 CJK UNIFIED IDEOGRAPH-87AD 0x87AF 螯 CJK UNIFIED IDEOGRAPH-87AF 0x87B3 螳 CJK UNIFIED IDEOGRAPH-87B3 0x87BA 螺 CJK UNIFIED IDEOGRAPH-87BA 0x87C0 蟀 CJK UNIFIED IDEOGRAPH-87C0 0x87C6 蟆 CJK UNIFIED IDEOGRAPH-87C6 0x87CB 蟋 CJK UNIFIED IDEOGRAPH-87CB 0x87D1 蟑 CJK UNIFIED IDEOGRAPH-87D1 0x87D2 蟒 CJK UNIFIED IDEOGRAPH-87D2 0x87E0 蟠 CJK UNIFIED IDEOGRAPH-87E0 0x87F2 蟲 CJK UNIFIED IDEOGRAPH-87F2 0x87F9 蟹 CJK UNIFIED IDEOGRAPH-87F9 0x87FE 蟾 CJK UNIFIED IDEOGRAPH-87FE 0x8815 蠕 CJK UNIFIED IDEOGRAPH-8815 0x881B 蠛 CJK UNIFIED IDEOGRAPH-881B 0x881F 蠟 CJK UNIFIED IDEOGRAPH-881F 0x8821 蠡 CJK UNIFIED IDEOGRAPH-8821 0x8822 蠢 CJK UNIFIED IDEOGRAPH-8822 0x8839 蠹 CJK UNIFIED IDEOGRAPH-8839 0x883B 蠻 CJK UNIFIED IDEOGRAPH-883B 0x8840 血 CJK UNIFIED IDEOGRAPH-8840 0x8844 衄 CJK UNIFIED IDEOGRAPH-8844 0x8845 衅 CJK UNIFIED IDEOGRAPH-8845 0x8846 衆 CJK UNIFIED IDEOGRAPH-8846 0x884C 行 CJK UNIFIED IDEOGRAPH-884C 0x884D 衍 CJK UNIFIED IDEOGRAPH-884D 0x8853 術 CJK UNIFIED IDEOGRAPH-8853 0x8854 衔 CJK UNIFIED IDEOGRAPH-8854 0x8857 街 CJK UNIFIED IDEOGRAPH-8857 0x8859 衙 CJK UNIFIED IDEOGRAPH-8859 0x885B 衛 CJK UNIFIED IDEOGRAPH-885B 0x885D 衝 CJK UNIFIED IDEOGRAPH-885D 0x8861 衡 CJK UNIFIED IDEOGRAPH-8861 0x8862 衢 CJK UNIFIED IDEOGRAPH-8862 0x8863 衣 CJK UNIFIED IDEOGRAPH-8863 0x8865 补 CJK UNIFIED IDEOGRAPH-8865 0x8868 表 CJK UNIFIED IDEOGRAPH-8868 0x8869 衩 CJK UNIFIED IDEOGRAPH-8869 0x886B 衫 CJK UNIFIED IDEOGRAPH-886B 0x886C 衬 CJK UNIFIED IDEOGRAPH-886C 0x886E 衮 CJK UNIFIED IDEOGRAPH-886E 0x8870 衰 CJK UNIFIED IDEOGRAPH-8870 0x8872 衲 CJK UNIFIED IDEOGRAPH-8872 0x8877 衷 CJK UNIFIED IDEOGRAPH-8877 0x887D 衽 CJK UNIFIED IDEOGRAPH-887D 0x887E 衾 CJK UNIFIED IDEOGRAPH-887E 0x887F 衿 CJK UNIFIED IDEOGRAPH-887F 0x8881 袁 CJK UNIFIED IDEOGRAPH-8881 0x8882 袂 CJK UNIFIED IDEOGRAPH-8882 0x8884 袄 CJK UNIFIED IDEOGRAPH-8884 0x8885 袅 CJK UNIFIED IDEOGRAPH-8885 0x8888 袈 CJK UNIFIED IDEOGRAPH-8888 0x888B 袋 CJK UNIFIED IDEOGRAPH-888B 0x888D 袍 CJK UNIFIED IDEOGRAPH-888D 0x8892 袒 CJK UNIFIED IDEOGRAPH-8892 0x8896 袖 CJK UNIFIED IDEOGRAPH-8896 0x889C 袜 CJK UNIFIED IDEOGRAPH-889C 0x88A2 袢 CJK UNIFIED IDEOGRAPH-88A2 0x88A4 袤 CJK UNIFIED IDEOGRAPH-88A4 0x88AA 袪 CJK UNIFIED IDEOGRAPH-88AA 0x88AB 被 CJK UNIFIED IDEOGRAPH-88AB 0x88AD 袭 CJK UNIFIED IDEOGRAPH-88AD 0x88B1 袱 CJK UNIFIED IDEOGRAPH-88B1 0x88C1 裁 CJK UNIFIED IDEOGRAPH-88C1 0x88C2 裂 CJK UNIFIED IDEOGRAPH-88C2 0x88C5 装 CJK UNIFIED IDEOGRAPH-88C5 0x88C6 裆 CJK UNIFIED IDEOGRAPH-88C6 0x88CF 裏 CJK UNIFIED IDEOGRAPH-88CF 0x88D4 裔 CJK UNIFIED IDEOGRAPH-88D4 0x88D5 裕 CJK UNIFIED IDEOGRAPH-88D5 0x88D8 裘 CJK UNIFIED IDEOGRAPH-88D8 0x88D9 裙 CJK UNIFIED IDEOGRAPH-88D9 0x88DC 補 CJK UNIFIED IDEOGRAPH-88DC 0x88DD 裝 CJK UNIFIED IDEOGRAPH-88DD 0x88DF 裟 CJK UNIFIED IDEOGRAPH-88DF 0x88E1 裡 CJK UNIFIED IDEOGRAPH-88E1 0x88E4 裤 CJK UNIFIED IDEOGRAPH-88E4 0x88E8 裨 CJK UNIFIED IDEOGRAPH-88E8 0x88F1 裱 CJK UNIFIED IDEOGRAPH-88F1 0x88F3 裳 CJK UNIFIED IDEOGRAPH-88F3 0x88F4 裴 CJK UNIFIED IDEOGRAPH-88F4 0x88F8 裸 CJK UNIFIED IDEOGRAPH-88F8 0x88F9 裹 CJK UNIFIED IDEOGRAPH-88F9 0x88FD 製 CJK UNIFIED IDEOGRAPH-88FD 0x88FE 裾 CJK UNIFIED IDEOGRAPH-88FE 0x8902 褂 CJK UNIFIED IDEOGRAPH-8902 0x8907 複 CJK UNIFIED IDEOGRAPH-8907 0x8910 褐 CJK UNIFIED IDEOGRAPH-8910 0x8912 褒 CJK UNIFIED IDEOGRAPH-8912 0x8913 褓 CJK UNIFIED IDEOGRAPH-8913 0x8914 褔 CJK UNIFIED IDEOGRAPH-8914 0x891A 褚 CJK UNIFIED IDEOGRAPH-891A 0x891B 褛 CJK UNIFIED IDEOGRAPH-891B 0x8925 褥 CJK UNIFIED IDEOGRAPH-8925 0x892A 褪 CJK UNIFIED IDEOGRAPH-892A 0x8930 褰 CJK UNIFIED IDEOGRAPH-8930 0x8932 褲 CJK UNIFIED IDEOGRAPH-8932 0x8934 褴 CJK UNIFIED IDEOGRAPH-8934 0x8936 褶 CJK UNIFIED IDEOGRAPH-8936 0x8941 襁 CJK UNIFIED IDEOGRAPH-8941 0x8944 襄 CJK UNIFIED IDEOGRAPH-8944 0x895E 襞 CJK UNIFIED IDEOGRAPH-895E 0x895F 襟 CJK UNIFIED IDEOGRAPH-895F 0x8966 襦 CJK UNIFIED IDEOGRAPH-8966 0x896A 襪 CJK UNIFIED IDEOGRAPH-896A 0x8972 襲 CJK UNIFIED IDEOGRAPH-8972 0x897F 西 CJK UNIFIED IDEOGRAPH-897F 0x8981 要 CJK UNIFIED IDEOGRAPH-8981 0x8983 覃 CJK UNIFIED IDEOGRAPH-8983 0x8986 覆 CJK UNIFIED IDEOGRAPH-8986 0x898B 見 CJK UNIFIED IDEOGRAPH-898B 0x898F 規 CJK UNIFIED IDEOGRAPH-898F 0x8996 視 CJK UNIFIED IDEOGRAPH-8996 0x899A 覚 CJK UNIFIED IDEOGRAPH-899A 0x89A1 覡 CJK UNIFIED IDEOGRAPH-89A1 0x89A7 覧 CJK UNIFIED IDEOGRAPH-89A7 0x89AA 親 CJK UNIFIED IDEOGRAPH-89AA 0x89B3 観 CJK UNIFIED IDEOGRAPH-89B3 0x89BA 覺 CJK UNIFIED IDEOGRAPH-89BA 0x89BD 覽 CJK UNIFIED IDEOGRAPH-89BD 0x89C0 觀 CJK UNIFIED IDEOGRAPH-89C0 0x89C1 见 CJK UNIFIED IDEOGRAPH-89C1 0x89C2 观 CJK UNIFIED IDEOGRAPH-89C2 0x89C4 规 CJK UNIFIED IDEOGRAPH-89C4 0x89C5 觅 CJK UNIFIED IDEOGRAPH-89C5 0x89C6 视 CJK UNIFIED IDEOGRAPH-89C6 0x89C8 览 CJK UNIFIED IDEOGRAPH-89C8 0x89C9 觉 CJK UNIFIED IDEOGRAPH-89C9 0x89CA 觊 CJK UNIFIED IDEOGRAPH-89CA 0x89CE 觎 CJK UNIFIED IDEOGRAPH-89CE 0x89D0 觐 CJK UNIFIED IDEOGRAPH-89D0 0x89D1 觑 CJK UNIFIED IDEOGRAPH-89D1 0x89D2 角 CJK UNIFIED IDEOGRAPH-89D2 0x89DA 觚 CJK UNIFIED IDEOGRAPH-89DA 0x89DE 觞 CJK UNIFIED IDEOGRAPH-89DE 0x89E3 解 CJK UNIFIED IDEOGRAPH-89E3 0x89E5 觥 CJK UNIFIED IDEOGRAPH-89E5 0x89E6 触 CJK UNIFIED IDEOGRAPH-89E6 0x89F8 觸 CJK UNIFIED IDEOGRAPH-89F8 0x8A00 言 CJK UNIFIED IDEOGRAPH-8A00 0x8A02 訂 CJK UNIFIED IDEOGRAPH-8A02 0x8A08 計 CJK UNIFIED IDEOGRAPH-8A08 0x8A0A 訊 CJK UNIFIED IDEOGRAPH-8A0A 0x8A0E 討 CJK UNIFIED IDEOGRAPH-8A0E 0x8A13 訓 CJK UNIFIED IDEOGRAPH-8A13 0x8A15 訕 CJK UNIFIED IDEOGRAPH-8A15 0x8A17 託 CJK UNIFIED IDEOGRAPH-8A17 0x8A18 記 CJK UNIFIED IDEOGRAPH-8A18 0x8A23 訣 CJK UNIFIED IDEOGRAPH-8A23 0x8A2A 訪 CJK UNIFIED IDEOGRAPH-8A2A 0x8A2B 訫 CJK UNIFIED IDEOGRAPH-8A2B 0x8A2D 設 CJK UNIFIED IDEOGRAPH-8A2D 0x8A31 許 CJK UNIFIED IDEOGRAPH-8A31 0x8A33 訳 CJK UNIFIED IDEOGRAPH-8A33 0x8A34 訴 CJK UNIFIED IDEOGRAPH-8A34 0x8A3A 診 CJK UNIFIED IDEOGRAPH-8A3A 0x8A3B 註 CJK UNIFIED IDEOGRAPH-8A3B 0x8A3C 証 CJK UNIFIED IDEOGRAPH-8A3C 0x8A3E 訾 CJK UNIFIED IDEOGRAPH-8A3E 0x8A55 評 CJK UNIFIED IDEOGRAPH-8A55 0x8A5E 詞 CJK UNIFIED IDEOGRAPH-8A5E 0x8A60 詠 CJK UNIFIED IDEOGRAPH-8A60 0x8A62 詢 CJK UNIFIED IDEOGRAPH-8A62 0x8A66 試 CJK UNIFIED IDEOGRAPH-8A66 0x8A69 詩 CJK UNIFIED IDEOGRAPH-8A69 0x8A71 話 CJK UNIFIED IDEOGRAPH-8A71 0x8A72 該 CJK UNIFIED IDEOGRAPH-8A72 0x8A73 詳 CJK UNIFIED IDEOGRAPH-8A73 0x8A79 詹 CJK UNIFIED IDEOGRAPH-8A79 0x8A87 誇 CJK UNIFIED IDEOGRAPH-8A87 0x8A89 誉 CJK UNIFIED IDEOGRAPH-8A89 0x8A8A 誊 CJK UNIFIED IDEOGRAPH-8A8A 0x8A8C 誌 CJK UNIFIED IDEOGRAPH-8A8C 0x8A8D 認 CJK UNIFIED IDEOGRAPH-8A8D 0x8A93 誓 CJK UNIFIED IDEOGRAPH-8A93 0x8A95 誕 CJK UNIFIED IDEOGRAPH-8A95 0x8A98 誘 CJK UNIFIED IDEOGRAPH-8A98 0x8A9E 語 CJK UNIFIED IDEOGRAPH-8A9E 0x8AA0 誠 CJK UNIFIED IDEOGRAPH-8AA0 0x8AA4 誤 CJK UNIFIED IDEOGRAPH-8AA4 0x8AAA 說 CJK UNIFIED IDEOGRAPH-8AAA 0x8AAC 説 CJK UNIFIED IDEOGRAPH-8AAC 0x8AAD 読 CJK UNIFIED IDEOGRAPH-8AAD 0x8AB0 誰 CJK UNIFIED IDEOGRAPH-8AB0 0x8AB2 課 CJK UNIFIED IDEOGRAPH-8AB2 0x8ABC 誼 CJK UNIFIED IDEOGRAPH-8ABC 0x8ABF 調 CJK UNIFIED IDEOGRAPH-8ABF 0x8AC7 談 CJK UNIFIED IDEOGRAPH-8AC7 0x8ACB 請 CJK UNIFIED IDEOGRAPH-8ACB 0x8AD2 諒 CJK UNIFIED IDEOGRAPH-8AD2 0x8AD6 論 CJK UNIFIED IDEOGRAPH-8AD6 0x8ADC 諜 CJK UNIFIED IDEOGRAPH-8ADC 0x8AE7 諧 CJK UNIFIED IDEOGRAPH-8AE7 0x8AEE 諮 CJK UNIFIED IDEOGRAPH-8AEE 0x8AF8 諸 CJK UNIFIED IDEOGRAPH-8AF8 0x8AFE 諾 CJK UNIFIED IDEOGRAPH-8AFE 0x8B00 謀 CJK UNIFIED IDEOGRAPH-8B00 0x8B02 謂 CJK UNIFIED IDEOGRAPH-8B02 0x8B07 謇 CJK UNIFIED IDEOGRAPH-8B07 0x8B0E 謎 CJK UNIFIED IDEOGRAPH-8B0E 0x8B17 謗 CJK UNIFIED IDEOGRAPH-8B17 0x8B19 謙 CJK UNIFIED IDEOGRAPH-8B19 0x8B1B 講 CJK UNIFIED IDEOGRAPH-8B1B 0x8B1D 謝 CJK UNIFIED IDEOGRAPH-8B1D 0x8B20 謠 CJK UNIFIED IDEOGRAPH-8B20 0x8B39 謹 CJK UNIFIED IDEOGRAPH-8B39 0x8B49 證 CJK UNIFIED IDEOGRAPH-8B49 0x8B58 識 CJK UNIFIED IDEOGRAPH-8B58 0x8B5A 譚 CJK UNIFIED IDEOGRAPH-8B5A 0x8B5C 譜 CJK UNIFIED IDEOGRAPH-8B5C 0x8B66 警 CJK UNIFIED IDEOGRAPH-8B66 0x8B6C 譬 CJK UNIFIED IDEOGRAPH-8B6C 0x8B6F 譯 CJK UNIFIED IDEOGRAPH-8B6F 0x8B70 議 CJK UNIFIED IDEOGRAPH-8B70 0x8B77 護 CJK UNIFIED IDEOGRAPH-8B77 0x8B7D 譽 CJK UNIFIED IDEOGRAPH-8B7D 0x8B80 讀 CJK UNIFIED IDEOGRAPH-8B80 0x8B8A 變 CJK UNIFIED IDEOGRAPH-8B8A 0x8B93 讓 CJK UNIFIED IDEOGRAPH-8B93 0x8B9A 讚 CJK UNIFIED IDEOGRAPH-8B9A 0x8BA1 计 CJK UNIFIED IDEOGRAPH-8BA1 0x8BA2 订 CJK UNIFIED IDEOGRAPH-8BA2 0x8BA3 讣 CJK UNIFIED IDEOGRAPH-8BA3 0x8BA4 认 CJK UNIFIED IDEOGRAPH-8BA4 0x8BA5 讥 CJK UNIFIED IDEOGRAPH-8BA5 0x8BA6 讦 CJK UNIFIED IDEOGRAPH-8BA6 0x8BA7 讧 CJK UNIFIED IDEOGRAPH-8BA7 0x8BA8 讨 CJK UNIFIED IDEOGRAPH-8BA8 0x8BA9 让 CJK UNIFIED IDEOGRAPH-8BA9 0x8BAA 讪 CJK UNIFIED IDEOGRAPH-8BAA 0x8BAB 讫 CJK UNIFIED IDEOGRAPH-8BAB 0x8BAD 训 CJK UNIFIED IDEOGRAPH-8BAD 0x8BAE 议 CJK UNIFIED IDEOGRAPH-8BAE 0x8BAF 讯 CJK UNIFIED IDEOGRAPH-8BAF 0x8BB0 记 CJK UNIFIED IDEOGRAPH-8BB0 0x8BB2 讲 CJK UNIFIED IDEOGRAPH-8BB2 0x8BB3 讳 CJK UNIFIED IDEOGRAPH-8BB3 0x8BB4 讴 CJK UNIFIED IDEOGRAPH-8BB4 0x8BB6 讶 CJK UNIFIED IDEOGRAPH-8BB6 0x8BB7 讷 CJK UNIFIED IDEOGRAPH-8BB7 0x8BB8 许 CJK UNIFIED IDEOGRAPH-8BB8 0x8BB9 讹 CJK UNIFIED IDEOGRAPH-8BB9 0x8BBA 论 CJK UNIFIED IDEOGRAPH-8BBA 0x8BBC 讼 CJK UNIFIED IDEOGRAPH-8BBC 0x8BBD 讽 CJK UNIFIED IDEOGRAPH-8BBD 0x8BBE 设 CJK UNIFIED IDEOGRAPH-8BBE 0x8BBF 访 CJK UNIFIED IDEOGRAPH-8BBF 0x8BC0 诀 CJK UNIFIED IDEOGRAPH-8BC0 0x8BC1 证 CJK UNIFIED IDEOGRAPH-8BC1 0x8BC2 诂 CJK UNIFIED IDEOGRAPH-8BC2 0x8BC3 诃 CJK UNIFIED IDEOGRAPH-8BC3 0x8BC4 评 CJK UNIFIED IDEOGRAPH-8BC4 0x8BC5 诅 CJK UNIFIED IDEOGRAPH-8BC5 0x8BC6 识 CJK UNIFIED IDEOGRAPH-8BC6 0x8BC8 诈 CJK UNIFIED IDEOGRAPH-8BC8 0x8BC9 诉 CJK UNIFIED IDEOGRAPH-8BC9 0x8BCA 诊 CJK UNIFIED IDEOGRAPH-8BCA 0x8BCB 诋 CJK UNIFIED IDEOGRAPH-8BCB 0x8BCC 诌 CJK UNIFIED IDEOGRAPH-8BCC 0x8BCD 词 CJK UNIFIED IDEOGRAPH-8BCD 0x8BCF 诏 CJK UNIFIED IDEOGRAPH-8BCF 0x8BD1 译 CJK UNIFIED IDEOGRAPH-8BD1 0x8BD2 诒 CJK UNIFIED IDEOGRAPH-8BD2 0x8BD3 诓 CJK UNIFIED IDEOGRAPH-8BD3 0x8BD5 试 CJK UNIFIED IDEOGRAPH-8BD5 0x8BD7 诗 CJK UNIFIED IDEOGRAPH-8BD7 0x8BD8 诘 CJK UNIFIED IDEOGRAPH-8BD8 0x8BD9 诙 CJK UNIFIED IDEOGRAPH-8BD9 0x8BDA 诚 CJK UNIFIED IDEOGRAPH-8BDA 0x8BDB 诛 CJK UNIFIED IDEOGRAPH-8BDB 0x8BDD 话 CJK UNIFIED IDEOGRAPH-8BDD 0x8BDE 诞 CJK UNIFIED IDEOGRAPH-8BDE 0x8BDF 诟 CJK UNIFIED IDEOGRAPH-8BDF 0x8BE0 诠 CJK UNIFIED IDEOGRAPH-8BE0 0x8BE1 诡 CJK UNIFIED IDEOGRAPH-8BE1 0x8BE2 询 CJK UNIFIED IDEOGRAPH-8BE2 0x8BE3 诣 CJK UNIFIED IDEOGRAPH-8BE3 0x8BE4 诤 CJK UNIFIED IDEOGRAPH-8BE4 0x8BE5 该 CJK UNIFIED IDEOGRAPH-8BE5 0x8BE6 详 CJK UNIFIED IDEOGRAPH-8BE6 0x8BE7 诧 CJK UNIFIED IDEOGRAPH-8BE7 0x8BE8 诨 CJK UNIFIED IDEOGRAPH-8BE8 0x8BE9 诩 CJK UNIFIED IDEOGRAPH-8BE9 0x8BEB 诫 CJK UNIFIED IDEOGRAPH-8BEB 0x8BEC 诬 CJK UNIFIED IDEOGRAPH-8BEC 0x8BED 语 CJK UNIFIED IDEOGRAPH-8BED 0x8BEF 误 CJK UNIFIED IDEOGRAPH-8BEF 0x8BF0 诰 CJK UNIFIED IDEOGRAPH-8BF0 0x8BF1 诱 CJK UNIFIED IDEOGRAPH-8BF1 0x8BF2 诲 CJK UNIFIED IDEOGRAPH-8BF2 0x8BF3 诳 CJK UNIFIED IDEOGRAPH-8BF3 0x8BF4 说 CJK UNIFIED IDEOGRAPH-8BF4 0x8BF5 诵 CJK UNIFIED IDEOGRAPH-8BF5 0x8BF6 诶 CJK UNIFIED IDEOGRAPH-8BF6 0x8BF7 请 CJK UNIFIED IDEOGRAPH-8BF7 0x8BF8 诸 CJK UNIFIED IDEOGRAPH-8BF8 0x8BF9 诹 CJK UNIFIED IDEOGRAPH-8BF9 0x8BFA 诺 CJK UNIFIED IDEOGRAPH-8BFA 0x8BFB 读 CJK UNIFIED IDEOGRAPH-8BFB 0x8BFD 诽 CJK UNIFIED IDEOGRAPH-8BFD 0x8BFE 课 CJK UNIFIED IDEOGRAPH-8BFE 0x8BFF 诿 CJK UNIFIED IDEOGRAPH-8BFF 0x8C00 谀 CJK UNIFIED IDEOGRAPH-8C00 0x8C01 谁 CJK UNIFIED IDEOGRAPH-8C01 0x8C02 谂 CJK UNIFIED IDEOGRAPH-8C02 0x8C03 调 CJK UNIFIED IDEOGRAPH-8C03 0x8C04 谄 CJK UNIFIED IDEOGRAPH-8C04 0x8C05 谅 CJK UNIFIED IDEOGRAPH-8C05 0x8C06 谆 CJK UNIFIED IDEOGRAPH-8C06 0x8C08 谈 CJK UNIFIED IDEOGRAPH-8C08 0x8C0A 谊 CJK UNIFIED IDEOGRAPH-8C0A 0x8C0B 谋 CJK UNIFIED IDEOGRAPH-8C0B 0x8C0C 谌 CJK UNIFIED IDEOGRAPH-8C0C 0x8C0D 谍 CJK UNIFIED IDEOGRAPH-8C0D 0x8C0E 谎 CJK UNIFIED IDEOGRAPH-8C0E 0x8C0F 谏 CJK UNIFIED IDEOGRAPH-8C0F 0x8C10 谐 CJK UNIFIED IDEOGRAPH-8C10 0x8C11 谑 CJK UNIFIED IDEOGRAPH-8C11 0x8C12 谒 CJK UNIFIED IDEOGRAPH-8C12 0x8C13 谓 CJK UNIFIED IDEOGRAPH-8C13 0x8C14 谔 CJK UNIFIED IDEOGRAPH-8C14 0x8C15 谕 CJK UNIFIED IDEOGRAPH-8C15 0x8C17 谗 CJK UNIFIED IDEOGRAPH-8C17 0x8C18 谘 CJK UNIFIED IDEOGRAPH-8C18 0x8C19 谙 CJK UNIFIED IDEOGRAPH-8C19 0x8C1A 谚 CJK UNIFIED IDEOGRAPH-8C1A 0x8C1B 谛 CJK UNIFIED IDEOGRAPH-8C1B 0x8C1C 谜 CJK UNIFIED IDEOGRAPH-8C1C 0x8C1F 谟 CJK UNIFIED IDEOGRAPH-8C1F 0x8C21 谡 CJK UNIFIED IDEOGRAPH-8C21 0x8C22 谢 CJK UNIFIED IDEOGRAPH-8C22 0x8C23 谣 CJK UNIFIED IDEOGRAPH-8C23 0x8C24 谤 CJK UNIFIED IDEOGRAPH-8C24 0x8C25 谥 CJK UNIFIED IDEOGRAPH-8C25 0x8C26 谦 CJK UNIFIED IDEOGRAPH-8C26 0x8C27 谧 CJK UNIFIED IDEOGRAPH-8C27 0x8C28 谨 CJK UNIFIED IDEOGRAPH-8C28 0x8C29 谩 CJK UNIFIED IDEOGRAPH-8C29 0x8C2A 谪 CJK UNIFIED IDEOGRAPH-8C2A 0x8C2C 谬 CJK UNIFIED IDEOGRAPH-8C2C 0x8C2D 谭 CJK UNIFIED IDEOGRAPH-8C2D 0x8C2F 谯 CJK UNIFIED IDEOGRAPH-8C2F 0x8C31 谱 CJK UNIFIED IDEOGRAPH-8C31 0x8C32 谲 CJK UNIFIED IDEOGRAPH-8C32 0x8C34 谴 CJK UNIFIED IDEOGRAPH-8C34 0x8C36 谶 CJK UNIFIED IDEOGRAPH-8C36 0x8C37 谷 CJK UNIFIED IDEOGRAPH-8C37 0x8C41 豁 CJK UNIFIED IDEOGRAPH-8C41 0x8C46 豆 CJK UNIFIED IDEOGRAPH-8C46 0x8C47 豇 CJK UNIFIED IDEOGRAPH-8C47 0x8C49 豉 CJK UNIFIED IDEOGRAPH-8C49 0x8C4A 豊 CJK UNIFIED IDEOGRAPH-8C4A 0x8C4C 豌 CJK UNIFIED IDEOGRAPH-8C4C 0x8C4E 豎 CJK UNIFIED IDEOGRAPH-8C4E 0x8C50 豐 CJK UNIFIED IDEOGRAPH-8C50 0x8C54 豔 CJK UNIFIED IDEOGRAPH-8C54 0x8C55 豕 CJK UNIFIED IDEOGRAPH-8C55 0x8C5A 豚 CJK UNIFIED IDEOGRAPH-8C5A 0x8C61 象 CJK UNIFIED IDEOGRAPH-8C61 0x8C62 豢 CJK UNIFIED IDEOGRAPH-8C62 0x8C6A 豪 CJK UNIFIED IDEOGRAPH-8C6A 0x8C6B 豫 CJK UNIFIED IDEOGRAPH-8C6B 0x8C6C 豬 CJK UNIFIED IDEOGRAPH-8C6C 0x8C78 豸 CJK UNIFIED IDEOGRAPH-8C78 0x8C79 豹 CJK UNIFIED IDEOGRAPH-8C79 0x8C7A 豺 CJK UNIFIED IDEOGRAPH-8C7A 0x8C82 貂 CJK UNIFIED IDEOGRAPH-8C82 0x8C85 貅 CJK UNIFIED IDEOGRAPH-8C85 0x8C89 貉 CJK UNIFIED IDEOGRAPH-8C89 0x8C8C 貌 CJK UNIFIED IDEOGRAPH-8C8C 0x8C93 貓 CJK UNIFIED IDEOGRAPH-8C93 0x8C94 貔 CJK UNIFIED IDEOGRAPH-8C94 0x8C98 貘 CJK UNIFIED IDEOGRAPH-8C98 0x8C9D 貝 CJK UNIFIED IDEOGRAPH-8C9D 0x8C9E 貞 CJK UNIFIED IDEOGRAPH-8C9E 0x8CA0 負 CJK UNIFIED IDEOGRAPH-8CA0 0x8CA1 財 CJK UNIFIED IDEOGRAPH-8CA1 0x8CA2 貢 CJK UNIFIED IDEOGRAPH-8CA2 0x8CA7 貧 CJK UNIFIED IDEOGRAPH-8CA7 0x8CA8 貨 CJK UNIFIED IDEOGRAPH-8CA8 0x8CA9 販 CJK UNIFIED IDEOGRAPH-8CA9 0x8CAA 貪 CJK UNIFIED IDEOGRAPH-8CAA 0x8CAB 貫 CJK UNIFIED IDEOGRAPH-8CAB 0x8CAC 責 CJK UNIFIED IDEOGRAPH-8CAC 0x8CB4 貴 CJK UNIFIED IDEOGRAPH-8CB4 0x8CB7 買 CJK UNIFIED IDEOGRAPH-8CB7 0x8CB8 貸 CJK UNIFIED IDEOGRAPH-8CB8 0x8CBB 費 CJK UNIFIED IDEOGRAPH-8CBB 0x8CBC 貼 CJK UNIFIED IDEOGRAPH-8CBC 0x8CBF 貿 CJK UNIFIED IDEOGRAPH-8CBF 0x8CC0 賀 CJK UNIFIED IDEOGRAPH-8CC0 0x8CC7 資 CJK UNIFIED IDEOGRAPH-8CC7 0x8CC8 賈 CJK UNIFIED IDEOGRAPH-8CC8 0x8CCA 賊 CJK UNIFIED IDEOGRAPH-8CCA 0x8CD3 賓 CJK UNIFIED IDEOGRAPH-8CD3 0x8CDB 賛 CJK UNIFIED IDEOGRAPH-8CDB 0x8CDC 賜 CJK UNIFIED IDEOGRAPH-8CDC 0x8CDE 賞 CJK UNIFIED IDEOGRAPH-8CDE 0x8CE0 賠 CJK UNIFIED IDEOGRAPH-8CE0 0x8CE2 賢 CJK UNIFIED IDEOGRAPH-8CE2 0x8CE3 賣 CJK UNIFIED IDEOGRAPH-8CE3 0x8CE4 賤 CJK UNIFIED IDEOGRAPH-8CE4 0x8CE6 賦 CJK UNIFIED IDEOGRAPH-8CE6 0x8CEA 質 CJK UNIFIED IDEOGRAPH-8CEA 0x8CEC 賬 CJK UNIFIED IDEOGRAPH-8CEC 0x8CED 賭 CJK UNIFIED IDEOGRAPH-8CED 0x8CF4 賴 CJK UNIFIED IDEOGRAPH-8CF4 0x8CFA 賺 CJK UNIFIED IDEOGRAPH-8CFA 0x8CFC 購 CJK UNIFIED IDEOGRAPH-8CFC 0x8CFD 賽 CJK UNIFIED IDEOGRAPH-8CFD 0x8D08 贈 CJK UNIFIED IDEOGRAPH-8D08 0x8D0A 贊 CJK UNIFIED IDEOGRAPH-8D0A 0x8D0F 贏 CJK UNIFIED IDEOGRAPH-8D0F 0x8D1D 贝 CJK UNIFIED IDEOGRAPH-8D1D 0x8D1E 贞 CJK UNIFIED IDEOGRAPH-8D1E 0x8D1F 负 CJK UNIFIED IDEOGRAPH-8D1F 0x8D21 贡 CJK UNIFIED IDEOGRAPH-8D21 0x8D22 财 CJK UNIFIED IDEOGRAPH-8D22 0x8D23 责 CJK UNIFIED IDEOGRAPH-8D23 0x8D24 贤 CJK UNIFIED IDEOGRAPH-8D24 0x8D25 败 CJK UNIFIED IDEOGRAPH-8D25 0x8D26 账 CJK UNIFIED IDEOGRAPH-8D26 0x8D27 货 CJK UNIFIED IDEOGRAPH-8D27 0x8D28 质 CJK UNIFIED IDEOGRAPH-8D28 0x8D29 贩 CJK UNIFIED IDEOGRAPH-8D29 0x8D2A 贪 CJK UNIFIED IDEOGRAPH-8D2A 0x8D2B 贫 CJK UNIFIED IDEOGRAPH-8D2B 0x8D2C 贬 CJK UNIFIED IDEOGRAPH-8D2C 0x8D2D 购 CJK UNIFIED IDEOGRAPH-8D2D 0x8D2E 贮 CJK UNIFIED IDEOGRAPH-8D2E 0x8D2F 贯 CJK UNIFIED IDEOGRAPH-8D2F 0x8D30 贰 CJK UNIFIED IDEOGRAPH-8D30 0x8D31 贱 CJK UNIFIED IDEOGRAPH-8D31 0x8D32 贲 CJK UNIFIED IDEOGRAPH-8D32 0x8D34 贴 CJK UNIFIED IDEOGRAPH-8D34 0x8D35 贵 CJK UNIFIED IDEOGRAPH-8D35 0x8D37 贷 CJK UNIFIED IDEOGRAPH-8D37 0x8D38 贸 CJK UNIFIED IDEOGRAPH-8D38 0x8D39 费 CJK UNIFIED IDEOGRAPH-8D39 0x8D3A 贺 CJK UNIFIED IDEOGRAPH-8D3A 0x8D3B 贻 CJK UNIFIED IDEOGRAPH-8D3B 0x8D3C 贼 CJK UNIFIED IDEOGRAPH-8D3C 0x8D3D 贽 CJK UNIFIED IDEOGRAPH-8D3D 0x8D3E 贾 CJK UNIFIED IDEOGRAPH-8D3E 0x8D3F 贿 CJK UNIFIED IDEOGRAPH-8D3F 0x8D41 赁 CJK UNIFIED IDEOGRAPH-8D41 0x8D42 赂 CJK UNIFIED IDEOGRAPH-8D42 0x8D43 赃 CJK UNIFIED IDEOGRAPH-8D43 0x8D44 资 CJK UNIFIED IDEOGRAPH-8D44 0x8D45 赅 CJK UNIFIED IDEOGRAPH-8D45 0x8D48 赈 CJK UNIFIED IDEOGRAPH-8D48 0x8D49 赉 CJK UNIFIED IDEOGRAPH-8D49 0x8D4A 赊 CJK UNIFIED IDEOGRAPH-8D4A 0x8D4B 赋 CJK UNIFIED IDEOGRAPH-8D4B 0x8D4C 赌 CJK UNIFIED IDEOGRAPH-8D4C 0x8D4E 赎 CJK UNIFIED IDEOGRAPH-8D4E 0x8D4F 赏 CJK UNIFIED IDEOGRAPH-8D4F 0x8D50 赐 CJK UNIFIED IDEOGRAPH-8D50 0x8D53 赓 CJK UNIFIED IDEOGRAPH-8D53 0x8D54 赔 CJK UNIFIED IDEOGRAPH-8D54 0x8D56 赖 CJK UNIFIED IDEOGRAPH-8D56 0x8D58 赘 CJK UNIFIED IDEOGRAPH-8D58 0x8D5A 赚 CJK UNIFIED IDEOGRAPH-8D5A 0x8D5B 赛 CJK UNIFIED IDEOGRAPH-8D5B 0x8D5D 赝 CJK UNIFIED IDEOGRAPH-8D5D 0x8D5E 赞 CJK UNIFIED IDEOGRAPH-8D5E 0x8D5F 赟 CJK UNIFIED IDEOGRAPH-8D5F 0x8D60 赠 CJK UNIFIED IDEOGRAPH-8D60 0x8D61 赡 CJK UNIFIED IDEOGRAPH-8D61 0x8D62 赢 CJK UNIFIED IDEOGRAPH-8D62 0x8D63 赣 CJK UNIFIED IDEOGRAPH-8D63 0x8D64 赤 CJK UNIFIED IDEOGRAPH-8D64 0x8D66 赦 CJK UNIFIED IDEOGRAPH-8D66 0x8D67 赧 CJK UNIFIED IDEOGRAPH-8D67 0x8D6B 赫 CJK UNIFIED IDEOGRAPH-8D6B 0x8D6D 赭 CJK UNIFIED IDEOGRAPH-8D6D 0x8D70 走 CJK UNIFIED IDEOGRAPH-8D70 0x8D73 赳 CJK UNIFIED IDEOGRAPH-8D73 0x8D74 赴 CJK UNIFIED IDEOGRAPH-8D74 0x8D75 赵 CJK UNIFIED IDEOGRAPH-8D75 0x8D76 赶 CJK UNIFIED IDEOGRAPH-8D76 0x8D77 起 CJK UNIFIED IDEOGRAPH-8D77 0x8D81 趁 CJK UNIFIED IDEOGRAPH-8D81 0x8D84 趄 CJK UNIFIED IDEOGRAPH-8D84 0x8D85 超 CJK UNIFIED IDEOGRAPH-8D85 0x8D8A 越 CJK UNIFIED IDEOGRAPH-8D8A 0x8D8B 趋 CJK UNIFIED IDEOGRAPH-8D8B 0x8D95 趕 CJK UNIFIED IDEOGRAPH-8D95 0x8D99 趙 CJK UNIFIED IDEOGRAPH-8D99 0x8D9F 趟 CJK UNIFIED IDEOGRAPH-8D9F 0x8DA3 趣 CJK UNIFIED IDEOGRAPH-8DA3 0x8DA8 趨 CJK UNIFIED IDEOGRAPH-8DA8 0x8DB3 足 CJK UNIFIED IDEOGRAPH-8DB3 0x8DB4 趴 CJK UNIFIED IDEOGRAPH-8DB4 0x8DB5 趵 CJK UNIFIED IDEOGRAPH-8DB5 0x8DB8 趸 CJK UNIFIED IDEOGRAPH-8DB8 0x8DBA 趺 CJK UNIFIED IDEOGRAPH-8DBA 0x8DBE 趾 CJK UNIFIED IDEOGRAPH-8DBE 0x8DC3 跃 CJK UNIFIED IDEOGRAPH-8DC3 0x8DC4 跄 CJK UNIFIED IDEOGRAPH-8DC4 0x8DC6 跆 CJK UNIFIED IDEOGRAPH-8DC6 0x8DCB 跋 CJK UNIFIED IDEOGRAPH-8DCB 0x8DCC 跌 CJK UNIFIED IDEOGRAPH-8DCC 0x8DCE 跎 CJK UNIFIED IDEOGRAPH-8DCE 0x8DD1 跑 CJK UNIFIED IDEOGRAPH-8DD1 0x8DD6 跖 CJK UNIFIED IDEOGRAPH-8DD6 0x8DD7 跗 CJK UNIFIED IDEOGRAPH-8DD7 0x8DDA 跚 CJK UNIFIED IDEOGRAPH-8DDA 0x8DDB 跛 CJK UNIFIED IDEOGRAPH-8DDB 0x8DDD 距 CJK UNIFIED IDEOGRAPH-8DDD 0x8DDF 跟 CJK UNIFIED IDEOGRAPH-8DDF 0x8DE1 跡 CJK UNIFIED IDEOGRAPH-8DE1 0x8DE4 跤 CJK UNIFIED IDEOGRAPH-8DE4 0x8DE8 跨 CJK UNIFIED IDEOGRAPH-8DE8 0x8DEA 跪 CJK UNIFIED IDEOGRAPH-8DEA 0x8DEC 跬 CJK UNIFIED IDEOGRAPH-8DEC 0x8DEF 路 CJK UNIFIED IDEOGRAPH-8DEF 0x8DF3 跳 CJK UNIFIED IDEOGRAPH-8DF3 0x8DF5 践 CJK UNIFIED IDEOGRAPH-8DF5 0x8DF6 跶 CJK UNIFIED IDEOGRAPH-8DF6 0x8DF7 跷 CJK UNIFIED IDEOGRAPH-8DF7 0x8DF9 跹 CJK UNIFIED IDEOGRAPH-8DF9 0x8DFA 跺 CJK UNIFIED IDEOGRAPH-8DFA 0x8DFB 跻 CJK UNIFIED IDEOGRAPH-8DFB 0x8E09 踉 CJK UNIFIED IDEOGRAPH-8E09 0x8E0A 踊 CJK UNIFIED IDEOGRAPH-8E0A 0x8E0C 踌 CJK UNIFIED IDEOGRAPH-8E0C 0x8E0F 踏 CJK UNIFIED IDEOGRAPH-8E0F 0x8E1D 踝 CJK UNIFIED IDEOGRAPH-8E1D 0x8E1E 踞 CJK UNIFIED IDEOGRAPH-8E1E 0x8E22 踢 CJK UNIFIED IDEOGRAPH-8E22 0x8E29 踩 CJK UNIFIED IDEOGRAPH-8E29 0x8E2A 踪 CJK UNIFIED IDEOGRAPH-8E2A 0x8E2E 踮 CJK UNIFIED IDEOGRAPH-8E2E 0x8E31 踱 CJK UNIFIED IDEOGRAPH-8E31 0x8E35 踵 CJK UNIFIED IDEOGRAPH-8E35 0x8E39 踹 CJK UNIFIED IDEOGRAPH-8E39 0x8E42 蹂 CJK UNIFIED IDEOGRAPH-8E42 0x8E44 蹄 CJK UNIFIED IDEOGRAPH-8E44 0x8E47 蹇 CJK UNIFIED IDEOGRAPH-8E47 0x8E48 蹈 CJK UNIFIED IDEOGRAPH-8E48 0x8E49 蹉 CJK UNIFIED IDEOGRAPH-8E49 0x8E4A 蹊 CJK UNIFIED IDEOGRAPH-8E4A 0x8E4B 蹋 CJK UNIFIED IDEOGRAPH-8E4B 0x8E51 蹑 CJK UNIFIED IDEOGRAPH-8E51 0x8E52 蹒 CJK UNIFIED IDEOGRAPH-8E52 0x8E59 蹙 CJK UNIFIED IDEOGRAPH-8E59 0x8E5F 蹟 CJK UNIFIED IDEOGRAPH-8E5F 0x8E64 蹤 CJK UNIFIED IDEOGRAPH-8E64 0x8E66 蹦 CJK UNIFIED IDEOGRAPH-8E66 0x8E69 蹩 CJK UNIFIED IDEOGRAPH-8E69 0x8E6C 蹬 CJK UNIFIED IDEOGRAPH-8E6C 0x8E6D 蹭 CJK UNIFIED IDEOGRAPH-8E6D 0x8E72 蹲 CJK UNIFIED IDEOGRAPH-8E72 0x8E74 蹴 CJK UNIFIED IDEOGRAPH-8E74 0x8E76 蹶 CJK UNIFIED IDEOGRAPH-8E76 0x8E7C 蹼 CJK UNIFIED IDEOGRAPH-8E7C 0x8E7F 蹿 CJK UNIFIED IDEOGRAPH-8E7F 0x8E81 躁 CJK UNIFIED IDEOGRAPH-8E81 0x8E87 躇 CJK UNIFIED IDEOGRAPH-8E87 0x8E8D 躍 CJK UNIFIED IDEOGRAPH-8E8D 0x8E8F 躏 CJK UNIFIED IDEOGRAPH-8E8F 0x8EAB 身 CJK UNIFIED IDEOGRAPH-8EAB 0x8EAC 躬 CJK UNIFIED IDEOGRAPH-8EAC 0x8EAF 躯 CJK UNIFIED IDEOGRAPH-8EAF 0x8EB2 躲 CJK UNIFIED IDEOGRAPH-8EB2 0x8EB6 躶 CJK UNIFIED IDEOGRAPH-8EB6 0x8EBA 躺 CJK UNIFIED IDEOGRAPH-8EBA 0x8ECA 車 CJK UNIFIED IDEOGRAPH-8ECA 0x8ECC 軌 CJK UNIFIED IDEOGRAPH-8ECC 0x8ECD 軍 CJK UNIFIED IDEOGRAPH-8ECD 0x8ED2 軒 CJK UNIFIED IDEOGRAPH-8ED2 0x8EDF 軟 CJK UNIFIED IDEOGRAPH-8EDF 0x8EE2 転 CJK UNIFIED IDEOGRAPH-8EE2 0x8EF8 軸 CJK UNIFIED IDEOGRAPH-8EF8 0x8EFD 軽 CJK UNIFIED IDEOGRAPH-8EFD 0x8F03 較 CJK UNIFIED IDEOGRAPH-8F03 0x8F09 載 CJK UNIFIED IDEOGRAPH-8F09 0x8F14 輔 CJK UNIFIED IDEOGRAPH-8F14 0x8F15 輕 CJK UNIFIED IDEOGRAPH-8F15 0x8F1B 輛 CJK UNIFIED IDEOGRAPH-8F1B 0x8F1D 輝 CJK UNIFIED IDEOGRAPH-8F1D 0x8F29 輩 CJK UNIFIED IDEOGRAPH-8F29 0x8F2A 輪 CJK UNIFIED IDEOGRAPH-8F2A 0x8F2F 輯 CJK UNIFIED IDEOGRAPH-8F2F 0x8F38 輸 CJK UNIFIED IDEOGRAPH-8F38 0x8F49 轉 CJK UNIFIED IDEOGRAPH-8F49 0x8F5F 轟 CJK UNIFIED IDEOGRAPH-8F5F 0x8F66 车 CJK UNIFIED IDEOGRAPH-8F66 0x8F67 轧 CJK UNIFIED IDEOGRAPH-8F67 0x8F68 轨 CJK UNIFIED IDEOGRAPH-8F68 0x8F69 轩 CJK UNIFIED IDEOGRAPH-8F69 0x8F6B 轫 CJK UNIFIED IDEOGRAPH-8F6B 0x8F6C 转 CJK UNIFIED IDEOGRAPH-8F6C 0x8F6D 轭 CJK UNIFIED IDEOGRAPH-8F6D 0x8F6E 轮 CJK UNIFIED IDEOGRAPH-8F6E 0x8F6F 软 CJK UNIFIED IDEOGRAPH-8F6F 0x8F70 轰 CJK UNIFIED IDEOGRAPH-8F70 0x8F71 轱 CJK UNIFIED IDEOGRAPH-8F71 0x8F72 轲 CJK UNIFIED IDEOGRAPH-8F72 0x8F74 轴 CJK UNIFIED IDEOGRAPH-8F74 0x8F76 轶 CJK UNIFIED IDEOGRAPH-8F76 0x8F78 轸 CJK UNIFIED IDEOGRAPH-8F78 0x8F7B 轻 CJK UNIFIED IDEOGRAPH-8F7B 0x8F7C 轼 CJK UNIFIED IDEOGRAPH-8F7C 0x8F7D 载 CJK UNIFIED IDEOGRAPH-8F7D 0x8F7F 轿 CJK UNIFIED IDEOGRAPH-8F7F 0x8F83 较 CJK UNIFIED IDEOGRAPH-8F83 0x8F84 辄 CJK UNIFIED IDEOGRAPH-8F84 0x8F85 辅 CJK UNIFIED IDEOGRAPH-8F85 0x8F86 辆 CJK UNIFIED IDEOGRAPH-8F86 0x8F87 辇 CJK UNIFIED IDEOGRAPH-8F87 0x8F88 辈 CJK UNIFIED IDEOGRAPH-8F88 0x8F89 辉 CJK UNIFIED IDEOGRAPH-8F89 0x8F8A 辊 CJK UNIFIED IDEOGRAPH-8F8A 0x8F8B 辋 CJK UNIFIED IDEOGRAPH-8F8B 0x8F8D 辍 CJK UNIFIED IDEOGRAPH-8F8D 0x8F90 辐 CJK UNIFIED IDEOGRAPH-8F90 0x8F91 辑 CJK UNIFIED IDEOGRAPH-8F91 0x8F93 输 CJK UNIFIED IDEOGRAPH-8F93 0x8F94 辔 CJK UNIFIED IDEOGRAPH-8F94 0x8F95 辕 CJK UNIFIED IDEOGRAPH-8F95 0x8F96 辖 CJK UNIFIED IDEOGRAPH-8F96 0x8F97 辗 CJK UNIFIED IDEOGRAPH-8F97 0x8F98 辘 CJK UNIFIED IDEOGRAPH-8F98 0x8F99 辙 CJK UNIFIED IDEOGRAPH-8F99 0x8F9B 辛 CJK UNIFIED IDEOGRAPH-8F9B 0x8F9C 辜 CJK UNIFIED IDEOGRAPH-8F9C 0x8F9E 辞 CJK UNIFIED IDEOGRAPH-8F9E 0x8F9F 辟 CJK UNIFIED IDEOGRAPH-8F9F 0x8FA3 辣 CJK UNIFIED IDEOGRAPH-8FA3 0x8FA6 辦 CJK UNIFIED IDEOGRAPH-8FA6 0x8FA8 辨 CJK UNIFIED IDEOGRAPH-8FA8 0x8FA9 辩 CJK UNIFIED IDEOGRAPH-8FA9 0x8FAB 辫 CJK UNIFIED IDEOGRAPH-8FAB 0x8FAD 辭 CJK UNIFIED IDEOGRAPH-8FAD 0x8FAF 辯 CJK UNIFIED IDEOGRAPH-8FAF 0x8FB0 辰 CJK UNIFIED IDEOGRAPH-8FB0 0x8FB1 辱 CJK UNIFIED IDEOGRAPH-8FB1 0x8FB2 農 CJK UNIFIED IDEOGRAPH-8FB2 0x8FB9 边 CJK UNIFIED IDEOGRAPH-8FB9 0x8FBA 辺 CJK UNIFIED IDEOGRAPH-8FBA 0x8FBB 辻 CJK UNIFIED IDEOGRAPH-8FBB 0x8FBC 込 CJK UNIFIED IDEOGRAPH-8FBC 0x8FBD 辽 CJK UNIFIED IDEOGRAPH-8FBD 0x8FBE 达 CJK UNIFIED IDEOGRAPH-8FBE 0x8FC1 迁 CJK UNIFIED IDEOGRAPH-8FC1 0x8FC2 迂 CJK UNIFIED IDEOGRAPH-8FC2 0x8FC4 迄 CJK UNIFIED IDEOGRAPH-8FC4 0x8FC5 迅 CJK UNIFIED IDEOGRAPH-8FC5 0x8FC7 过 CJK UNIFIED IDEOGRAPH-8FC7 0x8FC8 迈 CJK UNIFIED IDEOGRAPH-8FC8 0x8FCE 迎 CJK UNIFIED IDEOGRAPH-8FCE 0x8FD0 运 CJK UNIFIED IDEOGRAPH-8FD0 0x8FD1 近 CJK UNIFIED IDEOGRAPH-8FD1 0x8FD4 返 CJK UNIFIED IDEOGRAPH-8FD4 0x8FD8 还 CJK UNIFIED IDEOGRAPH-8FD8 0x8FD9 这 CJK UNIFIED IDEOGRAPH-8FD9 0x8FDB 进 CJK UNIFIED IDEOGRAPH-8FDB 0x8FDC 远 CJK UNIFIED IDEOGRAPH-8FDC 0x8FDD 违 CJK UNIFIED IDEOGRAPH-8FDD 0x8FDE 连 CJK UNIFIED IDEOGRAPH-8FDE 0x8FDF 迟 CJK UNIFIED IDEOGRAPH-8FDF 0x8FE2 迢 CJK UNIFIED IDEOGRAPH-8FE2 0x8FE4 迤 CJK UNIFIED IDEOGRAPH-8FE4 0x8FE5 迥 CJK UNIFIED IDEOGRAPH-8FE5 0x8FE6 迦 CJK UNIFIED IDEOGRAPH-8FE6 0x8FE8 迨 CJK UNIFIED IDEOGRAPH-8FE8 0x8FE9 迩 CJK UNIFIED IDEOGRAPH-8FE9 0x8FEA 迪 CJK UNIFIED IDEOGRAPH-8FEA 0x8FEB 迫 CJK UNIFIED IDEOGRAPH-8FEB 0x8FED 迭 CJK UNIFIED IDEOGRAPH-8FED 0x8FF0 述 CJK UNIFIED IDEOGRAPH-8FF0 0x8FF3 迳 CJK UNIFIED IDEOGRAPH-8FF3 0x8FF4 迴 CJK UNIFIED IDEOGRAPH-8FF4 0x8FF7 迷 CJK UNIFIED IDEOGRAPH-8FF7 0x8FF8 迸 CJK UNIFIED IDEOGRAPH-8FF8 0x8FF9 迹 CJK UNIFIED IDEOGRAPH-8FF9 0x8FFD 追 CJK UNIFIED IDEOGRAPH-8FFD 0x9000 退 CJK UNIFIED IDEOGRAPH-9000 0x9001 送 CJK UNIFIED IDEOGRAPH-9001 0x9002 适 CJK UNIFIED IDEOGRAPH-9002 0x9003 逃 CJK UNIFIED IDEOGRAPH-9003 0x9004 逄 CJK UNIFIED IDEOGRAPH-9004 0x9005 逅 CJK UNIFIED IDEOGRAPH-9005 0x9006 逆 CJK UNIFIED IDEOGRAPH-9006 0x9009 选 CJK UNIFIED IDEOGRAPH-9009 0x900A 逊 CJK UNIFIED IDEOGRAPH-900A 0x900B 逋 CJK UNIFIED IDEOGRAPH-900B 0x900D 逍 CJK UNIFIED IDEOGRAPH-900D 0x900F 透 CJK UNIFIED IDEOGRAPH-900F 0x9010 逐 CJK UNIFIED IDEOGRAPH-9010 0x9011 逑 CJK UNIFIED IDEOGRAPH-9011 0x9012 递 CJK UNIFIED IDEOGRAPH-9012 0x9014 途 CJK UNIFIED IDEOGRAPH-9014 0x9017 逗 CJK UNIFIED IDEOGRAPH-9017 0x9019 這 CJK UNIFIED IDEOGRAPH-9019 0x901A 通 CJK UNIFIED IDEOGRAPH-901A 0x901B 逛 CJK UNIFIED IDEOGRAPH-901B 0x901D 逝 CJK UNIFIED IDEOGRAPH-901D 0x901E 逞 CJK UNIFIED IDEOGRAPH-901E 0x901F 速 CJK UNIFIED IDEOGRAPH-901F 0x9020 造 CJK UNIFIED IDEOGRAPH-9020 0x9021 逡 CJK UNIFIED IDEOGRAPH-9021 0x9022 逢 CJK UNIFIED IDEOGRAPH-9022 0x9023 連 CJK UNIFIED IDEOGRAPH-9023 0x9026 逦 CJK UNIFIED IDEOGRAPH-9026 0x902E 逮 CJK UNIFIED IDEOGRAPH-902E 0x902F 逯 CJK UNIFIED IDEOGRAPH-902F 0x9031 週 CJK UNIFIED IDEOGRAPH-9031 0x9032 進 CJK UNIFIED IDEOGRAPH-9032 0x9035 逵 CJK UNIFIED IDEOGRAPH-9035 0x9036 逶 CJK UNIFIED IDEOGRAPH-9036 0x9038 逸 CJK UNIFIED IDEOGRAPH-9038 0x903B 逻 CJK UNIFIED IDEOGRAPH-903B 0x903C 逼 CJK UNIFIED IDEOGRAPH-903C 0x903E 逾 CJK UNIFIED IDEOGRAPH-903E 0x9041 遁 CJK UNIFIED IDEOGRAPH-9041 0x9042 遂 CJK UNIFIED IDEOGRAPH-9042 0x9047 遇 CJK UNIFIED IDEOGRAPH-9047 0x904A 遊 CJK UNIFIED IDEOGRAPH-904A 0x904B 運 CJK UNIFIED IDEOGRAPH-904B 0x904D 遍 CJK UNIFIED IDEOGRAPH-904D 0x904E 過 CJK UNIFIED IDEOGRAPH-904E 0x904F 遏 CJK UNIFIED IDEOGRAPH-904F 0x9050 遐 CJK UNIFIED IDEOGRAPH-9050 0x9051 遑 CJK UNIFIED IDEOGRAPH-9051 0x9052 遒 CJK UNIFIED IDEOGRAPH-9052 0x9053 道 CJK UNIFIED IDEOGRAPH-9053 0x9054 達 CJK UNIFIED IDEOGRAPH-9054 0x9055 違 CJK UNIFIED IDEOGRAPH-9055 0x9057 遗 CJK UNIFIED IDEOGRAPH-9057 0x9059 遙 CJK UNIFIED IDEOGRAPH-9059 0x905B 遛 CJK UNIFIED IDEOGRAPH-905B 0x905C 遜 CJK UNIFIED IDEOGRAPH-905C 0x905E 遞 CJK UNIFIED IDEOGRAPH-905E 0x9060 遠 CJK UNIFIED IDEOGRAPH-9060 0x9062 遢 CJK UNIFIED IDEOGRAPH-9062 0x9063 遣 CJK UNIFIED IDEOGRAPH-9063 0x9065 遥 CJK UNIFIED IDEOGRAPH-9065 0x9068 遨 CJK UNIFIED IDEOGRAPH-9068 0x9069 適 CJK UNIFIED IDEOGRAPH-9069 0x906D 遭 CJK UNIFIED IDEOGRAPH-906D 0x906E 遮 CJK UNIFIED IDEOGRAPH-906E 0x9072 遲 CJK UNIFIED IDEOGRAPH-9072 0x9074 遴 CJK UNIFIED IDEOGRAPH-9074 0x9075 遵 CJK UNIFIED IDEOGRAPH-9075 0x9077 遷 CJK UNIFIED IDEOGRAPH-9077 0x9078 選 CJK UNIFIED IDEOGRAPH-9078 0x907A 遺 CJK UNIFIED IDEOGRAPH-907A 0x907C 遼 CJK UNIFIED IDEOGRAPH-907C 0x907D 遽 CJK UNIFIED IDEOGRAPH-907D 0x907F 避 CJK UNIFIED IDEOGRAPH-907F 0x9080 邀 CJK UNIFIED IDEOGRAPH-9080 0x9081 邁 CJK UNIFIED IDEOGRAPH-9081 0x9082 邂 CJK UNIFIED IDEOGRAPH-9082 0x9083 邃 CJK UNIFIED IDEOGRAPH-9083 0x9084 還 CJK UNIFIED IDEOGRAPH-9084 0x9088 邈 CJK UNIFIED IDEOGRAPH-9088 0x908A 邊 CJK UNIFIED IDEOGRAPH-908A 0x908B 邋 CJK UNIFIED IDEOGRAPH-908B 0x908F 邏 CJK UNIFIED IDEOGRAPH-908F 0x9091 邑 CJK UNIFIED IDEOGRAPH-9091 0x9093 邓 CJK UNIFIED IDEOGRAPH-9093 0x9095 邕 CJK UNIFIED IDEOGRAPH-9095 0x9097 邗 CJK UNIFIED IDEOGRAPH-9097 0x9099 邙 CJK UNIFIED IDEOGRAPH-9099 0x909B 邛 CJK UNIFIED IDEOGRAPH-909B 0x909D 邝 CJK UNIFIED IDEOGRAPH-909D 0x90A1 邡 CJK UNIFIED IDEOGRAPH-90A1 0x90A2 邢 CJK UNIFIED IDEOGRAPH-90A2 0x90A3 那 CJK UNIFIED IDEOGRAPH-90A3 0x90A6 邦 CJK UNIFIED IDEOGRAPH-90A6 0x90A8 邨 CJK UNIFIED IDEOGRAPH-90A8 0x90AA 邪 CJK UNIFIED IDEOGRAPH-90AA 0x90AC 邬 CJK UNIFIED IDEOGRAPH-90AC 0x90AE 邮 CJK UNIFIED IDEOGRAPH-90AE 0x90AF 邯 CJK UNIFIED IDEOGRAPH-90AF 0x90B0 邰 CJK UNIFIED IDEOGRAPH-90B0 0x90B1 邱 CJK UNIFIED IDEOGRAPH-90B1 0x90B3 邳 CJK UNIFIED IDEOGRAPH-90B3 0x90B5 邵 CJK UNIFIED IDEOGRAPH-90B5 0x90B8 邸 CJK UNIFIED IDEOGRAPH-90B8 0x90B9 邹 CJK UNIFIED IDEOGRAPH-90B9 0x90BA 邺 CJK UNIFIED IDEOGRAPH-90BA 0x90BB 邻 CJK UNIFIED IDEOGRAPH-90BB 0x90C1 郁 CJK UNIFIED IDEOGRAPH-90C1 0x90C3 郃 CJK UNIFIED IDEOGRAPH-90C3 0x90C4 郄 CJK UNIFIED IDEOGRAPH-90C4 0x90C5 郅 CJK UNIFIED IDEOGRAPH-90C5 0x90C7 郇 CJK UNIFIED IDEOGRAPH-90C7 0x90CA 郊 CJK UNIFIED IDEOGRAPH-90CA 0x90CE 郎 CJK UNIFIED IDEOGRAPH-90CE 0x90CF 郏 CJK UNIFIED IDEOGRAPH-90CF 0x90D1 郑 CJK UNIFIED IDEOGRAPH-90D1 0x90D3 郓 CJK UNIFIED IDEOGRAPH-90D3 0x90D7 郗 CJK UNIFIED IDEOGRAPH-90D7 0x90DC 郜 CJK UNIFIED IDEOGRAPH-90DC 0x90DD 郝 CJK UNIFIED IDEOGRAPH-90DD 0x90DE 郞 CJK UNIFIED IDEOGRAPH-90DE 0x90E1 郡 CJK UNIFIED IDEOGRAPH-90E1 0x90E2 郢 CJK UNIFIED IDEOGRAPH-90E2 0x90E6 郦 CJK UNIFIED IDEOGRAPH-90E6 0x90E7 郧 CJK UNIFIED IDEOGRAPH-90E7 0x90E8 部 CJK UNIFIED IDEOGRAPH-90E8 0x90EB 郫 CJK UNIFIED IDEOGRAPH-90EB 0x90ED 郭 CJK UNIFIED IDEOGRAPH-90ED 0x90EF 郯 CJK UNIFIED IDEOGRAPH-90EF 0x90F4 郴 CJK UNIFIED IDEOGRAPH-90F4 0x90F5 郵 CJK UNIFIED IDEOGRAPH-90F5 0x90F7 郷 CJK UNIFIED IDEOGRAPH-90F7 0x90F8 郸 CJK UNIFIED IDEOGRAPH-90F8 0x90FD 都 CJK UNIFIED IDEOGRAPH-90FD 0x90FE 郾 CJK UNIFIED IDEOGRAPH-90FE 0x9102 鄂 CJK UNIFIED IDEOGRAPH-9102 0x9104 鄄 CJK UNIFIED IDEOGRAPH-9104 0x9109 鄉 CJK UNIFIED IDEOGRAPH-9109 0x9119 鄙 CJK UNIFIED IDEOGRAPH-9119 0x911E 鄞 CJK UNIFIED IDEOGRAPH-911E 0x9120 鄠 CJK UNIFIED IDEOGRAPH-9120 0x9122 鄢 CJK UNIFIED IDEOGRAPH-9122 0x9127 鄧 CJK UNIFIED IDEOGRAPH-9127 0x912D 鄭 CJK UNIFIED IDEOGRAPH-912D 0x912F 鄯 CJK UNIFIED IDEOGRAPH-912F 0x9130 鄰 CJK UNIFIED IDEOGRAPH-9130 0x9131 鄱 CJK UNIFIED IDEOGRAPH-9131 0x9146 酆 CJK UNIFIED IDEOGRAPH-9146 0x9149 酉 CJK UNIFIED IDEOGRAPH-9149 0x914A 酊 CJK UNIFIED IDEOGRAPH-914A 0x914B 酋 CJK UNIFIED IDEOGRAPH-914B 0x914C 酌 CJK UNIFIED IDEOGRAPH-914C 0x914D 配 CJK UNIFIED IDEOGRAPH-914D 0x9150 酐 CJK UNIFIED IDEOGRAPH-9150 0x9152 酒 CJK UNIFIED IDEOGRAPH-9152 0x9154 酔 CJK UNIFIED IDEOGRAPH-9154 0x9157 酗 CJK UNIFIED IDEOGRAPH-9157 0x915A 酚 CJK UNIFIED IDEOGRAPH-915A 0x915D 酝 CJK UNIFIED IDEOGRAPH-915D 0x915E 酞 CJK UNIFIED IDEOGRAPH-915E 0x9162 酢 CJK UNIFIED IDEOGRAPH-9162 0x9163 酣 CJK UNIFIED IDEOGRAPH-9163 0x9165 酥 CJK UNIFIED IDEOGRAPH-9165 0x9169 酩 CJK UNIFIED IDEOGRAPH-9169 0x916A 酪 CJK UNIFIED IDEOGRAPH-916A 0x916C 酬 CJK UNIFIED IDEOGRAPH-916C 0x916E 酮 CJK UNIFIED IDEOGRAPH-916E 0x916F 酯 CJK UNIFIED IDEOGRAPH-916F 0x9170 酰 CJK UNIFIED IDEOGRAPH-9170 0x9171 酱 CJK UNIFIED IDEOGRAPH-9171 0x9175 酵 CJK UNIFIED IDEOGRAPH-9175 0x9176 酶 CJK UNIFIED IDEOGRAPH-9176 0x9177 酷 CJK UNIFIED IDEOGRAPH-9177 0x9178 酸 CJK UNIFIED IDEOGRAPH-9178 0x917F 酿 CJK UNIFIED IDEOGRAPH-917F 0x9187 醇 CJK UNIFIED IDEOGRAPH-9187 0x9189 醉 CJK UNIFIED IDEOGRAPH-9189 0x918B 醋 CJK UNIFIED IDEOGRAPH-918B 0x918C 醌 CJK UNIFIED IDEOGRAPH-918C 0x918D 醍 CJK UNIFIED IDEOGRAPH-918D 0x9190 醐 CJK UNIFIED IDEOGRAPH-9190 0x9192 醒 CJK UNIFIED IDEOGRAPH-9192 0x919A 醚 CJK UNIFIED IDEOGRAPH-919A 0x919B 醛 CJK UNIFIED IDEOGRAPH-919B 0x919C 醜 CJK UNIFIED IDEOGRAPH-919C 0x91A3 醣 CJK UNIFIED IDEOGRAPH-91A3 0x91AA 醪 CJK UNIFIED IDEOGRAPH-91AA 0x91AB 醫 CJK UNIFIED IDEOGRAPH-91AB 0x91AC 醬 CJK UNIFIED IDEOGRAPH-91AC 0x91AE 醮 CJK UNIFIED IDEOGRAPH-91AE 0x91B4 醴 CJK UNIFIED IDEOGRAPH-91B4 0x91BA 醺 CJK UNIFIED IDEOGRAPH-91BA 0x91C6 釆 CJK UNIFIED IDEOGRAPH-91C6 0x91C7 采 CJK UNIFIED IDEOGRAPH-91C7 0x91C9 釉 CJK UNIFIED IDEOGRAPH-91C9 0x91CA 释 CJK UNIFIED IDEOGRAPH-91CA 0x91CB 釋 CJK UNIFIED IDEOGRAPH-91CB 0x91CC 里 CJK UNIFIED IDEOGRAPH-91CC 0x91CD 重 CJK UNIFIED IDEOGRAPH-91CD 0x91CE 野 CJK UNIFIED IDEOGRAPH-91CE 0x91CF 量 CJK UNIFIED IDEOGRAPH-91CF 0x91D1 金 CJK UNIFIED IDEOGRAPH-91D1 0x91D8 釘 CJK UNIFIED IDEOGRAPH-91D8 0x91DC 釜 CJK UNIFIED IDEOGRAPH-91DC 0x91DD 針 CJK UNIFIED IDEOGRAPH-91DD 0x91E3 釣 CJK UNIFIED IDEOGRAPH-91E3 0x921E 鈞 CJK UNIFIED IDEOGRAPH-921E 0x9225 鈥 CJK UNIFIED IDEOGRAPH-9225 0x9234 鈴 CJK UNIFIED IDEOGRAPH-9234 0x9244 鉄 CJK UNIFIED IDEOGRAPH-9244 0x9274 鉴 CJK UNIFIED IDEOGRAPH-9274 0x9280 銀 CJK UNIFIED IDEOGRAPH-9280 0x9285 銅 CJK UNIFIED IDEOGRAPH-9285 0x9286 銆 CJK UNIFIED IDEOGRAPH-9286 0x9298 銘 CJK UNIFIED IDEOGRAPH-9298 0x92AE 銮 CJK UNIFIED IDEOGRAPH-92AE 0x92B7 銷 CJK UNIFIED IDEOGRAPH-92B7 0x92C6 鋆 CJK UNIFIED IDEOGRAPH-92C6 0x92D2 鋒 CJK UNIFIED IDEOGRAPH-92D2 0x92EA 鋪 CJK UNIFIED IDEOGRAPH-92EA 0x92FC 鋼 CJK UNIFIED IDEOGRAPH-92FC 0x9304 錄 CJK UNIFIED IDEOGRAPH-9304 0x9322 錢 CJK UNIFIED IDEOGRAPH-9322 0x9324 錤 CJK UNIFIED IDEOGRAPH-9324 0x9326 錦 CJK UNIFIED IDEOGRAPH-9326 0x932B 錫 CJK UNIFIED IDEOGRAPH-932B 0x932F 錯 CJK UNIFIED IDEOGRAPH-932F 0x9332 録 CJK UNIFIED IDEOGRAPH-9332 0x9336 錶 CJK UNIFIED IDEOGRAPH-9336 0x933E 錾 CJK UNIFIED IDEOGRAPH-933E 0x934A 鍊 CJK UNIFIED IDEOGRAPH-934A 0x934B 鍋 CJK UNIFIED IDEOGRAPH-934B 0x934F 鍏 CJK UNIFIED IDEOGRAPH-934F 0x9350 鍐 CJK UNIFIED IDEOGRAPH-9350 0x9351 鍑 CJK UNIFIED IDEOGRAPH-9351 0x9352 鍒 CJK UNIFIED IDEOGRAPH-9352 0x9353 鍓 CJK UNIFIED IDEOGRAPH-9353 0x9354 鍔 CJK UNIFIED IDEOGRAPH-9354 0x9356 鍖 CJK UNIFIED IDEOGRAPH-9356 0x9357 鍗 CJK UNIFIED IDEOGRAPH-9357 0x9358 鍘 CJK UNIFIED IDEOGRAPH-9358 0x9359 鍙 CJK UNIFIED IDEOGRAPH-9359 0x935A 鍚 CJK UNIFIED IDEOGRAPH-935A 0x935B 鍛 CJK UNIFIED IDEOGRAPH-935B 0x935C 鍜 CJK UNIFIED IDEOGRAPH-935C 0x935D 鍝 CJK UNIFIED IDEOGRAPH-935D 0x9365 鍥 CJK UNIFIED IDEOGRAPH-9365 0x9366 鍦 CJK UNIFIED IDEOGRAPH-9366 0x9367 鍧 CJK UNIFIED IDEOGRAPH-9367 0x9369 鍩 CJK UNIFIED IDEOGRAPH-9369 0x9375 鍵 CJK UNIFIED IDEOGRAPH-9375 0x937E 鍾 CJK UNIFIED IDEOGRAPH-937E 0x938F 鎏 CJK UNIFIED IDEOGRAPH-938F 0x9396 鎖 CJK UNIFIED IDEOGRAPH-9396 0x93AC 鎬 CJK UNIFIED IDEOGRAPH-93AC 0x93AD 鎭 CJK UNIFIED IDEOGRAPH-93AD 0x93AE 鎮 CJK UNIFIED IDEOGRAPH-93AE 0x93AF 鎯 CJK UNIFIED IDEOGRAPH-93AF 0x93B4 鎴 CJK UNIFIED IDEOGRAPH-93B4 0x93B5 鎵 CJK UNIFIED IDEOGRAPH-93B5 0x93B6 鎶 CJK UNIFIED IDEOGRAPH-93B6 0x93B7 鎷 CJK UNIFIED IDEOGRAPH-93B7 0x93B8 鎸 CJK UNIFIED IDEOGRAPH-93B8 0x93BA 鎺 CJK UNIFIED IDEOGRAPH-93BA 0x93BB 鎻 CJK UNIFIED IDEOGRAPH-93BB 0x93BE 鎾 CJK UNIFIED IDEOGRAPH-93BE 0x93C0 鏀 CJK UNIFIED IDEOGRAPH-93C0 0x93C1 鏁 CJK UNIFIED IDEOGRAPH-93C1 0x93C2 鏂 CJK UNIFIED IDEOGRAPH-93C2 0x93C3 鏃 CJK UNIFIED IDEOGRAPH-93C3 0x93C4 鏄 CJK UNIFIED IDEOGRAPH-93C4 0x93C7 鏇 CJK UNIFIED IDEOGRAPH-93C7 0x93C8 鏈 CJK UNIFIED IDEOGRAPH-93C8 0x93C9 鏉 CJK UNIFIED IDEOGRAPH-93C9 0x93CB 鏋 CJK UNIFIED IDEOGRAPH-93CB 0x93CC 鏌 CJK UNIFIED IDEOGRAPH-93CC 0x93CD 鏍 CJK UNIFIED IDEOGRAPH-93CD 0x93D6 鏖 CJK UNIFIED IDEOGRAPH-93D6 0x93E1 鏡 CJK UNIFIED IDEOGRAPH-93E1 0x9410 鐐 CJK UNIFIED IDEOGRAPH-9410 0x9411 鐑 CJK UNIFIED IDEOGRAPH-9411 0x9416 鐖 CJK UNIFIED IDEOGRAPH-9416 0x9417 鐗 CJK UNIFIED IDEOGRAPH-9417 0x9418 鐘 CJK UNIFIED IDEOGRAPH-9418 0x941C 鐜 CJK UNIFIED IDEOGRAPH-941C 0x941E 鐞 CJK UNIFIED IDEOGRAPH-941E 0x9422 鐢 CJK UNIFIED IDEOGRAPH-9422 0x9423 鐣 CJK UNIFIED IDEOGRAPH-9423 0x9427 鐧 CJK UNIFIED IDEOGRAPH-9427 0x9428 鐨 CJK UNIFIED IDEOGRAPH-9428 0x9429 鐩 CJK UNIFIED IDEOGRAPH-9429 0x942A 鐪 CJK UNIFIED IDEOGRAPH-942A 0x942E 鐮 CJK UNIFIED IDEOGRAPH-942E 0x9435 鐵 CJK UNIFIED IDEOGRAPH-9435 0x9451 鑑 CJK UNIFIED IDEOGRAPH-9451 0x9452 鑒 CJK UNIFIED IDEOGRAPH-9452 0x946B 鑫 CJK UNIFIED IDEOGRAPH-946B 0x9470 鑰 CJK UNIFIED IDEOGRAPH-9470 0x9471 鑱 CJK UNIFIED IDEOGRAPH-9471 0x9472 鑲 CJK UNIFIED IDEOGRAPH-9472 0x9473 鑳 CJK UNIFIED IDEOGRAPH-9473 0x9477 鑷 CJK UNIFIED IDEOGRAPH-9477 0x9479 鑹 CJK UNIFIED IDEOGRAPH-9479 0x947B 鑻 CJK UNIFIED IDEOGRAPH-947B 0x947D 鑽 CJK UNIFIED IDEOGRAPH-947D 0x947E 鑾 CJK UNIFIED IDEOGRAPH-947E 0x9485 钅 CJK UNIFIED IDEOGRAPH-9485 0x9487 钇 CJK UNIFIED IDEOGRAPH-9487 0x9488 针 CJK UNIFIED IDEOGRAPH-9488 0x9489 钉 CJK UNIFIED IDEOGRAPH-9489 0x948A 钊 CJK UNIFIED IDEOGRAPH-948A 0x948E 钎 CJK UNIFIED IDEOGRAPH-948E 0x948F 钏 CJK UNIFIED IDEOGRAPH-948F 0x9492 钒 CJK UNIFIED IDEOGRAPH-9492 0x9493 钓 CJK UNIFIED IDEOGRAPH-9493 0x9495 钕 CJK UNIFIED IDEOGRAPH-9495 0x9497 钗 CJK UNIFIED IDEOGRAPH-9497 0x9499 钙 CJK UNIFIED IDEOGRAPH-9499 0x949B 钛 CJK UNIFIED IDEOGRAPH-949B 0x949C 钜 CJK UNIFIED IDEOGRAPH-949C 0x949D 钝 CJK UNIFIED IDEOGRAPH-949D 0x949E 钞 CJK UNIFIED IDEOGRAPH-949E 0x949F 钟 CJK UNIFIED IDEOGRAPH-949F 0x94A0 钠 CJK UNIFIED IDEOGRAPH-94A0 0x94A1 钡 CJK UNIFIED IDEOGRAPH-94A1 0x94A2 钢 CJK UNIFIED IDEOGRAPH-94A2 0x94A3 钣 CJK UNIFIED IDEOGRAPH-94A3 0x94A4 钤 CJK UNIFIED IDEOGRAPH-94A4 0x94A5 钥 CJK UNIFIED IDEOGRAPH-94A5 0x94A6 钦 CJK UNIFIED IDEOGRAPH-94A6 0x94A7 钧 CJK UNIFIED IDEOGRAPH-94A7 0x94A8 钨 CJK UNIFIED IDEOGRAPH-94A8 0x94A9 钩 CJK UNIFIED IDEOGRAPH-94A9 0x94AC 钬 CJK UNIFIED IDEOGRAPH-94AC 0x94AE 钮 CJK UNIFIED IDEOGRAPH-94AE 0x94AF 钯 CJK UNIFIED IDEOGRAPH-94AF 0x94B0 钰 CJK UNIFIED IDEOGRAPH-94B0 0x94B1 钱 CJK UNIFIED IDEOGRAPH-94B1 0x94B3 钳 CJK UNIFIED IDEOGRAPH-94B3 0x94B4 钴 CJK UNIFIED IDEOGRAPH-94B4 0x94B5 钵 CJK UNIFIED IDEOGRAPH-94B5 0x94B9 钹 CJK UNIFIED IDEOGRAPH-94B9 0x94BA 钺 CJK UNIFIED IDEOGRAPH-94BA 0x94BB 钻 CJK UNIFIED IDEOGRAPH-94BB 0x94BC 钼 CJK UNIFIED IDEOGRAPH-94BC 0x94BD 钽 CJK UNIFIED IDEOGRAPH-94BD 0x94BE 钾 CJK UNIFIED IDEOGRAPH-94BE 0x94BF 钿 CJK UNIFIED IDEOGRAPH-94BF 0x94C0 铀 CJK UNIFIED IDEOGRAPH-94C0 0x94C1 铁 CJK UNIFIED IDEOGRAPH-94C1 0x94C2 铂 CJK UNIFIED IDEOGRAPH-94C2 0x94C3 铃 CJK UNIFIED IDEOGRAPH-94C3 0x94C4 铄 CJK UNIFIED IDEOGRAPH-94C4 0x94C5 铅 CJK UNIFIED IDEOGRAPH-94C5 0x94C6 铆 CJK UNIFIED IDEOGRAPH-94C6 0x94C8 铈 CJK UNIFIED IDEOGRAPH-94C8 0x94C9 铉 CJK UNIFIED IDEOGRAPH-94C9 0x94CB 铋 CJK UNIFIED IDEOGRAPH-94CB 0x94CC 铌 CJK UNIFIED IDEOGRAPH-94CC 0x94CD 铍 CJK UNIFIED IDEOGRAPH-94CD 0x94CE 铎 CJK UNIFIED IDEOGRAPH-94CE 0x94D0 铐 CJK UNIFIED IDEOGRAPH-94D0 0x94D1 铑 CJK UNIFIED IDEOGRAPH-94D1 0x94D6 铖 CJK UNIFIED IDEOGRAPH-94D6 0x94DB 铛 CJK UNIFIED IDEOGRAPH-94DB 0x94DC 铜 CJK UNIFIED IDEOGRAPH-94DC 0x94DD 铝 CJK UNIFIED IDEOGRAPH-94DD 0x94DF 铟 CJK UNIFIED IDEOGRAPH-94DF 0x94E0 铠 CJK UNIFIED IDEOGRAPH-94E0 0x94E1 铡 CJK UNIFIED IDEOGRAPH-94E1 0x94E2 铢 CJK UNIFIED IDEOGRAPH-94E2 0x94E3 铣 CJK UNIFIED IDEOGRAPH-94E3 0x94E4 铤 CJK UNIFIED IDEOGRAPH-94E4 0x94E7 铧 CJK UNIFIED IDEOGRAPH-94E7 0x94E8 铨 CJK UNIFIED IDEOGRAPH-94E8 0x94E9 铩 CJK UNIFIED IDEOGRAPH-94E9 0x94EC 铬 CJK UNIFIED IDEOGRAPH-94EC 0x94ED 铭 CJK UNIFIED IDEOGRAPH-94ED 0x94EE 铮 CJK UNIFIED IDEOGRAPH-94EE 0x94EF 铯 CJK UNIFIED IDEOGRAPH-94EF 0x94F0 铰 CJK UNIFIED IDEOGRAPH-94F0 0x94F1 铱 CJK UNIFIED IDEOGRAPH-94F1 0x94F2 铲 CJK UNIFIED IDEOGRAPH-94F2 0x94F3 铳 CJK UNIFIED IDEOGRAPH-94F3 0x94F5 铵 CJK UNIFIED IDEOGRAPH-94F5 0x94F6 银 CJK UNIFIED IDEOGRAPH-94F6 0x94F8 铸 CJK UNIFIED IDEOGRAPH-94F8 0x94FA 铺 CJK UNIFIED IDEOGRAPH-94FA 0x94FE 链 CJK UNIFIED IDEOGRAPH-94FE 0x94FF 铿 CJK UNIFIED IDEOGRAPH-94FF 0x9500 销 CJK UNIFIED IDEOGRAPH-9500 0x9501 锁 CJK UNIFIED IDEOGRAPH-9501 0x9502 锂 CJK UNIFIED IDEOGRAPH-9502 0x9503 锃 CJK UNIFIED IDEOGRAPH-9503 0x9504 锄 CJK UNIFIED IDEOGRAPH-9504 0x9505 锅 CJK UNIFIED IDEOGRAPH-9505 0x9506 锆 CJK UNIFIED IDEOGRAPH-9506 0x9508 锈 CJK UNIFIED IDEOGRAPH-9508 0x9509 锉 CJK UNIFIED IDEOGRAPH-9509 0x950B 锋 CJK UNIFIED IDEOGRAPH-950B 0x950C 锌 CJK UNIFIED IDEOGRAPH-950C 0x950F 锏 CJK UNIFIED IDEOGRAPH-950F 0x9510 锐 CJK UNIFIED IDEOGRAPH-9510 0x9511 锑 CJK UNIFIED IDEOGRAPH-9511 0x9512 锒 CJK UNIFIED IDEOGRAPH-9512 0x9517 锗 CJK UNIFIED IDEOGRAPH-9517 0x9518 锘 CJK UNIFIED IDEOGRAPH-9518 0x9519 错 CJK UNIFIED IDEOGRAPH-9519 0x951A 锚 CJK UNIFIED IDEOGRAPH-951A 0x951B 锛 CJK UNIFIED IDEOGRAPH-951B 0x951D 锝 CJK UNIFIED IDEOGRAPH-951D 0x951F 锟 CJK UNIFIED IDEOGRAPH-951F 0x9521 锡 CJK UNIFIED IDEOGRAPH-9521 0x9522 锢 CJK UNIFIED IDEOGRAPH-9522 0x9523 锣 CJK UNIFIED IDEOGRAPH-9523 0x9524 锤 CJK UNIFIED IDEOGRAPH-9524 0x9525 锥 CJK UNIFIED IDEOGRAPH-9525 0x9526 锦 CJK UNIFIED IDEOGRAPH-9526 0x952D 锭 CJK UNIFIED IDEOGRAPH-952D 0x952E 键 CJK UNIFIED IDEOGRAPH-952E 0x952F 锯 CJK UNIFIED IDEOGRAPH-952F 0x9530 锰 CJK UNIFIED IDEOGRAPH-9530 0x9532 锲 CJK UNIFIED IDEOGRAPH-9532 0x9534 锴 CJK UNIFIED IDEOGRAPH-9534 0x9535 锵 CJK UNIFIED IDEOGRAPH-9535 0x9536 锶 CJK UNIFIED IDEOGRAPH-9536 0x9537 锷 CJK UNIFIED IDEOGRAPH-9537 0x9539 锹 CJK UNIFIED IDEOGRAPH-9539 0x953A 锺 CJK UNIFIED IDEOGRAPH-953A 0x953B 锻 CJK UNIFIED IDEOGRAPH-953B 0x9540 镀 CJK UNIFIED IDEOGRAPH-9540 0x9541 镁 CJK UNIFIED IDEOGRAPH-9541 0x9542 镂 CJK UNIFIED IDEOGRAPH-9542 0x9547 镇 CJK UNIFIED IDEOGRAPH-9547 0x9549 镉 CJK UNIFIED IDEOGRAPH-9549 0x954A 镊 CJK UNIFIED IDEOGRAPH-954A 0x954C 镌 CJK UNIFIED IDEOGRAPH-954C 0x954D 镍 CJK UNIFIED IDEOGRAPH-954D 0x9550 镐 CJK UNIFIED IDEOGRAPH-9550 0x9551 镑 CJK UNIFIED IDEOGRAPH-9551 0x9552 镒 CJK UNIFIED IDEOGRAPH-9552 0x9553 镓 CJK UNIFIED IDEOGRAPH-9553 0x9554 镔 CJK UNIFIED IDEOGRAPH-9554 0x9555 镕 CJK UNIFIED IDEOGRAPH-9555 0x9556 镖 CJK UNIFIED IDEOGRAPH-9556 0x9557 镗 CJK UNIFIED IDEOGRAPH-9557 0x955B 镛 CJK UNIFIED IDEOGRAPH-955B 0x955C 镜 CJK UNIFIED IDEOGRAPH-955C 0x955D 镝 CJK UNIFIED IDEOGRAPH-955D 0x9563 镣 CJK UNIFIED IDEOGRAPH-9563 0x9566 镦 CJK UNIFIED IDEOGRAPH-9566 0x9567 镧 CJK UNIFIED IDEOGRAPH-9567 0x956B 镫 CJK UNIFIED IDEOGRAPH-956B 0x956C 镬 CJK UNIFIED IDEOGRAPH-956C 0x956D 镭 CJK UNIFIED IDEOGRAPH-956D 0x956F 镯 CJK UNIFIED IDEOGRAPH-956F 0x9570 镰 CJK UNIFIED IDEOGRAPH-9570 0x9573 镳 CJK UNIFIED IDEOGRAPH-9573 0x9576 镶 CJK UNIFIED IDEOGRAPH-9576 0x9577 長 CJK UNIFIED IDEOGRAPH-9577 0x957F 长 CJK UNIFIED IDEOGRAPH-957F 0x9580 門 CJK UNIFIED IDEOGRAPH-9580 0x9583 閃 CJK UNIFIED IDEOGRAPH-9583 0x9589 閉 CJK UNIFIED IDEOGRAPH-9589 0x958B 開 CJK UNIFIED IDEOGRAPH-958B 0x9591 閑 CJK UNIFIED IDEOGRAPH-9591 0x9592 閒 CJK UNIFIED IDEOGRAPH-9592 0x9593 間 CJK UNIFIED IDEOGRAPH-9593 0x95A2 関 CJK UNIFIED IDEOGRAPH-95A2 0x95A3 閣 CJK UNIFIED IDEOGRAPH-95A3 0x95A4 閤 CJK UNIFIED IDEOGRAPH-95A4 0x95A8 閨 CJK UNIFIED IDEOGRAPH-95A8 0x95AB 閫 CJK UNIFIED IDEOGRAPH-95AB 0x95AD 閭 CJK UNIFIED IDEOGRAPH-95AD 0x95AE 閮 CJK UNIFIED IDEOGRAPH-95AE 0x95B0 閰 CJK UNIFIED IDEOGRAPH-95B0 0x95B1 閱 CJK UNIFIED IDEOGRAPH-95B1 0x95B2 閲 CJK UNIFIED IDEOGRAPH-95B2 0x95BF 閿 CJK UNIFIED IDEOGRAPH-95BF 0x95C0 闀 CJK UNIFIED IDEOGRAPH-95C0 0x95C2 闂 CJK UNIFIED IDEOGRAPH-95C2 0x95C3 闃 CJK UNIFIED IDEOGRAPH-95C3 0x95C4 闄 CJK UNIFIED IDEOGRAPH-95C4 0x95C6 闆 CJK UNIFIED IDEOGRAPH-95C6 0x95C7 闇 CJK UNIFIED IDEOGRAPH-95C7 0x95C8 闈 CJK UNIFIED IDEOGRAPH-95C8 0x95CA 闊 CJK UNIFIED IDEOGRAPH-95CA 0x95D6 闖 CJK UNIFIED IDEOGRAPH-95D6 0x95D8 闘 CJK UNIFIED IDEOGRAPH-95D8 0x95DC 關 CJK UNIFIED IDEOGRAPH-95DC 0x95E8 门 CJK UNIFIED IDEOGRAPH-95E8 0x95E9 闩 CJK UNIFIED IDEOGRAPH-95E9 0x95EA 闪 CJK UNIFIED IDEOGRAPH-95EA 0x95EB 闫 CJK UNIFIED IDEOGRAPH-95EB 0x95ED 闭 CJK UNIFIED IDEOGRAPH-95ED 0x95EE 问 CJK UNIFIED IDEOGRAPH-95EE 0x95EF 闯 CJK UNIFIED IDEOGRAPH-95EF 0x95F0 闰 CJK UNIFIED IDEOGRAPH-95F0 0x95F1 闱 CJK UNIFIED IDEOGRAPH-95F1 0x95F2 闲 CJK UNIFIED IDEOGRAPH-95F2 0x95F3 闳 CJK UNIFIED IDEOGRAPH-95F3 0x95F4 间 CJK UNIFIED IDEOGRAPH-95F4 0x95F5 闵 CJK UNIFIED IDEOGRAPH-95F5 0x95F7 闷 CJK UNIFIED IDEOGRAPH-95F7 0x95F8 闸 CJK UNIFIED IDEOGRAPH-95F8 0x95F9 闹 CJK UNIFIED IDEOGRAPH-95F9 0x95FA 闺 CJK UNIFIED IDEOGRAPH-95FA 0x95FB 闻 CJK UNIFIED IDEOGRAPH-95FB 0x95FD 闽 CJK UNIFIED IDEOGRAPH-95FD 0x95FE 闾 CJK UNIFIED IDEOGRAPH-95FE 0x9600 阀 CJK UNIFIED IDEOGRAPH-9600 0x9601 阁 CJK UNIFIED IDEOGRAPH-9601 0x9602 阂 CJK UNIFIED IDEOGRAPH-9602 0x9605 阅 CJK UNIFIED IDEOGRAPH-9605 0x9606 阆 CJK UNIFIED IDEOGRAPH-9606 0x9608 阈 CJK UNIFIED IDEOGRAPH-9608 0x9609 阉 CJK UNIFIED IDEOGRAPH-9609 0x960A 阊 CJK UNIFIED IDEOGRAPH-960A 0x960E 阎 CJK UNIFIED IDEOGRAPH-960E 0x9610 阐 CJK UNIFIED IDEOGRAPH-9610 0x9611 阑 CJK UNIFIED IDEOGRAPH-9611 0x9614 阔 CJK UNIFIED IDEOGRAPH-9614 0x9615 阕 CJK UNIFIED IDEOGRAPH-9615 0x9616 阖 CJK UNIFIED IDEOGRAPH-9616 0x9617 阗 CJK UNIFIED IDEOGRAPH-9617 0x9619 阙 CJK UNIFIED IDEOGRAPH-9619 0x961A 阚 CJK UNIFIED IDEOGRAPH-961A 0x961C 阜 CJK UNIFIED IDEOGRAPH-961C 0x961F 队 CJK UNIFIED IDEOGRAPH-961F 0x9621 阡 CJK UNIFIED IDEOGRAPH-9621 0x962A 阪 CJK UNIFIED IDEOGRAPH-962A 0x962E 阮 CJK UNIFIED IDEOGRAPH-962E 0x9631 阱 CJK UNIFIED IDEOGRAPH-9631 0x9632 防 CJK UNIFIED IDEOGRAPH-9632 0x9633 阳 CJK UNIFIED IDEOGRAPH-9633 0x9634 阴 CJK UNIFIED IDEOGRAPH-9634 0x9635 阵 CJK UNIFIED IDEOGRAPH-9635 0x9636 阶 CJK UNIFIED IDEOGRAPH-9636 0x963B 阻 CJK UNIFIED IDEOGRAPH-963B 0x963F 阿 CJK UNIFIED IDEOGRAPH-963F 0x9640 陀 CJK UNIFIED IDEOGRAPH-9640 0x9642 陂 CJK UNIFIED IDEOGRAPH-9642 0x9644 附 CJK UNIFIED IDEOGRAPH-9644 0x9645 际 CJK UNIFIED IDEOGRAPH-9645 0x9646 陆 CJK UNIFIED IDEOGRAPH-9646 0x9647 陇 CJK UNIFIED IDEOGRAPH-9647 0x9648 陈 CJK UNIFIED IDEOGRAPH-9648 0x9649 陉 CJK UNIFIED IDEOGRAPH-9649 0x964B 陋 CJK UNIFIED IDEOGRAPH-964B 0x964C 陌 CJK UNIFIED IDEOGRAPH-964C 0x964D 降 CJK UNIFIED IDEOGRAPH-964D 0x9650 限 CJK UNIFIED IDEOGRAPH-9650 0x9655 陕 CJK UNIFIED IDEOGRAPH-9655 0x965B 陛 CJK UNIFIED IDEOGRAPH-965B 0x965E 陞 CJK UNIFIED IDEOGRAPH-965E 0x965F 陟 CJK UNIFIED IDEOGRAPH-965F 0x9661 陡 CJK UNIFIED IDEOGRAPH-9661 0x9662 院 CJK UNIFIED IDEOGRAPH-9662 0x9663 陣 CJK UNIFIED IDEOGRAPH-9663 0x9664 除 CJK UNIFIED IDEOGRAPH-9664 0x9668 陨 CJK UNIFIED IDEOGRAPH-9668 0x9669 险 CJK UNIFIED IDEOGRAPH-9669 0x966A 陪 CJK UNIFIED IDEOGRAPH-966A 0x9670 陰 CJK UNIFIED IDEOGRAPH-9670 0x9672 陲 CJK UNIFIED IDEOGRAPH-9672 0x9673 陳 CJK UNIFIED IDEOGRAPH-9673 0x9675 陵 CJK UNIFIED IDEOGRAPH-9675 0x9676 陶 CJK UNIFIED IDEOGRAPH-9676 0x9677 陷 CJK UNIFIED IDEOGRAPH-9677 0x9678 陸 CJK UNIFIED IDEOGRAPH-9678 0x967A 険 CJK UNIFIED IDEOGRAPH-967A 0x967D 陽 CJK UNIFIED IDEOGRAPH-967D 0x9685 隅 CJK UNIFIED IDEOGRAPH-9685 0x9686 隆 CJK UNIFIED IDEOGRAPH-9686 0x9688 隈 CJK UNIFIED IDEOGRAPH-9688 0x968A 隊 CJK UNIFIED IDEOGRAPH-968A 0x968B 隋 CJK UNIFIED IDEOGRAPH-968B 0x968D 隍 CJK UNIFIED IDEOGRAPH-968D 0x968E 階 CJK UNIFIED IDEOGRAPH-968E 0x968F 随 CJK UNIFIED IDEOGRAPH-968F 0x9690 隐 CJK UNIFIED IDEOGRAPH-9690 0x9694 隔 CJK UNIFIED IDEOGRAPH-9694 0x9697 隗 CJK UNIFIED IDEOGRAPH-9697 0x9698 隘 CJK UNIFIED IDEOGRAPH-9698 0x9699 隙 CJK UNIFIED IDEOGRAPH-9699 0x969B 際 CJK UNIFIED IDEOGRAPH-969B 0x969C 障 CJK UNIFIED IDEOGRAPH-969C 0x96A0 隠 CJK UNIFIED IDEOGRAPH-96A0 0x96A3 隣 CJK UNIFIED IDEOGRAPH-96A3 0x96A7 隧 CJK UNIFIED IDEOGRAPH-96A7 0x96A8 隨 CJK UNIFIED IDEOGRAPH-96A8 0x96AA 險 CJK UNIFIED IDEOGRAPH-96AA 0x96B0 隰 CJK UNIFIED IDEOGRAPH-96B0 0x96B1 隱 CJK UNIFIED IDEOGRAPH-96B1 0x96B6 隶 CJK UNIFIED IDEOGRAPH-96B6 0x96B7 隷 CJK UNIFIED IDEOGRAPH-96B7 0x96B8 隸 CJK UNIFIED IDEOGRAPH-96B8 0x96B9 隹 CJK UNIFIED IDEOGRAPH-96B9 0x96BB 隻 CJK UNIFIED IDEOGRAPH-96BB 0x96BC 隼 CJK UNIFIED IDEOGRAPH-96BC 0x96BD 隽 CJK UNIFIED IDEOGRAPH-96BD 0x96BE 难 CJK UNIFIED IDEOGRAPH-96BE 0x96C0 雀 CJK UNIFIED IDEOGRAPH-96C0 0x96C1 雁 CJK UNIFIED IDEOGRAPH-96C1 0x96C4 雄 CJK UNIFIED IDEOGRAPH-96C4 0x96C5 雅 CJK UNIFIED IDEOGRAPH-96C5 0x96C6 集 CJK UNIFIED IDEOGRAPH-96C6 0x96C7 雇 CJK UNIFIED IDEOGRAPH-96C7 0x96C9 雉 CJK UNIFIED IDEOGRAPH-96C9 0x96CC 雌 CJK UNIFIED IDEOGRAPH-96CC 0x96CD 雍 CJK UNIFIED IDEOGRAPH-96CD 0x96CE 雎 CJK UNIFIED IDEOGRAPH-96CE 0x96CF 雏 CJK UNIFIED IDEOGRAPH-96CF 0x96D1 雑 CJK UNIFIED IDEOGRAPH-96D1 0x96D2 雒 CJK UNIFIED IDEOGRAPH-96D2 0x96D5 雕 CJK UNIFIED IDEOGRAPH-96D5 0x96D6 雖 CJK UNIFIED IDEOGRAPH-96D6 0x96D9 雙 CJK UNIFIED IDEOGRAPH-96D9 0x96DB 雛 CJK UNIFIED IDEOGRAPH-96DB 0x96DC 雜 CJK UNIFIED IDEOGRAPH-96DC 0x96DE 雞 CJK UNIFIED IDEOGRAPH-96DE 0x96E2 離 CJK UNIFIED IDEOGRAPH-96E2 0x96E3 難 CJK UNIFIED IDEOGRAPH-96E3 0x96E8 雨 CJK UNIFIED IDEOGRAPH-96E8 0x96EA 雪 CJK UNIFIED IDEOGRAPH-96EA 0x96EB 雫 CJK UNIFIED IDEOGRAPH-96EB 0x96EF 雯 CJK UNIFIED IDEOGRAPH-96EF 0x96F2 雲 CJK UNIFIED IDEOGRAPH-96F2 0x96F3 雳 CJK UNIFIED IDEOGRAPH-96F3 0x96F6 零 CJK UNIFIED IDEOGRAPH-96F6 0x96F7 雷 CJK UNIFIED IDEOGRAPH-96F7 0x96F9 雹 CJK UNIFIED IDEOGRAPH-96F9 0x96FB 電 CJK UNIFIED IDEOGRAPH-96FB 0x96FE 雾 CJK UNIFIED IDEOGRAPH-96FE 0x9700 需 CJK UNIFIED IDEOGRAPH-9700 0x9701 霁 CJK UNIFIED IDEOGRAPH-9701 0x9704 霄 CJK UNIFIED IDEOGRAPH-9704 0x9706 霆 CJK UNIFIED IDEOGRAPH-9706 0x9707 震 CJK UNIFIED IDEOGRAPH-9707 0x9708 霈 CJK UNIFIED IDEOGRAPH-9708 0x9709 霉 CJK UNIFIED IDEOGRAPH-9709 0x970A 霊 CJK UNIFIED IDEOGRAPH-970A 0x970D 霍 CJK UNIFIED IDEOGRAPH-970D 0x970E 霎 CJK UNIFIED IDEOGRAPH-970E 0x970F 霏 CJK UNIFIED IDEOGRAPH-970F 0x9711 霑 CJK UNIFIED IDEOGRAPH-9711 0x9713 霓 CJK UNIFIED IDEOGRAPH-9713 0x9716 霖 CJK UNIFIED IDEOGRAPH-9716 0x971C 霜 CJK UNIFIED IDEOGRAPH-971C 0x971E 霞 CJK UNIFIED IDEOGRAPH-971E 0x9727 霧 CJK UNIFIED IDEOGRAPH-9727 0x972D 霭 CJK UNIFIED IDEOGRAPH-972D 0x9730 霰 CJK UNIFIED IDEOGRAPH-9730 0x9732 露 CJK UNIFIED IDEOGRAPH-9732 0x9738 霸 CJK UNIFIED IDEOGRAPH-9738 0x9739 霹 CJK UNIFIED IDEOGRAPH-9739 0x973E 霾 CJK UNIFIED IDEOGRAPH-973E 0x9748 靈 CJK UNIFIED IDEOGRAPH-9748 0x9751 靑 CJK UNIFIED IDEOGRAPH-9751 0x9752 青 CJK UNIFIED IDEOGRAPH-9752 0x9753 靓 CJK UNIFIED IDEOGRAPH-9753 0x9756 靖 CJK UNIFIED IDEOGRAPH-9756 0x9759 静 CJK UNIFIED IDEOGRAPH-9759 0x975A 靚 CJK UNIFIED IDEOGRAPH-975A 0x975B 靛 CJK UNIFIED IDEOGRAPH-975B 0x975C 靜 CJK UNIFIED IDEOGRAPH-975C 0x975E 非 CJK UNIFIED IDEOGRAPH-975E 0x9760 靠 CJK UNIFIED IDEOGRAPH-9760 0x9761 靡 CJK UNIFIED IDEOGRAPH-9761 0x9762 面 CJK UNIFIED IDEOGRAPH-9762 0x9765 靥 CJK UNIFIED IDEOGRAPH-9765 0x9769 革 CJK UNIFIED IDEOGRAPH-9769 0x9773 靳 CJK UNIFIED IDEOGRAPH-9773 0x9774 靴 CJK UNIFIED IDEOGRAPH-9774 0x9776 靶 CJK UNIFIED IDEOGRAPH-9776 0x977C 靼 CJK UNIFIED IDEOGRAPH-977C 0x9785 鞅 CJK UNIFIED IDEOGRAPH-9785 0x978B 鞋 CJK UNIFIED IDEOGRAPH-978B 0x978D 鞍 CJK UNIFIED IDEOGRAPH-978D 0x9791 鞑 CJK UNIFIED IDEOGRAPH-9791 0x9798 鞘 CJK UNIFIED IDEOGRAPH-9798 0x97A0 鞠 CJK UNIFIED IDEOGRAPH-97A0 0x97A3 鞣 CJK UNIFIED IDEOGRAPH-97A3 0x97AD 鞭 CJK UNIFIED IDEOGRAPH-97AD 0x97CB 韋 CJK UNIFIED IDEOGRAPH-97CB 0x97D3 韓 CJK UNIFIED IDEOGRAPH-97D3 0x97E6 韦 CJK UNIFIED IDEOGRAPH-97E6 0x97E7 韧 CJK UNIFIED IDEOGRAPH-97E7 0x97E9 韩 CJK UNIFIED IDEOGRAPH-97E9 0x97EA 韪 CJK UNIFIED IDEOGRAPH-97EA 0x97EB 韫 CJK UNIFIED IDEOGRAPH-97EB 0x97EC 韬 CJK UNIFIED IDEOGRAPH-97EC 0x97ED 韭 CJK UNIFIED IDEOGRAPH-97ED 0x97F3 音 CJK UNIFIED IDEOGRAPH-97F3 0x97F5 韵 CJK UNIFIED IDEOGRAPH-97F5 0x97F6 韶 CJK UNIFIED IDEOGRAPH-97F6 0x97FB 韻 CJK UNIFIED IDEOGRAPH-97FB 0x97FF 響 CJK UNIFIED IDEOGRAPH-97FF 0x9801 頁 CJK UNIFIED IDEOGRAPH-9801 0x9802 頂 CJK UNIFIED IDEOGRAPH-9802 0x9803 頃 CJK UNIFIED IDEOGRAPH-9803 0x9805 項 CJK UNIFIED IDEOGRAPH-9805 0x9806 順 CJK UNIFIED IDEOGRAPH-9806 0x9808 須 CJK UNIFIED IDEOGRAPH-9808 0x980C 頌 CJK UNIFIED IDEOGRAPH-980C 0x9810 預 CJK UNIFIED IDEOGRAPH-9810 0x9811 頑 CJK UNIFIED IDEOGRAPH-9811 0x9812 頒 CJK UNIFIED IDEOGRAPH-9812 0x9813 頓 CJK UNIFIED IDEOGRAPH-9813 0x9814 頔 CJK UNIFIED IDEOGRAPH-9814 0x9818 領 CJK UNIFIED IDEOGRAPH-9818 0x982B 頫 CJK UNIFIED IDEOGRAPH-982B 0x982D 頭 CJK UNIFIED IDEOGRAPH-982D 0x9838 頸 CJK UNIFIED IDEOGRAPH-9838 0x983B 頻 CJK UNIFIED IDEOGRAPH-983B 0x983C 頼 CJK UNIFIED IDEOGRAPH-983C 0x9846 顆 CJK UNIFIED IDEOGRAPH-9846 0x984C 題 CJK UNIFIED IDEOGRAPH-984C 0x984D 額 CJK UNIFIED IDEOGRAPH-984D 0x984F 顏 CJK UNIFIED IDEOGRAPH-984F 0x9854 顔 CJK UNIFIED IDEOGRAPH-9854 0x9858 願 CJK UNIFIED IDEOGRAPH-9858 0x985E 類 CJK UNIFIED IDEOGRAPH-985E 0x9867 顧 CJK UNIFIED IDEOGRAPH-9867 0x986F 顯 CJK UNIFIED IDEOGRAPH-986F 0x9875 页 CJK UNIFIED IDEOGRAPH-9875 0x9876 顶 CJK UNIFIED IDEOGRAPH-9876 0x9877 顷 CJK UNIFIED IDEOGRAPH-9877 0x9879 项 CJK UNIFIED IDEOGRAPH-9879 0x987A 顺 CJK UNIFIED IDEOGRAPH-987A 0x987B 须 CJK UNIFIED IDEOGRAPH-987B 0x987C 顼 CJK UNIFIED IDEOGRAPH-987C 0x987D 顽 CJK UNIFIED IDEOGRAPH-987D 0x987E 顾 CJK UNIFIED IDEOGRAPH-987E 0x987F 顿 CJK UNIFIED IDEOGRAPH-987F 0x9880 颀 CJK UNIFIED IDEOGRAPH-9880 0x9881 颁 CJK UNIFIED IDEOGRAPH-9881 0x9882 颂 CJK UNIFIED IDEOGRAPH-9882 0x9884 预 CJK UNIFIED IDEOGRAPH-9884 0x9885 颅 CJK UNIFIED IDEOGRAPH-9885 0x9886 领 CJK UNIFIED IDEOGRAPH-9886 0x9887 颇 CJK UNIFIED IDEOGRAPH-9887 0x9888 颈 CJK UNIFIED IDEOGRAPH-9888 0x9889 颉 CJK UNIFIED IDEOGRAPH-9889 0x988A 颊 CJK UNIFIED IDEOGRAPH-988A 0x988C 颌 CJK UNIFIED IDEOGRAPH-988C 0x988D 颍 CJK UNIFIED IDEOGRAPH-988D 0x988F 颏 CJK UNIFIED IDEOGRAPH-988F 0x9890 颐 CJK UNIFIED IDEOGRAPH-9890 0x9891 频 CJK UNIFIED IDEOGRAPH-9891 0x9893 颓 CJK UNIFIED IDEOGRAPH-9893 0x9894 颔 CJK UNIFIED IDEOGRAPH-9894 0x9896 颖 CJK UNIFIED IDEOGRAPH-9896 0x9897 颗 CJK UNIFIED IDEOGRAPH-9897 0x9898 题 CJK UNIFIED IDEOGRAPH-9898 0x989A 颚 CJK UNIFIED IDEOGRAPH-989A 0x989B 颛 CJK UNIFIED IDEOGRAPH-989B 0x989C 颜 CJK UNIFIED IDEOGRAPH-989C 0x989D 额 CJK UNIFIED IDEOGRAPH-989D 0x989E 颞 CJK UNIFIED IDEOGRAPH-989E 0x98A0 颠 CJK UNIFIED IDEOGRAPH-98A0 0x98A1 颡 CJK UNIFIED IDEOGRAPH-98A1 0x98A2 颢 CJK UNIFIED IDEOGRAPH-98A2 0x98A4 颤 CJK UNIFIED IDEOGRAPH-98A4 0x98A6 颦 CJK UNIFIED IDEOGRAPH-98A6 0x98A7 颧 CJK UNIFIED IDEOGRAPH-98A7 0x98A8 風 CJK UNIFIED IDEOGRAPH-98A8 0x98B1 颱 CJK UNIFIED IDEOGRAPH-98B1 0x98C4 飄 CJK UNIFIED IDEOGRAPH-98C4 0x98CE 风 CJK UNIFIED IDEOGRAPH-98CE 0x98CF 飏 CJK UNIFIED IDEOGRAPH-98CF 0x98D2 飒 CJK UNIFIED IDEOGRAPH-98D2 0x98D3 飓 CJK UNIFIED IDEOGRAPH-98D3 0x98D5 飕 CJK UNIFIED IDEOGRAPH-98D5 0x98D8 飘 CJK UNIFIED IDEOGRAPH-98D8 0x98D9 飙 CJK UNIFIED IDEOGRAPH-98D9 0x98DA 飚 CJK UNIFIED IDEOGRAPH-98DA 0x98DB 飛 CJK UNIFIED IDEOGRAPH-98DB 0x98DE 飞 CJK UNIFIED IDEOGRAPH-98DE 0x98DF 食 CJK UNIFIED IDEOGRAPH-98DF 0x98E8 飨 CJK UNIFIED IDEOGRAPH-98E8 0x98EF 飯 CJK UNIFIED IDEOGRAPH-98EF 0x98F2 飲 CJK UNIFIED IDEOGRAPH-98F2 0x98FC 飼 CJK UNIFIED IDEOGRAPH-98FC 0x98FD 飽 CJK UNIFIED IDEOGRAPH-98FD 0x98FE 飾 CJK UNIFIED IDEOGRAPH-98FE 0x9905 餅 CJK UNIFIED IDEOGRAPH-9905 0x990A 養 CJK UNIFIED IDEOGRAPH-990A 0x990C 餌 CJK UNIFIED IDEOGRAPH-990C 0x990D 餍 CJK UNIFIED IDEOGRAPH-990D 0x9910 餐 CJK UNIFIED IDEOGRAPH-9910 0x9913 餓 CJK UNIFIED IDEOGRAPH-9913 0x9918 餘 CJK UNIFIED IDEOGRAPH-9918 0x9928 館 CJK UNIFIED IDEOGRAPH-9928 0x992E 餮 CJK UNIFIED IDEOGRAPH-992E 0x9945 饅 CJK UNIFIED IDEOGRAPH-9945 0x9951 饑 CJK UNIFIED IDEOGRAPH-9951 0x9955 饕 CJK UNIFIED IDEOGRAPH-9955 0x9965 饥 CJK UNIFIED IDEOGRAPH-9965 0x9967 饧 CJK UNIFIED IDEOGRAPH-9967 0x9968 饨 CJK UNIFIED IDEOGRAPH-9968 0x996A 饪 CJK UNIFIED IDEOGRAPH-996A 0x996C 饬 CJK UNIFIED IDEOGRAPH-996C 0x996D 饭 CJK UNIFIED IDEOGRAPH-996D 0x996E 饮 CJK UNIFIED IDEOGRAPH-996E 0x996F 饯 CJK UNIFIED IDEOGRAPH-996F 0x9970 饰 CJK UNIFIED IDEOGRAPH-9970 0x9971 饱 CJK UNIFIED IDEOGRAPH-9971 0x9972 饲 CJK UNIFIED IDEOGRAPH-9972 0x9974 饴 CJK UNIFIED IDEOGRAPH-9974 0x9975 饵 CJK UNIFIED IDEOGRAPH-9975 0x9976 饶 CJK UNIFIED IDEOGRAPH-9976 0x9977 饷 CJK UNIFIED IDEOGRAPH-9977 0x997A 饺 CJK UNIFIED IDEOGRAPH-997A 0x997C 饼 CJK UNIFIED IDEOGRAPH-997C 0x997D 饽 CJK UNIFIED IDEOGRAPH-997D 0x997F 饿 CJK UNIFIED IDEOGRAPH-997F 0x9980 馀 CJK UNIFIED IDEOGRAPH-9980 0x9981 馁 CJK UNIFIED IDEOGRAPH-9981 0x9984 馄 CJK UNIFIED IDEOGRAPH-9984 0x9985 馅 CJK UNIFIED IDEOGRAPH-9985 0x9986 馆 CJK UNIFIED IDEOGRAPH-9986 0x9988 馈 CJK UNIFIED IDEOGRAPH-9988 0x998A 馊 CJK UNIFIED IDEOGRAPH-998A 0x998B 馋 CJK UNIFIED IDEOGRAPH-998B 0x998D 馍 CJK UNIFIED IDEOGRAPH-998D 0x998F 馏 CJK UNIFIED IDEOGRAPH-998F 0x9990 馐 CJK UNIFIED IDEOGRAPH-9990 0x9992 馒 CJK UNIFIED IDEOGRAPH-9992 0x9994 馔 CJK UNIFIED IDEOGRAPH-9994 0x9995 馕 CJK UNIFIED IDEOGRAPH-9995 0x9996 首 CJK UNIFIED IDEOGRAPH-9996 0x9997 馗 CJK UNIFIED IDEOGRAPH-9997 0x9999 香 CJK UNIFIED IDEOGRAPH-9999 0x99A5 馥 CJK UNIFIED IDEOGRAPH-99A5 0x99A8 馨 CJK UNIFIED IDEOGRAPH-99A8 0x99AC 馬 CJK UNIFIED IDEOGRAPH-99AC 0x99AE 馮 CJK UNIFIED IDEOGRAPH-99AE 0x99B3 馳 CJK UNIFIED IDEOGRAPH-99B3 0x99B4 馴 CJK UNIFIED IDEOGRAPH-99B4 0x99C5 駅 CJK UNIFIED IDEOGRAPH-99C5 0x99D0 駐 CJK UNIFIED IDEOGRAPH-99D0 0x99D5 駕 CJK UNIFIED IDEOGRAPH-99D5 0x99DB 駛 CJK UNIFIED IDEOGRAPH-99DB 0x99E1 駡 CJK UNIFIED IDEOGRAPH-99E1 0x99FF 駿 CJK UNIFIED IDEOGRAPH-99FF 0x9A0E 騎 CJK UNIFIED IDEOGRAPH-9A0E 0x9A12 騒 CJK UNIFIED IDEOGRAPH-9A12 0x9A13 験 CJK UNIFIED IDEOGRAPH-9A13 0x9A19 騙 CJK UNIFIED IDEOGRAPH-9A19 0x9A30 騰 CJK UNIFIED IDEOGRAPH-9A30 0x9A37 騷 CJK UNIFIED IDEOGRAPH-9A37 0x9A45 驅 CJK UNIFIED IDEOGRAPH-9A45 0x9A57 驗 CJK UNIFIED IDEOGRAPH-9A57 0x9A5A 驚 CJK UNIFIED IDEOGRAPH-9A5A 0x9A5F 驟 CJK UNIFIED IDEOGRAPH-9A5F 0x9A6C 马 CJK UNIFIED IDEOGRAPH-9A6C 0x9A6D 驭 CJK UNIFIED IDEOGRAPH-9A6D 0x9A6E 驮 CJK UNIFIED IDEOGRAPH-9A6E 0x9A6F 驯 CJK UNIFIED IDEOGRAPH-9A6F 0x9A70 驰 CJK UNIFIED IDEOGRAPH-9A70 0x9A71 驱 CJK UNIFIED IDEOGRAPH-9A71 0x9A73 驳 CJK UNIFIED IDEOGRAPH-9A73 0x9A74 驴 CJK UNIFIED IDEOGRAPH-9A74 0x9A76 驶 CJK UNIFIED IDEOGRAPH-9A76 0x9A77 驷 CJK UNIFIED IDEOGRAPH-9A77 0x9A78 驸 CJK UNIFIED IDEOGRAPH-9A78 0x9A79 驹 CJK UNIFIED IDEOGRAPH-9A79 0x9A7B 驻 CJK UNIFIED IDEOGRAPH-9A7B 0x9A7C 驼 CJK UNIFIED IDEOGRAPH-9A7C 0x9A7D 驽 CJK UNIFIED IDEOGRAPH-9A7D 0x9A7E 驾 CJK UNIFIED IDEOGRAPH-9A7E 0x9A7F 驿 CJK UNIFIED IDEOGRAPH-9A7F 0x9A81 骁 CJK UNIFIED IDEOGRAPH-9A81 0x9A82 骂 CJK UNIFIED IDEOGRAPH-9A82 0x9A84 骄 CJK UNIFIED IDEOGRAPH-9A84 0x9A85 骅 CJK UNIFIED IDEOGRAPH-9A85 0x9A86 骆 CJK UNIFIED IDEOGRAPH-9A86 0x9A87 骇 CJK UNIFIED IDEOGRAPH-9A87 0x9A88 骈 CJK UNIFIED IDEOGRAPH-9A88 0x9A8A 骊 CJK UNIFIED IDEOGRAPH-9A8A 0x9A8B 骋 CJK UNIFIED IDEOGRAPH-9A8B 0x9A8C 验 CJK UNIFIED IDEOGRAPH-9A8C 0x9A8F 骏 CJK UNIFIED IDEOGRAPH-9A8F 0x9A90 骐 CJK UNIFIED IDEOGRAPH-9A90 0x9A91 骑 CJK UNIFIED IDEOGRAPH-9A91 0x9A97 骗 CJK UNIFIED IDEOGRAPH-9A97 0x9A9A 骚 CJK UNIFIED IDEOGRAPH-9A9A 0x9A9B 骛 CJK UNIFIED IDEOGRAPH-9A9B 0x9A9C 骜 CJK UNIFIED IDEOGRAPH-9A9C 0x9A9D 骝 CJK UNIFIED IDEOGRAPH-9A9D 0x9A9E 骞 CJK UNIFIED IDEOGRAPH-9A9E 0x9AA0 骠 CJK UNIFIED IDEOGRAPH-9AA0 0x9AA1 骡 CJK UNIFIED IDEOGRAPH-9AA1 0x9AA2 骢 CJK UNIFIED IDEOGRAPH-9AA2 0x9AA4 骤 CJK UNIFIED IDEOGRAPH-9AA4 0x9AA5 骥 CJK UNIFIED IDEOGRAPH-9AA5 0x9AA7 骧 CJK UNIFIED IDEOGRAPH-9AA7 0x9AA8 骨 CJK UNIFIED IDEOGRAPH-9AA8 0x9AB0 骰 CJK UNIFIED IDEOGRAPH-9AB0 0x9AB6 骶 CJK UNIFIED IDEOGRAPH-9AB6 0x9AB7 骷 CJK UNIFIED IDEOGRAPH-9AB7 0x9AB8 骸 CJK UNIFIED IDEOGRAPH-9AB8 0x9ABC 骼 CJK UNIFIED IDEOGRAPH-9ABC 0x9AC1 髁 CJK UNIFIED IDEOGRAPH-9AC1 0x9AC2 髂 CJK UNIFIED IDEOGRAPH-9AC2 0x9AC5 髅 CJK UNIFIED IDEOGRAPH-9AC5 0x9ACB 髋 CJK UNIFIED IDEOGRAPH-9ACB 0x9ACC 髌 CJK UNIFIED IDEOGRAPH-9ACC 0x9AD2 髒 CJK UNIFIED IDEOGRAPH-9AD2 0x9AD3 髓 CJK UNIFIED IDEOGRAPH-9AD3 0x9AD4 體 CJK UNIFIED IDEOGRAPH-9AD4 0x9AD8 高 CJK UNIFIED IDEOGRAPH-9AD8 0x9AD9 髙 CJK UNIFIED IDEOGRAPH-9AD9 0x9AE6 髦 CJK UNIFIED IDEOGRAPH-9AE6 0x9AEA 髪 CJK UNIFIED IDEOGRAPH-9AEA 0x9AEE 髮 CJK UNIFIED IDEOGRAPH-9AEE 0x9AEF 髯 CJK UNIFIED IDEOGRAPH-9AEF 0x9AFB 髻 CJK UNIFIED IDEOGRAPH-9AFB 0x9B03 鬃 CJK UNIFIED IDEOGRAPH-9B03 0x9B06 鬆 CJK UNIFIED IDEOGRAPH-9B06 0x9B13 鬓 CJK UNIFIED IDEOGRAPH-9B13 0x9B1F 鬟 CJK UNIFIED IDEOGRAPH-9B1F 0x9B23 鬣 CJK UNIFIED IDEOGRAPH-9B23 0x9B25 鬥 CJK UNIFIED IDEOGRAPH-9B25 0x9B27 鬧 CJK UNIFIED IDEOGRAPH-9B27 0x9B31 鬱 CJK UNIFIED IDEOGRAPH-9B31 0x9B3B 鬻 CJK UNIFIED IDEOGRAPH-9B3B 0x9B3C 鬼 CJK UNIFIED IDEOGRAPH-9B3C 0x9B41 魁 CJK UNIFIED IDEOGRAPH-9B41 0x9B42 魂 CJK UNIFIED IDEOGRAPH-9B42 0x9B43 魃 CJK UNIFIED IDEOGRAPH-9B43 0x9B44 魄 CJK UNIFIED IDEOGRAPH-9B44 0x9B45 魅 CJK UNIFIED IDEOGRAPH-9B45 0x9B47 魇 CJK UNIFIED IDEOGRAPH-9B47 0x9B49 魉 CJK UNIFIED IDEOGRAPH-9B49 0x9B4D 魍 CJK UNIFIED IDEOGRAPH-9B4D 0x9B4F 魏 CJK UNIFIED IDEOGRAPH-9B4F 0x9B51 魑 CJK UNIFIED IDEOGRAPH-9B51 0x9B54 魔 CJK UNIFIED IDEOGRAPH-9B54 0x9B5A 魚 CJK UNIFIED IDEOGRAPH-9B5A 0x9B5F 魟 CJK UNIFIED IDEOGRAPH-9B5F 0x9B6F 魯 CJK UNIFIED IDEOGRAPH-9B6F 0x9B91 鮑 CJK UNIFIED IDEOGRAPH-9B91 0x9BAE 鮮 CJK UNIFIED IDEOGRAPH-9BAE 0x9C7C 鱼 CJK UNIFIED IDEOGRAPH-9C7C 0x9C7F 鱿 CJK UNIFIED IDEOGRAPH-9C7F 0x9C81 鲁 CJK UNIFIED IDEOGRAPH-9C81 0x9C85 鲅 CJK UNIFIED IDEOGRAPH-9C85 0x9C87 鲇 CJK UNIFIED IDEOGRAPH-9C87 0x9C88 鲈 CJK UNIFIED IDEOGRAPH-9C88 0x9C8D 鲍 CJK UNIFIED IDEOGRAPH-9C8D 0x9C91 鲑 CJK UNIFIED IDEOGRAPH-9C91 0x9C94 鲔 CJK UNIFIED IDEOGRAPH-9C94 0x9C9B 鲛 CJK UNIFIED IDEOGRAPH-9C9B 0x9C9C 鲜 CJK UNIFIED IDEOGRAPH-9C9C 0x9C9F 鲟 CJK UNIFIED IDEOGRAPH-9C9F 0x9CA0 鲠 CJK UNIFIED IDEOGRAPH-9CA0 0x9CA2 鲢 CJK UNIFIED IDEOGRAPH-9CA2 0x9CA3 鲣 CJK UNIFIED IDEOGRAPH-9CA3 0x9CA4 鲤 CJK UNIFIED IDEOGRAPH-9CA4 0x9CA8 鲨 CJK UNIFIED IDEOGRAPH-9CA8 0x9CAB 鲫 CJK UNIFIED IDEOGRAPH-9CAB 0x9CAD 鲭 CJK UNIFIED IDEOGRAPH-9CAD 0x9CAE 鲮 CJK UNIFIED IDEOGRAPH-9CAE 0x9CB1 鲱 CJK UNIFIED IDEOGRAPH-9CB1 0x9CB2 鲲 CJK UNIFIED IDEOGRAPH-9CB2 0x9CB3 鲳 CJK UNIFIED IDEOGRAPH-9CB3 0x9CB5 鲵 CJK UNIFIED IDEOGRAPH-9CB5 0x9CB6 鲶 CJK UNIFIED IDEOGRAPH-9CB6 0x9CB7 鲷 CJK UNIFIED IDEOGRAPH-9CB7 0x9CB8 鲸 CJK UNIFIED IDEOGRAPH-9CB8 0x9CBD 鲽 CJK UNIFIED IDEOGRAPH-9CBD 0x9CC3 鳃 CJK UNIFIED IDEOGRAPH-9CC3 0x9CC4 鳄 CJK UNIFIED IDEOGRAPH-9CC4 0x9CC5 鳅 CJK UNIFIED IDEOGRAPH-9CC5 0x9CCA 鳊 CJK UNIFIED IDEOGRAPH-9CCA 0x9CCC 鳌 CJK UNIFIED IDEOGRAPH-9CCC 0x9CCD 鳍 CJK UNIFIED IDEOGRAPH-9CCD 0x9CCF 鳏 CJK UNIFIED IDEOGRAPH-9CCF 0x9CD0 鳐 CJK UNIFIED IDEOGRAPH-9CD0 0x9CD4 鳔 CJK UNIFIED IDEOGRAPH-9CD4 0x9CD5 鳕 CJK UNIFIED IDEOGRAPH-9CD5 0x9CD6 鳖 CJK UNIFIED IDEOGRAPH-9CD6 0x9CD7 鳗 CJK UNIFIED IDEOGRAPH-9CD7 0x9CD9 鳙 CJK UNIFIED IDEOGRAPH-9CD9 0x9CDC 鳜 CJK UNIFIED IDEOGRAPH-9CDC 0x9CDD 鳝 CJK UNIFIED IDEOGRAPH-9CDD 0x9CDE 鳞 CJK UNIFIED IDEOGRAPH-9CDE 0x9CDF 鳟 CJK UNIFIED IDEOGRAPH-9CDF 0x9CE5 鳥 CJK UNIFIED IDEOGRAPH-9CE5 0x9CF3 鳳 CJK UNIFIED IDEOGRAPH-9CF3 0x9CF4 鳴 CJK UNIFIED IDEOGRAPH-9CF4 0x9D09 鴉 CJK UNIFIED IDEOGRAPH-9D09 0x9D28 鴨 CJK UNIFIED IDEOGRAPH-9D28 0x9D3B 鴻 CJK UNIFIED IDEOGRAPH-9D3B 0x9D5D 鵝 CJK UNIFIED IDEOGRAPH-9D5D 0x9D6C 鵬 CJK UNIFIED IDEOGRAPH-9D6C 0x9DB4 鶴 CJK UNIFIED IDEOGRAPH-9DB4 0x9DF9 鷹 CJK UNIFIED IDEOGRAPH-9DF9 0x9E1F 鸟 CJK UNIFIED IDEOGRAPH-9E1F 0x9E20 鸠 CJK UNIFIED IDEOGRAPH-9E20 0x9E21 鸡 CJK UNIFIED IDEOGRAPH-9E21 0x9E22 鸢 CJK UNIFIED IDEOGRAPH-9E22 0x9E23 鸣 CJK UNIFIED IDEOGRAPH-9E23 0x9E25 鸥 CJK UNIFIED IDEOGRAPH-9E25 0x9E26 鸦 CJK UNIFIED IDEOGRAPH-9E26 0x9E28 鸨 CJK UNIFIED IDEOGRAPH-9E28 0x9E29 鸩 CJK UNIFIED IDEOGRAPH-9E29 0x9E2A 鸪 CJK UNIFIED IDEOGRAPH-9E2A 0x9E2B 鸫 CJK UNIFIED IDEOGRAPH-9E2B 0x9E2C 鸬 CJK UNIFIED IDEOGRAPH-9E2C 0x9E2D 鸭 CJK UNIFIED IDEOGRAPH-9E2D 0x9E2E 鸮 CJK UNIFIED IDEOGRAPH-9E2E 0x9E2F 鸯 CJK UNIFIED IDEOGRAPH-9E2F 0x9E30 鸰 CJK UNIFIED IDEOGRAPH-9E30 0x9E31 鸱 CJK UNIFIED IDEOGRAPH-9E31 0x9E33 鸳 CJK UNIFIED IDEOGRAPH-9E33 0x9E35 鸵 CJK UNIFIED IDEOGRAPH-9E35 0x9E36 鸶 CJK UNIFIED IDEOGRAPH-9E36 0x9E37 鸷 CJK UNIFIED IDEOGRAPH-9E37 0x9E3D 鸽 CJK UNIFIED IDEOGRAPH-9E3D 0x9E3E 鸾 CJK UNIFIED IDEOGRAPH-9E3E 0x9E3F 鸿 CJK UNIFIED IDEOGRAPH-9E3F 0x9E42 鹂 CJK UNIFIED IDEOGRAPH-9E42 0x9E43 鹃 CJK UNIFIED IDEOGRAPH-9E43 0x9E44 鹄 CJK UNIFIED IDEOGRAPH-9E44 0x9E45 鹅 CJK UNIFIED IDEOGRAPH-9E45 0x9E48 鹈 CJK UNIFIED IDEOGRAPH-9E48 0x9E49 鹉 CJK UNIFIED IDEOGRAPH-9E49 0x9E4A 鹊 CJK UNIFIED IDEOGRAPH-9E4A 0x9E4C 鹌 CJK UNIFIED IDEOGRAPH-9E4C 0x9E4F 鹏 CJK UNIFIED IDEOGRAPH-9E4F 0x9E51 鹑 CJK UNIFIED IDEOGRAPH-9E51 0x9E55 鹕 CJK UNIFIED IDEOGRAPH-9E55 0x9E57 鹗 CJK UNIFIED IDEOGRAPH-9E57 0x9E58 鹘 CJK UNIFIED IDEOGRAPH-9E58 0x9E5A 鹚 CJK UNIFIED IDEOGRAPH-9E5A 0x9E5C 鹜 CJK UNIFIED IDEOGRAPH-9E5C 0x9E5E 鹞 CJK UNIFIED IDEOGRAPH-9E5E 0x9E64 鹤 CJK UNIFIED IDEOGRAPH-9E64 0x9E66 鹦 CJK UNIFIED IDEOGRAPH-9E66 0x9E67 鹧 CJK UNIFIED IDEOGRAPH-9E67 0x9E69 鹩 CJK UNIFIED IDEOGRAPH-9E69 0x9E6B 鹫 CJK UNIFIED IDEOGRAPH-9E6B 0x9E6C 鹬 CJK UNIFIED IDEOGRAPH-9E6C 0x9E6D 鹭 CJK UNIFIED IDEOGRAPH-9E6D 0x9E6E 鹮 CJK UNIFIED IDEOGRAPH-9E6E 0x9E70 鹰 CJK UNIFIED IDEOGRAPH-9E70 0x9E73 鹳 CJK UNIFIED IDEOGRAPH-9E73 0x9E79 鹹 CJK UNIFIED IDEOGRAPH-9E79 0x9E7D 鹽 CJK UNIFIED IDEOGRAPH-9E7D 0x9E7F 鹿 CJK UNIFIED IDEOGRAPH-9E7F 0x9E82 麂 CJK UNIFIED IDEOGRAPH-9E82 0x9E8B 麋 CJK UNIFIED IDEOGRAPH-9E8B 0x9E92 麒 CJK UNIFIED IDEOGRAPH-9E92 0x9E93 麓 CJK UNIFIED IDEOGRAPH-9E93 0x9E97 麗 CJK UNIFIED IDEOGRAPH-9E97 0x9E9D 麝 CJK UNIFIED IDEOGRAPH-9E9D 0x9E9F 麟 CJK UNIFIED IDEOGRAPH-9E9F 0x9EA5 麥 CJK UNIFIED IDEOGRAPH-9EA5 0x9EA6 麦 CJK UNIFIED IDEOGRAPH-9EA6 0x9EB5 麵 CJK UNIFIED IDEOGRAPH-9EB5 0x9EB8 麸 CJK UNIFIED IDEOGRAPH-9EB8 0x9EBB 麻 CJK UNIFIED IDEOGRAPH-9EBB 0x9EBC 麼 CJK UNIFIED IDEOGRAPH-9EBC 0x9EBD 麽 CJK UNIFIED IDEOGRAPH-9EBD 0x9EBE 麾 CJK UNIFIED IDEOGRAPH-9EBE 0x9EC3 黃 CJK UNIFIED IDEOGRAPH-9EC3 0x9EC4 黄 CJK UNIFIED IDEOGRAPH-9EC4 0x9EC9 黉 CJK UNIFIED IDEOGRAPH-9EC9 0x9ECD 黍 CJK UNIFIED IDEOGRAPH-9ECD 0x9ECE 黎 CJK UNIFIED IDEOGRAPH-9ECE 0x9ECF 黏 CJK UNIFIED IDEOGRAPH-9ECF 0x9ED1 黑 CJK UNIFIED IDEOGRAPH-9ED1 0x9ED2 黒 CJK UNIFIED IDEOGRAPH-9ED2 0x9ED4 黔 CJK UNIFIED IDEOGRAPH-9ED4 0x9ED8 默 CJK UNIFIED IDEOGRAPH-9ED8 0x9ED9 黙 CJK UNIFIED IDEOGRAPH-9ED9 0x9EDB 黛 CJK UNIFIED IDEOGRAPH-9EDB 0x9EDC 黜 CJK UNIFIED IDEOGRAPH-9EDC 0x9EDD 黝 CJK UNIFIED IDEOGRAPH-9EDD 0x9EDE 點 CJK UNIFIED IDEOGRAPH-9EDE 0x9EDF 黟 CJK UNIFIED IDEOGRAPH-9EDF 0x9EE0 黠 CJK UNIFIED IDEOGRAPH-9EE0 0x9EE8 黨 CJK UNIFIED IDEOGRAPH-9EE8 0x9EEF 黯 CJK UNIFIED IDEOGRAPH-9EEF 0x9EFE 黾 CJK UNIFIED IDEOGRAPH-9EFE 0x9F0B 鼋 CJK UNIFIED IDEOGRAPH-9F0B 0x9F0E 鼎 CJK UNIFIED IDEOGRAPH-9F0E 0x9F10 鼐 CJK UNIFIED IDEOGRAPH-9F10 0x9F13 鼓 CJK UNIFIED IDEOGRAPH-9F13 0x9F20 鼠 CJK UNIFIED IDEOGRAPH-9F20 0x9F2C 鼬 CJK UNIFIED IDEOGRAPH-9F2C 0x9F39 鼹 CJK UNIFIED IDEOGRAPH-9F39 0x9F3B 鼻 CJK UNIFIED IDEOGRAPH-9F3B 0x9F3E 鼾 CJK UNIFIED IDEOGRAPH-9F3E 0x9F41 齁 CJK UNIFIED IDEOGRAPH-9F41 0x9F4A 齊 CJK UNIFIED IDEOGRAPH-9F4A 0x9F4B 齋 CJK UNIFIED IDEOGRAPH-9F4B 0x9F50 齐 CJK UNIFIED IDEOGRAPH-9F50 0x9F52 齒 CJK UNIFIED IDEOGRAPH-9F52 0x9F61 齡 CJK UNIFIED IDEOGRAPH-9F61 0x9F7F 齿 CJK UNIFIED IDEOGRAPH-9F7F 0x9F84 龄 CJK UNIFIED IDEOGRAPH-9F84 0x9F85 龅 CJK UNIFIED IDEOGRAPH-9F85 0x9F87 龇 CJK UNIFIED IDEOGRAPH-9F87 0x9F88 龈 CJK UNIFIED IDEOGRAPH-9F88 0x9F8A 龊 CJK UNIFIED IDEOGRAPH-9F8A 0x9F8B 龋 CJK UNIFIED IDEOGRAPH-9F8B 0x9F8C 龌 CJK UNIFIED IDEOGRAPH-9F8C 0x9F8D 龍 CJK UNIFIED IDEOGRAPH-9F8D 0x9F98 龘 CJK UNIFIED IDEOGRAPH-9F98 0x9F99 龙 CJK UNIFIED IDEOGRAPH-9F99 0x9F9A 龚 CJK UNIFIED IDEOGRAPH-9F9A 0x9F9B 龛 CJK UNIFIED IDEOGRAPH-9F9B 0x9F9C 龜 CJK UNIFIED IDEOGRAPH-9F9C 0x9F9F 龟 CJK UNIFIED IDEOGRAPH-9F9F 0xFE30 ︰ PRESENTATION FORM FOR VERTICAL TWO DOT LEADER 0xFE31 ︱ PRESENTATION FORM FOR VERTICAL EM DASH 0xFE34 ︴ PRESENTATION FORM FOR VERTICAL WAVY LOW LINE 0xFE35 ︵ PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS 0xFE36 ︶ PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS 0xFE39 ︹ PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET 0xFE3D ︽ PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET 0xFE3E ︾ PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET 0xFE3F ︿ PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET 0xFE40 ﹀ PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET 0xFE41 ﹁ PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET 0xFE43 ﹃ PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET 0xFE4B ﹋ WAVY OVERLINE 0xFE4C ﹌ DOUBLE WAVY OVERLINE 0xFE4E ﹎ CENTRELINE LOW LINE 0xFE4F ﹏ WAVY LOW LINE 0xFE50 ﹐ SMALL COMMA 0xFE51 ﹑ SMALL IDEOGRAPHIC COMMA 0xFE52 ﹒ SMALL FULL STOP 0xFE55 ﹕ SMALL COLON 0xFE56 ﹖ SMALL QUESTION MARK 0xFE5A ﹚ SMALL RIGHT PARENTHESIS 0xFE5D ﹝ SMALL LEFT TORTOISE SHELL BRACKET 0xFE5E ﹞ SMALL RIGHT TORTOISE SHELL BRACKET 0xFE61 ﹡ SMALL ASTERISK 0xFE63 ﹣ SMALL HYPHEN-MINUS 0xFE64 ﹤ SMALL LESS-THAN SIGN 0xFE65 ﹥ SMALL GREATER-THAN SIGN 0xFF01 ! FULLWIDTH EXCLAMATION MARK 0xFF02 " FULLWIDTH QUOTATION MARK 0xFF03 # FULLWIDTH NUMBER SIGN 0xFF04 $ FULLWIDTH DOLLAR SIGN 0xFF05 % FULLWIDTH PERCENT SIGN 0xFF06 & FULLWIDTH AMPERSAND 0xFF07 ' FULLWIDTH APOSTROPHE 0xFF08 ( FULLWIDTH LEFT PARENTHESIS 0xFF09 ) FULLWIDTH RIGHT PARENTHESIS 0xFF0A * FULLWIDTH ASTERISK 0xFF0B + FULLWIDTH PLUS SIGN 0xFF0C , FULLWIDTH COMMA 0xFF0D - FULLWIDTH HYPHEN-MINUS 0xFF0E . FULLWIDTH FULL STOP 0xFF0F / FULLWIDTH SOLIDUS 0xFF10 0 FULLWIDTH DIGIT ZERO 0xFF11 1 FULLWIDTH DIGIT ONE 0xFF12 2 FULLWIDTH DIGIT TWO 0xFF13 3 FULLWIDTH DIGIT THREE 0xFF14 4 FULLWIDTH DIGIT FOUR 0xFF15 5 FULLWIDTH DIGIT FIVE 0xFF16 6 FULLWIDTH DIGIT SIX 0xFF17 7 FULLWIDTH DIGIT SEVEN 0xFF18 8 FULLWIDTH DIGIT EIGHT 0xFF19 9 FULLWIDTH DIGIT NINE 0xFF1A : FULLWIDTH COLON 0xFF1B ; FULLWIDTH SEMICOLON 0xFF1C < FULLWIDTH LESS-THAN SIGN 0xFF1D = FULLWIDTH EQUALS SIGN 0xFF1E > FULLWIDTH GREATER-THAN SIGN 0xFF1F ? FULLWIDTH QUESTION MARK 0xFF20 @ FULLWIDTH COMMERCIAL AT 0xFF21 A FULLWIDTH LATIN CAPITAL LETTER A 0xFF22 B FULLWIDTH LATIN CAPITAL LETTER B 0xFF23 C FULLWIDTH LATIN CAPITAL LETTER C 0xFF24 D FULLWIDTH LATIN CAPITAL LETTER D 0xFF25 E FULLWIDTH LATIN CAPITAL LETTER E 0xFF26 F FULLWIDTH LATIN CAPITAL LETTER F 0xFF27 G FULLWIDTH LATIN CAPITAL LETTER G 0xFF28 H FULLWIDTH LATIN CAPITAL LETTER H 0xFF29 I FULLWIDTH LATIN CAPITAL LETTER I 0xFF2A J FULLWIDTH LATIN CAPITAL LETTER J 0xFF2B K FULLWIDTH LATIN CAPITAL LETTER K 0xFF2C L FULLWIDTH LATIN CAPITAL LETTER L 0xFF2D M FULLWIDTH LATIN CAPITAL LETTER M 0xFF2E N FULLWIDTH LATIN CAPITAL LETTER N 0xFF2F O FULLWIDTH LATIN CAPITAL LETTER O 0xFF30 P FULLWIDTH LATIN CAPITAL LETTER P 0xFF31 Q FULLWIDTH LATIN CAPITAL LETTER Q 0xFF32 R FULLWIDTH LATIN CAPITAL LETTER R 0xFF33 S FULLWIDTH LATIN CAPITAL LETTER S 0xFF34 T FULLWIDTH LATIN CAPITAL LETTER T 0xFF35 U FULLWIDTH LATIN CAPITAL LETTER U 0xFF36 V FULLWIDTH LATIN CAPITAL LETTER V 0xFF37 W FULLWIDTH LATIN CAPITAL LETTER W 0xFF38 X FULLWIDTH LATIN CAPITAL LETTER X 0xFF39 Y FULLWIDTH LATIN CAPITAL LETTER Y 0xFF3A Z FULLWIDTH LATIN CAPITAL LETTER Z 0xFF3B [ FULLWIDTH LEFT SQUARE BRACKET 0xFF3C \ FULLWIDTH REVERSE SOLIDUS 0xFF3D ] FULLWIDTH RIGHT SQUARE BRACKET 0xFF3E ^ FULLWIDTH CIRCUMFLEX ACCENT 0xFF3F _ FULLWIDTH LOW LINE 0xFF40 ` FULLWIDTH GRAVE ACCENT 0xFF41 a FULLWIDTH LATIN SMALL LETTER A 0xFF42 b FULLWIDTH LATIN SMALL LETTER B 0xFF43 c FULLWIDTH LATIN SMALL LETTER C 0xFF44 d FULLWIDTH LATIN SMALL LETTER D 0xFF45 e FULLWIDTH LATIN SMALL LETTER E 0xFF46 f FULLWIDTH LATIN SMALL LETTER F 0xFF47 g FULLWIDTH LATIN SMALL LETTER G 0xFF48 h FULLWIDTH LATIN SMALL LETTER H 0xFF49 i FULLWIDTH LATIN SMALL LETTER I 0xFF4B k FULLWIDTH LATIN SMALL LETTER K 0xFF4C l FULLWIDTH LATIN SMALL LETTER L 0xFF4D m FULLWIDTH LATIN SMALL LETTER M 0xFF4E n FULLWIDTH LATIN SMALL LETTER N 0xFF4F o FULLWIDTH LATIN SMALL LETTER O 0xFF50 p FULLWIDTH LATIN SMALL LETTER P 0xFF51 q FULLWIDTH LATIN SMALL LETTER Q 0xFF52 r FULLWIDTH LATIN SMALL LETTER R 0xFF53 s FULLWIDTH LATIN SMALL LETTER S 0xFF54 t FULLWIDTH LATIN SMALL LETTER T 0xFF55 u FULLWIDTH LATIN SMALL LETTER U 0xFF56 v FULLWIDTH LATIN SMALL LETTER V 0xFF57 w FULLWIDTH LATIN SMALL LETTER W 0xFF58 x FULLWIDTH LATIN SMALL LETTER X 0xFF59 y FULLWIDTH LATIN SMALL LETTER Y 0xFF5B { FULLWIDTH LEFT CURLY BRACKET 0xFF5C | FULLWIDTH VERTICAL LINE 0xFF5D } FULLWIDTH RIGHT CURLY BRACKET 0xFF5E ~ FULLWIDTH TILDE 0xFFE0 ¢ FULLWIDTH CENT SIGN 0xFFE1 £ FULLWIDTH POUND SIGN 0xFFE3  ̄ FULLWIDTH MACRON 0xFFE5 ¥ FULLWIDTH YEN SIGN Lib/gftools/encodings/chinese-traditional_unique-glyphs.nam000066400000000000000000007303561376445505300245610ustar00rootroot000000000000000x3000   IDEOGRAPHIC SPACE 0x3001 、 IDEOGRAPHIC COMMA 0x3002 。 IDEOGRAPHIC FULL STOP 0x3003 〃 DITTO MARK 0x3005 々 IDEOGRAPHIC ITERATION MARK 0x3008 〈 LEFT ANGLE BRACKET 0x3009 〉 RIGHT ANGLE BRACKET 0x300A 《 LEFT DOUBLE ANGLE BRACKET 0x300B 》 RIGHT DOUBLE ANGLE BRACKET 0x300C 「 LEFT CORNER BRACKET 0x300D 」 RIGHT CORNER BRACKET 0x300E 『 LEFT WHITE CORNER BRACKET 0x300F 』 RIGHT WHITE CORNER BRACKET 0x3010 【 LEFT BLACK LENTICULAR BRACKET 0x3011 】 RIGHT BLACK LENTICULAR BRACKET 0x3012 〒 POSTAL MARK 0x3014 〔 LEFT TORTOISE SHELL BRACKET 0x3015 〕 RIGHT TORTOISE SHELL BRACKET 0x301D 〝 REVERSED DOUBLE PRIME QUOTATION MARK 0x301E 〞 DOUBLE PRIME QUOTATION MARK 0x3021 〡 HANGZHOU NUMERAL ONE 0x3105 ㄅ BOPOMOFO LETTER B 0x3106 ㄆ BOPOMOFO LETTER P 0x3107 ㄇ BOPOMOFO LETTER M 0x3108 ㄈ BOPOMOFO LETTER F 0x3109 ㄉ BOPOMOFO LETTER D 0x310A ㄊ BOPOMOFO LETTER T 0x310B ㄋ BOPOMOFO LETTER N 0x310C ㄌ BOPOMOFO LETTER L 0x310D ㄍ BOPOMOFO LETTER G 0x310E ㄎ BOPOMOFO LETTER K 0x310F ㄏ BOPOMOFO LETTER H 0x3110 ㄐ BOPOMOFO LETTER J 0x3111 ㄑ BOPOMOFO LETTER Q 0x3112 ㄒ BOPOMOFO LETTER X 0x3113 ㄓ BOPOMOFO LETTER ZH 0x3114 ㄔ BOPOMOFO LETTER CH 0x3115 ㄕ BOPOMOFO LETTER SH 0x3116 ㄖ BOPOMOFO LETTER R 0x3117 ㄗ BOPOMOFO LETTER Z 0x3118 ㄘ BOPOMOFO LETTER C 0x3119 ㄙ BOPOMOFO LETTER S 0x311A ㄚ BOPOMOFO LETTER A 0x311B ㄛ BOPOMOFO LETTER O 0x311C ㄜ BOPOMOFO LETTER E 0x311D ㄝ BOPOMOFO LETTER EH 0x311E ㄞ BOPOMOFO LETTER AI 0x311F ㄟ BOPOMOFO LETTER EI 0x3120 ㄠ BOPOMOFO LETTER AU 0x3121 ㄡ BOPOMOFO LETTER OU 0x3122 ㄢ BOPOMOFO LETTER AN 0x3123 ㄣ BOPOMOFO LETTER EN 0x3124 ㄤ BOPOMOFO LETTER ANG 0x3125 ㄥ BOPOMOFO LETTER ENG 0x3126 ㄦ BOPOMOFO LETTER ER 0x3127 ㄧ BOPOMOFO LETTER I 0x3128 ㄨ BOPOMOFO LETTER U 0x3129 ㄩ BOPOMOFO LETTER IU 0x4E00 一 CJK UNIFIED IDEOGRAPH-4E00 0x4E01 丁 CJK UNIFIED IDEOGRAPH-4E01 0x4E03 七 CJK UNIFIED IDEOGRAPH-4E03 0x4E07 万 CJK UNIFIED IDEOGRAPH-4E07 0x4E08 丈 CJK UNIFIED IDEOGRAPH-4E08 0x4E09 三 CJK UNIFIED IDEOGRAPH-4E09 0x4E0A 上 CJK UNIFIED IDEOGRAPH-4E0A 0x4E0B 下 CJK UNIFIED IDEOGRAPH-4E0B 0x4E0D 不 CJK UNIFIED IDEOGRAPH-4E0D 0x4E0E 与 CJK UNIFIED IDEOGRAPH-4E0E 0x4E10 丐 CJK UNIFIED IDEOGRAPH-4E10 0x4E11 丑 CJK UNIFIED IDEOGRAPH-4E11 0x4E14 且 CJK UNIFIED IDEOGRAPH-4E14 0x4E15 丕 CJK UNIFIED IDEOGRAPH-4E15 0x4E16 世 CJK UNIFIED IDEOGRAPH-4E16 0x4E18 丘 CJK UNIFIED IDEOGRAPH-4E18 0x4E19 丙 CJK UNIFIED IDEOGRAPH-4E19 0x4E1E 丞 CJK UNIFIED IDEOGRAPH-4E1E 0x4E1F 丟 CJK UNIFIED IDEOGRAPH-4E1F 0x4E26 並 CJK UNIFIED IDEOGRAPH-4E26 0x4E2B 丫 CJK UNIFIED IDEOGRAPH-4E2B 0x4E2D 中 CJK UNIFIED IDEOGRAPH-4E2D 0x4E30 丰 CJK UNIFIED IDEOGRAPH-4E30 0x4E32 串 CJK UNIFIED IDEOGRAPH-4E32 0x4E38 丸 CJK UNIFIED IDEOGRAPH-4E38 0x4E39 丹 CJK UNIFIED IDEOGRAPH-4E39 0x4E3B 主 CJK UNIFIED IDEOGRAPH-4E3B 0x4E3C 丼 CJK UNIFIED IDEOGRAPH-4E3C 0x4E42 乂 CJK UNIFIED IDEOGRAPH-4E42 0x4E43 乃 CJK UNIFIED IDEOGRAPH-4E43 0x4E45 久 CJK UNIFIED IDEOGRAPH-4E45 0x4E48 么 CJK UNIFIED IDEOGRAPH-4E48 0x4E4B 之 CJK UNIFIED IDEOGRAPH-4E4B 0x4E4D 乍 CJK UNIFIED IDEOGRAPH-4E4D 0x4E4E 乎 CJK UNIFIED IDEOGRAPH-4E4E 0x4E4F 乏 CJK UNIFIED IDEOGRAPH-4E4F 0x4E52 乒 CJK UNIFIED IDEOGRAPH-4E52 0x4E53 乓 CJK UNIFIED IDEOGRAPH-4E53 0x4E56 乖 CJK UNIFIED IDEOGRAPH-4E56 0x4E58 乘 CJK UNIFIED IDEOGRAPH-4E58 0x4E59 乙 CJK UNIFIED IDEOGRAPH-4E59 0x4E5C 乜 CJK UNIFIED IDEOGRAPH-4E5C 0x4E5D 九 CJK UNIFIED IDEOGRAPH-4E5D 0x4E5E 乞 CJK UNIFIED IDEOGRAPH-4E5E 0x4E5F 也 CJK UNIFIED IDEOGRAPH-4E5F 0x4E69 乩 CJK UNIFIED IDEOGRAPH-4E69 0x4E73 乳 CJK UNIFIED IDEOGRAPH-4E73 0x4E7E 乾 CJK UNIFIED IDEOGRAPH-4E7E 0x4E82 亂 CJK UNIFIED IDEOGRAPH-4E82 0x4E86 了 CJK UNIFIED IDEOGRAPH-4E86 0x4E88 予 CJK UNIFIED IDEOGRAPH-4E88 0x4E8B 事 CJK UNIFIED IDEOGRAPH-4E8B 0x4E8C 二 CJK UNIFIED IDEOGRAPH-4E8C 0x4E8E 于 CJK UNIFIED IDEOGRAPH-4E8E 0x4E91 云 CJK UNIFIED IDEOGRAPH-4E91 0x4E92 互 CJK UNIFIED IDEOGRAPH-4E92 0x4E93 亓 CJK UNIFIED IDEOGRAPH-4E93 0x4E94 五 CJK UNIFIED IDEOGRAPH-4E94 0x4E95 井 CJK UNIFIED IDEOGRAPH-4E95 0x4E99 亙 CJK UNIFIED IDEOGRAPH-4E99 0x4E9B 些 CJK UNIFIED IDEOGRAPH-4E9B 0x4E9E 亞 CJK UNIFIED IDEOGRAPH-4E9E 0x4E9F 亟 CJK UNIFIED IDEOGRAPH-4E9F 0x4EA1 亡 CJK UNIFIED IDEOGRAPH-4EA1 0x4EA2 亢 CJK UNIFIED IDEOGRAPH-4EA2 0x4EA4 交 CJK UNIFIED IDEOGRAPH-4EA4 0x4EA5 亥 CJK UNIFIED IDEOGRAPH-4EA5 0x4EA6 亦 CJK UNIFIED IDEOGRAPH-4EA6 0x4EA8 亨 CJK UNIFIED IDEOGRAPH-4EA8 0x4EAB 享 CJK UNIFIED IDEOGRAPH-4EAB 0x4EAC 京 CJK UNIFIED IDEOGRAPH-4EAC 0x4EAD 亭 CJK UNIFIED IDEOGRAPH-4EAD 0x4EAE 亮 CJK UNIFIED IDEOGRAPH-4EAE 0x4EB3 亳 CJK UNIFIED IDEOGRAPH-4EB3 0x4EBA 人 CJK UNIFIED IDEOGRAPH-4EBA 0x4EC0 什 CJK UNIFIED IDEOGRAPH-4EC0 0x4EC1 仁 CJK UNIFIED IDEOGRAPH-4EC1 0x4EC3 仃 CJK UNIFIED IDEOGRAPH-4EC3 0x4EC4 仄 CJK UNIFIED IDEOGRAPH-4EC4 0x4EC6 仆 CJK UNIFIED IDEOGRAPH-4EC6 0x4EC7 仇 CJK UNIFIED IDEOGRAPH-4EC7 0x4ECA 今 CJK UNIFIED IDEOGRAPH-4ECA 0x4ECB 介 CJK UNIFIED IDEOGRAPH-4ECB 0x4ECD 仍 CJK UNIFIED IDEOGRAPH-4ECD 0x4ED4 仔 CJK UNIFIED IDEOGRAPH-4ED4 0x4ED5 仕 CJK UNIFIED IDEOGRAPH-4ED5 0x4ED6 他 CJK UNIFIED IDEOGRAPH-4ED6 0x4ED7 仗 CJK UNIFIED IDEOGRAPH-4ED7 0x4ED8 付 CJK UNIFIED IDEOGRAPH-4ED8 0x4ED9 仙 CJK UNIFIED IDEOGRAPH-4ED9 0x4EDD 仝 CJK UNIFIED IDEOGRAPH-4EDD 0x4EDE 仞 CJK UNIFIED IDEOGRAPH-4EDE 0x4EDF 仟 CJK UNIFIED IDEOGRAPH-4EDF 0x4EE3 代 CJK UNIFIED IDEOGRAPH-4EE3 0x4EE4 令 CJK UNIFIED IDEOGRAPH-4EE4 0x4EE5 以 CJK UNIFIED IDEOGRAPH-4EE5 0x4EE8 仨 CJK UNIFIED IDEOGRAPH-4EE8 0x4EF0 仰 CJK UNIFIED IDEOGRAPH-4EF0 0x4EF2 仲 CJK UNIFIED IDEOGRAPH-4EF2 0x4EF6 件 CJK UNIFIED IDEOGRAPH-4EF6 0x4EF7 价 CJK UNIFIED IDEOGRAPH-4EF7 0x4EFB 任 CJK UNIFIED IDEOGRAPH-4EFB 0x4EFD 份 CJK UNIFIED IDEOGRAPH-4EFD 0x4EFF 仿 CJK UNIFIED IDEOGRAPH-4EFF 0x4F01 企 CJK UNIFIED IDEOGRAPH-4F01 0x4F09 伉 CJK UNIFIED IDEOGRAPH-4F09 0x4F0A 伊 CJK UNIFIED IDEOGRAPH-4F0A 0x4F0D 伍 CJK UNIFIED IDEOGRAPH-4F0D 0x4F0E 伎 CJK UNIFIED IDEOGRAPH-4F0E 0x4F0F 伏 CJK UNIFIED IDEOGRAPH-4F0F 0x4F10 伐 CJK UNIFIED IDEOGRAPH-4F10 0x4F11 休 CJK UNIFIED IDEOGRAPH-4F11 0x4F15 伕 CJK UNIFIED IDEOGRAPH-4F15 0x4F18 优 CJK UNIFIED IDEOGRAPH-4F18 0x4F19 伙 CJK UNIFIED IDEOGRAPH-4F19 0x4F1D 伝 CJK UNIFIED IDEOGRAPH-4F1D 0x4F22 伢 CJK UNIFIED IDEOGRAPH-4F22 0x4F2F 伯 CJK UNIFIED IDEOGRAPH-4F2F 0x4F30 估 CJK UNIFIED IDEOGRAPH-4F30 0x4F34 伴 CJK UNIFIED IDEOGRAPH-4F34 0x4F36 伶 CJK UNIFIED IDEOGRAPH-4F36 0x4F38 伸 CJK UNIFIED IDEOGRAPH-4F38 0x4F3A 伺 CJK UNIFIED IDEOGRAPH-4F3A 0x4F3C 似 CJK UNIFIED IDEOGRAPH-4F3C 0x4F3D 伽 CJK UNIFIED IDEOGRAPH-4F3D 0x4F43 佃 CJK UNIFIED IDEOGRAPH-4F43 0x4F46 但 CJK UNIFIED IDEOGRAPH-4F46 0x4F47 佇 CJK UNIFIED IDEOGRAPH-4F47 0x4F48 佈 CJK UNIFIED IDEOGRAPH-4F48 0x4F4D 位 CJK UNIFIED IDEOGRAPH-4F4D 0x4F4E 低 CJK UNIFIED IDEOGRAPH-4F4E 0x4F4F 住 CJK UNIFIED IDEOGRAPH-4F4F 0x4F50 佐 CJK UNIFIED IDEOGRAPH-4F50 0x4F51 佑 CJK UNIFIED IDEOGRAPH-4F51 0x4F53 体 CJK UNIFIED IDEOGRAPH-4F53 0x4F54 佔 CJK UNIFIED IDEOGRAPH-4F54 0x4F55 何 CJK UNIFIED IDEOGRAPH-4F55 0x4F57 佗 CJK UNIFIED IDEOGRAPH-4F57 0x4F58 佘 CJK UNIFIED IDEOGRAPH-4F58 0x4F59 余 CJK UNIFIED IDEOGRAPH-4F59 0x4F5A 佚 CJK UNIFIED IDEOGRAPH-4F5A 0x4F5B 佛 CJK UNIFIED IDEOGRAPH-4F5B 0x4F5C 作 CJK UNIFIED IDEOGRAPH-4F5C 0x4F5D 佝 CJK UNIFIED IDEOGRAPH-4F5D 0x4F5E 佞 CJK UNIFIED IDEOGRAPH-4F5E 0x4F5F 佟 CJK UNIFIED IDEOGRAPH-4F5F 0x4F60 你 CJK UNIFIED IDEOGRAPH-4F60 0x4F62 佢 CJK UNIFIED IDEOGRAPH-4F62 0x4F63 佣 CJK UNIFIED IDEOGRAPH-4F63 0x4F69 佩 CJK UNIFIED IDEOGRAPH-4F69 0x4F6C 佬 CJK UNIFIED IDEOGRAPH-4F6C 0x4F6F 佯 CJK UNIFIED IDEOGRAPH-4F6F 0x4F70 佰 CJK UNIFIED IDEOGRAPH-4F70 0x4F73 佳 CJK UNIFIED IDEOGRAPH-4F73 0x4F75 併 CJK UNIFIED IDEOGRAPH-4F75 0x4F76 佶 CJK UNIFIED IDEOGRAPH-4F76 0x4F77 佷 CJK UNIFIED IDEOGRAPH-4F77 0x4F7A 佺 CJK UNIFIED IDEOGRAPH-4F7A 0x4F7B 佻 CJK UNIFIED IDEOGRAPH-4F7B 0x4F7C 佼 CJK UNIFIED IDEOGRAPH-4F7C 0x4F7E 佾 CJK UNIFIED IDEOGRAPH-4F7E 0x4F7F 使 CJK UNIFIED IDEOGRAPH-4F7F 0x4F83 侃 CJK UNIFIED IDEOGRAPH-4F83 0x4F84 侄 CJK UNIFIED IDEOGRAPH-4F84 0x4F86 來 CJK UNIFIED IDEOGRAPH-4F86 0x4F88 侈 CJK UNIFIED IDEOGRAPH-4F88 0x4F8B 例 CJK UNIFIED IDEOGRAPH-4F8B 0x4F8D 侍 CJK UNIFIED IDEOGRAPH-4F8D 0x4F8F 侏 CJK UNIFIED IDEOGRAPH-4F8F 0x4F91 侑 CJK UNIFIED IDEOGRAPH-4F91 0x4F96 侖 CJK UNIFIED IDEOGRAPH-4F96 0x4F97 侗 CJK UNIFIED IDEOGRAPH-4F97 0x4F98 侘 CJK UNIFIED IDEOGRAPH-4F98 0x4F9B 供 CJK UNIFIED IDEOGRAPH-4F9B 0x4F9D 依 CJK UNIFIED IDEOGRAPH-4F9D 0x4FAE 侮 CJK UNIFIED IDEOGRAPH-4FAE 0x4FAF 侯 CJK UNIFIED IDEOGRAPH-4FAF 0x4FB5 侵 CJK UNIFIED IDEOGRAPH-4FB5 0x4FB6 侶 CJK UNIFIED IDEOGRAPH-4FB6 0x4FB7 侷 CJK UNIFIED IDEOGRAPH-4FB7 0x4FBF 便 CJK UNIFIED IDEOGRAPH-4FBF 0x4FC2 係 CJK UNIFIED IDEOGRAPH-4FC2 0x4FC3 促 CJK UNIFIED IDEOGRAPH-4FC3 0x4FC4 俄 CJK UNIFIED IDEOGRAPH-4FC4 0x4FCA 俊 CJK UNIFIED IDEOGRAPH-4FCA 0x4FCB 俋 CJK UNIFIED IDEOGRAPH-4FCB 0x4FCD 俍 CJK UNIFIED IDEOGRAPH-4FCD 0x4FCE 俎 CJK UNIFIED IDEOGRAPH-4FCE 0x4FCF 俏 CJK UNIFIED IDEOGRAPH-4FCF 0x4FD0 俐 CJK UNIFIED IDEOGRAPH-4FD0 0x4FD1 俑 CJK UNIFIED IDEOGRAPH-4FD1 0x4FD7 俗 CJK UNIFIED IDEOGRAPH-4FD7 0x4FD8 俘 CJK UNIFIED IDEOGRAPH-4FD8 0x4FDA 俚 CJK UNIFIED IDEOGRAPH-4FDA 0x4FDD 保 CJK UNIFIED IDEOGRAPH-4FDD 0x4FDE 俞 CJK UNIFIED IDEOGRAPH-4FDE 0x4FDF 俟 CJK UNIFIED IDEOGRAPH-4FDF 0x4FE0 俠 CJK UNIFIED IDEOGRAPH-4FE0 0x4FE1 信 CJK UNIFIED IDEOGRAPH-4FE1 0x4FEC 俬 CJK UNIFIED IDEOGRAPH-4FEC 0x4FEE 修 CJK UNIFIED IDEOGRAPH-4FEE 0x4FEF 俯 CJK UNIFIED IDEOGRAPH-4FEF 0x4FF1 俱 CJK UNIFIED IDEOGRAPH-4FF1 0x4FF3 俳 CJK UNIFIED IDEOGRAPH-4FF3 0x4FF4 俴 CJK UNIFIED IDEOGRAPH-4FF4 0x4FF5 俵 CJK UNIFIED IDEOGRAPH-4FF5 0x4FF6 俶 CJK UNIFIED IDEOGRAPH-4FF6 0x4FF8 俸 CJK UNIFIED IDEOGRAPH-4FF8 0x4FFA 俺 CJK UNIFIED IDEOGRAPH-4FFA 0x4FFE 俾 CJK UNIFIED IDEOGRAPH-4FFE 0x5000 倀 CJK UNIFIED IDEOGRAPH-5000 0x5006 倆 CJK UNIFIED IDEOGRAPH-5006 0x5009 倉 CJK UNIFIED IDEOGRAPH-5009 0x500B 個 CJK UNIFIED IDEOGRAPH-500B 0x500C 倌 CJK UNIFIED IDEOGRAPH-500C 0x500D 倍 CJK UNIFIED IDEOGRAPH-500D 0x500F 倏 CJK UNIFIED IDEOGRAPH-500F 0x5011 們 CJK UNIFIED IDEOGRAPH-5011 0x5012 倒 CJK UNIFIED IDEOGRAPH-5012 0x5014 倔 CJK UNIFIED IDEOGRAPH-5014 0x5016 倖 CJK UNIFIED IDEOGRAPH-5016 0x5018 倘 CJK UNIFIED IDEOGRAPH-5018 0x5019 候 CJK UNIFIED IDEOGRAPH-5019 0x501A 倚 CJK UNIFIED IDEOGRAPH-501A 0x501C 倜 CJK UNIFIED IDEOGRAPH-501C 0x501F 借 CJK UNIFIED IDEOGRAPH-501F 0x5021 倡 CJK UNIFIED IDEOGRAPH-5021 0x5022 倢 CJK UNIFIED IDEOGRAPH-5022 0x5023 倣 CJK UNIFIED IDEOGRAPH-5023 0x5026 倦 CJK UNIFIED IDEOGRAPH-5026 0x5028 倨 CJK UNIFIED IDEOGRAPH-5028 0x5029 倩 CJK UNIFIED IDEOGRAPH-5029 0x502A 倪 CJK UNIFIED IDEOGRAPH-502A 0x502B 倫 CJK UNIFIED IDEOGRAPH-502B 0x502C 倬 CJK UNIFIED IDEOGRAPH-502C 0x502D 倭 CJK UNIFIED IDEOGRAPH-502D 0x503C 值 CJK UNIFIED IDEOGRAPH-503C 0x5043 偃 CJK UNIFIED IDEOGRAPH-5043 0x5047 假 CJK UNIFIED IDEOGRAPH-5047 0x5048 偈 CJK UNIFIED IDEOGRAPH-5048 0x5049 偉 CJK UNIFIED IDEOGRAPH-5049 0x504C 偌 CJK UNIFIED IDEOGRAPH-504C 0x504E 偎 CJK UNIFIED IDEOGRAPH-504E 0x504F 偏 CJK UNIFIED IDEOGRAPH-504F 0x5055 偕 CJK UNIFIED IDEOGRAPH-5055 0x505A 做 CJK UNIFIED IDEOGRAPH-505A 0x505C 停 CJK UNIFIED IDEOGRAPH-505C 0x5065 健 CJK UNIFIED IDEOGRAPH-5065 0x5072 偲 CJK UNIFIED IDEOGRAPH-5072 0x5074 側 CJK UNIFIED IDEOGRAPH-5074 0x5075 偵 CJK UNIFIED IDEOGRAPH-5075 0x5076 偶 CJK UNIFIED IDEOGRAPH-5076 0x5077 偷 CJK UNIFIED IDEOGRAPH-5077 0x507D 偽 CJK UNIFIED IDEOGRAPH-507D 0x5080 傀 CJK UNIFIED IDEOGRAPH-5080 0x5085 傅 CJK UNIFIED IDEOGRAPH-5085 0x508D 傍 CJK UNIFIED IDEOGRAPH-508D 0x5091 傑 CJK UNIFIED IDEOGRAPH-5091 0x5098 傘 CJK UNIFIED IDEOGRAPH-5098 0x5099 備 CJK UNIFIED IDEOGRAPH-5099 0x509A 傚 CJK UNIFIED IDEOGRAPH-509A 0x50A2 傢 CJK UNIFIED IDEOGRAPH-50A2 0x50A3 傣 CJK UNIFIED IDEOGRAPH-50A3 0x50AC 催 CJK UNIFIED IDEOGRAPH-50AC 0x50AD 傭 CJK UNIFIED IDEOGRAPH-50AD 0x50B2 傲 CJK UNIFIED IDEOGRAPH-50B2 0x50B3 傳 CJK UNIFIED IDEOGRAPH-50B3 0x50B5 債 CJK UNIFIED IDEOGRAPH-50B5 0x50B7 傷 CJK UNIFIED IDEOGRAPH-50B7 0x50BB 傻 CJK UNIFIED IDEOGRAPH-50BB 0x50BE 傾 CJK UNIFIED IDEOGRAPH-50BE 0x50C2 僂 CJK UNIFIED IDEOGRAPH-50C2 0x50C5 僅 CJK UNIFIED IDEOGRAPH-50C5 0x50C9 僉 CJK UNIFIED IDEOGRAPH-50C9 0x50CF 像 CJK UNIFIED IDEOGRAPH-50CF 0x50D1 僑 CJK UNIFIED IDEOGRAPH-50D1 0x50D5 僕 CJK UNIFIED IDEOGRAPH-50D5 0x50D6 僖 CJK UNIFIED IDEOGRAPH-50D6 0x50DA 僚 CJK UNIFIED IDEOGRAPH-50DA 0x50E5 僥 CJK UNIFIED IDEOGRAPH-50E5 0x50E7 僧 CJK UNIFIED IDEOGRAPH-50E7 0x50ED 僭 CJK UNIFIED IDEOGRAPH-50ED 0x50EE 僮 CJK UNIFIED IDEOGRAPH-50EE 0x50F1 僱 CJK UNIFIED IDEOGRAPH-50F1 0x50F5 僵 CJK UNIFIED IDEOGRAPH-50F5 0x50F9 價 CJK UNIFIED IDEOGRAPH-50F9 0x50FB 僻 CJK UNIFIED IDEOGRAPH-50FB 0x5100 儀 CJK UNIFIED IDEOGRAPH-5100 0x5102 儂 CJK UNIFIED IDEOGRAPH-5102 0x5104 億 CJK UNIFIED IDEOGRAPH-5104 0x5106 儆 CJK UNIFIED IDEOGRAPH-5106 0x5108 儈 CJK UNIFIED IDEOGRAPH-5108 0x5109 儉 CJK UNIFIED IDEOGRAPH-5109 0x510B 儋 CJK UNIFIED IDEOGRAPH-510B 0x5112 儒 CJK UNIFIED IDEOGRAPH-5112 0x5114 儔 CJK UNIFIED IDEOGRAPH-5114 0x5115 儕 CJK UNIFIED IDEOGRAPH-5115 0x5118 儘 CJK UNIFIED IDEOGRAPH-5118 0x511F 償 CJK UNIFIED IDEOGRAPH-511F 0x5121 儡 CJK UNIFIED IDEOGRAPH-5121 0x512A 優 CJK UNIFIED IDEOGRAPH-512A 0x5132 儲 CJK UNIFIED IDEOGRAPH-5132 0x5137 儷 CJK UNIFIED IDEOGRAPH-5137 0x5138 儸 CJK UNIFIED IDEOGRAPH-5138 0x513A 儺 CJK UNIFIED IDEOGRAPH-513A 0x513B 儻 CJK UNIFIED IDEOGRAPH-513B 0x513C 儼 CJK UNIFIED IDEOGRAPH-513C 0x513F 儿 CJK UNIFIED IDEOGRAPH-513F 0x5140 兀 CJK UNIFIED IDEOGRAPH-5140 0x5141 允 CJK UNIFIED IDEOGRAPH-5141 0x5143 元 CJK UNIFIED IDEOGRAPH-5143 0x5144 兄 CJK UNIFIED IDEOGRAPH-5144 0x5145 充 CJK UNIFIED IDEOGRAPH-5145 0x5146 兆 CJK UNIFIED IDEOGRAPH-5146 0x5147 兇 CJK UNIFIED IDEOGRAPH-5147 0x5148 先 CJK UNIFIED IDEOGRAPH-5148 0x5149 光 CJK UNIFIED IDEOGRAPH-5149 0x514B 克 CJK UNIFIED IDEOGRAPH-514B 0x514C 兌 CJK UNIFIED IDEOGRAPH-514C 0x514D 免 CJK UNIFIED IDEOGRAPH-514D 0x5152 兒 CJK UNIFIED IDEOGRAPH-5152 0x5154 兔 CJK UNIFIED IDEOGRAPH-5154 0x5157 兗 CJK UNIFIED IDEOGRAPH-5157 0x515A 党 CJK UNIFIED IDEOGRAPH-515A 0x515C 兜 CJK UNIFIED IDEOGRAPH-515C 0x5162 兢 CJK UNIFIED IDEOGRAPH-5162 0x5165 入 CJK UNIFIED IDEOGRAPH-5165 0x5167 內 CJK UNIFIED IDEOGRAPH-5167 0x5168 全 CJK UNIFIED IDEOGRAPH-5168 0x5169 兩 CJK UNIFIED IDEOGRAPH-5169 0x516B 八 CJK UNIFIED IDEOGRAPH-516B 0x516C 公 CJK UNIFIED IDEOGRAPH-516C 0x516D 六 CJK UNIFIED IDEOGRAPH-516D 0x516E 兮 CJK UNIFIED IDEOGRAPH-516E 0x5171 共 CJK UNIFIED IDEOGRAPH-5171 0x5175 兵 CJK UNIFIED IDEOGRAPH-5175 0x5176 其 CJK UNIFIED IDEOGRAPH-5176 0x5177 具 CJK UNIFIED IDEOGRAPH-5177 0x5178 典 CJK UNIFIED IDEOGRAPH-5178 0x517C 兼 CJK UNIFIED IDEOGRAPH-517C 0x5180 冀 CJK UNIFIED IDEOGRAPH-5180 0x5187 冇 CJK UNIFIED IDEOGRAPH-5187 0x5189 冉 CJK UNIFIED IDEOGRAPH-5189 0x518A 冊 CJK UNIFIED IDEOGRAPH-518A 0x518D 再 CJK UNIFIED IDEOGRAPH-518D 0x518F 冏 CJK UNIFIED IDEOGRAPH-518F 0x5191 冑 CJK UNIFIED IDEOGRAPH-5191 0x5192 冒 CJK UNIFIED IDEOGRAPH-5192 0x5195 冕 CJK UNIFIED IDEOGRAPH-5195 0x5197 冗 CJK UNIFIED IDEOGRAPH-5197 0x51A0 冠 CJK UNIFIED IDEOGRAPH-51A0 0x51A2 冢 CJK UNIFIED IDEOGRAPH-51A2 0x51A4 冤 CJK UNIFIED IDEOGRAPH-51A4 0x51A5 冥 CJK UNIFIED IDEOGRAPH-51A5 0x51AA 冪 CJK UNIFIED IDEOGRAPH-51AA 0x51AC 冬 CJK UNIFIED IDEOGRAPH-51AC 0x51B0 冰 CJK UNIFIED IDEOGRAPH-51B0 0x51B6 冶 CJK UNIFIED IDEOGRAPH-51B6 0x51B7 冷 CJK UNIFIED IDEOGRAPH-51B7 0x51BC 冼 CJK UNIFIED IDEOGRAPH-51BC 0x51BD 冽 CJK UNIFIED IDEOGRAPH-51BD 0x51C4 凄 CJK UNIFIED IDEOGRAPH-51C4 0x51C6 准 CJK UNIFIED IDEOGRAPH-51C6 0x51C8 凈 CJK UNIFIED IDEOGRAPH-51C8 0x51CB 凋 CJK UNIFIED IDEOGRAPH-51CB 0x51CC 凌 CJK UNIFIED IDEOGRAPH-51CC 0x51CD 凍 CJK UNIFIED IDEOGRAPH-51CD 0x51DC 凜 CJK UNIFIED IDEOGRAPH-51DC 0x51DD 凝 CJK UNIFIED IDEOGRAPH-51DD 0x51E0 几 CJK UNIFIED IDEOGRAPH-51E0 0x51E1 凡 CJK UNIFIED IDEOGRAPH-51E1 0x51F0 凰 CJK UNIFIED IDEOGRAPH-51F0 0x51F1 凱 CJK UNIFIED IDEOGRAPH-51F1 0x51F3 凳 CJK UNIFIED IDEOGRAPH-51F3 0x51F6 凶 CJK UNIFIED IDEOGRAPH-51F6 0x51F8 凸 CJK UNIFIED IDEOGRAPH-51F8 0x51F9 凹 CJK UNIFIED IDEOGRAPH-51F9 0x51FA 出 CJK UNIFIED IDEOGRAPH-51FA 0x51FD 函 CJK UNIFIED IDEOGRAPH-51FD 0x5200 刀 CJK UNIFIED IDEOGRAPH-5200 0x5201 刁 CJK UNIFIED IDEOGRAPH-5201 0x5203 刃 CJK UNIFIED IDEOGRAPH-5203 0x5206 分 CJK UNIFIED IDEOGRAPH-5206 0x5207 切 CJK UNIFIED IDEOGRAPH-5207 0x5208 刈 CJK UNIFIED IDEOGRAPH-5208 0x520A 刊 CJK UNIFIED IDEOGRAPH-520A 0x520E 刎 CJK UNIFIED IDEOGRAPH-520E 0x5211 刑 CJK UNIFIED IDEOGRAPH-5211 0x5212 划 CJK UNIFIED IDEOGRAPH-5212 0x5217 列 CJK UNIFIED IDEOGRAPH-5217 0x521D 初 CJK UNIFIED IDEOGRAPH-521D 0x5224 判 CJK UNIFIED IDEOGRAPH-5224 0x5225 別 CJK UNIFIED IDEOGRAPH-5225 0x5228 刨 CJK UNIFIED IDEOGRAPH-5228 0x5229 利 CJK UNIFIED IDEOGRAPH-5229 0x522A 刪 CJK UNIFIED IDEOGRAPH-522A 0x522E 刮 CJK UNIFIED IDEOGRAPH-522E 0x5230 到 CJK UNIFIED IDEOGRAPH-5230 0x5236 制 CJK UNIFIED IDEOGRAPH-5236 0x5237 刷 CJK UNIFIED IDEOGRAPH-5237 0x5238 券 CJK UNIFIED IDEOGRAPH-5238 0x523A 刺 CJK UNIFIED IDEOGRAPH-523A 0x523B 刻 CJK UNIFIED IDEOGRAPH-523B 0x5241 剁 CJK UNIFIED IDEOGRAPH-5241 0x5243 剃 CJK UNIFIED IDEOGRAPH-5243 0x5247 則 CJK UNIFIED IDEOGRAPH-5247 0x5249 剉 CJK UNIFIED IDEOGRAPH-5249 0x524A 削 CJK UNIFIED IDEOGRAPH-524A 0x524B 剋 CJK UNIFIED IDEOGRAPH-524B 0x524C 剌 CJK UNIFIED IDEOGRAPH-524C 0x524D 前 CJK UNIFIED IDEOGRAPH-524D 0x524E 剎 CJK UNIFIED IDEOGRAPH-524E 0x5254 剔 CJK UNIFIED IDEOGRAPH-5254 0x5256 剖 CJK UNIFIED IDEOGRAPH-5256 0x525B 剛 CJK UNIFIED IDEOGRAPH-525B 0x525C 剜 CJK UNIFIED IDEOGRAPH-525C 0x525D 剝 CJK UNIFIED IDEOGRAPH-525D 0x5269 剩 CJK UNIFIED IDEOGRAPH-5269 0x526A 剪 CJK UNIFIED IDEOGRAPH-526A 0x526E 剮 CJK UNIFIED IDEOGRAPH-526E 0x526F 副 CJK UNIFIED IDEOGRAPH-526F 0x5272 割 CJK UNIFIED IDEOGRAPH-5272 0x5275 創 CJK UNIFIED IDEOGRAPH-5275 0x5277 剷 CJK UNIFIED IDEOGRAPH-5277 0x527D 剽 CJK UNIFIED IDEOGRAPH-527D 0x527F 剿 CJK UNIFIED IDEOGRAPH-527F 0x5283 劃 CJK UNIFIED IDEOGRAPH-5283 0x5284 劄 CJK UNIFIED IDEOGRAPH-5284 0x5287 劇 CJK UNIFIED IDEOGRAPH-5287 0x5288 劈 CJK UNIFIED IDEOGRAPH-5288 0x5289 劉 CJK UNIFIED IDEOGRAPH-5289 0x528A 劊 CJK UNIFIED IDEOGRAPH-528A 0x528D 劍 CJK UNIFIED IDEOGRAPH-528D 0x5291 劑 CJK UNIFIED IDEOGRAPH-5291 0x529B 力 CJK UNIFIED IDEOGRAPH-529B 0x529F 功 CJK UNIFIED IDEOGRAPH-529F 0x52A0 加 CJK UNIFIED IDEOGRAPH-52A0 0x52A3 劣 CJK UNIFIED IDEOGRAPH-52A3 0x52A6 劦 CJK UNIFIED IDEOGRAPH-52A6 0x52A9 助 CJK UNIFIED IDEOGRAPH-52A9 0x52AA 努 CJK UNIFIED IDEOGRAPH-52AA 0x52AB 劫 CJK UNIFIED IDEOGRAPH-52AB 0x52AD 劭 CJK UNIFIED IDEOGRAPH-52AD 0x52BC 劼 CJK UNIFIED IDEOGRAPH-52BC 0x52BE 劾 CJK UNIFIED IDEOGRAPH-52BE 0x52C1 勁 CJK UNIFIED IDEOGRAPH-52C1 0x52C3 勃 CJK UNIFIED IDEOGRAPH-52C3 0x52C7 勇 CJK UNIFIED IDEOGRAPH-52C7 0x52C9 勉 CJK UNIFIED IDEOGRAPH-52C9 0x52D2 勒 CJK UNIFIED IDEOGRAPH-52D2 0x52D5 動 CJK UNIFIED IDEOGRAPH-52D5 0x52D7 勗 CJK UNIFIED IDEOGRAPH-52D7 0x52D8 勘 CJK UNIFIED IDEOGRAPH-52D8 0x52D9 務 CJK UNIFIED IDEOGRAPH-52D9 0x52DB 勛 CJK UNIFIED IDEOGRAPH-52DB 0x52DD 勝 CJK UNIFIED IDEOGRAPH-52DD 0x52DE 勞 CJK UNIFIED IDEOGRAPH-52DE 0x52DF 募 CJK UNIFIED IDEOGRAPH-52DF 0x52E2 勢 CJK UNIFIED IDEOGRAPH-52E2 0x52E4 勤 CJK UNIFIED IDEOGRAPH-52E4 0x52F0 勰 CJK UNIFIED IDEOGRAPH-52F0 0x52F3 勳 CJK UNIFIED IDEOGRAPH-52F3 0x52F5 勵 CJK UNIFIED IDEOGRAPH-52F5 0x52F8 勸 CJK UNIFIED IDEOGRAPH-52F8 0x52FA 勺 CJK UNIFIED IDEOGRAPH-52FA 0x52FB 勻 CJK UNIFIED IDEOGRAPH-52FB 0x52FE 勾 CJK UNIFIED IDEOGRAPH-52FE 0x52FF 勿 CJK UNIFIED IDEOGRAPH-52FF 0x5305 包 CJK UNIFIED IDEOGRAPH-5305 0x5306 匆 CJK UNIFIED IDEOGRAPH-5306 0x5308 匈 CJK UNIFIED IDEOGRAPH-5308 0x530D 匍 CJK UNIFIED IDEOGRAPH-530D 0x530F 匏 CJK UNIFIED IDEOGRAPH-530F 0x5310 匐 CJK UNIFIED IDEOGRAPH-5310 0x5315 匕 CJK UNIFIED IDEOGRAPH-5315 0x5316 化 CJK UNIFIED IDEOGRAPH-5316 0x5317 北 CJK UNIFIED IDEOGRAPH-5317 0x5319 匙 CJK UNIFIED IDEOGRAPH-5319 0x531D 匝 CJK UNIFIED IDEOGRAPH-531D 0x5320 匠 CJK UNIFIED IDEOGRAPH-5320 0x5321 匡 CJK UNIFIED IDEOGRAPH-5321 0x5323 匣 CJK UNIFIED IDEOGRAPH-5323 0x532A 匪 CJK UNIFIED IDEOGRAPH-532A 0x532F 匯 CJK UNIFIED IDEOGRAPH-532F 0x5331 匱 CJK UNIFIED IDEOGRAPH-5331 0x5339 匹 CJK UNIFIED IDEOGRAPH-5339 0x533E 匾 CJK UNIFIED IDEOGRAPH-533E 0x533F 匿 CJK UNIFIED IDEOGRAPH-533F 0x5340 區 CJK UNIFIED IDEOGRAPH-5340 0x5341 十 CJK UNIFIED IDEOGRAPH-5341 0x5343 千 CJK UNIFIED IDEOGRAPH-5343 0x5345 卅 CJK UNIFIED IDEOGRAPH-5345 0x5347 升 CJK UNIFIED IDEOGRAPH-5347 0x5348 午 CJK UNIFIED IDEOGRAPH-5348 0x5349 卉 CJK UNIFIED IDEOGRAPH-5349 0x534A 半 CJK UNIFIED IDEOGRAPH-534A 0x534D 卍 CJK UNIFIED IDEOGRAPH-534D 0x5351 卑 CJK UNIFIED IDEOGRAPH-5351 0x5352 卒 CJK UNIFIED IDEOGRAPH-5352 0x5353 卓 CJK UNIFIED IDEOGRAPH-5353 0x5354 協 CJK UNIFIED IDEOGRAPH-5354 0x5357 南 CJK UNIFIED IDEOGRAPH-5357 0x535A 博 CJK UNIFIED IDEOGRAPH-535A 0x535C 卜 CJK UNIFIED IDEOGRAPH-535C 0x535E 卞 CJK UNIFIED IDEOGRAPH-535E 0x5360 占 CJK UNIFIED IDEOGRAPH-5360 0x5361 卡 CJK UNIFIED IDEOGRAPH-5361 0x5366 卦 CJK UNIFIED IDEOGRAPH-5366 0x536F 卯 CJK UNIFIED IDEOGRAPH-536F 0x5370 印 CJK UNIFIED IDEOGRAPH-5370 0x5371 危 CJK UNIFIED IDEOGRAPH-5371 0x5373 即 CJK UNIFIED IDEOGRAPH-5373 0x5375 卵 CJK UNIFIED IDEOGRAPH-5375 0x5377 卷 CJK UNIFIED IDEOGRAPH-5377 0x5378 卸 CJK UNIFIED IDEOGRAPH-5378 0x5379 卹 CJK UNIFIED IDEOGRAPH-5379 0x537B 卻 CJK UNIFIED IDEOGRAPH-537B 0x537F 卿 CJK UNIFIED IDEOGRAPH-537F 0x5382 厂 CJK UNIFIED IDEOGRAPH-5382 0x5384 厄 CJK UNIFIED IDEOGRAPH-5384 0x5398 厘 CJK UNIFIED IDEOGRAPH-5398 0x539A 厚 CJK UNIFIED IDEOGRAPH-539A 0x539D 厝 CJK UNIFIED IDEOGRAPH-539D 0x539F 原 CJK UNIFIED IDEOGRAPH-539F 0x53A5 厥 CJK UNIFIED IDEOGRAPH-53A5 0x53AD 厭 CJK UNIFIED IDEOGRAPH-53AD 0x53B2 厲 CJK UNIFIED IDEOGRAPH-53B2 0x53BB 去 CJK UNIFIED IDEOGRAPH-53BB 0x53C3 參 CJK UNIFIED IDEOGRAPH-53C3 0x53C8 又 CJK UNIFIED IDEOGRAPH-53C8 0x53C9 叉 CJK UNIFIED IDEOGRAPH-53C9 0x53CA 及 CJK UNIFIED IDEOGRAPH-53CA 0x53CB 友 CJK UNIFIED IDEOGRAPH-53CB 0x53CD 反 CJK UNIFIED IDEOGRAPH-53CD 0x53D4 叔 CJK UNIFIED IDEOGRAPH-53D4 0x53D6 取 CJK UNIFIED IDEOGRAPH-53D6 0x53D7 受 CJK UNIFIED IDEOGRAPH-53D7 0x53DB 叛 CJK UNIFIED IDEOGRAPH-53DB 0x53DF 叟 CJK UNIFIED IDEOGRAPH-53DF 0x53E1 叡 CJK UNIFIED IDEOGRAPH-53E1 0x53E2 叢 CJK UNIFIED IDEOGRAPH-53E2 0x53E3 口 CJK UNIFIED IDEOGRAPH-53E3 0x53E4 古 CJK UNIFIED IDEOGRAPH-53E4 0x53E5 句 CJK UNIFIED IDEOGRAPH-53E5 0x53E6 另 CJK UNIFIED IDEOGRAPH-53E6 0x53E8 叨 CJK UNIFIED IDEOGRAPH-53E8 0x53E9 叩 CJK UNIFIED IDEOGRAPH-53E9 0x53EA 只 CJK UNIFIED IDEOGRAPH-53EA 0x53EB 叫 CJK UNIFIED IDEOGRAPH-53EB 0x53EC 召 CJK UNIFIED IDEOGRAPH-53EC 0x53ED 叭 CJK UNIFIED IDEOGRAPH-53ED 0x53EE 叮 CJK UNIFIED IDEOGRAPH-53EE 0x53EF 可 CJK UNIFIED IDEOGRAPH-53EF 0x53F0 台 CJK UNIFIED IDEOGRAPH-53F0 0x53F1 叱 CJK UNIFIED IDEOGRAPH-53F1 0x53F2 史 CJK UNIFIED IDEOGRAPH-53F2 0x53F3 右 CJK UNIFIED IDEOGRAPH-53F3 0x53F5 叵 CJK UNIFIED IDEOGRAPH-53F5 0x53F8 司 CJK UNIFIED IDEOGRAPH-53F8 0x53FB 叻 CJK UNIFIED IDEOGRAPH-53FB 0x53FC 叼 CJK UNIFIED IDEOGRAPH-53FC 0x5401 吁 CJK UNIFIED IDEOGRAPH-5401 0x5403 吃 CJK UNIFIED IDEOGRAPH-5403 0x5404 各 CJK UNIFIED IDEOGRAPH-5404 0x5406 吆 CJK UNIFIED IDEOGRAPH-5406 0x5408 合 CJK UNIFIED IDEOGRAPH-5408 0x5409 吉 CJK UNIFIED IDEOGRAPH-5409 0x540A 吊 CJK UNIFIED IDEOGRAPH-540A 0x540B 吋 CJK UNIFIED IDEOGRAPH-540B 0x540C 同 CJK UNIFIED IDEOGRAPH-540C 0x540D 名 CJK UNIFIED IDEOGRAPH-540D 0x540E 后 CJK UNIFIED IDEOGRAPH-540E 0x540F 吏 CJK UNIFIED IDEOGRAPH-540F 0x5410 吐 CJK UNIFIED IDEOGRAPH-5410 0x5411 向 CJK UNIFIED IDEOGRAPH-5411 0x5412 吒 CJK UNIFIED IDEOGRAPH-5412 0x541B 君 CJK UNIFIED IDEOGRAPH-541B 0x541D 吝 CJK UNIFIED IDEOGRAPH-541D 0x541E 吞 CJK UNIFIED IDEOGRAPH-541E 0x541F 吟 CJK UNIFIED IDEOGRAPH-541F 0x5420 吠 CJK UNIFIED IDEOGRAPH-5420 0x5426 否 CJK UNIFIED IDEOGRAPH-5426 0x5427 吧 CJK UNIFIED IDEOGRAPH-5427 0x5428 吨 CJK UNIFIED IDEOGRAPH-5428 0x5429 吩 CJK UNIFIED IDEOGRAPH-5429 0x542B 含 CJK UNIFIED IDEOGRAPH-542B 0x542C 听 CJK UNIFIED IDEOGRAPH-542C 0x542D 吭 CJK UNIFIED IDEOGRAPH-542D 0x542E 吮 CJK UNIFIED IDEOGRAPH-542E 0x5431 吱 CJK UNIFIED IDEOGRAPH-5431 0x5433 吳 CJK UNIFIED IDEOGRAPH-5433 0x5435 吵 CJK UNIFIED IDEOGRAPH-5435 0x5436 吶 CJK UNIFIED IDEOGRAPH-5436 0x5438 吸 CJK UNIFIED IDEOGRAPH-5438 0x5439 吹 CJK UNIFIED IDEOGRAPH-5439 0x543B 吻 CJK UNIFIED IDEOGRAPH-543B 0x543C 吼 CJK UNIFIED IDEOGRAPH-543C 0x543D 吽 CJK UNIFIED IDEOGRAPH-543D 0x543E 吾 CJK UNIFIED IDEOGRAPH-543E 0x5440 呀 CJK UNIFIED IDEOGRAPH-5440 0x5442 呂 CJK UNIFIED IDEOGRAPH-5442 0x5443 呃 CJK UNIFIED IDEOGRAPH-5443 0x5446 呆 CJK UNIFIED IDEOGRAPH-5446 0x5448 呈 CJK UNIFIED IDEOGRAPH-5448 0x544A 告 CJK UNIFIED IDEOGRAPH-544A 0x544E 呎 CJK UNIFIED IDEOGRAPH-544E 0x5454 呔 CJK UNIFIED IDEOGRAPH-5454 0x5462 呢 CJK UNIFIED IDEOGRAPH-5462 0x5464 呤 CJK UNIFIED IDEOGRAPH-5464 0x5466 呦 CJK UNIFIED IDEOGRAPH-5466 0x5468 周 CJK UNIFIED IDEOGRAPH-5468 0x5471 呱 CJK UNIFIED IDEOGRAPH-5471 0x5472 呲 CJK UNIFIED IDEOGRAPH-5472 0x5473 味 CJK UNIFIED IDEOGRAPH-5473 0x5475 呵 CJK UNIFIED IDEOGRAPH-5475 0x5477 呷 CJK UNIFIED IDEOGRAPH-5477 0x5478 呸 CJK UNIFIED IDEOGRAPH-5478 0x547B 呻 CJK UNIFIED IDEOGRAPH-547B 0x547C 呼 CJK UNIFIED IDEOGRAPH-547C 0x547D 命 CJK UNIFIED IDEOGRAPH-547D 0x547F 呿 CJK UNIFIED IDEOGRAPH-547F 0x5480 咀 CJK UNIFIED IDEOGRAPH-5480 0x5481 咁 CJK UNIFIED IDEOGRAPH-5481 0x5482 咂 CJK UNIFIED IDEOGRAPH-5482 0x5484 咄 CJK UNIFIED IDEOGRAPH-5484 0x5486 咆 CJK UNIFIED IDEOGRAPH-5486 0x5487 咇 CJK UNIFIED IDEOGRAPH-5487 0x548B 咋 CJK UNIFIED IDEOGRAPH-548B 0x548C 和 CJK UNIFIED IDEOGRAPH-548C 0x548E 咎 CJK UNIFIED IDEOGRAPH-548E 0x5490 咐 CJK UNIFIED IDEOGRAPH-5490 0x5492 咒 CJK UNIFIED IDEOGRAPH-5492 0x5495 咕 CJK UNIFIED IDEOGRAPH-5495 0x5496 咖 CJK UNIFIED IDEOGRAPH-5496 0x5498 咘 CJK UNIFIED IDEOGRAPH-5498 0x549A 咚 CJK UNIFIED IDEOGRAPH-549A 0x54A6 咦 CJK UNIFIED IDEOGRAPH-54A6 0x54A7 咧 CJK UNIFIED IDEOGRAPH-54A7 0x54A8 咨 CJK UNIFIED IDEOGRAPH-54A8 0x54A9 咩 CJK UNIFIED IDEOGRAPH-54A9 0x54AA 咪 CJK UNIFIED IDEOGRAPH-54AA 0x54AB 咫 CJK UNIFIED IDEOGRAPH-54AB 0x54AC 咬 CJK UNIFIED IDEOGRAPH-54AC 0x54AD 咭 CJK UNIFIED IDEOGRAPH-54AD 0x54AF 咯 CJK UNIFIED IDEOGRAPH-54AF 0x54B1 咱 CJK UNIFIED IDEOGRAPH-54B1 0x54B3 咳 CJK UNIFIED IDEOGRAPH-54B3 0x54B8 咸 CJK UNIFIED IDEOGRAPH-54B8 0x54BB 咻 CJK UNIFIED IDEOGRAPH-54BB 0x54BD 咽 CJK UNIFIED IDEOGRAPH-54BD 0x54BE 咾 CJK UNIFIED IDEOGRAPH-54BE 0x54BF 咿 CJK UNIFIED IDEOGRAPH-54BF 0x54C0 哀 CJK UNIFIED IDEOGRAPH-54C0 0x54C1 品 CJK UNIFIED IDEOGRAPH-54C1 0x54C2 哂 CJK UNIFIED IDEOGRAPH-54C2 0x54C4 哄 CJK UNIFIED IDEOGRAPH-54C4 0x54C6 哆 CJK UNIFIED IDEOGRAPH-54C6 0x54C7 哇 CJK UNIFIED IDEOGRAPH-54C7 0x54C8 哈 CJK UNIFIED IDEOGRAPH-54C8 0x54C9 哉 CJK UNIFIED IDEOGRAPH-54C9 0x54CE 哎 CJK UNIFIED IDEOGRAPH-54CE 0x54CF 哏 CJK UNIFIED IDEOGRAPH-54CF 0x54D6 哖 CJK UNIFIED IDEOGRAPH-54D6 0x54DE 哞 CJK UNIFIED IDEOGRAPH-54DE 0x54E1 員 CJK UNIFIED IDEOGRAPH-54E1 0x54E5 哥 CJK UNIFIED IDEOGRAPH-54E5 0x54E6 哦 CJK UNIFIED IDEOGRAPH-54E6 0x54E7 哧 CJK UNIFIED IDEOGRAPH-54E7 0x54E8 哨 CJK UNIFIED IDEOGRAPH-54E8 0x54E9 哩 CJK UNIFIED IDEOGRAPH-54E9 0x54EA 哪 CJK UNIFIED IDEOGRAPH-54EA 0x54ED 哭 CJK UNIFIED IDEOGRAPH-54ED 0x54EE 哮 CJK UNIFIED IDEOGRAPH-54EE 0x54F2 哲 CJK UNIFIED IDEOGRAPH-54F2 0x54FA 哺 CJK UNIFIED IDEOGRAPH-54FA 0x54FC 哼 CJK UNIFIED IDEOGRAPH-54FC 0x54FD 哽 CJK UNIFIED IDEOGRAPH-54FD 0x5501 唁 CJK UNIFIED IDEOGRAPH-5501 0x5504 唄 CJK UNIFIED IDEOGRAPH-5504 0x5506 唆 CJK UNIFIED IDEOGRAPH-5506 0x5507 唇 CJK UNIFIED IDEOGRAPH-5507 0x5509 唉 CJK UNIFIED IDEOGRAPH-5509 0x550F 唏 CJK UNIFIED IDEOGRAPH-550F 0x5510 唐 CJK UNIFIED IDEOGRAPH-5510 0x5511 唑 CJK UNIFIED IDEOGRAPH-5511 0x5514 唔 CJK UNIFIED IDEOGRAPH-5514 0x5527 唧 CJK UNIFIED IDEOGRAPH-5527 0x552C 唬 CJK UNIFIED IDEOGRAPH-552C 0x552D 唭 CJK UNIFIED IDEOGRAPH-552D 0x552E 售 CJK UNIFIED IDEOGRAPH-552E 0x552F 唯 CJK UNIFIED IDEOGRAPH-552F 0x5530 唰 CJK UNIFIED IDEOGRAPH-5530 0x5531 唱 CJK UNIFIED IDEOGRAPH-5531 0x5533 唳 CJK UNIFIED IDEOGRAPH-5533 0x5535 唵 CJK UNIFIED IDEOGRAPH-5535 0x5537 唷 CJK UNIFIED IDEOGRAPH-5537 0x5538 唸 CJK UNIFIED IDEOGRAPH-5538 0x553E 唾 CJK UNIFIED IDEOGRAPH-553E 0x5543 啃 CJK UNIFIED IDEOGRAPH-5543 0x5544 啄 CJK UNIFIED IDEOGRAPH-5544 0x5546 商 CJK UNIFIED IDEOGRAPH-5546 0x554A 啊 CJK UNIFIED IDEOGRAPH-554A 0x554F 問 CJK UNIFIED IDEOGRAPH-554F 0x5550 啐 CJK UNIFIED IDEOGRAPH-5550 0x5555 啕 CJK UNIFIED IDEOGRAPH-5555 0x5556 啖 CJK UNIFIED IDEOGRAPH-5556 0x555C 啜 CJK UNIFIED IDEOGRAPH-555C 0x555E 啞 CJK UNIFIED IDEOGRAPH-555E 0x555F 啟 CJK UNIFIED IDEOGRAPH-555F 0x5561 啡 CJK UNIFIED IDEOGRAPH-5561 0x5563 啣 CJK UNIFIED IDEOGRAPH-5563 0x5564 啤 CJK UNIFIED IDEOGRAPH-5564 0x5565 啥 CJK UNIFIED IDEOGRAPH-5565 0x5566 啦 CJK UNIFIED IDEOGRAPH-5566 0x556A 啪 CJK UNIFIED IDEOGRAPH-556A 0x5575 啵 CJK UNIFIED IDEOGRAPH-5575 0x5576 啶 CJK UNIFIED IDEOGRAPH-5576 0x5577 啷 CJK UNIFIED IDEOGRAPH-5577 0x557B 啻 CJK UNIFIED IDEOGRAPH-557B 0x557C 啼 CJK UNIFIED IDEOGRAPH-557C 0x557E 啾 CJK UNIFIED IDEOGRAPH-557E 0x5580 喀 CJK UNIFIED IDEOGRAPH-5580 0x5582 喂 CJK UNIFIED IDEOGRAPH-5582 0x5583 喃 CJK UNIFIED IDEOGRAPH-5583 0x5584 善 CJK UNIFIED IDEOGRAPH-5584 0x5587 喇 CJK UNIFIED IDEOGRAPH-5587 0x5589 喉 CJK UNIFIED IDEOGRAPH-5589 0x558A 喊 CJK UNIFIED IDEOGRAPH-558A 0x558B 喋 CJK UNIFIED IDEOGRAPH-558B 0x558E 喎 CJK UNIFIED IDEOGRAPH-558E 0x558F 喏 CJK UNIFIED IDEOGRAPH-558F 0x5591 喑 CJK UNIFIED IDEOGRAPH-5591 0x5594 喔 CJK UNIFIED IDEOGRAPH-5594 0x5598 喘 CJK UNIFIED IDEOGRAPH-5598 0x5599 喙 CJK UNIFIED IDEOGRAPH-5599 0x559A 喚 CJK UNIFIED IDEOGRAPH-559A 0x559C 喜 CJK UNIFIED IDEOGRAPH-559C 0x559D 喝 CJK UNIFIED IDEOGRAPH-559D 0x559F 喟 CJK UNIFIED IDEOGRAPH-559F 0x55A7 喧 CJK UNIFIED IDEOGRAPH-55A7 0x55A8 喨 CJK UNIFIED IDEOGRAPH-55A8 0x55AA 喪 CJK UNIFIED IDEOGRAPH-55AA 0x55AB 喫 CJK UNIFIED IDEOGRAPH-55AB 0x55AC 喬 CJK UNIFIED IDEOGRAPH-55AC 0x55AE 單 CJK UNIFIED IDEOGRAPH-55AE 0x55B1 喱 CJK UNIFIED IDEOGRAPH-55B1 0x55B2 喲 CJK UNIFIED IDEOGRAPH-55B2 0x55B3 喳 CJK UNIFIED IDEOGRAPH-55B3 0x55B5 喵 CJK UNIFIED IDEOGRAPH-55B5 0x55BB 喻 CJK UNIFIED IDEOGRAPH-55BB 0x55C4 嗄 CJK UNIFIED IDEOGRAPH-55C4 0x55C5 嗅 CJK UNIFIED IDEOGRAPH-55C5 0x55C6 嗆 CJK UNIFIED IDEOGRAPH-55C6 0x55C7 嗇 CJK UNIFIED IDEOGRAPH-55C7 0x55CC 嗌 CJK UNIFIED IDEOGRAPH-55CC 0x55CE 嗎 CJK UNIFIED IDEOGRAPH-55CE 0x55D1 嗑 CJK UNIFIED IDEOGRAPH-55D1 0x55D2 嗒 CJK UNIFIED IDEOGRAPH-55D2 0x55D3 嗓 CJK UNIFIED IDEOGRAPH-55D3 0x55D4 嗔 CJK UNIFIED IDEOGRAPH-55D4 0x55D6 嗖 CJK UNIFIED IDEOGRAPH-55D6 0x55DA 嗚 CJK UNIFIED IDEOGRAPH-55DA 0x55DC 嗜 CJK UNIFIED IDEOGRAPH-55DC 0x55DD 嗝 CJK UNIFIED IDEOGRAPH-55DD 0x55DF 嗟 CJK UNIFIED IDEOGRAPH-55DF 0x55E1 嗡 CJK UNIFIED IDEOGRAPH-55E1 0x55E3 嗣 CJK UNIFIED IDEOGRAPH-55E3 0x55E4 嗤 CJK UNIFIED IDEOGRAPH-55E4 0x55E6 嗦 CJK UNIFIED IDEOGRAPH-55E6 0x55E8 嗨 CJK UNIFIED IDEOGRAPH-55E8 0x55E9 嗩 CJK UNIFIED IDEOGRAPH-55E9 0x55EF 嗯 CJK UNIFIED IDEOGRAPH-55EF 0x55F2 嗲 CJK UNIFIED IDEOGRAPH-55F2 0x55F6 嗶 CJK UNIFIED IDEOGRAPH-55F6 0x55F7 嗷 CJK UNIFIED IDEOGRAPH-55F7 0x55FD 嗽 CJK UNIFIED IDEOGRAPH-55FD 0x5600 嘀 CJK UNIFIED IDEOGRAPH-5600 0x5606 嘆 CJK UNIFIED IDEOGRAPH-5606 0x5608 嘈 CJK UNIFIED IDEOGRAPH-5608 0x5609 嘉 CJK UNIFIED IDEOGRAPH-5609 0x560C 嘌 CJK UNIFIED IDEOGRAPH-560C 0x560D 嘍 CJK UNIFIED IDEOGRAPH-560D 0x560E 嘎 CJK UNIFIED IDEOGRAPH-560E 0x5614 嘔 CJK UNIFIED IDEOGRAPH-5614 0x5616 嘖 CJK UNIFIED IDEOGRAPH-5616 0x5617 嘗 CJK UNIFIED IDEOGRAPH-5617 0x561B 嘛 CJK UNIFIED IDEOGRAPH-561B 0x561C 嘜 CJK UNIFIED IDEOGRAPH-561C 0x561F 嘟 CJK UNIFIED IDEOGRAPH-561F 0x5627 嘧 CJK UNIFIED IDEOGRAPH-5627 0x5629 嘩 CJK UNIFIED IDEOGRAPH-5629 0x562E 嘮 CJK UNIFIED IDEOGRAPH-562E 0x562F 嘯 CJK UNIFIED IDEOGRAPH-562F 0x5630 嘰 CJK UNIFIED IDEOGRAPH-5630 0x5632 嘲 CJK UNIFIED IDEOGRAPH-5632 0x5634 嘴 CJK UNIFIED IDEOGRAPH-5634 0x5636 嘶 CJK UNIFIED IDEOGRAPH-5636 0x5638 嘸 CJK UNIFIED IDEOGRAPH-5638 0x5639 嘹 CJK UNIFIED IDEOGRAPH-5639 0x563B 嘻 CJK UNIFIED IDEOGRAPH-563B 0x563F 嘿 CJK UNIFIED IDEOGRAPH-563F 0x5641 噁 CJK UNIFIED IDEOGRAPH-5641 0x5642 噂 CJK UNIFIED IDEOGRAPH-5642 0x5649 噉 CJK UNIFIED IDEOGRAPH-5649 0x564C 噌 CJK UNIFIED IDEOGRAPH-564C 0x564E 噎 CJK UNIFIED IDEOGRAPH-564E 0x5653 噓 CJK UNIFIED IDEOGRAPH-5653 0x5657 噗 CJK UNIFIED IDEOGRAPH-5657 0x5658 噘 CJK UNIFIED IDEOGRAPH-5658 0x5659 噙 CJK UNIFIED IDEOGRAPH-5659 0x565A 噚 CJK UNIFIED IDEOGRAPH-565A 0x5660 噠 CJK UNIFIED IDEOGRAPH-5660 0x5662 噢 CJK UNIFIED IDEOGRAPH-5662 0x5664 噤 CJK UNIFIED IDEOGRAPH-5664 0x5665 噥 CJK UNIFIED IDEOGRAPH-5665 0x5668 器 CJK UNIFIED IDEOGRAPH-5668 0x5669 噩 CJK UNIFIED IDEOGRAPH-5669 0x566A 噪 CJK UNIFIED IDEOGRAPH-566A 0x566B 噫 CJK UNIFIED IDEOGRAPH-566B 0x566C 噬 CJK UNIFIED IDEOGRAPH-566C 0x566F 噯 CJK UNIFIED IDEOGRAPH-566F 0x5671 噱 CJK UNIFIED IDEOGRAPH-5671 0x5674 噴 CJK UNIFIED IDEOGRAPH-5674 0x5676 噶 CJK UNIFIED IDEOGRAPH-5676 0x5678 噸 CJK UNIFIED IDEOGRAPH-5678 0x5679 噹 CJK UNIFIED IDEOGRAPH-5679 0x5680 嚀 CJK UNIFIED IDEOGRAPH-5680 0x5685 嚅 CJK UNIFIED IDEOGRAPH-5685 0x5687 嚇 CJK UNIFIED IDEOGRAPH-5687 0x568E 嚎 CJK UNIFIED IDEOGRAPH-568E 0x568F 嚏 CJK UNIFIED IDEOGRAPH-568F 0x5690 嚐 CJK UNIFIED IDEOGRAPH-5690 0x5693 嚓 CJK UNIFIED IDEOGRAPH-5693 0x5695 嚕 CJK UNIFIED IDEOGRAPH-5695 0x5699 嚙 CJK UNIFIED IDEOGRAPH-5699 0x569C 嚜 CJK UNIFIED IDEOGRAPH-569C 0x56A5 嚥 CJK UNIFIED IDEOGRAPH-56A5 0x56A8 嚨 CJK UNIFIED IDEOGRAPH-56A8 0x56AE 嚮 CJK UNIFIED IDEOGRAPH-56AE 0x56B4 嚴 CJK UNIFIED IDEOGRAPH-56B4 0x56B6 嚶 CJK UNIFIED IDEOGRAPH-56B6 0x56B7 嚷 CJK UNIFIED IDEOGRAPH-56B7 0x56BC 嚼 CJK UNIFIED IDEOGRAPH-56BC 0x56C1 囁 CJK UNIFIED IDEOGRAPH-56C1 0x56C2 囂 CJK UNIFIED IDEOGRAPH-56C2 0x56C8 囈 CJK UNIFIED IDEOGRAPH-56C8 0x56C9 囉 CJK UNIFIED IDEOGRAPH-56C9 0x56CA 囊 CJK UNIFIED IDEOGRAPH-56CA 0x56CD 囍 CJK UNIFIED IDEOGRAPH-56CD 0x56D1 囑 CJK UNIFIED IDEOGRAPH-56D1 0x56D4 囔 CJK UNIFIED IDEOGRAPH-56D4 0x56D7 囗 CJK UNIFIED IDEOGRAPH-56D7 0x56DA 囚 CJK UNIFIED IDEOGRAPH-56DA 0x56DB 四 CJK UNIFIED IDEOGRAPH-56DB 0x56DD 囝 CJK UNIFIED IDEOGRAPH-56DD 0x56DE 回 CJK UNIFIED IDEOGRAPH-56DE 0x56DF 囟 CJK UNIFIED IDEOGRAPH-56DF 0x56E0 因 CJK UNIFIED IDEOGRAPH-56E0 0x56E1 囡 CJK UNIFIED IDEOGRAPH-56E1 0x56E4 囤 CJK UNIFIED IDEOGRAPH-56E4 0x56E7 囧 CJK UNIFIED IDEOGRAPH-56E7 0x56EA 囪 CJK UNIFIED IDEOGRAPH-56EA 0x56EB 囫 CJK UNIFIED IDEOGRAPH-56EB 0x56F0 困 CJK UNIFIED IDEOGRAPH-56F0 0x56F9 囹 CJK UNIFIED IDEOGRAPH-56F9 0x56FA 固 CJK UNIFIED IDEOGRAPH-56FA 0x56FF 囿 CJK UNIFIED IDEOGRAPH-56FF 0x5703 圃 CJK UNIFIED IDEOGRAPH-5703 0x5704 圄 CJK UNIFIED IDEOGRAPH-5704 0x5707 圇 CJK UNIFIED IDEOGRAPH-5707 0x5708 圈 CJK UNIFIED IDEOGRAPH-5708 0x570B 國 CJK UNIFIED IDEOGRAPH-570B 0x570D 圍 CJK UNIFIED IDEOGRAPH-570D 0x5712 園 CJK UNIFIED IDEOGRAPH-5712 0x5713 圓 CJK UNIFIED IDEOGRAPH-5713 0x5716 圖 CJK UNIFIED IDEOGRAPH-5716 0x5718 團 CJK UNIFIED IDEOGRAPH-5718 0x571C 圜 CJK UNIFIED IDEOGRAPH-571C 0x571F 土 CJK UNIFIED IDEOGRAPH-571F 0x5723 圣 CJK UNIFIED IDEOGRAPH-5723 0x5728 在 CJK UNIFIED IDEOGRAPH-5728 0x5729 圩 CJK UNIFIED IDEOGRAPH-5729 0x572D 圭 CJK UNIFIED IDEOGRAPH-572D 0x572E 圮 CJK UNIFIED IDEOGRAPH-572E 0x5730 地 CJK UNIFIED IDEOGRAPH-5730 0x5733 圳 CJK UNIFIED IDEOGRAPH-5733 0x573B 圻 CJK UNIFIED IDEOGRAPH-573B 0x573E 圾 CJK UNIFIED IDEOGRAPH-573E 0x5740 址 CJK UNIFIED IDEOGRAPH-5740 0x5747 均 CJK UNIFIED IDEOGRAPH-5747 0x574A 坊 CJK UNIFIED IDEOGRAPH-574A 0x574D 坍 CJK UNIFIED IDEOGRAPH-574D 0x574E 坎 CJK UNIFIED IDEOGRAPH-574E 0x574F 坏 CJK UNIFIED IDEOGRAPH-574F 0x5750 坐 CJK UNIFIED IDEOGRAPH-5750 0x5751 坑 CJK UNIFIED IDEOGRAPH-5751 0x5761 坡 CJK UNIFIED IDEOGRAPH-5761 0x5764 坤 CJK UNIFIED IDEOGRAPH-5764 0x5766 坦 CJK UNIFIED IDEOGRAPH-5766 0x5768 坨 CJK UNIFIED IDEOGRAPH-5768 0x5769 坩 CJK UNIFIED IDEOGRAPH-5769 0x576A 坪 CJK UNIFIED IDEOGRAPH-576A 0x576F 坯 CJK UNIFIED IDEOGRAPH-576F 0x5773 坳 CJK UNIFIED IDEOGRAPH-5773 0x5775 坵 CJK UNIFIED IDEOGRAPH-5775 0x5777 坷 CJK UNIFIED IDEOGRAPH-5777 0x5782 垂 CJK UNIFIED IDEOGRAPH-5782 0x5783 垃 CJK UNIFIED IDEOGRAPH-5783 0x578B 型 CJK UNIFIED IDEOGRAPH-578B 0x5793 垓 CJK UNIFIED IDEOGRAPH-5793 0x579A 垚 CJK UNIFIED IDEOGRAPH-579A 0x579B 垛 CJK UNIFIED IDEOGRAPH-579B 0x57A0 垠 CJK UNIFIED IDEOGRAPH-57A0 0x57A2 垢 CJK UNIFIED IDEOGRAPH-57A2 0x57A3 垣 CJK UNIFIED IDEOGRAPH-57A3 0x57AE 垮 CJK UNIFIED IDEOGRAPH-57AE 0x57B5 垵 CJK UNIFIED IDEOGRAPH-57B5 0x57C2 埂 CJK UNIFIED IDEOGRAPH-57C2 0x57C3 埃 CJK UNIFIED IDEOGRAPH-57C3 0x57CB 埋 CJK UNIFIED IDEOGRAPH-57CB 0x57CE 城 CJK UNIFIED IDEOGRAPH-57CE 0x57D4 埔 CJK UNIFIED IDEOGRAPH-57D4 0x57D5 埕 CJK UNIFIED IDEOGRAPH-57D5 0x57DC 埜 CJK UNIFIED IDEOGRAPH-57DC 0x57DF 域 CJK UNIFIED IDEOGRAPH-57DF 0x57E0 埠 CJK UNIFIED IDEOGRAPH-57E0 0x57E1 埡 CJK UNIFIED IDEOGRAPH-57E1 0x57E4 埤 CJK UNIFIED IDEOGRAPH-57E4 0x57E7 埧 CJK UNIFIED IDEOGRAPH-57E7 0x57F5 埵 CJK UNIFIED IDEOGRAPH-57F5 0x57F7 執 CJK UNIFIED IDEOGRAPH-57F7 0x57F8 埸 CJK UNIFIED IDEOGRAPH-57F8 0x57F9 培 CJK UNIFIED IDEOGRAPH-57F9 0x57FA 基 CJK UNIFIED IDEOGRAPH-57FA 0x57FC 埼 CJK UNIFIED IDEOGRAPH-57FC 0x5800 堀 CJK UNIFIED IDEOGRAPH-5800 0x5802 堂 CJK UNIFIED IDEOGRAPH-5802 0x5805 堅 CJK UNIFIED IDEOGRAPH-5805 0x5806 堆 CJK UNIFIED IDEOGRAPH-5806 0x5807 堇 CJK UNIFIED IDEOGRAPH-5807 0x5809 堉 CJK UNIFIED IDEOGRAPH-5809 0x580A 堊 CJK UNIFIED IDEOGRAPH-580A 0x581D 堝 CJK UNIFIED IDEOGRAPH-581D 0x5821 堡 CJK UNIFIED IDEOGRAPH-5821 0x5824 堤 CJK UNIFIED IDEOGRAPH-5824 0x582A 堪 CJK UNIFIED IDEOGRAPH-582A 0x582F 堯 CJK UNIFIED IDEOGRAPH-582F 0x5830 堰 CJK UNIFIED IDEOGRAPH-5830 0x5831 報 CJK UNIFIED IDEOGRAPH-5831 0x5834 場 CJK UNIFIED IDEOGRAPH-5834 0x5835 堵 CJK UNIFIED IDEOGRAPH-5835 0x583F 堿 CJK UNIFIED IDEOGRAPH-583F 0x584A 塊 CJK UNIFIED IDEOGRAPH-584A 0x584B 塋 CJK UNIFIED IDEOGRAPH-584B 0x584C 塌 CJK UNIFIED IDEOGRAPH-584C 0x5851 塑 CJK UNIFIED IDEOGRAPH-5851 0x5854 塔 CJK UNIFIED IDEOGRAPH-5854 0x5857 塗 CJK UNIFIED IDEOGRAPH-5857 0x5858 塘 CJK UNIFIED IDEOGRAPH-5858 0x585A 塚 CJK UNIFIED IDEOGRAPH-585A 0x585E 塞 CJK UNIFIED IDEOGRAPH-585E 0x5862 塢 CJK UNIFIED IDEOGRAPH-5862 0x586B 填 CJK UNIFIED IDEOGRAPH-586B 0x586D 塭 CJK UNIFIED IDEOGRAPH-586D 0x5871 塱 CJK UNIFIED IDEOGRAPH-5871 0x5875 塵 CJK UNIFIED IDEOGRAPH-5875 0x5879 塹 CJK UNIFIED IDEOGRAPH-5879 0x587E 塾 CJK UNIFIED IDEOGRAPH-587E 0x5880 墀 CJK UNIFIED IDEOGRAPH-5880 0x5883 境 CJK UNIFIED IDEOGRAPH-5883 0x5885 墅 CJK UNIFIED IDEOGRAPH-5885 0x5889 墉 CJK UNIFIED IDEOGRAPH-5889 0x588A 墊 CJK UNIFIED IDEOGRAPH-588A 0x5893 墓 CJK UNIFIED IDEOGRAPH-5893 0x5898 墘 CJK UNIFIED IDEOGRAPH-5898 0x589C 墜 CJK UNIFIED IDEOGRAPH-589C 0x589E 增 CJK UNIFIED IDEOGRAPH-589E 0x589F 墟 CJK UNIFIED IDEOGRAPH-589F 0x58A8 墨 CJK UNIFIED IDEOGRAPH-58A8 0x58A9 墩 CJK UNIFIED IDEOGRAPH-58A9 0x58AC 墬 CJK UNIFIED IDEOGRAPH-58AC 0x58AE 墮 CJK UNIFIED IDEOGRAPH-58AE 0x58B3 墳 CJK UNIFIED IDEOGRAPH-58B3 0x58BB 墻 CJK UNIFIED IDEOGRAPH-58BB 0x58BE 墾 CJK UNIFIED IDEOGRAPH-58BE 0x58C1 壁 CJK UNIFIED IDEOGRAPH-58C1 0x58C5 壅 CJK UNIFIED IDEOGRAPH-58C5 0x58C6 壆 CJK UNIFIED IDEOGRAPH-58C6 0x58C7 壇 CJK UNIFIED IDEOGRAPH-58C7 0x58D1 壑 CJK UNIFIED IDEOGRAPH-58D1 0x58D3 壓 CJK UNIFIED IDEOGRAPH-58D3 0x58D5 壕 CJK UNIFIED IDEOGRAPH-58D5 0x58D8 壘 CJK UNIFIED IDEOGRAPH-58D8 0x58DE 壞 CJK UNIFIED IDEOGRAPH-58DE 0x58DF 壟 CJK UNIFIED IDEOGRAPH-58DF 0x58E2 壢 CJK UNIFIED IDEOGRAPH-58E2 0x58E4 壤 CJK UNIFIED IDEOGRAPH-58E4 0x58E9 壩 CJK UNIFIED IDEOGRAPH-58E9 0x58EB 士 CJK UNIFIED IDEOGRAPH-58EB 0x58EC 壬 CJK UNIFIED IDEOGRAPH-58EC 0x58EF 壯 CJK UNIFIED IDEOGRAPH-58EF 0x58F9 壹 CJK UNIFIED IDEOGRAPH-58F9 0x58FA 壺 CJK UNIFIED IDEOGRAPH-58FA 0x58FC 壼 CJK UNIFIED IDEOGRAPH-58FC 0x58FD 壽 CJK UNIFIED IDEOGRAPH-58FD 0x5906 夆 CJK UNIFIED IDEOGRAPH-5906 0x590D 复 CJK UNIFIED IDEOGRAPH-590D 0x590F 夏 CJK UNIFIED IDEOGRAPH-590F 0x5914 夔 CJK UNIFIED IDEOGRAPH-5914 0x5915 夕 CJK UNIFIED IDEOGRAPH-5915 0x5916 外 CJK UNIFIED IDEOGRAPH-5916 0x5919 夙 CJK UNIFIED IDEOGRAPH-5919 0x591A 多 CJK UNIFIED IDEOGRAPH-591A 0x591C 夜 CJK UNIFIED IDEOGRAPH-591C 0x5920 夠 CJK UNIFIED IDEOGRAPH-5920 0x5922 夢 CJK UNIFIED IDEOGRAPH-5922 0x5925 夥 CJK UNIFIED IDEOGRAPH-5925 0x5927 大 CJK UNIFIED IDEOGRAPH-5927 0x5929 天 CJK UNIFIED IDEOGRAPH-5929 0x592A 太 CJK UNIFIED IDEOGRAPH-592A 0x592B 夫 CJK UNIFIED IDEOGRAPH-592B 0x592D 夭 CJK UNIFIED IDEOGRAPH-592D 0x592E 央 CJK UNIFIED IDEOGRAPH-592E 0x592F 夯 CJK UNIFIED IDEOGRAPH-592F 0x5931 失 CJK UNIFIED IDEOGRAPH-5931 0x5937 夷 CJK UNIFIED IDEOGRAPH-5937 0x5938 夸 CJK UNIFIED IDEOGRAPH-5938 0x593E 夾 CJK UNIFIED IDEOGRAPH-593E 0x5940 奀 CJK UNIFIED IDEOGRAPH-5940 0x5944 奄 CJK UNIFIED IDEOGRAPH-5944 0x5947 奇 CJK UNIFIED IDEOGRAPH-5947 0x5948 奈 CJK UNIFIED IDEOGRAPH-5948 0x5949 奉 CJK UNIFIED IDEOGRAPH-5949 0x594E 奎 CJK UNIFIED IDEOGRAPH-594E 0x594F 奏 CJK UNIFIED IDEOGRAPH-594F 0x5950 奐 CJK UNIFIED IDEOGRAPH-5950 0x5951 契 CJK UNIFIED IDEOGRAPH-5951 0x5954 奔 CJK UNIFIED IDEOGRAPH-5954 0x5955 奕 CJK UNIFIED IDEOGRAPH-5955 0x5957 套 CJK UNIFIED IDEOGRAPH-5957 0x5958 奘 CJK UNIFIED IDEOGRAPH-5958 0x595A 奚 CJK UNIFIED IDEOGRAPH-595A 0x5960 奠 CJK UNIFIED IDEOGRAPH-5960 0x5962 奢 CJK UNIFIED IDEOGRAPH-5962 0x5967 奧 CJK UNIFIED IDEOGRAPH-5967 0x596A 奪 CJK UNIFIED IDEOGRAPH-596A 0x596D 奭 CJK UNIFIED IDEOGRAPH-596D 0x596E 奮 CJK UNIFIED IDEOGRAPH-596E 0x5973 女 CJK UNIFIED IDEOGRAPH-5973 0x5974 奴 CJK UNIFIED IDEOGRAPH-5974 0x5976 奶 CJK UNIFIED IDEOGRAPH-5976 0x5978 奸 CJK UNIFIED IDEOGRAPH-5978 0x5979 她 CJK UNIFIED IDEOGRAPH-5979 0x597C 奼 CJK UNIFIED IDEOGRAPH-597C 0x597D 好 CJK UNIFIED IDEOGRAPH-597D 0x5981 妁 CJK UNIFIED IDEOGRAPH-5981 0x5982 如 CJK UNIFIED IDEOGRAPH-5982 0x5983 妃 CJK UNIFIED IDEOGRAPH-5983 0x5984 妄 CJK UNIFIED IDEOGRAPH-5984 0x598A 妊 CJK UNIFIED IDEOGRAPH-598A 0x598D 妍 CJK UNIFIED IDEOGRAPH-598D 0x598F 妏 CJK UNIFIED IDEOGRAPH-598F 0x5992 妒 CJK UNIFIED IDEOGRAPH-5992 0x5993 妓 CJK UNIFIED IDEOGRAPH-5993 0x5996 妖 CJK UNIFIED IDEOGRAPH-5996 0x5997 妗 CJK UNIFIED IDEOGRAPH-5997 0x5998 妘 CJK UNIFIED IDEOGRAPH-5998 0x5999 妙 CJK UNIFIED IDEOGRAPH-5999 0x599D 妝 CJK UNIFIED IDEOGRAPH-599D 0x599E 妞 CJK UNIFIED IDEOGRAPH-599E 0x59A1 妡 CJK UNIFIED IDEOGRAPH-59A1 0x59A3 妣 CJK UNIFIED IDEOGRAPH-59A3 0x59A4 妤 CJK UNIFIED IDEOGRAPH-59A4 0x59A5 妥 CJK UNIFIED IDEOGRAPH-59A5 0x59A8 妨 CJK UNIFIED IDEOGRAPH-59A8 0x59AE 妮 CJK UNIFIED IDEOGRAPH-59AE 0x59AF 妯 CJK UNIFIED IDEOGRAPH-59AF 0x59B2 妲 CJK UNIFIED IDEOGRAPH-59B2 0x59B3 妳 CJK UNIFIED IDEOGRAPH-59B3 0x59B9 妹 CJK UNIFIED IDEOGRAPH-59B9 0x59BA 妺 CJK UNIFIED IDEOGRAPH-59BA 0x59BB 妻 CJK UNIFIED IDEOGRAPH-59BB 0x59BE 妾 CJK UNIFIED IDEOGRAPH-59BE 0x59C6 姆 CJK UNIFIED IDEOGRAPH-59C6 0x59CA 姊 CJK UNIFIED IDEOGRAPH-59CA 0x59CB 始 CJK UNIFIED IDEOGRAPH-59CB 0x59CD 姍 CJK UNIFIED IDEOGRAPH-59CD 0x59D0 姐 CJK UNIFIED IDEOGRAPH-59D0 0x59D1 姑 CJK UNIFIED IDEOGRAPH-59D1 0x59D2 姒 CJK UNIFIED IDEOGRAPH-59D2 0x59D3 姓 CJK UNIFIED IDEOGRAPH-59D3 0x59D4 委 CJK UNIFIED IDEOGRAPH-59D4 0x59D8 姘 CJK UNIFIED IDEOGRAPH-59D8 0x59DA 姚 CJK UNIFIED IDEOGRAPH-59DA 0x59DC 姜 CJK UNIFIED IDEOGRAPH-59DC 0x59DD 姝 CJK UNIFIED IDEOGRAPH-59DD 0x59E3 姣 CJK UNIFIED IDEOGRAPH-59E3 0x59E5 姥 CJK UNIFIED IDEOGRAPH-59E5 0x59E6 姦 CJK UNIFIED IDEOGRAPH-59E6 0x59E8 姨 CJK UNIFIED IDEOGRAPH-59E8 0x59EA 姪 CJK UNIFIED IDEOGRAPH-59EA 0x59EC 姬 CJK UNIFIED IDEOGRAPH-59EC 0x59EE 姮 CJK UNIFIED IDEOGRAPH-59EE 0x59F5 姵 CJK UNIFIED IDEOGRAPH-59F5 0x59FB 姻 CJK UNIFIED IDEOGRAPH-59FB 0x59FF 姿 CJK UNIFIED IDEOGRAPH-59FF 0x5A01 威 CJK UNIFIED IDEOGRAPH-5A01 0x5A03 娃 CJK UNIFIED IDEOGRAPH-5A03 0x5A09 娉 CJK UNIFIED IDEOGRAPH-5A09 0x5A0C 娌 CJK UNIFIED IDEOGRAPH-5A0C 0x5A11 娑 CJK UNIFIED IDEOGRAPH-5A11 0x5A13 娓 CJK UNIFIED IDEOGRAPH-5A13 0x5A18 娘 CJK UNIFIED IDEOGRAPH-5A18 0x5A1B 娛 CJK UNIFIED IDEOGRAPH-5A1B 0x5A1C 娜 CJK UNIFIED IDEOGRAPH-5A1C 0x5A1F 娟 CJK UNIFIED IDEOGRAPH-5A1F 0x5A20 娠 CJK UNIFIED IDEOGRAPH-5A20 0x5A23 娣 CJK UNIFIED IDEOGRAPH-5A23 0x5A25 娥 CJK UNIFIED IDEOGRAPH-5A25 0x5A29 娩 CJK UNIFIED IDEOGRAPH-5A29 0x5A36 娶 CJK UNIFIED IDEOGRAPH-5A36 0x5A38 娸 CJK UNIFIED IDEOGRAPH-5A38 0x5A3C 娼 CJK UNIFIED IDEOGRAPH-5A3C 0x5A40 婀 CJK UNIFIED IDEOGRAPH-5A40 0x5A41 婁 CJK UNIFIED IDEOGRAPH-5A41 0x5A46 婆 CJK UNIFIED IDEOGRAPH-5A46 0x5A49 婉 CJK UNIFIED IDEOGRAPH-5A49 0x5A4A 婊 CJK UNIFIED IDEOGRAPH-5A4A 0x5A55 婕 CJK UNIFIED IDEOGRAPH-5A55 0x5A5A 婚 CJK UNIFIED IDEOGRAPH-5A5A 0x5A5E 婞 CJK UNIFIED IDEOGRAPH-5A5E 0x5A62 婢 CJK UNIFIED IDEOGRAPH-5A62 0x5A66 婦 CJK UNIFIED IDEOGRAPH-5A66 0x5A67 婧 CJK UNIFIED IDEOGRAPH-5A67 0x5A6A 婪 CJK UNIFIED IDEOGRAPH-5A6A 0x5A6D 婭 CJK UNIFIED IDEOGRAPH-5A6D 0x5A77 婷 CJK UNIFIED IDEOGRAPH-5A77 0x5A7A 婺 CJK UNIFIED IDEOGRAPH-5A7A 0x5A7F 婿 CJK UNIFIED IDEOGRAPH-5A7F 0x5A83 媃 CJK UNIFIED IDEOGRAPH-5A83 0x5A84 媄 CJK UNIFIED IDEOGRAPH-5A84 0x5A92 媒 CJK UNIFIED IDEOGRAPH-5A92 0x5A97 媗 CJK UNIFIED IDEOGRAPH-5A97 0x5A9A 媚 CJK UNIFIED IDEOGRAPH-5A9A 0x5A9B 媛 CJK UNIFIED IDEOGRAPH-5A9B 0x5A9C 媜 CJK UNIFIED IDEOGRAPH-5A9C 0x5A9E 媞 CJK UNIFIED IDEOGRAPH-5A9E 0x5AA7 媧 CJK UNIFIED IDEOGRAPH-5AA7 0x5AB2 媲 CJK UNIFIED IDEOGRAPH-5AB2 0x5AB3 媳 CJK UNIFIED IDEOGRAPH-5AB3 0x5ABA 媺 CJK UNIFIED IDEOGRAPH-5ABA 0x5ABD 媽 CJK UNIFIED IDEOGRAPH-5ABD 0x5ABE 媾 CJK UNIFIED IDEOGRAPH-5ABE 0x5AC1 嫁 CJK UNIFIED IDEOGRAPH-5AC1 0x5AC2 嫂 CJK UNIFIED IDEOGRAPH-5AC2 0x5AC9 嫉 CJK UNIFIED IDEOGRAPH-5AC9 0x5ACB 嫋 CJK UNIFIED IDEOGRAPH-5ACB 0x5ACC 嫌 CJK UNIFIED IDEOGRAPH-5ACC 0x5AD6 嫖 CJK UNIFIED IDEOGRAPH-5AD6 0x5AD7 嫗 CJK UNIFIED IDEOGRAPH-5AD7 0x5AD8 嫘 CJK UNIFIED IDEOGRAPH-5AD8 0x5ADA 嫚 CJK UNIFIED IDEOGRAPH-5ADA 0x5AE1 嫡 CJK UNIFIED IDEOGRAPH-5AE1 0x5AE3 嫣 CJK UNIFIED IDEOGRAPH-5AE3 0x5AE6 嫦 CJK UNIFIED IDEOGRAPH-5AE6 0x5AE9 嫩 CJK UNIFIED IDEOGRAPH-5AE9 0x5AF5 嫵 CJK UNIFIED IDEOGRAPH-5AF5 0x5AFA 嫺 CJK UNIFIED IDEOGRAPH-5AFA 0x5AFB 嫻 CJK UNIFIED IDEOGRAPH-5AFB 0x5B05 嬅 CJK UNIFIED IDEOGRAPH-5B05 0x5B08 嬈 CJK UNIFIED IDEOGRAPH-5B08 0x5B09 嬉 CJK UNIFIED IDEOGRAPH-5B09 0x5B0B 嬋 CJK UNIFIED IDEOGRAPH-5B0B 0x5B0C 嬌 CJK UNIFIED IDEOGRAPH-5B0C 0x5B17 嬗 CJK UNIFIED IDEOGRAPH-5B17 0x5B1B 嬛 CJK UNIFIED IDEOGRAPH-5B1B 0x5B21 嬡 CJK UNIFIED IDEOGRAPH-5B21 0x5B24 嬤 CJK UNIFIED IDEOGRAPH-5B24 0x5B2A 嬪 CJK UNIFIED IDEOGRAPH-5B2A 0x5B30 嬰 CJK UNIFIED IDEOGRAPH-5B30 0x5B32 嬲 CJK UNIFIED IDEOGRAPH-5B32 0x5B34 嬴 CJK UNIFIED IDEOGRAPH-5B34 0x5B38 嬸 CJK UNIFIED IDEOGRAPH-5B38 0x5B3F 嬿 CJK UNIFIED IDEOGRAPH-5B3F 0x5B40 孀 CJK UNIFIED IDEOGRAPH-5B40 0x5B43 孃 CJK UNIFIED IDEOGRAPH-5B43 0x5B45 孅 CJK UNIFIED IDEOGRAPH-5B45 0x5B4B 孋 CJK UNIFIED IDEOGRAPH-5B4B 0x5B4C 孌 CJK UNIFIED IDEOGRAPH-5B4C 0x5B50 子 CJK UNIFIED IDEOGRAPH-5B50 0x5B51 孑 CJK UNIFIED IDEOGRAPH-5B51 0x5B53 孓 CJK UNIFIED IDEOGRAPH-5B53 0x5B54 孔 CJK UNIFIED IDEOGRAPH-5B54 0x5B55 孕 CJK UNIFIED IDEOGRAPH-5B55 0x5B56 孖 CJK UNIFIED IDEOGRAPH-5B56 0x5B57 字 CJK UNIFIED IDEOGRAPH-5B57 0x5B58 存 CJK UNIFIED IDEOGRAPH-5B58 0x5B5A 孚 CJK UNIFIED IDEOGRAPH-5B5A 0x5B5B 孛 CJK UNIFIED IDEOGRAPH-5B5B 0x5B5C 孜 CJK UNIFIED IDEOGRAPH-5B5C 0x5B5D 孝 CJK UNIFIED IDEOGRAPH-5B5D 0x5B5F 孟 CJK UNIFIED IDEOGRAPH-5B5F 0x5B62 孢 CJK UNIFIED IDEOGRAPH-5B62 0x5B63 季 CJK UNIFIED IDEOGRAPH-5B63 0x5B64 孤 CJK UNIFIED IDEOGRAPH-5B64 0x5B69 孩 CJK UNIFIED IDEOGRAPH-5B69 0x5B6B 孫 CJK UNIFIED IDEOGRAPH-5B6B 0x5B6C 孬 CJK UNIFIED IDEOGRAPH-5B6C 0x5B70 孰 CJK UNIFIED IDEOGRAPH-5B70 0x5B71 孱 CJK UNIFIED IDEOGRAPH-5B71 0x5B73 孳 CJK UNIFIED IDEOGRAPH-5B73 0x5B75 孵 CJK UNIFIED IDEOGRAPH-5B75 0x5B78 學 CJK UNIFIED IDEOGRAPH-5B78 0x5B7A 孺 CJK UNIFIED IDEOGRAPH-5B7A 0x5B7B 孻 CJK UNIFIED IDEOGRAPH-5B7B 0x5B7D 孽 CJK UNIFIED IDEOGRAPH-5B7D 0x5B7F 孿 CJK UNIFIED IDEOGRAPH-5B7F 0x5B81 宁 CJK UNIFIED IDEOGRAPH-5B81 0x5B83 它 CJK UNIFIED IDEOGRAPH-5B83 0x5B85 宅 CJK UNIFIED IDEOGRAPH-5B85 0x5B87 宇 CJK UNIFIED IDEOGRAPH-5B87 0x5B88 守 CJK UNIFIED IDEOGRAPH-5B88 0x5B89 安 CJK UNIFIED IDEOGRAPH-5B89 0x5B8B 宋 CJK UNIFIED IDEOGRAPH-5B8B 0x5B8C 完 CJK UNIFIED IDEOGRAPH-5B8C 0x5B8F 宏 CJK UNIFIED IDEOGRAPH-5B8F 0x5B93 宓 CJK UNIFIED IDEOGRAPH-5B93 0x5B95 宕 CJK UNIFIED IDEOGRAPH-5B95 0x5B97 宗 CJK UNIFIED IDEOGRAPH-5B97 0x5B98 官 CJK UNIFIED IDEOGRAPH-5B98 0x5B99 宙 CJK UNIFIED IDEOGRAPH-5B99 0x5B9A 定 CJK UNIFIED IDEOGRAPH-5B9A 0x5B9B 宛 CJK UNIFIED IDEOGRAPH-5B9B 0x5B9C 宜 CJK UNIFIED IDEOGRAPH-5B9C 0x5BA2 客 CJK UNIFIED IDEOGRAPH-5BA2 0x5BA3 宣 CJK UNIFIED IDEOGRAPH-5BA3 0x5BA4 室 CJK UNIFIED IDEOGRAPH-5BA4 0x5BA5 宥 CJK UNIFIED IDEOGRAPH-5BA5 0x5BA6 宦 CJK UNIFIED IDEOGRAPH-5BA6 0x5BAC 宬 CJK UNIFIED IDEOGRAPH-5BAC 0x5BAE 宮 CJK UNIFIED IDEOGRAPH-5BAE 0x5BB0 宰 CJK UNIFIED IDEOGRAPH-5BB0 0x5BB3 害 CJK UNIFIED IDEOGRAPH-5BB3 0x5BB4 宴 CJK UNIFIED IDEOGRAPH-5BB4 0x5BB5 宵 CJK UNIFIED IDEOGRAPH-5BB5 0x5BB6 家 CJK UNIFIED IDEOGRAPH-5BB6 0x5BB8 宸 CJK UNIFIED IDEOGRAPH-5BB8 0x5BB9 容 CJK UNIFIED IDEOGRAPH-5BB9 0x5BBF 宿 CJK UNIFIED IDEOGRAPH-5BBF 0x5BC2 寂 CJK UNIFIED IDEOGRAPH-5BC2 0x5BC4 寄 CJK UNIFIED IDEOGRAPH-5BC4 0x5BC5 寅 CJK UNIFIED IDEOGRAPH-5BC5 0x5BC6 密 CJK UNIFIED IDEOGRAPH-5BC6 0x5BC7 寇 CJK UNIFIED IDEOGRAPH-5BC7 0x5BCC 富 CJK UNIFIED IDEOGRAPH-5BCC 0x5BD0 寐 CJK UNIFIED IDEOGRAPH-5BD0 0x5BD2 寒 CJK UNIFIED IDEOGRAPH-5BD2 0x5BD3 寓 CJK UNIFIED IDEOGRAPH-5BD3 0x5BDE 寞 CJK UNIFIED IDEOGRAPH-5BDE 0x5BDF 察 CJK UNIFIED IDEOGRAPH-5BDF 0x5BE1 寡 CJK UNIFIED IDEOGRAPH-5BE1 0x5BE2 寢 CJK UNIFIED IDEOGRAPH-5BE2 0x5BE4 寤 CJK UNIFIED IDEOGRAPH-5BE4 0x5BE5 寥 CJK UNIFIED IDEOGRAPH-5BE5 0x5BE6 實 CJK UNIFIED IDEOGRAPH-5BE6 0x5BE7 寧 CJK UNIFIED IDEOGRAPH-5BE7 0x5BE8 寨 CJK UNIFIED IDEOGRAPH-5BE8 0x5BE9 審 CJK UNIFIED IDEOGRAPH-5BE9 0x5BEB 寫 CJK UNIFIED IDEOGRAPH-5BEB 0x5BEC 寬 CJK UNIFIED IDEOGRAPH-5BEC 0x5BEE 寮 CJK UNIFIED IDEOGRAPH-5BEE 0x5BF0 寰 CJK UNIFIED IDEOGRAPH-5BF0 0x5BF5 寵 CJK UNIFIED IDEOGRAPH-5BF5 0x5BF6 寶 CJK UNIFIED IDEOGRAPH-5BF6 0x5BF8 寸 CJK UNIFIED IDEOGRAPH-5BF8 0x5BFA 寺 CJK UNIFIED IDEOGRAPH-5BFA 0x5C01 封 CJK UNIFIED IDEOGRAPH-5C01 0x5C04 射 CJK UNIFIED IDEOGRAPH-5C04 0x5C07 將 CJK UNIFIED IDEOGRAPH-5C07 0x5C08 專 CJK UNIFIED IDEOGRAPH-5C08 0x5C09 尉 CJK UNIFIED IDEOGRAPH-5C09 0x5C0A 尊 CJK UNIFIED IDEOGRAPH-5C0A 0x5C0B 尋 CJK UNIFIED IDEOGRAPH-5C0B 0x5C0D 對 CJK UNIFIED IDEOGRAPH-5C0D 0x5C0E 導 CJK UNIFIED IDEOGRAPH-5C0E 0x5C0F 小 CJK UNIFIED IDEOGRAPH-5C0F 0x5C11 少 CJK UNIFIED IDEOGRAPH-5C11 0x5C16 尖 CJK UNIFIED IDEOGRAPH-5C16 0x5C1A 尚 CJK UNIFIED IDEOGRAPH-5C1A 0x5C22 尢 CJK UNIFIED IDEOGRAPH-5C22 0x5C24 尤 CJK UNIFIED IDEOGRAPH-5C24 0x5C2A 尪 CJK UNIFIED IDEOGRAPH-5C2A 0x5C2C 尬 CJK UNIFIED IDEOGRAPH-5C2C 0x5C31 就 CJK UNIFIED IDEOGRAPH-5C31 0x5C37 尷 CJK UNIFIED IDEOGRAPH-5C37 0x5C38 尸 CJK UNIFIED IDEOGRAPH-5C38 0x5C39 尹 CJK UNIFIED IDEOGRAPH-5C39 0x5C3A 尺 CJK UNIFIED IDEOGRAPH-5C3A 0x5C3B 尻 CJK UNIFIED IDEOGRAPH-5C3B 0x5C3C 尼 CJK UNIFIED IDEOGRAPH-5C3C 0x5C3E 尾 CJK UNIFIED IDEOGRAPH-5C3E 0x5C3F 尿 CJK UNIFIED IDEOGRAPH-5C3F 0x5C40 局 CJK UNIFIED IDEOGRAPH-5C40 0x5C41 屁 CJK UNIFIED IDEOGRAPH-5C41 0x5C44 屄 CJK UNIFIED IDEOGRAPH-5C44 0x5C45 居 CJK UNIFIED IDEOGRAPH-5C45 0x5C46 屆 CJK UNIFIED IDEOGRAPH-5C46 0x5C48 屈 CJK UNIFIED IDEOGRAPH-5C48 0x5C4B 屋 CJK UNIFIED IDEOGRAPH-5C4B 0x5C4C 屌 CJK UNIFIED IDEOGRAPH-5C4C 0x5C4D 屍 CJK UNIFIED IDEOGRAPH-5C4D 0x5C4E 屎 CJK UNIFIED IDEOGRAPH-5C4E 0x5C4F 屏 CJK UNIFIED IDEOGRAPH-5C4F 0x5C50 屐 CJK UNIFIED IDEOGRAPH-5C50 0x5C51 屑 CJK UNIFIED IDEOGRAPH-5C51 0x5C55 展 CJK UNIFIED IDEOGRAPH-5C55 0x5C59 屙 CJK UNIFIED IDEOGRAPH-5C59 0x5C5C 屜 CJK UNIFIED IDEOGRAPH-5C5C 0x5C60 屠 CJK UNIFIED IDEOGRAPH-5C60 0x5C62 屢 CJK UNIFIED IDEOGRAPH-5C62 0x5C64 層 CJK UNIFIED IDEOGRAPH-5C64 0x5C65 履 CJK UNIFIED IDEOGRAPH-5C65 0x5C6C 屬 CJK UNIFIED IDEOGRAPH-5C6C 0x5C6F 屯 CJK UNIFIED IDEOGRAPH-5C6F 0x5C71 山 CJK UNIFIED IDEOGRAPH-5C71 0x5C79 屹 CJK UNIFIED IDEOGRAPH-5C79 0x5C8C 岌 CJK UNIFIED IDEOGRAPH-5C8C 0x5C90 岐 CJK UNIFIED IDEOGRAPH-5C90 0x5C91 岑 CJK UNIFIED IDEOGRAPH-5C91 0x5C94 岔 CJK UNIFIED IDEOGRAPH-5C94 0x5CA1 岡 CJK UNIFIED IDEOGRAPH-5CA1 0x5CA6 岦 CJK UNIFIED IDEOGRAPH-5CA6 0x5CA9 岩 CJK UNIFIED IDEOGRAPH-5CA9 0x5CAB 岫 CJK UNIFIED IDEOGRAPH-5CAB 0x5CAC 岬 CJK UNIFIED IDEOGRAPH-5CAC 0x5CAD 岭 CJK UNIFIED IDEOGRAPH-5CAD 0x5CB1 岱 CJK UNIFIED IDEOGRAPH-5CB1 0x5CB3 岳 CJK UNIFIED IDEOGRAPH-5CB3 0x5CB7 岷 CJK UNIFIED IDEOGRAPH-5CB7 0x5CB8 岸 CJK UNIFIED IDEOGRAPH-5CB8 0x5CC7 峇 CJK UNIFIED IDEOGRAPH-5CC7 0x5CCB 峋 CJK UNIFIED IDEOGRAPH-5CCB 0x5CD2 峒 CJK UNIFIED IDEOGRAPH-5CD2 0x5CD9 峙 CJK UNIFIED IDEOGRAPH-5CD9 0x5CDA 峚 CJK UNIFIED IDEOGRAPH-5CDA 0x5CE8 峨 CJK UNIFIED IDEOGRAPH-5CE8 0x5CEA 峪 CJK UNIFIED IDEOGRAPH-5CEA 0x5CED 峭 CJK UNIFIED IDEOGRAPH-5CED 0x5CEE 峮 CJK UNIFIED IDEOGRAPH-5CEE 0x5CF0 峰 CJK UNIFIED IDEOGRAPH-5CF0 0x5CF4 峴 CJK UNIFIED IDEOGRAPH-5CF4 0x5CF6 島 CJK UNIFIED IDEOGRAPH-5CF6 0x5CFB 峻 CJK UNIFIED IDEOGRAPH-5CFB 0x5CFD 峽 CJK UNIFIED IDEOGRAPH-5CFD 0x5D01 崁 CJK UNIFIED IDEOGRAPH-5D01 0x5D07 崇 CJK UNIFIED IDEOGRAPH-5D07 0x5D0E 崎 CJK UNIFIED IDEOGRAPH-5D0E 0x5D11 崑 CJK UNIFIED IDEOGRAPH-5D11 0x5D14 崔 CJK UNIFIED IDEOGRAPH-5D14 0x5D16 崖 CJK UNIFIED IDEOGRAPH-5D16 0x5D17 崗 CJK UNIFIED IDEOGRAPH-5D17 0x5D19 崙 CJK UNIFIED IDEOGRAPH-5D19 0x5D1B 崛 CJK UNIFIED IDEOGRAPH-5D1B 0x5D20 崠 CJK UNIFIED IDEOGRAPH-5D20 0x5D22 崢 CJK UNIFIED IDEOGRAPH-5D22 0x5D27 崧 CJK UNIFIED IDEOGRAPH-5D27 0x5D29 崩 CJK UNIFIED IDEOGRAPH-5D29 0x5D34 崴 CJK UNIFIED IDEOGRAPH-5D34 0x5D3D 崽 CJK UNIFIED IDEOGRAPH-5D3D 0x5D47 嵇 CJK UNIFIED IDEOGRAPH-5D47 0x5D4A 嵊 CJK UNIFIED IDEOGRAPH-5D4A 0x5D4B 嵋 CJK UNIFIED IDEOGRAPH-5D4B 0x5D4C 嵌 CJK UNIFIED IDEOGRAPH-5D4C 0x5D4E 嵎 CJK UNIFIED IDEOGRAPH-5D4E 0x5D50 嵐 CJK UNIFIED IDEOGRAPH-5D50 0x5D59 嵙 CJK UNIFIED IDEOGRAPH-5D59 0x5D69 嵩 CJK UNIFIED IDEOGRAPH-5D69 0x5D6C 嵬 CJK UNIFIED IDEOGRAPH-5D6C 0x5D6F 嵯 CJK UNIFIED IDEOGRAPH-5D6F 0x5D82 嶂 CJK UNIFIED IDEOGRAPH-5D82 0x5D84 嶄 CJK UNIFIED IDEOGRAPH-5D84 0x5D87 嶇 CJK UNIFIED IDEOGRAPH-5D87 0x5D94 嶔 CJK UNIFIED IDEOGRAPH-5D94 0x5D97 嶗 CJK UNIFIED IDEOGRAPH-5D97 0x5D99 嶙 CJK UNIFIED IDEOGRAPH-5D99 0x5DA0 嶠 CJK UNIFIED IDEOGRAPH-5DA0 0x5DA7 嶧 CJK UNIFIED IDEOGRAPH-5DA7 0x5DB7 嶷 CJK UNIFIED IDEOGRAPH-5DB7 0x5DB8 嶸 CJK UNIFIED IDEOGRAPH-5DB8 0x5DBA 嶺 CJK UNIFIED IDEOGRAPH-5DBA 0x5DBC 嶼 CJK UNIFIED IDEOGRAPH-5DBC 0x5DBD 嶽 CJK UNIFIED IDEOGRAPH-5DBD 0x5DC3 巃 CJK UNIFIED IDEOGRAPH-5DC3 0x5DCD 巍 CJK UNIFIED IDEOGRAPH-5DCD 0x5DD2 巒 CJK UNIFIED IDEOGRAPH-5DD2 0x5DD4 巔 CJK UNIFIED IDEOGRAPH-5DD4 0x5DD6 巖 CJK UNIFIED IDEOGRAPH-5DD6 0x5DDD 川 CJK UNIFIED IDEOGRAPH-5DDD 0x5DDE 州 CJK UNIFIED IDEOGRAPH-5DDE 0x5DE1 巡 CJK UNIFIED IDEOGRAPH-5DE1 0x5DE2 巢 CJK UNIFIED IDEOGRAPH-5DE2 0x5DE5 工 CJK UNIFIED IDEOGRAPH-5DE5 0x5DE6 左 CJK UNIFIED IDEOGRAPH-5DE6 0x5DE7 巧 CJK UNIFIED IDEOGRAPH-5DE7 0x5DE8 巨 CJK UNIFIED IDEOGRAPH-5DE8 0x5DEB 巫 CJK UNIFIED IDEOGRAPH-5DEB 0x5DEE 差 CJK UNIFIED IDEOGRAPH-5DEE 0x5DF1 己 CJK UNIFIED IDEOGRAPH-5DF1 0x5DF2 已 CJK UNIFIED IDEOGRAPH-5DF2 0x5DF3 巳 CJK UNIFIED IDEOGRAPH-5DF3 0x5DF4 巴 CJK UNIFIED IDEOGRAPH-5DF4 0x5DF7 巷 CJK UNIFIED IDEOGRAPH-5DF7 0x5DFD 巽 CJK UNIFIED IDEOGRAPH-5DFD 0x5DFE 巾 CJK UNIFIED IDEOGRAPH-5DFE 0x5DFF 巿 CJK UNIFIED IDEOGRAPH-5DFF 0x5E02 市 CJK UNIFIED IDEOGRAPH-5E02 0x5E03 布 CJK UNIFIED IDEOGRAPH-5E03 0x5E06 帆 CJK UNIFIED IDEOGRAPH-5E06 0x5E0C 希 CJK UNIFIED IDEOGRAPH-5E0C 0x5E11 帑 CJK UNIFIED IDEOGRAPH-5E11 0x5E14 帔 CJK UNIFIED IDEOGRAPH-5E14 0x5E15 帕 CJK UNIFIED IDEOGRAPH-5E15 0x5E16 帖 CJK UNIFIED IDEOGRAPH-5E16 0x5E18 帘 CJK UNIFIED IDEOGRAPH-5E18 0x5E1A 帚 CJK UNIFIED IDEOGRAPH-5E1A 0x5E1B 帛 CJK UNIFIED IDEOGRAPH-5E1B 0x5E1D 帝 CJK UNIFIED IDEOGRAPH-5E1D 0x5E25 帥 CJK UNIFIED IDEOGRAPH-5E25 0x5E2B 師 CJK UNIFIED IDEOGRAPH-5E2B 0x5E2D 席 CJK UNIFIED IDEOGRAPH-5E2D 0x5E33 帳 CJK UNIFIED IDEOGRAPH-5E33 0x5E36 帶 CJK UNIFIED IDEOGRAPH-5E36 0x5E37 帷 CJK UNIFIED IDEOGRAPH-5E37 0x5E38 常 CJK UNIFIED IDEOGRAPH-5E38 0x5E3D 帽 CJK UNIFIED IDEOGRAPH-5E3D 0x5E40 幀 CJK UNIFIED IDEOGRAPH-5E40 0x5E43 幃 CJK UNIFIED IDEOGRAPH-5E43 0x5E44 幄 CJK UNIFIED IDEOGRAPH-5E44 0x5E45 幅 CJK UNIFIED IDEOGRAPH-5E45 0x5E4C 幌 CJK UNIFIED IDEOGRAPH-5E4C 0x5E54 幔 CJK UNIFIED IDEOGRAPH-5E54 0x5E55 幕 CJK UNIFIED IDEOGRAPH-5E55 0x5E57 幗 CJK UNIFIED IDEOGRAPH-5E57 0x5E5F 幟 CJK UNIFIED IDEOGRAPH-5E5F 0x5E61 幡 CJK UNIFIED IDEOGRAPH-5E61 0x5E62 幢 CJK UNIFIED IDEOGRAPH-5E62 0x5E63 幣 CJK UNIFIED IDEOGRAPH-5E63 0x5E6A 幪 CJK UNIFIED IDEOGRAPH-5E6A 0x5E6B 幫 CJK UNIFIED IDEOGRAPH-5E6B 0x5E72 干 CJK UNIFIED IDEOGRAPH-5E72 0x5E73 平 CJK UNIFIED IDEOGRAPH-5E73 0x5E74 年 CJK UNIFIED IDEOGRAPH-5E74 0x5E76 并 CJK UNIFIED IDEOGRAPH-5E76 0x5E78 幸 CJK UNIFIED IDEOGRAPH-5E78 0x5E79 幹 CJK UNIFIED IDEOGRAPH-5E79 0x5E7B 幻 CJK UNIFIED IDEOGRAPH-5E7B 0x5E7C 幼 CJK UNIFIED IDEOGRAPH-5E7C 0x5E7D 幽 CJK UNIFIED IDEOGRAPH-5E7D 0x5E7E 幾 CJK UNIFIED IDEOGRAPH-5E7E 0x5E84 庄 CJK UNIFIED IDEOGRAPH-5E84 0x5E87 庇 CJK UNIFIED IDEOGRAPH-5E87 0x5E8A 床 CJK UNIFIED IDEOGRAPH-5E8A 0x5E8F 序 CJK UNIFIED IDEOGRAPH-5E8F 0x5E95 底 CJK UNIFIED IDEOGRAPH-5E95 0x5E96 庖 CJK UNIFIED IDEOGRAPH-5E96 0x5E97 店 CJK UNIFIED IDEOGRAPH-5E97 0x5E9A 庚 CJK UNIFIED IDEOGRAPH-5E9A 0x5E9C 府 CJK UNIFIED IDEOGRAPH-5E9C 0x5EA0 庠 CJK UNIFIED IDEOGRAPH-5EA0 0x5EA6 度 CJK UNIFIED IDEOGRAPH-5EA6 0x5EA7 座 CJK UNIFIED IDEOGRAPH-5EA7 0x5EAB 庫 CJK UNIFIED IDEOGRAPH-5EAB 0x5EAD 庭 CJK UNIFIED IDEOGRAPH-5EAD 0x5EB4 庴 CJK UNIFIED IDEOGRAPH-5EB4 0x5EB5 庵 CJK UNIFIED IDEOGRAPH-5EB5 0x5EB6 庶 CJK UNIFIED IDEOGRAPH-5EB6 0x5EB7 康 CJK UNIFIED IDEOGRAPH-5EB7 0x5EB8 庸 CJK UNIFIED IDEOGRAPH-5EB8 0x5EB9 庹 CJK UNIFIED IDEOGRAPH-5EB9 0x5EBE 庾 CJK UNIFIED IDEOGRAPH-5EBE 0x5EC1 廁 CJK UNIFIED IDEOGRAPH-5EC1 0x5EC2 廂 CJK UNIFIED IDEOGRAPH-5EC2 0x5EC4 廄 CJK UNIFIED IDEOGRAPH-5EC4 0x5EC8 廈 CJK UNIFIED IDEOGRAPH-5EC8 0x5EC9 廉 CJK UNIFIED IDEOGRAPH-5EC9 0x5ECA 廊 CJK UNIFIED IDEOGRAPH-5ECA 0x5ECB 廋 CJK UNIFIED IDEOGRAPH-5ECB 0x5ECC 廌 CJK UNIFIED IDEOGRAPH-5ECC 0x5ED3 廓 CJK UNIFIED IDEOGRAPH-5ED3 0x5ED4 廔 CJK UNIFIED IDEOGRAPH-5ED4 0x5ED6 廖 CJK UNIFIED IDEOGRAPH-5ED6 0x5EDA 廚 CJK UNIFIED IDEOGRAPH-5EDA 0x5EDD 廝 CJK UNIFIED IDEOGRAPH-5EDD 0x5EDF 廟 CJK UNIFIED IDEOGRAPH-5EDF 0x5EE0 廠 CJK UNIFIED IDEOGRAPH-5EE0 0x5EE2 廢 CJK UNIFIED IDEOGRAPH-5EE2 0x5EE3 廣 CJK UNIFIED IDEOGRAPH-5EE3 0x5EEC 廬 CJK UNIFIED IDEOGRAPH-5EEC 0x5EF3 廳 CJK UNIFIED IDEOGRAPH-5EF3 0x5EF6 延 CJK UNIFIED IDEOGRAPH-5EF6 0x5EF7 廷 CJK UNIFIED IDEOGRAPH-5EF7 0x5EFA 建 CJK UNIFIED IDEOGRAPH-5EFA 0x5EFF 廿 CJK UNIFIED IDEOGRAPH-5EFF 0x5F01 弁 CJK UNIFIED IDEOGRAPH-5F01 0x5F02 异 CJK UNIFIED IDEOGRAPH-5F02 0x5F04 弄 CJK UNIFIED IDEOGRAPH-5F04 0x5F08 弈 CJK UNIFIED IDEOGRAPH-5F08 0x5F0A 弊 CJK UNIFIED IDEOGRAPH-5F0A 0x5F0B 弋 CJK UNIFIED IDEOGRAPH-5F0B 0x5F0F 式 CJK UNIFIED IDEOGRAPH-5F0F 0x5F12 弒 CJK UNIFIED IDEOGRAPH-5F12 0x5F13 弓 CJK UNIFIED IDEOGRAPH-5F13 0x5F14 弔 CJK UNIFIED IDEOGRAPH-5F14 0x5F15 引 CJK UNIFIED IDEOGRAPH-5F15 0x5F17 弗 CJK UNIFIED IDEOGRAPH-5F17 0x5F18 弘 CJK UNIFIED IDEOGRAPH-5F18 0x5F1B 弛 CJK UNIFIED IDEOGRAPH-5F1B 0x5F1F 弟 CJK UNIFIED IDEOGRAPH-5F1F 0x5F26 弦 CJK UNIFIED IDEOGRAPH-5F26 0x5F27 弧 CJK UNIFIED IDEOGRAPH-5F27 0x5F29 弩 CJK UNIFIED IDEOGRAPH-5F29 0x5F2D 弭 CJK UNIFIED IDEOGRAPH-5F2D 0x5F31 弱 CJK UNIFIED IDEOGRAPH-5F31 0x5F35 張 CJK UNIFIED IDEOGRAPH-5F35 0x5F37 強 CJK UNIFIED IDEOGRAPH-5F37 0x5F3C 弼 CJK UNIFIED IDEOGRAPH-5F3C 0x5F46 彆 CJK UNIFIED IDEOGRAPH-5F46 0x5F48 彈 CJK UNIFIED IDEOGRAPH-5F48 0x5F4A 彊 CJK UNIFIED IDEOGRAPH-5F4A 0x5F4C 彌 CJK UNIFIED IDEOGRAPH-5F4C 0x5F4E 彎 CJK UNIFIED IDEOGRAPH-5F4E 0x5F57 彗 CJK UNIFIED IDEOGRAPH-5F57 0x5F58 彘 CJK UNIFIED IDEOGRAPH-5F58 0x5F59 彙 CJK UNIFIED IDEOGRAPH-5F59 0x5F5D 彝 CJK UNIFIED IDEOGRAPH-5F5D 0x5F62 形 CJK UNIFIED IDEOGRAPH-5F62 0x5F64 彤 CJK UNIFIED IDEOGRAPH-5F64 0x5F65 彥 CJK UNIFIED IDEOGRAPH-5F65 0x5F67 彧 CJK UNIFIED IDEOGRAPH-5F67 0x5F69 彩 CJK UNIFIED IDEOGRAPH-5F69 0x5F6A 彪 CJK UNIFIED IDEOGRAPH-5F6A 0x5F6B 彫 CJK UNIFIED IDEOGRAPH-5F6B 0x5F6C 彬 CJK UNIFIED IDEOGRAPH-5F6C 0x5F6D 彭 CJK UNIFIED IDEOGRAPH-5F6D 0x5F70 彰 CJK UNIFIED IDEOGRAPH-5F70 0x5F71 影 CJK UNIFIED IDEOGRAPH-5F71 0x5F73 彳 CJK UNIFIED IDEOGRAPH-5F73 0x5F77 彷 CJK UNIFIED IDEOGRAPH-5F77 0x5F79 役 CJK UNIFIED IDEOGRAPH-5F79 0x5F7C 彼 CJK UNIFIED IDEOGRAPH-5F7C 0x5F7F 彿 CJK UNIFIED IDEOGRAPH-5F7F 0x5F80 往 CJK UNIFIED IDEOGRAPH-5F80 0x5F81 征 CJK UNIFIED IDEOGRAPH-5F81 0x5F85 待 CJK UNIFIED IDEOGRAPH-5F85 0x5F87 徇 CJK UNIFIED IDEOGRAPH-5F87 0x5F88 很 CJK UNIFIED IDEOGRAPH-5F88 0x5F89 徉 CJK UNIFIED IDEOGRAPH-5F89 0x5F8A 徊 CJK UNIFIED IDEOGRAPH-5F8A 0x5F8B 律 CJK UNIFIED IDEOGRAPH-5F8B 0x5F8C 後 CJK UNIFIED IDEOGRAPH-5F8C 0x5F90 徐 CJK UNIFIED IDEOGRAPH-5F90 0x5F91 徑 CJK UNIFIED IDEOGRAPH-5F91 0x5F92 徒 CJK UNIFIED IDEOGRAPH-5F92 0x5F97 得 CJK UNIFIED IDEOGRAPH-5F97 0x5F98 徘 CJK UNIFIED IDEOGRAPH-5F98 0x5F99 徙 CJK UNIFIED IDEOGRAPH-5F99 0x5F9C 徜 CJK UNIFIED IDEOGRAPH-5F9C 0x5F9E 從 CJK UNIFIED IDEOGRAPH-5F9E 0x5FA0 徠 CJK UNIFIED IDEOGRAPH-5FA0 0x5FA1 御 CJK UNIFIED IDEOGRAPH-5FA1 0x5FA8 徨 CJK UNIFIED IDEOGRAPH-5FA8 0x5FA9 復 CJK UNIFIED IDEOGRAPH-5FA9 0x5FAA 循 CJK UNIFIED IDEOGRAPH-5FAA 0x5FAC 徬 CJK UNIFIED IDEOGRAPH-5FAC 0x5FAD 徭 CJK UNIFIED IDEOGRAPH-5FAD 0x5FAE 微 CJK UNIFIED IDEOGRAPH-5FAE 0x5FB5 徵 CJK UNIFIED IDEOGRAPH-5FB5 0x5FB7 德 CJK UNIFIED IDEOGRAPH-5FB7 0x5FB9 徹 CJK UNIFIED IDEOGRAPH-5FB9 0x5FBD 徽 CJK UNIFIED IDEOGRAPH-5FBD 0x5FC3 心 CJK UNIFIED IDEOGRAPH-5FC3 0x5FC5 必 CJK UNIFIED IDEOGRAPH-5FC5 0x5FCC 忌 CJK UNIFIED IDEOGRAPH-5FCC 0x5FCD 忍 CJK UNIFIED IDEOGRAPH-5FCD 0x5FCF 忏 CJK UNIFIED IDEOGRAPH-5FCF 0x5FD0 忐 CJK UNIFIED IDEOGRAPH-5FD0 0x5FD1 忑 CJK UNIFIED IDEOGRAPH-5FD1 0x5FD2 忒 CJK UNIFIED IDEOGRAPH-5FD2 0x5FD6 忖 CJK UNIFIED IDEOGRAPH-5FD6 0x5FD7 志 CJK UNIFIED IDEOGRAPH-5FD7 0x5FD8 忘 CJK UNIFIED IDEOGRAPH-5FD8 0x5FD9 忙 CJK UNIFIED IDEOGRAPH-5FD9 0x5FDD 忝 CJK UNIFIED IDEOGRAPH-5FDD 0x5FE0 忠 CJK UNIFIED IDEOGRAPH-5FE0 0x5FE1 忡 CJK UNIFIED IDEOGRAPH-5FE1 0x5FE4 忤 CJK UNIFIED IDEOGRAPH-5FE4 0x5FEA 忪 CJK UNIFIED IDEOGRAPH-5FEA 0x5FEB 快 CJK UNIFIED IDEOGRAPH-5FEB 0x5FF1 忱 CJK UNIFIED IDEOGRAPH-5FF1 0x5FF5 念 CJK UNIFIED IDEOGRAPH-5FF5 0x5FFB 忻 CJK UNIFIED IDEOGRAPH-5FFB 0x5FFD 忽 CJK UNIFIED IDEOGRAPH-5FFD 0x5FFF 忿 CJK UNIFIED IDEOGRAPH-5FFF 0x6000 怀 CJK UNIFIED IDEOGRAPH-6000 0x600E 怎 CJK UNIFIED IDEOGRAPH-600E 0x600F 怏 CJK UNIFIED IDEOGRAPH-600F 0x6012 怒 CJK UNIFIED IDEOGRAPH-6012 0x6014 怔 CJK UNIFIED IDEOGRAPH-6014 0x6015 怕 CJK UNIFIED IDEOGRAPH-6015 0x6016 怖 CJK UNIFIED IDEOGRAPH-6016 0x6019 怙 CJK UNIFIED IDEOGRAPH-6019 0x601B 怛 CJK UNIFIED IDEOGRAPH-601B 0x601C 怜 CJK UNIFIED IDEOGRAPH-601C 0x601D 思 CJK UNIFIED IDEOGRAPH-601D 0x6020 怠 CJK UNIFIED IDEOGRAPH-6020 0x6021 怡 CJK UNIFIED IDEOGRAPH-6021 0x6025 急 CJK UNIFIED IDEOGRAPH-6025 0x6026 怦 CJK UNIFIED IDEOGRAPH-6026 0x6027 性 CJK UNIFIED IDEOGRAPH-6027 0x6028 怨 CJK UNIFIED IDEOGRAPH-6028 0x602A 怪 CJK UNIFIED IDEOGRAPH-602A 0x602F 怯 CJK UNIFIED IDEOGRAPH-602F 0x6035 怵 CJK UNIFIED IDEOGRAPH-6035 0x6041 恁 CJK UNIFIED IDEOGRAPH-6041 0x6042 恂 CJK UNIFIED IDEOGRAPH-6042 0x6043 恃 CJK UNIFIED IDEOGRAPH-6043 0x6046 恆 CJK UNIFIED IDEOGRAPH-6046 0x604D 恍 CJK UNIFIED IDEOGRAPH-604D 0x6050 恐 CJK UNIFIED IDEOGRAPH-6050 0x6052 恒 CJK UNIFIED IDEOGRAPH-6052 0x6055 恕 CJK UNIFIED IDEOGRAPH-6055 0x6059 恙 CJK UNIFIED IDEOGRAPH-6059 0x605A 恚 CJK UNIFIED IDEOGRAPH-605A 0x6062 恢 CJK UNIFIED IDEOGRAPH-6062 0x6063 恣 CJK UNIFIED IDEOGRAPH-6063 0x6064 恤 CJK UNIFIED IDEOGRAPH-6064 0x6065 恥 CJK UNIFIED IDEOGRAPH-6065 0x6068 恨 CJK UNIFIED IDEOGRAPH-6068 0x6069 恩 CJK UNIFIED IDEOGRAPH-6069 0x606A 恪 CJK UNIFIED IDEOGRAPH-606A 0x606B 恫 CJK UNIFIED IDEOGRAPH-606B 0x606C 恬 CJK UNIFIED IDEOGRAPH-606C 0x606D 恭 CJK UNIFIED IDEOGRAPH-606D 0x606F 息 CJK UNIFIED IDEOGRAPH-606F 0x6070 恰 CJK UNIFIED IDEOGRAPH-6070 0x607F 恿 CJK UNIFIED IDEOGRAPH-607F 0x6084 悄 CJK UNIFIED IDEOGRAPH-6084 0x6085 悅 CJK UNIFIED IDEOGRAPH-6085 0x6089 悉 CJK UNIFIED IDEOGRAPH-6089 0x608C 悌 CJK UNIFIED IDEOGRAPH-608C 0x608D 悍 CJK UNIFIED IDEOGRAPH-608D 0x6094 悔 CJK UNIFIED IDEOGRAPH-6094 0x6096 悖 CJK UNIFIED IDEOGRAPH-6096 0x609A 悚 CJK UNIFIED IDEOGRAPH-609A 0x609F 悟 CJK UNIFIED IDEOGRAPH-609F 0x60A0 悠 CJK UNIFIED IDEOGRAPH-60A0 0x60A3 患 CJK UNIFIED IDEOGRAPH-60A3 0x60A8 您 CJK UNIFIED IDEOGRAPH-60A8 0x60B1 悱 CJK UNIFIED IDEOGRAPH-60B1 0x60B2 悲 CJK UNIFIED IDEOGRAPH-60B2 0x60B4 悴 CJK UNIFIED IDEOGRAPH-60B4 0x60B5 悵 CJK UNIFIED IDEOGRAPH-60B5 0x60B6 悶 CJK UNIFIED IDEOGRAPH-60B6 0x60B8 悸 CJK UNIFIED IDEOGRAPH-60B8 0x60BB 悻 CJK UNIFIED IDEOGRAPH-60BB 0x60BC 悼 CJK UNIFIED IDEOGRAPH-60BC 0x60BD 悽 CJK UNIFIED IDEOGRAPH-60BD 0x60C5 情 CJK UNIFIED IDEOGRAPH-60C5 0x60C6 惆 CJK UNIFIED IDEOGRAPH-60C6 0x60C7 惇 CJK UNIFIED IDEOGRAPH-60C7 0x60CA 惊 CJK UNIFIED IDEOGRAPH-60CA 0x60CB 惋 CJK UNIFIED IDEOGRAPH-60CB 0x60D1 惑 CJK UNIFIED IDEOGRAPH-60D1 0x60D5 惕 CJK UNIFIED IDEOGRAPH-60D5 0x60D8 惘 CJK UNIFIED IDEOGRAPH-60D8 0x60DA 惚 CJK UNIFIED IDEOGRAPH-60DA 0x60DC 惜 CJK UNIFIED IDEOGRAPH-60DC 0x60DF 惟 CJK UNIFIED IDEOGRAPH-60DF 0x60E0 惠 CJK UNIFIED IDEOGRAPH-60E0 0x60E1 惡 CJK UNIFIED IDEOGRAPH-60E1 0x60E2 惢 CJK UNIFIED IDEOGRAPH-60E2 0x60E6 惦 CJK UNIFIED IDEOGRAPH-60E6 0x60F0 惰 CJK UNIFIED IDEOGRAPH-60F0 0x60F1 惱 CJK UNIFIED IDEOGRAPH-60F1 0x60F2 惲 CJK UNIFIED IDEOGRAPH-60F2 0x60F3 想 CJK UNIFIED IDEOGRAPH-60F3 0x60F4 惴 CJK UNIFIED IDEOGRAPH-60F4 0x60F6 惶 CJK UNIFIED IDEOGRAPH-60F6 0x60F9 惹 CJK UNIFIED IDEOGRAPH-60F9 0x60FA 惺 CJK UNIFIED IDEOGRAPH-60FA 0x60FB 惻 CJK UNIFIED IDEOGRAPH-60FB 0x6101 愁 CJK UNIFIED IDEOGRAPH-6101 0x6106 愆 CJK UNIFIED IDEOGRAPH-6106 0x6108 愈 CJK UNIFIED IDEOGRAPH-6108 0x6109 愉 CJK UNIFIED IDEOGRAPH-6109 0x610D 愍 CJK UNIFIED IDEOGRAPH-610D 0x610E 愎 CJK UNIFIED IDEOGRAPH-610E 0x610F 意 CJK UNIFIED IDEOGRAPH-610F 0x6115 愕 CJK UNIFIED IDEOGRAPH-6115 0x611A 愚 CJK UNIFIED IDEOGRAPH-611A 0x611B 愛 CJK UNIFIED IDEOGRAPH-611B 0x611C 愜 CJK UNIFIED IDEOGRAPH-611C 0x611F 感 CJK UNIFIED IDEOGRAPH-611F 0x6123 愣 CJK UNIFIED IDEOGRAPH-6123 0x6127 愧 CJK UNIFIED IDEOGRAPH-6127 0x6128 愨 CJK UNIFIED IDEOGRAPH-6128 0x612B 愫 CJK UNIFIED IDEOGRAPH-612B 0x6134 愴 CJK UNIFIED IDEOGRAPH-6134 0x6137 愷 CJK UNIFIED IDEOGRAPH-6137 0x613E 愾 CJK UNIFIED IDEOGRAPH-613E 0x613F 愿 CJK UNIFIED IDEOGRAPH-613F 0x6144 慄 CJK UNIFIED IDEOGRAPH-6144 0x6147 慇 CJK UNIFIED IDEOGRAPH-6147 0x6148 慈 CJK UNIFIED IDEOGRAPH-6148 0x614B 態 CJK UNIFIED IDEOGRAPH-614B 0x614C 慌 CJK UNIFIED IDEOGRAPH-614C 0x614D 慍 CJK UNIFIED IDEOGRAPH-614D 0x614E 慎 CJK UNIFIED IDEOGRAPH-614E 0x6153 慓 CJK UNIFIED IDEOGRAPH-6153 0x6155 慕 CJK UNIFIED IDEOGRAPH-6155 0x6158 慘 CJK UNIFIED IDEOGRAPH-6158 0x615A 慚 CJK UNIFIED IDEOGRAPH-615A 0x615F 慟 CJK UNIFIED IDEOGRAPH-615F 0x6162 慢 CJK UNIFIED IDEOGRAPH-6162 0x6163 慣 CJK UNIFIED IDEOGRAPH-6163 0x6167 慧 CJK UNIFIED IDEOGRAPH-6167 0x6168 慨 CJK UNIFIED IDEOGRAPH-6168 0x616B 慫 CJK UNIFIED IDEOGRAPH-616B 0x616E 慮 CJK UNIFIED IDEOGRAPH-616E 0x6170 慰 CJK UNIFIED IDEOGRAPH-6170 0x6173 慳 CJK UNIFIED IDEOGRAPH-6173 0x6175 慵 CJK UNIFIED IDEOGRAPH-6175 0x6176 慶 CJK UNIFIED IDEOGRAPH-6176 0x6177 慷 CJK UNIFIED IDEOGRAPH-6177 0x617E 慾 CJK UNIFIED IDEOGRAPH-617E 0x6182 憂 CJK UNIFIED IDEOGRAPH-6182 0x618A 憊 CJK UNIFIED IDEOGRAPH-618A 0x618B 憋 CJK UNIFIED IDEOGRAPH-618B 0x618E 憎 CJK UNIFIED IDEOGRAPH-618E 0x6190 憐 CJK UNIFIED IDEOGRAPH-6190 0x6191 憑 CJK UNIFIED IDEOGRAPH-6191 0x6193 憓 CJK UNIFIED IDEOGRAPH-6193 0x6194 憔 CJK UNIFIED IDEOGRAPH-6194 0x619A 憚 CJK UNIFIED IDEOGRAPH-619A 0x61A4 憤 CJK UNIFIED IDEOGRAPH-61A4 0x61A7 憧 CJK UNIFIED IDEOGRAPH-61A7 0x61A8 憨 CJK UNIFIED IDEOGRAPH-61A8 0x61A9 憩 CJK UNIFIED IDEOGRAPH-61A9 0x61AB 憫 CJK UNIFIED IDEOGRAPH-61AB 0x61AC 憬 CJK UNIFIED IDEOGRAPH-61AC 0x61B2 憲 CJK UNIFIED IDEOGRAPH-61B2 0x61B6 憶 CJK UNIFIED IDEOGRAPH-61B6 0x61BE 憾 CJK UNIFIED IDEOGRAPH-61BE 0x61C2 懂 CJK UNIFIED IDEOGRAPH-61C2 0x61C7 懇 CJK UNIFIED IDEOGRAPH-61C7 0x61C8 懈 CJK UNIFIED IDEOGRAPH-61C8 0x61C9 應 CJK UNIFIED IDEOGRAPH-61C9 0x61CA 懊 CJK UNIFIED IDEOGRAPH-61CA 0x61CB 懋 CJK UNIFIED IDEOGRAPH-61CB 0x61DF 懟 CJK UNIFIED IDEOGRAPH-61DF 0x61E3 懣 CJK UNIFIED IDEOGRAPH-61E3 0x61E6 懦 CJK UNIFIED IDEOGRAPH-61E6 0x61E8 懨 CJK UNIFIED IDEOGRAPH-61E8 0x61EE 懮 CJK UNIFIED IDEOGRAPH-61EE 0x61F2 懲 CJK UNIFIED IDEOGRAPH-61F2 0x61F5 懵 CJK UNIFIED IDEOGRAPH-61F5 0x61F6 懶 CJK UNIFIED IDEOGRAPH-61F6 0x61F7 懷 CJK UNIFIED IDEOGRAPH-61F7 0x61F8 懸 CJK UNIFIED IDEOGRAPH-61F8 0x61FA 懺 CJK UNIFIED IDEOGRAPH-61FA 0x61FC 懼 CJK UNIFIED IDEOGRAPH-61FC 0x61FE 懾 CJK UNIFIED IDEOGRAPH-61FE 0x61FF 懿 CJK UNIFIED IDEOGRAPH-61FF 0x6200 戀 CJK UNIFIED IDEOGRAPH-6200 0x6207 戇 CJK UNIFIED IDEOGRAPH-6207 0x6208 戈 CJK UNIFIED IDEOGRAPH-6208 0x620A 戊 CJK UNIFIED IDEOGRAPH-620A 0x620C 戌 CJK UNIFIED IDEOGRAPH-620C 0x620D 戍 CJK UNIFIED IDEOGRAPH-620D 0x620E 戎 CJK UNIFIED IDEOGRAPH-620E 0x6210 成 CJK UNIFIED IDEOGRAPH-6210 0x6211 我 CJK UNIFIED IDEOGRAPH-6211 0x6212 戒 CJK UNIFIED IDEOGRAPH-6212 0x6215 戕 CJK UNIFIED IDEOGRAPH-6215 0x6216 或 CJK UNIFIED IDEOGRAPH-6216 0x6219 戙 CJK UNIFIED IDEOGRAPH-6219 0x621A 戚 CJK UNIFIED IDEOGRAPH-621A 0x621B 戛 CJK UNIFIED IDEOGRAPH-621B 0x621F 戟 CJK UNIFIED IDEOGRAPH-621F 0x6221 戡 CJK UNIFIED IDEOGRAPH-6221 0x6222 戢 CJK UNIFIED IDEOGRAPH-6222 0x6225 戥 CJK UNIFIED IDEOGRAPH-6225 0x6229 戩 CJK UNIFIED IDEOGRAPH-6229 0x622A 截 CJK UNIFIED IDEOGRAPH-622A 0x622E 戮 CJK UNIFIED IDEOGRAPH-622E 0x6230 戰 CJK UNIFIED IDEOGRAPH-6230 0x6232 戲 CJK UNIFIED IDEOGRAPH-6232 0x6233 戳 CJK UNIFIED IDEOGRAPH-6233 0x6234 戴 CJK UNIFIED IDEOGRAPH-6234 0x6236 戶 CJK UNIFIED IDEOGRAPH-6236 0x623D 戽 CJK UNIFIED IDEOGRAPH-623D 0x623E 戾 CJK UNIFIED IDEOGRAPH-623E 0x623F 房 CJK UNIFIED IDEOGRAPH-623F 0x6240 所 CJK UNIFIED IDEOGRAPH-6240 0x6241 扁 CJK UNIFIED IDEOGRAPH-6241 0x6247 扇 CJK UNIFIED IDEOGRAPH-6247 0x6248 扈 CJK UNIFIED IDEOGRAPH-6248 0x6249 扉 CJK UNIFIED IDEOGRAPH-6249 0x624B 手 CJK UNIFIED IDEOGRAPH-624B 0x624D 才 CJK UNIFIED IDEOGRAPH-624D 0x624E 扎 CJK UNIFIED IDEOGRAPH-624E 0x6251 扑 CJK UNIFIED IDEOGRAPH-6251 0x6252 扒 CJK UNIFIED IDEOGRAPH-6252 0x6253 打 CJK UNIFIED IDEOGRAPH-6253 0x6254 扔 CJK UNIFIED IDEOGRAPH-6254 0x6258 托 CJK UNIFIED IDEOGRAPH-6258 0x625B 扛 CJK UNIFIED IDEOGRAPH-625B 0x6263 扣 CJK UNIFIED IDEOGRAPH-6263 0x6265 扥 CJK UNIFIED IDEOGRAPH-6265 0x6266 扦 CJK UNIFIED IDEOGRAPH-6266 0x626D 扭 CJK UNIFIED IDEOGRAPH-626D 0x626E 扮 CJK UNIFIED IDEOGRAPH-626E 0x626F 扯 CJK UNIFIED IDEOGRAPH-626F 0x6270 扰 CJK UNIFIED IDEOGRAPH-6270 0x6271 扱 CJK UNIFIED IDEOGRAPH-6271 0x6273 扳 CJK UNIFIED IDEOGRAPH-6273 0x6276 扶 CJK UNIFIED IDEOGRAPH-6276 0x6279 批 CJK UNIFIED IDEOGRAPH-6279 0x627A 扺 CJK UNIFIED IDEOGRAPH-627A 0x627C 扼 CJK UNIFIED IDEOGRAPH-627C 0x627E 找 CJK UNIFIED IDEOGRAPH-627E 0x627F 承 CJK UNIFIED IDEOGRAPH-627F 0x6280 技 CJK UNIFIED IDEOGRAPH-6280 0x6284 抄 CJK UNIFIED IDEOGRAPH-6284 0x6289 抉 CJK UNIFIED IDEOGRAPH-6289 0x628A 把 CJK UNIFIED IDEOGRAPH-628A 0x6291 抑 CJK UNIFIED IDEOGRAPH-6291 0x6292 抒 CJK UNIFIED IDEOGRAPH-6292 0x6293 抓 CJK UNIFIED IDEOGRAPH-6293 0x6295 投 CJK UNIFIED IDEOGRAPH-6295 0x6296 抖 CJK UNIFIED IDEOGRAPH-6296 0x6297 抗 CJK UNIFIED IDEOGRAPH-6297 0x6298 折 CJK UNIFIED IDEOGRAPH-6298 0x62A8 抨 CJK UNIFIED IDEOGRAPH-62A8 0x62AB 披 CJK UNIFIED IDEOGRAPH-62AB 0x62AC 抬 CJK UNIFIED IDEOGRAPH-62AC 0x62B1 抱 CJK UNIFIED IDEOGRAPH-62B1 0x62B5 抵 CJK UNIFIED IDEOGRAPH-62B5 0x62B9 抹 CJK UNIFIED IDEOGRAPH-62B9 0x62BC 押 CJK UNIFIED IDEOGRAPH-62BC 0x62BD 抽 CJK UNIFIED IDEOGRAPH-62BD 0x62BF 抿 CJK UNIFIED IDEOGRAPH-62BF 0x62C2 拂 CJK UNIFIED IDEOGRAPH-62C2 0x62C4 拄 CJK UNIFIED IDEOGRAPH-62C4 0x62C6 拆 CJK UNIFIED IDEOGRAPH-62C6 0x62C7 拇 CJK UNIFIED IDEOGRAPH-62C7 0x62C8 拈 CJK UNIFIED IDEOGRAPH-62C8 0x62C9 拉 CJK UNIFIED IDEOGRAPH-62C9 0x62CB 拋 CJK UNIFIED IDEOGRAPH-62CB 0x62CC 拌 CJK UNIFIED IDEOGRAPH-62CC 0x62CD 拍 CJK UNIFIED IDEOGRAPH-62CD 0x62CE 拎 CJK UNIFIED IDEOGRAPH-62CE 0x62CF 拏 CJK UNIFIED IDEOGRAPH-62CF 0x62D0 拐 CJK UNIFIED IDEOGRAPH-62D0 0x62D2 拒 CJK UNIFIED IDEOGRAPH-62D2 0x62D3 拓 CJK UNIFIED IDEOGRAPH-62D3 0x62D4 拔 CJK UNIFIED IDEOGRAPH-62D4 0x62D6 拖 CJK UNIFIED IDEOGRAPH-62D6 0x62D7 拗 CJK UNIFIED IDEOGRAPH-62D7 0x62D8 拘 CJK UNIFIED IDEOGRAPH-62D8 0x62D9 拙 CJK UNIFIED IDEOGRAPH-62D9 0x62DA 拚 CJK UNIFIED IDEOGRAPH-62DA 0x62DB 招 CJK UNIFIED IDEOGRAPH-62DB 0x62DC 拜 CJK UNIFIED IDEOGRAPH-62DC 0x62EC 括 CJK UNIFIED IDEOGRAPH-62EC 0x62ED 拭 CJK UNIFIED IDEOGRAPH-62ED 0x62EE 拮 CJK UNIFIED IDEOGRAPH-62EE 0x62EF 拯 CJK UNIFIED IDEOGRAPH-62EF 0x62F1 拱 CJK UNIFIED IDEOGRAPH-62F1 0x62F3 拳 CJK UNIFIED IDEOGRAPH-62F3 0x62F4 拴 CJK UNIFIED IDEOGRAPH-62F4 0x62F7 拷 CJK UNIFIED IDEOGRAPH-62F7 0x62FC 拼 CJK UNIFIED IDEOGRAPH-62FC 0x62FD 拽 CJK UNIFIED IDEOGRAPH-62FD 0x62FE 拾 CJK UNIFIED IDEOGRAPH-62FE 0x62FF 拿 CJK UNIFIED IDEOGRAPH-62FF 0x6301 持 CJK UNIFIED IDEOGRAPH-6301 0x6302 挂 CJK UNIFIED IDEOGRAPH-6302 0x6307 指 CJK UNIFIED IDEOGRAPH-6307 0x6308 挈 CJK UNIFIED IDEOGRAPH-6308 0x6309 按 CJK UNIFIED IDEOGRAPH-6309 0x630E 挎 CJK UNIFIED IDEOGRAPH-630E 0x6311 挑 CJK UNIFIED IDEOGRAPH-6311 0x6316 挖 CJK UNIFIED IDEOGRAPH-6316 0x6328 挨 CJK UNIFIED IDEOGRAPH-6328 0x632A 挪 CJK UNIFIED IDEOGRAPH-632A 0x632B 挫 CJK UNIFIED IDEOGRAPH-632B 0x632F 振 CJK UNIFIED IDEOGRAPH-632F 0x6332 挲 CJK UNIFIED IDEOGRAPH-6332 0x6339 挹 CJK UNIFIED IDEOGRAPH-6339 0x633A 挺 CJK UNIFIED IDEOGRAPH-633A 0x633D 挽 CJK UNIFIED IDEOGRAPH-633D 0x633E 挾 CJK UNIFIED IDEOGRAPH-633E 0x6342 捂 CJK UNIFIED IDEOGRAPH-6342 0x6345 捅 CJK UNIFIED IDEOGRAPH-6345 0x6346 捆 CJK UNIFIED IDEOGRAPH-6346 0x6349 捉 CJK UNIFIED IDEOGRAPH-6349 0x634B 捋 CJK UNIFIED IDEOGRAPH-634B 0x634C 捌 CJK UNIFIED IDEOGRAPH-634C 0x634D 捍 CJK UNIFIED IDEOGRAPH-634D 0x634E 捎 CJK UNIFIED IDEOGRAPH-634E 0x634F 捏 CJK UNIFIED IDEOGRAPH-634F 0x6350 捐 CJK UNIFIED IDEOGRAPH-6350 0x6355 捕 CJK UNIFIED IDEOGRAPH-6355 0x6367 捧 CJK UNIFIED IDEOGRAPH-6367 0x6368 捨 CJK UNIFIED IDEOGRAPH-6368 0x6369 捩 CJK UNIFIED IDEOGRAPH-6369 0x636B 捫 CJK UNIFIED IDEOGRAPH-636B 0x636D 捭 CJK UNIFIED IDEOGRAPH-636D 0x636E 据 CJK UNIFIED IDEOGRAPH-636E 0x636F 捯 CJK UNIFIED IDEOGRAPH-636F 0x6371 捱 CJK UNIFIED IDEOGRAPH-6371 0x6372 捲 CJK UNIFIED IDEOGRAPH-6372 0x6376 捶 CJK UNIFIED IDEOGRAPH-6376 0x6377 捷 CJK UNIFIED IDEOGRAPH-6377 0x637A 捺 CJK UNIFIED IDEOGRAPH-637A 0x637B 捻 CJK UNIFIED IDEOGRAPH-637B 0x637D 捽 CJK UNIFIED IDEOGRAPH-637D 0x6380 掀 CJK UNIFIED IDEOGRAPH-6380 0x6382 掂 CJK UNIFIED IDEOGRAPH-6382 0x6383 掃 CJK UNIFIED IDEOGRAPH-6383 0x6384 掄 CJK UNIFIED IDEOGRAPH-6384 0x6387 掇 CJK UNIFIED IDEOGRAPH-6387 0x6388 授 CJK UNIFIED IDEOGRAPH-6388 0x6389 掉 CJK UNIFIED IDEOGRAPH-6389 0x638C 掌 CJK UNIFIED IDEOGRAPH-638C 0x638F 掏 CJK UNIFIED IDEOGRAPH-638F 0x6390 掐 CJK UNIFIED IDEOGRAPH-6390 0x6392 排 CJK UNIFIED IDEOGRAPH-6392 0x6396 掖 CJK UNIFIED IDEOGRAPH-6396 0x6398 掘 CJK UNIFIED IDEOGRAPH-6398 0x6399 掙 CJK UNIFIED IDEOGRAPH-6399 0x639B 掛 CJK UNIFIED IDEOGRAPH-639B 0x639F 掟 CJK UNIFIED IDEOGRAPH-639F 0x63A0 掠 CJK UNIFIED IDEOGRAPH-63A0 0x63A1 採 CJK UNIFIED IDEOGRAPH-63A1 0x63A2 探 CJK UNIFIED IDEOGRAPH-63A2 0x63A3 掣 CJK UNIFIED IDEOGRAPH-63A3 0x63A5 接 CJK UNIFIED IDEOGRAPH-63A5 0x63A7 控 CJK UNIFIED IDEOGRAPH-63A7 0x63A8 推 CJK UNIFIED IDEOGRAPH-63A8 0x63A9 掩 CJK UNIFIED IDEOGRAPH-63A9 0x63AA 措 CJK UNIFIED IDEOGRAPH-63AA 0x63AC 掬 CJK UNIFIED IDEOGRAPH-63AC 0x63AE 掮 CJK UNIFIED IDEOGRAPH-63AE 0x63B0 掰 CJK UNIFIED IDEOGRAPH-63B0 0x63C0 揀 CJK UNIFIED IDEOGRAPH-63C0 0x63C3 揃 CJK UNIFIED IDEOGRAPH-63C3 0x63C4 揄 CJK UNIFIED IDEOGRAPH-63C4 0x63C6 揆 CJK UNIFIED IDEOGRAPH-63C6 0x63C8 揈 CJK UNIFIED IDEOGRAPH-63C8 0x63C9 揉 CJK UNIFIED IDEOGRAPH-63C9 0x63CD 揍 CJK UNIFIED IDEOGRAPH-63CD 0x63CF 描 CJK UNIFIED IDEOGRAPH-63CF 0x63D0 提 CJK UNIFIED IDEOGRAPH-63D0 0x63D2 插 CJK UNIFIED IDEOGRAPH-63D2 0x63D6 揖 CJK UNIFIED IDEOGRAPH-63D6 0x63DA 揚 CJK UNIFIED IDEOGRAPH-63DA 0x63DB 換 CJK UNIFIED IDEOGRAPH-63DB 0x63E0 揠 CJK UNIFIED IDEOGRAPH-63E0 0x63E1 握 CJK UNIFIED IDEOGRAPH-63E1 0x63E3 揣 CJK UNIFIED IDEOGRAPH-63E3 0x63E9 揩 CJK UNIFIED IDEOGRAPH-63E9 0x63EA 揪 CJK UNIFIED IDEOGRAPH-63EA 0x63ED 揭 CJK UNIFIED IDEOGRAPH-63ED 0x63EE 揮 CJK UNIFIED IDEOGRAPH-63EE 0x63F4 援 CJK UNIFIED IDEOGRAPH-63F4 0x63F6 揶 CJK UNIFIED IDEOGRAPH-63F6 0x63F9 揹 CJK UNIFIED IDEOGRAPH-63F9 0x6406 搆 CJK UNIFIED IDEOGRAPH-6406 0x640D 損 CJK UNIFIED IDEOGRAPH-640D 0x640F 搏 CJK UNIFIED IDEOGRAPH-640F 0x6410 搐 CJK UNIFIED IDEOGRAPH-6410 0x6413 搓 CJK UNIFIED IDEOGRAPH-6413 0x6414 搔 CJK UNIFIED IDEOGRAPH-6414 0x6416 搖 CJK UNIFIED IDEOGRAPH-6416 0x6417 搗 CJK UNIFIED IDEOGRAPH-6417 0x641C 搜 CJK UNIFIED IDEOGRAPH-641C 0x641E 搞 CJK UNIFIED IDEOGRAPH-641E 0x6421 搡 CJK UNIFIED IDEOGRAPH-6421 0x6423 搣 CJK UNIFIED IDEOGRAPH-6423 0x6425 搥 CJK UNIFIED IDEOGRAPH-6425 0x6427 搧 CJK UNIFIED IDEOGRAPH-6427 0x642A 搪 CJK UNIFIED IDEOGRAPH-642A 0x642C 搬 CJK UNIFIED IDEOGRAPH-642C 0x642D 搭 CJK UNIFIED IDEOGRAPH-642D 0x6435 搵 CJK UNIFIED IDEOGRAPH-6435 0x6436 搶 CJK UNIFIED IDEOGRAPH-6436 0x643D 搽 CJK UNIFIED IDEOGRAPH-643D 0x643E 搾 CJK UNIFIED IDEOGRAPH-643E 0x6440 摀 CJK UNIFIED IDEOGRAPH-6440 0x6441 摁 CJK UNIFIED IDEOGRAPH-6441 0x6443 摃 CJK UNIFIED IDEOGRAPH-6443 0x6451 摑 CJK UNIFIED IDEOGRAPH-6451 0x6452 摒 CJK UNIFIED IDEOGRAPH-6452 0x6454 摔 CJK UNIFIED IDEOGRAPH-6454 0x6458 摘 CJK UNIFIED IDEOGRAPH-6458 0x645C 摜 CJK UNIFIED IDEOGRAPH-645C 0x645E 摞 CJK UNIFIED IDEOGRAPH-645E 0x645F 摟 CJK UNIFIED IDEOGRAPH-645F 0x6467 摧 CJK UNIFIED IDEOGRAPH-6467 0x6469 摩 CJK UNIFIED IDEOGRAPH-6469 0x646F 摯 CJK UNIFIED IDEOGRAPH-646F 0x6470 摰 CJK UNIFIED IDEOGRAPH-6470 0x6473 摳 CJK UNIFIED IDEOGRAPH-6473 0x6476 摶 CJK UNIFIED IDEOGRAPH-6476 0x6477 摷 CJK UNIFIED IDEOGRAPH-6477 0x6478 摸 CJK UNIFIED IDEOGRAPH-6478 0x6479 摹 CJK UNIFIED IDEOGRAPH-6479 0x647A 摺 CJK UNIFIED IDEOGRAPH-647A 0x647B 摻 CJK UNIFIED IDEOGRAPH-647B 0x6482 撂 CJK UNIFIED IDEOGRAPH-6482 0x6485 撅 CJK UNIFIED IDEOGRAPH-6485 0x6487 撇 CJK UNIFIED IDEOGRAPH-6487 0x6488 撈 CJK UNIFIED IDEOGRAPH-6488 0x6490 撐 CJK UNIFIED IDEOGRAPH-6490 0x6492 撒 CJK UNIFIED IDEOGRAPH-6492 0x6493 撓 CJK UNIFIED IDEOGRAPH-6493 0x6495 撕 CJK UNIFIED IDEOGRAPH-6495 0x6498 撘 CJK UNIFIED IDEOGRAPH-6498 0x6499 撙 CJK UNIFIED IDEOGRAPH-6499 0x649A 撚 CJK UNIFIED IDEOGRAPH-649A 0x649E 撞 CJK UNIFIED IDEOGRAPH-649E 0x64A2 撢 CJK UNIFIED IDEOGRAPH-64A2 0x64A3 撣 CJK UNIFIED IDEOGRAPH-64A3 0x64A4 撤 CJK UNIFIED IDEOGRAPH-64A4 0x64A5 撥 CJK UNIFIED IDEOGRAPH-64A5 0x64A9 撩 CJK UNIFIED IDEOGRAPH-64A9 0x64AB 撫 CJK UNIFIED IDEOGRAPH-64AB 0x64AC 撬 CJK UNIFIED IDEOGRAPH-64AC 0x64AD 播 CJK UNIFIED IDEOGRAPH-64AD 0x64AE 撮 CJK UNIFIED IDEOGRAPH-64AE 0x64B0 撰 CJK UNIFIED IDEOGRAPH-64B0 0x64B2 撲 CJK UNIFIED IDEOGRAPH-64B2 0x64B3 撳 CJK UNIFIED IDEOGRAPH-64B3 0x64BB 撻 CJK UNIFIED IDEOGRAPH-64BB 0x64BC 撼 CJK UNIFIED IDEOGRAPH-64BC 0x64BE 撾 CJK UNIFIED IDEOGRAPH-64BE 0x64BF 撿 CJK UNIFIED IDEOGRAPH-64BF 0x64C1 擁 CJK UNIFIED IDEOGRAPH-64C1 0x64C2 擂 CJK UNIFIED IDEOGRAPH-64C2 0x64C4 擄 CJK UNIFIED IDEOGRAPH-64C4 0x64C5 擅 CJK UNIFIED IDEOGRAPH-64C5 0x64C7 擇 CJK UNIFIED IDEOGRAPH-64C7 0x64CA 擊 CJK UNIFIED IDEOGRAPH-64CA 0x64CB 擋 CJK UNIFIED IDEOGRAPH-64CB 0x64CD 操 CJK UNIFIED IDEOGRAPH-64CD 0x64CE 擎 CJK UNIFIED IDEOGRAPH-64CE 0x64D2 擒 CJK UNIFIED IDEOGRAPH-64D2 0x64D4 擔 CJK UNIFIED IDEOGRAPH-64D4 0x64D8 擘 CJK UNIFIED IDEOGRAPH-64D8 0x64DA 據 CJK UNIFIED IDEOGRAPH-64DA 0x64E0 擠 CJK UNIFIED IDEOGRAPH-64E0 0x64E2 擢 CJK UNIFIED IDEOGRAPH-64E2 0x64E4 擤 CJK UNIFIED IDEOGRAPH-64E4 0x64E6 擦 CJK UNIFIED IDEOGRAPH-64E6 0x64EC 擬 CJK UNIFIED IDEOGRAPH-64EC 0x64EF 擯 CJK UNIFIED IDEOGRAPH-64EF 0x64F0 擰 CJK UNIFIED IDEOGRAPH-64F0 0x64F1 擱 CJK UNIFIED IDEOGRAPH-64F1 0x64F2 擲 CJK UNIFIED IDEOGRAPH-64F2 0x64F4 擴 CJK UNIFIED IDEOGRAPH-64F4 0x64F7 擷 CJK UNIFIED IDEOGRAPH-64F7 0x64F8 擸 CJK UNIFIED IDEOGRAPH-64F8 0x64FA 擺 CJK UNIFIED IDEOGRAPH-64FA 0x64FB 擻 CJK UNIFIED IDEOGRAPH-64FB 0x64FC 擼 CJK UNIFIED IDEOGRAPH-64FC 0x64FE 擾 CJK UNIFIED IDEOGRAPH-64FE 0x6500 攀 CJK UNIFIED IDEOGRAPH-6500 0x6506 攆 CJK UNIFIED IDEOGRAPH-6506 0x650F 攏 CJK UNIFIED IDEOGRAPH-650F 0x6514 攔 CJK UNIFIED IDEOGRAPH-6514 0x6518 攘 CJK UNIFIED IDEOGRAPH-6518 0x6519 攙 CJK UNIFIED IDEOGRAPH-6519 0x651C 攜 CJK UNIFIED IDEOGRAPH-651C 0x651D 攝 CJK UNIFIED IDEOGRAPH-651D 0x6522 攢 CJK UNIFIED IDEOGRAPH-6522 0x6523 攣 CJK UNIFIED IDEOGRAPH-6523 0x6524 攤 CJK UNIFIED IDEOGRAPH-6524 0x6525 攥 CJK UNIFIED IDEOGRAPH-6525 0x652A 攪 CJK UNIFIED IDEOGRAPH-652A 0x652B 攫 CJK UNIFIED IDEOGRAPH-652B 0x652C 攬 CJK UNIFIED IDEOGRAPH-652C 0x652F 支 CJK UNIFIED IDEOGRAPH-652F 0x6536 收 CJK UNIFIED IDEOGRAPH-6536 0x6538 攸 CJK UNIFIED IDEOGRAPH-6538 0x6539 改 CJK UNIFIED IDEOGRAPH-6539 0x653B 攻 CJK UNIFIED IDEOGRAPH-653B 0x653E 放 CJK UNIFIED IDEOGRAPH-653E 0x653F 政 CJK UNIFIED IDEOGRAPH-653F 0x6545 故 CJK UNIFIED IDEOGRAPH-6545 0x6548 效 CJK UNIFIED IDEOGRAPH-6548 0x654D 敍 CJK UNIFIED IDEOGRAPH-654D 0x654F 敏 CJK UNIFIED IDEOGRAPH-654F 0x6551 救 CJK UNIFIED IDEOGRAPH-6551 0x6555 敕 CJK UNIFIED IDEOGRAPH-6555 0x6556 敖 CJK UNIFIED IDEOGRAPH-6556 0x6557 敗 CJK UNIFIED IDEOGRAPH-6557 0x6558 敘 CJK UNIFIED IDEOGRAPH-6558 0x6559 教 CJK UNIFIED IDEOGRAPH-6559 0x655D 敝 CJK UNIFIED IDEOGRAPH-655D 0x655E 敞 CJK UNIFIED IDEOGRAPH-655E 0x6562 敢 CJK UNIFIED IDEOGRAPH-6562 0x6563 散 CJK UNIFIED IDEOGRAPH-6563 0x6566 敦 CJK UNIFIED IDEOGRAPH-6566 0x656C 敬 CJK UNIFIED IDEOGRAPH-656C 0x6572 敲 CJK UNIFIED IDEOGRAPH-6572 0x6574 整 CJK UNIFIED IDEOGRAPH-6574 0x6575 敵 CJK UNIFIED IDEOGRAPH-6575 0x6577 敷 CJK UNIFIED IDEOGRAPH-6577 0x6578 數 CJK UNIFIED IDEOGRAPH-6578 0x6582 斂 CJK UNIFIED IDEOGRAPH-6582 0x6583 斃 CJK UNIFIED IDEOGRAPH-6583 0x6587 文 CJK UNIFIED IDEOGRAPH-6587 0x658C 斌 CJK UNIFIED IDEOGRAPH-658C 0x6590 斐 CJK UNIFIED IDEOGRAPH-6590 0x6591 斑 CJK UNIFIED IDEOGRAPH-6591 0x6595 斕 CJK UNIFIED IDEOGRAPH-6595 0x6597 斗 CJK UNIFIED IDEOGRAPH-6597 0x6599 料 CJK UNIFIED IDEOGRAPH-6599 0x659B 斛 CJK UNIFIED IDEOGRAPH-659B 0x659C 斜 CJK UNIFIED IDEOGRAPH-659C 0x659F 斟 CJK UNIFIED IDEOGRAPH-659F 0x65A1 斡 CJK UNIFIED IDEOGRAPH-65A1 0x65A4 斤 CJK UNIFIED IDEOGRAPH-65A4 0x65A5 斥 CJK UNIFIED IDEOGRAPH-65A5 0x65A7 斧 CJK UNIFIED IDEOGRAPH-65A7 0x65AB 斫 CJK UNIFIED IDEOGRAPH-65AB 0x65AC 斬 CJK UNIFIED IDEOGRAPH-65AC 0x65AF 斯 CJK UNIFIED IDEOGRAPH-65AF 0x65B0 新 CJK UNIFIED IDEOGRAPH-65B0 0x65B7 斷 CJK UNIFIED IDEOGRAPH-65B7 0x65B9 方 CJK UNIFIED IDEOGRAPH-65B9 0x65BC 於 CJK UNIFIED IDEOGRAPH-65BC 0x65BD 施 CJK UNIFIED IDEOGRAPH-65BD 0x65C1 旁 CJK UNIFIED IDEOGRAPH-65C1 0x65C2 旂 CJK UNIFIED IDEOGRAPH-65C2 0x65C3 旃 CJK UNIFIED IDEOGRAPH-65C3 0x65C5 旅 CJK UNIFIED IDEOGRAPH-65C5 0x65CB 旋 CJK UNIFIED IDEOGRAPH-65CB 0x65CC 旌 CJK UNIFIED IDEOGRAPH-65CC 0x65CE 旎 CJK UNIFIED IDEOGRAPH-65CE 0x65CF 族 CJK UNIFIED IDEOGRAPH-65CF 0x65D6 旖 CJK UNIFIED IDEOGRAPH-65D6 0x65D7 旗 CJK UNIFIED IDEOGRAPH-65D7 0x65E2 既 CJK UNIFIED IDEOGRAPH-65E2 0x65E5 日 CJK UNIFIED IDEOGRAPH-65E5 0x65E6 旦 CJK UNIFIED IDEOGRAPH-65E6 0x65E8 旨 CJK UNIFIED IDEOGRAPH-65E8 0x65E9 早 CJK UNIFIED IDEOGRAPH-65E9 0x65EC 旬 CJK UNIFIED IDEOGRAPH-65EC 0x65ED 旭 CJK UNIFIED IDEOGRAPH-65ED 0x65EE 旮 CJK UNIFIED IDEOGRAPH-65EE 0x65EF 旯 CJK UNIFIED IDEOGRAPH-65EF 0x65F1 旱 CJK UNIFIED IDEOGRAPH-65F1 0x65F3 旳 CJK UNIFIED IDEOGRAPH-65F3 0x65FA 旺 CJK UNIFIED IDEOGRAPH-65FA 0x65FB 旻 CJK UNIFIED IDEOGRAPH-65FB 0x65FC 旼 CJK UNIFIED IDEOGRAPH-65FC 0x6600 昀 CJK UNIFIED IDEOGRAPH-6600 0x6602 昂 CJK UNIFIED IDEOGRAPH-6602 0x6606 昆 CJK UNIFIED IDEOGRAPH-6606 0x6607 昇 CJK UNIFIED IDEOGRAPH-6607 0x6609 昉 CJK UNIFIED IDEOGRAPH-6609 0x660A 昊 CJK UNIFIED IDEOGRAPH-660A 0x660C 昌 CJK UNIFIED IDEOGRAPH-660C 0x660E 明 CJK UNIFIED IDEOGRAPH-660E 0x660F 昏 CJK UNIFIED IDEOGRAPH-660F 0x6613 易 CJK UNIFIED IDEOGRAPH-6613 0x6614 昔 CJK UNIFIED IDEOGRAPH-6614 0x6615 昕 CJK UNIFIED IDEOGRAPH-6615 0x661C 昜 CJK UNIFIED IDEOGRAPH-661C 0x661F 星 CJK UNIFIED IDEOGRAPH-661F 0x6620 映 CJK UNIFIED IDEOGRAPH-6620 0x6625 春 CJK UNIFIED IDEOGRAPH-6625 0x6627 昧 CJK UNIFIED IDEOGRAPH-6627 0x6628 昨 CJK UNIFIED IDEOGRAPH-6628 0x662D 昭 CJK UNIFIED IDEOGRAPH-662D 0x662F 是 CJK UNIFIED IDEOGRAPH-662F 0x6631 昱 CJK UNIFIED IDEOGRAPH-6631 0x6634 昴 CJK UNIFIED IDEOGRAPH-6634 0x6635 昵 CJK UNIFIED IDEOGRAPH-6635 0x6636 昶 CJK UNIFIED IDEOGRAPH-6636 0x663A 昺 CJK UNIFIED IDEOGRAPH-663A 0x6641 晁 CJK UNIFIED IDEOGRAPH-6641 0x6642 時 CJK UNIFIED IDEOGRAPH-6642 0x6643 晃 CJK UNIFIED IDEOGRAPH-6643 0x6649 晉 CJK UNIFIED IDEOGRAPH-6649 0x664C 晌 CJK UNIFIED IDEOGRAPH-664C 0x664F 晏 CJK UNIFIED IDEOGRAPH-664F 0x6652 晒 CJK UNIFIED IDEOGRAPH-6652 0x665A 晚 CJK UNIFIED IDEOGRAPH-665A 0x665D 晝 CJK UNIFIED IDEOGRAPH-665D 0x665E 晞 CJK UNIFIED IDEOGRAPH-665E 0x665F 晟 CJK UNIFIED IDEOGRAPH-665F 0x6662 晢 CJK UNIFIED IDEOGRAPH-6662 0x6664 晤 CJK UNIFIED IDEOGRAPH-6664 0x6666 晦 CJK UNIFIED IDEOGRAPH-6666 0x6668 晨 CJK UNIFIED IDEOGRAPH-6668 0x666E 普 CJK UNIFIED IDEOGRAPH-666E 0x666F 景 CJK UNIFIED IDEOGRAPH-666F 0x6670 晰 CJK UNIFIED IDEOGRAPH-6670 0x6674 晴 CJK UNIFIED IDEOGRAPH-6674 0x6676 晶 CJK UNIFIED IDEOGRAPH-6676 0x6677 晷 CJK UNIFIED IDEOGRAPH-6677 0x667A 智 CJK UNIFIED IDEOGRAPH-667A 0x667E 晾 CJK UNIFIED IDEOGRAPH-667E 0x6684 暄 CJK UNIFIED IDEOGRAPH-6684 0x6687 暇 CJK UNIFIED IDEOGRAPH-6687 0x6688 暈 CJK UNIFIED IDEOGRAPH-6688 0x6689 暉 CJK UNIFIED IDEOGRAPH-6689 0x668C 暌 CJK UNIFIED IDEOGRAPH-668C 0x6690 暐 CJK UNIFIED IDEOGRAPH-6690 0x6691 暑 CJK UNIFIED IDEOGRAPH-6691 0x6696 暖 CJK UNIFIED IDEOGRAPH-6696 0x6697 暗 CJK UNIFIED IDEOGRAPH-6697 0x6698 暘 CJK UNIFIED IDEOGRAPH-6698 0x669D 暝 CJK UNIFIED IDEOGRAPH-669D 0x669F 暟 CJK UNIFIED IDEOGRAPH-669F 0x66A2 暢 CJK UNIFIED IDEOGRAPH-66A2 0x66A8 暨 CJK UNIFIED IDEOGRAPH-66A8 0x66AB 暫 CJK UNIFIED IDEOGRAPH-66AB 0x66AE 暮 CJK UNIFIED IDEOGRAPH-66AE 0x66B1 暱 CJK UNIFIED IDEOGRAPH-66B1 0x66B4 暴 CJK UNIFIED IDEOGRAPH-66B4 0x66B8 暸 CJK UNIFIED IDEOGRAPH-66B8 0x66B9 暹 CJK UNIFIED IDEOGRAPH-66B9 0x66BB 暻 CJK UNIFIED IDEOGRAPH-66BB 0x66C4 曄 CJK UNIFIED IDEOGRAPH-66C4 0x66C6 曆 CJK UNIFIED IDEOGRAPH-66C6 0x66C7 曇 CJK UNIFIED IDEOGRAPH-66C7 0x66C8 曈 CJK UNIFIED IDEOGRAPH-66C8 0x66C9 曉 CJK UNIFIED IDEOGRAPH-66C9 0x66D6 曖 CJK UNIFIED IDEOGRAPH-66D6 0x66D9 曙 CJK UNIFIED IDEOGRAPH-66D9 0x66DC 曜 CJK UNIFIED IDEOGRAPH-66DC 0x66DD 曝 CJK UNIFIED IDEOGRAPH-66DD 0x66E0 曠 CJK UNIFIED IDEOGRAPH-66E0 0x66E6 曦 CJK UNIFIED IDEOGRAPH-66E6 0x66E9 曩 CJK UNIFIED IDEOGRAPH-66E9 0x66EC 曬 CJK UNIFIED IDEOGRAPH-66EC 0x66F0 曰 CJK UNIFIED IDEOGRAPH-66F0 0x66F2 曲 CJK UNIFIED IDEOGRAPH-66F2 0x66F3 曳 CJK UNIFIED IDEOGRAPH-66F3 0x66F4 更 CJK UNIFIED IDEOGRAPH-66F4 0x66F7 曷 CJK UNIFIED IDEOGRAPH-66F7 0x66F8 書 CJK UNIFIED IDEOGRAPH-66F8 0x66F9 曹 CJK UNIFIED IDEOGRAPH-66F9 0x66FC 曼 CJK UNIFIED IDEOGRAPH-66FC 0x66FE 曾 CJK UNIFIED IDEOGRAPH-66FE 0x66FF 替 CJK UNIFIED IDEOGRAPH-66FF 0x6700 最 CJK UNIFIED IDEOGRAPH-6700 0x6703 會 CJK UNIFIED IDEOGRAPH-6703 0x6708 月 CJK UNIFIED IDEOGRAPH-6708 0x6709 有 CJK UNIFIED IDEOGRAPH-6709 0x670B 朋 CJK UNIFIED IDEOGRAPH-670B 0x670D 服 CJK UNIFIED IDEOGRAPH-670D 0x6714 朔 CJK UNIFIED IDEOGRAPH-6714 0x6715 朕 CJK UNIFIED IDEOGRAPH-6715 0x6717 朗 CJK UNIFIED IDEOGRAPH-6717 0x671B 望 CJK UNIFIED IDEOGRAPH-671B 0x671D 朝 CJK UNIFIED IDEOGRAPH-671D 0x671F 期 CJK UNIFIED IDEOGRAPH-671F 0x6726 朦 CJK UNIFIED IDEOGRAPH-6726 0x6727 朧 CJK UNIFIED IDEOGRAPH-6727 0x6728 木 CJK UNIFIED IDEOGRAPH-6728 0x672A 未 CJK UNIFIED IDEOGRAPH-672A 0x672B 末 CJK UNIFIED IDEOGRAPH-672B 0x672C 本 CJK UNIFIED IDEOGRAPH-672C 0x672D 札 CJK UNIFIED IDEOGRAPH-672D 0x672E 朮 CJK UNIFIED IDEOGRAPH-672E 0x6731 朱 CJK UNIFIED IDEOGRAPH-6731 0x6734 朴 CJK UNIFIED IDEOGRAPH-6734 0x6735 朵 CJK UNIFIED IDEOGRAPH-6735 0x673A 机 CJK UNIFIED IDEOGRAPH-673A 0x673D 朽 CJK UNIFIED IDEOGRAPH-673D 0x6746 杆 CJK UNIFIED IDEOGRAPH-6746 0x6748 杈 CJK UNIFIED IDEOGRAPH-6748 0x6749 杉 CJK UNIFIED IDEOGRAPH-6749 0x674E 李 CJK UNIFIED IDEOGRAPH-674E 0x674F 杏 CJK UNIFIED IDEOGRAPH-674F 0x6750 材 CJK UNIFIED IDEOGRAPH-6750 0x6751 村 CJK UNIFIED IDEOGRAPH-6751 0x6753 杓 CJK UNIFIED IDEOGRAPH-6753 0x6756 杖 CJK UNIFIED IDEOGRAPH-6756 0x675C 杜 CJK UNIFIED IDEOGRAPH-675C 0x675E 杞 CJK UNIFIED IDEOGRAPH-675E 0x675F 束 CJK UNIFIED IDEOGRAPH-675F 0x6760 杠 CJK UNIFIED IDEOGRAPH-6760 0x676D 杭 CJK UNIFIED IDEOGRAPH-676D 0x676F 杯 CJK UNIFIED IDEOGRAPH-676F 0x6770 杰 CJK UNIFIED IDEOGRAPH-6770 0x6771 東 CJK UNIFIED IDEOGRAPH-6771 0x6772 杲 CJK UNIFIED IDEOGRAPH-6772 0x6773 杳 CJK UNIFIED IDEOGRAPH-6773 0x6775 杵 CJK UNIFIED IDEOGRAPH-6775 0x6777 杷 CJK UNIFIED IDEOGRAPH-6777 0x677C 杼 CJK UNIFIED IDEOGRAPH-677C 0x677E 松 CJK UNIFIED IDEOGRAPH-677E 0x677F 板 CJK UNIFIED IDEOGRAPH-677F 0x6781 极 CJK UNIFIED IDEOGRAPH-6781 0x6784 构 CJK UNIFIED IDEOGRAPH-6784 0x6787 枇 CJK UNIFIED IDEOGRAPH-6787 0x6789 枉 CJK UNIFIED IDEOGRAPH-6789 0x678B 枋 CJK UNIFIED IDEOGRAPH-678B 0x6790 析 CJK UNIFIED IDEOGRAPH-6790 0x6792 枒 CJK UNIFIED IDEOGRAPH-6792 0x6793 枓 CJK UNIFIED IDEOGRAPH-6793 0x6795 枕 CJK UNIFIED IDEOGRAPH-6795 0x6797 林 CJK UNIFIED IDEOGRAPH-6797 0x679A 枚 CJK UNIFIED IDEOGRAPH-679A 0x679C 果 CJK UNIFIED IDEOGRAPH-679C 0x679D 枝 CJK UNIFIED IDEOGRAPH-679D 0x67AF 枯 CJK UNIFIED IDEOGRAPH-67AF 0x67B0 枰 CJK UNIFIED IDEOGRAPH-67B0 0x67B3 枳 CJK UNIFIED IDEOGRAPH-67B3 0x67B4 枴 CJK UNIFIED IDEOGRAPH-67B4 0x67B6 架 CJK UNIFIED IDEOGRAPH-67B6 0x67B7 枷 CJK UNIFIED IDEOGRAPH-67B7 0x67B8 枸 CJK UNIFIED IDEOGRAPH-67B8 0x67C4 柄 CJK UNIFIED IDEOGRAPH-67C4 0x67CA 柊 CJK UNIFIED IDEOGRAPH-67CA 0x67CF 柏 CJK UNIFIED IDEOGRAPH-67CF 0x67D0 某 CJK UNIFIED IDEOGRAPH-67D0 0x67D1 柑 CJK UNIFIED IDEOGRAPH-67D1 0x67D2 柒 CJK UNIFIED IDEOGRAPH-67D2 0x67D3 染 CJK UNIFIED IDEOGRAPH-67D3 0x67D4 柔 CJK UNIFIED IDEOGRAPH-67D4 0x67D8 柘 CJK UNIFIED IDEOGRAPH-67D8 0x67D9 柙 CJK UNIFIED IDEOGRAPH-67D9 0x67DA 柚 CJK UNIFIED IDEOGRAPH-67DA 0x67DC 柜 CJK UNIFIED IDEOGRAPH-67DC 0x67DD 柝 CJK UNIFIED IDEOGRAPH-67DD 0x67DE 柞 CJK UNIFIED IDEOGRAPH-67DE 0x67E2 柢 CJK UNIFIED IDEOGRAPH-67E2 0x67E5 查 CJK UNIFIED IDEOGRAPH-67E5 0x67E9 柩 CJK UNIFIED IDEOGRAPH-67E9 0x67EC 柬 CJK UNIFIED IDEOGRAPH-67EC 0x67EF 柯 CJK UNIFIED IDEOGRAPH-67EF 0x67F1 柱 CJK UNIFIED IDEOGRAPH-67F1 0x67F3 柳 CJK UNIFIED IDEOGRAPH-67F3 0x67F4 柴 CJK UNIFIED IDEOGRAPH-67F4 0x67F5 柵 CJK UNIFIED IDEOGRAPH-67F5 0x67FA 柺 CJK UNIFIED IDEOGRAPH-67FA 0x67FF 柿 CJK UNIFIED IDEOGRAPH-67FF 0x6813 栓 CJK UNIFIED IDEOGRAPH-6813 0x6816 栖 CJK UNIFIED IDEOGRAPH-6816 0x6817 栗 CJK UNIFIED IDEOGRAPH-6817 0x6821 校 CJK UNIFIED IDEOGRAPH-6821 0x6829 栩 CJK UNIFIED IDEOGRAPH-6829 0x682A 株 CJK UNIFIED IDEOGRAPH-682A 0x6838 核 CJK UNIFIED IDEOGRAPH-6838 0x6839 根 CJK UNIFIED IDEOGRAPH-6839 0x683C 格 CJK UNIFIED IDEOGRAPH-683C 0x683D 栽 CJK UNIFIED IDEOGRAPH-683D 0x6840 桀 CJK UNIFIED IDEOGRAPH-6840 0x6841 桁 CJK UNIFIED IDEOGRAPH-6841 0x6842 桂 CJK UNIFIED IDEOGRAPH-6842 0x6843 桃 CJK UNIFIED IDEOGRAPH-6843 0x6845 桅 CJK UNIFIED IDEOGRAPH-6845 0x6846 框 CJK UNIFIED IDEOGRAPH-6846 0x6848 案 CJK UNIFIED IDEOGRAPH-6848 0x6849 桉 CJK UNIFIED IDEOGRAPH-6849 0x684C 桌 CJK UNIFIED IDEOGRAPH-684C 0x684E 桎 CJK UNIFIED IDEOGRAPH-684E 0x6850 桐 CJK UNIFIED IDEOGRAPH-6850 0x6851 桑 CJK UNIFIED IDEOGRAPH-6851 0x6853 桓 CJK UNIFIED IDEOGRAPH-6853 0x6854 桔 CJK UNIFIED IDEOGRAPH-6854 0x6876 桶 CJK UNIFIED IDEOGRAPH-6876 0x687F 桿 CJK UNIFIED IDEOGRAPH-687F 0x6881 梁 CJK UNIFIED IDEOGRAPH-6881 0x6885 梅 CJK UNIFIED IDEOGRAPH-6885 0x6886 梆 CJK UNIFIED IDEOGRAPH-6886 0x688F 梏 CJK UNIFIED IDEOGRAPH-688F 0x6893 梓 CJK UNIFIED IDEOGRAPH-6893 0x6894 梔 CJK UNIFIED IDEOGRAPH-6894 0x6897 梗 CJK UNIFIED IDEOGRAPH-6897 0x689D 條 CJK UNIFIED IDEOGRAPH-689D 0x689F 梟 CJK UNIFIED IDEOGRAPH-689F 0x68A0 梠 CJK UNIFIED IDEOGRAPH-68A0 0x68A2 梢 CJK UNIFIED IDEOGRAPH-68A2 0x68A3 梣 CJK UNIFIED IDEOGRAPH-68A3 0x68A7 梧 CJK UNIFIED IDEOGRAPH-68A7 0x68A8 梨 CJK UNIFIED IDEOGRAPH-68A8 0x68AD 梭 CJK UNIFIED IDEOGRAPH-68AD 0x68AF 梯 CJK UNIFIED IDEOGRAPH-68AF 0x68B0 械 CJK UNIFIED IDEOGRAPH-68B0 0x68B1 梱 CJK UNIFIED IDEOGRAPH-68B1 0x68B3 梳 CJK UNIFIED IDEOGRAPH-68B3 0x68B5 梵 CJK UNIFIED IDEOGRAPH-68B5 0x68C4 棄 CJK UNIFIED IDEOGRAPH-68C4 0x68C9 棉 CJK UNIFIED IDEOGRAPH-68C9 0x68CB 棋 CJK UNIFIED IDEOGRAPH-68CB 0x68CD 棍 CJK UNIFIED IDEOGRAPH-68CD 0x68D2 棒 CJK UNIFIED IDEOGRAPH-68D2 0x68D5 棕 CJK UNIFIED IDEOGRAPH-68D5 0x68D7 棗 CJK UNIFIED IDEOGRAPH-68D7 0x68D8 棘 CJK UNIFIED IDEOGRAPH-68D8 0x68DA 棚 CJK UNIFIED IDEOGRAPH-68DA 0x68DF 棟 CJK UNIFIED IDEOGRAPH-68DF 0x68E0 棠 CJK UNIFIED IDEOGRAPH-68E0 0x68E3 棣 CJK UNIFIED IDEOGRAPH-68E3 0x68E7 棧 CJK UNIFIED IDEOGRAPH-68E7 0x68E8 棨 CJK UNIFIED IDEOGRAPH-68E8 0x68EE 森 CJK UNIFIED IDEOGRAPH-68EE 0x68F1 棱 CJK UNIFIED IDEOGRAPH-68F1 0x68F2 棲 CJK UNIFIED IDEOGRAPH-68F2 0x68F5 棵 CJK UNIFIED IDEOGRAPH-68F5 0x68F9 棹 CJK UNIFIED IDEOGRAPH-68F9 0x68FA 棺 CJK UNIFIED IDEOGRAPH-68FA 0x68FB 棻 CJK UNIFIED IDEOGRAPH-68FB 0x6905 椅 CJK UNIFIED IDEOGRAPH-6905 0x690B 椋 CJK UNIFIED IDEOGRAPH-690B 0x690D 植 CJK UNIFIED IDEOGRAPH-690D 0x690E 椎 CJK UNIFIED IDEOGRAPH-690E 0x690F 椏 CJK UNIFIED IDEOGRAPH-690F 0x6912 椒 CJK UNIFIED IDEOGRAPH-6912 0x692A 椪 CJK UNIFIED IDEOGRAPH-692A 0x6930 椰 CJK UNIFIED IDEOGRAPH-6930 0x6934 椴 CJK UNIFIED IDEOGRAPH-6934 0x6939 椹 CJK UNIFIED IDEOGRAPH-6939 0x693D 椽 CJK UNIFIED IDEOGRAPH-693D 0x693F 椿 CJK UNIFIED IDEOGRAPH-693F 0x6942 楂 CJK UNIFIED IDEOGRAPH-6942 0x694A 楊 CJK UNIFIED IDEOGRAPH-694A 0x6953 楓 CJK UNIFIED IDEOGRAPH-6953 0x6954 楔 CJK UNIFIED IDEOGRAPH-6954 0x6959 楙 CJK UNIFIED IDEOGRAPH-6959 0x695A 楚 CJK UNIFIED IDEOGRAPH-695A 0x695D 楝 CJK UNIFIED IDEOGRAPH-695D 0x695E 楞 CJK UNIFIED IDEOGRAPH-695E 0x6960 楠 CJK UNIFIED IDEOGRAPH-6960 0x6962 楢 CJK UNIFIED IDEOGRAPH-6962 0x6963 楣 CJK UNIFIED IDEOGRAPH-6963 0x6966 楦 CJK UNIFIED IDEOGRAPH-6966 0x6968 楨 CJK UNIFIED IDEOGRAPH-6968 0x696B 楫 CJK UNIFIED IDEOGRAPH-696B 0x696D 業 CJK UNIFIED IDEOGRAPH-696D 0x696E 楮 CJK UNIFIED IDEOGRAPH-696E 0x696F 楯 CJK UNIFIED IDEOGRAPH-696F 0x6975 極 CJK UNIFIED IDEOGRAPH-6975 0x6977 楷 CJK UNIFIED IDEOGRAPH-6977 0x6978 楸 CJK UNIFIED IDEOGRAPH-6978 0x6979 楹 CJK UNIFIED IDEOGRAPH-6979 0x6982 概 CJK UNIFIED IDEOGRAPH-6982 0x6986 榆 CJK UNIFIED IDEOGRAPH-6986 0x698E 榎 CJK UNIFIED IDEOGRAPH-698E 0x6994 榔 CJK UNIFIED IDEOGRAPH-6994 0x6995 榕 CJK UNIFIED IDEOGRAPH-6995 0x6996 榖 CJK UNIFIED IDEOGRAPH-6996 0x699A 榚 CJK UNIFIED IDEOGRAPH-699A 0x699B 榛 CJK UNIFIED IDEOGRAPH-699B 0x699C 榜 CJK UNIFIED IDEOGRAPH-699C 0x69A4 榤 CJK UNIFIED IDEOGRAPH-69A4 0x69A6 榦 CJK UNIFIED IDEOGRAPH-69A6 0x69A7 榧 CJK UNIFIED IDEOGRAPH-69A7 0x69A8 榨 CJK UNIFIED IDEOGRAPH-69A8 0x69AB 榫 CJK UNIFIED IDEOGRAPH-69AB 0x69AD 榭 CJK UNIFIED IDEOGRAPH-69AD 0x69AE 榮 CJK UNIFIED IDEOGRAPH-69AE 0x69B3 榳 CJK UNIFIED IDEOGRAPH-69B3 0x69B4 榴 CJK UNIFIED IDEOGRAPH-69B4 0x69B7 榷 CJK UNIFIED IDEOGRAPH-69B7 0x69BB 榻 CJK UNIFIED IDEOGRAPH-69BB 0x69C1 槁 CJK UNIFIED IDEOGRAPH-69C1 0x69C3 槃 CJK UNIFIED IDEOGRAPH-69C3 0x69CB 構 CJK UNIFIED IDEOGRAPH-69CB 0x69CC 槌 CJK UNIFIED IDEOGRAPH-69CC 0x69CD 槍 CJK UNIFIED IDEOGRAPH-69CD 0x69CE 槎 CJK UNIFIED IDEOGRAPH-69CE 0x69D0 槐 CJK UNIFIED IDEOGRAPH-69D0 0x69D3 槓 CJK UNIFIED IDEOGRAPH-69D3 0x69D9 槙 CJK UNIFIED IDEOGRAPH-69D9 0x69E4 槤 CJK UNIFIED IDEOGRAPH-69E4 0x69E8 槨 CJK UNIFIED IDEOGRAPH-69E8 0x69ED 槭 CJK UNIFIED IDEOGRAPH-69ED 0x69F2 槲 CJK UNIFIED IDEOGRAPH-69F2 0x69F3 槳 CJK UNIFIED IDEOGRAPH-69F3 0x69FB 槻 CJK UNIFIED IDEOGRAPH-69FB 0x69FD 槽 CJK UNIFIED IDEOGRAPH-69FD 0x69FF 槿 CJK UNIFIED IDEOGRAPH-69FF 0x6A01 樁 CJK UNIFIED IDEOGRAPH-6A01 0x6A02 樂 CJK UNIFIED IDEOGRAPH-6A02 0x6A0A 樊 CJK UNIFIED IDEOGRAPH-6A0A 0x6A11 樑 CJK UNIFIED IDEOGRAPH-6A11 0x6A13 樓 CJK UNIFIED IDEOGRAPH-6A13 0x6A17 樗 CJK UNIFIED IDEOGRAPH-6A17 0x6A18 樘 CJK UNIFIED IDEOGRAPH-6A18 0x6A19 標 CJK UNIFIED IDEOGRAPH-6A19 0x6A1E 樞 CJK UNIFIED IDEOGRAPH-6A1E 0x6A1F 樟 CJK UNIFIED IDEOGRAPH-6A1F 0x6A21 模 CJK UNIFIED IDEOGRAPH-6A21 0x6A23 樣 CJK UNIFIED IDEOGRAPH-6A23 0x6A28 樨 CJK UNIFIED IDEOGRAPH-6A28 0x6A35 樵 CJK UNIFIED IDEOGRAPH-6A35 0x6A38 樸 CJK UNIFIED IDEOGRAPH-6A38 0x6A39 樹 CJK UNIFIED IDEOGRAPH-6A39 0x6A3A 樺 CJK UNIFIED IDEOGRAPH-6A3A 0x6A3D 樽 CJK UNIFIED IDEOGRAPH-6A3D 0x6A3E 樾 CJK UNIFIED IDEOGRAPH-6A3E 0x6A44 橄 CJK UNIFIED IDEOGRAPH-6A44 0x6A47 橇 CJK UNIFIED IDEOGRAPH-6A47 0x6A48 橈 CJK UNIFIED IDEOGRAPH-6A48 0x6A4B 橋 CJK UNIFIED IDEOGRAPH-6A4B 0x6A58 橘 CJK UNIFIED IDEOGRAPH-6A58 0x6A59 橙 CJK UNIFIED IDEOGRAPH-6A59 0x6A5F 機 CJK UNIFIED IDEOGRAPH-6A5F 0x6A61 橡 CJK UNIFIED IDEOGRAPH-6A61 0x6A62 橢 CJK UNIFIED IDEOGRAPH-6A62 0x6A6B 橫 CJK UNIFIED IDEOGRAPH-6A6B 0x6A80 檀 CJK UNIFIED IDEOGRAPH-6A80 0x6A84 檄 CJK UNIFIED IDEOGRAPH-6A84 0x6A89 檉 CJK UNIFIED IDEOGRAPH-6A89 0x6A8E 檎 CJK UNIFIED IDEOGRAPH-6A8E 0x6A90 檐 CJK UNIFIED IDEOGRAPH-6A90 0x6A94 檔 CJK UNIFIED IDEOGRAPH-6A94 0x6A97 檗 CJK UNIFIED IDEOGRAPH-6A97 0x6A9C 檜 CJK UNIFIED IDEOGRAPH-6A9C 0x6AA2 檢 CJK UNIFIED IDEOGRAPH-6AA2 0x6AA3 檣 CJK UNIFIED IDEOGRAPH-6AA3 0x6AA8 檨 CJK UNIFIED IDEOGRAPH-6AA8 0x6AAC 檬 CJK UNIFIED IDEOGRAPH-6AAC 0x6AAF 檯 CJK UNIFIED IDEOGRAPH-6AAF 0x6AB3 檳 CJK UNIFIED IDEOGRAPH-6AB3 0x6AB8 檸 CJK UNIFIED IDEOGRAPH-6AB8 0x6ABB 檻 CJK UNIFIED IDEOGRAPH-6ABB 0x6AC2 櫂 CJK UNIFIED IDEOGRAPH-6AC2 0x6AC3 櫃 CJK UNIFIED IDEOGRAPH-6AC3 0x6AD3 櫓 CJK UNIFIED IDEOGRAPH-6AD3 0x6ADA 櫚 CJK UNIFIED IDEOGRAPH-6ADA 0x6ADB 櫛 CJK UNIFIED IDEOGRAPH-6ADB 0x6ADE 櫞 CJK UNIFIED IDEOGRAPH-6ADE 0x6ADF 櫟 CJK UNIFIED IDEOGRAPH-6ADF 0x6AE5 櫥 CJK UNIFIED IDEOGRAPH-6AE5 0x6AEA 櫪 CJK UNIFIED IDEOGRAPH-6AEA 0x6AEB 櫫 CJK UNIFIED IDEOGRAPH-6AEB 0x6AF3 櫳 CJK UNIFIED IDEOGRAPH-6AF3 0x6AF8 櫸 CJK UNIFIED IDEOGRAPH-6AF8 0x6AFA 櫺 CJK UNIFIED IDEOGRAPH-6AFA 0x6AFB 櫻 CJK UNIFIED IDEOGRAPH-6AFB 0x6B04 欄 CJK UNIFIED IDEOGRAPH-6B04 0x6B09 欉 CJK UNIFIED IDEOGRAPH-6B09 0x6B0A 權 CJK UNIFIED IDEOGRAPH-6B0A 0x6B0F 欏 CJK UNIFIED IDEOGRAPH-6B0F 0x6B12 欒 CJK UNIFIED IDEOGRAPH-6B12 0x6B16 欖 CJK UNIFIED IDEOGRAPH-6B16 0x6B20 欠 CJK UNIFIED IDEOGRAPH-6B20 0x6B21 次 CJK UNIFIED IDEOGRAPH-6B21 0x6B23 欣 CJK UNIFIED IDEOGRAPH-6B23 0x6B32 欲 CJK UNIFIED IDEOGRAPH-6B32 0x6B38 欸 CJK UNIFIED IDEOGRAPH-6B38 0x6B3A 欺 CJK UNIFIED IDEOGRAPH-6B3A 0x6B3D 欽 CJK UNIFIED IDEOGRAPH-6B3D 0x6B3E 款 CJK UNIFIED IDEOGRAPH-6B3E 0x6B46 歆 CJK UNIFIED IDEOGRAPH-6B46 0x6B47 歇 CJK UNIFIED IDEOGRAPH-6B47 0x6B49 歉 CJK UNIFIED IDEOGRAPH-6B49 0x6B4C 歌 CJK UNIFIED IDEOGRAPH-6B4C 0x6B4E 歎 CJK UNIFIED IDEOGRAPH-6B4E 0x6B50 歐 CJK UNIFIED IDEOGRAPH-6B50 0x6B59 歙 CJK UNIFIED IDEOGRAPH-6B59 0x6B5B 歛 CJK UNIFIED IDEOGRAPH-6B5B 0x6B5F 歟 CJK UNIFIED IDEOGRAPH-6B5F 0x6B61 歡 CJK UNIFIED IDEOGRAPH-6B61 0x6B62 止 CJK UNIFIED IDEOGRAPH-6B62 0x6B63 正 CJK UNIFIED IDEOGRAPH-6B63 0x6B64 此 CJK UNIFIED IDEOGRAPH-6B64 0x6B65 步 CJK UNIFIED IDEOGRAPH-6B65 0x6B66 武 CJK UNIFIED IDEOGRAPH-6B66 0x6B67 歧 CJK UNIFIED IDEOGRAPH-6B67 0x6B6A 歪 CJK UNIFIED IDEOGRAPH-6B6A 0x6B72 歲 CJK UNIFIED IDEOGRAPH-6B72 0x6B77 歷 CJK UNIFIED IDEOGRAPH-6B77 0x6B78 歸 CJK UNIFIED IDEOGRAPH-6B78 0x6B79 歹 CJK UNIFIED IDEOGRAPH-6B79 0x6B7B 死 CJK UNIFIED IDEOGRAPH-6B7B 0x6B7F 歿 CJK UNIFIED IDEOGRAPH-6B7F 0x6B83 殃 CJK UNIFIED IDEOGRAPH-6B83 0x6B84 殄 CJK UNIFIED IDEOGRAPH-6B84 0x6B86 殆 CJK UNIFIED IDEOGRAPH-6B86 0x6B89 殉 CJK UNIFIED IDEOGRAPH-6B89 0x6B8A 殊 CJK UNIFIED IDEOGRAPH-6B8A 0x6B96 殖 CJK UNIFIED IDEOGRAPH-6B96 0x6B98 殘 CJK UNIFIED IDEOGRAPH-6B98 0x6B9E 殞 CJK UNIFIED IDEOGRAPH-6B9E 0x6BA4 殤 CJK UNIFIED IDEOGRAPH-6BA4 0x6BAB 殫 CJK UNIFIED IDEOGRAPH-6BAB 0x6BAD 殭 CJK UNIFIED IDEOGRAPH-6BAD 0x6BAE 殮 CJK UNIFIED IDEOGRAPH-6BAE 0x6BAF 殯 CJK UNIFIED IDEOGRAPH-6BAF 0x6BB2 殲 CJK UNIFIED IDEOGRAPH-6BB2 0x6BB5 段 CJK UNIFIED IDEOGRAPH-6BB5 0x6BB7 殷 CJK UNIFIED IDEOGRAPH-6BB7 0x6BBA 殺 CJK UNIFIED IDEOGRAPH-6BBA 0x6BBC 殼 CJK UNIFIED IDEOGRAPH-6BBC 0x6BBF 殿 CJK UNIFIED IDEOGRAPH-6BBF 0x6BC0 毀 CJK UNIFIED IDEOGRAPH-6BC0 0x6BC5 毅 CJK UNIFIED IDEOGRAPH-6BC5 0x6BC6 毆 CJK UNIFIED IDEOGRAPH-6BC6 0x6BCB 毋 CJK UNIFIED IDEOGRAPH-6BCB 0x6BCD 母 CJK UNIFIED IDEOGRAPH-6BCD 0x6BCF 每 CJK UNIFIED IDEOGRAPH-6BCF 0x6BD2 毒 CJK UNIFIED IDEOGRAPH-6BD2 0x6BD3 毓 CJK UNIFIED IDEOGRAPH-6BD3 0x6BD4 比 CJK UNIFIED IDEOGRAPH-6BD4 0x6BD6 毖 CJK UNIFIED IDEOGRAPH-6BD6 0x6BD7 毗 CJK UNIFIED IDEOGRAPH-6BD7 0x6BD8 毘 CJK UNIFIED IDEOGRAPH-6BD8 0x6BDB 毛 CJK UNIFIED IDEOGRAPH-6BDB 0x6BEB 毫 CJK UNIFIED IDEOGRAPH-6BEB 0x6BEC 毬 CJK UNIFIED IDEOGRAPH-6BEC 0x6BEF 毯 CJK UNIFIED IDEOGRAPH-6BEF 0x6BFD 毽 CJK UNIFIED IDEOGRAPH-6BFD 0x6C02 氂 CJK UNIFIED IDEOGRAPH-6C02 0x6C08 氈 CJK UNIFIED IDEOGRAPH-6C08 0x6C0F 氏 CJK UNIFIED IDEOGRAPH-6C0F 0x6C10 氐 CJK UNIFIED IDEOGRAPH-6C10 0x6C11 民 CJK UNIFIED IDEOGRAPH-6C11 0x6C13 氓 CJK UNIFIED IDEOGRAPH-6C13 0x6C14 气 CJK UNIFIED IDEOGRAPH-6C14 0x6C16 氖 CJK UNIFIED IDEOGRAPH-6C16 0x6C19 氙 CJK UNIFIED IDEOGRAPH-6C19 0x6C1B 氛 CJK UNIFIED IDEOGRAPH-6C1B 0x6C1F 氟 CJK UNIFIED IDEOGRAPH-6C1F 0x6C23 氣 CJK UNIFIED IDEOGRAPH-6C23 0x6C24 氤 CJK UNIFIED IDEOGRAPH-6C24 0x6C26 氦 CJK UNIFIED IDEOGRAPH-6C26 0x6C27 氧 CJK UNIFIED IDEOGRAPH-6C27 0x6C28 氨 CJK UNIFIED IDEOGRAPH-6C28 0x6C2A 氪 CJK UNIFIED IDEOGRAPH-6C2A 0x6C2B 氫 CJK UNIFIED IDEOGRAPH-6C2B 0x6C2C 氬 CJK UNIFIED IDEOGRAPH-6C2C 0x6C2E 氮 CJK UNIFIED IDEOGRAPH-6C2E 0x6C2F 氯 CJK UNIFIED IDEOGRAPH-6C2F 0x6C30 氰 CJK UNIFIED IDEOGRAPH-6C30 0x6C33 氳 CJK UNIFIED IDEOGRAPH-6C33 0x6C34 水 CJK UNIFIED IDEOGRAPH-6C34 0x6C38 永 CJK UNIFIED IDEOGRAPH-6C38 0x6C3E 氾 CJK UNIFIED IDEOGRAPH-6C3E 0x6C40 汀 CJK UNIFIED IDEOGRAPH-6C40 0x6C41 汁 CJK UNIFIED IDEOGRAPH-6C41 0x6C42 求 CJK UNIFIED IDEOGRAPH-6C42 0x6C46 汆 CJK UNIFIED IDEOGRAPH-6C46 0x6C4E 汎 CJK UNIFIED IDEOGRAPH-6C4E 0x6C50 汐 CJK UNIFIED IDEOGRAPH-6C50 0x6C55 汕 CJK UNIFIED IDEOGRAPH-6C55 0x6C57 汗 CJK UNIFIED IDEOGRAPH-6C57 0x6C59 汙 CJK UNIFIED IDEOGRAPH-6C59 0x6C5B 汛 CJK UNIFIED IDEOGRAPH-6C5B 0x6C5C 汜 CJK UNIFIED IDEOGRAPH-6C5C 0x6C5D 汝 CJK UNIFIED IDEOGRAPH-6C5D 0x6C5E 汞 CJK UNIFIED IDEOGRAPH-6C5E 0x6C5F 江 CJK UNIFIED IDEOGRAPH-6C5F 0x6C60 池 CJK UNIFIED IDEOGRAPH-6C60 0x6C61 污 CJK UNIFIED IDEOGRAPH-6C61 0x6C68 汨 CJK UNIFIED IDEOGRAPH-6C68 0x6C69 汩 CJK UNIFIED IDEOGRAPH-6C69 0x6C6A 汪 CJK UNIFIED IDEOGRAPH-6C6A 0x6C6F 汯 CJK UNIFIED IDEOGRAPH-6C6F 0x6C70 汰 CJK UNIFIED IDEOGRAPH-6C70 0x6C72 汲 CJK UNIFIED IDEOGRAPH-6C72 0x6C74 汴 CJK UNIFIED IDEOGRAPH-6C74 0x6C76 汶 CJK UNIFIED IDEOGRAPH-6C76 0x6C7A 決 CJK UNIFIED IDEOGRAPH-6C7A 0x6C7D 汽 CJK UNIFIED IDEOGRAPH-6C7D 0x6C7E 汾 CJK UNIFIED IDEOGRAPH-6C7E 0x6C81 沁 CJK UNIFIED IDEOGRAPH-6C81 0x6C82 沂 CJK UNIFIED IDEOGRAPH-6C82 0x6C83 沃 CJK UNIFIED IDEOGRAPH-6C83 0x6C84 沄 CJK UNIFIED IDEOGRAPH-6C84 0x6C85 沅 CJK UNIFIED IDEOGRAPH-6C85 0x6C87 沇 CJK UNIFIED IDEOGRAPH-6C87 0x6C88 沈 CJK UNIFIED IDEOGRAPH-6C88 0x6C89 沉 CJK UNIFIED IDEOGRAPH-6C89 0x6C8C 沌 CJK UNIFIED IDEOGRAPH-6C8C 0x6C8F 沏 CJK UNIFIED IDEOGRAPH-6C8F 0x6C90 沐 CJK UNIFIED IDEOGRAPH-6C90 0x6C92 沒 CJK UNIFIED IDEOGRAPH-6C92 0x6C93 沓 CJK UNIFIED IDEOGRAPH-6C93 0x6C96 沖 CJK UNIFIED IDEOGRAPH-6C96 0x6C99 沙 CJK UNIFIED IDEOGRAPH-6C99 0x6C9B 沛 CJK UNIFIED IDEOGRAPH-6C9B 0x6CAB 沫 CJK UNIFIED IDEOGRAPH-6CAB 0x6CAC 沬 CJK UNIFIED IDEOGRAPH-6CAC 0x6CAD 沭 CJK UNIFIED IDEOGRAPH-6CAD 0x6CAE 沮 CJK UNIFIED IDEOGRAPH-6CAE 0x6CB1 沱 CJK UNIFIED IDEOGRAPH-6CB1 0x6CB3 河 CJK UNIFIED IDEOGRAPH-6CB3 0x6CB8 沸 CJK UNIFIED IDEOGRAPH-6CB8 0x6CB9 油 CJK UNIFIED IDEOGRAPH-6CB9 0x6CBA 沺 CJK UNIFIED IDEOGRAPH-6CBA 0x6CBB 治 CJK UNIFIED IDEOGRAPH-6CBB 0x6CBC 沼 CJK UNIFIED IDEOGRAPH-6CBC 0x6CBD 沽 CJK UNIFIED IDEOGRAPH-6CBD 0x6CBE 沾 CJK UNIFIED IDEOGRAPH-6CBE 0x6CBF 沿 CJK UNIFIED IDEOGRAPH-6CBF 0x6CC1 況 CJK UNIFIED IDEOGRAPH-6CC1 0x6CC4 泄 CJK UNIFIED IDEOGRAPH-6CC4 0x6CC5 泅 CJK UNIFIED IDEOGRAPH-6CC5 0x6CC9 泉 CJK UNIFIED IDEOGRAPH-6CC9 0x6CCA 泊 CJK UNIFIED IDEOGRAPH-6CCA 0x6CCC 泌 CJK UNIFIED IDEOGRAPH-6CCC 0x6CD3 泓 CJK UNIFIED IDEOGRAPH-6CD3 0x6CD5 法 CJK UNIFIED IDEOGRAPH-6CD5 0x6CD7 泗 CJK UNIFIED IDEOGRAPH-6CD7 0x6CDB 泛 CJK UNIFIED IDEOGRAPH-6CDB 0x6CE0 泠 CJK UNIFIED IDEOGRAPH-6CE0 0x6CE1 泡 CJK UNIFIED IDEOGRAPH-6CE1 0x6CE2 波 CJK UNIFIED IDEOGRAPH-6CE2 0x6CE3 泣 CJK UNIFIED IDEOGRAPH-6CE3 0x6CE5 泥 CJK UNIFIED IDEOGRAPH-6CE5 0x6CE8 注 CJK UNIFIED IDEOGRAPH-6CE8 0x6CEB 泫 CJK UNIFIED IDEOGRAPH-6CEB 0x6CEE 泮 CJK UNIFIED IDEOGRAPH-6CEE 0x6CEF 泯 CJK UNIFIED IDEOGRAPH-6CEF 0x6CF0 泰 CJK UNIFIED IDEOGRAPH-6CF0 0x6CF1 泱 CJK UNIFIED IDEOGRAPH-6CF1 0x6CF3 泳 CJK UNIFIED IDEOGRAPH-6CF3 0x6CF5 泵 CJK UNIFIED IDEOGRAPH-6CF5 0x6D01 洁 CJK UNIFIED IDEOGRAPH-6D01 0x6D04 洄 CJK UNIFIED IDEOGRAPH-6D04 0x6D0B 洋 CJK UNIFIED IDEOGRAPH-6D0B 0x6D10 洐 CJK UNIFIED IDEOGRAPH-6D10 0x6D12 洒 CJK UNIFIED IDEOGRAPH-6D12 0x6D17 洗 CJK UNIFIED IDEOGRAPH-6D17 0x6D19 洙 CJK UNIFIED IDEOGRAPH-6D19 0x6D1B 洛 CJK UNIFIED IDEOGRAPH-6D1B 0x6D1E 洞 CJK UNIFIED IDEOGRAPH-6D1E 0x6D22 洢 CJK UNIFIED IDEOGRAPH-6D22 0x6D25 津 CJK UNIFIED IDEOGRAPH-6D25 0x6D27 洧 CJK UNIFIED IDEOGRAPH-6D27 0x6D28 洨 CJK UNIFIED IDEOGRAPH-6D28 0x6D29 洩 CJK UNIFIED IDEOGRAPH-6D29 0x6D2A 洪 CJK UNIFIED IDEOGRAPH-6D2A 0x6D2E 洮 CJK UNIFIED IDEOGRAPH-6D2E 0x6D31 洱 CJK UNIFIED IDEOGRAPH-6D31 0x6D32 洲 CJK UNIFIED IDEOGRAPH-6D32 0x6D33 洳 CJK UNIFIED IDEOGRAPH-6D33 0x6D35 洵 CJK UNIFIED IDEOGRAPH-6D35 0x6D36 洶 CJK UNIFIED IDEOGRAPH-6D36 0x6D38 洸 CJK UNIFIED IDEOGRAPH-6D38 0x6D39 洹 CJK UNIFIED IDEOGRAPH-6D39 0x6D3A 洺 CJK UNIFIED IDEOGRAPH-6D3A 0x6D3B 活 CJK UNIFIED IDEOGRAPH-6D3B 0x6D3C 洼 CJK UNIFIED IDEOGRAPH-6D3C 0x6D3D 洽 CJK UNIFIED IDEOGRAPH-6D3D 0x6D3E 派 CJK UNIFIED IDEOGRAPH-6D3E 0x6D41 流 CJK UNIFIED IDEOGRAPH-6D41 0x6D59 浙 CJK UNIFIED IDEOGRAPH-6D59 0x6D5A 浚 CJK UNIFIED IDEOGRAPH-6D5A 0x6D60 浠 CJK UNIFIED IDEOGRAPH-6D60 0x6D63 浣 CJK UNIFIED IDEOGRAPH-6D63 0x6D64 浤 CJK UNIFIED IDEOGRAPH-6D64 0x6D65 浥 CJK UNIFIED IDEOGRAPH-6D65 0x6D66 浦 CJK UNIFIED IDEOGRAPH-6D66 0x6D69 浩 CJK UNIFIED IDEOGRAPH-6D69 0x6D6A 浪 CJK UNIFIED IDEOGRAPH-6D6A 0x6D6C 浬 CJK UNIFIED IDEOGRAPH-6D6C 0x6D6E 浮 CJK UNIFIED IDEOGRAPH-6D6E 0x6D6F 浯 CJK UNIFIED IDEOGRAPH-6D6F 0x6D74 浴 CJK UNIFIED IDEOGRAPH-6D74 0x6D77 海 CJK UNIFIED IDEOGRAPH-6D77 0x6D78 浸 CJK UNIFIED IDEOGRAPH-6D78 0x6D79 浹 CJK UNIFIED IDEOGRAPH-6D79 0x6D7F 浿 CJK UNIFIED IDEOGRAPH-6D7F 0x6D82 涂 CJK UNIFIED IDEOGRAPH-6D82 0x6D85 涅 CJK UNIFIED IDEOGRAPH-6D85 0x6D87 涇 CJK UNIFIED IDEOGRAPH-6D87 0x6D88 消 CJK UNIFIED IDEOGRAPH-6D88 0x6D89 涉 CJK UNIFIED IDEOGRAPH-6D89 0x6D8C 涌 CJK UNIFIED IDEOGRAPH-6D8C 0x6D8E 涎 CJK UNIFIED IDEOGRAPH-6D8E 0x6D93 涓 CJK UNIFIED IDEOGRAPH-6D93 0x6D94 涔 CJK UNIFIED IDEOGRAPH-6D94 0x6D95 涕 CJK UNIFIED IDEOGRAPH-6D95 0x6DAA 涪 CJK UNIFIED IDEOGRAPH-6DAA 0x6DAE 涮 CJK UNIFIED IDEOGRAPH-6DAE 0x6DAF 涯 CJK UNIFIED IDEOGRAPH-6DAF 0x6DB2 液 CJK UNIFIED IDEOGRAPH-6DB2 0x6DB4 涴 CJK UNIFIED IDEOGRAPH-6DB4 0x6DB5 涵 CJK UNIFIED IDEOGRAPH-6DB5 0x6DB7 涷 CJK UNIFIED IDEOGRAPH-6DB7 0x6DB8 涸 CJK UNIFIED IDEOGRAPH-6DB8 0x6DBC 涼 CJK UNIFIED IDEOGRAPH-6DBC 0x6DBF 涿 CJK UNIFIED IDEOGRAPH-6DBF 0x6DC0 淀 CJK UNIFIED IDEOGRAPH-6DC0 0x6DC2 淂 CJK UNIFIED IDEOGRAPH-6DC2 0x6DC4 淄 CJK UNIFIED IDEOGRAPH-6DC4 0x6DC5 淅 CJK UNIFIED IDEOGRAPH-6DC5 0x6DC6 淆 CJK UNIFIED IDEOGRAPH-6DC6 0x6DC7 淇 CJK UNIFIED IDEOGRAPH-6DC7 0x6DCB 淋 CJK UNIFIED IDEOGRAPH-6DCB 0x6DCC 淌 CJK UNIFIED IDEOGRAPH-6DCC 0x6DCF 淏 CJK UNIFIED IDEOGRAPH-6DCF 0x6DD1 淑 CJK UNIFIED IDEOGRAPH-6DD1 0x6DD2 淒 CJK UNIFIED IDEOGRAPH-6DD2 0x6DD6 淖 CJK UNIFIED IDEOGRAPH-6DD6 0x6DD8 淘 CJK UNIFIED IDEOGRAPH-6DD8 0x6DD9 淙 CJK UNIFIED IDEOGRAPH-6DD9 0x6DDA 淚 CJK UNIFIED IDEOGRAPH-6DDA 0x6DDE 淞 CJK UNIFIED IDEOGRAPH-6DDE 0x6DE1 淡 CJK UNIFIED IDEOGRAPH-6DE1 0x6DE4 淤 CJK UNIFIED IDEOGRAPH-6DE4 0x6DE5 淥 CJK UNIFIED IDEOGRAPH-6DE5 0x6DE6 淦 CJK UNIFIED IDEOGRAPH-6DE6 0x6DE8 淨 CJK UNIFIED IDEOGRAPH-6DE8 0x6DE9 淩 CJK UNIFIED IDEOGRAPH-6DE9 0x6DEA 淪 CJK UNIFIED IDEOGRAPH-6DEA 0x6DEB 淫 CJK UNIFIED IDEOGRAPH-6DEB 0x6DEC 淬 CJK UNIFIED IDEOGRAPH-6DEC 0x6DEE 淮 CJK UNIFIED IDEOGRAPH-6DEE 0x6DEF 淯 CJK UNIFIED IDEOGRAPH-6DEF 0x6DF1 深 CJK UNIFIED IDEOGRAPH-6DF1 0x6DF3 淳 CJK UNIFIED IDEOGRAPH-6DF3 0x6DF5 淵 CJK UNIFIED IDEOGRAPH-6DF5 0x6DF6 淶 CJK UNIFIED IDEOGRAPH-6DF6 0x6DF7 混 CJK UNIFIED IDEOGRAPH-6DF7 0x6DF9 淹 CJK UNIFIED IDEOGRAPH-6DF9 0x6DFA 淺 CJK UNIFIED IDEOGRAPH-6DFA 0x6DFB 添 CJK UNIFIED IDEOGRAPH-6DFB 0x6DFC 淼 CJK UNIFIED IDEOGRAPH-6DFC 0x6E05 清 CJK UNIFIED IDEOGRAPH-6E05 0x6E19 渙 CJK UNIFIED IDEOGRAPH-6E19 0x6E1A 渚 CJK UNIFIED IDEOGRAPH-6E1A 0x6E1B 減 CJK UNIFIED IDEOGRAPH-6E1B 0x6E1D 渝 CJK UNIFIED IDEOGRAPH-6E1D 0x6E1F 渟 CJK UNIFIED IDEOGRAPH-6E1F 0x6E20 渠 CJK UNIFIED IDEOGRAPH-6E20 0x6E21 渡 CJK UNIFIED IDEOGRAPH-6E21 0x6E23 渣 CJK UNIFIED IDEOGRAPH-6E23 0x6E24 渤 CJK UNIFIED IDEOGRAPH-6E24 0x6E25 渥 CJK UNIFIED IDEOGRAPH-6E25 0x6E26 渦 CJK UNIFIED IDEOGRAPH-6E26 0x6E2C 測 CJK UNIFIED IDEOGRAPH-6E2C 0x6E2D 渭 CJK UNIFIED IDEOGRAPH-6E2D 0x6E2F 港 CJK UNIFIED IDEOGRAPH-6E2F 0x6E32 渲 CJK UNIFIED IDEOGRAPH-6E32 0x6E34 渴 CJK UNIFIED IDEOGRAPH-6E34 0x6E38 游 CJK UNIFIED IDEOGRAPH-6E38 0x6E3A 渺 CJK UNIFIED IDEOGRAPH-6E3A 0x6E3C 渼 CJK UNIFIED IDEOGRAPH-6E3C 0x6E3E 渾 CJK UNIFIED IDEOGRAPH-6E3E 0x6E43 湃 CJK UNIFIED IDEOGRAPH-6E43 0x6E44 湄 CJK UNIFIED IDEOGRAPH-6E44 0x6E4A 湊 CJK UNIFIED IDEOGRAPH-6E4A 0x6E4D 湍 CJK UNIFIED IDEOGRAPH-6E4D 0x6E4E 湎 CJK UNIFIED IDEOGRAPH-6E4E 0x6E56 湖 CJK UNIFIED IDEOGRAPH-6E56 0x6E58 湘 CJK UNIFIED IDEOGRAPH-6E58 0x6E5B 湛 CJK UNIFIED IDEOGRAPH-6E5B 0x6E5F 湟 CJK UNIFIED IDEOGRAPH-6E5F 0x6E67 湧 CJK UNIFIED IDEOGRAPH-6E67 0x6E6B 湫 CJK UNIFIED IDEOGRAPH-6E6B 0x6E6E 湮 CJK UNIFIED IDEOGRAPH-6E6E 0x6E6F 湯 CJK UNIFIED IDEOGRAPH-6E6F 0x6E73 湳 CJK UNIFIED IDEOGRAPH-6E73 0x6E89 溉 CJK UNIFIED IDEOGRAPH-6E89 0x6E8F 溏 CJK UNIFIED IDEOGRAPH-6E8F 0x6E90 源 CJK UNIFIED IDEOGRAPH-6E90 0x6E96 準 CJK UNIFIED IDEOGRAPH-6E96 0x6E9C 溜 CJK UNIFIED IDEOGRAPH-6E9C 0x6E9D 溝 CJK UNIFIED IDEOGRAPH-6E9D 0x6E9F 溟 CJK UNIFIED IDEOGRAPH-6E9F 0x6EA2 溢 CJK UNIFIED IDEOGRAPH-6EA2 0x6EA5 溥 CJK UNIFIED IDEOGRAPH-6EA5 0x6EA6 溦 CJK UNIFIED IDEOGRAPH-6EA6 0x6EA7 溧 CJK UNIFIED IDEOGRAPH-6EA7 0x6EAA 溪 CJK UNIFIED IDEOGRAPH-6EAA 0x6EAB 溫 CJK UNIFIED IDEOGRAPH-6EAB 0x6EAF 溯 CJK UNIFIED IDEOGRAPH-6EAF 0x6EB1 溱 CJK UNIFIED IDEOGRAPH-6EB1 0x6EB4 溴 CJK UNIFIED IDEOGRAPH-6EB4 0x6EB6 溶 CJK UNIFIED IDEOGRAPH-6EB6 0x6EBA 溺 CJK UNIFIED IDEOGRAPH-6EBA 0x6EBC 溼 CJK UNIFIED IDEOGRAPH-6EBC 0x6EC1 滁 CJK UNIFIED IDEOGRAPH-6EC1 0x6EC2 滂 CJK UNIFIED IDEOGRAPH-6EC2 0x6EC4 滄 CJK UNIFIED IDEOGRAPH-6EC4 0x6EC5 滅 CJK UNIFIED IDEOGRAPH-6EC5 0x6EC7 滇 CJK UNIFIED IDEOGRAPH-6EC7 0x6ECB 滋 CJK UNIFIED IDEOGRAPH-6ECB 0x6ECC 滌 CJK UNIFIED IDEOGRAPH-6ECC 0x6ECE 滎 CJK UNIFIED IDEOGRAPH-6ECE 0x6ED1 滑 CJK UNIFIED IDEOGRAPH-6ED1 0x6ED3 滓 CJK UNIFIED IDEOGRAPH-6ED3 0x6ED4 滔 CJK UNIFIED IDEOGRAPH-6ED4 0x6ED5 滕 CJK UNIFIED IDEOGRAPH-6ED5 0x6ED8 滘 CJK UNIFIED IDEOGRAPH-6ED8 0x6EEC 滬 CJK UNIFIED IDEOGRAPH-6EEC 0x6EEF 滯 CJK UNIFIED IDEOGRAPH-6EEF 0x6EF2 滲 CJK UNIFIED IDEOGRAPH-6EF2 0x6EF4 滴 CJK UNIFIED IDEOGRAPH-6EF4 0x6EF7 滷 CJK UNIFIED IDEOGRAPH-6EF7 0x6EF8 滸 CJK UNIFIED IDEOGRAPH-6EF8 0x6EFE 滾 CJK UNIFIED IDEOGRAPH-6EFE 0x6EFF 滿 CJK UNIFIED IDEOGRAPH-6EFF 0x6F01 漁 CJK UNIFIED IDEOGRAPH-6F01 0x6F02 漂 CJK UNIFIED IDEOGRAPH-6F02 0x6F06 漆 CJK UNIFIED IDEOGRAPH-6F06 0x6F09 漉 CJK UNIFIED IDEOGRAPH-6F09 0x6F0F 漏 CJK UNIFIED IDEOGRAPH-6F0F 0x6F13 漓 CJK UNIFIED IDEOGRAPH-6F13 0x6F14 演 CJK UNIFIED IDEOGRAPH-6F14 0x6F15 漕 CJK UNIFIED IDEOGRAPH-6F15 0x6F1A 漚 CJK UNIFIED IDEOGRAPH-6F1A 0x6F20 漠 CJK UNIFIED IDEOGRAPH-6F20 0x6F22 漢 CJK UNIFIED IDEOGRAPH-6F22 0x6F23 漣 CJK UNIFIED IDEOGRAPH-6F23 0x6F25 漥 CJK UNIFIED IDEOGRAPH-6F25 0x6F29 漩 CJK UNIFIED IDEOGRAPH-6F29 0x6F2A 漪 CJK UNIFIED IDEOGRAPH-6F2A 0x6F2B 漫 CJK UNIFIED IDEOGRAPH-6F2B 0x6F2C 漬 CJK UNIFIED IDEOGRAPH-6F2C 0x6F2F 漯 CJK UNIFIED IDEOGRAPH-6F2F 0x6F31 漱 CJK UNIFIED IDEOGRAPH-6F31 0x6F32 漲 CJK UNIFIED IDEOGRAPH-6F32 0x6F33 漳 CJK UNIFIED IDEOGRAPH-6F33 0x6F38 漸 CJK UNIFIED IDEOGRAPH-6F38 0x6F3E 漾 CJK UNIFIED IDEOGRAPH-6F3E 0x6F3F 漿 CJK UNIFIED IDEOGRAPH-6F3F 0x6F41 潁 CJK UNIFIED IDEOGRAPH-6F41 0x6F51 潑 CJK UNIFIED IDEOGRAPH-6F51 0x6F54 潔 CJK UNIFIED IDEOGRAPH-6F54 0x6F58 潘 CJK UNIFIED IDEOGRAPH-6F58 0x6F5B 潛 CJK UNIFIED IDEOGRAPH-6F5B 0x6F5E 潞 CJK UNIFIED IDEOGRAPH-6F5E 0x6F5F 潟 CJK UNIFIED IDEOGRAPH-6F5F 0x6F62 潢 CJK UNIFIED IDEOGRAPH-6F62 0x6F64 潤 CJK UNIFIED IDEOGRAPH-6F64 0x6F66 潦 CJK UNIFIED IDEOGRAPH-6F66 0x6F6D 潭 CJK UNIFIED IDEOGRAPH-6F6D 0x6F6E 潮 CJK UNIFIED IDEOGRAPH-6F6E 0x6F6F 潯 CJK UNIFIED IDEOGRAPH-6F6F 0x6F70 潰 CJK UNIFIED IDEOGRAPH-6F70 0x6F78 潸 CJK UNIFIED IDEOGRAPH-6F78 0x6F7A 潺 CJK UNIFIED IDEOGRAPH-6F7A 0x6F7C 潼 CJK UNIFIED IDEOGRAPH-6F7C 0x6F7E 潾 CJK UNIFIED IDEOGRAPH-6F7E 0x6F80 澀 CJK UNIFIED IDEOGRAPH-6F80 0x6F82 澂 CJK UNIFIED IDEOGRAPH-6F82 0x6F84 澄 CJK UNIFIED IDEOGRAPH-6F84 0x6F86 澆 CJK UNIFIED IDEOGRAPH-6F86 0x6F87 澇 CJK UNIFIED IDEOGRAPH-6F87 0x6F88 澈 CJK UNIFIED IDEOGRAPH-6F88 0x6F8D 澍 CJK UNIFIED IDEOGRAPH-6F8D 0x6F8E 澎 CJK UNIFIED IDEOGRAPH-6F8E 0x6F90 澐 CJK UNIFIED IDEOGRAPH-6F90 0x6F94 澔 CJK UNIFIED IDEOGRAPH-6F94 0x6F97 澗 CJK UNIFIED IDEOGRAPH-6F97 0x6FA0 澠 CJK UNIFIED IDEOGRAPH-6FA0 0x6FA1 澡 CJK UNIFIED IDEOGRAPH-6FA1 0x6FA4 澤 CJK UNIFIED IDEOGRAPH-6FA4 0x6FA7 澧 CJK UNIFIED IDEOGRAPH-6FA7 0x6FAA 澪 CJK UNIFIED IDEOGRAPH-6FAA 0x6FB1 澱 CJK UNIFIED IDEOGRAPH-6FB1 0x6FB3 澳 CJK UNIFIED IDEOGRAPH-6FB3 0x6FB9 澹 CJK UNIFIED IDEOGRAPH-6FB9 0x6FC0 激 CJK UNIFIED IDEOGRAPH-6FC0 0x6FC1 濁 CJK UNIFIED IDEOGRAPH-6FC1 0x6FC2 濂 CJK UNIFIED IDEOGRAPH-6FC2 0x6FC3 濃 CJK UNIFIED IDEOGRAPH-6FC3 0x6FD5 濕 CJK UNIFIED IDEOGRAPH-6FD5 0x6FD8 濘 CJK UNIFIED IDEOGRAPH-6FD8 0x6FDB 濛 CJK UNIFIED IDEOGRAPH-6FDB 0x6FDF 濟 CJK UNIFIED IDEOGRAPH-6FDF 0x6FE0 濠 CJK UNIFIED IDEOGRAPH-6FE0 0x6FE1 濡 CJK UNIFIED IDEOGRAPH-6FE1 0x6FE4 濤 CJK UNIFIED IDEOGRAPH-6FE4 0x6FEB 濫 CJK UNIFIED IDEOGRAPH-6FEB 0x6FEC 濬 CJK UNIFIED IDEOGRAPH-6FEC 0x6FEE 濮 CJK UNIFIED IDEOGRAPH-6FEE 0x6FEF 濯 CJK UNIFIED IDEOGRAPH-6FEF 0x6FF0 濰 CJK UNIFIED IDEOGRAPH-6FF0 0x6FF1 濱 CJK UNIFIED IDEOGRAPH-6FF1 0x6FFA 濺 CJK UNIFIED IDEOGRAPH-6FFA 0x6FFE 濾 CJK UNIFIED IDEOGRAPH-6FFE 0x7005 瀅 CJK UNIFIED IDEOGRAPH-7005 0x7006 瀆 CJK UNIFIED IDEOGRAPH-7006 0x7009 瀉 CJK UNIFIED IDEOGRAPH-7009 0x700B 瀋 CJK UNIFIED IDEOGRAPH-700B 0x700F 瀏 CJK UNIFIED IDEOGRAPH-700F 0x7011 瀑 CJK UNIFIED IDEOGRAPH-7011 0x7015 瀕 CJK UNIFIED IDEOGRAPH-7015 0x7018 瀘 CJK UNIFIED IDEOGRAPH-7018 0x701A 瀚 CJK UNIFIED IDEOGRAPH-701A 0x701B 瀛 CJK UNIFIED IDEOGRAPH-701B 0x701D 瀝 CJK UNIFIED IDEOGRAPH-701D 0x701F 瀟 CJK UNIFIED IDEOGRAPH-701F 0x7020 瀠 CJK UNIFIED IDEOGRAPH-7020 0x7021 瀡 CJK UNIFIED IDEOGRAPH-7021 0x7026 瀦 CJK UNIFIED IDEOGRAPH-7026 0x7027 瀧 CJK UNIFIED IDEOGRAPH-7027 0x7028 瀨 CJK UNIFIED IDEOGRAPH-7028 0x7030 瀰 CJK UNIFIED IDEOGRAPH-7030 0x7032 瀲 CJK UNIFIED IDEOGRAPH-7032 0x703E 瀾 CJK UNIFIED IDEOGRAPH-703E 0x7043 灃 CJK UNIFIED IDEOGRAPH-7043 0x704C 灌 CJK UNIFIED IDEOGRAPH-704C 0x7051 灑 CJK UNIFIED IDEOGRAPH-7051 0x7055 灕 CJK UNIFIED IDEOGRAPH-7055 0x7058 灘 CJK UNIFIED IDEOGRAPH-7058 0x705D 灝 CJK UNIFIED IDEOGRAPH-705D 0x705E 灞 CJK UNIFIED IDEOGRAPH-705E 0x7060 灠 CJK UNIFIED IDEOGRAPH-7060 0x7063 灣 CJK UNIFIED IDEOGRAPH-7063 0x7064 灤 CJK UNIFIED IDEOGRAPH-7064 0x7069 灩 CJK UNIFIED IDEOGRAPH-7069 0x706B 火 CJK UNIFIED IDEOGRAPH-706B 0x7070 灰 CJK UNIFIED IDEOGRAPH-7070 0x7076 灶 CJK UNIFIED IDEOGRAPH-7076 0x7078 灸 CJK UNIFIED IDEOGRAPH-7078 0x707C 灼 CJK UNIFIED IDEOGRAPH-707C 0x707D 災 CJK UNIFIED IDEOGRAPH-707D 0x7085 炅 CJK UNIFIED IDEOGRAPH-7085 0x7086 炆 CJK UNIFIED IDEOGRAPH-7086 0x708A 炊 CJK UNIFIED IDEOGRAPH-708A 0x708E 炎 CJK UNIFIED IDEOGRAPH-708E 0x7092 炒 CJK UNIFIED IDEOGRAPH-7092 0x7094 炔 CJK UNIFIED IDEOGRAPH-7094 0x7095 炕 CJK UNIFIED IDEOGRAPH-7095 0x7096 炖 CJK UNIFIED IDEOGRAPH-7096 0x7098 炘 CJK UNIFIED IDEOGRAPH-7098 0x7099 炙 CJK UNIFIED IDEOGRAPH-7099 0x70A4 炤 CJK UNIFIED IDEOGRAPH-70A4 0x70A9 炩 CJK UNIFIED IDEOGRAPH-70A9 0x70AB 炫 CJK UNIFIED IDEOGRAPH-70AB 0x70AC 炬 CJK UNIFIED IDEOGRAPH-70AC 0x70AD 炭 CJK UNIFIED IDEOGRAPH-70AD 0x70AE 炮 CJK UNIFIED IDEOGRAPH-70AE 0x70AF 炯 CJK UNIFIED IDEOGRAPH-70AF 0x70B3 炳 CJK UNIFIED IDEOGRAPH-70B3 0x70B7 炷 CJK UNIFIED IDEOGRAPH-70B7 0x70B8 炸 CJK UNIFIED IDEOGRAPH-70B8 0x70BA 為 CJK UNIFIED IDEOGRAPH-70BA 0x70C8 烈 CJK UNIFIED IDEOGRAPH-70C8 0x70CA 烊 CJK UNIFIED IDEOGRAPH-70CA 0x70CF 烏 CJK UNIFIED IDEOGRAPH-70CF 0x70D2 烒 CJK UNIFIED IDEOGRAPH-70D2 0x70D4 烔 CJK UNIFIED IDEOGRAPH-70D4 0x70D8 烘 CJK UNIFIED IDEOGRAPH-70D8 0x70D9 烙 CJK UNIFIED IDEOGRAPH-70D9 0x70DA 烚 CJK UNIFIED IDEOGRAPH-70DA 0x70DC 烜 CJK UNIFIED IDEOGRAPH-70DC 0x70E4 烤 CJK UNIFIED IDEOGRAPH-70E4 0x70EF 烯 CJK UNIFIED IDEOGRAPH-70EF 0x70F4 烴 CJK UNIFIED IDEOGRAPH-70F4 0x70F7 烷 CJK UNIFIED IDEOGRAPH-70F7 0x70F9 烹 CJK UNIFIED IDEOGRAPH-70F9 0x70FD 烽 CJK UNIFIED IDEOGRAPH-70FD 0x7109 焉 CJK UNIFIED IDEOGRAPH-7109 0x710A 焊 CJK UNIFIED IDEOGRAPH-710A 0x710C 焌 CJK UNIFIED IDEOGRAPH-710C 0x7117 焗 CJK UNIFIED IDEOGRAPH-7117 0x7119 焙 CJK UNIFIED IDEOGRAPH-7119 0x711A 焚 CJK UNIFIED IDEOGRAPH-711A 0x711C 焜 CJK UNIFIED IDEOGRAPH-711C 0x7120 焠 CJK UNIFIED IDEOGRAPH-7120 0x7121 無 CJK UNIFIED IDEOGRAPH-7121 0x7122 焢 CJK UNIFIED IDEOGRAPH-7122 0x7126 焦 CJK UNIFIED IDEOGRAPH-7126 0x712F 焯 CJK UNIFIED IDEOGRAPH-712F 0x7130 焰 CJK UNIFIED IDEOGRAPH-7130 0x7131 焱 CJK UNIFIED IDEOGRAPH-7131 0x7136 然 CJK UNIFIED IDEOGRAPH-7136 0x7146 煆 CJK UNIFIED IDEOGRAPH-7146 0x7147 煇 CJK UNIFIED IDEOGRAPH-7147 0x7149 煉 CJK UNIFIED IDEOGRAPH-7149 0x714C 煌 CJK UNIFIED IDEOGRAPH-714C 0x714E 煎 CJK UNIFIED IDEOGRAPH-714E 0x7152 煒 CJK UNIFIED IDEOGRAPH-7152 0x7156 煖 CJK UNIFIED IDEOGRAPH-7156 0x7159 煙 CJK UNIFIED IDEOGRAPH-7159 0x715C 煜 CJK UNIFIED IDEOGRAPH-715C 0x715E 煞 CJK UNIFIED IDEOGRAPH-715E 0x7164 煤 CJK UNIFIED IDEOGRAPH-7164 0x7165 煥 CJK UNIFIED IDEOGRAPH-7165 0x7166 煦 CJK UNIFIED IDEOGRAPH-7166 0x7167 照 CJK UNIFIED IDEOGRAPH-7167 0x7168 煨 CJK UNIFIED IDEOGRAPH-7168 0x7169 煩 CJK UNIFIED IDEOGRAPH-7169 0x716C 煬 CJK UNIFIED IDEOGRAPH-716C 0x716E 煮 CJK UNIFIED IDEOGRAPH-716E 0x7172 煲 CJK UNIFIED IDEOGRAPH-7172 0x7178 煸 CJK UNIFIED IDEOGRAPH-7178 0x717D 煽 CJK UNIFIED IDEOGRAPH-717D 0x7184 熄 CJK UNIFIED IDEOGRAPH-7184 0x718A 熊 CJK UNIFIED IDEOGRAPH-718A 0x718F 熏 CJK UNIFIED IDEOGRAPH-718F 0x7192 熒 CJK UNIFIED IDEOGRAPH-7192 0x7194 熔 CJK UNIFIED IDEOGRAPH-7194 0x7197 熗 CJK UNIFIED IDEOGRAPH-7197 0x7199 熙 CJK UNIFIED IDEOGRAPH-7199 0x719F 熟 CJK UNIFIED IDEOGRAPH-719F 0x71A0 熠 CJK UNIFIED IDEOGRAPH-71A0 0x71A8 熨 CJK UNIFIED IDEOGRAPH-71A8 0x71AC 熬 CJK UNIFIED IDEOGRAPH-71AC 0x71B1 熱 CJK UNIFIED IDEOGRAPH-71B1 0x71B5 熵 CJK UNIFIED IDEOGRAPH-71B5 0x71B9 熹 CJK UNIFIED IDEOGRAPH-71B9 0x71BE 熾 CJK UNIFIED IDEOGRAPH-71BE 0x71C1 燁 CJK UNIFIED IDEOGRAPH-71C1 0x71C3 燃 CJK UNIFIED IDEOGRAPH-71C3 0x71C4 燄 CJK UNIFIED IDEOGRAPH-71C4 0x71C8 燈 CJK UNIFIED IDEOGRAPH-71C8 0x71C9 燉 CJK UNIFIED IDEOGRAPH-71C9 0x71CA 燊 CJK UNIFIED IDEOGRAPH-71CA 0x71CE 燎 CJK UNIFIED IDEOGRAPH-71CE 0x71D0 燐 CJK UNIFIED IDEOGRAPH-71D0 0x71D2 燒 CJK UNIFIED IDEOGRAPH-71D2 0x71D4 燔 CJK UNIFIED IDEOGRAPH-71D4 0x71D5 燕 CJK UNIFIED IDEOGRAPH-71D5 0x71D9 燙 CJK UNIFIED IDEOGRAPH-71D9 0x71DA 燚 CJK UNIFIED IDEOGRAPH-71DA 0x71DC 燜 CJK UNIFIED IDEOGRAPH-71DC 0x71DF 營 CJK UNIFIED IDEOGRAPH-71DF 0x71E0 燠 CJK UNIFIED IDEOGRAPH-71E0 0x71E5 燥 CJK UNIFIED IDEOGRAPH-71E5 0x71E6 燦 CJK UNIFIED IDEOGRAPH-71E6 0x71E7 燧 CJK UNIFIED IDEOGRAPH-71E7 0x71EC 燬 CJK UNIFIED IDEOGRAPH-71EC 0x71ED 燭 CJK UNIFIED IDEOGRAPH-71ED 0x71EE 燮 CJK UNIFIED IDEOGRAPH-71EE 0x71F4 燴 CJK UNIFIED IDEOGRAPH-71F4 0x71F9 燹 CJK UNIFIED IDEOGRAPH-71F9 0x71FB 燻 CJK UNIFIED IDEOGRAPH-71FB 0x71FC 燼 CJK UNIFIED IDEOGRAPH-71FC 0x71FE 燾 CJK UNIFIED IDEOGRAPH-71FE 0x71FF 燿 CJK UNIFIED IDEOGRAPH-71FF 0x7206 爆 CJK UNIFIED IDEOGRAPH-7206 0x720C 爌 CJK UNIFIED IDEOGRAPH-720C 0x720D 爍 CJK UNIFIED IDEOGRAPH-720D 0x7210 爐 CJK UNIFIED IDEOGRAPH-7210 0x721B 爛 CJK UNIFIED IDEOGRAPH-721B 0x722A 爪 CJK UNIFIED IDEOGRAPH-722A 0x722C 爬 CJK UNIFIED IDEOGRAPH-722C 0x722D 爭 CJK UNIFIED IDEOGRAPH-722D 0x7230 爰 CJK UNIFIED IDEOGRAPH-7230 0x7235 爵 CJK UNIFIED IDEOGRAPH-7235 0x7236 父 CJK UNIFIED IDEOGRAPH-7236 0x7238 爸 CJK UNIFIED IDEOGRAPH-7238 0x7239 爹 CJK UNIFIED IDEOGRAPH-7239 0x723A 爺 CJK UNIFIED IDEOGRAPH-723A 0x723B 爻 CJK UNIFIED IDEOGRAPH-723B 0x723D 爽 CJK UNIFIED IDEOGRAPH-723D 0x723E 爾 CJK UNIFIED IDEOGRAPH-723E 0x7246 牆 CJK UNIFIED IDEOGRAPH-7246 0x7247 片 CJK UNIFIED IDEOGRAPH-7247 0x7248 版 CJK UNIFIED IDEOGRAPH-7248 0x724C 牌 CJK UNIFIED IDEOGRAPH-724C 0x7252 牒 CJK UNIFIED IDEOGRAPH-7252 0x7258 牘 CJK UNIFIED IDEOGRAPH-7258 0x7259 牙 CJK UNIFIED IDEOGRAPH-7259 0x725B 牛 CJK UNIFIED IDEOGRAPH-725B 0x725D 牝 CJK UNIFIED IDEOGRAPH-725D 0x725F 牟 CJK UNIFIED IDEOGRAPH-725F 0x7260 牠 CJK UNIFIED IDEOGRAPH-7260 0x7261 牡 CJK UNIFIED IDEOGRAPH-7261 0x7262 牢 CJK UNIFIED IDEOGRAPH-7262 0x7267 牧 CJK UNIFIED IDEOGRAPH-7267 0x7269 物 CJK UNIFIED IDEOGRAPH-7269 0x726F 牯 CJK UNIFIED IDEOGRAPH-726F 0x7272 牲 CJK UNIFIED IDEOGRAPH-7272 0x7274 牴 CJK UNIFIED IDEOGRAPH-7274 0x7279 特 CJK UNIFIED IDEOGRAPH-7279 0x727B 牻 CJK UNIFIED IDEOGRAPH-727B 0x727D 牽 CJK UNIFIED IDEOGRAPH-727D 0x7280 犀 CJK UNIFIED IDEOGRAPH-7280 0x7281 犁 CJK UNIFIED IDEOGRAPH-7281 0x7284 犄 CJK UNIFIED IDEOGRAPH-7284 0x728D 犍 CJK UNIFIED IDEOGRAPH-728D 0x7292 犒 CJK UNIFIED IDEOGRAPH-7292 0x729B 犛 CJK UNIFIED IDEOGRAPH-729B 0x72A2 犢 CJK UNIFIED IDEOGRAPH-72A2 0x72A7 犧 CJK UNIFIED IDEOGRAPH-72A7 0x72AC 犬 CJK UNIFIED IDEOGRAPH-72AC 0x72AF 犯 CJK UNIFIED IDEOGRAPH-72AF 0x72BD 犽 CJK UNIFIED IDEOGRAPH-72BD 0x72C0 狀 CJK UNIFIED IDEOGRAPH-72C0 0x72C2 狂 CJK UNIFIED IDEOGRAPH-72C2 0x72C4 狄 CJK UNIFIED IDEOGRAPH-72C4 0x72CE 狎 CJK UNIFIED IDEOGRAPH-72CE 0x72D0 狐 CJK UNIFIED IDEOGRAPH-72D0 0x72D2 狒 CJK UNIFIED IDEOGRAPH-72D2 0x72D7 狗 CJK UNIFIED IDEOGRAPH-72D7 0x72D9 狙 CJK UNIFIED IDEOGRAPH-72D9 0x72E0 狠 CJK UNIFIED IDEOGRAPH-72E0 0x72E1 狡 CJK UNIFIED IDEOGRAPH-72E1 0x72E9 狩 CJK UNIFIED IDEOGRAPH-72E9 0x72F7 狷 CJK UNIFIED IDEOGRAPH-72F7 0x72F8 狸 CJK UNIFIED IDEOGRAPH-72F8 0x72F9 狹 CJK UNIFIED IDEOGRAPH-72F9 0x72FC 狼 CJK UNIFIED IDEOGRAPH-72FC 0x72FD 狽 CJK UNIFIED IDEOGRAPH-72FD 0x730A 猊 CJK UNIFIED IDEOGRAPH-730A 0x730B 猋 CJK UNIFIED IDEOGRAPH-730B 0x7316 猖 CJK UNIFIED IDEOGRAPH-7316 0x7317 猗 CJK UNIFIED IDEOGRAPH-7317 0x7319 猙 CJK UNIFIED IDEOGRAPH-7319 0x731B 猛 CJK UNIFIED IDEOGRAPH-731B 0x731C 猜 CJK UNIFIED IDEOGRAPH-731C 0x731D 猝 CJK UNIFIED IDEOGRAPH-731D 0x7322 猢 CJK UNIFIED IDEOGRAPH-7322 0x7325 猥 CJK UNIFIED IDEOGRAPH-7325 0x7329 猩 CJK UNIFIED IDEOGRAPH-7329 0x7334 猴 CJK UNIFIED IDEOGRAPH-7334 0x7336 猶 CJK UNIFIED IDEOGRAPH-7336 0x7337 猷 CJK UNIFIED IDEOGRAPH-7337 0x733B 猻 CJK UNIFIED IDEOGRAPH-733B 0x733E 猾 CJK UNIFIED IDEOGRAPH-733E 0x733F 猿 CJK UNIFIED IDEOGRAPH-733F 0x7343 獃 CJK UNIFIED IDEOGRAPH-7343 0x7344 獄 CJK UNIFIED IDEOGRAPH-7344 0x7345 獅 CJK UNIFIED IDEOGRAPH-7345 0x734E 獎 CJK UNIFIED IDEOGRAPH-734E 0x7350 獐 CJK UNIFIED IDEOGRAPH-7350 0x7352 獒 CJK UNIFIED IDEOGRAPH-7352 0x7357 獗 CJK UNIFIED IDEOGRAPH-7357 0x7360 獠 CJK UNIFIED IDEOGRAPH-7360 0x7368 獨 CJK UNIFIED IDEOGRAPH-7368 0x7370 獰 CJK UNIFIED IDEOGRAPH-7370 0x7372 獲 CJK UNIFIED IDEOGRAPH-7372 0x7375 獵 CJK UNIFIED IDEOGRAPH-7375 0x7377 獷 CJK UNIFIED IDEOGRAPH-7377 0x7378 獸 CJK UNIFIED IDEOGRAPH-7378 0x737A 獺 CJK UNIFIED IDEOGRAPH-737A 0x737B 獻 CJK UNIFIED IDEOGRAPH-737B 0x737C 獼 CJK UNIFIED IDEOGRAPH-737C 0x737E 獾 CJK UNIFIED IDEOGRAPH-737E 0x7384 玄 CJK UNIFIED IDEOGRAPH-7384 0x7386 玆 CJK UNIFIED IDEOGRAPH-7386 0x7387 率 CJK UNIFIED IDEOGRAPH-7387 0x7389 玉 CJK UNIFIED IDEOGRAPH-7389 0x738B 王 CJK UNIFIED IDEOGRAPH-738B 0x7393 玓 CJK UNIFIED IDEOGRAPH-7393 0x7396 玖 CJK UNIFIED IDEOGRAPH-7396 0x7397 玗 CJK UNIFIED IDEOGRAPH-7397 0x739F 玟 CJK UNIFIED IDEOGRAPH-739F 0x73A0 玠 CJK UNIFIED IDEOGRAPH-73A0 0x73A5 玥 CJK UNIFIED IDEOGRAPH-73A5 0x73A8 玨 CJK UNIFIED IDEOGRAPH-73A8 0x73A9 玩 CJK UNIFIED IDEOGRAPH-73A9 0x73AB 玫 CJK UNIFIED IDEOGRAPH-73AB 0x73B2 玲 CJK UNIFIED IDEOGRAPH-73B2 0x73B3 玳 CJK UNIFIED IDEOGRAPH-73B3 0x73B7 玷 CJK UNIFIED IDEOGRAPH-73B7 0x73B9 玹 CJK UNIFIED IDEOGRAPH-73B9 0x73BB 玻 CJK UNIFIED IDEOGRAPH-73BB 0x73C0 珀 CJK UNIFIED IDEOGRAPH-73C0 0x73C2 珂 CJK UNIFIED IDEOGRAPH-73C2 0x73C5 珅 CJK UNIFIED IDEOGRAPH-73C5 0x73C8 珈 CJK UNIFIED IDEOGRAPH-73C8 0x73CA 珊 CJK UNIFIED IDEOGRAPH-73CA 0x73CD 珍 CJK UNIFIED IDEOGRAPH-73CD 0x73DE 珞 CJK UNIFIED IDEOGRAPH-73DE 0x73E0 珠 CJK UNIFIED IDEOGRAPH-73E0 0x73E3 珣 CJK UNIFIED IDEOGRAPH-73E3 0x73E5 珥 CJK UNIFIED IDEOGRAPH-73E5 0x73E9 珩 CJK UNIFIED IDEOGRAPH-73E9 0x73EA 珪 CJK UNIFIED IDEOGRAPH-73EA 0x73ED 班 CJK UNIFIED IDEOGRAPH-73ED 0x73EE 珮 CJK UNIFIED IDEOGRAPH-73EE 0x73FA 珺 CJK UNIFIED IDEOGRAPH-73FA 0x73FD 珽 CJK UNIFIED IDEOGRAPH-73FD 0x73FE 現 CJK UNIFIED IDEOGRAPH-73FE 0x7401 琁 CJK UNIFIED IDEOGRAPH-7401 0x7403 球 CJK UNIFIED IDEOGRAPH-7403 0x7404 琄 CJK UNIFIED IDEOGRAPH-7404 0x7405 琅 CJK UNIFIED IDEOGRAPH-7405 0x7406 理 CJK UNIFIED IDEOGRAPH-7406 0x7407 琇 CJK UNIFIED IDEOGRAPH-7407 0x7409 琉 CJK UNIFIED IDEOGRAPH-7409 0x740A 琊 CJK UNIFIED IDEOGRAPH-740A 0x740D 琍 CJK UNIFIED IDEOGRAPH-740D 0x741A 琚 CJK UNIFIED IDEOGRAPH-741A 0x741B 琛 CJK UNIFIED IDEOGRAPH-741B 0x7422 琢 CJK UNIFIED IDEOGRAPH-7422 0x7424 琤 CJK UNIFIED IDEOGRAPH-7424 0x7425 琥 CJK UNIFIED IDEOGRAPH-7425 0x7426 琦 CJK UNIFIED IDEOGRAPH-7426 0x7428 琨 CJK UNIFIED IDEOGRAPH-7428 0x742A 琪 CJK UNIFIED IDEOGRAPH-742A 0x742C 琬 CJK UNIFIED IDEOGRAPH-742C 0x742E 琮 CJK UNIFIED IDEOGRAPH-742E 0x7430 琰 CJK UNIFIED IDEOGRAPH-7430 0x7432 琲 CJK UNIFIED IDEOGRAPH-7432 0x7433 琳 CJK UNIFIED IDEOGRAPH-7433 0x7434 琴 CJK UNIFIED IDEOGRAPH-7434 0x7435 琵 CJK UNIFIED IDEOGRAPH-7435 0x7436 琶 CJK UNIFIED IDEOGRAPH-7436 0x743A 琺 CJK UNIFIED IDEOGRAPH-743A 0x743F 琿 CJK UNIFIED IDEOGRAPH-743F 0x7440 瑀 CJK UNIFIED IDEOGRAPH-7440 0x7441 瑁 CJK UNIFIED IDEOGRAPH-7441 0x7444 瑄 CJK UNIFIED IDEOGRAPH-7444 0x7446 瑆 CJK UNIFIED IDEOGRAPH-7446 0x744B 瑋 CJK UNIFIED IDEOGRAPH-744B 0x7455 瑕 CJK UNIFIED IDEOGRAPH-7455 0x7457 瑗 CJK UNIFIED IDEOGRAPH-7457 0x7459 瑙 CJK UNIFIED IDEOGRAPH-7459 0x745A 瑚 CJK UNIFIED IDEOGRAPH-745A 0x745B 瑛 CJK UNIFIED IDEOGRAPH-745B 0x745C 瑜 CJK UNIFIED IDEOGRAPH-745C 0x745E 瑞 CJK UNIFIED IDEOGRAPH-745E 0x745F 瑟 CJK UNIFIED IDEOGRAPH-745F 0x7462 瑢 CJK UNIFIED IDEOGRAPH-7462 0x7463 瑣 CJK UNIFIED IDEOGRAPH-7463 0x7464 瑤 CJK UNIFIED IDEOGRAPH-7464 0x7467 瑧 CJK UNIFIED IDEOGRAPH-7467 0x7469 瑩 CJK UNIFIED IDEOGRAPH-7469 0x746A 瑪 CJK UNIFIED IDEOGRAPH-746A 0x746D 瑭 CJK UNIFIED IDEOGRAPH-746D 0x746F 瑯 CJK UNIFIED IDEOGRAPH-746F 0x7470 瑰 CJK UNIFIED IDEOGRAPH-7470 0x7471 瑱 CJK UNIFIED IDEOGRAPH-7471 0x7472 瑲 CJK UNIFIED IDEOGRAPH-7472 0x747D 瑽 CJK UNIFIED IDEOGRAPH-747D 0x747E 瑾 CJK UNIFIED IDEOGRAPH-747E 0x7480 璀 CJK UNIFIED IDEOGRAPH-7480 0x7481 璁 CJK UNIFIED IDEOGRAPH-7481 0x7483 璃 CJK UNIFIED IDEOGRAPH-7483 0x7487 璇 CJK UNIFIED IDEOGRAPH-7487 0x7489 璉 CJK UNIFIED IDEOGRAPH-7489 0x748B 璋 CJK UNIFIED IDEOGRAPH-748B 0x7490 璐 CJK UNIFIED IDEOGRAPH-7490 0x7498 璘 CJK UNIFIED IDEOGRAPH-7498 0x749C 璜 CJK UNIFIED IDEOGRAPH-749C 0x749E 璞 CJK UNIFIED IDEOGRAPH-749E 0x749F 璟 CJK UNIFIED IDEOGRAPH-749F 0x74A0 璠 CJK UNIFIED IDEOGRAPH-74A0 0x74A3 璣 CJK UNIFIED IDEOGRAPH-74A3 0x74A6 璦 CJK UNIFIED IDEOGRAPH-74A6 0x74A7 璧 CJK UNIFIED IDEOGRAPH-74A7 0x74A8 璨 CJK UNIFIED IDEOGRAPH-74A8 0x74A9 璩 CJK UNIFIED IDEOGRAPH-74A9 0x74B0 環 CJK UNIFIED IDEOGRAPH-74B0 0x74BD 璽 CJK UNIFIED IDEOGRAPH-74BD 0x74BF 璿 CJK UNIFIED IDEOGRAPH-74BF 0x74CA 瓊 CJK UNIFIED IDEOGRAPH-74CA 0x74CF 瓏 CJK UNIFIED IDEOGRAPH-74CF 0x74D4 瓔 CJK UNIFIED IDEOGRAPH-74D4 0x74DA 瓚 CJK UNIFIED IDEOGRAPH-74DA 0x74DC 瓜 CJK UNIFIED IDEOGRAPH-74DC 0x74E0 瓠 CJK UNIFIED IDEOGRAPH-74E0 0x74E2 瓢 CJK UNIFIED IDEOGRAPH-74E2 0x74E3 瓣 CJK UNIFIED IDEOGRAPH-74E3 0x74E4 瓤 CJK UNIFIED IDEOGRAPH-74E4 0x74E6 瓦 CJK UNIFIED IDEOGRAPH-74E6 0x74E9 瓩 CJK UNIFIED IDEOGRAPH-74E9 0x74EE 瓮 CJK UNIFIED IDEOGRAPH-74EE 0x74F4 瓴 CJK UNIFIED IDEOGRAPH-74F4 0x74F6 瓶 CJK UNIFIED IDEOGRAPH-74F6 0x74F7 瓷 CJK UNIFIED IDEOGRAPH-74F7 0x7504 甄 CJK UNIFIED IDEOGRAPH-7504 0x750C 甌 CJK UNIFIED IDEOGRAPH-750C 0x7515 甕 CJK UNIFIED IDEOGRAPH-7515 0x7518 甘 CJK UNIFIED IDEOGRAPH-7518 0x751A 甚 CJK UNIFIED IDEOGRAPH-751A 0x751C 甜 CJK UNIFIED IDEOGRAPH-751C 0x751F 生 CJK UNIFIED IDEOGRAPH-751F 0x7521 甡 CJK UNIFIED IDEOGRAPH-7521 0x7522 產 CJK UNIFIED IDEOGRAPH-7522 0x7525 甥 CJK UNIFIED IDEOGRAPH-7525 0x7526 甦 CJK UNIFIED IDEOGRAPH-7526 0x7528 用 CJK UNIFIED IDEOGRAPH-7528 0x7529 甩 CJK UNIFIED IDEOGRAPH-7529 0x752B 甫 CJK UNIFIED IDEOGRAPH-752B 0x752C 甬 CJK UNIFIED IDEOGRAPH-752C 0x752D 甭 CJK UNIFIED IDEOGRAPH-752D 0x752F 甯 CJK UNIFIED IDEOGRAPH-752F 0x7530 田 CJK UNIFIED IDEOGRAPH-7530 0x7531 由 CJK UNIFIED IDEOGRAPH-7531 0x7532 甲 CJK UNIFIED IDEOGRAPH-7532 0x7533 申 CJK UNIFIED IDEOGRAPH-7533 0x7537 男 CJK UNIFIED IDEOGRAPH-7537 0x7538 甸 CJK UNIFIED IDEOGRAPH-7538 0x753A 町 CJK UNIFIED IDEOGRAPH-753A 0x753E 甾 CJK UNIFIED IDEOGRAPH-753E 0x7540 畀 CJK UNIFIED IDEOGRAPH-7540 0x7547 畇 CJK UNIFIED IDEOGRAPH-7547 0x754B 畋 CJK UNIFIED IDEOGRAPH-754B 0x754C 界 CJK UNIFIED IDEOGRAPH-754C 0x754F 畏 CJK UNIFIED IDEOGRAPH-754F 0x7554 畔 CJK UNIFIED IDEOGRAPH-7554 0x7559 留 CJK UNIFIED IDEOGRAPH-7559 0x755A 畚 CJK UNIFIED IDEOGRAPH-755A 0x755C 畜 CJK UNIFIED IDEOGRAPH-755C 0x755D 畝 CJK UNIFIED IDEOGRAPH-755D 0x7562 畢 CJK UNIFIED IDEOGRAPH-7562 0x7565 略 CJK UNIFIED IDEOGRAPH-7565 0x7566 畦 CJK UNIFIED IDEOGRAPH-7566 0x756A 番 CJK UNIFIED IDEOGRAPH-756A 0x756B 畫 CJK UNIFIED IDEOGRAPH-756B 0x756C 畬 CJK UNIFIED IDEOGRAPH-756C 0x756F 畯 CJK UNIFIED IDEOGRAPH-756F 0x7570 異 CJK UNIFIED IDEOGRAPH-7570 0x7576 當 CJK UNIFIED IDEOGRAPH-7576 0x7578 畸 CJK UNIFIED IDEOGRAPH-7578 0x757F 畿 CJK UNIFIED IDEOGRAPH-757F 0x7586 疆 CJK UNIFIED IDEOGRAPH-7586 0x7587 疇 CJK UNIFIED IDEOGRAPH-7587 0x758A 疊 CJK UNIFIED IDEOGRAPH-758A 0x758B 疋 CJK UNIFIED IDEOGRAPH-758B 0x758F 疏 CJK UNIFIED IDEOGRAPH-758F 0x7591 疑 CJK UNIFIED IDEOGRAPH-7591 0x7594 疔 CJK UNIFIED IDEOGRAPH-7594 0x7599 疙 CJK UNIFIED IDEOGRAPH-7599 0x759A 疚 CJK UNIFIED IDEOGRAPH-759A 0x759D 疝 CJK UNIFIED IDEOGRAPH-759D 0x75A3 疣 CJK UNIFIED IDEOGRAPH-75A3 0x75A4 疤 CJK UNIFIED IDEOGRAPH-75A4 0x75A5 疥 CJK UNIFIED IDEOGRAPH-75A5 0x75AA 疪 CJK UNIFIED IDEOGRAPH-75AA 0x75AB 疫 CJK UNIFIED IDEOGRAPH-75AB 0x75B2 疲 CJK UNIFIED IDEOGRAPH-75B2 0x75B3 疳 CJK UNIFIED IDEOGRAPH-75B3 0x75B5 疵 CJK UNIFIED IDEOGRAPH-75B5 0x75B8 疸 CJK UNIFIED IDEOGRAPH-75B8 0x75B9 疹 CJK UNIFIED IDEOGRAPH-75B9 0x75BC 疼 CJK UNIFIED IDEOGRAPH-75BC 0x75BD 疽 CJK UNIFIED IDEOGRAPH-75BD 0x75BE 疾 CJK UNIFIED IDEOGRAPH-75BE 0x75C2 痂 CJK UNIFIED IDEOGRAPH-75C2 0x75C5 病 CJK UNIFIED IDEOGRAPH-75C5 0x75C7 症 CJK UNIFIED IDEOGRAPH-75C7 0x75CA 痊 CJK UNIFIED IDEOGRAPH-75CA 0x75CD 痍 CJK UNIFIED IDEOGRAPH-75CD 0x75D2 痒 CJK UNIFIED IDEOGRAPH-75D2 0x75D4 痔 CJK UNIFIED IDEOGRAPH-75D4 0x75D5 痕 CJK UNIFIED IDEOGRAPH-75D5 0x75D8 痘 CJK UNIFIED IDEOGRAPH-75D8 0x75D9 痙 CJK UNIFIED IDEOGRAPH-75D9 0x75DB 痛 CJK UNIFIED IDEOGRAPH-75DB 0x75DE 痞 CJK UNIFIED IDEOGRAPH-75DE 0x75E0 痠 CJK UNIFIED IDEOGRAPH-75E0 0x75E2 痢 CJK UNIFIED IDEOGRAPH-75E2 0x75E3 痣 CJK UNIFIED IDEOGRAPH-75E3 0x75E4 痤 CJK UNIFIED IDEOGRAPH-75E4 0x75E7 痧 CJK UNIFIED IDEOGRAPH-75E7 0x75F0 痰 CJK UNIFIED IDEOGRAPH-75F0 0x75F1 痱 CJK UNIFIED IDEOGRAPH-75F1 0x75F2 痲 CJK UNIFIED IDEOGRAPH-75F2 0x75F4 痴 CJK UNIFIED IDEOGRAPH-75F4 0x75F9 痹 CJK UNIFIED IDEOGRAPH-75F9 0x75FA 痺 CJK UNIFIED IDEOGRAPH-75FA 0x75FC 痼 CJK UNIFIED IDEOGRAPH-75FC 0x75FE 痾 CJK UNIFIED IDEOGRAPH-75FE 0x75FF 痿 CJK UNIFIED IDEOGRAPH-75FF 0x7600 瘀 CJK UNIFIED IDEOGRAPH-7600 0x7601 瘁 CJK UNIFIED IDEOGRAPH-7601 0x7609 瘉 CJK UNIFIED IDEOGRAPH-7609 0x760A 瘊 CJK UNIFIED IDEOGRAPH-760A 0x760B 瘋 CJK UNIFIED IDEOGRAPH-760B 0x760D 瘍 CJK UNIFIED IDEOGRAPH-760D 0x7613 瘓 CJK UNIFIED IDEOGRAPH-7613 0x7619 瘙 CJK UNIFIED IDEOGRAPH-7619 0x761C 瘜 CJK UNIFIED IDEOGRAPH-761C 0x761F 瘟 CJK UNIFIED IDEOGRAPH-761F 0x7620 瘠 CJK UNIFIED IDEOGRAPH-7620 0x7621 瘡 CJK UNIFIED IDEOGRAPH-7621 0x7622 瘢 CJK UNIFIED IDEOGRAPH-7622 0x7624 瘤 CJK UNIFIED IDEOGRAPH-7624 0x7626 瘦 CJK UNIFIED IDEOGRAPH-7626 0x7627 瘧 CJK UNIFIED IDEOGRAPH-7627 0x7629 瘩 CJK UNIFIED IDEOGRAPH-7629 0x7630 瘰 CJK UNIFIED IDEOGRAPH-7630 0x7634 瘴 CJK UNIFIED IDEOGRAPH-7634 0x7638 瘸 CJK UNIFIED IDEOGRAPH-7638 0x763A 瘺 CJK UNIFIED IDEOGRAPH-763A 0x7642 療 CJK UNIFIED IDEOGRAPH-7642 0x7646 癆 CJK UNIFIED IDEOGRAPH-7646 0x7647 癇 CJK UNIFIED IDEOGRAPH-7647 0x7648 癈 CJK UNIFIED IDEOGRAPH-7648 0x764C 癌 CJK UNIFIED IDEOGRAPH-764C 0x7652 癒 CJK UNIFIED IDEOGRAPH-7652 0x7656 癖 CJK UNIFIED IDEOGRAPH-7656 0x7658 癘 CJK UNIFIED IDEOGRAPH-7658 0x765C 癜 CJK UNIFIED IDEOGRAPH-765C 0x765F 癟 CJK UNIFIED IDEOGRAPH-765F 0x7661 癡 CJK UNIFIED IDEOGRAPH-7661 0x7662 癢 CJK UNIFIED IDEOGRAPH-7662 0x7664 癤 CJK UNIFIED IDEOGRAPH-7664 0x7665 癥 CJK UNIFIED IDEOGRAPH-7665 0x7669 癩 CJK UNIFIED IDEOGRAPH-7669 0x766C 癬 CJK UNIFIED IDEOGRAPH-766C 0x766D 癭 CJK UNIFIED IDEOGRAPH-766D 0x766E 癮 CJK UNIFIED IDEOGRAPH-766E 0x7670 癰 CJK UNIFIED IDEOGRAPH-7670 0x7671 癱 CJK UNIFIED IDEOGRAPH-7671 0x7672 癲 CJK UNIFIED IDEOGRAPH-7672 0x7678 癸 CJK UNIFIED IDEOGRAPH-7678 0x767B 登 CJK UNIFIED IDEOGRAPH-767B 0x767C 發 CJK UNIFIED IDEOGRAPH-767C 0x767D 白 CJK UNIFIED IDEOGRAPH-767D 0x767E 百 CJK UNIFIED IDEOGRAPH-767E 0x7681 皁 CJK UNIFIED IDEOGRAPH-7681 0x7682 皂 CJK UNIFIED IDEOGRAPH-7682 0x7684 的 CJK UNIFIED IDEOGRAPH-7684 0x7686 皆 CJK UNIFIED IDEOGRAPH-7686 0x7687 皇 CJK UNIFIED IDEOGRAPH-7687 0x7688 皈 CJK UNIFIED IDEOGRAPH-7688 0x768B 皋 CJK UNIFIED IDEOGRAPH-768B 0x768E 皎 CJK UNIFIED IDEOGRAPH-768E 0x7693 皓 CJK UNIFIED IDEOGRAPH-7693 0x7696 皖 CJK UNIFIED IDEOGRAPH-7696 0x7699 皙 CJK UNIFIED IDEOGRAPH-7699 0x769A 皚 CJK UNIFIED IDEOGRAPH-769A 0x76AE 皮 CJK UNIFIED IDEOGRAPH-76AE 0x76B0 皰 CJK UNIFIED IDEOGRAPH-76B0 0x76B4 皴 CJK UNIFIED IDEOGRAPH-76B4 0x76B8 皸 CJK UNIFIED IDEOGRAPH-76B8 0x76BA 皺 CJK UNIFIED IDEOGRAPH-76BA 0x76BF 皿 CJK UNIFIED IDEOGRAPH-76BF 0x76C2 盂 CJK UNIFIED IDEOGRAPH-76C2 0x76C3 盃 CJK UNIFIED IDEOGRAPH-76C3 0x76C5 盅 CJK UNIFIED IDEOGRAPH-76C5 0x76C6 盆 CJK UNIFIED IDEOGRAPH-76C6 0x76C8 盈 CJK UNIFIED IDEOGRAPH-76C8 0x76CA 益 CJK UNIFIED IDEOGRAPH-76CA 0x76CE 盎 CJK UNIFIED IDEOGRAPH-76CE 0x76D2 盒 CJK UNIFIED IDEOGRAPH-76D2 0x76D4 盔 CJK UNIFIED IDEOGRAPH-76D4 0x76DB 盛 CJK UNIFIED IDEOGRAPH-76DB 0x76DC 盜 CJK UNIFIED IDEOGRAPH-76DC 0x76DE 盞 CJK UNIFIED IDEOGRAPH-76DE 0x76DF 盟 CJK UNIFIED IDEOGRAPH-76DF 0x76E1 盡 CJK UNIFIED IDEOGRAPH-76E1 0x76E3 監 CJK UNIFIED IDEOGRAPH-76E3 0x76E4 盤 CJK UNIFIED IDEOGRAPH-76E4 0x76E5 盥 CJK UNIFIED IDEOGRAPH-76E5 0x76E7 盧 CJK UNIFIED IDEOGRAPH-76E7 0x76EA 盪 CJK UNIFIED IDEOGRAPH-76EA 0x76EE 目 CJK UNIFIED IDEOGRAPH-76EE 0x76EF 盯 CJK UNIFIED IDEOGRAPH-76EF 0x76F2 盲 CJK UNIFIED IDEOGRAPH-76F2 0x76F4 直 CJK UNIFIED IDEOGRAPH-76F4 0x76F8 相 CJK UNIFIED IDEOGRAPH-76F8 0x76F9 盹 CJK UNIFIED IDEOGRAPH-76F9 0x76FC 盼 CJK UNIFIED IDEOGRAPH-76FC 0x76FE 盾 CJK UNIFIED IDEOGRAPH-76FE 0x7701 省 CJK UNIFIED IDEOGRAPH-7701 0x7708 眈 CJK UNIFIED IDEOGRAPH-7708 0x7709 眉 CJK UNIFIED IDEOGRAPH-7709 0x770B 看 CJK UNIFIED IDEOGRAPH-770B 0x771F 真 CJK UNIFIED IDEOGRAPH-771F 0x7720 眠 CJK UNIFIED IDEOGRAPH-7720 0x7725 眥 CJK UNIFIED IDEOGRAPH-7725 0x7728 眨 CJK UNIFIED IDEOGRAPH-7728 0x7729 眩 CJK UNIFIED IDEOGRAPH-7729 0x772D 眭 CJK UNIFIED IDEOGRAPH-772D 0x772F 眯 CJK UNIFIED IDEOGRAPH-772F 0x7736 眶 CJK UNIFIED IDEOGRAPH-7736 0x7737 眷 CJK UNIFIED IDEOGRAPH-7737 0x7738 眸 CJK UNIFIED IDEOGRAPH-7738 0x773A 眺 CJK UNIFIED IDEOGRAPH-773A 0x773C 眼 CJK UNIFIED IDEOGRAPH-773C 0x773E 眾 CJK UNIFIED IDEOGRAPH-773E 0x7747 睇 CJK UNIFIED IDEOGRAPH-7747 0x774E 睎 CJK UNIFIED IDEOGRAPH-774E 0x774F 睏 CJK UNIFIED IDEOGRAPH-774F 0x775A 睚 CJK UNIFIED IDEOGRAPH-775A 0x775B 睛 CJK UNIFIED IDEOGRAPH-775B 0x775C 睜 CJK UNIFIED IDEOGRAPH-775C 0x775E 睞 CJK UNIFIED IDEOGRAPH-775E 0x7761 睡 CJK UNIFIED IDEOGRAPH-7761 0x7762 睢 CJK UNIFIED IDEOGRAPH-7762 0x7763 督 CJK UNIFIED IDEOGRAPH-7763 0x7765 睥 CJK UNIFIED IDEOGRAPH-7765 0x7766 睦 CJK UNIFIED IDEOGRAPH-7766 0x7768 睨 CJK UNIFIED IDEOGRAPH-7768 0x776A 睪 CJK UNIFIED IDEOGRAPH-776A 0x776B 睫 CJK UNIFIED IDEOGRAPH-776B 0x776C 睬 CJK UNIFIED IDEOGRAPH-776C 0x7779 睹 CJK UNIFIED IDEOGRAPH-7779 0x777D 睽 CJK UNIFIED IDEOGRAPH-777D 0x777E 睾 CJK UNIFIED IDEOGRAPH-777E 0x777F 睿 CJK UNIFIED IDEOGRAPH-777F 0x7784 瞄 CJK UNIFIED IDEOGRAPH-7784 0x7785 瞅 CJK UNIFIED IDEOGRAPH-7785 0x7787 瞇 CJK UNIFIED IDEOGRAPH-7787 0x778B 瞋 CJK UNIFIED IDEOGRAPH-778B 0x778C 瞌 CJK UNIFIED IDEOGRAPH-778C 0x778E 瞎 CJK UNIFIED IDEOGRAPH-778E 0x7791 瞑 CJK UNIFIED IDEOGRAPH-7791 0x779C 瞜 CJK UNIFIED IDEOGRAPH-779C 0x779E 瞞 CJK UNIFIED IDEOGRAPH-779E 0x779F 瞟 CJK UNIFIED IDEOGRAPH-779F 0x77A0 瞠 CJK UNIFIED IDEOGRAPH-77A0 0x77A5 瞥 CJK UNIFIED IDEOGRAPH-77A5 0x77A7 瞧 CJK UNIFIED IDEOGRAPH-77A7 0x77AA 瞪 CJK UNIFIED IDEOGRAPH-77AA 0x77AC 瞬 CJK UNIFIED IDEOGRAPH-77AC 0x77AD 瞭 CJK UNIFIED IDEOGRAPH-77AD 0x77B0 瞰 CJK UNIFIED IDEOGRAPH-77B0 0x77B3 瞳 CJK UNIFIED IDEOGRAPH-77B3 0x77BB 瞻 CJK UNIFIED IDEOGRAPH-77BB 0x77BC 瞼 CJK UNIFIED IDEOGRAPH-77BC 0x77BF 瞿 CJK UNIFIED IDEOGRAPH-77BF 0x77C7 矇 CJK UNIFIED IDEOGRAPH-77C7 0x77D3 矓 CJK UNIFIED IDEOGRAPH-77D3 0x77D7 矗 CJK UNIFIED IDEOGRAPH-77D7 0x77DA 矚 CJK UNIFIED IDEOGRAPH-77DA 0x77DB 矛 CJK UNIFIED IDEOGRAPH-77DB 0x77DC 矜 CJK UNIFIED IDEOGRAPH-77DC 0x77E2 矢 CJK UNIFIED IDEOGRAPH-77E2 0x77E3 矣 CJK UNIFIED IDEOGRAPH-77E3 0x77E5 知 CJK UNIFIED IDEOGRAPH-77E5 0x77E9 矩 CJK UNIFIED IDEOGRAPH-77E9 0x77ED 短 CJK UNIFIED IDEOGRAPH-77ED 0x77EE 矮 CJK UNIFIED IDEOGRAPH-77EE 0x77EF 矯 CJK UNIFIED IDEOGRAPH-77EF 0x77F3 石 CJK UNIFIED IDEOGRAPH-77F3 0x77F8 矸 CJK UNIFIED IDEOGRAPH-77F8 0x77FD 矽 CJK UNIFIED IDEOGRAPH-77FD 0x7802 砂 CJK UNIFIED IDEOGRAPH-7802 0x7805 砅 CJK UNIFIED IDEOGRAPH-7805 0x780C 砌 CJK UNIFIED IDEOGRAPH-780C 0x780D 砍 CJK UNIFIED IDEOGRAPH-780D 0x7812 砒 CJK UNIFIED IDEOGRAPH-7812 0x7814 研 CJK UNIFIED IDEOGRAPH-7814 0x781D 砝 CJK UNIFIED IDEOGRAPH-781D 0x7823 砣 CJK UNIFIED IDEOGRAPH-7823 0x7825 砥 CJK UNIFIED IDEOGRAPH-7825 0x7826 砦 CJK UNIFIED IDEOGRAPH-7826 0x7827 砧 CJK UNIFIED IDEOGRAPH-7827 0x782D 砭 CJK UNIFIED IDEOGRAPH-782D 0x7830 砰 CJK UNIFIED IDEOGRAPH-7830 0x7832 砲 CJK UNIFIED IDEOGRAPH-7832 0x7834 破 CJK UNIFIED IDEOGRAPH-7834 0x7835 砵 CJK UNIFIED IDEOGRAPH-7835 0x7837 砷 CJK UNIFIED IDEOGRAPH-7837 0x7838 砸 CJK UNIFIED IDEOGRAPH-7838 0x7843 硃 CJK UNIFIED IDEOGRAPH-7843 0x7845 硅 CJK UNIFIED IDEOGRAPH-7845 0x784C 硌 CJK UNIFIED IDEOGRAPH-784C 0x7850 硐 CJK UNIFIED IDEOGRAPH-7850 0x7852 硒 CJK UNIFIED IDEOGRAPH-7852 0x785D 硝 CJK UNIFIED IDEOGRAPH-785D 0x7864 硤 CJK UNIFIED IDEOGRAPH-7864 0x7868 硨 CJK UNIFIED IDEOGRAPH-7868 0x786B 硫 CJK UNIFIED IDEOGRAPH-786B 0x786C 硬 CJK UNIFIED IDEOGRAPH-786C 0x786E 确 CJK UNIFIED IDEOGRAPH-786E 0x786F 硯 CJK UNIFIED IDEOGRAPH-786F 0x787C 硼 CJK UNIFIED IDEOGRAPH-787C 0x7881 碁 CJK UNIFIED IDEOGRAPH-7881 0x7887 碇 CJK UNIFIED IDEOGRAPH-7887 0x7889 碉 CJK UNIFIED IDEOGRAPH-7889 0x788C 碌 CJK UNIFIED IDEOGRAPH-788C 0x788E 碎 CJK UNIFIED IDEOGRAPH-788E 0x7891 碑 CJK UNIFIED IDEOGRAPH-7891 0x7893 碓 CJK UNIFIED IDEOGRAPH-7893 0x7897 碗 CJK UNIFIED IDEOGRAPH-7897 0x7898 碘 CJK UNIFIED IDEOGRAPH-7898 0x789F 碟 CJK UNIFIED IDEOGRAPH-789F 0x78A3 碣 CJK UNIFIED IDEOGRAPH-78A3 0x78A7 碧 CJK UNIFIED IDEOGRAPH-78A7 0x78A9 碩 CJK UNIFIED IDEOGRAPH-78A9 0x78B0 碰 CJK UNIFIED IDEOGRAPH-78B0 0x78B3 碳 CJK UNIFIED IDEOGRAPH-78B3 0x78B4 碴 CJK UNIFIED IDEOGRAPH-78B4 0x78BA 確 CJK UNIFIED IDEOGRAPH-78BA 0x78BC 碼 CJK UNIFIED IDEOGRAPH-78BC 0x78BE 碾 CJK UNIFIED IDEOGRAPH-78BE 0x78C1 磁 CJK UNIFIED IDEOGRAPH-78C1 0x78C5 磅 CJK UNIFIED IDEOGRAPH-78C5 0x78CA 磊 CJK UNIFIED IDEOGRAPH-78CA 0x78CB 磋 CJK UNIFIED IDEOGRAPH-78CB 0x78D0 磐 CJK UNIFIED IDEOGRAPH-78D0 0x78D5 磕 CJK UNIFIED IDEOGRAPH-78D5 0x78DA 磚 CJK UNIFIED IDEOGRAPH-78DA 0x78E1 磡 CJK UNIFIED IDEOGRAPH-78E1 0x78E3 磣 CJK UNIFIED IDEOGRAPH-78E3 0x78E8 磨 CJK UNIFIED IDEOGRAPH-78E8 0x78EC 磬 CJK UNIFIED IDEOGRAPH-78EC 0x78EF 磯 CJK UNIFIED IDEOGRAPH-78EF 0x78F2 磲 CJK UNIFIED IDEOGRAPH-78F2 0x78F7 磷 CJK UNIFIED IDEOGRAPH-78F7 0x78FA 磺 CJK UNIFIED IDEOGRAPH-78FA 0x7901 礁 CJK UNIFIED IDEOGRAPH-7901 0x790E 礎 CJK UNIFIED IDEOGRAPH-790E 0x7911 礑 CJK UNIFIED IDEOGRAPH-7911 0x7919 礙 CJK UNIFIED IDEOGRAPH-7919 0x7921 礡 CJK UNIFIED IDEOGRAPH-7921 0x7926 礦 CJK UNIFIED IDEOGRAPH-7926 0x792A 礪 CJK UNIFIED IDEOGRAPH-792A 0x792B 礫 CJK UNIFIED IDEOGRAPH-792B 0x792C 礬 CJK UNIFIED IDEOGRAPH-792C 0x793A 示 CJK UNIFIED IDEOGRAPH-793A 0x793D 礽 CJK UNIFIED IDEOGRAPH-793D 0x793E 社 CJK UNIFIED IDEOGRAPH-793E 0x7940 祀 CJK UNIFIED IDEOGRAPH-7940 0x7941 祁 CJK UNIFIED IDEOGRAPH-7941 0x7942 祂 CJK UNIFIED IDEOGRAPH-7942 0x7947 祇 CJK UNIFIED IDEOGRAPH-7947 0x7948 祈 CJK UNIFIED IDEOGRAPH-7948 0x7949 祉 CJK UNIFIED IDEOGRAPH-7949 0x7950 祐 CJK UNIFIED IDEOGRAPH-7950 0x7955 祕 CJK UNIFIED IDEOGRAPH-7955 0x7956 祖 CJK UNIFIED IDEOGRAPH-7956 0x7957 祗 CJK UNIFIED IDEOGRAPH-7957 0x795A 祚 CJK UNIFIED IDEOGRAPH-795A 0x795B 祛 CJK UNIFIED IDEOGRAPH-795B 0x795C 祜 CJK UNIFIED IDEOGRAPH-795C 0x795D 祝 CJK UNIFIED IDEOGRAPH-795D 0x795E 神 CJK UNIFIED IDEOGRAPH-795E 0x795F 祟 CJK UNIFIED IDEOGRAPH-795F 0x7960 祠 CJK UNIFIED IDEOGRAPH-7960 0x7965 祥 CJK UNIFIED IDEOGRAPH-7965 0x7968 票 CJK UNIFIED IDEOGRAPH-7968 0x796D 祭 CJK UNIFIED IDEOGRAPH-796D 0x797A 祺 CJK UNIFIED IDEOGRAPH-797A 0x797C 祼 CJK UNIFIED IDEOGRAPH-797C 0x797F 祿 CJK UNIFIED IDEOGRAPH-797F 0x7981 禁 CJK UNIFIED IDEOGRAPH-7981 0x798D 禍 CJK UNIFIED IDEOGRAPH-798D 0x798E 禎 CJK UNIFIED IDEOGRAPH-798E 0x798F 福 CJK UNIFIED IDEOGRAPH-798F 0x7993 禓 CJK UNIFIED IDEOGRAPH-7993 0x7994 禔 CJK UNIFIED IDEOGRAPH-7994 0x7995 禕 CJK UNIFIED IDEOGRAPH-7995 0x799B 禛 CJK UNIFIED IDEOGRAPH-799B 0x79A4 禤 CJK UNIFIED IDEOGRAPH-79A4 0x79A6 禦 CJK UNIFIED IDEOGRAPH-79A6 0x79A7 禧 CJK UNIFIED IDEOGRAPH-79A7 0x79AA 禪 CJK UNIFIED IDEOGRAPH-79AA 0x79AE 禮 CJK UNIFIED IDEOGRAPH-79AE 0x79B0 禰 CJK UNIFIED IDEOGRAPH-79B0 0x79B1 禱 CJK UNIFIED IDEOGRAPH-79B1 0x79B3 禳 CJK UNIFIED IDEOGRAPH-79B3 0x79B9 禹 CJK UNIFIED IDEOGRAPH-79B9 0x79BA 禺 CJK UNIFIED IDEOGRAPH-79BA 0x79BB 离 CJK UNIFIED IDEOGRAPH-79BB 0x79BD 禽 CJK UNIFIED IDEOGRAPH-79BD 0x79BE 禾 CJK UNIFIED IDEOGRAPH-79BE 0x79BF 禿 CJK UNIFIED IDEOGRAPH-79BF 0x79C0 秀 CJK UNIFIED IDEOGRAPH-79C0 0x79C1 私 CJK UNIFIED IDEOGRAPH-79C1 0x79C8 秈 CJK UNIFIED IDEOGRAPH-79C8 0x79C9 秉 CJK UNIFIED IDEOGRAPH-79C9 0x79CB 秋 CJK UNIFIED IDEOGRAPH-79CB 0x79CD 种 CJK UNIFIED IDEOGRAPH-79CD 0x79CF 秏 CJK UNIFIED IDEOGRAPH-79CF 0x79D1 科 CJK UNIFIED IDEOGRAPH-79D1 0x79D2 秒 CJK UNIFIED IDEOGRAPH-79D2 0x79D8 秘 CJK UNIFIED IDEOGRAPH-79D8 0x79DD 秝 CJK UNIFIED IDEOGRAPH-79DD 0x79DF 租 CJK UNIFIED IDEOGRAPH-79DF 0x79E3 秣 CJK UNIFIED IDEOGRAPH-79E3 0x79E4 秤 CJK UNIFIED IDEOGRAPH-79E4 0x79E6 秦 CJK UNIFIED IDEOGRAPH-79E6 0x79E7 秧 CJK UNIFIED IDEOGRAPH-79E7 0x79E9 秩 CJK UNIFIED IDEOGRAPH-79E9 0x79F8 秸 CJK UNIFIED IDEOGRAPH-79F8 0x79FB 移 CJK UNIFIED IDEOGRAPH-79FB 0x7A00 稀 CJK UNIFIED IDEOGRAPH-7A00 0x7A05 稅 CJK UNIFIED IDEOGRAPH-7A05 0x7A08 稈 CJK UNIFIED IDEOGRAPH-7A08 0x7A0B 程 CJK UNIFIED IDEOGRAPH-7A0B 0x7A0D 稍 CJK UNIFIED IDEOGRAPH-7A0D 0x7A14 稔 CJK UNIFIED IDEOGRAPH-7A14 0x7A17 稗 CJK UNIFIED IDEOGRAPH-7A17 0x7A1A 稚 CJK UNIFIED IDEOGRAPH-7A1A 0x7A1C 稜 CJK UNIFIED IDEOGRAPH-7A1C 0x7A1E 稞 CJK UNIFIED IDEOGRAPH-7A1E 0x7A1F 稟 CJK UNIFIED IDEOGRAPH-7A1F 0x7A20 稠 CJK UNIFIED IDEOGRAPH-7A20 0x7A2E 種 CJK UNIFIED IDEOGRAPH-7A2E 0x7A31 稱 CJK UNIFIED IDEOGRAPH-7A31 0x7A37 稷 CJK UNIFIED IDEOGRAPH-7A37 0x7A39 稹 CJK UNIFIED IDEOGRAPH-7A39 0x7A3B 稻 CJK UNIFIED IDEOGRAPH-7A3B 0x7A3C 稼 CJK UNIFIED IDEOGRAPH-7A3C 0x7A3D 稽 CJK UNIFIED IDEOGRAPH-7A3D 0x7A3F 稿 CJK UNIFIED IDEOGRAPH-7A3F 0x7A40 穀 CJK UNIFIED IDEOGRAPH-7A40 0x7A46 穆 CJK UNIFIED IDEOGRAPH-7A46 0x7A4C 穌 CJK UNIFIED IDEOGRAPH-7A4C 0x7A4D 積 CJK UNIFIED IDEOGRAPH-7A4D 0x7A4E 穎 CJK UNIFIED IDEOGRAPH-7A4E 0x7A57 穗 CJK UNIFIED IDEOGRAPH-7A57 0x7A60 穠 CJK UNIFIED IDEOGRAPH-7A60 0x7A62 穢 CJK UNIFIED IDEOGRAPH-7A62 0x7A69 穩 CJK UNIFIED IDEOGRAPH-7A69 0x7A6B 穫 CJK UNIFIED IDEOGRAPH-7A6B 0x7A70 穰 CJK UNIFIED IDEOGRAPH-7A70 0x7A74 穴 CJK UNIFIED IDEOGRAPH-7A74 0x7A76 究 CJK UNIFIED IDEOGRAPH-7A76 0x7A79 穹 CJK UNIFIED IDEOGRAPH-7A79 0x7A7A 空 CJK UNIFIED IDEOGRAPH-7A7A 0x7A7F 穿 CJK UNIFIED IDEOGRAPH-7A7F 0x7A81 突 CJK UNIFIED IDEOGRAPH-7A81 0x7A84 窄 CJK UNIFIED IDEOGRAPH-7A84 0x7A88 窈 CJK UNIFIED IDEOGRAPH-7A88 0x7A92 窒 CJK UNIFIED IDEOGRAPH-7A92 0x7A95 窕 CJK UNIFIED IDEOGRAPH-7A95 0x7A96 窖 CJK UNIFIED IDEOGRAPH-7A96 0x7A97 窗 CJK UNIFIED IDEOGRAPH-7A97 0x7A98 窘 CJK UNIFIED IDEOGRAPH-7A98 0x7A9F 窟 CJK UNIFIED IDEOGRAPH-7A9F 0x7AA0 窠 CJK UNIFIED IDEOGRAPH-7AA0 0x7AA3 窣 CJK UNIFIED IDEOGRAPH-7AA3 0x7AA9 窩 CJK UNIFIED IDEOGRAPH-7AA9 0x7AAA 窪 CJK UNIFIED IDEOGRAPH-7AAA 0x7AAE 窮 CJK UNIFIED IDEOGRAPH-7AAE 0x7AAF 窯 CJK UNIFIED IDEOGRAPH-7AAF 0x7AB3 窳 CJK UNIFIED IDEOGRAPH-7AB3 0x7AB8 窸 CJK UNIFIED IDEOGRAPH-7AB8 0x7ABA 窺 CJK UNIFIED IDEOGRAPH-7ABA 0x7ABF 窿 CJK UNIFIED IDEOGRAPH-7ABF 0x7AC4 竄 CJK UNIFIED IDEOGRAPH-7AC4 0x7AC5 竅 CJK UNIFIED IDEOGRAPH-7AC5 0x7AC7 竇 CJK UNIFIED IDEOGRAPH-7AC7 0x7ACA 竊 CJK UNIFIED IDEOGRAPH-7ACA 0x7ACB 立 CJK UNIFIED IDEOGRAPH-7ACB 0x7AD1 竑 CJK UNIFIED IDEOGRAPH-7AD1 0x7AD9 站 CJK UNIFIED IDEOGRAPH-7AD9 0x7ADF 竟 CJK UNIFIED IDEOGRAPH-7ADF 0x7AE0 章 CJK UNIFIED IDEOGRAPH-7AE0 0x7AE3 竣 CJK UNIFIED IDEOGRAPH-7AE3 0x7AE4 竤 CJK UNIFIED IDEOGRAPH-7AE4 0x7AE5 童 CJK UNIFIED IDEOGRAPH-7AE5 0x7AED 竭 CJK UNIFIED IDEOGRAPH-7AED 0x7AEF 端 CJK UNIFIED IDEOGRAPH-7AEF 0x7AF6 競 CJK UNIFIED IDEOGRAPH-7AF6 0x7AF9 竹 CJK UNIFIED IDEOGRAPH-7AF9 0x7AFA 竺 CJK UNIFIED IDEOGRAPH-7AFA 0x7AFD 竽 CJK UNIFIED IDEOGRAPH-7AFD 0x7AFF 竿 CJK UNIFIED IDEOGRAPH-7AFF 0x7B04 笄 CJK UNIFIED IDEOGRAPH-7B04 0x7B06 笆 CJK UNIFIED IDEOGRAPH-7B06 0x7B08 笈 CJK UNIFIED IDEOGRAPH-7B08 0x7B0F 笏 CJK UNIFIED IDEOGRAPH-7B0F 0x7B11 笑 CJK UNIFIED IDEOGRAPH-7B11 0x7B19 笙 CJK UNIFIED IDEOGRAPH-7B19 0x7B1B 笛 CJK UNIFIED IDEOGRAPH-7B1B 0x7B1E 笞 CJK UNIFIED IDEOGRAPH-7B1E 0x7B20 笠 CJK UNIFIED IDEOGRAPH-7B20 0x7B26 符 CJK UNIFIED IDEOGRAPH-7B26 0x7B28 笨 CJK UNIFIED IDEOGRAPH-7B28 0x7B2C 第 CJK UNIFIED IDEOGRAPH-7B2C 0x7B2D 笭 CJK UNIFIED IDEOGRAPH-7B2D 0x7B33 笳 CJK UNIFIED IDEOGRAPH-7B33 0x7B46 筆 CJK UNIFIED IDEOGRAPH-7B46 0x7B49 等 CJK UNIFIED IDEOGRAPH-7B49 0x7B4A 筊 CJK UNIFIED IDEOGRAPH-7B4A 0x7B4B 筋 CJK UNIFIED IDEOGRAPH-7B4B 0x7B4C 筌 CJK UNIFIED IDEOGRAPH-7B4C 0x7B4D 筍 CJK UNIFIED IDEOGRAPH-7B4D 0x7B4F 筏 CJK UNIFIED IDEOGRAPH-7B4F 0x7B50 筐 CJK UNIFIED IDEOGRAPH-7B50 0x7B51 筑 CJK UNIFIED IDEOGRAPH-7B51 0x7B52 筒 CJK UNIFIED IDEOGRAPH-7B52 0x7B54 答 CJK UNIFIED IDEOGRAPH-7B54 0x7B56 策 CJK UNIFIED IDEOGRAPH-7B56 0x7B60 筠 CJK UNIFIED IDEOGRAPH-7B60 0x7B67 筧 CJK UNIFIED IDEOGRAPH-7B67 0x7B6E 筮 CJK UNIFIED IDEOGRAPH-7B6E 0x7B71 筱 CJK UNIFIED IDEOGRAPH-7B71 0x7B72 筲 CJK UNIFIED IDEOGRAPH-7B72 0x7B74 筴 CJK UNIFIED IDEOGRAPH-7B74 0x7B75 筵 CJK UNIFIED IDEOGRAPH-7B75 0x7B77 筷 CJK UNIFIED IDEOGRAPH-7B77 0x7B80 简 CJK UNIFIED IDEOGRAPH-7B80 0x7B87 箇 CJK UNIFIED IDEOGRAPH-7B87 0x7B8B 箋 CJK UNIFIED IDEOGRAPH-7B8B 0x7B8D 箍 CJK UNIFIED IDEOGRAPH-7B8D 0x7B8F 箏 CJK UNIFIED IDEOGRAPH-7B8F 0x7B90 箐 CJK UNIFIED IDEOGRAPH-7B90 0x7B94 箔 CJK UNIFIED IDEOGRAPH-7B94 0x7B95 箕 CJK UNIFIED IDEOGRAPH-7B95 0x7B96 箖 CJK UNIFIED IDEOGRAPH-7B96 0x7B97 算 CJK UNIFIED IDEOGRAPH-7B97 0x7B9D 箝 CJK UNIFIED IDEOGRAPH-7B9D 0x7BA1 管 CJK UNIFIED IDEOGRAPH-7BA1 0x7BAC 箬 CJK UNIFIED IDEOGRAPH-7BAC 0x7BAD 箭 CJK UNIFIED IDEOGRAPH-7BAD 0x7BB1 箱 CJK UNIFIED IDEOGRAPH-7BB1 0x7BB4 箴 CJK UNIFIED IDEOGRAPH-7BB4 0x7BB8 箸 CJK UNIFIED IDEOGRAPH-7BB8 0x7BC0 節 CJK UNIFIED IDEOGRAPH-7BC0 0x7BC1 篁 CJK UNIFIED IDEOGRAPH-7BC1 0x7BC4 範 CJK UNIFIED IDEOGRAPH-7BC4 0x7BC6 篆 CJK UNIFIED IDEOGRAPH-7BC6 0x7BC7 篇 CJK UNIFIED IDEOGRAPH-7BC7 0x7BC9 築 CJK UNIFIED IDEOGRAPH-7BC9 0x7BCB 篋 CJK UNIFIED IDEOGRAPH-7BCB 0x7BD9 篙 CJK UNIFIED IDEOGRAPH-7BD9 0x7BDD 篝 CJK UNIFIED IDEOGRAPH-7BDD 0x7BE0 篠 CJK UNIFIED IDEOGRAPH-7BE0 0x7BE1 篡 CJK UNIFIED IDEOGRAPH-7BE1 0x7BE4 篤 CJK UNIFIED IDEOGRAPH-7BE4 0x7BE6 篦 CJK UNIFIED IDEOGRAPH-7BE6 0x7BE9 篩 CJK UNIFIED IDEOGRAPH-7BE9 0x7BEA 篪 CJK UNIFIED IDEOGRAPH-7BEA 0x7BF3 篳 CJK UNIFIED IDEOGRAPH-7BF3 0x7BF7 篷 CJK UNIFIED IDEOGRAPH-7BF7 0x7BFE 篾 CJK UNIFIED IDEOGRAPH-7BFE 0x7C07 簇 CJK UNIFIED IDEOGRAPH-7C07 0x7C0B 簋 CJK UNIFIED IDEOGRAPH-7C0B 0x7C0C 簌 CJK UNIFIED IDEOGRAPH-7C0C 0x7C0D 簍 CJK UNIFIED IDEOGRAPH-7C0D 0x7C11 簑 CJK UNIFIED IDEOGRAPH-7C11 0x7C1E 簞 CJK UNIFIED IDEOGRAPH-7C1E 0x7C21 簡 CJK UNIFIED IDEOGRAPH-7C21 0x7C23 簣 CJK UNIFIED IDEOGRAPH-7C23 0x7C27 簧 CJK UNIFIED IDEOGRAPH-7C27 0x7C2A 簪 CJK UNIFIED IDEOGRAPH-7C2A 0x7C2B 簫 CJK UNIFIED IDEOGRAPH-7C2B 0x7C37 簷 CJK UNIFIED IDEOGRAPH-7C37 0x7C38 簸 CJK UNIFIED IDEOGRAPH-7C38 0x7C3D 簽 CJK UNIFIED IDEOGRAPH-7C3D 0x7C3E 簾 CJK UNIFIED IDEOGRAPH-7C3E 0x7C3F 簿 CJK UNIFIED IDEOGRAPH-7C3F 0x7C43 籃 CJK UNIFIED IDEOGRAPH-7C43 0x7C4C 籌 CJK UNIFIED IDEOGRAPH-7C4C 0x7C4D 籍 CJK UNIFIED IDEOGRAPH-7C4D 0x7C50 籐 CJK UNIFIED IDEOGRAPH-7C50 0x7C59 籙 CJK UNIFIED IDEOGRAPH-7C59 0x7C5F 籟 CJK UNIFIED IDEOGRAPH-7C5F 0x7C60 籠 CJK UNIFIED IDEOGRAPH-7C60 0x7C64 籤 CJK UNIFIED IDEOGRAPH-7C64 0x7C6C 籬 CJK UNIFIED IDEOGRAPH-7C6C 0x7C6E 籮 CJK UNIFIED IDEOGRAPH-7C6E 0x7C72 籲 CJK UNIFIED IDEOGRAPH-7C72 0x7C73 米 CJK UNIFIED IDEOGRAPH-7C73 0x7C7D 籽 CJK UNIFIED IDEOGRAPH-7C7D 0x7C84 粄 CJK UNIFIED IDEOGRAPH-7C84 0x7C89 粉 CJK UNIFIED IDEOGRAPH-7C89 0x7C91 粑 CJK UNIFIED IDEOGRAPH-7C91 0x7C92 粒 CJK UNIFIED IDEOGRAPH-7C92 0x7C95 粕 CJK UNIFIED IDEOGRAPH-7C95 0x7C97 粗 CJK UNIFIED IDEOGRAPH-7C97 0x7C98 粘 CJK UNIFIED IDEOGRAPH-7C98 0x7C9F 粟 CJK UNIFIED IDEOGRAPH-7C9F 0x7CA2 粢 CJK UNIFIED IDEOGRAPH-7CA2 0x7CA5 粥 CJK UNIFIED IDEOGRAPH-7CA5 0x7CA7 粧 CJK UNIFIED IDEOGRAPH-7CA7 0x7CB1 粱 CJK UNIFIED IDEOGRAPH-7CB1 0x7CB2 粲 CJK UNIFIED IDEOGRAPH-7CB2 0x7CB3 粳 CJK UNIFIED IDEOGRAPH-7CB3 0x7CB5 粵 CJK UNIFIED IDEOGRAPH-7CB5 0x7CB9 粹 CJK UNIFIED IDEOGRAPH-7CB9 0x7CBC 粼 CJK UNIFIED IDEOGRAPH-7CBC 0x7CBD 粽 CJK UNIFIED IDEOGRAPH-7CBD 0x7CBE 精 CJK UNIFIED IDEOGRAPH-7CBE 0x7CBF 粿 CJK UNIFIED IDEOGRAPH-7CBF 0x7CC5 糅 CJK UNIFIED IDEOGRAPH-7CC5 0x7CCA 糊 CJK UNIFIED IDEOGRAPH-7CCA 0x7CD5 糕 CJK UNIFIED IDEOGRAPH-7CD5 0x7CD6 糖 CJK UNIFIED IDEOGRAPH-7CD6 0x7CD7 糗 CJK UNIFIED IDEOGRAPH-7CD7 0x7CD9 糙 CJK UNIFIED IDEOGRAPH-7CD9 0x7CDC 糜 CJK UNIFIED IDEOGRAPH-7CDC 0x7CDE 糞 CJK UNIFIED IDEOGRAPH-7CDE 0x7CDF 糟 CJK UNIFIED IDEOGRAPH-7CDF 0x7CE0 糠 CJK UNIFIED IDEOGRAPH-7CE0 0x7CE7 糧 CJK UNIFIED IDEOGRAPH-7CE7 0x7CEC 糬 CJK UNIFIED IDEOGRAPH-7CEC 0x7CEF 糯 CJK UNIFIED IDEOGRAPH-7CEF 0x7CF0 糰 CJK UNIFIED IDEOGRAPH-7CF0 0x7CF8 糸 CJK UNIFIED IDEOGRAPH-7CF8 0x7CFB 系 CJK UNIFIED IDEOGRAPH-7CFB 0x7CFE 糾 CJK UNIFIED IDEOGRAPH-7CFE 0x7D00 紀 CJK UNIFIED IDEOGRAPH-7D00 0x7D02 紂 CJK UNIFIED IDEOGRAPH-7D02 0x7D04 約 CJK UNIFIED IDEOGRAPH-7D04 0x7D05 紅 CJK UNIFIED IDEOGRAPH-7D05 0x7D06 紆 CJK UNIFIED IDEOGRAPH-7D06 0x7D08 紈 CJK UNIFIED IDEOGRAPH-7D08 0x7D09 紉 CJK UNIFIED IDEOGRAPH-7D09 0x7D0A 紊 CJK UNIFIED IDEOGRAPH-7D0A 0x7D0B 紋 CJK UNIFIED IDEOGRAPH-7D0B 0x7D0D 納 CJK UNIFIED IDEOGRAPH-7D0D 0x7D10 紐 CJK UNIFIED IDEOGRAPH-7D10 0x7D13 紓 CJK UNIFIED IDEOGRAPH-7D13 0x7D14 純 CJK UNIFIED IDEOGRAPH-7D14 0x7D15 紕 CJK UNIFIED IDEOGRAPH-7D15 0x7D17 紗 CJK UNIFIED IDEOGRAPH-7D17 0x7D18 紘 CJK UNIFIED IDEOGRAPH-7D18 0x7D19 紙 CJK UNIFIED IDEOGRAPH-7D19 0x7D1A 級 CJK UNIFIED IDEOGRAPH-7D1A 0x7D1B 紛 CJK UNIFIED IDEOGRAPH-7D1B 0x7D1C 紜 CJK UNIFIED IDEOGRAPH-7D1C 0x7D20 素 CJK UNIFIED IDEOGRAPH-7D20 0x7D21 紡 CJK UNIFIED IDEOGRAPH-7D21 0x7D22 索 CJK UNIFIED IDEOGRAPH-7D22 0x7D2B 紫 CJK UNIFIED IDEOGRAPH-7D2B 0x7D2C 紬 CJK UNIFIED IDEOGRAPH-7D2C 0x7D2E 紮 CJK UNIFIED IDEOGRAPH-7D2E 0x7D2F 累 CJK UNIFIED IDEOGRAPH-7D2F 0x7D30 細 CJK UNIFIED IDEOGRAPH-7D30 0x7D33 紳 CJK UNIFIED IDEOGRAPH-7D33 0x7D39 紹 CJK UNIFIED IDEOGRAPH-7D39 0x7D3A 紺 CJK UNIFIED IDEOGRAPH-7D3A 0x7D40 絀 CJK UNIFIED IDEOGRAPH-7D40 0x7D42 終 CJK UNIFIED IDEOGRAPH-7D42 0x7D43 絃 CJK UNIFIED IDEOGRAPH-7D43 0x7D44 組 CJK UNIFIED IDEOGRAPH-7D44 0x7D46 絆 CJK UNIFIED IDEOGRAPH-7D46 0x7D4E 絎 CJK UNIFIED IDEOGRAPH-7D4E 0x7D50 結 CJK UNIFIED IDEOGRAPH-7D50 0x7D55 絕 CJK UNIFIED IDEOGRAPH-7D55 0x7D5B 絛 CJK UNIFIED IDEOGRAPH-7D5B 0x7D5C 絜 CJK UNIFIED IDEOGRAPH-7D5C 0x7D5E 絞 CJK UNIFIED IDEOGRAPH-7D5E 0x7D61 絡 CJK UNIFIED IDEOGRAPH-7D61 0x7D62 絢 CJK UNIFIED IDEOGRAPH-7D62 0x7D66 給 CJK UNIFIED IDEOGRAPH-7D66 0x7D68 絨 CJK UNIFIED IDEOGRAPH-7D68 0x7D6E 絮 CJK UNIFIED IDEOGRAPH-7D6E 0x7D71 統 CJK UNIFIED IDEOGRAPH-7D71 0x7D72 絲 CJK UNIFIED IDEOGRAPH-7D72 0x7D73 絳 CJK UNIFIED IDEOGRAPH-7D73 0x7D79 絹 CJK UNIFIED IDEOGRAPH-7D79 0x7D81 綁 CJK UNIFIED IDEOGRAPH-7D81 0x7D83 綃 CJK UNIFIED IDEOGRAPH-7D83 0x7D8F 綏 CJK UNIFIED IDEOGRAPH-7D8F 0x7D91 綑 CJK UNIFIED IDEOGRAPH-7D91 0x7D93 經 CJK UNIFIED IDEOGRAPH-7D93 0x7D9C 綜 CJK UNIFIED IDEOGRAPH-7D9C 0x7DA0 綠 CJK UNIFIED IDEOGRAPH-7DA0 0x7DA2 綢 CJK UNIFIED IDEOGRAPH-7DA2 0x7DA3 綣 CJK UNIFIED IDEOGRAPH-7DA3 0x7DA6 綦 CJK UNIFIED IDEOGRAPH-7DA6 0x7DAC 綬 CJK UNIFIED IDEOGRAPH-7DAC 0x7DAD 維 CJK UNIFIED IDEOGRAPH-7DAD 0x7DB0 綰 CJK UNIFIED IDEOGRAPH-7DB0 0x7DB1 綱 CJK UNIFIED IDEOGRAPH-7DB1 0x7DB2 網 CJK UNIFIED IDEOGRAPH-7DB2 0x7DB4 綴 CJK UNIFIED IDEOGRAPH-7DB4 0x7DB5 綵 CJK UNIFIED IDEOGRAPH-7DB5 0x7DB8 綸 CJK UNIFIED IDEOGRAPH-7DB8 0x7DB9 綹 CJK UNIFIED IDEOGRAPH-7DB9 0x7DBA 綺 CJK UNIFIED IDEOGRAPH-7DBA 0x7DBB 綻 CJK UNIFIED IDEOGRAPH-7DBB 0x7DBD 綽 CJK UNIFIED IDEOGRAPH-7DBD 0x7DBE 綾 CJK UNIFIED IDEOGRAPH-7DBE 0x7DBF 綿 CJK UNIFIED IDEOGRAPH-7DBF 0x7DC1 緁 CJK UNIFIED IDEOGRAPH-7DC1 0x7DC7 緇 CJK UNIFIED IDEOGRAPH-7DC7 0x7DCA 緊 CJK UNIFIED IDEOGRAPH-7DCA 0x7DCB 緋 CJK UNIFIED IDEOGRAPH-7DCB 0x7DD2 緒 CJK UNIFIED IDEOGRAPH-7DD2 0x7DD7 緗 CJK UNIFIED IDEOGRAPH-7DD7 0x7DD8 緘 CJK UNIFIED IDEOGRAPH-7DD8 0x7DDA 線 CJK UNIFIED IDEOGRAPH-7DDA 0x7DDD 緝 CJK UNIFIED IDEOGRAPH-7DDD 0x7DDE 緞 CJK UNIFIED IDEOGRAPH-7DDE 0x7DE0 締 CJK UNIFIED IDEOGRAPH-7DE0 0x7DE3 緣 CJK UNIFIED IDEOGRAPH-7DE3 0x7DE8 編 CJK UNIFIED IDEOGRAPH-7DE8 0x7DE9 緩 CJK UNIFIED IDEOGRAPH-7DE9 0x7DEC 緬 CJK UNIFIED IDEOGRAPH-7DEC 0x7DEF 緯 CJK UNIFIED IDEOGRAPH-7DEF 0x7DF2 緲 CJK UNIFIED IDEOGRAPH-7DF2 0x7DF4 練 CJK UNIFIED IDEOGRAPH-7DF4 0x7DF9 緹 CJK UNIFIED IDEOGRAPH-7DF9 0x7DFB 緻 CJK UNIFIED IDEOGRAPH-7DFB 0x7E08 縈 CJK UNIFIED IDEOGRAPH-7E08 0x7E09 縉 CJK UNIFIED IDEOGRAPH-7E09 0x7E0A 縊 CJK UNIFIED IDEOGRAPH-7E0A 0x7E10 縐 CJK UNIFIED IDEOGRAPH-7E10 0x7E15 縕 CJK UNIFIED IDEOGRAPH-7E15 0x7E1B 縛 CJK UNIFIED IDEOGRAPH-7E1B 0x7E1D 縝 CJK UNIFIED IDEOGRAPH-7E1D 0x7E1E 縞 CJK UNIFIED IDEOGRAPH-7E1E 0x7E1F 縟 CJK UNIFIED IDEOGRAPH-7E1F 0x7E23 縣 CJK UNIFIED IDEOGRAPH-7E23 0x7E2B 縫 CJK UNIFIED IDEOGRAPH-7E2B 0x7E2D 縭 CJK UNIFIED IDEOGRAPH-7E2D 0x7E2E 縮 CJK UNIFIED IDEOGRAPH-7E2E 0x7E31 縱 CJK UNIFIED IDEOGRAPH-7E31 0x7E34 縴 CJK UNIFIED IDEOGRAPH-7E34 0x7E35 縵 CJK UNIFIED IDEOGRAPH-7E35 0x7E37 縷 CJK UNIFIED IDEOGRAPH-7E37 0x7E39 縹 CJK UNIFIED IDEOGRAPH-7E39 0x7E3D 總 CJK UNIFIED IDEOGRAPH-7E3D 0x7E3E 績 CJK UNIFIED IDEOGRAPH-7E3E 0x7E41 繁 CJK UNIFIED IDEOGRAPH-7E41 0x7E43 繃 CJK UNIFIED IDEOGRAPH-7E43 0x7E46 繆 CJK UNIFIED IDEOGRAPH-7E46 0x7E47 繇 CJK UNIFIED IDEOGRAPH-7E47 0x7E52 繒 CJK UNIFIED IDEOGRAPH-7E52 0x7E54 織 CJK UNIFIED IDEOGRAPH-7E54 0x7E55 繕 CJK UNIFIED IDEOGRAPH-7E55 0x7E56 繖 CJK UNIFIED IDEOGRAPH-7E56 0x7E59 繙 CJK UNIFIED IDEOGRAPH-7E59 0x7E5A 繚 CJK UNIFIED IDEOGRAPH-7E5A 0x7E5E 繞 CJK UNIFIED IDEOGRAPH-7E5E 0x7E61 繡 CJK UNIFIED IDEOGRAPH-7E61 0x7E69 繩 CJK UNIFIED IDEOGRAPH-7E69 0x7E6A 繪 CJK UNIFIED IDEOGRAPH-7E6A 0x7E6B 繫 CJK UNIFIED IDEOGRAPH-7E6B 0x7E6D 繭 CJK UNIFIED IDEOGRAPH-7E6D 0x7E70 繰 CJK UNIFIED IDEOGRAPH-7E70 0x7E73 繳 CJK UNIFIED IDEOGRAPH-7E73 0x7E79 繹 CJK UNIFIED IDEOGRAPH-7E79 0x7E7C 繼 CJK UNIFIED IDEOGRAPH-7E7C 0x7E7D 繽 CJK UNIFIED IDEOGRAPH-7E7D 0x7E7E 繾 CJK UNIFIED IDEOGRAPH-7E7E 0x7E82 纂 CJK UNIFIED IDEOGRAPH-7E82 0x7E87 纇 CJK UNIFIED IDEOGRAPH-7E87 0x7E88 纈 CJK UNIFIED IDEOGRAPH-7E88 0x7E8C 續 CJK UNIFIED IDEOGRAPH-7E8C 0x7E8D 纍 CJK UNIFIED IDEOGRAPH-7E8D 0x7E8F 纏 CJK UNIFIED IDEOGRAPH-7E8F 0x7E93 纓 CJK UNIFIED IDEOGRAPH-7E93 0x7E94 纔 CJK UNIFIED IDEOGRAPH-7E94 0x7E96 纖 CJK UNIFIED IDEOGRAPH-7E96 0x7E9C 纜 CJK UNIFIED IDEOGRAPH-7E9C 0x7F36 缶 CJK UNIFIED IDEOGRAPH-7F36 0x7F38 缸 CJK UNIFIED IDEOGRAPH-7F38 0x7F3A 缺 CJK UNIFIED IDEOGRAPH-7F3A 0x7F3D 缽 CJK UNIFIED IDEOGRAPH-7F3D 0x7F44 罄 CJK UNIFIED IDEOGRAPH-7F44 0x7F45 罅 CJK UNIFIED IDEOGRAPH-7F45 0x7F48 罈 CJK UNIFIED IDEOGRAPH-7F48 0x7F4C 罌 CJK UNIFIED IDEOGRAPH-7F4C 0x7F50 罐 CJK UNIFIED IDEOGRAPH-7F50 0x7F51 网 CJK UNIFIED IDEOGRAPH-7F51 0x7F54 罔 CJK UNIFIED IDEOGRAPH-7F54 0x7F55 罕 CJK UNIFIED IDEOGRAPH-7F55 0x7F5D 罝 CJK UNIFIED IDEOGRAPH-7F5D 0x7F5F 罟 CJK UNIFIED IDEOGRAPH-7F5F 0x7F60 罠 CJK UNIFIED IDEOGRAPH-7F60 0x7F61 罡 CJK UNIFIED IDEOGRAPH-7F61 0x7F63 罣 CJK UNIFIED IDEOGRAPH-7F63 0x7F69 罩 CJK UNIFIED IDEOGRAPH-7F69 0x7F6A 罪 CJK UNIFIED IDEOGRAPH-7F6A 0x7F6E 置 CJK UNIFIED IDEOGRAPH-7F6E 0x7F70 罰 CJK UNIFIED IDEOGRAPH-7F70 0x7F72 署 CJK UNIFIED IDEOGRAPH-7F72 0x7F75 罵 CJK UNIFIED IDEOGRAPH-7F75 0x7F77 罷 CJK UNIFIED IDEOGRAPH-7F77 0x7F79 罹 CJK UNIFIED IDEOGRAPH-7F79 0x7F85 羅 CJK UNIFIED IDEOGRAPH-7F85 0x7F86 羆 CJK UNIFIED IDEOGRAPH-7F86 0x7F88 羈 CJK UNIFIED IDEOGRAPH-7F88 0x7F8A 羊 CJK UNIFIED IDEOGRAPH-7F8A 0x7F8B 羋 CJK UNIFIED IDEOGRAPH-7F8B 0x7F8C 羌 CJK UNIFIED IDEOGRAPH-7F8C 0x7F8E 美 CJK UNIFIED IDEOGRAPH-7F8E 0x7F94 羔 CJK UNIFIED IDEOGRAPH-7F94 0x7F9A 羚 CJK UNIFIED IDEOGRAPH-7F9A 0x7F9E 羞 CJK UNIFIED IDEOGRAPH-7F9E 0x7FA1 羡 CJK UNIFIED IDEOGRAPH-7FA1 0x7FA4 群 CJK UNIFIED IDEOGRAPH-7FA4 0x7FA5 羥 CJK UNIFIED IDEOGRAPH-7FA5 0x7FA7 羧 CJK UNIFIED IDEOGRAPH-7FA7 0x7FA8 羨 CJK UNIFIED IDEOGRAPH-7FA8 0x7FA9 義 CJK UNIFIED IDEOGRAPH-7FA9 0x7FAF 羯 CJK UNIFIED IDEOGRAPH-7FAF 0x7FB0 羰 CJK UNIFIED IDEOGRAPH-7FB0 0x7FB2 羲 CJK UNIFIED IDEOGRAPH-7FB2 0x7FB6 羶 CJK UNIFIED IDEOGRAPH-7FB6 0x7FB8 羸 CJK UNIFIED IDEOGRAPH-7FB8 0x7FB9 羹 CJK UNIFIED IDEOGRAPH-7FB9 0x7FBD 羽 CJK UNIFIED IDEOGRAPH-7FBD 0x7FBF 羿 CJK UNIFIED IDEOGRAPH-7FBF 0x7FC1 翁 CJK UNIFIED IDEOGRAPH-7FC1 0x7FC3 翃 CJK UNIFIED IDEOGRAPH-7FC3 0x7FC5 翅 CJK UNIFIED IDEOGRAPH-7FC5 0x7FCA 翊 CJK UNIFIED IDEOGRAPH-7FCA 0x7FCC 翌 CJK UNIFIED IDEOGRAPH-7FCC 0x7FCE 翎 CJK UNIFIED IDEOGRAPH-7FCE 0x7FD2 習 CJK UNIFIED IDEOGRAPH-7FD2 0x7FD4 翔 CJK UNIFIED IDEOGRAPH-7FD4 0x7FD5 翕 CJK UNIFIED IDEOGRAPH-7FD5 0x7FDF 翟 CJK UNIFIED IDEOGRAPH-7FDF 0x7FE0 翠 CJK UNIFIED IDEOGRAPH-7FE0 0x7FE1 翡 CJK UNIFIED IDEOGRAPH-7FE1 0x7FE6 翦 CJK UNIFIED IDEOGRAPH-7FE6 0x7FE9 翩 CJK UNIFIED IDEOGRAPH-7FE9 0x7FEB 翫 CJK UNIFIED IDEOGRAPH-7FEB 0x7FF0 翰 CJK UNIFIED IDEOGRAPH-7FF0 0x7FF1 翱 CJK UNIFIED IDEOGRAPH-7FF1 0x7FF3 翳 CJK UNIFIED IDEOGRAPH-7FF3 0x7FF9 翹 CJK UNIFIED IDEOGRAPH-7FF9 0x7FFB 翻 CJK UNIFIED IDEOGRAPH-7FFB 0x7FFC 翼 CJK UNIFIED IDEOGRAPH-7FFC 0x8000 耀 CJK UNIFIED IDEOGRAPH-8000 0x8001 老 CJK UNIFIED IDEOGRAPH-8001 0x8003 考 CJK UNIFIED IDEOGRAPH-8003 0x8004 耄 CJK UNIFIED IDEOGRAPH-8004 0x8005 者 CJK UNIFIED IDEOGRAPH-8005 0x8006 耆 CJK UNIFIED IDEOGRAPH-8006 0x800B 耋 CJK UNIFIED IDEOGRAPH-800B 0x800C 而 CJK UNIFIED IDEOGRAPH-800C 0x800D 耍 CJK UNIFIED IDEOGRAPH-800D 0x8010 耐 CJK UNIFIED IDEOGRAPH-8010 0x8012 耒 CJK UNIFIED IDEOGRAPH-8012 0x8015 耕 CJK UNIFIED IDEOGRAPH-8015 0x8017 耗 CJK UNIFIED IDEOGRAPH-8017 0x8018 耘 CJK UNIFIED IDEOGRAPH-8018 0x8019 耙 CJK UNIFIED IDEOGRAPH-8019 0x8026 耦 CJK UNIFIED IDEOGRAPH-8026 0x8028 耨 CJK UNIFIED IDEOGRAPH-8028 0x8033 耳 CJK UNIFIED IDEOGRAPH-8033 0x8036 耶 CJK UNIFIED IDEOGRAPH-8036 0x8037 耷 CJK UNIFIED IDEOGRAPH-8037 0x803D 耽 CJK UNIFIED IDEOGRAPH-803D 0x803F 耿 CJK UNIFIED IDEOGRAPH-803F 0x8046 聆 CJK UNIFIED IDEOGRAPH-8046 0x804A 聊 CJK UNIFIED IDEOGRAPH-804A 0x8052 聒 CJK UNIFIED IDEOGRAPH-8052 0x8056 聖 CJK UNIFIED IDEOGRAPH-8056 0x8058 聘 CJK UNIFIED IDEOGRAPH-8058 0x805A 聚 CJK UNIFIED IDEOGRAPH-805A 0x805E 聞 CJK UNIFIED IDEOGRAPH-805E 0x806F 聯 CJK UNIFIED IDEOGRAPH-806F 0x8070 聰 CJK UNIFIED IDEOGRAPH-8070 0x8072 聲 CJK UNIFIED IDEOGRAPH-8072 0x8073 聳 CJK UNIFIED IDEOGRAPH-8073 0x8075 聵 CJK UNIFIED IDEOGRAPH-8075 0x8076 聶 CJK UNIFIED IDEOGRAPH-8076 0x8077 職 CJK UNIFIED IDEOGRAPH-8077 0x807D 聽 CJK UNIFIED IDEOGRAPH-807D 0x807E 聾 CJK UNIFIED IDEOGRAPH-807E 0x807F 聿 CJK UNIFIED IDEOGRAPH-807F 0x8084 肄 CJK UNIFIED IDEOGRAPH-8084 0x8085 肅 CJK UNIFIED IDEOGRAPH-8085 0x8086 肆 CJK UNIFIED IDEOGRAPH-8086 0x8087 肇 CJK UNIFIED IDEOGRAPH-8087 0x8089 肉 CJK UNIFIED IDEOGRAPH-8089 0x808B 肋 CJK UNIFIED IDEOGRAPH-808B 0x808C 肌 CJK UNIFIED IDEOGRAPH-808C 0x808F 肏 CJK UNIFIED IDEOGRAPH-808F 0x8093 肓 CJK UNIFIED IDEOGRAPH-8093 0x8096 肖 CJK UNIFIED IDEOGRAPH-8096 0x8098 肘 CJK UNIFIED IDEOGRAPH-8098 0x809A 肚 CJK UNIFIED IDEOGRAPH-809A 0x809B 肛 CJK UNIFIED IDEOGRAPH-809B 0x809D 肝 CJK UNIFIED IDEOGRAPH-809D 0x80A1 股 CJK UNIFIED IDEOGRAPH-80A1 0x80A2 肢 CJK UNIFIED IDEOGRAPH-80A2 0x80A5 肥 CJK UNIFIED IDEOGRAPH-80A5 0x80A9 肩 CJK UNIFIED IDEOGRAPH-80A9 0x80AA 肪 CJK UNIFIED IDEOGRAPH-80AA 0x80AE 肮 CJK UNIFIED IDEOGRAPH-80AE 0x80AF 肯 CJK UNIFIED IDEOGRAPH-80AF 0x80B1 肱 CJK UNIFIED IDEOGRAPH-80B1 0x80B2 育 CJK UNIFIED IDEOGRAPH-80B2 0x80B4 肴 CJK UNIFIED IDEOGRAPH-80B4 0x80BA 肺 CJK UNIFIED IDEOGRAPH-80BA 0x80C3 胃 CJK UNIFIED IDEOGRAPH-80C3 0x80C4 胄 CJK UNIFIED IDEOGRAPH-80C4 0x80CC 背 CJK UNIFIED IDEOGRAPH-80CC 0x80CD 胍 CJK UNIFIED IDEOGRAPH-80CD 0x80CE 胎 CJK UNIFIED IDEOGRAPH-80CE 0x80D6 胖 CJK UNIFIED IDEOGRAPH-80D6 0x80D7 胗 CJK UNIFIED IDEOGRAPH-80D7 0x80DA 胚 CJK UNIFIED IDEOGRAPH-80DA 0x80DB 胛 CJK UNIFIED IDEOGRAPH-80DB 0x80DC 胜 CJK UNIFIED IDEOGRAPH-80DC 0x80DD 胝 CJK UNIFIED IDEOGRAPH-80DD 0x80DE 胞 CJK UNIFIED IDEOGRAPH-80DE 0x80E1 胡 CJK UNIFIED IDEOGRAPH-80E1 0x80E4 胤 CJK UNIFIED IDEOGRAPH-80E4 0x80E5 胥 CJK UNIFIED IDEOGRAPH-80E5 0x80ED 胭 CJK UNIFIED IDEOGRAPH-80ED 0x80EF 胯 CJK UNIFIED IDEOGRAPH-80EF 0x80F0 胰 CJK UNIFIED IDEOGRAPH-80F0 0x80F1 胱 CJK UNIFIED IDEOGRAPH-80F1 0x80F3 胳 CJK UNIFIED IDEOGRAPH-80F3 0x80F4 胴 CJK UNIFIED IDEOGRAPH-80F4 0x80F8 胸 CJK UNIFIED IDEOGRAPH-80F8 0x80FA 胺 CJK UNIFIED IDEOGRAPH-80FA 0x80FC 胼 CJK UNIFIED IDEOGRAPH-80FC 0x80FD 能 CJK UNIFIED IDEOGRAPH-80FD 0x8102 脂 CJK UNIFIED IDEOGRAPH-8102 0x8105 脅 CJK UNIFIED IDEOGRAPH-8105 0x8106 脆 CJK UNIFIED IDEOGRAPH-8106 0x8108 脈 CJK UNIFIED IDEOGRAPH-8108 0x810A 脊 CJK UNIFIED IDEOGRAPH-810A 0x8116 脖 CJK UNIFIED IDEOGRAPH-8116 0x8118 脘 CJK UNIFIED IDEOGRAPH-8118 0x811B 脛 CJK UNIFIED IDEOGRAPH-811B 0x8122 脢 CJK UNIFIED IDEOGRAPH-8122 0x8123 脣 CJK UNIFIED IDEOGRAPH-8123 0x8129 脩 CJK UNIFIED IDEOGRAPH-8129 0x812B 脫 CJK UNIFIED IDEOGRAPH-812B 0x812F 脯 CJK UNIFIED IDEOGRAPH-812F 0x8139 脹 CJK UNIFIED IDEOGRAPH-8139 0x813E 脾 CJK UNIFIED IDEOGRAPH-813E 0x8146 腆 CJK UNIFIED IDEOGRAPH-8146 0x814A 腊 CJK UNIFIED IDEOGRAPH-814A 0x814B 腋 CJK UNIFIED IDEOGRAPH-814B 0x814C 腌 CJK UNIFIED IDEOGRAPH-814C 0x814D 腍 CJK UNIFIED IDEOGRAPH-814D 0x814E 腎 CJK UNIFIED IDEOGRAPH-814E 0x8150 腐 CJK UNIFIED IDEOGRAPH-8150 0x8151 腑 CJK UNIFIED IDEOGRAPH-8151 0x8153 腓 CJK UNIFIED IDEOGRAPH-8153 0x8154 腔 CJK UNIFIED IDEOGRAPH-8154 0x8155 腕 CJK UNIFIED IDEOGRAPH-8155 0x8165 腥 CJK UNIFIED IDEOGRAPH-8165 0x8166 腦 CJK UNIFIED IDEOGRAPH-8166 0x8167 腧 CJK UNIFIED IDEOGRAPH-8167 0x8169 腩 CJK UNIFIED IDEOGRAPH-8169 0x816B 腫 CJK UNIFIED IDEOGRAPH-816B 0x816E 腮 CJK UNIFIED IDEOGRAPH-816E 0x8170 腰 CJK UNIFIED IDEOGRAPH-8170 0x8171 腱 CJK UNIFIED IDEOGRAPH-8171 0x8173 腳 CJK UNIFIED IDEOGRAPH-8173 0x8174 腴 CJK UNIFIED IDEOGRAPH-8174 0x8178 腸 CJK UNIFIED IDEOGRAPH-8178 0x8179 腹 CJK UNIFIED IDEOGRAPH-8179 0x817A 腺 CJK UNIFIED IDEOGRAPH-817A 0x817F 腿 CJK UNIFIED IDEOGRAPH-817F 0x8180 膀 CJK UNIFIED IDEOGRAPH-8180 0x8188 膈 CJK UNIFIED IDEOGRAPH-8188 0x818A 膊 CJK UNIFIED IDEOGRAPH-818A 0x818F 膏 CJK UNIFIED IDEOGRAPH-818F 0x8195 膕 CJK UNIFIED IDEOGRAPH-8195 0x8198 膘 CJK UNIFIED IDEOGRAPH-8198 0x819A 膚 CJK UNIFIED IDEOGRAPH-819A 0x819B 膛 CJK UNIFIED IDEOGRAPH-819B 0x819C 膜 CJK UNIFIED IDEOGRAPH-819C 0x819D 膝 CJK UNIFIED IDEOGRAPH-819D 0x81A0 膠 CJK UNIFIED IDEOGRAPH-81A0 0x81A3 膣 CJK UNIFIED IDEOGRAPH-81A3 0x81A8 膨 CJK UNIFIED IDEOGRAPH-81A8 0x81A9 膩 CJK UNIFIED IDEOGRAPH-81A9 0x81B3 膳 CJK UNIFIED IDEOGRAPH-81B3 0x81BA 膺 CJK UNIFIED IDEOGRAPH-81BA 0x81BB 膻 CJK UNIFIED IDEOGRAPH-81BB 0x81BD 膽 CJK UNIFIED IDEOGRAPH-81BD 0x81BE 膾 CJK UNIFIED IDEOGRAPH-81BE 0x81BF 膿 CJK UNIFIED IDEOGRAPH-81BF 0x81C0 臀 CJK UNIFIED IDEOGRAPH-81C0 0x81C2 臂 CJK UNIFIED IDEOGRAPH-81C2 0x81C3 臃 CJK UNIFIED IDEOGRAPH-81C3 0x81C6 臆 CJK UNIFIED IDEOGRAPH-81C6 0x81C9 臉 CJK UNIFIED IDEOGRAPH-81C9 0x81CA 臊 CJK UNIFIED IDEOGRAPH-81CA 0x81CD 臍 CJK UNIFIED IDEOGRAPH-81CD 0x81CF 臏 CJK UNIFIED IDEOGRAPH-81CF 0x81D8 臘 CJK UNIFIED IDEOGRAPH-81D8 0x81DA 臚 CJK UNIFIED IDEOGRAPH-81DA 0x81DF 臟 CJK UNIFIED IDEOGRAPH-81DF 0x81E0 臠 CJK UNIFIED IDEOGRAPH-81E0 0x81E3 臣 CJK UNIFIED IDEOGRAPH-81E3 0x81E5 臥 CJK UNIFIED IDEOGRAPH-81E5 0x81E7 臧 CJK UNIFIED IDEOGRAPH-81E7 0x81E8 臨 CJK UNIFIED IDEOGRAPH-81E8 0x81EA 自 CJK UNIFIED IDEOGRAPH-81EA 0x81EC 臬 CJK UNIFIED IDEOGRAPH-81EC 0x81ED 臭 CJK UNIFIED IDEOGRAPH-81ED 0x81F3 至 CJK UNIFIED IDEOGRAPH-81F3 0x81F4 致 CJK UNIFIED IDEOGRAPH-81F4 0x81FA 臺 CJK UNIFIED IDEOGRAPH-81FA 0x81FB 臻 CJK UNIFIED IDEOGRAPH-81FB 0x81FC 臼 CJK UNIFIED IDEOGRAPH-81FC 0x81FE 臾 CJK UNIFIED IDEOGRAPH-81FE 0x8200 舀 CJK UNIFIED IDEOGRAPH-8200 0x8202 舂 CJK UNIFIED IDEOGRAPH-8202 0x8205 舅 CJK UNIFIED IDEOGRAPH-8205 0x8207 與 CJK UNIFIED IDEOGRAPH-8207 0x8208 興 CJK UNIFIED IDEOGRAPH-8208 0x8209 舉 CJK UNIFIED IDEOGRAPH-8209 0x820A 舊 CJK UNIFIED IDEOGRAPH-820A 0x820C 舌 CJK UNIFIED IDEOGRAPH-820C 0x820D 舍 CJK UNIFIED IDEOGRAPH-820D 0x8210 舐 CJK UNIFIED IDEOGRAPH-8210 0x8212 舒 CJK UNIFIED IDEOGRAPH-8212 0x8214 舔 CJK UNIFIED IDEOGRAPH-8214 0x8216 舖 CJK UNIFIED IDEOGRAPH-8216 0x821B 舛 CJK UNIFIED IDEOGRAPH-821B 0x821C 舜 CJK UNIFIED IDEOGRAPH-821C 0x821E 舞 CJK UNIFIED IDEOGRAPH-821E 0x821F 舟 CJK UNIFIED IDEOGRAPH-821F 0x8222 舢 CJK UNIFIED IDEOGRAPH-8222 0x8228 舨 CJK UNIFIED IDEOGRAPH-8228 0x822A 航 CJK UNIFIED IDEOGRAPH-822A 0x822B 舫 CJK UNIFIED IDEOGRAPH-822B 0x822C 般 CJK UNIFIED IDEOGRAPH-822C 0x8235 舵 CJK UNIFIED IDEOGRAPH-8235 0x8236 舶 CJK UNIFIED IDEOGRAPH-8236 0x8237 舷 CJK UNIFIED IDEOGRAPH-8237 0x8239 船 CJK UNIFIED IDEOGRAPH-8239 0x823A 舺 CJK UNIFIED IDEOGRAPH-823A 0x8247 艇 CJK UNIFIED IDEOGRAPH-8247 0x8249 艉 CJK UNIFIED IDEOGRAPH-8249 0x824B 艋 CJK UNIFIED IDEOGRAPH-824B 0x8258 艘 CJK UNIFIED IDEOGRAPH-8258 0x8259 艙 CJK UNIFIED IDEOGRAPH-8259 0x8266 艦 CJK UNIFIED IDEOGRAPH-8266 0x826E 艮 CJK UNIFIED IDEOGRAPH-826E 0x826F 良 CJK UNIFIED IDEOGRAPH-826F 0x8271 艱 CJK UNIFIED IDEOGRAPH-8271 0x8272 色 CJK UNIFIED IDEOGRAPH-8272 0x8277 艷 CJK UNIFIED IDEOGRAPH-8277 0x8278 艸 CJK UNIFIED IDEOGRAPH-8278 0x827E 艾 CJK UNIFIED IDEOGRAPH-827E 0x8283 芃 CJK UNIFIED IDEOGRAPH-8283 0x828A 芊 CJK UNIFIED IDEOGRAPH-828A 0x828B 芋 CJK UNIFIED IDEOGRAPH-828B 0x828D 芍 CJK UNIFIED IDEOGRAPH-828D 0x828E 芎 CJK UNIFIED IDEOGRAPH-828E 0x8292 芒 CJK UNIFIED IDEOGRAPH-8292 0x8298 芘 CJK UNIFIED IDEOGRAPH-8298 0x8299 芙 CJK UNIFIED IDEOGRAPH-8299 0x829D 芝 CJK UNIFIED IDEOGRAPH-829D 0x82A1 芡 CJK UNIFIED IDEOGRAPH-82A1 0x82A5 芥 CJK UNIFIED IDEOGRAPH-82A5 0x82A8 芨 CJK UNIFIED IDEOGRAPH-82A8 0x82A9 芩 CJK UNIFIED IDEOGRAPH-82A9 0x82AB 芫 CJK UNIFIED IDEOGRAPH-82AB 0x82AC 芬 CJK UNIFIED IDEOGRAPH-82AC 0x82AD 芭 CJK UNIFIED IDEOGRAPH-82AD 0x82AE 芮 CJK UNIFIED IDEOGRAPH-82AE 0x82AF 芯 CJK UNIFIED IDEOGRAPH-82AF 0x82B1 花 CJK UNIFIED IDEOGRAPH-82B1 0x82B3 芳 CJK UNIFIED IDEOGRAPH-82B3 0x82B4 芴 CJK UNIFIED IDEOGRAPH-82B4 0x82B7 芷 CJK UNIFIED IDEOGRAPH-82B7 0x82B8 芸 CJK UNIFIED IDEOGRAPH-82B8 0x82B9 芹 CJK UNIFIED IDEOGRAPH-82B9 0x82BB 芻 CJK UNIFIED IDEOGRAPH-82BB 0x82BD 芽 CJK UNIFIED IDEOGRAPH-82BD 0x82BE 芾 CJK UNIFIED IDEOGRAPH-82BE 0x82D1 苑 CJK UNIFIED IDEOGRAPH-82D1 0x82D2 苒 CJK UNIFIED IDEOGRAPH-82D2 0x82D3 苓 CJK UNIFIED IDEOGRAPH-82D3 0x82D4 苔 CJK UNIFIED IDEOGRAPH-82D4 0x82D5 苕 CJK UNIFIED IDEOGRAPH-82D5 0x82D7 苗 CJK UNIFIED IDEOGRAPH-82D7 0x82D9 苙 CJK UNIFIED IDEOGRAPH-82D9 0x82DB 苛 CJK UNIFIED IDEOGRAPH-82DB 0x82DC 苜 CJK UNIFIED IDEOGRAPH-82DC 0x82DE 苞 CJK UNIFIED IDEOGRAPH-82DE 0x82DF 苟 CJK UNIFIED IDEOGRAPH-82DF 0x82E1 苡 CJK UNIFIED IDEOGRAPH-82E1 0x82E3 苣 CJK UNIFIED IDEOGRAPH-82E3 0x82E5 若 CJK UNIFIED IDEOGRAPH-82E5 0x82E6 苦 CJK UNIFIED IDEOGRAPH-82E6 0x82E7 苧 CJK UNIFIED IDEOGRAPH-82E7 0x82EB 苫 CJK UNIFIED IDEOGRAPH-82EB 0x82EF 苯 CJK UNIFIED IDEOGRAPH-82EF 0x82F1 英 CJK UNIFIED IDEOGRAPH-82F1 0x82F3 苳 CJK UNIFIED IDEOGRAPH-82F3 0x82F4 苴 CJK UNIFIED IDEOGRAPH-82F4 0x82F9 苹 CJK UNIFIED IDEOGRAPH-82F9 0x82FA 苺 CJK UNIFIED IDEOGRAPH-82FA 0x82FE 苾 CJK UNIFIED IDEOGRAPH-82FE 0x8301 茁 CJK UNIFIED IDEOGRAPH-8301 0x8302 茂 CJK UNIFIED IDEOGRAPH-8302 0x8303 范 CJK UNIFIED IDEOGRAPH-8303 0x8304 茄 CJK UNIFIED IDEOGRAPH-8304 0x8305 茅 CJK UNIFIED IDEOGRAPH-8305 0x8306 茆 CJK UNIFIED IDEOGRAPH-8306 0x8309 茉 CJK UNIFIED IDEOGRAPH-8309 0x830D 茍 CJK UNIFIED IDEOGRAPH-830D 0x8317 茗 CJK UNIFIED IDEOGRAPH-8317 0x831B 茛 CJK UNIFIED IDEOGRAPH-831B 0x831C 茜 CJK UNIFIED IDEOGRAPH-831C 0x8328 茨 CJK UNIFIED IDEOGRAPH-8328 0x832B 茫 CJK UNIFIED IDEOGRAPH-832B 0x832C 茬 CJK UNIFIED IDEOGRAPH-832C 0x832D 茭 CJK UNIFIED IDEOGRAPH-832D 0x832F 茯 CJK UNIFIED IDEOGRAPH-832F 0x8331 茱 CJK UNIFIED IDEOGRAPH-8331 0x8332 茲 CJK UNIFIED IDEOGRAPH-8332 0x8334 茴 CJK UNIFIED IDEOGRAPH-8334 0x8335 茵 CJK UNIFIED IDEOGRAPH-8335 0x8336 茶 CJK UNIFIED IDEOGRAPH-8336 0x8338 茸 CJK UNIFIED IDEOGRAPH-8338 0x8339 茹 CJK UNIFIED IDEOGRAPH-8339 0x833C 茼 CJK UNIFIED IDEOGRAPH-833C 0x8340 荀 CJK UNIFIED IDEOGRAPH-8340 0x8343 荃 CJK UNIFIED IDEOGRAPH-8343 0x8347 荇 CJK UNIFIED IDEOGRAPH-8347 0x8349 草 CJK UNIFIED IDEOGRAPH-8349 0x834A 荊 CJK UNIFIED IDEOGRAPH-834A 0x834F 荏 CJK UNIFIED IDEOGRAPH-834F 0x8350 荐 CJK UNIFIED IDEOGRAPH-8350 0x8352 荒 CJK UNIFIED IDEOGRAPH-8352 0x8354 荔 CJK UNIFIED IDEOGRAPH-8354 0x8356 荖 CJK UNIFIED IDEOGRAPH-8356 0x8373 荳 CJK UNIFIED IDEOGRAPH-8373 0x8377 荷 CJK UNIFIED IDEOGRAPH-8377 0x8378 荸 CJK UNIFIED IDEOGRAPH-8378 0x837B 荻 CJK UNIFIED IDEOGRAPH-837B 0x837C 荼 CJK UNIFIED IDEOGRAPH-837C 0x837D 荽 CJK UNIFIED IDEOGRAPH-837D 0x8386 莆 CJK UNIFIED IDEOGRAPH-8386 0x8389 莉 CJK UNIFIED IDEOGRAPH-8389 0x838A 莊 CJK UNIFIED IDEOGRAPH-838A 0x838E 莎 CJK UNIFIED IDEOGRAPH-838E 0x8392 莒 CJK UNIFIED IDEOGRAPH-8392 0x8393 莓 CJK UNIFIED IDEOGRAPH-8393 0x8396 莖 CJK UNIFIED IDEOGRAPH-8396 0x8398 莘 CJK UNIFIED IDEOGRAPH-8398 0x839B 莛 CJK UNIFIED IDEOGRAPH-839B 0x839E 莞 CJK UNIFIED IDEOGRAPH-839E 0x83A0 莠 CJK UNIFIED IDEOGRAPH-83A0 0x83A2 莢 CJK UNIFIED IDEOGRAPH-83A2 0x83A7 莧 CJK UNIFIED IDEOGRAPH-83A7 0x83A8 莨 CJK UNIFIED IDEOGRAPH-83A8 0x83AA 莪 CJK UNIFIED IDEOGRAPH-83AA 0x83AB 莫 CJK UNIFIED IDEOGRAPH-83AB 0x83BD 莽 CJK UNIFIED IDEOGRAPH-83BD 0x83BF 莿 CJK UNIFIED IDEOGRAPH-83BF 0x83C0 菀 CJK UNIFIED IDEOGRAPH-83C0 0x83C1 菁 CJK UNIFIED IDEOGRAPH-83C1 0x83C5 菅 CJK UNIFIED IDEOGRAPH-83C5 0x83C7 菇 CJK UNIFIED IDEOGRAPH-83C7 0x83C8 菈 CJK UNIFIED IDEOGRAPH-83C8 0x83C9 菉 CJK UNIFIED IDEOGRAPH-83C9 0x83CA 菊 CJK UNIFIED IDEOGRAPH-83CA 0x83CC 菌 CJK UNIFIED IDEOGRAPH-83CC 0x83CF 菏 CJK UNIFIED IDEOGRAPH-83CF 0x83D6 菖 CJK UNIFIED IDEOGRAPH-83D6 0x83D8 菘 CJK UNIFIED IDEOGRAPH-83D8 0x83DC 菜 CJK UNIFIED IDEOGRAPH-83DC 0x83DD 菝 CJK UNIFIED IDEOGRAPH-83DD 0x83DF 菟 CJK UNIFIED IDEOGRAPH-83DF 0x83E0 菠 CJK UNIFIED IDEOGRAPH-83E0 0x83E1 菡 CJK UNIFIED IDEOGRAPH-83E1 0x83E9 菩 CJK UNIFIED IDEOGRAPH-83E9 0x83EB 菫 CJK UNIFIED IDEOGRAPH-83EB 0x83EF 華 CJK UNIFIED IDEOGRAPH-83EF 0x83F0 菰 CJK UNIFIED IDEOGRAPH-83F0 0x83F1 菱 CJK UNIFIED IDEOGRAPH-83F1 0x83F2 菲 CJK UNIFIED IDEOGRAPH-83F2 0x83F4 菴 CJK UNIFIED IDEOGRAPH-83F4 0x83F8 菸 CJK UNIFIED IDEOGRAPH-83F8 0x83FD 菽 CJK UNIFIED IDEOGRAPH-83FD 0x8401 萁 CJK UNIFIED IDEOGRAPH-8401 0x8403 萃 CJK UNIFIED IDEOGRAPH-8403 0x8404 萄 CJK UNIFIED IDEOGRAPH-8404 0x8407 萇 CJK UNIFIED IDEOGRAPH-8407 0x840A 萊 CJK UNIFIED IDEOGRAPH-840A 0x840B 萋 CJK UNIFIED IDEOGRAPH-840B 0x840C 萌 CJK UNIFIED IDEOGRAPH-840C 0x840D 萍 CJK UNIFIED IDEOGRAPH-840D 0x840E 萎 CJK UNIFIED IDEOGRAPH-840E 0x8423 萣 CJK UNIFIED IDEOGRAPH-8423 0x8429 萩 CJK UNIFIED IDEOGRAPH-8429 0x842C 萬 CJK UNIFIED IDEOGRAPH-842C 0x8431 萱 CJK UNIFIED IDEOGRAPH-8431 0x8435 萵 CJK UNIFIED IDEOGRAPH-8435 0x8438 萸 CJK UNIFIED IDEOGRAPH-8438 0x843C 萼 CJK UNIFIED IDEOGRAPH-843C 0x843D 落 CJK UNIFIED IDEOGRAPH-843D 0x8446 葆 CJK UNIFIED IDEOGRAPH-8446 0x8449 葉 CJK UNIFIED IDEOGRAPH-8449 0x8452 葒 CJK UNIFIED IDEOGRAPH-8452 0x8457 著 CJK UNIFIED IDEOGRAPH-8457 0x845A 葚 CJK UNIFIED IDEOGRAPH-845A 0x845B 葛 CJK UNIFIED IDEOGRAPH-845B 0x8461 葡 CJK UNIFIED IDEOGRAPH-8461 0x8463 董 CJK UNIFIED IDEOGRAPH-8463 0x8466 葦 CJK UNIFIED IDEOGRAPH-8466 0x8469 葩 CJK UNIFIED IDEOGRAPH-8469 0x846B 葫 CJK UNIFIED IDEOGRAPH-846B 0x846C 葬 CJK UNIFIED IDEOGRAPH-846C 0x846D 葭 CJK UNIFIED IDEOGRAPH-846D 0x846F 葯 CJK UNIFIED IDEOGRAPH-846F 0x8473 葳 CJK UNIFIED IDEOGRAPH-8473 0x8475 葵 CJK UNIFIED IDEOGRAPH-8475 0x8476 葶 CJK UNIFIED IDEOGRAPH-8476 0x8477 葷 CJK UNIFIED IDEOGRAPH-8477 0x847A 葺 CJK UNIFIED IDEOGRAPH-847A 0x8482 蒂 CJK UNIFIED IDEOGRAPH-8482 0x8490 蒐 CJK UNIFIED IDEOGRAPH-8490 0x8494 蒔 CJK UNIFIED IDEOGRAPH-8494 0x8499 蒙 CJK UNIFIED IDEOGRAPH-8499 0x849C 蒜 CJK UNIFIED IDEOGRAPH-849C 0x849E 蒞 CJK UNIFIED IDEOGRAPH-849E 0x849F 蒟 CJK UNIFIED IDEOGRAPH-849F 0x84A1 蒡 CJK UNIFIED IDEOGRAPH-84A1 0x84A8 蒨 CJK UNIFIED IDEOGRAPH-84A8 0x84B2 蒲 CJK UNIFIED IDEOGRAPH-84B2 0x84B4 蒴 CJK UNIFIED IDEOGRAPH-84B4 0x84B8 蒸 CJK UNIFIED IDEOGRAPH-84B8 0x84B9 蒹 CJK UNIFIED IDEOGRAPH-84B9 0x84BA 蒺 CJK UNIFIED IDEOGRAPH-84BA 0x84BB 蒻 CJK UNIFIED IDEOGRAPH-84BB 0x84BC 蒼 CJK UNIFIED IDEOGRAPH-84BC 0x84BF 蒿 CJK UNIFIED IDEOGRAPH-84BF 0x84C0 蓀 CJK UNIFIED IDEOGRAPH-84C0 0x84C1 蓁 CJK UNIFIED IDEOGRAPH-84C1 0x84C4 蓄 CJK UNIFIED IDEOGRAPH-84C4 0x84C6 蓆 CJK UNIFIED IDEOGRAPH-84C6 0x84C9 蓉 CJK UNIFIED IDEOGRAPH-84C9 0x84CA 蓊 CJK UNIFIED IDEOGRAPH-84CA 0x84CB 蓋 CJK UNIFIED IDEOGRAPH-84CB 0x84D1 蓑 CJK UNIFIED IDEOGRAPH-84D1 0x84D3 蓓 CJK UNIFIED IDEOGRAPH-84D3 0x84D6 蓖 CJK UNIFIED IDEOGRAPH-84D6 0x84EC 蓬 CJK UNIFIED IDEOGRAPH-84EC 0x84EE 蓮 CJK UNIFIED IDEOGRAPH-84EE 0x84EF 蓯 CJK UNIFIED IDEOGRAPH-84EF 0x84F4 蓴 CJK UNIFIED IDEOGRAPH-84F4 0x84FA 蓺 CJK UNIFIED IDEOGRAPH-84FA 0x84FC 蓼 CJK UNIFIED IDEOGRAPH-84FC 0x84FD 蓽 CJK UNIFIED IDEOGRAPH-84FD 0x84FF 蓿 CJK UNIFIED IDEOGRAPH-84FF 0x8511 蔑 CJK UNIFIED IDEOGRAPH-8511 0x8513 蔓 CJK UNIFIED IDEOGRAPH-8513 0x8514 蔔 CJK UNIFIED IDEOGRAPH-8514 0x8517 蔗 CJK UNIFIED IDEOGRAPH-8517 0x8518 蔘 CJK UNIFIED IDEOGRAPH-8518 0x851A 蔚 CJK UNIFIED IDEOGRAPH-851A 0x851E 蔞 CJK UNIFIED IDEOGRAPH-851E 0x8521 蔡 CJK UNIFIED IDEOGRAPH-8521 0x8523 蔣 CJK UNIFIED IDEOGRAPH-8523 0x8525 蔥 CJK UNIFIED IDEOGRAPH-8525 0x8526 蔦 CJK UNIFIED IDEOGRAPH-8526 0x852B 蔫 CJK UNIFIED IDEOGRAPH-852B 0x852C 蔬 CJK UNIFIED IDEOGRAPH-852C 0x852D 蔭 CJK UNIFIED IDEOGRAPH-852D 0x853B 蔻 CJK UNIFIED IDEOGRAPH-853B 0x853D 蔽 CJK UNIFIED IDEOGRAPH-853D 0x8541 蕁 CJK UNIFIED IDEOGRAPH-8541 0x8543 蕃 CJK UNIFIED IDEOGRAPH-8543 0x8548 蕈 CJK UNIFIED IDEOGRAPH-8548 0x8549 蕉 CJK UNIFIED IDEOGRAPH-8549 0x854A 蕊 CJK UNIFIED IDEOGRAPH-854A 0x854E 蕎 CJK UNIFIED IDEOGRAPH-854E 0x8553 蕓 CJK UNIFIED IDEOGRAPH-8553 0x8559 蕙 CJK UNIFIED IDEOGRAPH-8559 0x8564 蕤 CJK UNIFIED IDEOGRAPH-8564 0x8568 蕨 CJK UNIFIED IDEOGRAPH-8568 0x8569 蕩 CJK UNIFIED IDEOGRAPH-8569 0x856A 蕪 CJK UNIFIED IDEOGRAPH-856A 0x856D 蕭 CJK UNIFIED IDEOGRAPH-856D 0x8577 蕷 CJK UNIFIED IDEOGRAPH-8577 0x857E 蕾 CJK UNIFIED IDEOGRAPH-857E 0x8584 薄 CJK UNIFIED IDEOGRAPH-8584 0x8585 薅 CJK UNIFIED IDEOGRAPH-8585 0x8586 薆 CJK UNIFIED IDEOGRAPH-8586 0x8587 薇 CJK UNIFIED IDEOGRAPH-8587 0x8588 薈 CJK UNIFIED IDEOGRAPH-8588 0x858A 薊 CJK UNIFIED IDEOGRAPH-858A 0x858C 薌 CJK UNIFIED IDEOGRAPH-858C 0x858F 薏 CJK UNIFIED IDEOGRAPH-858F 0x8591 薑 CJK UNIFIED IDEOGRAPH-8591 0x8594 薔 CJK UNIFIED IDEOGRAPH-8594 0x8599 薙 CJK UNIFIED IDEOGRAPH-8599 0x859B 薛 CJK UNIFIED IDEOGRAPH-859B 0x859C 薜 CJK UNIFIED IDEOGRAPH-859C 0x85A6 薦 CJK UNIFIED IDEOGRAPH-85A6 0x85A8 薨 CJK UNIFIED IDEOGRAPH-85A8 0x85A9 薩 CJK UNIFIED IDEOGRAPH-85A9 0x85AA 薪 CJK UNIFIED IDEOGRAPH-85AA 0x85AF 薯 CJK UNIFIED IDEOGRAPH-85AF 0x85B0 薰 CJK UNIFIED IDEOGRAPH-85B0 0x85B9 薹 CJK UNIFIED IDEOGRAPH-85B9 0x85BA 薺 CJK UNIFIED IDEOGRAPH-85BA 0x85BE 薾 CJK UNIFIED IDEOGRAPH-85BE 0x85C9 藉 CJK UNIFIED IDEOGRAPH-85C9 0x85CD 藍 CJK UNIFIED IDEOGRAPH-85CD 0x85CF 藏 CJK UNIFIED IDEOGRAPH-85CF 0x85D0 藐 CJK UNIFIED IDEOGRAPH-85D0 0x85D5 藕 CJK UNIFIED IDEOGRAPH-85D5 0x85DC 藜 CJK UNIFIED IDEOGRAPH-85DC 0x85DD 藝 CJK UNIFIED IDEOGRAPH-85DD 0x85E4 藤 CJK UNIFIED IDEOGRAPH-85E4 0x85E5 藥 CJK UNIFIED IDEOGRAPH-85E5 0x85E6 藦 CJK UNIFIED IDEOGRAPH-85E6 0x85E9 藩 CJK UNIFIED IDEOGRAPH-85E9 0x85EA 藪 CJK UNIFIED IDEOGRAPH-85EA 0x85F7 藷 CJK UNIFIED IDEOGRAPH-85F7 0x85F9 藹 CJK UNIFIED IDEOGRAPH-85F9 0x85FA 藺 CJK UNIFIED IDEOGRAPH-85FA 0x85FB 藻 CJK UNIFIED IDEOGRAPH-85FB 0x85FF 藿 CJK UNIFIED IDEOGRAPH-85FF 0x8604 蘄 CJK UNIFIED IDEOGRAPH-8604 0x8605 蘅 CJK UNIFIED IDEOGRAPH-8605 0x8606 蘆 CJK UNIFIED IDEOGRAPH-8606 0x8607 蘇 CJK UNIFIED IDEOGRAPH-8607 0x860A 蘊 CJK UNIFIED IDEOGRAPH-860A 0x860B 蘋 CJK UNIFIED IDEOGRAPH-860B 0x8611 蘑 CJK UNIFIED IDEOGRAPH-8611 0x861A 蘚 CJK UNIFIED IDEOGRAPH-861A 0x8622 蘢 CJK UNIFIED IDEOGRAPH-8622 0x862D 蘭 CJK UNIFIED IDEOGRAPH-862D 0x8638 蘸 CJK UNIFIED IDEOGRAPH-8638 0x863C 蘼 CJK UNIFIED IDEOGRAPH-863C 0x863F 蘿 CJK UNIFIED IDEOGRAPH-863F 0x864E 虎 CJK UNIFIED IDEOGRAPH-864E 0x8650 虐 CJK UNIFIED IDEOGRAPH-8650 0x8654 虔 CJK UNIFIED IDEOGRAPH-8654 0x8655 處 CJK UNIFIED IDEOGRAPH-8655 0x865B 虛 CJK UNIFIED IDEOGRAPH-865B 0x865C 虜 CJK UNIFIED IDEOGRAPH-865C 0x865E 虞 CJK UNIFIED IDEOGRAPH-865E 0x865F 號 CJK UNIFIED IDEOGRAPH-865F 0x8662 虢 CJK UNIFIED IDEOGRAPH-8662 0x8667 虧 CJK UNIFIED IDEOGRAPH-8667 0x866B 虫 CJK UNIFIED IDEOGRAPH-866B 0x866F 虯 CJK UNIFIED IDEOGRAPH-866F 0x8671 虱 CJK UNIFIED IDEOGRAPH-8671 0x8679 虹 CJK UNIFIED IDEOGRAPH-8679 0x867B 虻 CJK UNIFIED IDEOGRAPH-867B 0x868A 蚊 CJK UNIFIED IDEOGRAPH-868A 0x868B 蚋 CJK UNIFIED IDEOGRAPH-868B 0x868C 蚌 CJK UNIFIED IDEOGRAPH-868C 0x8693 蚓 CJK UNIFIED IDEOGRAPH-8693 0x869C 蚜 CJK UNIFIED IDEOGRAPH-869C 0x869D 蚝 CJK UNIFIED IDEOGRAPH-869D 0x86A3 蚣 CJK UNIFIED IDEOGRAPH-86A3 0x86A4 蚤 CJK UNIFIED IDEOGRAPH-86A4 0x86A7 蚧 CJK UNIFIED IDEOGRAPH-86A7 0x86A9 蚩 CJK UNIFIED IDEOGRAPH-86A9 0x86AA 蚪 CJK UNIFIED IDEOGRAPH-86AA 0x86AF 蚯 CJK UNIFIED IDEOGRAPH-86AF 0x86B1 蚱 CJK UNIFIED IDEOGRAPH-86B1 0x86B5 蚵 CJK UNIFIED IDEOGRAPH-86B5 0x86B6 蚶 CJK UNIFIED IDEOGRAPH-86B6 0x86BA 蚺 CJK UNIFIED IDEOGRAPH-86BA 0x86C0 蛀 CJK UNIFIED IDEOGRAPH-86C0 0x86C4 蛄 CJK UNIFIED IDEOGRAPH-86C4 0x86C6 蛆 CJK UNIFIED IDEOGRAPH-86C6 0x86C7 蛇 CJK UNIFIED IDEOGRAPH-86C7 0x86C9 蛉 CJK UNIFIED IDEOGRAPH-86C9 0x86CB 蛋 CJK UNIFIED IDEOGRAPH-86CB 0x86D4 蛔 CJK UNIFIED IDEOGRAPH-86D4 0x86D9 蛙 CJK UNIFIED IDEOGRAPH-86D9 0x86DB 蛛 CJK UNIFIED IDEOGRAPH-86DB 0x86DE 蛞 CJK UNIFIED IDEOGRAPH-86DE 0x86DF 蛟 CJK UNIFIED IDEOGRAPH-86DF 0x86E4 蛤 CJK UNIFIED IDEOGRAPH-86E4 0x86ED 蛭 CJK UNIFIED IDEOGRAPH-86ED 0x86F8 蛸 CJK UNIFIED IDEOGRAPH-86F8 0x86F9 蛹 CJK UNIFIED IDEOGRAPH-86F9 0x86FA 蛺 CJK UNIFIED IDEOGRAPH-86FA 0x86FB 蛻 CJK UNIFIED IDEOGRAPH-86FB 0x86FE 蛾 CJK UNIFIED IDEOGRAPH-86FE 0x8700 蜀 CJK UNIFIED IDEOGRAPH-8700 0x8702 蜂 CJK UNIFIED IDEOGRAPH-8702 0x8703 蜃 CJK UNIFIED IDEOGRAPH-8703 0x8706 蜆 CJK UNIFIED IDEOGRAPH-8706 0x8707 蜇 CJK UNIFIED IDEOGRAPH-8707 0x8708 蜈 CJK UNIFIED IDEOGRAPH-8708 0x8709 蜉 CJK UNIFIED IDEOGRAPH-8709 0x870A 蜊 CJK UNIFIED IDEOGRAPH-870A 0x870D 蜍 CJK UNIFIED IDEOGRAPH-870D 0x8712 蜒 CJK UNIFIED IDEOGRAPH-8712 0x8713 蜓 CJK UNIFIED IDEOGRAPH-8713 0x8718 蜘 CJK UNIFIED IDEOGRAPH-8718 0x871A 蜚 CJK UNIFIED IDEOGRAPH-871A 0x871C 蜜 CJK UNIFIED IDEOGRAPH-871C 0x8721 蜡 CJK UNIFIED IDEOGRAPH-8721 0x8722 蜢 CJK UNIFIED IDEOGRAPH-8722 0x8725 蜥 CJK UNIFIED IDEOGRAPH-8725 0x8731 蜱 CJK UNIFIED IDEOGRAPH-8731 0x8734 蜴 CJK UNIFIED IDEOGRAPH-8734 0x8737 蜷 CJK UNIFIED IDEOGRAPH-8737 0x873B 蜻 CJK UNIFIED IDEOGRAPH-873B 0x873F 蜿 CJK UNIFIED IDEOGRAPH-873F 0x874C 蝌 CJK UNIFIED IDEOGRAPH-874C 0x874E 蝎 CJK UNIFIED IDEOGRAPH-874E 0x8753 蝓 CJK UNIFIED IDEOGRAPH-8753 0x8755 蝕 CJK UNIFIED IDEOGRAPH-8755 0x8757 蝗 CJK UNIFIED IDEOGRAPH-8757 0x8759 蝙 CJK UNIFIED IDEOGRAPH-8759 0x875F 蝟 CJK UNIFIED IDEOGRAPH-875F 0x8760 蝠 CJK UNIFIED IDEOGRAPH-8760 0x8763 蝣 CJK UNIFIED IDEOGRAPH-8763 0x8766 蝦 CJK UNIFIED IDEOGRAPH-8766 0x8768 蝨 CJK UNIFIED IDEOGRAPH-8768 0x876A 蝪 CJK UNIFIED IDEOGRAPH-876A 0x876E 蝮 CJK UNIFIED IDEOGRAPH-876E 0x8774 蝴 CJK UNIFIED IDEOGRAPH-8774 0x8776 蝶 CJK UNIFIED IDEOGRAPH-8776 0x8778 蝸 CJK UNIFIED IDEOGRAPH-8778 0x8782 螂 CJK UNIFIED IDEOGRAPH-8782 0x8783 螃 CJK UNIFIED IDEOGRAPH-8783 0x8784 螄 CJK UNIFIED IDEOGRAPH-8784 0x8788 螈 CJK UNIFIED IDEOGRAPH-8788 0x878D 融 CJK UNIFIED IDEOGRAPH-878D 0x879E 螞 CJK UNIFIED IDEOGRAPH-879E 0x879F 螟 CJK UNIFIED IDEOGRAPH-879F 0x87A2 螢 CJK UNIFIED IDEOGRAPH-87A2 0x87AB 螫 CJK UNIFIED IDEOGRAPH-87AB 0x87AD 螭 CJK UNIFIED IDEOGRAPH-87AD 0x87AF 螯 CJK UNIFIED IDEOGRAPH-87AF 0x87B3 螳 CJK UNIFIED IDEOGRAPH-87B3 0x87BA 螺 CJK UNIFIED IDEOGRAPH-87BA 0x87BB 螻 CJK UNIFIED IDEOGRAPH-87BB 0x87BD 螽 CJK UNIFIED IDEOGRAPH-87BD 0x87C0 蟀 CJK UNIFIED IDEOGRAPH-87C0 0x87C4 蟄 CJK UNIFIED IDEOGRAPH-87C4 0x87C6 蟆 CJK UNIFIED IDEOGRAPH-87C6 0x87C8 蟈 CJK UNIFIED IDEOGRAPH-87C8 0x87CB 蟋 CJK UNIFIED IDEOGRAPH-87CB 0x87CC 蟌 CJK UNIFIED IDEOGRAPH-87CC 0x87D1 蟑 CJK UNIFIED IDEOGRAPH-87D1 0x87D2 蟒 CJK UNIFIED IDEOGRAPH-87D2 0x87E0 蟠 CJK UNIFIED IDEOGRAPH-87E0 0x87EC 蟬 CJK UNIFIED IDEOGRAPH-87EC 0x87F2 蟲 CJK UNIFIED IDEOGRAPH-87F2 0x87F3 蟳 CJK UNIFIED IDEOGRAPH-87F3 0x87F6 蟶 CJK UNIFIED IDEOGRAPH-87F6 0x87F9 蟹 CJK UNIFIED IDEOGRAPH-87F9 0x87FB 蟻 CJK UNIFIED IDEOGRAPH-87FB 0x87FE 蟾 CJK UNIFIED IDEOGRAPH-87FE 0x8805 蠅 CJK UNIFIED IDEOGRAPH-8805 0x880A 蠊 CJK UNIFIED IDEOGRAPH-880A 0x880D 蠍 CJK UNIFIED IDEOGRAPH-880D 0x8811 蠑 CJK UNIFIED IDEOGRAPH-8811 0x8814 蠔 CJK UNIFIED IDEOGRAPH-8814 0x8815 蠕 CJK UNIFIED IDEOGRAPH-8815 0x881B 蠛 CJK UNIFIED IDEOGRAPH-881B 0x881F 蠟 CJK UNIFIED IDEOGRAPH-881F 0x8821 蠡 CJK UNIFIED IDEOGRAPH-8821 0x8822 蠢 CJK UNIFIED IDEOGRAPH-8822 0x8823 蠣 CJK UNIFIED IDEOGRAPH-8823 0x8831 蠱 CJK UNIFIED IDEOGRAPH-8831 0x8835 蠵 CJK UNIFIED IDEOGRAPH-8835 0x8836 蠶 CJK UNIFIED IDEOGRAPH-8836 0x8839 蠹 CJK UNIFIED IDEOGRAPH-8839 0x883B 蠻 CJK UNIFIED IDEOGRAPH-883B 0x8840 血 CJK UNIFIED IDEOGRAPH-8840 0x8844 衄 CJK UNIFIED IDEOGRAPH-8844 0x884A 衊 CJK UNIFIED IDEOGRAPH-884A 0x884C 行 CJK UNIFIED IDEOGRAPH-884C 0x884D 衍 CJK UNIFIED IDEOGRAPH-884D 0x8853 術 CJK UNIFIED IDEOGRAPH-8853 0x8855 衕 CJK UNIFIED IDEOGRAPH-8855 0x8856 衖 CJK UNIFIED IDEOGRAPH-8856 0x8857 街 CJK UNIFIED IDEOGRAPH-8857 0x8859 衙 CJK UNIFIED IDEOGRAPH-8859 0x885A 衚 CJK UNIFIED IDEOGRAPH-885A 0x885B 衛 CJK UNIFIED IDEOGRAPH-885B 0x885D 衝 CJK UNIFIED IDEOGRAPH-885D 0x8861 衡 CJK UNIFIED IDEOGRAPH-8861 0x8862 衢 CJK UNIFIED IDEOGRAPH-8862 0x8863 衣 CJK UNIFIED IDEOGRAPH-8863 0x8868 表 CJK UNIFIED IDEOGRAPH-8868 0x8869 衩 CJK UNIFIED IDEOGRAPH-8869 0x886A 衪 CJK UNIFIED IDEOGRAPH-886A 0x886B 衫 CJK UNIFIED IDEOGRAPH-886B 0x8870 衰 CJK UNIFIED IDEOGRAPH-8870 0x8872 衲 CJK UNIFIED IDEOGRAPH-8872 0x8877 衷 CJK UNIFIED IDEOGRAPH-8877 0x8879 衹 CJK UNIFIED IDEOGRAPH-8879 0x887D 衽 CJK UNIFIED IDEOGRAPH-887D 0x887E 衾 CJK UNIFIED IDEOGRAPH-887E 0x887F 衿 CJK UNIFIED IDEOGRAPH-887F 0x8881 袁 CJK UNIFIED IDEOGRAPH-8881 0x8882 袂 CJK UNIFIED IDEOGRAPH-8882 0x8888 袈 CJK UNIFIED IDEOGRAPH-8888 0x888B 袋 CJK UNIFIED IDEOGRAPH-888B 0x888D 袍 CJK UNIFIED IDEOGRAPH-888D 0x8892 袒 CJK UNIFIED IDEOGRAPH-8892 0x8893 袓 CJK UNIFIED IDEOGRAPH-8893 0x8896 袖 CJK UNIFIED IDEOGRAPH-8896 0x889E 袞 CJK UNIFIED IDEOGRAPH-889E 0x88A2 袢 CJK UNIFIED IDEOGRAPH-88A2 0x88A4 袤 CJK UNIFIED IDEOGRAPH-88A4 0x88AA 袪 CJK UNIFIED IDEOGRAPH-88AA 0x88AB 被 CJK UNIFIED IDEOGRAPH-88AB 0x88B1 袱 CJK UNIFIED IDEOGRAPH-88B1 0x88C1 裁 CJK UNIFIED IDEOGRAPH-88C1 0x88C2 裂 CJK UNIFIED IDEOGRAPH-88C2 0x88CA 裊 CJK UNIFIED IDEOGRAPH-88CA 0x88CF 裏 CJK UNIFIED IDEOGRAPH-88CF 0x88D4 裔 CJK UNIFIED IDEOGRAPH-88D4 0x88D5 裕 CJK UNIFIED IDEOGRAPH-88D5 0x88D8 裘 CJK UNIFIED IDEOGRAPH-88D8 0x88D9 裙 CJK UNIFIED IDEOGRAPH-88D9 0x88DC 補 CJK UNIFIED IDEOGRAPH-88DC 0x88DD 裝 CJK UNIFIED IDEOGRAPH-88DD 0x88DF 裟 CJK UNIFIED IDEOGRAPH-88DF 0x88E1 裡 CJK UNIFIED IDEOGRAPH-88E1 0x88E8 裨 CJK UNIFIED IDEOGRAPH-88E8 0x88EC 裬 CJK UNIFIED IDEOGRAPH-88EC 0x88F1 裱 CJK UNIFIED IDEOGRAPH-88F1 0x88F3 裳 CJK UNIFIED IDEOGRAPH-88F3 0x88F4 裴 CJK UNIFIED IDEOGRAPH-88F4 0x88F8 裸 CJK UNIFIED IDEOGRAPH-88F8 0x88F9 裹 CJK UNIFIED IDEOGRAPH-88F9 0x88FD 製 CJK UNIFIED IDEOGRAPH-88FD 0x88FE 裾 CJK UNIFIED IDEOGRAPH-88FE 0x8902 褂 CJK UNIFIED IDEOGRAPH-8902 0x8907 複 CJK UNIFIED IDEOGRAPH-8907 0x890B 褋 CJK UNIFIED IDEOGRAPH-890B 0x8910 褐 CJK UNIFIED IDEOGRAPH-8910 0x8912 褒 CJK UNIFIED IDEOGRAPH-8912 0x8913 褓 CJK UNIFIED IDEOGRAPH-8913 0x8914 褔 CJK UNIFIED IDEOGRAPH-8914 0x8919 褙 CJK UNIFIED IDEOGRAPH-8919 0x891A 褚 CJK UNIFIED IDEOGRAPH-891A 0x8921 褡 CJK UNIFIED IDEOGRAPH-8921 0x8925 褥 CJK UNIFIED IDEOGRAPH-8925 0x892A 褪 CJK UNIFIED IDEOGRAPH-892A 0x892B 褫 CJK UNIFIED IDEOGRAPH-892B 0x8932 褲 CJK UNIFIED IDEOGRAPH-8932 0x8936 褶 CJK UNIFIED IDEOGRAPH-8936 0x8938 褸 CJK UNIFIED IDEOGRAPH-8938 0x893B 褻 CJK UNIFIED IDEOGRAPH-893B 0x8941 襁 CJK UNIFIED IDEOGRAPH-8941 0x8944 襄 CJK UNIFIED IDEOGRAPH-8944 0x894C 襌 CJK UNIFIED IDEOGRAPH-894C 0x8956 襖 CJK UNIFIED IDEOGRAPH-8956 0x895F 襟 CJK UNIFIED IDEOGRAPH-895F 0x8960 襠 CJK UNIFIED IDEOGRAPH-8960 0x8964 襤 CJK UNIFIED IDEOGRAPH-8964 0x8966 襦 CJK UNIFIED IDEOGRAPH-8966 0x896A 襪 CJK UNIFIED IDEOGRAPH-896A 0x896C 襬 CJK UNIFIED IDEOGRAPH-896C 0x896F 襯 CJK UNIFIED IDEOGRAPH-896F 0x8972 襲 CJK UNIFIED IDEOGRAPH-8972 0x897F 西 CJK UNIFIED IDEOGRAPH-897F 0x8981 要 CJK UNIFIED IDEOGRAPH-8981 0x8983 覃 CJK UNIFIED IDEOGRAPH-8983 0x8986 覆 CJK UNIFIED IDEOGRAPH-8986 0x8988 覈 CJK UNIFIED IDEOGRAPH-8988 0x898B 見 CJK UNIFIED IDEOGRAPH-898B 0x898F 規 CJK UNIFIED IDEOGRAPH-898F 0x8993 覓 CJK UNIFIED IDEOGRAPH-8993 0x8996 視 CJK UNIFIED IDEOGRAPH-8996 0x8997 覗 CJK UNIFIED IDEOGRAPH-8997 0x89A6 覦 CJK UNIFIED IDEOGRAPH-89A6 0x89AA 親 CJK UNIFIED IDEOGRAPH-89AA 0x89AC 覬 CJK UNIFIED IDEOGRAPH-89AC 0x89B2 覲 CJK UNIFIED IDEOGRAPH-89B2 0x89B7 覷 CJK UNIFIED IDEOGRAPH-89B7 0x89BA 覺 CJK UNIFIED IDEOGRAPH-89BA 0x89BD 覽 CJK UNIFIED IDEOGRAPH-89BD 0x89C0 觀 CJK UNIFIED IDEOGRAPH-89C0 0x89D2 角 CJK UNIFIED IDEOGRAPH-89D2 0x89E3 解 CJK UNIFIED IDEOGRAPH-89E3 0x89E5 觥 CJK UNIFIED IDEOGRAPH-89E5 0x89E6 触 CJK UNIFIED IDEOGRAPH-89E6 0x89F4 觴 CJK UNIFIED IDEOGRAPH-89F4 0x89F8 觸 CJK UNIFIED IDEOGRAPH-89F8 0x8A00 言 CJK UNIFIED IDEOGRAPH-8A00 0x8A02 訂 CJK UNIFIED IDEOGRAPH-8A02 0x8A03 訃 CJK UNIFIED IDEOGRAPH-8A03 0x8A08 計 CJK UNIFIED IDEOGRAPH-8A08 0x8A0A 訊 CJK UNIFIED IDEOGRAPH-8A0A 0x8A0C 訌 CJK UNIFIED IDEOGRAPH-8A0C 0x8A0E 討 CJK UNIFIED IDEOGRAPH-8A0E 0x8A10 訐 CJK UNIFIED IDEOGRAPH-8A10 0x8A13 訓 CJK UNIFIED IDEOGRAPH-8A13 0x8A15 訕 CJK UNIFIED IDEOGRAPH-8A15 0x8A16 訖 CJK UNIFIED IDEOGRAPH-8A16 0x8A17 託 CJK UNIFIED IDEOGRAPH-8A17 0x8A18 記 CJK UNIFIED IDEOGRAPH-8A18 0x8A1B 訛 CJK UNIFIED IDEOGRAPH-8A1B 0x8A1D 訝 CJK UNIFIED IDEOGRAPH-8A1D 0x8A1F 訟 CJK UNIFIED IDEOGRAPH-8A1F 0x8A22 訢 CJK UNIFIED IDEOGRAPH-8A22 0x8A23 訣 CJK UNIFIED IDEOGRAPH-8A23 0x8A25 訥 CJK UNIFIED IDEOGRAPH-8A25 0x8A2A 訪 CJK UNIFIED IDEOGRAPH-8A2A 0x8A2D 設 CJK UNIFIED IDEOGRAPH-8A2D 0x8A31 許 CJK UNIFIED IDEOGRAPH-8A31 0x8A34 訴 CJK UNIFIED IDEOGRAPH-8A34 0x8A36 訶 CJK UNIFIED IDEOGRAPH-8A36 0x8A3A 診 CJK UNIFIED IDEOGRAPH-8A3A 0x8A3B 註 CJK UNIFIED IDEOGRAPH-8A3B 0x8A3C 証 CJK UNIFIED IDEOGRAPH-8A3C 0x8A41 詁 CJK UNIFIED IDEOGRAPH-8A41 0x8A46 詆 CJK UNIFIED IDEOGRAPH-8A46 0x8A4E 詎 CJK UNIFIED IDEOGRAPH-8A4E 0x8A50 詐 CJK UNIFIED IDEOGRAPH-8A50 0x8A52 詒 CJK UNIFIED IDEOGRAPH-8A52 0x8A54 詔 CJK UNIFIED IDEOGRAPH-8A54 0x8A55 評 CJK UNIFIED IDEOGRAPH-8A55 0x8A5B 詛 CJK UNIFIED IDEOGRAPH-8A5B 0x8A5E 詞 CJK UNIFIED IDEOGRAPH-8A5E 0x8A60 詠 CJK UNIFIED IDEOGRAPH-8A60 0x8A61 詡 CJK UNIFIED IDEOGRAPH-8A61 0x8A62 詢 CJK UNIFIED IDEOGRAPH-8A62 0x8A63 詣 CJK UNIFIED IDEOGRAPH-8A63 0x8A66 試 CJK UNIFIED IDEOGRAPH-8A66 0x8A69 詩 CJK UNIFIED IDEOGRAPH-8A69 0x8A6B 詫 CJK UNIFIED IDEOGRAPH-8A6B 0x8A6C 詬 CJK UNIFIED IDEOGRAPH-8A6C 0x8A6D 詭 CJK UNIFIED IDEOGRAPH-8A6D 0x8A6E 詮 CJK UNIFIED IDEOGRAPH-8A6E 0x8A70 詰 CJK UNIFIED IDEOGRAPH-8A70 0x8A71 話 CJK UNIFIED IDEOGRAPH-8A71 0x8A72 該 CJK UNIFIED IDEOGRAPH-8A72 0x8A73 詳 CJK UNIFIED IDEOGRAPH-8A73 0x8A79 詹 CJK UNIFIED IDEOGRAPH-8A79 0x8A7C 詼 CJK UNIFIED IDEOGRAPH-8A7C 0x8A85 誅 CJK UNIFIED IDEOGRAPH-8A85 0x8A86 誆 CJK UNIFIED IDEOGRAPH-8A86 0x8A87 誇 CJK UNIFIED IDEOGRAPH-8A87 0x8A8C 誌 CJK UNIFIED IDEOGRAPH-8A8C 0x8A8D 認 CJK UNIFIED IDEOGRAPH-8A8D 0x8A8F 誏 CJK UNIFIED IDEOGRAPH-8A8F 0x8A91 誑 CJK UNIFIED IDEOGRAPH-8A91 0x8A92 誒 CJK UNIFIED IDEOGRAPH-8A92 0x8A93 誓 CJK UNIFIED IDEOGRAPH-8A93 0x8A95 誕 CJK UNIFIED IDEOGRAPH-8A95 0x8A98 誘 CJK UNIFIED IDEOGRAPH-8A98 0x8A9A 誚 CJK UNIFIED IDEOGRAPH-8A9A 0x8A9E 語 CJK UNIFIED IDEOGRAPH-8A9E 0x8AA0 誠 CJK UNIFIED IDEOGRAPH-8AA0 0x8AA1 誡 CJK UNIFIED IDEOGRAPH-8AA1 0x8AA3 誣 CJK UNIFIED IDEOGRAPH-8AA3 0x8AA4 誤 CJK UNIFIED IDEOGRAPH-8AA4 0x8AA5 誥 CJK UNIFIED IDEOGRAPH-8AA5 0x8AA6 誦 CJK UNIFIED IDEOGRAPH-8AA6 0x8AA8 誨 CJK UNIFIED IDEOGRAPH-8AA8 0x8AAA 說 CJK UNIFIED IDEOGRAPH-8AAA 0x8AB0 誰 CJK UNIFIED IDEOGRAPH-8AB0 0x8AB2 課 CJK UNIFIED IDEOGRAPH-8AB2 0x8AB9 誹 CJK UNIFIED IDEOGRAPH-8AB9 0x8ABC 誼 CJK UNIFIED IDEOGRAPH-8ABC 0x8ABE 誾 CJK UNIFIED IDEOGRAPH-8ABE 0x8ABF 調 CJK UNIFIED IDEOGRAPH-8ABF 0x8AC2 諂 CJK UNIFIED IDEOGRAPH-8AC2 0x8AC4 諄 CJK UNIFIED IDEOGRAPH-8AC4 0x8AC7 談 CJK UNIFIED IDEOGRAPH-8AC7 0x8AC9 諉 CJK UNIFIED IDEOGRAPH-8AC9 0x8ACB 請 CJK UNIFIED IDEOGRAPH-8ACB 0x8ACD 諍 CJK UNIFIED IDEOGRAPH-8ACD 0x8ACF 諏 CJK UNIFIED IDEOGRAPH-8ACF 0x8AD2 諒 CJK UNIFIED IDEOGRAPH-8AD2 0x8AD6 論 CJK UNIFIED IDEOGRAPH-8AD6 0x8AD7 諗 CJK UNIFIED IDEOGRAPH-8AD7 0x8ADB 諛 CJK UNIFIED IDEOGRAPH-8ADB 0x8ADC 諜 CJK UNIFIED IDEOGRAPH-8ADC 0x8AE0 諠 CJK UNIFIED IDEOGRAPH-8AE0 0x8AE1 諡 CJK UNIFIED IDEOGRAPH-8AE1 0x8AE2 諢 CJK UNIFIED IDEOGRAPH-8AE2 0x8AE4 諤 CJK UNIFIED IDEOGRAPH-8AE4 0x8AE6 諦 CJK UNIFIED IDEOGRAPH-8AE6 0x8AE7 諧 CJK UNIFIED IDEOGRAPH-8AE7 0x8AEB 諫 CJK UNIFIED IDEOGRAPH-8AEB 0x8AED 諭 CJK UNIFIED IDEOGRAPH-8AED 0x8AEE 諮 CJK UNIFIED IDEOGRAPH-8AEE 0x8AF1 諱 CJK UNIFIED IDEOGRAPH-8AF1 0x8AF3 諳 CJK UNIFIED IDEOGRAPH-8AF3 0x8AF6 諶 CJK UNIFIED IDEOGRAPH-8AF6 0x8AF7 諷 CJK UNIFIED IDEOGRAPH-8AF7 0x8AF8 諸 CJK UNIFIED IDEOGRAPH-8AF8 0x8AFA 諺 CJK UNIFIED IDEOGRAPH-8AFA 0x8AFC 諼 CJK UNIFIED IDEOGRAPH-8AFC 0x8AFE 諾 CJK UNIFIED IDEOGRAPH-8AFE 0x8B00 謀 CJK UNIFIED IDEOGRAPH-8B00 0x8B01 謁 CJK UNIFIED IDEOGRAPH-8B01 0x8B02 謂 CJK UNIFIED IDEOGRAPH-8B02 0x8B04 謄 CJK UNIFIED IDEOGRAPH-8B04 0x8B05 謅 CJK UNIFIED IDEOGRAPH-8B05 0x8B0A 謊 CJK UNIFIED IDEOGRAPH-8B0A 0x8B0E 謎 CJK UNIFIED IDEOGRAPH-8B0E 0x8B10 謐 CJK UNIFIED IDEOGRAPH-8B10 0x8B14 謔 CJK UNIFIED IDEOGRAPH-8B14 0x8B16 謖 CJK UNIFIED IDEOGRAPH-8B16 0x8B17 謗 CJK UNIFIED IDEOGRAPH-8B17 0x8B19 謙 CJK UNIFIED IDEOGRAPH-8B19 0x8B1A 謚 CJK UNIFIED IDEOGRAPH-8B1A 0x8B1B 講 CJK UNIFIED IDEOGRAPH-8B1B 0x8B1D 謝 CJK UNIFIED IDEOGRAPH-8B1D 0x8B20 謠 CJK UNIFIED IDEOGRAPH-8B20 0x8B22 謢 CJK UNIFIED IDEOGRAPH-8B22 0x8B26 謦 CJK UNIFIED IDEOGRAPH-8B26 0x8B28 謨 CJK UNIFIED IDEOGRAPH-8B28 0x8B2B 謫 CJK UNIFIED IDEOGRAPH-8B2B 0x8B2C 謬 CJK UNIFIED IDEOGRAPH-8B2C 0x8B33 謳 CJK UNIFIED IDEOGRAPH-8B33 0x8B39 謹 CJK UNIFIED IDEOGRAPH-8B39 0x8B3E 謾 CJK UNIFIED IDEOGRAPH-8B3E 0x8B41 譁 CJK UNIFIED IDEOGRAPH-8B41 0x8B49 證 CJK UNIFIED IDEOGRAPH-8B49 0x8B4E 譎 CJK UNIFIED IDEOGRAPH-8B4E 0x8B4F 譏 CJK UNIFIED IDEOGRAPH-8B4F 0x8B58 識 CJK UNIFIED IDEOGRAPH-8B58 0x8B59 譙 CJK UNIFIED IDEOGRAPH-8B59 0x8B5A 譚 CJK UNIFIED IDEOGRAPH-8B5A 0x8B5C 譜 CJK UNIFIED IDEOGRAPH-8B5C 0x8B5F 譟 CJK UNIFIED IDEOGRAPH-8B5F 0x8B66 警 CJK UNIFIED IDEOGRAPH-8B66 0x8B6B 譫 CJK UNIFIED IDEOGRAPH-8B6B 0x8B6C 譬 CJK UNIFIED IDEOGRAPH-8B6C 0x8B6D 譭 CJK UNIFIED IDEOGRAPH-8B6D 0x8B6F 譯 CJK UNIFIED IDEOGRAPH-8B6F 0x8B70 議 CJK UNIFIED IDEOGRAPH-8B70 0x8B74 譴 CJK UNIFIED IDEOGRAPH-8B74 0x8B77 護 CJK UNIFIED IDEOGRAPH-8B77 0x8B7D 譽 CJK UNIFIED IDEOGRAPH-8B7D 0x8B80 讀 CJK UNIFIED IDEOGRAPH-8B80 0x8B8A 變 CJK UNIFIED IDEOGRAPH-8B8A 0x8B8E 讎 CJK UNIFIED IDEOGRAPH-8B8E 0x8B92 讒 CJK UNIFIED IDEOGRAPH-8B92 0x8B93 讓 CJK UNIFIED IDEOGRAPH-8B93 0x8B96 讖 CJK UNIFIED IDEOGRAPH-8B96 0x8B9A 讚 CJK UNIFIED IDEOGRAPH-8B9A 0x8B9E 讞 CJK UNIFIED IDEOGRAPH-8B9E 0x8C37 谷 CJK UNIFIED IDEOGRAPH-8C37 0x8C3F 谿 CJK UNIFIED IDEOGRAPH-8C3F 0x8C41 豁 CJK UNIFIED IDEOGRAPH-8C41 0x8C46 豆 CJK UNIFIED IDEOGRAPH-8C46 0x8C47 豇 CJK UNIFIED IDEOGRAPH-8C47 0x8C48 豈 CJK UNIFIED IDEOGRAPH-8C48 0x8C49 豉 CJK UNIFIED IDEOGRAPH-8C49 0x8C4A 豊 CJK UNIFIED IDEOGRAPH-8C4A 0x8C4B 豋 CJK UNIFIED IDEOGRAPH-8C4B 0x8C4C 豌 CJK UNIFIED IDEOGRAPH-8C4C 0x8C4E 豎 CJK UNIFIED IDEOGRAPH-8C4E 0x8C50 豐 CJK UNIFIED IDEOGRAPH-8C50 0x8C54 豔 CJK UNIFIED IDEOGRAPH-8C54 0x8C55 豕 CJK UNIFIED IDEOGRAPH-8C55 0x8C5A 豚 CJK UNIFIED IDEOGRAPH-8C5A 0x8C61 象 CJK UNIFIED IDEOGRAPH-8C61 0x8C62 豢 CJK UNIFIED IDEOGRAPH-8C62 0x8C6A 豪 CJK UNIFIED IDEOGRAPH-8C6A 0x8C6B 豫 CJK UNIFIED IDEOGRAPH-8C6B 0x8C6C 豬 CJK UNIFIED IDEOGRAPH-8C6C 0x8C78 豸 CJK UNIFIED IDEOGRAPH-8C78 0x8C79 豹 CJK UNIFIED IDEOGRAPH-8C79 0x8C7A 豺 CJK UNIFIED IDEOGRAPH-8C7A 0x8C82 貂 CJK UNIFIED IDEOGRAPH-8C82 0x8C85 貅 CJK UNIFIED IDEOGRAPH-8C85 0x8C89 貉 CJK UNIFIED IDEOGRAPH-8C89 0x8C8C 貌 CJK UNIFIED IDEOGRAPH-8C8C 0x8C8D 貍 CJK UNIFIED IDEOGRAPH-8C8D 0x8C93 貓 CJK UNIFIED IDEOGRAPH-8C93 0x8C94 貔 CJK UNIFIED IDEOGRAPH-8C94 0x8C98 貘 CJK UNIFIED IDEOGRAPH-8C98 0x8C9D 貝 CJK UNIFIED IDEOGRAPH-8C9D 0x8C9E 貞 CJK UNIFIED IDEOGRAPH-8C9E 0x8CA0 負 CJK UNIFIED IDEOGRAPH-8CA0 0x8CA1 財 CJK UNIFIED IDEOGRAPH-8CA1 0x8CA2 貢 CJK UNIFIED IDEOGRAPH-8CA2 0x8CA7 貧 CJK UNIFIED IDEOGRAPH-8CA7 0x8CA8 貨 CJK UNIFIED IDEOGRAPH-8CA8 0x8CA9 販 CJK UNIFIED IDEOGRAPH-8CA9 0x8CAA 貪 CJK UNIFIED IDEOGRAPH-8CAA 0x8CAB 貫 CJK UNIFIED IDEOGRAPH-8CAB 0x8CAC 責 CJK UNIFIED IDEOGRAPH-8CAC 0x8CAF 貯 CJK UNIFIED IDEOGRAPH-8CAF 0x8CB2 貲 CJK UNIFIED IDEOGRAPH-8CB2 0x8CB3 貳 CJK UNIFIED IDEOGRAPH-8CB3 0x8CB4 貴 CJK UNIFIED IDEOGRAPH-8CB4 0x8CB6 貶 CJK UNIFIED IDEOGRAPH-8CB6 0x8CB7 買 CJK UNIFIED IDEOGRAPH-8CB7 0x8CB8 貸 CJK UNIFIED IDEOGRAPH-8CB8 0x8CBB 費 CJK UNIFIED IDEOGRAPH-8CBB 0x8CBC 貼 CJK UNIFIED IDEOGRAPH-8CBC 0x8CBD 貽 CJK UNIFIED IDEOGRAPH-8CBD 0x8CBF 貿 CJK UNIFIED IDEOGRAPH-8CBF 0x8CC0 賀 CJK UNIFIED IDEOGRAPH-8CC0 0x8CC1 賁 CJK UNIFIED IDEOGRAPH-8CC1 0x8CC2 賂 CJK UNIFIED IDEOGRAPH-8CC2 0x8CC3 賃 CJK UNIFIED IDEOGRAPH-8CC3 0x8CC4 賄 CJK UNIFIED IDEOGRAPH-8CC4 0x8CC5 賅 CJK UNIFIED IDEOGRAPH-8CC5 0x8CC7 資 CJK UNIFIED IDEOGRAPH-8CC7 0x8CC8 賈 CJK UNIFIED IDEOGRAPH-8CC8 0x8CCA 賊 CJK UNIFIED IDEOGRAPH-8CCA 0x8CD1 賑 CJK UNIFIED IDEOGRAPH-8CD1 0x8CD2 賒 CJK UNIFIED IDEOGRAPH-8CD2 0x8CD3 賓 CJK UNIFIED IDEOGRAPH-8CD3 0x8CDA 賚 CJK UNIFIED IDEOGRAPH-8CDA 0x8CDC 賜 CJK UNIFIED IDEOGRAPH-8CDC 0x8CDE 賞 CJK UNIFIED IDEOGRAPH-8CDE 0x8CE0 賠 CJK UNIFIED IDEOGRAPH-8CE0 0x8CE1 賡 CJK UNIFIED IDEOGRAPH-8CE1 0x8CE2 賢 CJK UNIFIED IDEOGRAPH-8CE2 0x8CE3 賣 CJK UNIFIED IDEOGRAPH-8CE3 0x8CE4 賤 CJK UNIFIED IDEOGRAPH-8CE4 0x8CE6 賦 CJK UNIFIED IDEOGRAPH-8CE6 0x8CEA 質 CJK UNIFIED IDEOGRAPH-8CEA 0x8CEC 賬 CJK UNIFIED IDEOGRAPH-8CEC 0x8CED 賭 CJK UNIFIED IDEOGRAPH-8CED 0x8CF4 賴 CJK UNIFIED IDEOGRAPH-8CF4 0x8CF8 賸 CJK UNIFIED IDEOGRAPH-8CF8 0x8CFA 賺 CJK UNIFIED IDEOGRAPH-8CFA 0x8CFC 購 CJK UNIFIED IDEOGRAPH-8CFC 0x8CFD 賽 CJK UNIFIED IDEOGRAPH-8CFD 0x8D04 贄 CJK UNIFIED IDEOGRAPH-8D04 0x8D05 贅 CJK UNIFIED IDEOGRAPH-8D05 0x8D07 贇 CJK UNIFIED IDEOGRAPH-8D07 0x8D08 贈 CJK UNIFIED IDEOGRAPH-8D08 0x8D0A 贊 CJK UNIFIED IDEOGRAPH-8D0A 0x8D0D 贍 CJK UNIFIED IDEOGRAPH-8D0D 0x8D0F 贏 CJK UNIFIED IDEOGRAPH-8D0F 0x8D13 贓 CJK UNIFIED IDEOGRAPH-8D13 0x8D16 贖 CJK UNIFIED IDEOGRAPH-8D16 0x8D17 贗 CJK UNIFIED IDEOGRAPH-8D17 0x8D1B 贛 CJK UNIFIED IDEOGRAPH-8D1B 0x8D64 赤 CJK UNIFIED IDEOGRAPH-8D64 0x8D66 赦 CJK UNIFIED IDEOGRAPH-8D66 0x8D67 赧 CJK UNIFIED IDEOGRAPH-8D67 0x8D6B 赫 CJK UNIFIED IDEOGRAPH-8D6B 0x8D6D 赭 CJK UNIFIED IDEOGRAPH-8D6D 0x8D70 走 CJK UNIFIED IDEOGRAPH-8D70 0x8D73 赳 CJK UNIFIED IDEOGRAPH-8D73 0x8D74 赴 CJK UNIFIED IDEOGRAPH-8D74 0x8D76 赶 CJK UNIFIED IDEOGRAPH-8D76 0x8D77 起 CJK UNIFIED IDEOGRAPH-8D77 0x8D81 趁 CJK UNIFIED IDEOGRAPH-8D81 0x8D84 趄 CJK UNIFIED IDEOGRAPH-8D84 0x8D85 超 CJK UNIFIED IDEOGRAPH-8D85 0x8D8A 越 CJK UNIFIED IDEOGRAPH-8D8A 0x8D95 趕 CJK UNIFIED IDEOGRAPH-8D95 0x8D99 趙 CJK UNIFIED IDEOGRAPH-8D99 0x8D9F 趟 CJK UNIFIED IDEOGRAPH-8D9F 0x8DA3 趣 CJK UNIFIED IDEOGRAPH-8DA3 0x8DA8 趨 CJK UNIFIED IDEOGRAPH-8DA8 0x8DB3 足 CJK UNIFIED IDEOGRAPH-8DB3 0x8DB4 趴 CJK UNIFIED IDEOGRAPH-8DB4 0x8DBA 趺 CJK UNIFIED IDEOGRAPH-8DBA 0x8DBE 趾 CJK UNIFIED IDEOGRAPH-8DBE 0x8DC6 跆 CJK UNIFIED IDEOGRAPH-8DC6 0x8DCB 跋 CJK UNIFIED IDEOGRAPH-8DCB 0x8DCC 跌 CJK UNIFIED IDEOGRAPH-8DCC 0x8DCE 跎 CJK UNIFIED IDEOGRAPH-8DCE 0x8DCF 跏 CJK UNIFIED IDEOGRAPH-8DCF 0x8DD1 跑 CJK UNIFIED IDEOGRAPH-8DD1 0x8DD6 跖 CJK UNIFIED IDEOGRAPH-8DD6 0x8DD7 跗 CJK UNIFIED IDEOGRAPH-8DD7 0x8DDA 跚 CJK UNIFIED IDEOGRAPH-8DDA 0x8DDB 跛 CJK UNIFIED IDEOGRAPH-8DDB 0x8DDD 距 CJK UNIFIED IDEOGRAPH-8DDD 0x8DDF 跟 CJK UNIFIED IDEOGRAPH-8DDF 0x8DE1 跡 CJK UNIFIED IDEOGRAPH-8DE1 0x8DE3 跣 CJK UNIFIED IDEOGRAPH-8DE3 0x8DE4 跤 CJK UNIFIED IDEOGRAPH-8DE4 0x8DE8 跨 CJK UNIFIED IDEOGRAPH-8DE8 0x8DE9 跩 CJK UNIFIED IDEOGRAPH-8DE9 0x8DEA 跪 CJK UNIFIED IDEOGRAPH-8DEA 0x8DEF 路 CJK UNIFIED IDEOGRAPH-8DEF 0x8DF3 跳 CJK UNIFIED IDEOGRAPH-8DF3 0x8DFA 跺 CJK UNIFIED IDEOGRAPH-8DFA 0x8E09 踉 CJK UNIFIED IDEOGRAPH-8E09 0x8E0A 踊 CJK UNIFIED IDEOGRAPH-8E0A 0x8E0F 踏 CJK UNIFIED IDEOGRAPH-8E0F 0x8E10 踐 CJK UNIFIED IDEOGRAPH-8E10 0x8E1D 踝 CJK UNIFIED IDEOGRAPH-8E1D 0x8E1E 踞 CJK UNIFIED IDEOGRAPH-8E1E 0x8E1F 踟 CJK UNIFIED IDEOGRAPH-8E1F 0x8E22 踢 CJK UNIFIED IDEOGRAPH-8E22 0x8E29 踩 CJK UNIFIED IDEOGRAPH-8E29 0x8E2B 踫 CJK UNIFIED IDEOGRAPH-8E2B 0x8E2E 踮 CJK UNIFIED IDEOGRAPH-8E2E 0x8E30 踰 CJK UNIFIED IDEOGRAPH-8E30 0x8E31 踱 CJK UNIFIED IDEOGRAPH-8E31 0x8E34 踴 CJK UNIFIED IDEOGRAPH-8E34 0x8E35 踵 CJK UNIFIED IDEOGRAPH-8E35 0x8E39 踹 CJK UNIFIED IDEOGRAPH-8E39 0x8E3C 踼 CJK UNIFIED IDEOGRAPH-8E3C 0x8E42 蹂 CJK UNIFIED IDEOGRAPH-8E42 0x8E44 蹄 CJK UNIFIED IDEOGRAPH-8E44 0x8E47 蹇 CJK UNIFIED IDEOGRAPH-8E47 0x8E48 蹈 CJK UNIFIED IDEOGRAPH-8E48 0x8E49 蹉 CJK UNIFIED IDEOGRAPH-8E49 0x8E4A 蹊 CJK UNIFIED IDEOGRAPH-8E4A 0x8E4B 蹋 CJK UNIFIED IDEOGRAPH-8E4B 0x8E4C 蹌 CJK UNIFIED IDEOGRAPH-8E4C 0x8E53 蹓 CJK UNIFIED IDEOGRAPH-8E53 0x8E59 蹙 CJK UNIFIED IDEOGRAPH-8E59 0x8E5F 蹟 CJK UNIFIED IDEOGRAPH-8E5F 0x8E60 蹠 CJK UNIFIED IDEOGRAPH-8E60 0x8E63 蹣 CJK UNIFIED IDEOGRAPH-8E63 0x8E64 蹤 CJK UNIFIED IDEOGRAPH-8E64 0x8E66 蹦 CJK UNIFIED IDEOGRAPH-8E66 0x8E69 蹩 CJK UNIFIED IDEOGRAPH-8E69 0x8E6C 蹬 CJK UNIFIED IDEOGRAPH-8E6C 0x8E6D 蹭 CJK UNIFIED IDEOGRAPH-8E6D 0x8E72 蹲 CJK UNIFIED IDEOGRAPH-8E72 0x8E74 蹴 CJK UNIFIED IDEOGRAPH-8E74 0x8E76 蹶 CJK UNIFIED IDEOGRAPH-8E76 0x8E7A 蹺 CJK UNIFIED IDEOGRAPH-8E7A 0x8E7C 蹼 CJK UNIFIED IDEOGRAPH-8E7C 0x8E81 躁 CJK UNIFIED IDEOGRAPH-8E81 0x8E82 躂 CJK UNIFIED IDEOGRAPH-8E82 0x8E87 躇 CJK UNIFIED IDEOGRAPH-8E87 0x8E89 躉 CJK UNIFIED IDEOGRAPH-8E89 0x8E8A 躊 CJK UNIFIED IDEOGRAPH-8E8A 0x8E8B 躋 CJK UNIFIED IDEOGRAPH-8E8B 0x8E8D 躍 CJK UNIFIED IDEOGRAPH-8E8D 0x8E91 躑 CJK UNIFIED IDEOGRAPH-8E91 0x8EA1 躡 CJK UNIFIED IDEOGRAPH-8EA1 0x8EA5 躥 CJK UNIFIED IDEOGRAPH-8EA5 0x8EAA 躪 CJK UNIFIED IDEOGRAPH-8EAA 0x8EAB 身 CJK UNIFIED IDEOGRAPH-8EAB 0x8EAC 躬 CJK UNIFIED IDEOGRAPH-8EAC 0x8EB2 躲 CJK UNIFIED IDEOGRAPH-8EB2 0x8EBA 躺 CJK UNIFIED IDEOGRAPH-8EBA 0x8EC0 軀 CJK UNIFIED IDEOGRAPH-8EC0 0x8ECA 車 CJK UNIFIED IDEOGRAPH-8ECA 0x8ECB 軋 CJK UNIFIED IDEOGRAPH-8ECB 0x8ECC 軌 CJK UNIFIED IDEOGRAPH-8ECC 0x8ECD 軍 CJK UNIFIED IDEOGRAPH-8ECD 0x8ED2 軒 CJK UNIFIED IDEOGRAPH-8ED2 0x8ED4 軔 CJK UNIFIED IDEOGRAPH-8ED4 0x8EDB 軛 CJK UNIFIED IDEOGRAPH-8EDB 0x8EDF 軟 CJK UNIFIED IDEOGRAPH-8EDF 0x8EE8 軨 CJK UNIFIED IDEOGRAPH-8EE8 0x8EEB 軫 CJK UNIFIED IDEOGRAPH-8EEB 0x8EF8 軸 CJK UNIFIED IDEOGRAPH-8EF8 0x8EFB 軻 CJK UNIFIED IDEOGRAPH-8EFB 0x8EFC 軼 CJK UNIFIED IDEOGRAPH-8EFC 0x8EFE 軾 CJK UNIFIED IDEOGRAPH-8EFE 0x8F03 較 CJK UNIFIED IDEOGRAPH-8F03 0x8F09 載 CJK UNIFIED IDEOGRAPH-8F09 0x8F0A 輊 CJK UNIFIED IDEOGRAPH-8F0A 0x8F0B 輋 CJK UNIFIED IDEOGRAPH-8F0B 0x8F12 輒 CJK UNIFIED IDEOGRAPH-8F12 0x8F13 輓 CJK UNIFIED IDEOGRAPH-8F13 0x8F14 輔 CJK UNIFIED IDEOGRAPH-8F14 0x8F15 輕 CJK UNIFIED IDEOGRAPH-8F15 0x8F1B 輛 CJK UNIFIED IDEOGRAPH-8F1B 0x8F1C 輜 CJK UNIFIED IDEOGRAPH-8F1C 0x8F1D 輝 CJK UNIFIED IDEOGRAPH-8F1D 0x8F1F 輟 CJK UNIFIED IDEOGRAPH-8F1F 0x8F25 輥 CJK UNIFIED IDEOGRAPH-8F25 0x8F26 輦 CJK UNIFIED IDEOGRAPH-8F26 0x8F29 輩 CJK UNIFIED IDEOGRAPH-8F29 0x8F2A 輪 CJK UNIFIED IDEOGRAPH-8F2A 0x8F2F 輯 CJK UNIFIED IDEOGRAPH-8F2F 0x8F38 輸 CJK UNIFIED IDEOGRAPH-8F38 0x8F3B 輻 CJK UNIFIED IDEOGRAPH-8F3B 0x8F3E 輾 CJK UNIFIED IDEOGRAPH-8F3E 0x8F3F 輿 CJK UNIFIED IDEOGRAPH-8F3F 0x8F42 轂 CJK UNIFIED IDEOGRAPH-8F42 0x8F44 轄 CJK UNIFIED IDEOGRAPH-8F44 0x8F45 轅 CJK UNIFIED IDEOGRAPH-8F45 0x8F46 轆 CJK UNIFIED IDEOGRAPH-8F46 0x8F49 轉 CJK UNIFIED IDEOGRAPH-8F49 0x8F4D 轍 CJK UNIFIED IDEOGRAPH-8F4D 0x8F4E 轎 CJK UNIFIED IDEOGRAPH-8F4E 0x8F5F 轟 CJK UNIFIED IDEOGRAPH-8F5F 0x8F61 轡 CJK UNIFIED IDEOGRAPH-8F61 0x8F9B 辛 CJK UNIFIED IDEOGRAPH-8F9B 0x8F9C 辜 CJK UNIFIED IDEOGRAPH-8F9C 0x8F9F 辟 CJK UNIFIED IDEOGRAPH-8F9F 0x8FA3 辣 CJK UNIFIED IDEOGRAPH-8FA3 0x8FA6 辦 CJK UNIFIED IDEOGRAPH-8FA6 0x8FA8 辨 CJK UNIFIED IDEOGRAPH-8FA8 0x8FAD 辭 CJK UNIFIED IDEOGRAPH-8FAD 0x8FAE 辮 CJK UNIFIED IDEOGRAPH-8FAE 0x8FAF 辯 CJK UNIFIED IDEOGRAPH-8FAF 0x8FB0 辰 CJK UNIFIED IDEOGRAPH-8FB0 0x8FB1 辱 CJK UNIFIED IDEOGRAPH-8FB1 0x8FB2 農 CJK UNIFIED IDEOGRAPH-8FB2 0x8FC2 迂 CJK UNIFIED IDEOGRAPH-8FC2 0x8FC4 迄 CJK UNIFIED IDEOGRAPH-8FC4 0x8FC5 迅 CJK UNIFIED IDEOGRAPH-8FC5 0x8FCE 迎 CJK UNIFIED IDEOGRAPH-8FCE 0x8FD1 近 CJK UNIFIED IDEOGRAPH-8FD1 0x8FD3 迓 CJK UNIFIED IDEOGRAPH-8FD3 0x8FD4 返 CJK UNIFIED IDEOGRAPH-8FD4 0x8FE2 迢 CJK UNIFIED IDEOGRAPH-8FE2 0x8FE4 迤 CJK UNIFIED IDEOGRAPH-8FE4 0x8FE5 迥 CJK UNIFIED IDEOGRAPH-8FE5 0x8FE6 迦 CJK UNIFIED IDEOGRAPH-8FE6 0x8FE8 迨 CJK UNIFIED IDEOGRAPH-8FE8 0x8FEA 迪 CJK UNIFIED IDEOGRAPH-8FEA 0x8FEB 迫 CJK UNIFIED IDEOGRAPH-8FEB 0x8FED 迭 CJK UNIFIED IDEOGRAPH-8FED 0x8FF0 述 CJK UNIFIED IDEOGRAPH-8FF0 0x8FF4 迴 CJK UNIFIED IDEOGRAPH-8FF4 0x8FF7 迷 CJK UNIFIED IDEOGRAPH-8FF7 0x8FF8 迸 CJK UNIFIED IDEOGRAPH-8FF8 0x8FFA 迺 CJK UNIFIED IDEOGRAPH-8FFA 0x8FFD 追 CJK UNIFIED IDEOGRAPH-8FFD 0x9000 退 CJK UNIFIED IDEOGRAPH-9000 0x9001 送 CJK UNIFIED IDEOGRAPH-9001 0x9002 适 CJK UNIFIED IDEOGRAPH-9002 0x9003 逃 CJK UNIFIED IDEOGRAPH-9003 0x9004 逄 CJK UNIFIED IDEOGRAPH-9004 0x9005 逅 CJK UNIFIED IDEOGRAPH-9005 0x9006 逆 CJK UNIFIED IDEOGRAPH-9006 0x900B 逋 CJK UNIFIED IDEOGRAPH-900B 0x900D 逍 CJK UNIFIED IDEOGRAPH-900D 0x900F 透 CJK UNIFIED IDEOGRAPH-900F 0x9010 逐 CJK UNIFIED IDEOGRAPH-9010 0x9011 逑 CJK UNIFIED IDEOGRAPH-9011 0x9014 途 CJK UNIFIED IDEOGRAPH-9014 0x9015 逕 CJK UNIFIED IDEOGRAPH-9015 0x9017 逗 CJK UNIFIED IDEOGRAPH-9017 0x9019 這 CJK UNIFIED IDEOGRAPH-9019 0x901A 通 CJK UNIFIED IDEOGRAPH-901A 0x901B 逛 CJK UNIFIED IDEOGRAPH-901B 0x901D 逝 CJK UNIFIED IDEOGRAPH-901D 0x901E 逞 CJK UNIFIED IDEOGRAPH-901E 0x901F 速 CJK UNIFIED IDEOGRAPH-901F 0x9020 造 CJK UNIFIED IDEOGRAPH-9020 0x9022 逢 CJK UNIFIED IDEOGRAPH-9022 0x9023 連 CJK UNIFIED IDEOGRAPH-9023 0x902E 逮 CJK UNIFIED IDEOGRAPH-902E 0x9031 週 CJK UNIFIED IDEOGRAPH-9031 0x9032 進 CJK UNIFIED IDEOGRAPH-9032 0x9035 逵 CJK UNIFIED IDEOGRAPH-9035 0x9036 逶 CJK UNIFIED IDEOGRAPH-9036 0x9038 逸 CJK UNIFIED IDEOGRAPH-9038 0x903C 逼 CJK UNIFIED IDEOGRAPH-903C 0x903E 逾 CJK UNIFIED IDEOGRAPH-903E 0x9041 遁 CJK UNIFIED IDEOGRAPH-9041 0x9042 遂 CJK UNIFIED IDEOGRAPH-9042 0x9047 遇 CJK UNIFIED IDEOGRAPH-9047 0x904A 遊 CJK UNIFIED IDEOGRAPH-904A 0x904B 運 CJK UNIFIED IDEOGRAPH-904B 0x904D 遍 CJK UNIFIED IDEOGRAPH-904D 0x904E 過 CJK UNIFIED IDEOGRAPH-904E 0x904F 遏 CJK UNIFIED IDEOGRAPH-904F 0x9050 遐 CJK UNIFIED IDEOGRAPH-9050 0x9051 遑 CJK UNIFIED IDEOGRAPH-9051 0x9052 遒 CJK UNIFIED IDEOGRAPH-9052 0x9053 道 CJK UNIFIED IDEOGRAPH-9053 0x9054 達 CJK UNIFIED IDEOGRAPH-9054 0x9055 違 CJK UNIFIED IDEOGRAPH-9055 0x9059 遙 CJK UNIFIED IDEOGRAPH-9059 0x905B 遛 CJK UNIFIED IDEOGRAPH-905B 0x905C 遜 CJK UNIFIED IDEOGRAPH-905C 0x905E 遞 CJK UNIFIED IDEOGRAPH-905E 0x9060 遠 CJK UNIFIED IDEOGRAPH-9060 0x9062 遢 CJK UNIFIED IDEOGRAPH-9062 0x9063 遣 CJK UNIFIED IDEOGRAPH-9063 0x9068 遨 CJK UNIFIED IDEOGRAPH-9068 0x9069 適 CJK UNIFIED IDEOGRAPH-9069 0x906D 遭 CJK UNIFIED IDEOGRAPH-906D 0x906E 遮 CJK UNIFIED IDEOGRAPH-906E 0x9072 遲 CJK UNIFIED IDEOGRAPH-9072 0x9074 遴 CJK UNIFIED IDEOGRAPH-9074 0x9075 遵 CJK UNIFIED IDEOGRAPH-9075 0x9076 遶 CJK UNIFIED IDEOGRAPH-9076 0x9077 遷 CJK UNIFIED IDEOGRAPH-9077 0x9078 選 CJK UNIFIED IDEOGRAPH-9078 0x907A 遺 CJK UNIFIED IDEOGRAPH-907A 0x907C 遼 CJK UNIFIED IDEOGRAPH-907C 0x907D 遽 CJK UNIFIED IDEOGRAPH-907D 0x907F 避 CJK UNIFIED IDEOGRAPH-907F 0x9080 邀 CJK UNIFIED IDEOGRAPH-9080 0x9081 邁 CJK UNIFIED IDEOGRAPH-9081 0x9082 邂 CJK UNIFIED IDEOGRAPH-9082 0x9083 邃 CJK UNIFIED IDEOGRAPH-9083 0x9084 還 CJK UNIFIED IDEOGRAPH-9084 0x9087 邇 CJK UNIFIED IDEOGRAPH-9087 0x9088 邈 CJK UNIFIED IDEOGRAPH-9088 0x908A 邊 CJK UNIFIED IDEOGRAPH-908A 0x908B 邋 CJK UNIFIED IDEOGRAPH-908B 0x908F 邏 CJK UNIFIED IDEOGRAPH-908F 0x9090 邐 CJK UNIFIED IDEOGRAPH-9090 0x9091 邑 CJK UNIFIED IDEOGRAPH-9091 0x9095 邕 CJK UNIFIED IDEOGRAPH-9095 0x909B 邛 CJK UNIFIED IDEOGRAPH-909B 0x90A2 邢 CJK UNIFIED IDEOGRAPH-90A2 0x90A3 那 CJK UNIFIED IDEOGRAPH-90A3 0x90A6 邦 CJK UNIFIED IDEOGRAPH-90A6 0x90AA 邪 CJK UNIFIED IDEOGRAPH-90AA 0x90AF 邯 CJK UNIFIED IDEOGRAPH-90AF 0x90B0 邰 CJK UNIFIED IDEOGRAPH-90B0 0x90B1 邱 CJK UNIFIED IDEOGRAPH-90B1 0x90B3 邳 CJK UNIFIED IDEOGRAPH-90B3 0x90B5 邵 CJK UNIFIED IDEOGRAPH-90B5 0x90B8 邸 CJK UNIFIED IDEOGRAPH-90B8 0x90C1 郁 CJK UNIFIED IDEOGRAPH-90C1 0x90C3 郃 CJK UNIFIED IDEOGRAPH-90C3 0x90C5 郅 CJK UNIFIED IDEOGRAPH-90C5 0x90CA 郊 CJK UNIFIED IDEOGRAPH-90CA 0x90CE 郎 CJK UNIFIED IDEOGRAPH-90CE 0x90DC 郜 CJK UNIFIED IDEOGRAPH-90DC 0x90DD 郝 CJK UNIFIED IDEOGRAPH-90DD 0x90E1 郡 CJK UNIFIED IDEOGRAPH-90E1 0x90E2 郢 CJK UNIFIED IDEOGRAPH-90E2 0x90E4 郤 CJK UNIFIED IDEOGRAPH-90E4 0x90E8 部 CJK UNIFIED IDEOGRAPH-90E8 0x90EB 郫 CJK UNIFIED IDEOGRAPH-90EB 0x90ED 郭 CJK UNIFIED IDEOGRAPH-90ED 0x90F4 郴 CJK UNIFIED IDEOGRAPH-90F4 0x90F5 郵 CJK UNIFIED IDEOGRAPH-90F5 0x90FD 都 CJK UNIFIED IDEOGRAPH-90FD 0x9102 鄂 CJK UNIFIED IDEOGRAPH-9102 0x9109 鄉 CJK UNIFIED IDEOGRAPH-9109 0x9112 鄒 CJK UNIFIED IDEOGRAPH-9112 0x9114 鄔 CJK UNIFIED IDEOGRAPH-9114 0x9119 鄙 CJK UNIFIED IDEOGRAPH-9119 0x911E 鄞 CJK UNIFIED IDEOGRAPH-911E 0x9122 鄢 CJK UNIFIED IDEOGRAPH-9122 0x9127 鄧 CJK UNIFIED IDEOGRAPH-9127 0x912D 鄭 CJK UNIFIED IDEOGRAPH-912D 0x9130 鄰 CJK UNIFIED IDEOGRAPH-9130 0x9131 鄱 CJK UNIFIED IDEOGRAPH-9131 0x9132 鄲 CJK UNIFIED IDEOGRAPH-9132 0x9134 鄴 CJK UNIFIED IDEOGRAPH-9134 0x913A 鄺 CJK UNIFIED IDEOGRAPH-913A 0x9146 酆 CJK UNIFIED IDEOGRAPH-9146 0x9148 酈 CJK UNIFIED IDEOGRAPH-9148 0x9149 酉 CJK UNIFIED IDEOGRAPH-9149 0x914A 酊 CJK UNIFIED IDEOGRAPH-914A 0x914B 酋 CJK UNIFIED IDEOGRAPH-914B 0x914C 酌 CJK UNIFIED IDEOGRAPH-914C 0x914D 配 CJK UNIFIED IDEOGRAPH-914D 0x914E 酎 CJK UNIFIED IDEOGRAPH-914E 0x9150 酐 CJK UNIFIED IDEOGRAPH-9150 0x9152 酒 CJK UNIFIED IDEOGRAPH-9152 0x9157 酗 CJK UNIFIED IDEOGRAPH-9157 0x915A 酚 CJK UNIFIED IDEOGRAPH-915A 0x9162 酢 CJK UNIFIED IDEOGRAPH-9162 0x9163 酣 CJK UNIFIED IDEOGRAPH-9163 0x9165 酥 CJK UNIFIED IDEOGRAPH-9165 0x9169 酩 CJK UNIFIED IDEOGRAPH-9169 0x916A 酪 CJK UNIFIED IDEOGRAPH-916A 0x916C 酬 CJK UNIFIED IDEOGRAPH-916C 0x916E 酮 CJK UNIFIED IDEOGRAPH-916E 0x916F 酯 CJK UNIFIED IDEOGRAPH-916F 0x9175 酵 CJK UNIFIED IDEOGRAPH-9175 0x9177 酷 CJK UNIFIED IDEOGRAPH-9177 0x9178 酸 CJK UNIFIED IDEOGRAPH-9178 0x9182 醂 CJK UNIFIED IDEOGRAPH-9182 0x9183 醃 CJK UNIFIED IDEOGRAPH-9183 0x9187 醇 CJK UNIFIED IDEOGRAPH-9187 0x9189 醉 CJK UNIFIED IDEOGRAPH-9189 0x918B 醋 CJK UNIFIED IDEOGRAPH-918B 0x918D 醍 CJK UNIFIED IDEOGRAPH-918D 0x9190 醐 CJK UNIFIED IDEOGRAPH-9190 0x9192 醒 CJK UNIFIED IDEOGRAPH-9192 0x919A 醚 CJK UNIFIED IDEOGRAPH-919A 0x919B 醛 CJK UNIFIED IDEOGRAPH-919B 0x919C 醜 CJK UNIFIED IDEOGRAPH-919C 0x919E 醞 CJK UNIFIED IDEOGRAPH-919E 0x91A3 醣 CJK UNIFIED IDEOGRAPH-91A3 0x91AA 醪 CJK UNIFIED IDEOGRAPH-91AA 0x91AB 醫 CJK UNIFIED IDEOGRAPH-91AB 0x91AC 醬 CJK UNIFIED IDEOGRAPH-91AC 0x91AE 醮 CJK UNIFIED IDEOGRAPH-91AE 0x91AF 醯 CJK UNIFIED IDEOGRAPH-91AF 0x91B1 醱 CJK UNIFIED IDEOGRAPH-91B1 0x91B4 醴 CJK UNIFIED IDEOGRAPH-91B4 0x91BA 醺 CJK UNIFIED IDEOGRAPH-91BA 0x91C0 釀 CJK UNIFIED IDEOGRAPH-91C0 0x91C1 釁 CJK UNIFIED IDEOGRAPH-91C1 0x91C6 釆 CJK UNIFIED IDEOGRAPH-91C6 0x91C7 采 CJK UNIFIED IDEOGRAPH-91C7 0x91C9 釉 CJK UNIFIED IDEOGRAPH-91C9 0x91CB 釋 CJK UNIFIED IDEOGRAPH-91CB 0x91CC 里 CJK UNIFIED IDEOGRAPH-91CC 0x91CD 重 CJK UNIFIED IDEOGRAPH-91CD 0x91CE 野 CJK UNIFIED IDEOGRAPH-91CE 0x91CF 量 CJK UNIFIED IDEOGRAPH-91CF 0x91D0 釐 CJK UNIFIED IDEOGRAPH-91D0 0x91D1 金 CJK UNIFIED IDEOGRAPH-91D1 0x91D4 釔 CJK UNIFIED IDEOGRAPH-91D4 0x91D7 釗 CJK UNIFIED IDEOGRAPH-91D7 0x91D8 釘 CJK UNIFIED IDEOGRAPH-91D8 0x91DC 釜 CJK UNIFIED IDEOGRAPH-91DC 0x91DD 針 CJK UNIFIED IDEOGRAPH-91DD 0x91E3 釣 CJK UNIFIED IDEOGRAPH-91E3 0x91E4 釤 CJK UNIFIED IDEOGRAPH-91E4 0x91E6 釦 CJK UNIFIED IDEOGRAPH-91E6 0x91E7 釧 CJK UNIFIED IDEOGRAPH-91E7 0x91E9 釩 CJK UNIFIED IDEOGRAPH-91E9 0x91F5 釵 CJK UNIFIED IDEOGRAPH-91F5 0x91F7 釷 CJK UNIFIED IDEOGRAPH-91F7 0x91F9 釹 CJK UNIFIED IDEOGRAPH-91F9 0x9200 鈀 CJK UNIFIED IDEOGRAPH-9200 0x9205 鈅 CJK UNIFIED IDEOGRAPH-9205 0x9209 鈉 CJK UNIFIED IDEOGRAPH-9209 0x920A 鈊 CJK UNIFIED IDEOGRAPH-920A 0x920D 鈍 CJK UNIFIED IDEOGRAPH-920D 0x9210 鈐 CJK UNIFIED IDEOGRAPH-9210 0x9211 鈑 CJK UNIFIED IDEOGRAPH-9211 0x9214 鈔 CJK UNIFIED IDEOGRAPH-9214 0x9215 鈕 CJK UNIFIED IDEOGRAPH-9215 0x921C 鈜 CJK UNIFIED IDEOGRAPH-921C 0x921E 鈞 CJK UNIFIED IDEOGRAPH-921E 0x9223 鈣 CJK UNIFIED IDEOGRAPH-9223 0x9226 鈦 CJK UNIFIED IDEOGRAPH-9226 0x922E 鈮 CJK UNIFIED IDEOGRAPH-922E 0x9234 鈴 CJK UNIFIED IDEOGRAPH-9234 0x9237 鈷 CJK UNIFIED IDEOGRAPH-9237 0x9238 鈸 CJK UNIFIED IDEOGRAPH-9238 0x9239 鈹 CJK UNIFIED IDEOGRAPH-9239 0x923A 鈺 CJK UNIFIED IDEOGRAPH-923A 0x923E 鈾 CJK UNIFIED IDEOGRAPH-923E 0x923F 鈿 CJK UNIFIED IDEOGRAPH-923F 0x9240 鉀 CJK UNIFIED IDEOGRAPH-9240 0x9245 鉅 CJK UNIFIED IDEOGRAPH-9245 0x9246 鉆 CJK UNIFIED IDEOGRAPH-9246 0x9248 鉈 CJK UNIFIED IDEOGRAPH-9248 0x9249 鉉 CJK UNIFIED IDEOGRAPH-9249 0x924B 鉋 CJK UNIFIED IDEOGRAPH-924B 0x9251 鉑 CJK UNIFIED IDEOGRAPH-9251 0x9257 鉗 CJK UNIFIED IDEOGRAPH-9257 0x925A 鉚 CJK UNIFIED IDEOGRAPH-925A 0x925B 鉛 CJK UNIFIED IDEOGRAPH-925B 0x925E 鉞 CJK UNIFIED IDEOGRAPH-925E 0x9262 鉢 CJK UNIFIED IDEOGRAPH-9262 0x9264 鉤 CJK UNIFIED IDEOGRAPH-9264 0x9266 鉦 CJK UNIFIED IDEOGRAPH-9266 0x926C 鉬 CJK UNIFIED IDEOGRAPH-926C 0x926D 鉭 CJK UNIFIED IDEOGRAPH-926D 0x9278 鉸 CJK UNIFIED IDEOGRAPH-9278 0x927B 鉻 CJK UNIFIED IDEOGRAPH-927B 0x9280 銀 CJK UNIFIED IDEOGRAPH-9280 0x9283 銃 CJK UNIFIED IDEOGRAPH-9283 0x9285 銅 CJK UNIFIED IDEOGRAPH-9285 0x9291 銑 CJK UNIFIED IDEOGRAPH-9291 0x9293 銓 CJK UNIFIED IDEOGRAPH-9293 0x9296 銖 CJK UNIFIED IDEOGRAPH-9296 0x9298 銘 CJK UNIFIED IDEOGRAPH-9298 0x929A 銚 CJK UNIFIED IDEOGRAPH-929A 0x929C 銜 CJK UNIFIED IDEOGRAPH-929C 0x92A0 銠 CJK UNIFIED IDEOGRAPH-92A0 0x92A1 銡 CJK UNIFIED IDEOGRAPH-92A1 0x92A3 銣 CJK UNIFIED IDEOGRAPH-92A3 0x92A5 銥 CJK UNIFIED IDEOGRAPH-92A5 0x92A6 銦 CJK UNIFIED IDEOGRAPH-92A6 0x92A7 銧 CJK UNIFIED IDEOGRAPH-92A7 0x92A8 銨 CJK UNIFIED IDEOGRAPH-92A8 0x92AC 銬 CJK UNIFIED IDEOGRAPH-92AC 0x92B2 銲 CJK UNIFIED IDEOGRAPH-92B2 0x92B3 銳 CJK UNIFIED IDEOGRAPH-92B3 0x92B7 銷 CJK UNIFIED IDEOGRAPH-92B7 0x92B9 銹 CJK UNIFIED IDEOGRAPH-92B9 0x92BB 銻 CJK UNIFIED IDEOGRAPH-92BB 0x92BC 銼 CJK UNIFIED IDEOGRAPH-92BC 0x92C1 鋁 CJK UNIFIED IDEOGRAPH-92C1 0x92C3 鋃 CJK UNIFIED IDEOGRAPH-92C3 0x92C5 鋅 CJK UNIFIED IDEOGRAPH-92C5 0x92C6 鋆 CJK UNIFIED IDEOGRAPH-92C6 0x92C7 鋇 CJK UNIFIED IDEOGRAPH-92C7 0x92CC 鋌 CJK UNIFIED IDEOGRAPH-92CC 0x92CF 鋏 CJK UNIFIED IDEOGRAPH-92CF 0x92D0 鋐 CJK UNIFIED IDEOGRAPH-92D0 0x92D2 鋒 CJK UNIFIED IDEOGRAPH-92D2 0x92D5 鋕 CJK UNIFIED IDEOGRAPH-92D5 0x92E4 鋤 CJK UNIFIED IDEOGRAPH-92E4 0x92EA 鋪 CJK UNIFIED IDEOGRAPH-92EA 0x92EE 鋮 CJK UNIFIED IDEOGRAPH-92EE 0x92EF 鋯 CJK UNIFIED IDEOGRAPH-92EF 0x92F0 鋰 CJK UNIFIED IDEOGRAPH-92F0 0x92F8 鋸 CJK UNIFIED IDEOGRAPH-92F8 0x92FC 鋼 CJK UNIFIED IDEOGRAPH-92FC 0x9304 錄 CJK UNIFIED IDEOGRAPH-9304 0x930F 錏 CJK UNIFIED IDEOGRAPH-930F 0x9310 錐 CJK UNIFIED IDEOGRAPH-9310 0x9312 錒 CJK UNIFIED IDEOGRAPH-9312 0x9315 錕 CJK UNIFIED IDEOGRAPH-9315 0x9318 錘 CJK UNIFIED IDEOGRAPH-9318 0x9319 錙 CJK UNIFIED IDEOGRAPH-9319 0x931A 錚 CJK UNIFIED IDEOGRAPH-931A 0x931E 錞 CJK UNIFIED IDEOGRAPH-931E 0x9320 錠 CJK UNIFIED IDEOGRAPH-9320 0x9321 錡 CJK UNIFIED IDEOGRAPH-9321 0x9322 錢 CJK UNIFIED IDEOGRAPH-9322 0x9324 錤 CJK UNIFIED IDEOGRAPH-9324 0x9326 錦 CJK UNIFIED IDEOGRAPH-9326 0x9328 錨 CJK UNIFIED IDEOGRAPH-9328 0x9329 錩 CJK UNIFIED IDEOGRAPH-9329 0x932B 錫 CJK UNIFIED IDEOGRAPH-932B 0x932E 錮 CJK UNIFIED IDEOGRAPH-932E 0x932F 錯 CJK UNIFIED IDEOGRAPH-932F 0x9333 錳 CJK UNIFIED IDEOGRAPH-9333 0x9335 錵 CJK UNIFIED IDEOGRAPH-9335 0x9336 錶 CJK UNIFIED IDEOGRAPH-9336 0x9338 錸 CJK UNIFIED IDEOGRAPH-9338 0x9347 鍇 CJK UNIFIED IDEOGRAPH-9347 0x934A 鍊 CJK UNIFIED IDEOGRAPH-934A 0x934B 鍋 CJK UNIFIED IDEOGRAPH-934B 0x934D 鍍 CJK UNIFIED IDEOGRAPH-934D 0x9354 鍔 CJK UNIFIED IDEOGRAPH-9354 0x9358 鍘 CJK UNIFIED IDEOGRAPH-9358 0x935A 鍚 CJK UNIFIED IDEOGRAPH-935A 0x935B 鍛 CJK UNIFIED IDEOGRAPH-935B 0x9360 鍠 CJK UNIFIED IDEOGRAPH-9360 0x9365 鍥 CJK UNIFIED IDEOGRAPH-9365 0x936C 鍬 CJK UNIFIED IDEOGRAPH-936C 0x9370 鍰 CJK UNIFIED IDEOGRAPH-9370 0x9375 鍵 CJK UNIFIED IDEOGRAPH-9375 0x9376 鍶 CJK UNIFIED IDEOGRAPH-9376 0x937A 鍺 CJK UNIFIED IDEOGRAPH-937A 0x937C 鍼 CJK UNIFIED IDEOGRAPH-937C 0x937E 鍾 CJK UNIFIED IDEOGRAPH-937E 0x9382 鎂 CJK UNIFIED IDEOGRAPH-9382 0x938A 鎊 CJK UNIFIED IDEOGRAPH-938A 0x938C 鎌 CJK UNIFIED IDEOGRAPH-938C 0x938F 鎏 CJK UNIFIED IDEOGRAPH-938F 0x9394 鎔 CJK UNIFIED IDEOGRAPH-9394 0x9396 鎖 CJK UNIFIED IDEOGRAPH-9396 0x9397 鎗 CJK UNIFIED IDEOGRAPH-9397 0x9398 鎘 CJK UNIFIED IDEOGRAPH-9398 0x939A 鎚 CJK UNIFIED IDEOGRAPH-939A 0x93A2 鎢 CJK UNIFIED IDEOGRAPH-93A2 0x93A7 鎧 CJK UNIFIED IDEOGRAPH-93A7 0x93A9 鎩 CJK UNIFIED IDEOGRAPH-93A9 0x93AC 鎬 CJK UNIFIED IDEOGRAPH-93AC 0x93AE 鎮 CJK UNIFIED IDEOGRAPH-93AE 0x93B0 鎰 CJK UNIFIED IDEOGRAPH-93B0 0x93B3 鎳 CJK UNIFIED IDEOGRAPH-93B3 0x93B5 鎵 CJK UNIFIED IDEOGRAPH-93B5 0x93C3 鏃 CJK UNIFIED IDEOGRAPH-93C3 0x93C7 鏇 CJK UNIFIED IDEOGRAPH-93C7 0x93C8 鏈 CJK UNIFIED IDEOGRAPH-93C8 0x93CD 鏍 CJK UNIFIED IDEOGRAPH-93CD 0x93D1 鏑 CJK UNIFIED IDEOGRAPH-93D1 0x93D6 鏖 CJK UNIFIED IDEOGRAPH-93D6 0x93D7 鏗 CJK UNIFIED IDEOGRAPH-93D7 0x93D8 鏘 CJK UNIFIED IDEOGRAPH-93D8 0x93DC 鏜 CJK UNIFIED IDEOGRAPH-93DC 0x93DE 鏞 CJK UNIFIED IDEOGRAPH-93DE 0x93DF 鏟 CJK UNIFIED IDEOGRAPH-93DF 0x93E1 鏡 CJK UNIFIED IDEOGRAPH-93E1 0x93E2 鏢 CJK UNIFIED IDEOGRAPH-93E2 0x93E4 鏤 CJK UNIFIED IDEOGRAPH-93E4 0x93F5 鏵 CJK UNIFIED IDEOGRAPH-93F5 0x93F9 鏹 CJK UNIFIED IDEOGRAPH-93F9 0x93FD 鏽 CJK UNIFIED IDEOGRAPH-93FD 0x9410 鐐 CJK UNIFIED IDEOGRAPH-9410 0x9418 鐘 CJK UNIFIED IDEOGRAPH-9418 0x9419 鐙 CJK UNIFIED IDEOGRAPH-9419 0x942B 鐫 CJK UNIFIED IDEOGRAPH-942B 0x942E 鐮 CJK UNIFIED IDEOGRAPH-942E 0x9432 鐲 CJK UNIFIED IDEOGRAPH-9432 0x9433 鐳 CJK UNIFIED IDEOGRAPH-9433 0x9435 鐵 CJK UNIFIED IDEOGRAPH-9435 0x9438 鐸 CJK UNIFIED IDEOGRAPH-9438 0x943A 鐺 CJK UNIFIED IDEOGRAPH-943A 0x943F 鐿 CJK UNIFIED IDEOGRAPH-943F 0x9444 鑄 CJK UNIFIED IDEOGRAPH-9444 0x944A 鑊 CJK UNIFIED IDEOGRAPH-944A 0x944C 鑌 CJK UNIFIED IDEOGRAPH-944C 0x9451 鑑 CJK UNIFIED IDEOGRAPH-9451 0x9452 鑒 CJK UNIFIED IDEOGRAPH-9452 0x9460 鑠 CJK UNIFIED IDEOGRAPH-9460 0x9463 鑣 CJK UNIFIED IDEOGRAPH-9463 0x946B 鑫 CJK UNIFIED IDEOGRAPH-946B 0x946D 鑭 CJK UNIFIED IDEOGRAPH-946D 0x9470 鑰 CJK UNIFIED IDEOGRAPH-9470 0x9472 鑲 CJK UNIFIED IDEOGRAPH-9472 0x9476 鑶 CJK UNIFIED IDEOGRAPH-9476 0x9477 鑷 CJK UNIFIED IDEOGRAPH-9477 0x947C 鑼 CJK UNIFIED IDEOGRAPH-947C 0x947D 鑽 CJK UNIFIED IDEOGRAPH-947D 0x947E 鑾 CJK UNIFIED IDEOGRAPH-947E 0x947F 鑿 CJK UNIFIED IDEOGRAPH-947F 0x9577 長 CJK UNIFIED IDEOGRAPH-9577 0x9580 門 CJK UNIFIED IDEOGRAPH-9580 0x9582 閂 CJK UNIFIED IDEOGRAPH-9582 0x9583 閃 CJK UNIFIED IDEOGRAPH-9583 0x9586 閆 CJK UNIFIED IDEOGRAPH-9586 0x9589 閉 CJK UNIFIED IDEOGRAPH-9589 0x958B 開 CJK UNIFIED IDEOGRAPH-958B 0x958E 閎 CJK UNIFIED IDEOGRAPH-958E 0x958F 閏 CJK UNIFIED IDEOGRAPH-958F 0x9591 閑 CJK UNIFIED IDEOGRAPH-9591 0x9592 閒 CJK UNIFIED IDEOGRAPH-9592 0x9593 間 CJK UNIFIED IDEOGRAPH-9593 0x9594 閔 CJK UNIFIED IDEOGRAPH-9594 0x9598 閘 CJK UNIFIED IDEOGRAPH-9598 0x95A1 閡 CJK UNIFIED IDEOGRAPH-95A1 0x95A3 閣 CJK UNIFIED IDEOGRAPH-95A3 0x95A4 閤 CJK UNIFIED IDEOGRAPH-95A4 0x95A5 閥 CJK UNIFIED IDEOGRAPH-95A5 0x95A8 閨 CJK UNIFIED IDEOGRAPH-95A8 0x95A9 閩 CJK UNIFIED IDEOGRAPH-95A9 0x95AC 閬 CJK UNIFIED IDEOGRAPH-95AC 0x95AD 閭 CJK UNIFIED IDEOGRAPH-95AD 0x95B0 閰 CJK UNIFIED IDEOGRAPH-95B0 0x95B1 閱 CJK UNIFIED IDEOGRAPH-95B1 0x95B9 閹 CJK UNIFIED IDEOGRAPH-95B9 0x95BB 閻 CJK UNIFIED IDEOGRAPH-95BB 0x95BE 閾 CJK UNIFIED IDEOGRAPH-95BE 0x95C6 闆 CJK UNIFIED IDEOGRAPH-95C6 0x95C7 闇 CJK UNIFIED IDEOGRAPH-95C7 0x95C8 闈 CJK UNIFIED IDEOGRAPH-95C8 0x95CA 闊 CJK UNIFIED IDEOGRAPH-95CA 0x95CB 闋 CJK UNIFIED IDEOGRAPH-95CB 0x95CC 闌 CJK UNIFIED IDEOGRAPH-95CC 0x95CD 闍 CJK UNIFIED IDEOGRAPH-95CD 0x95D0 闐 CJK UNIFIED IDEOGRAPH-95D0 0x95D4 闔 CJK UNIFIED IDEOGRAPH-95D4 0x95D5 闕 CJK UNIFIED IDEOGRAPH-95D5 0x95D6 闖 CJK UNIFIED IDEOGRAPH-95D6 0x95DA 闚 CJK UNIFIED IDEOGRAPH-95DA 0x95DC 關 CJK UNIFIED IDEOGRAPH-95DC 0x95DE 闞 CJK UNIFIED IDEOGRAPH-95DE 0x95E1 闡 CJK UNIFIED IDEOGRAPH-95E1 0x95E2 闢 CJK UNIFIED IDEOGRAPH-95E2 0x961C 阜 CJK UNIFIED IDEOGRAPH-961C 0x9621 阡 CJK UNIFIED IDEOGRAPH-9621 0x962A 阪 CJK UNIFIED IDEOGRAPH-962A 0x962E 阮 CJK UNIFIED IDEOGRAPH-962E 0x9631 阱 CJK UNIFIED IDEOGRAPH-9631 0x9632 防 CJK UNIFIED IDEOGRAPH-9632 0x963B 阻 CJK UNIFIED IDEOGRAPH-963B 0x963F 阿 CJK UNIFIED IDEOGRAPH-963F 0x9640 陀 CJK UNIFIED IDEOGRAPH-9640 0x9642 陂 CJK UNIFIED IDEOGRAPH-9642 0x9644 附 CJK UNIFIED IDEOGRAPH-9644 0x964B 陋 CJK UNIFIED IDEOGRAPH-964B 0x964C 陌 CJK UNIFIED IDEOGRAPH-964C 0x964D 降 CJK UNIFIED IDEOGRAPH-964D 0x9650 限 CJK UNIFIED IDEOGRAPH-9650 0x9654 陔 CJK UNIFIED IDEOGRAPH-9654 0x965B 陛 CJK UNIFIED IDEOGRAPH-965B 0x965C 陜 CJK UNIFIED IDEOGRAPH-965C 0x965D 陝 CJK UNIFIED IDEOGRAPH-965D 0x965E 陞 CJK UNIFIED IDEOGRAPH-965E 0x965F 陟 CJK UNIFIED IDEOGRAPH-965F 0x9661 陡 CJK UNIFIED IDEOGRAPH-9661 0x9662 院 CJK UNIFIED IDEOGRAPH-9662 0x9663 陣 CJK UNIFIED IDEOGRAPH-9663 0x9664 除 CJK UNIFIED IDEOGRAPH-9664 0x966A 陪 CJK UNIFIED IDEOGRAPH-966A 0x9670 陰 CJK UNIFIED IDEOGRAPH-9670 0x9672 陲 CJK UNIFIED IDEOGRAPH-9672 0x9673 陳 CJK UNIFIED IDEOGRAPH-9673 0x9675 陵 CJK UNIFIED IDEOGRAPH-9675 0x9676 陶 CJK UNIFIED IDEOGRAPH-9676 0x9677 陷 CJK UNIFIED IDEOGRAPH-9677 0x9678 陸 CJK UNIFIED IDEOGRAPH-9678 0x967D 陽 CJK UNIFIED IDEOGRAPH-967D 0x9684 隄 CJK UNIFIED IDEOGRAPH-9684 0x9685 隅 CJK UNIFIED IDEOGRAPH-9685 0x9686 隆 CJK UNIFIED IDEOGRAPH-9686 0x9688 隈 CJK UNIFIED IDEOGRAPH-9688 0x968A 隊 CJK UNIFIED IDEOGRAPH-968A 0x968B 隋 CJK UNIFIED IDEOGRAPH-968B 0x968D 隍 CJK UNIFIED IDEOGRAPH-968D 0x968E 階 CJK UNIFIED IDEOGRAPH-968E 0x9694 隔 CJK UNIFIED IDEOGRAPH-9694 0x9695 隕 CJK UNIFIED IDEOGRAPH-9695 0x9698 隘 CJK UNIFIED IDEOGRAPH-9698 0x9699 隙 CJK UNIFIED IDEOGRAPH-9699 0x969B 際 CJK UNIFIED IDEOGRAPH-969B 0x969C 障 CJK UNIFIED IDEOGRAPH-969C 0x96A7 隧 CJK UNIFIED IDEOGRAPH-96A7 0x96A8 隨 CJK UNIFIED IDEOGRAPH-96A8 0x96AA 險 CJK UNIFIED IDEOGRAPH-96AA 0x96B1 隱 CJK UNIFIED IDEOGRAPH-96B1 0x96B4 隴 CJK UNIFIED IDEOGRAPH-96B4 0x96B8 隸 CJK UNIFIED IDEOGRAPH-96B8 0x96B9 隹 CJK UNIFIED IDEOGRAPH-96B9 0x96BB 隻 CJK UNIFIED IDEOGRAPH-96BB 0x96BC 隼 CJK UNIFIED IDEOGRAPH-96BC 0x96C0 雀 CJK UNIFIED IDEOGRAPH-96C0 0x96C1 雁 CJK UNIFIED IDEOGRAPH-96C1 0x96C4 雄 CJK UNIFIED IDEOGRAPH-96C4 0x96C5 雅 CJK UNIFIED IDEOGRAPH-96C5 0x96C6 集 CJK UNIFIED IDEOGRAPH-96C6 0x96C7 雇 CJK UNIFIED IDEOGRAPH-96C7 0x96C9 雉 CJK UNIFIED IDEOGRAPH-96C9 0x96CB 雋 CJK UNIFIED IDEOGRAPH-96CB 0x96CC 雌 CJK UNIFIED IDEOGRAPH-96CC 0x96CD 雍 CJK UNIFIED IDEOGRAPH-96CD 0x96CE 雎 CJK UNIFIED IDEOGRAPH-96CE 0x96D2 雒 CJK UNIFIED IDEOGRAPH-96D2 0x96D5 雕 CJK UNIFIED IDEOGRAPH-96D5 0x96D6 雖 CJK UNIFIED IDEOGRAPH-96D6 0x96D9 雙 CJK UNIFIED IDEOGRAPH-96D9 0x96DB 雛 CJK UNIFIED IDEOGRAPH-96DB 0x96DC 雜 CJK UNIFIED IDEOGRAPH-96DC 0x96DE 雞 CJK UNIFIED IDEOGRAPH-96DE 0x96E2 離 CJK UNIFIED IDEOGRAPH-96E2 0x96E3 難 CJK UNIFIED IDEOGRAPH-96E3 0x96E8 雨 CJK UNIFIED IDEOGRAPH-96E8 0x96E9 雩 CJK UNIFIED IDEOGRAPH-96E9 0x96EA 雪 CJK UNIFIED IDEOGRAPH-96EA 0x96EF 雯 CJK UNIFIED IDEOGRAPH-96EF 0x96F0 雰 CJK UNIFIED IDEOGRAPH-96F0 0x96F2 雲 CJK UNIFIED IDEOGRAPH-96F2 0x96F6 零 CJK UNIFIED IDEOGRAPH-96F6 0x96F7 雷 CJK UNIFIED IDEOGRAPH-96F7 0x96F9 雹 CJK UNIFIED IDEOGRAPH-96F9 0x96FB 電 CJK UNIFIED IDEOGRAPH-96FB 0x9700 需 CJK UNIFIED IDEOGRAPH-9700 0x9704 霄 CJK UNIFIED IDEOGRAPH-9704 0x9706 霆 CJK UNIFIED IDEOGRAPH-9706 0x9707 震 CJK UNIFIED IDEOGRAPH-9707 0x9708 霈 CJK UNIFIED IDEOGRAPH-9708 0x9709 霉 CJK UNIFIED IDEOGRAPH-9709 0x970D 霍 CJK UNIFIED IDEOGRAPH-970D 0x970E 霎 CJK UNIFIED IDEOGRAPH-970E 0x970F 霏 CJK UNIFIED IDEOGRAPH-970F 0x9711 霑 CJK UNIFIED IDEOGRAPH-9711 0x9713 霓 CJK UNIFIED IDEOGRAPH-9713 0x9716 霖 CJK UNIFIED IDEOGRAPH-9716 0x9719 霙 CJK UNIFIED IDEOGRAPH-9719 0x971C 霜 CJK UNIFIED IDEOGRAPH-971C 0x971E 霞 CJK UNIFIED IDEOGRAPH-971E 0x9727 霧 CJK UNIFIED IDEOGRAPH-9727 0x9730 霰 CJK UNIFIED IDEOGRAPH-9730 0x9732 露 CJK UNIFIED IDEOGRAPH-9732 0x9738 霸 CJK UNIFIED IDEOGRAPH-9738 0x9739 霹 CJK UNIFIED IDEOGRAPH-9739 0x973D 霽 CJK UNIFIED IDEOGRAPH-973D 0x973E 霾 CJK UNIFIED IDEOGRAPH-973E 0x9742 靂 CJK UNIFIED IDEOGRAPH-9742 0x9744 靄 CJK UNIFIED IDEOGRAPH-9744 0x9748 靈 CJK UNIFIED IDEOGRAPH-9748 0x9752 青 CJK UNIFIED IDEOGRAPH-9752 0x9756 靖 CJK UNIFIED IDEOGRAPH-9756 0x975A 靚 CJK UNIFIED IDEOGRAPH-975A 0x975B 靛 CJK UNIFIED IDEOGRAPH-975B 0x975C 靜 CJK UNIFIED IDEOGRAPH-975C 0x975E 非 CJK UNIFIED IDEOGRAPH-975E 0x9760 靠 CJK UNIFIED IDEOGRAPH-9760 0x9761 靡 CJK UNIFIED IDEOGRAPH-9761 0x9762 面 CJK UNIFIED IDEOGRAPH-9762 0x9766 靦 CJK UNIFIED IDEOGRAPH-9766 0x9768 靨 CJK UNIFIED IDEOGRAPH-9768 0x9769 革 CJK UNIFIED IDEOGRAPH-9769 0x9773 靳 CJK UNIFIED IDEOGRAPH-9773 0x9774 靴 CJK UNIFIED IDEOGRAPH-9774 0x9776 靶 CJK UNIFIED IDEOGRAPH-9776 0x977C 靼 CJK UNIFIED IDEOGRAPH-977C 0x9784 鞄 CJK UNIFIED IDEOGRAPH-9784 0x9785 鞅 CJK UNIFIED IDEOGRAPH-9785 0x978B 鞋 CJK UNIFIED IDEOGRAPH-978B 0x978D 鞍 CJK UNIFIED IDEOGRAPH-978D 0x978F 鞏 CJK UNIFIED IDEOGRAPH-978F 0x9798 鞘 CJK UNIFIED IDEOGRAPH-9798 0x97A0 鞠 CJK UNIFIED IDEOGRAPH-97A0 0x97A3 鞣 CJK UNIFIED IDEOGRAPH-97A3 0x97A6 鞦 CJK UNIFIED IDEOGRAPH-97A6 0x97AD 鞭 CJK UNIFIED IDEOGRAPH-97AD 0x97C1 韁 CJK UNIFIED IDEOGRAPH-97C1 0x97C3 韃 CJK UNIFIED IDEOGRAPH-97C3 0x97C6 韆 CJK UNIFIED IDEOGRAPH-97C6 0x97CB 韋 CJK UNIFIED IDEOGRAPH-97CB 0x97CC 韌 CJK UNIFIED IDEOGRAPH-97CC 0x97D3 韓 CJK UNIFIED IDEOGRAPH-97D3 0x97DC 韜 CJK UNIFIED IDEOGRAPH-97DC 0x97DE 韞 CJK UNIFIED IDEOGRAPH-97DE 0x97E1 韡 CJK UNIFIED IDEOGRAPH-97E1 0x97ED 韭 CJK UNIFIED IDEOGRAPH-97ED 0x97F3 音 CJK UNIFIED IDEOGRAPH-97F3 0x97F6 韶 CJK UNIFIED IDEOGRAPH-97F6 0x97FB 韻 CJK UNIFIED IDEOGRAPH-97FB 0x97FF 響 CJK UNIFIED IDEOGRAPH-97FF 0x9801 頁 CJK UNIFIED IDEOGRAPH-9801 0x9802 頂 CJK UNIFIED IDEOGRAPH-9802 0x9803 頃 CJK UNIFIED IDEOGRAPH-9803 0x9805 項 CJK UNIFIED IDEOGRAPH-9805 0x9806 順 CJK UNIFIED IDEOGRAPH-9806 0x9808 須 CJK UNIFIED IDEOGRAPH-9808 0x980A 頊 CJK UNIFIED IDEOGRAPH-980A 0x980C 頌 CJK UNIFIED IDEOGRAPH-980C 0x980E 頎 CJK UNIFIED IDEOGRAPH-980E 0x9810 預 CJK UNIFIED IDEOGRAPH-9810 0x9811 頑 CJK UNIFIED IDEOGRAPH-9811 0x9812 頒 CJK UNIFIED IDEOGRAPH-9812 0x9813 頓 CJK UNIFIED IDEOGRAPH-9813 0x9817 頗 CJK UNIFIED IDEOGRAPH-9817 0x9818 領 CJK UNIFIED IDEOGRAPH-9818 0x981C 頜 CJK UNIFIED IDEOGRAPH-981C 0x9821 頡 CJK UNIFIED IDEOGRAPH-9821 0x9824 頤 CJK UNIFIED IDEOGRAPH-9824 0x9826 頦 CJK UNIFIED IDEOGRAPH-9826 0x982B 頫 CJK UNIFIED IDEOGRAPH-982B 0x982D 頭 CJK UNIFIED IDEOGRAPH-982D 0x9830 頰 CJK UNIFIED IDEOGRAPH-9830 0x9837 頷 CJK UNIFIED IDEOGRAPH-9837 0x9838 頸 CJK UNIFIED IDEOGRAPH-9838 0x9839 頹 CJK UNIFIED IDEOGRAPH-9839 0x983B 頻 CJK UNIFIED IDEOGRAPH-983B 0x9846 顆 CJK UNIFIED IDEOGRAPH-9846 0x984C 題 CJK UNIFIED IDEOGRAPH-984C 0x984D 額 CJK UNIFIED IDEOGRAPH-984D 0x984E 顎 CJK UNIFIED IDEOGRAPH-984E 0x984F 顏 CJK UNIFIED IDEOGRAPH-984F 0x9853 顓 CJK UNIFIED IDEOGRAPH-9853 0x9857 顗 CJK UNIFIED IDEOGRAPH-9857 0x9858 願 CJK UNIFIED IDEOGRAPH-9858 0x985B 顛 CJK UNIFIED IDEOGRAPH-985B 0x985E 類 CJK UNIFIED IDEOGRAPH-985E 0x9865 顥 CJK UNIFIED IDEOGRAPH-9865 0x9867 顧 CJK UNIFIED IDEOGRAPH-9867 0x986B 顫 CJK UNIFIED IDEOGRAPH-986B 0x986F 顯 CJK UNIFIED IDEOGRAPH-986F 0x9870 顰 CJK UNIFIED IDEOGRAPH-9870 0x9871 顱 CJK UNIFIED IDEOGRAPH-9871 0x9873 顳 CJK UNIFIED IDEOGRAPH-9873 0x9874 顴 CJK UNIFIED IDEOGRAPH-9874 0x98A8 風 CJK UNIFIED IDEOGRAPH-98A8 0x98AF 颯 CJK UNIFIED IDEOGRAPH-98AF 0x98B1 颱 CJK UNIFIED IDEOGRAPH-98B1 0x98B3 颳 CJK UNIFIED IDEOGRAPH-98B3 0x98B6 颶 CJK UNIFIED IDEOGRAPH-98B6 0x98BA 颺 CJK UNIFIED IDEOGRAPH-98BA 0x98BC 颼 CJK UNIFIED IDEOGRAPH-98BC 0x98C4 飄 CJK UNIFIED IDEOGRAPH-98C4 0x98C6 飆 CJK UNIFIED IDEOGRAPH-98C6 0x98DB 飛 CJK UNIFIED IDEOGRAPH-98DB 0x98DF 食 CJK UNIFIED IDEOGRAPH-98DF 0x98E2 飢 CJK UNIFIED IDEOGRAPH-98E2 0x98E7 飧 CJK UNIFIED IDEOGRAPH-98E7 0x98E9 飩 CJK UNIFIED IDEOGRAPH-98E9 0x98EA 飪 CJK UNIFIED IDEOGRAPH-98EA 0x98ED 飭 CJK UNIFIED IDEOGRAPH-98ED 0x98EF 飯 CJK UNIFIED IDEOGRAPH-98EF 0x98F2 飲 CJK UNIFIED IDEOGRAPH-98F2 0x98F4 飴 CJK UNIFIED IDEOGRAPH-98F4 0x98FC 飼 CJK UNIFIED IDEOGRAPH-98FC 0x98FD 飽 CJK UNIFIED IDEOGRAPH-98FD 0x98FE 飾 CJK UNIFIED IDEOGRAPH-98FE 0x9903 餃 CJK UNIFIED IDEOGRAPH-9903 0x9905 餅 CJK UNIFIED IDEOGRAPH-9905 0x9909 餉 CJK UNIFIED IDEOGRAPH-9909 0x990A 養 CJK UNIFIED IDEOGRAPH-990A 0x990C 餌 CJK UNIFIED IDEOGRAPH-990C 0x9910 餐 CJK UNIFIED IDEOGRAPH-9910 0x9911 餑 CJK UNIFIED IDEOGRAPH-9911 0x9912 餒 CJK UNIFIED IDEOGRAPH-9912 0x9913 餓 CJK UNIFIED IDEOGRAPH-9913 0x9918 餘 CJK UNIFIED IDEOGRAPH-9918 0x991A 餚 CJK UNIFIED IDEOGRAPH-991A 0x991B 餛 CJK UNIFIED IDEOGRAPH-991B 0x991E 餞 CJK UNIFIED IDEOGRAPH-991E 0x9921 餡 CJK UNIFIED IDEOGRAPH-9921 0x9928 館 CJK UNIFIED IDEOGRAPH-9928 0x992C 餬 CJK UNIFIED IDEOGRAPH-992C 0x992E 餮 CJK UNIFIED IDEOGRAPH-992E 0x9935 餵 CJK UNIFIED IDEOGRAPH-9935 0x993D 餽 CJK UNIFIED IDEOGRAPH-993D 0x993E 餾 CJK UNIFIED IDEOGRAPH-993E 0x993F 餿 CJK UNIFIED IDEOGRAPH-993F 0x9943 饃 CJK UNIFIED IDEOGRAPH-9943 0x9945 饅 CJK UNIFIED IDEOGRAPH-9945 0x9948 饈 CJK UNIFIED IDEOGRAPH-9948 0x9949 饉 CJK UNIFIED IDEOGRAPH-9949 0x994B 饋 CJK UNIFIED IDEOGRAPH-994B 0x994C 饌 CJK UNIFIED IDEOGRAPH-994C 0x9951 饑 CJK UNIFIED IDEOGRAPH-9951 0x9952 饒 CJK UNIFIED IDEOGRAPH-9952 0x9955 饕 CJK UNIFIED IDEOGRAPH-9955 0x9957 饗 CJK UNIFIED IDEOGRAPH-9957 0x995C 饜 CJK UNIFIED IDEOGRAPH-995C 0x995E 饞 CJK UNIFIED IDEOGRAPH-995E 0x9996 首 CJK UNIFIED IDEOGRAPH-9996 0x9997 馗 CJK UNIFIED IDEOGRAPH-9997 0x9999 香 CJK UNIFIED IDEOGRAPH-9999 0x99A5 馥 CJK UNIFIED IDEOGRAPH-99A5 0x99A8 馨 CJK UNIFIED IDEOGRAPH-99A8 0x99AC 馬 CJK UNIFIED IDEOGRAPH-99AC 0x99AD 馭 CJK UNIFIED IDEOGRAPH-99AD 0x99AE 馮 CJK UNIFIED IDEOGRAPH-99AE 0x99B1 馱 CJK UNIFIED IDEOGRAPH-99B1 0x99B3 馳 CJK UNIFIED IDEOGRAPH-99B3 0x99B4 馴 CJK UNIFIED IDEOGRAPH-99B4 0x99C1 駁 CJK UNIFIED IDEOGRAPH-99C1 0x99D0 駐 CJK UNIFIED IDEOGRAPH-99D0 0x99D1 駑 CJK UNIFIED IDEOGRAPH-99D1 0x99D2 駒 CJK UNIFIED IDEOGRAPH-99D2 0x99D5 駕 CJK UNIFIED IDEOGRAPH-99D5 0x99D9 駙 CJK UNIFIED IDEOGRAPH-99D9 0x99DB 駛 CJK UNIFIED IDEOGRAPH-99DB 0x99DD 駝 CJK UNIFIED IDEOGRAPH-99DD 0x99DF 駟 CJK UNIFIED IDEOGRAPH-99DF 0x99E2 駢 CJK UNIFIED IDEOGRAPH-99E2 0x99ED 駭 CJK UNIFIED IDEOGRAPH-99ED 0x99F1 駱 CJK UNIFIED IDEOGRAPH-99F1 0x99FF 駿 CJK UNIFIED IDEOGRAPH-99FF 0x9A01 騁 CJK UNIFIED IDEOGRAPH-9A01 0x9A0E 騎 CJK UNIFIED IDEOGRAPH-9A0E 0x9A0F 騏 CJK UNIFIED IDEOGRAPH-9A0F 0x9A16 騖 CJK UNIFIED IDEOGRAPH-9A16 0x9A19 騙 CJK UNIFIED IDEOGRAPH-9A19 0x9A2B 騫 CJK UNIFIED IDEOGRAPH-9A2B 0x9A2D 騭 CJK UNIFIED IDEOGRAPH-9A2D 0x9A2E 騮 CJK UNIFIED IDEOGRAPH-9A2E 0x9A30 騰 CJK UNIFIED IDEOGRAPH-9A30 0x9A37 騷 CJK UNIFIED IDEOGRAPH-9A37 0x9A3E 騾 CJK UNIFIED IDEOGRAPH-9A3E 0x9A40 驀 CJK UNIFIED IDEOGRAPH-9A40 0x9A41 驁 CJK UNIFIED IDEOGRAPH-9A41 0x9A43 驃 CJK UNIFIED IDEOGRAPH-9A43 0x9A44 驄 CJK UNIFIED IDEOGRAPH-9A44 0x9A45 驅 CJK UNIFIED IDEOGRAPH-9A45 0x9A4A 驊 CJK UNIFIED IDEOGRAPH-9A4A 0x9A4D 驍 CJK UNIFIED IDEOGRAPH-9A4D 0x9A52 驒 CJK UNIFIED IDEOGRAPH-9A52 0x9A55 驕 CJK UNIFIED IDEOGRAPH-9A55 0x9A57 驗 CJK UNIFIED IDEOGRAPH-9A57 0x9A5A 驚 CJK UNIFIED IDEOGRAPH-9A5A 0x9A5B 驛 CJK UNIFIED IDEOGRAPH-9A5B 0x9A5F 驟 CJK UNIFIED IDEOGRAPH-9A5F 0x9A62 驢 CJK UNIFIED IDEOGRAPH-9A62 0x9A64 驤 CJK UNIFIED IDEOGRAPH-9A64 0x9A65 驥 CJK UNIFIED IDEOGRAPH-9A65 0x9A6A 驪 CJK UNIFIED IDEOGRAPH-9A6A 0x9A6B 驫 CJK UNIFIED IDEOGRAPH-9A6B 0x9AA8 骨 CJK UNIFIED IDEOGRAPH-9AA8 0x9AAF 骯 CJK UNIFIED IDEOGRAPH-9AAF 0x9AB0 骰 CJK UNIFIED IDEOGRAPH-9AB0 0x9AB7 骷 CJK UNIFIED IDEOGRAPH-9AB7 0x9AB8 骸 CJK UNIFIED IDEOGRAPH-9AB8 0x9AB9 骹 CJK UNIFIED IDEOGRAPH-9AB9 0x9ABC 骼 CJK UNIFIED IDEOGRAPH-9ABC 0x9AC0 髀 CJK UNIFIED IDEOGRAPH-9AC0 0x9AC1 髁 CJK UNIFIED IDEOGRAPH-9AC1 0x9AC2 髂 CJK UNIFIED IDEOGRAPH-9AC2 0x9ACF 髏 CJK UNIFIED IDEOGRAPH-9ACF 0x9AD1 髑 CJK UNIFIED IDEOGRAPH-9AD1 0x9AD2 髒 CJK UNIFIED IDEOGRAPH-9AD2 0x9AD3 髓 CJK UNIFIED IDEOGRAPH-9AD3 0x9AD4 體 CJK UNIFIED IDEOGRAPH-9AD4 0x9AD5 髕 CJK UNIFIED IDEOGRAPH-9AD5 0x9AD6 髖 CJK UNIFIED IDEOGRAPH-9AD6 0x9AD8 高 CJK UNIFIED IDEOGRAPH-9AD8 0x9AE6 髦 CJK UNIFIED IDEOGRAPH-9AE6 0x9AED 髭 CJK UNIFIED IDEOGRAPH-9AED 0x9AEE 髮 CJK UNIFIED IDEOGRAPH-9AEE 0x9AEF 髯 CJK UNIFIED IDEOGRAPH-9AEF 0x9AF9 髹 CJK UNIFIED IDEOGRAPH-9AF9 0x9AFB 髻 CJK UNIFIED IDEOGRAPH-9AFB 0x9B03 鬃 CJK UNIFIED IDEOGRAPH-9B03 0x9B06 鬆 CJK UNIFIED IDEOGRAPH-9B06 0x9B08 鬈 CJK UNIFIED IDEOGRAPH-9B08 0x9B0D 鬍 CJK UNIFIED IDEOGRAPH-9B0D 0x9B18 鬘 CJK UNIFIED IDEOGRAPH-9B18 0x9B1A 鬚 CJK UNIFIED IDEOGRAPH-9B1A 0x9B1F 鬟 CJK UNIFIED IDEOGRAPH-9B1F 0x9B22 鬢 CJK UNIFIED IDEOGRAPH-9B22 0x9B23 鬣 CJK UNIFIED IDEOGRAPH-9B23 0x9B25 鬥 CJK UNIFIED IDEOGRAPH-9B25 0x9B27 鬧 CJK UNIFIED IDEOGRAPH-9B27 0x9B28 鬨 CJK UNIFIED IDEOGRAPH-9B28 0x9B29 鬩 CJK UNIFIED IDEOGRAPH-9B29 0x9B2E 鬮 CJK UNIFIED IDEOGRAPH-9B2E 0x9B31 鬱 CJK UNIFIED IDEOGRAPH-9B31 0x9B32 鬲 CJK UNIFIED IDEOGRAPH-9B32 0x9B3B 鬻 CJK UNIFIED IDEOGRAPH-9B3B 0x9B3C 鬼 CJK UNIFIED IDEOGRAPH-9B3C 0x9B41 魁 CJK UNIFIED IDEOGRAPH-9B41 0x9B42 魂 CJK UNIFIED IDEOGRAPH-9B42 0x9B44 魄 CJK UNIFIED IDEOGRAPH-9B44 0x9B45 魅 CJK UNIFIED IDEOGRAPH-9B45 0x9B4D 魍 CJK UNIFIED IDEOGRAPH-9B4D 0x9B4E 魎 CJK UNIFIED IDEOGRAPH-9B4E 0x9B4F 魏 CJK UNIFIED IDEOGRAPH-9B4F 0x9B51 魑 CJK UNIFIED IDEOGRAPH-9B51 0x9B54 魔 CJK UNIFIED IDEOGRAPH-9B54 0x9B58 魘 CJK UNIFIED IDEOGRAPH-9B58 0x9B5A 魚 CJK UNIFIED IDEOGRAPH-9B5A 0x9B5F 魟 CJK UNIFIED IDEOGRAPH-9B5F 0x9B60 魠 CJK UNIFIED IDEOGRAPH-9B60 0x9B6F 魯 CJK UNIFIED IDEOGRAPH-9B6F 0x9B74 魴 CJK UNIFIED IDEOGRAPH-9B74 0x9B77 魷 CJK UNIFIED IDEOGRAPH-9B77 0x9B91 鮑 CJK UNIFIED IDEOGRAPH-9B91 0x9BA8 鮨 CJK UNIFIED IDEOGRAPH-9BA8 0x9BAA 鮪 CJK UNIFIED IDEOGRAPH-9BAA 0x9BAB 鮫 CJK UNIFIED IDEOGRAPH-9BAB 0x9BAD 鮭 CJK UNIFIED IDEOGRAPH-9BAD 0x9BAE 鮮 CJK UNIFIED IDEOGRAPH-9BAE 0x9BC1 鯁 CJK UNIFIED IDEOGRAPH-9BC1 0x9BC7 鯇 CJK UNIFIED IDEOGRAPH-9BC7 0x9BC9 鯉 CJK UNIFIED IDEOGRAPH-9BC9 0x9BCA 鯊 CJK UNIFIED IDEOGRAPH-9BCA 0x9BD3 鯓 CJK UNIFIED IDEOGRAPH-9BD3 0x9BD6 鯖 CJK UNIFIED IDEOGRAPH-9BD6 0x9BDB 鯛 CJK UNIFIED IDEOGRAPH-9BDB 0x9BE1 鯡 CJK UNIFIED IDEOGRAPH-9BE1 0x9BE4 鯤 CJK UNIFIED IDEOGRAPH-9BE4 0x9BE7 鯧 CJK UNIFIED IDEOGRAPH-9BE7 0x9BE8 鯨 CJK UNIFIED IDEOGRAPH-9BE8 0x9BEA 鯪 CJK UNIFIED IDEOGRAPH-9BEA 0x9BF0 鯰 CJK UNIFIED IDEOGRAPH-9BF0 0x9BF7 鯷 CJK UNIFIED IDEOGRAPH-9BF7 0x9BFD 鯽 CJK UNIFIED IDEOGRAPH-9BFD 0x9C08 鰈 CJK UNIFIED IDEOGRAPH-9C08 0x9C0D 鰍 CJK UNIFIED IDEOGRAPH-9C0D 0x9C13 鰓 CJK UNIFIED IDEOGRAPH-9C13 0x9C25 鰥 CJK UNIFIED IDEOGRAPH-9C25 0x9C29 鰩 CJK UNIFIED IDEOGRAPH-9C29 0x9C2D 鰭 CJK UNIFIED IDEOGRAPH-9C2D 0x9C31 鰱 CJK UNIFIED IDEOGRAPH-9C31 0x9C32 鰲 CJK UNIFIED IDEOGRAPH-9C32 0x9C39 鰹 CJK UNIFIED IDEOGRAPH-9C39 0x9C3B 鰻 CJK UNIFIED IDEOGRAPH-9C3B 0x9C3E 鰾 CJK UNIFIED IDEOGRAPH-9C3E 0x9C48 鱈 CJK UNIFIED IDEOGRAPH-9C48 0x9C49 鱉 CJK UNIFIED IDEOGRAPH-9C49 0x9C52 鱒 CJK UNIFIED IDEOGRAPH-9C52 0x9C54 鱔 CJK UNIFIED IDEOGRAPH-9C54 0x9C57 鱗 CJK UNIFIED IDEOGRAPH-9C57 0x9C58 鱘 CJK UNIFIED IDEOGRAPH-9C58 0x9C5F 鱟 CJK UNIFIED IDEOGRAPH-9C5F 0x9C67 鱧 CJK UNIFIED IDEOGRAPH-9C67 0x9C77 鱷 CJK UNIFIED IDEOGRAPH-9C77 0x9C78 鱸 CJK UNIFIED IDEOGRAPH-9C78 0x9C7A 鱺 CJK UNIFIED IDEOGRAPH-9C7A 0x9CE5 鳥 CJK UNIFIED IDEOGRAPH-9CE5 0x9CE7 鳧 CJK UNIFIED IDEOGRAPH-9CE7 0x9CE9 鳩 CJK UNIFIED IDEOGRAPH-9CE9 0x9CF3 鳳 CJK UNIFIED IDEOGRAPH-9CF3 0x9CF4 鳴 CJK UNIFIED IDEOGRAPH-9CF4 0x9CF6 鳶 CJK UNIFIED IDEOGRAPH-9CF6 0x9D06 鴆 CJK UNIFIED IDEOGRAPH-9D06 0x9D07 鴇 CJK UNIFIED IDEOGRAPH-9D07 0x9D09 鴉 CJK UNIFIED IDEOGRAPH-9D09 0x9D12 鴒 CJK UNIFIED IDEOGRAPH-9D12 0x9D15 鴕 CJK UNIFIED IDEOGRAPH-9D15 0x9D1B 鴛 CJK UNIFIED IDEOGRAPH-9D1B 0x9D1D 鴝 CJK UNIFIED IDEOGRAPH-9D1D 0x9D1E 鴞 CJK UNIFIED IDEOGRAPH-9D1E 0x9D1F 鴟 CJK UNIFIED IDEOGRAPH-9D1F 0x9D23 鴣 CJK UNIFIED IDEOGRAPH-9D23 0x9D26 鴦 CJK UNIFIED IDEOGRAPH-9D26 0x9D28 鴨 CJK UNIFIED IDEOGRAPH-9D28 0x9D2F 鴯 CJK UNIFIED IDEOGRAPH-9D2F 0x9D3B 鴻 CJK UNIFIED IDEOGRAPH-9D3B 0x9D3F 鴿 CJK UNIFIED IDEOGRAPH-9D3F 0x9D51 鵑 CJK UNIFIED IDEOGRAPH-9D51 0x9D5C 鵜 CJK UNIFIED IDEOGRAPH-9D5C 0x9D5D 鵝 CJK UNIFIED IDEOGRAPH-9D5D 0x9D5F 鵟 CJK UNIFIED IDEOGRAPH-9D5F 0x9D60 鵠 CJK UNIFIED IDEOGRAPH-9D60 0x9D61 鵡 CJK UNIFIED IDEOGRAPH-9D61 0x9D6A 鵪 CJK UNIFIED IDEOGRAPH-9D6A 0x9D6C 鵬 CJK UNIFIED IDEOGRAPH-9D6C 0x9D6F 鵯 CJK UNIFIED IDEOGRAPH-9D6F 0x9D70 鵰 CJK UNIFIED IDEOGRAPH-9D70 0x9D72 鵲 CJK UNIFIED IDEOGRAPH-9D72 0x9D87 鶇 CJK UNIFIED IDEOGRAPH-9D87 0x9D89 鶉 CJK UNIFIED IDEOGRAPH-9D89 0x9D98 鶘 CJK UNIFIED IDEOGRAPH-9D98 0x9D9A 鶚 CJK UNIFIED IDEOGRAPH-9D9A 0x9DA9 鶩 CJK UNIFIED IDEOGRAPH-9DA9 0x9DAF 鶯 CJK UNIFIED IDEOGRAPH-9DAF 0x9DB2 鶲 CJK UNIFIED IDEOGRAPH-9DB2 0x9DB4 鶴 CJK UNIFIED IDEOGRAPH-9DB4 0x9DBA 鶺 CJK UNIFIED IDEOGRAPH-9DBA 0x9DBB 鶻 CJK UNIFIED IDEOGRAPH-9DBB 0x9DBC 鶼 CJK UNIFIED IDEOGRAPH-9DBC 0x9DBF 鶿 CJK UNIFIED IDEOGRAPH-9DBF 0x9DC2 鷂 CJK UNIFIED IDEOGRAPH-9DC2 0x9DD3 鷓 CJK UNIFIED IDEOGRAPH-9DD3 0x9DD7 鷗 CJK UNIFIED IDEOGRAPH-9DD7 0x9DE5 鷥 CJK UNIFIED IDEOGRAPH-9DE5 0x9DE6 鷦 CJK UNIFIED IDEOGRAPH-9DE6 0x9DF2 鷲 CJK UNIFIED IDEOGRAPH-9DF2 0x9DF4 鷴 CJK UNIFIED IDEOGRAPH-9DF4 0x9DF8 鷸 CJK UNIFIED IDEOGRAPH-9DF8 0x9DF9 鷹 CJK UNIFIED IDEOGRAPH-9DF9 0x9DFA 鷺 CJK UNIFIED IDEOGRAPH-9DFA 0x9E15 鸕 CJK UNIFIED IDEOGRAPH-9E15 0x9E1A 鸚 CJK UNIFIED IDEOGRAPH-9E1A 0x9E1B 鸛 CJK UNIFIED IDEOGRAPH-9E1B 0x9E1D 鸝 CJK UNIFIED IDEOGRAPH-9E1D 0x9E1E 鸞 CJK UNIFIED IDEOGRAPH-9E1E 0x9E75 鹵 CJK UNIFIED IDEOGRAPH-9E75 0x9E79 鹹 CJK UNIFIED IDEOGRAPH-9E79 0x9E7C 鹼 CJK UNIFIED IDEOGRAPH-9E7C 0x9E7D 鹽 CJK UNIFIED IDEOGRAPH-9E7D 0x9E7F 鹿 CJK UNIFIED IDEOGRAPH-9E7F 0x9E82 麂 CJK UNIFIED IDEOGRAPH-9E82 0x9E88 麈 CJK UNIFIED IDEOGRAPH-9E88 0x9E8B 麋 CJK UNIFIED IDEOGRAPH-9E8B 0x9E92 麒 CJK UNIFIED IDEOGRAPH-9E92 0x9E93 麓 CJK UNIFIED IDEOGRAPH-9E93 0x9E97 麗 CJK UNIFIED IDEOGRAPH-9E97 0x9E9D 麝 CJK UNIFIED IDEOGRAPH-9E9D 0x9E9F 麟 CJK UNIFIED IDEOGRAPH-9E9F 0x9EA5 麥 CJK UNIFIED IDEOGRAPH-9EA5 0x9EA9 麩 CJK UNIFIED IDEOGRAPH-9EA9 0x9EB4 麴 CJK UNIFIED IDEOGRAPH-9EB4 0x9EB5 麵 CJK UNIFIED IDEOGRAPH-9EB5 0x9EBB 麻 CJK UNIFIED IDEOGRAPH-9EBB 0x9EBC 麼 CJK UNIFIED IDEOGRAPH-9EBC 0x9EBE 麾 CJK UNIFIED IDEOGRAPH-9EBE 0x9EC3 黃 CJK UNIFIED IDEOGRAPH-9EC3 0x9ECD 黍 CJK UNIFIED IDEOGRAPH-9ECD 0x9ECE 黎 CJK UNIFIED IDEOGRAPH-9ECE 0x9ECF 黏 CJK UNIFIED IDEOGRAPH-9ECF 0x9ED0 黐 CJK UNIFIED IDEOGRAPH-9ED0 0x9ED1 黑 CJK UNIFIED IDEOGRAPH-9ED1 0x9ED4 黔 CJK UNIFIED IDEOGRAPH-9ED4 0x9ED8 默 CJK UNIFIED IDEOGRAPH-9ED8 0x9EDB 黛 CJK UNIFIED IDEOGRAPH-9EDB 0x9EDC 黜 CJK UNIFIED IDEOGRAPH-9EDC 0x9EDD 黝 CJK UNIFIED IDEOGRAPH-9EDD 0x9EDE 點 CJK UNIFIED IDEOGRAPH-9EDE 0x9EE0 黠 CJK UNIFIED IDEOGRAPH-9EE0 0x9EE5 黥 CJK UNIFIED IDEOGRAPH-9EE5 0x9EE8 黨 CJK UNIFIED IDEOGRAPH-9EE8 0x9EEF 黯 CJK UNIFIED IDEOGRAPH-9EEF 0x9EF4 黴 CJK UNIFIED IDEOGRAPH-9EF4 0x9EFF 黿 CJK UNIFIED IDEOGRAPH-9EFF 0x9F0E 鼎 CJK UNIFIED IDEOGRAPH-9F0E 0x9F10 鼐 CJK UNIFIED IDEOGRAPH-9F10 0x9F13 鼓 CJK UNIFIED IDEOGRAPH-9F13 0x9F20 鼠 CJK UNIFIED IDEOGRAPH-9F20 0x9F2C 鼬 CJK UNIFIED IDEOGRAPH-9F2C 0x9F2F 鼯 CJK UNIFIED IDEOGRAPH-9F2F 0x9F34 鼴 CJK UNIFIED IDEOGRAPH-9F34 0x9F3B 鼻 CJK UNIFIED IDEOGRAPH-9F3B 0x9F3E 鼾 CJK UNIFIED IDEOGRAPH-9F3E 0x9F41 齁 CJK UNIFIED IDEOGRAPH-9F41 0x9F4A 齊 CJK UNIFIED IDEOGRAPH-9F4A 0x9F4B 齋 CJK UNIFIED IDEOGRAPH-9F4B 0x9F52 齒 CJK UNIFIED IDEOGRAPH-9F52 0x9F59 齙 CJK UNIFIED IDEOGRAPH-9F59 0x9F5C 齜 CJK UNIFIED IDEOGRAPH-9F5C 0x9F5F 齟 CJK UNIFIED IDEOGRAPH-9F5F 0x9F61 齡 CJK UNIFIED IDEOGRAPH-9F61 0x9F63 齣 CJK UNIFIED IDEOGRAPH-9F63 0x9F66 齦 CJK UNIFIED IDEOGRAPH-9F66 0x9F67 齧 CJK UNIFIED IDEOGRAPH-9F67 0x9F6A 齪 CJK UNIFIED IDEOGRAPH-9F6A 0x9F6C 齬 CJK UNIFIED IDEOGRAPH-9F6C 0x9F72 齲 CJK UNIFIED IDEOGRAPH-9F72 0x9F76 齶 CJK UNIFIED IDEOGRAPH-9F76 0x9F77 齷 CJK UNIFIED IDEOGRAPH-9F77 0x9F8D 龍 CJK UNIFIED IDEOGRAPH-9F8D 0x9F90 龐 CJK UNIFIED IDEOGRAPH-9F90 0x9F94 龔 CJK UNIFIED IDEOGRAPH-9F94 0x9F95 龕 CJK UNIFIED IDEOGRAPH-9F95 0x9F98 龘 CJK UNIFIED IDEOGRAPH-9F98 0x9F9C 龜 CJK UNIFIED IDEOGRAPH-9F9C 0x9FA2 龢 CJK UNIFIED IDEOGRAPH-9FA2 Lib/gftools/encodings/cyrillic-ext_unique-glyphs.nam000066400000000000000000000125771376445505300232410ustar00rootroot000000000000000x0460 uni0460 0x0461 uni0461 0x0462 afii10146 0x0463 afii10194 0x0464 uni0464 0x0465 uni0465 0x0466 uni0466 0x0467 uni0467 0x0468 uni0468 0x0469 uni0469 0x046A uni046A 0x046B uni046B 0x046C uni046C 0x046D uni046D 0x046E uni046E 0x046F uni046F 0x0470 uni0470 0x0471 uni0471 0x0472 afii10147 0x0473 afii10195 0x0474 afii10148 0x0475 afii10196 0x0476 uni0476 0x0477 uni0477 0x0478 uni0478 0x0479 uni0479 0x047A uni047A 0x047B uni047B 0x047C uni047C 0x047D uni047D 0x047E uni047E 0x047F uni047F 0x0480 uni0480 0x0481 uni0481 0x0482 uni0482 0x0483 uni0483 0x0484 uni0484 0x0485 uni0485 0x0486 uni0486 0x0487 uni0487 0x0488 uni0488 0x0489 uni0489 0x048A uni048A 0x048B uni048B 0x048C uni048C 0x048D uni048D 0x048E uni048E 0x048F uni048F 0x0492 uni0492 0x0493 uni0493 0x0494 uni0494 0x0495 uni0495 0x0496 uni0496 0x0497 uni0497 0x0498 uni0498 0x0499 uni0499 0x049A uni049A 0x049B uni049B 0x049C uni049C 0x049D uni049D 0x049E uni049E 0x049F uni049F 0x04A0 uni04A0 0x04A1 uni04A1 0x04A2 uni04A2 0x04A3 uni04A3 0x04A4 uni04A4 0x04A5 uni04A5 0x04A6 uni04A6 0x04A7 uni04A7 0x04A8 uni04A8 0x04A9 uni04A9 0x04AA uni04AA 0x04AB uni04AB 0x04AC uni04AC 0x04AD uni04AD 0x04AE uni04AE 0x04AF uni04AF 0x04B2 uni04B2 0x04B3 uni04B3 0x04B4 uni04B4 0x04B5 uni04B5 0x04B6 uni04B6 0x04B7 uni04B7 0x04B8 uni04B8 0x04B9 uni04B9 0x04BA uni04BA 0x04BB uni04BB 0x04BC uni04BC 0x04BD uni04BD 0x04BE uni04BE 0x04BF uni04BF 0x04C0 uni04C0 0x04C1 uni04C1 0x04C2 uni04C2 0x04C3 uni04C3 0x04C4 uni04C4 0x04C5 uni04C5 0x04C6 uni04C6 0x04C7 uni04C7 0x04C8 uni04C8 0x04C9 uni04C9 0x04CA uni04CA 0x04CB uni04CB 0x04CC uni04CC 0x04CD uni04CD 0x04CE uni04CE 0x04CF uni04CF 0x04D0 uni04D0 0x04D1 uni04D1 0x04D2 uni04D2 0x04D3 uni04D3 0x04D4 uni04D4 0x04D5 uni04D5 0x04D6 uni04D6 0x04D7 uni04D7 0x04D8 uni04D8 0x04D9 afii10846 0x04DA uni04DA 0x04DB uni04DB 0x04DC uni04DC 0x04DD uni04DD 0x04DE uni04DE 0x04DF uni04DF 0x04E0 uni04E0 0x04E1 uni04E1 0x04E2 uni04E2 0x04E3 uni04E3 0x04E4 uni04E4 0x04E5 uni04E5 0x04E6 uni04E6 0x04E7 uni04E7 0x04E8 uni04E8 0x04E9 uni04E9 0x04EA uni04EA 0x04EB uni04EB 0x04EC uni04EC 0x04ED uni04ED 0x04EE uni04EE 0x04EF uni04EF 0x04F0 uni04F0 0x04F1 uni04F1 0x04F2 uni04F2 0x04F3 uni04F3 0x04F4 uni04F4 0x04F5 uni04F5 0x04F6 uni04F6 0x04F7 uni04F7 0x04F8 uni04F8 0x04F9 uni04F9 0x04FA uni04FA 0x04FB uni04FB 0x04FC uni04FC 0x04FD uni04FD 0x04FE uni04FE 0x04FF uni04FF 0x0500 uni0500 0x0501 uni0501 0x0502 uni0502 0x0503 uni0503 0x0504 uni0504 0x0505 uni0505 0x0506 uni0506 0x0507 uni0507 0x0508 uni0508 0x0509 uni0509 0x050A uni050A 0x050B uni050B 0x050C uni050C 0x050D uni050D 0x050E uni050E 0x050F uni050F 0x0510 uni0510 0x0511 uni0511 0x0512 uni0512 0x0513 uni0513 0x0514 uni0514 0x0515 uni0515 0x0516 uni0516 0x0517 uni0517 0x0518 uni0518 0x0519 uni0519 0x051A uni051A 0x051B uni051B 0x051C uni051C 0x051D uni051D 0x051E uni051E 0x051F uni051F 0x0520 uni0520 0x0521 uni0521 0x0522 uni0522 0x0523 uni0523 0x0524 uni0524 0x0525 uni0525 0x0526 uni0526 0x0527 uni0527 0x0528 uni0528 0x0529 uni0529 0x052A uni052A 0x052B uni052B 0x052C uni052C 0x052D uni052D 0x052E uni052E 0x052F uni052F 0x1C80 ᲀ CYRILLIC SMALL LETTER ROUNDED VE 0x1C81 ᲁ CYRILLIC SMALL LETTER LONG-LEGGED DE 0x1C82 ᲂ CYRILLIC SMALL LETTER NARROW O 0x1C83 ᲃ CYRILLIC SMALL LETTER WIDE ES 0x1C84 ᲄ CYRILLIC SMALL LETTER TALL TE 0x1C85 ᲅ CYRILLIC SMALL LETTER THREE-LEGGED TE 0x1C86 ᲆ CYRILLIC SMALL LETTER TALL HARD SIGN 0x1C87 ᲇ CYRILLIC SMALL LETTER TALL YAT 0x1C88 ᲈ CYRILLIC SMALL LETTER UNBLENDED UK 0x20B4 uni20B4 0x2DE0 uni2DE0 0x2DE1 uni2DE1 0x2DE2 uni2DE2 0x2DE3 uni2DE3 0x2DE4 uni2DE4 0x2DE5 uni2DE5 0x2DE6 uni2DE6 0x2DE7 uni2DE7 0x2DE8 uni2DE8 0x2DE9 uni2DE9 0x2DEA uni2DEA 0x2DEB uni2DEB 0x2DEC uni2DEC 0x2DED uni2DED 0x2DEE uni2DEE 0x2DEF uni2DEF 0x2DF0 uni2DF0 0x2DF1 uni2DF1 0x2DF2 uni2DF2 0x2DF3 uni2DF3 0x2DF4 uni2DF4 0x2DF5 uni2DF5 0x2DF6 uni2DF6 0x2DF7 uni2DF7 0x2DF8 uni2DF8 0x2DF9 uni2DF9 0x2DFA uni2DFA 0x2DFB uni2DFB 0x2DFC uni2DFC 0x2DFD uni2DFD 0x2DFE uni2DFE 0x2DFF uni2DFF 0xA640 uniA640 0xA641 uniA641 0xA642 uniA642 0xA643 uniA643 0xA644 uniA644 0xA645 uniA645 0xA646 uniA646 0xA647 uniA647 0xA648 uniA648 0xA649 uniA649 0xA64A uniA64A 0xA64B uniA64B 0xA64C uniA64C 0xA64D uniA64D 0xA64E uniA64E 0xA64F uniA64F 0xA650 uniA650 0xA651 uniA651 0xA652 uniA652 0xA653 uniA653 0xA654 uniA654 0xA655 uniA655 0xA656 uniA656 0xA657 uniA657 0xA658 uniA658 0xA659 uniA659 0xA65A uniA65A 0xA65B uniA65B 0xA65C uniA65C 0xA65D uniA65D 0xA65E uniA65E 0xA65F uniA65F 0xA660 uniA660 0xA661 uniA661 0xA662 uniA662 0xA663 uniA663 0xA664 uniA664 0xA665 uniA665 0xA666 uniA666 0xA667 uniA667 0xA668 uniA668 0xA669 uniA669 0xA66A uniA66A 0xA66B uniA66B 0xA66C uniA66C 0xA66D uniA66D 0xA66E uniA66E 0xA66F uniA66F 0xA670 uniA670 0xA671 uniA671 0xA672 uniA672 0xA673 uniA673 0xA674 uniA674 0xA675 uniA675 0xA676 uniA676 0xA677 uniA677 0xA678 uniA678 0xA679 uniA679 0xA67A uniA67A 0xA67B uniA67B 0xA67C uniA67C 0xA67D uniA67D 0xA67E uniA67E 0xA67F uniA67F 0xA680 uniA680 0xA681 uniA681 0xA682 uniA682 0xA683 uniA683 0xA684 uniA684 0xA685 uniA685 0xA686 uniA686 0xA687 uniA687 0xA688 uniA688 0xA689 uniA689 0xA68A uniA68A 0xA68B uniA68B 0xA68C uniA68C 0xA68D uniA68D 0xA68E uniA68E 0xA68F uniA68F 0xA690 uniA690 0xA691 uniA691 0xA692 uniA692 0xA693 uniA693 0xA694 uniA694 0xA695 uniA695 0xA696 uniA696 0xA697 uniA697 0xA698 uniA698 0xA699 uniA699 0xA69A uniA69A 0xA69B uniA69B 0xA69C uniA69C 0xA69D uniA69D 0xA69E uniA69E 0xA69F uniA69F 0xFE2E ︮ COMBINING CYRILLIC TITLO LEFT HALF 0xFE2F ︯ COMBINING CYRILLIC TITLO RIGHT HALF Lib/gftools/encodings/cyrillic_unique-glyphs.nam000066400000000000000000000032471376445505300224350ustar00rootroot000000000000000x0400 uni0400 0x0401 afii10023 0x0402 afii10051 0x0403 afii10052 0x0404 afii10053 0x0405 afii10054 0x0406 afii10055 0x0407 afii10056 0x0408 afii10057 0x0409 afii10058 0x040A afii10059 0x040B afii10060 0x040C afii10061 0x040D uni040D 0x040E afii10062 0x040F afii10145 0x0410 afii10017 0x0411 afii10018 0x0412 afii10019 0x0413 afii10020 0x0414 afii10021 0x0415 afii10022 0x0416 afii10024 0x0417 afii10025 0x0418 afii10026 0x0419 afii10027 0x041A afii10028 0x041B afii10029 0x041C afii10030 0x041D afii10031 0x041E afii10032 0x041F afii10033 0x0420 afii10034 0x0421 afii10035 0x0422 afii10036 0x0423 afii10037 0x0424 afii10038 0x0425 afii10039 0x0426 afii10040 0x0427 afii10041 0x0428 afii10042 0x0429 afii10043 0x042A afii10044 0x042B afii10045 0x042C afii10046 0x042D afii10047 0x042E afii10048 0x042F afii10049 0x0430 afii10065 0x0431 afii10066 0x0432 afii10067 0x0433 afii10068 0x0434 afii10069 0x0435 afii10070 0x0436 afii10072 0x0437 afii10073 0x0438 afii10074 0x0439 afii10075 0x043A afii10076 0x043B afii10077 0x043C afii10078 0x043D afii10079 0x043E afii10080 0x043F afii10081 0x0440 afii10082 0x0441 afii10083 0x0442 afii10084 0x0443 afii10085 0x0444 afii10086 0x0445 afii10087 0x0446 afii10088 0x0447 afii10089 0x0448 afii10090 0x0449 afii10091 0x044A afii10092 0x044B afii10093 0x044C afii10094 0x044D afii10095 0x044E afii10096 0x044F afii10097 0x0450 uni0450 0x0451 afii10071 0x0452 afii10099 0x0453 afii10100 0x0454 afii10101 0x0455 afii10102 0x0456 afii10103 0x0457 afii10104 0x0458 afii10105 0x0459 afii10106 0x045A afii10107 0x045B afii10108 0x045C afii10109 0x045D uni045D 0x045E afii10110 0x045F afii10193 0x0490 afii10050 0x0491 afii10098 0x04B0 uni04B0 0x04B1 uni04B1 0x2116 uni2116 Lib/gftools/encodings/devanagari_unique-glyphs.nam000066400000000000000000000167621376445505300227320ustar00rootroot00000000000000# 2014-07-09 Copied from googlefontsdirectory unicodes-devangari.txt 0x0900 ऀ DEVANAGARI SIGN INVERTED CANDRABINDU 0x0901 ँ DEVANAGARI SIGN CANDRABINDU 0x0902 ं DEVANAGARI SIGN ANUSVARA 0x0903 ः DEVANAGARI SIGN VISARGA 0x0904 ऄ DEVANAGARI LETTER SHORT A 0x0905 अ DEVANAGARI LETTER A 0x0906 आ DEVANAGARI LETTER AA 0x0907 इ DEVANAGARI LETTER I 0x0908 ई DEVANAGARI LETTER II 0x0909 उ DEVANAGARI LETTER U 0x090A ऊ DEVANAGARI LETTER UU 0x090B ऋ DEVANAGARI LETTER VOCALIC R 0x090C ऌ DEVANAGARI LETTER VOCALIC L 0x090D ऍ DEVANAGARI LETTER CANDRA E 0x090E ऎ DEVANAGARI LETTER SHORT E 0x090F ए DEVANAGARI LETTER E 0x0910 ऐ DEVANAGARI LETTER AI 0x0911 ऑ DEVANAGARI LETTER CANDRA O 0x0912 ऒ DEVANAGARI LETTER SHORT O 0x0913 ओ DEVANAGARI LETTER O 0x0914 औ DEVANAGARI LETTER AU 0x0915 क DEVANAGARI LETTER KA 0x0916 ख DEVANAGARI LETTER KHA 0x0917 ग DEVANAGARI LETTER GA 0x0918 घ DEVANAGARI LETTER GHA 0x0919 ङ DEVANAGARI LETTER NGA 0x091A च DEVANAGARI LETTER CA 0x091B छ DEVANAGARI LETTER CHA 0x091C ज DEVANAGARI LETTER JA 0x091D झ DEVANAGARI LETTER JHA 0x091E ञ DEVANAGARI LETTER NYA 0x091F ट DEVANAGARI LETTER TTA 0x0920 ठ DEVANAGARI LETTER TTHA 0x0921 ड DEVANAGARI LETTER DDA 0x0922 ढ DEVANAGARI LETTER DDHA 0x0923 ण DEVANAGARI LETTER NNA 0x0924 त DEVANAGARI LETTER TA 0x0925 थ DEVANAGARI LETTER THA 0x0926 द DEVANAGARI LETTER DA 0x0927 ध DEVANAGARI LETTER DHA 0x0928 न DEVANAGARI LETTER NA 0x0929 ऩ DEVANAGARI LETTER NNNA 0x092A प DEVANAGARI LETTER PA 0x092B फ DEVANAGARI LETTER PHA 0x092C ब DEVANAGARI LETTER BA 0x092D भ DEVANAGARI LETTER BHA 0x092E म DEVANAGARI LETTER MA 0x092F य DEVANAGARI LETTER YA 0x0930 र DEVANAGARI LETTER RA 0x0931 ऱ DEVANAGARI LETTER RRA 0x0932 ल DEVANAGARI LETTER LA 0x0933 ळ DEVANAGARI LETTER LLA 0x0934 ऴ DEVANAGARI LETTER LLLA 0x0935 व DEVANAGARI LETTER VA 0x0936 श DEVANAGARI LETTER SHA 0x0937 ष DEVANAGARI LETTER SSA 0x0938 स DEVANAGARI LETTER SA 0x0939 ह DEVANAGARI LETTER HA 0x093A ऺ 0x093B ऻ 0x093C ़ DEVANAGARI SIGN NUKTA 0x093D ऽ DEVANAGARI SIGN AVAGRAHA 0x093E ा DEVANAGARI VOWEL SIGN AA 0x093F ि DEVANAGARI VOWEL SIGN I 0x0940 ी DEVANAGARI VOWEL SIGN II 0x0941 ु DEVANAGARI VOWEL SIGN U 0x0942 ू DEVANAGARI VOWEL SIGN UU 0x0943 ृ DEVANAGARI VOWEL SIGN VOCALIC R 0x0944 ॄ DEVANAGARI VOWEL SIGN VOCALIC RR 0x0945 ॅ DEVANAGARI VOWEL SIGN CANDRA E 0x0946 ॆ DEVANAGARI VOWEL SIGN SHORT E 0x0947 े DEVANAGARI VOWEL SIGN E 0x0948 ै DEVANAGARI VOWEL SIGN AI 0x0949 ॉ DEVANAGARI VOWEL SIGN CANDRA O 0x094A ॊ DEVANAGARI VOWEL SIGN SHORT O 0x094B ो DEVANAGARI VOWEL SIGN O 0x094C ौ DEVANAGARI VOWEL SIGN AU 0x094D ् DEVANAGARI SIGN VIRAMA 0x094E ॎ DEVANAGARI VOWEL SIGN PRISHTHAMATRA E 0x094F ॏ 0x0950 ॐ DEVANAGARI OM 0x0951 ॑ DEVANAGARI STRESS SIGN UDATTA 0x0952 ॒ DEVANAGARI STRESS SIGN ANUDATTA 0x0953 ॓ DEVANAGARI GRAVE ACCENT 0x0954 ॔ DEVANAGARI ACUTE ACCENT 0x0955 ॕ DEVANAGARI VOWEL SIGN CANDRA LONG E 0x0956 ॖ 0x0957 ॗ 0x0958 क़ DEVANAGARI LETTER QA 0x0959 ख़ DEVANAGARI LETTER KHHA 0x095A ग़ DEVANAGARI LETTER GHHA 0x095B ज़ DEVANAGARI LETTER ZA 0x095C ड़ DEVANAGARI LETTER DDDHA 0x095D ढ़ DEVANAGARI LETTER RHA 0x095E फ़ DEVANAGARI LETTER FA 0x095F य़ DEVANAGARI LETTER YYA 0x0960 ॠ DEVANAGARI LETTER VOCALIC RR 0x0961 ॡ DEVANAGARI LETTER VOCALIC LL 0x0962 ॢ DEVANAGARI VOWEL SIGN VOCALIC L 0x0963 ॣ DEVANAGARI VOWEL SIGN VOCALIC LL 0x0964 । DEVANAGARI DANDA 0x0965 ॥ DEVANAGARI DOUBLE DANDA 0x0966 ० DEVANAGARI DIGIT ZERO 0x0967 १ DEVANAGARI DIGIT ONE 0x0968 २ DEVANAGARI DIGIT TWO 0x0969 ३ DEVANAGARI DIGIT THREE 0x096A ४ DEVANAGARI DIGIT FOUR 0x096B ५ DEVANAGARI DIGIT FIVE 0x096C ६ DEVANAGARI DIGIT SIX 0x096D ७ DEVANAGARI DIGIT SEVEN 0x096E ८ DEVANAGARI DIGIT EIGHT 0x096F ९ DEVANAGARI DIGIT NINE 0x0970 ॰ DEVANAGARI ABBREVIATION SIGN 0x0971 ॱ DEVANAGARI SIGN HIGH SPACING DOT 0x0972 ॲ DEVANAGARI LETTER CANDRA A 0x0973 ॳ 0x0974 ॴ 0x0975 ॵ 0x0976 ॶ 0x0977 ॷ 0x0978 ॸ 0x0979 ॹ DEVANAGARI LETTER ZHA 0x097A ॺ DEVANAGARI LETTER HEAVY YA 0x097B ॻ DEVANAGARI LETTER GGA 0x097C ॼ DEVANAGARI LETTER JJA 0x097D ॽ DEVANAGARI LETTER GLOTTAL STOP 0x097E ॾ DEVANAGARI LETTER DDDA 0x097F ॿ DEVANAGARI LETTER BBA 0x1CD0 ᳐ VEDIC TONE KARSHANA 0x1CD1 ᳑ VEDIC TONE SHARA 0x1CD2 ᳒ VEDIC TONE PRENKHA 0x1CD3 ᳓ VEDIC SIGN NIHSHVASA 0x1CD4 ᳔ VEDIC SIGN YAJURVEDIC MIDLINE SVARITA 0x1CD5 ᳕ VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA 0x1CD6 ᳖ VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA 0x1CD7 ᳗ VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA 0x1CD8 ᳘ VEDIC TONE CANDRA BELOW 0x1CD9 ᳙ VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER 0x1CDA ᳚ VEDIC TONE DOUBLE SVARITA 0x1CDB ᳛ VEDIC TONE TRIPLE SVARITA 0x1CDC ᳜ VEDIC TONE KATHAKA ANUDATTA 0x1CDD ᳝ VEDIC TONE DOT BELOW 0x1CDE ᳞ VEDIC TONE TWO DOTS BELOW 0x1CDF ᳟ VEDIC TONE THREE DOTS BELOW 0x1CE0 ᳠ VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA 0x1CE1 ᳡ VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA 0x1CE2 ᳢ VEDIC SIGN VISARGA SVARITA 0x1CE3 ᳣ VEDIC SIGN VISARGA UDATTA 0x1CE4 ᳤ VEDIC SIGN REVERSED VISARGA UDATTA 0x1CE5 ᳥ VEDIC SIGN VISARGA ANUDATTA 0x1CE6 ᳦ VEDIC SIGN REVERSED VISARGA ANUDATTA 0x1CE7 ᳧ VEDIC SIGN VISARGA UDATTA WITH TAIL 0x1CE8 ᳨ VEDIC SIGN VISARGA ANUDATTA WITH TAIL 0x1CE9 ᳩ VEDIC SIGN ANUSVARA ANTARGOMUKHA 0x1CEA ᳪ VEDIC SIGN ANUSVARA BAHIRGOMUKHA 0x1CEB ᳫ VEDIC SIGN ANUSVARA VAMAGOMUKHA 0x1CEC ᳬ VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL 0x1CED ᳭ VEDIC SIGN TIRYAK 0x1CEE ᳮ VEDIC SIGN HEXIFORM LONG ANUSVARA 0x1CEF ᳯ VEDIC SIGN LONG ANUSVARA 0x1CF0 ᳰ VEDIC SIGN RTHANG LONG ANUSVARA 0x1CF1 ᳱ VEDIC SIGN ANUSVARA UBHAYATO MUKHA 0x1CF2 ᳲ VEDIC SIGN ARDHAVISARGA 0x1CF3 ᳳ 0x1CF4 ᳴ 0x1CF5 ᳵ 0x1CF6 ᳶ 0x1CF8 ᳸ 0x1CF9 ᳹ 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x200D ‍ ZERO WIDTH JOINER 0x2044 ⁄ FRACTION SLASH 0x20A8 ₨ RUPEE SIGN 0x20B9 ₹ 0x25CC ◌ DOTTED CIRCLE 0xA830 ꠰ NORTH INDIC FRACTION ONE QUARTER 0xA831 ꠱ NORTH INDIC FRACTION ONE HALF 0xA832 ꠲ NORTH INDIC FRACTION THREE QUARTERS 0xA833 ꠳ NORTH INDIC FRACTION ONE SIXTEENTH 0xA834 ꠴ NORTH INDIC FRACTION ONE EIGHTH 0xA835 ꠵ NORTH INDIC FRACTION THREE SIXTEENTHS 0xA836 ꠶ NORTH INDIC QUARTER MARK 0xA837 ꠷ NORTH INDIC PLACEHOLDER MARK 0xA838 ꠸ NORTH INDIC RUPEE MARK 0xA839 ꠹ NORTH INDIC QUANTITY MARK 0xA8E0 ꣠ COMBINING DEVANAGARI DIGIT ZERO 0xA8E1 ꣡ COMBINING DEVANAGARI DIGIT ONE 0xA8E2 ꣢ COMBINING DEVANAGARI DIGIT TWO 0xA8E3 ꣣ COMBINING DEVANAGARI DIGIT THREE 0xA8E4 ꣤ COMBINING DEVANAGARI DIGIT FOUR 0xA8E5 ꣥ COMBINING DEVANAGARI DIGIT FIVE 0xA8E6 ꣦ COMBINING DEVANAGARI DIGIT SIX 0xA8E7 ꣧ COMBINING DEVANAGARI DIGIT SEVEN 0xA8E8 ꣨ COMBINING DEVANAGARI DIGIT EIGHT 0xA8E9 ꣩ COMBINING DEVANAGARI DIGIT NINE 0xA8EA ꣪ COMBINING DEVANAGARI LETTER A 0xA8EB ꣫ COMBINING DEVANAGARI LETTER U 0xA8EC ꣬ COMBINING DEVANAGARI LETTER KA 0xA8ED ꣭ COMBINING DEVANAGARI LETTER NA 0xA8EE ꣮ COMBINING DEVANAGARI LETTER PA 0xA8EF ꣯ COMBINING DEVANAGARI LETTER RA 0xA8F0 ꣰ COMBINING DEVANAGARI LETTER VI 0xA8F1 ꣱ COMBINING DEVANAGARI SIGN AVAGRAHA 0xA8F2 ꣲ DEVANAGARI SIGN SPACING CANDRABINDU 0xA8F3 ꣳ DEVANAGARI SIGN CANDRABINDU VIRAMA 0xA8F4 ꣴ DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA 0xA8F5 ꣵ DEVANAGARI SIGN CANDRABINDU TWO 0xA8F6 ꣶ DEVANAGARI SIGN CANDRABINDU THREE 0xA8F7 ꣷ DEVANAGARI SIGN CANDRABINDU AVAGRAHA 0xA8F8 ꣸ DEVANAGARI SIGN PUSHPIKA 0xA8F9 ꣹ DEVANAGARI GAP FILLER 0xA8FA ꣺ DEVANAGARI CARET 0xA8FB ꣻ DEVANAGARI HEADSTROKE Lib/gftools/encodings/egyptian-hieroglyphs_unique-glyphs.nam000066400000000000000000001200721376445505300247720ustar00rootroot000000000000000x13000 𓀀 EGYPTIAN HIEROGLYPH A001 0x13001 𓀁 EGYPTIAN HIEROGLYPH A002 0x13002 𓀂 EGYPTIAN HIEROGLYPH A003 0x13003 𓀃 EGYPTIAN HIEROGLYPH A004 0x13004 𓀄 EGYPTIAN HIEROGLYPH A005 0x13005 𓀅 EGYPTIAN HIEROGLYPH A005A 0x13006 𓀆 EGYPTIAN HIEROGLYPH A006 0x13007 𓀇 EGYPTIAN HIEROGLYPH A006A 0x13008 𓀈 EGYPTIAN HIEROGLYPH A006B 0x13009 𓀉 EGYPTIAN HIEROGLYPH A007 0x1300A 𓀊 EGYPTIAN HIEROGLYPH A008 0x1300B 𓀋 EGYPTIAN HIEROGLYPH A009 0x1300C 𓀌 EGYPTIAN HIEROGLYPH A010 0x1300D 𓀍 EGYPTIAN HIEROGLYPH A011 0x1300E 𓀎 EGYPTIAN HIEROGLYPH A012 0x1300F 𓀏 EGYPTIAN HIEROGLYPH A013 0x13010 𓀐 EGYPTIAN HIEROGLYPH A014 0x13011 𓀑 EGYPTIAN HIEROGLYPH A014A 0x13012 𓀒 EGYPTIAN HIEROGLYPH A015 0x13013 𓀓 EGYPTIAN HIEROGLYPH A016 0x13014 𓀔 EGYPTIAN HIEROGLYPH A017 0x13015 𓀕 EGYPTIAN HIEROGLYPH A017A 0x13016 𓀖 EGYPTIAN HIEROGLYPH A018 0x13017 𓀗 EGYPTIAN HIEROGLYPH A019 0x13018 𓀘 EGYPTIAN HIEROGLYPH A020 0x13019 𓀙 EGYPTIAN HIEROGLYPH A021 0x1301A 𓀚 EGYPTIAN HIEROGLYPH A022 0x1301B 𓀛 EGYPTIAN HIEROGLYPH A023 0x1301C 𓀜 EGYPTIAN HIEROGLYPH A024 0x1301D 𓀝 EGYPTIAN HIEROGLYPH A025 0x1301E 𓀞 EGYPTIAN HIEROGLYPH A026 0x1301F 𓀟 EGYPTIAN HIEROGLYPH A027 0x13020 𓀠 EGYPTIAN HIEROGLYPH A028 0x13021 𓀡 EGYPTIAN HIEROGLYPH A029 0x13022 𓀢 EGYPTIAN HIEROGLYPH A030 0x13023 𓀣 EGYPTIAN HIEROGLYPH A031 0x13024 𓀤 EGYPTIAN HIEROGLYPH A032 0x13025 𓀥 EGYPTIAN HIEROGLYPH A032A 0x13026 𓀦 EGYPTIAN HIEROGLYPH A033 0x13027 𓀧 EGYPTIAN HIEROGLYPH A034 0x13028 𓀨 EGYPTIAN HIEROGLYPH A035 0x13029 𓀩 EGYPTIAN HIEROGLYPH A036 0x1302A 𓀪 EGYPTIAN HIEROGLYPH A037 0x1302B 𓀫 EGYPTIAN HIEROGLYPH A038 0x1302C 𓀬 EGYPTIAN HIEROGLYPH A039 0x1302D 𓀭 EGYPTIAN HIEROGLYPH A040 0x1302E 𓀮 EGYPTIAN HIEROGLYPH A040A 0x1302F 𓀯 EGYPTIAN HIEROGLYPH A041 0x13030 𓀰 EGYPTIAN HIEROGLYPH A042 0x13031 𓀱 EGYPTIAN HIEROGLYPH A042A 0x13032 𓀲 EGYPTIAN HIEROGLYPH A043 0x13033 𓀳 EGYPTIAN HIEROGLYPH A043A 0x13034 𓀴 EGYPTIAN HIEROGLYPH A044 0x13035 𓀵 EGYPTIAN HIEROGLYPH A045 0x13036 𓀶 EGYPTIAN HIEROGLYPH A045A 0x13037 𓀷 EGYPTIAN HIEROGLYPH A046 0x13038 𓀸 EGYPTIAN HIEROGLYPH A047 0x13039 𓀹 EGYPTIAN HIEROGLYPH A048 0x1303A 𓀺 EGYPTIAN HIEROGLYPH A049 0x1303B 𓀻 EGYPTIAN HIEROGLYPH A050 0x1303C 𓀼 EGYPTIAN HIEROGLYPH A051 0x1303D 𓀽 EGYPTIAN HIEROGLYPH A052 0x1303E 𓀾 EGYPTIAN HIEROGLYPH A053 0x1303F 𓀿 EGYPTIAN HIEROGLYPH A054 0x13040 𓁀 EGYPTIAN HIEROGLYPH A055 0x13041 𓁁 EGYPTIAN HIEROGLYPH A056 0x13042 𓁂 EGYPTIAN HIEROGLYPH A057 0x13043 𓁃 EGYPTIAN HIEROGLYPH A058 0x13044 𓁄 EGYPTIAN HIEROGLYPH A059 0x13045 𓁅 EGYPTIAN HIEROGLYPH A060 0x13046 𓁆 EGYPTIAN HIEROGLYPH A061 0x13047 𓁇 EGYPTIAN HIEROGLYPH A062 0x13048 𓁈 EGYPTIAN HIEROGLYPH A063 0x13049 𓁉 EGYPTIAN HIEROGLYPH A064 0x1304A 𓁊 EGYPTIAN HIEROGLYPH A065 0x1304B 𓁋 EGYPTIAN HIEROGLYPH A066 0x1304C 𓁌 EGYPTIAN HIEROGLYPH A067 0x1304D 𓁍 EGYPTIAN HIEROGLYPH A068 0x1304E 𓁎 EGYPTIAN HIEROGLYPH A069 0x1304F 𓁏 EGYPTIAN HIEROGLYPH A070 0x13050 𓁐 EGYPTIAN HIEROGLYPH B001 0x13051 𓁑 EGYPTIAN HIEROGLYPH B002 0x13052 𓁒 EGYPTIAN HIEROGLYPH B003 0x13053 𓁓 EGYPTIAN HIEROGLYPH B004 0x13054 𓁔 EGYPTIAN HIEROGLYPH B005 0x13055 𓁕 EGYPTIAN HIEROGLYPH B005A 0x13056 𓁖 EGYPTIAN HIEROGLYPH B006 0x13057 𓁗 EGYPTIAN HIEROGLYPH B007 0x13058 𓁘 EGYPTIAN HIEROGLYPH B008 0x13059 𓁙 EGYPTIAN HIEROGLYPH B009 0x1305A 𓁚 EGYPTIAN HIEROGLYPH C001 0x1305B 𓁛 EGYPTIAN HIEROGLYPH C002 0x1305C 𓁜 EGYPTIAN HIEROGLYPH C002A 0x1305D 𓁝 EGYPTIAN HIEROGLYPH C002B 0x1305E 𓁞 EGYPTIAN HIEROGLYPH C002C 0x1305F 𓁟 EGYPTIAN HIEROGLYPH C003 0x13060 𓁠 EGYPTIAN HIEROGLYPH C004 0x13061 𓁡 EGYPTIAN HIEROGLYPH C005 0x13062 𓁢 EGYPTIAN HIEROGLYPH C006 0x13063 𓁣 EGYPTIAN HIEROGLYPH C007 0x13064 𓁤 EGYPTIAN HIEROGLYPH C008 0x13065 𓁥 EGYPTIAN HIEROGLYPH C009 0x13066 𓁦 EGYPTIAN HIEROGLYPH C010 0x13067 𓁧 EGYPTIAN HIEROGLYPH C010A 0x13068 𓁨 EGYPTIAN HIEROGLYPH C011 0x13069 𓁩 EGYPTIAN HIEROGLYPH C012 0x1306A 𓁪 EGYPTIAN HIEROGLYPH C013 0x1306B 𓁫 EGYPTIAN HIEROGLYPH C014 0x1306C 𓁬 EGYPTIAN HIEROGLYPH C015 0x1306D 𓁭 EGYPTIAN HIEROGLYPH C016 0x1306E 𓁮 EGYPTIAN HIEROGLYPH C017 0x1306F 𓁯 EGYPTIAN HIEROGLYPH C018 0x13070 𓁰 EGYPTIAN HIEROGLYPH C019 0x13071 𓁱 EGYPTIAN HIEROGLYPH C020 0x13072 𓁲 EGYPTIAN HIEROGLYPH C021 0x13073 𓁳 EGYPTIAN HIEROGLYPH C022 0x13074 𓁴 EGYPTIAN HIEROGLYPH C023 0x13075 𓁵 EGYPTIAN HIEROGLYPH C024 0x13076 𓁶 EGYPTIAN HIEROGLYPH D001 0x13077 𓁷 EGYPTIAN HIEROGLYPH D002 0x13078 𓁸 EGYPTIAN HIEROGLYPH D003 0x13079 𓁹 EGYPTIAN HIEROGLYPH D004 0x1307A 𓁺 EGYPTIAN HIEROGLYPH D005 0x1307B 𓁻 EGYPTIAN HIEROGLYPH D006 0x1307C 𓁼 EGYPTIAN HIEROGLYPH D007 0x1307D 𓁽 EGYPTIAN HIEROGLYPH D008 0x1307E 𓁾 EGYPTIAN HIEROGLYPH D008A 0x1307F 𓁿 EGYPTIAN HIEROGLYPH D009 0x13080 𓂀 EGYPTIAN HIEROGLYPH D010 0x13081 𓂁 EGYPTIAN HIEROGLYPH D011 0x13082 𓂂 EGYPTIAN HIEROGLYPH D012 0x13083 𓂃 EGYPTIAN HIEROGLYPH D013 0x13084 𓂄 EGYPTIAN HIEROGLYPH D014 0x13085 𓂅 EGYPTIAN HIEROGLYPH D015 0x13086 𓂆 EGYPTIAN HIEROGLYPH D016 0x13087 𓂇 EGYPTIAN HIEROGLYPH D017 0x13088 𓂈 EGYPTIAN HIEROGLYPH D018 0x13089 𓂉 EGYPTIAN HIEROGLYPH D019 0x1308A 𓂊 EGYPTIAN HIEROGLYPH D020 0x1308B 𓂋 EGYPTIAN HIEROGLYPH D021 0x1308C 𓂌 EGYPTIAN HIEROGLYPH D022 0x1308D 𓂍 EGYPTIAN HIEROGLYPH D023 0x1308E 𓂎 EGYPTIAN HIEROGLYPH D024 0x1308F 𓂏 EGYPTIAN HIEROGLYPH D025 0x13090 𓂐 EGYPTIAN HIEROGLYPH D026 0x13091 𓂑 EGYPTIAN HIEROGLYPH D027 0x13092 𓂒 EGYPTIAN HIEROGLYPH D027A 0x13093 𓂓 EGYPTIAN HIEROGLYPH D028 0x13094 𓂔 EGYPTIAN HIEROGLYPH D029 0x13095 𓂕 EGYPTIAN HIEROGLYPH D030 0x13096 𓂖 EGYPTIAN HIEROGLYPH D031 0x13097 𓂗 EGYPTIAN HIEROGLYPH D031A 0x13098 𓂘 EGYPTIAN HIEROGLYPH D032 0x13099 𓂙 EGYPTIAN HIEROGLYPH D033 0x1309A 𓂚 EGYPTIAN HIEROGLYPH D034 0x1309B 𓂛 EGYPTIAN HIEROGLYPH D034A 0x1309C 𓂜 EGYPTIAN HIEROGLYPH D035 0x1309D 𓂝 EGYPTIAN HIEROGLYPH D036 0x1309E 𓂞 EGYPTIAN HIEROGLYPH D037 0x1309F 𓂟 EGYPTIAN HIEROGLYPH D038 0x130A0 𓂠 EGYPTIAN HIEROGLYPH D039 0x130A1 𓂡 EGYPTIAN HIEROGLYPH D040 0x130A2 𓂢 EGYPTIAN HIEROGLYPH D041 0x130A3 𓂣 EGYPTIAN HIEROGLYPH D042 0x130A4 𓂤 EGYPTIAN HIEROGLYPH D043 0x130A5 𓂥 EGYPTIAN HIEROGLYPH D044 0x130A6 𓂦 EGYPTIAN HIEROGLYPH D045 0x130A7 𓂧 EGYPTIAN HIEROGLYPH D046 0x130A8 𓂨 EGYPTIAN HIEROGLYPH D046A 0x130A9 𓂩 EGYPTIAN HIEROGLYPH D047 0x130AA 𓂪 EGYPTIAN HIEROGLYPH D048 0x130AB 𓂫 EGYPTIAN HIEROGLYPH D048A 0x130AC 𓂬 EGYPTIAN HIEROGLYPH D049 0x130AD 𓂭 EGYPTIAN HIEROGLYPH D050 0x130AE 𓂮 EGYPTIAN HIEROGLYPH D050A 0x130AF 𓂯 EGYPTIAN HIEROGLYPH D050B 0x130B0 𓂰 EGYPTIAN HIEROGLYPH D050C 0x130B1 𓂱 EGYPTIAN HIEROGLYPH D050D 0x130B2 𓂲 EGYPTIAN HIEROGLYPH D050E 0x130B3 𓂳 EGYPTIAN HIEROGLYPH D050F 0x130B4 𓂴 EGYPTIAN HIEROGLYPH D050G 0x130B5 𓂵 EGYPTIAN HIEROGLYPH D050H 0x130B6 𓂶 EGYPTIAN HIEROGLYPH D050I 0x130B7 𓂷 EGYPTIAN HIEROGLYPH D051 0x130B8 𓂸 EGYPTIAN HIEROGLYPH D052 0x130B9 𓂹 EGYPTIAN HIEROGLYPH D052A 0x130BA 𓂺 EGYPTIAN HIEROGLYPH D053 0x130BB 𓂻 EGYPTIAN HIEROGLYPH D054 0x130BC 𓂼 EGYPTIAN HIEROGLYPH D054A 0x130BD 𓂽 EGYPTIAN HIEROGLYPH D055 0x130BE 𓂾 EGYPTIAN HIEROGLYPH D056 0x130BF 𓂿 EGYPTIAN HIEROGLYPH D057 0x130C0 𓃀 EGYPTIAN HIEROGLYPH D058 0x130C1 𓃁 EGYPTIAN HIEROGLYPH D059 0x130C2 𓃂 EGYPTIAN HIEROGLYPH D060 0x130C3 𓃃 EGYPTIAN HIEROGLYPH D061 0x130C4 𓃄 EGYPTIAN HIEROGLYPH D062 0x130C5 𓃅 EGYPTIAN HIEROGLYPH D063 0x130C6 𓃆 EGYPTIAN HIEROGLYPH D064 0x130C7 𓃇 EGYPTIAN HIEROGLYPH D065 0x130C8 𓃈 EGYPTIAN HIEROGLYPH D066 0x130C9 𓃉 EGYPTIAN HIEROGLYPH D067 0x130CA 𓃊 EGYPTIAN HIEROGLYPH D067A 0x130CB 𓃋 EGYPTIAN HIEROGLYPH D067B 0x130CC 𓃌 EGYPTIAN HIEROGLYPH D067C 0x130CD 𓃍 EGYPTIAN HIEROGLYPH D067D 0x130CE 𓃎 EGYPTIAN HIEROGLYPH D067E 0x130CF 𓃏 EGYPTIAN HIEROGLYPH D067F 0x130D0 𓃐 EGYPTIAN HIEROGLYPH D067G 0x130D1 𓃑 EGYPTIAN HIEROGLYPH D067H 0x130D2 𓃒 EGYPTIAN HIEROGLYPH E001 0x130D3 𓃓 EGYPTIAN HIEROGLYPH E002 0x130D4 𓃔 EGYPTIAN HIEROGLYPH E003 0x130D5 𓃕 EGYPTIAN HIEROGLYPH E004 0x130D6 𓃖 EGYPTIAN HIEROGLYPH E005 0x130D7 𓃗 EGYPTIAN HIEROGLYPH E006 0x130D8 𓃘 EGYPTIAN HIEROGLYPH E007 0x130D9 𓃙 EGYPTIAN HIEROGLYPH E008 0x130DA 𓃚 EGYPTIAN HIEROGLYPH E008A 0x130DB 𓃛 EGYPTIAN HIEROGLYPH E009 0x130DC 𓃜 EGYPTIAN HIEROGLYPH E009A 0x130DD 𓃝 EGYPTIAN HIEROGLYPH E010 0x130DE 𓃞 EGYPTIAN HIEROGLYPH E011 0x130DF 𓃟 EGYPTIAN HIEROGLYPH E012 0x130E0 𓃠 EGYPTIAN HIEROGLYPH E013 0x130E1 𓃡 EGYPTIAN HIEROGLYPH E014 0x130E2 𓃢 EGYPTIAN HIEROGLYPH E015 0x130E3 𓃣 EGYPTIAN HIEROGLYPH E016 0x130E4 𓃤 EGYPTIAN HIEROGLYPH E016A 0x130E5 𓃥 EGYPTIAN HIEROGLYPH E017 0x130E6 𓃦 EGYPTIAN HIEROGLYPH E017A 0x130E7 𓃧 EGYPTIAN HIEROGLYPH E018 0x130E8 𓃨 EGYPTIAN HIEROGLYPH E019 0x130E9 𓃩 EGYPTIAN HIEROGLYPH E020 0x130EA 𓃪 EGYPTIAN HIEROGLYPH E020A 0x130EB 𓃫 EGYPTIAN HIEROGLYPH E021 0x130EC 𓃬 EGYPTIAN HIEROGLYPH E022 0x130ED 𓃭 EGYPTIAN HIEROGLYPH E023 0x130EE 𓃮 EGYPTIAN HIEROGLYPH E024 0x130EF 𓃯 EGYPTIAN HIEROGLYPH E025 0x130F0 𓃰 EGYPTIAN HIEROGLYPH E026 0x130F1 𓃱 EGYPTIAN HIEROGLYPH E027 0x130F2 𓃲 EGYPTIAN HIEROGLYPH E028 0x130F3 𓃳 EGYPTIAN HIEROGLYPH E028A 0x130F4 𓃴 EGYPTIAN HIEROGLYPH E029 0x130F5 𓃵 EGYPTIAN HIEROGLYPH E030 0x130F6 𓃶 EGYPTIAN HIEROGLYPH E031 0x130F7 𓃷 EGYPTIAN HIEROGLYPH E032 0x130F8 𓃸 EGYPTIAN HIEROGLYPH E033 0x130F9 𓃹 EGYPTIAN HIEROGLYPH E034 0x130FA 𓃺 EGYPTIAN HIEROGLYPH E034A 0x130FB 𓃻 EGYPTIAN HIEROGLYPH E036 0x130FC 𓃼 EGYPTIAN HIEROGLYPH E037 0x130FD 𓃽 EGYPTIAN HIEROGLYPH E038 0x130FE 𓃾 EGYPTIAN HIEROGLYPH F001 0x130FF 𓃿 EGYPTIAN HIEROGLYPH F001A 0x13100 𓄀 EGYPTIAN HIEROGLYPH F002 0x13101 𓄁 EGYPTIAN HIEROGLYPH F003 0x13102 𓄂 EGYPTIAN HIEROGLYPH F004 0x13103 𓄃 EGYPTIAN HIEROGLYPH F005 0x13104 𓄄 EGYPTIAN HIEROGLYPH F006 0x13105 𓄅 EGYPTIAN HIEROGLYPH F007 0x13106 𓄆 EGYPTIAN HIEROGLYPH F008 0x13107 𓄇 EGYPTIAN HIEROGLYPH F009 0x13108 𓄈 EGYPTIAN HIEROGLYPH F010 0x13109 𓄉 EGYPTIAN HIEROGLYPH F011 0x1310A 𓄊 EGYPTIAN HIEROGLYPH F012 0x1310B 𓄋 EGYPTIAN HIEROGLYPH F013 0x1310C 𓄌 EGYPTIAN HIEROGLYPH F013A 0x1310D 𓄍 EGYPTIAN HIEROGLYPH F014 0x1310E 𓄎 EGYPTIAN HIEROGLYPH F015 0x1310F 𓄏 EGYPTIAN HIEROGLYPH F016 0x13110 𓄐 EGYPTIAN HIEROGLYPH F017 0x13111 𓄑 EGYPTIAN HIEROGLYPH F018 0x13112 𓄒 EGYPTIAN HIEROGLYPH F019 0x13113 𓄓 EGYPTIAN HIEROGLYPH F020 0x13114 𓄔 EGYPTIAN HIEROGLYPH F021 0x13115 𓄕 EGYPTIAN HIEROGLYPH F021A 0x13116 𓄖 EGYPTIAN HIEROGLYPH F022 0x13117 𓄗 EGYPTIAN HIEROGLYPH F023 0x13118 𓄘 EGYPTIAN HIEROGLYPH F024 0x13119 𓄙 EGYPTIAN HIEROGLYPH F025 0x1311A 𓄚 EGYPTIAN HIEROGLYPH F026 0x1311B 𓄛 EGYPTIAN HIEROGLYPH F027 0x1311C 𓄜 EGYPTIAN HIEROGLYPH F028 0x1311D 𓄝 EGYPTIAN HIEROGLYPH F029 0x1311E 𓄞 EGYPTIAN HIEROGLYPH F030 0x1311F 𓄟 EGYPTIAN HIEROGLYPH F031 0x13120 𓄠 EGYPTIAN HIEROGLYPH F031A 0x13121 𓄡 EGYPTIAN HIEROGLYPH F032 0x13122 𓄢 EGYPTIAN HIEROGLYPH F033 0x13123 𓄣 EGYPTIAN HIEROGLYPH F034 0x13124 𓄤 EGYPTIAN HIEROGLYPH F035 0x13125 𓄥 EGYPTIAN HIEROGLYPH F036 0x13126 𓄦 EGYPTIAN HIEROGLYPH F037 0x13127 𓄧 EGYPTIAN HIEROGLYPH F037A 0x13128 𓄨 EGYPTIAN HIEROGLYPH F038 0x13129 𓄩 EGYPTIAN HIEROGLYPH F038A 0x1312A 𓄪 EGYPTIAN HIEROGLYPH F039 0x1312B 𓄫 EGYPTIAN HIEROGLYPH F040 0x1312C 𓄬 EGYPTIAN HIEROGLYPH F041 0x1312D 𓄭 EGYPTIAN HIEROGLYPH F042 0x1312E 𓄮 EGYPTIAN HIEROGLYPH F043 0x1312F 𓄯 EGYPTIAN HIEROGLYPH F044 0x13130 𓄰 EGYPTIAN HIEROGLYPH F045 0x13131 𓄱 EGYPTIAN HIEROGLYPH F045A 0x13132 𓄲 EGYPTIAN HIEROGLYPH F046 0x13133 𓄳 EGYPTIAN HIEROGLYPH F046A 0x13134 𓄴 EGYPTIAN HIEROGLYPH F047 0x13135 𓄵 EGYPTIAN HIEROGLYPH F047A 0x13136 𓄶 EGYPTIAN HIEROGLYPH F048 0x13137 𓄷 EGYPTIAN HIEROGLYPH F049 0x13138 𓄸 EGYPTIAN HIEROGLYPH F050 0x13139 𓄹 EGYPTIAN HIEROGLYPH F051 0x1313A 𓄺 EGYPTIAN HIEROGLYPH F051A 0x1313B 𓄻 EGYPTIAN HIEROGLYPH F051B 0x1313C 𓄼 EGYPTIAN HIEROGLYPH F051C 0x1313D 𓄽 EGYPTIAN HIEROGLYPH F052 0x1313E 𓄾 EGYPTIAN HIEROGLYPH F053 0x1313F 𓄿 EGYPTIAN HIEROGLYPH G001 0x13140 𓅀 EGYPTIAN HIEROGLYPH G002 0x13141 𓅁 EGYPTIAN HIEROGLYPH G003 0x13142 𓅂 EGYPTIAN HIEROGLYPH G004 0x13143 𓅃 EGYPTIAN HIEROGLYPH G005 0x13144 𓅄 EGYPTIAN HIEROGLYPH G006 0x13145 𓅅 EGYPTIAN HIEROGLYPH G006A 0x13146 𓅆 EGYPTIAN HIEROGLYPH G007 0x13147 𓅇 EGYPTIAN HIEROGLYPH G007A 0x13148 𓅈 EGYPTIAN HIEROGLYPH G007B 0x13149 𓅉 EGYPTIAN HIEROGLYPH G008 0x1314A 𓅊 EGYPTIAN HIEROGLYPH G009 0x1314B 𓅋 EGYPTIAN HIEROGLYPH G010 0x1314C 𓅌 EGYPTIAN HIEROGLYPH G011 0x1314D 𓅍 EGYPTIAN HIEROGLYPH G011A 0x1314E 𓅎 EGYPTIAN HIEROGLYPH G012 0x1314F 𓅏 EGYPTIAN HIEROGLYPH G013 0x13150 𓅐 EGYPTIAN HIEROGLYPH G014 0x13151 𓅑 EGYPTIAN HIEROGLYPH G015 0x13152 𓅒 EGYPTIAN HIEROGLYPH G016 0x13153 𓅓 EGYPTIAN HIEROGLYPH G017 0x13154 𓅔 EGYPTIAN HIEROGLYPH G018 0x13155 𓅕 EGYPTIAN HIEROGLYPH G019 0x13156 𓅖 EGYPTIAN HIEROGLYPH G020 0x13157 𓅗 EGYPTIAN HIEROGLYPH G020A 0x13158 𓅘 EGYPTIAN HIEROGLYPH G021 0x13159 𓅙 EGYPTIAN HIEROGLYPH G022 0x1315A 𓅚 EGYPTIAN HIEROGLYPH G023 0x1315B 𓅛 EGYPTIAN HIEROGLYPH G024 0x1315C 𓅜 EGYPTIAN HIEROGLYPH G025 0x1315D 𓅝 EGYPTIAN HIEROGLYPH G026 0x1315E 𓅞 EGYPTIAN HIEROGLYPH G026A 0x1315F 𓅟 EGYPTIAN HIEROGLYPH G027 0x13160 𓅠 EGYPTIAN HIEROGLYPH G028 0x13161 𓅡 EGYPTIAN HIEROGLYPH G029 0x13162 𓅢 EGYPTIAN HIEROGLYPH G030 0x13163 𓅣 EGYPTIAN HIEROGLYPH G031 0x13164 𓅤 EGYPTIAN HIEROGLYPH G032 0x13165 𓅥 EGYPTIAN HIEROGLYPH G033 0x13166 𓅦 EGYPTIAN HIEROGLYPH G034 0x13167 𓅧 EGYPTIAN HIEROGLYPH G035 0x13168 𓅨 EGYPTIAN HIEROGLYPH G036 0x13169 𓅩 EGYPTIAN HIEROGLYPH G036A 0x1316A 𓅪 EGYPTIAN HIEROGLYPH G037 0x1316B 𓅫 EGYPTIAN HIEROGLYPH G037A 0x1316C 𓅬 EGYPTIAN HIEROGLYPH G038 0x1316D 𓅭 EGYPTIAN HIEROGLYPH G039 0x1316E 𓅮 EGYPTIAN HIEROGLYPH G040 0x1316F 𓅯 EGYPTIAN HIEROGLYPH G041 0x13170 𓅰 EGYPTIAN HIEROGLYPH G042 0x13171 𓅱 EGYPTIAN HIEROGLYPH G043 0x13172 𓅲 EGYPTIAN HIEROGLYPH G043A 0x13173 𓅳 EGYPTIAN HIEROGLYPH G044 0x13174 𓅴 EGYPTIAN HIEROGLYPH G045 0x13175 𓅵 EGYPTIAN HIEROGLYPH G045A 0x13176 𓅶 EGYPTIAN HIEROGLYPH G046 0x13177 𓅷 EGYPTIAN HIEROGLYPH G047 0x13178 𓅸 EGYPTIAN HIEROGLYPH G048 0x13179 𓅹 EGYPTIAN HIEROGLYPH G049 0x1317A 𓅺 EGYPTIAN HIEROGLYPH G050 0x1317B 𓅻 EGYPTIAN HIEROGLYPH G051 0x1317C 𓅼 EGYPTIAN HIEROGLYPH G052 0x1317D 𓅽 EGYPTIAN HIEROGLYPH G053 0x1317E 𓅾 EGYPTIAN HIEROGLYPH G054 0x1317F 𓅿 EGYPTIAN HIEROGLYPH H001 0x13180 𓆀 EGYPTIAN HIEROGLYPH H002 0x13181 𓆁 EGYPTIAN HIEROGLYPH H003 0x13182 𓆂 EGYPTIAN HIEROGLYPH H004 0x13183 𓆃 EGYPTIAN HIEROGLYPH H005 0x13184 𓆄 EGYPTIAN HIEROGLYPH H006 0x13185 𓆅 EGYPTIAN HIEROGLYPH H006A 0x13186 𓆆 EGYPTIAN HIEROGLYPH H007 0x13187 𓆇 EGYPTIAN HIEROGLYPH H008 0x13188 𓆈 EGYPTIAN HIEROGLYPH I001 0x13189 𓆉 EGYPTIAN HIEROGLYPH I002 0x1318A 𓆊 EGYPTIAN HIEROGLYPH I003 0x1318B 𓆋 EGYPTIAN HIEROGLYPH I004 0x1318C 𓆌 EGYPTIAN HIEROGLYPH I005 0x1318D 𓆍 EGYPTIAN HIEROGLYPH I005A 0x1318E 𓆎 EGYPTIAN HIEROGLYPH I006 0x1318F 𓆏 EGYPTIAN HIEROGLYPH I007 0x13190 𓆐 EGYPTIAN HIEROGLYPH I008 0x13191 𓆑 EGYPTIAN HIEROGLYPH I009 0x13192 𓆒 EGYPTIAN HIEROGLYPH I009A 0x13193 𓆓 EGYPTIAN HIEROGLYPH I010 0x13194 𓆔 EGYPTIAN HIEROGLYPH I010A 0x13195 𓆕 EGYPTIAN HIEROGLYPH I011 0x13196 𓆖 EGYPTIAN HIEROGLYPH I011A 0x13197 𓆗 EGYPTIAN HIEROGLYPH I012 0x13198 𓆘 EGYPTIAN HIEROGLYPH I013 0x13199 𓆙 EGYPTIAN HIEROGLYPH I014 0x1319A 𓆚 EGYPTIAN HIEROGLYPH I015 0x1319B 𓆛 EGYPTIAN HIEROGLYPH K001 0x1319C 𓆜 EGYPTIAN HIEROGLYPH K002 0x1319D 𓆝 EGYPTIAN HIEROGLYPH K003 0x1319E 𓆞 EGYPTIAN HIEROGLYPH K004 0x1319F 𓆟 EGYPTIAN HIEROGLYPH K005 0x131A0 𓆠 EGYPTIAN HIEROGLYPH K006 0x131A1 𓆡 EGYPTIAN HIEROGLYPH K007 0x131A2 𓆢 EGYPTIAN HIEROGLYPH K008 0x131A3 𓆣 EGYPTIAN HIEROGLYPH L001 0x131A4 𓆤 EGYPTIAN HIEROGLYPH L002 0x131A5 𓆥 EGYPTIAN HIEROGLYPH L002A 0x131A6 𓆦 EGYPTIAN HIEROGLYPH L003 0x131A7 𓆧 EGYPTIAN HIEROGLYPH L004 0x131A8 𓆨 EGYPTIAN HIEROGLYPH L005 0x131A9 𓆩 EGYPTIAN HIEROGLYPH L006 0x131AA 𓆪 EGYPTIAN HIEROGLYPH L006A 0x131AB 𓆫 EGYPTIAN HIEROGLYPH L007 0x131AC 𓆬 EGYPTIAN HIEROGLYPH L008 0x131AD 𓆭 EGYPTIAN HIEROGLYPH M001 0x131AE 𓆮 EGYPTIAN HIEROGLYPH M001A 0x131AF 𓆯 EGYPTIAN HIEROGLYPH M001B 0x131B0 𓆰 EGYPTIAN HIEROGLYPH M002 0x131B1 𓆱 EGYPTIAN HIEROGLYPH M003 0x131B2 𓆲 EGYPTIAN HIEROGLYPH M003A 0x131B3 𓆳 EGYPTIAN HIEROGLYPH M004 0x131B4 𓆴 EGYPTIAN HIEROGLYPH M005 0x131B5 𓆵 EGYPTIAN HIEROGLYPH M006 0x131B6 𓆶 EGYPTIAN HIEROGLYPH M007 0x131B7 𓆷 EGYPTIAN HIEROGLYPH M008 0x131B8 𓆸 EGYPTIAN HIEROGLYPH M009 0x131B9 𓆹 EGYPTIAN HIEROGLYPH M010 0x131BA 𓆺 EGYPTIAN HIEROGLYPH M010A 0x131BB 𓆻 EGYPTIAN HIEROGLYPH M011 0x131BC 𓆼 EGYPTIAN HIEROGLYPH M012 0x131BD 𓆽 EGYPTIAN HIEROGLYPH M012A 0x131BE 𓆾 EGYPTIAN HIEROGLYPH M012B 0x131BF 𓆿 EGYPTIAN HIEROGLYPH M012C 0x131C0 𓇀 EGYPTIAN HIEROGLYPH M012D 0x131C1 𓇁 EGYPTIAN HIEROGLYPH M012E 0x131C2 𓇂 EGYPTIAN HIEROGLYPH M012F 0x131C3 𓇃 EGYPTIAN HIEROGLYPH M012G 0x131C4 𓇄 EGYPTIAN HIEROGLYPH M012H 0x131C5 𓇅 EGYPTIAN HIEROGLYPH M013 0x131C6 𓇆 EGYPTIAN HIEROGLYPH M014 0x131C7 𓇇 EGYPTIAN HIEROGLYPH M015 0x131C8 𓇈 EGYPTIAN HIEROGLYPH M015A 0x131C9 𓇉 EGYPTIAN HIEROGLYPH M016 0x131CA 𓇊 EGYPTIAN HIEROGLYPH M016A 0x131CB 𓇋 EGYPTIAN HIEROGLYPH M017 0x131CC 𓇌 EGYPTIAN HIEROGLYPH M017A 0x131CD 𓇍 EGYPTIAN HIEROGLYPH M018 0x131CE 𓇎 EGYPTIAN HIEROGLYPH M019 0x131CF 𓇏 EGYPTIAN HIEROGLYPH M020 0x131D0 𓇐 EGYPTIAN HIEROGLYPH M021 0x131D1 𓇑 EGYPTIAN HIEROGLYPH M022 0x131D2 𓇒 EGYPTIAN HIEROGLYPH M022A 0x131D3 𓇓 EGYPTIAN HIEROGLYPH M023 0x131D4 𓇔 EGYPTIAN HIEROGLYPH M024 0x131D5 𓇕 EGYPTIAN HIEROGLYPH M024A 0x131D6 𓇖 EGYPTIAN HIEROGLYPH M025 0x131D7 𓇗 EGYPTIAN HIEROGLYPH M026 0x131D8 𓇘 EGYPTIAN HIEROGLYPH M027 0x131D9 𓇙 EGYPTIAN HIEROGLYPH M028 0x131DA 𓇚 EGYPTIAN HIEROGLYPH M028A 0x131DB 𓇛 EGYPTIAN HIEROGLYPH M029 0x131DC 𓇜 EGYPTIAN HIEROGLYPH M030 0x131DD 𓇝 EGYPTIAN HIEROGLYPH M031 0x131DE 𓇞 EGYPTIAN HIEROGLYPH M031A 0x131DF 𓇟 EGYPTIAN HIEROGLYPH M032 0x131E0 𓇠 EGYPTIAN HIEROGLYPH M033 0x131E1 𓇡 EGYPTIAN HIEROGLYPH M033A 0x131E2 𓇢 EGYPTIAN HIEROGLYPH M033B 0x131E3 𓇣 EGYPTIAN HIEROGLYPH M034 0x131E4 𓇤 EGYPTIAN HIEROGLYPH M035 0x131E5 𓇥 EGYPTIAN HIEROGLYPH M036 0x131E6 𓇦 EGYPTIAN HIEROGLYPH M037 0x131E7 𓇧 EGYPTIAN HIEROGLYPH M038 0x131E8 𓇨 EGYPTIAN HIEROGLYPH M039 0x131E9 𓇩 EGYPTIAN HIEROGLYPH M040 0x131EA 𓇪 EGYPTIAN HIEROGLYPH M040A 0x131EB 𓇫 EGYPTIAN HIEROGLYPH M041 0x131EC 𓇬 EGYPTIAN HIEROGLYPH M042 0x131ED 𓇭 EGYPTIAN HIEROGLYPH M043 0x131EE 𓇮 EGYPTIAN HIEROGLYPH M044 0x131EF 𓇯 EGYPTIAN HIEROGLYPH N001 0x131F0 𓇰 EGYPTIAN HIEROGLYPH N002 0x131F1 𓇱 EGYPTIAN HIEROGLYPH N003 0x131F2 𓇲 EGYPTIAN HIEROGLYPH N004 0x131F3 𓇳 EGYPTIAN HIEROGLYPH N005 0x131F4 𓇴 EGYPTIAN HIEROGLYPH N006 0x131F5 𓇵 EGYPTIAN HIEROGLYPH N007 0x131F6 𓇶 EGYPTIAN HIEROGLYPH N008 0x131F7 𓇷 EGYPTIAN HIEROGLYPH N009 0x131F8 𓇸 EGYPTIAN HIEROGLYPH N010 0x131F9 𓇹 EGYPTIAN HIEROGLYPH N011 0x131FA 𓇺 EGYPTIAN HIEROGLYPH N012 0x131FB 𓇻 EGYPTIAN HIEROGLYPH N013 0x131FC 𓇼 EGYPTIAN HIEROGLYPH N014 0x131FD 𓇽 EGYPTIAN HIEROGLYPH N015 0x131FE 𓇾 EGYPTIAN HIEROGLYPH N016 0x131FF 𓇿 EGYPTIAN HIEROGLYPH N017 0x13200 𓈀 EGYPTIAN HIEROGLYPH N018 0x13201 𓈁 EGYPTIAN HIEROGLYPH N018A 0x13202 𓈂 EGYPTIAN HIEROGLYPH N018B 0x13203 𓈃 EGYPTIAN HIEROGLYPH N019 0x13204 𓈄 EGYPTIAN HIEROGLYPH N020 0x13205 𓈅 EGYPTIAN HIEROGLYPH N021 0x13206 𓈆 EGYPTIAN HIEROGLYPH N022 0x13207 𓈇 EGYPTIAN HIEROGLYPH N023 0x13208 𓈈 EGYPTIAN HIEROGLYPH N024 0x13209 𓈉 EGYPTIAN HIEROGLYPH N025 0x1320A 𓈊 EGYPTIAN HIEROGLYPH N025A 0x1320B 𓈋 EGYPTIAN HIEROGLYPH N026 0x1320C 𓈌 EGYPTIAN HIEROGLYPH N027 0x1320D 𓈍 EGYPTIAN HIEROGLYPH N028 0x1320E 𓈎 EGYPTIAN HIEROGLYPH N029 0x1320F 𓈏 EGYPTIAN HIEROGLYPH N030 0x13210 𓈐 EGYPTIAN HIEROGLYPH N031 0x13211 𓈑 EGYPTIAN HIEROGLYPH N032 0x13212 𓈒 EGYPTIAN HIEROGLYPH N033 0x13213 𓈓 EGYPTIAN HIEROGLYPH N033A 0x13214 𓈔 EGYPTIAN HIEROGLYPH N034 0x13215 𓈕 EGYPTIAN HIEROGLYPH N034A 0x13216 𓈖 EGYPTIAN HIEROGLYPH N035 0x13217 𓈗 EGYPTIAN HIEROGLYPH N035A 0x13218 𓈘 EGYPTIAN HIEROGLYPH N036 0x13219 𓈙 EGYPTIAN HIEROGLYPH N037 0x1321A 𓈚 EGYPTIAN HIEROGLYPH N037A 0x1321B 𓈛 EGYPTIAN HIEROGLYPH N038 0x1321C 𓈜 EGYPTIAN HIEROGLYPH N039 0x1321D 𓈝 EGYPTIAN HIEROGLYPH N040 0x1321E 𓈞 EGYPTIAN HIEROGLYPH N041 0x1321F 𓈟 EGYPTIAN HIEROGLYPH N042 0x13220 𓈠 EGYPTIAN HIEROGLYPH NL001 0x13221 𓈡 EGYPTIAN HIEROGLYPH NL002 0x13222 𓈢 EGYPTIAN HIEROGLYPH NL003 0x13223 𓈣 EGYPTIAN HIEROGLYPH NL004 0x13224 𓈤 EGYPTIAN HIEROGLYPH NL005 0x13225 𓈥 EGYPTIAN HIEROGLYPH NL005A 0x13226 𓈦 EGYPTIAN HIEROGLYPH NL006 0x13227 𓈧 EGYPTIAN HIEROGLYPH NL007 0x13228 𓈨 EGYPTIAN HIEROGLYPH NL008 0x13229 𓈩 EGYPTIAN HIEROGLYPH NL009 0x1322A 𓈪 EGYPTIAN HIEROGLYPH NL010 0x1322B 𓈫 EGYPTIAN HIEROGLYPH NL011 0x1322C 𓈬 EGYPTIAN HIEROGLYPH NL012 0x1322D 𓈭 EGYPTIAN HIEROGLYPH NL013 0x1322E 𓈮 EGYPTIAN HIEROGLYPH NL014 0x1322F 𓈯 EGYPTIAN HIEROGLYPH NL015 0x13230 𓈰 EGYPTIAN HIEROGLYPH NL016 0x13231 𓈱 EGYPTIAN HIEROGLYPH NL017 0x13232 𓈲 EGYPTIAN HIEROGLYPH NL017A 0x13233 𓈳 EGYPTIAN HIEROGLYPH NL018 0x13234 𓈴 EGYPTIAN HIEROGLYPH NL019 0x13235 𓈵 EGYPTIAN HIEROGLYPH NL020 0x13236 𓈶 EGYPTIAN HIEROGLYPH NU001 0x13237 𓈷 EGYPTIAN HIEROGLYPH NU002 0x13238 𓈸 EGYPTIAN HIEROGLYPH NU003 0x13239 𓈹 EGYPTIAN HIEROGLYPH NU004 0x1323A 𓈺 EGYPTIAN HIEROGLYPH NU005 0x1323B 𓈻 EGYPTIAN HIEROGLYPH NU006 0x1323C 𓈼 EGYPTIAN HIEROGLYPH NU007 0x1323D 𓈽 EGYPTIAN HIEROGLYPH NU008 0x1323E 𓈾 EGYPTIAN HIEROGLYPH NU009 0x1323F 𓈿 EGYPTIAN HIEROGLYPH NU010 0x13240 𓉀 EGYPTIAN HIEROGLYPH NU010A 0x13241 𓉁 EGYPTIAN HIEROGLYPH NU011 0x13242 𓉂 EGYPTIAN HIEROGLYPH NU011A 0x13243 𓉃 EGYPTIAN HIEROGLYPH NU012 0x13244 𓉄 EGYPTIAN HIEROGLYPH NU013 0x13245 𓉅 EGYPTIAN HIEROGLYPH NU014 0x13246 𓉆 EGYPTIAN HIEROGLYPH NU015 0x13247 𓉇 EGYPTIAN HIEROGLYPH NU016 0x13248 𓉈 EGYPTIAN HIEROGLYPH NU017 0x13249 𓉉 EGYPTIAN HIEROGLYPH NU018 0x1324A 𓉊 EGYPTIAN HIEROGLYPH NU018A 0x1324B 𓉋 EGYPTIAN HIEROGLYPH NU019 0x1324C 𓉌 EGYPTIAN HIEROGLYPH NU020 0x1324D 𓉍 EGYPTIAN HIEROGLYPH NU021 0x1324E 𓉎 EGYPTIAN HIEROGLYPH NU022 0x1324F 𓉏 EGYPTIAN HIEROGLYPH NU022A 0x13250 𓉐 EGYPTIAN HIEROGLYPH O001 0x13251 𓉑 EGYPTIAN HIEROGLYPH O001A 0x13252 𓉒 EGYPTIAN HIEROGLYPH O002 0x13253 𓉓 EGYPTIAN HIEROGLYPH O003 0x13254 𓉔 EGYPTIAN HIEROGLYPH O004 0x13255 𓉕 EGYPTIAN HIEROGLYPH O005 0x13256 𓉖 EGYPTIAN HIEROGLYPH O005A 0x13257 𓉗 EGYPTIAN HIEROGLYPH O006 0x13258 𓉘 EGYPTIAN HIEROGLYPH O006A 0x13259 𓉙 EGYPTIAN HIEROGLYPH O006B 0x1325A 𓉚 EGYPTIAN HIEROGLYPH O006C 0x1325B 𓉛 EGYPTIAN HIEROGLYPH O006D 0x1325C 𓉜 EGYPTIAN HIEROGLYPH O006E 0x1325D 𓉝 EGYPTIAN HIEROGLYPH O006F 0x1325E 𓉞 EGYPTIAN HIEROGLYPH O007 0x1325F 𓉟 EGYPTIAN HIEROGLYPH O008 0x13260 𓉠 EGYPTIAN HIEROGLYPH O009 0x13261 𓉡 EGYPTIAN HIEROGLYPH O010 0x13262 𓉢 EGYPTIAN HIEROGLYPH O010A 0x13263 𓉣 EGYPTIAN HIEROGLYPH O010B 0x13264 𓉤 EGYPTIAN HIEROGLYPH O010C 0x13265 𓉥 EGYPTIAN HIEROGLYPH O011 0x13266 𓉦 EGYPTIAN HIEROGLYPH O012 0x13267 𓉧 EGYPTIAN HIEROGLYPH O013 0x13268 𓉨 EGYPTIAN HIEROGLYPH O014 0x13269 𓉩 EGYPTIAN HIEROGLYPH O015 0x1326A 𓉪 EGYPTIAN HIEROGLYPH O016 0x1326B 𓉫 EGYPTIAN HIEROGLYPH O017 0x1326C 𓉬 EGYPTIAN HIEROGLYPH O018 0x1326D 𓉭 EGYPTIAN HIEROGLYPH O019 0x1326E 𓉮 EGYPTIAN HIEROGLYPH O019A 0x1326F 𓉯 EGYPTIAN HIEROGLYPH O020 0x13270 𓉰 EGYPTIAN HIEROGLYPH O020A 0x13271 𓉱 EGYPTIAN HIEROGLYPH O021 0x13272 𓉲 EGYPTIAN HIEROGLYPH O022 0x13273 𓉳 EGYPTIAN HIEROGLYPH O023 0x13274 𓉴 EGYPTIAN HIEROGLYPH O024 0x13275 𓉵 EGYPTIAN HIEROGLYPH O024A 0x13276 𓉶 EGYPTIAN HIEROGLYPH O025 0x13277 𓉷 EGYPTIAN HIEROGLYPH O025A 0x13278 𓉸 EGYPTIAN HIEROGLYPH O026 0x13279 𓉹 EGYPTIAN HIEROGLYPH O027 0x1327A 𓉺 EGYPTIAN HIEROGLYPH O028 0x1327B 𓉻 EGYPTIAN HIEROGLYPH O029 0x1327C 𓉼 EGYPTIAN HIEROGLYPH O029A 0x1327D 𓉽 EGYPTIAN HIEROGLYPH O030 0x1327E 𓉾 EGYPTIAN HIEROGLYPH O030A 0x1327F 𓉿 EGYPTIAN HIEROGLYPH O031 0x13280 𓊀 EGYPTIAN HIEROGLYPH O032 0x13281 𓊁 EGYPTIAN HIEROGLYPH O033 0x13282 𓊂 EGYPTIAN HIEROGLYPH O033A 0x13283 𓊃 EGYPTIAN HIEROGLYPH O034 0x13284 𓊄 EGYPTIAN HIEROGLYPH O035 0x13285 𓊅 EGYPTIAN HIEROGLYPH O036 0x13286 𓊆 EGYPTIAN HIEROGLYPH O036A 0x13287 𓊇 EGYPTIAN HIEROGLYPH O036B 0x13288 𓊈 EGYPTIAN HIEROGLYPH O036C 0x13289 𓊉 EGYPTIAN HIEROGLYPH O036D 0x1328A 𓊊 EGYPTIAN HIEROGLYPH O037 0x1328B 𓊋 EGYPTIAN HIEROGLYPH O038 0x1328C 𓊌 EGYPTIAN HIEROGLYPH O039 0x1328D 𓊍 EGYPTIAN HIEROGLYPH O040 0x1328E 𓊎 EGYPTIAN HIEROGLYPH O041 0x1328F 𓊏 EGYPTIAN HIEROGLYPH O042 0x13290 𓊐 EGYPTIAN HIEROGLYPH O043 0x13291 𓊑 EGYPTIAN HIEROGLYPH O044 0x13292 𓊒 EGYPTIAN HIEROGLYPH O045 0x13293 𓊓 EGYPTIAN HIEROGLYPH O046 0x13294 𓊔 EGYPTIAN HIEROGLYPH O047 0x13295 𓊕 EGYPTIAN HIEROGLYPH O048 0x13296 𓊖 EGYPTIAN HIEROGLYPH O049 0x13297 𓊗 EGYPTIAN HIEROGLYPH O050 0x13298 𓊘 EGYPTIAN HIEROGLYPH O050A 0x13299 𓊙 EGYPTIAN HIEROGLYPH O050B 0x1329A 𓊚 EGYPTIAN HIEROGLYPH O051 0x1329B 𓊛 EGYPTIAN HIEROGLYPH P001 0x1329C 𓊜 EGYPTIAN HIEROGLYPH P001A 0x1329D 𓊝 EGYPTIAN HIEROGLYPH P002 0x1329E 𓊞 EGYPTIAN HIEROGLYPH P003 0x1329F 𓊟 EGYPTIAN HIEROGLYPH P003A 0x132A0 𓊠 EGYPTIAN HIEROGLYPH P004 0x132A1 𓊡 EGYPTIAN HIEROGLYPH P005 0x132A2 𓊢 EGYPTIAN HIEROGLYPH P006 0x132A3 𓊣 EGYPTIAN HIEROGLYPH P007 0x132A4 𓊤 EGYPTIAN HIEROGLYPH P008 0x132A5 𓊥 EGYPTIAN HIEROGLYPH P009 0x132A6 𓊦 EGYPTIAN HIEROGLYPH P010 0x132A7 𓊧 EGYPTIAN HIEROGLYPH P011 0x132A8 𓊨 EGYPTIAN HIEROGLYPH Q001 0x132A9 𓊩 EGYPTIAN HIEROGLYPH Q002 0x132AA 𓊪 EGYPTIAN HIEROGLYPH Q003 0x132AB 𓊫 EGYPTIAN HIEROGLYPH Q004 0x132AC 𓊬 EGYPTIAN HIEROGLYPH Q005 0x132AD 𓊭 EGYPTIAN HIEROGLYPH Q006 0x132AE 𓊮 EGYPTIAN HIEROGLYPH Q007 0x132AF 𓊯 EGYPTIAN HIEROGLYPH R001 0x132B0 𓊰 EGYPTIAN HIEROGLYPH R002 0x132B1 𓊱 EGYPTIAN HIEROGLYPH R002A 0x132B2 𓊲 EGYPTIAN HIEROGLYPH R003 0x132B3 𓊳 EGYPTIAN HIEROGLYPH R003A 0x132B4 𓊴 EGYPTIAN HIEROGLYPH R003B 0x132B5 𓊵 EGYPTIAN HIEROGLYPH R004 0x132B6 𓊶 EGYPTIAN HIEROGLYPH R005 0x132B7 𓊷 EGYPTIAN HIEROGLYPH R006 0x132B8 𓊸 EGYPTIAN HIEROGLYPH R007 0x132B9 𓊹 EGYPTIAN HIEROGLYPH R008 0x132BA 𓊺 EGYPTIAN HIEROGLYPH R009 0x132BB 𓊻 EGYPTIAN HIEROGLYPH R010 0x132BC 𓊼 EGYPTIAN HIEROGLYPH R010A 0x132BD 𓊽 EGYPTIAN HIEROGLYPH R011 0x132BE 𓊾 EGYPTIAN HIEROGLYPH R012 0x132BF 𓊿 EGYPTIAN HIEROGLYPH R013 0x132C0 𓋀 EGYPTIAN HIEROGLYPH R014 0x132C1 𓋁 EGYPTIAN HIEROGLYPH R015 0x132C2 𓋂 EGYPTIAN HIEROGLYPH R016 0x132C3 𓋃 EGYPTIAN HIEROGLYPH R016A 0x132C4 𓋄 EGYPTIAN HIEROGLYPH R017 0x132C5 𓋅 EGYPTIAN HIEROGLYPH R018 0x132C6 𓋆 EGYPTIAN HIEROGLYPH R019 0x132C7 𓋇 EGYPTIAN HIEROGLYPH R020 0x132C8 𓋈 EGYPTIAN HIEROGLYPH R021 0x132C9 𓋉 EGYPTIAN HIEROGLYPH R022 0x132CA 𓋊 EGYPTIAN HIEROGLYPH R023 0x132CB 𓋋 EGYPTIAN HIEROGLYPH R024 0x132CC 𓋌 EGYPTIAN HIEROGLYPH R025 0x132CD 𓋍 EGYPTIAN HIEROGLYPH R026 0x132CE 𓋎 EGYPTIAN HIEROGLYPH R027 0x132CF 𓋏 EGYPTIAN HIEROGLYPH R028 0x132D0 𓋐 EGYPTIAN HIEROGLYPH R029 0x132D1 𓋑 EGYPTIAN HIEROGLYPH S001 0x132D2 𓋒 EGYPTIAN HIEROGLYPH S002 0x132D3 𓋓 EGYPTIAN HIEROGLYPH S002A 0x132D4 𓋔 EGYPTIAN HIEROGLYPH S003 0x132D5 𓋕 EGYPTIAN HIEROGLYPH S004 0x132D6 𓋖 EGYPTIAN HIEROGLYPH S005 0x132D7 𓋗 EGYPTIAN HIEROGLYPH S006 0x132D8 𓋘 EGYPTIAN HIEROGLYPH S006A 0x132D9 𓋙 EGYPTIAN HIEROGLYPH S007 0x132DA 𓋚 EGYPTIAN HIEROGLYPH S008 0x132DB 𓋛 EGYPTIAN HIEROGLYPH S009 0x132DC 𓋜 EGYPTIAN HIEROGLYPH S010 0x132DD 𓋝 EGYPTIAN HIEROGLYPH S011 0x132DE 𓋞 EGYPTIAN HIEROGLYPH S012 0x132DF 𓋟 EGYPTIAN HIEROGLYPH S013 0x132E0 𓋠 EGYPTIAN HIEROGLYPH S014 0x132E1 𓋡 EGYPTIAN HIEROGLYPH S014A 0x132E2 𓋢 EGYPTIAN HIEROGLYPH S014B 0x132E3 𓋣 EGYPTIAN HIEROGLYPH S015 0x132E4 𓋤 EGYPTIAN HIEROGLYPH S016 0x132E5 𓋥 EGYPTIAN HIEROGLYPH S017 0x132E6 𓋦 EGYPTIAN HIEROGLYPH S017A 0x132E7 𓋧 EGYPTIAN HIEROGLYPH S018 0x132E8 𓋨 EGYPTIAN HIEROGLYPH S019 0x132E9 𓋩 EGYPTIAN HIEROGLYPH S020 0x132EA 𓋪 EGYPTIAN HIEROGLYPH S021 0x132EB 𓋫 EGYPTIAN HIEROGLYPH S022 0x132EC 𓋬 EGYPTIAN HIEROGLYPH S023 0x132ED 𓋭 EGYPTIAN HIEROGLYPH S024 0x132EE 𓋮 EGYPTIAN HIEROGLYPH S025 0x132EF 𓋯 EGYPTIAN HIEROGLYPH S026 0x132F0 𓋰 EGYPTIAN HIEROGLYPH S026A 0x132F1 𓋱 EGYPTIAN HIEROGLYPH S026B 0x132F2 𓋲 EGYPTIAN HIEROGLYPH S027 0x132F3 𓋳 EGYPTIAN HIEROGLYPH S028 0x132F4 𓋴 EGYPTIAN HIEROGLYPH S029 0x132F5 𓋵 EGYPTIAN HIEROGLYPH S030 0x132F6 𓋶 EGYPTIAN HIEROGLYPH S031 0x132F7 𓋷 EGYPTIAN HIEROGLYPH S032 0x132F8 𓋸 EGYPTIAN HIEROGLYPH S033 0x132F9 𓋹 EGYPTIAN HIEROGLYPH S034 0x132FA 𓋺 EGYPTIAN HIEROGLYPH S035 0x132FB 𓋻 EGYPTIAN HIEROGLYPH S035A 0x132FC 𓋼 EGYPTIAN HIEROGLYPH S036 0x132FD 𓋽 EGYPTIAN HIEROGLYPH S037 0x132FE 𓋾 EGYPTIAN HIEROGLYPH S038 0x132FF 𓋿 EGYPTIAN HIEROGLYPH S039 0x13300 𓌀 EGYPTIAN HIEROGLYPH S040 0x13301 𓌁 EGYPTIAN HIEROGLYPH S041 0x13302 𓌂 EGYPTIAN HIEROGLYPH S042 0x13303 𓌃 EGYPTIAN HIEROGLYPH S043 0x13304 𓌄 EGYPTIAN HIEROGLYPH S044 0x13305 𓌅 EGYPTIAN HIEROGLYPH S045 0x13306 𓌆 EGYPTIAN HIEROGLYPH S046 0x13307 𓌇 EGYPTIAN HIEROGLYPH T001 0x13308 𓌈 EGYPTIAN HIEROGLYPH T002 0x13309 𓌉 EGYPTIAN HIEROGLYPH T003 0x1330A 𓌊 EGYPTIAN HIEROGLYPH T003A 0x1330B 𓌋 EGYPTIAN HIEROGLYPH T004 0x1330C 𓌌 EGYPTIAN HIEROGLYPH T005 0x1330D 𓌍 EGYPTIAN HIEROGLYPH T006 0x1330E 𓌎 EGYPTIAN HIEROGLYPH T007 0x1330F 𓌏 EGYPTIAN HIEROGLYPH T007A 0x13310 𓌐 EGYPTIAN HIEROGLYPH T008 0x13311 𓌑 EGYPTIAN HIEROGLYPH T008A 0x13312 𓌒 EGYPTIAN HIEROGLYPH T009 0x13313 𓌓 EGYPTIAN HIEROGLYPH T009A 0x13314 𓌔 EGYPTIAN HIEROGLYPH T010 0x13315 𓌕 EGYPTIAN HIEROGLYPH T011 0x13316 𓌖 EGYPTIAN HIEROGLYPH T011A 0x13317 𓌗 EGYPTIAN HIEROGLYPH T012 0x13318 𓌘 EGYPTIAN HIEROGLYPH T013 0x13319 𓌙 EGYPTIAN HIEROGLYPH T014 0x1331A 𓌚 EGYPTIAN HIEROGLYPH T015 0x1331B 𓌛 EGYPTIAN HIEROGLYPH T016 0x1331C 𓌜 EGYPTIAN HIEROGLYPH T016A 0x1331D 𓌝 EGYPTIAN HIEROGLYPH T017 0x1331E 𓌞 EGYPTIAN HIEROGLYPH T018 0x1331F 𓌟 EGYPTIAN HIEROGLYPH T019 0x13320 𓌠 EGYPTIAN HIEROGLYPH T020 0x13321 𓌡 EGYPTIAN HIEROGLYPH T021 0x13322 𓌢 EGYPTIAN HIEROGLYPH T022 0x13323 𓌣 EGYPTIAN HIEROGLYPH T023 0x13324 𓌤 EGYPTIAN HIEROGLYPH T024 0x13325 𓌥 EGYPTIAN HIEROGLYPH T025 0x13326 𓌦 EGYPTIAN HIEROGLYPH T026 0x13327 𓌧 EGYPTIAN HIEROGLYPH T027 0x13328 𓌨 EGYPTIAN HIEROGLYPH T028 0x13329 𓌩 EGYPTIAN HIEROGLYPH T029 0x1332A 𓌪 EGYPTIAN HIEROGLYPH T030 0x1332B 𓌫 EGYPTIAN HIEROGLYPH T031 0x1332C 𓌬 EGYPTIAN HIEROGLYPH T032 0x1332D 𓌭 EGYPTIAN HIEROGLYPH T032A 0x1332E 𓌮 EGYPTIAN HIEROGLYPH T033 0x1332F 𓌯 EGYPTIAN HIEROGLYPH T033A 0x13330 𓌰 EGYPTIAN HIEROGLYPH T034 0x13331 𓌱 EGYPTIAN HIEROGLYPH T035 0x13332 𓌲 EGYPTIAN HIEROGLYPH T036 0x13333 𓌳 EGYPTIAN HIEROGLYPH U001 0x13334 𓌴 EGYPTIAN HIEROGLYPH U002 0x13335 𓌵 EGYPTIAN HIEROGLYPH U003 0x13336 𓌶 EGYPTIAN HIEROGLYPH U004 0x13337 𓌷 EGYPTIAN HIEROGLYPH U005 0x13338 𓌸 EGYPTIAN HIEROGLYPH U006 0x13339 𓌹 EGYPTIAN HIEROGLYPH U006A 0x1333A 𓌺 EGYPTIAN HIEROGLYPH U006B 0x1333B 𓌻 EGYPTIAN HIEROGLYPH U007 0x1333C 𓌼 EGYPTIAN HIEROGLYPH U008 0x1333D 𓌽 EGYPTIAN HIEROGLYPH U009 0x1333E 𓌾 EGYPTIAN HIEROGLYPH U010 0x1333F 𓌿 EGYPTIAN HIEROGLYPH U011 0x13340 𓍀 EGYPTIAN HIEROGLYPH U012 0x13341 𓍁 EGYPTIAN HIEROGLYPH U013 0x13342 𓍂 EGYPTIAN HIEROGLYPH U014 0x13343 𓍃 EGYPTIAN HIEROGLYPH U015 0x13344 𓍄 EGYPTIAN HIEROGLYPH U016 0x13345 𓍅 EGYPTIAN HIEROGLYPH U017 0x13346 𓍆 EGYPTIAN HIEROGLYPH U018 0x13347 𓍇 EGYPTIAN HIEROGLYPH U019 0x13348 𓍈 EGYPTIAN HIEROGLYPH U020 0x13349 𓍉 EGYPTIAN HIEROGLYPH U021 0x1334A 𓍊 EGYPTIAN HIEROGLYPH U022 0x1334B 𓍋 EGYPTIAN HIEROGLYPH U023 0x1334C 𓍌 EGYPTIAN HIEROGLYPH U023A 0x1334D 𓍍 EGYPTIAN HIEROGLYPH U024 0x1334E 𓍎 EGYPTIAN HIEROGLYPH U025 0x1334F 𓍏 EGYPTIAN HIEROGLYPH U026 0x13350 𓍐 EGYPTIAN HIEROGLYPH U027 0x13351 𓍑 EGYPTIAN HIEROGLYPH U028 0x13352 𓍒 EGYPTIAN HIEROGLYPH U029 0x13353 𓍓 EGYPTIAN HIEROGLYPH U029A 0x13354 𓍔 EGYPTIAN HIEROGLYPH U030 0x13355 𓍕 EGYPTIAN HIEROGLYPH U031 0x13356 𓍖 EGYPTIAN HIEROGLYPH U032 0x13357 𓍗 EGYPTIAN HIEROGLYPH U032A 0x13358 𓍘 EGYPTIAN HIEROGLYPH U033 0x13359 𓍙 EGYPTIAN HIEROGLYPH U034 0x1335A 𓍚 EGYPTIAN HIEROGLYPH U035 0x1335B 𓍛 EGYPTIAN HIEROGLYPH U036 0x1335C 𓍜 EGYPTIAN HIEROGLYPH U037 0x1335D 𓍝 EGYPTIAN HIEROGLYPH U038 0x1335E 𓍞 EGYPTIAN HIEROGLYPH U039 0x1335F 𓍟 EGYPTIAN HIEROGLYPH U040 0x13360 𓍠 EGYPTIAN HIEROGLYPH U041 0x13361 𓍡 EGYPTIAN HIEROGLYPH U042 0x13362 𓍢 EGYPTIAN HIEROGLYPH V001 0x13363 𓍣 EGYPTIAN HIEROGLYPH V001A 0x13364 𓍤 EGYPTIAN HIEROGLYPH V001B 0x13365 𓍥 EGYPTIAN HIEROGLYPH V001C 0x13366 𓍦 EGYPTIAN HIEROGLYPH V001D 0x13367 𓍧 EGYPTIAN HIEROGLYPH V001E 0x13368 𓍨 EGYPTIAN HIEROGLYPH V001F 0x13369 𓍩 EGYPTIAN HIEROGLYPH V001G 0x1336A 𓍪 EGYPTIAN HIEROGLYPH V001H 0x1336B 𓍫 EGYPTIAN HIEROGLYPH V001I 0x1336C 𓍬 EGYPTIAN HIEROGLYPH V002 0x1336D 𓍭 EGYPTIAN HIEROGLYPH V002A 0x1336E 𓍮 EGYPTIAN HIEROGLYPH V003 0x1336F 𓍯 EGYPTIAN HIEROGLYPH V004 0x13370 𓍰 EGYPTIAN HIEROGLYPH V005 0x13371 𓍱 EGYPTIAN HIEROGLYPH V006 0x13372 𓍲 EGYPTIAN HIEROGLYPH V007 0x13373 𓍳 EGYPTIAN HIEROGLYPH V007A 0x13374 𓍴 EGYPTIAN HIEROGLYPH V007B 0x13375 𓍵 EGYPTIAN HIEROGLYPH V008 0x13376 𓍶 EGYPTIAN HIEROGLYPH V009 0x13377 𓍷 EGYPTIAN HIEROGLYPH V010 0x13378 𓍸 EGYPTIAN HIEROGLYPH V011 0x13379 𓍹 EGYPTIAN HIEROGLYPH V011A 0x1337A 𓍺 EGYPTIAN HIEROGLYPH V011B 0x1337B 𓍻 EGYPTIAN HIEROGLYPH V011C 0x1337C 𓍼 EGYPTIAN HIEROGLYPH V012 0x1337D 𓍽 EGYPTIAN HIEROGLYPH V012A 0x1337E 𓍾 EGYPTIAN HIEROGLYPH V012B 0x1337F 𓍿 EGYPTIAN HIEROGLYPH V013 0x13380 𓎀 EGYPTIAN HIEROGLYPH V014 0x13381 𓎁 EGYPTIAN HIEROGLYPH V015 0x13382 𓎂 EGYPTIAN HIEROGLYPH V016 0x13383 𓎃 EGYPTIAN HIEROGLYPH V017 0x13384 𓎄 EGYPTIAN HIEROGLYPH V018 0x13385 𓎅 EGYPTIAN HIEROGLYPH V019 0x13386 𓎆 EGYPTIAN HIEROGLYPH V020 0x13387 𓎇 EGYPTIAN HIEROGLYPH V020A 0x13388 𓎈 EGYPTIAN HIEROGLYPH V020B 0x13389 𓎉 EGYPTIAN HIEROGLYPH V020C 0x1338A 𓎊 EGYPTIAN HIEROGLYPH V020D 0x1338B 𓎋 EGYPTIAN HIEROGLYPH V020E 0x1338C 𓎌 EGYPTIAN HIEROGLYPH V020F 0x1338D 𓎍 EGYPTIAN HIEROGLYPH V020G 0x1338E 𓎎 EGYPTIAN HIEROGLYPH V020H 0x1338F 𓎏 EGYPTIAN HIEROGLYPH V020I 0x13390 𓎐 EGYPTIAN HIEROGLYPH V020J 0x13391 𓎑 EGYPTIAN HIEROGLYPH V020K 0x13392 𓎒 EGYPTIAN HIEROGLYPH V020L 0x13393 𓎓 EGYPTIAN HIEROGLYPH V021 0x13394 𓎔 EGYPTIAN HIEROGLYPH V022 0x13395 𓎕 EGYPTIAN HIEROGLYPH V023 0x13396 𓎖 EGYPTIAN HIEROGLYPH V023A 0x13397 𓎗 EGYPTIAN HIEROGLYPH V024 0x13398 𓎘 EGYPTIAN HIEROGLYPH V025 0x13399 𓎙 EGYPTIAN HIEROGLYPH V026 0x1339A 𓎚 EGYPTIAN HIEROGLYPH V027 0x1339B 𓎛 EGYPTIAN HIEROGLYPH V028 0x1339C 𓎜 EGYPTIAN HIEROGLYPH V028A 0x1339D 𓎝 EGYPTIAN HIEROGLYPH V029 0x1339E 𓎞 EGYPTIAN HIEROGLYPH V029A 0x1339F 𓎟 EGYPTIAN HIEROGLYPH V030 0x133A0 𓎠 EGYPTIAN HIEROGLYPH V030A 0x133A1 𓎡 EGYPTIAN HIEROGLYPH V031 0x133A2 𓎢 EGYPTIAN HIEROGLYPH V031A 0x133A3 𓎣 EGYPTIAN HIEROGLYPH V032 0x133A4 𓎤 EGYPTIAN HIEROGLYPH V033 0x133A5 𓎥 EGYPTIAN HIEROGLYPH V033A 0x133A6 𓎦 EGYPTIAN HIEROGLYPH V034 0x133A7 𓎧 EGYPTIAN HIEROGLYPH V035 0x133A8 𓎨 EGYPTIAN HIEROGLYPH V036 0x133A9 𓎩 EGYPTIAN HIEROGLYPH V037 0x133AA 𓎪 EGYPTIAN HIEROGLYPH V037A 0x133AB 𓎫 EGYPTIAN HIEROGLYPH V038 0x133AC 𓎬 EGYPTIAN HIEROGLYPH V039 0x133AD 𓎭 EGYPTIAN HIEROGLYPH V040 0x133AE 𓎮 EGYPTIAN HIEROGLYPH V040A 0x133AF 𓎯 EGYPTIAN HIEROGLYPH W001 0x133B0 𓎰 EGYPTIAN HIEROGLYPH W002 0x133B1 𓎱 EGYPTIAN HIEROGLYPH W003 0x133B2 𓎲 EGYPTIAN HIEROGLYPH W003A 0x133B3 𓎳 EGYPTIAN HIEROGLYPH W004 0x133B4 𓎴 EGYPTIAN HIEROGLYPH W005 0x133B5 𓎵 EGYPTIAN HIEROGLYPH W006 0x133B6 𓎶 EGYPTIAN HIEROGLYPH W007 0x133B7 𓎷 EGYPTIAN HIEROGLYPH W008 0x133B8 𓎸 EGYPTIAN HIEROGLYPH W009 0x133B9 𓎹 EGYPTIAN HIEROGLYPH W009A 0x133BA 𓎺 EGYPTIAN HIEROGLYPH W010 0x133BB 𓎻 EGYPTIAN HIEROGLYPH W010A 0x133BC 𓎼 EGYPTIAN HIEROGLYPH W011 0x133BD 𓎽 EGYPTIAN HIEROGLYPH W012 0x133BE 𓎾 EGYPTIAN HIEROGLYPH W013 0x133BF 𓎿 EGYPTIAN HIEROGLYPH W014 0x133C0 𓏀 EGYPTIAN HIEROGLYPH W014A 0x133C1 𓏁 EGYPTIAN HIEROGLYPH W015 0x133C2 𓏂 EGYPTIAN HIEROGLYPH W016 0x133C3 𓏃 EGYPTIAN HIEROGLYPH W017 0x133C4 𓏄 EGYPTIAN HIEROGLYPH W017A 0x133C5 𓏅 EGYPTIAN HIEROGLYPH W018 0x133C6 𓏆 EGYPTIAN HIEROGLYPH W018A 0x133C7 𓏇 EGYPTIAN HIEROGLYPH W019 0x133C8 𓏈 EGYPTIAN HIEROGLYPH W020 0x133C9 𓏉 EGYPTIAN HIEROGLYPH W021 0x133CA 𓏊 EGYPTIAN HIEROGLYPH W022 0x133CB 𓏋 EGYPTIAN HIEROGLYPH W023 0x133CC 𓏌 EGYPTIAN HIEROGLYPH W024 0x133CD 𓏍 EGYPTIAN HIEROGLYPH W024A 0x133CE 𓏎 EGYPTIAN HIEROGLYPH W025 0x133CF 𓏏 EGYPTIAN HIEROGLYPH X001 0x133D0 𓏐 EGYPTIAN HIEROGLYPH X002 0x133D1 𓏑 EGYPTIAN HIEROGLYPH X003 0x133D2 𓏒 EGYPTIAN HIEROGLYPH X004 0x133D3 𓏓 EGYPTIAN HIEROGLYPH X004A 0x133D4 𓏔 EGYPTIAN HIEROGLYPH X004B 0x133D5 𓏕 EGYPTIAN HIEROGLYPH X005 0x133D6 𓏖 EGYPTIAN HIEROGLYPH X006 0x133D7 𓏗 EGYPTIAN HIEROGLYPH X006A 0x133D8 𓏘 EGYPTIAN HIEROGLYPH X007 0x133D9 𓏙 EGYPTIAN HIEROGLYPH X008 0x133DA 𓏚 EGYPTIAN HIEROGLYPH X008A 0x133DB 𓏛 EGYPTIAN HIEROGLYPH Y001 0x133DC 𓏜 EGYPTIAN HIEROGLYPH Y001A 0x133DD 𓏝 EGYPTIAN HIEROGLYPH Y002 0x133DE 𓏞 EGYPTIAN HIEROGLYPH Y003 0x133DF 𓏟 EGYPTIAN HIEROGLYPH Y004 0x133E0 𓏠 EGYPTIAN HIEROGLYPH Y005 0x133E1 𓏡 EGYPTIAN HIEROGLYPH Y006 0x133E2 𓏢 EGYPTIAN HIEROGLYPH Y007 0x133E3 𓏣 EGYPTIAN HIEROGLYPH Y008 0x133E4 𓏤 EGYPTIAN HIEROGLYPH Z001 0x133E5 𓏥 EGYPTIAN HIEROGLYPH Z002 0x133E6 𓏦 EGYPTIAN HIEROGLYPH Z002A 0x133E7 𓏧 EGYPTIAN HIEROGLYPH Z002B 0x133E8 𓏨 EGYPTIAN HIEROGLYPH Z002C 0x133E9 𓏩 EGYPTIAN HIEROGLYPH Z002D 0x133EA 𓏪 EGYPTIAN HIEROGLYPH Z003 0x133EB 𓏫 EGYPTIAN HIEROGLYPH Z003A 0x133EC 𓏬 EGYPTIAN HIEROGLYPH Z003B 0x133ED 𓏭 EGYPTIAN HIEROGLYPH Z004 0x133EE 𓏮 EGYPTIAN HIEROGLYPH Z004A 0x133EF 𓏯 EGYPTIAN HIEROGLYPH Z005 0x133F0 𓏰 EGYPTIAN HIEROGLYPH Z005A 0x133F1 𓏱 EGYPTIAN HIEROGLYPH Z006 0x133F2 𓏲 EGYPTIAN HIEROGLYPH Z007 0x133F3 𓏳 EGYPTIAN HIEROGLYPH Z008 0x133F4 𓏴 EGYPTIAN HIEROGLYPH Z009 0x133F5 𓏵 EGYPTIAN HIEROGLYPH Z010 0x133F6 𓏶 EGYPTIAN HIEROGLYPH Z011 0x133F7 𓏷 EGYPTIAN HIEROGLYPH Z012 0x133F8 𓏸 EGYPTIAN HIEROGLYPH Z013 0x133F9 𓏹 EGYPTIAN HIEROGLYPH Z014 0x133FA 𓏺 EGYPTIAN HIEROGLYPH Z015 0x133FB 𓏻 EGYPTIAN HIEROGLYPH Z015A 0x133FC 𓏼 EGYPTIAN HIEROGLYPH Z015B 0x133FD 𓏽 EGYPTIAN HIEROGLYPH Z015C 0x133FE 𓏾 EGYPTIAN HIEROGLYPH Z015D 0x133FF 𓏿 EGYPTIAN HIEROGLYPH Z015E 0x13400 𓐀 EGYPTIAN HIEROGLYPH Z015F 0x13401 𓐁 EGYPTIAN HIEROGLYPH Z015G 0x13402 𓐂 EGYPTIAN HIEROGLYPH Z015H 0x13403 𓐃 EGYPTIAN HIEROGLYPH Z015I 0x13404 𓐄 EGYPTIAN HIEROGLYPH Z016 0x13405 𓐅 EGYPTIAN HIEROGLYPH Z016A 0x13406 𓐆 EGYPTIAN HIEROGLYPH Z016B 0x13407 𓐇 EGYPTIAN HIEROGLYPH Z016C 0x13408 𓐈 EGYPTIAN HIEROGLYPH Z016D 0x13409 𓐉 EGYPTIAN HIEROGLYPH Z016E 0x1340A 𓐊 EGYPTIAN HIEROGLYPH Z016F 0x1340B 𓐋 EGYPTIAN HIEROGLYPH Z016G 0x1340C 𓐌 EGYPTIAN HIEROGLYPH Z016H 0x1340D 𓐍 EGYPTIAN HIEROGLYPH AA001 0x1340E 𓐎 EGYPTIAN HIEROGLYPH AA002 0x1340F 𓐏 EGYPTIAN HIEROGLYPH AA003 0x13410 𓐐 EGYPTIAN HIEROGLYPH AA004 0x13411 𓐑 EGYPTIAN HIEROGLYPH AA005 0x13412 𓐒 EGYPTIAN HIEROGLYPH AA006 0x13413 𓐓 EGYPTIAN HIEROGLYPH AA007 0x13414 𓐔 EGYPTIAN HIEROGLYPH AA007A 0x13415 𓐕 EGYPTIAN HIEROGLYPH AA007B 0x13416 𓐖 EGYPTIAN HIEROGLYPH AA008 0x13417 𓐗 EGYPTIAN HIEROGLYPH AA009 0x13418 𓐘 EGYPTIAN HIEROGLYPH AA010 0x13419 𓐙 EGYPTIAN HIEROGLYPH AA011 0x1341A 𓐚 EGYPTIAN HIEROGLYPH AA012 0x1341B 𓐛 EGYPTIAN HIEROGLYPH AA013 0x1341C 𓐜 EGYPTIAN HIEROGLYPH AA014 0x1341D 𓐝 EGYPTIAN HIEROGLYPH AA015 0x1341E 𓐞 EGYPTIAN HIEROGLYPH AA016 0x1341F 𓐟 EGYPTIAN HIEROGLYPH AA017 0x13420 𓐠 EGYPTIAN HIEROGLYPH AA018 0x13421 𓐡 EGYPTIAN HIEROGLYPH AA019 0x13422 𓐢 EGYPTIAN HIEROGLYPH AA020 0x13423 𓐣 EGYPTIAN HIEROGLYPH AA021 0x13424 𓐤 EGYPTIAN HIEROGLYPH AA022 0x13425 𓐥 EGYPTIAN HIEROGLYPH AA023 0x13426 𓐦 EGYPTIAN HIEROGLYPH AA024 0x13427 𓐧 EGYPTIAN HIEROGLYPH AA025 0x13428 𓐨 EGYPTIAN HIEROGLYPH AA026 0x13429 𓐩 EGYPTIAN HIEROGLYPH AA027 0x1342A 𓐪 EGYPTIAN HIEROGLYPH AA028 0x1342B 𓐫 EGYPTIAN HIEROGLYPH AA029 0x1342C 𓐬 EGYPTIAN HIEROGLYPH AA030 0x1342D 𓐭 EGYPTIAN HIEROGLYPH AA031 0x1342E 𓐮 EGYPTIAN HIEROGLYPH AA032Lib/gftools/encodings/ethiopic_unique-glyphs.nam000066400000000000000000000366621376445505300224360ustar00rootroot000000000000000x1200 ሀ ETHIOPIC SYLLABLE HA 0x1201 ሁ ETHIOPIC SYLLABLE HU 0x1202 ሂ ETHIOPIC SYLLABLE HI 0x1203 ሃ ETHIOPIC SYLLABLE HAA 0x1204 ሄ ETHIOPIC SYLLABLE HEE 0x1205 ህ ETHIOPIC SYLLABLE HE 0x1206 ሆ ETHIOPIC SYLLABLE HO 0x1207 ሇ ETHIOPIC SYLLABLE HOA 0x1208 ለ ETHIOPIC SYLLABLE LA 0x1209 ሉ ETHIOPIC SYLLABLE LU 0x120A ሊ ETHIOPIC SYLLABLE LI 0x120B ላ ETHIOPIC SYLLABLE LAA 0x120C ሌ ETHIOPIC SYLLABLE LEE 0x120D ል ETHIOPIC SYLLABLE LE 0x120E ሎ ETHIOPIC SYLLABLE LO 0x120F ሏ ETHIOPIC SYLLABLE LWA 0x1210 ሐ ETHIOPIC SYLLABLE HHA 0x1211 ሑ ETHIOPIC SYLLABLE HHU 0x1212 ሒ ETHIOPIC SYLLABLE HHI 0x1213 ሓ ETHIOPIC SYLLABLE HHAA 0x1214 ሔ ETHIOPIC SYLLABLE HHEE 0x1215 ሕ ETHIOPIC SYLLABLE HHE 0x1216 ሖ ETHIOPIC SYLLABLE HHO 0x1217 ሗ ETHIOPIC SYLLABLE HHWA 0x1218 መ ETHIOPIC SYLLABLE MA 0x1219 ሙ ETHIOPIC SYLLABLE MU 0x121A ሚ ETHIOPIC SYLLABLE MI 0x121B ማ ETHIOPIC SYLLABLE MAA 0x121C ሜ ETHIOPIC SYLLABLE MEE 0x121D ም ETHIOPIC SYLLABLE ME 0x121E ሞ ETHIOPIC SYLLABLE MO 0x121F ሟ ETHIOPIC SYLLABLE MWA 0x1220 ሠ ETHIOPIC SYLLABLE SZA 0x1221 ሡ ETHIOPIC SYLLABLE SZU 0x1222 ሢ ETHIOPIC SYLLABLE SZI 0x1223 ሣ ETHIOPIC SYLLABLE SZAA 0x1224 ሤ ETHIOPIC SYLLABLE SZEE 0x1225 ሥ ETHIOPIC SYLLABLE SZE 0x1226 ሦ ETHIOPIC SYLLABLE SZO 0x1227 ሧ ETHIOPIC SYLLABLE SZWA 0x1228 ረ ETHIOPIC SYLLABLE RA 0x1229 ሩ ETHIOPIC SYLLABLE RU 0x122A ሪ ETHIOPIC SYLLABLE RI 0x122B ራ ETHIOPIC SYLLABLE RAA 0x122C ሬ ETHIOPIC SYLLABLE REE 0x122D ር ETHIOPIC SYLLABLE RE 0x122E ሮ ETHIOPIC SYLLABLE RO 0x122F ሯ ETHIOPIC SYLLABLE RWA 0x1230 ሰ ETHIOPIC SYLLABLE SA 0x1231 ሱ ETHIOPIC SYLLABLE SU 0x1232 ሲ ETHIOPIC SYLLABLE SI 0x1233 ሳ ETHIOPIC SYLLABLE SAA 0x1234 ሴ ETHIOPIC SYLLABLE SEE 0x1235 ስ ETHIOPIC SYLLABLE SE 0x1236 ሶ ETHIOPIC SYLLABLE SO 0x1237 ሷ ETHIOPIC SYLLABLE SWA 0x1238 ሸ ETHIOPIC SYLLABLE SHA 0x1239 ሹ ETHIOPIC SYLLABLE SHU 0x123A ሺ ETHIOPIC SYLLABLE SHI 0x123B ሻ ETHIOPIC SYLLABLE SHAA 0x123C ሼ ETHIOPIC SYLLABLE SHEE 0x123D ሽ ETHIOPIC SYLLABLE SHE 0x123E ሾ ETHIOPIC SYLLABLE SHO 0x123F ሿ ETHIOPIC SYLLABLE SHWA 0x1240 ቀ ETHIOPIC SYLLABLE QA 0x1241 ቁ ETHIOPIC SYLLABLE QU 0x1242 ቂ ETHIOPIC SYLLABLE QI 0x1243 ቃ ETHIOPIC SYLLABLE QAA 0x1244 ቄ ETHIOPIC SYLLABLE QEE 0x1245 ቅ ETHIOPIC SYLLABLE QE 0x1246 ቆ ETHIOPIC SYLLABLE QO 0x1247 ቇ ETHIOPIC SYLLABLE QOA 0x1248 ቈ ETHIOPIC SYLLABLE QWA 0x124A ቊ ETHIOPIC SYLLABLE QWI 0x124B ቋ ETHIOPIC SYLLABLE QWAA 0x124C ቌ ETHIOPIC SYLLABLE QWEE 0x124D ቍ ETHIOPIC SYLLABLE QWE 0x1250 ቐ ETHIOPIC SYLLABLE QHA 0x1251 ቑ ETHIOPIC SYLLABLE QHU 0x1252 ቒ ETHIOPIC SYLLABLE QHI 0x1253 ቓ ETHIOPIC SYLLABLE QHAA 0x1254 ቔ ETHIOPIC SYLLABLE QHEE 0x1255 ቕ ETHIOPIC SYLLABLE QHE 0x1256 ቖ ETHIOPIC SYLLABLE QHO 0x1258 ቘ ETHIOPIC SYLLABLE QHWA 0x125A ቚ ETHIOPIC SYLLABLE QHWI 0x125B ቛ ETHIOPIC SYLLABLE QHWAA 0x125C ቜ ETHIOPIC SYLLABLE QHWEE 0x125D ቝ ETHIOPIC SYLLABLE QHWE 0x1260 በ ETHIOPIC SYLLABLE BA 0x1261 ቡ ETHIOPIC SYLLABLE BU 0x1262 ቢ ETHIOPIC SYLLABLE BI 0x1263 ባ ETHIOPIC SYLLABLE BAA 0x1264 ቤ ETHIOPIC SYLLABLE BEE 0x1265 ብ ETHIOPIC SYLLABLE BE 0x1266 ቦ ETHIOPIC SYLLABLE BO 0x1267 ቧ ETHIOPIC SYLLABLE BWA 0x1268 ቨ ETHIOPIC SYLLABLE VA 0x1269 ቩ ETHIOPIC SYLLABLE VU 0x126A ቪ ETHIOPIC SYLLABLE VI 0x126B ቫ ETHIOPIC SYLLABLE VAA 0x126C ቬ ETHIOPIC SYLLABLE VEE 0x126D ቭ ETHIOPIC SYLLABLE VE 0x126E ቮ ETHIOPIC SYLLABLE VO 0x126F ቯ ETHIOPIC SYLLABLE VWA 0x1270 ተ ETHIOPIC SYLLABLE TA 0x1271 ቱ ETHIOPIC SYLLABLE TU 0x1272 ቲ ETHIOPIC SYLLABLE TI 0x1273 ታ ETHIOPIC SYLLABLE TAA 0x1274 ቴ ETHIOPIC SYLLABLE TEE 0x1275 ት ETHIOPIC SYLLABLE TE 0x1276 ቶ ETHIOPIC SYLLABLE TO 0x1277 ቷ ETHIOPIC SYLLABLE TWA 0x1278 ቸ ETHIOPIC SYLLABLE CA 0x1279 ቹ ETHIOPIC SYLLABLE CU 0x127A ቺ ETHIOPIC SYLLABLE CI 0x127B ቻ ETHIOPIC SYLLABLE CAA 0x127C ቼ ETHIOPIC SYLLABLE CEE 0x127D ች ETHIOPIC SYLLABLE CE 0x127E ቾ ETHIOPIC SYLLABLE CO 0x127F ቿ ETHIOPIC SYLLABLE CWA 0x1280 ኀ ETHIOPIC SYLLABLE XA 0x1281 ኁ ETHIOPIC SYLLABLE XU 0x1282 ኂ ETHIOPIC SYLLABLE XI 0x1283 ኃ ETHIOPIC SYLLABLE XAA 0x1284 ኄ ETHIOPIC SYLLABLE XEE 0x1285 ኅ ETHIOPIC SYLLABLE XE 0x1286 ኆ ETHIOPIC SYLLABLE XO 0x1287 ኇ ETHIOPIC SYLLABLE XOA 0x1288 ኈ ETHIOPIC SYLLABLE XWA 0x128A ኊ ETHIOPIC SYLLABLE XWI 0x128B ኋ ETHIOPIC SYLLABLE XWAA 0x128C ኌ ETHIOPIC SYLLABLE XWEE 0x128D ኍ ETHIOPIC SYLLABLE XWE 0x1290 ነ ETHIOPIC SYLLABLE NA 0x1291 ኑ ETHIOPIC SYLLABLE NU 0x1292 ኒ ETHIOPIC SYLLABLE NI 0x1293 ና ETHIOPIC SYLLABLE NAA 0x1294 ኔ ETHIOPIC SYLLABLE NEE 0x1295 ን ETHIOPIC SYLLABLE NE 0x1296 ኖ ETHIOPIC SYLLABLE NO 0x1297 ኗ ETHIOPIC SYLLABLE NWA 0x1298 ኘ ETHIOPIC SYLLABLE NYA 0x1299 ኙ ETHIOPIC SYLLABLE NYU 0x129A ኚ ETHIOPIC SYLLABLE NYI 0x129B ኛ ETHIOPIC SYLLABLE NYAA 0x129C ኜ ETHIOPIC SYLLABLE NYEE 0x129D ኝ ETHIOPIC SYLLABLE NYE 0x129E ኞ ETHIOPIC SYLLABLE NYO 0x129F ኟ ETHIOPIC SYLLABLE NYWA 0x12A0 አ ETHIOPIC SYLLABLE GLOTTAL A 0x12A1 ኡ ETHIOPIC SYLLABLE GLOTTAL U 0x12A2 ኢ ETHIOPIC SYLLABLE GLOTTAL I 0x12A3 ኣ ETHIOPIC SYLLABLE GLOTTAL AA 0x12A4 ኤ ETHIOPIC SYLLABLE GLOTTAL EE 0x12A5 እ ETHIOPIC SYLLABLE GLOTTAL E 0x12A6 ኦ ETHIOPIC SYLLABLE GLOTTAL O 0x12A7 ኧ ETHIOPIC SYLLABLE GLOTTAL WA 0x12A8 ከ ETHIOPIC SYLLABLE KA 0x12A9 ኩ ETHIOPIC SYLLABLE KU 0x12AA ኪ ETHIOPIC SYLLABLE KI 0x12AB ካ ETHIOPIC SYLLABLE KAA 0x12AC ኬ ETHIOPIC SYLLABLE KEE 0x12AD ክ ETHIOPIC SYLLABLE KE 0x12AE ኮ ETHIOPIC SYLLABLE KO 0x12AF ኯ ETHIOPIC SYLLABLE KOA 0x12B0 ኰ ETHIOPIC SYLLABLE KWA 0x12B2 ኲ ETHIOPIC SYLLABLE KWI 0x12B3 ኳ ETHIOPIC SYLLABLE KWAA 0x12B4 ኴ ETHIOPIC SYLLABLE KWEE 0x12B5 ኵ ETHIOPIC SYLLABLE KWE 0x12B8 ኸ ETHIOPIC SYLLABLE KXA 0x12B9 ኹ ETHIOPIC SYLLABLE KXU 0x12BA ኺ ETHIOPIC SYLLABLE KXI 0x12BB ኻ ETHIOPIC SYLLABLE KXAA 0x12BC ኼ ETHIOPIC SYLLABLE KXEE 0x12BD ኽ ETHIOPIC SYLLABLE KXE 0x12BE ኾ ETHIOPIC SYLLABLE KXO 0x12C0 ዀ ETHIOPIC SYLLABLE KXWA 0x12C2 ዂ ETHIOPIC SYLLABLE KXWI 0x12C3 ዃ ETHIOPIC SYLLABLE KXWAA 0x12C4 ዄ ETHIOPIC SYLLABLE KXWEE 0x12C5 ዅ ETHIOPIC SYLLABLE KXWE 0x12C8 ወ ETHIOPIC SYLLABLE WA 0x12C9 ዉ ETHIOPIC SYLLABLE WU 0x12CA ዊ ETHIOPIC SYLLABLE WI 0x12CB ዋ ETHIOPIC SYLLABLE WAA 0x12CC ዌ ETHIOPIC SYLLABLE WEE 0x12CD ው ETHIOPIC SYLLABLE WE 0x12CE ዎ ETHIOPIC SYLLABLE WO 0x12CF ዏ ETHIOPIC SYLLABLE WOA 0x12D0 ዐ ETHIOPIC SYLLABLE PHARYNGEAL A 0x12D1 ዑ ETHIOPIC SYLLABLE PHARYNGEAL U 0x12D2 ዒ ETHIOPIC SYLLABLE PHARYNGEAL I 0x12D3 ዓ ETHIOPIC SYLLABLE PHARYNGEAL AA 0x12D4 ዔ ETHIOPIC SYLLABLE PHARYNGEAL EE 0x12D5 ዕ ETHIOPIC SYLLABLE PHARYNGEAL E 0x12D6 ዖ ETHIOPIC SYLLABLE PHARYNGEAL O 0x12D8 ዘ ETHIOPIC SYLLABLE ZA 0x12D9 ዙ ETHIOPIC SYLLABLE ZU 0x12DA ዚ ETHIOPIC SYLLABLE ZI 0x12DB ዛ ETHIOPIC SYLLABLE ZAA 0x12DC ዜ ETHIOPIC SYLLABLE ZEE 0x12DD ዝ ETHIOPIC SYLLABLE ZE 0x12DE ዞ ETHIOPIC SYLLABLE ZO 0x12DF ዟ ETHIOPIC SYLLABLE ZWA 0x12E0 ዠ ETHIOPIC SYLLABLE ZHA 0x12E1 ዡ ETHIOPIC SYLLABLE ZHU 0x12E2 ዢ ETHIOPIC SYLLABLE ZHI 0x12E3 ዣ ETHIOPIC SYLLABLE ZHAA 0x12E4 ዤ ETHIOPIC SYLLABLE ZHEE 0x12E5 ዥ ETHIOPIC SYLLABLE ZHE 0x12E6 ዦ ETHIOPIC SYLLABLE ZHO 0x12E7 ዧ ETHIOPIC SYLLABLE ZHWA 0x12E8 የ ETHIOPIC SYLLABLE YA 0x12E9 ዩ ETHIOPIC SYLLABLE YU 0x12EA ዪ ETHIOPIC SYLLABLE YI 0x12EB ያ ETHIOPIC SYLLABLE YAA 0x12EC ዬ ETHIOPIC SYLLABLE YEE 0x12ED ይ ETHIOPIC SYLLABLE YE 0x12EE ዮ ETHIOPIC SYLLABLE YO 0x12EF ዯ ETHIOPIC SYLLABLE YOA 0x12F0 ደ ETHIOPIC SYLLABLE DA 0x12F1 ዱ ETHIOPIC SYLLABLE DU 0x12F2 ዲ ETHIOPIC SYLLABLE DI 0x12F3 ዳ ETHIOPIC SYLLABLE DAA 0x12F4 ዴ ETHIOPIC SYLLABLE DEE 0x12F5 ድ ETHIOPIC SYLLABLE DE 0x12F6 ዶ ETHIOPIC SYLLABLE DO 0x12F7 ዷ ETHIOPIC SYLLABLE DWA 0x12F8 ዸ ETHIOPIC SYLLABLE DDA 0x12F9 ዹ ETHIOPIC SYLLABLE DDU 0x12FA ዺ ETHIOPIC SYLLABLE DDI 0x12FB ዻ ETHIOPIC SYLLABLE DDAA 0x12FC ዼ ETHIOPIC SYLLABLE DDEE 0x12FD ዽ ETHIOPIC SYLLABLE DDE 0x12FE ዾ ETHIOPIC SYLLABLE DDO 0x12FF ዿ ETHIOPIC SYLLABLE DDWA 0x1300 ጀ ETHIOPIC SYLLABLE JA 0x1301 ጁ ETHIOPIC SYLLABLE JU 0x1302 ጂ ETHIOPIC SYLLABLE JI 0x1303 ጃ ETHIOPIC SYLLABLE JAA 0x1304 ጄ ETHIOPIC SYLLABLE JEE 0x1305 ጅ ETHIOPIC SYLLABLE JE 0x1306 ጆ ETHIOPIC SYLLABLE JO 0x1307 ጇ ETHIOPIC SYLLABLE JWA 0x1308 ገ ETHIOPIC SYLLABLE GA 0x1309 ጉ ETHIOPIC SYLLABLE GU 0x130A ጊ ETHIOPIC SYLLABLE GI 0x130B ጋ ETHIOPIC SYLLABLE GAA 0x130C ጌ ETHIOPIC SYLLABLE GEE 0x130D ግ ETHIOPIC SYLLABLE GE 0x130E ጎ ETHIOPIC SYLLABLE GO 0x130F ጏ ETHIOPIC SYLLABLE GOA 0x1310 ጐ ETHIOPIC SYLLABLE GWA 0x1312 ጒ ETHIOPIC SYLLABLE GWI 0x1313 ጓ ETHIOPIC SYLLABLE GWAA 0x1314 ጔ ETHIOPIC SYLLABLE GWEE 0x1315 ጕ ETHIOPIC SYLLABLE GWE 0x1318 ጘ ETHIOPIC SYLLABLE GGA 0x1319 ጙ ETHIOPIC SYLLABLE GGU 0x131A ጚ ETHIOPIC SYLLABLE GGI 0x131B ጛ ETHIOPIC SYLLABLE GGAA 0x131C ጜ ETHIOPIC SYLLABLE GGEE 0x131D ጝ ETHIOPIC SYLLABLE GGE 0x131E ጞ ETHIOPIC SYLLABLE GGO 0x131F ጟ ETHIOPIC SYLLABLE GGWAA 0x1320 ጠ ETHIOPIC SYLLABLE THA 0x1321 ጡ ETHIOPIC SYLLABLE THU 0x1322 ጢ ETHIOPIC SYLLABLE THI 0x1323 ጣ ETHIOPIC SYLLABLE THAA 0x1324 ጤ ETHIOPIC SYLLABLE THEE 0x1325 ጥ ETHIOPIC SYLLABLE THE 0x1326 ጦ ETHIOPIC SYLLABLE THO 0x1327 ጧ ETHIOPIC SYLLABLE THWA 0x1328 ጨ ETHIOPIC SYLLABLE CHA 0x1329 ጩ ETHIOPIC SYLLABLE CHU 0x132A ጪ ETHIOPIC SYLLABLE CHI 0x132B ጫ ETHIOPIC SYLLABLE CHAA 0x132C ጬ ETHIOPIC SYLLABLE CHEE 0x132D ጭ ETHIOPIC SYLLABLE CHE 0x132E ጮ ETHIOPIC SYLLABLE CHO 0x132F ጯ ETHIOPIC SYLLABLE CHWA 0x1330 ጰ ETHIOPIC SYLLABLE PHA 0x1331 ጱ ETHIOPIC SYLLABLE PHU 0x1332 ጲ ETHIOPIC SYLLABLE PHI 0x1333 ጳ ETHIOPIC SYLLABLE PHAA 0x1334 ጴ ETHIOPIC SYLLABLE PHEE 0x1335 ጵ ETHIOPIC SYLLABLE PHE 0x1336 ጶ ETHIOPIC SYLLABLE PHO 0x1337 ጷ ETHIOPIC SYLLABLE PHWA 0x1338 ጸ ETHIOPIC SYLLABLE TSA 0x1339 ጹ ETHIOPIC SYLLABLE TSU 0x133A ጺ ETHIOPIC SYLLABLE TSI 0x133B ጻ ETHIOPIC SYLLABLE TSAA 0x133C ጼ ETHIOPIC SYLLABLE TSEE 0x133D ጽ ETHIOPIC SYLLABLE TSE 0x133E ጾ ETHIOPIC SYLLABLE TSO 0x133F ጿ ETHIOPIC SYLLABLE TSWA 0x1340 ፀ ETHIOPIC SYLLABLE TZA 0x1341 ፁ ETHIOPIC SYLLABLE TZU 0x1342 ፂ ETHIOPIC SYLLABLE TZI 0x1343 ፃ ETHIOPIC SYLLABLE TZAA 0x1344 ፄ ETHIOPIC SYLLABLE TZEE 0x1345 ፅ ETHIOPIC SYLLABLE TZE 0x1346 ፆ ETHIOPIC SYLLABLE TZO 0x1347 ፇ ETHIOPIC SYLLABLE TZOA 0x1348 ፈ ETHIOPIC SYLLABLE FA 0x1349 ፉ ETHIOPIC SYLLABLE FU 0x134A ፊ ETHIOPIC SYLLABLE FI 0x134B ፋ ETHIOPIC SYLLABLE FAA 0x134C ፌ ETHIOPIC SYLLABLE FEE 0x134D ፍ ETHIOPIC SYLLABLE FE 0x134E ፎ ETHIOPIC SYLLABLE FO 0x134F ፏ ETHIOPIC SYLLABLE FWA 0x1350 ፐ ETHIOPIC SYLLABLE PA 0x1351 ፑ ETHIOPIC SYLLABLE PU 0x1352 ፒ ETHIOPIC SYLLABLE PI 0x1353 ፓ ETHIOPIC SYLLABLE PAA 0x1354 ፔ ETHIOPIC SYLLABLE PEE 0x1355 ፕ ETHIOPIC SYLLABLE PE 0x1356 ፖ ETHIOPIC SYLLABLE PO 0x1357 ፗ ETHIOPIC SYLLABLE PWA 0x1358 ፘ ETHIOPIC SYLLABLE RYA 0x1359 ፙ ETHIOPIC SYLLABLE MYA 0x135A ፚ ETHIOPIC SYLLABLE FYA 0x135D ፝ 0x135E ፞ 0x135F ፟ ETHIOPIC COMBINING GEMINATION MARK 0x1360 ፠ ETHIOPIC SECTION MARK 0x1361 ፡ ETHIOPIC WORDSPACE 0x1362 ። ETHIOPIC FULL STOP 0x1363 ፣ ETHIOPIC COMMA 0x1364 ፤ ETHIOPIC SEMICOLON 0x1365 ፥ ETHIOPIC COLON 0x1366 ፦ ETHIOPIC PREFACE COLON 0x1367 ፧ ETHIOPIC QUESTION MARK 0x1368 ፨ ETHIOPIC PARAGRAPH SEPARATOR 0x1369 ፩ ETHIOPIC DIGIT ONE 0x136A ፪ ETHIOPIC DIGIT TWO 0x136B ፫ ETHIOPIC DIGIT THREE 0x136C ፬ ETHIOPIC DIGIT FOUR 0x136D ፭ ETHIOPIC DIGIT FIVE 0x136E ፮ ETHIOPIC DIGIT SIX 0x136F ፯ ETHIOPIC DIGIT SEVEN 0x1370 ፰ ETHIOPIC DIGIT EIGHT 0x1371 ፱ ETHIOPIC DIGIT NINE 0x1372 ፲ ETHIOPIC NUMBER TEN 0x1373 ፳ ETHIOPIC NUMBER TWENTY 0x1374 ፴ ETHIOPIC NUMBER THIRTY 0x1375 ፵ ETHIOPIC NUMBER FORTY 0x1376 ፶ ETHIOPIC NUMBER FIFTY 0x1377 ፷ ETHIOPIC NUMBER SIXTY 0x1378 ፸ ETHIOPIC NUMBER SEVENTY 0x1379 ፹ ETHIOPIC NUMBER EIGHTY 0x137A ፺ ETHIOPIC NUMBER NINETY 0x137B ፻ ETHIOPIC NUMBER HUNDRED 0x137C ፼ ETHIOPIC NUMBER TEN THOUSAND 0x1380 ᎀ ETHIOPIC SYLLABLE SEBATBEIT MWA 0x1381 ᎁ ETHIOPIC SYLLABLE MWI 0x1382 ᎂ ETHIOPIC SYLLABLE MWEE 0x1383 ᎃ ETHIOPIC SYLLABLE MWE 0x1384 ᎄ ETHIOPIC SYLLABLE SEBATBEIT BWA 0x1385 ᎅ ETHIOPIC SYLLABLE BWI 0x1386 ᎆ ETHIOPIC SYLLABLE BWEE 0x1387 ᎇ ETHIOPIC SYLLABLE BWE 0x1388 ᎈ ETHIOPIC SYLLABLE SEBATBEIT FWA 0x1389 ᎉ ETHIOPIC SYLLABLE FWI 0x138A ᎊ ETHIOPIC SYLLABLE FWEE 0x138B ᎋ ETHIOPIC SYLLABLE FWE 0x138C ᎌ ETHIOPIC SYLLABLE SEBATBEIT PWA 0x138D ᎍ ETHIOPIC SYLLABLE PWI 0x138E ᎎ ETHIOPIC SYLLABLE PWEE 0x138F ᎏ ETHIOPIC SYLLABLE PWE 0x1390 ᎐ ETHIOPIC TONAL MARK YIZET 0x1391 ᎑ ETHIOPIC TONAL MARK DERET 0x1392 ᎒ ETHIOPIC TONAL MARK RIKRIK 0x1393 ᎓ ETHIOPIC TONAL MARK SHORT RIKRIK 0x1394 ᎔ ETHIOPIC TONAL MARK DIFAT 0x1395 ᎕ ETHIOPIC TONAL MARK KENAT 0x1396 ᎖ ETHIOPIC TONAL MARK CHIRET 0x1397 ᎗ ETHIOPIC TONAL MARK HIDET 0x1398 ᎘ ETHIOPIC TONAL MARK DERET-HIDET 0x1399 ᎙ ETHIOPIC TONAL MARK KURT 0x2D80 ⶀ ETHIOPIC SYLLABLE LOA 0x2D81 ⶁ ETHIOPIC SYLLABLE MOA 0x2D82 ⶂ ETHIOPIC SYLLABLE ROA 0x2D83 ⶃ ETHIOPIC SYLLABLE SOA 0x2D84 ⶄ ETHIOPIC SYLLABLE SHOA 0x2D85 ⶅ ETHIOPIC SYLLABLE BOA 0x2D86 ⶆ ETHIOPIC SYLLABLE TOA 0x2D87 ⶇ ETHIOPIC SYLLABLE COA 0x2D88 ⶈ ETHIOPIC SYLLABLE NOA 0x2D89 ⶉ ETHIOPIC SYLLABLE NYOA 0x2D8A ⶊ ETHIOPIC SYLLABLE GLOTTAL OA 0x2D8B ⶋ ETHIOPIC SYLLABLE ZOA 0x2D8C ⶌ ETHIOPIC SYLLABLE DOA 0x2D8D ⶍ ETHIOPIC SYLLABLE DDOA 0x2D8E ⶎ ETHIOPIC SYLLABLE JOA 0x2D8F ⶏ ETHIOPIC SYLLABLE THOA 0x2D90 ⶐ ETHIOPIC SYLLABLE CHOA 0x2D91 ⶑ ETHIOPIC SYLLABLE PHOA 0x2D92 ⶒ ETHIOPIC SYLLABLE POA 0x2D93 ⶓ ETHIOPIC SYLLABLE GGWA 0x2D94 ⶔ ETHIOPIC SYLLABLE GGWI 0x2D95 ⶕ ETHIOPIC SYLLABLE GGWEE 0x2D96 ⶖ ETHIOPIC SYLLABLE GGWE 0x2DA0 ⶠ ETHIOPIC SYLLABLE SSA 0x2DA1 ⶡ ETHIOPIC SYLLABLE SSU 0x2DA2 ⶢ ETHIOPIC SYLLABLE SSI 0x2DA3 ⶣ ETHIOPIC SYLLABLE SSAA 0x2DA4 ⶤ ETHIOPIC SYLLABLE SSEE 0x2DA5 ⶥ ETHIOPIC SYLLABLE SSE 0x2DA6 ⶦ ETHIOPIC SYLLABLE SSO 0x2DA8 ⶨ ETHIOPIC SYLLABLE CCA 0x2DA9 ⶩ ETHIOPIC SYLLABLE CCU 0x2DAA ⶪ ETHIOPIC SYLLABLE CCI 0x2DAB ⶫ ETHIOPIC SYLLABLE CCAA 0x2DAC ⶬ ETHIOPIC SYLLABLE CCEE 0x2DAD ⶭ ETHIOPIC SYLLABLE CCE 0x2DAE ⶮ ETHIOPIC SYLLABLE CCO 0x2DB0 ⶰ ETHIOPIC SYLLABLE ZZA 0x2DB1 ⶱ ETHIOPIC SYLLABLE ZZU 0x2DB2 ⶲ ETHIOPIC SYLLABLE ZZI 0x2DB3 ⶳ ETHIOPIC SYLLABLE ZZAA 0x2DB4 ⶴ ETHIOPIC SYLLABLE ZZEE 0x2DB5 ⶵ ETHIOPIC SYLLABLE ZZE 0x2DB6 ⶶ ETHIOPIC SYLLABLE ZZO 0x2DB8 ⶸ ETHIOPIC SYLLABLE CCHA 0x2DB9 ⶹ ETHIOPIC SYLLABLE CCHU 0x2DBA ⶺ ETHIOPIC SYLLABLE CCHI 0x2DBB ⶻ ETHIOPIC SYLLABLE CCHAA 0x2DBC ⶼ ETHIOPIC SYLLABLE CCHEE 0x2DBD ⶽ ETHIOPIC SYLLABLE CCHE 0x2DBE ⶾ ETHIOPIC SYLLABLE CCHO 0x2DC0 ⷀ ETHIOPIC SYLLABLE QYA 0x2DC1 ⷁ ETHIOPIC SYLLABLE QYU 0x2DC2 ⷂ ETHIOPIC SYLLABLE QYI 0x2DC3 ⷃ ETHIOPIC SYLLABLE QYAA 0x2DC4 ⷄ ETHIOPIC SYLLABLE QYEE 0x2DC5 ⷅ ETHIOPIC SYLLABLE QYE 0x2DC6 ⷆ ETHIOPIC SYLLABLE QYO 0x2DC8 ⷈ ETHIOPIC SYLLABLE KYA 0x2DC9 ⷉ ETHIOPIC SYLLABLE KYU 0x2DCA ⷊ ETHIOPIC SYLLABLE KYI 0x2DCB ⷋ ETHIOPIC SYLLABLE KYAA 0x2DCC ⷌ ETHIOPIC SYLLABLE KYEE 0x2DCD ⷍ ETHIOPIC SYLLABLE KYE 0x2DCE ⷎ ETHIOPIC SYLLABLE KYO 0x2DD0 ⷐ ETHIOPIC SYLLABLE XYA 0x2DD1 ⷑ ETHIOPIC SYLLABLE XYU 0x2DD2 ⷒ ETHIOPIC SYLLABLE XYI 0x2DD3 ⷓ ETHIOPIC SYLLABLE XYAA 0x2DD4 ⷔ ETHIOPIC SYLLABLE XYEE 0x2DD5 ⷕ ETHIOPIC SYLLABLE XYE 0x2DD6 ⷖ ETHIOPIC SYLLABLE XYO 0x2DD8 ⷘ ETHIOPIC SYLLABLE GYA 0x2DD9 ⷙ ETHIOPIC SYLLABLE GYU 0x2DDA ⷚ ETHIOPIC SYLLABLE GYI 0x2DDB ⷛ ETHIOPIC SYLLABLE GYAA 0x2DDC ⷜ ETHIOPIC SYLLABLE GYEE 0x2DDD ⷝ ETHIOPIC SYLLABLE GYE 0x2DDE ⷞ ETHIOPIC SYLLABLE GYO 0xAB01 ꬁ 0xAB02 ꬂ 0xAB03 ꬃ 0xAB04 ꬄ 0xAB05 ꬅ 0xAB06 ꬆ 0xAB09 ꬉ 0xAB0A ꬊ 0xAB0B ꬋ 0xAB0C ꬌ 0xAB0D ꬍ 0xAB0E ꬎ 0xAB11 ꬑ 0xAB12 ꬒ 0xAB13 ꬓ 0xAB14 ꬔ 0xAB15 ꬕ 0xAB16 ꬖ 0xAB20 ꬠ 0xAB21 ꬡ 0xAB22 ꬢ 0xAB23 ꬣ 0xAB24 ꬤ 0xAB25 ꬥ 0xAB26 ꬦ 0xAB28 ꬨ 0xAB29 ꬩ 0xAB2A ꬪ 0xAB2B ꬫ 0xAB2C ꬬ 0xAB2D ꬭ 0xAB2E ꬮ Lib/gftools/encodings/georgian_unique-glyphs.nam000066400000000000000000000111141376445505300224060ustar00rootroot000000000000000x0589 ։ ARMENIAN FULL STOP 0x10A0 Ⴀ GEORGIAN CAPITAL LETTER AN 0x10A1 Ⴁ GEORGIAN CAPITAL LETTER BAN 0x10A2 Ⴂ GEORGIAN CAPITAL LETTER GAN 0x10A3 Ⴃ GEORGIAN CAPITAL LETTER DON 0x10A4 Ⴄ GEORGIAN CAPITAL LETTER EN 0x10A5 Ⴅ GEORGIAN CAPITAL LETTER VIN 0x10A6 Ⴆ GEORGIAN CAPITAL LETTER ZEN 0x10A7 Ⴇ GEORGIAN CAPITAL LETTER TAN 0x10A8 Ⴈ GEORGIAN CAPITAL LETTER IN 0x10A9 Ⴉ GEORGIAN CAPITAL LETTER KAN 0x10AA Ⴊ GEORGIAN CAPITAL LETTER LAS 0x10AB Ⴋ GEORGIAN CAPITAL LETTER MAN 0x10AC Ⴌ GEORGIAN CAPITAL LETTER NAR 0x10AD Ⴍ GEORGIAN CAPITAL LETTER ON 0x10AE Ⴎ GEORGIAN CAPITAL LETTER PAR 0x10AF Ⴏ GEORGIAN CAPITAL LETTER ZHAR 0x10B0 Ⴐ GEORGIAN CAPITAL LETTER RAE 0x10B1 Ⴑ GEORGIAN CAPITAL LETTER SAN 0x10B2 Ⴒ GEORGIAN CAPITAL LETTER TAR 0x10B3 Ⴓ GEORGIAN CAPITAL LETTER UN 0x10B4 Ⴔ GEORGIAN CAPITAL LETTER PHAR 0x10B5 Ⴕ GEORGIAN CAPITAL LETTER KHAR 0x10B6 Ⴖ GEORGIAN CAPITAL LETTER GHAN 0x10B7 Ⴗ GEORGIAN CAPITAL LETTER QAR 0x10B8 Ⴘ GEORGIAN CAPITAL LETTER SHIN 0x10B9 Ⴙ GEORGIAN CAPITAL LETTER CHIN 0x10BA Ⴚ GEORGIAN CAPITAL LETTER CAN 0x10BB Ⴛ GEORGIAN CAPITAL LETTER JIL 0x10BC Ⴜ GEORGIAN CAPITAL LETTER CIL 0x10BD Ⴝ GEORGIAN CAPITAL LETTER CHAR 0x10BE Ⴞ GEORGIAN CAPITAL LETTER XAN 0x10BF Ⴟ GEORGIAN CAPITAL LETTER JHAN 0x10C0 Ⴠ GEORGIAN CAPITAL LETTER HAE 0x10C1 Ⴡ GEORGIAN CAPITAL LETTER HE 0x10C2 Ⴢ GEORGIAN CAPITAL LETTER HIE 0x10C3 Ⴣ GEORGIAN CAPITAL LETTER WE 0x10C4 Ⴤ GEORGIAN CAPITAL LETTER HAR 0x10C5 Ⴥ GEORGIAN CAPITAL LETTER HOE 0x10C7 Ⴧ GEORGIAN CAPITAL LETTER YN 0x10CD Ⴭ GEORGIAN CAPITAL LETTER AEN 0x10D0 ა GEORGIAN LETTER AN 0x10D1 ბ GEORGIAN LETTER BAN 0x10D2 გ GEORGIAN LETTER GAN 0x10D3 დ GEORGIAN LETTER DON 0x10D4 ე GEORGIAN LETTER EN 0x10D5 ვ GEORGIAN LETTER VIN 0x10D6 ზ GEORGIAN LETTER ZEN 0x10D7 თ GEORGIAN LETTER TAN 0x10D8 ი GEORGIAN LETTER IN 0x10D9 კ GEORGIAN LETTER KAN 0x10DA ლ GEORGIAN LETTER LAS 0x10DB მ GEORGIAN LETTER MAN 0x10DC ნ GEORGIAN LETTER NAR 0x10DD ო GEORGIAN LETTER ON 0x10DE პ GEORGIAN LETTER PAR 0x10DF ჟ GEORGIAN LETTER ZHAR 0x10E0 რ GEORGIAN LETTER RAE 0x10E1 ს GEORGIAN LETTER SAN 0x10E2 ტ GEORGIAN LETTER TAR 0x10E3 უ GEORGIAN LETTER UN 0x10E4 ფ GEORGIAN LETTER PHAR 0x10E5 ქ GEORGIAN LETTER KHAR 0x10E6 ღ GEORGIAN LETTER GHAN 0x10E7 ყ GEORGIAN LETTER QAR 0x10E8 შ GEORGIAN LETTER SHIN 0x10E9 ჩ GEORGIAN LETTER CHIN 0x10EA ც GEORGIAN LETTER CAN 0x10EB ძ GEORGIAN LETTER JIL 0x10EC წ GEORGIAN LETTER CIL 0x10ED ჭ GEORGIAN LETTER CHAR 0x10EE ხ GEORGIAN LETTER XAN 0x10EF ჯ GEORGIAN LETTER JHAN 0x10F0 ჰ GEORGIAN LETTER HAE 0x10F1 ჱ GEORGIAN LETTER HE 0x10F2 ჲ GEORGIAN LETTER HIE 0x10F3 ჳ GEORGIAN LETTER WE 0x10F4 ჴ GEORGIAN LETTER HAR 0x10F5 ჵ GEORGIAN LETTER HOE 0x10F6 ჶ GEORGIAN LETTER FI 0x10F7 ჷ GEORGIAN LETTER YN 0x10F8 ჸ GEORGIAN LETTER ELIFI 0x10F9 ჹ GEORGIAN LETTER TURNED GAN 0x10FA ჺ GEORGIAN LETTER AIN 0x10FC ჼ MODIFIER LETTER GEORGIAN NAR 0x10FD ჽ GEORGIAN LETTER AEN 0x10FE ჾ GEORGIAN LETTER HARD SIGN 0x10FF ჿ GEORGIAN LETTER LABIAL SIGN 0x2D00 ⴀ GEORGIAN SMALL LETTER AN 0x2D01 ⴁ GEORGIAN SMALL LETTER BAN 0x2D02 ⴂ GEORGIAN SMALL LETTER GAN 0x2D03 ⴃ GEORGIAN SMALL LETTER DON 0x2D04 ⴄ GEORGIAN SMALL LETTER EN 0x2D05 ⴅ GEORGIAN SMALL LETTER VIN 0x2D06 ⴆ GEORGIAN SMALL LETTER ZEN 0x2D07 ⴇ GEORGIAN SMALL LETTER TAN 0x2D08 ⴈ GEORGIAN SMALL LETTER IN 0x2D09 ⴉ GEORGIAN SMALL LETTER KAN 0x2D0A ⴊ GEORGIAN SMALL LETTER LAS 0x2D0B ⴋ GEORGIAN SMALL LETTER MAN 0x2D0C ⴌ GEORGIAN SMALL LETTER NAR 0x2D0D ⴍ GEORGIAN SMALL LETTER ON 0x2D0E ⴎ GEORGIAN SMALL LETTER PAR 0x2D0F ⴏ GEORGIAN SMALL LETTER ZHAR 0x2D10 ⴐ GEORGIAN SMALL LETTER RAE 0x2D11 ⴑ GEORGIAN SMALL LETTER SAN 0x2D12 ⴒ GEORGIAN SMALL LETTER TAR 0x2D13 ⴓ GEORGIAN SMALL LETTER UN 0x2D14 ⴔ GEORGIAN SMALL LETTER PHAR 0x2D15 ⴕ GEORGIAN SMALL LETTER KHAR 0x2D16 ⴖ GEORGIAN SMALL LETTER GHAN 0x2D17 ⴗ GEORGIAN SMALL LETTER QAR 0x2D18 ⴘ GEORGIAN SMALL LETTER SHIN 0x2D19 ⴙ GEORGIAN SMALL LETTER CHIN 0x2D1A ⴚ GEORGIAN SMALL LETTER CAN 0x2D1B ⴛ GEORGIAN SMALL LETTER JIL 0x2D1C ⴜ GEORGIAN SMALL LETTER CIL 0x2D1D ⴝ GEORGIAN SMALL LETTER CHAR 0x2D1E ⴞ GEORGIAN SMALL LETTER XAN 0x2D1F ⴟ GEORGIAN SMALL LETTER JHAN 0x2D20 ⴠ GEORGIAN SMALL LETTER HAE 0x2D21 ⴡ GEORGIAN SMALL LETTER HE 0x2D22 ⴢ GEORGIAN SMALL LETTER HIE 0x2D23 ⴣ GEORGIAN SMALL LETTER WE 0x2D24 ⴤ GEORGIAN SMALL LETTER HAR 0x2D25 ⴥ GEORGIAN SMALL LETTER HOE 0x2D27 ⴧ GEORGIAN SMALL LETTER YN 0x2D2D ⴭ GEORGIAN SMALL LETTER AEN Lib/gftools/encodings/greek-ext_unique-glyphs.nam000066400000000000000000000331031376445505300225100ustar00rootroot000000000000000x1F00 ἀ GREEK SMALL LETTER ALPHA WITH PSILI 0x1F01 ἁ GREEK SMALL LETTER ALPHA WITH DASIA 0x1F02 ἂ GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA 0x1F03 ἃ GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA 0x1F04 ἄ GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA 0x1F05 ἅ GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA 0x1F06 ἆ GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI 0x1F07 ἇ GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI 0x1F08 Ἀ GREEK CAPITAL LETTER ALPHA WITH PSILI 0x1F09 Ἁ GREEK CAPITAL LETTER ALPHA WITH DASIA 0x1F0A Ἂ GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA 0x1F0B Ἃ GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA 0x1F0C Ἄ GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA 0x1F0D Ἅ GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA 0x1F0E Ἆ GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI 0x1F0F Ἇ GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI 0x1F10 ἐ GREEK SMALL LETTER EPSILON WITH PSILI 0x1F11 ἑ GREEK SMALL LETTER EPSILON WITH DASIA 0x1F12 ἒ GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA 0x1F13 ἓ GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA 0x1F14 ἔ GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA 0x1F15 ἕ GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA 0x1F16 ἖ 0x1F17 ἗ 0x1F18 Ἐ GREEK CAPITAL LETTER EPSILON WITH PSILI 0x1F19 Ἑ GREEK CAPITAL LETTER EPSILON WITH DASIA 0x1F1A Ἒ GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA 0x1F1B Ἓ GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA 0x1F1C Ἔ GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA 0x1F1D Ἕ GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA 0x1F1E ἞ 0x1F1F ἟ 0x1F20 ἠ GREEK SMALL LETTER ETA WITH PSILI 0x1F21 ἡ GREEK SMALL LETTER ETA WITH DASIA 0x1F22 ἢ GREEK SMALL LETTER ETA WITH PSILI AND VARIA 0x1F23 ἣ GREEK SMALL LETTER ETA WITH DASIA AND VARIA 0x1F24 ἤ GREEK SMALL LETTER ETA WITH PSILI AND OXIA 0x1F25 ἥ GREEK SMALL LETTER ETA WITH DASIA AND OXIA 0x1F26 ἦ GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI 0x1F27 ἧ GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI 0x1F28 Ἠ GREEK CAPITAL LETTER ETA WITH PSILI 0x1F29 Ἡ GREEK CAPITAL LETTER ETA WITH DASIA 0x1F2A Ἢ GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA 0x1F2B Ἣ GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA 0x1F2C Ἤ GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA 0x1F2D Ἥ GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA 0x1F2E Ἦ GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI 0x1F2F Ἧ GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI 0x1F30 ἰ GREEK SMALL LETTER IOTA WITH PSILI 0x1F31 ἱ GREEK SMALL LETTER IOTA WITH DASIA 0x1F32 ἲ GREEK SMALL LETTER IOTA WITH PSILI AND VARIA 0x1F33 ἳ GREEK SMALL LETTER IOTA WITH DASIA AND VARIA 0x1F34 ἴ GREEK SMALL LETTER IOTA WITH PSILI AND OXIA 0x1F35 ἵ GREEK SMALL LETTER IOTA WITH DASIA AND OXIA 0x1F36 ἶ GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI 0x1F37 ἷ GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI 0x1F38 Ἰ GREEK CAPITAL LETTER IOTA WITH PSILI 0x1F39 Ἱ GREEK CAPITAL LETTER IOTA WITH DASIA 0x1F3A Ἲ GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA 0x1F3B Ἳ GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA 0x1F3C Ἴ GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA 0x1F3D Ἵ GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA 0x1F3E Ἶ GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI 0x1F3F Ἷ GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI 0x1F40 ὀ GREEK SMALL LETTER OMICRON WITH PSILI 0x1F41 ὁ GREEK SMALL LETTER OMICRON WITH DASIA 0x1F42 ὂ GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA 0x1F43 ὃ GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA 0x1F44 ὄ GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA 0x1F45 ὅ GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA 0x1F46 ὆ 0x1F47 ὇ 0x1F48 Ὀ GREEK CAPITAL LETTER OMICRON WITH PSILI 0x1F49 Ὁ GREEK CAPITAL LETTER OMICRON WITH DASIA 0x1F4A Ὂ GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA 0x1F4B Ὃ GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA 0x1F4C Ὄ GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA 0x1F4D Ὅ GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA 0x1F4E ὎ 0x1F4F ὏ 0x1F50 ὐ GREEK SMALL LETTER UPSILON WITH PSILI 0x1F51 ὑ GREEK SMALL LETTER UPSILON WITH DASIA 0x1F52 ὒ GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA 0x1F53 ὓ GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA 0x1F54 ὔ GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA 0x1F55 ὕ GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA 0x1F56 ὖ GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI 0x1F57 ὗ GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI 0x1F58 ὘ 0x1F59 Ὑ GREEK CAPITAL LETTER UPSILON WITH DASIA 0x1F5A ὚ 0x1F5B Ὓ GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA 0x1F5C ὜ 0x1F5D Ὕ GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA 0x1F5E ὞ 0x1F5F Ὗ GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI 0x1F60 ὠ GREEK SMALL LETTER OMEGA WITH PSILI 0x1F61 ὡ GREEK SMALL LETTER OMEGA WITH DASIA 0x1F62 ὢ GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA 0x1F63 ὣ GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA 0x1F64 ὤ GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA 0x1F65 ὥ GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA 0x1F66 ὦ GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI 0x1F67 ὧ GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI 0x1F68 Ὠ GREEK CAPITAL LETTER OMEGA WITH PSILI 0x1F69 Ὡ GREEK CAPITAL LETTER OMEGA WITH DASIA 0x1F6A Ὢ GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA 0x1F6B Ὣ GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA 0x1F6C Ὤ GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA 0x1F6D Ὥ GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA 0x1F6E Ὦ GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI 0x1F6F Ὧ GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI 0x1F70 ὰ GREEK SMALL LETTER ALPHA WITH VARIA 0x1F71 ά GREEK SMALL LETTER ALPHA WITH OXIA 0x1F72 ὲ GREEK SMALL LETTER EPSILON WITH VARIA 0x1F73 έ GREEK SMALL LETTER EPSILON WITH OXIA 0x1F74 ὴ GREEK SMALL LETTER ETA WITH VARIA 0x1F75 ή GREEK SMALL LETTER ETA WITH OXIA 0x1F76 ὶ GREEK SMALL LETTER IOTA WITH VARIA 0x1F77 ί GREEK SMALL LETTER IOTA WITH OXIA 0x1F78 ὸ GREEK SMALL LETTER OMICRON WITH VARIA 0x1F79 ό GREEK SMALL LETTER OMICRON WITH OXIA 0x1F7A ὺ GREEK SMALL LETTER UPSILON WITH VARIA 0x1F7B ύ GREEK SMALL LETTER UPSILON WITH OXIA 0x1F7C ὼ GREEK SMALL LETTER OMEGA WITH VARIA 0x1F7D ώ GREEK SMALL LETTER OMEGA WITH OXIA 0x1F7E ὾ 0x1F7F ὿ 0x1F80 ᾀ GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI 0x1F81 ᾁ GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI 0x1F82 ᾂ GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI 0x1F83 ᾃ GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI 0x1F84 ᾄ GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI 0x1F85 ᾅ GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI 0x1F86 ᾆ GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 0x1F87 ᾇ GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 0x1F88 ᾈ GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 0x1F89 ᾉ GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 0x1F8A ᾊ GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 0x1F8B ᾋ GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 0x1F8C ᾌ GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 0x1F8D ᾍ GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 0x1F8E ᾎ GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 0x1F8F ᾏ GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 0x1F90 ᾐ GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI 0x1F91 ᾑ GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI 0x1F92 ᾒ GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI 0x1F93 ᾓ GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI 0x1F94 ᾔ GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI 0x1F95 ᾕ GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI 0x1F96 ᾖ GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 0x1F97 ᾗ GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 0x1F98 ᾘ GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 0x1F99 ᾙ GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 0x1F9A ᾚ GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 0x1F9B ᾛ GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 0x1F9C ᾜ GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 0x1F9D ᾝ GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 0x1F9E ᾞ GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 0x1F9F ᾟ GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 0x1FA0 ᾠ GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI 0x1FA1 ᾡ GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI 0x1FA2 ᾢ GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI 0x1FA3 ᾣ GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI 0x1FA4 ᾤ GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI 0x1FA5 ᾥ GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI 0x1FA6 ᾦ GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 0x1FA7 ᾧ GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 0x1FA8 ᾨ GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 0x1FA9 ᾩ GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 0x1FAA ᾪ GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 0x1FAB ᾫ GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 0x1FAC ᾬ GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 0x1FAD ᾭ GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 0x1FAE ᾮ GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 0x1FAF ᾯ GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 0x1FB0 ᾰ GREEK SMALL LETTER ALPHA WITH VRACHY 0x1FB1 ᾱ GREEK SMALL LETTER ALPHA WITH MACRON 0x1FB2 ᾲ GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI 0x1FB3 ᾳ GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI 0x1FB4 ᾴ GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI 0x1FB5 ᾵ 0x1FB6 ᾶ GREEK SMALL LETTER ALPHA WITH PERISPOMENI 0x1FB7 ᾷ GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI 0x1FB8 Ᾰ GREEK CAPITAL LETTER ALPHA WITH VRACHY 0x1FB9 Ᾱ GREEK CAPITAL LETTER ALPHA WITH MACRON 0x1FBA Ὰ GREEK CAPITAL LETTER ALPHA WITH VARIA 0x1FBB Ά GREEK CAPITAL LETTER ALPHA WITH OXIA 0x1FBC ᾼ GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 0x1FBD ᾽ GREEK KORONIS 0x1FBE ι GREEK PROSGEGRAMMENI 0x1FBF ᾿ GREEK PSILI 0x1FC0 ῀ GREEK PERISPOMENI 0x1FC1 ῁ GREEK DIALYTIKA AND PERISPOMENI 0x1FC2 ῂ GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI 0x1FC3 ῃ GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI 0x1FC4 ῄ GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI 0x1FC5 ῅ 0x1FC6 ῆ GREEK SMALL LETTER ETA WITH PERISPOMENI 0x1FC7 ῇ GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI 0x1FC8 Ὲ GREEK CAPITAL LETTER EPSILON WITH VARIA 0x1FC9 Έ GREEK CAPITAL LETTER EPSILON WITH OXIA 0x1FCA Ὴ GREEK CAPITAL LETTER ETA WITH VARIA 0x1FCB Ή GREEK CAPITAL LETTER ETA WITH OXIA 0x1FCC ῌ GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 0x1FCD ῍ GREEK PSILI AND VARIA 0x1FCE ῎ GREEK PSILI AND OXIA 0x1FCF ῏ GREEK PSILI AND PERISPOMENI 0x1FD0 ῐ GREEK SMALL LETTER IOTA WITH VRACHY 0x1FD1 ῑ GREEK SMALL LETTER IOTA WITH MACRON 0x1FD2 ῒ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA 0x1FD3 ΐ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA 0x1FD4 ῔ 0x1FD5 ῕ 0x1FD6 ῖ GREEK SMALL LETTER IOTA WITH PERISPOMENI 0x1FD7 ῗ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI 0x1FD8 Ῐ GREEK CAPITAL LETTER IOTA WITH VRACHY 0x1FD9 Ῑ GREEK CAPITAL LETTER IOTA WITH MACRON 0x1FDA Ὶ GREEK CAPITAL LETTER IOTA WITH VARIA 0x1FDB Ί GREEK CAPITAL LETTER IOTA WITH OXIA 0x1FDC ῜ 0x1FDD ῝ GREEK DASIA AND VARIA 0x1FDE ῞ GREEK DASIA AND OXIA 0x1FDF ῟ GREEK DASIA AND PERISPOMENI 0x1FE0 ῠ GREEK SMALL LETTER UPSILON WITH VRACHY 0x1FE1 ῡ GREEK SMALL LETTER UPSILON WITH MACRON 0x1FE2 ῢ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA 0x1FE3 ΰ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA 0x1FE4 ῤ GREEK SMALL LETTER RHO WITH PSILI 0x1FE5 ῥ GREEK SMALL LETTER RHO WITH DASIA 0x1FE6 ῦ GREEK SMALL LETTER UPSILON WITH PERISPOMENI 0x1FE7 ῧ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI 0x1FE8 Ῠ GREEK CAPITAL LETTER UPSILON WITH VRACHY 0x1FE9 Ῡ GREEK CAPITAL LETTER UPSILON WITH MACRON 0x1FEA Ὺ GREEK CAPITAL LETTER UPSILON WITH VARIA 0x1FEB Ύ GREEK CAPITAL LETTER UPSILON WITH OXIA 0x1FEC Ῥ GREEK CAPITAL LETTER RHO WITH DASIA 0x1FED ῭ GREEK DIALYTIKA AND VARIA 0x1FEE ΅ GREEK DIALYTIKA AND OXIA 0x1FEF ` GREEK VARIA 0x1FF0 ῰ 0x1FF1 ῱ 0x1FF2 ῲ GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI 0x1FF3 ῳ GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI 0x1FF4 ῴ GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI 0x1FF5 ῵ 0x1FF6 ῶ GREEK SMALL LETTER OMEGA WITH PERISPOMENI 0x1FF7 ῷ GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI 0x1FF8 Ὸ GREEK CAPITAL LETTER OMICRON WITH VARIA 0x1FF9 Ό GREEK CAPITAL LETTER OMICRON WITH OXIA 0x1FFA Ὼ GREEK CAPITAL LETTER OMEGA WITH VARIA 0x1FFB Ώ GREEK CAPITAL LETTER OMEGA WITH OXIA 0x1FFC ῼ GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 0x1FFD ´ GREEK OXIA 0x1FFE ῾ GREEK DASIA 0x1FFF ῿Lib/gftools/encodings/greek_unique-glyphs.nam000066400000000000000000000124051376445505300217140ustar00rootroot000000000000000x0370 Ͱ GREEK CAPITAL LETTER HETA 0x0371 ͱ GREEK SMALL LETTER HETA 0x0372 Ͳ GREEK CAPITAL LETTER ARCHAIC SAMPI 0x0373 ͳ GREEK SMALL LETTER ARCHAIC SAMPI 0x0374 ʹ GREEK NUMERAL SIGN 0x0375 ͵ GREEK LOWER NUMERAL SIGN 0x0376 Ͷ GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA 0x0377 ͷ GREEK SMALL LETTER PAMPHYLIAN DIGAMMA 0x0378 ͸ 0x0379 ͹ 0x037A ͺ GREEK YPOGEGRAMMENI 0x037B ͻ GREEK SMALL REVERSED LUNATE SIGMA SYMBOL 0x037C ͼ GREEK SMALL DOTTED LUNATE SIGMA SYMBOL 0x037D ͽ GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL 0x037E ; GREEK QUESTION MARK 0x037F Ϳ 0x0380 ΀ 0x0381 ΁ 0x0382 ΂ 0x0383 ΃ 0x0384 ΄ GREEK TONOS 0x0385 ΅ GREEK DIALYTIKA TONOS 0x0386 Ά GREEK CAPITAL LETTER ALPHA WITH TONOS 0x0387 · GREEK ANO TELEIA 0x0388 Έ GREEK CAPITAL LETTER EPSILON WITH TONOS 0x0389 Ή GREEK CAPITAL LETTER ETA WITH TONOS 0x038A Ί GREEK CAPITAL LETTER IOTA WITH TONOS 0x038B ΋ 0x038C Ό GREEK CAPITAL LETTER OMICRON WITH TONOS 0x038D ΍ 0x038E Ύ GREEK CAPITAL LETTER UPSILON WITH TONOS 0x038F Ώ GREEK CAPITAL LETTER OMEGA WITH TONOS 0x0390 ΐ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 0x0391 Α GREEK CAPITAL LETTER ALPHA 0x0392 Β GREEK CAPITAL LETTER BETA 0x0393 Γ GREEK CAPITAL LETTER GAMMA 0x0394 Δ GREEK CAPITAL LETTER DELTA 0x0395 Ε GREEK CAPITAL LETTER EPSILON 0x0396 Ζ GREEK CAPITAL LETTER ZETA 0x0397 Η GREEK CAPITAL LETTER ETA 0x0398 Θ GREEK CAPITAL LETTER THETA 0x0399 Ι GREEK CAPITAL LETTER IOTA 0x039A Κ GREEK CAPITAL LETTER KAPPA 0x039B Λ GREEK CAPITAL LETTER LAMDA 0x039C Μ GREEK CAPITAL LETTER MU 0x039D Ν GREEK CAPITAL LETTER NU 0x039E Ξ GREEK CAPITAL LETTER XI 0x039F Ο GREEK CAPITAL LETTER OMICRON 0x03A0 Π GREEK CAPITAL LETTER PI 0x03A1 Ρ GREEK CAPITAL LETTER RHO 0x03A2 ΢ 0x03A3 Σ GREEK CAPITAL LETTER SIGMA 0x03A4 Τ GREEK CAPITAL LETTER TAU 0x03A5 Υ GREEK CAPITAL LETTER UPSILON 0x03A6 Φ GREEK CAPITAL LETTER PHI 0x03A7 Χ GREEK CAPITAL LETTER CHI 0x03A8 Ψ GREEK CAPITAL LETTER PSI 0x03A9 Ω GREEK CAPITAL LETTER OMEGA 0x03AA Ϊ GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 0x03AB Ϋ GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 0x03AC ά GREEK SMALL LETTER ALPHA WITH TONOS 0x03AD έ GREEK SMALL LETTER EPSILON WITH TONOS 0x03AE ή GREEK SMALL LETTER ETA WITH TONOS 0x03AF ί GREEK SMALL LETTER IOTA WITH TONOS 0x03B0 ΰ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 0x03B1 α GREEK SMALL LETTER ALPHA 0x03B2 β GREEK SMALL LETTER BETA 0x03B3 γ GREEK SMALL LETTER GAMMA 0x03B4 δ GREEK SMALL LETTER DELTA 0x03B5 ε GREEK SMALL LETTER EPSILON 0x03B6 ζ GREEK SMALL LETTER ZETA 0x03B7 η GREEK SMALL LETTER ETA 0x03B8 θ GREEK SMALL LETTER THETA 0x03B9 ι GREEK SMALL LETTER IOTA 0x03BA κ GREEK SMALL LETTER KAPPA 0x03BB λ GREEK SMALL LETTER LAMDA 0x03BC μ GREEK SMALL LETTER MU 0x03BD ν GREEK SMALL LETTER NU 0x03BE ξ GREEK SMALL LETTER XI 0x03BF ο GREEK SMALL LETTER OMICRON 0x03C0 π GREEK SMALL LETTER PI 0x03C1 ρ GREEK SMALL LETTER RHO 0x03C2 ς GREEK SMALL LETTER FINAL SIGMA 0x03C3 σ GREEK SMALL LETTER SIGMA 0x03C4 τ GREEK SMALL LETTER TAU 0x03C5 υ GREEK SMALL LETTER UPSILON 0x03C6 φ GREEK SMALL LETTER PHI 0x03C7 χ GREEK SMALL LETTER CHI 0x03C8 ψ GREEK SMALL LETTER PSI 0x03C9 ω GREEK SMALL LETTER OMEGA 0x03CA ϊ GREEK SMALL LETTER IOTA WITH DIALYTIKA 0x03CB ϋ GREEK SMALL LETTER UPSILON WITH DIALYTIKA 0x03CC ό GREEK SMALL LETTER OMICRON WITH TONOS 0x03CD ύ GREEK SMALL LETTER UPSILON WITH TONOS 0x03CE ώ GREEK SMALL LETTER OMEGA WITH TONOS 0x03CF Ϗ GREEK CAPITAL KAI SYMBOL 0x03D0 ϐ GREEK BETA SYMBOL 0x03D1 ϑ GREEK THETA SYMBOL 0x03D2 ϒ GREEK UPSILON WITH HOOK SYMBOL 0x03D3 ϓ GREEK UPSILON WITH ACUTE AND HOOK SYMBOL 0x03D4 ϔ GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL 0x03D5 ϕ GREEK PHI SYMBOL 0x03D6 ϖ GREEK PI SYMBOL 0x03D7 ϗ GREEK KAI SYMBOL 0x03D8 Ϙ GREEK LETTER ARCHAIC KOPPA 0x03D9 ϙ GREEK SMALL LETTER ARCHAIC KOPPA 0x03DA Ϛ GREEK LETTER STIGMA 0x03DB ϛ GREEK SMALL LETTER STIGMA 0x03DC Ϝ GREEK LETTER DIGAMMA 0x03DD ϝ GREEK SMALL LETTER DIGAMMA 0x03DE Ϟ GREEK LETTER KOPPA 0x03DF ϟ GREEK SMALL LETTER KOPPA 0x03E0 Ϡ GREEK LETTER SAMPI 0x03E1 ϡ GREEK SMALL LETTER SAMPI 0x03E2 Ϣ COPTIC CAPITAL LETTER SHEI 0x03E3 ϣ COPTIC SMALL LETTER SHEI 0x03E4 Ϥ COPTIC CAPITAL LETTER FEI 0x03E5 ϥ COPTIC SMALL LETTER FEI 0x03E6 Ϧ COPTIC CAPITAL LETTER KHEI 0x03E7 ϧ COPTIC SMALL LETTER KHEI 0x03E8 Ϩ COPTIC CAPITAL LETTER HORI 0x03E9 ϩ COPTIC SMALL LETTER HORI 0x03EA Ϫ COPTIC CAPITAL LETTER GANGIA 0x03EB ϫ COPTIC SMALL LETTER GANGIA 0x03EC Ϭ COPTIC CAPITAL LETTER SHIMA 0x03ED ϭ COPTIC SMALL LETTER SHIMA 0x03EE Ϯ COPTIC CAPITAL LETTER DEI 0x03EF ϯ COPTIC SMALL LETTER DEI 0x03F0 ϰ GREEK KAPPA SYMBOL 0x03F1 ϱ GREEK RHO SYMBOL 0x03F2 ϲ GREEK LUNATE SIGMA SYMBOL 0x03F3 ϳ GREEK LETTER YOT 0x03F4 ϴ GREEK CAPITAL THETA SYMBOL 0x03F5 ϵ GREEK LUNATE EPSILON SYMBOL 0x03F6 ϶ GREEK REVERSED LUNATE EPSILON SYMBOL 0x03F7 Ϸ GREEK CAPITAL LETTER SHO 0x03F8 ϸ GREEK SMALL LETTER SHO 0x03F9 Ϲ GREEK CAPITAL LUNATE SIGMA SYMBOL 0x03FA Ϻ GREEK CAPITAL LETTER SAN 0x03FB ϻ GREEK SMALL LETTER SAN 0x03FC ϼ GREEK RHO WITH STROKE SYMBOL 0x03FD Ͻ GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL 0x03FE Ͼ GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL 0x03FF Ͽ GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOLLib/gftools/encodings/gujarati_unique-glyphs.nam000066400000000000000000000064731376445505300224350ustar00rootroot000000000000000x0964 । DEVANAGARI DANDA 0x0965 ॥ DEVANAGARI DOUBLE DANDA 0x0A81 ઁ GUJARATI SIGN CANDRABINDU 0x0A82 ં GUJARATI SIGN ANUSVARA 0x0A83 ઃ GUJARATI SIGN VISARGA 0x0A85 અ GUJARATI LETTER A 0x0A86 આ GUJARATI LETTER AA 0x0A87 ઇ GUJARATI LETTER I 0x0A88 ઈ GUJARATI LETTER II 0x0A89 ઉ GUJARATI LETTER U 0x0A8A ઊ GUJARATI LETTER UU 0x0A8B ઋ GUJARATI LETTER VOCALIC R 0x0A8C ઌ GUJARATI LETTER VOCALIC L 0x0A8D ઍ GUJARATI VOWEL CANDRA E 0x0A8F એ GUJARATI LETTER E 0x0A90 ઐ GUJARATI LETTER AI 0x0A91 ઑ GUJARATI VOWEL CANDRA O 0x0A93 ઓ GUJARATI LETTER O 0x0A94 ઔ GUJARATI LETTER AU 0x0A95 ક GUJARATI LETTER KA 0x0A96 ખ GUJARATI LETTER KHA 0x0A97 ગ GUJARATI LETTER GA 0x0A98 ઘ GUJARATI LETTER GHA 0x0A99 ઙ GUJARATI LETTER NGA 0x0A9A ચ GUJARATI LETTER CA 0x0A9B છ GUJARATI LETTER CHA 0x0A9C જ GUJARATI LETTER JA 0x0A9D ઝ GUJARATI LETTER JHA 0x0A9E ઞ GUJARATI LETTER NYA 0x0A9F ટ GUJARATI LETTER TTA 0x0AA0 ઠ GUJARATI LETTER TTHA 0x0AA1 ડ GUJARATI LETTER DDA 0x0AA2 ઢ GUJARATI LETTER DDHA 0x0AA3 ણ GUJARATI LETTER NNA 0x0AA4 ત GUJARATI LETTER TA 0x0AA5 થ GUJARATI LETTER THA 0x0AA6 દ GUJARATI LETTER DA 0x0AA7 ધ GUJARATI LETTER DHA 0x0AA8 ન GUJARATI LETTER NA 0x0AAA પ GUJARATI LETTER PA 0x0AAB ફ GUJARATI LETTER PHA 0x0AAC બ GUJARATI LETTER BA 0x0AAD ભ GUJARATI LETTER BHA 0x0AAE મ GUJARATI LETTER MA 0x0AAF ય GUJARATI LETTER YA 0x0AB0 ર GUJARATI LETTER RA 0x0AB2 લ GUJARATI LETTER LA 0x0AB3 ળ GUJARATI LETTER LLA 0x0AB5 વ GUJARATI LETTER VA 0x0AB6 શ GUJARATI LETTER SHA 0x0AB7 ષ GUJARATI LETTER SSA 0x0AB8 સ GUJARATI LETTER SA 0x0AB9 હ GUJARATI LETTER HA 0x0ABC ઼ GUJARATI SIGN NUKTA 0x0ABD ઽ GUJARATI SIGN AVAGRAHA 0x0ABE ા GUJARATI VOWEL SIGN AA 0x0ABF િ GUJARATI VOWEL SIGN I 0x0AC0 ી GUJARATI VOWEL SIGN II 0x0AC1 ુ GUJARATI VOWEL SIGN U 0x0AC2 ૂ GUJARATI VOWEL SIGN UU 0x0AC3 ૃ GUJARATI VOWEL SIGN VOCALIC R 0x0AC4 ૄ GUJARATI VOWEL SIGN VOCALIC RR 0x0AC5 ૅ GUJARATI VOWEL SIGN CANDRA E 0x0AC7 ે GUJARATI VOWEL SIGN E 0x0AC8 ૈ GUJARATI VOWEL SIGN AI 0x0AC9 ૉ GUJARATI VOWEL SIGN CANDRA O 0x0ACB ો GUJARATI VOWEL SIGN O 0x0ACC ૌ GUJARATI VOWEL SIGN AU 0x0ACD ્ GUJARATI SIGN VIRAMA 0x0AD0 ૐ GUJARATI OM 0x0AE0 ૠ GUJARATI LETTER VOCALIC RR 0x0AE1 ૡ GUJARATI LETTER VOCALIC LL 0x0AE2 ૢ GUJARATI VOWEL SIGN VOCALIC L 0x0AE3 ૣ GUJARATI VOWEL SIGN VOCALIC LL 0x0AE6 ૦ GUJARATI DIGIT ZERO 0x0AE7 ૧ GUJARATI DIGIT ONE 0x0AE8 ૨ GUJARATI DIGIT TWO 0x0AE9 ૩ GUJARATI DIGIT THREE 0x0AEA ૪ GUJARATI DIGIT FOUR 0x0AEB ૫ GUJARATI DIGIT FIVE 0x0AEC ૬ GUJARATI DIGIT SIX 0x0AED ૭ GUJARATI DIGIT SEVEN 0x0AEE ૮ GUJARATI DIGIT EIGHT 0x0AEF ૯ GUJARATI DIGIT NINE 0x0AF0 ૰ 0x0AF1 ૱ GUJARATI RUPEE SIGN 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x200D ‍ ZERO WIDTH JOINER 0x20B9 ₹ 0x25CC ◌ DOTTED CIRCLE 0xA830 ꠰ NORTH INDIC FRACTION ONE QUARTER 0xA831 ꠱ NORTH INDIC FRACTION ONE HALF 0xA832 ꠲ NORTH INDIC FRACTION THREE QUARTERS 0xA833 ꠳ NORTH INDIC FRACTION ONE SIXTEENTH 0xA834 ꠴ NORTH INDIC FRACTION ONE EIGHTH 0xA835 ꠵ NORTH INDIC FRACTION THREE SIXTEENTHS 0xA836 ꠶ NORTH INDIC QUARTER MARK 0xA837 ꠷ NORTH INDIC PLACEHOLDER MARK 0xA838 ꠸ NORTH INDIC RUPEE MARK 0xA839 ꠹ NORTH INDIC QUANTITY MARKLib/gftools/encodings/gurmukhi_unique-glyphs.nam000066400000000000000000000061231376445505300224520ustar00rootroot000000000000000x0964 । DEVANAGARI DANDA 0x0965 ॥ DEVANAGARI DOUBLE DANDA 0x0A01 ਁ GURMUKHI SIGN ADAK BINDI 0x0A02 ਂ GURMUKHI SIGN BINDI 0x0A03 ਃ GURMUKHI SIGN VISARGA 0x0A05 ਅ GURMUKHI LETTER A 0x0A06 ਆ GURMUKHI LETTER AA 0x0A07 ਇ GURMUKHI LETTER I 0x0A08 ਈ GURMUKHI LETTER II 0x0A09 ਉ GURMUKHI LETTER U 0x0A0A ਊ GURMUKHI LETTER UU 0x0A0F ਏ GURMUKHI LETTER EE 0x0A10 ਐ GURMUKHI LETTER AI 0x0A13 ਓ GURMUKHI LETTER OO 0x0A14 ਔ GURMUKHI LETTER AU 0x0A15 ਕ GURMUKHI LETTER KA 0x0A16 ਖ GURMUKHI LETTER KHA 0x0A17 ਗ GURMUKHI LETTER GA 0x0A18 ਘ GURMUKHI LETTER GHA 0x0A19 ਙ GURMUKHI LETTER NGA 0x0A1A ਚ GURMUKHI LETTER CA 0x0A1B ਛ GURMUKHI LETTER CHA 0x0A1C ਜ GURMUKHI LETTER JA 0x0A1D ਝ GURMUKHI LETTER JHA 0x0A1E ਞ GURMUKHI LETTER NYA 0x0A1F ਟ GURMUKHI LETTER TTA 0x0A20 ਠ GURMUKHI LETTER TTHA 0x0A21 ਡ GURMUKHI LETTER DDA 0x0A22 ਢ GURMUKHI LETTER DDHA 0x0A23 ਣ GURMUKHI LETTER NNA 0x0A24 ਤ GURMUKHI LETTER TA 0x0A25 ਥ GURMUKHI LETTER THA 0x0A26 ਦ GURMUKHI LETTER DA 0x0A27 ਧ GURMUKHI LETTER DHA 0x0A28 ਨ GURMUKHI LETTER NA 0x0A2A ਪ GURMUKHI LETTER PA 0x0A2B ਫ GURMUKHI LETTER PHA 0x0A2C ਬ GURMUKHI LETTER BA 0x0A2D ਭ GURMUKHI LETTER BHA 0x0A2E ਮ GURMUKHI LETTER MA 0x0A2F ਯ GURMUKHI LETTER YA 0x0A30 ਰ GURMUKHI LETTER RA 0x0A32 ਲ GURMUKHI LETTER LA 0x0A33 ਲ਼ GURMUKHI LETTER LLA 0x0A35 ਵ GURMUKHI LETTER VA 0x0A36 ਸ਼ GURMUKHI LETTER SHA 0x0A38 ਸ GURMUKHI LETTER SA 0x0A39 ਹ GURMUKHI LETTER HA 0x0A3C ਼ GURMUKHI SIGN NUKTA 0x0A3E ਾ GURMUKHI VOWEL SIGN AA 0x0A3F ਿ GURMUKHI VOWEL SIGN I 0x0A40 ੀ GURMUKHI VOWEL SIGN II 0x0A41 ੁ GURMUKHI VOWEL SIGN U 0x0A42 ੂ GURMUKHI VOWEL SIGN UU 0x0A47 ੇ GURMUKHI VOWEL SIGN EE 0x0A48 ੈ GURMUKHI VOWEL SIGN AI 0x0A4B ੋ GURMUKHI VOWEL SIGN OO 0x0A4C ੌ GURMUKHI VOWEL SIGN AU 0x0A4D ੍ GURMUKHI SIGN VIRAMA 0x0A51 ੑ GURMUKHI SIGN UDAAT 0x0A59 ਖ਼ GURMUKHI LETTER KHHA 0x0A5A ਗ਼ GURMUKHI LETTER GHHA 0x0A5B ਜ਼ GURMUKHI LETTER ZA 0x0A5C ੜ GURMUKHI LETTER RRA 0x0A5E ਫ਼ GURMUKHI LETTER FA 0x0A66 ੦ GURMUKHI DIGIT ZERO 0x0A67 ੧ GURMUKHI DIGIT ONE 0x0A68 ੨ GURMUKHI DIGIT TWO 0x0A69 ੩ GURMUKHI DIGIT THREE 0x0A6A ੪ GURMUKHI DIGIT FOUR 0x0A6B ੫ GURMUKHI DIGIT FIVE 0x0A6C ੬ GURMUKHI DIGIT SIX 0x0A6D ੭ GURMUKHI DIGIT SEVEN 0x0A6E ੮ GURMUKHI DIGIT EIGHT 0x0A6F ੯ GURMUKHI DIGIT NINE 0x0A70 ੰ GURMUKHI TIPPI 0x0A71 ੱ GURMUKHI ADDAK 0x0A72 ੲ GURMUKHI IRI 0x0A73 ੳ GURMUKHI URA 0x0A74 ੴ GURMUKHI EK ONKAR 0x0A75 ੵ GURMUKHI SIGN YAKASH 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x200D ‍ ZERO WIDTH JOINER 0x20B9 ₹ 0x25CC ◌ DOTTED CIRCLE 0x262C ☬ ADI SHAKTI 0xA830 ꠰ NORTH INDIC FRACTION ONE QUARTER 0xA831 ꠱ NORTH INDIC FRACTION ONE HALF 0xA832 ꠲ NORTH INDIC FRACTION THREE QUARTERS 0xA833 ꠳ NORTH INDIC FRACTION ONE SIXTEENTH 0xA834 ꠴ NORTH INDIC FRACTION ONE EIGHTH 0xA835 ꠵ NORTH INDIC FRACTION THREE SIXTEENTHS 0xA836 ꠶ NORTH INDIC QUARTER MARK 0xA837 ꠷ NORTH INDIC PLACEHOLDER MARK 0xA838 ꠸ NORTH INDIC RUPEE MARK 0xA839 ꠹ NORTH INDIC QUANTITY MARKLib/gftools/encodings/hebrew_unique-glyphs.nam000066400000000000000000000050461376445505300220760ustar00rootroot00000000000000# 2015-01-08: adding based on list Roozbeh provided 2014-10-10 0x20AA NEW SHEQEL SIGN 0x25CC DOTTED CIRCLE 0x05B0 HEBREW POINT SHEVA 0x05B1 HEBREW POINT HATAF SEGOL 0x05B2 HEBREW POINT HATAF PATAH 0x05B3 HEBREW POINT HATAF QAMATS 0x05B4 HEBREW POINT HIRIQ 0x05B5 HEBREW POINT TSERE 0x05B6 HEBREW POINT SEGOL 0x05B7 HEBREW POINT PATAH 0x05B8 HEBREW POINT QAMATS 0x05B9 HEBREW POINT HOLAM 0x05BA HEBREW POINT HOLAM HASER FOR VAV 0x05BB HEBREW POINT QUBUTS 0x05BC HEBREW POINT DAGESH OR MAPIQ 0x05BE HEBREW PUNCTUATION MAQAF 0x05C0 HEBREW PUNCTUATION PASEQ 0x05C1 HEBREW POINT SHIN DOT 0x05C2 HEBREW POINT SIN DOT 0x05C3 HEBREW PUNCTUATION SOF PASUQ 0x05C7 HEBREW POINT QAMATS QATAN 0x05D0 HEBREW LETTER ALEF 0x05D1 HEBREW LETTER BET 0x05D2 HEBREW LETTER GIMEL 0x05D3 HEBREW LETTER DALET 0x05D4 HEBREW LETTER HE 0x05D5 HEBREW LETTER VAV 0x05D6 HEBREW LETTER ZAYIN 0x05D7 HEBREW LETTER HET 0x05D8 HEBREW LETTER TET 0x05D9 HEBREW LETTER YOD 0x05DA HEBREW LETTER FINAL KAF 0x05DB HEBREW LETTER KAF 0x05DC HEBREW LETTER LAMED 0x05DD HEBREW LETTER FINAL MEM 0x05DE HEBREW LETTER MEM 0x05DF HEBREW LETTER FINAL NUN 0x05E0 HEBREW LETTER NUN 0x05E1 HEBREW LETTER SAMEKH 0x05E2 HEBREW LETTER AYIN 0x05E3 HEBREW LETTER FINAL PE 0x05E4 HEBREW LETTER PE 0x05E5 HEBREW LETTER FINAL TSADI 0x05E6 HEBREW LETTER TSADI 0x05E7 HEBREW LETTER QOF 0x05E8 HEBREW LETTER RESH 0x05E9 HEBREW LETTER SHIN 0x05EA HEBREW LETTER TAV 0x05F3 HEBREW PUNCTUATION GERESH 0x05F4 HEBREW PUNCTUATION GERSHAYIM 0xFB2A HEBREW LETTER SHIN WITH SHIN DOT 0xFB2B HEBREW LETTER SHIN WITH SIN DOT 0xFB2C HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT 0xFB2D HEBREW LETTER SHIN WITH DAGESH AND SIN DOT 0xFB2E HEBREW LETTER ALEF WITH PATAH 0xFB2F HEBREW LETTER ALEF WITH QAMATS 0xFB30 HEBREW LETTER ALEF WITH MAPIQ 0xFB31 HEBREW LETTER BET WITH DAGESH 0xFB32 HEBREW LETTER GIMEL WITH DAGESH 0xFB33 HEBREW LETTER DALET WITH DAGESH 0xFB34 HEBREW LETTER HE WITH MAPIQ 0xFB35 HEBREW LETTER VAV WITH DAGESH 0xFB36 HEBREW LETTER ZAYIN WITH DAGESH 0xFB38 HEBREW LETTER TET WITH DAGESH 0xFB39 HEBREW LETTER YOD WITH DAGESH 0xFB3A HEBREW LETTER FINAL KAF WITH DAGESH 0xFB3B HEBREW LETTER KAF WITH DAGESH 0xFB3C HEBREW LETTER LAMED WITH DAGESH 0xFB3E HEBREW LETTER MEM WITH DAGESH 0xFB40 HEBREW LETTER NUN WITH DAGESH 0xFB41 HEBREW LETTER SAMEKH WITH DAGESH 0xFB43 HEBREW LETTER FINAL PE WITH DAGESH 0xFB44 HEBREW LETTER PE WITH DAGESH 0xFB46 HEBREW LETTER TSADI WITH DAGESH 0xFB47 HEBREW LETTER QOF WITH DAGESH 0xFB48 HEBREW LETTER RESH WITH DAGESH 0xFB49 HEBREW LETTER SHIN WITH DAGESH 0xFB4A HEBREW LETTER TAV WITH DAGESH 0xFB4B HEBREW LETTER VAV WITH HOLAM Lib/gftools/encodings/japanese_unique-glyphs.nam000066400000000000000000002621631376445505300224150ustar00rootroot000000000000000x3000 IDEOGRAPHIC SPACE 0x3001 IDEOGRAPHIC COMMA 0x3002 IDEOGRAPHIC FULL STOP 0x3003 DITTO MARK 0x3005 IDEOGRAPHIC ITERATION MARK 0x3006 IDEOGRAPHIC CLOSING MARK 0x3007 IDEOGRAPHIC NUMBER ZERO 0x3008 LEFT ANGLE BRACKET 0x3009 RIGHT ANGLE BRACKET 0x300A LEFT DOUBLE ANGLE BRACKET 0x300B RIGHT DOUBLE ANGLE BRACKET 0x300C LEFT CORNER BRACKET 0x300D RIGHT CORNER BRACKET 0x300E LEFT WHITE CORNER BRACKET 0x300F RIGHT WHITE CORNER BRACKET 0x3010 LEFT BLACK LENTICULAR BRACKET 0x3011 RIGHT BLACK LENTICULAR BRACKET 0x3012 POSTAL MARK 0x3013 GETA MARK 0x3014 LEFT TORTOISE SHELL BRACKET 0x3015 RIGHT TORTOISE SHELL BRACKET 0x301C WAVE DASH 0x3041 HIRAGANA LETTER SMALL A 0x3042 HIRAGANA LETTER A 0x3043 HIRAGANA LETTER SMALL I 0x3044 HIRAGANA LETTER I 0x3045 HIRAGANA LETTER SMALL U 0x3046 HIRAGANA LETTER U 0x3047 HIRAGANA LETTER SMALL E 0x3048 HIRAGANA LETTER E 0x3049 HIRAGANA LETTER SMALL O 0x304A HIRAGANA LETTER O 0x304B HIRAGANA LETTER KA 0x304C HIRAGANA LETTER GA 0x304D HIRAGANA LETTER KI 0x304E HIRAGANA LETTER GI 0x304F HIRAGANA LETTER KU 0x3050 HIRAGANA LETTER GU 0x3051 HIRAGANA LETTER KE 0x3052 HIRAGANA LETTER GE 0x3053 HIRAGANA LETTER KO 0x3054 HIRAGANA LETTER GO 0x3055 HIRAGANA LETTER SA 0x3056 HIRAGANA LETTER ZA 0x3057 HIRAGANA LETTER SI 0x3058 HIRAGANA LETTER ZI 0x3059 HIRAGANA LETTER SU 0x305A HIRAGANA LETTER ZU 0x305B HIRAGANA LETTER SE 0x305C HIRAGANA LETTER ZE 0x305D HIRAGANA LETTER SO 0x305E HIRAGANA LETTER ZO 0x305F HIRAGANA LETTER TA 0x3060 HIRAGANA LETTER DA 0x3061 HIRAGANA LETTER TI 0x3062 HIRAGANA LETTER DI 0x3063 HIRAGANA LETTER SMALL TU 0x3064 HIRAGANA LETTER TU 0x3065 HIRAGANA LETTER DU 0x3066 HIRAGANA LETTER TE 0x3067 HIRAGANA LETTER DE 0x3068 HIRAGANA LETTER TO 0x3069 HIRAGANA LETTER DO 0x306A HIRAGANA LETTER NA 0x306B HIRAGANA LETTER NI 0x306C HIRAGANA LETTER NU 0x306D HIRAGANA LETTER NE 0x306E HIRAGANA LETTER NO 0x306F HIRAGANA LETTER HA 0x3070 HIRAGANA LETTER BA 0x3071 HIRAGANA LETTER PA 0x3072 HIRAGANA LETTER HI 0x3073 HIRAGANA LETTER BI 0x3074 HIRAGANA LETTER PI 0x3075 HIRAGANA LETTER HU 0x3076 HIRAGANA LETTER BU 0x3077 HIRAGANA LETTER PU 0x3078 HIRAGANA LETTER HE 0x3079 HIRAGANA LETTER BE 0x307A HIRAGANA LETTER PE 0x307B HIRAGANA LETTER HO 0x307C HIRAGANA LETTER BO 0x307D HIRAGANA LETTER PO 0x307E HIRAGANA LETTER MA 0x307F HIRAGANA LETTER MI 0x3080 HIRAGANA LETTER MU 0x3081 HIRAGANA LETTER ME 0x3082 HIRAGANA LETTER MO 0x3083 HIRAGANA LETTER SMALL YA 0x3084 HIRAGANA LETTER YA 0x3085 HIRAGANA LETTER SMALL YU 0x3086 HIRAGANA LETTER YU 0x3087 HIRAGANA LETTER SMALL YO 0x3088 HIRAGANA LETTER YO 0x3089 HIRAGANA LETTER RA 0x308A HIRAGANA LETTER RI 0x308B HIRAGANA LETTER RU 0x308C HIRAGANA LETTER RE 0x308D HIRAGANA LETTER RO 0x308E HIRAGANA LETTER SMALL WA 0x308F HIRAGANA LETTER WA 0x3090 HIRAGANA LETTER WI 0x3091 HIRAGANA LETTER WE 0x3092 HIRAGANA LETTER WO 0x3093 HIRAGANA LETTER N 0x309B KATAKANA-HIRAGANA VOICED SOUND MARK 0x309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK 0x309D HIRAGANA ITERATION MARK 0x309E HIRAGANA VOICED ITERATION MARK 0x30A1 KATAKANA LETTER SMALL A 0x30A2 KATAKANA LETTER A 0x30A3 KATAKANA LETTER SMALL I 0x30A4 KATAKANA LETTER I 0x30A5 KATAKANA LETTER SMALL U 0x30A6 KATAKANA LETTER U 0x30A7 KATAKANA LETTER SMALL E 0x30A8 KATAKANA LETTER E 0x30A9 KATAKANA LETTER SMALL O 0x30AA KATAKANA LETTER O 0x30AB KATAKANA LETTER KA 0x30AC KATAKANA LETTER GA 0x30AD KATAKANA LETTER KI 0x30AE KATAKANA LETTER GI 0x30AF KATAKANA LETTER KU 0x30B0 KATAKANA LETTER GU 0x30B1 KATAKANA LETTER KE 0x30B2 KATAKANA LETTER GE 0x30B3 KATAKANA LETTER KO 0x30B4 KATAKANA LETTER GO 0x30B5 KATAKANA LETTER SA 0x30B6 KATAKANA LETTER ZA 0x30B7 KATAKANA LETTER SI 0x30B8 KATAKANA LETTER ZI 0x30B9 KATAKANA LETTER SU 0x30BA KATAKANA LETTER ZU 0x30BB KATAKANA LETTER SE 0x30BC KATAKANA LETTER ZE 0x30BD KATAKANA LETTER SO 0x30BE KATAKANA LETTER ZO 0x30BF KATAKANA LETTER TA 0x30C0 KATAKANA LETTER DA 0x30C1 KATAKANA LETTER TI 0x30C2 KATAKANA LETTER DI 0x30C3 KATAKANA LETTER SMALL TU 0x30C4 KATAKANA LETTER TU 0x30C5 KATAKANA LETTER DU 0x30C6 KATAKANA LETTER TE 0x30C7 KATAKANA LETTER DE 0x30C8 KATAKANA LETTER TO 0x30C9 KATAKANA LETTER DO 0x30CA KATAKANA LETTER NA 0x30CB KATAKANA LETTER NI 0x30CC KATAKANA LETTER NU 0x30CD KATAKANA LETTER NE 0x30CE KATAKANA LETTER NO 0x30CF KATAKANA LETTER HA 0x30D0 KATAKANA LETTER BA 0x30D1 KATAKANA LETTER PA 0x30D2 KATAKANA LETTER HI 0x30D3 KATAKANA LETTER BI 0x30D4 KATAKANA LETTER PI 0x30D5 KATAKANA LETTER HU 0x30D6 KATAKANA LETTER BU 0x30D7 KATAKANA LETTER PU 0x30D8 KATAKANA LETTER HE 0x30D9 KATAKANA LETTER BE 0x30DA KATAKANA LETTER PE 0x30DB KATAKANA LETTER HO 0x30DC KATAKANA LETTER BO 0x30DD KATAKANA LETTER PO 0x30DE KATAKANA LETTER MA 0x30DF KATAKANA LETTER MI 0x30E0 KATAKANA LETTER MU 0x30E1 KATAKANA LETTER ME 0x30E2 KATAKANA LETTER MO 0x30E3 KATAKANA LETTER SMALL YA 0x30E4 KATAKANA LETTER YA 0x30E5 KATAKANA LETTER SMALL YU 0x30E6 KATAKANA LETTER YU 0x30E7 KATAKANA LETTER SMALL YO 0x30E8 KATAKANA LETTER YO 0x30E9 KATAKANA LETTER RA 0x30EA KATAKANA LETTER RI 0x30EB KATAKANA LETTER RU 0x30EC KATAKANA LETTER RE 0x30ED KATAKANA LETTER RO 0x30EE KATAKANA LETTER SMALL WA 0x30EF KATAKANA LETTER WA 0x30F0 KATAKANA LETTER WI 0x30F1 KATAKANA LETTER WE 0x30F2 KATAKANA LETTER WO 0x30F3 KATAKANA LETTER N 0x30F4 KATAKANA LETTER VU 0x30F5 KATAKANA LETTER SMALL KA 0x30F6 KATAKANA LETTER SMALL KE 0x30FB KATAKANA MIDDLE DOT 0x30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK 0x30FD KATAKANA ITERATION MARK 0x30FE KATAKANA VOICED ITERATION MARK 0x4E00 0x4E01 0x4E03 0x4E07 0x4E08 0x4E09 0x4E0A 0x4E0B 0x4E0D 0x4E0E 0x4E10 0x4E11 0x4E14 0x4E15 0x4E16 0x4E17 0x4E18 0x4E19 0x4E1E 0x4E21 0x4E26 0x4E2A 0x4E2D 0x4E31 0x4E32 0x4E36 0x4E38 0x4E39 0x4E3B 0x4E3C 0x4E3F 0x4E42 0x4E43 0x4E45 0x4E4B 0x4E4D 0x4E4E 0x4E4F 0x4E55 0x4E56 0x4E57 0x4E58 0x4E59 0x4E5D 0x4E5E 0x4E5F 0x4E62 0x4E71 0x4E73 0x4E7E 0x4E80 0x4E82 0x4E85 0x4E86 0x4E88 0x4E89 0x4E8A 0x4E8B 0x4E8C 0x4E8E 0x4E91 0x4E92 0x4E94 0x4E95 0x4E98 0x4E99 0x4E9B 0x4E9C 0x4E9E 0x4E9F 0x4EA0 0x4EA1 0x4EA2 0x4EA4 0x4EA5 0x4EA6 0x4EA8 0x4EAB 0x4EAC 0x4EAD 0x4EAE 0x4EB0 0x4EB3 0x4EB6 0x4EBA 0x4EC0 0x4EC1 0x4EC2 0x4EC4 0x4EC6 0x4EC7 0x4ECA 0x4ECB 0x4ECD 0x4ECE 0x4ECF 0x4ED4 0x4ED5 0x4ED6 0x4ED7 0x4ED8 0x4ED9 0x4EDD 0x4EDE 0x4EDF 0x4EE3 0x4EE4 0x4EE5 0x4EED 0x4EEE 0x4EF0 0x4EF2 0x4EF6 0x4EF7 0x4EFB 0x4F01 0x4F09 0x4F0A 0x4F0D 0x4F0E 0x4F0F 0x4F10 0x4F11 0x4F1A 0x4F1C 0x4F1D 0x4F2F 0x4F30 0x4F34 0x4F36 0x4F38 0x4F3A 0x4F3C 0x4F3D 0x4F43 0x4F46 0x4F47 0x4F4D 0x4F4E 0x4F4F 0x4F50 0x4F51 0x4F53 0x4F55 0x4F57 0x4F59 0x4F5A 0x4F5B 0x4F5C 0x4F5D 0x4F5E 0x4F69 0x4F6F 0x4F70 0x4F73 0x4F75 0x4F76 0x4F7B 0x4F7C 0x4F7F 0x4F83 0x4F86 0x4F88 0x4F8B 0x4F8D 0x4F8F 0x4F91 0x4F96 0x4F98 0x4F9B 0x4F9D 0x4FA0 0x4FA1 0x4FAB 0x4FAD 0x4FAE 0x4FAF 0x4FB5 0x4FB6 0x4FBF 0x4FC2 0x4FC3 0x4FC4 0x4FCA 0x4FCE 0x4FD0 0x4FD1 0x4FD4 0x4FD7 0x4FD8 0x4FDA 0x4FDB 0x4FDD 0x4FDF 0x4FE1 0x4FE3 0x4FE4 0x4FE5 0x4FEE 0x4FEF 0x4FF3 0x4FF5 0x4FF6 0x4FF8 0x4FFA 0x4FFE 0x5005 0x5006 0x5009 0x500B 0x500D 0x500F 0x5011 0x5012 0x5014 0x5016 0x5019 0x501A 0x501F 0x5021 0x5023 0x5024 0x5025 0x5026 0x5028 0x5029 0x502A 0x502B 0x502C 0x502D 0x5036 0x5039 0x5043 0x5047 0x5048 0x5049 0x504F 0x5050 0x5055 0x5056 0x505A 0x505C 0x5065 0x506C 0x5072 0x5074 0x5075 0x5076 0x5078 0x507D 0x5080 0x5085 0x508D 0x5091 0x5098 0x5099 0x509A 0x50AC 0x50AD 0x50B2 0x50B3 0x50B4 0x50B5 0x50B7 0x50BE 0x50C2 0x50C5 0x50C9 0x50CA 0x50CD 0x50CF 0x50D1 0x50D5 0x50D6 0x50DA 0x50DE 0x50E3 0x50E5 0x50E7 0x50ED 0x50EE 0x50F5 0x50F9 0x50FB 0x5100 0x5101 0x5102 0x5104 0x5109 0x5112 0x5114 0x5115 0x5116 0x5118 0x511A 0x511F 0x5121 0x512A 0x5132 0x5137 0x513A 0x513B 0x513C 0x513F 0x5140 0x5141 0x5143 0x5144 0x5145 0x5146 0x5147 0x5148 0x5149 0x514B 0x514C 0x514D 0x514E 0x5150 0x5152 0x5154 0x515A 0x515C 0x5162 0x5165 0x5168 0x5169 0x516A 0x516B 0x516C 0x516D 0x516E 0x5171 0x5175 0x5176 0x5177 0x5178 0x517C 0x5180 0x5182 0x5185 0x5186 0x5189 0x518A 0x518C 0x518D 0x518F 0x5190 0x5191 0x5192 0x5193 0x5195 0x5196 0x5197 0x5199 0x51A0 0x51A2 0x51A4 0x51A5 0x51A6 0x51A8 0x51A9 0x51AA 0x51AB 0x51AC 0x51B0 0x51B1 0x51B2 0x51B3 0x51B4 0x51B5 0x51B6 0x51B7 0x51BD 0x51C4 0x51C5 0x51C6 0x51C9 0x51CB 0x51CC 0x51CD 0x51D6 0x51DB 0x51DC 0x51DD 0x51E0 0x51E1 0x51E6 0x51E7 0x51E9 0x51EA 0x51ED 0x51F0 0x51F1 0x51F5 0x51F6 0x51F8 0x51F9 0x51FA 0x51FD 0x51FE 0x5200 0x5203 0x5204 0x5206 0x5207 0x5208 0x520A 0x520B 0x520E 0x5211 0x5214 0x5217 0x521D 0x5224 0x5225 0x5227 0x5229 0x522A 0x522E 0x5230 0x5233 0x5236 0x5237 0x5238 0x5239 0x523A 0x523B 0x5243 0x5244 0x5247 0x524A 0x524B 0x524C 0x524D 0x524F 0x5254 0x5256 0x525B 0x525E 0x5263 0x5264 0x5265 0x5269 0x526A 0x526F 0x5270 0x5271 0x5272 0x5273 0x5274 0x5275 0x527D 0x527F 0x5283 0x5287 0x5288 0x5289 0x528D 0x5291 0x5292 0x5294 0x529B 0x529F 0x52A0 0x52A3 0x52A9 0x52AA 0x52AB 0x52AC 0x52AD 0x52B1 0x52B4 0x52B5 0x52B9 0x52BC 0x52BE 0x52C1 0x52C3 0x52C5 0x52C7 0x52C9 0x52CD 0x52D2 0x52D5 0x52D7 0x52D8 0x52D9 0x52DD 0x52DE 0x52DF 0x52E0 0x52E2 0x52E3 0x52E4 0x52E6 0x52E7 0x52F2 0x52F3 0x52F5 0x52F8 0x52F9 0x52FA 0x52FE 0x52FF 0x5301 0x5302 0x5305 0x5306 0x5308 0x530D 0x530F 0x5310 0x5315 0x5316 0x5317 0x5319 0x531A 0x531D 0x5320 0x5321 0x5323 0x532A 0x532F 0x5331 0x5333 0x5338 0x5339 0x533A 0x533B 0x533F 0x5340 0x5341 0x5343 0x5345 0x5346 0x5347 0x5348 0x5349 0x534A 0x534D 0x5351 0x5352 0x5353 0x5354 0x5357 0x5358 0x535A 0x535C 0x535E 0x5360 0x5366 0x5369 0x536E 0x536F 0x5370 0x5371 0x5373 0x5374 0x5375 0x5377 0x5378 0x537B 0x537F 0x5382 0x5384 0x5396 0x5398 0x539A 0x539F 0x53A0 0x53A5 0x53A6 0x53A8 0x53A9 0x53AD 0x53AE 0x53B0 0x53B3 0x53B6 0x53BB 0x53C2 0x53C3 0x53C8 0x53C9 0x53CA 0x53CB 0x53CC 0x53CD 0x53CE 0x53D4 0x53D6 0x53D7 0x53D9 0x53DB 0x53DF 0x53E1 0x53E2 0x53E3 0x53E4 0x53E5 0x53E8 0x53E9 0x53EA 0x53EB 0x53EC 0x53ED 0x53EE 0x53EF 0x53F0 0x53F1 0x53F2 0x53F3 0x53F6 0x53F7 0x53F8 0x53FA 0x5401 0x5403 0x5404 0x5408 0x5409 0x540A 0x540B 0x540C 0x540D 0x540E 0x540F 0x5410 0x5411 0x541B 0x541D 0x541F 0x5420 0x5426 0x5429 0x542B 0x542C 0x542D 0x542E 0x5436 0x5438 0x5439 0x543B 0x543C 0x543D 0x543E 0x5440 0x5442 0x5446 0x5448 0x5449 0x544A 0x544E 0x5451 0x545F 0x5468 0x546A 0x5470 0x5471 0x5473 0x5475 0x5476 0x5477 0x547B 0x547C 0x547D 0x5480 0x5484 0x5486 0x548B 0x548C 0x548E 0x548F 0x5490 0x5492 0x54A2 0x54A4 0x54A5 0x54A8 0x54AB 0x54AC 0x54AF 0x54B2 0x54B3 0x54B8 0x54BC 0x54BD 0x54BE 0x54C0 0x54C1 0x54C2 0x54C4 0x54C7 0x54C8 0x54C9 0x54D8 0x54E1 0x54E2 0x54E5 0x54E6 0x54E8 0x54E9 0x54ED 0x54EE 0x54F2 0x54FA 0x54FD 0x5504 0x5506 0x5507 0x550F 0x5510 0x5514 0x5516 0x552E 0x552F 0x5531 0x5533 0x5538 0x5539 0x553E 0x5540 0x5544 0x5545 0x5546 0x554C 0x554F 0x5553 0x5556 0x5557 0x555C 0x555D 0x5563 0x557B 0x557C 0x557E 0x5580 0x5583 0x5584 0x5587 0x5589 0x558A 0x558B 0x5598 0x5599 0x559A 0x559C 0x559D 0x559E 0x559F 0x55A7 0x55A8 0x55A9 0x55AA 0x55AB 0x55AC 0x55AE 0x55B0 0x55B6 0x55C4 0x55C5 0x55C7 0x55D4 0x55DA 0x55DC 0x55DF 0x55E3 0x55E4 0x55F7 0x55F9 0x55FD 0x55FE 0x5606 0x5609 0x5614 0x5616 0x5617 0x5618 0x561B 0x5629 0x562F 0x5631 0x5632 0x5634 0x5636 0x5638 0x5642 0x564C 0x564E 0x5650 0x565B 0x5664 0x5668 0x566A 0x566B 0x566C 0x5674 0x5678 0x567A 0x5680 0x5686 0x5687 0x568A 0x568F 0x5694 0x56A0 0x56A2 0x56A5 0x56AE 0x56B4 0x56B6 0x56BC 0x56C0 0x56C1 0x56C2 0x56C3 0x56C8 0x56CE 0x56D1 0x56D3 0x56D7 0x56D8 0x56DA 0x56DB 0x56DE 0x56E0 0x56E3 0x56EE 0x56F0 0x56F2 0x56F3 0x56F9 0x56FA 0x56FD 0x56FF 0x5700 0x5703 0x5704 0x5708 0x5709 0x570B 0x570D 0x570F 0x5712 0x5713 0x5716 0x5718 0x571C 0x571F 0x5726 0x5727 0x5728 0x572D 0x5730 0x5737 0x5738 0x573B 0x5740 0x5742 0x5747 0x574A 0x574E 0x574F 0x5750 0x5751 0x5761 0x5764 0x5766 0x5769 0x576A 0x577F 0x5782 0x5788 0x5789 0x578B 0x5793 0x57A0 0x57A2 0x57A3 0x57A4 0x57AA 0x57B0 0x57B3 0x57C0 0x57C3 0x57C6 0x57CB 0x57CE 0x57D2 0x57D3 0x57D4 0x57D6 0x57DC 0x57DF 0x57E0 0x57E3 0x57F4 0x57F7 0x57F9 0x57FA 0x57FC 0x5800 0x5802 0x5805 0x5806 0x580A 0x580B 0x5815 0x5819 0x581D 0x5821 0x5824 0x582A 0x582F 0x5830 0x5831 0x5834 0x5835 0x583A 0x583D 0x5840 0x5841 0x584A 0x584B 0x5851 0x5852 0x5854 0x5857 0x5858 0x5859 0x585A 0x585E 0x5862 0x5869 0x586B 0x5870 0x5872 0x5875 0x5879 0x587E 0x5883 0x5885 0x5893 0x5897 0x589C 0x589F 0x58A8 0x58AB 0x58AE 0x58B3 0x58B8 0x58B9 0x58BA 0x58BB 0x58BE 0x58C1 0x58C5 0x58C7 0x58CA 0x58CC 0x58D1 0x58D3 0x58D5 0x58D7 0x58D8 0x58D9 0x58DC 0x58DE 0x58DF 0x58E4 0x58E5 0x58EB 0x58EC 0x58EE 0x58EF 0x58F0 0x58F1 0x58F2 0x58F7 0x58F9 0x58FA 0x58FB 0x58FC 0x58FD 0x5902 0x5909 0x590A 0x590F 0x5910 0x5915 0x5916 0x5918 0x5919 0x591A 0x591B 0x591C 0x5922 0x5925 0x5927 0x5929 0x592A 0x592B 0x592C 0x592D 0x592E 0x5931 0x5932 0x5937 0x5938 0x593E 0x5944 0x5947 0x5948 0x5949 0x594E 0x594F 0x5950 0x5951 0x5954 0x5955 0x5957 0x5958 0x595A 0x5960 0x5962 0x5965 0x5967 0x5968 0x5969 0x596A 0x596C 0x596E 0x5973 0x5974 0x5978 0x597D 0x5981 0x5982 0x5983 0x5984 0x598A 0x598D 0x5993 0x5996 0x5999 0x599B 0x599D 0x59A3 0x59A5 0x59A8 0x59AC 0x59B2 0x59B9 0x59BB 0x59BE 0x59C6 0x59C9 0x59CB 0x59D0 0x59D1 0x59D3 0x59D4 0x59D9 0x59DA 0x59DC 0x59E5 0x59E6 0x59E8 0x59EA 0x59EB 0x59F6 0x59FB 0x59FF 0x5A01 0x5A03 0x5A09 0x5A11 0x5A18 0x5A1A 0x5A1C 0x5A1F 0x5A20 0x5A25 0x5A29 0x5A2F 0x5A35 0x5A36 0x5A3C 0x5A40 0x5A41 0x5A46 0x5A49 0x5A5A 0x5A62 0x5A66 0x5A6A 0x5A6C 0x5A7F 0x5A92 0x5A9A 0x5A9B 0x5ABC 0x5ABD 0x5ABE 0x5AC1 0x5AC2 0x5AC9 0x5ACB 0x5ACC 0x5AD0 0x5AD6 0x5AD7 0x5AE1 0x5AE3 0x5AE6 0x5AE9 0x5AFA 0x5AFB 0x5B09 0x5B0B 0x5B0C 0x5B16 0x5B22 0x5B2A 0x5B2C 0x5B30 0x5B32 0x5B36 0x5B3E 0x5B40 0x5B43 0x5B45 0x5B50 0x5B51 0x5B54 0x5B55 0x5B57 0x5B58 0x5B5A 0x5B5B 0x5B5C 0x5B5D 0x5B5F 0x5B63 0x5B64 0x5B65 0x5B66 0x5B69 0x5B6B 0x5B70 0x5B71 0x5B73 0x5B75 0x5B78 0x5B7A 0x5B80 0x5B83 0x5B85 0x5B87 0x5B88 0x5B89 0x5B8B 0x5B8C 0x5B8D 0x5B8F 0x5B95 0x5B97 0x5B98 0x5B99 0x5B9A 0x5B9B 0x5B9C 0x5B9D 0x5B9F 0x5BA2 0x5BA3 0x5BA4 0x5BA5 0x5BA6 0x5BAE 0x5BB0 0x5BB3 0x5BB4 0x5BB5 0x5BB6 0x5BB8 0x5BB9 0x5BBF 0x5BC2 0x5BC3 0x5BC4 0x5BC5 0x5BC6 0x5BC7 0x5BC9 0x5BCC 0x5BD0 0x5BD2 0x5BD3 0x5BD4 0x5BDB 0x5BDD 0x5BDE 0x5BDF 0x5BE1 0x5BE2 0x5BE4 0x5BE5 0x5BE6 0x5BE7 0x5BE8 0x5BE9 0x5BEB 0x5BEE 0x5BF0 0x5BF3 0x5BF5 0x5BF6 0x5BF8 0x5BFA 0x5BFE 0x5BFF 0x5C01 0x5C02 0x5C04 0x5C05 0x5C06 0x5C07 0x5C08 0x5C09 0x5C0A 0x5C0B 0x5C0D 0x5C0E 0x5C0F 0x5C11 0x5C13 0x5C16 0x5C1A 0x5C20 0x5C22 0x5C24 0x5C28 0x5C2D 0x5C31 0x5C38 0x5C39 0x5C3A 0x5C3B 0x5C3C 0x5C3D 0x5C3E 0x5C3F 0x5C40 0x5C41 0x5C45 0x5C46 0x5C48 0x5C4A 0x5C4B 0x5C4D 0x5C4E 0x5C4F 0x5C50 0x5C51 0x5C53 0x5C55 0x5C5E 0x5C60 0x5C61 0x5C64 0x5C65 0x5C6C 0x5C6E 0x5C6F 0x5C71 0x5C76 0x5C79 0x5C8C 0x5C90 0x5C91 0x5C94 0x5CA1 0x5CA8 0x5CA9 0x5CAB 0x5CAC 0x5CB1 0x5CB3 0x5CB6 0x5CB7 0x5CB8 0x5CBB 0x5CBC 0x5CBE 0x5CC5 0x5CC7 0x5CD9 0x5CE0 0x5CE1 0x5CE8 0x5CE9 0x5CEA 0x5CED 0x5CEF 0x5CF0 0x5CF6 0x5CFA 0x5CFB 0x5CFD 0x5D07 0x5D0B 0x5D0E 0x5D11 0x5D14 0x5D15 0x5D16 0x5D17 0x5D18 0x5D19 0x5D1A 0x5D1B 0x5D1F 0x5D22 0x5D29 0x5D4B 0x5D4C 0x5D4E 0x5D50 0x5D52 0x5D5C 0x5D69 0x5D6C 0x5D6F 0x5D73 0x5D76 0x5D82 0x5D84 0x5D87 0x5D8B 0x5D8C 0x5D90 0x5D9D 0x5DA2 0x5DAC 0x5DAE 0x5DB7 0x5DBA 0x5DBC 0x5DBD 0x5DC9 0x5DCC 0x5DCD 0x5DD2 0x5DD3 0x5DD6 0x5DDB 0x5DDD 0x5DDE 0x5DE1 0x5DE3 0x5DE5 0x5DE6 0x5DE7 0x5DE8 0x5DEB 0x5DEE 0x5DF1 0x5DF2 0x5DF3 0x5DF4 0x5DF5 0x5DF7 0x5DFB 0x5DFD 0x5DFE 0x5E02 0x5E03 0x5E06 0x5E0B 0x5E0C 0x5E11 0x5E16 0x5E19 0x5E1A 0x5E1B 0x5E1D 0x5E25 0x5E2B 0x5E2D 0x5E2F 0x5E30 0x5E33 0x5E36 0x5E37 0x5E38 0x5E3D 0x5E40 0x5E43 0x5E44 0x5E45 0x5E47 0x5E4C 0x5E4E 0x5E54 0x5E55 0x5E57 0x5E5F 0x5E61 0x5E62 0x5E63 0x5E64 0x5E72 0x5E73 0x5E74 0x5E75 0x5E76 0x5E78 0x5E79 0x5E7A 0x5E7B 0x5E7C 0x5E7D 0x5E7E 0x5E7F 0x5E81 0x5E83 0x5E84 0x5E87 0x5E8A 0x5E8F 0x5E95 0x5E96 0x5E97 0x5E9A 0x5E9C 0x5EA0 0x5EA6 0x5EA7 0x5EAB 0x5EAD 0x5EB5 0x5EB6 0x5EB7 0x5EB8 0x5EC1 0x5EC2 0x5EC3 0x5EC8 0x5EC9 0x5ECA 0x5ECF 0x5ED0 0x5ED3 0x5ED6 0x5EDA 0x5EDB 0x5EDD 0x5EDF 0x5EE0 0x5EE1 0x5EE2 0x5EE3 0x5EE8 0x5EE9 0x5EEC 0x5EF0 0x5EF1 0x5EF3 0x5EF4 0x5EF6 0x5EF7 0x5EF8 0x5EFA 0x5EFB 0x5EFC 0x5EFE 0x5EFF 0x5F01 0x5F03 0x5F04 0x5F09 0x5F0A 0x5F0B 0x5F0C 0x5F0D 0x5F0F 0x5F10 0x5F11 0x5F13 0x5F14 0x5F15 0x5F16 0x5F17 0x5F18 0x5F1B 0x5F1F 0x5F25 0x5F26 0x5F27 0x5F29 0x5F2D 0x5F2F 0x5F31 0x5F35 0x5F37 0x5F38 0x5F3C 0x5F3E 0x5F41 0x5F48 0x5F4A 0x5F4C 0x5F4E 0x5F51 0x5F53 0x5F56 0x5F57 0x5F59 0x5F5C 0x5F5D 0x5F61 0x5F62 0x5F66 0x5F69 0x5F6A 0x5F6B 0x5F6C 0x5F6D 0x5F70 0x5F71 0x5F73 0x5F77 0x5F79 0x5F7C 0x5F7F 0x5F80 0x5F81 0x5F82 0x5F83 0x5F84 0x5F85 0x5F87 0x5F88 0x5F8A 0x5F8B 0x5F8C 0x5F90 0x5F91 0x5F92 0x5F93 0x5F97 0x5F98 0x5F99 0x5F9E 0x5FA0 0x5FA1 0x5FA8 0x5FA9 0x5FAA 0x5FAD 0x5FAE 0x5FB3 0x5FB4 0x5FB9 0x5FBC 0x5FBD 0x5FC3 0x5FC5 0x5FCC 0x5FCD 0x5FD6 0x5FD7 0x5FD8 0x5FD9 0x5FDC 0x5FDD 0x5FE0 0x5FE4 0x5FEB 0x5FF0 0x5FF1 0x5FF5 0x5FF8 0x5FFB 0x5FFD 0x5FFF 0x600E 0x600F 0x6010 0x6012 0x6015 0x6016 0x6019 0x601B 0x601C 0x601D 0x6020 0x6021 0x6025 0x6026 0x6027 0x6028 0x6029 0x602A 0x602B 0x602F 0x6031 0x603A 0x6041 0x6042 0x6043 0x6046 0x604A 0x604B 0x604D 0x6050 0x6052 0x6055 0x6059 0x605A 0x605F 0x6060 0x6062 0x6063 0x6064 0x6065 0x6068 0x6069 0x606A 0x606B 0x606C 0x606D 0x606F 0x6070 0x6075 0x6077 0x6081 0x6083 0x6084 0x6089 0x608B 0x608C 0x608D 0x6092 0x6094 0x6096 0x6097 0x609A 0x609B 0x609F 0x60A0 0x60A3 0x60A6 0x60A7 0x60A9 0x60AA 0x60B2 0x60B3 0x60B4 0x60B5 0x60B6 0x60B8 0x60BC 0x60BD 0x60C5 0x60C6 0x60C7 0x60D1 0x60D3 0x60D8 0x60DA 0x60DC 0x60DF 0x60E0 0x60E1 0x60E3 0x60E7 0x60E8 0x60F0 0x60F1 0x60F3 0x60F4 0x60F6 0x60F7 0x60F9 0x60FA 0x60FB 0x6100 0x6101 0x6103 0x6106 0x6108 0x6109 0x610D 0x610E 0x610F 0x6115 0x611A 0x611B 0x611F 0x6121 0x6127 0x6128 0x612C 0x6134 0x613C 0x613D 0x613E 0x613F 0x6142 0x6144 0x6147 0x6148 0x614A 0x614B 0x614C 0x614D 0x614E 0x6153 0x6155 0x6158 0x6159 0x615A 0x615D 0x615F 0x6162 0x6163 0x6165 0x6167 0x6168 0x616B 0x616E 0x616F 0x6170 0x6171 0x6173 0x6174 0x6175 0x6176 0x6177 0x617E 0x6182 0x6187 0x618A 0x618E 0x6190 0x6191 0x6194 0x6196 0x6199 0x619A 0x61A4 0x61A7 0x61A9 0x61AB 0x61AC 0x61AE 0x61B2 0x61B6 0x61BA 0x61BE 0x61C3 0x61C6 0x61C7 0x61C8 0x61C9 0x61CA 0x61CB 0x61CC 0x61CD 0x61D0 0x61E3 0x61E6 0x61F2 0x61F4 0x61F6 0x61F7 0x61F8 0x61FA 0x61FC 0x61FD 0x61FE 0x61FF 0x6200 0x6208 0x6209 0x620A 0x620C 0x620D 0x620E 0x6210 0x6211 0x6212 0x6214 0x6216 0x621A 0x621B 0x621D 0x621E 0x621F 0x6221 0x6226 0x622A 0x622E 0x622F 0x6230 0x6232 0x6233 0x6234 0x6238 0x623B 0x623F 0x6240 0x6241 0x6247 0x6248 0x6249 0x624B 0x624D 0x624E 0x6253 0x6255 0x6258 0x625B 0x625E 0x6260 0x6263 0x6268 0x626E 0x6271 0x6276 0x6279 0x627C 0x627E 0x627F 0x6280 0x6282 0x6283 0x6284 0x6289 0x628A 0x6291 0x6292 0x6293 0x6294 0x6295 0x6296 0x6297 0x6298 0x629B 0x629C 0x629E 0x62AB 0x62AC 0x62B1 0x62B5 0x62B9 0x62BB 0x62BC 0x62BD 0x62C2 0x62C5 0x62C6 0x62C7 0x62C8 0x62C9 0x62CA 0x62CC 0x62CD 0x62CF 0x62D0 0x62D1 0x62D2 0x62D3 0x62D4 0x62D7 0x62D8 0x62D9 0x62DB 0x62DC 0x62DD 0x62E0 0x62E1 0x62EC 0x62ED 0x62EE 0x62EF 0x62F1 0x62F3 0x62F5 0x62F6 0x62F7 0x62FE 0x62FF 0x6301 0x6302 0x6307 0x6308 0x6309 0x630C 0x6311 0x6319 0x631F 0x6327 0x6328 0x632B 0x632F 0x633A 0x633D 0x633E 0x633F 0x6349 0x634C 0x634D 0x634F 0x6350 0x6355 0x6357 0x635C 0x6367 0x6368 0x6369 0x636B 0x636E 0x6372 0x6376 0x6377 0x637A 0x637B 0x6380 0x6383 0x6388 0x6389 0x638C 0x638E 0x638F 0x6392 0x6396 0x6398 0x639B 0x639F 0x63A0 0x63A1 0x63A2 0x63A3 0x63A5 0x63A7 0x63A8 0x63A9 0x63AA 0x63AB 0x63AC 0x63B2 0x63B4 0x63B5 0x63BB 0x63BE 0x63C0 0x63C3 0x63C4 0x63C6 0x63C9 0x63CF 0x63D0 0x63D2 0x63D6 0x63DA 0x63DB 0x63E1 0x63E3 0x63E9 0x63EE 0x63F4 0x63F6 0x63FA 0x6406 0x640D 0x640F 0x6413 0x6416 0x6417 0x641C 0x6426 0x6428 0x642C 0x642D 0x6434 0x6436 0x643A 0x643E 0x6442 0x644E 0x6458 0x6467 0x6469 0x646F 0x6476 0x6478 0x647A 0x6483 0x6488 0x6492 0x6493 0x6495 0x649A 0x649E 0x64A4 0x64A5 0x64A9 0x64AB 0x64AD 0x64AE 0x64B0 0x64B2 0x64B9 0x64BB 0x64BC 0x64C1 0x64C2 0x64C5 0x64C7 0x64CD 0x64D2 0x64D4 0x64D8 0x64DA 0x64E0 0x64E1 0x64E2 0x64E3 0x64E6 0x64E7 0x64EC 0x64EF 0x64F1 0x64F2 0x64F4 0x64F6 0x64FA 0x64FD 0x64FE 0x6500 0x6505 0x6518 0x651C 0x651D 0x6523 0x6524 0x652A 0x652B 0x652C 0x652F 0x6534 0x6535 0x6536 0x6537 0x6538 0x6539 0x653B 0x653E 0x653F 0x6545 0x6548 0x654D 0x654F 0x6551 0x6555 0x6556 0x6557 0x6558 0x6559 0x655D 0x655E 0x6562 0x6563 0x6566 0x656C 0x6570 0x6572 0x6574 0x6575 0x6577 0x6578 0x6582 0x6583 0x6587 0x6588 0x6589 0x658C 0x658E 0x6590 0x6591 0x6597 0x6599 0x659B 0x659C 0x659F 0x65A1 0x65A4 0x65A5 0x65A7 0x65AB 0x65AC 0x65AD 0x65AF 0x65B0 0x65B7 0x65B9 0x65BC 0x65BD 0x65C1 0x65C3 0x65C4 0x65C5 0x65C6 0x65CB 0x65CC 0x65CF 0x65D2 0x65D7 0x65D9 0x65DB 0x65E0 0x65E1 0x65E2 0x65E5 0x65E6 0x65E7 0x65E8 0x65E9 0x65EC 0x65ED 0x65F1 0x65FA 0x65FB 0x6602 0x6603 0x6606 0x6607 0x660A 0x660C 0x660E 0x660F 0x6613 0x6614 0x661C 0x661F 0x6620 0x6625 0x6627 0x6628 0x662D 0x662F 0x6634 0x6635 0x6636 0x663C 0x663F 0x6641 0x6642 0x6643 0x6644 0x6649 0x664B 0x664F 0x6652 0x665D 0x665E 0x665F 0x6662 0x6664 0x6666 0x6667 0x6668 0x6669 0x666E 0x666F 0x6670 0x6674 0x6676 0x667A 0x6681 0x6683 0x6684 0x6687 0x6688 0x6689 0x668E 0x6691 0x6696 0x6697 0x6698 0x669D 0x66A2 0x66A6 0x66AB 0x66AE 0x66B4 0x66B8 0x66B9 0x66BC 0x66BE 0x66C1 0x66C4 0x66C7 0x66C9 0x66D6 0x66D9 0x66DA 0x66DC 0x66DD 0x66E0 0x66E6 0x66E9 0x66F0 0x66F2 0x66F3 0x66F4 0x66F5 0x66F7 0x66F8 0x66F9 0x66FC 0x66FD 0x66FE 0x66FF 0x6700 0x6703 0x6708 0x6709 0x670B 0x670D 0x670F 0x6714 0x6715 0x6716 0x6717 0x671B 0x671D 0x671E 0x671F 0x6726 0x6727 0x6728 0x672A 0x672B 0x672C 0x672D 0x672E 0x6731 0x6734 0x6736 0x6737 0x6738 0x673A 0x673D 0x673F 0x6741 0x6746 0x6749 0x674E 0x674F 0x6750 0x6751 0x6753 0x6756 0x6759 0x675C 0x675E 0x675F 0x6760 0x6761 0x6762 0x6763 0x6764 0x6765 0x676A 0x676D 0x676F 0x6770 0x6771 0x6772 0x6773 0x6775 0x6777 0x677C 0x677E 0x677F 0x6785 0x6787 0x6789 0x678B 0x678C 0x6790 0x6795 0x6797 0x679A 0x679C 0x679D 0x67A0 0x67A1 0x67A2 0x67A6 0x67A9 0x67AF 0x67B3 0x67B4 0x67B6 0x67B7 0x67B8 0x67B9 0x67C1 0x67C4 0x67C6 0x67CA 0x67CE 0x67CF 0x67D0 0x67D1 0x67D3 0x67D4 0x67D8 0x67DA 0x67DD 0x67DE 0x67E2 0x67E4 0x67E7 0x67E9 0x67EC 0x67EE 0x67EF 0x67F1 0x67F3 0x67F4 0x67F5 0x67FB 0x67FE 0x67FF 0x6802 0x6803 0x6804 0x6813 0x6816 0x6817 0x681E 0x6821 0x6822 0x6829 0x682A 0x682B 0x6832 0x6834 0x6838 0x6839 0x683C 0x683D 0x6840 0x6841 0x6842 0x6843 0x6846 0x6848 0x684D 0x684E 0x6850 0x6851 0x6853 0x6854 0x6859 0x685C 0x685D 0x685F 0x6863 0x6867 0x6874 0x6876 0x6877 0x687E 0x687F 0x6881 0x6883 0x6885 0x688D 0x688F 0x6893 0x6894 0x6897 0x689B 0x689D 0x689F 0x68A0 0x68A2 0x68A6 0x68A7 0x68A8 0x68AD 0x68AF 0x68B0 0x68B1 0x68B3 0x68B5 0x68B6 0x68B9 0x68BA 0x68BC 0x68C4 0x68C6 0x68C9 0x68CA 0x68CB 0x68CD 0x68D2 0x68D4 0x68D5 0x68D7 0x68D8 0x68DA 0x68DF 0x68E0 0x68E1 0x68E3 0x68E7 0x68EE 0x68EF 0x68F2 0x68F9 0x68FA 0x6900 0x6901 0x6904 0x6905 0x6908 0x690B 0x690C 0x690D 0x690E 0x690F 0x6912 0x6919 0x691A 0x691B 0x691C 0x6921 0x6922 0x6923 0x6925 0x6926 0x6928 0x692A 0x6930 0x6934 0x6936 0x6939 0x693D 0x693F 0x694A 0x6953 0x6954 0x6955 0x6959 0x695A 0x695C 0x695D 0x695E 0x6960 0x6961 0x6962 0x696A 0x696B 0x696D 0x696E 0x696F 0x6973 0x6974 0x6975 0x6977 0x6978 0x6979 0x697C 0x697D 0x697E 0x6981 0x6982 0x698A 0x698E 0x6991 0x6994 0x6995 0x699B 0x699C 0x69A0 0x69A7 0x69AE 0x69B1 0x69B2 0x69B4 0x69BB 0x69BE 0x69BF 0x69C1 0x69C3 0x69C7 0x69CA 0x69CB 0x69CC 0x69CD 0x69CE 0x69D0 0x69D3 0x69D8 0x69D9 0x69DD 0x69DE 0x69E7 0x69E8 0x69EB 0x69ED 0x69F2 0x69F9 0x69FB 0x69FD 0x69FF 0x6A02 0x6A05 0x6A0A 0x6A0B 0x6A0C 0x6A12 0x6A13 0x6A14 0x6A17 0x6A19 0x6A1B 0x6A1E 0x6A1F 0x6A21 0x6A22 0x6A23 0x6A29 0x6A2A 0x6A2B 0x6A2E 0x6A35 0x6A36 0x6A38 0x6A39 0x6A3A 0x6A3D 0x6A44 0x6A47 0x6A48 0x6A4B 0x6A58 0x6A59 0x6A5F 0x6A61 0x6A62 0x6A66 0x6A72 0x6A78 0x6A7F 0x6A80 0x6A84 0x6A8D 0x6A8E 0x6A90 0x6A97 0x6A9C 0x6AA0 0x6AA2 0x6AA3 0x6AAA 0x6AAC 0x6AAE 0x6AB3 0x6AB8 0x6ABB 0x6AC1 0x6AC2 0x6AC3 0x6AD1 0x6AD3 0x6ADA 0x6ADB 0x6ADE 0x6ADF 0x6AE8 0x6AEA 0x6AFA 0x6AFB 0x6B04 0x6B05 0x6B0A 0x6B12 0x6B16 0x6B1D 0x6B1F 0x6B20 0x6B21 0x6B23 0x6B27 0x6B32 0x6B37 0x6B38 0x6B39 0x6B3A 0x6B3D 0x6B3E 0x6B43 0x6B47 0x6B49 0x6B4C 0x6B4E 0x6B50 0x6B53 0x6B54 0x6B59 0x6B5B 0x6B5F 0x6B61 0x6B62 0x6B63 0x6B64 0x6B66 0x6B69 0x6B6A 0x6B6F 0x6B73 0x6B74 0x6B78 0x6B79 0x6B7B 0x6B7F 0x6B80 0x6B83 0x6B84 0x6B86 0x6B89 0x6B8A 0x6B8B 0x6B8D 0x6B95 0x6B96 0x6B98 0x6B9E 0x6BA4 0x6BAA 0x6BAB 0x6BAF 0x6BB1 0x6BB2 0x6BB3 0x6BB4 0x6BB5 0x6BB7 0x6BBA 0x6BBB 0x6BBC 0x6BBF 0x6BC0 0x6BC5 0x6BC6 0x6BCB 0x6BCD 0x6BCE 0x6BD2 0x6BD3 0x6BD4 0x6BD8 0x6BDB 0x6BDF 0x6BEB 0x6BEC 0x6BEF 0x6BF3 0x6C08 0x6C0F 0x6C11 0x6C13 0x6C14 0x6C17 0x6C1B 0x6C23 0x6C24 0x6C34 0x6C37 0x6C38 0x6C3E 0x6C40 0x6C41 0x6C42 0x6C4E 0x6C50 0x6C55 0x6C57 0x6C5A 0x6C5D 0x6C5E 0x6C5F 0x6C60 0x6C62 0x6C68 0x6C6A 0x6C70 0x6C72 0x6C73 0x6C7A 0x6C7D 0x6C7E 0x6C81 0x6C82 0x6C83 0x6C88 0x6C8C 0x6C8D 0x6C90 0x6C92 0x6C93 0x6C96 0x6C99 0x6C9A 0x6C9B 0x6CA1 0x6CA2 0x6CAB 0x6CAE 0x6CB1 0x6CB3 0x6CB8 0x6CB9 0x6CBA 0x6CBB 0x6CBC 0x6CBD 0x6CBE 0x6CBF 0x6CC1 0x6CC4 0x6CC5 0x6CC9 0x6CCA 0x6CCC 0x6CD3 0x6CD5 0x6CD7 0x6CD9 0x6CDB 0x6CDD 0x6CE1 0x6CE2 0x6CE3 0x6CE5 0x6CE8 0x6CEA 0x6CEF 0x6CF0 0x6CF1 0x6CF3 0x6D0B 0x6D0C 0x6D12 0x6D17 0x6D19 0x6D1B 0x6D1E 0x6D1F 0x6D25 0x6D29 0x6D2A 0x6D2B 0x6D32 0x6D33 0x6D35 0x6D36 0x6D38 0x6D3B 0x6D3D 0x6D3E 0x6D41 0x6D44 0x6D45 0x6D59 0x6D5A 0x6D5C 0x6D63 0x6D64 0x6D66 0x6D69 0x6D6A 0x6D6C 0x6D6E 0x6D74 0x6D77 0x6D78 0x6D79 0x6D85 0x6D88 0x6D8C 0x6D8E 0x6D93 0x6D95 0x6D99 0x6D9B 0x6D9C 0x6DAF 0x6DB2 0x6DB5 0x6DB8 0x6DBC 0x6DC0 0x6DC5 0x6DC6 0x6DC7 0x6DCB 0x6DCC 0x6DD1 0x6DD2 0x6DD5 0x6DD8 0x6DD9 0x6DDE 0x6DE1 0x6DE4 0x6DE6 0x6DE8 0x6DEA 0x6DEB 0x6DEC 0x6DEE 0x6DF1 0x6DF3 0x6DF5 0x6DF7 0x6DF9 0x6DFA 0x6DFB 0x6E05 0x6E07 0x6E08 0x6E09 0x6E0A 0x6E0B 0x6E13 0x6E15 0x6E19 0x6E1A 0x6E1B 0x6E1D 0x6E1F 0x6E20 0x6E21 0x6E23 0x6E24 0x6E25 0x6E26 0x6E29 0x6E2B 0x6E2C 0x6E2D 0x6E2E 0x6E2F 0x6E38 0x6E3A 0x6E3E 0x6E43 0x6E4A 0x6E4D 0x6E4E 0x6E56 0x6E58 0x6E5B 0x6E5F 0x6E67 0x6E6B 0x6E6E 0x6E6F 0x6E72 0x6E76 0x6E7E 0x6E7F 0x6E80 0x6E82 0x6E8C 0x6E8F 0x6E90 0x6E96 0x6E98 0x6E9C 0x6E9D 0x6E9F 0x6EA2 0x6EA5 0x6EAA 0x6EAF 0x6EB2 0x6EB6 0x6EB7 0x6EBA 0x6EBD 0x6EC2 0x6EC4 0x6EC5 0x6EC9 0x6ECB 0x6ECC 0x6ED1 0x6ED3 0x6ED4 0x6ED5 0x6EDD 0x6EDE 0x6EEC 0x6EEF 0x6EF2 0x6EF4 0x6EF7 0x6EF8 0x6EFE 0x6EFF 0x6F01 0x6F02 0x6F06 0x6F09 0x6F0F 0x6F11 0x6F13 0x6F14 0x6F15 0x6F20 0x6F22 0x6F23 0x6F2B 0x6F2C 0x6F31 0x6F32 0x6F38 0x6F3E 0x6F3F 0x6F41 0x6F45 0x6F54 0x6F58 0x6F5B 0x6F5C 0x6F5F 0x6F64 0x6F66 0x6F6D 0x6F6E 0x6F6F 0x6F70 0x6F74 0x6F78 0x6F7A 0x6F7C 0x6F80 0x6F81 0x6F82 0x6F84 0x6F86 0x6F8E 0x6F91 0x6F97 0x6FA1 0x6FA3 0x6FA4 0x6FAA 0x6FB1 0x6FB3 0x6FB9 0x6FC0 0x6FC1 0x6FC2 0x6FC3 0x6FC6 0x6FD4 0x6FD5 0x6FD8 0x6FDB 0x6FDF 0x6FE0 0x6FE1 0x6FE4 0x6FEB 0x6FEC 0x6FEE 0x6FEF 0x6FF1 0x6FF3 0x6FF6 0x6FFA 0x6FFE 0x7001 0x7009 0x700B 0x700F 0x7011 0x7015 0x7018 0x701A 0x701B 0x701D 0x701E 0x701F 0x7026 0x7027 0x702C 0x7030 0x7032 0x703E 0x704C 0x7051 0x7058 0x7063 0x706B 0x706F 0x7070 0x7078 0x707C 0x707D 0x7089 0x708A 0x708E 0x7092 0x7099 0x70AC 0x70AD 0x70AE 0x70AF 0x70B3 0x70B8 0x70B9 0x70BA 0x70C8 0x70CB 0x70CF 0x70D9 0x70DD 0x70DF 0x70F1 0x70F9 0x70FD 0x7109 0x7114 0x7119 0x711A 0x711C 0x7121 0x7126 0x7136 0x713C 0x7149 0x714C 0x714E 0x7155 0x7156 0x7159 0x7162 0x7164 0x7165 0x7166 0x7167 0x7169 0x716C 0x716E 0x717D 0x7184 0x7188 0x718A 0x718F 0x7194 0x7195 0x7199 0x719F 0x71A8 0x71AC 0x71B1 0x71B9 0x71BE 0x71C3 0x71C8 0x71C9 0x71CE 0x71D0 0x71D2 0x71D4 0x71D5 0x71D7 0x71DF 0x71E0 0x71E5 0x71E6 0x71E7 0x71EC 0x71ED 0x71EE 0x71F5 0x71F9 0x71FB 0x71FC 0x71FF 0x7206 0x720D 0x7210 0x721B 0x7228 0x722A 0x722C 0x722D 0x7230 0x7232 0x7235 0x7236 0x723A 0x723B 0x723C 0x723D 0x723E 0x723F 0x7240 0x7246 0x7247 0x7248 0x724B 0x724C 0x7252 0x7258 0x7259 0x725B 0x725D 0x725F 0x7261 0x7262 0x7267 0x7269 0x7272 0x7274 0x7279 0x727D 0x727E 0x7280 0x7281 0x7282 0x7287 0x7292 0x7296 0x72A0 0x72A2 0x72A7 0x72AC 0x72AF 0x72B2 0x72B6 0x72B9 0x72C2 0x72C3 0x72C4 0x72C6 0x72CE 0x72D0 0x72D2 0x72D7 0x72D9 0x72DB 0x72E0 0x72E1 0x72E2 0x72E9 0x72EC 0x72ED 0x72F7 0x72F8 0x72F9 0x72FC 0x72FD 0x730A 0x7316 0x7317 0x731B 0x731C 0x731D 0x731F 0x7325 0x7329 0x732A 0x732B 0x732E 0x732F 0x7334 0x7336 0x7337 0x733E 0x733F 0x7344 0x7345 0x734E 0x734F 0x7357 0x7363 0x7368 0x736A 0x7370 0x7372 0x7375 0x7378 0x737A 0x737B 0x7384 0x7387 0x7389 0x738B 0x7396 0x73A9 0x73B2 0x73B3 0x73BB 0x73C0 0x73C2 0x73C8 0x73CA 0x73CD 0x73CE 0x73DE 0x73E0 0x73E5 0x73EA 0x73ED 0x73EE 0x73F1 0x73F8 0x73FE 0x7403 0x7405 0x7406 0x7409 0x7422 0x7425 0x7432 0x7433 0x7434 0x7435 0x7436 0x743A 0x743F 0x7441 0x7455 0x7459 0x745A 0x745B 0x745C 0x745E 0x745F 0x7460 0x7463 0x7464 0x7469 0x746A 0x746F 0x7470 0x7473 0x7476 0x747E 0x7483 0x748B 0x749E 0x74A2 0x74A7 0x74B0 0x74BD 0x74CA 0x74CF 0x74D4 0x74DC 0x74E0 0x74E2 0x74E3 0x74E6 0x74E7 0x74E9 0x74EE 0x74F0 0x74F1 0x74F2 0x74F6 0x74F7 0x74F8 0x7503 0x7504 0x7505 0x750C 0x750D 0x750E 0x7511 0x7513 0x7515 0x7518 0x751A 0x751C 0x751E 0x751F 0x7523 0x7525 0x7526 0x7528 0x752B 0x752C 0x7530 0x7531 0x7532 0x7533 0x7537 0x7538 0x753A 0x753B 0x753C 0x7544 0x7546 0x7549 0x754A 0x754B 0x754C 0x754D 0x754F 0x7551 0x7554 0x7559 0x755A 0x755B 0x755C 0x755D 0x7560 0x7562 0x7564 0x7565 0x7566 0x7567 0x7569 0x756A 0x756B 0x756D 0x7570 0x7573 0x7574 0x7576 0x7577 0x7578 0x757F 0x7582 0x7586 0x7587 0x7589 0x758A 0x758B 0x758E 0x758F 0x7591 0x7594 0x759A 0x759D 0x75A3 0x75A5 0x75AB 0x75B1 0x75B2 0x75B3 0x75B5 0x75B8 0x75B9 0x75BC 0x75BD 0x75BE 0x75C2 0x75C3 0x75C5 0x75C7 0x75CA 0x75CD 0x75D2 0x75D4 0x75D5 0x75D8 0x75D9 0x75DB 0x75DE 0x75E2 0x75E3 0x75E9 0x75F0 0x75F2 0x75F3 0x75F4 0x75FA 0x75FC 0x75FE 0x75FF 0x7601 0x7609 0x760B 0x760D 0x761F 0x7620 0x7621 0x7622 0x7624 0x7627 0x7630 0x7634 0x763B 0x7642 0x7646 0x7647 0x7648 0x764C 0x7652 0x7656 0x7658 0x765C 0x7661 0x7662 0x7667 0x7668 0x7669 0x766A 0x766C 0x7670 0x7672 0x7676 0x7678 0x767A 0x767B 0x767C 0x767D 0x767E 0x7680 0x7683 0x7684 0x7686 0x7687 0x7688 0x768B 0x768E 0x7690 0x7693 0x7696 0x7699 0x769A 0x76AE 0x76B0 0x76B4 0x76B7 0x76B8 0x76B9 0x76BA 0x76BF 0x76C2 0x76C3 0x76C6 0x76C8 0x76CA 0x76CD 0x76D2 0x76D6 0x76D7 0x76DB 0x76DC 0x76DE 0x76DF 0x76E1 0x76E3 0x76E4 0x76E5 0x76E7 0x76EA 0x76EE 0x76F2 0x76F4 0x76F8 0x76FB 0x76FE 0x7701 0x7704 0x7707 0x7708 0x7709 0x770B 0x770C 0x771B 0x771E 0x771F 0x7720 0x7724 0x7725 0x7726 0x7729 0x7737 0x7738 0x773A 0x773C 0x7740 0x7747 0x775A 0x775B 0x7761 0x7763 0x7765 0x7766 0x7768 0x776B 0x7779 0x777E 0x777F 0x778B 0x778E 0x7791 0x779E 0x77A0 0x77A5 0x77AC 0x77AD 0x77B0 0x77B3 0x77B6 0x77B9 0x77BB 0x77BC 0x77BD 0x77BF 0x77C7 0x77CD 0x77D7 0x77DA 0x77DB 0x77DC 0x77E2 0x77E3 0x77E5 0x77E7 0x77E9 0x77ED 0x77EE 0x77EF 0x77F3 0x77FC 0x7802 0x780C 0x7812 0x7814 0x7815 0x7820 0x7825 0x7826 0x7827 0x7832 0x7834 0x783A 0x783F 0x7845 0x785D 0x786B 0x786C 0x786F 0x7872 0x7874 0x787C 0x7881 0x7886 0x7887 0x788C 0x788D 0x788E 0x7891 0x7893 0x7895 0x7897 0x789A 0x78A3 0x78A7 0x78A9 0x78AA 0x78AF 0x78B5 0x78BA 0x78BC 0x78BE 0x78C1 0x78C5 0x78C6 0x78CA 0x78CB 0x78D0 0x78D1 0x78D4 0x78DA 0x78E7 0x78E8 0x78EC 0x78EF 0x78F4 0x78FD 0x7901 0x7907 0x790E 0x7911 0x7912 0x7919 0x7926 0x792A 0x792B 0x792C 0x793A 0x793C 0x793E 0x7940 0x7941 0x7947 0x7948 0x7949 0x7950 0x7953 0x7955 0x7956 0x7957 0x795A 0x795D 0x795E 0x795F 0x7960 0x7962 0x7965 0x7968 0x796D 0x7977 0x797A 0x797F 0x7980 0x7981 0x7984 0x7985 0x798A 0x798D 0x798E 0x798F 0x799D 0x79A6 0x79A7 0x79AA 0x79AE 0x79B0 0x79B3 0x79B9 0x79BA 0x79BD 0x79BE 0x79BF 0x79C0 0x79C1 0x79C9 0x79CB 0x79D1 0x79D2 0x79D5 0x79D8 0x79DF 0x79E1 0x79E3 0x79E4 0x79E6 0x79E7 0x79E9 0x79EC 0x79F0 0x79FB 0x7A00 0x7A08 0x7A0B 0x7A0D 0x7A0E 0x7A14 0x7A17 0x7A18 0x7A19 0x7A1A 0x7A1C 0x7A1F 0x7A20 0x7A2E 0x7A31 0x7A32 0x7A37 0x7A3B 0x7A3C 0x7A3D 0x7A3E 0x7A3F 0x7A40 0x7A42 0x7A43 0x7A46 0x7A49 0x7A4D 0x7A4E 0x7A4F 0x7A50 0x7A57 0x7A61 0x7A62 0x7A63 0x7A69 0x7A6B 0x7A70 0x7A74 0x7A76 0x7A79 0x7A7A 0x7A7D 0x7A7F 0x7A81 0x7A83 0x7A84 0x7A88 0x7A92 0x7A93 0x7A95 0x7A96 0x7A97 0x7A98 0x7A9F 0x7AA9 0x7AAA 0x7AAE 0x7AAF 0x7AB0 0x7AB6 0x7ABA 0x7ABF 0x7AC3 0x7AC4 0x7AC5 0x7AC7 0x7AC8 0x7ACA 0x7ACB 0x7ACD 0x7ACF 0x7AD2 0x7AD3 0x7AD5 0x7AD9 0x7ADA 0x7ADC 0x7ADD 0x7ADF 0x7AE0 0x7AE1 0x7AE2 0x7AE3 0x7AE5 0x7AE6 0x7AEA 0x7AED 0x7AEF 0x7AF0 0x7AF6 0x7AF8 0x7AF9 0x7AFA 0x7AFF 0x7B02 0x7B04 0x7B06 0x7B08 0x7B0A 0x7B0B 0x7B0F 0x7B11 0x7B18 0x7B19 0x7B1B 0x7B1E 0x7B20 0x7B25 0x7B26 0x7B28 0x7B2C 0x7B33 0x7B35 0x7B36 0x7B39 0x7B45 0x7B46 0x7B48 0x7B49 0x7B4B 0x7B4C 0x7B4D 0x7B4F 0x7B50 0x7B51 0x7B52 0x7B54 0x7B56 0x7B5D 0x7B65 0x7B67 0x7B6C 0x7B6E 0x7B70 0x7B71 0x7B74 0x7B75 0x7B7A 0x7B86 0x7B87 0x7B8B 0x7B8D 0x7B8F 0x7B92 0x7B94 0x7B95 0x7B97 0x7B98 0x7B99 0x7B9A 0x7B9C 0x7B9D 0x7B9F 0x7BA1 0x7BAA 0x7BAD 0x7BB1 0x7BB4 0x7BB8 0x7BC0 0x7BC1 0x7BC4 0x7BC6 0x7BC7 0x7BC9 0x7BCB 0x7BCC 0x7BCF 0x7BDD 0x7BE0 0x7BE4 0x7BE5 0x7BE6 0x7BE9 0x7BED 0x7BF3 0x7BF6 0x7BF7 0x7C00 0x7C07 0x7C0D 0x7C11 0x7C12 0x7C13 0x7C14 0x7C17 0x7C1F 0x7C21 0x7C23 0x7C27 0x7C2A 0x7C2B 0x7C37 0x7C38 0x7C3D 0x7C3E 0x7C3F 0x7C40 0x7C43 0x7C4C 0x7C4D 0x7C4F 0x7C50 0x7C54 0x7C56 0x7C58 0x7C5F 0x7C60 0x7C64 0x7C65 0x7C6C 0x7C73 0x7C75 0x7C7E 0x7C81 0x7C82 0x7C83 0x7C89 0x7C8B 0x7C8D 0x7C90 0x7C92 0x7C95 0x7C97 0x7C98 0x7C9B 0x7C9F 0x7CA1 0x7CA2 0x7CA4 0x7CA5 0x7CA7 0x7CA8 0x7CAB 0x7CAD 0x7CAE 0x7CB1 0x7CB2 0x7CB3 0x7CB9 0x7CBD 0x7CBE 0x7CC0 0x7CC2 0x7CC5 0x7CCA 0x7CCE 0x7CD2 0x7CD6 0x7CD8 0x7CDC 0x7CDE 0x7CDF 0x7CE0 0x7CE2 0x7CE7 0x7CEF 0x7CF2 0x7CF4 0x7CF6 0x7CF8 0x7CFA 0x7CFB 0x7CFE 0x7D00 0x7D02 0x7D04 0x7D05 0x7D06 0x7D0A 0x7D0B 0x7D0D 0x7D10 0x7D14 0x7D15 0x7D17 0x7D18 0x7D19 0x7D1A 0x7D1B 0x7D1C 0x7D20 0x7D21 0x7D22 0x7D2B 0x7D2C 0x7D2E 0x7D2F 0x7D30 0x7D32 0x7D33 0x7D35 0x7D39 0x7D3A 0x7D3F 0x7D42 0x7D43 0x7D44 0x7D45 0x7D46 0x7D4B 0x7D4C 0x7D4E 0x7D4F 0x7D50 0x7D56 0x7D5B 0x7D5E 0x7D61 0x7D62 0x7D63 0x7D66 0x7D68 0x7D6E 0x7D71 0x7D72 0x7D73 0x7D75 0x7D76 0x7D79 0x7D7D 0x7D89 0x7D8F 0x7D93 0x7D99 0x7D9A 0x7D9B 0x7D9C 0x7D9F 0x7DA2 0x7DA3 0x7DAB 0x7DAC 0x7DAD 0x7DAE 0x7DAF 0x7DB0 0x7DB1 0x7DB2 0x7DB4 0x7DB5 0x7DB8 0x7DBA 0x7DBB 0x7DBD 0x7DBE 0x7DBF 0x7DC7 0x7DCA 0x7DCB 0x7DCF 0x7DD1 0x7DD2 0x7DD5 0x7DD8 0x7DDA 0x7DDC 0x7DDD 0x7DDE 0x7DE0 0x7DE1 0x7DE4 0x7DE8 0x7DE9 0x7DEC 0x7DEF 0x7DF2 0x7DF4 0x7DFB 0x7E01 0x7E04 0x7E05 0x7E09 0x7E0A 0x7E0B 0x7E12 0x7E1B 0x7E1E 0x7E1F 0x7E21 0x7E22 0x7E23 0x7E26 0x7E2B 0x7E2E 0x7E31 0x7E32 0x7E35 0x7E37 0x7E39 0x7E3A 0x7E3B 0x7E3D 0x7E3E 0x7E41 0x7E43 0x7E46 0x7E4A 0x7E4B 0x7E4D 0x7E54 0x7E55 0x7E56 0x7E59 0x7E5A 0x7E5D 0x7E5E 0x7E66 0x7E67 0x7E69 0x7E6A 0x7E6D 0x7E70 0x7E79 0x7E7B 0x7E7C 0x7E7D 0x7E7F 0x7E82 0x7E83 0x7E88 0x7E89 0x7E8C 0x7E8E 0x7E8F 0x7E90 0x7E92 0x7E93 0x7E94 0x7E96 0x7E9B 0x7E9C 0x7F36 0x7F38 0x7F3A 0x7F45 0x7F4C 0x7F4D 0x7F4E 0x7F50 0x7F51 0x7F54 0x7F55 0x7F58 0x7F5F 0x7F60 0x7F67 0x7F68 0x7F69 0x7F6A 0x7F6B 0x7F6E 0x7F70 0x7F72 0x7F75 0x7F77 0x7F78 0x7F79 0x7F82 0x7F83 0x7F85 0x7F86 0x7F87 0x7F88 0x7F8A 0x7F8C 0x7F8E 0x7F94 0x7F9A 0x7F9D 0x7F9E 0x7FA3 0x7FA4 0x7FA8 0x7FA9 0x7FAE 0x7FAF 0x7FB2 0x7FB6 0x7FB8 0x7FB9 0x7FBD 0x7FC1 0x7FC5 0x7FC6 0x7FCA 0x7FCC 0x7FD2 0x7FD4 0x7FD5 0x7FE0 0x7FE1 0x7FE6 0x7FE9 0x7FEB 0x7FF0 0x7FF3 0x7FF9 0x7FFB 0x7FFC 0x8000 0x8001 0x8003 0x8004 0x8005 0x8006 0x800B 0x800C 0x8010 0x8012 0x8015 0x8017 0x8018 0x8019 0x801C 0x8021 0x8028 0x8033 0x8036 0x803B 0x803D 0x803F 0x8046 0x804A 0x8052 0x8056 0x8058 0x805A 0x805E 0x805F 0x8061 0x8062 0x8068 0x806F 0x8070 0x8072 0x8073 0x8074 0x8076 0x8077 0x8079 0x807D 0x807E 0x807F 0x8084 0x8085 0x8086 0x8087 0x8089 0x808B 0x808C 0x8093 0x8096 0x8098 0x809A 0x809B 0x809D 0x80A1 0x80A2 0x80A5 0x80A9 0x80AA 0x80AC 0x80AD 0x80AF 0x80B1 0x80B2 0x80B4 0x80BA 0x80C3 0x80C4 0x80C6 0x80CC 0x80CE 0x80D6 0x80D9 0x80DA 0x80DB 0x80DD 0x80DE 0x80E1 0x80E4 0x80E5 0x80EF 0x80F1 0x80F4 0x80F8 0x80FC 0x80FD 0x8102 0x8105 0x8106 0x8107 0x8108 0x8109 0x810A 0x811A 0x811B 0x8123 0x8129 0x812F 0x8131 0x8133 0x8139 0x813E 0x8146 0x814B 0x814E 0x8150 0x8151 0x8153 0x8154 0x8155 0x815F 0x8165 0x8166 0x816B 0x816E 0x8170 0x8171 0x8174 0x8178 0x8179 0x817A 0x817F 0x8180 0x8182 0x8183 0x8188 0x818A 0x818F 0x8193 0x8195 0x819A 0x819C 0x819D 0x81A0 0x81A3 0x81A4 0x81A8 0x81A9 0x81B0 0x81B3 0x81B5 0x81B8 0x81BA 0x81BD 0x81BE 0x81BF 0x81C0 0x81C2 0x81C6 0x81C8 0x81C9 0x81CD 0x81D1 0x81D3 0x81D8 0x81D9 0x81DA 0x81DF 0x81E0 0x81E3 0x81E5 0x81E7 0x81E8 0x81EA 0x81ED 0x81F3 0x81F4 0x81FA 0x81FB 0x81FC 0x81FE 0x8201 0x8202 0x8205 0x8207 0x8208 0x8209 0x820A 0x820C 0x820D 0x820E 0x8210 0x8212 0x8216 0x8217 0x8218 0x821B 0x821C 0x821E 0x821F 0x8229 0x822A 0x822B 0x822C 0x822E 0x8233 0x8235 0x8236 0x8237 0x8238 0x8239 0x8240 0x8247 0x8258 0x8259 0x825A 0x825D 0x825F 0x8262 0x8264 0x8266 0x8268 0x826A 0x826B 0x826E 0x826F 0x8271 0x8272 0x8276 0x8277 0x8278 0x827E 0x828B 0x828D 0x8292 0x8299 0x829D 0x829F 0x82A5 0x82A6 0x82AB 0x82AC 0x82AD 0x82AF 0x82B1 0x82B3 0x82B8 0x82B9 0x82BB 0x82BD 0x82C5 0x82D1 0x82D2 0x82D3 0x82D4 0x82D7 0x82D9 0x82DB 0x82DC 0x82DE 0x82DF 0x82E1 0x82E3 0x82E5 0x82E6 0x82E7 0x82EB 0x82F1 0x82F3 0x82F4 0x82F9 0x82FA 0x82FB 0x8302 0x8303 0x8304 0x8305 0x8306 0x8309 0x830E 0x8316 0x8317 0x8318 0x831C 0x8323 0x8328 0x832B 0x832F 0x8331 0x8332 0x8334 0x8335 0x8336 0x8338 0x8339 0x8340 0x8345 0x8349 0x834A 0x834F 0x8350 0x8352 0x8358 0x8373 0x8375 0x8377 0x837B 0x837C 0x8385 0x8387 0x8389 0x838A 0x838E 0x8393 0x8396 0x839A 0x839E 0x839F 0x83A0 0x83A2 0x83A8 0x83AA 0x83AB 0x83B1 0x83B5 0x83BD 0x83C1 0x83C5 0x83CA 0x83CC 0x83CE 0x83D3 0x83D6 0x83D8 0x83DC 0x83DF 0x83E0 0x83E9 0x83EB 0x83EF 0x83F0 0x83F1 0x83F2 0x83F4 0x83F7 0x83FB 0x83FD 0x8403 0x8404 0x8407 0x840B 0x840C 0x840D 0x840E 0x8413 0x8420 0x8422 0x8429 0x842A 0x842C 0x8431 0x8435 0x8438 0x843C 0x843D 0x8446 0x8449 0x844E 0x8457 0x845B 0x8461 0x8462 0x8463 0x8466 0x8469 0x846B 0x846C 0x846D 0x846E 0x846F 0x8471 0x8475 0x8477 0x8479 0x847A 0x8482 0x8484 0x848B 0x8490 0x8494 0x8499 0x849C 0x849F 0x84A1 0x84AD 0x84B2 0x84B8 0x84B9 0x84BB 0x84BC 0x84BF 0x84C1 0x84C4 0x84C6 0x84C9 0x84CA 0x84CB 0x84CD 0x84D0 0x84D1 0x84D6 0x84D9 0x84DA 0x84EC 0x84EE 0x84F4 0x84FC 0x84FF 0x8500 0x8506 0x8511 0x8513 0x8514 0x8515 0x8517 0x8518 0x851A 0x851F 0x8521 0x8526 0x852C 0x852D 0x8535 0x853D 0x8540 0x8541 0x8543 0x8548 0x8549 0x854A 0x854B 0x854E 0x8555 0x8557 0x8558 0x855A 0x8563 0x8568 0x8569 0x856A 0x856D 0x8577 0x857E 0x8580 0x8584 0x8587 0x8588 0x858A 0x8590 0x8591 0x8594 0x8597 0x8599 0x859B 0x859C 0x85A4 0x85A6 0x85A8 0x85A9 0x85AA 0x85AB 0x85AC 0x85AE 0x85AF 0x85B9 0x85BA 0x85C1 0x85C9 0x85CD 0x85CF 0x85D0 0x85D5 0x85DC 0x85DD 0x85E4 0x85E5 0x85E9 0x85EA 0x85F7 0x85F9 0x85FA 0x85FB 0x85FE 0x8602 0x8606 0x8607 0x860A 0x860B 0x8613 0x8616 0x8617 0x861A 0x8622 0x862D 0x862F 0x8630 0x863F 0x864D 0x864E 0x8650 0x8654 0x8655 0x865A 0x865C 0x865E 0x865F 0x8667 0x866B 0x8671 0x8679 0x867B 0x868A 0x868B 0x868C 0x8693 0x8695 0x86A3 0x86A4 0x86A9 0x86AA 0x86AB 0x86AF 0x86B0 0x86B6 0x86C4 0x86C6 0x86C7 0x86C9 0x86CB 0x86CD 0x86CE 0x86D4 0x86D9 0x86DB 0x86DE 0x86DF 0x86E4 0x86E9 0x86EC 0x86ED 0x86EE 0x86EF 0x86F8 0x86F9 0x86FB 0x86FE 0x8700 0x8702 0x8703 0x8706 0x8708 0x8709 0x870A 0x870D 0x8711 0x8712 0x8718 0x871A 0x871C 0x8725 0x8729 0x8734 0x8737 0x873B 0x873F 0x8749 0x874B 0x874C 0x874E 0x8753 0x8755 0x8757 0x8759 0x875F 0x8760 0x8763 0x8766 0x8768 0x876A 0x876E 0x8774 0x8776 0x8778 0x877F 0x8782 0x878D 0x879F 0x87A2 0x87AB 0x87AF 0x87B3 0x87BA 0x87BB 0x87BD 0x87C0 0x87C4 0x87C6 0x87C7 0x87CB 0x87D0 0x87D2 0x87E0 0x87EF 0x87F2 0x87F6 0x87F7 0x87F9 0x87FB 0x87FE 0x8805 0x880D 0x880E 0x880F 0x8811 0x8815 0x8816 0x8821 0x8822 0x8823 0x8827 0x8831 0x8836 0x8839 0x883B 0x8840 0x8842 0x8844 0x8846 0x884C 0x884D 0x8852 0x8853 0x8857 0x8859 0x885B 0x885D 0x885E 0x8861 0x8862 0x8863 0x8868 0x886B 0x8870 0x8872 0x8875 0x8877 0x887D 0x887E 0x887F 0x8881 0x8882 0x8888 0x888B 0x888D 0x8892 0x8896 0x8897 0x8899 0x889E 0x88A2 0x88A4 0x88AB 0x88AE 0x88B0 0x88B1 0x88B4 0x88B5 0x88B7 0x88BF 0x88C1 0x88C2 0x88C3 0x88C4 0x88C5 0x88CF 0x88D4 0x88D5 0x88D8 0x88D9 0x88DC 0x88DD 0x88DF 0x88E1 0x88E8 0x88F2 0x88F3 0x88F4 0x88F8 0x88F9 0x88FC 0x88FD 0x88FE 0x8902 0x8904 0x8907 0x890A 0x890C 0x8910 0x8912 0x8913 0x891D 0x891E 0x8925 0x892A 0x892B 0x8936 0x8938 0x893B 0x8941 0x8943 0x8944 0x894C 0x894D 0x8956 0x895E 0x895F 0x8960 0x8964 0x8966 0x896A 0x896D 0x896F 0x8972 0x8974 0x8977 0x897E 0x897F 0x8981 0x8983 0x8986 0x8987 0x8988 0x898A 0x898B 0x898F 0x8993 0x8996 0x8997 0x8998 0x899A 0x89A1 0x89A6 0x89A7 0x89A9 0x89AA 0x89AC 0x89AF 0x89B2 0x89B3 0x89BA 0x89BD 0x89BF 0x89C0 0x89D2 0x89DA 0x89DC 0x89DD 0x89E3 0x89E6 0x89E7 0x89F4 0x89F8 0x8A00 0x8A02 0x8A03 0x8A08 0x8A0A 0x8A0C 0x8A0E 0x8A10 0x8A13 0x8A16 0x8A17 0x8A18 0x8A1B 0x8A1D 0x8A1F 0x8A23 0x8A25 0x8A2A 0x8A2D 0x8A31 0x8A33 0x8A34 0x8A36 0x8A3A 0x8A3B 0x8A3C 0x8A41 0x8A46 0x8A48 0x8A50 0x8A51 0x8A52 0x8A54 0x8A55 0x8A5B 0x8A5E 0x8A60 0x8A62 0x8A63 0x8A66 0x8A69 0x8A6B 0x8A6C 0x8A6D 0x8A6E 0x8A70 0x8A71 0x8A72 0x8A73 0x8A7C 0x8A82 0x8A84 0x8A85 0x8A87 0x8A89 0x8A8C 0x8A8D 0x8A91 0x8A93 0x8A95 0x8A98 0x8A9A 0x8A9E 0x8AA0 0x8AA1 0x8AA3 0x8AA4 0x8AA5 0x8AA6 0x8AA8 0x8AAC 0x8AAD 0x8AB0 0x8AB2 0x8AB9 0x8ABC 0x8ABF 0x8AC2 0x8AC4 0x8AC7 0x8ACB 0x8ACC 0x8ACD 0x8ACF 0x8AD2 0x8AD6 0x8ADA 0x8ADB 0x8ADC 0x8ADE 0x8AE0 0x8AE1 0x8AE2 0x8AE4 0x8AE6 0x8AE7 0x8AEB 0x8AED 0x8AEE 0x8AF1 0x8AF3 0x8AF7 0x8AF8 0x8AFA 0x8AFE 0x8B00 0x8B01 0x8B02 0x8B04 0x8B07 0x8B0C 0x8B0E 0x8B10 0x8B14 0x8B16 0x8B17 0x8B19 0x8B1A 0x8B1B 0x8B1D 0x8B20 0x8B21 0x8B26 0x8B28 0x8B2B 0x8B2C 0x8B33 0x8B39 0x8B3E 0x8B41 0x8B49 0x8B4C 0x8B4E 0x8B4F 0x8B56 0x8B58 0x8B5A 0x8B5B 0x8B5C 0x8B5F 0x8B66 0x8B6B 0x8B6C 0x8B6F 0x8B70 0x8B71 0x8B72 0x8B74 0x8B77 0x8B7D 0x8B80 0x8B83 0x8B8A 0x8B8C 0x8B8E 0x8B90 0x8B92 0x8B93 0x8B96 0x8B99 0x8B9A 0x8C37 0x8C3A 0x8C3F 0x8C41 0x8C46 0x8C48 0x8C4A 0x8C4C 0x8C4E 0x8C50 0x8C55 0x8C5A 0x8C61 0x8C62 0x8C6A 0x8C6B 0x8C6C 0x8C78 0x8C79 0x8C7A 0x8C7C 0x8C82 0x8C85 0x8C89 0x8C8A 0x8C8C 0x8C8D 0x8C8E 0x8C94 0x8C98 0x8C9D 0x8C9E 0x8CA0 0x8CA1 0x8CA2 0x8CA7 0x8CA8 0x8CA9 0x8CAA 0x8CAB 0x8CAC 0x8CAD 0x8CAE 0x8CAF 0x8CB0 0x8CB2 0x8CB3 0x8CB4 0x8CB6 0x8CB7 0x8CB8 0x8CBB 0x8CBC 0x8CBD 0x8CBF 0x8CC0 0x8CC1 0x8CC2 0x8CC3 0x8CC4 0x8CC7 0x8CC8 0x8CCA 0x8CCD 0x8CCE 0x8CD1 0x8CD3 0x8CDA 0x8CDB 0x8CDC 0x8CDE 0x8CE0 0x8CE2 0x8CE3 0x8CE4 0x8CE6 0x8CEA 0x8CED 0x8CFA 0x8CFB 0x8CFC 0x8CFD 0x8D04 0x8D05 0x8D07 0x8D08 0x8D0A 0x8D0B 0x8D0D 0x8D0F 0x8D10 0x8D13 0x8D14 0x8D16 0x8D64 0x8D66 0x8D67 0x8D6B 0x8D6D 0x8D70 0x8D71 0x8D73 0x8D74 0x8D77 0x8D81 0x8D85 0x8D8A 0x8D99 0x8DA3 0x8DA8 0x8DB3 0x8DBA 0x8DBE 0x8DC2 0x8DCB 0x8DCC 0x8DCF 0x8DD6 0x8DDA 0x8DDB 0x8DDD 0x8DDF 0x8DE1 0x8DE3 0x8DE8 0x8DEA 0x8DEB 0x8DEF 0x8DF3 0x8DF5 0x8DFC 0x8DFF 0x8E08 0x8E09 0x8E0A 0x8E0F 0x8E10 0x8E1D 0x8E1E 0x8E1F 0x8E2A 0x8E30 0x8E34 0x8E35 0x8E42 0x8E44 0x8E47 0x8E48 0x8E49 0x8E4A 0x8E4C 0x8E50 0x8E55 0x8E59 0x8E5F 0x8E60 0x8E63 0x8E64 0x8E72 0x8E74 0x8E76 0x8E7C 0x8E81 0x8E84 0x8E85 0x8E87 0x8E8A 0x8E8B 0x8E8D 0x8E91 0x8E93 0x8E94 0x8E99 0x8EA1 0x8EAA 0x8EAB 0x8EAC 0x8EAF 0x8EB0 0x8EB1 0x8EBE 0x8EC5 0x8EC6 0x8EC8 0x8ECA 0x8ECB 0x8ECC 0x8ECD 0x8ED2 0x8EDB 0x8EDF 0x8EE2 0x8EE3 0x8EEB 0x8EF8 0x8EFB 0x8EFC 0x8EFD 0x8EFE 0x8F03 0x8F05 0x8F09 0x8F0A 0x8F0C 0x8F12 0x8F13 0x8F14 0x8F15 0x8F19 0x8F1B 0x8F1C 0x8F1D 0x8F1F 0x8F26 0x8F29 0x8F2A 0x8F2F 0x8F33 0x8F38 0x8F39 0x8F3B 0x8F3E 0x8F3F 0x8F42 0x8F44 0x8F45 0x8F46 0x8F49 0x8F4C 0x8F4D 0x8F4E 0x8F57 0x8F5C 0x8F5F 0x8F61 0x8F62 0x8F63 0x8F64 0x8F9B 0x8F9C 0x8F9E 0x8F9F 0x8FA3 0x8FA7 0x8FA8 0x8FAD 0x8FAE 0x8FAF 0x8FB0 0x8FB1 0x8FB2 0x8FB7 0x8FBA 0x8FBB 0x8FBC 0x8FBF 0x8FC2 0x8FC4 0x8FC5 0x8FCE 0x8FD1 0x8FD4 0x8FDA 0x8FE2 0x8FE5 0x8FE6 0x8FE9 0x8FEA 0x8FEB 0x8FED 0x8FEF 0x8FF0 0x8FF4 0x8FF7 0x8FF8 0x8FF9 0x8FFA 0x8FFD 0x9000 0x9001 0x9003 0x9005 0x9006 0x900B 0x900D 0x900E 0x900F 0x9010 0x9011 0x9013 0x9014 0x9015 0x9016 0x9017 0x9019 0x901A 0x901D 0x901E 0x901F 0x9020 0x9021 0x9022 0x9023 0x9027 0x902E 0x9031 0x9032 0x9035 0x9036 0x9038 0x9039 0x903C 0x903E 0x9041 0x9042 0x9045 0x9047 0x9049 0x904A 0x904B 0x904D 0x904E 0x904F 0x9050 0x9051 0x9052 0x9053 0x9054 0x9055 0x9056 0x9058 0x9059 0x905C 0x905E 0x9060 0x9061 0x9063 0x9065 0x9068 0x9069 0x906D 0x906E 0x906F 0x9072 0x9075 0x9076 0x9077 0x9078 0x907A 0x907C 0x907D 0x907F 0x9080 0x9081 0x9082 0x9083 0x9084 0x9087 0x9089 0x908A 0x908F 0x9091 0x90A3 0x90A6 0x90A8 0x90AA 0x90AF 0x90B1 0x90B5 0x90B8 0x90C1 0x90CA 0x90CE 0x90DB 0x90E1 0x90E2 0x90E4 0x90E8 0x90ED 0x90F5 0x90F7 0x90FD 0x9102 0x9112 0x9119 0x912D 0x9130 0x9132 0x9149 0x914A 0x914B 0x914C 0x914D 0x914E 0x9152 0x9154 0x9156 0x9158 0x9162 0x9163 0x9165 0x9169 0x916A 0x916C 0x9172 0x9173 0x9175 0x9177 0x9178 0x9182 0x9187 0x9189 0x918B 0x918D 0x9190 0x9192 0x9197 0x919C 0x91A2 0x91A4 0x91AA 0x91AB 0x91AF 0x91B4 0x91B5 0x91B8 0x91BA 0x91C0 0x91C1 0x91C6 0x91C7 0x91C8 0x91C9 0x91CB 0x91CC 0x91CD 0x91CE 0x91CF 0x91D0 0x91D1 0x91D6 0x91D8 0x91DB 0x91DC 0x91DD 0x91DF 0x91E1 0x91E3 0x91E6 0x91E7 0x91F5 0x91F6 0x91FC 0x91FF 0x920D 0x920E 0x9211 0x9214 0x9215 0x921E 0x9229 0x922C 0x9234 0x9237 0x923F 0x9244 0x9245 0x9248 0x9249 0x924B 0x9250 0x9257 0x925A 0x925B 0x925E 0x9262 0x9264 0x9266 0x9271 0x927E 0x9280 0x9283 0x9285 0x9291 0x9293 0x9295 0x9296 0x9298 0x929A 0x929B 0x929C 0x92AD 0x92B7 0x92B9 0x92CF 0x92D2 0x92E4 0x92E9 0x92EA 0x92ED 0x92F2 0x92F3 0x92F8 0x92FA 0x92FC 0x9306 0x930F 0x9310 0x9318 0x9319 0x931A 0x9320 0x9322 0x9323 0x9326 0x9328 0x932B 0x932C 0x932E 0x932F 0x9332 0x9335 0x933A 0x933B 0x9344 0x934B 0x934D 0x9354 0x9356 0x935B 0x935C 0x9360 0x936C 0x936E 0x9375 0x937C 0x937E 0x938C 0x9394 0x9396 0x9397 0x939A 0x93A7 0x93AC 0x93AD 0x93AE 0x93B0 0x93B9 0x93C3 0x93C8 0x93D0 0x93D1 0x93D6 0x93D7 0x93D8 0x93DD 0x93E1 0x93E4 0x93E5 0x93E8 0x9403 0x9407 0x9410 0x9413 0x9414 0x9418 0x9419 0x941A 0x9421 0x942B 0x9435 0x9436 0x9438 0x943A 0x9441 0x9444 0x9451 0x9452 0x9453 0x945A 0x945B 0x945E 0x9460 0x9462 0x946A 0x9470 0x9475 0x9477 0x947C 0x947D 0x947E 0x947F 0x9481 0x9577 0x9580 0x9582 0x9583 0x9587 0x9589 0x958A 0x958B 0x958F 0x9591 0x9593 0x9594 0x9596 0x9598 0x9599 0x95A0 0x95A2 0x95A3 0x95A4 0x95A5 0x95A7 0x95A8 0x95AD 0x95B2 0x95B9 0x95BB 0x95BC 0x95BE 0x95C3 0x95C7 0x95CA 0x95CC 0x95CD 0x95D4 0x95D5 0x95D6 0x95D8 0x95DC 0x95E1 0x95E2 0x95E5 0x961C 0x9621 0x9628 0x962A 0x962E 0x962F 0x9632 0x963B 0x963F 0x9640 0x9642 0x9644 0x964B 0x964C 0x964D 0x964F 0x9650 0x965B 0x965C 0x965D 0x965E 0x965F 0x9662 0x9663 0x9664 0x9665 0x9666 0x966A 0x966C 0x9670 0x9672 0x9673 0x9675 0x9676 0x9677 0x9678 0x967A 0x967D 0x9685 0x9686 0x9688 0x968A 0x968B 0x968D 0x968E 0x968F 0x9694 0x9695 0x9697 0x9698 0x9699 0x969B 0x969C 0x96A0 0x96A3 0x96A7 0x96A8 0x96AA 0x96B0 0x96B1 0x96B2 0x96B4 0x96B6 0x96B7 0x96B8 0x96B9 0x96BB 0x96BC 0x96C0 0x96C1 0x96C4 0x96C5 0x96C6 0x96C7 0x96C9 0x96CB 0x96CC 0x96CD 0x96CE 0x96D1 0x96D5 0x96D6 0x96D9 0x96DB 0x96DC 0x96E2 0x96E3 0x96E8 0x96EA 0x96EB 0x96F0 0x96F2 0x96F6 0x96F7 0x96F9 0x96FB 0x9700 0x9704 0x9706 0x9707 0x9708 0x970A 0x970D 0x970E 0x970F 0x9711 0x9713 0x9716 0x9719 0x971C 0x971E 0x9724 0x9727 0x972A 0x9730 0x9732 0x9738 0x9739 0x973D 0x973E 0x9742 0x9744 0x9746 0x9748 0x9749 0x9752 0x9756 0x9759 0x975C 0x975E 0x9760 0x9761 0x9762 0x9764 0x9766 0x9768 0x9769 0x976B 0x976D 0x9771 0x9774 0x9779 0x977A 0x977C 0x9781 0x9784 0x9785 0x9786 0x978B 0x978D 0x978F 0x9790 0x9798 0x979C 0x97A0 0x97A3 0x97A6 0x97A8 0x97AB 0x97AD 0x97B3 0x97B4 0x97C3 0x97C6 0x97C8 0x97CB 0x97D3 0x97DC 0x97ED 0x97EE 0x97F2 0x97F3 0x97F5 0x97F6 0x97FB 0x97FF 0x9801 0x9802 0x9803 0x9805 0x9806 0x9808 0x980C 0x980F 0x9810 0x9811 0x9812 0x9813 0x9817 0x9818 0x981A 0x9821 0x9824 0x982C 0x982D 0x9834 0x9837 0x9838 0x983B 0x983C 0x983D 0x9846 0x984B 0x984C 0x984D 0x984E 0x984F 0x9854 0x9855 0x9858 0x985B 0x985E 0x9867 0x986B 0x986F 0x9870 0x9871 0x9873 0x9874 0x98A8 0x98AA 0x98AF 0x98B1 0x98B6 0x98C3 0x98C4 0x98C6 0x98DB 0x98DC 0x98DF 0x98E2 0x98E9 0x98EB 0x98ED 0x98EE 0x98EF 0x98F2 0x98F4 0x98FC 0x98FD 0x98FE 0x9903 0x9905 0x9909 0x990A 0x990C 0x9910 0x9912 0x9913 0x9914 0x9918 0x991D 0x991E 0x9920 0x9921 0x9924 0x9928 0x992C 0x992E 0x993D 0x993E 0x9942 0x9945 0x9949 0x994B 0x994C 0x9950 0x9951 0x9952 0x9955 0x9957 0x9996 0x9997 0x9998 0x9999 0x99A5 0x99A8 0x99AC 0x99AD 0x99AE 0x99B3 0x99B4 0x99BC 0x99C1 0x99C4 0x99C5 0x99C6 0x99C8 0x99D0 0x99D1 0x99D2 0x99D5 0x99D8 0x99DB 0x99DD 0x99DF 0x99E2 0x99ED 0x99EE 0x99F1 0x99F2 0x99F8 0x99FB 0x99FF 0x9A01 0x9A05 0x9A0E 0x9A0F 0x9A12 0x9A13 0x9A19 0x9A28 0x9A2B 0x9A30 0x9A37 0x9A3E 0x9A40 0x9A42 0x9A43 0x9A45 0x9A4D 0x9A55 0x9A57 0x9A5A 0x9A5B 0x9A5F 0x9A62 0x9A64 0x9A65 0x9A69 0x9A6A 0x9A6B 0x9AA8 0x9AAD 0x9AB0 0x9AB8 0x9ABC 0x9AC0 0x9AC4 0x9ACF 0x9AD1 0x9AD3 0x9AD4 0x9AD8 0x9ADE 0x9ADF 0x9AE2 0x9AE3 0x9AE6 0x9AEA 0x9AEB 0x9AED 0x9AEE 0x9AEF 0x9AF1 0x9AF4 0x9AF7 0x9AFB 0x9B06 0x9B18 0x9B1A 0x9B1F 0x9B22 0x9B23 0x9B25 0x9B27 0x9B28 0x9B29 0x9B2A 0x9B2E 0x9B2F 0x9B31 0x9B32 0x9B3B 0x9B3C 0x9B41 0x9B42 0x9B43 0x9B44 0x9B45 0x9B4D 0x9B4E 0x9B4F 0x9B51 0x9B54 0x9B58 0x9B5A 0x9B6F 0x9B74 0x9B83 0x9B8E 0x9B91 0x9B92 0x9B93 0x9B96 0x9B97 0x9B9F 0x9BA0 0x9BA8 0x9BAA 0x9BAB 0x9BAD 0x9BAE 0x9BB4 0x9BB9 0x9BC0 0x9BC6 0x9BC9 0x9BCA 0x9BCF 0x9BD1 0x9BD2 0x9BD4 0x9BD6 0x9BDB 0x9BE1 0x9BE2 0x9BE3 0x9BE4 0x9BE8 0x9BF0 0x9BF1 0x9BF2 0x9BF5 0x9C04 0x9C06 0x9C08 0x9C09 0x9C0A 0x9C0C 0x9C0D 0x9C10 0x9C12 0x9C13 0x9C14 0x9C15 0x9C1B 0x9C21 0x9C24 0x9C25 0x9C2D 0x9C2E 0x9C2F 0x9C30 0x9C32 0x9C39 0x9C3A 0x9C3B 0x9C3E 0x9C46 0x9C47 0x9C48 0x9C52 0x9C57 0x9C5A 0x9C60 0x9C67 0x9C76 0x9C78 0x9CE5 0x9CE7 0x9CE9 0x9CEB 0x9CEC 0x9CF0 0x9CF3 0x9CF4 0x9CF6 0x9D03 0x9D06 0x9D07 0x9D08 0x9D09 0x9D0E 0x9D12 0x9D15 0x9D1B 0x9D1F 0x9D23 0x9D26 0x9D28 0x9D2A 0x9D2B 0x9D2C 0x9D3B 0x9D3E 0x9D3F 0x9D41 0x9D44 0x9D46 0x9D48 0x9D50 0x9D51 0x9D59 0x9D5C 0x9D5D 0x9D5E 0x9D60 0x9D61 0x9D64 0x9D6C 0x9D6F 0x9D72 0x9D7A 0x9D87 0x9D89 0x9D8F 0x9D9A 0x9DA4 0x9DA9 0x9DAB 0x9DAF 0x9DB2 0x9DB4 0x9DB8 0x9DBA 0x9DBB 0x9DC1 0x9DC2 0x9DC4 0x9DC6 0x9DCF 0x9DD3 0x9DD9 0x9DE6 0x9DED 0x9DEF 0x9DF2 0x9DF8 0x9DF9 0x9DFA 0x9DFD 0x9E1A 0x9E1B 0x9E1E 0x9E75 0x9E78 0x9E79 0x9E7D 0x9E7F 0x9E81 0x9E88 0x9E8B 0x9E8C 0x9E91 0x9E92 0x9E93 0x9E95 0x9E97 0x9E9D 0x9E9F 0x9EA5 0x9EA6 0x9EA9 0x9EAA 0x9EAD 0x9EB8 0x9EB9 0x9EBA 0x9EBB 0x9EBC 0x9EBE 0x9EBF 0x9EC4 0x9ECC 0x9ECD 0x9ECE 0x9ECF 0x9ED0 0x9ED2 0x9ED4 0x9ED8 0x9ED9 0x9EDB 0x9EDC 0x9EDD 0x9EDE 0x9EE0 0x9EE5 0x9EE8 0x9EEF 0x9EF4 0x9EF6 0x9EF7 0x9EF9 0x9EFB 0x9EFC 0x9EFD 0x9F07 0x9F08 0x9F0E 0x9F13 0x9F15 0x9F20 0x9F21 0x9F2C 0x9F3B 0x9F3E 0x9F4A 0x9F4B 0x9F4E 0x9F4F 0x9F52 0x9F54 0x9F5F 0x9F60 0x9F61 0x9F62 0x9F63 0x9F66 0x9F67 0x9F6A 0x9F6C 0x9F72 0x9F76 0x9F77 0x9F8D 0x9F95 0x9F9C 0x9F9D 0x9FA0 0xFF01 FULLWIDTH EXCLAMATION MARK 0xFF03 FULLWIDTH NUMBER SIGN 0xFF04 FULLWIDTH DOLLAR SIGN 0xFF05 FULLWIDTH PERCENT SIGN 0xFF06 FULLWIDTH AMPERSAND 0xFF08 FULLWIDTH LEFT PARENTHESIS 0xFF09 FULLWIDTH RIGHT PARENTHESIS 0xFF0A FULLWIDTH ASTERISK 0xFF0B FULLWIDTH PLUS SIGN 0xFF0C FULLWIDTH COMMA 0xFF0E FULLWIDTH FULL STOP 0xFF0F FULLWIDTH SOLIDUS 0xFF10 FULLWIDTH DIGIT ZERO 0xFF11 FULLWIDTH DIGIT ONE 0xFF12 FULLWIDTH DIGIT TWO 0xFF13 FULLWIDTH DIGIT THREE 0xFF14 FULLWIDTH DIGIT FOUR 0xFF15 FULLWIDTH DIGIT FIVE 0xFF16 FULLWIDTH DIGIT SIX 0xFF17 FULLWIDTH DIGIT SEVEN 0xFF18 FULLWIDTH DIGIT EIGHT 0xFF19 FULLWIDTH DIGIT NINE 0xFF1A FULLWIDTH COLON 0xFF1B FULLWIDTH SEMICOLON 0xFF1C FULLWIDTH LESS-THAN SIGN 0xFF1D FULLWIDTH EQUALS SIGN 0xFF1E FULLWIDTH GREATER-THAN SIGN 0xFF1F FULLWIDTH QUESTION MARK 0xFF20 FULLWIDTH COMMERCIAL AT 0xFF21 FULLWIDTH LATIN CAPITAL LETTER A 0xFF22 FULLWIDTH LATIN CAPITAL LETTER B 0xFF23 FULLWIDTH LATIN CAPITAL LETTER C 0xFF24 FULLWIDTH LATIN CAPITAL LETTER D 0xFF25 FULLWIDTH LATIN CAPITAL LETTER E 0xFF26 FULLWIDTH LATIN CAPITAL LETTER F 0xFF27 FULLWIDTH LATIN CAPITAL LETTER G 0xFF28 FULLWIDTH LATIN CAPITAL LETTER H 0xFF29 FULLWIDTH LATIN CAPITAL LETTER I 0xFF2A FULLWIDTH LATIN CAPITAL LETTER J 0xFF2B FULLWIDTH LATIN CAPITAL LETTER K 0xFF2C FULLWIDTH LATIN CAPITAL LETTER L 0xFF2D FULLWIDTH LATIN CAPITAL LETTER M 0xFF2E FULLWIDTH LATIN CAPITAL LETTER N 0xFF2F FULLWIDTH LATIN CAPITAL LETTER O 0xFF30 FULLWIDTH LATIN CAPITAL LETTER P 0xFF31 FULLWIDTH LATIN CAPITAL LETTER Q 0xFF32 FULLWIDTH LATIN CAPITAL LETTER R 0xFF33 FULLWIDTH LATIN CAPITAL LETTER S 0xFF34 FULLWIDTH LATIN CAPITAL LETTER T 0xFF35 FULLWIDTH LATIN CAPITAL LETTER U 0xFF36 FULLWIDTH LATIN CAPITAL LETTER V 0xFF37 FULLWIDTH LATIN CAPITAL LETTER W 0xFF38 FULLWIDTH LATIN CAPITAL LETTER X 0xFF39 FULLWIDTH LATIN CAPITAL LETTER Y 0xFF3A FULLWIDTH LATIN CAPITAL LETTER Z 0xFF3B FULLWIDTH LEFT SQUARE BRACKET 0xFF3D FULLWIDTH RIGHT SQUARE BRACKET 0xFF3E FULLWIDTH CIRCUMFLEX ACCENT 0xFF3F FULLWIDTH LOW LINE 0xFF40 FULLWIDTH GRAVE ACCENT 0xFF41 FULLWIDTH LATIN SMALL LETTER A 0xFF42 FULLWIDTH LATIN SMALL LETTER B 0xFF43 FULLWIDTH LATIN SMALL LETTER C 0xFF44 FULLWIDTH LATIN SMALL LETTER D 0xFF45 FULLWIDTH LATIN SMALL LETTER E 0xFF46 FULLWIDTH LATIN SMALL LETTER F 0xFF47 FULLWIDTH LATIN SMALL LETTER G 0xFF48 FULLWIDTH LATIN SMALL LETTER H 0xFF49 FULLWIDTH LATIN SMALL LETTER I 0xFF4A FULLWIDTH LATIN SMALL LETTER J 0xFF4B FULLWIDTH LATIN SMALL LETTER K 0xFF4C FULLWIDTH LATIN SMALL LETTER L 0xFF4D FULLWIDTH LATIN SMALL LETTER M 0xFF4E FULLWIDTH LATIN SMALL LETTER N 0xFF4F FULLWIDTH LATIN SMALL LETTER O 0xFF50 FULLWIDTH LATIN SMALL LETTER P 0xFF51 FULLWIDTH LATIN SMALL LETTER Q 0xFF52 FULLWIDTH LATIN SMALL LETTER R 0xFF53 FULLWIDTH LATIN SMALL LETTER S 0xFF54 FULLWIDTH LATIN SMALL LETTER T 0xFF55 FULLWIDTH LATIN SMALL LETTER U 0xFF56 FULLWIDTH LATIN SMALL LETTER V 0xFF57 FULLWIDTH LATIN SMALL LETTER W 0xFF58 FULLWIDTH LATIN SMALL LETTER X 0xFF59 FULLWIDTH LATIN SMALL LETTER Y 0xFF5A FULLWIDTH LATIN SMALL LETTER Z 0xFF5B FULLWIDTH LEFT CURLY BRACKET 0xFF5C FULLWIDTH VERTICAL LINE 0xFF5D FULLWIDTH RIGHT CURLY BRACKET 0xFFE3 FULLWIDTH MACRON 0xFFE5 FULLWIDTH YEN SIGN Lib/gftools/encodings/kannada_unique-glyphs.nam000066400000000000000000000056111376445505300222150ustar00rootroot000000000000000x0964 । DEVANAGARI DANDA 0x0965 ॥ DEVANAGARI DOUBLE DANDA 0x0C82 ಂ KANNADA SIGN ANUSVARA 0x0C83 ಃ KANNADA SIGN VISARGA 0x0C85 ಅ KANNADA LETTER A 0x0C86 ಆ KANNADA LETTER AA 0x0C87 ಇ KANNADA LETTER I 0x0C88 ಈ KANNADA LETTER II 0x0C89 ಉ KANNADA LETTER U 0x0C8A ಊ KANNADA LETTER UU 0x0C8B ಋ KANNADA LETTER VOCALIC R 0x0C8C ಌ KANNADA LETTER VOCALIC L 0x0C8E ಎ KANNADA LETTER E 0x0C8F ಏ KANNADA LETTER EE 0x0C90 ಐ KANNADA LETTER AI 0x0C92 ಒ KANNADA LETTER O 0x0C93 ಓ KANNADA LETTER OO 0x0C94 ಔ KANNADA LETTER AU 0x0C95 ಕ KANNADA LETTER KA 0x0C96 ಖ KANNADA LETTER KHA 0x0C97 ಗ KANNADA LETTER GA 0x0C98 ಘ KANNADA LETTER GHA 0x0C99 ಙ KANNADA LETTER NGA 0x0C9A ಚ KANNADA LETTER CA 0x0C9B ಛ KANNADA LETTER CHA 0x0C9C ಜ KANNADA LETTER JA 0x0C9D ಝ KANNADA LETTER JHA 0x0C9E ಞ KANNADA LETTER NYA 0x0C9F ಟ KANNADA LETTER TTA 0x0CA0 ಠ KANNADA LETTER TTHA 0x0CA1 ಡ KANNADA LETTER DDA 0x0CA2 ಢ KANNADA LETTER DDHA 0x0CA3 ಣ KANNADA LETTER NNA 0x0CA4 ತ KANNADA LETTER TA 0x0CA5 ಥ KANNADA LETTER THA 0x0CA6 ದ KANNADA LETTER DA 0x0CA7 ಧ KANNADA LETTER DHA 0x0CA8 ನ KANNADA LETTER NA 0x0CAA ಪ KANNADA LETTER PA 0x0CAB ಫ KANNADA LETTER PHA 0x0CAC ಬ KANNADA LETTER BA 0x0CAD ಭ KANNADA LETTER BHA 0x0CAE ಮ KANNADA LETTER MA 0x0CAF ಯ KANNADA LETTER YA 0x0CB0 ರ KANNADA LETTER RA 0x0CB1 ಱ KANNADA LETTER RRA 0x0CB2 ಲ KANNADA LETTER LA 0x0CB3 ಳ KANNADA LETTER LLA 0x0CB5 ವ KANNADA LETTER VA 0x0CB6 ಶ KANNADA LETTER SHA 0x0CB7 ಷ KANNADA LETTER SSA 0x0CB8 ಸ KANNADA LETTER SA 0x0CB9 ಹ KANNADA LETTER HA 0x0CBC ಼ KANNADA SIGN NUKTA 0x0CBD ಽ KANNADA SIGN AVAGRAHA 0x0CBE ಾ KANNADA VOWEL SIGN AA 0x0CBF ಿ KANNADA VOWEL SIGN I 0x0CC0 ೀ KANNADA VOWEL SIGN II 0x0CC1 ು KANNADA VOWEL SIGN U 0x0CC2 ೂ KANNADA VOWEL SIGN UU 0x0CC3 ೃ KANNADA VOWEL SIGN VOCALIC R 0x0CC4 ೄ KANNADA VOWEL SIGN VOCALIC RR 0x0CC6 ೆ KANNADA VOWEL SIGN E 0x0CC7 ೇ KANNADA VOWEL SIGN EE 0x0CC8 ೈ KANNADA VOWEL SIGN AI 0x0CCA ೊ KANNADA VOWEL SIGN O 0x0CCB ೋ KANNADA VOWEL SIGN OO 0x0CCC ೌ KANNADA VOWEL SIGN AU 0x0CCD ್ KANNADA SIGN VIRAMA 0x0CD5 ೕ KANNADA LENGTH MARK 0x0CD6 ೖ KANNADA AI LENGTH MARK 0x0CDE ೞ KANNADA LETTER FA 0x0CE0 ೠ KANNADA LETTER VOCALIC RR 0x0CE1 ೡ KANNADA LETTER VOCALIC LL 0x0CE2 ೢ KANNADA VOWEL SIGN VOCALIC L 0x0CE3 ೣ KANNADA VOWEL SIGN VOCALIC LL 0x0CE6 ೦ KANNADA DIGIT ZERO 0x0CE7 ೧ KANNADA DIGIT ONE 0x0CE8 ೨ KANNADA DIGIT TWO 0x0CE9 ೩ KANNADA DIGIT THREE 0x0CEA ೪ KANNADA DIGIT FOUR 0x0CEB ೫ KANNADA DIGIT FIVE 0x0CEC ೬ KANNADA DIGIT SIX 0x0CED ೭ KANNADA DIGIT SEVEN 0x0CEE ೮ KANNADA DIGIT EIGHT 0x0CEF ೯ KANNADA DIGIT NINE 0x0CF1 ೱ KANNADA SIGN JIHVAMULIYA 0x0CF2 ೲ KANNADA SIGN UPADHMANIYA 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x200D ‍ ZERO WIDTH JOINER 0x20B9 ₹ 0x25CC ◌ DOTTED CIRCLELib/gftools/encodings/khmer_unique-glyphs.nam000066400000000000000000000141741376445505300217320ustar00rootroot00000000000000# Khmer has a special setup and requires the 'latin' characters (everything in # the range U+0000..U+00FF) to be present in the subset. Do not remove them. 0x0000 .null 0x000D nonmarkingreturn 0x0020 SPACE 0x0021 ! EXCLAMATION MARK 0x0022 " QUOTATION MARK 0x0023 # NUMBER SIGN 0x0024 $ DOLLAR SIGN 0x0025 % PERCENT SIGN 0x0026 & AMPERSAND 0x0027 ' APOSTROPHE 0x0028 ( LEFT PARENTHESIS 0x0029 ) RIGHT PARENTHESIS 0x002A * ASTERISK 0x002B + PLUS SIGN 0x002C , COMMA 0x002D - HYPHEN-MINUS 0x002E . FULL STOP 0x002F / SOLIDUS 0x0030 0 DIGIT ZERO 0x0031 1 DIGIT ONE 0x0032 2 DIGIT TWO 0x0033 3 DIGIT THREE 0x0034 4 DIGIT FOUR 0x0035 5 DIGIT FIVE 0x0036 6 DIGIT SIX 0x0037 7 DIGIT SEVEN 0x0038 8 DIGIT EIGHT 0x0039 9 DIGIT NINE 0x003A : COLON 0x003B ; SEMICOLON 0x003C < LESS-THAN SIGN 0x003D = EQUALS SIGN 0x003E > GREATER-THAN SIGN 0x003F ? QUESTION MARK 0x0040 @ COMMERCIAL AT 0x0041 A LATIN CAPITAL LETTER A 0x0042 B LATIN CAPITAL LETTER B 0x0043 C LATIN CAPITAL LETTER C 0x0044 D LATIN CAPITAL LETTER D 0x0045 E LATIN CAPITAL LETTER E 0x0046 F LATIN CAPITAL LETTER F 0x0047 G LATIN CAPITAL LETTER G 0x0048 H LATIN CAPITAL LETTER H 0x0049 I LATIN CAPITAL LETTER I 0x004A J LATIN CAPITAL LETTER J 0x004B K LATIN CAPITAL LETTER K 0x004C L LATIN CAPITAL LETTER L 0x004D M LATIN CAPITAL LETTER M 0x004E N LATIN CAPITAL LETTER N 0x004F O LATIN CAPITAL LETTER O 0x0050 P LATIN CAPITAL LETTER P 0x0051 Q LATIN CAPITAL LETTER Q 0x0052 R LATIN CAPITAL LETTER R 0x0053 S LATIN CAPITAL LETTER S 0x0054 T LATIN CAPITAL LETTER T 0x0055 U LATIN CAPITAL LETTER U 0x0056 V LATIN CAPITAL LETTER V 0x0057 W LATIN CAPITAL LETTER W 0x0058 X LATIN CAPITAL LETTER X 0x0059 Y LATIN CAPITAL LETTER Y 0x005A Z LATIN CAPITAL LETTER Z 0x005B [ LEFT SQUARE BRACKET 0x005C \ REVERSE SOLIDUS 0x005D ] RIGHT SQUARE BRACKET 0x005E ^ CIRCUMFLEX ACCENT 0x005F _ LOW LINE 0x0061 a LATIN SMALL LETTER A 0x0062 b LATIN SMALL LETTER B 0x0063 c LATIN SMALL LETTER C 0x0064 d LATIN SMALL LETTER D 0x0065 e LATIN SMALL LETTER E 0x0066 f LATIN SMALL LETTER F 0x0067 g LATIN SMALL LETTER G 0x0068 h LATIN SMALL LETTER H 0x0069 i LATIN SMALL LETTER I 0x006A j LATIN SMALL LETTER J 0x006B k LATIN SMALL LETTER K 0x006C l LATIN SMALL LETTER L 0x006D m LATIN SMALL LETTER M 0x006E n LATIN SMALL LETTER N 0x006F o LATIN SMALL LETTER O 0x0070 p LATIN SMALL LETTER P 0x0071 q LATIN SMALL LETTER Q 0x0072 r LATIN SMALL LETTER R 0x0073 s LATIN SMALL LETTER S 0x0074 t LATIN SMALL LETTER T 0x0075 u LATIN SMALL LETTER U 0x0076 v LATIN SMALL LETTER V 0x0077 w LATIN SMALL LETTER W 0x0078 x LATIN SMALL LETTER X 0x0079 y LATIN SMALL LETTER Y 0x007A z LATIN SMALL LETTER Z 0x007B { LEFT CURLY BRACKET 0x007C | VERTICAL LINE 0x007D } RIGHT CURLY BRACKET 0x007E ~ TILDE 0x00AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x00AD ­ SOFT HYPHEN 0x00BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x1780 ក KHMER LETTER KA 0x1781 ខ KHMER LETTER KHA 0x1782 គ KHMER LETTER KO 0x1783 ឃ KHMER LETTER KHO 0x1784 ង KHMER LETTER NGO 0x1785 ច KHMER LETTER CA 0x1786 ឆ KHMER LETTER CHA 0x1787 ជ KHMER LETTER CO 0x1788 ឈ KHMER LETTER CHO 0x1789 ញ KHMER LETTER NYO 0x178A ដ KHMER LETTER DA 0x178B ឋ KHMER LETTER TTHA 0x178C ឌ KHMER LETTER DO 0x178D ឍ KHMER LETTER TTHO 0x178E ណ KHMER LETTER NNO 0x178F ត KHMER LETTER TA 0x1790 ថ KHMER LETTER THA 0x1791 ទ KHMER LETTER TO 0x1792 ធ KHMER LETTER THO 0x1793 ន KHMER LETTER NO 0x1794 ប KHMER LETTER BA 0x1795 ផ KHMER LETTER PHA 0x1796 ព KHMER LETTER PO 0x1797 ភ KHMER LETTER PHO 0x1798 ម KHMER LETTER MO 0x1799 យ KHMER LETTER YO 0x179A រ KHMER LETTER RO 0x179B ល KHMER LETTER LO 0x179C វ KHMER LETTER VO 0x179D ឝ KHMER LETTER SHA 0x179E ឞ KHMER LETTER SSO 0x179F ស KHMER LETTER SA 0x17A0 ហ KHMER LETTER HA 0x17A1 ឡ KHMER LETTER LA 0x17A2 អ KHMER LETTER QA 0x17A3 ឣ KHMER INDEPENDENT VOWEL QAQ 0x17A4 ឤ KHMER INDEPENDENT VOWEL QAA 0x17A5 ឥ KHMER INDEPENDENT VOWEL QI 0x17A6 ឦ KHMER INDEPENDENT VOWEL QII 0x17A7 ឧ KHMER INDEPENDENT VOWEL QU 0x17A8 ឨ KHMER INDEPENDENT VOWEL QUK 0x17A9 ឩ KHMER INDEPENDENT VOWEL QUU 0x17AA ឪ KHMER INDEPENDENT VOWEL QUUV 0x17AB ឫ KHMER INDEPENDENT VOWEL RY 0x17AC ឬ KHMER INDEPENDENT VOWEL RYY 0x17AD ឭ KHMER INDEPENDENT VOWEL LY 0x17AE ឮ KHMER INDEPENDENT VOWEL LYY 0x17AF ឯ KHMER INDEPENDENT VOWEL QE 0x17B0 ឰ KHMER INDEPENDENT VOWEL QAI 0x17B1 ឱ KHMER INDEPENDENT VOWEL QOO TYPE ONE 0x17B2 ឲ KHMER INDEPENDENT VOWEL QOO TYPE TWO 0x17B3 ឳ KHMER INDEPENDENT VOWEL QAU 0x17B6 ា KHMER VOWEL SIGN AA 0x17B7 ិ KHMER VOWEL SIGN I 0x17B8 ី KHMER VOWEL SIGN II 0x17B9 ឹ KHMER VOWEL SIGN Y 0x17BA ឺ KHMER VOWEL SIGN YY 0x17BB ុ KHMER VOWEL SIGN U 0x17BC ូ KHMER VOWEL SIGN UU 0x17BD ួ KHMER VOWEL SIGN UA 0x17BE ើ KHMER VOWEL SIGN OE 0x17BF ឿ KHMER VOWEL SIGN YA 0x17C0 ៀ KHMER VOWEL SIGN IE 0x17C1 េ KHMER VOWEL SIGN E 0x17C2 ែ KHMER VOWEL SIGN AE 0x17C3 ៃ KHMER VOWEL SIGN AI 0x17C4 ោ KHMER VOWEL SIGN OO 0x17C5 ៅ KHMER VOWEL SIGN AU 0x17C6 ំ KHMER SIGN NIKAHIT 0x17C7 ះ KHMER SIGN REAHMUK 0x17C8 ៈ KHMER SIGN YUUKALEAPINTU 0x17C9 ៉ KHMER SIGN MUUSIKATOAN 0x17CA ៊ KHMER SIGN TRIISAP 0x17CB ់ KHMER SIGN BANTOC 0x17CC ៌ KHMER SIGN ROBAT 0x17CD ៍ KHMER SIGN TOANDAKHIAT 0x17CE ៎ KHMER SIGN KAKABAT 0x17CF ៏ KHMER SIGN AHSDA 0x17D0 ័ KHMER SIGN SAMYOK SANNYA 0x17D1 ៑ KHMER SIGN VIRIAM 0x17D2 ្ KHMER SIGN COENG 0x17D3 ៓ KHMER SIGN BATHAMASAT 0x17D4 ។ KHMER SIGN KHAN 0x17D5 ៕ KHMER SIGN BARIYOOSAN 0x17D6 ៖ KHMER SIGN CAMNUC PII KUUH 0x17D7 ៗ KHMER SIGN LEK TOO 0x17D8 ៘ KHMER SIGN BEYYAL 0x17D9 ៙ KHMER SIGN PHNAEK MUAN 0x17DA ៚ KHMER SIGN KOOMUUT 0x17DB ៛ KHMER CURRENCY SYMBOL RIEL 0x17DD ៝ KHMER SIGN ATTHACAN 0x17E0 ០ KHMER DIGIT ZERO 0x17E1 ១ KHMER DIGIT ONE 0x17E2 ២ KHMER DIGIT TWO 0x17E3 ៣ KHMER DIGIT THREE 0x17E4 ៤ KHMER DIGIT FOUR 0x17E5 ៥ KHMER DIGIT FIVE 0x17E6 ៦ KHMER DIGIT SIX 0x17E7 ៧ KHMER DIGIT SEVEN 0x17E8 ៨ KHMER DIGIT EIGHT 0x17E9 ៩ KHMER DIGIT NINE 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x25CC ◌ DOTTED CIRCLE Lib/gftools/encodings/korean_unique-glyphs.nam000066400000000000000000002344621376445505300221070ustar00rootroot000000000000000x3131 ㄱ HANGUL LETTER KIYEOK 0x3132 ㄲ HANGUL LETTER SSANGKIYEOK 0x3133 ㄳ HANGUL LETTER KIYEOK-SIOS 0x3134 ㄴ HANGUL LETTER NIEUN 0x3135 ㄵ HANGUL LETTER NIEUN-CIEUC 0x3136 ㄶ HANGUL LETTER NIEUN-HIEUH 0x3137 ㄷ HANGUL LETTER TIKEUT 0x3138 ㄸ HANGUL LETTER SSANGTIKEUT 0x3139 ㄹ HANGUL LETTER RIEUL 0x313A ㄺ HANGUL LETTER RIEUL-KIYEOK 0x313B ㄻ HANGUL LETTER RIEUL-MIEUM 0x313C ㄼ HANGUL LETTER RIEUL-PIEUP 0x313D ㄽ HANGUL LETTER RIEUL-SIOS 0x313E ㄾ HANGUL LETTER RIEUL-THIEUTH 0x313F ㄿ HANGUL LETTER RIEUL-PHIEUPH 0x3140 ㅀ HANGUL LETTER RIEUL-HIEUH 0x3141 ㅁ HANGUL LETTER MIEUM 0x3142 ㅂ HANGUL LETTER PIEUP 0x3143 ㅃ HANGUL LETTER SSANGPIEUP 0x3144 ㅄ HANGUL LETTER PIEUP-SIOS 0x3145 ㅅ HANGUL LETTER SIOS 0x3146 ㅆ HANGUL LETTER SSANGSIOS 0x3147 ㅇ HANGUL LETTER IEUNG 0x3148 ㅈ HANGUL LETTER CIEUC 0x3149 ㅉ HANGUL LETTER SSANGCIEUC 0x314A ㅊ HANGUL LETTER CHIEUCH 0x314B ㅋ HANGUL LETTER KHIEUKH 0x314C ㅌ HANGUL LETTER THIEUTH 0x314D ㅍ HANGUL LETTER PHIEUPH 0x314E ㅎ HANGUL LETTER HIEUH 0x314F ㅏ HANGUL LETTER A 0x3150 ㅐ HANGUL LETTER AE 0x3151 ㅑ HANGUL LETTER YA 0x3152 ㅒ HANGUL LETTER YAE 0x3153 ㅓ HANGUL LETTER EO 0x3154 ㅔ HANGUL LETTER E 0x3155 ㅕ HANGUL LETTER YEO 0x3156 ㅖ HANGUL LETTER YE 0x3157 ㅗ HANGUL LETTER O 0x3158 ㅘ HANGUL LETTER WA 0x3159 ㅙ HANGUL LETTER WAE 0x315A ㅚ HANGUL LETTER OE 0x315B ㅛ HANGUL LETTER YO 0x315C ㅜ HANGUL LETTER U 0x315D ㅝ HANGUL LETTER WEO 0x315E ㅞ HANGUL LETTER WE 0x315F ㅟ HANGUL LETTER WI 0x3160 ㅠ HANGUL LETTER YU 0x3161 ㅡ HANGUL LETTER EU 0x3162 ㅢ HANGUL LETTER YI 0x3163 ㅣ HANGUL LETTER I 0x3164 ㅤ HANGUL FILLER 0x3165 ㅥ HANGUL LETTER SSANGNIEUN 0x3166 ㅦ HANGUL LETTER NIEUN-TIKEUT 0x3167 ㅧ HANGUL LETTER NIEUN-SIOS 0x3168 ㅨ HANGUL LETTER NIEUN-PANSIOS 0x3169 ㅩ HANGUL LETTER RIEUL-KIYEOK-SIOS 0x316A ㅪ HANGUL LETTER RIEUL-TIKEUT 0x316B ㅫ HANGUL LETTER RIEUL-PIEUP-SIOS 0x316C ㅬ HANGUL LETTER RIEUL-PANSIOS 0x316D ㅭ HANGUL LETTER RIEUL-YEORINHIEUH 0x316E ㅮ HANGUL LETTER MIEUM-PIEUP 0x316F ㅯ HANGUL LETTER MIEUM-SIOS 0x3170 ㅰ HANGUL LETTER MIEUM-PANSIOS 0x3171 ㅱ HANGUL LETTER KAPYEOUNMIEUM 0x3172 ㅲ HANGUL LETTER PIEUP-KIYEOK 0x3173 ㅳ HANGUL LETTER PIEUP-TIKEUT 0x3174 ㅴ HANGUL LETTER PIEUP-SIOS-KIYEOK 0x3175 ㅵ HANGUL LETTER PIEUP-SIOS-TIKEUT 0x3176 ㅶ HANGUL LETTER PIEUP-CIEUC 0x3177 ㅷ HANGUL LETTER PIEUP-THIEUTH 0x3178 ㅸ HANGUL LETTER KAPYEOUNPIEUP 0x3179 ㅹ HANGUL LETTER KAPYEOUNSSANGPIEUP 0x317A ㅺ HANGUL LETTER SIOS-KIYEOK 0x317B ㅻ HANGUL LETTER SIOS-NIEUN 0x317C ㅼ HANGUL LETTER SIOS-TIKEUT 0x317D ㅽ HANGUL LETTER SIOS-PIEUP 0x317E ㅾ HANGUL LETTER SIOS-CIEUC 0x317F ㅿ HANGUL LETTER PANSIOS 0x3180 ㆀ HANGUL LETTER SSANGIEUNG 0x3181 ㆁ HANGUL LETTER YESIEUNG 0x3182 ㆂ HANGUL LETTER YESIEUNG-SIOS 0x3183 ㆃ HANGUL LETTER YESIEUNG-PANSIOS 0x3184 ㆄ HANGUL LETTER KAPYEOUNPHIEUPH 0x3185 ㆅ HANGUL LETTER SSANGHIEUH 0x3186 ㆆ HANGUL LETTER YEORINHIEUH 0x3187 ㆇ HANGUL LETTER YO-YA 0x3188 ㆈ HANGUL LETTER YO-YAE 0x3189 ㆉ HANGUL LETTER YO-I 0x318A ㆊ HANGUL LETTER YU-YEO 0x318B ㆋ HANGUL LETTER YU-YE 0x318C ㆌ HANGUL LETTER YU-I 0x318D ㆍ HANGUL LETTER ARAEA 0x318E ㆎ HANGUL LETTER ARAEAE 0x3200 ㈀ PARENTHESIZED HANGUL KIYEOK 0x3201 ㈁ PARENTHESIZED HANGUL NIEUN 0x3202 ㈂ PARENTHESIZED HANGUL TIKEUT 0x3203 ㈃ PARENTHESIZED HANGUL RIEUL 0x3204 ㈄ PARENTHESIZED HANGUL MIEUM 0x3205 ㈅ PARENTHESIZED HANGUL PIEUP 0x3206 ㈆ PARENTHESIZED HANGUL SIOS 0x3207 ㈇ PARENTHESIZED HANGUL IEUNG 0x3208 ㈈ PARENTHESIZED HANGUL CIEUC 0x3209 ㈉ PARENTHESIZED HANGUL CHIEUCH 0x320A ㈊ PARENTHESIZED HANGUL KHIEUKH 0x320B ㈋ PARENTHESIZED HANGUL THIEUTH 0x320C ㈌ PARENTHESIZED HANGUL PHIEUPH 0x320D ㈍ PARENTHESIZED HANGUL HIEUH 0x320E ㈎ PARENTHESIZED HANGUL KIYEOK A 0x320F ㈏ PARENTHESIZED HANGUL NIEUN A 0x3210 ㈐ PARENTHESIZED HANGUL TIKEUT A 0x3211 ㈑ PARENTHESIZED HANGUL RIEUL A 0x3212 ㈒ PARENTHESIZED HANGUL MIEUM A 0x3213 ㈓ PARENTHESIZED HANGUL PIEUP A 0x3214 ㈔ PARENTHESIZED HANGUL SIOS A 0x3215 ㈕ PARENTHESIZED HANGUL IEUNG A 0x3216 ㈖ PARENTHESIZED HANGUL CIEUC A 0x3217 ㈗ PARENTHESIZED HANGUL CHIEUCH A 0x3218 ㈘ PARENTHESIZED HANGUL KHIEUKH A 0x3219 ㈙ PARENTHESIZED HANGUL THIEUTH A 0x321A ㈚ PARENTHESIZED HANGUL PHIEUPH A 0x321B ㈛ PARENTHESIZED HANGUL HIEUH A 0x321C ㈜ PARENTHESIZED HANGUL CIEUC U 0x3260 ㉠ CIRCLED HANGUL KIYEOK 0x3261 ㉡ CIRCLED HANGUL NIEUN 0x3262 ㉢ CIRCLED HANGUL TIKEUT 0x3263 ㉣ CIRCLED HANGUL RIEUL 0x3264 ㉤ CIRCLED HANGUL MIEUM 0x3265 ㉥ CIRCLED HANGUL PIEUP 0x3266 ㉦ CIRCLED HANGUL SIOS 0x3267 ㉧ CIRCLED HANGUL IEUNG 0x3268 ㉨ CIRCLED HANGUL CIEUC 0x3269 ㉩ CIRCLED HANGUL CHIEUCH 0x326A ㉪ CIRCLED HANGUL KHIEUKH 0x326B ㉫ CIRCLED HANGUL THIEUTH 0x326C ㉬ CIRCLED HANGUL PHIEUPH 0x326D ㉭ CIRCLED HANGUL HIEUH 0x326E ㉮ CIRCLED HANGUL KIYEOK A 0x326F ㉯ CIRCLED HANGUL NIEUN A 0x3270 ㉰ CIRCLED HANGUL TIKEUT A 0x3271 ㉱ CIRCLED HANGUL RIEUL A 0x3272 ㉲ CIRCLED HANGUL MIEUM A 0x3273 ㉳ CIRCLED HANGUL PIEUP A 0x3274 ㉴ CIRCLED HANGUL SIOS A 0x3275 ㉵ CIRCLED HANGUL IEUNG A 0x3276 ㉶ CIRCLED HANGUL CIEUC A 0x3277 ㉷ CIRCLED HANGUL CHIEUCH A 0x3278 ㉸ CIRCLED HANGUL KHIEUKH A 0x3279 ㉹ CIRCLED HANGUL THIEUTH A 0x327A ㉺ CIRCLED HANGUL PHIEUPH A 0x327B ㉻ CIRCLED HANGUL HIEUH A 0xAC00 가 HANGUL SYLLABLE GA 0xAC01 각 HANGUL SYLLABLE GAG 0xAC04 간 HANGUL SYLLABLE GAN 0xAC07 갇 HANGUL SYLLABLE GAD 0xAC08 갈 HANGUL SYLLABLE GAL 0xAC09 갉 HANGUL SYLLABLE GALG 0xAC0A 갊 HANGUL SYLLABLE GALM 0xAC10 감 HANGUL SYLLABLE GAM 0xAC11 갑 HANGUL SYLLABLE GAB 0xAC12 값 HANGUL SYLLABLE GABS 0xAC13 갓 HANGUL SYLLABLE GAS 0xAC14 갔 HANGUL SYLLABLE GASS 0xAC15 강 HANGUL SYLLABLE GANG 0xAC16 갖 HANGUL SYLLABLE GAJ 0xAC17 갗 HANGUL SYLLABLE GAC 0xAC19 같 HANGUL SYLLABLE GAT 0xAC1A 갚 HANGUL SYLLABLE GAP 0xAC1B 갛 HANGUL SYLLABLE GAH 0xAC1C 개 HANGUL SYLLABLE GAE 0xAC1D 객 HANGUL SYLLABLE GAEG 0xAC20 갠 HANGUL SYLLABLE GAEN 0xAC24 갤 HANGUL SYLLABLE GAEL 0xAC2C 갬 HANGUL SYLLABLE GAEM 0xAC2D 갭 HANGUL SYLLABLE GAEB 0xAC2F 갯 HANGUL SYLLABLE GAES 0xAC30 갰 HANGUL SYLLABLE GAESS 0xAC31 갱 HANGUL SYLLABLE GAENG 0xAC38 갸 HANGUL SYLLABLE GYA 0xAC39 갹 HANGUL SYLLABLE GYAG 0xAC3C 갼 HANGUL SYLLABLE GYAN 0xAC40 걀 HANGUL SYLLABLE GYAL 0xAC4B 걋 HANGUL SYLLABLE GYAS 0xAC4D 걍 HANGUL SYLLABLE GYANG 0xAC54 걔 HANGUL SYLLABLE GYAE 0xAC58 걘 HANGUL SYLLABLE GYAEN 0xAC5C 걜 HANGUL SYLLABLE GYAEL 0xAC70 거 HANGUL SYLLABLE GEO 0xAC71 걱 HANGUL SYLLABLE GEOG 0xAC74 건 HANGUL SYLLABLE GEON 0xAC77 걷 HANGUL SYLLABLE GEOD 0xAC78 걸 HANGUL SYLLABLE GEOL 0xAC7A 걺 HANGUL SYLLABLE GEOLM 0xAC80 검 HANGUL SYLLABLE GEOM 0xAC81 겁 HANGUL SYLLABLE GEOB 0xAC83 것 HANGUL SYLLABLE GEOS 0xAC84 겄 HANGUL SYLLABLE GEOSS 0xAC85 겅 HANGUL SYLLABLE GEONG 0xAC86 겆 HANGUL SYLLABLE GEOJ 0xAC89 겉 HANGUL SYLLABLE GEOT 0xAC8A 겊 HANGUL SYLLABLE GEOP 0xAC8B 겋 HANGUL SYLLABLE GEOH 0xAC8C 게 HANGUL SYLLABLE GE 0xAC90 겐 HANGUL SYLLABLE GEN 0xAC94 겔 HANGUL SYLLABLE GEL 0xAC9C 겜 HANGUL SYLLABLE GEM 0xAC9D 겝 HANGUL SYLLABLE GEB 0xAC9F 겟 HANGUL SYLLABLE GES 0xACA0 겠 HANGUL SYLLABLE GESS 0xACA1 겡 HANGUL SYLLABLE GENG 0xACA8 겨 HANGUL SYLLABLE GYEO 0xACA9 격 HANGUL SYLLABLE GYEOG 0xACAA 겪 HANGUL SYLLABLE GYEOGG 0xACAC 견 HANGUL SYLLABLE GYEON 0xACAF 겯 HANGUL SYLLABLE GYEOD 0xACB0 결 HANGUL SYLLABLE GYEOL 0xACB8 겸 HANGUL SYLLABLE GYEOM 0xACB9 겹 HANGUL SYLLABLE GYEOB 0xACBB 겻 HANGUL SYLLABLE GYEOS 0xACBC 겼 HANGUL SYLLABLE GYEOSS 0xACBD 경 HANGUL SYLLABLE GYEONG 0xACC1 곁 HANGUL SYLLABLE GYEOT 0xACC4 계 HANGUL SYLLABLE GYE 0xACC8 곈 HANGUL SYLLABLE GYEN 0xACCC 곌 HANGUL SYLLABLE GYEL 0xACD5 곕 HANGUL SYLLABLE GYEB 0xACD7 곗 HANGUL SYLLABLE GYES 0xACE0 고 HANGUL SYLLABLE GO 0xACE1 곡 HANGUL SYLLABLE GOG 0xACE4 곤 HANGUL SYLLABLE GON 0xACE7 곧 HANGUL SYLLABLE GOD 0xACE8 골 HANGUL SYLLABLE GOL 0xACEA 곪 HANGUL SYLLABLE GOLM 0xACEC 곬 HANGUL SYLLABLE GOLS 0xACEF 곯 HANGUL SYLLABLE GOLH 0xACF0 곰 HANGUL SYLLABLE GOM 0xACF1 곱 HANGUL SYLLABLE GOB 0xACF3 곳 HANGUL SYLLABLE GOS 0xACF5 공 HANGUL SYLLABLE GONG 0xACF6 곶 HANGUL SYLLABLE GOJ 0xACFC 과 HANGUL SYLLABLE GWA 0xACFD 곽 HANGUL SYLLABLE GWAG 0xAD00 관 HANGUL SYLLABLE GWAN 0xAD04 괄 HANGUL SYLLABLE GWAL 0xAD06 괆 HANGUL SYLLABLE GWALM 0xAD0C 괌 HANGUL SYLLABLE GWAM 0xAD0D 괍 HANGUL SYLLABLE GWAB 0xAD0F 괏 HANGUL SYLLABLE GWAS 0xAD11 광 HANGUL SYLLABLE GWANG 0xAD18 괘 HANGUL SYLLABLE GWAE 0xAD1C 괜 HANGUL SYLLABLE GWAEN 0xAD20 괠 HANGUL SYLLABLE GWAEL 0xAD29 괩 HANGUL SYLLABLE GWAEB 0xAD2C 괬 HANGUL SYLLABLE GWAESS 0xAD2D 괭 HANGUL SYLLABLE GWAENG 0xAD34 괴 HANGUL SYLLABLE GOE 0xAD35 괵 HANGUL SYLLABLE GOEG 0xAD38 괸 HANGUL SYLLABLE GOEN 0xAD3C 괼 HANGUL SYLLABLE GOEL 0xAD44 굄 HANGUL SYLLABLE GOEM 0xAD45 굅 HANGUL SYLLABLE GOEB 0xAD47 굇 HANGUL SYLLABLE GOES 0xAD49 굉 HANGUL SYLLABLE GOENG 0xAD50 교 HANGUL SYLLABLE GYO 0xAD54 굔 HANGUL SYLLABLE GYON 0xAD58 굘 HANGUL SYLLABLE GYOL 0xAD61 굡 HANGUL SYLLABLE GYOB 0xAD63 굣 HANGUL SYLLABLE GYOS 0xAD6C 구 HANGUL SYLLABLE GU 0xAD6D 국 HANGUL SYLLABLE GUG 0xAD70 군 HANGUL SYLLABLE GUN 0xAD73 굳 HANGUL SYLLABLE GUD 0xAD74 굴 HANGUL SYLLABLE GUL 0xAD75 굵 HANGUL SYLLABLE GULG 0xAD76 굶 HANGUL SYLLABLE GULM 0xAD7B 굻 HANGUL SYLLABLE GULH 0xAD7C 굼 HANGUL SYLLABLE GUM 0xAD7D 굽 HANGUL SYLLABLE GUB 0xAD7F 굿 HANGUL SYLLABLE GUS 0xAD81 궁 HANGUL SYLLABLE GUNG 0xAD82 궂 HANGUL SYLLABLE GUJ 0xAD88 궈 HANGUL SYLLABLE GWEO 0xAD89 궉 HANGUL SYLLABLE GWEOG 0xAD8C 권 HANGUL SYLLABLE GWEON 0xAD90 궐 HANGUL SYLLABLE GWEOL 0xAD9C 궜 HANGUL SYLLABLE GWEOSS 0xAD9D 궝 HANGUL SYLLABLE GWEONG 0xADA4 궤 HANGUL SYLLABLE GWE 0xADB7 궷 HANGUL SYLLABLE GWES 0xADC0 귀 HANGUL SYLLABLE GWI 0xADC1 귁 HANGUL SYLLABLE GWIG 0xADC4 귄 HANGUL SYLLABLE GWIN 0xADC8 귈 HANGUL SYLLABLE GWIL 0xADD0 귐 HANGUL SYLLABLE GWIM 0xADD1 귑 HANGUL SYLLABLE GWIB 0xADD3 귓 HANGUL SYLLABLE GWIS 0xADDC 규 HANGUL SYLLABLE GYU 0xADE0 균 HANGUL SYLLABLE GYUN 0xADE4 귤 HANGUL SYLLABLE GYUL 0xADF8 그 HANGUL SYLLABLE GEU 0xADF9 극 HANGUL SYLLABLE GEUG 0xADFC 근 HANGUL SYLLABLE GEUN 0xADFF 귿 HANGUL SYLLABLE GEUD 0xAE00 글 HANGUL SYLLABLE GEUL 0xAE01 긁 HANGUL SYLLABLE GEULG 0xAE08 금 HANGUL SYLLABLE GEUM 0xAE09 급 HANGUL SYLLABLE GEUB 0xAE0B 긋 HANGUL SYLLABLE GEUS 0xAE0D 긍 HANGUL SYLLABLE GEUNG 0xAE14 긔 HANGUL SYLLABLE GYI 0xAE30 기 HANGUL SYLLABLE GI 0xAE31 긱 HANGUL SYLLABLE GIG 0xAE34 긴 HANGUL SYLLABLE GIN 0xAE37 긷 HANGUL SYLLABLE GID 0xAE38 길 HANGUL SYLLABLE GIL 0xAE3A 긺 HANGUL SYLLABLE GILM 0xAE40 김 HANGUL SYLLABLE GIM 0xAE41 깁 HANGUL SYLLABLE GIB 0xAE43 깃 HANGUL SYLLABLE GIS 0xAE45 깅 HANGUL SYLLABLE GING 0xAE46 깆 HANGUL SYLLABLE GIJ 0xAE4A 깊 HANGUL SYLLABLE GIP 0xAE4C 까 HANGUL SYLLABLE GGA 0xAE4D 깍 HANGUL SYLLABLE GGAG 0xAE4E 깎 HANGUL SYLLABLE GGAGG 0xAE50 깐 HANGUL SYLLABLE GGAN 0xAE54 깔 HANGUL SYLLABLE GGAL 0xAE56 깖 HANGUL SYLLABLE GGALM 0xAE5C 깜 HANGUL SYLLABLE GGAM 0xAE5D 깝 HANGUL SYLLABLE GGAB 0xAE5F 깟 HANGUL SYLLABLE GGAS 0xAE60 깠 HANGUL SYLLABLE GGASS 0xAE61 깡 HANGUL SYLLABLE GGANG 0xAE65 깥 HANGUL SYLLABLE GGAT 0xAE68 깨 HANGUL SYLLABLE GGAE 0xAE69 깩 HANGUL SYLLABLE GGAEG 0xAE6C 깬 HANGUL SYLLABLE GGAEN 0xAE70 깰 HANGUL SYLLABLE GGAEL 0xAE78 깸 HANGUL SYLLABLE GGAEM 0xAE79 깹 HANGUL SYLLABLE GGAEB 0xAE7B 깻 HANGUL SYLLABLE GGAES 0xAE7C 깼 HANGUL SYLLABLE GGAESS 0xAE7D 깽 HANGUL SYLLABLE GGAENG 0xAE84 꺄 HANGUL SYLLABLE GGYA 0xAE85 꺅 HANGUL SYLLABLE GGYAG 0xAE8C 꺌 HANGUL SYLLABLE GGYAL 0xAEBC 꺼 HANGUL SYLLABLE GGEO 0xAEBD 꺽 HANGUL SYLLABLE GGEOG 0xAEBE 꺾 HANGUL SYLLABLE GGEOGG 0xAEC0 껀 HANGUL SYLLABLE GGEON 0xAEC4 껄 HANGUL SYLLABLE GGEOL 0xAECC 껌 HANGUL SYLLABLE GGEOM 0xAECD 껍 HANGUL SYLLABLE GGEOB 0xAECF 껏 HANGUL SYLLABLE GGEOS 0xAED0 껐 HANGUL SYLLABLE GGEOSS 0xAED1 껑 HANGUL SYLLABLE GGEONG 0xAED8 께 HANGUL SYLLABLE GGE 0xAED9 껙 HANGUL SYLLABLE GGEG 0xAEDC 껜 HANGUL SYLLABLE GGEN 0xAEE8 껨 HANGUL SYLLABLE GGEM 0xAEEB 껫 HANGUL SYLLABLE GGES 0xAEED 껭 HANGUL SYLLABLE GGENG 0xAEF4 껴 HANGUL SYLLABLE GGYEO 0xAEF8 껸 HANGUL SYLLABLE GGYEON 0xAEFC 껼 HANGUL SYLLABLE GGYEOL 0xAF07 꼇 HANGUL SYLLABLE GGYEOS 0xAF08 꼈 HANGUL SYLLABLE GGYEOSS 0xAF0D 꼍 HANGUL SYLLABLE GGYEOT 0xAF10 꼐 HANGUL SYLLABLE GGYE 0xAF2C 꼬 HANGUL SYLLABLE GGO 0xAF2D 꼭 HANGUL SYLLABLE GGOG 0xAF30 꼰 HANGUL SYLLABLE GGON 0xAF32 꼲 HANGUL SYLLABLE GGONH 0xAF34 꼴 HANGUL SYLLABLE GGOL 0xAF3C 꼼 HANGUL SYLLABLE GGOM 0xAF3D 꼽 HANGUL SYLLABLE GGOB 0xAF3F 꼿 HANGUL SYLLABLE GGOS 0xAF41 꽁 HANGUL SYLLABLE GGONG 0xAF42 꽂 HANGUL SYLLABLE GGOJ 0xAF43 꽃 HANGUL SYLLABLE GGOC 0xAF48 꽈 HANGUL SYLLABLE GGWA 0xAF49 꽉 HANGUL SYLLABLE GGWAG 0xAF50 꽐 HANGUL SYLLABLE GGWAL 0xAF5C 꽜 HANGUL SYLLABLE GGWASS 0xAF5D 꽝 HANGUL SYLLABLE GGWANG 0xAF64 꽤 HANGUL SYLLABLE GGWAE 0xAF65 꽥 HANGUL SYLLABLE GGWAEG 0xAF79 꽹 HANGUL SYLLABLE GGWAENG 0xAF80 꾀 HANGUL SYLLABLE GGOE 0xAF84 꾄 HANGUL SYLLABLE GGOEN 0xAF88 꾈 HANGUL SYLLABLE GGOEL 0xAF90 꾐 HANGUL SYLLABLE GGOEM 0xAF91 꾑 HANGUL SYLLABLE GGOEB 0xAF95 꾕 HANGUL SYLLABLE GGOENG 0xAF9C 꾜 HANGUL SYLLABLE GGYO 0xAFB8 꾸 HANGUL SYLLABLE GGU 0xAFB9 꾹 HANGUL SYLLABLE GGUG 0xAFBC 꾼 HANGUL SYLLABLE GGUN 0xAFC0 꿀 HANGUL SYLLABLE GGUL 0xAFC7 꿇 HANGUL SYLLABLE GGULH 0xAFC8 꿈 HANGUL SYLLABLE GGUM 0xAFC9 꿉 HANGUL SYLLABLE GGUB 0xAFCB 꿋 HANGUL SYLLABLE GGUS 0xAFCD 꿍 HANGUL SYLLABLE GGUNG 0xAFCE 꿎 HANGUL SYLLABLE GGUJ 0xAFD4 꿔 HANGUL SYLLABLE GGWEO 0xAFDC 꿜 HANGUL SYLLABLE GGWEOL 0xAFE8 꿨 HANGUL SYLLABLE GGWEOSS 0xAFE9 꿩 HANGUL SYLLABLE GGWEONG 0xAFF0 꿰 HANGUL SYLLABLE GGWE 0xAFF1 꿱 HANGUL SYLLABLE GGWEG 0xAFF4 꿴 HANGUL SYLLABLE GGWEN 0xAFF8 꿸 HANGUL SYLLABLE GGWEL 0xB000 뀀 HANGUL SYLLABLE GGWEM 0xB001 뀁 HANGUL SYLLABLE GGWEB 0xB004 뀄 HANGUL SYLLABLE GGWESS 0xB00C 뀌 HANGUL SYLLABLE GGWI 0xB010 뀐 HANGUL SYLLABLE GGWIN 0xB014 뀔 HANGUL SYLLABLE GGWIL 0xB01C 뀜 HANGUL SYLLABLE GGWIM 0xB01D 뀝 HANGUL SYLLABLE GGWIB 0xB028 뀨 HANGUL SYLLABLE GGYU 0xB044 끄 HANGUL SYLLABLE GGEU 0xB045 끅 HANGUL SYLLABLE GGEUG 0xB048 끈 HANGUL SYLLABLE GGEUN 0xB04A 끊 HANGUL SYLLABLE GGEUNH 0xB04C 끌 HANGUL SYLLABLE GGEUL 0xB04E 끎 HANGUL SYLLABLE GGEULM 0xB053 끓 HANGUL SYLLABLE GGEULH 0xB054 끔 HANGUL SYLLABLE GGEUM 0xB055 끕 HANGUL SYLLABLE GGEUB 0xB057 끗 HANGUL SYLLABLE GGEUS 0xB059 끙 HANGUL SYLLABLE GGEUNG 0xB05D 끝 HANGUL SYLLABLE GGEUT 0xB07C 끼 HANGUL SYLLABLE GGI 0xB07D 끽 HANGUL SYLLABLE GGIG 0xB080 낀 HANGUL SYLLABLE GGIN 0xB084 낄 HANGUL SYLLABLE GGIL 0xB08C 낌 HANGUL SYLLABLE GGIM 0xB08D 낍 HANGUL SYLLABLE GGIB 0xB08F 낏 HANGUL SYLLABLE GGIS 0xB091 낑 HANGUL SYLLABLE GGING 0xB098 나 HANGUL SYLLABLE NA 0xB099 낙 HANGUL SYLLABLE NAG 0xB09A 낚 HANGUL SYLLABLE NAGG 0xB09C 난 HANGUL SYLLABLE NAN 0xB09F 낟 HANGUL SYLLABLE NAD 0xB0A0 날 HANGUL SYLLABLE NAL 0xB0A1 낡 HANGUL SYLLABLE NALG 0xB0A2 낢 HANGUL SYLLABLE NALM 0xB0A8 남 HANGUL SYLLABLE NAM 0xB0A9 납 HANGUL SYLLABLE NAB 0xB0AB 낫 HANGUL SYLLABLE NAS 0xB0AC 났 HANGUL SYLLABLE NASS 0xB0AD 낭 HANGUL SYLLABLE NANG 0xB0AE 낮 HANGUL SYLLABLE NAJ 0xB0AF 낯 HANGUL SYLLABLE NAC 0xB0B1 낱 HANGUL SYLLABLE NAT 0xB0B3 낳 HANGUL SYLLABLE NAH 0xB0B4 내 HANGUL SYLLABLE NAE 0xB0B5 낵 HANGUL SYLLABLE NAEG 0xB0B8 낸 HANGUL SYLLABLE NAEN 0xB0BC 낼 HANGUL SYLLABLE NAEL 0xB0C4 냄 HANGUL SYLLABLE NAEM 0xB0C5 냅 HANGUL SYLLABLE NAEB 0xB0C7 냇 HANGUL SYLLABLE NAES 0xB0C8 냈 HANGUL SYLLABLE NAESS 0xB0C9 냉 HANGUL SYLLABLE NAENG 0xB0D0 냐 HANGUL SYLLABLE NYA 0xB0D1 냑 HANGUL SYLLABLE NYAG 0xB0D4 냔 HANGUL SYLLABLE NYAN 0xB0D8 냘 HANGUL SYLLABLE NYAL 0xB0E0 냠 HANGUL SYLLABLE NYAM 0xB0E5 냥 HANGUL SYLLABLE NYANG 0xB108 너 HANGUL SYLLABLE NEO 0xB109 넉 HANGUL SYLLABLE NEOG 0xB10B 넋 HANGUL SYLLABLE NEOGS 0xB10C 넌 HANGUL SYLLABLE NEON 0xB110 널 HANGUL SYLLABLE NEOL 0xB112 넒 HANGUL SYLLABLE NEOLM 0xB113 넓 HANGUL SYLLABLE NEOLB 0xB118 넘 HANGUL SYLLABLE NEOM 0xB119 넙 HANGUL SYLLABLE NEOB 0xB11B 넛 HANGUL SYLLABLE NEOS 0xB11C 넜 HANGUL SYLLABLE NEOSS 0xB11D 넝 HANGUL SYLLABLE NEONG 0xB123 넣 HANGUL SYLLABLE NEOH 0xB124 네 HANGUL SYLLABLE NE 0xB125 넥 HANGUL SYLLABLE NEG 0xB128 넨 HANGUL SYLLABLE NEN 0xB12C 넬 HANGUL SYLLABLE NEL 0xB134 넴 HANGUL SYLLABLE NEM 0xB135 넵 HANGUL SYLLABLE NEB 0xB137 넷 HANGUL SYLLABLE NES 0xB138 넸 HANGUL SYLLABLE NESS 0xB139 넹 HANGUL SYLLABLE NENG 0xB140 녀 HANGUL SYLLABLE NYEO 0xB141 녁 HANGUL SYLLABLE NYEOG 0xB144 년 HANGUL SYLLABLE NYEON 0xB148 녈 HANGUL SYLLABLE NYEOL 0xB150 념 HANGUL SYLLABLE NYEOM 0xB151 녑 HANGUL SYLLABLE NYEOB 0xB154 녔 HANGUL SYLLABLE NYEOSS 0xB155 녕 HANGUL SYLLABLE NYEONG 0xB158 녘 HANGUL SYLLABLE NYEOK 0xB15C 녜 HANGUL SYLLABLE NYE 0xB160 녠 HANGUL SYLLABLE NYEN 0xB178 노 HANGUL SYLLABLE NO 0xB179 녹 HANGUL SYLLABLE NOG 0xB17C 논 HANGUL SYLLABLE NON 0xB180 놀 HANGUL SYLLABLE NOL 0xB182 놂 HANGUL SYLLABLE NOLM 0xB188 놈 HANGUL SYLLABLE NOM 0xB189 놉 HANGUL SYLLABLE NOB 0xB18B 놋 HANGUL SYLLABLE NOS 0xB18D 농 HANGUL SYLLABLE NONG 0xB192 높 HANGUL SYLLABLE NOP 0xB193 놓 HANGUL SYLLABLE NOH 0xB194 놔 HANGUL SYLLABLE NWA 0xB198 놘 HANGUL SYLLABLE NWAN 0xB19C 놜 HANGUL SYLLABLE NWAL 0xB1A8 놨 HANGUL SYLLABLE NWASS 0xB1CC 뇌 HANGUL SYLLABLE NOE 0xB1D0 뇐 HANGUL SYLLABLE NOEN 0xB1D4 뇔 HANGUL SYLLABLE NOEL 0xB1DC 뇜 HANGUL SYLLABLE NOEM 0xB1DD 뇝 HANGUL SYLLABLE NOEB 0xB1DF 뇟 HANGUL SYLLABLE NOES 0xB1E8 뇨 HANGUL SYLLABLE NYO 0xB1E9 뇩 HANGUL SYLLABLE NYOG 0xB1EC 뇬 HANGUL SYLLABLE NYON 0xB1F0 뇰 HANGUL SYLLABLE NYOL 0xB1F9 뇹 HANGUL SYLLABLE NYOB 0xB1FB 뇻 HANGUL SYLLABLE NYOS 0xB1FD 뇽 HANGUL SYLLABLE NYONG 0xB204 누 HANGUL SYLLABLE NU 0xB205 눅 HANGUL SYLLABLE NUG 0xB208 눈 HANGUL SYLLABLE NUN 0xB20B 눋 HANGUL SYLLABLE NUD 0xB20C 눌 HANGUL SYLLABLE NUL 0xB214 눔 HANGUL SYLLABLE NUM 0xB215 눕 HANGUL SYLLABLE NUB 0xB217 눗 HANGUL SYLLABLE NUS 0xB219 눙 HANGUL SYLLABLE NUNG 0xB220 눠 HANGUL SYLLABLE NWEO 0xB234 눴 HANGUL SYLLABLE NWEOSS 0xB23C 눼 HANGUL SYLLABLE NWE 0xB258 뉘 HANGUL SYLLABLE NWI 0xB25C 뉜 HANGUL SYLLABLE NWIN 0xB260 뉠 HANGUL SYLLABLE NWIL 0xB268 뉨 HANGUL SYLLABLE NWIM 0xB269 뉩 HANGUL SYLLABLE NWIB 0xB274 뉴 HANGUL SYLLABLE NYU 0xB275 뉵 HANGUL SYLLABLE NYUG 0xB27C 뉼 HANGUL SYLLABLE NYUL 0xB284 늄 HANGUL SYLLABLE NYUM 0xB285 늅 HANGUL SYLLABLE NYUB 0xB289 늉 HANGUL SYLLABLE NYUNG 0xB290 느 HANGUL SYLLABLE NEU 0xB291 늑 HANGUL SYLLABLE NEUG 0xB294 는 HANGUL SYLLABLE NEUN 0xB298 늘 HANGUL SYLLABLE NEUL 0xB299 늙 HANGUL SYLLABLE NEULG 0xB29A 늚 HANGUL SYLLABLE NEULM 0xB2A0 늠 HANGUL SYLLABLE NEUM 0xB2A1 늡 HANGUL SYLLABLE NEUB 0xB2A3 늣 HANGUL SYLLABLE NEUS 0xB2A5 능 HANGUL SYLLABLE NEUNG 0xB2A6 늦 HANGUL SYLLABLE NEUJ 0xB2AA 늪 HANGUL SYLLABLE NEUP 0xB2AC 늬 HANGUL SYLLABLE NYI 0xB2B0 늰 HANGUL SYLLABLE NYIN 0xB2B4 늴 HANGUL SYLLABLE NYIL 0xB2C8 니 HANGUL SYLLABLE NI 0xB2C9 닉 HANGUL SYLLABLE NIG 0xB2CC 닌 HANGUL SYLLABLE NIN 0xB2D0 닐 HANGUL SYLLABLE NIL 0xB2D2 닒 HANGUL SYLLABLE NILM 0xB2D8 님 HANGUL SYLLABLE NIM 0xB2D9 닙 HANGUL SYLLABLE NIB 0xB2DB 닛 HANGUL SYLLABLE NIS 0xB2DD 닝 HANGUL SYLLABLE NING 0xB2E2 닢 HANGUL SYLLABLE NIP 0xB2E4 다 HANGUL SYLLABLE DA 0xB2E5 닥 HANGUL SYLLABLE DAG 0xB2E6 닦 HANGUL SYLLABLE DAGG 0xB2E8 단 HANGUL SYLLABLE DAN 0xB2EB 닫 HANGUL SYLLABLE DAD 0xB2EC 달 HANGUL SYLLABLE DAL 0xB2ED 닭 HANGUL SYLLABLE DALG 0xB2EE 닮 HANGUL SYLLABLE DALM 0xB2EF 닯 HANGUL SYLLABLE DALB 0xB2F3 닳 HANGUL SYLLABLE DALH 0xB2F4 담 HANGUL SYLLABLE DAM 0xB2F5 답 HANGUL SYLLABLE DAB 0xB2F7 닷 HANGUL SYLLABLE DAS 0xB2F8 닸 HANGUL SYLLABLE DASS 0xB2F9 당 HANGUL SYLLABLE DANG 0xB2FA 닺 HANGUL SYLLABLE DAJ 0xB2FB 닻 HANGUL SYLLABLE DAC 0xB2FF 닿 HANGUL SYLLABLE DAH 0xB300 대 HANGUL SYLLABLE DAE 0xB301 댁 HANGUL SYLLABLE DAEG 0xB304 댄 HANGUL SYLLABLE DAEN 0xB308 댈 HANGUL SYLLABLE DAEL 0xB310 댐 HANGUL SYLLABLE DAEM 0xB311 댑 HANGUL SYLLABLE DAEB 0xB313 댓 HANGUL SYLLABLE DAES 0xB314 댔 HANGUL SYLLABLE DAESS 0xB315 댕 HANGUL SYLLABLE DAENG 0xB31C 댜 HANGUL SYLLABLE DYA 0xB354 더 HANGUL SYLLABLE DEO 0xB355 덕 HANGUL SYLLABLE DEOG 0xB356 덖 HANGUL SYLLABLE DEOGG 0xB358 던 HANGUL SYLLABLE DEON 0xB35B 덛 HANGUL SYLLABLE DEOD 0xB35C 덜 HANGUL SYLLABLE DEOL 0xB35E 덞 HANGUL SYLLABLE DEOLM 0xB35F 덟 HANGUL SYLLABLE DEOLB 0xB364 덤 HANGUL SYLLABLE DEOM 0xB365 덥 HANGUL SYLLABLE DEOB 0xB367 덧 HANGUL SYLLABLE DEOS 0xB369 덩 HANGUL SYLLABLE DEONG 0xB36B 덫 HANGUL SYLLABLE DEOC 0xB36E 덮 HANGUL SYLLABLE DEOP 0xB370 데 HANGUL SYLLABLE DE 0xB371 덱 HANGUL SYLLABLE DEG 0xB374 덴 HANGUL SYLLABLE DEN 0xB378 델 HANGUL SYLLABLE DEL 0xB380 뎀 HANGUL SYLLABLE DEM 0xB381 뎁 HANGUL SYLLABLE DEB 0xB383 뎃 HANGUL SYLLABLE DES 0xB384 뎄 HANGUL SYLLABLE DESS 0xB385 뎅 HANGUL SYLLABLE DENG 0xB38C 뎌 HANGUL SYLLABLE DYEO 0xB390 뎐 HANGUL SYLLABLE DYEON 0xB394 뎔 HANGUL SYLLABLE DYEOL 0xB3A0 뎠 HANGUL SYLLABLE DYEOSS 0xB3A1 뎡 HANGUL SYLLABLE DYEONG 0xB3A8 뎨 HANGUL SYLLABLE DYE 0xB3AC 뎬 HANGUL SYLLABLE DYEN 0xB3C4 도 HANGUL SYLLABLE DO 0xB3C5 독 HANGUL SYLLABLE DOG 0xB3C8 돈 HANGUL SYLLABLE DON 0xB3CB 돋 HANGUL SYLLABLE DOD 0xB3CC 돌 HANGUL SYLLABLE DOL 0xB3CE 돎 HANGUL SYLLABLE DOLM 0xB3D0 돐 HANGUL SYLLABLE DOLS 0xB3D4 돔 HANGUL SYLLABLE DOM 0xB3D5 돕 HANGUL SYLLABLE DOB 0xB3D7 돗 HANGUL SYLLABLE DOS 0xB3D9 동 HANGUL SYLLABLE DONG 0xB3DB 돛 HANGUL SYLLABLE DOC 0xB3DD 돝 HANGUL SYLLABLE DOT 0xB3E0 돠 HANGUL SYLLABLE DWA 0xB3E4 돤 HANGUL SYLLABLE DWAN 0xB3E8 돨 HANGUL SYLLABLE DWAL 0xB3FC 돼 HANGUL SYLLABLE DWAE 0xB410 됐 HANGUL SYLLABLE DWAESS 0xB418 되 HANGUL SYLLABLE DOE 0xB41C 된 HANGUL SYLLABLE DOEN 0xB420 될 HANGUL SYLLABLE DOEL 0xB428 됨 HANGUL SYLLABLE DOEM 0xB429 됩 HANGUL SYLLABLE DOEB 0xB42B 됫 HANGUL SYLLABLE DOES 0xB434 됴 HANGUL SYLLABLE DYO 0xB450 두 HANGUL SYLLABLE DU 0xB451 둑 HANGUL SYLLABLE DUG 0xB454 둔 HANGUL SYLLABLE DUN 0xB458 둘 HANGUL SYLLABLE DUL 0xB460 둠 HANGUL SYLLABLE DUM 0xB461 둡 HANGUL SYLLABLE DUB 0xB463 둣 HANGUL SYLLABLE DUS 0xB465 둥 HANGUL SYLLABLE DUNG 0xB46C 둬 HANGUL SYLLABLE DWEO 0xB480 뒀 HANGUL SYLLABLE DWEOSS 0xB488 뒈 HANGUL SYLLABLE DWE 0xB49D 뒝 HANGUL SYLLABLE DWENG 0xB4A4 뒤 HANGUL SYLLABLE DWI 0xB4A8 뒨 HANGUL SYLLABLE DWIN 0xB4AC 뒬 HANGUL SYLLABLE DWIL 0xB4B5 뒵 HANGUL SYLLABLE DWIB 0xB4B7 뒷 HANGUL SYLLABLE DWIS 0xB4B9 뒹 HANGUL SYLLABLE DWING 0xB4C0 듀 HANGUL SYLLABLE DYU 0xB4C4 듄 HANGUL SYLLABLE DYUN 0xB4C8 듈 HANGUL SYLLABLE DYUL 0xB4D0 듐 HANGUL SYLLABLE DYUM 0xB4D5 듕 HANGUL SYLLABLE DYUNG 0xB4DC 드 HANGUL SYLLABLE DEU 0xB4DD 득 HANGUL SYLLABLE DEUG 0xB4E0 든 HANGUL SYLLABLE DEUN 0xB4E3 듣 HANGUL SYLLABLE DEUD 0xB4E4 들 HANGUL SYLLABLE DEUL 0xB4E6 듦 HANGUL SYLLABLE DEULM 0xB4EC 듬 HANGUL SYLLABLE DEUM 0xB4ED 듭 HANGUL SYLLABLE DEUB 0xB4EF 듯 HANGUL SYLLABLE DEUS 0xB4F1 등 HANGUL SYLLABLE DEUNG 0xB4F8 듸 HANGUL SYLLABLE DYI 0xB514 디 HANGUL SYLLABLE DI 0xB515 딕 HANGUL SYLLABLE DIG 0xB518 딘 HANGUL SYLLABLE DIN 0xB51B 딛 HANGUL SYLLABLE DID 0xB51C 딜 HANGUL SYLLABLE DIL 0xB524 딤 HANGUL SYLLABLE DIM 0xB525 딥 HANGUL SYLLABLE DIB 0xB527 딧 HANGUL SYLLABLE DIS 0xB528 딨 HANGUL SYLLABLE DISS 0xB529 딩 HANGUL SYLLABLE DING 0xB52A 딪 HANGUL SYLLABLE DIJ 0xB530 따 HANGUL SYLLABLE DDA 0xB531 딱 HANGUL SYLLABLE DDAG 0xB534 딴 HANGUL SYLLABLE DDAN 0xB538 딸 HANGUL SYLLABLE DDAL 0xB540 땀 HANGUL SYLLABLE DDAM 0xB541 땁 HANGUL SYLLABLE DDAB 0xB543 땃 HANGUL SYLLABLE DDAS 0xB544 땄 HANGUL SYLLABLE DDASS 0xB545 땅 HANGUL SYLLABLE DDANG 0xB54B 땋 HANGUL SYLLABLE DDAH 0xB54C 때 HANGUL SYLLABLE DDAE 0xB54D 땍 HANGUL SYLLABLE DDAEG 0xB550 땐 HANGUL SYLLABLE DDAEN 0xB554 땔 HANGUL SYLLABLE DDAEL 0xB55C 땜 HANGUL SYLLABLE DDAEM 0xB55D 땝 HANGUL SYLLABLE DDAEB 0xB55F 땟 HANGUL SYLLABLE DDAES 0xB560 땠 HANGUL SYLLABLE DDAESS 0xB561 땡 HANGUL SYLLABLE DDAENG 0xB5A0 떠 HANGUL SYLLABLE DDEO 0xB5A1 떡 HANGUL SYLLABLE DDEOG 0xB5A4 떤 HANGUL SYLLABLE DDEON 0xB5A8 떨 HANGUL SYLLABLE DDEOL 0xB5AA 떪 HANGUL SYLLABLE DDEOLM 0xB5AB 떫 HANGUL SYLLABLE DDEOLB 0xB5B0 떰 HANGUL SYLLABLE DDEOM 0xB5B1 떱 HANGUL SYLLABLE DDEOB 0xB5B3 떳 HANGUL SYLLABLE DDEOS 0xB5B4 떴 HANGUL SYLLABLE DDEOSS 0xB5B5 떵 HANGUL SYLLABLE DDEONG 0xB5BB 떻 HANGUL SYLLABLE DDEOH 0xB5BC 떼 HANGUL SYLLABLE DDE 0xB5BD 떽 HANGUL SYLLABLE DDEG 0xB5C0 뗀 HANGUL SYLLABLE DDEN 0xB5C4 뗄 HANGUL SYLLABLE DDEL 0xB5CC 뗌 HANGUL SYLLABLE DDEM 0xB5CD 뗍 HANGUL SYLLABLE DDEB 0xB5CF 뗏 HANGUL SYLLABLE DDES 0xB5D0 뗐 HANGUL SYLLABLE DDESS 0xB5D1 뗑 HANGUL SYLLABLE DDENG 0xB5D8 뗘 HANGUL SYLLABLE DDYEO 0xB5EC 뗬 HANGUL SYLLABLE DDYEOSS 0xB610 또 HANGUL SYLLABLE DDO 0xB611 똑 HANGUL SYLLABLE DDOG 0xB614 똔 HANGUL SYLLABLE DDON 0xB618 똘 HANGUL SYLLABLE DDOL 0xB625 똥 HANGUL SYLLABLE DDONG 0xB62C 똬 HANGUL SYLLABLE DDWA 0xB634 똴 HANGUL SYLLABLE DDWAL 0xB648 뙈 HANGUL SYLLABLE DDWAE 0xB664 뙤 HANGUL SYLLABLE DDOE 0xB668 뙨 HANGUL SYLLABLE DDOEN 0xB69C 뚜 HANGUL SYLLABLE DDU 0xB69D 뚝 HANGUL SYLLABLE DDUG 0xB6A0 뚠 HANGUL SYLLABLE DDUN 0xB6A4 뚤 HANGUL SYLLABLE DDUL 0xB6AB 뚫 HANGUL SYLLABLE DDULH 0xB6AC 뚬 HANGUL SYLLABLE DDUM 0xB6B1 뚱 HANGUL SYLLABLE DDUNG 0xB6D4 뛔 HANGUL SYLLABLE DDWE 0xB6F0 뛰 HANGUL SYLLABLE DDWI 0xB6F4 뛴 HANGUL SYLLABLE DDWIN 0xB6F8 뛸 HANGUL SYLLABLE DDWIL 0xB700 뜀 HANGUL SYLLABLE DDWIM 0xB701 뜁 HANGUL SYLLABLE DDWIB 0xB705 뜅 HANGUL SYLLABLE DDWING 0xB728 뜨 HANGUL SYLLABLE DDEU 0xB729 뜩 HANGUL SYLLABLE DDEUG 0xB72C 뜬 HANGUL SYLLABLE DDEUN 0xB72F 뜯 HANGUL SYLLABLE DDEUD 0xB730 뜰 HANGUL SYLLABLE DDEUL 0xB738 뜸 HANGUL SYLLABLE DDEUM 0xB739 뜹 HANGUL SYLLABLE DDEUB 0xB73B 뜻 HANGUL SYLLABLE DDEUS 0xB744 띄 HANGUL SYLLABLE DDYI 0xB748 띈 HANGUL SYLLABLE DDYIN 0xB74C 띌 HANGUL SYLLABLE DDYIL 0xB754 띔 HANGUL SYLLABLE DDYIM 0xB755 띕 HANGUL SYLLABLE DDYIB 0xB760 띠 HANGUL SYLLABLE DDI 0xB764 띤 HANGUL SYLLABLE DDIN 0xB768 띨 HANGUL SYLLABLE DDIL 0xB770 띰 HANGUL SYLLABLE DDIM 0xB771 띱 HANGUL SYLLABLE DDIB 0xB773 띳 HANGUL SYLLABLE DDIS 0xB775 띵 HANGUL SYLLABLE DDING 0xB77C 라 HANGUL SYLLABLE RA 0xB77D 락 HANGUL SYLLABLE RAG 0xB780 란 HANGUL SYLLABLE RAN 0xB784 랄 HANGUL SYLLABLE RAL 0xB78C 람 HANGUL SYLLABLE RAM 0xB78D 랍 HANGUL SYLLABLE RAB 0xB78F 랏 HANGUL SYLLABLE RAS 0xB790 랐 HANGUL SYLLABLE RASS 0xB791 랑 HANGUL SYLLABLE RANG 0xB792 랒 HANGUL SYLLABLE RAJ 0xB796 랖 HANGUL SYLLABLE RAP 0xB797 랗 HANGUL SYLLABLE RAH 0xB798 래 HANGUL SYLLABLE RAE 0xB799 랙 HANGUL SYLLABLE RAEG 0xB79C 랜 HANGUL SYLLABLE RAEN 0xB7A0 랠 HANGUL SYLLABLE RAEL 0xB7A8 램 HANGUL SYLLABLE RAEM 0xB7A9 랩 HANGUL SYLLABLE RAEB 0xB7AB 랫 HANGUL SYLLABLE RAES 0xB7AC 랬 HANGUL SYLLABLE RAESS 0xB7AD 랭 HANGUL SYLLABLE RAENG 0xB7B4 랴 HANGUL SYLLABLE RYA 0xB7B5 략 HANGUL SYLLABLE RYAG 0xB7B8 랸 HANGUL SYLLABLE RYAN 0xB7C7 럇 HANGUL SYLLABLE RYAS 0xB7C9 량 HANGUL SYLLABLE RYANG 0xB7EC 러 HANGUL SYLLABLE REO 0xB7ED 럭 HANGUL SYLLABLE REOG 0xB7F0 런 HANGUL SYLLABLE REON 0xB7F4 럴 HANGUL SYLLABLE REOL 0xB7FC 럼 HANGUL SYLLABLE REOM 0xB7FD 럽 HANGUL SYLLABLE REOB 0xB7FF 럿 HANGUL SYLLABLE REOS 0xB800 렀 HANGUL SYLLABLE REOSS 0xB801 렁 HANGUL SYLLABLE REONG 0xB807 렇 HANGUL SYLLABLE REOH 0xB808 레 HANGUL SYLLABLE RE 0xB809 렉 HANGUL SYLLABLE REG 0xB80C 렌 HANGUL SYLLABLE REN 0xB810 렐 HANGUL SYLLABLE REL 0xB818 렘 HANGUL SYLLABLE REM 0xB819 렙 HANGUL SYLLABLE REB 0xB81B 렛 HANGUL SYLLABLE RES 0xB81D 렝 HANGUL SYLLABLE RENG 0xB824 려 HANGUL SYLLABLE RYEO 0xB825 력 HANGUL SYLLABLE RYEOG 0xB828 련 HANGUL SYLLABLE RYEON 0xB82C 렬 HANGUL SYLLABLE RYEOL 0xB834 렴 HANGUL SYLLABLE RYEOM 0xB835 렵 HANGUL SYLLABLE RYEOB 0xB837 렷 HANGUL SYLLABLE RYEOS 0xB838 렸 HANGUL SYLLABLE RYEOSS 0xB839 령 HANGUL SYLLABLE RYEONG 0xB840 례 HANGUL SYLLABLE RYE 0xB844 롄 HANGUL SYLLABLE RYEN 0xB851 롑 HANGUL SYLLABLE RYEB 0xB853 롓 HANGUL SYLLABLE RYES 0xB85C 로 HANGUL SYLLABLE RO 0xB85D 록 HANGUL SYLLABLE ROG 0xB860 론 HANGUL SYLLABLE RON 0xB864 롤 HANGUL SYLLABLE ROL 0xB86C 롬 HANGUL SYLLABLE ROM 0xB86D 롭 HANGUL SYLLABLE ROB 0xB86F 롯 HANGUL SYLLABLE ROS 0xB871 롱 HANGUL SYLLABLE RONG 0xB878 롸 HANGUL SYLLABLE RWA 0xB87C 롼 HANGUL SYLLABLE RWAN 0xB88D 뢍 HANGUL SYLLABLE RWANG 0xB8A8 뢨 HANGUL SYLLABLE RWAESS 0xB8B0 뢰 HANGUL SYLLABLE ROE 0xB8B4 뢴 HANGUL SYLLABLE ROEN 0xB8B8 뢸 HANGUL SYLLABLE ROEL 0xB8C0 룀 HANGUL SYLLABLE ROEM 0xB8C1 룁 HANGUL SYLLABLE ROEB 0xB8C3 룃 HANGUL SYLLABLE ROES 0xB8C5 룅 HANGUL SYLLABLE ROENG 0xB8CC 료 HANGUL SYLLABLE RYO 0xB8D0 룐 HANGUL SYLLABLE RYON 0xB8D4 룔 HANGUL SYLLABLE RYOL 0xB8DD 룝 HANGUL SYLLABLE RYOB 0xB8DF 룟 HANGUL SYLLABLE RYOS 0xB8E1 룡 HANGUL SYLLABLE RYONG 0xB8E8 루 HANGUL SYLLABLE RU 0xB8E9 룩 HANGUL SYLLABLE RUG 0xB8EC 룬 HANGUL SYLLABLE RUN 0xB8F0 룰 HANGUL SYLLABLE RUL 0xB8F8 룸 HANGUL SYLLABLE RUM 0xB8F9 룹 HANGUL SYLLABLE RUB 0xB8FB 룻 HANGUL SYLLABLE RUS 0xB8FD 룽 HANGUL SYLLABLE RUNG 0xB904 뤄 HANGUL SYLLABLE RWEO 0xB918 뤘 HANGUL SYLLABLE RWEOSS 0xB920 뤠 HANGUL SYLLABLE RWE 0xB93C 뤼 HANGUL SYLLABLE RWI 0xB93D 뤽 HANGUL SYLLABLE RWIG 0xB940 륀 HANGUL SYLLABLE RWIN 0xB944 륄 HANGUL SYLLABLE RWIL 0xB94C 륌 HANGUL SYLLABLE RWIM 0xB94F 륏 HANGUL SYLLABLE RWIS 0xB951 륑 HANGUL SYLLABLE RWING 0xB958 류 HANGUL SYLLABLE RYU 0xB959 륙 HANGUL SYLLABLE RYUG 0xB95C 륜 HANGUL SYLLABLE RYUN 0xB960 률 HANGUL SYLLABLE RYUL 0xB968 륨 HANGUL SYLLABLE RYUM 0xB969 륩 HANGUL SYLLABLE RYUB 0xB96B 륫 HANGUL SYLLABLE RYUS 0xB96D 륭 HANGUL SYLLABLE RYUNG 0xB974 르 HANGUL SYLLABLE REU 0xB975 륵 HANGUL SYLLABLE REUG 0xB978 른 HANGUL SYLLABLE REUN 0xB97C 를 HANGUL SYLLABLE REUL 0xB984 름 HANGUL SYLLABLE REUM 0xB985 릅 HANGUL SYLLABLE REUB 0xB987 릇 HANGUL SYLLABLE REUS 0xB989 릉 HANGUL SYLLABLE REUNG 0xB98A 릊 HANGUL SYLLABLE REUJ 0xB98D 릍 HANGUL SYLLABLE REUT 0xB98E 릎 HANGUL SYLLABLE REUP 0xB9AC 리 HANGUL SYLLABLE RI 0xB9AD 릭 HANGUL SYLLABLE RIG 0xB9B0 린 HANGUL SYLLABLE RIN 0xB9B4 릴 HANGUL SYLLABLE RIL 0xB9BC 림 HANGUL SYLLABLE RIM 0xB9BD 립 HANGUL SYLLABLE RIB 0xB9BF 릿 HANGUL SYLLABLE RIS 0xB9C1 링 HANGUL SYLLABLE RING 0xB9C8 마 HANGUL SYLLABLE MA 0xB9C9 막 HANGUL SYLLABLE MAG 0xB9CC 만 HANGUL SYLLABLE MAN 0xB9CE 많 HANGUL SYLLABLE MANH 0xB9CF 맏 HANGUL SYLLABLE MAD 0xB9D0 말 HANGUL SYLLABLE MAL 0xB9D1 맑 HANGUL SYLLABLE MALG 0xB9D2 맒 HANGUL SYLLABLE MALM 0xB9D8 맘 HANGUL SYLLABLE MAM 0xB9D9 맙 HANGUL SYLLABLE MAB 0xB9DB 맛 HANGUL SYLLABLE MAS 0xB9DD 망 HANGUL SYLLABLE MANG 0xB9DE 맞 HANGUL SYLLABLE MAJ 0xB9E1 맡 HANGUL SYLLABLE MAT 0xB9E3 맣 HANGUL SYLLABLE MAH 0xB9E4 매 HANGUL SYLLABLE MAE 0xB9E5 맥 HANGUL SYLLABLE MAEG 0xB9E8 맨 HANGUL SYLLABLE MAEN 0xB9EC 맬 HANGUL SYLLABLE MAEL 0xB9F4 맴 HANGUL SYLLABLE MAEM 0xB9F5 맵 HANGUL SYLLABLE MAEB 0xB9F7 맷 HANGUL SYLLABLE MAES 0xB9F8 맸 HANGUL SYLLABLE MAESS 0xB9F9 맹 HANGUL SYLLABLE MAENG 0xB9FA 맺 HANGUL SYLLABLE MAEJ 0xBA00 먀 HANGUL SYLLABLE MYA 0xBA01 먁 HANGUL SYLLABLE MYAG 0xBA08 먈 HANGUL SYLLABLE MYAL 0xBA15 먕 HANGUL SYLLABLE MYANG 0xBA38 머 HANGUL SYLLABLE MEO 0xBA39 먹 HANGUL SYLLABLE MEOG 0xBA3C 먼 HANGUL SYLLABLE MEON 0xBA40 멀 HANGUL SYLLABLE MEOL 0xBA42 멂 HANGUL SYLLABLE MEOLM 0xBA48 멈 HANGUL SYLLABLE MEOM 0xBA49 멉 HANGUL SYLLABLE MEOB 0xBA4B 멋 HANGUL SYLLABLE MEOS 0xBA4D 멍 HANGUL SYLLABLE MEONG 0xBA4E 멎 HANGUL SYLLABLE MEOJ 0xBA53 멓 HANGUL SYLLABLE MEOH 0xBA54 메 HANGUL SYLLABLE ME 0xBA55 멕 HANGUL SYLLABLE MEG 0xBA58 멘 HANGUL SYLLABLE MEN 0xBA5C 멜 HANGUL SYLLABLE MEL 0xBA64 멤 HANGUL SYLLABLE MEM 0xBA65 멥 HANGUL SYLLABLE MEB 0xBA67 멧 HANGUL SYLLABLE MES 0xBA68 멨 HANGUL SYLLABLE MESS 0xBA69 멩 HANGUL SYLLABLE MENG 0xBA70 며 HANGUL SYLLABLE MYEO 0xBA71 멱 HANGUL SYLLABLE MYEOG 0xBA74 면 HANGUL SYLLABLE MYEON 0xBA78 멸 HANGUL SYLLABLE MYEOL 0xBA83 몃 HANGUL SYLLABLE MYEOS 0xBA84 몄 HANGUL SYLLABLE MYEOSS 0xBA85 명 HANGUL SYLLABLE MYEONG 0xBA87 몇 HANGUL SYLLABLE MYEOC 0xBA8C 몌 HANGUL SYLLABLE MYE 0xBAA8 모 HANGUL SYLLABLE MO 0xBAA9 목 HANGUL SYLLABLE MOG 0xBAAB 몫 HANGUL SYLLABLE MOGS 0xBAAC 몬 HANGUL SYLLABLE MON 0xBAB0 몰 HANGUL SYLLABLE MOL 0xBAB2 몲 HANGUL SYLLABLE MOLM 0xBAB8 몸 HANGUL SYLLABLE MOM 0xBAB9 몹 HANGUL SYLLABLE MOB 0xBABB 못 HANGUL SYLLABLE MOS 0xBABD 몽 HANGUL SYLLABLE MONG 0xBAC4 뫄 HANGUL SYLLABLE MWA 0xBAC8 뫈 HANGUL SYLLABLE MWAN 0xBAD8 뫘 HANGUL SYLLABLE MWASS 0xBAD9 뫙 HANGUL SYLLABLE MWANG 0xBAFC 뫼 HANGUL SYLLABLE MOE 0xBB00 묀 HANGUL SYLLABLE MOEN 0xBB04 묄 HANGUL SYLLABLE MOEL 0xBB0D 묍 HANGUL SYLLABLE MOEB 0xBB0F 묏 HANGUL SYLLABLE MOES 0xBB11 묑 HANGUL SYLLABLE MOENG 0xBB18 묘 HANGUL SYLLABLE MYO 0xBB1C 묜 HANGUL SYLLABLE MYON 0xBB20 묠 HANGUL SYLLABLE MYOL 0xBB29 묩 HANGUL SYLLABLE MYOB 0xBB2B 묫 HANGUL SYLLABLE MYOS 0xBB34 무 HANGUL SYLLABLE MU 0xBB35 묵 HANGUL SYLLABLE MUG 0xBB36 묶 HANGUL SYLLABLE MUGG 0xBB38 문 HANGUL SYLLABLE MUN 0xBB3B 묻 HANGUL SYLLABLE MUD 0xBB3C 물 HANGUL SYLLABLE MUL 0xBB3D 묽 HANGUL SYLLABLE MULG 0xBB3E 묾 HANGUL SYLLABLE MULM 0xBB44 뭄 HANGUL SYLLABLE MUM 0xBB45 뭅 HANGUL SYLLABLE MUB 0xBB47 뭇 HANGUL SYLLABLE MUS 0xBB49 뭉 HANGUL SYLLABLE MUNG 0xBB4D 뭍 HANGUL SYLLABLE MUT 0xBB4F 뭏 HANGUL SYLLABLE MUH 0xBB50 뭐 HANGUL SYLLABLE MWEO 0xBB54 뭔 HANGUL SYLLABLE MWEON 0xBB58 뭘 HANGUL SYLLABLE MWEOL 0xBB61 뭡 HANGUL SYLLABLE MWEOB 0xBB63 뭣 HANGUL SYLLABLE MWEOS 0xBB6C 뭬 HANGUL SYLLABLE MWE 0xBB88 뮈 HANGUL SYLLABLE MWI 0xBB8C 뮌 HANGUL SYLLABLE MWIN 0xBB90 뮐 HANGUL SYLLABLE MWIL 0xBBA4 뮤 HANGUL SYLLABLE MYU 0xBBA8 뮨 HANGUL SYLLABLE MYUN 0xBBAC 뮬 HANGUL SYLLABLE MYUL 0xBBB4 뮴 HANGUL SYLLABLE MYUM 0xBBB7 뮷 HANGUL SYLLABLE MYUS 0xBBC0 므 HANGUL SYLLABLE MEU 0xBBC4 믄 HANGUL SYLLABLE MEUN 0xBBC8 믈 HANGUL SYLLABLE MEUL 0xBBD0 믐 HANGUL SYLLABLE MEUM 0xBBD3 믓 HANGUL SYLLABLE MEUS 0xBBF8 미 HANGUL SYLLABLE MI 0xBBF9 믹 HANGUL SYLLABLE MIG 0xBBFC 민 HANGUL SYLLABLE MIN 0xBBFF 믿 HANGUL SYLLABLE MID 0xBC00 밀 HANGUL SYLLABLE MIL 0xBC02 밂 HANGUL SYLLABLE MILM 0xBC08 밈 HANGUL SYLLABLE MIM 0xBC09 밉 HANGUL SYLLABLE MIB 0xBC0B 밋 HANGUL SYLLABLE MIS 0xBC0C 밌 HANGUL SYLLABLE MISS 0xBC0D 밍 HANGUL SYLLABLE MING 0xBC0F 및 HANGUL SYLLABLE MIC 0xBC11 밑 HANGUL SYLLABLE MIT 0xBC14 바 HANGUL SYLLABLE BA 0xBC15 박 HANGUL SYLLABLE BAG 0xBC16 밖 HANGUL SYLLABLE BAGG 0xBC17 밗 HANGUL SYLLABLE BAGS 0xBC18 반 HANGUL SYLLABLE BAN 0xBC1B 받 HANGUL SYLLABLE BAD 0xBC1C 발 HANGUL SYLLABLE BAL 0xBC1D 밝 HANGUL SYLLABLE BALG 0xBC1E 밞 HANGUL SYLLABLE BALM 0xBC1F 밟 HANGUL SYLLABLE BALB 0xBC24 밤 HANGUL SYLLABLE BAM 0xBC25 밥 HANGUL SYLLABLE BAB 0xBC27 밧 HANGUL SYLLABLE BAS 0xBC29 방 HANGUL SYLLABLE BANG 0xBC2D 밭 HANGUL SYLLABLE BAT 0xBC30 배 HANGUL SYLLABLE BAE 0xBC31 백 HANGUL SYLLABLE BAEG 0xBC34 밴 HANGUL SYLLABLE BAEN 0xBC38 밸 HANGUL SYLLABLE BAEL 0xBC40 뱀 HANGUL SYLLABLE BAEM 0xBC41 뱁 HANGUL SYLLABLE BAEB 0xBC43 뱃 HANGUL SYLLABLE BAES 0xBC44 뱄 HANGUL SYLLABLE BAESS 0xBC45 뱅 HANGUL SYLLABLE BAENG 0xBC49 뱉 HANGUL SYLLABLE BAET 0xBC4C 뱌 HANGUL SYLLABLE BYA 0xBC4D 뱍 HANGUL SYLLABLE BYAG 0xBC50 뱐 HANGUL SYLLABLE BYAN 0xBC5D 뱝 HANGUL SYLLABLE BYAB 0xBC84 버 HANGUL SYLLABLE BEO 0xBC85 벅 HANGUL SYLLABLE BEOG 0xBC88 번 HANGUL SYLLABLE BEON 0xBC8B 벋 HANGUL SYLLABLE BEOD 0xBC8C 벌 HANGUL SYLLABLE BEOL 0xBC8E 벎 HANGUL SYLLABLE BEOLM 0xBC94 범 HANGUL SYLLABLE BEOM 0xBC95 법 HANGUL SYLLABLE BEOB 0xBC97 벗 HANGUL SYLLABLE BEOS 0xBC99 벙 HANGUL SYLLABLE BEONG 0xBC9A 벚 HANGUL SYLLABLE BEOJ 0xBCA0 베 HANGUL SYLLABLE BE 0xBCA1 벡 HANGUL SYLLABLE BEG 0xBCA4 벤 HANGUL SYLLABLE BEN 0xBCA7 벧 HANGUL SYLLABLE BED 0xBCA8 벨 HANGUL SYLLABLE BEL 0xBCB0 벰 HANGUL SYLLABLE BEM 0xBCB1 벱 HANGUL SYLLABLE BEB 0xBCB3 벳 HANGUL SYLLABLE BES 0xBCB4 벴 HANGUL SYLLABLE BESS 0xBCB5 벵 HANGUL SYLLABLE BENG 0xBCBC 벼 HANGUL SYLLABLE BYEO 0xBCBD 벽 HANGUL SYLLABLE BYEOG 0xBCC0 변 HANGUL SYLLABLE BYEON 0xBCC4 별 HANGUL SYLLABLE BYEOL 0xBCCD 볍 HANGUL SYLLABLE BYEOB 0xBCCF 볏 HANGUL SYLLABLE BYEOS 0xBCD0 볐 HANGUL SYLLABLE BYEOSS 0xBCD1 병 HANGUL SYLLABLE BYEONG 0xBCD5 볕 HANGUL SYLLABLE BYEOT 0xBCD8 볘 HANGUL SYLLABLE BYE 0xBCDC 볜 HANGUL SYLLABLE BYEN 0xBCF4 보 HANGUL SYLLABLE BO 0xBCF5 복 HANGUL SYLLABLE BOG 0xBCF6 볶 HANGUL SYLLABLE BOGG 0xBCF8 본 HANGUL SYLLABLE BON 0xBCFC 볼 HANGUL SYLLABLE BOL 0xBD04 봄 HANGUL SYLLABLE BOM 0xBD05 봅 HANGUL SYLLABLE BOB 0xBD07 봇 HANGUL SYLLABLE BOS 0xBD09 봉 HANGUL SYLLABLE BONG 0xBD10 봐 HANGUL SYLLABLE BWA 0xBD14 봔 HANGUL SYLLABLE BWAN 0xBD24 봤 HANGUL SYLLABLE BWASS 0xBD2C 봬 HANGUL SYLLABLE BWAE 0xBD40 뵀 HANGUL SYLLABLE BWAESS 0xBD48 뵈 HANGUL SYLLABLE BOE 0xBD49 뵉 HANGUL SYLLABLE BOEG 0xBD4C 뵌 HANGUL SYLLABLE BOEN 0xBD50 뵐 HANGUL SYLLABLE BOEL 0xBD58 뵘 HANGUL SYLLABLE BOEM 0xBD59 뵙 HANGUL SYLLABLE BOEB 0xBD64 뵤 HANGUL SYLLABLE BYO 0xBD68 뵨 HANGUL SYLLABLE BYON 0xBD80 부 HANGUL SYLLABLE BU 0xBD81 북 HANGUL SYLLABLE BUG 0xBD84 분 HANGUL SYLLABLE BUN 0xBD87 붇 HANGUL SYLLABLE BUD 0xBD88 불 HANGUL SYLLABLE BUL 0xBD89 붉 HANGUL SYLLABLE BULG 0xBD8A 붊 HANGUL SYLLABLE BULM 0xBD90 붐 HANGUL SYLLABLE BUM 0xBD91 붑 HANGUL SYLLABLE BUB 0xBD93 붓 HANGUL SYLLABLE BUS 0xBD95 붕 HANGUL SYLLABLE BUNG 0xBD99 붙 HANGUL SYLLABLE BUT 0xBD9A 붚 HANGUL SYLLABLE BUP 0xBD9C 붜 HANGUL SYLLABLE BWEO 0xBDA4 붤 HANGUL SYLLABLE BWEOL 0xBDB0 붰 HANGUL SYLLABLE BWEOSS 0xBDB8 붸 HANGUL SYLLABLE BWE 0xBDD4 뷔 HANGUL SYLLABLE BWI 0xBDD5 뷕 HANGUL SYLLABLE BWIG 0xBDD8 뷘 HANGUL SYLLABLE BWIN 0xBDDC 뷜 HANGUL SYLLABLE BWIL 0xBDE9 뷩 HANGUL SYLLABLE BWING 0xBDF0 뷰 HANGUL SYLLABLE BYU 0xBDF4 뷴 HANGUL SYLLABLE BYUN 0xBDF8 뷸 HANGUL SYLLABLE BYUL 0xBE00 븀 HANGUL SYLLABLE BYUM 0xBE03 븃 HANGUL SYLLABLE BYUS 0xBE05 븅 HANGUL SYLLABLE BYUNG 0xBE0C 브 HANGUL SYLLABLE BEU 0xBE0D 븍 HANGUL SYLLABLE BEUG 0xBE10 븐 HANGUL SYLLABLE BEUN 0xBE14 블 HANGUL SYLLABLE BEUL 0xBE1C 븜 HANGUL SYLLABLE BEUM 0xBE1D 븝 HANGUL SYLLABLE BEUB 0xBE1F 븟 HANGUL SYLLABLE BEUS 0xBE44 비 HANGUL SYLLABLE BI 0xBE45 빅 HANGUL SYLLABLE BIG 0xBE48 빈 HANGUL SYLLABLE BIN 0xBE4C 빌 HANGUL SYLLABLE BIL 0xBE4E 빎 HANGUL SYLLABLE BILM 0xBE54 빔 HANGUL SYLLABLE BIM 0xBE55 빕 HANGUL SYLLABLE BIB 0xBE57 빗 HANGUL SYLLABLE BIS 0xBE59 빙 HANGUL SYLLABLE BING 0xBE5A 빚 HANGUL SYLLABLE BIJ 0xBE5B 빛 HANGUL SYLLABLE BIC 0xBE60 빠 HANGUL SYLLABLE BBA 0xBE61 빡 HANGUL SYLLABLE BBAG 0xBE64 빤 HANGUL SYLLABLE BBAN 0xBE68 빨 HANGUL SYLLABLE BBAL 0xBE6A 빪 HANGUL SYLLABLE BBALM 0xBE70 빰 HANGUL SYLLABLE BBAM 0xBE71 빱 HANGUL SYLLABLE BBAB 0xBE73 빳 HANGUL SYLLABLE BBAS 0xBE74 빴 HANGUL SYLLABLE BBASS 0xBE75 빵 HANGUL SYLLABLE BBANG 0xBE7B 빻 HANGUL SYLLABLE BBAH 0xBE7C 빼 HANGUL SYLLABLE BBAE 0xBE7D 빽 HANGUL SYLLABLE BBAEG 0xBE80 뺀 HANGUL SYLLABLE BBAEN 0xBE84 뺄 HANGUL SYLLABLE BBAEL 0xBE8C 뺌 HANGUL SYLLABLE BBAEM 0xBE8D 뺍 HANGUL SYLLABLE BBAEB 0xBE8F 뺏 HANGUL SYLLABLE BBAES 0xBE90 뺐 HANGUL SYLLABLE BBAESS 0xBE91 뺑 HANGUL SYLLABLE BBAENG 0xBE98 뺘 HANGUL SYLLABLE BBYA 0xBE99 뺙 HANGUL SYLLABLE BBYAG 0xBEA8 뺨 HANGUL SYLLABLE BBYAM 0xBED0 뻐 HANGUL SYLLABLE BBEO 0xBED1 뻑 HANGUL SYLLABLE BBEOG 0xBED4 뻔 HANGUL SYLLABLE BBEON 0xBED7 뻗 HANGUL SYLLABLE BBEOD 0xBED8 뻘 HANGUL SYLLABLE BBEOL 0xBEE0 뻠 HANGUL SYLLABLE BBEOM 0xBEE3 뻣 HANGUL SYLLABLE BBEOS 0xBEE4 뻤 HANGUL SYLLABLE BBEOSS 0xBEE5 뻥 HANGUL SYLLABLE BBEONG 0xBEEC 뻬 HANGUL SYLLABLE BBE 0xBF01 뼁 HANGUL SYLLABLE BBENG 0xBF08 뼈 HANGUL SYLLABLE BBYEO 0xBF09 뼉 HANGUL SYLLABLE BBYEOG 0xBF18 뼘 HANGUL SYLLABLE BBYEOM 0xBF19 뼙 HANGUL SYLLABLE BBYEOB 0xBF1B 뼛 HANGUL SYLLABLE BBYEOS 0xBF1C 뼜 HANGUL SYLLABLE BBYEOSS 0xBF1D 뼝 HANGUL SYLLABLE BBYEONG 0xBF40 뽀 HANGUL SYLLABLE BBO 0xBF41 뽁 HANGUL SYLLABLE BBOG 0xBF44 뽄 HANGUL SYLLABLE BBON 0xBF48 뽈 HANGUL SYLLABLE BBOL 0xBF50 뽐 HANGUL SYLLABLE BBOM 0xBF51 뽑 HANGUL SYLLABLE BBOB 0xBF55 뽕 HANGUL SYLLABLE BBONG 0xBF94 뾔 HANGUL SYLLABLE BBOE 0xBFB0 뾰 HANGUL SYLLABLE BBYO 0xBFC5 뿅 HANGUL SYLLABLE BBYONG 0xBFCC 뿌 HANGUL SYLLABLE BBU 0xBFCD 뿍 HANGUL SYLLABLE BBUG 0xBFD0 뿐 HANGUL SYLLABLE BBUN 0xBFD4 뿔 HANGUL SYLLABLE BBUL 0xBFDC 뿜 HANGUL SYLLABLE BBUM 0xBFDF 뿟 HANGUL SYLLABLE BBUS 0xBFE1 뿡 HANGUL SYLLABLE BBUNG 0xC03C 쀼 HANGUL SYLLABLE BBYU 0xC051 쁑 HANGUL SYLLABLE BBYUNG 0xC058 쁘 HANGUL SYLLABLE BBEU 0xC05C 쁜 HANGUL SYLLABLE BBEUN 0xC060 쁠 HANGUL SYLLABLE BBEUL 0xC068 쁨 HANGUL SYLLABLE BBEUM 0xC069 쁩 HANGUL SYLLABLE BBEUB 0xC090 삐 HANGUL SYLLABLE BBI 0xC091 삑 HANGUL SYLLABLE BBIG 0xC094 삔 HANGUL SYLLABLE BBIN 0xC098 삘 HANGUL SYLLABLE BBIL 0xC0A0 삠 HANGUL SYLLABLE BBIM 0xC0A1 삡 HANGUL SYLLABLE BBIB 0xC0A3 삣 HANGUL SYLLABLE BBIS 0xC0A5 삥 HANGUL SYLLABLE BBING 0xC0AC 사 HANGUL SYLLABLE SA 0xC0AD 삭 HANGUL SYLLABLE SAG 0xC0AF 삯 HANGUL SYLLABLE SAGS 0xC0B0 산 HANGUL SYLLABLE SAN 0xC0B3 삳 HANGUL SYLLABLE SAD 0xC0B4 살 HANGUL SYLLABLE SAL 0xC0B5 삵 HANGUL SYLLABLE SALG 0xC0B6 삶 HANGUL SYLLABLE SALM 0xC0BC 삼 HANGUL SYLLABLE SAM 0xC0BD 삽 HANGUL SYLLABLE SAB 0xC0BF 삿 HANGUL SYLLABLE SAS 0xC0C0 샀 HANGUL SYLLABLE SASS 0xC0C1 상 HANGUL SYLLABLE SANG 0xC0C5 샅 HANGUL SYLLABLE SAT 0xC0C8 새 HANGUL SYLLABLE SAE 0xC0C9 색 HANGUL SYLLABLE SAEG 0xC0CC 샌 HANGUL SYLLABLE SAEN 0xC0D0 샐 HANGUL SYLLABLE SAEL 0xC0D8 샘 HANGUL SYLLABLE SAEM 0xC0D9 샙 HANGUL SYLLABLE SAEB 0xC0DB 샛 HANGUL SYLLABLE SAES 0xC0DC 샜 HANGUL SYLLABLE SAESS 0xC0DD 생 HANGUL SYLLABLE SAENG 0xC0E4 샤 HANGUL SYLLABLE SYA 0xC0E5 샥 HANGUL SYLLABLE SYAG 0xC0E8 샨 HANGUL SYLLABLE SYAN 0xC0EC 샬 HANGUL SYLLABLE SYAL 0xC0F4 샴 HANGUL SYLLABLE SYAM 0xC0F5 샵 HANGUL SYLLABLE SYAB 0xC0F7 샷 HANGUL SYLLABLE SYAS 0xC0F9 샹 HANGUL SYLLABLE SYANG 0xC100 섀 HANGUL SYLLABLE SYAE 0xC104 섄 HANGUL SYLLABLE SYAEN 0xC108 섈 HANGUL SYLLABLE SYAEL 0xC110 섐 HANGUL SYLLABLE SYAEM 0xC115 섕 HANGUL SYLLABLE SYAENG 0xC11C 서 HANGUL SYLLABLE SEO 0xC11D 석 HANGUL SYLLABLE SEOG 0xC11E 섞 HANGUL SYLLABLE SEOGG 0xC11F 섟 HANGUL SYLLABLE SEOGS 0xC120 선 HANGUL SYLLABLE SEON 0xC123 섣 HANGUL SYLLABLE SEOD 0xC124 설 HANGUL SYLLABLE SEOL 0xC126 섦 HANGUL SYLLABLE SEOLM 0xC127 섧 HANGUL SYLLABLE SEOLB 0xC12C 섬 HANGUL SYLLABLE SEOM 0xC12D 섭 HANGUL SYLLABLE SEOB 0xC12F 섯 HANGUL SYLLABLE SEOS 0xC130 섰 HANGUL SYLLABLE SEOSS 0xC131 성 HANGUL SYLLABLE SEONG 0xC136 섶 HANGUL SYLLABLE SEOP 0xC138 세 HANGUL SYLLABLE SE 0xC139 섹 HANGUL SYLLABLE SEG 0xC13C 센 HANGUL SYLLABLE SEN 0xC140 셀 HANGUL SYLLABLE SEL 0xC148 셈 HANGUL SYLLABLE SEM 0xC149 셉 HANGUL SYLLABLE SEB 0xC14B 셋 HANGUL SYLLABLE SES 0xC14C 셌 HANGUL SYLLABLE SESS 0xC14D 셍 HANGUL SYLLABLE SENG 0xC154 셔 HANGUL SYLLABLE SYEO 0xC155 셕 HANGUL SYLLABLE SYEOG 0xC158 션 HANGUL SYLLABLE SYEON 0xC15C 셜 HANGUL SYLLABLE SYEOL 0xC164 셤 HANGUL SYLLABLE SYEOM 0xC165 셥 HANGUL SYLLABLE SYEOB 0xC167 셧 HANGUL SYLLABLE SYEOS 0xC168 셨 HANGUL SYLLABLE SYEOSS 0xC169 셩 HANGUL SYLLABLE SYEONG 0xC170 셰 HANGUL SYLLABLE SYE 0xC174 셴 HANGUL SYLLABLE SYEN 0xC178 셸 HANGUL SYLLABLE SYEL 0xC185 솅 HANGUL SYLLABLE SYENG 0xC18C 소 HANGUL SYLLABLE SO 0xC18D 속 HANGUL SYLLABLE SOG 0xC18E 솎 HANGUL SYLLABLE SOGG 0xC190 손 HANGUL SYLLABLE SON 0xC194 솔 HANGUL SYLLABLE SOL 0xC196 솖 HANGUL SYLLABLE SOLM 0xC19C 솜 HANGUL SYLLABLE SOM 0xC19D 솝 HANGUL SYLLABLE SOB 0xC19F 솟 HANGUL SYLLABLE SOS 0xC1A1 송 HANGUL SYLLABLE SONG 0xC1A5 솥 HANGUL SYLLABLE SOT 0xC1A8 솨 HANGUL SYLLABLE SWA 0xC1A9 솩 HANGUL SYLLABLE SWAG 0xC1AC 솬 HANGUL SYLLABLE SWAN 0xC1B0 솰 HANGUL SYLLABLE SWAL 0xC1BD 솽 HANGUL SYLLABLE SWANG 0xC1C4 쇄 HANGUL SYLLABLE SWAE 0xC1C8 쇈 HANGUL SYLLABLE SWAEN 0xC1CC 쇌 HANGUL SYLLABLE SWAEL 0xC1D4 쇔 HANGUL SYLLABLE SWAEM 0xC1D7 쇗 HANGUL SYLLABLE SWAES 0xC1D8 쇘 HANGUL SYLLABLE SWAESS 0xC1E0 쇠 HANGUL SYLLABLE SOE 0xC1E4 쇤 HANGUL SYLLABLE SOEN 0xC1E8 쇨 HANGUL SYLLABLE SOEL 0xC1F0 쇰 HANGUL SYLLABLE SOEM 0xC1F1 쇱 HANGUL SYLLABLE SOEB 0xC1F3 쇳 HANGUL SYLLABLE SOES 0xC1FC 쇼 HANGUL SYLLABLE SYO 0xC1FD 쇽 HANGUL SYLLABLE SYOG 0xC200 숀 HANGUL SYLLABLE SYON 0xC204 숄 HANGUL SYLLABLE SYOL 0xC20C 숌 HANGUL SYLLABLE SYOM 0xC20D 숍 HANGUL SYLLABLE SYOB 0xC20F 숏 HANGUL SYLLABLE SYOS 0xC211 숑 HANGUL SYLLABLE SYONG 0xC218 수 HANGUL SYLLABLE SU 0xC219 숙 HANGUL SYLLABLE SUG 0xC21C 순 HANGUL SYLLABLE SUN 0xC21F 숟 HANGUL SYLLABLE SUD 0xC220 술 HANGUL SYLLABLE SUL 0xC228 숨 HANGUL SYLLABLE SUM 0xC229 숩 HANGUL SYLLABLE SUB 0xC22B 숫 HANGUL SYLLABLE SUS 0xC22D 숭 HANGUL SYLLABLE SUNG 0xC22F 숯 HANGUL SYLLABLE SUC 0xC231 숱 HANGUL SYLLABLE SUT 0xC232 숲 HANGUL SYLLABLE SUP 0xC234 숴 HANGUL SYLLABLE SWEO 0xC248 쉈 HANGUL SYLLABLE SWEOSS 0xC250 쉐 HANGUL SYLLABLE SWE 0xC251 쉑 HANGUL SYLLABLE SWEG 0xC254 쉔 HANGUL SYLLABLE SWEN 0xC258 쉘 HANGUL SYLLABLE SWEL 0xC260 쉠 HANGUL SYLLABLE SWEM 0xC265 쉥 HANGUL SYLLABLE SWENG 0xC26C 쉬 HANGUL SYLLABLE SWI 0xC26D 쉭 HANGUL SYLLABLE SWIG 0xC270 쉰 HANGUL SYLLABLE SWIN 0xC274 쉴 HANGUL SYLLABLE SWIL 0xC27C 쉼 HANGUL SYLLABLE SWIM 0xC27D 쉽 HANGUL SYLLABLE SWIB 0xC27F 쉿 HANGUL SYLLABLE SWIS 0xC281 슁 HANGUL SYLLABLE SWING 0xC288 슈 HANGUL SYLLABLE SYU 0xC289 슉 HANGUL SYLLABLE SYUG 0xC290 슐 HANGUL SYLLABLE SYUL 0xC298 슘 HANGUL SYLLABLE SYUM 0xC29B 슛 HANGUL SYLLABLE SYUS 0xC29D 슝 HANGUL SYLLABLE SYUNG 0xC2A4 스 HANGUL SYLLABLE SEU 0xC2A5 슥 HANGUL SYLLABLE SEUG 0xC2A8 슨 HANGUL SYLLABLE SEUN 0xC2AC 슬 HANGUL SYLLABLE SEUL 0xC2AD 슭 HANGUL SYLLABLE SEULG 0xC2B4 슴 HANGUL SYLLABLE SEUM 0xC2B5 습 HANGUL SYLLABLE SEUB 0xC2B7 슷 HANGUL SYLLABLE SEUS 0xC2B9 승 HANGUL SYLLABLE SEUNG 0xC2DC 시 HANGUL SYLLABLE SI 0xC2DD 식 HANGUL SYLLABLE SIG 0xC2E0 신 HANGUL SYLLABLE SIN 0xC2E3 싣 HANGUL SYLLABLE SID 0xC2E4 실 HANGUL SYLLABLE SIL 0xC2EB 싫 HANGUL SYLLABLE SILH 0xC2EC 심 HANGUL SYLLABLE SIM 0xC2ED 십 HANGUL SYLLABLE SIB 0xC2EF 싯 HANGUL SYLLABLE SIS 0xC2F1 싱 HANGUL SYLLABLE SING 0xC2F6 싶 HANGUL SYLLABLE SIP 0xC2F8 싸 HANGUL SYLLABLE SSA 0xC2F9 싹 HANGUL SYLLABLE SSAG 0xC2FB 싻 HANGUL SYLLABLE SSAGS 0xC2FC 싼 HANGUL SYLLABLE SSAN 0xC300 쌀 HANGUL SYLLABLE SSAL 0xC308 쌈 HANGUL SYLLABLE SSAM 0xC309 쌉 HANGUL SYLLABLE SSAB 0xC30C 쌌 HANGUL SYLLABLE SSASS 0xC30D 쌍 HANGUL SYLLABLE SSANG 0xC313 쌓 HANGUL SYLLABLE SSAH 0xC314 쌔 HANGUL SYLLABLE SSAE 0xC315 쌕 HANGUL SYLLABLE SSAEG 0xC318 쌘 HANGUL SYLLABLE SSAEN 0xC31C 쌜 HANGUL SYLLABLE SSAEL 0xC324 쌤 HANGUL SYLLABLE SSAEM 0xC325 쌥 HANGUL SYLLABLE SSAEB 0xC328 쌨 HANGUL SYLLABLE SSAESS 0xC329 쌩 HANGUL SYLLABLE SSAENG 0xC345 썅 HANGUL SYLLABLE SSYANG 0xC368 써 HANGUL SYLLABLE SSEO 0xC369 썩 HANGUL SYLLABLE SSEOG 0xC36C 썬 HANGUL SYLLABLE SSEON 0xC370 썰 HANGUL SYLLABLE SSEOL 0xC372 썲 HANGUL SYLLABLE SSEOLM 0xC378 썸 HANGUL SYLLABLE SSEOM 0xC379 썹 HANGUL SYLLABLE SSEOB 0xC37C 썼 HANGUL SYLLABLE SSEOSS 0xC37D 썽 HANGUL SYLLABLE SSEONG 0xC384 쎄 HANGUL SYLLABLE SSE 0xC388 쎈 HANGUL SYLLABLE SSEN 0xC38C 쎌 HANGUL SYLLABLE SSEL 0xC3C0 쏀 HANGUL SYLLABLE SSYEN 0xC3D8 쏘 HANGUL SYLLABLE SSO 0xC3D9 쏙 HANGUL SYLLABLE SSOG 0xC3DC 쏜 HANGUL SYLLABLE SSON 0xC3DF 쏟 HANGUL SYLLABLE SSOD 0xC3E0 쏠 HANGUL SYLLABLE SSOL 0xC3E2 쏢 HANGUL SYLLABLE SSOLM 0xC3E8 쏨 HANGUL SYLLABLE SSOM 0xC3E9 쏩 HANGUL SYLLABLE SSOB 0xC3ED 쏭 HANGUL SYLLABLE SSONG 0xC3F4 쏴 HANGUL SYLLABLE SSWA 0xC3F5 쏵 HANGUL SYLLABLE SSWAG 0xC3F8 쏸 HANGUL SYLLABLE SSWAN 0xC408 쐈 HANGUL SYLLABLE SSWASS 0xC410 쐐 HANGUL SYLLABLE SSWAE 0xC424 쐤 HANGUL SYLLABLE SSWAESS 0xC42C 쐬 HANGUL SYLLABLE SSOE 0xC430 쐰 HANGUL SYLLABLE SSOEN 0xC434 쐴 HANGUL SYLLABLE SSOEL 0xC43C 쐼 HANGUL SYLLABLE SSOEM 0xC43D 쐽 HANGUL SYLLABLE SSOEB 0xC448 쑈 HANGUL SYLLABLE SSYO 0xC464 쑤 HANGUL SYLLABLE SSU 0xC465 쑥 HANGUL SYLLABLE SSUG 0xC468 쑨 HANGUL SYLLABLE SSUN 0xC46C 쑬 HANGUL SYLLABLE SSUL 0xC474 쑴 HANGUL SYLLABLE SSUM 0xC475 쑵 HANGUL SYLLABLE SSUB 0xC479 쑹 HANGUL SYLLABLE SSUNG 0xC480 쒀 HANGUL SYLLABLE SSWEO 0xC494 쒔 HANGUL SYLLABLE SSWEOSS 0xC49C 쒜 HANGUL SYLLABLE SSWE 0xC4B8 쒸 HANGUL SYLLABLE SSWI 0xC4BC 쒼 HANGUL SYLLABLE SSWIN 0xC4E9 쓩 HANGUL SYLLABLE SSYUNG 0xC4F0 쓰 HANGUL SYLLABLE SSEU 0xC4F1 쓱 HANGUL SYLLABLE SSEUG 0xC4F4 쓴 HANGUL SYLLABLE SSEUN 0xC4F8 쓸 HANGUL SYLLABLE SSEUL 0xC4FA 쓺 HANGUL SYLLABLE SSEULM 0xC4FF 쓿 HANGUL SYLLABLE SSEULH 0xC500 씀 HANGUL SYLLABLE SSEUM 0xC501 씁 HANGUL SYLLABLE SSEUB 0xC50C 씌 HANGUL SYLLABLE SSYI 0xC510 씐 HANGUL SYLLABLE SSYIN 0xC514 씔 HANGUL SYLLABLE SSYIL 0xC51C 씜 HANGUL SYLLABLE SSYIM 0xC528 씨 HANGUL SYLLABLE SSI 0xC529 씩 HANGUL SYLLABLE SSIG 0xC52C 씬 HANGUL SYLLABLE SSIN 0xC530 씰 HANGUL SYLLABLE SSIL 0xC538 씸 HANGUL SYLLABLE SSIM 0xC539 씹 HANGUL SYLLABLE SSIB 0xC53B 씻 HANGUL SYLLABLE SSIS 0xC53D 씽 HANGUL SYLLABLE SSING 0xC544 아 HANGUL SYLLABLE A 0xC545 악 HANGUL SYLLABLE AG 0xC548 안 HANGUL SYLLABLE AN 0xC549 앉 HANGUL SYLLABLE ANJ 0xC54A 않 HANGUL SYLLABLE ANH 0xC54C 알 HANGUL SYLLABLE AL 0xC54D 앍 HANGUL SYLLABLE ALG 0xC54E 앎 HANGUL SYLLABLE ALM 0xC553 앓 HANGUL SYLLABLE ALH 0xC554 암 HANGUL SYLLABLE AM 0xC555 압 HANGUL SYLLABLE AB 0xC557 앗 HANGUL SYLLABLE AS 0xC558 았 HANGUL SYLLABLE ASS 0xC559 앙 HANGUL SYLLABLE ANG 0xC55D 앝 HANGUL SYLLABLE AT 0xC55E 앞 HANGUL SYLLABLE AP 0xC560 애 HANGUL SYLLABLE AE 0xC561 액 HANGUL SYLLABLE AEG 0xC564 앤 HANGUL SYLLABLE AEN 0xC568 앨 HANGUL SYLLABLE AEL 0xC570 앰 HANGUL SYLLABLE AEM 0xC571 앱 HANGUL SYLLABLE AEB 0xC573 앳 HANGUL SYLLABLE AES 0xC574 앴 HANGUL SYLLABLE AESS 0xC575 앵 HANGUL SYLLABLE AENG 0xC57C 야 HANGUL SYLLABLE YA 0xC57D 약 HANGUL SYLLABLE YAG 0xC580 얀 HANGUL SYLLABLE YAN 0xC584 얄 HANGUL SYLLABLE YAL 0xC587 얇 HANGUL SYLLABLE YALB 0xC58C 얌 HANGUL SYLLABLE YAM 0xC58D 얍 HANGUL SYLLABLE YAB 0xC58F 얏 HANGUL SYLLABLE YAS 0xC591 양 HANGUL SYLLABLE YANG 0xC595 얕 HANGUL SYLLABLE YAT 0xC597 얗 HANGUL SYLLABLE YAH 0xC598 얘 HANGUL SYLLABLE YAE 0xC59C 얜 HANGUL SYLLABLE YAEN 0xC5A0 얠 HANGUL SYLLABLE YAEL 0xC5A9 얩 HANGUL SYLLABLE YAEB 0xC5B4 어 HANGUL SYLLABLE EO 0xC5B5 억 HANGUL SYLLABLE EOG 0xC5B8 언 HANGUL SYLLABLE EON 0xC5B9 얹 HANGUL SYLLABLE EONJ 0xC5BB 얻 HANGUL SYLLABLE EOD 0xC5BC 얼 HANGUL SYLLABLE EOL 0xC5BD 얽 HANGUL SYLLABLE EOLG 0xC5BE 얾 HANGUL SYLLABLE EOLM 0xC5C4 엄 HANGUL SYLLABLE EOM 0xC5C5 업 HANGUL SYLLABLE EOB 0xC5C6 없 HANGUL SYLLABLE EOBS 0xC5C7 엇 HANGUL SYLLABLE EOS 0xC5C8 었 HANGUL SYLLABLE EOSS 0xC5C9 엉 HANGUL SYLLABLE EONG 0xC5CA 엊 HANGUL SYLLABLE EOJ 0xC5CC 엌 HANGUL SYLLABLE EOK 0xC5CE 엎 HANGUL SYLLABLE EOP 0xC5D0 에 HANGUL SYLLABLE E 0xC5D1 엑 HANGUL SYLLABLE EG 0xC5D4 엔 HANGUL SYLLABLE EN 0xC5D8 엘 HANGUL SYLLABLE EL 0xC5E0 엠 HANGUL SYLLABLE EM 0xC5E1 엡 HANGUL SYLLABLE EB 0xC5E3 엣 HANGUL SYLLABLE ES 0xC5E5 엥 HANGUL SYLLABLE ENG 0xC5EC 여 HANGUL SYLLABLE YEO 0xC5ED 역 HANGUL SYLLABLE YEOG 0xC5EE 엮 HANGUL SYLLABLE YEOGG 0xC5F0 연 HANGUL SYLLABLE YEON 0xC5F4 열 HANGUL SYLLABLE YEOL 0xC5F6 엶 HANGUL SYLLABLE YEOLM 0xC5F7 엷 HANGUL SYLLABLE YEOLB 0xC5FC 염 HANGUL SYLLABLE YEOM 0xC5FD 엽 HANGUL SYLLABLE YEOB 0xC5FE 엾 HANGUL SYLLABLE YEOBS 0xC5FF 엿 HANGUL SYLLABLE YEOS 0xC600 였 HANGUL SYLLABLE YEOSS 0xC601 영 HANGUL SYLLABLE YEONG 0xC605 옅 HANGUL SYLLABLE YEOT 0xC606 옆 HANGUL SYLLABLE YEOP 0xC607 옇 HANGUL SYLLABLE YEOH 0xC608 예 HANGUL SYLLABLE YE 0xC60C 옌 HANGUL SYLLABLE YEN 0xC610 옐 HANGUL SYLLABLE YEL 0xC618 옘 HANGUL SYLLABLE YEM 0xC619 옙 HANGUL SYLLABLE YEB 0xC61B 옛 HANGUL SYLLABLE YES 0xC61C 옜 HANGUL SYLLABLE YESS 0xC624 오 HANGUL SYLLABLE O 0xC625 옥 HANGUL SYLLABLE OG 0xC628 온 HANGUL SYLLABLE ON 0xC62C 올 HANGUL SYLLABLE OL 0xC62D 옭 HANGUL SYLLABLE OLG 0xC62E 옮 HANGUL SYLLABLE OLM 0xC630 옰 HANGUL SYLLABLE OLS 0xC633 옳 HANGUL SYLLABLE OLH 0xC634 옴 HANGUL SYLLABLE OM 0xC635 옵 HANGUL SYLLABLE OB 0xC637 옷 HANGUL SYLLABLE OS 0xC639 옹 HANGUL SYLLABLE ONG 0xC63B 옻 HANGUL SYLLABLE OC 0xC640 와 HANGUL SYLLABLE WA 0xC641 왁 HANGUL SYLLABLE WAG 0xC644 완 HANGUL SYLLABLE WAN 0xC648 왈 HANGUL SYLLABLE WAL 0xC650 왐 HANGUL SYLLABLE WAM 0xC651 왑 HANGUL SYLLABLE WAB 0xC653 왓 HANGUL SYLLABLE WAS 0xC654 왔 HANGUL SYLLABLE WASS 0xC655 왕 HANGUL SYLLABLE WANG 0xC65C 왜 HANGUL SYLLABLE WAE 0xC65D 왝 HANGUL SYLLABLE WAEG 0xC660 왠 HANGUL SYLLABLE WAEN 0xC66C 왬 HANGUL SYLLABLE WAEM 0xC66F 왯 HANGUL SYLLABLE WAES 0xC671 왱 HANGUL SYLLABLE WAENG 0xC678 외 HANGUL SYLLABLE OE 0xC679 왹 HANGUL SYLLABLE OEG 0xC67C 왼 HANGUL SYLLABLE OEN 0xC680 욀 HANGUL SYLLABLE OEL 0xC688 욈 HANGUL SYLLABLE OEM 0xC689 욉 HANGUL SYLLABLE OEB 0xC68B 욋 HANGUL SYLLABLE OES 0xC68D 욍 HANGUL SYLLABLE OENG 0xC694 요 HANGUL SYLLABLE YO 0xC695 욕 HANGUL SYLLABLE YOG 0xC698 욘 HANGUL SYLLABLE YON 0xC69C 욜 HANGUL SYLLABLE YOL 0xC6A4 욤 HANGUL SYLLABLE YOM 0xC6A5 욥 HANGUL SYLLABLE YOB 0xC6A7 욧 HANGUL SYLLABLE YOS 0xC6A9 용 HANGUL SYLLABLE YONG 0xC6B0 우 HANGUL SYLLABLE U 0xC6B1 욱 HANGUL SYLLABLE UG 0xC6B4 운 HANGUL SYLLABLE UN 0xC6B8 울 HANGUL SYLLABLE UL 0xC6B9 욹 HANGUL SYLLABLE ULG 0xC6BA 욺 HANGUL SYLLABLE ULM 0xC6C0 움 HANGUL SYLLABLE UM 0xC6C1 웁 HANGUL SYLLABLE UB 0xC6C3 웃 HANGUL SYLLABLE US 0xC6C5 웅 HANGUL SYLLABLE UNG 0xC6CC 워 HANGUL SYLLABLE WEO 0xC6CD 웍 HANGUL SYLLABLE WEOG 0xC6D0 원 HANGUL SYLLABLE WEON 0xC6D4 월 HANGUL SYLLABLE WEOL 0xC6DC 웜 HANGUL SYLLABLE WEOM 0xC6DD 웝 HANGUL SYLLABLE WEOB 0xC6E0 웠 HANGUL SYLLABLE WEOSS 0xC6E1 웡 HANGUL SYLLABLE WEONG 0xC6E8 웨 HANGUL SYLLABLE WE 0xC6E9 웩 HANGUL SYLLABLE WEG 0xC6EC 웬 HANGUL SYLLABLE WEN 0xC6F0 웰 HANGUL SYLLABLE WEL 0xC6F8 웸 HANGUL SYLLABLE WEM 0xC6F9 웹 HANGUL SYLLABLE WEB 0xC6FD 웽 HANGUL SYLLABLE WENG 0xC704 위 HANGUL SYLLABLE WI 0xC705 윅 HANGUL SYLLABLE WIG 0xC708 윈 HANGUL SYLLABLE WIN 0xC70C 윌 HANGUL SYLLABLE WIL 0xC714 윔 HANGUL SYLLABLE WIM 0xC715 윕 HANGUL SYLLABLE WIB 0xC717 윗 HANGUL SYLLABLE WIS 0xC719 윙 HANGUL SYLLABLE WING 0xC720 유 HANGUL SYLLABLE YU 0xC721 육 HANGUL SYLLABLE YUG 0xC724 윤 HANGUL SYLLABLE YUN 0xC728 율 HANGUL SYLLABLE YUL 0xC730 윰 HANGUL SYLLABLE YUM 0xC731 윱 HANGUL SYLLABLE YUB 0xC733 윳 HANGUL SYLLABLE YUS 0xC735 융 HANGUL SYLLABLE YUNG 0xC737 윷 HANGUL SYLLABLE YUC 0xC73C 으 HANGUL SYLLABLE EU 0xC73D 윽 HANGUL SYLLABLE EUG 0xC740 은 HANGUL SYLLABLE EUN 0xC744 을 HANGUL SYLLABLE EUL 0xC74A 읊 HANGUL SYLLABLE EULP 0xC74C 음 HANGUL SYLLABLE EUM 0xC74D 읍 HANGUL SYLLABLE EUB 0xC74F 읏 HANGUL SYLLABLE EUS 0xC751 응 HANGUL SYLLABLE EUNG 0xC752 읒 HANGUL SYLLABLE EUJ 0xC753 읓 HANGUL SYLLABLE EUC 0xC754 읔 HANGUL SYLLABLE EUK 0xC755 읕 HANGUL SYLLABLE EUT 0xC756 읖 HANGUL SYLLABLE EUP 0xC757 읗 HANGUL SYLLABLE EUH 0xC758 의 HANGUL SYLLABLE YI 0xC75C 읜 HANGUL SYLLABLE YIN 0xC760 읠 HANGUL SYLLABLE YIL 0xC768 읨 HANGUL SYLLABLE YIM 0xC76B 읫 HANGUL SYLLABLE YIS 0xC774 이 HANGUL SYLLABLE I 0xC775 익 HANGUL SYLLABLE IG 0xC778 인 HANGUL SYLLABLE IN 0xC77C 일 HANGUL SYLLABLE IL 0xC77D 읽 HANGUL SYLLABLE ILG 0xC77E 읾 HANGUL SYLLABLE ILM 0xC783 잃 HANGUL SYLLABLE ILH 0xC784 임 HANGUL SYLLABLE IM 0xC785 입 HANGUL SYLLABLE IB 0xC787 잇 HANGUL SYLLABLE IS 0xC788 있 HANGUL SYLLABLE ISS 0xC789 잉 HANGUL SYLLABLE ING 0xC78A 잊 HANGUL SYLLABLE IJ 0xC78E 잎 HANGUL SYLLABLE IP 0xC790 자 HANGUL SYLLABLE JA 0xC791 작 HANGUL SYLLABLE JAG 0xC794 잔 HANGUL SYLLABLE JAN 0xC796 잖 HANGUL SYLLABLE JANH 0xC797 잗 HANGUL SYLLABLE JAD 0xC798 잘 HANGUL SYLLABLE JAL 0xC79A 잚 HANGUL SYLLABLE JALM 0xC7A0 잠 HANGUL SYLLABLE JAM 0xC7A1 잡 HANGUL SYLLABLE JAB 0xC7A3 잣 HANGUL SYLLABLE JAS 0xC7A4 잤 HANGUL SYLLABLE JASS 0xC7A5 장 HANGUL SYLLABLE JANG 0xC7A6 잦 HANGUL SYLLABLE JAJ 0xC7AC 재 HANGUL SYLLABLE JAE 0xC7AD 잭 HANGUL SYLLABLE JAEG 0xC7B0 잰 HANGUL SYLLABLE JAEN 0xC7B4 잴 HANGUL SYLLABLE JAEL 0xC7BC 잼 HANGUL SYLLABLE JAEM 0xC7BD 잽 HANGUL SYLLABLE JAEB 0xC7BF 잿 HANGUL SYLLABLE JAES 0xC7C0 쟀 HANGUL SYLLABLE JAESS 0xC7C1 쟁 HANGUL SYLLABLE JAENG 0xC7C8 쟈 HANGUL SYLLABLE JYA 0xC7C9 쟉 HANGUL SYLLABLE JYAG 0xC7CC 쟌 HANGUL SYLLABLE JYAN 0xC7CE 쟎 HANGUL SYLLABLE JYANH 0xC7D0 쟐 HANGUL SYLLABLE JYAL 0xC7D8 쟘 HANGUL SYLLABLE JYAM 0xC7DD 쟝 HANGUL SYLLABLE JYANG 0xC7E4 쟤 HANGUL SYLLABLE JYAE 0xC7E8 쟨 HANGUL SYLLABLE JYAEN 0xC7EC 쟬 HANGUL SYLLABLE JYAEL 0xC800 저 HANGUL SYLLABLE JEO 0xC801 적 HANGUL SYLLABLE JEOG 0xC804 전 HANGUL SYLLABLE JEON 0xC808 절 HANGUL SYLLABLE JEOL 0xC80A 젊 HANGUL SYLLABLE JEOLM 0xC810 점 HANGUL SYLLABLE JEOM 0xC811 접 HANGUL SYLLABLE JEOB 0xC813 젓 HANGUL SYLLABLE JEOS 0xC815 정 HANGUL SYLLABLE JEONG 0xC816 젖 HANGUL SYLLABLE JEOJ 0xC81C 제 HANGUL SYLLABLE JE 0xC81D 젝 HANGUL SYLLABLE JEG 0xC820 젠 HANGUL SYLLABLE JEN 0xC824 젤 HANGUL SYLLABLE JEL 0xC82C 젬 HANGUL SYLLABLE JEM 0xC82D 젭 HANGUL SYLLABLE JEB 0xC82F 젯 HANGUL SYLLABLE JES 0xC831 젱 HANGUL SYLLABLE JENG 0xC838 져 HANGUL SYLLABLE JYEO 0xC83C 젼 HANGUL SYLLABLE JYEON 0xC840 졀 HANGUL SYLLABLE JYEOL 0xC848 졈 HANGUL SYLLABLE JYEOM 0xC849 졉 HANGUL SYLLABLE JYEOB 0xC84C 졌 HANGUL SYLLABLE JYEOSS 0xC84D 졍 HANGUL SYLLABLE JYEONG 0xC854 졔 HANGUL SYLLABLE JYE 0xC870 조 HANGUL SYLLABLE JO 0xC871 족 HANGUL SYLLABLE JOG 0xC874 존 HANGUL SYLLABLE JON 0xC878 졸 HANGUL SYLLABLE JOL 0xC87A 졺 HANGUL SYLLABLE JOLM 0xC880 좀 HANGUL SYLLABLE JOM 0xC881 좁 HANGUL SYLLABLE JOB 0xC883 좃 HANGUL SYLLABLE JOS 0xC885 종 HANGUL SYLLABLE JONG 0xC886 좆 HANGUL SYLLABLE JOJ 0xC887 좇 HANGUL SYLLABLE JOC 0xC88B 좋 HANGUL SYLLABLE JOH 0xC88C 좌 HANGUL SYLLABLE JWA 0xC88D 좍 HANGUL SYLLABLE JWAG 0xC894 좔 HANGUL SYLLABLE JWAL 0xC89D 좝 HANGUL SYLLABLE JWAB 0xC89F 좟 HANGUL SYLLABLE JWAS 0xC8A1 좡 HANGUL SYLLABLE JWANG 0xC8A8 좨 HANGUL SYLLABLE JWAE 0xC8BC 좼 HANGUL SYLLABLE JWAESS 0xC8BD 좽 HANGUL SYLLABLE JWAENG 0xC8C4 죄 HANGUL SYLLABLE JOE 0xC8C8 죈 HANGUL SYLLABLE JOEN 0xC8CC 죌 HANGUL SYLLABLE JOEL 0xC8D4 죔 HANGUL SYLLABLE JOEM 0xC8D5 죕 HANGUL SYLLABLE JOEB 0xC8D7 죗 HANGUL SYLLABLE JOES 0xC8D9 죙 HANGUL SYLLABLE JOENG 0xC8E0 죠 HANGUL SYLLABLE JYO 0xC8E1 죡 HANGUL SYLLABLE JYOG 0xC8E4 죤 HANGUL SYLLABLE JYON 0xC8F5 죵 HANGUL SYLLABLE JYONG 0xC8FC 주 HANGUL SYLLABLE JU 0xC8FD 죽 HANGUL SYLLABLE JUG 0xC900 준 HANGUL SYLLABLE JUN 0xC904 줄 HANGUL SYLLABLE JUL 0xC905 줅 HANGUL SYLLABLE JULG 0xC906 줆 HANGUL SYLLABLE JULM 0xC90C 줌 HANGUL SYLLABLE JUM 0xC90D 줍 HANGUL SYLLABLE JUB 0xC90F 줏 HANGUL SYLLABLE JUS 0xC911 중 HANGUL SYLLABLE JUNG 0xC918 줘 HANGUL SYLLABLE JWEO 0xC92C 줬 HANGUL SYLLABLE JWEOSS 0xC934 줴 HANGUL SYLLABLE JWE 0xC950 쥐 HANGUL SYLLABLE JWI 0xC951 쥑 HANGUL SYLLABLE JWIG 0xC954 쥔 HANGUL SYLLABLE JWIN 0xC958 쥘 HANGUL SYLLABLE JWIL 0xC960 쥠 HANGUL SYLLABLE JWIM 0xC961 쥡 HANGUL SYLLABLE JWIB 0xC963 쥣 HANGUL SYLLABLE JWIS 0xC96C 쥬 HANGUL SYLLABLE JYU 0xC970 쥰 HANGUL SYLLABLE JYUN 0xC974 쥴 HANGUL SYLLABLE JYUL 0xC97C 쥼 HANGUL SYLLABLE JYUM 0xC988 즈 HANGUL SYLLABLE JEU 0xC989 즉 HANGUL SYLLABLE JEUG 0xC98C 즌 HANGUL SYLLABLE JEUN 0xC990 즐 HANGUL SYLLABLE JEUL 0xC998 즘 HANGUL SYLLABLE JEUM 0xC999 즙 HANGUL SYLLABLE JEUB 0xC99B 즛 HANGUL SYLLABLE JEUS 0xC99D 증 HANGUL SYLLABLE JEUNG 0xC9C0 지 HANGUL SYLLABLE JI 0xC9C1 직 HANGUL SYLLABLE JIG 0xC9C4 진 HANGUL SYLLABLE JIN 0xC9C7 짇 HANGUL SYLLABLE JID 0xC9C8 질 HANGUL SYLLABLE JIL 0xC9CA 짊 HANGUL SYLLABLE JILM 0xC9D0 짐 HANGUL SYLLABLE JIM 0xC9D1 집 HANGUL SYLLABLE JIB 0xC9D3 짓 HANGUL SYLLABLE JIS 0xC9D5 징 HANGUL SYLLABLE JING 0xC9D6 짖 HANGUL SYLLABLE JIJ 0xC9D9 짙 HANGUL SYLLABLE JIT 0xC9DA 짚 HANGUL SYLLABLE JIP 0xC9DC 짜 HANGUL SYLLABLE JJA 0xC9DD 짝 HANGUL SYLLABLE JJAG 0xC9E0 짠 HANGUL SYLLABLE JJAN 0xC9E2 짢 HANGUL SYLLABLE JJANH 0xC9E4 짤 HANGUL SYLLABLE JJAL 0xC9E7 짧 HANGUL SYLLABLE JJALB 0xC9EC 짬 HANGUL SYLLABLE JJAM 0xC9ED 짭 HANGUL SYLLABLE JJAB 0xC9EF 짯 HANGUL SYLLABLE JJAS 0xC9F0 짰 HANGUL SYLLABLE JJASS 0xC9F1 짱 HANGUL SYLLABLE JJANG 0xC9F8 째 HANGUL SYLLABLE JJAE 0xC9F9 짹 HANGUL SYLLABLE JJAEG 0xC9FC 짼 HANGUL SYLLABLE JJAEN 0xCA00 쨀 HANGUL SYLLABLE JJAEL 0xCA08 쨈 HANGUL SYLLABLE JJAEM 0xCA09 쨉 HANGUL SYLLABLE JJAEB 0xCA0B 쨋 HANGUL SYLLABLE JJAES 0xCA0C 쨌 HANGUL SYLLABLE JJAESS 0xCA0D 쨍 HANGUL SYLLABLE JJAENG 0xCA14 쨔 HANGUL SYLLABLE JJYA 0xCA18 쨘 HANGUL SYLLABLE JJYAN 0xCA29 쨩 HANGUL SYLLABLE JJYANG 0xCA4C 쩌 HANGUL SYLLABLE JJEO 0xCA4D 쩍 HANGUL SYLLABLE JJEOG 0xCA50 쩐 HANGUL SYLLABLE JJEON 0xCA54 쩔 HANGUL SYLLABLE JJEOL 0xCA5C 쩜 HANGUL SYLLABLE JJEOM 0xCA5D 쩝 HANGUL SYLLABLE JJEOB 0xCA5F 쩟 HANGUL SYLLABLE JJEOS 0xCA60 쩠 HANGUL SYLLABLE JJEOSS 0xCA61 쩡 HANGUL SYLLABLE JJEONG 0xCA68 쩨 HANGUL SYLLABLE JJE 0xCA7D 쩽 HANGUL SYLLABLE JJENG 0xCA84 쪄 HANGUL SYLLABLE JJYEO 0xCA98 쪘 HANGUL SYLLABLE JJYEOSS 0xCABC 쪼 HANGUL SYLLABLE JJO 0xCABD 쪽 HANGUL SYLLABLE JJOG 0xCAC0 쫀 HANGUL SYLLABLE JJON 0xCAC4 쫄 HANGUL SYLLABLE JJOL 0xCACC 쫌 HANGUL SYLLABLE JJOM 0xCACD 쫍 HANGUL SYLLABLE JJOB 0xCACF 쫏 HANGUL SYLLABLE JJOS 0xCAD1 쫑 HANGUL SYLLABLE JJONG 0xCAD3 쫓 HANGUL SYLLABLE JJOC 0xCAD8 쫘 HANGUL SYLLABLE JJWA 0xCAD9 쫙 HANGUL SYLLABLE JJWAG 0xCAE0 쫠 HANGUL SYLLABLE JJWAL 0xCAEC 쫬 HANGUL SYLLABLE JJWASS 0xCAF4 쫴 HANGUL SYLLABLE JJWAE 0xCB08 쬈 HANGUL SYLLABLE JJWAESS 0xCB10 쬐 HANGUL SYLLABLE JJOE 0xCB14 쬔 HANGUL SYLLABLE JJOEN 0xCB18 쬘 HANGUL SYLLABLE JJOEL 0xCB20 쬠 HANGUL SYLLABLE JJOEM 0xCB21 쬡 HANGUL SYLLABLE JJOEB 0xCB41 쭁 HANGUL SYLLABLE JJYONG 0xCB48 쭈 HANGUL SYLLABLE JJU 0xCB49 쭉 HANGUL SYLLABLE JJUG 0xCB4C 쭌 HANGUL SYLLABLE JJUN 0xCB50 쭐 HANGUL SYLLABLE JJUL 0xCB58 쭘 HANGUL SYLLABLE JJUM 0xCB59 쭙 HANGUL SYLLABLE JJUB 0xCB5D 쭝 HANGUL SYLLABLE JJUNG 0xCB64 쭤 HANGUL SYLLABLE JJWEO 0xCB78 쭸 HANGUL SYLLABLE JJWEOSS 0xCB79 쭹 HANGUL SYLLABLE JJWEONG 0xCB9C 쮜 HANGUL SYLLABLE JJWI 0xCBB8 쮸 HANGUL SYLLABLE JJYU 0xCBD4 쯔 HANGUL SYLLABLE JJEU 0xCBE4 쯤 HANGUL SYLLABLE JJEUM 0xCBE7 쯧 HANGUL SYLLABLE JJEUS 0xCBE9 쯩 HANGUL SYLLABLE JJEUNG 0xCC0C 찌 HANGUL SYLLABLE JJI 0xCC0D 찍 HANGUL SYLLABLE JJIG 0xCC10 찐 HANGUL SYLLABLE JJIN 0xCC14 찔 HANGUL SYLLABLE JJIL 0xCC1C 찜 HANGUL SYLLABLE JJIM 0xCC1D 찝 HANGUL SYLLABLE JJIB 0xCC21 찡 HANGUL SYLLABLE JJING 0xCC22 찢 HANGUL SYLLABLE JJIJ 0xCC27 찧 HANGUL SYLLABLE JJIH 0xCC28 차 HANGUL SYLLABLE CA 0xCC29 착 HANGUL SYLLABLE CAG 0xCC2C 찬 HANGUL SYLLABLE CAN 0xCC2E 찮 HANGUL SYLLABLE CANH 0xCC30 찰 HANGUL SYLLABLE CAL 0xCC38 참 HANGUL SYLLABLE CAM 0xCC39 찹 HANGUL SYLLABLE CAB 0xCC3B 찻 HANGUL SYLLABLE CAS 0xCC3C 찼 HANGUL SYLLABLE CASS 0xCC3D 창 HANGUL SYLLABLE CANG 0xCC3E 찾 HANGUL SYLLABLE CAJ 0xCC44 채 HANGUL SYLLABLE CAE 0xCC45 책 HANGUL SYLLABLE CAEG 0xCC48 챈 HANGUL SYLLABLE CAEN 0xCC4C 챌 HANGUL SYLLABLE CAEL 0xCC54 챔 HANGUL SYLLABLE CAEM 0xCC55 챕 HANGUL SYLLABLE CAEB 0xCC57 챗 HANGUL SYLLABLE CAES 0xCC58 챘 HANGUL SYLLABLE CAESS 0xCC59 챙 HANGUL SYLLABLE CAENG 0xCC60 챠 HANGUL SYLLABLE CYA 0xCC64 챤 HANGUL SYLLABLE CYAN 0xCC66 챦 HANGUL SYLLABLE CYANH 0xCC68 챨 HANGUL SYLLABLE CYAL 0xCC70 챰 HANGUL SYLLABLE CYAM 0xCC75 챵 HANGUL SYLLABLE CYANG 0xCC98 처 HANGUL SYLLABLE CEO 0xCC99 척 HANGUL SYLLABLE CEOG 0xCC9C 천 HANGUL SYLLABLE CEON 0xCCA0 철 HANGUL SYLLABLE CEOL 0xCCA8 첨 HANGUL SYLLABLE CEOM 0xCCA9 첩 HANGUL SYLLABLE CEOB 0xCCAB 첫 HANGUL SYLLABLE CEOS 0xCCAC 첬 HANGUL SYLLABLE CEOSS 0xCCAD 청 HANGUL SYLLABLE CEONG 0xCCB4 체 HANGUL SYLLABLE CE 0xCCB5 첵 HANGUL SYLLABLE CEG 0xCCB8 첸 HANGUL SYLLABLE CEN 0xCCBC 첼 HANGUL SYLLABLE CEL 0xCCC4 쳄 HANGUL SYLLABLE CEM 0xCCC5 쳅 HANGUL SYLLABLE CEB 0xCCC7 쳇 HANGUL SYLLABLE CES 0xCCC9 쳉 HANGUL SYLLABLE CENG 0xCCD0 쳐 HANGUL SYLLABLE CYEO 0xCCD4 쳔 HANGUL SYLLABLE CYEON 0xCCE4 쳤 HANGUL SYLLABLE CYEOSS 0xCCEC 쳬 HANGUL SYLLABLE CYE 0xCCF0 쳰 HANGUL SYLLABLE CYEN 0xCD01 촁 HANGUL SYLLABLE CYENG 0xCD08 초 HANGUL SYLLABLE CO 0xCD09 촉 HANGUL SYLLABLE COG 0xCD0C 촌 HANGUL SYLLABLE CON 0xCD10 촐 HANGUL SYLLABLE COL 0xCD18 촘 HANGUL SYLLABLE COM 0xCD19 촙 HANGUL SYLLABLE COB 0xCD1B 촛 HANGUL SYLLABLE COS 0xCD1D 총 HANGUL SYLLABLE CONG 0xCD24 촤 HANGUL SYLLABLE CWA 0xCD28 촨 HANGUL SYLLABLE CWAN 0xCD2C 촬 HANGUL SYLLABLE CWAL 0xCD39 촹 HANGUL SYLLABLE CWANG 0xCD5C 최 HANGUL SYLLABLE COE 0xCD60 쵠 HANGUL SYLLABLE COEN 0xCD64 쵤 HANGUL SYLLABLE COEL 0xCD6C 쵬 HANGUL SYLLABLE COEM 0xCD6D 쵭 HANGUL SYLLABLE COEB 0xCD6F 쵯 HANGUL SYLLABLE COES 0xCD71 쵱 HANGUL SYLLABLE COENG 0xCD78 쵸 HANGUL SYLLABLE CYO 0xCD88 춈 HANGUL SYLLABLE CYOM 0xCD94 추 HANGUL SYLLABLE CU 0xCD95 축 HANGUL SYLLABLE CUG 0xCD98 춘 HANGUL SYLLABLE CUN 0xCD9C 출 HANGUL SYLLABLE CUL 0xCDA4 춤 HANGUL SYLLABLE CUM 0xCDA5 춥 HANGUL SYLLABLE CUB 0xCDA7 춧 HANGUL SYLLABLE CUS 0xCDA9 충 HANGUL SYLLABLE CUNG 0xCDB0 춰 HANGUL SYLLABLE CWEO 0xCDC4 췄 HANGUL SYLLABLE CWEOSS 0xCDCC 췌 HANGUL SYLLABLE CWE 0xCDD0 췐 HANGUL SYLLABLE CWEN 0xCDE8 취 HANGUL SYLLABLE CWI 0xCDEC 췬 HANGUL SYLLABLE CWIN 0xCDF0 췰 HANGUL SYLLABLE CWIL 0xCDF8 췸 HANGUL SYLLABLE CWIM 0xCDF9 췹 HANGUL SYLLABLE CWIB 0xCDFB 췻 HANGUL SYLLABLE CWIS 0xCDFD 췽 HANGUL SYLLABLE CWING 0xCE04 츄 HANGUL SYLLABLE CYU 0xCE08 츈 HANGUL SYLLABLE CYUN 0xCE0C 츌 HANGUL SYLLABLE CYUL 0xCE14 츔 HANGUL SYLLABLE CYUM 0xCE19 츙 HANGUL SYLLABLE CYUNG 0xCE20 츠 HANGUL SYLLABLE CEU 0xCE21 측 HANGUL SYLLABLE CEUG 0xCE24 츤 HANGUL SYLLABLE CEUN 0xCE28 츨 HANGUL SYLLABLE CEUL 0xCE30 츰 HANGUL SYLLABLE CEUM 0xCE31 츱 HANGUL SYLLABLE CEUB 0xCE33 츳 HANGUL SYLLABLE CEUS 0xCE35 층 HANGUL SYLLABLE CEUNG 0xCE58 치 HANGUL SYLLABLE CI 0xCE59 칙 HANGUL SYLLABLE CIG 0xCE5C 친 HANGUL SYLLABLE CIN 0xCE5F 칟 HANGUL SYLLABLE CID 0xCE60 칠 HANGUL SYLLABLE CIL 0xCE61 칡 HANGUL SYLLABLE CILG 0xCE68 침 HANGUL SYLLABLE CIM 0xCE69 칩 HANGUL SYLLABLE CIB 0xCE6B 칫 HANGUL SYLLABLE CIS 0xCE6D 칭 HANGUL SYLLABLE CING 0xCE74 카 HANGUL SYLLABLE KA 0xCE75 칵 HANGUL SYLLABLE KAG 0xCE78 칸 HANGUL SYLLABLE KAN 0xCE7C 칼 HANGUL SYLLABLE KAL 0xCE84 캄 HANGUL SYLLABLE KAM 0xCE85 캅 HANGUL SYLLABLE KAB 0xCE87 캇 HANGUL SYLLABLE KAS 0xCE89 캉 HANGUL SYLLABLE KANG 0xCE90 캐 HANGUL SYLLABLE KAE 0xCE91 캑 HANGUL SYLLABLE KAEG 0xCE94 캔 HANGUL SYLLABLE KAEN 0xCE98 캘 HANGUL SYLLABLE KAEL 0xCEA0 캠 HANGUL SYLLABLE KAEM 0xCEA1 캡 HANGUL SYLLABLE KAEB 0xCEA3 캣 HANGUL SYLLABLE KAES 0xCEA4 캤 HANGUL SYLLABLE KAESS 0xCEA5 캥 HANGUL SYLLABLE KAENG 0xCEAC 캬 HANGUL SYLLABLE KYA 0xCEAD 캭 HANGUL SYLLABLE KYAG 0xCEC1 컁 HANGUL SYLLABLE KYANG 0xCEE4 커 HANGUL SYLLABLE KEO 0xCEE5 컥 HANGUL SYLLABLE KEOG 0xCEE8 컨 HANGUL SYLLABLE KEON 0xCEEB 컫 HANGUL SYLLABLE KEOD 0xCEEC 컬 HANGUL SYLLABLE KEOL 0xCEF4 컴 HANGUL SYLLABLE KEOM 0xCEF5 컵 HANGUL SYLLABLE KEOB 0xCEF7 컷 HANGUL SYLLABLE KEOS 0xCEF8 컸 HANGUL SYLLABLE KEOSS 0xCEF9 컹 HANGUL SYLLABLE KEONG 0xCF00 케 HANGUL SYLLABLE KE 0xCF01 켁 HANGUL SYLLABLE KEG 0xCF04 켄 HANGUL SYLLABLE KEN 0xCF08 켈 HANGUL SYLLABLE KEL 0xCF10 켐 HANGUL SYLLABLE KEM 0xCF11 켑 HANGUL SYLLABLE KEB 0xCF13 켓 HANGUL SYLLABLE KES 0xCF15 켕 HANGUL SYLLABLE KENG 0xCF1C 켜 HANGUL SYLLABLE KYEO 0xCF20 켠 HANGUL SYLLABLE KYEON 0xCF24 켤 HANGUL SYLLABLE KYEOL 0xCF2C 켬 HANGUL SYLLABLE KYEOM 0xCF2D 켭 HANGUL SYLLABLE KYEOB 0xCF2F 켯 HANGUL SYLLABLE KYEOS 0xCF30 켰 HANGUL SYLLABLE KYEOSS 0xCF31 켱 HANGUL SYLLABLE KYEONG 0xCF38 켸 HANGUL SYLLABLE KYE 0xCF54 코 HANGUL SYLLABLE KO 0xCF55 콕 HANGUL SYLLABLE KOG 0xCF58 콘 HANGUL SYLLABLE KON 0xCF5C 콜 HANGUL SYLLABLE KOL 0xCF64 콤 HANGUL SYLLABLE KOM 0xCF65 콥 HANGUL SYLLABLE KOB 0xCF67 콧 HANGUL SYLLABLE KOS 0xCF69 콩 HANGUL SYLLABLE KONG 0xCF70 콰 HANGUL SYLLABLE KWA 0xCF71 콱 HANGUL SYLLABLE KWAG 0xCF74 콴 HANGUL SYLLABLE KWAN 0xCF78 콸 HANGUL SYLLABLE KWAL 0xCF80 쾀 HANGUL SYLLABLE KWAM 0xCF85 쾅 HANGUL SYLLABLE KWANG 0xCF8C 쾌 HANGUL SYLLABLE KWAE 0xCFA1 쾡 HANGUL SYLLABLE KWAENG 0xCFA8 쾨 HANGUL SYLLABLE KOE 0xCFB0 쾰 HANGUL SYLLABLE KOEL 0xCFC4 쿄 HANGUL SYLLABLE KYO 0xCFE0 쿠 HANGUL SYLLABLE KU 0xCFE1 쿡 HANGUL SYLLABLE KUG 0xCFE4 쿤 HANGUL SYLLABLE KUN 0xCFE8 쿨 HANGUL SYLLABLE KUL 0xCFF0 쿰 HANGUL SYLLABLE KUM 0xCFF1 쿱 HANGUL SYLLABLE KUB 0xCFF3 쿳 HANGUL SYLLABLE KUS 0xCFF5 쿵 HANGUL SYLLABLE KUNG 0xCFFC 쿼 HANGUL SYLLABLE KWEO 0xD000 퀀 HANGUL SYLLABLE KWEON 0xD004 퀄 HANGUL SYLLABLE KWEOL 0xD011 퀑 HANGUL SYLLABLE KWEONG 0xD018 퀘 HANGUL SYLLABLE KWE 0xD02D 퀭 HANGUL SYLLABLE KWENG 0xD034 퀴 HANGUL SYLLABLE KWI 0xD035 퀵 HANGUL SYLLABLE KWIG 0xD038 퀸 HANGUL SYLLABLE KWIN 0xD03C 퀼 HANGUL SYLLABLE KWIL 0xD044 큄 HANGUL SYLLABLE KWIM 0xD045 큅 HANGUL SYLLABLE KWIB 0xD047 큇 HANGUL SYLLABLE KWIS 0xD049 큉 HANGUL SYLLABLE KWING 0xD050 큐 HANGUL SYLLABLE KYU 0xD054 큔 HANGUL SYLLABLE KYUN 0xD058 큘 HANGUL SYLLABLE KYUL 0xD060 큠 HANGUL SYLLABLE KYUM 0xD06C 크 HANGUL SYLLABLE KEU 0xD06D 큭 HANGUL SYLLABLE KEUG 0xD070 큰 HANGUL SYLLABLE KEUN 0xD074 클 HANGUL SYLLABLE KEUL 0xD07C 큼 HANGUL SYLLABLE KEUM 0xD07D 큽 HANGUL SYLLABLE KEUB 0xD081 킁 HANGUL SYLLABLE KEUNG 0xD0A4 키 HANGUL SYLLABLE KI 0xD0A5 킥 HANGUL SYLLABLE KIG 0xD0A8 킨 HANGUL SYLLABLE KIN 0xD0AC 킬 HANGUL SYLLABLE KIL 0xD0B4 킴 HANGUL SYLLABLE KIM 0xD0B5 킵 HANGUL SYLLABLE KIB 0xD0B7 킷 HANGUL SYLLABLE KIS 0xD0B9 킹 HANGUL SYLLABLE KING 0xD0C0 타 HANGUL SYLLABLE TA 0xD0C1 탁 HANGUL SYLLABLE TAG 0xD0C4 탄 HANGUL SYLLABLE TAN 0xD0C8 탈 HANGUL SYLLABLE TAL 0xD0C9 탉 HANGUL SYLLABLE TALG 0xD0D0 탐 HANGUL SYLLABLE TAM 0xD0D1 탑 HANGUL SYLLABLE TAB 0xD0D3 탓 HANGUL SYLLABLE TAS 0xD0D4 탔 HANGUL SYLLABLE TASS 0xD0D5 탕 HANGUL SYLLABLE TANG 0xD0DC 태 HANGUL SYLLABLE TAE 0xD0DD 택 HANGUL SYLLABLE TAEG 0xD0E0 탠 HANGUL SYLLABLE TAEN 0xD0E4 탤 HANGUL SYLLABLE TAEL 0xD0EC 탬 HANGUL SYLLABLE TAEM 0xD0ED 탭 HANGUL SYLLABLE TAEB 0xD0EF 탯 HANGUL SYLLABLE TAES 0xD0F0 탰 HANGUL SYLLABLE TAESS 0xD0F1 탱 HANGUL SYLLABLE TAENG 0xD0F8 탸 HANGUL SYLLABLE TYA 0xD10D 턍 HANGUL SYLLABLE TYANG 0xD130 터 HANGUL SYLLABLE TEO 0xD131 턱 HANGUL SYLLABLE TEOG 0xD134 턴 HANGUL SYLLABLE TEON 0xD138 털 HANGUL SYLLABLE TEOL 0xD13A 턺 HANGUL SYLLABLE TEOLM 0xD140 텀 HANGUL SYLLABLE TEOM 0xD141 텁 HANGUL SYLLABLE TEOB 0xD143 텃 HANGUL SYLLABLE TEOS 0xD144 텄 HANGUL SYLLABLE TEOSS 0xD145 텅 HANGUL SYLLABLE TEONG 0xD14C 테 HANGUL SYLLABLE TE 0xD14D 텍 HANGUL SYLLABLE TEG 0xD150 텐 HANGUL SYLLABLE TEN 0xD154 텔 HANGUL SYLLABLE TEL 0xD15C 템 HANGUL SYLLABLE TEM 0xD15D 텝 HANGUL SYLLABLE TEB 0xD15F 텟 HANGUL SYLLABLE TES 0xD161 텡 HANGUL SYLLABLE TENG 0xD168 텨 HANGUL SYLLABLE TYEO 0xD16C 텬 HANGUL SYLLABLE TYEON 0xD17C 텼 HANGUL SYLLABLE TYEOSS 0xD184 톄 HANGUL SYLLABLE TYE 0xD188 톈 HANGUL SYLLABLE TYEN 0xD1A0 토 HANGUL SYLLABLE TO 0xD1A1 톡 HANGUL SYLLABLE TOG 0xD1A4 톤 HANGUL SYLLABLE TON 0xD1A8 톨 HANGUL SYLLABLE TOL 0xD1B0 톰 HANGUL SYLLABLE TOM 0xD1B1 톱 HANGUL SYLLABLE TOB 0xD1B3 톳 HANGUL SYLLABLE TOS 0xD1B5 통 HANGUL SYLLABLE TONG 0xD1BA 톺 HANGUL SYLLABLE TOP 0xD1BC 톼 HANGUL SYLLABLE TWA 0xD1C0 퇀 HANGUL SYLLABLE TWAN 0xD1D8 퇘 HANGUL SYLLABLE TWAE 0xD1F4 퇴 HANGUL SYLLABLE TOE 0xD1F8 퇸 HANGUL SYLLABLE TOEN 0xD207 툇 HANGUL SYLLABLE TOES 0xD209 툉 HANGUL SYLLABLE TOENG 0xD210 툐 HANGUL SYLLABLE TYO 0xD22C 투 HANGUL SYLLABLE TU 0xD22D 툭 HANGUL SYLLABLE TUG 0xD230 툰 HANGUL SYLLABLE TUN 0xD234 툴 HANGUL SYLLABLE TUL 0xD23C 툼 HANGUL SYLLABLE TUM 0xD23D 툽 HANGUL SYLLABLE TUB 0xD23F 툿 HANGUL SYLLABLE TUS 0xD241 퉁 HANGUL SYLLABLE TUNG 0xD248 퉈 HANGUL SYLLABLE TWEO 0xD25C 퉜 HANGUL SYLLABLE TWEOSS 0xD264 퉤 HANGUL SYLLABLE TWE 0xD280 튀 HANGUL SYLLABLE TWI 0xD281 튁 HANGUL SYLLABLE TWIG 0xD284 튄 HANGUL SYLLABLE TWIN 0xD288 튈 HANGUL SYLLABLE TWIL 0xD290 튐 HANGUL SYLLABLE TWIM 0xD291 튑 HANGUL SYLLABLE TWIB 0xD295 튕 HANGUL SYLLABLE TWING 0xD29C 튜 HANGUL SYLLABLE TYU 0xD2A0 튠 HANGUL SYLLABLE TYUN 0xD2A4 튤 HANGUL SYLLABLE TYUL 0xD2AC 튬 HANGUL SYLLABLE TYUM 0xD2B1 튱 HANGUL SYLLABLE TYUNG 0xD2B8 트 HANGUL SYLLABLE TEU 0xD2B9 특 HANGUL SYLLABLE TEUG 0xD2BC 튼 HANGUL SYLLABLE TEUN 0xD2BF 튿 HANGUL SYLLABLE TEUD 0xD2C0 틀 HANGUL SYLLABLE TEUL 0xD2C2 틂 HANGUL SYLLABLE TEULM 0xD2C8 틈 HANGUL SYLLABLE TEUM 0xD2C9 틉 HANGUL SYLLABLE TEUB 0xD2CB 틋 HANGUL SYLLABLE TEUS 0xD2D4 틔 HANGUL SYLLABLE TYI 0xD2D8 틘 HANGUL SYLLABLE TYIN 0xD2DC 틜 HANGUL SYLLABLE TYIL 0xD2E4 틤 HANGUL SYLLABLE TYIM 0xD2E5 틥 HANGUL SYLLABLE TYIB 0xD2F0 티 HANGUL SYLLABLE TI 0xD2F1 틱 HANGUL SYLLABLE TIG 0xD2F4 틴 HANGUL SYLLABLE TIN 0xD2F8 틸 HANGUL SYLLABLE TIL 0xD300 팀 HANGUL SYLLABLE TIM 0xD301 팁 HANGUL SYLLABLE TIB 0xD303 팃 HANGUL SYLLABLE TIS 0xD305 팅 HANGUL SYLLABLE TING 0xD30C 파 HANGUL SYLLABLE PA 0xD30D 팍 HANGUL SYLLABLE PAG 0xD30E 팎 HANGUL SYLLABLE PAGG 0xD310 판 HANGUL SYLLABLE PAN 0xD314 팔 HANGUL SYLLABLE PAL 0xD316 팖 HANGUL SYLLABLE PALM 0xD31C 팜 HANGUL SYLLABLE PAM 0xD31D 팝 HANGUL SYLLABLE PAB 0xD31F 팟 HANGUL SYLLABLE PAS 0xD320 팠 HANGUL SYLLABLE PASS 0xD321 팡 HANGUL SYLLABLE PANG 0xD325 팥 HANGUL SYLLABLE PAT 0xD328 패 HANGUL SYLLABLE PAE 0xD329 팩 HANGUL SYLLABLE PAEG 0xD32C 팬 HANGUL SYLLABLE PAEN 0xD330 팰 HANGUL SYLLABLE PAEL 0xD338 팸 HANGUL SYLLABLE PAEM 0xD339 팹 HANGUL SYLLABLE PAEB 0xD33B 팻 HANGUL SYLLABLE PAES 0xD33C 팼 HANGUL SYLLABLE PAESS 0xD33D 팽 HANGUL SYLLABLE PAENG 0xD344 퍄 HANGUL SYLLABLE PYA 0xD345 퍅 HANGUL SYLLABLE PYAG 0xD37C 퍼 HANGUL SYLLABLE PEO 0xD37D 퍽 HANGUL SYLLABLE PEOG 0xD380 펀 HANGUL SYLLABLE PEON 0xD384 펄 HANGUL SYLLABLE PEOL 0xD38C 펌 HANGUL SYLLABLE PEOM 0xD38D 펍 HANGUL SYLLABLE PEOB 0xD38F 펏 HANGUL SYLLABLE PEOS 0xD390 펐 HANGUL SYLLABLE PEOSS 0xD391 펑 HANGUL SYLLABLE PEONG 0xD398 페 HANGUL SYLLABLE PE 0xD399 펙 HANGUL SYLLABLE PEG 0xD39C 펜 HANGUL SYLLABLE PEN 0xD3A0 펠 HANGUL SYLLABLE PEL 0xD3A8 펨 HANGUL SYLLABLE PEM 0xD3A9 펩 HANGUL SYLLABLE PEB 0xD3AB 펫 HANGUL SYLLABLE PES 0xD3AD 펭 HANGUL SYLLABLE PENG 0xD3B4 펴 HANGUL SYLLABLE PYEO 0xD3B8 편 HANGUL SYLLABLE PYEON 0xD3BC 펼 HANGUL SYLLABLE PYEOL 0xD3C4 폄 HANGUL SYLLABLE PYEOM 0xD3C5 폅 HANGUL SYLLABLE PYEOB 0xD3C8 폈 HANGUL SYLLABLE PYEOSS 0xD3C9 평 HANGUL SYLLABLE PYEONG 0xD3D0 폐 HANGUL SYLLABLE PYE 0xD3D8 폘 HANGUL SYLLABLE PYEL 0xD3E1 폡 HANGUL SYLLABLE PYEB 0xD3E3 폣 HANGUL SYLLABLE PYES 0xD3EC 포 HANGUL SYLLABLE PO 0xD3ED 폭 HANGUL SYLLABLE POG 0xD3F0 폰 HANGUL SYLLABLE PON 0xD3F4 폴 HANGUL SYLLABLE POL 0xD3FC 폼 HANGUL SYLLABLE POM 0xD3FD 폽 HANGUL SYLLABLE POB 0xD3FF 폿 HANGUL SYLLABLE POS 0xD401 퐁 HANGUL SYLLABLE PONG 0xD408 퐈 HANGUL SYLLABLE PWA 0xD41D 퐝 HANGUL SYLLABLE PWANG 0xD440 푀 HANGUL SYLLABLE POE 0xD444 푄 HANGUL SYLLABLE POEN 0xD45C 표 HANGUL SYLLABLE PYO 0xD460 푠 HANGUL SYLLABLE PYON 0xD464 푤 HANGUL SYLLABLE PYOL 0xD46D 푭 HANGUL SYLLABLE PYOB 0xD46F 푯 HANGUL SYLLABLE PYOS 0xD478 푸 HANGUL SYLLABLE PU 0xD479 푹 HANGUL SYLLABLE PUG 0xD47C 푼 HANGUL SYLLABLE PUN 0xD47F 푿 HANGUL SYLLABLE PUD 0xD480 풀 HANGUL SYLLABLE PUL 0xD482 풂 HANGUL SYLLABLE PULM 0xD488 품 HANGUL SYLLABLE PUM 0xD489 풉 HANGUL SYLLABLE PUB 0xD48B 풋 HANGUL SYLLABLE PUS 0xD48D 풍 HANGUL SYLLABLE PUNG 0xD494 풔 HANGUL SYLLABLE PWEO 0xD4A9 풩 HANGUL SYLLABLE PWEONG 0xD4CC 퓌 HANGUL SYLLABLE PWI 0xD4D0 퓐 HANGUL SYLLABLE PWIN 0xD4D4 퓔 HANGUL SYLLABLE PWIL 0xD4DC 퓜 HANGUL SYLLABLE PWIM 0xD4DF 퓟 HANGUL SYLLABLE PWIS 0xD4E8 퓨 HANGUL SYLLABLE PYU 0xD4EC 퓬 HANGUL SYLLABLE PYUN 0xD4F0 퓰 HANGUL SYLLABLE PYUL 0xD4F8 퓸 HANGUL SYLLABLE PYUM 0xD4FB 퓻 HANGUL SYLLABLE PYUS 0xD4FD 퓽 HANGUL SYLLABLE PYUNG 0xD504 프 HANGUL SYLLABLE PEU 0xD508 픈 HANGUL SYLLABLE PEUN 0xD50C 플 HANGUL SYLLABLE PEUL 0xD514 픔 HANGUL SYLLABLE PEUM 0xD515 픕 HANGUL SYLLABLE PEUB 0xD517 픗 HANGUL SYLLABLE PEUS 0xD53C 피 HANGUL SYLLABLE PI 0xD53D 픽 HANGUL SYLLABLE PIG 0xD540 핀 HANGUL SYLLABLE PIN 0xD544 필 HANGUL SYLLABLE PIL 0xD54C 핌 HANGUL SYLLABLE PIM 0xD54D 핍 HANGUL SYLLABLE PIB 0xD54F 핏 HANGUL SYLLABLE PIS 0xD551 핑 HANGUL SYLLABLE PING 0xD558 하 HANGUL SYLLABLE HA 0xD559 학 HANGUL SYLLABLE HAG 0xD55C 한 HANGUL SYLLABLE HAN 0xD560 할 HANGUL SYLLABLE HAL 0xD565 핥 HANGUL SYLLABLE HALT 0xD568 함 HANGUL SYLLABLE HAM 0xD569 합 HANGUL SYLLABLE HAB 0xD56B 핫 HANGUL SYLLABLE HAS 0xD56D 항 HANGUL SYLLABLE HANG 0xD574 해 HANGUL SYLLABLE HAE 0xD575 핵 HANGUL SYLLABLE HAEG 0xD578 핸 HANGUL SYLLABLE HAEN 0xD57C 핼 HANGUL SYLLABLE HAEL 0xD584 햄 HANGUL SYLLABLE HAEM 0xD585 햅 HANGUL SYLLABLE HAEB 0xD587 햇 HANGUL SYLLABLE HAES 0xD588 했 HANGUL SYLLABLE HAESS 0xD589 행 HANGUL SYLLABLE HAENG 0xD590 햐 HANGUL SYLLABLE HYA 0xD5A5 향 HANGUL SYLLABLE HYANG 0xD5C8 허 HANGUL SYLLABLE HEO 0xD5C9 헉 HANGUL SYLLABLE HEOG 0xD5CC 헌 HANGUL SYLLABLE HEON 0xD5D0 헐 HANGUL SYLLABLE HEOL 0xD5D2 헒 HANGUL SYLLABLE HEOLM 0xD5D8 험 HANGUL SYLLABLE HEOM 0xD5D9 헙 HANGUL SYLLABLE HEOB 0xD5DB 헛 HANGUL SYLLABLE HEOS 0xD5DD 헝 HANGUL SYLLABLE HEONG 0xD5E4 헤 HANGUL SYLLABLE HE 0xD5E5 헥 HANGUL SYLLABLE HEG 0xD5E8 헨 HANGUL SYLLABLE HEN 0xD5EC 헬 HANGUL SYLLABLE HEL 0xD5F4 헴 HANGUL SYLLABLE HEM 0xD5F5 헵 HANGUL SYLLABLE HEB 0xD5F7 헷 HANGUL SYLLABLE HES 0xD5F9 헹 HANGUL SYLLABLE HENG 0xD600 혀 HANGUL SYLLABLE HYEO 0xD601 혁 HANGUL SYLLABLE HYEOG 0xD604 현 HANGUL SYLLABLE HYEON 0xD608 혈 HANGUL SYLLABLE HYEOL 0xD610 혐 HANGUL SYLLABLE HYEOM 0xD611 협 HANGUL SYLLABLE HYEOB 0xD613 혓 HANGUL SYLLABLE HYEOS 0xD614 혔 HANGUL SYLLABLE HYEOSS 0xD615 형 HANGUL SYLLABLE HYEONG 0xD61C 혜 HANGUL SYLLABLE HYE 0xD620 혠 HANGUL SYLLABLE HYEN 0xD624 혤 HANGUL SYLLABLE HYEL 0xD62D 혭 HANGUL SYLLABLE HYEB 0xD638 호 HANGUL SYLLABLE HO 0xD639 혹 HANGUL SYLLABLE HOG 0xD63C 혼 HANGUL SYLLABLE HON 0xD640 홀 HANGUL SYLLABLE HOL 0xD645 홅 HANGUL SYLLABLE HOLT 0xD648 홈 HANGUL SYLLABLE HOM 0xD649 홉 HANGUL SYLLABLE HOB 0xD64B 홋 HANGUL SYLLABLE HOS 0xD64D 홍 HANGUL SYLLABLE HONG 0xD651 홑 HANGUL SYLLABLE HOT 0xD654 화 HANGUL SYLLABLE HWA 0xD655 확 HANGUL SYLLABLE HWAG 0xD658 환 HANGUL SYLLABLE HWAN 0xD65C 활 HANGUL SYLLABLE HWAL 0xD667 홧 HANGUL SYLLABLE HWAS 0xD669 황 HANGUL SYLLABLE HWANG 0xD670 홰 HANGUL SYLLABLE HWAE 0xD671 홱 HANGUL SYLLABLE HWAEG 0xD674 홴 HANGUL SYLLABLE HWAEN 0xD683 횃 HANGUL SYLLABLE HWAES 0xD685 횅 HANGUL SYLLABLE HWAENG 0xD68C 회 HANGUL SYLLABLE HOE 0xD68D 획 HANGUL SYLLABLE HOEG 0xD690 횐 HANGUL SYLLABLE HOEN 0xD694 횔 HANGUL SYLLABLE HOEL 0xD69D 횝 HANGUL SYLLABLE HOEB 0xD69F 횟 HANGUL SYLLABLE HOES 0xD6A1 횡 HANGUL SYLLABLE HOENG 0xD6A8 효 HANGUL SYLLABLE HYO 0xD6AC 횬 HANGUL SYLLABLE HYON 0xD6B0 횰 HANGUL SYLLABLE HYOL 0xD6B9 횹 HANGUL SYLLABLE HYOB 0xD6BB 횻 HANGUL SYLLABLE HYOS 0xD6C4 후 HANGUL SYLLABLE HU 0xD6C5 훅 HANGUL SYLLABLE HUG 0xD6C8 훈 HANGUL SYLLABLE HUN 0xD6CC 훌 HANGUL SYLLABLE HUL 0xD6D1 훑 HANGUL SYLLABLE HULT 0xD6D4 훔 HANGUL SYLLABLE HUM 0xD6D7 훗 HANGUL SYLLABLE HUS 0xD6D9 훙 HANGUL SYLLABLE HUNG 0xD6E0 훠 HANGUL SYLLABLE HWEO 0xD6E4 훤 HANGUL SYLLABLE HWEON 0xD6E8 훨 HANGUL SYLLABLE HWEOL 0xD6F0 훰 HANGUL SYLLABLE HWEOM 0xD6F5 훵 HANGUL SYLLABLE HWEONG 0xD6FC 훼 HANGUL SYLLABLE HWE 0xD6FD 훽 HANGUL SYLLABLE HWEG 0xD700 휀 HANGUL SYLLABLE HWEN 0xD704 휄 HANGUL SYLLABLE HWEL 0xD711 휑 HANGUL SYLLABLE HWENG 0xD718 휘 HANGUL SYLLABLE HWI 0xD719 휙 HANGUL SYLLABLE HWIG 0xD71C 휜 HANGUL SYLLABLE HWIN 0xD720 휠 HANGUL SYLLABLE HWIL 0xD728 휨 HANGUL SYLLABLE HWIM 0xD729 휩 HANGUL SYLLABLE HWIB 0xD72B 휫 HANGUL SYLLABLE HWIS 0xD72D 휭 HANGUL SYLLABLE HWING 0xD734 휴 HANGUL SYLLABLE HYU 0xD735 휵 HANGUL SYLLABLE HYUG 0xD738 휸 HANGUL SYLLABLE HYUN 0xD73C 휼 HANGUL SYLLABLE HYUL 0xD744 흄 HANGUL SYLLABLE HYUM 0xD747 흇 HANGUL SYLLABLE HYUS 0xD749 흉 HANGUL SYLLABLE HYUNG 0xD750 흐 HANGUL SYLLABLE HEU 0xD751 흑 HANGUL SYLLABLE HEUG 0xD754 흔 HANGUL SYLLABLE HEUN 0xD756 흖 HANGUL SYLLABLE HEUNH 0xD757 흗 HANGUL SYLLABLE HEUD 0xD758 흘 HANGUL SYLLABLE HEUL 0xD759 흙 HANGUL SYLLABLE HEULG 0xD760 흠 HANGUL SYLLABLE HEUM 0xD761 흡 HANGUL SYLLABLE HEUB 0xD763 흣 HANGUL SYLLABLE HEUS 0xD765 흥 HANGUL SYLLABLE HEUNG 0xD769 흩 HANGUL SYLLABLE HEUT 0xD76C 희 HANGUL SYLLABLE HYI 0xD770 흰 HANGUL SYLLABLE HYIN 0xD774 흴 HANGUL SYLLABLE HYIL 0xD77C 흼 HANGUL SYLLABLE HYIM 0xD77D 흽 HANGUL SYLLABLE HYIB 0xD781 힁 HANGUL SYLLABLE HYING 0xD788 히 HANGUL SYLLABLE HI 0xD789 힉 HANGUL SYLLABLE HIG 0xD78C 힌 HANGUL SYLLABLE HIN 0xD790 힐 HANGUL SYLLABLE HIL 0xD798 힘 HANGUL SYLLABLE HIM 0xD799 힙 HANGUL SYLLABLE HIB 0xD79B 힛 HANGUL SYLLABLE HIS 0xD79D 힝 HANGUL SYLLABLE HING Lib/gftools/encodings/lao_unique-glyphs.nam000066400000000000000000000033041376445505300213700ustar00rootroot00000000000000#Copied from https://github.com/google/fonts/blob/master/tools/encodings/lao_unique-glyphs.nam 0x0E81 LAO LETTER KO 0x0E82 LAO LETTER KHO SUNG 0x0E84 LAO LETTER KHO TAM 0x0E87 LAO LETTER NGO 0x0E88 LAO LETTER CO 0x0E8A LAO LETTER SO TAM 0x0E8D LAO LETTER NYO 0x0E94 LAO LETTER DO 0x0E95 LAO LETTER TO 0x0E96 LAO LETTER THO SUNG 0x0E97 LAO LETTER THO TAM 0x0E99 LAO LETTER NO 0x0E9A LAO LETTER BO 0x0E9B LAO LETTER PO 0x0E9C LAO LETTER PHO SUNG 0x0E9D LAO LETTER FO TAM 0x0E9E LAO LETTER PHO TAM 0x0E9F LAO LETTER FO SUNG 0x0EA1 LAO LETTER MO 0x0EA2 LAO LETTER YO 0x0EA3 LAO LETTER LO LING 0x0EA5 LAO LETTER LO LOOT 0x0EA7 LAO LETTER WO 0x0EAA LAO LETTER SO SUNG 0x0EAB LAO LETTER HO SUNG 0x0EAD LAO LETTER O 0x0EAE LAO LETTER HO TAM 0x0EAF LAO ELLIPSIS 0x0EB0 LAO VOWEL SIGN A 0x0EB1 LAO VOWEL SIGN MAI KAN 0x0EB2 LAO VOWEL SIGN AA 0x0EB3 LAO VOWEL SIGN AM 0x0EB4 LAO VOWEL SIGN I 0x0EB5 LAO VOWEL SIGN II 0x0EB6 LAO VOWEL SIGN Y 0x0EB7 LAO VOWEL SIGN YY 0x0EB8 LAO VOWEL SIGN U 0x0EB9 LAO VOWEL SIGN UU 0x0EBB LAO VOWEL SIGN MAI KON 0x0EBC LAO SEMIVOWEL SIGN LO 0x0EBD LAO SEMIVOWEL SIGN NYO 0x0EC0 LAO VOWEL SIGN E 0x0EC1 LAO VOWEL SIGN EI 0x0EC2 LAO VOWEL SIGN O 0x0EC3 LAO VOWEL SIGN AY 0x0EC4 LAO VOWEL SIGN AI 0x0EC6 LAO KO LA 0x0EC8 LAO TONE MAI EK 0x0EC9 LAO TONE MAI THO 0x0ECA LAO TONE MAI TI 0x0ECB LAO TONE MAI CATAWA 0x0ECC LAO CANCELLATION MARK 0x0ECD LAO NIGGAHITA 0x0ED0 LAO DIGIT ZERO 0x0ED1 LAO DIGIT ONE 0x0ED2 LAO DIGIT TWO 0x0ED3 LAO DIGIT THREE 0x0ED4 LAO DIGIT FOUR 0x0ED5 LAO DIGIT FIVE 0x0ED6 LAO DIGIT SIX 0x0ED7 LAO DIGIT SEVEN 0x0ED8 LAO DIGIT EIGHT 0x0ED9 LAO DIGIT NINE 0x0EDC LAO HO NO 0x0EDD LAO HO MO 0x0EDE LAO LETTER KHMU GO 0x0EDF LAO LETTER KHMU NYO 0x200B ZERO WIDTH SPACE 0x25CC DOTTED CIRCLE Lib/gftools/encodings/latin-ext_unique-glyphs.nam000066400000000000000000001003021376445505300225160ustar00rootroot000000000000000x0100 Ā LATIN CAPITAL LETTER A WITH MACRON 0x0101 ā LATIN SMALL LETTER A WITH MACRON 0x0102 Ă LATIN CAPITAL LETTER A WITH BREVE 0x0103 ă LATIN SMALL LETTER A WITH BREVE 0x0104 Ą LATIN CAPITAL LETTER A WITH OGONEK 0x0105 ą LATIN SMALL LETTER A WITH OGONEK 0x0106 Ć LATIN CAPITAL LETTER C WITH ACUTE 0x0107 ć LATIN SMALL LETTER C WITH ACUTE 0x0108 Ĉ LATIN CAPITAL LETTER C WITH CIRCUMFLEX 0x0109 ĉ LATIN SMALL LETTER C WITH CIRCUMFLEX 0x010A Ċ LATIN CAPITAL LETTER C WITH DOT ABOVE 0x010B ċ LATIN SMALL LETTER C WITH DOT ABOVE 0x010C Č LATIN CAPITAL LETTER C WITH CARON 0x010D č LATIN SMALL LETTER C WITH CARON 0x010E Ď LATIN CAPITAL LETTER D WITH CARON 0x010F ď LATIN SMALL LETTER D WITH CARON 0x0110 Đ LATIN CAPITAL LETTER D WITH STROKE 0x0111 đ LATIN SMALL LETTER D WITH STROKE 0x0112 Ē LATIN CAPITAL LETTER E WITH MACRON 0x0113 ē LATIN SMALL LETTER E WITH MACRON 0x0114 Ĕ LATIN CAPITAL LETTER E WITH BREVE 0x0115 ĕ LATIN SMALL LETTER E WITH BREVE 0x0116 Ė LATIN CAPITAL LETTER E WITH DOT ABOVE 0x0117 ė LATIN SMALL LETTER E WITH DOT ABOVE 0x0118 Ę LATIN CAPITAL LETTER E WITH OGONEK 0x0119 ę LATIN SMALL LETTER E WITH OGONEK 0x011A Ě LATIN CAPITAL LETTER E WITH CARON 0x011B ě LATIN SMALL LETTER E WITH CARON 0x011C Ĝ LATIN CAPITAL LETTER G WITH CIRCUMFLEX 0x011D ĝ LATIN SMALL LETTER G WITH CIRCUMFLEX 0x011E Ğ LATIN CAPITAL LETTER G WITH BREVE 0x011F ğ LATIN SMALL LETTER G WITH BREVE 0x0120 Ġ LATIN CAPITAL LETTER G WITH DOT ABOVE 0x0121 ġ LATIN SMALL LETTER G WITH DOT ABOVE 0x0122 Ģ LATIN CAPITAL LETTER G WITH CEDILLA 0x0123 ģ LATIN SMALL LETTER G WITH CEDILLA 0x0124 Ĥ LATIN CAPITAL LETTER H WITH CIRCUMFLEX 0x0125 ĥ LATIN SMALL LETTER H WITH CIRCUMFLEX 0x0126 Ħ LATIN CAPITAL LETTER H WITH STROKE 0x0127 ħ LATIN SMALL LETTER H WITH STROKE 0x0128 Ĩ LATIN CAPITAL LETTER I WITH TILDE 0x0129 ĩ LATIN SMALL LETTER I WITH TILDE 0x012A Ī LATIN CAPITAL LETTER I WITH MACRON 0x012B ī LATIN SMALL LETTER I WITH MACRON 0x012C Ĭ LATIN CAPITAL LETTER I WITH BREVE 0x012D ĭ LATIN SMALL LETTER I WITH BREVE 0x012E Į LATIN CAPITAL LETTER I WITH OGONEK 0x012F į LATIN SMALL LETTER I WITH OGONEK 0x0130 İ LATIN CAPITAL LETTER I WITH DOT ABOVE 0x0132 IJ LATIN CAPITAL LIGATURE IJ 0x0133 ij LATIN SMALL LIGATURE IJ 0x0134 Ĵ LATIN CAPITAL LETTER J WITH CIRCUMFLEX 0x0135 ĵ LATIN SMALL LETTER J WITH CIRCUMFLEX 0x0136 Ķ LATIN CAPITAL LETTER K WITH CEDILLA 0x0137 ķ LATIN SMALL LETTER K WITH CEDILLA 0x0138 ĸ LATIN SMALL LETTER KRA 0x0139 Ĺ LATIN CAPITAL LETTER L WITH ACUTE 0x013A ĺ LATIN SMALL LETTER L WITH ACUTE 0x013B Ļ LATIN CAPITAL LETTER L WITH CEDILLA 0x013C ļ LATIN SMALL LETTER L WITH CEDILLA 0x013D Ľ LATIN CAPITAL LETTER L WITH CARON 0x013E ľ LATIN SMALL LETTER L WITH CARON 0x013F Ŀ LATIN CAPITAL LETTER L WITH MIDDLE DOT 0x0140 ŀ LATIN SMALL LETTER L WITH MIDDLE DOT 0x0141 Ł LATIN CAPITAL LETTER L WITH STROKE 0x0142 ł LATIN SMALL LETTER L WITH STROKE 0x0143 Ń LATIN CAPITAL LETTER N WITH ACUTE 0x0144 ń LATIN SMALL LETTER N WITH ACUTE 0x0145 Ņ LATIN CAPITAL LETTER N WITH CEDILLA 0x0146 ņ LATIN SMALL LETTER N WITH CEDILLA 0x0147 Ň LATIN CAPITAL LETTER N WITH CARON 0x0148 ň LATIN SMALL LETTER N WITH CARON 0x0149 ʼn LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 0x014A Ŋ LATIN CAPITAL LETTER ENG 0x014B ŋ LATIN SMALL LETTER ENG 0x014C Ō LATIN CAPITAL LETTER O WITH MACRON 0x014D ō LATIN SMALL LETTER O WITH MACRON 0x014E Ŏ LATIN CAPITAL LETTER O WITH BREVE 0x014F ŏ LATIN SMALL LETTER O WITH BREVE 0x0150 Ő LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0x0151 ő LATIN SMALL LETTER O WITH DOUBLE ACUTE 0x0154 Ŕ LATIN CAPITAL LETTER R WITH ACUTE 0x0155 ŕ LATIN SMALL LETTER R WITH ACUTE 0x0156 Ŗ LATIN CAPITAL LETTER R WITH CEDILLA 0x0157 ŗ LATIN SMALL LETTER R WITH CEDILLA 0x0158 Ř LATIN CAPITAL LETTER R WITH CARON 0x0159 ř LATIN SMALL LETTER R WITH CARON 0x015A Ś LATIN CAPITAL LETTER S WITH ACUTE 0x015B ś LATIN SMALL LETTER S WITH ACUTE 0x015C Ŝ LATIN CAPITAL LETTER S WITH CIRCUMFLEX 0x015D ŝ LATIN SMALL LETTER S WITH CIRCUMFLEX 0x015E Ş LATIN CAPITAL LETTER S WITH CEDILLA 0x015F ş LATIN SMALL LETTER S WITH CEDILLA 0x0160 Š LATIN CAPITAL LETTER S WITH CARON 0x0161 š LATIN SMALL LETTER S WITH CARON 0x0162 Ţ LATIN CAPITAL LETTER T WITH CEDILLA 0x0163 ţ LATIN SMALL LETTER T WITH CEDILLA 0x0164 Ť LATIN CAPITAL LETTER T WITH CARON 0x0165 ť LATIN SMALL LETTER T WITH CARON 0x0166 Ŧ LATIN CAPITAL LETTER T WITH STROKE 0x0167 ŧ LATIN SMALL LETTER T WITH STROKE 0x0168 Ũ LATIN CAPITAL LETTER U WITH TILDE 0x0169 ũ LATIN SMALL LETTER U WITH TILDE 0x016A Ū LATIN CAPITAL LETTER U WITH MACRON 0x016B ū LATIN SMALL LETTER U WITH MACRON 0x016C Ŭ LATIN CAPITAL LETTER U WITH BREVE 0x016D ŭ LATIN SMALL LETTER U WITH BREVE 0x016E Ů LATIN CAPITAL LETTER U WITH RING ABOVE 0x016F ů LATIN SMALL LETTER U WITH RING ABOVE 0x0170 Ű LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0x0171 ű LATIN SMALL LETTER U WITH DOUBLE ACUTE 0x0172 Ų LATIN CAPITAL LETTER U WITH OGONEK 0x0173 ų LATIN SMALL LETTER U WITH OGONEK 0x0174 Ŵ LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0x0175 ŵ LATIN SMALL LETTER W WITH CIRCUMFLEX 0x0176 Ŷ LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0x0177 ŷ LATIN SMALL LETTER Y WITH CIRCUMFLEX 0x0178 Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS 0x0179 Ź LATIN CAPITAL LETTER Z WITH ACUTE 0x017A ź LATIN SMALL LETTER Z WITH ACUTE 0x017B Ż LATIN CAPITAL LETTER Z WITH DOT ABOVE 0x017C ż LATIN SMALL LETTER Z WITH DOT ABOVE 0x017D Ž LATIN CAPITAL LETTER Z WITH CARON 0x017E ž LATIN SMALL LETTER Z WITH CARON 0x017F ſ LATIN SMALL LETTER LONG S 0x0180 ƀ LATIN SMALL LETTER B WITH STROKE 0x0181 Ɓ LATIN CAPITAL LETTER B WITH HOOK 0x0182 Ƃ LATIN CAPITAL LETTER B WITH TOPBAR 0x0183 ƃ LATIN SMALL LETTER B WITH TOPBAR 0x0184 Ƅ LATIN CAPITAL LETTER TONE SIX 0x0185 ƅ LATIN SMALL LETTER TONE SIX 0x0186 Ɔ LATIN CAPITAL LETTER OPEN O 0x0187 Ƈ LATIN CAPITAL LETTER C WITH HOOK 0x0188 ƈ LATIN SMALL LETTER C WITH HOOK 0x0189 Ɖ LATIN CAPITAL LETTER AFRICAN D 0x018A Ɗ LATIN CAPITAL LETTER D WITH HOOK 0x018B Ƌ LATIN CAPITAL LETTER D WITH TOPBAR 0x018C ƌ LATIN SMALL LETTER D WITH TOPBAR 0x018D ƍ LATIN SMALL LETTER TURNED DELTA 0x018E Ǝ LATIN CAPITAL LETTER REVERSED E 0x018F Ə LATIN CAPITAL LETTER SCHWA 0x0190 Ɛ LATIN CAPITAL LETTER OPEN E 0x0191 Ƒ LATIN CAPITAL LETTER F WITH HOOK 0x0192 ƒ LATIN SMALL LETTER F WITH HOOK 0x0193 Ɠ LATIN CAPITAL LETTER G WITH HOOK 0x0194 Ɣ LATIN CAPITAL LETTER GAMMA 0x0195 ƕ LATIN SMALL LETTER HV 0x0196 Ɩ LATIN CAPITAL LETTER IOTA 0x0197 Ɨ LATIN CAPITAL LETTER I WITH STROKE 0x0198 Ƙ LATIN CAPITAL LETTER K WITH HOOK 0x0199 ƙ LATIN SMALL LETTER K WITH HOOK 0x019A ƚ LATIN SMALL LETTER L WITH BAR 0x019B ƛ LATIN SMALL LETTER LAMBDA WITH STROKE 0x019C Ɯ LATIN CAPITAL LETTER TURNED M 0x019D Ɲ LATIN CAPITAL LETTER N WITH LEFT HOOK 0x019E ƞ LATIN SMALL LETTER N WITH LONG RIGHT LEG 0x019F Ɵ LATIN CAPITAL LETTER O WITH MIDDLE TILDE 0x01A0 Ơ LATIN CAPITAL LETTER O WITH HORN 0x01A1 ơ LATIN SMALL LETTER O WITH HORN 0x01A2 Ƣ LATIN CAPITAL LETTER OI 0x01A3 ƣ LATIN SMALL LETTER OI 0x01A4 Ƥ LATIN CAPITAL LETTER P WITH HOOK 0x01A5 ƥ LATIN SMALL LETTER P WITH HOOK 0x01A6 Ʀ LATIN LETTER YR 0x01A7 Ƨ LATIN CAPITAL LETTER TONE TWO 0x01A8 ƨ LATIN SMALL LETTER TONE TWO 0x01A9 Ʃ LATIN CAPITAL LETTER ESH 0x01AA ƪ LATIN LETTER REVERSED ESH LOOP 0x01AB ƫ LATIN SMALL LETTER T WITH PALATAL HOOK 0x01AC Ƭ LATIN CAPITAL LETTER T WITH HOOK 0x01AD ƭ LATIN SMALL LETTER T WITH HOOK 0x01AE Ʈ LATIN CAPITAL LETTER T WITH RETROFLEX HOOK 0x01AF Ư LATIN CAPITAL LETTER U WITH HORN 0x01B0 ư LATIN SMALL LETTER U WITH HORN 0x01B1 Ʊ LATIN CAPITAL LETTER UPSILON 0x01B2 Ʋ LATIN CAPITAL LETTER V WITH HOOK 0x01B3 Ƴ LATIN CAPITAL LETTER Y WITH HOOK 0x01B4 ƴ LATIN SMALL LETTER Y WITH HOOK 0x01B5 Ƶ LATIN CAPITAL LETTER Z WITH STROKE 0x01B6 ƶ LATIN SMALL LETTER Z WITH STROKE 0x01B7 Ʒ LATIN CAPITAL LETTER EZH 0x01B8 Ƹ LATIN CAPITAL LETTER EZH REVERSED 0x01B9 ƹ LATIN SMALL LETTER EZH REVERSED 0x01BA ƺ LATIN SMALL LETTER EZH WITH TAIL 0x01BB ƻ LATIN LETTER TWO WITH STROKE 0x01BC Ƽ LATIN CAPITAL LETTER TONE FIVE 0x01BD ƽ LATIN SMALL LETTER TONE FIVE 0x01BE ƾ LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE 0x01BF ƿ LATIN LETTER WYNN 0x01C0 ǀ LATIN LETTER DENTAL CLICK 0x01C1 ǁ LATIN LETTER LATERAL CLICK 0x01C2 ǂ LATIN LETTER ALVEOLAR CLICK 0x01C3 ǃ LATIN LETTER RETROFLEX CLICK 0x01C4 DŽ LATIN CAPITAL LETTER DZ WITH CARON 0x01C5 Dž LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON 0x01C6 dž LATIN SMALL LETTER DZ WITH CARON 0x01C7 LJ LATIN CAPITAL LETTER LJ 0x01C8 Lj LATIN CAPITAL LETTER L WITH SMALL LETTER J 0x01C9 lj LATIN SMALL LETTER LJ 0x01CA NJ LATIN CAPITAL LETTER NJ 0x01CB Nj LATIN CAPITAL LETTER N WITH SMALL LETTER J 0x01CC nj LATIN SMALL LETTER NJ 0x01CD Ǎ LATIN CAPITAL LETTER A WITH CARON 0x01CE ǎ LATIN SMALL LETTER A WITH CARON 0x01CF Ǐ LATIN CAPITAL LETTER I WITH CARON 0x01D0 ǐ LATIN SMALL LETTER I WITH CARON 0x01D1 Ǒ LATIN CAPITAL LETTER O WITH CARON 0x01D2 ǒ LATIN SMALL LETTER O WITH CARON 0x01D3 Ǔ LATIN CAPITAL LETTER U WITH CARON 0x01D4 ǔ LATIN SMALL LETTER U WITH CARON 0x01D5 Ǖ LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON 0x01D6 ǖ LATIN SMALL LETTER U WITH DIAERESIS AND MACRON 0x01D7 Ǘ LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE 0x01D8 ǘ LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE 0x01D9 Ǚ LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON 0x01DA ǚ LATIN SMALL LETTER U WITH DIAERESIS AND CARON 0x01DB Ǜ LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE 0x01DC ǜ LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE 0x01DD ǝ LATIN SMALL LETTER TURNED E 0x01DE Ǟ LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON 0x01DF ǟ LATIN SMALL LETTER A WITH DIAERESIS AND MACRON 0x01E0 Ǡ LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON 0x01E1 ǡ LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON 0x01E2 Ǣ LATIN CAPITAL LETTER AE WITH MACRON 0x01E3 ǣ LATIN SMALL LETTER AE WITH MACRON 0x01E4 Ǥ LATIN CAPITAL LETTER G WITH STROKE 0x01E5 ǥ LATIN SMALL LETTER G WITH STROKE 0x01E6 Ǧ LATIN CAPITAL LETTER G WITH CARON 0x01E7 ǧ LATIN SMALL LETTER G WITH CARON 0x01E8 Ǩ LATIN CAPITAL LETTER K WITH CARON 0x01E9 ǩ LATIN SMALL LETTER K WITH CARON 0x01EA Ǫ LATIN CAPITAL LETTER O WITH OGONEK 0x01EB ǫ LATIN SMALL LETTER O WITH OGONEK 0x01EC Ǭ LATIN CAPITAL LETTER O WITH OGONEK AND MACRON 0x01ED ǭ LATIN SMALL LETTER O WITH OGONEK AND MACRON 0x01EE Ǯ LATIN CAPITAL LETTER EZH WITH CARON 0x01EF ǯ LATIN SMALL LETTER EZH WITH CARON 0x01F0 ǰ LATIN SMALL LETTER J WITH CARON 0x01F1 DZ LATIN CAPITAL LETTER DZ 0x01F2 Dz LATIN CAPITAL LETTER D WITH SMALL LETTER Z 0x01F3 dz LATIN SMALL LETTER DZ 0x01F4 Ǵ LATIN CAPITAL LETTER G WITH ACUTE 0x01F5 ǵ LATIN SMALL LETTER G WITH ACUTE 0x01F6 Ƕ LATIN CAPITAL LETTER HWAIR 0x01F7 Ƿ LATIN CAPITAL LETTER WYNN 0x01F8 Ǹ LATIN CAPITAL LETTER N WITH GRAVE 0x01F9 ǹ LATIN SMALL LETTER N WITH GRAVE 0x01FA Ǻ LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE 0x01FB ǻ LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE 0x01FC Ǽ LATIN CAPITAL LETTER AE WITH ACUTE 0x01FD ǽ LATIN SMALL LETTER AE WITH ACUTE 0x01FE Ǿ LATIN CAPITAL LETTER O WITH STROKE AND ACUTE 0x01FF ǿ LATIN SMALL LETTER O WITH STROKE AND ACUTE 0x0200 Ȁ LATIN CAPITAL LETTER A WITH DOUBLE GRAVE 0x0201 ȁ LATIN SMALL LETTER A WITH DOUBLE GRAVE 0x0202 Ȃ LATIN CAPITAL LETTER A WITH INVERTED BREVE 0x0203 ȃ LATIN SMALL LETTER A WITH INVERTED BREVE 0x0204 Ȅ LATIN CAPITAL LETTER E WITH DOUBLE GRAVE 0x0205 ȅ LATIN SMALL LETTER E WITH DOUBLE GRAVE 0x0206 Ȇ LATIN CAPITAL LETTER E WITH INVERTED BREVE 0x0207 ȇ LATIN SMALL LETTER E WITH INVERTED BREVE 0x0208 Ȉ LATIN CAPITAL LETTER I WITH DOUBLE GRAVE 0x0209 ȉ LATIN SMALL LETTER I WITH DOUBLE GRAVE 0x020A Ȋ LATIN CAPITAL LETTER I WITH INVERTED BREVE 0x020B ȋ LATIN SMALL LETTER I WITH INVERTED BREVE 0x020C Ȍ LATIN CAPITAL LETTER O WITH DOUBLE GRAVE 0x020D ȍ LATIN SMALL LETTER O WITH DOUBLE GRAVE 0x020E Ȏ LATIN CAPITAL LETTER O WITH INVERTED BREVE 0x020F ȏ LATIN SMALL LETTER O WITH INVERTED BREVE 0x0210 Ȑ LATIN CAPITAL LETTER R WITH DOUBLE GRAVE 0x0211 ȑ LATIN SMALL LETTER R WITH DOUBLE GRAVE 0x0212 Ȓ LATIN CAPITAL LETTER R WITH INVERTED BREVE 0x0213 ȓ LATIN SMALL LETTER R WITH INVERTED BREVE 0x0214 Ȕ LATIN CAPITAL LETTER U WITH DOUBLE GRAVE 0x0215 ȕ LATIN SMALL LETTER U WITH DOUBLE GRAVE 0x0216 Ȗ LATIN CAPITAL LETTER U WITH INVERTED BREVE 0x0217 ȗ LATIN SMALL LETTER U WITH INVERTED BREVE 0x0218 Ș LATIN CAPITAL LETTER S WITH COMMA BELOW 0x0219 ș LATIN SMALL LETTER S WITH COMMA BELOW 0x021A Ț LATIN CAPITAL LETTER T WITH COMMA BELOW 0x021B ț LATIN SMALL LETTER T WITH COMMA BELOW 0x021C Ȝ LATIN CAPITAL LETTER YOGH 0x021D ȝ LATIN SMALL LETTER YOGH 0x021E Ȟ LATIN CAPITAL LETTER H WITH CARON 0x021F ȟ LATIN SMALL LETTER H WITH CARON 0x0220 Ƞ LATIN CAPITAL LETTER N WITH LONG RIGHT LEG 0x0221 ȡ LATIN SMALL LETTER D WITH CURL 0x0222 Ȣ LATIN CAPITAL LETTER OU 0x0223 ȣ LATIN SMALL LETTER OU 0x0224 Ȥ LATIN CAPITAL LETTER Z WITH HOOK 0x0225 ȥ LATIN SMALL LETTER Z WITH HOOK 0x0226 Ȧ LATIN CAPITAL LETTER A WITH DOT ABOVE 0x0227 ȧ LATIN SMALL LETTER A WITH DOT ABOVE 0x0228 Ȩ LATIN CAPITAL LETTER E WITH CEDILLA 0x0229 ȩ LATIN SMALL LETTER E WITH CEDILLA 0x022A Ȫ LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON 0x022B ȫ LATIN SMALL LETTER O WITH DIAERESIS AND MACRON 0x022C Ȭ LATIN CAPITAL LETTER O WITH TILDE AND MACRON 0x022D ȭ LATIN SMALL LETTER O WITH TILDE AND MACRON 0x022E Ȯ LATIN CAPITAL LETTER O WITH DOT ABOVE 0x022F ȯ LATIN SMALL LETTER O WITH DOT ABOVE 0x0230 Ȱ LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON 0x0231 ȱ LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON 0x0232 Ȳ LATIN CAPITAL LETTER Y WITH MACRON 0x0233 ȳ LATIN SMALL LETTER Y WITH MACRON 0x0234 ȴ LATIN SMALL LETTER L WITH CURL 0x0235 ȵ LATIN SMALL LETTER N WITH CURL 0x0236 ȶ LATIN SMALL LETTER T WITH CURL 0x0237 ȷ LATIN SMALL LETTER DOTLESS J 0x0238 ȸ LATIN SMALL LETTER DB DIGRAPH 0x0239 ȹ LATIN SMALL LETTER QP DIGRAPH 0x023A Ⱥ LATIN CAPITAL LETTER A WITH STROKE 0x023B Ȼ LATIN CAPITAL LETTER C WITH STROKE 0x023C ȼ LATIN SMALL LETTER C WITH STROKE 0x023D Ƚ LATIN CAPITAL LETTER L WITH BAR 0x023E Ⱦ LATIN CAPITAL LETTER T WITH DIAGONAL STROKE 0x023F ȿ LATIN SMALL LETTER S WITH SWASH TAIL 0x0240 ɀ LATIN SMALL LETTER Z WITH SWASH TAIL 0x0241 Ɂ LATIN CAPITAL LETTER GLOTTAL STOP 0x0242 ɂ LATIN SMALL LETTER GLOTTAL STOP 0x0243 Ƀ LATIN CAPITAL LETTER B WITH STROKE 0x0244 Ʉ LATIN CAPITAL LETTER U BAR 0x0245 Ʌ LATIN CAPITAL LETTER TURNED V 0x0246 Ɇ LATIN CAPITAL LETTER E WITH STROKE 0x0247 ɇ LATIN SMALL LETTER E WITH STROKE 0x0248 Ɉ LATIN CAPITAL LETTER J WITH STROKE 0x0249 ɉ LATIN SMALL LETTER J WITH STROKE 0x024A Ɋ LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL 0x024B ɋ LATIN SMALL LETTER Q WITH HOOK TAIL 0x024C Ɍ LATIN CAPITAL LETTER R WITH STROKE 0x024D ɍ LATIN SMALL LETTER R WITH STROKE 0x024E Ɏ LATIN CAPITAL LETTER Y WITH STROKE 0x024F ɏ LATIN SMALL LETTER Y WITH STROKE 0x0259 ə LATIN SMALL LETTER SCHWA 0x1E00 Ḁ LATIN CAPITAL LETTER A WITH RING BELOW 0x1E01 ḁ LATIN SMALL LETTER A WITH RING BELOW 0x1E02 Ḃ LATIN CAPITAL LETTER B WITH DOT ABOVE 0x1E03 ḃ LATIN SMALL LETTER B WITH DOT ABOVE 0x1E04 Ḅ LATIN CAPITAL LETTER B WITH DOT BELOW 0x1E05 ḅ LATIN SMALL LETTER B WITH DOT BELOW 0x1E06 Ḇ LATIN CAPITAL LETTER B WITH LINE BELOW 0x1E07 ḇ LATIN SMALL LETTER B WITH LINE BELOW 0x1E08 Ḉ LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE 0x1E09 ḉ LATIN SMALL LETTER C WITH CEDILLA AND ACUTE 0x1E0A Ḋ LATIN CAPITAL LETTER D WITH DOT ABOVE 0x1E0B ḋ LATIN SMALL LETTER D WITH DOT ABOVE 0x1E0C Ḍ LATIN CAPITAL LETTER D WITH DOT BELOW 0x1E0D ḍ LATIN SMALL LETTER D WITH DOT BELOW 0x1E0E Ḏ LATIN CAPITAL LETTER D WITH LINE BELOW 0x1E0F ḏ LATIN SMALL LETTER D WITH LINE BELOW 0x1E10 Ḑ LATIN CAPITAL LETTER D WITH CEDILLA 0x1E11 ḑ LATIN SMALL LETTER D WITH CEDILLA 0x1E12 Ḓ LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW 0x1E13 ḓ LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW 0x1E14 Ḕ LATIN CAPITAL LETTER E WITH MACRON AND GRAVE 0x1E15 ḕ LATIN SMALL LETTER E WITH MACRON AND GRAVE 0x1E16 Ḗ LATIN CAPITAL LETTER E WITH MACRON AND ACUTE 0x1E17 ḗ LATIN SMALL LETTER E WITH MACRON AND ACUTE 0x1E18 Ḙ LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW 0x1E19 ḙ LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW 0x1E1A Ḛ LATIN CAPITAL LETTER E WITH TILDE BELOW 0x1E1B ḛ LATIN SMALL LETTER E WITH TILDE BELOW 0x1E1C Ḝ LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE 0x1E1D ḝ LATIN SMALL LETTER E WITH CEDILLA AND BREVE 0x1E1E Ḟ LATIN CAPITAL LETTER F WITH DOT ABOVE 0x1E1F ḟ LATIN SMALL LETTER F WITH DOT ABOVE 0x1E20 Ḡ LATIN CAPITAL LETTER G WITH MACRON 0x1E21 ḡ LATIN SMALL LETTER G WITH MACRON 0x1E22 Ḣ LATIN CAPITAL LETTER H WITH DOT ABOVE 0x1E23 ḣ LATIN SMALL LETTER H WITH DOT ABOVE 0x1E24 Ḥ LATIN CAPITAL LETTER H WITH DOT BELOW 0x1E25 ḥ LATIN SMALL LETTER H WITH DOT BELOW 0x1E26 Ḧ LATIN CAPITAL LETTER H WITH DIAERESIS 0x1E27 ḧ LATIN SMALL LETTER H WITH DIAERESIS 0x1E28 Ḩ LATIN CAPITAL LETTER H WITH CEDILLA 0x1E29 ḩ LATIN SMALL LETTER H WITH CEDILLA 0x1E2A Ḫ LATIN CAPITAL LETTER H WITH BREVE BELOW 0x1E2B ḫ LATIN SMALL LETTER H WITH BREVE BELOW 0x1E2C Ḭ LATIN CAPITAL LETTER I WITH TILDE BELOW 0x1E2D ḭ LATIN SMALL LETTER I WITH TILDE BELOW 0x1E2E Ḯ LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE 0x1E2F ḯ LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE 0x1E30 Ḱ LATIN CAPITAL LETTER K WITH ACUTE 0x1E31 ḱ LATIN SMALL LETTER K WITH ACUTE 0x1E32 Ḳ LATIN CAPITAL LETTER K WITH DOT BELOW 0x1E33 ḳ LATIN SMALL LETTER K WITH DOT BELOW 0x1E34 Ḵ LATIN CAPITAL LETTER K WITH LINE BELOW 0x1E35 ḵ LATIN SMALL LETTER K WITH LINE BELOW 0x1E36 Ḷ LATIN CAPITAL LETTER L WITH DOT BELOW 0x1E37 ḷ LATIN SMALL LETTER L WITH DOT BELOW 0x1E38 Ḹ LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON 0x1E39 ḹ LATIN SMALL LETTER L WITH DOT BELOW AND MACRON 0x1E3A Ḻ LATIN CAPITAL LETTER L WITH LINE BELOW 0x1E3B ḻ LATIN SMALL LETTER L WITH LINE BELOW 0x1E3C Ḽ LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW 0x1E3D ḽ LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW 0x1E3E Ḿ LATIN CAPITAL LETTER M WITH ACUTE 0x1E3F ḿ LATIN SMALL LETTER M WITH ACUTE 0x1E40 Ṁ LATIN CAPITAL LETTER M WITH DOT ABOVE 0x1E41 ṁ LATIN SMALL LETTER M WITH DOT ABOVE 0x1E42 Ṃ LATIN CAPITAL LETTER M WITH DOT BELOW 0x1E43 ṃ LATIN SMALL LETTER M WITH DOT BELOW 0x1E44 Ṅ LATIN CAPITAL LETTER N WITH DOT ABOVE 0x1E45 ṅ LATIN SMALL LETTER N WITH DOT ABOVE 0x1E46 Ṇ LATIN CAPITAL LETTER N WITH DOT BELOW 0x1E47 ṇ LATIN SMALL LETTER N WITH DOT BELOW 0x1E48 Ṉ LATIN CAPITAL LETTER N WITH LINE BELOW 0x1E49 ṉ LATIN SMALL LETTER N WITH LINE BELOW 0x1E4A Ṋ LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW 0x1E4B ṋ LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW 0x1E4C Ṍ LATIN CAPITAL LETTER O WITH TILDE AND ACUTE 0x1E4D ṍ LATIN SMALL LETTER O WITH TILDE AND ACUTE 0x1E4E Ṏ LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS 0x1E4F ṏ LATIN SMALL LETTER O WITH TILDE AND DIAERESIS 0x1E50 Ṑ LATIN CAPITAL LETTER O WITH MACRON AND GRAVE 0x1E51 ṑ LATIN SMALL LETTER O WITH MACRON AND GRAVE 0x1E52 Ṓ LATIN CAPITAL LETTER O WITH MACRON AND ACUTE 0x1E53 ṓ LATIN SMALL LETTER O WITH MACRON AND ACUTE 0x1E54 Ṕ LATIN CAPITAL LETTER P WITH ACUTE 0x1E55 ṕ LATIN SMALL LETTER P WITH ACUTE 0x1E56 Ṗ LATIN CAPITAL LETTER P WITH DOT ABOVE 0x1E57 ṗ LATIN SMALL LETTER P WITH DOT ABOVE 0x1E58 Ṙ LATIN CAPITAL LETTER R WITH DOT ABOVE 0x1E59 ṙ LATIN SMALL LETTER R WITH DOT ABOVE 0x1E5A Ṛ LATIN CAPITAL LETTER R WITH DOT BELOW 0x1E5B ṛ LATIN SMALL LETTER R WITH DOT BELOW 0x1E5C Ṝ LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON 0x1E5D ṝ LATIN SMALL LETTER R WITH DOT BELOW AND MACRON 0x1E5E Ṟ LATIN CAPITAL LETTER R WITH LINE BELOW 0x1E5F ṟ LATIN SMALL LETTER R WITH LINE BELOW 0x1E60 Ṡ LATIN CAPITAL LETTER S WITH DOT ABOVE 0x1E61 ṡ LATIN SMALL LETTER S WITH DOT ABOVE 0x1E62 Ṣ LATIN CAPITAL LETTER S WITH DOT BELOW 0x1E63 ṣ LATIN SMALL LETTER S WITH DOT BELOW 0x1E64 Ṥ LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE 0x1E65 ṥ LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE 0x1E66 Ṧ LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE 0x1E67 ṧ LATIN SMALL LETTER S WITH CARON AND DOT ABOVE 0x1E68 Ṩ LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE 0x1E69 ṩ LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE 0x1E6A Ṫ LATIN CAPITAL LETTER T WITH DOT ABOVE 0x1E6B ṫ LATIN SMALL LETTER T WITH DOT ABOVE 0x1E6C Ṭ LATIN CAPITAL LETTER T WITH DOT BELOW 0x1E6D ṭ LATIN SMALL LETTER T WITH DOT BELOW 0x1E6E Ṯ LATIN CAPITAL LETTER T WITH LINE BELOW 0x1E6F ṯ LATIN SMALL LETTER T WITH LINE BELOW 0x1E70 Ṱ LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW 0x1E71 ṱ LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW 0x1E72 Ṳ LATIN CAPITAL LETTER U WITH DIAERESIS BELOW 0x1E73 ṳ LATIN SMALL LETTER U WITH DIAERESIS BELOW 0x1E74 Ṵ LATIN CAPITAL LETTER U WITH TILDE BELOW 0x1E75 ṵ LATIN SMALL LETTER U WITH TILDE BELOW 0x1E76 Ṷ LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW 0x1E77 ṷ LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW 0x1E78 Ṹ LATIN CAPITAL LETTER U WITH TILDE AND ACUTE 0x1E79 ṹ LATIN SMALL LETTER U WITH TILDE AND ACUTE 0x1E7A Ṻ LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS 0x1E7B ṻ LATIN SMALL LETTER U WITH MACRON AND DIAERESIS 0x1E7C Ṽ LATIN CAPITAL LETTER V WITH TILDE 0x1E7D ṽ LATIN SMALL LETTER V WITH TILDE 0x1E7E Ṿ LATIN CAPITAL LETTER V WITH DOT BELOW 0x1E7F ṿ LATIN SMALL LETTER V WITH DOT BELOW 0x1E80 Ẁ LATIN CAPITAL LETTER W WITH GRAVE 0x1E81 ẁ LATIN SMALL LETTER W WITH GRAVE 0x1E82 Ẃ LATIN CAPITAL LETTER W WITH ACUTE 0x1E83 ẃ LATIN SMALL LETTER W WITH ACUTE 0x1E84 Ẅ LATIN CAPITAL LETTER W WITH DIAERESIS 0x1E85 ẅ LATIN SMALL LETTER W WITH DIAERESIS 0x1E86 Ẇ LATIN CAPITAL LETTER W WITH DOT ABOVE 0x1E87 ẇ LATIN SMALL LETTER W WITH DOT ABOVE 0x1E88 Ẉ LATIN CAPITAL LETTER W WITH DOT BELOW 0x1E89 ẉ LATIN SMALL LETTER W WITH DOT BELOW 0x1E8A Ẋ LATIN CAPITAL LETTER X WITH DOT ABOVE 0x1E8B ẋ LATIN SMALL LETTER X WITH DOT ABOVE 0x1E8C Ẍ LATIN CAPITAL LETTER X WITH DIAERESIS 0x1E8D ẍ LATIN SMALL LETTER X WITH DIAERESIS 0x1E8E Ẏ LATIN CAPITAL LETTER Y WITH DOT ABOVE 0x1E8F ẏ LATIN SMALL LETTER Y WITH DOT ABOVE 0x1E90 Ẑ LATIN CAPITAL LETTER Z WITH CIRCUMFLEX 0x1E91 ẑ LATIN SMALL LETTER Z WITH CIRCUMFLEX 0x1E92 Ẓ LATIN CAPITAL LETTER Z WITH DOT BELOW 0x1E93 ẓ LATIN SMALL LETTER Z WITH DOT BELOW 0x1E94 Ẕ LATIN CAPITAL LETTER Z WITH LINE BELOW 0x1E95 ẕ LATIN SMALL LETTER Z WITH LINE BELOW 0x1E96 ẖ LATIN SMALL LETTER H WITH LINE BELOW 0x1E97 ẗ LATIN SMALL LETTER T WITH DIAERESIS 0x1E98 ẘ LATIN SMALL LETTER W WITH RING ABOVE 0x1E99 ẙ LATIN SMALL LETTER Y WITH RING ABOVE 0x1E9A ẚ LATIN SMALL LETTER A WITH RIGHT HALF RING 0x1E9B ẛ LATIN SMALL LETTER LONG S WITH DOT ABOVE 0x1E9C ẜ LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE 0x1E9D ẝ LATIN SMALL LETTER LONG S WITH HIGH STROKE 0x1E9E ẞ LATIN CAPITAL LETTER SHARP S 0x1E9F ẟ LATIN SMALL LETTER DELTA 0x1EF2 Ỳ LATIN CAPITAL LETTER Y WITH GRAVE 0x1EF3 ỳ LATIN SMALL LETTER Y WITH GRAVE 0x1EF4 Ỵ LATIN CAPITAL LETTER Y WITH DOT BELOW 0x1EF5 ỵ LATIN SMALL LETTER Y WITH DOT BELOW 0x1EF6 Ỷ LATIN CAPITAL LETTER Y WITH HOOK ABOVE 0x1EF7 ỷ LATIN SMALL LETTER Y WITH HOOK ABOVE 0x1EF8 Ỹ LATIN CAPITAL LETTER Y WITH TILDE 0x1EF9 ỹ LATIN SMALL LETTER Y WITH TILDE 0x1EFA Ỻ LATIN CAPITAL LETTER MIDDLE-WELSH LL 0x1EFB ỻ LATIN SMALL LETTER MIDDLE-WELSH LL 0x1EFC Ỽ LATIN CAPITAL LETTER MIDDLE-WELSH V 0x1EFD ỽ LATIN SMALL LETTER MIDDLE-WELSH V 0x1EFE Ỿ LATIN CAPITAL LETTER Y WITH LOOP 0x1EFF ỿ LATIN SMALL LETTER Y WITH LOOP 0x2020 † DAGGER 0x20A0 ₠ EURO-CURRENCY SIGN 0x20A1 ₡ COLON SIGN 0x20A2 ₢ CRUZEIRO SIGN 0x20A3 ₣ FRENCH FRANC SIGN 0x20A4 ₤ LIRA SIGN 0x20A5 ₥ MILL SIGN 0x20A6 ₦ NAIRA SIGN 0x20A7 ₧ PESETA SIGN 0x20A8 ₨ RUPEE SIGN 0x20A9 ₩ WON SIGN 0x20AA ₪ NEW SHEQEL SIGN 0x20AB ₫ DONG SIGN 0x20AD ₭ KIP SIGN 0x20AE ₮ TUGRIK SIGN 0x20AF ₯ DRACHMA SIGN 0x20B0 ₰ GERMAN PENNY SIGN 0x20B1 ₱ PESO SIGN 0x20B2 ₲ GUARANI SIGN 0x20B3 ₳ AUSTRAL SIGN 0x20B4 ₴ HRYVNIA SIGN 0x20B5 ₵ CEDI SIGN 0x20B6 ₶ LIVRE TOURNOIS SIGN 0x20B7 ₷ SPESMILO SIGN 0x20B8 ₸ TENGE SIGN 0x20B9 ₹ 0x20BA ₺ 0x20BB ₻ 0x20BC ₼ 0x20BD ₽ 0x20BE ₾ 0x20BF ₿ 0x20C0 ⃀ 0x20C1 ⃁ 0x20C2 ⃂ 0x20C3 ⃃ 0x20C4 ⃄ 0x20C5 ⃅ 0x20C6 ⃆ 0x20C7 ⃇ 0x20C8 ⃈ 0x20C9 ⃉ 0x20CA ⃊ 0x20CB ⃋ 0x20CC ⃌ 0x20CD ⃍ 0x20CE ⃎ 0x20CF ⃏ 0x2113 ℓ SCRIPT SMALL L 0x2C60 Ⱡ LATIN CAPITAL LETTER L WITH DOUBLE BAR 0x2C61 ⱡ LATIN SMALL LETTER L WITH DOUBLE BAR 0x2C62 Ɫ LATIN CAPITAL LETTER L WITH MIDDLE TILDE 0x2C63 Ᵽ LATIN CAPITAL LETTER P WITH STROKE 0x2C64 Ɽ LATIN CAPITAL LETTER R WITH TAIL 0x2C65 ⱥ LATIN SMALL LETTER A WITH STROKE 0x2C66 ⱦ LATIN SMALL LETTER T WITH DIAGONAL STROKE 0x2C67 Ⱨ LATIN CAPITAL LETTER H WITH DESCENDER 0x2C68 ⱨ LATIN SMALL LETTER H WITH DESCENDER 0x2C69 Ⱪ LATIN CAPITAL LETTER K WITH DESCENDER 0x2C6A ⱪ LATIN SMALL LETTER K WITH DESCENDER 0x2C6B Ⱬ LATIN CAPITAL LETTER Z WITH DESCENDER 0x2C6C ⱬ LATIN SMALL LETTER Z WITH DESCENDER 0x2C6D Ɑ LATIN CAPITAL LETTER ALPHA 0x2C6E Ɱ LATIN CAPITAL LETTER M WITH HOOK 0x2C6F Ɐ LATIN CAPITAL LETTER TURNED A 0x2C70 Ɒ LATIN CAPITAL LETTER TURNED ALPHA 0x2C71 ⱱ LATIN SMALL LETTER V WITH RIGHT HOOK 0x2C72 Ⱳ LATIN CAPITAL LETTER W WITH HOOK 0x2C73 ⱳ LATIN SMALL LETTER W WITH HOOK 0x2C74 ⱴ LATIN SMALL LETTER V WITH CURL 0x2C75 Ⱶ LATIN CAPITAL LETTER HALF H 0x2C76 ⱶ LATIN SMALL LETTER HALF H 0x2C77 ⱷ LATIN SMALL LETTER TAILLESS PHI 0x2C78 ⱸ LATIN SMALL LETTER E WITH NOTCH 0x2C79 ⱹ LATIN SMALL LETTER TURNED R WITH TAIL 0x2C7A ⱺ LATIN SMALL LETTER O WITH LOW RING INSIDE 0x2C7B ⱻ LATIN LETTER SMALL CAPITAL TURNED E 0x2C7C ⱼ LATIN SUBSCRIPT SMALL LETTER J 0x2C7D ⱽ MODIFIER LETTER CAPITAL V 0x2C7E Ȿ LATIN CAPITAL LETTER S WITH SWASH TAIL 0x2C7F Ɀ LATIN CAPITAL LETTER Z WITH SWASH TAIL 0xA720 ꜠ MODIFIER LETTER STRESS AND HIGH TONE 0xA721 ꜡ MODIFIER LETTER STRESS AND LOW TONE 0xA722 Ꜣ LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF 0xA723 ꜣ LATIN SMALL LETTER EGYPTOLOGICAL ALEF 0xA724 Ꜥ LATIN CAPITAL LETTER EGYPTOLOGICAL AIN 0xA725 ꜥ LATIN SMALL LETTER EGYPTOLOGICAL AIN 0xA726 Ꜧ LATIN CAPITAL LETTER HENG 0xA727 ꜧ LATIN SMALL LETTER HENG 0xA728 Ꜩ LATIN CAPITAL LETTER TZ 0xA729 ꜩ LATIN SMALL LETTER TZ 0xA72A Ꜫ LATIN CAPITAL LETTER TRESILLO 0xA72B ꜫ LATIN SMALL LETTER TRESILLO 0xA72C Ꜭ LATIN CAPITAL LETTER CUATRILLO 0xA72D ꜭ LATIN SMALL LETTER CUATRILLO 0xA72E Ꜯ LATIN CAPITAL LETTER CUATRILLO WITH COMMA 0xA72F ꜯ LATIN SMALL LETTER CUATRILLO WITH COMMA 0xA730 ꜰ LATIN LETTER SMALL CAPITAL F 0xA731 ꜱ LATIN LETTER SMALL CAPITAL S 0xA732 Ꜳ LATIN CAPITAL LETTER AA 0xA733 ꜳ LATIN SMALL LETTER AA 0xA734 Ꜵ LATIN CAPITAL LETTER AO 0xA735 ꜵ LATIN SMALL LETTER AO 0xA736 Ꜷ LATIN CAPITAL LETTER AU 0xA737 ꜷ LATIN SMALL LETTER AU 0xA738 Ꜹ LATIN CAPITAL LETTER AV 0xA739 ꜹ LATIN SMALL LETTER AV 0xA73A Ꜻ LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR 0xA73B ꜻ LATIN SMALL LETTER AV WITH HORIZONTAL BAR 0xA73C Ꜽ LATIN CAPITAL LETTER AY 0xA73D ꜽ LATIN SMALL LETTER AY 0xA73E Ꜿ LATIN CAPITAL LETTER REVERSED C WITH DOT 0xA73F ꜿ LATIN SMALL LETTER REVERSED C WITH DOT 0xA740 Ꝁ LATIN CAPITAL LETTER K WITH STROKE 0xA741 ꝁ LATIN SMALL LETTER K WITH STROKE 0xA742 Ꝃ LATIN CAPITAL LETTER K WITH DIAGONAL STROKE 0xA743 ꝃ LATIN SMALL LETTER K WITH DIAGONAL STROKE 0xA744 Ꝅ LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE 0xA745 ꝅ LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE 0xA746 Ꝇ LATIN CAPITAL LETTER BROKEN L 0xA747 ꝇ LATIN SMALL LETTER BROKEN L 0xA748 Ꝉ LATIN CAPITAL LETTER L WITH HIGH STROKE 0xA749 ꝉ LATIN SMALL LETTER L WITH HIGH STROKE 0xA74A Ꝋ LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY 0xA74B ꝋ LATIN SMALL LETTER O WITH LONG STROKE OVERLAY 0xA74C Ꝍ LATIN CAPITAL LETTER O WITH LOOP 0xA74D ꝍ LATIN SMALL LETTER O WITH LOOP 0xA74E Ꝏ LATIN CAPITAL LETTER OO 0xA74F ꝏ LATIN SMALL LETTER OO 0xA750 Ꝑ LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER 0xA751 ꝑ LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER 0xA752 Ꝓ LATIN CAPITAL LETTER P WITH FLOURISH 0xA753 ꝓ LATIN SMALL LETTER P WITH FLOURISH 0xA754 Ꝕ LATIN CAPITAL LETTER P WITH SQUIRREL TAIL 0xA755 ꝕ LATIN SMALL LETTER P WITH SQUIRREL TAIL 0xA756 Ꝗ LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER 0xA757 ꝗ LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER 0xA758 Ꝙ LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE 0xA759 ꝙ LATIN SMALL LETTER Q WITH DIAGONAL STROKE 0xA75A Ꝛ LATIN CAPITAL LETTER R ROTUNDA 0xA75B ꝛ LATIN SMALL LETTER R ROTUNDA 0xA75C Ꝝ LATIN CAPITAL LETTER RUM ROTUNDA 0xA75D ꝝ LATIN SMALL LETTER RUM ROTUNDA 0xA75E Ꝟ LATIN CAPITAL LETTER V WITH DIAGONAL STROKE 0xA75F ꝟ LATIN SMALL LETTER V WITH DIAGONAL STROKE 0xA760 Ꝡ LATIN CAPITAL LETTER VY 0xA761 ꝡ LATIN SMALL LETTER VY 0xA762 Ꝣ LATIN CAPITAL LETTER VISIGOTHIC Z 0xA763 ꝣ LATIN SMALL LETTER VISIGOTHIC Z 0xA764 Ꝥ LATIN CAPITAL LETTER THORN WITH STROKE 0xA765 ꝥ LATIN SMALL LETTER THORN WITH STROKE 0xA766 Ꝧ LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER 0xA767 ꝧ LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER 0xA768 Ꝩ LATIN CAPITAL LETTER VEND 0xA769 ꝩ LATIN SMALL LETTER VEND 0xA76A Ꝫ LATIN CAPITAL LETTER ET 0xA76B ꝫ LATIN SMALL LETTER ET 0xA76C Ꝭ LATIN CAPITAL LETTER IS 0xA76D ꝭ LATIN SMALL LETTER IS 0xA76E Ꝯ LATIN CAPITAL LETTER CON 0xA76F ꝯ LATIN SMALL LETTER CON 0xA770 ꝰ MODIFIER LETTER US 0xA771 ꝱ LATIN SMALL LETTER DUM 0xA772 ꝲ LATIN SMALL LETTER LUM 0xA773 ꝳ LATIN SMALL LETTER MUM 0xA774 ꝴ LATIN SMALL LETTER NUM 0xA775 ꝵ LATIN SMALL LETTER RUM 0xA776 ꝶ LATIN LETTER SMALL CAPITAL RUM 0xA777 ꝷ LATIN SMALL LETTER TUM 0xA778 ꝸ LATIN SMALL LETTER UM 0xA779 Ꝺ LATIN CAPITAL LETTER INSULAR D 0xA77A ꝺ LATIN SMALL LETTER INSULAR D 0xA77B Ꝼ LATIN CAPITAL LETTER INSULAR F 0xA77C ꝼ LATIN SMALL LETTER INSULAR F 0xA77D Ᵹ LATIN CAPITAL LETTER INSULAR G 0xA77E Ꝿ LATIN CAPITAL LETTER TURNED INSULAR G 0xA77F ꝿ LATIN SMALL LETTER TURNED INSULAR G 0xA780 Ꞁ LATIN CAPITAL LETTER TURNED L 0xA781 ꞁ LATIN SMALL LETTER TURNED L 0xA782 Ꞃ LATIN CAPITAL LETTER INSULAR R 0xA783 ꞃ LATIN SMALL LETTER INSULAR R 0xA784 Ꞅ LATIN CAPITAL LETTER INSULAR S 0xA785 ꞅ LATIN SMALL LETTER INSULAR S 0xA786 Ꞇ LATIN CAPITAL LETTER INSULAR T 0xA787 ꞇ LATIN SMALL LETTER INSULAR T 0xA788 ꞈ MODIFIER LETTER LOW CIRCUMFLEX ACCENT 0xA789 ꞉ MODIFIER LETTER COLON 0xA78A ꞊ MODIFIER LETTER SHORT EQUALS SIGN 0xA78B Ꞌ LATIN CAPITAL LETTER SALTILLO 0xA78C ꞌ LATIN SMALL LETTER SALTILLO 0xA78D Ɥ 0xA78E ꞎ 0xA78F ꞏ 0xA790 Ꞑ 0xA791 ꞑ 0xA792 Ꞓ 0xA793 ꞓ 0xA794 ꞔ 0xA795 ꞕ 0xA796 Ꞗ 0xA797 ꞗ 0xA798 Ꞙ 0xA799 ꞙ 0xA79A Ꞛ 0xA79B ꞛ 0xA79C Ꞝ 0xA79D ꞝ 0xA79E Ꞟ 0xA79F ꞟ 0xA7A0 Ꞡ 0xA7A1 ꞡ 0xA7A2 Ꞣ 0xA7A3 ꞣ 0xA7A4 Ꞥ 0xA7A5 ꞥ 0xA7A6 Ꞧ 0xA7A7 ꞧ 0xA7A8 Ꞩ 0xA7A9 ꞩ 0xA7AA Ɦ 0xA7AB Ɜ 0xA7AC Ɡ 0xA7AD Ɬ 0xA7AE Ɪ 0xA7AF ꞯ 0xA7B0 Ʞ 0xA7B1 Ʇ 0xA7B2 Ʝ 0xA7B3 Ꭓ 0xA7B4 Ꞵ 0xA7B5 ꞵ 0xA7B6 Ꞷ 0xA7B7 ꞷ 0xA7B8 Ꞹ 0xA7B9 ꞹ 0xA7BA Ꞻ 0xA7BB ꞻ 0xA7BC Ꞽ 0xA7BD ꞽ 0xA7BE Ꞿ 0xA7BF ꞿ 0xA7C0 Ꟁ 0xA7C1 ꟁ 0xA7C2 Ꟃ 0xA7C3 ꟃ 0xA7C4 Ꞔ 0xA7C5 Ʂ 0xA7C6 Ᶎ 0xA7C7 Ꟈ 0xA7C8 ꟈ 0xA7C9 Ꟊ 0xA7CA ꟊ 0xA7CB Ɤ 0xA7CC Ꟍ 0xA7CD ꟍ 0xA7CE ꟎ 0xA7CF ꟏ 0xA7D0 Ꟑ 0xA7D1 ꟑ 0xA7D2 ꟒ 0xA7D3 ꟓ 0xA7D4 ꟔ 0xA7D5 ꟕ 0xA7D6 Ꟗ 0xA7D7 ꟗ 0xA7D8 Ꟙ 0xA7D9 ꟙ 0xA7DA Ꟛ 0xA7DB ꟛ 0xA7DC Ƛ 0xA7DD ꟝ 0xA7DE ꟞ 0xA7DF ꟟ 0xA7E0 ꟠ 0xA7E1 ꟡ 0xA7E2 ꟢ 0xA7E3 ꟣ 0xA7E4 ꟤ 0xA7E5 ꟥ 0xA7E6 ꟦ 0xA7E7 ꟧ 0xA7E8 ꟨ 0xA7E9 ꟩ 0xA7EA ꟪ 0xA7EB ꟫ 0xA7EC ꟬ 0xA7ED ꟭ 0xA7EE ꟮ 0xA7EF ꟯ 0xA7F0 ꟰ 0xA7F1 ꟱ 0xA7F2 ꟲ 0xA7F3 ꟳ 0xA7F4 ꟴ 0xA7F5 Ꟶ 0xA7F6 ꟶ 0xA7F7 ꟷ 0xA7F8 ꟸ 0xA7F9 ꟹ 0xA7FA ꟺ 0xA7FB ꟻ LATIN EPIGRAPHIC LETTER REVERSED F 0xA7FC ꟼ LATIN EPIGRAPHIC LETTER REVERSED P 0xA7FD ꟽ LATIN EPIGRAPHIC LETTER INVERTED M 0xA7FE ꟾ LATIN EPIGRAPHIC LETTER I LONGA 0xA7FF ꟿ LATIN EPIGRAPHIC LETTER ARCHAIC M Lib/gftools/encodings/latin_unique-glyphs.nam000066400000000000000000000167401376445505300217340ustar00rootroot00000000000000# Includes the basic ASCII+Latin-1 sets, as well as common characters # that interact or co-occur with them. 0x0000 .null 0x000D nonmarkingreturn 0x0020 SPACE 0x0021 ! EXCLAMATION MARK 0x0022 " QUOTATION MARK 0x0023 # NUMBER SIGN 0x0024 $ DOLLAR SIGN 0x0025 % PERCENT SIGN 0x0026 & AMPERSAND 0x0027 ' APOSTROPHE 0x0028 ( LEFT PARENTHESIS 0x0029 ) RIGHT PARENTHESIS 0x002A * ASTERISK 0x002B + PLUS SIGN 0x002C , COMMA 0x002D - HYPHEN-MINUS 0x002E . FULL STOP 0x002F / SOLIDUS 0x0030 0 DIGIT ZERO 0x0031 1 DIGIT ONE 0x0032 2 DIGIT TWO 0x0033 3 DIGIT THREE 0x0034 4 DIGIT FOUR 0x0035 5 DIGIT FIVE 0x0036 6 DIGIT SIX 0x0037 7 DIGIT SEVEN 0x0038 8 DIGIT EIGHT 0x0039 9 DIGIT NINE 0x003A : COLON 0x003B ; SEMICOLON 0x003C < LESS-THAN SIGN 0x003D = EQUALS SIGN 0x003E > GREATER-THAN SIGN 0x003F ? QUESTION MARK 0x0040 @ COMMERCIAL AT 0x0041 A LATIN CAPITAL LETTER A 0x0042 B LATIN CAPITAL LETTER B 0x0043 C LATIN CAPITAL LETTER C 0x0044 D LATIN CAPITAL LETTER D 0x0045 E LATIN CAPITAL LETTER E 0x0046 F LATIN CAPITAL LETTER F 0x0047 G LATIN CAPITAL LETTER G 0x0048 H LATIN CAPITAL LETTER H 0x0049 I LATIN CAPITAL LETTER I 0x004A J LATIN CAPITAL LETTER J 0x004B K LATIN CAPITAL LETTER K 0x004C L LATIN CAPITAL LETTER L 0x004D M LATIN CAPITAL LETTER M 0x004E N LATIN CAPITAL LETTER N 0x004F O LATIN CAPITAL LETTER O 0x0050 P LATIN CAPITAL LETTER P 0x0051 Q LATIN CAPITAL LETTER Q 0x0052 R LATIN CAPITAL LETTER R 0x0053 S LATIN CAPITAL LETTER S 0x0054 T LATIN CAPITAL LETTER T 0x0055 U LATIN CAPITAL LETTER U 0x0056 V LATIN CAPITAL LETTER V 0x0057 W LATIN CAPITAL LETTER W 0x0058 X LATIN CAPITAL LETTER X 0x0059 Y LATIN CAPITAL LETTER Y 0x005A Z LATIN CAPITAL LETTER Z 0x005B [ LEFT SQUARE BRACKET 0x005C \ REVERSE SOLIDUS 0x005D ] RIGHT SQUARE BRACKET 0x005E ^ CIRCUMFLEX ACCENT 0x005F _ LOW LINE 0x0060 ` GRAVE ACCENT 0x0061 a LATIN SMALL LETTER A 0x0062 b LATIN SMALL LETTER B 0x0063 c LATIN SMALL LETTER C 0x0064 d LATIN SMALL LETTER D 0x0065 e LATIN SMALL LETTER E 0x0066 f LATIN SMALL LETTER F 0x0067 g LATIN SMALL LETTER G 0x0068 h LATIN SMALL LETTER H 0x0069 i LATIN SMALL LETTER I 0x006A j LATIN SMALL LETTER J 0x006B k LATIN SMALL LETTER K 0x006C l LATIN SMALL LETTER L 0x006D m LATIN SMALL LETTER M 0x006E n LATIN SMALL LETTER N 0x006F o LATIN SMALL LETTER O 0x0070 p LATIN SMALL LETTER P 0x0071 q LATIN SMALL LETTER Q 0x0072 r LATIN SMALL LETTER R 0x0073 s LATIN SMALL LETTER S 0x0074 t LATIN SMALL LETTER T 0x0075 u LATIN SMALL LETTER U 0x0076 v LATIN SMALL LETTER V 0x0077 w LATIN SMALL LETTER W 0x0078 x LATIN SMALL LETTER X 0x0079 y LATIN SMALL LETTER Y 0x007A z LATIN SMALL LETTER Z 0x007B { LEFT CURLY BRACKET 0x007C | VERTICAL LINE 0x007D } RIGHT CURLY BRACKET 0x007E ~ TILDE 0x00A0   NO-BREAK SPACE 0x00A1 ¡ INVERTED EXCLAMATION MARK 0x00A2 ¢ CENT SIGN 0x00A3 £ POUND SIGN 0x00A4 ¤ CURRENCY SIGN 0x00A5 ¥ YEN SIGN 0x00A6 ¦ BROKEN BAR 0x00A7 § SECTION SIGN 0x00A8 ¨ DIAERESIS 0x00A9 © COPYRIGHT SIGN 0x00AA ª FEMININE ORDINAL INDICATOR 0x00AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x00AC ¬ NOT SIGN 0x00AD ­ SOFT HYPHEN 0x00AE ® REGISTERED SIGN 0x00AF ¯ MACRON 0x00B0 ° DEGREE SIGN 0x00B1 ± PLUS-MINUS SIGN 0x00B2 ² SUPERSCRIPT TWO 0x00B3 ³ SUPERSCRIPT THREE 0x00B4 ´ ACUTE ACCENT 0x00B5 µ MICRO SIGN 0x00B6 ¶ PILCROW SIGN 0x00B7 · MIDDLE DOT 0x00B8 ¸ CEDILLA 0x00B9 ¹ SUPERSCRIPT ONE 0x00BA º MASCULINE ORDINAL INDICATOR 0x00BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x00BC ¼ VULGAR FRACTION ONE QUARTER 0x00BD ½ VULGAR FRACTION ONE HALF 0x00BE ¾ VULGAR FRACTION THREE QUARTERS 0x00BF ¿ INVERTED QUESTION MARK 0x00C0 À LATIN CAPITAL LETTER A WITH GRAVE 0x00C1 Á LATIN CAPITAL LETTER A WITH ACUTE 0x00C2  LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0x00C3 à LATIN CAPITAL LETTER A WITH TILDE 0x00C4 Ä LATIN CAPITAL LETTER A WITH DIAERESIS 0x00C5 Å LATIN CAPITAL LETTER A WITH RING ABOVE 0x00C6 Æ LATIN CAPITAL LETTER AE 0x00C7 Ç LATIN CAPITAL LETTER C WITH CEDILLA 0x00C8 È LATIN CAPITAL LETTER E WITH GRAVE 0x00C9 É LATIN CAPITAL LETTER E WITH ACUTE 0x00CA Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0x00CB Ë LATIN CAPITAL LETTER E WITH DIAERESIS 0x00CC Ì LATIN CAPITAL LETTER I WITH GRAVE 0x00CD Í LATIN CAPITAL LETTER I WITH ACUTE 0x00CE Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0x00CF Ï LATIN CAPITAL LETTER I WITH DIAERESIS 0x00D0 Ð LATIN CAPITAL LETTER ETH 0x00D1 Ñ LATIN CAPITAL LETTER N WITH TILDE 0x00D2 Ò LATIN CAPITAL LETTER O WITH GRAVE 0x00D3 Ó LATIN CAPITAL LETTER O WITH ACUTE 0x00D4 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0x00D5 Õ LATIN CAPITAL LETTER O WITH TILDE 0x00D6 Ö LATIN CAPITAL LETTER O WITH DIAERESIS 0x00D7 × MULTIPLICATION SIGN 0x00D8 Ø LATIN CAPITAL LETTER O WITH STROKE 0x00D9 Ù LATIN CAPITAL LETTER U WITH GRAVE 0x00DA Ú LATIN CAPITAL LETTER U WITH ACUTE 0x00DB Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0x00DC Ü LATIN CAPITAL LETTER U WITH DIAERESIS 0x00DD Ý LATIN CAPITAL LETTER Y WITH ACUTE 0x00DE Þ LATIN CAPITAL LETTER THORN 0x00DF ß LATIN SMALL LETTER SHARP S 0x00E0 à LATIN SMALL LETTER A WITH GRAVE 0x00E1 á LATIN SMALL LETTER A WITH ACUTE 0x00E2 â LATIN SMALL LETTER A WITH CIRCUMFLEX 0x00E3 ã LATIN SMALL LETTER A WITH TILDE 0x00E4 ä LATIN SMALL LETTER A WITH DIAERESIS 0x00E5 å LATIN SMALL LETTER A WITH RING ABOVE 0x00E6 æ LATIN SMALL LETTER AE 0x00E7 ç LATIN SMALL LETTER C WITH CEDILLA 0x00E8 è LATIN SMALL LETTER E WITH GRAVE 0x00E9 é LATIN SMALL LETTER E WITH ACUTE 0x00EA ê LATIN SMALL LETTER E WITH CIRCUMFLEX 0x00EB ë LATIN SMALL LETTER E WITH DIAERESIS 0x00EC ì LATIN SMALL LETTER I WITH GRAVE 0x00ED í LATIN SMALL LETTER I WITH ACUTE 0x00EE î LATIN SMALL LETTER I WITH CIRCUMFLEX 0x00EF ï LATIN SMALL LETTER I WITH DIAERESIS 0x00F0 ð LATIN SMALL LETTER ETH 0x00F1 ñ LATIN SMALL LETTER N WITH TILDE 0x00F2 ò LATIN SMALL LETTER O WITH GRAVE 0x00F3 ó LATIN SMALL LETTER O WITH ACUTE 0x00F4 ô LATIN SMALL LETTER O WITH CIRCUMFLEX 0x00F5 õ LATIN SMALL LETTER O WITH TILDE 0x00F6 ö LATIN SMALL LETTER O WITH DIAERESIS 0x00F7 ÷ DIVISION SIGN 0x00F8 ø LATIN SMALL LETTER O WITH STROKE 0x00F9 ù LATIN SMALL LETTER U WITH GRAVE 0x00FA ú LATIN SMALL LETTER U WITH ACUTE 0x00FB û LATIN SMALL LETTER U WITH CIRCUMFLEX 0x00FC ü LATIN SMALL LETTER U WITH DIAERESIS 0x00FD ý LATIN SMALL LETTER Y WITH ACUTE 0x00FE þ LATIN SMALL LETTER THORN 0x00FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS 0x0131 ı LATIN SMALL LETTER DOTLESS I 0x0152 Œ LATIN CAPITAL LIGATURE OE 0x0153 œ LATIN SMALL LIGATURE OE 0x02BB ʻ MODIFIER LETTER TURNED COMMA 0x02BC ʼ MODIFIER LETTER APOSTROPHE 0x02C6 ˆ MODIFIER LETTER CIRCUMFLEX ACCENT 0x02DA ˚ RING ABOVE 0x02DC ˜ SMALL TILDE 0x2002 EN SPACE 0x200B ZERO WIDTH SPACE 0x2009 THIN SPACE 0x2013 – EN DASH 0x2014 — EM DASH 0x2018 ‘ LEFT SINGLE QUOTATION MARK 0x2019 ’ RIGHT SINGLE QUOTATION MARK 0x201A ‚ SINGLE LOW-9 QUOTATION MARK 0x201C “ LEFT DOUBLE QUOTATION MARK 0x201D ” RIGHT DOUBLE QUOTATION MARK 0x201E „ DOUBLE LOW-9 QUOTATION MARK 0x2022 • BULLET 0x2026 … HORIZONTAL ELLIPSIS 0x2032 ′ PRIME 0x2033 ″ DOUBLE PRIME 0x2039 ‹ SINGLE LEFT-POINTING ANGLE QUOTATION MARK 0x203A › SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 0x2044 ⁄ FRACTION SLASH 0x2074 ⁴ SUPERSCRIPT FOUR 0x20AC € EURO SIGN 0x2122 ™ TRADE MARK SIGN 0x2191 ↑ UPWARDS ARROW 0x2193 ↓ DOWNWARDS ARROW 0x2212 − MINUS SIGN 0x2215 ∕ DIVISION SLASH 0xFEFF ZERO WIDTH NO-BREAK SPACE (BOM) 0xFFFD � REPLACEMENT CHARACTER Lib/gftools/encodings/malayalam_unique-glyphs.nam000066400000000000000000000070071376445505300225570ustar00rootroot000000000000000x0307 ̇ COMBINING DOT ABOVE 0x0323 ̣ COMBINING DOT BELOW 0x0964 । DEVANAGARI DANDA 0x0965 ॥ DEVANAGARI DOUBLE DANDA 0x0D02 ം MALAYALAM SIGN ANUSVARA 0x0D03 ഃ MALAYALAM SIGN VISARGA 0x0D05 അ MALAYALAM LETTER A 0x0D06 ആ MALAYALAM LETTER AA 0x0D07 ഇ MALAYALAM LETTER I 0x0D08 ഈ MALAYALAM LETTER II 0x0D09 ഉ MALAYALAM LETTER U 0x0D0A ഊ MALAYALAM LETTER UU 0x0D0B ഋ MALAYALAM LETTER VOCALIC R 0x0D0C ഌ MALAYALAM LETTER VOCALIC L 0x0D0E എ MALAYALAM LETTER E 0x0D0F ഏ MALAYALAM LETTER EE 0x0D10 ഐ MALAYALAM LETTER AI 0x0D12 ഒ MALAYALAM LETTER O 0x0D13 ഓ MALAYALAM LETTER OO 0x0D14 ഔ MALAYALAM LETTER AU 0x0D15 ക MALAYALAM LETTER KA 0x0D16 ഖ MALAYALAM LETTER KHA 0x0D17 ഗ MALAYALAM LETTER GA 0x0D18 ഘ MALAYALAM LETTER GHA 0x0D19 ങ MALAYALAM LETTER NGA 0x0D1A ച MALAYALAM LETTER CA 0x0D1B ഛ MALAYALAM LETTER CHA 0x0D1C ജ MALAYALAM LETTER JA 0x0D1D ഝ MALAYALAM LETTER JHA 0x0D1E ഞ MALAYALAM LETTER NYA 0x0D1F ട MALAYALAM LETTER TTA 0x0D20 ഠ MALAYALAM LETTER TTHA 0x0D21 ഡ MALAYALAM LETTER DDA 0x0D22 ഢ MALAYALAM LETTER DDHA 0x0D23 ണ MALAYALAM LETTER NNA 0x0D24 ത MALAYALAM LETTER TA 0x0D25 ഥ MALAYALAM LETTER THA 0x0D26 ദ MALAYALAM LETTER DA 0x0D27 ധ MALAYALAM LETTER DHA 0x0D28 ന MALAYALAM LETTER NA 0x0D29 ഩ 0x0D2A പ MALAYALAM LETTER PA 0x0D2B ഫ MALAYALAM LETTER PHA 0x0D2C ബ MALAYALAM LETTER BA 0x0D2D ഭ MALAYALAM LETTER BHA 0x0D2E മ MALAYALAM LETTER MA 0x0D2F യ MALAYALAM LETTER YA 0x0D30 ര MALAYALAM LETTER RA 0x0D31 റ MALAYALAM LETTER RRA 0x0D32 ല MALAYALAM LETTER LA 0x0D33 ള MALAYALAM LETTER LLA 0x0D34 ഴ MALAYALAM LETTER LLLA 0x0D35 വ MALAYALAM LETTER VA 0x0D36 ശ MALAYALAM LETTER SHA 0x0D37 ഷ MALAYALAM LETTER SSA 0x0D38 സ MALAYALAM LETTER SA 0x0D39 ഹ MALAYALAM LETTER HA 0x0D3A ഺ 0x0D3D ഽ MALAYALAM SIGN AVAGRAHA 0x0D3E ാ MALAYALAM VOWEL SIGN AA 0x0D3F ി MALAYALAM VOWEL SIGN I 0x0D40 ീ MALAYALAM VOWEL SIGN II 0x0D41 ു MALAYALAM VOWEL SIGN U 0x0D42 ൂ MALAYALAM VOWEL SIGN UU 0x0D43 ൃ MALAYALAM VOWEL SIGN VOCALIC R 0x0D44 ൄ MALAYALAM VOWEL SIGN VOCALIC RR 0x0D46 െ MALAYALAM VOWEL SIGN E 0x0D47 േ MALAYALAM VOWEL SIGN EE 0x0D48 ൈ MALAYALAM VOWEL SIGN AI 0x0D4A ൊ MALAYALAM VOWEL SIGN O 0x0D4B ോ MALAYALAM VOWEL SIGN OO 0x0D4C ൌ MALAYALAM VOWEL SIGN AU 0x0D4D ് MALAYALAM SIGN VIRAMA 0x0D4E ൎ 0x0D57 ൗ MALAYALAM AU LENGTH MARK 0x0D60 ൠ MALAYALAM LETTER VOCALIC RR 0x0D61 ൡ MALAYALAM LETTER VOCALIC LL 0x0D62 ൢ MALAYALAM VOWEL SIGN VOCALIC L 0x0D63 ൣ MALAYALAM VOWEL SIGN VOCALIC LL 0x0D66 ൦ MALAYALAM DIGIT ZERO 0x0D67 ൧ MALAYALAM DIGIT ONE 0x0D68 ൨ MALAYALAM DIGIT TWO 0x0D69 ൩ MALAYALAM DIGIT THREE 0x0D6A ൪ MALAYALAM DIGIT FOUR 0x0D6B ൫ MALAYALAM DIGIT FIVE 0x0D6C ൬ MALAYALAM DIGIT SIX 0x0D6D ൭ MALAYALAM DIGIT SEVEN 0x0D6E ൮ MALAYALAM DIGIT EIGHT 0x0D6F ൯ MALAYALAM DIGIT NINE 0x0D70 ൰ MALAYALAM NUMBER TEN 0x0D71 ൱ MALAYALAM NUMBER ONE HUNDRED 0x0D72 ൲ MALAYALAM NUMBER ONE THOUSAND 0x0D73 ൳ MALAYALAM FRACTION ONE QUARTER 0x0D74 ൴ MALAYALAM FRACTION ONE HALF 0x0D75 ൵ MALAYALAM FRACTION THREE QUARTERS 0x0D79 ൹ MALAYALAM DATE MARK 0x0D7A ൺ MALAYALAM LETTER CHILLU NN 0x0D7B ൻ MALAYALAM LETTER CHILLU N 0x0D7C ർ MALAYALAM LETTER CHILLU RR 0x0D7D ൽ MALAYALAM LETTER CHILLU L 0x0D7E ൾ MALAYALAM LETTER CHILLU LL 0x0D7F ൿ MALAYALAM LETTER CHILLU K 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x200D ‍ ZERO WIDTH JOINER 0x20B9 ₹ 0x25CC ◌ DOTTED CIRCLELib/gftools/encodings/myanmar_unique-glyphs.nam000066400000000000000000000117751376445505300222740ustar00rootroot00000000000000#Copied from https://github.com/google/fonts/blob/master/tools/encodings/myanmar_unique-glyphs.nam 0x1000 MYANMAR LETTER KA 0x1001 MYANMAR LETTER KHA 0x1002 MYANMAR LETTER GA 0x1003 MYANMAR LETTER GHA 0x1004 MYANMAR LETTER NGA 0x1005 MYANMAR LETTER CA 0x1006 MYANMAR LETTER CHA 0x1007 MYANMAR LETTER JA 0x1008 MYANMAR LETTER JHA 0x1009 MYANMAR LETTER NYA 0x100A MYANMAR LETTER NNYA 0x100B MYANMAR LETTER TTA 0x100C MYANMAR LETTER TTHA 0x100D MYANMAR LETTER DDA 0x100E MYANMAR LETTER DDHA 0x100F MYANMAR LETTER NNA 0x1010 MYANMAR LETTER TA 0x1011 MYANMAR LETTER THA 0x1012 MYANMAR LETTER DA 0x1013 MYANMAR LETTER DHA 0x1014 MYANMAR LETTER NA 0x1015 MYANMAR LETTER PA 0x1016 MYANMAR LETTER PHA 0x1017 MYANMAR LETTER BA 0x1018 MYANMAR LETTER BHA 0x1019 MYANMAR LETTER MA 0x101A MYANMAR LETTER YA 0x101B MYANMAR LETTER RA 0x101C MYANMAR LETTER LA 0x101D MYANMAR LETTER WA 0x101E MYANMAR LETTER SA 0x101F MYANMAR LETTER HA 0x1020 MYANMAR LETTER LLA 0x1021 MYANMAR LETTER A 0x1023 MYANMAR LETTER I 0x1024 MYANMAR LETTER II 0x1025 MYANMAR LETTER U 0x1026 MYANMAR LETTER UU 0x1027 MYANMAR LETTER E 0x1029 MYANMAR LETTER O 0x102A MYANMAR LETTER AU 0x102B MYANMAR VOWEL SIGN TALL AA 0x102C MYANMAR VOWEL SIGN AA 0x102D MYANMAR VOWEL SIGN I 0x102E MYANMAR VOWEL SIGN II 0x102F MYANMAR VOWEL SIGN U 0x1030 MYANMAR VOWEL SIGN UU 0x1031 MYANMAR VOWEL SIGN E 0x1032 MYANMAR VOWEL SIGN AI 0x1036 MYANMAR SIGN ANUSVARA 0x1037 MYANMAR SIGN DOT BELOW 0x1038 MYANMAR SIGN VISARGA 0x1039 MYANMAR SIGN VIRAMA 0x103A MYANMAR SIGN ASAT 0x103B MYANMAR CONSONANT SIGN MEDIAL YA 0x103C MYANMAR CONSONANT SIGN MEDIAL RA 0x103D MYANMAR CONSONANT SIGN MEDIAL WA 0x103E MYANMAR CONSONANT SIGN MEDIAL HA 0x103F MYANMAR LETTER GREAT SA 0x1040 MYANMAR DIGIT ZERO 0x1041 MYANMAR DIGIT ONE 0x1042 MYANMAR DIGIT TWO 0x1043 MYANMAR DIGIT THREE 0x1044 MYANMAR DIGIT FOUR 0x1045 MYANMAR DIGIT FIVE 0x1046 MYANMAR DIGIT SIX 0x1047 MYANMAR DIGIT SEVEN 0x1048 MYANMAR DIGIT EIGHT 0x1049 MYANMAR DIGIT NINE 0x104A MYANMAR SIGN LITTLE SECTION 0x104B MYANMAR SIGN SECTION 0x104C MYANMAR SYMBOL LOCATIVE 0x104D MYANMAR SYMBOL COMPLETED 0x104E MYANMAR SYMBOL AFOREMENTIONED 0x104F MYANMAR SYMBOL GENITIVE 0x1050 MYANMAR LETTER SHA 0x1051 MYANMAR LETTER SSA 0x1052 MYANMAR LETTER VOCALIC R 0x1053 MYANMAR LETTER VOCALIC RR 0x1054 MYANMAR LETTER VOCALIC L 0x1055 MYANMAR LETTER VOCALIC LL 0x1056 MYANMAR VOWEL SIGN VOCALIC R 0x1057 MYANMAR VOWEL SIGN VOCALIC RR 0x1058 MYANMAR VOWEL SIGN VOCALIC L 0x1059 MYANMAR VOWEL SIGN VOCALIC LL 0x105A MYANMAR LETTER MON NGA 0x105B MYANMAR LETTER MON JHA 0x105C MYANMAR LETTER MON BBA 0x105D MYANMAR LETTER MON BBE 0x105E MYANMAR CONSONANT SIGN MON MEDIAL NA 0x105F MYANMAR CONSONANT SIGN MON MEDIAL MA 0x1060 MYANMAR CONSONANT SIGN MON MEDIAL LA 0x1061 MYANMAR LETTER SGAW KAREN SHA 0x1062 MYANMAR VOWEL SIGN SGAW KAREN EU 0x1063 MYANMAR TONE MARK SGAW KAREN HATHI 0x1064 MYANMAR TONE MARK SGAW KAREN KE PHO 0x1065 MYANMAR LETTER WESTERN PWO KAREN THA 0x1066 MYANMAR LETTER WESTERN PWO KAREN PWA 0x1067 MYANMAR VOWEL SIGN WESTERN PWO KAREN EU 0x1068 MYANMAR VOWEL SIGN WESTERN PWO KAREN UE 0x1069 MYANMAR SIGN WESTERN PWO KAREN TONE-1 0x106A MYANMAR SIGN WESTERN PWO KAREN TONE-2 0x106B MYANMAR SIGN WESTERN PWO KAREN TONE-3 0x106C MYANMAR SIGN WESTERN PWO KAREN TONE-4 0x106D MYANMAR SIGN WESTERN PWO KAREN TONE-5 0x106E MYANMAR LETTER EASTERN PWO KAREN NNA 0x106F MYANMAR LETTER EASTERN PWO KAREN YWA 0x1070 MYANMAR LETTER EASTERN PWO KAREN GHWA 0x1071 MYANMAR VOWEL SIGN GEBA KAREN I 0x1072 MYANMAR VOWEL SIGN KAYAH OE 0x1073 MYANMAR VOWEL SIGN KAYAH U 0x1074 MYANMAR VOWEL SIGN KAYAH EE 0x1075 MYANMAR LETTER SHAN KA 0x1076 MYANMAR LETTER SHAN KHA 0x1077 MYANMAR LETTER SHAN GA 0x1078 MYANMAR LETTER SHAN CA 0x1079 MYANMAR LETTER SHAN ZA 0x107A MYANMAR LETTER SHAN NYA 0x107B MYANMAR LETTER SHAN DA 0x107C MYANMAR LETTER SHAN NA 0x107D MYANMAR LETTER SHAN PHA 0x107E MYANMAR LETTER SHAN FA 0x107F MYANMAR LETTER SHAN BA 0x1080 MYANMAR LETTER SHAN THA 0x1081 MYANMAR LETTER SHAN HA 0x1082 MYANMAR CONSONANT SIGN SHAN MEDIAL WA 0x1083 MYANMAR VOWEL SIGN SHAN AA 0x1084 MYANMAR VOWEL SIGN SHAN E 0x1085 MYANMAR VOWEL SIGN SHAN E ABOVE 0x1086 MYANMAR VOWEL SIGN SHAN FINAL Y 0x1087 MYANMAR SIGN SHAN TONE-2 0x1088 MYANMAR SIGN SHAN TONE-3 0x1089 MYANMAR SIGN SHAN TONE-5 0x108A MYANMAR SIGN SHAN TONE-6 0x108B MYANMAR SIGN SHAN COUNCIL TONE-2 0x108C MYANMAR SIGN SHAN COUNCIL TONE-3 0x108D MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE 0x108E MYANMAR LETTER RUMAI PALAUNG FA 0x108F MYANMAR SIGN RUMAI PALAUNG TONE-5 0x1090 MYANMAR SHAN DIGIT ZERO 0x1091 MYANMAR SHAN DIGIT ONE 0x1092 MYANMAR SHAN DIGIT TWO 0x1093 MYANMAR SHAN DIGIT THREE 0x1094 MYANMAR SHAN DIGIT FOUR 0x1095 MYANMAR SHAN DIGIT FIVE 0x1096 MYANMAR SHAN DIGIT SIX 0x1097 MYANMAR SHAN DIGIT SEVEN 0x1098 MYANMAR SHAN DIGIT EIGHT 0x1099 MYANMAR SHAN DIGIT NINE 0x109A MYANMAR SIGN KHAMTI TONE-1 0x109B MYANMAR SIGN KHAMTI TONE-3 0x109C MYANMAR VOWEL SIGN AITON A 0x109D MYANMAR VOWEL SIGN AITON AI 0x109E MYANMAR SYMBOL SHAN ONE 0x109F MYANMAR SYMBOL SHAN EXCLAMATION 0x200B ZERO WIDTH SPACE 0x200C ZERO WIDTH NON-JOINER 0x200D ZERO WIDTH JOINER 0x25CC DOTTED CIRCLE Lib/gftools/encodings/oriya_unique-glyphs.nam000066400000000000000000000051771376445505300217520ustar00rootroot000000000000000x0964 । DEVANAGARI DANDA 0x0965 ॥ DEVANAGARI DOUBLE DANDA 0x0B01 ଁ ORIYA SIGN CANDRABINDU 0x0B02 ଂ ORIYA SIGN ANUSVARA 0x0B03 ଃ ORIYA SIGN VISARGA 0x0B05 ଅ ORIYA LETTER A 0x0B06 ଆ ORIYA LETTER AA 0x0B07 ଇ ORIYA LETTER I 0x0B08 ଈ ORIYA LETTER II 0x0B09 ଉ ORIYA LETTER U 0x0B0A ଊ ORIYA LETTER UU 0x0B0B ଋ ORIYA LETTER VOCALIC R 0x0B0C ଌ ORIYA LETTER VOCALIC L 0x0B0F ଏ ORIYA LETTER E 0x0B10 ଐ ORIYA LETTER AI 0x0B13 ଓ ORIYA LETTER O 0x0B14 ଔ ORIYA LETTER AU 0x0B15 କ ORIYA LETTER KA 0x0B16 ଖ ORIYA LETTER KHA 0x0B17 ଗ ORIYA LETTER GA 0x0B18 ଘ ORIYA LETTER GHA 0x0B19 ଙ ORIYA LETTER NGA 0x0B1A ଚ ORIYA LETTER CA 0x0B1B ଛ ORIYA LETTER CHA 0x0B1C ଜ ORIYA LETTER JA 0x0B1D ଝ ORIYA LETTER JHA 0x0B1E ଞ ORIYA LETTER NYA 0x0B1F ଟ ORIYA LETTER TTA 0x0B20 ଠ ORIYA LETTER TTHA 0x0B21 ଡ ORIYA LETTER DDA 0x0B22 ଢ ORIYA LETTER DDHA 0x0B23 ଣ ORIYA LETTER NNA 0x0B24 ତ ORIYA LETTER TA 0x0B25 ଥ ORIYA LETTER THA 0x0B26 ଦ ORIYA LETTER DA 0x0B27 ଧ ORIYA LETTER DHA 0x0B28 ନ ORIYA LETTER NA 0x0B2A ପ ORIYA LETTER PA 0x0B2B ଫ ORIYA LETTER PHA 0x0B2C ବ ORIYA LETTER BA 0x0B2D ଭ ORIYA LETTER BHA 0x0B2E ମ ORIYA LETTER MA 0x0B2F ଯ ORIYA LETTER YA 0x0B30 ର ORIYA LETTER RA 0x0B32 ଲ ORIYA LETTER LA 0x0B33 ଳ ORIYA LETTER LLA 0x0B35 ଵ ORIYA LETTER VA 0x0B36 ଶ ORIYA LETTER SHA 0x0B37 ଷ ORIYA LETTER SSA 0x0B38 ସ ORIYA LETTER SA 0x0B39 ହ ORIYA LETTER HA 0x0B3C ଼ ORIYA SIGN NUKTA 0x0B3D ଽ ORIYA SIGN AVAGRAHA 0x0B3E ା ORIYA VOWEL SIGN AA 0x0B3F ି ORIYA VOWEL SIGN I 0x0B40 ୀ ORIYA VOWEL SIGN II 0x0B41 ୁ ORIYA VOWEL SIGN U 0x0B42 ୂ ORIYA VOWEL SIGN UU 0x0B43 ୃ ORIYA VOWEL SIGN VOCALIC R 0x0B44 ୄ ORIYA VOWEL SIGN VOCALIC RR 0x0B47 େ ORIYA VOWEL SIGN E 0x0B48 ୈ ORIYA VOWEL SIGN AI 0x0B4B ୋ ORIYA VOWEL SIGN O 0x0B4C ୌ ORIYA VOWEL SIGN AU 0x0B4D ୍ ORIYA SIGN VIRAMA 0x0B56 ୖ ORIYA AI LENGTH MARK 0x0B57 ୗ ORIYA AU LENGTH MARK 0x0B5C ଡ଼ ORIYA LETTER RRA 0x0B5D ଢ଼ ORIYA LETTER RHA 0x0B5F ୟ ORIYA LETTER YYA 0x0B60 ୠ ORIYA LETTER VOCALIC RR 0x0B61 ୡ ORIYA LETTER VOCALIC LL 0x0B62 ୢ ORIYA VOWEL SIGN VOCALIC L 0x0B63 ୣ ORIYA VOWEL SIGN VOCALIC LL 0x0B66 ୦ ORIYA DIGIT ZERO 0x0B67 ୧ ORIYA DIGIT ONE 0x0B68 ୨ ORIYA DIGIT TWO 0x0B69 ୩ ORIYA DIGIT THREE 0x0B6A ୪ ORIYA DIGIT FOUR 0x0B6B ୫ ORIYA DIGIT FIVE 0x0B6C ୬ ORIYA DIGIT SIX 0x0B6D ୭ ORIYA DIGIT SEVEN 0x0B6E ୮ ORIYA DIGIT EIGHT 0x0B6F ୯ ORIYA DIGIT NINE 0x0B70 ୰ ORIYA ISSHAR 0x0B71 ୱ ORIYA LETTER WA 0x0B72 ୲ 0x0B73 ୳ 0x0B74 ୴ 0x0B75 ୵ 0x0B76 ୶ 0x0B77 ୷ 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x200D ‍ ZERO WIDTH JOINER 0x20B9 ₹ 0x25CC ◌ DOTTED CIRCLE Lib/gftools/encodings/sinhala_unique-glyphs.nam000066400000000000000000000067661376445505300222530ustar00rootroot000000000000000x0964 । DEVANAGARI DANDA 0x0965 ॥ DEVANAGARI DOUBLE DANDA 0x0D82 ං SINHALA SIGN ANUSVARAYA 0x0D83 ඃ SINHALA SIGN VISARGAYA 0x0D85 අ SINHALA LETTER AYANNA 0x0D86 ආ SINHALA LETTER AAYANNA 0x0D87 ඇ SINHALA LETTER AEYANNA 0x0D88 ඈ SINHALA LETTER AEEYANNA 0x0D89 ඉ SINHALA LETTER IYANNA 0x0D8A ඊ SINHALA LETTER IIYANNA 0x0D8B උ SINHALA LETTER UYANNA 0x0D8C ඌ SINHALA LETTER UUYANNA 0x0D8D ඍ SINHALA LETTER IRUYANNA 0x0D8E ඎ SINHALA LETTER IRUUYANNA 0x0D8F ඏ SINHALA LETTER ILUYANNA 0x0D90 ඐ SINHALA LETTER ILUUYANNA 0x0D91 එ SINHALA LETTER EYANNA 0x0D92 ඒ SINHALA LETTER EEYANNA 0x0D93 ඓ SINHALA LETTER AIYANNA 0x0D94 ඔ SINHALA LETTER OYANNA 0x0D95 ඕ SINHALA LETTER OOYANNA 0x0D96 ඖ SINHALA LETTER AUYANNA 0x0D9A ක SINHALA LETTER ALPAPRAANA KAYANNA 0x0D9B ඛ SINHALA LETTER MAHAAPRAANA KAYANNA 0x0D9C ග SINHALA LETTER ALPAPRAANA GAYANNA 0x0D9D ඝ SINHALA LETTER MAHAAPRAANA GAYANNA 0x0D9E ඞ SINHALA LETTER KANTAJA NAASIKYAYA 0x0D9F ඟ SINHALA LETTER SANYAKA GAYANNA 0x0DA0 ච SINHALA LETTER ALPAPRAANA CAYANNA 0x0DA1 ඡ SINHALA LETTER MAHAAPRAANA CAYANNA 0x0DA2 ජ SINHALA LETTER ALPAPRAANA JAYANNA 0x0DA3 ඣ SINHALA LETTER MAHAAPRAANA JAYANNA 0x0DA4 ඤ SINHALA LETTER TAALUJA NAASIKYAYA 0x0DA5 ඥ SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA 0x0DA6 ඦ SINHALA LETTER SANYAKA JAYANNA 0x0DA7 ට SINHALA LETTER ALPAPRAANA TTAYANNA 0x0DA8 ඨ SINHALA LETTER MAHAAPRAANA TTAYANNA 0x0DA9 ඩ SINHALA LETTER ALPAPRAANA DDAYANNA 0x0DAA ඪ SINHALA LETTER MAHAAPRAANA DDAYANNA 0x0DAB ණ SINHALA LETTER MUURDHAJA NAYANNA 0x0DAC ඬ SINHALA LETTER SANYAKA DDAYANNA 0x0DAD ත SINHALA LETTER ALPAPRAANA TAYANNA 0x0DAE ථ SINHALA LETTER MAHAAPRAANA TAYANNA 0x0DAF ද SINHALA LETTER ALPAPRAANA DAYANNA 0x0DB0 ධ SINHALA LETTER MAHAAPRAANA DAYANNA 0x0DB1 න SINHALA LETTER DANTAJA NAYANNA 0x0DB3 ඳ SINHALA LETTER SANYAKA DAYANNA 0x0DB4 ප SINHALA LETTER ALPAPRAANA PAYANNA 0x0DB5 ඵ SINHALA LETTER MAHAAPRAANA PAYANNA 0x0DB6 බ SINHALA LETTER ALPAPRAANA BAYANNA 0x0DB7 භ SINHALA LETTER MAHAAPRAANA BAYANNA 0x0DB8 ම SINHALA LETTER MAYANNA 0x0DB9 ඹ SINHALA LETTER AMBA BAYANNA 0x0DBA ය SINHALA LETTER YAYANNA 0x0DBB ර SINHALA LETTER RAYANNA 0x0DBD ල SINHALA LETTER DANTAJA LAYANNA 0x0DC0 ව SINHALA LETTER VAYANNA 0x0DC1 ශ SINHALA LETTER TAALUJA SAYANNA 0x0DC2 ෂ SINHALA LETTER MUURDHAJA SAYANNA 0x0DC3 ස SINHALA LETTER DANTAJA SAYANNA 0x0DC4 හ SINHALA LETTER HAYANNA 0x0DC5 ළ SINHALA LETTER MUURDHAJA LAYANNA 0x0DC6 ෆ SINHALA LETTER FAYANNA 0x0DCA ් SINHALA SIGN AL-LAKUNA 0x0DCF ා SINHALA VOWEL SIGN AELA-PILLA 0x0DD0 ැ SINHALA VOWEL SIGN KETTI AEDA-PILLA 0x0DD1 ෑ SINHALA VOWEL SIGN DIGA AEDA-PILLA 0x0DD2 ි SINHALA VOWEL SIGN KETTI IS-PILLA 0x0DD3 ී SINHALA VOWEL SIGN DIGA IS-PILLA 0x0DD4 ු SINHALA VOWEL SIGN KETTI PAA-PILLA 0x0DD6 ූ SINHALA VOWEL SIGN DIGA PAA-PILLA 0x0DD8 ෘ SINHALA VOWEL SIGN GAETTA-PILLA 0x0DD9 ෙ SINHALA VOWEL SIGN KOMBUVA 0x0DDA ේ SINHALA VOWEL SIGN DIGA KOMBUVA 0x0DDB ෛ SINHALA VOWEL SIGN KOMBU DEKA 0x0DDC ො SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA 0x0DDD ෝ SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA 0x0DDE ෞ SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA 0x0DDF ෟ SINHALA VOWEL SIGN GAYANUKITTA 0x0DF2 ෲ SINHALA VOWEL SIGN DIGA GAETTA-PILLA 0x0DF3 ෳ SINHALA VOWEL SIGN DIGA GAYANUKITTA 0x0DF4 ෴ SINHALA PUNCTUATION KUNDDALIYA 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x200D ‍ ZERO WIDTH JOINER 0x25CC ◌ DOTTED CIRCLELib/gftools/encodings/tamil_unique-glyphs.nam000066400000000000000000000044021376445505300217230ustar00rootroot000000000000000x0964 । DEVANAGARI DANDA 0x0965 ॥ DEVANAGARI DOUBLE DANDA 0x0B82 ஂ TAMIL SIGN ANUSVARA 0x0B83 ஃ TAMIL SIGN VISARGA 0x0B85 அ TAMIL LETTER A 0x0B86 ஆ TAMIL LETTER AA 0x0B87 இ TAMIL LETTER I 0x0B88 ஈ TAMIL LETTER II 0x0B89 உ TAMIL LETTER U 0x0B8A ஊ TAMIL LETTER UU 0x0B8E எ TAMIL LETTER E 0x0B8F ஏ TAMIL LETTER EE 0x0B90 ஐ TAMIL LETTER AI 0x0B92 ஒ TAMIL LETTER O 0x0B93 ஓ TAMIL LETTER OO 0x0B94 ஔ TAMIL LETTER AU 0x0B95 க TAMIL LETTER KA 0x0B99 ங TAMIL LETTER NGA 0x0B9A ச TAMIL LETTER CA 0x0B9C ஜ TAMIL LETTER JA 0x0B9E ஞ TAMIL LETTER NYA 0x0B9F ட TAMIL LETTER TTA 0x0BA3 ண TAMIL LETTER NNA 0x0BA4 த TAMIL LETTER TA 0x0BA8 ந TAMIL LETTER NA 0x0BA9 ன TAMIL LETTER NNNA 0x0BAA ப TAMIL LETTER PA 0x0BAE ம TAMIL LETTER MA 0x0BAF ய TAMIL LETTER YA 0x0BB0 ர TAMIL LETTER RA 0x0BB1 ற TAMIL LETTER RRA 0x0BB2 ல TAMIL LETTER LA 0x0BB3 ள TAMIL LETTER LLA 0x0BB4 ழ TAMIL LETTER LLLA 0x0BB5 வ TAMIL LETTER VA 0x0BB6 ஶ TAMIL LETTER SHA 0x0BB7 ஷ TAMIL LETTER SSA 0x0BB8 ஸ TAMIL LETTER SA 0x0BB9 ஹ TAMIL LETTER HA 0x0BBE ா TAMIL VOWEL SIGN AA 0x0BBF ி TAMIL VOWEL SIGN I 0x0BC0 ீ TAMIL VOWEL SIGN II 0x0BC1 ு TAMIL VOWEL SIGN U 0x0BC2 ூ TAMIL VOWEL SIGN UU 0x0BC6 ெ TAMIL VOWEL SIGN E 0x0BC7 ே TAMIL VOWEL SIGN EE 0x0BC8 ை TAMIL VOWEL SIGN AI 0x0BCA ொ TAMIL VOWEL SIGN O 0x0BCB ோ TAMIL VOWEL SIGN OO 0x0BCC ௌ TAMIL VOWEL SIGN AU 0x0BCD ் TAMIL SIGN VIRAMA 0x0BD0 ௐ TAMIL OM 0x0BD7 ௗ TAMIL AU LENGTH MARK 0x0BE6 ௦ TAMIL DIGIT ZERO 0x0BE7 ௧ TAMIL DIGIT ONE 0x0BE8 ௨ TAMIL DIGIT TWO 0x0BE9 ௩ TAMIL DIGIT THREE 0x0BEA ௪ TAMIL DIGIT FOUR 0x0BEB ௫ TAMIL DIGIT FIVE 0x0BEC ௬ TAMIL DIGIT SIX 0x0BED ௭ TAMIL DIGIT SEVEN 0x0BEE ௮ TAMIL DIGIT EIGHT 0x0BEF ௯ TAMIL DIGIT NINE 0x0BF0 ௰ TAMIL NUMBER TEN 0x0BF1 ௱ TAMIL NUMBER ONE HUNDRED 0x0BF2 ௲ TAMIL NUMBER ONE THOUSAND 0x0BF3 ௳ TAMIL DAY SIGN 0x0BF4 ௴ TAMIL MONTH SIGN 0x0BF5 ௵ TAMIL YEAR SIGN 0x0BF6 ௶ TAMIL DEBIT SIGN 0x0BF7 ௷ TAMIL CREDIT SIGN 0x0BF8 ௸ TAMIL AS ABOVE SIGN 0x0BF9 ௹ TAMIL RUPEE SIGN 0x0BFA ௺ TAMIL NUMBER SIGN 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x200D ‍ ZERO WIDTH JOINER 0x20B9 ₹ 0x25CC ◌ DOTTED CIRCLELib/gftools/encodings/telugu_unique-glyphs.nam000066400000000000000000000057401376445505300221300ustar00rootroot00000000000000# 2014-10-08 Copied from googlefontsdirectory unicodes-telugu.txt 0x0951 DEVANAGARI STRESS SIGN UDATTA 0x0952 DEVANAGARI STRESS SIGN ANUDATTA 0x0964 DEVANAGARI DANDA 0x0965 DEVANAGARI DOUBLE DANDA 0x0C00 TELUGU SIGN COMBINING CANDRABINDU ABOVE 0x0C01 TELUGU SIGN CANDRABINDU 0x0C02 TELUGU SIGN ANUSVARA 0x0C03 TELUGU SIGN VISARGA 0x0C05 TELUGU LETTER A 0x0C06 TELUGU LETTER AA 0x0C07 TELUGU LETTER I 0x0C08 TELUGU LETTER II 0x0C09 TELUGU LETTER U 0x0C0A TELUGU LETTER UU 0x0C0B TELUGU LETTER VOCALIC R 0x0C0C TELUGU LETTER VOCALIC L 0x0C0E TELUGU LETTER E 0x0C0F TELUGU LETTER EE 0x0C10 TELUGU LETTER AI 0x0C12 TELUGU LETTER O 0x0C13 TELUGU LETTER OO 0x0C14 TELUGU LETTER AU 0x0C15 TELUGU LETTER KA 0x0C16 TELUGU LETTER KHA 0x0C17 TELUGU LETTER GA 0x0C18 TELUGU LETTER GHA 0x0C19 TELUGU LETTER NGA 0x0C1A TELUGU LETTER CA 0x0C1B TELUGU LETTER CHA 0x0C1C TELUGU LETTER JA 0x0C1D TELUGU LETTER JHA 0x0C1E TELUGU LETTER NYA 0x0C1F TELUGU LETTER TTA 0x0C20 TELUGU LETTER TTHA 0x0C21 TELUGU LETTER DDA 0x0C22 TELUGU LETTER DDHA 0x0C23 TELUGU LETTER NNA 0x0C24 TELUGU LETTER TA 0x0C25 TELUGU LETTER THA 0x0C26 TELUGU LETTER DA 0x0C27 TELUGU LETTER DHA 0x0C28 TELUGU LETTER NA 0x0C2A TELUGU LETTER PA 0x0C2B TELUGU LETTER PHA 0x0C2C TELUGU LETTER BA 0x0C2D TELUGU LETTER BHA 0x0C2E TELUGU LETTER MA 0x0C2F TELUGU LETTER YA 0x0C30 TELUGU LETTER RA 0x0C31 TELUGU LETTER RRA 0x0C32 TELUGU LETTER LA 0x0C33 TELUGU LETTER LLA 0x0C34 TELUGU LETTER LLLA 0x0C35 TELUGU LETTER VA 0x0C36 TELUGU LETTER SHA 0x0C37 TELUGU LETTER SSA 0x0C38 TELUGU LETTER SA 0x0C39 TELUGU LETTER HA 0x0C3D TELUGU SIGN AVAGRAHA 0x0C3E TELUGU VOWEL SIGN AA 0x0C3F TELUGU VOWEL SIGN I 0x0C40 TELUGU VOWEL SIGN II 0x0C41 TELUGU VOWEL SIGN U 0x0C42 TELUGU VOWEL SIGN UU 0x0C43 TELUGU VOWEL SIGN VOCALIC R 0x0C44 TELUGU VOWEL SIGN VOCALIC RR 0x0C46 TELUGU VOWEL SIGN E 0x0C47 TELUGU VOWEL SIGN EE 0x0C48 TELUGU VOWEL SIGN AI 0x0C4A TELUGU VOWEL SIGN O 0x0C4B TELUGU VOWEL SIGN OO 0x0C4C TELUGU VOWEL SIGN AU 0x0C4D TELUGU SIGN VIRAMA 0x0C55 TELUGU LENGTH MARK 0x0C56 TELUGU AI LENGTH MARK 0x0C58 TELUGU LETTER TSA 0x0C59 TELUGU LETTER DZA 0x0C5A TELUGU LETTER RRRA 0x0C60 TELUGU LETTER VOCALIC RR 0x0C61 TELUGU LETTER VOCALIC LL 0x0C62 TELUGU VOWEL SIGN VOCALIC L 0x0C63 TELUGU VOWEL SIGN VOCALIC LL 0x0C66 TELUGU DIGIT ZERO 0x0C67 TELUGU DIGIT ONE 0x0C68 TELUGU DIGIT TWO 0x0C69 TELUGU DIGIT THREE 0x0C6A TELUGU DIGIT FOUR 0x0C6B TELUGU DIGIT FIVE 0x0C6C TELUGU DIGIT SIX 0x0C6D TELUGU DIGIT SEVEN 0x0C6E TELUGU DIGIT EIGHT 0x0C6F TELUGU DIGIT NINE 0x0C78 TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR 0x0C79 TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR 0x0C7A TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR 0x0C7B TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR 0x0C7C TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR 0x0C7D TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR 0x0C7E TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR 0x0C7F TELUGU SIGN TUUMU 0x1CDA VEDIC TONE DOUBLE SVARITA 0x200C ZERO WIDTH NON-JOINER 0x200D ZERO WIDTH JOINER 0x25CC DOTTED CIRCLE Lib/gftools/encodings/thai_unique-glyphs.nam000066400000000000000000000061221376445505300215430ustar00rootroot000000000000000x0E01 ก THAI CHARACTER KO KAI 0x0E02 ข THAI CHARACTER KHO KHAI 0x0E03 ฃ THAI CHARACTER KHO KHUAT 0x0E04 ค THAI CHARACTER KHO KHWAI 0x0E05 ฅ THAI CHARACTER KHO KHON 0x0E06 ฆ THAI CHARACTER KHO RAKHANG 0x0E07 ง THAI CHARACTER NGO NGU 0x0E08 จ THAI CHARACTER CHO CHAN 0x0E09 ฉ THAI CHARACTER CHO CHING 0x0E0A ช THAI CHARACTER CHO CHANG 0x0E0B ซ THAI CHARACTER SO SO 0x0E0C ฌ THAI CHARACTER CHO CHOE 0x0E0D ญ THAI CHARACTER YO YING 0x0E0E ฎ THAI CHARACTER DO CHADA 0x0E0F ฏ THAI CHARACTER TO PATAK 0x0E10 ฐ THAI CHARACTER THO THAN 0x0E11 ฑ THAI CHARACTER THO NANGMONTHO 0x0E12 ฒ THAI CHARACTER THO PHUTHAO 0x0E13 ณ THAI CHARACTER NO NEN 0x0E14 ด THAI CHARACTER DO DEK 0x0E15 ต THAI CHARACTER TO TAO 0x0E16 ถ THAI CHARACTER THO THUNG 0x0E17 ท THAI CHARACTER THO THAHAN 0x0E18 ธ THAI CHARACTER THO THONG 0x0E19 น THAI CHARACTER NO NU 0x0E1A บ THAI CHARACTER BO BAIMAI 0x0E1B ป THAI CHARACTER PO PLA 0x0E1C ผ THAI CHARACTER PHO PHUNG 0x0E1D ฝ THAI CHARACTER FO FA 0x0E1E พ THAI CHARACTER PHO PHAN 0x0E1F ฟ THAI CHARACTER FO FAN 0x0E20 ภ THAI CHARACTER PHO SAMPHAO 0x0E21 ม THAI CHARACTER MO MA 0x0E22 ย THAI CHARACTER YO YAK 0x0E23 ร THAI CHARACTER RO RUA 0x0E24 ฤ THAI CHARACTER RU 0x0E25 ล THAI CHARACTER LO LING 0x0E26 ฦ THAI CHARACTER LU 0x0E27 ว THAI CHARACTER WO WAEN 0x0E28 ศ THAI CHARACTER SO SALA 0x0E29 ษ THAI CHARACTER SO RUSI 0x0E2A ส THAI CHARACTER SO SUA 0x0E2B ห THAI CHARACTER HO HIP 0x0E2C ฬ THAI CHARACTER LO CHULA 0x0E2D อ THAI CHARACTER O ANG 0x0E2E ฮ THAI CHARACTER HO NOKHUK 0x0E2F ฯ THAI CHARACTER PAIYANNOI 0x0E30 ะ THAI CHARACTER SARA A 0x0E31 ั THAI CHARACTER MAI HAN-AKAT 0x0E32 า THAI CHARACTER SARA AA 0x0E33 ำ THAI CHARACTER SARA AM 0x0E34 ิ THAI CHARACTER SARA I 0x0E35 ี THAI CHARACTER SARA II 0x0E36 ึ THAI CHARACTER SARA UE 0x0E37 ื THAI CHARACTER SARA UEE 0x0E38 ุ THAI CHARACTER SARA U 0x0E39 ู THAI CHARACTER SARA UU 0x0E3A ฺ THAI CHARACTER PHINTHU 0x0E3F ฿ THAI CURRENCY SYMBOL BAHT 0x0E40 เ THAI CHARACTER SARA E 0x0E41 แ THAI CHARACTER SARA AE 0x0E42 โ THAI CHARACTER SARA O 0x0E43 ใ THAI CHARACTER SARA AI MAIMUAN 0x0E44 ไ THAI CHARACTER SARA AI MAIMALAI 0x0E45 ๅ THAI CHARACTER LAKKHANGYAO 0x0E46 ๆ THAI CHARACTER MAIYAMOK 0x0E47 ็ THAI CHARACTER MAITAIKHU 0x0E48 ่ THAI CHARACTER MAI EK 0x0E49 ้ THAI CHARACTER MAI THO 0x0E4A ๊ THAI CHARACTER MAI TRI 0x0E4B ๋ THAI CHARACTER MAI CHATTAWA 0x0E4C ์ THAI CHARACTER THANTHAKHAT 0x0E4D ํ THAI CHARACTER NIKHAHIT 0x0E4E ๎ THAI CHARACTER YAMAKKAN 0x0E4F ๏ THAI CHARACTER FONGMAN 0x0E50 ๐ THAI DIGIT ZERO 0x0E51 ๑ THAI DIGIT ONE 0x0E52 ๒ THAI DIGIT TWO 0x0E53 ๓ THAI DIGIT THREE 0x0E54 ๔ THAI DIGIT FOUR 0x0E55 ๕ THAI DIGIT FIVE 0x0E56 ๖ THAI DIGIT SIX 0x0E57 ๗ THAI DIGIT SEVEN 0x0E58 ๘ THAI DIGIT EIGHT 0x0E59 ๙ THAI DIGIT NINE 0x0E5A ๚ THAI CHARACTER ANGKHANKHU 0x0E5B ๛ THAI CHARACTER KHOMUT 0x200B ​ ZERO WIDTH SPACE 0x200C ‌ ZERO WIDTH NON-JOINER 0x200D ‍ ZERO WIDTH JOINER 0x25CC ◌ DOTTED CIRCLELib/gftools/encodings/vietnamese_unique-glyphs.nam000066400000000000000000000121131376445505300227530ustar00rootroot000000000000000x0102 Ă LATIN CAPITAL LETTER A WITH BREVE 0x0103 ă LATIN SMALL LETTER A WITH BREVE 0x0110 Đ LATIN CAPITAL LETTER D WITH STROKE 0x0111 đ LATIN SMALL LETTER D WITH STROKE 0x1EA0 Ạ LATIN CAPITAL LETTER A WITH DOT BELOW 0x1EA1 ạ LATIN SMALL LETTER A WITH DOT BELOW 0x1EA2 Ả LATIN CAPITAL LETTER A WITH HOOK ABOVE 0x1EA3 ả LATIN SMALL LETTER A WITH HOOK ABOVE 0x1EA4 Ấ LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE 0x1EA5 ấ LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE 0x1EA6 Ầ LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE 0x1EA7 ầ LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE 0x1EA8 Ẩ LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 0x1EA9 ẩ LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 0x1EAA Ẫ LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE 0x1EAB ẫ LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE 0x1EAC Ậ LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW 0x1EAD ậ LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW 0x1EAE Ắ LATIN CAPITAL LETTER A WITH BREVE AND ACUTE 0x1EAF ắ LATIN SMALL LETTER A WITH BREVE AND ACUTE 0x1EB0 Ằ LATIN CAPITAL LETTER A WITH BREVE AND GRAVE 0x1EB1 ằ LATIN SMALL LETTER A WITH BREVE AND GRAVE 0x1EB2 Ẳ LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE 0x1EB3 ẳ LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE 0x1EB4 Ẵ LATIN CAPITAL LETTER A WITH BREVE AND TILDE 0x1EB5 ẵ LATIN SMALL LETTER A WITH BREVE AND TILDE 0x1EB6 Ặ LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW 0x1EB7 ặ LATIN SMALL LETTER A WITH BREVE AND DOT BELOW 0x1EB8 Ẹ LATIN CAPITAL LETTER E WITH DOT BELOW 0x1EB9 ẹ LATIN SMALL LETTER E WITH DOT BELOW 0x1EBA Ẻ LATIN CAPITAL LETTER E WITH HOOK ABOVE 0x1EBB ẻ LATIN SMALL LETTER E WITH HOOK ABOVE 0x1EBC Ẽ LATIN CAPITAL LETTER E WITH TILDE 0x1EBD ẽ LATIN SMALL LETTER E WITH TILDE 0x1EBE Ế LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE 0x1EBF ế LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE 0x1EC0 Ề LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE 0x1EC1 ề LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE 0x1EC2 Ể LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 0x1EC3 ể LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 0x1EC4 Ễ LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE 0x1EC5 ễ LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE 0x1EC6 Ệ LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW 0x1EC7 ệ LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW 0x1EC8 Ỉ LATIN CAPITAL LETTER I WITH HOOK ABOVE 0x1EC9 ỉ LATIN SMALL LETTER I WITH HOOK ABOVE 0x1ECA Ị LATIN CAPITAL LETTER I WITH DOT BELOW 0x1ECB ị LATIN SMALL LETTER I WITH DOT BELOW 0x1ECC Ọ LATIN CAPITAL LETTER O WITH DOT BELOW 0x1ECD ọ LATIN SMALL LETTER O WITH DOT BELOW 0x1ECE Ỏ LATIN CAPITAL LETTER O WITH HOOK ABOVE 0x1ECF ỏ LATIN SMALL LETTER O WITH HOOK ABOVE 0x1ED0 Ố LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE 0x1ED1 ố LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE 0x1ED2 Ồ LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE 0x1ED3 ồ LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE 0x1ED4 Ổ LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 0x1ED5 ổ LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 0x1ED6 Ỗ LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE 0x1ED7 ỗ LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE 0x1ED8 Ộ LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW 0x1ED9 ộ LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW 0x1EDA Ớ LATIN CAPITAL LETTER O WITH HORN AND ACUTE 0x1EDB ớ LATIN SMALL LETTER O WITH HORN AND ACUTE 0x1EDC Ờ LATIN CAPITAL LETTER O WITH HORN AND GRAVE 0x1EDD ờ LATIN SMALL LETTER O WITH HORN AND GRAVE 0x1EDE Ở LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE 0x1EDF ở LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE 0x1EE0 Ỡ LATIN CAPITAL LETTER O WITH HORN AND TILDE 0x1EE1 ỡ LATIN SMALL LETTER O WITH HORN AND TILDE 0x1EE2 Ợ LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW 0x1EE3 ợ LATIN SMALL LETTER O WITH HORN AND DOT BELOW 0x1EE4 Ụ LATIN CAPITAL LETTER U WITH DOT BELOW 0x1EE5 ụ LATIN SMALL LETTER U WITH DOT BELOW 0x1EE6 Ủ LATIN CAPITAL LETTER U WITH HOOK ABOVE 0x1EE7 ủ LATIN SMALL LETTER U WITH HOOK ABOVE 0x1EE8 Ứ LATIN CAPITAL LETTER U WITH HORN AND ACUTE 0x1EE9 ứ LATIN SMALL LETTER U WITH HORN AND ACUTE 0x1EEA Ừ LATIN CAPITAL LETTER U WITH HORN AND GRAVE 0x1EEB ừ LATIN SMALL LETTER U WITH HORN AND GRAVE 0x1EEC Ử LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE 0x1EED ử LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE 0x1EEE Ữ LATIN CAPITAL LETTER U WITH HORN AND TILDE 0x1EEF ữ LATIN SMALL LETTER U WITH HORN AND TILDE 0x1EF0 Ự LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW 0x1EF1 ự LATIN SMALL LETTER U WITH HORN AND DOT BELOW 0x1EF2 Ỳ LATIN CAPITAL LETTER Y WITH GRAVE 0x1EF3 ỳ LATIN SMALL LETTER Y WITH GRAVE 0x1EF4 Ỵ LATIN CAPITAL LETTER Y WITH DOT BELOW 0x1EF5 ỵ LATIN SMALL LETTER Y WITH DOT BELOW 0x1EF6 Ỷ LATIN CAPITAL LETTER Y WITH HOOK ABOVE 0x1EF7 ỷ LATIN SMALL LETTER Y WITH HOOK ABOVE 0x1EF8 Ỹ LATIN CAPITAL LETTER Y WITH TILDE 0x1EF9 ỹ LATIN SMALL LETTER Y WITH TILDE 0x20AB ₫ DONG SIGNLib/gftools/encodings/wgl-latin.enc000066400000000000000000000112541376445505300176160ustar00rootroot00000000000000# Thanks to Omnibus Type for producing this A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7 I 8 J 9 K 10 L 11 M 12 N 13 O 14 P 15 Q 16 R 17 S 18 T 19 U 20 V 21 W 22 X 23 Y 24 Z 25 a 26 b 27 c 28 d 29 e 30 f 31 g 32 h 33 dotlessi 34 i 35 j 36 k 37 l 38 m 39 n 40 o 41 p 42 q 43 r 44 s 45 t 46 u 47 v 48 w 49 x 50 y 51 z 52 space 53 uni00A0 54 longs 55 germandbls 56 AE 57 Oslash 58 ae 59 oe 60 uniFB01 61 uniFB02 62 ij 63 Thorn 64 thorn 65 at 66 ampersand 67 ring 68 acute 69 grave 70 circumflex 71 caron 72 tilde 73 dotaccent 74 macron 75 uni02C9 76 dieresis 77 hungarumlaut 78 breve 79 cedilla 80 ogonek 81 Aacute 82 Acircumflex 83 Adieresis 84 Agrave 85 Atilde 86 Aring 87 Aringacute 88 Amacron 89 Abreve 90 Aogonek 91 AEacute 92 Cacute 93 Ccircumflex 94 Cdotaccent 95 Ccaron 96 Ccedilla 97 Eth 98 Dcroat 99 Dcaron 100 Eacute 101 Edieresis 102 Egrave 103 Ecircumflex 104 Emacron 105 Ebreve 106 Edotaccent 107 Eogonek 108 Ecaron 109 Iacute 110 Icircumflex 111 Igrave 112 Idieresis 113 Itilde 114 Imacron 115 Ibreve 116 Iogonek 117 Idotaccent 118 IJ 119 Jcircumflex 120 uni0136 121 Lacute 122 uni013B 123 Lcaron 124 Ldot 125 Lslash 126 Gcircumflex 127 Gbreve 128 Gdotaccent 129 uni0122 130 Hcircumflex 131 hcircumflex 132 Hbar 133 hbar 134 Ntilde 135 Nacute 136 uni0145 137 Ncaron 138 Eng 139 Ograve 140 Otilde 141 Oacute 142 Ocircumflex 143 Odieresis 144 Omacron 145 Obreve 146 Ohungarumlaut 147 Oslashacute 148 OE 149 Racute 150 uni0156 151 Rcaron 152 Sacute 153 Scircumflex 154 Scedilla 155 Scaron 156 uni0162 157 Tcaron 158 Tbar 159 Uacute 160 Udieresis 161 Ugrave 162 Ucircumflex 163 Utilde 164 Umacron 165 Ubreve 166 Uring 167 Uhungarumlaut 168 Uogonek 169 Wcircumflex 170 Wgrave 171 Wacute 172 Wdieresis 173 Yacute 174 Ycircumflex 175 Ydieresis 176 Ygrave 177 Zacute 178 Zdotaccent 179 Zcaron 180 aacute 181 acircumflex 182 adieresis 183 agrave 184 atilde 185 aring 186 amacron 187 abreve 188 aringacute 189 aogonek 190 aeacute 191 cacute 192 ccircumflex 193 cdotaccent 194 ccaron 195 ccedilla 196 dcaron 197 dcroat 198 eacute 199 edieresis 200 egrave 201 ecircumflex 202 emacron 203 ebreve 204 edotaccent 205 eogonek 206 ecaron 207 gcircumflex 208 gbreve 209 gdotaccent 210 uni0123 211 iacute 212 icircumflex 213 itilde 214 imacron 215 ibreve 216 iogonek 217 igrave 218 idieresis 219 jcircumflex 220 uni0137 221 kgreenlandic 222 lacute 223 uni013C 224 lcaron 225 ldot 226 lslash 227 ntilde 228 nacute 229 uni0146 230 ncaron 231 napostrophe 232 eng 233 oacute 234 ocircumflex 235 odieresis 236 ograve 237 otilde 238 omacron 239 obreve 240 ohungarumlaut 241 uacute 242 oslash 243 oslashacute 244 udieresis 245 ugrave 246 ucircumflex 247 utilde 248 umacron 249 ubreve 250 uring 251 uhungarumlaut 252 uogonek 253 mu 254 racute 255 uni0157 256 rcaron 257 sacute 258 scircumflex 259 scedilla 260 scaron 261 uni0163 262 tcaron 263 tbar 264 wcircumflex 265 yacute 266 eth 267 ydieresis 268 wgrave 269 wacute 270 wdieresis 271 ycircumflex 272 zacute 273 ygrave 274 zdotaccent 275 zcaron 276 zero 277 one 278 two 279 three 280 four 281 five 282 six 283 seven 284 eight 285 nine 286 fraction 287 onesuperior 288 twosuperior 289 threesuperior 290 onequarter 291 onehalf 292 threequarters 293 oneeight 294 threeeights 295 fiveeights 296 seveneights 297 ordfeminine 298 ordmasculine 299 degree 300 asterisk 301 uni207f 302 trademark 303 copyright 304 registered 305 period 306 periodcentered 307 ellipsis 308 comma 309 colon 310 semicolon 311 quotesingle 312 quotedbl 313 minute 314 second 315 quoteleft 316 quoteright 317 quotedblleft 318 quotedblright 319 quotedblbase 320 quotesinglbase 321 quotereversed 322 bullet 323 uni2219 324 hyphen 325 uni00AD 326 endash 327 emdash 328 afii00208 329 logicalnot 330 underscore 331 underscoredbl 332 uni203E 333 bar 334 brokenbar 335 dagger 336 daggerdbl 337 parenleft 338 parenright 339 braceleft 340 braceright 341 bracketleft 342 bracketright 343 exclamdown 344 exclam 345 exclamdbl 346 questiondown 347 question 348 backslash 349 slash 350 guilsinglleft 351 guilsinglright 352 guillemotleft 353 guillemotright 354 numbersign 355 plus 356 minus 357 equal 358 equivalence 359 notequal 360 approxequal 361 plusminus 362 divide 363 multiply 364 less 365 greater 366 lessequal 367 greaterequal 368 percent 369 perthousand 370 asciicircum 371 Omega 372 asciitilde 373 dollar 374 currency 375 florin 376 cent 377 sterling 378 yen 379 paragraph 380 franc 381 lira 382 peseta 383 Euro 384 section 385 Delta 386 estimated 387 partialdiff 388 product 389 summation 390 uni2215 391 radical 392 infinity 393 orthogonal 394 intersection 395 partialDiff 396 house 397 revlogicalnot 398 integral 399 integralbt 400 integraltp 401 afii61248 402 afii61289 403 afii61352 404 arrowleft 405 arrowup 406 arrowright 407 arrowdown 408 arrowboth 409 arrowupdn 410 arrowupdnbse 411 Lib/gftools/fix.py000066400000000000000000000470131376445505300144220ustar00rootroot00000000000000""" Functions to fix fonts so they conform to the Google Fonts specification: https://github.com/googlefonts/gf-docs/tree/master/Spec """ from fontTools.ttLib import TTFont, newTable from fontTools.ttLib.tables import ttProgram from fontTools.ttLib.tables._f_v_a_r import NamedInstance from gftools.util.google_fonts import _KNOWN_WEIGHTS from gftools.utils import download_family_from_Google_Fonts, Google_Fonts_has_family from copy import deepcopy import logging log = logging.getLogger(__name__) __all__ = [ "remove_tables", "add_dummy_dsig", "fix_unhinted_font", "fix_hinted_font", "fix_fs_type", "fix_weight_class", "fix_fs_selection", "fix_mac_style", "font_stylename", "font_familyname", "fix_fvar_instances", "update_nametable", "fix_nametable", "inherit_vertical_metrics", "fix_vertical_metrics", "fix_font", "fix_family", ] # The _KNOWN_WEIGHT_VALUES constant is used internally by the GF Engineering # team so we cannot update ourselves. TODO (Marc F) unify this one day WEIGHT_NAMES = _KNOWN_WEIGHTS del WEIGHT_NAMES[""] WEIGHT_NAMES["Hairline"] = 1 WEIGHT_NAMES["ExtraBlack"] = 1000 WEIGHT_VALUES = {v: k for k, v in WEIGHT_NAMES.items()} UNWANTED_TABLES = frozenset( [ "FFTM", "TTFA", "TSI0", "TSI1", "TSI2", "TSI3", "TSI5", "prop", "MVAR", ] ) def remove_tables(ttFont, tables=None): """Remove unwanted tables from a font. The unwanted tables must belong to the UNWANTED_TABLES set. Args: ttFont: a TTFont instance tables: an iterable containing tables remove """ tables_to_remove = UNWANTED_TABLES if not tables else frozenset(tables) font_tables = frozenset(ttFont.keys()) tables_not_in_font = tables_to_remove - font_tables if tables_not_in_font: log.warning( f"Cannot remove tables '{list(tables_not_in_font)}' since they are " f"not in the font." ) required_tables = tables_to_remove - UNWANTED_TABLES if required_tables: log.warning( f"Cannot remove tables '{list(required_tables)}' since they are required" ) tables_to_remove = UNWANTED_TABLES & font_tables & tables_to_remove if not tables_to_remove: return log.info(f"Removing tables '{list(tables_to_remove)}' from font") for tbl in tables_to_remove: del ttFont[tbl] def add_dummy_dsig(ttFont): """Add a dummy dsig table to a font. Older versions of MS Word require this table. Args: ttFont: a TTFont instance """ newDSIG = newTable("DSIG") newDSIG.ulVersion = 1 newDSIG.usFlag = 0 newDSIG.usNumSigs = 0 newDSIG.signatureRecords = [] ttFont.tables["DSIG"] = newDSIG def fix_unhinted_font(ttFont): """Improve the appearance of an unhinted font on Win platforms by: - Add a new GASP table with a newtable that has a single range which is set to smooth. - Add a new prep table which is optimized for unhinted fonts. Args: ttFont: a TTFont instance """ gasp = newTable("gasp") # Set GASP so all sizes are smooth gasp.gaspRange = {0xFFFF: 15} program = ttProgram.Program() assembly = ["PUSHW[]", "511", "SCANCTRL[]", "PUSHB[]", "4", "SCANTYPE[]"] program.fromAssembly(assembly) prep = newTable("prep") prep.program = program ttFont["gasp"] = gasp ttFont["prep"] = prep def fix_hinted_font(ttFont): """Improve the appearance of a hinted font on Win platforms by enabling the head table's flag 3. Args: ttFont: a TTFont instance """ ttFont["head"].flags |= 1 << 3 def fix_fs_type(ttFont): """Set the OS/2 table's fsType flag to 0 (Installable embedding). Args: ttFont: a TTFont instance """ ttFont["OS/2"].fsType = 0 def fix_weight_class(ttFont): """Set the OS/2 table's usWeightClass so it conforms to GF's supported styles table: https://github.com/googlefonts/gf-docs/tree/master/Spec#supported-styles Args: ttFont: a TTFont instance """ stylename = font_stylename(ttFont) tokens = stylename.split() # Order WEIGHT_NAMES so longest names are first for style in sorted(WEIGHT_NAMES, key=lambda k: len(k), reverse=True): if style in tokens: ttFont["OS/2"].usWeightClass = WEIGHT_NAMES[style] return if "Italic" in tokens: ttFont["OS/2"].usWeightClass = 400 return raise ValueError( f"Cannot determine usWeightClass because font style, '{stylename}' " f"doesn't have a weight token which is in our known " f"weights, '{WEIGHT_NAMES.keys()}'" ) def fix_fs_selection(ttFont): """Fix the OS/2 table's fsSelection so it conforms to GF's supported styles table: https://github.com/googlefonts/gf-docs/tree/master/Spec#supported-styles Args: ttFont: a TTFont instance """ stylename = font_stylename(ttFont) tokens = set(stylename.split()) fs_selection = ttFont["OS/2"].fsSelection # turn off all bits except for bit 7 (USE_TYPO_METRICS) fs_selection &= 1 << 7 if "Italic" in tokens: fs_selection |= 1 << 0 if "Bold" in tokens: fs_selection |= 1 << 5 # enable Regular bit for all other styles if not tokens & set(["Bold", "Italic"]): fs_selection |= 1 << 6 ttFont["OS/2"].fsSelection = fs_selection def fix_mac_style(ttFont): """Fix the head table's macStyle so it conforms to GF's supported styles table: https://github.com/googlefonts/gf-docs/tree/master/Spec#supported-styles Args: ttFont: a TTFont instance """ stylename = font_stylename(ttFont) tokens = set(stylename.split()) mac_style = 0 if "Italic" in tokens: mac_style |= 1 << 1 if "Bold" in tokens: mac_style |= 1 << 0 ttFont["head"].macStyle = mac_style def font_stylename(ttFont): """Get a font's stylename using the name table. Since our fonts use the RIBBI naming model, use the Typographic SubFamily Name (NAmeID 17) if it exists, otherwise use the SubFamily Name (NameID 2). Args: ttFont: a TTFont instance """ return get_name_record(ttFont, 17, fallbackID=2) def font_familyname(ttFont): """Get a font's familyname using the name table. since our fonts use the RIBBI naming model, use the Typographic Family Name (NameID 16) if it exists, otherwise use the Family Name (Name ID 1). Args: ttFont: a TTFont instance """ return get_name_record(ttFont, 16, fallbackID=1) def get_name_record(ttFont, nameID, fallbackID=None, platform=(3, 1, 0x409)): """Return a name table record which has the specified nameID. Args: ttFont: a TTFont instance nameID: nameID of name record to return, fallbackID: if nameID doesn't exist, use this nameID instead platform: Platform of name record. Default is Win US English Returns: str """ name = ttFont["name"] record = name.getName(nameID, 3, 1, 0x409) if not record and fallbackID: record = name.getName(fallbackID, 3, 1, 0x409) if not record: raise ValueError(f"Cannot find record with nameID {nameID}") return record.toUnicode() def fix_fvar_instances(ttFont): """Replace a variable font's fvar instances with a set of new instances that conform to the Google Fonts instance spec: https://github.com/googlefonts/gf-docs/tree/master/Spec#fvar-instances Args: ttFont: a TTFont instance """ if "fvar" not in ttFont: raise ValueError("ttFont is not a variable font") fvar = ttFont["fvar"] default_axis_vals = {a.axisTag: a.defaultValue for a in fvar.axes} stylename = font_stylename(ttFont) is_italic = "Italic" in stylename is_roman_and_italic = any(a for a in ("slnt", "ital") if a in default_axis_vals) wght_axis = next((a for a in fvar.axes if a.axisTag == "wght"), None) wght_min = int(wght_axis.minValue) wght_max = int(wght_axis.maxValue) nametable = ttFont["name"] def gen_instances(is_italic): results = [] for wght_val in range(wght_min, wght_max + 100, 100): name = ( WEIGHT_VALUES[wght_val] if not is_italic else f"{WEIGHT_VALUES[wght_val]} Italic".strip() ) name = name.replace("Regular Italic", "Italic") coordinates = default_axis_vals coordinates["wght"] = wght_val inst = NamedInstance() inst.subfamilyNameID = nametable.addName(name) inst.coordinates = coordinates results.append(inst) return results instances = [] if is_roman_and_italic: for bool_ in (False, True): instances += gen_instances(is_italic=bool_) elif is_italic: instances += gen_instances(is_italic=True) else: instances += gen_instances(is_italic=False) fvar.instances = instances def update_nametable(ttFont, family_name=None, style_name=None): """Update a static font's name table. The updated name table will conform to the Google Fonts support styles table: https://github.com/googlefonts/gf-docs/tree/master/Spec#supported-styles If a style_name includes tokens other than wght and ital, these tokens will be appended to the family name e.g Input: family_name="MyFont" style_name="SemiCondensed SemiBold" Output: familyName (nameID 1) = "MyFont SemiCondensed SemiBold subFamilyName (nameID 2) = "Regular" typo familyName (nameID 16) = "MyFont SemiCondensed" typo subFamilyName (nameID 17) = "SemiBold" Google Fonts has used this model for several years e.g https://fonts.google.com/?query=cabin Args: ttFont: family_name: New family name style_name: New style name """ if "fvar" in ttFont: raise ValueError("Cannot update the nametable for a variable font") nametable = ttFont["name"] # Remove nametable records which are not Win US English # TODO this is too greedy. We should preserve multilingual # names in the future. Please note, this has always been an issue. platforms = set() for rec in nametable.names: platforms.add((rec.platformID, rec.platEncID, rec.langID)) platforms_to_remove = platforms ^ set([(3, 1, 0x409)]) if platforms_to_remove: log.warning( f"Removing records which are not Win US English, {list(platforms_to_remove)}" ) for platformID, platEncID, langID in platforms_to_remove: nametable.removeNames( platformID=platformID, platEncID=platEncID, langID=langID ) # Remove any name records which contain linebreaks contains_linebreaks = [] for r in nametable.names: for char in ("\n", "\r"): if char in r.toUnicode(): contains_linebreaks.append(r.nameID) for nameID in contains_linebreaks: nametable.removeNames(nameID) if not family_name: family_name = font_familyname(ttFont) if not style_name: style_name = font_stylename(ttFont) is_ribbi = style_name in ("Regular", "Bold", "Italic", "Bold Italic") nameids = {} if is_ribbi: nameids[1] = family_name nameids[2] = style_name else: tokens = style_name.split() family_name_suffix = " ".join([t for t in tokens if t not in ["Italic"]]) nameids[1] = f"{family_name} {family_name_suffix}".strip() nameids[2] = "Regular" if "Italic" not in tokens else "Italic" typo_family_suffix = " ".join( t for t in tokens if t not in list(WEIGHT_NAMES) + ["Italic"] ) nameids[16] = f"{family_name} {typo_family_suffix}".strip() typo_style = " ".join(t for t in tokens if t in list(WEIGHT_NAMES) + ["Italic"]) nameids[17] = typo_style family_name = nameids.get(16) or nameids.get(1) style_name = nameids.get(17) or nameids.get(2) # create NameIDs 3, 4, 6 nameids[4] = f"{family_name} {style_name}" nameids[6] = f"{family_name.replace(' ', '')}-{style_name.replace(' ', '')}" nameids[3] = _unique_name(ttFont, nameids) # Pass through all records and replace occurences of the old family name # with the new family name current_family_name = font_familyname(ttFont) for record in nametable.names: string = record.toUnicode() if current_family_name in string: nametable.setName( string.replace(current_family_name, family_name), record.nameID, record.platformID, record.platEncID, record.langID, ) # Remove previous typographic names for nameID in (16, 17): nametable.removeNames(nameID=nameID) # Update nametable with new names for nameID, string in nameids.items(): nametable.setName(string, nameID, 3, 1, 0x409) def _unique_name(ttFont, nameids): font_version = _font_version(ttFont) vendor = ttFont["OS/2"].achVendID.strip() ps_name = nameids[6] return f"{font_version};{vendor};{ps_name}" def _font_version(font, platEncLang=(3, 1, 0x409)): nameRecord = font["name"].getName(5, *platEncLang) if nameRecord is None: return f'{font["head"].fontRevision:.3f}' # "Version 1.101; ttfautohint (v1.8.1.43-b0c9)" --> "1.101" # Also works fine with inputs "Version 1.101" or "1.101" etc versionNumber = nameRecord.toUnicode().split(";")[0] return versionNumber.lstrip("Version ").strip() def fix_nametable(ttFont): """Fix a static font's name table so it conforms to the Google Fonts supported styles table: https://github.com/googlefonts/gf-docs/tree/master/Spec#supported-styles Args: ttFont: a TTFont instance """ if "fvar" in ttFont: # TODO, regen the nametable so it reflects the default fvar axes # coordinates. Implement once https://github.com/fonttools/fonttools/pull/2078 # is merged. return family_name = font_familyname(ttFont) style_name = font_stylename(ttFont) update_nametable(ttFont, family_name, style_name) def _validate_family(ttFonts): family_is_vf(ttFonts) family_names = set(font_familyname(f) for f in ttFonts) if len(family_names) != 1: raise ValueError(f"Multiple families found {family_names}") return True def inherit_vertical_metrics(ttFonts, family_name=None): """Inherit the vertical metrics from the same family which is hosted on Google Fonts. Args: ttFonts: a list of TTFont instances which belong to a family family_name: Optional string which allows users to specify a different family to inherit from e.g "Maven Pro". """ family_name = font_familyname(ttFonts[0]) if not family_name else family_name gf_fonts = list(map(TTFont, download_family_from_Google_Fonts(family_name))) gf_fonts = {font_stylename(f): f for f in gf_fonts} # TODO (Marc F) use Regular font instead. If VF use font which has Regular # instance gf_fallback = list(gf_fonts.values())[0] fonts = {font_stylename(f): f for f in ttFonts} for style, font in fonts.items(): if style in gf_fonts: src_font = gf_fonts[style] else: src_font = gf_fallback copy_vertical_metrics(src_font, font) if typo_metrics_enabled(src_font): font["OS/2"].fsSelection |= 1 << 7 def fix_vertical_metrics(ttFonts): """Fix a family's vertical metrics based on: https://github.com/googlefonts/gf-docs/tree/master/VerticalMetrics Args: ttFonts: a list of TTFont instances which belong to a family """ src_font = next((f for f in ttFonts if font_stylename(f) == "Regular"), ttFonts[0]) # TODO (Marc F) CJK Fonts? # If OS/2.fsSelection bit 7 isn't enabled, enable it and set the typo metrics # to the previous win metrics. if not typo_metrics_enabled(src_font): src_font["OS/2"].fsSelection |= 1 << 7 # enable USE_TYPO_METRICS src_font["OS/2"].sTypoAscender = src_font["OS/2"].usWinAscent src_font["OS/2"].sTypoDescender = -src_font["OS/2"].usWinDescent src_font["OS/2"].sTypoLineGap = 0 # Set the hhea metrics so they are the same as the typo src_font["hhea"].ascent = src_font["OS/2"].sTypoAscender src_font["hhea"].descent = src_font["OS/2"].sTypoDescender src_font["hhea"].lineGap = src_font["OS/2"].sTypoLineGap # Set the win Ascent and win Descent to match the family's bounding box win_desc, win_asc = family_bounding_box(ttFonts) src_font["OS/2"].usWinAscent = win_asc src_font["OS/2"].usWinDescent = abs(win_desc) # Set all fonts vertical metrics so they match the src_font for ttFont in ttFonts: ttFont["OS/2"].fsSelection |= 1 << 7 copy_vertical_metrics(src_font, ttFont) def copy_vertical_metrics(src_font, dst_font): for table, key in [ ("OS/2", "usWinAscent"), ("OS/2", "usWinDescent"), ("OS/2", "sTypoAscender"), ("OS/2", "sTypoDescender"), ("OS/2", "sTypoLineGap"), ("hhea", "ascent"), ("hhea", "descent"), ("hhea", "lineGap"), ]: val = getattr(src_font[table], key) setattr(dst_font[table], key, val) def family_bounding_box(ttFonts): y_min = min(f["head"].yMin for f in ttFonts) y_max = max(f["head"].yMax for f in ttFonts) return y_min, y_max def typo_metrics_enabled(ttFont): return True if ttFont["OS/2"].fsSelection & (1 << 7) else False def family_is_vf(ttFonts): has_fvar = ["fvar" in ttFont for ttFont in ttFonts] if any(has_fvar): if all(has_fvar): return True raise ValueError("Families cannot contain both static and variable fonts") return False def fix_italic_angle(ttFont): style_name = font_stylename(ttFont) if "Italic" not in style_name and ttFont["post"].italicAngle != 0: ttFont["post"].italicAngle = 0 # TODO (Marc F) implement for italic fonts def fix_font(font, include_source_fixes=False): font["OS/2"].version = 4 if "DSIG" not in font: add_dummy_dsig(font) if "fpgm" in font: fix_hinted_font(font) else: fix_unhinted_font(font) if "fvar" in font: remove_tables(font, ["MVAR"]) if include_source_fixes: log.warning( "include-source-fixes is enabled. Please consider fixing the " "source files instead." ) remove_tables(font) fix_nametable(font) fix_fs_type(font) fix_fs_selection(font) fix_mac_style(font) fix_weight_class(font) fix_italic_angle(font) if "fvar" in font: fix_fvar_instances(font) # TODO (Marc F) add gen-stat once merged # https://github.com/googlefonts/gftools/pull/263 def fix_family(fonts, include_source_fixes=False): """Fix all fonts in a family""" _validate_family(fonts) family_name = font_familyname(fonts[0]) for font in fonts: fix_font(font, include_source_fixes=include_source_fixes) if include_source_fixes: try: if Google_Fonts_has_family(family_name): inherit_vertical_metrics(fonts) else: log.warning( f"{family_name} is not on Google Fonts. Skipping " "regression fixes" ) except FileNotFoundError: log.warning( f"Google Fonts api key not found so we can't regression " "fix fonts. See Repo readme to add keys." ) fix_vertical_metrics(fonts) Lib/gftools/fonts_public.proto000066400000000000000000000021661376445505300170360ustar00rootroot00000000000000syntax = "proto2"; /** * Open Source'd font metadata proto formats. */ package google.fonts; option java_package = "com.google.fonts.proto"; option java_outer_classname = "FontsPublic"; message FamilyProto { required string name = 1; required string designer = 2; required string license = 3; required string category = 4; required string date_added = 5; repeated FontProto fonts = 6; repeated string aliases = 7; repeated string subsets = 8; optional string ttf_autohint_args = 9; repeated AxisSegmentProto axes = 10; map registry_default_overrides = 11; optional SourceProto source = 12; }; message FontProto { required string name = 1; required string style = 2; required int32 weight = 3; required string filename = 4; required string post_script_name = 5; required string full_name = 6; optional string copyright = 7; }; message AxisSegmentProto { optional string tag = 1; optional float min_value = 2; reserved 3; reserved "default_value"; optional float max_value = 4; }; message SourceProto { optional string repository_url = 1; optional string commit = 2; } Lib/gftools/fonts_public_pb2.py000066400000000000000000000402171376445505300170650ustar00rootroot00000000000000# Generated by the protocol buffer compiler. DO NOT EDIT! # source: fonts_public.proto import sys _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor.FileDescriptor( name='fonts_public.proto', package='google.fonts', syntax='proto2', serialized_options=_b('\n\026com.google.fonts.protoB\013FontsPublic'), serialized_pb=_b('\n\x12\x66onts_public.proto\x12\x0cgoogle.fonts\"\xc0\x03\n\x0b\x46\x61milyProto\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\x10\n\x08\x64\x65signer\x18\x02 \x02(\t\x12\x0f\n\x07license\x18\x03 \x02(\t\x12\x10\n\x08\x63\x61tegory\x18\x04 \x02(\t\x12\x12\n\ndate_added\x18\x05 \x02(\t\x12&\n\x05\x66onts\x18\x06 \x03(\x0b\x32\x17.google.fonts.FontProto\x12\x0f\n\x07\x61liases\x18\x07 \x03(\t\x12\x0f\n\x07subsets\x18\x08 \x03(\t\x12\x19\n\x11ttf_autohint_args\x18\t \x01(\t\x12,\n\x04\x61xes\x18\n \x03(\x0b\x32\x1e.google.fonts.AxisSegmentProto\x12[\n\x1aregistry_default_overrides\x18\x0b \x03(\x0b\x32\x37.google.fonts.FamilyProto.RegistryDefaultOverridesEntry\x12)\n\x06source\x18\x0c \x01(\x0b\x32\x19.google.fonts.SourceProto\x1a?\n\x1dRegistryDefaultOverridesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\"\x8a\x01\n\tFontProto\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\r\n\x05style\x18\x02 \x02(\t\x12\x0e\n\x06weight\x18\x03 \x02(\x05\x12\x10\n\x08\x66ilename\x18\x04 \x02(\t\x12\x18\n\x10post_script_name\x18\x05 \x02(\t\x12\x11\n\tfull_name\x18\x06 \x02(\t\x12\x11\n\tcopyright\x18\x07 \x01(\t\"Z\n\x10\x41xisSegmentProto\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x11\n\tmin_value\x18\x02 \x01(\x02\x12\x11\n\tmax_value\x18\x04 \x01(\x02J\x04\x08\x03\x10\x04R\rdefault_value\"5\n\x0bSourceProto\x12\x16\n\x0erepository_url\x18\x01 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x02 \x01(\tB%\n\x16\x63om.google.fonts.protoB\x0b\x46ontsPublic') ) _FAMILYPROTO_REGISTRYDEFAULTOVERRIDESENTRY = _descriptor.Descriptor( name='RegistryDefaultOverridesEntry', full_name='google.fonts.FamilyProto.RegistryDefaultOverridesEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( name='key', full_name='google.fonts.FamilyProto.RegistryDefaultOverridesEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='value', full_name='google.fonts.FamilyProto.RegistryDefaultOverridesEntry.value', index=1, number=2, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[], enum_types=[ ], serialized_options=_b('8\001'), is_extendable=False, syntax='proto2', extension_ranges=[], oneofs=[ ], serialized_start=422, serialized_end=485, ) _FAMILYPROTO = _descriptor.Descriptor( name='FamilyProto', full_name='google.fonts.FamilyProto', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( name='name', full_name='google.fonts.FamilyProto.name', index=0, number=1, type=9, cpp_type=9, label=2, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='designer', full_name='google.fonts.FamilyProto.designer', index=1, number=2, type=9, cpp_type=9, label=2, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='license', full_name='google.fonts.FamilyProto.license', index=2, number=3, type=9, cpp_type=9, label=2, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='category', full_name='google.fonts.FamilyProto.category', index=3, number=4, type=9, cpp_type=9, label=2, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='date_added', full_name='google.fonts.FamilyProto.date_added', index=4, number=5, type=9, cpp_type=9, label=2, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='fonts', full_name='google.fonts.FamilyProto.fonts', index=5, number=6, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='aliases', full_name='google.fonts.FamilyProto.aliases', index=6, number=7, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='subsets', full_name='google.fonts.FamilyProto.subsets', index=7, number=8, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ttf_autohint_args', full_name='google.fonts.FamilyProto.ttf_autohint_args', index=8, number=9, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='axes', full_name='google.fonts.FamilyProto.axes', index=9, number=10, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='registry_default_overrides', full_name='google.fonts.FamilyProto.registry_default_overrides', index=10, number=11, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='source', full_name='google.fonts.FamilyProto.source', index=11, number=12, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[_FAMILYPROTO_REGISTRYDEFAULTOVERRIDESENTRY, ], enum_types=[ ], serialized_options=None, is_extendable=False, syntax='proto2', extension_ranges=[], oneofs=[ ], serialized_start=37, serialized_end=485, ) _FONTPROTO = _descriptor.Descriptor( name='FontProto', full_name='google.fonts.FontProto', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( name='name', full_name='google.fonts.FontProto.name', index=0, number=1, type=9, cpp_type=9, label=2, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='style', full_name='google.fonts.FontProto.style', index=1, number=2, type=9, cpp_type=9, label=2, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='weight', full_name='google.fonts.FontProto.weight', index=2, number=3, type=5, cpp_type=1, label=2, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='filename', full_name='google.fonts.FontProto.filename', index=3, number=4, type=9, cpp_type=9, label=2, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='post_script_name', full_name='google.fonts.FontProto.post_script_name', index=4, number=5, type=9, cpp_type=9, label=2, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='full_name', full_name='google.fonts.FontProto.full_name', index=5, number=6, type=9, cpp_type=9, label=2, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='copyright', full_name='google.fonts.FontProto.copyright', index=6, number=7, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[], enum_types=[ ], serialized_options=None, is_extendable=False, syntax='proto2', extension_ranges=[], oneofs=[ ], serialized_start=488, serialized_end=626, ) _AXISSEGMENTPROTO = _descriptor.Descriptor( name='AxisSegmentProto', full_name='google.fonts.AxisSegmentProto', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( name='tag', full_name='google.fonts.AxisSegmentProto.tag', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='min_value', full_name='google.fonts.AxisSegmentProto.min_value', index=1, number=2, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='max_value', full_name='google.fonts.AxisSegmentProto.max_value', index=2, number=4, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[], enum_types=[ ], serialized_options=None, is_extendable=False, syntax='proto2', extension_ranges=[], oneofs=[ ], serialized_start=628, serialized_end=718, ) _SOURCEPROTO = _descriptor.Descriptor( name='SourceProto', full_name='google.fonts.SourceProto', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( name='repository_url', full_name='google.fonts.SourceProto.repository_url', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='commit', full_name='google.fonts.SourceProto.commit', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[], enum_types=[ ], serialized_options=None, is_extendable=False, syntax='proto2', extension_ranges=[], oneofs=[ ], serialized_start=720, serialized_end=773, ) _FAMILYPROTO_REGISTRYDEFAULTOVERRIDESENTRY.containing_type = _FAMILYPROTO _FAMILYPROTO.fields_by_name['fonts'].message_type = _FONTPROTO _FAMILYPROTO.fields_by_name['axes'].message_type = _AXISSEGMENTPROTO _FAMILYPROTO.fields_by_name['registry_default_overrides'].message_type = _FAMILYPROTO_REGISTRYDEFAULTOVERRIDESENTRY _FAMILYPROTO.fields_by_name['source'].message_type = _SOURCEPROTO DESCRIPTOR.message_types_by_name['FamilyProto'] = _FAMILYPROTO DESCRIPTOR.message_types_by_name['FontProto'] = _FONTPROTO DESCRIPTOR.message_types_by_name['AxisSegmentProto'] = _AXISSEGMENTPROTO DESCRIPTOR.message_types_by_name['SourceProto'] = _SOURCEPROTO _sym_db.RegisterFileDescriptor(DESCRIPTOR) FamilyProto = _reflection.GeneratedProtocolMessageType('FamilyProto', (_message.Message,), dict( RegistryDefaultOverridesEntry = _reflection.GeneratedProtocolMessageType('RegistryDefaultOverridesEntry', (_message.Message,), dict( DESCRIPTOR = _FAMILYPROTO_REGISTRYDEFAULTOVERRIDESENTRY, __module__ = 'fonts_public_pb2' # @@protoc_insertion_point(class_scope:google.fonts.FamilyProto.RegistryDefaultOverridesEntry) )) , DESCRIPTOR = _FAMILYPROTO, __module__ = 'fonts_public_pb2' # @@protoc_insertion_point(class_scope:google.fonts.FamilyProto) )) _sym_db.RegisterMessage(FamilyProto) _sym_db.RegisterMessage(FamilyProto.RegistryDefaultOverridesEntry) FontProto = _reflection.GeneratedProtocolMessageType('FontProto', (_message.Message,), dict( DESCRIPTOR = _FONTPROTO, __module__ = 'fonts_public_pb2' # @@protoc_insertion_point(class_scope:google.fonts.FontProto) )) _sym_db.RegisterMessage(FontProto) AxisSegmentProto = _reflection.GeneratedProtocolMessageType('AxisSegmentProto', (_message.Message,), dict( DESCRIPTOR = _AXISSEGMENTPROTO, __module__ = 'fonts_public_pb2' # @@protoc_insertion_point(class_scope:google.fonts.AxisSegmentProto) )) _sym_db.RegisterMessage(AxisSegmentProto) SourceProto = _reflection.GeneratedProtocolMessageType('SourceProto', (_message.Message,), dict( DESCRIPTOR = _SOURCEPROTO, __module__ = 'fonts_public_pb2' # @@protoc_insertion_point(class_scope:google.fonts.SourceProto) )) _sym_db.RegisterMessage(SourceProto) DESCRIPTOR._options = None _FAMILYPROTO_REGISTRYDEFAULTOVERRIDESENTRY._options = None # @@protoc_insertion_point(module_scope) Lib/gftools/packager.py000066400000000000000000002423241376445505300154130ustar00rootroot00000000000000""" This module implements gftools/bin/gftools-packager.py Tool to take files from a font family project upstream git repository to the google/fonts GitHub repository structure, taking care of all the details. Documentation at gftools/docs/gftools-packager/README.md """ import sys import os from pathlib import PurePath import shutil from tempfile import TemporaryDirectory, mkstemp import subprocess import requests import pprint import typing from collections import OrderedDict import traceback from io import StringIO, BytesIO from contextlib import contextmanager import urllib.parse import pygit2 # type: ignore from strictyaml import ( # type: ignore Map, MapPattern, Enum, Str, Any, EmptyNone, EmptyDict, Optional, dirty_load, as_document, YAMLValidationError, YAML ) import functools from hashlib import sha1 from fontTools.ttLib import TTFont # type: ignore # ignore type because mypy error: Module 'google.protobuf' has no # attribute 'text_format' from google.protobuf import text_format # type: ignore # Getting many mypy errors here like: Lib/gftools/fonts_public_pb2.py:253: # error: Unexpected keyword argument "serialized_options" for "Descriptor" # The "type: ignore" annotation didn't help. from typing import TYPE_CHECKING if TYPE_CHECKING: fonts_pb2: typing.Any else: import gftools.fonts_public_pb2 as fonts_pb2 CATEGORIES = ['DISPLAY', 'SERIF', 'SANS_SERIF', 'HANDWRITING', 'MONOSPACE'] from pkg_resources import resource_filename with open(resource_filename('gftools', 'template.upstream.yaml')) as f: upstream_yaml_template = f.read() # string.format fails if we use other instances of {variables} # without adding them to the call to format (KeyError). upstream_yaml_template = upstream_yaml_template.replace('{CATEGORIES}', ', '.join(CATEGORIES)) # GITHUB_REPO_HTTPS_URL = 'https://github.com/{gh_repo_name_with_owner}.git'.format GITHUB_REPO_SSH_URL = 'git@github.com:{repo_name_with_owner}.git'.format GITHUB_GRAPHQL_API = 'https://api.github.com/graphql' GITHUB_V3_REST_API = 'https://api.github.com' GIT_NEW_BRANCH_PREFIX = 'gftools_packager_' # Using object(expression:$rev), we query all three license folders # for family_name, but only the entry that exists will return a tree (directory). # Non existing directories will be null (i.e. None). # Hence, we can send one query to know the family exists or not, in which # directory (license) and have a (flat) directory listing. # I queried "rateLimit{cost}" and this had a cost of 1! GITHUB_GRAPHQL_GET_FAMILY_ENTRY = """ fragment FamilyFiles on Tree { entries{ name type oid } } query ListFiles($repoName: String!, $repoOwner: String!, $reference: String!, $oflDir: String!, $uflDir: String!, $apacheDir: String! ) { repository(name: $repoName, owner: $repoOwner) { ref(qualifiedName: $reference) { prefix name target { ... on Commit { __typename oid messageHeadline pushedDate } } } ofl: object(expression: $oflDir) { ...FamilyFiles } apache: object(expression:$apacheDir) { __typename ...FamilyFiles } ufl: object(expression:$uflDir) { __typename ...FamilyFiles } } } """ def _get_query_variables(repo_owner, repo_name, family_name, reference='refs/heads/master'): """ call like: get_query_variables('google', 'fonts', 'gelasio') reference: see $ git help rev-parse and git help revisions and https://git-scm.com/book/en/v2/Git-Internals-Git-References for a branch called "master" "refs/heads/master" is best, but "master" would work as well. tag names work as well, ideally "ref/tags/v0.6.8" but "v0.6.8" would work too. The full name is less ambiguous. """ return { 'repoOwner': repo_owner, 'repoName': repo_name, 'reference': reference, 'oflDir': f'{reference}:ofl/{family_name}', 'apacheDir': f'{reference}:apache/{family_name}', 'uflDir': f'{reference}:ufl/{family_name}' } def _get_github_api_token() -> str: # $ export GH_TOKEN={the GitHub API token} return os.environ['GH_TOKEN'] def _post_github(url: str, payload: typing.Dict): github_api_token = _get_github_api_token() headers = {'Authorization': f'bearer {github_api_token}'} response = requests.post(url, json=payload, headers=headers) if response.status_code == requests.codes.unprocessable: # has a helpful response.json with an 'errors' key. pass else: response.raise_for_status() json = response.json() if 'errors' in json: errors = pprint.pformat(json['errors'], indent=2) raise Exception(f'GitHub POST query failed to url {url}:\n {errors}') return json def _run_gh_graphql_query(query, variables): payload = {'query': query, 'variables': variables} return _post_github(GITHUB_GRAPHQL_API, payload) def _family_name_normal(family_name: str) -> str: return family_name.lower()\ .replace(' ', '')\ .replace('.', '')\ .replace('/', '') def get_gh_gf_family_entry(family_name): # needs input sanitation family_name_normal = _family_name_normal(family_name) variables = _get_query_variables('google','fonts', family_name_normal) result = _run_gh_graphql_query(GITHUB_GRAPHQL_GET_FAMILY_ENTRY, variables) return result def _git_tree_iterate(path, tree, topdown): dirs = [] files = [] for e in tree: if e.type == pygit2.GIT_OBJ_TREE: dirs.append(e.name) elif e.type == pygit2.GIT_OBJ_BLOB: files.append(e.name) if topdown: yield path and os.path.join(*path) or '.', dirs, files # note, if topdown, caller can manipulate dirs for name in dirs: path.append(name) yield from _git_tree_iterate(path, tree[name], topdown) path.pop() if not topdown: yield path and os.path.join(*path) or '.', dirs, files def _git_tree_walk(path, tree, topdown=True): yield from _git_tree_iterate(path.split(os.sep), tree[path], topdown) def get_github_blob(repo_owner, repo_name, file_sha): url = f'{GITHUB_V3_REST_API}/repos/{repo_owner}/{repo_name}/git/blobs/{file_sha}' headers = { 'Accept': 'application/vnd.github.v3.raw' } response = requests.get(url, headers=headers) # print(f'response headers: {pprint.pformat(response.headers, indent=2)}') # raises requests.exceptions.HTTPError response.raise_for_status() return response def get_github_gf_blob(file_sha): return get_github_blob('google', 'fonts', file_sha) def _shallow_clone_git(target_dir, git_url, branch_or_tag='master'): """ getting this as a shallow copy, because for some files we want to search in the filesystem. branch_or_tag: as used in `git clone -b` NOTE: libgit2 and hence pygit2 doesn't support shallow clones yet, but that's the most lightweight way to get the whole directory structure. """ # I don't understand why git clone doesn't take this more explicit form. # But, I recommended it in the docs, so here's a little fix. if branch_or_tag.startswith('tags/'): branch_or_tag = branch_or_tag[len('tags/'):] return subprocess.run(['git', 'clone', '--depth', '1', '--bare' , '-b', branch_or_tag, git_url , target_dir], check=True , stdout=subprocess.PIPE) # Eventually we need all these keys to make an update, so this # can't have Optional/Empty entries, unless that's really optional for # the process. upstream_yaml_schema = Map({ 'name': Str(), 'repository_url': Str(), # TODO: custom validation please 'branch': Str(), 'category': Enum(CATEGORIES), 'designer': Str(), Optional('build', default=''): EmptyNone() | Str(), # allowing EmptyDict here, even though we need files in here, # but we will catch missing files later in the process. # When we have repository_url and branch we can add a editor based # dialog that suggests all files present in the repo (delete lines of # files you don't want to include). 'files': EmptyDict() | MapPattern(Str(), Str()) # Mappings with arbitrary key names }) # Since upstream_yaml_template is incomplete, it can't be parsed with # the complete upstream_yaml_schema. Here's a more forgiving schema for # the template and for initializing with a stripped upstream_conf. upstream_yaml_template_schema = Map({ Optional('name', default=''): EmptyNone() | Str(), Optional('repository_url', default=''): EmptyNone() | Str(), # TODO: custom validation please 'branch': EmptyNone() | Str(), Optional('category', default=None): EmptyNone() | Enum(CATEGORIES), Optional('designer', default=''): EmptyNone() |Str(), Optional('build', default=''): EmptyNone() | Str(), 'files': EmptyDict() | MapPattern(Str(), Str()) }) upstream_yaml_stripped_schema = Map({ # TODO: custom validation please # Only optional until it can be in METADATA.pb Optional('repository_url', default=''): Str(), 'branch': EmptyNone() | Str(), Optional('build', default=''): EmptyNone() | Str(), 'files': EmptyDict() | MapPattern(Str(), Str()) }) # ALLOWED FILES LICENSE_FILES_2_DIRS = ( ('LICENSE.txt', 'apache') , ('UFL.txt', 'ufl') , ('OFL.txt', 'ofl') ) # ('apache', 'ufl', 'ofl') LICENSE_DIRS = tuple(zip(*LICENSE_FILES_2_DIRS))[1] # /path/to/google/Fonts$ find */*/* | grep -E "(ofl|apache|ufl)/*/*" \ # | grep -Ev "*/*/*.ttf" \ # | sed 's/.*\/.*\///g' \ # | sort | uniq -c | sort -hr # 1094 DESCRIPTION.en_us.html # 1064 METADATA.pb # 1034 OFL.txt # 383 FONTLOG.txt # 43 LICENSE.txt # 41 static # 39 EARLY_ACCESS.category # 7 README # 4 COPYRIGHT.txt # 3 UFL.txt # 3 TRADEMARKS.txt # 3 README.txt # 3 LICENCE.txt # 3 LICENCE-FAQ.txt # 3 CONTRIBUTING.txt # 2 README.md # 2 CONTRIBUTORS.txt # 1 ofl.txt # 1 DESCRIPTION.vi_vn.html # 1 AUTHORS.txt # # NOTE: as seen above, there are a lot more filenames in the family # directories than we do allow here. This may need some adjustment # later. # We could allow them maybe if they are already in the upstream, so new # packages can't add files we don't want to have anymore. Something like # this. ALLOWED_FILES = { 'DESCRIPTION.en_us.html' , 'FONTLOG.txt' , *dict(LICENSE_FILES_2_DIRS).keys() # just the file names/keys # METADATA.pb is not taken from upstream, technically we update the # version in google fonts or create it newly } def _write_file_to_package(basedir:str, filename:str, data:bytes) -> None: full_name = os.path.realpath(os.path.join(basedir, filename)) # Can't just let write the file anywhere! full_directory = os.path.join(os.path.realpath(basedir), '') if os.path.commonprefix([full_name, full_directory]) != full_directory: raise Exception(f'Target is not in package directory: "{filename}".') os.makedirs(os.path.dirname(full_name), exist_ok=True) with open(full_name, 'wb') as f: f.write(data) def _file_in_package(basedir, filename): full_name = os.path.join(basedir, filename) return os.path.isfile(full_name) class UserAbortError(Exception): pass class ProgramAbortError(Exception): pass def _get_gf_dir_content(family_name: str) \ -> typing.Tuple[typing.Union[str, None], typing.Dict[str, typing.Dict[str, typing.Any]]]: gfentry = get_gh_gf_family_entry(family_name) entries = None for license_dir in LICENSE_DIRS: if gfentry['data']['repository'][license_dir] is not None: entries = gfentry['data']['repository'][license_dir]['entries'] break if entries is None: return None, {} gf_dir_content = {f['name']: f for f in entries} return license_dir, gf_dir_content def _get_editor_command(): # # there's some advice to chose an editor to open and how to set a default # https://stackoverflow.com/questions/10725238/opening-default-text-editor-in-bash # I like chosing VISUAL over EDITOR falling back to vi, where on my # system actually vi equals vim: # ${VISUAL:-${EDITOR:-vi}} return os.environ.get('VISUAL' , os.environ.get('EDITOR', 'vi')) # ANSI controls TOLEFT = '\u001b[1000D' # Move all the way left (max 1000 steps CLEARLINE = '\u001b[2K' # Clear the line # UP = '\u001b[1A' # moves cursor 1 up # reset = (CLEARLINE + UP) * num_linebeaks + TOLEFT def user_input(question: str, options: 'OrderedDict[str, str]', default: typing.Union[str, None] = None, yes: typing.Union[bool, None] = None, quiet: bool = False ): """ Returns one of the keys of the *options* dict. In interactive mode (if *yes* is not True, see below) use the *input()* function to ask the user a *question* and present the user with the possible answers in *options*. Where the keys in *options* are the actual options to enter and the values are the descriptions or labels. default: if *yes* is a bool this should be an option that does not require user interaction. That way we can have an all -y/--no-confirm flag will always choose the default. yes: don't ask the user and use the default. If the value is a boolean *default* must be set, because we expect the boolean comes from the -y/--no-confirm flag and the programmers intent is to make this dialogue usable with that flag. If the value is None, we don't check if default is set. The boolean False versus None differentiation is intended as a self check to raise awareness of how to use this function. quiet: if *yes* is true don't print the question to stdout. """ if default is not None and default not in options: # UX: all possible choices must be explicit. raise Exception(f'default is f{default} but must be one of: ' f'{", ".join(options.keys())}.') if yes is not None and default is None: # This is a programming error see the __doc__ string above. raise Exception('IF yes is is a boolean, default can\'t be None.') options_items = [f'{"["+k+"]" if default==k else k}={v}' for k, v in options.items()] question = f'{question}\nYour options {",".join(options_items)}:' if yes: if not quiet: # Don't ask, but print to document the default decision. print (question, default) return default while True: answer = input(question).strip() if answer == '' and default is not None: return default if answer in options: return answer # else will ask again def _format_upstream_yaml (upstream_yaml: YAML, compact: bool = True): # removes comments to make it more compact to read if compact: description = 'upstream configuration (no comments, normalized)' content = as_document(upstream_yaml.data, upstream_yaml_schema).as_yaml() else: description = 'upstream configuration' content = upstream_yaml.as_yaml() len_top_bars = (58 - len(description)) // 2 top = f'{"-"*len_top_bars} {description} {"-"*len_top_bars}' return ( f'{top}\n' f'{content}' f'{"-"*len(top)}' ) def _repl_upstream_conf(initial_upstream_conf: str, yes: bool=False , quiet: bool=False, use_template_schema=False): if yes: raise UserAbortError() # repl means "read-eval-print loop" editor = _get_editor_command() # it would be nice to have a location where the file can be inspected # after this program ends, similar to swp files of vim or how git stores # such files. However, that should maybe be in the upstream repository # rather than in the current working directory. Since I'm undecided # I simply go with a temp file _tempfilefd, upstream_yaml_file_name = mkstemp(suffix='.yaml' , prefix='upstream') try: # Unlike TemporaryFile(), the user of mkstemp() is responsible for # deleting the temporary file when done with it. os.close(_tempfilefd) print(f'temp file name is {upstream_yaml_file_name}') last_good_conf = None edit_challenge = initial_upstream_conf while True: # truncates the file on open with open(upstream_yaml_file_name, 'w') as upstream_yaml_file: upstream_yaml_file.write(edit_challenge) # open it in an editor # NOTE the carriage return, this line will be removed again. # not sure if this should go to stdout or stderr print ('hint: Waiting for your editor to close the file ...' , end='', flush=True, file=sys.stderr) subprocess.run([editor, upstream_yaml_file_name]) print (CLEARLINE + TOLEFT, end='', flush=True, file=sys.stderr) # read the file with open(upstream_yaml_file_name, 'r') as upstream_yaml_file: updated_upstream_conf = upstream_yaml_file.read() # parse the file try: yaml_schema = upstream_yaml_schema if not use_template_schema \ else upstream_yaml_template_schema last_good_conf = dirty_load(updated_upstream_conf, yaml_schema, allow_flow_style=True) except Exception as e: answer = user_input(f'The configuration did not parse ({type(e).__name__}):\n\n' f'{e}', OrderedDict(f='fix last edit', r='retry last edit', s='start all over', q='quit program'), # the default should always be an option that does # not require user interaction. That way we can # have an all -y/--no-confirm flag that always # chooses the default. default='q', yes=yes, quiet=quiet) if answer == 'f': edit_challenge = updated_upstream_conf elif answer == 'r': # edit_challenge = edit_challenge pass elif answer == 's': edit_challenge = initial_upstream_conf else: # anser == 'q': raise UserAbortError() continue return last_good_conf # This was thought as an extra check for the user, but I think it's # rather anoying than helpful. Note, the user just edited and # it parsed successfully. # # Ask the user if this looks good. # answer = user_input('Use this upstream configuration?\n' # f'{_format_upstream_yaml(last_good_conf)}', # OrderedDict(y='yes', # e='edit again', # s='start all over', # q='quit program'), # default='y', yes=yes, quiet=quiet) # if answer == 'y': # return last_good_conf # elif answer == 'e': # edit_challenge = last_good_conf.as_yaml() # elif answer == 's': # edit_challenge = initial_upstream_conf # else: # answer == 'q': # raise UserAbortError() finally: os.unlink(upstream_yaml_file_name) def _load_or_repl_upstream(upstream_yaml_text: str, yes: bool = False, quiet: bool = False, use_template_schema: bool = False ) -> typing.Tuple[bool, YAML]: try: yaml_schema = upstream_yaml_schema if not use_template_schema \ else upstream_yaml_template_schema return False, dirty_load(upstream_yaml_text, yaml_schema , allow_flow_style=True) except YAMLValidationError as err: answer = user_input('The configuration has schema errors:\n\n' f'{err}', OrderedDict(e='edit', q='quit program'), default='q', yes=yes, quiet=quiet) if answer == 'q': raise UserAbortError() return True, _repl_upstream_conf(upstream_yaml_text, yes=yes, quiet=quiet, use_template_schema=use_template_schema) def _upstream_conf_from_file(filename: str, yes: bool = False, quiet: bool = False, use_template_schema: bool = False ) -> YAML: """ If this parses there will be no repl, the user can edit the file directly on disk. If it doesn't parse, there's a chance to edit until the yaml parses and to change the result back to disk. """ with open(filename, 'r+') as upstream_yaml_file: upstream_yaml_text = upstream_yaml_file.read() edited, upstream_conf_yaml = _load_or_repl_upstream(upstream_yaml_text , yes=yes, quiet=quiet , use_template_schema=use_template_schema) # "edited" is only true when upstream_yaml_text did not parse and # was then edited successfully. if edited: answer = user_input(f'Save changed file {filename}?', OrderedDict(y='yes', n='no'), default='y', yes=yes, quiet=quiet) if answer == 'y': upstream_yaml_file.seek(0) upstream_yaml_file.truncate() upstream_yaml_file.write(upstream_conf_yaml.as_yaml()) return upstream_conf_yaml def _upstream_conf_from_scratch(family_name: typing.Union[str, None] = None, yes: bool = False, quiet: bool = False, use_template_schema:bool = False) -> YAML: upstream_conf_yaml = dirty_load(upstream_yaml_template, upstream_yaml_template_schema , allow_flow_style=True) if family_name is not None: upstream_conf_yaml['name'] = family_name if use_template_schema and yes: # for -u/--upstream-yaml return upstream_conf_yaml template = upstream_conf_yaml.as_yaml() return _repl_upstream_conf(template, yes=yes, quiet=quiet, use_template_schema=use_template_schema) def _user_input_license(yes: bool=False, quiet: bool=False): answer = user_input('To add a new typeface family to Google Fonts we ' 'must know the license of the family.\n' 'It\'s very likely that OFL is the license that is expected here.', OrderedDict(o='OFL: SIL Open Font License', a='Apache License', u='Ubuntu Font License', q='quit program'), # the default should always be an option that does # not require user interaction. That way we can # have an all -y/--no-confirm flag that always chooses the # default. default='o', yes=yes, quiet=quiet) if answer == 'q': raise UserAbortError() license_dir = {d[0]:d for d in LICENSE_DIRS}[answer] return license_dir def _upstream_conf_from_yaml_metadata( upstream_yaml_text: typing.Union[str, None], metadata_text: typing.Union[str, None], yes: bool = False, quiet: bool = False, use_template_schema: bool = False) -> YAML: """ Make a package when the family is in the google/fonts repo. Uses data preferred from upstream.yaml, if already present, and fills the gaps with data from METADATA.pb. This is to enable the removal of redundant data from upstream.yaml when it is in METADATA.pb, while also keeping upstream.yaml as the source of truth when in doubt. Eventually the common update path. """ upstream_conf = {} if metadata_text is not None: metadata = fonts_pb2.FamilyProto() text_format.Parse(metadata_text, metadata) # existing repo, no upstream conf: # from METADATA.pb we use: # designer, category, name # we won't get **yet**: # source.repository_url # we still need the new stuff: # branch, files upstream_conf.update({ 'designer': metadata.designer or None, 'category': metadata.category or None, 'name': metadata.name or None, # we won't get this just now in most cases! 'repository_url': metadata.source.repository_url or None, }) if upstream_yaml_text is not None: # Only drop into REPL mode if can't parse and validate, # and use use_template_schema, because this is not the real deal # yet and we can be very forgiving. _, upstream_conf_yaml = _load_or_repl_upstream(upstream_yaml_text , yes=yes, quiet=quiet , use_template_schema=True) # remove None values: upstream_conf_yaml_data = {k:v for k,v in upstream_conf_yaml.data.items() if v is not None } # Override keys set by METADATA.pb before, if there's overlap. upstream_conf.update(upstream_conf_yaml_data) upstream_conf_yaml = dirty_load(upstream_yaml_template, upstream_yaml_template_schema , allow_flow_style=True) for k,v in upstream_conf.items(): if v is None: continue upstream_conf_yaml[k] = v upstream_yaml_text = upstream_conf_yaml.as_yaml() assert upstream_yaml_text is not None # two cases: # - upstream.yaml may need an update by the user # - upstream.yaml may be invalid (updated schema, syntax) answer = user_input('Do you want to edit the current upstream configuration?', OrderedDict(y='yes', n='no'), default='n', yes=yes, quiet=quiet) if answer == 'y': return _repl_upstream_conf(upstream_yaml_text, yes=yes, quiet=quiet , use_template_schema=use_template_schema) _, upstream_conf_yaml = _load_or_repl_upstream(upstream_yaml_text, yes=yes, quiet=quiet, use_template_schema=use_template_schema) return upstream_conf_yaml def _get_upstream_info(file_or_family: str, is_file: bool, yes: bool, quiet: bool, require_license_dir: bool = True, use_template_schema: bool = False ) -> typing.Tuple[YAML, typing.Union[str, None], dict]: # the first task is to acquire an upstream_conf, the license dir and # if present the available files for the family in the google/fonts repo. license_dir: typing.Union[str, None] = None upstream_conf_yaml = None gf_dir_content: typing.Dict[str, typing.Dict[str, typing.Any]] = {} if not is_file: family_name = file_or_family else: # load a upstream.yaml from disk upstream_conf_yaml = _upstream_conf_from_file(file_or_family, yes=yes, quiet=quiet, use_template_schema=use_template_schema) family_name = upstream_conf_yaml['name'].data # TODO:_get_gf_dir_content: is implemented as github graphql query, # but, as an alternative, could also be answered with a local # clone of the git repository. then _get_gf_dir_content needs a # unified api. # This could be pereferable if there's a google/fonts clone on the # system and e.g. if the user has a bad/no internet access or # is running into github api rate limits. # # if family_name can't be found: # license_dir is None, gf_dir_content is an empty dict license_dir, gf_dir_content = _get_gf_dir_content(family_name) if license_dir is None: # The family is not specified or not found on google/fonts. # Can also be an user input error, but we don't handle this yet/here. print(f'Font Family "{family_name}" not found on Google Fonts.') if require_license_dir: license_dir = _user_input_license(yes=yes, quiet=quiet) if upstream_conf_yaml is None: # if there was no local upstream yaml upstream_conf_yaml = _upstream_conf_from_scratch(family_name, yes=yes, quiet=quiet, use_template_schema=use_template_schema) else: print(f'Font Family "{family_name}" is on Google Fonts under "{license_dir}".') if upstream_conf_yaml is not None: # loaded from_file or created from_scratch return upstream_conf_yaml, license_dir, gf_dir_content or {} upstream_yaml_text: typing.Union[str, None] = None metadata_text: typing.Union[str, None] = None if 'upstream.yaml' in gf_dir_content: # normal case print(f'Using upstream.yaml from google/fonts for {family_name}.') file_sha = gf_dir_content['upstream.yaml']['oid'] response = get_github_gf_blob(file_sha) upstream_yaml_text = response.text if 'METADATA.pb' in gf_dir_content: file_sha = gf_dir_content['METADATA.pb']['oid'] response = get_github_gf_blob(file_sha) metadata_text = response.text if upstream_yaml_text is None and metadata_text is None: raise Exception('Unexpected: can\'t use google fonts family data ' f'for {family_name}.') upstream_conf_yaml = _upstream_conf_from_yaml_metadata(upstream_yaml_text, metadata_text, yes=yes, quiet=quiet, use_template_schema=use_template_schema) return upstream_conf_yaml, license_dir, gf_dir_content or {} def _edit_upstream_info(upstream_conf_yaml: YAML, file_or_family: str, is_file: bool, yes:bool, quiet: bool)\ -> typing.Tuple[YAML, str, dict]: license_dir = None gf_dir_content: typing.Dict[str, typing.Dict[str, typing.Any]] = {} print(f'Edit upstream conf.') upstream_conf_yaml = _repl_upstream_conf(upstream_conf_yaml.as_yaml(), yes=yes, quiet=quiet) if is_file: answer = user_input(f'Save changed file {file_or_family}?', OrderedDict(y='yes', n='no'), default='y', yes=yes, quiet=quiet) if answer == 'y': with open(file_or_family, 'w') as upstream_yaml_file: upstream_yaml_file.write(upstream_conf_yaml.as_yaml()) family_name = upstream_conf_yaml['name'].data # if family_name can't be found: # license_dir is None, gf_dir_content is an empty dict license_dir, gf_dir_content = _get_gf_dir_content(family_name) if license_dir is None: # The family is not specified or not found on google/fonts. # Can also be an user input error, but we don't handle this yet/here. print(f'Font Family "{family_name}" not found on Google Fonts.') license_dir = _user_input_license(yes=yes, quiet=quiet) return upstream_conf_yaml, license_dir, gf_dir_content or {} def _is_allowed_file(filename: str, no_whitelist: bool=False): # there are two places where .ttf files are allowed to go # we don't do filename/basename validation here, that's # a job for font bakery if filename.endswith('.ttf') \ and os.path.dirname(filename) in ['', 'static']: return True # using this! elif filename not in ALLOWED_FILES \ and not no_whitelist: # this is the default return False return True SKIP_NOT_PERMITTED = 'Target is not a permitted filename (see --no_whitelist):' SKIP_SOURCE_NOT_FOUND = 'Source not found in upstream:' SKIP_SOURCE_NOT_BLOB = 'Source is not a blob (blob=file):' SKIP_COPY_EXCEPTION = 'Can\'t copy:' def _copy_upstream_files_from_git(branch: str, files: dict, repo: pygit2.Repository , write_file_to_package: typing.Callable[[str, bytes], None] , no_whitelist: bool=False) \ -> OrderedDict: skipped: 'OrderedDict[str, typing.List[str]]' = OrderedDict([ (SKIP_NOT_PERMITTED, []), (SKIP_SOURCE_NOT_FOUND, []), (SKIP_SOURCE_NOT_BLOB, []), (SKIP_COPY_EXCEPTION, []) ]) for source, target in files.items(): # else: allow, write_file_to_package will raise errors if target is bad if not _is_allowed_file(target, no_whitelist): skipped[SKIP_NOT_PERMITTED].append(target) continue try: source_object = repo.revparse_single(f"{branch}:{source}") except KeyError as e: skipped[SKIP_SOURCE_NOT_FOUND].append(source) continue if(source_object.type != pygit2.GIT_OBJ_BLOB): skipped[SKIP_SOURCE_NOT_BLOB].append(f'{source} (type is {source_object.type_str})') continue try: write_file_to_package(target, source_object.data) except Exception as e: # i.e. file exists skipped[SKIP_COPY_EXCEPTION].append(f'{target} ERROR: {e}') # Clean up empty entries in skipped. # using list() because we can't delete from a dict during iterated for key in list(skipped): if not skipped[key]: del skipped[key] # If skipped is empty all went smooth. return skipped def _copy_upstream_files_from_dir(source_dir: str, files: dict, write_file_to_package: typing.Callable[[str, bytes], None], no_whitelist: bool=False) -> OrderedDict: skipped: 'OrderedDict[str, typing.List[str]]' = OrderedDict([ (SKIP_NOT_PERMITTED, []), (SKIP_SOURCE_NOT_FOUND, []), (SKIP_SOURCE_NOT_BLOB, []), (SKIP_COPY_EXCEPTION, []) ]) for source, target in files.items(): # else: allow, write_file_to_package will raise errors if target is bad if not _is_allowed_file(target, no_whitelist): skipped[SKIP_NOT_PERMITTED].append(target) continue try: with open(os.path.join(source_dir, source), 'rb') as f: source_data = f.read() except FileNotFoundError: skipped[SKIP_SOURCE_NOT_FOUND].append(source) continue except Exception as err: # e.g. IsADirectoryError skipped[SKIP_SOURCE_NOT_BLOB].append(f'{source} ({type(err).__name__})') continue try: write_file_to_package(target, source_data) except Exception as e: # i.e. file exists skipped[SKIP_COPY_EXCEPTION].append(f'{target} ERROR: {e}') # Clean up empty entries in skipped. # using list() because we can't delete from a dict during iterated for key in list(skipped): if not skipped[key]: del skipped[key] # If skipped is empty all went smooth. return skipped def _create_or_update_metadata_pb(upstream_conf: YAML, tmp_package_family_dir:str, upstream_commit_sha:str, no_source: bool) -> None: metadata_file_name = os.path.join(tmp_package_family_dir, 'METADATA.pb') try: subprocess.run(['gftools', 'add-font', tmp_package_family_dir] , check=True, stdout=subprocess.PIPE , stderr=subprocess.PIPE) except subprocess.CalledProcessError as e: print(str(e.stderr, 'utf-8'), file=sys.stderr) raise e metadata = fonts_pb2.FamilyProto() with open(metadata_file_name, 'rb') as fb: text_format.Parse(fb.read(), metadata) # make upstream_conf the source of truth for some entries metadata.name = upstream_conf['name'] for font in metadata.fonts: font.name = upstream_conf['name'] metadata.designer = upstream_conf['designer'] metadata.category = upstream_conf['category'] # metadata.date_added # is handled well if no_source: # remove in case it is present metadata.ClearField('source') else: metadata.source.repository_url = upstream_conf['repository_url'] metadata.source.commit = upstream_commit_sha text_proto = text_format.MessageToString(metadata, as_utf8=True) with open(metadata_file_name, 'w') as f: f.write(text_proto) def _create_package_content(package_target_dir: str, repos_dir: str, upstream_conf_yaml: YAML, license_dir: str, gf_dir_content:dict, no_source: bool, allow_build: bool, yes: bool, quiet: bool, no_whitelist: bool = False) -> str: print(f'Creating package with \n{_format_upstream_yaml(upstream_conf_yaml)}') upstream_conf = upstream_conf_yaml.data upstream_commit_sha = None family_name_normal = _family_name_normal(upstream_conf['name']) family_dir = os.path.join(license_dir, family_name_normal) package_family_dir = os.path.join(package_target_dir, family_dir) # putting state into functions, could be done with classes/methods as well write_file_to_package = functools.partial(_write_file_to_package, package_family_dir) file_in_package = functools.partial(_file_in_package, package_family_dir) # Get and add upstream files! upstream_dir_target = ( f'{upstream_conf["repository_url"]}' f'__{upstream_conf["branch"]}' # Despite of '.' and '/' I'd expect the other replacements # not so important in this case. ) \ .replace('://', '_') \ .replace('/', '_') \ .replace('.', '_') \ .replace('\\', '_') local_repo_path_marker = 'local://' if upstream_conf['repository_url'].startswith(local_repo_path_marker): print(f'WARNING using "local://" hack for repository_url: {upstream_conf["repository_url"]}') local_path = upstream_conf['repository_url'][len(local_repo_path_marker):] upstream_dir = os.path.expanduser(local_path) else: upstream_dir = os.path.join(repos_dir, upstream_dir_target) if not os.path.exists(upstream_dir): # for super families it's likely that we can reuse the same clone # of the repository for all members _shallow_clone_git(upstream_dir, upstream_conf['repository_url'] , upstream_conf['branch']) repo = pygit2.Repository(upstream_dir) upstream_commit = repo.revparse_single(upstream_conf['branch']) upstream_commit_sha = upstream_commit.hex # Copy all files from upstream_conf['files'] to package_family_dir # We are strict about what to allow, unexpected files # are not copied. Instead print a warning an suggest filing an # issue if the file is legitimate. A flag to explicitly # skip the whitelist check (--no_whitelist) # enables making packages even when new, yet unknown files are required). # Do we have a Font Bakery check for expected/allowed files? Would # be a good complement. if upstream_conf['build']: print(f'Found build command:\n $ {upstream_conf["build"]}') if not allow_build: answer = user_input(f'Can\'t execute build command without explicit ' 'permission. Don\'t allow this lightly ' 'and review build command, build process and its dependencies prior. ' 'This support for building from sources is provisional, a ' 'discussion can be found at https://github.com/googlefonts/gftools/issues/231', OrderedDict(b='build', q='quit program'), default='q', yes=yes, quiet=quiet) if answer == 'q': raise UserAbortError('Can\'t execute required build command. ' 'Use --allow-build to allow explicitly.') with TemporaryDirectory() as tmp: print(f'Building...') subprocess.run(['git', 'clone', upstream_dir, tmp], check=True) subprocess.run(['bash', '-c', upstream_conf['build']] , cwd=tmp , check=True) print(f'DONE building!') skipped = _copy_upstream_files_from_dir(tmp, upstream_conf['files'], write_file_to_package, no_whitelist=no_whitelist) else: skipped = _copy_upstream_files_from_git(upstream_conf['branch'], upstream_conf['files'], repo, write_file_to_package, no_whitelist=no_whitelist) if skipped: message = ['Some files from upstream_conf could not be copied.'] for reason, items in skipped.items(): message.append(reason) for item in items: message.append(f' - {item}') # The whitelist can be ignored using the flag no_whitelist flag, # but the rest should be fixed in the files map, because it's # obviously wrong, not working, configuration. # TODO: This case could (but should it?) be a repl-case to ask # interactively, if the no_whitelist flag should be used then, # if yes, _copy_upstream_files could be tried again. But given # that the use case for the flag is a narrow one, I doubt the # effort needed and the added complexity is worth it. raise ProgramAbortError('\n'.join(message)) # Get and add all files from google/fonts for name, entry in gf_dir_content.items(): # not copying old TTFs, directories and files that are already there if name.endswith('.ttf') \ or entry['type'] != 'blob'\ or file_in_package(name): continue file_sha = gf_dir_content[name]['oid'] response = get_github_gf_blob(file_sha) write_file_to_package(name, response.content) # create/update METADATA.pb _create_or_update_metadata_pb(upstream_conf, package_family_dir, upstream_commit_sha, no_source) # create/update upstream.yaml # Remove keys that are also in METADATA.pb googlefonts/gftools#233 # and also clear all comments. redundant_keys = {'name', 'category', 'designer', 'repository_url'} if no_source: # source is NOT in METADATA.pb so we want to keep it in upstream_conf # NOTE: there's another position where this has to be considered # i.e. in case of git as target when making a commit. redundant_keys.remove('repository_url') upstream_conf_stripped = OrderedDict((k, v) for k, v in upstream_conf.items() \ if k not in redundant_keys) # Don't keep an empty build key. if 'build' in upstream_conf_stripped and (upstream_conf_stripped['build'] == ''\ or upstream_conf_stripped['build'] is None): del upstream_conf_stripped['build'] upstream_conf_stripped_yaml = as_document(upstream_conf_stripped, upstream_yaml_stripped_schema) with open(os.path.join(package_family_dir, 'upstream.yaml'), 'w') as f: f.write(upstream_conf_stripped_yaml.as_yaml()) print(f'DONE Creating package for {upstream_conf["name"]}!') return family_dir def _check_git_target(target: str) -> None: try: repo = repo = pygit2.Repository(target) except Exception as e: raise ProgramAbortError(f'Can\'t open "{target}" as git repository. ' f'{e} ({type(e).__name__}).') repo_owner = 'google' repo_name = 'fonts' repo_name_with_owner = f'{repo_owner}/{repo_name}' remote_name_or_none = _find_github_remote(repo, repo_owner, repo_name, 'master') if remote_name_or_none is None: # NOTE: we could ask the user if we should add the missing remote. # This makes especially sense if the repository is a fork of # google/fonts and essentially has the same history/object database. # It would be very uncommon, probably unintended, if the repo is not # related to the google/fonts repo and fetching from that remote would # have to download a lot of new data, as well as probably create # confusing situations for the user when dealing with GitHub PRs etc. print (f'The git repository at target "{target}" has no remote for ' f'GitHub {repo_name_with_owner}.\n' 'You can add it by running:\n' f'$ cd {target}\n' f'$ git remote add googlefonts {GITHUB_REPO_SSH_URL(repo_name_with_owner=repo_name_with_owner)}.git\n' 'For more context, run:\n' '$ git remote help') raise ProgramAbortError(f'The target git repository has no remote for ' f'GitHub google/fonts.') def _check_directory_target(target: str) -> None: if not os.path.isdir(target): raise ProgramAbortError(f'Target "{target}" is not a directory.') def _check_target(is_gf_git: bool, target: str) -> None: if is_gf_git: return _check_git_target(target) else: return _check_directory_target(target) def _git_tree_from_dir(repo: pygit2.Repository, tmp_package_family_dir: str) -> str: trees: typing.Dict[str, str] = {} for root, dirs, files in os.walk(tmp_package_family_dir, topdown=False): # if root == tmp_package_family_dir: rel_dir = '.' rel_dir = os.path.relpath(root, tmp_package_family_dir) treebuilder = repo.TreeBuilder() for filename in files: with open(os.path.join(root, filename), 'rb') as f: blob_id = repo.create_blob(f.read()) treebuilder.insert(filename, blob_id, pygit2.GIT_FILEMODE_BLOB) for dirname in dirs: path = dirname if rel_dir == '.' else os.path.join(rel_dir, dirname) tree_id = trees[path] treebuilder.insert(dirname, tree_id, pygit2.GIT_FILEMODE_TREE) # store for use in later iteration, note, we're going bottom up trees[rel_dir] = treebuilder.write() return trees['.'] def _git_write_file(repo: pygit2.Repository, tree_builder: pygit2.TreeBuilder, file_path: str, data: bytes) -> None: blob_id = repo.create_blob(data) return _git_makedirs_write(repo, tree_builder, PurePath(file_path).parts, blob_id, pygit2.GIT_FILEMODE_BLOB) def _git_makedirs_write(repo: pygit2.Repository, tree_builder:pygit2.TreeBuilder, path:typing.Tuple[str, ...], git_obj_id: str, git_obj_filemode:int) -> None: name, rest_path = path[0], path[1:] if not rest_path: tree_builder.insert(name, git_obj_id, git_obj_filemode) return child_tree = tree_builder.get(name) try: child_tree_builder = repo.TreeBuilder(child_tree) except TypeError as e: # will raise TypeError if license_dir_tree is None i.e. not exisiting # but also if child_tree is not a pygit2.GIT_FILEMODE_TREE # os.makedirs(name, exists_ok=True) would raise FileExistsError if # it is tasked to create a directory where a file already exists # It seems unlikely that we want to override existing files here # so I copy that behavior. if child_tree is not None: # FileExistsError is an OSError so it's probably misused here raise FileExistsError(f'The git entry {name} exists as f{child_tree.type_str}.') child_tree_builder = repo.TreeBuilder() _git_makedirs_write(repo, child_tree_builder, rest_path, git_obj_id, git_obj_filemode) child_tree_id = child_tree_builder.write() tree_builder.insert(name, child_tree_id, pygit2.GIT_FILEMODE_TREE) def _git_copy_dir(repo: pygit2.Repository, tree_builder: pygit2.TreeBuilder, source_dir:str, target_dir:str) -> None: # This is a new tree, i.e. not based on an existing tree. tree_id = _git_tree_from_dir(repo, source_dir) # Here we insert into an existing tree. _git_makedirs_write(repo, tree_builder, PurePath(target_dir).parts, tree_id, pygit2.GIT_FILEMODE_TREE) # thanks https://stackoverflow.com/a/1094933 def _sizeof_fmt(num, suffix='B'): for unit in ['','Ki','Mi','Gi','Ti','Pi','Ei','Zi']: if abs(num) < 1024.0: return "%3.1f%s%s" % (num, unit, suffix) num /= 1024.0 return "%.1f%s%s" % (num, 'Yi', suffix) def _push(repo: pygit2.Repository, url: str, local_branch_name: str, remote_branch_name: str, force: bool): full_local_ref = local_branch_name if local_branch_name.find('refs/') == 0 \ else f'refs/heads/{local_branch_name}' full_remote_ref = f'refs/heads/{remote_branch_name}' ref_spec = f'{full_local_ref}:{full_remote_ref}' if force: # ref_spec for force pushing must include a + at the start. ref_spec = f'+{ref_spec}' # NOTE: pushing using pygit2 is currently not working on MacOS, this is # related to SSH issues. Here's a traceback: # https://github.com/googlefonts/gftools/issues/238 # Since we did it already once with `git clone --depth 1`, this is also # being worked around by using the CLI git directly. # # callbacks = PYGit2RemoteCallbacks() # with _create_tmp_remote(repo, url) as remote: # # https://www.pygit2.org/remotes.html#pygit2.Remote.push # # When the remote has a githook installed, that denies the reference # # this function will return successfully. Thus it is strongly recommended # # to install a callback, that implements RemoteCallbacks.push_update_reference() # # and check the passed parameters for successfull operations. # # # remote.push([ref_spec], callbacks=callbacks) subprocess.run(['git', 'push', url, ref_spec], cwd=repo.path, check=True, stdout=subprocess.PIPE) #if callbacks.rejected_push_message is not None: # raise Exception(callbacks.rejected_push_message) def get_github_open_pull_requests(repo_owner: str, repo_name: str, pr_head: str, pr_base_branch: str) -> typing.Union[typing.List]: url = (f'{GITHUB_V3_REST_API}/repos/{repo_owner}/{repo_name}/pulls?state=open' f'&head={urllib.parse.quote(pr_head)}' f'&base={urllib.parse.quote(pr_base_branch)}') github_api_token = _get_github_api_token() headers = {'Authorization': f'bearer {github_api_token}'} response = requests.get(url, headers=headers) # print(f'response headers: {pprint.pformat(response.headers, indent=2)}') # raises requests.exceptions.HTTPError response.raise_for_status() json = response.json() if 'errors' in json: errors = pprint.pformat(json['errors'], indent=2) raise Exception(f'GitHub REST query failed:\n {errors}') return json def create_github_pull_request(repo_owner: str, repo_name: str, pr_head: str, pr_base_branch: str, title: str, body: str): url = f'{GITHUB_V3_REST_API}/repos/{repo_owner}/{repo_name}/pulls' payload = { 'title': title, 'body': body, 'head': pr_head, 'base': pr_base_branch, 'maintainer_can_modify': True } return _post_github(url, payload) def create_github_issue_comment(repo_owner: str, repo_name: str, issue_number: int, pr_comment_body: str): url = (f'{GITHUB_V3_REST_API}/repos/{repo_owner}/{repo_name}/issues' f'/{issue_number}/comments') payload = { 'body': pr_comment_body } return _post_github(url, payload) def _make_pr(repo: pygit2.Repository, local_branch_name: str, pr_upstream: str, push_upstream: str, pr_title: str, pr_message_body: str): print('Making a Pull Request …') if not push_upstream: push_upstream = pr_upstream push_owner, _push_repo = push_upstream.split('/') pr_owner, pr_repo = pr_upstream.split('/') url = GITHUB_REPO_SSH_URL(repo_name_with_owner=push_upstream) remote_branch_name = local_branch_name # We must only allow force pushing/general pushing to branch names that # this tool *likely* created! Otherwise, we may end up force pushing # to master! Hence: we expect a prefix for remote_branch_name indicating # this tool created it. if remote_branch_name.find(GIT_NEW_BRANCH_PREFIX) != 0: remote_branch_name = (f'{GIT_NEW_BRANCH_PREFIX}' f'{remote_branch_name.replace(os.sep, "_")}') print('git push:\n' f' url is {url}\n' f' local branch name is {local_branch_name}\n' f' remote branch name is {remote_branch_name}\n' ) # Always force push? # If force == False and we update an existing remote: # _pygit2.GitError: cannot push non-fastforwardable reference # But I don't use the --force flag here, because I believe this is # very much the standard case, i.e. that we update existing PRs. _push(repo, url, local_branch_name, remote_branch_name, force=True) print('DONE git push!') pr_head = f'{push_owner}:{remote_branch_name}' pr_base_branch = 'master' # currently we always do PRs to master #_updateUpstream(prRemoteName, prRemoteRef)) #// NOTE: at this point the PUSH was already successful, so the branch #// of the PR exists or if it existed it has changed. open_prs = get_github_open_pull_requests(pr_owner, pr_repo, pr_head, pr_base_branch) if not len(open_prs): # No open PRs, creating … result = create_github_pull_request(pr_owner, pr_repo, pr_head, pr_base_branch, pr_title, pr_message_body) print(f'Created a PR #{result["number"]} {result["html_url"]}') else: # found open PR pr_issue_number = open_prs[0]['number'] pr_comment_body = f'Updated\n\n## {pr_title}\n\n---\n{pr_message_body}' result = create_github_issue_comment(pr_owner, pr_repo, pr_issue_number, pr_comment_body) print(f'Created a comment in PR #{pr_issue_number} {result["html_url"]}') def _get_root_commit(repo: pygit2.Repository, base_remote_branch:str, tip_commit: pygit2.Commit) -> pygit2.Commit: for root_commit in repo.walk(tip_commit.id, pygit2.GIT_SORT_TOPOLOGICAL | pygit2.GIT_SORT_TIME): try: # If it doesn't raise KeyError i.e. root_commit is contained in # our base_remote_branch and not part of the PR. return repo.branches.remote.with_commit(root_commit)[base_remote_branch].peel() except KeyError: continue break; def _get_change_info_from_diff(repo: pygit2.Repository, root_tree: pygit2.Tree, tip_tree: pygit2.Tree) -> typing.Dict: # I probably also want the changed files between root_commit and tip commit diff = repo.diff(root_tree, tip_tree) all_touched_files = set() for delta in diff.deltas: # possible status chars: # GIT_DELTA_ADDED: A # GIT_DELTA_DELETED: D # GIT_DELTA_MODIFIED: M # GIT_DELTA_RENAMED: R # GIT_DELTA_COPIED: C # GIT_DELTA_IGNORED: I # GIT_DELTA_UNTRACKED: ? # GIT_DELTA_TYPECHANGE: T # GIT_DELTA_UNREADABLE: X # default: ' ' if delta.status_char() == 'D': all_touched_files.add(delta.old_file.path) else: all_touched_files.add(delta.new_file.path) touched_family_dirs = set() for filename in all_touched_files: for dirname in LICENSE_DIRS: if filename.startswith(f'{dirname}{os.path.sep}'): # items are e.g. ('ofl', 'gelasio') touched_family_dirs.add(tuple(filename.split(os.path.sep)[:2])) break family_changes_dict = {} for dir_path_tuple in touched_family_dirs: family_tree: pygit2.Tree = tip_tree for pathpart in dir_path_tuple: family_tree = family_tree / pathpart metadata_blob: pygit2.Blob = family_tree / 'METADATA.pb' metadata = fonts_pb2.FamilyProto() text_format.Parse(metadata_blob.data, metadata) # get the version first_font_file_name = metadata.fonts[0].filename first_font_blob: pygit2.Blob = family_tree / first_font_file_name first_font_file = BytesIO(first_font_blob.data) ttFont = TTFont(first_font_file) version:typing.Union[None, str] = None NAME_ID_VERSION = 5 for entry in ttFont['name'].names: if entry.nameID == NAME_ID_VERSION: # just taking the first instance version = entry.string.decode(entry.getEncoding()) if version: break # repoNameWithOwner prefix = 'https://github.com/' suffix = '.git' repoNameWithOwner: typing.Union[None,str] = None if metadata.source.repository_url.startswith(prefix): repoNameWithOwner = '/'.join(metadata.source.repository_url[len(prefix):] .split('/')[0:2]) if repoNameWithOwner.endswith(suffix): repoNameWithOwner = repoNameWithOwner[:-len(suffix)] commit_url: typing.Union[None,str] = None if repoNameWithOwner: commit_url = f'https://github.com/{repoNameWithOwner}/commit/{metadata.source.commit}' family_changes_dict['/'.join(dir_path_tuple)] = { 'family_name': metadata.name, 'repository': metadata.source.repository_url, 'commit': metadata.source.commit, 'version': version or '(unknown version)', 'repoNameWithOwner': repoNameWithOwner, 'commit_url': commit_url } return family_changes_dict def _title_message_from_diff(repo: pygit2.Repository, root_tree: pygit2.Tree, tip_tree: pygit2.Tree) -> typing.Tuple[str, str]: family_changes_dict = _get_change_info_from_diff(repo, root_tree, tip_tree) title = [] body = [] for _, fam_entry in family_changes_dict.items(): title.append(f'{fam_entry["family_name"]}: {fam_entry["version"]} added') commit = fam_entry['commit_url'] or fam_entry['commit'] body.append(f'* {fam_entry["family_name"]} ' f'{fam_entry["version"]} taken from the upstream repo ' f'{fam_entry["repository"]} at commit {commit}.' ) return '; '.join(title), '\n'.join(body) def _git_get_path(tree: pygit2.Tree, path: str) -> pygit2.Object: last = tree for pathpart in PurePath(path).parts: last = last / pathpart return last def _git_make_commit(repo: pygit2.Repository, add_commit: bool, force: bool, yes: bool, quiet: bool, local_branch: str, remote_name: str, base_remote_branch: str, tmp_package_family_dir: str, family_dir: str, no_source: bool): base_commit = None if add_commit: try: base_commit = repo.branches.local[local_branch].peel() except KeyError as e: pass if not base_commit: #fetch! make sure we're on the actual gf master HEAD _git_fetch_master(repo, remote_name) # base_commit = repo.revparse_single(f'refs/remotes/{base_remote_branch}') # same but maybe better readable: base_commit = repo.branches.remote[base_remote_branch].peel() # Maybe I can start with the commit tree here ... treeBuilder = repo.TreeBuilder(base_commit.tree) _git_copy_dir(repo, treeBuilder, tmp_package_family_dir, family_dir) # create the commit user_name = list(repo.config.get_multivar('user.name'))[0] user_email = list(repo.config.get_multivar('user.email'))[0] author = pygit2.Signature(user_name, user_email) committer = pygit2.Signature(user_name, user_email) new_tree_id = treeBuilder.write() new_tree: pygit2.Tree = repo.get(new_tree_id) title, body = _title_message_from_diff(repo, base_commit.tree, new_tree) commit_id = repo.create_commit( None, author, committer, f'[gftools-packager] {title}\n\n{body}', new_tree_id, [base_commit.id] # parents ) if no_source: # remove source from METADATA.pb in an extra new commit, this will make it # easy to track these changes and to revert them when feasible. treeBuilder = repo.TreeBuilder(new_tree) # read METADATA.pb metadata_filename = os.path.join(family_dir, 'METADATA.pb') metadata_blob = _git_get_path(new_tree, metadata_filename) metadata = fonts_pb2.FamilyProto() text_format.Parse(metadata_blob.data, metadata) # delete source fields repository_url = metadata.source.repository_url metadata.ClearField('source') # write METADATA.pb text_proto = text_format.MessageToString(metadata, as_utf8=True) _git_write_file(repo, treeBuilder, metadata_filename, text_proto) # read upstream.yaml upstream_filename = os.path.join(family_dir, 'upstream.yaml') upstream_text = _git_get_path(new_tree, upstream_filename).data.decode('utf-8') upstream_conf_yaml = dirty_load(upstream_text, upstream_yaml_stripped_schema, allow_flow_style=True) # preserve the info: transfer from METADATA.pb upstream_conf_yaml['repository_url'] = repository_url # write upstream.yaml _git_write_file(repo, treeBuilder, upstream_filename, upstream_conf_yaml.as_yaml()) # commit new_tree_id = treeBuilder.write() commit_id = repo.create_commit( None, author, committer, f'[gftools-packager] {family_dir} remove METADATA "source". google/fonts#2587', new_tree_id, [commit_id] # parents ) commit = repo.get(commit_id) # create branch or add to an existing one if add_commit while True: try: repo.branches.local.create(local_branch, commit, force=add_commit or force) except pygit2.AlreadyExistsError: # _pygit2.AlreadyExistsError: failed to write reference # 'refs/heads/gftools_packager_ofl_gelasio': a reference with # that name already exists. answer = user_input(f'Can\'t override existing branch {local_branch}' ' without explicit permission.', OrderedDict(f='force override', q='quit program'), default='q', yes=yes, quiet=quiet) if answer == 'q': raise UserAbortError(f'Can\'t override existing branch {local_branch}. ' 'Use --branch to specify another branch name. ' 'Use --force to allow explicitly.') else: # answer == 'f' force = True continue break # only for reporting target_label = f'git branch {local_branch}' package_contents = [] for root, dirs, files in _git_tree_walk(family_dir, commit.tree): for filename in files: entry_name = os.path.join(root, filename) filesize = commit.tree[entry_name].size package_contents.append((entry_name, filesize)) _print_package_report(target_label, package_contents) def _packagage_to_git(tmp_package_family_dir: str, target: str, family_dir: str, branch: str, force:bool, yes: bool, quiet: bool, add_commit: bool, no_source: bool) -> None: repo = pygit2.Repository(target) # we checked that it exists earlier! remote_name = _find_github_remote(repo, 'google', 'fonts', 'master') base_remote_branch = f'{remote_name}/master' if remote_name is None: raise Exception('No remote found for google/fonts master.') _git_make_commit(repo, add_commit, force, yes, quiet, branch, remote_name, base_remote_branch, tmp_package_family_dir, family_dir, no_source) def _dispatch_git(target: str, target_branch: str,pr_upstream: str, push_upstream: str) -> None: repo = pygit2.Repository(target) # we checked that it exists earlier! remote_name = _find_github_remote(repo, 'google', 'fonts', 'master') base_remote_branch = f'{remote_name}/master' if remote_name is None: raise Exception('No remote found for google/fonts master.') git_branch: pygit2.Branch = repo.branches.local[target_branch] tip_commit: pygit2.Commit = git_branch.peel() root_commit: pygit2.Commit = _get_root_commit(repo, base_remote_branch, tip_commit) pr_title, _ = _title_message_from_diff(repo, root_commit.tree, tip_commit.tree) if not pr_title: # Happens e.g. if we have a bunch of commits that revert themselves, # to me this happened in development, in a for production use very unlikely # situation. # But can also happen if we PR commits that don't do changes in family # dirs. In these cases the PR author should probably come up with a # better title than this placeholder an change it in the GitHub web-GUI. pr_title = '(UNKNOWN gftools-packager: found no family changes)' current_commit = tip_commit messages = [] while current_commit.id != root_commit.id: messages.append(f' {current_commit.short_id}: {current_commit.message}') current_commit = current_commit.parents[0] pr_message_body = '\n\n'.join(reversed(messages)) _make_pr(repo, target_branch, pr_upstream, push_upstream, pr_title, pr_message_body) def _packagage_to_dir(tmp_package_family_dir: str, target: str, family_dir: str, force: bool, yes: bool, quiet: bool): # target is a directory: target_family_dir = os.path.join(target, family_dir) if os.path.exists(target_family_dir): if not force: answer = user_input(f'Can\'t override existing directory {target_family_dir}' ' without explicit permission.', OrderedDict(f='force override', q='quit program'), default='q', yes=yes, quiet=quiet) if answer == 'q': raise UserAbortError('Can\'t override existing directory ' f'{target_family_dir}. ' 'Use --force to allow explicitly.') shutil.rmtree(target_family_dir) else: # not exists os.makedirs(os.path.dirname(target_family_dir), exist_ok=True) shutil.move(tmp_package_family_dir, target_family_dir) # only for reporting target_label = f'directory {target}' package_contents = [] for root, dirs, files in os.walk(target_family_dir): for filename in files: full_path = os.path.join(root, filename) entry_name = os.path.relpath(full_path, target) filesize = os.path.getsize(full_path) package_contents.append((entry_name, filesize)) print(f'Package Directory: {target_family_dir}') _print_package_report(target_label, package_contents) def _write_upstream_yaml_backup(upstream_conf_yaml: YAML) -> str: family_name_normal = _family_name_normal(upstream_conf_yaml['name'].data) count = 0 while True: counter = '' if count == 0 else f'_{count}' filename = f'./{family_name_normal}.upstream{counter}.yaml' try: # 'x': don't override existing files with open(filename, 'x') as f: f.write(upstream_conf_yaml.as_yaml()) except FileExistsError: # retry until the file could be created, file name changes count += 1 continue break return filename def _packages_to_target(tmp_package_dir: str, family_dirs: typing.List[str], target: str, is_gf_git: bool, branch: str, force: bool, yes: bool, quiet: bool, add_commit: bool, no_source: bool) ->None: for i, family_dir in enumerate(family_dirs): tmp_package_family_dir = os.path.join(tmp_package_dir, family_dir) # NOTE: if there are any files outside of family_dir that need moving # that is not yet supported! The reason is, there's no case for this # yet. So, if _create_package_content is changed to put files outside # of family_dir, these targets will have to follow and implement it. if is_gf_git: if i > 0: add_commit = True _packagage_to_git(tmp_package_family_dir, target, family_dir, branch, force, yes, quiet, add_commit, no_source) else: _packagage_to_dir(tmp_package_family_dir, target, family_dir, force, yes, quiet) def _branch_name_from_family_dirs(family_dirs: typing.List[str]) -> str: if len(family_dirs) == 1: return f'{GIT_NEW_BRANCH_PREFIX}{family_dirs[0].replace(os.sep, "_")}' by_licensedir: typing.Dict[str, typing.List[str]] = {}; for f in family_dirs: license_dir = os.path.dirname(f) if license_dir not in by_licensedir: by_licensedir[license_dir] = [] by_licensedir[license_dir].append(os.path.basename(f)) # All the sorting is to achieve the same branch name, when # family_dirs comes in a different order but with the same content. particles = [] for license_dir, families in by_licensedir.items(): particles.append(f'{license_dir}_{"-".join(sorted(families))}') # Could be like (in an extreme case): # gftools_packager_apache_arimo-cherrycreamsoda_ofl_acme-balsamiqsans-librebarcode39extendedtext full_branch_name = f'{GIT_NEW_BRANCH_PREFIX}{"_".join(sorted(particles))}' # I don't know hard limits here max_len = 60 if len(full_branch_name) <= max_len: return full_branch_name hash_hex_ini = sha1(full_branch_name.encode('utf-8')).hexdigest()[:10] # This is the shortened version from above: # gftools_packager_apache_arimo-cherrycreamsoda_ofl_d79615d347 return f'{full_branch_name[:max_len-11]}_{hash_hex_ini}' def _file_or_family_is_file(file_or_family: str) -> bool: return file_or_family.endswith('.yaml') or \ file_or_family.endswith('.yml') # .yml is common, too def _output_upstream_yaml(file_or_family: typing.Union[str, None], target: str, yes: bool, quiet: bool, force: bool) -> None: if not file_or_family: # just use the template upstream_conf_yaml = dirty_load(upstream_yaml_template, upstream_yaml_template_schema , allow_flow_style=True) else: is_file = _file_or_family_is_file(file_or_family) upstream_conf_yaml, _, _ = _get_upstream_info(file_or_family, is_file, yes, quiet, require_license_dir=False, use_template_schema=True) # save! while True: try: with open(target, 'x' if not force else 'w') as f: f.write(upstream_conf_yaml.as_yaml()) break except FileExistsError: if not force: answer = user_input(f'Can\'t override existing target file {target}' ' without explicit permission.', OrderedDict(f='force override', q='quit program'), default='q', yes=yes, quiet=quiet) if answer == 'q': raise UserAbortError('Can\'t override existing target file ' f'{target}. ' 'Use --force to allow explicitly.') else: # answer == 'f' force = True continue print(f'DONE upstream conf saved as {target}!') def make_package(file_or_families: typing.List[str], target: str, yes: bool, quiet: bool, no_whitelist: bool, is_gf_git: bool, force: bool, add_commit: bool, pr: bool, pr_upstream: str, push_upstream: str, upstream_yaml: bool, no_source: bool, allow_build: bool, branch: typing.Union[str, None]=None): if upstream_yaml: return _output_upstream_yaml(file_or_families[0] if file_or_families else None, target, yes, quiet, force) # some flags can be set implicitly pr = pr or bool(push_upstream) or bool(pr_upstream) # set default if not pr_upstream: pr_upstream = 'google/fonts' is_gf_git = is_gf_git or bool(branch) or add_commit or pr # Basic early checks. Raises if target does not qualify. _check_target(is_gf_git, target) # note: use branch if it is explicit (and if is_gf_git) target_branch = branch if branch is not None else '' family_dirs: typing.List[str] = [] with TemporaryDirectory() as tmp_dir: tmp_package_dir = os.path.join(tmp_dir, 'packages') os.makedirs(tmp_package_dir, exist_ok=True) tmp_repos_dir = os.path.join(tmp_dir, 'repos') os.makedirs(tmp_repos_dir, exist_ok=True) for file_or_family in file_or_families: is_file = _file_or_family_is_file(file_or_family) edit = False while True: # repl if not edit: ( upstream_conf_yaml, license_dir, gf_dir_content ) = _get_upstream_info(file_or_family, is_file, yes, quiet) else: ( upstream_conf_yaml, license_dir, gf_dir_content ) = _edit_upstream_info(upstream_conf_yaml, file_or_family, is_file, yes, quiet) edit = False # reset assert isinstance(license_dir, str) try: family_dir = _create_package_content(tmp_package_dir, tmp_repos_dir, upstream_conf_yaml, license_dir, gf_dir_content, # if is_gf_git source is removed in an # extra commit no_source and not is_gf_git, allow_build, yes, quiet, no_whitelist) family_dirs.append(family_dir) except UserAbortError as e: # The user aborted already, no need to bother any further. # FIXME: however, we don't get to the point where we can save # the upstream conf to disk, and that may be desirable here! raise e except Exception: error_io = StringIO() traceback.print_exc(file=error_io) error_io.seek(0) answer = user_input(f'Upstream conf caused an error:' f'\n-----\n\n{error_io.read()}\n-----\n' 'How do you want to proceed?', OrderedDict(e='edit upstream conf and retry', q='raise and quit program'), default='q', yes=yes, quiet=quiet) if answer == 'q': if not yes: # Should be possible to save to original file if is_file # but we should give that option only if the file would change. # Also, in edit_upstream_info it is possible to save to the # original file. answer = user_input('Save upstream conf to disk?\nIt can be ' 'annoying having to redo all changes, which ' 'will be lost if you choose no.\n' 'The saved file can be edited and used with ' 'the --file option.' , OrderedDict(y='yes—save to disk', n='no—discard changes'), default='y', yes=yes, quiet=quiet) if answer == 'y': upstream_yaml_backup_filename = _write_upstream_yaml_backup( upstream_conf_yaml) print(f'Upstream conf has been saved to: {upstream_yaml_backup_filename}') raise UserAbortError() else: # answer == 'e' # continue loop: go back to _get_upstream_info edit = True continue # Done with file_or_family! break # break the REPL while loop. if not family_dirs: print('No families to package.') # done with collecting data for all file_or_families if is_gf_git: # need to have a unified branch for all file_or_families ... # if there are more than one families ... if not branch: target_branch = _branch_name_from_family_dirs(family_dirs) _packages_to_target(tmp_package_dir, family_dirs, target, is_gf_git, target_branch, force, yes, quiet, add_commit, no_source) if pr and is_gf_git: _dispatch_git(target, target_branch, pr_upstream, push_upstream) def _print_package_report (target_label: str, package_contents: typing.List[typing.Tuple[str, int]]) -> None: print(f'Created files in {target_label}:') for entry_name, filesize in package_contents: filesize_str = filesize print(f' {entry_name} {_sizeof_fmt(filesize_str)}') def _find_github_remote(repo: pygit2.Repository, owner: str, name: str, branch: typing.Union[str, None] = None) -> typing.Union[str, None]: """ Find a remote-name that is a good fit for the GitHub owner and repo-name. A good fit is when we can use it to fetch/push from/to GitHubs repository to/from the `branch` if branch is given or any branch if `branch` is None. Returns remote-name or None """ searched_repo = f'{owner}/{name}' # If we plan to also push to these, it is important which # remote url we choose, esp. because of authentication methods. # I'd try to pick remotes after the order below, e.g. first the # ssh based urls, then the https url, because human users will # likely have a working ssh setup if they are pushing to github, # An environment like the FBD can have complete control over the # remotes it uses. # If more control is needed we'll have to add it. accepted_remote_urls = [ GITHUB_REPO_SSH_URL(repo_name_with_owner=searched_repo), # ssh f'ssh://git@github.com/{searched_repo}', # ssh f'https://github.com/{searched_repo}.git', # token (auth not needed for fetch) ] candidates = dict() # url->remote # NOTE: a shallow cloned repository has no remotes. for remote in repo.remotes: if remote.url not in accepted_remote_urls or remote.url in candidates: continue # To be honest, we'll likely encounter the (default) first refspec case # in almost all matching remotes. accepted_refspecs = { f'+refs/heads/*:refs/remotes/{remote.name}/*' } if branch: accepted_refspecs.add( f'+refs/heads/{branch}:refs/remotes/{remote.name}/{branch}') for refspec in remote.fetch_refspecs: if refspec in accepted_refspecs: # Could ask the user here if this remote should be used # but actually, the most common case will be that there's just # one that is good, and we're picking below from the ordered list # of accepted_remote_urls. candidates[remote.url] = remote # else Skipping refspec is probably insufficient. for url in accepted_remote_urls: if url in candidates: return candidates[url].name return None class PYGit2RemoteCallbacks(pygit2.RemoteCallbacks): # this will be set if a push was rejected rejected_push_message: typing.Union[str, None] = None def push_update_reference(self, refname, message): """Push update reference callback. Override with your own function to report the remote’s acceptance or rejection of reference updates. refnamestr The name of the reference (on the remote). messagestr Rejection message from the remote. If None, the update was accepted. """ if message is not None: self.rejected_push_message = (f'Update to reference {refname} got ' f'rejected with message {message}') def credentials(self, url, username_from_url, allowed_types): if allowed_types & pygit2.credentials.GIT_CREDENTIAL_USERNAME: print('GIT_CREDENTIAL_USERNAME') return pygit2.Username("git") elif allowed_types & pygit2.credentials.GIT_CREDENTIAL_SSH_KEY: # https://github.com/libgit2/pygit2/issues/428#issuecomment-55775298 # "The username for connecting to GitHub over SSH is 'git'." # I filed https://github.com/libgit2/pygit2/issues/1013 # because using just: # return pygit2.Keypair(username_from_url, pubkey, privkey, '') # didn't work, there's also the example how I tried. # It's probably also what the user (the git command of the user) # does in this case and uses ssh-agent to do the auth # return pygit2.Keypair(username_from_url, None, None, '') # There's a better readable shortcut (does the same): # If "git clone ..." works with an ssh remote, this should work # as well, no need to put configuration anywhere. return pygit2.KeypairFromAgent(username_from_url) else: return False # def sideband_progress(self, data): # print(f'sideband_progress: {data}') # # # this works! # def transfer_progress(self, tp): # print('transfer_progress:\n' # f' received_bytes {tp.received_bytes}\n' # f' indexed_objects {tp.indexed_objects}\n' # f' received_objects {tp.received_objects}') def _git_fetch_master(repo: pygit2.Repository, remote_name: str) -> None: # perform a fetch print(f'Start fetching {remote_name}/master') # fetch(refspecs=None, message=None, callbacks=None, prune=0) # using just 'master' instead of 'refs/heads/master' works as well # This fails on MacOS, just as any oother pygit2 network interaction. # remote = repo.remotes[remote_name] # stats = remote.fetch(['refs/heads/master'], callbacks=PYGit2RemoteCallbacks()) subprocess.run(['git', 'fetch', remote_name, 'master'], cwd=repo.path, check=True, stdout=subprocess.PIPE ) print(f'DONE fetch') # {_sizeof_fmt(stats.received_bytes)} ' # f'{stats.indexed_objects} receive dobjects!') @contextmanager def _create_tmp_remote(repo: pygit2.Repository, url:str) -> typing.Iterator[pygit2.Remote]: remote_name_template = 'tmp_{}'.format # create a new remote (with unique name) i = 0 tmp_name: str remote: pygit2.Remote # try to create and expect to fail if it exists while True: try: tmp_name = remote_name_template(i) remote = repo.remotes.create(tmp_name, url) break except ValueError as e: # raises ValueError: remote '{tmp_name}' already exists if 'already exists' not in f'{e}': # ValueError is rather generic, maybe another condition can raise # it, hence I check for the phrase "already exists" as well. # I think something similar to FileExistsError would have been better # to raise here. Though that's an OSError. raise e i += 1 continue try: yield remote finally: repo.remotes.delete(tmp_name) # note: currently unused, example! # def _git_create_remote(repo: pygit2.Repository) -> None: # # If we did not find a suitable remote, we can add it. # # If remote_name exists: repo.remotes.creat raises: # # "ValueError: remote 'upstream' already exists" # default_remote_name = 'upstream' # # remote_name = input(f'Creating a git remote.\nEnter remote name (default={default_remote_name}),a=abort:') # if remote_name == 'a': # raise UserAbortError() # remote_name = remote_name or default_remote_name # # searched_repo = 'google/fonts' # url = f'git@github.com:{searched_repo}.git' # # url = f'ssh://git@github.com/{searched_repo}' # # url = f'https://github.com/{searched_repo}.git' # # refspecs_candidates = { # '1': f'+refs/heads/*:refs/remotes/{remote_name}/*' # , '2': f'+refs/heads/master:refs/remotes/{remote_name}/master' # } # print('Pick a fetch refspec for the remote:') # print(f'1: {refspecs_candidates["1"]} (default)') # print(f'2: {refspecs_candidates["2"]} (minimal)') # refspec = input(f'1(default),2,a=abort:').strip() # if refspec == 'a': # raise UserAbortError() # fetch_refspec = refspecs_candidates[refspec or '1'] # # # raises ValueError: remote 'upstream' already exists # # fetch argument will apply the default refspec if it is None # repo.remotes.create(remote_name, url, fetch=fetch_refspec) Lib/gftools/stat.py000066400000000000000000000325731376445505300146140ustar00rootroot00000000000000"""Generate STAT tables for a Variable Font Family This module exports the function "gen_stat_tables" which can be used to generate a STAT table for each font in a Variable Font Family. The STAT AxisValues are constructed using the Google Font's Axis Registry, https://github.com/google/fonts/tree/master/axisregistry The function should be able to make STAT tables for any family with the following properties: - All fonts contain the same amount of fvar axes - All fvar axes have the same ranges """ from fontTools.otlLib.builder import buildStatTable from gftools.fix import font_stylename, font_familyname from gftools.axisreg import axis_registry import logging __all__ = ["gen_stat_tables", "ELIDABLE_AXIS_VALUE_NAME"] log = logging.getLogger(__name__) ELIDABLE_AXIS_VALUE_NAME = 0x2 # TODO we may have more of these. Please note that some applications may not # implement variable font style linking. LINKED_VALUES = { "wght": (400, 700), "ital": (0.0, 1.0), } def _gen_stat_from_fvar(ttFont, axis_reg=axis_registry): """Generate a STAT table using a ttFont's fvar and the GF axis registry. Args: axis_reg: gf axis registry ttFont: a TTFont instance """ fvar = ttFont["fvar"] axis_defaults = {a.axisTag: a.defaultValue for a in fvar.axes} results = {} for axis in fvar.axes: axis_tag = axis.axisTag if axis_tag not in axis_reg: log.warning( f"'{axis_tag}' isn't in our axis registry. Please open an issue " "to discuss the inclusion of this axis, " "https://github.com/google/fonts/issues" ) continue # Add Axis Record results[axis_tag] = { "tag": axis_tag, "name": axis_reg[axis_tag].display_name, "values": [], } # Add Axis Values min_value = axis.minValue max_value = axis.maxValue for fallback in axis_reg[axis_tag].fallback: if fallback.value >= min_value and fallback.value <= max_value: axis_value = _add_axis_value(fallback.name, fallback.value) # set elided axis_values # if axis is opsz, we want to use the fvar default if axis_tag == "opsz" and axis_defaults[axis_tag] == fallback.value: axis_value["flags"] |= ELIDABLE_AXIS_VALUE_NAME # for all other weights, we want to use the axis reg default elif fallback.value == axis_reg[axis_tag].default_value: axis_value["flags"] |= ELIDABLE_AXIS_VALUE_NAME results[axis_tag]["values"].append(axis_value) return results def _axes_in_family_name_records(ttFonts): results = set() for ttFont in ttFonts: familyname = font_familyname(ttFont) stylename = font_stylename(ttFont) results |= set(stylename_to_axes(familyname)) | set( stylename_to_axes(stylename) ) return results def stylename_to_axes(font_style, axis_reg=axis_registry): """Get axis names for stylename particles using the axis registry e.g "Condensed Bold Italic" --> ["wdth", "wght", "ital"] Args: axis_reg: gf axis registry font_style: str Returns: list(str,...) """ axes = [] unparsed_tokens = [] tokens = font_style.split() for token in tokens: axis = style_token_to_axis(token) if axis: axes.append(axis) else: unparsed_tokens.append(token) if unparsed_tokens: log.debug( f"Following tokens were not found in the Axis Registry " f"{list(unparsed_tokens)}. Axis Values will not be created " f"for these tokens" ) return axes def style_token_to_axis(string, axis_reg=axis_registry): # Condensed --> width for axis_tag, axis in axis_reg.items(): for fallback in axis.fallback: if fallback.name == string: return axis_tag return None def _append_non_fvar_axes_to_stat( ttFont, stat_table, axes_in_family_name_records, axis_reg=axis_registry ): stylename = font_stylename(ttFont) familyname = font_familyname(ttFont) style = f"{familyname} {stylename}" # {"wght": "Regular", "ital": "Roman", ...} font_axes_in_namerecords = {style_token_to_axis(t): t for t in style.split()} # Add axes to ttFont which exist across the family but are not in the # ttFont's fvar axes_missing = axes_in_family_name_records - set(stat_table) for axis in axes_missing: axis_record = { "tag": axis, "name": axis_reg[axis].display_name, "values": [], } # Add Axis Value for axis which isn't in the fvar or ttFont style # name/family name if axis not in font_axes_in_namerecords: axis_record["values"].append(_default_axis_value(axis, axis_reg)) # Add Axis Value for axis which isn't in the fvar but does exist in # the ttFont style name/family name else: style_name = font_axes_in_namerecords[axis] value = next( (i.value for i in axis_reg[axis].fallback if i.name == style_name), None, ) axis_value = _add_axis_value(style_name, value) axis_record["values"].append(axis_value) stat_table[axis] = axis_record return stat_table def _seen_axis_values(stat_tables): seen_axis_values = {} for stat_tbl in stat_tables: for axis_tag, axis in stat_tbl.items(): if axis_tag not in seen_axis_values: seen_axis_values[axis_tag] = set() seen_axis_values[axis_tag] |= set(i["value"] for i in axis["values"]) return seen_axis_values def _add_linked_axis_values_to_stat(stat_table, seen_axis_values): for axis_tag, axis in stat_table.items(): if axis_tag not in LINKED_VALUES: continue start, end = LINKED_VALUES[axis_tag] for axis_value in axis["values"]: if axis_value["value"] == start and end in seen_axis_values[axis_tag]: axis_value["linkedValue"] = end return stat_table def _add_elided_axis_values_to_stat(stat_table, elided_values): """Overwrite which Axis Values should be elided. Args: stat: a stat table elided_values: dict structured as {"axisTag": [100,200 ...]}""" for axis_tag, axis in stat_table.items(): if axis_tag not in elided_values: continue for val in axis["values"]: if val["value"] in elided_values[axis_tag]: val["flags"] |= ELIDABLE_AXIS_VALUE_NAME else: val["flags"] &= ~ELIDABLE_AXIS_VALUE_NAME return stat_table def _add_axis_value(style_name, value, flags=0x0, linked_value=None): value = {"value": value, "name": style_name, "flags": flags} if linked_value: value["linkedValue"] = linked_value return value def _default_axis_value(axis, axis_reg=axis_registry): axis_record = axis_reg[axis] default_value = axis_record.default_value default_name = next( (i.name for i in axis_record.fallback if i.value == default_value), None ) return _add_axis_value(default_name, default_value, flags=ELIDABLE_AXIS_VALUE_NAME) def validate_axis_order(axis_order, seen_axes): axes_not_ordered = seen_axes - set(axis_order) if axes_not_ordered: raise ValueError(f"Axis order arg is missing {axes_not_ordered} axes.") def validate_family_fvar_tables(ttFonts): """Google Fonts requires all VFs in a family to have the same amount of fvar axes and each fvar axis should have the same range. Args: ttFonts: an iterable containing TTFont instances """ for ttFont in ttFonts: if "fvar" not in ttFont: raise ValueError(f"Font is missing fvar table") failed = False src_fvar = ttFonts[0]["fvar"] src_axes = {a.axisTag: a.__dict__ for a in src_fvar.axes} for ttFont in ttFonts: fvar = ttFont["fvar"] axes = {a.axisTag: a.__dict__ for a in fvar.axes} if len(axes) != len(src_axes): failed = True break for axis_tag in axes: if axes[axis_tag]["minValue"] != src_axes[axis_tag]["minValue"]: failed = True if axes[axis_tag]["maxValue"] != src_axes[axis_tag]["maxValue"]: failed = True # TODO should this fail if default values are different? if failed: raise ValueError("fvar axes are not consistent across the family") def _update_fvar_nametable_records(ttFont, stat_table): """Add postscript names to fvar instances and add nameID 25 to a font's nametable""" nametable = ttFont["name"] fvar = ttFont["fvar"] family_name = font_familyname(ttFont) axes_with_one_axis_value = [ a["values"][0] for a in stat_table if len(a["values"]) == 1 ] tokens = [v["name"] for v in axes_with_one_axis_value] tokens = [t for t in tokens if t not in family_name.split()] ps_tokens = "".join(t for t in tokens) # Variations PostScript Name Prefix ps_prefix = f"{family_name}{ps_tokens}".replace(" ", "") for rec in [(25, 1, 0, 0), (25, 3, 1, 0x409)]: nametable.setName(ps_prefix, *rec) # Add or update fvar instance postscript names for instance in fvar.instances: subfamily_id = instance.subfamilyNameID subfamily_name = nametable.getName(subfamily_id, 3, 1, 0x409).toUnicode() for token in tokens: subfamily_name = subfamily_name.replace(token, "") if subfamily_name == "": subfamily_name = "Regular" ps_name = f"{ps_prefix}-{subfamily_name}".replace(" ", "") # Remove ps name records if they already exist if instance.postscriptNameID != 65535: nametable.removeNames(nameID=instance.postscriptNameID) instance.postscriptNameID = nametable.addName(ps_name) def gen_stat_tables( ttFonts, axis_order, elided_axis_values=None, axis_reg=axis_registry ): """ Generate a stat table for each font in a family using the Google Fonts Axis Registry. Args: ttFonts: an iterable containing ttFont instances axis_order: a list containing the axis order elided_axis_values: a dict containing axes and their values to elide e.g {"wght": [400], "wdth": [100]} axis_reg: Google Fonts axis registry """ # Heuristic: # 1. Gen a STAT table for each font using their fvar tables only # 2. Collect all the axes which exist in every font's family name and # and style name # 3. Add further Axis Records to each font's stat table for the axes we # found in step 2. Only add them if the stat table doesn't contain them # already. # 4. Add an AxisValue to each of the Axes Records we added in step 3. # For each axis in each font, do the following: # a. If a font's name table contains the axis and it is not in the # fvar, we will create a new Axis Value using the axis registry # fallbacks. # b. If a font's name table doesn't contain the axis, we will create a # new Axis Value based the default values found in the axis registry # # Example: # # Test Case: # Axes in family names: ["wdth", "wght", "ital"] # Font StyleName = "Condensed Bold" # Axes in font fvar = ["wght"] # # a result: # axisValue = {"name": "Condensed", "value": 75.0} # "Condensed" exists in our axis registry as a fallback in the # wdth axis # # b result: # AxisValue = {"name": "Roman", "value": 0.0, flags=0x2} # Since there isn't an ital token in the Font family name or # style name, the AxisValue will be based on the default values # for the axis in our axis registry # # 4. For each stat table, update Axis Values which should be linked # 5. For each stat table, update Axis Values which should be elided based # on the user arg elided_axis_values (optional) # 6. For each stat table, sort axes based on the arg axis_order # 7. Use fontTools to build each stat table for each font validate_family_fvar_tables(ttFonts) stat_tables = [_gen_stat_from_fvar(f) for f in ttFonts] axes_in_family_name_records = _axes_in_family_name_records(ttFonts) stat_tables = [ _append_non_fvar_axes_to_stat(ttFont, stat, axes_in_family_name_records) for ttFont, stat in zip(ttFonts, stat_tables) ] seen_axis_values = _seen_axis_values(stat_tables) stat_tables = [ _add_linked_axis_values_to_stat(s, seen_axis_values) for s in stat_tables ] if elided_axis_values: stat_tables = [ _add_elided_axis_values_to_stat(s, elided_axis_values) for s in stat_tables ] # TODO make axis_order an optional arg. We can only do this once we # have established an axis order in the axis registry validate_axis_order(axis_order, set(seen_axis_values.keys())) assert len(stat_tables) == len(ttFonts) axis_order = [a for a in axis_order if a in seen_axis_values.keys()] for stat_table, ttFont in zip(stat_tables, ttFonts): stat_table = [stat_table[axis] for axis in axis_order] _update_fvar_nametable_records(ttFont, stat_table) buildStatTable(ttFont, stat_table) Lib/gftools/template.upstream.yaml000066400000000000000000000033531376445505300176170ustar00rootroot00000000000000# Please edit this upstream configuration for the family accordingly. # This is a yaml formatted file. # An "#" (number sign) denotes a comment. # For more help see the docs at: # https://github.com/googlefonts/gf-docs/tree/master/METADATA # Full family name, with initial upper cases and spaces name: # In most cases this should be based on the GitHub https repo url: # this https://github.com/{owner}/{repo}.git repository_url: # The branch name used to update google fonts. e.g.: master branch: master # Choose one of: {CATEGORIES} category: # Full name of the type designer(s) or foundry who designed the fonts. designer: # optional commands to build, using bash -c {build} # if you need a python virtual env, this must be created with build as well # TODO: sandboxing and venv creation should be handled by the tool, maybe # using docker ... # FIXME: for FDB this is a security issue! should only run sanctioned/signed # scripts. Maybe we can have a secure $ gftools fontmake ... # See: discussion at https://github.com/googlefonts/gftools/issues/231 build: # Dictionary mapping of SOURCE file names to TARGET file names. Where # SOURCE is the file path in the upstream repo and TARGET is the file # path in the google fonts family directory. # Accepted and expected files: # - The font files, ending with ".ttf" # - In case of a variable font, static instances in: static/Family-instance.ttf # - DESCRIPTION.en_us.html # - OFL.txt, the license. Less likely UFL.txt and LICENSE.txt. # - (optional) FONTLOG.txt files: # These are some examples as comments, please modify, add, delete as necessary: # OFL.txt: OFL.txt # DESCRIPTION.en_us.html: DESCRIPTION.en_us.html # fonts/variable/Gelasio-Italic-VF.ttf: Gelasio-Italic[wght].ttf Lib/gftools/tests/000077500000000000000000000000001376445505300144175ustar00rootroot00000000000000Lib/gftools/tests/test_fix.py000066400000000000000000000306261376445505300166250ustar00rootroot00000000000000from fontTools.ttLib import newTable, TTFont from gftools.fix import * from glob import glob import pytest import os from copy import deepcopy TEST_DATA = os.path.join("data", "test") @pytest.fixture def static_font(): return TTFont(os.path.join(TEST_DATA, "Lora-Regular.ttf")) @pytest.fixture def var_font(): return TTFont(os.path.join(TEST_DATA, "Inconsolata[wdth,wght].ttf")) @pytest.fixture def var_fonts(): paths = [ os.path.join(TEST_DATA, "Raleway[wght].ttf"), os.path.join(TEST_DATA, "Raleway-Italic[wght].ttf") ] return [TTFont(p) for p in paths] @pytest.fixture def static_fonts(): return [TTFont(f) for f in glob(os.path.join("data", "test", "mavenpro", "*.ttf"))] def test_remove_tables(static_font): # Test removing a table which is part of UNWANTED_TABLES tsi1_tbl = newTable("TSI1") static_font["TSI1"] = tsi1_tbl assert "TSI1" in static_font tsi2_tbl = newTable("TSI2") static_font["TSI2"] = tsi2_tbl remove_tables(static_font, ["TSI1", "TSI2"]) assert "TSI1" not in static_font assert "TSI2" not in static_font # Test removing a table which is essential remove_tables(static_font, ["glyf"]) assert "glyf" in static_font def test_add_dummy_dsig(static_font): assert "DSIG" not in static_font add_dummy_dsig(static_font) assert "DSIG" in static_font def test_fix_hinted_font(static_font): static_font["head"].flags &= ~(1 << 3) assert static_font["head"].flags & (1 << 3) != (1 << 3) fix_hinted_font(static_font) assert static_font["head"].flags & (1 << 3) == (1 << 3) def test_fix_unhinted_font(static_font): for tbl in ("prep", "gasp"): if tbl in static_font: del static_font[tbl] fix_unhinted_font(static_font) assert static_font["gasp"].gaspRange == {65535: 15} assert "prep" in static_font def test_fix_fs_type(static_font): static_font["OS/2"].fsType = 1 assert static_font["OS/2"].fsType == 1 fix_fs_type(static_font) assert static_font["OS/2"].fsType == 0 # Taken from https://github.com/googlefonts/gf-docs/tree/master/Spec#supported-styles STYLE_HEADERS = "style, weight_class, fs_selection, mac_style" STYLE_TABLE = [ ("Hairline", 1, (1 << 6), (0 << 0)), ("Thin", 100, (1 << 6), (0 << 0)), ("ExtraLight", 200, (1 << 6), (0 << 0)), ("Light", 300, (1 << 6), (0 << 0)), ("Regular", 400, (1 << 6), (0 << 0)), ("Medium", 500, (1 << 6), (0 << 0)), ("SemiBold", 600, (1 << 6), (0 << 0)), ("Bold", 700, (1 << 5), (1 << 0)), ("ExtraBold", 800, (1 << 6), (0 << 0)), ("Black", 900, (1 << 6), (0 << 0)), ("ExtraBlack", 1000, (1 << 6), (0 << 0)), ("Hairline Italic", 1, (1 << 0), (1 << 1)), ("Thin Italic", 100, (1 << 0), (1 << 1)), ("ExtraLight Italic", 200, (1 << 0), (1 << 1)), ("Light Italic", 300, (1 << 0), (1 << 1)), ("Italic", 400, (1 << 0), (1 << 1)), ("Medium Italic", 500, (1 << 0), (1 << 1)), ("SemiBold Italic", 600, (1 << 0), (1 << 1)), ("Bold Italic", 700, (1 << 0) | (1 << 5), (1 << 0) | (1 << 1)), ("ExtraBold Italic", 800, (1 << 0), (1 << 1)), ("Black Italic", 900, (1 << 0), (1 << 1)), ("ExtraBlack Italic", 1000, (1 << 0), (1 << 1)), # Variable fonts may have tokens other than weight and italic in their names ("SemiCondensed Bold Italic", 700, (1 << 0) | (1 << 5), (1 << 0) | (1 << 1)), ("12pt Italic", 400, (1 << 0), (1 << 1)), ] @pytest.mark.parametrize( STYLE_HEADERS, STYLE_TABLE ) def test_fix_weight_class(static_font, style, weight_class, fs_selection, mac_style): name = static_font["name"] name.setName(style, 2, 3, 1, 0x409) name.setName(style, 17, 3, 1, 0x409) fix_weight_class(static_font) assert static_font["OS/2"].usWeightClass == weight_class def test_unknown_weight_class(static_font): name = static_font["name"] name.setName("Foobar", 2, 3, 1, 0x409) name.setName("Foobar", 17, 3, 1, 0x409) from gftools.fix import WEIGHT_NAMES with pytest.raises(ValueError, match="Cannot determine usWeightClass"): fix_weight_class(static_font) @pytest.mark.parametrize( STYLE_HEADERS, STYLE_TABLE ) def test_fs_selection(static_font, style, weight_class, fs_selection, mac_style): # disable fsSelection bits above 6 for i in range(7, 12): static_font["OS/2"].fsSelection &= ~(1 << i) name = static_font["name"] name.setName(style, 2, 3, 1, 0x409) name.setName(style, 17, 3, 1, 0x409) fix_fs_selection(static_font) assert static_font["OS/2"].fsSelection == fs_selection @pytest.mark.parametrize( STYLE_HEADERS, STYLE_TABLE ) def test_fix_mac_style(static_font, style, weight_class, fs_selection, mac_style): name = static_font["name"] name.setName(style, 2, 3, 1, 0x409) name.setName(style, 17, 3, 1, 0x409) fix_mac_style(static_font) assert static_font["head"].macStyle == mac_style STYLENAME_HEADERS = "family_name, style, id1, id2, id16, id17" STYLENAME_TABLE = [ # Roman ("Test Family", "Hairline", "Test Family Hairline", "Regular", "Test Family", "Hairline"), ("Test Family", "Thin", "Test Family Thin", "Regular", "Test Family", "Thin"), ("Test Family", "ExtraLight", "Test Family ExtraLight", "Regular", "Test Family", "ExtraLight"), ("Test Family", "Light", "Test Family Light", "Regular", "Test Family", "Light"), ("Test Family", "Regular", "Test Family", "Regular", "", ""), ("Test Family", "Medium", "Test Family Medium", "Regular", "Test Family", "Medium"), ("Test Family", "SemiBold", "Test Family SemiBold", "Regular", "Test Family", "SemiBold"), ("Test Family", "Bold", "Test Family", "Bold", "", ""), ("Test Family", "ExtraBold", "Test Family ExtraBold", "Regular", "Test Family", "ExtraBold"), ("Test Family", "Black", "Test Family Black", "Regular", "Test Family", "Black"), ("Test Family", "ExtraBlack", "Test Family ExtraBlack", "Regular", "Test Family", "ExtraBlack"), # Italics ("Test Family", "Hairline Italic", "Test Family Hairline", "Italic", "Test Family", "Hairline Italic"), ("Test Family", "Thin Italic", "Test Family Thin", "Italic", "Test Family", "Thin Italic"), ("Test Family", "ExtraLight Italic", "Test Family ExtraLight", "Italic", "Test Family", "ExtraLight Italic"), ("Test Family", "Light Italic", "Test Family Light", "Italic", "Test Family", "Light Italic"), ("Test Family", "Italic", "Test Family", "Italic", "", ""), ("Test Family", "Medium Italic", "Test Family Medium", "Italic", "Test Family", "Medium Italic"), ("Test Family", "SemiBold Italic", "Test Family SemiBold", "Italic", "Test Family", "SemiBold Italic"), ("Test Family", "Bold Italic", "Test Family", "Bold Italic", "", ""), ("Test Family", "ExtraBold Italic", "Test Family ExtraBold", "Italic", "Test Family", "ExtraBold Italic"), ("Test Family", "Black Italic", "Test Family Black", "Italic", "Test Family", "Black Italic"), ("Test Family", "ExtraBlack Italic", "Test Family ExtraBlack", "Italic", "Test Family", "ExtraBlack Italic"), ] @pytest.mark.parametrize( STYLENAME_HEADERS, STYLENAME_TABLE ) def test_update_nametable(static_font, family_name, style, id1, id2, id16, id17): update_nametable(static_font, family_name, style) nametable = static_font["name"] assert nametable.getName(1, 3, 1, 0x409).toUnicode() == id1 assert nametable.getName(2, 3, 1, 0x409).toUnicode() == id2 if id16 and id17: assert nametable.getName(16, 3, 1, 0x409).toUnicode() == id16 assert nametable.getName(17, 3, 1, 0x409).toUnicode() == id17 else: assert nametable.getName(16, 3, 1, 0x409) == None assert nametable.getName(17, 3, 1, 0x409) == None # TODO test fix_nametable once https://github.com/fonttools/fonttools/pull/2078 is merged def _get_fvar_instance_names(var_font): inst_names = [] for inst in var_font['fvar'].instances: inst_name = var_font['name'].getName(inst.subfamilyNameID, 3, 1, 0x409) inst_names.append(inst_name.toUnicode()) return inst_names def test_fix_fvar_instances(var_font): roman_instances = [ "ExtraLight", "Light", "Regular", "Medium", "SemiBold", "Bold", "ExtraBold", "Black" ] italic_instances = [ "ExtraLight Italic", "Light Italic", "Italic", "Medium Italic", "SemiBold Italic", "Bold Italic", "ExtraBold Italic", "Black Italic", ] var_font["fvar"].instances = [] fix_fvar_instances(var_font) inst_names = _get_fvar_instance_names(var_font) assert inst_names == roman_instances # Let's rename the font style so the font becomes an Italic variant var_font2 = deepcopy(var_font) var_font2["name"].setName("Italic", 2, 3, 1, 0x409) var_font2["name"].setName("Italic", 17, 3, 1, 0x409) fix_fvar_instances(var_font2) inst_names = _get_fvar_instance_names(var_font2) assert inst_names == italic_instances # Let's mock an ital axis so the font has both ital and wght axes new_fvar = deepcopy(var_font["fvar"]) new_fvar.axes[1].axisTag = "ital" new_fvar.axes[1].minValue = 0 new_fvar.axes[1].maxValue = 1 new_fvar.axes[1].defaultValue = 0 var_font3 = deepcopy(var_font) var_font3['fvar'] = new_fvar fix_fvar_instances(var_font3) inst_names = _get_fvar_instance_names(var_font3) assert inst_names == roman_instances + italic_instances def _check_vertical_metrics(fonts): ref_font = fonts[0] y_min = min(f["head"].yMin for f in fonts) y_max = max(f["head"].yMax for f in fonts) for font in fonts: # Check fsSelection bit 7 (USE_TYPO_METRICS) is enabled assert font["OS/2"].fsSelection & (1 << 7) > 0 # Check metrics are consistent across family assert font["OS/2"].usWinAscent == ref_font["OS/2"].usWinAscent assert font["OS/2"].usWinDescent == ref_font["OS/2"].usWinDescent assert font["OS/2"].sTypoAscender == ref_font["OS/2"].sTypoAscender assert font["OS/2"].sTypoDescender == ref_font["OS/2"].sTypoDescender assert font["OS/2"].sTypoLineGap == ref_font["OS/2"].sTypoLineGap assert font["hhea"].ascent == ref_font["hhea"].ascent assert font["hhea"].descent == ref_font["hhea"].descent assert font["hhea"].lineGap == ref_font["hhea"].lineGap # Check typo and hhea match assert font["OS/2"].sTypoAscender == font["hhea"].ascent assert font["OS/2"].sTypoDescender == ref_font["hhea"].descent assert font["OS/2"].sTypoLineGap == ref_font["hhea"].lineGap # Check win matches family_bounds assert font["OS/2"].usWinAscent == y_max assert font["OS/2"].usWinDescent == abs(y_min) def test_fix_vertical_metrics_family_consistency(static_fonts): _check_vertical_metrics(static_fonts) static_fonts[0]["OS/2"].sTypoLineGap = 1000 static_fonts[0]["OS/2"].usWinAscent = 4000 fix_vertical_metrics(static_fonts) _check_vertical_metrics(static_fonts) def test_fix_vertical_metrics_win_values(static_fonts): _check_vertical_metrics(static_fonts) for font in static_fonts: font["OS/2"].usWinAscent = font["OS/2"].usWinDescent = 0 assert font["OS/2"].usWinAscent == 0 and font["OS/2"].usWinDescent == 0 fix_vertical_metrics(static_fonts) _check_vertical_metrics(static_fonts) def test_fix_vertical_metrics_typo_and_hhea_match(static_fonts): _check_vertical_metrics(static_fonts) for font in static_fonts: font["hhea"].ascent = 5000 font["OS/2"].sTypoAscender == 1000 assert font["hhea"].ascent != font["OS/2"].sTypoAscender fix_vertical_metrics(static_fonts) _check_vertical_metrics(static_fonts) def test_fix_vertical_metrics_typo_metrics_enabled(static_fonts): _check_vertical_metrics(static_fonts) # family currently has fsSelection bit 7 enabled, unset it and change # the win Metrics to Typo values for font in static_fonts: font["OS/2"].fsSelection &= ~(1 << 7) font["OS/2"].usWinAscent = 500 font["OS/2"].usWinDescent = 300 fix_vertical_metrics(static_fonts) # Since fsSelection bit 7 is now enabled, in order for the metrics to visually # match the unfixed metrics, the typo values should now be the same as the # unfixed win values. for font in static_fonts: assert font["OS/2"].sTypoAscender == 500 assert font["OS/2"].sTypoDescender == -300 assert font["OS/2"].sTypoLineGap == 0 _check_vertical_metrics(static_fonts) Lib/gftools/tests/test_qa.py000066400000000000000000000037251376445505300164400ustar00rootroot00000000000000import subprocess import unittest import tempfile import os class TestQA(unittest.TestCase): def _test_diff_pr_vs_googlefonts(self): with tempfile.TemporaryDirectory() as qa_out: subprocess.call( [ "gftools", "qa", "-pr", "https://github.com/google/fonts/pull/2067", "-gfb", "--fontbakery", "-o", qa_out, ] ) self.assertTrue("Fontbakery" in os.listdir(qa_out)) def _test_diff_github_fonts_vs_googlefonts(self): with tempfile.TemporaryDirectory() as qa_out: subprocess.call( [ "gftools", "qa", "-gh", "https://github.com/googlefonts/AmaticSC/tree/master/fonts/ttf", "-gfb", "--fontbakery", "-o", qa_out, ] ) self.assertTrue("Fontbakery" in os.listdir(qa_out)) def test_diff_github_fonts_vs_googlefonts_vf(self): with tempfile.TemporaryDirectory() as qa_out: subprocess.call( [ "gftools", "qa", "-gh", "https://github.com/google/fonts/tree/master/ofl/mavenpro", "-gfb", "--fontbakery", "--diffenator", "--browser-previews", "--diffbrowsers", "--plot-glyphs", "-o", qa_out, ] ) for dir_ in ["Fontbakery", "Diffenator", "Diffbrowsers", "plot_glyphs", "browser_previews"]: self.assertTrue(dir_ in os.listdir(qa_out)) if __name__ == "__main__": unittest.main() Lib/gftools/tests/test_stat.py000066400000000000000000000306121376445505300170050ustar00rootroot00000000000000import pytest import os from glob import glob from gftools.stat import * from fontTools.ttLib import TTFont TEST_DATA = os.path.join("data", "test") @pytest.fixture def var_font(): """VF family consisting of a single font with two axes, wdth, wght""" return TTFont(os.path.join(TEST_DATA, "Inconsolata[wdth,wght].ttf")) @pytest.fixture def var_fonts(): """VF family consisting of two fonts, Roman, and Italic. Both have a weight axis""" paths = [ os.path.join(TEST_DATA, "Raleway[wght].ttf"), os.path.join(TEST_DATA, "Raleway-Italic[wght].ttf") ] return [TTFont(p) for p in paths] @pytest.fixture def var_fonts2(): """VF family consisting of four fonts, Roman, Italic, Condensed Roman, Condensed Italic. All only have a wght axis""" paths = [ os.path.join(TEST_DATA, "cabin_split", "Cabin[wght].ttf"), os.path.join(TEST_DATA, "cabin_split", "Cabin-Italic[wght].ttf"), os.path.join(TEST_DATA, "cabin_split", "CabinCondensed[wght].ttf"), os.path.join(TEST_DATA, "cabin_split", "CabinCondensed-Italic[wght].ttf") ] return [TTFont(p) for p in paths] @pytest.fixture def var_fonts3(): """VF family consisting of two fonts, Roman and Italic. Both have wdth and wght axies.""" paths = [ os.path.join(TEST_DATA, "cabin_multi", "Cabin[wdth,wght].ttf"), os.path.join(TEST_DATA, "cabin_multi", "Cabin-Italic[wdth,wght].ttf") ] return [TTFont(p) for p in paths] def _get_axis_value(font, axis, name, value): nametable = font["name"] stat = font["STAT"].table axis_indexes = {i: a.AxisTag for i,a in enumerate(stat.DesignAxisRecord.Axis)} axis_values = stat.AxisValueArray.AxisValue for axis_value in axis_values: axis_tag = axis_indexes[axis_value.AxisIndex] if axis_tag != axis: continue nameID = axis_value.ValueNameID name_string = nametable.getName(nameID, 3, 1, 0x409).toUnicode() if name_string != name: continue if axis_value.Value != value: continue return axis_value return None def test_gen_stat(var_font): del var_font["STAT"] gen_stat_tables([var_font], axis_order=["wdth", "wght"]) stat = var_font["STAT"].table axes = {i: a.AxisTag for i,a in enumerate(stat.DesignAxisRecord.Axis)} axis_values = var_font['STAT'].table.AxisValueArray.AxisValue # Check both wght and wdth axes exist axes_in_axis_values = set(axes[a.AxisIndex] for a in axis_values) assert axes_in_axis_values == {"wght", "wdth"} # Check wght axis values wght_axis_values = [v for v in axis_values if axes[v.AxisIndex] == "wght"] # Inconsolata has a min fvar wght of 200 and a max of 900. for axis_value, desired_weight in zip(wght_axis_values, range(200, 1000, 100)): assert axis_value.Value == desired_weight # Check wdth axis values wdth_axis_values = [v for v in axis_values if axes[v.AxisIndex] == "wdth"] # Inconsolata has a min fvar wdth of 50 and a max of 200. expected_wdths = [50, 62.5, 75, 87.5, 100, 112.5, 125, 150, 200] for axis_value, width in zip(wdth_axis_values, expected_wdths): assert axis_value.Value == width # Check Regular is linked to Bold reg_axis_value = _get_axis_value(var_font, "wght", "Regular", 400) assert reg_axis_value.LinkedValue == 700 # Check Regular is elided assert reg_axis_value.Flags & ELIDABLE_AXIS_VALUE_NAME == ELIDABLE_AXIS_VALUE_NAME # Check Normal width is elided normal_axis_value = _get_axis_value(var_font, "wdth", "Normal", 100) assert normal_axis_value.Flags & ELIDABLE_AXIS_VALUE_NAME == ELIDABLE_AXIS_VALUE_NAME def test_gen_stat_linked_values(var_font): del var_font["STAT"] gen_stat_tables([var_font], axis_order=["wdth", "wght"]) stat = var_font["STAT"].table reg_axis_value = _get_axis_value(var_font, "wght", "Regular", 400) assert reg_axis_value.LinkedValue == 700 def test_gen_stat_linked_values_2(var_fonts2): gen_stat_tables(var_fonts2, axis_order=["wdth", "wght", "ital"]) for font in var_fonts2: stat = font["STAT"].table reg_axis_value = _get_axis_value(font, "wght", "Regular", 400) assert reg_axis_value.LinkedValue == 700 def test_gen_stat_dflt_elided_values(var_fonts3): gen_stat_tables(var_fonts3, axis_order=["wdth", "wght", "ital"]) for font in var_fonts3: stat = font["STAT"].table # Check regular axis value is elided reg_axis_value = _get_axis_value(font, "wght", "Regular", 400) assert reg_axis_value.Flags & ELIDABLE_AXIS_VALUE_NAME == ELIDABLE_AXIS_VALUE_NAME # Check normal (wdth) axis value is elided normal_axis_value = _get_axis_value(font, "wdth", "Normal", 100) assert normal_axis_value.Flags & ELIDABLE_AXIS_VALUE_NAME == ELIDABLE_AXIS_VALUE_NAME def test_gen_stat_user_elided_values(var_fonts3): gen_stat_tables( var_fonts3, axis_order=["wdth", "wght", "ital"], elided_axis_values={"wght": [700], "wdth": [75]} ) for font in var_fonts3: stat = font["STAT"].table # First check that the dflt axis values are not elided! reg_axis_value = _get_axis_value(font, "wght", "Regular", 400) assert reg_axis_value.Flags & ELIDABLE_AXIS_VALUE_NAME != ELIDABLE_AXIS_VALUE_NAME normal_axis_value = _get_axis_value(font, "wdth", "Normal", 100) assert normal_axis_value.Flags & ELIDABLE_AXIS_VALUE_NAME != ELIDABLE_AXIS_VALUE_NAME # now check the user specified elided values are elided bold_axis_value = _get_axis_value(font, "wght", "Bold", 700) assert bold_axis_value.Flags & ELIDABLE_AXIS_VALUE_NAME == ELIDABLE_AXIS_VALUE_NAME condensed_axis_value = _get_axis_value(font, "wdth", "Condensed", 75) assert condensed_axis_value.Flags & ELIDABLE_AXIS_VALUE_NAME == ELIDABLE_AXIS_VALUE_NAME def test_gen_stat_roman_and_italic_family(var_fonts): for var_font in var_fonts: del var_font["STAT"] gen_stat_tables(var_fonts, axis_order=["wght", "ital"]) roman, italic = var_fonts roman_axis_val = _get_axis_value(roman, "ital", "Roman", 0.0) assert roman_axis_val != None assert roman_axis_val.LinkedValue == 1.0 italic_axis_val = _get_axis_value(italic, "ital", "Italic", 1.0) assert italic_axis_val != None def test_gen_stat_roman_and_italic_and_condensed_family(var_fonts2): gen_stat_tables(var_fonts2, axis_order=["wdth", "wght", "ital"]) roman, italic, condensed_roman, condensed_italic = var_fonts2 roman_ital_axis_val = _get_axis_value(roman, "ital", "Roman", 0.0) roman_wdth_axis_val = _get_axis_value(roman, "wdth", "Normal", 100.0) assert roman_ital_axis_val != None assert roman_wdth_axis_val != None italic_ital_axis_val = _get_axis_value(italic, "ital", "Italic", 1.0) italic_wdth_axis_val = _get_axis_value(italic, "wdth", "Normal", 100.0) assert italic_ital_axis_val != None assert italic_wdth_axis_val != None condensed_ital_axis_val = _get_axis_value(condensed_roman, "ital", "Roman", 0.0) condensed_wdth_axis_val = _get_axis_value(condensed_roman, "wdth", "Condensed", 75.0) assert condensed_ital_axis_val != None assert condensed_wdth_axis_val != None condensed_italic_ital_axis_val = _get_axis_value(condensed_italic, "ital", "Italic", 1.0) condensed_italic_wdth_axis_val = _get_axis_value(condensed_italic, "wdth", "Condensed", 75.0) assert condensed_italic_ital_axis_val != None assert condensed_italic_wdth_axis_val != None def test_gen_stat_family_with_uneven_axes(var_fonts3): from fontTools.varLib.instancer import instantiateVariableFont roman, italic = var_fonts3 # Drop the width axis from the roman font roman = instantiateVariableFont(roman, {"wdth": None}) # We cannot add STAT tables to these families since the Google Fonts API # doesn't support them with pytest.raises(ValueError, match="fvar axes are not consistent across the family"): gen_stat_tables([roman, italic], axis_order=["wdth", "wght", "ital"]) def _check_ps_instance_names(ttfont, desired_names): nametable = ttfont['name'] instances = ttfont['fvar'].instances for instance, desired_name in zip(instances, desired_names): ps_id = instance.postscriptNameID name = nametable.getName(ps_id, 3, 1, 0x409).toUnicode() assert name == desired_name def test_gen_stat_update_fvar_instances_1(var_fonts): gen_stat_tables(var_fonts, axis_order=["wght", "ital"]) roman, italic = var_fonts desired_roman_ps_names = [ "RalewayRoman-Thin", "RalewayRoman-ExtraLight", "RalewayRoman-Light", "RalewayRoman-Regular", "RalewayRoman-Medium", "RalewayRoman-SemiBold", "RalewayRoman-Bold", "RalewayRoman-ExtraBold", "RalewayRoman-Black", ] _check_ps_instance_names(roman, desired_roman_ps_names) desired_italic_ps_names = [ "RalewayItalic-Thin", "RalewayItalic-ExtraLight", "RalewayItalic-Light", "RalewayItalic-Regular", "RalewayItalic-Medium", "RalewayItalic-SemiBold", "RalewayItalic-Bold", "RalewayItalic-ExtraBold", "RalewayItalic-Black", ] _check_ps_instance_names(italic, desired_italic_ps_names) def test_gen_stat_update_fvar_instances_2(var_fonts2): gen_stat_tables(var_fonts2, axis_order=["wdth", "wght", "ital"]) roman, italic, condensed_roman, condensed_italic = var_fonts2 desired_roman_ps_names = [ "CabinNormalRoman-Regular", "CabinNormalRoman-Medium", "CabinNormalRoman-SemiBold", "CabinNormalRoman-Bold", ] _check_ps_instance_names(roman, desired_roman_ps_names) desired_italic_ps_names = [ "CabinNormalItalic-Regular", "CabinNormalItalic-Medium", "CabinNormalItalic-SemiBold", "CabinNormalItalic-Bold", ] _check_ps_instance_names(italic, desired_italic_ps_names) desired_condensed_roman_ps_names = [ "CabinCondensedRoman-Regular", "CabinCondensedRoman-Medium", "CabinCondensedRoman-SemiBold", "CabinCondensedRoman-Bold", ] _check_ps_instance_names(condensed_roman, desired_condensed_roman_ps_names) desired_condensed_italic_ps_names = [ "CabinCondensedItalic-Regular", "CabinCondensedItalic-Medium", "CabinCondensedItalic-SemiBold", "CabinCondensedItalic-Bold", ] _check_ps_instance_names(condensed_italic, desired_condensed_italic_ps_names) def test_gen_stat_update_fvar_instances_3(var_fonts3): gen_stat_tables(var_fonts3, axis_order=["wdth", "wght", "ital"]) roman, italic = var_fonts3 desired_roman_ps_names = [ "CabinRoman-Regular", "CabinRoman-Medium", "CabinRoman-SemiBold", "CabinRoman-Bold", ] _check_ps_instance_names(roman, desired_roman_ps_names) desired_italic_ps_names = [ "CabinItalic-Regular", "CabinItalic-Medium", "CabinItalic-SemiBold", "CabinItalic-Bold", ] _check_ps_instance_names(italic, desired_italic_ps_names) def test_gen_stat_nameid_25_vf_postscript_name_1(var_font): gen_stat_tables([var_font], axis_order=['wdth', 'wght']) assert var_font['name'].getName(25, 3, 1, 0x409).toUnicode() == "Inconsolata" def test_gen_stat_nameid_25_vf_postscript_name_2(var_fonts): gen_stat_tables(var_fonts, axis_order=['wght', 'ital']) roman, italic = var_fonts assert roman['name'].getName(25, 3, 1, 0x409).toUnicode() == "RalewayRoman" assert italic['name'].getName(25, 3, 1, 0x409).toUnicode() == "RalewayItalic" def test_gen_stat_nameid_25_vf_postscript_name_3(var_fonts2): gen_stat_tables(var_fonts2, axis_order=["wdth", "wght", "ital"]) roman, italic, condensed_roman, condensed_italic = var_fonts2 assert roman['name'].getName(25, 3, 1, 0x409).toUnicode() == "CabinNormalRoman" assert italic['name'].getName(25, 3, 1, 0x409).toUnicode() == "CabinNormalItalic" assert condensed_roman['name'].getName(25, 3, 1, 0x409).toUnicode() == "CabinCondensedRoman" assert condensed_italic['name'].getName(25, 3, 1, 0x409).toUnicode() == "CabinCondensedItalic" def test_gen_stat_nameid_25_vf_postscript_name_4(var_fonts3): gen_stat_tables(var_fonts3, axis_order=["wdth", "wght", "ital"]) roman, italic = var_fonts3 assert roman['name'].getName(25, 3, 1, 0x409).toUnicode() == "CabinRoman" assert italic['name'].getName(25, 3, 1, 0x409).toUnicode() == "CabinItalic" Lib/gftools/tests/test_usage.py000066400000000000000000000250031376445505300171340ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Unittests to check the functionality of Google Fonts Tools""" import os import re from glob import glob import unittest import subprocess class TestSubcommands(unittest.TestCase): """Functional tests to determine that bin/gftools runs correctly""" def setUp(self): self.bin_path = os.path.join('bin') self.maxDiff = None def test_list_subcommands_has_all_scripts(self): """Tests if the output from running gftools --list-subcommands matches the scripts within the bin folder""" scripts = [re.sub('\.\w*$', '', f.replace('gftools-', '')) for f in \ os.listdir(self.bin_path) if f.startswith('gftools-')] subcommands = subprocess.check_output(['python', os.path.join('bin', 'gftools'), '--list-subcommands'], encoding="utf-8").split() self.assertEqual(sorted(scripts), sorted(subcommands)) class TestGFToolsScripts(unittest.TestCase): """Functional tests to determine whether each script can execute successfully""" def setUp(self): self.get_path = lambda name: os.path.join('bin', 'gftools-' + name + '.py') self.example_dir = os.path.join('data', 'test', 'cabin') self.example_font = os.path.join(self.example_dir, 'Cabin-Regular.ttf') self.example_family = glob(os.path.join("data", "test", "mavenpro", "*.ttf")) self.example_vf_font = os.path.join("data", "test", 'Lora-Roman-VF.ttf') self.src_vtt_font = os.path.join("data", "test", "Inconsolata[wdth,wght].ttf") self.gf_family_dir = os.path.join('data', 'test', 'mock_googlefonts', 'ofl', 'abel') self.nam_file = os.path.join('data', 'test', 'arabic_unique-glyphs.nam') self.blacklisted_scripts = [ ['python', self.get_path('build-contributors')], # requires source folder of git commits ['python', self.get_path('check-category')], # Requires GF key ['python', self.get_path('check-gf-github')], # Requires github credentials ['python', self.get_path('build-font2ttf')], # Requires fontforge ['python', self.get_path('generate-glyphdata')], # Generates desired_glyph_data.json ['python', self.get_path('metadata-vs-api')], # Requires an API key ['python', self.get_path('update-version')], # Needs to know the current font version and the next version to set ['python', self.get_path('family-html-snippet')], # Requires GF api token ['python', self.get_path('qa')], # Has seperate checks ['python', self.get_path('sanity-check')], # Very old doesn't follow new spec. Should be deprecated. ] self.dir_before_tests = os.listdir(self.example_dir) def tearDown(self): """Clears the example folder of any files created during the unit tests""" files_to_delete = set(os.listdir(self.example_dir)) - set(self.dir_before_tests) for f in files_to_delete: os.remove(os.path.join(self.example_dir, f)) def check_script(self, command): """Template for unit testing the python scripts""" process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8") stdout, stderr = process.communicate() self.assertNotIn('Err', stderr, ' '.join(command) + ':\n\n' + stderr) def test_build_ofl(self): self.check_script(['python', self.get_path('add-font'), self.gf_family_dir]) def test_build_ofl(self): self.check_script(['python', self.get_path('build-ofl'), self.example_dir]) def test_check_bbox(self): self.check_script(['python', self.get_path('check-bbox'), self.example_font, '--glyphs', '--extremes']) def test_check_copyright_notices(self): self.check_script(['python', self.get_path('check-copyright-notices')]) def test_check_font_version(self): self.check_script(['python', self.get_path('check-font-version'), self.example_font]) def test_check_name(self): self.check_script(['python', self.get_path('check-name'), self.example_font]) def test_check_vtt_compatibility(self): self.check_script(['python', self.get_path('check-vtt-compatibility'), self.example_font, self.example_font]) def test_compare_font(self): self.check_script(['python', self.get_path('compare-font'), self.example_font, self.example_font]) def test_dump_names(self): self.check_script(['python', self.get_path('dump-names'), self.example_font]) def test_find_features(self): self.check_script(['python', self.get_path('find-features'), self.example_font]) def test_fix_ascii_fontmetadata(self): self.check_script(['python', self.get_path('fix-ascii-fontmetadata'), self.example_font]) def test_fix_cmap(self): self.check_script(['python', self.get_path('fix-cmap'), self.example_font]) def test_fix_dsig(self): self.check_script(['python', self.get_path('fix-dsig'), self.example_font]) def test_fix_familymetadata(self): self.check_script(['python', self.get_path('fix-familymetadata'), self.example_font]) def test_fix_fsselection(self): self.check_script(['python', self.get_path('fix-fsselection'), self.example_font]) def test_fix_fstype(self): self.check_script(['python', self.get_path('fix-fstype'), self.example_font]) def test_fix_gasp(self): self.check_script(['python', self.get_path('fix-gasp'), self.example_font]) def test_fix_glyph_private_encoding(self): self.check_script(['python', self.get_path('fix-glyph-private-encoding'), self.example_font]) def test_fix_glyphs(self): self.check_script(['python', self.get_path('fix-glyphs')]) def test_fix_hinting(self): self.check_script(['python', self.get_path('fix-hinting'), self.example_font]) def test_fix_isfixedpitch(self): self.check_script(['python', self.get_path('fix-isfixedpitch'), "--fonts", self.example_font]) def test_fix_nameids(self): self.check_script(['python', self.get_path('fix-nameids'), self.example_font]) def test_fix_nonhinting(self): self.check_script(['python', self.get_path('fix-nonhinting'), self.example_font, self.example_font + '.fix']) def test_fix_ttfautohint(self): self.check_script(['python', self.get_path('fix-ttfautohint'), self.example_font]) def test_fix_vendorid(self): self.check_script(['python', self.get_path('fix-vendorid'), self.example_font]) def test_fix_vertical_metrics(self): self.check_script(['python', self.get_path('fix-vertical-metrics'), self.example_font]) def test_font_diff(self): self.check_script(['python', self.get_path('font-diff'), self.example_font, self.example_font]) def test_font_weights_coveraget(self): self.check_script(['python', self.get_path('font-weights-coverage'), self.example_font]) def test_fix_font(self): self.check_script(['python', self.get_path('fix-font'), self.example_font]) def test_fix_family(self): self.check_script(['python', self.get_path('fix-family')] + self.example_family) def test_list_italicangle(self): self.check_script(['python', self.get_path('list-italicangle'), self.example_font]) def test_list_panose(self): self.check_script(['python', self.get_path('list-panose'), self.example_font]) def test_list_variable_source(self): self.check_script(['python', self.get_path('list-variable-source')]) def test_list_weightclass(self): self.check_script(['python', self.get_path('list-weightclass'), self.example_font]) def test_list_widthclass(self): self.check_script(['python', self.get_path('list-widthclass'), self.example_font]) def test_nametable_from_filename(self): self.check_script(['python', self.get_path('nametable-from-filename'), self.example_font]) def test_namelist(self): self.check_script(['python', self.get_path('namelist'), self.example_font]) def test_ots(self): self.check_script(['python', self.get_path('ots'), self.example_font]) def test_rangify(self): self.check_script(['python', self.get_path('rangify'), self.nam_file]) def test_test_gf_coverage(self): self.check_script(['python', self.get_path('test-gf-coverage'), self.example_font]) def test_ttf2cp(self): self.check_script(['python', self.get_path('ttf2cp'), self.example_font]) def test_unicode_names(self): self.check_script(['python', self.get_path('unicode-names'), "--nam_file", self.nam_file]) def test_update_families(self): self.check_script(['python', self.get_path('update-families'), self.example_font]) def test_update_version(self): self.check_script(['python', self.get_path('update-version'), self.example_font]) def test_varfont_info(self): self.check_script(['python', self.get_path('varfont-info'), self.example_vf_font]) def test_what_subsets(self): self.check_script(['python', self.get_path('what-subsets'), self.example_font]) def test_rename_font(self): self.check_script(['python', self.get_path('rename-font'), self.example_font, "Foobar"]) # Temporarily disabling this until we close issue #13 # (https://github.com/googlefonts/tools/issues/13) # See also https://github.com/googlefonts/fontbakery/issues/1535 # def test_update_families(self): # self.check_script(['python', self.get_path('update-families'), self.example_font]) def test_update_nameids(self): self.check_script(['python', self.get_path('update-nameids'), self.example_font, "-c", "Foobar"]) def test_check_vtt_compile(self): self.check_script(['python', self.get_path('check-vtt-compile'), self.src_vtt_font]) def test_gen_stat(self): self.check_script(['python', self.get_path('gen-stat'), self.example_vf_font]) if __name__ == '__main__': unittest.main() Lib/gftools/util/000077500000000000000000000000001376445505300142325ustar00rootroot00000000000000Lib/gftools/util/__init__.py000066400000000000000000000000001376445505300163310ustar00rootroot00000000000000Lib/gftools/util/filter_lists.py000066400000000000000000000366751376445505300173300ustar00rootroot00000000000000#! /usr/bin/env python3 # -*- coding=utf-8 -*- # # for the glyphsLib dependency do: pip install GlyphsLib from __future__ import print_function, unicode_literals from fontTools.misc.py23 import unichr, byteord import sys, os, subprocess import re import codecs import logging as log import unittest from collections import Counter if __name__ == '__main__': # the following imports wouldn't work otherwise sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import gftools.util.google_fonts as fonts from gftools.util.glyphdata import DATA as GlyphData # There's also the form u1014A for higher unicode codepoints next to uni1234 PURE_UNI_CHR = re.compile('^u(?:ni)?([0-9A-F]{4,6})$', re.IGNORECASE) FILTER_LISTS_DIR_NAME = 'filter lists' class MissingCharsetDirectory(Exception): pass def get_namelist_for_filterlist(filterlistFilename): dirname, fileName = os.path.split(filterlistFilename) # removes the ".txt" that we expect because of the call to find that includes it filterlistName = fileName.rsplit('.', 1)[0] # Get the parent dir with the charsets: # the first above the dir called 'filter lists'. namelistDir, markerDir = os.path.split(dirname) while(len(markerDir) and markerDir != FILTER_LISTS_DIR_NAME): namelistDir, markerDir = os.path.split(namelistDir) if markerDir != FILTER_LISTS_DIR_NAME: raise MissingCharsetDirectory('charset directory not found in "{path}".'.format(path=dirname)) # get all the Namelist files from for root, dirs, files in os.walk(namelistDir): # break to only read the top level dir and to invoke the # else clause if this is no dir namfiles = [f for f in files if f.endswith('.nam')] break else: namfiles = [] # longest name first namfiles.sort(key=lambda f :-len(f)) for f in namfiles: # removes the 'GF-{language} which is redundant in filter lists # due to their location namelistBasename = f[:-4].split('-', 2)[-1] if filterlistName.startswith(namelistBasename): return os.path.join(namelistDir, f) return None; def get_name_by_unicode(search_codepoint, production_name=False): """ Returns None if GlyphsData.xml doesn't contain search_codepoint. """ entry = (None, None) glyph = GlyphData.by_unicode.get(search_codepoint, None) if glyph is not None: entry = (glyph.name, glyph.production_name) return entry[1] if production_name else entry[0] def get_name_by_name(search_name, production_name=False): """ Use this if you don't know what exact type your name is. E.g. when the names in your source are mixes friendly names and production names. Returns None if GlyphsData.xml doesn't contain search_name. """ entry = (None, None) glyph = GlyphData.by_name.get(search_name, None) \ or GlyphData.by_prodname.get(search_name, None) if glyph is not None: entry = (glyph.name, glyph.production_name) return entry[1] if production_name else entry[0] def get_unicode_by_name(name): glyph = GlyphData.by_name.get(name, None) \ or GlyphData.by_prodname.get(name, None) if glyph is not None and glyph.unicode is not None: return glyph.unicode match = PURE_UNI_CHR.match(name) if match is not None: return int(match.groups()[0], base=16) return None def get_filterlist_names(filterListFileName): with codecs.open(filterListFileName, 'r', encoding='utf-8') as f: return [line.strip() for line in f] def read_filterlist(filterListFileName): names = get_filterlist_names(filterListFileName) codepoints = [] noncodes = [] for name in names: codepoint = get_unicode_by_name(name) if codepoint is not None: codepoints.append((codepoint, name)) continue noncodes.append(name) return codepoints, noncodes def translate_name(name, production_name=False): # The call to get_unicode_by_name at the beginning of this recursive # function is more expensive, but it may get fringe cases # where names with ".", "-" or "_" have a unicode. new_name = get_name_by_name(name,production_name=production_name) if new_name is not None: return new_name codepoint = get_unicode_by_name(name) if codepoint is not None: new_name = get_name_by_unicode(codepoint, production_name=production_name) \ if codepoint is not None else None if new_name is not None: return new_name if '_' in name: return '_'.join(translate_name(component, production_name=production_name) for component in name.split('_')) if '.' in name: basename, extension = name.split('.', 1) return '.'.join([translate_name(basename, production_name=production_name) , extension]) # "brevecomb-cy" did not produce a friendly name if '-' in name: basename, extension = name.split('-', 1) return '-'.join([translate_name(basename, production_name=production_name) , extension]) return name def check_filterlist_in_namelist(filterListFileName, namelistCache=None): namelistFilename = get_namelist_for_filterlist(filterListFileName) if not namelistFilename: return False, 'No Namelist file found for {filterlist}'.format(filterlist=filterListFileName), None codepoints, noncodes = read_filterlist(filterListFileName) useProductionNames = 'uni names' in filterListFileName or 'uni-names' in filterListFileName if useProductionNames: prod_noncodes = noncodes; noncodes = [translate_name(name) for name in noncodes] noncodes2prodcodes = dict(zip(noncodes, prod_noncodes)) namelist = fonts.ReadNameList(namelistFilename, cache=namelistCache) message = [] missingChars = [] for codepoint in codepoints: if codepoint[0] not in namelist['charset']: missingChars.append(codepoint) if len(missingChars): names = ', '.join(['0x{0:04X} {1}'.format(c, name) for c, name in missingChars]) message.append('Unicode chars not in Namelist but in filter list:' \ '\n[{names}]'.format(names=names)) missingNoncodes = [] namelistNoCharcode = set(translate_name(name) for name in namelist['noCharcode']) for noncode in noncodes: if noncode not in namelistNoCharcode: missingNoncodes.append(noncode) if len(missingNoncodes): if useProductionNames: missingNoncodes = ['{0} as {1}'.format(noncode, noncodes2prodcodes[noncode]) for noncode in missingNoncodes] message.append('None-Unicode not in Namelist but in filter list:' \ '\n[{names}]\n'.format(names=', '.join(missingNoncodes))) if len(message): return False, '\n'.join(message), namelistFilename return True, None, namelistFilename def _build_filterlists_in_namelists(f): """ Checking filterlists in namelists. """ test_name = 'test_filterlists_in_namelists {0}'.format(f) def test_filterlists_in_namelists(self): passed, message, namelist = check_filterlist_in_namelist(f, self._cache) if passed: return self.assertTrue(passed, msg=message) return test_name, test_filterlists_in_namelists def build_filterlists_in_namelists(files): for f in files: yield _build_filterlists_in_namelists(f); def check_filterlist_equals_namelist(filterlist, namelistFilename, namelistCache=None): codepoints, noncodes = read_filterlist(filterlist) namelist = fonts.ReadNameList(namelistFilename, cache=namelistCache) message = [] codepoints_set = set(c for c, _ in codepoints) if codepoints_set != namelist['ownCharset']: formatCodePoints = '0x{0:04X}'.format codepoints_not_in_namelist = codepoints_set - namelist['ownCharset'] if len(codepoints_not_in_namelist): message.append('Unicode in filter list missing in Namelist:\n{0}'\ .format(', '.join(formatCodePoints(c) for c in sorted(codepoints_not_in_namelist)))) codepoints_not_in_filterlist = namelist['ownCharset'] - codepoints_set if len(codepoints_not_in_filterlist): message.append('Unicode in Namelist missing in filter list:\n{0}'\ .format(', '.join(formatCodePoints(c) for c in sorted(codepoints_not_in_filterlist)))) noncodes_set = set(noncodes) if noncodes_set != namelist['ownNoCharcode']: noncodes_not_in_namelist = noncodes_set - namelist['ownNoCharcode'] if len(noncodes_not_in_namelist): message.append('Unencoded chars in filter list missing in Namelist:\n{0}'\ .format(', '.join(sorted(noncodes_not_in_namelist)))) noncodes_not_in_filterlist = namelist['ownNoCharcode'] - noncodes_set if len(noncodes_not_in_filterlist): message.append('Unencoded in Namelist missing in filter list:\n{0}'\ .format(', '.join(sorted(noncodes_not_in_filterlist)))) if len(message): message.insert(0, 'Namelist and Filter-List are out of sync.'\ '\n{0}\n{1}'.format(namelistFilename, filterlist)) return False, '\n'.join(message), namelistFilename return True, None, namelistFilename def _build_filterlists_equal_namelists(filterlist, namelistFilename): """ Checks if a Namelist e.g. "GF-latin-plus_unique-glyphs.nam" and the filter-list with the exact matching name i.e. "filter lists/plus_unique-glyphs.txt" contain the same set of glyphs. "filter lists/plus_unique-glyphs.txt" should be the same set. """ test_name = 'test_filterlist_equals_namelist {0}'.format(filterlist) def test_filterlist_equals_namelist(self): passed, message, namelist = check_filterlist_equals_namelist(filterlist, namelistFilename, self._cache) if passed: return self.assertTrue(passed, msg=message) return test_name, test_filterlist_equals_namelist def build_filterlists_equal_namelists(files): for filterlist in files: if 'uni names' in filterlist or 'uni-names' in filterlist: # Only checking nice names. uni-names must be the same set as their # nice names pendant, we have a test for that. continue try: namelist = get_namelist_for_filterlist(filterlist) except MissingCharsetDirectory: # will be reported via the tests using check_filterlist_in_namelist continue # must be a full match, if there's more at the end of filterlist # than at the end of namelist it's likely a specialized subset. fl_name = os.path.basename(filterlist).split('.', 1)[0] nl_name = namelist.split('.', 1)[0] if nl_name.endswith(fl_name): yield _build_filterlists_equal_namelists(filterlist, namelist); def _build_friendly_names_production_names_equal(pathparts, prod_names_file, nice_names_file): test_name = 'test_nice_names_uni_names_equal {0}'.format('{marker dir}'.join(pathparts)) def test_friendly_names_production_names_equal(self): message = [] log_message = lambda *args: message.append(' '.join(str(a) for a in args)) log_message('uni names filter list:', prod_names_file) log_message('nice names filter list:', nice_names_file) prod_names = get_filterlist_names(prod_names_file) nice_prod_names = [translate_name(name) for name in prod_names] nice_names = get_filterlist_names(nice_names_file) prod_names_set = set(nice_prod_names) nice_names_set = set(nice_names) not_in_both = nice_names_set ^ prod_names_set if not len(not_in_both): return log_message('# uni names', len(prod_names)) log_message('# nice names', len(nice_names)) dupes_in_prod_names = len(prod_names) - len(prod_names_set) dupes_in_nice_names = len(nice_names) - len(nice_names_set) if dupes_in_prod_names: log_message('# duplicates in uni names', dupes_in_prod_names, '\n' , *[item for item, count in Counter(prod_names).items() if count > 1]) if dupes_in_nice_names: log_message('# duplicates in nice names', dupes_in_nice_names, '\n' , *[item for item, count in Counter(nice_names).items() if count > 1]) self.assertTrue(dupes_in_prod_names == 0 and dupes_in_nice_names == 0 , msg='\n'.join(message)) not_in_nice = sorted(not_in_both - nice_names_set) not_in_prod = sorted(not_in_both - prod_names_set) if len(not_in_prod): log_message('Entries in nice names but not in uni names(#{1}):\n{0}\n' \ .format(', '.join(not_in_prod), len(not_in_prod))) if len(not_in_nice): nice2prod = dict(zip(nice_prod_names, prod_names)) items = ','.join('{0} as {1}'.format(nice2prod[n],n) for n in not_in_nice) log_message('Entries in uni names but not in nice names (#{1}):\n{0}\n' \ .format(items, len(not_in_nice))) self.assertTrue(False, msg='\n'.join(message)) return test_name, test_friendly_names_production_names_equal def build_friendly_names_production_names_equal(files): """ Check if nice names and uni names filter lists are in sync. """ nice_names_dir = 'nice names' prod_names_dir = 'uni names' nice_names_parts = {tuple(f.split(nice_names_dir, 1)) for f in files if nice_names_dir in f} prod_names_parts = {tuple(f.split(prod_names_dir, 1)) for f in files if prod_names_dir in f} # filter to check only files that have a counterpart matches = sorted(list(nice_names_parts & prod_names_parts)) for pathparts in matches: prod_names_file = prod_names_dir.join(pathparts) nice_names_file = nice_names_dir.join(pathparts) yield _build_friendly_names_production_names_equal(pathparts, prod_names_file, nice_names_file) def initTestProperties(cls, files): initialized = [] for test_generator in (build_filterlists_in_namelists , build_friendly_names_production_names_equal , build_filterlists_equal_namelists): for testName, test in test_generator(files): setattr(cls, testName, test) class TestFilterLists(unittest.TestCase): def setUp(self): self._cache = {} def tearDown(self): self._cache = None def main(args): if len(args) < 2: raise Exception('The first argument must be the search directory'\ ' for nam files.') searchDirectory = args[1] files = subprocess.check_output(['find', searchDirectory, '-type', 'f', '-path', '*/filter lists/*.txt']).decode("utf-8") files = list(filter(len, files.split('\n'))) initTestProperties(TestFilterLists, files) unittest.main(argv=args[:1] + args[2:], verbosity=2) if __name__ == '__main__': main(sys.argv) Lib/gftools/util/glyphdata.py000066400000000000000000000046511376445505300165670ustar00rootroot00000000000000# coding=UTF-8 # # Copyright 2016 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Parts of this file where initially taken from # https://github.com/googlei18n/glyphsLib/blob/master/MetaTools/generate_glyphdata.py from __future__ import (print_function, division, absolute_import, unicode_literals) import os import xml.etree.ElementTree as etree from collections import namedtuple from pkg_resources import resource_filename # Data tables which we put into the generated Python file. # See comments in generate_python_source() below for documentation. GlyphData = namedtuple('GlyphData', [ 'by_name' , 'by_unicode' , 'by_prodname' ]) GlyphInfo = namedtuple('GlyphInfo', [ 'name' , 'production_name' , 'unicode' ]) def _fetch_all_glyphs(): glyphs = {} for filename in ("GlyphData.xml", "GlyphData_Ideographs.xml"): full_filename = resource_filename("gftools.util", os.path.join('GlyphsInfo', filename)) for glyph in etree.parse(full_filename).findall("glyph"): glyphName = glyph.attrib["name"] assert glyphName not in glyphs, "multiple entries for " + glyphName glyphs[glyphName] = glyph.attrib return glyphs def _build_data(glyphs): by_name = {} by_unicode = {} by_prodname = {} for name, glyph in glyphs.items(): prodname = glyph.get("production", name) unistr = glyph.get("unicode") charcode = int(unistr, 16) if unistr else None glyphInfo = GlyphInfo(name, prodname, charcode) by_name[name] = glyphInfo if unistr is not None: by_unicode[charcode] = glyphInfo by_prodname[prodname] = glyphInfo return GlyphData(by_name, by_unicode, by_prodname) DATA = _build_data(_fetch_all_glyphs()) Lib/gftools/util/google_fonts.py000066400000000000000000000667141376445505300173070ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Helper APIs for interaction with Google Fonts. Provides APIs to interact with font subsets, codepoints for font or subset. To run the tests: $ cd fonts/tools fonts/tools$ python util/google_fonts.py # or do: fonts/tools$ python util/google_fonts.py --nam_dir encodings/ """ from __future__ import print_function from __future__ import unicode_literals import codecs import collections import contextlib import errno import os import re import sys import unittest from pkg_resources import resource_filename from warnings import warn if __name__ == '__main__': # some of the imports here wouldn't work otherwise sys.path.append( os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import gftools.fonts_public_pb2 as fonts_pb2 from fontTools import ttLib from absl import flags from gftools.util import py_subsets from absl import app from google.protobuf import text_format FLAGS = flags.FLAGS flags.DEFINE_string('nam_dir', resource_filename("gftools", "encodings"), 'nam file dir') # See https://www.microsoft.com/typography/otspec/name.htm. NAME_COPYRIGHT = 0 NAME_FAMILY = 1 NAME_UNIQUEID = 3 NAME_FULLNAME = 4 NAME_PSNAME = 6 _PLATFORM_ID_MICROSOFT = 3 _PLATFORM_ENC_UNICODE_BMP = 1 _PLATFORM_ENC_UNICODE_UCS4 = 10 _PLATFORM_ENCS_UNICODE = (_PLATFORM_ENC_UNICODE_BMP, _PLATFORM_ENC_UNICODE_UCS4) _FAMILY_WEIGHT_REGEX = r'([^/-]+)-(\w+)\.[ot]tf$' # Matches 4 or 5 hexadecimal digits that are uppercase at the beginning of the # test string. The match is stored in group 0, e.g: # >>> _NAMELIST_CODEPOINT_REGEX.match('1234X').groups()[0] # '1234' # >>> _NAMELIST_CODEPOINT_REGEX.match('1234A').groups()[0] # '1234A' _NAMELIST_CODEPOINT_REGEX = re.compile('^([A-F0-9]{4,5})') # The canonical [to Google Fonts] name comes before any aliases _KNOWN_WEIGHTS = collections.OrderedDict([ ('Thin', 100), ('Hairline', 100), ('ExtraLight', 200), ('Light', 300), ('Regular', 400), ('', 400), # Family-Italic resolves to this ('Medium', 500), ('SemiBold', 600), ('Bold', 700), ('ExtraBold', 800), ('Black', 900) ]) _VALID_STYLES = {'normal', 'italic'} # (Mask, Name) pairs. # See https://www.microsoft.com/typography/otspec/os2.htm#fss. _FS_SELECTION_BITS = tuple( (1 << i, n) for i, n in enumerate(('ITALIC', 'UNDERSCORE', 'NEGATIVE', 'OUTLINED', 'STRIKEOUT', 'BOLD', 'REGULAR', 'USE_TYPO_METRICS', 'WWS', 'OBLIQUE'))) # license_dir => license name mappings _KNOWN_LICENSE_DIRS = { 'apache': 'APACHE2', 'ofl': 'OFL', 'ufl': 'UFL', } FileFamilyStyleWeightTuple = collections.namedtuple( 'FileFamilyStyleWeightTuple', ['file', 'family', 'style', 'weight']) class Error(Exception): """Base for Google Fonts errors.""" class ParseError(Error): """Exception used when parse failed.""" def UnicodeCmapTables(font): """Find unicode cmap tables in font. Args: font: A TTFont. Yields: cmap tables that contain unicode mappings """ for table in font['cmap'].tables: if (table.platformID == _PLATFORM_ID_MICROSOFT and table.platEncID in _PLATFORM_ENCS_UNICODE): yield table _displayed_errors = set() def ShowOnce(msg): """Display a message if that message has not been shown already. Unlike logging.log_first_n, this will display multiple messages from the same file/line if they are different. This helps for things like the same line that shows 'missing %s': we'll see each value of %s instead of only the first. Args: msg: A string message to write to stderr. """ global _displayed_errors if msg in _displayed_errors: return _displayed_errors.add(msg) print(msg, file=sys.stderr) def UniqueSort(*args): """Returns a sorted list of the unique items from provided iterable(s). Args: *args: Iterables whose items will be merged, sorted and de-duplicated. Returns: A list. """ s = set() for arg in args: s.update(arg) return sorted(s) def RegularWeight(metadata): """Finds the filename of the regular (normal/400) font file. Args: metadata: The metadata to search for the regular file data. Returns: The name of the regular file, usually Family-Regular.ttf. Raises: OSError: If regular file could not be found. errno.ENOENT. """ for f in metadata.fonts: if f.weight == 400 and f.style == 'normal': return os.path.splitext(f.filename)[0] + '.ttf' name = '??' if metadata.HasField('name'): name = metadata.name raise OSError(errno.ENOENT, 'unable to find regular weight in %s' % name) def ListSubsets(): """Returns a list of all subset names, in lowercase.""" return py_subsets.SUBSETS def Metadata(file_or_dir): """Returns fonts_metadata.proto object for a metadata file. If file_or_dir is a file named METADATA.pb, load it. If file_or_dir is a directory, load the METADATA.pb file in that directory. Args: file_or_dir: A file or directory. Returns: Python object loaded from METADATA.pb content. Raises: ValueError: if file_or_dir isn't a METADATA.pb file or dir containing one. """ if (os.path.isfile(file_or_dir) and os.path.basename(file_or_dir) == 'METADATA.pb'): metadata_file = file_or_dir elif os.path.isdir(file_or_dir): metadata_file = os.path.join(file_or_dir, 'METADATA.pb') if not os.path.isfile(metadata_file): raise ValueError('No METADATA.pb in %s' % file_or_dir) else: raise ValueError( '%s is neither METADATA.pb file or a directory' % file_or_dir) msg = fonts_pb2.FamilyProto() with codecs.open(metadata_file, encoding='utf-8') as f: text_format.Merge(f.read(), msg) return msg def SubsetsForCodepoint(cp): """Returns all the subsets that contains cp or []. Args: cp: int codepoint. Returns: List of lowercase names of subsets or [] if none match. """ subsets = [] for subset in ListSubsets(): cps = CodepointsInSubset(subset, unique_glyphs=True) if not cps: continue if cp in cps: subsets.append(subset) return subsets def SubsetForCodepoint(cp): """Returns the highest priority subset that contains cp or None. Args: cp: int codepoint. Returns: The lowercase name of the subset, e.g. latin, or None. """ subsets = SubsetsForCodepoint(cp) if not subsets: return None result = subsets[0] for subset in sorted(subsets): # prefer x to x-ext if result + '-ext' == subset: pass elif result == subset + '-ext': # prefer no -ext to -ext result = subset elif subset.startswith('latin'): # prefer latin to anything non-latin result = subset return result def CodepointsInSubset(subset, unique_glyphs=False): """Returns the set of codepoints contained in a given subset. Args: subset: The lowercase name of a subset, e.g. latin. unique_glyphs: Optional, whether to only include glyphs unique to subset. Returns: A set containing the glyphs in the subset. """ if unique_glyphs: filenames = [CodepointFileForSubset(subset)] else: filenames = CodepointFiles(subset) filenames = [f for f in filenames if f is not None] if not filenames: return None cps = set() for filename in filenames: with codecs.open(filename, encoding='utf-8') as f: for line in f: if not line.startswith('#'): match = _NAMELIST_CODEPOINT_REGEX.match(line[2:7]) if match is not None: cps.add(int(match.groups()[0], 16)) return cps def CodepointsInFont(font_filename): """Returns the set of codepoints present in the font file specified. Args: font_filename: The name of a font file. Returns: A set of integers, each representing a codepoint present in font. """ font_cps = set() with contextlib.closing(ttLib.TTFont(font_filename)) as font: for t in UnicodeCmapTables(font): font_cps.update(t.cmap.keys()) return font_cps def CodepointFileForSubset(subset): """Returns the full path to the file of codepoints unique to subset. This API does NOT return additional codepoint files that are normally merged into the subset. For that, use CodepointFiles. Args: subset: The subset we want the codepoint file for. Returns: Full path to the file containing the codepoint file for subset or None if it could not be located. Raises: OSError: If the --nam_dir doesn't exist. errno.ENOTDIR. """ # expanduser so we can do things like --nam_dir=~/oss/googlefontdirectory/ enc_path = os.path.expanduser(FLAGS.nam_dir) if not os.path.exists(enc_path): raise OSError(errno.ENOTDIR, 'No such directory', enc_path) filename = os.path.join(enc_path, '%s_unique-glyphs.nam' % subset) if not os.path.isfile(filename): ShowOnce('no cp file for %s found at %s' % (subset, filename[len(enc_path):])) return None return filename def CodepointFiles(subset): """Returns the codepoint files that contain the codepoints in a merged subset. If a subset X includes codepoints from multiple files, this function returns all those files while CodepointFileForSubset returns the single file that lists the codepoints unique to the subset. For example, greek-ext contains greek-ext, greek, and latin codepoints. This function would return all three files whereas CodepointFileForSubset would return just greek-ext. Args: subset: The subset we want the codepoint files for. Returns: A list of 1 or more codepoint files that make up this subset. """ files = [subset] # y-ext includes y # Except latin-ext which already has latin. if subset != 'latin-ext' and subset.endswith('-ext'): files.append(subset[:-4]) # almost all subsets include latin. if subset not in ('khmer', 'latin'): files.append('latin') return map(CodepointFileForSubset, files) def SubsetsInFont(file_path, min_pct, ext_min_pct=None): """Finds all subsets for which we support > min_pct of codepoints. Args: file_path: A file_path to a font file. min_pct: Min percent coverage to report a subset. 0 means at least 1 glyph. 25 means 25%. ext_min_pct: The minimum percent coverage to report a -ext subset supported. Used to admit extended subsets with a lower percent. Same interpretation as min_pct. If None same as min_pct. Returns: A list of 3-tuples of (subset name, #supported, #in subset). """ all_cps = CodepointsInFont(file_path) results = [] for subset in ListSubsets(): subset_cps = CodepointsInSubset(subset, unique_glyphs=True) if not subset_cps: continue # Khmer includes latin but we only want to report support for non-Latin. if subset == 'khmer': subset_cps -= CodepointsInSubset('latin') overlap = all_cps & subset_cps target_pct = min_pct if ext_min_pct is not None and subset.endswith('-ext'): target_pct = ext_min_pct if 100.0 * len(overlap) / len(subset_cps) > target_pct: results.append((subset, len(overlap), len(subset_cps))) return results def FamilyName(fontname): """Attempts to build family name from font name. For example, HPSimplifiedSans => HP Simplified Sans. Args: fontname: The name of a font. Returns: The name of the family that should be in this font. """ # SomethingUpper => Something Upper fontname = re.sub('(.)([A-Z][a-z]+)', r'\1 \2', fontname) # Font3 => Font 3 fontname = re.sub('([a-z])([0-9]+)', r'\1 \2', fontname) # lookHere => look Here return re.sub('([a-z0-9])([A-Z])', r'\1 \2', fontname) def Weight(stylename): """Derive weight from a stylename. Args: stylename: string, e.g. Bold, Regular, or ExtraLightItalic. Returns: weight: integer """ if stylename.endswith('Italic'): return _KNOWN_WEIGHTS[stylename[:-6]] return _KNOWN_WEIGHTS[stylename] def VFWeight(font): """Return a variable fonts weight. Return 400 if 400 is within the wght axis range else return the value closest to 400 Args: font: TTFont Returns: weight: integer """ wght_axis = None for axis in font['fvar'].axes: if axis.axisTag == "wght": wght_axis = axis break value = 400 if wght_axis: if wght_axis.minValue >= 400: value = wght_axis.minValue if wght_axis.maxValue <= 400: value = wght_axis.maxValue # TODO (MF) check with GF Eng if we should just assume it's safe to return # 400 if a wght axis doesn't exist. return int(value) def Style(stylename): return 'italic' if "Italic" in stylename else "normal" def FamilyStyleWeight(path): filename = os.path.basename(path) if "[" in filename and "]" in filename: return VFFamilyStyleWeight(path) return FileFamilyStyleWeight(path) def FileFamilyStyleWeight(path): """Extracts family, style, and weight from Google Fonts standard filename. Args: path: Font path, eg ./fonts/ofl/lobster/Lobster-Regular.ttf. Returns: FileFamilyStyleWeightTuple for file. Raises: ParseError: if file can't be parsed. """ m = re.search(_FAMILY_WEIGHT_REGEX, path) if not m: raise ParseError('Could not parse %s' % path) style = Style(m.group(2)) weight = Weight(m.group(2)) return FileFamilyStyleWeightTuple(path, FamilyName(m.group(1)), style, weight) def VFFamilyStyleWeight(path): """Extract family, style and weight from a variable font's name table. Args: path: Font path, eg ./fonts/ofl/lobster/Lobster[wght].ttf. Returns: FileFamilyStyleWeightTuple for file. """ with ttLib.TTFont(path) as font: typoFamilyName = font['name'].getName(16, 3, 1, 1033) familyName = font['name'].getName(1, 3, 1, 1033) family = typoFamilyName.toUnicode() if typoFamilyName else \ familyName.toUnicode() typoStyleName = font['name'].getName(17, 3, 1, 1033) styleName = font['name'].getName(2, 3, 1, 1033) style = typoStyleName.toUnicode() if typoStyleName else \ styleName.toUnicode() style = "italic" if "Italic" in style.replace(" ", "") else "normal" # For each font in a variable font family, we do not want to return # the style's weight. We want to return 400 if 400 is within the # the wght axis range. If it isn't, we want the value closest to 400. weight = VFWeight(font) return FileFamilyStyleWeightTuple(path, family, style, weight) def ExtractNames(font, name_id): return [ n.toUnicode() for n in font['name'].names if n.nameID == name_id ] def ExtractName(font_or_file, name_id, default): """Extracts a name table field (first value if many) from a font. Args: font_or_file: path to a font file or a TTFont. name_id: the ID of the name desired. Use NAME_* constant. default: result if no value is present. Returns: The value of the first entry for name_id or default if there isn't one. """ value = default names = [] if isinstance(font_or_file, ttLib.TTFont): names = ExtractNames(font_or_file, name_id) else: with contextlib.closing(ttLib.TTFont(font_or_file)) as font: names = ExtractNames(font, name_id) if names: value = names[0] return value def NamePartsForStyleWeight(astyle, aweight): """Gives back the parts that go into the name for this style/weight. Args: astyle: The style name, eg "normal" or "italic" aweight: The font weight Returns: Tuple of parts that go into the name, typically the name for the weight and the name for the style, if any ("normal" typically doesn't factor into names). Raises: ValueError: If the astyle or aweight isn't a supported value. """ astyle = astyle.lower() if astyle not in _VALID_STYLES: raise ValueError('unsupported style %s' % astyle) correct_style = None if astyle == 'italic': correct_style = 'Italic' correct_name = None for name, weight in _KNOWN_WEIGHTS.items(): if weight == aweight: correct_name = name break if not correct_name: raise ValueError('unsupported weight: %d' % aweight) return tuple([n for n in [correct_name, correct_style] if n]) def _RemoveAll(alist, value): while value in alist: alist.remove(value) def FilenameFor(family, style, weight, ext=''): family = family.replace(' ', '') style_weight = list(NamePartsForStyleWeight(style, weight)) if 'Italic' in style_weight: _RemoveAll(style_weight, 'Regular') style_weight = ''.join(style_weight) return '%s-%s%s' % (family, style_weight, ext) def FullnameFor(family, style, weight): name_parts = [family] name_parts.extend(list(NamePartsForStyleWeight(style, weight))) _RemoveAll(name_parts, 'Regular') return ' '.join(name_parts) def FontDirs(path): """Finds all the font directories (based on METADATA.pb) under path. Args: path: A path to search under. Yields: Directories under path that have a METADATA.pb. """ for dir_name, _, _ in os.walk(path): if os.path.isfile(os.path.join(dir_name, 'METADATA.pb')): yield dir_name def FsSelectionMask(flag): """Get the mask for a given named bit in fsSelection. Args: flag: Name of the flag per otspec, eg ITALIC, BOLD, etc. Returns: Bitmask for that flag. Raises: ValueError: if flag isn't the name of any fsSelection bit. """ for (mask, name) in _FS_SELECTION_BITS: if name == flag: return mask raise ValueError('No mask for %s' % flag) def FsSelectionFlags(fs_selection): """Get the named flags enabled in a given fsSelection. Args: fs_selection: An fsSelection value. Returns: List of names of flags enabled in fs_selection. """ names = [] for (mask, name) in _FS_SELECTION_BITS: if fs_selection & mask: names.append(name) return names def _EntryForEndOfPath(path, answer_map): segments = [s.lower() for s in path.split(os.sep)] answers = [answer_map[s] for s in segments if s in answer_map] if len(answers) != 1: raise ValueError('Found %d possible matches: %s' % (len(answers), answers)) return answers[0] def LicenseFromPath(path): """Try to figure out the license for a given path. Splits path and looks for known license dirs in segments. Args: path: A filesystem path, hopefully including a license dir. Returns: The name of the license, eg OFL, UFL, etc. Raises: ValueError: if 0 or >1 licenses match path. """ return _EntryForEndOfPath(path, _KNOWN_LICENSE_DIRS) def _ParseNamelistHeader(lines): includes = set() for line in lines: if not line.startswith('#$'): # not functional line, regular comment continue keyword, args = line.rstrip()[2:].lstrip().split(' ', 1) if keyword == 'include': includes.add(args) return {'lines': list(lines), 'includes': includes} def GetCodepointFromLine(line): assert line.startswith('0x') match = _NAMELIST_CODEPOINT_REGEX.match(line[2:7]) if match is None: match = _NAMELIST_CODEPOINT_REGEX.match(line[2:7].upper()) if match is not None: # Codepoints must be uppercase, it's documented warn('Found a codepoint with lowercase unicode hex value: 0x{0}'.format( match.groups()[0])) return None return int(match.groups()[0], 16) def _ParseNamelist(lines): cps = set() noncodes = set() header_lines = [] reading_header = True for line in lines: if reading_header: if not line.startswith('#'): # first none comment line ends the header reading_header = False else: header_lines.append(line) continue # reading the body, i.e. codepoints if line.startswith('0x'): codepoint = GetCodepointFromLine(line) if codepoint is None: # ignore all lines that we don't understand continue cps.add(codepoint) # description # line[(2+len(codepoint)),] elif line.startswith(' '): noncode = line.strip().rsplit(' ')[-1] if noncode: noncodes.add(noncode) header = _ParseNamelistHeader(header_lines) return cps, header, noncodes def ParseNamelist(filename): """Parse a given Namelist file. Args: filename: The path to the Namelist file. Returns: A tuple of (Codepoints set, header data dict). """ with codecs.open(filename, encoding='utf-8') as nam_file: return _ParseNamelist(nam_file) def _LoadNamelistIncludes(item, unique_glyphs, cache): """Load the includes of an encoding Namelist files. This is an implementation detail of ReadNameList. Args: item: A dict representing a loaded Namelist file. unique_glyphs: Whether to only include glyphs unique to subset. cache: A dict used to cache loaded Namelist files. Returns: The item with its included Namelists loaded. """ includes = item['includes'] = [] charset = item['charset'] = set() | item['ownCharset'] no_charcode = item['noCharcode'] = set() | item['ownNoCharcode'] dirname = os.path.dirname(item['fileName']) for include in item['header']['includes']: include_file = os.path.join(dirname, include) included_item = None try: included_item = ReadNameList(include_file, unique_glyphs, cache) except NamelistRecursionError: continue if included_item in includes: continue includes.append(included_item) charset |= included_item['charset'] no_charcode |= included_item['ownNoCharcode'] return item def _ReadNameList(cache, filename, unique_glyphs): """Return a dict with the data of an encoding Namelist file. This is an implementation detail of ReadNameList. Args: cache: A dict used to cache loaded Namelist files. filename: The path to the Namelist file. unique_glyphs: Whether to only include glyphs unique to subset. Returns: A dict containing the data of an econding Namelist file. """ if filename in cache: item = cache[filename] else: cps, header, noncodes = ParseNamelist(filename) item = { 'fileName': filename, 'ownCharset': cps, 'header': header, 'ownNoCharcode': noncodes, 'includes': None, # placeholder 'charset': None, # placeholder 'noCharcode': None } cache[filename] = item if unique_glyphs or item['charset'] is not None: return item # full-charset/includes are requested and not cached yet _LoadNamelistIncludes(item, unique_glyphs, cache) return item class NamelistRecursionError(Error): """Exception to control infinite recursion in Namelist includes.""" pass def _ReadNameListSafetyLayer(currently_including, cache, nam_filename, unique_glyphs): """Detect infinite recursion and prevent it. This is an implementation detail of ReadNameList. Args: currently_including: The set of Namelist files that are in the process of being included. cache: A dict used to cache loaded Namelist files. nam_filename: The path to the Namelist file. unique_glyphs: Whether to only include glyphs unique to subset. Returns: A dict containing the data of an econding Namelist file. Raises: NamelistRecursionError: If nam_filename is in the process of being included. """ # normalize filename = os.path.abspath(os.path.normcase(nam_filename)) if filename in currently_including: raise NamelistRecursionError(filename) currently_including.add(filename) try: result = _ReadNameList(cache, filename, unique_glyphs) finally: currently_including.remove(filename) return result def ReadNameList(nam_filename, unique_glyphs=False, cache=None): """Reads a given Namelist file. Args: nam_filename: The path to the Namelist file. unique_glyphs: Optional, whether to only include glyphs unique to subset. cache: Optional, a dict used to cache loaded Namelist files. Returns: A dict with following keys: "fileName": (string) absolut path to nam_filename "ownCharset": (set) the set of codepoints defined by the file itself "header": (dict) the result of _ParseNamelistHeader "includes": (set) if unique_glyphs=False, the resulting dicts of ReadNameList for each of the include files (None) if unique_glyphs=True "charset": (set) if unique_glyphs=False, the union of "ownCharset" and all "charset" items of each included file (None) if unique_glyphs=True Raises: NamelistRecursionError: If nam_filename is in the process of being included. If you are using unique_glyphs=True and an external cache, don't expect the keys "includes" and "charset" to have a specific value. Depending on the state of cache, if unique_glyphs=True the returned dict may have None values for its "includes" and "charset" keys. """ currently_including = set() if not cache: cache = {} return _ReadNameListSafetyLayer(currently_including, cache, nam_filename, unique_glyphs) def CodepointsInNamelist(nam_filename, unique_glyphs=False, cache=None): """Returns the set of codepoints contained in a given Namelist file. This is a replacement CodepointsInSubset and implements the "#$ include" header format. Args: nam_filename: The path to the Namelist file. unique_glyphs: Optional, whether to only include glyphs unique to subset. cache: Optional, a dict used to cache loaded Namelist files. Returns: A set containing the glyphs in the subset. """ key = 'charset' if not unique_glyphs else 'ownCharset' result = ReadNameList(nam_filename, unique_glyphs, cache) return result[key] ### unit tests ### def MakeTestMethod(subset, namelist_filename): name = 'test_legacy_subsets_{0}'.format(subset.replace('-', '_')) def Test(self): """Comapre output of CodepointsInSubset and CodepointsInNamelist. The old function CodepointsInSubset and the new function CodepointsInNamelist should both output the same sets. This will only work as long as the #$inlcude statements in the Namelist files reproduce the old dependency logic implemented in CodepointFiles. Args: self: The test object itself. """ charset_old_method = set( hex(c) for c in CodepointsInSubset(subset, unique_glyphs=self.unique_glyphs)) charset_new_method = set( hex(c) for c in CodepointsInNamelist( namelist_filename, unique_glyphs=self.unique_glyphs, cache=self._cache)) self.assertTrue(charset_old_method) self.assertEqual(charset_old_method, charset_new_method) return name, Test def InitTestProperties(cls): initialized = [] for subset in ListSubsets(): namelist_filename = CodepointFileForSubset(subset) if namelist_filename is None: continue name, test = MakeTestMethod(subset, namelist_filename) setattr(cls, name, test) initialized.append(name) return initialized class TestCodepointReading(unittest.TestCase): unique_glyphs = True _cache = None @classmethod def setUpClass(cls): cls._cache = {} @classmethod def tearDownClass(cls): cls._cache = None def main(argv): # CodepointFileForSubset needs gflags to be parsed and that happens in # app.run(). Thus, we can't dynamically build our test cases before. InitTestProperties(TestCodepointReading) unittest.main(argv=argv, verbosity=2) if __name__ == '__main__': app.run(main) Lib/gftools/util/py_subsets.py000066400000000000000000000037461376445505300170160ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # SUBSETS = [ "arabic", "armenian", "avestan", "balinese", "bamum", "batak", "bengali", "brahmi", "buginese", "buhid", "myanmar", "canadian-aboriginal", "carian", "cham", "chakma", "cherokee", "chinese-simplified", "chinese-traditional", "coptic", "cuneiform", "cypriot", "cyrillic", "cyrillic-ext", "deseret", "egyptian-hieroglyphs", "ethiopic", "georgian", "gothic", "greek", "greek-ext", "gujarati", "gurmukhi", "hanunoo", "hebrew", "imperial-aramaic", "inscriptional-pahlavi", "inscriptional-parthian", "devanagari", "japanese", "javanese", "kaithi", "kannada", "kayah-li", "kharoshthi", "khmer", "korean", "lao", "latin", "latin-ext", "lepcha", "limbu", "linear-b", "lisu", "lycian", "lydian", "malayalam", "mandaic", "meetei-mayek", "mongolian", "new-tai-lue", "ol-chiki", "old-italic", "old-persian", "old-south-arabian", "old-turkic", "ogham", "oriya", "osmanya", "phags-pa", "runic", "samaritan", "phoenician", "rejang", "saurashtra", "shavian", "sinhala", "sundanese", "syloti-nagri", "syriac-eastern", "syriac-estrangela", "syriac-western", "tagalog", "tagbanwa", "tai-le", "tai-tham", "tai-viet", "tamil", "telugu", "thaana", "thai", "tibetan", "tifinagh", "vai", "ugaritic", "vietnamese", "yi" ] Lib/gftools/utils.py000066400000000000000000000172361376445505300150000ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from fontTools import ttLib import requests from io import BytesIO from zipfile import ZipFile import sys import os import re import shutil from collections import namedtuple from github import Github if sys.version_info[0] == 3: from configparser import ConfigParser else: from ConfigParser import ConfigParser # ===================================== # HELPER FUNCTIONS def download_family_from_Google_Fonts(family, dst=None): """Download a font family from Google Fonts""" url = 'https://fonts.google.com/download?family={}'.format( family.replace(' ', '%20') ) fonts_zip = ZipFile(download_file(url)) if dst: fonts = fonts_from_zip(fonts_zip, dst) # Remove static fonts if the family is a variable font return [f for f in fonts if "static" not in f] return fonts_from_zip(fonts_zip) def Google_Fonts_has_family(family): """Check if Google Fonts has the specified font family""" gf_api_key = load_Google_Fonts_api_key() or os.environ.get("GF_API_KEY") if not gf_api_key: raise FileNotFoundError("~/.gf-api-key or env not found. See ReadMe to create one") api_url = 'https://www.googleapis.com/webfonts/v1/webfonts?key={}'.format(gf_api_key) r = requests.get(api_url) families_on_gf = [f['family'] for f in r.json()['items']] if family in families_on_gf: return True return False def load_Google_Fonts_api_key(): config = ConfigParser() config_filepath = os.path.expanduser("~/.gf-api-key") if os.path.isfile(config_filepath): config.read(config_filepath) credentials = config.items("Credentials") return credentials[0][1] return None def parse_github_pr_url(url): if not "github.com" in url and "pull" not in url: raise ValueError("{} is not a github.com pr url".format(url)) if not url[-1].isdigit(): raise ValueError("{} should end with a pull request number".format(url)) segments = url.split("/") GithubPR = namedtuple("GithubPR", "user repo pull") return GithubPR(segments[3], segments[4], int(segments[-1])) def parse_github_dir_url(url): if not "github.com" in url: raise ValueError("{} is not a github.com dir url".format(url)) segments = url.split("/") GithubDir = namedtuple("GithubDir", "user repo branch dir") return GithubDir(segments[3], segments[4], segments[6], "/".join(segments[7:])) def download_files_in_github_pr( url, dst, filter_files=[], ignore_static_dir=True, overwrite=True, ): """Download files in a github pr e.g https://github.com/google/fonts/pull/2072 Arguments --------- url: str, github pr url dst: str, path to output files filter_files: list, collection of files to include. None will keep all. ignore_static_dir: bool, If true, do not include files which reside in a /static dir. These dirs are used in family dirs on google/fonts e.g ofl/oswald. overwrite: bool, set True to overwrite existing contents in dst Returns ------- list of paths to downloaded files """ gh = Github(os.environ["GH_TOKEN"]) url = parse_github_pr_url(url) repo_slug = "{}/{}".format(url.user, url.repo) repo = gh.get_repo(repo_slug) pull = repo.get_pull(url.pull) files = [f for f in pull.get_files()] mkdir(dst, overwrite=overwrite) # if the pr is from google/fonts or a fork of it, download all the # files inside the family dir as well. This way means we can qa # the whole family together as a whole unit. It will also download # the metadata, license and description files so all Fontbakery # checks will be executed. if pull.base.repo.name == "fonts": dirs = set([os.path.dirname(p.filename) for p in files]) results = [] for d in dirs: if ignore_static_dir and '/static' in d: continue url = os.path.join( pull.head.repo.html_url, "tree", pull.head.ref, # head branch d) results += download_files_in_github_dir(url, dst, overwrite=False) return results results = [] for f in files: filename = os.path.join(dst, f.filename) if filter_files and not filename.endswith(tuple(filter_files)): continue if ignore_static_dir and "/static" in filename: continue if not overwrite and os.path.exists(filename): continue dst_ = os.path.dirname(filename) mkdir(dst_, overwrite=False) download_file(f.raw_url, filename) results.append(filename) return results def download_files_in_github_dir( url, dst, filter_files=[], overwrite=True ): """Download files in a github dir e.g https://github.com/google/fonts/tree/master/ofl/abhayalibre Arguments --------- url: str, github dir url dst: str, path to output files filter_files: list, collection of files to include. None will keep all. overwrite: bool, set True to overwrite existing contents in dst Returns ------- list of paths to downloaded files """ gh = Github(os.environ["GH_TOKEN"]) url = parse_github_dir_url(url) repo_slug = "{}/{}".format(url.user, url.repo) repo = gh.get_repo(repo_slug) files = [f for f in repo.get_contents(url.dir, ref=url.branch) if f.type == 'file'] mkdir(dst, overwrite=overwrite) results = [] for f in files: filename = os.path.join(dst, f.path) if filter_files and not filename.endswith(tuple(filter_files)): continue if not overwrite and os.path.exists(filename): continue dst_ = os.path.dirname(filename) mkdir(dst_, overwrite=False) download_file(f.download_url, filename) results.append(filename) return results def download_file(url, dst_path=None): """Download a file from a url. If no dst_path is specified, store the file as a BytesIO object""" request = requests.get(url, stream=True) if not dst_path: return BytesIO(request.content) with open(dst_path, 'wb') as downloaded_file: downloaded_file.write(request.content) def fonts_from_zip(zipfile, dst=None): """Unzip fonts. If not dst is given unzip as BytesIO objects""" fonts = [] for filename in zipfile.namelist(): if filename.endswith(".ttf"): if dst: target = os.path.join(dst, filename) zipfile.extract(filename, dst) fonts.append(target) else: fonts.append(BytesIO(zipfile.read(filename))) return fonts def cmp(x, y): """ Replacement for built-in function cmp that was removed in Python 3 Compare the two objects x and y and return an integer according to the outcome. The return value is negative if x < y, zero if x == y and strictly positive if x > y. """ return (x > y) - (x < y) def mkdir(path, overwrite=True): if os.path.isdir(path) and overwrite: shutil.rmtree(path) if not os.path.isdir(path): os.makedirs(path) return path README.md000066400000000000000000000056771376445505300123700ustar00rootroot00000000000000# Google Fonts Tools This project contains tools used for working with the Google Fonts collection, plus **Google Fonts Glyph Set Documentation** in the [/encodings](https://github.com/googlefonts/gftools/tree/master/Lib/gftools/encodings) subdirectory. While these tools are primarily intended for contributors to the Google Fonts project, anyone who works with fonts could find them useful. The tools and files under this directory are available under the Apache License v2.0, for details see [LICENSE](LICENSE) ## Google Fonts Official Glyph Sets (Encodings) ## Usage Examples Compare fonts: gftools compare-font font1.ttf font2.ttf Add a METADATA.pb to a family directory gftools add-font ../ofl/newfamily Sanity check a family directory: gftools sanity-check --repair_script=/tmp/fix.py ../ofl/josefinsans gftools sanity-check --repair_script=/tmp/fix.py --fix_type=fsSelection ../ufl Check a font family against the same family hosted on Google Fonts: gftools qa [fonts.ttf] -gfb -a -o qa Check a variable font family against the same family as static fonts: gftools qa -f [vf_fonts] -fb [static_fonts] --diffenator --diffbrowsers -o ~/path/out Add a DSIG table to a font gftools fix-dsig font1.ttf Fix a non hinted font gftools fix-nonhinting font_in.ttf font_out.ttf Package and PR a family update to google/fonts. Much more detailed [documentation](./docs/gftools-packager). gftools packager "Family Sans" path/to/local/google/fonts -py ## Installation Please install these tools using pip: pip install gftools If you need to use `gftools qa`, you will need to install Harfbuzz, Cairo, FreeType and pkg-config. These can be installed on OS X using homebrew: brew install cairo freetype harfbuzz pkg-config Once You have installed these system packages, install gftools using the following command: pip install 'gftools[qa]' ### Requirements and Dependencies These tools depend on the submodule `GlyphsInfo`. Make sure the submodule is up to date by running: git submodule update --init --recursive `gftool packager` needs the command line `git` program in a version >= Git 2.5 (Q2 2015) in order to perform a shallow clone (`--depth 1`) of the font upstream repository and branch. This is not supported by pygit2/libgit2 yet. ### Google Fonts API Key In order to use the scripts **gftools qa** and **gftools family-html-snippet**, you will need to generate a Google Fonts api key, https://developers.google.com/fonts/. You will then need to create a new text file located on your system at `~/.gf-api-key` (where ~ is your home directory), which contains the following: ``` [Credentials] key = your-newly-generated-googlefonts-api-key ``` **Upstream project repos** * https://github.com/schriftgestalt/GlyphsInfo * https://github.com/google/google-apputils * https://github.com/google/protobuf * https://github.com/behdad/fonttools bin/000077500000000000000000000000001376445505300116425ustar00rootroot00000000000000bin/bash_completion000066400000000000000000000005711376445505300147360ustar00rootroot00000000000000# bash completion for gftools which gftools && function _gftools { local cur prev subcommands COMPREPLY=() cur="$(_get_cword)" prev="$3" # if prev is empty if [ $COMP_CWORD == 1 ] ; then subcommands="$(gftools --list-subcommands)" COMPREPLY=( $(compgen -W "$subcommands" -- "$cur") ) fi } && complete -o default -F _gftools gftools bin/fonts-subset-support.py000077500000000000000000000054731376445505300163760ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from __future__ import print_function import itertools import os import sys from absl import flags, app from gftools.util import google_fonts as fonts FLAGS = flags.FLAGS flags.DEFINE_integer('max_diff_cps', 5, 'Maximum difference in number of codepoints allowed for' ' a particular subset before which it is flagged.') def main(argv): if len(argv) != 2 or not os.path.isdir(argv[1]): sys.exit('Must have one argument, a directory containing font files.') sys.stderr = open(os.devnull, 'w') dirpath = argv[1] result = True files = [] for font in fonts.Metadata(dirpath).fonts: files.append(os.path.join(dirpath, font.filename)) for subset in fonts.Metadata(dirpath).subsets: if subset == 'menu': continue (file1, file2, diff_size) = _LeastSimilarCoverage(files, subset) if diff_size > FLAGS.max_diff_cps: print('%s coverage for %s failed' % (dirpath, subset)) print('Difference of codepoints between %s & %s is %d' % ( file1, file2, diff_size)) result = False if result: print('%s passed subset coverage' % (dirpath)) def _LeastSimilarCoverage(files, subset): """Returns pair of fonts having inconsistent coverage for a subset. Args: files: List of font files subset: Name of subset Returns: 3 tuple of (file1, file2, number of codepoints difference) """ worst = (None, None, 0) subsetcps = fonts.CodepointsInSubset(subset, True) for pair in itertools.combinations(files, 2): inconsistency = _InconsistentSubsetSupport(pair[0], pair[1], subsetcps) if inconsistency > worst[2]: worst = (pair[0], pair[1], inconsistency) return worst def _InconsistentSubsetSupport(file1, file2, subsetcps): """Returns difference in number of codepoints supported. Args: file1: Name of font file file2: Name of font file subsetcps: Complete set of codepoints to be supported Returns: Difference in number of codepoints between file1 and file2. """ supportcps1 = len(subsetcps.intersection(fonts.CodepointsInFont(file1))) supportcps2 = len(subsetcps.intersection(fonts.CodepointsInFont(file2))) return abs(supportcps1 - supportcps2) if __name__ == '__main__': app.run(main) bin/gftools000077500000000000000000000077311376445505300132550ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from __future__ import print_function from argparse import RawTextHelpFormatter from pkg_resources import get_distribution from warnings import warn import sys import os import argparse import subprocess def _get_subcommands(): subcommands = {} scriptdir = os.path.dirname(__file__) for f in os.listdir(scriptdir): command = os.path.join(scriptdir, f) if not os.path.isfile(command) or not os.access(command, os.X_OK): continue if f.startswith('gftools-'): subcommand = f[len('gftools-'):].rsplit('.')[0] else: continue if subcommand in subcommands: warn('SKIPPING subcommand collision "{0}" subcommand "{1}" ' 'already found as "{2}".'.format(command, subcommand, subcommands[subcommand])) continue subcommands[subcommand] = command return subcommands def print_menu(): __version__ = get_distribution('gftools').version print(" o-o o o--o") print("o | | o") print("| o-o o-o o-o o-o o o-o o-o o-o o-o -o- o-o") print("o | | | | | | | | |-' | | | | | | \\") print(" o-o o-o o-o o-o o o-o o o-o o o o- o-o") print(" | Tools - Version", __version__) print(" o-o") print("\nBasic command examples:\n") print(" gftools compare-font font1.ttf font2.ttf") print(" gftools compare-font --help") print(" gftools --version") print(" gftools --help\n") subcommands = _get_subcommands() __version__ = get_distribution('gftools').version description = "Run gftools subcommands:{0}".format(''.join( ['\n {0}'.format(sc) for sc in sorted(subcommands.keys())])) description += ("\n\nSubcommands have their own help messages.\n" "These are usually accessible with the -h/--help\n" "flag positioned after the subcommand.\n" "I.e.: gftools subcommand -h") parser = argparse.ArgumentParser(description=description, formatter_class=RawTextHelpFormatter) parser.add_argument('subcommand', nargs=1, help="the subcommand to execute") parser.add_argument('--list-subcommands', action='store_true', help='print the list of subcommnds ' 'to stdout, separated by a space character. This is ' 'usually only used to generate the shell completion code.') parser.add_argument('--version', '-v', action='version', version='%(prog)s ' + __version__) if __name__ == '__main__': if len(sys.argv) >= 2 and sys.argv[1] in subcommands: # relay cmd = subcommands[sys.argv[1]] # execute ['gftools-{subcommand}'.format(sys.argv[1])] + sys.argv[2:] args = [cmd] + sys.argv[2:] p = subprocess.Popen(args, stdout=sys.stdout, stdin=sys.stdin, stderr=sys.stderr) sys.exit(p.wait()) elif "--list-subcommands" in sys.argv: print(' '.join(list(subcommands.keys()))) else: # shows menu and help if no args print_menu() args = parser.parse_args() parser.print_help() bin/gftools-add-axis.py000077500000000000000000000133501376445505300153660ustar00rootroot00000000000000#!/usr/bin/env python3 """Create or author Google Fonts axisregistry {AXIS_NAME}.textproto files.""" import sys import argparse from gftools.axes_pb2 import AxisProto, FallbackProto from google.protobuf import text_format from fontTools.ttLib import TTFont parser = argparse.ArgumentParser( prog='gftools add-axis', description=__doc__, ) parser.add_argument( 'font', type=str, help='The font file to the axis values from.') class ProgramAbortError(Exception): pass class UserAbortError(Exception): pass def _get_fvar_axis(name_table, fvar_table): axes = [] for axis in fvar_table.axes: axes.append((axis, f'{name_table.getName(axis.axisNameID, 3, 1, 0x0409)} {axis.axisTag}')) axes.sort(key=lambda a:a[0].axisTag) choices = '\n'.join([f' {index}: {label}' for index, (_, label) in enumerate(axes)]) question = ('Found axes:\n' f'{choices}' '\n' 'pick one by number (e.g. 0), q=quit:') while True: try: answer = input(question).strip() if answer == 'q': raise UserAbortError() index = int(answer) # raises ValueError fvar_axis, _ = axes[index] # raises IndexError except (ValueError, IndexError): # must try again continue print(f'You picked: {fvar_axis.axisTag}.') return fvar_axis def _get_fallbacks_gen(name_table, stat_axis_index, AxisValue): for stat_axis_value in AxisValue: if stat_axis_value.Format in (1, 3): if stat_axis_value.AxisIndex == stat_axis_index: yield ( name_table.getName(stat_axis_value.ValueNameID, 3, 1, 0x0409), stat_axis_value.Value ) elif stat_axis_value.Format == 4: for avr in stat_axis_value.AxisValueRecord: if avr.AxisIndex == stat_axis_index: yield ( name_table.getName(stat_axis_value.ValueNameID, 3, 1, 0x0409), avr.Value ) else: print(f'SKIP STAT AxisValue can\'t handel Format {stat_axis_value.Format} ' f'({name_table.getName(stat_axis_value.ValueNameID, 3, 1, 0x0409)})') def main(font: str): axis_proto = AxisProto() ttFont = TTFont(font) name_table = ttFont['name'] try: fvar_table = ttFont['fvar'] except KeyError: raise ProgramAbortError('No fvar present') fvar_axis = _get_fvar_axis(name_table, fvar_table) # Axis tag axis_proto.tag = fvar_axis.axisTag # Display name for axis, e.g. "Optical size" for 'opsz' # Like 'Name' in # https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_opsz # name_table.getName( # NameID, # , # , # ) axis_proto.display_name = \ f'{name_table.getName(fvar_axis.axisNameID, 3, 1, 0x0409)}' # Lower bound for the axis axis_proto.min_value = fvar_axis.minValue # The default position to use and to prefer for exemplars axis_proto.default_value = fvar_axis.defaultValue # Upper bound for the axis axis_proto.max_value = fvar_axis.maxValue # Input values for this axis must aligned to 10^precision axis_proto.precision = 1 # ask user? # Short descriptive paragraph axis_proto.description = ( # ask user? 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod' ' tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim' ' veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea' ' commodo consequat. Duis aute irure dolor in reprehenderit in voluptate' ' velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint' ' occaecat cupidatat non proident, sunt in culpa qui officia deserunt' ' mollit anim id est laborum.' ) # Fallback positions along the axis try: stat_table = ttFont['STAT'].table fallbacks = _get_fallbacks(fvar_axis.axisTag, stat_table, name_table) if len(fallbacks): axis_proto.fallback.extend(fallbacks) except KeyError: print('STAT table not found, fallbacks won\'t be set.') text_proto = text_format.MessageToString(axis_proto, as_utf8=True, use_index_order=True) filename = f'{axis_proto.display_name.lower()}.textproto' with open(filename, 'x') as f: f.write(text_proto) print(f'DONE create {filename}!') def _get_fallbacks(axis_tag, stat_table, name_table): fallbacks = [] for stat_axis_index, stat_axis in enumerate( stat_table.DesignAxisRecord.Axis): if stat_axis.AxisTag == axis_tag: break # keep only in case of break stat_axis_index = None stat_axis = None if stat_axis is None: print(f'No STAT table DesignAxisRecord for {axis_tag} found.') return fallbacks for name, value in _get_fallbacks_gen(name_table, stat_axis_index, stat_table.AxisValueArray.AxisValue): fallback_proto = FallbackProto() fallback_proto.name = f'{name}' fallback_proto.value = value fallbacks.append(fallback_proto) return fallbacks if __name__ == '__main__': args = parser.parse_args() try: main(**args.__dict__) except UserAbortError: print('Aborted by user!') sys.exit(1) except ProgramAbortError as e: print(f'Aborted by program: {e}') sys.exit(1) bin/gftools-add-font.py000077500000000000000000000204301376445505300153650ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2018 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Utility to setup a font for addition to Piper. Generate METADATA.pb files for font families. METADATA.pb files are used to serve the families on http://fonts.google.com. Font families are stored in this repo by license type. The following directories contain font families: ../fonts/ofl ../fonts/apache ../fonts/ufl Generating a METADATA.pb file for a new family: 1. Determine the family's license type, ofl, ufl or apache 2. Create a new folder under the license type directory 3. Name the folder so it's the family name, all lowercase and no spaces. 4. Run the following: gftools add-font /path/to/new/family 5. Update the category field in the generated METADATA.pb file. Generating a METADATA.pb file for an existing family: 1. run the following: gftools add-font /path/to/existing/family """ from __future__ import print_function from functools import cmp_to_key import contextlib import errno import glob import os import sys import time from fontTools import ttLib from absl import flags import gftools.fonts_public_pb2 as fonts_pb2 from gftools.util import google_fonts as fonts from gftools.utils import cmp from absl import app from google.protobuf import text_format FLAGS = flags.FLAGS flags.DEFINE_integer('min_pct', 50, 'What percentage of subset codepoints have to be supported' ' for a non-ext subset.') # if a single glyph from the 81 glyphs in *-ext_unique-glyphs.nam file is present, the font can have the "ext" subset flags.DEFINE_float('min_pct_ext', 0.01, 'What percentage of subset codepoints have to be supported' ' for a -ext subset.') def _FileFamilyStyleWeights(fontdir): """Extracts file, family, style, weight 4-tuples for each font in dir. Args: fontdir: Directory that supposedly contains font files for a family. Returns: List of fonts.FileFamilyStyleWeightTuple ordered by weight, style (normal first). Raises: OSError: If the font directory doesn't exist (errno.ENOTDIR) or has no font files (errno.ENOENT) in it. RuntimeError: If the font directory appears to contain files from multiple families. """ if not os.path.isdir(fontdir): raise OSError(errno.ENOTDIR, 'No such directory', fontdir) files = glob.glob(os.path.join(fontdir, '*.[ot]tf')) if not files: raise OSError(errno.ENOENT, 'no font files found') result = [fonts.FamilyStyleWeight(f) for f in files] def _Cmp(r1, r2): return cmp(r1.weight, r2.weight) or -cmp(r1.style, r2.style) result = sorted(result, key=cmp_to_key(_Cmp)) family_names = {i.family for i in result} if len(family_names) > 1: raise RuntimeError('Ambiguous family name; possibilities: %s' % family_names) return result def _MakeMetadata(fontdir, is_new): """Builds a dictionary matching a METADATA.pb file. Args: fontdir: Directory containing font files for which we want metadata. is_new: Whether this is an existing or new family. Returns: A fonts_pb2.FamilyProto message, the METADATA.pb structure. Raises: RuntimeError: If the variable font axes info differs between font files of same family. """ file_family_style_weights = _FileFamilyStyleWeights(fontdir) first_file = file_family_style_weights[0].file old_metadata_file = os.path.join(fontdir, 'METADATA.pb') font_license = fonts.LicenseFromPath(fontdir) metadata = fonts_pb2.FamilyProto() metadata.name = file_family_style_weights[0].family subsets_in_font = [s[0] for s in fonts.SubsetsInFont( first_file, FLAGS.min_pct, FLAGS.min_pct_ext )] if not is_new: old_metadata = fonts_pb2.FamilyProto() with open(old_metadata_file, 'rb') as old_meta: text_format.Parse(old_meta.read(), old_metadata) metadata.designer = old_metadata.designer metadata.category = old_metadata.category metadata.date_added = old_metadata.date_added subsets = set(old_metadata.subsets) | set(subsets_in_font) else: metadata.designer = 'UNKNOWN' metadata.category = 'SANS_SERIF' metadata.date_added = time.strftime('%Y-%m-%d') subsets = ['menu'] + subsets_in_font metadata.license = font_license subsets = sorted(subsets) for subset in subsets: metadata.subsets.append(subset) for (fontfile, family, style, weight) in file_family_style_weights: filename = os.path.basename(fontfile) font_psname = fonts.ExtractName(fontfile, fonts.NAME_PSNAME, os.path.splitext(filename)[0]) font_copyright = fonts.ExtractName(fontfile, fonts.NAME_COPYRIGHT, '???.').strip() font_metadata = metadata.fonts.add() font_metadata.name = family font_metadata.style = style font_metadata.weight = weight font_metadata.filename = filename font_metadata.post_script_name = font_psname default_fullname = os.path.splitext(filename)[0].replace('-', ' ') font_metadata.full_name = fonts.ExtractName(fontfile, fonts.NAME_FULLNAME, default_fullname) font_metadata.copyright = font_copyright axes_info_from_font_files \ = {_AxisInfo(f.file) for f in file_family_style_weights} if len(axes_info_from_font_files) != 1: raise RuntimeError('Variable axes info not matching between font files') for axes_info in axes_info_from_font_files: if axes_info: for axes in axes_info: var_axes = metadata.axes.add() var_axes.tag = axes[0] var_axes.min_value = axes[1] var_axes.max_value = axes[2] return metadata def _AxisInfo(fontfile): """Gets variable axes info. Args: fontfile: Font file to look at for variation info Returns: Variable axes info """ with contextlib.closing(ttLib.TTFont(fontfile)) as font: if 'fvar' not in font: return frozenset() else: fvar = font['fvar'] axis_info = [ (a.axisTag, a.minValue, a.maxValue) for a in fvar.axes ] return tuple(sorted(axis_info)) def _GetAvgSize(file_family_style_weights): """Gets average file size of all font weights. Returns: average file size. Args: file_family_style_weights: List of fonts.FileFamilyStyleWeightTuple. """ total_size = 0 for list_tuple in file_family_style_weights: total_size += os.stat(list_tuple.file).st_size return total_size / len(file_family_style_weights) def _WriteTextFile(filename, text): """Write text to file. Nop if file exists with that exact content. This allows running against files that are in Piper and not marked for editing; you will get an error only if something changed. Args: filename: The file to write. text: The content to write to the file. """ if os.path.isfile(filename): with open(filename, 'r') as f: current = f.read() if current == text: print('No change to %s' % filename) return with open(filename, 'w') as f: f.write(text) print('Wrote %s' % filename) def _AddHumanReadableDateComment(text_proto): return re.sub(r'(date_added: \d+)', r'\1 # ' + time.strftime('%Y-%m-%d'), text_proto) def main(argv): if len(argv) != 2: sys.exit('One argument, a directory containing a font family') fontdir = argv[1] is_new = True old_metadata_file = os.path.join(fontdir, 'METADATA.pb') if os.path.isfile(old_metadata_file): is_new = False metadata = _MakeMetadata(fontdir, is_new) text_proto = text_format.MessageToString(metadata, as_utf8=True) desc = os.path.join(fontdir, 'DESCRIPTION.en_us.html') if os.path.isfile(desc): print('DESCRIPTION.en_us.html exists') else: _WriteTextFile(desc, 'N/A') _WriteTextFile(os.path.join(fontdir, 'METADATA.pb'), text_proto) if __name__ == '__main__': app.run(main) bin/gftools-build-font2ttf.py000077500000000000000000000065771376445505300165540ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2013 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. # # Convert a source font into OpenType-TTF and optionally also OpenType-CFF # # $ gftools build-font2ttf font.sfd font.ttf font.otf # $ gftools build-font2ttf font.sfdir font.ttf font.otf # $ gftools build-font2ttf font.ufo font.ttf font.otf # $ gftools build-font2ttf font.otf font.ttf from __future__ import print_function import sys import argparse import logging import os try: import fontforge except: sys.exit("To run this tool you'll need to install FontForge.") log_format = '%(levelname)-8s %(message)s' logger = logging.getLogger() handler = logging.StreamHandler() formatter = logging.Formatter(log_format) handler.setFormatter(formatter) logger.addHandler(handler) def convert(sourceFont, ttf, otf=None): try: font = fontforge.open(sourceFont) except: logger.error("Error: Could not open font (%s)" % sourceFont) return font.selection.all() # Remove overlap try: font.removeOverlap() except: logger.error("Error: Could not remove overlaps") if otf: try: font.generate(otf) logger.info("OK: Generated OpenType-CFF (%s)" % otf) except: logger.error("Error: Could not generate OpenType-CFF (%s)" % otf) # Convert curves to quadratic (TrueType) try: font.layers["Fore"].is_quadratic = True except: logger.error("Error: Could not convert to quadratic TrueType curves") return # Simplify try: font.simplify(1, ('setstarttoextremum', 'removesingletonpoints', 'mergelines')) except: logger.error("Error: Could not simplify") # Correct Directions try: font.correctDirection() except: logger.error("Error: Could not correct directions") # Generate with DSIG and OpenType tables try: flags = ('dummy-dsig', 'opentype') font.generate(ttf, flags=flags) logger.info("Success: Generated OpenType-TTF (%s)" % ttf) except: logger.error("Error: Could not generate OpenType-TTF (%s)" % ttf) return parser = argparse.ArgumentParser() parser.add_argument('--with-otf', action="store_true", help='Generate otf file') parser.add_argument('source', nargs='+', type=str) def main(): args = parser.parse_args() for src in args.source: if not os.path.exists(src): print('\nError: {} does not exists\n'.format(src), file=sys.stderr) continue basename, _ = os.path.splitext(src) otffile = None if args.with_otf: otffile = '{}.otf'.format(basename) convert(src, '{}.ttf'.format(basename), otffile) if __name__ == '__main__': main() bin/gftools-build-ofl.py000077500000000000000000000160341376445505300155530ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ Generate an OFL.txt license document """ import argparse import os import logging from fontTools.ttLib import TTFont OFL_HEAD = \ ''' This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. ''' description = "Generate an OFL.txt license document" parser = argparse.ArgumentParser(description=description) parser.add_argument('folder', nargs=1, help="folder containing font family") log_format = '%(levelname)-8s %(message)s' logger = logging.getLogger() logger.setLevel(logging.INFO) handler = logging.StreamHandler() formatter = logging.Formatter(log_format) handler.setFormatter(formatter) logger.addHandler(handler) def fonts(folder): return [TTFont(os.path.join(folder, f)) for f in os.listdir(folder) if 'ttf' in f] def _consistent_copyright_string(fonts): copyright_strings = [] for font in fonts: font_c_string = font['name'].getName(0, 1, 0, 0) copyright_strings.append(str(font_c_string)) if len(set(copyright_strings)) != 1: logger.warning('Copyright strings not consistent across family') return False else: return str(copyright_strings[0]) def _correct_copyright_string(copyright_string): if 'Project Authors' in copyright_string: return True logger.warning('Project Authors missing in copyright string') return False def generate_ofl(fonts): family_copyright_string = _consistent_copyright_string(fonts) if family_copyright_string: if _correct_copyright_string(family_copyright_string): return ''.join([family_copyright_string, OFL_HEAD]) return False def main(): args = parser.parse_args() folder = args.folder[0] if 'OFL.txt' not in os.listdir(folder): font_family = fonts(folder) if font_family: license_txt = generate_ofl(font_family) ofl_path = os.path.join(folder, 'OFL.txt') if license_txt: with open(ofl_path, 'w') as ofl_doc: ofl_doc.write(license_txt) logger.info("Generated OFL, %s" % ofl_path) else: logger.warning('No .ttfs in folder') else: logger.warning('OFL.txt exists, aborting') if __name__ == '__main__': main() bin/gftools-build-vf.py000077500000000000000000000356411376445505300154130ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2018 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. """ Automated build process for variable font onboarding to: https://github.com/google/fonts BASIC USE: This script is used to build variable fonts from the command line of a UNIX system (MacOS, GNU+Linux, Windows Subsystem for Linux (WSL)). To start the build process, navigate to the root directory of a font repo and run the following: python3 $SOURCE/BUILD.py For additional build features, the script can be run with flags, like so: python3 $SOURCE/BUILD.py --googlefonts ~/Google/fonts/ofl/$FONTNAME --static FLAGS: --googlefonts ~/Google/fonts/ofl/foo Sets upstream repo location --drawbot Render the specimen with DrawBot --ttfautohint "-args" Autohints fonts given args --fontbakery Run QA tests on fonts in upstream --static Output static fonts from VF source --fixnonhinting Run if --ttfautohint is not used --addfont Update font metadata """ import argparse import glob import os import subprocess import time from fontTools.ttLib import TTFont # Initialize flag parser parser = argparse.ArgumentParser() parser.add_argument( "--drawbot", help="Render a specimen with DrawBot", action="store_true" ) parser.add_argument( "--fontbakery", help="Test fonts with fontbakery", action="store_true" ) parser.add_argument( "--googlefonts", help="Store GoogleFonts directory name" ) parser.add_argument( "--ttfautohint", help="Store ttfautohint flags" ) parser.add_argument( "--static", help="Build static fonts", action="store_true" ) parser.add_argument( "--fixnonhinting", help="Fix nonhinting with gs tools", action="store_true" ) parser.add_argument( "--addfont", help="Update metadata", action="store_true" ) parser.add_argument( "--ufosrc", help="Build from ufo source and not glyphs", action="store_true" ) args = parser.parse_args() # Initialize empty lists sources = [] sources_styles = [] def printR(prt): """ Print in red """ print("\033[91m {}\033[00m".format(prt)) def printG(prt): """ Print in green """ print("\033[92m {}\033[00m".format(prt)) def printY(prt): """ Print in yellow """ print("\033[93m {}\033[00m".format(prt)) def intro(): """ Gives basic script info. """ printG("# # ##### ##### ################") printG("# # # # # # ## #") printG(" # # #### # # # # # #######") printG(" # # # <----> # ## # # #") printG(" ## # # # # ####") printG(" ## # ########## #####") print("\n**** Starting variable font build script:") print(" [+]", time.ctime()) printG(" [!] Done") def display_args(): """ Prints info about argparse flag use. """ print("\n**** Settings:") print(" [+] --drawbot\t\t", end="") if args.drawbot == True: printG(args.drawbot) else: printR(args.drawbot) print(" [+] --googlefonts\t\t", end="") if args.googlefonts is not None: printG(args.googlefonts) else: printR(args.googlefonts) print(" [+] --ttfautohint\t\t", end="") if args.ttfautohint is not None: printG(args.ttfautohint) else: printR(args.ttfautohint) print(" [+] --fontbakery\t\t", end="") if args.fontbakery == True: printG(args.fontbakery) else: printR(args.fontbakery) print(" [+] --static\t\t", end="") if args.static == True: printG(args.static) else: printR(args.static) print(" [+] --fixnonhinting\t", end="") if args.fixnonhinting == True: printG(args.fixnonhinting) else: printR(args.fixnonhinting) print(" [+] --addfont\t\t", end="") if args.addfont == True: printG(args.addfont) else: printR(args.addfont) print(" [+] --ufosrc\t\t", end="") if args.ufosrc == True: printG(args.ufosrc) else: printR(args.ufosrc) printG(" [!] Done") time.sleep(8) def check_root_dir(): """ Checks to make sure script is run from a git repo root directory. """ print("\n**** Looking for the font repo root directory:") REPO_ROOT = [".gitignore", ".git"] repo_test = os.listdir(path=".") repo_test_result = all(elem in repo_test for elem in REPO_ROOT) if repo_test_result: print(" [+] OK: Looks good") printG(" [!] Done") else: printR(" [!] ERROR: Run script from the root directory") time.sleep(2) def get_source_list(): """ Gets a list of source files. """ print("\n**** Making a list of Glyphsapp source files:") os.chdir("source") for name in glob.glob("*.glyphs"): sources.append(os.path.splitext(name)[0]) os.chdir("..") print(" [+] SOURCES: List of sources =", sources) time.sleep(1) printG(" [!] Done") def get_style_list(): """ Gets a list of styles from the source list. """ print("\n**** Starting build process:") for source in sources: time.sleep(0.5) print(" [+] SOURCES: Preparing to build", source) print(" [+] SOURCES: Style =", source.rpartition("-")[2]) sources_style = str(source.rpartition("-")[2]) sources_styles.append(sources_style) print(" [+] SOURCES: Styles =", sources_styles) time.sleep(1) printG(" [!] Done") def run_fontmake_variable(): """ Builds ttf variable font files with FontMake. """ for source in sources: print("\n**** Building %s variable font files with FontMake:" % source) print(" [+] Run: fontmake ") if args.ufosrc == True: subprocess.call( "fontmake \ -g source/master_ufo/%s.designspace \ -o variable \ --output-path fonts/%s-VF.ttf" % (source, source), shell=True, ) else: subprocess.call( "fontmake \ -g source/%s.glyphs \ -o variable \ --output-path fonts/%s-VF.ttf" % (source, source), shell=True, ) print(" [!] Done") printG(" [!] Done") def run_fontmake_static(): """ Builds ttf static font files with FontMake. """ for source in sources: print("\n**** Building %s static font files with FontMake:" % source) print(" [+] Run: fontmake ") subprocess.call( "fontmake \ -g source/%s.glyphs \ -o ttf \ --keep-overlaps -i" % (source), shell=True, ) print(" [!] Done") printG(" [!] Done") def prep_static_fonts(): """ Move static fonts to the fonts/static directory. Run ttfautohint on all fonts and fix missing dsig """ print("\n**** Moving static fonts:") for path in glob.glob("instance_ttf/*.ttf"): print(path) subprocess.call("cp %s fonts/static-fonts/" % path, shell=True) subprocess.call("rm -rf instance_ttf", shell=True) for static_font in glob.glob("fonts/static-fonts/*.ttf"): print(static_font) subprocess.call( "gftools fix-dsig %s --autofix" % static_font, shell=True ) if args.fixnonhinting == True: print("FIXING NONHINTING") subprocess.call( "gftools fix-nonhinting %s %s.fix" % (static_font, static_font), shell=True ) subprocess.call( "mv %s.fix %s" % (static_font, static_font), shell=True ) subprocess.call( "rm -rf %s.fix" % static_font, shell=True ) subprocess.call( "rm -rf fonts/static-fonts/*gasp.ttf", shell=True ) print(" [+] Done:", static_font) if args.ttfautohint == True: subprocess.call( "ttfautohint %s %s temp.ttf" % (args.ttfautohint, static_font), shell=True, ) subprocess.call("cp temp.ttf %s" % static_font, shell=True) subprocess.call("rm -rf temp.ttf", shell=True) time.sleep(1) printG(" [!] Done") def rm_build_dirs(): """ Cleanup build dirs """ print("\n**** removing build directories") print(" [+] run: rm -rf variable_ttf master_ufo instance_ufo") subprocess.call( "rm -rf variable_ttf master_ufo instance_ufo", shell=True ) printG(" [!] Done") time.sleep(1) def fix_dsig(): """ Fixes DSIG table """ print("\n**** Run: gftools: fix DSIG") for source in sources: subprocess.call( "gftools fix-dsig fonts/%s-VF.ttf --autofix" % source, shell=True, ) print(" [+] Done:", source) printG(" [!] Done") time.sleep(1) def fix_nonhinting(): """ Fixes non-hinting """ print("\n**** Run: gftools: fix nonhinting") for path in glob.glob("fonts/*.ttf"): print(path) subprocess.call( "gftools fix-nonhinting %s %s.fix" % (path, path), shell=True ) subprocess.call( "mv %s.fix %s" % (path, path), shell=True ) subprocess.call( "rm -rf %s.fix" % path, shell=True ) subprocess.call( "rm -rf fonts/*gasp.ttf", shell=True ) print(" [+] Done:", path) printG(" [!] Done") time.sleep(1) def ttfautohint(): """ Runs ttfautohint with flags set. For more info run: ttfautohint --help """ print("\n**** Run: ttfautohint") os.chdir("fonts") cwd = os.getcwd() print(" [+] In Directory:", cwd) for source in sources: subprocess.call( "ttfautohint %s %s-VF.ttf %s-VF-Fix.ttf" % (args.ttfautohint, source, source), shell=True, ) subprocess.call( "cp %s-VF-Fix.ttf %s-VF.ttf" % (source, source), shell=True ) subprocess.call( "rm -rf %s-VF-Fix.ttf" % source, shell=True ) print(" [+] Done:", source) os.chdir("..") cwd = os.getcwd() print(" [+] In Directory:", cwd) printG(" [!] Done") time.sleep(1) def ttfautohint_static(): """ Runs ttfautohint with flags set. For more info run: ttfautohint --help """ print("\n**** Run: ttfautohint") os.chdir("fonts") cwd = os.getcwd() print(" [+] In Directory:", cwd) for source in sources: subprocess.call( "ttfautohint %s %s-VF.ttf %s-VF-Fix.ttf" % (args.ttfautohint, source, source), shell=True, ) subprocess.call( "cp %s-VF-Fix.ttf %s-VF.ttf" % (source, source), shell=True ) subprocess.call( "rm -rf %s-VF-Fix.ttf" % source, shell=True ) print(" [+] Done:", source) os.chdir("..") cwd = os.getcwd() print(" [+] In Directory:", cwd) printG(" [!] Done") time.sleep(1) def google_fonts(): """ Copy font output to the GoogleFonts repo. """ print("\n**** Copying font output to the GoogleFonts repo.") if args.googlefonts is not None: for source in sources: subprocess.call( "cp fonts/%s-VF.ttf %s/" % (source, args.googlefonts), shell=True ) print(" [+] Done:", source) for path in glob.glob("fonts/static-fonts/*.ttf"): print(path) subprocess.call( "cp %s %s/static/" % (path, args.googlefonts), shell=True ) else: pass printG(" [!] Done") time.sleep(1) def add_font(): """ Build new metadata file for font if gf flag is used. """ print("\n**** Making new metadata file for font.") if args.googlefonts is not None: subprocess.call( "gftools add-font %s" % args.googlefonts, shell=True ) print(" [+] Done:") else: printR(" [!] Error: Use Google Fonts Flag (--googlefonts)") printG(" [!] Done") time.sleep(1) def fontbakery(): """ Run FontBakery on the GoogleFonts repo. """ print("\n**** Run: FontBakery:") for source in sources: subprocess.call( "fontbakery check-googlefonts %s/%s-VF.ttf \ --ghmarkdown docs/FONTBAKERY-REPORT-%s.md" % (args.googlefonts, source, source), shell=True, ) print(" [+] Done:", source) printG(" [!] Done") time.sleep(1) def render_specimens(): """ Render specimens """ print("\n**** Run: DrawBot") subprocess.call( "python3 docs/drawbot-sources/basic-specimen.py", shell=True, ) printG(" [!] Done") time.sleep(1) def main(): """ Executes font build sequence """ intro() display_args() check_root_dir() get_source_list() get_style_list() run_fontmake_variable() # fix non-hinting if args.fixnonhinting == True: fix_nonhinting() else: pass # make static fonts if args.static == True: run_fontmake_static() prep_static_fonts() else: pass rm_build_dirs() fix_dsig() # ttfautohint if args.ttfautohint is not None: ttfautohint() else: pass # GoogleFonts if args.googlefonts is not None: google_fonts() else: pass # AddFont if args.addfont == True: add_font() else: pass # FontBakery if args.fontbakery == True: fontbakery() else: pass # DrawBot if args.drawbot == True: render_specimens() else: pass if __name__ == "__main__": main() bin/gftools-check-bbox.py000077500000000000000000000102421376445505300156760ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 The Google Font Tools Authors # Copyright 2016 The Fontbakery Authors # # Copyright 2010, Google Inc. # Author: Dave Crossland (dave@understandinglimited.com) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ A Python script for printing bounding boxes to stdout. Users can either check a collection of fonts bounding boxes (--family) or the bounding box for each glyph in the collection of fonts (--glyphs). """ from argparse import (ArgumentParser, RawTextHelpFormatter) import csv import sys from fontTools.ttLib import TTFont import tabulate parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument('fonts', nargs='+', help='Fonts in OpenType (TTF/OTF) format') parser.add_argument('--csv', default=False, action='store_true', help='Output data in comma-separated-values format') parser.add_argument('--extremes', default=False, action='store_true', help='Print extremes coordinates for each category') group = parser.add_mutually_exclusive_group(required=True) group.add_argument('--glyphs', default=False, action='store_true', help=('Return the bounds for glyphs' ' in a collection of fonts')) group.add_argument('--family', default=False, action="store_true", help='Return the bounds for a family of fonts') def printInfo(rows, save=False): header = [r[0] for r in rows[0]] t = [] for row in rows: t.append([r[1] for r in row]) if save: writer = csv.writer(sys.stdout) writer.writerows([header]) writer.writerows(t) sys.exit(0) else: print(tabulate.tabulate(t, header, tablefmt="pipe")) def find_extremes(rows): extremes = {} for row in rows: for k, v in row: if type(v) == str: continue if k not in extremes: extremes[k] = int(v) else: if abs(int(v)) > abs(extremes[k]): extremes[k] = v return [extremes.items()] def main(): args = parser.parse_args() rows = [] for font in args.fonts: font_path = font font = TTFont(font_path) if args.glyphs: for g_name in font['glyf'].glyphs: glyph = font['glyf'][g_name] try: rows.append([ ("Font", font_path), ("Glyph", g_name), ("xMin", glyph.xMin), ("yMin", glyph.yMin), ("xMax", glyph.xMax), ("yMax", glyph.yMax) ]) except AttributeError: # glyphs without paths or components don't have # yMin, yMax etc rows.append([ ("Font", font_path), ("Glyph", g_name), ("xMin", 0), ("yMin", 0), ("xMax", 0), ("yMax", 0) ]) pass elif args.family: rows.append([ ("Font", font_path), ("xMin", font['head'].xMin), ("yMin", font['head'].yMin), ("xMax", font['head'].xMax), ("yMax", font['head'].yMax) ]) if args.extremes: rows = find_extremes(rows) if args.csv: printInfo(rows, save=True) else: printInfo(rows) if __name__ == '__main__': main() bin/gftools-check-category.py000077500000000000000000000067651376445505300166000ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from __future__ import print_function import argparse import os import sys import requests import json from gftools.fonts_public_pb2 import FamilyProto from google.protobuf import text_format description = ("Comparison of category fields of local METADATA.pb files" " with data corresponding metadata on the Google Fonts Developer API.\n\n" " In order to use it you need to provide an API key.") parser = argparse.ArgumentParser(description=description) parser.add_argument('key', help='Key from Google Fonts Developer API') parser.add_argument('repo', help=('Directory tree that contains' ' directories with METADATA.pb files.')) parser.add_argument('--verbose', help='Print additional information', action="store_true") API_URL = 'https://www.googleapis.com/webfonts/v1/webfonts?key={}' def main(): args = parser.parse_args() response = requests.get(API_URL.format(args.key)) try: webfontList = response.json()['items'] webfontListFamilyNames = [item['family'] for item in webfontList] except (ValueError, KeyError): sys.exit("Unable to load and parse" " list of families from Google Web Fonts API.") for dirpath, dirnames, filenames in os.walk(args.repo): metadata_path = os.path.join(dirpath, 'METADATA.pb') if not os.path.exists(metadata_path): continue metadata = FamilyProto() text_data = open(metadata_path, "rb").read() text_format.Merge(text_data, metadata) try: family = metadata.name except KeyError: print(('ERROR: "{}" does not contain' ' familyname info.').format(metadata_path), file=sys.stderr) continue try: index = webfontListFamilyNames.index(family) webfontsItem = webfontList[index] except ValueError: if args.verbose: print(('ERROR: Family "{}" could not be found' ' in Google Web Fonts API.').format(family)) continue if metadata.category == "SANS_SERIF": # That's fine :-) category = "sans-serif" else: category = metadata.category.lower() if category != webfontsItem['category']: print(('ERROR: "{}" category "{}" in git' ' does not match category "{}"' ' in API.').format(family, metadata.category, webfontsItem['category'])) else: if args.verbose: print(('OK: "{}" ' 'category "{}" in sync.').format(family, metadata.category)) if __name__ == '__main__': main() bin/gftools-check-copyright-notices.py000077500000000000000000000046411376445505300204240ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import argparse import os import tabulate from fontTools import ttLib from gftools.constants import (NAMEID_COPYRIGHT_NOTICE, PLATID_STR) parser = argparse.ArgumentParser(description='Print out copyright' ' nameIDs strings') parser.add_argument('font', nargs="+") parser.add_argument('--csv', default=False, action='store_true', help="Output data in comma-separate-values" " (CSV) file format") def main(): args = parser.parse_args() rows = [] for font in args.font: ttfont = ttLib.TTFont(font) for name in ttfont['name'].names: if name.nameID != NAMEID_COPYRIGHT_NOTICE: continue value = name.string.decode(name.getEncoding()) or '' rows.append([os.path.basename(font), value, len(value), "{} ({})".format( name.platformID, PLATID_STR.get(name.platformID, "?"))]) header = ['filename', 'copyright notice', 'char length', 'platformID'] def as_csv(rows): import csv import sys writer = csv.writer(sys.stdout, delimiter='|', quotechar='"', quoting=csv.QUOTE_MINIMAL) writer.writerows([header]) writer.writerows(rows) sys.exit(0) if args.csv: as_csv(rows) print("") #some spacing print(tabulate.tabulate(rows, header, tablefmt="pipe")) print("") #some spacing if __name__ == '__main__': """ Example usage: gftools check-copyright-notices ~/fonts/*/*/*ttf --csv > ~/notices.txt; """ main() bin/gftools-check-font-version.py000077500000000000000000000062731376445505300174060ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ Check the version number of a family hosted on fonts.google.com. """ from __future__ import print_function from argparse import ArgumentParser from fontTools.ttLib import TTFont from ntpath import basename from zipfile import ZipFile from gftools.utils import ( download_family_from_Google_Fonts, download_file, fonts_from_zip ) def parse_version_head(fonts): """Return a family's version number. Ideally, each font in the family should have the same version number. If not, return the highest version number.""" versions = [] if isinstance(fonts, list): for font in fonts: versions.append(float(font['head'].fontRevision)) else: versions.append(float(fonts['head'].fontRevision)) return max(versions) def main(): parser = ArgumentParser(description=__doc__) parser.add_argument('family', help='Name of font family') parser.add_argument('-wc', '--web-compare', help='Compare against a web url .zip family') parser.add_argument('-lc', '--local-compare', nargs='+', help='Compare against a set of local ttfs') args = parser.parse_args() google_family = download_family_from_Google_Fonts(args.family) google_family_fonts = [TTFont(f) for f in google_family] google_family_version = parse_version_head(google_family_fonts) if args.web_compare: if args.web_compare.endswith('.zip'): web_family_zip = ZipFile(download_file(args.web_compare)) web_family = fonts_from_zip(web_family_zip) web_family_fonts = [TTFont(f) for f in web_family if f.name.endswith(".ttf")] web_family_name = set(f.reader.file.name.split('-')[0] for f in web_family) web_family_version = parse_version_head(web_family_fonts) print('Google Fonts Version of %s is v%s' % ( args.family, google_family_version )) print('Web Version of %s is v%s' % ( ', '.join(web_family_name), web_family_version )) elif args.local_compare: local_family = [TTFont(f) for f in args.local_compare] local_family_version = parse_version_head(local_family) local_fonts_name = set(basename(f.split('-')[0]) for f in args.local_compare) print('Google Fonts Version of %s is v%s' % ( args.family, google_family_version )) print('Local Version of %s is v%s' % ( ','.join(local_fonts_name), local_family_version )) else: print('Google Fonts Version of %s is v%s' % ( args.family, google_family_version )) if __name__ == '__main__': main() bin/gftools-check-gf-github.py000077500000000000000000000143771376445505300166350ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ Report how many github issues/prs were opened and closed for the google/fonts repository between two specified dates. Example: Issues between 2017-01-01 to 2017-06-01: gftools check-gf-github 2017-01-01 2017-06-01 The title and url of each issues/pr can be displayed by using the -v, --verbose option. """ from __future__ import print_function import requests import re from datetime import datetime from argparse import (ArgumentParser, RawTextHelpFormatter) def get_pagination_urls(request): pages = dict( [(rel[6:-1], url[url.index('<')+1:-1]) for url, rel in [link.split(';') for link in request.headers['link'].split(',')]] ) last_page_url = pages['last'] last_page_no = re.search(r'(?<=&page=)[0-9]{1,20}', last_page_url).group(0) base_url = last_page_url.replace('page={}'.format(last_page_no), 'page={}') return [base_url.format(u) for u in range(1, int(last_page_no) + 1)] def get_issues_paginate(request_issues, start, end, headers): """ If there are too many issues for one page, iterate through the pages to collect them all. """ issues = {} print('Getting paginated results, be patient...') pages_url = get_pagination_urls(request_issues) for page_url in pages_url: request = requests.get(page_url, headers=headers) page_issues = get_issues(request, start, end) for issue_type in page_issues: if issue_type not in issues: issues[issue_type] = [] issues[issue_type] = issues[issue_type] + page_issues[issue_type] return issues def get_issues(request_issues, start, end): """ Return a dictionary containing 4 categories of issues """ issues = [i for i in request_issues.json()] return { "closed_issues": [ i for i in issues if i['closed_at'] and 'pull_request' not in i and iso8601_to_date(i['closed_at']) >= start and iso8601_to_date(i['closed_at']) <= end ], "opened_issues": [ i for i in issues if 'pull_request' not in i and iso8601_to_date(i['created_at']) >= start and iso8601_to_date(i['created_at']) <= end ], "closed_prs": [ i for i in issues if i['closed_at'] and 'pull_request' in i and iso8601_to_date(i['closed_at']) >= start and iso8601_to_date(i['closed_at']) <= end ], "opened_prs": [ i for i in issues if 'pull_request' in i and iso8601_to_date(i['created_at']) >= start and iso8601_to_date(i['created_at']) <= end ], } def output_issues(issues, key): for issue in issues[key]: title = issue['title'][:50] + '...' url = issue['url'].replace('api.github.com/repos/', 'github.com/') print('%s\t%s\t%s' % ( key, title.ljust(50, ' ').encode('utf-8'), url.encode('utf-8'), )) def iso8601_to_date(date_string): """Note, this function will strip out the time and tz""" date_string = date_string.split('T')[0] return datetime.strptime(date_string, "%Y-%m-%d") def main(): parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument('github_api_token', help=("User's Github API token. Generate one using the " "following link: https://github.com/settings/tokens")) parser.add_argument('start', help="Start date in ISO 8601 format YYYY-MM-DD") parser.add_argument('end', help="End date in ISO 8601 format YYYY-MM-DD") parser.add_argument('-v', '--verbose', action='store_true', help="Output all title and urls for prs and issues") parser.add_argument('-ci', '--closed-issues',action='store_true', help="Output all closed issues") parser.add_argument('-oi', '--opened-issues',action='store_true', help="Output all opened issues") parser.add_argument('-cp', '--closed-pulls',action='store_true', help="Output all closed/merged pull requests") parser.add_argument('-op', '--opened-pulls',action='store_true', help="Output all opened pull requests") args = parser.parse_args() start = iso8601_to_date(args.start) end = iso8601_to_date(args.end) if start > end: raise ValueError('start time is greater than end time') repo_url = "https://api.github.com/repos/google/fonts/issues" request_params = { 'state': 'all', 'direction': 'asc', 'since': args.start, 'per_page': 100 } headers = {'Authorization': 'token %s' % args.github_api_token} request_issues = requests.get( repo_url, params=request_params, headers=headers, ) print(request_issues.text) # Check if issues span more than one page if 'link' in request_issues.headers: issues = get_issues_paginate(request_issues, start, end, headers) else: issues = get_issues(request_issues, start, end) if args.verbose: output_issues(issues, 'closed_issues') output_issues(issues, 'opened_issues') output_issues(issues, 'closed_prs') output_issues(issues, 'opened_prs') else: if args.closed_issues: output_issues(issues, 'closed_issues') if args.opened_issues: output_issues(issues, 'opened_issues') if args.closed_pulls: output_issues(issues, 'closed_prs') if args.opened_pulls: output_issues(issues, 'opened_prs') print('Issues closed\t%s' % len(issues['closed_issues'])) print('Issues opened\t%s' % len(issues['opened_issues'])) print('Pull requests closed/merged\t%s' % len(issues['closed_prs'])) print('Pull requests opened\t%s' % len(issues['opened_prs'])) if __name__ == '__main__': main() bin/gftools-check-name.py000077500000000000000000000043451376445505300156730ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 The Google Font Tools Authors # Copyright 2010, Google Inc. # Author: Dave Crossland (dave@understandinglimited.com) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ A Python script for printing nametables to stdout. e.g: Check nametables of fonts in collection: gftools check-name [fonts] Output in csv format gftools check-name [fonts] --csv """ from argparse import (ArgumentParser, RawTextHelpFormatter) import csv import sys from fontTools.ttLib import TTFont import tabulate import ntpath parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument('fonts', nargs="+", help="Fonts in OpenType (TTF/OTF) format") parser.add_argument('--csv', default=False, action='store_true') def printInfo(rows, save=False): header = [r[0] for r in rows[0]] t = [] for row in rows: t.append([r[1] for r in row]) if save: writer = csv.writer(sys.stdout) writer.writerows([header]) writer.writerows(t) sys.exit(0) else: print(tabulate.tabulate(t, header, tablefmt="plain")) def main(): args = parser.parse_args() rows = [] for font_filename in args.fonts: font = TTFont(font_filename) for field in font['name'].names: enc = field.getEncoding() rows.append([ ('Font', ntpath.basename(font_filename)), ('platformID', field.platformID), ('encodingID', field.platEncID), ('languageID', field.langID), ('nameID', field.nameID), ('nameString', field.toUnicode()), ]) if args.csv: printInfo(rows, save=True) else: printInfo(rows) if __name__ == '__main__': main() bin/gftools-check-sandbox-family.py000077500000000000000000000072561376445505300176740ustar00rootroot00000000000000#!/usr/bin/env python3 """ Make a diff/gif image of a site by swapping the GF production families with the same families hosted on the sandbox server. Usage: gftools check-sandbox-family https://www.somesite.com """ import os import sys from selenium import webdriver from selenium.webdriver.chrome.options import Options from PIL import Image, ImageDraw, ImageFont import argparse from urllib.parse import urlsplit from io import BytesIO import time SWAP_FONT_JS = """ links = document.getElementsByTagName('link'); for (i in links) { if (typeof(links[i].href) != 'undefined') { if (links[i].href.indexOf("fonts.googleapis.com") > -1) links[i].href = links[i].href.replace("fonts.googleapis", "fonts.sandbox.google"); } } """ WIDTH = 1024 def get_font_for_os(): if sys.platform.startswith("linux"): return os.path.join( "usr", "share", "font", "truetype", "noto" "NotoMono-Regular.ttf") elif sys.platform.startswith("darwin"): return os.path.join("Library", "Fonts", "Arial.ttf") elif sys.platform.startswith("win"): return os.path.join("c:", "\\", "Windows", "Fonts", "arial.ttf") else: raise NotImplementedError("Please use OSX, Ubuntu or Win") def main(): parser = argparse.ArgumentParser() parser.add_argument("url") parser.add_argument("-o", "--out", help="Gif out path e.g ~/Desktop/site1.gif") parser.add_argument("-l", "--limit", type=int, help="limit diff height") args = parser.parse_args() chrome_options = Options() chrome_options.add_argument("--headless") with webdriver.Chrome(options=chrome_options) as driver: driver.get(args.url) required_height = driver.execute_script('return document.body.parentNode.scrollHeight') if args.limit and required_height > args.limit: required_height = args.limit driver.set_window_size(WIDTH, required_height) try: families_in_use = driver.find_elements_by_xpath( '//link[contains(@href, "fonts.googleapis.com/css")]' ) for family in families_in_use: print("Changing GF url %s to %s" % ( family.get_attribute("href"), family.get_attribute("href").replace( "fonts.googleapis.com", "fonts.sandbox.google.com") )) except: raise Exception("No hosted GF families found on %s" % args.url) time.sleep(2) before_img = driver.get_screenshot_as_png() driver.execute_script(SWAP_FONT_JS) time.sleep(2) after_img = driver.get_screenshot_as_png() if args.out: gif_path = args.out else: gif_path = urlsplit(args.url).netloc + ".gif" with Image.open(BytesIO(before_img)) as before, Image.open(BytesIO(after_img)) as after: font_path = get_font_for_os() font = ImageFont.truetype(font_path, 32) before_draw = ImageDraw.Draw(before) before_draw.rectangle((0, 0, WIDTH, 50), fill=(0, 0, 0)) before_draw.text((10, 10), "Production", (255, 0, 0), font=font) after_draw = ImageDraw.Draw(after) after_draw.rectangle((0, 0, WIDTH, 50), fill=(0, 0, 0)) after_draw.text((10, 10), "Sandbox", (255, 0, 0), font=font) before.save( gif_path, save_all=True, append_images=[after], loop=10000, duration=1000, ) if __name__ == "__main__": main() bin/gftools-check-vf-avar.py000077500000000000000000000140051376445505300163070ustar00rootroot00000000000000#!/usr/bin/env python3 """ Generate a html overlay doc which compares a family of static fonts against a family of vf font instances. If the variable font instances do not match the static fonts perfectly, it usually means the avar table needs adjusting https://docs.microsoft.com/en-us/typography/opentype/spec/avar Please note: The generated html doc will only work on browsers which support variable fonts. TODO (M Foley) this script is a quickie. The functionality of this script should be built into GF regression. """ from __future__ import print_function import argparse import os WEIGHT_MAP = { 'Thin': 100, 'ThinItalic': 100, 'ExtraLight': 200, 'ExtraLightItalic': 200, 'Light': 300, 'LightItalic': 300, 'Regular': 400, 'Italic': 400, 'Medium': 500, 'MediumItalic': 500, 'SemiBold': 600, 'SemiBoldItalic': 600, 'Bold': 700, 'BoldItalic': 700, 'ExtraBold': 800, 'ExtraBoldItalic': 800, 'Black': 900, 'BlackItalic': 900 } HTML_TEMPLATE = """

Variable Font instances vs Static fonts

Static fonts, Variable Font Instances

{{ elements }}
""" def get_vf_font_info(variable_font_paths): faces = [] for path in variable_font_paths: filename = os.path.basename(path)[:-4] family_name = filename.split('-')[0] + '-VF' font_type = filename.split('-')[1] if font_type not in ('Roman', 'Italic'): raise Exception("Filename must contain either Roman or Italic") style = 'normal' if 'Roman' in font_type else 'italic' faces.append((family_name, path, style)) return sorted(faces, key=lambda k: k[2]) def get_static_fonts_info(static_font_paths): faces = [] for path in static_font_paths: filename = os.path.basename(path)[:-4] family_name, style = filename.split('-') weight = WEIGHT_MAP[style] ttype = 'normal' if 'Italic' not in style else 'italic' faces.append((family_name, path, weight, ttype)) return sorted(faces, key=lambda k: k[2]) def populate_html_template(html_template, static_fonts, vf_fonts): """Note: The vf css styles are populated using the weight and style values from the static fonts.""" static_font_template = """ @font-face {font-family: '%s'; src: url('%s') format('truetype'); font-weight: %s; font-style: %s}""" vf_font_template = """ @font-face {font-family: '%s'; src: url('%s') format('truetype'); font-weight: 1 999; font-style: %s}""" style_template = """ .%s{ position: absolute; font-family: %s; font-weight: %s; font-style: %s; font-size: 48px; top: %spx; }""" vf_style_template = """ .%s{ position: absolute; font-family: %s; font-weight: %s; font-style: %s; font-size: 48px; top: %spx; color: cyan; }""" element_template = """
hamburgevons
""" html = html_template # Gen @font-faces for static fonts static_font_faces = [] for family_name, path, weight, ttype in static_fonts: static_font_face = static_font_template % ( family_name, path, weight, ttype ) static_font_faces.append(static_font_face) # Gen @font-face for variable fonts vf_font_faces = [] for family_name, path, style in vf_fonts: vf_font_face = vf_font_template % ( family_name, path, style ) vf_font_faces.append(vf_font_face) # Gen css classes for both static fonts and variable fonts. Use the # static font values to set the vf values so they're matching. # Gen div elements for each style as well. static_styles = [] variable_styles = [] elements = [] line_gap = 150 for family_name, path, weight, ttype in static_fonts: # Gen static class styles static_style = style_template % ( family_name+str(weight)+ttype, family_name, weight, ttype, line_gap ) static_styles.append(static_style) # Gen variable class styles variable_style = vf_style_template % ( vf_fonts[0][0]+str(weight)+ttype, vf_fonts[0][0], weight, ttype, line_gap ) variable_styles.append(variable_style) # Gen Div elements static_element = element_template % ( family_name+str(weight)+ttype ) elements.append(static_element) variable_element = element_template % ( vf_fonts[0][0]+str(weight)+ttype ) elements.append(variable_element) line_gap += 72 html = html.replace('{{ static_fonts }}', '\n'.join(static_font_faces)) html = html.replace('{{ variable_fonts }}', '\n'.join(vf_font_faces)) html = html.replace('{{ static_styles }}', '\n'.join(static_styles)) html = html.replace('{{ variable_styles }}', '\n'.join(variable_styles)) html = html.replace('{{ elements }}', '\n'.join(elements)) return html def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('--variable-fonts', '-vf', nargs='+') parser.add_argument('--static-fonts', '-sf', nargs='+') parser.add_argument('--out', '-o', help='html output filepath', required=True) args = parser.parse_args() vf_fonts = get_vf_font_info(args.variable_fonts) static_fonts = get_static_fonts_info(args.static_fonts) html = populate_html_template( HTML_TEMPLATE, static_fonts, vf_fonts ) with open(args.out, 'w') as html_doc: html_doc.write(html) print('html written to {}'.format(args.out)) if __name__ == '__main__': main() bin/gftools-check-vtt-compatibility.py000077500000000000000000000070231376445505300204330ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2013,2016 The Font Bakery Authors. # Copyright 2017 The Google Fonts Tools Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. # """ Check a hinted font will successfully transfer vtt instructions to an unhinted font. """ from argparse import (ArgumentParser, RawTextHelpFormatter) from fontTools.ttLib import TTFont import logging def font_glyphs(font): '''return a dict of glyphs objects for font {'a': , 'b': }''' return {g: font['glyf'][g] for g in font['glyf'].glyphs} def glyphs_points(font): '''return a dict of glyphs coordinates/composites for each font {'a': [(0,0), (10,10)], 'b': [(10,10, (20,20))]}, ''' for glyph in font: if hasattr(font[glyph], 'coordinates'): font[glyph] = font[glyph].coordinates elif font[glyph].isComposite(): font[glyph] = [c.glyphName for c in font[glyph]] else: font[glyph] = None return font def compare_glyph_count(font1, name1, name2): if font1: logging.warning('%s missing glyphs against %s:\n%s' % ( name1, name2, ', '.join(font1) )) else: logging.info('%s %s glyphs match' % (name1, name2)) parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument('hinted', help='Hinted font') parser.add_argument('unhinted', help='Unhinted font') parser.add_argument('--count', action="store_true", default=True, help="Check fonts have the same glyph count") parser.add_argument('--compatible', action="store_true", default=True, help="Check glyphs share same coordinates and composites") logging.getLogger().setLevel(logging.DEBUG) def main(): args = parser.parse_args() hinted = TTFont(args.hinted) unhinted = TTFont(args.unhinted) hinted_glyphs = font_glyphs(hinted) unhinted_glyphs = font_glyphs(unhinted) if args.count: logging.debug('Comparing glyph counts:') hinted_missing = set(unhinted_glyphs.keys()) - set(hinted_glyphs.keys()) unhinted_missing = set(hinted_glyphs.keys()) - set(unhinted_glyphs.keys()) compare_glyph_count(hinted_missing, args.hinted, args.unhinted) compare_glyph_count(unhinted_missing, args.unhinted, args.hinted) if args.compatible: logging.debug('Check glyph structures match') hinted_glyph_points = glyphs_points(hinted_glyphs) unhinted_glyph_points = glyphs_points(unhinted_glyphs) shared_glyphs = set(unhinted_glyphs) & set(hinted_glyphs.keys()) incompatible_glyphs = [] for glyph in shared_glyphs: if unhinted_glyph_points[glyph] != hinted_glyph_points[glyph]: incompatible_glyphs.append(glyph) if incompatible_glyphs: logging.warning('Incompatible glyphs between %s & %s:\n%s' % ( args.hinted, args.unhinted, ', '.join(incompatible_glyphs) ) ) else: logging.info('Glyph sets are compatible') if __name__ == '__main__': main() bin/gftools-check-vtt-compile.py000077500000000000000000000027661376445505300172230ustar00rootroot00000000000000#!/usr/bin/env python3 """Check if a font's VTT hinting can be compiled with vttLib""" from vttLib import * from fontTools.ttLib import TTFont import argparse def main(): parser = argparse.ArgumentParser() parser.add_argument("font_path") parser.add_argument("-f", "--remove-incompatible-hinting", action="store_true") args = parser.parse_args() font = TTFont(args.font_path) if "TSI1" not in font: print("Font is not VTT hinted") return glyph_names = font.getGlyphOrder() incompatible_glyphs = [] for gid, glyph_name in enumerate(glyph_names): try: data = get_glyph_assembly(font, glyph_name) except KeyError: pass try: program, components = make_glyph_program(data, glyph_name) except: incompatible_glyphs.append((gid, glyph_name)) if not incompatible_glyphs: print("All glyphs compile") return print("Following glyphs cannot compile using vttLib:") print("GlyphID GlyphName") for gid, glyph_name in incompatible_glyphs: print(gid, glyph_name) if not args.remove_incompatible_hinting: return if args.remove_incompatible_hinting: for _, glyph_name in incompatible_glyphs: font['TSI1'].glyphPrograms[glyph_name] = "" font['TSI3'].glyphPrograms[glyph_name] = "" font.save(args.font_path + ".fix") print("Incompatible glyph hints have been removed") if __name__ == "__main__": main() bin/gftools-compare-font.py000077500000000000000000000163651376445505300162770ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Utility to compare two font files. Prints change in glyph count by supported subset and change in size by table. This is helpful for understanding what is happening when we get a new version of a font (why is Roboto2 3x larger than Roboto?). Sample output (abriged run for roboto vs roboto2, at the time slightly smaller): Subset Coverage Change (codepoints) cyrillic -1 (316/320 => 315/320) cyrillic-ext -1 (491/653 => 490/653) greek -1 (290/363 => 289/363) greek-ext -1 (291/619 => 290/619) latin -1 (215/219 => 214/219) latin-ext -11 (389/1029 => 378/1029) vietnamese -1 (300/304 => 299/304) all -13 (896 => 883) Roboto-Regular.ttf (162876) vs Roboto2-Regular.ttf (145256) (-17620) Table Changes (delta bytes, from=>to, % change) BASE, +0, 0=>0, 0.0% CFF , +0, 0=>0, 0.0% DSIG, +0, 0=>0, 0.0% FFTM, +0, 0=>0, 0.0% GDEF, -516, 580=>64, -0.3% GPOS, -146, 21028=>20882, -0.1% GSUB, -5052, 6120=>1068, -3.1% LTSH, +0, 0=>0, 0.0% OS/2, +0, 96=>96, 0.0% VORG, +0, 0=>0, 0.0% cmap, -2634, 4808=>2174, -1.6% cvt , +68, 76=>144, 0.0% fpgm, +2483, 444=>2927, 1.5% gasp, -4, 12=>8, -0.0% glyf, -19546, 119606=>100060, -12.0% hdmx, -1260, 1260=>0, -0.8% head, +0, 54=>54, 0.0% hhea, +0, 36=>36, 0.0% hmtx, -712, 5000=>4288, -0.4% kern, +0, 0=>0, 0.0% loca, -356, 2502=>2146, -0.2% maxp, +0, 32=>32, 0.0% name, +708, 664=>1372, 0.4% post, +9437, 32=>9469, 5.8% prep, -81, 219=>138, -0.0% vhea, +0, 0=>0, 0.0% vmtx, +0, 0=>0, 0.0% TOTAL, -17611, 162569=>144958, -10.8% """ import errno import os import sys from fontTools.ttLib import sfnt from absl import flags, app from gftools.util import google_fonts as fonts FLAGS = flags.FLAGS flags.DEFINE_boolean('diff_tables', True, 'Whether to print table size diffs') flags.DEFINE_boolean('diff_coverage', True, 'Whether to print coverage diffs') _KNOWN_TABLES = ('BASE', 'CFF ', 'DSIG', 'GDEF', 'GPOS', 'GSUB', 'LTSH', 'OS/2', 'VORG', 'cmap', 'cvt ', 'fpgm', 'gasp', 'glyf', 'hdmx', 'head', 'hhea', 'hmtx', 'loca', 'maxp', 'name', 'post', 'prep', 'FFTM', 'kern', 'vhea', 'vmtx') def CompareSize(font_filename1, font_filename2): """Prints a size comparison for two fonts. If so flagged (--diff_tables), prints per-table size change. Args: font_filename1: The first font to compare. font_filename2: The second font to compare. Returns: String describing size differences. Raises: OSError: If either argument doesn't point to a file. errno.ENOENT. """ if not (os.path.isfile(font_filename1) and os.path.isfile(font_filename2)): raise OSError(errno.ENOENT, 'Missing at least one of %s and %s' % ( os.path.basename(font_filename1), os.path.basename(font_filename2))) font_sz1 = os.stat(font_filename1).st_size font_sz2 = os.stat(font_filename2).st_size result = '%s (%d) vs %s (%d) (%+d)\n' % ( os.path.basename(font_filename1), font_sz1, os.path.basename(font_filename2), font_sz2, font_sz2 - font_sz1) if FLAGS.diff_tables: result += DiffTables(font_filename1, font_filename2) return result def DiffTables(font_filename1, font_filename2): """Prints a table-by-table size comparison of two fonts. Args: font_filename1: The first font to compare. font_filename2: The second font to compare. Returns: String describing size difference. One line per unique table in either font. """ result = [' Table Changes Delta-Bytes(from=>to) % Change'] result.append(' -------------------------------------------------') sfnt1 = sfnt.SFNTReader(open(font_filename1, 'rb')) sfnt2 = sfnt.SFNTReader(open(font_filename2, 'rb')) font_sz1 = os.stat(font_filename1).st_size sum_tables1 = 0 sum_tables2 = 0 table_l1_l2s = [] for t in fonts.UniqueSort(sfnt1.tables, sfnt2.tables, _KNOWN_TABLES): table1_sz = sfnt1.tables[t].length if t in sfnt1 else 0 table2_sz = sfnt2.tables[t].length if t in sfnt2 else 0 sum_tables1 += table1_sz sum_tables2 += table2_sz table_l1_l2s.append((t, table1_sz, table2_sz)) for (table, table1_sz, table2_sz) in table_l1_l2s: delta_pct = float(table2_sz - table1_sz) / font_sz1 * 100 result.append(' %s %+6d %06d => %06d %+10.1f%%' % ( table, table2_sz - table1_sz, table1_sz, table2_sz, delta_pct)) delta_pct = float(sum_tables2 - sum_tables1) / font_sz1 * 100 result.append(' TOTAL %+6d %06d => %06d %+10.1f%%' % ( sum_tables2 - sum_tables1, sum_tables1, sum_tables2, delta_pct)) return '\n'.join(result) def DiffCoverage(font_filename1, font_filename2, subset): """Prints a comparison of the coverage of a given subset by two fonts. Args: font_filename1: The first font to compare. font_filename2: The second font to compare. subset: The lowercase name of the subset to compare coverage of. """ f1cps = fonts.CodepointsInFont(font_filename1) f2cps = fonts.CodepointsInFont(font_filename2) if subset != 'all': subset_cps = fonts.CodepointsInSubset(subset) f1cps &= subset_cps f2cps &= subset_cps else: subset_cps = None subset_cp_str = ('/%d' % len(subset_cps)) if subset_cps is not None else '' print(' %s %+d (%d%s => %d%s)' % ( subset, len(f2cps) - len(f1cps), len(f1cps), subset_cp_str, len(f2cps), subset_cp_str)) def CompareDirs(font1, font2): """Compares fonts by assuming font1/2 are dirs containing METADATA.pb.""" m1 = fonts.Metadata(font1) m2 = fonts.Metadata(font2) subsets_to_compare = fonts.UniqueSort(m1.subsets, m2.subsets) subsets_to_compare.remove('menu') subsets_to_compare.append('all') font_filename1 = os.path.join(font1, fonts.RegularWeight(m1)) font_filename2 = os.path.join(font2, fonts.RegularWeight(m2)) if FLAGS.diff_coverage: print('Subset Coverage Change (codepoints)') for subset in subsets_to_compare: DiffCoverage(font_filename1, font_filename2, subset) print(CompareSize(font_filename1, font_filename2)) def CompareFiles(font1, font2): """Compares fonts assuming font1/2 are font files.""" print(CompareSize(font1, font2)) def main(_): if len(sys.argv) < 3: raise app.UsageError('Must pass at least two arguments, font file or font' ' dir to diff') font1 = sys.argv[1] font2 = sys.argv[2] dirs = os.path.isdir(font1) and os.path.isdir(font2) files = os.path.isfile(font1) and os.path.isfile(font2) if not dirs and not files: print('%s and %s must both point to directories or font files' % ( font1, font2)) sys.exit(1) if dirs: CompareDirs(font1, font2) if files: CompareFiles(font1, font2) if __name__ == '__main__': app.run(main) bin/gftools-dump-names.py000077500000000000000000000025431376445505300157440ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # r"""Utility to print Unicode 'name' table values from font(s). """ from __future__ import print_function import contextlib import os from fontTools import ttLib from absl import app def main(argv): for font_file in argv[1:]: filename = os.path.basename(font_file) try: with contextlib.closing(ttLib.TTFont(font_file)) as ttf: if 'name' not in ttf: continue for name in ttf['name'].names: print('%s %d %d %d %s %s' % (filename, name.platformID, name.platEncID, name.langID, name.nameID, name.toUnicode())) except ttLib.TTLibError as e: print('BAD_FILE', font_file, e) if __name__ == '__main__': app.run(main) bin/gftools-family-html-snippet.py000077500000000000000000000137121376445505300176010ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ Generate a test html snippet for a family hosted on fonts.google.com This script works well for quickly producing test cases using jsbin. $ fontbakery family-html-snippet "Exo" "Hello World" >>> ...

Hello World

Hello World

Hello World

Hello World

""" from __future__ import print_function import json import requests import sys from argparse import (ArgumentParser, RawTextHelpFormatter) GF_API = "https://www.googleapis.com/webfonts/v1/webfonts?key={}" GF_API_WEIGHT_TO_CSS_WEIGHT = { "100": "100", "100italic": "100i", "200": "200", "200italic": "200i", "300": "300", "300italic": "300i", "regular": "400", "italic": "400i", "500": "500", "500italic": "500i", "600": "600", "600italic": "600i", "700": "700", "700italic": "700i", "800": "800", "800italic": "800i", "900": "900", "900italic": "900i" } API_TO_CSS_STYLE_NAME = { "100": "a", "100i": "b", "200": "c", "200i": "d", "300": "e", "300i": "f", "400": "g", "400i": "h", "500": "i", "500i": "j", "600": "k", "600i": "l", "700": "m", "700i": "n", "800": "o", "800i": "p", "900": "q", "900i": "r", } def get_gf_family(family, api_key): """Get data of the given family hosted on Google Fonts""" request = requests.get(GF_API.format(api_key)) try: response = json.loads(request.text) if "error" in response: if response["error"]["errors"][0]["reason"] == "keyInvalid": sys.exit(("The Google Fonts API key '{}'" " was rejected as being invalid !").format(api_key)) else: sys.exit(("There were errors in the" " Google Fonts API request:" " {}").format(response["error"])) else: gf_families = response except (ValueError, KeyError): sys.exit("Unable to load and parse data from Google Web Fonts API.") for item in gf_families['items']: if family == item['family']: return item return False def get_family_styles(gf_family): """Get all the styles of a family""" styles = [] if gf_family: for var in gf_family['variants']: styles.append((GF_API_WEIGHT_TO_CSS_WEIGHT[var])) return styles def get_family_subsets(family_subsets, gf_family): """Get all the valid subsets from the given family""" valid_subsets = [] if family_subsets: for subset in family_subsets: if subset in gf_family['subsets']: valid_subsets.append(subset) return valid_subsets def gen_head_webfonts(family, styles, subsets=None): """Gen the html snippet to load fonts""" server = '"https://fonts.googleapis.com/css?family=' if subsets: return '' % ( server, family.replace(' ', '+'), ','.join(styles), ','.join(subsets) ) return '' % ( server, family.replace(' ', '+'), ','.join(styles) ) def gen_css_styles(family, styles): css = [] for style in styles: if style.endswith('i'): css.append((".%s{font-family: '%s'; " "font-weight:%s; " "font-style: italic;}" % ( API_TO_CSS_STYLE_NAME[style], family, style[:-1]) )) else: css.append((".%s{font-family: '%s'; " "font-weight:%s;}" % ( API_TO_CSS_STYLE_NAME[style], family, style) )) return css def gen_body_text(styles, sample_text): html = [] for style in styles: html.append("

%s

" % ( API_TO_CSS_STYLE_NAME[style], sample_text) ) return html def main(): parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument('key', help='Key from Google Fonts Developer API') parser.add_argument('family', help='family name on fonts.google.com') parser.add_argument('sample_text', help='sample text used for each font') parser.add_argument('--subsets', nargs='+', help='family subset(s) seperated by a space') args = parser.parse_args() gf_family = get_gf_family(args.family, args.key) family_styles = get_family_styles(gf_family) family_subsets = get_family_subsets(args.subsets, gf_family) if family_subsets: head_fonts = gen_head_webfonts(args.family, family_styles, family_subsets) else: head_fonts = gen_head_webfonts(args.family, family_styles) css_styles = gen_css_styles(args.family, family_styles) body_text = gen_body_text(family_styles, args.sample_text) html = """ %s %s """ % ( head_fonts, '\n '.join(css_styles), '\n '.join(body_text) ) print(html) if __name__ == '__main__': main() bin/gftools-find-features.py000077500000000000000000000037201376445505300164300ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Tool to print GPOS and GSUB features supported by font file(s). """ from __future__ import print_function import contextlib import os import sys from fontTools.ttLib import TTFont from gftools.util import google_fonts as fonts from absl import app def ListFeatures(font): """List features for specified font. Table assumed structured like GPS/GSUB. Args: font: a TTFont. Returns: List of 3-tuples of ('GPOS', tag, name) of the features in the font. """ results = [] for tbl in ["GPOS", "GSUB"]: if tbl in font.keys(): results += [ (tbl, f.FeatureTag, "lookups: [{}]".format(", ".join(map(str, f.Feature.LookupListIndex))) ) for f in font[tbl].table.FeatureList.FeatureRecord ] return results def main(path): if path.endswith(".ttf"): font_files = [path] elif os.path.isdir(path): font_files = glob(path + "/*.ttf") for font_file in font_files: features = [] with TTFont(font_file) as font: features += ListFeatures(font) for (table, tag, lookup_name) in features: print('{:32s} {:4s} {:8s} {:15s}'.format( os.path.basename(font_file), table, str(tag), lookup_name)) if __name__ == '__main__': if len(sys.argv) != 2: print("Please include either a path to a ttf or a path to a dir " "containing ttfs") else: main(sys.argv[1]) bin/gftools-fix-ascii-fontmetadata.py000077500000000000000000000042641376445505300202210ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2013 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. # import argparse import unicodedata from unidecode import unidecode from fontTools import ttLib def unicode_marks(string): unicodemap = [(u'©', '(c)'), (u'®', '(r)'), (u'™', '(tm)')] return filter(lambda char: char[0] in string, unicodemap) def normalizestr(string): """ Converts special characters like copyright, trademark signs to ascii name """ # print("input: '{}'".format(string)) input_string = string for mark, ascii_repl in unicode_marks(string): string = string.replace(mark, ascii_repl) rv = [] # for c in unicodedata.normalize('NFKC', smart_text(string)): for c in unicodedata.normalize('NFKC', string): # cat = unicodedata.category(c)[0] # if cat in 'LN' or c in ok: rv.append(c) new = ''.join(rv).strip() result = unidecode(new) if result != input_string: print("Fixed string: '{}'".format(result)) return result description = 'Fixes TTF NAME table strings to be ascii only' parser = argparse.ArgumentParser(description=description) parser.add_argument('ttf_font', nargs='+', help="Font in OpenType (TTF/OTF) format") def main(): args = parser.parse_args() for path in args.ttf_font: font = ttLib.TTFont(path) for name in font['name'].names: title = name.string.decode(name.getEncoding()) title = normalizestr(title) name.string = title.encode(name.getEncoding()) if __name__ == "__main__": main() bin/gftools-fix-cmap.py000077500000000000000000000105661376445505300154060ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Fonts Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from os.path import basename from argparse import ArgumentParser from fontTools.ttLib import TTFont from fontTools.ttLib.tables._c_m_a_p import CmapSubtable description = "Manipulate a collection of fonts' cmap tables." def convert_cmap_subtables_to_v4(font): cmap = font['cmap'] outtables = [] fixit = False for table in cmap.tables: if table.format != 4: print(('Converted format {} cmap subtable' ' with Platform ID = {} and Encoding ID = {}' ' to format 4.').format(table.format, table.platformID, table.platEncID)) fixit = True newtable = CmapSubtable.newSubtable(4) newtable.platformID = table.platformID newtable.platEncID = table.platEncID newtable.language = table.language newtable.cmap = table.cmap outtables.append(newtable) font['cmap'].tables = outtables return fixit def remove_cmap_subtable(font, plat_id, enc_id): to_be_removed = [] for index, table in enumerate(font['cmap'].tables): if table.platformID == plat_id and table.platEncID == enc_id: to_be_removed.append(index) to_be_removed.reverse() for index in to_be_removed: font['cmap'].tables.remove(table) fixit = len(to_be_removed) > 0 return fixit def keep_only_specific_cmap(font, plat_id, enc_id=None): to_be_removed = [] for index, table in enumerate(font['cmap'].tables): if table.platformID != plat_id and (enc_id==None or table.platEncID != enc_id): to_be_removed.append(index) else: print(("Keeping format {} cmap subtable with Platform ID = {}" " and Encoding ID = {}").format(table.format, table.platformID, table.platEncID)) to_be_removed.reverse() for index in to_be_removed: table = font['cmap'].tables[index] print(("--- Removed format {} cmap subtable with Platform ID = {}" " and Encoding ID = {} ---").format(table.format, table.platformID, table.platEncID)) font['cmap'].tables.remove(table) fixit = len(to_be_removed) > 0 return fixit def main(): parser = ArgumentParser(description=description) parser.add_argument('fonts', nargs='+') parser.add_argument('--format-4-subtables', '-f4', default=False, action='store_true', help="Convert cmap subtables to format 4") parser.add_argument('--drop-mac-subtable', '-dm', default=False, action='store_true', help='Drop Mac cmap subtables') parser.add_argument('--keep-only-pid-0', '-k0', default=False, action='store_true', help=('Keep only cmap subtables with pid=0' ' and drop the rest.')) args = parser.parse_args() for path in args.fonts: font = TTFont(path) font_filename = basename(path) fixit = False if args.format_4_subtables: print('\nConverting Cmap subtables to format 4...') fixit = convert_cmap_subtables_to_v4(font) if args.keep_only_pid_0: print('\nDropping all Cmap subtables,' ' except the ones with PlatformId = 0...') dropped = keep_only_specific_cmap(font, 0) fixit = fixit or dropped elif args.drop_mac_subtable: print('\nDropping any Cmap Mac subtable...') dropped = remove_cmap_subtable(font, 1, 0) fixit = fixit or dropped if fixit: print('\n\nSaving %s to %s.fix' % (font_filename, path)) font.save(path + '.fix') else: print('\n\nThere were no changes needed on the font file!') if __name__ == '__main__': main() bin/gftools-fix-dsig.py000077500000000000000000000063151376445505300154110ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2013,2016 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. # from __future__ import print_function, unicode_literals import argparse import os from fontTools import ttLib from gftools.fix import add_dummy_dsig description = 'Fixes TTF to have a dummy DSIG table' parser = argparse.ArgumentParser(description=description) parser.add_argument('ttf_font', nargs='+', help="One or more font files") parser.add_argument('-a', '--autofix', action='store_true', help='Write empty DSIG table if not present in font.') parser.add_argument('-f', '--force', action='store_true', help='Write empty DSIG table in any case.') parser.add_argument('-d', '--delete', action='store_true', help='Delete DSIG table if present in font.') def set_empty_dsig(ttFont): newDSIG = ttLib.newTable("DSIG") newDSIG.ulVersion = 1 newDSIG.usFlag = 0 newDSIG.usNumSigs = 0 newDSIG.signatureRecords = [] ttFont.tables["DSIG"] = newDSIG def main(): args = parser.parse_args() for path in args.ttf_font: if not os.path.exists(path): continue font = ttLib.TTFont(path) has_DSIG = "DSIG" in font write_DSIG = args.force or args.autofix and not has_DSIG if has_DSIG and args.delete: del font["DSIG"] font.save(path) has_DSIG = False print("DELETED: '{}': removed digital " "signature (DSIG)".format(path)) if write_DSIG: add_dummy_dsig(font) font.save(path) if not args.force: print("HOTFIX: '{}': Font lacked a digital" " signature (DSIG), so we just added a dummy" " placeholder that should be enough for the" " applications that require its presence in" " order to work properly.".format(path)) else: print("FORCED: '{}': Font has a new a dummy digital " "signature (DSIG)".format(path)) elif not has_DSIG and not args.delete: print(("ERROR: '{}': Font lacks a digital signature" " (DSIG table). Some applications may required" " one (even if only a dummy placeholder)" " in order to work properly. Re-run this script" " passing --autofix in order to hotfix the font" " with a dummy signature.").format(path)) elif has_DSIG: print(("INFO: '{}': Font has a digital signature" " (DSIG table).").format(path)) if __name__ == '__main__': main() bin/gftools-fix-family.py000077500000000000000000000030461376445505300157420ustar00rootroot00000000000000#!/usr/bin/env python3 """ gftools fix-family Update a family so it conforms to the Google Fonts specification https://github.com/googlefonts/gf-docs/tree/master/Spec Usage: gftools fix-family fonts1.ttf fonts2.ttf # Fix font issues that should be fixed in the source files gftools fix-family fonts1.ttf --include-source-fixes """ import argparse import logging import os from fontTools.ttLib import TTFont from gftools.fix import * log = logging.getLogger(__name__) def main(): parser = argparse.ArgumentParser() parser.add_argument("fonts", nargs="+", help="Font family paths") parser.add_argument( "--inplace", action="store_true", default=False, help="Save fixed fonts inplace" ) parser.add_argument("-o", "--out", help="Output dir for fixed fonts") parser.add_argument( "--include-source-fixes", action="store_true", help="Fix font issues that should be fixed in the source files.", ) args = parser.parse_args() fonts = [TTFont(f) for f in args.fonts] fix_family(fonts, args.include_source_fixes) if args.inplace: for font in fonts: font.save(font.reader.file.name) elif args.out: if not os.path.isdir(args.out): os.mkdir(args.out) for font in fonts: out_path = os.path.join( args.out, os.path.basename(font.reader.file.name) ) font.save(out_path) else: for font in fonts: font.save(font.reader.file.name + ".fix") if __name__ == "__main__": main() bin/gftools-fix-familymetadata.py000077500000000000000000000112261376445505300174420ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import argparse import os import tabulate from fontTools import ttLib from gftools.constants import (PLATFORM_ID__WINDOWS, NAMEID_STR, NAMEID_FONT_FAMILY_NAME, NAMEID_FONT_SUBFAMILY_NAME, NAMEID_FULL_FONT_NAME, NAMEID_POSTSCRIPT_NAME, NAMEID_TYPOGRAPHIC_FAMILY_NAME, NAMEID_TYPOGRAPHIC_SUBFAMILY_NAME, NAMEID_COMPATIBLE_FULL_MACONLY) parser = argparse.ArgumentParser(description=("Print out family" " metadata of the fonts")) parser.add_argument('font', nargs="+") parser.add_argument('--csv', default=False, action='store_true') class FamilyMetadataTable(object): headers = ['filename'] rows = [] current_row = [] def addToHeader(self, value): if value not in self.headers: self.headers.append(value) def putnewRow(self, columnvalue=None): self.current_row = [] if columnvalue: self.current_row.append(columnvalue) def putrowToTable(self): self.rows.append(self.current_row) def binary_string(self, value): return "{:#010b} {:#010b}".format(value >> 8, value & 0xFF).replace('0b', '') def putfsSelection(self, ttfont): self.addToHeader('fsSelection') self.current_row.append(self.binary_string(ttfont['OS/2'].fsSelection)) def putmacStyle(self, ttfont): self.addToHeader('macStyle') self.current_row.append(self.binary_string(ttfont['head'].macStyle)) def putnameIds(self, ttfont, platform=PLATFORM_ID__WINDOWS): for nameid in [NAMEID_FONT_FAMILY_NAME, NAMEID_FONT_SUBFAMILY_NAME, NAMEID_FULL_FONT_NAME, NAMEID_POSTSCRIPT_NAME, NAMEID_TYPOGRAPHIC_FAMILY_NAME, NAMEID_TYPOGRAPHIC_SUBFAMILY_NAME, NAMEID_COMPATIBLE_FULL_MACONLY]: value = '' for name in ttfont['name'].names: if nameid == name.nameID and platform == name.platformID: value = name.string.decode(name.getEncoding()) or '' break self.addToHeader('{}:{}'.format(nameid, NAMEID_STR[nameid])) self.current_row.append(value) def putitalicAngle(self, ttfont): self.addToHeader('italicAngle') self.current_row.append(ttfont['post'].italicAngle) def putwidthClass(self, ttfont): self.addToHeader('usWidthClass') self.current_row.append(ttfont['OS/2'].usWidthClass) def putweightClass(self, ttfont): self.addToHeader('usWeightClass') self.current_row.append(ttfont['OS/2'].usWeightClass) def putPanose(self, ttfont): for i, k in enumerate(sorted(ttfont['OS/2'].panose.__dict__.keys())): self.addToHeader(k) self.current_row.append(getattr(ttfont['OS/2'].panose, k, 0)) def putfixedPitch(self, ttfont): self.addToHeader('isFixedPitch') self.current_row.append(ttfont['post'].isFixedPitch) if __name__ == '__main__': options = parser.parse_args() rows = [] fm = FamilyMetadataTable() for i, font in enumerate(options.font): ttfont = ttLib.TTFont(font) fm.putnewRow(os.path.basename(font)) fm.putnameIds(ttfont) fm.putmacStyle(ttfont) fm.putitalicAngle(ttfont) fm.putfsSelection(ttfont) fm.putweightClass(ttfont) fm.putwidthClass(ttfont) fm.putfixedPitch(ttfont) fm.putPanose(ttfont) fm.putrowToTable() def as_csv(rows): import csv import sys writer = csv.writer(sys.stdout) writer.writerows([fm.headers]) writer.writerows(rows) sys.exit(0) if options.csv: as_csv(fm.rows) print(tabulate.tabulate(fm.rows, fm.headers)) bin/gftools-fix-font.py000077500000000000000000000020221376445505300154200ustar00rootroot00000000000000#!/usr/bin/env python3 """ gftools fix-font Update a font so it conforms to the Google Fonts specification https://github.com/googlefonts/gf-docs/tree/master/Spec Usage: gftools fix-font font.ttf # Fix font issues that should be fixed in the source files gftools fix-font font.ttf --include-source-fixes """ import argparse import logging from fontTools.ttLib import TTFont from gftools.fix import * log = logging.getLogger(__name__) def main(): parser = argparse.ArgumentParser() parser.add_argument("font", help="Path to font") parser.add_argument("-o", "--out", help="Output path for fixed font") parser.add_argument( "--include-source-fixes", action="store_true", help="Fix font issues that should be fixed in the source files.", ) args = parser.parse_args() font = TTFont(args.font) fix_font(font, args.include_source_fixes) if args.out: font.save(args.out) else: font.save(font.reader.file.name + ".fix") if __name__ == "__main__": main() bin/gftools-fix-fsselection.py000077500000000000000000000113061376445505300167750ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Fonts Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import argparse import csv import os import sys from fontTools import ttLib import tabulate parser = argparse.ArgumentParser(description='Print out fsSelection' ' bitmask of the fonts') parser.add_argument('font', nargs="+") parser.add_argument('--csv', default=False, action='store_true') parser.add_argument('--usetypometrics', default=False, action='store_true') parser.add_argument('--autofix', default=False, action='store_true') STYLE_NAMES = ["Thin", "ExtraLight", "Light", "Regular", "Medium", "SemiBold", "Bold", "ExtraBold", "Black", "Thin Italic", "ExtraLight Italic", "Light Italic", "Italic", "Medium Italic", "SemiBold Italic", "Bold Italic", "ExtraBold Italic", "Black Italic"] RIBBI_STYLE_NAMES = ["Regular", "Italic", "Bold", "BoldItalic"] def getByte2(ttfont): return ttfont['OS/2'].fsSelection >> 8 def getByte1(ttfont): return ttfont['OS/2'].fsSelection & 255 def printInfo(fonts, print_csv=False): rows = [] headers = ['filename', 'fsSelection'] for font in fonts: ttfont = ttLib.TTFont(font) row = [os.path.basename(font)] row.append(('{:#010b} ' '{:#010b}' '').format(getByte2(ttfont), getByte1(ttfont)).replace('0b', '')) rows.append(row) def as_csv(rows): writer = csv.writer(sys.stdout) writer.writerows([headers]) writer.writerows(rows) sys.exit(0) if print_csv: as_csv(rows) else: print(tabulate.tabulate(rows, headers, tablefmt="pipe")) def get_stylename(filename): filename_base = filename.split('.')[0] return filename_base.split('-')[-1] def _familyname(filename): filename_base = filename.split('.')[0] names = filename_base.split('-') names.pop() return '-'.join(names) def is_italic(stylename): return 'Italic' in stylename def is_regular(stylename): return ("Regular" in stylename or (stylename in STYLE_NAMES and stylename not in RIBBI_STYLE_NAMES and "Italic" not in stylename)) def is_bold(stylename): return stylename in ["Bold", "BoldItalic"] def is_canonical(filename): if '-' not in filename: return False else: style = get_stylename(filename) for valid in STYLE_NAMES: valid = ''.join(valid.split(' ')) if style == valid: return True # otherwise: return False def main(): args = parser.parse_args() if args.autofix: fixed_fonts = [] for font in args.font: ttfont = ttLib.TTFont(font) filename = os.path.basename(font) if not is_canonical(filename): print(f"Font filename '{filename}' is not canonical!\n\n" f"Filename must be structured as familyname-style.ttf and " f"the style must be any of the following {STYLE_NAMES}") exit(-1) stylename = get_stylename(filename) initial_value = ttfont['OS/2'].fsSelection if is_regular(stylename): ttfont['OS/2'].fsSelection |= 0b1000000 else: ttfont['OS/2'].fsSelection &= ~0b1000000 if is_bold(stylename): ttfont['OS/2'].fsSelection |= 0b100000 else: ttfont['OS/2'].fsSelection &= ~0b100000 if is_italic(stylename): ttfont['OS/2'].fsSelection |= 0b1 else: ttfont['OS/2'].fsSelection &= ~0b1 if args.usetypometrics: ttfont['OS/2'].version = 4 ttfont['OS/2'].fsSelection |= 0b10000000 else: ttfont['OS/2'].fsSelection &= ~0b10000000 if ttfont['OS/2'].fsSelection != initial_value: fixed_fonts.append(font) ttfont.save(font + '.fix') if len(fixed_fonts) > 0: printInfo([f + '.fix' for f in fixed_fonts], print_csv=args.csv) sys.exit(0) printInfo(args.font, print_csv=args.csv) if __name__ == '__main__': main() bin/gftools-fix-fstype.py000077500000000000000000000032731376445505300157750ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ Update a collection of fonts fsType value to Installable Embedding. Google Fonts requires Installable Embedding (0): https://github.com/googlefonts/gf-docs/blob/master/ProjectChecklist.md#fstype Microsoft OpenType specification: https://www.microsoft.com/typography/otspec/os2.htm#fst """ from __future__ import print_function from argparse import (ArgumentParser, RawTextHelpFormatter) from fontTools.ttLib import TTFont from gftools.fix import fix_fs_type parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument('fonts', nargs="+", help="Fonts in OpenType (TTF/OTF) format") def main(): args = parser.parse_args() for font_path in args.fonts: font = TTFont(font_path) if font['OS/2'].fsType != 0: fix_fs_type(font) font.save(font_path + '.fix') print('font saved %s.fix' % font_path) else: print('SKIPPING: %s fsType is already 0' % font_path) if __name__ == '__main__': main() bin/gftools-fix-gasp.py000077500000000000000000000047311376445505300154150ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2013 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. # import argparse from fontTools import ttLib class GaspFixer(): def __init__(self, path): self.font = ttLib.TTFont(path) self.path = path self.saveit = False def __del__(self): if self.saveit: self.font.save(self.path + ".fix") def fix(self, value=15): try: table = self.font.get('gasp') table.gaspRange[65535] = value self.saveit = True except: print(('ER: {}: no table gasp... ' 'Creating new table. ').format(self.path)) table = ttLib.newTable('gasp') table.gaspRange = {65535: value} self.font['gasp'] = table self.saveit = True def show(self): try: self.font.get('gasp') except: print('ER: {}: no table gasp'.format(self.path)) return try: print(self.font.get('gasp').gaspRange[65535]) except IndexError: print('ER: {}: no index 65535'.format(self.path)) description = 'Fixes TTF GASP table' parser = argparse.ArgumentParser(description=description) parser.add_argument('ttf_font', nargs='+', help="Font in OpenType (TTF/OTF) format") parser.add_argument('--autofix', action='store_true', help='Apply autofix') parser.add_argument('--set', type=int, help=('Change gasprange value of key 65535' ' to new value'), default=None) def main(): args = parser.parse_args() for path in args.ttf_font: if args.set is not None: GaspFixer(path).fix(args.set) elif args.autofix: GaspFixer(path).fix() else: GaspFixer(path).show() if __name__ == '__main__': main() bin/gftools-fix-glyph-private-encoding.py000077500000000000000000000071361376445505300210440ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2013 The Font Bakery Authors. # Copyright 2017 The Google Fonts Tools Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. # import argparse import copy import os from fontTools import ttLib description = 'Fixes TTF unencoded glyphs to have Private Use Area encodings' parser = argparse.ArgumentParser(description=description) parser.add_argument('ttf_font', nargs='+', help='Font in OpenType (TTF/OTF) format') parser.add_argument('--autofix', action="store_true", help='Apply autofix. ' 'Otherwise just check if there are unencoded glyphs') def get_unencoded_glyphs(font): """ Check if font has unencoded glyphs """ cmap = font['cmap'] new_cmap = cmap.getcmap(3, 10) if not new_cmap: for ucs2cmapid in ((3, 1), (0, 3), (3, 0)): new_cmap = cmap.getcmap(ucs2cmapid[0], ucs2cmapid[1]) if new_cmap: break if not new_cmap: return [] diff = list(set(font.getGlyphOrder()) - set(new_cmap.cmap.values()) - {'.notdef'}) return [g for g in diff[:] if g != '.notdef'] class AddSPUAByGlyphIDToCmap(object): def __init__(self, path): self.font = ttLib.TTFont(path) self.path = path self.saveit = False def __del__(self): if self.saveit: self.font.save(self.path + ".fix") def fix(self): unencoded_glyphs = get_unencoded_glyphs(self.font) if not unencoded_glyphs: return ucs2cmap = None cmap = self.font["cmap"] # Check if an UCS-2 cmap exists for ucs2cmapid in ((3, 1), (0, 3), (3, 0)): ucs2cmap = cmap.getcmap(ucs2cmapid[0], ucs2cmapid[1]) if ucs2cmap: break # Create UCS-4 cmap and copy the contents of UCS-2 cmap # unless UCS 4 cmap already exists ucs4cmap = cmap.getcmap(3, 10) if not ucs4cmap: cmapModule = ttLib.getTableModule('cmap') ucs4cmap = cmapModule.cmap_format_12(12) ucs4cmap.platformID = 3 ucs4cmap.platEncID = 10 ucs4cmap.language = 0 if ucs2cmap: ucs4cmap.cmap = copy.deepcopy(ucs2cmap.cmap) cmap.tables.append(ucs4cmap) # Map all glyphs to UCS-4 cmap Supplementary PUA-A codepoints # by 0xF0000 + glyphID ucs4cmap = cmap.getcmap(3, 10) for glyphID, glyph in enumerate(self.font.getGlyphOrder()): if glyph in unencoded_glyphs: ucs4cmap.cmap[0xF0000 + glyphID] = glyph self.font['cmap'] = cmap return True def main(): args = parser.parse_args() for path in args.ttf_font: if not os.path.exists(path): continue if args.autofix: AddSPUAByGlyphIDToCmap(path).fix() else: font = ttLib.TTFont(path, 0) print(("\nThese are the unencoded glyphs in font file '{0}':\n" "{1}").format(path, '\n'.join(get_unencoded_glyphs(font)))) if __name__ == '__main__': main() bin/gftools-fix-glyphs.py000077500000000000000000000037441376445505300157740ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Font Bakery Authors # Copyright 2017 The Google Fonts Tools Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from __future__ import unicode_literals import argparse from glyphsLib import GSFont parser = argparse.ArgumentParser(description='Report issues' ' on .glyphs font files') parser.add_argument('font', nargs="+") #parser.add_argument('--autofix', default=False, # action='store_true', help='Apply autofix') def customparam(font, name): for param in font.customParameters: if param.name == name: return param.value def main(): args = parser.parse_args() for font_path in args.font: font = GSFont(font_path) print('Copyright: "{}"'.format(font.copyright)) print('VendorID: "{}"'.format(customparam(font, "vendorID"))) print('fsType: {}'.format(customparam(font, "fsType"))) print('license: "{}"'.format(customparam(font, "license"))) print('licenseURL: "{}"'.format(customparam(font, "licenseURL"))) # TODO: handle these other fields: # # for master/instance in masters-or-instances: # print: 8 Vertical Metrics # # Instance ExtraLight weightClass set to 275 # Instances italicAngle set to 0, if the master/instance slant value is not 0 # Instance named Regular (400) for families with a single instance # Instance Bold style linking set for families with a 400 and 700 instance if __name__ == '__main__': main() bin/gftools-fix-hinting.py000077500000000000000000000031641376445505300161220ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2013,2016 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. # """ Hinted fonts must have head table flag bit 3 set. Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of Head::flags decides whether PPEM should be rounded. This bit should always be set for hinted fonts. Note: Bit 3 = Force ppem to integer values for all internal scaler math; May use fractional ppem sizes if this bit is clear; """ from __future__ import print_function, unicode_literals import argparse from fontTools.ttLib import TTFont from gftools.fix import fix_hinted_font def font_has_hinting(font): return 'fpgm' in font def main(): parser = argparse.ArgumentParser() parser.add_argument("font") args = parser.parse_args() font = TTFont(args.font) if font_has_hinting(font): fix_hinted_font(font) else: print("Skipping. Font is not hinted") font.save(args.font + ".fix") if __name__ == '__main__': main() bin/gftools-fix-isfixedpitch.py000077500000000000000000000101201376445505300171330ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2013,2016 The Font Bakery Authors. # Copyright 2017,2020 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. """ It is important for monospaced fonts to have the 'isFixedPitch' flag set to 1 in the post table. If it is set to 0, Windows coding programs categorize them as proportional fonts, and they will not appear as options in font selection preferences. \n This script checks whether a font or collection of fonts appears to be monospaced by checking for equal widths in the entire Latin lowercase, a to z. If these are equal, 'isFixedPitch' will be set to 1. If a-z are unequal, 'isFixedPitch' will be set to 0. Usage: gftools-fix-isfixedpitch --fonts [font1.ttf font2.ttf ...] """ from fontTools.ttLib import TTFont from fontTools.misc.fixedTools import otRound import argparse def fix_isFixedPitch(ttfont): same_width = set() glyph_metrics = ttfont['hmtx'].metrics for character in [chr(c) for c in range(65, 91)]: same_width.add(glyph_metrics[character][0]) if len(same_width) == 1: if ttfont['post'].isFixedPitch == 1: print("Skipping isFixedPitch is set correctly") else: print("Font is monospace. Updating isFixedPitch to 0") ttfont['post'].isFixedPitch = 1 familyType = ttfont['OS/2'].panose.bFamilyType if familyType == 2: expected = 9 elif familyType == 3 or familyType == 5: expected = 3 elif familyType == 0: print("Font is monospace but panose fields seems to be not set." " Setting values to defaults (FamilyType = 2, Proportion = 9).") ttfont['OS/2'].panose.bFamilyType = 2 ttfont['OS/2'].panose.bProportion = 9 expected = None else: expected = None if expected: if ttfont['OS/2'].panose.bProportion == expected: print("Skipping OS/2.panose.bProportion is set correctly") else: print(("Font is monospace." " Since OS/2.panose.bFamilyType is {}" " we're updating OS/2.panose.bProportion" " to {}").format(familyType, expected)) ttfont['OS/2'].panose.bProportion = expected widths = [m[0] for m in ttfont['hmtx'].metrics.values() if m[0] > 0] width_max = max(widths) if ttfont['hhea'].advanceWidthMax == width_max: print("Skipping hhea.advanceWidthMax is set correctly") else: print("Font is monospace. Updating hhea.advanceWidthMax to %i" % width_max) ttfont['hhea'].advanceWidthMax = width_max avg_width = otRound(sum(widths) / len(widths)) if avg_width == ttfont['OS/2'].xAvgCharWidth: print("Skipping OS/2.xAvgCharWidth is set correctly") else: print("Font is monospace. Updating OS/2.xAvgCharWidth to %i" % avg_width) ttfont['OS/2'].xAvgCharWidth = avg_width else: ttfont['post'].isFixedPitch = 0 ttfont['OS/2'].panose.bProportion = 0 def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--fonts", nargs="+", required=True) args = parser.parse_args() for font in args.fonts: ttfont = TTFont(font) fix_isFixedPitch(ttfont) new_font = font + ".fix" print("Saving font to {}".format(new_font)) ttfont.save(new_font) if __name__ == "__main__": main() bin/gftools-fix-nameids.py000077500000000000000000000113751376445505300161050ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import argparse import os import tabulate from fontTools import ttLib parser = argparse.ArgumentParser(description='Print out nameID' ' strings of the fonts') parser.add_argument('font', nargs="+") parser.add_argument('--autofix', default=False, action='store_true', help='Apply autofix') parser.add_argument('--csv', default=False, action='store_true', help="Output data in comma-separate-values" " (CSV) file format") parser.add_argument('--id', '-i', default='all') parser.add_argument('--platform', '-p', type=int, default=3) parser.add_argument('--drop-superfluous-mac-names', '-ms', default=False, action='store_true', help='Drop superfluous Mac names') parser.add_argument('--drop-mac-names', '-m', default=False, action='store_true', help='Drop all Mac name fields') def has_mac_names(ttfont): """Check if a font has Mac names. Mac names have the following field values: platformID: 1, encodingID: 0, LanguageID: 0""" for i in range(255): if ttfont['name'].getName(i, 1, 0, 0): return True return False def drop_superfluous_mac_names(ttfont): """Drop superfluous Mac nameIDs. The following nameIDS are kept: 1: Font Family name, 2: Font Family Subfamily name, 3: Unique font identifier, 4: Full font name, 5: Version string, 6: Postscript name, 16: Typographic family name, 17: Typographic Subfamily name 18: Compatible full (Macintosh only), 20: PostScript CID, 21: WWS Family Name, 22: WWS Subfamily Name, 25: Variations PostScript Name Prefix. We keep these IDs in order for certain application to still function such as Word 2011. IDs 1-6 are very common, > 16 are edge cases. https://www.microsoft.com/typography/otspec/name.htm""" keep_ids = [1, 2, 3, 4, 5, 6, 16, 17, 18, 20, 21, 22, 25] for n in range(255): if n not in keep_ids: name = ttfont['name'].getName(n, 1, 0, 0) if name: ttfont['name'].names.remove(name) def drop_mac_names(ttfont): """Drop all mac names""" for n in range(255): name = ttfont['name'].getName(n, 1, 0, 0) if name: ttfont['name'].names.remove(name) def main(): args = parser.parse_args() nameids = ['1', '2', '4', '6', '16', '17', '18'] user_nameids = [x.strip() for x in args.id.split(',')] if 'all' not in user_nameids: nameids = set(nameids) & set(user_nameids) rows = [] for font in args.font: ttfont = ttLib.TTFont(font) row = [os.path.basename(font)] for name in ttfont['name'].names: if str(name.nameID) not in nameids or\ name.platformID != args.platform: continue value = name.string.decode(name.getEncoding()) or '' row.append(value) rows.append(row) header = ['filename'] + ['id' + x for x in nameids] def as_csv(rows): import csv import sys writer = csv.writer(sys.stdout) writer.writerows([header]) writer.writerows(rows) sys.exit(0) if args.csv: as_csv(rows) print(tabulate.tabulate(rows, header, tablefmt="pipe")) for path in args.font: font = ttLib.TTFont(path) saveit = False if args.autofix: for name in font['name'].names: if name.platformID != 1: saveit = True del name if args.drop_superfluous_mac_names: if has_mac_names(font): drop_superfluous_mac_names(font) saveit = True else: print('font %s has no mac nametable' % path) if args.drop_mac_names: if has_mac_names(font): drop_mac_names(font) saveit = True else: print('font %s has no mac nametable' % path) if saveit: font.save(path + ".fix") if __name__ == '__main__': main() bin/gftools-fix-nonhinting.py000077500000000000000000000064661376445505300166450ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # The magic is in two places: # # 1. The GASP table. Vern Adams # suggests it should have value 15 for all sizes. # # 2. The PREP table. Raph Levien # suggests using his code to turn on 'drop out control' # Learn more: # https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html#SCANCTRL # https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html#SCANTYPE # # PUSHW_1 # 511 # SCANCTRL # PUSHB_1 # 4 # SCANTYPE # # This script depends on fontTools Python library, available # in most packaging systems and sf.net/projects/fonttools/ # # Usage: # # $ gftools fix-nonhinting FontIn.ttf FontOut.ttf # Import our system library and fontTools ttLib """ Fixes TTF GASP table so that its program contains the minimal recommended instructions. """ from __future__ import print_function from argparse import (ArgumentParser, RawTextHelpFormatter) import os from fontTools import ttLib from fontTools.ttLib.tables import ttProgram from gftools.fix import fix_unhinted_font parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument('fontfile_in', nargs=1, help="Font in OpenType (TTF/OTF) format") parser.add_argument('fontfile_out', nargs=1, help="Filename for the output") def main(): args = parser.parse_args() # Open the font file supplied as the first argument on the command line fontfile_in = os.path.abspath(args.fontfile_in[0]) font = ttLib.TTFont(fontfile_in) # Save a backup backupfont = '{}-backup-fonttools-prep-gasp{}'.format(fontfile_in[0:-4], fontfile_in[-4:]) # print "Saving to ", backupfont font.save(backupfont) print(backupfont, " saved.") # Print the Gasp table if "gasp" in font: print("GASP was: ", font["gasp"].gaspRange) else: print("GASP wasn't there") # Print the PREP table if "prep" in font: old_program = ttProgram.Program.getAssembly(font["prep"].program) print("PREP was:\n\t" + "\n\t".join(old_program)) else: print("PREP wasn't there") fix_unhinted_font(font) # Print the Gasp table print("GASP now: ", font["gasp"].gaspRange) # Print the PREP table current_program = ttProgram.Program.getAssembly(font["prep"].program) print("PREP now:\n\t" + "\n\t".join(current_program)) # Save the new file with the name of the input file fontfile_out = os.path.abspath(args.fontfile_out[0]) font.save(fontfile_out) print(fontfile_out, " saved.") if __name__ == "__main__": main() bin/gftools-fix-ttfautohint.py000077500000000000000000000031541376445505300170320ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. # import argparse from fontTools import ttLib description = 'Fixes TTF Autohint table' parser = argparse.ArgumentParser(description=description) parser.add_argument('ttf_font', nargs='+', help="Font in OpenType (TTF/OTF) format") # TODO: # parser.add_argument('--autofix', action='store_true', help='Apply autofix') def main(): args = parser.parse_args() for path in args.ttf_font: font = ttLib.TTFont(path) if 'TTFA' in font.keys(): content = font['TTFA'].__dict__['data'].strip() ttfa_data = {} for line in content.split('\n'): key, value = line.strip().split('=') ttfa_data[key.strip()] = value.strip() print("TTFA table values for '{}':\n{}".format(path, ttfa_data)) else: print("'{}' lacks a TTFA table.".format(path)) if __name__ == '__main__': main() bin/gftools-fix-unwanted-tables.py000077500000000000000000000027461376445505300175640ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2019 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. # import argparse import os import sys from fontTools.ttLib import TTFont from gftools.fix import UNWANTED_TABLES, remove_tables def parse_tables(table_string): return table_string.split(",") def main(): description = "Removes unwanted tables from one or more font files" parser = argparse.ArgumentParser(description=description) parser.add_argument( "-t", "--tables", type=str, help="One or more comma separated table names" ) parser.add_argument("FONTPATH", nargs="+", help="One or more font files") args = parser.parse_args() tables = parse_tables(args.tables) if args.tables else None for fontpath in args.FONTPATH: ttfont = TTFont(fontpath) remove_tables(ttfont, tables) ttfont.save(fontpath) if __name__ == "__main__": main() bin/gftools-fix-vendorid.py000077500000000000000000000047711376445505300163010ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import os import argparse import glob import logging from fontTools import ttLib # set up some command line argument processing parser = argparse.ArgumentParser(description="Print vendorID" " of TTF files") parser.add_argument('arg_filepaths', nargs='+', help='font file path(s) to check.' ' Wildcards like *.ttf are allowed.') def main(): # set up a basic logging config # to include timestamps # log_format = '%(asctime)s %(levelname)-8s %(message)s' global font log_format = '%(levelname)-8s %(message)s ' logger = logging.getLogger() handler = logging.StreamHandler() formatter = logging.Formatter(log_format) handler.setFormatter(formatter) logger.addHandler(handler) args = parser.parse_args() # ------------------------------------------------------ logging.debug("Checking each file is a ttf") fonts_to_check = [] for arg_filepath in sorted(args.arg_filepaths): # use glob.glob to accept *.ttf for fullpath in glob.glob(arg_filepath): file_path, file_name = os.path.split(fullpath) if file_name.endswith(".ttf"): fonts_to_check.append(fullpath) else: logging.warning("Skipping '{}' as it does not seem " "to be valid TrueType font file.".format(file_name)) fonts_to_check.sort() if fonts_to_check == []: logging.error("None of the fonts are valid TrueType files!") # ------------------------------------------------------ for font_file in fonts_to_check: font = ttLib.TTFont(font_file) logging.info("OK: {} opened with fontTools".format(font_file)) # ---------------------------------------------------- vid = font['OS/2'].achVendID print("[{}]: {}".format(vid, font_file)) __author__ = "The Google Fonts Tools Authors" if __name__ == '__main__': main() bin/gftools-fix-vertical-metrics.py000077500000000000000000000330201376445505300177310ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2013 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. # from __future__ import print_function import argparse import collections import sys from fontTools import ttLib from fontTools.ttLib import TTLibError if sys.version_info.major >= 3: from io import StringIO else: from StringIO import StringIO # TextMetricsView # This class was inherited from the old v0.0.15 codebase # It may be useful at some point, but it seems more sofisticated # than actually necessary. # Right now I'll simply print the relevant # table entries of each font pass by the user on the command line. # So this class will be left here only as a reference for a future # implementation, if something more sofisticated is actually needed. # --FSanches class TextMetricsView(object): def __init__(self): self.outstream = StringIO() self._its_metrics_header = ['Parameter '] # first column has a length of largest parameter # named OS/2.sTypoDescender self._its_metrics = collections.OrderedDict([ ('ymax', []), ('hhea.ascent', []), ('OS/2.sTypoAscender', []), ('OS/2.usWinAscent', []), ('ymin', []), ('hhea.descent', []), ('OS/2.sTypoDescender', []), ('OS/2.usWinDescent', []), ('hhea.lineGap', []), ('OS/2.sTypoLineGap', []), ('hhea total', []), ('typo total', []), ('win total', []), ('UPM:Heights', []), ('UPM:Heights %', []) ]) self._inconsistent = set() self._inconsistent_table = {} self._warnings = [] self.glyphs = collections.OrderedDict() def add_to_table(self, fontname, key, value): if self._its_metrics[key] and value not in self._its_metrics[key]: self._inconsistent.add(key) if key not in self._inconsistent_table: self._inconsistent_table[key] = [] # lookup row with value and append fontname to `fonts` key, eg.: # {'hhea.ascent': [{'value': 390, # 'fonts': ['fontname.ttf', 'fontname2.ttf']}]} # # It looks like json groupped by metrics key inconsistentRow = {} for r in self._inconsistent_table[key]: if r['value'] == value: inconsistentRow = r if not inconsistentRow: inconsistentRow = {'value': value, 'fonts': []} self._inconsistent_table[key].append(inconsistentRow) inconsistentRow['fonts'].append(fontname) self._its_metrics[key].append(value) def add_metric(self, font_name, vmet): ymin, ymax = vmet.get_bounding() self._its_metrics_header.append(font_name) self.add_to_table(font_name, 'hhea.ascent', vmet.ascents.hhea) self.add_to_table(font_name, 'OS/2.sTypoAscender', vmet.ascents.os2typo) self.add_to_table(font_name, 'OS/2.usWinAscent', vmet.ascents.os2win) self.add_to_table(font_name, 'hhea.descent', vmet.descents.hhea) self.add_to_table(font_name, 'OS/2.sTypoDescender', vmet.descents.os2typo) self.add_to_table(font_name, 'OS/2.usWinDescent', vmet.descents.os2win) self.add_to_table(font_name, 'hhea.lineGap', vmet.linegaps.hhea) self.add_to_table(font_name, 'OS/2.sTypoLineGap', vmet.linegaps.os2typo) self._its_metrics['ymax'].append(ymax) self._its_metrics['ymin'].append(ymin) value = abs(ymin) + ymax upm = '%s:%s' % (vmet.get_upm_height(), value) self._its_metrics['UPM:Heights'].append(upm) value = (value / float(vmet.get_upm_height())) * 100 self._its_metrics['UPM:Heights %'].append('%d %%' % value) hhea_total = vmet.ascents.hhea + abs(vmet.descents.hhea) + vmet.linegaps.hhea self._its_metrics['hhea total'].append(hhea_total) typo_total = vmet.ascents.os2typo + abs(vmet.descents.os2typo) + vmet.linegaps.os2typo self._its_metrics['typo total'].append(typo_total) win_total = vmet.ascents.os2win + abs(vmet.descents.os2win) self._its_metrics['win total'].append(win_total) if len(set([typo_total, hhea_total, win_total])) > 1: self._warnings.append('%s has NOT even heights' % font_name) self.glyphs[font_name] = vmet.get_highest_and_lowest() def print_metrics(self): self.print_warnings() self.print_metrics_table() self.print_high_glyphs() self.print_low_glyphs() self.print_inconsistent_table() def print_warnings(self): if self._inconsistent: _ = 'WARNING: Inconsistent {}' print(_.format(' '.join([str(x) for x in self._inconsistent])), end='\n\n', file=self.outstream) if self._warnings: for warn in self._warnings: print('WARNING: %s' % warn, file=self.outstream) def print_metrics_table(self): formatstring = '' for k in self._its_metrics_header: print(('{:<%s}' % (len(k) + 4)).format(k), end='', file=self.outstream) formatstring += '{:<%s}' % (len(k) + 4) print(file=self.outstream) for k, values in self._its_metrics.items(): print(formatstring.format(*([k] + values)), file=self.outstream) def print_high_glyphs(self): header_printed = False for font, glyphs in self.glyphs.items(): if glyphs[0]: if not header_printed: print(file=self.outstream) print('High Glyphs', file=self.outstream) header_printed = True print(font + ':', ' '.join(glyphs[0]), file=self.outstream) def print_low_glyphs(self): header_printed = False for font, glyphs in self.glyphs.items(): if glyphs[1]: if not header_printed: print(file=self.outstream) print('Low Glyphs', file=self.outstream) header_printed = True print(font + ':', ' '.join(glyphs[1]), file=self.outstream) def print_inconsistent_table(self): print(file=self.outstream) for metrickey, row in self._inconsistent_table.items(): value = self.find_max_occurs_from_metrics_key(row) tbl = {} for r in row: if r['value'] == value: continue if metrickey not in tbl: tbl[metrickey] = [] tbl[metrickey] += r['fonts'] for k, r in tbl.items(): print('WARNING: Inconsistent %s:' % k, ', '.join(r), file=self.outstream) def find_max_occurs_from_metrics_key(self, metricvalues): result = 0 occurs = 0 if len(metricvalues) == 2: return metricvalues[1]['value'] for v in metricvalues: if len(v['fonts']) > occurs: occurs = len(v['fonts']) result = v['value'] return result def get_contents(self): self.outstream.seek(0) return self.outstream.read() parser = argparse.ArgumentParser() # ascent parameters parser.add_argument('-a', '--ascents', type=int, help=("Set new ascents value.")) parser.add_argument('-ah', '--ascents-hhea', type=int, help=("Set new ascents value in 'Horizontal Header'" " table ('hhea'). This argument" " cancels --ascents.")) parser.add_argument('-at', '--ascents-typo', type=int, help=("Set new ascents value in 'Horizontal Header'" " table ('OS/2'). This argument" " cancels --ascents.")) parser.add_argument('-aw', '--ascents-win', type=int, help=("Set new ascents value in 'Horizontal Header'" " table ('OS/2.Win'). This argument" " cancels --ascents.")) # descent parameters parser.add_argument('-d', '--descents', type=int, help=("Set new descents value.")) parser.add_argument('-dh', '--descents-hhea', type=int, help=("Set new descents value in 'Horizontal Header'" " table ('hhea'). This argument" " cancels --descents.")) parser.add_argument('-dt', '--descents-typo', type=int, help=("Set new descents value in 'Horizontal Header'" " table ('OS/2'). This argument" " cancels --descents.")) parser.add_argument('-dw', '--descents-win', type=int, help=("Set new descents value in 'Horizontal Header'" " table ('OS/2.Win'). This argument" " cancels --descents.")) # linegaps parameters parser.add_argument('-l', '--linegaps', type=int, help=("Set new linegaps value.")) parser.add_argument('-lh', '--linegaps-hhea', type=int, help=("Set new linegaps value in 'Horizontal Header'" " table ('hhea')")) parser.add_argument('-lt', '--linegaps-typo', type=int, help=("Set new linegaps value in 'Horizontal Header'" " table ('OS/2')")) parser.add_argument('--autofix', action="store_true", help="Autofix font metrics") parser.add_argument('ttf_font', nargs='+', metavar='ttf_font', help="Font file in OpenType (TTF/OTF) format") def vmetrics(ttFonts): from fontbakery.utils import get_bounding_box v_metrics = {"ymin": 0, "ymax": 0} for ttFont in ttFonts: font_ymin, font_ymax = get_bounding_box(ttFont) v_metrics["ymin"] = min(font_ymin, v_metrics["ymin"]) v_metrics["ymax"] = max(font_ymax, v_metrics["ymax"]) return v_metrics def main(): options = parser.parse_args() fonts = options.ttf_font if options.ascents or \ options.descents or \ options.linegaps or \ options.linegaps == 0 or \ options.ascents_hhea or \ options.ascents_typo or \ options.ascents_win or \ options.descents_hhea or \ options.descents_typo or \ options.descents_win or \ options.linegaps_hhea or \ options.linegaps_hhea == 0 or \ options.linegaps_typo or \ options.linegaps_typo == 0: for f in fonts: try: ttfont = ttLib.TTFont(f) except TTLibError as ex: print('Error: {0}: {1}'.format(f, ex)) continue if options.ascents: ttfont['hhea'].ascent = options.ascents ttfont['OS/2'].sTypoAscender = options.ascents ttfont['OS/2'].usWinAscent = options.ascents if options.descents: ttfont['hhea'].descent = options.descents ttfont['OS/2'].sTypoDescender = options.descents ttfont['OS/2'].usWinDescent = abs(options.descents) if options.linegaps or options.linegaps == 0: ttfont['hhea'].lineGap = options.linegaps ttfont['OS/2'].sTypoLineGap = options.linegaps if options.ascents_hhea: ttfont['hhea'].ascent = options.ascents_hhea if options.ascents_typo: ttfont['OS/2'].sTypoAscender = options.ascents_typo if options.ascents_win: ttfont['OS/2'].usWinAscent = options.ascents_win if options.descents_hhea: ttfont['hhea'].descent = options.descents_hhea if options.descents_typo: ttfont['OS/2'].sTypoDescender = options.descents_typo if options.descents_win: ttfont['OS/2'].usWinDescent = abs(options.descents_win) if options.linegaps_hhea or options.linegaps_hhea == 0: ttfont['hhea'].lineGap = options.linegaps_hhea if options.linegaps_typo or options.linegaps_typo == 0: ttfont['OS/2'].sTypoLineGap = options.linegaps_typo ttfont.save(f[:-4] + '.fix.ttf') elif options.autofix: ttFonts = [] for f in fonts: try: ttFonts.append(ttLib.TTFont(f)) except TTLibError as ex: print('Error: {0}: {1}'.format(f, ex)) continue v_metrics = vmetrics(ttFonts) for ttfont in ttFonts: ttfont['hhea'].ascent = v_metrics["ymax"] ttfont['OS/2'].sTypoAscender = v_metrics["ymax"] ttfont['OS/2'].usWinAscent = v_metrics["ymax"] ttfont['hhea'].descent = v_metrics["ymin"] ttfont['OS/2'].sTypoDescender = v_metrics["ymin"] ttfont['OS/2'].usWinDescent = abs(v_metrics["ymin"]) ttfont.save(ttfont.reader.file.name[:-4] + '.fix.ttf') else: entries = [ ('hhea', 'ascent'), ('OS/2', 'sTypoAscender'), ('OS/2', 'usWinAscent'), ('hhea', 'descent'), ('OS/2', 'sTypoDescender'), ('OS/2', 'usWinDescent'), ('hhea', 'lineGap'), ('OS/2', 'sTypoLineGap') ] for f in fonts: ttfont = ttLib.TTFont(f) print ("## {}".format(f)) for table, field in entries: print ("{} {}: {}".format(table, field, getattr(ttfont[table], field))) print() if __name__ == '__main__': main() bin/gftools-fix-vf-meta.py000077500000000000000000000160071376445505300160210ustar00rootroot00000000000000#!/usr/bin/env python3 """ Add a STAT table to a weight only variable font. This script can also add STAT tables to a variable font family which consists of two fonts, one for Roman, the other for Italic. Both of these fonts must also only contain a weight axis. For variable fonts with multiple axes, write a python script which uses fontTools.otlLib.builder.buildStatTable e.g https://github.com/googlefonts/literata/blob/master/sources/gen_stat.py The generated STAT tables use format 2 Axis Values. These are needed in order for Indesign to work. Special mention to Thomas Linard for reviewing the output of this script. Usage: Single family: gftools fix-vf-meta FontFamily[wght].ttf Roman + Italic family: gftools fix-vf-meta FontFamily[wght].ttf FontFamily-Italic[wght].ttf """ from fontTools.otlLib.builder import buildStatTable from fontTools.ttLib import TTFont import argparse WGHT = { 100: "Thin", 200: "ExtraLight", 300: "Light", 400: "Regular", 500: "Medium", 600: "SemiBold", 700: "Bold", 800: "ExtraBold", 900: "Black", 1000: "ExtraBlack", } def font_is_italic(ttfont): stylename = ttfont["name"].getName(2, 3, 1, 0x409).toUnicode() return True if "Italic" in stylename else False def font_has_mac_names(ttfont): for record in ttfont['name'].names: if record.platformID == 1: return True return False def build_stat(roman_font, italic_font=None): roman_wght_axis = dict( tag="wght", name="Weight", values=build_axis_values(roman_font), ) roman_axes = [roman_wght_axis] if italic_font: # We need to create a new Italic axis in the Roman font roman_axes.append( dict( tag="ital", name="Italic", values=[ dict( name="Roman", flags=2, value=0.0, linkedValue=1.0, ) ] ) ) italic_wght_axis = dict( tag="wght", name="Weight", values=build_axis_values(italic_font), ) italic_axes = [italic_wght_axis] italic_axes.append( dict( tag="ital", name="Italic", values=[ dict( name="Italic", value=1.0, ) ] ) ) buildStatTable(italic_font, italic_axes) buildStatTable(roman_font, roman_axes) def build_axis_values(ttfont): results = [] nametable = ttfont['name'] instances = ttfont['fvar'].instances has_bold = any([True for i in instances if i.coordinates['wght'] == 700]) for instance in instances: wght_val = instance.coordinates["wght"] desired_inst_info = WGHT[wght_val] name = nametable.getName( instance.subfamilyNameID, 3, 1, 1033 ).toUnicode() name = name.replace("Italic", "").strip() if name == "": name = "Regular" inst = { "name": name, "nominalValue": wght_val, } if inst["nominalValue"] == 400: inst["flags"] = 0x2 results.append(inst) # Dynamically generate rangeMinValues and rangeMaxValues entries = [results[0]["nominalValue"]] + \ [i["nominalValue"] for i in results] + \ [results[-1]["nominalValue"]] for i, entry in enumerate(results): entry["rangeMinValue"] = (entries[i] + entries[i+1]) / 2 entry["rangeMaxValue"] = (entries[i+1] + entries[i+2]) / 2 # Format 2 doesn't support linkedValues so we have to append another # Axis Value (format 3) for Reg which does support linkedValues if has_bold: inst = { "name": "Regular", "value": 400, "flags": 0x2, "linkedValue": 700 } results.append(inst) return results def update_nametable(ttfont): """ - Add nameID 25 - Update fvar instance names and add fvar instance postscript names """ is_italic = font_is_italic(ttfont) has_mac_names = font_has_mac_names(ttfont) # Add nameID 25 # https://docs.microsoft.com/en-us/typography/opentype/spec/name#name-ids vf_ps_name = _add_nameid_25(ttfont, is_italic, has_mac_names) # Update fvar instances instances = ttfont["fvar"].instances for inst in instances: wght_val = inst.coordinates["wght"] if wght_val not in WGHT: raise ValueError(f"Unsupported wght coord '{wght_val}'. Coord " "needs to be in {WGHT.keys()}") # Update instance subfamilyNameID wght_name = WGHT[wght_val] inst_name = wght_name if is_italic: inst_name = f"{inst_name} Italic" inst_name = inst_name.replace("Regular Italic", "Italic") ttfont['name'].setName(inst_name, inst.subfamilyNameID, 3, 1, 0x409) if has_mac_names: ttfont['name'].setName(inst_name, inst.subfamilyNameID, 1, 0, 0) # Add instance psName ps_name = f"{vf_ps_name}-{wght_name}" ps_name_id = ttfont['name'].addName(ps_name) inst.postscriptNameID = ps_name_id def _add_nameid_25(ttfont, is_italic, has_mac_names): name = ttfont['name'].getName(16, 3, 1, 1033) or \ ttfont['name'].getName(1, 3, 1, 1033) name = name.toUnicode().replace(" ", "") if is_italic: name = f"{name}Italic" else: name = f"{name}Roman" ttfont['name'].setName(name, 25, 3, 1, 1033) if has_mac_names: ttfont['name'].setName(name, 25, 1, 0, 0) return name def main(): parser = argparse.ArgumentParser( formatter_class=argparse.RawDescriptionHelpFormatter, description=__doc__ ) parser.add_argument("fonts", nargs="+", help=( "Paths to font files. Fonts must be part of the same family." ) ) args = parser.parse_args() fonts = args.fonts # This monstrosity exists so we don't break the v1 api. italic_font = None if len(fonts) > 2: raise Exception( "Can only add STAT tables to a max of two fonts. " "Run gftools fix-vf-meta --help for usage instructions" ) elif len(fonts) == 2: if "Italic" in fonts[0]: italic_font = TTFont(fonts[0]) roman_font = TTFont(fonts[1]) elif "Italic" in fonts[1]: italic_font = TTFont(fonts[1]) roman_font = TTFont(fonts[0]) else: raise Exception("No Italic font found!") else: roman_font = TTFont(fonts[0]) update_nametable(roman_font) if italic_font: update_nametable(italic_font) build_stat(roman_font, italic_font) roman_font.save(roman_font.reader.file.name + ".fix") if italic_font: italic_font.save(italic_font.reader.file.name + ".fix") if __name__ == "__main__": main() bin/gftools-fix-weightclass.py000077500000000000000000000027201376445505300167740ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2018 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ A Python script to set a font's OS/2 usWeightClass value so it conforms to the Google Fonts specification. The font's filename is used to determine the correct value. """ from __future__ import print_function from fontTools.ttLib import TTFont from fontbakery.parse import style_parse from gftools.fix import fix_weight_class import sys import os def main(font_path): filename = os.path.basename(font_path) font = TTFont(font_path) current_weight_class = font["OS/2"].usWeightClass fix_weight_class(font) if current_weight_class != font["OS/2"].usWeightClass: font.save(font.reader.file.name + ".fix") else: print("{}: Skipping. Current WeightClass is correct".format(filename)) if __name__ == "__main__": if len(sys.argv) != 2: print("Please include a path to a font") else: main(sys.argv[1]) bin/gftools-font-diff.py000077500000000000000000000071541376445505300155550ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Diff two fonts. Attempts to highlight the variable(s) that differ table by table. """ from __future__ import print_function import collections import warnings from fontTools import ttLib from absl import app DiffTuple = collections.namedtuple('DiffTuple', ['name', 'lhs', 'rhs']) def _TryLoadTable(ttf, tag): try: # force parse, may kerplode ttf[tag] # pylint: disable=pointless-statement return (True, None) except LookupError as e: return (False, str(e)) def _ShortDisplay(v): s = str(v) if len(s) > 32: s = s[:29] + '...' return s def _KeyMatch(lh_keys, rh_keys): for k in sorted(set(lh_keys) | set(rh_keys)): if k not in lh_keys: yield (k, 'rhs') if k not in rh_keys: yield (k, 'lhs') yield (k, None) def _DiffFont(lhs, rhs): """Compares two fonts. Inputs must be read from file and not modified as we assume if the raw table data was the same then the table is unchanged. Args: lhs: A TTFont, read from a file and not modified. rhs: A TTFont, read from a file and not modified. Returns: A list of (tag, one_side, diff_tuples, error) tuples. If error is set then the table couldn't be parsed. If one_side is not None it will be 'lhs' or 'rhs', indicating only one side has the table. diff_tuples is a list of DiffTuple. """ results = [] for tag, one_side in _KeyMatch(lhs.reader.keys(), rhs.reader.keys()): diff_tuples = [] results.append((tag, one_side, diff_tuples, None)) if one_side or lhs.reader[tag] == rhs.reader[tag]: continue # table might not be parseable (l_table_ok, l_table_err) = _TryLoadTable(lhs, tag) (r_table_ok, r_table_err) = _TryLoadTable(rhs, tag) if not l_table_ok: results[-1] = (tag, 'lhs', diff_tuples, 'LHS load failed %s' % l_table_err) if not r_table_ok: results[-1] = (tag, 'lhs', diff_tuples, 'RHS load failed %s' % r_table_err) if not l_table_ok or not r_table_ok: continue lhs_vars = vars(lhs[tag]) rhs_vars = vars(rhs[tag]) for k, _ in _KeyMatch(lhs_vars.keys(), rhs_vars.keys()): if lhs_vars.get(k) != rhs_vars.get(k): diff_tuples.append(DiffTuple(k, lhs_vars.get(k), rhs_vars.get(k))) return results def main(argv): print(argv) if len(argv) != 3: raise ValueError('Specify two files to diff') with warnings.catch_warnings(): warnings.simplefilter('ignore') with open(argv[1], 'rb') as f1, open(argv[2], 'rb') as f2: lhs = ttLib.TTFont(f1) rhs = ttLib.TTFont(f2) font_diff = _DiffFont(lhs, rhs) for tag, one_side, diff_tuples, error in font_diff: if error: print('%s %s' % (tag, error)) elif one_side: print('Only %s has %s' % (one_side.upper(), str(tag))) elif not diff_tuples: print('%s identical' % tag) else: print('%s DIFF' % tag) for name, lhs, rhs in diff_tuples: print(' %s %s != %s' % (name, _ShortDisplay(lhs), _ShortDisplay(rhs))) if __name__ == '__main__': app.run(main) bin/gftools-font-weights-coverage.py000077500000000000000000000036301376445505300201030ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Tool to check codepoint coverage in all font weights. Ex: If FamilyName-Regular.ttf supports codepoints A-D FamilyName-Bold.ttf supports codepoints B-E FamilyName-Light.ttf supports codepoints A-E $ python tools/font_weights_coverage.py ofl/familyname FamilyName-Regular.ttf failed 0x0045 FamilyName-Bold.ttf failed 0x0041 FamilyName-Light.ttf passed """ from __future__ import print_function import os from os import listdir import sys from absl import app from gftools.util import google_fonts as fonts def main(argv): if len(argv) != 2 or not os.path.isdir(argv[1]): sys.exit('Must have one argument, a directory containing font files.') dirpath = argv[1] cps = set() for f in _GetFontFiles(dirpath): cps.update(fonts.CodepointsInFont(os.path.join(dirpath, f))) for f in _GetFontFiles(dirpath): diff = cps - fonts.CodepointsInFont(os.path.join(dirpath, f)) if bool(diff): print('%s failed' % (f)) for c in diff: print('0x%04X' % (c)) else: print('%s passed' % (f)) def _GetFontFiles(path): """Returns list of font files in a path. Args: path: directory path Returns: Set of font files """ return [f for f in listdir(path) if os.path.splitext(f)[1] in ('.ttf', '.otf')] if __name__ == '__main__': app.run(main) bin/gftools-gen-stat.py000077500000000000000000000054151376445505300154210ustar00rootroot00000000000000#!/usr/bin/env python3 """ gftools gen-stat Generate a STAT table for each font in a variable font family using the GF axis registry. Usage: # Standard usage. Fonts will have ".fix" appended to their filenames gftools gen-stat font1.ttf --axis-order wdth wght # Output fonts to a dir gftools gen-stat font1.ttf font2.ttf --axis-order wdth wght --out ~/Desktop/out # Overwrite input fonts gftools gen-stat font1.ttf font2.ttf --axis-order wdth wght --inplace # Overide which axis values are elided gftools gen-stat font.ttf --elided-values wght=400 --axis-order wdth wght """ from fontTools.ttLib import TTFont from gftools.stat import gen_stat_tables from gftools.axisreg import axis_registry import argparse import os def parse_elided_values(string): # "wght=300,400 wdth=75,100" --> {"wght": [300, 400], "wdth": [75, 100]} res = {} for axis in string: try: k, v = axis.split("=") v = [int(i) for i in v.split(",")] res[k] = v except ValueError: raise ValueError( "Incorrect --elided-values input. Requires 'AXIS=val,val ...' " "e.g 'wght=400 wdth=100'" ) return res def main(): parser = argparse.ArgumentParser() parser.add_argument( "fonts", nargs="+", help="Variable TTF files which make up a family" ) parser.add_argument( "--axis-order", nargs="+", required=True, choices=axis_registry.keys(), help="List of space seperated axis tags used to set the STAT table " "axis order e.g --axis-order wdth wght ital", ) parser.add_argument( "--elided-values", nargs="+", default=None, help="List of space seperated axis_values to elide. " "Input must be structed as axis_tag=int,int..." "e.g --elided-values wdth=100 wght=400", ) parser.add_argument("--out", "-o", help="Output dir for fonts") parser.add_argument( "--inplace", action="store_true", default=False, help="Overwrite input files" ) args = parser.parse_args() fonts = [TTFont(f) for f in args.fonts] elided_values = ( parse_elided_values(args.elided_values) if args.elided_values else None ) gen_stat_tables(fonts, args.axis_order, elided_values) if args.out: if not os.path.isdir(args.out): os.mkdir(args.out) for font in fonts: if args.out: dst = os.path.join(args.out, os.path.basename(font.reader.file.name)) elif args.inplace: dst = font.reader.file.name else: dst = font.reader.file.name + ".fix" if os.path.isfile(dst): os.remove(dst) print(f"Saving font to {dst}") font.save(dst) if __name__ == "__main__": main() bin/gftools-list-italicangle.py000077500000000000000000000025741376445505300171270ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import argparse import os import tabulate from fontTools import ttLib args = argparse.ArgumentParser( description='Print out italicAngle of the fonts') args.add_argument('font', nargs="+") args.add_argument('--csv', default=False, action='store_true') if __name__ == '__main__': arg = args.parse_args() headers = ['filename', 'italicAngle'] rows = [] for font in arg.font: ttfont = ttLib.TTFont(font) rows.append([os.path.basename(font), ttfont['post'].italicAngle]) if arg.csv: import csv import sys writer = csv.writer(sys.stdout) writer.writerows([headers]) writer.writerows(rows) else: print(tabulate.tabulate(rows, headers, tablefmt="pipe")) bin/gftools-list-panose.py000077500000000000000000000031601376445505300161300ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import argparse import os import tabulate from fontTools import ttLib parser = argparse.ArgumentParser(description='Print out Panose of the fonts') parser.add_argument('font', nargs="+") parser.add_argument('--csv', default=False, action='store_true') def main(): args = parser.parse_args() headers = ['filename'] rows = [] for i, font in enumerate(args.font): row = [os.path.basename(font)] ttfont = ttLib.TTFont(font) for k in sorted(ttfont['OS/2'].panose.__dict__.keys()): if i < 1: headers.append(k) row.append(getattr(ttfont['OS/2'].panose, k, 0)) rows.append(row) def as_csv(rows): import csv import sys writer = csv.writer(sys.stdout) writer.writerows([headers]) writer.writerows(rows) sys.exit(0) if args.csv: as_csv(rows) print(tabulate.tabulate(rows, headers, tablefmt="pipe")) if __name__ == '__main__': main() bin/gftools-list-variable-source.py000077500000000000000000000043371376445505300177350ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import glyphsLib import os parent_dir = '~/Documents/googlefonts/manual_font_cleaning/' possible_var_fonts = [] almost_possible_var_fonts = [] for root, dirs, files in os.walk(parent_dir, topdown=False): for f in files: if '.glyphs' in f: try: with open(os.path.join(root, f)) as glyphs_file: glyphs_source = glyphsLib.load(glyphs_file) master_count = len(glyphs_source['fontMaster']) instance_count = len(glyphs_source['instances']) if master_count >= 2 and instance_count >= 3: possible_var_fonts.append( (glyphs_source['familyName'], len(glyphs_source['fontMaster']), len(glyphs_source['instances'])) ) elif master_count >= 2 and instance_count == master_count: almost_possible_var_fonts.append( (glyphs_source['familyName'], len(glyphs_source['fontMaster']), len(glyphs_source['instances'])) ) except: all text = [] text.append('POSSIBLE VARIABLE FONTS') for family in set([i[0] for i in possible_var_fonts]): text.append(family) text.append('\n') text.append('ALMOST POSSIBLE VARIABLE FONTS') for family in set([i[0] for i in almost_possible_var_fonts]): text.append(family) with open('possible_variable_fonts', 'w') as doc: doc.write('\n'.join(text)) bin/gftools-list-weightclass.py000077500000000000000000000027141376445505300171640ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import argparse import os import tabulate from fontTools import ttLib parser = argparse.ArgumentParser(description='Print out' ' usWeightClass of the fonts') parser.add_argument('font', nargs="+") parser.add_argument('--csv', default=False, action='store_true') def main(): args = parser.parse_args() headers = ['filename', 'usWeightClass'] rows = [] for font in args.font: ttfont = ttLib.TTFont(font) rows.append([os.path.basename(font), ttfont['OS/2'].usWeightClass]) def as_csv(rows): import csv import sys writer = csv.writer(sys.stdout) writer.writerows([headers]) writer.writerows(rows) sys.exit(0) if args.csv: as_csv(rows) print(tabulate.tabulate(rows, headers, tablefmt="pipe")) if __name__ == '__main__': main() bin/gftools-list-widthclass.py000077500000000000000000000064341376445505300170170ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from __future__ import print_function import argparse import csv import os import sys import tabulate from fontTools import ttLib parser = argparse.ArgumentParser(description='Print out' ' usWidthClass of the fonts') parser.add_argument('font', nargs="+") parser.add_argument('--csv', default=False, action='store_true') parser.add_argument('--set', type=int, default=0) parser.add_argument('--autofix', default=False, action='store_true') def print_info(fonts, print_csv=False): headers = ['filename', 'usWidthClass'] rows = [] warnings = [] for font in fonts: ttfont = ttLib.TTFont(font) usWidthClass = ttfont['OS/2'].usWidthClass rows.append([os.path.basename(font), usWidthClass]) if usWidthClass != 5: warning = "WARNING: {} is {}, expected 5" warnings.append(warning.format(font, usWidthClass)) def as_csv(rows): writer = csv.writer(sys.stdout) writer.writerows([headers]) writer.writerows(rows) sys.exit(0) if print_csv: as_csv(rows) print(tabulate.tabulate(rows, headers, tablefmt="pipe")) for warn in warnings: print(warn, file=sys.stderr) def getFromFilename(filename): if "UltraCondensed-" in filename: usWidthClass = 1 elif "ExtraCondensed-" in filename: usWidthClass = 2 elif "SemiCondensed-" in filename: usWidthClass = 4 elif "Condensed-" in filename: usWidthClass = 3 elif "SemiExpanded-" in filename: usWidthClass = 6 elif "ExtraExpanded-" in filename: usWidthClass = 8 elif "UltraExpanded-" in filename: usWidthClass = 9 elif "Expanded-" in filename: usWidthClass = 7 else: usWidthClass = 5 return usWidthClass def fix(fonts, value=None): rows = [] headers = ['filename', 'usWidthClass was', 'usWidthClass now'] for font in fonts: row = [font] ttfont = ttLib.TTFont(font) if not value: usWidthClass = getFromFilename(font) else: usWidthClass = value row.append(ttfont['OS/2'].usWidthClass) ttfont['OS/2'].usWidthClass = usWidthClass row.append(ttfont['OS/2'].usWidthClass) ttfont.save(font + '.fix') rows.append(row) if rows: print(tabulate.tabulate(rows, headers, tablefmt="pipe")) def main(): args = parser.parse_args() if args.autofix: fix(args.font) sys.exit(0) if args.set: fix(args.font, value=int(args.set)) sys.exit(0) print_info(args.font, print_csv=args.csv) if __name__ == '__main__': main() bin/gftools-metadata-vs-api.py000077500000000000000000000223271376445505300166550ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from __future__ import print_function import argparse import os import sys import requests if int(sys.version[0]) == 2: import urlparse elif int(sys.version[0]) == 3: import urllib.parse as urlparse from gftools.fonts_public_pb2 import FamilyProto from google.protobuf import text_format description = ("This script compares the info on local METADATA.pb files" " with data fetched from the Google Fonts Developer API.\n\n" " In order to use it you need to provide an API key.") parser = argparse.ArgumentParser(description=description) parser.add_argument('key', help='Key from Google Fonts Developer API') parser.add_argument('repo', help=('Directory tree that contains' ' directories with METADATA.pb files.')) parser.add_argument('--cache', help=('Directory to store a copy' ' of the files in the fonts developer API.'), default="/tmp/gftools-compare-git-api") parser.add_argument('--verbose', help='Print additional information', action="store_true") parser.add_argument('--ignore-copy-existing-ttf', action="store_true") parser.add_argument('--autofix', help='Apply automatic fixes to files.', action="store_true") parser.add_argument('--api', help='Domain string to use to request.', default="fonts.googleapis.com") def get_cache_font_path(cache_dir, fonturl): urlparts = urlparse.urlparse(fonturl) cache_dir = os.path.join(cache_dir, urlparts.netloc, os.path.dirname(urlparts.path).strip('/')) if not os.path.exists(cache_dir): os.makedirs(cache_dir) fontname = os.path.basename(fonturl) return os.path.join(cache_dir, fontname) def getVariantName(item): if item.style == "normal" and item.weight == 400: return "regular" name = "" if item.weight != 400: name = str(item.weight) if item.style != "normal": name += item.style return name API_URL = 'https://www.googleapis.com/webfonts/v1/webfonts?key={}' def main(): args = parser.parse_args() response = requests.get(API_URL.format(args.key)) try: webfontList = response.json()['items'] webfontListFamilyNames = [item['family'] for item in webfontList] except (ValueError, KeyError): sys.exit("Unable to load and parse" " list of families from Google Web Fonts API.") for dirpath, dirnames, filenames in os.walk(args.repo): metadata_path = os.path.join(dirpath, 'METADATA.pb') if not os.path.exists(metadata_path): continue metadata = FamilyProto() text_data = open(metadata_path, "rb").read() text_format.Merge(text_data, metadata) try: family = metadata.name except KeyError: print(('ERROR: "{}" does not contain' ' familyname info.').format(metadata_path), file=sys.stderr) continue try: index = webfontListFamilyNames.index(family) webfontsItem = webfontList[index] except ValueError: print(('ERROR: Family "{}" could not be found' ' in Google Web Fonts API.').format(family)) continue webfontVariants = [] log_messages = [] for variant, fonturl in webfontsItem['files'].items(): cache_font_path = get_cache_font_path(args.cache, fonturl) webfontVariants.append(variant) if args.ignore_copy_existing_ttf and os.path.exists(cache_font_path): continue with open(cache_font_path, 'w') as fp: found = False for font in metadata.fonts: if getVariantName(font) == variant: found = True if args.verbose: print('Downloading "{}"' ' as "{}"'.format(fonturl, font.filename)) #Saving: fp.write(requests.get(fonturl).text) #Symlinking: src = cache_font_path dst_dir = os.path.dirname(cache_font_path) dst = os.path.join(dst_dir, font.filename) if not os.path.exists(dst): os.symlink(src, dst) if not found: print(("ERROR: Google Fonts API references" " a '{}' variant which is not declared" " on local '{}'.").format(variant, metadata_path)) for subset in webfontsItem['subsets']: if subset == "menu": # note about Google Web Fonts: # Menu subsets are no longer generated offline. continue if subset not in metadata.subsets: print(('ERROR: "{}" ' 'lacks subset "{}" in git.').format(family, subset), file=sys.stderr) else: if args.verbose: print(('OK: "{}" ' 'subset "{}" in sync.').format(family, subset)) for subset in metadata.subsets: if subset != "menu" and subset not in webfontsItem['subsets']: print(('ERROR: "{}" ' 'lacks subset "{}" in API.').format(family, subset), file=sys.stderr) if metadata.category == "SANS_SERIF": # That's fine :-) category = "sans-serif" else: category = metadata.category.lower() if category != webfontsItem['category']: print(('ERROR: "{}" category "{}" in git' ' does not match category "{}"' ' in API.').format(family, metadata.category, webfontsItem['category'])) else: if args.verbose: print(('OK: "{}" ' 'category "{}" in sync.').format(family, metadata.category)) for variant in webfontVariants: try: idx = [getVariantName(f) for f in metadata.fonts].index(variant) repoFileName = metadata.fonts[idx].filename fonturl = webfontsItem['files'][variant] fontpath = get_cache_font_path(args.cache, fonturl) import hashlib google_md5 = hashlib.md5(open(fontpath, 'rb').read()).hexdigest() data = open(os.path.join(dirpath, repoFileName), 'rb').read() repo_md5 = hashlib.md5(data).hexdigest() if repo_md5 == google_md5: log_messages.append([variant, 'OK', '"{}" in sync'.format(repoFileName)]) else: log_messages.append([variant, 'ERROR', ('"{}" checksum mismatch, file' ' in API does not match file' ' in git.').format(repoFileName)]) except ValueError: log_messages.append([variant, 'ERROR', ('"{}" available in API but' ' not in git.').format(font.filename)]) for font in metadata.fonts: variant = getVariantName(font) try: webfontVariants.index(variant) except ValueError: log_messages.append([variant, 'ERROR', ('"{}" available in git but' ' not in API.').format(font.filename)]) # Sort all the messages by their respective # metadataFileName and print them: for message in sorted(log_messages, key=lambda x: x[0].lower()): variant, status, text = message if status == "OK": if args.verbose: print('{}: {}'.format(status, text)) else: print('{}: {}'.format(status, text), file=sys.stderr) if __name__ == '__main__': main() bin/gftools-namelist.py000077500000000000000000000167601376445505300155200ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2015, Google Inc. # Author: Dave Crossland (dave@understandinglimited.com) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # namelist.py: A fontTools python script for generating namelist files # # Usage: # # To make a Namelist from a font file. # $ namelist.py Font.ttf > NameList.nam # # # To reformat an existing Namelist. # $ ./namelist.py reformat NameList.nam > NameList.nam # # # To reformat all Namelists in a directory. # $ find encodings/GF\ Glyph\ Sets/ -type f -name "*.nam" -exec \ # bash -c './namelist.py reformat "{}" > "{}__tmp" && mv "{}__tmp" "{}"' \; # # # To generate "uni names" and "nice names" filter lists a Namelist # # This will create the needed directories if missing # $ ./namelist.py generate-filter-lists NameList.nam # # # To generate "uni names" and "nice names" filter lists for all Namelists # $ find encodings/GF\ Glyph\ Sets/ -type f -name "*.nam" -exec \ # ./namelist.py generate-filter-lists "{}" \; from __future__ import print_function, unicode_literals import sys import os from fontTools.ttLib import TTFont from fontTools.unicode import Unicode import codecs from gftools.util import google_fonts from gftools.util import filter_lists if sys.version[0] == '3': unichr = chr def _get_basechar_unicode(name): codepoint = filter_lists.get_unicode_by_name(name) if codepoint is not None: return codepoint; if '_' in name: # use the first ligature component as base char return _get_basechar_unicode(name.split('_')[0]) if '.' in name: return _get_basechar_unicode(name.split('.')[0]) return None def _sortkey_namelist_entries(entry): codepoint, name, _, _ = entry base_codepoint = None extension = None if name == 'NULL': codepoint = -float('inf') if name: if '.' in name: extension = name.split('.')[1] base_codepoint = _get_basechar_unicode(name) return tuple([ codepoint if codepoint is not None else float('inf') # keep glyphs of one OT-Feature sticking together , extension , base_codepoint if base_codepoint is not None else float('inf') , name ]) def reformat_namelist(filename, out=None): if out is None: out = sys.stdout if filename == '-': _reformat_namelist(codecs.getreader('utf8')(sys.stdin), out) return with codecs.open(filename, 'r', encoding='utf-8') as f: _reformat_namelist(f, out) def _reformat_namelist(f, out=None): entries = [] before = [] header = [] for line in f: line = line.rstrip() if (not entries and not before) and line.startswith('#'): header.append(line) continue entry = None if line.startswith('0x'): # uni chr codepoint = google_fonts.get_codepoint_from_line(line) entry = (codepoint, None, line) elif line.startswith(' '): # unencoded name name = filter_lists.translate_name(line.rsplit(' ', 1)[1]) entry = (None, name, line) if entry is not None: entry += (before, ) before = [] entries.append(entry) else: # these lines will stick before the next entry before.append(line) entries.sort(key=_sortkey_namelist_entries) _print = lambda *args: print(*args,file=out) map(_print, header) for codepoint, name, original, item_before in entries: map(_print, item_before) if codepoint is not None: _print(format_codepoint(codepoint)) elif name is not None: _print((' '*9 + name)) # output left over lines at the end of the file map(_print, before) def _names_generator(filename): with codecs.open(filename, 'r', encoding='utf-8') as f: for line in f: line = line.rstrip() if line.startswith('0x'): # uni chr codepoint = google_fonts.get_codepoint_from_line(line) name = filter_lists.get_name_by_unicode(codepoint) if name is None: prefix = 'u' if codepoint > 0xFFFF else 'uni' name = '{0}{1:04X}'.format(prefix, codepoint) yield name elif line.startswith(' ' * 6): # unencoded name yield line.rsplit(' ', 1)[1] def _mkdir(path): try: os.makedirs(path) except OSError as exc: if not os.path.isdir(path): raise exc def generate_filter_lists(filename): # 'GF-{script}-rest.nam' => {script}-rest basename = os.path.basename(filename).split('.', 1)[0].split('-', 2)[-1] filerListFileName = '{0}.txt'.format(basename) dirname = os.path.dirname(filename) nice_names_filename = os.path.join(dirname, 'filter lists', 'nice names', filerListFileName) prod_names_filename = os.path.join(dirname, 'filter lists', 'uni names', filerListFileName) _mkdir(os.path.dirname(nice_names_filename)) _mkdir(os.path.dirname(prod_names_filename)) with codecs.open(nice_names_filename, 'w', encoding='utf-8') as niceNamesFile, \ codecs.open(prod_names_filename, 'w', encoding='utf-8') as prodNamesFile: for name in _names_generator(filename): print(filter_lists.translate_name(name, production_name=False), file=niceNamesFile) print(filter_lists.translate_name(name, production_name=True), file=prodNamesFile) def _format_codepoint(codepoint): if 0xE000 <= codepoint <= 0xF8FF: item_description = 'PRIVATE USE AREA U+{0:04X}'.format(codepoint) char = ' ' elif codepoint == 0x000D: # Special case, this only happens in Latin-core. # FIXME: we should consider remover CR from Latin-core item_description = 'CR' char = ' ' else: item_description = Unicode[codepoint] char = unichr(codepoint) return ('0x{0:04X}'.format(codepoint) , char , item_description) def format_codepoint(codepoint): return ' '.join(_format_codepoint(codepoint)) def namelist_from_font(file_name, out=None): if out is None: out = sys.stdout excluded_chars = ["????", "SPACE", "NO-BREAK SPACE"] font = TTFont(file_name) charcodes = set() for cmap in font["cmap"].tables: if not cmap.isUnicode(): continue charcodes.update(cp for cp,name in cmap.cmap.items()) charcodes = sorted(charcodes) for charcode in charcodes: hexchar, char, item_description = _format_codepoint(charcode) if item_description not in excluded_chars: string = "{} {} {}".format(hexchar, char, item_description) print(string, file=out) return font.close() def main(*args): if args[0] == 'reformat': reformat_namelist(args[1]) elif args[0] == 'generate-filter-lists': generate_filter_lists(args[1]) else: namelist_from_font(args[0]) if __name__ == '__main__': main(*sys.argv[1:]) bin/gftools-nametable-from-filename.py000077500000000000000000000173211376445505300203450ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2013,2016 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. """ Replace a collection of fonts nametable's with new tables based on the Google Fonts naming spec from just the filename. The fsSelection, fsType and macStyle also get updated to reflect the new names. """ from __future__ import print_function import re import ntpath from argparse import (ArgumentParser, RawTextHelpFormatter) from fontTools.ttLib import TTFont, newTable WIN_SAFE_STYLES = [ 'Regular', 'Bold', 'Italic', 'BoldItalic', ] MACSTYLE = { 'Regular': 0, 'Bold': 1, 'Italic': 2, 'Bold Italic': 3 } # Weight name to value mapping: WEIGHTS = { "Thin": 250, "ExtraLight": 275, "Light": 300, "Regular": 400, "Italic": 400, "Medium": 500, "SemiBold": 600, "Bold": 700, "ExtraBold": 800, "Black": 900 } REQUIRED_FIELDS = [ (0, 1, 0, 0), (1, 1, 0, 0), (2, 1, 0, 0), (3, 1, 0, 0), (4, 1, 0, 0), (5, 1, 0, 0), (6, 1, 0, 0), (7, 1, 0, 0), (8, 1, 0, 0), (9, 1, 0, 0), (11, 1, 0, 0), (12, 1, 0, 0), (13, 1, 0, 0), (14, 1, 0, 0), (0, 3, 1, 1033), (1, 3, 1, 1033), (1, 3, 1, 1033), (2, 3, 1, 1033), (3, 3, 1, 1033), (4, 3, 1, 1033), (5, 3, 1, 1033), (6, 3, 1, 1033), (7, 3, 1, 1033), (8, 3, 1, 1033), (9, 3, 1, 1033), (11, 3, 1, 1033), (12, 3, 1, 1033), (13, 3, 1, 1033), (14, 3, 1, 1033), ] def _split_camelcase(text): return re.sub(r"(?<=\w)([A-Z])", r" \1", text) def _mac_subfamily_name(style_name): if style_name.startswith('Italic'): pass elif 'Italic' in style_name: style_name = style_name.replace('Italic', ' Italic') return style_name def _unique_id(version, vendor_id, filename): # Glyphsapp style 2.000;MYFO;Arsenal-Bold # version;vendorID;filename return '%s;%s;%s' % (version, vendor_id, filename) def _version(text): return re.search(r'[0-9]{1,4}\.[0-9]{1,8}', text).group(0) def _full_name(family_name, style_name): style_name = _mac_subfamily_name(style_name) full_name = '%s %s' % (family_name, style_name) return full_name def _win_family_name(family_name, style_name): name = family_name if style_name not in WIN_SAFE_STYLES: name = '%s %s' % (family_name, style_name) if 'Italic' in name: name = re.sub(r'Italic', r'', name) return name def _win_subfamily_name(style_name): name = style_name if 'BoldItalic' == name: return 'Bold Italic' elif 'Italic' in name: return 'Italic' elif name == 'Bold': return 'Bold' else: return 'Regular' def set_usWeightClass(style_name): name = style_name if name != 'Italic': name = re.sub(r'Italic', r'', style_name) return WEIGHTS[name] def set_macStyle(style_name): return MACSTYLE[style_name] def set_fsSelection(fsSelection, style): bits = fsSelection if 'Regular' in style: bits |= 0b1000000 else: bits &= ~0b1000000 if style in ['Bold', 'BoldItalic']: bits |= 0b100000 else: bits &= ~0b100000 if 'Italic' in style: bits |= 0b1 else: bits &= ~0b1 if not bits: bits = 0b1000000 return bits def nametable_from_filename(filepath): """Generate a new nametable based on a ttf and the GF Spec""" font = TTFont(filepath) old_table = font['name'] new_table = newTable('name') filename = ntpath.basename(filepath)[:-4] family_name, style_name = filename.split('-') family_name = _split_camelcase(family_name) font_version = font['name'].getName(5, 3, 1, 1033) font_version = font_version.toUnicode() vendor_id = font['OS/2'].achVendID # SET MAC NAME FIELDS # ------------------- # Copyright old_cp = old_table.getName(0, 3, 1, 1033).string.decode('utf_16_be') new_table.setName(old_cp.encode('mac_roman'), 0, 1, 0, 0) # Font Family Name new_table.setName(family_name.encode('mac_roman'), 1, 1, 0, 0) # Subfamily name mac_subfamily_name = _mac_subfamily_name(style_name).encode('mac_roman') new_table.setName(mac_subfamily_name, 2, 1, 0, 0) # Unique ID unique_id = _unique_id(_version(font_version), vendor_id, filename) mac_unique_id = unique_id.encode('mac_roman') new_table.setName(mac_unique_id, 3, 1, 0, 0) # Full name fullname = _full_name(family_name, style_name) mac_fullname = fullname.encode('mac_roman') new_table.setName(mac_fullname, 4, 1, 0, 0) # Version string old_v = old_table.getName(5, 3, 1, 1033).string.decode('utf_16_be') mac_old_v = old_v.encode('mac_roman') new_table.setName(mac_old_v, 5, 1, 0, 0) # Postscript name mac_ps_name = filename.encode('mac_roman') new_table.setName(mac_ps_name, 6, 1, 0, 0) # SET WIN NAME FIELDS # ------------------- # Copyright new_table.setName(old_cp, 0, 3, 1, 1033) # Font Family Name win_family_name = _win_family_name(family_name, style_name) win_family_name = win_family_name.encode('utf_16_be') new_table.setName(win_family_name, 1, 3, 1, 1033) # Subfamily Name win_subfamily_name = _win_subfamily_name(style_name).encode('utf_16_be') new_table.setName(win_subfamily_name, 2, 3, 1, 1033) # Unique ID win_unique_id = unique_id.encode('utf_16_be') new_table.setName(win_unique_id, 3, 3, 1, 1033) # Full name win_fullname = fullname.encode('utf_16_be') new_table.setName(win_fullname, 4, 3, 1, 1033) # Version string win_old_v = old_v.encode('utf_16_be') new_table.setName(win_old_v, 5, 3, 1, 1033) # Postscript name win_ps_name = filename.encode('utf_16_be') new_table.setName(win_ps_name, 6, 3, 1, 1033) if style_name not in WIN_SAFE_STYLES: # Preferred Family Name new_table.setName(family_name.encode('utf_16_be'), 16, 3, 1, 1033) # Preferred SubfamilyName win_pref_subfam_name = _mac_subfamily_name(style_name).encode('utf_16_be') new_table.setName(win_pref_subfam_name, 17, 3, 1, 1033) # PAD missing fields # ------------------ for field in REQUIRED_FIELDS: text = None if new_table.getName(*field): pass # Name has already been updated elif old_table.getName(*field): text = old_table.getName(*field).string elif old_table.getName(field[0], 3, 1, 1033): text = old_table.getName(field[0], 3, 1, 1033).string.decode('utf_16_be') elif old_table.getName(field[0], 1, 0, 0): # check if field exists for mac text = old_table.getName(field[0], 3, 1, 1033).string.decode('mac_roman') if text: new_table.setName(text, *field) return new_table parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument('fonts', nargs="+") def main(): args = parser.parse_args() for font_path in args.fonts: nametable = nametable_from_filename(font_path) font = TTFont(font_path) font_filename = ntpath.basename(font_path) font['name'] = nametable style = font_filename[:-4].split('-')[-1] font['OS/2'].usWeightClass = set_usWeightClass(style) font['OS/2'].fsSelection = set_fsSelection(font['OS/2'].fsSelection, style) win_style = font['name'].getName(2, 3, 1, 1033).string.decode('utf_16_be') font['head'].macStyle = set_macStyle(win_style) font.save(font_path + '.fix') print('font saved %s.fix' % font_path) if __name__ == '__main__': main() bin/gftools-ots.py000077500000000000000000000027601376445505300145040ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from __future__ import print_function import ots import sys import os def main(gf_path): results = [] for p, i, files in os.walk(gf_path): for f in files: if f.endswith('.ttf'): try: font = os.path.join(p, f) process = ots.sanitize(font, check=True, capture_output=True) result = '%s\t%s' % (font, process.stdout) except ots.CalledProcessError as e: result = '%s\t%s' % (font, e.output) results.append(result) print('%s\t%s' % (f, result)) with open('ots_gf_results.txt', 'w') as doc: doc.write(''.join(results)) print('done!') if __name__ == '__main__': if len(sys.argv) != 2: print('ERROR: Include path to OFL dir') else: main(sys.argv[-1]) bin/gftools-packager.py000077500000000000000000000167131376445505300154570ustar00rootroot00000000000000#!/usr/bin/env python3 """Tool to take files from a font family project upstream git repository to the google/fonts GitHub repository structure, taking care of all the details. Documentation at gftools/docs/gftools-packager/README.md """ import sys from gftools import packager from gftools.packager import UserAbortError, ProgramAbortError import argparse def _ansi_bold(text:str) ->str: return f'\033[1m{text}\033[0m' parser = argparse.ArgumentParser( prog='gftools packager', description='Package upstream font families for Google Fonts.', epilog=f'{_ansi_bold("Documentation:")} ' 'https://github.com/googlefonts/gftools/tree/master/docs/gftools-packager' '\n' f'{_ansi_bold("Issues:")} ' 'https://github.com/googlefonts/gftools/issues' ) parser.add_argument( 'file_or_families', metavar='name', type=str, nargs='*', help='The family name(s) or file name(s) of upstream conf yaml ' 'files to be packaged. If a name ends with the ".yaml" suffix, ' 'it\'s treated as a file otherwise it\'s used as family name ' 'and packager tries to gather upstream configuration from ' 'the google/fonts GitHub repository. If no name is specified, ' 'no package will be created. This is useful to only make a ' 'PR from an already created branch, not adding a commit, ' 'use -b/--branch and see see -p/--pr.') parser.add_argument( '-f','--force', action='store_true', help='This allows the program to manipulate/change/delete data ' 'in [target]. Without this flag only adding new items ' '(depends: files, directories or branches, trees, blobs) ' 'is allowed.') parser.add_argument( '-y', '--no-confirm', dest='yes', action='store_true', help='Don\'t require user interaction, by answering with the ' 'default always. Removes all interactivity.') parser.add_argument( '-q', '--quiet', action='store_true', help='Don\'t print user interaction dialogues when -y/--no-confirm is used.') parser.add_argument( 'target', type=str, help='The target of the package. By default a path to a directory. ' 'See -f/--force to allow changing none-empty directories. ' 'See -g/--gf-git to use it as a git repository. ' 'A notable exception is -u/--upstream-yaml where the upstream.yaml ' 'template will be saved to target file name.') parser.add_argument( '-g','--gf-git', dest='is_gf_git', action='store_true', help='Try to use target as a git repository clone of GitHub google/fonts and ' 'create or override a branch from upstream master using a generated ' 'default branch name or a branch name specified with -b/--branch') parser.add_argument( '-b', '--branch', type=str, default=None, help='Set the local target branch name instead ' 'of using the generated branch name, like: "gftools_packager_{familyname}". ' 'This implies -g/--gf-git, i.e. target will be treated as if -g/--gf-git is set.') parser.add_argument( '-a', '--add-commit', action='store_true', help='Don\'t override existing branch and instead add a new ' 'commit to the branch. Use this to create a PR for multiple ' 'familes e.g. a super family or a bunch update. ' 'It\'s likely that you want to combine this with -b/--branch. ' 'This implies -g/--gf-git, i.e. target will be treated as if -g/--gf-git is set.') parser.add_argument( '-p', '--pr', action='store_true', help='Make a pull request. ' 'This implies -g/--gf-git, i.e. target will be treated as if -g/--gf-git is set. ' 'See --pr-upstream and --push-upstream.') parser.add_argument( '--pr-upstream', type=str, default='', help='The upstream where the pull request goes, as a GitHub ' '"owner/repoName" pair (default: google/fonts). ' 'This implies -p/--pr, i.e. target will be treated as if -p/--pr is set.' ) parser.add_argument( '--push-upstream', type=str, default='', # we can push to a clone of google/fonts and then pr from # that clone to --pr-upstream, however, our ghactions QA can't # run on a different repo, that's why this is mostly for testing. help='The upstream where the push goes, as a GitHub "owner/repoName" ' 'pair (default: the value of --pr-upstream). ' 'This implies -p/--pr, i.e. target will be treated as if -p/--pr is set.') parser.add_argument( '-u', '--upstream-yaml', action='store_true', help='Create and output the upstream.yaml to the file name given by target. ' 'This is intended to help bootstrapping new upstream configurations. ' 'In it\'s simplest form, if no name argument is given, it will output the ' 'yaml template. ' 'However, if name is given, this will also try to include all available ' 'information and interact with the user. This can only handle one name, ' 'because there can only be one target. ' 'Use -y/--no-confirm to skip interactive mode.' 'Use -f/--force to override existing target.') parser.add_argument( '--no-whitelist', action='store_true', help='Don\'t use the whitelist of allowed files to copy from ' 'TARGET in upstream-conf "files". This is meant to enable ' 'forward compatibility with new files and should not ' 'be used regularly. Instead file an issue to add new ' 'files to the whitelist.') parser.add_argument( '--no-source', action='store_true', help='Don\'t add the "source" key to METADATA.pb. Use this temporarily ' 'until all back-end systems have been updated. ' 'See https://github.com/google/fonts/issues/2587' ) parser.add_argument( '-B', '--allow-build', action='store_true', help='Allow executing the bash command in stored in the "build" ' 'key of upstream-conf, if present. Don\'t allow this lightly ' 'and review build command, build process and its dependencies prior. ' 'This support for building from sources is provisional, a ' 'discussion can be found at https://github.com/googlefonts/gftools/issues/231' ) if __name__ == '__main__': args = parser.parse_args() try: packager.make_package(**args.__dict__) except UserAbortError as e: print('Aborted', 'by user!' if not args.yes else \ 'by program! User interaction required (don\'t use the -y/--no-confirm flag).', f'{e}') sys.exit(1) except ProgramAbortError as e: print(f'Aborted by program: {e}') sys.exit(1) print('Done!') bin/gftools-push-status.py000077500000000000000000000136661376445505300162060ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2020 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Check push status of families on Dev, Sandbox and Production servers. This script will determine whether the families listed in to_production.txt and to_sandbox.txt in the google/fonts dir have been pushed to their respective servers from a specific date. If the files are empty, you can always use git checkout to view past states. Usage: Check push status for the past month: gftools push-status path/to/google/fonts Check push status for specified date: gftools push-status path/to/google/fonts -pd 2020-07-01 """ import argparse from argparse import RawDescriptionHelpFormatter import os from pathlib import Path import gftools.fonts_public_pb2 as fonts_pb2 from google.protobuf import text_format from datetime import datetime, timedelta import json import requests # If no push date is added we can assume that the push has probably # happened in the past month ONE_MONTH_AGO = datetime.now() - timedelta(days=31) def get_family_metadata(url): """Get family json data from a Google Fonts metadata url""" # can't do requests.get("url").json() since request text starts with ")]}'" info = json.loads(requests.get(url).text[5:]) return {i['family']: i for i in info["familyMetadataList"]} def read_proto(fp, schema): with open(fp, "rb") as f: data = text_format.Parse(f.read(), schema) return data def families_from_file(fp): """Convert to_sandbox.txt and to_production.txt files to a list of family names.""" results = set() with open(fp) as doc: family_dirs = [p for p in doc.read().split() if p.startswith(("ofl", "ufl", "apache"))] metadata_files = [Path(fp).parent / d / 'METADATA.pb' for d in family_dirs] missing_files = [str(f) for f in metadata_files if not f.is_file()] if missing_files: raise FileNotFoundError( "Following METADATA.pbs files are missing:\n{}".format( "\n".join(missing_files) ) ) return [read_proto(f, fonts_pb2.FamilyProto()).name for f in metadata_files] def families_status(info, push_date, filter_families=set()): """Determine which families have been pushed or not pushed from a specific date. If a filter_families set is provided, remove families from the results which are not included in this set.""" results = {"pushed": set(), "not_pushed": set()} if filter_families: info = {k: v for k,v in info.items() if k in filter_families} for family in info: last_push = info[family]['lastModified'] last_push = iso_8601_to_date(last_push) if last_push >= push_date: results['pushed'].add(family) if last_push < push_date: results["not_pushed"].add(family) return results def status_reporter(server_name, status): """Produce a report for a server status dict""" report = [] report.append(f"***{server_name}***") for k, v in status.items(): report.append(f"{k}: {sorted(v)}") report.append("\n") return "\n".join(report) def specimen_reporter(server_name, url_base, families): """Produce a report containing urls for a list of families""" report = [] report.append(f"***{server_name} specimens to inspect***") for family in sorted(families): family_url = url_base.format(family.replace(" ", "+")) report.append(family_url) if len(report) == 1: report.append("No urls to inspect") report.append("\n") return "\n".join(report) def iso_8601_to_date(string): """YYYY-MM-DD --> datetime""" if ":" in string or len(string.split("-")) != 3: raise ValueError(f"Date format should be 'YYYY-MM-DD' got '{string}'") return datetime.strptime(string, "%Y-%m-%d") def gf_repo(path): """Check if path is a Google Fonts repo""" path = Path(path) if not path.is_dir() or list(path.glob("to_production`.txt")): raise OSError(f"{path} is not a Google/Fonts dir") return path def main(): parser = argparse.ArgumentParser( description=__doc__, formatter_class=RawDescriptionHelpFormatter ) parser.add_argument("gf_path", type=gf_repo, help="path to google/fonts dir") parser.add_argument( "--push_date", "-pd", type=iso_8601_to_date, default=ONE_MONTH_AGO, help="Date when last push occurred" ) args = parser.parse_args() dev_meta = get_family_metadata("https://fonts-dev.sandbox.google.com/metadata/fonts") sandbox_meta = get_family_metadata(f"https://fonts.sandbox.google.com/metadata/fonts") prod_meta = get_family_metadata(f"https://fonts.google.com/metadata/fonts") dev_status = families_status(dev_meta, args.push_date) to_sandbox_file = Path(f"{args.gf_path}/to_sandbox.txt") requested_sandbox_families = families_from_file(to_sandbox_file) sandbox_status = families_status(sandbox_meta, args.push_date, requested_sandbox_families) to_production_file = Path(f"{args.gf_path}/to_production.txt") requested_prod_families = families_from_file(to_production_file) prod_status = families_status(prod_meta, args.push_date, requested_prod_families) specimen_url = "https://fonts-dev.sandbox.google.com/specimen/{}" print(specimen_reporter("Dev Server", specimen_url, dev_status["pushed"])) print(status_reporter("Sandbox Server", sandbox_status)) print(status_reporter("Production Server", prod_status)) if __name__ == "__main__": main() bin/gftools-qa.py000077500000000000000000000507521376445505300143040ustar00rootroot00000000000000#!/usr/bin/env python3 """Check a font family using Google Fonts QA tools. Examples: Check a local family against the same family hosted on Google Fonts: `gftools qa -f [fonts.ttf] -gfb -a -o qa` Check a local family against another local family and generate reports for Font Diffenator only: `gftools qa -f [fonts_a.ttf] -fb [fonts_b.ttf] --diffenator -o qa` Check a local family against the same family hosted on Google Fonts and generate reports for Diffbrowsers only: `gftools qa -f [fonts.ttf] -gf --diffbrowsers -o qa Compare a pull request against the same family hosted on Google Fonts: `gftools qa -pr www.github.com/user/repo/pull/1 -gfb -a -o qa` Compare a github folder of fonts against the same family hosted on Google Fonts: `gftools qa -gh www.github.com/user/repo/tree/fonts/ttf -gfb -a -o qa` """ from fontTools.ttLib import TTFont import argparse import shutil import os from glob import glob import subprocess import logging from uuid import uuid4 import re import requests from io import BytesIO import json from zipfile import ZipFile from gftools.utils import ( download_family_from_Google_Fonts, download_files_in_github_pr, download_files_in_github_dir, download_file, Google_Fonts_has_family, load_Google_Fonts_api_key, mkdir, ) try: from diffenator.diff import DiffFonts from diffenator.font import DFont from diffbrowsers.diffbrowsers import DiffBrowsers from diffbrowsers.browsers import test_browsers from diffbrowsers.utils import load_browserstack_credentials as bstack_creds except ModuleNotFoundError: raise ModuleNotFoundError(("gftools was installed without the QA " "dependencies. To install the dependencies, see the ReadMe, " "https://github.com/googlefonts/gftools#installation")) __version__ = "2.1.3" logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) def load_browserstack_credentials(): """Return the user's Browserstack credentials""" credentials = bstack_creds() if not credentials: username = os.environ.get("BSTACK_USERNAME") access_key = os.environ.get("BSTACK_ACCESS_KEY") if all([username, access_key]): return (username, access_key) return False return credentials class FontQA: GFR_URL = "http://35.238.63.0/" def __init__(self, fonts, fonts_before=None, out="out"): self.fonts = fonts self.fonts_before = fonts_before self.instances = self._instances_in_fonts(self.fonts) self.instances_before = self._instances_in_fonts(self.fonts_before) self.matching_instances = self._matching_instances() self._bstack_auth = load_browserstack_credentials() self.out = out def _instances_in_fonts(self, ttfonts): """Get all font instances from a collection of fonts. This function works for both a static and variable font collections. If a font is variable, it will retrieve the font's instances using the fvar table. If a font is static, it will only return a single instance by using the font's filename. """ if not ttfonts: return None results = {} for ttfont in ttfonts: if "fvar" in ttfont: for instance in ttfont['fvar'].instances: nameid = instance.subfamilyNameID name = ttfont['name'].getName(nameid, 3, 1, 1033).toUnicode() name = name.replace(" ", "") results[name] = { "coordinates": instance.coordinates, "filename": ttfont.reader.file.name } else: filename = os.path.basename(ttfont.reader.file.name) name = filename.split("-")[1] name = re.sub(".ttf|.otf", "", name) results[name] = { "coordinates": {"wght": ttfont['OS/2'].usWeightClass}, "filename": ttfont.reader.file.name } return results def _matching_instances(self): if not self.fonts_before: logger.info( "No regression checks possible since there are no previous fonts." ) return None shared = set(self.instances_before.keys()) & set(self.instances.keys()) new = set(self.instances.keys()) - set(self.instances_before.keys()) missing = set(self.instances_before.keys()) - set(self.instances.keys()) if new: logger.warning("New fonts: {}".format(", ".join(new))) if missing: logger.warning("Missing fonts: {}".format(", ".join(missing))) if not shared: raise Exception( ( "Cannot find matching fonts!\n" "fonts: [{}]\nfonts_before: [{}]".format( ", ".join(set(self.instances.keys())), ", ".join(set(self.instances_before.keys())) ) ) ) return shared def diffenator(self, **kwargs): logger.info("Running Diffenator") dst = os.path.join(self.out, "Diffenator") mkdir(dst) for style in self.matching_instances: font_before = DFont(self.instances_before[style]['filename']) font_after = DFont(self.instances[style]['filename']) out = os.path.join(dst, style) if font_after.is_variable and not font_before.is_variable: font_after.set_variations_from_static(font_before) elif not font_after.is_variable and font_before.is_variable: font_before.set_variations_from_static(font_after) elif font_after.is_variable and font_before.is_variable: coordinates = self.instances_before[style]['coordinates'] font_after.set_variations(coordinates) font_before.set_variations(coordinates) # TODO add settings diff = DiffFonts(font_before, font_after, {"render_diffs": True}) diff.to_gifs(dst=out) diff.to_txt(20, os.path.join(out, "report.txt")) diff.to_md(20, os.path.join(out, "report.md")) diff.to_html(20, os.path.join(out, "report.html"), image_dir=".") @staticmethod def chunkify(items, size): return [items[i : i + size] for i in range(0, len(items), size)] def diffbrowsers(self, **kwargs): """Test fonts on GFR regression and take screenshots using diffbrowsers. A browserstack account is required.""" logger.info("Running Diffbrowsers") if not self._bstack_auth: logger.info("Skipping. No Browserstack credentials. " "See https://github.com/googlefonts/" "diffbrowsers#installation on how to add them.") return dst = os.path.join(self.out, "Diffbrowsers") mkdir(dst) browsers_to_test = test_browsers["vf_browsers"] fonts = [(k, self.instances_before[k]['filename'], self.instances[k]['filename']) for k in self.matching_instances] font_groups = self.chunkify(sorted(fonts), 4) for group in font_groups: styles = [i[0] for i in group] dir_name = "_".join(styles) fonts_before = [i[1] for i in group] fonts_after = [i[2] for i in group] out = os.path.join(dst, dir_name) diff_browsers = DiffBrowsers( auth=self._bstack_auth, gfr_instance_url=self.GFR_URL, dst_dir=out, browsers=browsers_to_test, ) diff_browsers.new_session(set(fonts_before), set(fonts_after)) diff_browsers.diff_view("waterfall", styles=styles) info = os.path.join(out, "info.json") json.dump(diff_browsers.stats, open(info, "w")) diff_browsers.diff_view("glyphs_all", pt=16, styles=styles) def fontbakery(self): logger.info("Running Fontbakery") out = os.path.join(self.out, "Fontbakery") mkdir(out) cmd = ( ["fontbakery", "check-googlefonts", "-l", "WARN"] + [f.reader.file.name for f in self.fonts] + ["-C"] + ["--ghmarkdown", os.path.join(out, "report.md")] ) subprocess.call(cmd) def plot_glyphs(self): logger.info("Running plot glyphs") out = os.path.join(self.out, "plot_glyphs") mkdir(out) fonts = [f.reader.file.name for f in self.fonts] for font in fonts: font_filename = os.path.basename(font)[:-4] dfont = DFont(font) if dfont.is_variable: for _, coords in dfont.instances_coordinates.items(): dfont.set_variations(coords) img_out = os.path.join( out, "%s_%s.png" % (font_filename, self._instance_coords_to_filename(coords)), ) dfont.glyphs.to_png(img_out, limit=100000) else: img_out = os.path.join(out, font_filename + ".png") dfont.glyphs.to_png(dst=img_out) def _instance_coords_to_filename(self, d): name = "" for k, v in d.items(): name += "{}_{}_".format(k, v) return name[:-1] def browser_previews(self, **kwargs): """Use GFR and diffbrowsers to take screenshots of how the fonts will look on different browsers. A Browserstack account is required.""" logger.info("Running browser previews") if not self._bstack_auth: logger.info("Skipping. No Browserstack credentials. " "See https://github.com/googlefonts/" "diffbrowsers#installation on how to add them.") return out = os.path.join(self.out, "browser_previews") mkdir(out) browsers_to_test = test_browsers["vf_browsers"] font_groups = self.chunkify(list([i['filename'] for i in self.instances.values()]), 4) name_groups = self.chunkify(list(self.instances.keys()), 4) for name_group, font_group in zip(name_groups, font_groups): name = "_".join(sorted(name_group)) diff_browsers = DiffBrowsers( auth=self._bstack_auth, gfr_instance_url=FontQA.GFR_URL, dst_dir=os.path.join(out, name), browsers=browsers_to_test, gfr_is_local=False, ) diff_browsers.new_session(font_group, font_group) diff_browsers.diff_view("waterfall", styles=name_group) diff_browsers.diff_view("glyphs_all", styles=name_group, pt=15) def googlefonts_upgrade(self): self.fontbakery() self.diffenator() self.diffbrowsers() def googlefonts_new(self): self.fontbakery() self.plot_glyphs() self.browser_previews() def post_to_github(self, url): """Zip and post the check results as a comment to the github issue or pr.""" report_zip = shutil.make_archive(self.out, "zip", self.out) uuid = str(uuid4()) zip_url = self._post_media_to_gfr([report_zip], uuid) url_split = url.split("/") repo_slug = "{}/{}".format(url_split[3], url_split[4]) pull = url_split[-1] if "pull" in url else None fontbakery_report = os.path.join(self.out, "Fontbakery", "report.md") if os.path.isfile(fontbakery_report): with open(fontbakery_report, "r") as fb: msg = "{}\n\n## Diff images: [{}]({})".format( fb.read(), os.path.basename(zip_url[0]), zip_url[0] ) else: msg = "## Diff images: [{}]({})".format( os.path.basename(zip_url[0]), zip_url[0] ) self._post_gh_msg(msg, repo_slug, pull) def _post_media_to_gfr(self, paths, uuid): """Post images to GF Regression""" url_endpoint = self.GFR_URL + "/api/upload-media" payload = [("files", open(path, "rb")) for path in paths] r = requests.post( url_endpoint, data={"uuid": uuid}, files=payload, headers={"Access-Token": os.environ["GFR_TOKEN"]}, ) return [os.path.join(self.GFR_URL, i) for i in r.json()["items"]] def _post_gh_msg(self, msg, repo_slug=None, pull_id=None): if pull_id: url = "https://api.github.com/repos/{}/issues/{}/comments".format( repo_slug, pull_id ) r = requests.post( url, data=json.dumps({"body": msg}), headers={"Authorization": "token {}".format(os.environ["GH_TOKEN"])}, ) else: url = "https://api.github.com/repos/{}/issues".format(repo_slug) r = requests.post( url, data=json.dumps({"title": "Google Fonts QA report", "body": msg}), headers={"Authorization": "token {}".format(os.environ["GH_TOKEN"])}, ) def family_name_from_fonts(fonts): results = [] for font in fonts: family_name = font["name"].getName(1, 3, 1, 1033) typo_family_name = font["name"].getName(16, 3, 1, 1033) if typo_family_name: results.append(typo_family_name.toUnicode()) elif family_name: results.append(family_name.toUnicode()) else: raise Exception( "Font: {} has no family name records".format( os.path.basename(font.reader.file.name) ) ) if len(set(results)) > 1: raise Exception("Multiple family names found: [{}]".format(", ".join(results))) return results[0] def main(): parser = argparse.ArgumentParser( description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter ) font_group = parser.add_argument_group(title="Fonts to qa") font_input_group = font_group.add_mutually_exclusive_group(required=True) font_input_group.add_argument("-f", "--fonts", nargs="+", help="Paths to fonts") font_input_group.add_argument("-pr", "--pull-request", help="Get fonts from a Github pull request") font_input_group.add_argument("-gh", "--github-dir", help="Get fonts from a Github directory") font_input_group.add_argument("-gf", "--googlefonts", help="Get fonts from Google Fonts") font_before_group = parser.add_argument_group(title="Fonts before input") font_before_input_group = font_before_group.add_mutually_exclusive_group( required=False ) font_before_input_group.add_argument( "-fb", "--fonts-before", nargs="+", help="Paths to previous fonts" ) font_before_input_group.add_argument("-prb", "--pull-request-before", help="Get previous fonts from a Github pull request") font_before_input_group.add_argument("-ghb", "--github-dir-before", help="Get previous fonts from a Github dir") font_before_input_group.add_argument( "-gfb", "--googlefonts-before", action="store_true", help="Get previous fonts from Google Fonts", ) check_group = parser.add_argument_group(title="QA checks") check_group.add_argument( "-a", "--auto-qa", action="store_true", help="Check fonts against against the same fonts hosted on Google Fonts", ) check_group.add_argument( "--diffenator", action="store_true", help="Run Fontdiffenator" ) check_group.add_argument( "--diffbrowsers", action="store_true", help="Run Diffbrowsers" ) check_group.add_argument( "--fontbakery", action="store_true", help="Run FontBakery" ) check_group.add_argument( "--plot-glyphs", action="store_true", help="Gen images of full charset, useful for new familes", ) check_group.add_argument( "--browser-previews", action="store_true", help="Gen images on diff browsers, useful for new families", ) check_group.add_argument( "-dm", "--diff-mode", choices=("weak", "normal", "strict"), default="normal" ) parser.add_argument("-re", "--filter-fonts", help="Filter fonts by regex") parser.add_argument( "-o", "--out", default="out", help="Output path for check results" ) parser.add_argument( "-ogh", "--out-github", action="store_true", help=( "Post report data to either the pull request as a comment " "open a new issue. This can only be used if fonts have been " "fetched from either a pull request or github dir." ), ) parser.add_argument( "--out-url", help=( "Post report data to a github pr. This can be used with any font " "fetching method." ) ) parser.add_argument("--version", action="version", version=__version__) args = parser.parse_args() if args.out_github and not any([args.pull_request, args.github_dir]): raise Exception( "Cannot upload results to a github issue or pr. " "Font input must either a github dir or a pull request" ) if not any([args.auto_qa, args.fontbakery, args.plot_glyphs, args.diffbrowsers, args.diffenator, args.browser_previews]): raise Exception("Terminating. No checks selected. Run gftools qa " "--help to see all possible commands.") # Retrieve fonts and store in out dir mkdir(args.out) fonts_dir = os.path.join(args.out, "fonts") mkdir(fonts_dir) if args.fonts: [shutil.copy(f, fonts_dir) for f in args.fonts] fonts = args.fonts elif args.pull_request: fonts = download_files_in_github_pr( args.pull_request, fonts_dir, ignore_static_dir=False, ) if not fonts: logger.info("No fonts found in pull request. Skipping") return elif args.github_dir: fonts = download_files_in_github_dir(args.github_dir, fonts_dir) if not fonts: logger.info("No fonts found in github dir. Skipping") return elif args.googlefonts: fonts = download_family_from_Google_Fonts(args.googlefonts, fonts_dir) if args.filter_fonts: re_filter = re.compile(args.filter_fonts) fonts = [f for f in fonts if re_filter.search(f)] ttfonts = [TTFont(f) for f in fonts if f.endswith((".ttf", ".otf")) and "static" not in f] family_name = family_name_from_fonts(ttfonts) family_on_gf = Google_Fonts_has_family(family_name) # Retrieve fonts_before and store in out dir fonts_before = None if any([args.fonts_before, args.pull_request_before, args.github_dir_before]) or \ (args.googlefonts_before and family_on_gf): fonts_before_dir = os.path.join(args.out, "fonts_before") mkdir(fonts_before_dir, overwrite=False) if args.fonts_before: [shutil.copy(f, fonts_before_dir) for f in args.fonts_before] fonts_before = args.fonts_before elif args.pull_request_before: fonts_before = download_files_in_github_pr( args.pull_request_before, fonts_before_dir, ignore_static_dir=False ) elif args.github_dir_before: fonts_before = download_files_in_github_dir( args.github_dir_before, fonts_before_dir ) elif args.googlefonts_before and family_on_gf: fonts_before = download_family_from_Google_Fonts( family_name, fonts_before_dir ) if fonts_before: ttfonts_before = [TTFont(f) for f in fonts_before if f.endswith((".ttf", ".otf")) and "static" not in f] qa = FontQA(ttfonts, ttfonts_before, args.out) else: qa = FontQA(ttfonts, out=args.out) if args.auto_qa and family_on_gf: qa.googlefonts_upgrade() elif args.auto_qa and not family_on_gf: qa.googlefonts_new() if args.plot_glyphs: qa.plot_glyphs() if args.browser_previews: qa.browser_previews() if args.fontbakery: qa.fontbakery() if args.diffenator: qa.diffenator() if args.diffbrowsers: qa.diffbrowsers() if args.out_url: qa.post_to_github(args.out_url) elif args.out_github and args.pull_request: qa.post_to_github(args.pull_request) elif args.out_github and args.github_dir: qa.post_to_github(args.github_dir) if __name__ == "__main__": main() bin/gftools-rangify.py000077500000000000000000000026311376445505300153330ustar00rootroot00000000000000#!/usr/bin/python # # Copyright 2014 Google Inc. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Contributors: Rod Sheeter (rsheeter google com) # # Converts a .nam file to a list of ranges. import sys import tokenize def get_codepoints(cps): results = [] for cp in cps: if not cp.type == tokenize.NUMBER: continue results.append(int(cp.string, 16)) return results def main(): if len(sys.argv) != 2: sys.exit("Usage: rangify ") codepoints_data = list(tokenize.tokenize(open(sys.argv[1], 'rb').readline)) codepoints = get_codepoints(codepoints_data) codepoints.sort() seqs = [] seq = (None,) for cp in codepoints: if seq[0] is None: seq = (cp,cp) elif seq[1] == cp - 1: seq = (seq[0], cp) else: seqs.append(seq) seq = (None,) for seq in seqs: print(seq) if __name__ == '__main__': main() bin/gftools-rename-font.py000077500000000000000000000043431376445505300161110ustar00rootroot00000000000000#!/usr/bin/env python3 """ Rename a font. Changes font menu name and filename. User can also specify their own output path. Usage: gftools rename-font font.ttf "New Family Name" """ import argparse from fontTools.ttLib import TTFont FAMILY_NAME = (1, 3, 1, 1033) TYPO_FAMILY_NAME = (16, 3, 1, 1033) def main(): parser = argparse.ArgumentParser() parser.add_argument("font") parser.add_argument("new_name") parser.add_argument("-o", "--out") args = parser.parse_args() font = TTFont(args.font) nametable = font["name"] current_name = nametable.getName(*TYPO_FAMILY_NAME) or \ nametable.getName(*FAMILY_NAME) if not current_name: raise Exception( "Name table does not contain nameID 1 or nameID 16. " "This tool does not work on webfonts." ) current_name = current_name.toUnicode() print("Updating font name records") for record in nametable.names: record_string = record.toUnicode() no_space = current_name.replace(" ", "") hyphenated = current_name.replace(" ", "-") # name with no spaces if no_space in record_string: new_string = record_string.replace(no_space, args.new_name.replace(" ", "")) # name with hyphens instead of spaces elif hyphenated in record_string: new_string = record_string.replace(hyphenated, args.new_name.replace(" ", "-")) # name with spaces else: new_string = record_string.replace(current_name, args.new_name) if new_string is not record_string: record_info = ( record.nameID, record.platformID, record.platEncID, record.langID ) print( "Updating {}: '{}' to '{}'".format( record_info, record_string, new_string, ) ) record.string = new_string if args.out: out = args.out else: out = args.font.replace( current_name.replace(" ", ""), args.new_name.replace(" ", "") ) print("Saving font: {}".format(out)) font.save(out) if __name__ == "__main__": main() bin/gftools-sanity-check.py000077500000000000000000000403031376445505300162540ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # r"""Tool to identify problems with fonts. """ from __future__ import print_function import collections import contextlib import os import re import sys from fontTools import ttLib from absl import flags, app from gftools.util import google_fonts as fonts FLAGS = flags.FLAGS flags.DEFINE_boolean('suppress_pass', True, 'Whether to print pass: results') flags.DEFINE_boolean('check_metadata', True, 'Whether to check METADATA values') flags.DEFINE_boolean('check_font', True, 'Whether to check font values') flags.DEFINE_string('repair_script', None, 'Where to write a repair script') _FIX_TYPE_OPTS = [ 'all', 'name', 'filename', 'postScriptName', 'fullName', 'fsSelection', 'fsType', 'usWeightClass', 'emptyGlyphLSB' ] flags.DEFINE_multi_string('fix_type', 'all', 'What types of problems should be fixed by ' 'repair_script. ' 'Choices: ' + ', '.join(_FIX_TYPE_OPTS)) ResultMessageTuple = collections.namedtuple( 'ResultMessageTuple', ['happy', 'message', 'path', 'repair_script']) def _HappyResult(message, path): return ResultMessageTuple(True, message, path, None) def _SadResult(message, path, repair_script=None): return ResultMessageTuple(False, message, path, repair_script) def _DropEmptyPathSegments(path): """Removes empty segments from the end of path. Args: path: A filesystem path. Returns: path with trailing empty segments removed. Eg /duck/// => /duck. """ while True: (head, tail) = os.path.split(path) if tail: break path = head return path def _SanityCheck(path): """Runs various sanity checks on the font family under path. Args: path: A directory containing a METADATA.pb file. Returns: A list of ResultMessageTuple's. """ try: fonts.Metadata(path) except ValueError as e: return [_SadResult('Bad METADATA.pb: ' + e.message, path)] results = [] if FLAGS.check_metadata: results.extend(_CheckLicense(path)) results.extend(_CheckNameMatching(path)) if FLAGS.check_font: results.extend(_CheckFontInternalValues(path)) return results def _CheckLicense(path): """Verifies that METADATA.pb license is correct under path. Assumes path is of the form ...///METADATA.pb. Args: path: A directory containing a METADATA.pb file. Returns: A list with one ResultMessageTuple. If happy, license is good. """ metadata = fonts.Metadata(path) lic = metadata.license lic_dir = os.path.basename(os.path.dirname(path)) # We use /apache for the license Apache2 if lic_dir == 'apache': lic_dir += '2' result = _HappyResult('License consistantly %s' % lic, path) # if we were Python 3 we'd use casefold(); this will suffice if lic_dir.lower() != lic.lower(): result = _SadResult('Dir license != METADATA license: %s != %s' % (lic_dir, lic), path) return [result] def _CheckNameMatching(path): """Verifies the various name fields in the METADATA.pb file are sane. Args: path: A directory containing a METADATA.pb file. Returns: A list of ResultMessageTuple, one per validation performed. """ results = [] metadata = fonts.Metadata(path) name = metadata.name for font in metadata.fonts: # We assume style/weight is correct in METADATA style = font.style weight = font.weight values = [('name', name, font.name), ('filename', fonts.FilenameFor( name, style, weight, '.ttf'), font.filename), ('postScriptName', fonts.FilenameFor(name, style, weight), font.post_script_name), ('fullName', fonts.FullnameFor( name, style, weight), font.full_name)] for (key, expected, actual) in values: if expected != actual: results.append( _SadResult('%s METADATA %s/%d %s expected %s, got %s' % (name, style, weight, key, expected, actual), path, _FixMetadata(style, weight, key, expected))) if not results: results.append( _HappyResult('METADATA name consistently derived from "%s"' % name, path)) return results def _IsItalic(style): return style.lower() == 'italic' def _IsBold(weight): """Is this weight considered bold? Per Dave C, only 700 will be considered bold. Args: weight: Font weight. Returns: True if weight is considered bold, otherwise False. """ return weight == 700 def _ShouldFix(key): return FLAGS.fix_type and (key in FLAGS.fix_type or 'all' in FLAGS.fix_type) def _FixMetadata(style, weight, key, expected): if not _ShouldFix(key): return None if not isinstance(expected, int): expected = '\'%s\'' % expected return ('[f for f in metadata.fonts if f.style == \'%s\' ' 'and f.weight == %d][0].%s = %s') % ( style, weight, re.sub('([a-z])([A-Z])', r'\1_\2', key).lower(), expected) def _FixFsSelectionBit(key, expected): """Write a repair script to fix a bad fsSelection bit. Args: key: The name of an fsSelection flag, eg 'ITALIC' or 'BOLD'. expected: Expected value, true/false, of the flag. Returns: A python script to fix the problem. """ if not _ShouldFix('fsSelection'): return None op = '|=' verb = 'set' mask = bin(fonts.FsSelectionMask(key)) if not expected: op = '&=' verb = 'unset' mask = '~' + mask return 'ttf[\'OS/2\'].fsSelection %s %s # %s %s' % (op, mask, verb, key) def _FixFsType(expected): if not _ShouldFix('fsType'): return None return 'ttf[\'OS/2\'].fsType = %d' % expected def _FixWeightClass(expected): if not _ShouldFix('usWeightClass'): return None return 'ttf[\'OS/2\'].usWeightClass = %d' % expected def _FixBadNameRecord(friendly_name, name_id, expected): if not _ShouldFix(friendly_name): return None return ('for nr in [n for n in ttf[\'name\'].names if n.nameID == %d]:\n' ' nr.string = \'%s\'.encode(nr.getEncoding()) # Fix %s' % (name_id, expected, friendly_name)) def _FixMissingNameRecord(friendly_name, name_id, expected): if not _ShouldFix(friendly_name): return None return ('nr = ttLib.tables._n_a_m_e.NameRecord()\n' 'nr.nameID = %d # %s' 'nr.langID = 0x409\n' 'nr.platEncID = 1\n' 'nr.platformID = 3\n' 'nr.string = \'%s\'.encode(nr.getEncoding())\n' 'ttf[\'name\'].names.append(nr)\n' % (name_id, friendly_name, expected)) def _FixEmptyGlyphLsb(glyph_name): if not _ShouldFix('emptyGlyphLSB'): return None return 'ttf[\'hmtx\'][\'%s\'] = [ttf[\'hmtx\'][\'%s\'][0], 0]\n' % ( glyph_name, glyph_name) def _CheckFontOS2Values(path, font, ttf): """Check sanity of values hidden in the 'OS/2' table. Notably usWeightClass, fsType, fsSelection. Args: path: Path to directory containing font. font: A font record from a METADATA.pb. ttf: A fontTools.ttLib.TTFont for the font. Returns: A list of ResultMessageTuple for tests performed. """ results = [] font_file = font.filename full_font_file = os.path.join(path, font_file) expected_style = font.style expected_weight = font.weight os2 = ttf['OS/2'] fs_selection_flags = fonts.FsSelectionFlags(os2.fsSelection) actual_weight = os2.usWeightClass fs_type = os2.fsType marked_oblique = 'OBLIQUE' in fs_selection_flags marked_italic = 'ITALIC' in fs_selection_flags marked_bold = 'BOLD' in fs_selection_flags expect_italic = _IsItalic(expected_style) expect_bold = _IsBold(expected_weight) # Per Dave C, we should NEVER set oblique, use 0 for italic expect_oblique = False results.append( ResultMessageTuple(marked_italic == expect_italic, '%s %s/%d fsSelection marked_italic %d' % (font_file, expected_style, expected_weight, marked_italic), full_font_file, _FixFsSelectionBit('ITALIC', expect_italic))) results.append( ResultMessageTuple(marked_bold == expect_bold, '%s %s/%d fsSelection marked_bold %d' % (font_file, expected_style, expected_weight, marked_bold), full_font_file, _FixFsSelectionBit('BOLD', expect_bold))) results.append( ResultMessageTuple(marked_oblique == expect_oblique, '%s %s/%d fsSelection marked_oblique %d' % (font_file, expected_style, expected_weight, marked_oblique), full_font_file, _FixFsSelectionBit('OBLIQUE', expect_oblique))) # For weight < 300, just confirm weight [250, 300) # TODO(user): we should also verify ordering is correct weight_ok = expected_weight == actual_weight weight_msg = str(expected_weight) if expected_weight < 300: weight_ok = actual_weight >= 250 and actual_weight < 300 weight_msg = '[250, 300)' results.append( ResultMessageTuple(weight_ok, '%s %s/%d weight expected: %s usWeightClass: %d' % (font_file, expected_style, expected_weight, weight_msg, actual_weight), full_font_file, _FixWeightClass(expected_weight))) expected_fs_type = 0 results.append( ResultMessageTuple(expected_fs_type == fs_type, '%s %s/%d fsType expected: %d fsType: %d' % (font_file, expected_style, expected_weight, expected_fs_type, fs_type), full_font_file, _FixFsType(expected_fs_type))) return results def _CheckFontNameValues(path, name, font, ttf): """Check sanity of values in the 'name' table. Specifically the fullname and postScriptName. Args: path: Path to directory containing font. name: The name of the family. font: A font record from a METADATA.pb. ttf: A fontTools.ttLib.TTFont for the font. Returns: A list of ResultMessageTuple for tests performed. """ results = [] style = font.style weight = font.weight full_font_file = os.path.join(path, font.filename) expectations = [('family', fonts.NAME_FAMILY, name), ('postScriptName', fonts.NAME_PSNAME, fonts.FilenameFor( name, style, weight)), ('fullName', fonts.NAME_FULLNAME, fonts.FullnameFor( name, style, weight))] for (friendly_name, name_id, expected) in expectations: # If you have lots of name records they should ALL have the right value actuals = fonts.ExtractNames(ttf, name_id) for (idx, actual) in enumerate(actuals): results.append( ResultMessageTuple(expected == actual, '%s %s/%d \'name\' %s[%d] expected %s, got %s' % (name, style, weight, friendly_name, idx, expected, actual), full_font_file, _FixBadNameRecord(friendly_name, name_id, expected))) # should have at least one actual if not actuals: results.append( _SadResult('%s %s/%d \'name\' %s has NO values' % (name, style, weight, friendly_name), full_font_file, _FixMissingNameRecord(friendly_name, name_id, expected))) return results def _CheckLSB0ForEmptyGlyphs(path, font, ttf): """Checks if font has empty (loca[n] == loca[n+1]) glyphs that have non-0 lsb. There is no reason to set such lsb's. Args: path: Path to directory containing font. font: A font record from a METADATA.pb. ttf: A fontTools.ttLib.TTFont for the font. Returns: A list of ResultMessageTuple for tests performed. """ results = [] if 'loca' not in ttf: return results for glyph_index, glyph_name in enumerate(ttf.getGlyphOrder()): is_empty = ttf['loca'][glyph_index] == ttf['loca'][glyph_index + 1] lsb = ttf['hmtx'][glyph_name][1] if is_empty and lsb != 0: results.append( _SadResult( '%s %s/%d [\'hmtx\'][\'%s\'][1] (lsb) should be 0 but is %d' % (font.name, font.style, font.weight, glyph_name, lsb), os.path.join(path, font.filename), _FixEmptyGlyphLsb(glyph_name))) return results def _CheckFontInternalValues(path): """Validates fonts internal metadata matches METADATA.pb values. In particular, checks 'OS/2' {usWeightClass, fsSelection, fsType} and 'name' {fullName, postScriptName} values. Args: path: A directory containing a METADATA.pb file. Returns: A list of ResultMessageTuple, one per validation performed. """ results = [] metadata = fonts.Metadata(path) name = metadata.name for font in metadata.fonts: font_file = font.filename with contextlib.closing(ttLib.TTFont(os.path.join(path, font_file))) as ttf: results.extend(_CheckFontOS2Values(path, font, ttf)) results.extend(_CheckFontNameValues(path, name, font, ttf)) results.extend(_CheckLSB0ForEmptyGlyphs(path, font, ttf)) return results def _WriteRepairScript(dest_file, results): with open(dest_file, 'w') as out: out.write('import collections\n') out.write('import contextlib\n') out.write('from fontTools import ttLib\n') out.write('from google.protobuf.text_format ' 'import text_format\n') out.write('from gftools.fonts_public_pb2 import fonts_pb2\n') out.write('from gftools.fonts_public_pb2 ' 'import fonts_metadata_pb2\n') out.write('\n') # group by path by_path = collections.defaultdict(list) for result in results: if result.happy or not result.repair_script: continue if result.repair_script not in by_path[result.path]: by_path[result.path].append(result.repair_script) for path in sorted(by_path.keys()): out.write('# repair %s\n' % os.path.basename(path)) _, ext = os.path.splitext(path) prefix = '' if ext == '.ttf': prefix = ' ' out.write( 'with contextlib.closing(ttLib.TTFont(\'%s\')) as ttf:\n' % path) elif os.path.isdir(path): metadata_file = os.path.join(path, 'METADATA.pb') out.write('metadata = fonts_pb2.FamilyProto()\n') out.write('with open(\'%s\', \'r\') as f:\n' % metadata_file) out.write(' text_format.Merge(f.read(), metadata)\n') else: raise ValueError('Not sure how to script %s' % path) for repair in by_path[path]: out.write(prefix) out.write(re.sub('\n', '\n' + prefix, repair)) out.write('\n') if ext == '.ttf': out.write(' ttf.save(\'%s\')\n' % path) if os.path.isdir(path): out.write('with open(\'%s\', \'w\') as f:\n' % metadata_file) out.write(' f.write(text_format.MessageToString(metadata))\n') out.write('\n') def main(argv): result_code = 0 all_results = [] paths = [_DropEmptyPathSegments(os.path.expanduser(p)) for p in argv[1:]] for path in paths: if not os.path.isdir(path): raise ValueError('Not a directory: %s' % path) for path in paths: for font_dir in fonts.FontDirs(path): results = _SanityCheck(font_dir) all_results.extend(results) for result in results: result_msg = 'pass' if not result.happy: result_code = 1 result_msg = 'FAIL' if not result.happy or not FLAGS.suppress_pass: print('%s: %s (%s)' % (result_msg, result.message, font_dir)) if FLAGS.repair_script: _WriteRepairScript(FLAGS.repair_script, all_results) sys.exit(result_code) if __name__ == '__main__': app.run(main) bin/gftools-space-check.py000077500000000000000000000071701376445505300160450ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Utility to sanity check whitespace chars in fonts. Not in sanity_check because it can yield false positives. For example, Material Icons correctly doesn't include a space. If metadata awareness was added it could move into sanity_check. """ from __future__ import print_function import contextlib import os from fontTools import ttLib from gftools.util import google_fonts as fonts from absl import app def _LoadGlyf(font, char, name, problems): """Loads a glyf and expands (populates fields) it. Args: font: A TTFont. char: int id of char, e.g. ord('C'). name: name to use in problems string describing char. e.g. SPACE. problems: set to add problems to. Returns: 2-tuple of (cmap_key, glyph). (None, None) if a problem occurred. Adds to problems if a problem occurred. """ if 'glyf' not in font: problems.add('NO_GLYF_TABLE') return (None, None) cmap = fonts.UnicodeCmapTables(font).next().cmap if char not in cmap: problems.add('NO_%s' % name) return (None, None) key = cmap[char] glyph = font['glyf'].glyphs[key] glyph.expand(font['glyf']) return (key, glyph) def _HasInk(font, glyph_name): """Checks if specified glyph has any ink. That is, that it has at least one defined contour associated. Composites are considered to have ink if any of their components have ink. Args: font: A TTFont that has a 'glyf' table. glyph_name: The name of the glyph to check for ink. Returns: True if the font has at least one contour associated with it. """ glyph = font['glyf'].glyphs[glyph_name] glyph.expand(font['glyf']) if not glyph.isComposite(): if glyph.numberOfContours == 0: return False (coords, _, _) = glyph.getCoordinates(font['glyf']) # you need at least 3 points to draw return len(coords) > 2 # composite is blank if composed of blanks # if you setup a font with cycles you are just a bad person for glyph_name in glyph.getComponentNames(glyph.components): if _HasInk(font, glyph_name): return True return False def _CheckFont(font): """Inspects a font for space/nbsp issues. Args: font: A TTFont. Returns: A set of strings describing problems found in the font. Empty set if none. """ problems = set() (space_cmap, _) = _LoadGlyf(font, 0x0020, 'SPACE', problems) (nbsp_cmap, _) = _LoadGlyf(font, 0x00A0, 'NBSP', problems) if nbsp_cmap and _HasInk(font, nbsp_cmap): problems.add('NBSP_HAS_INK') if space_cmap and _HasInk(font, space_cmap): problems.add('SPACE_HAS_INK') if nbsp_cmap and space_cmap: if font['hmtx'][nbsp_cmap][0] != font['hmtx'][space_cmap][0]: problems.add('SPACE_NBSP_WIDTH_MISMATCH') return set(problems) def main(argv): for filename in argv[1:]: with contextlib.closing(ttLib.TTFont(filename)) as font: problems = _CheckFont(font) if not problems: problems.add('OK') print('{:48} {}'.format(os.path.basename(filename), ','.join(sorted(problems)))) if __name__ == '__main__': app.run(main) bin/gftools-test-gf-coverage.py000077500000000000000000000030441376445505300170350ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Fontbakery Authors # Copyright 2017 The Google Fonts Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from __future__ import print_function import os import sys from gftools.util.google_fonts import (CodepointsInFont, CodepointsInNamelist) from pkg_resources import resource_filename NAM_DIR = os.path.join( resource_filename("gftools", "encodings"), "GF Glyph Sets" ) NAM_FILES = [os.path.join(NAM_DIR, f) for f in os.listdir(NAM_DIR)] def main(): if len(sys.argv) != 2 or sys.argv[1][-4:] != ".ttf": sys.exit('Usage: {} fontfile.ttf'.format(sys.argv[0])) expected = set() for nam_file in NAM_FILES: nam_filepath = os.path.join(NAM_DIR, nam_file) expected.update(CodepointsInNamelist(nam_filepath)) filename = sys.argv[1] diff = expected - CodepointsInFont(filename) print(filename), if bool(diff): print('missing'), for c in sorted(diff): print('0x%04X' % (c)), else: print('OK') if __name__ == '__main__': main() bin/gftools-ttf2cp.py000077500000000000000000000033601376445505300150760ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Utility to dump codepoints in a font. Prints codepoints supported by the font, one per line, in hex (0xXXXX). """ import os import sys import unicodedata from absl import flags from gftools.util import google_fonts as fonts from absl import app import sys if sys.version[0] == '3': unichr = chr FLAGS = flags.FLAGS flags.DEFINE_bool('show_char', False, 'Print the actual character') flags.DEFINE_bool('show_subsets', False, 'Print what subsets, if any, char is in') def main(argv): if len(argv) < 2: sys.exit('Must specify one or more font files.') cps = set() for filename in argv[1:]: if not os.path.isfile(filename): sys.exit('%s is not a file' % filename) cps |= fonts.CodepointsInFont(filename) for cp in sorted(cps): show_char = '' if FLAGS.show_char: show_char = (' ' + unichr(cp).strip() + ' ' + unicodedata.name(unichr(cp), '')) show_subset = '' if FLAGS.show_subsets: show_subset = ' subset:%s' % ','.join(fonts.SubsetsForCodepoint(cp)) print(u'0x%04X%s%s' % (cp, show_char, show_subset)) if __name__ == '__main__': app.run(main) bin/gftools-unicode-names.py000077500000000000000000000025711376445505300164260ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Utility to print unicode character names from a nam file. Input file should have one codepoint per line in hex (0xXXXX). """ from __future__ import print_function import unicodedata import sys if sys.version[0] == '3': unichr = chr from absl import flags, app FLAGS = flags.FLAGS flags.DEFINE_string('nam_file', None, 'Location of nam file') def main(_): with open(FLAGS.nam_file, 'r') as f: for line in f: print(_ReformatLine(line)) def _ReformatLine(line): if line.startswith('0x'): codepoint = int(line[2:6], 16) out = unichr(codepoint) + ' ' + unicodedata.name(unichr(codepoint), '') return '0x%04X %s' % (codepoint, out) else: return line if __name__ == '__main__': flags.mark_flag_as_required('nam_file') app.run(main) bin/gftools-update-families.py000077500000000000000000000060001376445505300167370ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # __author__="The Google Fonts Tools Authors" import argparse import glob import logging import os # set up some command line argument processing parser = argparse.ArgumentParser(description="Compare TTF files when upgrading families.") parser.add_argument('arg_filepaths', nargs='+', help='font file path(s) to check.' ' Wildcards like *.ttf are allowed.') parser.add_argument('-v', '--verbose', action='count', default=0, help="increase output verbosity") #===================================== # Main sequence of checkers & fixers def main(): # set up a basic logging config # to include timestamps # log_format = '%(asctime)s %(levelname)-8s %(message)s' log_format = '%(levelname)-8s %(message)s ' logger = logging.getLogger() handler = logging.StreamHandler() formatter = logging.Formatter(log_format) handler.setFormatter(formatter) logger.addHandler(handler) args = parser.parse_args() if args.verbose == 1: logger.setLevel(logging.INFO) elif args.verbose >= 2: logger.setLevel(logging.DEBUG) else: logger.setLevel(logging.ERROR) #------------------------------------------------------ logging.debug("Checking each file is a ttf") fonts_to_check = [] for arg_filepath in sorted(args.arg_filepaths): # use glob.glob to accept *.ttf for fullpath in glob.glob(arg_filepath): file_path, file_name = os.path.split(fullpath) if file_name.endswith(".ttf"): logging.debug("Adding '{}'".format(file_name)) fonts_to_check.append(fullpath) else: logging.warning("Skipping '{}' as file is not a ttf".format(file_name)) fonts_to_check.sort() #------------------------------------------------------ for new_file in fonts_to_check: logging.debug("Comparison of filesizes") old_file = new_file + "-old" new_filesize = os.path.getsize(new_file) old_filesize = os.path.getsize(old_file) delta = new_filesize - old_filesize percentage = float(delta) / old_filesize if delta>0: logging.warning("New font file '{}' is {} bytes larger".format( new_file, delta)) elif delta<0: logging.warning("New font file '{}' is {} bytes smaller".format( new_file, -delta)) else: logging.info("New font file '{}' preserves filesize.".format(new_file)) if __name__=='__main__': main() bin/gftools-update-nameids.py000077500000000000000000000065131376445505300165770ustar00rootroot00000000000000#!/usr/bin/env python3 # Copyright 2016 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ Update specific nameIDs in a collection of fonts with new strings. Examples: $ gftools update-nameids -c="Copyright 2016" font.ttf $ gftools update-nameids -v="4.000" -ul="http://license.org" [fonts.ttf] if you need to change the name or style of a collection of font families, use gftools nametable-from-filename instead. """ from __future__ import print_function from fontTools.ttLib import TTFont from argparse import (ArgumentParser, RawTextHelpFormatter) NAME_IDS = { 0: 'copyright', 3: 'uniqueid', 5: 'version', 7: 'trademark', 8: 'manufacturer', 9: 'designer', 11: 'urlvendor', 12: 'urldesigner', 13: 'license', 14: 'urllicense', } def swap_name(field, font_name_field, new_name): '''Replace a font's name field with a new name''' enc = font_name_field.getName(*field).getEncoding() text = font_name_field.getName(*field).toUnicode() text = new_name font_name_field.setName(text, *field) def update_field(arg, args, fields, nametable): if hasattr(args, arg): text = getattr(args, arg) if text: swap_name(fields, nametable, text) parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument('fonts', nargs="+") parser.add_argument('-c', '--copyright', type=str, help='Update copyright string') parser.add_argument('-u', '--uniqueid', type=str, help='Update uniqueid string') parser.add_argument('-v', '--version', type=str, help='Update version string') parser.add_argument('-t', '--trademark', type=str, help='Update trademark string') parser.add_argument('-m', '--manufacturer', type=str, help='Update manufacturer string') parser.add_argument('-d', '--designer', type=str, help='Update designer string') parser.add_argument('-l', '--license', type=str, help='Update license string') parser.add_argument('-uv', '--urlvendor', type=str, help='Update url vendor string') parser.add_argument('-ud', '--urldesigner', type=str, help='Update url vendor string') parser.add_argument('-ul', '--urllicense', type=str, help='Update url license string') def main(): args = parser.parse_args() for font_path in args.fonts: font = TTFont(font_path) for field in font['name'].names: fields = (field.nameID, field.platformID, field.platEncID, field.langID) if field.nameID in NAME_IDS: update_field(NAME_IDS[field.nameID], args, fields, font['name']) font.save(font_path + '.fix') print('font saved %s.fix' % font_path) if __name__ == '__main__': main() bin/gftools-update-version.py000077500000000000000000000046101376445505300166400ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 The Font Bakery Authors. # Copyright 2017 The Google Font Tools Authors # # Copyright 2010, Google Inc. # Author: Dave Crossland (dave@understandinglimited.com) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ Update a collection of fonts version number to a new version number. e.g: gftools update-version [fonts] 2.300 2.301 """ from __future__ import print_function from argparse import (ArgumentParser, RawTextHelpFormatter) from fontTools.ttLib import TTFont parser = ArgumentParser(description=__doc__, formatter_class=RawTextHelpFormatter) parser.add_argument('fonts', nargs="+", help="Fonts in OpenType (TTF/OTF) format") parser.add_argument('old_version', help="Old version number", type=str) parser.add_argument('new_version', help="New Version number", type=str) def main(): args = parser.parse_args() for font_path in args.fonts: font = TTFont(font_path) v_updated = False for field in font['name'].names: field_text = field.toUnicode() if args.old_version in field_text: updated_text = field_text.replace( args.old_version, args.new_version ) font['name'].setName( updated_text, field.nameID, field.platformID, field.platEncID, field.langID ) v_updated = True if v_updated: font['head'].fontRevision = float(args.new_version) print('%s version updated from %s to %s' % ( font_path, args.old_version, args.new_version )) font.save(font_path + '.fix') print('font saved %s.fix' % font_path) else: print ('%s skipping. Could not find old version number %s' % ( font_path, args.old_version )) if __name__ == '__main__': main() bin/gftools-varfont-info.py000077500000000000000000000041041376445505300163010ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Utility to dump variation font info. Lists which variable font axes and named-instances are declared in the 'fvar' table of a given TTF file. """ from __future__ import print_function import contextlib import sys from fontTools import ttLib def _ResolveName(ttf, name_id): if name_id == 0xFFFF: return '[anonymous]' names = [n for n in ttf['name'].names if n.nameID == name_id] if not names: return '[?nameID=%d?]' % name_id unicode_names = [n for n in names if n.isUnicode()] if unicode_names: return unicode_names[0].toUnicode() return names[0].toUnicode() def main(argv): if len(argv) < 2: sys.exit(('{}\n' 'usage:\n' ' gftools varfont-info fontfile.ttf').format(__doc__)) for filename in argv[1:]: with contextlib.closing(ttLib.TTFont(filename)) as ttf: print(filename) if 'fvar' not in ttf: print("This font file lacks an 'fvar' table.") else: fvar = ttf['fvar'] print(' axes') axes = [(a.axisTag, a.minValue, a.defaultValue, a.maxValue) for a in fvar.axes] for tag, minv, defv, maxv in axes: print(" '%s' %d-%d, default %d" % (tag, minv, maxv, defv)) if fvar.instances: print(' named-instances') for inst in fvar.instances: print(' %s %s' % (_ResolveName(ttf, inst.postscriptNameID), inst.coordinates)) if __name__ == '__main__': main(sys.argv) bin/gftools-what-subsets.py000077500000000000000000000026631376445505300163320ustar00rootroot00000000000000#!/usr/bin/env python3 # # Copyright 2017 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Tool to print subsets supported by a given font file. """ from __future__ import print_function import os from absl import flags from gftools.util import google_fonts as fonts from absl import app FLAGS = flags.FLAGS flags.DEFINE_integer('min_pct', 0, 'What percentage of subset codepoints have to be supported' ' for a non-ext subset.') flags.DEFINE_integer('min_pct_ext', 0, 'What percentage of subset codepoints have to be supported' ' for a -ext subset.') def main(argv): for arg in argv[1:]: subsets = fonts.SubsetsInFont(arg, FLAGS.min_pct, FLAGS.min_pct_ext) for (subset, available, total) in subsets: print('%s %s %d/%d' % (os.path.basename(arg), subset, available, total)) if __name__ == '__main__': app.run(main) bin/test_args.py000077500000000000000000000047071376445505300142220ustar00rootroot00000000000000#!/usr/bin/env python3 import sys target_modules = [ "gftools-build-font2ttf", "gftools-fix-ascii-fontmetadata", "gftools-fix-familymetadata", "gftools-fix-fsselection", "gftools-fix-gasp", "gftools-fix-glyph-private-encoding", "gftools-fix-glyphs", "gftools-fix-nameids", # "gftools-fix-nonhinting", #this one do not even use argparse module "gftools-fix-ttfautohint", "gftools-fix-vendorid", "gftools-fix-vertical-metrics", "gftools-list-panose", "gftools-list-weightclass", "gftools-list-widthclass", "gftools-metadata-vs-api", "gftools-update-families" ] help_text = {} for module_name in target_modules: target = __import__(module_name) help_text[module_name] = target.parser.format_help() # We need to extend this list with our # minimal common interface for all scripts: mandatory_args = ["[-h]"] # This is a catch-all that contains most args # used in some of the current scripts. # We probably want to reduce this list to the bare minimum # and maybe make some of these mandatory. optional_args = [ "[-v]", "[--autofix]", "[--csv]", "[--verbose]", "[-a ASCENTS]", "[-ah ASCENTS_HHEA]", "[-at ASCENTS_TYPO]", "[-aw ASCENTS_WIN]", "[-d DESCENTS]", "[-dh DESCENTS_HHEA]", "[-dt DESCENTS_TYPO]", "[-dw DESCENTS_WIN]", "[-l LINEGAPS]", "[-lh LINEGAPS_HHEA]", "[-lt LINEGAPS_TYPO]", "[--api API]", "[--cache CACHE]", "[--set SET]", "[--platform PLATFORM]", "[--id ID]", "[--ignore-copy-existing-ttf]", "[--with-otf]", "[-e EXISTING]" ] failed = False for arg in mandatory_args: missing = [] for module_name in help_text.keys(): if arg not in help_text[module_name]: missing.append(module_name) if missing != []: failed = True print (("ERROR: These modules lack the {} command line argument:" "\nERROR:\t{}\n").format(arg, '\nERROR:\t'.join(missing))) import re for module_name in help_text.keys(): text = help_text[module_name] args = re.findall('(\[\-[^\[]*\])', text) # print (args) # print ("INFO: {}: {}".format(module_name, text)) for arg in args: if arg not in optional_args + mandatory_args: print (("WARNING: Module {} has cmdline argument {}" " which is not in the list of optional ones." "").format(module_name, arg)) # TODO: we also need to verify positional attributes like font and ttfont if failed: sys.exit("Some errors were detected in the command-line" " arguments of the Font Bakery scripts.") docs/000077500000000000000000000000001376445505300120225ustar00rootroot00000000000000docs/gftools-packager/000077500000000000000000000000001376445505300152525ustar00rootroot00000000000000docs/gftools-packager/README.md000066400000000000000000000415161376445505300165400ustar00rootroot00000000000000# `gftools packager` Tool to take files from a font family project upstream git repository to the [google/fonts GitHub](https://github.com/google/fonts) repository structure, taking care of all the details. usage: gftools packager [-h] [-f] [-y] [-q] [-g] [-b BRANCH] [-a] [-p] [--pr-upstream PR_UPSTREAM] [--push-upstream PUSH_UPSTREAM] [--no-whitelist] [name [name ...]] target Show the command line help: $ gftools packager -h ## Environment Variables * `GH_TOKEN` **mandatory** used to access the GitHub GraphQL API to get info about the font family in the google/fonts repo and to download the current versions of the package. * `VISUAL` and `EDITOR` **optional** The command to open a text editor in order to create or edit an `upstream.yaml` file. If `VISUAL` is set it will be used, otherwise `EDITOR`, if set, will be used. The default/fallback editor command is `vi`, (which in many cases will open vim). This is similar to the way the `git` command decides which editor to use. This is how to set environment variables: $ export GH_TOKEN=mypersonalgithubapitoken $ export VISUAL=gedit You can also put these commands into a file: # file: set_local_env export GH_TOKEN=mypersonalgithubapitoken export VISUAL=gedit Then run: $ source set_local_env Or put the commands into your `~/.bashrc` and the variables will be set for each newly started bash terminal. ## `upstream.yaml` Upstream Configuration The tool introduces and relies on "upstream configuration" in the form of an `upstream.yaml` file, located in the family directory on google/fonts. Initially for each update to a family or newly added family an `upstream.yaml` file will have to be created. The packager supports this by providing a template, with documenting comments, that it opens in an interactive text editor. You should have a look at the [`upstream.yaml` template](../../Lib/gftools/template.upstream.yaml) now to make yourself familiar. An `upstream.yaml` file path can also be used as a `name` argument from the command line. Eventually, when the `upstream.yaml` already exists in the family directory of google/fonts, and no modification to it is required, an update and Pull Request (PR) of the family can be done in one call to the packager. ## `name` Family Name or `upstream.yaml` File Name The tool takes zero or more family names or file names and creates a package (and commit) for each. If a `name` ends with `.yaml` or `.yml` it is treated as a file path to an `upstream.yaml` configuration file. Otherwise it's treated as a family name that will be searched in google/fonts for existing `upstream.yaml` configuration. The family entry will be updated if found or created otherwise. The family name in this case can be: * the full family name like `"Family Sans"` (use quotes or escapes on the command line if it contains spaces), * the camel cased name `FamilySans` or * the all lowercase directory name `familysans`. To search the family on google fonts, the name will be made all lower case and spaces will be removed. In the full name case, if the family is not on google fonts, the suggestion in the `upstream.yaml` editor template will already be set correctly. ## `target` Directory or Git Repository The target argument can be either treated as a directory or as a git repository (use `-g/--gf-git`) that is a clone of google/fonts. ### Directory (*default*) If `target` is treated as a directory, the tool will simply add the files package into its `{license_dir}/{family_dir}` directory within `target`. Note that in this case `target` can also be the current working tree of a git repository, but it can also be an empty or any other directory. If the sub-directory `{license_dir}/{family_dir}` already exists, it can't be overridden without giving explicit permission (`-f/--force` or answering in interactive mode). This is useful for a local quality assurance (QA) development-feedback loop when mastering a family for google/fonts. See `gftools qa` for this. Especially Font Bakery with the `googlefonts` profile (i.e. `fontbakery check-googlefonts`) is set up to check all the contents of the family package, not just the font files, and has ideally also access to the google/fonts directory structure and possible sibling families. Thus, putting the package into a checked out working directory of google/fonts master is the optimal case for local QA. ### Git Repository `-g/--gh-git` To use `target` as a google/fonts git repository it must have a git remote that can fetch from google/fonts, e.g. with the url `git@github.com:google/fonts.git` or `https://github.com/google/fonts.git`. **NOTE:** command line flags and arguments that **imply** that target is a git repository *will also **implicitly set** the `-g/--gh-git` flag*. Such are `-b/--branch`, `-a/--ad-commit`, `-p/--pr` and—by implying `-p/--pr`—`--pr-upstream` and `--push-upstream`. In this mode the tool will create a new git branch or add to an existing one (with `-a/--add-commit`). Use `-b/--branch` to explicitly specify a branch or the tool will create a branch name based on the given actual family names and the prefix `gftools_packager_`. An existing branch, when creating a new branch, can't be overridden without giving explicit permission (`-f/--force` or answering in interactive mode). *A limitation here is:* If the branch is checked out, in the current working directory of the repository, it won't be possible to override it or add commits to it! To push the branch to the remote and make a PR to `https://github.com/google/fonts` with the package(s) use the `-p/--pr` flag. Note that the remote branch will always be prefixed with `gftools_packager_` even if the local branch (when using `-b/--branch`) is not prefixed by that. This is because the push to the remote branch **will always be a `git push --force`** no matter if (`-f/--force`) was used or not. That way we ensure that only remote branches that were (likely) created by the tool are overridden by the tool, not accidentally other branches. An existing PR for the same branch name will simply be updated and a status comment will be added to the PR discussion. Interesting arguments, together with `-p/--pr`, to push and/or PR to other GitHub repositories are `--pr-upstream` and `--push-upstream`. These are so far mainly used for development/debugging/testing in order to reduce noise on the google/fonts repository. However, in some cases `--push-upstream` can be used to push to a fork of google/fonts and then let the tool make a PR to google/fonts, e.g. when the user has no `WRITE` permission for google/fonts. But, currently, the continuous integration QA tools that check the PR can't handle branches on repositories other than google/fonts, so the utility of this is lower. ## Interactive Mode Interactive mode is the default mode of the tool. To turn it off use the `-y/--no-confirm` flag and the tool will never ask for user interaction. This is especially useful for automation purposes, then together with the `-f/--force` flag, or when everything is expected to be set up correctly and the tool should just do its thing. ## Use Cases and Workflows There are multiple use cases for this tool. ### Create or Update a Font Family on google/fonts: If the family already has an `upstream.yaml` file in its google/fonts directory, this will do (`-p/--pr`: make a PR, implying `-g/--gf-git`): $ gftools packager "Family Serif" path/to/google/fonts/clone -p # or $ gftools packager "Family Serif" path/to/google/fonts/clone --pr It will however ask if want to to edit the `upstream.yaml` file or not. If answered positively, an editor will be opened with the contents of the file. In the case of a family that is not on google/fonts or not yet has an `upstream.yaml` file on google/fonts, the tool will help tyou interactively to create such a file. In case the `upstream.yaml` is up to date, the `-y/--no-confirm` flag will prevent any user interaction and result in an uninterrupted program flow, but that can also lead to an early exit of the program: $ gftools packager "Family Serif" path/to/google/fonts/clone -p -y # or $ gftools packager "Family Serif" path/to/google/fonts/clone --pr --no-confirm The git branch created in this example will be called `gftools_packager_familyserif` and if it already exists, e.g. from a previous attempt, the tool can't override the branch without explicit permission. In interactive mode, the tool can ask for permission, but, with the `-y/--no-confirm` flag, permission can be given when calling the command with `-f/--force`: $ gftools packager "Family Serif" path/to/google/fonts/clone -p -y -f # or $ gftools packager "Family Serif" path/to/google/fonts/clone --pr --no-confirm --force ### Use a Local `upstream.yaml` File: To add a new family or experiment with upstream configuration settings, it can be a good thing to use an `upstream.yaml` file directly from disk. Also, in case of a crash often caused by a problem in the upstream configuration, packager will ask to save a backup copy of the upstream configuration to disk. This file can be used to pick up work from the point of the crash, even if the `upstream.yaml` was created only in interactive mode. $ gftools packager path/to/family-serif.upstream.yaml path/to/google/fonts/clone [... flags] Below is also a guide how to create an `upstream.yaml` file directly from the tool, using the `-u/--upstream-yaml` flag ### Workflow: Local Mastering Loop with QA Suppose we want to add a super family with two siblings families on google/fonts. In this case we want to run the QA tooling locally before making the PR, to make sure the PR will run smoothly. We also want to iterate quickly between fixing upstream and running QA. #### Create a Local `upstream.yaml` Get started by creating a local `upstream.yaml` for quick access. $ gftools packager "Family Sans" familysans.upstream.yaml -u # or $ gftools packager "Family Sans" familysans.upstream.yaml --upstream-yaml If "Family Sans" is already on google/fonts, `familysans.upstream.yaml` will get filled with as much info as available. Use -y/--no-confirm to skip interactive mode, you can always edit the file later: $ gftools packager "Family Sans" familysans.upstream.yaml -u -y # or $ gftools packager "Family Sans" familysans.upstream.yaml --upstream-yaml --no-confirm To directly output the unchanged, original `upstream.yaml` template don't use a `name`: $ gftools packager familysans.upstream.yaml -u # or $ gftools packager familysans.upstream.yaml --upstream-yaml You can also have a look at the [`upstream.yaml` template](../../Lib/gftools/template.upstream.yaml) now. Now edit the the file according to your projects needs. #### The `repository_url: local://` Hack **NOTE:** To achieve a real quick local mastering loop, there's a hack built into the `upstram.yaml` `repository_url` property. You can use the `local://` prefix to reference a git repository path on your disk. This has two advantages for local development: * no git clone of a repository from GitHub each time you run `gftool packager` * no pushing necessary to your remote working branch. You will however still have to commit changes to your local branch. **CAUTION:** Google Fonts won't accept families where the METADATA.pb `source.repository_url` and `source.commit` hash are not publicly available. Consider the `local://` hack a temporary measure to get you up and running smoothly. In your `familysans.upstream.yaml` you can put a relative path, that will always be local to your current working directory (run `$ pwd` if unsure): # in file familysans.upstream.yaml repository_url: local://../font-projects/family-sans-font Absolute paths are no problem either: # in file familysans.upstream.yaml repository_url: local:///home/username/font-projects/family-sans-font Or use a `~` tilde shortcut to your home directory, perhaps the best option: # in file familysans.upstream.yaml repository_url: local://~/font-projects/family-sans-font And the name of your feature brach, e.g: # in file familysans.upstream.yaml branch: mastering_v2.000_to_google_fonts #### The QA – Mastering Loop Now that you have set up prepared everything, start creating a package in the working directory of your local clone or fork of google/fonts. As mentioned before, especially for Font Bakery, this is optimal. Be careful with the `-f/--force` flag, if you are not sure what it does, don't use it, or read above and learn about it. You can also use the `-y/--no-confirm` flag. $ gftools familysans.upstream.yaml path/to/google/fonts/clone -fy If everything goes well, you will see a line like this in the output, that points you to where the package has been created: […] Package Directory: path/to/google/fonts/clone/ofl/familysans […] Done! Now run `gftools qa` tools. It's initially OK to only run Font Bakery and to work on fixing all the FAIL stauses in the sources, but **this is the wrong place to teach details about the QA and mastering process.** *FIXME: Where is the right place?*: $ gftools qa -f path/to/google/fonts/clone/ofl/familysans/*.ttf --fontbakery -o ./font_out_qa # or use Font Bakery directly if you want to use its command line options directly $ fontbakery check-googlefonts path/to/google/fonts/clone/ofl/familysans/*.ttf The results of the quality assurance tools should point you to enough issues that need work on your font project. After fixing these, repeat the local packaging and QA-ing. Once you are satisfied you can start preparing the PR. #### Make a Pull Request If you worked locally, as described in the previous sections, you should by now have an almost ready to go local file `familysans.upstream.yaml` with `local://` hack applied and a local repository of your font project, with a feature branch that contains all the latest mastering changes that you made. It's now time to get the changes of your feature branch merged into the projects repository main (usually `master`) branch. You can now change the `repository_url` and `branch` in your `familysans.upstream.yaml` file to the official project repository. **NOTE:** as `branch` it is also possible to **reference a git tag**, such as a release tag if the project does tag releases, e.g. `tags/v1.000` for the tag `v1.000` or `tags/latest` for the tag `latest` do work as well. Use the `tags/` prefix to make it very clear that you are referencing a tag here. The changed parts of your file should look similar to this: # in file familysans.upstream.yaml repository_url: https://github.com/foundry/family-sans-font.git branch: master Now dispatch the PR and join the discussion on [google/fonts/pulls](https://github.com/google/fonts/pulls): $ gftools packager familysans.upstream.yaml path/to/google/fonts/clone -p -y Congratulations, you set up the `upstream.yaml` for a font project from scratch. Future updates will be much simpler than this! ### Multi Family/Super Family/Bunch Updates If e.g. a super family changes values that are shared between its sibling families, the right thing to do is to **make one PR with all changed sibling families in one go**. There are two ways the packager supports this. Lets assume that the `upstream.yaml` files for all siblings are already on google fonts and that they are still up to date, so there's no need to change them. The direct way is use all siblings in one call, creating **one commit per sibling**, then send the commit directly: $ gftools packager "Family Sans" "Family Serif" "Family Mono" path/to/google/fonts/clone -p -y Equivalently, this can be done incrementally, to make room for whatever needs to be done between the steps. In this case we pick a git branch name `-b/--branch` for the PR that describes our intend. To add to the branch we must use the `-a/--add-commit` flag. This is supposed to create a new branch. Use `-f/--force` if the branch exists and you want to override it: $ gftools packager "Family Sans" path/to/google/fonts/clone -b update_family_sans-serif-mono -y Start adding commits: $ gftools packager "Family Serif" path/to/google/fonts/clone -b update_family_sans-serif-mono -a -y # In between these operations you can add other commits to the branch, rebase etc. $ gftools packager "Family Mono" path/to/google/fonts/clone -b update_family_sans-serif-mono -a -y You could have used `-p/--pr` to dispatch the commit directly with the last call. However, this way I can demonstrate that you don't need to add a package in order to make a PR for an existing branch: $ gftools packager path/to/google/fonts/clone -b update_family_sans-serif-mono -p The `name` items can be zero or more in a call to the packager, however, without making a PR there's really no point in running the command at all. It's also possible to mix family names and `upstream.yaml` file names in one call to the packager, each `name` is treated individually. $ gftools packager path/to/google/fonts/clone > No families to package. > Done! experimental/000077500000000000000000000000001376445505300135675ustar00rootroot00000000000000experimental/make_kit.py000066400000000000000000000051341376445505300157300ustar00rootroot00000000000000# Experimental for local testing. # Usage: # python make_kit.py some_font.ttf some_other_font.ttf import contextlib import os import sys from fontTools import subset from fontTools import ttLib def makeKit(font_path): # put the result into a directory named file_name.kit dest_dir = os.path.splitext(font_path)[0] + '.kit' if os.path.isdir(dest_dir): print 'FAILURE: dest %s already exists' % dest_dir return False os.makedirs(dest_dir) print 'Making a kit for %s in %s' % (font_path, dest_dir) # crack open the font # equivalent pyftsubset /tmp/Lobster-Regular.ttf --unicodes='*' --obfuscate_names options = subset.Options() with contextlib.closing(subset.load_font(font_path, options)) as font: unicodes = [] for t in font['cmap'].tables: if t.isUnicode(): unicodes.extend(t.cmap.keys()) options.unicodes = unicodes # mangle 'name' so the font can't be installed options.obfuscate_names # apply our subsetting, most notably trashing 'name' subsetter = subset.Subsetter(options=options) subsetter.populate() # write [ot]tf, woff, and woff2 editions with 'name' mangled font_name_noext = os.path.splitext(os.path.basename(font_path))[0] font_ext = os.path.splitext(os.path.basename(font_path))[1] for fmt in [font_ext, '.woff', '.woff2']: dest_file = os.path.join(dest_dir, font_name_noext + fmt) options.flavor = None if fmt.startswith('.woff'): options.flavor = fmt[1:] print 'Writing %s' % dest_file with open(dest_file, 'wb') as f: subset.save_font(font, f, options) # write a sample somewhat (no early Android, IE) bulletproof css dest_file = os.path.join(dest_dir, 'bulletproof.css') os2 = font['OS/2'] font_style = 'normal' if os2.fsSelection & 1: font_style = 'italic' with open(dest_file, 'w') as f: f.write("@font-face {\n") f.write(" font-family: '%s';\n" % font_name_noext) f.write(" font-style: %s;\n" % font_style) f.write(" font-weight: %d;\n" % os2.usWeightClass) f.write(" src:\n") f.write(" url('./%s.woff2') format('woff2'),\n" % font_name_noext) f.write(" url('./%s.woff') format('woff'),\n" % font_name_noext) if font_ext == '.otf': f.write(" url('./%s.otf') format('opentype')" % font_name_noext) else: f.write(" url('./%s.ttf') format('truetype')" % font_name_noext) f.write(";\n") f.write("}\n") return True def main(): for font_path in sys.argv[1:]: makeKit(font_path) if __name__ == "__main__": # execute only if run as a script main()font-metadata.csv000066400000000000000000001521271376445505300143430ustar00rootroot00000000000000GFN,FWE,FIA,FWI,USAGE Aaram:normal:400,4,1,2,header ABeeZee:italic:400,5,4,7,header ABeeZee:normal:400,5,1,7,header Abel:normal:400,4,1,2,body Abril Fatface:normal:400,7,1,7,header Aclonica:normal:400,8,1,8,body Acme:normal:400,6,1,6,header Actor:normal:400,5,1,7,body Adamina:normal:400,5,1,7,header Advent Pro:normal:100,1,1,6,header Advent Pro:normal:200,2,1,6,header Advent Pro:normal:300,3,1,6,header Advent Pro:normal:400,4,1,6,header Advent Pro:normal:500,4,1,6,body Advent Pro:normal:600,5,1,6,body Advent Pro:normal:700,5,1,6,header Aguafina Script:normal:400,4,8,5,header Akronim:normal:400,5,5,5,header Aladin:normal:400,6,1,5,header Aldrich:normal:400,5,1,8,header Alef:normal:400,5,1,7,header Alef:normal:700,6,1,8,header Alegreya:italic:400,4,4,6,header Alegreya:italic:700,6,4,6,header Alegreya:italic:900,8,4,6,header Alegreya:normal:400,4,1,6,header Alegreya:normal:700,7,1,7,header Alegreya:normal:900,8,1,7,header Alegreya Sans:italic:100,1,4,5,header Alegreya Sans:italic:300,3,4,6,header Alegreya Sans:italic:400,4,4,6,header Alegreya Sans:italic:500,5,4,6,header Alegreya Sans:italic:700,6,4,6,header Alegreya Sans:italic:800,7,4,6,header Alegreya Sans:italic:900,8,4,6,header Alegreya Sans:normal:100,1,1,6,header Alegreya Sans:normal:300,3,1,6,header Alegreya Sans:normal:400,5,1,6,body Alegreya Sans:normal:500,5,1,6,header Alegreya Sans:normal:700,6,1,6,header Alegreya Sans:normal:800,7,1,6,header Alegreya Sans:normal:900,8,1,6,header Alegreya Sans SC:italic:100,1,4,6,header Alegreya Sans SC:italic:300,3,3,6,header Alegreya Sans SC:italic:400,4,3,6,header Alegreya Sans SC:italic:500,5,3,7,header Alegreya Sans SC:italic:700,6,4,7,header Alegreya Sans SC:italic:800,7,3,7,header Alegreya Sans SC:italic:900,8,3,7,header Alegreya Sans SC:normal:100,1,1,7,header Alegreya Sans SC:normal:300,3,1,7,header Alegreya Sans SC:normal:400,5,1,7,header Alegreya Sans SC:normal:500,5,1,7,header Alegreya Sans SC:normal:700,6,1,7,header Alegreya Sans SC:normal:800,7,1,7,header Alegreya Sans SC:normal:900,8,1,7,header Alegreya SC:italic:400,4,4,7,header Alegreya SC:italic:700,6,3,7,header Alegreya SC:italic:900,8,3,7,header Alegreya SC:normal:400,4,1,7,header Alegreya SC:normal:700,6,1,7,header Alegreya SC:normal:900,8,1,7,header Alex Brush:normal:400,5,9,5,header Alfa Slab One:normal:400,9,1,8,header Alice:normal:400,5,1,7,body Alike Angular:normal:400,5,1,7,body Alike:normal:400,5,1,7,header Allan:normal:400,4,5,5,header Allan:normal:700,6,5,5,header Allerta:normal:400,6,1,8,header Allerta Stencil:normal:400,6,1,8,header Allura:normal:400,3,7,5,header Almendra Display:normal:400,1,1,6,header Almendra:italic:400,4,1,6,header Almendra:italic:700,7,1,6,header Almendra:normal:400,4,1,6,header Almendra:normal:700,7,1,7,header Almendra SC:italic:400,4,1,6,header Almendra SC:italic:700,7,1,7,header Almendra SC:normal:400,4,1,7,header Almendra SC:normal:700,7,1,7,header Amarante:normal:400,5,1,7,header Amaranth:italic:400,6,5,7,header Amaranth:italic:700,7,5,7,header Amaranth:normal:400,6,1,7,header Amaranth:normal:700,7,1,7,header Amatic SC:normal:400,2,1,4,header Amatic SC:normal:700,3,1,2,header Amethysta:normal:400,5,1,8,body Amiko:normal:400,4,1,5,body Amiko:normal:600,4,1,5,body Amiko:normal:700,5,1,5,body Amiri:italic:400,3,5,4,body Amiri:italic:700,5,5,4,body Amiri:normal:400,3,1,4,body Amiri:normal:700,5,1,4,body Amita:normal:400,4,2,4,header Amita:normal:700,3,2,4,header Anaheim:normal:400,4,1,7,body Andada:italic:400,5,3,7,header Andada:italic:700,7,4,7,header Andada:normal:400,5,1,7,body Andada:normal:700,7,1,7,header Andada SC:italic:400,5,4,7,header Andada SC:italic:700,7,4,7,header Andada SC:normal:400,5,1,7,header Andada SC:normal:700,7,1,7,header Andika:normal:400,5,1,7,body Annie Use Your Telescope:normal:400,3,1,6,header Anonymous Pro:italic:400,4,5,8,header Anonymous Pro:italic:700,5,5,8,header Anonymous Pro:normal:400,4,1,8,header Anonymous Pro:normal:700,5,1,8,header Antic Didone:normal:400,4,1,7,header Antic:normal:400,4,1,7,body Antic Slab:normal:400,4,1,7,header Antonio:normal:300,4,1,5,header Antonio:normal:400,4,1,6,body Antonio:normal:700,5,1,6,body Anton:normal:400,7,1,7,body Arapey:italic:400,4,5,6,header Arapey:normal:400,4,1,6,body Arbutus:normal:400,8,1,9,header Arbutus Slab:normal:400,5,1,8,body Architects Daughter:normal:400,4,1,7,header Archivo Black:normal:400,8,1,8,header Archivo Narrow:italic:400,5,3,6,header Archivo Narrow:italic:700,6,3,6,header Archivo Narrow:normal:400,5,1,6,header Archivo Narrow:normal:700,6,1,6,header Aref Ruqaa:normal:400,3,1,4,header Aref Ruqaa:normal:700,4,1,4,header Arima Madurai:normal:100,2,1,4,body Arima Madurai:normal:200,3,1,4,body Arima Madurai:normal:300,4,1,4,body Arima Madurai:normal:400,5,1,4,body Arima Madurai:normal:500,6,1,4,body Arima Madurai:normal:700,6,1,4,body Arima Madurai:normal:800,7,1,4,body Arima Madurai:normal:900,7,1,4,body Arimo:italic:400,5,4,7,header Arimo:italic:700,7,4,7,header Arimo:normal:400,5,1,7,body Arimo:normal:700,7,1,7,header Arizonia:normal:400,3,9,6,header Armata:normal:400,4,1,8,body Artifika:normal:400,6,1,8,body Arvo:italic:400,5,5,8,header Arvo:italic:700,7,4,8,header Arvo:normal:400,5,1,7,body Arvo:normal:700,7,1,8,header Arya:normal:400,4,1,3,body Arya:normal:700,5,1,3,body Asap:italic:400,5,3,7,header Asap:italic:700,7,3,7,header Asap:normal:400,5,1,7,header Asap:normal:700,7,1,7,header Asar:normal:400,3,1,4,body Asset:normal:400,10,1,10,header Assistant:normal:200,2,1,4,body Assistant:normal:300,3,1,4,body Assistant:normal:400,4,1,4,body Assistant:normal:600,5,1,4,body Assistant:normal:700,6,1,4,body Assistant:normal:800,7,1,4,body Astloch:normal:400,2,1,5,header Astloch:normal:700,6,1,6,header Asul:normal:400,5,1,7,body Asul:normal:700,6,1,7,header Atomic Age:normal:400,5,1,8,body Aubrey:normal:400,4,1,6,body Audiowide:normal:400,6,1,8,header Autour One:normal:400,5,1,8,body Average:normal:400,5,1,7,header Average Sans:normal:400,5,1,7,body Averia Gruesa Libre:normal:400,5,1,7,header Averia Libre:italic:300,4,4,7,header Averia Libre:italic:400,5,4,7,header Averia Libre:italic:700,6,4,7,header Averia Libre:normal:300,5,1,7,header Averia Libre:normal:400,5,1,7,header Averia Libre:normal:700,6,1,7,header Averia Sans Libre:italic:300,4,4,7,header Averia Sans Libre:italic:400,5,4,7,header Averia Sans Libre:italic:700,6,4,7,header Averia Sans Libre:normal:300,5,1,7,body Averia Sans Libre:normal:400,5,1,7,header Averia Sans Libre:normal:700,6,1,7,header Averia Serif Libre:italic:300,5,4,7,header Averia Serif Libre:italic:400,5,4,7,header Averia Serif Libre:italic:700,6,4,7,header Averia Serif Libre:normal:300,5,1,7,header Averia Serif Libre:normal:400,6,1,7,header Averia Serif Libre:normal:700,6,1,7,header Bad Script:normal:400,2,5,6,header Balthazar:normal:400,5,1,6,header Bangers:normal:400,6,4,6,header Basic:normal:400,6,1,7,header Baumans:normal:400,5,1,7,body Bayon:normal:400,6,1,4,header Belgrano:normal:400,5,1,8,header Bellefair:normal:400,3,1,4,body Belleza:normal:400,5,1,6,body BenchNine:normal:300,3,1,1,header BenchNine:normal:400,4,1,2,header BenchNine:normal:700,5,1,4,header Benne:normal:400,3,1,4,body Bentham:normal:400,5,1,7,body Berkshire Swash:normal:400,7,1,7,body Bevan:normal:400,8,1,8,header Bhavuka:normal:400,4,1,6,header Bhu Tuka Extended One:normal:400,1,1,6,header Bigelow Rules:normal:400,3,1,2,header Bigshot One:normal:400,7,1,7,header Bilbo:normal:400,3,6,2,header Bilbo Swash Caps:normal:400,4,6,2,header BioRhyme Expanded:normal:200,2,1,9,header BioRhyme Expanded:normal:300,3,1,9,header BioRhyme Expanded:normal:400,4,1,9,header BioRhyme Expanded:normal:700,5,1,9,header BioRhyme Expanded:normal:800,7,1,9,header BioRhyme:normal:200,2,1,5,header BioRhyme:normal:300,3,1,5,header BioRhyme:normal:400,4,1,5,header BioRhyme:normal:700,5,1,5,header BioRhyme:normal:800,7,1,5,header Biryani:normal:200,2,1,5,body Biryani:normal:300,3,1,5,body Biryani:normal:400,4,1,5,body Biryani:normal:600,5,1,5,body Biryani:normal:700,6,1,5,body Biryani:normal:800,7,1,5,body Biryani:normal:900,8,1,5,body Bitter:italic:400,5,4,7,header Bitter:normal:400,5,1,7,body Bitter:normal:700,7,1,8,header Black Ops One:normal:400,9,1,8,header Bokor:normal:400,3,1,4,body Bonbon:normal:400,6,2,8,header Boogaloo:normal:400,6,1,6,header Bowlby One:normal:400,9,1,8,header Bowlby One SC:normal:400,9,1,8,header Brawler:normal:400,5,1,7,body Bree Serif:normal:400,6,1,7,body Bruno Ace:normal:400,5,1,8,header Bruno Ace SC:normal:400,5,1,9,header Bubblegum Sans:normal:400,6,1,6,header Bubbler One:normal:400,3,1,6,header Buda:normal:300,4,1,6,header Buenard:normal:400,5,1,7,body Buenard:normal:700,6,1,7,header Bungee Hairline:normal:400,7,1,8,header Bungee Inline:normal:400,7,1,8,header Bungee:normal:400,7,1,8,header Bungee Outline:normal:400,7,1,8,header Bungee Shade:normal:400,7,1,8,header Butcherman Caps:normal:400,6,1,8,header Butcherman:normal:400,6,1,8,header Butterfly Kids:normal:400,3,4,5,header Cabin Condensed:normal:400,5,1,6,header Cabin Condensed:normal:500,5,1,6,header Cabin Condensed:normal:600,6,1,6,header Cabin Condensed:normal:700,6,1,6,header Cabin:italic:400,5,4,6,header Cabin:italic:500,5,4,6,header Cabin:italic:600,6,4,7,header Cabin:italic:700,6,4,7,header Cabin:normal:400,5,1,7,body Cabin:normal:500,5,1,7,header Cabin:normal:600,6,1,7,header Cabin:normal:700,6,1,7,header Cabin Sketch:normal:400,4,1,7,body Cabin Sketch:normal:700,4,1,7,header Caesar Dressing:normal:400,6,1,7,header Cagliostro:normal:400,5,1,7,body Calligraffitti:normal:400,3,6,6,header Cambay:italic:400,5,4,7,header Cambay:italic:700,6,5,7,header Cambay:normal:400,5,1,7,body Cambay:normal:700,6,1,7,header Cambo:normal:400,5,1,7,body Candal:normal:400,8,1,8,body Cantarell:italic:400,4,6,7,header Cantarell:italic:700,6,6,8,header Cantarell:normal:400,4,1,7,body Cantarell:normal:700,6,1,8,header Cantata One:normal:400,6,1,8,body Cantora One:normal:400,6,1,7,header Capriola:normal:400,6,1,8,header Cardo:italic:400,4,5,6,header Cardo:normal:400,5,1,7,body Cardo:normal:700,6,1,7,body Carme:normal:400,5,1,7,body Carrois Gothic:normal:400,4,1,7,body Carrois Gothic SC:normal:400,4,1,7,header Carter One:normal:400,7,3,7,header Catamaran:normal:100,1,1,4,body Catamaran:normal:200,2,1,4,body Catamaran:normal:300,3,1,4,body Catamaran:normal:400,4,1,4,body Catamaran:normal:500,5,1,4,body Catamaran:normal:600,6,1,4,body Catamaran:normal:700,7,1,4,body Catamaran:normal:800,8,1,4,body Catamaran:normal:900,9,1,4,body Caudex:italic:400,5,5,7,header Caudex:italic:700,5,5,7,header Caudex:normal:400,5,1,7,body Caudex:normal:700,5,1,7,header Caveat Brush:normal:400,5,1,3,header Caveat:normal:400,3,6,3,body Caveat:normal:700,4,6,3,body Cedarville Cursive:normal:400,4,6,7,header Ceviche One:normal:400,8,5,6,header Changa:normal:200,2,1,4,header Changa:normal:300,3,1,4,header Changa:normal:400,3,1,4,header Changa:normal:500,4,1,4,header Changa:normal:600,5,1,4,header Changa:normal:700,6,1,4,header Changa:normal:800,7,1,4,header Changa:normal:900,8,1,4,header Changa One:italic:400,8,4,7,header Changa One:normal:400,8,1,7,header Chango:normal:400,10,1,9,header Chau Philomene One:italic:400,6,3,6,header Chau Philomene One:normal:400,6,1,6,header Chela One:normal:400,8,1,6,header Chelsea Market:normal:400,5,1,8,body Cherry Cream Soda:normal:400,7,1,8,header Cherry Swash:normal:400,7,1,7,body Cherry Swash:normal:700,9,1,8,header Chewy:normal:400,7,1,6,body Chicle:normal:400,6,1,6,header Chilanka:normal:400,3,1,4,body Chivo:italic:400,5,3,7,header Chivo:italic:900,8,3,7,header Chivo:normal:400,5,1,7,header Chivo:normal:900,8,1,7,header Cinzel Decorative:normal:400,3,1,8,header Cinzel Decorative:normal:700,5,1,8,header Cinzel Decorative:normal:900,6,1,9,header Cinzel:normal:400,4,1,8,header Cinzel:normal:700,6,1,8,header Cinzel:normal:900,8,1,8,header Clara:normal:400,5,6,7,header Clicker Script:normal:400,4,2,5,header Coda Caption:normal:800,8,1,8,header Coda:normal:400,5,1,7,body Coda:normal:800,9,1,8,header Codystar:normal:300,1,9,8,header Codystar:normal:400,1,1,8,header Combo:normal:400,4,1,6,header Comfortaa:normal:300,4,1,8,header Comfortaa:normal:400,4,1,8,body Comfortaa:normal:700,5,1,8,body Coming Soon:normal:400,3,1,7,header Concert One:normal:400,7,1,7,header Condiment:normal:400,5,9,6,header Contrail One:normal:400,6,3,6,header Convergence:normal:400,5,1,8,body Cookie:normal:400,5,1,5,header Copse:normal:400,5,1,7,header Corben:normal:400,5,1,7,header Corben:normal:700,9,1,9,header Courgette:normal:400,6,6,7,header Cousine:italic:400,5,4,8,header Cousine:italic:700,7,4,8,header Cousine:normal:400,5,1,8,header Cousine:normal:700,7,1,8,header Coustard:normal:400,5,1,8,header Coustard:normal:900,9,1,8,header Covered By Your Grace:normal:400,4,1,6,header Crafty Girls:normal:400,3,1,8,header Creepster Caps:normal:400,7,1,6,header Creepster:normal:400,7,1,6,header Crete Round:italic:400,5,4,7,header Crete Round:normal:400,5,1,7,body Crimson Text:italic:400,4,4,7,header Crimson Text:italic:600,5,4,7,header Crimson Text:italic:700,6,4,7,header Crimson Text:normal:400,5,1,7,body Crimson Text:normal:600,6,1,7,header Crimson Text:normal:700,6,1,7,header Croissant One:normal:400,6,1,8,body Crushed:normal:400,4,1,6,header Cuprum:italic:400,5,4,6,header Cuprum:italic:700,6,4,6,header Cuprum:normal:400,5,1,6,body Cuprum:normal:700,6,1,6,header Cutive Mono:normal:400,4,1,8,header Cutive:normal:400,5,1,8,header Damion:normal:400,5,8,6,header Dancing Script:normal:400,4,7,6,header Dancing Script:normal:700,4,7,6,header Dawning of a New Day:normal:400,2,5,6,header Days One:normal:400,7,1,8,header Dekko:normal:400,3,1,3,body Delius:normal:400,4,1,7,body Delius Swash Caps:normal:400,4,1,7,header Delius Unicase:normal:400,5,1,8,header Delius Unicase:normal:700,6,1,9,header Della Respira:normal:400,4,1,7,body Denk One:normal:400,6,1,7,header Devonshire:normal:400,5,3,5,header Dhurjati:normal:400,7,1,6,body Dhyana:normal:400,4,1,7,header Dhyana:normal:700,6,1,8,header Didact Gothic:normal:400,4,1,7,header Dinah:normal:400,5,1,5,body Dinah:normal:700,6,1,6,body Diplomata:normal:400,9,1,10,header Diplomata SC:normal:400,9,1,10,header Domine:normal:400,5,1,7,body Domine:normal:700,6,1,8,header Donegal One:normal:400,5,1,8,body Doppio One:normal:400,6,1,7,header Dorsa:normal:400,2,1,1,header Dosis:normal:200,2,1,6,header Dosis:normal:300,3,1,6,header Dosis:normal:400,4,1,6,header Dosis:normal:500,4,1,6,body Dosis:normal:600,5,1,6,body Dosis:normal:700,6,1,6,header Dosis:normal:800,7,1,7,header Droid Sans Mono:normal:400,5,1,8,header Droid Sans:normal:400,5,1,7,body Droid Sans:normal:700,7,1,7,header Droid Serif:italic:400,5,4,7,header Droid Serif:italic:700,6,5,8,header Droid Serif:normal:400,5,1,8,header Droid Serif:normal:700,6,1,8,header Dr Sugiyama:normal:400,4,1,5,header Duru Sans:normal:400,4,1,8,body Dynalight:normal:400,4,7,5,header Eagle Lake:normal:400,5,1,8,header Eater Caps:normal:400,5,1,8,header Eater:normal:400,5,1,8,header EB Garamond:normal:400,4,1,6,body Economica:italic:400,4,4,5,header Economica:italic:700,5,4,5,header Economica:normal:400,4,1,5,header Economica:normal:700,5,1,5,header Eczar:normal:400,5,1,3,header Eczar:normal:500,6,1,3,header Eczar:normal:600,7,1,3,header Eczar:normal:700,7,1,3,header Eczar:normal:800,8,1,3,header Ek Mukta:normal:200,4,1,6,header Ek Mukta:normal:300,4,1,6,body Ek Mukta:normal:400,5,1,7,body Ek Mukta:normal:500,6,1,7,header Ek Mukta:normal:600,6,1,7,header Ek Mukta:normal:700,7,1,7,header Ek Mukta:normal:800,7,1,7,header Electrolize:normal:400,5,1,7,body Elsie:normal:400,5,1,7,header Elsie:normal:900,7,1,8,header Elsie Swash Caps:normal:400,4,1,7,body Elsie Swash Caps:normal:900,6,1,8,header Emblema One:normal:400,8,3,8,header Emilys Candy:normal:400,5,1,7,body Encode Sans Compressed:normal:100,2,1,6,header Encode Sans Compressed:normal:200,3,1,6,header Encode Sans Compressed:normal:300,3,1,6,header Encode Sans Compressed:normal:400,4,1,6,header Encode Sans Compressed:normal:500,5,1,6,header Encode Sans Compressed:normal:600,5,1,6,header Encode Sans Compressed:normal:700,6,1,6,header Encode Sans Compressed:normal:800,7,1,7,header Encode Sans Compressed:normal:900,8,1,7,header Encode Sans Condensed:normal:100,2,1,6,header Encode Sans Condensed:normal:200,3,1,6,header Encode Sans Condensed:normal:300,4,1,6,header Encode Sans Condensed:normal:400,4,1,6,header Encode Sans Condensed:normal:500,5,1,7,body Encode Sans Condensed:normal:600,6,1,7,header Encode Sans Condensed:normal:700,7,1,7,header Encode Sans Condensed:normal:800,7,1,7,header Encode Sans Condensed:normal:900,8,1,7,header Encode Sans Narrow:normal:100,2,1,7,header Encode Sans Narrow:normal:200,3,1,7,header Encode Sans Narrow:normal:300,4,1,7,header Encode Sans Narrow:normal:400,4,1,7,header Encode Sans Narrow:normal:500,5,1,7,header Encode Sans Narrow:normal:600,6,1,7,header Encode Sans Narrow:normal:700,7,1,7,header Encode Sans Narrow:normal:800,7,1,7,header Encode Sans Narrow:normal:900,8,1,8,header Encode Sans:normal:100,3,1,7,header Encode Sans:normal:200,3,1,7,header Encode Sans:normal:300,4,1,7,header Encode Sans:normal:400,5,1,7,body Encode Sans:normal:500,5,1,7,header Encode Sans:normal:600,6,1,8,header Encode Sans:normal:700,7,1,8,header Encode Sans:normal:800,8,1,8,header Encode Sans:normal:900,8,1,8,header Encode Sans Wide:normal:100,3,1,7,header Encode Sans Wide:normal:200,3,1,7,header Encode Sans Wide:normal:300,4,1,7,header Encode Sans Wide:normal:400,5,1,8,header Encode Sans Wide:normal:500,6,1,8,header Encode Sans Wide:normal:600,6,1,8,header Encode Sans Wide:normal:700,7,1,8,header Encode Sans Wide:normal:800,8,1,8,header Encode Sans Wide:normal:900,8,1,8,header Engagement:normal:400,5,2,1,header Englebert:normal:400,4,1,6,body Enriqueta:normal:400,5,1,7,body Enriqueta:normal:700,6,1,7,header Erica One:normal:400,10,1,8,header Esteban:normal:400,4,1,7,body Euphoria Script:normal:400,4,4,5,header Ewert:normal:400,6,3,9,header Exo 2:italic:100,1,4,7,header Exo 2:italic:200,3,4,7,header Exo 2:italic:300,4,4,7,header Exo 2:italic:400,5,4,7,header Exo 2:italic:500,5,4,7,header Exo 2:italic:600,6,4,7,header Exo 2:italic:700,7,4,7,header Exo 2:italic:800,8,4,7,header Exo 2:italic:900,8,4,8,header Exo 2:normal:100,1,1,7,header Exo 2:normal:200,3,1,7,header Exo 2:normal:300,4,1,7,header Exo 2:normal:400,5,1,7,header Exo 2:normal:500,5,1,7,header Exo 2:normal:600,6,1,7,header Exo 2:normal:700,7,1,7,header Exo 2:normal:800,8,1,7,header Exo 2:normal:900,8,1,8,header Exo:italic:100,1,4,7,header Exo:italic:200,3,4,7,header Exo:italic:300,4,4,7,header Exo:italic:400,4,4,7,header Exo:italic:500,5,4,7,header Exo:italic:600,5,3,7,header Exo:italic:700,6,4,7,header Exo:italic:800,7,4,7,header Exo:italic:900,8,4,7,header Exo:normal:100,1,1,7,header Exo:normal:200,3,1,7,header Exo:normal:300,3,1,7,header Exo:normal:400,4,1,7,header Exo:normal:500,5,1,7,header Exo:normal:600,5,1,7,header Exo:normal:700,6,1,7,header Exo:normal:800,7,1,7,header Exo:normal:900,8,1,7,header Expletus Sans:italic:400,5,3,7,header Expletus Sans:italic:500,5,3,7,header Expletus Sans:italic:600,6,3,7,header Expletus Sans:italic:700,6,3,7,header Expletus Sans:normal:400,5,1,7,header Expletus Sans:normal:500,5,1,7,body Expletus Sans:normal:600,6,1,7,header Expletus Sans:normal:700,6,1,7,header Fanwood Text:italic:400,5,4,6,header Fanwood Text:normal:400,5,1,6,body Farsan:normal:400,3,3,3,body Fascinate Inline:normal:400,9,1,8,header Fascinate:normal:400,9,1,8,header Faster One:normal:400,9,4,8,header Fauna One:normal:400,4,1,8,body Federant:normal:400,6,1,7,header Federo:normal:400,5,1,6,header Felipa:normal:400,3,4,6,header Fenix:normal:400,5,1,6,body Finger Paint:normal:400,5,1,8,header Fira Sans:italic:300,4,3,7,header Fjalla One:normal:400,5,1,6,body Fjord One:normal:400,5,1,7,body Flamenco:normal:300,1,1,6,header Flamenco:normal:400,4,1,6,header Flavors:normal:400,5,1,7,body Fondamento:italic:400,5,4,7,header Fondamento:normal:400,5,1,7,header Fontdiner Swanky:normal:400,6,1,8,header Forum:normal:400,4,1,6,header Francois One:normal:400,6,1,7,body Freckle Face:normal:400,7,3,7,header Fredericka the Great:normal:400,4,1,7,header Fredoka One:normal:400,7,1,7,header Fresca:normal:400,5,1,6,body Frijole:normal:400,9,1,9,header Fruktur:normal:400,7,1,7,header Fugaz One:normal:400,7,4,8,header Gabriela:normal:400,5,1,8,body Gafata:normal:400,4,1,7,body Gafata:normal:400,4,1,7,body Galada:normal:400,5,4,4,header Galdeano:normal:400,5,1,6,header Galindo:normal:400,8,1,8,header Gentium Basic:italic:400,4,3,6,header Gentium Basic:italic:700,6,3,6,header Gentium Basic:normal:400,4,1,7,body Gentium Basic:normal:700,6,1,7,header Gentium Book Basic:italic:400,5,3,6,header Gentium Book Basic:italic:700,6,4,7,header Gentium Book Basic:normal:400,5,1,7,body Gentium Book Basic:normal:700,6,1,7,header Geo:italic:400,5,4,6,header Geo:normal:400,5,1,6,header Geostar Fill:normal:400,6,1,9,header Geostar:normal:400,4,1,9,header Germania One:normal:400,6,1,6,header GFS Didot:normal:400,5,1,7,body GFS Neohellenic:italic:400,4,5,6,header GFS Neohellenic:italic:700,6,5,7,header GFS Neohellenic:normal:400,4,1,6,header GFS Neohellenic:normal:700,6,1,6,header Gidugu:normal:400,7,1,4,header Gilda Display:normal:400,4,1,7,header Give You Glory:normal:400,3,1,7,header Glass Antiqua:normal:400,4,1,6,body Glegoo:normal:400,4,1,8,body Glegoo:normal:700,5,1,8,body Gloria Hallelujah:normal:400,4,1,8,header Goblin One:normal:400,8,1,9,header Gochi Hand:normal:400,6,1,7,header Gorditas:normal:400,6,1,8,header Gorditas:normal:700,8,1,8,header Goudy Bookletter 1911:normal:400,5,1,6,header Graduate:normal:400,5,1,8,header Grand Hotel:normal:400,5,1,5,header Gravitas One:normal:400,9,1,9,header Great Vibes:normal:400,4,8,5,header Griffy:normal:400,4,1,7,header Gruppo:normal:400,3,1,7,header Gudea:italic:400,4,4,6,header Gudea:normal:400,4,1,7,body Gudea:normal:700,6,1,7,header Gurajada:normal:400,6,1,4,header Habibi:normal:400,4,1,7,body Halant:normal:300,4,1,7,header Halant:normal:400,5,1,7,body Halant:normal:500,6,1,7,body Halant:normal:600,7,1,7,header Halant:normal:700,7,1,7,header Hammersmith One:normal:400,6,1,7,header Hanalei Fill:normal:400,7,1,7,header Hanalei:normal:400,3,1,7,header Handlee:normal:400,4,1,6,header Hanuman:normal:400,4,1,7,body Hanuman:normal:700,4,1,7,header Happy Monkey:normal:400,4,1,8,header Headland One:normal:400,5,1,8,body Heebo:normal:100,1,1,4,body Heebo:normal:300,3,1,4,body Heebo:normal:400,4,1,4,body Heebo:normal:500,6,1,4,body Heebo:normal:700,7,1,4,body Heebo:normal:800,9,1,4,body Heebo:normal:900,8,1,4,body Henny Penny:normal:400,4,1,7,header Hermeneus One:normal:400,5,1,7,body Herr Von Muellerhoff:normal:400,3,9,4,header Hind:normal:300,4,1,7,header Hind:normal:400,5,1,7,body Hind:normal:500,5,1,7,body Hind:normal:600,6,1,7,header Hind:normal:700,7,1,7,header Holtwood One SC:normal:400,9,1,9,header Homemade Apple:normal:400,5,6,8,header Homenaje:normal:400,5,1,5,header Iceberg:normal:400,5,1,6,header Iceland:normal:400,6,1,6,body IM Fell Double Pica:italic:400,5,6,6,header IM Fell Double Pica:normal:400,5,1,6,body IM Fell Double Pica SC:normal:400,5,1,7,header IM Fell DW Pica:italic:400,4,7,6,header IM Fell DW Pica:normal:400,5,1,6,header IM Fell DW Pica SC:normal:400,5,1,7,header IM Fell English:italic:400,5,6,6,header IM Fell English:normal:400,5,1,7,header IM Fell English SC:normal:400,5,1,7,header IM Fell French Canon:italic:400,5,7,6,header IM Fell French Canon:normal:400,5,1,7,header IM Fell French Canon SC:normal:400,5,1,7,header IM Fell Great Primer:italic:400,5,6,6,header IM Fell Great Primer:normal:400,5,2,6,header IM Fell Great Primer SC:normal:400,5,1,7,header Imprima:normal:400,4,1,7,body Inconsolata:normal:400,4,1,7,header Inconsolata:normal:700,6,1,7,header Inder:normal:400,5,1,7,header Indie Flower:normal:400,4,1,7,header Inika:normal:400,5,1,7,body Inika:normal:700,6,1,7,header Inknut Antiqua:normal:300,5,1,8,body Inknut Antiqua:normal:400,5,1,8,body Inknut Antiqua:normal:500,5,1,8,body Inknut Antiqua:normal:600,6,1,8,header Inknut Antiqua:normal:700,7,1,8,header Inknut Antiqua:normal:800,7,1,8,header Inknut Antiqua:normal:900,7,1,9,header Irish Grover:normal:400,6,1,7,header Irish Growler:normal:400,6,1,7,body Istok Web:italic:500,5,4,7,header Istok Web:italic:700,5,4,7,header Istok Web:normal:500,5,1,7,body Istok Web:normal:700,6,1,7,header Italiana:normal:400,4,1,7,header Italianno:normal:400,3,8,4,header Itim:normal:400,5,1,4,body Jacques Francois:normal:400,5,1,7,header Jacques Francois Shadow:normal:400,4,1,8,header Jaldi:normal:400,5,1,4,body Jaldi:normal:700,8,1,4,body Jim Nightshade:normal:400,4,4,5,header Jockey One:normal:400,6,1,6,header Jolly Lodger:normal:400,5,1,2,header Jomhuria:normal:400,8,1,3,header Josefin Sans:italic:100,1,4,6,header Josefin Sans:italic:300,3,3,6,header Josefin Sans:italic:400,4,3,6,header Josefin Sans:italic:600,5,3,6,header Josefin Sans:italic:700,6,3,6,header Josefin Sans:normal:100,1,1,6,header Josefin Sans:normal:300,3,1,6,header Josefin Sans:normal:400,4,1,6,header Josefin Sans:normal:600,5,1,6,header Josefin Sans:normal:700,6,1,6,body Josefin Sans Std Light:normal:400,3,1,6,header Josefin Slab:italic:100,1,1,7,header Josefin Slab:italic:300,1,4,7,header Josefin Slab:italic:400,3,3,7,header Josefin Slab:italic:600,4,3,7,header Josefin Slab:italic:700,4,3,7,header Josefin Slab:normal:100,1,1,7,header Josefin Slab:normal:300,1,1,7,header Josefin Slab:normal:400,3,1,7,header Josefin Slab:normal:600,4,1,7,header Josefin Slab:normal:700,4,1,7,body Joti One:normal:400,7,1,8,header Judson:italic:400,5,4,7,header Judson:normal:400,5,1,7,body Judson:normal:700,6,1,7,header Julee:normal:400,4,1,6,header Julius Sans One:normal:400,3,1,8,header Junge:normal:400,4,1,7,body Jura:normal:300,3,1,7,header Jura:normal:400,4,1,7,header Jura:normal:500,4,1,7,header Jura:normal:600,4,1,8,body Just Another Hand:normal:400,4,1,1,header Just Me Again Down Here:normal:400,4,1,5,header Kadwa:normal:400,6,1,5,body Kadwa:normal:700,9,1,5,body Kalam:normal:300,4,5,7,header Kalam:normal:400,5,5,7,header Kalam:normal:700,6,5,7,header Kameron:normal:400,5,1,7,body Kameron:normal:700,7,1,8,header Kanit:italic:100,1,5,4,body Kanit:italic:200,2,5,4,body Kanit:italic:300,3,5,4,body Kanit:italic:400,4,5,4,body Kanit:italic:500,5,5,4,body Kanit:italic:600,6,5,4,body Kanit:italic:700,7,5,4,body Kanit:italic:800,8,5,4,body Kanit:italic:900,9,5,4,body Kanit:normal:100,1,1,4,body Kanit:normal:200,2,1,4,body Kanit:normal:300,3,1,4,body Kanit:normal:400,4,1,4,body Kanit:normal:500,5,1,4,body Kanit:normal:600,6,1,4,body Kanit:normal:700,7,1,4,body Kanit:normal:800,8,1,4,body Kanit:normal:900,9,1,4,body Karla:italic:400,4,2,6,header Karla:italic:700,6,2,7,header Karla:normal:400,5,1,7,body Karla:normal:700,6,1,7,header Karma:normal:300,4,1,7,header Karma:normal:400,4,1,7,header Karma:normal:500,5,1,7,body Karma:normal:600,5,1,7,body Karma:normal:700,6,1,7,header Katibeh:normal:400,5,1,3,header Kaushan Script:normal:400,5,7,6,header Kavivanar:normal:400,2,1,3,header Kavoon:normal:400,8,1,8,header Keania One:normal:400,7,1,7,header Kelly Slab:normal:400,4,1,7,body Kenia:normal:400,6,1,6,body Khand:normal:500,5,1,6,body Khula:normal:300,3,1,7,header Khula:normal:400,4,1,7,body Khula:normal:700,7,1,7,header Khula:normal:800,8,1,8,header Kite One:normal:400,4,4,7,header Knewave:normal:400,8,7,7,header Kotta One:normal:400,4,3,7,header Kranky:normal:400,3,1,7,header Kreon:normal:300,4,1,6,body Kreon:normal:400,5,1,6,body Kreon:normal:700,6,1,7,header Kristi:normal:400,3,7,1,header Krona One:normal:400,6,1,9,header Kurale:normal:400,4,1,3,header La Belle Aurore:normal:400,5,8,7,header Laila:normal:300,4,1,7,header Laila:normal:400,4,1,7,body Laila:normal:500,5,1,7,body Laila:normal:600,6,1,8,header Laila:normal:700,7,1,8,header Lakki Reddy:normal:400,6,1,7,body Lancelot:normal:400,4,1,6,body Lateef:normal:400,5,1,5,body Lato:italic:100,1,6,6,header Lato:italic:300,3,4,6,header Lato:italic:400,5,3,6,header Lato:italic:700,6,3,7,header Lato:italic:900,7,3,7,header Lato:normal:100,1,1,6,header Lato:normal:300,3,1,7,header Lato:normal:400,5,1,7,body Lato:normal:700,6,1,7,header Lato:normal:900,7,1,7,header League Script:normal:400,1,8,7,header Leckerli One:normal:400,7,4,7,header Ledger:normal:400,5,1,8,body Lekton:italic:400,4,4,7,header Lekton:normal:400,4,1,7,header Lekton:normal:700,5,1,7,header Lemon:normal:400,8,4,8,header Lemon One:normal:400,8,4,8,header Libre Baskerville:italic:400,5,5,7,header Libre Baskerville:normal:400,5,1,8,body Libre Baskerville:normal:700,6,1,8,header Libre Caslon Text:italic:400,5,7,7,header Libre Caslon Text:normal:400,5,1,7,header Libre Caslon Text:normal:700,7,1,8,header Life Savers:normal:400,2,1,7,header Life Savers:normal:700,4,1,7,header Life Savers:normal:800,4,1,7,header Lilita One:normal:400,8,1,7,header Lily Script One:normal:400,7,3,7,header Limelight:normal:400,8,1,8,header Linden Hill:italic:400,4,2,5,header Linden Hill:normal:400,4,1,6,body Lobster:normal:400,5,5,6,header Lobster Two:italic:400,4,5,6,header Lobster Two:italic:700,5,5,6,header Lobster Two:normal:400,5,1,6,header Lobster Two:normal:700,5,1,6,header Londrina Outline:normal:400,1,1,6,header Londrina Shadow:normal:400,3,1,6,header Londrina Sketch:normal:400,3,1,6,header Londrina Solid:normal:400,6,1,6,header Lora:italic:400,4,2,7,header Lora:italic:700,6,3,7,header Lora:normal:400,4,1,7,body Lora:normal:700,6,1,7,header Loved by the King:normal:400,2,1,5,header Lovers Quarrel:normal:400,4,5,3,header Love Ya Like A Sister:normal:400,4,1,7,header Luckiest Guy:normal:400,8,1,8,header Lusitana:normal:400,5,1,7,header Lusitana:normal:700,6,1,7,header Lustria:normal:400,4,1,7,body Macondo:normal:400,4,1,7,header Macondo Swash Caps:normal:400,5,1,7,header Magra:normal:400,5,1,6,body Magra:normal:700,7,1,7,header Maiden Orange:normal:400,5,1,5,body Mako:normal:400,5,1,7,body Mallanna:normal:400,5,1,6,body Mandali:normal:400,5,1,7,body Marcellus:normal:400,5,1,7,body Marcellus SC:normal:400,5,1,7,header Marck Script:normal:400,6,7,7,header Margarine:normal:400,5,1,7,header Marko One:normal:400,6,1,8,header Marmelad:normal:400,5,1,7,header Martel:normal:300,3,1,4,body Martel:normal:400,4,1,4,body Martel:normal:600,5,1,4,body Martel:normal:700,6,1,4,body Martel:normal:800,7,1,4,body Martel:normal:900,8,1,4,body Martel Sans:normal:200,2,1,4,body Martel Sans:normal:300,3,1,4,body Martel Sans:normal:400,4,1,4,body Martel Sans:normal:600,5,1,4,body Martel Sans:normal:700,6,1,4,body Martel Sans:normal:800,7,1,4,body Martel Sans:normal:900,8,1,4,body Marvel:italic:400,3,4,6,header Marvel:italic:700,4,4,6,header Marvel:normal:400,3,1,6,header Marvel:normal:700,4,1,6,header Mate:italic:400,4,4,6,header Mate:normal:400,4,1,7,body Mate SC:normal:400,4,1,7,header Maven Pro:normal:400,4,1,7,body Maven Pro:normal:500,5,1,7,header Maven Pro:normal:700,6,1,7,header Maven Pro:normal:900,7,1,8,header McLaren:normal:400,5,1,8,header Meddon:normal:400,3,5,4,header MedievalSharp:normal:400,4,1,7,body Medula One:normal:400,4,1,1,header Megrim:normal:400,2,1,7,header Meie Script:normal:400,4,9,6,header Merge One:normal:400,5,1,7,body Merienda:normal:400,5,3,8,header Merienda:normal:700,6,3,8,header Merienda One:normal:400,6,3,8,header Merriweather:italic:300,4,3,7,header Merriweather:italic:400,5,3,7,header Merriweather:italic:700,6,3,7,header Merriweather:italic:900,7,3,7,header Merriweather:normal:300,4,1,8,header Merriweather:normal:400,5,1,8,header Merriweather:normal:700,6,1,8,header Merriweather:normal:900,7,1,8,header Merriweather Sans:italic:300,4,3,7,header Merriweather Sans:italic:400,5,3,7,header Merriweather Sans:italic:700,6,3,7,header Merriweather Sans:italic:800,7,3,7,header Merriweather Sans:normal:300,4,1,8,body Merriweather Sans:normal:400,5,1,8,body Merriweather Sans:normal:700,7,1,8,header Merriweather Sans:normal:800,7,1,8,header Mervale Script:normal:400,4,7,4,header Metal Mania:normal:400,5,1,6,header Metamorphous:normal:400,5,1,8,body Metrophobic:normal:400,4,1,7,body Miama:italic:400,3,8,8,header Michroma:normal:400,5,1,8,header Milonga:normal:400,4,1,7,body Miltonian:normal:400,4,1,8,header Miltonian Tattoo:normal:400,7,1,8,header Miniver:normal:400,4,5,7,header Miriam Libre:normal:400,2,1,3,body Miriam Libre:normal:700,6,1,3,body Miss Fajardose:normal:400,4,9,3,header Miss Saint Delafield:normal:400,4,9,4,header Modak:normal:400,10,1,4,header Modern Antiqua:normal:400,5,1,8,header Molengo:normal:400,5,1,7,body Molle:italic:400,6,8,7,header Monda:normal:400,5,1,7,header Monda:normal:700,6,1,7,header Monofett:normal:400,10,1,7,header Monoton:normal:400,6,1,8,header Monsieur La Doulaise:normal:400,3,10,5,header Montaga:normal:400,4,1,7,body Montez:normal:400,3,1,5,header Montserrat Alternates:normal:400,6,1,8,header Montserrat Alternates:normal:700,7,1,8,header Montserrat:normal:100,1,1,7,header Montserrat:normal:300,4,1,8,body Montserrat:normal:400,6,1,8,header Montserrat:normal:700,7,1,8,header Montserrat:normal:900,8,1,8,header Montserrat Subrayada:normal:400,6,1,8,header Montserrat Subrayada:normal:700,7,1,8,header Mountains of Christmas:normal:400,3,1,6,header Mountains of Christmas:normal:700,4,1,6,body Mouse Memoirs:normal:400,5,1,2,header Mr Bedford:normal:400,4,1,6,header Mr Bedfort:normal:400,4,1,6,header Mr Dafoe:normal:400,6,10,6,header Mr De Haviland:normal:400,3,9,4,header Mrs Saint Delafield:normal:400,4,9,4,header Mrs Sheppards:normal:400,8,10,5,header Muli:italic:300,4,2,7,header Muli:italic:400,4,2,7,header Muli:normal:300,4,1,7,header Muli:normal:400,4,1,7,body Mystery Quest:normal:400,4,1,7,header Nanum Brush Script:normal:400,4,1,5,header Nanum Gothic Coding:normal:400,4,1,10,header Nanum Gothic Coding:normal:700,5,1,10,body Nanum Gothic:normal:400,4,1,7,body Nanum Gothic:normal:600,5,1,7,body Nanum Gothic:normal:700,6,1,7,header Nanum Myeongjo:normal:400,4,1,7,header Nanum Myeongjo:normal:600,4,1,7,body Nanum Myeongjo:normal:700,5,1,7,header Nanum Pen Script:normal:400,5,1,6,header NATS:normal:400,6,1,6,body Neucha:normal:400,4,1,6,body Neuton:italic:400,5,4,6,header Neuton:normal:200,4,1,6,header Neuton:normal:300,4,1,6,body Neuton:normal:400,5,1,6,header Neuton:normal:700,7,1,6,header Neuton:normal:800,8,1,7,header New Rocker:normal:400,5,1,7,body News Cycle:normal:400,4,1,3,body News Cycle:normal:700,7,1,4,body Niconne:normal:400,6,6,5,header Nixie One:normal:400,2,1,8,header Nobile:italic:400,4,3,7,header Nobile:italic:500,5,4,7,header Nobile:italic:700,6,4,7,header Nobile:normal:400,4,1,7,body Nobile:normal:500,6,1,8,body Nobile:normal:700,7,1,8,header Norican:normal:400,6,5,6,header Nosifer Caps:normal:400,8,1,9,header Nosifer:normal:400,8,1,9,header Nothing You Could Do:normal:400,3,8,8,header Noticia Text:italic:400,5,3,7,header Noticia Text:italic:700,6,3,8,header Noticia Text:normal:400,5,1,7,body Noticia Text:normal:700,6,1,8,header Noto Sans:italic:400,5,5,7,header Noto Sans:italic:700,7,5,7,header Noto Sans:normal:400,5,1,7,body Noto Sans:normal:400,5,1,7,body Noto Sans:normal:700,7,1,8,header Noto Sans:normal:700,7,1,8,header Noto Sans UI:italic:400,5,5,7,header Noto Sans UI:italic:700,7,5,7,header Noto Sans UI:normal:400,5,1,7,header Noto Sans UI:normal:700,7,1,8,header Noto Serif:italic:400,5,4,7,header Noto Serif:italic:700,6,5,8,header Noto Serif:normal:400,5,1,8,header Noto Serif:normal:700,6,1,8,header Nova Cut:normal:400,5,1,8,header Nova Flat:normal:400,5,1,7,header Nova Mono:normal:400,4,1,8,header Nova Oval:normal:400,5,1,7,header Nova Round:normal:400,5,1,7,body Nova Script:normal:400,5,4,7,header Nova Slim:normal:400,5,1,7,header Nova Square:normal:400,5,1,7,header NTR:normal:400,5,1,6,body Numans:normal:400,5,1,8,body Nunito:normal:300,5,1,7,body Nunito:normal:400,6,1,7,header Nunito:normal:700,7,1,8,header Offside:normal:400,4,1,8,body OFL Sorts Mill Goudy TT:italic:400,4,4,6,header OFL Sorts Mill Goudy TT:normal:400,4,1,7,body Oldenburg:normal:400,4,1,8,body Old Standard TT:italic:400,4,5,7,header Old Standard TT:normal:400,5,1,7,body Old Standard TT:normal:700,6,1,7,body Oleo Script:normal:400,6,4,6,header Oleo Script:normal:700,7,4,6,header Oleo Script Swash Caps:normal:400,7,4,6,header Oleo Script Swash Caps:normal:700,8,4,6,header Open Sans Condensed:italic:300,3,4,5,header Open Sans Condensed:normal:300,3,1,5,header Open Sans Condensed:normal:700,6,1,6,header Open Sans:italic:300,3,5,7,header Open Sans:italic:400,4,5,7,header Open Sans:italic:600,6,4,7,header Open Sans:italic:700,7,5,7,header Open Sans:italic:800,8,5,8,header Open Sans:normal:300,3,1,7,header Open Sans:normal:400,4,1,7,body Open Sans:normal:600,6,1,7,header Open Sans:normal:700,7,1,8,header Open Sans:normal:800,8,1,8,header Oranienbaum:normal:400,4,1,6,body Orbitron:normal:400,4,1,8,header Orbitron:normal:500,5,1,8,header Orbitron:normal:700,6,1,8,header Orbitron:normal:900,7,1,8,header Oregano:italic:400,5,9,6,header Oregano:normal:400,5,1,5,body Orienta:normal:400,5,1,7,body Original Surfer:normal:400,6,1,7,header Oswald:normal:300,4,1,5,body Oswald:normal:400,5,1,6,body Oswald:normal:700,6,1,6,header Overlock:italic:400,4,3,6,header Overlock:italic:700,5,3,6,header Overlock:italic:900,7,3,7,header Overlock:normal:400,4,1,6,body Overlock:normal:700,5,1,7,body Overlock:normal:900,7,1,7,header Overlock SC:normal:400,4,1,7,header Over the Rainbow:normal:400,4,1,7,header Ovo:normal:400,4,1,7,header Oxygen Mono:normal:400,5,1,8,header Oxygen:normal:300,4,1,7,header Oxygen:normal:400,4,1,7,body Oxygen:normal:700,6,1,7,header Pacifico:normal:400,5,4,6,header Palanquin Dark:normal:400,6,1,7,header Palanquin Dark:normal:500,7,1,7,header Palanquin Dark:normal:600,7,1,7,header Palanquin Dark:normal:700,7,1,7,header Palanquin:normal:100,3,1,6,header Palanquin:normal:200,4,1,6,header Palanquin:normal:300,4,1,5,header Palanquin:normal:400,4,1,5,body Palanquin:normal:500,5,1,5,header Palanquin:normal:600,5,1,5,header Palanquin:normal:700,6,1,6,header Paprika:normal:400,4,3,8,header Parisienne:normal:400,5,8,6,header Passero One:normal:400,6,1,6,header Passion One:normal:400,8,1,6,header Passion One:normal:700,8,1,7,header Passion One:normal:900,9,1,7,header Pathway Gothic One:normal:400,4,1,5,header Patrick Hand:normal:400,5,1,6,header Patrick Hand SC:normal:400,5,1,6,header Patua One:normal:400,6,1,7,header Paytone One:normal:400,8,1,8,header Pecita:normal:400,4,1,7,header Peddana:normal:400,5,1,5,body Peralta:normal:400,5,1,8,header Permanent Marker:normal:400,7,6,8,header Petit Formal Script:normal:400,4,7,8,header Petrona:normal:400,5,1,7,body Philosopher:italic:400,5,4,7,header Philosopher:italic:700,6,4,7,header Philosopher:normal:400,5,1,7,body Philosopher:normal:700,6,1,7,header Piedra:normal:400,7,1,6,body Pinyon Script:normal:400,5,9,6,header Pirata One:normal:400,5,1,6,body Plaster:normal:400,9,1,9,header Playball:normal:400,5,7,6,header Playfair Display:italic:400,4,5,7,header Playfair Display:italic:700,6,5,7,header Playfair Display:italic:900,7,5,7,header Playfair Display:normal:400,4,1,7,header Playfair Display:normal:700,6,1,7,header Playfair Display:normal:900,7,1,7,header Playfair Display SC:italic:400,4,5,8,header Playfair Display SC:italic:700,6,5,8,header Playfair Display SC:italic:900,7,5,8,header Playfair Display SC:normal:400,4,1,8,header Playfair Display SC:normal:700,6,1,8,header Playfair Display SC:normal:900,7,1,8,header Play:normal:400,5,1,7,body Play:normal:700,7,1,7,header Podkova:normal:400,5,1,7,body Podkova:normal:700,7,1,7,header Poetsen One:normal:400,7,3,7,header Poiret One:normal:400,2,1,7,header Poller One:normal:400,9,1,8,header Poly:italic:400,5,4,7,header Poly:normal:400,5,1,7,body Pompiere:normal:400,3,1,5,header Pontano Sans:normal:400,4,1,7,body Poppins:normal:300,4,1,8,body Poppins:normal:400,5,1,8,body Poppins:normal:500,6,1,8,header Poppins:normal:600,6,1,8,header Porter Sans Block:normal:400,7,1,10,header Port Lligat Sans:normal:400,4,1,6,body Port Lligat Slab:normal:400,4,1,6,header Pragati Narrow:normal:400,4,1,3,body Pragati Narrow:normal:700,7,1,3,body Prata:normal:400,5,1,7,body Press Start 2P:normal:400,8,1,10,header Princess Sofia:normal:400,4,3,6,header Prociono:normal:400,5,1,7,body Prosto One:normal:400,6,1,8,header PT Mono:normal:400,5,1,8,header PT Sans Caption:normal:400,5,1,8,header PT Sans Caption:normal:700,6,1,8,header PT Sans:italic:400,4,5,6,header PT Sans:italic:700,6,5,6,header PT Sans Narrow:normal:400,4,1,6,body PT Sans Narrow:normal:700,6,1,6,header PT Sans:normal:400,5,1,7,header PT Sans:normal:700,6,1,7,header PT Serif Caption:italic:400,5,4,7,header PT Serif Caption:normal:400,5,1,8,header PT Serif:italic:400,5,4,7,header PT Serif:italic:700,6,4,7,header PT Serif:normal:400,5,1,7,body PT Serif:normal:700,6,1,7,header Puritan:italic:400,5,3,7,header Puritan:italic:700,6,3,7,header Puritan:normal:400,5,1,7,header Puritan:normal:700,6,1,7,body Purple Purse:normal:400,8,1,7,header Quando:normal:400,5,1,8,body Quantico:italic:400,5,3,7,header Quantico:italic:700,6,3,7,header Quantico:normal:400,5,1,7,body Quantico:normal:700,6,1,7,header Quattrocento:normal:400,4,1,7,header Quattrocento:normal:700,6,1,7,header Quattrocento Sans:italic:400,4,4,7,header Quattrocento Sans:italic:700,6,4,7,header Quattrocento Sans:normal:400,4,1,7,body Quattrocento Sans:normal:700,6,1,7,header Questrial:normal:400,4,1,7,header Quicksand:italic:300,2,4,8,header Quicksand:italic:400,3,4,8,header Quicksand:italic:700,5,4,8,header Quicksand:normal:300,1,1,8,header Quicksand:normal:400,3,1,8,header Quicksand:normal:700,5,1,8,header Quintessential:normal:400,4,1,6,header Qwigley:normal:400,3,7,4,header Racing Sans One:normal:400,8,5,7,header Radley:italic:400,5,5,7,header Radley:normal:400,5,1,7,header Rajdhani:normal:300,2,1,6,header Rajdhani:normal:400,4,1,6,header Rajdhani:normal:500,4,1,6,header Rajdhani:normal:600,5,1,6,header Rajdhani:normal:700,6,1,6,header Raleway Dots:normal:400,1,1,7,header Raleway:italic:100,1,4,7,header Raleway:italic:200,2,4,7,header Raleway:italic:300,3,4,7,header Raleway:italic:400,4,4,7,header Raleway:italic:500,5,4,7,header Raleway:italic:600,5,4,7,header Raleway:italic:700,6,4,7,header Raleway:italic:800,7,4,7,header Raleway:italic:900,8,4,7,header Raleway:normal:100,1,1,7,header Raleway:normal:200,2,1,7,header Raleway:normal:300,3,1,7,header Raleway:normal:400,4,1,7,header Raleway:normal:500,5,1,7,body Raleway:normal:600,5,1,7,header Raleway:normal:700,6,1,7,header Raleway:normal:800,7,1,7,header Raleway:normal:900,8,1,8,header Ramabhadra:normal:400,6,1,7,header Ramaraja:normal:400,6,1,6,body Rambla:italic:400,5,4,6,header Rambla:italic:700,7,4,7,header Rambla:normal:400,5,1,6,body Rambla:normal:700,6,1,7,header Rammetto One:normal:400,9,1,8,header Ranchers:normal:400,6,1,6,body Rancho:normal:400,5,1,5,header Ranga:normal:400,4,5,5,header Ranga:normal:700,6,5,5,header Rationale:normal:400,4,1,6,body Ravi Prakash:normal:400,7,1,6,header Redacted:normal:400,9,1,7,header Redacted Script:normal:400,4,1,7,header Redacted Script:normal:700,9,8,8,header Redressed:normal:400,5,1,6,body Reenie Beanie:normal:400,4,1,6,header Revalia:normal:400,5,1,9,header Rhodium Libre:normal:400,4,1,5,header Ribeye Marrow:normal:400,4,1,8,header Ribeye:normal:400,6,1,8,header Righteous:normal:400,6,1,7,body Risque:normal:400,5,2,7,header Roboto Condensed:italic:300,4,4,6,header Roboto Condensed:italic:400,5,4,6,header Roboto Condensed:italic:700,6,4,6,header Roboto Condensed:normal:300,4,1,6,header Roboto Condensed:normal:400,5,1,6,body Roboto Condensed:normal:700,6,1,6,header Roboto:italic:100,2,4,7,header Roboto:italic:300,4,4,7,header Roboto:italic:400,5,4,7,header Roboto:italic:500,6,4,7,header Roboto:italic:700,6,4,7,header Roboto:italic:900,7,4,7,header Roboto:normal:100,2,1,7,header Roboto:normal:300,4,1,7,header Roboto:normal:400,5,1,7,body Roboto:normal:500,6,1,7,header Roboto:normal:700,6,1,7,header Roboto:normal:900,7,1,7,header Roboto Slab:normal:100,2,1,7,header Roboto Slab:normal:300,4,1,7,header Roboto Slab:normal:400,5,1,7,header Roboto Slab:normal:700,6,1,7,header Rochester:normal:400,4,1,5,header Rock Salt:normal:400,4,2,8,header Rokkitt:normal:300,3,1,7,header Rokkitt:normal:400,5,1,6,header Rokkitt:normal:700,6,1,7,header Romanesco:normal:400,5,6,1,header Ropa Sans:italic:400,5,4,7,header Ropa Sans:normal:400,5,1,6,header Rosario:italic:400,5,3,6,header Rosario:italic:700,6,3,6,header Rosario:normal:400,5,1,7,header Rosario:normal:700,6,1,7,header Rosarivo:italic:400,4,4,7,header Rosarivo:normal:400,4,1,7,body Rouge Script:normal:400,4,4,5,header Rozha One:normal:400,7,1,7,body Rubik Mono One:normal:400,9,1,9,header Rubik One:normal:400,9,1,8,header Ruda:normal:400,4,1,7,body Ruda:normal:700,6,1,7,header Ruda:normal:900,7,1,8,header Rufina:normal:400,5,1,7,header Rufina:normal:700,6,1,7,body Ruge Boogie:normal:400,4,1,5,header Ruluko:normal:400,4,1,6,body Rum Raisin:normal:400,5,1,6,header Ruslan Display:normal:400,9,1,8,header Russo One:normal:400,7,1,8,body Ruthie:normal:400,4,7,4,header Rye:normal:400,7,1,8,header Sacramento:normal:400,4,1,5,header Sahitya:normal:400,3,1,4,body Sahitya:normal:700,7,1,4,body Sail:normal:400,5,4,6,header Salsa:normal:400,6,1,7,header Sanchez:italic:400,5,4,8,header Sanchez:normal:400,5,1,8,body Sancreek:normal:400,7,1,7,body Sansation:normal:300,3,1,7,header Sansation:normal:300,3,5,7,header Sansation:normal:400,5,1,7,body Sansation:normal:400,5,5,7,body Sansation:normal:700,6,1,7,header Sansation:normal:700,6,4,7,header Sansita One:normal:400,8,5,8,header Sarabun:italic:400,4,4,5,header Sarabun:italic:700,5,5,5,header Sarabun:normal:400,3,1,5,header Sarabun:normal:700,5,1,5,body Sarala:normal:400,4,1,5,body Sarala:normal:700,7,1,5,body Sarina:normal:400,8,7,8,header Sarpanch:normal:400,5,1,8,body Sarpanch:normal:500,6,1,8,header Sarpanch:normal:600,7,1,8,header Sarpanch:normal:700,8,1,8,header Sarpanch:normal:800,8,1,8,header Sarpanch:normal:900,9,1,8,header Satisfy:normal:400,4,5,6,header Scada:italic:400,5,4,7,header Scada:italic:700,6,4,7,header Scada:normal:400,5,1,7,body Scada:normal:700,6,1,7,header Scheherazade:normal:400,4,1,3,body Scheherazade:normal:700,4,1,3,body Schoolbell:normal:400,4,1,6,header Scope One:normal:400,2,1,5,header Seaweed Script:normal:400,4,7,6,header Secular One:normal:400,6,1,5,header Sedan:italic:400,5,8,6,header Sedan:normal:400,5,1,7,body Sedan SC:normal:400,5,1,7,header Sevillana:normal:400,4,1,6,header Seymour One:normal:400,10,1,9,header Shadows Into Light:normal:400,3,1,6,header Shadows Into Light Two:normal:400,3,1,6,header Shanti:normal:400,5,1,7,body Share:italic:400,5,3,6,header Share:italic:700,6,2,7,header Share:normal:400,5,1,6,header Share:normal:700,6,1,7,header Share Tech Mono:normal:400,5,1,8,header Share Tech:normal:400,5,1,6,header Shojumaru:normal:400,8,1,9,header Short Stack:normal:400,5,1,8,header Sigmar One:normal:400,10,1,8,header Signika Negative:normal:300,4,1,7,header Signika Negative:normal:400,5,1,7,body Signika Negative:normal:600,6,1,7,header Signika Negative:normal:700,7,1,7,header Signika:normal:300,4,1,7,body Signika:normal:400,5,1,7,header Signika:normal:600,6,1,7,header Signika:normal:700,7,1,7,header Simonetta:italic:400,4,1,6,header Simonetta:italic:900,7,2,7,header Simonetta:normal:400,4,1,6,body Simonetta:normal:900,7,1,7,header Sintony:normal:400,4,1,8,header Sintony:normal:700,6,1,8,header Sirin Stencil:normal:400,5,1,6,body Six Caps:normal:400,3,1,1,header Skranji:normal:400,7,1,7,body Skranji:normal:700,8,1,8,header Slabo 13px:normal:400,4,1,7,header Slabo 27px:normal:400,4,1,6,body Slackey:normal:400,7,1,8,header Smokum:normal:400,2,1,5,header Smythe:normal:400,5,1,5,header Sniglet:normal:400,5,1,7,header Sniglet:normal:800,9,1,8,header Snippet:normal:400,4,1,7,header Snowburst One:normal:400,3,1,8,header Sofadi One:normal:400,6,1,7,header Sofia:normal:400,4,1,7,header Sonsie One:normal:400,9,6,9,header Sorts Mill Goudy:italic:400,4,4,6,header Sorts Mill Goudy:normal:400,4,1,7,body Source Code Pro:normal:200,2,1,8,header Source Code Pro:normal:300,3,1,8,header Source Code Pro:normal:400,5,1,8,header Source Code Pro:normal:500,5,1,8,header Source Code Pro:normal:600,6,1,8,header Source Code Pro:normal:700,7,1,8,header Source Code Pro:normal:900,7,1,8,header Source Sans Pro:italic:200,2,5,6,header Source Sans Pro:italic:300,3,4,6,header Source Sans Pro:italic:400,4,5,6,header Source Sans Pro:italic:600,6,5,7,header Source Sans Pro:italic:700,6,5,7,header Source Sans Pro:italic:900,7,5,7,header Source Sans Pro:normal:200,2,1,6,header Source Sans Pro:normal:300,3,1,6,header Source Sans Pro:normal:400,5,1,7,body Source Sans Pro:normal:600,6,1,7,header Source Sans Pro:normal:700,7,1,7,header Source Sans Pro:normal:900,7,1,7,header Source Serif Pro:normal:400,5,1,7,header Source Serif Pro:normal:600,6,1,7,header Source Serif Pro:normal:700,6,1,7,header Special Elite:normal:400,4,1,8,header Spicy Rice:normal:400,8,1,6,header Spinnaker:normal:400,5,1,8,body Spirax:normal:400,4,1,7,body Squada One:normal:400,7,1,6,header Sree Krushnadevaraya:normal:400,6,1,6,body Stalemate:normal:400,3,1,3,header Stalinist One:normal:400,9,7,10,header Stalin One:normal:400,9,7,10,header Stardos Stencil:normal:400,6,1,7,body Stardos Stencil:normal:700,7,1,7,header Stint Ultra Condensed:normal:400,4,1,1,header Stint Ultra Expanded:normal:400,4,1,8,header Stoke:normal:300,5,1,8,header Stoke:normal:400,5,1,8,header Strait:normal:400,5,1,6,header Strong:normal:400,4,1,6,header Sue Ellen Francisco:normal:400,3,1,4,header Suez One:normal:400,9,1,5,header Sumana:normal:400,4,1,3,body Sumana:normal:700,7,1,3,body Sunshiney:normal:400,4,1,6,header Supermercado One:normal:400,5,1,7,header Suranna:normal:400,5,1,6,body Sura:normal:400,4,1,3,body Sura:normal:700,7,1,3,body Suravaram:normal:400,5,1,6,body Swanky and Moo Moo:normal:400,5,1,7,header Syncopate:normal:400,4,1,9,header Syncopate:normal:700,8,1,9,header Tangerine:normal:400,3,10,3,header Tangerine:normal:700,4,8,4,header Tauri:normal:400,5,1,7,header Teko:normal:300,4,1,1,header Teko:normal:400,5,1,2,header Teko:normal:500,6,1,5,body Teko:normal:600,7,1,6,header Teko:normal:700,8,1,6,header Telex:normal:400,5,1,7,body Tenali Ramakrishna:normal:400,5,1,6,body Tenor Sans:normal:400,5,1,8,body Terminal Dosis Light:normal:400,2,1,6,header Terminal Dosis:normal:200,2,1,6,header Terminal Dosis:normal:300,3,1,6,header Terminal Dosis:normal:400,4,1,6,header Terminal Dosis:normal:500,4,1,6,body Terminal Dosis:normal:600,5,1,6,body Terminal Dosis:normal:700,6,1,6,header Terminal Dosis:normal:800,7,1,7,header Text Me One:normal:400,3,1,7,body Thabit:italic:400,4,4,8,header Thabit:italic:700,5,4,8,header Thabit:normal:400,4,1,8,header Thabit:normal:700,6,1,8,header The Girl Next Door:normal:400,3,1,7,header Tienne:normal:400,5,1,8,header Tienne:normal:700,7,1,8,header Tienne:normal:900,8,1,8,header Tillana:normal:400,4,4,7,header Tillana:normal:500,5,5,7,header Tillana:normal:600,6,4,8,header Timmana:normal:400,7,3,6,header Tinos:italic:400,5,4,6,header Tinos:italic:700,6,4,7,header Tinos:normal:400,5,1,7,body Tinos:normal:700,7,1,7,header Titan One:normal:400,9,1,8,header Titillium Web:italic:200,2,5,6,header Titillium Web:italic:300,4,5,6,header Titillium Web:italic:400,4,5,6,header Titillium Web:italic:600,6,5,6,header Titillium Web:italic:700,6,5,6,header Titillium Web:normal:200,2,1,6,header Titillium Web:normal:300,4,1,7,header Titillium Web:normal:400,4,1,7,header Titillium Web:normal:600,5,1,7,header Titillium Web:normal:700,6,1,7,header Titillium Web:normal:900,9,1,7,header Trade Winds:normal:400,7,5,8,header Trocchi:normal:400,5,1,8,header Trochut:italic:400,5,5,6,header Trochut:normal:400,5,1,6,body Trochut:normal:700,7,1,6,header Trykker:normal:400,5,1,8,body Tuffy:italic:400,4,5,7,header Tuffy:italic:700,6,5,7,header Tuffy:normal:400,4,1,7,header Tuffy:normal:700,6,1,7,header Tulpen One:normal:400,3,1,1,header Ubuntu Condensed:normal:400,5,1,6,header Ubuntu:italic:300,4,5,7,header Ubuntu:italic:400,5,5,7,header Ubuntu:italic:500,6,5,7,header Ubuntu:italic:700,7,5,7,header Ubuntu Mono:italic:400,5,5,7,header Ubuntu Mono:italic:700,6,5,7,header Ubuntu Mono:normal:400,5,1,7,header Ubuntu Mono:normal:700,6,1,7,header Ubuntu:normal:300,4,1,7,header Ubuntu:normal:400,5,1,7,header Ubuntu:normal:500,6,1,7,header Ubuntu:normal:700,7,1,7,header Ultra:normal:400,9,1,9,header Uncial Antiqua:normal:400,5,1,8,header Underdog:normal:400,4,1,7,header Unica One:normal:400,4,1,7,body UnifrakturCook:normal:700,8,1,6,header UnifrakturMaguntia:normal:400,6,1,6,header Unkempt:normal:400,4,1,7,header Unkempt:normal:700,5,1,7,body Unlock:normal:400,8,1,8,header Unna:normal:400,5,1,6,header Vampiro One:normal:400,7,8,8,header Varela:normal:400,5,1,7,body Varela Round:normal:400,5,1,7,header Vast Shadow:normal:400,6,1,9,header Vesper Libre:normal:400,4,1,3,body Vesper Libre:normal:500,5,1,3,body Vesper Libre:normal:700,7,1,3,body Vesper Libre:normal:900,8,1,3,body Vibur:normal:400,5,3,6,header Vidaloka:normal:400,5,1,7,header Viga:normal:400,6,1,7,header Voces:normal:400,5,1,7,header Volkhov:italic:400,5,5,7,header Volkhov:italic:700,6,5,7,header Volkhov:normal:400,6,1,8,header Volkhov:normal:700,7,1,8,header Vollkorn:italic:400,5,4,6,header Vollkorn:italic:700,8,4,7,header Vollkorn:normal:400,5,1,7,body Vollkorn:normal:700,8,1,8,header Voltaire:normal:400,4,1,6,body VT323:normal:400,5,1,6,body Waiting for the Sunrise:normal:400,2,1,6,header Wallpoet:normal:400,7,1,8,header Walter Turncoat:normal:400,5,1,7,header Warnes:normal:400,5,1,8,header Wellfleet:normal:400,5,1,8,body Wendy One:normal:400,9,1,7,header Wire One:normal:400,1,1,1,header Work Sans:normal:100,1,1,3,body Work Sans:normal:200,2,1,3,body Work Sans:normal:300,3,1,3,body Work Sans:normal:400,4,1,3,body Work Sans:normal:500,5,1,3,body Work Sans:normal:600,6,1,3,body Work Sans:normal:700,7,1,3,body Work Sans:normal:800,8,1,3,body Work Sans:normal:900,9,1,3,body Yanone Kaffeesatz:normal:200,1,1,5,header Yanone Kaffeesatz:normal:300,3,1,5,header Yanone Kaffeesatz:normal:400,4,1,5,header Yanone Kaffeesatz:normal:700,6,1,2,header Yantramanav:normal:100,1,1,3,body Yantramanav:normal:300,3,1,3,body Yantramanav:normal:400,5,1,3,body Yantramanav:normal:500,6,1,3,body Yantramanav:normal:700,7,1,3,body Yantramanav:normal:900,8,1,3,body Yellowtail:normal:400,6,8,5,header Yeseva One:normal:400,7,1,8,header Yesteryear:normal:400,6,7,5,header Zeyada:normal:400,3,1,6,header nametest.nam000066400000000000000000001010761376445505300134140ustar00rootroot000000000000000x21 EXCLAMATION MARK 0x22 QUOTATION MARK 0x23 NUMBER SIGN 0x24 DOLLAR SIGN 0x25 PERCENT SIGN 0x26 AMPERSAND 0x27 APOSTROPHE 0x28 LEFT PARENTHESIS 0x29 RIGHT PARENTHESIS 0x2a ASTERISK 0x2b PLUS SIGN 0x2c COMMA 0x2d HYPHEN-MINUS 0x2e FULL STOP 0x2f SOLIDUS 0x30 DIGIT ZERO 0x31 DIGIT ONE 0x32 DIGIT TWO 0x33 DIGIT THREE 0x34 DIGIT FOUR 0x35 DIGIT FIVE 0x36 DIGIT SIX 0x37 DIGIT SEVEN 0x38 DIGIT EIGHT 0x39 DIGIT NINE 0x3a COLON 0x3b SEMICOLON 0x3c LESS-THAN SIGN 0x3d EQUALS SIGN 0x3e GREATER-THAN SIGN 0x3f QUESTION MARK 0x40 COMMERCIAL AT 0x41 LATIN CAPITAL LETTER A 0x42 LATIN CAPITAL LETTER B 0x43 LATIN CAPITAL LETTER C 0x44 LATIN CAPITAL LETTER D 0x45 LATIN CAPITAL LETTER E 0x46 LATIN CAPITAL LETTER F 0x47 LATIN CAPITAL LETTER G 0x48 LATIN CAPITAL LETTER H 0x49 LATIN CAPITAL LETTER I 0x4a LATIN CAPITAL LETTER J 0x4b LATIN CAPITAL LETTER K 0x4c LATIN CAPITAL LETTER L 0x4d LATIN CAPITAL LETTER M 0x4e LATIN CAPITAL LETTER N 0x4f LATIN CAPITAL LETTER O 0x50 LATIN CAPITAL LETTER P 0x51 LATIN CAPITAL LETTER Q 0x52 LATIN CAPITAL LETTER R 0x53 LATIN CAPITAL LETTER S 0x54 LATIN CAPITAL LETTER T 0x55 LATIN CAPITAL LETTER U 0x56 LATIN CAPITAL LETTER V 0x57 LATIN CAPITAL LETTER W 0x58 LATIN CAPITAL LETTER X 0x59 LATIN CAPITAL LETTER Y 0x5a LATIN CAPITAL LETTER Z 0x5b LEFT SQUARE BRACKET 0x5c REVERSE SOLIDUS 0x5d RIGHT SQUARE BRACKET 0x5e CIRCUMFLEX ACCENT 0x5f LOW LINE 0x60 GRAVE ACCENT 0x61 LATIN SMALL LETTER A 0x62 LATIN SMALL LETTER B 0x63 LATIN SMALL LETTER C 0x64 LATIN SMALL LETTER D 0x65 LATIN SMALL LETTER E 0x66 LATIN SMALL LETTER F 0x67 LATIN SMALL LETTER G 0x68 LATIN SMALL LETTER H 0x69 LATIN SMALL LETTER I 0x6a LATIN SMALL LETTER J 0x6b LATIN SMALL LETTER K 0x6c LATIN SMALL LETTER L 0x6d LATIN SMALL LETTER M 0x6e LATIN SMALL LETTER N 0x6f LATIN SMALL LETTER O 0x70 LATIN SMALL LETTER P 0x71 LATIN SMALL LETTER Q 0x72 LATIN SMALL LETTER R 0x73 LATIN SMALL LETTER S 0x74 LATIN SMALL LETTER T 0x75 LATIN SMALL LETTER U 0x76 LATIN SMALL LETTER V 0x77 LATIN SMALL LETTER W 0x78 LATIN SMALL LETTER X 0x79 LATIN SMALL LETTER Y 0x7a LATIN SMALL LETTER Z 0x7b LEFT CURLY BRACKET 0x7c VERTICAL LINE 0x7d RIGHT CURLY BRACKET 0x7e TILDE 0xa1 INVERTED EXCLAMATION MARK 0xa2 CENT SIGN 0xa3 POUND SIGN 0xa4 CURRENCY SIGN 0xa5 YEN SIGN 0xa6 BROKEN BAR 0xa7 SECTION SIGN 0xa8 DIAERESIS 0xa9 COPYRIGHT SIGN 0xaa FEMININE ORDINAL INDICATOR 0xab LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0xac NOT SIGN 0xad SOFT HYPHEN 0xae REGISTERED SIGN 0xaf MACRON 0xb0 DEGREE SIGN 0xb1 PLUS-MINUS SIGN 0xb2 SUPERSCRIPT TWO 0xb3 SUPERSCRIPT THREE 0xb4 ACUTE ACCENT 0xb5 MICRO SIGN 0xb6 PILCROW SIGN 0xb7 MIDDLE DOT 0xb8 CEDILLA 0xb9 SUPERSCRIPT ONE 0xba MASCULINE ORDINAL INDICATOR 0xbb RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0xbc VULGAR FRACTION ONE QUARTER 0xbd VULGAR FRACTION ONE HALF 0xbe VULGAR FRACTION THREE QUARTERS 0xbf INVERTED QUESTION MARK 0xc0 LATIN CAPITAL LETTER A WITH GRAVE 0xc1 LATIN CAPITAL LETTER A WITH ACUTE 0xc2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0xc3 LATIN CAPITAL LETTER A WITH TILDE 0xc4 LATIN CAPITAL LETTER A WITH DIAERESIS 0xc5 LATIN CAPITAL LETTER A WITH RING ABOVE 0xc6 LATIN CAPITAL LETTER AE 0xc7 LATIN CAPITAL LETTER C WITH CEDILLA 0xc8 LATIN CAPITAL LETTER E WITH GRAVE 0xc9 LATIN CAPITAL LETTER E WITH ACUTE 0xca LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0xcb LATIN CAPITAL LETTER E WITH DIAERESIS 0xcc LATIN CAPITAL LETTER I WITH GRAVE 0xcd LATIN CAPITAL LETTER I WITH ACUTE 0xce LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0xcf LATIN CAPITAL LETTER I WITH DIAERESIS 0xd0 LATIN CAPITAL LETTER ETH 0xd1 LATIN CAPITAL LETTER N WITH TILDE 0xd2 LATIN CAPITAL LETTER O WITH GRAVE 0xd3 LATIN CAPITAL LETTER O WITH ACUTE 0xd4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0xd5 LATIN CAPITAL LETTER O WITH TILDE 0xd6 LATIN CAPITAL LETTER O WITH DIAERESIS 0xd7 MULTIPLICATION SIGN 0xd8 LATIN CAPITAL LETTER O WITH STROKE 0xd9 LATIN CAPITAL LETTER U WITH GRAVE 0xda LATIN CAPITAL LETTER U WITH ACUTE 0xdb LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0xdc LATIN CAPITAL LETTER U WITH DIAERESIS 0xdd LATIN CAPITAL LETTER Y WITH ACUTE 0xde LATIN CAPITAL LETTER THORN 0xdf LATIN SMALL LETTER SHARP S 0xe0 LATIN SMALL LETTER A WITH GRAVE 0xe1 LATIN SMALL LETTER A WITH ACUTE 0xe2 LATIN SMALL LETTER A WITH CIRCUMFLEX 0xe3 LATIN SMALL LETTER A WITH TILDE 0xe4 LATIN SMALL LETTER A WITH DIAERESIS 0xe5 LATIN SMALL LETTER A WITH RING ABOVE 0xe6 LATIN SMALL LETTER AE 0xe7 LATIN SMALL LETTER C WITH CEDILLA 0xe8 LATIN SMALL LETTER E WITH GRAVE 0xe9 LATIN SMALL LETTER E WITH ACUTE 0xea LATIN SMALL LETTER E WITH CIRCUMFLEX 0xeb LATIN SMALL LETTER E WITH DIAERESIS 0xec LATIN SMALL LETTER I WITH GRAVE 0xed LATIN SMALL LETTER I WITH ACUTE 0xee LATIN SMALL LETTER I WITH CIRCUMFLEX 0xef LATIN SMALL LETTER I WITH DIAERESIS 0xf0 LATIN SMALL LETTER ETH 0xf1 LATIN SMALL LETTER N WITH TILDE 0xf2 LATIN SMALL LETTER O WITH GRAVE 0xf3 LATIN SMALL LETTER O WITH ACUTE 0xf4 LATIN SMALL LETTER O WITH CIRCUMFLEX 0xf5 LATIN SMALL LETTER O WITH TILDE 0xf6 LATIN SMALL LETTER O WITH DIAERESIS 0xf7 DIVISION SIGN 0xf8 LATIN SMALL LETTER O WITH STROKE 0xf9 LATIN SMALL LETTER U WITH GRAVE 0xfa LATIN SMALL LETTER U WITH ACUTE 0xfb LATIN SMALL LETTER U WITH CIRCUMFLEX 0xfc LATIN SMALL LETTER U WITH DIAERESIS 0xfd LATIN SMALL LETTER Y WITH ACUTE 0xfe LATIN SMALL LETTER THORN 0xff LATIN SMALL LETTER Y WITH DIAERESIS 0x100 LATIN CAPITAL LETTER A WITH MACRON 0x101 LATIN SMALL LETTER A WITH MACRON 0x102 LATIN CAPITAL LETTER A WITH BREVE 0x103 LATIN SMALL LETTER A WITH BREVE 0x104 LATIN CAPITAL LETTER A WITH OGONEK 0x105 LATIN SMALL LETTER A WITH OGONEK 0x106 LATIN CAPITAL LETTER C WITH ACUTE 0x107 LATIN SMALL LETTER C WITH ACUTE 0x10a LATIN CAPITAL LETTER C WITH DOT ABOVE 0x10b LATIN SMALL LETTER C WITH DOT ABOVE 0x10c LATIN CAPITAL LETTER C WITH CARON 0x10d LATIN SMALL LETTER C WITH CARON 0x10e LATIN CAPITAL LETTER D WITH CARON 0x10f LATIN SMALL LETTER D WITH CARON 0x110 LATIN CAPITAL LETTER D WITH STROKE 0x111 LATIN SMALL LETTER D WITH STROKE 0x112 LATIN CAPITAL LETTER E WITH MACRON 0x113 LATIN SMALL LETTER E WITH MACRON 0x116 LATIN CAPITAL LETTER E WITH DOT ABOVE 0x117 LATIN SMALL LETTER E WITH DOT ABOVE 0x118 LATIN CAPITAL LETTER E WITH OGONEK 0x119 LATIN SMALL LETTER E WITH OGONEK 0x11a LATIN CAPITAL LETTER E WITH CARON 0x11b LATIN SMALL LETTER E WITH CARON 0x11e LATIN CAPITAL LETTER G WITH BREVE 0x11f LATIN SMALL LETTER G WITH BREVE 0x120 LATIN CAPITAL LETTER G WITH DOT ABOVE 0x121 LATIN SMALL LETTER G WITH DOT ABOVE 0x122 LATIN CAPITAL LETTER G WITH CEDILLA 0x123 LATIN SMALL LETTER G WITH CEDILLA 0x126 LATIN CAPITAL LETTER H WITH STROKE 0x127 LATIN SMALL LETTER H WITH STROKE 0x12a LATIN CAPITAL LETTER I WITH MACRON 0x12b LATIN SMALL LETTER I WITH MACRON 0x12e LATIN CAPITAL LETTER I WITH OGONEK 0x12f LATIN SMALL LETTER I WITH OGONEK 0x130 LATIN CAPITAL LETTER I WITH DOT ABOVE 0x131 LATIN SMALL LETTER DOTLESS I 0x132 LATIN CAPITAL LIGATURE IJ 0x133 LATIN SMALL LIGATURE IJ 0x136 LATIN CAPITAL LETTER K WITH CEDILLA 0x137 LATIN SMALL LETTER K WITH CEDILLA 0x139 LATIN CAPITAL LETTER L WITH ACUTE 0x13a LATIN SMALL LETTER L WITH ACUTE 0x13b LATIN CAPITAL LETTER L WITH CEDILLA 0x13c LATIN SMALL LETTER L WITH CEDILLA 0x13d LATIN CAPITAL LETTER L WITH CARON 0x13e LATIN SMALL LETTER L WITH CARON 0x13f LATIN CAPITAL LETTER L WITH MIDDLE DOT 0x140 LATIN SMALL LETTER L WITH MIDDLE DOT 0x141 LATIN CAPITAL LETTER L WITH STROKE 0x142 LATIN SMALL LETTER L WITH STROKE 0x143 LATIN CAPITAL LETTER N WITH ACUTE 0x144 LATIN SMALL LETTER N WITH ACUTE 0x145 LATIN CAPITAL LETTER N WITH CEDILLA 0x146 LATIN SMALL LETTER N WITH CEDILLA 0x147 LATIN CAPITAL LETTER N WITH CARON 0x148 LATIN SMALL LETTER N WITH CARON 0x14a LATIN CAPITAL LETTER ENG 0x14b LATIN SMALL LETTER ENG 0x14c LATIN CAPITAL LETTER O WITH MACRON 0x14d LATIN SMALL LETTER O WITH MACRON 0x150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0x151 LATIN SMALL LETTER O WITH DOUBLE ACUTE 0x152 LATIN CAPITAL LIGATURE OE 0x153 LATIN SMALL LIGATURE OE 0x154 LATIN CAPITAL LETTER R WITH ACUTE 0x155 LATIN SMALL LETTER R WITH ACUTE 0x156 LATIN CAPITAL LETTER R WITH CEDILLA 0x157 LATIN SMALL LETTER R WITH CEDILLA 0x158 LATIN CAPITAL LETTER R WITH CARON 0x159 LATIN SMALL LETTER R WITH CARON 0x15a LATIN CAPITAL LETTER S WITH ACUTE 0x15b LATIN SMALL LETTER S WITH ACUTE 0x15e LATIN CAPITAL LETTER S WITH CEDILLA 0x15f LATIN SMALL LETTER S WITH CEDILLA 0x160 LATIN CAPITAL LETTER S WITH CARON 0x161 LATIN SMALL LETTER S WITH CARON 0x162 LATIN CAPITAL LETTER T WITH CEDILLA 0x163 LATIN SMALL LETTER T WITH CEDILLA 0x164 LATIN CAPITAL LETTER T WITH CARON 0x165 LATIN SMALL LETTER T WITH CARON 0x166 LATIN CAPITAL LETTER T WITH STROKE 0x167 LATIN SMALL LETTER T WITH STROKE 0x16a LATIN CAPITAL LETTER U WITH MACRON 0x16b LATIN SMALL LETTER U WITH MACRON 0x16e LATIN CAPITAL LETTER U WITH RING ABOVE 0x16f LATIN SMALL LETTER U WITH RING ABOVE 0x170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0x171 LATIN SMALL LETTER U WITH DOUBLE ACUTE 0x172 LATIN CAPITAL LETTER U WITH OGONEK 0x173 LATIN SMALL LETTER U WITH OGONEK 0x174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0x175 LATIN SMALL LETTER W WITH CIRCUMFLEX 0x176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0x177 LATIN SMALL LETTER Y WITH CIRCUMFLEX 0x178 LATIN CAPITAL LETTER Y WITH DIAERESIS 0x179 LATIN CAPITAL LETTER Z WITH ACUTE 0x17a LATIN SMALL LETTER Z WITH ACUTE 0x17b LATIN CAPITAL LETTER Z WITH DOT ABOVE 0x17c LATIN SMALL LETTER Z WITH DOT ABOVE 0x17d LATIN CAPITAL LETTER Z WITH CARON 0x17e LATIN SMALL LETTER Z WITH CARON 0x192 LATIN SMALL LETTER F WITH HOOK 0x218 LATIN CAPITAL LETTER S WITH COMMA BELOW 0x219 LATIN SMALL LETTER S WITH COMMA BELOW 0x21a LATIN CAPITAL LETTER T WITH COMMA BELOW 0x21b LATIN SMALL LETTER T WITH COMMA BELOW 0x2c6 MODIFIER LETTER CIRCUMFLEX ACCENT 0x2c7 CARON 0x2d8 BREVE 0x2d9 DOT ABOVE 0x2da RING ABOVE 0x2db OGONEK 0x2dc SMALL TILDE 0x2dd DOUBLE ACUTE ACCENT 0x300 COMBINING GRAVE ACCENT 0x301 COMBINING ACUTE ACCENT 0x302 COMBINING CIRCUMFLEX ACCENT 0x303 COMBINING TILDE 0x304 COMBINING MACRON 0x306 COMBINING BREVE 0x307 COMBINING DOT ABOVE 0x308 COMBINING DIAERESIS 0x30a COMBINING RING ABOVE 0x30b COMBINING DOUBLE ACUTE ACCENT 0x30c COMBINING CARON 0x326 COMBINING COMMA BELOW 0x327 COMBINING CEDILLA 0x328 COMBINING OGONEK 0x394 GREEK CAPITAL LETTER DELTA 0x3a9 GREEK CAPITAL LETTER OMEGA 0x3c0 GREEK SMALL LETTER PI 0x401 CYRILLIC CAPITAL LETTER IO 0x402 CYRILLIC CAPITAL LETTER DJE 0x408 CYRILLIC CAPITAL LETTER JE 0x409 CYRILLIC CAPITAL LETTER LJE 0x40a CYRILLIC CAPITAL LETTER NJE 0x40b CYRILLIC CAPITAL LETTER TSHE 0x40f CYRILLIC CAPITAL LETTER DZHE 0x410 CYRILLIC CAPITAL LETTER A 0x411 CYRILLIC CAPITAL LETTER BE 0x412 CYRILLIC CAPITAL LETTER VE 0x413 CYRILLIC CAPITAL LETTER GHE 0x414 CYRILLIC CAPITAL LETTER DE 0x415 CYRILLIC CAPITAL LETTER IE 0x416 CYRILLIC CAPITAL LETTER ZHE 0x417 CYRILLIC CAPITAL LETTER ZE 0x418 CYRILLIC CAPITAL LETTER I 0x419 CYRILLIC CAPITAL LETTER SHORT I 0x41a CYRILLIC CAPITAL LETTER KA 0x41b CYRILLIC CAPITAL LETTER EL 0x41c CYRILLIC CAPITAL LETTER EM 0x41d CYRILLIC CAPITAL LETTER EN 0x41e CYRILLIC CAPITAL LETTER O 0x41f CYRILLIC CAPITAL LETTER PE 0x420 CYRILLIC CAPITAL LETTER ER 0x421 CYRILLIC CAPITAL LETTER ES 0x422 CYRILLIC CAPITAL LETTER TE 0x423 CYRILLIC CAPITAL LETTER U 0x424 CYRILLIC CAPITAL LETTER EF 0x425 CYRILLIC CAPITAL LETTER HA 0x426 CYRILLIC CAPITAL LETTER TSE 0x427 CYRILLIC CAPITAL LETTER CHE 0x428 CYRILLIC CAPITAL LETTER SHA 0x429 CYRILLIC CAPITAL LETTER SHCHA 0x42a CYRILLIC CAPITAL LETTER HARD SIGN 0x42b CYRILLIC CAPITAL LETTER YERU 0x42c CYRILLIC CAPITAL LETTER SOFT SIGN 0x42d CYRILLIC CAPITAL LETTER E 0x42e CYRILLIC CAPITAL LETTER YU 0x42f CYRILLIC CAPITAL LETTER YA 0x430 CYRILLIC SMALL LETTER A 0x431 CYRILLIC SMALL LETTER BE 0x432 CYRILLIC SMALL LETTER VE 0x433 CYRILLIC SMALL LETTER GHE 0x434 CYRILLIC SMALL LETTER DE 0x435 CYRILLIC SMALL LETTER IE 0x436 CYRILLIC SMALL LETTER ZHE 0x437 CYRILLIC SMALL LETTER ZE 0x438 CYRILLIC SMALL LETTER I 0x439 CYRILLIC SMALL LETTER SHORT I 0x43a CYRILLIC SMALL LETTER KA 0x43b CYRILLIC SMALL LETTER EL 0x43c CYRILLIC SMALL LETTER EM 0x43d CYRILLIC SMALL LETTER EN 0x43e CYRILLIC SMALL LETTER O 0x43f CYRILLIC SMALL LETTER PE 0x440 CYRILLIC SMALL LETTER ER 0x441 CYRILLIC SMALL LETTER ES 0x442 CYRILLIC SMALL LETTER TE 0x443 CYRILLIC SMALL LETTER U 0x444 CYRILLIC SMALL LETTER EF 0x445 CYRILLIC SMALL LETTER HA 0x446 CYRILLIC SMALL LETTER TSE 0x447 CYRILLIC SMALL LETTER CHE 0x448 CYRILLIC SMALL LETTER SHA 0x449 CYRILLIC SMALL LETTER SHCHA 0x44a CYRILLIC SMALL LETTER HARD SIGN 0x44b CYRILLIC SMALL LETTER YERU 0x44c CYRILLIC SMALL LETTER SOFT SIGN 0x44d CYRILLIC SMALL LETTER E 0x44e CYRILLIC SMALL LETTER YU 0x44f CYRILLIC SMALL LETTER YA 0x451 CYRILLIC SMALL LETTER IO 0x452 CYRILLIC SMALL LETTER DJE 0x458 CYRILLIC SMALL LETTER JE 0x459 CYRILLIC SMALL LETTER LJE 0x45a CYRILLIC SMALL LETTER NJE 0x45b CYRILLIC SMALL LETTER TSHE 0x45f CYRILLIC SMALL LETTER DZHE 0x1e80 LATIN CAPITAL LETTER W WITH GRAVE 0x1e81 LATIN SMALL LETTER W WITH GRAVE 0x1e82 LATIN CAPITAL LETTER W WITH ACUTE 0x1e83 LATIN SMALL LETTER W WITH ACUTE 0x1e84 LATIN CAPITAL LETTER W WITH DIAERESIS 0x1e85 LATIN SMALL LETTER W WITH DIAERESIS 0x1e9e LATIN CAPITAL LETTER SHARP S 0x1ef2 LATIN CAPITAL LETTER Y WITH GRAVE 0x1ef3 LATIN SMALL LETTER Y WITH GRAVE 0x2013 EN DASH 0x2014 EM DASH 0x2018 LEFT SINGLE QUOTATION MARK 0x2019 RIGHT SINGLE QUOTATION MARK 0x201a SINGLE LOW-9 QUOTATION MARK 0x201c LEFT DOUBLE QUOTATION MARK 0x201d RIGHT DOUBLE QUOTATION MARK 0x201e DOUBLE LOW-9 QUOTATION MARK 0x2020 DAGGER 0x2021 DOUBLE DAGGER 0x2022 BULLET 0x2026 HORIZONTAL ELLIPSIS 0x2030 PER MILLE SIGN 0x2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK 0x203a SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 0x2044 FRACTION SLASH 0x20ac EURO SIGN 0x2122 TRADE MARK SIGN 0x2202 PARTIAL DIFFERENTIAL 0x2205 EMPTY SET 0x220f N-ARY PRODUCT 0x2211 N-ARY SUMMATION 0x2212 MINUS SIGN 0x221a SQUARE ROOT 0x221e INFINITY 0x222b INTEGRAL 0x2248 ALMOST EQUAL TO 0x2260 NOT EQUAL TO 0x2264 LESS-THAN OR EQUAL TO 0x2265 GREATER-THAN OR EQUAL TO 0x25ca LOZENGE 0xfb01 LATIN SMALL LIGATURE FI 0xfb02 LATIN SMALL LIGATURE FL 0x21 EXCLAMATION MARK 0x22 QUOTATION MARK 0x23 NUMBER SIGN 0x24 DOLLAR SIGN 0x25 PERCENT SIGN 0x26 AMPERSAND 0x27 APOSTROPHE 0x28 LEFT PARENTHESIS 0x29 RIGHT PARENTHESIS 0x2a ASTERISK 0x2b PLUS SIGN 0x2c COMMA 0x2d HYPHEN-MINUS 0x2e FULL STOP 0x2f SOLIDUS 0x30 DIGIT ZERO 0x31 DIGIT ONE 0x32 DIGIT TWO 0x33 DIGIT THREE 0x34 DIGIT FOUR 0x35 DIGIT FIVE 0x36 DIGIT SIX 0x37 DIGIT SEVEN 0x38 DIGIT EIGHT 0x39 DIGIT NINE 0x3a COLON 0x3b SEMICOLON 0x3c LESS-THAN SIGN 0x3d EQUALS SIGN 0x3e GREATER-THAN SIGN 0x3f QUESTION MARK 0x40 COMMERCIAL AT 0x41 LATIN CAPITAL LETTER A 0x42 LATIN CAPITAL LETTER B 0x43 LATIN CAPITAL LETTER C 0x44 LATIN CAPITAL LETTER D 0x45 LATIN CAPITAL LETTER E 0x46 LATIN CAPITAL LETTER F 0x47 LATIN CAPITAL LETTER G 0x48 LATIN CAPITAL LETTER H 0x49 LATIN CAPITAL LETTER I 0x4a LATIN CAPITAL LETTER J 0x4b LATIN CAPITAL LETTER K 0x4c LATIN CAPITAL LETTER L 0x4d LATIN CAPITAL LETTER M 0x4e LATIN CAPITAL LETTER N 0x4f LATIN CAPITAL LETTER O 0x50 LATIN CAPITAL LETTER P 0x51 LATIN CAPITAL LETTER Q 0x52 LATIN CAPITAL LETTER R 0x53 LATIN CAPITAL LETTER S 0x54 LATIN CAPITAL LETTER T 0x55 LATIN CAPITAL LETTER U 0x56 LATIN CAPITAL LETTER V 0x57 LATIN CAPITAL LETTER W 0x58 LATIN CAPITAL LETTER X 0x59 LATIN CAPITAL LETTER Y 0x5a LATIN CAPITAL LETTER Z 0x5b LEFT SQUARE BRACKET 0x5c REVERSE SOLIDUS 0x5d RIGHT SQUARE BRACKET 0x5e CIRCUMFLEX ACCENT 0x5f LOW LINE 0x60 GRAVE ACCENT 0x61 LATIN SMALL LETTER A 0x62 LATIN SMALL LETTER B 0x63 LATIN SMALL LETTER C 0x64 LATIN SMALL LETTER D 0x65 LATIN SMALL LETTER E 0x66 LATIN SMALL LETTER F 0x67 LATIN SMALL LETTER G 0x68 LATIN SMALL LETTER H 0x69 LATIN SMALL LETTER I 0x6a LATIN SMALL LETTER J 0x6b LATIN SMALL LETTER K 0x6c LATIN SMALL LETTER L 0x6d LATIN SMALL LETTER M 0x6e LATIN SMALL LETTER N 0x6f LATIN SMALL LETTER O 0x70 LATIN SMALL LETTER P 0x71 LATIN SMALL LETTER Q 0x72 LATIN SMALL LETTER R 0x73 LATIN SMALL LETTER S 0x74 LATIN SMALL LETTER T 0x75 LATIN SMALL LETTER U 0x76 LATIN SMALL LETTER V 0x77 LATIN SMALL LETTER W 0x78 LATIN SMALL LETTER X 0x79 LATIN SMALL LETTER Y 0x7a LATIN SMALL LETTER Z 0x7b LEFT CURLY BRACKET 0x7c VERTICAL LINE 0x7d RIGHT CURLY BRACKET 0x7e TILDE 0xa1 INVERTED EXCLAMATION MARK 0xa2 CENT SIGN 0xa3 POUND SIGN 0xa4 CURRENCY SIGN 0xa5 YEN SIGN 0xa6 BROKEN BAR 0xa7 SECTION SIGN 0xa8 DIAERESIS 0xa9 COPYRIGHT SIGN 0xaa FEMININE ORDINAL INDICATOR 0xab LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0xac NOT SIGN 0xad SOFT HYPHEN 0xae REGISTERED SIGN 0xaf MACRON 0xb0 DEGREE SIGN 0xb1 PLUS-MINUS SIGN 0xb2 SUPERSCRIPT TWO 0xb3 SUPERSCRIPT THREE 0xb4 ACUTE ACCENT 0xb5 MICRO SIGN 0xb6 PILCROW SIGN 0xb7 MIDDLE DOT 0xb8 CEDILLA 0xb9 SUPERSCRIPT ONE 0xba MASCULINE ORDINAL INDICATOR 0xbb RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0xbc VULGAR FRACTION ONE QUARTER 0xbd VULGAR FRACTION ONE HALF 0xbe VULGAR FRACTION THREE QUARTERS 0xbf INVERTED QUESTION MARK 0xc0 LATIN CAPITAL LETTER A WITH GRAVE 0xc1 LATIN CAPITAL LETTER A WITH ACUTE 0xc2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0xc3 LATIN CAPITAL LETTER A WITH TILDE 0xc4 LATIN CAPITAL LETTER A WITH DIAERESIS 0xc5 LATIN CAPITAL LETTER A WITH RING ABOVE 0xc6 LATIN CAPITAL LETTER AE 0xc7 LATIN CAPITAL LETTER C WITH CEDILLA 0xc8 LATIN CAPITAL LETTER E WITH GRAVE 0xc9 LATIN CAPITAL LETTER E WITH ACUTE 0xca LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0xcb LATIN CAPITAL LETTER E WITH DIAERESIS 0xcc LATIN CAPITAL LETTER I WITH GRAVE 0xcd LATIN CAPITAL LETTER I WITH ACUTE 0xce LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0xcf LATIN CAPITAL LETTER I WITH DIAERESIS 0xd0 LATIN CAPITAL LETTER ETH 0xd1 LATIN CAPITAL LETTER N WITH TILDE 0xd2 LATIN CAPITAL LETTER O WITH GRAVE 0xd3 LATIN CAPITAL LETTER O WITH ACUTE 0xd4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0xd5 LATIN CAPITAL LETTER O WITH TILDE 0xd6 LATIN CAPITAL LETTER O WITH DIAERESIS 0xd7 MULTIPLICATION SIGN 0xd8 LATIN CAPITAL LETTER O WITH STROKE 0xd9 LATIN CAPITAL LETTER U WITH GRAVE 0xda LATIN CAPITAL LETTER U WITH ACUTE 0xdb LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0xdc LATIN CAPITAL LETTER U WITH DIAERESIS 0xdd LATIN CAPITAL LETTER Y WITH ACUTE 0xde LATIN CAPITAL LETTER THORN 0xdf LATIN SMALL LETTER SHARP S 0xe0 LATIN SMALL LETTER A WITH GRAVE 0xe1 LATIN SMALL LETTER A WITH ACUTE 0xe2 LATIN SMALL LETTER A WITH CIRCUMFLEX 0xe3 LATIN SMALL LETTER A WITH TILDE 0xe4 LATIN SMALL LETTER A WITH DIAERESIS 0xe5 LATIN SMALL LETTER A WITH RING ABOVE 0xe6 LATIN SMALL LETTER AE 0xe7 LATIN SMALL LETTER C WITH CEDILLA 0xe8 LATIN SMALL LETTER E WITH GRAVE 0xe9 LATIN SMALL LETTER E WITH ACUTE 0xea LATIN SMALL LETTER E WITH CIRCUMFLEX 0xeb LATIN SMALL LETTER E WITH DIAERESIS 0xec LATIN SMALL LETTER I WITH GRAVE 0xed LATIN SMALL LETTER I WITH ACUTE 0xee LATIN SMALL LETTER I WITH CIRCUMFLEX 0xef LATIN SMALL LETTER I WITH DIAERESIS 0xf0 LATIN SMALL LETTER ETH 0xf1 LATIN SMALL LETTER N WITH TILDE 0xf2 LATIN SMALL LETTER O WITH GRAVE 0xf3 LATIN SMALL LETTER O WITH ACUTE 0xf4 LATIN SMALL LETTER O WITH CIRCUMFLEX 0xf5 LATIN SMALL LETTER O WITH TILDE 0xf6 LATIN SMALL LETTER O WITH DIAERESIS 0xf7 DIVISION SIGN 0xf8 LATIN SMALL LETTER O WITH STROKE 0xf9 LATIN SMALL LETTER U WITH GRAVE 0xfa LATIN SMALL LETTER U WITH ACUTE 0xfb LATIN SMALL LETTER U WITH CIRCUMFLEX 0xfc LATIN SMALL LETTER U WITH DIAERESIS 0xfd LATIN SMALL LETTER Y WITH ACUTE 0xfe LATIN SMALL LETTER THORN 0xff LATIN SMALL LETTER Y WITH DIAERESIS 0x21 EXCLAMATION MARK 0x22 QUOTATION MARK 0x23 NUMBER SIGN 0x24 DOLLAR SIGN 0x25 PERCENT SIGN 0x26 AMPERSAND 0x27 APOSTROPHE 0x28 LEFT PARENTHESIS 0x29 RIGHT PARENTHESIS 0x2a ASTERISK 0x2b PLUS SIGN 0x2c COMMA 0x2d HYPHEN-MINUS 0x2e FULL STOP 0x2f SOLIDUS 0x30 DIGIT ZERO 0x31 DIGIT ONE 0x32 DIGIT TWO 0x33 DIGIT THREE 0x34 DIGIT FOUR 0x35 DIGIT FIVE 0x36 DIGIT SIX 0x37 DIGIT SEVEN 0x38 DIGIT EIGHT 0x39 DIGIT NINE 0x3a COLON 0x3b SEMICOLON 0x3c LESS-THAN SIGN 0x3d EQUALS SIGN 0x3e GREATER-THAN SIGN 0x3f QUESTION MARK 0x40 COMMERCIAL AT 0x41 LATIN CAPITAL LETTER A 0x42 LATIN CAPITAL LETTER B 0x43 LATIN CAPITAL LETTER C 0x44 LATIN CAPITAL LETTER D 0x45 LATIN CAPITAL LETTER E 0x46 LATIN CAPITAL LETTER F 0x47 LATIN CAPITAL LETTER G 0x48 LATIN CAPITAL LETTER H 0x49 LATIN CAPITAL LETTER I 0x4a LATIN CAPITAL LETTER J 0x4b LATIN CAPITAL LETTER K 0x4c LATIN CAPITAL LETTER L 0x4d LATIN CAPITAL LETTER M 0x4e LATIN CAPITAL LETTER N 0x4f LATIN CAPITAL LETTER O 0x50 LATIN CAPITAL LETTER P 0x51 LATIN CAPITAL LETTER Q 0x52 LATIN CAPITAL LETTER R 0x53 LATIN CAPITAL LETTER S 0x54 LATIN CAPITAL LETTER T 0x55 LATIN CAPITAL LETTER U 0x56 LATIN CAPITAL LETTER V 0x57 LATIN CAPITAL LETTER W 0x58 LATIN CAPITAL LETTER X 0x59 LATIN CAPITAL LETTER Y 0x5a LATIN CAPITAL LETTER Z 0x5b LEFT SQUARE BRACKET 0x5c REVERSE SOLIDUS 0x5d RIGHT SQUARE BRACKET 0x5e CIRCUMFLEX ACCENT 0x5f LOW LINE 0x60 GRAVE ACCENT 0x61 LATIN SMALL LETTER A 0x62 LATIN SMALL LETTER B 0x63 LATIN SMALL LETTER C 0x64 LATIN SMALL LETTER D 0x65 LATIN SMALL LETTER E 0x66 LATIN SMALL LETTER F 0x67 LATIN SMALL LETTER G 0x68 LATIN SMALL LETTER H 0x69 LATIN SMALL LETTER I 0x6a LATIN SMALL LETTER J 0x6b LATIN SMALL LETTER K 0x6c LATIN SMALL LETTER L 0x6d LATIN SMALL LETTER M 0x6e LATIN SMALL LETTER N 0x6f LATIN SMALL LETTER O 0x70 LATIN SMALL LETTER P 0x71 LATIN SMALL LETTER Q 0x72 LATIN SMALL LETTER R 0x73 LATIN SMALL LETTER S 0x74 LATIN SMALL LETTER T 0x75 LATIN SMALL LETTER U 0x76 LATIN SMALL LETTER V 0x77 LATIN SMALL LETTER W 0x78 LATIN SMALL LETTER X 0x79 LATIN SMALL LETTER Y 0x7a LATIN SMALL LETTER Z 0x7b LEFT CURLY BRACKET 0x7c VERTICAL LINE 0x7d RIGHT CURLY BRACKET 0x7e TILDE 0xa1 INVERTED EXCLAMATION MARK 0xa2 CENT SIGN 0xa3 POUND SIGN 0xa4 CURRENCY SIGN 0xa5 YEN SIGN 0xa6 BROKEN BAR 0xa7 SECTION SIGN 0xa8 DIAERESIS 0xa9 COPYRIGHT SIGN 0xaa FEMININE ORDINAL INDICATOR 0xab LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0xac NOT SIGN 0xad SOFT HYPHEN 0xae REGISTERED SIGN 0xaf MACRON 0xb0 DEGREE SIGN 0xb1 PLUS-MINUS SIGN 0xb2 SUPERSCRIPT TWO 0xb3 SUPERSCRIPT THREE 0xb4 ACUTE ACCENT 0xb5 MICRO SIGN 0xb6 PILCROW SIGN 0xb7 MIDDLE DOT 0xb8 CEDILLA 0xb9 SUPERSCRIPT ONE 0xba MASCULINE ORDINAL INDICATOR 0xbb RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0xbc VULGAR FRACTION ONE QUARTER 0xbd VULGAR FRACTION ONE HALF 0xbe VULGAR FRACTION THREE QUARTERS 0xbf INVERTED QUESTION MARK 0xc0 LATIN CAPITAL LETTER A WITH GRAVE 0xc1 LATIN CAPITAL LETTER A WITH ACUTE 0xc2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0xc3 LATIN CAPITAL LETTER A WITH TILDE 0xc4 LATIN CAPITAL LETTER A WITH DIAERESIS 0xc5 LATIN CAPITAL LETTER A WITH RING ABOVE 0xc6 LATIN CAPITAL LETTER AE 0xc7 LATIN CAPITAL LETTER C WITH CEDILLA 0xc8 LATIN CAPITAL LETTER E WITH GRAVE 0xc9 LATIN CAPITAL LETTER E WITH ACUTE 0xca LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0xcb LATIN CAPITAL LETTER E WITH DIAERESIS 0xcc LATIN CAPITAL LETTER I WITH GRAVE 0xcd LATIN CAPITAL LETTER I WITH ACUTE 0xce LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0xcf LATIN CAPITAL LETTER I WITH DIAERESIS 0xd0 LATIN CAPITAL LETTER ETH 0xd1 LATIN CAPITAL LETTER N WITH TILDE 0xd2 LATIN CAPITAL LETTER O WITH GRAVE 0xd3 LATIN CAPITAL LETTER O WITH ACUTE 0xd4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 0xd5 LATIN CAPITAL LETTER O WITH TILDE 0xd6 LATIN CAPITAL LETTER O WITH DIAERESIS 0xd7 MULTIPLICATION SIGN 0xd8 LATIN CAPITAL LETTER O WITH STROKE 0xd9 LATIN CAPITAL LETTER U WITH GRAVE 0xda LATIN CAPITAL LETTER U WITH ACUTE 0xdb LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0xdc LATIN CAPITAL LETTER U WITH DIAERESIS 0xdd LATIN CAPITAL LETTER Y WITH ACUTE 0xde LATIN CAPITAL LETTER THORN 0xdf LATIN SMALL LETTER SHARP S 0xe0 LATIN SMALL LETTER A WITH GRAVE 0xe1 LATIN SMALL LETTER A WITH ACUTE 0xe2 LATIN SMALL LETTER A WITH CIRCUMFLEX 0xe3 LATIN SMALL LETTER A WITH TILDE 0xe4 LATIN SMALL LETTER A WITH DIAERESIS 0xe5 LATIN SMALL LETTER A WITH RING ABOVE 0xe6 LATIN SMALL LETTER AE 0xe7 LATIN SMALL LETTER C WITH CEDILLA 0xe8 LATIN SMALL LETTER E WITH GRAVE 0xe9 LATIN SMALL LETTER E WITH ACUTE 0xea LATIN SMALL LETTER E WITH CIRCUMFLEX 0xeb LATIN SMALL LETTER E WITH DIAERESIS 0xec LATIN SMALL LETTER I WITH GRAVE 0xed LATIN SMALL LETTER I WITH ACUTE 0xee LATIN SMALL LETTER I WITH CIRCUMFLEX 0xef LATIN SMALL LETTER I WITH DIAERESIS 0xf0 LATIN SMALL LETTER ETH 0xf1 LATIN SMALL LETTER N WITH TILDE 0xf2 LATIN SMALL LETTER O WITH GRAVE 0xf3 LATIN SMALL LETTER O WITH ACUTE 0xf4 LATIN SMALL LETTER O WITH CIRCUMFLEX 0xf5 LATIN SMALL LETTER O WITH TILDE 0xf6 LATIN SMALL LETTER O WITH DIAERESIS 0xf7 DIVISION SIGN 0xf8 LATIN SMALL LETTER O WITH STROKE 0xf9 LATIN SMALL LETTER U WITH GRAVE 0xfa LATIN SMALL LETTER U WITH ACUTE 0xfb LATIN SMALL LETTER U WITH CIRCUMFLEX 0xfc LATIN SMALL LETTER U WITH DIAERESIS 0xfd LATIN SMALL LETTER Y WITH ACUTE 0xfe LATIN SMALL LETTER THORN 0xff LATIN SMALL LETTER Y WITH DIAERESIS 0x100 LATIN CAPITAL LETTER A WITH MACRON 0x101 LATIN SMALL LETTER A WITH MACRON 0x102 LATIN CAPITAL LETTER A WITH BREVE 0x103 LATIN SMALL LETTER A WITH BREVE 0x104 LATIN CAPITAL LETTER A WITH OGONEK 0x105 LATIN SMALL LETTER A WITH OGONEK 0x106 LATIN CAPITAL LETTER C WITH ACUTE 0x107 LATIN SMALL LETTER C WITH ACUTE 0x10a LATIN CAPITAL LETTER C WITH DOT ABOVE 0x10b LATIN SMALL LETTER C WITH DOT ABOVE 0x10c LATIN CAPITAL LETTER C WITH CARON 0x10d LATIN SMALL LETTER C WITH CARON 0x10e LATIN CAPITAL LETTER D WITH CARON 0x10f LATIN SMALL LETTER D WITH CARON 0x110 LATIN CAPITAL LETTER D WITH STROKE 0x111 LATIN SMALL LETTER D WITH STROKE 0x112 LATIN CAPITAL LETTER E WITH MACRON 0x113 LATIN SMALL LETTER E WITH MACRON 0x116 LATIN CAPITAL LETTER E WITH DOT ABOVE 0x117 LATIN SMALL LETTER E WITH DOT ABOVE 0x118 LATIN CAPITAL LETTER E WITH OGONEK 0x119 LATIN SMALL LETTER E WITH OGONEK 0x11a LATIN CAPITAL LETTER E WITH CARON 0x11b LATIN SMALL LETTER E WITH CARON 0x11e LATIN CAPITAL LETTER G WITH BREVE 0x11f LATIN SMALL LETTER G WITH BREVE 0x120 LATIN CAPITAL LETTER G WITH DOT ABOVE 0x121 LATIN SMALL LETTER G WITH DOT ABOVE 0x122 LATIN CAPITAL LETTER G WITH CEDILLA 0x123 LATIN SMALL LETTER G WITH CEDILLA 0x126 LATIN CAPITAL LETTER H WITH STROKE 0x127 LATIN SMALL LETTER H WITH STROKE 0x12a LATIN CAPITAL LETTER I WITH MACRON 0x12b LATIN SMALL LETTER I WITH MACRON 0x12e LATIN CAPITAL LETTER I WITH OGONEK 0x12f LATIN SMALL LETTER I WITH OGONEK 0x130 LATIN CAPITAL LETTER I WITH DOT ABOVE 0x131 LATIN SMALL LETTER DOTLESS I 0x132 LATIN CAPITAL LIGATURE IJ 0x133 LATIN SMALL LIGATURE IJ 0x136 LATIN CAPITAL LETTER K WITH CEDILLA 0x137 LATIN SMALL LETTER K WITH CEDILLA 0x139 LATIN CAPITAL LETTER L WITH ACUTE 0x13a LATIN SMALL LETTER L WITH ACUTE 0x13b LATIN CAPITAL LETTER L WITH CEDILLA 0x13c LATIN SMALL LETTER L WITH CEDILLA 0x13d LATIN CAPITAL LETTER L WITH CARON 0x13e LATIN SMALL LETTER L WITH CARON 0x13f LATIN CAPITAL LETTER L WITH MIDDLE DOT 0x140 LATIN SMALL LETTER L WITH MIDDLE DOT 0x141 LATIN CAPITAL LETTER L WITH STROKE 0x142 LATIN SMALL LETTER L WITH STROKE 0x143 LATIN CAPITAL LETTER N WITH ACUTE 0x144 LATIN SMALL LETTER N WITH ACUTE 0x145 LATIN CAPITAL LETTER N WITH CEDILLA 0x146 LATIN SMALL LETTER N WITH CEDILLA 0x147 LATIN CAPITAL LETTER N WITH CARON 0x148 LATIN SMALL LETTER N WITH CARON 0x14a LATIN CAPITAL LETTER ENG 0x14b LATIN SMALL LETTER ENG 0x14c LATIN CAPITAL LETTER O WITH MACRON 0x14d LATIN SMALL LETTER O WITH MACRON 0x150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0x151 LATIN SMALL LETTER O WITH DOUBLE ACUTE 0x152 LATIN CAPITAL LIGATURE OE 0x153 LATIN SMALL LIGATURE OE 0x154 LATIN CAPITAL LETTER R WITH ACUTE 0x155 LATIN SMALL LETTER R WITH ACUTE 0x156 LATIN CAPITAL LETTER R WITH CEDILLA 0x157 LATIN SMALL LETTER R WITH CEDILLA 0x158 LATIN CAPITAL LETTER R WITH CARON 0x159 LATIN SMALL LETTER R WITH CARON 0x15a LATIN CAPITAL LETTER S WITH ACUTE 0x15b LATIN SMALL LETTER S WITH ACUTE 0x15e LATIN CAPITAL LETTER S WITH CEDILLA 0x15f LATIN SMALL LETTER S WITH CEDILLA 0x160 LATIN CAPITAL LETTER S WITH CARON 0x161 LATIN SMALL LETTER S WITH CARON 0x162 LATIN CAPITAL LETTER T WITH CEDILLA 0x163 LATIN SMALL LETTER T WITH CEDILLA 0x164 LATIN CAPITAL LETTER T WITH CARON 0x165 LATIN SMALL LETTER T WITH CARON 0x166 LATIN CAPITAL LETTER T WITH STROKE 0x167 LATIN SMALL LETTER T WITH STROKE 0x16a LATIN CAPITAL LETTER U WITH MACRON 0x16b LATIN SMALL LETTER U WITH MACRON 0x16e LATIN CAPITAL LETTER U WITH RING ABOVE 0x16f LATIN SMALL LETTER U WITH RING ABOVE 0x170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0x171 LATIN SMALL LETTER U WITH DOUBLE ACUTE 0x172 LATIN CAPITAL LETTER U WITH OGONEK 0x173 LATIN SMALL LETTER U WITH OGONEK 0x174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0x175 LATIN SMALL LETTER W WITH CIRCUMFLEX 0x176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0x177 LATIN SMALL LETTER Y WITH CIRCUMFLEX 0x178 LATIN CAPITAL LETTER Y WITH DIAERESIS 0x179 LATIN CAPITAL LETTER Z WITH ACUTE 0x17a LATIN SMALL LETTER Z WITH ACUTE 0x17b LATIN CAPITAL LETTER Z WITH DOT ABOVE 0x17c LATIN SMALL LETTER Z WITH DOT ABOVE 0x17d LATIN CAPITAL LETTER Z WITH CARON 0x17e LATIN SMALL LETTER Z WITH CARON 0x192 LATIN SMALL LETTER F WITH HOOK 0x218 LATIN CAPITAL LETTER S WITH COMMA BELOW 0x219 LATIN SMALL LETTER S WITH COMMA BELOW 0x21a LATIN CAPITAL LETTER T WITH COMMA BELOW 0x21b LATIN SMALL LETTER T WITH COMMA BELOW 0x2c6 MODIFIER LETTER CIRCUMFLEX ACCENT 0x2c7 CARON 0x2d8 BREVE 0x2d9 DOT ABOVE 0x2da RING ABOVE 0x2db OGONEK 0x2dc SMALL TILDE 0x2dd DOUBLE ACUTE ACCENT 0x300 COMBINING GRAVE ACCENT 0x301 COMBINING ACUTE ACCENT 0x302 COMBINING CIRCUMFLEX ACCENT 0x303 COMBINING TILDE 0x304 COMBINING MACRON 0x306 COMBINING BREVE 0x307 COMBINING DOT ABOVE 0x308 COMBINING DIAERESIS 0x30a COMBINING RING ABOVE 0x30b COMBINING DOUBLE ACUTE ACCENT 0x30c COMBINING CARON 0x326 COMBINING COMMA BELOW 0x327 COMBINING CEDILLA 0x328 COMBINING OGONEK 0x394 GREEK CAPITAL LETTER DELTA 0x3a9 GREEK CAPITAL LETTER OMEGA 0x3c0 GREEK SMALL LETTER PI 0x401 CYRILLIC CAPITAL LETTER IO 0x402 CYRILLIC CAPITAL LETTER DJE 0x408 CYRILLIC CAPITAL LETTER JE 0x409 CYRILLIC CAPITAL LETTER LJE 0x40a CYRILLIC CAPITAL LETTER NJE 0x40b CYRILLIC CAPITAL LETTER TSHE 0x40f CYRILLIC CAPITAL LETTER DZHE 0x410 CYRILLIC CAPITAL LETTER A 0x411 CYRILLIC CAPITAL LETTER BE 0x412 CYRILLIC CAPITAL LETTER VE 0x413 CYRILLIC CAPITAL LETTER GHE 0x414 CYRILLIC CAPITAL LETTER DE 0x415 CYRILLIC CAPITAL LETTER IE 0x416 CYRILLIC CAPITAL LETTER ZHE 0x417 CYRILLIC CAPITAL LETTER ZE 0x418 CYRILLIC CAPITAL LETTER I 0x419 CYRILLIC CAPITAL LETTER SHORT I 0x41a CYRILLIC CAPITAL LETTER KA 0x41b CYRILLIC CAPITAL LETTER EL 0x41c CYRILLIC CAPITAL LETTER EM 0x41d CYRILLIC CAPITAL LETTER EN 0x41e CYRILLIC CAPITAL LETTER O 0x41f CYRILLIC CAPITAL LETTER PE 0x420 CYRILLIC CAPITAL LETTER ER 0x421 CYRILLIC CAPITAL LETTER ES 0x422 CYRILLIC CAPITAL LETTER TE 0x423 CYRILLIC CAPITAL LETTER U 0x424 CYRILLIC CAPITAL LETTER EF 0x425 CYRILLIC CAPITAL LETTER HA 0x426 CYRILLIC CAPITAL LETTER TSE 0x427 CYRILLIC CAPITAL LETTER CHE 0x428 CYRILLIC CAPITAL LETTER SHA 0x429 CYRILLIC CAPITAL LETTER SHCHA 0x42a CYRILLIC CAPITAL LETTER HARD SIGN 0x42b CYRILLIC CAPITAL LETTER YERU 0x42c CYRILLIC CAPITAL LETTER SOFT SIGN 0x42d CYRILLIC CAPITAL LETTER E 0x42e CYRILLIC CAPITAL LETTER YU 0x42f CYRILLIC CAPITAL LETTER YA 0x430 CYRILLIC SMALL LETTER A 0x431 CYRILLIC SMALL LETTER BE 0x432 CYRILLIC SMALL LETTER VE 0x433 CYRILLIC SMALL LETTER GHE 0x434 CYRILLIC SMALL LETTER DE 0x435 CYRILLIC SMALL LETTER IE 0x436 CYRILLIC SMALL LETTER ZHE 0x437 CYRILLIC SMALL LETTER ZE 0x438 CYRILLIC SMALL LETTER I 0x439 CYRILLIC SMALL LETTER SHORT I 0x43a CYRILLIC SMALL LETTER KA 0x43b CYRILLIC SMALL LETTER EL 0x43c CYRILLIC SMALL LETTER EM 0x43d CYRILLIC SMALL LETTER EN 0x43e CYRILLIC SMALL LETTER O 0x43f CYRILLIC SMALL LETTER PE 0x440 CYRILLIC SMALL LETTER ER 0x441 CYRILLIC SMALL LETTER ES 0x442 CYRILLIC SMALL LETTER TE 0x443 CYRILLIC SMALL LETTER U 0x444 CYRILLIC SMALL LETTER EF 0x445 CYRILLIC SMALL LETTER HA 0x446 CYRILLIC SMALL LETTER TSE 0x447 CYRILLIC SMALL LETTER CHE 0x448 CYRILLIC SMALL LETTER SHA 0x449 CYRILLIC SMALL LETTER SHCHA 0x44a CYRILLIC SMALL LETTER HARD SIGN 0x44b CYRILLIC SMALL LETTER YERU 0x44c CYRILLIC SMALL LETTER SOFT SIGN 0x44d CYRILLIC SMALL LETTER E 0x44e CYRILLIC SMALL LETTER YU 0x44f CYRILLIC SMALL LETTER YA 0x451 CYRILLIC SMALL LETTER IO 0x452 CYRILLIC SMALL LETTER DJE 0x458 CYRILLIC SMALL LETTER JE 0x459 CYRILLIC SMALL LETTER LJE 0x45a CYRILLIC SMALL LETTER NJE 0x45b CYRILLIC SMALL LETTER TSHE 0x45f CYRILLIC SMALL LETTER DZHE 0x1e80 LATIN CAPITAL LETTER W WITH GRAVE 0x1e81 LATIN SMALL LETTER W WITH GRAVE 0x1e82 LATIN CAPITAL LETTER W WITH ACUTE 0x1e83 LATIN SMALL LETTER W WITH ACUTE 0x1e84 LATIN CAPITAL LETTER W WITH DIAERESIS 0x1e85 LATIN SMALL LETTER W WITH DIAERESIS 0x1e9e LATIN CAPITAL LETTER SHARP S 0x1ef2 LATIN CAPITAL LETTER Y WITH GRAVE 0x1ef3 LATIN SMALL LETTER Y WITH GRAVE 0x2013 EN DASH 0x2014 EM DASH 0x2018 LEFT SINGLE QUOTATION MARK 0x2019 RIGHT SINGLE QUOTATION MARK 0x201a SINGLE LOW-9 QUOTATION MARK 0x201c LEFT DOUBLE QUOTATION MARK 0x201d RIGHT DOUBLE QUOTATION MARK 0x201e DOUBLE LOW-9 QUOTATION MARK 0x2020 DAGGER 0x2021 DOUBLE DAGGER 0x2022 BULLET 0x2026 HORIZONTAL ELLIPSIS 0x2030 PER MILLE SIGN 0x2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK 0x203a SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 0x2044 FRACTION SLASH 0x20ac EURO SIGN 0x2122 TRADE MARK SIGN 0x2202 PARTIAL DIFFERENTIAL 0x2205 EMPTY SET 0x220f N-ARY PRODUCT 0x2211 N-ARY SUMMATION 0x2212 MINUS SIGN 0x221a SQUARE ROOT 0x221e INFINITY 0x222b INTEGRAL 0x2248 ALMOST EQUAL TO 0x2260 NOT EQUAL TO 0x2264 LESS-THAN OR EQUAL TO 0x2265 GREATER-THAN OR EQUAL TO 0x25ca LOZENGE 0xfb01 LATIN SMALL LIGATURE FI 0xfb02 LATIN SMALL LIGATURE FL requirements.txt000066400000000000000000000001011376445505300143460ustar00rootroot00000000000000fonttools[ufo] #google-apputils absl-py protobuf PyGithub vttLib setup.py000066400000000000000000000061621376445505300126110ustar00rootroot00000000000000# coding: utf-8 # Copyright 2013 The Font Bakery Authors. # Copyright 2017 The Google Fonts Tools Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # See AUTHORS.txt for the list of Authors and LICENSE.txt for the License. import os from setuptools import setup def gftools_scripts(): scripts = [os.path.join('bin', f) for f in os.listdir('bin') if f.startswith('gftools-')] scripts.append(os.path.join('bin', 'gftools')) return scripts # Read the contents of the README file with open('README.md') as f: long_description = f.read() setup( name="gftools", use_scm_version={"write_to": "Lib/gftools/_version.py"}, url='https://github.com/googlefonts/tools/', description='Google Fonts Tools is a set of command-line tools' ' for testing font projects', long_description=long_description, long_description_content_type='text/markdown', # This is important! author=('Google Fonts Tools Authors: ' 'Dave Crossland, ' 'Felipe Sanches, ' 'Lasse Fister, ' 'Marc Foley, ' 'Eli Heuer, ' 'Roderick Sheeter'), author_email='dave@lab6.com', package_dir={'': 'Lib'}, packages=['gftools', 'gftools.util'], package_data={'gftools.util': ["GlyphsInfo/*.xml"], 'gftools': [ "encodings/*.nam", "encodings/GF Glyph Sets/*.nam", 'template.upstream.yaml', "axisregistry/*.textproto", ] }, scripts=gftools_scripts(), zip_safe=False, classifiers=[ 'Environment :: Console', 'Intended Audience :: Developers', 'Topic :: Text Processing :: Fonts', 'License :: OSI Approved :: Apache Software License', 'Operating System :: OS Independent', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 3' ], setup_requires=['setuptools_scm'], # Dependencies needed for gftools qa. extras_require={"qa": ['fontbakery', 'fontdiffenator', 'gfdiffbrowsers']}, install_requires=[ # 'fontforge', # needed by build-font2ttf script # but there's no fontforge package on pypi # see: https://github.com/fontforge/fontforge/issues/2048 'setuptools', 'FontTools[ufo]', 'Flask', 'absl-py', 'glyphsLib', 'PyGithub', 'pillow', 'protobuf', 'requests', 'tabulate', 'unidecode', 'opentype-sanitizer', 'vttlib', 'pygit2', 'strictyaml', ] ) update_reg.sh000066400000000000000000000005601376445505300135460ustar00rootroot00000000000000#!/bin/bash # Retrieve the latest axis registry from google/fonts. This # script should be run before packagaing a new release of # gftools for pypi AXIS_DST="Lib/gftools/axisregistry" rm -rf $AXIS_DST # TODO (Marc F) don't use svn echo "Downloading axis registry from github.com/google/fonts" svn export https://github.com/google/fonts/trunk/axisregistry $AXIS_DST