[RFC][PATCH] Remove private symbols from Vorbis shared libs

Yuri Gribov <[email protected]> Fri, 27 Apr 2018 21:40:34 +0100
Newsgroups gmane.comp.multimedia.ogg.vorbis.devel
Message-ID <CAJOtW+6bWj9BJoQ6HOCygUCYnYLLgA67LCv-t2t2JBuCfW5KLg@mail.gmail.com>
--0000000000001f02a8056ada8415
Content-Type: text/plain; charset="UTF-8"

Hi all,

I recently noticed that Vorbis shlibs export several symbols which are
not present in it's public header (for a total of 85 symbols, see
attach). Would it make sense to filter them via -fvisibility=hidden
and -Wl,--version-script? I attached a draft patch.

Best regards,
Yury Gribov

--0000000000001f02a8056ada8415
Content-Type: text/plain; charset="US-ASCII"; name="Private_symbols.txt"
Content-Disposition: attachment; filename="Private_symbols.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_jgif8sn61

X2Jvb2tfbWFwdHlwZTFfcXVhbnR2YWxzDQpfYm9va191bnF1YW50aXplDQpfX2Jzc19zdGFydA0K
ZHJmdF9iYWNrd2FyZA0KZHJmdF9jbGVhcg0KZHJmdF9mb3J3YXJkDQpkcmZ0X2luaXQNCl9lZGF0
YQ0KX2VuZA0KX2ZpbmkNCl9mbG9hdDMyX3BhY2sNCl9mbG9hdDMyX3VucGFjaw0KZmxvb3IwX2V4
cG9ydGJ1bmRsZQ0KZmxvb3IxX2VuY29kZQ0KZmxvb3IxX2V4cG9ydGJ1bmRsZQ0KZmxvb3IxX2Zp
dA0KZmxvb3IxX2ludGVycG9sYXRlX2ZpdA0KX2Zsb29yX1ANCl9pbml0DQpfbWFrZV93b3Jkcw0K
bWFwcGluZzBfZXhwb3J0YnVuZGxlDQpfbWFwcGluZ19QDQptZGN0X2JhY2t3YXJkDQptZGN0X2Ns
ZWFyDQptZGN0X2ZvcndhcmQNCm1kY3RfaW5pdA0Kb3ZfaWxvZw0KcmVzMF9mcmVlX2luZm8NCnJl
czBfZnJlZV9sb29rDQpyZXMwX2ludmVyc2UNCnJlczBfbG9vaw0KcmVzMF9wYWNrDQpyZXMwX3Vu
cGFjaw0KcmVzMV9jbGFzcw0KcmVzMV9mb3J3YXJkDQpyZXMxX2ludmVyc2UNCnJlczJfY2xhc3MN
CnJlczJfZm9yd2FyZA0KcmVzMl9pbnZlcnNlDQpyZXNpZHVlMF9leHBvcnRidW5kbGUNCnJlc2lk
dWUxX2V4cG9ydGJ1bmRsZQ0KcmVzaWR1ZTJfZXhwb3J0YnVuZGxlDQpfcmVzaWR1ZV9QDQpfdmVf
ZW52ZWxvcGVfY2xlYXINCl92ZV9lbnZlbG9wZV9pbml0DQpfdmVfZW52ZWxvcGVfbWFyaw0KX3Zl
X2VudmVsb3BlX3NlYXJjaA0KX3ZlX2VudmVsb3BlX3NoaWZ0DQpfdmlfZ3BzeV9mcmVlDQpfdmlf
cHN5X2ZyZWUNCl92b3JiaXNfYXBwbHlfd2luZG93DQp2b3JiaXNfYml0cmF0ZV9jbGVhcg0Kdm9y
YmlzX2JpdHJhdGVfaW5pdA0Kdm9yYmlzX2JpdHJhdGVfbWFuYWdlZA0KX3ZvcmJpc19ibG9ja19h
bGxvYw0KX3ZvcmJpc19ibG9ja19yaXBjb3JkDQp2b3JiaXNfYm9va19jbGVhcg0Kdm9yYmlzX2Jv
b2tfY29kZWxlbg0Kdm9yYmlzX2Jvb2tfY29kZXdvcmQNCnZvcmJpc19ib29rX2RlY29kZQ0Kdm9y
YmlzX2Jvb2tfZGVjb2Rldl9hZGQNCnZvcmJpc19ib29rX2RlY29kZXZzX2FkZA0Kdm9yYmlzX2Jv
b2tfZGVjb2Rldl9zZXQNCnZvcmJpc19ib29rX2RlY29kZXZ2X2FkZA0Kdm9yYmlzX2Jvb2tfZW5j
b2RlDQp2b3JiaXNfYm9va19pbml0X2RlY29kZQ0Kdm9yYmlzX2Jvb2tfaW5pdF9lbmNvZGUNCnZv
cmJpc19scGNfZnJvbV9kYXRhDQp2b3JiaXNfbHBjX3ByZWRpY3QNCnZvcmJpc19scGNfdG9fbHNw
DQp2b3JiaXNfbHNwX3RvX2N1cnZlDQp2b3JiaXNfc3RhdGljYm9va19kZXN0cm95DQp2b3JiaXNf
c3RhdGljYm9va19wYWNrDQp2b3JiaXNfc3RhdGljYm9va191bnBhY2sNCnZvcmJpc193aW5kb3cN
Cl92b3JiaXNfd2luZG93X2dldA0KX3ZwX2FtcG1heF9kZWNheQ0KX3ZwX2NvdXBsZV9xdWFudGl6
ZV9ub3JtYWxpemUNCl92cF9nbG9iYWxfZnJlZQ0KX3ZwX2dsb2JhbF9sb29rDQpfdnBfbm9pc2Vt
YXNrDQpfdnBfb2Zmc2V0X2FuZF9taXgNCl92cF9wc3lfY2xlYXINCl92cF9wc3lfaW5pdA0KX3Zw
X3RvbmVtYXNrDQo=
--0000000000001f02a8056ada8415
Content-Type: application/octet-stream; 
	name="0001-Hide-private-symbols.patch"
Content-Disposition: attachment; filename="0001-Hide-private-symbols.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_jgif7a5n0

RnJvbSA5ZDdmNWZlMDU0ZTI2OTAxZTcwOWZjN2RjZjZlNjQxNWZhMDc0NzA5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBZdXJ5IEdyaWJvdiA8dGV0cmEyMDA1QGdtYWlsLmNvbT4KRGF0
ZTogRnJpLCAyNyBBcHIgMjAxOCAyMToyODoyOSArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIEhpZGUg
cHJpdmF0ZSBzeW1ib2xzLgoKLS0tCiBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgfCAyMyAr
KysrKysrKysrKysKIGluY2x1ZGUvdm9yYmlzL2NvZGVjLmggICAgICB8IDgyICsrKysrKysrKysr
KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogaW5jbHVkZS92b3JiaXMvdm9yYmlzZW5j
LmggIHwgMTIgKysrLS0tLQogaW5jbHVkZS92b3JiaXMvdm9yYmlzZmlsZS5oIHwgODYgKysrKysr
KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWIvYmxvY2suYyAgICAg
ICAgICAgICAgICAgfCAgMiArLQogdm9yYmlzLnZlcnNpb24gICAgICAgICAgICAgIHwgIDQgKysr
CiA2IGZpbGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCA4OCBkZWxldGlvbnMoLSkKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCB2b3JiaXMudmVyc2lvbgoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5h
YyBiL2NvbmZpZ3VyZS5hYwppbmRleCAyOGIwYTE0Li4xMWQxY2IzIDEwMDY0NAotLS0gYS9jb25m
aWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0yMjAsNiArMjIwLDI5IEBAIGVsc2UKIGZp
CiBDRkxBR1M9IiRDRkxBR1MgJGNmbGFnc19zYXZlIgogCitkbmwgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK2RubCBDaGVjayBmb3IgdmlzaWJpbGl0eSBhbm5vdGF0aW9ucworZG5s
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitPTERDRkxBR1M9IiRDRkxBR1MiCitD
RkxBR1M9IiRDRkxBR1MgLWZ2aXNpYmlsaXR5PWhpZGRlbiIKK0FDX01TR19DSEVDS0lORyh3aGV0
aGVyIGNvbXBpbGVyIHN1cHBvcnRzIHZpc2liaWxpdHkgYW5ub3RhdGlvbnMpCitBQ19DT01QSUxF
X0lGRUxTRShbQUNfTEFOR19TT1VSQ0UoW1t2b2lkIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHko
ImRlZmF1bHQiKSkpIGZvbygpIHt9XV0pXSwKKyAgICAgICAgICAgICAgICAgIFtDRkxBR1M9IiRD
RkxBR1MgLURWT1JCSVNfRU5BQkxFX1ZJU0lCSUxJVFkiOworICAgICAgICAgICAgICAgICAgIEFD
X01TR19SRVNVTFQoeWVzKV0sCisgICAgICAgICAgICAgICAgICBbQ0ZMQUdTPSIkT0xEQ0ZMQUdT
IgorICAgICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoeWVzKV0pCisKK2RubCAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitkbmwgQ2hlY2sgZm9yIHZlcnNpb24gc2NyaXB0cworZG5sIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK09MRExERkxBR1M9IiRMREZMQUdTIgorTERGTEFHUz0i
JExERkxBR1MgLVdsLC0tdmVyc2lvbi1zY3JpcHQ9JHNyY2Rpci92b3JiaXMudmVyc2lvbiIKK0FD
X01TR19DSEVDS0lORyh3aGV0aGVyIGxpbmtlciBhY2NlcHRzIHZlcnNpb24gc2NyaXB0cykKK0FD
X1RSWV9MSU5LKCwsCisgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKHllcyksCisgICAgICAgICAg
ICBbTERGTEFHUz0iJE9MRExERkxBR1MiCisgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChubyld
KQorCiBkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIGRubCBDaGVjayBmb3IgaGVhZGVycwogZG5sIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZvcmJpcy9jb2Rl
Yy5oIGIvaW5jbHVkZS92b3JiaXMvY29kZWMuaAppbmRleCA0MmFhMjkxLi5mNzc0ZDU4IDEwMDY0
NAotLS0gYS9pbmNsdWRlL3ZvcmJpcy9jb2RlYy5oCisrKyBiL2luY2x1ZGUvdm9yYmlzL2NvZGVj
LmgKQEAgLTI0LDYgKzI0LDEyIEBAIGV4dGVybiAiQyIKIAogI2luY2x1ZGUgPG9nZy9vZ2cuaD4K
IAorI2lmZGVmIFZPUkJJU19FTkFCTEVfVklTSUJJTElUWQorIyAgZGVmaW5lIFZPUkJJU19FWFBP
UlQgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyNlbHNlCisjICBkZWZp
bmUgVk9SQklTX0VYUE9SVAorI2VuZGlmCisKIHR5cGVkZWYgc3RydWN0IHZvcmJpc19pbmZvewog
ICBpbnQgdmVyc2lvbjsKICAgaW50IGNoYW5uZWxzOwpAQCAtMTYxLDYwICsxNjcsNjAgQEAgdHlw
ZWRlZiBzdHJ1Y3Qgdm9yYmlzX2NvbW1lbnR7CiAKIC8qIFZvcmJpcyBQUklNSVRJVkVTOiBnZW5l
cmFsICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotZXh0ZXJuIHZv
aWQgICAgIHZvcmJpc19pbmZvX2luaXQodm9yYmlzX2luZm8gKnZpKTsKLWV4dGVybiB2b2lkICAg
ICB2b3JiaXNfaW5mb19jbGVhcih2b3JiaXNfaW5mbyAqdmkpOwotZXh0ZXJuIGludCAgICAgIHZv
cmJpc19pbmZvX2Jsb2Nrc2l6ZSh2b3JiaXNfaW5mbyAqdmksaW50IHpvKTsKLWV4dGVybiB2b2lk
ICAgICB2b3JiaXNfY29tbWVudF9pbml0KHZvcmJpc19jb21tZW50ICp2Yyk7Ci1leHRlcm4gdm9p
ZCAgICAgdm9yYmlzX2NvbW1lbnRfYWRkKHZvcmJpc19jb21tZW50ICp2YywgY29uc3QgY2hhciAq
Y29tbWVudCk7Ci1leHRlcm4gdm9pZCAgICAgdm9yYmlzX2NvbW1lbnRfYWRkX3RhZyh2b3JiaXNf
Y29tbWVudCAqdmMsCitleHRlcm4gVk9SQklTX0VYUE9SVCB2b2lkICAgICB2b3JiaXNfaW5mb19p
bml0KHZvcmJpc19pbmZvICp2aSk7CitleHRlcm4gVk9SQklTX0VYUE9SVCB2b2lkICAgICB2b3Ji
aXNfaW5mb19jbGVhcih2b3JiaXNfaW5mbyAqdmkpOworZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50
ICAgICAgdm9yYmlzX2luZm9fYmxvY2tzaXplKHZvcmJpc19pbmZvICp2aSxpbnQgem8pOworZXh0
ZXJuIFZPUkJJU19FWFBPUlQgdm9pZCAgICAgdm9yYmlzX2NvbW1lbnRfaW5pdCh2b3JiaXNfY29t
bWVudCAqdmMpOworZXh0ZXJuIFZPUkJJU19FWFBPUlQgdm9pZCAgICAgdm9yYmlzX2NvbW1lbnRf
YWRkKHZvcmJpc19jb21tZW50ICp2YywgY29uc3QgY2hhciAqY29tbWVudCk7CitleHRlcm4gVk9S
QklTX0VYUE9SVCB2b2lkICAgICB2b3JiaXNfY29tbWVudF9hZGRfdGFnKHZvcmJpc19jb21tZW50
ICp2YywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg
KnRhZywgY29uc3QgY2hhciAqY29udGVudHMpOwotZXh0ZXJuIGNoYXIgICAgKnZvcmJpc19jb21t
ZW50X3F1ZXJ5KHZvcmJpc19jb21tZW50ICp2YywgY29uc3QgY2hhciAqdGFnLCBpbnQgY291bnQp
OwotZXh0ZXJuIGludCAgICAgIHZvcmJpc19jb21tZW50X3F1ZXJ5X2NvdW50KHZvcmJpc19jb21t
ZW50ICp2YywgY29uc3QgY2hhciAqdGFnKTsKLWV4dGVybiB2b2lkICAgICB2b3JiaXNfY29tbWVu
dF9jbGVhcih2b3JiaXNfY29tbWVudCAqdmMpOwotCi1leHRlcm4gaW50ICAgICAgdm9yYmlzX2Js
b2NrX2luaXQodm9yYmlzX2RzcF9zdGF0ZSAqdiwgdm9yYmlzX2Jsb2NrICp2Yik7Ci1leHRlcm4g
aW50ICAgICAgdm9yYmlzX2Jsb2NrX2NsZWFyKHZvcmJpc19ibG9jayAqdmIpOwotZXh0ZXJuIHZv
aWQgICAgIHZvcmJpc19kc3BfY2xlYXIodm9yYmlzX2RzcF9zdGF0ZSAqdik7Ci1leHRlcm4gZG91
YmxlICAgdm9yYmlzX2dyYW51bGVfdGltZSh2b3JiaXNfZHNwX3N0YXRlICp2LAorZXh0ZXJuIFZP
UkJJU19FWFBPUlQgY2hhciAgICAqdm9yYmlzX2NvbW1lbnRfcXVlcnkodm9yYmlzX2NvbW1lbnQg
KnZjLCBjb25zdCBjaGFyICp0YWcsIGludCBjb3VudCk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBp
bnQgICAgICB2b3JiaXNfY29tbWVudF9xdWVyeV9jb3VudCh2b3JiaXNfY29tbWVudCAqdmMsIGNv
bnN0IGNoYXIgKnRhZyk7CitleHRlcm4gVk9SQklTX0VYUE9SVCB2b2lkICAgICB2b3JiaXNfY29t
bWVudF9jbGVhcih2b3JiaXNfY29tbWVudCAqdmMpOworCitleHRlcm4gVk9SQklTX0VYUE9SVCBp
bnQgICAgICB2b3JiaXNfYmxvY2tfaW5pdCh2b3JiaXNfZHNwX3N0YXRlICp2LCB2b3JiaXNfYmxv
Y2sgKnZiKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGludCAgICAgIHZvcmJpc19ibG9ja19jbGVh
cih2b3JiaXNfYmxvY2sgKnZiKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIHZvaWQgICAgIHZvcmJp
c19kc3BfY2xlYXIodm9yYmlzX2RzcF9zdGF0ZSAqdik7CitleHRlcm4gVk9SQklTX0VYUE9SVCBk
b3VibGUgICB2b3JiaXNfZ3JhbnVsZV90aW1lKHZvcmJpc19kc3Bfc3RhdGUgKnYsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZ2dfaW50NjRfdCBncmFudWxlcG9zKTsKIAot
ZXh0ZXJuIGNvbnN0IGNoYXIgKnZvcmJpc192ZXJzaW9uX3N0cmluZyh2b2lkKTsKK2V4dGVybiBW
T1JCSVNfRVhQT1JUIGNvbnN0IGNoYXIgKnZvcmJpc192ZXJzaW9uX3N0cmluZyh2b2lkKTsKIAog
LyogVm9yYmlzIFBSSU1JVElWRVM6IGFuYWx5c2lzL0RTUCBsYXllciAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqLwogCi1leHRlcm4gaW50ICAgICAgdm9yYmlzX2FuYWx5c2lzX2luaXQodm9y
YmlzX2RzcF9zdGF0ZSAqdix2b3JiaXNfaW5mbyAqdmkpOwotZXh0ZXJuIGludCAgICAgIHZvcmJp
c19jb21tZW50aGVhZGVyX291dCh2b3JiaXNfY29tbWVudCAqdmMsIG9nZ19wYWNrZXQgKm9wKTsK
LWV4dGVybiBpbnQgICAgICB2b3JiaXNfYW5hbHlzaXNfaGVhZGVyb3V0KHZvcmJpc19kc3Bfc3Rh
dGUgKnYsCitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgICAgICB2b3JiaXNfYW5hbHlzaXNfaW5p
dCh2b3JiaXNfZHNwX3N0YXRlICp2LHZvcmJpc19pbmZvICp2aSk7CitleHRlcm4gVk9SQklTX0VY
UE9SVCBpbnQgICAgICB2b3JiaXNfY29tbWVudGhlYWRlcl9vdXQodm9yYmlzX2NvbW1lbnQgKnZj
LCBvZ2dfcGFja2V0ICpvcCk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgICAgICB2b3JiaXNf
YW5hbHlzaXNfaGVhZGVyb3V0KHZvcmJpc19kc3Bfc3RhdGUgKnYsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2b3JiaXNfY29tbWVudCAqdmMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZ2dfcGFja2V0ICpvcCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9nZ19wYWNrZXQgKm9wX2NvbW0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZ2dfcGFja2V0ICpvcF9j
b2RlKTsKLWV4dGVybiBmbG9hdCAgKip2b3JiaXNfYW5hbHlzaXNfYnVmZmVyKHZvcmJpc19kc3Bf
c3RhdGUgKnYsaW50IHZhbHMpOwotZXh0ZXJuIGludCAgICAgIHZvcmJpc19hbmFseXNpc193cm90
ZSh2b3JiaXNfZHNwX3N0YXRlICp2LGludCB2YWxzKTsKLWV4dGVybiBpbnQgICAgICB2b3JiaXNf
YW5hbHlzaXNfYmxvY2tvdXQodm9yYmlzX2RzcF9zdGF0ZSAqdix2b3JiaXNfYmxvY2sgKnZiKTsK
LWV4dGVybiBpbnQgICAgICB2b3JiaXNfYW5hbHlzaXModm9yYmlzX2Jsb2NrICp2YixvZ2dfcGFj
a2V0ICpvcCk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBmbG9hdCAgKip2b3JiaXNfYW5hbHlzaXNf
YnVmZmVyKHZvcmJpc19kc3Bfc3RhdGUgKnYsaW50IHZhbHMpOworZXh0ZXJuIFZPUkJJU19FWFBP
UlQgaW50ICAgICAgdm9yYmlzX2FuYWx5c2lzX3dyb3RlKHZvcmJpc19kc3Bfc3RhdGUgKnYsaW50
IHZhbHMpOworZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50ICAgICAgdm9yYmlzX2FuYWx5c2lzX2Js
b2Nrb3V0KHZvcmJpc19kc3Bfc3RhdGUgKnYsdm9yYmlzX2Jsb2NrICp2Yik7CitleHRlcm4gVk9S
QklTX0VYUE9SVCBpbnQgICAgICB2b3JiaXNfYW5hbHlzaXModm9yYmlzX2Jsb2NrICp2YixvZ2df
cGFja2V0ICpvcCk7CiAKLWV4dGVybiBpbnQgICAgICB2b3JiaXNfYml0cmF0ZV9hZGRibG9jayh2
b3JiaXNfYmxvY2sgKnZiKTsKLWV4dGVybiBpbnQgICAgICB2b3JiaXNfYml0cmF0ZV9mbHVzaHBh
Y2tldCh2b3JiaXNfZHNwX3N0YXRlICp2ZCwKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGludCAgICAg
IHZvcmJpc19iaXRyYXRlX2FkZGJsb2NrKHZvcmJpc19ibG9jayAqdmIpOworZXh0ZXJuIFZPUkJJ
U19FWFBPUlQgaW50ICAgICAgdm9yYmlzX2JpdHJhdGVfZmx1c2hwYWNrZXQodm9yYmlzX2RzcF9z
dGF0ZSAqdmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2dn
X3BhY2tldCAqb3ApOwogCiAvKiBWb3JiaXMgUFJJTUlUSVZFUzogc3ludGhlc2lzIGxheWVyICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1leHRlcm4gaW50ICAgICAgdm9yYmlzX3N5
bnRoZXNpc19pZGhlYWRlcihvZ2dfcGFja2V0ICpvcCk7Ci1leHRlcm4gaW50ICAgICAgdm9yYmlz
X3N5bnRoZXNpc19oZWFkZXJpbih2b3JiaXNfaW5mbyAqdmksdm9yYmlzX2NvbW1lbnQgKnZjLAor
ZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50ICAgICAgdm9yYmlzX3N5bnRoZXNpc19pZGhlYWRlcihv
Z2dfcGFja2V0ICpvcCk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgICAgICB2b3JiaXNfc3lu
dGhlc2lzX2hlYWRlcmluKHZvcmJpc19pbmZvICp2aSx2b3JiaXNfY29tbWVudCAqdmMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZ2dfcGFja2V0ICpvcCk7CiAK
LWV4dGVybiBpbnQgICAgICB2b3JiaXNfc3ludGhlc2lzX2luaXQodm9yYmlzX2RzcF9zdGF0ZSAq
dix2b3JiaXNfaW5mbyAqdmkpOwotZXh0ZXJuIGludCAgICAgIHZvcmJpc19zeW50aGVzaXNfcmVz
dGFydCh2b3JiaXNfZHNwX3N0YXRlICp2KTsKLWV4dGVybiBpbnQgICAgICB2b3JiaXNfc3ludGhl
c2lzKHZvcmJpc19ibG9jayAqdmIsb2dnX3BhY2tldCAqb3ApOwotZXh0ZXJuIGludCAgICAgIHZv
cmJpc19zeW50aGVzaXNfdHJhY2tvbmx5KHZvcmJpc19ibG9jayAqdmIsb2dnX3BhY2tldCAqb3Ap
OwotZXh0ZXJuIGludCAgICAgIHZvcmJpc19zeW50aGVzaXNfYmxvY2tpbih2b3JiaXNfZHNwX3N0
YXRlICp2LHZvcmJpc19ibG9jayAqdmIpOwotZXh0ZXJuIGludCAgICAgIHZvcmJpc19zeW50aGVz
aXNfcGNtb3V0KHZvcmJpc19kc3Bfc3RhdGUgKnYsZmxvYXQgKioqcGNtKTsKLWV4dGVybiBpbnQg
ICAgICB2b3JiaXNfc3ludGhlc2lzX2xhcG91dCh2b3JiaXNfZHNwX3N0YXRlICp2LGZsb2F0ICoq
KnBjbSk7Ci1leHRlcm4gaW50ICAgICAgdm9yYmlzX3N5bnRoZXNpc19yZWFkKHZvcmJpc19kc3Bf
c3RhdGUgKnYsaW50IHNhbXBsZXMpOwotZXh0ZXJuIGxvbmcgICAgIHZvcmJpc19wYWNrZXRfYmxv
Y2tzaXplKHZvcmJpc19pbmZvICp2aSxvZ2dfcGFja2V0ICpvcCk7Ci0KLWV4dGVybiBpbnQgICAg
ICB2b3JiaXNfc3ludGhlc2lzX2hhbGZyYXRlKHZvcmJpc19pbmZvICp2LGludCBmbGFnKTsKLWV4
dGVybiBpbnQgICAgICB2b3JiaXNfc3ludGhlc2lzX2hhbGZyYXRlX3Aodm9yYmlzX2luZm8gKnYp
OworZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50ICAgICAgdm9yYmlzX3N5bnRoZXNpc19pbml0KHZv
cmJpc19kc3Bfc3RhdGUgKnYsdm9yYmlzX2luZm8gKnZpKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JU
IGludCAgICAgIHZvcmJpc19zeW50aGVzaXNfcmVzdGFydCh2b3JiaXNfZHNwX3N0YXRlICp2KTsK
K2V4dGVybiBWT1JCSVNfRVhQT1JUIGludCAgICAgIHZvcmJpc19zeW50aGVzaXModm9yYmlzX2Js
b2NrICp2YixvZ2dfcGFja2V0ICpvcCk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgICAgICB2
b3JiaXNfc3ludGhlc2lzX3RyYWNrb25seSh2b3JiaXNfYmxvY2sgKnZiLG9nZ19wYWNrZXQgKm9w
KTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGludCAgICAgIHZvcmJpc19zeW50aGVzaXNfYmxvY2tp
bih2b3JiaXNfZHNwX3N0YXRlICp2LHZvcmJpc19ibG9jayAqdmIpOworZXh0ZXJuIFZPUkJJU19F
WFBPUlQgaW50ICAgICAgdm9yYmlzX3N5bnRoZXNpc19wY21vdXQodm9yYmlzX2RzcF9zdGF0ZSAq
dixmbG9hdCAqKipwY20pOworZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50ICAgICAgdm9yYmlzX3N5
bnRoZXNpc19sYXBvdXQodm9yYmlzX2RzcF9zdGF0ZSAqdixmbG9hdCAqKipwY20pOworZXh0ZXJu
IFZPUkJJU19FWFBPUlQgaW50ICAgICAgdm9yYmlzX3N5bnRoZXNpc19yZWFkKHZvcmJpc19kc3Bf
c3RhdGUgKnYsaW50IHNhbXBsZXMpOworZXh0ZXJuIFZPUkJJU19FWFBPUlQgbG9uZyAgICAgdm9y
YmlzX3BhY2tldF9ibG9ja3NpemUodm9yYmlzX2luZm8gKnZpLG9nZ19wYWNrZXQgKm9wKTsKKwor
ZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50ICAgICAgdm9yYmlzX3N5bnRoZXNpc19oYWxmcmF0ZSh2
b3JiaXNfaW5mbyAqdixpbnQgZmxhZyk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgICAgICB2
b3JiaXNfc3ludGhlc2lzX2hhbGZyYXRlX3Aodm9yYmlzX2luZm8gKnYpOwogCiAvKiBWb3JiaXMg
RVJST1JTIGFuZCByZXR1cm4gY29kZXMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdm9yYmlzL3ZvcmJpc2VuYy5oIGIvaW5jbHVkZS92
b3JiaXMvdm9yYmlzZW5jLmgKaW5kZXggNTVmM2I0YS4uM2FkMzMwMyAxMDA2NDQKLS0tIGEvaW5j
bHVkZS92b3JiaXMvdm9yYmlzZW5jLmgKKysrIGIvaW5jbHVkZS92b3JiaXMvdm9yYmlzZW5jLmgK
QEAgLTU2LDcgKzU2LDcgQEAgZXh0ZXJuICJDIgogICogXHJldHZhbCBPVl9FSU5WQUwgIEludmFs
aWQgc2V0dXAgcmVxdWVzdCwgZWcsIG91dCBvZiByYW5nZSBhcmd1bWVudC4KICAqIFxyZXR2YWwg
T1ZfRUlNUEwgICBVbmltcGxlbWVudGVkIG1vZGU7IHVuYWJsZSB0byBjb21wbHkgd2l0aCBiaXRy
YXRlIHJlcXVlc3QuCiAgKi8KLWV4dGVybiBpbnQgdm9yYmlzX2VuY29kZV9pbml0KHZvcmJpc19p
bmZvICp2aSwKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGludCB2b3JiaXNfZW5jb2RlX2luaXQodm9y
YmlzX2luZm8gKnZpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjaGFubmVs
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcmF0ZSwKIApAQCAtOTMsNyAr
OTMsNyBAQCBleHRlcm4gaW50IHZvcmJpc19lbmNvZGVfaW5pdCh2b3JiaXNfaW5mbyAqdmksCiAg
KiBccmV0dmFsIE9WX0VJTlZBTCAgIEludmFsaWQgc2V0dXAgcmVxdWVzdCwgZWcsIG91dCBvZiBy
YW5nZSBhcmd1bWVudC4KICAqIFxyZXR2YWwgT1ZfRUlNUEwgICAgVW5pbXBsZW1lbnRlZCBtb2Rl
OyB1bmFibGUgdG8gY29tcGx5IHdpdGggYml0cmF0ZSByZXF1ZXN0LgogICovCi1leHRlcm4gaW50
IHZvcmJpc19lbmNvZGVfc2V0dXBfbWFuYWdlZCh2b3JiaXNfaW5mbyAqdmksCitleHRlcm4gVk9S
QklTX0VYUE9SVCBpbnQgdm9yYmlzX2VuY29kZV9zZXR1cF9tYW5hZ2VkKHZvcmJpc19pbmZvICp2
aSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY2hhbm5lbHMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHJhdGUsCiAKQEAg
LTEyNSw3ICsxMjUsNyBAQCBleHRlcm4gaW50IHZvcmJpc19lbmNvZGVfc2V0dXBfbWFuYWdlZCh2
b3JiaXNfaW5mbyAqdmksCiAgKiBccmV0dmFsICBPVl9FSU5WQUwgIEludmFsaWQgc2V0dXAgcmVx
dWVzdCwgZWcsIG91dCBvZiByYW5nZSBhcmd1bWVudC4KICAqIFxyZXR2YWwgIE9WX0VJTVBMICAg
VW5pbXBsZW1lbnRlZCBtb2RlOyB1bmFibGUgdG8gY29tcGx5IHdpdGggcXVhbGl0eSBsZXZlbCBy
ZXF1ZXN0LgogICovCi1leHRlcm4gaW50IHZvcmJpc19lbmNvZGVfc2V0dXBfdmJyKHZvcmJpc19p
bmZvICp2aSwKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGludCB2b3JiaXNfZW5jb2RlX3NldHVwX3Zi
cih2b3JiaXNfaW5mbyAqdmksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9u
ZyBjaGFubmVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHJhdGUs
CiAKQEAgLTE1NCw3ICsxNTQsNyBAQCBleHRlcm4gaW50IHZvcmJpc19lbmNvZGVfc2V0dXBfdmJy
KHZvcmJpc19pbmZvICp2aSwKICAqIFxyZXR2YWwgT1ZfRUlOVkFMICAgSW52YWxpZCBzZXR1cCBy
ZXF1ZXN0LCBlZywgb3V0IG9mIHJhbmdlIGFyZ3VtZW50LgogICogXHJldHZhbCBPVl9FSU1QTCAg
ICBVbmltcGxlbWVudGVkIG1vZGU7IHVuYWJsZSB0byBjb21wbHkgd2l0aCBxdWFsaXR5IGxldmVs
IHJlcXVlc3QuCiAgKi8KLWV4dGVybiBpbnQgdm9yYmlzX2VuY29kZV9pbml0X3Zicih2b3JiaXNf
aW5mbyAqdmksCitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgdm9yYmlzX2VuY29kZV9pbml0X3Zi
cih2b3JiaXNfaW5mbyAqdmksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9u
ZyBjaGFubmVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHJhdGUs
CiAKQEAgLTE4OCw3ICsxODgsNyBAQCBleHRlcm4gaW50IHZvcmJpc19lbmNvZGVfaW5pdF92YnIo
dm9yYmlzX2luZm8gKnZpLAogICogaW5pdGlhbGl6ZSB0aGUgaGlnaC1sZXZlbCBlbmNvZGluZyBz
ZXR1cAogICoKICAqLwotZXh0ZXJuIGludCB2b3JiaXNfZW5jb2RlX3NldHVwX2luaXQodm9yYmlz
X2luZm8gKnZpKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGludCB2b3JiaXNfZW5jb2RlX3NldHVw
X2luaXQodm9yYmlzX2luZm8gKnZpKTsKIAogLyoqCiAgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVu
dHMgYSBnZW5lcmljIGludGVyZmFjZSB0byBtaXNjZWxsYW5lb3VzIGVuY29kZXIKQEAgLTIxNiw3
ICsyMTYsNyBAQCBleHRlcm4gaW50IHZvcmJpc19lbmNvZGVfc2V0dXBfaW5pdCh2b3JiaXNfaW5m
byAqdmkpOwogICoKICAqIFxyZXR2YWwgT1ZfRUlNUEwgICBVbmltcGxlbWVudGVkIG9yIHVua25v
d24gcmVxdWVzdAogICovCi1leHRlcm4gaW50IHZvcmJpc19lbmNvZGVfY3RsKHZvcmJpc19pbmZv
ICp2aSxpbnQgbnVtYmVyLHZvaWQgKmFyZyk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgdm9y
YmlzX2VuY29kZV9jdGwodm9yYmlzX2luZm8gKnZpLGludCBudW1iZXIsdm9pZCAqYXJnKTsKIAog
LyoqCiAgKiBcZGVwcmVjYXRlZCBUaGlzIGlzIGEgZGVwcmVjYXRlZCBpbnRlcmZhY2UuIFBsZWFz
ZSB1c2Ugdm9yYmlzX2VuY29kZV9jdGwoKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92b3JiaXMvdm9y
YmlzZmlsZS5oIGIvaW5jbHVkZS92b3JiaXMvdm9yYmlzZmlsZS5oCmluZGV4IDU2NjI2MTEuLjU4
ODBjNjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdm9yYmlzL3ZvcmJpc2ZpbGUuaAorKysgYi9pbmNs
dWRlL3ZvcmJpcy92b3JiaXNmaWxlLmgKQEAgLTE0NSw1NyArMTQ1LDU3IEBAIHR5cGVkZWYgc3Ry
dWN0IE9nZ1ZvcmJpc19GaWxlIHsKIH0gT2dnVm9yYmlzX0ZpbGU7CiAKIAotZXh0ZXJuIGludCBv
dl9jbGVhcihPZ2dWb3JiaXNfRmlsZSAqdmYpOwotZXh0ZXJuIGludCBvdl9mb3Blbihjb25zdCBj
aGFyICpwYXRoLE9nZ1ZvcmJpc19GaWxlICp2Zik7Ci1leHRlcm4gaW50IG92X29wZW4oRklMRSAq
ZixPZ2dWb3JiaXNfRmlsZSAqdmYsY29uc3QgY2hhciAqaW5pdGlhbCxsb25nIGlieXRlcyk7Ci1l
eHRlcm4gaW50IG92X29wZW5fY2FsbGJhY2tzKHZvaWQgKmRhdGFzb3VyY2UsIE9nZ1ZvcmJpc19G
aWxlICp2ZiwKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGludCBvdl9jbGVhcihPZ2dWb3JiaXNfRmls
ZSAqdmYpOworZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50IG92X2ZvcGVuKGNvbnN0IGNoYXIgKnBh
dGgsT2dnVm9yYmlzX0ZpbGUgKnZmKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGludCBvdl9vcGVu
KEZJTEUgKmYsT2dnVm9yYmlzX0ZpbGUgKnZmLGNvbnN0IGNoYXIgKmluaXRpYWwsbG9uZyBpYnl0
ZXMpOworZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50IG92X29wZW5fY2FsbGJhY2tzKHZvaWQgKmRh
dGFzb3VyY2UsIE9nZ1ZvcmJpc19GaWxlICp2ZiwKICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICppbml0aWFsLCBsb25nIGlieXRlcywgb3ZfY2FsbGJhY2tzIGNhbGxiYWNrcyk7CiAKLWV4dGVy
biBpbnQgb3ZfdGVzdChGSUxFICpmLE9nZ1ZvcmJpc19GaWxlICp2Zixjb25zdCBjaGFyICppbml0
aWFsLGxvbmcgaWJ5dGVzKTsKLWV4dGVybiBpbnQgb3ZfdGVzdF9jYWxsYmFja3Modm9pZCAqZGF0
YXNvdXJjZSwgT2dnVm9yYmlzX0ZpbGUgKnZmLAorZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50IG92
X3Rlc3QoRklMRSAqZixPZ2dWb3JiaXNfRmlsZSAqdmYsY29uc3QgY2hhciAqaW5pdGlhbCxsb25n
IGlieXRlcyk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgb3ZfdGVzdF9jYWxsYmFja3Modm9p
ZCAqZGF0YXNvdXJjZSwgT2dnVm9yYmlzX0ZpbGUgKnZmLAogICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgKmluaXRpYWwsIGxvbmcgaWJ5dGVzLCBvdl9jYWxsYmFja3MgY2FsbGJhY2tzKTsKLWV4
dGVybiBpbnQgb3ZfdGVzdF9vcGVuKE9nZ1ZvcmJpc19GaWxlICp2Zik7Ci0KLWV4dGVybiBsb25n
IG92X2JpdHJhdGUoT2dnVm9yYmlzX0ZpbGUgKnZmLGludCBpKTsKLWV4dGVybiBsb25nIG92X2Jp
dHJhdGVfaW5zdGFudChPZ2dWb3JiaXNfRmlsZSAqdmYpOwotZXh0ZXJuIGxvbmcgb3Zfc3RyZWFt
cyhPZ2dWb3JiaXNfRmlsZSAqdmYpOwotZXh0ZXJuIGxvbmcgb3Zfc2Vla2FibGUoT2dnVm9yYmlz
X0ZpbGUgKnZmKTsKLWV4dGVybiBsb25nIG92X3NlcmlhbG51bWJlcihPZ2dWb3JiaXNfRmlsZSAq
dmYsaW50IGkpOwotCi1leHRlcm4gb2dnX2ludDY0X3Qgb3ZfcmF3X3RvdGFsKE9nZ1ZvcmJpc19G
aWxlICp2ZixpbnQgaSk7Ci1leHRlcm4gb2dnX2ludDY0X3Qgb3ZfcGNtX3RvdGFsKE9nZ1ZvcmJp
c19GaWxlICp2ZixpbnQgaSk7Ci1leHRlcm4gZG91YmxlIG92X3RpbWVfdG90YWwoT2dnVm9yYmlz
X0ZpbGUgKnZmLGludCBpKTsKLQotZXh0ZXJuIGludCBvdl9yYXdfc2VlayhPZ2dWb3JiaXNfRmls
ZSAqdmYsb2dnX2ludDY0X3QgcG9zKTsKLWV4dGVybiBpbnQgb3ZfcGNtX3NlZWsoT2dnVm9yYmlz
X0ZpbGUgKnZmLG9nZ19pbnQ2NF90IHBvcyk7Ci1leHRlcm4gaW50IG92X3BjbV9zZWVrX3BhZ2Uo
T2dnVm9yYmlzX0ZpbGUgKnZmLG9nZ19pbnQ2NF90IHBvcyk7Ci1leHRlcm4gaW50IG92X3RpbWVf
c2VlayhPZ2dWb3JiaXNfRmlsZSAqdmYsZG91YmxlIHBvcyk7Ci1leHRlcm4gaW50IG92X3RpbWVf
c2Vla19wYWdlKE9nZ1ZvcmJpc19GaWxlICp2Zixkb3VibGUgcG9zKTsKLQotZXh0ZXJuIGludCBv
dl9yYXdfc2Vla19sYXAoT2dnVm9yYmlzX0ZpbGUgKnZmLG9nZ19pbnQ2NF90IHBvcyk7Ci1leHRl
cm4gaW50IG92X3BjbV9zZWVrX2xhcChPZ2dWb3JiaXNfRmlsZSAqdmYsb2dnX2ludDY0X3QgcG9z
KTsKLWV4dGVybiBpbnQgb3ZfcGNtX3NlZWtfcGFnZV9sYXAoT2dnVm9yYmlzX0ZpbGUgKnZmLG9n
Z19pbnQ2NF90IHBvcyk7Ci1leHRlcm4gaW50IG92X3RpbWVfc2Vla19sYXAoT2dnVm9yYmlzX0Zp
bGUgKnZmLGRvdWJsZSBwb3MpOwotZXh0ZXJuIGludCBvdl90aW1lX3NlZWtfcGFnZV9sYXAoT2dn
Vm9yYmlzX0ZpbGUgKnZmLGRvdWJsZSBwb3MpOwotCi1leHRlcm4gb2dnX2ludDY0X3Qgb3ZfcmF3
X3RlbGwoT2dnVm9yYmlzX0ZpbGUgKnZmKTsKLWV4dGVybiBvZ2dfaW50NjRfdCBvdl9wY21fdGVs
bChPZ2dWb3JiaXNfRmlsZSAqdmYpOwotZXh0ZXJuIGRvdWJsZSBvdl90aW1lX3RlbGwoT2dnVm9y
YmlzX0ZpbGUgKnZmKTsKLQotZXh0ZXJuIHZvcmJpc19pbmZvICpvdl9pbmZvKE9nZ1ZvcmJpc19G
aWxlICp2ZixpbnQgbGluayk7Ci1leHRlcm4gdm9yYmlzX2NvbW1lbnQgKm92X2NvbW1lbnQoT2dn
Vm9yYmlzX0ZpbGUgKnZmLGludCBsaW5rKTsKLQotZXh0ZXJuIGxvbmcgb3ZfcmVhZF9mbG9hdChP
Z2dWb3JiaXNfRmlsZSAqdmYsZmxvYXQgKioqcGNtX2NoYW5uZWxzLGludCBzYW1wbGVzLAorZXh0
ZXJuIFZPUkJJU19FWFBPUlQgaW50IG92X3Rlc3Rfb3BlbihPZ2dWb3JiaXNfRmlsZSAqdmYpOwor
CitleHRlcm4gVk9SQklTX0VYUE9SVCBsb25nIG92X2JpdHJhdGUoT2dnVm9yYmlzX0ZpbGUgKnZm
LGludCBpKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGxvbmcgb3ZfYml0cmF0ZV9pbnN0YW50KE9n
Z1ZvcmJpc19GaWxlICp2Zik7CitleHRlcm4gVk9SQklTX0VYUE9SVCBsb25nIG92X3N0cmVhbXMo
T2dnVm9yYmlzX0ZpbGUgKnZmKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGxvbmcgb3Zfc2Vla2Fi
bGUoT2dnVm9yYmlzX0ZpbGUgKnZmKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGxvbmcgb3Zfc2Vy
aWFsbnVtYmVyKE9nZ1ZvcmJpc19GaWxlICp2ZixpbnQgaSk7CisKK2V4dGVybiBWT1JCSVNfRVhQ
T1JUIG9nZ19pbnQ2NF90IG92X3Jhd190b3RhbChPZ2dWb3JiaXNfRmlsZSAqdmYsaW50IGkpOwor
ZXh0ZXJuIFZPUkJJU19FWFBPUlQgb2dnX2ludDY0X3Qgb3ZfcGNtX3RvdGFsKE9nZ1ZvcmJpc19G
aWxlICp2ZixpbnQgaSk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBkb3VibGUgb3ZfdGltZV90b3Rh
bChPZ2dWb3JiaXNfRmlsZSAqdmYsaW50IGkpOworCitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQg
b3ZfcmF3X3NlZWsoT2dnVm9yYmlzX0ZpbGUgKnZmLG9nZ19pbnQ2NF90IHBvcyk7CitleHRlcm4g
Vk9SQklTX0VYUE9SVCBpbnQgb3ZfcGNtX3NlZWsoT2dnVm9yYmlzX0ZpbGUgKnZmLG9nZ19pbnQ2
NF90IHBvcyk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgb3ZfcGNtX3NlZWtfcGFnZShPZ2dW
b3JiaXNfRmlsZSAqdmYsb2dnX2ludDY0X3QgcG9zKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGlu
dCBvdl90aW1lX3NlZWsoT2dnVm9yYmlzX0ZpbGUgKnZmLGRvdWJsZSBwb3MpOworZXh0ZXJuIFZP
UkJJU19FWFBPUlQgaW50IG92X3RpbWVfc2Vla19wYWdlKE9nZ1ZvcmJpc19GaWxlICp2Zixkb3Vi
bGUgcG9zKTsKKworZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50IG92X3Jhd19zZWVrX2xhcChPZ2dW
b3JiaXNfRmlsZSAqdmYsb2dnX2ludDY0X3QgcG9zKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIGlu
dCBvdl9wY21fc2Vla19sYXAoT2dnVm9yYmlzX0ZpbGUgKnZmLG9nZ19pbnQ2NF90IHBvcyk7Citl
eHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgb3ZfcGNtX3NlZWtfcGFnZV9sYXAoT2dnVm9yYmlzX0Zp
bGUgKnZmLG9nZ19pbnQ2NF90IHBvcyk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgb3ZfdGlt
ZV9zZWVrX2xhcChPZ2dWb3JiaXNfRmlsZSAqdmYsZG91YmxlIHBvcyk7CitleHRlcm4gVk9SQklT
X0VYUE9SVCBpbnQgb3ZfdGltZV9zZWVrX3BhZ2VfbGFwKE9nZ1ZvcmJpc19GaWxlICp2Zixkb3Vi
bGUgcG9zKTsKKworZXh0ZXJuIFZPUkJJU19FWFBPUlQgb2dnX2ludDY0X3Qgb3ZfcmF3X3RlbGwo
T2dnVm9yYmlzX0ZpbGUgKnZmKTsKK2V4dGVybiBWT1JCSVNfRVhQT1JUIG9nZ19pbnQ2NF90IG92
X3BjbV90ZWxsKE9nZ1ZvcmJpc19GaWxlICp2Zik7CitleHRlcm4gVk9SQklTX0VYUE9SVCBkb3Vi
bGUgb3ZfdGltZV90ZWxsKE9nZ1ZvcmJpc19GaWxlICp2Zik7CisKK2V4dGVybiBWT1JCSVNfRVhQ
T1JUIHZvcmJpc19pbmZvICpvdl9pbmZvKE9nZ1ZvcmJpc19GaWxlICp2ZixpbnQgbGluayk7Citl
eHRlcm4gVk9SQklTX0VYUE9SVCB2b3JiaXNfY29tbWVudCAqb3ZfY29tbWVudChPZ2dWb3JiaXNf
RmlsZSAqdmYsaW50IGxpbmspOworCitleHRlcm4gVk9SQklTX0VYUE9SVCBsb25nIG92X3JlYWRf
ZmxvYXQoT2dnVm9yYmlzX0ZpbGUgKnZmLGZsb2F0ICoqKnBjbV9jaGFubmVscyxpbnQgc2FtcGxl
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpiaXRzdHJlYW0pOwotZXh0ZXJuIGxv
bmcgb3ZfcmVhZF9maWx0ZXIoT2dnVm9yYmlzX0ZpbGUgKnZmLGNoYXIgKmJ1ZmZlcixpbnQgbGVu
Z3RoLAorZXh0ZXJuIFZPUkJJU19FWFBPUlQgbG9uZyBvdl9yZWFkX2ZpbHRlcihPZ2dWb3JiaXNf
RmlsZSAqdmYsY2hhciAqYnVmZmVyLGludCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBiaWdlbmRpYW5wLGludCB3b3JkLGludCBzZ25lZCxpbnQgKmJpdHN0cmVhbSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKmZpbHRlcikoZmxvYXQgKipwY20sbG9uZyBj
aGFubmVscyxsb25nIHNhbXBsZXMsdm9pZCAqZmlsdGVyX3BhcmFtKSx2b2lkICpmaWx0ZXJfcGFy
YW0pOwotZXh0ZXJuIGxvbmcgb3ZfcmVhZChPZ2dWb3JiaXNfRmlsZSAqdmYsY2hhciAqYnVmZmVy
LGludCBsZW5ndGgsCitleHRlcm4gVk9SQklTX0VYUE9SVCBsb25nIG92X3JlYWQoT2dnVm9yYmlz
X0ZpbGUgKnZmLGNoYXIgKmJ1ZmZlcixpbnQgbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICBp
bnQgYmlnZW5kaWFucCxpbnQgd29yZCxpbnQgc2duZWQsaW50ICpiaXRzdHJlYW0pOwotZXh0ZXJu
IGludCBvdl9jcm9zc2xhcChPZ2dWb3JiaXNfRmlsZSAqdmYxLE9nZ1ZvcmJpc19GaWxlICp2ZjIp
OworZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50IG92X2Nyb3NzbGFwKE9nZ1ZvcmJpc19GaWxlICp2
ZjEsT2dnVm9yYmlzX0ZpbGUgKnZmMik7CiAKLWV4dGVybiBpbnQgb3ZfaGFsZnJhdGUoT2dnVm9y
YmlzX0ZpbGUgKnZmLGludCBmbGFnKTsKLWV4dGVybiBpbnQgb3ZfaGFsZnJhdGVfcChPZ2dWb3Ji
aXNfRmlsZSAqdmYpOworZXh0ZXJuIFZPUkJJU19FWFBPUlQgaW50IG92X2hhbGZyYXRlKE9nZ1Zv
cmJpc19GaWxlICp2ZixpbnQgZmxhZyk7CitleHRlcm4gVk9SQklTX0VYUE9SVCBpbnQgb3ZfaGFs
ZnJhdGVfcChPZ2dWb3JiaXNfRmlsZSAqdmYpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlm
ZiAtLWdpdCBhL2xpYi9ibG9jay5jIGIvbGliL2Jsb2NrLmMKaW5kZXggZGIyNDViMy4uOWZiYTk2
MiAxMDA2NDQKLS0tIGEvbGliL2Jsb2NrLmMKKysrIGIvbGliL2Jsb2NrLmMKQEAgLTEwMzUsNyAr
MTAzNSw3IEBAIGludCB2b3JiaXNfc3ludGhlc2lzX2xhcG91dCh2b3JiaXNfZHNwX3N0YXRlICp2
LGZsb2F0ICoqKnBjbSl7CiAKIH0KIAotY29uc3QgZmxvYXQgKnZvcmJpc193aW5kb3codm9yYmlz
X2RzcF9zdGF0ZSAqdixpbnQgVyl7CitWT1JCSVNfRVhQT1JUIGNvbnN0IGZsb2F0ICp2b3JiaXNf
d2luZG93KHZvcmJpc19kc3Bfc3RhdGUgKnYsaW50IFcpewogICB2b3JiaXNfaW5mbyAqdmk9di0+
dmk7CiAgIGNvZGVjX3NldHVwX2luZm8gKmNpPXZpLT5jb2RlY19zZXR1cDsKICAgaW50IGhzPWNp
LT5oYWxmcmF0ZV9mbGFnOwpkaWZmIC0tZ2l0IGEvdm9yYmlzLnZlcnNpb24gYi92b3JiaXMudmVy
c2lvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWQzYjc1Ci0tLSAvZGV2
L251bGwKKysrIGIvdm9yYmlzLnZlcnNpb24KQEAgLTAsMCArMSw0IEBACit7CisgIGdsb2JhbDog
dm9yYmlzXyo7IG92Xyo7IF9vdl8qOyBPVl8qOworICBsb2NhbDogKjsKK307Ci0tIAoyLjcuNAoK
--0000000000001f02a8056ada8415
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVm9yYmlzLWRl
diBtYWlsaW5nIGxpc3QKVm9yYmlzLWRldkB4aXBoLm9yZwpodHRwOi8vbGlzdHMueGlwaC5vcmcv
bWFpbG1hbi9saXN0aW5mby92b3JiaXMtZGV2Cg==

--0000000000001f02a8056ada8415--