← Back to team overview

kicad-developers team mailing list archive

Font support in eeschema and pcbnew on text labels

 

Hello! 
I realized support of cyrillics in eeschema and pcbnew on text labels, it is possible 
also other languages if to add the description of symbols in a file of fonts 
(share/grfonte.kifnt). A format of a file of fonts look in kiFont.h. I send you patch 
to the version trunk revision 1229.

Pavlyukov Alexey
mailto: lexaficus@... 

 ------FpTRGcsz-mPyFOAtT9Iq36S0K:1220960123 Content-Type: text/x-diff; name="lfKiCAD.patch"
Content-Disposition: attachment; filename="lfKiCAD.patch"
Content-Transfer-Encoding: base64

SW5kZXg6IENNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiAxMjI5KQorKysgQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw3ICsx
NjIsOSBAQAogaW5zdGFsbChGSUxFUyBmcmVlcm91dGUuam5scCAKICAgICAgICAgREVTVElOQVRJ
T04gJHtLSUNBRF9CSU59CiAgICAgICAgIENPTVBPTkVOVCByZXNvdXJjZXMpCi0KKyAgICAgICAg
CitpbnN0YWxsKEZJTEVTIHNoYXJlL2dyZm9udGUua2lmbnQgREVTVElOQVRJT04gJHtLSUNBRF9E
QVRBfQorICAgIENPTVBPTkVOVCByZXNvdXJjZXMpCiAKIGlmKFVOSVgpCiAKSW5kZXg6IGNvbW1v
bi9iYXNlX3N0cnVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY29tbW9uL2Jhc2Vfc3RydWN0LmNwcAko
cmV2aXNpb24gMTIyOSkKKysrIGNvbW1vbi9iYXNlX3N0cnVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQxMCw3ICs0MTAsNyBAQAogICogIGFmZmljaGFnZXMgYSB0cm9wIHBldGl0ZSBlY2hlbGxl
CiAgKi8KIHsKLSAgICBpbnQgICAgICAgICAgICBpaSwgamosIGtrLCBuYmNoYXIsIG5icG9pbnRz
LCBBc2NpaUNvZGUsIGVuZGNhcjsKKyAgICBpbnQgICAgICAgICAgICBpaSwgamosIGtrLCBuYmNo
YXIsIG5icG9pbnRzLCBlbmRjYXI7CiAgICAgaW50ICAgICAgICAgICAgazEsIGsyLCB4MCwgeTA7
CiAgICAgaW50ICAgICAgICAgICAgc2l6ZV9oLCBzaXplX3YsIGVzcGFjZW1lbnQ7CiAgICAgY2hh
ciAgICAgICAgICAgZl9jb2QsIHBsdW1lID0gJ1UnOwpAQCAtNDE1LDcgKzQxNSw2IEBACiAgICAg
aW50ICAgICAgICAgICAgc2l6ZV9oLCBzaXplX3YsIGVzcGFjZW1lbnQ7CiAgICAgY2hhciAgICAg
ICAgICAgZl9jb2QsIHBsdW1lID0gJ1UnOwogICAgIGNvbnN0IHd4Q2hhciogIHB0cjsKLSAgICBj
b25zdCBTSF9DT0RFKiBwdGNhcjsKICAgICBpbnQgICAgICAgICAgICB1eDAsIHV5MCwgZHgsIGR5
OyAgICAvLyBDb29yZCBkZSB0cmFjZSBkZXMgc2VnbWVudHMgZGUgdGV4dGUgJiB2YXJpYWJsZXMg
ZGUgY2FsY3VsICovCiAgICAgaW50ICAgICAgICAgICAgY1gsIGNZOyAgICAgICAgICAgICAgLy8g
Q2VudHJlIGR1IHRleHRlCiAgICAgaW50ICAgICAgICAgICAgb3gsIG95OyAgICAgICAgICAgICAg
Ly8gY29vcmQgZGUgdHJhY2UgZHUgY2FyYWN0ZXJlIGNvdXJhbnQKQEAgLTUzOCwxMCArNTM3LDkg
QEAKICAgICB3aGlsZSgga2srKyA8IG5iY2hhciApCiAgICAgewogICAgICAgICB4MCA9IDA7IHkw
ID0gMDsKLSAgICAgICAgQXNjaWlDb2RlID0gKCpwdHIpICYgMjU1OwotICAgICAgICBwdGNhciA9
IGdyYXBoaWNfZm9udGVfc2hhcGVbQXNjaWlDb2RlXTsgIC8qIHB0Y2FyIHBvaW50ZSBsYSBkZXNj
cmlwdGlvbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqICBkdSBjYXJhY3RlcmUgYSBkZXNzaW5lciAqLwotCisgICAgICAgIGtpY2FkOjpGb250OjpC
eXRlQXJyYXlfdCBwYXRoID0gZ2V0S2lDYWRGb250KCkuZ2V0Q2hhclBhdGgoKnB0cik7CisgICAg
ICAgIGtpY2FkOjpGb250OjpCeXRlQXJyYXlfdDo6Y29uc3RfaXRlcmF0b3IgcHRjYXIgPSBwYXRo
LmJlZ2luKCk7ICAKKyAgICAgICAgCiAgICAgICAgIGZvciggZW5kY2FyID0gRkFMU0U7ICFlbmRj
YXI7IHB0Y2FyKysgKQogICAgICAgICB7CiAgICAgICAgICAgICBmX2NvZCA9ICpwdGNhcjsKSW5k
ZXg6IGNvbW1vbi9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb21tb24vQ01ha2VMaXN0
cy50eHQJKHJldmlzaW9uIDEyMjkpCisrKyBjb21tb24vQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICAgICB0b29sYmFycy5jcHAKICAgICB0cmlnby5jcHAK
ICAgICB3b3Jrc2hlZXQuY3BwCi0gICAgd3h3aW5lZGEuY3BwKQorICAgIHd4d2luZWRhLmNwcAor
ICAgIGtpRm9udC5jcHApCiAKIGFkZF9saWJyYXJ5KGNvbW1vbiAke0NPTU1PTl9TUkNTfSkKSW5k
ZXg6IGNvbW1vbi9kcmF3dHh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb21tb24vZHJhd3R4dC5jcHAJ
KHJldmlzaW9uIDEyMjkpCisrKyBjb21tb24vZHJhd3R4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDcgKzM5LDcgQEAKICAqICAgICAgaWYgd2lkdGggPCAwIDogZHJhdyBzZWdtZW50cyBpbiBz
a2V0Y2ggbW9kZSwgd2lkdGggPSBhYnMod2lkdGgpCiAgKi8KIHsKLSAgICBpbnQgICAgICAgICAg
ICBpaSwga2ssIG5iY2hhciwgQXNjaWlDb2RlLCBlbmRjYXI7CisgICAgaW50ICAgICAgICAgICAg
aWksIGtrLCBuYmNoYXIsIGVuZGNhcjsKICAgICBpbnQgICAgICAgICAgICBrMSwgazIsIHgwLCB5
MDsKICAgICBpbnQgICAgICAgICAgICB6b29tOwogICAgIGludCAgICAgICAgICAgIHNpemVfaCwg
c2l6ZV92LCBlc3BhY2VtZW50OwpAQCAtNDQsNyArNDQsNiBAQAogICAgIGludCAgICAgICAgICAg
IHpvb207CiAgICAgaW50ICAgICAgICAgICAgc2l6ZV9oLCBzaXplX3YsIGVzcGFjZW1lbnQ7CiAg
ICAgU0hfQ09ERSAgICAgICAgZl9jb2QsIHBsdW1lID0gJ1UnOwotICAgIGNvbnN0IFNIX0NPREUq
IHB0Y2FyOwogICAgIGludCAgICAgICAgICAgIHB0cjsKICAgICBpbnQgICAgICAgICAgICB1eDAs
IHV5MCwgZHgsIGR5OyAgICAvLyBEcmF3IGNvb3JkaW5hdGUgZm9yIHNlZ21lbnRzIHRvIGRyYXcu
IGFsc28gdXNlZCBpbiBzb21lIG90aGVyIGNhbGN1bGF0aW9uCiAgICAgaW50ICAgICAgICAgICAg
Y1gsIGNZOyAgICAgICAgICAgICAgLy8gVGV4dGUgY2VudGVyCkBAIC0yMTksMTAgKzIxOCwxMCBA
QAogICAgIHdoaWxlKCBraysrIDwgbmJjaGFyICkKICAgICB7CiAgICAgICAgIHgwID0gMDsgeTAg
PSAwOwotICAgICAgICBBc2NpaUNvZGUgPSBUZXh0LkdldENoYXIoIHB0ciApICYgMjU1OwotICAg
ICAgICBwdGNhciA9IGdyYXBoaWNfZm9udGVfc2hhcGVbQXNjaWlDb2RlXTsgIC8qIHB0Y2FyIHBv
aW50ZSBsYSBkZXNjcmlwdGlvbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqICBkdSBjYXJhY3RlcmUgYSBkZXNzaW5lciAqLwogCisgICAgICAgIGtp
Y2FkOjpGb250OjpCeXRlQXJyYXlfdCBwYXRoID0gZ2V0S2lDYWRGb250KCkuZ2V0Q2hhclBhdGgo
VGV4dC5HZXRDaGFyKHB0cikpOworICAgICAgICBraWNhZDo6Rm9udDo6Qnl0ZUFycmF5X3Q6OmNv
bnN0X2l0ZXJhdG9yIHB0Y2FyID0gcGF0aC5iZWdpbigpOyAgCisgICAgICAgIAogICAgICAgICBm
b3IoIGlpID0gMCwgZW5kY2FyID0gRkFMU0U7ICFlbmRjYXI7IHB0Y2FyKysgKQogICAgICAgICB7
CiAgICAgICAgICAgICBmX2NvZCA9ICpwdGNhcjsKQEAgLTMwMCwxMSArMjk5LDEwIEBACiAgKiAg
aWQgRHJhd0dyYXBoaWNUZXh0LCBmb3IgcGxvdCBncmFwaGljIHRleHQKICAqLwogewotICAgIGlu
dCAgICAgICAgICAgIGtrLCBuYmNoYXIsIGVuZCwgQXNjaWlDb2RlOworICAgIGludCAgICAgICAg
ICAgIGtrLCBuYmNoYXIsIGVuZDsKICAgICBpbnQgICAgICAgICAgICBrMSwgazIsIHgwLCB5MCwg
b3gsIG95OwogICAgIGludCAgICAgICAgICAgIHNpemVfaCwgc2l6ZV92LCBlc3BhY2VtZW50Owog
ICAgIFNIX0NPREUgICAgICAgIGZfY29kLCBwbHVtZSA9ICdVJzsKLSAgICBjb25zdCBTSF9DT0RF
KiBwdGNhcjsKICAgICBpbnQgICAgICAgICAgICBwdHI7CiAgICAgaW50ICAgICAgICAgICAgdXgw
LCB1eTAsIGR4LCBkeTsgICAgLy8gQ29vcmQgZGUgdHJhY2UgZGVzIHNlZ21lbnRzIGRlIHRleHRl
ICYgdmFyaWFibGVzIGRlIGNhbGN1bCAqLwogICAgIGludCAgICAgICAgICAgIGNYLCBjWTsgICAg
ICAgICAgICAgIC8vIENlbnRyZSBkdSB0ZXh0ZQpAQCAtNDIzLDEwICs0MjEsOSBAQAogCiAgICAg
d2hpbGUoIGtrKysgPCBuYmNoYXIgKQogICAgIHsKLSAgICAgICAgQXNjaWlDb2RlID0gVGV4dC5H
ZXRDaGFyKCBwdHIgKSAmIDI1NTsKLSAgICAgICAgcHRjYXIgPSBncmFwaGljX2ZvbnRlX3NoYXBl
W0FzY2lpQ29kZV07ICAvKiBwdGNhciBwb2ludGUgbGEgZGVzY3JpcHRpb24KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgZHUgY2FyYWN0ZXJlIGEg
ZGVzc2luZXIgKi8KLQorICAgICAgICBraWNhZDo6Rm9udDo6Qnl0ZUFycmF5X3QgcGF0aCA9IGdl
dEtpQ2FkRm9udCgpLmdldENoYXJQYXRoKFRleHQuR2V0Q2hhcihwdHIpKTsKKyAgICAgICAga2lj
YWQ6OkZvbnQ6OkJ5dGVBcnJheV90Ojpjb25zdF9pdGVyYXRvciBwdGNhciA9IHBhdGguYmVnaW4o
KTsgIAorICAgICAgICAKICAgICAgICAgZm9yKCBlbmQgPSAwOyBlbmQgPT0gMDsgcHRjYXIrKyAp
CiAgICAgICAgIHsKICAgICAgICAgICAgIGZfY29kID0gKnB0Y2FyOwpJbmRleDogY29tbW9uL2tp
Rm9udC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gY29tbW9uL2tpRm9udC5jcHAJKHJldmlzaW9uIDApCisr
KyBjb21tb24va2lGb250LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDkgQEAKKyNpbmNs
dWRlICJraUZvbnQuaCIKKyNpbmNsdWRlIDx3eC9zc3RyZWFtLmg+CisjaW5jbHVkZSA8d3gvd2Zz
dHJlYW0uaD4KKyNpbmNsdWRlIDx3eC90eHRzdHJtLmg+CisjaW5jbHVkZSAiZmN0c3lzLmgiCisj
aW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSA8d3gvZW5jY29udi5oPgorCit1c2luZyBuYW1l
c3BhY2Uga2ljYWQ7CisKK2NvbnN0IGtpY2FkOjpGb250JiBnZXRLaUNhZEZvbnQoKQoreworCXN0
YXRpYyBraWNhZDo6Rm9udCBmb250IChSZXR1cm5LaWNhZERhdGFzUGF0aCgpICsgd3hUKCJncmZv
bnRlLmtpZm50IikpOworCXJldHVybiBmb250OworfQorCisKK0ZvbnQ6OkZvbnQoY29uc3Qgd3hT
dHJpbmcmIGZpbGVuYW1lKQoreworCWxvYWQoZmlsZW5hbWUpOworfQorCit2b2lkIEZvbnQ6Omxv
YWQoY29uc3Qgd3hTdHJpbmcmIGZpbGVuYW1lKQoreworCXd4RmlsZUlucHV0U3RyZWFtIGZpbGUo
ZmlsZW5hbWUpOworCWxvYWQoZmlsZSk7Cit9CisKK3ZvaWQgRm9udDo6bG9hZCh3eElucHV0U3Ry
ZWFtJiBzdHJlYW0pCit7CisJc3ltYm9sTWFwLmNsZWFyKCk7CisJYWRkKHN0cmVhbSk7Cit9CisK
K3ZvaWQgRm9udDo6YWRkKHd4SW5wdXRTdHJlYW0mIHN0cmVhbSkKK3sKKwkvL3d4VGV4dElucHV0
U3RyZWFtIGlzdHJlYW0oc3RyZWFtLCB3eFQoJ1xuJykpOworCXN0ZDo6dmVjdG9yPGNoYXI+IGJ1
ZmZlcjsKKwl3aGlsZSAoIXN0cmVhbS5Fb2YoKSkKKwl7CisJCWNoYXIgYnVmID0gMDsKKwkJc3Ry
ZWFtLlJlYWQoJmJ1ZiwgMSk7CisJCWJ1ZmZlci5wdXNoX2JhY2soYnVmKTsKKwkJaWYgKGJ1ZiA9
PSAnXG4nKQorCQl7CisJCQlidWZmZXIucHVzaF9iYWNrKDApOworCQkJd3hTdHJpbmcgc3RyID0g
d3hTdHJpbmc6OkZyb21VVEY4KCZidWZmZXJbMF0pOworCQkJYnVmZmVyLmNsZWFyKCk7CisJCQl3
eENoYXIgc3ltYm9sID0gc3RyWzBdOworCQkJQnl0ZUFycmF5X3QgZGF0YSA9IHBhcnNlU3RyaW5n
KHN0cik7CisJCQlzeW1ib2xNYXAuaW5zZXJ0KFN5bWJvbE1hcF90Ojp2YWx1ZV90eXBlKHN5bWJv
bCwgZGF0YSkgKTsKKwkJfQorCX0KKworfQorCitGb250OjpCeXRlQXJyYXlfdCBGb250OjpwYXJz
ZVN0cmluZyhjb25zdCB3eFN0cmluZyYgc3RyKSBjb25zdAoreworCXd4U3RyaW5nIGJ1ZjsKKwor
CUJ5dGVBcnJheV90IHJlc3VsdDsKKwkKKwlmb3IgKGludCBpPTI7IGk8c3RyLnNpemUoKS0xOyAr
K2kpCisJeworCQlpZiAoc3RyW2ldID09IHd4VCgnLCcpKQorCQl7CQkJCisJCQlpZiAoYnVmID09
IHd4VCgiWCIpKQorCQkJCWJyZWFrOworCisJCQlpZiAoYnVmID09IHd4VCgiVSIpKQorCQkJewor
CQkJCXJlc3VsdC5wdXNoX2JhY2soJ1UnKTsKKwkJCQlidWYuQ2xlYXIoKTsKKwkJCQljb250aW51
ZTsKKwkJCX0KKworCQkJaWYgKGJ1ZiA9PSB3eFQoIkQiKSkKKwkJCXsKKwkJCQlyZXN1bHQucHVz
aF9iYWNrKCdEJyk7CisJCQkJYnVmLkNsZWFyKCk7CisJCQkJY29udGludWU7CisJCQl9CisKKwkJ
CWxvbmcgeiA9IDA7CisJCQlidWYuVG9Mb25nKCZ6KTsKKwkJCXJlc3VsdC5wdXNoX2JhY2soeik7
CisJCQlidWYuQ2xlYXIoKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWJ1ZiArPSBzdHJbaV07CisJ
CX0KKwl9CisKKwlyZXN1bHQucHVzaF9iYWNrKCdYJyk7CisJcmV0dXJuIHJlc3VsdDsKK30KKwor
Rm9udDo6Qnl0ZUFycmF5X3QgRm9udDo6Z2V0Q2hhclBhdGgod3hDaGFyIHN5bWJvbCkgY29uc3QK
K3sKKwlTeW1ib2xNYXBfdDo6Y29uc3RfaXRlcmF0b3IgaW5kZXggPSBzeW1ib2xNYXAuZmluZChz
eW1ib2wpOworCWlmIChpbmRleCAhPSBzeW1ib2xNYXAuZW5kKCkpCisJCXJldHVybiBpbmRleC0+
c2Vjb25kOworCQorCUJ5dGVBcnJheV90IHJlc3VsdDsKKwlyZXN1bHQucHVzaF9iYWNrKCdYJyk7
CisJcmV0dXJuIHJlc3VsdDsKK30KKwpJbmRleDogaW5jbHVkZS9ncmZvbnRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gaW5jbHVkZS9ncmZvbnRlLmgJKHJldmlzaW9uIDEyMjkpCisrKyBpbmNsdWRlL2dyZm9u
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsOCArNDIsMTIgQEAKICNpZm5kZWYgX0dSRk9OVEVf
SF8KICNkZWZpbmUgX0dSRk9OVEVfSF8KIAorI2luY2x1ZGUgImtpRm9udC5oIgorCitjb25zdCBr
aWNhZDo6Rm9udCYgZ2V0S2lDYWRGb250KCk7CisKICNkZWZpbmUgU0hfQ09ERSBzaWduZWQgY2hh
cgotZXh0ZXJuIGNvbnN0IFNIX0NPREUgKmdyYXBoaWNfZm9udGVfc2hhcGVbMjU2XTsKK2V4dGVy
biBjb25zdCBTSF9DT0RFICpub19ncmFwaGljX2ZvbnRlX3NoYXBlWzI1Nl07CiAKICNpZmRlZiBF
REFfRFJBV0JBU0UKIApAQCAtMTc0LDcgKzE3OCw3IEBACiBjb25zdCBTSF9DT0RFIGNoYXJfc2hh
cGVfdV9jaXJjW10gPSB7VXAsNiwxLERuLDIsMSwwLDMsMCw2LDIsOCw2LDgsVXAsNywxLERuLDks
NCw3LDcsVXAsWH07CiBjb25zdCBTSF9DT0RFIGNoYXJfc2hhcGVfdV90cmVtYVtdID0ge1VwLDYs
MSxEbiwyLDEsMCwzLDAsNiwyLDgsNiw4LFVwLDksMixEbiw5LDMsVXAsOSw1LERuLDksNixVcCxY
fTsKIAotY29uc3QgU0hfQ09ERSAqZ3JhcGhpY19mb250ZV9zaGFwZVsyNTZdID0KK2NvbnN0IFNI
X0NPREUgKm5vX2dyYXBoaWNfZm9udGVfc2hhcGVbMjU2XSA9CiAJewogCS8vIGNvZGVzIDAuLjMx
OgogCW5vc2hhcGUsIG5vc2hhcGUsIG5vc2hhcGUsIG5vc2hhcGUsIG5vc2hhcGUsIG5vc2hhcGUs
IG5vc2hhcGUsIG5vc2hhcGUsCkBAIC0yNjYsNSArMjcwLDYgQEAKIAogCX0gOwogI2VuZGlmCisK
ICNlbmRpZgkvLyBpZm5kZWYgX0dSRk9OVEVfSF8KIApJbmRleDogaW5jbHVkZS9raUZvbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBpbmNsdWRlL2tpRm9udC5oCShyZXZpc2lvbiAwKQorKysgaW5jbHVkZS9r
aUZvbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorI2lmbmRlZiBLSUZPTlRfSF8K
KyNkZWZpbmUgS0lGT05UX0hfCisKKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8dmVjdG9yPgor
I2luY2x1ZGUgPHd4L3N0cmluZy5oPgorI2luY2x1ZGUgPHd4L3N0cmVhbS5oPgorCituYW1lc3Bh
Y2Uga2ljYWQKK3sKKy8qKgorICogRm9udCBLaUNBRCAKKyAqIHRoZSBGb3JtYXQgb2YgYSBmaWxl
IG9mIGZvbnRzLiA8YnIvPiAKKyAqIHRoZSBmaWxlIGlzIHdyaXR0ZW4gZG93biBpbiBjb2Rpbmcg
VVRGLTguIDxici8+IAorICogRm9ybWF0IGxpbmVzIG9mIHJlcHJlc2VudGF0aW9uIG9mIGEgc3lt
Ym9sOiA8YnIvPgorICogdGhlIFNZTUJPTCB0aGUgU1BBQ0UgW1tDT01NQU5EXSBbQ09PUkRJTkFU
RV9ZIENPTU1BIENPT1JESU5BVEVfWF1dIFggPGJyLz4KKyAqIHRoZSBFeGFtcGxlOiAiKyBVLCA0
LDEsIEQsIDQsNywgVSwgMSw0LCBELCA3LDQsIFUsIFggIi4gPGJyLz4KKyAqIFNlZSBhbHNvIGEg
ZmlsZSBncmZvbnRlLmtpZm50IDxici8+CisgKiB0aGUgRm9ybWF0IG9mIGNvbW1hbmRzIHN1Y2gg
YXMgaW4gS2lDQUQgZ3Jmb250ZS5oLiA8YnIvPgorICogdGhlIENPTU1BTkQgJyBVICcgLSBUbyBs
aWZ0IGEgZmVhdGhlci4gPGJyLz4KKyAqIHRoZSBDT01NQU5EICcgRCAnIC0gVG8gbG93ZXIgYSBm
ZWF0aGVyLiA8YnIvPgorICogdGhlIENPTU1BTkQgJyBYICcgLSB0aGUgRW5kIG9mIHRoZSBkZXNj
cmlwdGlvbi4gPGJyLz4KKyAqIENPT1JESU5BVEVfWCBjYW4gaGF2ZSB2YWx1ZXMgZnJvbSAwIHVw
IHRvIDkuIDxici8+IAorICogQ09PUkRJTkFURV9ZIGNhbiBoYXZlIHZhbHVlcyBmcm9tLTMgdXAg
dG8gOS4gPGJyLz4gCisgKi8KK2NsYXNzIEZvbnQKK3sKK3B1YmxpYzoKKwkvKgorCSAqIFxwYXJh
bSBmaWxlbmFtZSBmb250IGZpbGUgbmFtZSB0byBsb2FkCisJICovCisJRm9udChjb25zdCB3eFN0
cmluZyYgZmlsZW5hbWUpOworCS8qKgorCSAqIExvYWQgZm9udCBmcm9tIGZpbGUKKwkgKiBccGFy
YW0gZmlsZW5hbWUgZm9udCBmaWxlIG5hbWUKKwkgKi8KKwl2b2lkIGxvYWQoY29uc3Qgd3hTdHJp
bmcmIGZpbGVuYW1lKTsKKworCS8qKgorCSAqIExvYWQgZm9udCBmcm9tIHN0cmVhbQorCSAqIFxw
YXJhbSBzdHJlYW0gZm9udCBzb3VyY2UKKwkgKi8KKwl2b2lkIGxvYWQod3hJbnB1dFN0cmVhbSYg
c3RyZWFtKTsKKworCS8qKgorCSAqIEFkZCBzeW1ib2wgcGF0aHMgZnJvbSBzdHJlYW0KKwkgKiBc
cGFyYW0gZGV2aWNlIGZvbnQgc291cmNlCisJICovCisJdm9pZCBhZGQod3hJbnB1dFN0cmVhbSYg
c3RyZWFtKTsKKworCXR5cGVkZWYgc3RkOjp2ZWN0b3I8c2lnbmVkIGNoYXI+IEJ5dGVBcnJheV90
OworCisJLyoqCisJICogTWFwIG9mIHN5bWJvbCBwYXRoCisJICovCisJdHlwZWRlZiBzdGQ6Om1h
cDx3eENoYXIsIEJ5dGVBcnJheV90PiBTeW1ib2xNYXBfdDsKKworCS8qKgorCSAqIEdldCBzeW1i
b2wgcGF0aAorCSAqIFxwYXJhbSBzeW1ib2wgc3ltYm9sCisJICogXHJldHVybiBzeW1ib2wgcGF0
aAorCSAqLworCUJ5dGVBcnJheV90IGdldENoYXJQYXRoKHd4Q2hhciBzeW1ib2wpIGNvbnN0Owor
cHJpdmF0ZToKKwlCeXRlQXJyYXlfdCBwYXJzZVN0cmluZyhjb25zdCB3eFN0cmluZyYgc3RyKSBj
b25zdDsKK3ByaXZhdGU6CisJU3ltYm9sTWFwX3Qgc3ltYm9sTWFwOworfTsKKworfQorOworCisj
ZW5kaWYgLypLSUZPTlRfSF8qLwpJbmRleDogaW5jbHVkZS9tYWNyb3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBpbmNsdWRlL21hY3Jvcy5oCShyZXZpc2lvbiAxMjI5KQorKysgaW5jbHVkZS9tYWNyb3MuaAko
d29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDcgQEAKICNpZm5kZWYgTUFDUk9TX0gKICNkZWZpbmUg
TUFDUk9TX0gKIAorLyoKICNpZiB3eFVTRV9VTklDT0RFCiAjZGVmaW5lIENPTlZfVE9fVVRGOCgg
d3hzdHJpbmcgKSAgICAgKCAoY29uc3QgY2hhciopIHd4Q29udkN1cnJlbnQtPmNXWDJNQiggd3hz
dHJpbmcgKSApCiAjZGVmaW5lIENPTlZfRlJPTV9VVEY4KCB1dGY4c3RyaW5nICkgKCB3eENvbnZD
dXJyZW50LT5jTUIyV0MoIHV0ZjhzdHJpbmcgKSApCkBAIC0xMCw2ICsxMSwxNSBAQAogI2RlZmlu
ZSBDT05WX1RPX1VURjgoIHd4c3RyaW5nICkgICAgICggKGNvbnN0IGNoYXIqKSAoIHd4c3RyaW5n
LmNfc3RyKCkgKSApCiAjZGVmaW5lIENPTlZfRlJPTV9VVEY4KCB1dGY4c3RyaW5nICkgKHV0Zjhz
dHJpbmcpCiAjZW5kaWYKKyovCisKKyNpZiB3eFVTRV9VTklDT0RFCisjZGVmaW5lIENPTlZfVE9f
VVRGOCggd3hzdHJpbmcgKSAgICAgKCB3eHN0cmluZy5Ub1VURjgoKS5yZWxlYXNlKCkgKQorI2Rl
ZmluZSBDT05WX0ZST01fVVRGOCggdXRmOHN0cmluZyApICggd3hTdHJpbmc6OkZyb21VVEY4KHV0
ZjhzdHJpbmcpICkKKyNlbHNlCisjZGVmaW5lIENPTlZfVE9fVVRGOCggd3hzdHJpbmcgKSAgICAg
KCB3eHN0cmluZy5Ub1VURjgoKS5yZWxlYXNlKCkgKQorI2RlZmluZSBDT05WX0ZST01fVVRGOCgg
dXRmOHN0cmluZyApICh3eFN0cmluZzo6RnJvbVVURjgodXRmOHN0cmluZykpCisjZW5kaWYKIAog
LyogdmlvbGF0aW9uIG9mIEMrKyBzdGFuZGFyZCwgY2Fubm90IHVzZSBtaW4oKSBhbmQgbWF4KCks
IGkuZS4gaW4gbG93ZXJjYXNlCiAgI2lmbmRlZiBtaW4KSW5kZXg6IHBjYm5ldy9wbG90X3J0bi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gcGNibmV3L3Bsb3RfcnRuLmNwcAkocmV2aXNpb24gMTIyOSkKKysr
IHBjYm5ldy9wbG90X3J0bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwNCw3ICs2MDQsNiBAQAog
ICAgIGludCAgICAgICAgICAgIGtrID0gMCwgazEsIGsyLCBlbmQ7CiAgICAgaW50ICAgICAgICAg
ICAgZXNwYWNlbWVudDsKICAgICBjaGFyICAgICAgICAgICBmX2NvZCwgcGx1bWU7Ci0gICAgY29u
c3QgU0hfQ09ERSogcHRjYXI7CiAgICAgaW50ICAgICAgICAgICAgb3gsIG95LCBmeCwgZnk7ICAv
KiBDb29yZCBkZSBkZWJ1dCBldCBmaW4gZGVzIHNlZ21lbnRzIGEgdHJhY2VyICovCiAgICAgaW50
ICAgICAgICAgICAgc3gsIHN5OyAgICAgICAgICAvKiBjb29yZCBkdSBkZWJ1dCBkdSBjYXJhY3Rl
cmUgY291cmFudCAqLwogICAgIGludCAgICAgICAgICAgIG5iY29kZXMgPSBUZXh0LkxlbigpOwpA
QCAtNjI0LDkgKzYyMywxMSBAQAogICAgIC8qIHRyYWNlIGR1IHRleHRlICovCiAgICAgZm9yKCA7
IGtrIDwgbmJjb2Rlczsga2srKyApCiAgICAgewotICAgICAgICBpbnQgY29kZSA9IFRleHQuR2V0
Q2hhcigga2sgKSAmIDB4RkY7Ci0gICAgICAgIHB0Y2FyID0gZ3JhcGhpY19mb250ZV9zaGFwZVtj
b2RlXTsgIC8qIHB0Y2FyIHBvaW50ZSBsYSBkZXNjcmlwdGlvbgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgZHUgY2FyYWN0ZXJlIGEgZGVzc2luZXIgKi8K
KyAgICAgICAgaW50IGNvZGUgPSBUZXh0LkdldENoYXIoIGtrICk7CisgICAgICAgIC8vcHRjYXIg
PSBncmFwaGljX2ZvbnRlX3NoYXBlW2NvZGVdOyAgLyogcHRjYXIgcG9pbnRlIGxhIGRlc2NyaXB0
aW9uCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogIGR1
IGNhcmFjdGVyZSBhIGRlc3NpbmVyICovCisgICAgICAgIGtpY2FkOjpGb250OjpCeXRlQXJyYXlf
dCBwYXRoID0gZ2V0S2lDYWRGb250KCkuZ2V0Q2hhclBhdGgoY29kZSk7CisgICAgICAgIGtpY2Fk
OjpGb250OjpCeXRlQXJyYXlfdDo6Y29uc3RfaXRlcmF0b3IgcHRjYXIgPSBwYXRoLmJlZ2luKCk7
ICAKIAogICAgICAgICBwbHVtZSA9ICdVJzsKICAgICAgICAgb3ggPSBzeDsKSW5kZXg6IHNoYXJl
L2dyZm9udGUua2lmbnQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc2hhcmUvZ3Jmb250ZS5raWZudAkocmV2aXNp
b24gMCkKKysrIHNoYXJlL2dyZm9udGUua2lmbnQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTY2
IEBACishIFUsMCw0LEQsMSw0LFUsNCw0LEQsOSw0LFUsWAkvKiEqLworeyBVLDgsMyxELDksNCxV
LDgsNSxELDksNixVLFgJLyp7Ki8KKyMgVSwzLDEsRCwzLDcsVSw1LDIsRCw1LDgsVSwxLDMsRCw3
LDQsVSwxLDUsRCw3LDYsVSxYCS8qIyovCiskIFUsMCw0LEQsOSw0LFUsMCw1LEQsOSw1LFUsMCwy
LEQsMCw3LDEsOCwzLDgsNCw3LDQsMiw1LDEsNywxLDgsMiw4LDcsVSxYCS8qJCovCislIFUsMCwx
LEQsOSw4LFUsOSwxLEQsNywxLDcsMyw5LDMsOSwxLFUsMCw2LEQsMCw4LDIsOCwyLDYsMCw2LFUs
WAkvKiUqLworJiBVLDAsNyxELDcsMiw4LDIsOSw0LDgsNiw3LDYsMiwxLDEsMSwwLDMsMCw0LDEs
NiwyLDcsVSxYCS8qJiovCisnIFUsOSw0LEQsNywzLFUsWAkvKicqLworKCBVLDAsNCxELDIsMyw3
LDMsOSw0LFUsWAkvKigqLworKSBVLDAsNCxELDIsNSw3LDUsOSw0LFUsWAkvKikqLworKiBVLDEs
NCxELDcsNCxVLDQsMSxELDQsNyxVLDIsMixELDYsNixVLDYsMixELDIsNixVLFgJLyoqKi8KKysg
VSw0LDEsRCw0LDcsVSwxLDQsRCw3LDQsVSxYCS8qKyovCissIFUsMSw0LEQsMCw0LC0zLDMsVSxY
CS8qLCovCistIFUsNCwyLEQsNCw3LFUsWAkvKi0qLworLiBVLDAsNCxELDEsNCxVLFgJLyouKi8K
Ky8gVSwwLDIsRCw5LDYsVSxYCS8qIC8gKi8KKzAgVSwwLDEsRCw5LDgsVSwxLDEsRCw4LDEsOSwy
LDksNyw4LDgsMSw4LDAsNywwLDIsMSwxLFUsWAkvKjAqLworMSBVLDAsMyxELDAsNyxVLDAsNSxE
LDksNSxVLDgsNSxELDYsMyxVLFgJCS8qMSovCisyIFUsMCw4LEQsMCwxLDMsMSw0LDIsNCw3LDUs
OCw4LDgsOSw3LDksMiw4LDEsVSxYCS8qMiovCiszIFUsOSwxLEQsOSw4LDgsOCw1LDQsNSw3LDQs
OCwxLDgsMCw3LDAsMiwxLDEsVSxYCS8qMyovCis0IFUsMCw2LEQsOSw2LDIsMSwyLDgsVSxYCS8q
NCovCis1IFUsMiwxLEQsMSwxLDAsMiwwLDcsMSw4LDQsOCw2LDYsNiwxLDksMSw5LDgsVSxYCS8q
NSovCis2IFUsOCw4LEQsOSw3LDksMiw4LDEsMSwxLDAsMiwwLDcsMSw4LDQsOCw1LDcsNSwyLDQs
MSxVLFgJLyo2Ki8KKzcgVSw5LDEsRCw5LDgsMCwxLFUsWAkvKjcqLworOCBVLDAsMixELDEsMSw0
LDEsNSwyLDUsNyw2LDgsOCw4LDksNyw5LDIsOCwxLDYsMSw1LDIsVSw1LDcsRCw0LDgsMSw4LDAs
NywwLDIsVSxYCS8qOCovCis5IFUsMCwyLEQsMCw3LDEsOCw4LDgsOSw3LDksMiw4LDEsNSwxLDQs
Miw0LDcsNSw4LFUsWAkvKjkqLworOiBVLDYsNCxELDUsNCxVLDMsNCxELDIsNCxVLFgJLyo6Ki8K
KzsgVSw1LDQsRCw0LDQsVSwyLDQsRCwxLDQsLTIsMyxVLFgJLyo7Ki8KKzwgVSwwLDcsRCw0LDIs
OSw3LFUsWAkvKjwqLworPSBVLDIsMixELDIsNyxVLDUsMixELDUsNyxVLFgJLyo9Ki8KKz4gVSww
LDIsRCw0LDcsOSwyLFUsWAkvKj4qLworPyBVLDAsNCxELDEsNCxVLDMsNCxELDQsNCw1LDYsNiw3
LDgsNyw5LDYsOSwyLDgsMSxVLFgJLyo/Ki8KK0AgVSwwLDgsRCwwLDMsMiwxLDYsMSw4LDMsOCw2
LDYsOCwzLDgsMyw1LDQsNCw1LDUsNSw4LFUsWAkvKkAqLworQSBVLDAsMSxELDcsMSw5LDMsOSw2
LDcsOCwwLDgsVSw1LDEsRCw1LDgsVSxYCS8qQSovCitCIFUsMCwxLEQsOSwxLDksNyw4LDgsNiw4
LDUsNyw1LDEsVSw1LDcsRCwzLDgsMSw4LDAsNywwLDEsVSxYCS8qQiovCitDIFUsMSw4LEQsMCw3
LDAsMiwxLDEsOCwxLDksMiw5LDcsOCw4LFUsWAkvKkMqLworRCBVLDAsMixELDksMixVLDksMSxE
LDksNyw4LDgsMSw4LDAsNywwLDEsVSxYCS8qRCovCitFIFUsMCw4LEQsMCwxLDksMSw5LDgsVSw1
LDEsRCw1LDUsVSxYCS8qRSovCitGIFUsMCwxLEQsOSwxLDksOCxVLDUsMSxELDUsNSxVLFgJLypG
Ki8KK0cgVSw4LDcsRCw5LDcsOSwyLDgsMSwxLDEsMCwyLDAsNywxLDgsNCw4LDQsNSxVLFgJLypH
Ki8KK0ggVSwwLDEsRCw5LDEsVSwwLDgsRCw5LDgsVSw0LDEsRCw0LDgsVSxYCS8qSCovCitJIFUs
MCwyLEQsMCw2LFUsMCw0LEQsOSw0LFUsOSwyLEQsOSw2LFUsWAkvKkkqLworSiBVLDIsMSxELDAs
MiwwLDQsMSw1LDksNSxVLDksMyxELDksNyxVLFgJLypKKi8KK0sgVSwwLDEsRCw5LDEsVSw5LDcs
RCw1LDEsMCw4LFUsWAkvKksqLworTCBVLDksMSxELDAsMSwwLDksVSxYCS8qTCovCitNIFUsMCwx
LEQsOSwxLDUsNSw5LDksMCw5LFUsWAkvKk0qLworTiBVLDAsMSxELDksMSwwLDgsOSw4LFUsWAkv
Kk4qLworTyBVLDAsMixELDEsMSw4LDEsOSwyLDksNyw4LDgsMSw4LDAsNywwLDIsVSxYCS8qTyov
CitQIFUsMCwxLEQsOSwxLDksNyw4LDgsNSw4LDQsNyw0LDEsVSxYCS8qUCovCitRIFUsMSwxLEQs
OCwxLDksMiw5LDcsOCw4LDEsOCwwLDcsMCwyLDEsMSxVLDQsNixELDAsOCxVLFgJLypRKi8KK1Ig
VSwwLDEsRCw5LDEsOSw3LDgsOCw1LDgsNCw3LDQsMSxVLDQsNCxELDAsOCxVLFgJLypSKi8KK1Mg
VSwxLDEsRCwwLDIsMCw3LDEsOCw0LDgsNSw3LDUsMiw2LDEsOCwxLDksMiw5LDcsOCw4LFUsWAkv
KlMqLworVCBVLDksMSxELDksOSxVLDksNSxELDAsNSxVLFgJLypUKi8KK1UgVSw5LDEsRCwxLDEs
MCwyLDAsNywxLDgsOSw4LFUsWAkvKlUqLworViBVLDksMSxELDAsNSw5LDksVSxYCS8qViovCitX
IFUsOSwxLEQsMCwzLDMsNSwwLDcsOSw5LFUsWAkvKlcqLworWCBVLDAsMSxELDksOCxVLDksMSxE
LDAsOCxVLFgJLypYKi8KK1kgVSw5LDEsRCw0LDUsOSw5LFUsNCw1LEQsMCw1LFUsWAkvKlkqLwor
WiBVLDksMSxELDksOCwwLDEsMCw4LFUsWAkvKloqLworWyBVLDAsNSxELDAsMyw5LDMsOSw1LFUs
WAkvKlsqLworXCBVLDksMSxELDAsNyxVLFgJLypcKi8KK10gVSwwLDMsRCwwLDUsOSw1LDksMyxV
LFgJLypdKi8KK14gVSw3LDEsRCw5LDUsNyw4LFUsWAkvKl4qLworXyBVLDAsMSxELDAsOCxVLFgJ
LypfKi8KK2AgVSw5LDQsRCw3LDUsVSxYCS8qYCovCithIFUsNiwxLEQsNiw3LDUsOCwwLDgsMCwy
LDEsMSwyLDEsMywyLDMsOCxVLFgJLyphKi8KK2IgVSw5LDEsRCwwLDEsMCw4LDQsOCw1LDcsNSwx
LFUsWAkvKmIqLworYyBVLDEsOCxELDAsNywwLDIsMSwxLDUsMSw2LDIsNiw3LDUsOCxVLFgJLypj
Ki8KK2QgVSw5LDgsRCwwLDgsMCwyLDEsMSw1LDEsNiwyLDYsOCxVLFgJLypkKi8KK2UgVSwzLDEs
RCwzLDgsNSw4LDYsNyw2LDIsNSwxLDEsMSwwLDIsMCw3LDEsOCxVLFgJLyplKi8KK2YgVSwwLDIs
RCw4LDIsOSwzLDksNyw4LDgsVSw1LDEsRCw1LDQsVSxYCS8qZiovCitnIFUsLTIsMSxELC0zLDIs
LTMsNywtMiw4LDUsOCw2LDcsNiwyLDUsMSwxLDEsMCwyLDAsNywxLDgsVSxYCS8qZyovCitoIFUs
MCwxLEQsOSwxLFUsNSwxLEQsNiwyLDYsNyw1LDgsMCw4LFUsWAkvKmgqLworaSBVLDksNCxELDgs
NCxVLDUsNCxELDEsNCwwLDUsMCw2LFUsWAkvKmkqLworaiBVLDksNCxELDgsNCxVLDUsNCxELC0y
LDQsLTMsMywtMiwyLFUsWAkvKmoqLworayBVLDAsMixELDksMixVLDMsMixELDMsMyw2LDgsVSwz
LDMsRCwwLDgsVSxYCS8qayovCitsIFUsOSwzLEQsOSw0LDAsNCxVLDAsMyxELDAsNSxVLFgJLyps
Ki8KK20gVSwwLDEsRCw2LDEsVSw1LDEsRCw2LDIsNiw0LDUsNSwwLDUsVSw1LDUsRCw2LDYsNiw4
LDUsOSwwLDksVSxYCS8qbSovCituIFUsMCwxLEQsNiwxLFUsNSwxLEQsNiwyLDYsNiw1LDcsMCw3
LFUsWAkvKm4qLworbyBVLDAsMixELDEsMSw1LDEsNiwyLDYsNyw1LDgsMSw4LDAsNywwLDIsVSxY
CS8qbyovCitwIFUsLTMsMSxELDYsMSxVLDUsMSxELDYsMiw2LDcsNSw4LDEsOCwwLDcsMCwyLDEs
MSxVLFgJLypwKi8KK3EgVSwtMyw4LEQsNiw4LFUsNSw4LEQsNiw3LDYsMiw1LDEsMSwxLDAsMiww
LDcsMSw4LFUsWAkvKnEqLworciBVLDAsMSxELDYsMSxVLDQsMSxELDYsMyw2LDYsNCw4LFUsWAkv
KnIqLworcyBVLDEsMSxELDAsMiwwLDcsMSw4LDIsOCwzLDcsMywyLDQsMSw1LDEsNiwyLDYsNyw1
LDgsVSxYCS8qcyovCit0IFUsMSw3LEQsMCw2LDAsMywxLDIsOSwyLFUsNiwyLEQsNiw1LFUsWAkv
KnQqLwordSBVLDYsMSxELDIsMSwwLDMsMCw2LDIsOCw2LDgsVSxYCS8qdSovCit2IFUsNiwxLEQs
MywxLDAsNCwzLDcsNiw3LFUsWAkvKnYqLwordyBVLDYsMSxELDIsMSwwLDMsMiw1LDAsNywyLDks
Niw5LFUsWAkvKncqLworeCBVLDAsMSxELDYsOCxVLDYsMSxELDAsOCxVLFgJLyp4Ki8KK3kgVSw2
LDEsRCwyLDEsMCwzLDAsNiwyLDgsVSw2LDgsRCwtMiw4LC0zLDcsLTMsMiwtMiwxLFUsWH0JLyp5
Ki8KK3ogVSw2LDEsRCw2LDgsMCwxLDAsOCxVLFgJLyp6Ki8KK3sgVSw5LDUsRCw4LDQsNiw0LDUs
Myw0LDMsMyw0LDEsNCwwLDUsVSxYCS8qeyovCit8IFUsOSw0LEQsMCw0LFUsWAkvKnwqLworfSBV
LDksMyxELDgsNCw2LDQsNSw1LDQsNSwzLDQsMSw0LDAsMyxVLFgJLyp9Ki8KK34gVSw4LDEsRCw5
LDIsOSwzLDcsNSw3LDYsOCw3LFUsWAkvKn4qLworCisKKwor0LAgVSw2LDEsRCw2LDcsNSw4LDAs
OCwwLDIsMSwxLDIsMSwzLDIsMyw4LFUsWAkvKtCwKi8KK9CQIFUsMCwxLEQsNywxLDksMyw5LDYs
Nyw4LDAsOCxVLDUsMSxELDUsOCxVLFgJLyrQkCovCivQsSBVLDYsNyxELDYsMiw1LDEsMSwxLDAs
MiwwLDcsMSw4LDUsOCw2LDcsOSwxLDksOCxVLFggLy8g0LEKK9CRIFUsOSw4LEQsOSwxLDAsMSww
LDcsMSw4LDQsOCw1LDcsNSwxLFUsWAkvLyDQkQor0LIgVSw1LDEsRCw2LDIsNiw3LDUsOCwxLDgs
MCw3LDAsMiwxLDEsOCwxLDksMiw5LDQsOCw1LDcsNSw2LDQsVSxYCS8vINCyCivQkiBVLDUsMSxE
LDUsNyw0LDgsMSw4LDAsNywwLDEsOSwxLDksNyw4LDgsNiw4LDUsNyxVLFgJLy8g0JIKK9CzIFUs
NSwxLEQsNiwyLDYsNyw1LDgsNCw4LDMsNywzLDIsMiwxLDEsMSwwLDIsMCw3LDEsOCxVLFgJLy8g
0LMKK9CTIFUsMCwxLEQsOSwxLDksOCxVLFgJLy8g0JMKK9C0IFUsOSwzLEQsOSw3LDgsOCwxLDgs
MCw3LDAsMiwxLDEsNSwxLDYsMiw2LDgsVSxYCS8vINC0CivQlCBVLDAsMixELDksMyw5LDcsMCw3
LFUsLTEsMSxELDAsMSwwLDgsLTEsOCxVLFgJLy8g0JQKK9C1IFUsMywxLEQsMyw4LDUsOCw2LDcs
NiwyLDUsMSwxLDEsMCwyLDAsOCxVLFgJLy9lCivQlSBVLDksOCxELDksMSwwLDEsMCw4LFUsNSwx
LEQsNSw3LFUsWAkvL0UKK9GRIFUsMywxLEQsMyw4LDUsOCw2LDcsNiwyLDUsMSwxLDEsMCwyLDAs
OCxVLFgJLy9lCivQgSBVLDksOCxELDksMSwwLDEsMCw4LFUsNSwxLEQsNSw3LFUsWAkvL0UKK9C2
IFUsMCwwLEQsNiw4LFUsNiwwLEQsMCw4LFUsNiw0LEQsMCw0LFUsWAkvLyDQtgor0JYgVSwwLDAs
RCw5LDgsVSw5LDAsRCwwLDgsVSw5LDQsRCwwLDQsVSxYCS8vINCWCivQtyBVLDUsMSxELDYsMiw2
LDcsNSw4LDQsOCwzLDcsMyw1LFUsMyw3LEQsMiw4LDEsOCwwLDcsMCwyLDEsMSxVLFgJLy8g0LcK
K9CXIFUsOCwxLEQsOSwyLDksNyw4LDgsNiw4LDUsNyw1LDQsVSw1LDcsRCw0LDgsMSw4LDAsNyww
LDIsMSwxLFUsWAkvLyDQlwor0LggVSw2LDEsRCwxLDEsMCwyLDAsMywxLDgsVSwwLDgsRCw2LDgs
VSxYCS8vINC4CivQmCBVLDAsMSxELDksMSxVLDEsMSxELDgsOCxVLDksOCxELDAsOCxVLFgJLy8g
0JgKK9C5IFUsNiwxLEQsMSwxLDAsMiwwLDMsMSw4LFUsMCw4LEQsNiw4LFUsOCwzLEQsOCw2LFUs
WAkvLyDQuQor0JkgVSw5LDEsRCwwLDEsVSwxLDEsRCw4LDgsVSw5LDgsRCwwLDgsVSw5LDMsRCw5
LDYsVSxYIC8vINCZCivQuiBVLDYsMSxELDAsMSxVLDMsMSxELDYsOCxVLDQsMyxELDAsOCxVLFgJ
Ly/Qugor0JogVSw5LDEsRCwwLDEsVSw0LDEsRCw5LDgsVSw1LDMsRCwwLDgsVSxYCS8vSwor0Lsg
VSwwLDEsRCw2LDUsNiw4LDAsOCxVLFgJLy8g0LsKK9CbIFUsMCwxLEQsOSw1LDksOCwwLDgsVSxY
CS8vINCbCivQvCBVLDAsMCxELDYsMCwzLDQsNiw4LDAsOCxVLFgJLy8g0LwKK9CcIFUsMCwxLEQs
OSwxLDUsNSw5LDksMCw5LFUsWAkvKk0qLwor0L0gVSw2LDEsRCwwLDEsVSw2LDgsRCwwLDgsVSwz
LDEsRCwzLDgsVSxYCS8vINC9CivQnSBVLDksMSxELDAsMSxVLDksOCxELDAsOCxVLDUsMSxELDUs
OCxVLFgJLy8gSAor0L4gVSwwLDIsRCwxLDEsNSwxLDYsMiw2LDcsNSw4LDEsOCwwLDcsMCwyLFUs
WAkvKm8qLwor0J4gVSwwLDIsRCwxLDEsOCwxLDksMiw5LDcsOCw4LDEsOCwwLDcsMCwyLFUsWAkv
KtCeKi8KK9C/IFUsMCwxLEQsNiwxLDYsNyw1LDgsMCw4LFUsWAkvLyDQvwor0J8gVSwwLDEsRCw5
LDEsOSw4LDAsOCxVLFgJLy8g0J8KK9GAIFUsLTMsMSxELDYsMSxVLDUsMSxELDYsMiw2LDcsNSw4
LDEsOCwwLDcsMCwyLDEsMSxVLFgJLyrRgCovCivQoCBVLDAsMSxELDksMSw5LDcsOCw4LDUsOCw0
LDcsNCwxLFUsWAkvKtCgKi8KK9GBIFUsMSw4LEQsMCw3LDAsMiwxLDEsNSwxLDYsMiw2LDcsNSw4
LFUsWAkvKtGBKi8KK9ChIFUsMSw4LEQsMCw3LDAsMiwxLDEsOCwxLDksMiw5LDcsOCw4LFUsWAkv
KtChKi8KK9GCIFUsMCwxLEQsNiwxLDYsNiw1LDcsMCw3LFUsNiw0LEQsMCw0LFUsWAkvLyDRggor
0KIgVSwwLDQsRCw5LDQsVSw5LDEsRCw5LDcsVSxYCS8vINCiCivRgyBVLDYsMSxELDEsMSwwLDIs
MCw4LDYsOCxVLDAsOCxELC0yLDgsLTMsNywtMywxLFUsWAkvLyDRgwor0KMgVSw5LDEsRCw1LDEs
NCwyLDQsOCxVLDksOCxELDEsOCwwLDcsMCwxLFUsWAkvLyDQowor0YQgVSw3LDQsRCwtMyw0LFUs
NSwxLEQsNiwyLDYsNiw1LDcsMSw3LDAsNiwwLDIsMSwxLDUsMSxVLFgJLy8g0YQKK9CkIFUsOSw0
LEQsMCw0LFUsNywwLEQsOCwxLDgsNyw3LDgsMyw4LDIsNywyLDEsMywwLDcsMCxVLFgJLy8g0KQK
K9GFIFUsMCwxLEQsNiw4LFUsNiwxLEQsMCw4LFUsWAkvLyB4CivQpSBVLDAsMSxELDksOCxVLDks
MSxELDAsOCxVLFgJLy8gWAor0YYgVSw2LDEsRCwxLDEsMCwyLDAsOCw2LDgsVSwwLDgsRCwwLDks
LTIsOSxVLFgJLy8g0YYKK9CmIFUsOSwxLEQsMCwxLDAsOSwtMiw5LFUsOSw4LEQsMCw4LFUsWAkv
LyDQpgor0YcgVSw2LDEsRCw0LDEsMywyLDMsOCxVLDYsOCxELDAsOCxVLFgJLy8g0YcKK9CnIFUs
OSwxLEQsNSwxLDQsMiw0LDgsVSw5LDgsRCwwLDgsVSxYCS8vINCnCivRiCBVLDYsMCxELDEsMCww
LDEsMCw4LDYsOCxVLDYsNCxELDAsNCxVLFgJLy8g0YgKK9CoIFUsOSwwLEQsMCwwLDAsOCw5LDgs
VSw5LDQsRCwwLDQsVSxYCS8vINCoCivRiSBVLDYsMCxELDEsMCwwLDEsMCw4LDYsOCxVLDYsNCxE
LDAsNCxVLDAsOCxELDAsOSwtMiw5LFUsWAkvLyDRiQor0KkgVSw5LDAsRCwwLDAsMCw4LDksOCxV
LDksNCxELDAsNCxVLDAsOCxELDAsOSwtMiw5LFUsWAkvLyDQqQor0YogVSw2LDAsRCw2LDEsMCwx
LDAsNywxLDgsMiw4LDMsNywzLDEsVSxYCS8vINGKCivQqiBVLDksMCxELDksMSwwLDEsMCw3LDEs
OCw0LDgsNSw3LDUsMSxVLFgJLy8g0KoKK9GLIFUsNiwxLEQsMCwxLDAsNiwxLDcsMiw3LDMsNiwz
LDEsVSw2LDgsRCwwLDgsVSxYCS8vINGLCivQqyBVLDksMSxELDAsMSwwLDYsMSw3LDMsNyw0LDYs
NCwxLFUsOSw4LEQsMCw4LFUsWAkvLyDQqwor0YwgVSw2LDEsRCwwLDEsMCw3LDEsOCwyLDgsMyw3
LDMsMSxVLFgJLy8g0YwKK9CsIFUsOSwxLEQsMCwxLDAsNywxLDgsNCw4LDUsNyw1LDEsVSxYCS8v
INCsCivRjSBVLDAsMSxELDAsNywxLDgsNSw4LDYsNyw2LDEsVSwzLDQsRCwzLDgsVSxYCS8vINGN
CivQrSBVLDAsMSxELDAsNywxLDgsOCw4LDksNyw5LDEsVSw1LDQsRCw1LDgsVSxYCS8vINCtCivR
jiBVLDYsMCxELDAsMCxVLDMsMCxELDMsMixVLDAsMyxELDEsMiw1LDIsNiwzLDYsNyw1LDgsMSw4
LDAsNywwLDMsVSxYIC8vINGOCivQriBVLDksMCxELDAsMCxVLDQsMCxELDQsMixVLDAsMyxELDEs
Miw4LDIsOSwzLDksNyw4LDgsMSw4LDAsNywwLDMsVSxYIC8vINCuCivRjyBVLDAsOCxELDYsOCw2
LDIsNSwxLDQsMSwzLDIsMyw4LFUsMywzLEQsMCwxLFUsWAkvLyDRjwor0K8gVSwwLDgsRCw5LDgs
OSwyLDgsMSw1LDEsNCwyLDQsOCxVLDQsMyxELDAsMSxVLFgJLy8g0K8KKyAgWCAvL3NwYXNlCiss
IFUsMSw0LEQsMCw0LC0zLDMsVSxYCS8qLCovCisuIFUsMCw0LEQsMSw0LFUsWAkvKi4qLwpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
 ------FpTRGcsz-mPyFOAtT9Iq36S0K:1220960123-- 




Follow ups