fontconfig: Branch 'master'
[email protected] (GitLab Mirror) Wed, 7 Aug 2019 13:21:49 +0000 (UTC)
| Newsgroups | gmane.comp.fonts.fontconfig |
|---|---|
| Message-ID | <[email protected]> |
IHNyYy9mY2ZyZWV0eXBlLmMgfCAgIDc4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9mY25hbWUuYyAgICAgfCAgICA0ICstCiBzcmMv ZmNwYXQuYyAgICAgIHwgICAyMCArKysrKysrKysrKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCA1NyBp bnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKCk5ldyBjb21taXRzOgpjb21taXQgNTA1Yzdj NDZhNTQ5NzU0YTNjNjg2MGU1MDhmMTNhZjVjZjQzNjllMApBdXRob3I6IEFraXJhIFRBR09IIDxh a2lyYUB0YWdvaC5vcmc+CkRhdGU6ICAgV2VkIEF1ZyA3IDEyOjM5OjE0IDIwMTkgKzAwMDAKCiAg ICBJbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhIGJpdAogICAgCiAgICBUaGlzIGNoYW5nZSByZWR1 Y2VzIHRoZSBjYWxsIGNvc3Qgb2Ygc3RyY21wIDEuNSAlIGxlc3MuCgpkaWZmIC0tZ2l0IGEvc3Jj L2ZjZnJlZXR5cGUuYyBiL3NyYy9mY2ZyZWV0eXBlLmMKaW5kZXggNjU2MzBjMy4uOTY5MWJhMyAx MDA2NDQKLS0tIGEvc3JjL2ZjZnJlZXR5cGUuYworKysgYi9zcmMvZmNmcmVldHlwZS5jCkBAIC0x MjkxLDE3ICsxMjkxLDE3IEBAIEZjRnJlZVR5cGVRdWVyeUZhY2VJbnRlcm5hbCAoY29uc3QgRlRf RmFjZSAgZmFjZSwKIAlpbnQgaGFzX291dGxpbmUgPSAhIShmYWNlLT5mYWNlX2ZsYWdzICYgRlRf RkFDRV9GTEFHX1NDQUxBQkxFKTsKIAlpbnQgaGFzX2NvbG9yID0gMDsKIAotCWlmICghRmNQYXR0 ZXJuQWRkQm9vbCAocGF0LCBGQ19PVVRMSU5FLCBoYXNfb3V0bGluZSkpCisJaWYgKCFGY1BhdHRl cm5PYmplY3RBZGRCb29sIChwYXQsIEZDX09VVExJTkVfT0JKRUNULCBoYXNfb3V0bGluZSkpCiAJ ICAgIGdvdG8gYmFpbDE7CiAKIAloYXNfY29sb3IgPSBGVF9IQVNfQ09MT1IgKGZhY2UpOwotCWlm ICghRmNQYXR0ZXJuQWRkQm9vbCAocGF0LCBGQ19DT0xPUiwgaGFzX2NvbG9yKSkKKwlpZiAoIUZj UGF0dGVybk9iamVjdEFkZEJvb2wgKHBhdCwgRkNfQ09MT1JfT0JKRUNULCBoYXNfY29sb3IpKQog CSAgICBnb3RvIGJhaWwxOwogCiAJLyogQWxsIGNvbG9yIGZvbnRzIGFyZSBkZXNpZ25lZCB0byBi ZSBzY2FsZWQsIGV2ZW4gaWYgdGhleSBvbmx5IGhhdmUKIAkgKiBiaXRtYXAgc3RyaWtlcy4gIENs aWVudCBpcyByZXNwb25zaWJsZSB0byBzY2FsZSB0aGUgYml0bWFwcy4gIFRoaXMKIAkgKiBpcyBp biBjb25zdHJhc3QgdG8gbm9uLWNvbG9yIHN0cmlrZXMuLi4gKi8KLQlpZiAoIUZjUGF0dGVybkFk ZEJvb2wgKHBhdCwgRkNfU0NBTEFCTEUsIGhhc19vdXRsaW5lIHx8IGhhc19jb2xvcikpCisJaWYg KCFGY1BhdHRlcm5PYmplY3RBZGRCb29sIChwYXQsIEZDX1NDQUxBQkxFX09CSkVDVCwgaGFzX291 dGxpbmUgfHwgaGFzX2NvbG9yKSkKIAkgICAgZ290byBiYWlsMTsKICAgICB9CiAKQEAgLTEzMjAs NyArMTMyMCw3IEBAIEZjRnJlZVR5cGVRdWVyeUZhY2VJbnRlcm5hbCAoY29uc3QgRlRfRmFjZSAg ZmFjZSwKIAkgICAgICBkb3VibGUgbWluX3ZhbHVlID0gbWFzdGVyLT5heGlzW2ldLm1pbmltdW0g LyAoZG91YmxlKSAoMVUgPDwgMTYpOwogCSAgICAgIGRvdWJsZSBkZWZfdmFsdWUgPSBtYXN0ZXIt PmF4aXNbaV0uZGVmIC8gKGRvdWJsZSkgKDFVIDw8IDE2KTsKIAkgICAgICBkb3VibGUgbWF4X3Zh bHVlID0gbWFzdGVyLT5heGlzW2ldLm1heGltdW0gLyAoZG91YmxlKSAoMVUgPDwgMTYpOwotCSAg ICAgIGNvbnN0IGNoYXIgKmVsdCA9IE5VTEw7CisJICAgICAgRmNPYmplY3Qgb2JqID0gRkNfSU5W QUxJRF9PQkpFQ1Q7CiAKIAkgICAgICBpZiAobWluX3ZhbHVlID4gZGVmX3ZhbHVlIHx8IGRlZl92 YWx1ZSA+IG1heF92YWx1ZSB8fCBtaW5fdmFsdWUgPT0gbWF4X3ZhbHVlKQogCQkgIGNvbnRpbnVl OwpAQCAtMTMyOCw3ICsxMzI4LDcgQEAgRmNGcmVlVHlwZVF1ZXJ5RmFjZUludGVybmFsIChjb25z dCBGVF9GYWNlICBmYWNlLAogCSAgICAgIHN3aXRjaCAobWFzdGVyLT5heGlzW2ldLnRhZykKIAkg ICAgICB7CiAJCWNhc2UgRlRfTUFLRV9UQUcgKCd3JywnZycsJ2gnLCd0Jyk6Ci0JCSAgZWx0ID0g RkNfV0VJR0hUOworCQkgIG9iaiA9IEZDX1dFSUdIVF9PQkpFQ1Q7CiAJCSAgbWluX3ZhbHVlID0g RmNXZWlnaHRGcm9tT3BlblR5cGVEb3VibGUgKG1pbl92YWx1ZSk7CiAJCSAgbWF4X3ZhbHVlID0g RmNXZWlnaHRGcm9tT3BlblR5cGVEb3VibGUgKG1heF92YWx1ZSk7CiAJCSAgdmFyaWFibGVfd2Vp Z2h0ID0gRmNUcnVlOwpAQCAtMTMzNiwyMyArMTMzNiwyMyBAQCBGY0ZyZWVUeXBlUXVlcnlGYWNl SW50ZXJuYWwgKGNvbnN0IEZUX0ZhY2UgIGZhY2UsCiAJCSAgYnJlYWs7CiAKIAkJY2FzZSBGVF9N QUtFX1RBRyAoJ3cnLCdkJywndCcsJ2gnKToKLQkJICBlbHQgPSBGQ19XSURUSDsKKwkJICBvYmog PSBGQ19XSURUSF9PQkpFQ1Q7CiAJCSAgLyogVmFsdWVzIGluICd3ZHRoJyBtYXRjaCBGb250Y29u ZmlnIEZDX1dJRFRIXyogc2NoZW1lIGRpcmVjdGx5LiAqLwogCQkgIHZhcmlhYmxlX3dpZHRoID0g RmNUcnVlOwogCQkgIHdpZHRoID0gMDsgLyogVG8gc3RvcCBsb29raW5nIGZvciB3aWR0aC4gKi8K IAkJICBicmVhazsKIAogCQljYXNlIEZUX01BS0VfVEFHICgnbycsJ3AnLCdzJywneicpOgotCQkg IGVsdCA9IEZDX1NJWkU7CisJCSAgb2JqID0gRkNfU0laRV9PQkpFQ1Q7CiAJCSAgLyogVmFsdWVz IGluICdvcHN6JyBtYXRjaCBGb250Y29uZmlnIEZDX1NJWkUsIGJvdGggYXJlIGluIHBvaW50cy4g Ki8KIAkJICB2YXJpYWJsZV9zaXplID0gRmNUcnVlOwogCQkgIGJyZWFrOwogCSAgICAgIH0KIAot CSAgICAgIGlmIChlbHQpCisJICAgICAgaWYgKG9iaiAhPSBGQ19JTlZBTElEX09CSkVDVCkKIAkg ICAgICB7CiAJCSAgRmNSYW5nZSAqciA9IEZjUmFuZ2VDcmVhdGVEb3VibGUgKG1pbl92YWx1ZSwg bWF4X3ZhbHVlKTsKLQkJICBpZiAoIUZjUGF0dGVybkFkZFJhbmdlIChwYXQsIGVsdCwgcikpCisJ CSAgaWYgKCFGY1BhdHRlcm5PYmplY3RBZGRSYW5nZSAocGF0LCBvYmosIHIpKQogCQkgIHsKIAkJ ICAgICAgRmNSYW5nZURlc3Ryb3kgKHIpOwogCQkgICAgICBnb3RvIGJhaWwxOwpAQCAtMTM5MSw3 ICsxMzkxLDcgQEAgRmNGcmVlVHlwZVF1ZXJ5RmFjZUludGVybmFsIChjb25zdCBGVF9GYWNlICBm YWNlLAogCQkgIGJyZWFrOwogCiAJCWNhc2UgRlRfTUFLRV9UQUcgKCdvJywncCcsJ3MnLCd6Jyk6 Ci0JCSAgaWYgKCFGY1BhdHRlcm5BZGREb3VibGUgKHBhdCwgRkNfU0laRSwgdmFsdWUpKQorCQkg IGlmICghRmNQYXR0ZXJuT2JqZWN0QWRkRG91YmxlIChwYXQsIEZDX1NJWkVfT0JKRUNULCB2YWx1 ZSkpCiAJCSAgICAgIGdvdG8gYmFpbDE7CiAJCSAgYnJlYWs7CiAJICAgIH0KQEAgLTE0MDAsNyAr MTQwMCw3IEBAIEZjRnJlZVR5cGVRdWVyeUZhY2VJbnRlcm5hbCAoY29uc3QgRlRfRmFjZSAgZmFj ZSwKICAgICAgICAgZWxzZQogCSAgICBnb3RvIGJhaWwxOwogICAgIH0KLSAgICBpZiAoIUZjUGF0 dGVybkFkZEJvb2wgKHBhdCwgRkNfVkFSSUFCTEUsIHZhcmlhYmxlKSkKKyAgICBpZiAoIUZjUGF0 dGVybk9iamVjdEFkZEJvb2wgKHBhdCwgRkNfVkFSSUFCTEVfT0JKRUNULCB2YXJpYWJsZSkpCiAJ Z290byBiYWlsMTsKIAogICAgIC8qCkBAIC0xNjMxLDkgKzE2MzEsOSBAQCBGY0ZyZWVUeXBlUXVl cnlGYWNlSW50ZXJuYWwgKGNvbnN0IEZUX0ZhY2UgIGZhY2UsCiAgICAgewogCWlmIChGY0RlYnVn ICgpICYgRkNfREJHX1NDQU5WKQogCSAgICBwcmludGYgKCJ1c2luZyBGcmVlVHlwZSBmYW1pbHkg XCIlc1wiXG4iLCBmYWNlLT5mYW1pbHlfbmFtZSk7Ci0JaWYgKCFGY1BhdHRlcm5BZGRTdHJpbmcg KHBhdCwgRkNfRkFNSUxZLCAoRmNDaGFyOCAqKSBmYWNlLT5mYW1pbHlfbmFtZSkpCisJaWYgKCFG Y1BhdHRlcm5PYmplY3RBZGRTdHJpbmcgKHBhdCwgRkNfRkFNSUxZX09CSkVDVCwgKEZjQ2hhcjgg KikgZmFjZS0+ZmFtaWx5X25hbWUpKQogCSAgICBnb3RvIGJhaWwxOwotCWlmICghRmNQYXR0ZXJu QWRkU3RyaW5nIChwYXQsIEZDX0ZBTUlMWUxBTkcsIChGY0NoYXI4ICopICJlbiIpKQorCWlmICgh RmNQYXR0ZXJuT2JqZWN0QWRkU3RyaW5nIChwYXQsIEZDX0ZBTUlMWUxBTkdfT0JKRUNULCAoRmND aGFyOCAqKSAiZW4iKSkKIAkgICAgZ290byBiYWlsMTsKIAkrK25mYW1pbHk7CiAgICAgfQpAQCAt MTY0NCw5ICsxNjQ0LDkgQEAgRmNGcmVlVHlwZVF1ZXJ5RmFjZUludGVybmFsIChjb25zdCBGVF9G YWNlICBmYWNlLAogCWlmIChGY0RlYnVnICgpICYgRkNfREJHX1NDQU5WKQogCSAgICBwcmludGYg KCJ1c2luZyBGcmVlVHlwZSBzdHlsZSBcIiVzXCJcbiIsIGZhY2UtPnN0eWxlX25hbWUpOwogCi0J aWYgKCFGY1BhdHRlcm5BZGRTdHJpbmcgKHBhdCwgRkNfU1RZTEUsIChGY0NoYXI4ICopIGZhY2Ut PnN0eWxlX25hbWUpKQorCWlmICghRmNQYXR0ZXJuT2JqZWN0QWRkU3RyaW5nIChwYXQsIEZDX1NU WUxFX09CSkVDVCwgKEZjQ2hhcjggKikgZmFjZS0+c3R5bGVfbmFtZSkpCiAJICAgIGdvdG8gYmFp bDE7Ci0JaWYgKCFGY1BhdHRlcm5BZGRTdHJpbmcgKHBhdCwgRkNfU1RZTEVMQU5HLCAoRmNDaGFy OCAqKSAiZW4iKSkKKwlpZiAoIUZjUGF0dGVybk9iamVjdEFkZFN0cmluZyAocGF0LCBGQ19TVFlM RUxBTkdfT0JKRUNULCAoRmNDaGFyOCAqKSAiZW4iKSkKIAkgICAgZ290byBiYWlsMTsKIAkrK25z dHlsZTsKICAgICB9CkBAIC0xNjcwLDcgKzE2NzAsNyBAQCBGY0ZyZWVUeXBlUXVlcnlGYWNlSW50 ZXJuYWwgKGNvbnN0IEZUX0ZhY2UgIGZhY2UsCiAJZmFtaWx5W2VuZCAtIHN0YXJ0XSA9ICdcMCc7 CiAJaWYgKEZjRGVidWcgKCkgJiBGQ19EQkdfU0NBTlYpCiAJICAgIHByaW50ZiAoInVzaW5nIGZp bGVuYW1lIGZvciBmYW1pbHkgJXNcbiIsIGZhbWlseSk7Ci0JaWYgKCFGY1BhdHRlcm5BZGRTdHJp bmcgKHBhdCwgRkNfRkFNSUxZLCBmYW1pbHkpKQorCWlmICghRmNQYXR0ZXJuT2JqZWN0QWRkU3Ry aW5nIChwYXQsIEZDX0ZBTUlMWV9PQkpFQ1QsIGZhbWlseSkpCiAJewogCSAgICBmcmVlIChmYW1p bHkpOwogCSAgICBnb3RvIGJhaWwxOwpAQCAtMTcyOCwxNCArMTcyOCwxNCBAQCBGY0ZyZWVUeXBl UXVlcnlGYWNlSW50ZXJuYWwgKGNvbnN0IEZUX0ZhY2UgIGZhY2UsCiAJICAgIHN0cm5jcHkgKHBz bmFtZSwgdG1wLCAyNTUpOwogCSAgICBwc25hbWVbMjU1XSA9IDA7CiAJfQotCWlmICghRmNQYXR0 ZXJuQWRkU3RyaW5nIChwYXQsIEZDX1BPU1RTQ1JJUFRfTkFNRSwgKGNvbnN0IEZjQ2hhcjggKilw c25hbWUpKQorCWlmICghRmNQYXR0ZXJuT2JqZWN0QWRkU3RyaW5nIChwYXQsIEZDX1BPU1RTQ1JJ UFRfTkFNRV9PQkpFQ1QsIChjb25zdCBGY0NoYXI4ICopcHNuYW1lKSkKIAkgICAgZ290byBiYWls MTsKICAgICB9CiAKLSAgICBpZiAoZmlsZSAmJiAqZmlsZSAmJiAhRmNQYXR0ZXJuQWRkU3RyaW5n IChwYXQsIEZDX0ZJTEUsIGZpbGUpKQorICAgIGlmIChmaWxlICYmICpmaWxlICYmICFGY1BhdHRl cm5PYmplY3RBZGRTdHJpbmcgKHBhdCwgRkNfRklMRV9PQkpFQ1QsIGZpbGUpKQogCWdvdG8gYmFp bDE7CiAKLSAgICBpZiAoIUZjUGF0dGVybkFkZEludGVnZXIgKHBhdCwgRkNfSU5ERVgsIGlkKSkK KyAgICBpZiAoIUZjUGF0dGVybk9iamVjdEFkZEludGVnZXIgKHBhdCwgRkNfSU5ERVhfT0JKRUNU LCBpZCkpCiAJZ290byBiYWlsMTsKIAogI2lmIDAKQEAgLTE3NDUsNyArMTc0NSw3IEBAIEZjRnJl ZVR5cGVRdWVyeUZhY2VJbnRlcm5hbCAoY29uc3QgRlRfRmFjZSAgZmFjZSwKICAgICAgKiB0aGUg YXR0cmlidXRlLiAgU2lnaC4KICAgICAgKi8KICAgICBpZiAoKGZhY2UtPmZhY2VfZmxhZ3MgJiBG VF9GQUNFX0ZMQUdfRklYRURfV0lEVEgpICE9IDApCi0JaWYgKCFGY1BhdHRlcm5BZGRJbnRlZ2Vy IChwYXQsIEZDX1NQQUNJTkcsIEZDX01PTk8pKQorCWlmICghRmNQYXR0ZXJuT2JqZWN0QWRkSW50 ZWdlciAocGF0LCBGQ19TUEFDSU5HX09CSkVDVCwgRkNfTU9OTykpCiAJICAgIGdvdG8gYmFpbDE7 CiAjZW5kaWYKIApAQCAtMTc1NSwxMiArMTc1NSwxMiBAQCBGY0ZyZWVUeXBlUXVlcnlGYWNlSW50 ZXJuYWwgKGNvbnN0IEZUX0ZhY2UgIGZhY2UsCiAgICAgaGVhZCA9IChUVF9IZWFkZXIgKikgRlRf R2V0X1NmbnRfVGFibGUgKGZhY2UsIGZ0X3NmbnRfaGVhZCk7CiAgICAgaWYgKGhlYWQpCiAgICAg ewotCWlmICghRmNQYXR0ZXJuQWRkSW50ZWdlciAocGF0LCBGQ19GT05UVkVSU0lPTiwgaGVhZC0+ Rm9udF9SZXZpc2lvbikpCisJaWYgKCFGY1BhdHRlcm5PYmplY3RBZGRJbnRlZ2VyIChwYXQsIEZD X0ZPTlRWRVJTSU9OX09CSkVDVCwgaGVhZC0+Rm9udF9SZXZpc2lvbikpCiAJICAgIGdvdG8gYmFp bDE7CiAgICAgfQogICAgIGVsc2UKICAgICB7Ci0JaWYgKCFGY1BhdHRlcm5BZGRJbnRlZ2VyIChw YXQsIEZDX0ZPTlRWRVJTSU9OLCAwKSkKKwlpZiAoIUZjUGF0dGVybk9iamVjdEFkZEludGVnZXIg KHBhdCwgRkNfRk9OVFZFUlNJT05fT0JKRUNULCAwKSkKIAkgICAgZ290byBiYWlsMTsKICAgICB9 CiAKQEAgLTE4MjQsNyArMTgyNCw3IEBAIEZjRnJlZVR5cGVRdWVyeUZhY2VJbnRlcm5hbCAoY29u c3QgRlRfRmFjZSAgZmFjZSwKICAgICB9CiAgICAgaWYgKG9zMiAmJiAoY29tcGxleF8gPSBGY0Zv bnRDYXBhYmlsaXRpZXMoZmFjZSkpKQogICAgIHsKLQlpZiAoIUZjUGF0dGVybkFkZFN0cmluZyAo cGF0LCBGQ19DQVBBQklMSVRZLCBjb21wbGV4XykpCisJaWYgKCFGY1BhdHRlcm5PYmplY3RBZGRT dHJpbmcgKHBhdCwgRkNfQ0FQQUJJTElUWV9PQkpFQ1QsIGNvbXBsZXhfKSkKIAl7CiAJICAgIGZy ZWUgKGNvbXBsZXhfKTsKIAkgICAgZ290byBiYWlsMTsKQEAgLTE4MzIsNyArMTgzMiw3IEBAIEZj RnJlZVR5cGVRdWVyeUZhY2VJbnRlcm5hbCAoY29uc3QgRlRfRmFjZSAgZmFjZSwKIAlmcmVlIChj b21wbGV4Xyk7CiAgICAgfQogCi0gICAgaWYgKCFGY1BhdHRlcm5BZGRCb29sIChwYXQsIEZDX0ZP TlRfSEFTX0hJTlQsIEZjRm9udEhhc0hpbnQgKGZhY2UpKSkKKyAgICBpZiAoIUZjUGF0dGVybk9i amVjdEFkZEJvb2wgKHBhdCwgRkNfRk9OVF9IQVNfSElOVF9PQkpFQ1QsIEZjRm9udEhhc0hpbnQg KGZhY2UpKSkKIAlnb3RvIGJhaWwxOwogCiAgICAgaWYgKCF2YXJpYWJsZV9zaXplICYmIG9zMiAm JiBvczItPnZlcnNpb24gPj0gMHgwMDA1ICYmIG9zMi0+dmVyc2lvbiAhPSAweGZmZmYpCkBAIC0x ODQ2LDEzICsxODQ2LDEzIEBAIEZjRnJlZVR5cGVRdWVyeUZhY2VJbnRlcm5hbCAoY29uc3QgRlRf RmFjZSAgZmFjZSwKIAogCWlmIChsb3dlcl9zaXplID09IHVwcGVyX3NpemUpCiAJewotCSAgICBp ZiAoIUZjUGF0dGVybkFkZERvdWJsZSAocGF0LCBGQ19TSVpFLCBsb3dlcl9zaXplKSkKKwkgICAg aWYgKCFGY1BhdHRlcm5PYmplY3RBZGREb3VibGUgKHBhdCwgRkNfU0laRV9PQkpFQ1QsIGxvd2Vy X3NpemUpKQogCQlnb3RvIGJhaWwxOwogCX0KIAllbHNlCiAJewogCSAgICByID0gRmNSYW5nZUNy ZWF0ZURvdWJsZSAobG93ZXJfc2l6ZSwgdXBwZXJfc2l6ZSk7Ci0JICAgIGlmICghRmNQYXR0ZXJu QWRkUmFuZ2UgKHBhdCwgRkNfU0laRSwgcikpCisJICAgIGlmICghRmNQYXR0ZXJuT2JqZWN0QWRk UmFuZ2UgKHBhdCwgRkNfU0laRV9PQkpFQ1QsIHIpKQogCSAgICB7CiAJCUZjUmFuZ2VEZXN0cm95 IChyKTsKIAkJZ290byBiYWlsMTsKQEAgLTE5OTYsMTkgKzE5OTYsMTkgQEAgRmNGcmVlVHlwZVF1 ZXJ5RmFjZUludGVybmFsIChjb25zdCBGVF9GYWNlICBmYWNlLAogICAgIGlmIChmb3VuZHJ5ID09 IDApCiAJZm91bmRyeSA9IChGY0NoYXI4ICopICJ1bmtub3duIjsKIAotICAgIGlmICghRmNQYXR0 ZXJuQWRkSW50ZWdlciAocGF0LCBGQ19TTEFOVCwgc2xhbnQpKQorICAgIGlmICghRmNQYXR0ZXJu T2JqZWN0QWRkSW50ZWdlciAocGF0LCBGQ19TTEFOVF9PQkpFQ1QsIHNsYW50KSkKIAlnb3RvIGJh aWwxOwogCi0gICAgaWYgKCF2YXJpYWJsZV93ZWlnaHQgJiYgIUZjUGF0dGVybkFkZERvdWJsZSAo cGF0LCBGQ19XRUlHSFQsIHdlaWdodCkpCisgICAgaWYgKCF2YXJpYWJsZV93ZWlnaHQgJiYgIUZj UGF0dGVybk9iamVjdEFkZERvdWJsZSAocGF0LCBGQ19XRUlHSFRfT0JKRUNULCB3ZWlnaHQpKQog CWdvdG8gYmFpbDE7CiAKLSAgICBpZiAoIXZhcmlhYmxlX3dpZHRoICYmICFGY1BhdHRlcm5BZGRE b3VibGUgKHBhdCwgRkNfV0lEVEgsIHdpZHRoKSkKKyAgICBpZiAoIXZhcmlhYmxlX3dpZHRoICYm ICFGY1BhdHRlcm5PYmplY3RBZGREb3VibGUgKHBhdCwgRkNfV0lEVEhfT0JKRUNULCB3aWR0aCkp CiAJZ290byBiYWlsMTsKIAotICAgIGlmICghRmNQYXR0ZXJuQWRkU3RyaW5nIChwYXQsIEZDX0ZP VU5EUlksIGZvdW5kcnkpKQorICAgIGlmICghRmNQYXR0ZXJuT2JqZWN0QWRkU3RyaW5nIChwYXQs IEZDX0ZPVU5EUllfT0JKRUNULCBmb3VuZHJ5KSkKIAlnb3RvIGJhaWwxOwogCi0gICAgaWYgKCFG Y1BhdHRlcm5BZGRCb29sIChwYXQsIEZDX0RFQ09SQVRJVkUsIGRlY29yYXRpdmUpKQorICAgIGlm ICghRmNQYXR0ZXJuT2JqZWN0QWRkQm9vbCAocGF0LCBGQ19ERUNPUkFUSVZFX09CSkVDVCwgZGVj b3JhdGl2ZSkpCiAJZ290byBiYWlsMTsKIAogCkBAIC0yMDI4LDcgKzIwMjgsNyBAQCBGY0ZyZWVU eXBlUXVlcnlGYWNlSW50ZXJuYWwgKGNvbnN0IEZUX0ZhY2UgIGZhY2UsCiAKICAgICAvKiBUaGUg RmNGcmVlVHlwZUNoYXJTZXQoKSBjaG9zZSB0aGUgZW5jb2Rpbmc7IHRlc3QgaXQgZm9yIHN5bWJv bC4gKi8KICAgICBzeW1ib2wgPSBmYWNlLT5jaGFybWFwICYmIGZhY2UtPmNoYXJtYXAtPmVuY29k aW5nID09IEZUX0VOQ09ESU5HX01TX1NZTUJPTDsKLSAgICBpZiAoIUZjUGF0dGVybkFkZEJvb2wg KHBhdCwgRkNfU1lNQk9MLCBzeW1ib2wpKQorICAgIGlmICghRmNQYXR0ZXJuT2JqZWN0QWRkQm9v bCAocGF0LCBGQ19TWU1CT0xfT0JKRUNULCBzeW1ib2wpKQogCWdvdG8gYmFpbDE7CiAKICAgICBz cGFjaW5nID0gRmNGcmVlVHlwZVNwYWNpbmcgKGZhY2UpOwpAQCAtMjA2MSw3ICsyMDYxLDcgQEAg RmNGcmVlVHlwZVF1ZXJ5RmFjZUludGVybmFsIChjb25zdCBGVF9GYWNlICBmYWNlLAogI2VuZGlm CiAgICAgfQogCi0gICAgaWYgKCFGY1BhdHRlcm5BZGRDaGFyU2V0IChwYXQsIEZDX0NIQVJTRVQs IGNzKSkKKyAgICBpZiAoIUZjUGF0dGVybk9iamVjdEFkZENoYXJTZXQgKHBhdCwgRkNfQ0hBUlNF VF9PQkpFQ1QsIGNzKSkKIAlnb3RvIGJhaWwyOwogCiAgICAgaWYgKCFzeW1ib2wpCkBAIC0yMDg0 LDcgKzIwODQsNyBAQCBGY0ZyZWVUeXBlUXVlcnlGYWNlSW50ZXJuYWwgKGNvbnN0IEZUX0ZhY2Ug IGZhY2UsCiAJbHMgPSBGY0xhbmdTZXRDcmVhdGUgKCk7CiAgICAgfQogCi0gICAgaWYgKCFGY1Bh dHRlcm5BZGRMYW5nU2V0IChwYXQsIEZDX0xBTkcsIGxzKSkKKyAgICBpZiAoIUZjUGF0dGVybk9i amVjdEFkZExhbmdTZXQgKHBhdCwgRkNfTEFOR19PQkpFQ1QsIGxzKSkKICAgICB7CiAJRmNMYW5n U2V0RGVzdHJveSAobHMpOwogCWdvdG8gYmFpbDI7CkBAIC0yMDkzLDE3ICsyMDkzLDE3IEBAIEZj RnJlZVR5cGVRdWVyeUZhY2VJbnRlcm5hbCAoY29uc3QgRlRfRmFjZSAgZmFjZSwKICAgICBGY0xh bmdTZXREZXN0cm95IChscyk7CiAKICAgICBpZiAoc3BhY2luZyAhPSBGQ19QUk9QT1JUSU9OQUwp Ci0JaWYgKCFGY1BhdHRlcm5BZGRJbnRlZ2VyIChwYXQsIEZDX1NQQUNJTkcsIHNwYWNpbmcpKQor CWlmICghRmNQYXR0ZXJuT2JqZWN0QWRkSW50ZWdlciAocGF0LCBGQ19TUEFDSU5HX09CSkVDVCwg c3BhY2luZykpCiAJICAgIGdvdG8gYmFpbDI7CiAKICAgICBpZiAoIShmYWNlLT5mYWNlX2ZsYWdz ICYgRlRfRkFDRV9GTEFHX1NDQUxBQkxFKSkKICAgICB7CiAJaW50IGk7CiAJZm9yIChpID0gMDsg aSA8IGZhY2UtPm51bV9maXhlZF9zaXplczsgaSsrKQotCSAgICBpZiAoIUZjUGF0dGVybkFkZERv dWJsZSAocGF0LCBGQ19QSVhFTF9TSVpFLAotCQkJCSAgICAgRmNHZXRQaXhlbFNpemUgKGZhY2Us IGkpKSkKKwkgICAgaWYgKCFGY1BhdHRlcm5PYmplY3RBZGREb3VibGUgKHBhdCwgRkNfUElYRUxf U0laRV9PQkpFQ1QsCisJCQkJCSAgIEZjR2V0UGl4ZWxTaXplIChmYWNlLCBpKSkpCiAJCWdvdG8g YmFpbDI7Ci0JaWYgKCFGY1BhdHRlcm5BZGRCb29sIChwYXQsIEZDX0FOVElBTElBUywgRmNGYWxz ZSkpCisJaWYgKCFGY1BhdHRlcm5PYmplY3RBZGRCb29sIChwYXQsIEZDX0FOVElBTElBU19PQkpF Q1QsIEZjRmFsc2UpKQogCSAgICBnb3RvIGJhaWwyOwogICAgIH0KICNpZiBIQVZFX0ZUX0dFVF9Y MTFfRk9OVF9GT1JNQVQKQEAgLTIxMTQsNyArMjExNCw3IEBAIEZjRnJlZVR5cGVRdWVyeUZhY2VJ bnRlcm5hbCAoY29uc3QgRlRfRmFjZSAgZmFjZSwKICAgICB7CiAJY29uc3QgY2hhciAqZm9udF9m b3JtYXQgPSBGVF9HZXRfWDExX0ZvbnRfRm9ybWF0IChmYWNlKTsKIAlpZiAoZm9udF9mb3JtYXQp Ci0JICAgIGlmICghRmNQYXR0ZXJuQWRkU3RyaW5nIChwYXQsIEZDX0ZPTlRGT1JNQVQsIChGY0No YXI4ICopIGZvbnRfZm9ybWF0KSkKKwkgICAgaWYgKCFGY1BhdHRlcm5PYmplY3RBZGRTdHJpbmcg KHBhdCwgRkNfRk9OVEZPUk1BVF9PQkpFQ1QsIChGY0NoYXI4ICopIGZvbnRfZm9ybWF0KSkKIAkJ Z290byBiYWlsMjsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9mY25hbWUuYyBiL3Ny Yy9mY25hbWUuYwppbmRleCAwNDFkNmQ2Li4zNTY3NjU2IDEwMDY0NAotLS0gYS9zcmMvZmNuYW1l LmMKKysrIGIvc3JjL2ZjbmFtZS5jCkBAIC00NDUsNyArNDQ1LDcgQEAgRmNOYW1lUGFyc2UgKGNv bnN0IEZjQ2hhcjggKm5hbWUpCiAJbmFtZSA9IEZjTmFtZUZpbmROZXh0IChuYW1lLCAiLSw6Iiwg c2F2ZSwgJmRlbGltKTsKIAlpZiAoc2F2ZVswXSkKIAl7Ci0JICAgIGlmICghRmNQYXR0ZXJuQWRk U3RyaW5nIChwYXQsIEZDX0ZBTUlMWSwgc2F2ZSkpCisJICAgIGlmICghRmNQYXR0ZXJuT2JqZWN0 QWRkU3RyaW5nIChwYXQsIEZDX0ZBTUlMWV9PQkpFQ1QsIHNhdmUpKQogCQlnb3RvIGJhaWwyOwog CX0KIAlpZiAoZGVsaW0gIT0gJywnKQpAQCAtNDU5LDcgKzQ1OSw3IEBAIEZjTmFtZVBhcnNlIChj b25zdCBGY0NoYXI4ICpuYW1lKQogCSAgICBkID0gc3RydG9kICgoY2hhciAqKSBzYXZlLCAoY2hh ciAqKikgJmUpOwogCSAgICBpZiAoZSAhPSBzYXZlKQogCSAgICB7Ci0JCWlmICghRmNQYXR0ZXJu QWRkRG91YmxlIChwYXQsIEZDX1NJWkUsIGQpKQorCQlpZiAoIUZjUGF0dGVybk9iamVjdEFkZERv dWJsZSAocGF0LCBGQ19TSVpFX09CSkVDVCwgZCkpCiAJCSAgICBnb3RvIGJhaWwyOwogCSAgICB9 CiAJICAgIGlmIChkZWxpbSAhPSAnLCcpCmRpZmYgLS1naXQgYS9zcmMvZmNwYXQuYyBiL3NyYy9m Y3BhdC5jCmluZGV4IDA4NjFiOGYuLjJiMWE4MDggMTAwNjQ0Ci0tLSBhL3NyYy9mY3BhdC5jCisr KyBiL3NyYy9mY3BhdC5jCkBAIC05MTQsMTMgKzkxNCwxOSBAQCBGY1BhdHRlcm5BZGRCb29sIChG Y1BhdHRlcm4gKnAsIGNvbnN0IGNoYXIgKm9iamVjdCwgRmNCb29sIGIpCiB9CiAKIEZjQm9vbAot RmNQYXR0ZXJuQWRkQ2hhclNldCAoRmNQYXR0ZXJuICpwLCBjb25zdCBjaGFyICpvYmplY3QsIGNv bnN0IEZjQ2hhclNldCAqYykKK0ZjUGF0dGVybk9iamVjdEFkZENoYXJTZXQgKEZjUGF0dGVybiAq cCwgRmNPYmplY3Qgb2JqZWN0LCBjb25zdCBGY0NoYXJTZXQgKmMpCiB7CiAgICAgRmNWYWx1ZQl2 OwogCiAgICAgdi50eXBlID0gRmNUeXBlQ2hhclNldDsKICAgICB2LnUuYyA9IChGY0NoYXJTZXQg KiljOwotICAgIHJldHVybiBGY1BhdHRlcm5BZGQgKHAsIG9iamVjdCwgdiwgRmNUcnVlKTsKKyAg ICByZXR1cm4gRmNQYXR0ZXJuT2JqZWN0QWRkIChwLCBvYmplY3QsIHYsIEZjVHJ1ZSk7Cit9CisK K0ZjQm9vbAorRmNQYXR0ZXJuQWRkQ2hhclNldCAoRmNQYXR0ZXJuICpwLCBjb25zdCBjaGFyICpv YmplY3QsIGNvbnN0IEZjQ2hhclNldCAqYykKK3sKKyAgICByZXR1cm4gRmNQYXR0ZXJuT2JqZWN0 QWRkQ2hhclNldCAocCwgRmNPYmplY3RGcm9tTmFtZSAob2JqZWN0KSwgYyk7CiB9CiAKIEZjQm9v bApAQCAtOTM0LDEzICs5NDAsMTkgQEAgRmNQYXR0ZXJuQWRkRlRGYWNlIChGY1BhdHRlcm4gKnAs IGNvbnN0IGNoYXIgKm9iamVjdCwgY29uc3QgRlRfRmFjZSBmKQogfQogCiBGY0Jvb2wKLUZjUGF0 dGVybkFkZExhbmdTZXQgKEZjUGF0dGVybiAqcCwgY29uc3QgY2hhciAqb2JqZWN0LCBjb25zdCBG Y0xhbmdTZXQgKmxzKQorRmNQYXR0ZXJuT2JqZWN0QWRkTGFuZ1NldCAoRmNQYXR0ZXJuICpwLCBG Y09iamVjdCBvYmplY3QsIGNvbnN0IEZjTGFuZ1NldCAqbHMpCiB7CiAgICAgRmNWYWx1ZQl2Owog CiAgICAgdi50eXBlID0gRmNUeXBlTGFuZ1NldDsKICAgICB2LnUubCA9IChGY0xhbmdTZXQgKils czsKLSAgICByZXR1cm4gRmNQYXR0ZXJuQWRkIChwLCBvYmplY3QsIHYsIEZjVHJ1ZSk7CisgICAg cmV0dXJuIEZjUGF0dGVybk9iamVjdEFkZCAocCwgb2JqZWN0LCB2LCBGY1RydWUpOworfQorCitG Y0Jvb2wKK0ZjUGF0dGVybkFkZExhbmdTZXQgKEZjUGF0dGVybiAqcCwgY29uc3QgY2hhciAqb2Jq ZWN0LCBjb25zdCBGY0xhbmdTZXQgKmxzKQoreworICAgIHJldHVybiBGY1BhdHRlcm5PYmplY3RB ZGRMYW5nU2V0IChwLCBGY09iamVjdEZyb21OYW1lIChvYmplY3QpLCBscyk7CiB9CiAKIEZjQm9v bApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGb250Y29u ZmlnIG1haWxpbmcgbGlzdApGb250Y29uZmlnQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZvbnRjb25maWc=