[PATCH] Add CMake build script

evpobr <[email protected]> Mon, 29 May 2017 18:17:52 +0500
Newsgroups gmane.comp.audio.compression.speex.devel
Message-ID <[email protected]>
RGVzY3JpcHRpb24KPT09PT09PT09PT0KClRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IG9mIENNYWtl
IG1ldGEgYnVpbGQgc3lzdGVtLCBzbyB5b3UgY2FuIGdlbmVyYXRlClVuaXggbWFrZWZpbGVzLCBW
UyA2LjAtMjAxNyBwcm9qZWN0cyBhbmQgbWFueSBtb3JlLgoKRmVhdHVyZXMKPT09PT09PT0KCiog
V2luMzIgYW5kIExpbnV4IHRlc3RlZAoqIFRyYXZpcyBDSSB0ZXN0IGFkZGVkCiogR2VuZXJhdGVz
IHdvcmtpbmcgVmlzdWFsIFN0dWRpbyA2LjAtMjAxNyBzb2x1dGlvbnMKKiBHZW5lcmF0ZXMgd29y
a2luZyBVbml4IE1ha2VmaWxlCiogU3VwcG9ydGVkIG9wdGlvbnMgKDxvcHRpb24+IC0gPGRlZmF1
bHQgdmFsdWU+KToKICAqIGBFTkFCTEVfRkxPQVRJTkdfUE9JTlRgIC0gb24KICAqIGBFTkFCTEVf
RklYRURfUE9JTlRgIC0gb2ZmCiAgKiBgRU5BQkxFX0ZJWEVEX1BPSU5UX0RFQlVHYCAtIG9mZgog
ICogYFVTRV9HUExfRkZUVzNgIC0gb2ZmCiAgKiBgRElTQUJMRV9GTE9BVF9BUElgIC0gb2ZmCiAg
KiBgRElTQUJMRV9WQlJgIC0gb2ZmCiAgKiBgRU5BQkxFX1ZPUkJJU19QU1lgIC0gb2ZmCiAgKiBg
RU5BQkxFX1NTRWAgLSBvbiBpZiBzdXBwb3J0ZWQKICAqIGBFTkFCTEVfQVJNNF9BU01gIC0gb2Zm
CiAgKiBgRU5BQkxFX0FSTTVFX0FTTWAgLSBvZmYKICAqIGBFTkFCTEVfQkxBQ0tGSU5fQVNNYCAt
IG9mZgogICogYEVOQUJMRV9USV9DNTVYYCAtIG9mZgogICogYFVTRV9TUEVFWERTUGAgLSBvbiBp
ZiBsaWJyYXJ5IGZvdW5kCiAgKiBgRElTQUJMRV9CSU5BUklFU2AgLSBvZmYKICAqIGBFTkFCTEVf
UEFDS0FHRV9DT05GSUdgIC0gb24sIFtDTWFrZSBzcGVjaWZpY10oaHR0cHM6Ly9jbWFrZS5vcmcv
Y21ha2UvaGVscC9sYXRlc3QvbWFudWFsL2NtYWtlLXBhY2thZ2VzLjcuaHRtbCNwYWNrYWdlLWNv
bmZpZ3VyYXRpb24tZmlsZSkKKiBDb25maWd1cmVkIGNvbmRpdGlvbmFscyAoYGNvbmZpZy5oYCk6
CiAgKiBgV09SRFNfQklHRU5ESUFOYAogICogYEZMT0FUSU5HX1BPSU5UYAogICogYEZJWEVEX1BP
SU5UYAogICogYEZJWEVEX1BPSU5UX0RFQlVHYAogICogYERJU0FCTEVfRkxPQVRfQVBJYAogICog
YF9VU0VfU1NFYAogICogYEFSTTRfQVNNYAogICogYEFSTTVFX0FTTWAKICAqIGBCRklOX0FTTWAK
ICAqIGBUSV9DNTVYYAogICogYERJU0FCTEVfVkJSYAogICogYFVTRV9TUEVFWERTUGAKICAqIGBW
T1JCSVNfUFNZQ0hPYAogICogYEhBVkVfR0VUT1BUX0hgCiAgKiBgSEFWRV9HRVRPUFRfTE9OR2AK
ICAqIGBWQVJfQVJSQVlTYAogICogYFVTRV9BTExPQ0FgCiAgKiBgSEFWRV9BTExPQ0FfSGAKICAq
IGBVU0VfU01BTExGVGAKICAqIGBVU0VfS0lTU19GRlRgCiAgKiBgVVNFX0dQTF9GRlRXM2AKICAq
IGBFWFBPUlRgCiogSW5zdGFsbGF0aW9uIHN1cHBvcnRlZAoqIFBhY2thZ2UgY29uZmlnIG1vZGUg
c3VwcG9ydGVkCgpIb3cgdG8gdXNlCj09PT09PT09PT0KClJlcXVpcmVkIHRvb2xzIGFuZCBsaWJy
YXJpZXM6CgoqIENNYWtlID49IDMuMQoqIE9nZywgU3BlZXhEU1AgcGFja2FnZXMgKGhlYWRlcnMg
YW5kIGltcG9ydCBsaWJyYXJpZXMpLCByZWNvbW1lbmRlZAoqIEZGVFczIHBhY2thZ2UsIG9wdGlv
bmFsCgpUeXBlIGNvbW1hbmRzOgoKYGBgCm1rZGlyIGNtYWtlLWJ1aWxkCmNkIGNtYWtlLWJ1aWxk
CmNtYWtlIC4uCmNtYWtlIC4gLS1idWlsZApgYGAKCm9yIHVzZSBDTWFrZSBHVUkuCi0tLQogLmdp
dGlnbm9yZSAgICAgICAgICAgICAgICB8ICAxMCArKwogLnRyYXZpcy55bWwgICAgICAgICAgICAg
ICB8ICAzNCArKystCiBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgIHwgNDM5ICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIE1ha2VmaWxlLmFtICAgICAgICAg
ICAgICAgfCAgIDcgKy0KIGNtYWtlL0ZpbmRGRlRXLmNtYWtlICAgICAgfCAgMjggKysrCiBjbWFr
ZS9GaW5kT2dnLmNtYWtlICAgICAgIHwgIDMwICsrKysKIGNtYWtlL0ZpbmRTcGVleERzcC5jbWFr
ZSAgfCAgMjggKysrCiBjbWFrZS9TcGVleENvbmZpZy5jbWFrZSAgIHwgICAxICsKIGNtYWtlL1Rl
c3RWYXJBcnJheXMuY21ha2UgfCAgMjIgKysrCiBjb25maWcuaC5jbWFrZSAgICAgICAgICAgIHwg
IDIzICsrKwogMTAgZmlsZXMgY2hhbmdlZCwgNjEzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgQ01ha2VMaXN0cy50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBjbWFrZS9GaW5kRkZUVy5jbWFrZQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNtYWtlL0ZpbmRPZ2cu
Y21ha2UKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjbWFrZS9GaW5kU3BlZXhEc3AuY21ha2UKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBjbWFrZS9TcGVleENvbmZpZy5jbWFrZQogY3JlYXRlIG1vZGUgMTAwNjQ0
IGNtYWtlL1Rlc3RWYXJBcnJheXMuY21ha2UKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb25maWcuaC5j
bWFrZQoKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDdjMzA5OTku
Ljk5YTM1ZTUgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtNDMs
MyArNDMsMTMgQEAgc3JjL3NwZWV4ZGVjCiBzcmMvc3BlZXhlbmMKIHN0YW1wLSoKIHBhdGNoZXMK
KworQ01ha2VDYWNoZS50eHQKK0NNYWtlRmlsZXMKK0NNYWtlU2NyaXB0cworVGVzdGluZworTWFr
ZWZpbGUKK2NtYWtlX2luc3RhbGwuY21ha2UKK2luc3RhbGxfbWFuaWZlc3QudHh0Citjb21waWxl
X2NvbW1hbmRzLmpzb24KK0NUZXN0VGVzdGZpbGUuY21ha2UKZGlmZiAtLWdpdCBhLy50cmF2aXMu
eW1sIGIvLnRyYXZpcy55bWwKaW5kZXggZmY4NWJjMy4uMmJjMDI4YiAxMDA2NDQKLS0tIGEvLnRy
YXZpcy55bWwKKysrIGIvLnRyYXZpcy55bWwKQEAgLTEsMTEgKzEsMjUgQEAKIGxhbmd1YWdlOiBj
CitzdWRvOiBmYWxzZQorZGlzdDogdHJ1c3R5CithZGRvbnM6CisgIGFwdDoKKyAgICBwYWNrYWdl
czoKKyAgICAgIC0gbGlib2dnLWRldgorICAgICAgLSBsaWJzcGVleGRzcC1kZXYKKyAgICAgIC0g
bGliZmZ0dzMtZGV2CiAKIGVudjoKLSAgLSBDT05GSUc9IiIKLSAgLSBDT05GSUc9Ii0tZW5hYmxl
LWZpeGVkLXBvaW50IgotICAtIENPTkZJRz0iLS1lbmFibGUtZml4ZWQtcG9pbnQgLS1kaXNhYmxl
LWZsb2F0LWFwaSIKLSAgLSBDT05GSUc9Ii0tZW5hYmxlLXZvcmJpcy1wc3kiCi0gIC0gQ09ORklH
PSItLWRpc2FibGUtYmluYXJpZXMiCisgIG1hdHJpeDoKKyAgICAtIENNQUtFPTEgQ09ORklHPSIi
CisgICAgLSBDTUFLRT0xIENPTkZJRz0iLURFTkFCTEVfRklYRURfUE9JTlQ6Qk9PTD1UUlVFIC1E
RU5BQkxFX0ZMT0FUSU5HX1BPSU5UOkJPT0w9RkFMU0UiCisgICAgLSBDTUFLRT0xIENPTkZJRz0i
LURFTkFCTEVfRklYRURfUE9JTlQ6Qk9PTD1UUlVFIC1ERU5BQkxFX0ZMT0FUSU5HX1BPSU5UOkJP
T0w9RkFMU0UgLURESVNBQkxFX0ZMT0FUX0FQSTpCT09MPVRSVUUiCisgICAgLSBDTUFLRT0xIENP
TkZJRz0iLURFTkFCTEVfVk9SQklTX1BTWTpCT09MPVRSVUUiCisgICAgLSBDTUFLRT0xIENPTkZJ
Rz0iLURESVNBQkxFX0JJTkFSSUVTOkJPT0w9VFJVRSIKKyAgICAtIEFVVE9UT09MUz0xIENPTkZJ
Rz0iIgorICAgIC0gQVVUT1RPT0xTPTEgQ09ORklHPSItLWVuYWJsZS1maXhlZC1wb2ludCIKKyAg
ICAtIEFVVE9UT09MUz0xIENPTkZJRz0iLS1lbmFibGUtZml4ZWQtcG9pbnQgLS1kaXNhYmxlLWZs
b2F0LWFwaSIKKyAgICAtIEFVVE9UT09MUz0xIENPTkZJRz0iLS1lbmFibGUtdm9yYmlzLXBzeSIK
KyAgICAtIEFVVE9UT09MUz0xIENPTkZJRz0iLS1kaXNhYmxlLWJpbmFyaWVzIgogCiBvczoKICAg
LSBsaW51eApAQCAtMTUsNyArMjksMTEgQEAgY29tcGlsZXI6CiAgIC0gZ2NjCiAgIC0gY2xhbmcK
IAorYmVmb3JlX2luc3RhbGw6CisgIC0gaWYgW1sgIiR7VFJBVklTX09TX05BTUV9IiA9PSAib3N4
IiBdXTsgdGhlbgorICAgICAgYnJldyBpbnN0YWxsIGxpYm9nZyBzcGVleGRzcCBmZnR3OworICAg
IGZpCisKIHNjcmlwdDoKLSAgLSAuL2F1dG9nZW4uc2gKLSAgLSAuL2NvbmZpZ3VyZSAkQ09ORklH
Ci0gIC0gbWFrZSBkaXN0Y2hlY2sKKyAgLSBpZiBbICIkQ01BS0UiID09ICIxIiBdOyB0aGVuIG1r
ZGlyIGNtYWtlLWJ1aWxkOyBjZCBjbWFrZS1idWlsZDsgY21ha2UgLi4gJENPTkZJRyAtREJVSUxE
X1NIQVJFRF9MSUJTOkJPT0w9VFJVRSAtRENNQUtFX0lOU1RBTExfUFJFRklYOlBBVEg9JEhPTUUv
Y21ha2UtY2hlY2s7IG1ha2UgaW5zdGFsbDsgZmkKKyAgLSBpZiBbICIkQVVUT1RPT0xTIiA9PSAi
MSIgXTsgdGhlbiAuL2F1dG9nZW4uc2g7IC4vY29uZmlndXJlICRDT05GSUc7IG1ha2UgZGlzdGNo
ZWNrOyBmaQpkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmEzOGEyCi0tLSAvZGV2L251bGwKKysr
IGIvQ01ha2VMaXN0cy50eHQKQEAgLTAsMCArMSw0MzkgQEAKK2NtYWtlX21pbmltdW1fcmVxdWly
ZWQoVkVSU0lPTiAzLjEpCisKK3Byb2plY3Qoc3BlZXggVkVSU0lPTiAxLjIuMCBMQU5HVUFHRVMg
QykKKworc2V0KENNQUtFX01PRFVMRV9QQVRIICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
Y21ha2UvIikKKworaW5jbHVkZShDaGVja0luY2x1ZGVGaWxlKQoraW5jbHVkZShDaGVja1N5bWJv
bEV4aXN0cykKK2luY2x1ZGUoQ2hlY2tMaWJyYXJ5RXhpc3RzKQoraW5jbHVkZShDTWFrZURlcGVu
ZGVudE9wdGlvbikKK2luY2x1ZGUoRmVhdHVyZVN1bW1hcnkpCitpbmNsdWRlKFRlc3RWYXJBcnJh
eXMpCitpbmNsdWRlKENoZWNrQ0NvbXBpbGVyRmxhZykKK2luY2x1ZGUoR05VSW5zdGFsbERpcnMp
CitpbmNsdWRlKFRlc3RCaWdFbmRpYW4pCisKK3Rlc3RfYmlnX2VuZGlhbihXT1JEU19CSUdFTkRJ
QU4pCisKK2NoZWNrX2luY2x1ZGVfZmlsZShpbnR0eXBlcy5oIEhBVkVfSU5UVFlQRVNfSCkKK2lm
KEhBVkVfSU5UVFlQRVNfSCkKKwlzZXQoSU5DTFVERV9TVERJTlQgIiNpbmNsdWRlIDxpbnR0eXBl
cy5oPiIpCitlbHNlKCkKKwljaGVja19pbmNsdWRlX2ZpbGUoc3RkaW50LmggSEFWRV9TVERJTlRf
SCkKKwlpZihIQVZFX1NURElOVF9IKQorCQlzZXQoSU5DTFVERV9TVERJTlQgIiNpbmNsdWRlIDxz
dGRpbnQuaD4iKQorCWVsc2UoKQorCQljaGVja19pbmNsdWRlX2ZpbGUoc3lzL3R5cGVzLmggSU5D
TFVERV9TWVNfVFlQRVNfSCkKKwkJaWYoSEFWRV9TWVNfVFlQRVNfSCkKKwkJCXNldChJTkNMVURF
X1NURElOVCAiI2luY2x1ZGUgPHN5cy90eXBlcy5oPiIpCisJCWVuZGlmKCkKKwllbmRpZigpCitl
bmRpZigpCitzZXQoU0laRTE2IGludDE2X3QpCitzZXQoVVNJWkUxNiB1aW50MTZfdCkKK3NldChT
SVpFMzIgaW50MzJfdCkKK3NldChVU0laRTMyIHVpbnQzMl90KQorc2V0KFNJWkU2NCBpbnQ2NF90
KQorY29uZmlndXJlX2ZpbGUoaW5jbHVkZS9zcGVleC9zcGVleF9jb25maWdfdHlwZXMuaC5pbiBp
bmNsdWRlL3NwZWV4L3NwZWV4X2NvbmZpZ190eXBlcy5oIEBPTkxZKQorCit0ZXN0X3ZhcmFycmF5
cyhWQVJfQVJSQVlTKQoraWYoTk9UIFZBUl9BUlJBWVMpCisJY2hlY2tfaW5jbHVkZV9maWxlKGFs
bG9jYS5oIEhBVkVfQUxMT0NBX0gpCisJaWYoV0lOMzIpCisJCXNldChVU0VfQUxMT0NBIDEpCisJ
ZWxzZSgpCisJCWNoZWNrX3N5bWJvbF9leGlzdHMoYWxsb2NhICJzdGRsaWIuaDthbGxvY2EuaCIg
IFVTRV9BTExPQ0EpCisJZW5kaWYoKQorZW5kaWYoKQorCitvcHRpb24oRU5BQkxFX0ZMT0FUSU5H
X1BPSU5UICJDb21waWxlIGFzIGZsb2F0aW5nLXBvaW50IiBPTikKK29wdGlvbihFTkFCTEVfRklY
RURfUE9JTlQgIkNvbXBpbGUgYXMgZml4ZWQtcG9pbnQiIE9GRikKKworCitpZihFTkFCTEVfRkxP
QVRJTkdfUE9JTlQgQU5EIEVOQUJMRV9GSVhFRF9QT0lOVCkKKwltZXNzYWdlKEZBVEFMX0VSUk9S
ICJTZWxlY3Qgb25lIG9mIEVOQUJMRV9GTE9BVElOR19QT0lOVCBvZiBFTkFCTEVfRklYRURfUE9J
TlQuIikKK2VuZGlmKCkKK2lmKChOT1QgRU5BQkxFX0ZMT0FUSU5HX1BPSU5UKSBBTkQgKE5PVCBF
TkFCTEVfRklYRURfUE9JTlQpKQorCW1lc3NhZ2UoRkFUQUxfRVJST1IgIlNlbGVjdCBvbmUgb2Yg
RU5BQkxFX0ZMT0FUSU5HX1BPSU5UIG9mIEVOQUJMRV9GSVhFRF9QT0lOVC4iKQorZW5kaWYoKQor
CitmaW5kX3BhY2thZ2UoRkZUVykKKworY21ha2VfZGVwZW5kZW50X29wdGlvbihVU0VfR1BMX0ZG
VFczICJVc2UgRkZUVzMgZm9yIEZGVCIgT0ZGICJGRlRXX0ZPVU5EOyBFTkFCTEVfRkxPQVRJTkdf
UE9JTlQiIE9GRikKKworaWYoRU5BQkxFX0ZMT0FUSU5HX1BPSU5UKQorCXNldChGTE9BVElOR19Q
T0lOVCAxKQorCXNldChGSVhFRF9QT0lOVCAwKQorCXNldChVU0VfS0lTU19GRlQgMCkKKwlpZihO
T1QgVVNFX0dQTF9GRlRXMykKKwkJc2V0KFVTRV9TTUFMTEZUIDEpCisJZW5kaWYoKQorZWxzZSgp
CisJc2V0KEZMT0FUSU5HX1BPSU5UIDApCisJc2V0KEZJWEVEX1BPSU5UIDEpCisJc2V0KFVTRV9L
SVNTX0ZGVCAxKQorCXNldChVU0VfU01BTExGVCAwKQorCXNldChVU0VfR1BMX0ZGVFczIDApCitl
bmRpZigpCisKK2NtYWtlX2RlcGVuZGVudF9vcHRpb24oRU5BQkxFX0ZJWEVEX1BPSU5UX0RFQlVH
ICJEZWJ1ZyBmaXhlZC1wb2ludCBpbXBsZW1lbnRhdGlvbiIgT0ZGICJFTkFCTEVfRklYRURfUE9J
TlQiIE9GRikKK3NldChGSVhFRF9QT0lOVF9ERUJVRyAke0VOQUJMRV9GSVhFRF9QT0lOVF9ERUJV
R30pCisKK29wdGlvbihESVNBQkxFX0ZMT0FUX0FQSSAiRGlzYWJsZSBhbGwgcGFydHMgb2YgdGhl
IEFQSSB0aGF0IGFyZSB1c2luZyBmbG9hdHMiIE9GRikKK29wdGlvbihESVNBQkxFX1ZCUiAiRGlz
YWJsZSBWQlIgYW5kIFZBRCBmcm9tIHRoZSBjb2RlYyIgT0ZGKQorY21ha2VfZGVwZW5kZW50X29w
dGlvbihFTkFCTEVfVk9SQklTX1BTWSAiRW5hYmxlIHRoZSBWb3JiaXMgcHN5IG1vZGVsIiBPRkYg
Ik5PVCBFTkFCTEVfRklYRURfUE9JTlQ7VkFSX0FSUkFZUyIgT0ZGKQorc2V0KFZPUkJJU19QU1lD
SE8gJHtFTkFCTEVfVk9SQklTX1BTWX0pCisKK2lmKENNQUtFX1NZU1RFTV9QUk9DRVNTT1IgTUFU
Q0hFUyAiKHg4Nil8KFg4Nil8KGFtZDY0KXwoQU1ENjQpIikKKyAgICBzZXQoQ1BVX0lTX1g4NiBU
UlVFKQorZWxzZSgpCisgICAgc2V0KENQVV9JU19YODYgRkFMU0UpCitlbmRpZigpCitpZihDUFVf
SVNfWDg2KQorCWNoZWNrX2luY2x1ZGVfZmlsZSh4bW1pbnRyaW4uaCBIQVZFX1hNTUlOVFJJTl9I
KQorZW5kaWYoKQorY21ha2VfZGVwZW5kZW50X29wdGlvbihFTkFCTEVfU1NFICJFbmFibGUgU1NF
IHN1cHBvcnQiIE9OICJDUFVfSVNfWDg2O0hBVkVfWE1NSU5UUklOX0g7RU5BQkxFX0ZMT0FUSU5H
X1BPSU5UIiBPRkYpCitpZihFTkFCTEVfU1NFKQorCXNldChfVVNFX1NTRSAxKQorCWNoZWNrX2Nf
Y29tcGlsZXJfZmxhZygiL2FyY2g6U1NFIiBBUkNIX1NTRV9GTEFHKQorCWlmKEFSQ0hfU1NFX0ZM
QUcpCisJCXNldChTU0VfRkxBR1MgIi9hcmNoOlNTRSIpCisJZWxzZSgpCisJCWNoZWNrX2NfY29t
cGlsZXJfZmxhZygiLW1zc2UiIE1TU0VfRkxBRykKKwkJaWYoTVNTRV9GTEFHKQorCQkJc2V0KFNT
RV9GTEFHUyAiLW1zc2UiKQorCQllbmRpZigpCisJZW5kaWYoKQorZW5kaWYoKQorCitpZiAoQ01B
S0VfU1lTVEVNX1BST0NFU1NPUiBNQVRDSEVTICJeYXJtIikKKwlzZXQoQ1BVX0lTX0FSTSAxKQor
ZW5kaWYgKCkKK2NtYWtlX2RlcGVuZGVudF9vcHRpb24oRU5BQkxFX0FSTTRfQVNNICJNYWtlIHVz
ZSBvZiBBUk00IGFzc2VtYmx5IG9wdGltaXphdGlvbnMiIE9GRiAiQ1BVX0lTX0FSTTtFTkFCTEVf
RklYRURfUE9JTlQiIE9GRikKK3NldChBUk00X0FTTSAke0VOQUJMRV9BUk00X0FTTX0pCitjbWFr
ZV9kZXBlbmRlbnRfb3B0aW9uKEVOQUJMRV9BUk01RV9BU00gIk1ha2UgdXNlIG9mIEFSTTVFIGFz
c2VtYmx5IG9wdGltaXphdGlvbnMiIE9GRiAiQ1BVX0lTX0FSTTtFTkFCTEVfRklYRURfUE9JTlQi
IE9GRikKK3NldChBUk01RV9BU00gJHtFTkFCTEVfQVJNNUVfQVNNfSkKK2NtYWtlX2RlcGVuZGVu
dF9vcHRpb24oRU5BQkxFX0JMQUNLRklOX0FTTSAiTWFrZSB1c2Ugb2YgQmxhY2tmaW4gYXNzZW1i
bHkgb3B0aW1pemF0aW9ucyIgT0ZGICJOT1QgQ1BVX0lTX1g4NjtFTkFCTEVfRklYRURfUE9JTlQi
IE9GRikKK3NldChCRklOX0FTTSAke0VOQUJMRV9CTEFDS0ZJTl9BU019KQorY21ha2VfZGVwZW5k
ZW50X29wdGlvbihFTkFCTEVfVElfQzU1WCAiRW5hYmxlIHN1cHBvcnQgZm9yIFRJIEM1NVggRFNQ
IiBPRkYgIk5PVCBDUFVfSVNfWDg2IiBPRkYpCitzZXQoVElfQzU1WCAke0VOQUJMRV9USV9DNTVY
fSkKKworaWYoTk9UIFdJTjMyKQorCWNoZWNrX2xpYnJhcnlfZXhpc3RzKG0gY29zICIiIEhBVkVf
TElCTSkKKwlpZihIQVZFX0xJQk0pCisJCWZpbmRfbGlicmFyeShMSUJNIG0pCisJZW5kaWYoKQor
ZW5kaWYoKQorCitpZihNU1ZDKQorCWFkZF9kZWZpbml0aW9ucygtRF9DUlRfU0VDVVJFX05PX1dB
Uk5JTkdTIC1EX0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSkKK2VuZGlmKE1TVkMpCisKK2ZpbmRf
cGFja2FnZShPZ2cpCitmaW5kX3BhY2thZ2UoU3BlZXhEc3ApCisKK2NtYWtlX2RlcGVuZGVudF9v
cHRpb24oVVNFX1NQRUVYRFNQICJFbmFibGUgU3BlZXhEU1AgbGlicmFyeSIgT04gIlNwZWV4RHNw
X0ZPVU5EIiBPRkYpCitjbWFrZV9kZXBlbmRlbnRfb3B0aW9uKERJU0FCTEVfQklOQVJJRVMgIkRv
IG5vdCBidWlsZCB0aGUgZW5jb2RlciBhbmQgZGVjb2RlciBwcm9ncmFtcywgb25seSB0aGUgbGli
cmFyeSIgT0ZGICJPZ2dfRk9VTkQiIE9GRikKKworY2hlY2tfY19jb21waWxlcl9mbGFnKCItZnZp
c2liaWxpdHk9aGlkZGVuIiBIQVNfVklTSUJJTElUWSkKK2lmKEhBU19WSVNJQklMSVRZKQorCVNF
VChFWFBPUlQgIl9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoXCJkZWZhdWx0XCIpKSkiKQorZW5k
aWYoKQorCitjaGVja19pbmNsdWRlX2ZpbGUoZ2V0b3B0LmggSEFWRV9HRVRPUFRfSCkKK2lmKEhB
VkVfR0VUT1BUX0gpCisJY2hlY2tfc3ltYm9sX2V4aXN0cyhnZXRvcHRfbG9uZyBnZXRvcHQuaCBI
QVZFX0dFVE9QVF9MT05HKQorZW5kaWYoKQorCitvcHRpb24gKEVOQUJMRV9QQUNLQUdFX0NPTkZJ
RyAiR2VuZXJhdGUgYW5kIGluc3RhbGwgcGFja2FnZSBjb25maWcgZmlsZSIgT04pCisKK3NldF9w
YWNrYWdlX3Byb3BlcnRpZXMoT2dnIFBST1BFUlRJRVMgVFlQRSBSRUNPTU1FTkRFRAorCVVSTCAi
d3d3LnhpcGgub3JnL29nZy8iCisJREVTQ1JJUFRJT04gImxpYnJhcnkgZm9yIG1hbmlwdWxhdGlu
ZyBvZ2cgYml0c3RyZWFtcyIKKwlQVVJQT1NFICJSZXF1aXJlZCB0byBidWlsZCBzcGVleGVuYyBh
bmQgc3BlZXhkZWMgdG9vbHMiKQorc2V0X3BhY2thZ2VfcHJvcGVydGllcyhTcGVleERzcCBQUk9Q
RVJUSUVTIFRZUEUgUkVDT01NRU5ERUQKKwlVUkwgImh0dHBzOi8vc3BlZXgub3JnLyIKKwlERVND
UklQVElPTiAic3BlZWNoIHByb2Nlc3NpbmcgbGlicmFyeSB0aGF0IGdvZXMgYWxvbmcgd2l0aCB0
aGUgU3BlZXggY29kZWMiCisJUFVSUE9TRSAiRW5hYmxlcyBzcGVleGVuYyB0b29sIHByZXByb2Nl
c3Npbmcgb3B0aW9ucyIpCitzZXRfcGFja2FnZV9wcm9wZXJ0aWVzKEZGVFcgUFJPUEVSVElFUyBU
WVBFIE9QVElPTkFMCisJVVJMICJodHRwOi8vd3d3LmZmdHcub3JnLyIKKwlERVNDUklQVElPTiAi
ZmFzdCBGb3VyaWVyIHRyYW5zZm9ybSBsaWJyYXJ5IgorCVBVUlBPU0UgIkVuYWJsZXMgdXNlIG9m
IEZGVFcgZm9yIGZhc3QgRm91cmllciB0cmFuc2Zvcm1zIikKK2FkZF9mZWF0dXJlX2luZm8oRU5B
QkxFX0FMTE9DQSBVU0VfQUxMT0NBICJNYWtlIHVzZSBvZiBhbGxvY2EgZnVuY3Rpb24uIikKK2Fk
ZF9mZWF0dXJlX2luZm8oRU5BQkxFX1ZBUl9BUlJBWVMgVkFSX0FSUkFZUyAiTWFrZSB1c2Ugb2Yg
dmFyaWFibGUtbGVuZ3RoIGFycmF5cy4iKQorYWRkX2ZlYXR1cmVfaW5mbyhFTkFCTEVfRkxPQVRJ
TkdfUE9JTlQgRU5BQkxFX0ZMT0FUSU5HX1BPSU5UICJjb21waWxlIGFzIGZsb2F0aW5nLXBvaW50
LiIpCithZGRfZmVhdHVyZV9pbmZvKEVOQUJMRV9GSVhFRF9QT0lOVCBFTkFCTEVfRklYRURfUE9J
TlQgImNvbXBpbGUgYXMgZml4ZWQtcG9pbnQuIikKK2FkZF9mZWF0dXJlX2luZm8oRU5BQkxFX0ZJ
WEVEX1BPSU5UX0RFQlVHIEVOQUJMRV9GSVhFRF9QT0lOVF9ERUJVRyAiZGVidWcgZml4ZWQtcG9p
bnQgaW1wbGVtZW50YXRpb24uIikKK2FkZF9mZWF0dXJlX2luZm8oRU5BQkxFX1NTRSBFTkFCTEVf
U1NFICJlbmFibGUgU1NFIHN1cHBvcnQuIikKK2FkZF9mZWF0dXJlX2luZm8oRU5BQkxFX0FSTTRf
QVNNIEVOQUJMRV9BUk00X0FTTSAibWFrZSB1c2Ugb2YgQVJNNCBhc3NlbWJseSBvcHRpbWl6YXRp
b25zLiIpCithZGRfZmVhdHVyZV9pbmZvKEVOQUJMRV9BUk01RV9BU00gRU5BQkxFX0FSTTVFX0FT
TSAibWFrZSB1c2Ugb2YgQVJNNUUgYXNzZW1ibHkgb3B0aW1pemF0aW9ucy4iKQorYWRkX2ZlYXR1
cmVfaW5mbyhFTkFCTEVfQkxBQ0tGSU5fQVNNIEVOQUJMRV9CTEFDS0ZJTl9BU00gIm1ha2UgdXNl
IG9mIEJsYWNrZmluIGFzc2VtYmx5IG9wdGltaXphdGlvbnMuIikKK2FkZF9mZWF0dXJlX2luZm8o
RU5BQkxFX1RJX0M1NVggRU5BQkxFX1RJX0M1NVggImVuYWJsZSBzdXBwb3J0IGZvciBUSSBDNTVY
IERTUC4iKQorYWRkX2ZlYXR1cmVfaW5mbyhESVNBQkxFX0ZMT0FUX0FQSSBESVNBQkxFX0ZMT0FU
X0FQSSAiZGlzYWJsZSBhbGwgcGFydHMgb2YgdGhlIEFQSSB0aGF0IGFyZSB1c2luZyBmbG9hdHMu
IikKK2FkZF9mZWF0dXJlX2luZm8oRElTQUJMRV9WQlIgRElTQUJMRV9WQlIgImRpc2FibGUgVkJS
IGFuZCBWQUQgZnJvbSB0aGUgY29kZWMuIikKK2FkZF9mZWF0dXJlX2luZm8oRU5BQkxFX1ZPUkJJ
U19QU1kgRU5BQkxFX1ZPUkJJU19QU1kgImVuYWJsZSB0aGUgVm9yYmlzIHBzeSBtb2RlbC4iKQor
YWRkX2ZlYXR1cmVfaW5mbyhFTkFCTEVfU1BFRVhEU1AgVVNFX1NQRUVYRFNQICJlbmFibGUgc3Bl
ZXhlbmMgcHJlcHJvY2Vzc2luZyBvcHRpb25zLiIpCithZGRfZmVhdHVyZV9pbmZvKERJU0FCTEVf
QklOQVJJRVMgRElTQUJMRV9CSU5BUklFUyAiZG8gbm90IGJ1aWxkIHRoZSBlbmNvZGVyIGFuZCBk
ZWNvZGVyIHByb2dyYW1zLCBvbmx5IHRoZSBsaWJyYXJ5LiIpCithZGRfZmVhdHVyZV9pbmZvKEVO
QUJMRV9QQUNLQUdFX0NPTkZJRyBFTkFCTEVfUEFDS0FHRV9DT05GSUcgImdlbmVyYXRlIGFuZCBp
bnN0YWxsIHBhY2thZ2UgY29uZmlnIGZpbGUiKQorYWRkX2ZlYXR1cmVfaW5mbyhVU0VfR1BMX0ZG
VFczIFVTRV9HUExfRkZUVzMgIlVzZSBGRlRXMyBsaWJyYXJ5IGZvciBmYXN0IEZvdXJpZXIgdHJh
bnNmb3JtcyIpCitmZWF0dXJlX3N1bW1hcnkoV0hBVCBBTEwpCisKK2NvbmZpZ3VyZV9maWxlKGNv
bmZpZy5oLmNtYWtlIGNvbmZpZy5oKQorCitzZXQoc3BlZXhfUFVCTElDX0hFQURFUlMKKwlpbmNs
dWRlL3NwZWV4L3NwZWV4LmgKKwlpbmNsdWRlL3NwZWV4L3NwZWV4X2JpdHMuaAorCWluY2x1ZGUv
c3BlZXgvc3BlZXhfY2FsbGJhY2tzLmgKKwlpbmNsdWRlL3NwZWV4L3NwZWV4X2hlYWRlci5oCisJ
aW5jbHVkZS9zcGVleC9zcGVleF9zdGVyZW8uaAorCWluY2x1ZGUvc3BlZXgvc3BlZXhfdHlwZXMu
aAorCSR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9pbmNsdWRlL3NwZWV4L3NwZWV4X2NvbmZp
Z190eXBlcy5oKQorCitzZXQoc3BlZXhfU09VUkNFUworCWxpYnNwZWV4L2NiX3NlYXJjaC5jCisJ
bGlic3BlZXgvZXhjXzEwXzMyX3RhYmxlLmMKKwlsaWJzcGVleC9leGNfOF8xMjhfdGFibGUuYwor
CWxpYnNwZWV4L2ZpbHRlcnMuYworCWxpYnNwZWV4L2dhaW5fdGFibGUuYworCWxpYnNwZWV4L2hl
eGNfdGFibGUuYworCWxpYnNwZWV4L2hpZ2hfbHNwX3RhYmxlcy5jCisJbGlic3BlZXgvbHNwLmMK
KwlsaWJzcGVleC9sdHAuYworCWxpYnNwZWV4L3NwZWV4LmMKKwlsaWJzcGVleC9zdGVyZW8uYwor
CWxpYnNwZWV4L3Zici5jCisJbGlic3BlZXgvdnEuYworCWxpYnNwZWV4L2JpdHMuYworCWxpYnNw
ZWV4L2V4Y18xMF8xNl90YWJsZS5jCisJbGlic3BlZXgvZXhjXzIwXzMyX3RhYmxlLmMKKwlsaWJz
cGVleC9leGNfNV8yNTZfdGFibGUuYworCWxpYnNwZWV4L2V4Y181XzY0X3RhYmxlLmMKKwlsaWJz
cGVleC9nYWluX3RhYmxlX2xici5jCisJbGlic3BlZXgvaGV4Y18xMF8zMl90YWJsZS5jCisJbGli
c3BlZXgvbHBjLmMKKwlsaWJzcGVleC9sc3BfdGFibGVzX25iLmMKKwlsaWJzcGVleC9tb2Rlcy5j
CisJbGlic3BlZXgvbW9kZXNfd2IuYworCWxpYnNwZWV4L25iX2NlbHAuYworCWxpYnNwZWV4L3F1
YW50X2xzcC5jCisJbGlic3BlZXgvc2JfY2VscC5jCisJbGlic3BlZXgvc3BlZXhfY2FsbGJhY2tz
LmMKKwlsaWJzcGVleC9zcGVleF9oZWFkZXIuYworCWxpYnNwZWV4L3dpbmRvdy5jCisJbGlic3Bl
ZXgvYXJjaC5oCisJbGlic3BlZXgvYmZpbi5oCisJbGlic3BlZXgvY2Jfc2VhcmNoX2FybTQuaAor
CWxpYnNwZWV4L2NiX3NlYXJjaF9iZmluLmgKKwlsaWJzcGVleC9jYl9zZWFyY2hfc3NlLmgKKwls
aWJzcGVleC9maWx0ZXJzLmgKKwlsaWJzcGVleC9maWx0ZXJzX2FybTQuaAorCWxpYnNwZWV4L2Zp
bHRlcnNfYmZpbi5oCisJbGlic3BlZXgvZmlsdGVyc19zc2UuaAorCWxpYnNwZWV4L2ZpeGVkX2Fy
bTQuaAorCWxpYnNwZWV4L2ZpeGVkX2FybTVlLmgKKwlsaWJzcGVleC9maXhlZF9iZmluLmgKKwls
aWJzcGVleC9maXhlZF9kZWJ1Zy5oCisJbGlic3BlZXgvbHBjLmgKKwlsaWJzcGVleC9scGNfYmZp
bi5oCisJbGlic3BlZXgvbHRwLmgKKwlsaWJzcGVleC9sdHBfYXJtNC5oCisJbGlic3BlZXgvbHRw
X3NzZS5oCisJbGlic3BlZXgvbWF0aF9hcHByb3guaAorCWxpYnNwZWV4L21pc2NfYmZpbi5oCisJ
bGlic3BlZXgvbmJfY2VscC5oCisJbGlic3BlZXgvcXVhbnRfbHNwLmgKKwlsaWJzcGVleC9zYl9j
ZWxwLmgKKwlsaWJzcGVleC9zdGFja19hbGxvYy5oCisJbGlic3BlZXgvdmJyLmgKKwlsaWJzcGVl
eC92cS5oCisJbGlic3BlZXgvdnFfYXJtNC5oCisJbGlic3BlZXgvdnFfYmZpbi5oCisJbGlic3Bl
ZXgvdnFfc3NlLmgKKwlsaWJzcGVleC9jYl9zZWFyY2guaAorCWxpYnNwZWV4L2ZmdHdyYXAuaAor
CWxpYnNwZWV4L2ZmdHdyYXAuYworCWxpYnNwZWV4L2ZpeGVkX2dlbmVyaWMuaAorCWxpYnNwZWV4
L2xzcC5oCisJbGlic3BlZXgvbHNwX2JmaW4uaAorCWxpYnNwZWV4L2x0cF9iZmluLmgKKwlsaWJz
cGVleC9tb2Rlcy5oCisJbGlic3BlZXgvb3Nfc3VwcG9ydC5oCisJbGlic3BlZXgvcXVhbnRfbHNw
X2JmaW4uaAorCWxpYnNwZWV4L3NtYWxsZnQuaCkKKworYWRkX2xpYnJhcnkoc3BlZXggJHtzcGVl
eF9QVUJMSUNfSEVBREVSU30gJHtzcGVleF9TT1VSQ0VTfSkKK3RhcmdldF9jb21waWxlX2RlZmlu
aXRpb25zKHNwZWV4CisJUFJJVkFURSAtREhBVkVfQ09ORklHX0gpCit0YXJnZXRfaW5jbHVkZV9k
aXJlY3RvcmllcyhzcGVleAorCVBSSVZBVEUgJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJS
RU5UX0JJTkFSWV9ESVJ9PgorCVBVQkxJQyAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJF
TlRfQklOQVJZX0RJUn0vaW5jbHVkZS9zcGVleD4KKwlQVUJMSUMgJDxCVUlMRF9JTlRFUkZBQ0U6
JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGU+CisJUFVCTElDICQ8SU5TVEFMTF9J
TlRFUkZBQ0U6JHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9PikKK2lmKFVTRV9HUExfRkZUVzMp
CisJdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoc3BlZXgKKwkJUFJJVkFURSAkPEJVSUxEX0lO
VEVSRkFDRToke0ZGVFdfSU5DTFVERV9ESVJTfT4pCisJaWYoQlVJTERfU0hBUkVEX0xJQlMpCisJ
CXRhcmdldF9saW5rX2xpYnJhcmllcyhzcGVleCBQUklWQVRFICR7RkZUV19MSUJSQVJJRVN9KQor
CWVsc2UoKQorCQl0YXJnZXRfbGlua19saWJyYXJpZXMoc3BlZXggUFVCTElDICR7RkZUV19MSUJS
QVJJRVN9KQorCWVuZGlmKCkKK2VuZGlmKCkKK2lmKEhBVkVfTElCTSkKKwlpZihCVUlMRF9TSEFS
RURfTElCUykKKwkJdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHNwZWV4IFBSSVZBVEUgJHtMSUJNfSkK
KwllbHNlKCkKKwkJdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHNwZWV4IFBVQkxJQyAke0xJQk19KQor
CWVuZGlmKCkKK2VuZGlmKCkKK3RhcmdldF9jb21waWxlX29wdGlvbnMoc3BlZXggUFJJVkFURSAk
e1NTRV9GTEFHU30pCitpZihXSU4zMiBBTkQgQlVJTERfU0hBUkVEX0xJQlMpCisJdGFyZ2V0X3Nv
dXJjZXMoc3BlZXggUFJJVkFURSB3aW4zMi9saWJzcGVleC5kZWYpCisJc2V0X3RhcmdldF9wcm9w
ZXJ0aWVzIChzcGVleCBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FICJsaWJzcGVleCIpCitlbmRpZigp
CitzZXRfdGFyZ2V0X3Byb3BlcnRpZXMgKHNwZWV4IFBST1BFUlRJRVMKKwkJUFVCTElDX0hFQURF
UiAiJHtzcGVleF9QVUJMSUNfSEVBREVSU30iCisJCVNPVkVSU0lPTiAxLjUuMQorCQlWRVJTSU9O
IDEpCitpZihFWFBPUlQgQU5EIEJVSUxEX1NIQVJFRF9MSUJTKQorCXNldF90YXJnZXRfcHJvcGVy
dGllcyAoc3BlZXggUFJPUEVSVElFUworCQkJQ19WSVNJQklMSVRZX1BSRVNFVCBoaWRkZW4pCitl
bmRpZigpCitpZihVU0VfU01BTExGVCkKKwl0YXJnZXRfc291cmNlcyhzcGVleCBQUklWQVRFCisJ
CWxpYnNwZWV4L3NtYWxsZnQuYykKK2Vsc2VpZihVU0VfS0lTU19GRlQpCisJdGFyZ2V0X3NvdXJj
ZXMoc3BlZXggUFJJVkFURQorCQlsaWJzcGVleC9raXNzX2ZmdC5jCisJCWxpYnNwZWV4L19raXNz
X2ZmdF9ndXRzLmgKKwkJbGlic3BlZXgva2lzc19mZnQuaAorCQlsaWJzcGVleC9raXNzX2ZmdHIu
YworCQlsaWJzcGVleC9raXNzX2ZmdHIuaCkKK2VuZGlmKCkKK2lmKFZPUkJJU19QU1lDSE8pCisJ
dGFyZ2V0X3NvdXJjZXMoc3BlZXggUFJJVkFURQorCQlsaWJzcGVleC92b3JiaXNfcHN5LmgKKwkJ
bGlic3BlZXgvdm9yYmlzX3BzeS5jKQorZW5kaWYoKQorCisjIFByb2dyYW1zCisKK2lmKE5PVCBE
SVNBQkxFX0JJTkFSSUVTKQorCitTRVQoc3BlZXhlbmNfU09VUkNFUworCXNyYy9zcGVleGVuYy5j
CisJc3JjL3dhdl9pby5jCisJc3JjL3NrZWxldG9uLmMpCithZGRfZXhlY3V0YWJsZShzcGVleGVu
YyAke3NwZWV4ZW5jX1NPVVJDRVN9KQordGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoc3BlZXhl
bmMKKwlQUklWQVRFCisJCSQ8QlVJTERfSU5URVJGQUNFOiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllf
RElSfT4KKwkJJDxCVUlMRF9JTlRFUkZBQ0U6JHtPR0dfSU5DTFVERV9ESVJTfT4KKwkJJDxCVUlM
RF9JTlRFUkZBQ0U6JHtTUEVFWERTUF9JTkNMVURFX0RJUlN9PikKK3RhcmdldF9saW5rX2xpYnJh
cmllcyhzcGVleGVuYworCVBVQkxJQyBzcGVleCAke09HR19MSUJSQVJJRVN9ICR7U1BFRVhEU1Bf
TElCUkFSSUVTfSkKK2lmKFdJTjMyKQorCXRhcmdldF9saW5rX2xpYnJhcmllcyhzcGVleGVuYyBQ
UklWQVRFIHdpbm1tLmxpYikKK2VuZGlmKCkKK3RhcmdldF9jb21waWxlX2RlZmluaXRpb25zKHNw
ZWV4ZW5jCisJUFJJVkFURSAtREhBVkVfQ09ORklHX0gpCitpZihOT1QgSEFWRV9HRVRPUFRfTE9O
RykKKwl0YXJnZXRfc291cmNlcyhzcGVleGVuYyBQUklWQVRFCisJCXNyYy9nZXRvcHQuYworCQlz
cmMvZ2V0b3B0MS5jCisJCXNyYy93YXZlX291dC5jKQorZW5kaWYoKQorCitTRVQoc3BlZXhkZWNf
U09VUkNFUworCXNyYy9zcGVleGRlYy5jCisJc3JjL3dhdl9pby5jKQorYWRkX2V4ZWN1dGFibGUo
c3BlZXhkZWMgJHtzcGVleGRlY19TT1VSQ0VTfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVz
KHNwZWV4ZGVjCisJUFJJVkFURQorCQkkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRf
QklOQVJZX0RJUn0+CisJCSQ8QlVJTERfSU5URVJGQUNFOiR7T0dHX0lOQ0xVREVfRElSU30+KQor
dGFyZ2V0X2xpbmtfbGlicmFyaWVzKHNwZWV4ZGVjIFBVQkxJQyBzcGVleCAke09HR19MSUJSQVJJ
RVN9KQoraWYoV0lOMzIpCisJdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHNwZWV4ZGVjIFBSSVZBVEUg
d2lubW0ubGliKQorZW5kaWYoKQordGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMoc3BlZXhkZWMK
KwlQUklWQVRFIC1ESEFWRV9DT05GSUdfSCkKK2lmKE5PVCBIQVZFX0dFVE9QVF9MT05HKQorCXRh
cmdldF9zb3VyY2VzKHNwZWV4ZGVjIFBSSVZBVEUKKwkJc3JjL2dldG9wdC5jCisJCXNyYy9nZXRv
cHQxLmMKKwkJc3JjL3dhdmVfb3V0LmMpCitlbmRpZigpCisKKyMgVGVzdHMgKG5vIGF1dG9tYXRp
YyBjaGVja2luZyBzdXBwb3J0ZWQpCisKK2FkZF9leGVjdXRhYmxlKHRlc3RlbmMgbGlic3BlZXgv
dGVzdGVuYy5jKQordGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXModGVzdGVuYworCVBSSVZBVEUg
JDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9PikKK3RhcmdldF9s
aW5rX2xpYnJhcmllcyh0ZXN0ZW5jCisJUFJJVkFURSAke0xJQk19CisJUFVCTElDIHNwZWV4KQor
dGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnModGVzdGVuYworCVBSSVZBVEUgLURIQVZFX0NPTkZJ
R19IKQorYWRkX2V4ZWN1dGFibGUodGVzdGVuY193YiBsaWJzcGVleC90ZXN0ZW5jX3diLmMpCit0
YXJnZXRfaW5jbHVkZV9kaXJlY3Rvcmllcyh0ZXN0ZW5jX3diCisJUFJJVkFURSAkPEJVSUxEX0lO
VEVSRkFDRToke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0+KQordGFyZ2V0X2xpbmtfbGlicmFy
aWVzKHRlc3RlbmNfd2IKKwlQUklWQVRFICR7TElCTX0KKwlQVUJMSUMgc3BlZXgpCit0YXJnZXRf
Y29tcGlsZV9kZWZpbml0aW9ucyh0ZXN0ZW5jX3diCisJUFJJVkFURSAtREhBVkVfQ09ORklHX0gp
CithZGRfZXhlY3V0YWJsZSh0ZXN0ZW5jX3V3YiBsaWJzcGVleC90ZXN0ZW5jX3V3Yi5jKQordGFy
Z2V0X2luY2x1ZGVfZGlyZWN0b3JpZXModGVzdGVuY191d2IKKwlQUklWQVRFICQ8QlVJTERfSU5U
RVJGQUNFOiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfT4pCit0YXJnZXRfbGlua19saWJyYXJp
ZXModGVzdGVuY191d2IKKwlQUklWQVRFICR7TElCTX0KKwlQVUJMSUMgc3BlZXgpCit0YXJnZXRf
Y29tcGlsZV9kZWZpbml0aW9ucyh0ZXN0ZW5jX3V3YgorCVBSSVZBVEUgLURIQVZFX0NPTkZJR19I
KQorCitlbmRpZigpCisKKyMgSW5zdGFsbGF0aW9uCisKK3NldChJTlNUQUxMX1RBUkdFVFMgc3Bl
ZXgpCitpZihOT1QgRElTQUJMRV9CSU5BUklFUykKKwlsaXN0KEFQUEVORCBJTlNUQUxMX1RBUkdF
VFMgc3BlZXhlbmMgc3BlZXhkZWMpCitlbmRpZigpCitpbnN0YWxsKFRBUkdFVFMgJHtJTlNUQUxM
X1RBUkdFVFN9CisJRVhQT1JUIFNwZWV4VGFyZ2V0cworCVJVTlRJTUUJREVTVElOQVRJT04JCQkk
e0NNQUtFX0lOU1RBTExfQklORElSfQorCUFSQ0hJVkUgREVTVElOQVRJT04JCQkke0NNQUtFX0lO
U1RBTExfTElCRElSfQorCUxJQlJBUlkgREVTVElOQVRJT04JCQkke0NNQUtFX0lOU1RBTExfTElC
RElSfQorCVBVQkxJQ19IRUFERVIgREVTVElOQVRJT04JJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVE
SVJ9L3NwZWV4KQoraW5zdGFsbChGSUxFUyBkb2MvbWFudWFsLnBkZiBERVNUSU5BVElPTiAke0NN
QUtFX0lOU1RBTExfRE9DRElSfSkKK2luc3RhbGwoRklMRVMgc3JjL3NwZWV4ZW5jLjEgc3JjL3Nw
ZWV4ZGVjLjEgREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX01BTkRJUn0vbWFuMSkKK2luc3Rh
bGwoRklMRVMgc3BlZXgubTQgREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0RBVEFST09URElS
fS9hY2xvY2FsKQorCitzZXQocHJlZml4ICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9KQorc2V0KGV4
ZWNfcHJlZml4ICRce3ByZWZpeFx9KQorc2V0KGxpYmRpciAkXHtleGVjX3ByZWZpeFx9LyR7Q01B
S0VfSU5TVEFMTF9MSUJESVJ9KQorc2V0KGluY2x1ZGVkaXIgJFx7cHJlZml4XH0vJHtDTUFLRV9J
TlNUQUxMX0lOQ0xVREVESVJ9KQorc2V0KFNQRUVYX1ZFUlNJT04gJHtQUk9KRUNUX1ZFUlNJT059
KQoraWYoSEFWRV9MSUJNKQorCXNldChMSUJNIC1sbSkKK2VuZGlmKCkKK2NvbmZpZ3VyZV9maWxl
KHNwZWV4LnBjLmluIHNwZWV4LnBjIEBPTkxZKQoraW5zdGFsbChGSUxFUyAke0NNQUtFX0NVUlJF
TlRfQklOQVJZX0RJUn0vc3BlZXgucGMgREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0xJQkRJ
Un0vcGtnY29uZmlnKQorCitzZXQoUEFDS0FHRSAke1BST0pFQ1RfTkFNRX0pCitzZXQoVkVSU0lP
TiAke1BST0pFQ1RfVkVSU0lPTn0pCitjb25maWd1cmVfZmlsZShTcGVleC5zcGVjLmluIFNwZWV4
LnNwZWMgQE9OTFkpCisKK2lmIChFTkFCTEVfUEFDS0FHRV9DT05GSUcpCisJaW5jbHVkZSAoQ01h
a2VQYWNrYWdlQ29uZmlnSGVscGVycykKKwl3cml0ZV9iYXNpY19wYWNrYWdlX3ZlcnNpb25fZmls
ZSAoU3BlZXhDb25maWdWZXJzaW9uLmNtYWtlIENPTVBBVElCSUxJVFkgU2FtZU1ham9yVmVyc2lv
bikKKwlpZiAoVU5JWCkKKwkJc2V0KENNQUtFX0lOU1RBTExfUEFDS0FHRURJUiAke0NNQUtFX0lO
U1RBTExfTElCRElSfS9jbWFrZS8ke1BST0pFQ1RfTkFNRX0pCisJZWxzZWlmKFdJTjMyKQorCQlz
ZXQoQ01BS0VfSU5TVEFMTF9QQUNLQUdFRElSIGNtYWtlKQorCWVuZGlmKCkKKwlpbnN0YWxsKEVY
UE9SVCBTcGVleFRhcmdldHMgREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX1BBQ0tBR0VESVJ9
KQorCWluc3RhbGwoRklMRVMgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L1NwZWV4Q29uZmln
VmVyc2lvbi5jbWFrZSBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfUEFDS0FHRURJUn0pCisJ
aW5zdGFsbChGSUxFUyBjbWFrZS9TcGVleENvbmZpZy5jbWFrZSBERVNUSU5BVElPTiAke0NNQUtF
X0lOU1RBTExfUEFDS0FHRURJUn0pCitlbmRpZigpCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBi
L01ha2VmaWxlLmFtCmluZGV4IGRjOTA0MTUuLjE1NWYwYTkgMTAwNjQ0Ci0tLSBhL01ha2VmaWxl
LmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0xMSw3ICsxMSwxMiBAQCBtNGRhdGFfREFUQSA9IHNw
ZWV4Lm00CiBwa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCiBwa2djb25maWdfREFU
QSA9IHNwZWV4LnBjCiAKLUVYVFJBX0RJU1QgPSBTcGVleC5zcGVjIFNwZWV4LnNwZWMuaW4gU3Bl
ZXgua2RldmVsb3Agc3BlZXgubTQgc3BlZXgucGMuaW4gUkVBRE1FLmJsYWNrZmluIFJFQURNRS5z
eW1iaWFuIFJFQURNRS5USS1EU1AKK0VYVFJBX0RJU1QgPSBTcGVleC5zcGVjIFNwZWV4LnNwZWMu
aW4gU3BlZXgua2RldmVsb3Agc3BlZXgubTQgc3BlZXgucGMuaW4gXAorCVJFQURNRS5ibGFja2Zp
biBSRUFETUUuc3ltYmlhbiBSRUFETUUuVEktRFNQIENNYWtlTGlzdHMudHh0IGNvbmZpZy5oLmNt
YWtlIFwKKwkkKGNtYWtlX2ZpbGVzKQorCitjbWFrZV9maWxlcyA9IGNtYWtlL0ZpbmRPZ2cuY21h
a2UgY21ha2UvRmluZFNwZWV4RHNwLmNtYWtlIFwKKwljbWFrZS9GaW5kU3BlZXhEc3AuY21ha2Ug
Y21ha2UvU3BlZXhDb25maWcuY21ha2UgY21ha2UvVGVzdFZhckFycmF5cy5jbWFrZQogCiAjRm9v
bHMgS0RldmVsb3AgaW50byBpbmNsdWRpbmcgYWxsIGZpbGVzCiBTVUJESVJTID0gbGlic3BlZXgg
aW5jbHVkZSBkb2Mgd2luMzIgc3ltYmlhbiB0aQpkaWZmIC0tZ2l0IGEvY21ha2UvRmluZEZGVFcu
Y21ha2UgYi9jbWFrZS9GaW5kRkZUVy5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41N2UxM2U0Ci0tLSAvZGV2L251bGwKKysrIGIvY21ha2UvRmluZEZGVFcuY21ha2UK
QEAgLTAsMCArMSwyOCBAQAorIyAtIEZpbmQgZmZ0dworIyBGaW5kIHRoZSBuYXRpdmUgZmZ0dyBp
bmNsdWRlcyBhbmQgbGlicmFyaWVzCisjCisjICBGRlRXX0lOQ0xVREVfRElSUyAtIHdoZXJlIHRv
IGZpbmQgZmZ0dy5oLCBldGMuCisjICBGRlRXX0xJQlJBUklFUyAgICAtIExpc3Qgb2YgbGlicmFy
aWVzIHdoZW4gdXNpbmcgZmZ0dy4KKyMgIEZGVFdfRk9VTkQgICAgICAgIC0gVHJ1ZSBpZiBmZnR3
IGZvdW5kLgorCitpZihGRlRXX0lOQ0xVREVfRElSKQorICAgICMgQWxyZWFkeSBpbiBjYWNoZSwg
YmUgc2lsZW50CisgICAgc2V0KEZGVFdfRklORF9RVUlFVExZIFRSVUUpCitlbmRpZihGRlRXX0lO
Q0xVREVfRElSKQorCitmaW5kX3BhY2thZ2UgKFBrZ0NvbmZpZyBRVUlFVCkKK3BrZ19jaGVja19t
b2R1bGVzKFBDX0ZGVFcgUVVJRVQgZmZ0dzNmKQorCitmaW5kX3BhdGgoRkZUV19JTkNMVURFX0RJ
UiBmZnR3My5oIEhJTlRTICR7UENfRkZUV19JTkNMVURFRElSfSAke1BDX0ZGVFdfSU5DTFVERV9E
SVJTfSAke0ZGVFdfUk9PVH0gUEFUSF9TVUZGSVhFUyBpbmNsdWRlKQorZmluZF9saWJyYXJ5KEZG
VFdfTElCUkFSWSBOQU1FUyBmZnR3M2YgSElOVFMgJHtQQ19GRlRXX0xJQkRJUn0gJHtQQ19GRlRX
X0xJQlJBUllfRElSU30gJHtGRlRXX1JPT1R9IFBBVEhfU1VGRklYRVMgbGliKQorIyBIYW5kbGUg
dGhlIFFVSUVUTFkgYW5kIFJFUVVJUkVEIGFyZ3VtZW50cyBhbmQgc2V0IEZGVFdfRk9VTkQKKyMg
dG8gVFJVRSBpZiBhbGwgbGlzdGVkIHZhcmlhYmxlcyBhcmUgVFJVRS4KK2luY2x1ZGUoRmluZFBh
Y2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2Fy
Z3MoRkZUVyBERUZBVUxUX01TRyBGRlRXX0lOQ0xVREVfRElSIEZGVFdfTElCUkFSWSkKKworaWYg
KEZGVFdfRk9VTkQpCisJc2V0IChGRlRXX0xJQlJBUklFUyAke0ZGVFdfTElCUkFSWX0pCisJc2V0
IChGRlRXX0lOQ0xVREVfRElSUyAke0ZGVFdfSU5DTFVERV9ESVJ9KQorZW5kaWYgKEZGVFdfRk9V
TkQpCisKK21hcmtfYXNfYWR2YW5jZWQoRkZUV19JTkNMVURFX0RJUiBGRlRXX0xJQlJBUlkpCmRp
ZmYgLS1naXQgYS9jbWFrZS9GaW5kT2dnLmNtYWtlIGIvY21ha2UvRmluZE9nZy5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzEwNTE4Ci0tLSAvZGV2L251bGwKKysr
IGIvY21ha2UvRmluZE9nZy5jbWFrZQpAQCAtMCwwICsxLDMwIEBACisjIC0gRmluZCBvZ2cKKyMg
RmluZCB0aGUgbmF0aXZlIG9nZyBpbmNsdWRlcyBhbmQgbGlicmFyaWVzCisjCisjICBPR0dfSU5D
TFVERV9ESVJTIC0gd2hlcmUgdG8gZmluZCBvZ2cuaCwgZXRjLgorIyAgT0dHX0xJQlJBUklFUyAg
ICAtIExpc3Qgb2YgbGlicmFyaWVzIHdoZW4gdXNpbmcgb2dnLgorIyAgT2dnX0ZPVU5EICAgICAg
ICAtIFRydWUgaWYgb2dnIGZvdW5kLgorCitpZihPR0dfSU5DTFVERV9ESVIpCisgICAgIyBBbHJl
YWR5IGluIGNhY2hlLCBiZSBzaWxlbnQKKyAgICBzZXQoT0dHX0ZJTkRfUVVJRVRMWSBUUlVFKQor
ZW5kaWYoT0dHX0lOQ0xVREVfRElSKQorCitmaW5kX3BhY2thZ2UgKFBrZ0NvbmZpZyBRVUlFVCkK
K3BrZ19jaGVja19tb2R1bGVzKFBDX09HRyBRVUlFVCBvZ2cpCisKK2ZpbmRfcGF0aChPR0dfSU5D
TFVERV9ESVIgb2dnL29nZy5oIEhJTlRTICR7UENfT0dHX0lOQ0xVREVESVJ9ICR7UENfT0dHX0lO
Q0xVREVfRElSU30gJHtPR0dfUk9PVH0gUEFUSF9TVUZGSVhFUyBpbmNsdWRlKQorIyBNU1ZDIGJ1
aWx0IG9nZyBtYXkgYmUgbmFtZWQgb2dnX3N0YXRpYy4KKyMgVGhlIHByb3ZpZGVkIHByb2plY3Qg
ZmlsZXMgbmFtZSB0aGUgbGlicmFyeSB3aXRoIHRoZSBsaWIgcHJlZml4LgorZmluZF9saWJyYXJ5
KE9HR19MSUJSQVJZIE5BTUVTIG9nZyBvZ2dfc3RhdGljIGxpYm9nZyBsaWJvZ2dfc3RhdGljIEhJ
TlRTICR7UENfT0dHX0xJQkRJUn0gJHtQQ19PR0dfTElCUkFSWV9ESVJTfSAke09HR19ST09UfSBQ
QVRIX1NVRkZJWEVTIGxpYikKKyMgSGFuZGxlIHRoZSBRVUlFVExZIGFuZCBSRVFVSVJFRCBhcmd1
bWVudHMgYW5kIHNldCBPR0dfRk9VTkQKKyMgdG8gVFJVRSBpZiBhbGwgbGlzdGVkIHZhcmlhYmxl
cyBhcmUgVFJVRS4KK2luY2x1ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitmaW5k
X3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2FyZ3MoT2dnIERFRkFVTFRfTVNHIE9HR19JTkNMVURF
X0RJUiBPR0dfTElCUkFSWSkKKworaWYgKE9HR19GT1VORCkKKwlzZXQgKE9HR19MSUJSQVJJRVMg
JHtPR0dfTElCUkFSWX0pCisJc2V0IChPR0dfSU5DTFVERV9ESVJTICR7T0dHX0lOQ0xVREVfRElS
fSkKK2VuZGlmIChPR0dfRk9VTkQpCisKK21hcmtfYXNfYWR2YW5jZWQoT0dHX0lOQ0xVREVfRElS
IE9HR19MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvY21ha2UvRmluZFNwZWV4RHNwLmNtYWtlIGIvY21h
a2UvRmluZFNwZWV4RHNwLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmQ0YTMzMmYKLS0tIC9kZXYvbnVsbAorKysgYi9jbWFrZS9GaW5kU3BlZXhEc3AuY21ha2UKQEAg
LTAsMCArMSwyOCBAQAorIyAtIEZpbmQgc3BlZXhkc3AKKyMgRmluZCB0aGUgbmF0aXZlIHNwZWV4
ZHNwIGluY2x1ZGVzIGFuZCBsaWJyYXJpZXMKKyMKKyMgIFNQRUVYRFNQX0lOQ0xVREVfRElSUyAt
IHdoZXJlIHRvIGZpbmQgc3BlZXhfcHJlcHJvY2Vzcy5oLCBldGMuCisjICBTUEVFWERTUF9MSUJS
QVJJRVMgICAgLSBMaXN0IG9mIGxpYnJhcmllcyB3aGVuIHVzaW5nIHNwZWV4ZHNwLgorIyAgU3Bl
ZXhEc3BfRk9VTkQgICAgICAgIC0gVHJ1ZSBpZiBzcGVleGRzcCBmb3VuZC4KKworaWYoU1BFRVhE
U1BfSU5DTFVERV9ESVIpCisgICAgIyBBbHJlYWR5IGluIGNhY2hlLCBiZSBzaWxlbnQKKyAgICBz
ZXQoU1BFRVhEU1BfRklORF9RVUlFVExZIFRSVUUpCitlbmRpZihTUEVFWERTUF9JTkNMVURFX0RJ
UikKKworZmluZF9wYWNrYWdlIChQa2dDb25maWcgUVVJRVQpCitwa2dfY2hlY2tfbW9kdWxlcyhQ
Q19TUEVFWERTUCBRVUlFVCBzcGVleGRzcCkKKworZmluZF9wYXRoKFNQRUVYRFNQX0lOQ0xVREVf
RElSIHNwZWV4L3NwZWV4X3ByZXByb2Nlc3MuaCBISU5UUyAke1BDX1NQRUVYRFNQX0lOQ0xVREVE
SVJ9ICR7UENfU1BFRVhEU1BfSU5DTFVERV9ESVJTfSAke1NQRUVYRFNQX1JPT1R9IFBBVEhfU1VG
RklYRVMgaW5jbHVkZSkKK2ZpbmRfbGlicmFyeShTUEVFWERTUF9MSUJSQVJZIE5BTUVTIHNwZWV4
ZHNwIEhJTlRTICR7UENfU1BFRVhEU1BfTElCRElSfSAke1BDX1NQRUVYRFNQX0xJQlJBUllfRElS
U30gJHtTUEVFWERTUF9ST09UfSBQQVRIX1NVRkZJWEVTIGxpYikKKyMgSGFuZGxlIHRoZSBRVUlF
VExZIGFuZCBSRVFVSVJFRCBhcmd1bWVudHMgYW5kIHNldCBTUEVFWERTUF9GT1VORAorIyB0byBU
UlVFIGlmIGFsbCBsaXN0ZWQgdmFyaWFibGVzIGFyZSBUUlVFLgoraW5jbHVkZShGaW5kUGFja2Fn
ZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRhcmRfYXJncyhT
cGVleERzcCBERUZBVUxUX01TRyBTUEVFWERTUF9JTkNMVURFX0RJUiBTUEVFWERTUF9MSUJSQVJZ
KQorCitpZiAoU1BFRVhEU1BfRk9VTkQpCisJc2V0IChTUEVFWERTUF9MSUJSQVJJRVMgJHtTUEVF
WERTUF9MSUJSQVJZfSkKKwlzZXQgKFNQRUVYRFNQX0lOQ0xVREVfRElSUyAke1NQRUVYRFNQX0lO
Q0xVREVfRElSfSkKK2VuZGlmIChTUEVFWERTUF9GT1VORCkKKworbWFya19hc19hZHZhbmNlZChT
UEVFWERTUF9JTkNMVURFX0RJUiBTUEVFWERTUF9MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvY21ha2Uv
U3BlZXhDb25maWcuY21ha2UgYi9jbWFrZS9TcGVleENvbmZpZy5jbWFrZQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmM5OWU4Ci0tLSAvZGV2L251bGwKKysrIGIvY21ha2Uv
U3BlZXhDb25maWcuY21ha2UKQEAgLTAsMCArMSBAQAoraW5jbHVkZSAoJHtDTUFLRV9DVVJSRU5U
X0xJU1RfRElSfS9TcGVleFRhcmdldHMuY21ha2UpCmRpZmYgLS1naXQgYS9jbWFrZS9UZXN0VmFy
QXJyYXlzLmNtYWtlIGIvY21ha2UvVGVzdFZhckFycmF5cy5jbWFrZQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xMWY0MTNmCi0tLSAvZGV2L251bGwKKysrIGIvY21ha2UvVGVz
dFZhckFycmF5cy5jbWFrZQpAQCAtMCwwICsxLDIyIEBACitpbmNsdWRlKENoZWNrQ1NvdXJjZUNv
bXBpbGVzKQorCittYWNybyhURVNUX1ZBUkFSUkFZUyBWQVJJQUJMRSkKKwlpZihOT1QgREVGSU5F
RCAke1ZBUklBQkxFfSkKKwkJY2hlY2tfY19zb3VyY2VfY29tcGlsZXMoCisJCQkiCisJCQl2b2lk
IG1haW4odm9pZCkKKwkJCXsKKwkJCQlpbnQgZm9vOworCQkJCWZvbyA9IDEwOworCQkJCWludCBh
cnJheVtmb29dOworCQkJfTsKKwkJCSIKKwkJCVZBUkFSUkFZU19TVVBQT1JUKQorCQlzZXQoJHtW
QVJJQUJMRX0gJHtWQVJBUlJBWVNfU1VQUE9SVH0gQ0FDSEUgSU5URVJOQUwgIkM5OSB2YXJpYWJs
ZS1zaXplIGFycmF5cyBzdXBwb3J0IiBGT1JDRSkKKwkJaWYoJHtWQVJJQUJMRX0pCisJCQlzZXQo
UkVTVUxUX1RFWFQgInN1Y2Nlc3MiKQorCQllbHNlKCkKKwkJCXNldChSRVNVTFRfVEVYVCAiZmFp
bGVkIikKKwkJZW5kaWYoKQorCWVuZGlmKCkKK2VuZG1hY3JvKFRFU1RfVkFSQVJSQVlTIFZBUklB
QkxFKQpkaWZmIC0tZ2l0IGEvY29uZmlnLmguY21ha2UgYi9jb25maWcuaC5jbWFrZQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmY4OGIxCi0tLSAvZGV2L251bGwKKysrIGIv
Y29uZmlnLmguY21ha2UKQEAgLTAsMCArMSwyMyBAQAorI2NtYWtlZGVmaW5lIFdPUkRTX0JJR0VO
RElBTgorI2NtYWtlZGVmaW5lIEZMT0FUSU5HX1BPSU5UCisjY21ha2VkZWZpbmUgRklYRURfUE9J
TlQKKyNjbWFrZWRlZmluZSBGSVhFRF9QT0lOVF9ERUJVRworI2NtYWtlZGVmaW5lIERJU0FCTEVf
RkxPQVRfQVBJCisjY21ha2VkZWZpbmUgX1VTRV9TU0UKKyNjbWFrZWRlZmluZSBBUk00X0FTTQor
I2NtYWtlZGVmaW5lIEFSTTVFX0FTTQorI2NtYWtlZGVmaW5lIEJGSU5fQVNNCisjY21ha2VkZWZp
bmUgVElfQzU1WAorI2NtYWtlZGVmaW5lIERJU0FCTEVfVkJSCisjY21ha2VkZWZpbmUgVVNFX1NQ
RUVYRFNQCisjY21ha2VkZWZpbmUgVk9SQklTX1BTWUNITworI2NtYWtlZGVmaW5lIEhBVkVfR0VU
T1BUX0gKKyNjbWFrZWRlZmluZSBIQVZFX0dFVE9QVF9MT05HCisjY21ha2VkZWZpbmUgVkFSX0FS
UkFZUworI2NtYWtlZGVmaW5lIFVTRV9BTExPQ0EKKyNjbWFrZWRlZmluZSBIQVZFX0FMTE9DQV9I
CisjY21ha2VkZWZpbmUgVVNFX1NNQUxMRlQKKyNjbWFrZWRlZmluZSBVU0VfS0lTU19GRlQKKyNj
bWFrZWRlZmluZSBVU0VfR1BMX0ZGVFczCisKKyNkZWZpbmUgRVhQT1JUIEBFWFBPUlRACi0tIAoy
LjEyLjAud2luZG93cy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpTcGVleC1kZXYgbWFpbGluZyBsaXN0ClNwZWV4LWRldkB4aXBoLm9yZwpodHRwOi8v
bGlzdHMueGlwaC5vcmcvbWFpbG1hbi9saXN0aW5mby9zcGVleC1kZXYK