Re: Text stuffing with Cairo/pycairo?

Warren Vick <[email protected]> Tue, 30 Apr 2019 20:34:11 +0000
Newsgroups gmane.comp.lib.cairo
Message-ID <DB8PR10MB2876A3C19926DFDCD52C3E53F93A0@DB8PR10MB2876.EURPRD10.PROD.OUTLOOK.COM>
--===============0286507622==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_DB8PR10MB2876A3C19926DFDCD52C3E53F93A0DB8PR10MB2876EURP_"

--_000_DB8PR10MB2876A3C19926DFDCD52C3E53F93A0DB8PR10MB2876EURP_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGVsbG8gRXJpYywNCg0KSSB3YXMgYWJvdXQgdG8gZ2V0IHN0YXJ0ZWQgc28geW91ciByZXBseSBp
cyBtb3N0IHRpbWVseSBhbmQgYXBwcmVjaWF0ZWQuDQoNCknigJltIGNvbXBldGVudCBpbiBDIGFu
ZCBjYW4gc2VlIHdoYXQgeW914oCZcmUgZG9pbmcgaGVyZS4gSSBzaG91bGQgYmUgYWJsZSB0byBw
b3J0IHRvIFB5dGhvbiBlYXNpbHkuDQoNClRoYW5rcyBhZ2Fpbi4NCg0KL1cNCg0KRnJvbTogY2Vj
YXNob25AYW9sLmNvbSA8Y2VjYXNob25AYW9sLmNvbT4NClNlbnQ6IDMwIEFwcmlsIDIwMTkgMTg6
NDgNClRvOiBXYXJyZW4gVmljayA8d3ZpY2tAZXVyb3BhLnVrLmNvbT47IGNhaXJvQGNhaXJvZ3Jh
cGhpY3Mub3JnDQpTdWJqZWN0OiBSZTogW2NhaXJvXSBUZXh0IHN0dWZmaW5nIHdpdGggQ2Fpcm8v
cHljYWlybz8NCg0KDQpIaSBXYXJyZW4sDQoNCkhhdmUgeW91IG1hZGUgc29tZSBwcm9ncmVzcyB3
aXRoIHRoaXM/DQoNCldlbGwsIHlvdSBtaWdodCBuZWVkIHNvbWUgZm9udCBtZXRyaWNzIGFuZCBn
ZXQgdGhlIHRyYW5zZm9ybXMgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBkbyB0aGlzLiBUaGUgZm9s
bG93aW5nIGlzIGluIEMgYnV0IGl0IG1pZ2h0IGJlIGhlbHBmdWwuIFByb2JhYmx5IG5lZWQgdG8g
Y2hhbmdlIGEgZmV3IHRoaW5ncyBhcm91bmQgYnV0IGl0IGlzIGEgc3RhcnQuDQoNCkVyaWMNCg0K
DQovL2djYyAtV2FsbCBjYWlyb190ZXh0X3NpemUuYyAtbyBjYWlyb190ZXh0X3NpemUgYHBrZy1j
b25maWcgLS1jZmxhZ3MgLS1saWJzIGNhaXJvYCAtbG0NCg0KI2luY2x1ZGU8Y2Fpcm8uaD4NCiNp
bmNsdWRlPGNhaXJvLXBkZi5oPg0KI2luY2x1ZGU8c3RkaW8uaD4NCiNpbmNsdWRlPG1hdGguaD4N
Cg0Kc3RhdGljIHZvaWQgdGV4dF9pbl9ib3goY2Fpcm9fdCAqY3IsIGRvdWJsZSBjZW50ZXJfYm94
X3gsIGRvdWJsZSBjZW50ZXJfYm94X3ksIGRvdWJsZSBib3hfd2lkdGgsIGRvdWJsZSBib3hfaGVp
Z2h0LCBkb3VibGUgcm90YXRlLCBjaGFyICpzdHJpbmcpOw0KDQppbnQgbWFpbigpDQogIHsNCiAg
ICBkb3VibGUgd2lkdGg9NjAwLjA7DQogICAgZG91YmxlIGhlaWdodD02MDAuMDsNCiAgICBjaGFy
ICpzdHJpbmcxPSJDZW50ZXIgU3RyaW5nIjsNCiAgICBjaGFyICpzdHJpbmcyPSJUcmFuc2xhdGUg
U3RyaW5nc3Nzc3NzISI7DQogICAgY2hhciAqc3RyaW5nMz0iUm90YXRlIFN0cmluZyI7DQogICAg
Y2hhciAqc3RyaW5nND0iSm95ISEhIjsNCg0KICAgIGNhaXJvX3N1cmZhY2VfdCAqc3VyZmFjZT1j
YWlyb19wZGZfc3VyZmFjZV9jcmVhdGUoImNhaXJvX3Rlc3QxLnBkZiIsIHdpZHRoLCBoZWlnaHQp
Ow0KICAgIGNhaXJvX3QgKmNyPWNhaXJvX2NyZWF0ZShzdXJmYWNlKTsNCg0KICAgIC8vUGFpbnQg
YmFja2dyb3VuZC4NCiAgICBjYWlyb19zZXRfc291cmNlX3JnYmEoY3IsIDEuMCwgMS4wLCAxLjAs
IDEuMCk7DQogICAgY2Fpcm9fcGFpbnQoY3IpOw0KDQogICAgLy9EcmF3IGZyb20gdGhlIGNlbnRl
ciBvZiBzdXJmYWNlLiBHb29kIGZvciB0ZXN0aW5nIHRleHQgYW5kIGJveCBhbGlnbm1lbnQuDQog
ICAgY2Fpcm9fdHJhbnNsYXRlKGNyLCB3aWR0aC8yLjAsIGhlaWdodC8yLjApOw0KICAgIC8vU2Nh
bGUgdGhlIGRyYXdpbmcgaWYgbmVlZGVkLg0KICAgIGNhaXJvX3NjYWxlKGNyLCAxLjAsIDEuMCk7
DQoNCiAgICAvL0RyYXcgY2FydGVzaWFuIGNvb3JkaW5hdGVzLg0KICAgIGNhaXJvX3NldF9zb3Vy
Y2VfcmdiYShjciwgMC4wLCAwLjAsIDAuMCwgMS4wKTsNCiAgICBjYWlyb19tb3ZlX3RvKGNyLCAt
d2lkdGgvMi4wLCAwLjApOw0KICAgIGNhaXJvX2xpbmVfdG8oY3IsIHdpZHRoLzIuMCwgMC4wKTsN
CiAgICBjYWlyb19zdHJva2UoY3IpOw0KICAgIGNhaXJvX21vdmVfdG8oY3IsIDAuMCwgLWhlaWdo
dC8yLjApOw0KICAgIGNhaXJvX2xpbmVfdG8oY3IsIDAuMCwgaGVpZ2h0LzIuMCk7DQogICAgY2Fp
cm9fc3Ryb2tlKGNyKTsNCg0KICAgIGNhaXJvX3NlbGVjdF9mb250X2ZhY2UoY3IsICJjb3VyaWVy
IiwgQ0FJUk9fRk9OVF9TTEFOVF9OT1JNQUwsIENBSVJPX0ZPTlRfV0VJR0hUX0JPTEQpOw0KICAg
IC8vU2luY2UgdGhlIGZvbnQgZ2V0cyBzY2FsZWQgdG8gdGhlIGJveCB0aGUgZGVmYXVsdCBmb250
IHNpemUgc2hvdWxkIGJlIGZpbmUuDQogICAgLy9jYWlyb19zZXRfZm9udF9zaXplKGNyLCAxMC4w
KTsNCg0KICAgIC8vRHJhdyB0ZXh0IGF0IGNlbnRlci4NCiAgICB0ZXh0X2luX2JveChjciwgMC4w
LCAwLjAsIDM1MC4wLCAxMDAuMCwgMC4wLCBzdHJpbmcxKTsNCg0KICAgIC8vVHJhbnNsYXRlIHRl
eHQuDQogICAgdGV4dF9pbl9ib3goY3IsIC0xMjAuMCwgLTE1MC4wLCAzMDAuMCwgMzAuMCwgMC4w
LCBzdHJpbmcyKTsNCg0KICAgIC8vUm90YXRlIHRleHQuDQogICAgdGV4dF9pbl9ib3goY3IsIDE1
MC4wLCAxNTAuMCwgMTIxLjAsIDUyLjAsIE1fUEkvNC4wLCBzdHJpbmczKTsNCg0KICAgIHRleHRf
aW5fYm94KGNyLCAtMTUwLjAsIDE4NS4wLCAxMjEuMCwgNTIuMCwgLU1fUEkvNC4wLCBzdHJpbmc0
KTsNCg0KICAgIHRleHRfaW5fYm94KGNyLCAxNTAuMCwgLTE5MC4wLCAyMjUuMCwgNTIuMCwgLU1f
UEkvNC4wLCBzdHJpbmc0KTsNCg0KICAgIHByaW50ZigiT3V0cHV0IHRvIGNhaXJvX3Rlc3QxLnBk
ZlxuIik7DQoNCiAgICBjYWlyb19kZXN0cm95KGNyKTsNCiAgICBjYWlyb19zdXJmYWNlX2Rlc3Ry
b3koc3VyZmFjZSk7DQoNCiAgICByZXR1cm4gMDsNCiAgfQ0Kc3RhdGljIHZvaWQgdGV4dF9pbl9i
b3goY2Fpcm9fdCAqY3IsIGRvdWJsZSBjZW50ZXJfYm94X3gsIGRvdWJsZSBjZW50ZXJfYm94X3ks
IGRvdWJsZSBib3hfd2lkdGgsIGRvdWJsZSBib3hfaGVpZ2h0LCBkb3VibGUgcm90YXRlLCBjaGFy
ICpzdHJpbmcpDQogIHsNCiAgICBkb3VibGUgbW92ZV94PTAuMDsNCiAgICBkb3VibGUgbW92ZV95
PTAuMDsNCiAgICBkb3VibGUgc2NhbGVfeD0wLjA7DQogICAgZG91YmxlIHNjYWxlX3k9MC4wOw0K
ICAgIGNhaXJvX3RleHRfZXh0ZW50c190IHRlOw0KICAgIGNhaXJvX2ZvbnRfZXh0ZW50c190IGZl
Ow0KDQogICAgLy9HZXQgc29tZSBmb250IG1ldHJpY3MuDQogICAgY2Fpcm9fdGV4dF9leHRlbnRz
KGNyLCBzdHJpbmcsICZ0ZSk7DQogICAgY2Fpcm9fZm9udF9leHRlbnRzKGNyLCAmZmUpOw0KICAg
IG1vdmVfeD0tdGUud2lkdGgvMi4wLXRlLnhfYmVhcmluZzsNCiAgICBtb3ZlX3k9LXRlLmhlaWdo
dC8yLjAtdGUueV9iZWFyaW5nOw0KICAgIC8vUGFkIHRoZSByZWN0YW5nbGUgYSBsaXR0bGUuDQog
ICAgc2NhbGVfeD0tdGUud2lkdGgvMi4wLXRlLnhfYmVhcmluZy00LjA7DQogICAgc2NhbGVfeT0t
dGUuaGVpZ2h0LzIuMC10ZS55X2JlYXJpbmcrZmUuZGVzY2VudDsNCg0KICAgIC8vT3JkZXIgdHJh
bnNmb3JtcyBhbmQgZHJhdy4NCiAgICBjYWlyb19zYXZlKGNyKTsNCiAgICBjYWlyb190cmFuc2xh
dGUoY3IsIGNlbnRlcl9ib3hfeCwgY2VudGVyX2JveF95KTsNCiAgICBjYWlyb19yb3RhdGUoY3Is
IHJvdGF0ZSk7DQogICAgY2Fpcm9fc2NhbGUoY3IsIGJveF93aWR0aC9mYWJzKDIuMCptb3ZlX3gp
LCBib3hfaGVpZ2h0L2ZhYnMoMi4wKm1vdmVfeSkpOw0KICAgIGNhaXJvX3NldF9zb3VyY2Vfcmdi
YShjciwgMC4wLCAxLjAsIDAuMCwgMC40KTsNCiAgICBjYWlyb19yZWN0YW5nbGUoY3IsIC1mYWJz
KHNjYWxlX3gpLCAtZmFicyhzY2FsZV95KSwgZmFicygyLjAqc2NhbGVfeCksIGZhYnMoMi4wKnNj
YWxlX3kpKTsNCiAgICBjYWlyb19maWxsKGNyKTsNCiAgICBjYWlyb19zZXRfc291cmNlX3JnYmEo
Y3IsIDAuMCwgMC4wLCAwLjAsIDEuMCk7DQogICAgY2Fpcm9fbW92ZV90byhjciwgbW92ZV94LCBt
b3ZlX3kpOw0KICAgIGNhaXJvX3Nob3dfdGV4dChjciwgc3RyaW5nKTsNCiAgICBjYWlyb19yZXN0
b3JlKGNyKTsNCiAgfQ0KDQoNCg==

--_000_DB8PR10MB2876A3C19926DFDCD52C3E53F93A0DB8PR10MB2876EURP_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQph
OmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv
cjojMDU2M0MxOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFu
Lk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjoj
OTU0RjcyOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcC5tc29ub3JtYWwwLCBsaS5t
c29ub3JtYWwwLCBkaXYubXNvbm9ybWFsMA0KCXttc28tc3R5bGUtbmFtZTptc29ub3JtYWw7DQoJ
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0OjBjbTsNCgltc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowY207DQoJZm9udC1zaXplOjExLjBwdDsN
Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQpzcGFuLkVtYWlsU3R5bGUxOA0K
CXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIs
c2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1z
dHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlm
Ow0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtz
aXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0
O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48
IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNw
aWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHht
bD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBk
YXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0K
PGJvZHkgbGFuZz0iRU4tR0IiIGxpbms9IiMwNTYzQzEiIHZsaW5rPSIjOTU0RjcyIj4NCjxkaXYg
Y2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkhlbGxvIEVyaWMsPG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0ibXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkkgd2FzIGFib3V0
IHRvIGdldCBzdGFydGVkIHNvIHlvdXIgcmVwbHkgaXMgbW9zdCB0aW1lbHkgYW5kIGFwcHJlY2lh
dGVkLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJtc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj5J4oCZbSBjb21wZXRlbnQgaW4gQyBhbmQgY2FuIHNlZSB3aGF0IHlvdeKAmXJl
IGRvaW5nIGhlcmUuIEkgc2hvdWxkIGJlIGFibGUgdG8gcG9ydCB0byBQeXRob24gZWFzaWx5Ljxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJt
c28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1YWdlOkVO
LVVTIj5UaGFua3MgYWdhaW4uPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0ibXNv
LWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPi9XPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3Bh
biBsYW5nPSJFTi1VUyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIj4gY2VjYXNo
b25AYW9sLmNvbSAmbHQ7Y2VjYXNob25AYW9sLmNvbSZndDsNCjxicj4NCjxiPlNlbnQ6PC9iPiAz
MCBBcHJpbCAyMDE5IDE4OjQ4PGJyPg0KPGI+VG86PC9iPiBXYXJyZW4gVmljayAmbHQ7d3ZpY2tA
ZXVyb3BhLnVrLmNvbSZndDs7IGNhaXJvQGNhaXJvZ3JhcGhpY3Mub3JnPGJyPg0KPGI+U3ViamVj
dDo8L2I+IFJlOiBbY2Fpcm9dIFRleHQgc3R1ZmZpbmcgd2l0aCBDYWlyby9weWNhaXJvPzxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEy
LjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJp
YWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+PGJyPg0KSGkgV2FycmVuLDxicj4NCjxi
cj4NCkhhdmUgeW91IG1hZGUgc29tZSBwcm9ncmVzcyB3aXRoIHRoaXM/PGJyPg0KPGJyPg0KV2Vs
bCwgeW91IG1pZ2h0IG5lZWQgc29tZSBmb250IG1ldHJpY3MgYW5kIGdldCB0aGUgdHJhbnNmb3Jt
cyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGRvIHRoaXMuIFRoZSBmb2xsb3dpbmcgaXMgaW4gQyBi
dXQgaXQgbWlnaHQgYmUgaGVscGZ1bC4gUHJvYmFibHkgbmVlZCB0byBjaGFuZ2UgYSBmZXcgdGhp
bmdzIGFyb3VuZCBidXQgaXQgaXMgYSBzdGFydC48YnI+DQo8YnI+DQpFcmljIDxicj4NCjxicj4N
CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+DQovL2djYyAtV2FsbCBj
YWlyb190ZXh0X3NpemUuYyAtbyBjYWlyb190ZXh0X3NpemUgYHBrZy1jb25maWcgLS1jZmxhZ3Mg
LS1saWJzIGNhaXJvYCAtbG08YnI+DQo8YnI+DQojaW5jbHVkZSZsdDtjYWlyby5oJmd0Ozxicj4N
CiNpbmNsdWRlJmx0O2NhaXJvLXBkZi5oJmd0Ozxicj4NCiNpbmNsdWRlJmx0O3N0ZGlvLmgmZ3Q7
PGJyPg0KI2luY2x1ZGUmbHQ7bWF0aC5oJmd0Ozxicj4NCjxicj4NCnN0YXRpYyB2b2lkIHRleHRf
aW5fYm94KGNhaXJvX3QgKmNyLCBkb3VibGUgY2VudGVyX2JveF94LCBkb3VibGUgY2VudGVyX2Jv
eF95LCBkb3VibGUgYm94X3dpZHRoLCBkb3VibGUgYm94X2hlaWdodCwgZG91YmxlIHJvdGF0ZSwg
Y2hhciAqc3RyaW5nKTs8YnI+DQo8YnI+DQppbnQgbWFpbigpPGJyPg0KJm5ic3A7IHs8YnI+DQom
bmJzcDsmbmJzcDsmbmJzcDsgZG91YmxlIHdpZHRoPTYwMC4wOzxicj4NCiZuYnNwOyZuYnNwOyZu
YnNwOyBkb3VibGUgaGVpZ2h0PTYwMC4wOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjaGFyICpz
dHJpbmcxPSZxdW90O0NlbnRlciBTdHJpbmcmcXVvdDs7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7
IGNoYXIgKnN0cmluZzI9JnF1b3Q7VHJhbnNsYXRlIFN0cmluZ3Nzc3NzcyEmcXVvdDs7PGJyPg0K
Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNoYXIgKnN0cmluZzM9JnF1b3Q7Um90YXRlIFN0cmluZyZxdW90
Ozs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2hhciAqc3RyaW5nND0mcXVvdDtKb3khISEmcXVv
dDs7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWly
b19zdXJmYWNlX3QgKnN1cmZhY2U9Y2Fpcm9fcGRmX3N1cmZhY2VfY3JlYXRlKCZxdW90O2NhaXJv
X3Rlc3QxLnBkZiZxdW90Oywgd2lkdGgsIGhlaWdodCk7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7
IGNhaXJvX3QgKmNyPWNhaXJvX2NyZWF0ZShzdXJmYWNlKTs8YnI+DQo8YnI+DQombmJzcDsmbmJz
cDsmbmJzcDsgLy9QYWludCBiYWNrZ3JvdW5kLjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWly
b19zZXRfc291cmNlX3JnYmEoY3IsIDEuMCwgMS4wLCAxLjAsIDEuMCk7PGJyPg0KJm5ic3A7Jm5i
c3A7Jm5ic3A7IGNhaXJvX3BhaW50KGNyKTs8YnI+DQo8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsg
Ly9EcmF3IGZyb20gdGhlIGNlbnRlciBvZiBzdXJmYWNlLiBHb29kIGZvciB0ZXN0aW5nIHRleHQg
YW5kIGJveCBhbGlnbm1lbnQuPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX3RyYW5zbGF0
ZShjciwgd2lkdGgvMi4wLCBoZWlnaHQvMi4wKTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgLy9T
Y2FsZSB0aGUgZHJhd2luZyBpZiBuZWVkZWQuPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJv
X3NjYWxlKGNyLCAxLjAsIDEuMCk7PGJyPg0KPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IC8vRHJh
dyBjYXJ0ZXNpYW4gY29vcmRpbmF0ZXMuPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX3Nl
dF9zb3VyY2VfcmdiYShjciwgMC4wLCAwLjAsIDAuMCwgMS4wKTs8YnI+DQombmJzcDsmbmJzcDsm
bmJzcDsgY2Fpcm9fbW92ZV90byhjciwgLXdpZHRoLzIuMCwgMC4wKTs8YnI+DQombmJzcDsmbmJz
cDsmbmJzcDsgY2Fpcm9fbGluZV90byhjciwgd2lkdGgvMi4wLCAwLjApOzxicj4NCiZuYnNwOyZu
YnNwOyZuYnNwOyBjYWlyb19zdHJva2UoY3IpOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWly
b19tb3ZlX3RvKGNyLCAwLjAsIC1oZWlnaHQvMi4wKTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsg
Y2Fpcm9fbGluZV90byhjciwgMC4wLCBoZWlnaHQvMi4wKTs8YnI+DQombmJzcDsmbmJzcDsmbmJz
cDsgY2Fpcm9fc3Ryb2tlKGNyKTs8YnI+DQo8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2Fpcm9f
c2VsZWN0X2ZvbnRfZmFjZShjciwgJnF1b3Q7Y291cmllciZxdW90OywgQ0FJUk9fRk9OVF9TTEFO
VF9OT1JNQUwsIENBSVJPX0ZPTlRfV0VJR0hUX0JPTEQpOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNw
OyAvL1NpbmNlIHRoZSBmb250IGdldHMgc2NhbGVkIHRvIHRoZSBib3ggdGhlIGRlZmF1bHQgZm9u
dCBzaXplIHNob3VsZCBiZSBmaW5lLjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyAvL2NhaXJvX3Nl
dF9mb250X3NpemUoY3IsIDEwLjApOzxicj4NCjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyAvL0Ry
YXcgdGV4dCBhdCBjZW50ZXIuPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IHRleHRfaW5fYm94KGNy
LCAwLjAsIDAuMCwgMzUwLjAsIDEwMC4wLCAwLjAsIHN0cmluZzEpOzxicj4NCjxicj4NCiZuYnNw
OyZuYnNwOyZuYnNwOyAvL1RyYW5zbGF0ZSB0ZXh0Ljxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyB0
ZXh0X2luX2JveChjciwgLTEyMC4wLCAtMTUwLjAsIDMwMC4wLCAzMC4wLCAwLjAsIHN0cmluZzIp
Ozxicj4NCjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyAvL1JvdGF0ZSB0ZXh0Ljxicj4NCiZuYnNw
OyZuYnNwOyZuYnNwOyB0ZXh0X2luX2JveChjciwgMTUwLjAsIDE1MC4wLCAxMjEuMCwgNTIuMCwg
TV9QSS80LjAsIHN0cmluZzMpOzxicj4NCjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyB0ZXh0X2lu
X2JveChjciwgLTE1MC4wLCAxODUuMCwgMTIxLjAsIDUyLjAsIC1NX1BJLzQuMCwgc3RyaW5nNCk7
PGJyPg0KPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IHRleHRfaW5fYm94KGNyLCAxNTAuMCwgLTE5
MC4wLCAyMjUuMCwgNTIuMCwgLU1fUEkvNC4wLCBzdHJpbmc0KTs8YnI+DQombmJzcDsmbmJzcDsg
PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IHByaW50ZigmcXVvdDtPdXRwdXQgdG8gY2Fpcm9fdGVz
dDEucGRmXG4mcXVvdDspOzxicj4NCjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWlyb19kZXN0
cm95KGNyKTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KHN1
cmZhY2UpOzxicj4NCjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gMDs8YnI+DQombmJz
cDsgfTxicj4NCnN0YXRpYyB2b2lkIHRleHRfaW5fYm94KGNhaXJvX3QgKmNyLCBkb3VibGUgY2Vu
dGVyX2JveF94LCBkb3VibGUgY2VudGVyX2JveF95LCBkb3VibGUgYm94X3dpZHRoLCBkb3VibGUg
Ym94X2hlaWdodCwgZG91YmxlIHJvdGF0ZSwgY2hhciAqc3RyaW5nKTxicj4NCiZuYnNwOyB7PGJy
Pg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGRvdWJsZSBtb3ZlX3g9MC4wOzxicj4NCiZuYnNwOyZuYnNw
OyZuYnNwOyBkb3VibGUgbW92ZV95PTAuMDs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgZG91Ymxl
IHNjYWxlX3g9MC4wOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBkb3VibGUgc2NhbGVfeT0wLjA7
PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX3RleHRfZXh0ZW50c190IHRlOzxicj4NCiZu
YnNwOyZuYnNwOyZuYnNwOyBjYWlyb19mb250X2V4dGVudHNfdCBmZTs8YnI+DQo8YnI+DQombmJz
cDsmbmJzcDsmbmJzcDsgLy9HZXQgc29tZSBmb250IG1ldHJpY3MuPGJyPg0KJm5ic3A7Jm5ic3A7
Jm5ic3A7IGNhaXJvX3RleHRfZXh0ZW50cyhjciwgc3RyaW5nLCAmYW1wO3RlKTs8YnI+DQombmJz
cDsmbmJzcDsmbmJzcDsgY2Fpcm9fZm9udF9leHRlbnRzKGNyLCAmYW1wO2ZlKTs8YnI+DQombmJz
cDsmbmJzcDsmbmJzcDsgbW92ZV94PS10ZS53aWR0aC8yLjAtdGUueF9iZWFyaW5nOzxicj4NCiZu
YnNwOyZuYnNwOyZuYnNwOyBtb3ZlX3k9LXRlLmhlaWdodC8yLjAtdGUueV9iZWFyaW5nOzxicj4N
CiZuYnNwOyZuYnNwOyZuYnNwOyAvL1BhZCB0aGUgcmVjdGFuZ2xlIGEgbGl0dGxlLjxicj4NCiZu
YnNwOyZuYnNwOyZuYnNwOyBzY2FsZV94PS10ZS53aWR0aC8yLjAtdGUueF9iZWFyaW5nLTQuMDs8
YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgc2NhbGVfeT0tdGUuaGVpZ2h0LzIuMC10ZS55X2JlYXJp
bmcmIzQzO2ZlLmRlc2NlbnQ7PGJyPg0KJm5ic3A7Jm5ic3A7IDxicj4NCiZuYnNwOyZuYnNwOyZu
YnNwOyAvL09yZGVyIHRyYW5zZm9ybXMgYW5kIGRyYXcuPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7
IGNhaXJvX3NhdmUoY3IpOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWlyb190cmFuc2xhdGUo
Y3IsIGNlbnRlcl9ib3hfeCwgY2VudGVyX2JveF95KTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsg
Y2Fpcm9fcm90YXRlKGNyLCByb3RhdGUpOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWlyb19z
Y2FsZShjciwgYm94X3dpZHRoL2ZhYnMoMi4wKm1vdmVfeCksIGJveF9oZWlnaHQvZmFicygyLjAq
bW92ZV95KSk7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX3NldF9zb3VyY2VfcmdiYShj
ciwgMC4wLCAxLjAsIDAuMCwgMC40KTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2Fpcm9fcmVj
dGFuZ2xlKGNyLCAtZmFicyhzY2FsZV94KSwgLWZhYnMoc2NhbGVfeSksIGZhYnMoMi4wKnNjYWxl
X3gpLCBmYWJzKDIuMCpzY2FsZV95KSk7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX2Zp
bGwoY3IpOyA8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2Fpcm9fc2V0X3NvdXJjZV9yZ2JhKGNy
LCAwLjAsIDAuMCwgMC4wLCAxLjApOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWlyb19tb3Zl
X3RvKGNyLCBtb3ZlX3gsIG1vdmVfeSk7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX3No
b3dfdGV4dChjciwgc3RyaW5nKTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2Fpcm9fcmVzdG9y
ZShjcik7IDxicj4NCiZuYnNwOyB9PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+PG86cD4m
bmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpw
PiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_DB8PR10MB2876A3C19926DFDCD52C3E53F93A0DB8PR10MB2876EURP_--

--===============0286507622==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

LS0gCmNhaXJvIG1haWxpbmcgbGlzdApjYWlyb0BjYWlyb2dyYXBoaWNzLm9yZwpodHRwczovL2xp
c3RzLmNhaXJvZ3JhcGhpY3Mub3JnL21haWxtYW4vbGlzdGluZm8vY2Fpcm8=

--===============0286507622==--