From: Drew Adams <drew.adams@oracle.com>
To: 30539@debbugs.gnu.org
Subject: bug#30539: 26.0; `char-displayable-p' is much slower in Emacs 25 and 26
Date: Tue, 20 Feb 2018 10:08:36 -0800 (PST) [thread overview]
Message-ID: <ec3497d7-9a7d-4be8-8712-19bb6bdd96e8@default> (raw)
In-Reply-To: <8c79c39f-7abb-4591-a676-17fb46af5a8f@default>
[-- Attachment #1: Type: text/plain, Size: 1116 bytes --]
Sorry, the recipe I sent before was not good. The initial
alist of chars had already been purged of any chars that
are not `char-displayable-p'.
Please try attached file `throw-mule-bug-2.el' instead.
This time the alist of chars in variable `char-names'
includes some chars that are not `char-displayable-p'.
Evaluating `char-displayable-p' for those chars is, I
think, where the bottleneck is.
Evaluate the code in `throw-mule-bug-2.el' and then check
buffers *CPU Profiler Report* and *Memory Profiler Report*.
I've attached those reports as these files:
throw-mule-bug-cpu-report2-E24-Q - Emacs 24.5 from `emacs -Q'
throw-mule-bug-mem-report2-E24-Q - Emacs 24.5 from `emacs -Q'
throw-mule-bug-cpu-report2-E26-Q - Emacs 26P2 from `emacs -Q'
throw-mule-bug-mem-report2-E26-Q - Emacs 26P2 from `emacs -Q'
You can see these reports by using `M-x profiler-find-profile'
and entering the report file name at the prompt.
In Emacs 24.5 evaluating `(my-test)' takes only a few _seconds_.
In Emacs 26 (Pretest 2) it takes about 13 _minutes_.
Emacs 25.3.1 has the same problem as Emacs 26.
[-- Attachment #2: throw-mule-bug-cpu-report2-E24-Q --]
[-- Type: application/octet-stream, Size: 1160 bytes --]
[profiler-profile "24.3" cpu #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ([nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 17 [image-search-load-path find-image eval "#<compiled 0x4a017b>" mapcar tool-bar-make-keymap-1 tool-bar-make-keymap redisplay_internal\ \(C\ function\) redisplay "#<compiled 0x5d2449>" funcall track-mouse eval mouse-drag-track mouse-drag-region call-interactively] 1 [car cond char-displayable-p my-char-displayable-p funcall not and while my-delete-if-not my-test eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil] 8 [car cond char-displayable-p my-char-displayable-p funcall not if while let my-delete-if-not my-test eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute] 400 [read-event "#<compiled 0xe9e3f7>" funcall track-mouse eval mouse-drag-track mouse-drag-region call-interactively command-execute nil nil nil nil nil nil nil] 1 ["#<compiled 0xe9e3f7>" funcall track-mouse eval mouse-drag-track mouse-drag-region call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [Automatic\ GC] 7)) (23180 24689 277000 0) nil]
[-- Attachment #3: throw-mule-bug-mem-report2-E24-Q --]
[-- Type: application/octet-stream, Size: 5903 bytes --]
[profiler-profile "24.3" memory #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ([cond profiler-start eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil nil nil nil nil nil nil nil nil] 869 [profiler-start eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 0 [eval-last-sexp-print-value eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 183208 [mouse-fixup-help-message nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 512 [image-search-load-path find-image eval "#<compiled 0x4a017b>" mapcar tool-bar-make-keymap-1 tool-bar-make-keymap redisplay_internal\ \(C\ function\) redisplay "#<compiled 0x5d2449>" funcall track-mouse eval mouse-drag-track mouse-drag-region call-interactively] 656470 [redisplay "#<compiled 0x5d2449>" funcall track-mouse eval mouse-drag-track mouse-drag-region call-interactively command-execute nil nil nil nil nil nil nil] 1582 [image-search-load-path find-image redisplay_internal\ \(C\ function\) redisplay "#<compiled 0x5d2449>" funcall track-mouse eval mouse-drag-track mouse-drag-region call-interactively command-execute nil nil nil nil] 205156 ["#<compiled 0x5d2449>" funcall track-mouse eval mouse-drag-track mouse-drag-region call-interactively command-execute nil nil nil nil nil nil nil nil] 2800 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 772088 [image-search-load-path find-image redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil nil] 984480 [car cond char-displayable-p my-char-displayable-p funcall not and while my-delete-if-not my-test eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil] 536870911 [my-delete-if-not my-test eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil nil nil nil nil nil nil nil nil] 271 [my-test eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 89838 [car cond char-displayable-p my-char-displayable-p funcall not if while let my-delete-if-not my-test eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute] 536870911 [if while let my-delete-if-not my-test eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil nil nil nil nil nil] 1370 [while let my-delete-if-not my-test eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil nil nil nil nil nil nil] 127635 [image-search-load-path find-image eval "#<compiled 0x4a017b>" mapcar tool-bar-make-keymap-1 tool-bar-make-keymap redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil] 660084 [byte-code kill-this-buffer-enabled-p redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil nil] 512 [read-event "#<compiled 0xe9e3f7>" funcall track-mouse eval mouse-drag-track mouse-drag-region call-interactively command-execute nil nil nil nil nil nil nil] 1911 [image-search-load-path find-image redisplay_internal\ \(C\ function\) read-event "#<compiled 0xe9e3f7>" funcall track-mouse eval mouse-drag-track mouse-drag-region call-interactively command-execute nil nil nil nil] 196968 [looking-back preceding-sexp eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 512 [profiler-make-profile progn if profiler-cpu-profile let profiler-report-cpu profiler-report eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil nil nil nil] 943516 [format profiler-report-make-buffer-name let* profiler-report-setup-buffer-1 let profiler-report-setup-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn if let profiler-report-cpu profiler-report eval eval-last-sexp-1 eval-last-sexp] 131104 [let* profiler-report-setup-buffer-1 let profiler-report-setup-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn if let profiler-report-cpu profiler-report eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute] 536 [let profiler-calltree-build-unified if let let* profiler-calltree-build let let* profiler-report-render-calltree-1 profiler-report-rerender-calltree profiler-report-render-calltree save-current-buffer let profiler-report-setup-buffer switch-to-buffer-other-window profiler-report-profile-other-window] 4120 [replace-regexp-in-string let* profiler-report-header-line-format cond setq let let* profiler-report-render-calltree-1 profiler-report-rerender-calltree profiler-report-render-calltree save-current-buffer let profiler-report-setup-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn] 512 [next-single-property-change let profiler-report-move-to-entry let let let* profiler-report-render-calltree-1 profiler-report-rerender-calltree profiler-report-render-calltree save-current-buffer let profiler-report-setup-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn if] 352 [byte-code split-window split-window-below split-window-sensibly funcall window--try-to-split-window display-buffer-pop-up-window display-buffer--maybe-pop-up-frame-or-window display-buffer pop-to-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn if let profiler-report-cpu] 234521 [window--display-buffer display-buffer-pop-up-window display-buffer--maybe-pop-up-frame-or-window display-buffer pop-to-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn if let profiler-report-cpu profiler-report eval eval-last-sexp-1 eval-last-sexp call-interactively] 226113 [profiler-make-profile progn if profiler-memory-profile let profiler-report-memory profiler-report eval eval-last-sexp-1 eval-last-sexp call-interactively command-execute nil nil nil nil] 947636)) (23180 24689 286000 0) nil]
[-- Attachment #4: throw-mule-bug-cpu-report2-E26-Q --]
[-- Type: application/octet-stream, Size: 1022 bytes --]
[profiler-profile "24.3" cpu #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8125 data ([cond profiler-start eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil nil nil nil nil nil] 1 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 20 [forward-sexp elisp--beginning-of-sexp elisp--fnsym-in-current-sexp elisp-eldoc-documentation-function apply "#<compiled 0x100280b99>" eldoc-print-current-symbol-info "#<compiled 0x1000e08b5>" apply timer-event-handler nil nil nil nil nil nil] 3 [let cond char-displayable-p my-char-displayable-p funcall not and while my-delete-if-not my-test eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute] 8 [let cond char-displayable-p my-char-displayable-p funcall not if while let my-delete-if-not my-test eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively] 47385 [Automatic\ GC] 356)) (23180 24302 678831 0) nil]
[-- Attachment #5: throw-mule-bug-mem-report2-E26-Q --]
[-- Type: application/octet-stream, Size: 5810 bytes --]
[profiler-profile "24.3" memory #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8125 data ([cond profiler-start eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil nil nil nil nil nil] 1033 [profiler-start eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil nil nil nil nil nil nil] 0 [elisp--eval-last-sexp-print-value elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 191884 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 149521733 [image-search-load-path find-image eval "#<compiled 0x1000dabd5>" mapcar tool-bar-make-keymap-1 tool-bar-make-keymap redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil] 5764 [image-search-load-path find-image redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil nil] 3066 [if eval redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil nil] 2112 [timer-until timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3168 [timer-relative-time timer-inc-time timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil nil] 2112 [redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1056 [timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1064 [timer-inc-time timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 2112 [let cond char-displayable-p my-char-displayable-p funcall not and while my-delete-if-not my-test eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute] 3953931 [cond char-displayable-p my-char-displayable-p funcall not and while my-delete-if-not my-test eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil] 219833 [let cond char-displayable-p my-char-displayable-p funcall not if while let my-delete-if-not my-test eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively] 6214693867 [cond char-displayable-p my-char-displayable-p funcall not if while let my-delete-if-not my-test eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute] 705364383 [kill-this-buffer-enabled-p redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 512 [mouse-fixup-help-message nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 512 [looking-back elisp--preceding-sexp elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil nil nil nil nil nil nil] 512 [elisp--preceding-sexp elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 512 [profiler-make-profile progn if profiler-cpu-profile let profiler-report-cpu profiler-report eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil] 1742916 [progn if profiler-cpu-profile let profiler-report-cpu profiler-report eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil nil] 0 [format profiler-report-make-buffer-name let* profiler-report-setup-buffer-1 let profiler-report-setup-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn if let profiler-report-cpu profiler-report eval elisp--eval-last-sexp eval-last-sexp] 32 [let* profiler-report-setup-buffer-1 let profiler-report-setup-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn if let profiler-report-cpu profiler-report eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively] 1040 [let profiler-calltree-build-unified if let progn let* profiler-calltree-build let progn let* profiler-report-render-calltree-1 profiler-report-rerender-calltree profiler-report-render-calltree save-current-buffer let profiler-report-setup-buffer] 4136 [and or progn profiler-format-percent aset let* progn "#<lambda 0x3c1ba4d9e57aa893>" funcall profiler-calltree-walk let while let profiler-calltree-walk let while] 10240 [replace-regexp-in-string let* profiler-report-header-line-format cond let* setq let progn let* profiler-report-render-calltree-1 profiler-report-rerender-calltree profiler-report-render-calltree save-current-buffer let profiler-report-setup-buffer switch-to-buffer-other-window] 512 [next-single-property-change let profiler-report-move-to-entry let let progn let* profiler-report-render-calltree-1 profiler-report-rerender-calltree profiler-report-render-calltree save-current-buffer let profiler-report-setup-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn] 704 [split-window split-window-below split-window-sensibly window--try-to-split-window display-buffer-pop-up-window display-buffer--maybe-pop-up-frame-or-window display-buffer pop-to-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn if let profiler-report-cpu profiler-report eval] 336657 [window--display-buffer display-buffer-pop-up-window display-buffer--maybe-pop-up-frame-or-window display-buffer pop-to-buffer switch-to-buffer-other-window profiler-report-profile-other-window progn if let profiler-report-cpu profiler-report eval elisp--eval-last-sexp eval-last-sexp funcall-interactively] 323137 [profiler-make-profile progn if profiler-memory-profile let profiler-report-memory profiler-report eval elisp--eval-last-sexp eval-last-sexp funcall-interactively call-interactively command-execute nil nil nil] 1895296)) (23180 24302 716835 0) nil]
[-- Attachment #6: throw-mule-bug-2.el --]
[-- Type: application/octet-stream, Size: 66452 bytes --]
(defvar char-names '(("TAG LATIN SMALL LETTER Z" . 917626)
("TAG LATIN SMALL LETTER Y" . 917625)
("TAG LATIN SMALL LETTER X" . 917624)
("TAG LATIN SMALL LETTER W" . 917623)
("TAG LATIN SMALL LETTER V" . 917622)
("TAG LATIN SMALL LETTER U" . 917621)
("TAG LATIN SMALL LETTER T" . 917620)
("TAG LATIN SMALL LETTER S" . 917619)
("TAG LATIN SMALL LETTER R" . 917618)
("TAG LATIN SMALL LETTER Q" . 917617)
("TAG LATIN SMALL LETTER P" . 917616)
("TAG LATIN SMALL LETTER O" . 917615)
("TAG LATIN SMALL LETTER N" . 917614)
("TAG LATIN SMALL LETTER M" . 917613)
("TAG LATIN SMALL LETTER L" . 917612)
("TAG LATIN SMALL LETTER K" . 917611)
("TAG LATIN SMALL LETTER J" . 917610)
("TAG LATIN SMALL LETTER I" . 917609)
("TAG LATIN SMALL LETTER H" . 917608)
("TAG LATIN SMALL LETTER G" . 917607)
("TAG LATIN SMALL LETTER F" . 917606)
("TAG LATIN SMALL LETTER E" . 917605)
("TAG LATIN SMALL LETTER D" . 917604)
("TAG LATIN SMALL LETTER C" . 917603)
("TAG LATIN SMALL LETTER B" . 917602)
("TAG LATIN SMALL LETTER A" . 917601)
("INPUT SYMBOL FOR LATIN SMALL LETTERS" . 128289)
("SQUARED LATIN SMALL LETTER D" . 127397)
("FULLWIDTH LATIN SMALL LETTER Z" . 65370)
("FULLWIDTH LATIN SMALL LETTER Y" . 65369)
("FULLWIDTH LATIN SMALL LETTER X" . 65368)
("FULLWIDTH LATIN SMALL LETTER W" . 65367)
("FULLWIDTH LATIN SMALL LETTER V" . 65366)
("FULLWIDTH LATIN SMALL LETTER U" . 65365)
("FULLWIDTH LATIN SMALL LETTER T" . 65364)
("FULLWIDTH LATIN SMALL LETTER S" . 65363)
("FULLWIDTH LATIN SMALL LETTER R" . 65362)
("FULLWIDTH LATIN SMALL LETTER Q" . 65361)
("FULLWIDTH LATIN SMALL LETTER P" . 65360)
("FULLWIDTH LATIN SMALL LETTER O" . 65359)
("FULLWIDTH LATIN SMALL LETTER N" . 65358)
("FULLWIDTH LATIN SMALL LETTER M" . 65357)
("FULLWIDTH LATIN SMALL LETTER L" . 65356)
("FULLWIDTH LATIN SMALL LETTER K" . 65355)
("FULLWIDTH LATIN SMALL LETTER J" . 65354)
("FULLWIDTH LATIN SMALL LETTER I" . 65353)
("FULLWIDTH LATIN SMALL LETTER H" . 65352)
("FULLWIDTH LATIN SMALL LETTER G" . 65351)
("FULLWIDTH LATIN SMALL LETTER F" . 65350)
("FULLWIDTH LATIN SMALL LETTER E" . 65349)
("FULLWIDTH LATIN SMALL LETTER D" . 65348)
("FULLWIDTH LATIN SMALL LETTER C" . 65347)
("FULLWIDTH LATIN SMALL LETTER B" . 65346)
("FULLWIDTH LATIN SMALL LETTER A" . 65345)
("LATIN SMALL LETTER INVERTED ALPHA" . 43876)
("LATIN SMALL LETTER UO" . 43875)
("LATIN SMALL LETTER OPEN OE" . 43874)
("LATIN SMALL LETTER IOTIFIED E" . 43873)
("LATIN SMALL LETTER SAKHA YAT" . 43872)
("LATIN SMALL LETTER Y WITH SHORT RIGHT LEG" . 43866)
("LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF" . 43865)
("LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING" . 43864)
("LATIN SMALL LETTER X WITH LONG LEFT LEG" . 43863)
("LATIN SMALL LETTER X WITH LOW RIGHT RING" . 43862)
("LATIN SMALL LETTER CHI WITH LOW LEFT SERIF" . 43861)
("LATIN SMALL LETTER CHI WITH LOW RIGHT RING" . 43860)
("LATIN SMALL LETTER CHI" . 43859)
("LATIN SMALL LETTER U WITH LEFT HOOK" . 43858)
("LATIN SMALL LETTER TURNED UI" . 43857)
("LATIN SMALL LETTER UI" . 43856)
("LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG" . 43855)
("LATIN SMALL LETTER U WITH SHORT RIGHT LEG" . 43854)
("LATIN SMALL LETTER BASELINE ESH" . 43853)
("LATIN SMALL LETTER SCRIPT R WITH RING" . 43852)
("LATIN SMALL LETTER SCRIPT R" . 43851)
("LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL" . 43850)
("LATIN SMALL LETTER R WITH CROSSED-TAIL" . 43849)
("LATIN SMALL LETTER DOUBLE R" . 43848)
("LATIN SMALL LETTER R WITHOUT HANDLE" . 43847)
("LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG" . 43846)
("LATIN SMALL LETTER STIRRUP R" . 43845)
("LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE" . 43844)
("LATIN SMALL LETTER TURNED O OPEN-O" . 43843)
("LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE" . 43842)
("LATIN SMALL LETTER TURNED OE WITH STROKE" . 43841)
("LATIN SMALL LETTER INVERTED OE" . 43840)
("LATIN SMALL LETTER OPEN O WITH STROKE" . 43839)
("LATIN SMALL LETTER BLACKLETTER O WITH STROKE" . 43838)
("LATIN SMALL LETTER BLACKLETTER O" . 43837)
("LATIN SMALL LETTER ENG WITH CROSSED-TAIL" . 43836)
("LATIN SMALL LETTER N WITH CROSSED-TAIL" . 43835)
("LATIN SMALL LETTER M WITH CROSSED-TAIL" . 43834)
("LATIN SMALL LETTER L WITH MIDDLE RING" . 43833)
("LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE" . 43832)
("LATIN SMALL LETTER L WITH INVERTED LAZY S" . 43831)
("LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL" . 43830)
("LATIN SMALL LETTER LENIS F" . 43829)
("LATIN SMALL LETTER E WITH FLOURISH" . 43828)
("LATIN SMALL LETTER BARRED E" . 43827)
("LATIN SMALL LETTER BLACKLETTER E" . 43826)
("LATIN SMALL LETTER A REVERSED-SCHWA" . 43825)
("LATIN SMALL LETTER BARRED ALPHA" . 43824)
("LATIN LETTER SMALL CAPITAL TURNED M" . 43002)
("LATIN SMALL LETTER OMEGA" . 42935)
("LATIN SMALL LETTER BETA" . 42933)
("LATIN CAPITAL LETTER SMALL CAPITAL I" . 42926)
("LATIN SMALL LETTER S WITH OBLIQUE STROKE" . 42921)
("LATIN SMALL LETTER R WITH OBLIQUE STROKE" . 42919)
("LATIN SMALL LETTER N WITH OBLIQUE STROKE" . 42917)
("LATIN SMALL LETTER K WITH OBLIQUE STROKE" . 42915)
("LATIN SMALL LETTER G WITH OBLIQUE STROKE" . 42913)
("LATIN SMALL LETTER VOLAPUK UE" . 42911)
("LATIN SMALL LETTER VOLAPUK OE" . 42909)
("LATIN SMALL LETTER VOLAPUK AE" . 42907)
("LATIN SMALL LETTER F WITH STROKE" . 42905)
("LATIN SMALL LETTER B WITH FLOURISH" . 42903)
("LATIN SMALL LETTER H WITH PALATAL HOOK" . 42901)
("LATIN SMALL LETTER C WITH PALATAL HOOK" . 42900)
("LATIN SMALL LETTER C WITH BAR" . 42899)
("LATIN SMALL LETTER N WITH DESCENDER" . 42897)
("LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT" . 42894)
("LATIN SMALL LETTER SALTILLO" . 42892)
("LATIN SMALL LETTER INSULAR T" . 42887)
("LATIN SMALL LETTER INSULAR S" . 42885)
("LATIN SMALL LETTER INSULAR R" . 42883)
("LATIN SMALL LETTER TURNED L" . 42881)
("LATIN SMALL LETTER TURNED INSULAR G" . 42879)
("LATIN SMALL LETTER INSULAR F" . 42876)
("LATIN SMALL LETTER INSULAR D" . 42874)
("LATIN SMALL LETTER UM" . 42872)
("LATIN SMALL LETTER TUM" . 42871)
("LATIN LETTER SMALL CAPITAL RUM" . 42870)
("LATIN SMALL LETTER RUM" . 42869)
("LATIN SMALL LETTER NUM" . 42868)
("LATIN SMALL LETTER MUM" . 42867)
("LATIN SMALL LETTER LUM" . 42866)
("LATIN SMALL LETTER DUM" . 42865)
("LATIN SMALL LETTER CON" . 42863)
("LATIN SMALL LETTER IS" . 42861)
("LATIN SMALL LETTER ET" . 42859)
("LATIN SMALL LETTER VEND" . 42857)
("LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER" . 42855)
("LATIN SMALL LETTER THORN WITH STROKE" . 42853)
("LATIN SMALL LETTER VISIGOTHIC Z" . 42851)
("LATIN SMALL LETTER VY" . 42849)
("LATIN SMALL LETTER V WITH DIAGONAL STROKE" . 42847)
("LATIN SMALL LETTER RUM ROTUNDA" . 42845)
("LATIN SMALL LETTER R ROTUNDA" . 42843)
("LATIN SMALL LETTER Q WITH DIAGONAL STROKE" . 42841)
("LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER" . 42839)
("LATIN SMALL LETTER P WITH SQUIRREL TAIL" . 42837)
("LATIN SMALL LETTER P WITH FLOURISH" . 42835)
("LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER" . 42833)
("LATIN SMALL LETTER OO" . 42831)
("LATIN SMALL LETTER O WITH LOOP" . 42829)
("LATIN SMALL LETTER O WITH LONG STROKE OVERLAY" . 42827)
("LATIN SMALL LETTER L WITH HIGH STROKE" . 42825)
("LATIN SMALL LETTER BROKEN L" . 42823)
("LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE" . 42821)
("LATIN SMALL LETTER K WITH DIAGONAL STROKE" . 42819)
("LATIN SMALL LETTER K WITH STROKE" . 42817)
("LATIN SMALL LETTER REVERSED C WITH DOT" . 42815)
("LATIN SMALL LETTER AY" . 42813)
("LATIN SMALL LETTER AV WITH HORIZONTAL BAR" . 42811)
("LATIN SMALL LETTER AV" . 42809)
("LATIN SMALL LETTER AU" . 42807)
("LATIN SMALL LETTER AO" . 42805)
("LATIN SMALL LETTER AA" . 42803)
("LATIN LETTER SMALL CAPITAL S" . 42801)
("LATIN LETTER SMALL CAPITAL F" . 42800)
("LATIN SMALL LETTER CUATRILLO WITH COMMA" . 42799)
("LATIN SMALL LETTER CUATRILLO" . 42797)
("LATIN SMALL LETTER TRESILLO" . 42795)
("LATIN SMALL LETTER TZ" . 42793)
("LATIN SMALL LETTER HENG" . 42791)
("LATIN SMALL LETTER EGYPTOLOGICAL AIN" . 42789)
("LATIN SMALL LETTER EGYPTOLOGICAL ALEF" . 42787)
("LATIN SUBSCRIPT SMALL LETTER J" . 11388)
("LATIN LETTER SMALL CAPITAL TURNED E" . 11387)
("LATIN SMALL LETTER O WITH LOW RING INSIDE" . 11386)
("LATIN SMALL LETTER TURNED R WITH TAIL" . 11385)
("LATIN SMALL LETTER E WITH NOTCH" . 11384)
("LATIN SMALL LETTER TAILLESS PHI" . 11383)
("LATIN SMALL LETTER HALF H" . 11382)
("LATIN SMALL LETTER V WITH CURL" . 11380)
("LATIN SMALL LETTER W WITH HOOK" . 11379)
("LATIN SMALL LETTER V WITH RIGHT HOOK" . 11377)
("LATIN SMALL LETTER Z WITH DESCENDER" . 11372)
("LATIN SMALL LETTER K WITH DESCENDER" . 11370)
("LATIN SMALL LETTER H WITH DESCENDER" . 11368)
("LATIN SMALL LETTER T WITH DIAGONAL STROKE" . 11366)
("LATIN SMALL LETTER A WITH STROKE" . 11365)
("LATIN SMALL LETTER L WITH DOUBLE BAR" . 11361)
("GLAGOLITIC SMALL LETTER LATINATE MYSLITE" . 11358)
("CIRCLED LATIN SMALL LETTER Z" . 9449)
("CIRCLED LATIN SMALL LETTER Y" . 9448)
("CIRCLED LATIN SMALL LETTER X" . 9447)
("CIRCLED LATIN SMALL LETTER W" . 9446)
("CIRCLED LATIN SMALL LETTER V" . 9445)
("CIRCLED LATIN SMALL LETTER U" . 9444)
("CIRCLED LATIN SMALL LETTER T" . 9443)
("CIRCLED LATIN SMALL LETTER S" . 9442)
("CIRCLED LATIN SMALL LETTER R" . 9441)
("CIRCLED LATIN SMALL LETTER Q" . 9440)
("CIRCLED LATIN SMALL LETTER P" . 9439)
("CIRCLED LATIN SMALL LETTER O" . 9438)
("CIRCLED LATIN SMALL LETTER N" . 9437)
("CIRCLED LATIN SMALL LETTER M" . 9436)
("CIRCLED LATIN SMALL LETTER L" . 9435)
("CIRCLED LATIN SMALL LETTER K" . 9434)
("CIRCLED LATIN SMALL LETTER J" . 9433)
("CIRCLED LATIN SMALL LETTER I" . 9432)
("CIRCLED LATIN SMALL LETTER H" . 9431)
("CIRCLED LATIN SMALL LETTER G" . 9430)
("CIRCLED LATIN SMALL LETTER F" . 9429)
("CIRCLED LATIN SMALL LETTER E" . 9428)
("CIRCLED LATIN SMALL LETTER D" . 9427)
("CIRCLED LATIN SMALL LETTER C" . 9426)
("CIRCLED LATIN SMALL LETTER B" . 9425)
("CIRCLED LATIN SMALL LETTER A" . 9424)
("PARENTHESIZED LATIN SMALL LETTER Z" . 9397)
("PARENTHESIZED LATIN SMALL LETTER Y" . 9396)
("PARENTHESIZED LATIN SMALL LETTER X" . 9395)
("PARENTHESIZED LATIN SMALL LETTER W" . 9394)
("PARENTHESIZED LATIN SMALL LETTER V" . 9393)
("PARENTHESIZED LATIN SMALL LETTER U" . 9392)
("PARENTHESIZED LATIN SMALL LETTER T" . 9391)
("PARENTHESIZED LATIN SMALL LETTER S" . 9390)
("PARENTHESIZED LATIN SMALL LETTER R" . 9389)
("PARENTHESIZED LATIN SMALL LETTER Q" . 9388)
("PARENTHESIZED LATIN SMALL LETTER P" . 9387)
("PARENTHESIZED LATIN SMALL LETTER O" . 9386)
("PARENTHESIZED LATIN SMALL LETTER N" . 9385)
("PARENTHESIZED LATIN SMALL LETTER M" . 9384)
("PARENTHESIZED LATIN SMALL LETTER L" . 9383)
("PARENTHESIZED LATIN SMALL LETTER K" . 9382)
("PARENTHESIZED LATIN SMALL LETTER J" . 9381)
("PARENTHESIZED LATIN SMALL LETTER I" . 9380)
("PARENTHESIZED LATIN SMALL LETTER H" . 9379)
("PARENTHESIZED LATIN SMALL LETTER G" . 9378)
("PARENTHESIZED LATIN SMALL LETTER F" . 9377)
("PARENTHESIZED LATIN SMALL LETTER E" . 9376)
("PARENTHESIZED LATIN SMALL LETTER D" . 9375)
("PARENTHESIZED LATIN SMALL LETTER C" . 9374)
("PARENTHESIZED LATIN SMALL LETTER B" . 9373)
("PARENTHESIZED LATIN SMALL LETTER A" . 9372)
("LATIN SMALL LETTER REVERSED C" . 8580)
("LATIN SUBSCRIPT SMALL LETTER T" . 8348)
("LATIN SUBSCRIPT SMALL LETTER S" . 8347)
("LATIN SUBSCRIPT SMALL LETTER P" . 8346)
("LATIN SUBSCRIPT SMALL LETTER N" . 8345)
("LATIN SUBSCRIPT SMALL LETTER M" . 8344)
("LATIN SUBSCRIPT SMALL LETTER L" . 8343)
("LATIN SUBSCRIPT SMALL LETTER K" . 8342)
("LATIN SUBSCRIPT SMALL LETTER H" . 8341)
("LATIN SUBSCRIPT SMALL LETTER SCHWA" . 8340)
("LATIN SUBSCRIPT SMALL LETTER X" . 8339)
("LATIN SUBSCRIPT SMALL LETTER O" . 8338)
("LATIN SUBSCRIPT SMALL LETTER E" . 8337)
("LATIN SUBSCRIPT SMALL LETTER A" . 8336)
("SUPERSCRIPT LATIN SMALL LETTER N" . 8319)
("SUPERSCRIPT LATIN SMALL LETTER I" . 8305)
("LATIN SMALL LETTER Y WITH LOOP" . 7935)
("LATIN SMALL LETTER MIDDLE-WELSH V" . 7933)
("LATIN SMALL LETTER MIDDLE-WELSH LL" . 7931)
("LATIN SMALL LETTER Y WITH TILDE" . 7929)
("LATIN SMALL LETTER Y WITH HOOK ABOVE" . 7927)
("LATIN SMALL LETTER Y WITH DOT BELOW" . 7925)
("LATIN SMALL LETTER Y WITH GRAVE" . 7923)
("LATIN SMALL LETTER U WITH HORN AND DOT BELOW" . 7921)
("LATIN SMALL LETTER U WITH HORN AND TILDE" . 7919)
("LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE" . 7917)
("LATIN SMALL LETTER U WITH HORN AND GRAVE" . 7915)
("LATIN SMALL LETTER U WITH HORN AND ACUTE" . 7913)
("LATIN SMALL LETTER U WITH HOOK ABOVE" . 7911)
("LATIN SMALL LETTER U WITH DOT BELOW" . 7909)
("LATIN SMALL LETTER O WITH HORN AND DOT BELOW" . 7907)
("LATIN SMALL LETTER O WITH HORN AND TILDE" . 7905)
("LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE" . 7903)
("LATIN SMALL LETTER O WITH HORN AND GRAVE" . 7901)
("LATIN SMALL LETTER O WITH HORN AND ACUTE" . 7899)
("LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW" . 7897)
("LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE" . 7895)
("LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE" . 7893)
("LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE" . 7891)
("LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE" . 7889)
("LATIN SMALL LETTER O WITH HOOK ABOVE" . 7887)
("LATIN SMALL LETTER O WITH DOT BELOW" . 7885)
("LATIN SMALL LETTER I WITH DOT BELOW" . 7883)
("LATIN SMALL LETTER I WITH HOOK ABOVE" . 7881)
("LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW" . 7879)
("LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE" . 7877)
("LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE" . 7875)
("LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE" . 7873)
("LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE" . 7871)
("LATIN SMALL LETTER E WITH TILDE" . 7869)
("LATIN SMALL LETTER E WITH HOOK ABOVE" . 7867)
("LATIN SMALL LETTER E WITH DOT BELOW" . 7865)
("LATIN SMALL LETTER A WITH BREVE AND DOT BELOW" . 7863)
("LATIN SMALL LETTER A WITH BREVE AND TILDE" . 7861)
("LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE" . 7859)
("LATIN SMALL LETTER A WITH BREVE AND GRAVE" . 7857)
("LATIN SMALL LETTER A WITH BREVE AND ACUTE" . 7855)
("LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW" . 7853)
("LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE" . 7851)
("LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE" . 7849)
("LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE" . 7847)
("LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE" . 7845)
("LATIN SMALL LETTER A WITH HOOK ABOVE" . 7843)
("LATIN SMALL LETTER A WITH DOT BELOW" . 7841)
("LATIN SMALL LETTER DELTA" . 7839)
("LATIN SMALL LETTER LONG S WITH HIGH STROKE" . 7837)
("LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE" . 7836)
("LATIN SMALL LETTER LONG S WITH DOT ABOVE" . 7835)
("LATIN SMALL LETTER A WITH RIGHT HALF RING" . 7834)
("LATIN SMALL LETTER Y WITH RING ABOVE" . 7833)
("LATIN SMALL LETTER W WITH RING ABOVE" . 7832)
("LATIN SMALL LETTER T WITH DIAERESIS" . 7831)
("LATIN SMALL LETTER H WITH LINE BELOW" . 7830)
("LATIN SMALL LETTER Z WITH LINE BELOW" . 7829)
("LATIN SMALL LETTER Z WITH DOT BELOW" . 7827)
("LATIN SMALL LETTER Z WITH CIRCUMFLEX" . 7825)
("LATIN SMALL LETTER Y WITH DOT ABOVE" . 7823)
("LATIN SMALL LETTER X WITH DIAERESIS" . 7821)
("LATIN SMALL LETTER X WITH DOT ABOVE" . 7819)
("LATIN SMALL LETTER W WITH DOT BELOW" . 7817)
("LATIN SMALL LETTER W WITH DOT ABOVE" . 7815)
("LATIN SMALL LETTER W WITH DIAERESIS" . 7813)
("LATIN SMALL LETTER W WITH ACUTE" . 7811)
("LATIN SMALL LETTER W WITH GRAVE" . 7809)
("LATIN SMALL LETTER V WITH DOT BELOW" . 7807)
("LATIN SMALL LETTER V WITH TILDE" . 7805)
("LATIN SMALL LETTER U WITH MACRON AND DIAERESIS" . 7803)
("LATIN SMALL LETTER U WITH TILDE AND ACUTE" . 7801)
("LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW" . 7799)
("LATIN SMALL LETTER U WITH TILDE BELOW" . 7797)
("LATIN SMALL LETTER U WITH DIAERESIS BELOW" . 7795)
("LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW" . 7793)
("LATIN SMALL LETTER T WITH LINE BELOW" . 7791)
("LATIN SMALL LETTER T WITH DOT BELOW" . 7789)
("LATIN SMALL LETTER T WITH DOT ABOVE" . 7787)
("LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE" . 7785)
("LATIN SMALL LETTER S WITH CARON AND DOT ABOVE" . 7783)
("LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE" . 7781)
("LATIN SMALL LETTER S WITH DOT BELOW" . 7779)
("LATIN SMALL LETTER S WITH DOT ABOVE" . 7777)
("LATIN SMALL LETTER R WITH LINE BELOW" . 7775)
("LATIN SMALL LETTER R WITH DOT BELOW AND MACRON" . 7773)
("LATIN SMALL LETTER R WITH DOT BELOW" . 7771)
("LATIN SMALL LETTER R WITH DOT ABOVE" . 7769)
("LATIN SMALL LETTER P WITH DOT ABOVE" . 7767)
("LATIN SMALL LETTER P WITH ACUTE" . 7765)
("LATIN SMALL LETTER O WITH MACRON AND ACUTE" . 7763)
("LATIN SMALL LETTER O WITH MACRON AND GRAVE" . 7761)
("LATIN SMALL LETTER O WITH TILDE AND DIAERESIS" . 7759)
("LATIN SMALL LETTER O WITH TILDE AND ACUTE" . 7757)
("LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW" . 7755)
("LATIN SMALL LETTER N WITH LINE BELOW" . 7753)
("LATIN SMALL LETTER N WITH DOT BELOW" . 7751)
("LATIN SMALL LETTER N WITH DOT ABOVE" . 7749)
("LATIN SMALL LETTER M WITH DOT BELOW" . 7747)
("LATIN SMALL LETTER M WITH DOT ABOVE" . 7745)
("LATIN SMALL LETTER M WITH ACUTE" . 7743)
("LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW" . 7741)
("LATIN SMALL LETTER L WITH LINE BELOW" . 7739)
("LATIN SMALL LETTER L WITH DOT BELOW AND MACRON" . 7737)
("LATIN SMALL LETTER L WITH DOT BELOW" . 7735)
("LATIN SMALL LETTER K WITH LINE BELOW" . 7733)
("LATIN SMALL LETTER K WITH DOT BELOW" . 7731)
("LATIN SMALL LETTER K WITH ACUTE" . 7729)
("LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE" . 7727)
("LATIN SMALL LETTER I WITH TILDE BELOW" . 7725)
("LATIN SMALL LETTER H WITH BREVE BELOW" . 7723)
("LATIN SMALL LETTER H WITH CEDILLA" . 7721)
("LATIN SMALL LETTER H WITH DIAERESIS" . 7719)
("LATIN SMALL LETTER H WITH DOT BELOW" . 7717)
("LATIN SMALL LETTER H WITH DOT ABOVE" . 7715)
("LATIN SMALL LETTER G WITH MACRON" . 7713)
("LATIN SMALL LETTER F WITH DOT ABOVE" . 7711)
("LATIN SMALL LETTER E WITH CEDILLA AND BREVE" . 7709)
("LATIN SMALL LETTER E WITH TILDE BELOW" . 7707)
("LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW" . 7705)
("LATIN SMALL LETTER E WITH MACRON AND ACUTE" . 7703)
("LATIN SMALL LETTER E WITH MACRON AND GRAVE" . 7701)
("LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW" . 7699)
("LATIN SMALL LETTER D WITH CEDILLA" . 7697)
("LATIN SMALL LETTER D WITH LINE BELOW" . 7695)
("LATIN SMALL LETTER D WITH DOT BELOW" . 7693)
("LATIN SMALL LETTER D WITH DOT ABOVE" . 7691)
("LATIN SMALL LETTER C WITH CEDILLA AND ACUTE" . 7689)
("LATIN SMALL LETTER B WITH LINE BELOW" . 7687)
("LATIN SMALL LETTER B WITH DOT BELOW" . 7685)
("LATIN SMALL LETTER B WITH DOT ABOVE" . 7683)
("LATIN SMALL LETTER A WITH RING BELOW" . 7681)
("COMBINING LATIN SMALL LETTER U WITH DIAERESIS" . 7668)
("COMBINING LATIN SMALL LETTER O WITH DIAERESIS" . 7667)
("COMBINING LATIN SMALL LETTER A WITH DIAERESIS" . 7666)
("COMBINING LATIN SMALL LETTER W" . 7665)
("COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE" . 7664)
("COMBINING LATIN SMALL LETTER ESH" . 7663)
("COMBINING LATIN SMALL LETTER P" . 7662)
("COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE" . 7661)
("COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE" . 7660)
("COMBINING LATIN SMALL LETTER F" . 7659)
("COMBINING LATIN SMALL LETTER SCHWA" . 7658)
("COMBINING LATIN SMALL LETTER BETA" . 7657)
("COMBINING LATIN SMALL LETTER B" . 7656)
("COMBINING LATIN SMALL LETTER ALPHA" . 7655)
("COMBINING LATIN SMALL LETTER Z" . 7654)
("COMBINING LATIN SMALL LETTER LONG S" . 7653)
("COMBINING LATIN SMALL LETTER S" . 7652)
("COMBINING LATIN SMALL LETTER R ROTUNDA" . 7651)
("COMBINING LATIN LETTER SMALL CAPITAL R" . 7650)
("COMBINING LATIN LETTER SMALL CAPITAL N" . 7649)
("COMBINING LATIN SMALL LETTER N" . 7648)
("COMBINING LATIN LETTER SMALL CAPITAL M" . 7647)
("COMBINING LATIN LETTER SMALL CAPITAL L" . 7646)
("COMBINING LATIN SMALL LETTER L" . 7645)
("COMBINING LATIN SMALL LETTER K" . 7644)
("COMBINING LATIN LETTER SMALL CAPITAL G" . 7643)
("COMBINING LATIN SMALL LETTER G" . 7642)
("COMBINING LATIN SMALL LETTER ETH" . 7641)
("COMBINING LATIN SMALL LETTER INSULAR D" . 7640)
("COMBINING LATIN SMALL LETTER C CEDILLA" . 7639)
("COMBINING LATIN SMALL LETTER AV" . 7638)
("COMBINING LATIN SMALL LETTER AO" . 7637)
("COMBINING LATIN SMALL LETTER AE" . 7636)
("COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE" . 7635)
("COMBINING LATIN SMALL LETTER R BELOW" . 7626)
("LATIN SMALL LETTER EZH WITH RETROFLEX HOOK" . 7578)
("LATIN SMALL LETTER U WITH RETROFLEX HOOK" . 7577)
("LATIN SMALL LETTER ESH WITH RETROFLEX HOOK" . 7576)
("LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK" . 7575)
("LATIN SMALL LETTER I WITH RETROFLEX HOOK" . 7574)
("LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK" . 7573)
("LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK" . 7572)
("LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK" . 7571)
("LATIN SMALL LETTER E WITH RETROFLEX HOOK" . 7570)
("LATIN SMALL LETTER D WITH HOOK AND TAIL" . 7569)
("LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK" . 7568)
("LATIN SMALL LETTER A WITH RETROFLEX HOOK" . 7567)
("LATIN SMALL LETTER Z WITH PALATAL HOOK" . 7566)
("LATIN SMALL LETTER X WITH PALATAL HOOK" . 7565)
("LATIN SMALL LETTER V WITH PALATAL HOOK" . 7564)
("LATIN SMALL LETTER ESH WITH PALATAL HOOK" . 7563)
("LATIN SMALL LETTER S WITH PALATAL HOOK" . 7562)
("LATIN SMALL LETTER R WITH PALATAL HOOK" . 7561)
("LATIN SMALL LETTER P WITH PALATAL HOOK" . 7560)
("LATIN SMALL LETTER N WITH PALATAL HOOK" . 7559)
("LATIN SMALL LETTER M WITH PALATAL HOOK" . 7558)
("LATIN SMALL LETTER L WITH PALATAL HOOK" . 7557)
("LATIN SMALL LETTER K WITH PALATAL HOOK" . 7556)
("LATIN SMALL LETTER G WITH PALATAL HOOK" . 7555)
("LATIN SMALL LETTER F WITH PALATAL HOOK" . 7554)
("LATIN SMALL LETTER D WITH PALATAL HOOK" . 7553)
("LATIN SMALL LETTER B WITH PALATAL HOOK" . 7552)
("LATIN SMALL LETTER UPSILON WITH STROKE" . 7551)
("LATIN SMALL CAPITAL LETTER U WITH STROKE" . 7550)
("LATIN SMALL LETTER P WITH STROKE" . 7549)
("LATIN SMALL LETTER IOTA WITH STROKE" . 7548)
("LATIN SMALL CAPITAL LETTER I WITH STROKE" . 7547)
("LATIN SMALL LETTER TH WITH STRIKETHROUGH" . 7546)
("LATIN SMALL LETTER INSULAR G" . 7545)
("LATIN SMALL LETTER TURNED G" . 7543)
("LATIN SMALL LETTER Z WITH MIDDLE TILDE" . 7542)
("LATIN SMALL LETTER T WITH MIDDLE TILDE" . 7541)
("LATIN SMALL LETTER S WITH MIDDLE TILDE" . 7540)
("LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE" . 7539)
("LATIN SMALL LETTER R WITH MIDDLE TILDE" . 7538)
("LATIN SMALL LETTER P WITH MIDDLE TILDE" . 7537)
("LATIN SMALL LETTER N WITH MIDDLE TILDE" . 7536)
("LATIN SMALL LETTER M WITH MIDDLE TILDE" . 7535)
("LATIN SMALL LETTER F WITH MIDDLE TILDE" . 7534)
("LATIN SMALL LETTER D WITH MIDDLE TILDE" . 7533)
("LATIN SMALL LETTER B WITH MIDDLE TILDE" . 7532)
("LATIN SMALL LETTER UE" . 7531)
("LATIN SUBSCRIPT SMALL LETTER V" . 7525)
("LATIN SUBSCRIPT SMALL LETTER U" . 7524)
("LATIN SUBSCRIPT SMALL LETTER R" . 7523)
("LATIN SUBSCRIPT SMALL LETTER I" . 7522)
("LATIN LETTER SMALL CAPITAL EZH" . 7459)
("LATIN LETTER SMALL CAPITAL Z" . 7458)
("LATIN LETTER SMALL CAPITAL W" . 7457)
("LATIN LETTER SMALL CAPITAL V" . 7456)
("LATIN SMALL LETTER SIDEWAYS TURNED M" . 7455)
("LATIN SMALL LETTER SIDEWAYS DIAERESIZED U" . 7454)
("LATIN SMALL LETTER SIDEWAYS U" . 7453)
("LATIN LETTER SMALL CAPITAL U" . 7452)
("LATIN LETTER SMALL CAPITAL T" . 7451)
("LATIN LETTER SMALL CAPITAL TURNED R" . 7450)
("LATIN LETTER SMALL CAPITAL REVERSED R" . 7449)
("LATIN LETTER SMALL CAPITAL P" . 7448)
("LATIN SMALL LETTER BOTTOM HALF O" . 7447)
("LATIN SMALL LETTER TOP HALF O" . 7446)
("LATIN LETTER SMALL CAPITAL OU" . 7445)
("LATIN SMALL LETTER TURNED OE" . 7444)
("LATIN SMALL LETTER SIDEWAYS O WITH STROKE" . 7443)
("LATIN SMALL LETTER SIDEWAYS OPEN O" . 7442)
("LATIN SMALL LETTER SIDEWAYS O" . 7441)
("LATIN LETTER SMALL CAPITAL OPEN O" . 7440)
("LATIN LETTER SMALL CAPITAL O" . 7439)
("LATIN LETTER SMALL CAPITAL REVERSED N" . 7438)
("LATIN LETTER SMALL CAPITAL M" . 7437)
("LATIN LETTER SMALL CAPITAL L WITH STROKE" . 7436)
("LATIN LETTER SMALL CAPITAL K" . 7435)
("LATIN LETTER SMALL CAPITAL J" . 7434)
("LATIN SMALL LETTER TURNED I" . 7433)
("LATIN SMALL LETTER TURNED OPEN E" . 7432)
("LATIN LETTER SMALL CAPITAL E" . 7431)
("LATIN LETTER SMALL CAPITAL ETH" . 7430)
("LATIN LETTER SMALL CAPITAL D" . 7429)
("LATIN LETTER SMALL CAPITAL C" . 7428)
("LATIN LETTER SMALL CAPITAL BARRED B" . 7427)
("LATIN SMALL LETTER TURNED AE" . 7426)
("LATIN LETTER SMALL CAPITAL AE" . 7425)
("LATIN LETTER SMALL CAPITAL A" . 7424)
("COMBINING LATIN SMALL LETTER X" . 879)
("COMBINING LATIN SMALL LETTER V" . 878)
("COMBINING LATIN SMALL LETTER T" . 877)
("COMBINING LATIN SMALL LETTER R" . 876)
("COMBINING LATIN SMALL LETTER M" . 875)
("COMBINING LATIN SMALL LETTER H" . 874)
("COMBINING LATIN SMALL LETTER D" . 873)
("COMBINING LATIN SMALL LETTER C" . 872)
("COMBINING LATIN SMALL LETTER U" . 871)
("COMBINING LATIN SMALL LETTER O" . 870)
("COMBINING LATIN SMALL LETTER I" . 869)
("COMBINING LATIN SMALL LETTER E" . 868)
("COMBINING LATIN SMALL LETTER A" . 867)
("LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL" . 687)
("LATIN SMALL LETTER TURNED H WITH FISHHOOK" . 686)
("LATIN SMALL LETTER LZ DIGRAPH" . 683)
("LATIN SMALL LETTER LS DIGRAPH" . 682)
("LATIN SMALL LETTER FENG DIGRAPH" . 681)
("LATIN SMALL LETTER T C CURL" . 680)
("LATIN SMALL LETTER TC DIGRAPH WITH CURL" . 680)
("LATIN SMALL LETTER T ESH" . 679)
("LATIN SMALL LETTER TESH DIGRAPH" . 679)
("LATIN SMALL LETTER T S" . 678)
("LATIN SMALL LETTER TS DIGRAPH" . 678)
("LATIN SMALL LETTER D Z CURL" . 677)
("LATIN SMALL LETTER DZ DIGRAPH WITH CURL" . 677)
("LATIN SMALL LETTER D YOGH" . 676)
("LATIN SMALL LETTER DEZH DIGRAPH" . 676)
("LATIN SMALL LETTER D Z" . 675)
("LATIN SMALL LETTER DZ DIGRAPH" . 675)
("LATIN SMALL LETTER Q HOOK" . 672)
("LATIN SMALL LETTER Q WITH HOOK" . 672)
("LATIN LETTER SMALL CAPITAL L" . 671)
("LATIN SMALL LETTER TURNED K" . 670)
("LATIN SMALL LETTER CROSSED-TAIL J" . 669)
("LATIN SMALL LETTER J WITH CROSSED-TAIL" . 669)
("LATIN LETTER SMALL CAPITAL H" . 668)
("LATIN LETTER SMALL CAPITAL G HOOK" . 667)
("LATIN LETTER SMALL CAPITAL G WITH HOOK" . 667)
("LATIN SMALL LETTER CLOSED EPSILON" . 666)
("LATIN SMALL LETTER CLOSED OPEN E" . 666)
("LATIN LETTER SMALL CAPITAL B" . 665)
("LATIN SMALL LETTER YOGH CURL" . 659)
("LATIN SMALL LETTER EZH WITH CURL" . 659)
("LATIN SMALL LETTER EZH" . 658)
("LATIN SMALL LETTER Z CURL" . 657)
("LATIN SMALL LETTER Z WITH CURL" . 657)
("LATIN SMALL LETTER Z RETROFLEX HOOK" . 656)
("LATIN SMALL LETTER Z WITH RETROFLEX HOOK" . 656)
("LATIN LETTER SMALL CAPITAL Y" . 655)
("LATIN SMALL LETTER TURNED Y" . 654)
("LATIN SMALL LETTER TURNED W" . 653)
("LATIN SMALL LETTER TURNED V" . 652)
("LATIN SMALL LETTER SCRIPT V" . 651)
("LATIN SMALL LETTER V WITH HOOK" . 651)
("LATIN SMALL LETTER UPSILON" . 650)
("LATIN SMALL LETTER U BAR" . 649)
("LATIN SMALL LETTER T RETROFLEX HOOK" . 648)
("LATIN SMALL LETTER T WITH RETROFLEX HOOK" . 648)
("LATIN SMALL LETTER TURNED T" . 647)
("LATIN SMALL LETTER ESH CURL" . 646)
("LATIN SMALL LETTER ESH WITH CURL" . 646)
("LATIN SMALL LETTER SQUAT REVERSED ESH" . 645)
("LATIN SMALL LETTER DOTLESS J BAR HOOK" . 644)
("LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK" . 644)
("LATIN SMALL LETTER ESH" . 643)
("LATIN SMALL LETTER S HOOK" . 642)
("LATIN SMALL LETTER S WITH HOOK" . 642)
("LATIN LETTER SMALL CAPITAL INVERTED R" . 641)
("LATIN LETTER SMALL CAPITAL R" . 640)
("LATIN SMALL LETTER REVERSED FISHHOOK R" . 639)
("LATIN SMALL LETTER REVERSED R WITH FISHHOOK" . 639)
("LATIN SMALL LETTER FISHHOOK R" . 638)
("LATIN SMALL LETTER R WITH FISHHOOK" . 638)
("LATIN SMALL LETTER R HOOK" . 637)
("LATIN SMALL LETTER R WITH TAIL" . 637)
("LATIN SMALL LETTER R WITH LONG LEG" . 636)
("LATIN SMALL LETTER TURNED R HOOK" . 635)
("LATIN SMALL LETTER TURNED R WITH HOOK" . 635)
("LATIN SMALL LETTER TURNED R WITH LONG LEG" . 634)
("LATIN SMALL LETTER TURNED R" . 633)
("LATIN SMALL LETTER PHI" . 632)
("LATIN SMALL LETTER CLOSED OMEGA" . 631)
("LATIN LETTER SMALL CAPITAL O E" . 630)
("LATIN LETTER SMALL CAPITAL OE" . 630)
("LATIN SMALL LETTER BARRED O" . 629)
("LATIN LETTER SMALL CAPITAL N" . 628)
("LATIN SMALL LETTER N RETROFLEX HOOK" . 627)
("LATIN SMALL LETTER N WITH RETROFLEX HOOK" . 627)
("LATIN SMALL LETTER N HOOK" . 626)
("LATIN SMALL LETTER N WITH LEFT HOOK" . 626)
("LATIN SMALL LETTER M HOOK" . 625)
("LATIN SMALL LETTER M WITH HOOK" . 625)
("LATIN SMALL LETTER TURNED M WITH LONG LEG" . 624)
("LATIN SMALL LETTER TURNED M" . 623)
("LATIN SMALL LETTER L YOGH" . 622)
("LATIN SMALL LETTER LEZH" . 622)
("LATIN SMALL LETTER L RETROFLEX HOOK" . 621)
("LATIN SMALL LETTER L WITH RETROFLEX HOOK" . 621)
("LATIN SMALL LETTER L BELT" . 620)
("LATIN SMALL LETTER L WITH BELT" . 620)
("LATIN SMALL LETTER L WITH MIDDLE TILDE" . 619)
("LATIN LETTER SMALL CAPITAL I" . 618)
("LATIN SMALL LETTER IOTA" . 617)
("LATIN SMALL LETTER BARRED I" . 616)
("LATIN SMALL LETTER I WITH STROKE" . 616)
("LATIN SMALL LETTER HENG HOOK" . 615)
("LATIN SMALL LETTER HENG WITH HOOK" . 615)
("LATIN SMALL LETTER H HOOK" . 614)
("LATIN SMALL LETTER H WITH HOOK" . 614)
("LATIN SMALL LETTER TURNED H" . 613)
("LATIN SMALL LETTER BABY GAMMA" . 612)
("LATIN SMALL LETTER RAMS HORN" . 612)
("LATIN SMALL LETTER GAMMA" . 611)
("LATIN LETTER SMALL CAPITAL G" . 610)
("LATIN SMALL LETTER SCRIPT G" . 609)
("LATIN SMALL LETTER G HOOK" . 608)
("LATIN SMALL LETTER G WITH HOOK" . 608)
("LATIN SMALL LETTER DOTLESS J BAR" . 607)
("LATIN SMALL LETTER DOTLESS J WITH STROKE" . 607)
("LATIN SMALL LETTER CLOSED REVERSED EPSILON" . 606)
("LATIN SMALL LETTER CLOSED REVERSED OPEN E" . 606)
("LATIN SMALL LETTER REVERSED EPSILON HOOK" . 605)
("LATIN SMALL LETTER REVERSED OPEN E WITH HOOK" . 605)
("LATIN SMALL LETTER REVERSED EPSILON" . 604)
("LATIN SMALL LETTER REVERSED OPEN E" . 604)
("LATIN SMALL LETTER EPSILON" . 603)
("LATIN SMALL LETTER OPEN E" . 603)
("LATIN SMALL LETTER SCHWA HOOK" . 602)
("LATIN SMALL LETTER SCHWA WITH HOOK" . 602)
("LATIN SMALL LETTER SCHWA" . 601)
("LATIN SMALL LETTER REVERSED E" . 600)
("LATIN SMALL LETTER D HOOK" . 599)
("LATIN SMALL LETTER D WITH HOOK" . 599)
("LATIN SMALL LETTER D RETROFLEX HOOK" . 598)
("LATIN SMALL LETTER D WITH TAIL" . 598)
("LATIN SMALL LETTER C CURL" . 597)
("LATIN SMALL LETTER C WITH CURL" . 597)
("LATIN SMALL LETTER OPEN O" . 596)
("LATIN SMALL LETTER B HOOK" . 595)
("LATIN SMALL LETTER B WITH HOOK" . 595)
("LATIN SMALL LETTER TURNED SCRIPT A" . 594)
("LATIN SMALL LETTER TURNED ALPHA" . 594)
("LATIN SMALL LETTER SCRIPT A" . 593)
("LATIN SMALL LETTER ALPHA" . 593)
("LATIN SMALL LETTER TURNED A" . 592)
("LATIN SMALL LETTER Y WITH STROKE" . 591)
("LATIN SMALL LETTER R WITH STROKE" . 589)
("LATIN SMALL LETTER Q WITH HOOK TAIL" . 587)
("LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL" . 586)
("LATIN SMALL LETTER J WITH STROKE" . 585)
("LATIN SMALL LETTER E WITH STROKE" . 583)
("LATIN SMALL LETTER GLOTTAL STOP" . 578)
("LATIN SMALL LETTER Z WITH SWASH TAIL" . 576)
("LATIN SMALL LETTER S WITH SWASH TAIL" . 575)
("LATIN SMALL LETTER C WITH STROKE" . 572)
("LATIN SMALL LETTER QP DIGRAPH" . 569)
("LATIN SMALL LETTER DB DIGRAPH" . 568)
("LATIN SMALL LETTER DOTLESS J" . 567)
("LATIN SMALL LETTER T WITH CURL" . 566)
("LATIN SMALL LETTER N WITH CURL" . 565)
("LATIN SMALL LETTER L WITH CURL" . 564)
("LATIN SMALL LETTER Y WITH MACRON" . 563)
("LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON" . 561)
("LATIN SMALL LETTER O WITH DOT ABOVE" . 559)
("LATIN SMALL LETTER O WITH TILDE AND MACRON" . 557)
("LATIN SMALL LETTER O WITH DIAERESIS AND MACRON" . 555)
("LATIN SMALL LETTER E WITH CEDILLA" . 553)
("LATIN SMALL LETTER A WITH DOT ABOVE" . 551)
("LATIN SMALL LETTER Z WITH HOOK" . 549)
("LATIN SMALL LETTER OU" . 547)
("LATIN SMALL LETTER D WITH CURL" . 545)
("LATIN SMALL LETTER H WITH CARON" . 543)
("LATIN SMALL LETTER YOGH" . 658)
("LATIN SMALL LETTER T WITH COMMA BELOW" . 539)
("LATIN SMALL LETTER S WITH COMMA BELOW" . 537)
("LATIN SMALL LETTER U WITH INVERTED BREVE" . 535)
("LATIN SMALL LETTER U WITH DOUBLE GRAVE" . 533)
("LATIN SMALL LETTER R WITH INVERTED BREVE" . 531)
("LATIN SMALL LETTER R WITH DOUBLE GRAVE" . 529)
("LATIN SMALL LETTER O WITH INVERTED BREVE" . 527)
("LATIN SMALL LETTER O WITH DOUBLE GRAVE" . 525)
("LATIN SMALL LETTER I WITH INVERTED BREVE" . 523)
("LATIN SMALL LETTER I WITH DOUBLE GRAVE" . 521)
("LATIN SMALL LETTER E WITH INVERTED BREVE" . 519)
("LATIN SMALL LETTER E WITH DOUBLE GRAVE" . 517)
("LATIN SMALL LETTER A WITH INVERTED BREVE" . 515)
("LATIN SMALL LETTER A WITH DOUBLE GRAVE" . 513)
("LATIN SMALL LETTER O WITH STROKE AND ACUTE" . 511)
("LATIN SMALL LETTER AE WITH ACUTE" . 509)
("LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE" . 507)
("LATIN SMALL LETTER N WITH GRAVE" . 505)
("LATIN SMALL LETTER G WITH ACUTE" . 501)
("LATIN SMALL LETTER DZ" . 499)
("LATIN CAPITAL LETTER D WITH SMALL LETTER Z" . 498)
("LATIN SMALL LETTER J HACEK" . 496)
("LATIN SMALL LETTER J WITH CARON" . 496)
("LATIN SMALL LETTER YOGH HACEK" . 495)
("LATIN SMALL LETTER EZH WITH CARON" . 495)
("LATIN SMALL LETTER O OGONEK MACRON" . 493)
("LATIN SMALL LETTER O WITH OGONEK AND MACRON" . 493)
("LATIN SMALL LETTER O OGONEK" . 491)
("LATIN SMALL LETTER O WITH OGONEK" . 491)
("LATIN SMALL LETTER K HACEK" . 489)
("LATIN SMALL LETTER K WITH CARON" . 489)
("LATIN SMALL LETTER G HACEK" . 487)
("LATIN SMALL LETTER G WITH CARON" . 487)
("LATIN SMALL LETTER G BAR" . 485)
("LATIN SMALL LETTER G WITH STROKE" . 485)
("LATIN SMALL LETTER A E MACRON" . 483)
("LATIN SMALL LETTER AE WITH MACRON" . 483)
("LATIN SMALL LETTER A DOT MACRON" . 481)
("LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON" . 481)
("LATIN SMALL LETTER A DIAERESIS MACRON" . 479)
("LATIN SMALL LETTER A WITH DIAERESIS AND MACRON" . 479)
("LATIN SMALL LETTER TURNED E" . 477)
("LATIN SMALL LETTER U DIAERESIS GRAVE" . 476)
("LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE" . 476)
("LATIN SMALL LETTER U DIAERESIS HACEK" . 474)
("LATIN SMALL LETTER U WITH DIAERESIS AND CARON" . 474)
("LATIN SMALL LETTER U DIAERESIS ACUTE" . 472)
("LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE" . 472)
("LATIN SMALL LETTER U DIAERESIS MACRON" . 470)
("LATIN SMALL LETTER U WITH DIAERESIS AND MACRON" . 470)
("LATIN SMALL LETTER U HACEK" . 468)
("LATIN SMALL LETTER U WITH CARON" . 468)
("LATIN SMALL LETTER O HACEK" . 466)
("LATIN SMALL LETTER O WITH CARON" . 466)
("LATIN SMALL LETTER I HACEK" . 464)
("LATIN SMALL LETTER I WITH CARON" . 464)
("LATIN SMALL LETTER A HACEK" . 462)
("LATIN SMALL LETTER A WITH CARON" . 462)
("LATIN SMALL LETTER N J" . 460)
("LATIN SMALL LETTER NJ" . 460)
("LATIN LETTER CAPITAL N SMALL J" . 459)
("LATIN CAPITAL LETTER N WITH SMALL LETTER J" . 459)
("LATIN SMALL LETTER L J" . 457)
("LATIN SMALL LETTER LJ" . 457)
("LATIN LETTER CAPITAL L SMALL J" . 456)
("LATIN CAPITAL LETTER L WITH SMALL LETTER J" . 456)
("LATIN SMALL LETTER D Z HACEK" . 454)
("LATIN SMALL LETTER DZ WITH CARON" . 454)
("LATIN LETTER CAPITAL D SMALL Z HACEK" . 453)
("LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON" . 453)
("LATIN SMALL LETTER TONE FIVE" . 445)
("LATIN SMALL LETTER YOGH WITH TAIL" . 442)
("LATIN SMALL LETTER EZH WITH TAIL" . 442)
("LATIN SMALL LETTER REVERSED YOGH" . 441)
("LATIN SMALL LETTER EZH REVERSED" . 441)
("LATIN SMALL LETTER Z BAR" . 438)
("LATIN SMALL LETTER Z WITH STROKE" . 438)
("LATIN SMALL LETTER Y HOOK" . 436)
("LATIN SMALL LETTER Y WITH HOOK" . 436)
("LATIN SMALL LETTER U HORN" . 432)
("LATIN SMALL LETTER U WITH HORN" . 432)
("LATIN SMALL LETTER T HOOK" . 429)
("LATIN SMALL LETTER T WITH HOOK" . 429)
("LATIN SMALL LETTER T PALATAL HOOK" . 427)
("LATIN SMALL LETTER T WITH PALATAL HOOK" . 427)
("LATIN SMALL LETTER TONE TWO" . 424)
("LATIN SMALL LETTER P HOOK" . 421)
("LATIN SMALL LETTER P WITH HOOK" . 421)
("LATIN SMALL LETTER O I" . 419)
("LATIN SMALL LETTER OI" . 419)
("LATIN SMALL LETTER O HORN" . 417)
("LATIN SMALL LETTER O WITH HORN" . 417)
("LATIN SMALL LETTER N WITH LONG RIGHT LEG" . 414)
("LATIN SMALL LETTER BARRED LAMBDA" . 411)
("LATIN SMALL LETTER LAMBDA WITH STROKE" . 411)
("LATIN SMALL LETTER BARRED L" . 410)
("LATIN SMALL LETTER L WITH BAR" . 410)
("LATIN SMALL LETTER K HOOK" . 409)
("LATIN SMALL LETTER K WITH HOOK" . 409)
("LATIN SMALL LETTER H V" . 405)
("LATIN SMALL LETTER HV" . 405)
("LATIN SMALL LETTER SCRIPT F" . 402)
("LATIN SMALL LETTER F WITH HOOK" . 402)
("LATIN SMALL LETTER TURNED DELTA" . 397)
("LATIN SMALL LETTER D TOPBAR" . 396)
("LATIN SMALL LETTER D WITH TOPBAR" . 396)
("LATIN SMALL LETTER C HOOK" . 392)
("LATIN SMALL LETTER C WITH HOOK" . 392)
("LATIN SMALL LETTER TONE SIX" . 389)
("LATIN SMALL LETTER B TOPBAR" . 387)
("LATIN SMALL LETTER B WITH TOPBAR" . 387)
("LATIN SMALL LETTER B BAR" . 384)
("LATIN SMALL LETTER B WITH STROKE" . 384)
("LATIN SMALL LETTER LONG S" . 383)
("LATIN SMALL LETTER Z HACEK" . 382)
("LATIN SMALL LETTER Z WITH CARON" . 382)
("LATIN SMALL LETTER Z DOT" . 380)
("LATIN SMALL LETTER Z WITH DOT ABOVE" . 380)
("LATIN SMALL LETTER Z ACUTE" . 378)
("LATIN SMALL LETTER Z WITH ACUTE" . 378)
("LATIN SMALL LETTER Y CIRCUMFLEX" . 375)
("LATIN SMALL LETTER Y WITH CIRCUMFLEX" . 375)
("LATIN SMALL LETTER W CIRCUMFLEX" . 373)
("LATIN SMALL LETTER W WITH CIRCUMFLEX" . 373)
("LATIN SMALL LETTER U OGONEK" . 371)
("LATIN SMALL LETTER U WITH OGONEK" . 371)
("LATIN SMALL LETTER U DOUBLE ACUTE" . 369)
("LATIN SMALL LETTER U WITH DOUBLE ACUTE" . 369)
("LATIN SMALL LETTER U RING" . 367)
("LATIN SMALL LETTER U WITH RING ABOVE" . 367)
("LATIN SMALL LETTER U BREVE" . 365)
("LATIN SMALL LETTER U WITH BREVE" . 365)
("LATIN SMALL LETTER U MACRON" . 363)
("LATIN SMALL LETTER U WITH MACRON" . 363)
("LATIN SMALL LETTER U TILDE" . 361)
("LATIN SMALL LETTER U WITH TILDE" . 361)
("LATIN SMALL LETTER T BAR" . 359)
("LATIN SMALL LETTER T WITH STROKE" . 359)
("LATIN SMALL LETTER T HACEK" . 357)
("LATIN SMALL LETTER T WITH CARON" . 357)
("LATIN SMALL LETTER T CEDILLA" . 355)
("LATIN SMALL LETTER T WITH CEDILLA" . 355)
("LATIN SMALL LETTER S HACEK" . 353)
("LATIN SMALL LETTER S WITH CARON" . 353)
("LATIN SMALL LETTER S CEDILLA" . 351)
("LATIN SMALL LETTER S WITH CEDILLA" . 351)
("LATIN SMALL LETTER S CIRCUMFLEX" . 349)
("LATIN SMALL LETTER S WITH CIRCUMFLEX" . 349)
("LATIN SMALL LETTER S ACUTE" . 347)
("LATIN SMALL LETTER S WITH ACUTE" . 347)
("LATIN SMALL LETTER R HACEK" . 345)
("LATIN SMALL LETTER R WITH CARON" . 345)
("LATIN SMALL LETTER R CEDILLA" . 343)
("LATIN SMALL LETTER R WITH CEDILLA" . 343)
("LATIN SMALL LETTER R ACUTE" . 341)
("LATIN SMALL LETTER R WITH ACUTE" . 341)
("LATIN SMALL LETTER O E" . 339)
("LATIN SMALL LETTER O DOUBLE ACUTE" . 337)
("LATIN SMALL LETTER O WITH DOUBLE ACUTE" . 337)
("LATIN SMALL LETTER O BREVE" . 335)
("LATIN SMALL LETTER O WITH BREVE" . 335)
("LATIN SMALL LETTER O MACRON" . 333)
("LATIN SMALL LETTER O WITH MACRON" . 333)
("LATIN SMALL LETTER ENG" . 331)
("LATIN SMALL LETTER APOSTROPHE N" . 329)
("LATIN SMALL LETTER N PRECEDED BY APOSTROPHE" . 329)
("LATIN SMALL LETTER N HACEK" . 328)
("LATIN SMALL LETTER N WITH CARON" . 328)
("LATIN SMALL LETTER N CEDILLA" . 326)
("LATIN SMALL LETTER N WITH CEDILLA" . 326)
("LATIN SMALL LETTER N ACUTE" . 324)
("LATIN SMALL LETTER N WITH ACUTE" . 324)
("LATIN SMALL LETTER L SLASH" . 322)
("LATIN SMALL LETTER L WITH STROKE" . 322)
("LATIN SMALL LETTER L WITH MIDDLE DOT" . 320)
("LATIN SMALL LETTER L HACEK" . 318)
("LATIN SMALL LETTER L WITH CARON" . 318)
("LATIN SMALL LETTER L CEDILLA" . 316)
("LATIN SMALL LETTER L WITH CEDILLA" . 316)
("LATIN SMALL LETTER L ACUTE" . 314)
("LATIN SMALL LETTER L WITH ACUTE" . 314)
("LATIN SMALL LETTER KRA" . 312)
("LATIN SMALL LETTER K CEDILLA" . 311)
("LATIN SMALL LETTER K WITH CEDILLA" . 311)
("LATIN SMALL LETTER J CIRCUMFLEX" . 309)
("LATIN SMALL LETTER J WITH CIRCUMFLEX" . 309)
("LATIN SMALL LETTER I J" . 307)
("LATIN SMALL LETTER DOTLESS I" . 305)
("LATIN SMALL LETTER I OGONEK" . 303)
("LATIN SMALL LETTER I WITH OGONEK" . 303)
("LATIN SMALL LETTER I BREVE" . 301)
("LATIN SMALL LETTER I WITH BREVE" . 301)
("LATIN SMALL LETTER I MACRON" . 299)
("LATIN SMALL LETTER I WITH MACRON" . 299)
("LATIN SMALL LETTER I TILDE" . 297)
("LATIN SMALL LETTER I WITH TILDE" . 297)
("LATIN SMALL LETTER H BAR" . 295)
("LATIN SMALL LETTER H WITH STROKE" . 295)
("LATIN SMALL LETTER H CIRCUMFLEX" . 293)
("LATIN SMALL LETTER H WITH CIRCUMFLEX" . 293)
("LATIN SMALL LETTER G CEDILLA" . 291)
("LATIN SMALL LETTER G WITH CEDILLA" . 291)
("LATIN SMALL LETTER G DOT" . 289)
("LATIN SMALL LETTER G WITH DOT ABOVE" . 289)
("LATIN SMALL LETTER G BREVE" . 287)
("LATIN SMALL LETTER G WITH BREVE" . 287)
("LATIN SMALL LETTER G CIRCUMFLEX" . 285)
("LATIN SMALL LETTER G WITH CIRCUMFLEX" . 285)
("LATIN SMALL LETTER E HACEK" . 283)
("LATIN SMALL LETTER E WITH CARON" . 283)
("LATIN SMALL LETTER E OGONEK" . 281)
("LATIN SMALL LETTER E WITH OGONEK" . 281)
("LATIN SMALL LETTER E DOT" . 279)
("LATIN SMALL LETTER E WITH DOT ABOVE" . 279)
("LATIN SMALL LETTER E BREVE" . 277)
("LATIN SMALL LETTER E WITH BREVE" . 277)
("LATIN SMALL LETTER E MACRON" . 275)
("LATIN SMALL LETTER E WITH MACRON" . 275)
("LATIN SMALL LETTER D BAR" . 273)
("LATIN SMALL LETTER D WITH STROKE" . 273)
("LATIN SMALL LETTER D HACEK" . 271)
("LATIN SMALL LETTER D WITH CARON" . 271)
("LATIN SMALL LETTER C HACEK" . 269)
("LATIN SMALL LETTER C WITH CARON" . 269)
("LATIN SMALL LETTER C DOT" . 267)
("LATIN SMALL LETTER C WITH DOT ABOVE" . 267)
("LATIN SMALL LETTER C CIRCUMFLEX" . 265)
("LATIN SMALL LETTER C WITH CIRCUMFLEX" . 265)
("LATIN SMALL LETTER C ACUTE" . 263)
("LATIN SMALL LETTER C WITH ACUTE" . 263)
("LATIN SMALL LETTER A OGONEK" . 261)
("LATIN SMALL LETTER A WITH OGONEK" . 261)
("LATIN SMALL LETTER A BREVE" . 259)
("LATIN SMALL LETTER A WITH BREVE" . 259)
("LATIN SMALL LETTER A MACRON" . 257)
("LATIN SMALL LETTER A WITH MACRON" . 257)
("LATIN SMALL LETTER Y DIAERESIS" . 255)
("LATIN SMALL LETTER Y WITH DIAERESIS" . 255)
("LATIN SMALL LETTER THORN" . 254)
("LATIN SMALL LETTER Y ACUTE" . 253)
("LATIN SMALL LETTER Y WITH ACUTE" . 253)
("LATIN SMALL LETTER U DIAERESIS" . 252)
("LATIN SMALL LETTER U WITH DIAERESIS" . 252)
("LATIN SMALL LETTER U CIRCUMFLEX" . 251)
("LATIN SMALL LETTER U WITH CIRCUMFLEX" . 251)
("LATIN SMALL LETTER U ACUTE" . 250)
("LATIN SMALL LETTER U WITH ACUTE" . 250)
("LATIN SMALL LETTER U GRAVE" . 249)
("LATIN SMALL LETTER U WITH GRAVE" . 249)
("LATIN SMALL LETTER O SLASH" . 248)
("LATIN SMALL LETTER O WITH STROKE" . 248)
("LATIN SMALL LETTER O DIAERESIS" . 246)
("LATIN SMALL LETTER O WITH DIAERESIS" . 246)
("LATIN SMALL LETTER O TILDE" . 245)
("LATIN SMALL LETTER O WITH TILDE" . 245)
("LATIN SMALL LETTER O CIRCUMFLEX" . 244)
("LATIN SMALL LETTER O WITH CIRCUMFLEX" . 244)
("LATIN SMALL LETTER O ACUTE" . 243)
("LATIN SMALL LETTER O WITH ACUTE" . 243)
("LATIN SMALL LETTER O GRAVE" . 242)
("LATIN SMALL LETTER O WITH GRAVE" . 242)
("LATIN SMALL LETTER N TILDE" . 241)
("LATIN SMALL LETTER N WITH TILDE" . 241)
("LATIN SMALL LETTER ETH" . 240)
("LATIN SMALL LETTER I DIAERESIS" . 239)
("LATIN SMALL LETTER I WITH DIAERESIS" . 239)
("LATIN SMALL LETTER I CIRCUMFLEX" . 238)
("LATIN SMALL LETTER I WITH CIRCUMFLEX" . 238)
("LATIN SMALL LETTER I ACUTE" . 237)
("LATIN SMALL LETTER I WITH ACUTE" . 237)
("LATIN SMALL LETTER I GRAVE" . 236)
("LATIN SMALL LETTER I WITH GRAVE" . 236)
("LATIN SMALL LETTER E DIAERESIS" . 235)
("LATIN SMALL LETTER E WITH DIAERESIS" . 235)
("LATIN SMALL LETTER E CIRCUMFLEX" . 234)
("LATIN SMALL LETTER E WITH CIRCUMFLEX" . 234)
("LATIN SMALL LETTER E ACUTE" . 233)
("LATIN SMALL LETTER E WITH ACUTE" . 233)
("LATIN SMALL LETTER E GRAVE" . 232)
("LATIN SMALL LETTER E WITH GRAVE" . 232)
("LATIN SMALL LETTER C CEDILLA" . 231)
("LATIN SMALL LETTER C WITH CEDILLA" . 231)
("LATIN SMALL LETTER A E" . 230)
("LATIN SMALL LETTER AE" . 230)
("LATIN SMALL LETTER A RING" . 229)
("LATIN SMALL LETTER A WITH RING ABOVE" . 229)
("LATIN SMALL LETTER A DIAERESIS" . 228)
("LATIN SMALL LETTER A WITH DIAERESIS" . 228)
("LATIN SMALL LETTER A TILDE" . 227)
("LATIN SMALL LETTER A WITH TILDE" . 227)
("LATIN SMALL LETTER A CIRCUMFLEX" . 226)
("LATIN SMALL LETTER A WITH CIRCUMFLEX" . 226)
("LATIN SMALL LETTER A ACUTE" . 225)
("LATIN SMALL LETTER A WITH ACUTE" . 225)
("LATIN SMALL LETTER A GRAVE" . 224)
("LATIN SMALL LETTER A WITH GRAVE" . 224)
("LATIN SMALL LETTER SHARP S" . 223)
("LATIN SMALL LETTER Z" . 122)
("LATIN SMALL LETTER Y" . 121)
("LATIN SMALL LETTER X" . 120)
("LATIN SMALL LETTER W" . 119)
("LATIN SMALL LETTER V" . 118)
("LATIN SMALL LETTER U" . 117)
("LATIN SMALL LETTER T" . 116)
("LATIN SMALL LETTER S" . 115)
("LATIN SMALL LETTER R" . 114)
("LATIN SMALL LETTER Q" . 113)
("LATIN SMALL LETTER P" . 112)
("LATIN SMALL LETTER O" . 111)
("LATIN SMALL LETTER N" . 110)
("LATIN SMALL LETTER M" . 109)
("LATIN SMALL LETTER L" . 108)
("LATIN SMALL LETTER K" . 107)
("LATIN SMALL LETTER J" . 106)
("LATIN SMALL LETTER I" . 105)
("LATIN SMALL LETTER H" . 104)
("LATIN SMALL LETTER G" . 103)
("LATIN SMALL LETTER F" . 102)
("LATIN SMALL LETTER E" . 101)
("LATIN SMALL LETTER D" . 100)
("LATIN SMALL LETTER C" . 99)
("LATIN SMALL LETTER B" . 98)
("LATIN SMALL LETTER A" . 97))
"...")
;;------------------
(defun my-test ()
(my-delete-if-not #'my-char-displayable-p char-names))
(defun my-char-displayable-p (char+code) (char-displayable-p (cdr char+code)))
(defun my-delete-if-not (predicate xs)
(while (and xs (not (funcall predicate (car xs)))) (setq xs (cdr xs)))
(let ((cl-p xs))
(while (cdr cl-p)
(if (not (funcall predicate (cadr cl-p)))
(setcdr cl-p (cddr cl-p))
(setq cl-p (cdr cl-p)))))
xs)
(load-library "mule-util.el")
(load-library "profiler.el")
(profiler-start 'cpu+mem)
(my-test)
(profiler-report)
(profiler-stop)
next prev parent reply other threads:[~2018-02-20 18:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-19 22:07 bug#30539: 26.0; `char-displayable-p' is much slower in Emacs 25 and 26 Drew Adams
2018-02-20 18:08 ` Drew Adams [this message]
2018-02-22 14:50 ` Drew Adams
2018-02-23 1:49 ` Noam Postavsky
2018-02-23 2:43 ` Drew Adams
2018-02-23 3:32 ` Noam Postavsky
2018-02-23 4:07 ` Drew Adams
2018-02-23 7:14 ` Eli Zaretskii
2020-06-27 21:34 ` Drew Adams
2020-11-18 15:35 ` Stefan Kangas
2020-11-18 17:21 ` Eli Zaretskii
2020-11-18 18:30 ` Stefan Kangas
2018-02-28 19:21 ` Charles A. Roelli
[not found] <<8c79c39f-7abb-4591-a676-17fb46af5a8f@default>
[not found] ` <<ec3497d7-9a7d-4be8-8712-19bb6bdd96e8@default>
[not found] ` <<m2d10oj4xj.fsf@aurox.ch>
2018-02-28 19:53 ` Drew Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ec3497d7-9a7d-4be8-8712-19bb6bdd96e8@default \
--to=drew.adams@oracle.com \
--cc=30539@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).