Re: GCC segfault on i686

Till Hofmann <[email protected]> Fri, 19 Aug 2016 08:56:01 +0200
Newsgroups gmane.comp.gnu.prolog.bugs
Message-ID <[email protected]>
T24gMDgvMTkvMjAxNiAwMjo0MCBBTSwgTWF0dGhldyBDYXJ0ZXIgd3JvdGU6Cj4gSSBjYW4gY29u
ZmlybSBmYWlsdXJlIHRvIGJ1aWxkIHdpdGggZ2NjIDYuMSsgb24gaTY4NiAodXNpbmcgQXJjaCBM
aW51eAo+IG15c2VsZikuCj4gCj4gSSBjb3VsZG4ndCBnZXQgaXQgdG8gYnVpbGQgd2l0aCB5b3Vy
IGNvbmZpZ3VyZSBvcHRpb25zIGhvd2V2ZXIgKGl0IHN0aWxsCj4gZmFpbGVkIHdpdGggc2VnZmF1
bHQgaW4gdGhlIHNhbWUgcGxhY2UpLgoKVGhlIGNvbmZpZ3VyZSBvcHRpb25zIHdlcmUgb25seSB0
byBwcm9kdWNlIHRoZSBtb3JlIHZlcmJvc2UgbWFrZSBvdXRwdXQKYW5kIHRoZSAuaSBmaWxlcy4g
VGhlIGJ1aWxkIHN0aWxsIGZhaWxzLiBTb3JyeSBpZiB0aGlzIHdhc24ndCBjbGVhci4KCktpbmQg
cmVnYXJkcywKVGlsbAoKPiAKPiAtTWF0dAo+IAo+IE9uIFRodSwgQXVnIDE4LCAyMDE2IGF0IDEy
OjEwOjQ5UE0gKzAyMDAsIFRpbGwgSG9mbWFubiB3cm90ZToKPj4gSGkgYWxsLAo+Pgo+PiBJJ20g
Y3VycmVudGx5IHRyeWluZyB0byBkZWJ1ZyBhIEdDQyBzZWdmYXVsdCB0aGF0IG9jY3VycyB3aGVu
IGNvbXBpbGluZwo+PiBFbmdpbmVQbC9tYWNoaW5lLmMgb24gaTY4NiBtYWNoaW5lczoKPj4KPj4+
IG1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VT
L2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZVBsJwo+Pj4gZ3BsYyAtYyAtQyAnLU8zIC1mb21pdC1m
cmFtZS1wb2ludGVyJyBtYWNoaW5lLmMKPj4+IG1hY2hpbmUuYzogSW4gZnVuY3Rpb24g4oCYUGxf
TV9SYW5kb21pemXigJk6Cj4+PiBtYWNoaW5lLmM6Mzg2OjE6IGludGVybmFsIGNvbXBpbGVyIGVy
cm9yOiBTZWdtZW50YXRpb24gZmF1bHQKPj4KPj4gSXQgbG9va3MgbGlrZSB0aGlzIGlzIHJlbGF0
ZWQgdG8gdXNpbmcgdGhlIGVieCByZWdpc3RlcjsgaWYgSSByZW1vdmUKPj4gJy1mZml4ZWQtZWJ4
JyBmcm9tIHRoZSBjYWxsIHRvIGNjMSwgdGhlIHNlZ2ZhdWx0IGRpc2FwcGVhcnMuCj4+Cj4+IExv
b2tpbmcgYXQgdGhlIENoYW5nZWxvZywgaXQgbG9va3MgbGlrZSB0aGVyZSB3YXMgYSBmaXggZm9y
IHNvbWUgaXNzdWUKPj4gcmVsYXRlZCB0byB1c2luZyBlYnggaW4gMS4zLjEsIGJ1dCB0aGUgZXJy
b3Igc3RpbGwgb2NjdXJzIG9uIGk2ODYuCj4+Cj4+IFRvIHJlcHJvZHVjZSwgeW91IG5lZWQgdG8g
YnVpbGQgZ3Byb2xvZyBvbiBpNjg2IHdpdGggR0NDIDYuMS4gSSBjb3VsZAo+PiByZXByb2R1Y2Ug
dGhpcyBvbiBtdWx0aXBsZSBtYWNoaW5lcy4KPj4KPj4gU29tZSBhZGRpdGlvbmFsIGluZm86Cj4+
IGdwcm9sb2cgdmVyc2lvbjogMS40LjQKPj4gT1M6IEZlZG9yYSAyNCAoYWxzbyBvY2N1cnMgb24g
RmVkb3JhIDI1IGFuZCBGZWRvcmEgUmF3aGlkZSkKPj4gJCBnY2MgLS12ZXJzaW9uCj4+IGdjYyAo
R0NDKSA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKQo+PiAkIHVuYW1lIC1hCj4+IExp
bnV4IG5jMTAgNC42LjUtMzAwLmZjMjQuaTY4NitQQUUgIzEgU01QIFRodSBKdWwgMjggMDE6MzQ6
NDYgVVRDIDIwMTYKPj4gaTY4NiBpNjg2IGkzODYgR05VL0xpbnV4Cj4+Cj4+IEkgYnVpbGQgd2l0
aCAiLi9jb25maWd1cmUgLS13aXRoLWMtZmxhZ3M9Jy12IC1zYXZlLXRlbXBzJyIsIEkndmUKPj4g
YXR0YWNoZWQgdGhlIGZ1bGwgb3V0cHV0IGZyb20gbWFrZS4gSSd2ZSBhbHNvIGF0dGFjaGVkIG1h
Y2hpbmUuaS4KPj4KPj4gV2l0aCBvbGRlciBHQ0MgdmVyc2lvbnMgKDw2KSwgdGhlIGJ1ZyBkb2Vz
IG5vdCBvY2N1ciwgc28gdGhpcyBtaWdodCB3ZWxsCj4+IGJlIGEgYnVnIGluIEdDQzYuCj4+Cj4+
Cj4+IEtpbmQgcmVnYXJkcwo+PiBUaWxsCj4gCj4+IGNkIEVuZ2luZVBsOyBtYWtlIGNvbmZpZwo+
PiBtYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNF
Uy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbCcKPj4gZ2NjIC1tYXJjaD1wZW50aXVtcHJvIC1t
MzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXYgLXNhdmUtdGVtcHMgIC1vIHBsX2NvbmZpZyBwbF9j
b25maWcuYwo+PiBVc2luZyBidWlsdC1pbiBzcGVjcy4KPj4gQ09MTEVDVF9HQ0M9Z2NjCj4+IENP
TExFQ1RfTFRPX1dSQVBQRVI9L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEu
MS9sdG8td3JhcHBlcgo+PiBUYXJnZXQ6IGk2ODYtcmVkaGF0LWxpbnV4Cj4+IENvbmZpZ3VyZWQg
d2l0aDogLi4vY29uZmlndXJlIC0tZW5hYmxlLWJvb3RzdHJhcCAtLWVuYWJsZS1sYW5ndWFnZXM9
YyxjKyssb2JqYyxvYmotYysrLGZvcnRyYW4sYWRhLGdvLGx0byAtLXByZWZpeD0vdXNyIC0tbWFu
ZGlyPS91c3Ivc2hhcmUvbWFuIC0taW5mb2Rpcj0vdXNyL3NoYXJlL2luZm8gLS13aXRoLWJ1Z3Vy
bD1odHRwOi8vYnVnemlsbGEucmVkaGF0LmNvbS9idWd6aWxsYSAtLWVuYWJsZS1zaGFyZWQgLS1l
bmFibGUtdGhyZWFkcz1wb3NpeCAtLWVuYWJsZS1jaGVja2luZz1yZWxlYXNlIC0tZW5hYmxlLW11
bHRpbGliIC0td2l0aC1zeXN0ZW0temxpYiAtLWVuYWJsZS1fX2N4YV9hdGV4aXQgLS1kaXNhYmxl
LWxpYnVud2luZC1leGNlcHRpb25zIC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IC0tZW5hYmxl
LWxpbmtlci1idWlsZC1pZCAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9Z251IC0tZW5hYmxlLXBs
dWdpbiAtLWVuYWJsZS1pbml0ZmluaS1hcnJheSAtLWRpc2FibGUtbGliZ2NqIC0td2l0aC1pc2wg
LS1lbmFibGUtbGlibXB4IC0tZW5hYmxlLWdudS1pbmRpcmVjdC1mdW5jdGlvbiAtLXdpdGgtdHVu
ZT1nZW5lcmljIC0td2l0aC1hcmNoPWk2ODYgLS1idWlsZD1pNjg2LXJlZGhhdC1saW51eAo+PiBU
aHJlYWQgbW9kZWw6IHBvc2l4Cj4+IGdjYyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0
IDYuMS4xLTMpIChHQ0MpIAo+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBy
bycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycg
J3BsX2NvbmZpZycKPj4gIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEv
Y2MxIC1FIC1xdWlldCAtdiBwbF9jb25maWcuYyAtbWFyY2g9cGVudGl1bXBybyAtbTMyIC1mbm8t
c3RyaWN0LWFsaWFzaW5nIC1mcGNoLXByZXByb2Nlc3MgLW8gcGxfY29uZmlnLmkKPj4gaWdub3Jp
bmcgbm9uZXhpc3RlbnQgZGlyZWN0b3J5ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgv
Ni4xLjEvaW5jbHVkZS1maXhlZCIKPj4gaWdub3Jpbmcgbm9uZXhpc3RlbnQgZGlyZWN0b3J5ICIv
dXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vLi4vaTY4Ni1yZWRo
YXQtbGludXgvaW5jbHVkZSIKPj4gI2luY2x1ZGUgIi4uLiIgc2VhcmNoIHN0YXJ0cyBoZXJlOgo+
PiAjaW5jbHVkZSA8Li4uPiBzZWFyY2ggc3RhcnRzIGhlcmU6Cj4+ICAvdXNyL2xpYi9nY2MvaTY4
Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZQo+PiAgL3Vzci9sb2NhbC9pbmNsdWRlCj4+ICAv
dXNyL2luY2x1ZGUKPj4gRW5kIG9mIHNlYXJjaCBsaXN0Lgo+PiBDT0xMRUNUX0dDQ19PUFRJT05T
PSctbWFyY2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAn
LXNhdmUtdGVtcHMnICctbycgJ3BsX2NvbmZpZycKPj4gIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1y
ZWRoYXQtbGludXgvNi4xLjEvY2MxIC1mcHJlcHJvY2Vzc2VkIHBsX2NvbmZpZy5pIC1xdWlldCAt
ZHVtcGJhc2UgcGxfY29uZmlnLmMgLW1hcmNoPXBlbnRpdW1wcm8gLW0zMiAtYXV4YmFzZSBwbF9j
b25maWcgLXZlcnNpb24gLWZuby1zdHJpY3QtYWxpYXNpbmcgLW8gcGxfY29uZmlnLnMKPj4gR05V
IEMxMSAoR0NDKSB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpIChpNjg2
LXJlZGhhdC1saW51eCkKPj4gCWNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNpb24gNi4xLjEgMjAxNjA2
MjEgKFJlZCBIYXQgNi4xLjEtMyksIEdNUCB2ZXJzaW9uIDYuMS4wLCBNUEZSIHZlcnNpb24gMy4x
LjQsIE1QQyB2ZXJzaW9uIDEuMC4yLCBpc2wgdmVyc2lvbiAwLjE0IG9yIDAuMTMKPj4gd2Fybmlu
ZzogR01QIGhlYWRlciB2ZXJzaW9uIDYuMS4wIGRpZmZlcnMgZnJvbSBsaWJyYXJ5IHZlcnNpb24g
Ni4xLjEuCj4+IEdHQyBoZXVyaXN0aWNzOiAtLXBhcmFtIGdnYy1taW4tZXhwYW5kPTEwMCAtLXBh
cmFtIGdnYy1taW4taGVhcHNpemU9MTMxMDcyCj4+IEdOVSBDMTEgKEdDQykgdmVyc2lvbiA2LjEu
MSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAoaTY4Ni1yZWRoYXQtbGludXgpCj4+IAljb21w
aWxlZCBieSBHTlUgQyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpLCBH
TVAgdmVyc2lvbiA2LjEuMCwgTVBGUiB2ZXJzaW9uIDMuMS40LCBNUEMgdmVyc2lvbiAxLjAuMiwg
aXNsIHZlcnNpb24gMC4xNCBvciAwLjEzCj4+IHdhcm5pbmc6IEdNUCBoZWFkZXIgdmVyc2lvbiA2
LjEuMCBkaWZmZXJzIGZyb20gbGlicmFyeSB2ZXJzaW9uIDYuMS4xLgo+PiBHR0MgaGV1cmlzdGlj
czogLS1wYXJhbSBnZ2MtbWluLWV4cGFuZD0xMDAgLS1wYXJhbSBnZ2MtbWluLWhlYXBzaXplPTEz
MTA3Mgo+PiBDb21waWxlciBleGVjdXRhYmxlIGNoZWNrc3VtOiBhYmNlYjEzOGFmNDNhNzhjMzZj
MWFhYTIyOGY1ZjkyYQo+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBybycg
Jy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycgJ3Bs
X2NvbmZpZycKPj4gIGFzIC12IC0tMzIgLW8gcGxfY29uZmlnLm8gcGxfY29uZmlnLnMKPj4gR05V
IGFzc2VtYmxlciB2ZXJzaW9uIDIuMjYuMSAoaTY4Ni1yZWRoYXQtbGludXgpIHVzaW5nIEJGRCB2
ZXJzaW9uIHZlcnNpb24gMi4yNi4xLTEuZmMyNAo+PiBDT01QSUxFUl9QQVRIPS91c3IvbGliZXhl
Yy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvOi91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRo
YXQtbGludXgvNi4xLjEvOi91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvOi91c3Iv
bGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0
LWxpbnV4Lwo+PiBMSUJSQVJZX1BBVEg9L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYu
MS4xLzovdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vOi9saWIv
Oi91c3IvbGliLwo+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBybycgJy1t
MzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycgJ3BsX2Nv
bmZpZycKPj4gIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY29sbGVj
dDIgLXBsdWdpbiAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2xpYmx0
b19wbHVnaW4uc28gLXBsdWdpbi1vcHQ9L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51
eC82LjEuMS9sdG8td3JhcHBlciAtcGx1Z2luLW9wdD0tZnJlc29sdXRpb249cGxfY29uZmlnLnJl
cyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1sZ2NjIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91
Z2g9LWxnY2NfcyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1sYyAtcGx1Z2luLW9wdD0tcGFz
cy10aHJvdWdoPS1sZ2NjIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2NfcyAtLWJ1aWxk
LWlkIC0tbm8tYWRkLW5lZWRlZCAtLWVoLWZyYW1lLWhkciAtLWhhc2gtc3R5bGU9Z251IC1tIGVs
Zl9pMzg2IC1keW5hbWljLWxpbmtlciAvbGliL2xkLWxpbnV4LnNvLjIgLW8gcGxfY29uZmlnIC91
c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi9jcnQxLm8gL3Vzci9s
aWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uL2NydGkubyAvdXNyL2xpYi9n
Y2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY3J0YmVnaW4ubyAtTC91c3IvbGliL2djYy9pNjg2
LXJlZGhhdC1saW51eC82LjEuMSAtTC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEu
MS8uLi8uLi8uLiBwbF9jb25maWcubyAtbGdjYyAtLWFzLW5lZWRlZCAtbGdjY19zIC0tbm8tYXMt
bmVlZGVkIC1sYyAtbGdjYyAtLWFzLW5lZWRlZCAtbGdjY19zIC0tbm8tYXMtbmVlZGVkIC91c3Iv
bGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jcnRlbmQubyAvdXNyL2xpYi9nY2MvaTY4
Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vY3J0bi5vCj4+IENPTExFQ1RfR0NDX09QVElP
TlM9Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYn
ICctc2F2ZS10ZW1wcycgJy1vJyAncGxfY29uZmlnJwo+PiAuL3BsX2NvbmZpZwo+Pgo+PiAJLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAJLS0tIEdOVSBQUk9MT0cgSU5TVEFMTEFU
SU9OIC0tLQo+PiAJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pgo+PiBHTlUgUHJv
bG9nIHZlcnNpb246IDEuNC40IChBdWcgMTggMjAxNikKPj4gT3BlcmF0aW5nIHN5c3RlbSAgOiBs
aW51eC1nbnUKPj4gUHJvY2Vzc29yICAgICAgICAgOiBpNjg2Cj4+IFNpemUgb2YgYSBXQU0gd29y
ZDogMzIgYml0cwo+PiBDIGNvbXBpbGVyICAgICAgICA6IGdjYwo+PiBDIGZsYWdzICAgICAgICAg
ICA6IC12IC1zYXZlLXRlbXBzCj4+IEMgZmxhZ3MgbWFjaGluZSAgIDogLW1hcmNoPXBlbnRpdW1w
cm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZwo+PiBBc3NlbWJsZXIgICAgICAgICA6IGFzCj4+
IEFzc2VtYmxlciBmbGFncyAgIDogLS0zMgo+PiBMb2FkZXIgZmxhZ3MgICAgICA6IAo+PiBMb2Fk
ZXIgbGlicmFyaWVzICA6IC1sbQo+PiBVc2UgbGluZSBlZGl0b3IgICA6IFllcwo+PiBVc2UgcGlw
ZWQgY29uc3VsdCA6IFllcwo+PiBVc2Ugc29ja2V0cyAgICAgICA6IFllcwo+PiBVc2UgRkQgc29s
dmVyICAgICA6IFllcwo+PiBVc2UgZmFzdCBjYWxsICAgICA6IFllcwo+PiBVc2UgbWFjaGluZSBy
ZWdzLiA6IFllcwo+PiBVc2VkIHJlZ2lzdGVyKHMpICA6IGVieCAoVFIpICAKPj4KPj4gCS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pgo+PiAoY2QgLi4vVG9wQ29tcDsgbWFrZSBncGxj
KQo+PiBtYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09V
UkNFUy9ncHJvbG9nLTEuNC40L3NyYy9Ub3BDb21wJwo+PiBnY2MgLW1hcmNoPXBlbnRpdW1wcm8g
LW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtdiAtc2F2ZS10ZW1wcyAtbyBncGxjIHRvcF9jb21w
LmMgLWxtCj4+IFVzaW5nIGJ1aWx0LWluIHNwZWNzLgo+PiBDT0xMRUNUX0dDQz1nY2MKPj4gQ09M
TEVDVF9MVE9fV1JBUFBFUj0vdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x
L2x0by13cmFwcGVyCj4+IFRhcmdldDogaTY4Ni1yZWRoYXQtbGludXgKPj4gQ29uZmlndXJlZCB3
aXRoOiAuLi9jb25maWd1cmUgLS1lbmFibGUtYm9vdHN0cmFwIC0tZW5hYmxlLWxhbmd1YWdlcz1j
LGMrKyxvYmpjLG9iai1jKyssZm9ydHJhbixhZGEsZ28sbHRvIC0tcHJlZml4PS91c3IgLS1tYW5k
aXI9L3Vzci9zaGFyZS9tYW4gLS1pbmZvZGlyPS91c3Ivc2hhcmUvaW5mbyAtLXdpdGgtYnVndXJs
PWh0dHA6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1Z3ppbGxhIC0tZW5hYmxlLXNoYXJlZCAtLWVu
YWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2UgLS1lbmFibGUtbXVs
dGlsaWIgLS13aXRoLXN5c3RlbS16bGliIC0tZW5hYmxlLV9fY3hhX2F0ZXhpdCAtLWRpc2FibGUt
bGlidW53aW5kLWV4Y2VwdGlvbnMgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QgLS1lbmFibGUt
bGlua2VyLWJ1aWxkLWlkIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUgLS1lbmFibGUtcGx1
Z2luIC0tZW5hYmxlLWluaXRmaW5pLWFycmF5IC0tZGlzYWJsZS1saWJnY2ogLS13aXRoLWlzbCAt
LWVuYWJsZS1saWJtcHggLS1lbmFibGUtZ251LWluZGlyZWN0LWZ1bmN0aW9uIC0td2l0aC10dW5l
PWdlbmVyaWMgLS13aXRoLWFyY2g9aTY4NiAtLWJ1aWxkPWk2ODYtcmVkaGF0LWxpbnV4Cj4+IFRo
cmVhZCBtb2RlbDogcG9zaXgKPj4gZ2NjIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQg
Ni4xLjEtMykgKEdDQykgCj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJv
JyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAn
Z3BsYycKPj4gIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY2MxIC1F
IC1xdWlldCAtdiB0b3BfY29tcC5jIC1tYXJjaD1wZW50aXVtcHJvIC1tMzIgLWZuby1zdHJpY3Qt
YWxpYXNpbmcgLWZwY2gtcHJlcHJvY2VzcyAtbyB0b3BfY29tcC5pCj4+IGlnbm9yaW5nIG5vbmV4
aXN0ZW50IGRpcmVjdG9yeSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2lu
Y2x1ZGUtZml4ZWQiCj4+IGlnbm9yaW5nIG5vbmV4aXN0ZW50IGRpcmVjdG9yeSAiL3Vzci9saWIv
Z2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uLy4uL2k2ODYtcmVkaGF0LWxpbnV4
L2luY2x1ZGUiCj4+ICNpbmNsdWRlICIuLi4iIHNlYXJjaCBzdGFydHMgaGVyZToKPj4gI2luY2x1
ZGUgPC4uLj4gc2VhcmNoIHN0YXJ0cyBoZXJlOgo+PiAgL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0
LWxpbnV4LzYuMS4xL2luY2x1ZGUKPj4gIC91c3IvbG9jYWwvaW5jbHVkZQo+PiAgL3Vzci9pbmNs
dWRlCj4+IEVuZCBvZiBzZWFyY2ggbGlzdC4KPj4gQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNo
PXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJpY3QtYWxpYXNpbmcnICctdicgJy1zYXZlLXRl
bXBzJyAnLW8nICdncGxjJwo+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82
LjEuMS9jYzEgLWZwcmVwcm9jZXNzZWQgdG9wX2NvbXAuaSAtcXVpZXQgLWR1bXBiYXNlIHRvcF9j
b21wLmMgLW1hcmNoPXBlbnRpdW1wcm8gLW0zMiAtYXV4YmFzZSB0b3BfY29tcCAtdmVyc2lvbiAt
Zm5vLXN0cmljdC1hbGlhc2luZyAtbyB0b3BfY29tcC5zCj4+IEdOVSBDMTEgKEdDQykgdmVyc2lv
biA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAoaTY4Ni1yZWRoYXQtbGludXgpCj4+
IAljb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4x
LTMpLCBHTVAgdmVyc2lvbiA2LjEuMCwgTVBGUiB2ZXJzaW9uIDMuMS40LCBNUEMgdmVyc2lvbiAx
LjAuMiwgaXNsIHZlcnNpb24gMC4xNCBvciAwLjEzCj4+IHdhcm5pbmc6IEdNUCBoZWFkZXIgdmVy
c2lvbiA2LjEuMCBkaWZmZXJzIGZyb20gbGlicmFyeSB2ZXJzaW9uIDYuMS4xLgo+PiBHR0MgaGV1
cmlzdGljczogLS1wYXJhbSBnZ2MtbWluLWV4cGFuZD0xMDAgLS1wYXJhbSBnZ2MtbWluLWhlYXBz
aXplPTEzMTA3Mgo+PiBHTlUgQzExIChHQ0MpIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBI
YXQgNi4xLjEtMykgKGk2ODYtcmVkaGF0LWxpbnV4KQo+PiAJY29tcGlsZWQgYnkgR05VIEMgdmVy
c2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSwgR01QIHZlcnNpb24gNi4xLjAs
IE1QRlIgdmVyc2lvbiAzLjEuNCwgTVBDIHZlcnNpb24gMS4wLjIsIGlzbCB2ZXJzaW9uIDAuMTQg
b3IgMC4xMwo+PiB3YXJuaW5nOiBHTVAgaGVhZGVyIHZlcnNpb24gNi4xLjAgZGlmZmVycyBmcm9t
IGxpYnJhcnkgdmVyc2lvbiA2LjEuMS4KPj4gR0dDIGhldXJpc3RpY3M6IC0tcGFyYW0gZ2djLW1p
bi1leHBhbmQ9MTAwIC0tcGFyYW0gZ2djLW1pbi1oZWFwc2l6ZT0xMzEwNzIKPj4gQ29tcGlsZXIg
ZXhlY3V0YWJsZSBjaGVja3N1bTogYWJjZWIxMzhhZjQzYTc4YzM2YzFhYWEyMjhmNWY5MmEKPj4g
Q09MTEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJp
Y3QtYWxpYXNpbmcnICctdicgJy1zYXZlLXRlbXBzJyAnLW8nICdncGxjJwo+PiAgYXMgLXYgLS0z
MiAtbyB0b3BfY29tcC5vIHRvcF9jb21wLnMKPj4gR05VIGFzc2VtYmxlciB2ZXJzaW9uIDIuMjYu
MSAoaTY4Ni1yZWRoYXQtbGludXgpIHVzaW5nIEJGRCB2ZXJzaW9uIHZlcnNpb24gMi4yNi4xLTEu
ZmMyNAo+PiBDT01QSUxFUl9QQVRIPS91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgv
Ni4xLjEvOi91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvOi91c3IvbGli
ZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvOi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51
eC82LjEuMS86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4Lwo+PiBMSUJSQVJZX1BBVEg9
L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLzovdXNyL2xpYi9nY2MvaTY4Ni1y
ZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vOi9saWIvOi91c3IvbGliLwo+PiBDT0xMRUNUX0dD
Q19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2lu
ZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycgJ2dwbGMnCj4+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2
ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NvbGxlY3QyIC1wbHVnaW4gL3Vzci9saWJleGVjL2djYy9p
Njg2LXJlZGhhdC1saW51eC82LjEuMS9saWJsdG9fcGx1Z2luLnNvIC1wbHVnaW4tb3B0PS91c3Iv
bGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvbHRvLXdyYXBwZXIgLXBsdWdpbi1v
cHQ9LWZyZXNvbHV0aW9uPXRvcF9jb21wLnJlcyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1s
Z2NjIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2NfcyAtcGx1Z2luLW9wdD0tcGFzcy10
aHJvdWdoPS1sYyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1sZ2NjIC1wbHVnaW4tb3B0PS1w
YXNzLXRocm91Z2g9LWxnY2NfcyAtLWJ1aWxkLWlkIC0tbm8tYWRkLW5lZWRlZCAtLWVoLWZyYW1l
LWhkciAtLWhhc2gtc3R5bGU9Z251IC1tIGVsZl9pMzg2IC1keW5hbWljLWxpbmtlciAvbGliL2xk
LWxpbnV4LnNvLjIgLW8gZ3BsYyAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEv
Li4vLi4vLi4vY3J0MS5vIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8u
Li8uLi9jcnRpLm8gL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NydGJlZ2lu
Lm8gLUwvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEgLUwvdXNyL2xpYi9nY2Mv
aTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4gdG9wX2NvbXAubyAtbG0gLWxnY2MgLS1h
cy1uZWVkZWQgLWxnY2NfcyAtLW5vLWFzLW5lZWRlZCAtbGMgLWxnY2MgLS1hcy1uZWVkZWQgLWxn
Y2NfcyAtLW5vLWFzLW5lZWRlZCAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEv
Y3J0ZW5kLm8gL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uL2Ny
dG4ubwo+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBybycgJy1tMzInICct
Zm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycgJ2dwbGMnCj4+IG1h
a2VbMl06IExlYXZpbmcgZGlyZWN0b3J5ICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3By
b2xvZy0xLjQuNC9zcmMvVG9wQ29tcCcKPj4gbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9o
b21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbCcKPj4g
LiAuL1NFVFZBUlM7Zm9yIGkgaW4gRW5naW5lUGwgVG9wQ29tcCBXYW0yTWEgTWEyQXNtIExpbmVk
aXQgQmlwc1BsIFBsMldhbSBGZDJDIEVuZ2luZUZEIEJpcHNGRDtkbyAoY2QgJGk7IG1ha2UpIHx8
IGV4aXQgMTsgZG9uZTtcCj4+IChjZCBUb3BDb21wOyBtYWtlIHRvcC1sZXZlbCkgfHwgZXhpdCAx
O1wKPj4gKGNkIFBsMldhbTsgbWFrZSBzdGFnZTIpCj4+IG1ha2VbMV06IEVudGVyaW5nIGRpcmVj
dG9yeSAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2lu
ZVBsJwo+PiBnY2MgLW1hcmNoPXBlbnRpdW1wcm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAt
diAtc2F2ZS10ZW1wcyAgLW8gY3BwX2hlYWRlcnMgY3BwX2hlYWRlcnMuYwo+PiBVc2luZyBidWls
dC1pbiBzcGVjcy4KPj4gQ09MTEVDVF9HQ0M9Z2NjCj4+IENPTExFQ1RfTFRPX1dSQVBQRVI9L3Vz
ci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9sdG8td3JhcHBlcgo+PiBUYXJn
ZXQ6IGk2ODYtcmVkaGF0LWxpbnV4Cj4+IENvbmZpZ3VyZWQgd2l0aDogLi4vY29uZmlndXJlIC0t
ZW5hYmxlLWJvb3RzdHJhcCAtLWVuYWJsZS1sYW5ndWFnZXM9YyxjKyssb2JqYyxvYmotYysrLGZv
cnRyYW4sYWRhLGdvLGx0byAtLXByZWZpeD0vdXNyIC0tbWFuZGlyPS91c3Ivc2hhcmUvbWFuIC0t
aW5mb2Rpcj0vdXNyL3NoYXJlL2luZm8gLS13aXRoLWJ1Z3VybD1odHRwOi8vYnVnemlsbGEucmVk
aGF0LmNvbS9idWd6aWxsYSAtLWVuYWJsZS1zaGFyZWQgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCAt
LWVuYWJsZS1jaGVja2luZz1yZWxlYXNlIC0tZW5hYmxlLW11bHRpbGliIC0td2l0aC1zeXN0ZW0t
emxpYiAtLWVuYWJsZS1fX2N4YV9hdGV4aXQgLS1kaXNhYmxlLWxpYnVud2luZC1leGNlcHRpb25z
IC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCAtLXdp
dGgtbGlua2VyLWhhc2gtc3R5bGU9Z251IC0tZW5hYmxlLXBsdWdpbiAtLWVuYWJsZS1pbml0Zmlu
aS1hcnJheSAtLWRpc2FibGUtbGliZ2NqIC0td2l0aC1pc2wgLS1lbmFibGUtbGlibXB4IC0tZW5h
YmxlLWdudS1pbmRpcmVjdC1mdW5jdGlvbiAtLXdpdGgtdHVuZT1nZW5lcmljIC0td2l0aC1hcmNo
PWk2ODYgLS1idWlsZD1pNjg2LXJlZGhhdC1saW51eAo+PiBUaHJlYWQgbW9kZWw6IHBvc2l4Cj4+
IGdjYyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpIChHQ0MpIAo+PiBD
T0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmlj
dC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycgJ2NwcF9oZWFkZXJzJwo+PiAgL3Vz
ci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jYzEgLUUgLXF1aWV0IC12IGNw
cF9oZWFkZXJzLmMgLW1hcmNoPXBlbnRpdW1wcm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAt
ZnBjaC1wcmVwcm9jZXNzIC1vIGNwcF9oZWFkZXJzLmkKPj4gaWdub3Jpbmcgbm9uZXhpc3RlbnQg
ZGlyZWN0b3J5ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS1m
aXhlZCIKPj4gaWdub3Jpbmcgbm9uZXhpc3RlbnQgZGlyZWN0b3J5ICIvdXNyL2xpYi9nY2MvaTY4
Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vLi4vaTY4Ni1yZWRoYXQtbGludXgvaW5jbHVk
ZSIKPj4gI2luY2x1ZGUgIi4uLiIgc2VhcmNoIHN0YXJ0cyBoZXJlOgo+PiAjaW5jbHVkZSA8Li4u
PiBzZWFyY2ggc3RhcnRzIGhlcmU6Cj4+ICAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgv
Ni4xLjEvaW5jbHVkZQo+PiAgL3Vzci9sb2NhbC9pbmNsdWRlCj4+ICAvdXNyL2luY2x1ZGUKPj4g
RW5kIG9mIHNlYXJjaCBsaXN0Lgo+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1
bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICct
bycgJ2NwcF9oZWFkZXJzJwo+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82
LjEuMS9jYzEgLWZwcmVwcm9jZXNzZWQgY3BwX2hlYWRlcnMuaSAtcXVpZXQgLWR1bXBiYXNlIGNw
cF9oZWFkZXJzLmMgLW1hcmNoPXBlbnRpdW1wcm8gLW0zMiAtYXV4YmFzZSBjcHBfaGVhZGVycyAt
dmVyc2lvbiAtZm5vLXN0cmljdC1hbGlhc2luZyAtbyBjcHBfaGVhZGVycy5zCj4+IEdOVSBDMTEg
KEdDQykgdmVyc2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAoaTY4Ni1yZWRo
YXQtbGludXgpCj4+IAljb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChS
ZWQgSGF0IDYuMS4xLTMpLCBHTVAgdmVyc2lvbiA2LjEuMCwgTVBGUiB2ZXJzaW9uIDMuMS40LCBN
UEMgdmVyc2lvbiAxLjAuMiwgaXNsIHZlcnNpb24gMC4xNCBvciAwLjEzCj4+IHdhcm5pbmc6IEdN
UCBoZWFkZXIgdmVyc2lvbiA2LjEuMCBkaWZmZXJzIGZyb20gbGlicmFyeSB2ZXJzaW9uIDYuMS4x
Lgo+PiBHR0MgaGV1cmlzdGljczogLS1wYXJhbSBnZ2MtbWluLWV4cGFuZD0xMDAgLS1wYXJhbSBn
Z2MtbWluLWhlYXBzaXplPTEzMTA3Mgo+PiBHTlUgQzExIChHQ0MpIHZlcnNpb24gNi4xLjEgMjAx
NjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKGk2ODYtcmVkaGF0LWxpbnV4KQo+PiAJY29tcGlsZWQg
YnkgR05VIEMgdmVyc2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSwgR01QIHZl
cnNpb24gNi4xLjAsIE1QRlIgdmVyc2lvbiAzLjEuNCwgTVBDIHZlcnNpb24gMS4wLjIsIGlzbCB2
ZXJzaW9uIDAuMTQgb3IgMC4xMwo+PiB3YXJuaW5nOiBHTVAgaGVhZGVyIHZlcnNpb24gNi4xLjAg
ZGlmZmVycyBmcm9tIGxpYnJhcnkgdmVyc2lvbiA2LjEuMS4KPj4gR0dDIGhldXJpc3RpY3M6IC0t
cGFyYW0gZ2djLW1pbi1leHBhbmQ9MTAwIC0tcGFyYW0gZ2djLW1pbi1oZWFwc2l6ZT0xMzEwNzIK
Pj4gQ29tcGlsZXIgZXhlY3V0YWJsZSBjaGVja3N1bTogYWJjZWIxMzhhZjQzYTc4YzM2YzFhYWEy
MjhmNWY5MmEKPj4gQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICctbTMy
JyAnLWZuby1zdHJpY3QtYWxpYXNpbmcnICctdicgJy1zYXZlLXRlbXBzJyAnLW8nICdjcHBfaGVh
ZGVycycKPj4gIGFzIC12IC0tMzIgLW8gY3BwX2hlYWRlcnMubyBjcHBfaGVhZGVycy5zCj4+IEdO
VSBhc3NlbWJsZXIgdmVyc2lvbiAyLjI2LjEgKGk2ODYtcmVkaGF0LWxpbnV4KSB1c2luZyBCRkQg
dmVyc2lvbiB2ZXJzaW9uIDIuMjYuMS0xLmZjMjQKPj4gQ09NUElMRVJfUEFUSD0vdXNyL2xpYmV4
ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLzovdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVk
aGF0LWxpbnV4LzYuMS4xLzovdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzovdXNy
L2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvOi91c3IvbGliL2djYy9pNjg2LXJlZGhh
dC1saW51eC8KPj4gTElCUkFSWV9QQVRIPS91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82
LjEuMS86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uLzovbGli
LzovdXNyL2xpYi8KPj4gQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICct
bTMyJyAnLWZuby1zdHJpY3QtYWxpYXNpbmcnICctdicgJy1zYXZlLXRlbXBzJyAnLW8nICdjcHBf
aGVhZGVycycKPj4gIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY29s
bGVjdDIgLXBsdWdpbiAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2xp
Ymx0b19wbHVnaW4uc28gLXBsdWdpbi1vcHQ9L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1s
aW51eC82LjEuMS9sdG8td3JhcHBlciAtcGx1Z2luLW9wdD0tZnJlc29sdXRpb249Y3BwX2hlYWRl
cnMucmVzIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBsdWdpbi1vcHQ9LXBhc3Mt
dGhyb3VnaD0tbGdjY19zIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxjIC1wbHVnaW4tb3B0
PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjY19zIC0t
YnVpbGQtaWQgLS1uby1hZGQtbmVlZGVkIC0tZWgtZnJhbWUtaGRyIC0taGFzaC1zdHlsZT1nbnUg
LW0gZWxmX2kzODYgLWR5bmFtaWMtbGlua2VyIC9saWIvbGQtbGludXguc28uMiAtbyBjcHBfaGVh
ZGVycyAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vY3J0MS5v
IC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi9jcnRpLm8gL3Vz
ci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NydGJlZ2luLm8gLUwvdXNyL2xpYi9n
Y2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEgLUwvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGlu
dXgvNi4xLjEvLi4vLi4vLi4gY3BwX2hlYWRlcnMubyAtbGdjYyAtLWFzLW5lZWRlZCAtbGdjY19z
IC0tbm8tYXMtbmVlZGVkIC1sYyAtbGdjYyAtLWFzLW5lZWRlZCAtbGdjY19zIC0tbm8tYXMtbmVl
ZGVkIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jcnRlbmQubyAvdXNyL2xp
Yi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vY3J0bi5vCj4+IENPTExFQ1Rf
R0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFz
aW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAnY3BwX2hlYWRlcnMnCj4+IGdwbGMgLWMgLUMg
Jy12IC1zYXZlLXRlbXBzJyBtYWNoaW5lLmMKPj4gVXNpbmcgYnVpbHQtaW4gc3BlY3MuCj4+IENP
TExFQ1RfR0NDPWdjYwo+PiBUYXJnZXQ6IGk2ODYtcmVkaGF0LWxpbnV4Cj4+IENvbmZpZ3VyZWQg
d2l0aDogLi4vY29uZmlndXJlIC0tZW5hYmxlLWJvb3RzdHJhcCAtLWVuYWJsZS1sYW5ndWFnZXM9
YyxjKyssb2JqYyxvYmotYysrLGZvcnRyYW4sYWRhLGdvLGx0byAtLXByZWZpeD0vdXNyIC0tbWFu
ZGlyPS91c3Ivc2hhcmUvbWFuIC0taW5mb2Rpcj0vdXNyL3NoYXJlL2luZm8gLS13aXRoLWJ1Z3Vy
bD1odHRwOi8vYnVnemlsbGEucmVkaGF0LmNvbS9idWd6aWxsYSAtLWVuYWJsZS1zaGFyZWQgLS1l
bmFibGUtdGhyZWFkcz1wb3NpeCAtLWVuYWJsZS1jaGVja2luZz1yZWxlYXNlIC0tZW5hYmxlLW11
bHRpbGliIC0td2l0aC1zeXN0ZW0temxpYiAtLWVuYWJsZS1fX2N4YV9hdGV4aXQgLS1kaXNhYmxl
LWxpYnVud2luZC1leGNlcHRpb25zIC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IC0tZW5hYmxl
LWxpbmtlci1idWlsZC1pZCAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9Z251IC0tZW5hYmxlLXBs
dWdpbiAtLWVuYWJsZS1pbml0ZmluaS1hcnJheSAtLWRpc2FibGUtbGliZ2NqIC0td2l0aC1pc2wg
LS1lbmFibGUtbGlibXB4IC0tZW5hYmxlLWdudS1pbmRpcmVjdC1mdW5jdGlvbiAtLXdpdGgtdHVu
ZT1nZW5lcmljIC0td2l0aC1hcmNoPWk2ODYgLS1idWlsZD1pNjg2LXJlZGhhdC1saW51eAo+PiBU
aHJlYWQgbW9kZWw6IHBvc2l4Cj4+IGdjYyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0
IDYuMS4xLTMpIChHQ0MpIAo+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctdicgJy1zYXZlLXRlbXBz
JyAnLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJpY3QtYWxpYXNpbmcnICctZmZp
eGVkLWVieCcgJy1jJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0x
LjQuNC9zcmMvRW5naW5lUGwnICctSScgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJv
bG9nLTEuNC40L3NyYy9CaXBzUGwnICctSScgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9n
cHJvbG9nLTEuNC40L3NyYy9FbmdpbmVGRCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VS
Q0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNGRCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9T
T1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0xpbmVkaXQnICctSScgJy9ob21lL3RpbGwvcnBtYnVp
bGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9XMzJHVUlDb25zJyAnLW8nICdtYWNoaW5lLm8n
Cj4+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NjMSAtRSAtcXVp
ZXQgLXYgLUkgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0Vu
Z2luZVBsIC1JIC9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9C
aXBzUGwgLUkgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0Vu
Z2luZUZEIC1JIC9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9C
aXBzRkQgLUkgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0xp
bmVkaXQgLUkgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL1cz
MkdVSUNvbnMgbWFjaGluZS5jIC1tYXJjaD1wZW50aXVtcHJvIC1tMzIgLWZuby1zdHJpY3QtYWxp
YXNpbmcgLWZmaXhlZC1lYnggLWZwY2gtcHJlcHJvY2VzcyAtbyBtYWNoaW5lLmkKPj4gaWdub3Jp
bmcgbm9uZXhpc3RlbnQgZGlyZWN0b3J5ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgv
Ni4xLjEvaW5jbHVkZS1maXhlZCIKPj4gaWdub3Jpbmcgbm9uZXhpc3RlbnQgZGlyZWN0b3J5ICIv
dXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vLi4vaTY4Ni1yZWRo
YXQtbGludXgvaW5jbHVkZSIKPj4gI2luY2x1ZGUgIi4uLiIgc2VhcmNoIHN0YXJ0cyBoZXJlOgo+
PiAjaW5jbHVkZSA8Li4uPiBzZWFyY2ggc3RhcnRzIGhlcmU6Cj4+ICAvaG9tZS90aWxsL3JwbWJ1
aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvRW5naW5lUGwKPj4gIC9ob21lL3RpbGwvcnBt
YnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9CaXBzUGwKPj4gIC9ob21lL3RpbGwvcnBt
YnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVGRAo+PiAgL2hvbWUvdGlsbC9y
cG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNGRAo+PiAgL2hvbWUvdGlsbC9y
cG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0xpbmVkaXQKPj4gIC9ob21lL3RpbGwv
cnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9XMzJHVUlDb25zCj4+ICAvdXNyL2xp
Yi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZQo+PiAgL3Vzci9sb2NhbC9pbmNs
dWRlCj4+ICAvdXNyL2luY2x1ZGUKPj4gRW5kIG9mIHNlYXJjaCBsaXN0Lgo+PiBDT0xMRUNUX0dD
Q19PUFRJT05TPSctdicgJy1zYXZlLXRlbXBzJyAnLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAn
LWZuby1zdHJpY3QtYWxpYXNpbmcnICctZmZpeGVkLWVieCcgJy1jJyAnLUknICcvaG9tZS90aWxs
L3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvRW5naW5lUGwnICctSScgJy9ob21l
L3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9CaXBzUGwnICctSScgJy9o
b21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVGRCcgJy1J
JyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNGRCcg
Jy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0xpbmVk
aXQnICctSScgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9X
MzJHVUlDb25zJyAnLW8nICdtYWNoaW5lLm8nCj4+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVk
aGF0LWxpbnV4LzYuMS4xL2NjMSAtZnByZXByb2Nlc3NlZCBtYWNoaW5lLmkgLXF1aWV0IC1kdW1w
YmFzZSBtYWNoaW5lLmMgLW1hcmNoPXBlbnRpdW1wcm8gLW0zMiAtYXV4YmFzZS1zdHJpcCBtYWNo
aW5lLm8gLXZlcnNpb24gLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZmaXhlZC1lYnggLW8gbWFjaGlu
ZS5zCj4+IEdOVSBDMTEgKEdDQykgdmVyc2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEu
MS0zKSAoaTY4Ni1yZWRoYXQtbGludXgpCj4+IAljb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uIDYu
MS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpLCBHTVAgdmVyc2lvbiA2LjEuMCwgTVBGUiB2
ZXJzaW9uIDMuMS40LCBNUEMgdmVyc2lvbiAxLjAuMiwgaXNsIHZlcnNpb24gMC4xNCBvciAwLjEz
Cj4+IHdhcm5pbmc6IEdNUCBoZWFkZXIgdmVyc2lvbiA2LjEuMCBkaWZmZXJzIGZyb20gbGlicmFy
eSB2ZXJzaW9uIDYuMS4xLgo+PiBHR0MgaGV1cmlzdGljczogLS1wYXJhbSBnZ2MtbWluLWV4cGFu
ZD0xMDAgLS1wYXJhbSBnZ2MtbWluLWhlYXBzaXplPTEzMTA3Mgo+PiBHTlUgQzExIChHQ0MpIHZl
cnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKGk2ODYtcmVkaGF0LWxpbnV4
KQo+PiAJY29tcGlsZWQgYnkgR05VIEMgdmVyc2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2
LjEuMS0zKSwgR01QIHZlcnNpb24gNi4xLjAsIE1QRlIgdmVyc2lvbiAzLjEuNCwgTVBDIHZlcnNp
b24gMS4wLjIsIGlzbCB2ZXJzaW9uIDAuMTQgb3IgMC4xMwo+PiB3YXJuaW5nOiBHTVAgaGVhZGVy
IHZlcnNpb24gNi4xLjAgZGlmZmVycyBmcm9tIGxpYnJhcnkgdmVyc2lvbiA2LjEuMS4KPj4gR0dD
IGhldXJpc3RpY3M6IC0tcGFyYW0gZ2djLW1pbi1leHBhbmQ9MTAwIC0tcGFyYW0gZ2djLW1pbi1o
ZWFwc2l6ZT0xMzEwNzIKPj4gQ29tcGlsZXIgZXhlY3V0YWJsZSBjaGVja3N1bTogYWJjZWIxMzhh
ZjQzYTc4YzM2YzFhYWEyMjhmNWY5MmEKPj4gbWFjaGluZS5jOiBJbiBmdW5jdGlvbiDigJhQbF9N
X1JhbmRvbWl6ZeKAmToKPj4gbWFjaGluZS5jOjM4NjoxOiBpbnRlcm5hbCBjb21waWxlciBlcnJv
cjogU2VnbWVudGF0aW9uIGZhdWx0Cj4+ICB9Cj4+ICBeCj4+IFBsZWFzZSBzdWJtaXQgYSBmdWxs
IGJ1ZyByZXBvcnQsCj4+IHdpdGggcHJlcHJvY2Vzc2VkIHNvdXJjZSBpZiBhcHByb3ByaWF0ZS4K
Pj4gU2VlIDxodHRwOi8vYnVnemlsbGEucmVkaGF0LmNvbS9idWd6aWxsYT4gZm9yIGluc3RydWN0
aW9ucy4KPj4gUHJlcHJvY2Vzc2VkIHNvdXJjZSBzdG9yZWQgaW50byAvdG1wL2NjY1hDQVdNLm91
dCBmaWxlLCBwbGVhc2UgYXR0YWNoIHRoaXMgdG8geW91ciBidWdyZXBvcnQuCj4+IGNvbXBpbGF0
aW9uIGZhaWxlZAo+PiBNYWtlZmlsZTozMDogcmVjaXBlIGZvciB0YXJnZXQgJ21hY2hpbmUubycg
ZmFpbGVkCj4+IG1ha2VbMV06ICoqKiBbbWFjaGluZS5vXSBFcnJvciAxCj4+IG1ha2VbMV06IExl
YXZpbmcgZGlyZWN0b3J5ICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQu
NC9zcmMvRW5naW5lUGwnCj4+IE1ha2VmaWxlOjQ1OiByZWNpcGUgZm9yIHRhcmdldCAnYWxsJyBm
YWlsZWQKPj4gbWFrZTogKioqIFthbGxdIEVycm9yIDEKPiAKPj4gIyAxICJtYWNoaW5lLmMiCj4+
ICMgMSAiPGJ1aWx0LWluPiIKPj4gIyAxICI8Y29tbWFuZC1saW5lPiIKPj4gIyAzMSAiPGNvbW1h
bmQtbGluZT4iCj4+ICMgMSAiL3Vzci9pbmNsdWRlL3N0ZGMtcHJlZGVmLmgiIDEgMyA0Cj4+ICMg
MzIgIjxjb21tYW5kLWxpbmU+IiAyCj4+ICMgMSAibWFjaGluZS5jIgo+PiAjIDM5ICJtYWNoaW5l
LmMiCj4+ICMgMSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDEgMyA0Cj4+ICMgMjcgIi91c3IvaW5j
bHVkZS9zdGRpby5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMSAzIDQK
Pj4gIyAzNjggIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1
ZGUvc3lzL2NkZWZzLmgiIDEgMyA0Cj4+ICMgNDEwICIvdXNyL2luY2x1ZGUvc3lzL2NkZWZzLmgi
IDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3dvcmRzaXplLmgiIDEgMyA0Cj4+ICMgNDEx
ICIvdXNyL2luY2x1ZGUvc3lzL2NkZWZzLmgiIDIgMyA0Cj4+ICMgMzY5ICIvdXNyL2luY2x1ZGUv
ZmVhdHVyZXMuaCIgMiAzIDQKPj4gIyAzOTIgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAzIDQK
Pj4gIyAxICIvdXNyL2luY2x1ZGUvZ251L3N0dWJzLmgiIDEgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+
Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2dudS9zdHVicy0zMi5oIiAxIDMgNAo+PiAjIDggIi91c3Iv
aW5jbHVkZS9nbnUvc3R1YnMuaCIgMiAzIDQKPj4gIyAzOTMgIi91c3IvaW5jbHVkZS9mZWF0dXJl
cy5oIiAyIDMgNAo+PiAjIDI4ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQKPj4KPj4KPj4K
Pj4KPj4KPj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVk
ZS9zdGRkZWYuaCIgMSAzIDQKPj4gIyAyMTYgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51
eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAzIDQKPj4KPj4gIyAyMTYgIi91c3IvbGliL2djYy9p
Njg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAzIDQKPj4gdHlwZWRlZiB1
bnNpZ25lZCBpbnQgc2l6ZV90Owo+PiAjIDM0ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQK
Pj4KPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAxIDMgNAo+PiAjIDI3ICIvdXNy
L2luY2x1ZGUvYml0cy90eXBlcy5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jk
c2l6ZS5oIiAxIDMgNAo+PiAjIDI4ICIvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAyIDMgNAo+
Pgo+Pgo+PiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191X2NoYXI7Cj4+IHR5cGVkZWYgdW5zaWdu
ZWQgc2hvcnQgaW50IF9fdV9zaG9ydDsKPj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191X2ludDsK
Pj4gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3VfbG9uZzsKPj4KPj4KPj4gdHlwZWRlZiBz
aWduZWQgY2hhciBfX2ludDhfdDsKPj4gdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdWludDhfdDsK
Pj4gdHlwZWRlZiBzaWduZWQgc2hvcnQgaW50IF9faW50MTZfdDsKPj4gdHlwZWRlZiB1bnNpZ25l
ZCBzaG9ydCBpbnQgX191aW50MTZfdDsKPj4gdHlwZWRlZiBzaWduZWQgaW50IF9faW50MzJfdDsK
Pj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191aW50MzJfdDsKPj4KPj4KPj4KPj4KPj4gX19leHRl
bnNpb25fXyB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50IF9faW50NjRfdDsKPj4gX19leHRl
bnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX191aW50NjRfdDsKPj4KPj4K
Pj4KPj4KPj4KPj4KPj4KPj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgbG9uZyBpbnQgX19x
dWFkX3Q7Cj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9f
dV9xdWFkX3Q7Cj4+ICMgMTIxICIvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAzIDQKPj4gIyAx
ICIvdXNyL2luY2x1ZGUvYml0cy90eXBlc2l6ZXMuaCIgMSAzIDQKPj4gIyAxMjIgIi91c3IvaW5j
bHVkZS9iaXRzL3R5cGVzLmgiIDIgMyA0Cj4+Cj4+Cj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBf
X3VfcXVhZF90IF9fZGV2X3Q7Cj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBpbnQg
X191aWRfdDsKPj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX2dpZF90Owo+
PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgX19pbm9fdDsKPj4gX19l
eHRlbnNpb25fXyB0eXBlZGVmIF9fdV9xdWFkX3QgX19pbm82NF90Owo+PiBfX2V4dGVuc2lvbl9f
IHR5cGVkZWYgdW5zaWduZWQgaW50IF9fbW9kZV90Owo+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYg
dW5zaWduZWQgaW50IF9fbmxpbmtfdDsKPj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgaW50
IF9fb2ZmX3Q7Cj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3F1YWRfdCBfX29mZjY0X3Q7Cj4+
IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19waWRfdDsKPj4gX19leHRlbnNpb25fXyB0eXBl
ZGVmIHN0cnVjdCB7IGludCBfX3ZhbFsyXTsgfSBfX2ZzaWRfdDsKPj4gX19leHRlbnNpb25fXyB0
eXBlZGVmIGxvbmcgaW50IF9fY2xvY2tfdDsKPj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2ln
bmVkIGxvbmcgaW50IF9fcmxpbV90Owo+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX191X3F1YWRf
dCBfX3JsaW02NF90Owo+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgaW50IF9faWRf
dDsKPj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgaW50IF9fdGltZV90Owo+PiBfX2V4dGVu
c2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgaW50IF9fdXNlY29uZHNfdDsKPj4gX19leHRlbnNpb25f
XyB0eXBlZGVmIGxvbmcgaW50IF9fc3VzZWNvbmRzX3Q7Cj4+Cj4+IF9fZXh0ZW5zaW9uX18gdHlw
ZWRlZiBpbnQgX19kYWRkcl90Owo+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fa2V5X3Q7
Cj4+Cj4+Cj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19jbG9ja2lkX3Q7Cj4+Cj4+Cj4+
IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB2b2lkICogX190aW1lcl90Owo+Pgo+Pgo+PiBfX2V4dGVu
c2lvbl9fIHR5cGVkZWYgbG9uZyBpbnQgX19ibGtzaXplX3Q7Cj4+Cj4+Cj4+Cj4+Cj4+IF9fZXh0
ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX2Jsa2NudF90Owo+PiBfX2V4dGVuc2lvbl9fIHR5
cGVkZWYgX19xdWFkX3QgX19ibGtjbnQ2NF90Owo+Pgo+Pgo+PiBfX2V4dGVuc2lvbl9fIHR5cGVk
ZWYgdW5zaWduZWQgbG9uZyBpbnQgX19mc2Jsa2NudF90Owo+PiBfX2V4dGVuc2lvbl9fIHR5cGVk
ZWYgX191X3F1YWRfdCBfX2ZzYmxrY250NjRfdDsKPj4KPj4KPj4gX19leHRlbnNpb25fXyB0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9fZnNmaWxjbnRfdDsKPj4gX19leHRlbnNpb25fXyB0eXBl
ZGVmIF9fdV9xdWFkX3QgX19mc2ZpbGNudDY0X3Q7Cj4+Cj4+Cj4+IF9fZXh0ZW5zaW9uX18gdHlw
ZWRlZiBpbnQgX19mc3dvcmRfdDsKPj4KPj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGludCBfX3Nz
aXplX3Q7Cj4+Cj4+Cj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX3N5c2NhbGxf
c2xvbmdfdDsKPj4KPj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9f
c3lzY2FsbF91bG9uZ190Owo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIF9fb2ZmNjRfdCBfX2xvZmZfdDsK
Pj4gdHlwZWRlZiBfX3F1YWRfdCAqX19xYWRkcl90Owo+PiB0eXBlZGVmIGNoYXIgKl9fY2FkZHJf
dDsKPj4KPj4KPj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGludCBfX2ludHB0cl90Owo+Pgo+Pgo+
PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgaW50IF9fc29ja2xlbl90Owo+PiAjIDM2
ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQKPj4gIyA0NCAiL3Vzci9pbmNsdWRlL3N0ZGlv
LmgiIDMgNAo+PiBzdHJ1Y3QgX0lPX0ZJTEU7Cj4+Cj4+Cj4+Cj4+IHR5cGVkZWYgc3RydWN0IF9J
T19GSUxFIEZJTEU7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+ICMgNjQgIi91c3IvaW5jbHVkZS9zdGRpby5o
IiAzIDQKPj4gdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUgX19GSUxFOwo+PiAjIDc0ICIvdXNyL2lu
Y2x1ZGUvc3RkaW8uaCIgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDEgMyA0Cj4+
ICMgMzEgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvX0df
Y29uZmlnLmgiIDEgMyA0Cj4+ICMgMTUgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMyA0Cj4+
ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVm
LmgiIDEgMyA0Cj4+ICMgMTYgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzIDQKPj4KPj4K
Pj4KPj4KPj4gIyAxICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMSAzIDQKPj4gIyA4MiAiL3Vzci9p
bmNsdWRlL3djaGFyLmgiIDMgNAo+PiB0eXBlZGVmIHN0cnVjdAo+PiB7Cj4+ICAgaW50IF9fY291
bnQ7Cj4+ICAgdW5pb24KPj4gICB7Cj4+Cj4+ICAgICB1bnNpZ25lZCBpbnQgX193Y2g7Cj4+Cj4+
Cj4+Cj4+ICAgICBjaGFyIF9fd2NoYls0XTsKPj4gICB9IF9fdmFsdWU7Cj4+IH0gX19tYnN0YXRl
X3Q7Cj4+ICMgMjEgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzIDQKPj4gdHlwZWRlZiBz
dHJ1Y3QKPj4gewo+PiAgIF9fb2ZmX3QgX19wb3M7Cj4+ICAgX19tYnN0YXRlX3QgX19zdGF0ZTsK
Pj4gfSBfR19mcG9zX3Q7Cj4+IHR5cGVkZWYgc3RydWN0Cj4+IHsKPj4gICBfX29mZjY0X3QgX19w
b3M7Cj4+ICAgX19tYnN0YXRlX3QgX19zdGF0ZTsKPj4gfSBfR19mcG9zNjRfdDsKPj4gIyAzMiAi
L3Vzci9pbmNsdWRlL2xpYmlvLmgiIDIgMyA0Cj4+ICMgNDkgIi91c3IvaW5jbHVkZS9saWJpby5o
IiAzIDQKPj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVk
ZS9zdGRhcmcuaCIgMSAzIDQKPj4gIyA0MCAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4
LzYuMS4xL2luY2x1ZGUvc3RkYXJnLmgiIDMgNAo+PiB0eXBlZGVmIF9fYnVpbHRpbl92YV9saXN0
IF9fZ251Y192YV9saXN0Owo+PiAjIDUwICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMiAzIDQKPj4g
IyAxNDQgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKPj4gc3RydWN0IF9JT19qdW1wX3Q7IHN0
cnVjdCBfSU9fRklMRTsKPj4KPj4KPj4KPj4KPj4KPj4gdHlwZWRlZiB2b2lkIF9JT19sb2NrX3Q7
Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IHN0cnVjdCBfSU9fbWFya2VyIHsKPj4gICBzdHJ1Y3QgX0lPX21h
cmtlciAqX25leHQ7Cj4+ICAgc3RydWN0IF9JT19GSUxFICpfc2J1ZjsKPj4KPj4KPj4KPj4gICBp
bnQgX3BvczsKPj4gIyAxNzMgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKPj4gfTsKPj4KPj4K
Pj4gZW51bSBfX2NvZGVjdnRfcmVzdWx0Cj4+IHsKPj4gICBfX2NvZGVjdnRfb2ssCj4+ICAgX19j
b2RlY3Z0X3BhcnRpYWwsCj4+ICAgX19jb2RlY3Z0X2Vycm9yLAo+PiAgIF9fY29kZWN2dF9ub2Nv
bnYKPj4gfTsKPj4gIyAyNDEgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKPj4gc3RydWN0IF9J
T19GSUxFIHsKPj4gICBpbnQgX2ZsYWdzOwo+Pgo+Pgo+Pgo+Pgo+PiAgIGNoYXIqIF9JT19yZWFk
X3B0cjsKPj4gICBjaGFyKiBfSU9fcmVhZF9lbmQ7Cj4+ICAgY2hhciogX0lPX3JlYWRfYmFzZTsK
Pj4gICBjaGFyKiBfSU9fd3JpdGVfYmFzZTsKPj4gICBjaGFyKiBfSU9fd3JpdGVfcHRyOwo+PiAg
IGNoYXIqIF9JT193cml0ZV9lbmQ7Cj4+ICAgY2hhciogX0lPX2J1Zl9iYXNlOwo+PiAgIGNoYXIq
IF9JT19idWZfZW5kOwo+Pgo+PiAgIGNoYXIgKl9JT19zYXZlX2Jhc2U7Cj4+ICAgY2hhciAqX0lP
X2JhY2t1cF9iYXNlOwo+PiAgIGNoYXIgKl9JT19zYXZlX2VuZDsKPj4KPj4gICBzdHJ1Y3QgX0lP
X21hcmtlciAqX21hcmtlcnM7Cj4+Cj4+ICAgc3RydWN0IF9JT19GSUxFICpfY2hhaW47Cj4+Cj4+
ICAgaW50IF9maWxlbm87Cj4+Cj4+Cj4+Cj4+ICAgaW50IF9mbGFnczI7Cj4+Cj4+ICAgX19vZmZf
dCBfb2xkX29mZnNldDsKPj4KPj4KPj4KPj4gICB1bnNpZ25lZCBzaG9ydCBfY3VyX2NvbHVtbjsK
Pj4gICBzaWduZWQgY2hhciBfdnRhYmxlX29mZnNldDsKPj4gICBjaGFyIF9zaG9ydGJ1ZlsxXTsK
Pj4KPj4KPj4KPj4gICBfSU9fbG9ja190ICpfbG9jazsKPj4gIyAyODkgIi91c3IvaW5jbHVkZS9s
aWJpby5oIiAzIDQKPj4gICBfX29mZjY0X3QgX29mZnNldDsKPj4KPj4KPj4KPj4KPj4KPj4KPj4K
Pj4gICB2b2lkICpfX3BhZDE7Cj4+ICAgdm9pZCAqX19wYWQyOwo+PiAgIHZvaWQgKl9fcGFkMzsK
Pj4gICB2b2lkICpfX3BhZDQ7Cj4+Cj4+ICAgc2l6ZV90IF9fcGFkNTsKPj4gICBpbnQgX21vZGU7
Cj4+Cj4+ICAgY2hhciBfdW51c2VkMlsxNSAqIHNpemVvZiAoaW50KSAtIDQgKiBzaXplb2YgKHZv
aWQgKikgLSBzaXplb2YgKHNpemVfdCldOwo+Pgo+PiB9Owo+Pgo+Pgo+PiB0eXBlZGVmIHN0cnVj
dCBfSU9fRklMRSBfSU9fRklMRTsKPj4KPj4KPj4gc3RydWN0IF9JT19GSUxFX3BsdXM7Cj4+Cj4+
IGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZGluXzsKPj4gZXh0ZXJuIHN0
cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFfc3Rkb3V0XzsKPj4gZXh0ZXJuIHN0cnVjdCBfSU9f
RklMRV9wbHVzIF9JT18yXzFfc3RkZXJyXzsKPj4gIyAzMzMgIi91c3IvaW5jbHVkZS9saWJpby5o
IiAzIDQKPj4gdHlwZWRlZiBfX3NzaXplX3QgX19pb19yZWFkX2ZuICh2b2lkICpfX2Nvb2tpZSwg
Y2hhciAqX19idWYsIHNpemVfdCBfX25ieXRlcyk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IHR5
cGVkZWYgX19zc2l6ZV90IF9faW9fd3JpdGVfZm4gKHZvaWQgKl9fY29va2llLCBjb25zdCBjaGFy
ICpfX2J1ZiwKPj4gICAgICBzaXplX3QgX19uKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4gdHlw
ZWRlZiBpbnQgX19pb19zZWVrX2ZuICh2b2lkICpfX2Nvb2tpZSwgX19vZmY2NF90ICpfX3Bvcywg
aW50IF9fdyk7Cj4+Cj4+Cj4+IHR5cGVkZWYgaW50IF9faW9fY2xvc2VfZm4gKHZvaWQgKl9fY29v
a2llKTsKPj4gIyAzODUgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKPj4gZXh0ZXJuIGludCBf
X3VuZGVyZmxvdyAoX0lPX0ZJTEUgKik7Cj4+IGV4dGVybiBpbnQgX191ZmxvdyAoX0lPX0ZJTEUg
Kik7Cj4+IGV4dGVybiBpbnQgX19vdmVyZmxvdyAoX0lPX0ZJTEUgKiwgaW50KTsKPj4gIyA0Mjkg
Ii91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKPj4gZXh0ZXJuIGludCBfSU9fZ2V0YyAoX0lPX0ZJ
TEUgKl9fZnApOwo+PiBleHRlcm4gaW50IF9JT19wdXRjIChpbnQgX19jLCBfSU9fRklMRSAqX19m
cCk7Cj4+IGV4dGVybiBpbnQgX0lPX2Zlb2YgKF9JT19GSUxFICpfX2ZwKSBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+PiBleHRlcm4gaW50IF9JT19mZXJyb3IgKF9J
T19GSUxFICpfX2ZwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+
Pgo+PiBleHRlcm4gaW50IF9JT19wZWVrY19sb2NrZWQgKF9JT19GSUxFICpfX2ZwKTsKPj4KPj4K
Pj4KPj4KPj4KPj4gZXh0ZXJuIHZvaWQgX0lPX2Zsb2NrZmlsZSAoX0lPX0ZJTEUgKikgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gZXh0ZXJuIHZvaWQgX0lPX2Z1
bmxvY2tmaWxlIChfSU9fRklMRSAqKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+PiBleHRlcm4gaW50IF9JT19mdHJ5bG9ja2ZpbGUgKF9JT19GSUxFICopIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+ICMgNDU5ICIvdXNyL2luY2x1
ZGUvbGliaW8uaCIgMyA0Cj4+IGV4dGVybiBpbnQgX0lPX3Zmc2NhbmYgKF9JT19GSUxFICogX19y
ZXN0cmljdCwgY29uc3QgY2hhciAqIF9fcmVzdHJpY3QsCj4+ICAgIF9fZ251Y192YV9saXN0LCBp
bnQgKl9fcmVzdHJpY3QpOwo+PiBleHRlcm4gaW50IF9JT192ZnByaW50ZiAoX0lPX0ZJTEUgKl9f
cmVzdHJpY3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QsCj4+ICAgICBfX2dudWNfdmFfbGlzdCk7
Cj4+IGV4dGVybiBfX3NzaXplX3QgX0lPX3BhZG4gKF9JT19GSUxFICosIGludCwgX19zc2l6ZV90
KTsKPj4gZXh0ZXJuIHNpemVfdCBfSU9fc2dldG4gKF9JT19GSUxFICosIHZvaWQgKiwgc2l6ZV90
KTsKPj4KPj4gZXh0ZXJuIF9fb2ZmNjRfdCBfSU9fc2Vla29mZiAoX0lPX0ZJTEUgKiwgX19vZmY2
NF90LCBpbnQsIGludCk7Cj4+IGV4dGVybiBfX29mZjY0X3QgX0lPX3NlZWtwb3MgKF9JT19GSUxF
ICosIF9fb2ZmNjRfdCwgaW50KTsKPj4KPj4gZXh0ZXJuIHZvaWQgX0lPX2ZyZWVfYmFja3VwX2Fy
ZWEgKF9JT19GSUxFICopIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
Cj4+ICMgNzUgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMgNAo+Pgo+Pgo+Pgo+Pgo+PiB0eXBl
ZGVmIF9fZ251Y192YV9saXN0IHZhX2xpc3Q7Cj4+ICMgOTAgIi91c3IvaW5jbHVkZS9zdGRpby5o
IiAzIDQKPj4gdHlwZWRlZiBfX29mZl90IG9mZl90Owo+PiAjIDEwMiAiL3Vzci9pbmNsdWRlL3N0
ZGlvLmgiIDMgNAo+PiB0eXBlZGVmIF9fc3NpemVfdCBzc2l6ZV90Owo+Pgo+Pgo+Pgo+Pgo+Pgo+
Pgo+Pgo+PiB0eXBlZGVmIF9HX2Zwb3NfdCBmcG9zX3Q7Cj4+Cj4+Cj4+Cj4+Cj4+ICMgMTY0ICIv
dXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RkaW9f
bGltLmgiIDEgMyA0Cj4+ICMgMTY1ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQKPj4KPj4K
Pj4KPj4gZXh0ZXJuIHN0cnVjdCBfSU9fRklMRSAqc3RkaW47Cj4+IGV4dGVybiBzdHJ1Y3QgX0lP
X0ZJTEUgKnN0ZG91dDsKPj4gZXh0ZXJuIHN0cnVjdCBfSU9fRklMRSAqc3RkZXJyOwo+Pgo+Pgo+
Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHJlbW92ZSAoY29uc3QgY2hhciAqX19maWxlbmFt
ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4gZXh0ZXJu
IGludCByZW5hbWUgKGNvbnN0IGNoYXIgKl9fb2xkLCBjb25zdCBjaGFyICpfX25ldykgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJu
IGludCByZW5hbWVhdCAoaW50IF9fb2xkZmQsIGNvbnN0IGNoYXIgKl9fb2xkLCBpbnQgX19uZXdm
ZCwKPj4gICAgICAgIGNvbnN0IGNoYXIgKl9fbmV3KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gRklMRSAq
dG1wZmlsZSAodm9pZCkgOwo+PiAjIDIwOSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+PiBl
eHRlcm4gY2hhciAqdG1wbmFtIChjaGFyICpfX3MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gY2hhciAqdG1wbmFtX3Ig
KGNoYXIgKl9fcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4+
ICMgMjI3ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4+IGV4dGVybiBjaGFyICp0ZW1wbmFt
IChjb25zdCBjaGFyICpfX2RpciwgY29uc3QgY2hhciAqX19wZngpCj4+ICAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2Nf
XykpIDsKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBmY2xvc2UgKEZJTEUg
Kl9fc3RyZWFtKTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBmZmx1c2ggKEZJTEUgKl9fc3Ry
ZWFtKTsKPj4KPj4gIyAyNTIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPj4gZXh0ZXJuIGlu
dCBmZmx1c2hfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKTsKPj4gIyAyNjYgIi91c3IvaW5jbHVk
ZS9zdGRpby5oIiAzIDQKPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIEZJTEUgKmZvcGVuIChj
b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZmlsZW5hbWUsCj4+ICAgICAgIGNvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19tb2RlcykgOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gRklMRSAqZnJlb3BlbiAo
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGVuYW1lLAo+PiAgICAgICAgIGNvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19tb2RlcywKPj4gICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFt
KSA7Cj4+ICMgMjk1ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4+Cj4+ICMgMzA2ICIvdXNy
L2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4+IGV4dGVybiBGSUxFICpmZG9wZW4gKGludCBfX2ZkLCBj
b25zdCBjaGFyICpfX21vZGVzKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIDsKPj4gIyAzMTkgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPj4gZXh0ZXJuIEZJTEUg
KmZtZW1vcGVuICh2b2lkICpfX3MsIHNpemVfdCBfX2xlbiwgY29uc3QgY2hhciAqX19tb2RlcykK
Pj4gICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKPj4KPj4KPj4K
Pj4KPj4gZXh0ZXJuIEZJTEUgKm9wZW5fbWVtc3RyZWFtIChjaGFyICoqX19idWZsb2MsIHNpemVf
dCAqX19zaXplbG9jKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsK
Pj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHZvaWQgc2V0YnVmIChGSUxFICpfX3Jlc3RyaWN0
IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHNldHZidWYgKEZJTEUg
Kl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCj4+ICAgICAgIGlu
dCBfX21vZGVzLCBzaXplX3QgX19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gdm9pZCBzZXRidWZmZXIgKEZJTEUgKl9f
cmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCj4+ICAgICAgICAgIHNp
emVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+
Cj4+Cj4+IGV4dGVybiB2b2lkIHNldGxpbmVidWYgKEZJTEUgKl9fc3RyZWFtKSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+
PiBleHRlcm4gaW50IGZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sCj4+ICAgICAg
IGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLik7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4
dGVybiBpbnQgcHJpbnRmIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pOwo+
Pgo+PiBleHRlcm4gaW50IHNwcmludGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLAo+PiAgICAgICBj
b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHZmcHJpbnRmIChGSUxFICpf
X3Jlc3RyaWN0IF9fcywgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKPj4gICAgICAg
IF9fZ251Y192YV9saXN0IF9fYXJnKTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCB2cHJpbnRm
IChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBfX2FyZyk7
Cj4+Cj4+IGV4dGVybiBpbnQgdnNwcmludGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBjb25zdCBj
aGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAo+PiAgICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4g
aW50IHNucHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4bGVuLAo+PiAg
ICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKQo+PiAgICAgIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3By
aW50Zl9fLCAzLCA0KSkpOwo+Pgo+PiBleHRlcm4gaW50IHZzbnByaW50ZiAoY2hhciAqX19yZXN0
cmljdCBfX3MsIHNpemVfdCBfX21heGxlbiwKPj4gICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBfX2FyZykKPj4gICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywg
MywgMCkpKTsKPj4KPj4gIyA0MTIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPj4gZXh0ZXJu
IGludCB2ZHByaW50ZiAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsCj4+
ICAgICAgICBfX2dudWNfdmFfbGlzdCBfX2FyZykKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19m
b3JtYXRfXyAoX19wcmludGZfXywgMiwgMCkpKTsKPj4gZXh0ZXJuIGludCBkcHJpbnRmIChpbnQg
X19mZCwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZtdCwgLi4uKQo+PiAgICAgIF9fYXR0cmli
dXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAyLCAzKSkpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+
Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGZzY2FuZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwK
Pj4gICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIDsKPj4KPj4KPj4K
Pj4KPj4gZXh0ZXJuIGludCBzY2FuZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwg
Li4uKSA7Cj4+Cj4+IGV4dGVybiBpbnQgc3NjYW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f
cywKPj4gICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+ICMgNDQzICIvdXNyL2luY2x1ZGUv
c3RkaW8uaCIgMyA0Cj4+IGV4dGVybiBpbnQgZnNjYW5mIChGSUxFICpfX3Jlc3RyaWN0IF9fc3Ry
ZWFtLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIF9fYXNtX18gKCIiICJf
X2lzb2M5OV9mc2NhbmYiKQo+Pgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwo+
PiBleHRlcm4gaW50IHNjYW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4p
IF9fYXNtX18gKCIiICJfX2lzb2M5OV9zY2FuZiIpCj4+ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDsKPj4gZXh0ZXJuIGludCBzc2NhbmYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19z
LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIF9fYXNtX18gKCIiICJfX2lz
b2M5OV9zc2NhbmYiKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpCj4+
Cj4+ICAgICAgICAgICAgICAgICAgICAgICA7Cj4+ICMgNDYzICIvdXNyL2luY2x1ZGUvc3RkaW8u
aCIgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdmZzY2FuZiAoRklM
RSAqX19yZXN0cmljdCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCj4+ICAg
ICAgIF9fZ251Y192YV9saXN0IF9fYXJnKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1h
dF9fIChfX3NjYW5mX18sIDIsIDApKSkgOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHZz
Y2FuZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19h
cmcpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc2NhbmZfXywgMSwgMCkp
KSA7Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdnNzY2FuZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X3MsCj4+ICAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9s
aXN0IF9fYXJnKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc2NhbmZfXywgMiwgMCkpKTsKPj4gIyA0
OTQgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPj4gZXh0ZXJuIGludCB2ZnNjYW5mIChGSUxF
ICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVj
X3ZhX2xpc3QgX19hcmcpIF9fYXNtX18gKCIiICJfX2lzb2M5OV92ZnNjYW5mIikKPj4KPj4KPj4K
Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAyLCAwKSkpIDsK
Pj4gZXh0ZXJuIGludCB2c2NhbmYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9f
Z251Y192YV9saXN0IF9fYXJnKSBfX2FzbV9fICgiIiAiX19pc29jOTlfdnNjYW5mIikKPj4KPj4g
ICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAxLCAwKSkpIDsKPj4g
ZXh0ZXJuIGludCB2c3NjYW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpIF9fYXNtX18gKCIi
ICJfX2lzb2M5OV92c3NjYW5mIikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKQo+Pgo+Pgo+Pgo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3NjYW5m
X18sIDIsIDApKSk7Cj4+ICMgNTIyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4+Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgZmdldGMgKEZJTEUgKl9fc3RyZWFtKTsK
Pj4gZXh0ZXJuIGludCBnZXRjIChGSUxFICpfX3N0cmVhbSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4
dGVybiBpbnQgZ2V0Y2hhciAodm9pZCk7Cj4+Cj4+ICMgNTUwICIvdXNyL2luY2x1ZGUvc3RkaW8u
aCIgMyA0Cj4+IGV4dGVybiBpbnQgZ2V0Y191bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pOwo+PiBl
eHRlcm4gaW50IGdldGNoYXJfdW5sb2NrZWQgKHZvaWQpOwo+PiAjIDU2MSAiL3Vzci9pbmNsdWRl
L3N0ZGlvLmgiIDMgNAo+PiBleHRlcm4gaW50IGZnZXRjX3VubG9ja2VkIChGSUxFICpfX3N0cmVh
bSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgZnB1dGMg
KGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKTsKPj4gZXh0ZXJuIGludCBwdXRjIChpbnQgX19jLCBG
SUxFICpfX3N0cmVhbSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgcHV0Y2hhciAoaW50
IF9fYyk7Cj4+Cj4+ICMgNTk0ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4+IGV4dGVybiBp
bnQgZnB1dGNfdW5sb2NrZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKTsKPj4KPj4KPj4KPj4K
Pj4KPj4KPj4KPj4gZXh0ZXJuIGludCBwdXRjX3VubG9ja2VkIChpbnQgX19jLCBGSUxFICpfX3N0
cmVhbSk7Cj4+IGV4dGVybiBpbnQgcHV0Y2hhcl91bmxvY2tlZCAoaW50IF9fYyk7Cj4+Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgZ2V0dyAoRklMRSAqX19zdHJlYW0pOwo+Pgo+Pgo+PiBl
eHRlcm4gaW50IHB1dHcgKGludCBfX3csIEZJTEUgKl9fc3RyZWFtKTsKPj4KPj4KPj4KPj4KPj4K
Pj4KPj4KPj4KPj4gZXh0ZXJuIGNoYXIgKmZnZXRzIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgaW50
IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkKPj4gICAgICA7Cj4+ICMgNjQwICIvdXNy
L2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4+Cj4+ICMgNjY1ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIg
MyA0Cj4+IGV4dGVybiBfX3NzaXplX3QgX19nZXRkZWxpbSAoY2hhciAqKl9fcmVzdHJpY3QgX19s
aW5lcHRyLAo+PiAgICAgICAgICAgc2l6ZV90ICpfX3Jlc3RyaWN0IF9fbiwgaW50IF9fZGVsaW1p
dGVyLAo+PiAgICAgICAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgOwo+PiBleHRlcm4g
X19zc2l6ZV90IGdldGRlbGltIChjaGFyICoqX19yZXN0cmljdCBfX2xpbmVwdHIsCj4+ICAgICAg
ICAgc2l6ZV90ICpfX3Jlc3RyaWN0IF9fbiwgaW50IF9fZGVsaW1pdGVyLAo+PiAgICAgICAgIEZJ
TEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJu
IF9fc3NpemVfdCBnZXRsaW5lIChjaGFyICoqX19yZXN0cmljdCBfX2xpbmVwdHIsCj4+ICAgICAg
ICBzaXplX3QgKl9fcmVzdHJpY3QgX19uLAo+PiAgICAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0
cmVhbSkgOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGZwdXRzIChjb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSk7Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgcHV0cyAoY29uc3QgY2hhciAqX19zKTsKPj4KPj4KPj4K
Pj4KPj4KPj4KPj4gZXh0ZXJuIGludCB1bmdldGMgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKTsK
Pj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHNpemVfdCBmcmVhZCAodm9pZCAqX19yZXN0cmlj
dCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKPj4gICAgICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVz
dHJpY3QgX19zdHJlYW0pIDsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHNpemVfdCBmd3JpdGUgKGNv
bnN0IHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCj4+ICAgICAgICAgc2l6
ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3MpOwo+Pgo+PiAjIDczNyAiL3Vzci9pbmNsdWRl
L3N0ZGlvLmgiIDMgNAo+PiBleHRlcm4gc2l6ZV90IGZyZWFkX3VubG9ja2VkICh2b2lkICpfX3Jl
c3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAo+PiAgICAgICAgICBzaXplX3QgX19uLCBGSUxF
ICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7Cj4+IGV4dGVybiBzaXplX3QgZndyaXRlX3VubG9ja2Vk
IChjb25zdCB2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAo+PiAgICAgICAg
ICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSk7Cj4+Cj4+Cj4+Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgZnNlZWsgKEZJTEUgKl9fc3RyZWFtLCBsb25nIGludCBf
X29mZiwgaW50IF9fd2hlbmNlKTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGxvbmcgaW50IGZ0ZWxs
IChGSUxFICpfX3N0cmVhbSkgOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gdm9pZCByZXdpbmQgKEZJ
TEUgKl9fc3RyZWFtKTsKPj4KPj4gIyA3NzMgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPj4g
ZXh0ZXJuIGludCBmc2Vla28gKEZJTEUgKl9fc3RyZWFtLCBfX29mZl90IF9fb2ZmLCBpbnQgX193
aGVuY2UpOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gX19vZmZfdCBmdGVsbG8gKEZJTEUgKl9fc3Ry
ZWFtKSA7Cj4+ICMgNzkyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+
Cj4+Cj4+IGV4dGVybiBpbnQgZmdldHBvcyAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgZnBv
c190ICpfX3Jlc3RyaWN0IF9fcG9zKTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBmc2V0cG9z
IChGSUxFICpfX3N0cmVhbSwgY29uc3QgZnBvc190ICpfX3Bvcyk7Cj4+ICMgODE1ICIvdXNyL2lu
Y2x1ZGUvc3RkaW8uaCIgMyA0Cj4+Cj4+ICMgODI0ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0
Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIGNsZWFyZXJyIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4gZXh0ZXJuIGludCBmZW9mIChG
SUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7
Cj4+Cj4+IGV4dGVybiBpbnQgZmVycm9yIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIGNs
ZWFyZXJyX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPj4gZXh0ZXJuIGludCBmZW9mX3VubG9ja2VkIChGSUxFICpfX3N0
cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4+IGV4dGVy
biBpbnQgZmVycm9yX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVy
biB2b2lkIHBlcnJvciAoY29uc3QgY2hhciAqX19zKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gIyAx
ICIvdXNyL2luY2x1ZGUvYml0cy9zeXNfZXJybGlzdC5oIiAxIDMgNAo+PiAjIDI2ICIvdXNyL2lu
Y2x1ZGUvYml0cy9zeXNfZXJybGlzdC5oIiAzIDQKPj4gZXh0ZXJuIGludCBzeXNfbmVycjsKPj4g
ZXh0ZXJuIGNvbnN0IGNoYXIgKmNvbnN0IHN5c19lcnJsaXN0W107Cj4+ICMgODU0ICIvdXNyL2lu
Y2x1ZGUvc3RkaW8uaCIgMiAzIDQKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBmaWxlbm8gKEZJ
TEUgKl9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsK
Pj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBmaWxlbm9fdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFt
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKPj4gIyA4NzIgIi91
c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPj4gZXh0ZXJuIEZJTEUgKnBvcGVuIChjb25zdCBjaGFy
ICpfX2NvbW1hbmQsIGNvbnN0IGNoYXIgKl9fbW9kZXMpIDsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0
ZXJuIGludCBwY2xvc2UgKEZJTEUgKl9fc3RyZWFtKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJu
IGNoYXIgKmN0ZXJtaWQgKGNoYXIgKl9fcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKTsKPj4gIyA5MTIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPj4gZXh0ZXJu
IHZvaWQgZmxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBmdHJ5bG9ja2ZpbGUgKEZJ
TEUgKl9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsK
Pj4KPj4KPj4gZXh0ZXJuIHZvaWQgZnVubG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+PiAjIDk0MiAiL3Vzci9pbmNsdWRl
L3N0ZGlvLmgiIDMgNAo+Pgo+PiAjIDQwICJtYWNoaW5lLmMiIDIKPj4gIyAxICIvdXNyL2luY2x1
ZGUvc3RkbGliLmgiIDEgMyA0Cj4+ICMgMzIgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0Cj4+
ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVm
LmgiIDEgMyA0Cj4+ICMgMzI4ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEv
aW5jbHVkZS9zdGRkZWYuaCIgMyA0Cj4+IHR5cGVkZWYgbG9uZyBpbnQgd2NoYXJfdDsKPj4gIyAz
MyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAyIDMgNAo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+
PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3dhaXRmbGFncy5oIiAxIDMgNAo+PiAjIDQyICIvdXNy
L2luY2x1ZGUvc3RkbGliLmgiIDIgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvd2FpdHN0
YXR1cy5oIiAxIDMgNAo+PiAjIDY0ICIvdXNyL2luY2x1ZGUvYml0cy93YWl0c3RhdHVzLmgiIDMg
NAo+PiAjIDEgIi91c3IvaW5jbHVkZS9lbmRpYW4uaCIgMSAzIDQKPj4gIyAzNiAiL3Vzci9pbmNs
dWRlL2VuZGlhbi5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9lbmRpYW4uaCIgMSAz
IDQKPj4gIyAzNyAiL3Vzci9pbmNsdWRlL2VuZGlhbi5oIiAyIDMgNAo+PiAjIDYwICIvdXNyL2lu
Y2x1ZGUvZW5kaWFuLmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgi
IDEgMyA0Cj4+ICMgMjggIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgiIDMgNAo+PiAjIDEg
Ii91c3IvaW5jbHVkZS9iaXRzL3dvcmRzaXplLmgiIDEgMyA0Cj4+ICMgMjkgIi91c3IvaW5jbHVk
ZS9iaXRzL2J5dGVzd2FwLmgiIDIgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+ICMgMSAiL3Vzci9p
bmNsdWRlL2JpdHMvYnl0ZXN3YXAtMTYuaCIgMSAzIDQKPj4gIyAzNiAiL3Vzci9pbmNsdWRlL2Jp
dHMvYnl0ZXN3YXAuaCIgMiAzIDQKPj4gIyA0NCAiL3Vzci9pbmNsdWRlL2JpdHMvYnl0ZXN3YXAu
aCIgMyA0Cj4+IHN0YXRpYyBfX2lubGluZSB1bnNpZ25lZCBpbnQKPj4gX19ic3dhcF8zMiAodW5z
aWduZWQgaW50IF9fYnN4KQo+PiB7Cj4+ICAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDMyIChfX2Jz
eCk7Cj4+IH0KPj4gIyAxMDggIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgiIDMgNAo+PiBz
dGF0aWMgX19pbmxpbmUgX191aW50NjRfdAo+PiBfX2Jzd2FwXzY0IChfX3VpbnQ2NF90IF9fYnN4
KQo+PiB7Cj4+ICAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDY0IChfX2JzeCk7Cj4+IH0KPj4gIyA2
MSAiL3Vzci9pbmNsdWRlL2VuZGlhbi5oIiAyIDMgNAo+PiAjIDY1ICIvdXNyL2luY2x1ZGUvYml0
cy93YWl0c3RhdHVzLmgiIDIgMyA0Cj4+Cj4+IHVuaW9uIHdhaXQKPj4gICB7Cj4+ICAgICBpbnQg
d19zdGF0dXM7Cj4+ICAgICBzdHJ1Y3QKPj4gICAgICAgewo+Pgo+PiAgdW5zaWduZWQgaW50IF9f
d190ZXJtc2lnOjc7Cj4+ICB1bnNpZ25lZCBpbnQgX193X2NvcmVkdW1wOjE7Cj4+ICB1bnNpZ25l
ZCBpbnQgX193X3JldGNvZGU6ODsKPj4gIHVuc2lnbmVkIGludDoxNjsKPj4KPj4KPj4KPj4KPj4K
Pj4KPj4KPj4gICAgICAgfSBfX3dhaXRfdGVybWluYXRlZDsKPj4gICAgIHN0cnVjdAo+PiAgICAg
ICB7Cj4+Cj4+ICB1bnNpZ25lZCBpbnQgX193X3N0b3B2YWw6ODsKPj4gIHVuc2lnbmVkIGludCBf
X3dfc3RvcHNpZzo4Owo+PiAgdW5zaWduZWQgaW50OjE2Owo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiAg
ICAgICB9IF9fd2FpdF9zdG9wcGVkOwo+PiAgIH07Cj4+ICMgNDMgIi91c3IvaW5jbHVkZS9zdGRs
aWIuaCIgMiAzIDQKPj4gIyA2NyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPj4gdHlwZWRl
ZiB1bmlvbgo+PiAgIHsKPj4gICAgIHVuaW9uIHdhaXQgKl9fdXB0cjsKPj4gICAgIGludCAqX19p
cHRyOwo+PiAgIH0gX19XQUlUX1NUQVRVUyBfX2F0dHJpYnV0ZV9fICgoX190cmFuc3BhcmVudF91
bmlvbl9fKSk7Cj4+ICMgOTUgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0Cj4+Cj4+Cj4+IHR5
cGVkZWYgc3RydWN0Cj4+ICAgewo+PiAgICAgaW50IHF1b3Q7Cj4+ICAgICBpbnQgcmVtOwo+PiAg
IH0gZGl2X3Q7Cj4+Cj4+Cj4+Cj4+IHR5cGVkZWYgc3RydWN0Cj4+ICAgewo+PiAgICAgbG9uZyBp
bnQgcXVvdDsKPj4gICAgIGxvbmcgaW50IHJlbTsKPj4gICB9IGxkaXZfdDsKPj4KPj4KPj4KPj4K
Pj4KPj4KPj4KPj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHN0cnVjdAo+PiAgIHsKPj4gICAgIGxv
bmcgbG9uZyBpbnQgcXVvdDsKPj4gICAgIGxvbmcgbG9uZyBpbnQgcmVtOwo+PiAgIH0gbGxkaXZf
dDsKPj4KPj4KPj4gIyAxMzkgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0Cj4+IGV4dGVybiBz
aXplX3QgX19jdHlwZV9nZXRfbWJfY3VyX21heCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKSA7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBkb3VibGUgYXRvZiAo
Y29uc3QgY2hhciAqX19ucHRyKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxKSkpIDsKPj4KPj4gZXh0ZXJuIGludCBhdG9pIChjb25zdCBjaGFyICpfX25w
dHIpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkg
Owo+Pgo+PiBleHRlcm4gbG9uZyBpbnQgYXRvbCAoY29uc3QgY2hhciAqX19ucHRyKQo+PiAgICAg
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo
KF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPj4KPj4KPj4K
Pj4KPj4KPj4gX19leHRlbnNpb25fXyBleHRlcm4gbG9uZyBsb25nIGludCBhdG9sbCAoY29uc3Qg
Y2hhciAqX19ucHRyKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs
bF9fICgxKSkpIDsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGRvdWJsZSBzdHJ0b2QgKGNvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAo+PiAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9f
ZW5kcHRyKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg
X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRl
cm4gZmxvYXQgc3RydG9mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPj4gICAgICAg
IGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4gZXh0
ZXJuIGxvbmcgZG91YmxlIHN0cnRvbGQgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAo+
PiAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIpCj4+ICAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDEpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBsb25nIGludCBzdHJ0b2wgKGNvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19ucHRyLAo+PiAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwg
aW50IF9fYmFzZSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4gZXh0ZXJuIHVuc2ln
bmVkIGxvbmcgaW50IHN0cnRvdWwgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAo+PiAg
ICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkKPj4gICAgICBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMSkpKTsKPj4KPj4KPj4KPj4KPj4gX19leHRlbnNpb25fXwo+PiBleHRlcm4gbG9u
ZyBsb25nIGludCBzdHJ0b3EgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAo+PiAgICAg
ICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNlKQo+PiAgICAgIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxKSkpOwo+Pgo+PiBfX2V4dGVuc2lvbl9fCj4+IGV4dGVybiB1bnNpZ25lZCBsb25n
IGxvbmcgaW50IHN0cnRvdXEgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAo+PiAgICAg
ICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNlKQo+PiAgICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBfX2V4dGVuc2lvbl9fCj4+IGV4dGVy
biBsb25nIGxvbmcgaW50IHN0cnRvbGwgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAo+
PiAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkKPj4gICAg
ICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g
KChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4gX19leHRlbnNpb25fXwo+PiBleHRlcm4gdW5zaWdu
ZWQgbG9uZyBsb25nIGludCBzdHJ0b3VsbCAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIs
Cj4+ICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCj4+ICAgICAg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo
X19ub25udWxsX18gKDEpKSk7Cj4+Cj4+ICMgMzA1ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMg
NAo+PiBleHRlcm4gY2hhciAqbDY0YSAobG9uZyBpbnQgX19uKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIDsKPj4KPj4KPj4gZXh0ZXJuIGxvbmcgaW50IGE2NGwgKGNv
bnN0IGNoYXIgKl9fcykKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51
bGxfXyAoMSkpKSA7Cj4+Cj4+Cj4+Cj4+Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5o
IiAxIDMgNAo+PiAjIDI3ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAo+Pgo+Pgo+Pgo+
Pgo+Pgo+Pgo+PiB0eXBlZGVmIF9fdV9jaGFyIHVfY2hhcjsKPj4gdHlwZWRlZiBfX3Vfc2hvcnQg
dV9zaG9ydDsKPj4gdHlwZWRlZiBfX3VfaW50IHVfaW50Owo+PiB0eXBlZGVmIF9fdV9sb25nIHVf
bG9uZzsKPj4gdHlwZWRlZiBfX3F1YWRfdCBxdWFkX3Q7Cj4+IHR5cGVkZWYgX191X3F1YWRfdCB1
X3F1YWRfdDsKPj4gdHlwZWRlZiBfX2ZzaWRfdCBmc2lkX3Q7Cj4+Cj4+Cj4+Cj4+Cj4+IHR5cGVk
ZWYgX19sb2ZmX3QgbG9mZl90Owo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIF9faW5vX3QgaW5vX3Q7Cj4+
ICMgNjAgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0Cj4+IHR5cGVkZWYgX19kZXZfdCBk
ZXZfdDsKPj4KPj4KPj4KPj4KPj4gdHlwZWRlZiBfX2dpZF90IGdpZF90Owo+Pgo+Pgo+Pgo+Pgo+
PiB0eXBlZGVmIF9fbW9kZV90IG1vZGVfdDsKPj4KPj4KPj4KPj4KPj4gdHlwZWRlZiBfX25saW5r
X3QgbmxpbmtfdDsKPj4KPj4KPj4KPj4KPj4gdHlwZWRlZiBfX3VpZF90IHVpZF90Owo+PiAjIDk4
ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAo+PiB0eXBlZGVmIF9fcGlkX3QgcGlkX3Q7
Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IHR5cGVkZWYgX19pZF90IGlkX3Q7Cj4+ICMgMTE1ICIvdXNyL2lu
Y2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAo+PiB0eXBlZGVmIF9fZGFkZHJfdCBkYWRkcl90Owo+PiB0
eXBlZGVmIF9fY2FkZHJfdCBjYWRkcl90Owo+Pgo+Pgo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIF9fa2V5
X3Qga2V5X3Q7Cj4+ICMgMTMyICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAo+PiAjIDEg
Ii91c3IvaW5jbHVkZS90aW1lLmgiIDEgMyA0Cj4+ICMgNTcgIi91c3IvaW5jbHVkZS90aW1lLmgi
IDMgNAo+Pgo+Pgo+PiB0eXBlZGVmIF9fY2xvY2tfdCBjbG9ja190Owo+Pgo+Pgo+Pgo+PiAjIDcz
ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPj4KPj4KPj4gdHlwZWRlZiBfX3RpbWVfdCB0aW1l
X3Q7Cj4+Cj4+Cj4+Cj4+ICMgOTEgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMgNAo+PiB0eXBlZGVm
IF9fY2xvY2tpZF90IGNsb2NraWRfdDsKPj4gIyAxMDMgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMg
NAo+PiB0eXBlZGVmIF9fdGltZXJfdCB0aW1lcl90Owo+PiAjIDEzMyAiL3Vzci9pbmNsdWRlL3N5
cy90eXBlcy5oIiAyIDMgNAo+PiAjIDE0NiAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQK
Pj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRk
ZWYuaCIgMSAzIDQKPj4gIyAxNDcgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzIDQKPj4K
Pj4KPj4KPj4gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCB1bG9uZzsKPj4gdHlwZWRlZiB1bnNp
Z25lZCBzaG9ydCBpbnQgdXNob3J0Owo+PiB0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50Owo+PiAj
IDE5NCAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKPj4gdHlwZWRlZiBpbnQgaW50OF90
IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19RSV9fKSkpOwo+PiB0eXBlZGVmIGludCBpbnQx
Nl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOwo+PiB0eXBlZGVmIGludCBp
bnQzMl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19TSV9fKSkpOwo+PiB0eXBlZGVmIGlu
dCBpbnQ2NF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ESV9fKSkpOwo+Pgo+Pgo+PiB0
eXBlZGVmIHVuc2lnbmVkIGludCB1X2ludDhfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9f
UUlfXykpKTsKPj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQxNl90IF9fYXR0cmlidXRlX18g
KChfX21vZGVfXyAoX19ISV9fKSkpOwo+PiB0eXBlZGVmIHVuc2lnbmVkIGludCB1X2ludDMyX3Qg
X19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7Cj4+IHR5cGVkZWYgdW5zaWduZWQg
aW50IHVfaW50NjRfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fRElfXykpKTsKPj4KPj4g
dHlwZWRlZiBpbnQgcmVnaXN0ZXJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fd29yZF9f
KSkpOwo+PiAjIDIxOSAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKPj4gIyAxICIvdXNy
L2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAxIDMgNAo+PiAjIDMwICIvdXNyL2luY2x1ZGUvc3lzL3Nl
bGVjdC5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9zZWxlY3QuaCIgMSAzIDQKPj4g
IyAyMiAiL3Vzci9pbmNsdWRlL2JpdHMvc2VsZWN0LmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVk
ZS9iaXRzL3dvcmRzaXplLmgiIDEgMyA0Cj4+ICMgMjMgIi91c3IvaW5jbHVkZS9iaXRzL3NlbGVj
dC5oIiAyIDMgNAo+PiAjIDMxICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAyIDMgNAo+Pgo+
Pgo+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ3NldC5oIiAxIDMgNAo+PiAjIDIyICIvdXNy
L2luY2x1ZGUvYml0cy9zaWdzZXQuaCIgMyA0Cj4+IHR5cGVkZWYgaW50IF9fc2lnX2F0b21pY190
Owo+Pgo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIHN0cnVjdAo+PiAgIHsKPj4gICAgIHVuc2lnbmVkIGxv
bmcgaW50IF9fdmFsWygxMDI0IC8gKDggKiBzaXplb2YgKHVuc2lnbmVkIGxvbmcgaW50KSkpXTsK
Pj4gICB9IF9fc2lnc2V0X3Q7Cj4+ICMgMzQgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDIg
MyA0Cj4+Cj4+Cj4+Cj4+IHR5cGVkZWYgX19zaWdzZXRfdCBzaWdzZXRfdDsKPj4KPj4KPj4KPj4K
Pj4KPj4gIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMgNAo+PiAjIDEyMCAiL3Vzci9pbmNs
dWRlL3RpbWUuaCIgMyA0Cj4+IHN0cnVjdCB0aW1lc3BlYwo+PiAgIHsKPj4gICAgIF9fdGltZV90
IHR2X3NlYzsKPj4gICAgIF9fc3lzY2FsbF9zbG9uZ190IHR2X25zZWM7Cj4+ICAgfTsKPj4gIyA0
NCAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMiAzIDQKPj4KPj4gIyAxICIvdXNyL2luY2x1
ZGUvYml0cy90aW1lLmgiIDEgMyA0Cj4+ICMgMzAgIi91c3IvaW5jbHVkZS9iaXRzL3RpbWUuaCIg
MyA0Cj4+IHN0cnVjdCB0aW1ldmFsCj4+ICAgewo+PiAgICAgX190aW1lX3QgdHZfc2VjOwo+PiAg
ICAgX19zdXNlY29uZHNfdCB0dl91c2VjOwo+PiAgIH07Cj4+ICMgNDYgIi91c3IvaW5jbHVkZS9z
eXMvc2VsZWN0LmgiIDIgMyA0Cj4+Cj4+Cj4+IHR5cGVkZWYgX19zdXNlY29uZHNfdCBzdXNlY29u
ZHNfdDsKPj4KPj4KPj4KPj4KPj4KPj4gdHlwZWRlZiBsb25nIGludCBfX2ZkX21hc2s7Cj4+ICMg
NjQgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDMgNAo+PiB0eXBlZGVmIHN0cnVjdAo+PiAg
IHsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gICAgIF9fZmRfbWFzayBfX2Zkc19iaXRzWzEwMjQgLyAo
OCAqIChpbnQpIHNpemVvZiAoX19mZF9tYXNrKSldOwo+Pgo+Pgo+PiAgIH0gZmRfc2V0Owo+Pgo+
Pgo+Pgo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIF9fZmRfbWFzayBmZF9tYXNrOwo+PiAjIDk2ICIvdXNy
L2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzIDQKPj4KPj4gIyAxMDYgIi91c3IvaW5jbHVkZS9zeXMv
c2VsZWN0LmgiIDMgNAo+PiBleHRlcm4gaW50IHNlbGVjdCAoaW50IF9fbmZkcywgZmRfc2V0ICpf
X3Jlc3RyaWN0IF9fcmVhZGZkcywKPj4gICAgICBmZF9zZXQgKl9fcmVzdHJpY3QgX193cml0ZWZk
cywKPj4gICAgICBmZF9zZXQgKl9fcmVzdHJpY3QgX19leGNlcHRmZHMsCj4+ICAgICAgc3RydWN0
IHRpbWV2YWwgKl9fcmVzdHJpY3QgX190aW1lb3V0KTsKPj4gIyAxMTggIi91c3IvaW5jbHVkZS9z
eXMvc2VsZWN0LmgiIDMgNAo+PiBleHRlcm4gaW50IHBzZWxlY3QgKGludCBfX25mZHMsIGZkX3Nl
dCAqX19yZXN0cmljdCBfX3JlYWRmZHMsCj4+ICAgICAgIGZkX3NldCAqX19yZXN0cmljdCBfX3dy
aXRlZmRzLAo+PiAgICAgICBmZF9zZXQgKl9fcmVzdHJpY3QgX19leGNlcHRmZHMsCj4+ICAgICAg
IGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqX19yZXN0cmljdCBfX3RpbWVvdXQsCj4+ICAgICAgIGNv
bnN0IF9fc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19zaWdtYXNrKTsKPj4gIyAxMzEgIi91c3IvaW5j
bHVkZS9zeXMvc2VsZWN0LmgiIDMgNAo+Pgo+PiAjIDIyMCAiL3Vzci9pbmNsdWRlL3N5cy90eXBl
cy5oIiAyIDMgNAo+Pgo+Pgo+PiAjIDEgIi91c3IvaW5jbHVkZS9zeXMvc3lzbWFjcm9zLmgiIDEg
MyA0Cj4+ICMgMjQgIi91c3IvaW5jbHVkZS9zeXMvc3lzbWFjcm9zLmgiIDMgNAo+Pgo+Pgo+PiBf
X2V4dGVuc2lvbl9fCj4+IGV4dGVybiB1bnNpZ25lZCBpbnQgZ251X2Rldl9tYWpvciAodW5zaWdu
ZWQgbG9uZyBsb25nIGludCBfX2RldikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPj4gX19leHRlbnNp
b25fXwo+PiBleHRlcm4gdW5zaWduZWQgaW50IGdudV9kZXZfbWlub3IgKHVuc2lnbmVkIGxvbmcg
bG9uZyBpbnQgX19kZXYpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4+IF9fZXh0ZW5zaW9uX18KPj4g
ZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgZ251X2Rldl9tYWtlZGV2ICh1bnNpZ25lZCBp
bnQgX19tYWpvciwKPj4gICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fbWlub3IpCj4+ICAgICAg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo
X19jb25zdF9fKSk7Cj4+ICMgNTggIi91c3IvaW5jbHVkZS9zeXMvc3lzbWFjcm9zLmgiIDMgNAo+
Pgo+PiAjIDIyMyAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAyIDMgNAo+Pgo+Pgo+Pgo+Pgo+
Pgo+PiB0eXBlZGVmIF9fYmxrc2l6ZV90IGJsa3NpemVfdDsKPj4KPj4KPj4KPj4KPj4KPj4KPj4g
dHlwZWRlZiBfX2Jsa2NudF90IGJsa2NudF90Owo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIF9fZnNibGtj
bnRfdCBmc2Jsa2NudF90Owo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIF9fZnNmaWxjbnRfdCBmc2ZpbGNu
dF90Owo+PiAjIDI3MCAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKPj4gIyAxICIvdXNy
L2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMSAzIDQKPj4gIyAyMSAiL3Vzci9pbmNsdWRl
L2JpdHMvcHRocmVhZHR5cGVzLmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3dvcmRz
aXplLmgiIDEgMyA0Cj4+ICMgMjIgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAy
IDMgNAo+PiAjIDYwICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMyA0Cj4+IHR5
cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgcHRocmVhZF90Owo+Pgo+Pgo+PiB1bmlvbiBwdGhyZWFk
X2F0dHJfdAo+PiB7Cj4+ICAgY2hhciBfX3NpemVbMzZdOwo+PiAgIGxvbmcgaW50IF9fYWxpZ247
Cj4+IH07Cj4+Cj4+IHR5cGVkZWYgdW5pb24gcHRocmVhZF9hdHRyX3QgcHRocmVhZF9hdHRyX3Q7
Cj4+ICMgODEgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAzIDQKPj4gdHlwZWRl
ZiBzdHJ1Y3QgX19wdGhyZWFkX2ludGVybmFsX3NsaXN0Cj4+IHsKPj4gICBzdHJ1Y3QgX19wdGhy
ZWFkX2ludGVybmFsX3NsaXN0ICpfX25leHQ7Cj4+IH0gX19wdGhyZWFkX3NsaXN0X3Q7Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+IHR5cGVkZWYgdW5pb24KPj4gewo+PiAgIHN0cnVjdCBfX3B0aHJlYWRfbXV0
ZXhfcwo+PiAgIHsKPj4gICAgIGludCBfX2xvY2s7Cj4+ICAgICB1bnNpZ25lZCBpbnQgX19jb3Vu
dDsKPj4gICAgIGludCBfX293bmVyOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiAgICAgaW50IF9fa2luZDsK
Pj4gIyAxMTEgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAzIDQKPj4gICAgIHVu
c2lnbmVkIGludCBfX251c2VyczsKPj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPj4gICAgIHsK
Pj4gICAgICAgc3RydWN0Cj4+ICAgICAgIHsKPj4gIHNob3J0IF9fZXNwaW5zOwo+PiAgc2hvcnQg
X19lbGlzaW9uOwo+Pgo+Pgo+Pgo+PiAgICAgICB9IF9fZWxpc2lvbl9kYXRhOwo+PiAgICAgICBf
X3B0aHJlYWRfc2xpc3RfdCBfX2xpc3Q7Cj4+ICAgICB9Owo+Pgo+PiAgIH0gX19kYXRhOwo+PiAg
IGNoYXIgX19zaXplWzI0XTsKPj4gICBsb25nIGludCBfX2FsaWduOwo+PiB9IHB0aHJlYWRfbXV0
ZXhfdDsKPj4KPj4gdHlwZWRlZiB1bmlvbgo+PiB7Cj4+ICAgY2hhciBfX3NpemVbNF07Cj4+ICAg
aW50IF9fYWxpZ247Cj4+IH0gcHRocmVhZF9tdXRleGF0dHJfdDsKPj4KPj4KPj4KPj4KPj4gdHlw
ZWRlZiB1bmlvbgo+PiB7Cj4+ICAgc3RydWN0Cj4+ICAgewo+PiAgICAgaW50IF9fbG9jazsKPj4g
ICAgIHVuc2lnbmVkIGludCBfX2Z1dGV4Owo+PiAgICAgX19leHRlbnNpb25fXyB1bnNpZ25lZCBs
b25nIGxvbmcgaW50IF9fdG90YWxfc2VxOwo+PiAgICAgX19leHRlbnNpb25fXyB1bnNpZ25lZCBs
b25nIGxvbmcgaW50IF9fd2FrZXVwX3NlcTsKPj4gICAgIF9fZXh0ZW5zaW9uX18gdW5zaWduZWQg
bG9uZyBsb25nIGludCBfX3dva2VuX3NlcTsKPj4gICAgIHZvaWQgKl9fbXV0ZXg7Cj4+ICAgICB1
bnNpZ25lZCBpbnQgX19ud2FpdGVyczsKPj4gICAgIHVuc2lnbmVkIGludCBfX2Jyb2FkY2FzdF9z
ZXE7Cj4+ICAgfSBfX2RhdGE7Cj4+ICAgY2hhciBfX3NpemVbNDhdOwo+PiAgIF9fZXh0ZW5zaW9u
X18gbG9uZyBsb25nIGludCBfX2FsaWduOwo+PiB9IHB0aHJlYWRfY29uZF90Owo+Pgo+PiB0eXBl
ZGVmIHVuaW9uCj4+IHsKPj4gICBjaGFyIF9fc2l6ZVs0XTsKPj4gICBpbnQgX19hbGlnbjsKPj4g
fSBwdGhyZWFkX2NvbmRhdHRyX3Q7Cj4+Cj4+Cj4+Cj4+IHR5cGVkZWYgdW5zaWduZWQgaW50IHB0
aHJlYWRfa2V5X3Q7Cj4+Cj4+Cj4+Cj4+IHR5cGVkZWYgaW50IHB0aHJlYWRfb25jZV90Owo+Pgo+
Pgo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIHVuaW9uCj4+IHsKPj4gIyAyMDIgIi91c3IvaW5jbHVkZS9i
aXRzL3B0aHJlYWR0eXBlcy5oIiAzIDQKPj4gICBzdHJ1Y3QKPj4gICB7Cj4+ICAgICBpbnQgX19s
b2NrOwo+PiAgICAgdW5zaWduZWQgaW50IF9fbnJfcmVhZGVyczsKPj4gICAgIHVuc2lnbmVkIGlu
dCBfX3JlYWRlcnNfd2FrZXVwOwo+PiAgICAgdW5zaWduZWQgaW50IF9fd3JpdGVyX3dha2V1cDsK
Pj4gICAgIHVuc2lnbmVkIGludCBfX25yX3JlYWRlcnNfcXVldWVkOwo+PiAgICAgdW5zaWduZWQg
aW50IF9fbnJfd3JpdGVyc19xdWV1ZWQ7Cj4+Cj4+Cj4+ICAgICB1bnNpZ25lZCBjaGFyIF9fZmxh
Z3M7Cj4+ICAgICB1bnNpZ25lZCBjaGFyIF9fc2hhcmVkOwo+PiAgICAgc2lnbmVkIGNoYXIgX19y
d2VsaXNpb247Cj4+Cj4+ICAgICB1bnNpZ25lZCBjaGFyIF9fcGFkMjsKPj4gICAgIGludCBfX3dy
aXRlcjsKPj4gICB9IF9fZGF0YTsKPj4KPj4gICBjaGFyIF9fc2l6ZVszMl07Cj4+ICAgbG9uZyBp
bnQgX19hbGlnbjsKPj4gfSBwdGhyZWFkX3J3bG9ja190Owo+Pgo+PiB0eXBlZGVmIHVuaW9uCj4+
IHsKPj4gICBjaGFyIF9fc2l6ZVs4XTsKPj4gICBsb25nIGludCBfX2FsaWduOwo+PiB9IHB0aHJl
YWRfcndsb2NrYXR0cl90Owo+Pgo+Pgo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIHZvbGF0aWxlIGludCBw
dGhyZWFkX3NwaW5sb2NrX3Q7Cj4+Cj4+Cj4+Cj4+Cj4+IHR5cGVkZWYgdW5pb24KPj4gewo+PiAg
IGNoYXIgX19zaXplWzIwXTsKPj4gICBsb25nIGludCBfX2FsaWduOwo+PiB9IHB0aHJlYWRfYmFy
cmllcl90Owo+Pgo+PiB0eXBlZGVmIHVuaW9uCj4+IHsKPj4gICBjaGFyIF9fc2l6ZVs0XTsKPj4g
ICBpbnQgX19hbGlnbjsKPj4gfSBwdGhyZWFkX2JhcnJpZXJhdHRyX3Q7Cj4+ICMgMjcxICIvdXNy
L2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMyA0Cj4+Cj4+Cj4+Cj4+ICMgMzE1ICIvdXNyL2luY2x1
ZGUvc3RkbGliLmgiIDIgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBsb25nIGludCBy
YW5kb20gKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+
Cj4+Cj4+IGV4dGVybiB2b2lkIHNyYW5kb20gKHVuc2lnbmVkIGludCBfX3NlZWQpIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVy
biBjaGFyICppbml0c3RhdGUgKHVuc2lnbmVkIGludCBfX3NlZWQsIGNoYXIgKl9fc3RhdGVidWYs
Cj4+ICAgIHNpemVfdCBfX3N0YXRlbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPj4KPj4KPj4KPj4g
ZXh0ZXJuIGNoYXIgKnNldHN0YXRlIChjaGFyICpfX3N0YXRlYnVmKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkp
KTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4gc3RydWN0IHJhbmRvbV9kYXRhCj4+ICAgewo+PiAg
ICAgaW50MzJfdCAqZnB0cjsKPj4gICAgIGludDMyX3QgKnJwdHI7Cj4+ICAgICBpbnQzMl90ICpz
dGF0ZTsKPj4gICAgIGludCByYW5kX3R5cGU7Cj4+ICAgICBpbnQgcmFuZF9kZWc7Cj4+ICAgICBp
bnQgcmFuZF9zZXA7Cj4+ICAgICBpbnQzMl90ICplbmRfcHRyOwo+PiAgIH07Cj4+Cj4+IGV4dGVy
biBpbnQgcmFuZG9tX3IgKHN0cnVjdCByYW5kb21fZGF0YSAqX19yZXN0cmljdCBfX2J1ZiwKPj4g
ICAgICAgIGludDMyX3QgKl9fcmVzdHJpY3QgX19yZXN1bHQpIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkp
Owo+Pgo+PiBleHRlcm4gaW50IHNyYW5kb21fciAodW5zaWduZWQgaW50IF9fc2VlZCwgc3RydWN0
IHJhbmRvbV9kYXRhICpfX2J1ZikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPj4KPj4gZXh0
ZXJuIGludCBpbml0c3RhdGVfciAodW5zaWduZWQgaW50IF9fc2VlZCwgY2hhciAqX19yZXN0cmlj
dCBfX3N0YXRlYnVmLAo+PiAgICBzaXplX3QgX19zdGF0ZWxlbiwKPj4gICAgc3RydWN0IHJhbmRv
bV9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyLCA0KSkpOwo+
Pgo+PiBleHRlcm4gaW50IHNldHN0YXRlX3IgKGNoYXIgKl9fcmVzdHJpY3QgX19zdGF0ZWJ1ZiwK
Pj4gICAgICAgICAgc3RydWN0IHJhbmRvbV9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmKQo+PiAgICAg
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo
KF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHJh
bmQgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+
IGV4dGVybiB2b2lkIHNyYW5kICh1bnNpZ25lZCBpbnQgX19zZWVkKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHJhbmRf
ciAodW5zaWduZWQgaW50ICpfX3NlZWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBkb3VibGUgZHJhbmQ0OCAo
dm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gZXh0ZXJu
IGRvdWJsZSBlcmFuZDQ4ICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3ViaVszXSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs
X18gKDEpKSk7Cj4+Cj4+Cj4+IGV4dGVybiBsb25nIGludCBscmFuZDQ4ICh2b2lkKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+PiBleHRlcm4gbG9uZyBpbnQgbnJh
bmQ0OCAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10pCj4+ICAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDEpKSk7Cj4+Cj4+Cj4+IGV4dGVybiBsb25nIGludCBtcmFuZDQ4ICh2b2lkKSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+PiBleHRlcm4gbG9uZyBpbnQganJhbmQ0
OCAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10pCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEp
KSk7Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIHNyYW5kNDggKGxvbmcgaW50IF9fc2VlZHZhbCkgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gZXh0ZXJuIHVuc2lnbmVk
IHNob3J0IGludCAqc2VlZDQ4ICh1bnNpZ25lZCBzaG9ydCBpbnQgX19zZWVkMTZ2WzNdKQo+PiAg
ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+PiBleHRlcm4gdm9pZCBsY29uZzQ4ICh1bnNpZ25lZCBz
aG9ydCBpbnQgX19wYXJhbVs3XSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+
IHN0cnVjdCBkcmFuZDQ4X2RhdGEKPj4gICB7Cj4+ICAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX194
WzNdOwo+PiAgICAgdW5zaWduZWQgc2hvcnQgaW50IF9fb2xkX3hbM107Cj4+ICAgICB1bnNpZ25l
ZCBzaG9ydCBpbnQgX19jOwo+PiAgICAgdW5zaWduZWQgc2hvcnQgaW50IF9faW5pdDsKPj4gICAg
IF9fZXh0ZW5zaW9uX18gdW5zaWduZWQgbG9uZyBsb25nIGludCBfX2E7Cj4+Cj4+ICAgfTsKPj4K
Pj4KPj4gZXh0ZXJuIGludCBkcmFuZDQ4X3IgKHN0cnVjdCBkcmFuZDQ4X2RhdGEgKl9fcmVzdHJp
Y3QgX19idWZmZXIsCj4+ICAgICAgICAgZG91YmxlICpfX3Jlc3RyaWN0IF9fcmVzdWx0KSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMSwgMikpKTsKPj4gZXh0ZXJuIGludCBlcmFuZDQ4X3IgKHVuc2lnbmVkIHNob3J0
IGludCBfX3hzdWJpWzNdLAo+PiAgICAgICAgIHN0cnVjdCBkcmFuZDQ4X2RhdGEgKl9fcmVzdHJp
Y3QgX19idWZmZXIsCj4+ICAgICAgICAgZG91YmxlICpfX3Jlc3RyaWN0IF9fcmVzdWx0KSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMSwgMikpKTsKPj4KPj4KPj4gZXh0ZXJuIGludCBscmFuZDQ4X3IgKHN0cnVjdCBk
cmFuZDQ4X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCj4+ICAgICAgICAgbG9uZyBpbnQgKl9f
cmVzdHJpY3QgX19yZXN1bHQpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4+IGV4dGVy
biBpbnQgbnJhbmQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3ViaVszXSwKPj4gICAgICAg
ICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAo+PiAgICAgICAgIGxv
bmcgaW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkp
Owo+Pgo+Pgo+PiBleHRlcm4gaW50IG1yYW5kNDhfciAoc3RydWN0IGRyYW5kNDhfZGF0YSAqX19y
ZXN0cmljdCBfX2J1ZmZlciwKPj4gICAgICAgICBsb25nIGludCAqX19yZXN0cmljdCBfX3Jlc3Vs
dCkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0
cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPj4gZXh0ZXJuIGludCBqcmFuZDQ4X3Ig
KHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdLAo+PiAgICAgICAgIHN0cnVjdCBkcmFuZDQ4
X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCj4+ICAgICAgICAgbG9uZyBpbnQgKl9fcmVzdHJp
Y3QgX19yZXN1bHQpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4+Cj4+Cj4+IGV4dGVy
biBpbnQgc3JhbmQ0OF9yIChsb25nIGludCBfX3NlZWR2YWwsIHN0cnVjdCBkcmFuZDQ4X2RhdGEg
Kl9fYnVmZmVyKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpOwo+Pgo+PiBleHRlcm4gaW50IHNl
ZWQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX19zZWVkMTZ2WzNdLAo+PiAgICAgICAgc3RydWN0
IGRyYW5kNDhfZGF0YSAqX19idWZmZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+Pgo+PiBleHRl
cm4gaW50IGxjb25nNDhfciAodW5zaWduZWQgc2hvcnQgaW50IF9fcGFyYW1bN10sCj4+ICAgICAg
ICAgc3RydWN0IGRyYW5kNDhfZGF0YSAqX19idWZmZXIpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEs
IDIpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkICptYWxsb2Mg
KHNpemVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg
X19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSA7Cj4+Cj4+IGV4dGVybiB2b2lkICpjYWxsb2Mg
KHNpemVfdCBfX25tZW1iLCBzaXplX3QgX19zaXplKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSA7Cj4+
Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkICpyZWFsbG9jICh2b2lk
ICpfX3B0ciwgc2l6ZV90IF9fc2l6ZSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7
Cj4+Cj4+IGV4dGVybiB2b2lkIGZyZWUgKHZvaWQgKl9fcHRyKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gdm9pZCBjZnJlZSAo
dm9pZCAqX19wdHIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+
Cj4+Cj4+Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FsbG9jYS5oIiAxIDMgNAo+PiAjIDI0ICIvdXNy
L2luY2x1ZGUvYWxsb2NhLmgiIDMgNAo+PiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1s
aW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAo+PiAjIDI1ICIvdXNyL2luY2x1ZGUv
YWxsb2NhLmgiIDIgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkICphbGxv
Y2EgKHNpemVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+ICMgNDkzICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDIg
MyA0Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkICp2YWxsb2MgKHNpemVfdCBfX3NpemUp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo
KF9fbWFsbG9jX18pKSA7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgcG9zaXhfbWVtYWxpZ24g
KHZvaWQgKipfX21lbXB0ciwgc2l6ZV90IF9fYWxpZ25tZW50LCBzaXplX3QgX19zaXplKQo+PiAg
ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHZvaWQgKmFsaWdu
ZWRfYWxsb2MgKHNpemVfdCBfX2FsaWdubWVudCwgc2l6ZV90IF9fc2l6ZSkKPj4gICAgICBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21h
bGxvY19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fYWxsb2Nfc2l6ZV9fICgyKSkpIDsKPj4KPj4KPj4K
Pj4KPj4gZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9yZXR1cm5fXykpOwo+Pgo+Pgo+Pgo+
PiBleHRlcm4gaW50IGF0ZXhpdCAodm9pZCAoKl9fZnVuYykgKHZvaWQpKSBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSkpKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBhdF9xdWlja19leGl0ICh2
b2lkICgqX19mdW5jKSAodm9pZCkpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+
Pgo+Pgo+PiBleHRlcm4gaW50IG9uX2V4aXQgKHZvaWQgKCpfX2Z1bmMpIChpbnQgX19zdGF0dXMs
IHZvaWQgKl9fYXJnKSwgdm9pZCAqX19hcmcpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4+
Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIGV4aXQgKGludCBfX3N0YXR1cykgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Jl
dHVybl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIHF1aWNrX2V4aXQgKGludCBf
X3N0YXR1cykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3JldHVybl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2
b2lkIF9FeGl0IChpbnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9yZXR1cm5fXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+
Pgo+PiBleHRlcm4gY2hhciAqZ2V0ZW52IChjb25zdCBjaGFyICpfX25hbWUpIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f
ICgxKSkpIDsKPj4KPj4gIyA1NzggIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0Cj4+IGV4dGVy
biBpbnQgcHV0ZW52IChjaGFyICpfX3N0cmluZykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4+Cj4+Cj4+
Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgc2V0ZW52IChjb25zdCBjaGFyICpfX25hbWUsIGNvbnN0IGNo
YXIgKl9fdmFsdWUsIGludCBfX3JlcGxhY2UpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4+
Cj4+Cj4+IGV4dGVybiBpbnQgdW5zZXRlbnYgKGNvbnN0IGNoYXIgKl9fbmFtZSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs
X18gKDEpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgY2xlYXJlbnYgKHZvaWQp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+ICMgNjA2ICIvdXNy
L2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+PiBleHRlcm4gY2hhciAqbWt0ZW1wIChjaGFyICpfX3Rl
bXBsYXRlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmli
dXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4gIyA2MTkgIi91c3IvaW5jbHVkZS9zdGRsaWIu
aCIgMyA0Cj4+IGV4dGVybiBpbnQgbWtzdGVtcCAoY2hhciAqX190ZW1wbGF0ZSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPj4gIyA2NDEgIi91c3IvaW5jbHVkZS9zdGRsaWIu
aCIgMyA0Cj4+IGV4dGVybiBpbnQgbWtzdGVtcHMgKGNoYXIgKl9fdGVtcGxhdGUsIGludCBfX3N1
ZmZpeGxlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPj4gIyA2NjIgIi91
c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0Cj4+IGV4dGVybiBjaGFyICpta2R0ZW1wIChjaGFyICpf
X3RlbXBsYXRlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0
cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4+ICMgNzExICIvdXNyL2luY2x1ZGUvc3Rk
bGliLmgiIDMgNAo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHN5c3RlbSAoY29uc3QgY2hh
ciAqX19jb21tYW5kKSA7Cj4+Cj4+ICMgNzMzICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+
PiBleHRlcm4gY2hhciAqcmVhbHBhdGggKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19uYW1lLAo+
PiAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fcmVzb2x2ZWQpIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIGlu
dCAoKl9fY29tcGFyX2ZuX3QpIChjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKik7Cj4+ICMgNzUx
ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+Pgo+Pgo+Pgo+PiBleHRlcm4gdm9pZCAqYnNl
YXJjaCAoY29uc3Qgdm9pZCAqX19rZXksIGNvbnN0IHZvaWQgKl9fYmFzZSwKPj4gICAgICAgICBz
aXplX3QgX19ubWVtYiwgc2l6ZV90IF9fc2l6ZSwgX19jb21wYXJfZm5fdCBfX2NvbXBhcikKPj4g
ICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIsIDUpKSkgOwo+Pgo+Pgo+Pgo+
Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gdm9pZCBxc29ydCAodm9pZCAqX19iYXNlLCBzaXplX3QgX19u
bWVtYiwgc2l6ZV90IF9fc2l6ZSwKPj4gICAgICBfX2NvbXBhcl9mbl90IF9fY29tcGFyKSBfX2F0
dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDQpKSk7Cj4+ICMgNzc0ICIvdXNyL2luY2x1ZGUv
c3RkbGliLmgiIDMgNAo+PiBleHRlcm4gaW50IGFicyAoaW50IF9feCkgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSkgOwo+
PiBleHRlcm4gbG9uZyBpbnQgbGFicyAobG9uZyBpbnQgX194KSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKSA7Cj4+Cj4+
Cj4+Cj4+IF9fZXh0ZW5zaW9uX18gZXh0ZXJuIGxvbmcgbG9uZyBpbnQgbGxhYnMgKGxvbmcgbG9u
ZyBpbnQgX194KQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpIDsKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4g
ZXh0ZXJuIGRpdl90IGRpdiAoaW50IF9fbnVtZXIsIGludCBfX2Rlbm9tKQo+PiAgICAgIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29u
c3RfXykpIDsKPj4gZXh0ZXJuIGxkaXZfdCBsZGl2IChsb25nIGludCBfX251bWVyLCBsb25nIGlu
dCBfX2Rlbm9tKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpIDsKPj4KPj4KPj4KPj4KPj4gX19leHRlbnNp
b25fXyBleHRlcm4gbGxkaXZfdCBsbGRpdiAobG9uZyBsb25nIGludCBfX251bWVyLAo+PiAgICAg
ICAgIGxvbmcgbG9uZyBpbnQgX19kZW5vbSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKSA7Cj4+Cj4+ICMg
ODExICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+PiBleHRlcm4gY2hhciAqZWN2dCAoZG91
YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsCj4+ICAg
ICAgaW50ICpfX3Jlc3RyaWN0IF9fc2lnbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQpKSkgOwo+Pgo+Pgo+
Pgo+Pgo+PiBleHRlcm4gY2hhciAqZmN2dCAoZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwg
aW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsCj4+ICAgICAgaW50ICpfX3Jlc3RyaWN0IF9fc2lnbikg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo
X19ub25udWxsX18gKDMsIDQpKSkgOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gY2hhciAqZ2N2dCAo
ZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgY2hhciAqX19idWYpCj4+ICAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u
dWxsX18gKDMpKSkgOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gY2hhciAqcWVjdnQgKGxvbmcgZG91
YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwKPj4gICAgICAgaW50ICpfX3Jlc3RyaWN0IF9fZGVj
cHQsIGludCAqX19yZXN0cmljdCBfX3NpZ24pCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQpKSkg
Owo+PiBleHRlcm4gY2hhciAqcWZjdnQgKGxvbmcgZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdp
dCwKPj4gICAgICAgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsIGludCAqX19yZXN0cmljdCBfX3Np
Z24pCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQpKSkgOwo+PiBleHRlcm4gY2hhciAqcWdjdnQg
KGxvbmcgZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgY2hhciAqX19idWYpCj4+ICAgICAg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo
X19ub25udWxsX18gKDMpKSkgOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGVjdnRfciAoZG91
YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsCj4+ICAg
ICAgaW50ICpfX3Jlc3RyaWN0IF9fc2lnbiwgY2hhciAqX19yZXN0cmljdCBfX2J1ZiwKPj4gICAg
ICBzaXplX3QgX19sZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg
X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0LCA1KSkpOwo+PiBleHRlcm4gaW50IGZj
dnRfciAoZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgaW50ICpfX3Jlc3RyaWN0IF9fZGVj
cHQsCj4+ICAgICAgaW50ICpfX3Jlc3RyaWN0IF9fc2lnbiwgY2hhciAqX19yZXN0cmljdCBfX2J1
ZiwKPj4gICAgICBzaXplX3QgX19sZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0LCA1KSkpOwo+Pgo+PiBl
eHRlcm4gaW50IHFlY3Z0X3IgKGxvbmcgZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwKPj4g
ICAgICAgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsIGludCAqX19yZXN0cmljdCBfX3NpZ24sCj4+
ICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX2xlbikKPj4gICAgICBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMywgNCwgNSkpKTsKPj4gZXh0ZXJuIGludCBxZmN2dF9yIChsb25nIGRvdWJsZSBf
X3ZhbHVlLCBpbnQgX19uZGlnaXQsCj4+ICAgICAgIGludCAqX19yZXN0cmljdCBfX2RlY3B0LCBp
bnQgKl9fcmVzdHJpY3QgX19zaWduLAo+PiAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBz
aXplX3QgX19sZW4pCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQsIDUpKSk7Cj4+Cj4+Cj4+Cj4+
Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgbWJsZW4gKGNvbnN0IGNoYXIgKl9fcywgc2l6ZV90IF9fbikg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4gZXh0ZXJu
IGludCBtYnRvd2MgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19wd2MsCj4+ICAgICAgY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgd2N0b21iIChjaGFyICpfX3MsIHdj
aGFyX3QgX193Y2hhcikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK
Pj4KPj4KPj4KPj4gZXh0ZXJuIHNpemVfdCBtYnN0b3djcyAod2NoYXJfdCAqX19yZXN0cmljdCBf
X3B3Y3MsCj4+ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+PiBleHRlcm4gc2l6ZV90
IHdjc3RvbWJzIChjaGFyICpfX3Jlc3RyaWN0IF9fcywKPj4gICAgY29uc3Qgd2NoYXJfdCAqX19y
ZXN0cmljdCBfX3B3Y3MsIHNpemVfdCBfX24pCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGlu
dCBycG1hdGNoIChjb25zdCBjaGFyICpfX3Jlc3BvbnNlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4+
ICMgODk4ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+PiBleHRlcm4gaW50IGdldHN1Ym9w
dCAoY2hhciAqKl9fcmVzdHJpY3QgX19vcHRpb25wLAo+PiAgICAgICAgIGNoYXIgKmNvbnN0ICpf
X3Jlc3RyaWN0IF9fdG9rZW5zLAo+PiAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fdmFsdWVw
KQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyLCAzKSkpIDsKPj4gIyA5NTAgIi91c3IvaW5jbHVk
ZS9zdGRsaWIuaCIgMyA0Cj4+IGV4dGVybiBpbnQgZ2V0bG9hZGF2ZyAoZG91YmxlIF9fbG9hZGF2
Z1tdLCBpbnQgX19uZWxlbSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4KPj4gIyAx
ICIvdXNyL2luY2x1ZGUvYml0cy9zdGRsaWItZmxvYXQuaCIgMSAzIDQKPj4gIyA5NTUgIi91c3Iv
aW5jbHVkZS9zdGRsaWIuaCIgMiAzIDQKPj4gIyA5NjcgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIg
MyA0Cj4+Cj4+ICMgNDEgIm1hY2hpbmUuYyIgMgo+PiAjIDEgIi91c3IvaW5jbHVkZS9zaWduYWwu
aCIgMSAzIDQKPj4gIyAzMCAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPj4KPj4KPj4gIyAx
ICIvdXNyL2luY2x1ZGUvYml0cy9zaWdzZXQuaCIgMSAzIDQKPj4gIyAxMDIgIi91c3IvaW5jbHVk
ZS9iaXRzL3NpZ3NldC5oIiAzIDQKPj4gZXh0ZXJuIGludCBfX3NpZ2lzbWVtYmVyIChjb25zdCBf
X3NpZ3NldF90ICosIGludCk7Cj4+IGV4dGVybiBpbnQgX19zaWdhZGRzZXQgKF9fc2lnc2V0X3Qg
KiwgaW50KTsKPj4gZXh0ZXJuIGludCBfX3NpZ2RlbHNldCAoX19zaWdzZXRfdCAqLCBpbnQpOwo+
PiAjIDMzICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+
Cj4+IHR5cGVkZWYgX19zaWdfYXRvbWljX3Qgc2lnX2F0b21pY190Owo+Pgo+PiAjIDU3ICIvdXNy
L2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ251bS5o
IiAxIDMgNAo+PiAjIDU4ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4+ICMgNzUgIi91
c3IvaW5jbHVkZS9zaWduYWwuaCIgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMSAz
IDQKPj4gIyA3NiAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAyIDMgNAo+Pgo+Pgo+Pgo+Pgo+PiAj
IDEgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ2luZm8uaCIgMSAzIDQKPj4gIyAyNCAiL3Vzci9pbmNs
dWRlL2JpdHMvc2lnaW5mby5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jkc2l6
ZS5oIiAxIDMgNAo+PiAjIDI1ICIvdXNyL2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDIgMyA0Cj4+
Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IHR5cGVkZWYgdW5pb24gc2lndmFsCj4+ICAgewo+PiAgICAg
aW50IHNpdmFsX2ludDsKPj4gICAgIHZvaWQgKnNpdmFsX3B0cjsKPj4gICB9IHNpZ3ZhbF90Owo+
PiAjIDU4ICIvdXNyL2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDMgNAo+PiB0eXBlZGVmIF9fY2xv
Y2tfdCBfX3NpZ2NobGRfY2xvY2tfdDsKPj4KPj4KPj4KPj4gdHlwZWRlZiBzdHJ1Y3QKPj4gICB7
Cj4+ICAgICBpbnQgc2lfc2lnbm87Cj4+ICAgICBpbnQgc2lfZXJybm87Cj4+Cj4+ICAgICBpbnQg
c2lfY29kZTsKPj4KPj4gICAgIHVuaW9uCj4+ICAgICAgIHsKPj4gIGludCBfcGFkWygoMTI4IC8g
c2l6ZW9mIChpbnQpKSAtIDMpXTsKPj4KPj4KPj4gIHN0cnVjdAo+PiAgICB7Cj4+ICAgICAgX19w
aWRfdCBzaV9waWQ7Cj4+ICAgICAgX191aWRfdCBzaV91aWQ7Cj4+ICAgIH0gX2tpbGw7Cj4+Cj4+
Cj4+ICBzdHJ1Y3QKPj4gICAgewo+PiAgICAgIGludCBzaV90aWQ7Cj4+ICAgICAgaW50IHNpX292
ZXJydW47Cj4+ICAgICAgc2lndmFsX3Qgc2lfc2lndmFsOwo+PiAgICB9IF90aW1lcjsKPj4KPj4K
Pj4gIHN0cnVjdAo+PiAgICB7Cj4+ICAgICAgX19waWRfdCBzaV9waWQ7Cj4+ICAgICAgX191aWRf
dCBzaV91aWQ7Cj4+ICAgICAgc2lndmFsX3Qgc2lfc2lndmFsOwo+PiAgICB9IF9ydDsKPj4KPj4K
Pj4gIHN0cnVjdAo+PiAgICB7Cj4+ICAgICAgX19waWRfdCBzaV9waWQ7Cj4+ICAgICAgX191aWRf
dCBzaV91aWQ7Cj4+ICAgICAgaW50IHNpX3N0YXR1czsKPj4gICAgICBfX3NpZ2NobGRfY2xvY2tf
dCBzaV91dGltZTsKPj4gICAgICBfX3NpZ2NobGRfY2xvY2tfdCBzaV9zdGltZTsKPj4gICAgfSBf
c2lnY2hsZDsKPj4KPj4KPj4gIHN0cnVjdAo+PiAgICB7Cj4+ICAgICAgdm9pZCAqc2lfYWRkcjsK
Pj4gICAgICBzaG9ydCBpbnQgc2lfYWRkcl9sc2I7Cj4+ICAgICAgc3RydWN0Cj4+ICAgICAgICB7
Cj4+ICAgdm9pZCAqX2xvd2VyOwo+PiAgIHZvaWQgKl91cHBlcjsKPj4gICAgICAgIH0gc2lfYWRk
cl9ibmQ7Cj4+ICAgIH0gX3NpZ2ZhdWx0Owo+Pgo+Pgo+PiAgc3RydWN0Cj4+ICAgIHsKPj4gICAg
ICBsb25nIGludCBzaV9iYW5kOwo+PiAgICAgIGludCBzaV9mZDsKPj4gICAgfSBfc2lncG9sbDsK
Pj4KPj4KPj4gIHN0cnVjdAo+PiAgICB7Cj4+ICAgICAgdm9pZCAqX2NhbGxfYWRkcjsKPj4gICAg
ICBpbnQgX3N5c2NhbGw7Cj4+ICAgICAgdW5zaWduZWQgaW50IF9hcmNoOwo+PiAgICB9IF9zaWdz
eXM7Cj4+ICAgICAgIH0gX3NpZmllbGRzOwo+PiAgIH0gc2lnaW5mb190IDsKPj4gIyAxNjAgIi91
c3IvaW5jbHVkZS9iaXRzL3NpZ2luZm8uaCIgMyA0Cj4+IGVudW0KPj4gewo+PiAgIFNJX0FTWU5D
TkwgPSAtNjAsCj4+Cj4+ICAgU0lfVEtJTEwgPSAtNiwKPj4KPj4gICBTSV9TSUdJTywKPj4KPj4g
ICBTSV9BU1lOQ0lPLAo+Pgo+PiAgIFNJX01FU0dRLAo+Pgo+PiAgIFNJX1RJTUVSLAo+Pgo+PiAg
IFNJX1FVRVVFLAo+Pgo+PiAgIFNJX1VTRVIsCj4+Cj4+ICAgU0lfS0VSTkVMID0gMHg4MAo+Pgo+
PiB9Owo+Pgo+Pgo+Pgo+Pgo+PiBlbnVtCj4+IHsKPj4gICBJTExfSUxMT1BDID0gMSwKPj4KPj4g
ICBJTExfSUxMT1BOLAo+Pgo+PiAgIElMTF9JTExBRFIsCj4+Cj4+ICAgSUxMX0lMTFRSUCwKPj4K
Pj4gICBJTExfUFJWT1BDLAo+Pgo+PiAgIElMTF9QUlZSRUcsCj4+Cj4+ICAgSUxMX0NPUFJPQywK
Pj4KPj4gICBJTExfQkFEU1RLCj4+Cj4+IH07Cj4+Cj4+Cj4+IGVudW0KPj4gewo+PiAgIEZQRV9J
TlRESVYgPSAxLAo+Pgo+PiAgIEZQRV9JTlRPVkYsCj4+Cj4+ICAgRlBFX0ZMVERJViwKPj4KPj4g
ICBGUEVfRkxUT1ZGLAo+Pgo+PiAgIEZQRV9GTFRVTkQsCj4+Cj4+ICAgRlBFX0ZMVFJFUywKPj4K
Pj4gICBGUEVfRkxUSU5WLAo+Pgo+PiAgIEZQRV9GTFRTVUIKPj4KPj4gfTsKPj4KPj4KPj4gZW51
bQo+PiB7Cj4+ICAgU0VHVl9NQVBFUlIgPSAxLAo+Pgo+PiAgIFNFR1ZfQUNDRVJSCj4+Cj4+IH07
Cj4+Cj4+Cj4+IGVudW0KPj4gewo+PiAgIEJVU19BRFJBTE4gPSAxLAo+Pgo+PiAgIEJVU19BRFJF
UlIsCj4+Cj4+ICAgQlVTX09CSkVSUiwKPj4KPj4gICBCVVNfTUNFRVJSX0FSLAo+Pgo+PiAgIEJV
U19NQ0VFUlJfQU8KPj4KPj4gfTsKPj4gIyAyNjQgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ2luZm8u
aCIgMyA0Cj4+IGVudW0KPj4gewo+PiAgIENMRF9FWElURUQgPSAxLAo+Pgo+PiAgIENMRF9LSUxM
RUQsCj4+Cj4+ICAgQ0xEX0RVTVBFRCwKPj4KPj4gICBDTERfVFJBUFBFRCwKPj4KPj4gICBDTERf
U1RPUFBFRCwKPj4KPj4gICBDTERfQ09OVElOVUVECj4+Cj4+IH07Cj4+Cj4+Cj4+IGVudW0KPj4g
ewo+PiAgIFBPTExfSU4gPSAxLAo+Pgo+PiAgIFBPTExfT1VULAo+Pgo+PiAgIFBPTExfTVNHLAo+
Pgo+PiAgIFBPTExfRVJSLAo+Pgo+PiAgIFBPTExfUFJJLAo+Pgo+PiAgIFBPTExfSFVQCj4+Cj4+
IH07Cj4+ICMgMzIwICIvdXNyL2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDMgNAo+PiB0eXBlZGVm
IHN0cnVjdCBzaWdldmVudAo+PiAgIHsKPj4gICAgIHNpZ3ZhbF90IHNpZ2V2X3ZhbHVlOwo+PiAg
ICAgaW50IHNpZ2V2X3NpZ25vOwo+PiAgICAgaW50IHNpZ2V2X25vdGlmeTsKPj4KPj4gICAgIHVu
aW9uCj4+ICAgICAgIHsKPj4gIGludCBfcGFkWygoNjQgLyBzaXplb2YgKGludCkpIC0gMyldOwo+
Pgo+Pgo+Pgo+PiAgX19waWRfdCBfdGlkOwo+Pgo+PiAgc3RydWN0Cj4+ICAgIHsKPj4gICAgICB2
b2lkICgqX2Z1bmN0aW9uKSAoc2lndmFsX3QpOwo+PiAgICAgIHB0aHJlYWRfYXR0cl90ICpfYXR0
cmlidXRlOwo+PiAgICB9IF9zaWdldl90aHJlYWQ7Cj4+ICAgICAgIH0gX3NpZ2V2X3VuOwo+PiAg
IH0gc2lnZXZlbnRfdDsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gZW51bQo+PiB7Cj4+ICAgU0lHRVZf
U0lHTkFMID0gMCwKPj4KPj4gICBTSUdFVl9OT05FLAo+Pgo+PiAgIFNJR0VWX1RIUkVBRCwKPj4K
Pj4KPj4gICBTSUdFVl9USFJFQURfSUQgPSA0Cj4+Cj4+IH07Cj4+ICMgODEgIi91c3IvaW5jbHVk
ZS9zaWduYWwuaCIgMiAzIDQKPj4KPj4KPj4KPj4KPj4gdHlwZWRlZiB2b2lkICgqX19zaWdoYW5k
bGVyX3QpIChpbnQpOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gX19zaWdoYW5kbGVyX3QgX19zeXN2
X3NpZ25hbCAoaW50IF9fc2lnLCBfX3NpZ2hhbmRsZXJfdCBfX2hhbmRsZXIpCj4+ICAgICAgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gIyAxMDAgIi91c3IvaW5j
bHVkZS9zaWduYWwuaCIgMyA0Cj4+Cj4+Cj4+IGV4dGVybiBfX3NpZ2hhbmRsZXJfdCBzaWduYWwg
KGludCBfX3NpZywgX19zaWdoYW5kbGVyX3QgX19oYW5kbGVyKQo+PiAgICAgIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+ICMgMTE0ICIvdXNyL2luY2x1ZGUvc2ln
bmFsLmgiIDMgNAo+Pgo+PiAjIDEyNyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPj4gZXh0
ZXJuIGludCBraWxsIChfX3BpZF90IF9fcGlkLCBpbnQgX19zaWcpIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQg
a2lsbHBnIChfX3BpZF90IF9fcGdycCwgaW50IF9fc2lnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHJhaXNlIChpbnQg
X19zaWcpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+
Cj4+Cj4+IGV4dGVybiBfX3NpZ2hhbmRsZXJfdCBzc2lnbmFsIChpbnQgX19zaWcsIF9fc2lnaGFu
ZGxlcl90IF9faGFuZGxlcikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+PiBleHRlcm4gaW50IGdzaWduYWwgKGludCBfX3NpZykgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHZvaWQg
cHNpZ25hbCAoaW50IF9fc2lnLCBjb25zdCBjaGFyICpfX3MpOwo+Pgo+Pgo+PiBleHRlcm4gdm9p
ZCBwc2lnaW5mbyAoY29uc3Qgc2lnaW5mb190ICpfX3BpbmZvLCBjb25zdCBjaGFyICpfX3MpOwo+
PiAjIDE4NyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPj4gZXh0ZXJuIGludCBzaWdibG9j
ayAoaW50IF9fbWFzaykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf
X2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18pKTsKPj4KPj4KPj4gZXh0ZXJuIGludCBzaWdz
ZXRtYXNrIChpbnQgX19tYXNrKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIF9fYXR0cmlidXRlX18gKChfX2RlcHJlY2F0ZWRfXykpOwo+Pgo+Pgo+PiBleHRlcm4gaW50
IHNpZ2dldG1hc2sgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRlZF9fKSk7Cj4+ICMgMjA3ICIvdXNyL2luY2x1
ZGUvc2lnbmFsLmgiIDMgNAo+PiB0eXBlZGVmIF9fc2lnaGFuZGxlcl90IHNpZ190Owo+Pgo+Pgo+
Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHNpZ2VtcHR5c2V0IChzaWdzZXRfdCAqX19zZXQpIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxKSkpOwo+Pgo+Pgo+PiBleHRlcm4gaW50IHNpZ2ZpbGxzZXQgKHNpZ3NldF90ICpf
X3NldCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0
ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgc2lnYWRkc2V0IChz
aWdzZXRfdCAqX19zZXQsIGludCBfX3NpZ25vKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4KPj4g
ZXh0ZXJuIGludCBzaWdkZWxzZXQgKHNpZ3NldF90ICpfX3NldCwgaW50IF9fc2lnbm8pIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxKSkpOwo+Pgo+Pgo+PiBleHRlcm4gaW50IHNpZ2lzbWVtYmVyIChjb25zdCBzaWdz
ZXRfdCAqX19zZXQsIGludCBfX3NpZ25vKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+PiAj
IDI0MyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0
cy9zaWdhY3Rpb24uaCIgMSAzIDQKPj4gIyAyNCAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnYWN0aW9u
LmgiIDMgNAo+PiBzdHJ1Y3Qgc2lnYWN0aW9uCj4+ICAgewo+Pgo+Pgo+PiAgICAgdW5pb24KPj4g
ICAgICAgewo+Pgo+PiAgX19zaWdoYW5kbGVyX3Qgc2FfaGFuZGxlcjsKPj4KPj4gIHZvaWQgKCpz
YV9zaWdhY3Rpb24pIChpbnQsIHNpZ2luZm9fdCAqLCB2b2lkICopOwo+PiAgICAgICB9Cj4+ICAg
ICBfX3NpZ2FjdGlvbl9oYW5kbGVyOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiAgICAgX19zaWdz
ZXRfdCBzYV9tYXNrOwo+Pgo+Pgo+PiAgICAgaW50IHNhX2ZsYWdzOwo+Pgo+Pgo+PiAgICAgdm9p
ZCAoKnNhX3Jlc3RvcmVyKSAodm9pZCk7Cj4+ICAgfTsKPj4gIyAyNDQgIi91c3IvaW5jbHVkZS9z
aWduYWwuaCIgMiAzIDQKPj4KPj4KPj4gZXh0ZXJuIGludCBzaWdwcm9jbWFzayAoaW50IF9faG93
LCBjb25zdCBzaWdzZXRfdCAqX19yZXN0cmljdCBfX3NldCwKPj4gICAgc2lnc2V0X3QgKl9fcmVz
dHJpY3QgX19vc2V0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+
Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHNpZ3N1c3BlbmQgKGNvbnN0IHNpZ3NldF90
ICpfX3NldCkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+PiBleHRl
cm4gaW50IHNpZ2FjdGlvbiAoaW50IF9fc2lnLCBjb25zdCBzdHJ1Y3Qgc2lnYWN0aW9uICpfX3Jl
c3RyaWN0IF9fYWN0LAo+PiAgICAgICAgIHN0cnVjdCBzaWdhY3Rpb24gKl9fcmVzdHJpY3QgX19v
YWN0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBl
eHRlcm4gaW50IHNpZ3BlbmRpbmcgKHNpZ3NldF90ICpfX3NldCkgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7
Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgc2lnd2FpdCAoY29uc3Qgc2lnc2V0X3Qg
Kl9fcmVzdHJpY3QgX19zZXQsIGludCAqX19yZXN0cmljdCBfX3NpZykKPj4gICAgICBfX2F0dHJp
YnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVy
biBpbnQgc2lnd2FpdGluZm8gKGNvbnN0IHNpZ3NldF90ICpfX3Jlc3RyaWN0IF9fc2V0LAo+PiAg
ICBzaWdpbmZvX3QgKl9fcmVzdHJpY3QgX19pbmZvKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs
X18gKDEpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgc2lndGltZWR3YWl0IChj
b25zdCBzaWdzZXRfdCAqX19yZXN0cmljdCBfX3NldCwKPj4gICAgIHNpZ2luZm9fdCAqX19yZXN0
cmljdCBfX2luZm8sCj4+ICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVzdHJpY3QgX190
aW1lb3V0KQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4K
Pj4KPj4gZXh0ZXJuIGludCBzaWdxdWV1ZSAoX19waWRfdCBfX3BpZCwgaW50IF9fc2lnLCBjb25z
dCB1bmlvbiBzaWd2YWwgX192YWwpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKTsKPj4gIyAzMDEgIi91c3IvaW5jbHVkZS9zaWduYWwuaCIgMyA0Cj4+IGV4
dGVybiBjb25zdCBjaGFyICpjb25zdCBfc3lzX3NpZ2xpc3RbNjVdOwo+PiBleHRlcm4gY29uc3Qg
Y2hhciAqY29uc3Qgc3lzX3NpZ2xpc3RbNjVdOwo+Pgo+Pgo+Pgo+PiAjIDEgIi91c3IvaW5jbHVk
ZS9iaXRzL3NpZ2NvbnRleHQuaCIgMSAzIDQKPj4gIyAyOSAiL3Vzci9pbmNsdWRlL2JpdHMvc2ln
Y29udGV4dC5oIiAzIDQKPj4gc3RydWN0IF9mcHhfc3dfYnl0ZXMKPj4gewo+PiAgIF9fdWludDMy
X3QgbWFnaWMxOwo+PiAgIF9fdWludDMyX3QgZXh0ZW5kZWRfc2l6ZTsKPj4gICBfX3VpbnQ2NF90
IHhzdGF0ZV9idjsKPj4gICBfX3VpbnQzMl90IHhzdGF0ZV9zaXplOwo+PiAgIF9fdWludDMyX3Qg
cGFkZGluZ1s3XTsKPj4gfTsKPj4KPj4gc3RydWN0IF9mcHJlZwo+PiB7Cj4+ICAgdW5zaWduZWQg
c2hvcnQgc2lnbmlmaWNhbmRbNF07Cj4+ICAgdW5zaWduZWQgc2hvcnQgZXhwb25lbnQ7Cj4+IH07
Cj4+Cj4+IHN0cnVjdCBfZnB4cmVnCj4+IHsKPj4gICB1bnNpZ25lZCBzaG9ydCBzaWduaWZpY2Fu
ZFs0XTsKPj4gICB1bnNpZ25lZCBzaG9ydCBleHBvbmVudDsKPj4gICB1bnNpZ25lZCBzaG9ydCBw
YWRkaW5nWzNdOwo+PiB9Owo+Pgo+PiBzdHJ1Y3QgX3htbXJlZwo+PiB7Cj4+ICAgX191aW50MzJf
dCBlbGVtZW50WzRdOwo+PiB9Owo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBzdHJ1Y3QgX2Zwc3RhdGUKPj4g
ewo+Pgo+PiAgIF9fdWludDMyX3QgY3c7Cj4+ICAgX191aW50MzJfdCBzdzsKPj4gICBfX3VpbnQz
Ml90IHRhZzsKPj4gICBfX3VpbnQzMl90IGlwb2ZmOwo+PiAgIF9fdWludDMyX3QgY3NzZWw7Cj4+
ICAgX191aW50MzJfdCBkYXRhb2ZmOwo+PiAgIF9fdWludDMyX3QgZGF0YXNlbDsKPj4gICBzdHJ1
Y3QgX2ZwcmVnIF9zdFs4XTsKPj4gICB1bnNpZ25lZCBzaG9ydCBzdGF0dXM7Cj4+ICAgdW5zaWdu
ZWQgc2hvcnQgbWFnaWM7Cj4+Cj4+Cj4+ICAgX191aW50MzJfdCBfZnhzcl9lbnZbNl07Cj4+ICAg
X191aW50MzJfdCBteGNzcjsKPj4gICBfX3VpbnQzMl90IHJlc2VydmVkOwo+PiAgIHN0cnVjdCBf
ZnB4cmVnIF9meHNyX3N0WzhdOwo+PiAgIHN0cnVjdCBfeG1tcmVnIF94bW1bOF07Cj4+ICAgX191
aW50MzJfdCBwYWRkaW5nWzU2XTsKPj4gfTsKPj4gIyA5MyAiL3Vzci9pbmNsdWRlL2JpdHMvc2ln
Y29udGV4dC5oIiAzIDQKPj4gc3RydWN0IHNpZ2NvbnRleHQKPj4gewo+PiAgIHVuc2lnbmVkIHNo
b3J0IGdzLCBfX2dzaDsKPj4gICB1bnNpZ25lZCBzaG9ydCBmcywgX19mc2g7Cj4+ICAgdW5zaWdu
ZWQgc2hvcnQgZXMsIF9fZXNoOwo+PiAgIHVuc2lnbmVkIHNob3J0IGRzLCBfX2RzaDsKPj4gICB1
bnNpZ25lZCBsb25nIGVkaTsKPj4gICB1bnNpZ25lZCBsb25nIGVzaTsKPj4gICB1bnNpZ25lZCBs
b25nIGVicDsKPj4gICB1bnNpZ25lZCBsb25nIGVzcDsKPj4gICB1bnNpZ25lZCBsb25nIGVieDsK
Pj4gICB1bnNpZ25lZCBsb25nIGVkeDsKPj4gICB1bnNpZ25lZCBsb25nIGVjeDsKPj4gICB1bnNp
Z25lZCBsb25nIGVheDsKPj4gICB1bnNpZ25lZCBsb25nIHRyYXBubzsKPj4gICB1bnNpZ25lZCBs
b25nIGVycjsKPj4gICB1bnNpZ25lZCBsb25nIGVpcDsKPj4gICB1bnNpZ25lZCBzaG9ydCBjcywg
X19jc2g7Cj4+ICAgdW5zaWduZWQgbG9uZyBlZmxhZ3M7Cj4+ICAgdW5zaWduZWQgbG9uZyBlc3Bf
YXRfc2lnbmFsOwo+PiAgIHVuc2lnbmVkIHNob3J0IHNzLCBfX3NzaDsKPj4gICBzdHJ1Y3QgX2Zw
c3RhdGUgKiBmcHN0YXRlOwo+PiAgIHVuc2lnbmVkIGxvbmcgb2xkbWFzazsKPj4gICB1bnNpZ25l
ZCBsb25nIGNyMjsKPj4gfTsKPj4gIyAxNzUgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ2NvbnRleHQu
aCIgMyA0Cj4+IHN0cnVjdCBfeHNhdmVfaGRyCj4+IHsKPj4gICBfX3VpbnQ2NF90IHhzdGF0ZV9i
djsKPj4gICBfX3VpbnQ2NF90IHJlc2VydmVkMVsyXTsKPj4gICBfX3VpbnQ2NF90IHJlc2VydmVk
Mls1XTsKPj4gfTsKPj4KPj4gc3RydWN0IF95bW1oX3N0YXRlCj4+IHsKPj4gICBfX3VpbnQzMl90
IHltbWhfc3BhY2VbNjRdOwo+PiB9Owo+Pgo+PiBzdHJ1Y3QgX3hzdGF0ZQo+PiB7Cj4+ICAgc3Ry
dWN0IF9mcHN0YXRlIGZwc3RhdGU7Cj4+ICAgc3RydWN0IF94c2F2ZV9oZHIgeHN0YXRlX2hkcjsK
Pj4gICBzdHJ1Y3QgX3ltbWhfc3RhdGUgeW1taDsKPj4gfTsKPj4gIyAzMDcgIi91c3IvaW5jbHVk
ZS9zaWduYWwuaCIgMiAzIDQKPj4KPj4KPj4gZXh0ZXJuIGludCBzaWdyZXR1cm4gKHN0cnVjdCBz
aWdjb250ZXh0ICpfX3NjcCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGlu
dXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKPj4gIyAzMTcgIi91c3IvaW5jbHVkZS9z
aWduYWwuaCIgMiAzIDQKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBzaWdpbnRlcnJ1cHQgKGlu
dCBfX3NpZywgaW50IF9faW50ZXJydXB0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+Pgo+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ3N0YWNrLmgiIDEgMyA0
Cj4+ICMgMjUgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ3N0YWNrLmgiIDMgNAo+PiBzdHJ1Y3Qgc2ln
c3RhY2sKPj4gICB7Cj4+ICAgICB2b2lkICpzc19zcDsKPj4gICAgIGludCBzc19vbnN0YWNrOwo+
PiAgIH07Cj4+Cj4+Cj4+Cj4+IGVudW0KPj4gewo+PiAgIFNTX09OU1RBQ0sgPSAxLAo+Pgo+PiAg
IFNTX0RJU0FCTEUKPj4KPj4gfTsKPj4gIyA0OSAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnc3RhY2su
aCIgMyA0Cj4+IHR5cGVkZWYgc3RydWN0IHNpZ2FsdHN0YWNrCj4+ICAgewo+PiAgICAgdm9pZCAq
c3Nfc3A7Cj4+ICAgICBpbnQgc3NfZmxhZ3M7Cj4+ICAgICBzaXplX3Qgc3Nfc2l6ZTsKPj4gICB9
IHN0YWNrX3Q7Cj4+ICMgMzI0ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4+Cj4+Cj4+
ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy91Y29udGV4dC5oIiAxIDMgNAo+PiAjIDIyICIvdXNyL2lu
Y2x1ZGUvc3lzL3Vjb250ZXh0LmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9zaWduYWwuaCIg
MSAzIDQKPj4gIyAyMyAiL3Vzci9pbmNsdWRlL3N5cy91Y29udGV4dC5oIiAyIDMgNAo+PiAjIDE0
NiAiL3Vzci9pbmNsdWRlL3N5cy91Y29udGV4dC5oIiAzIDQKPj4gdHlwZWRlZiBpbnQgZ3JlZ190
Owo+Pgo+Pgo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIGdyZWdfdCBncmVnc2V0X3RbMTldOwo+PiAjIDIw
MCAiL3Vzci9pbmNsdWRlL3N5cy91Y29udGV4dC5oIiAzIDQKPj4gc3RydWN0IF9saWJjX2ZwcmVn
Cj4+IHsKPj4gICB1bnNpZ25lZCBzaG9ydCBpbnQgc2lnbmlmaWNhbmRbNF07Cj4+ICAgdW5zaWdu
ZWQgc2hvcnQgaW50IGV4cG9uZW50Owo+PiB9Owo+Pgo+PiBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZQo+
PiB7Cj4+ICAgdW5zaWduZWQgbG9uZyBpbnQgY3c7Cj4+ICAgdW5zaWduZWQgbG9uZyBpbnQgc3c7
Cj4+ICAgdW5zaWduZWQgbG9uZyBpbnQgdGFnOwo+PiAgIHVuc2lnbmVkIGxvbmcgaW50IGlwb2Zm
Owo+PiAgIHVuc2lnbmVkIGxvbmcgaW50IGNzc2VsOwo+PiAgIHVuc2lnbmVkIGxvbmcgaW50IGRh
dGFvZmY7Cj4+ICAgdW5zaWduZWQgbG9uZyBpbnQgZGF0YXNlbDsKPj4gICBzdHJ1Y3QgX2xpYmNf
ZnByZWcgX3N0WzhdOwo+PiAgIHVuc2lnbmVkIGxvbmcgaW50IHN0YXR1czsKPj4gfTsKPj4KPj4K
Pj4gdHlwZWRlZiBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZSAqZnByZWdzZXRfdDsKPj4KPj4KPj4gdHlw
ZWRlZiBzdHJ1Y3QKPj4gICB7Cj4+ICAgICBncmVnc2V0X3QgZ3JlZ3M7Cj4+Cj4+Cj4+ICAgICBm
cHJlZ3NldF90IGZwcmVnczsKPj4gICAgIHVuc2lnbmVkIGxvbmcgaW50IG9sZG1hc2s7Cj4+ICAg
ICB1bnNpZ25lZCBsb25nIGludCBjcjI7Cj4+ICAgfSBtY29udGV4dF90Owo+Pgo+Pgo+PiB0eXBl
ZGVmIHN0cnVjdCB1Y29udGV4dAo+PiAgIHsKPj4gICAgIHVuc2lnbmVkIGxvbmcgaW50IHVjX2Zs
YWdzOwo+PiAgICAgc3RydWN0IHVjb250ZXh0ICp1Y19saW5rOwo+PiAgICAgc3RhY2tfdCB1Y19z
dGFjazsKPj4gICAgIG1jb250ZXh0X3QgdWNfbWNvbnRleHQ7Cj4+ICAgICBfX3NpZ3NldF90IHVj
X3NpZ21hc2s7Cj4+ICAgICBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZSBfX2ZwcmVnc19tZW07Cj4+ICAg
fSB1Y29udGV4dF90Owo+PiAjIDMyNyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAyIDMgNAo+Pgo+
Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHNpZ3N0YWNrIChzdHJ1Y3Qgc2lnc3RhY2sgKl9fc3Ms
IHN0cnVjdCBzaWdzdGFjayAqX19vc3MpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18pKTsKPj4KPj4K
Pj4KPj4gZXh0ZXJuIGludCBzaWdhbHRzdGFjayAoY29uc3Qgc3RydWN0IHNpZ2FsdHN0YWNrICpf
X3Jlc3RyaWN0IF9fc3MsCj4+ICAgIHN0cnVjdCBzaWdhbHRzdGFjayAqX19yZXN0cmljdCBfX29z
cykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gIyAzNjIgIi91
c3IvaW5jbHVkZS9zaWduYWwuaCIgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc2lndGhy
ZWFkLmgiIDEgMyA0Cj4+ICMgMzAgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ3RocmVhZC5oIiAzIDQK
Pj4gZXh0ZXJuIGludCBwdGhyZWFkX3NpZ21hc2sgKGludCBfX2hvdywKPj4gICAgICAgIGNvbnN0
IF9fc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19uZXdtYXNrLAo+PiAgICAgICAgX19zaWdzZXRfdCAq
X19yZXN0cmljdCBfX29sZG1hc2spX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKTsKPj4KPj4KPj4gZXh0ZXJuIGludCBwdGhyZWFkX2tpbGwgKHB0aHJlYWRfdCBfX3RocmVh
ZGlkLCBpbnQgX19zaWdubykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KTsKPj4gIyAzNjMgIi91c3IvaW5jbHVkZS9zaWduYWwuaCIgMiAzIDQKPj4KPj4KPj4KPj4KPj4K
Pj4KPj4gZXh0ZXJuIGludCBfX2xpYmNfY3VycmVudF9zaWdydG1pbiAodm9pZCkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4gZXh0ZXJuIGludCBfX2xpYmNf
Y3VycmVudF9zaWdydG1heCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4gIyA0MiAibWFjaGluZS5jIiAyCj4+ICMgMSAiL3Vzci9p
bmNsdWRlL2Vycm5vLmgiIDEgMyA0Cj4+ICMgMzEgIi91c3IvaW5jbHVkZS9lcnJuby5oIiAzIDQK
Pj4KPj4KPj4KPj4KPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9lcnJuby5oIiAxIDMgNAo+PiAj
IDI0ICIvdXNyL2luY2x1ZGUvYml0cy9lcnJuby5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUv
bGludXgvZXJybm8uaCIgMSAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvYXNtL2Vycm5vLmgiIDEg
MyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS1nZW5lcmljL2Vycm5vLmgiIDEgMyA0Cj4+Cj4+
Cj4+Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS1nZW5lcmljL2Vycm5vLWJhc2UuaCIgMSAzIDQK
Pj4gIyA1ICIvdXNyL2luY2x1ZGUvYXNtLWdlbmVyaWMvZXJybm8uaCIgMiAzIDQKPj4gIyAxICIv
dXNyL2luY2x1ZGUvYXNtL2Vycm5vLmgiIDIgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2xpbnV4
L2Vycm5vLmgiIDIgMyA0Cj4+ICMgMjUgIi91c3IvaW5jbHVkZS9iaXRzL2Vycm5vLmgiIDIgMyA0
Cj4+ICMgNTAgIi91c3IvaW5jbHVkZS9iaXRzL2Vycm5vLmgiIDMgNAo+PiBleHRlcm4gaW50ICpf
X2Vycm5vX2xvY2F0aW9uICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPj4gIyAzNiAiL3Vzci9pbmNsdWRl
L2Vycm5vLmgiIDIgMyA0Cj4+ICMgNTggIi91c3IvaW5jbHVkZS9lcnJuby5oIiAzIDQKPj4KPj4g
IyA0MyAibWFjaGluZS5jIiAyCj4+ICMgMSAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDEgMyA0Cj4+
ICMgMjggIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4g
IyAxICIvdXNyL2luY2x1ZGUvYml0cy9mY250bC5oIiAxIDMgNAo+PiAjIDM1ICIvdXNyL2luY2x1
ZGUvYml0cy9mY250bC5oIiAzIDQKPj4gc3RydWN0IGZsb2NrCj4+ICAgewo+PiAgICAgc2hvcnQg
aW50IGxfdHlwZTsKPj4gICAgIHNob3J0IGludCBsX3doZW5jZTsKPj4KPj4gICAgIF9fb2ZmX3Qg
bF9zdGFydDsKPj4gICAgIF9fb2ZmX3QgbF9sZW47Cj4+Cj4+Cj4+Cj4+Cj4+ICAgICBfX3BpZF90
IGxfcGlkOwo+PiAgIH07Cj4+ICMgNjEgIi91c3IvaW5jbHVkZS9iaXRzL2ZjbnRsLmgiIDMgNAo+
PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL2ZjbnRsLWxpbnV4LmgiIDEgMyA0Cj4+ICMgMzQ1ICIv
dXNyL2luY2x1ZGUvYml0cy9mY250bC1saW51eC5oIiAzIDQKPj4KPj4gIyA0MTkgIi91c3IvaW5j
bHVkZS9iaXRzL2ZjbnRsLWxpbnV4LmgiIDMgNAo+Pgo+PiAjIDYxICIvdXNyL2luY2x1ZGUvYml0
cy9mY250bC5oIiAyIDMgNAo+PiAjIDM2ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMiAzIDQKPj4g
IyA3NiAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS90aW1l
LmgiIDEgMyA0Cj4+ICMgNzcgIi91c3IvaW5jbHVkZS9mY250bC5oIiAyIDMgNAo+PiAjIDEgIi91
c3IvaW5jbHVkZS9iaXRzL3N0YXQuaCIgMSAzIDQKPj4gIyA0NiAiL3Vzci9pbmNsdWRlL2JpdHMv
c3RhdC5oIiAzIDQKPj4gc3RydWN0IHN0YXQKPj4gICB7Cj4+ICAgICBfX2Rldl90IHN0X2RldjsK
Pj4KPj4gICAgIHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDE7Cj4+Cj4+Cj4+ICAgICBfX2lub190
IHN0X2lubzsKPj4KPj4KPj4KPj4KPj4gICAgIF9fbW9kZV90IHN0X21vZGU7Cj4+ICAgICBfX25s
aW5rX3Qgc3Rfbmxpbms7Cj4+Cj4+Cj4+Cj4+Cj4+ICAgICBfX3VpZF90IHN0X3VpZDsKPj4gICAg
IF9fZ2lkX3Qgc3RfZ2lkOwo+Pgo+Pgo+Pgo+PiAgICAgX19kZXZfdCBzdF9yZGV2Owo+Pgo+PiAg
ICAgdW5zaWduZWQgc2hvcnQgaW50IF9fcGFkMjsKPj4KPj4KPj4gICAgIF9fb2ZmX3Qgc3Rfc2l6
ZTsKPj4KPj4KPj4KPj4gICAgIF9fYmxrc2l6ZV90IHN0X2Jsa3NpemU7Cj4+Cj4+ICAgICBfX2Js
a2NudF90IHN0X2Jsb2NrczsKPj4gIyA5MSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RhdC5oIiAzIDQK
Pj4gICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwo+PiAgICAgc3RydWN0IHRpbWVzcGVjIHN0
X210aW07Cj4+ICAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfY3RpbTsKPj4gIyAxMDkgIi91c3IvaW5j
bHVkZS9iaXRzL3N0YXQuaCIgMyA0Cj4+ICAgICB1bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jl
c2VydmVkNDsKPj4gICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fZ2xpYmNfcmVzZXJ2ZWQ1Owo+Pgo+
Pgo+Pgo+Pgo+PiAgIH07Cj4+ICMgNzggIi91c3IvaW5jbHVkZS9mY250bC5oIiAyIDMgNAo+PiAj
IDE2OSAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDMgNAo+PiBleHRlcm4gaW50IGZjbnRsIChpbnQg
X19mZCwgaW50IF9fY21kLCAuLi4pOwo+PiAjIDE3OSAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDMg
NAo+PiBleHRlcm4gaW50IG9wZW4gKGNvbnN0IGNoYXIgKl9fZmlsZSwgaW50IF9fb2ZsYWcsIC4u
LikgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+PiAjIDIwMyAiL3Vzci9pbmNs
dWRlL2ZjbnRsLmgiIDMgNAo+PiBleHRlcm4gaW50IG9wZW5hdCAoaW50IF9fZmQsIGNvbnN0IGNo
YXIgKl9fZmlsZSwgaW50IF9fb2ZsYWcsIC4uLikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u
b25udWxsX18gKDIpKSk7Cj4+ICMgMjI1ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0Cj4+IGV4
dGVybiBpbnQgY3JlYXQgKGNvbnN0IGNoYXIgKl9fZmlsZSwgbW9kZV90IF9fbW9kZSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+PiAjIDI1NCAiL3Vzci9pbmNsdWRlL2ZjbnRs
LmgiIDMgNAo+PiBleHRlcm4gaW50IGxvY2tmIChpbnQgX19mZCwgaW50IF9fY21kLCBvZmZfdCBf
X2xlbik7Cj4+ICMgMjcxICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0Cj4+IGV4dGVybiBpbnQg
cG9zaXhfZmFkdmlzZSAoaW50IF9fZmQsIG9mZl90IF9fb2Zmc2V0LCBvZmZfdCBfX2xlbiwKPj4g
ICAgICBpbnQgX19hZHZpc2UpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4+ICMgMjkzICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0Cj4+IGV4dGVybiBpbnQgcG9z
aXhfZmFsbG9jYXRlIChpbnQgX19mZCwgb2ZmX3QgX19vZmZzZXQsIG9mZl90IF9fbGVuKTsKPj4g
IyAzMTUgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQKPj4KPj4gIyA0NCAibWFjaGluZS5jIiAy
Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDEgMyA0Cj4+ICMgMjggIi91c3IvaW5jbHVk
ZS9jdHlwZS5oIiAzIDQKPj4KPj4gIyA0NiAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDMgNAo+PiBl
bnVtCj4+IHsKPj4gICBfSVN1cHBlciA9ICgoMCkgPCA4ID8gKCgxIDw8ICgwKSkgPDwgOCkgOiAo
KDEgPDwgKDApKSA+PiA4KSksCj4+ICAgX0lTbG93ZXIgPSAoKDEpIDwgOCA/ICgoMSA8PCAoMSkp
IDw8IDgpIDogKCgxIDw8ICgxKSkgPj4gOCkpLAo+PiAgIF9JU2FscGhhID0gKCgyKSA8IDggPyAo
KDEgPDwgKDIpKSA8PCA4KSA6ICgoMSA8PCAoMikpID4+IDgpKSwKPj4gICBfSVNkaWdpdCA9ICgo
MykgPCA4ID8gKCgxIDw8ICgzKSkgPDwgOCkgOiAoKDEgPDwgKDMpKSA+PiA4KSksCj4+ICAgX0lT
eGRpZ2l0ID0gKCg0KSA8IDggPyAoKDEgPDwgKDQpKSA8PCA4KSA6ICgoMSA8PCAoNCkpID4+IDgp
KSwKPj4gICBfSVNzcGFjZSA9ICgoNSkgPCA4ID8gKCgxIDw8ICg1KSkgPDwgOCkgOiAoKDEgPDwg
KDUpKSA+PiA4KSksCj4+ICAgX0lTcHJpbnQgPSAoKDYpIDwgOCA/ICgoMSA8PCAoNikpIDw8IDgp
IDogKCgxIDw8ICg2KSkgPj4gOCkpLAo+PiAgIF9JU2dyYXBoID0gKCg3KSA8IDggPyAoKDEgPDwg
KDcpKSA8PCA4KSA6ICgoMSA8PCAoNykpID4+IDgpKSwKPj4gICBfSVNibGFuayA9ICgoOCkgPCA4
ID8gKCgxIDw8ICg4KSkgPDwgOCkgOiAoKDEgPDwgKDgpKSA+PiA4KSksCj4+ICAgX0lTY250cmwg
PSAoKDkpIDwgOCA/ICgoMSA8PCAoOSkpIDw8IDgpIDogKCgxIDw8ICg5KSkgPj4gOCkpLAo+PiAg
IF9JU3B1bmN0ID0gKCgxMCkgPCA4ID8gKCgxIDw8ICgxMCkpIDw8IDgpIDogKCgxIDw8ICgxMCkp
ID4+IDgpKSwKPj4gICBfSVNhbG51bSA9ICgoMTEpIDwgOCA/ICgoMSA8PCAoMTEpKSA8PCA4KSA6
ICgoMSA8PCAoMTEpKSA+PiA4KSkKPj4gfTsKPj4gIyA3OSAiL3Vzci9pbmNsdWRlL2N0eXBlLmgi
IDMgNAo+PiBleHRlcm4gY29uc3QgdW5zaWduZWQgc2hvcnQgaW50ICoqX19jdHlwZV9iX2xvYyAo
dm9pZCkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f
YXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPj4gZXh0ZXJuIGNvbnN0IF9faW50MzJfdCAqKl9f
Y3R5cGVfdG9sb3dlcl9sb2MgKHZvaWQpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4+IGV4dGVybiBj
b25zdCBfX2ludDMyX3QgKipfX2N0eXBlX3RvdXBwZXJfbG9jICh2b2lkKQo+PiAgICAgIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29u
c3RfXykpOwo+PiAjIDEwNCAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDMgNAo+Pgo+Pgo+Pgo+Pgo+
Pgo+Pgo+PiBleHRlcm4gaW50IGlzYWxudW0gKGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPj4gZXh0ZXJuIGludCBpc2FscGhhIChpbnQpIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4dGVybiBpbnQgaXNjbnRybCAoaW50
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+PiBleHRlcm4gaW50
IGlzZGlnaXQgKGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK
Pj4gZXh0ZXJuIGludCBpc2xvd2VyIChpbnQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSk7Cj4+IGV4dGVybiBpbnQgaXNncmFwaCAoaW50KSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+PiBleHRlcm4gaW50IGlzcHJpbnQgKGludCkgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gZXh0ZXJuIGludCBpc3B1
bmN0IChpbnQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4
dGVybiBpbnQgaXNzcGFjZSAoaW50KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+PiBleHRlcm4gaW50IGlzdXBwZXIgKGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKTsKPj4gZXh0ZXJuIGludCBpc3hkaWdpdCAoaW50KSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50
IHRvbG93ZXIgKGludCBfX2MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdG91cHBlciAoaW50IF9fYykgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0
ZXJuIGludCBpc2JsYW5rIChpbnQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSk7Cj4+Cj4+Cj4+ICMgMTUwICIvdXNyL2luY2x1ZGUvY3R5cGUuaCIgMyA0Cj4+IGV4dGVy
biBpbnQgaXNhc2NpaSAoaW50IF9fYykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKTsKPj4KPj4KPj4KPj4gZXh0ZXJuIGludCB0b2FzY2lpIChpbnQgX19jKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50
IF90b3VwcGVyIChpbnQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
Cj4+IGV4dGVybiBpbnQgX3RvbG93ZXIgKGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKTsKPj4gIyAyNTcgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKPj4gIyAx
ICIvdXNyL2luY2x1ZGUveGxvY2FsZS5oIiAxIDMgNAo+PiAjIDI3ICIvdXNyL2luY2x1ZGUveGxv
Y2FsZS5oIiAzIDQKPj4gdHlwZWRlZiBzdHJ1Y3QgX19sb2NhbGVfc3RydWN0Cj4+IHsKPj4KPj4g
ICBzdHJ1Y3QgX19sb2NhbGVfZGF0YSAqX19sb2NhbGVzWzEzXTsKPj4KPj4KPj4gICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBpbnQgKl9fY3R5cGVfYjsKPj4gICBjb25zdCBpbnQgKl9fY3R5cGVfdG9s
b3dlcjsKPj4gICBjb25zdCBpbnQgKl9fY3R5cGVfdG91cHBlcjsKPj4KPj4KPj4gICBjb25zdCBj
aGFyICpfX25hbWVzWzEzXTsKPj4gfSAqX19sb2NhbGVfdDsKPj4KPj4KPj4gdHlwZWRlZiBfX2xv
Y2FsZV90IGxvY2FsZV90Owo+PiAjIDI1OCAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDIgMyA0Cj4+
ICMgMjcxICIvdXNyL2luY2x1ZGUvY3R5cGUuaCIgMyA0Cj4+IGV4dGVybiBpbnQgaXNhbG51bV9s
IChpbnQsIF9fbG9jYWxlX3QpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4+IGV4dGVybiBpbnQgaXNhbHBoYV9sIChpbnQsIF9fbG9jYWxlX3QpIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4dGVybiBpbnQgaXNjbnRybF9sIChp
bnQsIF9fbG9jYWxlX3QpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
Cj4+IGV4dGVybiBpbnQgaXNkaWdpdF9sIChpbnQsIF9fbG9jYWxlX3QpIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4dGVybiBpbnQgaXNsb3dlcl9sIChpbnQs
IF9fbG9jYWxlX3QpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+
IGV4dGVybiBpbnQgaXNncmFwaF9sIChpbnQsIF9fbG9jYWxlX3QpIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4dGVybiBpbnQgaXNwcmludF9sIChpbnQsIF9f
bG9jYWxlX3QpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4
dGVybiBpbnQgaXNwdW5jdF9sIChpbnQsIF9fbG9jYWxlX3QpIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4dGVybiBpbnQgaXNzcGFjZV9sIChpbnQsIF9fbG9j
YWxlX3QpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4dGVy
biBpbnQgaXN1cHBlcl9sIChpbnQsIF9fbG9jYWxlX3QpIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4dGVybiBpbnQgaXN4ZGlnaXRfbCAoaW50LCBfX2xvY2Fs
ZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+PiBleHRl
cm4gaW50IGlzYmxhbmtfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IF9fdG9sb3dlcl9sIChp
bnQgX19jLCBfX2xvY2FsZV90IF9fbCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKTsKPj4gZXh0ZXJuIGludCB0b2xvd2VyX2wgKGludCBfX2MsIF9fbG9jYWxlX3QgX19s
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRl
cm4gaW50IF9fdG91cHBlcl9sIChpbnQgX19jLCBfX2xvY2FsZV90IF9fbCkgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gZXh0ZXJuIGludCB0b3VwcGVyX2wgKGlu
dCBfX2MsIF9fbG9jYWxlX3QgX19sKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+PiAjIDM0NyAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDMgNAo+Pgo+PiAjIDQ1ICJt
YWNoaW5lLmMiIDIKPj4gIyAxICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDEgMyA0Cj4+ICMgMjcg
Ii91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+ICMgMSAiL3Vzci9s
aWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4+
ICMgMzMgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMiAzIDQKPj4KPj4KPj4KPj4KPj4KPj4KPj4K
Pj4KPj4KPj4gZXh0ZXJuIHZvaWQgKm1lbWNweSAodm9pZCAqX19yZXN0cmljdCBfX2Rlc3QsIGNv
bnN0IHZvaWQgKl9fcmVzdHJpY3QgX19zcmMsCj4+ICAgICAgICBzaXplX3QgX19uKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51
bGxfXyAoMSwgMikpKTsKPj4KPj4KPj4gZXh0ZXJuIHZvaWQgKm1lbW1vdmUgKHZvaWQgKl9fZGVz
dCwgY29uc3Qgdm9pZCAqX19zcmMsIHNpemVfdCBfX24pCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEs
IDIpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkICptZW1jY3B5ICh2b2lkICpf
X3Jlc3RyaWN0IF9fZGVzdCwgY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3NyYywKPj4gICAgICAg
ICBpbnQgX19jLCBzaXplX3QgX19uKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+Pgo+
Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gdm9pZCAqbWVtc2V0ICh2b2lkICpfX3MsIGludCBfX2MsIHNp
emVfdCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+PiBleHRlcm4gaW50IG1lbWNtcCAo
Y29uc3Qgdm9pZCAqX19zMSwgY29uc3Qgdm9pZCAqX19zMiwgc2l6ZV90IF9fbikKPj4gICAgICBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf
X3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPj4gIyA5MiAi
L3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPj4gZXh0ZXJuIHZvaWQgKm1lbWNociAoY29uc3Qg
dm9pZCAqX19zLCBpbnQgX19jLCBzaXplX3QgX19uKQo+PiAgICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0
cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4KPj4gIyAxMjMgIi91c3IvaW5jbHVk
ZS9zdHJpbmcuaCIgMyA0Cj4+Cj4+Cj4+IGV4dGVybiBjaGFyICpzdHJjcHkgKGNoYXIgKl9fcmVz
dHJpY3QgX19kZXN0LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjKQo+PiAgICAgIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxLCAyKSkpOwo+Pgo+PiBleHRlcm4gY2hhciAqc3RybmNweSAoY2hhciAqX19yZXN0
cmljdCBfX2Rlc3QsCj4+ICAgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYywgc2l6
ZV90IF9fbikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPj4KPj4KPj4gZXh0ZXJuIGNo
YXIgKnN0cmNhdCAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJp
Y3QgX19zcmMpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4+Cj4+IGV4dGVybiBjaGFy
ICpzdHJuY2F0IChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwgY29uc3QgY2hhciAqX19yZXN0cmlj
dCBfX3NyYywKPj4gICAgICAgICBzaXplX3QgX19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPj4K
Pj4KPj4gZXh0ZXJuIGludCBzdHJjbXAgKGNvbnN0IGNoYXIgKl9fczEsIGNvbnN0IGNoYXIgKl9f
czIpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIp
KSk7Cj4+Cj4+IGV4dGVybiBpbnQgc3RybmNtcCAoY29uc3QgY2hhciAqX19zMSwgY29uc3QgY2hh
ciAqX19zMiwgc2l6ZV90IF9fbikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChf
X25vbm51bGxfXyAoMSwgMikpKTsKPj4KPj4KPj4gZXh0ZXJuIGludCBzdHJjb2xsIChjb25zdCBj
aGFyICpfX3MxLCBjb25zdCBjaGFyICpfX3MyKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+Pgo+PiBleHRlcm4gc2l6ZV90IHN0cnhmcm0g
KGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAo+PiAgICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fc3JjLCBzaXplX3QgX19uKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpOwo+Pgo+PiAj
IDE2MiAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPj4gZXh0ZXJuIGludCBzdHJjb2xsX2wg
KGNvbnN0IGNoYXIgKl9fczEsIGNvbnN0IGNoYXIgKl9fczIsIF9fbG9jYWxlX3QgX19sKQo+PiAg
ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyLCAzKSkpOwo+
Pgo+PiBleHRlcm4gc2l6ZV90IHN0cnhmcm1fbCAoY2hhciAqX19kZXN0LCBjb25zdCBjaGFyICpf
X3NyYywgc2l6ZV90IF9fbiwKPj4gICAgIF9fbG9jYWxlX3QgX19sKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwg
NCkpKTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGNoYXIgKnN0cmR1cCAoY29uc3QgY2hhciAqX19z
KQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbWFsbG9jX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7
Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBjaGFyICpzdHJuZHVwIChjb25zdCBjaGFyICpf
X3N0cmluZywgc2l6ZV90IF9fbikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgX19hdHRyaWJ1dGVfXyAo
KF9fbm9ubnVsbF9fICgxKSkpOwo+PiAjIDIwNiAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQK
Pj4KPj4gIyAyMzEgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4+IGV4dGVybiBjaGFyICpz
dHJjaHIgKGNvbnN0IGNoYXIgKl9fcywgaW50IF9fYykKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0
cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4gIyAyNTggIi91c3IvaW5jbHVkZS9zdHJp
bmcuaCIgMyA0Cj4+IGV4dGVybiBjaGFyICpzdHJyY2hyIChjb25zdCBjaGFyICpfX3MsIGludCBf
X2MpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7
Cj4+Cj4+Cj4+ICMgMjc3ICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+Pgo+Pgo+Pgo+PiBl
eHRlcm4gc2l6ZV90IHN0cmNzcG4gKGNvbnN0IGNoYXIgKl9fcywgY29uc3QgY2hhciAqX19yZWpl
Y3QpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIp
KSk7Cj4+Cj4+Cj4+IGV4dGVybiBzaXplX3Qgc3Ryc3BuIChjb25zdCBjaGFyICpfX3MsIGNvbnN0
IGNoYXIgKl9fYWNjZXB0KQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxLCAyKSkpOwo+PiAjIDMxMCAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPj4g
ZXh0ZXJuIGNoYXIgKnN0cnBicmsgKGNvbnN0IGNoYXIgKl9fcywgY29uc3QgY2hhciAqX19hY2Nl
cHQpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIp
KSk7Cj4+ICMgMzM3ICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+PiBleHRlcm4gY2hhciAq
c3Ryc3RyIChjb25zdCBjaGFyICpfX2hheXN0YWNrLCBjb25zdCBjaGFyICpfX25lZWRsZSkKPj4g
ICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRl
X18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPj4K
Pj4KPj4KPj4KPj4gZXh0ZXJuIGNoYXIgKnN0cnRvayAoY2hhciAqX19yZXN0cmljdCBfX3MsIGNv
bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19kZWxpbSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsK
Pj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGNoYXIgKl9fc3RydG9rX3IgKGNoYXIgKl9fcmVzdHJpY3Qg
X19zLAo+PiAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2RlbGltLAo+PiAgICAgY2hhciAq
Kl9fcmVzdHJpY3QgX19zYXZlX3B0cikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKTsKPj4K
Pj4gZXh0ZXJuIGNoYXIgKnN0cnRva19yIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2RlbGltLAo+PiAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX3Nh
dmVfcHRyKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg
X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyLCAzKSkpOwo+PiAjIDM5MiAiL3Vzci9pbmNs
dWRlL3N0cmluZy5oIiAzIDQKPj4KPj4KPj4gZXh0ZXJuIHNpemVfdCBzdHJsZW4gKGNvbnN0IGNo
YXIgKl9fcykKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSkpKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHNpemVfdCBzdHJubGVuIChjb25zdCBjaGFy
ICpfX3N0cmluZywgc2l6ZV90IF9fbWF4bGVuKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gY2hhciAq
c3RyZXJyb3IgKGludCBfX2Vycm51bSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKTsKPj4KPj4gIyA0MjIgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4+IGV4dGVy
biBpbnQgc3RyZXJyb3JfciAoaW50IF9fZXJybnVtLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fYnVm
bGVuKSBfX2FzbV9fICgiIiAiX194cGdfc3RyZXJyb3JfciIpIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSkKPj4KPj4gICAgICAgICAgICAgICAgICAgICAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpOwo+PiAjIDQ0MCAiL3Vzci9pbmNsdWRlL3N0cmlu
Zy5oIiAzIDQKPj4gZXh0ZXJuIGNoYXIgKnN0cmVycm9yX2wgKGludCBfX2Vycm51bSwgX19sb2Nh
bGVfdCBfX2wpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIF9fYnplcm8gKHZvaWQgKl9fcywgc2l6ZV90IF9fbikg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo
X19ub25udWxsX18gKDEpKSk7Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIGJjb3B5IChjb25zdCB2
b2lkICpfX3NyYywgdm9pZCAqX19kZXN0LCBzaXplX3QgX19uKQo+PiAgICAgIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f
ICgxLCAyKSkpOwo+Pgo+Pgo+PiBleHRlcm4gdm9pZCBiemVybyAodm9pZCAqX19zLCBzaXplX3Qg
X19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRl
X18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4KPj4gZXh0ZXJuIGludCBiY21wIChjb25zdCB2
b2lkICpfX3MxLCBjb25zdCB2b2lkICpfX3MyLCBzaXplX3QgX19uKQo+PiAgICAgIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+PiAjIDQ4NCAiL3Vzci9p
bmNsdWRlL3N0cmluZy5oIiAzIDQKPj4gZXh0ZXJuIGNoYXIgKmluZGV4IChjb25zdCBjaGFyICpf
X3MsIGludCBfX2MpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs
X18gKDEpKSk7Cj4+ICMgNTEyICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+PiBleHRlcm4g
Y2hhciAqcmluZGV4IChjb25zdCBjaGFyICpfX3MsIGludCBfX2MpCj4+ICAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18p
KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVy
biBpbnQgZmZzIChpbnQgX19pKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPj4gIyA1MjkgIi91c3IvaW5jbHVkZS9z
dHJpbmcuaCIgMyA0Cj4+IGV4dGVybiBpbnQgc3RyY2FzZWNtcCAoY29uc3QgY2hhciAqX19zMSwg
Y29uc3QgY2hhciAqX19zMikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMSwgMikpKTsKPj4KPj4KPj4gZXh0ZXJuIGludCBzdHJuY2FzZWNtcCAoY29uc3Qg
Y2hhciAqX19zMSwgY29uc3QgY2hhciAqX19zMiwgc2l6ZV90IF9fbikKPj4gICAgICBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVf
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPj4gIyA1NTIgIi91c3Iv
aW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4+IGV4dGVybiBjaGFyICpzdHJzZXAgKGNoYXIgKipfX3Jl
c3RyaWN0IF9fc3RyaW5ncCwKPj4gICAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19kZWxp
bSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0
cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGNo
YXIgKnN0cnNpZ25hbCAoaW50IF9fc2lnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4gY2hhciAqX19zdHBjcHkgKGNoYXIgKl9fcmVzdHJp
Y3QgX19kZXN0LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjKQo+PiAgICAgIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs
bF9fICgxLCAyKSkpOwo+PiBleHRlcm4gY2hhciAqc3RwY3B5IChjaGFyICpfX3Jlc3RyaWN0IF9f
ZGVzdCwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykKPj4gICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSwgMikpKTsKPj4KPj4KPj4KPj4gZXh0ZXJuIGNoYXIgKl9fc3RwbmNweSAoY2hhciAqX19yZXN0
cmljdCBfX2Rlc3QsCj4+ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBf
X24pCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4+IGV4dGVybiBjaGFyICpzdHBuY3B5
IChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwKPj4gICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fc3JjLCBzaXplX3QgX19uKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+PiAj
IDY1OCAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPj4KPj4gIyA0NiAibWFjaGluZS5jIiAy
Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMSAzIDQKPj4gIyAyOSAiL3Vzci9pbmNsdWRl
L3RpbWUuaCIgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+ICMgMSAiL3Vzci9saWIvZ2Nj
L2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4+ICMgMzgg
Ii91c3IvaW5jbHVkZS90aW1lLmgiIDIgMyA0Cj4+Cj4+Cj4+Cj4+ICMgMSAiL3Vzci9pbmNsdWRl
L2JpdHMvdGltZS5oIiAxIDMgNAo+PiAjIDQyICIvdXNyL2luY2x1ZGUvdGltZS5oIiAyIDMgNAo+
PiAjIDEzMSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0Cj4+Cj4+Cj4+IHN0cnVjdCB0bQo+PiB7
Cj4+ICAgaW50IHRtX3NlYzsKPj4gICBpbnQgdG1fbWluOwo+PiAgIGludCB0bV9ob3VyOwo+PiAg
IGludCB0bV9tZGF5Owo+PiAgIGludCB0bV9tb247Cj4+ICAgaW50IHRtX3llYXI7Cj4+ICAgaW50
IHRtX3dkYXk7Cj4+ICAgaW50IHRtX3lkYXk7Cj4+ICAgaW50IHRtX2lzZHN0Owo+Pgo+Pgo+PiAg
IGxvbmcgaW50IHRtX2dtdG9mZjsKPj4gICBjb25zdCBjaGFyICp0bV96b25lOwo+Pgo+Pgo+Pgo+
Pgo+PiB9Owo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBzdHJ1Y3QgaXRpbWVyc3BlYwo+PiAg
IHsKPj4gICAgIHN0cnVjdCB0aW1lc3BlYyBpdF9pbnRlcnZhbDsKPj4gICAgIHN0cnVjdCB0aW1l
c3BlYyBpdF92YWx1ZTsKPj4gICB9Owo+Pgo+Pgo+PiBzdHJ1Y3Qgc2lnZXZlbnQ7Cj4+ICMgMTg2
ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPj4KPj4KPj4KPj4gZXh0ZXJuIGNsb2NrX3QgY2xv
Y2sgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+
Cj4+IGV4dGVybiB0aW1lX3QgdGltZSAodGltZV90ICpfX3RpbWVyKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4gZG91YmxlIGRpZmZ0aW1l
ICh0aW1lX3QgX190aW1lMSwgdGltZV90IF9fdGltZTApCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4+
Cj4+Cj4+IGV4dGVybiB0aW1lX3QgbWt0aW1lIChzdHJ1Y3QgdG0gKl9fdHApIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBz
aXplX3Qgc3RyZnRpbWUgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19tYXhzaXplLAo+
PiAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAo+PiAgICBjb25zdCBzdHJ1Y3Qg
dG0gKl9fcmVzdHJpY3QgX190cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKTsKPj4KPj4gIyAyMjMgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMgNAo+PiBleHRlcm4gc2l6
ZV90IHN0cmZ0aW1lX2wgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19tYXhzaXplLAo+
PiAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCj4+ICAgICAgY29uc3Qgc3Ry
dWN0IHRtICpfX3Jlc3RyaWN0IF9fdHAsCj4+ICAgICAgX19sb2NhbGVfdCBfX2xvYykgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gIyAyMzYgIi91c3IvaW5jbHVk
ZS90aW1lLmgiIDMgNAo+Pgo+Pgo+Pgo+PiBleHRlcm4gc3RydWN0IHRtICpnbXRpbWUgKGNvbnN0
IHRpbWVfdCAqX190aW1lcikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KTsKPj4KPj4KPj4KPj4gZXh0ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lIChjb25zdCB0aW1lX3Qg
Kl9fdGltZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBzdHJ1Y3QgdG0gKmdtdGltZV9yIChjb25zdCB0aW1lX3QgKl9f
cmVzdHJpY3QgX190aW1lciwKPj4gICAgICAgIHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+PiBleHRl
cm4gc3RydWN0IHRtICpsb2NhbHRpbWVfciAoY29uc3QgdGltZV90ICpfX3Jlc3RyaWN0IF9fdGlt
ZXIsCj4+ICAgICAgICAgICBzdHJ1Y3QgdG0gKl9fcmVzdHJpY3QgX190cCkgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGNo
YXIgKmFzY3RpbWUgKGNvbnN0IHN0cnVjdCB0bSAqX190cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4gZXh0ZXJuIGNoYXIgKmN0aW1lIChjb25zdCB0
aW1lX3QgKl9fdGltZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBjaGFyICphc2N0aW1lX3IgKGNvbnN0IHN0
cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwLAo+PiAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4g
Y2hhciAqY3RpbWVfciAoY29uc3QgdGltZV90ICpfX3Jlc3RyaWN0IF9fdGltZXIsCj4+ICAgICAg
ICAgY2hhciAqX19yZXN0cmljdCBfX2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGNoYXIgKl9fdHpuYW1lWzJdOwo+PiBl
eHRlcm4gaW50IF9fZGF5bGlnaHQ7Cj4+IGV4dGVybiBsb25nIGludCBfX3RpbWV6b25lOwo+Pgo+
Pgo+Pgo+Pgo+PiBleHRlcm4gY2hhciAqdHpuYW1lWzJdOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gdm9p
ZCB0enNldCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK
Pj4KPj4KPj4KPj4gZXh0ZXJuIGludCBkYXlsaWdodDsKPj4gZXh0ZXJuIGxvbmcgaW50IHRpbWV6
b25lOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHN0aW1lIChjb25zdCB0aW1lX3QgKl9f
d2hlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gIyAzMTkg
Ii91c3IvaW5jbHVkZS90aW1lLmgiIDMgNAo+PiBleHRlcm4gdGltZV90IHRpbWVnbSAoc3RydWN0
IHRtICpfX3RwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+
Pgo+PiBleHRlcm4gdGltZV90IHRpbWVsb2NhbCAoc3RydWN0IHRtICpfX3RwKSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4gaW50IGR5c2l6
ZSAoaW50IF9feWVhcikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf
X2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4+ICMgMzM0ICIvdXNyL2luY2x1ZGUvdGltZS5o
IiAzIDQKPj4gZXh0ZXJuIGludCBuYW5vc2xlZXAgKGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqX19y
ZXF1ZXN0ZWRfdGltZSwKPj4gICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVtYWluaW5nKTsK
Pj4KPj4KPj4KPj4gZXh0ZXJuIGludCBjbG9ja19nZXRyZXMgKGNsb2NraWRfdCBfX2Nsb2NrX2lk
LCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVzKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4gaW50IGNsb2NrX2dldHRpbWUgKGNsb2NraWRfdCBf
X2Nsb2NrX2lkLCBzdHJ1Y3QgdGltZXNwZWMgKl9fdHApIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgY2xvY2tfc2V0dGltZSAoY2xv
Y2tpZF90IF9fY2xvY2tfaWQsIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqX190cCkKPj4gICAgICBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+
Pgo+PiBleHRlcm4gaW50IGNsb2NrX25hbm9zbGVlcCAoY2xvY2tpZF90IF9fY2xvY2tfaWQsIGlu
dCBfX2ZsYWdzLAo+PiAgICAgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpfX3JlcSwKPj4gICAg
ICAgIHN0cnVjdCB0aW1lc3BlYyAqX19yZW0pOwo+Pgo+Pgo+PiBleHRlcm4gaW50IGNsb2NrX2dl
dGNwdWNsb2NraWQgKHBpZF90IF9fcGlkLCBjbG9ja2lkX3QgKl9fY2xvY2tfaWQpIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBp
bnQgdGltZXJfY3JlYXRlIChjbG9ja2lkX3QgX19jbG9ja19pZCwKPj4gICAgIHN0cnVjdCBzaWdl
dmVudCAqX19yZXN0cmljdCBfX2V2cCwKPj4gICAgIHRpbWVyX3QgKl9fcmVzdHJpY3QgX190aW1l
cmlkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBl
eHRlcm4gaW50IHRpbWVyX2RlbGV0ZSAodGltZXJfdCBfX3RpbWVyaWQpIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdGltZXJfc2V0
dGltZSAodGltZXJfdCBfX3RpbWVyaWQsIGludCBfX2ZsYWdzLAo+PiAgICAgIGNvbnN0IHN0cnVj
dCBpdGltZXJzcGVjICpfX3Jlc3RyaWN0IF9fdmFsdWUsCj4+ICAgICAgc3RydWN0IGl0aW1lcnNw
ZWMgKl9fcmVzdHJpY3QgX19vdmFsdWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdGltZXJfZ2V0dGltZSAodGltZXJfdCBfX3Rp
bWVyaWQsIHN0cnVjdCBpdGltZXJzcGVjICpfX3ZhbHVlKQo+PiAgICAgIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdGltZXJfZ2V0
b3ZlcnJ1biAodGltZXJfdCBfX3RpbWVyaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdGltZXNwZWNfZ2V0IChz
dHJ1Y3QgdGltZXNwZWMgKl9fdHMsIGludCBfX2Jhc2UpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEp
KSk7Cj4+ICMgNDMwICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPj4KPj4gIyA0NyAibWFjaGlu
ZS5jIiAyCj4+Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDEgMyA0Cj4+ICMgMTAy
ICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4+Cj4+Cj4+ICMgMSAiL3Vzci9pbmNsdWRl
L2JpdHMvc3RhdC5oIiAxIDMgNAo+PiAjIDEwNSAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDIg
MyA0Cj4+ICMgMjA4ICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4+IGV4dGVybiBpbnQg
c3RhdCAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGUsCj4+ICAgIHN0cnVjdCBzdGF0ICpf
X3Jlc3RyaWN0IF9fYnVmKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPj4KPj4KPj4KPj4gZXh0ZXJu
IGludCBmc3RhdCAoaW50IF9fZmQsIHN0cnVjdCBzdGF0ICpfX2J1ZikgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIp
KSk7Cj4+ICMgMjM3ICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4+IGV4dGVybiBpbnQg
ZnN0YXRhdCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlLAo+PiAgICAg
ICBzdHJ1Y3Qgc3RhdCAqX19yZXN0cmljdCBfX2J1ZiwgaW50IF9fZmxhZykKPj4gICAgICBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMiwgMykpKTsKPj4gIyAyNjIgIi91c3IvaW5jbHVkZS9zeXMvc3RhdC5oIiAzIDQK
Pj4gZXh0ZXJuIGludCBsc3RhdCAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGUsCj4+ICAg
ICBzdHJ1Y3Qgc3RhdCAqX19yZXN0cmljdCBfX2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4+
ICMgMjgzICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4+IGV4dGVybiBpbnQgY2htb2Qg
KGNvbnN0IGNoYXIgKl9fZmlsZSwgX19tb2RlX3QgX19tb2RlKQo+PiAgICAgIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f
ICgxKSkpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGxjaG1vZCAoY29uc3QgY2hhciAq
X19maWxlLCBfX21vZGVfdCBfX21vZGUpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4+Cj4+
Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgZmNobW9kIChpbnQgX19mZCwgX19tb2RlX3QgX19tb2RlKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+
PiBleHRlcm4gaW50IGZjaG1vZGF0IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19maWxlLCBfX21v
ZGVfdCBfX21vZGUsCj4+ICAgICAgICBpbnQgX19mbGFnKQo+PiAgICAgIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgy
KSkpIDsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIF9fbW9kZV90IHVtYXNrIChfX21vZGVf
dCBfX21hc2spIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+ICMg
MzIwICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4+IGV4dGVybiBpbnQgbWtkaXIgKGNv
bnN0IGNoYXIgKl9fcGF0aCwgX19tb2RlX3QgX19tb2RlKQo+PiAgICAgIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgx
KSkpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IG1rZGlyYXQgKGludCBfX2ZkLCBjb25z
dCBjaGFyICpfX3BhdGgsIF9fbW9kZV90IF9fbW9kZSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikp
KTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBta25vZCAoY29uc3QgY2hhciAqX19w
YXRoLCBfX21vZGVfdCBfX21vZGUsIF9fZGV2X3QgX19kZXYpCj4+ICAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDEpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgbWtub2RhdCAoaW50IF9fZmQsIGNv
bnN0IGNoYXIgKl9fcGF0aCwgX19tb2RlX3QgX19tb2RlLAo+PiAgICAgICBfX2Rldl90IF9fZGV2
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g
KChfX25vbm51bGxfXyAoMikpKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBta2ZpZm8g
KGNvbnN0IGNoYXIgKl9fcGF0aCwgX19tb2RlX3QgX19tb2RlKQo+PiAgICAgIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f
ICgxKSkpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IG1rZmlmb2F0IChpbnQgX19mZCwg
Y29uc3QgY2hhciAqX19wYXRoLCBfX21vZGVfdCBfX21vZGUpCj4+ICAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDIpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdXRpbWVuc2F0IChpbnQgX19mZCwg
Y29uc3QgY2hhciAqX19wYXRoLAo+PiAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyBfX3Rp
bWVzWzJdLAo+PiAgICAgICAgIGludCBfX2ZsYWdzKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkp
Owo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGZ1dGltZW5zIChpbnQgX19mZCwgY29uc3Qgc3Ry
dWN0IHRpbWVzcGVjIF9fdGltZXNbMl0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSk7Cj4+ICMgMzk4ICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4+IGV4dGVy
biBpbnQgX19meHN0YXQgKGludCBfX3ZlciwgaW50IF9fZmlsZGVzLCBzdHJ1Y3Qgc3RhdCAqX19z
dGF0X2J1ZikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMykpKTsKPj4gZXh0ZXJuIGludCBfX3hzdGF0
IChpbnQgX192ZXIsIGNvbnN0IGNoYXIgKl9fZmlsZW5hbWUsCj4+ICAgICAgIHN0cnVjdCBzdGF0
ICpfX3N0YXRfYnVmKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f
YXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKTsKPj4gZXh0ZXJuIGludCBfX2x4c3Rh
dCAoaW50IF9fdmVyLCBjb25zdCBjaGFyICpfX2ZpbGVuYW1lLAo+PiAgICAgICAgc3RydWN0IHN0
YXQgKl9fc3RhdF9idWYpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg
X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyLCAzKSkpOwo+PiBleHRlcm4gaW50IF9fZnhz
dGF0YXQgKGludCBfX3ZlciwgaW50IF9fZmlsZGVzLCBjb25zdCBjaGFyICpfX2ZpbGVuYW1lLAo+
PiAgICAgICAgICBzdHJ1Y3Qgc3RhdCAqX19zdGF0X2J1ZiwgaW50IF9fZmxhZykKPj4gICAgICBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf
X25vbm51bGxfXyAoMywgNCkpKTsKPj4gIyA0NDEgIi91c3IvaW5jbHVkZS9zeXMvc3RhdC5oIiAz
IDQKPj4gZXh0ZXJuIGludCBfX3hta25vZCAoaW50IF9fdmVyLCBjb25zdCBjaGFyICpfX3BhdGgs
IF9fbW9kZV90IF9fbW9kZSwKPj4gICAgICAgIF9fZGV2X3QgKl9fZGV2KSBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MiwgNCkpKTsKPj4KPj4gZXh0ZXJuIGludCBfX3hta25vZGF0IChpbnQgX192ZXIsIGludCBfX2Zk
LCBjb25zdCBjaGFyICpfX3BhdGgsCj4+ICAgICAgICAgIF9fbW9kZV90IF9fbW9kZSwgX19kZXZf
dCAqX19kZXYpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDUpKSk7Cj4+ICMgNTMzICIvdXNyL2lu
Y2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4+Cj4+ICMgNDkgIm1hY2hpbmUuYyIgMgo+Pgo+PiAjIDEg
ImdwX2NvbmZpZy5oIiAxCj4+ICMgMzI3ICJncF9jb25maWcuaCIKPj4gIyAxICJhcmNoX2RlcC5o
IiAxCj4+ICMgMzI4ICJncF9jb25maWcuaCIgMgo+PiAjIDEgInBsX2xvbmcuaCIgMQo+PiAjIDQx
ICJwbF9sb25nLmgiCj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x
L2luY2x1ZGUvc3RkaW50LmgiIDEgMyA0Cj4+ICMgOSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0
LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkaW50LmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9z
dGRpbnQuaCIgMSAzIDQKPj4gIyAyNiAiL3Vzci9pbmNsdWRlL3N0ZGludC5oIiAzIDQKPj4gIyAx
ICIvdXNyL2luY2x1ZGUvYml0cy93Y2hhci5oIiAxIDMgNAo+PiAjIDI3ICIvdXNyL2luY2x1ZGUv
c3RkaW50LmgiIDIgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvd29yZHNpemUuaCIgMSAz
IDQKPj4gIyAyOCAiL3Vzci9pbmNsdWRlL3N0ZGludC5oIiAyIDMgNAo+PiAjIDQ4ICIvdXNyL2lu
Y2x1ZGUvc3RkaW50LmgiIDMgNAo+PiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdWludDhfdDsKPj4g
dHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgdWludDE2X3Q7Cj4+Cj4+IHR5cGVkZWYgdW5zaWdu
ZWQgaW50IHVpbnQzMl90Owo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBfX2V4dGVuc2lvbl9fCj4+IHR5cGVk
ZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCB1aW50NjRfdDsKPj4KPj4KPj4KPj4KPj4KPj4KPj4g
dHlwZWRlZiBzaWduZWQgY2hhciBpbnRfbGVhc3Q4X3Q7Cj4+IHR5cGVkZWYgc2hvcnQgaW50IGlu
dF9sZWFzdDE2X3Q7Cj4+IHR5cGVkZWYgaW50IGludF9sZWFzdDMyX3Q7Cj4+Cj4+Cj4+Cj4+IF9f
ZXh0ZW5zaW9uX18KPj4gdHlwZWRlZiBsb25nIGxvbmcgaW50IGludF9sZWFzdDY0X3Q7Cj4+Cj4+
Cj4+Cj4+IHR5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50X2xlYXN0OF90Owo+PiB0eXBlZGVmIHVu
c2lnbmVkIHNob3J0IGludCB1aW50X2xlYXN0MTZfdDsKPj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQg
dWludF9sZWFzdDMyX3Q7Cj4+Cj4+Cj4+Cj4+IF9fZXh0ZW5zaW9uX18KPj4gdHlwZWRlZiB1bnNp
Z25lZCBsb25nIGxvbmcgaW50IHVpbnRfbGVhc3Q2NF90Owo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiB0
eXBlZGVmIHNpZ25lZCBjaGFyIGludF9mYXN0OF90Owo+Pgo+Pgo+Pgo+Pgo+Pgo+PiB0eXBlZGVm
IGludCBpbnRfZmFzdDE2X3Q7Cj4+IHR5cGVkZWYgaW50IGludF9mYXN0MzJfdDsKPj4gX19leHRl
bnNpb25fXwo+PiB0eXBlZGVmIGxvbmcgbG9uZyBpbnQgaW50X2Zhc3Q2NF90Owo+Pgo+Pgo+Pgo+
PiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdWludF9mYXN0OF90Owo+Pgo+Pgo+Pgo+Pgo+Pgo+PiB0
eXBlZGVmIHVuc2lnbmVkIGludCB1aW50X2Zhc3QxNl90Owo+PiB0eXBlZGVmIHVuc2lnbmVkIGlu
dCB1aW50X2Zhc3QzMl90Owo+PiBfX2V4dGVuc2lvbl9fCj4+IHR5cGVkZWYgdW5zaWduZWQgbG9u
ZyBsb25nIGludCB1aW50X2Zhc3Q2NF90Owo+PiAjIDEyNSAiL3Vzci9pbmNsdWRlL3N0ZGludC5o
IiAzIDQKPj4gdHlwZWRlZiBpbnQgaW50cHRyX3Q7Cj4+Cj4+Cj4+IHR5cGVkZWYgdW5zaWduZWQg
aW50IHVpbnRwdHJfdDsKPj4gIyAxMzcgIi91c3IvaW5jbHVkZS9zdGRpbnQuaCIgMyA0Cj4+IF9f
ZXh0ZW5zaW9uX18KPj4gdHlwZWRlZiBsb25nIGxvbmcgaW50IGludG1heF90Owo+PiBfX2V4dGVu
c2lvbl9fCj4+IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCB1aW50bWF4X3Q7Cj4+ICMg
MTAgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGludC5o
IiAyIDMgNAo+PiAjIDQyICJwbF9sb25nLmgiIDIKPj4KPj4gIyAxICJncF9jb25maWcuaCIgMQo+
PiAjIDQ0ICJwbF9sb25nLmgiIDIKPj4KPj4KPj4KPj4KPj4gIyA0NyAicGxfbG9uZy5oIgo+PiB0
eXBlZGVmIGludHB0cl90IFBsTG9uZzsKPj4gdHlwZWRlZiB1aW50cHRyX3QgUGxVTG9uZzsKPj4K
Pj4KPj4KPj4gIyAxICIvdXNyL2luY2x1ZGUvaW50dHlwZXMuaCIgMSAzIDQKPj4gIyAzNCAiL3Vz
ci9pbmNsdWRlL2ludHR5cGVzLmgiIDMgNAo+Pgo+PiAjIDM0ICIvdXNyL2luY2x1ZGUvaW50dHlw
ZXMuaCIgMyA0Cj4+IHR5cGVkZWYgbG9uZyBpbnQgX19nd2NoYXJfdDsKPj4gIyAyNjYgIi91c3Iv
aW5jbHVkZS9pbnR0eXBlcy5oIiAzIDQKPj4KPj4gIyAyODAgIi91c3IvaW5jbHVkZS9pbnR0eXBl
cy5oIiAzIDQKPj4gdHlwZWRlZiBzdHJ1Y3QKPj4gICB7Cj4+ICAgICBfX2V4dGVuc2lvbl9fIGxv
bmcgbG9uZyBpbnQgcXVvdDsKPj4gICAgIF9fZXh0ZW5zaW9uX18gbG9uZyBsb25nIGludCByZW07
Cj4+ICAgfSBpbWF4ZGl2X3Q7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnRtYXhfdCBpbWF4
YWJzIChpbnRtYXhfdCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+Pgo+Pgo+PiBleHRlcm4gaW1heGRpdl90
IGltYXhkaXYgKGludG1heF90IF9fbnVtZXIsIGludG1heF90IF9fZGVub20pCj4+ICAgICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
Y29uc3RfXykpOwo+Pgo+Pgo+PiBleHRlcm4gaW50bWF4X3Qgc3RydG9pbWF4IChjb25zdCBjaGFy
ICpfX3Jlc3RyaWN0IF9fbnB0ciwKPj4gICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIs
IGludCBfX2Jhc2UpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+
Cj4+Cj4+IGV4dGVybiB1aW50bWF4X3Qgc3RydG91bWF4IChjb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fbnB0ciwKPj4gICAgICAgIGNoYXIgKiogX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFz
ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4gZXh0
ZXJuIGludG1heF90IHdjc3RvaW1heCAoY29uc3QgX19nd2NoYXJfdCAqX19yZXN0cmljdCBfX25w
dHIsCj4+ICAgICAgIF9fZ3djaGFyX3QgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNl
KQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+
Cj4+IGV4dGVybiB1aW50bWF4X3Qgd2NzdG91bWF4IChjb25zdCBfX2d3Y2hhcl90ICpfX3Jlc3Ry
aWN0IF9fbnB0ciwKPj4gICAgICAgIF9fZ3djaGFyX3QgKiogX19yZXN0cmljdCBfX2VuZHB0ciwg
aW50IF9fYmFzZSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpOwo+PiAjIDQzMiAiL3Vzci9pbmNsdWRlL2ludHR5cGVzLmgiIDMgNAo+Pgo+PiAjIDUzICJw
bF9sb25nLmgiIDIKPj4gIyAzMjkgImdwX2NvbmZpZy5oIiAyCj4+ICMgNTEgIm1hY2hpbmUuYyIg
Mgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiAjIDEgIi91c3IvaW5jbHVkZS9wd2QuaCIgMSAzIDQKPj4g
IyAyNyAiL3Vzci9pbmNsdWRlL3B3ZC5oIiAzIDQKPj4KPj4KPj4KPj4KPj4KPj4gIyAxICIvdXNy
L2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQK
Pj4gIyAzMyAiL3Vzci9pbmNsdWRlL3B3ZC5oIiAyIDMgNAo+PiAjIDQ5ICIvdXNyL2luY2x1ZGUv
cHdkLmgiIDMgNAo+PiBzdHJ1Y3QgcGFzc3dkCj4+IHsKPj4gICBjaGFyICpwd19uYW1lOwo+PiAg
IGNoYXIgKnB3X3Bhc3N3ZDsKPj4gICBfX3VpZF90IHB3X3VpZDsKPj4gICBfX2dpZF90IHB3X2dp
ZDsKPj4gICBjaGFyICpwd19nZWNvczsKPj4gICBjaGFyICpwd19kaXI7Cj4+ICAgY2hhciAqcHdf
c2hlbGw7Cj4+IH07Cj4+ICMgNzIgIi91c3IvaW5jbHVkZS9wd2QuaCIgMyA0Cj4+IGV4dGVybiB2
b2lkIHNldHB3ZW50ICh2b2lkKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHZvaWQgZW5kcHdl
bnQgKHZvaWQpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gc3RydWN0IHBhc3N3ZCAqZ2V0cHdl
bnQgKHZvaWQpOwo+PiAjIDk0ICIvdXNyL2luY2x1ZGUvcHdkLmgiIDMgNAo+PiBleHRlcm4gc3Ry
dWN0IHBhc3N3ZCAqZmdldHB3ZW50IChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHB1dHB3
ZW50IChjb25zdCBzdHJ1Y3QgcGFzc3dkICpfX3Jlc3RyaWN0IF9fcCwKPj4gICAgICAgIEZJTEUg
Kl9fcmVzdHJpY3QgX19mKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHN0cnVjdCBwYXNz
d2QgKmdldHB3dWlkIChfX3VpZF90IF9fdWlkKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHN0
cnVjdCBwYXNzd2QgKmdldHB3bmFtIChjb25zdCBjaGFyICpfX25hbWUpIF9fYXR0cmlidXRlX18g
KChfX25vbm51bGxfXyAoMSkpKTsKPj4gIyAxMzkgIi91c3IvaW5jbHVkZS9wd2QuaCIgMyA0Cj4+
IGV4dGVybiBpbnQgZ2V0cHdlbnRfciAoc3RydWN0IHBhc3N3ZCAqX19yZXN0cmljdCBfX3Jlc3Vs
dGJ1ZiwKPj4gICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1ZmZlciwgc2l6ZV90IF9fYnVm
bGVuLAo+PiAgICAgICAgICBzdHJ1Y3QgcGFzc3dkICoqX19yZXN0cmljdCBfX3Jlc3VsdCkKPj4g
ICAgICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyLCA0KSkpOwo+Pgo+Pgo+
PiBleHRlcm4gaW50IGdldHB3dWlkX3IgKF9fdWlkX3QgX191aWQsCj4+ICAgICAgICAgIHN0cnVj
dCBwYXNzd2QgKl9fcmVzdHJpY3QgX19yZXN1bHRidWYsCj4+ICAgICAgICAgIGNoYXIgKl9fcmVz
dHJpY3QgX19idWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKPj4gICAgICAgICAgc3RydWN0IHBhc3N3
ZCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpCj4+ICAgICAgICAgIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMiwgMywgNSkpKTsKPj4KPj4gZXh0ZXJuIGludCBnZXRwd25hbV9yIChjb25zdCBj
aGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwKPj4gICAgICAgICAgc3RydWN0IHBhc3N3ZCAqX19yZXN0
cmljdCBfX3Jlc3VsdGJ1ZiwKPj4gICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1ZmZlciwg
c2l6ZV90IF9fYnVmbGVuLAo+PiAgICAgICAgICBzdHJ1Y3QgcGFzc3dkICoqX19yZXN0cmljdCBf
X3Jlc3VsdCkKPj4gICAgICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyLCAz
LCA1KSkpOwo+PiAjIDE2NiAiL3Vzci9pbmNsdWRlL3B3ZC5oIiAzIDQKPj4gZXh0ZXJuIGludCBm
Z2V0cHdlbnRfciAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwKPj4gICAgc3RydWN0IHBhc3N3
ZCAqX19yZXN0cmljdCBfX3Jlc3VsdGJ1ZiwKPj4gICAgY2hhciAqX19yZXN0cmljdCBfX2J1ZmZl
ciwgc2l6ZV90IF9fYnVmbGVuLAo+PiAgICBzdHJ1Y3QgcGFzc3dkICoqX19yZXN0cmljdCBfX3Jl
c3VsdCkKPj4gICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyLCAzLCA1KSkpOwo+
PiAjIDE4NyAiL3Vzci9pbmNsdWRlL3B3ZC5oIiAzIDQKPj4KPj4gIyA1OCAibWFjaGluZS5jIiAy
Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAxIDMgNAo+PiAjIDI3ICIvdXNyL2luY2x1
ZGUvdW5pc3RkLmgiIDMgNAo+Pgo+PiAjIDIwNSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQK
Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9wb3NpeF9vcHQuaCIgMSAzIDQKPj4gIyAyMDYgIi91
c3IvaW5jbHVkZS91bmlzdGQuaCIgMiAzIDQKPj4KPj4KPj4KPj4gIyAxICIvdXNyL2luY2x1ZGUv
Yml0cy9lbnZpcm9ubWVudHMuaCIgMSAzIDQKPj4gIyAyMiAiL3Vzci9pbmNsdWRlL2JpdHMvZW52
aXJvbm1lbnRzLmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3dvcmRzaXplLmgiIDEg
MyA0Cj4+ICMgMjMgIi91c3IvaW5jbHVkZS9iaXRzL2Vudmlyb25tZW50cy5oIiAyIDMgNAo+PiAj
IDIxMCAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAyIDMgNAo+PiAjIDIyOSAiL3Vzci9pbmNsdWRl
L3VuaXN0ZC5oIiAzIDQKPj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4x
LjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKPj4gIyAyMzAgIi91c3IvaW5jbHVkZS91bmlzdGQu
aCIgMiAzIDQKPj4gIyAyNTggIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4+IHR5cGVkZWYg
X191c2Vjb25kc190IHVzZWNvbmRzX3Q7Cj4+ICMgMjc3ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgi
IDMgNAo+PiB0eXBlZGVmIF9fc29ja2xlbl90IHNvY2tsZW5fdDsKPj4gIyAyOTAgIi91c3IvaW5j
bHVkZS91bmlzdGQuaCIgMyA0Cj4+IGV4dGVybiBpbnQgYWNjZXNzIChjb25zdCBjaGFyICpfX25h
bWUsIGludCBfX3R5cGUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg
X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+PiAjIDMwNyAiL3Vzci9pbmNsdWRl
L3VuaXN0ZC5oIiAzIDQKPj4gZXh0ZXJuIGludCBmYWNjZXNzYXQgKGludCBfX2ZkLCBjb25zdCBj
aGFyICpfX2ZpbGUsIGludCBfX3R5cGUsIGludCBfX2ZsYWcpCj4+ICAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDIpKSkgOwo+PiAjIDMzNyAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPj4gZXh0ZXJuIF9f
b2ZmX3QgbHNlZWsgKGludCBfX2ZkLCBfX29mZl90IF9fb2Zmc2V0LCBpbnQgX193aGVuY2UpIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+ICMgMzU2ICIvdXNyL2lu
Y2x1ZGUvdW5pc3RkLmgiIDMgNAo+PiBleHRlcm4gaW50IGNsb3NlIChpbnQgX19mZCk7Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBzc2l6ZV90IHJlYWQgKGludCBfX2ZkLCB2b2lkICpfX2J1
Ziwgc2l6ZV90IF9fbmJ5dGVzKSA7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBzc2l6ZV90IHdy
aXRlIChpbnQgX19mZCwgY29uc3Qgdm9pZCAqX19idWYsIHNpemVfdCBfX24pIDsKPj4gIyAzNzkg
Ii91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4+IGV4dGVybiBzc2l6ZV90IHByZWFkIChpbnQg
X19mZCwgdm9pZCAqX19idWYsIHNpemVfdCBfX25ieXRlcywKPj4gICAgICAgICBfX29mZl90IF9f
b2Zmc2V0KSA7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBzc2l6ZV90IHB3cml0ZSAoaW50
IF9fZmQsIGNvbnN0IHZvaWQgKl9fYnVmLCBzaXplX3QgX19uLAo+PiAgICAgICAgICBfX29mZl90
IF9fb2Zmc2V0KSA7Cj4+ICMgNDIwICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+PiBleHRl
cm4gaW50IHBpcGUgKGludCBfX3BpcGVkZXNbMl0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgOwo+PiAjIDQzNSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPj4g
ZXh0ZXJuIHVuc2lnbmVkIGludCBhbGFybSAodW5zaWduZWQgaW50IF9fc2Vjb25kcykgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gIyA0NDcgIi91c3IvaW5jbHVk
ZS91bmlzdGQuaCIgMyA0Cj4+IGV4dGVybiB1bnNpZ25lZCBpbnQgc2xlZXAgKHVuc2lnbmVkIGlu
dCBfX3NlY29uZHMpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gX191c2Vjb25kc190
IHVhbGFybSAoX191c2Vjb25kc190IF9fdmFsdWUsIF9fdXNlY29uZHNfdCBfX2ludGVydmFsKQo+
PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdXNsZWVwIChfX3VzZWNvbmRzX3QgX191c2Vjb25kcyk7
Cj4+ICMgNDcyICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+PiBleHRlcm4gaW50IHBhdXNl
ICh2b2lkKTsKPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBjaG93biAoY29uc3QgY2hhciAqX19maWxl
LCBfX3VpZF90IF9fb3duZXIsIF9fZ2lkX3QgX19ncm91cCkKPj4gICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSkpKSA7Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgZmNob3duIChpbnQgX19mZCwgX191aWRfdCBf
X293bmVyLCBfX2dpZF90IF9fZ3JvdXApIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGxjaG93biAoY29uc3QgY2hhciAq
X19maWxlLCBfX3VpZF90IF9fb3duZXIsIF9fZ2lkX3QgX19ncm91cCkKPj4gICAgICBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51
bGxfXyAoMSkpKSA7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgZmNob3duYXQgKGlu
dCBfX2ZkLCBjb25zdCBjaGFyICpfX2ZpbGUsIF9fdWlkX3QgX19vd25lciwKPj4gICAgICAgIF9f
Z2lkX3QgX19ncm91cCwgaW50IF9fZmxhZykKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKSA7Cj4+
Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgY2hkaXIgKGNvbnN0IGNoYXIgKl9fcGF0aCkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs
X18gKDEpKSkgOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGZjaGRpciAoaW50IF9fZmQpIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+PiAjIDUxNCAiL3Vzci9pbmNs
dWRlL3VuaXN0ZC5oIiAzIDQKPj4gZXh0ZXJuIGNoYXIgKmdldGN3ZCAoY2hhciAqX19idWYsIHNp
emVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+
PiAjIDUyOCAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPj4gZXh0ZXJuIGNoYXIgKmdldHdk
IChjaGFyICpfX2J1ZikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSBfX2F0dHJpYnV0ZV9fICgo
X19kZXByZWNhdGVkX18pKSA7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgZHVwIChpbnQgX19m
ZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4+Cj4+Cj4+IGV4
dGVybiBpbnQgZHVwMiAoaW50IF9fZmQsIGludCBfX2ZkMikgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKTsKPj4gIyA1NDYgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0
Cj4+IGV4dGVybiBjaGFyICoqX19lbnZpcm9uOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRl
cm4gaW50IGV4ZWN2ZSAoY29uc3QgY2hhciAqX19wYXRoLCBjaGFyICpjb25zdCBfX2FyZ3ZbXSwK
Pj4gICAgICBjaGFyICpjb25zdCBfX2VudnBbXSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4+Cj4+
Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgZmV4ZWN2ZSAoaW50IF9fZmQsIGNoYXIgKmNvbnN0IF9fYXJn
dltdLCBjaGFyICpjb25zdCBfX2VudnBbXSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPj4K
Pj4KPj4KPj4KPj4gZXh0ZXJuIGludCBleGVjdiAoY29uc3QgY2hhciAqX19wYXRoLCBjaGFyICpj
b25zdCBfX2FyZ3ZbXSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPj4KPj4KPj4KPj4g
ZXh0ZXJuIGludCBleGVjbGUgKGNvbnN0IGNoYXIgKl9fcGF0aCwgY29uc3QgY2hhciAqX19hcmcs
IC4uLikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f
YXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPj4KPj4KPj4KPj4gZXh0ZXJuIGlu
dCBleGVjbCAoY29uc3QgY2hhciAqX19wYXRoLCBjb25zdCBjaGFyICpfX2FyZywgLi4uKQo+PiAg
ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGV4ZWN2cCAo
Y29uc3QgY2hhciAqX19maWxlLCBjaGFyICpjb25zdCBfX2FyZ3ZbXSkKPj4gICAgICBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51
bGxfXyAoMSwgMikpKTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBleGVjbHAgKGNvbnN0IGNo
YXIgKl9fZmlsZSwgY29uc3QgY2hhciAqX19hcmcsIC4uLikKPj4gICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSwgMikpKTsKPj4gIyA2MDEgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4+IGV4dGVybiBp
bnQgbmljZSAoaW50IF9faW5jKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIDsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHZvaWQgX2V4aXQgKGludCBfX3N0YXR1cykgX19h
dHRyaWJ1dGVfXyAoKF9fbm9yZXR1cm5fXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiAjIDEgIi91c3Iv
aW5jbHVkZS9iaXRzL2NvbmZuYW1lLmgiIDEgMyA0Cj4+ICMgMjQgIi91c3IvaW5jbHVkZS9iaXRz
L2NvbmZuYW1lLmgiIDMgNAo+PiBlbnVtCj4+ICAgewo+PiAgICAgX1BDX0xJTktfTUFYLAo+Pgo+
PiAgICAgX1BDX01BWF9DQU5PTiwKPj4KPj4gICAgIF9QQ19NQVhfSU5QVVQsCj4+Cj4+ICAgICBf
UENfTkFNRV9NQVgsCj4+Cj4+ICAgICBfUENfUEFUSF9NQVgsCj4+Cj4+ICAgICBfUENfUElQRV9C
VUYsCj4+Cj4+ICAgICBfUENfQ0hPV05fUkVTVFJJQ1RFRCwKPj4KPj4gICAgIF9QQ19OT19UUlVO
QywKPj4KPj4gICAgIF9QQ19WRElTQUJMRSwKPj4KPj4gICAgIF9QQ19TWU5DX0lPLAo+Pgo+PiAg
ICAgX1BDX0FTWU5DX0lPLAo+Pgo+PiAgICAgX1BDX1BSSU9fSU8sCj4+Cj4+ICAgICBfUENfU09D
S19NQVhCVUYsCj4+Cj4+ICAgICBfUENfRklMRVNJWkVCSVRTLAo+Pgo+PiAgICAgX1BDX1JFQ19J
TkNSX1hGRVJfU0laRSwKPj4KPj4gICAgIF9QQ19SRUNfTUFYX1hGRVJfU0laRSwKPj4KPj4gICAg
IF9QQ19SRUNfTUlOX1hGRVJfU0laRSwKPj4KPj4gICAgIF9QQ19SRUNfWEZFUl9BTElHTiwKPj4K
Pj4gICAgIF9QQ19BTExPQ19TSVpFX01JTiwKPj4KPj4gICAgIF9QQ19TWU1MSU5LX01BWCwKPj4K
Pj4gICAgIF9QQ18yX1NZTUxJTktTCj4+Cj4+ICAgfTsKPj4KPj4KPj4gZW51bQo+PiAgIHsKPj4g
ICAgIF9TQ19BUkdfTUFYLAo+Pgo+PiAgICAgX1NDX0NISUxEX01BWCwKPj4KPj4gICAgIF9TQ19D
TEtfVENLLAo+Pgo+PiAgICAgX1NDX05HUk9VUFNfTUFYLAo+Pgo+PiAgICAgX1NDX09QRU5fTUFY
LAo+Pgo+PiAgICAgX1NDX1NUUkVBTV9NQVgsCj4+Cj4+ICAgICBfU0NfVFpOQU1FX01BWCwKPj4K
Pj4gICAgIF9TQ19KT0JfQ09OVFJPTCwKPj4KPj4gICAgIF9TQ19TQVZFRF9JRFMsCj4+Cj4+ICAg
ICBfU0NfUkVBTFRJTUVfU0lHTkFMUywKPj4KPj4gICAgIF9TQ19QUklPUklUWV9TQ0hFRFVMSU5H
LAo+Pgo+PiAgICAgX1NDX1RJTUVSUywKPj4KPj4gICAgIF9TQ19BU1lOQ0hST05PVVNfSU8sCj4+
Cj4+ICAgICBfU0NfUFJJT1JJVElaRURfSU8sCj4+Cj4+ICAgICBfU0NfU1lOQ0hST05JWkVEX0lP
LAo+Pgo+PiAgICAgX1NDX0ZTWU5DLAo+Pgo+PiAgICAgX1NDX01BUFBFRF9GSUxFUywKPj4KPj4g
ICAgIF9TQ19NRU1MT0NLLAo+Pgo+PiAgICAgX1NDX01FTUxPQ0tfUkFOR0UsCj4+Cj4+ICAgICBf
U0NfTUVNT1JZX1BST1RFQ1RJT04sCj4+Cj4+ICAgICBfU0NfTUVTU0FHRV9QQVNTSU5HLAo+Pgo+
PiAgICAgX1NDX1NFTUFQSE9SRVMsCj4+Cj4+ICAgICBfU0NfU0hBUkVEX01FTU9SWV9PQkpFQ1RT
LAo+Pgo+PiAgICAgX1NDX0FJT19MSVNUSU9fTUFYLAo+Pgo+PiAgICAgX1NDX0FJT19NQVgsCj4+
Cj4+ICAgICBfU0NfQUlPX1BSSU9fREVMVEFfTUFYLAo+Pgo+PiAgICAgX1NDX0RFTEFZVElNRVJf
TUFYLAo+Pgo+PiAgICAgX1NDX01RX09QRU5fTUFYLAo+Pgo+PiAgICAgX1NDX01RX1BSSU9fTUFY
LAo+Pgo+PiAgICAgX1NDX1ZFUlNJT04sCj4+Cj4+ICAgICBfU0NfUEFHRVNJWkUsCj4+Cj4+Cj4+
ICAgICBfU0NfUlRTSUdfTUFYLAo+Pgo+PiAgICAgX1NDX1NFTV9OU0VNU19NQVgsCj4+Cj4+ICAg
ICBfU0NfU0VNX1ZBTFVFX01BWCwKPj4KPj4gICAgIF9TQ19TSUdRVUVVRV9NQVgsCj4+Cj4+ICAg
ICBfU0NfVElNRVJfTUFYLAo+Pgo+Pgo+Pgo+Pgo+PiAgICAgX1NDX0JDX0JBU0VfTUFYLAo+Pgo+
PiAgICAgX1NDX0JDX0RJTV9NQVgsCj4+Cj4+ICAgICBfU0NfQkNfU0NBTEVfTUFYLAo+Pgo+PiAg
ICAgX1NDX0JDX1NUUklOR19NQVgsCj4+Cj4+ICAgICBfU0NfQ09MTF9XRUlHSFRTX01BWCwKPj4K
Pj4gICAgIF9TQ19FUVVJVl9DTEFTU19NQVgsCj4+Cj4+ICAgICBfU0NfRVhQUl9ORVNUX01BWCwK
Pj4KPj4gICAgIF9TQ19MSU5FX01BWCwKPj4KPj4gICAgIF9TQ19SRV9EVVBfTUFYLAo+Pgo+PiAg
ICAgX1NDX0NIQVJDTEFTU19OQU1FX01BWCwKPj4KPj4KPj4gICAgIF9TQ18yX1ZFUlNJT04sCj4+
Cj4+ICAgICBfU0NfMl9DX0JJTkQsCj4+Cj4+ICAgICBfU0NfMl9DX0RFViwKPj4KPj4gICAgIF9T
Q18yX0ZPUlRfREVWLAo+Pgo+PiAgICAgX1NDXzJfRk9SVF9SVU4sCj4+Cj4+ICAgICBfU0NfMl9T
V19ERVYsCj4+Cj4+ICAgICBfU0NfMl9MT0NBTEVERUYsCj4+Cj4+Cj4+ICAgICBfU0NfUElJLAo+
Pgo+PiAgICAgX1NDX1BJSV9YVEksCj4+Cj4+ICAgICBfU0NfUElJX1NPQ0tFVCwKPj4KPj4gICAg
IF9TQ19QSUlfSU5URVJORVQsCj4+Cj4+ICAgICBfU0NfUElJX09TSSwKPj4KPj4gICAgIF9TQ19Q
T0xMLAo+Pgo+PiAgICAgX1NDX1NFTEVDVCwKPj4KPj4gICAgIF9TQ19VSU9fTUFYSU9WLAo+Pgo+
PiAgICAgX1NDX0lPVl9NQVggPSBfU0NfVUlPX01BWElPViwKPj4KPj4gICAgIF9TQ19QSUlfSU5U
RVJORVRfU1RSRUFNLAo+Pgo+PiAgICAgX1NDX1BJSV9JTlRFUk5FVF9ER1JBTSwKPj4KPj4gICAg
IF9TQ19QSUlfT1NJX0NPVFMsCj4+Cj4+ICAgICBfU0NfUElJX09TSV9DTFRTLAo+Pgo+PiAgICAg
X1NDX1BJSV9PU0lfTSwKPj4KPj4gICAgIF9TQ19UX0lPVl9NQVgsCj4+Cj4+Cj4+Cj4+ICAgICBf
U0NfVEhSRUFEUywKPj4KPj4gICAgIF9TQ19USFJFQURfU0FGRV9GVU5DVElPTlMsCj4+Cj4+ICAg
ICBfU0NfR0VUR1JfUl9TSVpFX01BWCwKPj4KPj4gICAgIF9TQ19HRVRQV19SX1NJWkVfTUFYLAo+
Pgo+PiAgICAgX1NDX0xPR0lOX05BTUVfTUFYLAo+Pgo+PiAgICAgX1NDX1RUWV9OQU1FX01BWCwK
Pj4KPj4gICAgIF9TQ19USFJFQURfREVTVFJVQ1RPUl9JVEVSQVRJT05TLAo+Pgo+PiAgICAgX1ND
X1RIUkVBRF9LRVlTX01BWCwKPj4KPj4gICAgIF9TQ19USFJFQURfU1RBQ0tfTUlOLAo+Pgo+PiAg
ICAgX1NDX1RIUkVBRF9USFJFQURTX01BWCwKPj4KPj4gICAgIF9TQ19USFJFQURfQVRUUl9TVEFD
S0FERFIsCj4+Cj4+ICAgICBfU0NfVEhSRUFEX0FUVFJfU1RBQ0tTSVpFLAo+Pgo+PiAgICAgX1ND
X1RIUkVBRF9QUklPUklUWV9TQ0hFRFVMSU5HLAo+Pgo+PiAgICAgX1NDX1RIUkVBRF9QUklPX0lO
SEVSSVQsCj4+Cj4+ICAgICBfU0NfVEhSRUFEX1BSSU9fUFJPVEVDVCwKPj4KPj4gICAgIF9TQ19U
SFJFQURfUFJPQ0VTU19TSEFSRUQsCj4+Cj4+Cj4+ICAgICBfU0NfTlBST0NFU1NPUlNfQ09ORiwK
Pj4KPj4gICAgIF9TQ19OUFJPQ0VTU09SU19PTkxOLAo+Pgo+PiAgICAgX1NDX1BIWVNfUEFHRVMs
Cj4+Cj4+ICAgICBfU0NfQVZQSFlTX1BBR0VTLAo+Pgo+PiAgICAgX1NDX0FURVhJVF9NQVgsCj4+
Cj4+ICAgICBfU0NfUEFTU19NQVgsCj4+Cj4+Cj4+ICAgICBfU0NfWE9QRU5fVkVSU0lPTiwKPj4K
Pj4gICAgIF9TQ19YT1BFTl9YQ1VfVkVSU0lPTiwKPj4KPj4gICAgIF9TQ19YT1BFTl9VTklYLAo+
Pgo+PiAgICAgX1NDX1hPUEVOX0NSWVBULAo+Pgo+PiAgICAgX1NDX1hPUEVOX0VOSF9JMThOLAo+
Pgo+PiAgICAgX1NDX1hPUEVOX1NITSwKPj4KPj4KPj4gICAgIF9TQ18yX0NIQVJfVEVSTSwKPj4K
Pj4gICAgIF9TQ18yX0NfVkVSU0lPTiwKPj4KPj4gICAgIF9TQ18yX1VQRSwKPj4KPj4KPj4gICAg
IF9TQ19YT1BFTl9YUEcyLAo+Pgo+PiAgICAgX1NDX1hPUEVOX1hQRzMsCj4+Cj4+ICAgICBfU0Nf
WE9QRU5fWFBHNCwKPj4KPj4KPj4gICAgIF9TQ19DSEFSX0JJVCwKPj4KPj4gICAgIF9TQ19DSEFS
X01BWCwKPj4KPj4gICAgIF9TQ19DSEFSX01JTiwKPj4KPj4gICAgIF9TQ19JTlRfTUFYLAo+Pgo+
PiAgICAgX1NDX0lOVF9NSU4sCj4+Cj4+ICAgICBfU0NfTE9OR19CSVQsCj4+Cj4+ICAgICBfU0Nf
V09SRF9CSVQsCj4+Cj4+ICAgICBfU0NfTUJfTEVOX01BWCwKPj4KPj4gICAgIF9TQ19OWkVSTywK
Pj4KPj4gICAgIF9TQ19TU0laRV9NQVgsCj4+Cj4+ICAgICBfU0NfU0NIQVJfTUFYLAo+Pgo+PiAg
ICAgX1NDX1NDSEFSX01JTiwKPj4KPj4gICAgIF9TQ19TSFJUX01BWCwKPj4KPj4gICAgIF9TQ19T
SFJUX01JTiwKPj4KPj4gICAgIF9TQ19VQ0hBUl9NQVgsCj4+Cj4+ICAgICBfU0NfVUlOVF9NQVgs
Cj4+Cj4+ICAgICBfU0NfVUxPTkdfTUFYLAo+Pgo+PiAgICAgX1NDX1VTSFJUX01BWCwKPj4KPj4K
Pj4gICAgIF9TQ19OTF9BUkdNQVgsCj4+Cj4+ICAgICBfU0NfTkxfTEFOR01BWCwKPj4KPj4gICAg
IF9TQ19OTF9NU0dNQVgsCj4+Cj4+ICAgICBfU0NfTkxfTk1BWCwKPj4KPj4gICAgIF9TQ19OTF9T
RVRNQVgsCj4+Cj4+ICAgICBfU0NfTkxfVEVYVE1BWCwKPj4KPj4KPj4gICAgIF9TQ19YQlM1X0lM
UDMyX09GRjMyLAo+Pgo+PiAgICAgX1NDX1hCUzVfSUxQMzJfT0ZGQklHLAo+Pgo+PiAgICAgX1ND
X1hCUzVfTFA2NF9PRkY2NCwKPj4KPj4gICAgIF9TQ19YQlM1X0xQQklHX09GRkJJRywKPj4KPj4K
Pj4gICAgIF9TQ19YT1BFTl9MRUdBQ1ksCj4+Cj4+ICAgICBfU0NfWE9QRU5fUkVBTFRJTUUsCj4+
Cj4+ICAgICBfU0NfWE9QRU5fUkVBTFRJTUVfVEhSRUFEUywKPj4KPj4KPj4gICAgIF9TQ19BRFZJ
U09SWV9JTkZPLAo+Pgo+PiAgICAgX1NDX0JBUlJJRVJTLAo+Pgo+PiAgICAgX1NDX0JBU0UsCj4+
Cj4+ICAgICBfU0NfQ19MQU5HX1NVUFBPUlQsCj4+Cj4+ICAgICBfU0NfQ19MQU5HX1NVUFBPUlRf
UiwKPj4KPj4gICAgIF9TQ19DTE9DS19TRUxFQ1RJT04sCj4+Cj4+ICAgICBfU0NfQ1BVVElNRSwK
Pj4KPj4gICAgIF9TQ19USFJFQURfQ1BVVElNRSwKPj4KPj4gICAgIF9TQ19ERVZJQ0VfSU8sCj4+
Cj4+ICAgICBfU0NfREVWSUNFX1NQRUNJRklDLAo+Pgo+PiAgICAgX1NDX0RFVklDRV9TUEVDSUZJ
Q19SLAo+Pgo+PiAgICAgX1NDX0ZEX01HTVQsCj4+Cj4+ICAgICBfU0NfRklGTywKPj4KPj4gICAg
IF9TQ19QSVBFLAo+Pgo+PiAgICAgX1NDX0ZJTEVfQVRUUklCVVRFUywKPj4KPj4gICAgIF9TQ19G
SUxFX0xPQ0tJTkcsCj4+Cj4+ICAgICBfU0NfRklMRV9TWVNURU0sCj4+Cj4+ICAgICBfU0NfTU9O
T1RPTklDX0NMT0NLLAo+Pgo+PiAgICAgX1NDX01VTFRJX1BST0NFU1MsCj4+Cj4+ICAgICBfU0Nf
U0lOR0xFX1BST0NFU1MsCj4+Cj4+ICAgICBfU0NfTkVUV09SS0lORywKPj4KPj4gICAgIF9TQ19S
RUFERVJfV1JJVEVSX0xPQ0tTLAo+Pgo+PiAgICAgX1NDX1NQSU5fTE9DS1MsCj4+Cj4+ICAgICBf
U0NfUkVHRVhQLAo+Pgo+PiAgICAgX1NDX1JFR0VYX1ZFUlNJT04sCj4+Cj4+ICAgICBfU0NfU0hF
TEwsCj4+Cj4+ICAgICBfU0NfU0lHTkFMUywKPj4KPj4gICAgIF9TQ19TUEFXTiwKPj4KPj4gICAg
IF9TQ19TUE9SQURJQ19TRVJWRVIsCj4+Cj4+ICAgICBfU0NfVEhSRUFEX1NQT1JBRElDX1NFUlZF
UiwKPj4KPj4gICAgIF9TQ19TWVNURU1fREFUQUJBU0UsCj4+Cj4+ICAgICBfU0NfU1lTVEVNX0RB
VEFCQVNFX1IsCj4+Cj4+ICAgICBfU0NfVElNRU9VVFMsCj4+Cj4+ICAgICBfU0NfVFlQRURfTUVN
T1JZX09CSkVDVFMsCj4+Cj4+ICAgICBfU0NfVVNFUl9HUk9VUFMsCj4+Cj4+ICAgICBfU0NfVVNF
Ul9HUk9VUFNfUiwKPj4KPj4gICAgIF9TQ18yX1BCUywKPj4KPj4gICAgIF9TQ18yX1BCU19BQ0NP
VU5USU5HLAo+Pgo+PiAgICAgX1NDXzJfUEJTX0xPQ0FURSwKPj4KPj4gICAgIF9TQ18yX1BCU19N
RVNTQUdFLAo+Pgo+PiAgICAgX1NDXzJfUEJTX1RSQUNLLAo+Pgo+PiAgICAgX1NDX1NZTUxPT1Bf
TUFYLAo+Pgo+PiAgICAgX1NDX1NUUkVBTVMsCj4+Cj4+ICAgICBfU0NfMl9QQlNfQ0hFQ0tQT0lO
VCwKPj4KPj4KPj4gICAgIF9TQ19WNl9JTFAzMl9PRkYzMiwKPj4KPj4gICAgIF9TQ19WNl9JTFAz
Ml9PRkZCSUcsCj4+Cj4+ICAgICBfU0NfVjZfTFA2NF9PRkY2NCwKPj4KPj4gICAgIF9TQ19WNl9M
UEJJR19PRkZCSUcsCj4+Cj4+Cj4+ICAgICBfU0NfSE9TVF9OQU1FX01BWCwKPj4KPj4gICAgIF9T
Q19UUkFDRSwKPj4KPj4gICAgIF9TQ19UUkFDRV9FVkVOVF9GSUxURVIsCj4+Cj4+ICAgICBfU0Nf
VFJBQ0VfSU5IRVJJVCwKPj4KPj4gICAgIF9TQ19UUkFDRV9MT0csCj4+Cj4+Cj4+ICAgICBfU0Nf
TEVWRUwxX0lDQUNIRV9TSVpFLAo+Pgo+PiAgICAgX1NDX0xFVkVMMV9JQ0FDSEVfQVNTT0MsCj4+
Cj4+ICAgICBfU0NfTEVWRUwxX0lDQUNIRV9MSU5FU0laRSwKPj4KPj4gICAgIF9TQ19MRVZFTDFf
RENBQ0hFX1NJWkUsCj4+Cj4+ICAgICBfU0NfTEVWRUwxX0RDQUNIRV9BU1NPQywKPj4KPj4gICAg
IF9TQ19MRVZFTDFfRENBQ0hFX0xJTkVTSVpFLAo+Pgo+PiAgICAgX1NDX0xFVkVMMl9DQUNIRV9T
SVpFLAo+Pgo+PiAgICAgX1NDX0xFVkVMMl9DQUNIRV9BU1NPQywKPj4KPj4gICAgIF9TQ19MRVZF
TDJfQ0FDSEVfTElORVNJWkUsCj4+Cj4+ICAgICBfU0NfTEVWRUwzX0NBQ0hFX1NJWkUsCj4+Cj4+
ICAgICBfU0NfTEVWRUwzX0NBQ0hFX0FTU09DLAo+Pgo+PiAgICAgX1NDX0xFVkVMM19DQUNIRV9M
SU5FU0laRSwKPj4KPj4gICAgIF9TQ19MRVZFTDRfQ0FDSEVfU0laRSwKPj4KPj4gICAgIF9TQ19M
RVZFTDRfQ0FDSEVfQVNTT0MsCj4+Cj4+ICAgICBfU0NfTEVWRUw0X0NBQ0hFX0xJTkVTSVpFLAo+
Pgo+Pgo+Pgo+PiAgICAgX1NDX0lQVjYgPSBfU0NfTEVWRUwxX0lDQUNIRV9TSVpFICsgNTAsCj4+
Cj4+ICAgICBfU0NfUkFXX1NPQ0tFVFMsCj4+Cj4+Cj4+ICAgICBfU0NfVjdfSUxQMzJfT0ZGMzIs
Cj4+Cj4+ICAgICBfU0NfVjdfSUxQMzJfT0ZGQklHLAo+Pgo+PiAgICAgX1NDX1Y3X0xQNjRfT0ZG
NjQsCj4+Cj4+ICAgICBfU0NfVjdfTFBCSUdfT0ZGQklHLAo+Pgo+Pgo+PiAgICAgX1NDX1NTX1JF
UExfTUFYLAo+Pgo+Pgo+PiAgICAgX1NDX1RSQUNFX0VWRU5UX05BTUVfTUFYLAo+Pgo+PiAgICAg
X1NDX1RSQUNFX05BTUVfTUFYLAo+Pgo+PiAgICAgX1NDX1RSQUNFX1NZU19NQVgsCj4+Cj4+ICAg
ICBfU0NfVFJBQ0VfVVNFUl9FVkVOVF9NQVgsCj4+Cj4+Cj4+ICAgICBfU0NfWE9QRU5fU1RSRUFN
UywKPj4KPj4KPj4gICAgIF9TQ19USFJFQURfUk9CVVNUX1BSSU9fSU5IRVJJVCwKPj4KPj4gICAg
IF9TQ19USFJFQURfUk9CVVNUX1BSSU9fUFJPVEVDVAo+Pgo+PiAgIH07Cj4+Cj4+Cj4+IGVudW0K
Pj4gICB7Cj4+ICAgICBfQ1NfUEFUSCwKPj4KPj4KPj4gICAgIF9DU19WNl9XSURUSF9SRVNUUklD
VEVEX0VOVlMsCj4+Cj4+Cj4+Cj4+ICAgICBfQ1NfR05VX0xJQkNfVkVSU0lPTiwKPj4KPj4gICAg
IF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLAo+Pgo+Pgo+PiAgICAgX0NTX1Y1X1dJRFRIX1JF
U1RSSUNURURfRU5WUywKPj4KPj4KPj4KPj4gICAgIF9DU19WN19XSURUSF9SRVNUUklDVEVEX0VO
VlMsCj4+Cj4+Cj4+Cj4+ICAgICBfQ1NfTEZTX0NGTEFHUyA9IDEwMDAsCj4+Cj4+ICAgICBfQ1Nf
TEZTX0xERkxBR1MsCj4+Cj4+ICAgICBfQ1NfTEZTX0xJQlMsCj4+Cj4+ICAgICBfQ1NfTEZTX0xJ
TlRGTEFHUywKPj4KPj4gICAgIF9DU19MRlM2NF9DRkxBR1MsCj4+Cj4+ICAgICBfQ1NfTEZTNjRf
TERGTEFHUywKPj4KPj4gICAgIF9DU19MRlM2NF9MSUJTLAo+Pgo+PiAgICAgX0NTX0xGUzY0X0xJ
TlRGTEFHUywKPj4KPj4KPj4gICAgIF9DU19YQlM1X0lMUDMyX09GRjMyX0NGTEFHUyA9IDExMDAs
Cj4+Cj4+ICAgICBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9MREZMQUdTLAo+Pgo+PiAgICAgX0NTX1hC
UzVfSUxQMzJfT0ZGMzJfTElCUywKPj4KPj4gICAgIF9DU19YQlM1X0lMUDMyX09GRjMyX0xJTlRG
TEFHUywKPj4KPj4gICAgIF9DU19YQlM1X0lMUDMyX09GRkJJR19DRkxBR1MsCj4+Cj4+ICAgICBf
Q1NfWEJTNV9JTFAzMl9PRkZCSUdfTERGTEFHUywKPj4KPj4gICAgIF9DU19YQlM1X0lMUDMyX09G
RkJJR19MSUJTLAo+Pgo+PiAgICAgX0NTX1hCUzVfSUxQMzJfT0ZGQklHX0xJTlRGTEFHUywKPj4K
Pj4gICAgIF9DU19YQlM1X0xQNjRfT0ZGNjRfQ0ZMQUdTLAo+Pgo+PiAgICAgX0NTX1hCUzVfTFA2
NF9PRkY2NF9MREZMQUdTLAo+Pgo+PiAgICAgX0NTX1hCUzVfTFA2NF9PRkY2NF9MSUJTLAo+Pgo+
PiAgICAgX0NTX1hCUzVfTFA2NF9PRkY2NF9MSU5URkxBR1MsCj4+Cj4+ICAgICBfQ1NfWEJTNV9M
UEJJR19PRkZCSUdfQ0ZMQUdTLAo+Pgo+PiAgICAgX0NTX1hCUzVfTFBCSUdfT0ZGQklHX0xERkxB
R1MsCj4+Cj4+ICAgICBfQ1NfWEJTNV9MUEJJR19PRkZCSUdfTElCUywKPj4KPj4gICAgIF9DU19Y
QlM1X0xQQklHX09GRkJJR19MSU5URkxBR1MsCj4+Cj4+Cj4+ICAgICBfQ1NfUE9TSVhfVjZfSUxQ
MzJfT0ZGMzJfQ0ZMQUdTLAo+Pgo+PiAgICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0xERkxB
R1MsCj4+Cj4+ICAgICBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGMzJfTElCUywKPj4KPj4gICAgIF9D
U19QT1NJWF9WNl9JTFAzMl9PRkYzMl9MSU5URkxBR1MsCj4+Cj4+ICAgICBfQ1NfUE9TSVhfVjZf
SUxQMzJfT0ZGQklHX0NGTEFHUywKPj4KPj4gICAgIF9DU19QT1NJWF9WNl9JTFAzMl9PRkZCSUdf
TERGTEFHUywKPj4KPj4gICAgIF9DU19QT1NJWF9WNl9JTFAzMl9PRkZCSUdfTElCUywKPj4KPj4g
ICAgIF9DU19QT1NJWF9WNl9JTFAzMl9PRkZCSUdfTElOVEZMQUdTLAo+Pgo+PiAgICAgX0NTX1BP
U0lYX1Y2X0xQNjRfT0ZGNjRfQ0ZMQUdTLAo+Pgo+PiAgICAgX0NTX1BPU0lYX1Y2X0xQNjRfT0ZG
NjRfTERGTEFHUywKPj4KPj4gICAgIF9DU19QT1NJWF9WNl9MUDY0X09GRjY0X0xJQlMsCj4+Cj4+
ICAgICBfQ1NfUE9TSVhfVjZfTFA2NF9PRkY2NF9MSU5URkxBR1MsCj4+Cj4+ICAgICBfQ1NfUE9T
SVhfVjZfTFBCSUdfT0ZGQklHX0NGTEFHUywKPj4KPj4gICAgIF9DU19QT1NJWF9WNl9MUEJJR19P
RkZCSUdfTERGTEFHUywKPj4KPj4gICAgIF9DU19QT1NJWF9WNl9MUEJJR19PRkZCSUdfTElCUywK
Pj4KPj4gICAgIF9DU19QT1NJWF9WNl9MUEJJR19PRkZCSUdfTElOVEZMQUdTLAo+Pgo+Pgo+PiAg
ICAgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRjMyX0NGTEFHUywKPj4KPj4gICAgIF9DU19QT1NJWF9W
N19JTFAzMl9PRkYzMl9MREZMQUdTLAo+Pgo+PiAgICAgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRjMy
X0xJQlMsCj4+Cj4+ICAgICBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGMzJfTElOVEZMQUdTLAo+Pgo+
PiAgICAgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRkJJR19DRkxBR1MsCj4+Cj4+ICAgICBfQ1NfUE9T
SVhfVjdfSUxQMzJfT0ZGQklHX0xERkxBR1MsCj4+Cj4+ICAgICBfQ1NfUE9TSVhfVjdfSUxQMzJf
T0ZGQklHX0xJQlMsCj4+Cj4+ICAgICBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGQklHX0xJTlRGTEFH
UywKPj4KPj4gICAgIF9DU19QT1NJWF9WN19MUDY0X09GRjY0X0NGTEFHUywKPj4KPj4gICAgIF9D
U19QT1NJWF9WN19MUDY0X09GRjY0X0xERkxBR1MsCj4+Cj4+ICAgICBfQ1NfUE9TSVhfVjdfTFA2
NF9PRkY2NF9MSUJTLAo+Pgo+PiAgICAgX0NTX1BPU0lYX1Y3X0xQNjRfT0ZGNjRfTElOVEZMQUdT
LAo+Pgo+PiAgICAgX0NTX1BPU0lYX1Y3X0xQQklHX09GRkJJR19DRkxBR1MsCj4+Cj4+ICAgICBf
Q1NfUE9TSVhfVjdfTFBCSUdfT0ZGQklHX0xERkxBR1MsCj4+Cj4+ICAgICBfQ1NfUE9TSVhfVjdf
TFBCSUdfT0ZGQklHX0xJQlMsCj4+Cj4+ICAgICBfQ1NfUE9TSVhfVjdfTFBCSUdfT0ZGQklHX0xJ
TlRGTEFHUywKPj4KPj4KPj4gICAgIF9DU19WNl9FTlYsCj4+Cj4+ICAgICBfQ1NfVjdfRU5WCj4+
Cj4+ICAgfTsKPj4gIyA2MTMgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMiAzIDQKPj4KPj4KPj4g
ZXh0ZXJuIGxvbmcgaW50IHBhdGhjb25mIChjb25zdCBjaGFyICpfX3BhdGgsIGludCBfX25hbWUp
Cj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp
YnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4+Cj4+Cj4+IGV4dGVybiBsb25nIGludCBmcGF0
aGNvbmYgKGludCBfX2ZkLCBpbnQgX19uYW1lKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4gbG9uZyBpbnQgc3lzY29uZiAoaW50IF9fbmFt
ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4g
ZXh0ZXJuIHNpemVfdCBjb25mc3RyIChpbnQgX19uYW1lLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9f
bGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+
Pgo+PiBleHRlcm4gX19waWRfdCBnZXRwaWQgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiBfX3BpZF90IGdldHBwaWQgKHZvaWQp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+IGV4dGVy
biBfX3BpZF90IGdldHBncnAgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiBfX3BpZF90IF9fZ2V0cGdpZCAoX19waWRfdCBfX3Bp
ZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4gZXh0ZXJu
IF9fcGlkX3QgZ2V0cGdpZCAoX19waWRfdCBfX3BpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBzZXRwZ2lk
IChfX3BpZF90IF9fcGlkLCBfX3BpZF90IF9fcGdpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPj4gIyA2NjMgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4+
IGV4dGVybiBpbnQgc2V0cGdycCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIF9fcGlkX3Qgc2V0c2lkICh2
b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+
PiBleHRlcm4gX19waWRfdCBnZXRzaWQgKF9fcGlkX3QgX19waWQpIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBfX3VpZF90IGdldHVp
ZCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4K
Pj4gZXh0ZXJuIF9fdWlkX3QgZ2V0ZXVpZCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4gZXh0ZXJuIF9fZ2lkX3QgZ2V0Z2lkICh2b2lkKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4g
X19naWRfdCBnZXRlZ2lkICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGdldGdyb3VwcyAoaW50IF9fc2l6ZSwg
X19naWRfdCBfX2xpc3RbXSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KSA7Cj4+ICMgNzAzICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+PiBleHRlcm4gaW50IHNl
dHVpZCAoX191aWRfdCBfX3VpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSA7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgc2V0cmV1aWQgKF9fdWlkX3QgX19ydWlk
LCBfX3VpZF90IF9fZXVpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KSA7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgc2V0ZXVpZCAoX191aWRfdCBfX3VpZCkgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+
Cj4+IGV4dGVybiBpbnQgc2V0Z2lkIChfX2dpZF90IF9fZ2lkKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIDsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBzZXRyZWdp
ZCAoX19naWRfdCBfX3JnaWQsIF9fZ2lkX3QgX19lZ2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIDsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBzZXRlZ2lkIChf
X2dpZF90IF9fZ2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsK
Pj4gIyA3NTkgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4+IGV4dGVybiBfX3BpZF90IGZv
cmsgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+
Pgo+Pgo+PiBleHRlcm4gX19waWRfdCB2Zm9yayAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGNoYXIgKnR0eW5h
bWUgKGludCBfX2ZkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+
Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHR0eW5hbWVfciAoaW50IF9fZmQsIGNoYXIgKl9fYnVmLCBz
aXplX3QgX19idWZsZW4pCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSkgOwo+Pgo+Pgo+Pgo+PiBl
eHRlcm4gaW50IGlzYXR0eSAoaW50IF9fZmQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdHR5c2xvdCAodm9pZCkg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4g
ZXh0ZXJuIGludCBsaW5rIChjb25zdCBjaGFyICpfX2Zyb20sIGNvbnN0IGNoYXIgKl9fdG8pCj4+
ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0
ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSkgOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGxp
bmthdCAoaW50IF9fZnJvbWZkLCBjb25zdCBjaGFyICpfX2Zyb20sIGludCBfX3RvZmQsCj4+ICAg
ICAgY29uc3QgY2hhciAqX190bywgaW50IF9fZmxhZ3MpCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIs
IDQpKSkgOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHN5bWxpbmsgKGNvbnN0IGNoYXIgKl9f
ZnJvbSwgY29uc3QgY2hhciAqX190bykKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKSA7Cj4+
Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBzc2l6ZV90IHJlYWRsaW5rIChjb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fcGF0aCwKPj4gICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX2xlbikK
Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmli
dXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKSA7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQg
c3ltbGlua2F0IChjb25zdCBjaGFyICpfX2Zyb20sIGludCBfX3RvZmQsCj4+ICAgICAgICAgY29u
c3QgY2hhciAqX190bykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf
X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDMpKSkgOwo+Pgo+Pgo+PiBleHRlcm4gc3Np
emVfdCByZWFkbGlua2F0IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3BhdGgs
Cj4+ICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX2xlbikKPj4gICAgICBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf
X25vbm51bGxfXyAoMiwgMykpKSA7Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdW5saW5rIChjb25z
dCBjaGFyICpfX25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg
X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50
IHVubGlua2F0IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19uYW1lLCBpbnQgX19mbGFnKQo+PiAg
ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fbm9ubnVsbF9fICgyKSkpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHJtZGlyIChjb25z
dCBjaGFyICpfX3BhdGgpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg
X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gX19w
aWRfdCB0Y2dldHBncnAgKGludCBfX2ZkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4gaW50IHRjc2V0cGdycCAoaW50IF9fZmQsIF9fcGlk
X3QgX19wZ3JwX2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+
Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gY2hhciAqZ2V0bG9naW4gKHZvaWQpOwo+Pgo+Pgo+
Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGdldGxvZ2luX3IgKGNoYXIgKl9fbmFtZSwgc2l6
ZV90IF9fbmFtZV9sZW4pIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4K
Pj4KPj4KPj4gZXh0ZXJuIGludCBzZXRsb2dpbiAoY29uc3QgY2hhciAqX19uYW1lKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51
bGxfXyAoMSkpKTsKPj4gIyA4NzQgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4+ICMgMSAi
L3Vzci9pbmNsdWRlL2dldG9wdC5oIiAxIDMgNAo+PiAjIDU3ICIvdXNyL2luY2x1ZGUvZ2V0b3B0
LmgiIDMgNAo+PiBleHRlcm4gY2hhciAqb3B0YXJnOwo+PiAjIDcxICIvdXNyL2luY2x1ZGUvZ2V0
b3B0LmgiIDMgNAo+PiBleHRlcm4gaW50IG9wdGluZDsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGlu
dCBvcHRlcnI7Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgb3B0b3B0Owo+PiAjIDE1MCAiL3Vzci9p
bmNsdWRlL2dldG9wdC5oIiAzIDQKPj4gZXh0ZXJuIGludCBnZXRvcHQgKGludCBfX19hcmdjLCBj
aGFyICpjb25zdCAqX19fYXJndiwgY29uc3QgY2hhciAqX19zaG9ydG9wdHMpCj4+ICAgICAgICBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+PiAjIDg3NSAiL3Vzci9p
bmNsdWRlL3VuaXN0ZC5oIiAyIDMgNAo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50
IGdldGhvc3RuYW1lIChjaGFyICpfX25hbWUsIHNpemVfdCBfX2xlbikgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEp
KSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgc2V0aG9zdG5hbWUgKGNvbnN0IGNo
YXIgKl9fbmFtZSwgc2l6ZV90IF9fbGVuKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPj4K
Pj4KPj4KPj4gZXh0ZXJuIGludCBzZXRob3N0aWQgKGxvbmcgaW50IF9faWQpIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4g
aW50IGdldGRvbWFpbm5hbWUgKGNoYXIgKl9fbmFtZSwgc2l6ZV90IF9fbGVuKQo+PiAgICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxKSkpIDsKPj4gZXh0ZXJuIGludCBzZXRkb21haW5uYW1lIChjb25zdCBjaGFy
ICpfX25hbWUsIHNpemVfdCBfX2xlbikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgdmhhbmd1cCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4gZXh0ZXJuIGludCByZXZva2UgKGNvbnN0
IGNoYXIgKl9fZmlsZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf
X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+
PiBleHRlcm4gaW50IHByb2ZpbCAodW5zaWduZWQgc2hvcnQgaW50ICpfX3NhbXBsZV9idWZmZXIs
IHNpemVfdCBfX3NpemUsCj4+ICAgICAgc2l6ZV90IF9fb2Zmc2V0LCB1bnNpZ25lZCBpbnQgX19z
Y2FsZSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f
YXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJu
IGludCBhY2N0IChjb25zdCBjaGFyICpfX25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBjaGFyICpnZXR1c2Vyc2hlbGwgKHZv
aWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4dGVybiB2
b2lkIGVuZHVzZXJzaGVsbCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKTsKPj4gZXh0ZXJuIHZvaWQgc2V0dXNlcnNoZWxsICh2b2lkKSBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50
IGRhZW1vbiAoaW50IF9fbm9jaGRpciwgaW50IF9fbm9jbG9zZSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQg
Y2hyb290IChjb25zdCBjaGFyICpfX3BhdGgpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPj4KPj4KPj4K
Pj4gZXh0ZXJuIGNoYXIgKmdldHBhc3MgKGNvbnN0IGNoYXIgKl9fcHJvbXB0KSBfX2F0dHJpYnV0
ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBp
bnQgZnN5bmMgKGludCBfX2ZkKTsKPj4gIyA5NzIgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0
Cj4+IGV4dGVybiBsb25nIGludCBnZXRob3N0aWQgKHZvaWQpOwo+Pgo+Pgo+PiBleHRlcm4gdm9p
ZCBzeW5jICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+
Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGdldHBhZ2VzaXplICh2b2lkKSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18p
KTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBnZXRkdGFibGVzaXplICh2b2lkKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+PiAjIDk5NiAiL3Vzci9pbmNsdWRl
L3VuaXN0ZC5oIiAzIDQKPj4gZXh0ZXJuIGludCB0cnVuY2F0ZSAoY29uc3QgY2hhciAqX19maWxl
LCBfX29mZl90IF9fbGVuZ3RoKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPj4gIyAxMDE5
ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+PiBleHRlcm4gaW50IGZ0cnVuY2F0ZSAoaW50
IF9fZmQsIF9fb2ZmX3QgX19sZW5ndGgpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgOwo+PiAjIDEwNDAgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4+IGV4dGVy
biBpbnQgYnJrICh2b2lkICpfX2FkZHIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gdm9pZCAqc2JyayAoaW50cHRyX3Qg
X19kZWx0YSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gIyAx
MDYxICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+PiBleHRlcm4gbG9uZyBpbnQgc3lzY2Fs
bCAobG9uZyBpbnQgX19zeXNubywgLi4uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+PiAjIDExMTUgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4+IGV4dGVy
biBpbnQgZmRhdGFzeW5jIChpbnQgX19maWxkZXMpOwo+PiAjIDExNTQgIi91c3IvaW5jbHVkZS91
bmlzdGQuaCIgMyA0Cj4+Cj4+ICMgNTkgIm1hY2hpbmUuYyIgMgo+PiAjIDEgIi91c3IvaW5jbHVk
ZS9zeXMvcGFyYW0uaCIgMSAzIDQKPj4gIyAyMyAiL3Vzci9pbmNsdWRlL3N5cy9wYXJhbS5oIiAz
IDQKPj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9z
dGRkZWYuaCIgMSAzIDQKPj4gIyAyNCAiL3Vzci9pbmNsdWRlL3N5cy9wYXJhbS5oIiAyIDMgNAo+
Pgo+Pgo+PiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRl
L2xpbWl0cy5oIiAxIDMgNAo+PiAjIDM0ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgv
Ni4xLjEvaW5jbHVkZS9saW1pdHMuaCIgMyA0Cj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVk
aGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3lzbGltaXRzLmgiIDEgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+
Cj4+Cj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUv
bGltaXRzLmgiIDEgMyA0Cj4+ICMgMTY4ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgv
Ni4xLjEvaW5jbHVkZS9saW1pdHMuaCIgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2xpbWl0cy5o
IiAxIDMgNAo+PiAjIDE0MyAiL3Vzci9pbmNsdWRlL2xpbWl0cy5oIiAzIDQKPj4gIyAxICIvdXNy
L2luY2x1ZGUvYml0cy9wb3NpeDFfbGltLmgiIDEgMyA0Cj4+ICMgMTYwICIvdXNyL2luY2x1ZGUv
Yml0cy9wb3NpeDFfbGltLmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL2xvY2FsX2xp
bS5oIiAxIDMgNAo+PiAjIDM4ICIvdXNyL2luY2x1ZGUvYml0cy9sb2NhbF9saW0uaCIgMyA0Cj4+
ICMgMSAiL3Vzci9pbmNsdWRlL2xpbnV4L2xpbWl0cy5oIiAxIDMgNAo+PiAjIDM5ICIvdXNyL2lu
Y2x1ZGUvYml0cy9sb2NhbF9saW0uaCIgMiAzIDQKPj4gIyAxNjEgIi91c3IvaW5jbHVkZS9iaXRz
L3Bvc2l4MV9saW0uaCIgMiAzIDQKPj4gIyAxNDQgIi91c3IvaW5jbHVkZS9saW1pdHMuaCIgMiAz
IDQKPj4KPj4KPj4KPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9wb3NpeDJfbGltLmgiIDEgMyA0
Cj4+ICMgMTQ4ICIvdXNyL2luY2x1ZGUvbGltaXRzLmgiIDIgMyA0Cj4+ICMgMTY5ICIvdXNyL2xp
Yi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9saW1pdHMuaCIgMiAzIDQKPj4g
IyA4ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zeXNsaW1p
dHMuaCIgMiAzIDQKPj4gIyAzNSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x
L2luY2x1ZGUvbGltaXRzLmgiIDIgMyA0Cj4+ICMgMjcgIi91c3IvaW5jbHVkZS9zeXMvcGFyYW0u
aCIgMiAzIDQKPj4KPj4KPj4KPj4KPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9wYXJhbS5oIiAx
IDMgNAo+PiAjIDI4ICIvdXNyL2luY2x1ZGUvYml0cy9wYXJhbS5oIiAzIDQKPj4gIyAxICIvdXNy
L2luY2x1ZGUvbGludXgvcGFyYW0uaCIgMSAzIDQKPj4KPj4KPj4KPj4gIyAxICIvdXNyL2luY2x1
ZGUvYXNtL3BhcmFtLmgiIDEgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS1nZW5lcmljL3Bh
cmFtLmgiIDEgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS9wYXJhbS5oIiAyIDMgNAo+PiAj
IDUgIi91c3IvaW5jbHVkZS9saW51eC9wYXJhbS5oIiAyIDMgNAo+PiAjIDI5ICIvdXNyL2luY2x1
ZGUvYml0cy9wYXJhbS5oIiAyIDMgNAo+PiAjIDMyICIvdXNyL2luY2x1ZGUvc3lzL3BhcmFtLmgi
IDIgMyA0Cj4+ICMgNjAgIm1hY2hpbmUuYyIgMgo+PiAjIDEgIi91c3IvaW5jbHVkZS9zeXMvdGlt
ZS5oIiAxIDMgNAo+PiAjIDI3ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0Cj4+ICMgMSAi
L3Vzci9pbmNsdWRlL2JpdHMvdGltZS5oIiAxIDMgNAo+PiAjIDI4ICIvdXNyL2luY2x1ZGUvc3lz
L3RpbWUuaCIgMiAzIDQKPj4gIyAzNyAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNAo+Pgo+
PiAjIDU1ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0Cj4+IHN0cnVjdCB0aW1lem9uZQo+
PiAgIHsKPj4gICAgIGludCB0el9taW51dGVzd2VzdDsKPj4gICAgIGludCB0el9kc3R0aW1lOwo+
PiAgIH07Cj4+Cj4+IHR5cGVkZWYgc3RydWN0IHRpbWV6b25lICpfX3Jlc3RyaWN0IF9fdGltZXpv
bmVfcHRyX3Q7Cj4+ICMgNzEgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAzIDQKPj4gZXh0ZXJu
IGludCBnZXR0aW1lb2ZkYXkgKHN0cnVjdCB0aW1ldmFsICpfX3Jlc3RyaWN0IF9fdHYsCj4+ICAg
ICBfX3RpbWV6b25lX3B0cl90IF9fdHopIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+Pgo+Pgo+
PiBleHRlcm4gaW50IHNldHRpbWVvZmRheSAoY29uc3Qgc3RydWN0IHRpbWV2YWwgKl9fdHYsCj4+
ICAgICBjb25zdCBzdHJ1Y3QgdGltZXpvbmUgKl9fdHopCj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBh
ZGp0aW1lIChjb25zdCBzdHJ1Y3QgdGltZXZhbCAqX19kZWx0YSwKPj4gICAgICAgc3RydWN0IHRp
bWV2YWwgKl9fb2xkZGVsdGEpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4+Cj4+Cj4+Cj4+Cj4+IGVudW0gX19pdGltZXJfd2hpY2gKPj4gICB7Cj4+Cj4+ICAgICBJ
VElNRVJfUkVBTCA9IDAsCj4+Cj4+Cj4+ICAgICBJVElNRVJfVklSVFVBTCA9IDEsCj4+Cj4+Cj4+
Cj4+ICAgICBJVElNRVJfUFJPRiA9IDIKPj4KPj4gICB9Owo+Pgo+Pgo+Pgo+PiBzdHJ1Y3QgaXRp
bWVydmFsCj4+ICAgewo+Pgo+PiAgICAgc3RydWN0IHRpbWV2YWwgaXRfaW50ZXJ2YWw7Cj4+Cj4+
ICAgICBzdHJ1Y3QgdGltZXZhbCBpdF92YWx1ZTsKPj4gICB9Owo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+
PiB0eXBlZGVmIGludCBfX2l0aW1lcl93aGljaF90Owo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50
IGdldGl0aW1lciAoX19pdGltZXJfd2hpY2hfdCBfX3doaWNoLAo+PiAgICAgICAgIHN0cnVjdCBp
dGltZXJ2YWwgKl9fdmFsdWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgc2V0aXRpbWVyIChfX2l0aW1lcl93aGljaF90
IF9fd2hpY2gsCj4+ICAgICAgICAgY29uc3Qgc3RydWN0IGl0aW1lcnZhbCAqX19yZXN0cmljdCBf
X25ldywKPj4gICAgICAgICBzdHJ1Y3QgaXRpbWVydmFsICpfX3Jlc3RyaWN0IF9fb2xkKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRl
cm4gaW50IHV0aW1lcyAoY29uc3QgY2hhciAqX19maWxlLCBjb25zdCBzdHJ1Y3QgdGltZXZhbCBf
X3R2cFsyXSkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPj4KPj4KPj4KPj4gZXh0ZXJuIGlu
dCBsdXRpbWVzIChjb25zdCBjaGFyICpfX2ZpbGUsIGNvbnN0IHN0cnVjdCB0aW1ldmFsIF9fdHZw
WzJdKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+Pgo+Pgo+PiBleHRlcm4gaW50IGZ1dGlt
ZXMgKGludCBfX2ZkLCBjb25zdCBzdHJ1Y3QgdGltZXZhbCBfX3R2cFsyXSkgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gIyAxODkgIi91c3IvaW5jbHVkZS9zeXMv
dGltZS5oIiAzIDQKPj4KPj4gIyA2MSAibWFjaGluZS5jIiAyCj4+ICMgMSAiL3Vzci9pbmNsdWRl
L3N5cy90aW1lcy5oIiAxIDMgNAo+PiAjIDMxICIvdXNyL2luY2x1ZGUvc3lzL3RpbWVzLmgiIDMg
NAo+Pgo+Pgo+Pgo+PiBzdHJ1Y3QgdG1zCj4+ICAgewo+PiAgICAgY2xvY2tfdCB0bXNfdXRpbWU7
Cj4+ICAgICBjbG9ja190IHRtc19zdGltZTsKPj4KPj4gICAgIGNsb2NrX3QgdG1zX2N1dGltZTsK
Pj4gICAgIGNsb2NrX3QgdG1zX2NzdGltZTsKPj4gICB9Owo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBl
eHRlcm4gY2xvY2tfdCB0aW1lcyAoc3RydWN0IHRtcyAqX19idWZmZXIpIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+ICMgNjIgIm1hY2hpbmUuYyIgMgo+
PiAjIDEgIi91c3IvaW5jbHVkZS9zeXMvcmVzb3VyY2UuaCIgMSAzIDQKPj4gIyAyNCAiL3Vzci9p
bmNsdWRlL3N5cy9yZXNvdXJjZS5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9yZXNv
dXJjZS5oIiAxIDMgNAo+PiAjIDMxICIvdXNyL2luY2x1ZGUvYml0cy9yZXNvdXJjZS5oIiAzIDQK
Pj4gZW51bSBfX3JsaW1pdF9yZXNvdXJjZQo+PiB7Cj4+Cj4+ICAgUkxJTUlUX0NQVSA9IDAsCj4+
Cj4+Cj4+Cj4+ICAgUkxJTUlUX0ZTSVpFID0gMSwKPj4KPj4KPj4KPj4gICBSTElNSVRfREFUQSA9
IDIsCj4+Cj4+Cj4+Cj4+ICAgUkxJTUlUX1NUQUNLID0gMywKPj4KPj4KPj4KPj4gICBSTElNSVRf
Q09SRSA9IDQsCj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+ICAgX19STElNSVRfUlNTID0gNSwKPj4KPj4K
Pj4KPj4gICBSTElNSVRfTk9GSUxFID0gNywKPj4gICBfX1JMSU1JVF9PRklMRSA9IFJMSU1JVF9O
T0ZJTEUsCj4+Cj4+Cj4+Cj4+Cj4+ICAgUkxJTUlUX0FTID0gOSwKPj4KPj4KPj4KPj4gICBfX1JM
SU1JVF9OUFJPQyA9IDYsCj4+Cj4+Cj4+Cj4+ICAgX19STElNSVRfTUVNTE9DSyA9IDgsCj4+Cj4+
Cj4+Cj4+ICAgX19STElNSVRfTE9DS1MgPSAxMCwKPj4KPj4KPj4KPj4gICBfX1JMSU1JVF9TSUdQ
RU5ESU5HID0gMTEsCj4+Cj4+Cj4+Cj4+ICAgX19STElNSVRfTVNHUVVFVUUgPSAxMiwKPj4KPj4K
Pj4KPj4KPj4KPj4gICBfX1JMSU1JVF9OSUNFID0gMTMsCj4+Cj4+Cj4+Cj4+Cj4+ICAgX19STElN
SVRfUlRQUklPID0gMTQsCj4+Cj4+Cj4+Cj4+Cj4+Cj4+ICAgX19STElNSVRfUlRUSU1FID0gMTUs
Cj4+Cj4+Cj4+ICAgX19STElNSVRfTkxJTUlUUyA9IDE2LAo+PiAgIF9fUkxJTV9OTElNSVRTID0g
X19STElNSVRfTkxJTUlUUwo+Pgo+Pgo+PiB9Owo+PiAjIDEzMSAiL3Vzci9pbmNsdWRlL2JpdHMv
cmVzb3VyY2UuaCIgMyA0Cj4+IHR5cGVkZWYgX19ybGltX3QgcmxpbV90Owo+Pgo+Pgo+Pgo+Pgo+
Pgo+Pgo+Pgo+PiBzdHJ1Y3QgcmxpbWl0Cj4+ICAgewo+Pgo+PiAgICAgcmxpbV90IHJsaW1fY3Vy
Owo+Pgo+PiAgICAgcmxpbV90IHJsaW1fbWF4Owo+PiAgIH07Cj4+ICMgMTU4ICIvdXNyL2luY2x1
ZGUvYml0cy9yZXNvdXJjZS5oIiAzIDQKPj4gZW51bSBfX3J1c2FnZV93aG8KPj4gewo+Pgo+PiAg
IFJVU0FHRV9TRUxGID0gMCwKPj4KPj4KPj4KPj4gICBSVVNBR0VfQ0hJTERSRU4gPSAtMQo+PiAj
IDE3NiAiL3Vzci9pbmNsdWRlL2JpdHMvcmVzb3VyY2UuaCIgMyA0Cj4+IH07Cj4+Cj4+Cj4+ICMg
MSAiL3Vzci9pbmNsdWRlL2JpdHMvdGltZS5oIiAxIDMgNAo+PiAjIDE4MCAiL3Vzci9pbmNsdWRl
L2JpdHMvcmVzb3VyY2UuaCIgMiAzIDQKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4gc3RydWN0IHJ1
c2FnZQo+PiAgIHsKPj4KPj4gICAgIHN0cnVjdCB0aW1ldmFsIHJ1X3V0aW1lOwo+Pgo+PiAgICAg
c3RydWN0IHRpbWV2YWwgcnVfc3RpbWU7Cj4+Cj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4+
ICAgICAgIHsKPj4gIGxvbmcgaW50IHJ1X21heHJzczsKPj4gIF9fc3lzY2FsbF9zbG9uZ190IF9f
cnVfbWF4cnNzX3dvcmQ7Cj4+ICAgICAgIH07Cj4+Cj4+Cj4+Cj4+ICAgICBfX2V4dGVuc2lvbl9f
IHVuaW9uCj4+ICAgICAgIHsKPj4gIGxvbmcgaW50IHJ1X2l4cnNzOwo+PiAgX19zeXNjYWxsX3Ns
b25nX3QgX19ydV9peHJzc193b3JkOwo+PiAgICAgICB9Owo+Pgo+PiAgICAgX19leHRlbnNpb25f
XyB1bmlvbgo+PiAgICAgICB7Cj4+ICBsb25nIGludCBydV9pZHJzczsKPj4gIF9fc3lzY2FsbF9z
bG9uZ190IF9fcnVfaWRyc3Nfd29yZDsKPj4gICAgICAgfTsKPj4KPj4gICAgIF9fZXh0ZW5zaW9u
X18gdW5pb24KPj4gICAgICAgewo+PiAgbG9uZyBpbnQgcnVfaXNyc3M7Cj4+ICAgX19zeXNjYWxs
X3Nsb25nX3QgX19ydV9pc3Jzc193b3JkOwo+PiAgICAgICB9Owo+Pgo+Pgo+PiAgICAgX19leHRl
bnNpb25fXyB1bmlvbgo+PiAgICAgICB7Cj4+ICBsb25nIGludCBydV9taW5mbHQ7Cj4+ICBfX3N5
c2NhbGxfc2xvbmdfdCBfX3J1X21pbmZsdF93b3JkOwo+PiAgICAgICB9Owo+Pgo+PiAgICAgX19l
eHRlbnNpb25fXyB1bmlvbgo+PiAgICAgICB7Cj4+ICBsb25nIGludCBydV9tYWpmbHQ7Cj4+ICBf
X3N5c2NhbGxfc2xvbmdfdCBfX3J1X21hamZsdF93b3JkOwo+PiAgICAgICB9Owo+Pgo+PiAgICAg
X19leHRlbnNpb25fXyB1bmlvbgo+PiAgICAgICB7Cj4+ICBsb25nIGludCBydV9uc3dhcDsKPj4g
IF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbnN3YXBfd29yZDsKPj4gICAgICAgfTsKPj4KPj4KPj4g
ICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPj4gICAgICAgewo+PiAgbG9uZyBpbnQgcnVfaW5ibG9j
azsKPj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfaW5ibG9ja193b3JkOwo+PiAgICAgICB9Owo+
Pgo+PiAgICAgX19leHRlbnNpb25fXyB1bmlvbgo+PiAgICAgICB7Cj4+ICBsb25nIGludCBydV9v
dWJsb2NrOwo+PiAgX19zeXNjYWxsX3Nsb25nX3QgX19ydV9vdWJsb2NrX3dvcmQ7Cj4+ICAgICAg
IH07Cj4+Cj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4+ICAgICAgIHsKPj4gIGxvbmcgaW50
IHJ1X21zZ3NuZDsKPj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbXNnc25kX3dvcmQ7Cj4+ICAg
ICAgIH07Cj4+Cj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4+ICAgICAgIHsKPj4gIGxvbmcg
aW50IHJ1X21zZ3JjdjsKPj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbXNncmN2X3dvcmQ7Cj4+
ICAgICAgIH07Cj4+Cj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4+ICAgICAgIHsKPj4gIGxv
bmcgaW50IHJ1X25zaWduYWxzOwo+PiAgX19zeXNjYWxsX3Nsb25nX3QgX19ydV9uc2lnbmFsc193
b3JkOwo+PiAgICAgICB9Owo+Pgo+Pgo+Pgo+PiAgICAgX19leHRlbnNpb25fXyB1bmlvbgo+PiAg
ICAgICB7Cj4+ICBsb25nIGludCBydV9udmNzdzsKPj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVf
bnZjc3dfd29yZDsKPj4gICAgICAgfTsKPj4KPj4KPj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24K
Pj4gICAgICAgewo+PiAgbG9uZyBpbnQgcnVfbml2Y3N3Owo+PiAgX19zeXNjYWxsX3Nsb25nX3Qg
X19ydV9uaXZjc3dfd29yZDsKPj4gICAgICAgfTsKPj4gICB9Owo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+
Pgo+PiBlbnVtIF9fcHJpb3JpdHlfd2hpY2gKPj4gewo+PiAgIFBSSU9fUFJPQ0VTUyA9IDAsCj4+
Cj4+ICAgUFJJT19QR1JQID0gMSwKPj4KPj4gICBQUklPX1VTRVIgPSAyCj4+Cj4+IH07Cj4+Cj4+
Cj4+Cj4+ICMgMzI4ICIvdXNyL2luY2x1ZGUvYml0cy9yZXNvdXJjZS5oIiAzIDQKPj4KPj4gIyAy
NSAiL3Vzci9pbmNsdWRlL3N5cy9yZXNvdXJjZS5oIiAyIDMgNAo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+
Pgo+PiAjIDQyICIvdXNyL2luY2x1ZGUvc3lzL3Jlc291cmNlLmgiIDMgNAo+PiB0eXBlZGVmIGlu
dCBfX3JsaW1pdF9yZXNvdXJjZV90Owo+PiB0eXBlZGVmIGludCBfX3J1c2FnZV93aG9fdDsKPj4g
dHlwZWRlZiBpbnQgX19wcmlvcml0eV93aGljaF90Owo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4g
aW50IGdldHJsaW1pdCAoX19ybGltaXRfcmVzb3VyY2VfdCBfX3Jlc291cmNlLAo+PiAgICAgICAg
IHN0cnVjdCBybGltaXQgKl9fcmxpbWl0cykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKTsKPj4gIyA2OSAiL3Vzci9pbmNsdWRlL3N5cy9yZXNvdXJjZS5oIiAzIDQKPj4g
ZXh0ZXJuIGludCBzZXRybGltaXQgKF9fcmxpbWl0X3Jlc291cmNlX3QgX19yZXNvdXJjZSwKPj4g
ICAgICAgICBjb25zdCBzdHJ1Y3QgcmxpbWl0ICpfX3JsaW1pdHMpIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+ICMgODcgIi91c3IvaW5jbHVkZS9zeXMvcmVzb3Vy
Y2UuaCIgMyA0Cj4+IGV4dGVybiBpbnQgZ2V0cnVzYWdlIChfX3J1c2FnZV93aG9fdCBfX3dobywg
c3RydWN0IHJ1c2FnZSAqX191c2FnZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBnZXRwcmlvcml0eSAoX19wcmlv
cml0eV93aGljaF90IF9fd2hpY2gsIGlkX3QgX193aG8pIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgc2V0cHJpb3JpdHkgKF9f
cHJpb3JpdHlfd2hpY2hfdCBfX3doaWNoLCBpZF90IF9fd2hvLCBpbnQgX19wcmlvKQo+PiAgICAg
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+ICMgNjMg
Im1hY2hpbmUuYyIgMgo+PiAjIDcxICJtYWNoaW5lLmMiCj4+ICMgMSAiZW5naW5lX3BsLmgiIDEK
Pj4gIyA0MCAiZW5naW5lX3BsLmgiCj4+ICMgMSAicGxfcGFyYW1zLmgiIDEKPj4gIyA0MSAiZW5n
aW5lX3BsLmgiIDIKPj4gIyAxICJoYXNoX2ZjdC5oIiAxCj4+ICMgNTMgImhhc2hfZmN0LmgiCj4+
Cj4+ICMgNTMgImhhc2hfZmN0LmgiCj4+IHR5cGVkZWYgc3RydWN0Cj4+IHsKPj4gICBpbnQgbGVu
Owo+PiAgIHVpbnQzMl90IGhhc2g7Cj4+IH0gSGFzaEluY3JJbmZvOwo+Pgo+Pgo+Pgo+Pgo+Pgo+
Pgo+Pgo+PiB1aW50MzJfdCBQbF9IYXNoX0J1ZmZlcihjb25zdCB2b2lkICpkYXRhLCBpbnQgbGVu
KTsKPj4KPj4gdm9pZCBQbF9IYXNoX0luY3JfSW5pdChIYXNoSW5jckluZm8gKmhpKTsKPj4KPj4g
dm9pZCBQbF9IYXNoX0luY3JfQnVmZmVyKEhhc2hJbmNySW5mbyAqaGksIGNvbnN0IHZvaWQgKmRh
dGEsIGludCBsZW4pOwo+Pgo+PiB2b2lkIFBsX0hhc2hfSW5jcl9JbnQzMihIYXNoSW5jckluZm8g
KmhpLCB1aW50MzJfdCB4KTsKPj4KPj4gdm9pZCBQbF9IYXNoX0luY3JfSW50NjQoSGFzaEluY3JJ
bmZvICpoaSwgdWludDY0X3QgeCk7Cj4+Cj4+IHZvaWQgUGxfSGFzaF9JbmNyX0RvdWJsZShIYXNo
SW5jckluZm8gKmhpLCBkb3VibGUgeCk7Cj4+Cj4+IHVpbnQzMl90IFBsX0hhc2hfSW5jcl9UZXJt
KEhhc2hJbmNySW5mbyAqaGkpOwo+PiAjIDQyICJlbmdpbmVfcGwuaCIgMgo+PiAjIDEgImhhc2gu
aCIgMQo+PiAjIDQ4ICJoYXNoLmgiCj4+IHR5cGVkZWYgc3RydWN0Cj4+IHsKPj4gICBjaGFyICpl
bmR0Owo+PiAgIGNoYXIgKmN1cl90Owo+PiAgIGNoYXIgKmN1cl9wOwo+PiB9Cj4+IEhhc2hTY2Fu
Owo+PiAjIDY3ICJoYXNoLmgiCj4+IGNoYXIgKlBsX0hhc2hfQWxsb2NfVGFibGUoaW50IHRibF9z
aXplLCBpbnQgZWxlbV9zaXplKTsKPj4KPj4gdm9pZCBQbF9IYXNoX0ZyZWVfVGFibGUoY2hhciAq
dGJsKTsKPj4KPj4gY2hhciAqUGxfSGFzaF9SZWFsbG9jX1RhYmxlKGNoYXIgKnRibCwgaW50IG5l
d190Ymxfc2l6ZSk7Cj4+Cj4+IHZvaWQgUGxfSGFzaF9EZWxldGVfQWxsKGNoYXIgKnRibCk7Cj4+
Cj4+IGNoYXIgKlBsX0hhc2hfSW5zZXJ0KGNoYXIgKnRibCwgY2hhciAqZWxlbSwgaW50IHJlcGxh
Y2UpOwo+Pgo+PiBjaGFyICpQbF9IYXNoX0ZpbmQoY2hhciAqdGJsLCBQbExvbmcga2V5KTsKPj4K
Pj4gY2hhciAqUGxfSGFzaF9EZWxldGUoY2hhciAqdGJsLCBQbExvbmcga2V5KTsKPj4KPj4gY2hh
ciAqUGxfSGFzaF9GaXJzdChjaGFyICp0YmwsIEhhc2hTY2FuICpzY2FuKTsKPj4KPj4gY2hhciAq
UGxfSGFzaF9OZXh0KEhhc2hTY2FuICpzY2FuKTsKPj4KPj4gaW50IFBsX0hhc2hfVGFibGVfU2l6
ZShjaGFyICp0YmwpOwo+Pgo+PiBpbnQgUGxfSGFzaF9OYl9FbGVtZW50cyhjaGFyICp0YmwpOwo+
PiAjIDQzICJlbmdpbmVfcGwuaCIgMgo+PiAjIDEgImJvb2wuaCIgMQo+PiAjIDY1ICJib29sLmgi
Cj4+IHR5cGVkZWYgaW50IEJvb2w7Cj4+ICMgNDQgImVuZ2luZV9wbC5oIiAyCj4+ICMgMSAid2Ft
X3JlZ3MuaCIgMQo+PiAjIDQ1ICJlbmdpbmVfcGwuaCIgMgo+PiAjIDEgIndhbV9hcmNoaS5oIiAx
Cj4+ICMgNDQgIndhbV9hcmNoaS5oIgo+PiB0eXBlZGVmIGludHB0cl90IFdhbVdvcmQ7Cj4+Cj4+
IHR5cGVkZWYgdm9pZCAoKkNvZGVQdHIpICgpOwo+Pgo+PiB0eXBlZGVmIENvZGVQdHIgV2FtQ29u
dDsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gdHlwZWRlZiBXYW1Xb3JkICpXYW1Xb3JkUDsKPj4KPj4K
Pj4KPj4KPj4KPj4KPj4gcmVnaXN0ZXIgV2FtV29yZFAgVFIgYXNtICgiZWJ4Iik7Cj4+ICMgOTYg
IndhbV9hcmNoaS5oIgo+PiBleHRlcm4gV2FtV29yZCBwbF9yZWdfYmFua1tdOwo+PiBleHRlcm4g
V2FtV29yZCBwbF9idWZmX3NpZ25hbF9yZWdbXTsKPj4KPj4gZXh0ZXJuIGNoYXIgKnBsX3JlZ190
YmxbXTsKPj4gIyAyNzAgIndhbV9hcmNoaS5oIgo+PiB0eXBlZGVmIGVudW0KPj4gewo+PiAgIExP
TkdfSU5ULAo+PiAgIFNIT1JUX1VOUywKPj4gICBBRERSRVNTCj4+IH1UeXBUYWc7Cj4+Cj4+IHR5
cGVkZWYgc3RydWN0Cj4+IHsKPj4gICBjaGFyICpuYW1lOwo+PiAgIFR5cFRhZyB0eXBlOwo+PiAg
IGludCB2YWx1ZTsKPj4gICBQbExvbmcgdGFnX21hc2s7Cj4+IH1JbmZUYWc7Cj4+ICMgMzAxICJ3
YW1fYXJjaGkuaCIKPj4gZXh0ZXJuIEluZlRhZyBwbF90YWdfdGJsW107Cj4+ICMgMzI4ICJ3YW1f
YXJjaGkuaCIKPj4gIyAxICJ3YW1fc3RhY2tzLmgiIDEKPj4gIyAyNyAid2FtX3N0YWNrcy5oIgo+
PiB0eXBlZGVmIHN0cnVjdAo+PiB7Cj4+ICAgY2hhciAqbmFtZTsKPj4gICBjaGFyICpkZXNjOwo+
PiAgIGNoYXIgKmVudl92YXJfbmFtZTsKPj4gICBQbExvbmcgKnBfZGVmX3NpemU7Cj4+ICAgaW50
IGRlZmF1bHRfc2l6ZTsKPj4gICBpbnQgc2l6ZTsKPj4gICBXYW1Xb3JkICpzdGFjazsKPj4gfUlu
ZlN0YWNrOwo+PiAjIDU4ICJ3YW1fc3RhY2tzLmgiCj4+IGV4dGVybiBQbExvbmcgcGxfZGVmX3Ry
YWlsX3NpemU7Cj4+IGV4dGVybiBQbExvbmcgcGxfZGVmX2NzdHJfc2l6ZTsKPj4gZXh0ZXJuIFBs
TG9uZyBwbF9kZWZfZ2xvYmFsX3NpemU7Cj4+IGV4dGVybiBQbExvbmcgcGxfZGVmX2xvY2FsX3Np
emU7Cj4+IGV4dGVybiBQbExvbmcgcGxfZml4ZWRfc2l6ZXM7Cj4+Cj4+Cj4+IGV4dGVybiBJbmZT
dGFjayBwbF9zdGtfdGJsW107Cj4+ICMgMzI5ICJ3YW1fYXJjaGkuaCIgMgo+PiAjIDQ2ICJlbmdp
bmVfcGwuaCIgMgo+PiAjIDEgImVuZ2luZS5oIiAxCj4+ICMgODcgImVuZ2luZS5oIgo+PiBleHRl
cm4gaW50IHBsX29zX2FyZ2M7Cj4+IGV4dGVybiBjaGFyICoqcGxfb3NfYXJndjsKPj4KPj4gZXh0
ZXJuIGNoYXIgKnBsX2hvbWU7Cj4+IGV4dGVybiBpbnQgcGxfZGV2ZWxfbW9kZTsKPj4KPj4gZXh0
ZXJuIGNoYXIgcGxfZ2xvYl9idWZmW107Cj4+Cj4+IGV4dGVybiBQbExvbmcgKnBsX2Jhc2VfZmw7
Cj4+IGV4dGVybiBkb3VibGUgKnBsX2Jhc2VfZmQ7Cj4+Cj4+IGV4dGVybiBpbnQgcGxfbGVfbW9k
ZTsKPj4gIyAxMDggImVuZ2luZS5oIgo+PiBpbnQgUGxfU3RhcnRfUHJvbG9nKGludCBhcmdjLCBj
aGFyICphcmd2W10pOwo+Pgo+PiB2b2lkIFBsX1N0b3BfUHJvbG9nKHZvaWQpOwo+Pgo+PiB2b2lk
IFBsX1Jlc2V0X1Byb2xvZyh2b2lkKTsKPj4KPj4gdm9pZCBQbF9SZXNldF9Qcm9sb2dfSW5fU2ln
bmFsKHZvaWQpOwo+Pgo+PiB2b2lkIFBsX1NldF9IZWFwX0FjdHVhbF9TdGFydChXYW1Xb3JkICpo
ZWFwX2FjdHVhbF9zdGFydCk7Cj4+Cj4+Cj4+Cj4+IHZvaWQgUGxfRXhlY3V0ZV9EaXJlY3RpdmUo
aW50IHBsX2ZpbGUsIGludCBwbF9saW5lLCBCb29sIGlzX3N5c3RlbSwKPj4gICAgICBDb2RlUHRy
IHByb2MpOwo+Pgo+PiBCb29sIFBsX1RyeV9FeGVjdXRlX1RvcF9MZXZlbCh2b2lkKTsKPj4KPj4g
Qm9vbCBQbF9DYWxsX1Byb2xvZyhDb2RlUHRyIGNvZGVwKTsKPj4KPj4gQm9vbCBQbF9DYWxsX1By
b2xvZ19OZXh0X1NvbChXYW1Xb3JkICpxdWVyeV9iKTsKPj4KPj4gdm9pZCBQbF9LZWVwX1Jlc3Rf
Rm9yX1Byb2xvZyhXYW1Xb3JkICpxdWVyeV9iKTsKPj4KPj4gdm9pZCBQbF9FeGl0X1dpdGhfRXhj
ZXB0aW9uKHZvaWQpOwo+Pgo+PiB2b2lkIFBsX0V4ZWN1dGVfQV9Db250aW51YXRpb24oQ29kZVB0
ciBjb2RlcCk7Cj4+ICMgNDcgImVuZ2luZV9wbC5oIiAyCj4+ICMgMSAiYXRvbS5oIiAxCj4+ICMg
OTcgImF0b20uaCIKPj4gdHlwZWRlZiBzdHJ1Y3QKPj4gewo+PiAgIHVuc2lnbmVkIGxlbmd0aDox
NjsKPj4gICB1bnNpZ25lZCBvcF9tYXNrOjQ7Cj4+ICAgdW5zaWduZWQgdHlwZToyOwo+PiAgIHVu
c2lnbmVkIG5lZWRzX3F1b3RlOjE7Cj4+ICAgdW5zaWduZWQgbmVlZHNfc2NhbjoxOwo+PiB9Cj4+
IEF0b21Qcm9wOwo+Pgo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIHN0cnVjdAo+PiB7Cj4+ICAgY2hhciAq
bmFtZTsKPj4gICB1bnNpZ25lZCBoYXNoOwo+PiAgIEF0b21Qcm9wIHByb3A7Cj4+ICAgdm9pZCAq
aW5mbzsKPj4gfQo+PiBBdG9tSW5mOwo+PiAjIDE1MyAiYXRvbS5oIgo+PiBleHRlcm4gQXRvbUlu
ZiAqcGxfYXRvbV90Ymw7Cj4+IGV4dGVybiBpbnQgcGxfbWF4X2F0b207Cj4+IGV4dGVybiBpbnQg
cGxfbmJfYXRvbTsKPj4KPj4gZXh0ZXJuIGludCBwbF9hdG9tX3ZvaWQ7Cj4+IGV4dGVybiBpbnQg
cGxfYXRvbV9jdXJseV9icmFja2V0czsKPj4KPj4gZXh0ZXJuIGludCBwbF9hdG9tX2ZhbHNlOwo+
PiBleHRlcm4gaW50IHBsX2F0b21fdHJ1ZTsKPj4KPj4gZXh0ZXJuIGludCBwbF9hdG9tX2VuZF9v
Zl9maWxlOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gY2hhciBwbF9jaGFyX2NvbnZbXTsKPj4g
ZXh0ZXJuIGludCBwbF9jaGFyX3R5cGVbXTsKPj4KPj4gZXh0ZXJuIGNoYXIgcGxfZXNjYXBlX3N5
bWJvbFtdOwo+PiBleHRlcm4gY2hhciBwbF9lc2NhcGVfY2hhcltdOwo+Pgo+Pgo+Pgo+PiBQbExv
bmcgcGxfZGVmX21heF9hdG9tOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiB2b2lkIFBsX0luaXRf
QXRvbSh2b2lkKTsKPj4KPj4gaW50IFBsX0NyZWF0ZV9BbGxvY2F0ZV9BdG9tKGNoYXIgKm5hbWUp
Owo+Pgo+PiBpbnQgUGxfQ3JlYXRlX0F0b20oY2hhciAqbmFtZSk7Cj4+Cj4+IFdhbVdvcmQgX19h
dHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0NyZWF0ZV9BdG9tX1RhZ2dlZChjaGFyICpuYW1l
KTsKPj4KPj4gaW50IFBsX0ZpbmRfQXRvbShjaGFyICpuYW1lKTsKPj4KPj4gaW50IFBsX0dlbl9O
ZXdfQXRvbShjaGFyICpwcmVmaXgpOwo+Pgo+PiBpbnQgUGxfRmluZF9OZXh0X0F0b20oaW50IGxh
c3RfYXRvbSk7Cj4+ICMgNDggImVuZ2luZV9wbC5oIiAyCj4+ICMgMSAicHJlZC5oIiAxCj4+ICMg
NjIgInByZWQuaCIKPj4gdHlwZWRlZiBzdHJ1Y3QKPj4gewo+PiAgIFBsTG9uZyBmX247Cj4+ICAg
aW50IHBsX2ZpbGU7Cj4+ICAgaW50IHBsX2xpbmU7Cj4+ICAgaW50IHByb3A7Cj4+ICAgUGxMb25n
ICpjb2RlcDsKPj4gICBQbExvbmcgKmR5bjsKPj4gfQo+PiBQcmVkSW5mOwo+PiAjIDg2ICJwcmVk
LmgiCj4+IGV4dGVybiBjaGFyICpwbF9wcmVkX3RibDsKPj4gIyA5NyAicHJlZC5oIgo+PiB2b2lk
IFBsX0luaXRfUHJlZCh2b2lkKTsKPj4KPj4gUHJlZEluZiAqIF9fYXR0cmlidXRlX18oKHJlZ3Bh
cm0oMykpKSBQbF9DcmVhdGVfUHJlZChpbnQgZnVuYywgaW50IGFyaXR5LCBpbnQgcGxfZmlsZSwg
aW50IHBsX2xpbmUsCj4+ICAgICAgICBpbnQgcHJvcCwgUGxMb25nICpjb2RlcCk7Cj4+Cj4+IFBy
ZWRJbmYgKiBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfTG9va3VwX1ByZWQoaW50IGZ1
bmMsIGludCBhcml0eSk7Cj4+Cj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBs
X0RlbGV0ZV9QcmVkKGludCBmdW5jLCBpbnQgYXJpdHkpOwo+PiAjIDQ5ICJlbmdpbmVfcGwuaCIg
Mgo+PiAjIDEgIm1pc2MuaCIgMQo+PiAjIDU3ICJtaXNjLmgiCj4+IGNoYXIgKlBsX01hbGxvY19D
aGVjayh1bnNpZ25lZCBzaXplLCBjaGFyICpzcmNfZmlsZSwgaW50IHNyY19saW5lKTsKPj4KPj4g
Y2hhciAqUGxfQ2FsbG9jX0NoZWNrKHVuc2lnbmVkIG5iLCB1bnNpZ25lZCBzaXplLCBjaGFyICpz
cmNfZmlsZSwKPj4gICAgICBpbnQgc3JjX2xpbmUpOwo+Pgo+PiBjaGFyICpQbF9SZWFsbG9jX0No
ZWNrKGNoYXIgKnB0ciwgdW5zaWduZWQgc2l6ZSwgY2hhciAqc3JjX2ZpbGUsIGludCBzcmNfbGlu
ZSk7Cj4+Cj4+IGNoYXIgKlBsX1N0cmR1cF9DaGVjayhjaGFyICpzdHIsIGNoYXIgKnNyY19maWxl
LCBpbnQgc3JjX2xpbmUpOwo+PiAjIDc2ICJtaXNjLmgiCj4+IHZvaWQgUGxfRXh0ZW5kX1RhYmxl
X0lmX05lZWRlZChjaGFyICoqaGFzaF90YmwpOwo+Pgo+PiB2b2lkIFBsX0V4dGVuZF9BcnJheShj
aGFyICoqcHRibCwgaW50ICpuYl9lbGVtLCBpbnQgZWxlbV9zaXplLCBCb29sIGJ6ZXJvKTsKPj4K
Pj4gdm9pZCBQbF9FeGl0X1dpdGhfVmFsdWUoaW50IHJldF92YWwpOwo+Pgo+PiB2b2lkIFBsX0Zh
dGFsX0Vycm9yKGNoYXIgKmZvcm1hdCwgLi4uKTsKPj4gIyAxMTQgIm1pc2MuaCIKPj4gdm9pZCAq
UGxfRHVtbXlfUHRyKHZvaWQgKnApOwo+PiAjIDUwICJlbmdpbmVfcGwuaCIgMgo+PiAjIDEgIm9w
ZXIuaCIgMQo+PiAjIDcyICJvcGVyLmgiCj4+IHR5cGVkZWYgc3RydWN0Cj4+IHsKPj4gICBQbExv
bmcgYV90Owo+PiAgIGludCBwcmVjOwo+PiAgIGludCBsZWZ0Owo+PiAgIGludCByaWdodDsKPj4g
fQo+PiBPcGVySW5mOwo+PiAjIDk0ICJvcGVyLmgiCj4+IGV4dGVybiBjaGFyICpwbF9vcGVyX3Ri
bDsKPj4gIyAxMDMgIm9wZXIuaCIKPj4gdm9pZCBQbF9Jbml0X09wZXIodm9pZCk7Cj4+Cj4+IE9w
ZXJJbmYgKlBsX0NyZWF0ZV9PcGVyKGludCBhdG9tX29wLCBpbnQgdHlwZSwgaW50IHByZWMsIGlu
dCBsZWZ0LCBpbnQgcmlnaHQpOwo+Pgo+PiBPcGVySW5mICpQbF9Mb29rdXBfT3BlcihpbnQgYXRv
bV9vcCwgaW50IHR5cGUpOwo+Pgo+PiBPcGVySW5mICpQbF9Mb29rdXBfT3Blcl9BbnlfVHlwZShp
bnQgYXRvbV9vcCk7Cj4+Cj4+IE9wZXJJbmYgKlBsX0RlbGV0ZV9PcGVyKGludCBhdG9tX29wLCBp
bnQgdHlwZSk7Cj4+ICMgNTEgImVuZ2luZV9wbC5oIiAyCj4+ICMgMSAibWFjaGluZTEuaCIgMQo+
PiAjIDcwICJtYWNoaW5lMS5oIgo+PiBleHRlcm4gaW50IHBsX21fb3NfdHlwZTsKPj4gZXh0ZXJu
IGNoYXIgcGxfbV9hcmNoaXRlY3R1cmVbXTsKPj4gZXh0ZXJuIGNoYXIgcGxfbV9vc192ZXJzaW9u
W107Cj4+ICMgODMgIm1hY2hpbmUxLmgiCj4+IHZvaWQgUGxfSW5pdF9NYWNoaW5lMSh2b2lkKTsK
Pj4KPj4gY2hhciAqKlBsX01fQ3JlYXRlX1NoZWxsX0NvbW1hbmQoY2hhciAqY21kKTsKPj4KPj4g
Y2hhciAqKlBsX01fQ21kX0xpbmVfVG9fQXJndihjaGFyICpjbWQsIGludCAqYXJnYyk7Cj4+Cj4+
IGludCBQbF9NX1NoZWxsKGNoYXIgKmNtZCk7Cj4+Cj4+IGludCBQbF9NX1NwYXduKGNoYXIgKmFy
Z1tdKTsKPj4KPj4gaW50IFBsX01fU3Bhd25fUmVkaXJlY3QoY2hhciAqYXJnW10sIGludCBkZXRh
Y2gsCj4+ICAgICAgICBGSUxFICoqZl9pbiwgRklMRSAqKmZfb3V0LCBGSUxFICoqZl9lcnIpOwo+
Pgo+PiBpbnQgUGxfTV9HZXRfU3RhdHVzKGludCBwaWQpOwo+Pgo+Pgo+Pgo+PiBjaGFyICpQbF9N
X01rdGVtcChjaGFyICp0bXBfdGVtcGxhdGUpOwo+Pgo+PiBjaGFyICpQbF9NX1RlbXBuYW0oY2hh
ciAqZGlyLCBjaGFyICpwZngpOwo+PiAjIDUyICJlbmdpbmVfcGwuaCIgMgo+PiAjIDEgIm1hY2hp
bmUuaCIgMQo+PiAjIDYxICJtYWNoaW5lLmgiCj4+IHZvaWQgUGxfSW5pdF9NYWNoaW5lKHZvaWQp
Owo+Pgo+PiBjaGFyICpQbF9NX1N5c19FcnJfU3RyaW5nKGludCByZXRfdmFsKTsKPj4KPj4gUGxM
b25nIFBsX01fVXNlcl9UaW1lKHZvaWQpOwo+Pgo+PiBQbExvbmcgUGxfTV9TeXN0ZW1fVGltZSh2
b2lkKTsKPj4KPj4gUGxMb25nIFBsX01fUmVhbF9UaW1lKHZvaWQpOwo+Pgo+PiB2b2lkIFBsX01f
UmFuZG9taXplKHZvaWQpOwo+Pgo+PiB2b2lkIFBsX01fU2V0X1NlZWQoaW50IG4pOwo+Pgo+PiBp
bnQgUGxfTV9HZXRfU2VlZCh2b2lkKTsKPj4KPj4gaW50IFBsX01fUmFuZG9tX0ludGVnZXIoaW50
IG4pOwo+Pgo+PiBkb3VibGUgUGxfTV9SYW5kb21fRmxvYXQoZG91YmxlIG4pOwo+Pgo+Pgo+Pgo+
PiBjaGFyICpQbF9NX0hvc3RfTmFtZV9Gcm9tX05hbWUoY2hhciAqaG9zdF9uYW1lKTsKPj4KPj4g
Y2hhciAqUGxfTV9Ib3N0X05hbWVfRnJvbV9BZHIoY2hhciAqaG9zdF9hZGRyZXNzKTsKPj4KPj4g
Y2hhciAqUGxfTV9HZXRfV29ya2luZ19EaXIodm9pZCk7Cj4+Cj4+IEJvb2wgUGxfTV9TZXRfV29y
a2luZ19EaXIoY2hhciAqcGF0aCk7Cj4+Cj4+IGNoYXIgKlBsX01fQWJzb2x1dGVfUGF0aF9OYW1l
KGNoYXIgKnNyYyk7Cj4+Cj4+IEJvb2wgUGxfTV9Jc19BYnNvbHV0ZV9GaWxlX05hbWUoY2hhciAq
cGF0aCk7Cj4+Cj4+IGNoYXIgKlBsX01fRGVjb21wb3NlX0ZpbGVfTmFtZShjaGFyICpwYXRoLCBC
b29sIGRlbF90cmFpbF9zbGFzaGVzLAo+PiAgICAgICAgICAgY2hhciAqKmJhc2UsIGNoYXIgKipz
dWZmaXgpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiB2b2lkIE1fQ2hlY2tfTWFnaWNfV29yZHMo
dm9pZCk7Cj4+ICMgNTMgImVuZ2luZV9wbC5oIiAyCj4+ICMgMSAic3RhY2tzX3NpZ3NlZ3YuaCIg
MQo+PiAjIDUwICJzdGFja3Nfc2lnc2Vndi5oIgo+PiB0eXBlZGVmIGludCAoKlNlZ3ZIZGxyKSh2
b2lkICpiYWRfYWRkcik7Cj4+ICMgNjAgInN0YWNrc19zaWdzZWd2LmgiCj4+IHZvaWQgUGxfQWxs
b2NhdGVfU3RhY2tzKHZvaWQpOwo+Pgo+PiB2b2lkIFBsX1B1c2hfU0lHU0VHVl9IYW5kbGVyKFNl
Z3ZIZGxyIGhhbmRsZXIpOwo+Pgo+PiB2b2lkIFBsX1BvcF9TSUdTRUdWX0hhbmRsZXIodm9pZCk7
Cj4+ICMgNTQgImVuZ2luZV9wbC5oIiAyCj4+ICMgMSAib2JqX2NoYWluLmgiIDEKPj4gIyA1OCAi
b2JqX2NoYWluLmgiCj4+IHZvaWQgUGxfRmluZF9MaW5rZWRfT2JqZWN0cyh2b2lkKTsKPj4KPj4g
dm9pZCBQbF9OZXdfT2JqZWN0KHZvaWQgKCpmY3Rfb2JqX2luaXQpKCksIHZvaWQgKCpmY3RfZXhl
Y19zeXN0ZW0pICgpLCB2b2lkICgqZmN0X2V4ZWNfdXNlcikgKCkpOwo+PiAjIDU1ICJlbmdpbmVf
cGwuaCIgMgo+PiAjIDEgIndhbV9pbnN0LmgiIDEKPj4gIyAyNDkgIndhbV9pbnN0LmgiCj4+IHR5
cGVkZWYgc3RydWN0Cj4+IHsKPj4gICBQbExvbmcga2V5Owo+PiAgIENvZGVQdHIgY29kZXA7Cj4+
IH0KPj4gU3d0SW5mOwo+Pgo+PiB0eXBlZGVmIFN3dEluZiAqU3d0VGJsOwo+PiAjIDI2OSAid2Ft
X2luc3QuaCIKPj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQ3JlYXRl
X0Z1bmN0b3JfQXJpdHlfVGFnZ2VkKGNoYXIgKmZ1bmNfc3RyLCBpbnQgYXJpdHkpOwo+Pgo+PiBT
d3RUYmwgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0NyZWF0ZV9Td3RfVGFibGUoaW50
IHNpemUpOwo+Pgo+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVf
U3d0X0F0bV9FbGVtZW50KFN3dFRibCB0LCBpbnQgc2l6ZSwgaW50IGF0b20sIENvZGVQdHIgY29k
ZXApOwo+Pgo+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVfU3d0
X1N0Y19FbGVtZW50KFN3dFRibCB0LCBpbnQgc2l6ZSwgaW50IGZ1bmMsIGludCBhcml0eSwKPj4g
ICAgICAgIENvZGVQdHIgY29kZXApOwo+Pgo+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0o
MykpKSBQbF9HZXRfQXRvbV9UYWdnZWQoV2FtV29yZCB3LCBXYW1Xb3JkIHN0YXJ0X3dvcmQpOwo+
Pgo+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9HZXRfQXRvbShpbnQgYXRv
bSwgV2FtV29yZCBzdGFydF93b3JkKTsKPj4KPj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJt
KDMpKSkgUGxfR2V0X0ludGVnZXJfVGFnZ2VkKFdhbVdvcmQgdywgV2FtV29yZCBzdGFydF93b3Jk
KTsKPj4KPj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfR2V0X0ludGVnZXIo
UGxMb25nIG4sIFdhbVdvcmQgc3RhcnRfd29yZCk7Cj4+Cj4+IEJvb2wgX19hdHRyaWJ1dGVfXygo
cmVncGFybSgzKSkpIFBsX0dldF9GbG9hdChkb3VibGUgbiwgV2FtV29yZCBzdGFydF93b3JkKTsK
Pj4KPj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfR2V0X05pbChXYW1Xb3Jk
IHN0YXJ0X3dvcmQpOwo+Pgo+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9H
ZXRfTGlzdChXYW1Xb3JkIHN0YXJ0X3dvcmQpOwo+Pgo+PiBCb29sIF9fYXR0cmlidXRlX18oKHJl
Z3Bhcm0oMykpKSBQbF9HZXRfU3RydWN0dXJlX1RhZ2dlZChXYW1Xb3JkIHcsIFdhbVdvcmQgc3Rh
cnRfd29yZCk7Cj4+Cj4+IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0dldF9T
dHJ1Y3R1cmUoaW50IGZ1bmMsIGludCBhcml0eSwgV2FtV29yZCBzdGFydF93b3JkKTsKPj4KPj4g
V2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X1hfVmFyaWFibGUodm9p
ZCk7Cj4+Cj4+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9ZX1Zh
cmlhYmxlKFdhbVdvcmQgKnlfYWRyKTsKPj4KPj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdw
YXJtKDMpKSkgUGxfUHV0X1Vuc2FmZV9WYWx1ZShXYW1Xb3JkIHN0YXJ0X3dvcmQpOwo+Pgo+PiBX
YW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9QdXRfQXRvbV9UYWdnZWQoV2Ft
V29yZCB3KTsKPj4KPj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0
X0F0b20oaW50IGF0b20pOwo+Pgo+PiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykp
KSBQbF9QdXRfSW50ZWdlcl9UYWdnZWQoV2FtV29yZCB3KTsKPj4KPj4gV2FtV29yZCBfX2F0dHJp
YnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X0ludGVnZXIoUGxMb25nIG4pOwo+Pgo+PiBXYW1X
b3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9QdXRfRmxvYXQoZG91YmxlIG4pOwo+
Pgo+PiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9QdXRfTmlsKHZvaWQp
Owo+Pgo+PiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9QdXRfTGlzdCh2
b2lkKTsKPj4KPj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X1N0
cnVjdHVyZV9UYWdnZWQoV2FtV29yZCB3KTsKPj4KPj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChy
ZWdwYXJtKDMpKSkgUGxfUHV0X1N0cnVjdHVyZShpbnQgZnVuYywgaW50IGFyaXR5KTsKPj4KPj4g
V2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfVmFyaWFibGUodm9p
ZCk7Cj4+Cj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5X1ZvaWQo
aW50IG4pOwo+Pgo+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VbmlmeV9W
YWx1ZShXYW1Xb3JkIHN0YXJ0X3dvcmQpOwo+Pgo+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bh
cm0oMykpKSBQbF9VbmlmeV9Mb2NhbF9WYWx1ZShXYW1Xb3JkIHN0YXJ0X3dvcmQpOwo+Pgo+PiBC
b29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VbmlmeV9BdG9tX1RhZ2dlZChXYW1X
b3JkIHcpOwo+Pgo+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VbmlmeV9B
dG9tKGludCBhdG9tKTsKPj4KPj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxf
VW5pZnlfSW50ZWdlcl9UYWdnZWQoV2FtV29yZCB3KTsKPj4KPj4gQm9vbCBfX2F0dHJpYnV0ZV9f
KChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfSW50ZWdlcihQbExvbmcgbik7Cj4+Cj4+IEJvb2wgX19h
dHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5X05pbCh2b2lkKTsKPj4KPj4gQm9vbCBf
X2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfTGlzdCh2b2lkKTsKPj4KPj4gQm9v
bCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfU3RydWN0dXJlX1RhZ2dlZChX
YW1Xb3JkIHcpOwo+Pgo+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9Vbmlm
eV9TdHJ1Y3R1cmUoaW50IGZ1bmMsIGludCBhcml0eSk7Cj4+Cj4+IFdhbVdvcmQgX19hdHRyaWJ1
dGVfXygocmVncGFybSgzKSkpIFBsX0dsb2JhbGl6ZV9JZl9Jbl9Mb2NhbChXYW1Xb3JkIHN0YXJ0
X3dvcmQpOwo+Pgo+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9BbGxvY2F0
ZShpbnQgbik7Cj4+Cj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0RlYWxs
b2NhdGUodm9pZCk7Cj4+Cj4+IENvZGVQdHIgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBs
X1N3aXRjaF9Pbl9UZXJtKENvZGVQdHIgY192YXIsIENvZGVQdHIgY19hdG0sIENvZGVQdHIgY19p
bnQsCj4+ICAgICAgICAgICAgIENvZGVQdHIgY19sc3QsIENvZGVQdHIgY19zdGMpOwo+PiBDb2Rl
UHRyIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9Td2l0Y2hfT25fVGVybV9WYXJfQXRt
KENvZGVQdHIgY192YXIsIENvZGVQdHIgY19hdG0pOwo+PiBDb2RlUHRyIF9fYXR0cmlidXRlX18o
KHJlZ3Bhcm0oMykpKSBQbF9Td2l0Y2hfT25fVGVybV9WYXJfU3RjKENvZGVQdHIgY192YXIsIENv
ZGVQdHIgY19zdGMpOwo+PiBDb2RlUHRyIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9T
d2l0Y2hfT25fVGVybV9WYXJfQXRtX0xzdChDb2RlUHRyIGNfdmFyLCBDb2RlUHRyIGNfYXRtLAo+
PiAgICAgICAgICAgQ29kZVB0ciBjX2xzdCk7Cj4+IENvZGVQdHIgX19hdHRyaWJ1dGVfXygocmVn
cGFybSgzKSkpIFBsX1N3aXRjaF9Pbl9UZXJtX1Zhcl9BdG1fU3RjKENvZGVQdHIgY192YXIsIENv
ZGVQdHIgY19hdG0sCj4+ICAgICAgICAgICBDb2RlUHRyIGNfc3RjKTsKPj4KPj4gQ29kZVB0ciBf
X2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfU3dpdGNoX09uX0F0b20oU3d0VGJsIHQsIGlu
dCBzaXplKTsKPj4KPj4gUGxMb25nIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9Td2l0
Y2hfT25fSW50ZWdlcih2b2lkKTsKPj4KPj4gQ29kZVB0ciBfX2F0dHJpYnV0ZV9fKChyZWdwYXJt
KDMpKSkgUGxfU3dpdGNoX09uX1N0cnVjdHVyZShTd3RUYmwgdCwgaW50IHNpemUpOwo+Pgo+PiBX
YW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9HZXRfQ3VycmVudF9DaG9pY2Uo
dm9pZCk7Cj4+Cj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0N1dChXYW1X
b3JkIGJfd29yZCk7Cj4+Cj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1Nv
ZnRfQ3V0KFdhbVdvcmQgYl93b3JkKTsKPj4KPj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJt
KDMpKSkgUGxfR2xvYmFsX1B1c2hfRmxvYXQoZG91YmxlIG4pOwo+Pgo+PiBkb3VibGUgX19hdHRy
aWJ1dGVfXygocmVncGFybSgzKSkpIFBsX09idGFpbl9GbG9hdChXYW1Xb3JkICphZHIpOwo+Pgo+
Pgo+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVfQ2hvaWNlX1Bv
aW50KENvZGVQdHIgY29kZXBfYWx0LCBpbnQgYXJpdHkpOwo+PiB2b2lkIF9fYXR0cmlidXRlX18o
KHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVfQ2hvaWNlX1BvaW50MChDb2RlUHRyIGNvZGVwX2FsdCk7
Cj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0NyZWF0ZV9DaG9pY2VfUG9p
bnQxKENvZGVQdHIgY29kZXBfYWx0KTsKPj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMp
KSkgUGxfQ3JlYXRlX0Nob2ljZV9Qb2ludDIoQ29kZVB0ciBjb2RlcF9hbHQpOwo+PiB2b2lkIF9f
YXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVfQ2hvaWNlX1BvaW50MyhDb2RlUHRy
IGNvZGVwX2FsdCk7Cj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0NyZWF0
ZV9DaG9pY2VfUG9pbnQ0KENvZGVQdHIgY29kZXBfYWx0KTsKPj4KPj4KPj4gdm9pZCBfX2F0dHJp
YnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVXBkYXRlX0Nob2ljZV9Qb2ludChDb2RlUHRyIGNvZGVw
X2FsdCwgaW50IGFyaXR5KTsKPj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxf
VXBkYXRlX0Nob2ljZV9Qb2ludDAoQ29kZVB0ciBjb2RlcF9hbHQpOwo+PiB2b2lkIF9fYXR0cmli
dXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VcGRhdGVfQ2hvaWNlX1BvaW50MShDb2RlUHRyIGNvZGVw
X2FsdCk7Cj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VwZGF0ZV9DaG9p
Y2VfUG9pbnQyKENvZGVQdHIgY29kZXBfYWx0KTsKPj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdw
YXJtKDMpKSkgUGxfVXBkYXRlX0Nob2ljZV9Qb2ludDMoQ29kZVB0ciBjb2RlcF9hbHQpOwo+PiB2
b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VcGRhdGVfQ2hvaWNlX1BvaW50NChD
b2RlUHRyIGNvZGVwX2FsdCk7Cj4+Cj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkp
IFBsX0RlbGV0ZV9DaG9pY2VfUG9pbnQoaW50IGFyaXR5KTsKPj4gdm9pZCBfX2F0dHJpYnV0ZV9f
KChyZWdwYXJtKDMpKSkgUGxfRGVsZXRlX0Nob2ljZV9Qb2ludDAodm9pZCk7Cj4+IHZvaWQgX19h
dHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0RlbGV0ZV9DaG9pY2VfUG9pbnQxKHZvaWQpOwo+
PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hvaWNlX1BvaW50
Mih2b2lkKTsKPj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfRGVsZXRlX0No
b2ljZV9Qb2ludDModm9pZCk7Cj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBs
X0RlbGV0ZV9DaG9pY2VfUG9pbnQ0KHZvaWQpOwo+Pgo+Pgo+PiB2b2lkIFBsX0RlZmVhc2libGVf
T3BlbigpOwo+PiB2b2lkIFBsX0RlZmVhc2libGVfVW5kbygpOwo+PiB2b2lkIFBsX0RlZmVhc2li
bGVfQ2xvc2UoQm9vbCB1bmRvX2JlZm9yZSk7Cj4+Cj4+Cj4+Cj4+IHZvaWQgX19hdHRyaWJ1dGVf
XygocmVncGFybSgzKSkpIFBsX1VudHJhaWwoV2FtV29yZCAqbG93X2Fkcik7Cj4+Cj4+IEJvb2wg
X19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5KFdhbVdvcmQgc3RhcnRfdV93b3Jk
LCBXYW1Xb3JkIHN0YXJ0X3Zfd29yZCk7Cj4+Cj4+IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFy
bSgzKSkpIFBsX1VuaWZ5X09jY3Vyc19DaGVjayhXYW1Xb3JkIHN0YXJ0X3Vfd29yZCwgV2FtV29y
ZCBzdGFydF92X3dvcmQpOwo+PiAjIDU2ICJlbmdpbmVfcGwuaCIgMgo+PiAjIDEgImlmX25vX2Zk
LmgiIDEKPj4gIyA2NSAiaWZfbm9fZmQuaCIKPj4gZXh0ZXJuIHZvaWQgKCpwbF9mZF9pbml0X3Nv
bHZlcikgKCk7Cj4+IGV4dGVybiB2b2lkICgqcGxfZmRfcmVzZXRfc29sdmVyKSAoKTsKPj4gZXh0
ZXJuIEJvb2wgKCpwbF9mZF91bmlmeV93aXRoX2ludGVnZXIpICgpOwo+PiBleHRlcm4gQm9vbCAo
KnBsX2ZkX3VuaWZ5X3dpdGhfZmRfdmFyKSAoKTsKPj4gZXh0ZXJuIGludCAoKnBsX2ZkX3Zhcmlh
YmxlX3NpemUpICgpOwo+PiBleHRlcm4gaW50ICgqcGxfZmRfY29weV92YXJpYWJsZSkgKCk7Cj4+
IGV4dGVybiBjaGFyICooKnBsX2ZkX3ZhcmlhYmxlX3RvX3N0cmluZykgKCk7Cj4+ICMgODIgImlm
X25vX2ZkLmgiCj4+IHZvaWQgUGxfRmRfSW5pdF9Tb2x2ZXIodm9pZCk7Cj4+Cj4+IHZvaWQgUGxf
RmRfUmVzZXRfU29sdmVyKHZvaWQpOwo+PiAjIDU2ICJlbmdpbmVfcGwuaCIgMgo+PiAjIDcyICJt
YWNoaW5lLmMiIDIKPj4KPj4KPj4KPj4gIyAxICIvdXNyL2luY2x1ZGUvbWFsbG9jLmgiIDEgMyA0
Cj4+ICMgMjMgIi91c3IvaW5jbHVkZS9tYWxsb2MuaCIgMyA0Cj4+ICMgMSAiL3Vzci9saWIvZ2Nj
L2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4+ICMgMTQ5
ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIg
MyA0Cj4+Cj4+ICMgMTQ5ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5j
bHVkZS9zdGRkZWYuaCIgMyA0Cj4+IHR5cGVkZWYgaW50IHB0cmRpZmZfdDsKPj4gIyA0MjYgIi91
c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAzIDQK
Pj4gdHlwZWRlZiBzdHJ1Y3Qgewo+PiAgIGxvbmcgbG9uZyBfX21heF9hbGlnbl9sbCBfX2F0dHJp
YnV0ZV9fKChfX2FsaWduZWRfXyhfX2FsaWdub2ZfXyhsb25nIGxvbmcpKSkpOwo+PiAgIGxvbmcg
ZG91YmxlIF9fbWF4X2FsaWduX2xkIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKF9fYWxpZ25v
Zl9fKGxvbmcgZG91YmxlKSkpKTsKPj4gfSBtYXhfYWxpZ25fdDsKPj4gIyAyNCAiL3Vzci9pbmNs
dWRlL21hbGxvYy5oIiAyIDMgNAo+PiAjIDM1ICIvdXNyL2luY2x1ZGUvbWFsbG9jLmgiIDMgNAo+
Pgo+Pgo+Pgo+PiBleHRlcm4gdm9pZCAqbWFsbG9jIChzaXplX3QgX19zaXplKSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19f
KSkgOwo+Pgo+Pgo+PiBleHRlcm4gdm9pZCAqY2FsbG9jIChzaXplX3QgX19ubWVtYiwgc2l6ZV90
IF9fc2l6ZSkKPj4gX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpIDsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHZv
aWQgKnJlYWxsb2MgKHZvaWQgKl9fcHRyLCBzaXplX3QgX19zaXplKQo+PiBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIGZyZWUgKHZvaWQgKl9fcHRyKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4gdm9p
ZCBjZnJlZSAodm9pZCAqX19wdHIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkICptZW1hbGlnbiAoc2l6ZV90IF9fYWxpZ25tZW50
LCBzaXplX3QgX19zaXplKQo+PiBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgOwo+Pgo+Pgo+PiBleHRlcm4gdm9pZCAq
dmFsbG9jIChzaXplX3QgX19zaXplKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgOwo+Pgo+Pgo+Pgo+PiBleHRlcm4g
dm9pZCAqcHZhbGxvYyAoc2l6ZV90IF9fc2l6ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpIDsKPj4KPj4KPj4KPj4g
ZXh0ZXJuIHZvaWQgKigqX19tb3JlY29yZSkgKHB0cmRpZmZfdCBfX3NpemUpOwo+Pgo+Pgo+PiBl
eHRlcm4gdm9pZCAqX19kZWZhdWx0X21vcmVjb3JlIChwdHJkaWZmX3QgX19zaXplKQo+PiBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21h
bGxvY19fKSk7Cj4+Cj4+Cj4+Cj4+IHN0cnVjdCBtYWxsaW5mbwo+PiB7Cj4+ICAgaW50IGFyZW5h
Owo+PiAgIGludCBvcmRibGtzOwo+PiAgIGludCBzbWJsa3M7Cj4+ICAgaW50IGhibGtzOwo+PiAg
IGludCBoYmxraGQ7Cj4+ICAgaW50IHVzbWJsa3M7Cj4+ICAgaW50IGZzbWJsa3M7Cj4+ICAgaW50
IHVvcmRibGtzOwo+PiAgIGludCBmb3JkYmxrczsKPj4gICBpbnQga2VlcGNvc3Q7Cj4+IH07Cj4+
Cj4+Cj4+IGV4dGVybiBzdHJ1Y3QgbWFsbGluZm8gbWFsbGluZm8gKHZvaWQpIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+ICMgMTIxICIvdXNyL2luY2x1ZGUvbWFs
bG9jLmgiIDMgNAo+PiBleHRlcm4gaW50IG1hbGxvcHQgKGludCBfX3BhcmFtLCBpbnQgX192YWwp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+IGV4
dGVybiBpbnQgbWFsbG9jX3RyaW0gKHNpemVfdCBfX3BhZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4gZXh0ZXJuIHNpemVfdCBtYWxsb2NfdXNh
YmxlX3NpemUgKHZvaWQgKl9fcHRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4gdm9pZCBtYWxsb2Nfc3RhdHMgKHZvaWQpIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgbWFs
bG9jX2luZm8gKGludCBfX29wdGlvbnMsIEZJTEUgKl9fZnApIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkICptYWxsb2NfZ2V0X3N0
YXRlICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+
Pgo+Pgo+PiBleHRlcm4gaW50IG1hbGxvY19zZXRfc3RhdGUgKHZvaWQgKl9fcHRyKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4g
dm9pZCAoKnZvbGF0aWxlIF9fbWFsbG9jX2luaXRpYWxpemVfaG9vaykgKHZvaWQpCj4+IF9fYXR0
cmlidXRlX18gKChfX2RlcHJlY2F0ZWRfXykpOwo+Pgo+PiBleHRlcm4gdm9pZCAoKnZvbGF0aWxl
IF9fZnJlZV9ob29rKSAodm9pZCAqX19wdHIsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKikKPj4gX19hdHRyaWJ1dGVfXyAo
KF9fZGVwcmVjYXRlZF9fKSk7Cj4+IGV4dGVybiB2b2lkICooKnZvbGF0aWxlIF9fbWFsbG9jX2hv
b2spKHNpemVfdCBfX3NpemUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqKQo+PiBfX2F0dHJpYnV0ZV9fICgoX19kZXBy
ZWNhdGVkX18pKTsKPj4gZXh0ZXJuIHZvaWQgKigqdm9sYXRpbGUgX19yZWFsbG9jX2hvb2spKHZv
aWQgKl9fcHRyLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgX19zaXplLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICopCj4+IF9fYXR0cmlidXRlX18g
KChfX2RlcHJlY2F0ZWRfXykpOwo+PiBleHRlcm4gdm9pZCAqKCp2b2xhdGlsZSBfX21lbWFsaWdu
X2hvb2spKHNpemVfdCBfX2FsaWdubWVudCwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX3NpemUsCj4+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICop
Cj4+IF9fYXR0cmlidXRlX18gKChfX2RlcHJlY2F0ZWRfXykpOwo+PiBleHRlcm4gdm9pZCAoKnZv
bGF0aWxlIF9fYWZ0ZXJfbW9yZWNvcmVfaG9vaykgKHZvaWQpOwo+Pgo+Pgo+PiBleHRlcm4gdm9p
ZCBfX21hbGxvY19jaGVja19pbml0ICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2RlcHJlY2F0ZWRfXykpOwo+Pgo+Pgo+Pgo+
PiAjIDc2ICJtYWNoaW5lLmMiIDIKPj4KPj4KPj4KPj4KPj4gIyAxICIvdXNyL2luY2x1ZGUvbmV0
ZGIuaCIgMSAzIDQKPj4gIyAyNyAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+PiAjIDEgIi91
c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDEgMyA0Cj4+ICMgMjMgIi91c3IvaW5jbHVkZS9uZXRp
bmV0L2luLmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9zeXMvc29ja2V0LmgiIDEgMyA0Cj4+
ICMgMjQgIi91c3IvaW5jbHVkZS9zeXMvc29ja2V0LmgiIDMgNAo+Pgo+Pgo+PiAjIDEgIi91c3Iv
aW5jbHVkZS9zeXMvdWlvLmgiIDEgMyA0Cj4+ICMgMjUgIi91c3IvaW5jbHVkZS9zeXMvdWlvLmgi
IDMgNAo+Pgo+Pgo+Pgo+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3Vpby5oIiAxIDMgNAo+PiAj
IDQzICIvdXNyL2luY2x1ZGUvYml0cy91aW8uaCIgMyA0Cj4+IHN0cnVjdCBpb3ZlYwo+PiAgIHsK
Pj4gICAgIHZvaWQgKmlvdl9iYXNlOwo+PiAgICAgc2l6ZV90IGlvdl9sZW47Cj4+ICAgfTsKPj4g
IyAyOSAiL3Vzci9pbmNsdWRlL3N5cy91aW8uaCIgMiAzIDQKPj4gIyAzOSAiL3Vzci9pbmNsdWRl
L3N5cy91aW8uaCIgMyA0Cj4+IGV4dGVybiBzc2l6ZV90IHJlYWR2IChpbnQgX19mZCwgY29uc3Qg
c3RydWN0IGlvdmVjICpfX2lvdmVjLCBpbnQgX19jb3VudCkKPj4gICA7Cj4+ICMgNTAgIi91c3Iv
aW5jbHVkZS9zeXMvdWlvLmgiIDMgNAo+PiBleHRlcm4gc3NpemVfdCB3cml0ZXYgKGludCBfX2Zk
LCBjb25zdCBzdHJ1Y3QgaW92ZWMgKl9faW92ZWMsIGludCBfX2NvdW50KQo+PiAgIDsKPj4gIyA2
NSAiL3Vzci9pbmNsdWRlL3N5cy91aW8uaCIgMyA0Cj4+IGV4dGVybiBzc2l6ZV90IHByZWFkdiAo
aW50IF9fZmQsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqX19pb3ZlYywgaW50IF9fY291bnQsCj4+ICAg
ICAgICAgIF9fb2ZmX3QgX19vZmZzZXQpIDsKPj4gIyA3NyAiL3Vzci9pbmNsdWRlL3N5cy91aW8u
aCIgMyA0Cj4+IGV4dGVybiBzc2l6ZV90IHB3cml0ZXYgKGludCBfX2ZkLCBjb25zdCBzdHJ1Y3Qg
aW92ZWMgKl9faW92ZWMsIGludCBfX2NvdW50LAo+PiAgICBfX29mZl90IF9fb2Zmc2V0KSA7Cj4+
ICMgMTIwICIvdXNyL2luY2x1ZGUvc3lzL3Vpby5oIiAzIDQKPj4KPj4gIyAyNyAiL3Vzci9pbmNs
dWRlL3N5cy9zb2NrZXQuaCIgMiAzIDQKPj4KPj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRo
YXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKPj4gIyAyOSAiL3Vzci9pbmNs
dWRlL3N5cy9zb2NrZXQuaCIgMiAzIDQKPj4gIyAzOCAiL3Vzci9pbmNsdWRlL3N5cy9zb2NrZXQu
aCIgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0LmgiIDEgMyA0Cj4+ICMgMjcg
Ii91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAzIDQKPj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4
Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKPj4gIyAyOCAiL3Vz
ci9pbmNsdWRlL2JpdHMvc29ja2V0LmgiIDIgMyA0Cj4+ICMgMzggIi91c3IvaW5jbHVkZS9iaXRz
L3NvY2tldC5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXRfdHlwZS5oIiAx
IDMgNAo+PiAjIDI0ICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXRfdHlwZS5oIiAzIDQKPj4gZW51
bSBfX3NvY2tldF90eXBlCj4+IHsKPj4gICBTT0NLX1NUUkVBTSA9IDEsCj4+Cj4+Cj4+ICAgU09D
S19ER1JBTSA9IDIsCj4+Cj4+Cj4+ICAgU09DS19SQVcgPSAzLAo+Pgo+PiAgIFNPQ0tfUkRNID0g
NCwKPj4KPj4gICBTT0NLX1NFUVBBQ0tFVCA9IDUsCj4+Cj4+Cj4+ICAgU09DS19EQ0NQID0gNiwK
Pj4KPj4gICBTT0NLX1BBQ0tFVCA9IDEwLAo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiAgIFNPQ0tf
Q0xPRVhFQyA9IDAyMDAwMDAwLAo+Pgo+Pgo+PiAgIFNPQ0tfTk9OQkxPQ0sgPSAwMDAwNDAwMAo+
Pgo+Pgo+PiB9Owo+PiAjIDM5ICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMiAzIDQKPj4g
IyAxNTAgIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1
ZGUvYml0cy9zb2NrYWRkci5oIiAxIDMgNAo+PiAjIDI4ICIvdXNyL2luY2x1ZGUvYml0cy9zb2Nr
YWRkci5oIiAzIDQKPj4gdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgc2FfZmFtaWx5X3Q7Cj4+
ICMgMTUxICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMiAzIDQKPj4KPj4KPj4gc3RydWN0
IHNvY2thZGRyCj4+ICAgewo+PiAgICAgc2FfZmFtaWx5X3Qgc2FfZmFtaWx5Owo+PiAgICAgY2hh
ciBzYV9kYXRhWzE0XTsKPj4gICB9Owo+PiAjIDE2NiAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0
LmgiIDMgNAo+PiBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZQo+PiAgIHsKPj4gICAgIHNhX2ZhbWls
eV90IHNzX2ZhbWlseTsKPj4gICAgIGNoYXIgX19zc19wYWRkaW5nWygxMjggLSAoc2l6ZW9mICh1
bnNpZ25lZCBzaG9ydCBpbnQpKSAtIHNpemVvZiAodW5zaWduZWQgbG9uZyBpbnQpKV07Cj4+ICAg
ICB1bnNpZ25lZCBsb25nIGludCBfX3NzX2FsaWduOwo+PiAgIH07Cj4+Cj4+Cj4+Cj4+IGVudW0K
Pj4gICB7Cj4+ICAgICBNU0dfT09CID0gMHgwMSwKPj4KPj4gICAgIE1TR19QRUVLID0gMHgwMiwK
Pj4KPj4gICAgIE1TR19ET05UUk9VVEUgPSAweDA0LAo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiAgICAg
TVNHX0NUUlVOQyA9IDB4MDgsCj4+Cj4+ICAgICBNU0dfUFJPWFkgPSAweDEwLAo+Pgo+PiAgICAg
TVNHX1RSVU5DID0gMHgyMCwKPj4KPj4gICAgIE1TR19ET05UV0FJVCA9IDB4NDAsCj4+Cj4+ICAg
ICBNU0dfRU9SID0gMHg4MCwKPj4KPj4gICAgIE1TR19XQUlUQUxMID0gMHgxMDAsCj4+Cj4+ICAg
ICBNU0dfRklOID0gMHgyMDAsCj4+Cj4+ICAgICBNU0dfU1lOID0gMHg0MDAsCj4+Cj4+ICAgICBN
U0dfQ09ORklSTSA9IDB4ODAwLAo+Pgo+PiAgICAgTVNHX1JTVCA9IDB4MTAwMCwKPj4KPj4gICAg
IE1TR19FUlJRVUVVRSA9IDB4MjAwMCwKPj4KPj4gICAgIE1TR19OT1NJR05BTCA9IDB4NDAwMCwK
Pj4KPj4gICAgIE1TR19NT1JFID0gMHg4MDAwLAo+Pgo+PiAgICAgTVNHX1dBSVRGT1JPTkUgPSAw
eDEwMDAwLAo+Pgo+PiAgICAgTVNHX0ZBU1RPUEVOID0gMHgyMDAwMDAwMCwKPj4KPj4KPj4gICAg
IE1TR19DTVNHX0NMT0VYRUMgPSAweDQwMDAwMDAwCj4+Cj4+Cj4+Cj4+ICAgfTsKPj4KPj4KPj4K
Pj4KPj4gc3RydWN0IG1zZ2hkcgo+PiAgIHsKPj4gICAgIHZvaWQgKm1zZ19uYW1lOwo+PiAgICAg
c29ja2xlbl90IG1zZ19uYW1lbGVuOwo+Pgo+PiAgICAgc3RydWN0IGlvdmVjICptc2dfaW92Owo+
PiAgICAgc2l6ZV90IG1zZ19pb3ZsZW47Cj4+Cj4+ICAgICB2b2lkICptc2dfY29udHJvbDsKPj4g
ICAgIHNpemVfdCBtc2dfY29udHJvbGxlbjsKPj4KPj4KPj4KPj4KPj4gICAgIGludCBtc2dfZmxh
Z3M7Cj4+ICAgfTsKPj4KPj4KPj4gc3RydWN0IGNtc2doZHIKPj4gICB7Cj4+ICAgICBzaXplX3Qg
Y21zZ19sZW47Cj4+Cj4+Cj4+Cj4+Cj4+ICAgICBpbnQgY21zZ19sZXZlbDsKPj4gICAgIGludCBj
bXNnX3R5cGU7Cj4+Cj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuc2lnbmVkIGNoYXIgX19jbXNnX2Rh
dGEgW107Cj4+Cj4+ICAgfTsKPj4gIyAyNzYgIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAz
IDQKPj4gZXh0ZXJuIHN0cnVjdCBjbXNnaGRyICpfX2Ntc2dfbnh0aGRyIChzdHJ1Y3QgbXNnaGRy
ICpfX21oZHIsCj4+ICAgICAgICAgICBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+PiAjIDMwMyAiL3Vzci9pbmNsdWRlL2Jp
dHMvc29ja2V0LmgiIDMgNAo+PiBlbnVtCj4+ICAgewo+PiAgICAgU0NNX1JJR0hUUyA9IDB4MDEK
Pj4KPj4KPj4KPj4KPj4KPj4gICB9Owo+PiAjIDM0OSAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0
LmgiIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9hc20vc29ja2V0LmgiIDEgMyA0Cj4+ICMgMSAi
L3Vzci9pbmNsdWRlL2FzbS1nZW5lcmljL3NvY2tldC5oIiAxIDMgNAo+Pgo+Pgo+Pgo+PiAjIDEg
Ii91c3IvaW5jbHVkZS9hc20vc29ja2lvcy5oIiAxIDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9h
c20tZ2VuZXJpYy9zb2NraW9zLmgiIDEgMyA0Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS9zb2Nr
aW9zLmgiIDIgMyA0Cj4+ICMgNSAiL3Vzci9pbmNsdWRlL2FzbS1nZW5lcmljL3NvY2tldC5oIiAy
IDMgNAo+PiAjIDEgIi91c3IvaW5jbHVkZS9hc20vc29ja2V0LmgiIDIgMyA0Cj4+ICMgMzUwICIv
dXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMiAzIDQKPj4gIyAzODMgIi91c3IvaW5jbHVkZS9i
aXRzL3NvY2tldC5oIiAzIDQKPj4gc3RydWN0IGxpbmdlcgo+PiAgIHsKPj4gICAgIGludCBsX29u
b2ZmOwo+PiAgICAgaW50IGxfbGluZ2VyOwo+PiAgIH07Cj4+ICMgMzkgIi91c3IvaW5jbHVkZS9z
eXMvc29ja2V0LmgiIDIgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+IHN0cnVjdCBvc29ja2FkZHIKPj4gICB7
Cj4+ICAgICB1bnNpZ25lZCBzaG9ydCBpbnQgc2FfZmFtaWx5Owo+PiAgICAgdW5zaWduZWQgY2hh
ciBzYV9kYXRhWzE0XTsKPj4gICB9Owo+Pgo+Pgo+Pgo+Pgo+PiBlbnVtCj4+IHsKPj4gICBTSFVU
X1JEID0gMCwKPj4KPj4gICBTSFVUX1dSLAo+Pgo+PiAgIFNIVVRfUkRXUgo+Pgo+PiB9Owo+PiAj
IDExMyAiL3Vzci9pbmNsdWRlL3N5cy9zb2NrZXQuaCIgMyA0Cj4+IGV4dGVybiBpbnQgc29ja2V0
IChpbnQgX19kb21haW4sIGludCBfX3R5cGUsIGludCBfX3Byb3RvY29sKSBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50
IHNvY2tldHBhaXIgKGludCBfX2RvbWFpbiwgaW50IF9fdHlwZSwgaW50IF9fcHJvdG9jb2wsCj4+
ICAgICAgICAgIGludCBfX2Zkc1syXSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKTsKPj4KPj4KPj4gZXh0ZXJuIGludCBiaW5kIChpbnQgX19mZCwgY29uc3Qgc3RydWN0
IHNvY2thZGRyICogX19hZGRyLCBzb2NrbGVuX3QgX19sZW4pCj4+ICAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4gZXh0ZXJuIGludCBnZXRzb2Nr
bmFtZSAoaW50IF9fZmQsIHN0cnVjdCBzb2NrYWRkciAqX19yZXN0cmljdCBfX2FkZHIsCj4+ICAg
IHNvY2tsZW5fdCAqX19yZXN0cmljdCBfX2xlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKTsKPj4gIyAxMzcgIi91c3IvaW5jbHVkZS9zeXMvc29ja2V0LmgiIDMgNAo+
PiBleHRlcm4gaW50IGNvbm5lY3QgKGludCBfX2ZkLCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKiBf
X2FkZHIsIHNvY2tsZW5fdCBfX2xlbik7Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgZ2V0cGVlcm5h
bWUgKGludCBfX2ZkLCBzdHJ1Y3Qgc29ja2FkZHIgKl9fcmVzdHJpY3QgX19hZGRyLAo+PiAgICBz
b2NrbGVuX3QgKl9fcmVzdHJpY3QgX19sZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBzc2l6ZV90IHNlbmQgKGlu
dCBfX2ZkLCBjb25zdCB2b2lkICpfX2J1Ziwgc2l6ZV90IF9fbiwgaW50IF9fZmxhZ3MpOwo+Pgo+
Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gc3NpemVfdCByZWN2IChpbnQgX19mZCwgdm9pZCAqX19i
dWYsIHNpemVfdCBfX24sIGludCBfX2ZsYWdzKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJu
IHNzaXplX3Qgc2VuZHRvIChpbnQgX19mZCwgY29uc3Qgdm9pZCAqX19idWYsIHNpemVfdCBfX24s
Cj4+ICAgICAgICAgIGludCBfX2ZsYWdzLCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKiBfX2FkZHIs
Cj4+ICAgICAgICAgIHNvY2tsZW5fdCBfX2FkZHJfbGVuKTsKPj4gIyAxNzQgIi91c3IvaW5jbHVk
ZS9zeXMvc29ja2V0LmgiIDMgNAo+PiBleHRlcm4gc3NpemVfdCByZWN2ZnJvbSAoaW50IF9fZmQs
IHZvaWQgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX24sCj4+ICAgICBpbnQgX19mbGFncywg
c3RydWN0IHNvY2thZGRyICpfX3Jlc3RyaWN0IF9fYWRkciwKPj4gICAgIHNvY2tsZW5fdCAqX19y
ZXN0cmljdCBfX2FkZHJfbGVuKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHNzaXpl
X3Qgc2VuZG1zZyAoaW50IF9fZmQsIGNvbnN0IHN0cnVjdCBtc2doZHIgKl9fbWVzc2FnZSwKPj4g
ICAgaW50IF9fZmxhZ3MpOwo+PiAjIDIwMiAiL3Vzci9pbmNsdWRlL3N5cy9zb2NrZXQuaCIgMyA0
Cj4+IGV4dGVybiBzc2l6ZV90IHJlY3Ztc2cgKGludCBfX2ZkLCBzdHJ1Y3QgbXNnaGRyICpfX21l
c3NhZ2UsIGludCBfX2ZsYWdzKTsKPj4gIyAyMTkgIi91c3IvaW5jbHVkZS9zeXMvc29ja2V0Lmgi
IDMgNAo+PiBleHRlcm4gaW50IGdldHNvY2tvcHQgKGludCBfX2ZkLCBpbnQgX19sZXZlbCwgaW50
IF9fb3B0bmFtZSwKPj4gICAgICAgICAgdm9pZCAqX19yZXN0cmljdCBfX29wdHZhbCwKPj4gICAg
ICAgICAgc29ja2xlbl90ICpfX3Jlc3RyaWN0IF9fb3B0bGVuKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IHNldHNvY2tv
cHQgKGludCBfX2ZkLCBpbnQgX19sZXZlbCwgaW50IF9fb3B0bmFtZSwKPj4gICAgICAgICAgY29u
c3Qgdm9pZCAqX19vcHR2YWwsIHNvY2tsZW5fdCBfX29wdGxlbikgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBsaXN0
ZW4gKGludCBfX2ZkLCBpbnQgX19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+PiAjIDI0MyAiL3Vzci9pbmNsdWRlL3N5cy9zb2NrZXQuaCIgMyA0Cj4+IGV4dGVy
biBpbnQgYWNjZXB0IChpbnQgX19mZCwgc3RydWN0IHNvY2thZGRyICpfX3Jlc3RyaWN0IF9fYWRk
ciwKPj4gICAgICBzb2NrbGVuX3QgKl9fcmVzdHJpY3QgX19hZGRyX2xlbik7Cj4+ICMgMjYxICIv
dXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzIDQKPj4gZXh0ZXJuIGludCBzaHV0ZG93biAoaW50
IF9fZmQsIGludCBfX2hvdykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KTsKPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBzb2NrYXRtYXJrIChpbnQgX19mZCkgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4KPj4K
Pj4gZXh0ZXJuIGludCBpc2ZkdHlwZSAoaW50IF9fZmQsIGludCBfX2ZkdHlwZSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gIyAyODMgIi91c3IvaW5jbHVkZS9z
eXMvc29ja2V0LmgiIDMgNAo+Pgo+PiAjIDI0ICIvdXNyL2luY2x1ZGUvbmV0aW5ldC9pbi5oIiAy
IDMgNAo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIHVpbnQzMl90IGluX2FkZHJfdDsKPj4g
c3RydWN0IGluX2FkZHIKPj4gICB7Cj4+ICAgICBpbl9hZGRyX3Qgc19hZGRyOwo+PiAgIH07Cj4+
Cj4+Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvaW4uaCIgMSAzIDQKPj4gIyAxMzMgIi91c3Iv
aW5jbHVkZS9iaXRzL2luLmgiIDMgNAo+PiBzdHJ1Y3QgaXBfb3B0cwo+PiAgIHsKPj4gICAgIHN0
cnVjdCBpbl9hZGRyIGlwX2RzdDsKPj4gICAgIGNoYXIgaXBfb3B0c1s0MF07Cj4+ICAgfTsKPj4K
Pj4KPj4gc3RydWN0IGlwX21yZXFuCj4+ICAgewo+PiAgICAgc3RydWN0IGluX2FkZHIgaW1yX211
bHRpYWRkcjsKPj4gICAgIHN0cnVjdCBpbl9hZGRyIGltcl9hZGRyZXNzOwo+PiAgICAgaW50IGlt
cl9pZmluZGV4Owo+PiAgIH07Cj4+Cj4+Cj4+IHN0cnVjdCBpbl9wa3RpbmZvCj4+ICAgewo+PiAg
ICAgaW50IGlwaV9pZmluZGV4Owo+PiAgICAgc3RydWN0IGluX2FkZHIgaXBpX3NwZWNfZHN0Owo+
PiAgICAgc3RydWN0IGluX2FkZHIgaXBpX2FkZHI7Cj4+ICAgfTsKPj4gIyAzOCAiL3Vzci9pbmNs
dWRlL25ldGluZXQvaW4uaCIgMiAzIDQKPj4KPj4KPj4gZW51bQo+PiAgIHsKPj4gICAgIElQUFJP
VE9fSVAgPSAwLAo+Pgo+PiAgICAgSVBQUk9UT19JQ01QID0gMSwKPj4KPj4gICAgIElQUFJPVE9f
SUdNUCA9IDIsCj4+Cj4+ICAgICBJUFBST1RPX0lQSVAgPSA0LAo+Pgo+PiAgICAgSVBQUk9UT19U
Q1AgPSA2LAo+Pgo+PiAgICAgSVBQUk9UT19FR1AgPSA4LAo+Pgo+PiAgICAgSVBQUk9UT19QVVAg
PSAxMiwKPj4KPj4gICAgIElQUFJPVE9fVURQID0gMTcsCj4+Cj4+ICAgICBJUFBST1RPX0lEUCA9
IDIyLAo+Pgo+PiAgICAgSVBQUk9UT19UUCA9IDI5LAo+Pgo+PiAgICAgSVBQUk9UT19EQ0NQID0g
MzMsCj4+Cj4+ICAgICBJUFBST1RPX0lQVjYgPSA0MSwKPj4KPj4gICAgIElQUFJPVE9fUlNWUCA9
IDQ2LAo+Pgo+PiAgICAgSVBQUk9UT19HUkUgPSA0NywKPj4KPj4gICAgIElQUFJPVE9fRVNQID0g
NTAsCj4+Cj4+ICAgICBJUFBST1RPX0FIID0gNTEsCj4+Cj4+ICAgICBJUFBST1RPX01UUCA9IDky
LAo+Pgo+PiAgICAgSVBQUk9UT19CRUVUUEggPSA5NCwKPj4KPj4gICAgIElQUFJPVE9fRU5DQVAg
PSA5OCwKPj4KPj4gICAgIElQUFJPVE9fUElNID0gMTAzLAo+Pgo+PiAgICAgSVBQUk9UT19DT01Q
ID0gMTA4LAo+Pgo+PiAgICAgSVBQUk9UT19TQ1RQID0gMTMyLAo+Pgo+PiAgICAgSVBQUk9UT19V
RFBMSVRFID0gMTM2LAo+Pgo+PiAgICAgSVBQUk9UT19NUExTID0gMTM3LAo+Pgo+PiAgICAgSVBQ
Uk9UT19SQVcgPSAyNTUsCj4+Cj4+ICAgICBJUFBST1RPX01BWAo+PiAgIH07Cj4+Cj4+Cj4+Cj4+
Cj4+Cj4+IGVudW0KPj4gICB7Cj4+ICAgICBJUFBST1RPX0hPUE9QVFMgPSAwLAo+Pgo+PiAgICAg
SVBQUk9UT19ST1VUSU5HID0gNDMsCj4+Cj4+ICAgICBJUFBST1RPX0ZSQUdNRU5UID0gNDQsCj4+
Cj4+ICAgICBJUFBST1RPX0lDTVBWNiA9IDU4LAo+Pgo+PiAgICAgSVBQUk9UT19OT05FID0gNTks
Cj4+Cj4+ICAgICBJUFBST1RPX0RTVE9QVFMgPSA2MCwKPj4KPj4gICAgIElQUFJPVE9fTUggPSAx
MzUKPj4KPj4gICB9Owo+Pgo+Pgo+Pgo+PiB0eXBlZGVmIHVpbnQxNl90IGluX3BvcnRfdDsKPj4K
Pj4KPj4gZW51bQo+PiAgIHsKPj4gICAgIElQUE9SVF9FQ0hPID0gNywKPj4gICAgIElQUE9SVF9E
SVNDQVJEID0gOSwKPj4gICAgIElQUE9SVF9TWVNUQVQgPSAxMSwKPj4gICAgIElQUE9SVF9EQVlU
SU1FID0gMTMsCj4+ICAgICBJUFBPUlRfTkVUU1RBVCA9IDE1LAo+PiAgICAgSVBQT1JUX0ZUUCA9
IDIxLAo+PiAgICAgSVBQT1JUX1RFTE5FVCA9IDIzLAo+PiAgICAgSVBQT1JUX1NNVFAgPSAyNSwK
Pj4gICAgIElQUE9SVF9USU1FU0VSVkVSID0gMzcsCj4+ICAgICBJUFBPUlRfTkFNRVNFUlZFUiA9
IDQyLAo+PiAgICAgSVBQT1JUX1dIT0lTID0gNDMsCj4+ICAgICBJUFBPUlRfTVRQID0gNTcsCj4+
Cj4+ICAgICBJUFBPUlRfVEZUUCA9IDY5LAo+PiAgICAgSVBQT1JUX1JKRSA9IDc3LAo+PiAgICAg
SVBQT1JUX0ZJTkdFUiA9IDc5LAo+PiAgICAgSVBQT1JUX1RUWUxJTksgPSA4NywKPj4gICAgIElQ
UE9SVF9TVVBEVVAgPSA5NSwKPj4KPj4KPj4gICAgIElQUE9SVF9FWEVDU0VSVkVSID0gNTEyLAo+
PiAgICAgSVBQT1JUX0xPR0lOU0VSVkVSID0gNTEzLAo+PiAgICAgSVBQT1JUX0NNRFNFUlZFUiA9
IDUxNCwKPj4gICAgIElQUE9SVF9FRlNTRVJWRVIgPSA1MjAsCj4+Cj4+Cj4+ICAgICBJUFBPUlRf
QklGRlVEUCA9IDUxMiwKPj4gICAgIElQUE9SVF9XSE9TRVJWRVIgPSA1MTMsCj4+ICAgICBJUFBP
UlRfUk9VVEVTRVJWRVIgPSA1MjAsCj4+Cj4+Cj4+ICAgICBJUFBPUlRfUkVTRVJWRUQgPSAxMDI0
LAo+Pgo+Pgo+PiAgICAgSVBQT1JUX1VTRVJSRVNFUlZFRCA9IDUwMDAKPj4gICB9Owo+PiAjIDIx
MSAiL3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaCIgMyA0Cj4+IHN0cnVjdCBpbjZfYWRkcgo+PiAg
IHsKPj4gICAgIHVuaW9uCj4+ICAgICAgIHsKPj4gIHVpbnQ4X3QgX191Nl9hZGRyOFsxNl07Cj4+
Cj4+ICB1aW50MTZfdCBfX3U2X2FkZHIxNls4XTsKPj4gIHVpbnQzMl90IF9fdTZfYWRkcjMyWzRd
Owo+Pgo+PiAgICAgICB9IF9faW42X3U7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+ICAgfTsKPj4KPj4KPj4g
ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbjZfYWRkciBpbjZhZGRyX2FueTsKPj4gZXh0ZXJuIGNvbnN0
IHN0cnVjdCBpbjZfYWRkciBpbjZhZGRyX2xvb3BiYWNrOwo+PiAjIDIzOSAiL3Vzci9pbmNsdWRl
L25ldGluZXQvaW4uaCIgMyA0Cj4+IHN0cnVjdCBzb2NrYWRkcl9pbgo+PiAgIHsKPj4gICAgIHNh
X2ZhbWlseV90IHNpbl9mYW1pbHk7Cj4+ICAgICBpbl9wb3J0X3Qgc2luX3BvcnQ7Cj4+ICAgICBz
dHJ1Y3QgaW5fYWRkciBzaW5fYWRkcjsKPj4KPj4KPj4gICAgIHVuc2lnbmVkIGNoYXIgc2luX3pl
cm9bc2l6ZW9mIChzdHJ1Y3Qgc29ja2FkZHIpIC0KPj4gICAgICAgKHNpemVvZiAodW5zaWduZWQg
c2hvcnQgaW50KSkgLQo+PiAgICAgICBzaXplb2YgKGluX3BvcnRfdCkgLQo+PiAgICAgICBzaXpl
b2YgKHN0cnVjdCBpbl9hZGRyKV07Cj4+ICAgfTsKPj4KPj4KPj4KPj4gc3RydWN0IHNvY2thZGRy
X2luNgo+PiAgIHsKPj4gICAgIHNhX2ZhbWlseV90IHNpbjZfZmFtaWx5Owo+PiAgICAgaW5fcG9y
dF90IHNpbjZfcG9ydDsKPj4gICAgIHVpbnQzMl90IHNpbjZfZmxvd2luZm87Cj4+ICAgICBzdHJ1
Y3QgaW42X2FkZHIgc2luNl9hZGRyOwo+PiAgICAgdWludDMyX3Qgc2luNl9zY29wZV9pZDsKPj4g
ICB9Owo+Pgo+Pgo+Pgo+Pgo+PiBzdHJ1Y3QgaXBfbXJlcQo+PiAgIHsKPj4KPj4gICAgIHN0cnVj
dCBpbl9hZGRyIGltcl9tdWx0aWFkZHI7Cj4+Cj4+Cj4+ICAgICBzdHJ1Y3QgaW5fYWRkciBpbXJf
aW50ZXJmYWNlOwo+PiAgIH07Cj4+Cj4+IHN0cnVjdCBpcF9tcmVxX3NvdXJjZQo+PiAgIHsKPj4K
Pj4gICAgIHN0cnVjdCBpbl9hZGRyIGltcl9tdWx0aWFkZHI7Cj4+Cj4+Cj4+ICAgICBzdHJ1Y3Qg
aW5fYWRkciBpbXJfaW50ZXJmYWNlOwo+Pgo+Pgo+PiAgICAgc3RydWN0IGluX2FkZHIgaW1yX3Nv
dXJjZWFkZHI7Cj4+ICAgfTsKPj4KPj4KPj4KPj4KPj4gc3RydWN0IGlwdjZfbXJlcQo+PiAgIHsK
Pj4KPj4gICAgIHN0cnVjdCBpbjZfYWRkciBpcHY2bXJfbXVsdGlhZGRyOwo+Pgo+Pgo+PiAgICAg
dW5zaWduZWQgaW50IGlwdjZtcl9pbnRlcmZhY2U7Cj4+ICAgfTsKPj4KPj4KPj4KPj4KPj4gc3Ry
dWN0IGdyb3VwX3JlcQo+PiAgIHsKPj4KPj4gICAgIHVpbnQzMl90IGdyX2ludGVyZmFjZTsKPj4K
Pj4KPj4gICAgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGdyX2dyb3VwOwo+PiAgIH07Cj4+Cj4+
IHN0cnVjdCBncm91cF9zb3VyY2VfcmVxCj4+ICAgewo+Pgo+PiAgICAgdWludDMyX3QgZ3NyX2lu
dGVyZmFjZTsKPj4KPj4KPj4gICAgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGdzcl9ncm91cDsK
Pj4KPj4KPj4gICAgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGdzcl9zb3VyY2U7Cj4+ICAgfTsK
Pj4KPj4KPj4KPj4gc3RydWN0IGlwX21zZmlsdGVyCj4+ICAgewo+Pgo+PiAgICAgc3RydWN0IGlu
X2FkZHIgaW1zZl9tdWx0aWFkZHI7Cj4+Cj4+Cj4+ICAgICBzdHJ1Y3QgaW5fYWRkciBpbXNmX2lu
dGVyZmFjZTsKPj4KPj4KPj4gICAgIHVpbnQzMl90IGltc2ZfZm1vZGU7Cj4+Cj4+Cj4+ICAgICB1
aW50MzJfdCBpbXNmX251bXNyYzsKPj4KPj4gICAgIHN0cnVjdCBpbl9hZGRyIGltc2Zfc2xpc3Rb
MV07Cj4+ICAgfTsKPj4KPj4KPj4KPj4KPj4KPj4gc3RydWN0IGdyb3VwX2ZpbHRlcgo+PiAgIHsK
Pj4KPj4gICAgIHVpbnQzMl90IGdmX2ludGVyZmFjZTsKPj4KPj4KPj4gICAgIHN0cnVjdCBzb2Nr
YWRkcl9zdG9yYWdlIGdmX2dyb3VwOwo+Pgo+Pgo+PiAgICAgdWludDMyX3QgZ2ZfZm1vZGU7Cj4+
Cj4+Cj4+ICAgICB1aW50MzJfdCBnZl9udW1zcmM7Cj4+Cj4+ICAgICBzdHJ1Y3Qgc29ja2FkZHJf
c3RvcmFnZSBnZl9zbGlzdFsxXTsKPj4gfTsKPj4gIyAzNzYgIi91c3IvaW5jbHVkZS9uZXRpbmV0
L2luLmgiIDMgNAo+PiBleHRlcm4gdWludDMyX3QgbnRvaGwgKHVpbnQzMl90IF9fbmV0bG9uZykg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo
X19jb25zdF9fKSk7Cj4+IGV4dGVybiB1aW50MTZfdCBudG9ocyAodWludDE2X3QgX19uZXRzaG9y
dCkKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0
cmlidXRlX18gKChfX2NvbnN0X18pKTsKPj4gZXh0ZXJuIHVpbnQzMl90IGh0b25sICh1aW50MzJf
dCBfX2hvc3Rsb25nKQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+PiBleHRlcm4gdWludDE2X3QgaHRv
bnMgKHVpbnQxNl90IF9faG9zdHNob3J0KQo+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+Pgo+Pgo+Pgo+
Pgo+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgiIDEgMyA0Cj4+ICMgMzg4ICIv
dXNyL2luY2x1ZGUvbmV0aW5ldC9pbi5oIiAyIDMgNAo+PiAjIDUwMyAiL3Vzci9pbmNsdWRlL25l
dGluZXQvaW4uaCIgMyA0Cj4+IGV4dGVybiBpbnQgYmluZHJlc3Zwb3J0IChpbnQgX19zb2NrZmQs
IHN0cnVjdCBzb2NrYWRkcl9pbiAqX19zb2NrX2luKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRlcm4gaW50IGJpbmRyZXN2cG9ydDYgKGludCBf
X3NvY2tmZCwgc3RydWN0IHNvY2thZGRyX2luNiAqX19zb2NrX2luKQo+PiAgICAgIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+ICMgNjMxICIvdXNyL2luY2x1ZGUv
bmV0aW5ldC9pbi5oIiAzIDQKPj4KPj4gIyAyOCAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDIgMyA0
Cj4+Cj4+Cj4+Cj4+Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL3JwYy9uZXRkYi5oIiAxIDMgNAo+PiAj
IDQyICIvdXNyL2luY2x1ZGUvcnBjL25ldGRiLmgiIDMgNAo+PiAjIDEgIi91c3IvbGliL2djYy9p
Njg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAo+PiAjIDQzICIv
dXNyL2luY2x1ZGUvcnBjL25ldGRiLmgiIDIgMyA0Cj4+Cj4+Cj4+Cj4+IHN0cnVjdCBycGNlbnQK
Pj4gewo+PiAgIGNoYXIgKnJfbmFtZTsKPj4gICBjaGFyICoqcl9hbGlhc2VzOwo+PiAgIGludCBy
X251bWJlcjsKPj4gfTsKPj4KPj4gZXh0ZXJuIHZvaWQgc2V0cnBjZW50IChpbnQgX19zdGF5b3Bl
bikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4gZXh0ZXJuIHZv
aWQgZW5kcnBjZW50ICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpOwo+PiBleHRlcm4gc3RydWN0IHJwY2VudCAqZ2V0cnBjYnluYW1lIChjb25zdCBjaGFyICpf
X25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+IGV4dGVy
biBzdHJ1Y3QgcnBjZW50ICpnZXRycGNieW51bWJlciAoaW50IF9fbnVtYmVyKSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+PiBleHRlcm4gc3RydWN0IHJwY2VudCAq
Z2V0cnBjZW50ICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
Owo+Pgo+Pgo+PiBleHRlcm4gaW50IGdldHJwY2J5bmFtZV9yIChjb25zdCBjaGFyICpfX25hbWUs
IHN0cnVjdCBycGNlbnQgKl9fcmVzdWx0X2J1ZiwKPj4gICAgICAgY2hhciAqX19idWZmZXIsIHNp
emVfdCBfX2J1ZmxlbiwKPj4gICAgICAgc3RydWN0IHJwY2VudCAqKl9fcmVzdWx0KSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+PiBleHRlcm4gaW50IGdldHJw
Y2J5bnVtYmVyX3IgKGludCBfX251bWJlciwgc3RydWN0IHJwY2VudCAqX19yZXN1bHRfYnVmLAo+
PiAgICAgICAgIGNoYXIgKl9fYnVmZmVyLCBzaXplX3QgX19idWZsZW4sCj4+ICAgICAgICAgc3Ry
dWN0IHJwY2VudCAqKl9fcmVzdWx0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+Pgo+PiBleHRlcm4gaW50IGdldHJwY2VudF9yIChzdHJ1Y3QgcnBjZW50ICpfX3Jl
c3VsdF9idWYsIGNoYXIgKl9fYnVmZmVyLAo+PiAgICBzaXplX3QgX19idWZsZW4sIHN0cnVjdCBy
cGNlbnQgKipfX3Jlc3VsdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KTsKPj4KPj4KPj4KPj4gIyAzMyAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDIgMyA0Cj4+ICMgNDIg
Ii91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9uZXRk
Yi5oIiAxIDMgNAo+PiAjIDI2ICIvdXNyL2luY2x1ZGUvYml0cy9uZXRkYi5oIiAzIDQKPj4gc3Ry
dWN0IG5ldGVudAo+PiB7Cj4+ICAgY2hhciAqbl9uYW1lOwo+PiAgIGNoYXIgKipuX2FsaWFzZXM7
Cj4+ICAgaW50IG5fYWRkcnR5cGU7Cj4+ICAgdWludDMyX3Qgbl9uZXQ7Cj4+IH07Cj4+ICMgNDMg
Ii91c3IvaW5jbHVkZS9uZXRkYi5oIiAyIDMgNAo+PiAjIDUzICIvdXNyL2luY2x1ZGUvbmV0ZGIu
aCIgMyA0Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgKl9faF9lcnJub19s
b2NhdGlvbiAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf
X2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4+ICMgOTIgIi91c3IvaW5jbHVkZS9uZXRkYi5o
IiAzIDQKPj4gZXh0ZXJuIHZvaWQgaGVycm9yIChjb25zdCBjaGFyICpfX3N0cikgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4gZXh0ZXJuIGNvbnN0IGNo
YXIgKmhzdHJlcnJvciAoaW50IF9fZXJyX251bSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4gc3RydWN0IGhvc3RlbnQKPj4gewo+PiAgIGNo
YXIgKmhfbmFtZTsKPj4gICBjaGFyICoqaF9hbGlhc2VzOwo+PiAgIGludCBoX2FkZHJ0eXBlOwo+
PiAgIGludCBoX2xlbmd0aDsKPj4gICBjaGFyICoqaF9hZGRyX2xpc3Q7Cj4+Cj4+Cj4+Cj4+IH07
Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIHNldGhvc3RlbnQgKGludCBfX3N0YXlf
b3Blbik7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIGVuZGhvc3RlbnQgKHZvaWQpOwo+
Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gc3RydWN0IGhvc3RlbnQgKmdldGhvc3RlbnQgKHZv
aWQpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gc3RydWN0IGhvc3RlbnQgKmdldGhvc3Ri
eWFkZHIgKGNvbnN0IHZvaWQgKl9fYWRkciwgX19zb2NrbGVuX3QgX19sZW4sCj4+ICAgICAgICAg
ICBpbnQgX190eXBlKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHN0cnVjdCBob3N0ZW50ICpn
ZXRob3N0YnluYW1lIChjb25zdCBjaGFyICpfX25hbWUpOwo+PiAjIDE1NSAiL3Vzci9pbmNsdWRl
L25ldGRiLmgiIDMgNAo+PiBleHRlcm4gc3RydWN0IGhvc3RlbnQgKmdldGhvc3RieW5hbWUyIChj
b25zdCBjaGFyICpfX25hbWUsIGludCBfX2FmKTsKPj4gIyAxNjcgIi91c3IvaW5jbHVkZS9uZXRk
Yi5oIiAzIDQKPj4gZXh0ZXJuIGludCBnZXRob3N0ZW50X3IgKHN0cnVjdCBob3N0ZW50ICpfX3Jl
c3RyaWN0IF9fcmVzdWx0X2J1ZiwKPj4gICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVf
dCBfX2J1ZmxlbiwKPj4gICAgIHN0cnVjdCBob3N0ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCwK
Pj4gICAgIGludCAqX19yZXN0cmljdCBfX2hfZXJybm9wKTsKPj4KPj4gZXh0ZXJuIGludCBnZXRo
b3N0YnlhZGRyX3IgKGNvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19hZGRyLCBfX3NvY2tsZW5fdCBf
X2xlbiwKPj4gICAgICAgIGludCBfX3R5cGUsCj4+ICAgICAgICBzdHJ1Y3QgaG9zdGVudCAqX19y
ZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4+ICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBz
aXplX3QgX19idWZsZW4sCj4+ICAgICAgICBzdHJ1Y3QgaG9zdGVudCAqKl9fcmVzdHJpY3QgX19y
ZXN1bHQsCj4+ICAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19oX2Vycm5vcCk7Cj4+Cj4+IGV4dGVy
biBpbnQgZ2V0aG9zdGJ5bmFtZV9yIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwKPj4g
ICAgICAgIHN0cnVjdCBob3N0ZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwKPj4gICAgICAg
IGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX2J1ZmxlbiwKPj4gICAgICAgIHN0cnVj
dCBob3N0ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCwKPj4gICAgICAgIGludCAqX19yZXN0cmlj
dCBfX2hfZXJybm9wKTsKPj4KPj4gZXh0ZXJuIGludCBnZXRob3N0YnluYW1lMl9yIChjb25zdCBj
aGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwgaW50IF9fYWYsCj4+ICAgICAgICAgc3RydWN0IGhvc3Rl
bnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVmLAo+PiAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3Qg
X19idWYsIHNpemVfdCBfX2J1ZmxlbiwKPj4gICAgICAgICBzdHJ1Y3QgaG9zdGVudCAqKl9fcmVz
dHJpY3QgX19yZXN1bHQsCj4+ICAgICAgICAgaW50ICpfX3Jlc3RyaWN0IF9faF9lcnJub3ApOwo+
PiAjIDE5OCAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+PiBleHRlcm4gdm9pZCBzZXRuZXRl
bnQgKGludCBfX3N0YXlfb3Blbik7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIGVuZG5l
dGVudCAodm9pZCk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBzdHJ1Y3QgbmV0ZW50ICpn
ZXRuZXRlbnQgKHZvaWQpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gc3RydWN0IG5ldGVu
dCAqZ2V0bmV0YnlhZGRyICh1aW50MzJfdCBfX25ldCwgaW50IF9fdHlwZSk7Cj4+Cj4+Cj4+Cj4+
Cj4+Cj4+IGV4dGVybiBzdHJ1Y3QgbmV0ZW50ICpnZXRuZXRieW5hbWUgKGNvbnN0IGNoYXIgKl9f
bmFtZSk7Cj4+ICMgMjM3ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4+IGV4dGVybiBpbnQg
Z2V0bmV0ZW50X3IgKHN0cnVjdCBuZXRlbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVmLAo+PiAg
ICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4+ICAgIHN0cnVjdCBu
ZXRlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0LAo+PiAgICBpbnQgKl9fcmVzdHJpY3QgX19oX2Vy
cm5vcCk7Cj4+Cj4+IGV4dGVybiBpbnQgZ2V0bmV0YnlhZGRyX3IgKHVpbnQzMl90IF9fbmV0LCBp
bnQgX190eXBlLAo+PiAgICAgICBzdHJ1Y3QgbmV0ZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1
ZiwKPj4gICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAo+PiAg
ICAgICBzdHJ1Y3QgbmV0ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCwKPj4gICAgICAgaW50ICpf
X3Jlc3RyaWN0IF9faF9lcnJub3ApOwo+Pgo+PiBleHRlcm4gaW50IGdldG5ldGJ5bmFtZV9yIChj
b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwKPj4gICAgICAgc3RydWN0IG5ldGVudCAqX19y
ZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4+ICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNp
emVfdCBfX2J1ZmxlbiwKPj4gICAgICAgc3RydWN0IG5ldGVudCAqKl9fcmVzdHJpY3QgX19yZXN1
bHQsCj4+ICAgICAgIGludCAqX19yZXN0cmljdCBfX2hfZXJybm9wKTsKPj4KPj4KPj4KPj4KPj4g
c3RydWN0IHNlcnZlbnQKPj4gewo+PiAgIGNoYXIgKnNfbmFtZTsKPj4gICBjaGFyICoqc19hbGlh
c2VzOwo+PiAgIGludCBzX3BvcnQ7Cj4+ICAgY2hhciAqc19wcm90bzsKPj4gfTsKPj4KPj4KPj4K
Pj4KPj4KPj4KPj4gZXh0ZXJuIHZvaWQgc2V0c2VydmVudCAoaW50IF9fc3RheV9vcGVuKTsKPj4K
Pj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHZvaWQgZW5kc2VydmVudCAodm9pZCk7Cj4+Cj4+Cj4+Cj4+
Cj4+Cj4+Cj4+IGV4dGVybiBzdHJ1Y3Qgc2VydmVudCAqZ2V0c2VydmVudCAodm9pZCk7Cj4+Cj4+
Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBzdHJ1Y3Qgc2VydmVudCAqZ2V0c2VydmJ5bmFtZSAoY29u
c3QgY2hhciAqX19uYW1lLCBjb25zdCBjaGFyICpfX3Byb3RvKTsKPj4KPj4KPj4KPj4KPj4KPj4K
Pj4gZXh0ZXJuIHN0cnVjdCBzZXJ2ZW50ICpnZXRzZXJ2Ynlwb3J0IChpbnQgX19wb3J0LCBjb25z
dCBjaGFyICpfX3Byb3RvKTsKPj4gIyAzMDggIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPj4g
ZXh0ZXJuIGludCBnZXRzZXJ2ZW50X3IgKHN0cnVjdCBzZXJ2ZW50ICpfX3Jlc3RyaWN0IF9fcmVz
dWx0X2J1ZiwKPj4gICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX2J1ZmxlbiwK
Pj4gICAgIHN0cnVjdCBzZXJ2ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCk7Cj4+Cj4+IGV4dGVy
biBpbnQgZ2V0c2VydmJ5bmFtZV9yIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwKPj4g
ICAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19wcm90bywKPj4gICAgICAgIHN0cnVjdCBz
ZXJ2ZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwKPj4gICAgICAgIGNoYXIgKl9fcmVzdHJp
Y3QgX19idWYsIHNpemVfdCBfX2J1ZmxlbiwKPj4gICAgICAgIHN0cnVjdCBzZXJ2ZW50ICoqX19y
ZXN0cmljdCBfX3Jlc3VsdCk7Cj4+Cj4+IGV4dGVybiBpbnQgZ2V0c2VydmJ5cG9ydF9yIChpbnQg
X19wb3J0LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcHJvdG8sCj4+ICAgICAgICBzdHJ1Y3Qg
c2VydmVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4+ICAgICAgICBjaGFyICpfX3Jlc3Ry
aWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4+ICAgICAgICBzdHJ1Y3Qgc2VydmVudCAqKl9f
cmVzdHJpY3QgX19yZXN1bHQpOwo+Pgo+Pgo+Pgo+Pgo+PiBzdHJ1Y3QgcHJvdG9lbnQKPj4gewo+
PiAgIGNoYXIgKnBfbmFtZTsKPj4gICBjaGFyICoqcF9hbGlhc2VzOwo+PiAgIGludCBwX3Byb3Rv
Owo+PiB9Owo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gdm9pZCBzZXRwcm90b2VudCAoaW50
IF9fc3RheV9vcGVuKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIHZvaWQgZW5kcHJvdG9lbnQg
KHZvaWQpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gc3RydWN0IHByb3RvZW50ICpnZXRw
cm90b2VudCAodm9pZCk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBzdHJ1Y3QgcHJvdG9lbnQg
KmdldHByb3RvYnluYW1lIChjb25zdCBjaGFyICpfX25hbWUpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBl
eHRlcm4gc3RydWN0IHByb3RvZW50ICpnZXRwcm90b2J5bnVtYmVyIChpbnQgX19wcm90byk7Cj4+
ICMgMzc0ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4+IGV4dGVybiBpbnQgZ2V0cHJvdG9l
bnRfciAoc3RydWN0IHByb3RvZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwKPj4gICAgICBj
aGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4+ICAgICAgc3RydWN0IHBy
b3RvZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCk7Cj4+Cj4+IGV4dGVybiBpbnQgZ2V0cHJvdG9i
eW5hbWVfciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4+ICAgICAgICAgc3RydWN0
IHByb3RvZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwKPj4gICAgICAgICBjaGFyICpfX3Jl
c3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4+ICAgICAgICAgc3RydWN0IHByb3RvZW50
ICoqX19yZXN0cmljdCBfX3Jlc3VsdCk7Cj4+Cj4+IGV4dGVybiBpbnQgZ2V0cHJvdG9ieW51bWJl
cl9yIChpbnQgX19wcm90bywKPj4gICAgICAgICAgIHN0cnVjdCBwcm90b2VudCAqX19yZXN0cmlj
dCBfX3Jlc3VsdF9idWYsCj4+ICAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXpl
X3QgX19idWZsZW4sCj4+ICAgICAgICAgICBzdHJ1Y3QgcHJvdG9lbnQgKipfX3Jlc3RyaWN0IF9f
cmVzdWx0KTsKPj4gIyAzOTUgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPj4gZXh0ZXJuIGlu
dCBzZXRuZXRncmVudCAoY29uc3QgY2hhciAqX19uZXRncm91cCk7Cj4+Cj4+Cj4+Cj4+Cj4+Cj4+
Cj4+Cj4+IGV4dGVybiB2b2lkIGVuZG5ldGdyZW50ICh2b2lkKTsKPj4gIyA0MTIgIi91c3IvaW5j
bHVkZS9uZXRkYi5oIiAzIDQKPj4gZXh0ZXJuIGludCBnZXRuZXRncmVudCAoY2hhciAqKl9fcmVz
dHJpY3QgX19ob3N0cCwKPj4gICAgY2hhciAqKl9fcmVzdHJpY3QgX191c2VycCwKPj4gICAgY2hh
ciAqKl9fcmVzdHJpY3QgX19kb21haW5wKTsKPj4gIyA0MjMgIi91c3IvaW5jbHVkZS9uZXRkYi5o
IiAzIDQKPj4gZXh0ZXJuIGludCBpbm5ldGdyIChjb25zdCBjaGFyICpfX25ldGdyb3VwLCBjb25z
dCBjaGFyICpfX2hvc3QsCj4+ICAgICAgIGNvbnN0IGNoYXIgKl9fdXNlciwgY29uc3QgY2hhciAq
X19kb21haW4pOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGdldG5ldGdyZW50
X3IgKGNoYXIgKipfX3Jlc3RyaWN0IF9faG9zdHAsCj4+ICAgICAgY2hhciAqKl9fcmVzdHJpY3Qg
X191c2VycCwKPj4gICAgICBjaGFyICoqX19yZXN0cmljdCBfX2RvbWFpbnAsCj4+ICAgICAgY2hh
ciAqX19yZXN0cmljdCBfX2J1ZmZlciwgc2l6ZV90IF9fYnVmbGVuKTsKPj4gIyA0NTEgIi91c3Iv
aW5jbHVkZS9uZXRkYi5oIiAzIDQKPj4gZXh0ZXJuIGludCByY21kIChjaGFyICoqX19yZXN0cmlj
dCBfX2Fob3N0LCB1bnNpZ25lZCBzaG9ydCBpbnQgX19ycG9ydCwKPj4gICAgY29uc3QgY2hhciAq
X19yZXN0cmljdCBfX2xvY3VzZXIsCj4+ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19yZW11
c2VyLAo+PiAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fY21kLCBpbnQgKl9fcmVzdHJpY3Qg
X19mZDJwKTsKPj4gIyA0NjMgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPj4gZXh0ZXJuIGlu
dCByY21kX2FmIChjaGFyICoqX19yZXN0cmljdCBfX2Fob3N0LCB1bnNpZ25lZCBzaG9ydCBpbnQg
X19ycG9ydCwKPj4gICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2xvY3VzZXIsCj4+ICAg
ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19yZW11c2VyLAo+PiAgICAgICBjb25zdCBjaGFy
ICpfX3Jlc3RyaWN0IF9fY21kLCBpbnQgKl9fcmVzdHJpY3QgX19mZDJwLAo+PiAgICAgICBzYV9m
YW1pbHlfdCBfX2FmKTsKPj4gIyA0NzkgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPj4gZXh0
ZXJuIGludCByZXhlYyAoY2hhciAqKl9fcmVzdHJpY3QgX19haG9zdCwgaW50IF9fcnBvcnQsCj4+
ICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwKPj4gICAgIGNvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19wYXNzLAo+PiAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2NtZCwgaW50
ICpfX3Jlc3RyaWN0IF9fZmQycCk7Cj4+ICMgNDkxICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0
Cj4+IGV4dGVybiBpbnQgcmV4ZWNfYWYgKGNoYXIgKipfX3Jlc3RyaWN0IF9fYWhvc3QsIGludCBf
X3Jwb3J0LAo+PiAgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4+ICAgICAg
ICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcGFzcywKPj4gICAgICAgIGNvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19jbWQsIGludCAqX19yZXN0cmljdCBfX2ZkMnAsCj4+ICAgICAgICBzYV9mYW1p
bHlfdCBfX2FmKTsKPj4gIyA1MDUgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPj4gZXh0ZXJu
IGludCBydXNlcm9rIChjb25zdCBjaGFyICpfX3Job3N0LCBpbnQgX19zdXNlciwKPj4gICAgICAg
Y29uc3QgY2hhciAqX19yZW11c2VyLCBjb25zdCBjaGFyICpfX2xvY3VzZXIpOwo+PiAjIDUxNSAi
L3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+PiBleHRlcm4gaW50IHJ1c2Vyb2tfYWYgKGNvbnN0
IGNoYXIgKl9fcmhvc3QsIGludCBfX3N1c2VyLAo+PiAgICAgICAgICBjb25zdCBjaGFyICpfX3Jl
bXVzZXIsIGNvbnN0IGNoYXIgKl9fbG9jdXNlciwKPj4gICAgICAgICAgc2FfZmFtaWx5X3QgX19h
Zik7Cj4+ICMgNTI4ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4+IGV4dGVybiBpbnQgaXJ1
c2Vyb2sgKHVpbnQzMl90IF9fcmFkZHIsIGludCBfX3N1c2VyLAo+PiAgICAgICAgY29uc3QgY2hh
ciAqX19yZW11c2VyLCBjb25zdCBjaGFyICpfX2xvY3VzZXIpOwo+PiAjIDUzOSAiL3Vzci9pbmNs
dWRlL25ldGRiLmgiIDMgNAo+PiBleHRlcm4gaW50IGlydXNlcm9rX2FmIChjb25zdCB2b2lkICpf
X3JhZGRyLCBpbnQgX19zdXNlciwKPj4gICAgY29uc3QgY2hhciAqX19yZW11c2VyLCBjb25zdCBj
aGFyICpfX2xvY3VzZXIsCj4+ICAgIHNhX2ZhbWlseV90IF9fYWYpOwo+PiAjIDU1MSAiL3Vzci9p
bmNsdWRlL25ldGRiLmgiIDMgNAo+PiBleHRlcm4gaW50IHJyZXN2cG9ydCAoaW50ICpfX2FscG9y
dCk7Cj4+ICMgNTYwICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4+IGV4dGVybiBpbnQgcnJl
c3Zwb3J0X2FmIChpbnQgKl9fYWxwb3J0LCBzYV9mYW1pbHlfdCBfX2FmKTsKPj4KPj4KPj4KPj4K
Pj4KPj4KPj4gc3RydWN0IGFkZHJpbmZvCj4+IHsKPj4gICBpbnQgYWlfZmxhZ3M7Cj4+ICAgaW50
IGFpX2ZhbWlseTsKPj4gICBpbnQgYWlfc29ja3R5cGU7Cj4+ICAgaW50IGFpX3Byb3RvY29sOwo+
PiAgIHNvY2tsZW5fdCBhaV9hZGRybGVuOwo+PiAgIHN0cnVjdCBzb2NrYWRkciAqYWlfYWRkcjsK
Pj4gICBjaGFyICphaV9jYW5vbm5hbWU7Cj4+ICAgc3RydWN0IGFkZHJpbmZvICphaV9uZXh0Owo+
PiB9Owo+PiAjIDY2MiAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+PiBleHRlcm4gaW50IGdl
dGFkZHJpbmZvIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwKPj4gICAgY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX3NlcnZpY2UsCj4+ICAgIGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAqX19y
ZXN0cmljdCBfX3JlcSwKPj4gICAgc3RydWN0IGFkZHJpbmZvICoqX19yZXN0cmljdCBfX3BhaSk7
Cj4+Cj4+Cj4+IGV4dGVybiB2b2lkIGZyZWVhZGRyaW5mbyAoc3RydWN0IGFkZHJpbmZvICpfX2Fp
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+PiBleHRl
cm4gY29uc3QgY2hhciAqZ2FpX3N0cmVycm9yIChpbnQgX19lY29kZSkgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4KPj4KPj4gZXh0ZXJuIGludCBn
ZXRuYW1laW5mbyAoY29uc3Qgc3RydWN0IHNvY2thZGRyICpfX3Jlc3RyaWN0IF9fc2EsCj4+ICAg
IHNvY2tsZW5fdCBfX3NhbGVuLCBjaGFyICpfX3Jlc3RyaWN0IF9faG9zdCwKPj4gICAgc29ja2xl
bl90IF9faG9zdGxlbiwgY2hhciAqX19yZXN0cmljdCBfX3NlcnYsCj4+ICAgIHNvY2tsZW5fdCBf
X3NlcnZsZW4sIGludCBfX2ZsYWdzKTsKPj4gIyA3MTMgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAz
IDQKPj4KPj4gIyA4MSAibWFjaGluZS5jIiAyCj4+Cj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FycGEv
aW5ldC5oIiAxIDMgNAo+PiAjIDMwICIvdXNyL2luY2x1ZGUvYXJwYS9pbmV0LmgiIDMgNAo+Pgo+
Pgo+Pgo+Pgo+PiBleHRlcm4gaW5fYWRkcl90IGluZXRfYWRkciAoY29uc3QgY2hhciAqX19jcCkg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4gZXh0ZXJu
IGluX2FkZHJfdCBpbmV0X2xuYW9mIChzdHJ1Y3QgaW5fYWRkciBfX2luKSBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gc3RydWN0IGlu
X2FkZHIgaW5ldF9tYWtlYWRkciAoaW5fYWRkcl90IF9fbmV0LCBpbl9hZGRyX3QgX19ob3N0KQo+
PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+
IGV4dGVybiBpbl9hZGRyX3QgaW5ldF9uZXRvZiAoc3RydWN0IGluX2FkZHIgX19pbikgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4KPj4KPj4gZXh0ZXJuIGlu
X2FkZHJfdCBpbmV0X25ldHdvcmsgKGNvbnN0IGNoYXIgKl9fY3ApIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBjaGFyICppbmV0X250
b2EgKHN0cnVjdCBpbl9hZGRyIF9faW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgaW5ldF9wdG9uIChpbnQgX19hZiwg
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2NwLAo+PiAgICAgICAgIHZvaWQgKl9fcmVzdHJpY3Qg
X19idWYpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+
Cj4+Cj4+IGV4dGVybiBjb25zdCBjaGFyICppbmV0X250b3AgKGludCBfX2FmLCBjb25zdCB2b2lk
ICpfX3Jlc3RyaWN0IF9fY3AsCj4+ICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNv
Y2tsZW5fdCBfX2xlbikKPj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+PiBleHRlcm4gaW50IGluZXRfYXRvbiAoY29uc3Qg
Y2hhciAqX19jcCwgc3RydWN0IGluX2FkZHIgKl9faW5wKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gY2hhciAqaW5ldF9uZXRhIChp
bl9hZGRyX3QgX19uZXQsIGNoYXIgKl9fYnVmLCBzaXplX3QgX19sZW4pIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBjaGFyICpp
bmV0X25ldF9udG9wIChpbnQgX19hZiwgY29uc3Qgdm9pZCAqX19jcCwgaW50IF9fYml0cywKPj4g
ICAgICAgIGNoYXIgKl9fYnVmLCBzaXplX3QgX19sZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSk7Cj4+Cj4+Cj4+Cj4+Cj4+IGV4dGVybiBpbnQgaW5ldF9uZXRfcHRv
biAoaW50IF9fYWYsIGNvbnN0IGNoYXIgKl9fY3AsCj4+ICAgICAgdm9pZCAqX19idWYsIHNpemVf
dCBfX2xlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPj4KPj4K
Pj4KPj4KPj4gZXh0ZXJuIHVuc2lnbmVkIGludCBpbmV0X25zYXBfYWRkciAoY29uc3QgY2hhciAq
X19jcCwKPj4gICAgICAgICB1bnNpZ25lZCBjaGFyICpfX2J1ZiwgaW50IF9fbGVuKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+Pgo+Pgo+Pgo+PiBleHRlcm4gY2hh
ciAqaW5ldF9uc2FwX250b2EgKGludCBfX2xlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqX19jcCwK
Pj4gICAgICAgICBjaGFyICpfX2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKTsKPj4KPj4KPj4KPj4gIyA4MyAibWFjaGluZS5jIiAyCj4+ICMgMTM1ICJtYWNoaW5l
LmMiCj4+Cj4+ICMgMTM1ICJtYWNoaW5lLmMiCj4+IHN0YXRpYyBQbExvbmcgc3RhcnRfdXNlcl90
aW1lID0gMDsKPj4gc3RhdGljIFBsTG9uZyBzdGFydF9zeXN0ZW1fdGltZSA9IDA7Cj4+IHN0YXRp
YyBQbExvbmcgc3RhcnRfcmVhbF90aW1lID0gMDsKPj4KPj4gc3RhdGljIGludCBjdXJfc2VlZCA9
IDE7Cj4+ICMgMTUwICJtYWNoaW5lLmMiCj4+IHN0YXRpYyBjaGFyICpIb3N0X05hbWVfRnJvbV9B
bGlhcyhzdHJ1Y3QgaG9zdGVudCAqaG9zdF9lbnRyeSk7Cj4+ICMgMTY3ICJtYWNoaW5lLmMiCj4+
IHZvaWQKPj4gUGxfSW5pdF9NYWNoaW5lKHZvaWQpCj4+IHsKPj4gICB0enNldCgpOwo+Pgo+PiAg
IHN0YXJ0X3VzZXJfdGltZSA9IFBsX01fVXNlcl9UaW1lKCk7Cj4+ICAgc3RhcnRfc3lzdGVtX3Rp
bWUgPSBQbF9NX1N5c3RlbV9UaW1lKCk7Cj4+ICAgc3RhcnRfcmVhbF90aW1lID0gUGxfTV9SZWFs
X1RpbWUoKTsKPj4KPj4KPj4gICBtYWxsb3B0KAo+PiAjIDE3NyAibWFjaGluZS5jIiAzIDQKPj4g
ICAgICAgICAgLTQKPj4gIyAxNzcgIm1hY2hpbmUuYyIKPj4gICAgICAgICAgICAgICAgICAgICwg
MCk7Cj4+Cj4+Cj4+ICAgUGxfSW5pdF9NYWNoaW5lMSgpOwo+PiB9Cj4+ICMgMTkwICJtYWNoaW5l
LmMiCj4+IGNoYXIgKgo+PiBQbF9NX1N5c19FcnJfU3RyaW5nKGludCByZXRfdmFsKQo+PiB7Cj4+
Cj4+Cj4+Cj4+Cj4+Cj4+ICAgY2hhciAqc3RyOwo+PiAgIHN0YXRpYyBjaGFyIGJ1ZmZbNjRdOwo+
PiAjIDIyNiAibWFjaGluZS5jIgo+PiAgIHN0ciA9IHN0cmVycm9yKAo+PiAjIDIyNiAibWFjaGlu
ZS5jIiAzIDQKPj4gICAgICAgICAgICAgICAgICgqX19lcnJub19sb2NhdGlvbiAoKSkKPj4gIyAy
MjYgIm1hY2hpbmUuYyIKPj4gICAgICAgICAgICAgICAgICAgICAgKTsKPj4KPj4KPj4gICBpZiAo
c3RyKQo+PiAgICAgcmV0dXJuIHN0cjsKPj4KPj4gICBzcHJpbnRmKGJ1ZmYsICJVbmtub3duIGVy
cm9yICglZCkiLCAKPj4gIyAyMzIgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKl9fZXJybm9fbG9jYXRpb24gKCkpCj4+ICMgMjMyICJtYWNoaW5l
LmMiCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Cj4+ICAgcmV0
dXJuIGJ1ZmY7Cj4+IH0KPj4gIyAyNDQgIm1hY2hpbmUuYyIKPj4gUGxMb25nCj4+IFBsX01fVXNl
cl9UaW1lKHZvaWQpCj4+IHsKPj4gICBQbExvbmcgdXNlcl90aW1lOwo+Pgo+Pgo+PiAgIHN0cnVj
dCBydXNhZ2UgcnNyX3VzYWdlOwo+Pgo+PiAgIGdldHJ1c2FnZSgKPj4gIyAyNTIgIm1hY2hpbmUu
YyIgMyA0Cj4+ICAgICAgICAgICAgUlVTQUdFX1NFTEYKPj4gIyAyNTIgIm1hY2hpbmUuYyIKPj4g
ICAgICAgICAgICAgICAgICAgICAgICwgJnJzcl91c2FnZSk7Cj4+Cj4+ICAgdXNlcl90aW1lID0g
KHJzcl91c2FnZS5ydV91dGltZS50dl9zZWMgKiAxMDAwKSArCj4+ICAgICAocnNyX3VzYWdlLnJ1
X3V0aW1lLnR2X3VzZWMgLyAxMDAwKTsKPj4gIyAyNzUgIm1hY2hpbmUuYyIKPj4gICByZXR1cm4g
dXNlcl90aW1lIC0gc3RhcnRfdXNlcl90aW1lOwo+PiB9Cj4+ICMgMjg2ICJtYWNoaW5lLmMiCj4+
IFBsTG9uZwo+PiBQbF9NX1N5c3RlbV9UaW1lKHZvaWQpCj4+IHsKPj4gICBQbExvbmcgc3lzdGVt
X3RpbWU7Cj4+Cj4+Cj4+ICAgc3RydWN0IHJ1c2FnZSByc3JfdXNhZ2U7Cj4+Cj4+ICAgZ2V0cnVz
YWdlKAo+PiAjIDI5NCAibWFjaGluZS5jIiAzIDQKPj4gICAgICAgICAgICBSVVNBR0VfU0VMRgo+
PiAjIDI5NCAibWFjaGluZS5jIgo+PiAgICAgICAgICAgICAgICAgICAgICAgLCAmcnNyX3VzYWdl
KTsKPj4KPj4gICBzeXN0ZW1fdGltZSA9IChyc3JfdXNhZ2UucnVfc3RpbWUudHZfc2VjICogMTAw
MCkgKwo+PiAgICAgKHJzcl91c2FnZS5ydV9zdGltZS50dl91c2VjIC8gMTAwMCk7Cj4+ICMgMzE3
ICJtYWNoaW5lLmMiCj4+ICAgcmV0dXJuIHN5c3RlbV90aW1lIC0gc3RhcnRfc3lzdGVtX3RpbWU7
Cj4+IH0KPj4gIyAzMjggIm1hY2hpbmUuYyIKPj4gUGxMb25nCj4+IFBsX01fUmVhbF9UaW1lKHZv
aWQpCj4+IHsKPj4gICBQbExvbmcgcmVhbF90aW1lOwo+Pgo+Pgo+PiAgIHN0cnVjdCB0aW1ldmFs
IHR2Owo+Pgo+PiAgIGdldHRpbWVvZmRheSgmdHYsIAo+PiAjIDMzNiAibWFjaGluZS5jIiAzIDQK
Pj4gICAgICAgICAgICAgICAgICAgICgodm9pZCAqKTApCj4+ICMgMzM2ICJtYWNoaW5lLmMiCj4+
ICAgICAgICAgICAgICAgICAgICAgICAgKTsKPj4gICByZWFsX3RpbWUgPSAodHYudHZfc2VjICog
MTAwMCkgKyAodHYudHZfdXNlYyAvIDEwMDApOwo+PiAjIDM1MCAibWFjaGluZS5jIgo+PiAgIHJl
dHVybiByZWFsX3RpbWUgLSBzdGFydF9yZWFsX3RpbWU7Cj4+IH0KPj4gIyAzNjcgIm1hY2hpbmUu
YyIKPj4gdm9pZAo+PiBQbF9NX1JhbmRvbWl6ZSh2b2lkKQo+PiB7Cj4+ICAgc3RhdGljIGludCBj
b3VudCA9IDA7Cj4+Cj4+Cj4+Cj4+ICAgc3RydWN0IHRpbWV2YWwgdHY7Cj4+ICAgaW50IHNlZWQ7
Cj4+Cj4+ICAgZ2V0dGltZW9mZGF5KCZ0diwgCj4+ICMgMzc3ICJtYWNoaW5lLmMiIDMgNAo+PiAg
ICAgICAgICAgICAgICAgICAgKCh2b2lkICopMCkKPj4gIyAzNzcgIm1hY2hpbmUuYyIKPj4gICAg
ICAgICAgICAgICAgICAgICAgICApOwo+PiAgIHNlZWQgPSAodHYudHZfc2VjICogMTAwMCkgKyAo
dHYudHZfdXNlYyAvIDEwMDApOwo+Pgo+PiAgIGNvdW50ID0gKGNvdW50ICsgcmFuZCgpKSAlIDB4
RkZGRjsKPj4gICBzZWVkID0gc2VlZCBeIChnZXRwaWQoKSA8PCAoc2VlZCAmIDB4RkYpKTsKPj4g
ICBzZWVkICo9IGNvdW50Owo+PiAgIHNlZWQgPSBzZWVkICYgMHhGRkZGRkY7Cj4+Cj4+ICAgUGxf
TV9TZXRfU2VlZChzZWVkKTsKPj4gfQo+PiAjIDM5NSAibWFjaGluZS5jIgo+PiB2b2lkCj4+IFBs
X01fU2V0X1NlZWQoaW50IG4pCj4+IHsKPj4gICBjdXJfc2VlZCA9IG47Cj4+ICAgc3JhbmQoY3Vy
X3NlZWQpOwo+PiB9Cj4+ICMgNDA5ICJtYWNoaW5lLmMiCj4+IGludAo+PiBQbF9NX0dldF9TZWVk
KHZvaWQpCj4+IHsKPj4gICByZXR1cm4gY3VyX3NlZWQ7Cj4+IH0KPj4gIyA0MjMgIm1hY2hpbmUu
YyIKPj4gaW50Cj4+IFBsX01fUmFuZG9tX0ludGVnZXIoaW50IG4pCj4+IHsKPj4gICByZXR1cm4g
KGludCkgKChkb3VibGUpIG4gKiByYW5kKCkgLyAoCj4+ICMgNDI2ICJtYWNoaW5lLmMiIDMgNAo+
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIxNDc0ODM2NDcgCj4+ICMg
NDI2ICJtYWNoaW5lLmMiCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKyAxLjApKTsKPj4gfQo+PiAjIDQzNyAibWFjaGluZS5jIgo+PiBkb3VibGUKPj4g
UGxfTV9SYW5kb21fRmxvYXQoZG91YmxlIG4pCj4+IHsKPj4gICByZXR1cm4gbiAqIHJhbmQoKSAv
ICgKPj4gIyA0NDAgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICAgICAgICAgICAgICAgICAyMTQ3
NDgzNjQ3IAo+PiAjIDQ0MCAibWFjaGluZS5jIgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKyAxLjApOwo+PiB9Cj4+ICMgNDUxICJtYWNoaW5lLmMiCj4+IGNoYXIgKgo+PiBQbF9N
X0hvc3RfTmFtZV9Gcm9tX05hbWUoY2hhciAqaG9zdF9uYW1lKQo+PiB7Cj4+ICAgc3RhdGljIGNo
YXIgYnVmZls0MDk2XTsKPj4KPj4KPj4gICBzdHJ1Y3QgaG9zdGVudCAqaG9zdF9lbnRyeTsKPj4K
Pj4KPj4gICBpZiAoaG9zdF9uYW1lID09IAo+PiAjIDQ2MCAibWFjaGluZS5jIiAzIDQKPj4gICAg
ICAgICAgICAgICAgICAgKCh2b2lkICopMCkKPj4gIyA0NjAgIm1hY2hpbmUuYyIKPj4gICAgICAg
ICAgICAgICAgICAgICAgICkKPj4gICAgIHsKPj4gICAgICAgUGxMb25nIGxlbmd0aCA9IHNpemVv
ZihidWZmKTsKPj4gICAgICAgaG9zdF9uYW1lID0gYnVmZjsKPj4KPj4KPj4KPj4gICAgICAgaWYg
KGdldGhvc3RuYW1lKGJ1ZmYsIGxlbmd0aCkpCj4+Cj4+ICAgICAgICAgewo+PiAgICAgICAgICAg
c3RyY3B5KGJ1ZmYsICJ1bmtub3duIGhvc3QgbmFtZSIpOwo+PiAgICAgICAgICAgZ290byBmaW5p
c2g7Cj4+ICAgICAgICAgfQo+PiAgICAgfQo+Pgo+PiAgIGlmIChzdHJjaHIoaG9zdF9uYW1lLCAn
LicpICE9IAo+PiAjIDQ3NSAibWFjaGluZS5jIiAzIDQKPj4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgodm9pZCAqKTApCj4+ICMgNDc1ICJtYWNoaW5lLmMiCj4+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKQo+PiAgICAgZ290byBmaW5pc2g7Cj4+Cj4+Cj4+Cj4+
ICAgaG9zdF9lbnRyeSA9IGdldGhvc3RieW5hbWUoaG9zdF9uYW1lKTsKPj4gICBpZiAoaG9zdF9l
bnRyeSA9PSAKPj4gIyA0ODEgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICAgICAgICAgICAgICAo
KHZvaWQgKikwKQo+PiAjIDQ4MSAibWFjaGluZS5jIgo+PiAgICAgICAgICAgICAgICAgICAgICAg
ICkKPj4gICAgIGdvdG8gZmluaXNoOwo+Pgo+PiAgIGhvc3RfbmFtZSA9IEhvc3RfTmFtZV9Gcm9t
X0FsaWFzKGhvc3RfZW50cnkpOwo+Pgo+Pgo+Pgo+PiBmaW5pc2g6Cj4+ICAgcmV0dXJuIGhvc3Rf
bmFtZTsKPj4gfQo+PiAjIDQ5OSAibWFjaGluZS5jIgo+PiBjaGFyICoKPj4gUGxfTV9Ib3N0X05h
bWVfRnJvbV9BZHIoY2hhciAqaG9zdF9hZGRyZXNzKQo+PiB7Cj4+Cj4+ICAgc3RydWN0IGhvc3Rl
bnQgKmhvc3RfZW50cnk7Cj4+ICAgc3RydWN0IGluX2FkZHIgaWFkcjsKPj4KPj4KPj4KPj4KPj4K
Pj4KPj4gICBpZiAoaW5ldF9hdG9uKGhvc3RfYWRkcmVzcywgJmlhZHIpID09IDApCj4+Cj4+ICAg
ICByZXR1cm4gMDsKPj4KPj4gICBob3N0X2VudHJ5ID0gZ2V0aG9zdGJ5YWRkcigoY2hhciAqKSAm
aWFkciwgc2l6ZW9mKGlhZHIpLCAKPj4gIyA1MTUgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyCj4+ICMg
NTE1ICJtYWNoaW5lLmMiCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKPj4gICBpZiAoaG9zdF9lbnRyeSA9PSAKPj4g
IyA1MTYgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+
PiAjIDUxNiAibWFjaGluZS5jIgo+PiAgICAgICAgICAgICAgICAgICAgICAgICkKPj4gICAgIHJl
dHVybiAKPj4gIyA1MTcgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICAgICAoKHZvaWQgKikwKQo+
PiAjIDUxNyAibWFjaGluZS5jIgo+PiAgICAgICAgICAgICAgIDsKPj4KPj4gICByZXR1cm4gSG9z
dF9OYW1lX0Zyb21fQWxpYXMoaG9zdF9lbnRyeSk7Cj4+Cj4+Cj4+Cj4+IH0KPj4gIyA1MzQgIm1h
Y2hpbmUuYyIKPj4gc3RhdGljIGNoYXIgKgo+PiBIb3N0X05hbWVfRnJvbV9BbGlhcyhzdHJ1Y3Qg
aG9zdGVudCAqaG9zdF9lbnRyeSkKPj4gewo+PiAgIGNoYXIgKm5hbWU7Cj4+ICAgY2hhciAqKmFs
aWFzOwo+PiAgIGNoYXIgKnA7Cj4+Cj4+ICAgbmFtZSA9IChjaGFyICopIGhvc3RfZW50cnktPmhf
bmFtZTsKPj4gICBhbGlhcyA9IGhvc3RfZW50cnktPmhfYWxpYXNlczsKPj4gICB3aGlsZSAoKHAg
PSBzdHJjaHIobmFtZSwgJy4nKSkgPT0gCj4+ICMgNTQzICJtYWNoaW5lLmMiIDMgNAo+PiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodm9pZCAqKTApIAo+PiAjIDU0MyAibWFj
aGluZS5jIgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKmFs
aWFzKQo+PiAgICAgbmFtZSA9ICphbGlhcysrOwo+Pgo+PiAgIGlmIChwKQo+PiAgICAgcmV0dXJu
IG5hbWU7Cj4+Cj4+ICAgcmV0dXJuIChjaGFyICopIGhvc3RfZW50cnktPmhfbmFtZTsKPj4gfQo+
PiAjIDU2MSAibWFjaGluZS5jIgo+PiBCb29sCj4+IFBsX01fU2V0X1dvcmtpbmdfRGlyKGNoYXIg
KnBhdGgpCj4+IHsKPj4gICBjaGFyICpuZXdfcGF0aCA9IFBsX01fQWJzb2x1dGVfUGF0aF9OYW1l
KHBhdGgpOwo+Pgo+PiAgIHJldHVybiAobmV3X3BhdGggIT0gCj4+ICMgNTY2ICJtYWNoaW5lLmMi
IDMgNAo+PiAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKSAKPj4gIyA1NjYgIm1hY2hp
bmUuYyIKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBjaGRpcihuZXdfcGF0aCkgPT0g
MCk7Cj4+IH0KPj4gIyA1NzYgIm1hY2hpbmUuYyIKPj4gY2hhciAqCj4+IFBsX01fR2V0X1dvcmtp
bmdfRGlyKHZvaWQpCj4+IHsKPj4gICBzdGF0aWMgY2hhciBjdXJfd29ya19kaXJbCj4+ICMgNTc5
ICJtYWNoaW5lLmMiIDMgNAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgIDQwOTYKPj4gIyA1
NzkgIm1hY2hpbmUuYyIKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTsK
Pj4KPj4gICBpZiAoZ2V0Y3dkKGN1cl93b3JrX2Rpciwgc2l6ZW9mKGN1cl93b3JrX2RpcikgLSAx
KSA9PSAKPj4gIyA1ODEgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+PiAjIDU4MSAibWFj
aGluZS5jIgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICkKPj4gICAgIHN0cmNweShjdXJfd29ya19kaXIsICIuIik7Cj4+ICAgcmV0
dXJuIGN1cl93b3JrX2RpcjsKPj4gfQo+PiAjIDU5NCAibWFjaGluZS5jIgo+PiBjaGFyICoKPj4g
UGxfTV9BYnNvbHV0ZV9QYXRoX05hbWUoY2hhciAqc3JjKQo+PiB7Cj4+ICAgc3RhdGljIGNoYXIg
YnVmZlsyXVsKPj4gIyA1OTcgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICAgICAgICAgICAgICAg
IDQwOTYKPj4gIyA1OTcgIm1hY2hpbmUuYyIKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF07Cj4+ICAgaW50IHJlcyA9IDA7Cj4+ICAgY2hhciAqZHN0Owo+PiAgIGNoYXIgKnAsICpx
Owo+PiAgIGNoYXIgYzsKPj4KPj4gICBkc3QgPSBidWZmW3Jlc107Cj4+ICAgd2hpbGUgKCgqZHN0
KysgPSAqc3JjKSkKPj4gICAgIHsKPj4gICAgICAgYyA9ICpzcmMrKzsKPj4gICAgICAgaWYgKGMg
PT0gJyQnCj4+Cj4+Cj4+Cj4+ICAgICAgICAgKQo+PiAgICAgICAgIHsKPj4gICAgICAgICAgIHAg
PSBkc3Q7Cj4+ICAgICAgICAgICB3aGlsZSAoCj4+ICMgNjE0ICJtYWNoaW5lLmMiIDMgNAo+PiAg
ICAgICAgICAgICAgICAgKCgqX19jdHlwZV9iX2xvYyAoKSlbKGludCkgKCgKPj4gIyA2MTQgIm1h
Y2hpbmUuYyIKPj4gICAgICAgICAgICAgICAgICpzcmMKPj4gIyA2MTQgIm1hY2hpbmUuYyIgMyA0
Cj4+ICAgICAgICAgICAgICAgICApKV0gJiAodW5zaWduZWQgc2hvcnQgaW50KSBfSVNhbG51bSkg
Cj4+ICMgNjE0ICJtYWNoaW5lLmMiCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8
ICpzcmMgPT0gJ18nKQo+PiAgICAgICAgICAgICAqZHN0KysgPSAqc3JjKys7Cj4+Cj4+Cj4+Cj4+
Cj4+ICAgICAgICAgICAqZHN0ID0gJ1wwJzsKPj4gICAgICAgICAgIHEgPSBnZXRlbnYocCk7Cj4+
ICAgICAgICAgICBpZiAocSkKPj4gICAgICAgICAgICAgewo+PiAgICAgICAgICAgICAgIHAtLTsK
Pj4gICAgICAgICAgICAgICBzdHJjcHkocCwgcSk7Cj4+ICAgICAgICAgICAgICAgZHN0ID0gcCAr
IHN0cmxlbihwKTsKPj4KPj4KPj4KPj4KPj4gICAgICAgICAgICAgfQo+Pgo+Pgo+Pgo+Pgo+PiAg
ICAgICAgIH0KPj4gICAgIH0KPj4gICAqZHN0ID0gJ1wwJzsKPj4KPj4gICBpZiAoYnVmZltyZXNd
WzBdID09ICd+JykKPj4gICAgIHsKPj4gICAgICAgaWYgKCgoYnVmZltyZXNdWzFdKSA9PSAnLycg
fHwgKGJ1ZmZbcmVzXVsxXSkgPT0gJy8nKSB8fCBidWZmW3Jlc11bMV0gPT0gJ1wwJykKPj4gICAg
ICAgICB7Cj4+ICAgIHEgPSAKPj4gIyA2NDQgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICgodm9p
ZCAqKTApCj4+ICMgNjQ0ICJtYWNoaW5lLmMiCj4+ICAgICAgICAgICA7Owo+PiAgICAgICAgICAg
aWYgKChwID0gZ2V0ZW52KCJIT01FIikpID09IAo+PiAjIDY0NSAibWFjaGluZS5jIiAzIDQKPj4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodm9pZCAqKTApCj4+ICMgNjQ1
ICJtYWNoaW5lLmMiCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KQo+PiAgICAgIHsKPj4KPj4KPj4KPj4KPj4KPj4gICAgICAgIHJldHVybiAKPj4gIyA2NTIgIm1h
Y2hpbmUuYyIgMyA0Cj4+ICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+PiAjIDY1MiAibWFjaGlu
ZS5jIgo+PiAgICAgICAgICAgICAgICAgIDsKPj4KPj4gICAgICB9Cj4+ICAgIGlmIChxID09IAo+
PiAjIDY1NSAibWFjaGluZS5jIiAzIDQKPj4gICAgICAgICAgICAoKHZvaWQgKikwKQo+PiAjIDY1
NSAibWFjaGluZS5jIgo+PiAgICAgICAgICAgICAgICApCj4+ICAgICAgcSA9ICIiOwo+PiAgICAg
ICAgICAgc3ByaW50ZihidWZmWzEgLSByZXNdLCAiJXMlcy8lcyIsIHEsIHAsIGJ1ZmZbcmVzXSAr
IDEpOwo+PiAgICAgICAgICAgcmVzID0gMSAtIHJlczsKPj4gICAgICAgICB9Cj4+Cj4+ICAgICAg
IGVsc2UKPj4gICAgICAgICB7Cj4+ICAgICAgICAgICBzdHJ1Y3QgcGFzc3dkICpwdzsKPj4KPj4g
ICAgICAgICAgIHAgPSBidWZmW3Jlc10gKyAxOwo+PiAgICAgICAgICAgd2hpbGUgKCpwICYmICEo
KCpwKSA9PSAnLycgfHwgKCpwKSA9PSAnLycpKQo+PiAgICAgICAgICAgICBwKys7Cj4+Cj4+ICAg
ICAgICAgICBidWZmW3Jlc11bMF0gPSAqcDsKPj4gICAgICAgICAgICpwID0gJ1wwJzsKPj4gICAg
ICAgICAgIGlmICgocHcgPSBnZXRwd25hbShidWZmW3Jlc10gKyAxKSkgPT0gCj4+ICMgNjcxICJt
YWNoaW5lLmMiIDMgNAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgodm9pZCAqKTApCj4+ICMgNjcxICJtYWNoaW5lLmMiCj4+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKPj4gICAgICAgICAgICAgcmV0
dXJuIAo+PiAjIDY3MiAibWFjaGluZS5jIiAzIDQKPj4gICAgICAgICAgICAgICAgICAgKCh2b2lk
ICopMCkKPj4gIyA2NzIgIm1hY2hpbmUuYyIKPj4gICAgICAgICAgICAgICAgICAgICAgIDsKPj4K
Pj4gICAgICAgICAgICpwID0gYnVmZltyZXNdWzBdOwo+Pgo+PiAgICAgICAgICAgc3ByaW50Zihi
dWZmWzEgLSByZXNdLCAiJXMvJXMiLCBwdy0+cHdfZGlyLCBwKTsKPj4gICAgICAgICAgIHJlcyA9
IDEgLSByZXM7Cj4+ICAgICAgICAgfQo+Pgo+PiAgICAgfQo+Pgo+PiAgIGlmIChzdHJjbXAoYnVm
ZltyZXNdLCAidXNlciIpID09IDApCj4+ICAgICByZXR1cm4gYnVmZltyZXNdOwo+PiAjIDcwNiAi
bWFjaGluZS5jIgo+PiAgIGlmIChidWZmW3Jlc11bMF0gIT0gJy8nKQo+PiAgICAgewo+PiAgICAg
ICBzcHJpbnRmKGJ1ZmZbMSAtIHJlc10sICIlcy8lcyIsIFBsX01fR2V0X1dvcmtpbmdfRGlyKCks
IGJ1ZmZbcmVzXSk7Cj4+ICAgICAgIHJlcyA9IDEgLSByZXM7Cj4+ICAgICB9Cj4+Cj4+ICAgc3Jj
ID0gYnVmZltyZXNdOwo+PiAgIHJlcyA9IDEgLSByZXM7Cj4+ICAgZHN0ID0gYnVmZltyZXNdOwo+
Pgo+PiAgIHdoaWxlICgoKmRzdCsrID0gKnNyYykpCj4+ICAgICB7Cj4+ICAgICAgIGlmICgqc3Jj
KysgIT0gJy8nKQo+PiAgICAgICAgIGNvbnRpbnVlOwo+Pgo+PiAgICAgY29sbGFwc2U6Cj4+ICAg
ICAgIHdoaWxlICgqc3JjID09ICcvJykKPj4gICAgICAgICBzcmMrKzsKPj4KPj4gICAgICAgaWYg
KCpzcmMgIT0gJy4nKQo+PiAgICAgICAgIGNvbnRpbnVlOwo+Pgo+PiAgICAgICBpZiAoc3JjWzFd
ID09ICcvJyB8fCBzcmNbMV0gPT0gJ1wwJykKPj4gICAgICAgICB7Cj4+ICAgICAgICAgICBzcmMr
KzsKPj4gICAgICAgICAgIGdvdG8gY29sbGFwc2U7Cj4+ICAgICAgICAgfQo+Pgo+PiAgICAgICBp
ZiAoc3JjWzFdICE9ICcuJyB8fCAoc3JjWzJdICE9ICcvJyAmJiBzcmNbMl0gIT0gJ1wwJykpCj4+
ICAgICAgICAgY29udGludWU7Cj4+Cj4+ICAgICAgIHNyYyArPSAyOwo+PiAgICAgICBwID0gZHN0
IC0gMjsKPj4gICAgICAgd2hpbGUgKHAgPj0gYnVmZltyZXNdICYmICpwICE9ICcvJykKPj4gICAg
ICAgICBwLS07Cj4+Cj4+ICAgICAgIGlmIChwIDwgYnVmZltyZXNdKQo+PiAgICAgICAgIHJldHVy
biAKPj4gIyA3NDMgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICAgICAgICAgKCh2b2lkICopMCkK
Pj4gIyA3NDMgIm1hY2hpbmUuYyIKPj4gICAgICAgICAgICAgICAgICAgOwo+Pgo+PiAgICAgICBk
c3QgPSBwOwo+PiAgICAgfQo+Pgo+PiAgIGRzdC0tOwo+PiAjIDc1OSAibWFjaGluZS5jIgo+PiAg
IGlmIChkc3QgLSBidWZmW3Jlc10gPiAxICYmICgoZHN0Wy0xXSkgPT0gJy8nIHx8IChkc3RbLTFd
KSA9PSAnLycpKQo+PiAgICAgZHN0Wy0xXSA9ICdcMCc7Cj4+Cj4+ICAgcmV0dXJuIGJ1ZmZbcmVz
XTsKPj4gfQo+PiAjIDc3MyAibWFjaGluZS5jIgo+PiBCb29sCj4+IFBsX01fSXNfQWJzb2x1dGVf
RmlsZV9OYW1lKGNoYXIgKnBhdGgpCj4+IHsKPj4gICBpZiAoKCgqcGF0aCkgPT0gJy8nIHx8ICgq
cGF0aCkgPT0gJy8nKSkKPj4gICAgIHJldHVybiAxOwo+PiAjIDc5NSAibWFjaGluZS5jIgo+PiAg
IHJldHVybiAwOwo+PiB9Cj4+ICMgODI5ICJtYWNoaW5lLmMiCj4+IGNoYXIgKgo+PiBQbF9NX0Rl
Y29tcG9zZV9GaWxlX05hbWUoY2hhciAqcGF0aCwgQm9vbCBkZWxfdHJhaWxfc2xhc2hlcywgY2hh
ciAqKmJhc2UsIGNoYXIgKipzdWZmaXgpCj4+IHsKPj4gICBzdGF0aWMgY2hhciBidWZmX2RpclsK
Pj4gIyA4MzIgIm1hY2hpbmUuYyIgMyA0Cj4+ICAgICAgICAgICAgICAgICAgICAgICA0MDk2Cj4+
ICMgODMyICJtYWNoaW5lLmMiCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTsK
Pj4gICBzdGF0aWMgY2hhciBidWZmX2Jhc2VbCj4+ICMgODMzICJtYWNoaW5lLmMiIDMgNAo+PiAg
ICAgICAgICAgICAgICAgICAgICAgIDQwOTYKPj4gIyA4MzMgIm1hY2hpbmUuYyIKPj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXTsKPj4gICBpbnQgZGlyX3N0YXJ0X3BvcyA9IDA7
Cj4+ICMgODUyICJtYWNoaW5lLmMiCj4+ICAgY2hhciAqcDsKPj4KPj4gICBzdHJjcHkoYnVmZl9k
aXIsIHBhdGgpOwo+Pgo+Pgo+Pgo+Pgo+Pgo+PiAgIGRvIHsgY2hhciAqX3B0cjsgZm9yKChwKSA9
IAo+PiAjIDg2MCAibWFjaGluZS5jIiAzIDQKPj4gICgodm9pZCAqKTApCj4+ICMgODYwICJtYWNo
aW5lLmMiCj4+ICAsIF9wdHIgPSAoYnVmZl9kaXIpOyAqX3B0cjsgX3B0cisrKSBpZiAoKCgqX3B0
cikgPT0gJy8nIHx8ICgqX3B0cikgPT0gJy8nKSkgKHApID0gX3B0cjsgfSB3aGlsZSgwKTsKPj4K
Pj4gICBwID0gKHAgPT0gCj4+ICMgODYyICJtYWNoaW5lLmMiIDMgNAo+PiAgICAgICAgICAgICgo
dm9pZCAqKTApCj4+ICMgODYyICJtYWNoaW5lLmMiCj4+ICAgICAgICAgICAgICAgICkgPyBidWZm
X2RpciArIGRpcl9zdGFydF9wb3MgOiBwICsgMTsKPj4KPj4gICBzdHJjcHkoYnVmZl9iYXNlLCBw
KTsKPj4gICAqcCA9ICdcMCc7Cj4+Cj4+ICAgaWYgKChwID0gc3RycmNocihidWZmX2Jhc2UsICcu
JykpICE9IAo+PiAjIDg2NyAibWFjaGluZS5jIiAzIDQKPj4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+PiAjIDg2NyAibWFjaGluZS5jIgo+PiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCj4+ICAgICAqc3VmZml4ID0g
cDsKPj4gICBlbHNlCj4+ICAgICAqc3VmZml4ID0gYnVmZl9iYXNlICsgc3RybGVuKGJ1ZmZfYmFz
ZSk7Cj4+Cj4+Cj4+Cj4+ICAgaWYgKGRlbF90cmFpbF9zbGFzaGVzKQo+PiAgICAgewo+PiAgICAg
ICBpZiAoYnVmZl9kaXJbZGlyX3N0YXJ0X3Bvc10gPT0gJ1wwJykKPj4gIHN0cmNhdChidWZmX2Rp
ciwgIi4iKTsKPj4gICAgICAgZWxzZQo+PiAgewo+PiAgICBpbnQgbGVuID0gc3RybGVuKGJ1ZmZf
ZGlyKTsKPj4gICAgd2hpbGUoLS1sZW4gPj0gZGlyX3N0YXJ0X3BvcyAmJiAoKGJ1ZmZfZGlyW2xl
bl0pID09ICcvJyB8fCAoYnVmZl9kaXJbbGVuXSkgPT0gJy8nKSkKPj4gICAgICA7Cj4+Cj4+ICAg
IGlmIChsZW4gPCBkaXJfc3RhcnRfcG9zKQo+PiAgICAgIGxlbiA9IGRpcl9zdGFydF9wb3M7Cj4+
ICAgIGJ1ZmZfZGlyW2xlbiArIDFdID0gJ1wwJzsKPj4gIH0KPj4gICAgIH0KPj4KPj4KPj4KPj4K
Pj4KPj4KPj4gICAqYmFzZSA9IGJ1ZmZfYmFzZTsKPj4KPj4gICByZXR1cm4gYnVmZl9kaXI7Cj4+
IH0KPiAKPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
Pj4gQnVnLXByb2xvZyBtYWlsaW5nIGxpc3QKPj4gQnVnLXByb2xvZ0BnbnUub3JnCj4+IGh0dHBz
Oi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2J1Zy1wcm9sb2cKPiAKPiAKCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpCdWctcHJvbG9nIG1h
aWxpbmcgbGlzdApCdWctcHJvbG9nQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxt
YW4vbGlzdGluZm8vYnVnLXByb2xvZwo=