[Adduser-devel] LDAP patch

Matthew Palmer mjp16@ieee.uow.edu.au
Sun, 22 Jun 2003 14:20:12 +1000 (EST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---1463811244-22050210-1056255612=:4919
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Sat, 21 Jun 2003, Roland Bauerschmidt wrote:

> it would be great if you could apply your LDAP patch to the
> branches/adduser-ldap tree in the SVN repository. If you want, you can
> also send me your LDAP patch so that I can apply it.

I've attached it to this message.  I just don't have time to apply the patch
at the moment - waaay too much study to be done.

I'll be available for bug fixing in a week's time, though.

- Matt

---1463811244-22050210-1056255612=:4919
Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; name="adduser-ldap.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.10306221420120.4919@magnetron.ieee.uow.edu.au>
Content-Description: 
Content-Disposition: attachment; filename="adduser-ldap.patch"

ZGlmZiAtdXJOIGFkZHVzZXItMy41MC9BZGR1c2VyQ29tbW9uLnBtIGFkZHVz
ZXItMy41MC5tcGFsbWVyL0FkZHVzZXJDb21tb24ucG0NCi0tLSBhZGR1c2Vy
LTMuNTAvQWRkdXNlckNvbW1vbi5wbQlTYXQgQXVnIDMxIDA1OjQyOjEzIDIw
MDINCisrKyBhZGR1c2VyLTMuNTAubXBhbG1lci9BZGR1c2VyQ29tbW9uLnBt
CVNhdCBNYXkgIDMgMDk6NTQ6NTUgMjAwMw0KQEAgLTg0LDcgKzg0LDcgQEAN
CiAJY2hvbXA7DQogCW5leHQgaWYgL14jLyB8fCAvXlxzKiQvOw0KIA0KLQlp
ZiAoKCgkdmFyLCAkdmFsKSA9IC9eXHMqKFxTKylccyo9XHMqKC4qKS8pICE9
IDIpIHsNCisJaWYgKCgoJHZhciwgJHZhbCkgPSAvXlxzKihbYS16QS1aMC05
X10rKVxzKj1ccyooLiopLykgIT0gMikgew0KIAkgICAgd2FybmYoXygiQ291
bGRuJ3QgcGFyc2UgJXM6JXMuXG4iKSwkY29uZl9maWxlLCQuKTsNCiAJICAg
IG5leHQ7DQogCX0NCmRpZmYgLXVyTiBhZGR1c2VyLTMuNTAvQWRkdXNlckZp
bGUucG0gYWRkdXNlci0zLjUwLm1wYWxtZXIvQWRkdXNlckZpbGUucG0NCi0t
LSBhZGR1c2VyLTMuNTAvQWRkdXNlckZpbGUucG0JVGh1IEphbiAgMSAxMDow
MDowMCAxOTcwDQorKysgYWRkdXNlci0zLjUwLm1wYWxtZXIvQWRkdXNlckZp
bGUucG0JU2F0IE1heSAgMyAxMDowNTo1NiAyMDAzDQpAQCAtMCwwICsxLDky
IEBADQorIyBGdW5jdGlvbnMgdXNlZCB0byBtYW5pcHVsYXRlIHVzZXIgYW5k
IGdyb3VwIGluZm9ybWF0aW9uIHdpdGggdGhlIHN0YW5kYXJkDQorIyBmaWxl
LWJhc2VkIHRvb2xzICh1c2VyYWRkLCBncm91cGFkZCwgZXQgYWwpDQorIw0K
KyMgQmFzZWQgb24gdGhlIGNvZGUgcHJldmlvdXNseSBpbiBhZGR1c2VyKDgp
LCByaXBwZWQgb3V0IGFuZCBwcm9jZWR1cmlzZWQgYnkNCisjIE1hdHRoZXcg
UGFsbWVyIDxtcGFsbWVyQGRlYmlhbi5vcmc+Lg0KKyMNCisjIENvcHlyaWdo
dCAoQykgMjAwMyBNYXR0aGV3IFBhbG1lciA8bXBhbG1lckBkZWJpYW4ub3Jn
Pg0KKyMgQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk4LCAxOTk5IEd1eSBNYW9y
IDxtYW9yQGRlYmlhbi5vcmc+DQorIyBDb3B5cmlnaHQgKEMpIDE5OTUgVGVk
IEhhamVrIDx0ZWRoYWpla0Bib29tYm94Lm1pY3JvLnVtbi5lZHU+DQorIyAg
ICAgICAgICAgICAgICAgICAgIElhbiBBLiBNdXJkb2NrIDxpbXVyZG9ja0Bn
bnUuYWkubWl0LmVkdT4NCisjIEJ1Z2ZpeGVzIGFuZCBvdGhlciBpbXByb3Zl
bWVudHMgUm9sYW5kIEJhdWVyc2NobWlkdCA8cmJAZGViaWFuLm9yZz4NCisj
IExEQVAgc3VwcG9ydCBwcm9ncmFtbWVkIGJ5IE1hdHRoZXcgUGFsbWVyIDxt
cGFsbWVyQGRlYmlhbi5vcmc+DQorIyBHZW5lcmFsIHNjaGVtZSBvZiB0aGUg
cHJvZ3JhbSBhZGFwdGVkIGJ5IHRoZSBvcmlnaW5hbCBkZWJpYW4gJ2FkZHVz
ZXInDQorIyAgcHJvZ3JhbSBieSBJYW4gQS4gTXVyZG9jayA8aW11cmRvY2tA
Z251LmFpLm1pdC5lZHU+Lg0KKyMNCisjICAgIFRoaXMgcHJvZ3JhbSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig
bW9kaWZ5DQorIyAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyMgICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3INCisjICAgIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uDQorIw0KKyMgICAgVGhpcyBwcm9ncmFtIGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsDQorIyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KKyMgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZQ0KKyMgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4NCisjDQorIyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQ0KKyMgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCisjICAgIEZvdW5kYXRpb24sIElu
Yy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAw
MjExMS0xMzA3ICBVU0ENCisNCitzdWIgYWRkZ3JvdXBfZmlsZQ0KK3sNCisJ
bXkgKCRuYW1lLCRnaWQpID0gQF87DQorCQ0KKwkmc3lzdGVtY2FsbCgnL3Vz
ci9zYmluL2dyb3VwYWRkJywgJy1nJywgJGdpZCwgJG5hbWUpOw0KK30NCisN
CitzdWIgYWRkdXNlcnRvZ3JvdXBfZmlsZQ0KK3sNCisJbXkgKCR1c2VyLCAk
Z3JvdXApID0gQF87DQorCQ0KKwkmc3lzdGVtY2FsbCgnL3Vzci9iaW4vZ3Bh
c3N3ZCcsICctTScsDQorCQkgICAgam9pbignLCcsIGdldF9ncm91cF9tZW1i
ZXJzKCRncm91cCksICR1c2VyKSwNCisJCSAgICAkZ3JvdXApOw0KK30NCisN
CitzdWIgYWRkdXNlcl9maWxlDQorew0KKwlteSAoJG5hbWUsICR1aWQsICRn
aWQsICRob21lLCAkc2hlbGwsICRnZWNvcykgPSBAXzsNCisNCisJJnN5c3Rl
bWNhbGwoJy91c3Ivc2Jpbi91c2VyYWRkJywgJy1kJywgJGhvbWUsICctZycs
ICRnaWQsDQorCQkgICAgJy1zJywgJHNoZWxsLCAnLXUnLCAkdWlkLCAkbmFt
ZSk7DQorCQ0KKwlpZiAoZGVmaW5lZCgkZ2Vjb3MpKSB7DQorCQkmY2hfZ2Vj
b3MoJGdlY29zKTsNCisJfQ0KK30NCisNCitzdWIgZGVsdXNlcl9maWxlDQor
ew0KKwlteSAkdXNlciA9IHNoaWZ0Ow0KKwkNCisJc3lzdGVtY2FsbCgiL3Vz
ci9zYmluL3VzZXJkZWwiLCAkdXNlcik7DQorfQ0KKw0KK3N1YiBkZWxncm91
cF9maWxlDQorew0KKwlteSAkZ3JvdXAgPSBzaGlmdDsNCisJDQorCXN5c3Rl
bWNhbGwoIi91c3Ivc2Jpbi9ncm91cGRlbCIsICRncm91cCk7DQorfQ0KKw0K
K3N1YiBkZWx1c2VyZnJvbWdyb3VwX2ZpbGUNCit7DQorICAgIG15IEBtZW1i
ZXJzID0gZ2V0X2dyb3VwX21lbWJlcnMoJGdyb3VwKTsNCisgICAgbXkgJGlz
bWVtYmVyID0gMDsNCisgICAgICAgIA0KKyAgICBmb3IoJGkgPSAwOyAkaSA8
PSAkI21lbWJlcnM7ICRpKyspIHsNCisgICAgICAgIGlmKCRtZW1iZXJzWyRp
XSBlcSAkdXNlcikgew0KKyAgICAgICAgICAgICRpc21lbWJlciA9IDE7DQor
ICAgICAgICAgICAgc3BsaWNlKEBtZW1iZXJzLCRpLDEpOw0KKyAgICAgICAg
fQ0KKyAgICB9DQorDQorICAgIHVubGVzcygkaXNtZW1iZXIpIHsNCisgICAg
ICAgIGRpZWYoXygiJXMgaXMgbm90IGEgbWVtYmVyIG9mIGdyb3VwICVzLlxu
IiksJHVzZXIsJGdyb3VwKTsNCisgICAgfQ0KKyANCisgICAgI3N5c3RlbWNh
bGwoInVzZXJtb2QiLCItRyIsIGpvaW4oIiwiLEBncm91cHMpLCAkdXNlciAp
Ow0KKyAgICBzeXN0ZW1jYWxsKCcvdXNyL2Jpbi9ncGFzc3dkJywnLU0nLCBq
b2luKCcsJyxAbWVtYmVycyksICRncm91cCk7DQorfQ0KKw0KK3JldHVybiAx
Ow0KZGlmZiAtdXJOIGFkZHVzZXItMy41MC9BZGR1c2VyTERBUC5wbSBhZGR1
c2VyLTMuNTAubXBhbG1lci9BZGR1c2VyTERBUC5wbQ0KLS0tIGFkZHVzZXIt
My41MC9BZGR1c2VyTERBUC5wbQlUaHUgSmFuICAxIDEwOjAwOjAwIDE5NzAN
CisrKyBhZGR1c2VyLTMuNTAubXBhbG1lci9BZGR1c2VyTERBUC5wbQlGcmkg
TWF5IDMwIDE3OjUxOjU2IDIwMDMNCkBAIC0wLDAgKzEsMjA1IEBADQorIyBG
dW5jdGlvbnMgdXNlZCB0byBtYW5pcHVsYXRlIHVzZXIgYW5kIGdyb3VwIGlu
Zm9ybWF0aW9uIHN0b3JlZCBpbiBMREFQLg0KKyMNCisjIENvcHlyaWdodCAo
QykgMjAwMyBNYXR0aGV3IFBhbG1lciA8bXBhbG1lckBkZWJpYW4ub3JnPg0K
KyMNCisjICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQorIyAgICBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyMgICAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3INCisjICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
DQorIw0KKyMgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQorIyAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZg0KKyMgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyMgICAgR05V
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCisj
DQorIyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KKyMgICAgYWxvbmcgd2l0
aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUNCisjICAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj
ZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0ENCisj
DQordXNlIE5ldDo6TERBUDsNCisNCitzdWIgYmluZF9kYg0KK3sNCisJbXkg
JGJpbmRkbiA9ICRjb25maWd7bGRhcF9iaW5kZG59Ow0KKwlteSAkYmluZHB3
ID0gJGNvbmZpZ3tsZGFwX2JpbmRwd307DQorCW15ICRob3N0ID0gJGNvbmZp
Z3tsZGFwX3NlcnZlcn07DQorCW15ICRwb3J0ID0gJGNvbmZpZ3tsZGFwX3Bv
cnR9Ow0KKwkNCisJbXkgJGRzID0gTmV0OjpMREFQLT5uZXcoJGhvc3QsIHBv
cnQgPT4gJHBvcnQpOw0KKwkNCisJbXkgJHJ2Ow0KKwkkcnYgPSAkZHMtPmJp
bmQoJGJpbmRkbiwgcGFzc3dvcmQgPT4gJGJpbmRwdyk7DQorCQ0KKwlpZiAo
JHJ2LT5jb2RlKQ0KKwl7DQorCQlkaWUgIkxEQVAgRmFpbHVyZTogIi4kcnYt
PmVycm9yOw0KKwl9DQorCQ0KKwlyZXR1cm4gJGRzOw0KK30NCisNCitzdWIg
YWRkZ3JvdXBfbGRhcA0KK3sNCisJbXkgKCRuYW1lLCRnaWQpID0gQF87DQor
CW15ICRydjsNCisJCQ0KKwkjIENyZWF0ZSBhIG5ldyBlbnRyeSB1bmRlciBM
REFQX1JETl9HUk9VUFMgb2YgdHlwZSBwb3NpeEdyb3VwDQorCSRkcyA9IGJp
bmRfZGIoKTsNCisJDQorCW15ICRlbnRyeV9kbiA9ICJjbj0kbmFtZSwkY29u
Zmlne2xkYXBfcmRuX2dyb3Vwc30sJGNvbmZpZ3tsZGFwX2Jhc2Vkbn0iOw0K
KwlteSAkYWRkX2RhdGEgPSBbICdvYmplY3RjbGFzcycgPT4gWyAndG9wJywg
J3Bvc2l4R3JvdXAnIF0sDQorCQkJJ2NuJyA9PiAkbmFtZSwNCisJCQknZ2lk
TnVtYmVyJyA9PiAkZ2lkDQorCQkJXTsNCisJJHJ2ID0gJGRzLT5hZGQoJGVu
dHJ5X2RuLCBhdHRycyA9PiAkYWRkX2RhdGEpOw0KKwkNCisJaWYgKCRydi0+
Y29kZSkNCisJew0KKwkJcHJpbnQgIkZhaWxlZCB0byBhZGQgdGhlIGdyb3Vw
OiAiLiRydi0+ZXJyb3IuIlxuIjsNCisJfQ0KKw0KKwkkZHMtPnVuYmluZCgp
Ow0KK30NCisNCitzdWIgYWRkdXNlcnRvZ3JvdXBfbGRhcA0KK3sNCisJbXkg
KCR1c2VyLCAkZ3JvdXApID0gQF87DQorCQ0KKwlteSAkcnY7DQorCQkNCisJ
IyBBZGQgYSBuZXcgYXR0cmlidXRlIHRvIGNuPSRncm91cCxMREFQX1JETl9H
Uk9VUFMsTERBUF9CQVNFRE4NCisJIyBvZiAibWVtYmVydWlkPSR1c2VyIg0K
KwkkZHMgPSBiaW5kX2RiKCk7DQorCQ0KKwlteSAkZW50cnlfZG4gPSAiY249
JGdyb3VwLCRjb25maWd7bGRhcF9yZG5fZ3JvdXBzfSwkY29uZmlne2xkYXBf
YmFzZWRufSI7DQorCW15ICRhZGRfZGF0YSA9IFsgJ21lbWJlcnVpZCcgPT4g
JHVzZXIgXTsNCisJJHJ2ID0gJGRzLT5tb2RpZnkoJGVudHJ5X2RuLCBhZGQg
PT4gJGFkZF9kYXRhKTsNCisJDQorCWlmICgkcnYtPmNvZGUpDQorCXsNCisJ
CXByaW50ICJGYWlsZWQgdG8gYWRkIHRoZSBncm91cDogIi4kcnYtPmVycm9y
Ow0KKwl9DQorDQorCSRkcy0+dW5iaW5kKCk7DQorfQ0KKw0KK3N1YiBhZGR1
c2VyX2xkYXANCit7DQorCW15ICgkbmFtZSwgJHVpZCwgJGdpZCwgJGhvbWUs
ICRzaGVsbCwgJGdlY29zKSA9IEBfOw0KKw0KKwlteSAkcnY7DQorCQ0KKwkj
IEFkZCBhIG5ldyBlbnRyeSBpbiB1aWQ9JG5hbWUsTERBUF9SRE5fVVNFUlMs
TERBUF9CQVNFRE4gb2YgdHlwZQ0KKwkjIHBvc2l4QWNjb3VudA0KKwkkZHMg
PSBiaW5kX2RiKCk7DQorDQorCWlmICgkZ2Vjb3MgbmUgJycpDQorCXsNCisJ
CW15ICRjbiA9ICRnZWNvczsNCisJfSBlbHNlIHsNCisJCW15ICRjbiA9ICRu
YW1lOw0KKwl9DQorCQ0KKwlteSAkZW50cnlfZG4gPSAidWlkPSRuYW1lLCRj
b25maWd7bGRhcF9yZG5fdXNlcnN9LCRjb25maWd7bGRhcF9iYXNlZG59IjsN
CisJbXkgJGFkZF9kYXRhID0gWyAnb2JqZWN0Y2xhc3MnID0+IFsgJ3RvcCcs
ICdwb3NpeEFjY291bnQnIF0sDQorCQkJJ2NuJyA9PiAkbmFtZSwNCisJCQkn
dWlkJyA9PiAkbmFtZSwNCisJCQkndWlkTnVtYmVyJyA9PiAkdWlkLA0KKwkJ
CSdnaWROdW1iZXInID0+ICRnaWQsDQorCQkJJ2hvbWVEaXJlY3RvcnknID0+
ICRob21lLA0KKwkJCSdsb2dpblNoZWxsJyA9PiAkc2hlbGwNCisJCSAgICAg
ICBdOw0KKw0KKwlpZiAoJGdlY29zIG5lICcnKQ0KKwl7DQorCQkkYWRkX2Rh
dGF7J2dlY29zJ30gPSAkZ2Vjb3M7DQorCX0NCisJJHJ2ID0gJGRzLT5hZGQo
JGVudHJ5X2RuLCBhdHRycyA9PiAkYWRkX2RhdGEpOw0KKwkNCisJaWYgKCRy
di0+Y29kZSkNCisJew0KKwkJcHJpbnQgIkZhaWxlZCB0byBhZGQgdGhlIHVz
ZXI6ICIuJHJ2LT5lcnJvci4iXG4iOw0KKwl9DQorDQorCSRkcy0+dW5iaW5k
KCk7DQorfQ0KKw0KKyMgUHJpdmF0ZSBoZWxwZXIgZnVuY3Rpb24gdG8gY2hl
Y2sgc2ltcGx5IGlmIHRoZSBhdHRyaWJ1dGUgYW5kIHZhbHVlDQorIyAoc3Bl
Y2lmaWVkIGFzIGF0dHI9dmFsdWUpIGV4aXN0cyBpbiB0aGUgZ2l2ZW4gT1Ug
b2YgdGhlIExEQVAgZGF0YWJhc2UNCisjIChyZWxhdGl2ZSB0byBMREFQX0JB
U0VETikuDQorc3ViIGxkYXBfcmRuX2V4aXN0cw0KK3sNCisJbXkgKCRhdHRy
LCAkb3UpID0gQF87DQorCQ0KKwlteSAkZHMgPSBiaW5kX2RiKCk7DQorCW15
ICRiYXNlID0gIiRvdSwiLiRjb25maWd7J2xkYXBfYmFzZWRuJ307DQorCQ0K
KwlteSAkcmVzID0gJGRzLT5zZWFyY2goDQorCQknYmFzZScgPT4gJGJhc2Us
DQorCQknZmlsdGVyJyA9PiAiKCRhdHRyKSIpOw0KKwkNCisJaWYgKCRyZXMt
PmNvdW50ID09IDApDQorCXsNCisJCXJldHVybiB1bmRlZjsNCisJfQ0KKwll
bHNlDQorCXsNCisJCWlmICgkcmVzLT5jb3VudCA+IDEpDQorCQl7DQorCQkJ
cHJpbnQgIldBUk5JTkc6IE11bHRpcGxlIG1hdGNoaW5nIGVudHJpZXMgZm9y
ICRhdHRyIGluICRiYXNlIg0KKwkJfQ0KKwkJbXkgJGVudHJ5ID0gJHJlcy0+
ZW50cnkoMCk7DQorCQlyZXR1cm4gJGVudHJ5LT5kbigpOw0KKwl9DQorfQ0K
Kw0KK3N1YiBkZWx1c2VyX2xkYXANCit7DQorCW15ICRuYW1lID0gc2hpZnQ7
DQorDQorCW15ICRkbiA9IGxkYXBfcmRuX2V4aXN0cygidWlkPSRuYW1lIiwg
JGNvbmZpZ3snbGRhcF9yZG5fdXNlcnMnfSk7DQorCWlmICghJGRuKQ0KKwl7
DQorCQlkZWx1c2VyX2ZpbGUoJG5hbWUpOw0KKwkJcmV0dXJuOw0KKwl9DQor
DQorCSMgUmVtb3ZlIHRoZSBETiB1aWQ9JG5hbWUsTERBUF9SRE5fVVNFUlMs
TERBUF9CQVNFRE4gZnJvbSB0aGUgc3lzdGVtDQorCW15ICRkcyA9IGJpbmRf
ZGIoKTsNCisJDQorCSRkcy0+ZGVsZXRlKCRkbik7DQorfQ0KKw0KK3N1YiBk
ZWxncm91cF9sZGFwDQorew0KKwlteSAkbmFtZSA9IHNoaWZ0Ow0KKw0KKwlt
eSAkZG4gPSBsZGFwX3Jkbl9leGlzdHMoImNuPSRuYW1lIiwgJGNvbmZpZ3sn
bGRhcF9yZG5fZ3JvdXBzJ30pOw0KKwlpZiAoISRkbikNCisJew0KKwkJZGVs
Z3JvdXBfZmlsZSgkbmFtZSk7DQorCQlyZXR1cm47DQorCX0NCisNCisJIyBS
ZW1vdmUgdGhlIEROIGNuPSRuYW1lLExEQVBfUkROX0dST1VQUyxMREFQX0JB
U0VETg0KKwlteSAkZHMgPSBiaW5kX2RiKCk7DQorCQ0KKwkkZHMtPmRlbGV0
ZSgkZG4pOw0KK30NCisNCitzdWIgZGVsdXNlcmZyb21ncm91cF9sZGFwDQor
ew0KKwlteSAoJHVzZXIsICRncm91cCkgPSBAXzsNCisJDQorCSMgUmVtb3Zl
IHRoZSBlbnRyeSBtZW1iZXJ1aWQ9JHVzZXIgZnJvbQ0KKwkjIGNuPSRncm91
cCxMREFQX1JETl9HUk9VUFMsTERBUF9CQVNFRE4NCisJDQorCW15ICRkbiA9
ICJjbj0kZ3JvdXAsIi4kY29uZmlneydsZGFwX3Jkbl9ncm91cHMnfS4iLCIu
JGNvbmZpZ3snbGRhcF9iYXNlZG4nfTsNCisJbXkgJGRlbF9kYXRhID0gWyAn
bWVtYmVydWlkJyA9PiAkdXNlciBdOw0KKw0KKwlteSAkZHMgPSBiaW5kX2Ri
KCk7DQorCQ0KKwkkZHMtPm1vZGlmeSgkZG4sIGRlbGV0ZSA9PiAkZGVsX2Rh
dGEpOw0KK30NCisNCityZXR1cm4gMTsNCmRpZmYgLXVyTiBhZGR1c2VyLTMu
NTAvUkVBRE1FLkxEQVAgYWRkdXNlci0zLjUwLm1wYWxtZXIvUkVBRE1FLkxE
QVANCi0tLSBhZGR1c2VyLTMuNTAvUkVBRE1FLkxEQVAJVGh1IEphbiAgMSAx
MDowMDowMCAxOTcwDQorKysgYWRkdXNlci0zLjUwLm1wYWxtZXIvUkVBRE1F
LkxEQVAJRnJpIE1heSAzMCAxNzozOTo1NSAyMDAzDQpAQCAtMCwwICsxLDY5
IEBADQorQWRkdXNlciBub3cgaGFzIGluLWJ1aWx0IExEQVAgc3VwcG9ydCEg
IE5vIG1vcmUgbG9jYWxseSBoYWNrZWQgYWRkdXNlcg0KK3NjcmlwdHMsIG9y
IGdvaW5nIHRvIG90aGVyIG1lYW5zIG9mIG1hbmlwdWxhdGluZyB5b3VyIHVz
ZXJzLiAgTm93IHlvdSBjYW4NCitzY3JldyB3aXRoIHRoZW0sIHJpZ2h0IGZy
b20gdGhlIGNvbW1hbmQgbGluZSwgd2l0aCB0aGUgZGVmYXVsdCB0b29scyEN
CisNCitUbyBkbyB0aGlzLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgdGhl
IGZvbGxvd2luZyBwYWNrYWdlcyAoYXMgc3VnZ2VzdGVkIGJ5DQorYWRkdXNl
ciBhbnl3YXkpOg0KKw0KKyogbGlibmV0LWxkYXAtcGVybCAoYmUgd2FybmVk
LCBpdCdsbCBwdWxsIGluIDNNQiBvZiBkZXBlbmRlbmNpZXMpDQorKiBsaWJw
YW0tbGRhcA0KKyogbGlibnNzLWxkYXANCisNCitJZiB5b3UncmUgYWxyZWFk
eSB1c2luZyBMREFQLCB5b3UnbGwgcHJvYmFibHkgaGF2ZSB0aGVzZSBhbHJl
YWR5Lg0KKw0KK0l0J3MgYmVzdCBpZiB5b3UgdXNlIHRoZSBMREFQLXNwZWNp
ZmljIHZlcnNpb25zIG9mIGNoc2ggYW5kIGNoZm4sIGFsdGhvdWdoDQoraXQg
bWF5IGJyZWFrIHlvdXIgbm9uLUxEQVAgdXNlcnMgKGFueW9uZSB2b2x1bnRl
ZXJpbmcgdG8gcmV3cml0ZSB0aGVzZQ0KK3V0aWxzIHRvIHN1cHBvcnQgYm90
aCBmaWxlcyBhbmQgTERBUD8pIHNvIHlvdSBoYXZlIGJlZW4gd2FybmVkLg0K
Kw0KK1RvIGluc3RhbGwgTERBUC1zcGVjaWZpYyB2ZXJzaW9ucyBvZiB0aGVz
ZSB0b29scywgdHJ5IHRoaXM6DQorDQorZHBrZy1kaXZlcnQgLS1hZGQgL3Vz
ci9iaW4vY2hzaA0KK2NwIC91c3Ivc2hhcmUvZG9jL2xpYnBhbS1sZGFwL2V4
YW1wbGVzL2Noc2ggL3Vzci9iaW4NCitjaG1vZCAwNzU1IC91c3IvYmluL2No
c2gNCitkcGtnLWRpdmVydCAtLWFkZCAvdXNyL2Jpbi9jaGZuDQorY3AgL3Vz
ci9zaGFyZS9kb2MvbGlicGFtLWxkYXAvZXhhbXBsZXMvY2hmbiAvdXNyL2Jp
bg0KK2NobW9kIDA3NTUgL3Vzci9iaW4vY2hmbg0KKw0KK1RoZXkgd2lsbCBy
ZXF1aXJlIGEgbWlub3IgYml0IG9mIGhhY2tpbmcgdG8gbWFrZSB0aGVtIHdv
cmssIHRvIHNldCB0aGUNCitjb25maWcgZmlsZSBsb2NhdGlvbiBjb3JyZWN0
bHkuDQorDQorWW91J2xsIGFsc28gbmVlZCB0byBoYXZlIGxpYnBhbS1sZGFw
IGFuZCBsaWJuc3MtbGRhcCB3b3JraW5nIHByb3Blcmx5IGJlZm9yZQ0KK2Rv
aW5nIExEQVAtZW5hYmxlZCBhZGR1c2VyIHN0dWZmLiAgVGhlcmUncyBpbmZv
IG91dCB0aGVyZSwgcGxlYXNlIHVzZSBpdC4gDQorUGVvcGxlIHBlc3Rlcmlu
ZyBtZSBvciBSb2xhbmQgYWJvdXQgaG93IHRvIHNldCB1cCBuc3NfbGRhcCBv
ciBwYW1fbGRhcCB3aWxsDQorYmUgL2Rldi9udWxsZWQgKGlmIHlvdSdyZSBs
dWNreSkuICBJJ2xsIGdpdmUgeW91IG9uZSBoaW50LCB0aG91Z2g6IHVzZSB0
aGUNCitjcnlwdCBwYXNzd29yZCBjaGFuZ2luZyBtZWNoYW5pc20uICBleG9w
IGlzIGNvb2wsIGJ1dCBpdCdsbCBzZXQgU1NIQQ0KK3Bhc3N3b3JkcyB3aGlj
aCBub3RoaW5nIGVsc2UgY2FuIHVuZGVyc3RhbmQuDQorDQorQXMgZm9yIGFk
ZHVzZXIgY29uZmlnLCB3YW5kZXIgaW50byAvZXRjL2FkZHVzZXIuY29uZiwg
YW5kIGFkZCB0aGUgY29uZmlnDQorZnJhZ21lbnQgd2hpY2ggaXMgYXZhaWxh
YmxlIGZyb20NCisvdXNyL3NoYXJlL2RvYy9hZGR1c2VyL2V4YW1wbGVzL2Fk
ZHVzZXJfbGRhcC5jb25mLg0KK1RoZSBzZWNvbmQgb3B0aW9uLCBTWVNURU1f
QkFDS0VORCwgaXMgYXZhaWxhYmxlIGlmIHlvdSB3YW5uYSBnbw0KK3RvdGFs
bHkgbnV0cyBhbmQgc3RvcmUgYWxsIHlvdXIgc3lzdGVtIHVzZXJzICh0aG9z
ZSBub3QgY29ycmVzcG9uZGluZyB0bw0KK3JlYWwgcGVvcGxlLCBidXQgcmF0
aGVyIHRvIHN5c3RlbSBzZXJ2aWNlcyBhbmQgc3VjaCkgaW4gTERBUCBhcyB3
ZWxsLiAgSSdtDQorbm90IGEgcmVhbCBmYW4gb2YgdGhhdCBteXNlbGYsIGJ1
dCBpdCdzIHlvdXIgc3lzdGVtIQ0KKw0KK09uY2UgeW91J3ZlIHNhaWQgInll
cywgY29tcHV0ZXIsIEkgd2FudCB0byB1c2UgTERBUCBmb3IgbXkgdXNlciBk
YXRhIHN0b3JhZ2UNCituZWVkcyIsIHlvdSBuZWVkIHRvIHRlbGwgYWRkdXNl
ciBhbGwgYWJvdXQgeW91ciBMREFQIGNvbmZpZ3VyYXRpb24uICBUaGF0J3MN
CitpbiB0aGUgb3B0aW9ucyBzdGFydGluZyB3aXRoIExEQVBfIChhdCB0aGUg
Ym90dG9tIG9mIC9ldGMvYWRkdXNlci5jb25mKS4gDQorU2luY2Ugc3Rvcmlu
ZyBhdXRoIGNyZWRlbnRpYWxzIGluIGEgd29ybGQtcmVhZGFibGUgZmlsZSBp
cyBhIHJlYWxseSBiYWQNCitpZGVhLCBhZGR1c2VyLmNvbmYgc2hvdWxkIGJl
IHJlYWRhYmxlIGFuZCB3cml0YWJsZSBieSByb290IG9ubHkuICBJdCdzDQor
cmVjb21tZW5kZWQgdGhhdCB5b3UgY2htb2QgMDYwMCAvZXRjL2FkZHVzZXIu
Y29uZi4gIFRoZSBiaW5kIEROLCBiaW5kDQorcGFzc3dvcmQsIGFuZCBiYXNl
IEROIHdpbGwgYWxsIGhhdmUgdG8gYmUgbW9kaWZpZWQgdG8gc3VpdCB5b3Vy
IG5lZWRzLCBpZg0KK3lvdSd2ZSBnb3QgYSBib2cgc3RhbmRhcmQgc2V0dXAg
eW91IHNob3VsZCBiZSBhYmxlIHRvIGxlYXZlIHRoZSBSRE4gZW50cmllcw0K
K2FzIHRoZXkgYXJlLg0KKw0KK0kndmUgYmVlbiBhc2tlZCB3aHkgL2V0Yy9s
ZGFwLnNlY3JldCBpc24ndCB1c2VkLiAgSSBiZWxpZXZlIHRoYXQsIGFzIGl0
DQorc3RhbmRzLCBsZGFwLnNlY3JldCBpcyBhIG5hc3R5IGhhY2ssIGR1ZSBt
YWlubHkgdG8gdGhlIHByb2JsZW0gdGhhdCB0aGUgYmluZA0KK0ROIGlzbid0
IHN0b3JlZCB3aXRoIHRoZSBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFsLCBz
byBpZiBJIChmb3IgaW5zdGFuY2UpDQorc2FpZCAiSSB3YW50IHRvIGJpbmQg
YXMgZm9vIiBpbiBsaWJwYW0tbGRhcC5jb25mLCBhbmQgIkkgd2FudCB0byBi
aW5kIGFzDQorYmFyIiBpbiBhZGR1c2VyLmNvbmYsIHlvdSdkIGJlIGluIGZv
ciBhIHdob2xlIHdvcmxkIG9mIHRyb3VibGUuDQorDQorSWYgc29tZW9uZSB3
YW50cyB0byBleHRlbmQgdGhlIGxkYXAuc2VjcmV0IGZpbGUgdG8gc3RvcmUg
Ym90aCB0aGUgYmluZCBETg0KK2FuZCBwYXNzd29yZCwgSSdkIGJlIG11Y2gg
aGFwcGllciBzdXBwb3J0aW5nIGl0LiAgRGVmaW5pbmcgd2hhdCBwcmVjaXNl
bHkNCit0aGUgc3RydWN0dXJlIG9mIHRoZSBmaWxlIHNob3VsZCBiZSB3b3Vs
ZCBhbHNvIGJlIGEgaGVscC4NCisNCitUaGF0J3MgcHJldHR5IG11Y2ggaXQu
ICBQcmVzZW50bHksIHRoZXJlJ3Mgbm90IGEgbG90IG9mIGJlbGxzIGFuZCB3
aGlzdGxlcyAtDQorc3VnZ2VzdGlvbnMgYXJlIHdlbGNvbWUsIHRob3VnaC4g
IEkga25vdyBhIGxvdCBvZiBwZW9wbGUgb3V0IHRoZXJlIGFyZSB1c2luZw0K
K0xEQVAgdG8gZG8gZXh0cmEgc3R1ZmYsIGxpa2Ugc3RvcmluZyBTYW1iYSBh
Y2NvdW50IGluZm8uICBGZWVsIGZyZWUgdG8gbGV0DQorbWUga25vdyB3aGF0
IHlvdSdkIGxpa2UgdG8gc2VlIGluIGFkZHVzZXIncyBMREFQIHN1cHBvcnQs
IGFuZCBJJ2xsIHNlZSBhYm91dA0KK3B1dHRpbmcgaXQgaW4uICANCmRpZmYg
LXVyTiBhZGR1c2VyLTMuNTAvYWRkdXNlciBhZGR1c2VyLTMuNTAubXBhbG1l
ci9hZGR1c2VyDQotLS0gYWRkdXNlci0zLjUwL2FkZHVzZXIJU3VuIEFwciAy
MCAyMzowNTowMCAyMDAzDQorKysgYWRkdXNlci0zLjUwLm1wYWxtZXIvYWRk
dXNlcglGcmkgTWF5IDMwIDE3OjQzOjIzIDIwMDMNCkBAIC05LDYgKzksNyBA
QA0KICMgQ29weXJpZ2h0IChDKSAxOTk1IFRlZCBIYWplayA8dGVkaGFqZWtA
Ym9vbWJveC5taWNyby51bW4uZWR1Pg0KICMgICAgICAgICAgICAgICAgICAg
ICBJYW4gQS4gTXVyZG9jayA8aW11cmRvY2tAZ251LmFpLm1pdC5lZHU+DQog
IyBCdWdmaXhlcyBhbmQgb3RoZXIgaW1wcm92ZW1lbnRzIFJvbGFuZCBCYXVl
cnNjaG1pZHQgPHJiQGRlYmlhbi5vcmc+DQorIyBMREFQIHN1cHBvcnQgcHJv
Z3JhbW1lZCBieSBNYXR0aGV3IFBhbG1lciA8bXBhbG1lckBkZWJpYW4ub3Jn
Pg0KICMgR2VuZXJhbCBzY2hlbWUgb2YgdGhlIHByb2dyYW0gYWRhcHRlZCBi
eSB0aGUgb3JpZ2luYWwgZGViaWFuICdhZGR1c2VyJw0KICMgIHByb2dyYW0g
YnkgSWFuIEEuIE11cmRvY2sgPGltdXJkb2NrQGdudS5haS5taXQuZWR1Pi4N
CiAjDQpAQCAtOTYsNiArOTcsOCBAQA0KICRhbGxvd19iYWRuYW1lID0gMDsJ
CSMgc2hvdWxkIHdlIGFsbG93IGJhZCBuYW1lcz8NCiAkYXNrX3Bhc3N3ZCA9
IDE7CQkjIGFzayBmb3IgYSBwYXNzd2Q/DQogDQorJGNsZWFuaW5nX3VwID0g
MDsNCisNCiAkZGVmYXVsdHMgPSAiL2V0Yy9hZGR1c2VyLmNvbmYiOw0KICRu
b2dyb3VwX2lkID0gZ2V0Z3JuYW0oIm5vZ3JvdXAiKSB8fCA2NTUzNDsNCiAk
MCA9fiBzKy4qLysrOyANCkBAIC0xMTgsNiArMTIxLDE4IEBADQogJGNvbmZp
Z3sicXVvdGF1c2VyIn0gPSAiIjsNCiAkY29uZmlneyJkaXJfbW9kZSJ9ID0g
IjA3NTUiOw0KICRjb25maWd7InNldGdpZF9ob21lIn0gPSAibm8iOw0KKyRj
b25maWd7InJlbW92ZV9ob21lIn0gPSAwOw0KKyRjb25maWd7InJlbW92ZV9h
bGxfZmlsZXMifSA9IDA7DQorJGNvbmZpZ3siYmFja3VwIn0gPSAwOw0KKyRj
b25maWd7Im5vcm1hbF9iYWNrZW5kIn0gPSAiZmlsZSI7DQorJGNvbmZpZ3si
c3lzdGVtX2JhY2tlbmQifSA9ICJmaWxlIjsNCiskY29uZmlneyJsZGFwX3Nl
cnZlciJ9ID0gIiI7DQorJGNvbmZpZ3sibGRhcF9wb3J0In0gPSAiIjsNCisk
Y29uZmlneyJsZGFwX2JpbmRkbiJ9ID0gIiI7DQorJGNvbmZpZ3sibGRhcF9i
aW5kcHcifSA9ICIiOw0KKyRjb25maWd7ImxkYXBfYmFzZWRuIn0gPSAiIjsN
CiskY29uZmlneyJsZGFwX3Jkbl9ncm91cHMifSA9ICIiOw0KKyRjb25maWd7
ImxkYXBfcmRuX3VzZXJzIn0gPSAiIjsNCiANCiAkYWN0aW9uID0gJDAgZXEg
ImFkZGdyb3VwIiA/ICJhZGRncm91cCIgOiAiYWRkdXNlciI7DQogDQpAQCAt
MjYwLDYgKzI3NSwyNiBAQA0KICZjaGVja25hbWUoJG5ld19uYW1lKSBpZiBk
ZWZpbmVkICRuZXdfbmFtZTsNCiAkU0lHeydJTlQnfSA9ICRTSUd7J1FVSVQn
fSA9ICRTSUd7J0hVUCd9ID0gJ2hhbmRsZXInOw0KIA0KK2lmICgkY29uZmln
eyJub3JtYWxfYmFja2VuZCJ9IGVxICdsZGFwJykNCit7DQorCSRmdW5jdGlv
bl9zdWZmaXggPSAibGRhcCI7CQ0KKwlyZXF1aXJlIERlYmlhbjo6QWRkdXNl
ckxEQVA7DQorCWlmICgkY29uZmlneyJzeXN0ZW1fYmFja2VuZCJ9IGVxICd5
ZXMnKQ0KKwl7DQorCQkkc3lzZnVuY3Rpb25fc3VmZml4ID0gImxkYXAiOw0K
Kwl9DQorCWVsc2UNCisJew0KKwkJJHN5c2Z1bmN0aW9uX3N1ZmZpeCA9ICJm
aWxlIjsNCisJCXVzZSBEZWJpYW46OkFkZHVzZXJGaWxlOw0KKwl9DQorfQ0K
K2Vsc2UNCit7DQorCSRmdW5jdGlvbl9zdWZmaXggPSAiZmlsZSI7DQorCSRz
eXNmdW5jdGlvbl9zdWZmaXggPSAiZmlsZSI7DQorfQ0KKw0KICMjIyMjIyMj
IyMjIyMjIyMjDQogIyMgYWRkc3lzZ3JvdXAgIyMNCiAjIyMjIyMjIyMjIyMj
IyMjIw0KQEAgLTI4Myw3ICszMTgsOCBAQA0KIA0KICAgICBwcmludGYgKF8o
IkFkZGluZyBncm91cCAlcyAoJXMpLi4uXG4iKSwkbmV3X25hbWUsJG5ld19n
aWQpIGlmICR2ZXJib3NlOw0KICAgICAmaW52YWxpZGF0ZV9uc2NkKCJncm91
cCIpOw0KLSAgICAmc3lzdGVtY2FsbCgnL3Vzci9zYmluL2dyb3VwYWRkJywg
Jy1nJywgJG5ld19naWQsICRuZXdfbmFtZSk7DQorICAgICRmdW5jID0gImFk
ZGdyb3VwXyRzeXNmdW5jdGlvbl9zdWZmaXgiOw0KKyAgICAmJGZ1bmMoJG5l
d19uYW1lLCAkbmV3X2dpZCk7DQogICAgICZpbnZhbGlkYXRlX25zY2QoImdy
b3VwIik7DQogICAgIHByaW50IF8oIkRvbmUuXG4iKSBpZiAkdmVyYm9zZTsN
CiAgICAgZXhpdCAwOw0KQEAgLTMxMyw3ICszNDksOCBAQA0KIA0KICAgICBw
cmludGYgKF8oIkFkZGluZyBncm91cCAlcyAoJXMpLi4uXG4iKSwkbmV3X25h
bWUsJG5ld19naWQpIGlmICR2ZXJib3NlOw0KICAgICAmaW52YWxpZGF0ZV9u
c2NkKCJncm91cCIpOw0KLSAgICAmc3lzdGVtY2FsbCgnL3Vzci9zYmluL2dy
b3VwYWRkJywgJy1nJywgJG5ld19naWQsICRuZXdfbmFtZSk7DQorICAgICRm
dW5jID0gImFkZGdyb3VwXyRmdW5jdGlvbl9zdWZmaXgiOw0KKyAgICAmJGZ1
bmMoJG5ld19uYW1lLCAkbmV3X2dpZCk7DQogICAgICZpbnZhbGlkYXRlX25z
Y2QoImdyb3VwIik7DQogICAgIHByaW50IF8oIkRvbmUuXG4iKSBpZiAkdmVy
Ym9zZTsNCiAgICAgZXhpdCAwOw0KQEAgLTMzNywxNCArMzc0LDggQEANCiAg
ICAgcHJpbnRmIF8oIkFkZGluZyB1c2VyICVzIHRvIGdyb3VwICVzLi4uXG4i
KSwkZXhpc3RpbmdfdXNlciwkZXhpc3RpbmdfZ3JvdXANCiAJaWYgJHZlcmJv
c2U7DQogICAgICZpbnZhbGlkYXRlX25zY2QoKTsNCi0gICAgIyBGSVhNRSAt
IHRoZSBuZXh0IGxpbmUgaGFzIGEgcmFjZSBjb25kaXRpb24uDQotICAgICMm
c3lzdGVtY2FsbCgndXNlcm1vZCcsICctRycsDQotCQkjam9pbigiLCIsIGdl
dF91c2Vyc19ncm91cHMoJGV4aXN0aW5nX3VzZXIpLCAkZXhpc3RpbmdfZ3Jv
dXApLCANCi0JCSMkZXhpc3RpbmdfdXNlcik7DQotICAgICZzeXN0ZW1jYWxs
KCcvdXNyL2Jpbi9ncGFzc3dkJywgJy1NJywNCi0JCWpvaW4oJywnLCBnZXRf
Z3JvdXBfbWVtYmVycygkZXhpc3RpbmdfZ3JvdXApLCAkZXhpc3RpbmdfdXNl
ciksDQotCQkkZXhpc3RpbmdfZ3JvdXApOw0KLSAgICAjJnN5c3RlbWNhbGwo
J2dwYXNzd2QnLCAnLWEnLCRleGlzdGluZ191c2VyLCRleGlzdGluZ19ncm91
cCk7DQorICAgICRmdW5jID0gImFkZHVzZXJ0b2dyb3VwXyRmdW5jdGlvbl9z
dWZmaXgiOw0KKyAgICAmJGZ1bmMoJGV4aXN0aW5nX3VzZXIsICRleGlzdGlu
Z19ncm91cCk7DQogICAgICZpbnZhbGlkYXRlX25zY2QoKTsNCiAgICAgcHJp
bnQgXygiRG9uZS5cbiIpIGlmICR2ZXJib3NlOw0KICAgICBleGl0IDA7DQpA
QCAtNDA3LDcgKzQzOCw4IEBADQogICAgIGlmICgkbWFrZV9ncm91cF9hbHNv
KSB7DQogCXByaW50IF8oIkFkZGluZyBuZXcgZ3JvdXAgJG5ld19uYW1lICgk
bmV3X2dpZCkuXG4iKSBpZiAkdmVyYm9zZTsNCiAJJHVuZG9ncm91cCA9ICRu
ZXdfbmFtZTsNCi0JJnN5c3RlbWNhbGwoJy91c3Ivc2Jpbi9ncm91cGFkZCcs
ICctZycsICRuZXdfZ2lkLCAkbmV3X25hbWUpOw0KKwkkZnVuYyA9ICJhZGRn
cm91cF8kc3lzZnVuY3Rpb25fc3VmZml4IjsNCisJJiRmdW5jKCRuZXdfbmFt
ZSwgJG5ld19naWQpOw0KIAkmaW52YWxpZGF0ZV9uc2NkKCJncm91cCIpOw0K
ICAgICB9DQogDQpAQCAtNDE2LDE0ICs0NDgsMTIgQEANCiAgICAgJGhvbWVf
ZGlyID0gJHNwZWNpYWxfaG9tZSB8fCAmaG9tZWRpcigkbmV3X25hbWUsICRp
bmdyb3VwX25hbWUpOw0KIAkkc2hlbGwgPSAkc3BlY2lhbF9zaGVsbCB8fCAn
L2Jpbi9mYWxzZSc7DQogICAgICR1bmRvdXNlciA9ICRuZXdfbmFtZTsNCi0g
ICAgJnN5c3RlbWNhbGwoJy91c3Ivc2Jpbi91c2VyYWRkJywgJy1kJywgJGhv
bWVfZGlyLCAnLWcnLCAkaW5ncm91cF9uYW1lLCAnLXMnLA0KLQkJJHNoZWxs
LCAnLXUnLCAkbmV3X3VpZCwgJG5ld19uYW1lKTsNCisgICAgQGdyaW5mbyA9
IGdldGdybmFtKCRpbmdyb3VwX25hbWUpOw0KKyAgICAkZ2lkID0gJGdyaW5m
b1syXTsNCisgICAgJGZ1bmMgPSAiYWRkdXNlcl8kc3lzZnVuY3Rpb25fc3Vm
Zml4IjsNCisgICAgJiRmdW5jKCRuZXdfbmFtZSwgJG5ld191aWQsICRnaWQs
ICRob21lX2RpciwgJHNoZWxsLCAkbmV3X2dlY29zKTsNCiAgICAgJmludmFs
aWRhdGVfbnNjZCgpOw0KIA0KLSAgICBpZihkZWZpbmVkKCRuZXdfZ2Vjb3Mp
KSB7DQotCSZjaF9nZWNvcygkbmV3X2dlY29zKTsNCi0gICAgfQ0KLQ0KICAg
ICBpZiAoJG5vX2NyZWF0ZV9ob21lKSB7DQogCXByaW50IF8oIk5vdCBjcmVh
dGluZyBob21lIGRpcmVjdG9yeS5cbiIpIGlmICR2ZXJib3NlOw0KICAgICB9
IGVsc2lmICgtZSAkaG9tZV9kaXIpIHsNCkBAIC00OTQsNyArNTI0LDggQEAN
CiAgICAgaWYgKCRtYWtlX2dyb3VwX2Fsc28pIHsNCiAJcHJpbnRmIF8oIkFk
ZGluZyBuZXcgZ3JvdXAgJXMgKCVzKS5cbiIpLCRuZXdfbmFtZSwkbmV3X2dp
ZCBpZiAkdmVyYm9zZTsNCiAJJHVuZG9ncm91cCA9ICRuZXdfbmFtZTsNCi0J
JnN5c3RlbWNhbGwoJy91c3Ivc2Jpbi9ncm91cGFkZCcsICctZycsICRuZXdf
Z2lkLCAkbmV3X25hbWUpOw0KKwkkZnVuYyA9ICJhZGRncm91cF8kZnVuY3Rp
b25fc3VmZml4IjsNCisJJiRmdW5jKCRuZXdfbmFtZSwkbmV3X2dpZCk7DQog
CSZpbnZhbGlkYXRlX25zY2QoKTsNCiAgICAgfQ0KIA0KQEAgLTUwMyw4ICs1
MzQsMTEgQEANCiAgICAgJGhvbWVfZGlyID0gJHNwZWNpYWxfaG9tZSB8fCAm
aG9tZWRpcigkbmV3X25hbWUsICRpbmdyb3VwX25hbWUpOw0KIAkkc2hlbGwg
PSAkc3BlY2lhbF9zaGVsbCB8fCAkY29uZmlneyJkc2hlbGwifTsNCiAgICAg
JHVuZG91c2VyID0gJG5ld19uYW1lOw0KLSAgICAmc3lzdGVtY2FsbCgnL3Vz
ci9zYmluL3VzZXJhZGQnLCAnLWQnLCAkaG9tZV9kaXIsICctZycsICRpbmdy
b3VwX25hbWUsICctcycsDQotCQkkc2hlbGwsICctdScsICRuZXdfdWlkLCAk
bmV3X25hbWUpOw0KKyAgICBAZ3JpbmZvID0gZ2V0Z3JuYW0oJGluZ3JvdXBf
bmFtZSk7DQorICAgICRnaWQgPSAkZ3JpbmZvWzJdOw0KKyAgICBwcmludCAi
R3JvdXBpbmZvIHJldHVybmVkIEBncmluZm9cbiIgaWYgJGRlYnVnZ2luZzsN
CisgICAgJGZ1bmMgPSAiYWRkdXNlcl8kZnVuY3Rpb25fc3VmZml4IjsNCisg
ICAgJiRmdW5jKCRuZXdfbmFtZSwgJG5ld191aWQsICRnaWQsICRob21lX2Rp
ciwgJHNoZWxsLCAkbmV3X2dlY29zKTsNCiAgICAgJmludmFsaWRhdGVfbnNj
ZCgpOw0KIA0KICAgICBpZiAoLWUgJGhvbWVfZGlyKSB7DQpAQCAtNTQ0LDEz
ICs1NzgsMTAgQEANCiAJfQ0KICAgICB9DQogDQotICAgIGlmIChkZWZpbmVk
KCRuZXdfZ2Vjb3MpKSB7DQotCSZjaF9nZWNvcygkbmV3X2dlY29zKTsNCi0g
ICAgfQ0KLSAgICBlbHNlIHsNCisgICAgaWYgKCFkZWZpbmVkKCRuZXdfZ2Vj
b3MpKSB7DQogCWZvciAoOzspIHsNCiAJICAgICZzeXN0ZW1jYWxsKCcvdXNy
L2Jpbi9jaGZuJywgJG5ld19uYW1lKTsNCi0JICAgIHByaW50IF8oIklzIHRo
ZSBpbmZvcm1hdGlvbiBjb3JyZWN0PyBbeS9uXSAiKTsNCisJICAgIHByaW50
IF8oIklzIHRoZSBpbmZvcm1hdGlvbiBjb3JyZWN0PyBbeS9OXSAiKTsNCiAJ
ICAgIGNob3AgKCRhbnN3ZXI9PFNURElOPik7DQogCSAgICBsYXN0IGlmICgk
YW5zd2VyIGVxIF8oInkiKSk7DQogCX0NCkBAIC03NDEsNiArNzcyLDExIEBA
DQogDQogDQogc3ViIGNsZWFudXAgew0KKyAgICBpZiAoJGNsZWFuaW5nX3Vw
KQ0KKyAgICB7DQorCWRpZSAoIlJlYWxseSBmYXRhbCBlcnJvcjogcmVjdXJz
aXZlIGNsZWFudXAuXG4iKTsNCisgICAgfQ0KKyAgICAkY2xlYW5pbmdfdXAg
PSAxOw0KICAgICBwcmludCAiQHtffUNsZWFuaW5nIHVwLlxuIjsNCiAgICAg
aWYgKCR1bmRvaG9tZSkgew0KIAlwcmludGYgXygiUmVtb3ZpbmcgZGlyZWN0
b3J5IGAlcydcbiIpLCR1bmRvaG9tZTsNCkBAIC03NDgsMTEgKzc4NCwxMyBA
QA0KICAgICB9DQogICAgIGlmICgkdW5kb3VzZXIpIHsNCiAJcHJpbnRmIF8o
IlJlbW92aW5nIHVzZXIgYCVzJy5cbiIpLCR1bmRvdXNlcjsNCi0Jc3lzdGVt
KCd1c2VyZGVsJywgJHVuZG91c2VyKTsNCisJJGZ1bmMgPSAiZGVsdXNlcl8k
ZnVuY3Rpb25fc3VmZml4IjsNCisJJiRmdW5jKCR1bmRvdXNlcik7DQogICAg
IH0NCiAgICAgaWYgKCR1bmRvZ3JvdXApIHsNCiAJcHJpbnRmIF8oIlJlbW92
aW5nIGdyb3VwIGAlcycuXG4iKSwkdW5kb2dyb3VwOw0KLQlzeXN0ZW0oJ2dy
b3VwZGVsJywgJHVuZG9ncm91cCk7DQorCSRmdW5jID0gImRlbGdyb3VwXyRm
dW5jdGlvbl9zdWZmaXgiOw0KKwkmJGZ1bmMoJHVuZG9ncm91cCk7DQogICAg
IH0NCiAgICAgIyBkbyB3ZSBuZWVkIHRvIGludmFsaWRhdGUgdGhlIG5zY2Qg
Y2FjaGUgaGVyZSwgdG9vPw0KICAgICBleGl0IDE7DQpAQCAtNzY1LDcgKzgw
Myw3IEBADQogICAgIA0KIA0KIHN1YiB2ZXJzaW9uIHsNCi0gICAgcHJpbnQg
IiQwOiBhZGQgYSB1c2VyIG9yIGdyb3VwIHRvIHRoZSBzeXN0ZW0uICBWZXJz
aW9uIFZFUlNJT04NCisgICAgcHJpbnQgIiQwOiBhZGQgYSB1c2VyIG9yIGdy
b3VwIHRvIHRoZSBzeXN0ZW0uICBWZXJzaW9uIDMuNTANCiBDb3B5cmlnaHQg
KEMpIDE5OTcsIDE5OTgsIDE5OTkgR3V5IE1hb3IgPG1hb3JcQGRlYmlhbi5v
cmc+DQogQ29weXJpZ2h0IChDKSAxOTk1IElhbiBNdXJkb2NrIDxpbXVyZG9j
a1xAZ251LmFpLm1pdC5lZHU+LA0KICAgICAgICAgICAgICAgICAgICBUZWQg
SGFqZWsgPHRlZGhhamVrXEBib29tYm94Lm1pY3JvLnVtbi5lZHU+LCANCmRp
ZmYgLXVyTiBhZGR1c2VyLTMuNTAvYWRkdXNlci5jb25mIGFkZHVzZXItMy41
MC5tcGFsbWVyL2FkZHVzZXIuY29uZg0KLS0tIGFkZHVzZXItMy41MC9hZGR1
c2VyLmNvbmYJU2F0IEF1ZyAzMSAwNTo0MjoxMyAyMDAyDQorKysgYWRkdXNl
ci0zLjUwLm1wYWxtZXIvYWRkdXNlci5jb25mCVNhdCBNYXkgIDMgMDk6NTQ6
NTUgMjAwMw0KQEAgLTEsNCArMSwzIEBADQotDQogIyAvZXRjL2FkZHVzZXIu
Y29uZjogYGFkZHVzZXInIGNvbmZpZ3VyYXRpb24uDQogIyBTZWUgYWRkdXNl
cig4KSBhbmQgYWRkdXNlci5jb25mKDUpIGZvciBmdWxsIGRvY3VtZW50YXRp
b24uDQogDQpAQCAtNjIsMyArNjEsNTAgQEANCiAjIG5vIGxvbmdlciBkbyB0
aGlzIHBlciBkZWZhdWx0LiBJZiB5b3Ugd2FudCBpdCBuZXZlcnRoZWxlc3Mg
eW91IGNhbg0KICMgc3RpbGwgc2V0IGl0IGhlcmUuDQogU0VUR0lEX0hPTUU9
bm8NCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBERUxVU0VSIFNFVFRJ
TkdTDQorIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KKyMgUmVtb3ZlIGhvbWUg
ZGlyZWN0b3J5IGFuZCBtYWlsIHNwb29sIHdoZW4gdXNlciBpcyByZW1vdmVk
DQorUkVNT1ZFX0hPTUUgPSAwDQorDQorIyBSZW1vdmUgYWxsIGZpbGVzIG9u
IHRoZSBzeXN0ZW0gb3duZWQgYnkgdGhlIHVzZXIgdG8gYmUgcmVtb3ZlZA0K
K1JFTU9WRV9BTExfRklMRVMgPSAwDQorDQorIyBCYWNrdXAgZmlsZXMgYmVm
b3JlIHJlbW92aW5nIHRoZW0uIFRoaXMgb3B0aW9ucyBoYXMgb25seSBhbiBl
ZmZlY3QgaWYNCisjIFJFTU9WRV9IT01FIG9yIFJFTU9WRV9BTExfRklMRVMg
aXMgc2V0Lg0KK0JBQ0tVUCA9IDANCisjIyMjIyMjIyMjIyMjIyMjIyMjDQor
IyBMREFQIFNFVFRJTkdTDQorIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KKyMg
VXNlIExEQVAgZm9yIHN0b3JpbmcgcmVhbCB1c2VyIGFuZCBncm91cCBhY2Nv
dW50cy4NCitVU0VfTERBUD1ubw0KKw0KKyMgVXNlIExEQVAgZm9yIHN0b3Jp
bmcgc3lzdGVtIHVzZXJzIGFzIHdlbGwgYXMgb3JkaW5hcnkgdXNlcnMuICBX
aWxsIG9ubHkgYmUNCisjIGNoZWNrZWQgaWYgVVNFX0xEQVA9eWVzIGFib3Zl
LiAgDQorVVNFX0xEQVBfU1lTVEVNPW5vDQorDQorIyBUaGVzZSBhcmUgb25s
eSBleGNpdGluZyBpZiB5b3UndmUgc3BlY2lmaWVkIFVTRV9MREFQPXllcyBh
Ym92ZQ0KKyMgSG9zdG5hbWUgb2YgdGhlIExEQVAgc2VydmVyDQorTERBUF9T
RVJWRVI9bG9jYWxob3N0DQorDQorIyBQb3J0IGZvciB0aGUgTERBUCBzZXJ2
ZXIgKGRvbid0IGNoYW5nZSBub3JtYWxseSkNCitMREFQX1BPUlQ9Mzg5DQor
DQorIyBETiB0byBiaW5kIGFzLg0KK0xEQVBfQklOREROPWNuPWxkYXBhZG1p
bixkYz1kb21haW4sZGM9Y29tDQorDQorIyBQYXNzd29yZCBmb3IgdGhpcyBE
Tg0KK0xEQVBfQklORFBXPXNla3IxdA0KKw0KKyMgQmFzZSBETiBmb3IgdGhl
IHNpdGUNCitMREFQX0JBU0VETj1kYz1kb21haW4sZGM9Y29tDQorDQorIyBS
ZWxhdGl2ZSBETiBmb3IgZ3JvdXBzDQorTERBUF9SRE5fR1JPVVBTPW91PWdy
b3VwDQorDQorIyBSRE4gZm9yIHVzZXJzDQorTERBUF9SRE5fVVNFUlM9b3U9
cGVvcGxlDQorDQpkaWZmIC11ck4gYWRkdXNlci0zLjUwL2FkZHVzZXJfbGRh
cC5jb25mIGFkZHVzZXItMy41MC5tcGFsbWVyL2FkZHVzZXJfbGRhcC5jb25m
DQotLS0gYWRkdXNlci0zLjUwL2FkZHVzZXJfbGRhcC5jb25mCVRodSBKYW4g
IDEgMTA6MDA6MDAgMTk3MA0KKysrIGFkZHVzZXItMy41MC5tcGFsbWVyL2Fk
ZHVzZXJfbGRhcC5jb25mCUZyaSBNYXkgMzAgMTc6NDE6MzggMjAwMw0KQEAg
LTAsMCArMSwzNCBAQA0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjIExE
QVAgU0VUVElOR1MNCisjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorIyBXaGlj
aCBiYWNrZW5kIHRvIHVzZSB0byBzdG9yZSB5b3VyIHVzZXJzIGFuZCBncm91
cHMuICBDaG9pY2VzIGFyZSBsZGFwIG9yDQorIyBmaWxlLg0KK05PUk1BTF9C
QUNLRU5EPWxkYXANCisNCisjIEFzIHBlciBOT1JNQUxfQkFDS0VORCwgYnV0
IGZvciB1c2Vycy9ncm91cHMgYWRkZWQgd2l0aCB0aGUgLS1zeXN0ZW0NCisj
IG9wdGlvbi4NCitTWVNURU1fQkFDS0VORD1maWxlDQorDQorIyBIb3N0bmFt
ZSBvZiB0aGUgTERBUCBzZXJ2ZXINCitMREFQX1NFUlZFUj1sb2NhbGhvc3QN
CisNCisjIFBvcnQgZm9yIHRoZSBMREFQIHNlcnZlciAoZG9uJ3QgY2hhbmdl
IG5vcm1hbGx5KQ0KK0xEQVBfUE9SVD0zODkNCisNCisjIEROIHRvIGJpbmQg
YXMuDQorTERBUF9CSU5ERE49Y249bGRhcGFkbWluLGRjPWRvbWFpbixkYz1j
b20NCisNCisjIFBhc3N3b3JkIGZvciB0aGlzIERODQorTERBUF9CSU5EUFc9
c2VrcjF0DQorDQorIyBCYXNlIEROIGZvciB0aGUgc2l0ZQ0KK0xEQVBfQkFT
RUROPWRjPWRvbWFpbixkYz1jb20NCisNCisjIFJlbGF0aXZlIEROIGZvciBn
cm91cHMNCitMREFQX1JETl9HUk9VUFM9b3U9Z3JvdXANCisNCisjIFJETiBm
b3IgdXNlcnMNCitMREFQX1JETl9VU0VSUz1vdT1wZW9wbGUNCisNCmRpZmYg
LXVyTiBhZGR1c2VyLTMuNTAvZGViaWFuL2NoYW5nZWxvZyBhZGR1c2VyLTMu
NTAubXBhbG1lci9kZWJpYW4vY2hhbmdlbG9nDQotLS0gYWRkdXNlci0zLjUw
L2RlYmlhbi9jaGFuZ2Vsb2cJU3VuIEFwciAyMCAyMzowNDoxMiAyMDAzDQor
KysgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL2NoYW5nZWxvZwlXZWQg
TWF5ICA3IDE3OjAxOjMxIDIwMDMNCkBAIC0xLDMgKzEsMjEgQEANCithZGR1
c2VyICgzLjUwLjIpIGV4cGVyaW1lbnRhbDsgdXJnZW5jeT1sb3cNCisNCisg
ICogQWRkZWQgUkVBRE1FLkxEQVAgdG8gdGhlIHBhY2thZ2UuDQorICAqIEFk
ZGVkIFN1Z2dlc3RzOiBmb3IgbGlibnNzLWxkYXAgYW5kIGxpYnBhbS1sZGFw
Lg0KKyAgKiBOb3RlcyBpbiBSRUFETUUuTERBUCBvbiB3aHkgSSBoYXZlbid0
IGltcGxlbWVudGVkIGxkYXAuc2VjcmV0IHN1cHBvcnQuDQorDQorIC0tIE1h
dHRoZXcgUGFsbWVyIDxtcGFsbWVyQGRlYmlhbi5vcmc+ICBXZWQsICA3IE1h
eSAyMDAzIDE3OjAwOjQ0ICsxMDAwDQorDQorYWRkdXNlciAoMy41MC4xKSBl
eHBlcmltZW50YWw7IHVyZ2VuY3k9bG93DQorDQorICAqIExEQVAgc3VwcG9y
dCAoeWlwcGVlISkNCisgICogZGVsdXNlci5jb25mIG1lcmdlZCB3aXRoIGFk
ZHVzZXIuY29uZiAobmVlZGVkIGZvciBMREFQIHN1cHBvcnQpDQorICAqIGFk
ZHVzZXIuY29uZiBzaG91bGQgbm93IGJlIDA2MDAgKHNpbmNlIExEQVAgc2Vj
cmV0cyBtYXkgYmUgc3RvcmVkIGluDQorICAgIHRoZXJlLCBhbmQgdXNlcnMg
c2hvdWxkbid0IGJlIHRha2luZyBhIHNuZWFreSBwZWVrIGF0IG9uZSdzIGFk
ZHVzZXINCisgICAgY29uZmlnIGFueXdheSwgQUZBSUMpDQorDQorIC0tIE1h
dHRoZXcgUGFsbWVyIDxtcGFsbWVyQGRlYmlhbi5vcmc+ICBXZWQsIDMwIEFw
ciAyMDAzIDE3OjI2OjM5ICsxMDAwDQorDQogYWRkdXNlciAoMy41MCkgdW5z
dGFibGU7IHVyZ2VuY3k9bG93DQogDQogICAqIE1vdmUgL3Vzci9zaGFyZS9k
b2MvYWRkdXNlci9leGFtcGxlcy9hZGR1c2VyLmNvbmYgdG8NCmRpZmYgLXVy
TiBhZGR1c2VyLTMuNTAvZGViaWFuL2NvbmZmaWxlcyBhZGR1c2VyLTMuNTAu
bXBhbG1lci9kZWJpYW4vY29uZmZpbGVzDQotLS0gYWRkdXNlci0zLjUwL2Rl
Ymlhbi9jb25mZmlsZXMJV2VkIEp1bCAxMSAxNzo0NDoyOCAyMDAxDQorKysg
YWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL2NvbmZmaWxlcwlTYXQgTWF5
ICAzIDA5OjU0OjU1IDIwMDMNCkBAIC0xICswLDAgQEANCi0vZXRjL2RlbHVz
ZXIuY29uZg0KZGlmZiAtdXJOIGFkZHVzZXItMy41MC9kZWJpYW4vY29udHJv
bCBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vY29udHJvbA0KLS0tIGFk
ZHVzZXItMy41MC9kZWJpYW4vY29udHJvbAlUdWUgRGVjIDI0IDIxOjQ2OjE1
IDIwMDINCisrKyBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vY29udHJv
bAlXZWQgTWF5ICA3IDE2OjQ3OjE1IDIwMDMNCkBAIC04LDcgKzgsNyBAQA0K
IFBhY2thZ2U6IGFkZHVzZXINCiBBcmNoaXRlY3R1cmU6IGFsbA0KIERlcGVu
ZHM6IHBlcmwtYmFzZSAoPj01LjYuMCksIHBhc3N3ZCAoPj05NjEwMjUpLCBk
ZWJjb25mDQotU3VnZ2VzdHM6IGxpYmxvY2FsZS1nZXR0ZXh0LXBlcmwsIHBl
cmwtbW9kdWxlcw0KK1N1Z2dlc3RzOiBsaWJsb2NhbGUtZ2V0dGV4dC1wZXJs
LCBwZXJsLW1vZHVsZXMsIGxpYm5ldC1sZGFwLXBlcmwsIGxpYnBhbS1sZGFw
LCBsaWJuc3MtbGRhcA0KIERlc2NyaXB0aW9uOiBBZGQgYW5kIHJlbW92ZSB1
c2VycyBhbmQgZ3JvdXBzDQogIFRoaXMgcGFja2FnZSBpbmNsdWRlcyB0aGUg
YWRkdXNlciBhbmQgZGVsdXNlciBjb21tYW5kcyBmb3IgY3JlYXRpbmcNCiAg
YW5kIHJlbW92aW5nIHVzZXJzLg0KZGlmZiAtdXJOIGFkZHVzZXItMy41MC9k
ZWJpYW4vZmlsZXMgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL2ZpbGVz
DQotLS0gYWRkdXNlci0zLjUwL2RlYmlhbi9maWxlcwlUaHUgSmFuICAxIDEw
OjAwOjAwIDE5NzANCisrKyBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4v
ZmlsZXMJV2VkIE1heSAgNyAxNzowMTo0MiAyMDAzDQpAQCAtMCwwICsxIEBA
DQorYWRkdXNlcl8zLjUwLjJfYWxsLmRlYiBiYXNlIGltcG9ydGFudA0KZGlm
ZiAtdXJOIGFkZHVzZXItMy41MC9kZWJpYW4vcG9zdGluc3QgYWRkdXNlci0z
LjUwLm1wYWxtZXIvZGViaWFuL3Bvc3RpbnN0DQotLS0gYWRkdXNlci0zLjUw
L2RlYmlhbi9wb3N0aW5zdAlTdW4gQXByIDIwIDIyOjQ1OjA4IDIwMDMNCisr
KyBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vcG9zdGluc3QJRnJpIE1h
eSAzMCAxNzozNzozOSAyMDAzDQpAQCAtNSw2ICs1LDIwIEBADQogCWNwIC91
c3Ivc2hhcmUvYWRkdXNlci9hZGR1c2VyLmNvbmYgL2V0Yy9hZGR1c2VyLmNv
bmYNCiBmaQ0KIA0KKyMgQ2hlY2sgaWYgd2UndmUgZ290IG9uZSBvZiB0aG9z
ZSBvbGQsIHNob2RkeSBzeXN0ZW1zIHdoaWNoIGhhcyBhIHNlcGFyYXRlDQor
IyBkZWx1c2VyLmNvbmYgZmlsZSwgYW5kIGludGVncmF0ZSBpdCB3aXRoIGFk
ZHVzZXIuY29uZg0KK2lmIFsgLWUgL2V0Yy9kZWx1c2VyLmNvbmYgXTsgdGhl
bg0KKwljYXQgPj4gL2V0Yy9hZGR1c2VyLmNvbmYgPDwgRU9GDQorDQorIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBPUFRJT05TIEZPUiBERUxVU0VS
DQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorRU9GDQorDQorCWNhdCAv
ZXRjL2RlbHVzZXIuY29uZiA+PiAvZXRjL2FkZHVzZXIuY29uZg0KKwlybSAt
ZiAvZXRjL2RlbHVzZXIuY29uZg0KK2ZpDQorDQogIyBtb2RpZnkgYWRkdXNl
ci5jb25mDQogaWYgLiAvdXNyL3NoYXJlL2RlYmNvbmYvY29uZm1vZHVsZQ0K
IHRoZW4JDQpkaWZmIC11ck4gYWRkdXNlci0zLjUwL2RlYmlhbi9ydWxlcyBh
ZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vcnVsZXMNCi0tLSBhZGR1c2Vy
LTMuNTAvZGViaWFuL3J1bGVzCVN1biBBcHIgMjAgMjI6NDQ6NDggMjAwMw0K
KysrIGFkZHVzZXItMy41MC5tcGFsbWVyL2RlYmlhbi9ydWxlcwlXZWQgTWF5
ICA3IDE2OjQ2OjQ0IDIwMDMNCkBAIC0yOSw2ICsyOSw4IEBADQogCXNlZCAt
ZSBzL1ZFUlNJT04vJCh2ZXJzaW9uKS9nIGFkZHVzZXIgPiBkZWJpYW4vdG1w
L3Vzci9zYmluL2FkZHVzZXINCiAJc2VkIC1lIHMvVkVSU0lPTi8kKHZlcnNp
b24pL2cgZGVsdXNlciA+IGRlYmlhbi90bXAvdXNyL3NiaW4vZGVsdXNlcg0K
IAlzZWQgLWUgcy9WRVJTSU9OLyQodmVyc2lvbikvZyBBZGR1c2VyQ29tbW9u
LnBtID4gZGViaWFuL3RtcC91c3Ivc2hhcmUvcGVybDUvRGViaWFuL0FkZHVz
ZXJDb21tb24ucG0NCisJc2VkIC1lIHMvVkVSU0lPTi8kKHZlcnNpb24pL2cg
QWRkdXNlckZpbGUucG0gPiBkZWJpYW4vdG1wL3Vzci9zaGFyZS9wZXJsNS9E
ZWJpYW4vQWRkdXNlckZpbGUucG0NCisJc2VkIC1lIHMvVkVSU0lPTi8kKHZl
cnNpb24pL2cgQWRkdXNlckxEQVAucG0gPiBkZWJpYW4vdG1wL3Vzci9zaGFy
ZS9wZXJsNS9EZWJpYW4vQWRkdXNlckxEQVAucG0NCiAJY2htb2QgNzU1IGRl
Ymlhbi90bXAvdXNyL3NiaW4vKg0KIAlsbiAtcyBhZGR1c2VyIGRlYmlhbi90
bXAvdXNyL3NiaW4vYWRkZ3JvdXANCiAJbG4gLXMgZGVsdXNlciBkZWJpYW4v
dG1wL3Vzci9zYmluL2RlbGdyb3VwDQpAQCAtMzYsMTEgKzM4LDEyIEBADQog
CS4vZGViaWFuL3NjcmlwdHMvaW5zdGFsbC1tYW5wYWdlcy5wbCAkKHZlcnNp
b24pIGRvYy8gZGViaWFuL3RtcC91c3Ivc2hhcmUvbWFuLw0KIA0KIAlpbnN0
YWxsIC1tNjQ0IFRPRE8gZGViaWFuL3RtcC91c3Ivc2hhcmUvZG9jL2FkZHVz
ZXIvDQorCWluc3RhbGwgLW02NDQgUkVBRE1FLkxEQVAgZGViaWFuL3RtcC91
c3Ivc2hhcmUvZG9jL2FkZHVzZXIvDQogCWluc3RhbGwgLW02NDQgZGViaWFu
L2NoYW5nZWxvZyBkZWJpYW4vdG1wL3Vzci9zaGFyZS9kb2MvYWRkdXNlci8N
CiAJZmluZCBkZWJpYW4vdG1wL3Vzci9zaGFyZS9kb2MgLXR5cGUgZiB8IHhh
cmdzIGd6aXAgLTlmDQotCWluc3RhbGwgLW02NDQgZGVsdXNlci5jb25mIGRl
Ymlhbi90bXAvZXRjDQogCWluc3RhbGwgLW02NDQgZXhhbXBsZXMvKiBkZWJp
YW4vdG1wL3Vzci9zaGFyZS9kb2MvYWRkdXNlci9leGFtcGxlcw0KIAlpbnN0
YWxsIC1tNjQ0IGFkZHVzZXIuY29uZiBkZWJpYW4vdG1wL3Vzci9zaGFyZS9h
ZGR1c2VyDQorCWluc3RhbGwgLW02NDQgYWRkdXNlcl9sZGFwLmNvbmYgZGVi
aWFuL3RtcC91c3Ivc2hhcmUvYWRkdXNlcg0KIAlpbnN0YWxsIC1tNjQ0IGRl
Ymlhbi9jb3B5cmlnaHQgZGViaWFuL3RtcC91c3Ivc2hhcmUvZG9jL2FkZHVz
ZXIvIA0KIAlpbnN0YWxsIC1tNjQ0IGRlYmlhbi9jb25mZmlsZXMgZGViaWFu
L3RlbXBsYXRlcyBkZWJpYW4vdG1wL0RFQklBTg0KIAlpbnN0YWxsIC1tNzU1
IGRlYmlhbi9wb3N0aW5zdCBkZWJpYW4vcG9zdHJtIGRlYmlhbi9jb25maWcg
ZGViaWFuL3RtcC9ERUJJQU4NCmRpZmYgLXVyTiBhZGR1c2VyLTMuNTAvZGVi
aWFuL3RtcC9ERUJJQU4vY29uZmlnIGFkZHVzZXItMy41MC5tcGFsbWVyL2Rl
Ymlhbi90bXAvREVCSUFOL2NvbmZpZw0KLS0tIGFkZHVzZXItMy41MC9kZWJp
YW4vdG1wL0RFQklBTi9jb25maWcJVGh1IEphbiAgMSAxMDowMDowMCAxOTcw
DQorKysgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC9ERUJJQU4v
Y29uZmlnCVdlZCBNYXkgIDcgMTc6MDE6NDEgMjAwMw0KQEAgLTAsMCArMSw0
MCBAQA0KKyMhL2Jpbi9zaCAtZQ0KKw0KKyMgaWYgd2UgZG8gbm90IGhhdmUg
ZGViY29uZiwgd2UganVzdCBza2lwIHRoaXMNCisuIC91c3Ivc2hhcmUvZGVi
Y29uZi9jb25mbW9kdWxlIHx8IGV4aXQgMA0KKw0KK2RiX3ZlcnNpb24gMi4w
DQorZGJfY2FwYg0KK2RiX3RpdGxlIEFkZHVzZXINCisNCisjIEZvciB0ZXN0
aW5nDQorI2RiX2ZzZXQgYWRkdXNlci9ob21lZGlyLXBlcm1pc3Npb24gaXNk
ZWZhdWx0IHRydWUNCisNCitpZiBbIC1lICIvZXRjL2FkZHVzZXIuY29uZiIg
XTsgdGhlbg0KKwlDVVJfRElSTU9ERT1gY2F0IC9ldGMvYWRkdXNlci5jb25m
IHwgc2VkIC1uZSAncy9eRElSX01PREU9XCguKlwpJC9cMS9wOydgIHx8IHRy
dWUNCitmaQ0KKw0KK2lmIFsgLXogIiRDVVJfRElSTU9ERSIgXQ0KK3RoZW4N
CisJQ1VSX0RJUk1PREU9IjA3NTUiICMgdGhpcyBpcyBhZGR1c2VyJ3MgZGVm
YXVsdA0KK2ZpDQorDQoraWYgWyAkQ1VSX0RJUk1PREUgPSAiMDc1NSIgLW8g
JENVUl9ESVJNT0RFID0gIjc1NSIgXQ0KK3RoZW4NCisJZGJfc2V0IGFkZHVz
ZXIvaG9tZWRpci1wZXJtaXNzaW9uIHRydWUNCitlbGlmIFsgJENVUl9ESVJN
T0RFID0gIjA3NTEiIC1vICRDVVJfRElSTU9ERSA9ICI3NTEiIF0NCit0aGVu
DQorCWRiX3NldCBhZGR1c2VyL2hvbWVkaXItcGVybWlzc2lvbiBmYWxzZQ0K
K2Vsc2UNCisJQ0hBTkdFRD0xDQorZmkNCisNCitpZiBbIC16ICIkQ0hBTkdF
RCIgXQ0KK3RoZW4NCisJZGJfdW5yZWdpc3RlciBhZGR1c2VyL2hvbWVkaXIt
Y2hhbmdlZCB8fCB0cnVlDQorCWRiX2lucHV0IG1lZGl1bSBhZGR1c2VyL2hv
bWVkaXItcGVybWlzc2lvbiB8fCB0cnVlDQorCWRiX2dvIHx8IHRydWUNCitl
bHNlDQorCWRiX3JlZ2lzdGVyIGFkZHVzZXIvaG9tZWRpci1wZXJtaXNzaW9u
IGFkZHVzZXIvaG9tZWRpci1jaGFuZ2VkIHx8IHRydWUNCisJZGJfc2V0IGFk
ZHVzZXIvaG9tZWRpci1jaGFuZ2VkIHRydWUgfHwgdHJ1ZQ0KK2ZpDQpkaWZm
IC11ck4gYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvREVCSUFOL2NvbnRyb2wg
YWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC9ERUJJQU4vY29udHJv
bA0KLS0tIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL0RFQklBTi9jb250cm9s
CVRodSBKYW4gIDEgMTA6MDA6MDAgMTk3MA0KKysrIGFkZHVzZXItMy41MC5t
cGFsbWVyL2RlYmlhbi90bXAvREVCSUFOL2NvbnRyb2wJV2VkIE1heSAgNyAx
NzowMTo0MiAyMDAzDQpAQCAtMCwwICsxLDI3IEBADQorUGFja2FnZTogYWRk
dXNlcg0KK1ZlcnNpb246IDMuNTAuMg0KK1NlY3Rpb246IGJhc2UNCitQcmlv
cml0eTogaW1wb3J0YW50DQorQXJjaGl0ZWN0dXJlOiBhbGwNCitEZXBlbmRz
OiBwZXJsLWJhc2UgKD49NS42LjApLCBwYXNzd2QgKD49OTYxMDI1KSwgZGVi
Y29uZg0KK1N1Z2dlc3RzOiBsaWJsb2NhbGUtZ2V0dGV4dC1wZXJsLCBwZXJs
LW1vZHVsZXMsIGxpYm5ldC1sZGFwLXBlcmwsIGxpYnBhbS1sZGFwLCBsaWJu
c3MtbGRhcA0KK0luc3RhbGxlZC1TaXplOiA0NjQNCitNYWludGFpbmVyOiBS
b2xhbmQgQmF1ZXJzY2htaWR0IDxyYkBkZWJpYW4ub3JnPg0KK0Rlc2NyaXB0
aW9uOiBBZGQgYW5kIHJlbW92ZSB1c2VycyBhbmQgZ3JvdXBzDQorIFRoaXMg
cGFja2FnZSBpbmNsdWRlcyB0aGUgYWRkdXNlciBhbmQgZGVsdXNlciBjb21t
YW5kcyBmb3IgY3JlYXRpbmcNCisgYW5kIHJlbW92aW5nIHVzZXJzLg0KKyAu
DQorIG8gQWRkdXNlciBjYW4gY3JlYXRlIG5ldyB1c2VycyBhbmQgZ3JvdXBz
IGFuZCBhZGQgZXhpc3RpbmcgdXNlcnMgdG8NCisgICBleGlzdGluZyBncm91
cHMuDQorIG8gRGVsdXNlciBjYW4gcmVtb3ZlIHVzZXJzIGFuZCBncm91cHMg
YW5kIHJlbW92ZSB1c2VycyBmcm9tIGEgZ2l2ZW4NCisgICBncm91cC4NCisg
Lg0KKyBBZGRpbmcgdXNlcnMgd2l0aCBhZGR1c2VyIGlzIG11Y2ggZWFzaWVy
IHRoYW4gYWRkaW5nIHRoZW0gYnkgaGFuZC4NCisgQWRkdXNlciB3aWxsIGNo
b29zZSBhcHByb3ByaWF0ZSBVSUQgYW5kIEdJRCB2YWx1ZXMsIGNyZWF0ZSBh
IGhvbWUNCisgZGlyZWN0b3J5LCBjb3B5IHNrZWxldGFsIHVzZXIgY29uZmln
dXJhdGlvbiwgYWxsb3cgeW91IHRvIHNldCBhbg0KKyBpbml0aWFsIHBhc3N3
b3JkIGFuZCB0aGUgR0VDT1MgZmllbGQuDQorIC4NCisgRGVsdXNlciBjYW4g
b3B0aW9uYWxseSByZW1vdmUgYW5kIGJhY2t1cCB0aGUgdXNlcidzIGhvbWUg
ZGlyZWN0b3J5DQorIGFuZCBtYWlsIHNwb29sIG9yIGFsbCBmaWxlcyBvbiB0
aGUgc3lzdGVtIG93bmVkIGJ5IGhpbS4NCisgLg0KKyBPcHRpb25hbGx5IGEg
Y3VzdG9tIHNjcmlwdCBjYW4gYmUgZXhlY3V0ZWQgYWZ0ZXIgZWFjaCBvZiB0
aGUgY29tbWFuZHMuDQpkaWZmIC11ck4gYWRkdXNlci0zLjUwL2RlYmlhbi90
bXAvREVCSUFOL21kNXN1bXMgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFu
L3RtcC9ERUJJQU4vbWQ1c3Vtcw0KLS0tIGFkZHVzZXItMy41MC9kZWJpYW4v
dG1wL0RFQklBTi9tZDVzdW1zCVRodSBKYW4gIDEgMTA6MDA6MDAgMTk3MA0K
KysrIGFkZHVzZXItMy41MC5tcGFsbWVyL2RlYmlhbi90bXAvREVCSUFOL21k
NXN1bXMJV2VkIE1heSAgNyAxNzowMTo0MSAyMDAzDQpAQCAtMCwwICsxLDM1
IEBADQorMzNlMThiZmU1N2NiMjRiZWRlMGJjMDhmNWQxY2Y4MWEgIHVzci9z
YmluL2FkZHVzZXINCisxZTJiOTJjYmU5NDhkYWNmMjM1NTY1MTkzY2NhNjNi
YyAgdXNyL3NiaW4vZGVsdXNlcg0KKzVkY2U4YjM5OGJlMmI3MTMyZmEzYTI1
Y2VkYTgyZjVkICB1c3Ivc2hhcmUvYWRkdXNlci9hZGR1c2VyLmNvbmYNCisy
NDVmOGIyNWVmNjBiZjc1Y2RlZjI5YzdjMWZhYmYzNiAgdXNyL3NoYXJlL2Fk
ZHVzZXIvYWRkdXNlcl9sZGFwLmNvbmYNCis2MTIwOWViYmUxMDRmNTY3MTEz
Y2U2MmRiOGEwMzVjNiAgdXNyL3NoYXJlL2RvYy9hZGR1c2VyL2V4YW1wbGVz
L0lOU1RBTEwNCiszYzkwMzY0Y2VhZTdlOWYxYTkyNGYxYjIwNTAxMDM3MSAg
dXNyL3NoYXJlL2RvYy9hZGR1c2VyL2V4YW1wbGVzL1JFQURNRQ0KKzg1MDU4
N2MxODliODAxN2JkMTExZTljNGQ0MDkyOWU2ICB1c3Ivc2hhcmUvZG9jL2Fk
ZHVzZXIvZXhhbXBsZXMvYWRkdXNlci5sb2NhbA0KKzYxZjA4MGZiYzZkNDY2
YTIyMDg0NTk0NWEwYWMzMzI0ICB1c3Ivc2hhcmUvZG9jL2FkZHVzZXIvZXhh
bXBsZXMvYWRkdXNlci5sb2NhbC5jb25mDQorMDhkNDhmNzkyZDQ5ZGY2NDc0
ZTAwMWZjNGUxNGNkNjcgIHVzci9zaGFyZS9kb2MvYWRkdXNlci9jaGFuZ2Vs
b2cuZ3oNCiszM2U4NTMyZTVjYzFhYTQ2ODEyNGEwODE3ZDAyMjBhYSAgdXNy
L3NoYXJlL2RvYy9hZGR1c2VyL2NvcHlyaWdodA0KK2ZkMmRjY2ExZThkZjcx
ZDUyZGU5Y2Y2YTNlY2MzMTEyICB1c3Ivc2hhcmUvZG9jL2FkZHVzZXIvVE9E
Ty5neg0KK2NlYmZhNDlmNzRlZGExZjBjOWNiY2EzMTMyMTBkMmUyICB1c3Iv
c2hhcmUvZG9jL2FkZHVzZXIvUkVBRE1FLkxEQVAuZ3oNCithMjA0YTYzY2Jh
YWYyNTlkYTIxYTc3NGFiZDdjYjUwOSAgdXNyL3NoYXJlL3Blcmw1L0RlYmlh
bi9BZGR1c2VyQ29tbW9uLnBtDQorZDE4NzNmYzAxNmYyODQ4ZmI4Yjk4MDg2
NmRjOWIyYTAgIHVzci9zaGFyZS9wZXJsNS9EZWJpYW4vQWRkdXNlckZpbGUu
cG0NCis4NzkzMmM1NTVkNTU0MzA1NWZhMDI4YjUzMzU4ODZhMCAgdXNyL3No
YXJlL3Blcmw1L0RlYmlhbi9BZGR1c2VyTERBUC5wbQ0KK2IzNzc0NTBiZTI4
OTU4ODhiMjlhNzU1NjMwMjI0MmUyICB1c3Ivc2hhcmUvbWFuL21hbjUvYWRk
dXNlci5jb25mLjUuZ3oNCis1NTZmN2NhOGY4ZmNmMDc4NGIzNjhjYzE4NWQy
Njg5OSAgdXNyL3NoYXJlL21hbi9tYW41L2RlbHVzZXIuY29uZi41Lmd6DQor
OTFkZGFkODc3OTYzOTE5MTJmMjI3Mzc2NWVjZDFhMTIgIHVzci9zaGFyZS9t
YW4vbWFuOC9kZWx1c2VyLjguZ3oNCitlYjY4OTNjNmNmMjY3NGRkODFiMzUy
MDFhMTRiY2Q1MCAgdXNyL3NoYXJlL21hbi9tYW44L2FkZHVzZXIuOC5neg0K
KzkyMWVjNDRlYTRiYjY1ZDI3Nzk2MzI2Y2Y0NWY1YWU3ICB1c3Ivc2hhcmUv
bWFuL3J1X1JVL21hbjUvYWRkdXNlci5jb25mLjUuZ3oNCithMGI2OTA0NWI5
ZjVmMDY1MzhkOTUzYjRhNDg3M2NmYiAgdXNyL3NoYXJlL21hbi9ydV9SVS9t
YW41L2RlbHVzZXIuY29uZi41Lmd6DQorMzMyYzI1MDViMDc3ZDYxOGYzMWJl
ZGIyMDI3YzNmMjIgIHVzci9zaGFyZS9tYW4vcnVfUlUvbWFuOC9hZGR1c2Vy
LjguZ3oNCisyN2JmOGZmNTU5YzNmMWNiYTg5ZmQ5MTVhYzZhNmYzNCAgdXNy
L3NoYXJlL21hbi9ydV9SVS9tYW44L2RlbHVzZXIuOC5neg0KKzIwNWVkZmQw
YWFlMmUzNTkxODdkMGMxNjI3NTM3ZTNkICB1c3Ivc2hhcmUvbWFuL2ZyX0ZS
L21hbjUvYWRkdXNlci5jb25mLjUuZ3oNCis1MDg1ZDdhZTJlODRiNDRiZDZh
M2Y2YzBjOWFlMWUwMSAgdXNyL3NoYXJlL2xvY2FsZS9qYS9MQ19NRVNTQUdF
Uy9hZGR1c2VyLm1vDQorZmI4M2UyYjZhOGUzMmZmYjMzNjY5MmU2MmNkZWE5
YWQgIHVzci9zaGFyZS9sb2NhbGUvZnIvTENfTUVTU0FHRVMvYWRkdXNlci5t
bw0KKzU4ZDY2MjNmNzVhODg3OGU4MzI5YTcwNjk1YTAxMjYzICB1c3Ivc2hh
cmUvbG9jYWxlL2RlL0xDX01FU1NBR0VTL2FkZHVzZXIubW8NCis1ZTUyY2I2
ODRmOWM3MTA3ODVmYmEyMjY1MmYxYWY1OCAgdXNyL3NoYXJlL2xvY2FsZS9w
dF9CUi9MQ19NRVNTQUdFUy9hZGR1c2VyLm1vDQorMDMyODIyNGIwNjFkZTgz
NWZiM2MwYjg4ZGY5NzA5MDggIHVzci9zaGFyZS9sb2NhbGUvZXMvTENfTUVT
U0FHRVMvYWRkdXNlci5tbw0KKzQ4NmFmYWEyZThiNGJmOGI4YmIyNDA3Nzg4
MDI3OWYzICB1c3Ivc2hhcmUvbG9jYWxlL2tvL0xDX01FU1NBR0VTL2FkZHVz
ZXIubW8NCis1NGM5MWQwZGJhMDliMDI2MjRiNThiYWQ0ZGY5YzVmMSAgdXNy
L3NoYXJlL2xvY2FsZS9ydS9MQ19NRVNTQUdFUy9hZGR1c2VyLm1vDQorMTMy
MWNkMDUyNDU3OWRkOGRlMTVjZjE0OWE4MzM4ZTUgIHVzci9zaGFyZS9sb2Nh
bGUvcGwvTENfTUVTU0FHRVMvYWRkdXNlci5tbw0KKzA4ZDQ2MDA5YWRhYmI5
ZTFhYjM0ODM2ZmNlODQyODFkICB1c3Ivc2hhcmUvbG9jYWxlL25sL0xDX01F
U1NBR0VTL2FkZHVzZXIubW8NCiswYmIyN2JhNDQ5NzFmODQyMWYyN2UxOTEx
MDdhOGQwZSAgdXNyL3NoYXJlL2xvY2FsZS9kYS9MQ19NRVNTQUdFUy9hZGR1
c2VyLm1vDQorZjlkYTkyZTRiNDIzZWRkNmVjYmIwYjhjZWVkNTQ0NTUgIHVz
ci9zaGFyZS9sb2NhbGUvY2EvTENfTUVTU0FHRVMvYWRkdXNlci5tbw0KZGlm
ZiAtdXJOIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL0RFQklBTi9wb3N0aW5z
dCBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1wL0RFQklBTi9wb3N0
aW5zdA0KLS0tIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL0RFQklBTi9wb3N0
aW5zdAlUaHUgSmFuICAxIDEwOjAwOjAwIDE5NzANCisrKyBhZGR1c2VyLTMu
NTAubXBhbG1lci9kZWJpYW4vdG1wL0RFQklBTi9wb3N0aW5zdAlXZWQgTWF5
ICA3IDE3OjAxOjQxIDIwMDMNCkBAIC0wLDAgKzEsNTggQEANCisjIS9iaW4v
c2ggLWUNCisNCisjIGNyZWF0ZSBhbiBpbml0aWFsIGFkZHVzZXIgY29uZmln
ZmlsZSBpZiBpdCBkb2VzIG5vdCBleGlzdCB5ZXQNCitpZiBbICEgLWUgIi9l
dGMvYWRkdXNlci5jb25mIiBdOyB0aGVuDQorCWNwIC91c3Ivc2hhcmUvYWRk
dXNlci9hZGR1c2VyLmNvbmYgL2V0Yy9hZGR1c2VyLmNvbmYNCitmaQ0KKw0K
KyMgQ2hlY2sgaWYgd2UndmUgZ290IG9uZSBvZiB0aG9zZSBvbGQsIHNob2Rk
eSBzeXN0ZW1zIHdoaWNoIGhhcyBhIHNlcGFyYXRlDQorIyBkZWx1c2VyLmNv
bmYgZmlsZSwgYW5kIGludGVncmF0ZSBpdCB3aXRoIGFkZHVzZXIuY29uZg0K
K2lmIFsgLWUgL2V0Yy9kZWx1c2VyLmNvbmYgXTsgdGhlbg0KKwljYXQgPj4g
L2V0Yy9hZGR1c2VyLmNvbmYgPDwgRU9GDQorDQorIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjDQorIyBPUFRJT05TIEZPUiBERUxVU0VSDQorIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjDQorRU9GDQorDQorCWNhdCAvZXRjL2RlbHVzZXIu
Y29uZiA+PiAvZXRjL2FkZHVzZXIuY29uZg0KKwlybSAtZiAvZXRjL2RlbHVz
ZXIuY29uZg0KK2ZpDQorDQorIyBMb29rIHRvIHNlZSBpZiB3ZSBuZWVkIHRv
IGFkZCB0aGUgbmVjZXNzYXJ5IGZyYWdtZW50cyB0byBhZGR1c2VyLmNvbmYg
Zm9yDQorIyBMREFQIGNvbXBhdGliaWxpdHkuDQoraWYgZHBrZyAtLWNvbXBh
cmUtdmVyc2lvbnMgIiQyIiBsZSAzLjUwOyB0aGVuDQorZWNobyAiZHVtcGlu
ZyBhZGR1c2VyX2xkYXAuY29uZiINCisJY2F0IC91c3Ivc2hhcmUvYWRkdXNl
ci9hZGR1c2VyX2xkYXAuY29uZiA+PiAvZXRjL2FkZHVzZXIuY29uZg0KKwlj
aG1vZCAwNjAwIC9ldGMvYWRkdXNlci5jb25mDQorZmkNCisNCisjIG1vZGlm
eSBhZGR1c2VyLmNvbmYNCitpZiAuIC91c3Ivc2hhcmUvZGViY29uZi9jb25m
bW9kdWxlDQordGhlbgkNCisJZGJfZ2V0IGFkZHVzZXIvaG9tZWRpci1jaGFu
Z2VkIHx8IFJFVD0iZmFsc2UiDQorCWlmIFsgIiRSRVQiICE9ICJ0cnVlIiBd
DQorCXRoZW4NCisJCWRiX2dldCBhZGR1c2VyL2hvbWVkaXItcGVybWlzc2lv
biB8fCBSRVQ9InRydWUiDQorCQlpZiBbICIkUkVUIiA9ICJmYWxzZSIgXQ0K
KwkJdGhlbg0KKwkJCU5FV19QRVJNSVNTSU9OPSIwNzUxIg0KKwkJZWxzZQ0K
KwkJCU5FV19QRVJNSVNTSU9OPSIwNzU1Ig0KKwkJZmkNCisNCisJCWlmIGdy
ZXAgLXEgJ15ESVJfTU9ERT0nIC9ldGMvYWRkdXNlci5jb25mDQorCQl0aGVu
DQorCQkJT0xEX1BFUk1JU1NJT049JChjYXQgL2V0Yy9hZGR1c2VyLmNvbmZ8
c2VkIC1uZSAncy9eRElSX01PREU9XChbMC05XSpcKS4qJC9cMS9wJykNCisJ
CQlpZiBbICIkT0xEX1BFUk1JU1NJT04iICE9ICIkTkVXX1BFUk1JU1NJT04i
IF07IHRoZW4NCisJCQkJbXYgL2V0Yy9hZGR1c2VyLmNvbmYgL2V0Yy9hZGR1
c2VyLmNvbmYuZHBrZy1zYXZlDQorCQkJCWNhdCAvZXRjL2FkZHVzZXIuY29u
Zi5kcGtnLXNhdmUgfCBcDQorCQkJCXNlZCAtZSAicy9eRElSX01PREU9Liok
L0RJUl9NT0RFPSRORVdfUEVSTUlTU0lPTi8iID4gXA0KKwkJCQkvZXRjL2Fk
ZHVzZXIuY29uZg0KKwkJCWZpDQorCQllbHNlDQorCQkJY3AgL2V0Yy9hZGR1
c2VyLmNvbmYgL2V0Yy9hZGR1c2VyLmNvbmYuZHBrZy1zYXZlDQorCQkJZWNo
byAiRElSX01PREU9JE5FV19QRVJNSVNTSU9OIiA+PiAvZXRjL2FkZHVzZXIu
Y29uZg0KKwkJZmkNCisJZmkNCitmaQ0KZGlmZiAtdXJOIGFkZHVzZXItMy41
MC9kZWJpYW4vdG1wL0RFQklBTi9wb3N0cm0gYWRkdXNlci0zLjUwLm1wYWxt
ZXIvZGViaWFuL3RtcC9ERUJJQU4vcG9zdHJtDQotLS0gYWRkdXNlci0zLjUw
L2RlYmlhbi90bXAvREVCSUFOL3Bvc3RybQlUaHUgSmFuICAxIDEwOjAwOjAw
IDE5NzANCisrKyBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1wL0RF
QklBTi9wb3N0cm0JV2VkIE1heSAgNyAxNzowMTo0MSAyMDAzDQpAQCAtMCww
ICsxLDEwIEBADQorIyEgL2Jpbi9zaA0KK3NldCAtZQ0KKw0KK2lmIFsgIiQx
IiA9ICJwdXJnZSIgXTsgdGhlbg0KKyAgICBybSAtZiAvZXRjL2FkZHVzZXIu
Y29uZiAvZXRjL2FkZHVzZXIuY29uZi5kcGtnLXNhdmUNCisgICAgaWYgWyAt
ZSAvdXNyL3NoYXJlL2RlYmNvbmYvY29uZm1vZHVsZSBdOyB0aGVuDQorICAg
ICAgICAuIC91c3Ivc2hhcmUvZGViY29uZi9jb25mbW9kdWxlDQorICAgICAg
ICBkYl9wdXJnZQ0KKyAgICBmaQ0KK2ZpDQpkaWZmIC11ck4gYWRkdXNlci0z
LjUwL2RlYmlhbi90bXAvREVCSUFOL3RlbXBsYXRlcyBhZGR1c2VyLTMuNTAu
bXBhbG1lci9kZWJpYW4vdG1wL0RFQklBTi90ZW1wbGF0ZXMNCi0tLSBhZGR1
c2VyLTMuNTAvZGViaWFuL3RtcC9ERUJJQU4vdGVtcGxhdGVzCVRodSBKYW4g
IDEgMTA6MDA6MDAgMTk3MA0KKysrIGFkZHVzZXItMy41MC5tcGFsbWVyL2Rl
Ymlhbi90bXAvREVCSUFOL3RlbXBsYXRlcwlXZWQgTWF5ICA3IDE3OjAxOjQx
IDIwMDMNCkBAIC0wLDAgKzEsMTA4IEBADQorVGVtcGxhdGU6IGFkZHVzZXIv
aG9tZWRpci1wZXJtaXNzaW9uDQorVHlwZTogYm9vbGVhbg0KK0RlZmF1bHQ6
IHRydWUNCitEZXNjcmlwdGlvbjogRG8geW91IHdhbnQgc3lzdGVtIHdpZGUg
cmVhZGFibGUgaG9tZSBkaXJlY3Rvcmllcz8NCisgTm9ybWFsbHksIGhvbWUg
ZGlyZWN0b3JpZXMgY2FuIGJlIHZpZXdlZCBieSBhbGwgdXNlcnMgb24gdGhl
IHN5c3RlbS4gSWYNCisgeW91IHdhbnQgdG8gaW5jcmVhc2UgdGhlIHNlY3Vy
aXR5L3ByaXZhY3kgb24geW91ciBzeXN0ZW0sIHlvdSBtaWdodCB3YW50DQor
IHlvdXIgaG9tZSBkaXJlY3RvcmllcyBvbmx5IHJlYWRhYmxlIGJ5IHRoZSAg
dXNlci4gSWYgeW91IGFyZSB1bnN1cmUsDQorIGFuc3dlciB5ZXMgdG8gZW5h
YmxlIHN5c3RlbSB3aWRlIHJlYWRhYmxlIGhvbWUgZGlyZWN0b3JpZXMuDQor
IC4NCisgVGhpcyB3aWxsIG9ubHkgYWZmZWN0IGhvbWUgZGlyZWN0b3JpZXMg
b2YgdXNlcnMgYWRkZWQgd2l0aCB0aGUgYWRkdXNlcg0KKyBwcm9ncmFtIGxh
dGVyLg0KK0Rlc2NyaXB0aW9uLWRlOiBN9mNodGVuIFNpZSBTeXN0ZW0td2Vp
dCBsZXNiYXJlIEhlaW1hdHZlcnplaWNobmlzc2U/DQorIE5vcm1hbGVyd2Vp
c2Uga/ZubmVuIGRpZSBIZWltYXR2ZXJ6ZWljaG5pc3NlIGRlciBCZW51dHpl
ciB2b24gYWxsZW4gYW5kZXJlbg0KKyBCZW51dHplcm4gYXVmIGRlbSBSZWNo
bmVyIGdlbGVzZW4gd2VyZGVuLiBXZW5uIFNpZSBkaWUNCisgU2ljaGVyaGVp
dC9Qcml2YXRzcGjkcmUgZXJo9mhlbiBt9mNodGVuLCBkYW5uIGlzdCBlcyBl
dmVudHVlbGwgc2lubnZvbGwsDQorIGRhc3MgZGllIEhlaW1hdHZlcnplaWNo
bmlzc2UgbmljaHQgdm9uIGFsbGVuIEJlbnV0emVybiBnZWxlc2VuIHdlcmRl
bg0KKyBr9m5uZW4uIFdlbm4gU2llIHNpY2ggbmljaHQgc2ljaGVyIHNpbmQs
IHNvbGx0ZW4gU2llIFN5c3RlbS13ZWl0IGxlc2JhcmUNCisgSGVpbWF0dmVy
emVpY2huaXNzZSBha3RpdmllcmVuLg0KKyAuDQorIERpZXMgaGF0IG51ciBl
aW5lbiBFZmZla3QgZvxyIEJlbnV0emVyLCBkaWUgbWl0IGRlbSBQcm9ncmFt
bSBhZGR1c2VyDQorIHNw5HRlciBoaW56dWdlZvxndCB3ZXJkZW4uDQorRGVz
Y3JpcHRpb24tZnI6IFZvdWxlei12b3VzIGRlcyBy6XBlcnRvaXJlcyBwZXJz
b25uZWxzIGxpc2libGVzIHBhciB0b3VzoD8NCisgTGVzIHLpcGVydG9pcmVz
IHBlcnNvbm5lbHMgc29udCBoYWJpdHVlbGxlbWVudCBsaXNpYmxlcyBwYXIg
dG91cyBsZXMNCisgdXRpbGlzYXRldXJzIGR1IHN5c3TobWUuIFNpIHZvdXMg
dm91bGV6IHJlbmRyZSB2b3RyZSBzeXN06G1lIHBsdXMNCisgc/tyIG91IHBs
dXMgY29uZmlkZW50aWVsLCB2b3VzIHBvdXZleiBk6WNpZGVyIHF1ZSBsZXMg
culwZXJ0b2lyZXMNCisgcGVyc29ubmVscyBuZSBzZXJvbnQgbGlzaWJsZXMg
cXVlIHBhciBsZXVyIHByb3Byael0YWlyZS4gU2kgdm91cyDqdGVzDQorIGlu
ZOljaXMsIHLpcG9uZGV6IKugeWVzoLsgcG91ciBhdm9pciBkZXMgculwZXJ0
b2lyZXMgcGVyc29ubmVscw0KKyBsaXNpYmxlcyBwYXIgdG91cy4NCisgLg0K
KyBDZWxhIG5lIGNvbmNlcm5lIHF1ZSBsZXMgculwZXJ0b2lyZXMgcGVyc29u
bmVscyBkZXMgdXRpbGlzYXRldXJzDQorIHF1aSBzZXJvbnQgYWpvdXTpcyBh
dmVjIGxhIGNvbW1hbmRlIGFkZHVzZXIuDQorRGVzY3JpcHRpb24tbm86INhu
c2tlciBkdSBnbG9iYWx0IGxlc2JhcmUgaGplbW1la2F0YWxvZ2VyPw0KKyBO
b3JtYWx0IGthbiBpbm5ob2xkZXQgaSBoamVtbWVrYXRhbG9nZW5lIHNlZXMg
YXYgYWxsZSBicnVrZXJuZSBw5SBzeXN0ZW1ldC4NCisgSHZpcyBkdSD4bnNr
ZXIg+Gt0IHNpa2tlcmhldC9rb25maWRlbnNpYWxpdGV0IHDlIHN5c3RlbWV0
IGRpdHQsIGthbiBkZXQgduZyZQ0KKyD4bnNrZWxpZyBhdCBoamVtbWVrYXRh
bG9nZW5lIGJhcmUgZXIgbGVzYmFyZSBhdiBlaWVyZW4uIEh2aXMgZHUgZXIg
dXNpa2tlciwNCisgc3ZhciBqYSBmb3Ig5SBoYSBnbG9iYWx0IGxlc2JhcmUg
aGplbW1la2F0YWxvZ2VyLg0KK0Rlc2NyaXB0aW9uLXN2OiBWaWxsIGR1IGF0
dCBoZW1tYWthdGFsb2dlciBza2EgdmFyYSBs5HNiYXJhIGb2ciBoZWxhIHN5
c3RlbWV0Pw0KKyBOb3JtYWx0IGthbiBoZW1tYWthdGFsb2dlciBs5HNhcyBh
diBhbGxhIGFuduRuZGFyZSBw5SBzeXN0ZW1ldC4gT20gZHUgdmlsbA0KKyD2
a2Egc+RrZXJoZXRlbi9hdnNraWxkaGV0ZW4gaSBkaXR0IHN5c3RlbSBz5SBr
YW4gZGV0IHZhcmEgZW4gYnJhIGlk6SBhdHQNCisgZW5kYXN0IGf2cmEgaGVt
bWFrYXRhbG9nZXIgbORzYmFyYSBhdiBhbnbkbmRhcmVuIHNq5Gx2LiBPbSBk
dSDkciBvc+RrZXIsDQorIHN2YXJhIGphIGb2ciBhdHQgZ/ZyYSBoZW1tYWth
dGFsb2dlcm5hIGzkc2JhcmEgZvZyIGhlbGEgc3lzdGVtZXQuDQorRGVzY3Jp
cHRpb24tZXM6IL9RdWllcmUgcXVlIHRvZG8gZWwgc2lzdGVtYSBwdWVkYSBs
ZWVyIGxhcyBjdWVudGFzIGRlIHVzdWFyaW8/DQorIE5vcm1hbG1lbnRlIGxh
cyBjdWVudGFzIGRlIHVzdWFyaW8gcHVlZGVuIHNlciB2aXN0YXMgcG9yIGN1
YWxxdWllciB1c3VhcmlvDQorIGRlbCBzaXN0ZW1hLiBTaSBxdWllcmUgaW5j
cmVtZW50YXIgbGEgc2VndXJpZGFkL3ByaXZhY2lkYWQgZGUgc3Ugc2lzdGVt
YQ0KKyBwdWVkZSBxdWVyZXIgcXVlIHN1cyBjdWVudGFzIHPzbG8gcHVlZGFu
IHNlciBsZe1kYXMgcG9yIGVsIGR1ZfFvIGRlIGxhDQorIGN1ZW50YS4gU2kg
bm8gZXN04SBzZWd1cm8gcmVzcG9uZGEgc+0gcGFyYSBhY3RpdmFyIGxhIGxl
Y3R1cmEgZ2xvYmFsIGRlIGxhcw0KKyBjdWVudGFzIGRlIHVzdWFyaW8uDQor
RGVzY3JpcHRpb24tcnU6IOjP1MnUxSDTxMXMwdTYIMTPzcHbzsnFIMvB1MHM
z8fJIMTP09TV0M7ZzckgxMzRIN7Uxc7J0SDX08XNINcg08nT1MXNxT8NCisg
78LZ3s7PIMTPzcHbzsnFIMvB1MHMz8fJIM3Px9XUINDSz9PNwdTSydfB1NjT
0SDX08XNySDQz8zY2s/XwdTFzNHNySDTydPUxc3ZLg0KKyD3IMPFzNHIINDP
19nbxc7J0SDCxdrP0MHTzs/T1Mkvy8/OxsnExc7DycHM2M7P09TJINcg18Hb
xcog08nT1MXN2Swg18HNINfF0s/R1M7PDQorINrByM/exdTT0Swg3tTPwtkg
xM/NwdvOycUgy8HUwczPx8kg0M/M2NrP18HUxczFyiDC2cwg3snUwcXN2SDU
z8zYy88gyc3JINPBzcnNyS4NCisg5dPMySDX2SDOxSDV18XSxc7ZLCDP1NfF
1NjUxSB5ZXMsINTPx8TBIMTPzcHbzsnFIMvB1MHMz8fJIMLVxNXUIMTP09TV
0M7ZIMTM0Q0KKyDe1MXOydEg19PFzS4NCisgLg0KKyD81M8gz9TOz9PJ1NPR
INTPzNjLzyDLIMTPzcHbzsnNIMvB1MHMz8fBzSDQz8zY2s/XwdTFzMXKLCDL
z9TP0tnFINDP2tbFIMLVxNXUDQorIMTPwsHXzNHU2NPRINDSz8fSwc3Nz8og
YWRkdXNlci4NCitEZXNjcmlwdGlvbi1ubDogV2lsdCB1IHdlcmVsZHdpamQg
bGVlc2JhcmUgaG9tZSBkaXJlY3Rvcmllcz8NCisgTm9ybWFhbCBrdW5uZW4g
YWxsZSBob21lIGRpcmVjdG9yaWVzIGRvb3IgYWxsZSBnZWJydWlrZXJzIG9w
IHV3IHN5c3RlZW0NCisgZ2VsZXplbiB3b3JkZW4sIHplIHppam4gZGFuIHdl
cmVsZHdpamQgbGVlc2JhYXIuIEluZGllbiB1IGRlIGJldmVpbGlnaW5nDQor
IG9mIHByaXZhY3kgb3AgdXcgc3lzdGVlbSB3aWx0IHZlcmhvZ2VuLCBrdW50
IHUgb3ZlcndlZ2VuIG9tIGRlIGhvbWUNCisgZGlyZWN0b3JpZXMgYWxsZWVu
IGxlZXNiYWFyIHRlIG1ha2VuIHZvb3IgZGUgZ2VicnVpa2VyIHplbGYuIElu
ZGllbiB1DQorIG5pZXQgemVrZXIgYmVudCwgYW50d29vcmQgZGFuIGphIG9w
IGhldCB3ZXJlbGR3aWpkIGxlZXNiYWFyIG1ha2VuIHZhbg0KKyBob21lIGRp
cmVjdG9yaWVzLg0KK0Rlc2NyaXB0aW9uLXB0X0JSOiBWb2PqIHF1ZXIgdGVy
IHNldXMgZGlyZXTzcmlvcyAnaG9tZScgdmlz7XZlaXMgcG9yIHRvZG9zPw0K
KyBOb3JtYWxtZW50ZSwgZGlyZXTzcmlvcyBob21lIHBvZGVtIHNlciB2aXN0
b3MgcG9yIHRvZG9zIG9zIHVzdeFyaW9zIGRvDQorIHNpc3RlbWEuIFNlIHZv
Y+ogcXVlciBhdW1lbnRhciBhIHNlZ3VyYW7nYS9wcml2YWNpZGFkZSBubyBz
ZXUgc2lzdGVtYSwNCisgdm9j6iBwb2RlIHF1ZXJlciBzZXUgZGlyZXTzcmlv
IGhvbWUgdmlz7XZlbCBhcGVuYXMgcGFyYSBvIHVzdeFyaW8uIFNlIHZvY+oN
CisgbuNvIHRlbSBjZXJ0ZXphLCByZXNwb25kYSBzaW0gcGFyYSBoYWJpbGl0
YXIgZGlyZXTzcmlvcyBob21lIHZpc+12ZWlzDQorIHBvciBxdWFscXVlciBw
ZXNzb2EuDQorRGVzY3JpcHRpb24tcm86IFZyZWkgY2EgZGlyZWN0b2FyZWxl
IGRpbiAvaG9tZSBz4yBmaWUgdml6aWJpbGUgdHV0dXJvcj8NCisgzm4gbW9k
IG5vcm1hbCwgb3JpY2luZSBwb2F0ZSB2ZWRlYSBkaXJlY3RvYXJlbGUgY2Vs
b3JsYWz+aSB1dGlsaXphdG9yaS4NCisgRGFj4yB2cmVpIHPjIG3jcmW6dGkg
c2VjdXJpdGF0ZWEvc2VjcmV0aXphcmVhIO5uIHNpc3RlbSwgcG/+aSBmYWNl
IA0KKyBjYSBmaWVjYXJlIHV0aWxpemF0b3Igc+MgbnUgdmFk4yBjb27+aW51
dHVsIGRpcmVjdG9hcmVsb3IgY2Vsb3JsYWz+aQ0KKyB1dGlsaXphdG9yaS4g
RGFj4yBudSBlunRpIHNpZ3VyLCBy43NwdW5kZSBhZmlybWF0aXYuDQorRGVz
Y3JpcHRpb24ta286IMioILXwt7rF5LiuuKYgvcO9usXbIMD8w7y/obytIMDQ
wLsgvPYgwNa1tbfPIMfSse6/5D8NCisgurjF6ywgyKggtfC3usXkuK60wiC9
w726xdvAxyC48LXnILvnv+vA2rChILq8ILz2IMDWvcC0z7TZLiC4uL7gIL3D
vbrF28DHDQorILq4vsgvu+e7/ciwILq4yKO4piDB9bChvcPFsLHmIL/4x9G0
2bjpLCDIqCC18Le6xeS4rrimILHXILvnv+vA2ri4ILq8ILz2DQorIMDWtbW3
zyDHz7HiuKYgv/jH0iCwzcDUtM+02S4gyK69x8fPwfYgvsq02bjpLCC/ubfO
ILTrtOTH2LytIL3DvbrF2yDA/MO8v6G8rQ0KKyDIqCC18Le6xeS4rrimIMDQ
wLsgvPYgwNaw1CDHz7y8v+QuDQorIC4NCisgwMywzcC6ILTZwL2/oSBhZGR1
c2VyIMfBt86x17elwLi3ziDD37Chtcggu+e/68DawMcgyKggtfC3usXkuK6/
obi4IL+1x+LAuw0KKyDB2SCwzcDUtM+02S4NCitEZXNjcmlwdGlvbi1kYTog
2G5za2VyIGR1IGdsb2JhbHQgbOZzYmFyZSBoamVtbWVrYXRhbG9nZXI/DQor
IE5vcm1hbHQga2FuIGluZGhvbGRldCBhZiBlbiBicnVnZXJzIGhqZW1tZWth
dGFsb2cgbOZzZXMgYWYgYWxsZQ0KKyBicnVnZXJlIHDlIHN5c3RlbWV0LiBG
b3IgYXQg+GdlIHN5c3RlbWV0cyBzaWtrZXJoZWQvYnJ1Z2VybmVzDQorIHBy
aXZhdGxpdiBrYW4gZGV0IHbmcmUg+G5za3bmcmRpZ3QsIGF0IGdpdmUgaHZl
ciBicnVnZXIgc2luIGVnZW4NCisgZ3J1cHBlLCBz5WxlZGVzIGF0IGluZGhv
bGRldCBhdCBlbiBicnVnZXJzIGhqZW1tZWthdGFsb2cgaWtrZSBrYW4gc2Vz
DQorIGFmIGFuZHJlIGVuZCBicnVnZXJlbiBzZWx2Lg0KKyAuDQorIERldHRl
IHZpbCBrdW4gZuUgaW5kZmx5ZGVsc2UgcOUgaGplbW1la2F0YWxvZ2VyIGRl
ciBlZnRlcmb4bGdlbmRlDQorIGJsaXZlciB0aWxm+GpldCBtZWQgcHJvZ3Jh
bW1ldCBhZGR1c2VyLg0KK0Rlc2NyaXB0aW9uLXBsOiBDenkga2F0YWxvZ2kg
ZG9tb3dlIG1vZ7EgYnnmIHByemVnbLFkYW5lIHByemV6IHdzenlzdGtpY2g/
DQorIFphend5Y3phaiBrYXRhbG9naSBkb21vd2UgbW9nsSBieeYgcHJ6ZWds
sWRhbmUgcHJ6ZXogd3N6eXN0a2ljaCB1v3l0a293bmlr83cNCisgc3lzdGVt
dS4gSmW2bGkgY2hjZXN6IHp3aeprc3p5Y2ggYmV6cGllY3pl8XN0d28vcHJ5
d2F0bm+25iB3IHN3b2ltIHN5c3RlbWllDQorIG1vv2VzeiB6Yb95Y3p55iBz
b2JpZSBieSBrYXRhbG9naSBkb21vd2UgYnmzeSB0eWxrbyBkbyBvZGN6eXR1
IHW/eXRrb3duaWthLg0KKyBKZbZsaSBuaWUgamVzdGW2IHBld2llbiBjbyB3
eWJyYeYsIHd5YmllcnogJ3RhaycgYnkgdXN0YXdp5iBtb79saXdvtuYNCisg
cHJ6ZWdssWRhbmlhIGthdGFsb2fzdyBwcnpleiB3c3p5c3RraWNoLg0KKyAu
DQorIE9wY2phIHRhIHphZHppYbNhIGRvcGllcm8gZGxhIG5vd3ljaCB1v3l0
a293bmlr83cgZG9kYW55Y2ggcHJ6ZXogYWRkdXNlci4NCitEZXNjcmlwdGlv
bi1qYTogpduhvKXgpcelo6Xspa+lyKXqpPLCvqXmobyltqSrpOnGyaThpOuk
6KSmpMukt6TepLmkqz8NCisgxMy+76GipduhvKXgpcelo6Xspa+lyKXqpM+l
t6W5pcal4L7lpM7BtKXmobyltqSrpOm4q6TrpLOkyKSspMekraTepLmhow0K
KyCk4qS3pbeluaXGpeCkzqW7pa2l5aXqpcalo6Tkpdel6aWkpdClt6G8pPKy
/sGxpLekv6SxpOyk0KGipduhvKXgDQorIKXHpaOl7KWvpcil6qTPpL2kzqXm
obyltqSrpOmkt6Srxsmk4aTKpK+kt6TGpLek3qSmpLOkyKSspMekraTepLmh
ow0KKyCk4qS3yqykq6TppMqksaTspNChoqW3pbmlxqXgwbTCzqSrpOml26G8
peClx6Wjpeylr6XIpeqkrMbJpOGk66TopKahog0KKyCh1qTPpKSh16Tywaqk
86THpK+kwKS1pKShow0KKyAuDQorIKSzpOykz6GiuL27/sXAsMq536TLIGFk
ZHVzZXIgpMfEybLDpLekv6XmobyltqTOpduhvKXgpcelo6Xspa+lyKXqDQor
IKTLpM6k37HGtsGkt6TepLmhow0KZGlmZiAtdXJOIGFkZHVzZXItMy41MC9k
ZWJpYW4vdG1wL3Vzci9zYmluL2FkZGdyb3VwIGFkZHVzZXItMy41MC5tcGFs
bWVyL2RlYmlhbi90bXAvdXNyL3NiaW4vYWRkZ3JvdXANCi0tLSBhZGR1c2Vy
LTMuNTAvZGViaWFuL3RtcC91c3Ivc2Jpbi9hZGRncm91cAlUaHUgSmFuICAx
IDEwOjAwOjAwIDE5NzANCisrKyBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJp
YW4vdG1wL3Vzci9zYmluL2FkZGdyb3VwCVdlZCBNYXkgIDcgMTc6MDE6NDEg
MjAwMw0KQEAgLTAsMCArMSw4OTAgQEANCisjIS91c3IvYmluL3BlcmwNCisj
DQorIyBhZGR1c2VyIDMuNTAuMg0KKyMNCisjIGFkZHVzZXI6IGEgdXRpbGl0
eSB0byBhZGQgdXNlcnMgdG8gdGhlIHN5c3RlbQ0KKyMgYWRkZ3JvdXA6IGEg
dXRpbGl0eSB0byBhZGQgZ3JvdXBzIHRvIHRoZSBzeXN0ZW0NCisNCisjIENv
cHlyaWdodCAoQykgMTk5NywgMTk5OCwgMTk5OSBHdXkgTWFvciA8bWFvckBk
ZWJpYW4ub3JnPg0KKyMgQ29weXJpZ2h0IChDKSAxOTk1IFRlZCBIYWplayA8
dGVkaGFqZWtAYm9vbWJveC5taWNyby51bW4uZWR1Pg0KKyMgICAgICAgICAg
ICAgICAgICAgICBJYW4gQS4gTXVyZG9jayA8aW11cmRvY2tAZ251LmFpLm1p
dC5lZHU+DQorIyBCdWdmaXhlcyBhbmQgb3RoZXIgaW1wcm92ZW1lbnRzIFJv
bGFuZCBCYXVlcnNjaG1pZHQgPHJiQGRlYmlhbi5vcmc+DQorIyBMREFQIHN1
cHBvcnQgcHJvZ3JhbW1lZCBieSBNYXR0aGV3IFBhbG1lciA8bXBhbG1lckBk
ZWJpYW4ub3JnPg0KKyMgR2VuZXJhbCBzY2hlbWUgb2YgdGhlIHByb2dyYW0g
YWRhcHRlZCBieSB0aGUgb3JpZ2luYWwgZGViaWFuICdhZGR1c2VyJw0KKyMg
IHByb2dyYW0gYnkgSWFuIEEuIE11cmRvY2sgPGltdXJkb2NrQGdudS5haS5t
aXQuZWR1Pi4NCisjDQorIyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0K
KyMgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCisjICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yDQorIyAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLg0KKyMNCisjICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyMg
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YNCisjICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUN
CisjICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuDQorIw0KKyMgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCisjICAg
IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlDQorIyAgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBU
ZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMw
NyAgVVNBDQorIw0KKyMNCisjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgdGhl
IHByb2dyYW0gY2FuIGJlIGNhbGxlZCBhczoNCisjDQorIyAgYWRkdXNlciBb
LS1ob21lIERJUl0gWy0tc2hlbGwgU0hFTExdIFstLXVpZCBJRF0gWy0tZmly
c3R1aWQgSURdDQorIyAgWy0tbGFzdHVpZCBJRF0gWy0taW5ncm91cCBHUk9V
UCB8IC0tZ2lkIElEXSBbLS1kaXNhYmxlZC1wYXNzd29yZF0NCisjICBbLS1k
aXNhYmxlZC1sb2dpbl0gWy0tZ2Vjb3MgR0VDT1NdIFstLW5vLWNyZWF0ZS1o
b21lXSB1c2VyDQorIyAgICAgIGFkZCBhIG5vcm1hbCB1c2VyIHRvIHRoZSBz
eXN0ZW0NCisjICAgICAgZXhhbXBsZTogYWRkdXNlciBmcmVkDQorIyAgICAg
ICRhY3Rpb24gPSAiYWRkdXNlciINCisjDQorIyAgYWRkdXNlciAtLWdyb3Vw
IFstLWdpZCBJRF0gZ3JvdXANCisjICBhZGRncm91cCBbLS1naWQgSURdIGdy
b3VwDQorIyAgICAgIGFkZCBhIHVzZXIgZ3JvdXANCisjICAgICAgZXhhbXBs
ZTogYWRkZ3JvdXAgcG93ZXJ1c2Vycw0KKyMgICAgICAkYWN0aW9uID0gImFk
ZGdyb3VwIg0KKyMNCisjICBhZGR1c2VyIC0tZ3JvdXAgLS1zeXN0ZW0gWy0t
Z2lkIEdJRF0gZ3JvdXANCisjICBhZGRncm91cCAtLXN5c3RlbSBbLS1naWQg
R0lEXSBncm91cA0KKyMgICAgICBhZGQgYSBzeXN0ZW0gZ3JvdXANCisjICAg
ICAgZXhhbXBsZTogYWRkZ3JvdXAgLS1zeXN0ZW0gLS1xdWlldCB3d3ctZGF0
YQ0KKyMgICAgICAkYWN0aW9uID0gImFkZHN5c2dyb3VwIg0KKyMNCisjICBh
ZGR1c2VyIC0tc3lzdGVtIFstLWhvbWUgRElSXSBbLS1zaGVsbCBTSEVMTF0g
Wy0tdWlkIElEXSBbLS1ncm91cCB8DQorIyAgLS1pbmdyb3VwIEdST1VQIHwg
LS1naWQgSURdIFstLWRpc2FibGVkLXBhc3N3b3JkXSBbLS1kaXNhYmxlZC1s
b2dpbl0NCisjICBbLS1nZWNvcyBHRUNPU10gWy0tbm8tY3JlYXRlLWhvbWVd
IHVzZXINCisjICAgICAgYWRkIGEgc3lzdGVtIHVzZXIuICBDcmVhdGUgYSBs
aWtlLW5hbWVkLCBsaWtlLWlkJ2QgZ3JvdXAgd2l0aA0KKyMgICAgICAtLWdy
b3VwLCBhZGQgdG8gYW4gZXhpc3RpbmcgZ3JvdXAgd2l0aCAtLWluZ3JvdXAg
b3IgLS1naWQuICBBZGQNCisjICAgICAgdG8gIm5vZ3JvdXAiIHdpdGggbmVp
dGhlci4NCisjICAgICAgZXhhbXBsZTogYWRkdXNlciAtLXN5c3RlbSAtLWhv
bWUgL2hvbWUvZ29waGVyLWRhdGEgLS1ncm91cCBnb3BoZXINCisjICAgICAg
JGFjdGlvbiA9ICJhZGRzeXN1c2VyIg0KKyMNCisjICBhZGR1c2VyIHVzZXIg
Z3JvdXANCisjICAgICAgYWRkIHRoZSBleGlzdGluZyB1c2VyIHRvIGFuIGV4
aXN0aW5nIGdyb3VwLg0KKyMgICAgICAkYWN0aW9uID0gImFkZHVzZXJ0b2dy
b3VwIg0KKyMNCisjICBhbGwgY29tbWFuZHMgdGFrZSB0aGUgZm9sbG93aW5n
IG9wdGlvbnM6DQorIyAgICAgIC0tcXVpZXQgICAgICAgICAgZG9uJ3QgZ2l2
ZSBwcm9ncmVzcyBpbmZvcm1hdGlvbiBvbiBTVERPVVQNCisjICAgICAgLS1m
b3JjZS1iYWRuYW1lICBkaXNhYmxlIGNoZWNraW5nIG9mIG5hbWVzIGZvciBm
dW5ueSBjaGFyYWN0ZXJzDQorIyAgICAgIC0taGVscCAgICAgICAgICAgdXNh
Z2UgbWVzc2FnZQ0KKyMgICAgICAtLXZlcnNpb24gICAgICAgIHZlcnNpb24g
bnVtYmVyIGFuZCBjb3B5cmlnaHQNCisjICAgICAgLS1jb25mIEZJTEUgICAg
ICB1c2UgRklMRSBpbnN0ZWFkIG9mIC9ldGMvYWRkdXNlci5jb25mDQorIyMj
IyMjIyMjIyMjDQorDQordXNlIHdhcm5pbmdzOw0KK3VzZSBEZWJpYW46OkFk
ZHVzZXJDb21tb247DQorDQorQkVHSU4gew0KKyAgICBldmFsICd1c2UgTG9j
YWxlOjpnZXR0ZXh0JzsNCisgICAgaWYgKCRAKSB7DQorCSpnZXR0ZXh0ID0g
c3ViIHsgc2hpZnQgfTsNCisJKnRleHRkb21haW4gPSBzdWIgeyAiIiB9Ow0K
KwkqTENfTUVTU0FHRVMgPSBzdWIgeyA1IH07DQorICAgIH0NCisgICAgZXZh
bCB7DQorCXJlcXVpcmUgUE9TSVg7DQorCWltcG9ydCBQT1NJWCBxdyhzZXRs
b2NhbGUpOw0KKyAgICB9Ow0KKyAgICBpZiAoJEApIHsNCisJKnNldGxvY2Fs
ZSA9IHN1YiB7IDEgfTsNCisgICAgfQ0KK30NCisNCitzZXRsb2NhbGUoTENf
TUVTU0FHRVMsICIiKTsNCit0ZXh0ZG9tYWluKCJhZGR1c2VyIik7DQorDQor
JHZlcmJvc2UgPSAxOwkJCSMgc2hvdWxkIHdlIGJlIHZlcmJvc2U/DQorJGFs
bG93X2JhZG5hbWUgPSAwOwkJIyBzaG91bGQgd2UgYWxsb3cgYmFkIG5hbWVz
Pw0KKyRhc2tfcGFzc3dkID0gMTsJCSMgYXNrIGZvciBhIHBhc3N3ZD8NCisN
CiskY2xlYW5pbmdfdXAgPSAwOw0KKw0KKyRkZWZhdWx0cyA9ICIvZXRjL2Fk
ZHVzZXIuY29uZiI7DQorJG5vZ3JvdXBfaWQgPSBnZXRncm5hbSgibm9ncm91
cCIpIHx8IDY1NTM0Ow0KKyQwID1+IHMrLiovKys7IA0KKw0KKyRjb25maWd7
ImRzaGVsbCJ9ID0gIi9iaW4vYmFzaCI7DQorJGNvbmZpZ3siZmlyc3Rfc3lz
dGVtX3VpZCJ9ID0gMTAwOw0KKyRjb25maWd7Imxhc3Rfc3lzdGVtX3VpZCJ9
ID0gOTk5Ow0KKyRjb25maWd7ImZpcnN0X3VpZCJ9ID0gMTAwMDsNCiskY29u
ZmlneyJsYXN0X3VpZCJ9ID0gMjk5OTk7DQorJGNvbmZpZ3siZmlyc3Rfc3lz
dGVtX2dpZCJ9ID0gMTAwOw0KKyRjb25maWd7Imxhc3Rfc3lzdGVtX2dpZCJ9
ID0gOTk5Ow0KKyRjb25maWd7ImZpcnN0X2dpZCJ9ID0gMTAwMDsNCiskY29u
ZmlneyJsYXN0X2dpZCJ9ID0gMjk5OTk7DQorJGNvbmZpZ3siZGhvbWUifSA9
ICIvaG9tZSI7DQorJGNvbmZpZ3sic2tlbCJ9ID0gIi9ldGMvc2tlbCI7DQor
JGNvbmZpZ3sidXNlcmdyb3VwcyJ9ID0gInllcyI7DQorJGNvbmZpZ3sidXNl
cnNfZ2lkIn0gPSAiMTAwIjsNCiskY29uZmlneyJncm91cGhvbWVzIn0gPSAi
bm8iOw0KKyRjb25maWd7ImxldHRlcmhvbWVzIn0gPSAibm8iOw0KKyRjb25m
aWd7InF1b3RhdXNlciJ9ID0gIiI7DQorJGNvbmZpZ3siZGlyX21vZGUifSA9
ICIwNzU1IjsNCiskY29uZmlneyJzZXRnaWRfaG9tZSJ9ID0gIm5vIjsNCisk
Y29uZmlneyJyZW1vdmVfaG9tZSJ9ID0gMDsNCiskY29uZmlneyJyZW1vdmVf
YWxsX2ZpbGVzIn0gPSAwOw0KKyRjb25maWd7ImJhY2t1cCJ9ID0gMDsNCisk
Y29uZmlneyJ1c2VfbGRhcCJ9ID0gIm5vIjsNCiskY29uZmlneyJ1c2VfbGRh
cF9zeXN0ZW0ifSA9ICJubyI7DQorJGNvbmZpZ3sibGRhcF9zZXJ2ZXIifSA9
ICIiOw0KKyRjb25maWd7ImxkYXBfcG9ydCJ9ID0gIiI7DQorJGNvbmZpZ3si
bGRhcF9iaW5kZG4ifSA9ICIiOw0KKyRjb25maWd7ImxkYXBfYmluZHB3In0g
PSAiIjsNCiskY29uZmlneyJsZGFwX2Jhc2VkbiJ9ID0gIiI7DQorJGNvbmZp
Z3sibGRhcF9yZG5fZ3JvdXBzIn0gPSAiIjsNCiskY29uZmlneyJsZGFwX3Jk
bl91c2VycyJ9ID0gIiI7DQorDQorJGFjdGlvbiA9ICQwIGVxICJhZGRncm91
cCIgPyAiYWRkZ3JvdXAiIDogImFkZHVzZXIiOw0KKw0KK3doaWxlIChkZWZp
bmVkKCRhcmcgPSBzaGlmdChAQVJHVikpKSB7DQorICAgIGRpZSAiJDA6ICIs
XygiTm8gb3B0aW9ucyBhbGxvd2VkIGFmdGVyIG5hbWVzLlxuIikNCisJaWYg
KGRlZmluZWQoJG5hbWVzWzBdKSAmJiAkYXJnID1+IC9eLS0vKTsNCisgICAg
aWYgKCRhcmcgZXEgIi0tcXVpZXQiKSB7DQorCSR2ZXJib3NlID0gMDsNCisg
ICAgfSBlbHNpZiAoJGFyZyBlcSAiLS1mb3JjZS1iYWRuYW1lIikgew0KKwkk
YWxsb3dfYmFkbmFtZSA9IDE7DQorICAgIH0gZWxzaWYgKCRhcmcgZXEgIi0t
aGVscCIgfHwgJGFyZyBlcSAiLWgiKSB7DQorCSZ1c2FnZSgpOw0KKwlleGl0
IDA7DQorICAgIH0gZWxzaWYgKCRhcmcgZXEgIi0tdmVyc2lvbiIpIHsNCisJ
JnZlcnNpb24oKTsNCisJZXhpdCAwOw0KKyAgICB9IGVsc2lmICgkYXJnIGVx
ICItLXN5c3RlbSIpIHsNCisJJGZvdW5kX3N5c19vcHQgPSAxOw0KKwkkYWN0
aW9uID0gImFkZHN5c3VzZXIiIGlmICgkYWN0aW9uIGVxICJhZGR1c2VyIik7
DQorCSRhY3Rpb24gPSAiYWRkc3lzZ3JvdXAiIGlmICgkYWN0aW9uIGVxICJh
ZGRncm91cCIpOw0KKyAgICB9IGVsc2lmICgkYXJnIGVxICItLWdyb3VwIikg
ew0KKwkkZm91bmRfZ3JvdXBfb3B0ID0gMTsNCisgICAgfSBlbHNpZiAoJGFy
ZyBlcSAiLS1pbmdyb3VwIikgew0KKwlkaWUgIiQwOiAiLF8oIi0taW5ncm91
cCByZXF1aXJlcyBhbiBhcmd1bWVudC5cbiIpDQorCSAgICBpZiAoIWRlZmlu
ZWQoJGluZ3JvdXBfbmFtZSA9IHNoaWZ0KEBBUkdWKSkpOw0KKyAgICB9IGVs
c2lmICgkYXJnIGVxICItLWhvbWUiKSB7DQorCWRpZSAiJDA6ICIsXygiLS1o
b21lIHJlcXVpcmVzIGFuIGFyZ3VtZW50LlxuIikNCisJICAgIGlmICghZGVm
aW5lZCgkc3BlY2lhbF9ob21lID0gc2hpZnQoQEFSR1YpKSk7DQorCXByaW50
ICIkMDogIixfKCJXYXJuaW5nOiBUaGUgaG9tZSBkaXIgeW91IHNwZWNpZmll
ZCBhbHJlYWR5IGV4aXN0cy5cbiIpDQorCSAgICBpZiAoLWQgJHNwZWNpYWxf
aG9tZSAmJiAkdmVyYm9zZSk7DQorCWRpZSAiJDA6ICIsXygiVGhlIGhvbWUg
ZGlyIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5cbiIpDQorCSAgICBpZiAo
JHNwZWNpYWxfaG9tZSAhfiBtK14vKyApOw0KKyAgICB9IGVsc2lmICgkYXJn
IGVxICItLWdlY29zIikgew0KKwlkaWUgIiQwOiAiLF8oIi0tZ2Vjb3MgcmVx
dWlyZXMgYW4gYXJndW1lbnQuXG4iKQ0KKwkgICAgaWYgKCFkZWZpbmVkKCRu
ZXdfZ2Vjb3MgPSBzaGlmdChAQVJHVikpKTsNCisJfSBlbHNpZiAoJGFyZyBl
cSAiLS1zaGVsbCIpIHsNCisJZGllICIkMDogIixfKCItLXNoZWxsIHJlcXVp
cmVzIGFuIGFyZ3VtZW50LlxuIikNCisJCWlmICghZGVmaW5lZCgkc3BlY2lh
bF9zaGVsbCA9IHNoaWZ0KEBBUkdWKSkpOw0KKyAgICB9IGVsc2lmICgkYXJn
IGVxICItLWRpc2FibGVkLXBhc3N3b3JkIikgew0KKwkkYXNrX3Bhc3N3ZCA9
IDA7DQorCSRkaXNhYmxlZF9sb2dpbiA9IDA7DQorCX0gZWxzaWYgKCRhcmcg
ZXEgIi0tZGlzYWJsZWQtbG9naW4iKSB7DQorCSRhc2tfcGFzc3dkID0gMDsN
CisJJGRpc2FibGVkX2xvZ2luID0gMTsNCisgICAgfSBlbHNpZiAoJGFyZyBl
cSAiLS11aWQiKSB7DQorCWRpZSAiJDA6ICIsXygiLS11aWQgcmVxdWlyZXMg
YSBudW1lcmljIGFyZ3VtZW50LlxuIikNCisJICAgIGlmICghZGVmaW5lZCAo
JG5ld191aWQgPSBzaGlmdChAQVJHVikpIHx8ICRuZXdfdWlkICF+IC9eXC0/
XGQrJC8pOw0KKyAgICB9IGVsc2lmICgkYXJnIGVxICItLWZpcnN0dWlkIikg
ew0KKwlkaWUgIiQwOiAiLF8oIi0tZmlyc3R1aWQgcmVxdWlyZXMgYSBudW1l
cmljIGFyZ3VtZW50LlxuIikNCisJICAgIGlmICghZGVmaW5lZCAoJG5ld19m
aXJzdHVpZCA9IHNoaWZ0KEBBUkdWKSkgfHwgJG5ld19maXJzdHVpZCAhfiAv
XlwtP1xkKyQvKTsNCisgICAgfSBlbHNpZiAoJGFyZyBlcSAiLS1sYXN0dWlk
Iikgew0KKwlkaWUgIiQwOiAiLF8oIi0tbGFzdHVpZCByZXF1aXJlcyBhIG51
bWVyaWMgYXJndW1lbnQuXG4iKQ0KKwkgICAgaWYgKCFkZWZpbmVkICgkbmV3
X2xhc3R1aWQgPSBzaGlmdChAQVJHVikpIHx8ICRuZXdfbGFzdHVpZCAhfiAv
XlwtP1xkKyQvKTsNCisgICAgfSBlbHNpZiAoJGFyZyBlcSAiLS1naWQiKSB7
DQorCWRpZSAiJDA6ICIsXygiLS1naWQgcmVxdWlyZXMgYSBudW1lcmljIGFy
Z3VtZW50LlxuIikNCisJICAgIGlmICghZGVmaW5lZCAoJG5ld19naWQgPSBz
aGlmdChAQVJHVikpIHx8ICRuZXdfZ2lkICF+IC9eXC0/XGQrJC8pOw0KKyAg
ICB9IGVsc2lmICgkYXJnIGVxICItLWNvbmYiKSB7DQorCWRpZSAiJDA6ICIs
XygiLS1jb25mIHJlcXVpcmVzIGFuIGFyZ3VtZW50LlxuIikNCisJICAgIGlm
ICghZGVmaW5lZCgkZGVmYXVsdHMgPSBzaGlmdChAQVJHVikpKTsNCisJZGll
ZiAoXygiYCVzJyBkb2Vzbid0IGV4aXN0LlxuIiwkZGVmYXVsdHMpKQ0KKwkg
ICAgaWYgKCEgLWYgJGRlZmF1bHRzKTsNCisgICAgfSBlbHNpZiAoJGFyZyBl
cSAiLS1uby1jcmVhdGUtaG9tZSIpIHsNCisJJG5vX2NyZWF0ZV9ob21lID0g
MTsNCisgICAgfSBlbHNpZiAoJGFyZyBlcSAiLS1kZWJ1ZyIpIHsNCisJJGRl
YnVnZ2luZyA9IDE7DQorICAgIH0gZWxzaWYgKCRhcmcgPX4gL14tLS8pIHsJ
IyBiYWQgYXJndW1lbnQhDQorCWRpZWYgKF8oIlVua25vd24gYXJndW1lbnQg
YCVzJy5cbiIpLCRhcmcpOw0KKyAgICB9IGVsc2UgewkJCSMgaXQncyBhIHVz
ZXJuYW1lDQorCXB1c2ggKEBuYW1lcywgJGFyZyk7DQorICAgIH0NCit9DQor
DQorZGllICIkMDogIixfKCJPbmx5IHJvb3QgbWF5IGFkZCBhIHVzZXIgb3Ig
Z3JvdXAgdG8gdGhlIHN5c3RlbS5cbiIpIGlmICgkPiAhPSAwKTsNCisNCitp
ZiAoQG5hbWVzID09IDApIHsNCisgICAgaWYoJGZvdW5kX2dyb3VwX29wdCB8
fCAkYWN0aW9uIGVxICJhZGRncm91cCIgfHwgJGFjdGlvbiBlcSAiYWRkc3lz
Z3JvdXAiKQ0KKyAgICAgIHsNCisJICBwcmludCBfKCJFbnRlciBhIGdyb3Vw
bmFtZSB0byBhZGQ6ICIpOw0KKyAgICAgIH0NCisgICAgZWxzZQ0KKyAgICAg
IHsNCisJICBwcmludCBfKCJFbnRlciBhIHVzZXJuYW1lIHRvIGFkZDogIik7
DQorICAgICAgfQ0KKyAgICBjaG9tcCgkYW5zd2VyPTxTVERJTj4pOw0KKyAg
ICBwdXNoKEBuYW1lcywgJGFuc3dlcik7DQorfQ0KK2RpZSAiJDA6ICIsXygi
SSBuZWVkIGEgbmFtZSB0byBhZGQuXG4iKSBpZiAobGVuZ3RoKCRuYW1lc1sw
XSkgPT0gMCk7DQorZGllICIkMDogIixfKCJObyBtb3JlIHRoYW4gdHdvIG5h
bWVzLlxuIikgaWYgKEBuYW1lcyA+IDIpOw0KK2lmIChAbmFtZXMgPT0gMikg
ewkjIG11c3QgYmUgYWRkdXNlcnRvZ3JvdXANCisgICAgZGllICIkMDogIixf
KCJTcGVjaWZ5IG9ubHkgb25lIG5hbWUgaW4gdGhpcyBtb2RlLlxuIikNCisJ
aWYgKCRhY3Rpb24gZXEgImFkZHN5c3VzZXIiIHx8ICRmb3VuZF9ncm91cF9v
cHQpOw0KKyAgICAkYWN0aW9uID0gImFkZHVzZXJ0b2dyb3VwIjsNCisgICAg
JGV4aXN0aW5nX3VzZXIgPSBzaGlmdCAoQG5hbWVzKTsNCisgICAgJGV4aXN0
aW5nX2dyb3VwID0gc2hpZnQgKEBuYW1lcyk7DQorfQ0KK2Vsc2Ugew0KKyAg
ICAkbmV3X25hbWUgPSBzaGlmdCAoQG5hbWVzKTsNCit9DQorDQoraWYgKCRm
b3VuZF9ncm91cF9vcHQpIHsNCisgICAgaWYgKCRhY3Rpb24gZXEgImFkZHN5
c3VzZXIiKSB7DQorCSRtYWtlX2dyb3VwX2Fsc28gPSAxOw0KKyAgICB9DQor
ICAgIGVsc2lmICgkZm91bmRfc3lzX29wdCkgew0KKwkkYWN0aW9uID0gImFk
ZHN5c2dyb3VwIjsNCisgICAgfQ0KKyAgICBlbHNlIHsNCisJJGFjdGlvbiA9
ICJhZGRncm91cCI7DQorICAgIH0NCit9DQorZGllICIkMDogIixfKCItLWdy
b3VwLCAtLWluZ3JvdXAsIGFuZCAtLWdpZCBvcHRpb25zIGFyZSBtdXR1YWxs
eSBleGNsdXNpdmUuXG4iKSBpZg0KKyAgICAoJGFjdGlvbiBuZSAiYWRkZ3Jv
dXAiICYmDQorICAgICBkZWZpbmVkKCRmb3VuZF9ncm91cF9vcHQpICtkZWZp
bmVkKCRpbmdyb3VwX25hbWUpICtkZWZpbmVkKCRuZXdfZ2lkKSA+IDEpOw0K
Kw0KKw0KKyMjIyMjDQorIyBPSywgd2UndmUgcHJvY2Vzc2VkIHRoZSBhcmd1
bWVudHMuICAkYWN0aW9uIGVxdWFscyBvbmUgb2YgdGhlIGZvbGxvd2luZywN
CisjIGFuZCB0aGUgYXBwcm9wcmlhdGUgdmFyaWFibGVzIGhhdmUgYmVlbiBz
ZXQ6DQorIw0KKyMgJGFjdGlvbiA9ICJhZGR1c2VyIg0KKyMgICAgJG5ld19u
YW1lICAgICAgICAgICAgICAgIC0gdGhlIG5hbWUgb2YgdGhlIG5ldyB1c2Vy
Lg0KKyMgICAgJGluZ3JvdXBfbmFtZSB8ICRuZXdfZ2lkIC0gdGhlIGdyb3Vw
IHRvIGFkZCB0aGUgdXNlciB0bw0KKyMgICAgJHNwZWNpYWxfaG9tZSwgJG5l
d191aWQsICRuZXdfZ2Vjb3MgLSBvcHRpb25hbCBvdmVycmlkZXMNCisjICRh
Y3Rpb24gPSAiYWRkZ3JvdXAiDQorIyAgICAkbmV3X25hbWUgICAgICAgICAg
ICAgICAgLSB0aGUgbmFtZSBvZiB0aGUgbmV3IGdyb3VwDQorIyAgICAkbmV3
X2dpZCAgICAgICAgICAgICAgICAgLSBvcHRpb25hbCBvdmVycmlkZQ0KKyMg
JGFjdGlvbiA9ICJhZGRzeXNncm91cCINCisjICAgICRuZXdfbmFtZSAgICAg
ICAgICAgICAgICAtIHRoZSBuYW1lIG9mIHRoZSBuZXcgZ3JvdXANCisjICAg
ICRuZXdfZ2lkICAgICAgICAgICAgICAgICAtIG9wdGlvbmFsIG92ZXJyaWRl
DQorIyAkYWN0aW9uID0gImFkZHN5c3VzZXIiDQorIyAgICAkbmV3X25hbWUg
ICAgICAgICAgICAgICAgLSB0aGUgbmFtZSBvZiB0aGUgbmV3IHVzZXINCisj
ICAgICRtYWtlX2dyb3VwX2Fsc28gfCAkaW5ncm91cF9uYW1lIHwgJG5ld19n
aWQgfCAwICAtIHdoaWNoIGdyb3VwDQorIyAgICAkc3BlY2lhbF9ob21lLCAk
bmV3X3VpZCwgJG5ld19nZWNvcyAtIG9wdGlvbmFsIG92ZXJyaWRlcw0KKyMg
JGFjdGlvbiA9ICJhZGR1c2VydG9ncm91cCINCisjICAgICRleGlzdGluZ191
c2VyICAgICAgICAgICAtIHRoZSB1c2VyIHRvIGJlIGFkZGVkDQorIyAgICAk
ZXhpc3RpbmdfZ3JvdXAgICAgICAgICAgLSB0aGUgZ3JvdXAgdG8gYWRkIGhl
ciB0bw0KKyMjIyMjDQorDQorJnJlYWRfY29uZmlnKCRkZWZhdWx0cyk7DQor
JmNoZWNrbmFtZSgkbmV3X25hbWUpIGlmIGRlZmluZWQgJG5ld19uYW1lOw0K
KyRTSUd7J0lOVCd9ID0gJFNJR3snUVVJVCd9ID0gJFNJR3snSFVQJ30gPSAn
aGFuZGxlcic7DQorDQoraWYgKCRjb25maWd7InVzZV9sZGFwIn0gZXEgJ3ll
cycgb3IgJGNvbmZpZ3sidXNlX2xkYXBfc3lzdGVtIn0gZXEgJ3llcycpDQor
ew0KKwkkZnVuY3Rpb25fc3VmZml4ID0gImxkYXAiOwkNCisJcmVxdWlyZSBE
ZWJpYW46OkFkZHVzZXJMREFQOw0KKwlpZiAoJGNvbmZpZ3t1c2VfbGRhcF9z
eXN0ZW19IGVxICd5ZXMnKQ0KKwl7DQorCQkkc3lzZnVuY3Rpb25fc3VmZml4
ID0gImxkYXAiOw0KKwl9DQorCWVsc2UNCisJew0KKwkJJHN5c2Z1bmN0aW9u
X3N1ZmZpeCA9ICJmaWxlIjsNCisJCXVzZSBEZWJpYW46OkFkZHVzZXJGaWxl
Ow0KKwl9DQorfQ0KK2Vsc2UNCit7DQorCSRmdW5jdGlvbl9zdWZmaXggPSAi
ZmlsZSI7DQorCSRzeXNmdW5jdGlvbl9zdWZmaXggPSAiZmlsZSI7DQorfQ0K
Kw0KKyMjIyMjIyMjIyMjIyMjIyMjDQorIyMgYWRkc3lzZ3JvdXAgIyMNCisj
IyMjIyMjIyMjIyMjIyMjIw0KK2lmICgkYWN0aW9uIGVxICJhZGRzeXNncm91
cCIpIHsNCisgICAgZGllZiAoXygiVGhlIGdyb3VwIGAlcycgYWxyZWFkeSBl
eGlzdHMuXG4iKSwkbmV3X25hbWUpDQorCWlmIChkZWZpbmVkIGdldGdybmFt
KCRuZXdfbmFtZSkpOw0KKyAgICBkaWVmIChfKCJUaGUgR0lEIGAlcycgaXMg
YWxyZWFkeSBpbiB1c2UuXG4iKSwkbmV3X2dpZCkNCisJaWYgKGRlZmluZWQo
JG5ld19naWQpICYmIGRlZmluZWQoZ2V0Z3JnaWQoJG5ld19naWQpKSk7DQor
ICAgIGlmICghZGVmaW5lZCgkbmV3X2dpZCkpIHsNCisgICAgICAgICRuZXdf
Z2lkID0gJmZpcnN0X2F2YWlsX2lkKCRjb25maWd7ImZpcnN0X3N5c3RlbV9n
aWQifSwNCisJCQkJICAgJGNvbmZpZ3sibGFzdF9zeXN0ZW1fZ2lkIn0sDQor
CQkJCSAgICZnZXRfY3VycmVudF9naWRzKTsNCisNCisgICAgICAgIGlmICgk
bmV3X2dpZCA9PSAtMSkgew0KKyAgICAgICAgICAgIHByaW50IFNUREVSUiAi
JDA6ICIsXygiTm8gR0lEIGlzIGF2YWlsYWJsZSBpbiB0aGUgcmFuZ2UgIiks
DQorICAgICAgICAgICAgIiRjb25maWd7XCJmaXJzdF9zeXN0ZW1fZ2lkXCJ9
IC0gJGNvbmZpZ3tcImxhc3Rfc3lzdGVtX2dpZFwifVxuIiwNCisgICAgICAg
ICAgICAiKEZJUlNUX1NZU19HSUQgLSBMQVNUX1NZU19HSUQpLiAgIjsNCisg
ICAgICAgICAgICBkaWVmIChfKCJHcm91cCBgJXMnIG5vdCBjcmVhdGVkLlxu
IiksJG5ld19uYW1lKTsNCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgICBw
cmludGYgKF8oIkFkZGluZyBncm91cCAlcyAoJXMpLi4uXG4iKSwkbmV3X25h
bWUsJG5ld19naWQpIGlmICR2ZXJib3NlOw0KKyAgICAmaW52YWxpZGF0ZV9u
c2NkKCJncm91cCIpOw0KKyAgICAkZnVuYyA9ICJhZGRncm91cF8kc3lzZnVu
Y3Rpb25fc3VmZml4IjsNCisgICAgJiRmdW5jKCRuZXdfbmFtZSwgJG5ld19n
aWQpOw0KKyAgICAmaW52YWxpZGF0ZV9uc2NkKCJncm91cCIpOw0KKyAgICBw
cmludCBfKCJEb25lLlxuIikgaWYgJHZlcmJvc2U7DQorICAgIGV4aXQgMDsN
Cit9DQorDQorDQorIyMjIyMjIyMjIyMjIyMNCisjIyBhZGRncm91cCAjIw0K
KyMjIyMjIyMjIyMjIyMjDQoraWYgKCRhY3Rpb24gZXEgImFkZGdyb3VwIikg
ew0KKyAgICBkaWVmIChfKCJUaGUgZ3JvdXAgYCVzJyBhbHJlYWR5IGV4aXN0
cy5cbiIpLCRuZXdfbmFtZSkNCisJaWYgKGRlZmluZWQgZ2V0Z3JuYW0oJG5l
d19uYW1lKSk7DQorICAgIGRpZWYgKF8oIlRoZSBHSUQgYCVzJyBpcyBhbHJl
YWR5IGluIHVzZS5cbiIpLCRuZXdfZ2lkKQ0KKwlpZiAoZGVmaW5lZCgkbmV3
X2dpZCkgJiYgZGVmaW5lZChnZXRncmdpZCgkbmV3X2dpZCkpKTsNCisgICAg
aWYgKCFkZWZpbmVkKCRuZXdfZ2lkKSkgew0KKyAgICAgICAgJG5ld19naWQg
PSAmZmlyc3RfYXZhaWxfaWQoJGNvbmZpZ3siZmlyc3RfZ2lkIn0sDQorCQkJ
CSAgICRjb25maWd7Imxhc3RfZ2lkIn0sDQorCQkJCSAgICZnZXRfY3VycmVu
dF9naWRzKTsNCisNCisgICAgICAgIGlmICgkbmV3X2dpZCA9PSAtMSkgew0K
KyAgICAgICAgICAgIHByaW50IFNUREVSUiAiJDA6ICIsXygiTm8gR0lEIGlz
IGF2YWlsYWJsZSBpbiB0aGUgcmFuZ2UgIiksDQorICAgICAgICAgICAgIiRj
b25maWd7XCJmaXJzdF9naWRcIn0gLSAkY29uZmlne1wibGFzdF9naWRcIn1c
biIsDQorICAgICAgICAgICAgIihGSVJTVF9HSUQgLSBMQVNUX0dJRCkuICAi
Ow0KKyAgICAgICAgICAgIGRpZWYgKF8oIkdyb3VwIGAlcycgbm90IGNyZWF0
ZWQuXG4iKSwkbmV3X25hbWUpOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQor
ICAgIHByaW50ZiAoXygiQWRkaW5nIGdyb3VwICVzICglcykuLi5cbiIpLCRu
ZXdfbmFtZSwkbmV3X2dpZCkgaWYgJHZlcmJvc2U7DQorICAgICZpbnZhbGlk
YXRlX25zY2QoImdyb3VwIik7DQorICAgICRmdW5jID0gImFkZGdyb3VwXyRm
dW5jdGlvbl9zdWZmaXgiOw0KKyAgICAmJGZ1bmMoJG5ld19uYW1lLCAkbmV3
X2dpZCk7DQorICAgICZpbnZhbGlkYXRlX25zY2QoImdyb3VwIik7DQorICAg
IHByaW50IF8oIkRvbmUuXG4iKSBpZiAkdmVyYm9zZTsNCisgICAgZXhpdCAw
Ow0KK30NCisNCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMjIGFkZHVz
ZXJ0b2dyb3VwICMjDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMNCitlbHNpZiAo
JGFjdGlvbiBlcSAiYWRkdXNlcnRvZ3JvdXAiKSB7DQorICAgIGRpZWYgKF8o
IlRoZSB1c2VyIGAlcycgZG9lc24ndCBleGlzdC5cbiIpLCRleGlzdGluZ191
c2VyKQ0KKwlpZiAoIWRlZmluZWQgZ2V0cHduYW0oJGV4aXN0aW5nX3VzZXIp
KTsNCisgICAgZGllZiAoXygiVGhlIGdyb3VwIGAlcycgZG9lc24ndCBleGlz
dC5cbiIpLCRleGlzdGluZ19ncm91cCkNCisJaWYgKCFkZWZpbmVkIGdldGdy
bmFtKCRleGlzdGluZ19ncm91cCkpOw0KKyAgICBpZiAoJnVzZXJfaXNfbWVt
YmVyKCRleGlzdGluZ191c2VyLCAkZXhpc3RpbmdfZ3JvdXApKSB7DQorCXBy
aW50ZiBfKCJUaGUgdXNlciBgJXMnIGlzIGFscmVhZHkgYSBtZW1iZXIgb2Yg
JXMuXG4iKSwNCisgICAgICAgICAgICAgICAgJGV4aXN0aW5nX3VzZXIsJGV4
aXN0aW5nX2dyb3VwIGlmICR2ZXJib3NlOw0KKwlleGl0IDA7CQkJIyBub3Qg
cmVhbGx5IGFuIGVycm9yDQorICAgIH0NCisNCisgICAgcHJpbnRmIF8oIkFk
ZGluZyB1c2VyICVzIHRvIGdyb3VwICVzLi4uXG4iKSwkZXhpc3RpbmdfdXNl
ciwkZXhpc3RpbmdfZ3JvdXANCisJaWYgJHZlcmJvc2U7DQorICAgICZpbnZh
bGlkYXRlX25zY2QoKTsNCisgICAgJGZ1bmMgPSAiYWRkdXNlcnRvZ3JvdXBf
JGZ1bmN0aW9uX3N1ZmZpeCI7DQorICAgICYkZnVuYygkZXhpc3RpbmdfdXNl
ciwgJGV4aXN0aW5nX2dyb3VwKTsNCisgICAgJmludmFsaWRhdGVfbnNjZCgp
Ow0KKyAgICBwcmludCBfKCJEb25lLlxuIikgaWYgJHZlcmJvc2U7DQorICAg
IGV4aXQgMDsNCit9DQorDQorDQorIyMjIyMjIyMjIyMjIyMjIw0KKyMjIGFk
ZHN5c3VzZXIgIyMNCisjIyMjIyMjIyMjIyMjIyMjDQorZWxzaWYgKCRhY3Rp
b24gZXEgImFkZHN5c3VzZXIiKSB7DQorICAgICMgQ2hlY2sgaWYgcmVxdWVz
dGVkIHVzZXIgYWxyZWFkeSBleGlzdHMgYW5kIHdlIGNhbiBleGl0IHNhZmVs
eQ0KKyAgICBpZiAoKEB0dXNlciA9IGdldHB3bmFtKCRuZXdfbmFtZSkpICYm
ICgNCisJKCFkZWZpbmVkKCRuZXdfdWlkKSAmJiAkdHVzZXJbMl0gPj0gJGNv
bmZpZ3siZmlyc3Rfc3lzdGVtX3VpZCJ9ICYmDQorCSAkdHVzZXJbMl0gPD0g
JGNvbmZpZ3sibGFzdF9zeXN0ZW1fdWlkIn0gKSB8fA0KKwkoZGVmaW5lZCgk
bmV3X3VpZCkgJiYgJHR1c2VyWzJdID09ICRuZXdfdWlkKQ0KKyAgICAgICAp
KSB7DQorICAgICAgICBwcmludGYgKF8oIlVzZXIgJXMgZG9lcyBhbHJlYWR5
IGV4aXN0LiBFeGl0aW5nLi4uXG4iKSwgJG5ld19uYW1lKSBpZiAkdmVyYm9z
ZTsNCisJZXhpdCAwOw0KKyAgICB9DQorICAgICRuZXdfZ2lkID0gJG5vZ3Jv
dXBfaWQNCisJaWYgKCEkaW5ncm91cF9uYW1lICYmICFkZWZpbmVkKCRuZXdf
Z2lkKSAmJiAhJG1ha2VfZ3JvdXBfYWxzbyk7DQorICAgICZjaGVja191c2Vy
X2dyb3VwKCk7DQorICAgIHByaW50ZiAoXygiQWRkaW5nIHN5c3RlbSB1c2Vy
ICVzLi4uXG4iKSwkbmV3X25hbWUpIGlmICR2ZXJib3NlOw0KKw0KKyAgICBp
ZiAoIWRlZmluZWQoJG5ld191aWQpICYmICRtYWtlX2dyb3VwX2Fsc28pIHsN
CisJJG5ld191aWQgPSAmZmlyc3RfYXZhaWxfaWQoJGNvbmZpZ3siZmlyc3Rf
c3lzdGVtX3VpZCJ9LA0KKwkJCQkgICAkY29uZmlneyJsYXN0X3N5c3RlbV91
aWQifSwNCisJCQkJICAgJmdldF9jdXJyZW50X3VpZHMsICZnZXRfY3VycmVu
dF9naWRzKTsNCisgICAgICAgIGlmICgkbmV3X3VpZCA9PSAtMSkgew0KKyAg
ICAgICAgICAgIHByaW50IFNUREVSUiAiJDA6ICIsXygiTm8gVUlEL0dJRCBw
YWlyIGlzIGF2YWlsYWJsZSBpbiB0aGUgcmFuZ2UgIiksDQorICAgICAgICAg
ICAgIiRjb25maWd7XCJmaXJzdF9zeXN0ZW1fdWlkXCJ9IC0gJGNvbmZpZ3tc
Imxhc3Rfc3lzdGVtX3VpZFwifVxuIiwNCisgICAgICAgICAgICAiKEZJUlNU
X1NZU19VSUQgLSBMQVNUX1NZU19VSUQpLiAgIjsNCisgICAgICAgICAgICBk
aWVmIChfKCJVc2VyIGAlcycgbm90IGNyZWF0ZWQuXG4iKSwkbmV3X25hbWUp
Ow0KKyAgICAgICAgfQ0KKyAgICAgICAgJG5ld19naWQgPSAkbmV3X3VpZDsN
CisJJGluZ3JvdXBfbmFtZSA9ICRuZXdfbmFtZTsNCisgICAgfQ0KKyAgICBl
bHNpZiAoIWRlZmluZWQoJG5ld191aWQpICYmICEkbWFrZV9ncm91cF9hbHNv
KSB7DQorCSRuZXdfdWlkID0gJmZpcnN0X2F2YWlsX2lkKCRjb25maWd7ImZp
cnN0X3N5c3RlbV91aWQifSwNCisJCQkJICAgJGNvbmZpZ3sibGFzdF9zeXN0
ZW1fdWlkIn0sDQorCQkJCSAgICZnZXRfY3VycmVudF91aWRzKTsNCisgICAg
ICAgIGlmICgkbmV3X3VpZCA9PSAtMSkgew0KKyAgICAgICAgICAgIHByaW50
IFNUREVSUiAiJDA6ICIsXygiTm8gVUlEIGlzIGF2YWlsYWJsZSBpbiB0aGUg
cmFuZ2UgIiksDQorICAgICAgICAgICAgIiRjb25maWd7XCJmaXJzdF9zeXN0
ZW1fdWlkXCJ9IC0gJGNvbmZpZ3tcImxhc3Rfc3lzdGVtX3VpZFwifVxuIiwN
CisgICAgICAgICAgICAiKEZJUlNUX1NZU19VSUQgLSBMQVNUX1NZU19VSUQp
LiAgIjsNCisgICAgICAgICAgICAmZGllZiAoXygiVXNlciBgJXMnIG5vdCBj
cmVhdGVkLlxuIiksJG5ld19uYW1lKTsNCisgICAgICAgIH0NCisgICAgICAg
IGlmIChkZWZpbmVkKCRuZXdfZ2lkKSkgeyAkaW5ncm91cF9uYW1lID0gZ2V0
Z3JnaWQoJG5ld19naWQpOyB9DQorCWVsc2lmICgkaW5ncm91cF9uYW1lKSB7
ICRuZXdfZ2lkID0gZ2V0Z3JuYW0oJGluZ3JvdXBfbmFtZSk7IH0NCisJZWxz
ZSB7IGRpZSBfKCJJbnRlcm5hbCBlcnJvciIpOyB9DQorICAgIH0NCisgICAg
ZWxzZSB7DQorCWlmIChkZWZpbmVkKCRuZXdfZ2lkKSkgeyAkaW5ncm91cF9u
YW1lID0gZ2V0Z3JnaWQoJG5ld19naWQpOyB9DQorCWVsc2lmICgkaW5ncm91
cF9uYW1lKSB7ICRuZXdfZ2lkID0gZ2V0Z3JuYW0oJGluZ3JvdXBfbmFtZSk7
IH0NCisJZWxzaWYgKCRtYWtlX2dyb3VwX2Fsc28peyAkbmV3X2dpZD0kbmV3
X3VpZDsgJGluZ3JvdXBfbmFtZT0kbmV3X25hbWU7IH0NCisJZWxzZSB7IGRp
ZSBfKCJJbnRlcm5hbCBlcnJvciIpOyB9DQorICAgIH0NCisNCisgICAgJmlu
dmFsaWRhdGVfbnNjZCgpOw0KKyAgICBpZiAoJG1ha2VfZ3JvdXBfYWxzbykg
ew0KKwlwcmludCBfKCJBZGRpbmcgbmV3IGdyb3VwICRuZXdfbmFtZSAoJG5l
d19naWQpLlxuIikgaWYgJHZlcmJvc2U7DQorCSR1bmRvZ3JvdXAgPSAkbmV3
X25hbWU7DQorCSRmdW5jID0gImFkZGdyb3VwXyRzeXNmdW5jdGlvbl9zdWZm
aXgiOw0KKwkmJGZ1bmMoJG5ld19uYW1lLCAkbmV3X2dpZCk7DQorCSZpbnZh
bGlkYXRlX25zY2QoImdyb3VwIik7DQorICAgIH0NCisNCisgICAgcHJpbnRm
IF8oIkFkZGluZyBuZXcgdXNlciAlcyAoJXMpIHdpdGggZ3JvdXAgJXMuXG4i
KSwkbmV3X25hbWUsJG5ld191aWQsJGluZ3JvdXBfbmFtZQ0KKwlpZiAkdmVy
Ym9zZTsNCisgICAgJGhvbWVfZGlyID0gJHNwZWNpYWxfaG9tZSB8fCAmaG9t
ZWRpcigkbmV3X25hbWUsICRpbmdyb3VwX25hbWUpOw0KKwkkc2hlbGwgPSAk
c3BlY2lhbF9zaGVsbCB8fCAnL2Jpbi9mYWxzZSc7DQorICAgICR1bmRvdXNl
ciA9ICRuZXdfbmFtZTsNCisgICAgQGdyaW5mbyA9IGdldGdybmFtKCRpbmdy
b3VwX25hbWUpOw0KKyAgICAkZ2lkID0gJGdyaW5mb1syXTsNCisgICAgJGZ1
bmMgPSAiYWRkdXNlcl8kc3lzZnVuY3Rpb25fc3VmZml4IjsNCisgICAgJiRm
dW5jKCRuZXdfbmFtZSwgJG5ld191aWQsICRnaWQsICRob21lX2RpciwgJHNo
ZWxsLCAkbmV3X2dlY29zKTsNCisgICAgJmludmFsaWRhdGVfbnNjZCgpOw0K
Kw0KKyAgICBpZiAoJG5vX2NyZWF0ZV9ob21lKSB7DQorCXByaW50IF8oIk5v
dCBjcmVhdGluZyBob21lIGRpcmVjdG9yeS5cbiIpIGlmICR2ZXJib3NlOw0K
KyAgICB9IGVsc2lmICgtZSAkaG9tZV9kaXIpIHsNCisJcHJpbnRmIF8oIkhv
bWUgZGlyZWN0b3J5ICVzIGFscmVhZHkgZXhpc3RzLlxuIiksJGhvbWVfZGly
IGlmICR2ZXJib3NlOw0KKyAgICB9IGVsc2Ugew0KKwlwcmludGYgXygiQ3Jl
YXRpbmcgaG9tZSBkaXJlY3RvcnkgJXMuXG4iKSwkaG9tZV9kaXIgaWYgJHZl
cmJvc2U7DQorCSR1bmRvaG9tZSA9ICRob21lX2RpcjsNCisJJm1rdHJlZSgk
aG9tZV9kaXIpIHx8ICZjbGVhbnVwKCJDb3VsZG4ndCBjcmVhdGUgJGhvbWVf
ZGlyOiAkIS5cbiIpOw0KKwljaG93bigkbmV3X3VpZCwgJG5ld19naWQsICRo
b21lX2RpcikNCisJICAgIHx8ICZjbGVhbnVwKCJjaG93biAkbmV3X3VpZDok
bmV3X2dpZCAkaG9tZV9kaXI6ICQhXG4iKTsNCisJJGRpcl9tb2RlID0gZ2V0
X2Rpcl9tb2RlKCRtYWtlX2dyb3VwX2Fsc28pOw0KKwljaG1vZCAoJGRpcl9t
b2RlLCAkaG9tZV9kaXIpIHx8DQorCSAgICAmY2xlYW51cCgiY2htb2QgJGRp
cl9tb2RlICRob21lX2RpcjogJCFcbiIpOw0KKyAgICB9DQorDQorICAgIGV4
aXQgMDsNCit9DQorDQorDQorIyMjIyMjIyMjIyMjIw0KKyMjIGFkZHVzZXIg
IyMNCisjIyMjIyMjIyMjIyMjDQorZWxzaWYgKCRhY3Rpb24gZXEgImFkZHVz
ZXIiKSB7DQorICAgIGlmICghJGluZ3JvdXBfbmFtZSAmJiAhZGVmaW5lZCgk
bmV3X2dpZCkpIHsNCisJaWYgKCRjb25maWd7InVzZXJncm91cHMifSBlcSAi
eWVzIikgeyAkbWFrZV9ncm91cF9hbHNvID0gMTsgfQ0KKwllbHNlIHsgJG5l
d19naWQgPSAkY29uZmlneyJ1c2Vyc19naWQifTsgfQ0KKyAgICB9DQorICAg
ICZjaGVja191c2VyX2dyb3VwKCk7DQorICAgICRmaXJzdF91aWQgPSAkbmV3
X2ZpcnN0dWlkIHx8ICRjb25maWd7ImZpcnN0X3VpZCJ9Ow0KKyAgICAkbGFz
dF91aWQgPSAkbmV3X2xhc3R1aWQgfHwgJGNvbmZpZ3sibGFzdF91aWQifTsN
CisgICAgcHJpbnRmIF8oIkFkZGluZyB1c2VyICVzLi4uXG4iKSwkbmV3X25h
bWUgaWYgJHZlcmJvc2U7DQorDQorICAgIGlmICghZGVmaW5lZCgkbmV3X3Vp
ZCkgJiYgJG1ha2VfZ3JvdXBfYWxzbykgew0KKwkkbmV3X3VpZCA9ICZmaXJz
dF9hdmFpbF9pZCgkZmlyc3RfdWlkLA0KKwkJCQkgICAkbGFzdF91aWQsDQor
CQkJCSAgICZnZXRfY3VycmVudF91aWRzLCAmZ2V0X2N1cnJlbnRfZ2lkcyk7
DQorICAgICAgICBpZiAoJG5ld191aWQgPT0gLTEpIHsNCisgICAgICAgICAg
ICBwcmludCBTVERFUlIgIiQwOiAiLF8oIk5vIFVJRC9HSUQgcGFpciBpcyBh
dmFpbGFibGUgaW4gdGhlIHJhbmdlICIpLA0KKyAgICAgICAgICAgICIkZmly
c3RfdWlkIC0gJGxhc3RfdWlkXG4iLA0KKyAgICAgICAgICAgICIoRklSU1Rf
VUlEIC0gTEFTVF9VSUQpLiAgIjsNCisgICAgICAgICAgICBkaWVmKF8oIlVz
ZXIgYCVzJyBub3QgY3JlYXRlZC5cbiIpLCRuZXdfbmFtZSk7DQorICAgICAg
ICB9DQorCSRuZXdfZ2lkID0gJG5ld191aWQ7DQorCSRpbmdyb3VwX25hbWUg
PSAkbmV3X25hbWU7DQorICAgIH0NCisgICAgZWxzaWYgKCFkZWZpbmVkKCRu
ZXdfdWlkKSAmJiAhJG1ha2VfZ3JvdXBfYWxzbykgew0KKwkkbmV3X3VpZCA9
ICZmaXJzdF9hdmFpbF9pZCgkZmlyc3RfdWlkLA0KKwkJCQkgICAkbGFzdF91
aWQsDQorCQkJCSAgICZnZXRfY3VycmVudF91aWRzKTsNCisJaWYgKCRuZXdf
dWlkID09IC0xKSB7DQorICAgICAgICAgICAgcHJpbnQgU1RERVJSICIkMDog
IixfKCJObyBVSUQgaXMgYXZhaWxhYmxlIGluIHRoZSByYW5nZSAiKSwNCisg
ICAgICAgICAgICAiJGNvbmZpZ3tcImZpcnN0X3VpZFwifSAtICRjb25maWd7
XCJsYXN0X3VpZFwifVxuIiwNCisgICAgICAgICAgICAiKEZJUlNUX1VJRCAt
IExBU1RfVUlEKS4gICI7DQorICAgICAgICAgICAgZGllZihfKCJVc2VyIGAl
cycgbm90IGNyZWF0ZWQuXG4iKSwkbmV3X25hbWUpOw0KKyAgICAgICAgfQ0K
KwlpZiAoZGVmaW5lZCgkbmV3X2dpZCkpIHsgJGluZ3JvdXBfbmFtZSA9IGdl
dGdyZ2lkKCRuZXdfZ2lkKTsgfQ0KKwllbHNpZiAoJGluZ3JvdXBfbmFtZSkg
eyAkbmV3X2dpZCA9IGdldGdybmFtKCRpbmdyb3VwX25hbWUpOyB9DQorCWVs
c2UgeyBkaWUgXygiSW50ZXJuYWwgZXJyb3IiKTsgfQ0KKyAgICB9DQorICAg
IGVsc2Ugew0KKwlpZiAoZGVmaW5lZCgkbmV3X2dpZCkpIHsgJGluZ3JvdXBf
bmFtZSA9IGdldGdyZ2lkKCRuZXdfZ2lkKTsgfQ0KKwllbHNpZiAoJGluZ3Jv
dXBfbmFtZSkgeyAkbmV3X2dpZCA9IGdldGdybmFtKCRpbmdyb3VwX25hbWUp
OyB9DQorCWVsc2lmICgkbWFrZV9ncm91cF9hbHNvKXsgJG5ld19naWQ9JG5l
d191aWQ7ICRpbmdyb3VwX25hbWU9JG5ld19uYW1lOyB9DQorCWVsc2UgeyBk
aWUgXygiSW50ZXJuYWwgZXJyb3IiKTsgfQ0KKyAgICB9DQorDQorICAgICZp
bnZhbGlkYXRlX25zY2QoKTsNCisgICAgaWYgKCRtYWtlX2dyb3VwX2Fsc28p
IHsNCisJcHJpbnRmIF8oIkFkZGluZyBuZXcgZ3JvdXAgJXMgKCVzKS5cbiIp
LCRuZXdfbmFtZSwkbmV3X2dpZCBpZiAkdmVyYm9zZTsNCisJJHVuZG9ncm91
cCA9ICRuZXdfbmFtZTsNCisJJGZ1bmMgPSAiYWRkZ3JvdXBfJGZ1bmN0aW9u
X3N1ZmZpeCI7DQorCSYkZnVuYygkbmV3X25hbWUsJG5ld19naWQpOw0KKwkm
aW52YWxpZGF0ZV9uc2NkKCk7DQorICAgIH0NCisNCisgICAgcHJpbnRmIF8o
IkFkZGluZyBuZXcgdXNlciAlcyAoJXMpIHdpdGggZ3JvdXAgJXMuXG4iKSwk
bmV3X25hbWUsJG5ld191aWQsJGluZ3JvdXBfbmFtZQ0KKwlpZiAkdmVyYm9z
ZTsNCisgICAgJGhvbWVfZGlyID0gJHNwZWNpYWxfaG9tZSB8fCAmaG9tZWRp
cigkbmV3X25hbWUsICRpbmdyb3VwX25hbWUpOw0KKwkkc2hlbGwgPSAkc3Bl
Y2lhbF9zaGVsbCB8fCAkY29uZmlneyJkc2hlbGwifTsNCisgICAgJHVuZG91
c2VyID0gJG5ld19uYW1lOw0KKyAgICBAZ3JpbmZvID0gZ2V0Z3JuYW0oJGlu
Z3JvdXBfbmFtZSk7DQorICAgICRnaWQgPSAkZ3JpbmZvWzJdOw0KKyAgICBw
cmludCAiR3JvdXBpbmZvIHJldHVybmVkIEBncmluZm9cbiIgaWYgJGRlYnVn
Z2luZzsNCisgICAgJGZ1bmMgPSAiYWRkdXNlcl8kZnVuY3Rpb25fc3VmZml4
IjsNCisgICAgJiRmdW5jKCRuZXdfbmFtZSwgJG5ld191aWQsICRnaWQsICRo
b21lX2RpciwgJHNoZWxsLCAkbmV3X2dlY29zKTsNCisgICAgJmludmFsaWRh
dGVfbnNjZCgpOw0KKw0KKyAgICBpZiAoLWUgJGhvbWVfZGlyKSB7DQorCXBy
aW50ZiBfKCJIb21lIGRpcmVjdG9yeSAlcyBhbHJlYWR5IGV4aXN0cy4gIE5v
dCBjb3B5aW5nIGZyb20gJXNcbiIpLA0KKyAgICAgICAgJGhvbWVfZGlyLCRj
b25maWd7c2tlbH0gaWYgJHZlcmJvc2UgJiYgISRub19jcmVhdGVfaG9tZTsN
CisgICAgfSBlbHNpZiAoJG5vX2NyZWF0ZV9ob21lKSB7DQorCXByaW50ICJO
b3QgY3JlYXRpbmcgJGhvbWVfZGlyLlxuIiBpZiAkdmVyYm9zZTsNCisgICAg
fQ0KKyAgICBlbHNlIHsNCisJcHJpbnRmIF8oIkNyZWF0aW5nIGhvbWUgZGly
ZWN0b3J5ICVzLlxuIiksJGhvbWVfZGlyIGlmICR2ZXJib3NlOw0KKwkkdW5k
b2hvbWUgPSAkaG9tZV9kaXI7DQorCSZta3RyZWUoJGhvbWVfZGlyKSB8fCAm
Y2xlYW51cCgiQ291bGRuJ3QgY3JlYXRlICRob21lX2RpcjogJCEuXG4iKTsN
CisJY2hvd24oJG5ld191aWQsICRuZXdfZ2lkLCAkaG9tZV9kaXIpDQorCSAg
ICB8fCAmY2xlYW51cCgiY2hvd24gJG5ld191aWQ6JG5ld19naWQgJGhvbWVf
ZGlyOiAkIVxuIik7DQorCSRkaXJfbW9kZSA9IGdldF9kaXJfbW9kZSgkbWFr
ZV9ncm91cF9hbHNvKTsNCisJY2htb2QgKCRkaXJfbW9kZSwgJGhvbWVfZGly
KSB8fA0KKwkgICAgJmNsZWFudXAoImNobW9kICRkaXJfbW9kZSAkaG9tZV9k
aXI6ICQhXG4iKTsNCisNCisJaWYgKCRjb25maWd7InNrZWwifSkgew0KKwkg
ICAgcHJpbnRmIF8oIkNvcHlpbmcgZmlsZXMgZnJvbSAlc1xuIiksJGNvbmZp
Z3tza2VsfSBpZiAkdmVyYm9zZTsNCisJICAgIG9wZW4oRklORCwgImNkICRj
b25maWd7c2tlbH07IGZpbmQgLiAgISAtbmFtZSAnKi5kcGtnLSonIC1wcmlu
dCB8IikNCisJCXx8ICZjbGVhbnVwKCJmb3JrIGZvciBmaW5kOiAkIVxuIik7
DQorCSAgICB3aGlsZSAoPEZJTkQ+KSB7DQorCQljaG9wOw0KKwkJbmV4dCBp
ZiAoJF8gZXEgIi4iKTsNCisJCSZjb3B5X3RvX2RpcigkY29uZmlneyJza2Vs
In0sICRfLCAkaG9tZV9kaXIsICRuZXdfdWlkLA0KKwkJCSAgICAgJG5ld19n
aWQsICRtYWtlX2dyb3VwX2Fsc28pOw0KKwkgICAgfQ0KKwl9DQorICAgIH0N
CisNCisgICAgaWYgKCRhc2tfcGFzc3dkKSB7DQorCSZzeXN0ZW1jYWxsKCcv
dXNyL2Jpbi9wYXNzd2QnLCAkbmV3X25hbWUpOw0KKyAgICB9IGVsc2Ugew0K
KwlpZighJGRpc2FibGVkX2xvZ2luKSB7DQorCSAgICAmc3lzdGVtY2FsbCgn
L3Vzci9zYmluL3VzZXJtb2QnLCAnLXAnLCAnKicsICRuZXdfbmFtZSk7DQor
CX0NCisgICAgfQ0KKw0KKyAgICBpZiAoIWRlZmluZWQoJG5ld19nZWNvcykp
IHsNCisJZm9yICg7Oykgew0KKwkgICAgJnN5c3RlbWNhbGwoJy91c3IvYmlu
L2NoZm4nLCAkbmV3X25hbWUpOw0KKwkgICAgcHJpbnQgXygiSXMgdGhlIGlu
Zm9ybWF0aW9uIGNvcnJlY3Q/IFt5L05dICIpOw0KKwkgICAgY2hvcCAoJGFu
c3dlcj08U1RESU4+KTsNCisJICAgIGxhc3QgaWYgKCRhbnN3ZXIgZXEgXygi
eSIpKTsNCisJfQ0KKyAgICB9DQorDQorICAgIGlmICgkY29uZmlneyJxdW90
YXVzZXIifSkgew0KKwlwcmludGYgXygiU2V0dGluZyBxdW90YSBmcm9tICVz
LlxuIiksJGNvbmZpZ3txdW90YXVzZXJ9Ow0KKwkmc3lzdGVtY2FsbCgnL3Vz
ci9zYmluL2VkcXVvdGEnLCAnLXAnLCAkY29uZmlne3F1b3RhdXNlcn0sICRu
ZXdfbmFtZSk7DQorICAgIH0NCisNCisgICAgJnN5c3RlbWNhbGwoJy91c3Iv
bG9jYWwvc2Jpbi9hZGR1c2VyLmxvY2FsJywgJG5ld19uYW1lLCAkbmV3X3Vp
ZCwNCisJCSRuZXdfZ2lkLCAkaG9tZV9kaXIpIGlmICgteCAiL3Vzci9sb2Nh
bC9zYmluL2FkZHVzZXIubG9jYWwiKTsNCisgICAgDQorICAgIGV4aXQgMDsN
Cit9DQorDQorDQorIyBjYWxjdWxhdGUgaG9tZSBkaXJlY3RvcnkNCitzdWIg
aG9tZWRpciB7DQorICAgIG15ICRkaXIgPSAkY29uZmlneyJkaG9tZSJ9Ow0K
KyAgICAkZGlyIC49ICcvJyAuICRfWzFdIGlmICgkY29uZmlneyJncm91cGhv
bWVzIn0gPX4gL3llcy9pKTsNCisgICAgJGRpciAuPSAnLycgLiBzdWJzdHIo
JF9bMF0sMCwxKSBpZiAoJGNvbmZpZ3sibGV0dGVyaG9tZXMifSA9fiAveWVz
L2kpOw0KKyAgICAkZGlyIC49ICcvJyAuICRfWzBdOw0KK30NCisNCisNCisj
IGNyZWF0ZSBhIGRpcmVjdG9yeSBhbmQgYWxsIGxlYWRpbmcgZGlyZWN0b3Jp
ZXMNCitzdWIgbWt0cmVlIHsNCisgICAgbXkoJHRyZWUpID0gQF87DQorICAg
IG15KCRkb25lLCBAcGF0aCk7DQorICAgIG15ICRkZWZhdWx0X2Rpcl9tb2Rl
ID0gMDc1NTsNCisNCisgICAgJHRyZWUgPX4gczpeLyooLiopLyokOiQxOjsg
IyBjaG9wIG9mZiBsZWFkaW5nICYgdHJhaWxpbmcgc2xhc2hlcw0KKyAgICBA
cGF0aCA9IHNwbGl0KC9cLy8sICR0cmVlKTsNCisNCisgICAgJGRvbmUgPSAi
IjsNCisgICAgd2hpbGUgKEBwYXRoKSB7DQorCSRkb25lIC49ICcvJyAuIHNo
aWZ0KEBwYXRoKTsNCisJLWQgJGRvbmUgfHwgbWtkaXIoJGRvbmUsICRkZWZh
dWx0X2Rpcl9tb2RlKSB8fCByZXR1cm4gMDsNCisgICAgfQ0KKyAgICAxOw0K
K30NCisNCisNCitzdWIgY2hlY2tfdXNlcl9ncm91cCgpIHsNCisgICAgZGll
ZihfKCJUaGUgdXNlciBgJXNcJyBhbHJlYWR5IGV4aXN0cy5cbiIpLCRuZXdf
bmFtZSkgaWYoZGVmaW5lZCBnZXRwd25hbSgkbmV3X25hbWUpKTsNCisgICAg
ZGllZihfKCJUaGUgVUlEIGAlcycgYWxyZWFkeSBleGlzdHMuXG4iKSwkbmV3
X3VpZCkNCisJaWYgKGRlZmluZWQoJG5ld191aWQpICYmIGdldHB3dWlkKCRu
ZXdfdWlkKSk7DQorICAgIGlmICgkbWFrZV9ncm91cF9hbHNvKSB7DQorCWRp
ZWYoXygiVGhlIGdyb3VwIGAlcycgYWxyZWFkeSBleGlzdHMuXG4iKSwkbmV3
X25hbWUpDQorCSAgICBpZiAoZGVmaW5lZCBnZXRncm5hbSgkbmV3X25hbWUp
KTsNCisJZGllZihfKCJUaGUgR0lEIGAlcycgYWxyZWFkeSBleGlzdHMuXG4i
KSwkbmV3X3VpZCkNCisJICAgIGlmIChkZWZpbmVkKCRuZXdfdWlkKSAmJiBk
ZWZpbmVkKGdldGdyZ2lkKCRuZXdfdWlkKSkpOw0KKyAgICB9DQorICAgIGVs
c2Ugew0KKwlkaWVmKF8oIlRoZSBncm91cCBgJXMnIGRvZXNuJ3QgZXhpc3Qu
XG4iKSwkaW5ncm91cF9uYW1lKQ0KKwkgICAgaWYgKCRpbmdyb3VwX25hbWUg
JiYgIWRlZmluZWQoZ2V0Z3JuYW0oJGluZ3JvdXBfbmFtZSkpKTsNCisJZGll
ZihfKCJUaGUgR0lEIGAlcycgZG9lc24ndCBleGlzdC5cbiIpLCRuZXdfZ2lk
KQ0KKwkgICAgaWYgKGRlZmluZWQoJG5ld19naWQpICYmICFkZWZpbmVkKGdl
dGdyZ2lkKCRuZXdfZ2lkKSkpOw0KKyAgICB9DQorfQ0KKw0KKw0KKyMgY29w
eSBmaWxlcywgZGlyZWN0b3JpZXMsIHN5bWxpbmtzICAgIA0KK3N1YiBjb3B5
X3RvX2RpciB7DQorICAgIG15KCRmcm9tZGlyLCAkZmlsZSwgJHRvZGlyLCAk
bmV3dSwgJG5ld2csICRzZ2lkZGlyKSA9IEBfOw0KKw0KKyAgICBpZiAoLWwg
IiRmcm9tZGlyLyRmaWxlIikgew0KKwlzeW1saW5rKHJlYWRsaW5rKCIkZnJv
bWRpci8kZmlsZSIpLCAiJHRvZGlyLyRmaWxlIikNCisJICAgIHx8ICZjbGVh
bnVwKCJzeW1saW5rOiAkIVxuIik7DQorCXJldHVybjsNCisgICAgfQ0KKyAg
ICBlbHNpZiAoLWYgIiRmcm9tZGlyLyRmaWxlIikgew0KKwlvcGVuIChGSUxF
LCAiJGZyb21kaXIvJGZpbGUiKSB8fCAmY2xlYW51cCgib3BlbiAkZnJvbWRp
ci8kZmlsZTogJCEiKTsNCisJb3BlbiAoTkVXRklMRSwgIj4kdG9kaXIvJGZp
bGUiKSB8fCAmY2xlYW51cCgib3BlbiA+JHRvZGlyLyRmaWxlOiAkISIpOw0K
Kw0KKwkocHJpbnQgTkVXRklMRSA8RklMRT4pIHx8ICZjbGVhbnVwKCJwcmlu
dCAkdG9kaXIvJGZpbGU6ICQhIik7DQorCWNsb3NlIEZJTEU7DQorCWNsb3Nl
KE5FV0ZJTEUpICB8fCAmY2xlYW51cCgiY2xvc2UgJHRvZGlyLyRmaWxlICIp
Ow0KKw0KKyAgICB9DQorICAgIGVsc2lmICgtZCAiJGZyb21kaXIvJGZpbGUi
KSB7DQorCW1rZGlyKCIkdG9kaXIvJGZpbGUiLCA3MDApIHx8ICZjbGVhbnVw
KCJta2RpcjogJCEiKTsNCisgICAgfQ0KKyAgICBlbHNlIHsNCisJJmNsZWFu
dXAoIkNhbid0IGRlYWwgd2l0aCAkZnJvbWRpci8kZmlsZS4gICINCisJCSAu
Ik5vdCBhIGRpciwgZmlsZSwgb3Igc3ltbGluay5cbiIpOw0KKyAgICB9DQor
ICAgIA0KKyAgICBjaG93bigkbmV3dSwgJG5ld2csICIkdG9kaXIvJGZpbGUi
KQ0KKwl8fCAmY2xlYW51cCgiY2hvd24gJG5ld3U6JG5ld2cgJHRvZGlyLyRm
aWxlOiAkIVxuIik7DQorICAgICRwZXJtID0gKHN0YXQoIiRmcm9tZGlyLyRm
aWxlIikpWzJdICYgMDc3Nzc7DQorICAgICRwZXJtIHw9IDAyMDAwIGlmICgt
ZCAiJGZyb21kaXIvJGZpbGUiICYmICgkcGVybSAmIDAxMCkgJiYgJHNnaWRk
aXIpOw0KKyAgICBjaG1vZCgkcGVybSwgIiR0b2Rpci8kZmlsZSIpIHx8ICZj
bGVhbnVwKCJjaG1vZCAkdG9kaXIvJGZpbGU6ICQhXG4iKTsNCit9DQorICAg
ICAgIA0KKw0KKyMgaXMgbmFtZSBvaz8NCitzdWIgY2hlY2tuYW1lIHsNCisg
ICAgbXkgKCRuYW1lKSA9IEBfOw0KKyAgICBpZiAoJGFsbG93X2JhZG5hbWUg
JiYgJG5hbWUgIX4gL15bQS1aYS16X11bLV9BLVphLXowLTldKlwkPyQvKSB7
DQorCXByaW50IFNUREVSUg0KKyIkMDogIixfKCJUbyBhdm9pZCBwcm9ibGVt
cywgdGhlIHVzZXJuYW1lIHNob3VsZCBjb25zaXN0IG9mIGEgbGV0dGVyIG9y
DQordW5kZXJzY29yZSBmb2xsb3dlZCBieSBsZXR0ZXJzLCBkaWdpdHMsIHVu
ZGVyc2NvcmVzLCBhbmQgZGFzaGVzLiBGb3INCitjb21wYXRpYmlsaXR5IHdp
dGggU2FtYmEgbWFjaGluZSBhY2NvdW50cyBhbHNvIFwkIGlzIHN1cHBvcnRl
ZCBhdCB0aGUNCitlbmQgb2YgdGhlIHVzZXJuYW1lXG4iKTsNCisJZXhpdCAx
Ow0KKyAgICB9DQorICAgIGVsc2lmICgkbmFtZSAhfiAvXlthLXpdW2EtejAt
OVwtXSokLykgew0KKwlpZiAoISRhbGxvd19iYWRuYW1lKSB7DQorCSAgICBw
cmludCBTVERFUlINCisiJDA6ICIsXygiUGxlYXNlIGVudGVyIGEgdXNlcm5h
bWUgY29uc2lzdGluZyBvZiBhIGxvd2VyIGNhc2UgbGV0dGVyDQorZm9sbG93
ZWQgYnkgbG93ZXIgY2FzZSBsZXR0ZXJzIGFuZCBudW1iZXJzLiAgVXNlIHRo
ZSBgLS1mb3JjZS1iYWRuYW1lJw0KK29wdGlvbiB0byBhbGxvdyB1bmRlcnNj
b3JlcywgYW5kIHVwcGVyY2FzZS5cbiIpOw0KKwkgICAgZXhpdCAxOw0KKwl9
DQorCXByaW50IF8oIkFsbG93aW5nIHVzZSBvZiBxdWVzdGlvbmFibGUgdXNl
cm5hbWUuXG4iKSBpZiAoJHZlcmJvc2UpOw0KKyAgICB9DQorfQ0KKw0KKw0K
KyMgcmV0dXJuIHRoZSBzbWFsbGVzdCBYIHN1Y2ggdGhhdA0KKyMgJG1pbiA8
PSBYIDw9ICRtYXgsIGFuZCBYIGlzIG5vdCBhbiBlbGVtZW50IG9mIEBpZHMN
CisjIG9yIC0xIGlmIG5vIHN1Y2ggWA0KK3N1YiBmaXJzdF9hdmFpbF9pZCB7
DQorICAgIG15ICgkbWluLCAkbWF4LCBAaWRzKSA9IEBfOw0KKyAgICBAaWRz
ID0gc29ydCB7JGEgPD0+ICRifSBAaWRzOw0KKyAgICBwcmludGYgXygiU2Vs
ZWN0aW5nIGZyb20gJXMgJXMgKCVzKS5cbiIpLCRtaW4sJG1heCxqb2luKCIs
IixAaWRzKSBpZiAkZGVidWdnaW5nOw0KKyAgICANCisgICAgd2hpbGUgKCRt
aW4gPD0gJG1heCkgew0KKwlyZXR1cm4gJG1pbiBpZiAoJG1pbiA8ICAkaWRz
WzBdIHx8IEBpZHM9PTApOw0KKwlzaGlmdCBAaWRzICBpZiAoJG1pbiA+ICAk
aWRzWzBdKTsNCisJJG1pbisrICAgICAgaWYgKCRtaW4gPT0gJGlkc1swXSk7
DQorICAgIH0NCisNCisgICAgLTE7CQkJCSMgbm90aGluZyBhdmFpbGFibGUN
Cit9DQorDQorDQorIyByZXR1cm4gYW4gYXJyYXkgY29udGFpbmluZyBhbGwg
dGhlIEdJRHMNCitzdWIgZ2V0X2N1cnJlbnRfZ2lkcyB7DQorICAgIG15KEBn
aWRzLCAkZ2lkKTsNCisgICAgc2V0Z3JlbnQ7DQorICAgIHB1c2ggQGdpZHMs
ICRnaWQgd2hpbGUgZGVmaW5lZCgkZ2lkID0gKGdldGdyZW50KVsyXSk7DQor
ICAgIGVuZGdyZW50Ow0KKyAgICBAZ2lkczsNCit9DQorDQorDQorIyByZXR1
cm4gYW4gYXJyYXkgY29udGFpbmluZyBhbGwgdGhlIFVJRHMNCitzdWIgZ2V0
X2N1cnJlbnRfdWlkcyB7DQorICAgIG15KEB1aWRzLCAkdWlkKTsNCisgICAg
c2V0cHdlbnQ7DQorICAgIHB1c2ggQHVpZHMsICR1aWQgd2hpbGUgZGVmaW5l
ZCgkdWlkID0gKGdldHB3ZW50KVsyXSk7DQorICAgIGVuZHB3ZW50Ow0KKyAg
ICBAdWlkczsNCit9DQorDQorc3ViIGNoX2dlY29zIHsNCisgICAgbXkgJGdl
Y29zID0gc2hpZnQ7DQorICAgIGlmKCRnZWNvcyA9fiAvLC8pDQorICAgICAg
ew0KKwkgIG15KCRnZWNvc19uYW1lLCRnZWNvc19yb29tLCRnZWNvc193b3Jr
LCRnZWNvc19ob21lLCRnZWNvc19vdGhlcikNCisJICAgID0gc3BsaXQoLywv
LCRnZWNvcyk7DQorDQorCSAgJnN5c3RlbWNhbGwoJy91c3IvYmluL2NoZm4n
LCAnLWYnLCAkZ2Vjb3NfbmFtZSwgJy1yJywgJGdlY29zX3Jvb20sICRuZXdf
bmFtZSk7DQorCSAgJnN5c3RlbWNhbGwoJy91c3IvYmluL2NoZm4nLCctdycs
JGdlY29zX3dvcmssJG5ld19uYW1lKQ0KKwkgICAgaWYoZGVmaW5lZCgkZ2Vj
b3Nfd29yaykpOw0KKwkgICZzeXN0ZW1jYWxsKCcvdXNyL2Jpbi9jaGZuJywn
LWgnLCRnZWNvc19ob21lLCRuZXdfbmFtZSkNCisJICAgIGlmKGRlZmluZWQo
JGdlY29zX2hvbWUpKTsNCisJICAmc3lzdGVtY2FsbCgnL3Vzci9iaW4vY2hm
bicsJy1vJywkZ2Vjb3Nfb3RoZXIsJG5ld19uYW1lKQ0KKwkgICAgaWYoZGVm
aW5lZCgkZ2Vjb3Nfb3RoZXIpKTsNCisgICAgICB9DQorICAgIGVsc2UNCisg
ICAgICB7DQorCSAgJnN5c3RlbWNhbGwoJy91c3IvYmluL2NoZm4nLCAnLWYn
LCAkZ2Vjb3MsICRuZXdfbmFtZSk7DQorICAgICAgfQ0KK30NCisNCisjIHVz
ZXIgaXMgbWVtYmVyIG9mIGdyb3VwPw0KK3N1YiB1c2VyX2lzX21lbWJlciB7
DQorICAgIG15KCR1c2VyLCAkZ3JvdXApID0gQF87DQorICAgIGZvciAoc3Bs
aXQoLyAvLCAoZ2V0Z3JuYW0oJGdyb3VwKSlbM10pKSB7DQorCXJldHVybiAx
IGlmICgkdXNlciBlcSAkXyk7DQorICAgIH0NCisgICAgMDsNCit9DQorDQor
DQorc3ViIGNsZWFudXAgew0KKyAgICBpZiAoJGNsZWFuaW5nX3VwKQ0KKyAg
ICB7DQorCWRpZSAoIlJlYWxseSBmYXRhbCBlcnJvcjogcmVjdXJzaXZlIGNs
ZWFudXAuXG4iKTsNCisgICAgfQ0KKyAgICAkY2xlYW5pbmdfdXAgPSAxOw0K
KyAgICBwcmludCAiQHtffUNsZWFuaW5nIHVwLlxuIjsNCisgICAgaWYgKCR1
bmRvaG9tZSkgew0KKwlwcmludGYgXygiUmVtb3ZpbmcgZGlyZWN0b3J5IGAl
cydcbiIpLCR1bmRvaG9tZTsNCisJc3lzdGVtKCdybScsICctcmYnLCAkdW5k
b2hvbWUpOw0KKyAgICB9DQorICAgIGlmICgkdW5kb3VzZXIpIHsNCisJcHJp
bnRmIF8oIlJlbW92aW5nIHVzZXIgYCVzJy5cbiIpLCR1bmRvdXNlcjsNCisJ
JGZ1bmMgPSAiZGVsdXNlcl8kZnVuY3Rpb25fc3VmZml4IjsNCisJJiRmdW5j
KCR1bmRvdXNlcik7DQorICAgIH0NCisgICAgaWYgKCR1bmRvZ3JvdXApIHsN
CisJcHJpbnRmIF8oIlJlbW92aW5nIGdyb3VwIGAlcycuXG4iKSwkdW5kb2dy
b3VwOw0KKwkkZnVuYyA9ICJkZWxncm91cF8kZnVuY3Rpb25fc3VmZml4IjsN
CisJJiRmdW5jKCR1bmRvZ3JvdXApOw0KKyAgICB9DQorICAgICMgZG8gd2Ug
bmVlZCB0byBpbnZhbGlkYXRlIHRoZSBuc2NkIGNhY2hlIGhlcmUsIHRvbz8N
CisgICAgZXhpdCAxOw0KK30NCisNCitzdWIgaGFuZGxlciB7DQorICAgIG15
KCRzaWcpID0gQF87DQorICAgICZjbGVhbnVwKCJDYXVnaHQgYSBTSUckc2ln
LlxuIik7DQorfQ0KKyAgICANCisNCitzdWIgdmVyc2lvbiB7DQorICAgIHBy
aW50ICIkMDogYWRkIGEgdXNlciBvciBncm91cCB0byB0aGUgc3lzdGVtLiAg
VmVyc2lvbiAzLjUwDQorQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk4LCAxOTk5
IEd1eSBNYW9yIDxtYW9yXEBkZWJpYW4ub3JnPg0KK0NvcHlyaWdodCAoQykg
MTk5NSBJYW4gTXVyZG9jayA8aW11cmRvY2tcQGdudS5haS5taXQuZWR1PiwN
CisgICAgICAgICAgICAgICAgICAgVGVkIEhhamVrIDx0ZWRoYWpla1xAYm9v
bWJveC5taWNyby51bW4uZWR1PiwgDQorICAgIA0KK1RoaXMgcHJvZ3JhbSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IgbW9kaWZ5DQoraXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCit0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQNCit5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uDQorDQorVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dA0KK1dJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YNCitNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQ0KK0dlbmVyYWwgUHVibGlj
IExpY2Vuc2UsIC91c3Ivc2hhcmUvY29tbW9uLWxpY2Vuc2VzL0dQTCwgZm9y
IG1vcmUgZGV0YWlscy4NCisiOw0KK30NCisNCitzdWIgdXNhZ2Ugew0KKyAg
ICBwcmludGYgXygNCisiYWRkdXNlciBbLS1ob21lIERJUl0gWy0tc2hlbGwg
U0hFTExdIFstLW5vLWNyZWF0ZS1ob21lXSBbLS11aWQgSURdDQorWy0tZmly
c3R1aWQgSURdIFstLWxhc3R1aWQgSURdIFstLWdlY29zIEdFQ09TXSBbLS1p
bmdyb3VwIEdST1VQIHwgLS1naWQgSURdDQorWy0tZGlzYWJsZWQtcGFzc3dv
cmRdIFstLWRpc2FibGVkLWxvZ2luXSB1c2VyDQorICAgQWRkIGEgbm9ybWFs
IHVzZXINCisNCithZGR1c2VyIC0tc3lzdGVtIFstLWhvbWUgRElSXSBbLS1z
aGVsbCBTSEVMTF0gWy0tbm8tY3JlYXRlLWhvbWVdIFstLXVpZCBJRF0NCitb
LS1nZWNvcyBHRUNPU10gWy0tZ3JvdXAgfCAtLWluZ3JvdXAgR1JPVVAgfCAt
LWdpZCBJRF0gWy0tZGlzYWJsZWQtcGFzc3dvcmRdDQorWy0tZGlzYWJsZWQt
bG9naW5dIHVzZXINCisgICBBZGQgYSBzeXN0ZW0gdXNlcg0KKw0KK2FkZHVz
ZXIgLS1ncm91cCBbLS1naWQgSURdIGdyb3VwDQorYWRkZ3JvdXAgWy0tZ2lk
IElEXSBncm91cA0KKyAgIEFkZCBhIHVzZXIgZ3JvdXANCisNCithZGR1c2Vy
IC0tZ3JvdXAgLS1zeXN0ZW0gWy0tZ2lkIElEXSBncm91cA0KK2FkZGdyb3Vw
IC0tc3lzdGVtIFstLWdpZCBJRF0gZ3JvdXANCisgICBBZGQgYSBzeXN0ZW0g
Z3JvdXANCisNCithZGR1c2VyIHVzZXIgZ3JvdXANCisgICBBZGQgYW4gZXhp
c3RpbmcgdXNlciB0byBhbiBleGlzdGluZyBncm91cA0KKw0KK0dsb2JhbCBj
b25maWd1cmF0aW9uIGlzIGluIHRoZSBmaWxlICVzLg0KK090aGVyIG9wdGlv
bnMgYXJlIFstLXF1aWV0XSBbLS1mb3JjZS1iYWRuYW1lXSBbLS1oZWxwXSBb
LS12ZXJzaW9uXSBbLS1jb25mDQorRklMRV0uDQorIiksJGRlZmF1bHRzOw0K
K30NCisNCitzdWIgc3lzdGVtY2FsbCB7DQorICAgIG15ICRjID0gam9pbign
ICcsIEBfKTsNCisgICAgcHJpbnQgIiRjXG4iIGlmICRkZWJ1Z2dpbmc7DQor
ICAgIGlmIChzeXN0ZW0oQF8pKSB7DQorCSZjbGVhbnVwKCIkMDogYCRjJyBy
ZXR1cm5lZCBlcnJvciBjb2RlICIgLiAoJD8+PjgpIC4gIi4gIEFib3J0aW5n
LlxuIikNCisJICBpZiAoJD8+PjgpOw0KKwkmY2xlYW51cCgiJDA6IGAkYycg
ZXhpdGVkIGZyb20gc2lnbmFsICIgLiAoJD8mMjU1KSAuICIuICBBYm9ydGlu
Zy5cbiIpOw0KKyAgICB9DQorfQ0KKw0KK3N1YiBnZXRfZGlyX21vZGUNCisg
IHsNCisgICAgICBteSAkc2V0Z2lkID0gc2hpZnQ7DQorICAgICAgIyBubyBs
b25nZXIgbWFrZSBob21lIGRpcmVjdG9yaWVzIHNldGdpZCBwZXIgZGVmYXVs
dCAoY2xvc2VzOiAjNjQ4MDYpDQorICAgICAgJHNldGdpZCA9IDAgdW5sZXNz
ICRjb25maWd7InNldGdpZF9ob21lIn0gZXEgInllcyI7DQorDQorICAgICAg
bXkgJGRpcl9tb2RlID0gJGNvbmZpZ3siZGlyX21vZGUifTsNCisgICAgICBp
ZighZGVmaW5lZCgkZGlyX21vZGUpIHx8ICEgKCRkaXJfbW9kZSA9fiAvWzAt
N117M30vIHx8DQorCQkJCSAgICRkaXJfbW9kZSA9fiAvWzAtN117NH0vKSkN
CisJew0KKwkgICAgJGRpcl9tb2RlID0gJHNldGdpZCA/IDI3NTUgOiAwNzU1
Ow0KKwl9DQorICAgICAgZWxzZQ0KKwl7DQorCSAgICAkZGlyX21vZGUgPSAk
Y29uZmlneyJkaXJfbW9kZSJ9Ow0KKwkgICAgaWYoJHNldGdpZCAmJiAobGVu
Z3RoKCRkaXJfbW9kZSkgPT0gMyB8fCAkZGlyX21vZGUgPX4gL15bMC0xfDQt
NV1bMC03XXszfSQvKSkNCisJICAgICAgew0KKwkJICAkZGlyX21vZGUgKz0g
MjAwMDsNCisJICAgICAgfQ0KKwl9DQorICAgICAgcmV0dXJuIG9jdCgkZGly
X21vZGUpOw0KKyAgfQ0KKw0KKyMgTG9jYWwgVmFyaWFibGVzOg0KKyMgbW9k
ZTpjcGVybA0KKyMgY3BlcmwtaW5kZW50LWxldmVsOjQNCisjIEVuZDoNCisN
CisNCmRpZmYgLXVyTiBhZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91c3Ivc2Jp
bi9hZGR1c2VyIGFkZHVzZXItMy41MC5tcGFsbWVyL2RlYmlhbi90bXAvdXNy
L3NiaW4vYWRkdXNlcg0KLS0tIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL3Vz
ci9zYmluL2FkZHVzZXIJVGh1IEphbiAgMSAxMDowMDowMCAxOTcwDQorKysg
YWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Ivc2Jpbi9hZGR1
c2VyCVdlZCBNYXkgIDcgMTc6MDE6NDEgMjAwMw0KQEAgLTAsMCArMSw4OTAg
QEANCisjIS91c3IvYmluL3BlcmwNCisjDQorIyBhZGR1c2VyIDMuNTAuMg0K
KyMNCisjIGFkZHVzZXI6IGEgdXRpbGl0eSB0byBhZGQgdXNlcnMgdG8gdGhl
IHN5c3RlbQ0KKyMgYWRkZ3JvdXA6IGEgdXRpbGl0eSB0byBhZGQgZ3JvdXBz
IHRvIHRoZSBzeXN0ZW0NCisNCisjIENvcHlyaWdodCAoQykgMTk5NywgMTk5
OCwgMTk5OSBHdXkgTWFvciA8bWFvckBkZWJpYW4ub3JnPg0KKyMgQ29weXJp
Z2h0IChDKSAxOTk1IFRlZCBIYWplayA8dGVkaGFqZWtAYm9vbWJveC5taWNy
by51bW4uZWR1Pg0KKyMgICAgICAgICAgICAgICAgICAgICBJYW4gQS4gTXVy
ZG9jayA8aW11cmRvY2tAZ251LmFpLm1pdC5lZHU+DQorIyBCdWdmaXhlcyBh
bmQgb3RoZXIgaW1wcm92ZW1lbnRzIFJvbGFuZCBCYXVlcnNjaG1pZHQgPHJi
QGRlYmlhbi5vcmc+DQorIyBMREFQIHN1cHBvcnQgcHJvZ3JhbW1lZCBieSBN
YXR0aGV3IFBhbG1lciA8bXBhbG1lckBkZWJpYW4ub3JnPg0KKyMgR2VuZXJh
bCBzY2hlbWUgb2YgdGhlIHByb2dyYW0gYWRhcHRlZCBieSB0aGUgb3JpZ2lu
YWwgZGViaWFuICdhZGR1c2VyJw0KKyMgIHByb2dyYW0gYnkgSWFuIEEuIE11
cmRvY2sgPGltdXJkb2NrQGdudS5haS5taXQuZWR1Pi4NCisjDQorIyAgICBU
aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyMgICAgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkNCisjICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQorIyAgICAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KKyMNCisjICAg
IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyMgICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YN
CisjICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCisjICAgIEdOVSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQorIw0KKyMgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UNCisjICAgIGFsb25nIHdpdGggdGhpcyBwcm9n
cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQorIyAg
ICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMz
MCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBDQorIw0KKyMNCisjIyMj
IyMjIyMjIyMjIyMjIyMjIw0KKyMgdGhlIHByb2dyYW0gY2FuIGJlIGNhbGxl
ZCBhczoNCisjDQorIyAgYWRkdXNlciBbLS1ob21lIERJUl0gWy0tc2hlbGwg
U0hFTExdIFstLXVpZCBJRF0gWy0tZmlyc3R1aWQgSURdDQorIyAgWy0tbGFz
dHVpZCBJRF0gWy0taW5ncm91cCBHUk9VUCB8IC0tZ2lkIElEXSBbLS1kaXNh
YmxlZC1wYXNzd29yZF0NCisjICBbLS1kaXNhYmxlZC1sb2dpbl0gWy0tZ2Vj
b3MgR0VDT1NdIFstLW5vLWNyZWF0ZS1ob21lXSB1c2VyDQorIyAgICAgIGFk
ZCBhIG5vcm1hbCB1c2VyIHRvIHRoZSBzeXN0ZW0NCisjICAgICAgZXhhbXBs
ZTogYWRkdXNlciBmcmVkDQorIyAgICAgICRhY3Rpb24gPSAiYWRkdXNlciIN
CisjDQorIyAgYWRkdXNlciAtLWdyb3VwIFstLWdpZCBJRF0gZ3JvdXANCisj
ICBhZGRncm91cCBbLS1naWQgSURdIGdyb3VwDQorIyAgICAgIGFkZCBhIHVz
ZXIgZ3JvdXANCisjICAgICAgZXhhbXBsZTogYWRkZ3JvdXAgcG93ZXJ1c2Vy
cw0KKyMgICAgICAkYWN0aW9uID0gImFkZGdyb3VwIg0KKyMNCisjICBhZGR1
c2VyIC0tZ3JvdXAgLS1zeXN0ZW0gWy0tZ2lkIEdJRF0gZ3JvdXANCisjICBh
ZGRncm91cCAtLXN5c3RlbSBbLS1naWQgR0lEXSBncm91cA0KKyMgICAgICBh
ZGQgYSBzeXN0ZW0gZ3JvdXANCisjICAgICAgZXhhbXBsZTogYWRkZ3JvdXAg
LS1zeXN0ZW0gLS1xdWlldCB3d3ctZGF0YQ0KKyMgICAgICAkYWN0aW9uID0g
ImFkZHN5c2dyb3VwIg0KKyMNCisjICBhZGR1c2VyIC0tc3lzdGVtIFstLWhv
bWUgRElSXSBbLS1zaGVsbCBTSEVMTF0gWy0tdWlkIElEXSBbLS1ncm91cCB8
DQorIyAgLS1pbmdyb3VwIEdST1VQIHwgLS1naWQgSURdIFstLWRpc2FibGVk
LXBhc3N3b3JkXSBbLS1kaXNhYmxlZC1sb2dpbl0NCisjICBbLS1nZWNvcyBH
RUNPU10gWy0tbm8tY3JlYXRlLWhvbWVdIHVzZXINCisjICAgICAgYWRkIGEg
c3lzdGVtIHVzZXIuICBDcmVhdGUgYSBsaWtlLW5hbWVkLCBsaWtlLWlkJ2Qg
Z3JvdXAgd2l0aA0KKyMgICAgICAtLWdyb3VwLCBhZGQgdG8gYW4gZXhpc3Rp
bmcgZ3JvdXAgd2l0aCAtLWluZ3JvdXAgb3IgLS1naWQuICBBZGQNCisjICAg
ICAgdG8gIm5vZ3JvdXAiIHdpdGggbmVpdGhlci4NCisjICAgICAgZXhhbXBs
ZTogYWRkdXNlciAtLXN5c3RlbSAtLWhvbWUgL2hvbWUvZ29waGVyLWRhdGEg
LS1ncm91cCBnb3BoZXINCisjICAgICAgJGFjdGlvbiA9ICJhZGRzeXN1c2Vy
Ig0KKyMNCisjICBhZGR1c2VyIHVzZXIgZ3JvdXANCisjICAgICAgYWRkIHRo
ZSBleGlzdGluZyB1c2VyIHRvIGFuIGV4aXN0aW5nIGdyb3VwLg0KKyMgICAg
ICAkYWN0aW9uID0gImFkZHVzZXJ0b2dyb3VwIg0KKyMNCisjICBhbGwgY29t
bWFuZHMgdGFrZSB0aGUgZm9sbG93aW5nIG9wdGlvbnM6DQorIyAgICAgIC0t
cXVpZXQgICAgICAgICAgZG9uJ3QgZ2l2ZSBwcm9ncmVzcyBpbmZvcm1hdGlv
biBvbiBTVERPVVQNCisjICAgICAgLS1mb3JjZS1iYWRuYW1lICBkaXNhYmxl
IGNoZWNraW5nIG9mIG5hbWVzIGZvciBmdW5ueSBjaGFyYWN0ZXJzDQorIyAg
ICAgIC0taGVscCAgICAgICAgICAgdXNhZ2UgbWVzc2FnZQ0KKyMgICAgICAt
LXZlcnNpb24gICAgICAgIHZlcnNpb24gbnVtYmVyIGFuZCBjb3B5cmlnaHQN
CisjICAgICAgLS1jb25mIEZJTEUgICAgICB1c2UgRklMRSBpbnN0ZWFkIG9m
IC9ldGMvYWRkdXNlci5jb25mDQorIyMjIyMjIyMjIyMjDQorDQordXNlIHdh
cm5pbmdzOw0KK3VzZSBEZWJpYW46OkFkZHVzZXJDb21tb247DQorDQorQkVH
SU4gew0KKyAgICBldmFsICd1c2UgTG9jYWxlOjpnZXR0ZXh0JzsNCisgICAg
aWYgKCRAKSB7DQorCSpnZXR0ZXh0ID0gc3ViIHsgc2hpZnQgfTsNCisJKnRl
eHRkb21haW4gPSBzdWIgeyAiIiB9Ow0KKwkqTENfTUVTU0FHRVMgPSBzdWIg
eyA1IH07DQorICAgIH0NCisgICAgZXZhbCB7DQorCXJlcXVpcmUgUE9TSVg7
DQorCWltcG9ydCBQT1NJWCBxdyhzZXRsb2NhbGUpOw0KKyAgICB9Ow0KKyAg
ICBpZiAoJEApIHsNCisJKnNldGxvY2FsZSA9IHN1YiB7IDEgfTsNCisgICAg
fQ0KK30NCisNCitzZXRsb2NhbGUoTENfTUVTU0FHRVMsICIiKTsNCit0ZXh0
ZG9tYWluKCJhZGR1c2VyIik7DQorDQorJHZlcmJvc2UgPSAxOwkJCSMgc2hv
dWxkIHdlIGJlIHZlcmJvc2U/DQorJGFsbG93X2JhZG5hbWUgPSAwOwkJIyBz
aG91bGQgd2UgYWxsb3cgYmFkIG5hbWVzPw0KKyRhc2tfcGFzc3dkID0gMTsJ
CSMgYXNrIGZvciBhIHBhc3N3ZD8NCisNCiskY2xlYW5pbmdfdXAgPSAwOw0K
Kw0KKyRkZWZhdWx0cyA9ICIvZXRjL2FkZHVzZXIuY29uZiI7DQorJG5vZ3Jv
dXBfaWQgPSBnZXRncm5hbSgibm9ncm91cCIpIHx8IDY1NTM0Ow0KKyQwID1+
IHMrLiovKys7IA0KKw0KKyRjb25maWd7ImRzaGVsbCJ9ID0gIi9iaW4vYmFz
aCI7DQorJGNvbmZpZ3siZmlyc3Rfc3lzdGVtX3VpZCJ9ID0gMTAwOw0KKyRj
b25maWd7Imxhc3Rfc3lzdGVtX3VpZCJ9ID0gOTk5Ow0KKyRjb25maWd7ImZp
cnN0X3VpZCJ9ID0gMTAwMDsNCiskY29uZmlneyJsYXN0X3VpZCJ9ID0gMjk5
OTk7DQorJGNvbmZpZ3siZmlyc3Rfc3lzdGVtX2dpZCJ9ID0gMTAwOw0KKyRj
b25maWd7Imxhc3Rfc3lzdGVtX2dpZCJ9ID0gOTk5Ow0KKyRjb25maWd7ImZp
cnN0X2dpZCJ9ID0gMTAwMDsNCiskY29uZmlneyJsYXN0X2dpZCJ9ID0gMjk5
OTk7DQorJGNvbmZpZ3siZGhvbWUifSA9ICIvaG9tZSI7DQorJGNvbmZpZ3si
c2tlbCJ9ID0gIi9ldGMvc2tlbCI7DQorJGNvbmZpZ3sidXNlcmdyb3VwcyJ9
ID0gInllcyI7DQorJGNvbmZpZ3sidXNlcnNfZ2lkIn0gPSAiMTAwIjsNCisk
Y29uZmlneyJncm91cGhvbWVzIn0gPSAibm8iOw0KKyRjb25maWd7ImxldHRl
cmhvbWVzIn0gPSAibm8iOw0KKyRjb25maWd7InF1b3RhdXNlciJ9ID0gIiI7
DQorJGNvbmZpZ3siZGlyX21vZGUifSA9ICIwNzU1IjsNCiskY29uZmlneyJz
ZXRnaWRfaG9tZSJ9ID0gIm5vIjsNCiskY29uZmlneyJyZW1vdmVfaG9tZSJ9
ID0gMDsNCiskY29uZmlneyJyZW1vdmVfYWxsX2ZpbGVzIn0gPSAwOw0KKyRj
b25maWd7ImJhY2t1cCJ9ID0gMDsNCiskY29uZmlneyJ1c2VfbGRhcCJ9ID0g
Im5vIjsNCiskY29uZmlneyJ1c2VfbGRhcF9zeXN0ZW0ifSA9ICJubyI7DQor
JGNvbmZpZ3sibGRhcF9zZXJ2ZXIifSA9ICIiOw0KKyRjb25maWd7ImxkYXBf
cG9ydCJ9ID0gIiI7DQorJGNvbmZpZ3sibGRhcF9iaW5kZG4ifSA9ICIiOw0K
KyRjb25maWd7ImxkYXBfYmluZHB3In0gPSAiIjsNCiskY29uZmlneyJsZGFw
X2Jhc2VkbiJ9ID0gIiI7DQorJGNvbmZpZ3sibGRhcF9yZG5fZ3JvdXBzIn0g
PSAiIjsNCiskY29uZmlneyJsZGFwX3Jkbl91c2VycyJ9ID0gIiI7DQorDQor
JGFjdGlvbiA9ICQwIGVxICJhZGRncm91cCIgPyAiYWRkZ3JvdXAiIDogImFk
ZHVzZXIiOw0KKw0KK3doaWxlIChkZWZpbmVkKCRhcmcgPSBzaGlmdChAQVJH
VikpKSB7DQorICAgIGRpZSAiJDA6ICIsXygiTm8gb3B0aW9ucyBhbGxvd2Vk
IGFmdGVyIG5hbWVzLlxuIikNCisJaWYgKGRlZmluZWQoJG5hbWVzWzBdKSAm
JiAkYXJnID1+IC9eLS0vKTsNCisgICAgaWYgKCRhcmcgZXEgIi0tcXVpZXQi
KSB7DQorCSR2ZXJib3NlID0gMDsNCisgICAgfSBlbHNpZiAoJGFyZyBlcSAi
LS1mb3JjZS1iYWRuYW1lIikgew0KKwkkYWxsb3dfYmFkbmFtZSA9IDE7DQor
ICAgIH0gZWxzaWYgKCRhcmcgZXEgIi0taGVscCIgfHwgJGFyZyBlcSAiLWgi
KSB7DQorCSZ1c2FnZSgpOw0KKwlleGl0IDA7DQorICAgIH0gZWxzaWYgKCRh
cmcgZXEgIi0tdmVyc2lvbiIpIHsNCisJJnZlcnNpb24oKTsNCisJZXhpdCAw
Ow0KKyAgICB9IGVsc2lmICgkYXJnIGVxICItLXN5c3RlbSIpIHsNCisJJGZv
dW5kX3N5c19vcHQgPSAxOw0KKwkkYWN0aW9uID0gImFkZHN5c3VzZXIiIGlm
ICgkYWN0aW9uIGVxICJhZGR1c2VyIik7DQorCSRhY3Rpb24gPSAiYWRkc3lz
Z3JvdXAiIGlmICgkYWN0aW9uIGVxICJhZGRncm91cCIpOw0KKyAgICB9IGVs
c2lmICgkYXJnIGVxICItLWdyb3VwIikgew0KKwkkZm91bmRfZ3JvdXBfb3B0
ID0gMTsNCisgICAgfSBlbHNpZiAoJGFyZyBlcSAiLS1pbmdyb3VwIikgew0K
KwlkaWUgIiQwOiAiLF8oIi0taW5ncm91cCByZXF1aXJlcyBhbiBhcmd1bWVu
dC5cbiIpDQorCSAgICBpZiAoIWRlZmluZWQoJGluZ3JvdXBfbmFtZSA9IHNo
aWZ0KEBBUkdWKSkpOw0KKyAgICB9IGVsc2lmICgkYXJnIGVxICItLWhvbWUi
KSB7DQorCWRpZSAiJDA6ICIsXygiLS1ob21lIHJlcXVpcmVzIGFuIGFyZ3Vt
ZW50LlxuIikNCisJICAgIGlmICghZGVmaW5lZCgkc3BlY2lhbF9ob21lID0g
c2hpZnQoQEFSR1YpKSk7DQorCXByaW50ICIkMDogIixfKCJXYXJuaW5nOiBU
aGUgaG9tZSBkaXIgeW91IHNwZWNpZmllZCBhbHJlYWR5IGV4aXN0cy5cbiIp
DQorCSAgICBpZiAoLWQgJHNwZWNpYWxfaG9tZSAmJiAkdmVyYm9zZSk7DQor
CWRpZSAiJDA6ICIsXygiVGhlIGhvbWUgZGlyIG11c3QgYmUgYW4gYWJzb2x1
dGUgcGF0aC5cbiIpDQorCSAgICBpZiAoJHNwZWNpYWxfaG9tZSAhfiBtK14v
KyApOw0KKyAgICB9IGVsc2lmICgkYXJnIGVxICItLWdlY29zIikgew0KKwlk
aWUgIiQwOiAiLF8oIi0tZ2Vjb3MgcmVxdWlyZXMgYW4gYXJndW1lbnQuXG4i
KQ0KKwkgICAgaWYgKCFkZWZpbmVkKCRuZXdfZ2Vjb3MgPSBzaGlmdChAQVJH
VikpKTsNCisJfSBlbHNpZiAoJGFyZyBlcSAiLS1zaGVsbCIpIHsNCisJZGll
ICIkMDogIixfKCItLXNoZWxsIHJlcXVpcmVzIGFuIGFyZ3VtZW50LlxuIikN
CisJCWlmICghZGVmaW5lZCgkc3BlY2lhbF9zaGVsbCA9IHNoaWZ0KEBBUkdW
KSkpOw0KKyAgICB9IGVsc2lmICgkYXJnIGVxICItLWRpc2FibGVkLXBhc3N3
b3JkIikgew0KKwkkYXNrX3Bhc3N3ZCA9IDA7DQorCSRkaXNhYmxlZF9sb2dp
biA9IDA7DQorCX0gZWxzaWYgKCRhcmcgZXEgIi0tZGlzYWJsZWQtbG9naW4i
KSB7DQorCSRhc2tfcGFzc3dkID0gMDsNCisJJGRpc2FibGVkX2xvZ2luID0g
MTsNCisgICAgfSBlbHNpZiAoJGFyZyBlcSAiLS11aWQiKSB7DQorCWRpZSAi
JDA6ICIsXygiLS11aWQgcmVxdWlyZXMgYSBudW1lcmljIGFyZ3VtZW50Llxu
IikNCisJICAgIGlmICghZGVmaW5lZCAoJG5ld191aWQgPSBzaGlmdChAQVJH
VikpIHx8ICRuZXdfdWlkICF+IC9eXC0/XGQrJC8pOw0KKyAgICB9IGVsc2lm
ICgkYXJnIGVxICItLWZpcnN0dWlkIikgew0KKwlkaWUgIiQwOiAiLF8oIi0t
Zmlyc3R1aWQgcmVxdWlyZXMgYSBudW1lcmljIGFyZ3VtZW50LlxuIikNCisJ
ICAgIGlmICghZGVmaW5lZCAoJG5ld19maXJzdHVpZCA9IHNoaWZ0KEBBUkdW
KSkgfHwgJG5ld19maXJzdHVpZCAhfiAvXlwtP1xkKyQvKTsNCisgICAgfSBl
bHNpZiAoJGFyZyBlcSAiLS1sYXN0dWlkIikgew0KKwlkaWUgIiQwOiAiLF8o
Ii0tbGFzdHVpZCByZXF1aXJlcyBhIG51bWVyaWMgYXJndW1lbnQuXG4iKQ0K
KwkgICAgaWYgKCFkZWZpbmVkICgkbmV3X2xhc3R1aWQgPSBzaGlmdChAQVJH
VikpIHx8ICRuZXdfbGFzdHVpZCAhfiAvXlwtP1xkKyQvKTsNCisgICAgfSBl
bHNpZiAoJGFyZyBlcSAiLS1naWQiKSB7DQorCWRpZSAiJDA6ICIsXygiLS1n
aWQgcmVxdWlyZXMgYSBudW1lcmljIGFyZ3VtZW50LlxuIikNCisJICAgIGlm
ICghZGVmaW5lZCAoJG5ld19naWQgPSBzaGlmdChAQVJHVikpIHx8ICRuZXdf
Z2lkICF+IC9eXC0/XGQrJC8pOw0KKyAgICB9IGVsc2lmICgkYXJnIGVxICIt
LWNvbmYiKSB7DQorCWRpZSAiJDA6ICIsXygiLS1jb25mIHJlcXVpcmVzIGFu
IGFyZ3VtZW50LlxuIikNCisJICAgIGlmICghZGVmaW5lZCgkZGVmYXVsdHMg
PSBzaGlmdChAQVJHVikpKTsNCisJZGllZiAoXygiYCVzJyBkb2Vzbid0IGV4
aXN0LlxuIiwkZGVmYXVsdHMpKQ0KKwkgICAgaWYgKCEgLWYgJGRlZmF1bHRz
KTsNCisgICAgfSBlbHNpZiAoJGFyZyBlcSAiLS1uby1jcmVhdGUtaG9tZSIp
IHsNCisJJG5vX2NyZWF0ZV9ob21lID0gMTsNCisgICAgfSBlbHNpZiAoJGFy
ZyBlcSAiLS1kZWJ1ZyIpIHsNCisJJGRlYnVnZ2luZyA9IDE7DQorICAgIH0g
ZWxzaWYgKCRhcmcgPX4gL14tLS8pIHsJIyBiYWQgYXJndW1lbnQhDQorCWRp
ZWYgKF8oIlVua25vd24gYXJndW1lbnQgYCVzJy5cbiIpLCRhcmcpOw0KKyAg
ICB9IGVsc2UgewkJCSMgaXQncyBhIHVzZXJuYW1lDQorCXB1c2ggKEBuYW1l
cywgJGFyZyk7DQorICAgIH0NCit9DQorDQorZGllICIkMDogIixfKCJPbmx5
IHJvb3QgbWF5IGFkZCBhIHVzZXIgb3IgZ3JvdXAgdG8gdGhlIHN5c3RlbS5c
biIpIGlmICgkPiAhPSAwKTsNCisNCitpZiAoQG5hbWVzID09IDApIHsNCisg
ICAgaWYoJGZvdW5kX2dyb3VwX29wdCB8fCAkYWN0aW9uIGVxICJhZGRncm91
cCIgfHwgJGFjdGlvbiBlcSAiYWRkc3lzZ3JvdXAiKQ0KKyAgICAgIHsNCisJ
ICBwcmludCBfKCJFbnRlciBhIGdyb3VwbmFtZSB0byBhZGQ6ICIpOw0KKyAg
ICAgIH0NCisgICAgZWxzZQ0KKyAgICAgIHsNCisJICBwcmludCBfKCJFbnRl
ciBhIHVzZXJuYW1lIHRvIGFkZDogIik7DQorICAgICAgfQ0KKyAgICBjaG9t
cCgkYW5zd2VyPTxTVERJTj4pOw0KKyAgICBwdXNoKEBuYW1lcywgJGFuc3dl
cik7DQorfQ0KK2RpZSAiJDA6ICIsXygiSSBuZWVkIGEgbmFtZSB0byBhZGQu
XG4iKSBpZiAobGVuZ3RoKCRuYW1lc1swXSkgPT0gMCk7DQorZGllICIkMDog
IixfKCJObyBtb3JlIHRoYW4gdHdvIG5hbWVzLlxuIikgaWYgKEBuYW1lcyA+
IDIpOw0KK2lmIChAbmFtZXMgPT0gMikgewkjIG11c3QgYmUgYWRkdXNlcnRv
Z3JvdXANCisgICAgZGllICIkMDogIixfKCJTcGVjaWZ5IG9ubHkgb25lIG5h
bWUgaW4gdGhpcyBtb2RlLlxuIikNCisJaWYgKCRhY3Rpb24gZXEgImFkZHN5
c3VzZXIiIHx8ICRmb3VuZF9ncm91cF9vcHQpOw0KKyAgICAkYWN0aW9uID0g
ImFkZHVzZXJ0b2dyb3VwIjsNCisgICAgJGV4aXN0aW5nX3VzZXIgPSBzaGlm
dCAoQG5hbWVzKTsNCisgICAgJGV4aXN0aW5nX2dyb3VwID0gc2hpZnQgKEBu
YW1lcyk7DQorfQ0KK2Vsc2Ugew0KKyAgICAkbmV3X25hbWUgPSBzaGlmdCAo
QG5hbWVzKTsNCit9DQorDQoraWYgKCRmb3VuZF9ncm91cF9vcHQpIHsNCisg
ICAgaWYgKCRhY3Rpb24gZXEgImFkZHN5c3VzZXIiKSB7DQorCSRtYWtlX2dy
b3VwX2Fsc28gPSAxOw0KKyAgICB9DQorICAgIGVsc2lmICgkZm91bmRfc3lz
X29wdCkgew0KKwkkYWN0aW9uID0gImFkZHN5c2dyb3VwIjsNCisgICAgfQ0K
KyAgICBlbHNlIHsNCisJJGFjdGlvbiA9ICJhZGRncm91cCI7DQorICAgIH0N
Cit9DQorZGllICIkMDogIixfKCItLWdyb3VwLCAtLWluZ3JvdXAsIGFuZCAt
LWdpZCBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuXG4iKSBpZg0K
KyAgICAoJGFjdGlvbiBuZSAiYWRkZ3JvdXAiICYmDQorICAgICBkZWZpbmVk
KCRmb3VuZF9ncm91cF9vcHQpICtkZWZpbmVkKCRpbmdyb3VwX25hbWUpICtk
ZWZpbmVkKCRuZXdfZ2lkKSA+IDEpOw0KKw0KKw0KKyMjIyMjDQorIyBPSywg
d2UndmUgcHJvY2Vzc2VkIHRoZSBhcmd1bWVudHMuICAkYWN0aW9uIGVxdWFs
cyBvbmUgb2YgdGhlIGZvbGxvd2luZywNCisjIGFuZCB0aGUgYXBwcm9wcmlh
dGUgdmFyaWFibGVzIGhhdmUgYmVlbiBzZXQ6DQorIw0KKyMgJGFjdGlvbiA9
ICJhZGR1c2VyIg0KKyMgICAgJG5ld19uYW1lICAgICAgICAgICAgICAgIC0g
dGhlIG5hbWUgb2YgdGhlIG5ldyB1c2VyLg0KKyMgICAgJGluZ3JvdXBfbmFt
ZSB8ICRuZXdfZ2lkIC0gdGhlIGdyb3VwIHRvIGFkZCB0aGUgdXNlciB0bw0K
KyMgICAgJHNwZWNpYWxfaG9tZSwgJG5ld191aWQsICRuZXdfZ2Vjb3MgLSBv
cHRpb25hbCBvdmVycmlkZXMNCisjICRhY3Rpb24gPSAiYWRkZ3JvdXAiDQor
IyAgICAkbmV3X25hbWUgICAgICAgICAgICAgICAgLSB0aGUgbmFtZSBvZiB0
aGUgbmV3IGdyb3VwDQorIyAgICAkbmV3X2dpZCAgICAgICAgICAgICAgICAg
LSBvcHRpb25hbCBvdmVycmlkZQ0KKyMgJGFjdGlvbiA9ICJhZGRzeXNncm91
cCINCisjICAgICRuZXdfbmFtZSAgICAgICAgICAgICAgICAtIHRoZSBuYW1l
IG9mIHRoZSBuZXcgZ3JvdXANCisjICAgICRuZXdfZ2lkICAgICAgICAgICAg
ICAgICAtIG9wdGlvbmFsIG92ZXJyaWRlDQorIyAkYWN0aW9uID0gImFkZHN5
c3VzZXIiDQorIyAgICAkbmV3X25hbWUgICAgICAgICAgICAgICAgLSB0aGUg
bmFtZSBvZiB0aGUgbmV3IHVzZXINCisjICAgICRtYWtlX2dyb3VwX2Fsc28g
fCAkaW5ncm91cF9uYW1lIHwgJG5ld19naWQgfCAwICAtIHdoaWNoIGdyb3Vw
DQorIyAgICAkc3BlY2lhbF9ob21lLCAkbmV3X3VpZCwgJG5ld19nZWNvcyAt
IG9wdGlvbmFsIG92ZXJyaWRlcw0KKyMgJGFjdGlvbiA9ICJhZGR1c2VydG9n
cm91cCINCisjICAgICRleGlzdGluZ191c2VyICAgICAgICAgICAtIHRoZSB1
c2VyIHRvIGJlIGFkZGVkDQorIyAgICAkZXhpc3RpbmdfZ3JvdXAgICAgICAg
ICAgLSB0aGUgZ3JvdXAgdG8gYWRkIGhlciB0bw0KKyMjIyMjDQorDQorJnJl
YWRfY29uZmlnKCRkZWZhdWx0cyk7DQorJmNoZWNrbmFtZSgkbmV3X25hbWUp
IGlmIGRlZmluZWQgJG5ld19uYW1lOw0KKyRTSUd7J0lOVCd9ID0gJFNJR3sn
UVVJVCd9ID0gJFNJR3snSFVQJ30gPSAnaGFuZGxlcic7DQorDQoraWYgKCRj
b25maWd7InVzZV9sZGFwIn0gZXEgJ3llcycgb3IgJGNvbmZpZ3sidXNlX2xk
YXBfc3lzdGVtIn0gZXEgJ3llcycpDQorew0KKwkkZnVuY3Rpb25fc3VmZml4
ID0gImxkYXAiOwkNCisJcmVxdWlyZSBEZWJpYW46OkFkZHVzZXJMREFQOw0K
KwlpZiAoJGNvbmZpZ3t1c2VfbGRhcF9zeXN0ZW19IGVxICd5ZXMnKQ0KKwl7
DQorCQkkc3lzZnVuY3Rpb25fc3VmZml4ID0gImxkYXAiOw0KKwl9DQorCWVs
c2UNCisJew0KKwkJJHN5c2Z1bmN0aW9uX3N1ZmZpeCA9ICJmaWxlIjsNCisJ
CXVzZSBEZWJpYW46OkFkZHVzZXJGaWxlOw0KKwl9DQorfQ0KK2Vsc2UNCit7
DQorCSRmdW5jdGlvbl9zdWZmaXggPSAiZmlsZSI7DQorCSRzeXNmdW5jdGlv
bl9zdWZmaXggPSAiZmlsZSI7DQorfQ0KKw0KKyMjIyMjIyMjIyMjIyMjIyMj
DQorIyMgYWRkc3lzZ3JvdXAgIyMNCisjIyMjIyMjIyMjIyMjIyMjIw0KK2lm
ICgkYWN0aW9uIGVxICJhZGRzeXNncm91cCIpIHsNCisgICAgZGllZiAoXygi
VGhlIGdyb3VwIGAlcycgYWxyZWFkeSBleGlzdHMuXG4iKSwkbmV3X25hbWUp
DQorCWlmIChkZWZpbmVkIGdldGdybmFtKCRuZXdfbmFtZSkpOw0KKyAgICBk
aWVmIChfKCJUaGUgR0lEIGAlcycgaXMgYWxyZWFkeSBpbiB1c2UuXG4iKSwk
bmV3X2dpZCkNCisJaWYgKGRlZmluZWQoJG5ld19naWQpICYmIGRlZmluZWQo
Z2V0Z3JnaWQoJG5ld19naWQpKSk7DQorICAgIGlmICghZGVmaW5lZCgkbmV3
X2dpZCkpIHsNCisgICAgICAgICRuZXdfZ2lkID0gJmZpcnN0X2F2YWlsX2lk
KCRjb25maWd7ImZpcnN0X3N5c3RlbV9naWQifSwNCisJCQkJICAgJGNvbmZp
Z3sibGFzdF9zeXN0ZW1fZ2lkIn0sDQorCQkJCSAgICZnZXRfY3VycmVudF9n
aWRzKTsNCisNCisgICAgICAgIGlmICgkbmV3X2dpZCA9PSAtMSkgew0KKyAg
ICAgICAgICAgIHByaW50IFNUREVSUiAiJDA6ICIsXygiTm8gR0lEIGlzIGF2
YWlsYWJsZSBpbiB0aGUgcmFuZ2UgIiksDQorICAgICAgICAgICAgIiRjb25m
aWd7XCJmaXJzdF9zeXN0ZW1fZ2lkXCJ9IC0gJGNvbmZpZ3tcImxhc3Rfc3lz
dGVtX2dpZFwifVxuIiwNCisgICAgICAgICAgICAiKEZJUlNUX1NZU19HSUQg
LSBMQVNUX1NZU19HSUQpLiAgIjsNCisgICAgICAgICAgICBkaWVmIChfKCJH
cm91cCBgJXMnIG5vdCBjcmVhdGVkLlxuIiksJG5ld19uYW1lKTsNCisgICAg
ICAgIH0NCisgICAgfQ0KKw0KKyAgICBwcmludGYgKF8oIkFkZGluZyBncm91
cCAlcyAoJXMpLi4uXG4iKSwkbmV3X25hbWUsJG5ld19naWQpIGlmICR2ZXJi
b3NlOw0KKyAgICAmaW52YWxpZGF0ZV9uc2NkKCJncm91cCIpOw0KKyAgICAk
ZnVuYyA9ICJhZGRncm91cF8kc3lzZnVuY3Rpb25fc3VmZml4IjsNCisgICAg
JiRmdW5jKCRuZXdfbmFtZSwgJG5ld19naWQpOw0KKyAgICAmaW52YWxpZGF0
ZV9uc2NkKCJncm91cCIpOw0KKyAgICBwcmludCBfKCJEb25lLlxuIikgaWYg
JHZlcmJvc2U7DQorICAgIGV4aXQgMDsNCit9DQorDQorDQorIyMjIyMjIyMj
IyMjIyMNCisjIyBhZGRncm91cCAjIw0KKyMjIyMjIyMjIyMjIyMjDQoraWYg
KCRhY3Rpb24gZXEgImFkZGdyb3VwIikgew0KKyAgICBkaWVmIChfKCJUaGUg
Z3JvdXAgYCVzJyBhbHJlYWR5IGV4aXN0cy5cbiIpLCRuZXdfbmFtZSkNCisJ
aWYgKGRlZmluZWQgZ2V0Z3JuYW0oJG5ld19uYW1lKSk7DQorICAgIGRpZWYg
KF8oIlRoZSBHSUQgYCVzJyBpcyBhbHJlYWR5IGluIHVzZS5cbiIpLCRuZXdf
Z2lkKQ0KKwlpZiAoZGVmaW5lZCgkbmV3X2dpZCkgJiYgZGVmaW5lZChnZXRn
cmdpZCgkbmV3X2dpZCkpKTsNCisgICAgaWYgKCFkZWZpbmVkKCRuZXdfZ2lk
KSkgew0KKyAgICAgICAgJG5ld19naWQgPSAmZmlyc3RfYXZhaWxfaWQoJGNv
bmZpZ3siZmlyc3RfZ2lkIn0sDQorCQkJCSAgICRjb25maWd7Imxhc3RfZ2lk
In0sDQorCQkJCSAgICZnZXRfY3VycmVudF9naWRzKTsNCisNCisgICAgICAg
IGlmICgkbmV3X2dpZCA9PSAtMSkgew0KKyAgICAgICAgICAgIHByaW50IFNU
REVSUiAiJDA6ICIsXygiTm8gR0lEIGlzIGF2YWlsYWJsZSBpbiB0aGUgcmFu
Z2UgIiksDQorICAgICAgICAgICAgIiRjb25maWd7XCJmaXJzdF9naWRcIn0g
LSAkY29uZmlne1wibGFzdF9naWRcIn1cbiIsDQorICAgICAgICAgICAgIihG
SVJTVF9HSUQgLSBMQVNUX0dJRCkuICAiOw0KKyAgICAgICAgICAgIGRpZWYg
KF8oIkdyb3VwIGAlcycgbm90IGNyZWF0ZWQuXG4iKSwkbmV3X25hbWUpOw0K
KyAgICAgICAgfQ0KKyAgICB9DQorDQorICAgIHByaW50ZiAoXygiQWRkaW5n
IGdyb3VwICVzICglcykuLi5cbiIpLCRuZXdfbmFtZSwkbmV3X2dpZCkgaWYg
JHZlcmJvc2U7DQorICAgICZpbnZhbGlkYXRlX25zY2QoImdyb3VwIik7DQor
ICAgICRmdW5jID0gImFkZGdyb3VwXyRmdW5jdGlvbl9zdWZmaXgiOw0KKyAg
ICAmJGZ1bmMoJG5ld19uYW1lLCAkbmV3X2dpZCk7DQorICAgICZpbnZhbGlk
YXRlX25zY2QoImdyb3VwIik7DQorICAgIHByaW50IF8oIkRvbmUuXG4iKSBp
ZiAkdmVyYm9zZTsNCisgICAgZXhpdCAwOw0KK30NCisNCisNCisjIyMjIyMj
IyMjIyMjIyMjIyMjIw0KKyMjIGFkZHVzZXJ0b2dyb3VwICMjDQorIyMjIyMj
IyMjIyMjIyMjIyMjIyMNCitlbHNpZiAoJGFjdGlvbiBlcSAiYWRkdXNlcnRv
Z3JvdXAiKSB7DQorICAgIGRpZWYgKF8oIlRoZSB1c2VyIGAlcycgZG9lc24n
dCBleGlzdC5cbiIpLCRleGlzdGluZ191c2VyKQ0KKwlpZiAoIWRlZmluZWQg
Z2V0cHduYW0oJGV4aXN0aW5nX3VzZXIpKTsNCisgICAgZGllZiAoXygiVGhl
IGdyb3VwIGAlcycgZG9lc24ndCBleGlzdC5cbiIpLCRleGlzdGluZ19ncm91
cCkNCisJaWYgKCFkZWZpbmVkIGdldGdybmFtKCRleGlzdGluZ19ncm91cCkp
Ow0KKyAgICBpZiAoJnVzZXJfaXNfbWVtYmVyKCRleGlzdGluZ191c2VyLCAk
ZXhpc3RpbmdfZ3JvdXApKSB7DQorCXByaW50ZiBfKCJUaGUgdXNlciBgJXMn
IGlzIGFscmVhZHkgYSBtZW1iZXIgb2YgJXMuXG4iKSwNCisgICAgICAgICAg
ICAgICAgJGV4aXN0aW5nX3VzZXIsJGV4aXN0aW5nX2dyb3VwIGlmICR2ZXJi
b3NlOw0KKwlleGl0IDA7CQkJIyBub3QgcmVhbGx5IGFuIGVycm9yDQorICAg
IH0NCisNCisgICAgcHJpbnRmIF8oIkFkZGluZyB1c2VyICVzIHRvIGdyb3Vw
ICVzLi4uXG4iKSwkZXhpc3RpbmdfdXNlciwkZXhpc3RpbmdfZ3JvdXANCisJ
aWYgJHZlcmJvc2U7DQorICAgICZpbnZhbGlkYXRlX25zY2QoKTsNCisgICAg
JGZ1bmMgPSAiYWRkdXNlcnRvZ3JvdXBfJGZ1bmN0aW9uX3N1ZmZpeCI7DQor
ICAgICYkZnVuYygkZXhpc3RpbmdfdXNlciwgJGV4aXN0aW5nX2dyb3VwKTsN
CisgICAgJmludmFsaWRhdGVfbnNjZCgpOw0KKyAgICBwcmludCBfKCJEb25l
LlxuIikgaWYgJHZlcmJvc2U7DQorICAgIGV4aXQgMDsNCit9DQorDQorDQor
IyMjIyMjIyMjIyMjIyMjIw0KKyMjIGFkZHN5c3VzZXIgIyMNCisjIyMjIyMj
IyMjIyMjIyMjDQorZWxzaWYgKCRhY3Rpb24gZXEgImFkZHN5c3VzZXIiKSB7
DQorICAgICMgQ2hlY2sgaWYgcmVxdWVzdGVkIHVzZXIgYWxyZWFkeSBleGlz
dHMgYW5kIHdlIGNhbiBleGl0IHNhZmVseQ0KKyAgICBpZiAoKEB0dXNlciA9
IGdldHB3bmFtKCRuZXdfbmFtZSkpICYmICgNCisJKCFkZWZpbmVkKCRuZXdf
dWlkKSAmJiAkdHVzZXJbMl0gPj0gJGNvbmZpZ3siZmlyc3Rfc3lzdGVtX3Vp
ZCJ9ICYmDQorCSAkdHVzZXJbMl0gPD0gJGNvbmZpZ3sibGFzdF9zeXN0ZW1f
dWlkIn0gKSB8fA0KKwkoZGVmaW5lZCgkbmV3X3VpZCkgJiYgJHR1c2VyWzJd
ID09ICRuZXdfdWlkKQ0KKyAgICAgICApKSB7DQorICAgICAgICBwcmludGYg
KF8oIlVzZXIgJXMgZG9lcyBhbHJlYWR5IGV4aXN0LiBFeGl0aW5nLi4uXG4i
KSwgJG5ld19uYW1lKSBpZiAkdmVyYm9zZTsNCisJZXhpdCAwOw0KKyAgICB9
DQorICAgICRuZXdfZ2lkID0gJG5vZ3JvdXBfaWQNCisJaWYgKCEkaW5ncm91
cF9uYW1lICYmICFkZWZpbmVkKCRuZXdfZ2lkKSAmJiAhJG1ha2VfZ3JvdXBf
YWxzbyk7DQorICAgICZjaGVja191c2VyX2dyb3VwKCk7DQorICAgIHByaW50
ZiAoXygiQWRkaW5nIHN5c3RlbSB1c2VyICVzLi4uXG4iKSwkbmV3X25hbWUp
IGlmICR2ZXJib3NlOw0KKw0KKyAgICBpZiAoIWRlZmluZWQoJG5ld191aWQp
ICYmICRtYWtlX2dyb3VwX2Fsc28pIHsNCisJJG5ld191aWQgPSAmZmlyc3Rf
YXZhaWxfaWQoJGNvbmZpZ3siZmlyc3Rfc3lzdGVtX3VpZCJ9LA0KKwkJCQkg
ICAkY29uZmlneyJsYXN0X3N5c3RlbV91aWQifSwNCisJCQkJICAgJmdldF9j
dXJyZW50X3VpZHMsICZnZXRfY3VycmVudF9naWRzKTsNCisgICAgICAgIGlm
ICgkbmV3X3VpZCA9PSAtMSkgew0KKyAgICAgICAgICAgIHByaW50IFNUREVS
UiAiJDA6ICIsXygiTm8gVUlEL0dJRCBwYWlyIGlzIGF2YWlsYWJsZSBpbiB0
aGUgcmFuZ2UgIiksDQorICAgICAgICAgICAgIiRjb25maWd7XCJmaXJzdF9z
eXN0ZW1fdWlkXCJ9IC0gJGNvbmZpZ3tcImxhc3Rfc3lzdGVtX3VpZFwifVxu
IiwNCisgICAgICAgICAgICAiKEZJUlNUX1NZU19VSUQgLSBMQVNUX1NZU19V
SUQpLiAgIjsNCisgICAgICAgICAgICBkaWVmIChfKCJVc2VyIGAlcycgbm90
IGNyZWF0ZWQuXG4iKSwkbmV3X25hbWUpOw0KKyAgICAgICAgfQ0KKyAgICAg
ICAgJG5ld19naWQgPSAkbmV3X3VpZDsNCisJJGluZ3JvdXBfbmFtZSA9ICRu
ZXdfbmFtZTsNCisgICAgfQ0KKyAgICBlbHNpZiAoIWRlZmluZWQoJG5ld191
aWQpICYmICEkbWFrZV9ncm91cF9hbHNvKSB7DQorCSRuZXdfdWlkID0gJmZp
cnN0X2F2YWlsX2lkKCRjb25maWd7ImZpcnN0X3N5c3RlbV91aWQifSwNCisJ
CQkJICAgJGNvbmZpZ3sibGFzdF9zeXN0ZW1fdWlkIn0sDQorCQkJCSAgICZn
ZXRfY3VycmVudF91aWRzKTsNCisgICAgICAgIGlmICgkbmV3X3VpZCA9PSAt
MSkgew0KKyAgICAgICAgICAgIHByaW50IFNUREVSUiAiJDA6ICIsXygiTm8g
VUlEIGlzIGF2YWlsYWJsZSBpbiB0aGUgcmFuZ2UgIiksDQorICAgICAgICAg
ICAgIiRjb25maWd7XCJmaXJzdF9zeXN0ZW1fdWlkXCJ9IC0gJGNvbmZpZ3tc
Imxhc3Rfc3lzdGVtX3VpZFwifVxuIiwNCisgICAgICAgICAgICAiKEZJUlNU
X1NZU19VSUQgLSBMQVNUX1NZU19VSUQpLiAgIjsNCisgICAgICAgICAgICAm
ZGllZiAoXygiVXNlciBgJXMnIG5vdCBjcmVhdGVkLlxuIiksJG5ld19uYW1l
KTsNCisgICAgICAgIH0NCisgICAgICAgIGlmIChkZWZpbmVkKCRuZXdfZ2lk
KSkgeyAkaW5ncm91cF9uYW1lID0gZ2V0Z3JnaWQoJG5ld19naWQpOyB9DQor
CWVsc2lmICgkaW5ncm91cF9uYW1lKSB7ICRuZXdfZ2lkID0gZ2V0Z3JuYW0o
JGluZ3JvdXBfbmFtZSk7IH0NCisJZWxzZSB7IGRpZSBfKCJJbnRlcm5hbCBl
cnJvciIpOyB9DQorICAgIH0NCisgICAgZWxzZSB7DQorCWlmIChkZWZpbmVk
KCRuZXdfZ2lkKSkgeyAkaW5ncm91cF9uYW1lID0gZ2V0Z3JnaWQoJG5ld19n
aWQpOyB9DQorCWVsc2lmICgkaW5ncm91cF9uYW1lKSB7ICRuZXdfZ2lkID0g
Z2V0Z3JuYW0oJGluZ3JvdXBfbmFtZSk7IH0NCisJZWxzaWYgKCRtYWtlX2dy
b3VwX2Fsc28peyAkbmV3X2dpZD0kbmV3X3VpZDsgJGluZ3JvdXBfbmFtZT0k
bmV3X25hbWU7IH0NCisJZWxzZSB7IGRpZSBfKCJJbnRlcm5hbCBlcnJvciIp
OyB9DQorICAgIH0NCisNCisgICAgJmludmFsaWRhdGVfbnNjZCgpOw0KKyAg
ICBpZiAoJG1ha2VfZ3JvdXBfYWxzbykgew0KKwlwcmludCBfKCJBZGRpbmcg
bmV3IGdyb3VwICRuZXdfbmFtZSAoJG5ld19naWQpLlxuIikgaWYgJHZlcmJv
c2U7DQorCSR1bmRvZ3JvdXAgPSAkbmV3X25hbWU7DQorCSRmdW5jID0gImFk
ZGdyb3VwXyRzeXNmdW5jdGlvbl9zdWZmaXgiOw0KKwkmJGZ1bmMoJG5ld19u
YW1lLCAkbmV3X2dpZCk7DQorCSZpbnZhbGlkYXRlX25zY2QoImdyb3VwIik7
DQorICAgIH0NCisNCisgICAgcHJpbnRmIF8oIkFkZGluZyBuZXcgdXNlciAl
cyAoJXMpIHdpdGggZ3JvdXAgJXMuXG4iKSwkbmV3X25hbWUsJG5ld191aWQs
JGluZ3JvdXBfbmFtZQ0KKwlpZiAkdmVyYm9zZTsNCisgICAgJGhvbWVfZGly
ID0gJHNwZWNpYWxfaG9tZSB8fCAmaG9tZWRpcigkbmV3X25hbWUsICRpbmdy
b3VwX25hbWUpOw0KKwkkc2hlbGwgPSAkc3BlY2lhbF9zaGVsbCB8fCAnL2Jp
bi9mYWxzZSc7DQorICAgICR1bmRvdXNlciA9ICRuZXdfbmFtZTsNCisgICAg
QGdyaW5mbyA9IGdldGdybmFtKCRpbmdyb3VwX25hbWUpOw0KKyAgICAkZ2lk
ID0gJGdyaW5mb1syXTsNCisgICAgJGZ1bmMgPSAiYWRkdXNlcl8kc3lzZnVu
Y3Rpb25fc3VmZml4IjsNCisgICAgJiRmdW5jKCRuZXdfbmFtZSwgJG5ld191
aWQsICRnaWQsICRob21lX2RpciwgJHNoZWxsLCAkbmV3X2dlY29zKTsNCisg
ICAgJmludmFsaWRhdGVfbnNjZCgpOw0KKw0KKyAgICBpZiAoJG5vX2NyZWF0
ZV9ob21lKSB7DQorCXByaW50IF8oIk5vdCBjcmVhdGluZyBob21lIGRpcmVj
dG9yeS5cbiIpIGlmICR2ZXJib3NlOw0KKyAgICB9IGVsc2lmICgtZSAkaG9t
ZV9kaXIpIHsNCisJcHJpbnRmIF8oIkhvbWUgZGlyZWN0b3J5ICVzIGFscmVh
ZHkgZXhpc3RzLlxuIiksJGhvbWVfZGlyIGlmICR2ZXJib3NlOw0KKyAgICB9
IGVsc2Ugew0KKwlwcmludGYgXygiQ3JlYXRpbmcgaG9tZSBkaXJlY3Rvcnkg
JXMuXG4iKSwkaG9tZV9kaXIgaWYgJHZlcmJvc2U7DQorCSR1bmRvaG9tZSA9
ICRob21lX2RpcjsNCisJJm1rdHJlZSgkaG9tZV9kaXIpIHx8ICZjbGVhbnVw
KCJDb3VsZG4ndCBjcmVhdGUgJGhvbWVfZGlyOiAkIS5cbiIpOw0KKwljaG93
bigkbmV3X3VpZCwgJG5ld19naWQsICRob21lX2RpcikNCisJICAgIHx8ICZj
bGVhbnVwKCJjaG93biAkbmV3X3VpZDokbmV3X2dpZCAkaG9tZV9kaXI6ICQh
XG4iKTsNCisJJGRpcl9tb2RlID0gZ2V0X2Rpcl9tb2RlKCRtYWtlX2dyb3Vw
X2Fsc28pOw0KKwljaG1vZCAoJGRpcl9tb2RlLCAkaG9tZV9kaXIpIHx8DQor
CSAgICAmY2xlYW51cCgiY2htb2QgJGRpcl9tb2RlICRob21lX2RpcjogJCFc
biIpOw0KKyAgICB9DQorDQorICAgIGV4aXQgMDsNCit9DQorDQorDQorIyMj
IyMjIyMjIyMjIw0KKyMjIGFkZHVzZXIgIyMNCisjIyMjIyMjIyMjIyMjDQor
ZWxzaWYgKCRhY3Rpb24gZXEgImFkZHVzZXIiKSB7DQorICAgIGlmICghJGlu
Z3JvdXBfbmFtZSAmJiAhZGVmaW5lZCgkbmV3X2dpZCkpIHsNCisJaWYgKCRj
b25maWd7InVzZXJncm91cHMifSBlcSAieWVzIikgeyAkbWFrZV9ncm91cF9h
bHNvID0gMTsgfQ0KKwllbHNlIHsgJG5ld19naWQgPSAkY29uZmlneyJ1c2Vy
c19naWQifTsgfQ0KKyAgICB9DQorICAgICZjaGVja191c2VyX2dyb3VwKCk7
DQorICAgICRmaXJzdF91aWQgPSAkbmV3X2ZpcnN0dWlkIHx8ICRjb25maWd7
ImZpcnN0X3VpZCJ9Ow0KKyAgICAkbGFzdF91aWQgPSAkbmV3X2xhc3R1aWQg
fHwgJGNvbmZpZ3sibGFzdF91aWQifTsNCisgICAgcHJpbnRmIF8oIkFkZGlu
ZyB1c2VyICVzLi4uXG4iKSwkbmV3X25hbWUgaWYgJHZlcmJvc2U7DQorDQor
ICAgIGlmICghZGVmaW5lZCgkbmV3X3VpZCkgJiYgJG1ha2VfZ3JvdXBfYWxz
bykgew0KKwkkbmV3X3VpZCA9ICZmaXJzdF9hdmFpbF9pZCgkZmlyc3RfdWlk
LA0KKwkJCQkgICAkbGFzdF91aWQsDQorCQkJCSAgICZnZXRfY3VycmVudF91
aWRzLCAmZ2V0X2N1cnJlbnRfZ2lkcyk7DQorICAgICAgICBpZiAoJG5ld191
aWQgPT0gLTEpIHsNCisgICAgICAgICAgICBwcmludCBTVERFUlIgIiQwOiAi
LF8oIk5vIFVJRC9HSUQgcGFpciBpcyBhdmFpbGFibGUgaW4gdGhlIHJhbmdl
ICIpLA0KKyAgICAgICAgICAgICIkZmlyc3RfdWlkIC0gJGxhc3RfdWlkXG4i
LA0KKyAgICAgICAgICAgICIoRklSU1RfVUlEIC0gTEFTVF9VSUQpLiAgIjsN
CisgICAgICAgICAgICBkaWVmKF8oIlVzZXIgYCVzJyBub3QgY3JlYXRlZC5c
biIpLCRuZXdfbmFtZSk7DQorICAgICAgICB9DQorCSRuZXdfZ2lkID0gJG5l
d191aWQ7DQorCSRpbmdyb3VwX25hbWUgPSAkbmV3X25hbWU7DQorICAgIH0N
CisgICAgZWxzaWYgKCFkZWZpbmVkKCRuZXdfdWlkKSAmJiAhJG1ha2VfZ3Jv
dXBfYWxzbykgew0KKwkkbmV3X3VpZCA9ICZmaXJzdF9hdmFpbF9pZCgkZmly
c3RfdWlkLA0KKwkJCQkgICAkbGFzdF91aWQsDQorCQkJCSAgICZnZXRfY3Vy
cmVudF91aWRzKTsNCisJaWYgKCRuZXdfdWlkID09IC0xKSB7DQorICAgICAg
ICAgICAgcHJpbnQgU1RERVJSICIkMDogIixfKCJObyBVSUQgaXMgYXZhaWxh
YmxlIGluIHRoZSByYW5nZSAiKSwNCisgICAgICAgICAgICAiJGNvbmZpZ3tc
ImZpcnN0X3VpZFwifSAtICRjb25maWd7XCJsYXN0X3VpZFwifVxuIiwNCisg
ICAgICAgICAgICAiKEZJUlNUX1VJRCAtIExBU1RfVUlEKS4gICI7DQorICAg
ICAgICAgICAgZGllZihfKCJVc2VyIGAlcycgbm90IGNyZWF0ZWQuXG4iKSwk
bmV3X25hbWUpOw0KKyAgICAgICAgfQ0KKwlpZiAoZGVmaW5lZCgkbmV3X2dp
ZCkpIHsgJGluZ3JvdXBfbmFtZSA9IGdldGdyZ2lkKCRuZXdfZ2lkKTsgfQ0K
KwllbHNpZiAoJGluZ3JvdXBfbmFtZSkgeyAkbmV3X2dpZCA9IGdldGdybmFt
KCRpbmdyb3VwX25hbWUpOyB9DQorCWVsc2UgeyBkaWUgXygiSW50ZXJuYWwg
ZXJyb3IiKTsgfQ0KKyAgICB9DQorICAgIGVsc2Ugew0KKwlpZiAoZGVmaW5l
ZCgkbmV3X2dpZCkpIHsgJGluZ3JvdXBfbmFtZSA9IGdldGdyZ2lkKCRuZXdf
Z2lkKTsgfQ0KKwllbHNpZiAoJGluZ3JvdXBfbmFtZSkgeyAkbmV3X2dpZCA9
IGdldGdybmFtKCRpbmdyb3VwX25hbWUpOyB9DQorCWVsc2lmICgkbWFrZV9n
cm91cF9hbHNvKXsgJG5ld19naWQ9JG5ld191aWQ7ICRpbmdyb3VwX25hbWU9
JG5ld19uYW1lOyB9DQorCWVsc2UgeyBkaWUgXygiSW50ZXJuYWwgZXJyb3Ii
KTsgfQ0KKyAgICB9DQorDQorICAgICZpbnZhbGlkYXRlX25zY2QoKTsNCisg
ICAgaWYgKCRtYWtlX2dyb3VwX2Fsc28pIHsNCisJcHJpbnRmIF8oIkFkZGlu
ZyBuZXcgZ3JvdXAgJXMgKCVzKS5cbiIpLCRuZXdfbmFtZSwkbmV3X2dpZCBp
ZiAkdmVyYm9zZTsNCisJJHVuZG9ncm91cCA9ICRuZXdfbmFtZTsNCisJJGZ1
bmMgPSAiYWRkZ3JvdXBfJGZ1bmN0aW9uX3N1ZmZpeCI7DQorCSYkZnVuYygk
bmV3X25hbWUsJG5ld19naWQpOw0KKwkmaW52YWxpZGF0ZV9uc2NkKCk7DQor
ICAgIH0NCisNCisgICAgcHJpbnRmIF8oIkFkZGluZyBuZXcgdXNlciAlcyAo
JXMpIHdpdGggZ3JvdXAgJXMuXG4iKSwkbmV3X25hbWUsJG5ld191aWQsJGlu
Z3JvdXBfbmFtZQ0KKwlpZiAkdmVyYm9zZTsNCisgICAgJGhvbWVfZGlyID0g
JHNwZWNpYWxfaG9tZSB8fCAmaG9tZWRpcigkbmV3X25hbWUsICRpbmdyb3Vw
X25hbWUpOw0KKwkkc2hlbGwgPSAkc3BlY2lhbF9zaGVsbCB8fCAkY29uZmln
eyJkc2hlbGwifTsNCisgICAgJHVuZG91c2VyID0gJG5ld19uYW1lOw0KKyAg
ICBAZ3JpbmZvID0gZ2V0Z3JuYW0oJGluZ3JvdXBfbmFtZSk7DQorICAgICRn
aWQgPSAkZ3JpbmZvWzJdOw0KKyAgICBwcmludCAiR3JvdXBpbmZvIHJldHVy
bmVkIEBncmluZm9cbiIgaWYgJGRlYnVnZ2luZzsNCisgICAgJGZ1bmMgPSAi
YWRkdXNlcl8kZnVuY3Rpb25fc3VmZml4IjsNCisgICAgJiRmdW5jKCRuZXdf
bmFtZSwgJG5ld191aWQsICRnaWQsICRob21lX2RpciwgJHNoZWxsLCAkbmV3
X2dlY29zKTsNCisgICAgJmludmFsaWRhdGVfbnNjZCgpOw0KKw0KKyAgICBp
ZiAoLWUgJGhvbWVfZGlyKSB7DQorCXByaW50ZiBfKCJIb21lIGRpcmVjdG9y
eSAlcyBhbHJlYWR5IGV4aXN0cy4gIE5vdCBjb3B5aW5nIGZyb20gJXNcbiIp
LA0KKyAgICAgICAgJGhvbWVfZGlyLCRjb25maWd7c2tlbH0gaWYgJHZlcmJv
c2UgJiYgISRub19jcmVhdGVfaG9tZTsNCisgICAgfSBlbHNpZiAoJG5vX2Ny
ZWF0ZV9ob21lKSB7DQorCXByaW50ICJOb3QgY3JlYXRpbmcgJGhvbWVfZGly
LlxuIiBpZiAkdmVyYm9zZTsNCisgICAgfQ0KKyAgICBlbHNlIHsNCisJcHJp
bnRmIF8oIkNyZWF0aW5nIGhvbWUgZGlyZWN0b3J5ICVzLlxuIiksJGhvbWVf
ZGlyIGlmICR2ZXJib3NlOw0KKwkkdW5kb2hvbWUgPSAkaG9tZV9kaXI7DQor
CSZta3RyZWUoJGhvbWVfZGlyKSB8fCAmY2xlYW51cCgiQ291bGRuJ3QgY3Jl
YXRlICRob21lX2RpcjogJCEuXG4iKTsNCisJY2hvd24oJG5ld191aWQsICRu
ZXdfZ2lkLCAkaG9tZV9kaXIpDQorCSAgICB8fCAmY2xlYW51cCgiY2hvd24g
JG5ld191aWQ6JG5ld19naWQgJGhvbWVfZGlyOiAkIVxuIik7DQorCSRkaXJf
bW9kZSA9IGdldF9kaXJfbW9kZSgkbWFrZV9ncm91cF9hbHNvKTsNCisJY2ht
b2QgKCRkaXJfbW9kZSwgJGhvbWVfZGlyKSB8fA0KKwkgICAgJmNsZWFudXAo
ImNobW9kICRkaXJfbW9kZSAkaG9tZV9kaXI6ICQhXG4iKTsNCisNCisJaWYg
KCRjb25maWd7InNrZWwifSkgew0KKwkgICAgcHJpbnRmIF8oIkNvcHlpbmcg
ZmlsZXMgZnJvbSAlc1xuIiksJGNvbmZpZ3tza2VsfSBpZiAkdmVyYm9zZTsN
CisJICAgIG9wZW4oRklORCwgImNkICRjb25maWd7c2tlbH07IGZpbmQgLiAg
ISAtbmFtZSAnKi5kcGtnLSonIC1wcmludCB8IikNCisJCXx8ICZjbGVhbnVw
KCJmb3JrIGZvciBmaW5kOiAkIVxuIik7DQorCSAgICB3aGlsZSAoPEZJTkQ+
KSB7DQorCQljaG9wOw0KKwkJbmV4dCBpZiAoJF8gZXEgIi4iKTsNCisJCSZj
b3B5X3RvX2RpcigkY29uZmlneyJza2VsIn0sICRfLCAkaG9tZV9kaXIsICRu
ZXdfdWlkLA0KKwkJCSAgICAgJG5ld19naWQsICRtYWtlX2dyb3VwX2Fsc28p
Ow0KKwkgICAgfQ0KKwl9DQorICAgIH0NCisNCisgICAgaWYgKCRhc2tfcGFz
c3dkKSB7DQorCSZzeXN0ZW1jYWxsKCcvdXNyL2Jpbi9wYXNzd2QnLCAkbmV3
X25hbWUpOw0KKyAgICB9IGVsc2Ugew0KKwlpZighJGRpc2FibGVkX2xvZ2lu
KSB7DQorCSAgICAmc3lzdGVtY2FsbCgnL3Vzci9zYmluL3VzZXJtb2QnLCAn
LXAnLCAnKicsICRuZXdfbmFtZSk7DQorCX0NCisgICAgfQ0KKw0KKyAgICBp
ZiAoIWRlZmluZWQoJG5ld19nZWNvcykpIHsNCisJZm9yICg7Oykgew0KKwkg
ICAgJnN5c3RlbWNhbGwoJy91c3IvYmluL2NoZm4nLCAkbmV3X25hbWUpOw0K
KwkgICAgcHJpbnQgXygiSXMgdGhlIGluZm9ybWF0aW9uIGNvcnJlY3Q/IFt5
L05dICIpOw0KKwkgICAgY2hvcCAoJGFuc3dlcj08U1RESU4+KTsNCisJICAg
IGxhc3QgaWYgKCRhbnN3ZXIgZXEgXygieSIpKTsNCisJfQ0KKyAgICB9DQor
DQorICAgIGlmICgkY29uZmlneyJxdW90YXVzZXIifSkgew0KKwlwcmludGYg
XygiU2V0dGluZyBxdW90YSBmcm9tICVzLlxuIiksJGNvbmZpZ3txdW90YXVz
ZXJ9Ow0KKwkmc3lzdGVtY2FsbCgnL3Vzci9zYmluL2VkcXVvdGEnLCAnLXAn
LCAkY29uZmlne3F1b3RhdXNlcn0sICRuZXdfbmFtZSk7DQorICAgIH0NCisN
CisgICAgJnN5c3RlbWNhbGwoJy91c3IvbG9jYWwvc2Jpbi9hZGR1c2VyLmxv
Y2FsJywgJG5ld19uYW1lLCAkbmV3X3VpZCwNCisJCSRuZXdfZ2lkLCAkaG9t
ZV9kaXIpIGlmICgteCAiL3Vzci9sb2NhbC9zYmluL2FkZHVzZXIubG9jYWwi
KTsNCisgICAgDQorICAgIGV4aXQgMDsNCit9DQorDQorDQorIyBjYWxjdWxh
dGUgaG9tZSBkaXJlY3RvcnkNCitzdWIgaG9tZWRpciB7DQorICAgIG15ICRk
aXIgPSAkY29uZmlneyJkaG9tZSJ9Ow0KKyAgICAkZGlyIC49ICcvJyAuICRf
WzFdIGlmICgkY29uZmlneyJncm91cGhvbWVzIn0gPX4gL3llcy9pKTsNCisg
ICAgJGRpciAuPSAnLycgLiBzdWJzdHIoJF9bMF0sMCwxKSBpZiAoJGNvbmZp
Z3sibGV0dGVyaG9tZXMifSA9fiAveWVzL2kpOw0KKyAgICAkZGlyIC49ICcv
JyAuICRfWzBdOw0KK30NCisNCisNCisjIGNyZWF0ZSBhIGRpcmVjdG9yeSBh
bmQgYWxsIGxlYWRpbmcgZGlyZWN0b3JpZXMNCitzdWIgbWt0cmVlIHsNCisg
ICAgbXkoJHRyZWUpID0gQF87DQorICAgIG15KCRkb25lLCBAcGF0aCk7DQor
ICAgIG15ICRkZWZhdWx0X2Rpcl9tb2RlID0gMDc1NTsNCisNCisgICAgJHRy
ZWUgPX4gczpeLyooLiopLyokOiQxOjsgIyBjaG9wIG9mZiBsZWFkaW5nICYg
dHJhaWxpbmcgc2xhc2hlcw0KKyAgICBAcGF0aCA9IHNwbGl0KC9cLy8sICR0
cmVlKTsNCisNCisgICAgJGRvbmUgPSAiIjsNCisgICAgd2hpbGUgKEBwYXRo
KSB7DQorCSRkb25lIC49ICcvJyAuIHNoaWZ0KEBwYXRoKTsNCisJLWQgJGRv
bmUgfHwgbWtkaXIoJGRvbmUsICRkZWZhdWx0X2Rpcl9tb2RlKSB8fCByZXR1
cm4gMDsNCisgICAgfQ0KKyAgICAxOw0KK30NCisNCisNCitzdWIgY2hlY2tf
dXNlcl9ncm91cCgpIHsNCisgICAgZGllZihfKCJUaGUgdXNlciBgJXNcJyBh
bHJlYWR5IGV4aXN0cy5cbiIpLCRuZXdfbmFtZSkgaWYoZGVmaW5lZCBnZXRw
d25hbSgkbmV3X25hbWUpKTsNCisgICAgZGllZihfKCJUaGUgVUlEIGAlcycg
YWxyZWFkeSBleGlzdHMuXG4iKSwkbmV3X3VpZCkNCisJaWYgKGRlZmluZWQo
JG5ld191aWQpICYmIGdldHB3dWlkKCRuZXdfdWlkKSk7DQorICAgIGlmICgk
bWFrZV9ncm91cF9hbHNvKSB7DQorCWRpZWYoXygiVGhlIGdyb3VwIGAlcycg
YWxyZWFkeSBleGlzdHMuXG4iKSwkbmV3X25hbWUpDQorCSAgICBpZiAoZGVm
aW5lZCBnZXRncm5hbSgkbmV3X25hbWUpKTsNCisJZGllZihfKCJUaGUgR0lE
IGAlcycgYWxyZWFkeSBleGlzdHMuXG4iKSwkbmV3X3VpZCkNCisJICAgIGlm
IChkZWZpbmVkKCRuZXdfdWlkKSAmJiBkZWZpbmVkKGdldGdyZ2lkKCRuZXdf
dWlkKSkpOw0KKyAgICB9DQorICAgIGVsc2Ugew0KKwlkaWVmKF8oIlRoZSBn
cm91cCBgJXMnIGRvZXNuJ3QgZXhpc3QuXG4iKSwkaW5ncm91cF9uYW1lKQ0K
KwkgICAgaWYgKCRpbmdyb3VwX25hbWUgJiYgIWRlZmluZWQoZ2V0Z3JuYW0o
JGluZ3JvdXBfbmFtZSkpKTsNCisJZGllZihfKCJUaGUgR0lEIGAlcycgZG9l
c24ndCBleGlzdC5cbiIpLCRuZXdfZ2lkKQ0KKwkgICAgaWYgKGRlZmluZWQo
JG5ld19naWQpICYmICFkZWZpbmVkKGdldGdyZ2lkKCRuZXdfZ2lkKSkpOw0K
KyAgICB9DQorfQ0KKw0KKw0KKyMgY29weSBmaWxlcywgZGlyZWN0b3JpZXMs
IHN5bWxpbmtzICAgIA0KK3N1YiBjb3B5X3RvX2RpciB7DQorICAgIG15KCRm
cm9tZGlyLCAkZmlsZSwgJHRvZGlyLCAkbmV3dSwgJG5ld2csICRzZ2lkZGly
KSA9IEBfOw0KKw0KKyAgICBpZiAoLWwgIiRmcm9tZGlyLyRmaWxlIikgew0K
KwlzeW1saW5rKHJlYWRsaW5rKCIkZnJvbWRpci8kZmlsZSIpLCAiJHRvZGly
LyRmaWxlIikNCisJICAgIHx8ICZjbGVhbnVwKCJzeW1saW5rOiAkIVxuIik7
DQorCXJldHVybjsNCisgICAgfQ0KKyAgICBlbHNpZiAoLWYgIiRmcm9tZGly
LyRmaWxlIikgew0KKwlvcGVuIChGSUxFLCAiJGZyb21kaXIvJGZpbGUiKSB8
fCAmY2xlYW51cCgib3BlbiAkZnJvbWRpci8kZmlsZTogJCEiKTsNCisJb3Bl
biAoTkVXRklMRSwgIj4kdG9kaXIvJGZpbGUiKSB8fCAmY2xlYW51cCgib3Bl
biA+JHRvZGlyLyRmaWxlOiAkISIpOw0KKw0KKwkocHJpbnQgTkVXRklMRSA8
RklMRT4pIHx8ICZjbGVhbnVwKCJwcmludCAkdG9kaXIvJGZpbGU6ICQhIik7
DQorCWNsb3NlIEZJTEU7DQorCWNsb3NlKE5FV0ZJTEUpICB8fCAmY2xlYW51
cCgiY2xvc2UgJHRvZGlyLyRmaWxlICIpOw0KKw0KKyAgICB9DQorICAgIGVs
c2lmICgtZCAiJGZyb21kaXIvJGZpbGUiKSB7DQorCW1rZGlyKCIkdG9kaXIv
JGZpbGUiLCA3MDApIHx8ICZjbGVhbnVwKCJta2RpcjogJCEiKTsNCisgICAg
fQ0KKyAgICBlbHNlIHsNCisJJmNsZWFudXAoIkNhbid0IGRlYWwgd2l0aCAk
ZnJvbWRpci8kZmlsZS4gICINCisJCSAuIk5vdCBhIGRpciwgZmlsZSwgb3Ig
c3ltbGluay5cbiIpOw0KKyAgICB9DQorICAgIA0KKyAgICBjaG93bigkbmV3
dSwgJG5ld2csICIkdG9kaXIvJGZpbGUiKQ0KKwl8fCAmY2xlYW51cCgiY2hv
d24gJG5ld3U6JG5ld2cgJHRvZGlyLyRmaWxlOiAkIVxuIik7DQorICAgICRw
ZXJtID0gKHN0YXQoIiRmcm9tZGlyLyRmaWxlIikpWzJdICYgMDc3Nzc7DQor
ICAgICRwZXJtIHw9IDAyMDAwIGlmICgtZCAiJGZyb21kaXIvJGZpbGUiICYm
ICgkcGVybSAmIDAxMCkgJiYgJHNnaWRkaXIpOw0KKyAgICBjaG1vZCgkcGVy
bSwgIiR0b2Rpci8kZmlsZSIpIHx8ICZjbGVhbnVwKCJjaG1vZCAkdG9kaXIv
JGZpbGU6ICQhXG4iKTsNCit9DQorICAgICAgIA0KKw0KKyMgaXMgbmFtZSBv
az8NCitzdWIgY2hlY2tuYW1lIHsNCisgICAgbXkgKCRuYW1lKSA9IEBfOw0K
KyAgICBpZiAoJGFsbG93X2JhZG5hbWUgJiYgJG5hbWUgIX4gL15bQS1aYS16
X11bLV9BLVphLXowLTldKlwkPyQvKSB7DQorCXByaW50IFNUREVSUg0KKyIk
MDogIixfKCJUbyBhdm9pZCBwcm9ibGVtcywgdGhlIHVzZXJuYW1lIHNob3Vs
ZCBjb25zaXN0IG9mIGEgbGV0dGVyIG9yDQordW5kZXJzY29yZSBmb2xsb3dl
ZCBieSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBhbmQgZGFzaGVz
LiBGb3INCitjb21wYXRpYmlsaXR5IHdpdGggU2FtYmEgbWFjaGluZSBhY2Nv
dW50cyBhbHNvIFwkIGlzIHN1cHBvcnRlZCBhdCB0aGUNCitlbmQgb2YgdGhl
IHVzZXJuYW1lXG4iKTsNCisJZXhpdCAxOw0KKyAgICB9DQorICAgIGVsc2lm
ICgkbmFtZSAhfiAvXlthLXpdW2EtejAtOVwtXSokLykgew0KKwlpZiAoISRh
bGxvd19iYWRuYW1lKSB7DQorCSAgICBwcmludCBTVERFUlINCisiJDA6ICIs
XygiUGxlYXNlIGVudGVyIGEgdXNlcm5hbWUgY29uc2lzdGluZyBvZiBhIGxv
d2VyIGNhc2UgbGV0dGVyDQorZm9sbG93ZWQgYnkgbG93ZXIgY2FzZSBsZXR0
ZXJzIGFuZCBudW1iZXJzLiAgVXNlIHRoZSBgLS1mb3JjZS1iYWRuYW1lJw0K
K29wdGlvbiB0byBhbGxvdyB1bmRlcnNjb3JlcywgYW5kIHVwcGVyY2FzZS5c
biIpOw0KKwkgICAgZXhpdCAxOw0KKwl9DQorCXByaW50IF8oIkFsbG93aW5n
IHVzZSBvZiBxdWVzdGlvbmFibGUgdXNlcm5hbWUuXG4iKSBpZiAoJHZlcmJv
c2UpOw0KKyAgICB9DQorfQ0KKw0KKw0KKyMgcmV0dXJuIHRoZSBzbWFsbGVz
dCBYIHN1Y2ggdGhhdA0KKyMgJG1pbiA8PSBYIDw9ICRtYXgsIGFuZCBYIGlz
IG5vdCBhbiBlbGVtZW50IG9mIEBpZHMNCisjIG9yIC0xIGlmIG5vIHN1Y2gg
WA0KK3N1YiBmaXJzdF9hdmFpbF9pZCB7DQorICAgIG15ICgkbWluLCAkbWF4
LCBAaWRzKSA9IEBfOw0KKyAgICBAaWRzID0gc29ydCB7JGEgPD0+ICRifSBA
aWRzOw0KKyAgICBwcmludGYgXygiU2VsZWN0aW5nIGZyb20gJXMgJXMgKCVz
KS5cbiIpLCRtaW4sJG1heCxqb2luKCIsIixAaWRzKSBpZiAkZGVidWdnaW5n
Ow0KKyAgICANCisgICAgd2hpbGUgKCRtaW4gPD0gJG1heCkgew0KKwlyZXR1
cm4gJG1pbiBpZiAoJG1pbiA8ICAkaWRzWzBdIHx8IEBpZHM9PTApOw0KKwlz
aGlmdCBAaWRzICBpZiAoJG1pbiA+ICAkaWRzWzBdKTsNCisJJG1pbisrICAg
ICAgaWYgKCRtaW4gPT0gJGlkc1swXSk7DQorICAgIH0NCisNCisgICAgLTE7
CQkJCSMgbm90aGluZyBhdmFpbGFibGUNCit9DQorDQorDQorIyByZXR1cm4g
YW4gYXJyYXkgY29udGFpbmluZyBhbGwgdGhlIEdJRHMNCitzdWIgZ2V0X2N1
cnJlbnRfZ2lkcyB7DQorICAgIG15KEBnaWRzLCAkZ2lkKTsNCisgICAgc2V0
Z3JlbnQ7DQorICAgIHB1c2ggQGdpZHMsICRnaWQgd2hpbGUgZGVmaW5lZCgk
Z2lkID0gKGdldGdyZW50KVsyXSk7DQorICAgIGVuZGdyZW50Ow0KKyAgICBA
Z2lkczsNCit9DQorDQorDQorIyByZXR1cm4gYW4gYXJyYXkgY29udGFpbmlu
ZyBhbGwgdGhlIFVJRHMNCitzdWIgZ2V0X2N1cnJlbnRfdWlkcyB7DQorICAg
IG15KEB1aWRzLCAkdWlkKTsNCisgICAgc2V0cHdlbnQ7DQorICAgIHB1c2gg
QHVpZHMsICR1aWQgd2hpbGUgZGVmaW5lZCgkdWlkID0gKGdldHB3ZW50KVsy
XSk7DQorICAgIGVuZHB3ZW50Ow0KKyAgICBAdWlkczsNCit9DQorDQorc3Vi
IGNoX2dlY29zIHsNCisgICAgbXkgJGdlY29zID0gc2hpZnQ7DQorICAgIGlm
KCRnZWNvcyA9fiAvLC8pDQorICAgICAgew0KKwkgIG15KCRnZWNvc19uYW1l
LCRnZWNvc19yb29tLCRnZWNvc193b3JrLCRnZWNvc19ob21lLCRnZWNvc19v
dGhlcikNCisJICAgID0gc3BsaXQoLywvLCRnZWNvcyk7DQorDQorCSAgJnN5
c3RlbWNhbGwoJy91c3IvYmluL2NoZm4nLCAnLWYnLCAkZ2Vjb3NfbmFtZSwg
Jy1yJywgJGdlY29zX3Jvb20sICRuZXdfbmFtZSk7DQorCSAgJnN5c3RlbWNh
bGwoJy91c3IvYmluL2NoZm4nLCctdycsJGdlY29zX3dvcmssJG5ld19uYW1l
KQ0KKwkgICAgaWYoZGVmaW5lZCgkZ2Vjb3Nfd29yaykpOw0KKwkgICZzeXN0
ZW1jYWxsKCcvdXNyL2Jpbi9jaGZuJywnLWgnLCRnZWNvc19ob21lLCRuZXdf
bmFtZSkNCisJICAgIGlmKGRlZmluZWQoJGdlY29zX2hvbWUpKTsNCisJICAm
c3lzdGVtY2FsbCgnL3Vzci9iaW4vY2hmbicsJy1vJywkZ2Vjb3Nfb3RoZXIs
JG5ld19uYW1lKQ0KKwkgICAgaWYoZGVmaW5lZCgkZ2Vjb3Nfb3RoZXIpKTsN
CisgICAgICB9DQorICAgIGVsc2UNCisgICAgICB7DQorCSAgJnN5c3RlbWNh
bGwoJy91c3IvYmluL2NoZm4nLCAnLWYnLCAkZ2Vjb3MsICRuZXdfbmFtZSk7
DQorICAgICAgfQ0KK30NCisNCisjIHVzZXIgaXMgbWVtYmVyIG9mIGdyb3Vw
Pw0KK3N1YiB1c2VyX2lzX21lbWJlciB7DQorICAgIG15KCR1c2VyLCAkZ3Jv
dXApID0gQF87DQorICAgIGZvciAoc3BsaXQoLyAvLCAoZ2V0Z3JuYW0oJGdy
b3VwKSlbM10pKSB7DQorCXJldHVybiAxIGlmICgkdXNlciBlcSAkXyk7DQor
ICAgIH0NCisgICAgMDsNCit9DQorDQorDQorc3ViIGNsZWFudXAgew0KKyAg
ICBpZiAoJGNsZWFuaW5nX3VwKQ0KKyAgICB7DQorCWRpZSAoIlJlYWxseSBm
YXRhbCBlcnJvcjogcmVjdXJzaXZlIGNsZWFudXAuXG4iKTsNCisgICAgfQ0K
KyAgICAkY2xlYW5pbmdfdXAgPSAxOw0KKyAgICBwcmludCAiQHtffUNsZWFu
aW5nIHVwLlxuIjsNCisgICAgaWYgKCR1bmRvaG9tZSkgew0KKwlwcmludGYg
XygiUmVtb3ZpbmcgZGlyZWN0b3J5IGAlcydcbiIpLCR1bmRvaG9tZTsNCisJ
c3lzdGVtKCdybScsICctcmYnLCAkdW5kb2hvbWUpOw0KKyAgICB9DQorICAg
IGlmICgkdW5kb3VzZXIpIHsNCisJcHJpbnRmIF8oIlJlbW92aW5nIHVzZXIg
YCVzJy5cbiIpLCR1bmRvdXNlcjsNCisJJGZ1bmMgPSAiZGVsdXNlcl8kZnVu
Y3Rpb25fc3VmZml4IjsNCisJJiRmdW5jKCR1bmRvdXNlcik7DQorICAgIH0N
CisgICAgaWYgKCR1bmRvZ3JvdXApIHsNCisJcHJpbnRmIF8oIlJlbW92aW5n
IGdyb3VwIGAlcycuXG4iKSwkdW5kb2dyb3VwOw0KKwkkZnVuYyA9ICJkZWxn
cm91cF8kZnVuY3Rpb25fc3VmZml4IjsNCisJJiRmdW5jKCR1bmRvZ3JvdXAp
Ow0KKyAgICB9DQorICAgICMgZG8gd2UgbmVlZCB0byBpbnZhbGlkYXRlIHRo
ZSBuc2NkIGNhY2hlIGhlcmUsIHRvbz8NCisgICAgZXhpdCAxOw0KK30NCisN
CitzdWIgaGFuZGxlciB7DQorICAgIG15KCRzaWcpID0gQF87DQorICAgICZj
bGVhbnVwKCJDYXVnaHQgYSBTSUckc2lnLlxuIik7DQorfQ0KKyAgICANCisN
CitzdWIgdmVyc2lvbiB7DQorICAgIHByaW50ICIkMDogYWRkIGEgdXNlciBv
ciBncm91cCB0byB0aGUgc3lzdGVtLiAgVmVyc2lvbiAzLjUwDQorQ29weXJp
Z2h0IChDKSAxOTk3LCAxOTk4LCAxOTk5IEd1eSBNYW9yIDxtYW9yXEBkZWJp
YW4ub3JnPg0KK0NvcHlyaWdodCAoQykgMTk5NSBJYW4gTXVyZG9jayA8aW11
cmRvY2tcQGdudS5haS5taXQuZWR1PiwNCisgICAgICAgICAgICAgICAgICAg
VGVkIEhhamVrIDx0ZWRoYWpla1xAYm9vbWJveC5taWNyby51bW4uZWR1Piwg
DQorICAgIA0KK1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQoraXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkNCit0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQNCit5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQorDQorVGhpcyBwcm9n
cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsIGJ1dA0KK1dJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCitNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQ0KK0dlbmVyYWwgUHVibGljIExpY2Vuc2UsIC91c3Ivc2hhcmUv
Y29tbW9uLWxpY2Vuc2VzL0dQTCwgZm9yIG1vcmUgZGV0YWlscy4NCisiOw0K
K30NCisNCitzdWIgdXNhZ2Ugew0KKyAgICBwcmludGYgXygNCisiYWRkdXNl
ciBbLS1ob21lIERJUl0gWy0tc2hlbGwgU0hFTExdIFstLW5vLWNyZWF0ZS1o
b21lXSBbLS11aWQgSURdDQorWy0tZmlyc3R1aWQgSURdIFstLWxhc3R1aWQg
SURdIFstLWdlY29zIEdFQ09TXSBbLS1pbmdyb3VwIEdST1VQIHwgLS1naWQg
SURdDQorWy0tZGlzYWJsZWQtcGFzc3dvcmRdIFstLWRpc2FibGVkLWxvZ2lu
XSB1c2VyDQorICAgQWRkIGEgbm9ybWFsIHVzZXINCisNCithZGR1c2VyIC0t
c3lzdGVtIFstLWhvbWUgRElSXSBbLS1zaGVsbCBTSEVMTF0gWy0tbm8tY3Jl
YXRlLWhvbWVdIFstLXVpZCBJRF0NCitbLS1nZWNvcyBHRUNPU10gWy0tZ3Jv
dXAgfCAtLWluZ3JvdXAgR1JPVVAgfCAtLWdpZCBJRF0gWy0tZGlzYWJsZWQt
cGFzc3dvcmRdDQorWy0tZGlzYWJsZWQtbG9naW5dIHVzZXINCisgICBBZGQg
YSBzeXN0ZW0gdXNlcg0KKw0KK2FkZHVzZXIgLS1ncm91cCBbLS1naWQgSURd
IGdyb3VwDQorYWRkZ3JvdXAgWy0tZ2lkIElEXSBncm91cA0KKyAgIEFkZCBh
IHVzZXIgZ3JvdXANCisNCithZGR1c2VyIC0tZ3JvdXAgLS1zeXN0ZW0gWy0t
Z2lkIElEXSBncm91cA0KK2FkZGdyb3VwIC0tc3lzdGVtIFstLWdpZCBJRF0g
Z3JvdXANCisgICBBZGQgYSBzeXN0ZW0gZ3JvdXANCisNCithZGR1c2VyIHVz
ZXIgZ3JvdXANCisgICBBZGQgYW4gZXhpc3RpbmcgdXNlciB0byBhbiBleGlz
dGluZyBncm91cA0KKw0KK0dsb2JhbCBjb25maWd1cmF0aW9uIGlzIGluIHRo
ZSBmaWxlICVzLg0KK090aGVyIG9wdGlvbnMgYXJlIFstLXF1aWV0XSBbLS1m
b3JjZS1iYWRuYW1lXSBbLS1oZWxwXSBbLS12ZXJzaW9uXSBbLS1jb25mDQor
RklMRV0uDQorIiksJGRlZmF1bHRzOw0KK30NCisNCitzdWIgc3lzdGVtY2Fs
bCB7DQorICAgIG15ICRjID0gam9pbignICcsIEBfKTsNCisgICAgcHJpbnQg
IiRjXG4iIGlmICRkZWJ1Z2dpbmc7DQorICAgIGlmIChzeXN0ZW0oQF8pKSB7
DQorCSZjbGVhbnVwKCIkMDogYCRjJyByZXR1cm5lZCBlcnJvciBjb2RlICIg
LiAoJD8+PjgpIC4gIi4gIEFib3J0aW5nLlxuIikNCisJICBpZiAoJD8+Pjgp
Ow0KKwkmY2xlYW51cCgiJDA6IGAkYycgZXhpdGVkIGZyb20gc2lnbmFsICIg
LiAoJD8mMjU1KSAuICIuICBBYm9ydGluZy5cbiIpOw0KKyAgICB9DQorfQ0K
Kw0KK3N1YiBnZXRfZGlyX21vZGUNCisgIHsNCisgICAgICBteSAkc2V0Z2lk
ID0gc2hpZnQ7DQorICAgICAgIyBubyBsb25nZXIgbWFrZSBob21lIGRpcmVj
dG9yaWVzIHNldGdpZCBwZXIgZGVmYXVsdCAoY2xvc2VzOiAjNjQ4MDYpDQor
ICAgICAgJHNldGdpZCA9IDAgdW5sZXNzICRjb25maWd7InNldGdpZF9ob21l
In0gZXEgInllcyI7DQorDQorICAgICAgbXkgJGRpcl9tb2RlID0gJGNvbmZp
Z3siZGlyX21vZGUifTsNCisgICAgICBpZighZGVmaW5lZCgkZGlyX21vZGUp
IHx8ICEgKCRkaXJfbW9kZSA9fiAvWzAtN117M30vIHx8DQorCQkJCSAgICRk
aXJfbW9kZSA9fiAvWzAtN117NH0vKSkNCisJew0KKwkgICAgJGRpcl9tb2Rl
ID0gJHNldGdpZCA/IDI3NTUgOiAwNzU1Ow0KKwl9DQorICAgICAgZWxzZQ0K
Kwl7DQorCSAgICAkZGlyX21vZGUgPSAkY29uZmlneyJkaXJfbW9kZSJ9Ow0K
KwkgICAgaWYoJHNldGdpZCAmJiAobGVuZ3RoKCRkaXJfbW9kZSkgPT0gMyB8
fCAkZGlyX21vZGUgPX4gL15bMC0xfDQtNV1bMC03XXszfSQvKSkNCisJICAg
ICAgew0KKwkJICAkZGlyX21vZGUgKz0gMjAwMDsNCisJICAgICAgfQ0KKwl9
DQorICAgICAgcmV0dXJuIG9jdCgkZGlyX21vZGUpOw0KKyAgfQ0KKw0KKyMg
TG9jYWwgVmFyaWFibGVzOg0KKyMgbW9kZTpjcGVybA0KKyMgY3BlcmwtaW5k
ZW50LWxldmVsOjQNCisjIEVuZDoNCisNCisNCmRpZmYgLXVyTiBhZGR1c2Vy
LTMuNTAvZGViaWFuL3RtcC91c3Ivc2Jpbi9kZWxncm91cCBhZGR1c2VyLTMu
NTAubXBhbG1lci9kZWJpYW4vdG1wL3Vzci9zYmluL2RlbGdyb3VwDQotLS0g
YWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NiaW4vZGVsZ3JvdXAJVGh1
IEphbiAgMSAxMDowMDowMCAxOTcwDQorKysgYWRkdXNlci0zLjUwLm1wYWxt
ZXIvZGViaWFuL3RtcC91c3Ivc2Jpbi9kZWxncm91cAlXZWQgTWF5ICA3IDE3
OjAxOjQxIDIwMDMNCkBAIC0wLDAgKzEsNDE1IEBADQorIyEvdXNyL2Jpbi9w
ZXJsDQorDQorIyBkZWx1c2VyIC0tIGEgdXRpbGl0eSB0byByZW1vdmUgdXNl
cnMgZnJvbSB0aGUgc3lzdGVtDQorIyBkZWxncm91cCAtLSBhIHV0aWx0eSB0
byByZW1vdmUgZ3JvdXBzIGZyb20gdGhlIHN5c3RlbQ0KKyR2ZXJzaW9uID0g
My41MC4yOw0KKw0KKyMgQ29weXJpZ2h0IChDKSAyMDAwIFJvbGFuZCBCYXVl
cnNjaG1pZHQgPHJiQGRlYmlhbi5vcmc+DQorIyBCYXNlZCBvbiAnYWRkdXNl
cicgYXMgcGF0dGVybiBieQ0KKyMgICAgIEd1eSBNYW9yIDxtYW9yQGRlYmlh
bi5vcmc+DQorIyAgICAgVGVkIEhhamVrIDx0ZWRoYWpla0Bib29tYm94Lm1p
Y3JvLnVtbi5lZHU+DQorIyAgICAgSWFuIEEuIE11cmRvY2sgPGltdXJkb2Nr
QGdudS5haS5taXQuZWR1Pg0KKw0KKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp
ZnkNCisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQorIyB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvcg0KKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4NCisjDQorIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCisjIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mDQorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQorIyBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KKyMNCisjIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlDQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh
bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KKyMgRm91
bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJv
c3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQ0KKw0KKyMgdGhlIHByb2dyYW0g
Y2FuIGJlIGNhbGxlZCBhczoNCisjDQorIyAgZGVsdXNlciB1c2VyDQorIyAg
ICAgcmVtb3ZlIGEgbm9ybWFsIHVzZXIgZnJvbSB0aGUgc3lzdGVtDQorIyAg
ICAgZXhhbXBsZTogZGVsdXNlciBtaWtlDQorIyAgICAgJGFjdGlvbiA9ICJk
ZWx1c2VyIg0KKyMNCisjICAgICAtLXJlbW92ZS1ob21lICAgICAgICAgICAg
IHJlbW92ZSB0aGUgdXNlcnMgaG9tZSBkaXJlY3RvcnkgYW5kIG1haWwgc3Bv
b2wNCisjICAgICAtLXJlbW92ZS1hbGwtZmlsZXMgICAgICAgIHJlbW92ZSBh
bGwgZmlsZXMgb3duZWQgYnkgdXNlcg0KKyMgICAgIC0tYmFja3VwICAgICAg
ICAgICAgICAgICAgYmFja3VwIGZpbGVzIGJlZm9yZSByZW1vdmluZw0KKyMN
CisjICBkZWxncm91cCBncm91cA0KKyMgIGRlbHVzZXIgLS1ncm91cCBncm91
cA0KKyMgICAgIHJlbW92ZSBhIHN5c3RlbSBncm91cCBmcm9tIHRoZSBzeXN0
ZW0NCisjICAgICBleGFtcGxlOiBkZWx1c2VyIC0tZ3JvdXAgc3R1ZGVudHMN
CisjICAgICAkYWN0aW9uID0gImRlbGdyb3VwIg0KKyMNCisjICBkZWx1c2Vy
IHVzZXIgZ3JvdXANCisjICAgICByZW1vdmUgdGhlIHVzZXIgZnJvbSBhIGdy
b3VwDQorIyAgICAgZXhhbXBsZTogZGVsdXNlciBtaWtlIHN0dWRlbnRzDQor
IyAgICAgJGFjdGlvbiA9ICJkZWx1c2VyZnJvbWdyb3VwIg0KKyMNCisjICBn
ZW5lcmFsIG9wdGlvbnM6DQorIw0KKyMgICAgIC0tcXVpZXQgfCAtcSAgICAg
IGRvbid0IGdpdmUgcHJvY2VzcyBpbmZvcm1hdGlvbiB0byBzdGRvdXQNCisj
ICAgICAtLWhlbHAgfCAtaCAgICAgICB1c2FnZSBtZXNzYWdlDQorIyAgICAg
LS12ZXJzaW9uIHwgLXYgICAgdmVyc2lvbiBudW1iZXIgYW5kIGNvcHlyaWdo
dA0KKyMgICAgIC0tY29uZiB8IC1jIEZJTEUgIHVzZSBGSUxFIGluc3RlYWQg
b2YgL2V0Yy9hZGR1c2VyLmNvbmYNCisNCiskRU5WeyJQQVRIIn0gPSAiL3Ni
aW46L2JpbjovdXNyL3NiaW46L3Vzci9iaW4iOw0KKw0KK3VzZSB3YXJuaW5n
czsNCisNCitCRUdJTiB7DQorICAgIGV2YWwgJ3VzZSBGaWxlOjpGaW5kJzsN
CisgICAgaWYgKCRAKSB7DQorICAgICAgICAkTk9fRklMRV9GSU5EID0gMTsN
CisgICAgfQ0KK30NCisNCit1c2UgRGViaWFuOjpBZGR1c2VyQ29tbW9uOw0K
Kw0KK0JFR0lOIHsNCisgICAgZXZhbCAndXNlIExvY2FsZTo6Z2V0dGV4dCc7
DQorICAgIGlmICgkQCkgew0KKyAgICAgICAgKmdldHRleHQgPSBzdWIgeyBz
aGlmdCB9Ow0KKyAgICAgICAgKnRleHRkb21haW4gPSBzdWIgeyAiIiB9Ow0K
KyAgICAgICAgKkxDX01FU1NBR0VTID0gc3ViIHsgNSB9Ow0KKyAgICB9DQor
ICAgIGV2YWwgew0KKyAgICAgICAgcmVxdWlyZSBQT1NJWDsNCisgICAgICAg
IGltcG9ydCBQT1NJWCBxdyhzZXRsb2NhbGUpOw0KKyAgICB9Ow0KKyAgICBp
ZiAoJEApIHsNCisgICAgICAgICpzZXRsb2NhbGUgPSBzdWIgeyAxIH07DQor
ICAgIH0NCit9DQorDQorc2V0bG9jYWxlKExDX01FU1NBR0VTLCAiIik7DQor
dGV4dGRvbWFpbigiYWRkdXNlciIpOw0KKw0KKyR2ZXJib3NlID0gMTsNCisk
ZGVmYXVsdHMgPSAiL2V0Yy9hZGR1c2VyLmNvbmYiOw0KKw0KKyRjb25maWd7
ImRzaGVsbCJ9ID0gIi9iaW4vYmFzaCI7DQorJGNvbmZpZ3siZmlyc3Rfc3lz
dGVtX3VpZCJ9ID0gMTAwOw0KKyRjb25maWd7Imxhc3Rfc3lzdGVtX3VpZCJ9
ID0gOTk5Ow0KKyRjb25maWd7ImZpcnN0X3VpZCJ9ID0gMTAwMDsNCiskY29u
ZmlneyJsYXN0X3VpZCJ9ID0gMjk5OTk7DQorJGNvbmZpZ3siZmlyc3Rfc3lz
dGVtX2dpZCJ9ID0gMTAwOw0KKyRjb25maWd7Imxhc3Rfc3lzdGVtX2dpZCJ9
ID0gOTk5Ow0KKyRjb25maWd7ImZpcnN0X2dpZCJ9ID0gMTAwMDsNCiskY29u
ZmlneyJsYXN0X2dpZCJ9ID0gMjk5OTk7DQorJGNvbmZpZ3siZGhvbWUifSA9
ICIvaG9tZSI7DQorJGNvbmZpZ3sic2tlbCJ9ID0gIi9ldGMvc2tlbCI7DQor
JGNvbmZpZ3sidXNlcmdyb3VwcyJ9ID0gInllcyI7DQorJGNvbmZpZ3sidXNl
cnNfZ2lkIn0gPSAiMTAwIjsNCiskY29uZmlneyJncm91cGhvbWVzIn0gPSAi
bm8iOw0KKyRjb25maWd7ImxldHRlcmhvbWVzIn0gPSAibm8iOw0KKyRjb25m
aWd7InF1b3RhdXNlciJ9ID0gIiI7DQorJGNvbmZpZ3siZGlyX21vZGUifSA9
ICIwNzU1IjsNCiskY29uZmlneyJzZXRnaWRfaG9tZSJ9ID0gIm5vIjsNCisk
Y29uZmlneyJyZW1vdmVfaG9tZSJ9ID0gMDsNCiskY29uZmlneyJyZW1vdmVf
YWxsX2ZpbGVzIn0gPSAwOw0KKyRjb25maWd7ImJhY2t1cCJ9ID0gMDsNCisk
Y29uZmlneyJ1c2VfbGRhcCJ9ID0gIm5vIjsNCiskY29uZmlneyJ1c2VfbGRh
cF9zeXN0ZW0ifSA9ICJubyI7DQorJGNvbmZpZ3sibGRhcF9zZXJ2ZXIifSA9
ICIiOw0KKyRjb25maWd7ImxkYXBfcG9ydCJ9ID0gIiI7DQorJGNvbmZpZ3si
bGRhcF9iaW5kZG4ifSA9ICIiOw0KKyRjb25maWd7ImxkYXBfYmluZHB3In0g
PSAiIjsNCiskY29uZmlneyJsZGFwX2Jhc2VkbiJ9ID0gIiI7DQorJGNvbmZp
Z3sibGRhcF9yZG5fZ3JvdXBzIn0gPSAiIjsNCiskY29uZmlneyJsZGFwX3Jk
bl91c2VycyJ9ID0gIiI7DQorDQorDQorJGFjdGlvbiA9ICQwID1+IC9kZWxn
cm91cCQvID8gImRlbGdyb3VwIiA6ICJkZWx1c2VyIjsNCisNCit3aGlsZSgk
YXJnID0gc2hpZnQoQEFSR1YpKQ0KK3sNCisgICAgZGllICIkMDogIixfKCJO
byBvcHRpb25zIGFsbG93ZWQgYWZ0ZXIgbmFtZXMuXG4iKQ0KKwlpZiAoJG5h
bWVzWzBdICYmICRhcmcgPX4gL14tLS8pOw0KKw0KKyAgICBpZigkYXJnIGVx
ICItLXF1aWV0IiB8fCAkYXJnIGVxICItcSIpIHsNCisJJHZlcmJvc2UgPSAw
Ow0KKyAgICB9IGVsc2lmKCRhcmcgZXEgIi0tZGVidWciKSB7DQorICAgICAg
ICAkdmVyYm9zZSA9IDI7DQorICAgIH0gZWxzaWYoJGFyZyBlcSAiLS12ZXJz
aW9uIiB8fCAkYXJnIGVxICItdiIpIHsNCisJdmVyc2lvbigpOw0KKwlleGl0
IDA7DQorICAgIH0gZWxzaWYoJGFyZyBlcSAiLS1oZWxwIiB8fCAkYXJnIGVx
ICItaCIpIHsNCisJdXNhZ2UoKTsNCisJZXhpdCAwOw0KKyAgICB9IGVsc2lm
KCRhcmcgZXEgIi0tZ3JvdXAiIHx8ICRhcmcgZXEgIi1nIikgew0KKwkkYWN0
aW9uID0gImRlbGdyb3VwIjsNCisgICAgfSBlbHNpZigkYXJnIGVxICItLWNv
bmYiIHx8ICRhcmcgZXEgIi1jIikgew0KKyAgICAgICAgZGllICIkMDogIixf
KCItLWNvbmYgcmVxdWlyZXMgYW4gYXJndW1lbnQuXG4iKQ0KKyAgICAgICAg
ICAgIGlmICghKCRkZWZhdWx0cyA9IHNoaWZ0KEBBUkdWKSkpOw0KKyAgICAg
ICAgZGllZiAoXygiYCVzJyBkb2Vzbid0IGV4aXN0LlxuIiksJGRlZmF1bHRz
KQ0KKyAgICAgICAgICAgIGlmICghIC1mICRkZWZhdWx0cyk7DQorICAgIH0g
ZWxzaWYoJGFyZyBlcSAiLS1yZW1vdmUtaG9tZSIpIHsNCisJJHBjb25maWd7
InJlbW92ZV9ob21lIn0gPSAxOw0KKyAgICB9IGVsc2lmKCRhcmcgZXEgIi0t
cmVtb3ZlLWFsbC1maWxlcyIpIHsNCisJJHBjb25maWd7InJlbW92ZV9hbGxf
ZmlsZXMifSA9IDE7DQorICAgIH0gZWxzaWYoJGFyZyBlcSAiLS1iYWNrdXAi
KSB7DQorCSRwY29uZmlneyJiYWNrdXAifSA9IDE7DQorICAgIH0gZWxzaWYo
JGFyZyA9fiAvXi0tLyB8fCAkYXJnID1+IC9eLS8pIHsNCisJZGllZiAoXygi
VW5rbm93biBhcmd1bWVudCBgJXMnLlxuIiksJGFyZyk7DQorICAgIH0gZWxz
ZSB7DQorCXB1c2ggQG5hbWVzLCAkYXJnOw0KKyAgICB9DQorfQ0KKw0KKyMg
cmVhZCBjb25maWdmaWxlIGFuZCBvdmVycmlkZSB3aXRoIGNvbW1hbmRsaW5l
IGFyZ3VtZW50cw0KK3JlYWRfY29uZmlnKCRkZWZhdWx0cyk7DQorZm9yZWFj
aChrZXlzKCVwY29uZmlnKSkgew0KKyAgICAkY29uZmlneyRffSA9ICRwY29u
ZmlneyRffTsNCit9DQorDQoraWYgKCRjb25maWd7InVzZV9sZGFwIn0gZXEg
J3llcycpDQorew0KKwkkZnVuY3Rpb25fc3VmZml4ID0gImxkYXAiOw0KKwly
ZXF1aXJlIERlYmlhbjo6QWRkdXNlckxEQVA7DQorfSBlbHNlIHsNCisJJGZ1
bmN0aW9uX3N1ZmZpeCA9ICJmaWxlIjsNCit9DQorDQorIyBUaGlzIGlzbid0
IGNvbmRpdGlvbmFsZWQgYmVjYXVzZSBBZGR1c2VyTERBUCBtaWdodCBuZWVk
IHRoZSBmaWxlIGZ1bmN0aW9ucw0KKyMgaWYgdGhlIGl0ZW0gdG8gcmVtb3Zl
IGlzIGluIHRoZSBmaWxlcyBpbnN0ZWFkIG9mIGluIExEQVANCit1c2UgRGVi
aWFuOjpBZGR1c2VyRmlsZTsNCisNCitpZiAoKCRjb25maWd7cmVtb3ZlX2hv
bWV9IHx8ICRjb25maWd7cmVtb3ZlX2FsbF9maWxlc30gfHwgJGNvbmZpZ3ti
YWNrdXB9KSAmJg0KKwlkZWZpbmVkKCROT19GSUxFX0ZJTkQpKSB7DQorICAg
IGRpZSBfKCJJbiBvcmRlciB0byB1c2UgdGhlIC0tcmVtb3ZlLWhvbWUsIC0t
cmVtb3ZlLWFsbC1maWxlcywgYW5kIC0tYmFja3VwIGZlYXR1cmVzLFxueW91
IG5lZWQgdG8gaW5zdGFsbCB0aGUgYHBlcmwtbW9kdWxlcycgcGFja2FnZS4g
VG8gYWNjb21wbGlzaCB0aGF0LCBydW5cbmFwdC1nZXQgaW5zdGFsbCBwZXJs
LW1vZHVsZXNcbiIpOw0KK30NCisNCitkaWUgIiQwOiAiLF8oIk9ubHkgcm9v
dCBtYXkgcmVtb3ZlIGEgdXNlciBvciBncm91cCBmcm9tIHRoZSBzeXN0ZW0u
XG4iKSBpZiAoJD4gIT0gMCk7DQorIA0KK2lmKEBuYW1lcyA9PSAwKSB7DQor
ICAgIGlmKCRhY3Rpb24gZXEgImRlbGdyb3VwIikgew0KKwlwcmludCBfKCJF
bnRlciBhIGdyb3VwbmFtZSB0byByZW1vdmU6ICIpOw0KKyAgICB9IGVsc2Ug
ew0KKwlwcmludCBfKCJFbnRlciBhIHVzZXJuYW1lIHRvIHJlbW92ZTogIik7
DQorICAgIH0NCisNCisgICAgY2hvbXAoJGFuc3dlcj08U1RESU4+KTsNCisg
ICAgcHVzaChAbmFtZXMsICRhbnN3ZXIpOw0KK30NCitkaWUgIiQwOiAiLF8o
IkkgbmVlZCBhIG5hbWUgdG8gcmVtb3ZlLlxuIikgaWYgKGxlbmd0aCgkbmFt
ZXNbMF0pID09IDApOw0KK2RpZSAiJDA6ICIsXygiTm8gbW9yZSB0aGFuIHR3
byBuYW1lcy5cbiIpIGlmIChAbmFtZXMgPiAyKTsNCisNCitpZihAbmFtZXMg
PT0gMikgeyAgICAgICMgbXVzdCBiZSBhZGR1c2VydG9ncm91cA0KKyAgICBk
aWUgIiQwOiAiLF8oIlNwZWNpZnkgb25seSBvbmUgbmFtZSBpbiB0aGlzIG1v
ZGUuXG4iKQ0KKyAgICAgICAgaWYgKCRhY3Rpb24gZXEgImRlbGdyb3VwIik7
DQorICAgICRhY3Rpb24gPSAiZGVsdXNlcmZyb21ncm91cCI7DQorICAgICR1
c2VyID0gc2hpZnQoQG5hbWVzKTsNCisgICAgJGdyb3VwID0gc2hpZnQoQG5h
bWVzKTsNCit9IGVsc2Ugew0KKyAgICBpZigkYWN0aW9uIGVxICJkZWxncm91
cCIpIHsNCisJJGdyb3VwID0gc2hpZnQoQG5hbWVzKTsNCisgICAgfSBlbHNl
IHsNCisJJHVzZXIgPSBzaGlmdChAbmFtZXMpOw0KKyAgICB9DQorfQ0KKw0K
K2lmKCR1c2VyKSB7DQorICAgICMoJHB3X25hbWUsJHB3X3Bhc3N3ZCwkcHdf
dWlkLCRwd19naWQsJHB3X3F1b3RhLCRwd19jb21tZW50LA0KKyAgICAjICRw
d19nZWNvcywkcHdfaG9tZWRpciwkcHdfc2hlbGwsJHB3X2V4cGlyZSkgPSBn
ZXRwd25hbSgkdXNlcik7DQorICAgIG15IEBwYXNzd2QgPSBnZXRwd25hbSgk
dXNlcik7DQorICAgICRwd191aWQgPSAkcGFzc3dkWzJdOw0KKyAgICAkcHdf
Z2lkID0gJHBhc3N3ZFszXTsNCisgICAgJHB3X2hvbWVkaXIgPSAkcGFzc3dk
WzddOw0KKyAgICANCisgICAgJG1haW5ncm91cCA9ICRwd19naWQgPyBnZXRn
cmdpZCgkcHdfZ2lkKSA6ICIiOw0KK30NCitpZigkZ3JvdXApIHsNCisgICAg
IygkZ3JfbmFtZSwkZ3JfcGFzc3dkLCRncl9naWQsJGdyX21lbWJlcnMpID0g
Z2V0Z3JuYW0oJGdyb3VwKTsNCisgICAgbXkgQGdyb3VwID0gZ2V0Z3JuYW0o
JGdyb3VwKTsNCisgICAgJGdyX2dpZCA9ICRncm91cFsyXTsNCit9DQorDQor
IyBhcmd1bWVudHMgYXJlIHByb2Nlc3NlZDoNCisjDQorIyAgJGFjdGlvbiA9
ICJkZWx1c2VyIg0KKyMgICAgICR1c2VyICAgICAgICAgIG5hbWUgb2YgdGhl
IHVzZXIgdG8gcmVtb3ZlDQorIw0KKyMgICRhY3Rpb24gPSAiZGVsZ3JvdXAi
DQorIyAgICAgJGdyb3VwICAgICAgICAgbmFtZSBvZiB0aGUgZ3JvdXAgdG8g
cmVtb3ZlDQorIw0KKyMgICRhY3Rpb24gPSAiZGVsdXNlcmZyb21ncm91cCIN
CisjICAgICAkdXNlciAgICAgICAgICB0aGUgdXNlciB0byBiZSByZW1vdmUN
CisjICAgICAkZ3JvdXAgICAgICAgICB0aGUgZ3JvdXAgdG8gcmVtb3ZlIGhp
bS9oZXIgZnJvbQ0KKw0KKw0KK2lmKCRhY3Rpb24gZXEgImRlbHVzZXIiKSB7
DQorICAgICZpbnZhbGlkYXRlX25zY2QoKTsNCisgICAgdW5sZXNzKGV4aXN0
X3VzZXIoJHVzZXIpKSB7DQorCWRpZWYgKF8oImAlcycgZG9lcyBub3QgZXhp
c3QuXG4iKSwkdXNlcik7DQorICAgIH0NCisgICAgDQorICAgIGlmKCRjb25m
aWd7InJlbW92ZV9ob21lIn0gfHwgJGNvbmZpZ3sicmVtb3ZlX2FsbF9maWxl
cyJ9KSB7DQorCXNfcHJpbnQoXygiTG9va2luZyBmb3IgZmlsZXMgdG8gYmFj
a3VwL3JlbW92ZS4uLlxuIikpOw0KKwlteShAZmlsZXMsQGRpcnMpOw0KKwlp
ZigkY29uZmlneyJyZW1vdmVfaG9tZSJ9ICYmICEgJGNvbmZpZ3sicmVtb3Zl
X2FsbF9maWxlcyJ9KSB7DQorCSAgc3ViIGhvbWVfbWF0Y2ggew0KKwkgICAg
cHVzaChAZmlsZXMsICRGaWxlOjpGaW5kOjpuYW1lKSANCisJICAgICAgaWYo
LWYgJEZpbGU6OkZpbmQ6Om5hbWUpOw0KKwkgICAgcHVzaChAZGlycywgJEZp
bGU6OkZpbmQ6Om5hbWUpDQorCSAgICAgIGlmKC1kICRGaWxlOjpGaW5kOjpu
YW1lKTsNCisJICB9DQorCSAgRmlsZTo6RmluZDo6ZmluZCh7d2FudGVkID0+
IFwmaG9tZV9tYXRjaCwgdW50YWludCA9PiAxLCBub19jaGRpciA9PiAxfSwg
JHB3X2hvbWVkaXIpOw0KKwkgIHB1c2goQGZpbGVzLCAiL3Zhci9tYWlsLyR1
c2VyIikNCisJICAgIGlmKC1lICIvdmFyL21haWwvJHVzZXIiKTsNCisJfSBl
bHNlIHsNCisJICBzdWIgZmluZF9tYXRjaCB7DQorCSAgICBubyB3YXJuaW5n
czsNCisJICAgIG15ICgkZGV2LCRpbm8sJG1vZGUsJG5saW5rLCR1aWQsJGdp
ZCk7DQorCSAgICAoKCRkZXYsJGlubywkbW9kZSwkbmxpbmssJHVpZCwkZ2lk
KSA9IGxzdGF0KCRfKSkgJiYNCisJICAgICAgKCR1aWQgPT0gJHB3X3VpZCkg
JiYNCisJCSgNCisJCSAoJEZpbGU6OkZpbmQ6Om5hbWUgPX4gL15cL3Byb2Nc
Ly8gJiYgKCRGaWxlOjpGaW5kOjpwcnVuZSA9IDEpKSB8fA0KKwkJICgtZiAk
RmlsZTo6RmluZDo6bmFtZSAmJiBwdXNoKEBmaWxlcywgJEZpbGU6OkZpbmQ6
Om5hbWUpKSB8fA0KKwkJICgtZCAkRmlsZTo6RmluZDo6bmFtZSAmJiBwdXNo
KEBkaXJzLCAkRmlsZTo6RmluZDo6bmFtZSkpDQorCQkpOw0KKwkgIH0NCisJ
ICBGaWxlOjpGaW5kOjpmaW5kKHt3YW50ZWQgPT4gXCZmaW5kX21hdGNoLCB1
bnRhaW50ID0+IDEsIG5vX2NoZGlyID0+IDF9LCAnLycpOw0KKwl9DQorDQor
CWlmKCRjb25maWd7ImJhY2t1cCJ9KSB7DQorCSAgICBzX3ByaW50KF8oIkJh
Y2t1cGluZyBmaWxlcyB0byBiZSByZW1vdmVkLi4uXG4iKSk7DQorCSAgICBz
eXN0ZW1jYWxsKCIvYmluL3RhciIsICItY2YiLCAiJHVzZXIudGFyIiwgIi0t
IiwgQGZpbGVzKTsNCisJICAgIGlmKC1lICIvdXNyL2Jpbi9iemlwMiIpIHsN
CisJICAgIAlzeXN0ZW1jYWxsKCIvdXNyL2Jpbi9iemlwMiIsICIkdXNlci50
YXIiKTsNCisJICAgIH0gZWxzaWYoLWUgIi9iaW4vZ3ppcCIpIHsNCisJICAg
IAlzeXN0ZW1jYWxsKCIvYmluL2d6aXAiLCAiJHVzZXIudGFyIik7DQorCSAg
ICB9DQorCX0NCisNCisJaWYoQGZpbGVzIHx8IEBkaXJzKSB7DQorCSAgICBz
X3ByaW50KF8oIlJlbW92aW5nIGZpbGVzLi4uXG4iKSk7DQorCSAgICB1bmxp
bmsoQGZpbGVzKSBpZihAZmlsZXMpOw0KKwkgICAgZm9yZWFjaChyZXZlcnNl
KHNvcnQoQGRpcnMpKSkgew0KKwkJcm1kaXIoJF8pOw0KKwkgICAgfQ0KKwl9
DQorICAgIH0NCisNCisgICAgc19wcmludGYoXygiUmVtb3ZpbmcgdXNlciAl
cy4uLlxuIiksJHVzZXIpOw0KKw0KKyAgICAkZnVuYyA9ICJkZWx1c2VyXyRm
dW5jdGlvbl9zdWZmaXgiOw0KKyAgICAmJGZ1bmMoJHVzZXIpOw0KKw0KKyAg
ICAmaW52YWxpZGF0ZV9uc2NkKCk7DQorDQorICAgIHN5c3RlbWNhbGwoJy91
c3IvbG9jYWwvc2Jpbi9kZWx1c2VyLmxvY2FsJywgJHVzZXIsICRwd191aWQs
DQorICAgICAgICAgICAgICAgICRwd19naWQsICRwd19ob21lZGlyKSBpZiAo
LXggIi91c3IvbG9jYWwvc2Jpbi9kZWx1c2VyLmxvY2FsIik7DQorDQorICAg
IHNfcHJpbnQoXygiZG9uZS5cbiIpKTsNCit9IGVsc2lmKCRhY3Rpb24gZXEg
ImRlbGdyb3VwIikgew0KKyAgICAmaW52YWxpZGF0ZV9uc2NkKCk7DQorICAg
IHVubGVzcyhleGlzdF9ncm91cCgkZ3JvdXApKSB7DQorCWRpZWYgKF8oImAl
cycgZG9lcyBub3QgZXhpc3QuXG4iKSwkZ3JvdXApOw0KKyAgICB9DQorICAg
ICMgVGhpcyBuZWVkIHRvIGJlIGZpeGVkDQorICAgIGlmKHN5c3RlbSgiZ3Jl
cCIsICItcSIsICJeLio6Lio6Lio6JGdyX2dpZDouKjouKjouKlwkIiwgIi9l
dGMvcGFzc3dkIikgPT0gMCkgew0KKwlkaWVmIChfKCJUaGVyZSBhcmUgdXNl
cnMgaGF2aW5nIGAlcycgYXMgcHJpbWFyeSBncm91cCFcbiIpLCRncm91cCk7
DQorICAgIH0NCisNCisgICAgc19wcmludGYoXygiUmVtb3ZpbmcgZ3JvdXAg
JXMuLi5cbiIpLCRncm91cCk7DQorICAgIA0KKyAgICAkZnVuYyA9ICJkZWxn
cm91cF8kZnVuY3Rpb25fc3VmZml4IjsNCisgICAgJiRmdW5jKCRncm91cCk7
DQorDQorICAgICZpbnZhbGlkYXRlX25zY2QoKTsNCisgICAgc19wcmludChf
KCJkb25lLlxuIikpOw0KK30NCitlbHNpZigkYWN0aW9uIGVxICJkZWx1c2Vy
ZnJvbWdyb3VwIikNCit7DQorICAgICZpbnZhbGlkYXRlX25zY2QoKTsNCisg
ICAgdW5sZXNzKGV4aXN0X3VzZXIoJHVzZXIpKSB7DQorCWRpZWYgKF8oImAl
cycgZG9lcyBub3QgZXhpc3QuXG4iKSwkdXNlcik7DQorICAgIH0NCisgICAg
dW5sZXNzKGV4aXN0X2dyb3VwKCRncm91cCkpIHsNCisJZGllZiAoXygiYCVz
JyBkb2VzIG5vdCBleGlzdC5cbiIpLCRncm91cCk7DQorICAgIH0NCisgICAg
aWYoJG1haW5ncm91cCBlcSAkZ3JvdXApIHsNCisJZGllICIkMDogIixfKCJZ
b3UgbWF5IG5vdCByZW1vdmUgdGhlIHVzZXIgZnJvbSBoaXMvaGVyIHByaW1h
cnkgZ3JvdXAuXG4iKTsNCisgICAgfQ0KKw0KKyAgICBzX3ByaW50ZihfKCJS
ZW1vdmluZyB1c2VyICVzIGZyb20gZ3JvdXAgJXMuLi5cbiIpLCR1c2VyLCRn
cm91cCk7DQorICAgIA0KKyAgICAkZnVuYyA9ICJkZWx1c2VyZnJvbWdyb3Vw
XyRmdW5jdGlvbl9zdWZmaXgiOw0KKyAgICAmJGZ1bmMoJHVzZXIsICRncm91
cCk7DQorICAgIA0KKyAgICAmaW52YWxpZGF0ZV9uc2NkKCk7DQorICAgIHNf
cHJpbnQoXygiZG9uZS5cbiIpKTsNCit9DQorDQorDQorIyMjIyMjDQorDQor
c3ViIHZlcnNpb24gew0KKyAgICBwcmludGYoImRlbHVzZXI6ICVzICR2ZXJz
aW9uXG5cbiIsXygicmVtb3ZpbmcgdXNlciBhbmQgZ3JvdXBzIGZyb20gdGhl
IHN5c3RlbS4gVmVyc2lvbjoiKSk7DQorDQorICAgIHByaW50KCJDb3B5cmln
aHQgKEMpIDIwMDAgUm9sYW5kIEJhdWVyc2NobWlkdCA8cm9sYW5kXEBjb3B5
bGVmdC5kZT5cblxuIik7DQorDQorICAgIHByaW50KCJkZWx1c2VyIGlzIGJh
c2VkIG9uIGFkZHVzZXIgYnkgR3V5IE1hb3IgPG1hb3JcQGRlYmlhbi5vcmc+
LCBJYW4gTXVyZG9ja1xuIiwNCisJICAiPGltdXJkb2NrXEBnbnUuYWkubWl0
LmVkdT4gYW5kIFRlZCBIYWplayA8dGVkaGFqZWtcQGJvb21ib3gubWljcm8u
dW1uLmVkdT5cbiIpOw0KKw0KKyAgICBwcmludCgiXG5UaGlzIHByb2dyYW0g
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yIG1vZGlmeQ0KK2l0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQordGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0DQoreW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLg0KKw0KK1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQNCitXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mDQorTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUNCitHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlLCAvdXNyL3NoYXJlL2NvbW1vbi1saWNlbnNlcy9HUEwsIGZv
ciBtb3JlIGRldGFpbHMuXG4iKTsNCit9DQorDQorc3ViIHVzYWdlIHsNCisg
ICAgcHJpbnRmKCJkZWx1c2VyOiAlcyAkdmVyc2lvblxuXG4iLF8oInJlbW92
aW5nIHVzZXIgYW5kIGdyb3VwcyBmcm9tIHRoZSBzeXN0ZW0uIFZlcnNpb246
IikpOw0KKw0KKyAgICBwcmludCgiZGVsdXNlciB1c2VyDQorICByZW1vdmUg
YSBub3JtYWwgdXNlciBmcm9tIHRoZSBzeXN0ZW0NCisgIGV4YW1wbGU6IGRl
bHVzZXIgbWlrZQ0KKw0KKyAgLS1yZW1vdmUtaG9tZSAgICAgICAgICAgICBy
ZW1vdmUgdGhlIHVzZXJzIGhvbWUgZGlyZWN0b3J5IGFuZCBtYWlsIHNwb29s
DQorICAtLXJlbW92ZS1hbGwtZmlsZXMgICAgICAgIHJlbW92ZSBhbGwgZmls
ZXMgb3duZWQgYnkgdXNlcg0KKyAgLS1iYWNrdXAgICAgICAgICAgICAgICAg
ICBiYWNrdXAgZmlsZXMgYmVmb3JlIHJlbW92aW5nDQorDQorZGVsZ3JvdXAg
Z3JvdXANCitkZWx1c2VyIC0tZ3JvdXAgZ3JvdXANCisgIHJlbW92ZSBhIHN5
c3RlbSBncm91cCBmcm9tIHRoZSBzeXN0ZW0NCisgIGV4YW1wbGU6IGRlbHVz
ZXIgLS1ncm91cCBzdHVkZW50cw0KKw0KK2RlbHVzZXIgdXNlciBncm91cA0K
KyAgcmVtb3ZlIHRoZSB1c2VyIGZyb20gYSBncm91cA0KKyAgZXhhbXBsZTog
ZGVsdXNlciBtaWtlIHN0dWRlbnRzDQorDQorZ2VuZXJhbCBvcHRpb25zOg0K
KyAgLS1xdWlldCB8IC1xICAgICAgZG9uJ3QgZ2l2ZSBwcm9jZXNzIGluZm9y
bWF0aW9uIHRvIHN0ZG91dA0KKyAgLS1oZWxwIHwgLWggICAgICAgdXNhZ2Ug
bWVzc2FnZQ0KKyAgLS12ZXJzaW9uIHwgLXYgICAgdmVyc2lvbiBudW1iZXIg
YW5kIGNvcHlyaWdodA0KKyAgLS1jb25mIHwgLWMgRklMRSAgdXNlIEZJTEUg
aW5zdGVhZCBvZiAkZGVmYXVsdHNcblxuIik7DQorDQorICAgIHByaW50Zihf
KCJHbG9iYWwgY29uZmlndXJhdGlvbiBpcyBpbiB0aGUgZmlsZSAlcy5cbiIp
LCAkZGVmYXVsdHMpOyAgICANCit9DQorDQorc3ViIGV4aXN0X3VzZXIgew0K
KyAgICBteSAkZXhpc3RfdXNlciA9IHNoaWZ0Ow0KKyAgICByZXR1cm4oZGVm
aW5lZCBnZXRwd25hbSgkZXhpc3RfdXNlcikpOw0KK30NCisNCitzdWIgZXhp
c3RfZ3JvdXAgew0KKyAgICBteSAkZXhpc3RfZ3JvdXAgPSBzaGlmdDsNCisg
ICAgcmV0dXJuKGRlZmluZWQgZ2V0Z3JuYW0oJGV4aXN0X2dyb3VwKSk7DQor
fQ0KKw0KK3N1YiBzeXN0ZW1jYWxsIHsNCisgICAgbXkgJGMgPSBqb2luKCcg
JywgQF8pOw0KKyAgICAjcHJpbnQgIiRjXG4iIGlmICRkZWJ1Z2dpbmc7DQor
ICAgIGlmIChzeXN0ZW0oQF8pKSB7DQorICAgICAgICBkaWUoIiQwOiBgJGMn
IHJldHVybmVkIGVycm9yIGNvZGUgIiAuICgkPz4+OCkgLiAiLiAgQWJvcnRp
bmcuXG4iKQ0KKwkgIGlmICgkPz4+OCk7DQorCWRpZSgiJDA6IGAkYycgZXhp
dGVkIGZyb20gc2lnbmFsICIgLiAoJD8mMjU1KSAuICIuICBBYm9ydGluZy5c
biIpOw0KKyAgICB9DQorfQ0KKw0KZGlmZiAtdXJOIGFkZHVzZXItMy41MC9k
ZWJpYW4vdG1wL3Vzci9zYmluL2RlbHVzZXIgYWRkdXNlci0zLjUwLm1wYWxt
ZXIvZGViaWFuL3RtcC91c3Ivc2Jpbi9kZWx1c2VyDQotLS0gYWRkdXNlci0z
LjUwL2RlYmlhbi90bXAvdXNyL3NiaW4vZGVsdXNlcglUaHUgSmFuICAxIDEw
OjAwOjAwIDE5NzANCisrKyBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4v
dG1wL3Vzci9zYmluL2RlbHVzZXIJV2VkIE1heSAgNyAxNzowMTo0MSAyMDAz
DQpAQCAtMCwwICsxLDQxNSBAQA0KKyMhL3Vzci9iaW4vcGVybA0KKw0KKyMg
ZGVsdXNlciAtLSBhIHV0aWxpdHkgdG8gcmVtb3ZlIHVzZXJzIGZyb20gdGhl
IHN5c3RlbQ0KKyMgZGVsZ3JvdXAgLS0gYSB1dGlsdHkgdG8gcmVtb3ZlIGdy
b3VwcyBmcm9tIHRoZSBzeXN0ZW0NCiskdmVyc2lvbiA9IDMuNTAuMjsNCisN
CisjIENvcHlyaWdodCAoQykgMjAwMCBSb2xhbmQgQmF1ZXJzY2htaWR0IDxy
YkBkZWJpYW4ub3JnPg0KKyMgQmFzZWQgb24gJ2FkZHVzZXInIGFzIHBhdHRl
cm4gYnkNCisjICAgICBHdXkgTWFvciA8bWFvckBkZWJpYW4ub3JnPg0KKyMg
ICAgIFRlZCBIYWplayA8dGVkaGFqZWtAYm9vbWJveC5taWNyby51bW4uZWR1
Pg0KKyMgICAgIElhbiBBLiBNdXJkb2NrIDxpbXVyZG9ja0BnbnUuYWkubWl0
LmVkdT4NCisNCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQorIyBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IN
CisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQorIw0K
KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsDQorIyBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0K
KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyMgR05VIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCisjDQorIyBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQ0KKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCisjIEZvdW5kYXRpb24sIElu
Yy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAw
MjExMS0xMzA3ICBVU0ENCisNCisjIHRoZSBwcm9ncmFtIGNhbiBiZSBjYWxs
ZWQgYXM6DQorIw0KKyMgIGRlbHVzZXIgdXNlcg0KKyMgICAgIHJlbW92ZSBh
IG5vcm1hbCB1c2VyIGZyb20gdGhlIHN5c3RlbQ0KKyMgICAgIGV4YW1wbGU6
IGRlbHVzZXIgbWlrZQ0KKyMgICAgICRhY3Rpb24gPSAiZGVsdXNlciINCisj
DQorIyAgICAgLS1yZW1vdmUtaG9tZSAgICAgICAgICAgICByZW1vdmUgdGhl
IHVzZXJzIGhvbWUgZGlyZWN0b3J5IGFuZCBtYWlsIHNwb29sDQorIyAgICAg
LS1yZW1vdmUtYWxsLWZpbGVzICAgICAgICByZW1vdmUgYWxsIGZpbGVzIG93
bmVkIGJ5IHVzZXINCisjICAgICAtLWJhY2t1cCAgICAgICAgICAgICAgICAg
IGJhY2t1cCBmaWxlcyBiZWZvcmUgcmVtb3ZpbmcNCisjDQorIyAgZGVsZ3Jv
dXAgZ3JvdXANCisjICBkZWx1c2VyIC0tZ3JvdXAgZ3JvdXANCisjICAgICBy
ZW1vdmUgYSBzeXN0ZW0gZ3JvdXAgZnJvbSB0aGUgc3lzdGVtDQorIyAgICAg
ZXhhbXBsZTogZGVsdXNlciAtLWdyb3VwIHN0dWRlbnRzDQorIyAgICAgJGFj
dGlvbiA9ICJkZWxncm91cCINCisjDQorIyAgZGVsdXNlciB1c2VyIGdyb3Vw
DQorIyAgICAgcmVtb3ZlIHRoZSB1c2VyIGZyb20gYSBncm91cA0KKyMgICAg
IGV4YW1wbGU6IGRlbHVzZXIgbWlrZSBzdHVkZW50cw0KKyMgICAgICRhY3Rp
b24gPSAiZGVsdXNlcmZyb21ncm91cCINCisjDQorIyAgZ2VuZXJhbCBvcHRp
b25zOg0KKyMNCisjICAgICAtLXF1aWV0IHwgLXEgICAgICBkb24ndCBnaXZl
IHByb2Nlc3MgaW5mb3JtYXRpb24gdG8gc3Rkb3V0DQorIyAgICAgLS1oZWxw
IHwgLWggICAgICAgdXNhZ2UgbWVzc2FnZQ0KKyMgICAgIC0tdmVyc2lvbiB8
IC12ICAgIHZlcnNpb24gbnVtYmVyIGFuZCBjb3B5cmlnaHQNCisjICAgICAt
LWNvbmYgfCAtYyBGSUxFICB1c2UgRklMRSBpbnN0ZWFkIG9mIC9ldGMvYWRk
dXNlci5jb25mDQorDQorJEVOVnsiUEFUSCJ9ID0gIi9zYmluOi9iaW46L3Vz
ci9zYmluOi91c3IvYmluIjsNCisNCit1c2Ugd2FybmluZ3M7DQorDQorQkVH
SU4gew0KKyAgICBldmFsICd1c2UgRmlsZTo6RmluZCc7DQorICAgIGlmICgk
QCkgew0KKyAgICAgICAgJE5PX0ZJTEVfRklORCA9IDE7DQorICAgIH0NCit9
DQorDQordXNlIERlYmlhbjo6QWRkdXNlckNvbW1vbjsNCisNCitCRUdJTiB7
DQorICAgIGV2YWwgJ3VzZSBMb2NhbGU6OmdldHRleHQnOw0KKyAgICBpZiAo
JEApIHsNCisgICAgICAgICpnZXR0ZXh0ID0gc3ViIHsgc2hpZnQgfTsNCisg
ICAgICAgICp0ZXh0ZG9tYWluID0gc3ViIHsgIiIgfTsNCisgICAgICAgICpM
Q19NRVNTQUdFUyA9IHN1YiB7IDUgfTsNCisgICAgfQ0KKyAgICBldmFsIHsN
CisgICAgICAgIHJlcXVpcmUgUE9TSVg7DQorICAgICAgICBpbXBvcnQgUE9T
SVggcXcoc2V0bG9jYWxlKTsNCisgICAgfTsNCisgICAgaWYgKCRAKSB7DQor
ICAgICAgICAqc2V0bG9jYWxlID0gc3ViIHsgMSB9Ow0KKyAgICB9DQorfQ0K
Kw0KK3NldGxvY2FsZShMQ19NRVNTQUdFUywgIiIpOw0KK3RleHRkb21haW4o
ImFkZHVzZXIiKTsNCisNCiskdmVyYm9zZSA9IDE7DQorJGRlZmF1bHRzID0g
Ii9ldGMvYWRkdXNlci5jb25mIjsNCisNCiskY29uZmlneyJkc2hlbGwifSA9
ICIvYmluL2Jhc2giOw0KKyRjb25maWd7ImZpcnN0X3N5c3RlbV91aWQifSA9
IDEwMDsNCiskY29uZmlneyJsYXN0X3N5c3RlbV91aWQifSA9IDk5OTsNCisk
Y29uZmlneyJmaXJzdF91aWQifSA9IDEwMDA7DQorJGNvbmZpZ3sibGFzdF91
aWQifSA9IDI5OTk5Ow0KKyRjb25maWd7ImZpcnN0X3N5c3RlbV9naWQifSA9
IDEwMDsNCiskY29uZmlneyJsYXN0X3N5c3RlbV9naWQifSA9IDk5OTsNCisk
Y29uZmlneyJmaXJzdF9naWQifSA9IDEwMDA7DQorJGNvbmZpZ3sibGFzdF9n
aWQifSA9IDI5OTk5Ow0KKyRjb25maWd7ImRob21lIn0gPSAiL2hvbWUiOw0K
KyRjb25maWd7InNrZWwifSA9ICIvZXRjL3NrZWwiOw0KKyRjb25maWd7InVz
ZXJncm91cHMifSA9ICJ5ZXMiOw0KKyRjb25maWd7InVzZXJzX2dpZCJ9ID0g
IjEwMCI7DQorJGNvbmZpZ3siZ3JvdXBob21lcyJ9ID0gIm5vIjsNCiskY29u
ZmlneyJsZXR0ZXJob21lcyJ9ID0gIm5vIjsNCiskY29uZmlneyJxdW90YXVz
ZXIifSA9ICIiOw0KKyRjb25maWd7ImRpcl9tb2RlIn0gPSAiMDc1NSI7DQor
JGNvbmZpZ3sic2V0Z2lkX2hvbWUifSA9ICJubyI7DQorJGNvbmZpZ3sicmVt
b3ZlX2hvbWUifSA9IDA7DQorJGNvbmZpZ3sicmVtb3ZlX2FsbF9maWxlcyJ9
ID0gMDsNCiskY29uZmlneyJiYWNrdXAifSA9IDA7DQorJGNvbmZpZ3sidXNl
X2xkYXAifSA9ICJubyI7DQorJGNvbmZpZ3sidXNlX2xkYXBfc3lzdGVtIn0g
PSAibm8iOw0KKyRjb25maWd7ImxkYXBfc2VydmVyIn0gPSAiIjsNCiskY29u
ZmlneyJsZGFwX3BvcnQifSA9ICIiOw0KKyRjb25maWd7ImxkYXBfYmluZGRu
In0gPSAiIjsNCiskY29uZmlneyJsZGFwX2JpbmRwdyJ9ID0gIiI7DQorJGNv
bmZpZ3sibGRhcF9iYXNlZG4ifSA9ICIiOw0KKyRjb25maWd7ImxkYXBfcmRu
X2dyb3VwcyJ9ID0gIiI7DQorJGNvbmZpZ3sibGRhcF9yZG5fdXNlcnMifSA9
ICIiOw0KKw0KKw0KKyRhY3Rpb24gPSAkMCA9fiAvZGVsZ3JvdXAkLyA/ICJk
ZWxncm91cCIgOiAiZGVsdXNlciI7DQorDQord2hpbGUoJGFyZyA9IHNoaWZ0
KEBBUkdWKSkNCit7DQorICAgIGRpZSAiJDA6ICIsXygiTm8gb3B0aW9ucyBh
bGxvd2VkIGFmdGVyIG5hbWVzLlxuIikNCisJaWYgKCRuYW1lc1swXSAmJiAk
YXJnID1+IC9eLS0vKTsNCisNCisgICAgaWYoJGFyZyBlcSAiLS1xdWlldCIg
fHwgJGFyZyBlcSAiLXEiKSB7DQorCSR2ZXJib3NlID0gMDsNCisgICAgfSBl
bHNpZigkYXJnIGVxICItLWRlYnVnIikgew0KKyAgICAgICAgJHZlcmJvc2Ug
PSAyOw0KKyAgICB9IGVsc2lmKCRhcmcgZXEgIi0tdmVyc2lvbiIgfHwgJGFy
ZyBlcSAiLXYiKSB7DQorCXZlcnNpb24oKTsNCisJZXhpdCAwOw0KKyAgICB9
IGVsc2lmKCRhcmcgZXEgIi0taGVscCIgfHwgJGFyZyBlcSAiLWgiKSB7DQor
CXVzYWdlKCk7DQorCWV4aXQgMDsNCisgICAgfSBlbHNpZigkYXJnIGVxICIt
LWdyb3VwIiB8fCAkYXJnIGVxICItZyIpIHsNCisJJGFjdGlvbiA9ICJkZWxn
cm91cCI7DQorICAgIH0gZWxzaWYoJGFyZyBlcSAiLS1jb25mIiB8fCAkYXJn
IGVxICItYyIpIHsNCisgICAgICAgIGRpZSAiJDA6ICIsXygiLS1jb25mIHJl
cXVpcmVzIGFuIGFyZ3VtZW50LlxuIikNCisgICAgICAgICAgICBpZiAoISgk
ZGVmYXVsdHMgPSBzaGlmdChAQVJHVikpKTsNCisgICAgICAgIGRpZWYgKF8o
ImAlcycgZG9lc24ndCBleGlzdC5cbiIpLCRkZWZhdWx0cykNCisgICAgICAg
ICAgICBpZiAoISAtZiAkZGVmYXVsdHMpOw0KKyAgICB9IGVsc2lmKCRhcmcg
ZXEgIi0tcmVtb3ZlLWhvbWUiKSB7DQorCSRwY29uZmlneyJyZW1vdmVfaG9t
ZSJ9ID0gMTsNCisgICAgfSBlbHNpZigkYXJnIGVxICItLXJlbW92ZS1hbGwt
ZmlsZXMiKSB7DQorCSRwY29uZmlneyJyZW1vdmVfYWxsX2ZpbGVzIn0gPSAx
Ow0KKyAgICB9IGVsc2lmKCRhcmcgZXEgIi0tYmFja3VwIikgew0KKwkkcGNv
bmZpZ3siYmFja3VwIn0gPSAxOw0KKyAgICB9IGVsc2lmKCRhcmcgPX4gL14t
LS8gfHwgJGFyZyA9fiAvXi0vKSB7DQorCWRpZWYgKF8oIlVua25vd24gYXJn
dW1lbnQgYCVzJy5cbiIpLCRhcmcpOw0KKyAgICB9IGVsc2Ugew0KKwlwdXNo
IEBuYW1lcywgJGFyZzsNCisgICAgfQ0KK30NCisNCisjIHJlYWQgY29uZmln
ZmlsZSBhbmQgb3ZlcnJpZGUgd2l0aCBjb21tYW5kbGluZSBhcmd1bWVudHMN
CityZWFkX2NvbmZpZygkZGVmYXVsdHMpOw0KK2ZvcmVhY2goa2V5cyglcGNv
bmZpZykpIHsNCisgICAgJGNvbmZpZ3skX30gPSAkcGNvbmZpZ3skX307DQor
fQ0KKw0KK2lmICgkY29uZmlneyJ1c2VfbGRhcCJ9IGVxICd5ZXMnKQ0KK3sN
CisJJGZ1bmN0aW9uX3N1ZmZpeCA9ICJsZGFwIjsNCisJcmVxdWlyZSBEZWJp
YW46OkFkZHVzZXJMREFQOw0KK30gZWxzZSB7DQorCSRmdW5jdGlvbl9zdWZm
aXggPSAiZmlsZSI7DQorfQ0KKw0KKyMgVGhpcyBpc24ndCBjb25kaXRpb25h
bGVkIGJlY2F1c2UgQWRkdXNlckxEQVAgbWlnaHQgbmVlZCB0aGUgZmlsZSBm
dW5jdGlvbnMNCisjIGlmIHRoZSBpdGVtIHRvIHJlbW92ZSBpcyBpbiB0aGUg
ZmlsZXMgaW5zdGVhZCBvZiBpbiBMREFQDQordXNlIERlYmlhbjo6QWRkdXNl
ckZpbGU7DQorDQoraWYgKCgkY29uZmlne3JlbW92ZV9ob21lfSB8fCAkY29u
Zmlne3JlbW92ZV9hbGxfZmlsZXN9IHx8ICRjb25maWd7YmFja3VwfSkgJiYN
CisJZGVmaW5lZCgkTk9fRklMRV9GSU5EKSkgew0KKyAgICBkaWUgXygiSW4g
b3JkZXIgdG8gdXNlIHRoZSAtLXJlbW92ZS1ob21lLCAtLXJlbW92ZS1hbGwt
ZmlsZXMsIGFuZCAtLWJhY2t1cCBmZWF0dXJlcyxcbnlvdSBuZWVkIHRvIGlu
c3RhbGwgdGhlIGBwZXJsLW1vZHVsZXMnIHBhY2thZ2UuIFRvIGFjY29tcGxp
c2ggdGhhdCwgcnVuXG5hcHQtZ2V0IGluc3RhbGwgcGVybC1tb2R1bGVzXG4i
KTsNCit9DQorDQorZGllICIkMDogIixfKCJPbmx5IHJvb3QgbWF5IHJlbW92
ZSBhIHVzZXIgb3IgZ3JvdXAgZnJvbSB0aGUgc3lzdGVtLlxuIikgaWYgKCQ+
ICE9IDApOw0KKyANCitpZihAbmFtZXMgPT0gMCkgew0KKyAgICBpZigkYWN0
aW9uIGVxICJkZWxncm91cCIpIHsNCisJcHJpbnQgXygiRW50ZXIgYSBncm91
cG5hbWUgdG8gcmVtb3ZlOiAiKTsNCisgICAgfSBlbHNlIHsNCisJcHJpbnQg
XygiRW50ZXIgYSB1c2VybmFtZSB0byByZW1vdmU6ICIpOw0KKyAgICB9DQor
DQorICAgIGNob21wKCRhbnN3ZXI9PFNURElOPik7DQorICAgIHB1c2goQG5h
bWVzLCAkYW5zd2VyKTsNCit9DQorZGllICIkMDogIixfKCJJIG5lZWQgYSBu
YW1lIHRvIHJlbW92ZS5cbiIpIGlmIChsZW5ndGgoJG5hbWVzWzBdKSA9PSAw
KTsNCitkaWUgIiQwOiAiLF8oIk5vIG1vcmUgdGhhbiB0d28gbmFtZXMuXG4i
KSBpZiAoQG5hbWVzID4gMik7DQorDQoraWYoQG5hbWVzID09IDIpIHsgICAg
ICAjIG11c3QgYmUgYWRkdXNlcnRvZ3JvdXANCisgICAgZGllICIkMDogIixf
KCJTcGVjaWZ5IG9ubHkgb25lIG5hbWUgaW4gdGhpcyBtb2RlLlxuIikNCisg
ICAgICAgIGlmICgkYWN0aW9uIGVxICJkZWxncm91cCIpOw0KKyAgICAkYWN0
aW9uID0gImRlbHVzZXJmcm9tZ3JvdXAiOw0KKyAgICAkdXNlciA9IHNoaWZ0
KEBuYW1lcyk7DQorICAgICRncm91cCA9IHNoaWZ0KEBuYW1lcyk7DQorfSBl
bHNlIHsNCisgICAgaWYoJGFjdGlvbiBlcSAiZGVsZ3JvdXAiKSB7DQorCSRn
cm91cCA9IHNoaWZ0KEBuYW1lcyk7DQorICAgIH0gZWxzZSB7DQorCSR1c2Vy
ID0gc2hpZnQoQG5hbWVzKTsNCisgICAgfQ0KK30NCisNCitpZigkdXNlcikg
ew0KKyAgICAjKCRwd19uYW1lLCRwd19wYXNzd2QsJHB3X3VpZCwkcHdfZ2lk
LCRwd19xdW90YSwkcHdfY29tbWVudCwNCisgICAgIyAkcHdfZ2Vjb3MsJHB3
X2hvbWVkaXIsJHB3X3NoZWxsLCRwd19leHBpcmUpID0gZ2V0cHduYW0oJHVz
ZXIpOw0KKyAgICBteSBAcGFzc3dkID0gZ2V0cHduYW0oJHVzZXIpOw0KKyAg
ICAkcHdfdWlkID0gJHBhc3N3ZFsyXTsNCisgICAgJHB3X2dpZCA9ICRwYXNz
d2RbM107DQorICAgICRwd19ob21lZGlyID0gJHBhc3N3ZFs3XTsNCisgICAg
DQorICAgICRtYWluZ3JvdXAgPSAkcHdfZ2lkID8gZ2V0Z3JnaWQoJHB3X2dp
ZCkgOiAiIjsNCit9DQoraWYoJGdyb3VwKSB7DQorICAgICMoJGdyX25hbWUs
JGdyX3Bhc3N3ZCwkZ3JfZ2lkLCRncl9tZW1iZXJzKSA9IGdldGdybmFtKCRn
cm91cCk7DQorICAgIG15IEBncm91cCA9IGdldGdybmFtKCRncm91cCk7DQor
ICAgICRncl9naWQgPSAkZ3JvdXBbMl07DQorfQ0KKw0KKyMgYXJndW1lbnRz
IGFyZSBwcm9jZXNzZWQ6DQorIw0KKyMgICRhY3Rpb24gPSAiZGVsdXNlciIN
CisjICAgICAkdXNlciAgICAgICAgICBuYW1lIG9mIHRoZSB1c2VyIHRvIHJl
bW92ZQ0KKyMNCisjICAkYWN0aW9uID0gImRlbGdyb3VwIg0KKyMgICAgICRn
cm91cCAgICAgICAgIG5hbWUgb2YgdGhlIGdyb3VwIHRvIHJlbW92ZQ0KKyMN
CisjICAkYWN0aW9uID0gImRlbHVzZXJmcm9tZ3JvdXAiDQorIyAgICAgJHVz
ZXIgICAgICAgICAgdGhlIHVzZXIgdG8gYmUgcmVtb3ZlDQorIyAgICAgJGdy
b3VwICAgICAgICAgdGhlIGdyb3VwIHRvIHJlbW92ZSBoaW0vaGVyIGZyb20N
CisNCisNCitpZigkYWN0aW9uIGVxICJkZWx1c2VyIikgew0KKyAgICAmaW52
YWxpZGF0ZV9uc2NkKCk7DQorICAgIHVubGVzcyhleGlzdF91c2VyKCR1c2Vy
KSkgew0KKwlkaWVmIChfKCJgJXMnIGRvZXMgbm90IGV4aXN0LlxuIiksJHVz
ZXIpOw0KKyAgICB9DQorICAgIA0KKyAgICBpZigkY29uZmlneyJyZW1vdmVf
aG9tZSJ9IHx8ICRjb25maWd7InJlbW92ZV9hbGxfZmlsZXMifSkgew0KKwlz
X3ByaW50KF8oIkxvb2tpbmcgZm9yIGZpbGVzIHRvIGJhY2t1cC9yZW1vdmUu
Li5cbiIpKTsNCisJbXkoQGZpbGVzLEBkaXJzKTsNCisJaWYoJGNvbmZpZ3si
cmVtb3ZlX2hvbWUifSAmJiAhICRjb25maWd7InJlbW92ZV9hbGxfZmlsZXMi
fSkgew0KKwkgIHN1YiBob21lX21hdGNoIHsNCisJICAgIHB1c2goQGZpbGVz
LCAkRmlsZTo6RmluZDo6bmFtZSkgDQorCSAgICAgIGlmKC1mICRGaWxlOjpG
aW5kOjpuYW1lKTsNCisJICAgIHB1c2goQGRpcnMsICRGaWxlOjpGaW5kOjpu
YW1lKQ0KKwkgICAgICBpZigtZCAkRmlsZTo6RmluZDo6bmFtZSk7DQorCSAg
fQ0KKwkgIEZpbGU6OkZpbmQ6OmZpbmQoe3dhbnRlZCA9PiBcJmhvbWVfbWF0
Y2gsIHVudGFpbnQgPT4gMSwgbm9fY2hkaXIgPT4gMX0sICRwd19ob21lZGly
KTsNCisJICBwdXNoKEBmaWxlcywgIi92YXIvbWFpbC8kdXNlciIpDQorCSAg
ICBpZigtZSAiL3Zhci9tYWlsLyR1c2VyIik7DQorCX0gZWxzZSB7DQorCSAg
c3ViIGZpbmRfbWF0Y2ggew0KKwkgICAgbm8gd2FybmluZ3M7DQorCSAgICBt
eSAoJGRldiwkaW5vLCRtb2RlLCRubGluaywkdWlkLCRnaWQpOw0KKwkgICAg
KCgkZGV2LCRpbm8sJG1vZGUsJG5saW5rLCR1aWQsJGdpZCkgPSBsc3RhdCgk
XykpICYmDQorCSAgICAgICgkdWlkID09ICRwd191aWQpICYmDQorCQkoDQor
CQkgKCRGaWxlOjpGaW5kOjpuYW1lID1+IC9eXC9wcm9jXC8vICYmICgkRmls
ZTo6RmluZDo6cHJ1bmUgPSAxKSkgfHwNCisJCSAoLWYgJEZpbGU6OkZpbmQ6
Om5hbWUgJiYgcHVzaChAZmlsZXMsICRGaWxlOjpGaW5kOjpuYW1lKSkgfHwN
CisJCSAoLWQgJEZpbGU6OkZpbmQ6Om5hbWUgJiYgcHVzaChAZGlycywgJEZp
bGU6OkZpbmQ6Om5hbWUpKQ0KKwkJKTsNCisJICB9DQorCSAgRmlsZTo6Rmlu
ZDo6ZmluZCh7d2FudGVkID0+IFwmZmluZF9tYXRjaCwgdW50YWludCA9PiAx
LCBub19jaGRpciA9PiAxfSwgJy8nKTsNCisJfQ0KKw0KKwlpZigkY29uZmln
eyJiYWNrdXAifSkgew0KKwkgICAgc19wcmludChfKCJCYWNrdXBpbmcgZmls
ZXMgdG8gYmUgcmVtb3ZlZC4uLlxuIikpOw0KKwkgICAgc3lzdGVtY2FsbCgi
L2Jpbi90YXIiLCAiLWNmIiwgIiR1c2VyLnRhciIsICItLSIsIEBmaWxlcyk7
DQorCSAgICBpZigtZSAiL3Vzci9iaW4vYnppcDIiKSB7DQorCSAgICAJc3lz
dGVtY2FsbCgiL3Vzci9iaW4vYnppcDIiLCAiJHVzZXIudGFyIik7DQorCSAg
ICB9IGVsc2lmKC1lICIvYmluL2d6aXAiKSB7DQorCSAgICAJc3lzdGVtY2Fs
bCgiL2Jpbi9nemlwIiwgIiR1c2VyLnRhciIpOw0KKwkgICAgfQ0KKwl9DQor
DQorCWlmKEBmaWxlcyB8fCBAZGlycykgew0KKwkgICAgc19wcmludChfKCJS
ZW1vdmluZyBmaWxlcy4uLlxuIikpOw0KKwkgICAgdW5saW5rKEBmaWxlcykg
aWYoQGZpbGVzKTsNCisJICAgIGZvcmVhY2gocmV2ZXJzZShzb3J0KEBkaXJz
KSkpIHsNCisJCXJtZGlyKCRfKTsNCisJICAgIH0NCisJfQ0KKyAgICB9DQor
DQorICAgIHNfcHJpbnRmKF8oIlJlbW92aW5nIHVzZXIgJXMuLi5cbiIpLCR1
c2VyKTsNCisNCisgICAgJGZ1bmMgPSAiZGVsdXNlcl8kZnVuY3Rpb25fc3Vm
Zml4IjsNCisgICAgJiRmdW5jKCR1c2VyKTsNCisNCisgICAgJmludmFsaWRh
dGVfbnNjZCgpOw0KKw0KKyAgICBzeXN0ZW1jYWxsKCcvdXNyL2xvY2FsL3Ni
aW4vZGVsdXNlci5sb2NhbCcsICR1c2VyLCAkcHdfdWlkLA0KKyAgICAgICAg
ICAgICAgICAkcHdfZ2lkLCAkcHdfaG9tZWRpcikgaWYgKC14ICIvdXNyL2xv
Y2FsL3NiaW4vZGVsdXNlci5sb2NhbCIpOw0KKw0KKyAgICBzX3ByaW50KF8o
ImRvbmUuXG4iKSk7DQorfSBlbHNpZigkYWN0aW9uIGVxICJkZWxncm91cCIp
IHsNCisgICAgJmludmFsaWRhdGVfbnNjZCgpOw0KKyAgICB1bmxlc3MoZXhp
c3RfZ3JvdXAoJGdyb3VwKSkgew0KKwlkaWVmIChfKCJgJXMnIGRvZXMgbm90
IGV4aXN0LlxuIiksJGdyb3VwKTsNCisgICAgfQ0KKyAgICAjIFRoaXMgbmVl
ZCB0byBiZSBmaXhlZA0KKyAgICBpZihzeXN0ZW0oImdyZXAiLCAiLXEiLCAi
Xi4qOi4qOi4qOiRncl9naWQ6Lio6Lio6LipcJCIsICIvZXRjL3Bhc3N3ZCIp
ID09IDApIHsNCisJZGllZiAoXygiVGhlcmUgYXJlIHVzZXJzIGhhdmluZyBg
JXMnIGFzIHByaW1hcnkgZ3JvdXAhXG4iKSwkZ3JvdXApOw0KKyAgICB9DQor
DQorICAgIHNfcHJpbnRmKF8oIlJlbW92aW5nIGdyb3VwICVzLi4uXG4iKSwk
Z3JvdXApOw0KKyAgICANCisgICAgJGZ1bmMgPSAiZGVsZ3JvdXBfJGZ1bmN0
aW9uX3N1ZmZpeCI7DQorICAgICYkZnVuYygkZ3JvdXApOw0KKw0KKyAgICAm
aW52YWxpZGF0ZV9uc2NkKCk7DQorICAgIHNfcHJpbnQoXygiZG9uZS5cbiIp
KTsNCit9DQorZWxzaWYoJGFjdGlvbiBlcSAiZGVsdXNlcmZyb21ncm91cCIp
DQorew0KKyAgICAmaW52YWxpZGF0ZV9uc2NkKCk7DQorICAgIHVubGVzcyhl
eGlzdF91c2VyKCR1c2VyKSkgew0KKwlkaWVmIChfKCJgJXMnIGRvZXMgbm90
IGV4aXN0LlxuIiksJHVzZXIpOw0KKyAgICB9DQorICAgIHVubGVzcyhleGlz
dF9ncm91cCgkZ3JvdXApKSB7DQorCWRpZWYgKF8oImAlcycgZG9lcyBub3Qg
ZXhpc3QuXG4iKSwkZ3JvdXApOw0KKyAgICB9DQorICAgIGlmKCRtYWluZ3Jv
dXAgZXEgJGdyb3VwKSB7DQorCWRpZSAiJDA6ICIsXygiWW91IG1heSBub3Qg
cmVtb3ZlIHRoZSB1c2VyIGZyb20gaGlzL2hlciBwcmltYXJ5IGdyb3VwLlxu
Iik7DQorICAgIH0NCisNCisgICAgc19wcmludGYoXygiUmVtb3ZpbmcgdXNl
ciAlcyBmcm9tIGdyb3VwICVzLi4uXG4iKSwkdXNlciwkZ3JvdXApOw0KKyAg
ICANCisgICAgJGZ1bmMgPSAiZGVsdXNlcmZyb21ncm91cF8kZnVuY3Rpb25f
c3VmZml4IjsNCisgICAgJiRmdW5jKCR1c2VyLCAkZ3JvdXApOw0KKyAgICAN
CisgICAgJmludmFsaWRhdGVfbnNjZCgpOw0KKyAgICBzX3ByaW50KF8oImRv
bmUuXG4iKSk7DQorfQ0KKw0KKw0KKyMjIyMjIw0KKw0KK3N1YiB2ZXJzaW9u
IHsNCisgICAgcHJpbnRmKCJkZWx1c2VyOiAlcyAkdmVyc2lvblxuXG4iLF8o
InJlbW92aW5nIHVzZXIgYW5kIGdyb3VwcyBmcm9tIHRoZSBzeXN0ZW0uIFZl
cnNpb246IikpOw0KKw0KKyAgICBwcmludCgiQ29weXJpZ2h0IChDKSAyMDAw
IFJvbGFuZCBCYXVlcnNjaG1pZHQgPHJvbGFuZFxAY29weWxlZnQuZGU+XG5c
biIpOw0KKw0KKyAgICBwcmludCgiZGVsdXNlciBpcyBiYXNlZCBvbiBhZGR1
c2VyIGJ5IEd1eSBNYW9yIDxtYW9yXEBkZWJpYW4ub3JnPiwgSWFuIE11cmRv
Y2tcbiIsDQorCSAgIjxpbXVyZG9ja1xAZ251LmFpLm1pdC5lZHU+IGFuZCBU
ZWQgSGFqZWsgPHRlZGhhamVrXEBib29tYm94Lm1pY3JvLnVtbi5lZHU+XG4i
KTsNCisNCisgICAgcHJpbnQoIlxuVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkN
CitpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KK3RoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdA0KK3lvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCisN
CitUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0DQorV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KK01F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VDQorR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwg
L3Vzci9zaGFyZS9jb21tb24tbGljZW5zZXMvR1BMLCBmb3IgbW9yZSBkZXRh
aWxzLlxuIik7DQorfQ0KKw0KK3N1YiB1c2FnZSB7DQorICAgIHByaW50Zigi
ZGVsdXNlcjogJXMgJHZlcnNpb25cblxuIixfKCJyZW1vdmluZyB1c2VyIGFu
ZCBncm91cHMgZnJvbSB0aGUgc3lzdGVtLiBWZXJzaW9uOiIpKTsNCisNCisg
ICAgcHJpbnQoImRlbHVzZXIgdXNlcg0KKyAgcmVtb3ZlIGEgbm9ybWFsIHVz
ZXIgZnJvbSB0aGUgc3lzdGVtDQorICBleGFtcGxlOiBkZWx1c2VyIG1pa2UN
CisNCisgIC0tcmVtb3ZlLWhvbWUgICAgICAgICAgICAgcmVtb3ZlIHRoZSB1
c2VycyBob21lIGRpcmVjdG9yeSBhbmQgbWFpbCBzcG9vbA0KKyAgLS1yZW1v
dmUtYWxsLWZpbGVzICAgICAgICByZW1vdmUgYWxsIGZpbGVzIG93bmVkIGJ5
IHVzZXINCisgIC0tYmFja3VwICAgICAgICAgICAgICAgICAgYmFja3VwIGZp
bGVzIGJlZm9yZSByZW1vdmluZw0KKw0KK2RlbGdyb3VwIGdyb3VwDQorZGVs
dXNlciAtLWdyb3VwIGdyb3VwDQorICByZW1vdmUgYSBzeXN0ZW0gZ3JvdXAg
ZnJvbSB0aGUgc3lzdGVtDQorICBleGFtcGxlOiBkZWx1c2VyIC0tZ3JvdXAg
c3R1ZGVudHMNCisNCitkZWx1c2VyIHVzZXIgZ3JvdXANCisgIHJlbW92ZSB0
aGUgdXNlciBmcm9tIGEgZ3JvdXANCisgIGV4YW1wbGU6IGRlbHVzZXIgbWlr
ZSBzdHVkZW50cw0KKw0KK2dlbmVyYWwgb3B0aW9uczoNCisgIC0tcXVpZXQg
fCAtcSAgICAgIGRvbid0IGdpdmUgcHJvY2VzcyBpbmZvcm1hdGlvbiB0byBz
dGRvdXQNCisgIC0taGVscCB8IC1oICAgICAgIHVzYWdlIG1lc3NhZ2UNCisg
IC0tdmVyc2lvbiB8IC12ICAgIHZlcnNpb24gbnVtYmVyIGFuZCBjb3B5cmln
aHQNCisgIC0tY29uZiB8IC1jIEZJTEUgIHVzZSBGSUxFIGluc3RlYWQgb2Yg
JGRlZmF1bHRzXG5cbiIpOw0KKw0KKyAgICBwcmludGYoXygiR2xvYmFsIGNv
bmZpZ3VyYXRpb24gaXMgaW4gdGhlIGZpbGUgJXMuXG4iKSwgJGRlZmF1bHRz
KTsgICAgDQorfQ0KKw0KK3N1YiBleGlzdF91c2VyIHsNCisgICAgbXkgJGV4
aXN0X3VzZXIgPSBzaGlmdDsNCisgICAgcmV0dXJuKGRlZmluZWQgZ2V0cHdu
YW0oJGV4aXN0X3VzZXIpKTsNCit9DQorDQorc3ViIGV4aXN0X2dyb3VwIHsN
CisgICAgbXkgJGV4aXN0X2dyb3VwID0gc2hpZnQ7DQorICAgIHJldHVybihk
ZWZpbmVkIGdldGdybmFtKCRleGlzdF9ncm91cCkpOw0KK30NCisNCitzdWIg
c3lzdGVtY2FsbCB7DQorICAgIG15ICRjID0gam9pbignICcsIEBfKTsNCisg
ICAgI3ByaW50ICIkY1xuIiBpZiAkZGVidWdnaW5nOw0KKyAgICBpZiAoc3lz
dGVtKEBfKSkgew0KKyAgICAgICAgZGllKCIkMDogYCRjJyByZXR1cm5lZCBl
cnJvciBjb2RlICIgLiAoJD8+PjgpIC4gIi4gIEFib3J0aW5nLlxuIikNCisJ
ICBpZiAoJD8+PjgpOw0KKwlkaWUoIiQwOiBgJGMnIGV4aXRlZCBmcm9tIHNp
Z25hbCAiIC4gKCQ/JjI1NSkgLiAiLiAgQWJvcnRpbmcuXG4iKTsNCisgICAg
fQ0KK30NCisNCmRpZmYgLXVyTiBhZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91
c3Ivc2hhcmUvYWRkdXNlci9hZGR1c2VyLmNvbmYgYWRkdXNlci0zLjUwLm1w
YWxtZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUvYWRkdXNlci9hZGR1c2VyLmNv
bmYNCi0tLSBhZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91c3Ivc2hhcmUvYWRk
dXNlci9hZGR1c2VyLmNvbmYJVGh1IEphbiAgMSAxMDowMDowMCAxOTcwDQor
KysgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUv
YWRkdXNlci9hZGR1c2VyLmNvbmYJV2VkIE1heSAgNyAxNzowMTo0MSAyMDAz
DQpAQCAtMCwwICsxLDExMCBAQA0KKyMgL2V0Yy9hZGR1c2VyLmNvbmY6IGBh
ZGR1c2VyJyBjb25maWd1cmF0aW9uLg0KKyMgU2VlIGFkZHVzZXIoOCkgYW5k
IGFkZHVzZXIuY29uZig1KSBmb3IgZnVsbCBkb2N1bWVudGF0aW9uLg0KKw0K
KyMgVGhlIERTSEVMTCB2YXJpYWJsZSBzcGVjaWZpZXMgdGhlIGRlZmF1bHQg
bG9naW4gc2hlbGwgb24geW91cg0KKyMgc3lzdGVtLg0KK0RTSEVMTD0vYmlu
L2Jhc2gNCisNCisjIFRoZSBESE9NRSB2YXJpYWJsZSBzcGVjaWZpZXMgdGhl
IGRpcmVjdG9yeSBjb250YWluaW5nIHVzZXJzJyBob21lDQorIyBkaXJlY3Rv
cmllcy4NCitESE9NRT0vaG9tZQ0KKw0KKyMgSWYgR1JPVVBIT01FUyBpcyAi
eWVzIiwgdGhlbiB0aGUgaG9tZSBkaXJlY3RvcmllcyB3aWxsIGJlIGNyZWF0
ZWQgYXMNCisjIC9ob21lL2dyb3VwbmFtZS91c2VyLg0KK0dST1VQSE9NRVM9
bm8NCisNCisjIElmIExFVFRFUkhPTUVTIGlzICJ5ZXMiLCB0aGVuIHRoZSBj
cmVhdGVkIGhvbWUgZGlyZWN0b3JpZXMgd2lsbCBoYXZlDQorIyBhbiBleHRy
YSBkaXJlY3RvcnkgLSB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSB1c2VyIG5h
bWUuIEZvciBleGFtcGxlOg0KKyMgL2hvbWUvdS91c2VyLg0KK0xFVFRFUkhP
TUVTPW5vDQorDQorIyBUaGUgU0tFTCB2YXJpYWJsZSBzcGVjaWZpZXMgdGhl
IGRpcmVjdG9yeSBjb250YWluaW5nICJza2VsZXRhbCIgdXNlcg0KKyMgZmls
ZXM7IGluIG90aGVyIHdvcmRzLCBmaWxlcyBzdWNoIGFzIGEgc2FtcGxlIC5w
cm9maWxlIHRoYXQgd2lsbCBiZQ0KKyMgY29waWVkIHRvIHRoZSBuZXcgdXNl
cidzIGhvbWUgZGlyZWN0b3J5IHdoZW4gaXQgaXMgY3JlYXRlZC4NCitTS0VM
PS9ldGMvc2tlbA0KKw0KKyMgRklSU1RfU1lTVEVNX1tHVV1JRCB0byBMQVNU
X1NZU1RFTV9bR1VdSUQgaW5jbHVzaXZlIGlzIHRoZSByYW5nZSBmb3IgVUlE
cw0KKyMgZm9yIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhZG1pbmlzdHJhdGl2
ZSBhbmQgc3lzdGVtIGFjY291bnRzL2dyb3Vwcy4NCitGSVJTVF9TWVNURU1f
VUlEPTEwMA0KK0xBU1RfU1lTVEVNX1VJRD05OTkNCitGSVJTVF9TWVNURU1f
R0lEPTEwMA0KK0xBU1RfU1lTVEVNX0dJRD05OTkNCisNCisjIEZJUlNUX1tH
VV1JRCB0byBMQVNUX1tHVV1JRCBpbmNsdXNpdmUgaXMgdGhlIHJhbmdlIG9m
IFVJRHMgb2YgZHluYW1pY2FsbHkNCisjIGFsbG9jYXRlZCB1c2VyIGFjY291
bnRzL2dyb3Vwcy4NCitGSVJTVF9VSUQ9MTAwMA0KK0xBU1RfVUlEPTI5OTk5
DQorRklSU1RfR0lEPTEwMDANCitMQVNUX0dJRD0yOTk5OQ0KKw0KKyMgVGhl
IFVTRVJHUk9VUFMgdmFyaWFibGUgY2FuIGJlIGVpdGhlciAieWVzIiBvciAi
bm8iLiAgSWYgInllcyIgZWFjaA0KKyMgY3JlYXRlZCB1c2VyIHdpbGwgYmUg
Z2l2ZW4gdGhlaXIgb3duIGdyb3VwIHRvIHVzZSBhcyBhIGRlZmF1bHQsIGFu
ZA0KKyMgdGhlaXIgaG9tZSBkaXJlY3RvcmllcyB3aWxsIGJlIGcrcy4gIElm
ICJubyIsIGVhY2ggY3JlYXRlZCB1c2VyIHdpbGwNCisjIGJlIHBsYWNlZCBp
biB0aGUgZ3JvdXAgd2hvc2UgZ2lkIGlzIFVTRVJTX0dJRCAoc2VlIGJlbG93
KS4NCitVU0VSR1JPVVBTPXllcw0KKw0KKyMgSWYgVVNFUkdST1VQUyBpcyAi
bm8iLCB0aGVuIFVTRVJTX0dJRCBzaG91bGQgYmUgdGhlIEdJRCBvZiB0aGUg
Z3JvdXANCisjIGB1c2VycycgKG9yIHRoZSBlcXVpdmFsZW50IGdyb3VwKSBv
biB5b3VyIHN5c3RlbS4NCitVU0VSU19HSUQ9MTAwDQorDQorIyBJZiBRVU9U
QVVTRVIgaXMgc2V0LCBhIGRlZmF1bHQgcXVvdGEgd2lsbCBiZSBzZXQgZnJv
bSB0aGF0IHVzZXIgd2l0aA0KKyMgYGVkcXVvdGEgLXAgUVVPVEFVU0VSIG5l
d3VzZXInDQorUVVPVEFVU0VSPSIiDQorDQorIyBJZiBESVJfTU9ERSBpcyBz
ZXQsIGRpcmVjdG9yaWVzIHdpbGwgYmUgY3JlYXRlZCB3aXRoIHRoZSBzcGVj
aWZpZWQNCisjIG1vZGUuIE90aGVyd2lzZSB0aGUgZGVmYXVsdCBtb2RlIDA3
NTUgd2lsbCBiZSB1c2VkLg0KK0RJUl9NT0RFPTA3NTUNCisNCisjIElmIFNF
VEdJRF9IT01FIGlzICJ5ZXMiIGhvbWUgZGlyZWN0b3JpZXMgZm9yIHVzZXJz
IHdpdGggdGhlaXIgb3duDQorIyBncm91cCB0aGUgc2V0Z2lkIGJpdCB3aWxs
IGJlIHNldC4gVGhpcyB3YXMgdGhlIGRlZmF1bHQgZm9yDQorIyB2ZXJzaW9u
cyA8PCAzLjEzIG9mIGFkZHVzZXIuIEJlY2F1c2UgaXQgaGFzIHNvbWUgYmFk
IHNpZGUgZWZmZWN0cyB3ZQ0KKyMgbm8gbG9uZ2VyIGRvIHRoaXMgcGVyIGRl
ZmF1bHQuIElmIHlvdSB3YW50IGl0IG5ldmVydGhlbGVzcyB5b3UgY2FuDQor
IyBzdGlsbCBzZXQgaXQgaGVyZS4NCitTRVRHSURfSE9NRT1ubw0KKw0KKyMj
IyMjIyMjIyMjIyMjIyMjIyMNCisjIERFTFVTRVIgU0VUVElOR1MNCisjIyMj
IyMjIyMjIyMjIyMjIyMjDQorDQorIyBSZW1vdmUgaG9tZSBkaXJlY3Rvcnkg
YW5kIG1haWwgc3Bvb2wgd2hlbiB1c2VyIGlzIHJlbW92ZWQNCitSRU1PVkVf
SE9NRSA9IDANCisNCisjIFJlbW92ZSBhbGwgZmlsZXMgb24gdGhlIHN5c3Rl
bSBvd25lZCBieSB0aGUgdXNlciB0byBiZSByZW1vdmVkDQorUkVNT1ZFX0FM
TF9GSUxFUyA9IDANCisNCisjIEJhY2t1cCBmaWxlcyBiZWZvcmUgcmVtb3Zp
bmcgdGhlbS4gVGhpcyBvcHRpb25zIGhhcyBvbmx5IGFuIGVmZmVjdCBpZg0K
KyMgUkVNT1ZFX0hPTUUgb3IgUkVNT1ZFX0FMTF9GSUxFUyBpcyBzZXQuDQor
QkFDS1VQID0gMA0KKyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjIExEQVAgU0VU
VElOR1MNCisjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorIyBVc2UgTERBUCBm
b3Igc3RvcmluZyByZWFsIHVzZXIgYW5kIGdyb3VwIGFjY291bnRzLg0KK1VT
RV9MREFQPW5vDQorDQorIyBVc2UgTERBUCBmb3Igc3RvcmluZyBzeXN0ZW0g
dXNlcnMgYXMgd2VsbCBhcyBvcmRpbmFyeSB1c2Vycy4gIFdpbGwgb25seSBi
ZQ0KKyMgY2hlY2tlZCBpZiBVU0VfTERBUD15ZXMgYWJvdmUuICANCitVU0Vf
TERBUF9TWVNURU09bm8NCisNCisjIFRoZXNlIGFyZSBvbmx5IGV4Y2l0aW5n
IGlmIHlvdSd2ZSBzcGVjaWZpZWQgVVNFX0xEQVA9eWVzIGFib3ZlDQorIyBI
b3N0bmFtZSBvZiB0aGUgTERBUCBzZXJ2ZXINCitMREFQX1NFUlZFUj1sb2Nh
bGhvc3QNCisNCisjIFBvcnQgZm9yIHRoZSBMREFQIHNlcnZlciAoZG9uJ3Qg
Y2hhbmdlIG5vcm1hbGx5KQ0KK0xEQVBfUE9SVD0zODkNCisNCisjIEROIHRv
IGJpbmQgYXMuDQorTERBUF9CSU5ERE49Y249bGRhcGFkbWluLGRjPWRvbWFp
bixkYz1jb20NCisNCisjIFBhc3N3b3JkIGZvciB0aGlzIERODQorTERBUF9C
SU5EUFc9c2VrcjF0DQorDQorIyBCYXNlIEROIGZvciB0aGUgc2l0ZQ0KK0xE
QVBfQkFTRUROPWRjPWRvbWFpbixkYz1jb20NCisNCisjIFJlbGF0aXZlIERO
IGZvciBncm91cHMNCitMREFQX1JETl9HUk9VUFM9b3U9Z3JvdXANCisNCisj
IFJETiBmb3IgdXNlcnMNCitMREFQX1JETl9VU0VSUz1vdT1wZW9wbGUNCisN
CmRpZmYgLXVyTiBhZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91c3Ivc2hhcmUv
YWRkdXNlci9hZGR1c2VyX2xkYXAuY29uZiBhZGR1c2VyLTMuNTAubXBhbG1l
ci9kZWJpYW4vdG1wL3Vzci9zaGFyZS9hZGR1c2VyL2FkZHVzZXJfbGRhcC5j
b25mDQotLS0gYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJlL2Fk
ZHVzZXIvYWRkdXNlcl9sZGFwLmNvbmYJVGh1IEphbiAgMSAxMDowMDowMCAx
OTcwDQorKysgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Iv
c2hhcmUvYWRkdXNlci9hZGR1c2VyX2xkYXAuY29uZglXZWQgTWF5ICA3IDE3
OjAxOjQxIDIwMDMNCkBAIC0wLDAgKzEsMzQgQEANCisNCisjIyMjIyMjIyMj
IyMjIyMjIyMjDQorIyBMREFQIFNFVFRJTkdTDQorIyMjIyMjIyMjIyMjIyMj
IyMjIw0KKw0KKyMgVXNlIExEQVAgZm9yIHN0b3JpbmcgcmVhbCB1c2VyIGFu
ZCBncm91cCBhY2NvdW50cy4NCitVU0VfTERBUD1ubw0KKw0KKyMgVXNlIExE
QVAgZm9yIHN0b3Jpbmcgc3lzdGVtIHVzZXJzIGFzIHdlbGwgYXMgb3JkaW5h
cnkgdXNlcnMuICBXaWxsIG9ubHkgYmUNCisjIGNoZWNrZWQgaWYgVVNFX0xE
QVA9eWVzIGFib3ZlLiAgDQorVVNFX0xEQVBfU1lTVEVNPW5vDQorDQorIyBU
aGVzZSBhcmUgb25seSBleGNpdGluZyBpZiB5b3UndmUgc3BlY2lmaWVkIFVT
RV9MREFQPXllcyBhYm92ZQ0KKyMgSG9zdG5hbWUgb2YgdGhlIExEQVAgc2Vy
dmVyDQorTERBUF9TRVJWRVI9bG9jYWxob3N0DQorDQorIyBQb3J0IGZvciB0
aGUgTERBUCBzZXJ2ZXIgKGRvbid0IGNoYW5nZSBub3JtYWxseSkNCitMREFQ
X1BPUlQ9Mzg5DQorDQorIyBETiB0byBiaW5kIGFzLg0KK0xEQVBfQklORERO
PWNuPWxkYXBhZG1pbixkYz1kb21haW4sZGM9Y29tDQorDQorIyBQYXNzd29y
ZCBmb3IgdGhpcyBETg0KK0xEQVBfQklORFBXPXNla3IxdA0KKw0KKyMgQmFz
ZSBETiBmb3IgdGhlIHNpdGUNCitMREFQX0JBU0VETj1kYz1kb21haW4sZGM9
Y29tDQorDQorIyBSZWxhdGl2ZSBETiBmb3IgZ3JvdXBzDQorTERBUF9SRE5f
R1JPVVBTPW91PWdyb3VwDQorDQorIyBSRE4gZm9yIHVzZXJzDQorTERBUF9S
RE5fVVNFUlM9b3U9cGVvcGxlDQorDQpCaW5hcnkgZmlsZXMgYWRkdXNlci0z
LjUwL2RlYmlhbi90bXAvdXNyL3NoYXJlL2RvYy9hZGR1c2VyL1JFQURNRS5M
REFQLmd6IGFuZCBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1wL3Vz
ci9zaGFyZS9kb2MvYWRkdXNlci9SRUFETUUuTERBUC5neiBkaWZmZXINCkJp
bmFyeSBmaWxlcyBhZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91c3Ivc2hhcmUv
ZG9jL2FkZHVzZXIvVE9ETy5neiBhbmQgYWRkdXNlci0zLjUwLm1wYWxtZXIv
ZGViaWFuL3RtcC91c3Ivc2hhcmUvZG9jL2FkZHVzZXIvVE9ETy5neiBkaWZm
ZXINCkJpbmFyeSBmaWxlcyBhZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91c3Iv
c2hhcmUvZG9jL2FkZHVzZXIvY2hhbmdlbG9nLmd6IGFuZCBhZGR1c2VyLTMu
NTAubXBhbG1lci9kZWJpYW4vdG1wL3Vzci9zaGFyZS9kb2MvYWRkdXNlci9j
aGFuZ2Vsb2cuZ3ogZGlmZmVyDQpkaWZmIC11ck4gYWRkdXNlci0zLjUwL2Rl
Ymlhbi90bXAvdXNyL3NoYXJlL2RvYy9hZGR1c2VyL2NvcHlyaWdodCBhZGR1
c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1wL3Vzci9zaGFyZS9kb2MvYWRk
dXNlci9jb3B5cmlnaHQNCi0tLSBhZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91
c3Ivc2hhcmUvZG9jL2FkZHVzZXIvY29weXJpZ2h0CVRodSBKYW4gIDEgMTA6
MDA6MDAgMTk3MA0KKysrIGFkZHVzZXItMy41MC5tcGFsbWVyL2RlYmlhbi90
bXAvdXNyL3NoYXJlL2RvYy9hZGR1c2VyL2NvcHlyaWdodAlXZWQgTWF5ICA3
IDE3OjAxOjQxIDIwMDMNCkBAIC0wLDAgKzEsMzUgQEANCitUaGlzIHBhY2th
Z2Ugd2FzIGZpcnN0IHB1dCB0b2dldGhlciBieSBJYW4gTXVyZG9jaw0KKzxp
bXVyZG9ja0BkZWJpYW4ub3JnPiBhbmQgd2FzIG1haW50YWluZWQgYnkgU3Rl
dmUgUGhpbGxpcHMNCis8c2pwQGN2Zm4ub3JnPiBmcm9tIHNvdXJjZXMgd3Jp
dHRlbiBmb3IgdGhlIERlYmlhbiBQcm9qZWN0IGJ5IElhbg0KK011cmRvY2ss
IFRlZCBIYWplayA8dGVkaGFqZWtAYm9vbWJveC5taWNyby51bW4uZWR1Piwg
YW5kIFN2ZW4gUnVkb2xwaA0KKzxzcjFAaW5mLnR1LWRyZXNkZW4uZGU+Lg0K
Kw0KK1NpbmNlIE5vdiAyNyAxOTk2LCBpdCB3YXMgbWFpbnRhaW5lZCBieSBH
dXkgTWFvciA8bWFvckBkZWJpYW4ub3JnPi4gIEhlDQorcmV3cm90ZSBtb3N0
IG9mIGl0Lg0KKw0KK1NpbmNlIE1heSAyMCAyMDAwLCBpdCBpcyBtYWludGFp
bmVkIGJ5IFJvbGFuZCBCYXVlcnNjaG1pZHQNCis8cmJAZGViaWFuLm9yZz4u
DQorDQorZGVsdXNlciBpcyBDb3B5cmlnaHQgKEMpIDIwMDAgUm9sYW5kIEJh
dWVyc2NobWlkdCA8cmJAZGViaWFuLm9yZz4NCithbmQgYmFzZWQgb24gdGhl
IHNvdXJjZSBjb2RlIG9mIGFkZHVzZXIuDQorDQorYWRkdXNlciBpcyBDb3B5
cmlnaHQgKEMpIDE5OTcsIDE5OTgsIDE5OTkgR3V5IE1hb3IgPG1hb3JAZGVi
aWFuLm9yZz4uDQorYWRkdXNlciBpcyBDb3B5cmlnaHQgKEMpIDE5OTUgVGVk
IEhhamVrIDx0ZWRoYWpla0Bib29tYm94Lm1pY3JvLnVtbi5lZHU+DQord2l0
aCBwb3J0aW9ucyBDb3B5cmlnaHQgKEMpIDE5OTQgRGViaWFuIEFzc29jaWF0
aW9uLCBJbmMuDQorDQorICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQor
ICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQorICAgIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yDQorICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uDQorDQorICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyAgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZg0KKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQorICAgIEdO
VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQor
DQorICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQorICAgIGFsb25nIHdpdGgg
dGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlDQorICAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwg
U3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0ENCisNCitP
biBEZWJpYW4gR05VL0xpbnV4IHN5c3RlbXMsIHRoZSBjb21wbGV0ZSB0ZXh0
IG9mIHRoZSBHTlUgR2VuZXJhbA0KK1B1YmxpYyBMaWNlbnNlIGNhbiBiZSBm
b3VuZCBpbiBgL3Vzci9zaGFyZS9jb21tb24tbGljZW5zZXMvR1BMJy4NCmRp
ZmYgLXVyTiBhZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91c3Ivc2hhcmUvZG9j
L2FkZHVzZXIvZXhhbXBsZXMvSU5TVEFMTCBhZGR1c2VyLTMuNTAubXBhbG1l
ci9kZWJpYW4vdG1wL3Vzci9zaGFyZS9kb2MvYWRkdXNlci9leGFtcGxlcy9J
TlNUQUxMDQotLS0gYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJl
L2RvYy9hZGR1c2VyL2V4YW1wbGVzL0lOU1RBTEwJVGh1IEphbiAgMSAxMDow
MDowMCAxOTcwDQorKysgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3Rt
cC91c3Ivc2hhcmUvZG9jL2FkZHVzZXIvZXhhbXBsZXMvSU5TVEFMTAlXZWQg
TWF5ICA3IDE3OjAxOjQxIDIwMDMNCkBAIC0wLDAgKzEsMTIgQEANCitQbGVh
c2UgcmVhZCB0aGUgIFJFQURNRSAgZmlsZSBmb3IgZGV0YWlsZWQgaW5mb3Jt
YXRpb24gYWJvdXQgd2hhdCBuZWVkcyB0bw0KK2JlIGRvbmUgdG8gaW5zdGFs
bCB0aGUgQUREVVNFUiBMb2NhbCBTeXN0ZW0gQWRkaXRpb25zIHByb2dyYW0u
ICBJbiBicmllZjoNCisNCisjIGNwIC4vYWRkdXNlci5sb2NhbCAvdXNyL2xv
Y2FsL3NiaW4NCisjIGNwIC4vYWRkdXNlci5sb2NhbC5jb25mIC9ldGMNCisj
IGVkaXRvciAvZXRjL2FkZHVzZXIubG9jYWwuY29uZiAgICAgICAgICMgVGhl
IGltcG9ydGFudCBzdGVwIQ0KKyMgbWtkaXIgL2V0Yy9za2VsLm90aGVyDQor
IyBjcCAuL2V4YW1wbGVzL3NrZWwub3RoZXIvaW5kZXguaHRtbCAvZXRjL3Nr
ZWwub3RoZXINCisNCitJTVBPUlRBTlQ6IERvICBOT1QgIGp1c3QgcGVyZm9y
bSB0aGUgYWJvdmUgc3RlcHMgIHdpdGhvdXQga25vd2luZyB3aGF0IHlvdQ0K
K2FyZSBkb2luZyEgIEluIHBhcnRpY3VsYXIsICB0aGUgdGhpcmQgc3RlcCBp
cyB2ZXJ5IGltcG9ydGFudCBmb3IgeW91IHRvIGRvDQorY29ycmVjdGx5Lg0K
ZGlmZiAtdXJOIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL3Vzci9zaGFyZS9k
b2MvYWRkdXNlci9leGFtcGxlcy9SRUFETUUgYWRkdXNlci0zLjUwLm1wYWxt
ZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUvZG9jL2FkZHVzZXIvZXhhbXBsZXMv
UkVBRE1FDQotLS0gYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJl
L2RvYy9hZGR1c2VyL2V4YW1wbGVzL1JFQURNRQlUaHUgSmFuICAxIDEwOjAw
OjAwIDE5NzANCisrKyBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1w
L3Vzci9zaGFyZS9kb2MvYWRkdXNlci9leGFtcGxlcy9SRUFETUUJV2VkIE1h
eSAgNyAxNzowMTo0MSAyMDAzDQpAQCAtMCwwICsxLDEzNyBAQA0KKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqDQorKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICoNCisqICAgICAgICAgICAgICAgICAgIEFERFVTRVIgTG9j
YWwgU3lzdGVtIEFkZGl0aW9ucyB2NC4zICAgICAgICAgICAgICAgICAgKg0K
KyogICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5OS0yMDAxLCBK
b2huIFphaXRzZWZmICAgICAgICAgICAgICAgICAqDQorKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICoNCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKg0KKw0KK1dlbGNvbWUgdG8gdGhlIEFERFVTRVIgTG9jYWwgU3lzdGVt
IEFkZGl0aW9ucyBwcm9ncmFtISAgVGhpcyBwcm9ncmFtLCBvbmNlDQoraW5z
dGFsbGVkIGFzIC91c3IvbG9jYWwvc2Jpbi9hZGR1c2VyLmxvY2FsLCAgd29y
a3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUNCitEZWJpYW4gYWRkdXNlcig4
KSBjb21tYW5kIHRvIGV4dGVuZCB0aGUgY3JlYXRpb24gb2YgeW91ciB1c2Vy
IGFjY291bnRzLg0KKw0KK0FzIGEgc3lzdGVtIGFkbWluaXN0cmF0b3IsIHlv
dSBhcmUgb2Z0ZW4gZmFjZWQgd2l0aCBhIGxvbmcgbGlzdCBvZiAidGhpbmdz
DQordG8gIGRvIiB3aGVuICBjcmVhdGluZyAgYSBuZXcgIHVzZXIgIGFjY291
bnQuICBGb3IgIGV4YW1wbGUsICBpZiB5b3UgIGhhdmUNCitjb25maWd1cmVk
ICBGVFAgYW5kICBXZWIgIHNlcnZlcnMsIHlvdSAgd291bGQgIHByb2JhYmx5
IGhhdmUgIHRvIGNyZWF0ZSAgYQ0KK2RpcmVjdG9yeSAgd2l0aGluIHRoZWly
ICBkaXJlY3RvcmllcyBmb3IgIHRoZSAgbmV3IHVzZXIsICBwb3NzaWJseSBj
b3B5ICBhDQorc2tlbGV0b24gImluZGV4Lmh0bWwiIGZpbGUgIGludG8gdGhl
IHByb3BlciBsb2NhdGlvbiwgYWRkICB0aGUgdXNlciB0byB0aGUNCisiZnRw
IiBhbmQgInd3dyIgZ3JvdXBzIGFuZCAgc28gb24uICBBbGwsIG5hdHVyYWxs
eSwgd2l0aG91dCBmb3JnZXR0aW5nIGFueQ0KK3ZpdGFsIHN0ZXAhDQorDQor
VGhlIGFkZHVzZXIubG9jYWwgIHByb2dyYW0gYXV0b21hdGVzIGFsbCAgdGhp
cyBmb3IgeW91LiAgQnkgIG1vZGlmeWluZyB0aGUNCitwcm9ncmFtJ3MgY29u
ZmlndXJhdGlvbiBmaWxlLCAvZXRjL2FkZHVzZXIubG9jYWwuY29uZiwgdG8g
bWF0Y2ggeW91ciBsb2NhbA0KK3JlcXVpcmVtZW50cywgdGhpcyAgcHJvZ3Jh
bSBjYW4gYXV0b21hdGljYWxseSBhZGQgYSAgdXNlciB0byBzdXBwbGVtZW50
YXJ5DQorZ3JvdXBzLCBjcmVhdGUgZGlyZWN0b3JpZXMgIGFuZCBzeW1ib2xp
YyBsaW5rcyBhbmQgY29weSAgc2tlbGV0b24gZmlsZXMgdG8NCit0aGUgbmV3
bHktY3JlYXRlZCBkaXJlY3Rvcmllcy4NCisNCitOb3RlIHRoYXQgb25jZSB5
b3UgaW5zdGFsbCB0aGlzIHByb2dyYW0gKGFuZCBlZGl0IHRoZSBjb25maWd1
cmF0aW9uIGZpbGUpLA0KK3lvdSB3aWxsIG5ldmVyICBuZWVkIHRvIGRpcmVj
dGx5IHJ1biBhZGR1c2VyLmxvY2FsOiAgdGhlIERlYmlhbiBhZGR1c2VyKDgp
DQorY29tbWFuZCBhdXRvbWF0aWNhbGx5IGNhbGxzIGFkZHVzZXIubG9jYWwg
d2l0aCB0aGUgY29ycmVjdCBwYXJhbWV0ZXJzLiAgSWYNCit5b3UgbGlrZSwg
IGhvd2V2ZXIsIHlvdSBDQU4gIHJ1biBhZGR1c2VyLmxvY2FsIGRpcmVjdGx5
ICh0cnkgIHRoZSAiLS1oZWxwIg0KK3BhcmFtZXRlciBmb3IgIGEgYnJpZWYg
IGNvbW1hbmQtbGluZSBzdW1tYXJ5KSwgc3VjaCAgYXMgZm9yICB1c2VyIGFj
Y291bnRzDQordGhhdCBoYXZlIGFscmVhZHkgYmVlbiBjcmVhdGVkLg0KKw0K
K1RoZSBhZGR1c2VyLmxvY2FsIHByb2dyYW0gIGlzIHdyaXR0ZW4gaW4gUGVy
bCAod2l0aCAgY29tbWVudHMhKSwgYW5kIGNvbWVzDQord2l0aCBhIHNhbXBs
ZSBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCBpcyBleHRlbnNpdmVseSBkb2N1
bWVudGVkLiAgSW4gZmFjdCwNCit0aGUgc2FtcGxlIGFkZHVzZXIubG9jYWwu
Y29uZiBmaWxlIGlzICBwcm9iYWJseSBhbGwgeW91IHdpbGwgbmVlZCB0byBy
ZWFkLA0KK29uY2UgeW91ICBoYXZlIGluc3RhbGxlZCB0aGUgcHJvZ3JhbS4g
ICBBIG51bWJlciBvZiBzYW1wbGUgIGZpbGVzIGFyZSBhbHNvDQoraW5jbHVk
ZWQgaW4gdGhlICJleGFtcGxlcyIgZGlyZWN0b3J5IC0tLSBkbyB3aGF0IHlv
dSBsaWtlIHdpdGggdGhlc2UuDQorDQorVG8gIGlsbHVzdHJhdGUgdGhlICBw
cm9ncmFtJ3Mgc2ltcGxpY2l0eSwgIHRoZSBmb2xsb3dpbmcgIGxpbmVzICBo
YXZlIGJlZW4NCit0YWtlbiBhbG1vc3QgdmVyYmF0aW0gZnJvbSB0aGUgc2Ft
cGxlIGNvbmZpZ3VyYXRpb24gZmlsZToNCisNCisgICAgc2VydmljZSA9IHdl
Yg0KKw0KKyAgICB1c2VyW3dlYl0gICAgICAgPSB3d3cNCisgICAgYWRkdG9n
cm91cFt3ZWJdID0gdHJ1ZQ0KKyAgICBob21lZGlyW3dlYl0gICAgPSAiIg0K
KyAgICBzdWJkaXJbd2ViXSAgICAgPSAiZG9jL3VzZXJzIg0KKyAgICBhbHRo
b21lW3dlYl0gICAgPSBmYWxzZQ0KKyAgICBta2Rpclt3ZWJdICAgICAgPSB0
cnVlDQorICAgIGNoZ3JwZGlyW3dlYl0gICA9IHRydWUNCisgICAgbWtsaW5r
W3dlYl0gICAgID0gdHJ1ZQ0KKyAgICBsaW5rbmFtZVt3ZWJdICAgPSAicHVi
bGljX2h0bWwiDQorICAgIHNrZWxmaWxlW3dlYl0gICA9ICJpbmRleC5odG1s
Ig0KKyAgICBjaGdycHNrZWxbd2ViXSAgPSB0cnVlDQorDQorQXNzdW1pbmcg
YWRkdXNlcig4KSAgd2FzIGNhbGxlZCBmb3IgdGhlICB1c2VyICJqb2huIiwg
YW5kICB0aGUgc3lzdGVtIHVzZXINCisid3d3IiBiZWxvbmdzICB0byB0aGUg
Z3JvdXAgInd3dyIgIGFuZCBoYXMgdGhlICBob21lIGRpcmVjdG9yeSAiL2hv
bWUvd3d3Ig0KKyhpbiBhY3R1YWwgZmFjdCwgIGFsbCB0aGVzZSB2YWx1ZXMg
YXJlIHRha2VuICBmcm9tIHRoZSBwYXNzd29yZCBkYXRhYmFzZSksDQordGhl
IGZvbGxvd2luZyBhY3Rpb25zIGFyZSBwZXJmb3JtZWQgYnkgdGhpcyBwcm9n
cmFtOg0KKw0KKyAgLSB0aGUgdXNlciAiam9obiIgaXMgYWRkZWQgdG8gdGhl
IGdyb3VwICJ3d3ciLA0KKw0KKyAgLSB0aGUgZGlyZWN0b3J5ICIvaG9tZS93
d3cvZG9jL3VzZXJzL2pvaG4iIGlzIGNyZWF0ZWQsIG93bmVkIGJ5IHRoZSB1
c2VyDQorICAgICJqb2huIiBhbmQgd2l0aCBncm91cCBvd25lciAid3d3IiwN
CisNCisgIC0gdGhlIGxpbmsgInB1YmxpY19odG1sIiBpcyBjcmVhdGVkICBp
biB0aGUgdXNlciAiam9obiIncyBob21lIGRpcmVjdG9yeQ0KKyAgICB0byBw
b2ludCB0byB0aGlzIGRpcmVjdG9yeSwNCisNCisgIC0gdGhlICBmaWxlICIv
ZXRjL3NrZWwub3RoZXIvaW5kZXguaHRtbCIgIGlzIGNvcGllZCAgdG8gIHRo
aXMgZGlyZWN0b3J5LA0KKyAgICBvd25lZCBieSB0aGUgdXNlciAiam9obiIg
YW5kIHdpdGggZ3JvdXAgb3duZXIgInd3dyIuDQorDQorRm9yIG1vcmUgZGV0
YWlscywganVzdCByZWFkIHRocm91Z2ggdGhlIHNhbXBsZSBjb25maWd1cmF0
aW9uIGZpbGUhDQorDQorDQorSU5TVEFMTEFUSU9ODQorPT09PT09PT09PT09
DQorDQorSW5zdGFsbGF0aW9uIG9mICB0aGUgYWRkdXNlci5sb2NhbCBwcm9n
cmFtICBpcyBxdWl0ZSBlYXN5LiAgIFNpbXBseSBmb2xsb3cNCit0aGVzZSBz
dGVwcyBhcyByb290Og0KKw0KKzEuIENvcHkgdGhlIGFjdHVhbCBwcm9ncmFt
IHRvIHRoZSBjb3JyZWN0IGxvY2F0aW9uOg0KKw0KKyAgICAgICAjIGNwIC4v
YWRkdXNlci5sb2NhbCAvdXNyL2xvY2FsL3NiaW4NCisNCisyLiBDb3B5IHRo
ZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gdGhlIGNvcnJlY3QgbG9jYXRpb246
DQorDQorICAgICAgICMgY3AgLi9hZGR1c2VyLmxvY2FsLmNvbmYgL2V0Yw0K
Kw0KKzMuIEVkaXQgIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgIHdpdGggeW91
ciAgZmF2b3VyaXRlIGVkaXRvci4gICBZb3Ugc2hvdWxkDQorICAgbW9kaWZ5
ICB0aGUgIGZpbGUgYXMgIGFwcHJvcHJpYXRlICB0byAgeW91ciAgcmVxdWly
ZW1lbnRzLiAgVGhlICBzYW1wbGUNCisgICBjb25maWd1cmF0aW9uIGZpbGUg
aXMgZXh0ZW5zaXZlbHkgc2VsZi1kb2N1bWVudGVkLg0KKw0KKyAgICAgICAj
IGVkaXRvciAvZXRjL2FkZHVzZXIubG9jYWwuY29uZg0KKw0KKzQuIENyZWF0
ZSB0aGUgICJvdGhlciIgc2tlbGV0b24gIGRpcmVjdG9yeSBhbmQgcG9wdWxh
dGUgIGl0IHdpdGggIHlvdXIgb3duDQorICAgZmlsZXMuICBGb3IgZXhhbXBs
ZToNCisNCisgICAgICAgIyBta2RpciAvZXRjL3NrZWwub3RoZXINCisgICAg
ICAgIyBjcCAuL2V4YW1wbGVzL3NrZWwub3RoZXIvaW5kZXguaHRtbCAvZXRj
L3NrZWwub3RoZXINCisNCis1LiBZb3UgYXJlIGZpbmlzaGVkIQ0KKw0KK1Ro
ZSBtYWluIHJlYXNvbiAgeW91IGhhdmUgdG8gaW5zdGFsbCB0aGlzIHByb2dy
YW0gbWFudWFsbHkgIGlzIHNvIHRoYXQgeW91DQorZG8gbm90IGZvcmdldCB0
byBkbyBTdGVwIDMsIHRoZSBtb3N0IGltcG9ydGFudCBvbmUhDQorDQorDQor
TElDRU5TRQ0KKz09PT09PT0NCisNCitUaGUgIGFkZHVzZXIubG9jYWwgcHJv
Z3JhbSAgaXMgIGRpc3RyaWJ1dGVkICB1bmRlciB0aGUgIHRlcm1zICBvZiB0
aGUgIEdOVQ0KK0dlbmVyYWwgUHVibGljICBMaWNlbnNlLiAgVGhlICBjb3B5
cmlnaHQgb24gdGhpcyAgcHJvZ3JhbSBiZWxvbmdzICB0byBKb2huDQorWmFp
dHNlZmYuICBUaGUgYWN0dWFsIGxpY2Vuc2UgYXBwZWFycyBpbiB0aGUgZmls
ZSBDT1BZSU5HLCBvciwgb24gYSBEZWJpYW4NCitHTlUvTGludXggc3lzdGVt
LCBpbiB0aGUgZmlsZSAvdXNyL3NoYXJlL2NvbW1vbi1saWNlbnNlL0dQTC4N
CisNCitFdmVuIHRob3VnaCAgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgTGlj
ZW5zZSBkb2VzIE5PVCByZXF1aXJlICB5b3UgdG8gc2VuZA0KK3lvdXIgbW9k
aWZpY2F0aW9ucyBiYWNrIHRvIHRoZSBhdXRob3IsICBpdCBpcyBjb25zaWRl
cmVkICJnb29kIGZvcm0iIHRvIGRvDQorc28sICBhcyB0aGlzICBhbGxvd3Mg
eW91ciAgbW9kaWZpY2F0aW9ucyAgdG8gYmUgIGluY29ycG9yYXRlZCBpbnRv
ICBmdXR1cmUNCit2ZXJzaW9ucyBvZiB0aGUgcHJvZ3JhbSwgYWxsb3dpbmcg
b3RoZXJzIHRvIGJlbmVmaXQgZnJvbSB0aGVtLg0KKw0KK0FsbCBmaWxlcyBp
biB0aGUgImV4YW1wbGVzIiAgZGlyZWN0b3J5IGFyZSByZWxlYXNlZCBpbnRv
IHRoZSBwdWJsaWMgZG9tYWluDQorYW5kIGFyZSBOT1QgY292ZXJlZCBieSB0
aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuDQorDQorDQorRkVFREJB
Q0sNCis9PT09PT09PQ0KKw0KK1lvdXIgIGNvbW1lbnRzLCAgc3VnZ2VzdGlv
bnMsICBjb3JyZWN0aW9ucyAgYW5kICBlbmhhbmNlbWVudHMgIGFyZSAgYWx3
YXlzDQord2VsY29tZSEgIFBsZWFzZSBzZW5kIHRoZXNlIHRvOg0KKw0KK1Bv
c3RhbDogICBKb2huIFphaXRzZWZmLA0KKyAgICAgICAgICA0IE1jQ2FiZSBD
bG9zZSwNCisgICAgICAgICAgTWVuYWksIE5TVywgMjIzNCwNCisgICAgICAg
ICAgQXVzdHJhbGlhLg0KKw0KK0UtbWFpbDogICBKLlphaXRzZWZmQHphcC5v
cmcuYXUNCitXZWI6ICAgICAgaHR0cDovL3d3dy56YXAub3JnLmF1L3NvZnR3
YXJlL2FkZHVzZXIubG9jYWwvDQorRlRQOiAgICAgIGZ0cDovL2Z0cC56YXAu
b3JnLmF1L3B1Yi9hZGR1c2VyLmxvY2FsL2FkZHVzZXIubG9jYWwudGFyLmd6
DQpkaWZmIC11ck4gYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJl
L2RvYy9hZGR1c2VyL2V4YW1wbGVzL2FkZHVzZXIubG9jYWwgYWRkdXNlci0z
LjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUvZG9jL2FkZHVzZXIv
ZXhhbXBsZXMvYWRkdXNlci5sb2NhbA0KLS0tIGFkZHVzZXItMy41MC9kZWJp
YW4vdG1wL3Vzci9zaGFyZS9kb2MvYWRkdXNlci9leGFtcGxlcy9hZGR1c2Vy
LmxvY2FsCVRodSBKYW4gIDEgMTA6MDA6MDAgMTk3MA0KKysrIGFkZHVzZXIt
My41MC5tcGFsbWVyL2RlYmlhbi90bXAvdXNyL3NoYXJlL2RvYy9hZGR1c2Vy
L2V4YW1wbGVzL2FkZHVzZXIubG9jYWwJV2VkIE1heSAgNyAxNzowMTo0MSAy
MDAzDQpAQCAtMCwwICsxLDgwNCBAQA0KKyMhL3Vzci9iaW4vcGVybCAtdw0K
Kw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAjDQorIyAgICAgICAgICAgICAgICAgIEFERFVT
RVIgTG9jYWwgU3lzdGVtIEFkZGl0aW9ucyB2NC4zICAgICAgICAgICAgICAg
ICAgIw0KKyMgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk5LTIw
MDEsIEpvaG4gWmFpdHNlZmYgICAgICAgICAgICAgICAgICMNCisjICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIw0KKw0KKyMgQXV0aG9yOiAgIEpvaG4gWmFpdHNlZmYgPEouWmFp
dHNlZmZAemFwLm9yZy5hdT4NCisjIERhdGU6ICAgICAxN3RoIEFwcmlsLCAy
MDAxDQorIyBWZXJzaW9uOiAgNC4zDQorDQorIyBUaGlzIHByb2dyYW0sIG9u
Y2UgaW5zdGFsbGVkIGFzIC91c3IvbG9jYWwvc2Jpbi9hZGR1c2VyLmxvY2Fs
LCBpcyBhdXRvLQ0KKyMgbWF0aWNhbGx5IGNhbGxlZCBieSB0aGUgYWRkdXNl
cig4KSBzeXN0ZW0gcHJvZ3JhbSBvbiBhIERlYmlhbiBzeXN0ZW0uDQorIyBU
aGlzIHNjcmlwdCBjb21wbGV0ZXMgdGhlIGNyZWF0aW9uIG9mIGEgdXNlciBh
Y2NvdW50IGluIGEgc3lzdGVtLQ0KKyMgZGVwZW5kZW50IHdheS4NCisjDQor
IyBUaGlzIHNjcmlwdCBpcyBhdXRvbWF0aWNhbGx5IGNhbGxlZCBieSBhZGR1
c2VyIHdpdGggYXJndW1lbnRzICJ1c2VybmFtZQ0KKyMgdWlkIGdpZCBob21l
ZGlyIi4gIFNlZSBhZGR1c2VyKDgpIGZvciBtb3JlIGRldGFpbHMuICBJbiBh
ZGRpdGlvbiwgdGhpcw0KKyMgc2NyaXB0IG1heSBiZSBjYWxsZWQgbWFudWFs
bHkuICBJbiB0aGlzIGNhc2UsIHRoZSBmb2xsb3dpbmcgc3ludGF4DQorIyBh
cHBsaWVzOg0KKyMNCisjICAgICAvdXNyL2xvY2FsL3NiaW4vYWRkdXNlci5s
b2NhbCBbb3B0aW9uc10gdXNlcm5hbWUgW3VpZCBnaWQgaG9tZWRpcl0NCisj
DQorIyB3aGVyZSB0aGUgZm9sbG93aW5nIG9wdGlvbnMgZXhpc3Q6DQorIw0K
KyMgICAgIC0tZHJ5LXJ1biAgICAgIC1uICAgLSBQcmV0ZW5kIHRvIGZ1bGZp
bCBldmVyeXRoaW5nIHJlcXVpcmVkLCB3aXRob3V0DQorIyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvaW5nIGFueXRoaW5nLg0KKyMgICAgIC0tcXVp
ZXQgICAgICAgIC1xICAgLSBEb24ndCBzaG93IGV4dHJhbmVvdXMgaW5mb3Jt
YXRpb24uDQorIyAgICAgLS12ZXJib3NlICAgICAgLXYgICAtIFNob3cgaW5m
b3JtYXRpb24gYWJvdXQgd2hhdCB3YXMgZG9uZSAoZGVmYXVsdCkuDQorIyAg
ICAgLS1oZWxwICAgICAgICAgLWggICAtIFNob3cgYSBicmllZiBjb21tYW5k
LWxpbmUgc3VtbWFyeS4NCisjICAgICAtLXZlcnNpb24gICAgICAtViAgIC0g
U2hvdyB0aGUgdmVyc2lvbiBvZiB0aGUgYWRkdXNlci5sb2NhbCBzY3JpcHQu
DQorIyAgICAgLS1jb25mIDxmaWxlPiAgICAgICAtIFVzZSBjb25maWd1cmF0
aW9uIGZpbGUgPGZpbGU+IGluc3RlYWQgb2YgdGhlDQorIyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQgL2V0Yy9hZGR1c2VyLmxvY2FsLmNv
bmYuDQorDQorDQorIyBUaGlzIHByb2dyYW0sIGluY2x1ZGluZyBhc3NvY2lh
dGVkIGZpbGVzLCBpcyBmcmVlIHNvZnR3YXJlLiAgWW91IG1heQ0KKyMgZGlz
dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljDQorIyBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg
VmVyc2lvbiAyDQorIyBvZiB0aGUgbGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCisjDQorIyBUaGlzIHByb2dyYW0g
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwgYnV0DQorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQorIyBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQ0KKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLg0KKyMNCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nDQor
IyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLA0KKyMgNTkgVGVtcGxlIFBs
YWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCisN
CisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBDb25maWd1
cmF0aW9uIHBhcmFtZXRlcnMgYW5kIGRlZmF1bHQgdmFsdWVzDQorDQorKCRP
ID0gJDApICAgICAgPX4gcyxeLiovLCw7ICAgICAjIGFkZHVzZXIubG9jYWwg
c2NyaXB0IG5hbWUgKHdpdGhvdXQgcGF0aCkNCiskdmVyc2lvbiAgICAgICA9
ICc0LjMnOyAgICAgICAgICMgU2NyaXB0IHZlcnNpb24NCisNCitAYWRkdXNl
ciAgICAgICA9ICgnL3Vzci9zYmluL2FkZHVzZXInLCAnLS1xdWlldCcpOyAg
IyBMb2NhdGlvbiBvZiBhZGR1c2VyKDgpDQorQGNob3duICAgICAgICAgPSAo
Jy9iaW4vY2hvd24nKTsgICAgICAgICAgICAgICAgICAgICMgTG9jYXRpb24g
b2YgY2hvd24oMSkNCitAaW5zdGFsbCAgICAgICA9ICgnL3Vzci9iaW4vaW5z
dGFsbCcsICctcCcpOyAgICAgICAgIyBMb2NhdGlvbiBvZiBpbnN0YWxsKDEp
DQorJHByb2Ntb3VudHMgICAgPSAnL3Byb2MvbW91bnRzJzsgICAgICAgICAg
ICAgICAgICAgICMgTGlzdCBvZiBjdXJyZW50IG1vdW50cw0KKw0KKyRzX2Zh
bHNlICAgICAgID0gJ2ZhbHNlJzsgICAgICAgIyBGYWxzZSBzdHJpbmcgdmFs
dWUsIGluIGxvd2VyIGNhc2UNCiskc190cnVlICAgICAgICA9ICd0cnVlJzsg
ICAgICAgICMgVHJ1ZSBzdHJpbmcgdmFsdWUsIGluIGxvd2VyIGNhc2UNCisN
CisjIFRoZXNlIGRlZmF1bHQgdmFsdWVzIGFyZSBleHRlbnNpdmVseSBkb2N1
bWVudGVkIGluIGFkZHVzZXIubG9jYWwuY29uZi4NCisNCiskZF9jb25mZmls
ZSAgICA9ICcvZXRjL2FkZHVzZXIubG9jYWwuY29uZic7ICAgICAjIENvbmZp
Z3VyYXRpb24gZmlsZSBsb2NhdGlvbg0KKyRkX3NrZWxvdGhlciAgID0gJy9l
dGMvc2tlbC5vdGhlcic7ICAgICAgICAgICAgICMgTG9jYXRpb24gb2Ygc2tl
bGV0b24gZmlsZXMNCiskZF9kaXJtb2RlICAgICA9ICcyNzU1JzsgICAgICAg
ICAgICAgICAgICAgICAgICAjIE9jdGFsIG1vZGUgZm9yIGRpcmVjdG9yaWVz
DQorJGRfZmlsZW1vZGUgICAgPSAnMDY0NCc7ICAgICAgICAgICAgICAgICAg
ICAgICAgIyBPY3RhbCBtb2RlIGZvciBmaWxlcw0KKw0KKyRkX3VzZXIgICAg
ICAgID0gJyc7ICAgICAgICAgICAgIyBEZWZhdWx0IHNlcnZpY2UgdXNlciBu
YW1lDQorJGRfZ3JvdXAgICAgICAgPSAnJzsgICAgICAgICAgICAjIERlZmF1
bHQgc2VydmljZSBncm91cCBuYW1lDQorJGRfYWRkdG9ncm91cCAgPSAkc19m
YWxzZTsgICAgICAjIERlZmF1bHQgZm9yIGFkZHRvZ3JvdXAgdmFyaWFibGUN
CiskZF9ob21lZGlyICAgICA9ICcnOyAgICAgICAgICAgICMgRGVmYXVsdCBo
b21lIGRpcmVjdG9yeQ0KKyRkX3N1YmRpciAgICAgID0gJyc7ICAgICAgICAg
ICAgIyBEZWZhdWx0IHN1YmRpcmVjdG9yeQ0KKyRkX2FsdGhvbWUgICAgID0g
JHNfZmFsc2U7ICAgICAgIyBEZWZhdWx0IGZvciB1c2luZyBhbHRlcm5hdGUg
aG9tZSBkaXJlY3RvcnkNCiskZF9tb3VudGVkICAgICA9ICRzX2ZhbHNlOyAg
ICAgICMgRGVmYXVsdCBmb3IgY2hlY2tpbmcgaWYgbW91bnRlZA0KKyRkX21r
ZGlyICAgICAgID0gJHNfZmFsc2U7ICAgICAgIyBEZWZhdWx0IGZvciBjcmVh
dGluZyBkaXJlY3RvcnkNCiskZF9jaGdycGRpciAgICA9ICRzX2ZhbHNlOyAg
ICAgICMgRGVmYXVsdCBmb3IgY2hncnBkaXIgdmFyaWFibGUNCiskZF9ta2xp
bmsgICAgICA9ICRzX2ZhbHNlOyAgICAgICMgRGVmYXVsdCBmb3IgY3JlYXRp
bmcgc3ltYm9saWMgbGluaw0KKyRkX2xpbmtuYW1lICAgID0gJyc7ICAgICAg
ICAgICAgIyBEZWZhdWx0IGZvciBzeW1ib2xpYyBsaW5rIG5hbWUNCiskZF9z
a2VsZmlsZSAgICA9ICcnOyAgICAgICAgICAgICMgRGVmYXVsdCBmb3Igc2tl
bGV0b24gZmlsZQ0KKyRkX2NoZ3Jwc2tlbCAgID0gJHNfZmFsc2U7ICAgICAg
IyBEZWZhdWx0IGZvciBjaGdycHNrZWwgdmFyaWFibGUNCisNCisjIFZhcmlv
dXMgc3RyaW5ncyBhcHBlYXJpbmcgaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmls
ZS4gIFdoaWxlIHRoZXkgYXJlDQorIyBjYXNlIGluc2Vuc2l0aXZlIGluIHRo
ZSBjb25maWd1cmF0aW9uIGZpbGUsIHRoZXkgbXVzdCBhcHBlYXIgaW4gbG93
ZXINCisjIGNhc2UgaGVyZS4NCisNCiskc19za2Vsb3RoZXIgICA9ICdza2Vs
b3RoZXInOw0KKyRzX2Rpcm1vZGUgICAgID0gJ2Rpcm1vZGUnOw0KKyRzX2Zp
bGVtb2RlICAgID0gJ2ZpbGVtb2RlJzsNCisNCiskc19zZXJ2aWNlICAgICA9
ICdzZXJ2aWNlJzsNCisNCiskc191c2VyICAgICAgICA9ICd1c2VyJzsNCisk
c19ncm91cCAgICAgICA9ICdncm91cCc7DQorJHNfYWRkdG9ncm91cCAgPSAn
YWRkdG9ncm91cCc7DQorJHNfaG9tZWRpciAgICAgPSAnaG9tZWRpcic7DQor
JHNfc3ViZGlyICAgICAgPSAnc3ViZGlyJzsNCiskc19hbHRob21lICAgICA9
ICdhbHRob21lJzsNCiskc19tb3VudGVkICAgICA9ICdtb3VudGVkJzsNCisk
c19ta2RpciAgICAgICA9ICdta2Rpcic7DQorJHNfY2hncnBkaXIgICAgPSAn
Y2hncnBkaXInOw0KKyRzX21rbGluayAgICAgID0gJ21rbGluayc7DQorJHNf
bGlua25hbWUgICAgPSAnbGlua25hbWUnOw0KKyRzX3NrZWxmaWxlICAgID0g
J3NrZWxmaWxlJzsNCiskc19jaGdycHNrZWwgICA9ICdjaGdycHNrZWwnOw0K
Kw0KK0BzX2ZhbHNlICAgICAgID0gKCRzX2ZhbHNlLCAnZicsICdubycsICAn
bicsICcwJyk7DQorQHNfdHJ1ZSAgICAgICAgPSAoJHNfdHJ1ZSwgICd0Jywg
J3llcycsICd5JywgJzEnKTsNCisNCisjIFN0cmluZ3MgaW50ZXJuYWwgdG8g
dGhpcyBwcm9ncmFtIChhcyB1c2VkIGJ5IHRoZSAlY3YgaGFzaCkNCisNCisk
c19zdmN1aWQgICAgICA9ICcuc3ZjdWlkJzsgICAgICMgU3RvcmFnZSBmb3Ig
VUlEIG9mIHNlcnZpY2UncyB1c2VyIG5hbWUNCiskc19zdmNnaWQgICAgICA9
ICcuc3ZjZ2lkJzsgICAgICMgR0lEIG9mIHNlcnZpY2UncyB1c2VyIG5hbWUg
b3IgZ3JvdXAgbmFtZQ0KKyRzX2FjdHVhbGRpciAgID0gJy5hY3R1YWxkaXIn
OyAgIyBBY3R1YWwgZGlyZWN0b3J5OiBob21lZGlyICsgc3ViZGlyICsgdXNl
cm5hbWUNCiskc19hY3R1YWxsaW5rICA9ICcuYWN0dWFsbGluayc7ICMgQWN0
dWFsIHN5bWJvbGljIGxpbms6IHVzZXIgaG9tZWRpciArIGxpbmtuYW1lDQor
JHNfYWN0dWFsc3JjZiAgPSAnLmFjdHVhbHNyY2YnOyAjIEFjdHVhbCBzb3Vy
Y2UgZmlsZTogc2tlbG90aGVyICsgc2tlbGZpbGUNCiskc19hY3R1YWxkc3Rm
ICA9ICcuYWN0dWFsZHN0Zic7ICMgQWN0dWFsIGRlc3RpbmF0aW9uIGZpbGU6
IGFjdHVhbGRpciArIHNrZWxmaWxlDQorDQorJHNfYWRkdG9ncm91cEIgPSAn
LmFkZHRvZ3JvdXBCJzsgICAgICAgICMgQm9vbGVhbiB2ZXJzaW9ucyBvZiB2
YXJpYWJsZXMNCiskc19hbHRob21lQiAgICA9ICcuYWx0aG9tZUInOw0KKyRz
X21vdW50ZWRCICAgID0gJy5tb3VudGVkQic7DQorJHNfbWtkaXJCICAgICAg
PSAnLm1rZGlyQic7DQorJHNfY2hncnBkaXJCICAgPSAnLmNoZ3JwZGlyQic7
DQorJHNfbWtsaW5rQiAgICAgPSAnLm1rbGlua0InOw0KKyRzX2NoZ3Jwc2tl
bEIgID0gJy5jaGdycHNrZWxCJzsNCisNCisNCisjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjDQorIyBJbml0aWFsaXNlIGdsb2JhbCB2YXJpYWJsZXMN
CisNCiskY29uZmZpbGUgICAgICA9ICRkX2NvbmZmaWxlOyAgICMgRGVmYXVs
dCBjb25maWd1cmF0aW9uIGZpbGUNCiskdmVyYm9zZSAgICAgICA9IDE7ICAg
ICAgICAgICAgICMgQmUgdmVyYm9zZSBieSBkZWZhdWx0DQorJGRyeXJ1biAg
ICAgICAgPSAwOyAgICAgICAgICAgICAjIE5PVCBhIGRyeSBydW4gYnkgZGVm
YXVsdA0KKw0KKyRzZXAgICAgICAgICAgID0gJy4nOyAgICAgICAgICAgIyBT
ZXJ2aWNlLXNwZWNpZmljIHNlcGFyYXRvcg0KKw0KK0BzZXJ2aWNlcyAgICAg
ID0gKCk7ICAgICAgICAgICAgIyBObyBzZXJ2aWNlcyB0byBpbnN0YWxsIGJ5
IGRlZmF1bHQNCisNCisjICVjdiBpcyBhIGhhc2ggZm9yIGFsbCBjb25maWd1
cmF0aW9uIHZhcmlhYmxlcyByZWFkIGluIGZyb20gdGhlDQorIyBjb25maWd1
cmF0aW9uIGZpbGUuICBHbG9iYWwgdmFyaWFibGVzIGFyZSByZXByZXNlbnRl
ZCBieSB0aGVpciBzdHJpbmdzLA0KKyMgZWcsICRjdnsic2tlbG90aGVyIn0u
ICBTZXJ2aWNlLXNwZWNpZmljIHZhcmlhYmxlcyBhcmUgcmVwcmVzZW50ZWQg
YnkgdGhlDQorIyBzZXJ2aWNlIHN0cmluZyB2YWx1ZSwgdGhlbiAkc2VwLCB0
aGVuIHRoZWlyIHN0cmluZywgZWcsICRjdnsid3d3LnVzZXIifS4NCisjIFRo
ZSAlY2wgaGFzaCBwbGF5cyBhIHNpbWlsYXIgcm9sZSwgYnV0IGNvbnRhaW5z
IHRoZSBsaW5lIG51bWJlciBvZiB0aGUNCisjIGNvbmZpZ3VyYXRpb24uDQor
DQorJGN2eyRzX3NrZWxvdGhlcn0gPSAkZF9za2Vsb3RoZXI7ICAkY2x7JHNf
c2tlbG90aGVyfSA9IDA7DQorJGN2eyRzX2Rpcm1vZGV9ICAgPSAkZF9kaXJt
b2RlOyAgICAkY2x7JHNfZGlybW9kZX0gICA9IDA7DQorJGN2eyRzX2ZpbGVt
b2RlfSAgPSAkZF9maWxlbW9kZTsgICAkY2x7JHNfZmlsZW1vZGV9ICA9IDA7
DQorDQorIyBGb3Igc2FmZXR5J3Mgc2FrZSwgaW5pdGlhbGlzZSB0aGUgUEFU
SCBlbnZpcm9ubWVudCB2YXJpYWJsZQ0KKw0KKyRFTlZ7UEFUSH0gPSAnL3Vz
ci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4nOw0KKw0KKw0KKyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjIFByb2Nlc3MgY29tbWFuZC1saW5l
IGFyZ3VtZW50cw0KKw0KK3doaWxlICgkXyA9ICRBUkdWWzBdKSB7DQorICAg
IGxhc3QgaWYgKCEgL14tLyk7DQorICAgIHNoaWZ0IEBBUkdWOw0KKyAgICBs
YXN0IGlmICgkXyBlcSAnLS0nKTsNCisNCisgICAgIyBTcGxpdCBjb21iaW5l
ZCBzaG9ydC1mb3JtIG9wdGlvbnMgaW50byBzaW5nbGUgYXJndW1lbnRzDQor
ICAgIGlmICgvXi0oXHd7Mix9KS8pIHsNCisgICAgICAgIG15IEBhcmdzID0g
c3BsaXQgLy8sICQxOw0KKw0KKyAgICAgICAgZm9yZWFjaCBteSAkYXJnIChA
YXJncykgew0KKyAgICAgICAgICAgICRhcmcgPSAiLSRhcmciOw0KKyAgICAg
ICAgfQ0KKyAgICAgICAgdW5zaGlmdCBAQVJHViwgQGFyZ3M7DQorICAgICAg
ICBuZXh0Ow0KKyAgICB9DQorDQorICAgICMgUHJvY2VzcyBjb21tYW5kLWxp
bmUgb3B0aW9ucw0KKyAgICBpZiAgICAoKCRfIGVxICctLWNvbmYnKSAgICB8
fCAoJF8gZXEgJy1jJykpIHsgICAgICAgIyAtLWNvbmYgZmlsZW5hbWUNCisg
ICAgICAgICZjaGtwYXJhbSgkXyk7DQorICAgICAgICAkY29uZmZpbGUgPSBz
aGlmdCBAQVJHVjsNCisgICAgfQ0KKw0KKyAgICBlbHNpZiAoKCRfIGVxICct
LWRyeS1ydW4nKSB8fCAoJF8gZXEgJy1uJykpIHsgICAgICAgIyAtLWRyeS1y
dW4NCisgICAgICAgICRkcnlydW4gPSAxOw0KKyAgICB9DQorDQorICAgIGVs
c2lmICgoJF8gZXEgJy0tcXVpZXQnKSAgIHx8ICgkXyBlcSAnLXEnKSkgeyAg
ICAgICAjIC0tcXVpZXQNCisgICAgICAgICR2ZXJib3NlID0gMDsNCisgICAg
fQ0KKw0KKyAgICBlbHNpZiAoKCRfIGVxICctLXZlcmJvc2UnKSB8fCAoJF8g
ZXEgJy12JykpIHsgICAgICAgIyAtLXZlcmJvc2UNCisgICAgICAgICR2ZXJi
b3NlID0gMTsNCisgICAgfQ0KKw0KKyAgICBlbHNpZiAoKCRfIGVxICctLWhl
bHAnKSAgICB8fCAoJF8gZXEgJy1oJykpIHsgICAgICAgIyAtLWhlbHANCisg
ICAgICAgICZzaG93dXNhZ2UoKTsNCisgICAgICAgIGV4aXQoMCk7DQorICAg
IH0NCisNCisgICAgZWxzaWYgKCgkXyBlcSAnLS12ZXJzaW9uJykgfHwgKCRf
IGVxICctVicpKSB7ICAgICAgICMgLS12ZXJzaW9uDQorICAgICAgICAmc2hv
d3ZlcnNpb24oKTsNCisgICAgICAgIGV4aXQoMCk7DQorICAgIH0NCisNCisg
ICAgZWxzZSB7DQorICAgICAgICAmc2hvd2NtZGxlcnIoIlVucmVjb2duaXNl
ZCBvcHRpb246ICRfIik7DQorICAgIH0NCit9DQorDQorDQorIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgUHJvY2VzcyBhZGRpdGlvbmFsIGNv
bW1hbmQtbGluZSBwYXJhbWV0ZXJzOiB1c2VybmFtZSBbdWlkIGdpZCBob21l
ZGlyXQ0KKw0KK2lmICgkI0FSR1YgPCAwKSB7ICZzaG93Y21kbGVycigiTWlz
c2luZyB1c2VybmFtZSBwYXJhbWV0ZXIiKTsgfQ0KK2lmICgkI0FSR1YgPiAz
KSB7ICZzaG93Y21kbGVycigiVG9vIG1hbnkgY29tbWFuZC1saW5lIHBhcmFt
ZXRlcnMiKTsgfQ0KKw0KKyMgSW5jbHVkZSBzb21lIHNhbml0eSBjaGVja2lu
Zy4gIFRoZXNlIGNoZWNrcyBhcmUgbm90IHBhcnRpY3VsYXJseQ0KKyMgcmln
b3JvdXMsIGFzIHJvb3QgY2FuIGRvIGFueXRoaW5nIGFueXdheS4uLiAgSXQg
aXMgbWVhbnQgdG8gc3RvcCBzaWxseQ0KKyMgbWlzdGFrZXMsIG5vdCB0byBz
dG9wIHRoaW5raW5nLiAgSW4gYW55IGNhc2UsIHRoaXMgc2NyaXB0IFNIT1VM
RCBvbmx5IGJlDQorIyBjYWxsZWQgZnJvbSBhZGR1c2VyKDgpLi4uDQorDQor
ZGllICIkTzogT25seSByb290IGNhbiBleGVjdXRlIHRoaXMgcHJvZ3JhbVxu
IiBpZiAoJD4gIT0gMCkgJiYgKCEgJGRyeXJ1bik7DQorDQoraWYgKCQjQVJH
ViA9PSAwKSB7DQorICAgICMgT25seSBhIHNpbmdsZSBwYXJhbWV0ZXI6IHVz
ZXJuYW1lDQorDQorICAgICR1c2VybmFtZSA9ICRBUkdWWzBdOw0KKw0KKyAg
ICAoJHRfbmFtZSwgbXkgJHQxLCAkdWlkLCAkZ2lkLCBteSAkdDIsIG15ICR0
MywgbXkgJHQ0LCAkaG9tZWRpcikNCisgICAgICAgID0gZ2V0cHduYW0oJHVz
ZXJuYW1lKTsNCisNCisgICAgZGllICIkTzogTm8gc3VjaCB1c2VyOiAkdXNl
cm5hbWVcbiIgaWYgISAkdF9uYW1lOw0KKw0KK30gZWxzaWYgKCQjQVJHViA9
PSAzKSB7DQorICAgICMgRm91ciBwYXJhbWV0ZXJzOiB1c2VybmFtZSB1aWQg
Z2lkIGhvbWVkaXINCisNCisgICAgJHVzZXJuYW1lID0gJEFSR1ZbMF07DQor
ICAgICR1aWQgICAgICA9ICRBUkdWWzFdOw0KKyAgICAkZ2lkICAgICAgPSAk
QVJHVlsyXTsNCisgICAgJGhvbWVkaXIgID0gJEFSR1ZbM107DQorDQorICAg
ICRob21lZGlyID1+IHMsLyQsLDsgICAgICAgICAgICAgIyBSZW1vdmUgdHJh
aWxpbmcgJy8nIGlmIHByZXNlbnQNCisgICAgKCR0X25hbWUsIG15ICR0MSwg
JHRfdWlkLCAkdF9naWQpID0gZ2V0cHduYW0oJHVzZXJuYW1lKTsNCisNCisg
ICAgZGllICIkTzogTm8gc3VjaCB1c2VyOiAkdXNlcm5hbWVcbiIgaWYgISAk
dF9uYW1lOw0KKyAgICBkaWUgIiRPOiBObyBzdWNoIFVJRDogJHVpZFxuIiBp
ZiAhIGdldHB3dWlkKCR1aWQpOw0KKyAgICBkaWUgIiRPOiBObyBzdWNoIEdJ
RDogJGdpZFxuIiBpZiAhIGdldGdyZ2lkKCRnaWQpOw0KKyAgICBkaWUgIiRP
OiBVSUQgb2YgdXNlciAkdXNlcm5hbWUgbm90IHRoZSBzYW1lIGFzICR1aWRc
biIgaWYgJHRfdWlkICE9ICR1aWQ7DQorICAgIGRpZSAiJE86IEdJRCBvZiB1
c2VyICR1c2VybmFtZSBub3QgdGhlIHNhbWUgYXMgJGdpZFxuIiBpZiAkdF9n
aWQgIT0gJGdpZDsNCisgICAgZGllICIkTzogRGlyZWN0b3J5ICRob21lZGly
IGRvZXMgbm90IGV4aXN0XG4iIGlmICEgLWQgJGhvbWVkaXI7DQorDQorfSBl
bHNlIHsNCisgICAgJnNob3djbWRsZXJyKCJNaXNzaW5nIHVpZCwgZ2lkIGFu
ZC9vciBob21lZGlyIHBhcmFtZXRlcnMiKTsNCit9DQorDQorDQorIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgUHJvY2VzcyB0aGUgY29uZmln
dXJhdGlvbiBmaWxlDQorDQoraWYgKCEgLXIgJGNvbmZmaWxlKSB7DQorICAg
IHdhcm4gIiRPOiBDYW5ub3QgcmVhZCBjb25maWd1cmF0aW9uIGZpbGUgJGNv
bmZmaWxlOlxuIjsNCisgICAgd2FybiAiJE86ICRjb25mZmlsZTogJCFcbiI7
DQorDQorICAgIGV4aXQoMCk7DQorfQ0KKw0KK3ByaW50ICJQcm9jZXNzaW5n
IGNvbmZpZ3VyYXRpb24gZmlsZSAkY29uZmZpbGVcbiIgaWYgJHZlcmJvc2U7
DQorDQorb3BlbihDT05GRklMRSwgJGNvbmZmaWxlKSB8fCBkaWUgIiRPOiAk
Y29uZmZpbGU6ICQhXG4iOw0KK3doaWxlICg8Q09ORkZJTEU+KSB7DQorICAg
IG15ICgkdmFyLCAkc3ZjLCAkdmFsKTsNCisNCisgICAgY2hvbXA7DQorDQor
ICAgICMgU2tpcCBjb21tZW50cyBhbmQgYmxhbmsgbGluZXMNCisgICAgbmV4
dCBpZiAvXlxzKiMvIHx8IC9eXHMqJC87DQorDQorICAgICMgVHJ5IG1hdGNo
aW5nIGEgZ2xvYmFsIHZhcmlhYmxlIHdpdGggb3Igd2l0aG91dCBxdW90ZXMN
CisgICAgaWYgKCgoJHZhciwgJHZhbCkgPSAvXlxzKihcdyspXHMqPVxzKigu
KikvKSA9PSAyKSB7DQorDQorICAgICAgICAjIFJlbW92ZSB0cmFpbGluZyBz
cGFjZXMgYW5kIHN1cnJvdW5kaW5nIHF1b3Rlcw0KKyAgICAgICAgIyAoVGVj
aG5pY2FsbHksIGRvaW5nIGl0IHRoaXMgd2F5IGlzIHNvbWV3aGF0IHNsb3Bw
eSkNCisgICAgICAgICR2YWwgPX4gcy9eKC4qPylccyokLyQxLzsNCisgICAg
ICAgICR2YWwgPX4gcy9eXCIoLiopXCIvJDEvOw0KKyAgICAgICAgJHZhbCA9
fiBzL15cJyguKilcJy8kMS87DQorDQorICAgICAgICBteSAkbGN2YXIgPSBs
YyAkdmFyOw0KKyAgICAgICAgbXkgJGxjdmFsID0gbGMgJHZhbDsNCisNCisg
ICAgICAgICMgUHJvY2VzcyB0aGUgZ2xvYmFsIHZhcmlhYmxlDQorICAgICAg
ICBpZiAoJGxjdmFyIGVxICRzX3NlcnZpY2UpIHsNCisNCisgICAgICAgICAg
ICAjIFNwZWNpYWwgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgInNl
cnZpY2UiDQorICAgICAgICAgICAgbXkgJHN2YzsNCisNCisgICAgICAgICAg
ICBpZiAoZ3JlcCgobGMgJF8pIGVxICRsY3ZhbCwgQHNlcnZpY2VzKSkgew0K
KyAgICAgICAgICAgICAgICB3YXJuICIkTzogU2VydmljZSBcIiR2YWxcIiBy
ZWRlZmluZWQgYXQgJGNvbmZmaWxlOiQuXG4iOw0KKyAgICAgICAgICAgICAg
ICBuZXh0Ow0KKyAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICBwdXNo
IEBzZXJ2aWNlcywgJHZhbDsNCisNCisgICAgICAgICAgICAjIFNldCB1cCBk
ZWZhdWx0IHZhbHVlcy4gIFNlZSB0aGUgbm90ZSBsYXRlciBvbiBhcyB0byB3
aHkgJHN2Yw0KKyAgICAgICAgICAgICMgaXMgZGVmaW5lZCBpbiB0aGUgZm9s
bG93aW5nIHdheS4NCisNCisgICAgICAgICAgICAkc3ZjID0gJGxjdmFsIC4g
JHNlcDsNCisNCisgICAgICAgICAgICAkY3Z7JHN2Yy4kc191c2VyfSAgICAg
ICA9ICRkX3VzZXI7DQorICAgICAgICAgICAgJGN2eyRzdmMuJHNfZ3JvdXB9
ICAgICAgPSAkZF9ncm91cDsNCisgICAgICAgICAgICAkY3Z7JHN2Yy4kc19h
ZGR0b2dyb3VwfSA9ICRkX2FkZHRvZ3JvdXA7DQorICAgICAgICAgICAgJGN2
eyRzdmMuJHNfaG9tZWRpcn0gICAgPSAkZF9ob21lZGlyOw0KKyAgICAgICAg
ICAgICRjdnskc3ZjLiRzX3N1YmRpcn0gICAgID0gJGRfc3ViZGlyOw0KKyAg
ICAgICAgICAgICRjdnskc3ZjLiRzX2FsdGhvbWV9ICAgID0gJGRfYWx0aG9t
ZTsNCisgICAgICAgICAgICAkY3Z7JHN2Yy4kc19tb3VudGVkfSAgICA9ICRk
X21vdW50ZWQ7DQorICAgICAgICAgICAgJGN2eyRzdmMuJHNfbWtkaXJ9ICAg
ICAgPSAkZF9ta2RpcjsNCisgICAgICAgICAgICAkY3Z7JHN2Yy4kc19jaGdy
cGRpcn0gICA9ICRkX2NoZ3JwZGlyOw0KKyAgICAgICAgICAgICRjdnskc3Zj
LiRzX21rbGlua30gICAgID0gJGRfbWtsaW5rOw0KKyAgICAgICAgICAgICRj
dnskc3ZjLiRzX2xpbmtuYW1lfSAgID0gJGRfbGlua25hbWU7DQorICAgICAg
ICAgICAgJGN2eyRzdmMuJHNfc2tlbGZpbGV9ICAgPSAkZF9za2VsZmlsZTsN
CisgICAgICAgICAgICAkY3Z7JHN2Yy4kc19jaGdycHNrZWx9ICA9ICRkX2No
Z3Jwc2tlbDsNCisNCisgICAgICAgICAgICAkY2x7JHN2Yy4kc191c2VyfSAg
ICAgICA9IDA7DQorICAgICAgICAgICAgJGNseyRzdmMuJHNfZ3JvdXB9ICAg
ICAgPSAwOw0KKyAgICAgICAgICAgICRjbHskc3ZjLiRzX2FkZHRvZ3JvdXB9
ID0gMDsNCisgICAgICAgICAgICAkY2x7JHN2Yy4kc19ob21lZGlyfSAgICA9
IDA7DQorICAgICAgICAgICAgJGNseyRzdmMuJHNfc3ViZGlyfSAgICAgPSAw
Ow0KKyAgICAgICAgICAgICRjbHskc3ZjLiRzX2FsdGhvbWV9ICAgID0gMDsN
CisgICAgICAgICAgICAkY2x7JHN2Yy4kc19tb3VudGVkfSAgICA9IDA7DQor
ICAgICAgICAgICAgJGNseyRzdmMuJHNfbWtkaXJ9ICAgICAgPSAwOw0KKyAg
ICAgICAgICAgICRjbHskc3ZjLiRzX2NoZ3JwZGlyfSAgID0gMDsNCisgICAg
ICAgICAgICAkY2x7JHN2Yy4kc19ta2xpbmt9ICAgICA9IDA7DQorICAgICAg
ICAgICAgJGNseyRzdmMuJHNfbGlua25hbWV9ICAgPSAwOw0KKyAgICAgICAg
ICAgICRjbHskc3ZjLiRzX3NrZWxmaWxlfSAgID0gMDsNCisgICAgICAgICAg
ICAkY2x7JHN2Yy4kc19jaGdycHNrZWx9ICA9IDA7DQorICAgICAgICB9DQor
ICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAjIE9yZGluYXJ5IGdsb2Jh
bCB2YXJpYWJsZQ0KKw0KKyAgICAgICAgICAgIGlmICghIGRlZmluZWQoJGN2
eyRsY3Zhcn0pKSB7DQorICAgICAgICAgICAgICAgIHdhcm4gIiRPOiBVbmtu
b3duIGdsb2JhbCB2YXJpYWJsZSBcIiR2YXJcIiBhdCAkY29uZmZpbGU6JC5c
biI7DQorICAgICAgICAgICAgICAgIG5leHQ7DQorICAgICAgICAgICAgfQ0K
Kw0KKyAgICAgICAgICAgICRjdnskbGN2YXJ9ID0gJHZhbDsNCisgICAgICAg
ICAgICAkY2x7JGxjdmFyfSA9ICQuOw0KKyAgICAgICAgfQ0KKyAgICB9DQor
DQorICAgICMgVHJ5IG1hdGNoaW5nIGEgc2VydmljZSB2YXJpYWJsZSB3aXRo
IG9yIHdpdGhvdXQgcXVvdGVzDQorICAgIGVsc2lmICgoKCR2YXIsICRzdmMs
ICR2YWwpID0gL15ccyooXHcrKVxzKlxbXHMqKFx3KylccypcXVxzKj1ccyoo
LiopLykgPT0gMykgew0KKw0KKyAgICAgICAgIyBSZW1vdmUgdHJhaWxpbmcg
c3BhY2VzIGFuZCBzdXJyb3VuZGluZyBxdW90ZXMNCisgICAgICAgICR2YWwg
PX4gcy9eKC4qPylccyokLyQxLzsNCisgICAgICAgICR2YWwgPX4gcy9eXCIo
LiopXCIvJDEvOw0KKyAgICAgICAgJHZhbCA9fiBzL15cJyguKilcJy8kMS87
DQorDQorICAgICAgICBteSAkbGN2YXIgPSBsYyAkdmFyOw0KKyAgICAgICAg
bXkgJGxjc3ZjID0gbGMgJHN2YzsNCisgICAgICAgIG15ICRzdmN2YXIgPSAk
bGNzdmMgLiAkc2VwIC4gJGxjdmFyOw0KKw0KKyAgICAgICAgaWYgKCEgZ3Jl
cCgobGMgJF8pIGVxICRsY3N2YywgQHNlcnZpY2VzKSkgew0KKyAgICAgICAg
ICAgIHdhcm4gIiRPOiBVbmRlZmluZWQgc2VydmljZSBcIiRzdmNcIiBhdCAk
Y29uZmZpbGU6JC5cbiI7DQorICAgICAgICAgICAgbmV4dDsNCisgICAgICAg
IH0NCisgICAgICAgIGlmICghIGRlZmluZWQoJGN2eyRzdmN2YXJ9KSkgew0K
KyAgICAgICAgICAgIHdhcm4gIiRPOiBVbmtub3duIHNlcnZpY2UgdmFyaWFi
bGUgXCIkdmFyXCIgYXQgJGNvbmZmaWxlOiQuXG4iOw0KKyAgICAgICAgICAg
IG5leHQ7DQorICAgICAgICB9DQorDQorICAgICAgICAkY3Z7JHN2Y3Zhcn0g
PSAkdmFsOw0KKyAgICAgICAgJGNseyRzdmN2YXJ9ID0gJC47DQorICAgIH0N
CisNCisgICAgIyBPdGhlcndpc2UsIGl0IGlzIGFuIGVycm9yIGluIHRoZSBj
b25maWd1cmF0aW9uIGZpbGUNCisgICAgZWxzZSB7DQorICAgICAgICB3YXJu
ICIkTzogQ291bGQgbm90IHBhcnNlICRjb25mZmlsZTokLlxuIjsNCisgICAg
ICAgIG5leHQ7DQorICAgIH0NCit9DQorDQorY2xvc2UoQ09ORkZJTEUpIHx8
IGRpZSAiJE86ICRjb25mZmlsZTogJCFcbiI7DQorDQorDQorIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgR2xvYmFsIHZhcmlhYmxlcyBzYW5p
dHkgY2hlY2tpbmcNCit7DQorICAgIG15ICR0Ow0KKw0KKyAgICAjIENoZWNr
ICJza2Vsb3RoZXIiDQorDQorICAgIGlmICghIC1kICRjdnskc19za2Vsb3Ro
ZXJ9KSB7DQorICAgICAgICB3YXJuICIkTzogRGlyZWN0b3J5ICRjdnskc19z
a2Vsb3RoZXJ9IGRvZXMgbm90IGV4aXN0XG4iOw0KKyAgICB9DQorDQorICAg
ICMgQ2hlY2sgImRpcm1vZGUiDQorDQorICAgICR0ID0gJGN2eyRzX2Rpcm1v
ZGV9Ow0KKyAgICBpZiAoKCR0ICF+IC9eWzAxMjM0NTY3XXsxLDR9JC8pIHx8
IChvY3QoJHQpID09IDApKSB7DQorICAgICAgICB3YXJuICIkTzogSWxsZWdh
bCB2YWx1ZSBcIiR0XCIgYXQgJGNvbmZmaWxlOiRjbHskc19kaXJtb2RlfVxu
IjsNCisgICAgICAgIHdhcm4gIiRPOiBHbG9iYWwgdmFyaWFibGUgXCIkc19k
aXJtb2RlXCIgc2V0IHRvICRkX2Rpcm1vZGVcbiI7DQorICAgICAgICAkY3Z7
JHNfZGlybW9kZX0gPSAkZF9kaXJtb2RlOw0KKyAgICB9DQorDQorICAgICMg
Q2hlY2sgImZpbGVtb2RlIg0KKw0KKyAgICAkdCA9ICRjdnskc19maWxlbW9k
ZX07DQorICAgIGlmICgoJHQgIX4gL15bMDEyMzQ1NjddezEsNH0kLykgfHwg
KG9jdCgkdCkgPT0gMCkpIHsNCisgICAgICAgIHdhcm4gIiRPOiBJbGxlZ2Fs
IHZhbHVlIFwiJHRcIiBhdCAkY29uZmZpbGU6JGNseyRzX2ZpbGVtb2RlfVxu
IjsNCisgICAgICAgIHdhcm4gIiRPOiBHbG9iYWwgdmFyaWFibGUgXCIkc19m
aWxlbW9kZVwiIHNldCB0byAkZF9maWxlbW9kZVxuIjsNCisgICAgICAgICRj
dnskc19maWxlbW9kZX0gPSAkZF9maWxlbW9kZTsNCisgICAgfQ0KK30NCisN
CisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBBY3R1YWxs
eSBwZXJmb3JtIHdoYXQgaXMgcmVxdWlyZWQsIHdpdGggYXBwcm9wcmlhdGUg
ZXJyb3IgY2hlY2tpbmcNCisNCitmb3JlYWNoICRzZXJ2aWNlIChAc2Vydmlj
ZXMpIHsNCisNCisgICAgIyBOb3RlIHRoYXQgZGVmaW5pbmcgJHN2YyBpbiB0
aGUgZm9sbG93aW5nIHdheSBpcyByYXRoZXIgY2xldmVyOyBpdA0KKyAgICAj
IGFsbG93cyBhY2Nlc3MgdG8gdGhlICVjdiBhbmQgJWNsIGhhc2hlcyB0byBi
ZSBtb3JlIGFlc3RoZXRpY2FsbHkNCisgICAgIyBwbGVhc2luZywgZXNwZWNp
YWxseSB0byBhIEMgcHJvZ3JhbW1lciEgIEZvciBleGFtcGxlLCB0aGUgIm1r
ZGlyIg0KKyAgICAjIGNvbXBvbmVudCB3b3VsZCBiZSBhY2Nlc3NlZCBieSAk
Y3Z7JHN2Yy4kc19ta2Rpcn0gaW5zdGVhZCBvZiB0aGUNCisgICAgIyBtb3Jl
IGN1bWJlcnNvbWUgKGJ1dCBlcXVpdmFsZW50KSAkY3Z7bGMoJHNlcnZpY2Up
IC4gJHNlcCAuICRzX21rZGlyfS4NCisNCisgICAgbXkgJHN2YyA9IGxjKCRz
ZXJ2aWNlKSAuICRzZXA7DQorICAgIG15ICgkdF91c2VyLCAkdF9ncm91cCwg
JHRfaG9tZWRpcik7DQorDQorICAgIHByaW50ICJQcm9jZXNzaW5nIHNlcnZp
Y2UgXCIkc2VydmljZVwiXG4iIGlmICR2ZXJib3NlOw0KKw0KKyAgICAjIENo
ZWNrIHZhbGlkaXR5IG9mIGFsbCBib29sZWFuIHZhcmlhYmxlcyBhbmQgY29u
dmVydCB0aGVtIHRvIHRydWUgYm9vbHMNCisNCisgICAgJmNoa2Jvb2woJHN2
Yy4kc19hZGR0b2dyb3VwLCAkc3ZjLiRzX2FkZHRvZ3JvdXBCLCAkZF9hZGR0
b2dyb3VwLCAiJHNfYWRkdG9ncm91cFxbJHNlcnZpY2VcXSIpOw0KKyAgICAm
Y2hrYm9vbCgkc3ZjLiRzX2FsdGhvbWUsICAgICRzdmMuJHNfYWx0aG9tZUIs
ICAgICRkX2FsdGhvbWUsICAgICIkc19hbHRob21lXFskc2VydmljZVxdIik7
DQorICAgICZjaGtib29sKCRzdmMuJHNfbW91bnRlZCwgICAgJHN2Yy4kc19t
b3VudGVkQiwgICAgJGRfbW91bnRlZCwgICAgIiRzX21vdW50ZWRcWyRzZXJ2
aWNlXF0iKTsNCisgICAgJmNoa2Jvb2woJHN2Yy4kc19ta2RpciwgICAgICAk
c3ZjLiRzX21rZGlyQiwgICAgICAkZF9ta2RpciwgICAgICAiJHNfbWtkaXJc
WyRzZXJ2aWNlXF0iKTsNCisgICAgJmNoa2Jvb2woJHN2Yy4kc19jaGdycGRp
ciwgICAkc3ZjLiRzX2NoZ3JwZGlyQiwgICAkZF9jaGdycGRpciwgICAiJHNf
Y2hncnBkaXJcWyRzZXJ2aWNlXF0iKTsNCisgICAgJmNoa2Jvb2woJHN2Yy4k
c19ta2xpbmssICAgICAkc3ZjLiRzX21rbGlua0IsICAgICAkZF9ta2xpbmss
ICAgICAiJHNfbWtsaW5rXFskc2VydmljZVxdIik7DQorICAgICZjaGtib29s
KCRzdmMuJHNfY2hncnBza2VsLCAgJHN2Yy4kc19jaGdycHNrZWxCLCAgJGRf
Y2hncnBza2VsLCAgIiRzX2NoZ3Jwc2tlbFxbJHNlcnZpY2VcXSIpOw0KKw0K
KyAgICAjIFByb2Nlc3MgdGhlICJ1c2VyIiBjb25maWd1cmF0aW9uIHZhcmlh
YmxlDQorDQorICAgIGlmICgkY3Z7JHN2Yy4kc191c2VyfSBuZSAnJykgew0K
KyAgICAgICAgIyBSZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3Bl
Y2lmaWVkIHNlcnZpY2UncyB1c2VyIG5hbWUNCisNCisgICAgICAgICgkdF91
c2VyLCBteSAkdDEsICRjdnskc3ZjLiRzX3N2Y3VpZH0sICRjdnskc3ZjLiRz
X3N2Y2dpZH0sDQorICAgICAgICAgbXkgJHQyLCBteSAkdDMsIG15ICR0NCwg
JHRfaG9tZWRpcikNCisgICAgICAgICAgICA9IGdldHB3bmFtICRjdnskc3Zj
LiRzX3VzZXJ9Ow0KKw0KKyAgICAgICAgaWYgKCEgJHRfdXNlcikgew0KKyAg
ICAgICAgICAgIHdhcm4gIiRPOiBJbGxlZ2FsIHVzZXIgbmFtZSBcIiRjdnsk
c3ZjLiRzX3VzZXJ9XCIgYXQgJGNvbmZmaWxlOiRjbHskc3ZjLiRzX3VzZXJ9
XG4iOw0KKyAgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAgICAkY3Z7JHN2
Yy4kc191c2VyfSA9ICR0X3VzZXI7DQorICAgICAgICB9DQorDQorICAgICAg
ICAjIE9ubHkgc2V0IGhvbWUgZGlyZWN0b3J5IGluZm9ybWF0aW9uIGlmIG5v
dCBzcGVjaWZpZWQgYnkgdXNlcg0KKyAgICAgICAgaWYgKCRjdnskc3ZjLiRz
X2hvbWVkaXJ9IGVxICcnKSB7DQorICAgICAgICAgICAgaWYgKCRjdnskc3Zj
LiRzX2FsdGhvbWVCfSkgew0KKyAgICAgICAgICAgICAgICAkY3Z7JHN2Yy4k
c19ob21lZGlyfSA9ICRob21lZGlyOyAgICAgICMgRnJvbSBjb21tYW5kIGxp
bmUNCisgICAgICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgICAgICAk
Y3Z7JHN2Yy4kc19ob21lZGlyfSA9ICR0X2hvbWVkaXI7ICAgICMgRnJvbSBz
ZXJ2aWNlJ3MgaG9tZQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisN
CisgICAgICAgICMgSWYgdGhlIGdyb3VwIHBhcmFtZXRlciBpcyBub3Qgc3Bl
Y2lmaWVkLCBnZXQgdGhlIGFwcHJvcHJpYXRlIGluZm8NCisgICAgICAgICMg
ZnJvbSB0aGUgdXNlciBpbmZvcm1hdGlvbg0KKyAgICAgICAgaWYgKCRjdnsk
c3ZjLiRzX3N2Y2dpZH0gJiYgKCRjdnskc3ZjLiRzX2dyb3VwfSBlcSAnJykp
IHsNCisgICAgICAgICAgICAoJGN2eyRzdmMuJHNfZ3JvdXB9KSA9IGdldGdy
Z2lkICRjdnskc3ZjLiRzX3N2Y2dpZH07DQorICAgICAgICB9DQorICAgIH0N
CisNCisgICAgIyBQcm9jZXNzIHRoZSAiZ3JvdXAiIGNvbmZpZ3VyYXRpb24g
dmFyaWFibGUNCisNCisgICAgaWYgKCRjdnskc3ZjLiRzX2dyb3VwfSBuZSAn
Jykgew0KKyAgICAgICAgIyBSZXRyaWV2ZSBpbmZvIGFib3V0IHRoZSBncm91
cC4gIFllcywgaXQgbWF5IGhhdmUgYmVlbiBkb25lDQorICAgICAgICAjIGFi
b3ZlLCBidXQgc3BlY2lmeWluZyAiZ3JvdXAiIGNhbiBiZSBkb25lIHdpdGhv
dXQgc3BlY2lmeWluZw0KKyAgICAgICAgIyAidXNlciIuICBJbiBhZGRpdGlv
biwgYSBkaWZmZXJlbnQgZ3JvdXAgY2FuIGJlIHNwZWNpZmllZCBmcm9tDQor
ICAgICAgICAjIHRoYXQgdXNlZCBieSAidXNlciIuDQorDQorICAgICAgICAo
JHRfZ3JvdXAsIG15ICR0MSwgJGN2eyRzdmMuJHNfc3ZjZ2lkfSkgPSBnZXRn
cm5hbSAkY3Z7JHN2Yy4kc19ncm91cH07DQorDQorICAgICAgICBpZiAoISAk
dF9ncm91cCkgew0KKyAgICAgICAgICAgIHdhcm4gIiRPOiBJbGxlZ2FsIGdy
b3VwIG5hbWUgXCIkY3Z7JHN2Yy4kc19ncm91cH1cIiBhdCAkY29uZmZpbGU6
JGNseyRzdmMuJHNfZ3JvdXB9XG4iOw0KKw0KKyAgICAgICAgICAgICRjdnsk
c3ZjLiRzX2FkZHRvZ3JvdXB9ID0gJHNfZmFsc2U7ICAgJGN2eyRzdmMuJHNf
YWRkdG9ncm91cEJ9ID0gMDsNCisgICAgICAgICAgICAkY3Z7JHN2Yy4kc19j
aGdycGRpcn0gICA9ICRzX2ZhbHNlOyAgICRjdnskc3ZjLiRzX2NoZ3JwZGly
Qn0gICA9IDA7DQorICAgICAgICAgICAgJGN2eyRzdmMuJHNfY2hncnBza2Vs
fSAgPSAkc19mYWxzZTsgICAkY3Z7JHN2Yy4kc19jaGdycHNrZWxCfSAgPSAw
Ow0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAg
JGN2eyRzdmMuJHNfZ3JvdXB9ID0gJHRfZ3JvdXA7DQorICAgICAgICB9DQor
ICAgIH0NCisNCisgICAgIyBQcm9jZXNzIHRoZSAiYWRkdG9ncm91cCIgY29u
ZmlndXJhdGlvbiB2YXJpYWJsZQ0KKw0KKyAgICBpZiAoJGN2eyRzdmMuJHNf
YWRkdG9ncm91cEJ9ICYmICgkY3Z7JHN2Yy4kc19ncm91cH0gbmUgJycpKSB7
DQorDQorICAgICAgICBteSAkdCA9ICRjdnskc3ZjLiRzX2dyb3VwfTsNCisg
ICAgICAgICgkdF9ncm91cCwgbXkgJHQxLCAkdF9naWQsICR0X21lbWJlcnMp
ID0gZ2V0Z3JuYW0gJHQ7DQorDQorICAgICAgICAjIENoZWNrIGlmIHRoZSB1
c2VyIGlzIGFscmVhZHkgYSBtZW1iZXIgb2YgdGhhdCBncm91cA0KKw0KKyAg
ICAgICAgaWYgKCgkdF9naWQgPT0gJGdpZCkgfHwgZ3JlcCgkXyBlcSAkdXNl
cm5hbWUsIHNwbGl0KCcgJywgJHRfbWVtYmVycykpKSB7DQorICAgICAgICAg
ICAgcHJpbnQgIiAgICBVc2VyIFwiJHVzZXJuYW1lXCIgYWxyZWFkeSBpbiBn
cm91cCBcIiR0XCJcbiINCisgICAgICAgICAgICAgICAgaWYgJHZlcmJvc2U7
DQorICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgIHByaW50ICIgICAg
QWRkaW5nIHVzZXIgXCIkdXNlcm5hbWVcIiB0byBncm91cCBcIiR0XCJcbiIN
CisgICAgICAgICAgICAgICAgaWYgJHZlcmJvc2U7DQorICAgICAgICAgICAg
c3lzdGVtKEBhZGR1c2VyLCAkdXNlcm5hbWUsICR0KSBpZiAhICRkcnlydW47
DQorICAgICAgICB9DQorICAgIH0NCisNCisgICAgIyBQcm9jZXNzIHRoZSAi
bW91bnRlZCIgY29uZmlndXJhdGlvbiB2YXJpYWJsZQ0KKw0KKyAgICAkY3Z7
JHN2Yy4kc19ob21lZGlyfSA9fiBzLC8kLCw7ICAgICAgICAgICAgICMgUmVt
b3ZlIHRyYWlsaW5nIC8gb24gaG9tZWRpcg0KKyAgICAkY3Z7JHN2Yy4kc19z
dWJkaXJ9ICA9fiBzLF4vLCw7ICAgICAgICAgICAgICMgUmVtb3ZlIGxlYWRp
bmcgLyBvbiBzdWJkaXINCisgICAgJGN2eyRzdmMuJHNfc3ViZGlyfSAgPX4g
cywvJCwsOyAgICAgICAgICAgICAjIFJlbW92ZSB0cmFpbGluZyAvIG9uIHN1
YmRpcg0KKw0KKyAgICBpZiAoKCRjdnskc3ZjLiRzX2hvbWVkaXJ9IG5lICcn
KSAmJiAkY3Z7JHN2Yy4kc19tb3VudGVkQn0pIHsNCisgICAgICAgICMgTmVl
ZCB0byBjaGVjayBmb3IgIm1vdW50ZWQiIGJlZm9yZSBjaGVja2luZyBmb3Ig
dGhlIGV4aXN0ZW5jZSBvZg0KKyAgICAgICAgIyBvZiB0aGUgc2VydmljZSdz
IGhvbWUgZGlyZWN0b3J5Lg0KKw0KKyAgICAgICAgaWYgKCEgLXIgJHByb2Nt
b3VudHMpIHsNCisgICAgICAgICAgICB3YXJuICIkTzogJHByb2Ntb3VudHM6
ICQhXG4iOw0KKyAgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAgICBteSAo
JHRfZGV2LCAkdF9tbnRwb2ludCwgJHRfdHlwZSwgJHRfb3B0aW9ucyk7DQor
ICAgICAgICAgICAgbXkgJGlzbW91bnRlZCA9IDA7DQorICAgICAgICAgICAg
bXkgJHRfZGlyID0gJGN2eyRzdmMuJHNfaG9tZWRpcn0gLiAnLyc7DQorDQor
ICAgICAgICAgICAgIyBPcGVuIG1vdW50cyB0YWJsZSBhbmQgcHJvY2VzcyBp
dA0KKw0KKyAgICAgICAgICAgIG9wZW4oTU9VTlRTLCAkcHJvY21vdW50cykg
fHwgZGllICIkTzogJHByb2Ntb3VudHM6ICQhXG4iOw0KKyAgICAgICAgICAg
IHdoaWxlICg8TU9VTlRTPikgew0KKyAgICAgICAgICAgICAgICBjaG9tcDsN
CisgICAgICAgICAgICAgICAgKCR0X2RldiwgJHRfbW50cG9pbnQsICR0X3R5
cGUsICR0X29wdGlvbnMpID0gc3BsaXQ7DQorICAgICAgICAgICAgICAgIGlm
ICgkdF9tbnRwb2ludCAhfiBtLC8kLCkgeyAkdF9tbnRwb2ludCAuPSAnLyc7
IH0NCisNCisgICAgICAgICAgICAgICAgIyBDaGVjayBpZiB0aGUgc2Vydmlj
ZSdzIGhvbWUgZGlyZWN0b3J5IGlzIG1vdW50ZWQNCisgICAgICAgICAgICAg
ICAgIyBTa2lwICIvIiBhcyB0aGF0IGlzIGFsd2F5cyBtb3VudGVkDQorICAg
ICAgICAgICAgICAgIGlmICgoJHRfbW50cG9pbnQgbmUgJy8nKSAmJg0KKyAg
ICAgICAgICAgICAgICAgICAgKHN1YnN0cigkdF9kaXIsIDAsIGxlbmd0aCgk
dF9tbnRwb2ludCkpDQorICAgICAgICAgICAgICAgICAgICAgICAgZXEgJHRf
bW50cG9pbnQpKSB7DQorICAgICAgICAgICAgICAgICAgICAkaXNtb3VudGVk
ID0gMTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisg
ICAgICAgICAgICBjbG9zZShNT1VOVFMpIHx8IGRpZSAiJE86ICRwcm9jbW91
bnRzOiAkIVxuIjsNCisNCisgICAgICAgICAgICBpZiAoISAkaXNtb3VudGVk
KSB7DQorICAgICAgICAgICAgICAgIHByaW50ICIgICAgRGlyZWN0b3J5ICRj
dnskc3ZjLiRzX2hvbWVkaXJ9IG5vdCBtb3VudGVkXG4iDQorICAgICAgICAg
ICAgICAgICAgICBpZiAkdmVyYm9zZTsNCisgICAgICAgICAgICAgICAgJGN2
eyRzdmMuJHNfaG9tZWRpcn0gPSAnJzsNCisgICAgICAgICAgICB9DQorICAg
ICAgICB9DQorICAgIH0NCisNCisgICAgIyBQcm9jZXNzIHRoZSAiaG9tZWRp
ciIgYW5kICJzdWJkaXIiIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzDQorDQor
ICAgIGlmICgkY3Z7JHN2Yy4kc19ob21lZGlyfSBuZSAnJykgew0KKyAgICAg
ICAgaWYgKCEgLWQgJGN2eyRzdmMuJHNfaG9tZWRpcn0pIHsNCisgICAgICAg
ICAgICB3YXJuICIkTzogRGlyZWN0b3J5ICRjdnskc3ZjLiRzX2hvbWVkaXJ9
IGRvZXMgbm90IGV4aXN0XG4iOw0KKyAgICAgICAgICAgICRjdnskc3ZjLiRz
X2hvbWVkaXJ9ID0gJyc7DQorICAgICAgICB9DQorICAgICAgICBlbHNpZiAo
KCRjdnskc3ZjLiRzX3N1YmRpcn0gbmUgJycpICYmICghICRjdnskc3ZjLiRz
X2FsdGhvbWVCfSkpIHsNCisgICAgICAgICAgICBteSAkdCA9ICRjdnskc3Zj
LiRzX2hvbWVkaXJ9IC4gJy8nIC4gJGN2eyRzdmMuJHNfc3ViZGlyfTsNCisg
ICAgICAgICAgICBpZiAoISAtZCAkdCkgew0KKyAgICAgICAgICAgICAgICB3
YXJuICIkTzogRGlyZWN0b3J5ICR0IGRvZXMgbm90IGV4aXN0XG4iOw0KKyAg
ICAgICAgICAgICAgICAkY3Z7JHN2Yy4kc19zdWJkaXJ9ID0gJyc7DQorICAg
ICAgICAgICAgICAgICRjdnskc3ZjLiRzX2hvbWVkaXJ9ID0gJyc7DQorICAg
ICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorICAgICMgQ2Fs
Y3VsYXRlIHRoZSBhY3R1YWwgZGlyZWN0b3J5IHRvIGNyZWF0ZSAoaWYgbmVj
ZXNzYXJ5KQ0KKw0KKyAgICBpZiAoJGN2eyRzdmMuJHNfaG9tZWRpcn0gbmUg
JycpIHsNCisgICAgICAgICRjdnskc3ZjLiRzX2FjdHVhbGRpcn0gPSAkY3Z7
JHN2Yy4kc19ob21lZGlyfTsNCisgICAgICAgIGlmICgkY3Z7JHN2Yy4kc19z
dWJkaXJ9IG5lICcnKSB7DQorICAgICAgICAgICAgJGN2eyRzdmMuJHNfYWN0
dWFsZGlyfSAuPSAnLycgLiAkY3Z7JHN2Yy4kc19zdWJkaXJ9Ow0KKyAgICAg
ICAgfQ0KKyAgICAgICAgaWYgKCEgJGN2eyRzdmMuJHNfYWx0aG9tZUJ9KSB7
DQorICAgICAgICAgICAgJGN2eyRzdmMuJHNfYWN0dWFsZGlyfSAuPSAnLycg
LiAkdXNlcm5hbWU7DQorICAgICAgICB9DQorICAgIH0NCisNCisgICAgIyBQ
cm9jZXNzIHRoZSAibWtkaXIiIGFuZCAiY2hncnBkaXIiIGNvbmZpZ3VyYXRp
b24gdmFyaWFibGVzDQorDQorICAgIGlmICgoJGN2eyRzdmMuJHNfaG9tZWRp
cn0gbmUgJycpICYmICRjdnskc3ZjLiRzX21rZGlyQn0pIHsNCisgICAgICAg
IG15ICR0ID0gJGN2eyRzdmMuJHNfYWN0dWFsZGlyfTsNCisNCisgICAgICAg
IGlmICgtZCAkdCkgew0KKyAgICAgICAgICAgIHByaW50ICIgICAgRGlyZWN0
b3J5ICR0IGFscmVhZHkgZXhpc3RzXG4iIGlmICR2ZXJib3NlOw0KKyAgICAg
ICAgfSBlbHNpZiAoLWUgJHQpIHsNCisgICAgICAgICAgICB3YXJuICIkTzog
JHQgaXMgbm90IGEgZGlyZWN0b3J5XG4iOw0KKyAgICAgICAgICAgICRjdnsk
c3ZjLiRzX2hvbWVkaXJ9ID0gJyc7DQorICAgICAgICB9IGVsc2Ugew0KKyAg
ICAgICAgICAgIHByaW50ICIgICAgRGlyZWN0b3J5ICR0IGNyZWF0ZWRcbiIg
aWYgJHZlcmJvc2U7DQorICAgICAgICAgICAgbWtkaXIoJHQsIG9jdCgkY3Z7
JHNfZGlybW9kZX0pKSBpZiAhICRkcnlydW47DQorICAgICAgICAgICAgICAg
ICMgTm90ZSB0aGF0IHRoaXMgbmV3bHktY3JlYXRlZCBkaXJlY3Rvcnkgd2ls
bCBpbmhlcml0IHRoZQ0KKyAgICAgICAgICAgICAgICAjIFNHSUQgKHNldCBn
cm91cCBJRCkgYml0IGZyb20gaXRzIHBhcmVudCBkaXJlY3RvcnkuICBUaGlz
DQorICAgICAgICAgICAgICAgICMgSVMgZGVzaXJlZCwgaGVuY2UsIGRvIE5P
VCBkbyBhIHNlcGFyYXRlIGNobW9kKCkhDQorICAgICAgICAgICAgaWYgKCRj
dnskc3ZjLiRzX2NoZ3JwZGlyQn0pIHsNCisgICAgICAgICAgICAgICAgY2hv
d24oJHVpZCwgJGN2eyRzdmMuJHNfc3ZjZ2lkfSwgJHQpIGlmICEgJGRyeXJ1
bjsNCisgICAgICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgICAgICBj
aG93bigkdWlkLCAkZ2lkLCAkdCkgaWYgISAkZHJ5cnVuOw0KKyAgICAgICAg
ICAgIH0NCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgICAjIFByb2Nlc3Mg
dGhlICJta2xpbmsiIGFuZCAibGlua25hbWUiIGNvbmZpZ3VyYXRpb24gdmFy
aWFibGVzDQorDQorICAgIGlmICgoJGN2eyRzdmMuJHNfaG9tZWRpcn0gbmUg
JycpICYmICRjdnskc3ZjLiRzX21rbGlua0J9DQorICAgICAgICAmJiAoLWQg
JGN2eyRzdmMuJHNfYWN0dWFsZGlyfSkpIHsNCisNCisgICAgICAgICMgQ2Fs
Y3VsYXRlIHRoZSBhY3R1YWwgbGluayBuYW1lDQorDQorICAgICAgICAkY3Z7
JHN2Yy4kc19saW5rbmFtZX0gPX4gcywvJCwsOyAgICAgICAgIyBSZW1vdmUg
dHJhaWxpbmcgJy8nDQorDQorICAgICAgICBpZiAoJGN2eyRzdmMuJHNfbGlu
a25hbWV9IGVxICcnKSB7DQorICAgICAgICAgICAgJGN2eyRzdmMuJHNfYWN0
dWFsbGlua30gPSAkaG9tZWRpciAuICcvJyAuICRzZXJ2aWNlOw0KKyAgICAg
ICAgfSBlbHNlIHsNCisgICAgICAgICAgICAkY3Z7JHN2Yy4kc19hY3R1YWxs
aW5rfSA9ICRob21lZGlyIC4gJy8nIC4gJGN2eyRzdmMuJHNfbGlua25hbWV9
Ow0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgIyBDcmVhdGUgdGhlIHN5bWJv
bGljIGxpbmssIGlmIG5lZWRlZA0KKw0KKyAgICAgICAgbXkgJHQgPSAkY3Z7
JHN2Yy4kc19hY3R1YWxsaW5rfTsNCisgICAgICAgIGlmICgtbCAkdCkgew0K
KyAgICAgICAgICAgIHByaW50ICIgICAgU3ltYm9saWMgbGluayAkdCBhbHJl
YWR5IGV4aXN0c1xuIg0KKyAgICAgICAgICAgICAgICBpZiAkdmVyYm9zZTsN
CisgICAgICAgIH0gZWxzaWYgKC1lICR0KSB7DQorICAgICAgICAgICAgd2Fy
biAiJE86ICR0IGlzIG5vdCBhIHN5bWJvbGljIGxpbmtcbiI7DQorICAgICAg
ICB9IGVsc2Ugew0KKyAgICAgICAgICAgIHByaW50ICIgICAgU3ltYm9saWMg
bGluayAkdCBjcmVhdGVkXG4iIGlmICR2ZXJib3NlOw0KKyAgICAgICAgICAg
IHN5bWxpbmsoJGN2eyRzdmMuJHNfYWN0dWFsZGlyfSwgJHQpIGlmICEgJGRy
eXJ1bjsNCisgICAgICAgICAgICBpZiAoJGN2eyRzdmMuJHNfY2hncnBkaXJC
fSkgew0KKyAgICAgICAgICAgICAgICAmbGNob3duKCR1aWQsICRjdnskc3Zj
LiRzX3N2Y2dpZH0sICR0KSBpZiAhICRkcnlydW47DQorICAgICAgICAgICAg
fSBlbHNlIHsNCisgICAgICAgICAgICAgICAgJmxjaG93bigkdWlkLCAkZ2lk
LCAkdCkgaWYgISAkZHJ5cnVuOw0KKyAgICAgICAgICAgIH0NCisgICAgICAg
ICAgICAgICAgIyBOb3RlIHRoYXQgY2hvd24gY2FuIE5PVCBiZSB1c2VkIG9u
IExpbnV4IHZlcnNpb25zIDIuMS44MQ0KKyAgICAgICAgICAgICAgICAjIG9y
IGxhdGVyLCBhcyBpdCBjaGFuZ2VzIHRoZSBvd25lcnNoaXAgb2YgdGhlIFRB
UkdFVCBvZg0KKyAgICAgICAgICAgICAgICAjIHRoZSBzeW1ib2xpYyBsaW5r
Lg0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorICAgICMgUHJvY2VzcyB0aGUg
InNrZWxmaWxlIiBhbmQgImNoZ3Jwc2tlbCIgY29uZmlndXJhdGlvbiB2YXJp
YWJsZXMNCisNCisgICAgaWYgKCgkY3Z7JHN2Yy4kc19ob21lZGlyfSBuZSAn
JykgJiYgKCRjdnskc3ZjLiRzX3NrZWxmaWxlfSBuZSAnJykNCisgICAgICAg
ICYmICgtZCAkY3Z7JHN2Yy4kc19hY3R1YWxkaXJ9KSkgew0KKw0KKyAgICAg
ICAgbXkgJHQgPSAkY3Z7JHN2Yy4kc19za2VsZmlsZX07DQorICAgICAgICAk
Y3Z7JHN2Yy4kc19hY3R1YWxzcmNmfSA9ICRjdnskc19za2Vsb3RoZXJ9IC4g
Jy8nIC4gJHQ7DQorICAgICAgICAkY3Z7JHN2Yy4kc19hY3R1YWxkc3RmfSA9
ICRjdnskc3ZjLiRzX2FjdHVhbGRpcn0gLiAnLycgLiAkdDsNCisNCisgICAg
ICAgIGlmICgtZSAkY3Z7JHN2Yy4kc19hY3R1YWxkc3RmfSkgew0KKyAgICAg
ICAgICAgIHByaW50ICIgICAgRmlsZSAkY3Z7JHN2Yy4kc19hY3R1YWxkc3Rm
fSBhbHJlYWR5IGV4aXN0c1xuIg0KKyAgICAgICAgICAgICAgICBpZiAkdmVy
Ym9zZTsNCisgICAgICAgIH0gZWxzaWYgKCEgLXIgJGN2eyRzdmMuJHNfYWN0
dWFsc3JjZn0pIHsNCisgICAgICAgICAgICB3YXJuICIkTzogJGN2eyRzdmMu
JHNfYWN0dWFsc3JjZn06ICQhXG4iOw0KKyAgICAgICAgfSBlbHNlIHsNCisg
ICAgICAgICAgICBwcmludCAiICAgIEZpbGUgJGN2eyRzdmMuJHNfYWN0dWFs
ZHN0Zn0gY3JlYXRlZFxuIiBpZiAkdmVyYm9zZTsNCisgICAgICAgICAgICBp
ZiAoJGN2eyRzdmMuJHNfY2hncnBza2VsQn0pIHsNCisgICAgICAgICAgICAg
ICAgc3lzdGVtKEBpbnN0YWxsLCAnLW0nLCAkY3Z7JHNfZmlsZW1vZGV9LCAn
LW8nLCAkdWlkLA0KKyAgICAgICAgICAgICAgICAgICAgICAgJy1nJywgJGN2
eyRzdmMuJHNfc3ZjZ2lkfSwNCisgICAgICAgICAgICAgICAgICAgICAgICRj
dnskc3ZjLiRzX2FjdHVhbHNyY2Z9LCAkY3Z7JHN2Yy4kc19hY3R1YWxkc3Rm
fSkNCisgICAgICAgICAgICAgICAgICAgIGlmICEgJGRyeXJ1bjsNCisgICAg
ICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgICAgICBzeXN0ZW0oQGlu
c3RhbGwsICctbScsICRjdnskc19maWxlbW9kZX0sICctbycsICR1aWQsICct
ZycsDQorICAgICAgICAgICAgICAgICAgICAgICAkZ2lkLCAkY3Z7JHN2Yy4k
c19hY3R1YWxzcmNmfSwgJGN2eyRzdmMuJHNfYWN0dWFsZHN0Zn0pDQorICAg
ICAgICAgICAgICAgICAgICBpZiAhICRkcnlydW47DQorICAgICAgICAgICAg
fQ0KKyAgICAgICAgfQ0KKyAgICB9DQorfQ0KKw0KKw0KKyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMNCisjIEVuZCBvZiBwcm9ncmFtDQorDQorZXhp
dCgwKTsNCisNCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQor
IyBTaG93IGFuIGVycm9yIG1lc3NhZ2UgcmVsYXRpbmcgdG8gdGhlIGNvbW1h
bmQtbGluZSBhbmQgdGVybWluYXRlDQorDQorc3ViIHNob3djbWRsZXJyIHsN
CisgICAgaWYgKEBfKSB7DQorICAgICAgICBmb3JlYWNoIG15ICRsaW5lIChA
Xykgew0KKyAgICAgICAgICAgIHdhcm4gIiRPOiAkbGluZVxuIjsNCisgICAg
ICAgIH0NCisgICAgfQ0KKw0KKyAgICBkaWUgIlxuVXNhZ2U6XG4iIC4NCisg
ICAgICAgICIgICAgJDAgWy0tZHJ5LXJ1bl0gWy0tY29uZiBmaWxlbmFtZV1c
biIgLg0KKyAgICAgICAgIiAgICAgICAgWy0tcXVpZXRdIFstLXZlcmJvc2Vd
IFstLWhlbHBdIFstLXZlcnNpb25dIFstbnF2aFZdXG4iIC4NCisgICAgICAg
ICIgICAgICAgIHVzZXJuYW1lIFt1aWQgZ2lkIGhvbWVkaXJdXG4iOw0KK30N
CisNCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBDaGVj
ayB0aGF0IHRoZSBuZXh0IGFyZ3VtZW50IGlzIGEgdmFsaWQgcGFyYW1ldGVy
DQorDQorc3ViIGNoa3BhcmFtICgkKSB7DQorICAgIG15ICRhcmcgPSAkX1sw
XTsNCisgICAgaWYgKCEgJEFSR1ZbMF0gfHwgKCRBUkdWWzBdID1+IC9eLS8p
KSB7DQorICAgICAgICAmc2hvd2NtZGxlcnIoIk1pc3NpbmcgYXJndW1lbnQg
Zm9yICRhcmciKTsNCisgICAgfQ0KK30NCisNCisNCisjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjDQorIyBDaGVjayB0aGF0IHRoZSBjb25maWd1cmF0
aW9uIHZhcmlhYmxlIGNvbnRhaW5zIGlzIGEgdmFsaWQgYm9vbGVhbiB2YWx1
ZQ0KKw0KK3N1YiBjaGtib29sICgkJCQkKSB7DQorICAgIG15ICR2YXIgID0g
JF9bMF07ICAgICAgICAgICAjIEhhc2gga2V5IG9mIHZhcmlhYmxlIHRvIGNo
ZWNrDQorICAgIG15ICRuZXcgID0gJF9bMV07ICAgICAgICAgICAjIEhhc2gg
a2V5IG9mIG5ldyB2YXJpYWJsZSwgYSB0cnVlIGJvb2xlYW4NCisgICAgbXkg
JGRlZiAgPSAkX1syXTsgICAgICAgICAgICMgRGVmYXVsdCB2YWx1ZSwgaW4g
Y2FzZSBvZiBlcnJvcg0KKyAgICBteSAkcHZhciA9ICRfWzNdOyAgICAgICAg
ICAgIyBDb25maWcuIHZhcmlhYmxlIG5hbWUgKGZvciB3YXJuaW5ncykNCisN
CisgICAgbXkgJHZhbCA9IGxjICRjdnskdmFyfTsNCisNCisgICAgaWYgKGdy
ZXAoJF8gZXEgJHZhbCwgQHNfdHJ1ZSkpIHsNCisgICAgICAgICRjdnskbmV3
fSA9IDE7DQorICAgIH0gZWxzaWYgKGdyZXAoJF8gZXEgJHZhbCwgQHNfZmFs
c2UpKSB7DQorICAgICAgICAkY3Z7JG5ld30gPSAwOw0KKyAgICB9IGVsc2Ug
ew0KKyAgICAgICAgd2FybiAiJE86IElsbGVnYWwgdmFsdWUgXCIkY3Z7JHZh
cn1cIiBhdCAkY29uZmZpbGU6JGNseyR2YXJ9XG4iOw0KKyAgICAgICAgd2Fy
biAiJE86IFZhcmlhYmxlIFwiJHB2YXJcIiBzZXQgdG8gJGRlZlxuIjsNCisN
CisgICAgICAgICRjdnskdmFyfSA9ICRkZWY7DQorICAgICAgICAmY2hrYm9v
bCgkdmFyLCAkbmV3LCAkZGVmLCAkcHZhcik7DQorICAgIH0NCit9DQorDQor
DQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgQSBjaG93bigp
IHRoYXQgd29ya3Mgd2l0aCBzeW1ib2xpYyBsaW5rcw0KKw0KK3N1YiBsY2hv
d24gew0KKyAgICAjIFRoZSBjaG93bigpIGZ1bmN0aW9uIGRvZXMgTk9UIGNo
YW5nZSB0aGUgb3duZXJzaGlwIG9mIHN5bWJvbGljIGxpbmtzDQorICAgICMg
dW5kZXIgTGludXggMi4xLjgxIG9yIGxhdGVyLiAgSGVuY2UsIG1ha2UgYW4g
ZXh0ZXJuYWwgY2FsbCB0byB0aGUNCisgICAgIyBjaG93bigxKSBwcm9ncmFt
LiAgVGhpcyBwcm9ncmFtIE1VU1Qgc3VwcG9ydCB0aGUgIi1oIiBwYXJhbWV0
ZXIuDQorDQorICAgIG15ICR0X3VpZCA9IHNoaWZ0Ow0KKyAgICBteSAkdF9n
aWQgPSBzaGlmdDsNCisNCisgICAgc3lzdGVtKEBjaG93biwgJy1oJywgIiR0
X3VpZDokdF9naWQiLCBAXyk7DQorfQ0KKw0KKw0KKyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMNCisjIERpc3BsYXkgdXNhZ2UgaW5mb3JtYXRpb24N
CisNCitzdWIgc2hvd3VzYWdlICgpIHsNCisgICAgcHJpbnQgPDwiREFUQUVO
RCINCisNCiskTyB2JHZlcnNpb24gLS0tIGFkZHVzZXIoOCkgbG9jYWwgc3lz
dGVtIGFkZGl0aW9ucy4NCitDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSwgSm9o
biBaYWl0c2VmZi4NCisNCitUaGlzIHByb2dyYW0sIG9uY2UgaW5zdGFsbGVk
IGFzIC91c3IvbG9jYWwvc2Jpbi9hZGR1c2VyLmxvY2FsLCBpcyBhdXRvLQ0K
K21hdGljYWxseSBjYWxsZWQgYnkgdGhlIGFkZHVzZXIoOCkgc3lzdGVtIHBy
b2dyYW0gb24gYSBEZWJpYW4gc3lzdGVtLg0KK1RoaXMgc2NyaXB0IGNvbXBs
ZXRlcyB0aGUgY3JlYXRpb24gb2YgYSB1c2VyIGFjY291bnQgaW4gYSBzeXN0
ZW0tDQorZGVwZW5kZW50IHdheS4NCisNCitUaGlzIHNjcmlwdCBpcyBhdXRv
bWF0aWNhbGx5IGNhbGxlZCBieSBhZGR1c2VyIHdpdGggYXJndW1lbnRzICJ1
c2VybmFtZQ0KK3VpZCBnaWQgaG9tZWRpciIuICBTZWUgYWRkdXNlcig4KSBm
b3IgbW9yZSBkZXRhaWxzLiAgSW4gYWRkaXRpb24sIHRoaXMNCitzY3JpcHQg
bWF5IGJlIGNhbGxlZCBtYW51YWxseS4gIEluIHRoaXMgY2FzZSwgdGhlIGZv
bGxvd2luZyBzeW50YXgNCithcHBsaWVzOg0KKw0KKyAgICAvdXNyL2xvY2Fs
L3NiaW4vYWRkdXNlci5sb2NhbCBbb3B0aW9uc10gdXNlcm5hbWUgW3VpZCBn
aWQgaG9tZWRpcl0NCisNCit3aGVyZSB0aGUgZm9sbG93aW5nIG9wdGlvbnMg
ZXhpc3Q6DQorDQorICAgIC0tZHJ5LXJ1biAgICAgIC1uICAgLSBQcmV0ZW5k
IHRvIGZ1bGZpbCBldmVyeXRoaW5nIHJlcXVpcmVkLCB3aXRob3V0DQorICAg
ICAgICAgICAgICAgICAgICAgICAgICBkb2luZyBhbnl0aGluZy4NCisgICAg
LS1xdWlldCAgICAgICAgLXEgICAtIERvbid0IHNob3cgZXh0cmFuZW91cyBp
bmZvcm1hdGlvbi4NCisgICAgLS12ZXJib3NlICAgICAgLXYgICAtIFNob3cg
aW5mb3JtYXRpb24gYWJvdXQgd2hhdCB3YXMgZG9uZSAoZGVmYXVsdCkuDQor
ICAgIC0taGVscCAgICAgICAgIC1oICAgLSBTaG93IGEgYnJpZWYgY29tbWFu
ZC1saW5lIHN1bW1hcnkuDQorICAgIC0tdmVyc2lvbiAgICAgIC1WICAgLSBT
aG93IHRoZSB2ZXJzaW9uIG9mIHRoZSBhZGR1c2VyLmxvY2FsIHNjcmlwdC4N
CisgICAgLS1jb25mIDxmaWxlPiAgICAgICAtIFVzZSBjb25maWd1cmF0aW9u
IGZpbGUgPGZpbGU+IGluc3RlYWQgb2YgdGhlDQorICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0ICRkX2NvbmZmaWxlLg0KKw0KK0RBVEFFTkQN
CisNCit9DQorDQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0K
KyMgRGlzcGxheSBwcm9ncmFtIHZlcnNpb24gaW5mb3JtYXRpb24NCisNCitz
dWIgc2hvd3ZlcnNpb24gKCkgew0KKyAgICBwcmludCA8PCJEQVRBRU5EIg0K
Kw0KKyRPIHYkdmVyc2lvbiAtLS0gYWRkdXNlcig4KSBsb2NhbCBzeXN0ZW0g
YWRkaXRpb25zLg0KK0NvcHlyaWdodCAoQykgMTk5OS0yMDAxLCBKb2huIFph
aXRzZWZmLg0KKw0KK1RoaXMgcHJvZ3JhbSwgaW5jbHVkaW5nIGFzc29jaWF0
ZWQgZmlsZXMsIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgR2VuZXJh
bA0KK1B1YmxpYyBMaWNlbnNlLiAgU2VlIC91c3Ivc2hhcmUvY29tbW9uLWxp
Y2Vuc2VzL0dQTCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4NCisNCitEQVRBRU5E
DQorDQorfQ0KZGlmZiAtdXJOIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL3Vz
ci9zaGFyZS9kb2MvYWRkdXNlci9leGFtcGxlcy9hZGR1c2VyLmxvY2FsLmNv
bmYgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUv
ZG9jL2FkZHVzZXIvZXhhbXBsZXMvYWRkdXNlci5sb2NhbC5jb25mDQotLS0g
YWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJlL2RvYy9hZGR1c2Vy
L2V4YW1wbGVzL2FkZHVzZXIubG9jYWwuY29uZglUaHUgSmFuICAxIDEwOjAw
OjAwIDE5NzANCisrKyBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1w
L3Vzci9zaGFyZS9kb2MvYWRkdXNlci9leGFtcGxlcy9hZGR1c2VyLmxvY2Fs
LmNvbmYJV2VkIE1heSAgNyAxNzowMTo0MSAyMDAzDQpAQCAtMCwwICsxLDUy
NyBAQA0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjIC9l
dGMvYWRkdXNlci5sb2NhbC5jb25mOiBDb25maWd1cmF0aW9uIGZvciAvdXNy
L2xvY2FsL3NiaW4vYWRkdXNlci5sb2NhbCAjDQorIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIw0KKw0KKyMgW0pOWl0gTW9kaWZpZWQgMTctQXBy
LTIwMDENCisNCisjIFRoaXMgZmlsZSBjb25maWd1cmVzIHRoZSBsb2NhbCBz
eXN0ZW0gYWRkaXRpb25zIHRvIGFkZHVzZXIoOCkgYW5kIHNob3VsZA0KKyMg
YmUgbW9kaWZpZWQgdG8gc3VpdCBsb2NhbCBjb25kaXRpb25zLg0KKyMNCisj
IGFkZHVzZXIubG9jYWwgaXMgYSBzY3JpcHQgdGhhdCBjb25maWd1cmVzIGEg
dXNlcidzIGFjY291bnQgZm9yIHZhcmlvdXMNCisjICJzZXJ2aWNlcyIuICBU
aGVzZSBzZXJ2aWNlcyBhcmUgc2ltcGx5IGNvbnZlbmllbnQgbmFtZXMgZm9y
IGRpcmVjdG9yaWVzDQorIyB0aGF0IG11c3QgYmUgY3JlYXRlZCwgVW5peCBn
cm91cHMgdG8gd2hpY2ggdGhlIHVzZXIgbXVzdCBiZSBhZGRlZCwgZmlsZXMN
CisjIHRoYXQgbmVlZCB0byBiZSBjb3BpZWQgYW5kIHNvIG9uLg0KKyMNCisj
IFBsZWFzZSBzZWUgdGhlIGVuZCBvZiB0aGlzIGZpbGUgZm9yIGFuIGV4cGxh
bmF0aW9uIG9mIGl0cyBzeW50YXguDQorDQorDQorIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIw0KKyMgICBHbG9iYWwgT3B0aW9ucyAgICMNCisjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjDQorDQorIyBUaGUgInNrZWxvdGhlciIgdmFyaWFibGUg
cG9pbnRzIHRvIHRoZSAib3RoZXIiIHNrZWxldGFsIGRpcmVjdG9yeS4gIFRo
aXMNCisjIGRpcmVjdG9yeSBpcyBzaW1pbGFyIHRvIC9ldGMvc2tlbCAoc2Vl
IHRoZSBTS0VMIHZhcmlhYmxlIGluDQorIyAvZXRjL2FkZHVzZXIuY29uZiks
IGV4Y2VwdCB0aGF0IGZpbGVzIGFyZSBub3QgbmVjZXNzYXJpbHkgY29waWVk
IHRvIHRoZQ0KKyMgaG9tZSBkaXJlY3RvcnkuDQorDQorc2tlbG90aGVyID0g
L2V0Yy9za2VsLm90aGVyDQorDQorIyBUaGUgImRpcm1vZGUiIHZhcmlhYmxl
IHNwZWNpZmllcyB0aGUgb2N0YWwgbW9kZSB1c2VkIGJ5IGNobW9kKDEpIGZv
ciBhbnkNCisjIGRpcmVjdG9yaWVzIGNyZWF0ZWQgYnkgYWRkdXNlci5sb2Nh
bC4gIE5vdGUsIGhvd2V2ZXIsIHRoYXQgc3VjaCBjcmVhdGVkDQorIyBkaXJl
Y3RvcmllcyBhdXRvbWF0aWNhbGx5IGluaGVyaXQgdGhlIFNHSUQgKHNldCBn
cm91cCBJRCkgYml0IGZyb20gdGhlaXINCisjIHBhcmVudCBkaXJlY3Rvcnku
DQorDQorZGlybW9kZSA9IDA3NTUNCisNCisjIFRoZSAiZmlsZW1vZGUiIHZh
cmlhYmxlIHNwZWNpZmllcyB0aGUgb2N0YWwgbW9kZSB1c2VkIGJ5IGNobW9k
KDEpIGZvcg0KKyMgYW55IGZpbGVzIGNyZWF0ZWQgYnkgYWRkdXNlci5sb2Nh
bC4NCisNCitmaWxlbW9kZSA9IDA2NDQNCisNCisNCisjIyMjIyMjIyMjIyMj
IyMjIyMjDQorIyAgIFdXVyBzZXJ2aWNlICAgIw0KKyMjIyMjIyMjIyMjIyMj
IyMjIyMNCisNCisjIENvbmZpZ3VyZSB0aGUgV1dXIHNlcnZpY2UgZm9yIHRo
ZSB1c2VyLCBhIHNlcnZpY2UgdGhhdCBoYXMgYSByZWFsIFVJRA0KKyMgYXNz
b2NpYXRlZCB3aXRoIGl0LiAgQXNzdW1pbmcgdGhlIHVzZXIgInd3dyIgaGFz
IGEgR0lEIG9mICJ3d3ciIGFuZCBhDQorIyBob21lIGRpcmVjdG9yeSBvZiAi
L2hvbWUvd3d3IiAoaW4gYWN0dWFsIGZhY3QsIHRoZSB2YWx1ZXMgYXJlIHRh
a2VuIGZyb20NCisjIHRoZSBwYXNzd29yZCBkYXRhYmFzZSksIHRoZSBmb2xs
b3dpbmcgYWN0aW9ucyBhcmUgcGVyZm9ybWVkOg0KKyMgICAtIHRoZSB1c2Vy
IGlzIGFkZGVkIHRvIHRoZSAid3d3IiBncm91cA0KKyMgICAtIHRoZSBkaXJl
Y3RvcnkgIi9ob21lL3d3dy9kb2MvdXNlcnMvJFVTRVIiIGlzIGNyZWF0ZWQs
IG93bmVkIGJ5DQorIyAgICAgdGhlIHVzZXIsIHdpdGggZ3JvdXAgb3duZXIg
Ind3dyINCisjICAgLSB0aGUgbGluayAicHVibGljX2h0bWwiIGlzIGNyZWF0
ZWQgdG8gcG9pbnQgdG8gdGhpcyBkaXJlY3RvcnkNCisjICAgLSB0aGUgZmls
ZSAiL2V0Yy9za2VsLm90aGVyL2luZGV4Lmh0bWwiIGlzIGNvcGllZCB0byB0
aGlzIGRpcmVjdG9yeQ0KKyMgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHN5c3Rl
bSB1c2VyICJ3d3ciIGFuZCBncm91cCAid3d3IiBhcmUgTk9UIHRoZSBzYW1l
DQorIyBhcyB0aGUgVUlEIGFuZCBHSUQgb2YgdGhlIHdlYiBzZXJ2ZXIgKCJ3
d3ctZGF0YSIgb24gbXkgc3lzdGVtKS4gIFRoZQ0KKyMgInd3dyIgYWNjb3Vu
dCBpcyBmb3IgdGhlIHdlYiBhZG1pbmlzdHJhdG9yLg0KKw0KK3NlcnZpY2Ug
PSB3d3cNCisNCit1c2VyW3d3d10gICAgICAgPSB3d3cNCithZGR0b2dyb3Vw
W3d3d10gPSB0cnVlDQoraG9tZWRpclt3d3ddICAgID0gIiINCitzdWJkaXJb
d3d3XSAgICAgPSAiZG9jL3VzZXJzIg0KK2FsdGhvbWVbd3d3XSAgICA9IGZh
bHNlDQorbWtkaXJbd3d3XSAgICAgID0gdHJ1ZQ0KK2NoZ3JwZGlyW3d3d10g
ICA9IHRydWUNCitta2xpbmtbd3d3XSAgICAgPSB0cnVlDQorbGlua25hbWVb
d3d3XSAgID0gInB1YmxpY19odG1sIg0KK3NrZWxmaWxlW3d3d10gICA9ICJp
bmRleC5odG1sIg0KK2NoZ3Jwc2tlbFt3d3ddICA9IHRydWUNCisNCisjIElm
IHlvdXIgd2ViIHNlcnZlcidzIGNvbmZpZ3VyYXRpb24gZm9sbG93cyB0aGUg
Im90aGVyIiBzdGFuZGFyZCBmb3INCisjIHBlcnNvbmFsIHdlYiBwYWdlcyAo
d2hlcmVpbiB0aGUgInB1YmxpY19odG1sIiBkaXJlY3RvcnkgaXMgYSByZWFs
DQorIyBkaXJlY3RvcnkgaW4gdGhlIHVzZXIncyBob21lIGRpcmVjdG9yeSks
IHlvdSBtaWdodCB3YW50IHRvIHVzZSBzb21ldGhpbmcNCisjIGxpa2UgdGhl
IGZvbGxvd2luZzoNCisNCisjIHNlcnZpY2UgPSB3d3cNCisjIGhvbWVkaXJb
d3d3XSA9ICIiDQorIyBzdWJkaXJbd3d3XSA9ICJwdWJsaWNfaHRtbCINCisj
IGFsdGhvbWVbd3d3XSA9IHRydWUNCisjIG1rZGlyW3d3d10gPSB0cnVlDQor
IyBza2VsZmlsZVt3d3ddID0gImluZGV4Lmh0bWwiDQorDQorDQorIyMjIyMj
IyMjIyMjIyMjIyMjIw0KKyMgICBGVFAgc2VydmljZSAgICMNCisjIyMjIyMj
IyMjIyMjIyMjIyMjDQorDQorIyBDb25maWd1cmUgdGhlIEZUUCBzZXJ2aWNl
IGZvciB0aGUgdXNlciBpbiBhIHNpbWlsYXIgd2F5IHRvIHRoZSBXV1cNCisj
IHNlcnZpY2UgYWJvdmUuICBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQg
bm8gc2tlbGV0b24gZmlsZSBpcyBjb3BpZWQuDQorDQorc2VydmljZSA9IGZ0
cA0KKw0KK3VzZXJbZnRwXSAgICAgICA9IGZ0cA0KK2FkZHRvZ3JvdXBbZnRw
XSA9IHRydWUNCitob21lZGlyW2Z0cF0gICAgPSAiIg0KK3N1YmRpcltmdHBd
ICAgICA9ICJkb2MvdXNlcnMiDQorYWx0aG9tZVtmdHBdICAgID0gZmFsc2UN
Citta2RpcltmdHBdICAgICAgPSB0cnVlDQorY2hncnBkaXJbZnRwXSAgID0g
dHJ1ZQ0KK21rbGlua1tmdHBdICAgICA9IHRydWUNCitsaW5rbmFtZVtmdHBd
ICAgPSAicHVibGljX2Z0cCINCisNCisNCisjIyMjIyMjIyMjIyMjIyMjIyMj
Iw0KKyMgICBEQVRBIHNlcnZpY2UgICAjDQorIyMjIyMjIyMjIyMjIyMjIyMj
IyMNCisNCisjIENyZWF0ZSB0aGUgZGlyZWN0b3J5IC9kYXRhLyRVU0VSLCBv
d25lZCBieSB0aGUgdXNlci4gIFRoaXMgaXMgb25seSBkb25lDQorIyBpZiAv
ZGF0YSBleGlzdHMgKGl0IGlzIGFuIG9yZGluYXJ5IGRpcmVjdG9yeSwgbm90
IGEgbW91bnQgcG9pbnQpLg0KKw0KK3NlcnZpY2UgPSBkYXRhDQorDQoraG9t
ZWRpcltkYXRhXSA9ICIvZGF0YSINCitzdWJkaXJbZGF0YV0gID0gIiINCitt
b3VudGVkW2RhdGFdID0gZmFsc2UNCitta2RpcltkYXRhXSAgID0gdHJ1ZQ0K
Kw0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjICAgWklQIHNlcnZpY2Ug
ICAjDQorIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KKyMgQ3JlYXRlIHRoZSBk
aXJlY3RvcnkgL21udC96aXAvaG9tZS8kVVNFUiwgb3duZWQgYnkgdGhlIHVz
ZXIuICBUaGlzIGlzDQorIyBvbmx5IGRvbmUgaWYgL21udC96aXAgZXhpc3Rz
IGFuZCBzb21lIGRldmljZSBpcyBtb3VudGVkIG9uIGl0IGF0IHRoZQ0KKyMg
dGltZSB0aGUgYWRkdXNlci5sb2NhbCBzY3JpcHQgaXMgcnVuLg0KKw0KK3Nl
cnZpY2UgPSB6aXANCisNCitob21lZGlyW3ppcF0gPSAiL21udC96aXAiDQor
c3ViZGlyW3ppcF0gID0gImhvbWUiDQorbW91bnRlZFt6aXBdID0gdHJ1ZQ0K
K21rZGlyW3ppcF0gICA9IHRydWUNCisNCisNCisjIyMjIyMjIyMjIyMjIyMj
IyMjDQorIyAgIERJUCBzZXJ2aWNlICAgIw0KKyMjIyMjIyMjIyMjIyMjIyMj
IyMNCisNCisjIEFkZCB0aGUgdXNlciB0byB0aGUgVW5peCBncm91cCAiZGlw
IiAoaWYgaXQgZXhpc3RzKQ0KKw0KK3NlcnZpY2UgPSBkaXANCitncm91cFtk
aXBdID0gZGlwDQorYWRkdG9ncm91cFtkaXBdID0gdHJ1ZQ0KKw0KKw0KKyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgICBTeW50YXggb2YgdGhp
cyBmaWxlICAgIw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0K
KyMgVGhlIHN5bnRheCBvZiB0aGlzIGZpbGUgd2lsbCBiZSBmYW1pbGlhciB0
byBhbnlvbmUgd2hvIGhhcyB1c2VkIGENCisjIHNjcmlwdGluZyBsYW5ndWFn
ZSBiZWZvcmUuICBUaGlzIGZpbGUgaXMgcHJvY2Vzc2VkIGxpbmUgYnkgbGlu
ZSwgd2l0aA0KKyMgZWFjaCBsaW5lIGVpdGhlciBiZWluZyBibGFuayAoYW5k
IGhlbmNlIGlnbm9yZWQpLCBhIGNvbW1lbnQgb3IgYQ0KKyMgY29uZmlndXJh
dGlvbiB2YXJpYWJsZS4NCisjDQorIyBDb21tZW50IGxpbmVzIChzdWNoIGFz
IHRoaXMgb25lKSBiZWdpbiB3aXRoIGEgaGFzaCBjaGFyYWN0ZXIgKCIjIikg
YW5kDQorIyBjb250aW51ZSB0byB0aGUgZW5kIG9mIHRoZSBsaW5lLiAgVGhl
IGhhc2ggY2hhcmFjdGVyIG1heSBiZSBwcmVjZWRlZCBieQ0KKyMgd2hpdGUg
c3BhY2UuICBDb21tZW50IGxpbmVzLCBsaWtlIGJsYW5rIGxpbmVzLCBhcmUg
aWdub3JlZC4NCisjDQorIyBBbGwgbGluZXMgdGhhdCBhcmUgbm90IGJsYW5r
IG9yIGFyZSBjb21tZW50IGxpbmVzIGNvbnRhaW4gY29uZmlndXJhdGlvbg0K
KyMgdmFyaWFibGVzIChvbmUgcGVyIGxpbmUsIHdpdGggbm8gY29tbWVudHMp
LiAgQSBjb25maWd1cmF0aW9uIHZhcmlhYmxlDQorIyBoYXMgb25lIG9mIHR3
byBmb3JtczoNCisjDQorIyAgICAgdmFyaWFibGUgPSB2YWx1ZQ0KKyMgICAg
IHZhcmlhYmxlW3NlcnZpY2VdID0gdmFsdWUNCisjDQorIyBUaGUgZmlyc3Qg
Zm9ybSBpcyBmb3IgZ2xvYmFsIHZhcmlhYmxlcywgd2hpbGUgdGhlIHNlY29u
ZCBmb3JtIGlzIGZvcg0KKyMgdmFyaWFibGVzIGFzc29jaWF0ZWQgd2l0aCBh
IHBhcnRpY3VsYXIgc2VydmljZS4gIEJvdGggdGhlIHZhcmlhYmxlIG5hbWUN
CisjIGFuZCB0aGUgc2VydmljZSBuYW1lIGFyZSBhbHBoYW51bWVyaWMgc3Ry
aW5ncyBhbmQgYXJlIGNhc2UgaW5zZW5zaXRpdmUNCisjIChpZSwgYSB2YXJp
YWJsZSBtYXkgYmUgbmFtZWQgIlNLRUxPVEhFUiIsICJza2Vsb3RoZXIiIG9y
IGV2ZW4NCisjICJTa2VsT3RoZXIiKS4NCisjDQorIyBUaGUgdmFsdWUgaXMg
dHlwaWNhbGx5IGEgc3RyaW5nIHdoaWNoIG1heSBvciBtYXkgbm90IGJlIGNh
c2Ugc2Vuc2l0aXZlLg0KKyMgSXQgbWF5IGJlIChidXQgdXN1YWxseSBkb2Vz
IG5vdCBuZWVkIHRvIGJlKSBzdXJyb3VuZGVkIGJ5IHNpbmdsZSBvcg0KKyMg
ZG91YmxlIHF1b3RlcywgaW4gd2hpY2ggY2FzZSBldmVyeXRoaW5nIHdpdGhp
biB0aGUgcXVvdGVzIGlzIHBhcnQgb2YgdGhlDQorIyB2YWx1ZS4gIE5vdGUg
dGhhdCB3aGl0ZSBzcGFjZSBtYXkgc3Vycm91bmQgdGhlIHZhcmlhYmxlLCBz
ZXJ2aWNlIGFuZA0KKyMgdmFsdWUgY29tcG9uZW50czsgc3VjaCB3aGl0ZSBz
cGFjZSBpcyBkaXNjYXJkZWQsIHVubGVzcyBpdCBhcHBlYXJzIGluDQorIyBx
dW90ZXMuICBZb3UgbWF5IE5PVCB1c2UgYmFja3NsYXNoIHRvIHF1b3RlIHF1
b3RlIGNoYXJhY3RlcnMhDQorIw0KKyMgSWYgYSB2YWx1ZSB0YWtlcyB0aGUg
Zm9ybSBvZiBhIGJvb2xlYW4sICIwIiwgImZhbHNlIiBhbmQgIm5vIiBhcmUN
CisjIHRyZWF0ZWQgYXMgdGhlIGZhbHNlIHZhbHVlLCB3aGlsZSAiMSIsICJ0
cnVlIiBhbmQgInllcyIgYXJlIHRyZWF0ZWQgYXMNCisjIHRoZSB0cnVlIHZh
bHVlLiAgSW4gYm90aCBjYXNlcywgdGhlIHZhbHVlIGlzIGNhc2UtaW5zZW5z
aXRpdmUuDQorIw0KKyMNCisjIEdMT0JBTCBWQVJJQUJMRVM6DQorIyA9PT09
PT09PT09PT09PT09PQ0KKyMNCisjIFRoZSBmb2xsb3dpbmcgZ2xvYmFsIHZh
cmlhYmxlcyBhcmUgYXZhaWxhYmxlOg0KKyMNCisjICAgICBza2Vsb3RoZXIN
CisjICAgICBkaXJtb2RlDQorIyAgICAgZmlsZW1vZGUNCisjDQorIyBUaGVz
ZSBhcmUgZGVzY3JpYmVkIGluIHRoZSBzZWN0aW9uICJHbG9iYWwgT3B0aW9u
cyIgYWJvdmUuDQorIw0KKyMNCisjIFNFUlZJQ0UgVkFSSUFCTEVTOg0KKyMg
PT09PT09PT09PT09PT09PT09DQorIw0KKyMgVGhlIG1haW4gcm9sZSBvZiBh
ZGR1c2VyLmxvY2FsIGlzIHRvIGNvbmZpZ3VyZSBhIHVzZXIncyBhY2NvdW50
IGZvcg0KKyMgdmFyaW91cyAic2VydmljZXMiLiAgVGhlc2Ugc2VydmljZXMg
YXJlIHNpbXBseSBjb252ZW5pZW50IG5hbWVzIGZvcg0KKyMgZGlyZWN0b3Jp
ZXMgdGhhdCBtdXN0IGJlIGNyZWF0ZWQsIFVuaXggZ3JvdXBzIHRvIHdoaWNo
IHRoZSB1c2VyIG11c3QgYmUNCisjIGFkZGVkLCBmaWxlcyB0aGF0IG5lZWQg
dG8gYmUgY29waWVkIGFuZCBzbyBvbi4NCisjDQorIyBhZGR1c2VyLmxvY2Fs
IGlzIGluZm9ybWVkIG9mIHRoZSBleGlzdGVuY2Ugb2YgYSBzZXJ2aWNlIGJ5
IHRoZSAic2VydmljZSINCisjIGdsb2JhbCB2YXJpYWJsZToNCisjDQorIyAg
ICAgc2VydmljZSA9IHNlcnZpY2VuYW1lDQorIw0KKyMgVGhlIHNlcnZpY2Ug
bmFtZSAic2VydmljZW5hbWUiIG1heSBiZSBhbnkgY2FzZS1pbnNlbnNpdGl2
ZSBhbHBoYW51bWVyaWMNCisjIHN0cmluZy4gIEV4YW1wbGVzIHVzZWQgd2l0
aGluIHRoaXMgZmlsZSBhcmUgInd3dyIgYW5kICJ6aXAiLiAgU2VydmljZQ0K
KyMgbmFtZXMgbmVlZCBub3QgY29ycmVzcG9uZCB0byBhbnkgcmVhbCBzZXJ2
aWNlIC0tLSB0aGV5IGFyZSBjb21wbGV0ZWx5DQorIyBpbnRlcm5hbCB0byBh
ZGR1c2VyLmxvY2FsLCBhbmQgYXJlIG9ubHkgdXNlZCBhcyBhIGtleSBmb3Ig
c2VydmljZQ0KKyMgdmFyaWFibGVzLiAgVGhlICJzZXJ2aWNlIiBnbG9iYWwg
dmFyaWFibGUgbWF5IGFwcGVhciBtdWx0aXBsZSB0aW1lcywNCisjIGVhY2gg
dGltZSB3aXRoIGEgZGlmZmVyZW50IHNlcnZpY2UgbmFtZS4NCisjDQorIyBU
aGUgb3JkZXIgb2YgdGhlICJzZXJ2aWNlIiBnbG9iYWwgdmFyaWFibGVzIElT
IGltcG9ydGFudCwgYXMgdGhhdCBpcyB0aGUNCisjIG9yZGVyIGluIHdoaWNo
IHRob3NlIHNlcnZpY2VzIGFyZSBjcmVhdGVkLiAgVGhpcyBpcyBpbXBvcnRh
bnQgaWYgb25lDQorIyBzZXJ2aWNlIGRlcGVuZHMgb24gYSBwcmlvciBvbmUg
aGF2aW5nIGJlZW4gc2V0IHVwLg0KKyMNCisjIFRoZSAic2VydmljZSIgZ2xv
YmFsIHZhcmlhYmxlIG11c3QgYXBwZWFyIGJlZm9yZSBhbnkgb2YgdGhlIHNl
cnZpY2VzDQorIyB2YXJpYWJsZXMgZm9yIHRoYXQgc2VydmljZSBhcmUgZGVm
aW5lZC4NCisjDQorIyBUaGUgZm9sbG93aW5nIHNlcnZpY2UgdmFyaWFibGVz
IGFyZSBhdmFpbGFibGUsIGFuZCBtYXkgYmUgc3BlY2lmaWVkIGluDQorIyBh
bnkgb3JkZXI6DQorIw0KKyMgICAgIHVzZXINCisjICAgICBncm91cA0KKyMg
ICAgIGFkZHRvZ3JvdXANCisjICAgICBob21lZGlyDQorIyAgICAgc3ViZGly
DQorIyAgICAgYWx0aG9tZQ0KKyMgICAgIG1vdW50ZWQNCisjICAgICBta2Rp
cg0KKyMgICAgIGNoZ3JwZGlyDQorIyAgICAgbWtsaW5rDQorIyAgICAgbGlu
a25hbWUNCisjICAgICBza2VsZmlsZQ0KKyMgICAgIGNoZ3Jwc2tlbA0KKyMN
CisjIFJlbWVtYmVyIHRoYXQgZWFjaCBzZXJ2aWNlIHZhcmlhYmxlIGlzIGZv
bGxvd2VkIGJ5IGEgc2VydmljZSBuYW1lIGluDQorIyBzcXVhcmUgYnJhY2tl
dHMuICBJbiB0aGUgZm9sbG93aW5nIGV4cGxhbmF0aW9ucywgInN2YyIgaXMg
dXNlZCBhcyBhDQorIyBzYW1wbGUgc2VydmljZSBuYW1lLg0KKyMNCisjDQor
IyB1c2VyW3N2Y10gPSB1bmFtZQ0KKyMNCisjICAgICBTcGVjaWZpZXMgdGhh
dCB0aGUgc2VydmljZSBiZWxvbmdzIHRvIGEgcmVhbCB1c2VyLCBhbmQgdGhh
dCB0aGF0DQorIyAgICAgc2VydmljZSB1c2VyIG5hbWUgaXMgInVuYW1lIi4g
IFRoaXMgdXNlciBuYW1lIG11c3QgYXBwZWFyIGluIHRoZQ0KKyMgICAgIHBh
c3N3b3JkIGRhdGFiYXNlIGZpbGUgZWl0aGVyIGluIHRoZSBmaXJzdCBmaWVs
ZCAoaWUsIGEgdXNlciBuYW1lKQ0KKyMgICAgIG9yIGluIHRoZSB0aGlyZCAo
aWUsIGEgbnVtZXJpYyBVSUQpLg0KKyMNCisjICAgICBTcGVjaWZ5aW5nIGEg
dXNlciBuYW1lIG9yIFVJRCBhbHNvIHNldHMgZGVmYXVsdCB2YWx1ZXMgZm9y
IHRoZQ0KKyMgICAgICJncm91cCIgYW5kICJob21lZGlyIiBzZXJ2aWNlIHZh
cmlhYmxlcy4gIFRoZXNlIGRlZmF1bHQgdmFsdWVzIGFyZQ0KKyMgICAgIHRh
a2VuIGZyb20gdGhlIHBhc3N3b3JkIGRhdGFiYXNlICh0aGUgImhvbWVkaXIi
IHZhcmlhYmxlIGlzIG9ubHkgc2V0DQorIyAgICAgaWYgdGhlICJhbHRob21l
IiB2YXJpYWJsZSBpcyBzZXQgdG8gZmFsc2UpLg0KKyMNCisjDQorIyBncm91
cFtzdmNdID0gZ25hbWUNCisjDQorIyAgICAgU3BlY2lmaWVzIHRoYXQgdGhl
IHNlcnZpY2UncyBncm91cCBuYW1lIGlzICJnbmFtZSIuICBUaGlzIGdyb3Vw
IG5hbWUNCisjICAgICBtdXN0IGFwcGVhciBpbiB0aGUgZ3JvdXAgZGF0YWJh
c2UgZmlsZSBlaXRoZXIgaW4gdGhlIGZpcnN0IGZpZWxkDQorIyAgICAgKGll
LCBhIGdyb3VwIG5hbWUpIG9yIGluIHRoZSB0aGlyZCAoaWUsIGEgbnVtZXJp
YyBHSUQpLg0KKyMNCisjICAgICBJZiB0aGlzIHZhcmlhYmxlIGlzIG5vdCBz
cGVjaWZpZWQsIG9yIGlzIHNwZWNpZmllZCB3aXRoICJnbmFtZSIgYXMNCisj
ICAgICBhbiBlbXB0eSBzdHJpbmcgIiIsIGFuZCB0aGUgdXNlciB2YXJpYWJs
ZSBpcyBzcGVjaWZpZWQgKGFuZCBwb2ludHMNCisjICAgICB0byBhIHZhbGlk
IHVzZXIpLCB0aGUgZ3JvdXAgbmFtZSBpcyB0YWtlbiB0byBiZSB0aGUgc2Vy
dmljZSB1c2VyJ3MNCisjICAgICBkZWZhdWx0IGdyb3VwLiAgRm9yIGV4YW1w
bGUsIGlmICJ1c2VyW3N2Y10gPSBtYWlsIiB3ZXJlIHRvIGJlDQorIyAgICAg
c3BlY2lmaWVkLCBhbmQgZ3JvdXBbc3ZjXSB3ZXJlIG5vdCwgdGhlIGdyb3Vw
IHVzZWQgd291bGQgYmUgZGVmYXVsdA0KKyMgICAgIGdyb3VwIGZvciB0aGUg
dXNlciAibWFpbCIgKHdoaWNoIGhhcHBlbnMgdG8gYmUgR0lEIDgsIGllLCAi
bWFpbCIpLg0KKyMNCisjICAgICBUaGlzIGdyb3VwIGlzIGFsc28gdXNlZCBm
b3IgdGhlIGdyb3VwIG93bmVyIG9mIGRpcmVjdG9yaWVzLCBsaW5rcw0KKyMg
ICAgIGFuZCBjb3BpZWQgZmlsZXMsIGRlcGVuZGluZyBvbiB0aGUgc2V0dGlu
Z3Mgb2YgdGhlICJjaGdycGRpciIgYW5kDQorIyAgICAgImNoZ3Jwc2tlbCIg
dmFyaWFibGVzLg0KKyMNCisjDQorIyBhZGR0b2dyb3VwW3N2Y10gPSBib29s
ZWFuDQorIw0KKyMgICAgIEluc3RydWN0cyB3aGV0aGVyIHRvIGFkZCB0aGUg
dXNlciB0byB0aGUgZ3JvdXAgc3BlY2lmaWVkIGJ5IHRoZQ0KKyMgICAgICJn
cm91cCIgdmFyaWFibGUgb3IgaW1wbGllZCBieSB0aGUgInVzZXIiIHZhcmlh
YmxlLiAgSWYgdHJ1ZSwNCisjICAgICBhZGR1c2VyLmxvY2FsIGFkZHMgdGhl
IHVzZXIgdG8gdGhlIGdyb3VwLCBhc3N1bWluZyB0aGF0IHRoZSBncm91cCwN
CisjICAgICBpbiBmYWN0LCBleGlzdHMuDQorIw0KKyMgICAgIElmIHRoaXMg
dmFyaWFibGUgaXMgbm90IHNwZWNpZmllZCwgZmFsc2UgaXMgYXNzdW1lZC4N
CisjDQorIw0KKyMgaG9tZWRpcltzdmNdID0gcGF0aA0KKyMNCisjICAgICBT
cGVjaWZpZXMgdGhlIHNlcnZpY2UncyBob21lIGRpcmVjdG9yeSBhcyBhbiBh
YnNvbHV0ZSBwYXRoIG5hbWUgKGllLA0KKyMgICAgIHN0YXJ0aW5nIGZyb20g
Ii8iKS4gIFRoZSBzZXJ2aWNlJ3MgaG9tZSBkaXJlY3RvcnkgaXMgdXNlZCB0
byBjaGVjaw0KKyMgICAgIGlmIGl0IGlzIGEgbW91bnQgcG9pbnQsIGFzIHdl
bGwgYXMgYSBiYXNlIGRpcmVjdG9yeSBmb3IgdGhlICJta2RpciINCisjICAg
ICBhbmQgInNrZWxmaWxlIiB2YXJpYWJsZXMuICBJZiB0aGUgZGlyZWN0b3J5
IGRvZXMgbm90IGV4aXN0LCB0aG9zZQ0KKyMgICAgIHZhcmlhYmxlcyB0YWtl
IG5vIGVmZmVjdC4NCisjDQorIyAgICAgSWYgdGhpcyB2YXJpYWJsZSBpcyBu
b3Qgc3BlY2lmaWVkLCBvciBpcyBzcGVjaWZpZWQgd2l0aCAicGF0aCIgYXMg
YW4NCisjICAgICBlbXB0eSBzdHJpbmcgIiIsIHRoZSB2YWx1ZSB1c2VkIGZv
ciB0aGUgc2VydmljZSdzIGhvbWUgZGlyZWN0b3J5IGlzDQorIyAgICAgY2Fs
Y3VsYXRlZCBpbiBvbmUgb2YgdHdvIHdheXMuICBUaGUgZmlyc3QgbWV0aG9k
IGlzIHRvIHVzZSB0aGUgaG9tZQ0KKyMgICAgIGRpcmVjdG9yeSBvZiB0aGUg
c2VydmljZSB1c2VyOyB0aGUgc2Vjb25kIGlzIHRvIHVzZSB0aGUgaG9tZQ0K
KyMgICAgIGRpcmVjdG9yeSBvZiB0aGUgdXNlciBmb3Igd2hvbSBhZGR1c2Vy
LmxvY2FsIHdhcyBjYWxsZWQuDQorIw0KKyMgICAgIFRoZSBmaXJzdCBtZXRo
b2QgaXMgdXNlZCB3aGVuIHRoZSAiYWx0aG9tZSIgdmFyaWFibGUgaXMgc2V0
IHRvIGZhbHNlDQorIyAgICAgYW5kIHRoZSAidXNlciIgdmFyaWFibGUgaXMg
c3BlY2lmaWVkIChhbmQgcG9pbnRzIHRvIGEgdmFsaWQgdXNlcikuDQorIyAg
ICAgRm9yIGV4YW1wbGUsIGlmICJ1c2VyW3N2Y10gPSB3d3ciIGFuZCAiYWx0
aG9tZVtzdmNdID0gZmFsc2UiIHdlcmUgdG8NCisjICAgICBiZSBzcGVjaWZp
ZWQsIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAiaG9tZWRpciIgdmFyaWFi
bGUgd291bGQgYmUNCisjICAgICB0YWtlbiBmcm9tIHd3dydzIGhvbWUgZGly
ZWN0b3J5LCB0eXBpY2FsbHkgIi92YXIvd3d3Ii4NCisjDQorIyAgICAgVGhl
IHNlY29uZCBtZXRob2QgaXMgdXNlZCB3aGVuIHRoZSAiYWx0aG9tZSIgdmFy
aWFibGUgaXMgdHJ1ZS4gIEZvcg0KKyMgICAgIGV4YW1wbGUsIGlmIGFkZHVz
ZXIubG9jYWwgd2VyZSB0byBiZSBjYWxsZWQgZm9yIHRoZSB1c2VyICJhbm5h
IiwgYW5kDQorIyAgICAgImFsdGhvbWUiIHdlcmUgc2V0IHRvIHRydWUsIHRo
ZSAiaG9tZWRpciIgdmFyaWFibGUgd291bGQgYmUgc2V0IHRvDQorIyAgICAg
dGhlIGhvbWUgZGlyZWN0b3J5IG9mIGFubmEsIHR5cGljYWxseSAiL2hvbWUv
YW5uYSIuDQorIw0KKyMgICAgIE5vdGUgdGhhdCBuZWl0aGVyIG9mIHRoZXNl
IG1ldGhvZHMgaXMgdXNlZCBpZiB0aGUgImhvbWVkaXIiIHZhcmlhYmxlDQor
IyAgICAgaXMgc2V0IHRvIGFueXRoaW5nIG90aGVyIHRoYW4gYW4gZW1wdHkg
c3RyaW5nOyBpbiBzdWNoIGEgY2FzZSwgdGhlDQorIyAgICAgc3BlY2lmaWVk
IHZhbHVlIGZvciB0aGUgdmFyaWFibGUgaXMgYWx3YXlzIHVzZWQuDQorIw0K
KyMNCisjIHN1YmRpcltzdmNdID0gcGF0aA0KKyMNCisjICAgICBTcGVjaWZp
ZXMgYSBzdWJkaXJlY3Rvcnkgb2ZmIHRoZSBob21lIGRpcmVjdG9yeS4gIFRo
aXMgc3ViZGlyZWN0b3J5DQorIyAgICAgaXMgdXNlZCBmb3IgY3JlYXRpbmcg
dGhlIG5ldyBkaXJlY3RvcnksIGNvcHlpbmcgdGhlIHNrZWxldG9uIGZpbGUN
CisjICAgICBhbmQgZm9yIHRoZSBkZXN0aW5hdGlvbiBvZiB0aGUgbGluay4N
CisjDQorIyAgICAgSWYgdGhlICJhbHRob21lIiB2YXJpYWJsZSBpcyBzZXQg
dG8gZmFsc2UsIHRoZSBzdWJkaXJlY3RvcnkgbXVzdA0KKyMgICAgIGFscmVh
ZHkgZXhpc3QgYW5kIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUg
aG9tZSBkaXJlY3RvcnkgYW5kDQorIyAgICAgdGhlIHVzZXIncyBuYW1lIChm
b3Igd2hvbSBhZGR1c2VyLmxvY2FsIHdhcyBjYWxsZWQpLiAgRm9yIGV4YW1w
bGUsDQorIyAgICAgaWYgdGhlIGZvbGxvd2luZyB3ZXJlIHRvIGJlIHNwZWNp
ZmllZDoNCisjDQorIyAgICAgICAgIGhvbWVkaXJbc3ZjXSA9IC9tbnQvemlw
DQorIyAgICAgICAgIHN1YmRpcltzdmNdID0gaG9tZQ0KKyMgICAgICAgICBh
bHRob21lW3N2Y10gPSBmYWxzZQ0KKyMgICAgICAgICBta2RpcltzdmNdID0g
dHJ1ZQ0KKyMNCisjICAgICBhbmQgdGhlIHVzZXIncyBuYW1lIChmb3Igd2hv
bSBhZGR1c2VyLmxvY2FsIHdhcyBjYWxsZWQpIHdhcyAiamFtZXMiLA0KKyMg
ICAgIHRoZSBkaXJlY3RvcnkgIi9tbnQvemlwL2hvbWUvamFtZXMiIHdvdWxk
IGJlIGNyZWF0ZWQuDQorIw0KKyMgICAgIElmLCBvbiB0aGUgb3RoZXIgaGFu
ZCwgdGhlICJhbHRob21lIiB2YXJpYWJsZSB3YXMgc2V0IHRvIHRydWUsIHRo
ZQ0KKyMgICAgIHN1YmRpcmVjdG9yeSBpcyB1c2VkIG9ubHkgaW4gY29uanVu
Y3Rpb24gd2l0aCB0aGUgaG9tZSBkaXJlY3Rvcnk7IGl0DQorIyAgICAgaXMg
VEhBVCBkaXJlY3RvcnkgdGhhdCBpcyBjcmVhdGVkLiAgRm9yIGV4YW1wbGUs
IGlmIHRoZSBmb2xsb3dpbmcNCisjICAgICB3ZXJlIHRvIGJlIHNwZWNpZmll
ZDoNCisjDQorIyAgICAgICAgIGFsdGhvbWVbc3ZjXSA9IHRydWUNCisjICAg
ICAgICAgc3ViZGlyW3N2Y10gPSAicHVibGljX2h0bWwiDQorIyAgICAgICAg
IG1rZGlyW3N2Y10gPSB0cnVlDQorIw0KKyMgICAgIGFuZCBhZGR1c2VyLmxv
Y2FsIHdlcmUgY2FsbGVkIGZvciB0aGUgdXNlciAia2F0aHkiICh3aG8gaGFk
IHRoZSBob21lDQorIyAgICAgZGlyZWN0b3J5ICIvaG9tZS9rYXRoeSIpLCB0
aGUgZGlyZWN0b3J5ICIvaG9tZS9rYXRoeS9wdWJsaWNfaHRtbCINCisjICAg
ICB3b3VsZCBiZSBjcmVhdGVkLg0KKyMNCisjICAgICBhbmQgdGhlIHVzZXIn
cyBuYW1lIChmb3Igd2hvbSBhZGR1c2VyLmxvY2FsIHdhcyBjYWxsZWQpIHdh
cyAiamFtZXMiLA0KKyMgICAgIHRoZSBkaXJlY3RvcnkgIi9tbnQvemlwL2hv
bWUvamFtZXMiIHdvdWxkIGJlIGNyZWF0ZWQuDQorIw0KKyMgICAgIElmIHRo
aXMgdmFyaWFibGUgaXMgbm90IHNwZWNpZmllZCwgYmxhbmsgaXMgYXNzdW1l
ZC4NCisjDQorIw0KKyMgYWx0aG9tZVtzdmNdID0gYm9vbGVhbg0KKyMNCisj
ICAgICBTcGVjaWZpZXMgd2hldGhlciB0aGUgZGVmYXVsdCB2YWx1ZSBmb3Ig
dGhlICJob21lZGlyIiB2YXJpYWJsZSBpcyB0bw0KKyMgICAgIGJlIHRha2Vu
IGZyb20gdGhlIHNlcnZpY2UncyBob21lIGRpcmVjdG9yeSBvciBmcm9tIHRo
ZSB1c2VyJ3MgaG9tZQ0KKyMgICAgIGRpcmVjdG9yeSAoZm9yIHdob20gYWRk
dXNlci5sb2NhbCB3YXMgY2FsbGVkKS4gIElmIGZhbHNlLCB0aGUNCisjICAg
ICBzZXJ2aWNlJ3MgaG9tZSBkaXJlY3RvcnkgKGltcGxpZWQgYnkgdGhlICJ1
c2VyIiBzZXR0aW5nKSBpcyB1c2VkLg0KKyMgICAgIElmIHRydWUsIHRoZSBh
Y3R1YWwgdXNlcidzIGhvbWUgZGlyZWN0b3J5IGlzIHVzZWQuDQorIw0KKyMg
ICAgIFRoaXMgdmFyaWFibGUgYWxzbyBjb250cm9scyB3aGV0aGVyIG9yIG5v
dCB0aGUgdXNlcidzIGxvZ2luIG5hbWUgaXMNCisjICAgICB1c2VkIGFzIHBh
cnQgb2YgdGhlIGRpcmVjdG9yeSBjcmVhdGVkIGJ5IHRoZSAibWtkaXIiIHZh
cmlhYmxlIGFuZA0KKyMgICAgIHVzZWQgYnkgdGhlICJta2xpbmsiIGFuZCAi
c2tlbGZpbGUiIHZhcmlhYmxlcy4gIFNlZSAiaG9tZWRpciIgYW5kDQorIyAg
ICAgIm1rbGluayIgZm9yIG1vcmUgZGV0YWlscy4NCisjDQorIyAgICAgSWYg
dGhpcyB2YXJpYWJsZSBpcyBub3Qgc3BlY2lmaWVkLCBmYWxzZSBpcyBhc3N1
bWVkLg0KKyMNCisjDQorIyBtb3VudGVkW3N2Y10gPSBib29sZWFuDQorIw0K
KyMgICAgIFNwZWNpZmllcyB3aGV0aGVyIHRvIGNoZWNrIGlmIHRoZSBkaXJl
Y3Rvcnkgc3BlY2lmaWVkIGJ5IHRoZQ0KKyMgICAgICJob21lZGlyIiB2YXJp
YWJsZSAob3IgaW1wbGllZCBieSBvdGhlciB2YXJpYWJsZXMpIGlzIG1vdW50
ZWQgb3INCisjICAgICBub3QuICBBIGRpcmVjdG9yeSBpcyBtb3VudGVkIGlm
IGl0LCBvciBhbnkgcGFyZW50IGRpcmVjdG9yeSwgaXMNCisjICAgICBtb3Vu
dGVkIChleGNsdWRpbmcgdGhlIHJvb3QgZGlyZWN0b3J5LCB3aGljaCBpcyBh
bHdheXMgbW91bnRlZCkuDQorIyAgICAgRm9yIGV4YW1wbGUsIGlmIHRoZSBm
b2xsb3dpbmcgd2VyZSB0byBiZSBzcGVjaWZpZWQgKGFuZCB0aGUgdXNlcidz
DQorIyAgICAgbmFtZSB3ZXJlICJhbGljZSIpOg0KKyMNCisjICAgICAgICAg
aG9tZWRpcltzdmNdID0gL2hvbWUvZXh0ZXJuYWwvc2VydmVyL2Z0cA0KKyMg
ICAgICAgICBzdWJkaXJbc3ZjXSA9IGRvYy91c2Vycw0KKyMgICAgICAgICBt
b3VudGVkW3N2Y10gPSB0cnVlDQorIyAgICAgICAgIG1rZGlyW3N2Y10gPSB0
cnVlDQorIw0KKyMgICAgIHRoZW4gdGhlIGRpcmVjdG9yeSAiL2hvbWUvZXh0
ZXJuYWwvc2VydmVyL2Z0cC9kb2MvdXNlcnMvYWxpY2UiIHdvdWxkDQorIyAg
ICAgYmUgY3JlYXRlZCBvbmx5IGlmIGVpdGhlciAiL2hvbWUvZXh0ZXJuYWwv
c2VydmVyL2Z0cCIsDQorIyAgICAgIi9ob21lL2V4dGVybmFsL3NlcnZlciIs
ICIvaG9tZS9leHRlcm5hbCIgb3IgIi9ob21lIiB3ZXJlIG1vdW50ZWQuDQor
Iw0KKyMgICAgIElmIHRoaXMgdmFyaWFibGUgaXMgbm90IHNwZWNpZmllZCwg
ZmFsc2UgaXMgYXNzdW1lZCAoaWUsIHRoZSBtb3VudA0KKyMgICAgIGNoZWNr
IGlzIE5PVCBwZXJmb3JtZWQpLg0KKyMNCisjICAgICBOb3RlIHRoYXQgImNo
ZWNraW5nIGZvciBtb3VudGluZyIgaXMgZGVmaW5lZCBhcyBleGFtaW5pbmcg
dGhlDQorIyAgICAgY29udGVudHMgb2YgL3Byb2MvbW91bnRzLiAgSXQgZG9l
cyBOT1QgYWN0dWFsbHkgYXR0ZW1wdCB0byBtb3VudCB0aGUNCisjICAgICBk
aXJlY3Rvcmllcy4NCisjDQorIw0KKyMgbWtkaXJbc3ZjXSA9IGJvb2xlYW4N
CisjDQorIyAgICAgRGlyZWN0cyBhZGR1c2VyLmxvY2FsIHdoZXRoZXIgb3Ig
bm90IHRvIGNyZWF0ZSB0aGUgZGlyZWN0b3J5DQorIyAgICAgc3BlY2lmaWVk
IGJ5IHRoZSAiaG9tZWRpciIgYW5kICJzdWJkaXIiIHZhcmlhYmxlcy4gIElm
IHRoZSAiYWx0aG9tZSINCisjICAgICB2YXJpYWJsZSBpcyBmYWxzZSwgdGhl
IGRpcmVjdG9yeSB0aGF0IGlzIGNyZWF0ZWQgaGFzIHRoZSB1c2VyJ3MNCisj
ICAgICBsb2dpbiBuYW1lIGF0IHRoZSBlbmQuICBJbiBhbGwgY2FzZXMsIHRo
ZSBuZXdseSBjcmVhdGVkIGRpcmVjdG9yeQ0KKyMgICAgIGJlbG9uZ3MgdG8g
dGhhdCB1c2VyLiAgRm9yIGV4YW1wbGUsIGlmIGFkZHVzZXIubG9jYWwgd2Fz
IGNhbGxlZCBmb3INCisjICAgICB0aGUgdXNlciAiZGF2aWQiLCBhbmQgdGhl
IGZvbGxvd2luZyBsaW5lcyB3ZXJlIHRvIGJlIHNwZWNpZmllZDoNCisjDQor
IyAgICAgICAgIGhvbWVkaXJbZGF0YTFdID0gIi9kYXRhLzEiDQorIyAgICAg
ICAgIHN1YmRpcltkYXRhMV0gPSAidXNlcnMiDQorIyAgICAgICAgIGFsdGhv
bWVbZGF0YTFdID0gZmFsc2UNCisjICAgICAgICAgbWtkaXJbZGF0YTFdID0g
dHJ1ZQ0KKyMNCisjICAgICB0aGVuIHRoZSBkaXJlY3RvcnkgIi9kYXRhLzEv
dXNlcnMvZGF2aWQiIHdvdWxkIGJlIGNyZWF0ZWQsIG93bmVkIGJ5DQorIyAg
ICAgdGhlIHVzZXIgImRhdmlkIi4gIElmLCBvbiB0aGUgb3RoZXIgaGFuZCwg
dGhlIGZvbGxvd2luZyB3ZXJlIHRvIGJlDQorIyAgICAgc3BlY2lmaWVkIChm
b3IgdGhlIHNhbWUgdXNlciAiZGF2aWQiKToNCisjDQorIyAgICAgICAgIHN1
YmRpclt3d3ddID0gInB1YmxpY19odG1sIg0KKyMgICAgICAgICBhbHRob21l
W3d3d10gPSB0cnVlDQorIyAgICAgICAgIG1rZGlyW3d3d10gPSB0cnVlDQor
Iw0KKyMgICAgIHRoZW4gdGhlIGRpcmVjdG9yeSAiL2hvbWUvZGF2aWQvcHVi
bGljX2h0bWwiIHdvdWxkIGJlIGNyZWF0ZWQNCisjICAgICAoYXNzdW1pbmcg
Ii9ob21lL2RhdmlkIiB3YXMgZGF2aWQncyBob21lIGRpcmVjdG9yeSksIG93
bmVkIGJ5IHRoZQ0KKyMgICAgIHVzZXIgImRhdmlkIi4NCisjDQorIyAgICAg
VGhlIG1vZGUgb2YgdGhlIGRpcmVjdG9yeSBpcyB0YWtlbiBmcm9tIHRoZSAi
ZGlybW9kZSIgZ2xvYmFsDQorIyAgICAgdmFyaWFibGUgaW4gdGhpcyBjb25m
aWd1cmF0aW9uIGZpbGUuICBTZWUgYWxzbyB0aGUgY29tbWVudCBvbiB0aGF0
DQorIyAgICAgZ2xvYmFsIHZhcmlhYmxlLg0KKyMNCisjICAgICBUaGUgZ3Jv
dXAgb3duZXIgb2YgdGhlIGRpcmVjdG9yeSBpcyBlaXRoZXIgdGhlIHNhbWUg
YXMgdGhlIHVzZXIncw0KKyMgICAgIChpbiB0aGlzIGNhc2UsIGlmIHRoZSB1
c2VyICJkYXZpZCIgd2FzIGluIHRoZSBncm91cCAidXNlcnMiIGJ5DQorIyAg
ICAgZGVmYXVsdCwgdGhlbiB0aGUgZ3JvdXAgb3duZXIgd291bGQgYmUgInVz
ZXJzIiksIG9yIHRoZSBzYW1lIGFzIHRoZQ0KKyMgICAgIHNlcnZpY2UgdXNl
cidzIGdyb3VwIChzZWUgdGhlICJncm91cCIgdmFyaWFibGUgZm9yIG1vcmUN
CisjICAgICBpbmZvcm1hdGlvbikuICBUaGUgImNoZ3JwZGlyIiB2YXJpYWJs
ZSBzcGVjaWZpZXMgd2hpY2ggb2YgdGhlc2UgdHdvDQorIyAgICAgb3B0aW9u
cyBpcyB1c2VkLg0KKyMNCisjICAgICBJZiB0aGlzIHZhcmlhYmxlIGlzIG5v
dCBzcGVjaWZpZWQsIGZhbHNlIGlzIGFzc3VtZWQuDQorIw0KKyMNCisjIGNo
Z3JwZGlyW3N2Y10gPSBib29sZWFuDQorIw0KKyMgICAgIFNwZWNpZmllcyB0
aGUgZ3JvdXAgb3duZXIgb2YgYW55IGRpcmVjdG9yeSBhbmQgbGluayBjcmVh
dGVkIGJ5IHRoZQ0KKyMgICAgICJta2RpciIgYW5kICJta2xpbmsiIHZhcmlh
YmxlcyByZXNwZWN0aXZlbHkuICBJZiB0cnVlIGlzIHNwZWNpZmllZCwNCisj
ICAgICB0aGUgZ3JvdXAgb3duZXIgaXMgdGhlIHNhbWUgYXMgc3BlY2lmaWVk
IGJ5IHRoZSAiZ3JvdXAiIHZhcmlhYmxlIChvcg0KKyMgICAgIGltcGxpZWQg
YnkgdGhlICJ1c2VyIiB2YXJpYWJsZSkuICBJZiBmYWxzZSBpcyBzcGVjaWZp
ZWQsIHRoZSBncm91cA0KKyMgICAgIG93bmVyIGlzIHRoZSBzYW1lIGFzIHRo
ZSBhY3R1YWwgdXNlcidzIGRlZmF1bHQgZ3JvdXAuDQorIw0KKyMgICAgIElm
IHRoaXMgdmFyaWFibGUgaXMgbm90IHNwZWNpZmllZCwgZmFsc2UgaXMgYXNz
dW1lZC4NCisjDQorIw0KKyMgbWtsaW5rW3N2Y10gPSBib29sZWFuDQorIw0K
KyMgICAgIFNwZWNpZmllcyB3aGV0aGVyIG9yIG5vdCB0byBjcmVhdGUgYSBz
eW1ib2xpYyBsaW5rIHRvIHRoZSBjcmVhdGVkDQorIyAgICAgZGlyZWN0b3J5
IChzZWUgIm1rZGlyIiBhYm92ZSkgaW4gdGhlIGFjdHVhbCB1c2VyJ3MgaG9t
ZSBkaXJlY3RvcnkuDQorIyAgICAgVGhlIG5hbWUgb2YgdGhlIGxpbmsgaXMg
dGFrZW4gZnJvbSB0aGUgImxpbmtuYW1lIiB2YXJpYWJsZSBiZWxvdy4NCisj
ICAgICBGb3IgZXhhbXBsZSwgaWYgdGhlIGZvbGxvd2luZyB3ZXJlIHRvIGJl
IHNwZWNpZmllZCwgYW5kDQorIyAgICAgYWRkdXNlci5sb2NhbCB3ZXJlIGNh
bGxlZCBmb3IgdGhlIHVzZXIgIm1hcmsiOg0KKyMNCisjICAgICAgICAgaG9t
ZWRpcltkYXRhMV0gPSAiL2RhdGEvMSINCisjICAgICAgICAgc3ViZGlyW2Rh
dGExXSA9ICJ1c2VycyINCisjICAgICAgICAgYWx0aG9tZVtkYXRhMV0gPSBm
YWxzZQ0KKyMgICAgICAgICBta2RpcltkYXRhMV0gPSB0cnVlDQorIyAgICAg
ICAgIG1rbGlua1tkYXRhMV0gPSB0cnVlDQorIyAgICAgICAgIGxpbmtuYW1l
W2RhdGExXSA9ICJkYXRhMSINCisjDQorIyAgICAgdGhlbiwgbm90IG9ubHkg
d291bGQgdGhlIGRpcmVjdG9yeSAiL2RhdGEvMS91c2Vycy9tYXJrIiBiZSBj
cmVhdGVkLA0KKyMgICAgIGJ1dCB0aGUgc3ltYm9saWMgbGluayAiZGF0YTEi
IHdvdWxkIGJlIGNyZWF0ZWQgaW4gaGlzIGhvbWUgZGlyZWN0b3J5DQorIyAg
ICAgYXMgd2VsbCwgcG9pbnRpbmcgdG8gdGhhdCBkaXJlY3RvcnkgKHRoYXQg
aXMsICIvaG9tZS9tYXJrL2RhdGExIiAtPg0KKyMgICAgICIvZGF0YS8xL3Vz
ZXJzL21hcmsiKS4NCisjDQorIyAgICAgSWYgdGhpcyB2YXJpYWJsZSBpcyBu
b3Qgc3BlY2lmaWVkLCBmYWxzZSBpcyBhc3N1bWVkLg0KKyMNCisjDQorIyBs
aW5rbmFtZVtzdmNdID0gcGF0aA0KKyMNCisjICAgICBTcGVjaWZpZXMgdGhl
IG5hbWUgb2YgdGhlIHN5bWJvbGljIGxpbmsgY3JlYXRlZCBpbiB0aGUgdXNl
cidzIGhvbWUNCisjICAgICBkaXJlY3RvcnksIGFzIGRlbW9uc3RyYXRlZCBp
biB0aGUgZXhhbXBsZSBhYm92ZS4gIElmICJwYXRoIiBpbmNsdWRlcw0KKyMg
ICAgIHN1YmRpcmVjdG9yaWVzLCB0aGVzZSBzdWJkaXJlY3RvcmllcyBtdXN0
IGFscmVhZHkgZXhpc3QgYmVmb3JlIHRoZQ0KKyMgICAgIHN5bWJvbGljIGxp
bmsgaXMgY3JlYXRlZC4NCisjDQorIyAgICAgSWYgdGhlICJta2xpbmsiIHZh
cmlhYmxlIGlzIHRydWUsIGFuZCB0aGUgImxpbmtuYW1lIiB2YXJpYWJsZSBp
cyBub3QNCisjICAgICBzcGVjaWZpZWQsIG9yIGlzIGFuIGVtcHR5IHN0cmlu
ZyAiIiwgdGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgaXMgdXNlZA0KKyMgICAg
IChhcyBzcGVjaWZpZWQgYnkgdGhlICJzZXJ2aWNlIiBnbG9iYWwgdmFyaWFi
bGUpLg0KKyMNCisjDQorIyBza2VsZmlsZVtzdmNdID0gcGF0aA0KKyMNCisj
ICAgICBJbnN0cnVjdHMgYWRkdXNlci5sb2NhbCB0byBjb3B5IHRoZSBmaWxl
ICJwYXRoIiBmcm9tIHRoZSAic2tlbG90aGVyIg0KKyMgICAgIHNrZWxldG9u
IGRpcmVjdG9yeSAoc2VlIHRoZSBnbG9iYWwgdmFyaWFibGUgb2YgdGhhdCBu
YW1lKSBpbnRvIHRoZQ0KKyMgICAgIG5ld2x5LWNyZWF0ZWQgZGlyZWN0b3J5
IHNwZWNpZmllZCBieSB0aGUgIm1rZGlyIiB2YXJpYWJsZS4gIEZvcg0KKyMg
ICAgIGV4YW1wbGUsIGlmIGFkZHVzZXIubG9jYWwgd2FzIGNhbGxlZCBmb3Ig
dGhlIHVzZXIgIm5pbmEiLCBhbmQgdGhlDQorIyAgICAgZm9sbG93aW5nIGxp
bmVzIHdlcmUgdG8gYmUgc3BlY2lmaWVkOg0KKyMNCisjICAgICAgICAgaG9t
ZWRpclt3d3ddID0gIi9ob21lL3d3dyINCisjICAgICAgICAgc3ViZGlyW3d3
d10gPSAiZG9jL3VzZXJzIg0KKyMgICAgICAgICBhbHRob21lW3d3d10gPSBm
YWxzZQ0KKyMgICAgICAgICBta2Rpclt3d3ddID0gdHJ1ZQ0KKyMgICAgICAg
ICBza2VsZmlsZVt3d3ddID0gImluZGV4Lmh0bWwiDQorIw0KKyMgICAgIHRo
ZW4gdGhlIGRpcmVjdG9yeSAiL2hvbWUvd3d3L2RvYy91c2Vycy9uaW5hIiB3
b3VsZCBiZSBjcmVhdGVkIGFuZA0KKyMgICAgIHRoZSBmaWxlICJpbmRleC5o
dG1sIiB3b3VsZCBiZSBjb3BpZWQgZnJvbSAvZXRjL3NrZWwub3RoZXIgKG9y
IGZyb20NCisjICAgICB0aGUgZGlyZWN0b3J5IHNwZWNpZmllZCBieSB0aGUg
InNrZWxvdGhlciIgZ2xvYmFsIHZhcmlhYmxlKSBpbnRvDQorIyAgICAgdGhh
dCBuZXdseS1jcmVhdGVkIGRpcmVjdG9yeS4NCisjDQorIyAgICAgVGhlIG5l
d2x5LWNvcGllZCBmaWxlIHdpbGwgaGF2ZSBhIG1vZGUgYXMgc3BlY2lmaWVk
IGJ5IHRoZQ0KKyMgICAgICJmaWxlbW9kZSIgZ2xvYmFsIHZhcmlhYmxlLCBh
bmQgaXRzIGdyb3VwIG93bmVyIHdpbGwgZWl0aGVyIGJlIHRoZQ0KKyMgICAg
IGRlZmF1bHQgZ3JvdXAgb2YgdGhlIHVzZXIsIG9yIHRoZSBncm91cCBhcyBz
cGVjaWZpZWQgYnkgdGhlICJncm91cCINCisjICAgICB2YXJpYWJsZSBvciBp
bXBsaWVkIGJ5IHRoZSAidXNlciIgdmFyaWFibGUuICBTZWUgdGhlICJjaGdy
cHNrZWwiDQorIyAgICAgdmFyaWFibGUgYmVsb3cuDQorIw0KKyMgICAgIElm
IHRoaXMgdmFyaWFibGUgaXMgbm90IHNwZWNpZmllZCwgb3IgInBhdGgiIGlz
IGFuIGVtcHR5IHN0cmluZyAiIiwNCisjICAgICBubyBmaWxlIGlzIGNvcGll
ZC4gIElmIGEgZmlsZSBvZiB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMsIGl0
IGlzIE5PVA0KKyMgICAgIG92ZXJ3cml0dGVuLiAgT25seSBvbmUgZmlsZSBt
YXkgYmUgc3BlY2lmaWVkIGluIGFueSBnaXZlbiBzZXJ2aWNlOw0KKyMgICAg
IGlmIG1vcmUgYXJlIG5lZWRlZCwgc2ltcGx5IGNyZWF0ZSBhZGRpdGlvbmFs
IHNlcnZpY2VzIHdpdGggbWF0Y2hpbmcNCisjICAgICAiaG9tZWRpciIsICJz
dWJkaXIiLCAiYWx0aG9tZSIgYW5kICJta2RpciIgdmFyaWFibGVzLg0KKyMN
CisjDQorIyBjaGdycHNrZWxbc3ZjXSA9IGJvb2xlYW4NCisjDQorIyAgICAg
RGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCBhZGR1c2VyLmxvY2FsIGNoYW5n
ZXMgdGhlIGdyb3VwIG93bmVyIG9mDQorIyAgICAgdGhlIGNvcGllZCBza2Vs
ZXRvbiBmaWxlIChzcGVjaWZpZWQgYnkgdGhlICJza2VsZmlsZSIgdmFyaWFi
bGUNCisjICAgICBhYm92ZSkgdG8gdGhlIGdyb3VwIHNwZWNpZmllZCBieSB0
aGUgImdyb3VwIiB2YXJpYWJsZSBvciBpbXBsaWVkIGJ5DQorIyAgICAgdGhl
ICJ1c2VyIiB2YXJpYWJsZS4gIElmIHRoaXMgdmFyaWFibGUgaXMgZmFsc2Us
IHRoZSBkZWZhdWx0IGdyb3VwDQorIyAgICAgb2YgdGhlIHVzZXIgcmVtYWlu
cyB0aGUgZ3JvdXAgb3duZXIuDQorIw0KKyMgICAgIElmIHRoaXMgdmFyaWFi
bGUgaXMgbm90IHNwZWNpZmllZCwgZmFsc2UgaXMgYXNzdW1lZC4NCisjDQor
Iw0KKyMgRW5kIG9mIC9ldGMvYWRkdXNlci5sb2NhbC5jb25mLg0KQmluYXJ5
IGZpbGVzIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL3Vzci9zaGFyZS9sb2Nh
bGUvY2EvTENfTUVTU0FHRVMvYWRkdXNlci5tbyBhbmQgYWRkdXNlci0zLjUw
Lm1wYWxtZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUvbG9jYWxlL2NhL0xDX01F
U1NBR0VTL2FkZHVzZXIubW8gZGlmZmVyDQpCaW5hcnkgZmlsZXMgYWRkdXNl
ci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJlL2xvY2FsZS9kYS9MQ19NRVNT
QUdFUy9hZGR1c2VyLm1vIGFuZCBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJp
YW4vdG1wL3Vzci9zaGFyZS9sb2NhbGUvZGEvTENfTUVTU0FHRVMvYWRkdXNl
ci5tbyBkaWZmZXINCkJpbmFyeSBmaWxlcyBhZGR1c2VyLTMuNTAvZGViaWFu
L3RtcC91c3Ivc2hhcmUvbG9jYWxlL2RlL0xDX01FU1NBR0VTL2FkZHVzZXIu
bW8gYW5kIGFkZHVzZXItMy41MC5tcGFsbWVyL2RlYmlhbi90bXAvdXNyL3No
YXJlL2xvY2FsZS9kZS9MQ19NRVNTQUdFUy9hZGR1c2VyLm1vIGRpZmZlcg0K
QmluYXJ5IGZpbGVzIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL3Vzci9zaGFy
ZS9sb2NhbGUvZXMvTENfTUVTU0FHRVMvYWRkdXNlci5tbyBhbmQgYWRkdXNl
ci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUvbG9jYWxlL2Vz
L0xDX01FU1NBR0VTL2FkZHVzZXIubW8gZGlmZmVyDQpCaW5hcnkgZmlsZXMg
YWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJlL2xvY2FsZS9mci9M
Q19NRVNTQUdFUy9hZGR1c2VyLm1vIGFuZCBhZGR1c2VyLTMuNTAubXBhbG1l
ci9kZWJpYW4vdG1wL3Vzci9zaGFyZS9sb2NhbGUvZnIvTENfTUVTU0FHRVMv
YWRkdXNlci5tbyBkaWZmZXINCkJpbmFyeSBmaWxlcyBhZGR1c2VyLTMuNTAv
ZGViaWFuL3RtcC91c3Ivc2hhcmUvbG9jYWxlL2phL0xDX01FU1NBR0VTL2Fk
ZHVzZXIubW8gYW5kIGFkZHVzZXItMy41MC5tcGFsbWVyL2RlYmlhbi90bXAv
dXNyL3NoYXJlL2xvY2FsZS9qYS9MQ19NRVNTQUdFUy9hZGR1c2VyLm1vIGRp
ZmZlcg0KQmluYXJ5IGZpbGVzIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL3Vz
ci9zaGFyZS9sb2NhbGUva28vTENfTUVTU0FHRVMvYWRkdXNlci5tbyBhbmQg
YWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUvbG9j
YWxlL2tvL0xDX01FU1NBR0VTL2FkZHVzZXIubW8gZGlmZmVyDQpCaW5hcnkg
ZmlsZXMgYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJlL2xvY2Fs
ZS9ubC9MQ19NRVNTQUdFUy9hZGR1c2VyLm1vIGFuZCBhZGR1c2VyLTMuNTAu
bXBhbG1lci9kZWJpYW4vdG1wL3Vzci9zaGFyZS9sb2NhbGUvbmwvTENfTUVT
U0FHRVMvYWRkdXNlci5tbyBkaWZmZXINCkJpbmFyeSBmaWxlcyBhZGR1c2Vy
LTMuNTAvZGViaWFuL3RtcC91c3Ivc2hhcmUvbG9jYWxlL3BsL0xDX01FU1NB
R0VTL2FkZHVzZXIubW8gYW5kIGFkZHVzZXItMy41MC5tcGFsbWVyL2RlYmlh
bi90bXAvdXNyL3NoYXJlL2xvY2FsZS9wbC9MQ19NRVNTQUdFUy9hZGR1c2Vy
Lm1vIGRpZmZlcg0KQmluYXJ5IGZpbGVzIGFkZHVzZXItMy41MC9kZWJpYW4v
dG1wL3Vzci9zaGFyZS9sb2NhbGUvcHRfQlIvTENfTUVTU0FHRVMvYWRkdXNl
ci5tbyBhbmQgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Iv
c2hhcmUvbG9jYWxlL3B0X0JSL0xDX01FU1NBR0VTL2FkZHVzZXIubW8gZGlm
ZmVyDQpCaW5hcnkgZmlsZXMgYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNy
L3NoYXJlL2xvY2FsZS9ydS9MQ19NRVNTQUdFUy9hZGR1c2VyLm1vIGFuZCBh
ZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1wL3Vzci9zaGFyZS9sb2Nh
bGUvcnUvTENfTUVTU0FHRVMvYWRkdXNlci5tbyBkaWZmZXINCkJpbmFyeSBm
aWxlcyBhZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91c3Ivc2hhcmUvbWFuL2Zy
X0ZSL21hbjUvYWRkdXNlci5jb25mLjUuZ3ogYW5kIGFkZHVzZXItMy41MC5t
cGFsbWVyL2RlYmlhbi90bXAvdXNyL3NoYXJlL21hbi9mcl9GUi9tYW41L2Fk
ZHVzZXIuY29uZi41Lmd6IGRpZmZlcg0KQmluYXJ5IGZpbGVzIGFkZHVzZXIt
My41MC9kZWJpYW4vdG1wL3Vzci9zaGFyZS9tYW4vbWFuNS9hZGR1c2VyLmNv
bmYuNS5neiBhbmQgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91
c3Ivc2hhcmUvbWFuL21hbjUvYWRkdXNlci5jb25mLjUuZ3ogZGlmZmVyDQpC
aW5hcnkgZmlsZXMgYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJl
L21hbi9tYW41L2RlbHVzZXIuY29uZi41Lmd6IGFuZCBhZGR1c2VyLTMuNTAu
bXBhbG1lci9kZWJpYW4vdG1wL3Vzci9zaGFyZS9tYW4vbWFuNS9kZWx1c2Vy
LmNvbmYuNS5neiBkaWZmZXINCkJpbmFyeSBmaWxlcyBhZGR1c2VyLTMuNTAv
ZGViaWFuL3RtcC91c3Ivc2hhcmUvbWFuL21hbjgvYWRkZ3JvdXAuOC5neiBh
bmQgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUv
bWFuL21hbjgvYWRkZ3JvdXAuOC5neiBkaWZmZXINCkJpbmFyeSBmaWxlcyBh
ZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91c3Ivc2hhcmUvbWFuL21hbjgvYWRk
dXNlci44Lmd6IGFuZCBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1w
L3Vzci9zaGFyZS9tYW4vbWFuOC9hZGR1c2VyLjguZ3ogZGlmZmVyDQpCaW5h
cnkgZmlsZXMgYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJlL21h
bi9tYW44L2RlbGdyb3VwLjguZ3ogYW5kIGFkZHVzZXItMy41MC5tcGFsbWVy
L2RlYmlhbi90bXAvdXNyL3NoYXJlL21hbi9tYW44L2RlbGdyb3VwLjguZ3og
ZGlmZmVyDQpCaW5hcnkgZmlsZXMgYWRkdXNlci0zLjUwL2RlYmlhbi90bXAv
dXNyL3NoYXJlL21hbi9tYW44L2RlbHVzZXIuOC5neiBhbmQgYWRkdXNlci0z
LjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUvbWFuL21hbjgvZGVs
dXNlci44Lmd6IGRpZmZlcg0KQmluYXJ5IGZpbGVzIGFkZHVzZXItMy41MC9k
ZWJpYW4vdG1wL3Vzci9zaGFyZS9tYW4vcnVfUlUvbWFuNS9hZGR1c2VyLmNv
bmYuNS5neiBhbmQgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91
c3Ivc2hhcmUvbWFuL3J1X1JVL21hbjUvYWRkdXNlci5jb25mLjUuZ3ogZGlm
ZmVyDQpCaW5hcnkgZmlsZXMgYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNy
L3NoYXJlL21hbi9ydV9SVS9tYW41L2RlbHVzZXIuY29uZi41Lmd6IGFuZCBh
ZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1wL3Vzci9zaGFyZS9tYW4v
cnVfUlUvbWFuNS9kZWx1c2VyLmNvbmYuNS5neiBkaWZmZXINCkJpbmFyeSBm
aWxlcyBhZGR1c2VyLTMuNTAvZGViaWFuL3RtcC91c3Ivc2hhcmUvbWFuL3J1
X1JVL21hbjgvYWRkZ3JvdXAuOC5neiBhbmQgYWRkdXNlci0zLjUwLm1wYWxt
ZXIvZGViaWFuL3RtcC91c3Ivc2hhcmUvbWFuL3J1X1JVL21hbjgvYWRkZ3Jv
dXAuOC5neiBkaWZmZXINCkJpbmFyeSBmaWxlcyBhZGR1c2VyLTMuNTAvZGVi
aWFuL3RtcC91c3Ivc2hhcmUvbWFuL3J1X1JVL21hbjgvYWRkdXNlci44Lmd6
IGFuZCBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1wL3Vzci9zaGFy
ZS9tYW4vcnVfUlUvbWFuOC9hZGR1c2VyLjguZ3ogZGlmZmVyDQpCaW5hcnkg
ZmlsZXMgYWRkdXNlci0zLjUwL2RlYmlhbi90bXAvdXNyL3NoYXJlL21hbi9y
dV9SVS9tYW44L2RlbGdyb3VwLjguZ3ogYW5kIGFkZHVzZXItMy41MC5tcGFs
bWVyL2RlYmlhbi90bXAvdXNyL3NoYXJlL21hbi9ydV9SVS9tYW44L2RlbGdy
b3VwLjguZ3ogZGlmZmVyDQpCaW5hcnkgZmlsZXMgYWRkdXNlci0zLjUwL2Rl
Ymlhbi90bXAvdXNyL3NoYXJlL21hbi9ydV9SVS9tYW44L2RlbHVzZXIuOC5n
eiBhbmQgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGViaWFuL3RtcC91c3Ivc2hh
cmUvbWFuL3J1X1JVL21hbjgvZGVsdXNlci44Lmd6IGRpZmZlcg0KZGlmZiAt
dXJOIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL3Vzci9zaGFyZS9wZXJsNS9E
ZWJpYW4vQWRkdXNlckNvbW1vbi5wbSBhZGR1c2VyLTMuNTAubXBhbG1lci9k
ZWJpYW4vdG1wL3Vzci9zaGFyZS9wZXJsNS9EZWJpYW4vQWRkdXNlckNvbW1v
bi5wbQ0KLS0tIGFkZHVzZXItMy41MC9kZWJpYW4vdG1wL3Vzci9zaGFyZS9w
ZXJsNS9EZWJpYW4vQWRkdXNlckNvbW1vbi5wbQlUaHUgSmFuICAxIDEwOjAw
OjAwIDE5NzANCisrKyBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1w
L3Vzci9zaGFyZS9wZXJsNS9EZWJpYW4vQWRkdXNlckNvbW1vbi5wbQlXZWQg
TWF5ICA3IDE3OjAxOjQxIDIwMDMNCkBAIC0wLDAgKzEsMTUxIEBADQordXNl
IHZhcnMgcXcoQEVYUE9SVCAkVkFSMSk7DQorDQorDQorIyBDb21tb24gZnVu
Y3Rpb25zIHRoYXQgYXJlIHVzZWQgaW4gYWRkdXNlciBhbmQgZGVsdXNlcg0K
KyMgQ29weXJpZ2h0IChDKSAyMDAwIFJvbGFuZCBCYXVlcnNjaG1pZHQgPHJi
QGRlYmlhbi5vcmc+DQorDQorIyBNb3N0IG9mIHRoZSBmdW5jdGlvbnMgYXJl
IGFkb3B0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgYWRkdXNlcg0KKyMgQ29weXJp
Z2h0IChDKSAxOTk3LCAxOTk4LCAxOTk5IEd1eSBNYW9yIDxtYW9yQGRlYmlh
bi5vcmc+DQorIyBDb3B5cmlnaHQgKEMpIDE5OTUgVGVkIEhhamVrIDx0ZWRo
YWpla0Bib29tYm94Lm1pY3JvLnVtbi5lZHU+DQorIyAgICAgICAgICAgICAg
ICAgICAgIElhbiBBLiBNdXJkb2NrIDxpbXVyZG9ja0BnbnUuYWkubWl0LmVk
dT4NCisjDQorDQorQEVYUE9SVCA9IHF3KGludmFsaWRhdGVfbnNjZCBfIGRp
ZWYgd2FybmYgcmVhZF9jb25maWcgZ2V0X3VzZXJzX2dyb3VwcyBnZXRfZ3Jv
dXBfbWVtYmVycyBzX3ByaW50IHNfcHJpbnRmKTsNCisNCitzdWIgaW52YWxp
ZGF0ZV9uc2NkIHsNCisgICAgIyBDaGVjayBpZiB3ZSBuZWVkIHRvIGRvIG1h
a2UgLUMgL3Zhci95cCBmb3IgTklTDQorICAgIG15ICRuaXNjb25maWc7DQor
ICAgIGlmKC1mICIvZXRjL2RlZmF1bHQvbmlzIikgew0KKyAgICAgICAgJG5p
c2NvbmZpZyA9ICIvZXRjL2RlZmF1bHQvbmlzIjsNCisgICAgfSBlbHNpZigt
ZiAiL2V0Yy9pbml0LmQvbmlzIikgew0KKyAgICAgICAgJG5pc2NvbmZpZyA9
ICIvZXRjL2luaXQuZC9uaXMiOw0KKyAgICB9DQorICAgIGlmKGRlZmluZWQo
JG5pc2NvbmZpZykgJiYgLWYgIi92YXIveXAvTWFrZWZpbGUiICYmDQorICAg
ICAgICAteCAiL3Vzci9iaW4vcnBjaW5mbyIgJiYgZ3JlcCgveXBzZXJ2Lywg
cXh7L3Vzci9iaW4vcnBjaW5mbyAtcH0pKSB7DQorCW9wZW4oTklTQ09ORklH
LCAiPCRuaXNjb25maWciKTsNCisJaWYoZ3JlcCgvXk5JU1NFUlZFUj1tYXN0
ZXIvLCA8TklTQ09ORklHPikpIHsNCisgICAgICAgICAgICBzeXN0ZW0oIm1h
a2UiLCAiLUMiLCAiL3Zhci95cCIpOw0KKwl9DQorCWNsb3NlKE5JU0NPTkZJ
Ryk7DQorICAgIH0NCisgDQorICAgICMgQ2hlY2sgaWYgd2UgbmVlZCB0byBp
bnZhbGlkYXRlIHRoZSBOU0NEIGNhY2hlDQorICAgIG15ICRuc2NkOw0KKyAg
ICBpZigtZSAiL3Vzci9zYmluL25zY2QiKSB7DQorICAgICAgICAkbnNjZCA9
ICIvdXNyL3NiaW4vbnNjZCI7DQorICAgIH0gZWxzaWYoLWUgIi91c3IvYmlu
L25zY2QiKSB7DQorICAgICAgICAkbnNjZCA9ICIvdXNyL2Jpbi9uc2NkIjsN
CisgICAgfQ0KKyAgICBteSAkbnNjZHBpZCA9ICIvdmFyL3J1bi9uc2NkLnBp
ZCI7DQorICAgICMgdGhpcyBmdW5jdGlvbiByZXBsYWNlcyBzdGFydG5zY2Qg
YW5kIHN0b3Buc2NkIChjbG9zZXM6ICM1NDcyNikNCisgICAgaWYoZGVmaW5l
ZCgkbnNjZCkgJiYgLWYgJG5zY2RwaWQpDQorICAgICAgew0KKwkgICAgbXkg
JHRhYmxlID0gc2hpZnQ7DQorCSAgICBpZiAoJHRhYmxlKQ0KKwkgICAgICB7
DQorCSAgICAgICAgc3lzdGVtICgkbnNjZCwgIi1pIiwgJHRhYmxlKTsNCisJ
ICAgICAgfQ0KKwkgICAgZWxzZQ0KKwkgICAgICB7DQorCSAgICAgICAgIyBv
dGhlcndpc2Ugd2UgaW52YWxpZGF0ZSBwYXNzd2QgYW5kIGdyb3VwIHRhYmxl
DQorCSAgICAgICAgc3lzdGVtICgkbnNjZCwgIi1pIiwgInBhc3N3ZCIpOw0K
KwkgICAgICAgIHN5c3RlbSAoJG5zY2QsICItaSIsICJncm91cCIpOw0KKwkg
ICAgICB9DQorICAgICAgfQ0KK30NCisNCitzdWIgXyB7DQorICAgIHJldHVy
biBnZXR0ZXh0KCJAXyIpOw0KK30NCisNCitzdWIgZGllZiB7DQorICAgIG15
ICgkZm9ybSxAYXJndSk9QF87DQorICAgIHByaW50ZiBTVERFUlIgIiQwOiAk
Zm9ybSIsQGFyZ3U7DQorICAgIGV4aXQgMTsNCit9DQorDQorc3ViIHdhcm5m
IHsNCisgICAgbXkgKCRmb3JtLEBhcmd1KT1AXzsNCisgICAgcHJpbnRmIFNU
REVSUiAiJDA6ICRmb3JtIixAYXJndTsNCit9DQorDQorIyBwYXJzZSB0aGUg
Y29uZmlndXJhdGlvbiBmaWxlDQorc3ViIHJlYWRfY29uZmlnIHsNCisgICAg
bXkgKCRjb25mX2ZpbGUpID0gQF87DQorICAgIG15ICgkdmFyLCAkbGN2YXIs
ICR2YWwpOw0KKw0KKyAgICBpZiAoISAtZiAkY29uZl9maWxlKSB7DQorCXBy
aW50ZiBfKCIlczogJXMgZG9lc24ndCBleGlzdC4gIFVzaW5nIGRlZmF1bHRz
LlxuIiksJDAsJGNvbmZfZmlsZSBpZiAkdmVyYm9zZTsNCisJcmV0dXJuOw0K
KyAgICB9DQorDQorICAgIG9wZW4gKENPTkYsICRjb25mX2ZpbGUpIHx8IGRp
ZWYoIiVzOiAlc1xuIiwkY29uZl9maWxlLCQhKTsNCisgICAgd2hpbGUgKDxD
T05GPikgew0KKwljaG9tcDsNCisJbmV4dCBpZiAvXiMvIHx8IC9eXHMqJC87
DQorDQorCWlmICgoKCR2YXIsICR2YWwpID0gL15ccyooW2EtekEtWjAtOV9d
Kylccyo9XHMqKC4qKS8pICE9IDIpIHsNCisJICAgIHdhcm5mKF8oIkNvdWxk
bid0IHBhcnNlICVzOiVzLlxuIiksJGNvbmZfZmlsZSwkLik7DQorCSAgICBu
ZXh0Ow0KKwl9DQorCSRsY3ZhciA9IGxjICR2YXI7DQorCWlmICghZGVmaW5l
ZCgkY29uZmlneyRsY3Zhcn0pKSB7DQorCSAgICB3YXJuZihfKCJVbmtub3du
IHZhcmlhYmxlIGAlcycgYXQgJXM6JXMuXG4iKSwkdmFyLCRjb25mX2ZpbGUs
JC4pOw0KKwkgICAgbmV4dDsNCisJfQ0KKw0KKwkkdmFsID1+IHMvXiIoLiop
IiQvJDEvOw0KKwkkdmFsID1+IHMvXicoLiopJyQvJDEvOw0KKw0KKwkkY29u
ZmlneyRsY3Zhcn0gPSAkdmFsOw0KKyAgICB9DQorDQorICAgIGNsb3NlIENP
TkYgfHwgZGllICIkISI7DQorfQ0KKw0KKyMgcmV0dXJuIGEgdXNlcidzIGdy
b3Vwcw0KK3N1YiBnZXRfdXNlcnNfZ3JvdXBzIHsNCisgICAgbXkoJHVzZXIp
ID0gQF87DQorICAgIG15KCRuYW1lLCRtZW1iZXJzLEBncm91cHMpOw0KKyAg
ICBzZXRncmVudDsNCisgICAgd2hpbGUgKCgkbmFtZSwkbWVtYmVycykgPSAo
Z2V0Z3JlbnQpWzAsM10pIHsNCisJZm9yIChzcGxpdCgvIC8sICRtZW1iZXJz
KSkgew0KKwkgICAgaWYgKCR1c2VyIGVxICRfKSB7DQorCQlwdXNoIEBncm91
cHMsICRuYW1lOw0KKwkJbGFzdDsNCisJICAgIH0NCisJfQ0KKyAgICB9DQor
ICAgIGVuZGdyZW50Ow0KKyAgICBAZ3JvdXBzOw0KK30NCisNCisjIHJldHVy
biBhIGdyb3VwJ3MgbWVtYmVycw0KK3N1YiBnZXRfZ3JvdXBfbWVtYmVycw0K
KyAgew0KKyAgICAgIG15ICRncm91cCA9IHNoaWZ0Ow0KKyAgICAgIG15ICRt
ZW1iZXJzID0gKGdldGdybmFtKCRncm91cCkpWzNdOw0KKyAgICAgIHJldHVy
biBzcGxpdCgvIC8sICRtZW1iZXJzKTsNCisgIH0NCisNCitzdWIgc19wcmlu
dA0KK3sNCisgICAgcHJpbnQgam9pbigiICIsQF8pDQorCWlmKCR2ZXJib3Nl
KTsNCit9DQorDQorc3ViIHNfcHJpbnRmDQorew0KKyAgICBwcmludGYoQF8p
DQorCWlmKCR2ZXJib3NlKTsNCit9DQorDQorc3ViIGRfcHJpbnRmDQorew0K
KyAgICBwcmludGYoQF8pDQorICAgIAlpZigoZGVmaW5lZCgkdmVyYm9zZSkg
JiYgJHZlcmJvc2UgPiAxKSB8fCAoZGVmaW5lZCgkZGVidWdnaW5nKSAmJiAk
ZGVidWdnaW5nID09IDEpKTsNCit9DQorDQorIyBMb2NhbCBWYXJpYWJsZXM6
DQorIyBtb2RlOmNwZXJsDQorIyBFbmQ6DQpkaWZmIC11ck4gYWRkdXNlci0z
LjUwL2RlYmlhbi90bXAvdXNyL3NoYXJlL3Blcmw1L0RlYmlhbi9BZGR1c2Vy
RmlsZS5wbSBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1wL3Vzci9z
aGFyZS9wZXJsNS9EZWJpYW4vQWRkdXNlckZpbGUucG0NCi0tLSBhZGR1c2Vy
LTMuNTAvZGViaWFuL3RtcC91c3Ivc2hhcmUvcGVybDUvRGViaWFuL0FkZHVz
ZXJGaWxlLnBtCVRodSBKYW4gIDEgMTA6MDA6MDAgMTk3MA0KKysrIGFkZHVz
ZXItMy41MC5tcGFsbWVyL2RlYmlhbi90bXAvdXNyL3NoYXJlL3Blcmw1L0Rl
Ymlhbi9BZGR1c2VyRmlsZS5wbQlXZWQgTWF5ICA3IDE3OjAxOjQxIDIwMDMN
CkBAIC0wLDAgKzEsOTIgQEANCisjIEZ1bmN0aW9ucyB1c2VkIHRvIG1hbmlw
dWxhdGUgdXNlciBhbmQgZ3JvdXAgaW5mb3JtYXRpb24gd2l0aCB0aGUgc3Rh
bmRhcmQNCisjIGZpbGUtYmFzZWQgdG9vbHMgKHVzZXJhZGQsIGdyb3VwYWRk
LCBldCBhbCkNCisjDQorIyBCYXNlZCBvbiB0aGUgY29kZSBwcmV2aW91c2x5
IGluIGFkZHVzZXIoOCksIHJpcHBlZCBvdXQgYW5kIHByb2NlZHVyaXNlZCBi
eQ0KKyMgTWF0dGhldyBQYWxtZXIgPG1wYWxtZXJAZGViaWFuLm9yZz4uDQor
Iw0KKyMgQ29weXJpZ2h0IChDKSAyMDAzIE1hdHRoZXcgUGFsbWVyIDxtcGFs
bWVyQGRlYmlhbi5vcmc+DQorIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDE5OTgs
IDE5OTkgR3V5IE1hb3IgPG1hb3JAZGViaWFuLm9yZz4NCisjIENvcHlyaWdo
dCAoQykgMTk5NSBUZWQgSGFqZWsgPHRlZGhhamVrQGJvb21ib3gubWljcm8u
dW1uLmVkdT4NCisjICAgICAgICAgICAgICAgICAgICAgSWFuIEEuIE11cmRv
Y2sgPGltdXJkb2NrQGdudS5haS5taXQuZWR1Pg0KKyMgQnVnZml4ZXMgYW5k
IG90aGVyIGltcHJvdmVtZW50cyBSb2xhbmQgQmF1ZXJzY2htaWR0IDxyYkBk
ZWJpYW4ub3JnPg0KKyMgTERBUCBzdXBwb3J0IHByb2dyYW1tZWQgYnkgTWF0
dGhldyBQYWxtZXIgPG1wYWxtZXJAZGViaWFuLm9yZz4NCisjIEdlbmVyYWwg
c2NoZW1lIG9mIHRoZSBwcm9ncmFtIGFkYXB0ZWQgYnkgdGhlIG9yaWdpbmFs
IGRlYmlhbiAnYWRkdXNlcicNCisjICBwcm9ncmFtIGJ5IElhbiBBLiBNdXJk
b2NrIDxpbXVyZG9ja0BnbnUuYWkubWl0LmVkdT4uDQorIw0KKyMgICAgVGhp
cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vciBtb2RpZnkNCisjICAgIGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5DQorIyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KKyMgICAgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCisjDQorIyAgICBU
aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwNCisjICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQor
IyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlDQorIyAgICBHTlUgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KKyMNCisjICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlDQorIyAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh
bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KKyMgICAg
Rm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAs
IEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQ0KKw0KK3N1YiBhZGRncm91
cF9maWxlDQorew0KKwlteSAoJG5hbWUsJGdpZCkgPSBAXzsNCisJDQorCSZz
eXN0ZW1jYWxsKCcvdXNyL3NiaW4vZ3JvdXBhZGQnLCAnLWcnLCAkZ2lkLCAk
bmFtZSk7DQorfQ0KKw0KK3N1YiBhZGR1c2VydG9ncm91cF9maWxlDQorew0K
KwlteSAoJHVzZXIsICRncm91cCkgPSBAXzsNCisJDQorCSZzeXN0ZW1jYWxs
KCcvdXNyL2Jpbi9ncGFzc3dkJywgJy1NJywNCisJCSAgICBqb2luKCcsJywg
Z2V0X2dyb3VwX21lbWJlcnMoJGdyb3VwKSwgJHVzZXIpLA0KKwkJICAgICRn
cm91cCk7DQorfQ0KKw0KK3N1YiBhZGR1c2VyX2ZpbGUNCit7DQorCW15ICgk
bmFtZSwgJHVpZCwgJGdpZCwgJGhvbWUsICRzaGVsbCwgJGdlY29zKSA9IEBf
Ow0KKw0KKwkmc3lzdGVtY2FsbCgnL3Vzci9zYmluL3VzZXJhZGQnLCAnLWQn
LCAkaG9tZSwgJy1nJywgJGdpZCwNCisJCSAgICAnLXMnLCAkc2hlbGwsICct
dScsICR1aWQsICRuYW1lKTsNCisJDQorCWlmIChkZWZpbmVkKCRnZWNvcykp
IHsNCisJCSZjaF9nZWNvcygkZ2Vjb3MpOw0KKwl9DQorfQ0KKw0KK3N1YiBk
ZWx1c2VyX2ZpbGUNCit7DQorCW15ICR1c2VyID0gc2hpZnQ7DQorCQ0KKwlz
eXN0ZW1jYWxsKCIvdXNyL3NiaW4vdXNlcmRlbCIsICR1c2VyKTsNCit9DQor
DQorc3ViIGRlbGdyb3VwX2ZpbGUNCit7DQorCW15ICRncm91cCA9IHNoaWZ0
Ow0KKwkNCisJc3lzdGVtY2FsbCgiL3Vzci9zYmluL2dyb3VwZGVsIiwgJGdy
b3VwKTsNCit9DQorDQorc3ViIGRlbHVzZXJmcm9tZ3JvdXBfZmlsZQ0KK3sN
CisgICAgbXkgQG1lbWJlcnMgPSBnZXRfZ3JvdXBfbWVtYmVycygkZ3JvdXAp
Ow0KKyAgICBteSAkaXNtZW1iZXIgPSAwOw0KKyAgICAgICAgDQorICAgIGZv
cigkaSA9IDA7ICRpIDw9ICQjbWVtYmVyczsgJGkrKykgew0KKyAgICAgICAg
aWYoJG1lbWJlcnNbJGldIGVxICR1c2VyKSB7DQorICAgICAgICAgICAgJGlz
bWVtYmVyID0gMTsNCisgICAgICAgICAgICBzcGxpY2UoQG1lbWJlcnMsJGks
MSk7DQorICAgICAgICB9DQorICAgIH0NCisNCisgICAgdW5sZXNzKCRpc21l
bWJlcikgew0KKyAgICAgICAgZGllZihfKCIlcyBpcyBub3QgYSBtZW1iZXIg
b2YgZ3JvdXAgJXMuXG4iKSwkdXNlciwkZ3JvdXApOw0KKyAgICB9DQorIA0K
KyAgICAjc3lzdGVtY2FsbCgidXNlcm1vZCIsIi1HIiwgam9pbigiLCIsQGdy
b3VwcyksICR1c2VyICk7DQorICAgIHN5c3RlbWNhbGwoJy91c3IvYmluL2dw
YXNzd2QnLCctTScsIGpvaW4oJywnLEBtZW1iZXJzKSwgJGdyb3VwKTsNCit9
DQorDQorcmV0dXJuIDE7DQpkaWZmIC11ck4gYWRkdXNlci0zLjUwL2RlYmlh
bi90bXAvdXNyL3NoYXJlL3Blcmw1L0RlYmlhbi9BZGR1c2VyTERBUC5wbSBh
ZGR1c2VyLTMuNTAubXBhbG1lci9kZWJpYW4vdG1wL3Vzci9zaGFyZS9wZXJs
NS9EZWJpYW4vQWRkdXNlckxEQVAucG0NCi0tLSBhZGR1c2VyLTMuNTAvZGVi
aWFuL3RtcC91c3Ivc2hhcmUvcGVybDUvRGViaWFuL0FkZHVzZXJMREFQLnBt
CVRodSBKYW4gIDEgMTA6MDA6MDAgMTk3MA0KKysrIGFkZHVzZXItMy41MC5t
cGFsbWVyL2RlYmlhbi90bXAvdXNyL3NoYXJlL3Blcmw1L0RlYmlhbi9BZGR1
c2VyTERBUC5wbQlXZWQgTWF5ICA3IDE3OjAxOjQxIDIwMDMNCkBAIC0wLDAg
KzEsMTk2IEBADQorIyBGdW5jdGlvbnMgdXNlZCB0byBtYW5pcHVsYXRlIHVz
ZXIgYW5kIGdyb3VwIGluZm9ybWF0aW9uIHN0b3JlZCBpbiBMREFQLg0KKyMN
CisjIENvcHlyaWdodCAoQykgMjAwMyBNYXR0aGV3IFBhbG1lciA8bXBhbG1l
ckBkZWJpYW4ub3JnPg0KKyMNCisjICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k
aWZ5DQorIyAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyMgICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3INCisjICAgIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uDQorIw0KKyMgICAgVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
DQorIyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KKyMgICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZQ0KKyMgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4NCisjDQorIyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0K
KyMgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUNCisjICAgIEZvdW5kYXRpb24sIEluYy4s
IDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjEx
MS0xMzA3ICBVU0ENCisjDQordXNlIE5ldDo6TERBUDsNCisNCitzdWIgYmlu
ZF9kYg0KK3sNCisJbXkgJGJpbmRkbiA9ICRjb25maWd7bGRhcF9iaW5kZG59
Ow0KKwlteSAkYmluZHB3ID0gJGNvbmZpZ3tsZGFwX2JpbmRwd307DQorCW15
ICRob3N0ID0gJGNvbmZpZ3tsZGFwX3NlcnZlcn07DQorCW15ICRwb3J0ID0g
JGNvbmZpZ3tsZGFwX3BvcnR9Ow0KKwkNCisJbXkgJGRzID0gTmV0OjpMREFQ
LT5uZXcoJGhvc3QsIHBvcnQgPT4gJHBvcnQpOw0KKwkNCisJbXkgJHJ2Ow0K
KwkkcnYgPSAkZHMtPmJpbmQoJGJpbmRkbiwgcGFzc3dvcmQgPT4gJGJpbmRw
dyk7DQorCQ0KKwlpZiAoJHJ2LT5jb2RlKQ0KKwl7DQorCQlkaWUgIkxEQVAg
RmFpbHVyZTogIi4kcnYtPmVycm9yOw0KKwl9DQorCQ0KKwlyZXR1cm4gJGRz
Ow0KK30NCisNCitzdWIgYWRkZ3JvdXBfbGRhcA0KK3sNCisJbXkgKCRuYW1l
LCRnaWQpID0gQF87DQorCW15ICRydjsNCisJCQ0KKwkjIENyZWF0ZSBhIG5l
dyBlbnRyeSB1bmRlciBMREFQX1JETl9HUk9VUFMgb2YgdHlwZSBwb3NpeEdy
b3VwDQorCSRkcyA9IGJpbmRfZGIoKTsNCisJDQorCW15ICRlbnRyeV9kbiA9
ICJjbj0kbmFtZSwkY29uZmlne2xkYXBfcmRuX2dyb3Vwc30sJGNvbmZpZ3ts
ZGFwX2Jhc2Vkbn0iOw0KKwlteSAkYWRkX2RhdGEgPSBbICdvYmplY3RjbGFz
cycgPT4gWyAndG9wJywgJ3Bvc2l4R3JvdXAnIF0sDQorCQkJJ2NuJyA9PiAk
bmFtZSwNCisJCQknZ2lkTnVtYmVyJyA9PiAkZ2lkDQorCQkJXTsNCisJJHJ2
ID0gJGRzLT5hZGQoJGVudHJ5X2RuLCBhdHRycyA9PiAkYWRkX2RhdGEpOw0K
KwkNCisJaWYgKCRydi0+Y29kZSkNCisJew0KKwkJcHJpbnQgIkZhaWxlZCB0
byBhZGQgdGhlIGdyb3VwOiAiLiRydi0+ZXJyb3IuIlxuIjsNCisJfQ0KKw0K
KwkkZHMtPnVuYmluZCgpOw0KK30NCisNCitzdWIgYWRkdXNlcnRvZ3JvdXBf
bGRhcA0KK3sNCisJbXkgKCR1c2VyLCAkZ3JvdXApID0gQF87DQorCQ0KKwlt
eSAkcnY7DQorCQkNCisJIyBBZGQgYSBuZXcgYXR0cmlidXRlIHRvIGNuPSRn
cm91cCxMREFQX1JETl9HUk9VUFMsTERBUF9CQVNFRE4NCisJIyBvZiAibWVt
YmVydWlkPSR1c2VyIg0KKwkkZHMgPSBiaW5kX2RiKCk7DQorCQ0KKwlteSAk
ZW50cnlfZG4gPSAiY249JGdyb3VwLCRjb25maWd7bGRhcF9yZG5fZ3JvdXBz
fSwkY29uZmlne2xkYXBfYmFzZWRufSI7DQorCW15ICRhZGRfZGF0YSA9IFsg
J21lbWJlcnVpZCcgPT4gJHVzZXIgXTsNCisJJHJ2ID0gJGRzLT5tb2RpZnko
JGVudHJ5X2RuLCBhZGQgPT4gJGFkZF9kYXRhKTsNCisJDQorCWlmICgkcnYt
PmNvZGUpDQorCXsNCisJCXByaW50ICJGYWlsZWQgdG8gYWRkIHRoZSBncm91
cDogIi4kcnYtPmVycm9yOw0KKwl9DQorDQorCSRkcy0+dW5iaW5kKCk7DQor
fQ0KKw0KK3N1YiBhZGR1c2VyX2xkYXANCit7DQorCW15ICgkbmFtZSwgJHVp
ZCwgJGdpZCwgJGhvbWUsICRzaGVsbCwgJGdlY29zKSA9IEBfOw0KKw0KKwlt
eSAkcnY7DQorCQ0KKwkjIEFkZCBhIG5ldyBlbnRyeSBpbiB1aWQ9JG5hbWUs
TERBUF9SRE5fVVNFUlMsTERBUF9CQVNFRE4gb2YgdHlwZQ0KKwkjIHBvc2l4
QWNjb3VudA0KKwkkZHMgPSBiaW5kX2RiKCk7DQorDQorCWlmICgkZ2Vjb3Mg
bmUgJycpDQorCXsNCisJCW15ICRjbiA9ICRnZWNvczsNCisJfSBlbHNlIHsN
CisJCW15ICRjbiA9ICRuYW1lOw0KKwl9DQorCQ0KKwlteSAkZW50cnlfZG4g
PSAidWlkPSRuYW1lLCRjb25maWd7bGRhcF9yZG5fdXNlcnN9LCRjb25maWd7
bGRhcF9iYXNlZG59IjsNCisJbXkgJGFkZF9kYXRhID0gWyAnb2JqZWN0Y2xh
c3MnID0+IFsgJ3RvcCcsICdwb3NpeEFjY291bnQnIF0sDQorCQkJJ2NuJyA9
PiAkbmFtZSwNCisJCQkndWlkJyA9PiAkbmFtZSwNCisJCQkndWlkTnVtYmVy
JyA9PiAkdWlkLA0KKwkJCSdnaWROdW1iZXInID0+ICRnaWQsDQorCQkJJ2hv
bWVEaXJlY3RvcnknID0+ICRob21lLA0KKwkJCSdsb2dpblNoZWxsJyA9PiAk
c2hlbGwNCisJCSAgICAgICBdOw0KKw0KKwlpZiAoJGdlY29zIG5lICcnKQ0K
Kwl7DQorCQkkYWRkX2RhdGF7J2dlY29zJ30gPSAkZ2Vjb3M7DQorCX0NCisJ
JHJ2ID0gJGRzLT5hZGQoJGVudHJ5X2RuLCBhdHRycyA9PiAkYWRkX2RhdGEp
Ow0KKwkNCisJaWYgKCRydi0+Y29kZSkNCisJew0KKwkJcHJpbnQgIkZhaWxl
ZCB0byBhZGQgdGhlIHVzZXI6ICIuJHJ2LT5lcnJvci4iXG4iOw0KKwl9DQor
DQorCSRkcy0+dW5iaW5kKCk7DQorfQ0KKw0KKyMgUHJpdmF0ZSBoZWxwZXIg
ZnVuY3Rpb24gdG8gY2hlY2sgc2ltcGx5IGlmIHRoZSBhdHRyaWJ1dGUgYW5k
IHZhbHVlDQorIyAoc3BlY2lmaWVkIGFzIGF0dHI9dmFsdWUpIGV4aXN0cyBp
biB0aGUgZ2l2ZW4gT1Ugb2YgdGhlIExEQVAgZGF0YWJhc2UNCisjIChyZWxh
dGl2ZSB0byBMREFQX0JBU0VETikuDQorc3ViIGxkYXBfcmRuX2V4aXN0cw0K
K3sNCisJbXkgKCRhdHRyLCAkb3UpID0gQF87DQorCQ0KKwlteSAkZHMgPSBi
aW5kX2RiKCk7DQorCW15ICRiYXNlID0gIiRvdSwiLiRjb25maWd7J2xkYXBf
YmFzZWRuJ307DQorCQ0KKwlteSAkcmVzID0gJGRzLT5zZWFyY2goDQorCQkn
YmFzZScgPT4gJGJhc2UsDQorCQknZmlsdGVyJyA9PiAiKCRhdHRyKSIpOw0K
KwkNCisJaWYgKCRyZXMtPmNvdW50ID09IDApDQorCXsNCisJCXJldHVybiB1
bmRlZjsNCisJfSBlbHNlIHsNCisJCXJldHVybiB0cnVlOw0KKwl9DQorfQ0K
Kw0KK3N1YiBkZWx1c2VyX2xkYXANCit7DQorCW15ICRuYW1lID0gc2hpZnQ7
DQorDQorCWlmICghbGRhcF9yZG5fZXhpc3RzKCJ1aWQ9JG5hbWUiLCAkY29u
ZmlneydsZGFwX3Jkbl91c2Vycyd9KSkNCisJew0KKwkJZGVsdXNlcl9maWxl
KCRuYW1lKTsNCisJCXJldHVybjsNCisJfQ0KKw0KKwkjIFJlbW92ZSB0aGUg
RE4gdWlkPSRuYW1lLExEQVBfUkROX1VTRVJTLExEQVBfQkFTRUROIGZyb20g
dGhlIHN5c3RlbQ0KKwlteSAkZHMgPSBiaW5kX2RiKCk7DQorCQ0KKwkkZHMt
PmRlbGV0ZSgidWlkPSRuYW1lLCIuJGNvbmZpZ3snbGRhcF9yZG5fdXNlcnMn
fS4iLCIuJGNvbmZpZ3snbGRhcF9iYXNlZG4nfSk7DQorfQ0KKw0KK3N1YiBk
ZWxncm91cF9sZGFwDQorew0KKwlteSAkbmFtZSA9IHNoaWZ0Ow0KKw0KKwlp
ZiAoIWxkYXBfcmRuX2V4aXN0cygiY249JG5hbWUiLCAkY29uZmlneydsZGFw
X3Jkbl9ncm91cHMnfSkpDQorCXsNCisJCWRlbGdyb3VwX2ZpbGUoJG5hbWUp
Ow0KKwkJcmV0dXJuOw0KKwl9DQorDQorCSMgUmVtb3ZlIHRoZSBETiBjbj0k
bmFtZSxMREFQX1JETl9HUk9VUFMsTERBUF9CQVNFRE4NCisJbXkgJGRzID0g
YmluZF9kYigpOw0KKwkNCisJJGRzLT5kZWxldGUoImNuPSRuYW1lLCIuJGNv
bmZpZ3snbGRhcF9yZG5fZ3JvdXBzJ30uIiwiLiRjb25maWd7J2xkYXBfYmFz
ZWRuJ30pOw0KK30NCisNCitzdWIgZGVsdXNlcmZyb21ncm91cF9sZGFwDQor
ew0KKwlteSAoJHVzZXIsICRncm91cCkgPSBAXzsNCisJDQorCSMgUmVtb3Zl
IHRoZSBlbnRyeSBtZW1iZXJ1aWQ9JHVzZXIgZnJvbQ0KKwkjIGNuPSRncm91
cCxMREFQX1JETl9HUk9VUFMsTERBUF9CQVNFRE4NCisJDQorCW15ICRkbiA9
ICJjbj0kZ3JvdXAsIi4kY29uZmlneydsZGFwX3Jkbl9ncm91cHMnfS4iLCIu
JGNvbmZpZ3snbGRhcF9iYXNlZG4nfTsNCisJbXkgJGRlbF9kYXRhID0gWyAn
bWVtYmVydWlkJyA9PiAkdXNlciBdOw0KKw0KKwlteSAkZHMgPSBiaW5kX2Ri
KCk7DQorCQ0KKwkkZHMtPm1vZGlmeSgkZG4sIGRlbGV0ZSA9PiAkZGVsX2Rh
dGEpOw0KK30NCisNCityZXR1cm4gMTsNCmRpZmYgLXVyTiBhZGR1c2VyLTMu
NTAvZGVsdXNlciBhZGR1c2VyLTMuNTAubXBhbG1lci9kZWx1c2VyDQotLS0g
YWRkdXNlci0zLjUwL2RlbHVzZXIJU2F0IEF1ZyAzMSAwNTo1MToyMCAyMDAy
DQorKysgYWRkdXNlci0zLjUwLm1wYWxtZXIvZGVsdXNlcglGcmkgTWF5IDMw
IDE3OjQ0OjIzIDIwMDMNCkBAIC01MSw3ICs1MSw3IEBADQogIyAgICAgLS1x
dWlldCB8IC1xICAgICAgZG9uJ3QgZ2l2ZSBwcm9jZXNzIGluZm9ybWF0aW9u
IHRvIHN0ZG91dA0KICMgICAgIC0taGVscCB8IC1oICAgICAgIHVzYWdlIG1l
c3NhZ2UNCiAjICAgICAtLXZlcnNpb24gfCAtdiAgICB2ZXJzaW9uIG51bWJl
ciBhbmQgY29weXJpZ2h0DQotIyAgICAgLS1jb25mIHwgLWMgRklMRSAgdXNl
IEZJTEUgaW5zdGVhZCBvZiAvZXRjL2RlbHVzZXIuY29uZg0KKyMgICAgIC0t
Y29uZiB8IC1jIEZJTEUgIHVzZSBGSUxFIGluc3RlYWQgb2YgL2V0Yy9hZGR1
c2VyLmNvbmYNCiANCiAkRU5WeyJQQVRIIn0gPSAiL3NiaW46L2JpbjovdXNy
L3NiaW46L3Vzci9iaW4iOw0KIA0KQEAgLTg2LDExICs4NiwzOSBAQA0KIHRl
eHRkb21haW4oImFkZHVzZXIiKTsNCiANCiAkdmVyYm9zZSA9IDE7DQotJGRl
ZmF1bHRzID0gIi9ldGMvZGVsdXNlci5jb25mIjsNCiskZGVmYXVsdHMgPSAi
L2V0Yy9hZGR1c2VyLmNvbmYiOw0KIA0KKyRjb25maWd7ImRzaGVsbCJ9ID0g
Ii9iaW4vYmFzaCI7DQorJGNvbmZpZ3siZmlyc3Rfc3lzdGVtX3VpZCJ9ID0g
MTAwOw0KKyRjb25maWd7Imxhc3Rfc3lzdGVtX3VpZCJ9ID0gOTk5Ow0KKyRj
b25maWd7ImZpcnN0X3VpZCJ9ID0gMTAwMDsNCiskY29uZmlneyJsYXN0X3Vp
ZCJ9ID0gMjk5OTk7DQorJGNvbmZpZ3siZmlyc3Rfc3lzdGVtX2dpZCJ9ID0g
MTAwOw0KKyRjb25maWd7Imxhc3Rfc3lzdGVtX2dpZCJ9ID0gOTk5Ow0KKyRj
b25maWd7ImZpcnN0X2dpZCJ9ID0gMTAwMDsNCiskY29uZmlneyJsYXN0X2dp
ZCJ9ID0gMjk5OTk7DQorJGNvbmZpZ3siZGhvbWUifSA9ICIvaG9tZSI7DQor
JGNvbmZpZ3sic2tlbCJ9ID0gIi9ldGMvc2tlbCI7DQorJGNvbmZpZ3sidXNl
cmdyb3VwcyJ9ID0gInllcyI7DQorJGNvbmZpZ3sidXNlcnNfZ2lkIn0gPSAi
MTAwIjsNCiskY29uZmlneyJncm91cGhvbWVzIn0gPSAibm8iOw0KKyRjb25m
aWd7ImxldHRlcmhvbWVzIn0gPSAibm8iOw0KKyRjb25maWd7InF1b3RhdXNl
ciJ9ID0gIiI7DQorJGNvbmZpZ3siZGlyX21vZGUifSA9ICIwNzU1IjsNCisk
Y29uZmlneyJzZXRnaWRfaG9tZSJ9ID0gIm5vIjsNCiAkY29uZmlneyJyZW1v
dmVfaG9tZSJ9ID0gMDsNCiAkY29uZmlneyJyZW1vdmVfYWxsX2ZpbGVzIn0g
PSAwOw0KICRjb25maWd7ImJhY2t1cCJ9ID0gMDsNCiskY29uZmlneyJub3Jt
YWxfYmFja2VuZCJ9ID0gImZpbGUiOw0KKyRjb25maWd7InN5c3RlbV9iYWNr
ZW5kIn0gPSAiZmlsZSI7DQorJGNvbmZpZ3sibGRhcF9zZXJ2ZXIifSA9ICIi
Ow0KKyRjb25maWd7ImxkYXBfcG9ydCJ9ID0gIiI7DQorJGNvbmZpZ3sibGRh
cF9iaW5kZG4ifSA9ICIiOw0KKyRjb25maWd7ImxkYXBfYmluZHB3In0gPSAi
IjsNCiskY29uZmlneyJsZGFwX2Jhc2VkbiJ9ID0gIiI7DQorJGNvbmZpZ3si
bGRhcF9yZG5fZ3JvdXBzIn0gPSAiIjsNCiskY29uZmlneyJsZGFwX3Jkbl91
c2VycyJ9ID0gIiI7DQorDQogDQogJGFjdGlvbiA9ICQwID1+IC9kZWxncm91
cCQvID8gImRlbGdyb3VwIiA6ICJkZWx1c2VyIjsNCiANCkBAIC0xMzUsNiAr
MTYzLDE4IEBADQogICAgICRjb25maWd7JF99ID0gJHBjb25maWd7JF99Ow0K
IH0NCiANCitpZiAoJGNvbmZpZ3sibm9ybWFsX2JhY2tlbmQifSBlcSAnbGRh
cCcpDQorew0KKwkkZnVuY3Rpb25fc3VmZml4ID0gImxkYXAiOw0KKwlyZXF1
aXJlIERlYmlhbjo6QWRkdXNlckxEQVA7DQorfSBlbHNlIHsNCisJJGZ1bmN0
aW9uX3N1ZmZpeCA9ICJmaWxlIjsNCit9DQorDQorIyBUaGlzIGlzbid0IGNv
bmRpdGlvbmFsZWQgYmVjYXVzZSBBZGR1c2VyTERBUCBtaWdodCBuZWVkIHRo
ZSBmaWxlIGZ1bmN0aW9ucw0KKyMgaWYgdGhlIGl0ZW0gdG8gcmVtb3ZlIGlz
IGluIHRoZSBmaWxlcyBpbnN0ZWFkIG9mIGluIExEQVANCit1c2UgRGViaWFu
OjpBZGR1c2VyRmlsZTsNCisNCiBpZiAoKCRjb25maWd7cmVtb3ZlX2hvbWV9
IHx8ICRjb25maWd7cmVtb3ZlX2FsbF9maWxlc30gfHwgJGNvbmZpZ3tiYWNr
dXB9KSAmJg0KIAlkZWZpbmVkKCROT19GSUxFX0ZJTkQpKSB7DQogICAgIGRp
ZSBfKCJJbiBvcmRlciB0byB1c2UgdGhlIC0tcmVtb3ZlLWhvbWUsIC0tcmVt
b3ZlLWFsbC1maWxlcywgYW5kIC0tYmFja3VwIGZlYXR1cmVzLFxueW91IG5l
ZWQgdG8gaW5zdGFsbCB0aGUgYHBlcmwtbW9kdWxlcycgcGFja2FnZS4gVG8g
YWNjb21wbGlzaCB0aGF0LCBydW5cbmFwdC1nZXQgaW5zdGFsbCBwZXJsLW1v
ZHVsZXNcbiIpOw0KQEAgLTI1Miw3ICsyOTIsMTAgQEANCiAgICAgfQ0KIA0K
ICAgICBzX3ByaW50ZihfKCJSZW1vdmluZyB1c2VyICVzLi4uXG4iKSwkdXNl
cik7DQotICAgIHN5c3RlbWNhbGwoIi91c3Ivc2Jpbi91c2VyZGVsIiwgJHVz
ZXIpOw0KKw0KKyAgICAkZnVuYyA9ICJkZWx1c2VyXyRmdW5jdGlvbl9zdWZm
aXgiOw0KKyAgICAmJGZ1bmMoJHVzZXIpOw0KKw0KICAgICAmaW52YWxpZGF0
ZV9uc2NkKCk7DQogDQogICAgIHN5c3RlbWNhbGwoJy91c3IvbG9jYWwvc2Jp
bi9kZWx1c2VyLmxvY2FsJywgJHVzZXIsICRwd191aWQsDQpAQCAtMjcwLDcg
KzMxMywxMCBAQA0KICAgICB9DQogDQogICAgIHNfcHJpbnRmKF8oIlJlbW92
aW5nIGdyb3VwICVzLi4uXG4iKSwkZ3JvdXApOw0KLSAgICBzeXN0ZW1jYWxs
KCIvdXNyL3NiaW4vZ3JvdXBkZWwiLCRncm91cCk7DQorICAgIA0KKyAgICAk
ZnVuYyA9ICJkZWxncm91cF8kZnVuY3Rpb25fc3VmZml4IjsNCisgICAgJiRm
dW5jKCRncm91cCk7DQorDQogICAgICZpbnZhbGlkYXRlX25zY2QoKTsNCiAg
ICAgc19wcmludChfKCJkb25lLlxuIikpOw0KIH0NCkBAIC0yODcsMjMgKzMz
MywxMSBAQA0KIAlkaWUgIiQwOiAiLF8oIllvdSBtYXkgbm90IHJlbW92ZSB0
aGUgdXNlciBmcm9tIGhpcy9oZXIgcHJpbWFyeSBncm91cC5cbiIpOw0KICAg
ICB9DQogDQotICAgIG15IEBtZW1iZXJzID0gZ2V0X2dyb3VwX21lbWJlcnMo
JGdyb3VwKTsNCi0gICAgbXkgJGlzbWVtYmVyID0gMDsNCi0NCi0gICAgZm9y
KCRpID0gMDsgJGkgPD0gJCNtZW1iZXJzOyAkaSsrKSB7DQotCWlmKCRtZW1i
ZXJzWyRpXSBlcSAkdXNlcikgew0KLQkgICAgJGlzbWVtYmVyID0gMTsNCi0J
ICAgIHNwbGljZShAbWVtYmVycywkaSwxKTsNCi0JfQ0KLSAgICB9DQotDQot
ICAgIHVubGVzcygkaXNtZW1iZXIpIHsNCi0JZGllZihfKCIlcyBpcyBub3Qg
YSBtZW1iZXIgb2YgZ3JvdXAgJXMuXG4iKSwkdXNlciwkZ3JvdXApOw0KLSAg
ICB9DQotDQogICAgIHNfcHJpbnRmKF8oIlJlbW92aW5nIHVzZXIgJXMgZnJv
bSBncm91cCAlcy4uLlxuIiksJHVzZXIsJGdyb3VwKTsNCi0gICAgI3N5c3Rl
bWNhbGwoInVzZXJtb2QiLCItRyIsIGpvaW4oIiwiLEBncm91cHMpLCAkdXNl
ciApOw0KLSAgICBzeXN0ZW1jYWxsKCcvdXNyL2Jpbi9ncGFzc3dkJywnLU0n
LCBqb2luKCcsJyxAbWVtYmVycyksICRncm91cCk7DQorICAgIA0KKyAgICAk
ZnVuYyA9ICJkZWx1c2VyZnJvbWdyb3VwXyRmdW5jdGlvbl9zdWZmaXgiOw0K
KyAgICAmJGZ1bmMoJHVzZXIsICRncm91cCk7DQorICAgIA0KICAgICAmaW52
YWxpZGF0ZV9uc2NkKCk7DQogICAgIHNfcHJpbnQoXygiZG9uZS5cbiIpKTsN
CiB9DQpkaWZmIC11ck4gYWRkdXNlci0zLjUwL2RlbHVzZXIuY29uZiBhZGR1
c2VyLTMuNTAubXBhbG1lci9kZWx1c2VyLmNvbmYNCi0tLSBhZGR1c2VyLTMu
NTAvZGVsdXNlci5jb25mCVdlZCBKdWwgMTEgMTc6NDU6MTUgMjAwMQ0KKysr
IGFkZHVzZXItMy41MC5tcGFsbWVyL2RlbHVzZXIuY29uZglUaHUgSmFuICAx
IDEwOjAwOjAwIDE5NzANCkBAIC0xLDExICswLDAgQEANCi0jIC9ldGMvZGVs
dXNlci5jb25mOiBgZGVsdXNlcicgY29uZmlndXJhdGlvbi4NCi0NCi0jIFJl
bW92ZSBob21lIGRpcmVjdG9yeSBhbmQgbWFpbCBzcG9vbCB3aGVuIHVzZXIg
aXMgcmVtb3ZlZA0KLVJFTU9WRV9IT01FID0gMA0KLQ0KLSMgUmVtb3ZlIGFs
bCBmaWxlcyBvbiB0aGUgc3lzdGVtIG93bmVkIGJ5IHRoZSB1c2VyIHRvIGJl
IHJlbW92ZWQNCi1SRU1PVkVfQUxMX0ZJTEVTID0gMA0KLQ0KLSMgQmFja3Vw
IGZpbGVzIGJlZm9yZSByZW1vdmluZyB0aGVtLiBUaGlzIG9wdGlvbnMgaGFz
IG9ubHkgYW4gZWZmZWN0IGlmDQotIyBSRU1PVkVfSE9NRSBvciBSRU1PVkVf
QUxMX0ZJTEVTIGlzIHNldC4NCi1CQUNLVVAgPSAwDQpkaWZmIC11ck4gYWRk
dXNlci0zLjUwL25vdGVzLkxEQVAgYWRkdXNlci0zLjUwLm1wYWxtZXIvbm90
ZXMuTERBUA0KLS0tIGFkZHVzZXItMy41MC9ub3Rlcy5MREFQCVRodSBKYW4g
IDEgMTA6MDA6MDAgMTk3MA0KKysrIGFkZHVzZXItMy41MC5tcGFsbWVyL25v
dGVzLkxEQVAJU2F0IE1heSAgMyAwOTo1NDo1NSAyMDAzDQpAQCAtMCwwICsx
LDQ0IEBADQorTWV0aG9kcyBvZiBjYWxsaW5nIGFkZHVzZXINCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorTm90ZSB0aGF0IGV2ZXJ5IG9u
ZSBvZiB0aGVzZSBhc3N1bWVzIHRoYXQgaXQgaXMgYmVpbmcgdG9sZCB0aGUg
cmlnaHQgdGhpbmcuIA0KK0l0IGlzIHRoZSBqb2Igb2YgdGhlIGNhbGxlciB0
byBlbnN1cmUgdGhhdCBuYW1lcywgVUlEcy9HSURzLCBhbmQgb3RoZXINCitp
bmZvcm1hdGlvbiBpcyBjb3JyZWN0LiAgVGhlc2UgZnVuY3Rpb25zIHNpbXBs
eSBkbyB0aGUgYmFzaWMgam9iIG9mIGdldHRpbmcNCit0aGUgaW5mbyBpbnRv
IHRoZSBzeXN0ZW0gZGF0YWJhc2VzLg0KKw0KK1RoZXJlIGFyZSBhIGNvdXBs
ZSBvZiBvdGhlciBtZWFucyBvZiBjYWxsaW5nIGFkZHVzZXIoOCkuICBUaGV5
IGFyZQ0KK2Z1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIHRoZSBtZXRob2Rz
IGRldGFpbGVkIGJlbG93LCBleGNlcHQgdGhhdCB0aGV5DQorbWFrZSBkaWZm
ZXJlbnQgZGVjaXNpb25zIGFib3V0IG5hbWVzLCBncm91cHMsIGFuZCBJRHMu
ICBUaGV5IHdpbGwgYWxsIGNhbGwNCit0aGUgc2FtZSBiYXNpYyBmdW5jdGlv
bnMuDQorDQorYWRkdXNlciAoJG5ld19uYW1lLCAkdWlkLCAkZ2lkLCAkaG9t
ZSwgJHNoZWxsLCAkZ2Vjb3MpDQorDQorJG5ld19uYW1lIGlzLCBvYnZpb3Vz
bHksIHRoZSB1c2VybmFtZSBvZiB0aGUgbmV3IHVzZXIsIHdoaWxlICR1aWQg
aXMgdGhlDQorbnVtZXJpYyBVSUQgdG8gZ2l2ZSB0aGVtLiAgJGdpZCBpcyBh
biBleGlzdGluZyBudW1lcmljIEdJRCAocG9zc2libHkNCityZWNlbnRseSBj
cmVhdGVkIGJ5IGFkZGdyb3VwKCkpIHdoaWNoIHdpbGwgYmUgdGhlIHVzZXIn
cyBwcmltYXJ5IGdyb3VwLg0KKyRob21lLCAkc2hlbGwgYW5kICRnZWNvcyBh
cmUgdGhlIHVzZXIncyBob21lIGRpcmVjdG9yeSwgZGVmYXVsdCBzaGVsbCwg
YW5kDQorR0VDT1MgaW5mb3JtYXRpb24sIHJlc3BlY3RpdmVseS4NCisNCith
ZGRncm91cCAoJG5ld19uYW1lLCAkbmV3X2dpZCkNCisNCiskbmV3X25hbWUg
aW4gdGhpcyBjYXNlIGlzIHRoZSBuYW1lIG9mIHRoZSBncm91cCB0byBjcmVh
dGUsIGFuZCAkbmV3X2dpZCBpcw0KK3RoZSBudW1lcmljIElEIG9mIHRoZSBj
cmVhdGVkIGdyb3VwLg0KKw0KK2FkZHVzZXJ0b2dyb3VwICgkdXNlcm5hbWUs
ICRncm91cG5hbWUpDQorDQorYWRkICR1c2VybmFtZSB0byAkZ3JvdXBuYW1l
LiAgRWFzeS4NCisNCitNZXRob2RzIG9mIGNhbGxpbmcgZGVsdXNlcg0KKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCitkZWx1c2VyICgkbmFt
ZSkNCisNCitSZW1vdmUgdGhlIHVzZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHVz
ZXJuYW1lIGZyb20gdGhlIHN5c3RlbS4gIE91Y2guDQorDQorZGVsZ3JvdXAg
KCRuYW1lKQ0KKw0KK1JlbW92ZSB0aGUgZ3JvdXAgd2l0aCB0aGUgc3BlY2lm
aWVkIGdyb3VwIG5hbWUgZnJvbSB0aGUgc3lzdGVtLg0KKw0KK2RlbHVzZXJm
cm9tZ3JvdXAgKCR1c2VyLCAkZ3JvdXApDQorDQorUmVtb3ZlIHRoZSB1c2Vy
IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIGZyb20gdGhlIHNwZWNpZmllZCBn
cm91cC4NCkJpbmFyeSBmaWxlcyBhZGR1c2VyLTMuNTAvcG8vY2EubW8gYW5k
IGFkZHVzZXItMy41MC5tcGFsbWVyL3BvL2NhLm1vIGRpZmZlcg0KQmluYXJ5
IGZpbGVzIGFkZHVzZXItMy41MC9wby9kYS5tbyBhbmQgYWRkdXNlci0zLjUw
Lm1wYWxtZXIvcG8vZGEubW8gZGlmZmVyDQpCaW5hcnkgZmlsZXMgYWRkdXNl
ci0zLjUwL3BvL2RlLm1vIGFuZCBhZGR1c2VyLTMuNTAubXBhbG1lci9wby9k
ZS5tbyBkaWZmZXINCkJpbmFyeSBmaWxlcyBhZGR1c2VyLTMuNTAvcG8vZXMu
bW8gYW5kIGFkZHVzZXItMy41MC5tcGFsbWVyL3BvL2VzLm1vIGRpZmZlcg0K
QmluYXJ5IGZpbGVzIGFkZHVzZXItMy41MC9wby9mci5tbyBhbmQgYWRkdXNl
ci0zLjUwLm1wYWxtZXIvcG8vZnIubW8gZGlmZmVyDQpCaW5hcnkgZmlsZXMg
YWRkdXNlci0zLjUwL3BvL2phLm1vIGFuZCBhZGR1c2VyLTMuNTAubXBhbG1l
ci9wby9qYS5tbyBkaWZmZXINCkJpbmFyeSBmaWxlcyBhZGR1c2VyLTMuNTAv
cG8va28ubW8gYW5kIGFkZHVzZXItMy41MC5tcGFsbWVyL3BvL2tvLm1vIGRp
ZmZlcg0KQmluYXJ5IGZpbGVzIGFkZHVzZXItMy41MC9wby9ubC5tbyBhbmQg
YWRkdXNlci0zLjUwLm1wYWxtZXIvcG8vbmwubW8gZGlmZmVyDQpCaW5hcnkg
ZmlsZXMgYWRkdXNlci0zLjUwL3BvL3BsLm1vIGFuZCBhZGR1c2VyLTMuNTAu
bXBhbG1lci9wby9wbC5tbyBkaWZmZXINCkJpbmFyeSBmaWxlcyBhZGR1c2Vy
LTMuNTAvcG8vcHRfQlIubW8gYW5kIGFkZHVzZXItMy41MC5tcGFsbWVyL3Bv
L3B0X0JSLm1vIGRpZmZlcg0KQmluYXJ5IGZpbGVzIGFkZHVzZXItMy41MC9w
by9ydS5tbyBhbmQgYWRkdXNlci0zLjUwLm1wYWxtZXIvcG8vcnUubW8gZGlm
ZmVyDQo=
---1463811244-22050210-1056255612=:4919--