mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-15 05:34:46 +00:00
wineps: Add BiDi support in EMR_EXTTEXTOUTW record.
This commit is contained in:
parent
2df476c11f
commit
0d95b82182
|
@ -45,6 +45,7 @@ C_SRCS = \
|
|||
data/ZapfChancery_MediumItalic.c \
|
||||
data/ZapfDingbats.c \
|
||||
data/agl.c \
|
||||
direction.c \
|
||||
download.c \
|
||||
driver.c \
|
||||
encode.c \
|
||||
|
|
717
dlls/wineps.drv/direction.c
Normal file
717
dlls/wineps.drv/direction.c
Normal file
|
@ -0,0 +1,717 @@
|
|||
/* Unicode BiDi direction table */
|
||||
/* Automatically generated; DO NOT EDIT!! */
|
||||
|
||||
#include "windef.h"
|
||||
|
||||
const unsigned short DECLSPEC_HIDDEN bidi_direction_table[5631] =
|
||||
{
|
||||
/* level 1 offsets */
|
||||
0x0110, 0x0120, 0x0130, 0x0140, 0x0144, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x015e, 0x0152, 0x0152, 0x0152, 0x0152, 0x016a,
|
||||
0x017a, 0x018a, 0x0152, 0x019a, 0x0152, 0x0152, 0x01a0, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x01b0, 0x01bd, 0x01cd, 0x01dd, 0x01ed,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x01fd, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152,
|
||||
/* level 2 offsets */
|
||||
0x020d, 0x021d, 0x0222, 0x0232, 0x0242, 0x024b, 0x025b, 0x026b,
|
||||
0x027b, 0x028b, 0x029b, 0x02ab, 0x02bb, 0x02cb, 0x02d9, 0x02e8,
|
||||
0x02f6, 0x021d, 0x021d, 0x0301, 0x0311, 0x021d, 0x0319, 0x0328,
|
||||
0x0338, 0x0346, 0x0356, 0x0366, 0x0376, 0x0386, 0x021d, 0x0396,
|
||||
0x03a6, 0x03b6, 0x03c5, 0x03d2, 0x03e0, 0x03ef, 0x03f5, 0x03ef,
|
||||
0x021d, 0x03ef, 0x03ef, 0x0400, 0x0410, 0x0420, 0x0430, 0x0440,
|
||||
0x0450, 0x0460, 0x046f, 0x047c, 0x021d, 0x021d, 0x021d, 0x021d,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d,
|
||||
0x021d, 0x048c, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d,
|
||||
0x021d, 0x021d, 0x049c, 0x021d, 0x04ac, 0x04bc, 0x04cc, 0x04dc,
|
||||
0x04eb, 0x04fb, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x050a, 0x0518, 0x0525,
|
||||
0x0535, 0x0545, 0x021d, 0x0555, 0x0565, 0x0575, 0x021d, 0x021d,
|
||||
0x021d, 0x021d, 0x0585, 0x0595, 0x05a5, 0x05b5, 0x05c5, 0x05d5,
|
||||
0x05df, 0x05ef, 0x05ff, 0x060f, 0x061d, 0x062d, 0x063a, 0x0647,
|
||||
0x0655, 0x0664, 0x0672, 0x067f, 0x068f, 0x021d, 0x069c, 0x06a9,
|
||||
0x06b3, 0x06c3, 0x021d, 0x021d, 0x021d, 0x021d, 0x06d3, 0x021d,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d,
|
||||
0x021d, 0x021d, 0x06d9, 0x06e9, 0x021d, 0x021d, 0x021d, 0x06f5,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x0704, 0x021d, 0x021d, 0x021d,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x0714, 0x021d, 0x071e, 0x072e,
|
||||
0x073e, 0x021d, 0x021d, 0x0744, 0x0753, 0x021d, 0x021d, 0x0763,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x0773, 0x06e9, 0x077c,
|
||||
0x021d, 0x078c, 0x021d, 0x021d, 0x021d, 0x079c, 0x07ac, 0x021d,
|
||||
0x021d, 0x07b5, 0x07c5, 0x07d5, 0x021d, 0x07e5, 0x07f5, 0x0800,
|
||||
0x03ef, 0x03ef, 0x03ef, 0x0810, 0x0820, 0x0830, 0x03ef, 0x0840,
|
||||
0x0850, 0x021d, 0x021d, 0x021d, 0x021d, 0x0860, 0x0870, 0x021d,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d,
|
||||
0x021d, 0x021d, 0x021d, 0x021d, 0x021d,
|
||||
/* level 3 offsets */
|
||||
0x0880, 0x088e, 0x089e, 0x08ae, 0x08bd, 0x08c2, 0x08bd, 0x08d2,
|
||||
0x08e1, 0x08e7, 0x08f7, 0x0907, 0x0917, 0x0920, 0x0917, 0x0920,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0928, 0x0936, 0x0936, 0x0946, 0x0955, 0x0965, 0x0965, 0x0965,
|
||||
0x0965, 0x0965, 0x0965, 0x0965, 0x0975, 0x0984, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0921, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0991, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x099b, 0x09ab,
|
||||
0x0965, 0x09ad, 0x09bb, 0x09cb, 0x09d0, 0x09df, 0x09ef, 0x09ff,
|
||||
0x0a0a, 0x0a0a, 0x0a0f, 0x0965, 0x0a1f, 0x0a09, 0x0a0a, 0x0a0a,
|
||||
0x0a0a, 0x0a0a, 0x0a0a, 0x0a2c, 0x0a3b, 0x0a4b, 0x0a55, 0x0a64,
|
||||
0x0a0a, 0x0965, 0x0a74, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a,
|
||||
0x0a6e, 0x0a84, 0x09cb, 0x09cb, 0x0a94, 0x0aa0, 0x09cb, 0x0aae,
|
||||
0x0aba, 0x09cc, 0x09cb, 0x0aca, 0x0ada, 0x0a0a, 0x0aea, 0x0afa,
|
||||
0x0a0a, 0x0a0a, 0x0a6a, 0x0965, 0x0b08, 0x0965, 0x0b15, 0x0917,
|
||||
0x0917, 0x0b1b, 0x0b2a, 0x0993, 0x0b38, 0x0917, 0x0b47, 0x0917,
|
||||
0x0917, 0x0b3c, 0x0b56, 0x0917, 0x0b38, 0x0b64, 0x0b73, 0x0917,
|
||||
0x0917, 0x0b3c, 0x0b82, 0x0b47, 0x0917, 0x0b8e, 0x0b73, 0x0917,
|
||||
0x0917, 0x0b3c, 0x0b9d, 0x0917, 0x0b38, 0x0bac, 0x0b47, 0x0917,
|
||||
0x0917, 0x0bbc, 0x0b56, 0x0bcc, 0x0b38, 0x0917, 0x0b46, 0x0917,
|
||||
0x0917, 0x0917, 0x0b3b, 0x0917, 0x0917, 0x0bd9, 0x0be9, 0x0917,
|
||||
0x0917, 0x0bee, 0x0bfd, 0x0bcc, 0x0b38, 0x0c0b, 0x0b47, 0x0917,
|
||||
0x0917, 0x0b3c, 0x0b77, 0x0917, 0x0b38, 0x0917, 0x0c1b, 0x0917,
|
||||
0x0917, 0x0b78, 0x0b56, 0x0917, 0x0b38, 0x0917, 0x0b47, 0x0917,
|
||||
0x0917, 0x0917, 0x0b3e, 0x0c29, 0x0917, 0x0917, 0x0917, 0x0c38,
|
||||
0x0c48, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0c57,
|
||||
0x098c, 0x0917, 0x0917, 0x0917, 0x0c64, 0x0917, 0x0c6f, 0x0917,
|
||||
0x0917, 0x0917, 0x0c7e, 0x0c88, 0x0c95, 0x0965, 0x0968, 0x0b42,
|
||||
0x0917, 0x0917, 0x0917, 0x0b4a, 0x0ca4, 0x0917, 0x0b7b, 0x0cb2,
|
||||
0x0cc1, 0x0ccf, 0x0cdd, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0b4a, 0x0917, 0x0917, 0x0917, 0x0ced, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x08bd, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0cfd, 0x0d02, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0d10, 0x0917, 0x0b38, 0x0917,
|
||||
0x0b38, 0x0917, 0x0b38, 0x0917, 0x0917, 0x0917, 0x0d1c, 0x0c33,
|
||||
0x0d26, 0x0917, 0x0ced, 0x0d36, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0bcc, 0x0917, 0x0b3f, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0d45, 0x0d53, 0x0d63, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x08bf, 0x0955,
|
||||
0x0955, 0x0917, 0x0d6c, 0x0917, 0x0917, 0x0917, 0x0d78, 0x0d86,
|
||||
0x0d93, 0x0917, 0x0917, 0x0917, 0x0965, 0x0966, 0x0917, 0x0917,
|
||||
0x0917, 0x0b14, 0x0917, 0x0917, 0x0da3, 0x0b46, 0x0917, 0x0db0,
|
||||
0x0b14, 0x0c1b, 0x0917, 0x0dc0, 0x0917, 0x0917, 0x0917, 0x0dce,
|
||||
0x0c1b, 0x0917, 0x0917, 0x0b4b, 0x0ddd, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0ded, 0x0dfc,
|
||||
0x0e05, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0965, 0x0965, 0x0965,
|
||||
0x0965, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0e0f, 0x08d0, 0x08c0, 0x08c0,
|
||||
0x0d00, 0x0e1f, 0x0955, 0x0e2f, 0x0e3f, 0x0e4b, 0x0e50, 0x0e60,
|
||||
0x0e70, 0x0e80, 0x0917, 0x0e90, 0x0e90, 0x0e9f, 0x0965, 0x0965,
|
||||
0x0cb2, 0x0eaf, 0x0ebb, 0x0ec9, 0x0ed8, 0x0ee8, 0x0955, 0x0917,
|
||||
0x0917, 0x0ef6, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0f06, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0f10, 0x0917, 0x0917, 0x0917, 0x08c2, 0x0955, 0x094f, 0x0955,
|
||||
0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0f0f, 0x0917, 0x093b,
|
||||
0x0917, 0x0955, 0x0955, 0x0f20, 0x0f28, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0f16, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0955, 0x0f38, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0955, 0x0f45, 0x0955, 0x094e, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0955, 0x0955, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0f55, 0x0f64, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0cb3, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0965, 0x0965, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0938, 0x0917, 0x0917, 0x0955, 0x0f6d, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0955, 0x08ba, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0f10, 0x0917, 0x093a, 0x0f7d, 0x0955, 0x0f8c, 0x0f9c, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0fac, 0x08bd, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x091c, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0955,
|
||||
0x0955, 0x08ba, 0x0917, 0x0d00, 0x0917, 0x0917, 0x0917, 0x0955,
|
||||
0x0917, 0x0fb9, 0x0917, 0x0917, 0x0917, 0x0954, 0x08c1, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0fc8, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x08bf, 0x0917, 0x08be, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0955, 0x0955, 0x0955, 0x0955, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0955, 0x0955, 0x0955, 0x0f0f, 0x0917, 0x0917, 0x0917, 0x08c0,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0cb3, 0x0fd8, 0x0917,
|
||||
0x0b49, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0c1b, 0x0955,
|
||||
0x0955, 0x08bc, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x091f,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0fe8,
|
||||
0x0917, 0x0ff4, 0x1001, 0x0917, 0x0917, 0x0917, 0x0eee, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x100d, 0x0917, 0x0965, 0x0b16, 0x0917,
|
||||
0x0917, 0x1017, 0x0917, 0x1025, 0x0c1b, 0x0917, 0x0917, 0x0b15,
|
||||
0x0917, 0x0917, 0x1035, 0x0917, 0x0917, 0x0b43, 0x0917, 0x0917,
|
||||
0x1043, 0x0cac, 0x1052, 0x0917, 0x0917, 0x0b3c, 0x0917, 0x0917,
|
||||
0x0917, 0x1062, 0x0b47, 0x0917, 0x0b77, 0x0b42, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0ed8, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x1072, 0x0917, 0x1080, 0x108f,
|
||||
0x1099, 0x10a9, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a,
|
||||
0x0a0a, 0x10b9, 0x0ae7, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a,
|
||||
0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a,
|
||||
0x0a0a, 0x0a0a, 0x0a0a, 0x10c9, 0x0955, 0x0a0a, 0x0a0a, 0x0a0a,
|
||||
0x0a0a, 0x0ae8, 0x0a0a, 0x0a0a, 0x10d9, 0x0917, 0x0917, 0x10e9,
|
||||
0x0965, 0x0ced, 0x0965, 0x0955, 0x0955, 0x10f9, 0x1109, 0x1119,
|
||||
0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x0a0a, 0x111f,
|
||||
0x112f, 0x08ae, 0x08bd, 0x08c2, 0x08bd, 0x08c2, 0x0f10, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x113f, 0x08c4,
|
||||
0x114e, 0x0917, 0x0917, 0x0917, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0939, 0x0939, 0x08bd, 0x0917, 0x0917, 0x0917, 0x0917, 0x0cdd,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x115e, 0x0f28,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x116e,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x117e, 0x09cb, 0x09cb, 0x1188, 0x09cb, 0x1197, 0x09cb, 0x09cb,
|
||||
0x09cb, 0x09cc, 0x09c4, 0x0917, 0x0917, 0x0917, 0x09cb, 0x11a4,
|
||||
0x09cb, 0x11af, 0x09cb, 0x11bf, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x09cb, 0x09cb, 0x09cb, 0x09d3, 0x09cb, 0x09c9, 0x09cb, 0x09cb,
|
||||
0x11ce, 0x11de, 0x09cb, 0x11e8, 0x11f8, 0x11f8, 0x09cb, 0x09cb,
|
||||
0x09cb, 0x09cb, 0x0917, 0x0917, 0x09cb, 0x09cb, 0x1208, 0x1213,
|
||||
0x09cb, 0x09cb, 0x09cb, 0x1223, 0x09cb, 0x1233, 0x09cb, 0x1240,
|
||||
0x09cb, 0x124e, 0x0a8b, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x09cb, 0x09cb, 0x09cb, 0x09cb, 0x11f8, 0x0917, 0x0917, 0x0917,
|
||||
0x09cb, 0x09cb, 0x09cb, 0x1258, 0x09cb, 0x09cb, 0x09cb, 0x1268,
|
||||
0x0a0a, 0x0a0a, 0x1278, 0x1288, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x1298, 0x1299, 0x09cb, 0x09cb, 0x12a9, 0x12b9, 0x0917, 0x0917,
|
||||
0x0917, 0x0b4a, 0x09cb, 0x09cb, 0x12c9, 0x0a0a, 0x0a6e, 0x12d9,
|
||||
0x0917, 0x09cb, 0x12e9, 0x0917, 0x0917, 0x09cb, 0x09cf, 0x0917,
|
||||
0x09cb, 0x1213, 0x0b47, 0x0917, 0x0917, 0x1015, 0x0994, 0x0936,
|
||||
0x0f10, 0x12f9, 0x0c1b, 0x0917, 0x0917, 0x1305, 0x0b46, 0x0917,
|
||||
0x0917, 0x0917, 0x0b15, 0x0917, 0x1310, 0x0b13, 0x0917, 0x0917,
|
||||
0x0917, 0x0b45, 0x0c1b, 0x0917, 0x0917, 0x1026, 0x12ff, 0x0917,
|
||||
0x0917, 0x0917, 0x0cb3, 0x131e, 0x0b47, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0cb3, 0x101a, 0x0917,
|
||||
0x0c1b, 0x0917, 0x0917, 0x0b78, 0x0cb2, 0x0917, 0x098e, 0x0b13,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x1015, 0x0c29, 0x132d, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x133c, 0x0b72, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x1349, 0x0cb2, 0x0b77,
|
||||
0x0917, 0x0917, 0x0917, 0x1359, 0x0cb2, 0x0917, 0x0939, 0x0917,
|
||||
0x0917, 0x0917, 0x0b1a, 0x1368, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0b4a, 0x1376, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0cb3,
|
||||
0x0c85, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x1382, 0x0b45, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x1304,
|
||||
0x0cb2, 0x0917, 0x1391, 0x0917, 0x0917, 0x139e, 0x0b41, 0x13ad,
|
||||
0x0917, 0x0917, 0x1013, 0x13bd, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x13cd, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0c7d, 0x13dd, 0x13ec, 0x0917, 0x0917, 0x0917, 0x0917, 0x13fb,
|
||||
0x1368, 0x0917, 0x0917, 0x0917, 0x0917, 0x140a, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0e0a, 0x0c1b, 0x0917,
|
||||
0x0917, 0x116e, 0x140f, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x141a, 0x1429, 0x08bc, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x1439, 0x0995, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0b13, 0x0917, 0x0917, 0x0917, 0x0994,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0cb3, 0x0917, 0x0917, 0x0917,
|
||||
0x0cb3, 0x0b15, 0x0917, 0x0917, 0x0917, 0x0917, 0x1449, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0b76, 0x1459, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0965,
|
||||
0x0965, 0x0967, 0x0965, 0x0994, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x1462,
|
||||
0x146f, 0x147c, 0x0917, 0x0b4d, 0x0917, 0x0917, 0x0917, 0x0928,
|
||||
0x0917, 0x0955, 0x0955, 0x0955, 0x0955, 0x148c, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0f0f, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x091c, 0x0917, 0x0917, 0x1497,
|
||||
0x0917, 0x0917, 0x08be, 0x0917, 0x0917, 0x0917, 0x091e, 0x0917,
|
||||
0x0917, 0x0917, 0x1499, 0x14a7, 0x14a7, 0x14a7, 0x0965, 0x0965,
|
||||
0x0965, 0x14b7, 0x0965, 0x0965, 0x0968, 0x0b43, 0x0b44, 0x0db0,
|
||||
0x09ab, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x14c2, 0x14ca,
|
||||
0x14d8, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0cb3, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x132d, 0x0917, 0x0917, 0x0917, 0x0b4b, 0x14e3, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0b4b, 0x0917, 0x09cb,
|
||||
0x09cb, 0x09cb, 0x09cb, 0x09cb, 0x09cb, 0x09cb, 0x09cb, 0x09cb,
|
||||
0x09cb, 0x09cb, 0x09cb, 0x14f3, 0x0994, 0x0917, 0x0917, 0x09cb,
|
||||
0x09cb, 0x09cb, 0x09cb, 0x14ff, 0x09d1, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0ae9,
|
||||
0x0a0a, 0x0a0a, 0x0a0a, 0x150f, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0ae9, 0x0a0a, 0x0a0a, 0x151f, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x111a, 0x0a0a, 0x152e, 0x153b, 0x1549, 0x1559, 0x1567, 0x156f,
|
||||
0x157f, 0x158a, 0x1599, 0x158a, 0x0917, 0x0917, 0x0917, 0x08bc,
|
||||
0x0955, 0x0955, 0x093a, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x08ba, 0x15a9, 0x0954, 0x0954, 0x0954, 0x0955, 0x0f10,
|
||||
0x15b9, 0x0917, 0x08be, 0x0917, 0x0917, 0x0917, 0x0f16, 0x0917,
|
||||
0x0917, 0x0917, 0x091a, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0f10, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x15c4, 0x0939, 0x0939, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0955, 0x15c5, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0ced, 0x093a, 0x08bd, 0x093a, 0x0955, 0x0955, 0x0955, 0x0f0e,
|
||||
0x0ced, 0x0955, 0x0955, 0x0f0e, 0x0955, 0x0938, 0x08bc, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x08ba, 0x0938, 0x0939, 0x0f0d, 0x0955, 0x0955, 0x15d0, 0x15df,
|
||||
0x093a, 0x0f0d, 0x0f0d, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955,
|
||||
0x0955, 0x0955, 0x0955, 0x0955, 0x0951, 0x0955, 0x0955, 0x093b,
|
||||
0x0917, 0x0917, 0x1164, 0x15ef, 0x0917, 0x08e7, 0x08e7, 0x08e7,
|
||||
0x08e7, 0x08e7, 0x08e7, 0x0917, 0x0917, 0x0917, 0x0917, 0x0917,
|
||||
0x0917, 0x0917, 0x0917, 0x0965, 0x0965, 0x0965, 0x0965, 0x0965,
|
||||
0x0965, 0x0965, 0x0965, 0x0965, 0x0965, 0x0965, 0x0965, 0x0965,
|
||||
0x0965, 0x0965, 0x0917,
|
||||
/* values */
|
||||
0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
|
||||
0x000a, 0x000b, 0x000d, 0x000b, 0x000c, 0x000d, 0x000a, 0x000a,
|
||||
0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
|
||||
0x000a, 0x000a, 0x000d, 0x000d, 0x000d, 0x000b, 0x000c, 0x0000,
|
||||
0x0000, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0008, 0x0007, 0x0008, 0x0007, 0x0007, 0x0004, 0x0004,
|
||||
0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
|
||||
0x0007, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000d, 0x000a,
|
||||
0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
|
||||
0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0007,
|
||||
0x0000, 0x0009, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0x0000, 0x0000, 0x000a, 0x0000, 0x0000, 0x0009,
|
||||
0x0009, 0x0004, 0x0004, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
|
||||
0x0004, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001,
|
||||
0x0000, 0x0000, 0x0009, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0002, 0x0006, 0x0006, 0x0002, 0x0006,
|
||||
0x0006, 0x0002, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0003,
|
||||
0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0000, 0x0000, 0x0005,
|
||||
0x0009, 0x0009, 0x0005, 0x0007, 0x0005, 0x0000, 0x0000, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0003,
|
||||
0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003,
|
||||
0x0003, 0x0009, 0x0003, 0x0003, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0003, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0005, 0x0005, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0005, 0x0005, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
|
||||
0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0001, 0x0005, 0x0006, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0005, 0x0005, 0x0005, 0x0006, 0x0005, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0002, 0x0002, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0002, 0x0001, 0x0001, 0x0006, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0002, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0002, 0x0006,
|
||||
0x0006, 0x0006, 0x0002, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0002, 0x0001, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0001, 0x0003, 0x0003, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0003, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
|
||||
0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0009, 0x0009,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0009,
|
||||
0x0001, 0x0001, 0x0006, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0009, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0006, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0009, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0006, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0009,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
|
||||
0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0006, 0x0001,
|
||||
0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x000c, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001,
|
||||
0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0009, 0x0001, 0x0006, 0x0001, 0x0001, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0006, 0x0006, 0x0006, 0x000a, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000,
|
||||
0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
|
||||
0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
|
||||
0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x000c,
|
||||
0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c,
|
||||
0x000c, 0x000c, 0x000a, 0x000a, 0x000a, 0x0001, 0x0002, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c,
|
||||
0x000d, 0x0011, 0x000f, 0x0012, 0x0010, 0x000e, 0x0007, 0x0009,
|
||||
0x0009, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c,
|
||||
0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0001, 0x0013, 0x0014,
|
||||
0x0015, 0x0016, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
|
||||
0x0004, 0x0001, 0x0001, 0x0001, 0x0004, 0x0004, 0x0004, 0x0004,
|
||||
0x0004, 0x0004, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0001,
|
||||
0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
|
||||
0x0004, 0x0004, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0001,
|
||||
0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009,
|
||||
0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
|
||||
0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000,
|
||||
0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
|
||||
0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001,
|
||||
0x0000, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0009,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
|
||||
0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
|
||||
0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
|
||||
0x0004, 0x0004, 0x0004, 0x0004, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0000,
|
||||
0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000,
|
||||
0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0009, 0x0009, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001,
|
||||
0x0001, 0x0001, 0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
|
||||
0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002, 0x0006, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0008, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0002,
|
||||
0x0001, 0x0002, 0x0002, 0x0001, 0x0002, 0x0002, 0x0001, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0005, 0x0005, 0x0005, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0000,
|
||||
0x0000, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0000, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0x0000, 0x0007, 0x0001, 0x0000, 0x0007, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0009, 0x0000, 0x0000, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000,
|
||||
0x0001, 0x0000, 0x0009, 0x0009, 0x0000, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0001, 0x000a, 0x0001,
|
||||
0x0000, 0x0000, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0008, 0x0007, 0x0008, 0x0007, 0x0007, 0x0009,
|
||||
0x0009, 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0001, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0004,
|
||||
0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
|
||||
0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0002, 0x0001,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0002,
|
||||
0x0002, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0001, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001,
|
||||
0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0000, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002, 0x0006,
|
||||
0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0001, 0x0002, 0x0002, 0x0002, 0x0001, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003,
|
||||
0x0003, 0x0003, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003,
|
||||
0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003,
|
||||
0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0001, 0x0006, 0x0006, 0x0002, 0x0001,
|
||||
0x0001, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0002, 0x0002, 0x0006, 0x0006, 0x0006, 0x0006, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0006, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001,
|
||||
0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006, 0x0001,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0001,
|
||||
0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006,
|
||||
0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006,
|
||||
0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006, 0x0001, 0x0006,
|
||||
0x0006, 0x0001, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0006,
|
||||
0x0001, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009,
|
||||
0x0009, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0001, 0x0001, 0x0000, 0x0001, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x000a, 0x000a, 0x000a, 0x000a, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
|
||||
0x000a, 0x000a, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001,
|
||||
0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0006, 0x0006,
|
||||
0x0006, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0004,
|
||||
0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
|
||||
0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0001, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0001, 0x0006, 0x0006, 0x0001, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0009, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0001, 0x0001, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
|
||||
0x0002, 0x0002, 0x0002, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006,
|
||||
0x0006, 0x0006, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0001, 0x0005,
|
||||
0x0005, 0x0001, 0x0005, 0x0001, 0x0001, 0x0005, 0x0001, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0001, 0x0005, 0x0001, 0x0005, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0005, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0005, 0x0001, 0x0005, 0x0001, 0x0005, 0x0001, 0x0005, 0x0005,
|
||||
0x0005, 0x0001, 0x0005, 0x0005, 0x0001, 0x0005, 0x0001, 0x0001,
|
||||
0x0005, 0x0001, 0x0005, 0x0001, 0x0005, 0x0001, 0x0005, 0x0001,
|
||||
0x0005, 0x0005, 0x0001, 0x0005, 0x0001, 0x0001, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0001, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0005, 0x0001, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0001, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0005, 0x0005, 0x0005, 0x0001, 0x0005, 0x0005,
|
||||
0x0005, 0x0005, 0x0005, 0x0001, 0x0005, 0x0005, 0x0005, 0x0005,
|
||||
0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0001, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
|
||||
0x0004, 0x0004, 0x0004, 0x0004, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001,
|
||||
0x000a, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
|
||||
};
|
|
@ -25,6 +25,7 @@
|
|||
#include <ntgdi.h>
|
||||
#include <winspool.h>
|
||||
#include <ddk/winsplp.h>
|
||||
#include <usp10.h>
|
||||
|
||||
#include "psdrv.h"
|
||||
|
||||
|
@ -1143,6 +1144,585 @@ static BOOL get_text_extent(struct pp_data *data, const WCHAR *str, INT count,
|
|||
return ret;
|
||||
}
|
||||
|
||||
extern const unsigned short bidi_direction_table[] DECLSPEC_HIDDEN;
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
Bidirectional Character Types
|
||||
|
||||
as defined by the Unicode Bidirectional Algorithm Table 3-7.
|
||||
|
||||
Note:
|
||||
|
||||
The list of bidirectional character types here is not grouped the
|
||||
same way as the table 3-7, since the numeric values for the types
|
||||
are chosen to keep the state and action tables compact.
|
||||
------------------------------------------------------------------------*/
|
||||
enum directions
|
||||
{
|
||||
/* input types */
|
||||
/* ON MUST be zero, code relies on ON = N = 0 */
|
||||
ON = 0, /* Other Neutral */
|
||||
L, /* Left Letter */
|
||||
R, /* Right Letter */
|
||||
AN, /* Arabic Number */
|
||||
EN, /* European Number */
|
||||
AL, /* Arabic Letter (Right-to-left) */
|
||||
NSM, /* Non-spacing Mark */
|
||||
CS, /* Common Separator */
|
||||
ES, /* European Separator */
|
||||
ET, /* European Terminator (post/prefix e.g. $ and %) */
|
||||
|
||||
/* resolved types */
|
||||
BN, /* Boundary neutral (type of RLE etc after explicit levels) */
|
||||
|
||||
/* input types, */
|
||||
S, /* Segment Separator (TAB) // used only in L1 */
|
||||
WS, /* White space // used only in L1 */
|
||||
B, /* Paragraph Separator (aka as PS) */
|
||||
|
||||
/* types for explicit controls */
|
||||
RLO, /* these are used only in X1-X9 */
|
||||
RLE,
|
||||
LRO,
|
||||
LRE,
|
||||
PDF,
|
||||
|
||||
LRI, /* Isolate formatting characters new with 6.3 */
|
||||
RLI,
|
||||
FSI,
|
||||
PDI,
|
||||
|
||||
/* resolved types, also resolved directions */
|
||||
NI = ON, /* alias, where ON, WS and S are treated the same */
|
||||
};
|
||||
|
||||
static inline unsigned short get_table_entry_32(const unsigned short *table, UINT ch)
|
||||
{
|
||||
return table[table[table[table[ch >> 12] + ((ch >> 8) & 0x0f)] + ((ch >> 4) & 0x0f)] + (ch & 0xf)];
|
||||
}
|
||||
|
||||
/* Convert the libwine information to the direction enum */
|
||||
static void classify(LPCWSTR lpString, WORD *chartype, DWORD uCount)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
for (i = 0; i < uCount; ++i)
|
||||
chartype[i] = get_table_entry_32(bidi_direction_table, lpString[i]);
|
||||
}
|
||||
|
||||
/* Set a run of cval values at locations all prior to, but not including */
|
||||
/* iStart, to the new value nval. */
|
||||
static void SetDeferredRun(BYTE *pval, int cval, int iStart, int nval)
|
||||
{
|
||||
int i = iStart - 1;
|
||||
for (; i >= iStart - cval; i--)
|
||||
{
|
||||
pval[i] = nval;
|
||||
}
|
||||
}
|
||||
|
||||
/* THE PARAGRAPH LEVEL */
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
Function: resolveParagraphs
|
||||
|
||||
Resolves the input strings into blocks over which the algorithm
|
||||
is then applied.
|
||||
|
||||
Implements Rule P1 of the Unicode Bidi Algorithm
|
||||
|
||||
Input: Text string
|
||||
Character count
|
||||
|
||||
Output: revised character count
|
||||
|
||||
Note: This is a very simplistic function. In effect it restricts
|
||||
the action of the algorithm to the first paragraph in the input
|
||||
where a paragraph ends at the end of the first block separator
|
||||
or at the end of the input text.
|
||||
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
static int resolveParagraphs(WORD *types, int cch)
|
||||
{
|
||||
/* skip characters not of type B */
|
||||
int ich = 0;
|
||||
for(; ich < cch && types[ich] != B; ich++);
|
||||
/* stop after first B, make it a BN for use in the next steps */
|
||||
if (ich < cch && types[ich] == B)
|
||||
types[ich++] = BN;
|
||||
return ich;
|
||||
}
|
||||
|
||||
/* REORDER */
|
||||
/*------------------------------------------------------------------------
|
||||
Function: resolveLines
|
||||
|
||||
Breaks a paragraph into lines
|
||||
|
||||
Input: Array of line break flags
|
||||
Character count
|
||||
In/Out: Array of characters
|
||||
|
||||
Returns the count of characters on the first line
|
||||
|
||||
Note: This function only breaks lines at hard line breaks. Other
|
||||
line breaks can be passed in. If pbrk[n] is TRUE, then a break
|
||||
occurs after the character in pszInput[n]. Breaks before the first
|
||||
character are not allowed.
|
||||
------------------------------------------------------------------------*/
|
||||
static int resolveLines(LPCWSTR pszInput, const BOOL * pbrk, int cch)
|
||||
{
|
||||
/* skip characters not of type LS */
|
||||
int ich = 0;
|
||||
for(; ich < cch; ich++)
|
||||
{
|
||||
if (pszInput[ich] == (WCHAR)'\n' || (pbrk && pbrk[ich]))
|
||||
{
|
||||
ich++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ich;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
Function: resolveWhiteSpace
|
||||
|
||||
Resolves levels for WS and S
|
||||
Implements rule L1 of the Unicode bidi Algorithm.
|
||||
|
||||
Input: Base embedding level
|
||||
Character count
|
||||
Array of direction classes (for one line of text)
|
||||
|
||||
In/Out: Array of embedding levels (for one line of text)
|
||||
|
||||
Note: this should be applied a line at a time. The default driver
|
||||
code supplied in this file assumes a single line of text; for
|
||||
a real implementation, cch and the initial pointer values
|
||||
would have to be adjusted.
|
||||
------------------------------------------------------------------------*/
|
||||
static void resolveWhitespace(int baselevel, const WORD *pcls, BYTE *plevel, int cch)
|
||||
{
|
||||
int cchrun = 0;
|
||||
BYTE oldlevel = baselevel;
|
||||
|
||||
int ich = 0;
|
||||
for (; ich < cch; ich++)
|
||||
{
|
||||
switch(pcls[ich])
|
||||
{
|
||||
default:
|
||||
cchrun = 0; /* any other character breaks the run */
|
||||
break;
|
||||
case WS:
|
||||
cchrun++;
|
||||
break;
|
||||
|
||||
case RLE:
|
||||
case LRE:
|
||||
case LRO:
|
||||
case RLO:
|
||||
case PDF:
|
||||
case LRI:
|
||||
case RLI:
|
||||
case FSI:
|
||||
case PDI:
|
||||
case BN:
|
||||
plevel[ich] = oldlevel;
|
||||
cchrun++;
|
||||
break;
|
||||
|
||||
case S:
|
||||
case B:
|
||||
/* reset levels for WS before eot */
|
||||
SetDeferredRun(plevel, cchrun, ich, baselevel);
|
||||
cchrun = 0;
|
||||
plevel[ich] = baselevel;
|
||||
break;
|
||||
}
|
||||
oldlevel = plevel[ich];
|
||||
}
|
||||
/* reset level before eot */
|
||||
SetDeferredRun(plevel, cchrun, ich, baselevel);
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
Function: BidiLines
|
||||
|
||||
Implements the Line-by-Line phases of the Unicode Bidi Algorithm
|
||||
|
||||
Input: Count of characters
|
||||
Array of character directions
|
||||
|
||||
Inp/Out: Input text
|
||||
Array of levels
|
||||
|
||||
------------------------------------------------------------------------*/
|
||||
static void BidiLines(int baselevel, LPWSTR pszOutLine, LPCWSTR pszLine, const WORD * pclsLine,
|
||||
BYTE * plevelLine, int cchPara, const BOOL * pbrk)
|
||||
{
|
||||
int cchLine = 0;
|
||||
int done = 0;
|
||||
int *run;
|
||||
|
||||
run = HeapAlloc(GetProcessHeap(), 0, cchPara * sizeof(int));
|
||||
if (!run)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
return;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
/* break lines at LS */
|
||||
cchLine = resolveLines(pszLine, pbrk, cchPara);
|
||||
|
||||
/* resolve whitespace */
|
||||
resolveWhitespace(baselevel, pclsLine, plevelLine, cchLine);
|
||||
|
||||
if (pszOutLine)
|
||||
{
|
||||
int i;
|
||||
/* reorder each line in place */
|
||||
ScriptLayout(cchLine, plevelLine, NULL, run);
|
||||
for (i = 0; i < cchLine; i++)
|
||||
pszOutLine[done+run[i]] = pszLine[i];
|
||||
}
|
||||
|
||||
pszLine += cchLine;
|
||||
plevelLine += cchLine;
|
||||
pbrk += pbrk ? cchLine : 0;
|
||||
pclsLine += cchLine;
|
||||
cchPara -= cchLine;
|
||||
done += cchLine;
|
||||
|
||||
} while (cchPara);
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, run);
|
||||
}
|
||||
|
||||
#define WINE_GCPW_FORCE_LTR 0
|
||||
#define WINE_GCPW_FORCE_RTL 1
|
||||
#define WINE_GCPW_DIR_MASK 3
|
||||
|
||||
static BOOL BIDI_Reorder(HDC hDC, /* [in] Display DC */
|
||||
LPCWSTR lpString, /* [in] The string for which information is to be returned */
|
||||
INT uCount, /* [in] Number of WCHARs in string. */
|
||||
DWORD dwFlags, /* [in] GetCharacterPlacement compatible flags */
|
||||
DWORD dwWineGCP_Flags, /* [in] Wine internal flags - Force paragraph direction */
|
||||
LPWSTR lpOutString, /* [out] Reordered string */
|
||||
INT uCountOut, /* [in] Size of output buffer */
|
||||
UINT *lpOrder, /* [out] Logical -> Visual order map */
|
||||
WORD **lpGlyphs, /* [out] reordered, mirrored, shaped glyphs to display */
|
||||
INT *cGlyphs) /* [out] number of glyphs generated */
|
||||
{
|
||||
WORD *chartype = NULL;
|
||||
BYTE *levels = NULL;
|
||||
INT i, done;
|
||||
unsigned glyph_i;
|
||||
BOOL is_complex, ret = FALSE;
|
||||
|
||||
int maxItems;
|
||||
int nItems;
|
||||
SCRIPT_CONTROL Control;
|
||||
SCRIPT_STATE State;
|
||||
SCRIPT_ITEM *pItems = NULL;
|
||||
HRESULT res;
|
||||
SCRIPT_CACHE psc = NULL;
|
||||
WORD *run_glyphs = NULL;
|
||||
WORD *pwLogClust = NULL;
|
||||
SCRIPT_VISATTR *psva = NULL;
|
||||
DWORD cMaxGlyphs = 0;
|
||||
BOOL doGlyphs = TRUE;
|
||||
|
||||
TRACE("%s, %d, 0x%08lx lpOutString=%p, lpOrder=%p\n",
|
||||
debugstr_wn(lpString, uCount), uCount, dwFlags,
|
||||
lpOutString, lpOrder);
|
||||
|
||||
memset(&Control, 0, sizeof(Control));
|
||||
memset(&State, 0, sizeof(State));
|
||||
if (lpGlyphs)
|
||||
*lpGlyphs = NULL;
|
||||
|
||||
if (!(dwFlags & GCP_REORDER))
|
||||
{
|
||||
FIXME("Asked to reorder without reorder flag set\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (lpOutString && uCountOut < uCount)
|
||||
{
|
||||
FIXME("lpOutString too small\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
chartype = HeapAlloc(GetProcessHeap(), 0, uCount * sizeof(WORD));
|
||||
if (!chartype)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (lpOutString)
|
||||
memcpy(lpOutString, lpString, uCount * sizeof(WCHAR));
|
||||
|
||||
is_complex = FALSE;
|
||||
for (i = 0; i < uCount && !is_complex; i++)
|
||||
{
|
||||
if ((lpString[i] >= 0x900 && lpString[i] <= 0xfff) ||
|
||||
(lpString[i] >= 0x1cd0 && lpString[i] <= 0x1cff) ||
|
||||
(lpString[i] >= 0xa840 && lpString[i] <= 0xa8ff))
|
||||
is_complex = TRUE;
|
||||
}
|
||||
|
||||
/* Verify reordering will be required */
|
||||
if (WINE_GCPW_FORCE_RTL == (dwWineGCP_Flags & WINE_GCPW_DIR_MASK))
|
||||
State.uBidiLevel = 1;
|
||||
else if (!is_complex)
|
||||
{
|
||||
done = 1;
|
||||
classify(lpString, chartype, uCount);
|
||||
for (i = 0; i < uCount; i++)
|
||||
switch (chartype[i])
|
||||
{
|
||||
case R:
|
||||
case AL:
|
||||
case RLE:
|
||||
case RLO:
|
||||
done = 0;
|
||||
break;
|
||||
}
|
||||
if (done)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, chartype);
|
||||
if (lpOrder)
|
||||
{
|
||||
for (i = 0; i < uCount; i++)
|
||||
lpOrder[i] = i;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
levels = HeapAlloc(GetProcessHeap(), 0, uCount * sizeof(BYTE));
|
||||
if (!levels)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
maxItems = 5;
|
||||
pItems = HeapAlloc(GetProcessHeap(),0, maxItems * sizeof(SCRIPT_ITEM));
|
||||
if (!pItems)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (lpGlyphs)
|
||||
{
|
||||
cMaxGlyphs = 1.5 * uCount + 16;
|
||||
run_glyphs = HeapAlloc(GetProcessHeap(),0,sizeof(WORD) * cMaxGlyphs);
|
||||
if (!run_glyphs)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
goto cleanup;
|
||||
}
|
||||
pwLogClust = HeapAlloc(GetProcessHeap(),0,sizeof(WORD) * uCount);
|
||||
if (!pwLogClust)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
goto cleanup;
|
||||
}
|
||||
psva = HeapAlloc(GetProcessHeap(),0,sizeof(SCRIPT_VISATTR) * cMaxGlyphs);
|
||||
if (!psva)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
done = 0;
|
||||
glyph_i = 0;
|
||||
while (done < uCount)
|
||||
{
|
||||
INT j;
|
||||
classify(lpString + done, chartype, uCount - done);
|
||||
/* limit text to first block */
|
||||
i = resolveParagraphs(chartype, uCount - done);
|
||||
for (j = 0; j < i; ++j)
|
||||
switch(chartype[j])
|
||||
{
|
||||
case B:
|
||||
case S:
|
||||
case WS:
|
||||
case ON: chartype[j] = NI;
|
||||
default: continue;
|
||||
}
|
||||
|
||||
res = ScriptItemize(lpString + done, i, maxItems, &Control, &State, pItems, &nItems);
|
||||
while (res == E_OUTOFMEMORY)
|
||||
{
|
||||
SCRIPT_ITEM *new_pItems = HeapReAlloc(GetProcessHeap(), 0, pItems, sizeof(*pItems) * maxItems * 2);
|
||||
if (!new_pItems)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
goto cleanup;
|
||||
}
|
||||
pItems = new_pItems;
|
||||
maxItems *= 2;
|
||||
res = ScriptItemize(lpString + done, i, maxItems, &Control, &State, pItems, &nItems);
|
||||
}
|
||||
|
||||
if (lpOutString || lpOrder)
|
||||
for (j = 0; j < nItems; j++)
|
||||
{
|
||||
int k;
|
||||
for (k = pItems[j].iCharPos; k < pItems[j+1].iCharPos; k++)
|
||||
levels[k] = pItems[j].a.s.uBidiLevel;
|
||||
}
|
||||
|
||||
if (lpOutString)
|
||||
{
|
||||
/* assign directional types again, but for WS, S this time */
|
||||
classify(lpString + done, chartype, i);
|
||||
|
||||
BidiLines(State.uBidiLevel, lpOutString + done, lpString + done,
|
||||
chartype, levels, i, 0);
|
||||
}
|
||||
|
||||
if (lpOrder)
|
||||
{
|
||||
int k, lastgood;
|
||||
for (j = lastgood = 0; j < i; ++j)
|
||||
if (levels[j] != levels[lastgood])
|
||||
{
|
||||
--j;
|
||||
if (levels[lastgood] & 1)
|
||||
for (k = j; k >= lastgood; --k)
|
||||
lpOrder[done + k] = done + j - k;
|
||||
else
|
||||
for (k = lastgood; k <= j; ++k)
|
||||
lpOrder[done + k] = done + k;
|
||||
lastgood = ++j;
|
||||
}
|
||||
if (levels[lastgood] & 1)
|
||||
for (k = j - 1; k >= lastgood; --k)
|
||||
lpOrder[done + k] = done + j - 1 - k;
|
||||
else
|
||||
for (k = lastgood; k < j; ++k)
|
||||
lpOrder[done + k] = done + k;
|
||||
}
|
||||
|
||||
if (lpGlyphs && doGlyphs)
|
||||
{
|
||||
BYTE *runOrder;
|
||||
int *visOrder;
|
||||
SCRIPT_ITEM *curItem;
|
||||
|
||||
runOrder = HeapAlloc(GetProcessHeap(), 0, maxItems * sizeof(*runOrder));
|
||||
visOrder = HeapAlloc(GetProcessHeap(), 0, maxItems * sizeof(*visOrder));
|
||||
if (!runOrder || !visOrder)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
HeapFree(GetProcessHeap(), 0, runOrder);
|
||||
HeapFree(GetProcessHeap(), 0, visOrder);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
for (j = 0; j < nItems; j++)
|
||||
runOrder[j] = pItems[j].a.s.uBidiLevel;
|
||||
|
||||
ScriptLayout(nItems, runOrder, visOrder, NULL);
|
||||
|
||||
for (j = 0; j < nItems; j++)
|
||||
{
|
||||
int k;
|
||||
int cChars,cOutGlyphs;
|
||||
curItem = &pItems[visOrder[j]];
|
||||
|
||||
cChars = pItems[visOrder[j]+1].iCharPos - curItem->iCharPos;
|
||||
|
||||
res = ScriptShape(hDC, &psc, lpString + done + curItem->iCharPos, cChars, cMaxGlyphs, &curItem->a, run_glyphs, pwLogClust, psva, &cOutGlyphs);
|
||||
while (res == E_OUTOFMEMORY)
|
||||
{
|
||||
WORD *new_run_glyphs = HeapReAlloc(GetProcessHeap(), 0, run_glyphs, sizeof(*run_glyphs) * cMaxGlyphs * 2);
|
||||
SCRIPT_VISATTR *new_psva = HeapReAlloc(GetProcessHeap(), 0, psva, sizeof(*psva) * cMaxGlyphs * 2);
|
||||
if (!new_run_glyphs || !new_psva)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
HeapFree(GetProcessHeap(), 0, runOrder);
|
||||
HeapFree(GetProcessHeap(), 0, visOrder);
|
||||
HeapFree(GetProcessHeap(), 0, *lpGlyphs);
|
||||
*lpGlyphs = NULL;
|
||||
if (new_run_glyphs)
|
||||
run_glyphs = new_run_glyphs;
|
||||
if (new_psva)
|
||||
psva = new_psva;
|
||||
goto cleanup;
|
||||
}
|
||||
run_glyphs = new_run_glyphs;
|
||||
psva = new_psva;
|
||||
cMaxGlyphs *= 2;
|
||||
res = ScriptShape(hDC, &psc, lpString + done + curItem->iCharPos, cChars, cMaxGlyphs, &curItem->a, run_glyphs, pwLogClust, psva, &cOutGlyphs);
|
||||
}
|
||||
if (res)
|
||||
{
|
||||
if (res == USP_E_SCRIPT_NOT_IN_FONT)
|
||||
TRACE("Unable to shape with currently selected font\n");
|
||||
else
|
||||
FIXME("Unable to shape string (%lx)\n",res);
|
||||
j = nItems;
|
||||
doGlyphs = FALSE;
|
||||
HeapFree(GetProcessHeap(), 0, *lpGlyphs);
|
||||
*lpGlyphs = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
WORD *new_glyphs;
|
||||
if (*lpGlyphs)
|
||||
new_glyphs = HeapReAlloc(GetProcessHeap(), 0, *lpGlyphs, sizeof(**lpGlyphs) * (glyph_i + cOutGlyphs));
|
||||
else
|
||||
new_glyphs = HeapAlloc(GetProcessHeap(), 0, sizeof(**lpGlyphs) * (glyph_i + cOutGlyphs));
|
||||
if (!new_glyphs)
|
||||
{
|
||||
WARN("Out of memory\n");
|
||||
HeapFree(GetProcessHeap(), 0, runOrder);
|
||||
HeapFree(GetProcessHeap(), 0, visOrder);
|
||||
HeapFree(GetProcessHeap(), 0, *lpGlyphs);
|
||||
*lpGlyphs = NULL;
|
||||
goto cleanup;
|
||||
}
|
||||
*lpGlyphs = new_glyphs;
|
||||
for (k = 0; k < cOutGlyphs; k++)
|
||||
(*lpGlyphs)[glyph_i+k] = run_glyphs[k];
|
||||
glyph_i += cOutGlyphs;
|
||||
}
|
||||
}
|
||||
HeapFree(GetProcessHeap(), 0, runOrder);
|
||||
HeapFree(GetProcessHeap(), 0, visOrder);
|
||||
}
|
||||
|
||||
done += i;
|
||||
}
|
||||
if (cGlyphs)
|
||||
*cGlyphs = glyph_i;
|
||||
|
||||
ret = TRUE;
|
||||
cleanup:
|
||||
HeapFree(GetProcessHeap(), 0, chartype);
|
||||
HeapFree(GetProcessHeap(), 0, levels);
|
||||
HeapFree(GetProcessHeap(), 0, pItems);
|
||||
HeapFree(GetProcessHeap(), 0, run_glyphs);
|
||||
HeapFree(GetProcessHeap(), 0, pwLogClust);
|
||||
HeapFree(GetProcessHeap(), 0, psva);
|
||||
ScriptFreeCache(&psc);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline BOOL intersect_rect(RECT *dst, const RECT *src1, const RECT *src2)
|
||||
{
|
||||
dst->left = max(src1->left, src2->left);
|
||||
|
@ -1182,9 +1762,28 @@ static BOOL ext_text_out(struct pp_data *data, HANDLETABLE *htable,
|
|||
RECT rc;
|
||||
POINT *deltas = NULL, width = {0, 0};
|
||||
INT breakRem;
|
||||
WORD *glyphs = NULL;
|
||||
XFORM xform;
|
||||
|
||||
/* TODO: Add BiDi support */
|
||||
if (!(flags & (ETO_GLYPH_INDEX | ETO_IGNORELANGUAGE)) && count > 0)
|
||||
{
|
||||
int glyphs_count = 0;
|
||||
UINT bidi_flags;
|
||||
|
||||
bidi_flags = (GetTextAlign(hdc) & TA_RTLREADING) || (flags & ETO_RTLREADING)
|
||||
? WINE_GCPW_FORCE_RTL : WINE_GCPW_FORCE_LTR;
|
||||
|
||||
BIDI_Reorder(hdc, str, count, GCP_REORDER, bidi_flags,
|
||||
NULL, 0, NULL, &glyphs, &glyphs_count);
|
||||
|
||||
flags |= ETO_IGNORELANGUAGE;
|
||||
if (glyphs)
|
||||
{
|
||||
flags |= ETO_GLYPH_INDEX;
|
||||
count = glyphs_count;
|
||||
str = glyphs;
|
||||
}
|
||||
}
|
||||
|
||||
align = GetTextAlign(hdc);
|
||||
breakRem = data->break_rem;
|
||||
|
@ -1504,6 +2103,7 @@ done:
|
|||
DeleteObject(hbrush);
|
||||
}
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, glyphs);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -5807,6 +5807,7 @@ chdir ".." if -f "./make_unicode";
|
|||
load_data();
|
||||
dump_bidi_dir_table( "dlls/gdi32/uniscribe/direction.c" );
|
||||
dump_bidi_dir_table( "dlls/dwrite/direction.c" );
|
||||
dump_bidi_dir_table( "dlls/wineps.drv/direction.c" );
|
||||
dump_mirroring( "dlls/gdi32/uniscribe/mirror.c" );
|
||||
dump_mirroring( "dlls/dwrite/mirror.c" );
|
||||
dump_bracket( "dlls/gdi32/uniscribe/bracket.c" );
|
||||
|
|
Loading…
Reference in a new issue