RnJvbSBiN2M0N2UyN2RhYjhjMmUxODEyZjg0MzU5YzIwYzQyOWY5ZTU5ODlhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWMgV29sZmUgPG5pY0B3b2xmZWRlbi5jYT4KRGF0ZTogU2F0
LCAyNiBNYXIgMjAxNiAxNTo0Mzo1NCAtMDYwMApTdWJqZWN0OiBbUEFUQ0hdIGxhdmYvbWF0cm9z
a2FkZWM6IERlbXV4IHRoZSBQaXhlbENyb3AqIHZhbHVlcwoKVGhlIE1hdHJvc2thIHNwZWMgZGVm
aW5lcyBQaXhlbENyb3BUb3AsIFBpeGVsQ3JvcEJvdHRvbSwgUGl4ZWxDcm9wTGVmdCwKYW5kIFBp
eGVsQ3JvcFJpZ2h0IGVsZW1lbnRzOiBodHRwczovL3d3dy5tYXRyb3NrYS5vcmcvdGVjaG5pY2Fs
L3NwZWNzL2luZGV4Lmh0bWwKClRoaXMgY29tbWl0IGFkZHMgc3VwcG9ydCBmb3IgZGVtdXhpbmcg
dGhlc2UgdmFsdWVzIHNvIHRoYXQgYXBwbGljYXRpb25zIHVzaW5nIGxpYmF2KgphcmUgYWJsZSB0
byB1c2UgdGhlbSB3aGVuIHBsYXlpbmcgdGhlIHN0cmVhbS4gSWYgYW55IG9mIHRoZSBmb3VyIHZh
bHVlcyBpcyBub24temVybwp0aGVuIGFuIEFWX1BLVF9EQVRBX1BJWEVMX0NST1AgZW50cnkgd2ls
bCBiZSBhZGRlZCB0byB0aGUgQVZTdHJlYW0ncyBzaWRlIGRhdGEuCi0tLQogbGliYXZjb2RlYy9h
dmNvZGVjLmggICAgICB8ICAgMTUgKysrKysrKysrKysrKystCiBsaWJhdmZvcm1hdC9tYXRyb3Nr
YWRlYy5jIHwgICAzMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDIgZmlsZXMg
Y2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9s
aWJhdmNvZGVjL2F2Y29kZWMuaCBiL2xpYmF2Y29kZWMvYXZjb2RlYy5oCmluZGV4IGIzNjU1YzUu
LjI3ZGFlYjUgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvYXZjb2RlYy5oCisrKyBiL2xpYmF2Y29k
ZWMvYXZjb2RlYy5oCkBAIC0xNDE5LDcgKzE0MTksMjAgQEAgZW51bSBBVlBhY2tldFNpZGVEYXRh
VHlwZSB7CiAgICAgICogc2hvdWxkIGJlIGFzc29jaWF0ZWQgd2l0aCBhIHZpZGVvIHN0cmVhbSBh
bmQgY29udGFpbnRzIGRhdGEgaW4gdGhlIGZvcm0KICAgICAgKiBvZiB0aGUgQVZNYXN0ZXJpbmdE
aXNwbGF5TWV0YWRhdGEgc3RydWN0LgogICAgICAqLwotICAgIEFWX1BLVF9EQVRBX01BU1RFUklO
R19ESVNQTEFZX01FVEFEQVRBCisgICAgQVZfUEtUX0RBVEFfTUFTVEVSSU5HX0RJU1BMQVlfTUVU
QURBVEEsCisKKyAgICAvKioKKyAgICAgKiBGb3VyIHBpeGVsIGNyb3AgdmFsdWVzLCBlYWNoIHJl
cHJlc2VudGluZyB0aGUgbnVtYmVyIG9mIHBpeGVscyBzaG91bGQgYmUgY3JvcHBlZAorICAgICAq
IGZyb20gdGhlIHJlc3BlY3RpdmUgZWRnZS4gUGl4ZWwgY3JvcHBpbmcgaXMgYXBwbGllZCBiZWZv
cmUgdGhlIGRpc3BsYXkgc2l6ZSBhbmQKKyAgICAgKiBhc3BlY3QgcmF0aW8uCisgICAgICogQGNv
ZGUKKyAgICAgKiB1MTYgbnVtYmVyIG9mIHBpeGVscyB0byBjcm9wIGZyb20gdGhlIHRvcCBvZiB0
aGUgZnJhbWUKKyAgICAgKiB1MTYgbnVtYmVyIG9mIHBpeGVscyB0byBjcm9wIGZyb20gdGhlIGJv
dHRvbSBvZiB0aGUgZnJhbWUKKyAgICAgKiB1MTYgbnVtYmVyIG9mIHBpeGVscyB0byBjcm9wIGZy
b20gdGhlIGxlZnQgc2lkZSBvZiB0aGUgZnJhbWUKKyAgICAgKiB1MTYgbnVtYmVyIG9mIHBpeGVs
cyB0byBjcm9wIGZyb20gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGZyYW1lCisgICAgICogQGVuZGNv
ZGUKKyAgICAgKi8KKyAgICBBVl9QS1RfREFUQV9QSVhFTF9DUk9QLAogfTsKIAogI2RlZmluZSBB
Vl9QS1RfREFUQV9RVUFMSVRZX0ZBQ1RPUiBBVl9QS1RfREFUQV9RVUFMSVRZX1NUQVRTIC8vREVQ
UkVDQVRFRApkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbWF0cm9za2FkZWMuYyBiL2xpYmF2Zm9y
bWF0L21hdHJvc2thZGVjLmMKaW5kZXggMjhiYjc3Yi4uMTAyZGFjZSAxMDA2NDQKLS0tIGEvbGli
YXZmb3JtYXQvbWF0cm9za2FkZWMuYworKysgYi9saWJhdmZvcm1hdC9tYXRyb3NrYWRlYy5jCkBA
IC0xNzEsNiArMTcxLDEwIEBAIHR5cGVkZWYgc3RydWN0IE1hdHJvc2thVHJhY2tWaWRlbyB7CiAg
ICAgdWludDY0X3Qgc3RlcmVvX21vZGU7CiAgICAgdWludDY0X3QgYWxwaGFfbW9kZTsKICAgICBN
YXRyb3NrYVRyYWNrVmlkZW9Db2xvciBjb2xvcjsKKyAgICB1aW50NjRfdCBjcm9wX2JvdHRvbTsK
KyAgICB1aW50NjRfdCBjcm9wX3RvcDsKKyAgICB1aW50NjRfdCBjcm9wX2xlZnQ7CisgICAgdWlu
dDY0X3QgY3JvcF9yaWdodDsKIH0gTWF0cm9za2FUcmFja1ZpZGVvOwogCiB0eXBlZGVmIHN0cnVj
dCBNYXRyb3NrYVRyYWNrQXVkaW8gewpAQCAtNDI5LDEwICs0MzMsMTAgQEAgc3RhdGljIGNvbnN0
IEVibWxTeW50YXggbWF0cm9za2FfdHJhY2tfdmlkZW9bXSA9IHsKICAgICB7IE1BVFJPU0tBX0lE
X1ZJREVPQ09MT1JTUEFDRSwgICAgIEVCTUxfQklOLCAgIDAsIG9mZnNldG9mKE1hdHJvc2thVHJh
Y2tWaWRlbywgY29sb3Jfc3BhY2UpIH0sCiAgICAgeyBNQVRST1NLQV9JRF9WSURFT0FMUEhBTU9E
RSwgICAgICBFQk1MX1VJTlQsICAwLCBvZmZzZXRvZihNYXRyb3NrYVRyYWNrVmlkZW8sIGFscGhh
X21vZGUpIH0sCiAgICAgeyBNQVRST1NLQV9JRF9WSURFT0NPTE9SLCAgICAgICAgICBFQk1MX05F
U1QsICAwLCBvZmZzZXRvZihNYXRyb3NrYVRyYWNrVmlkZW8sIGNvbG9yKSwgeyAubiA9IG1hdHJv
c2thX3RyYWNrX3ZpZGVvX2NvbG9yIH0gfSwKLSAgICB7IE1BVFJPU0tBX0lEX1ZJREVPUElYRUxD
Uk9QQiwgICAgIEVCTUxfTk9ORSB9LAotICAgIHsgTUFUUk9TS0FfSURfVklERU9QSVhFTENST1BU
LCAgICAgRUJNTF9OT05FIH0sCi0gICAgeyBNQVRST1NLQV9JRF9WSURFT1BJWEVMQ1JPUEwsICAg
ICBFQk1MX05PTkUgfSwKLSAgICB7IE1BVFJPU0tBX0lEX1ZJREVPUElYRUxDUk9QUiwgICAgIEVC
TUxfTk9ORSB9LAorICAgIHsgTUFUUk9TS0FfSURfVklERU9QSVhFTENST1BCLCAgICAgRUJNTF9V
SU5ULCAgMCwgb2Zmc2V0b2YoTWF0cm9za2FUcmFja1ZpZGVvLCBjcm9wX2JvdHRvbSkgfSwKKyAg
ICB7IE1BVFJPU0tBX0lEX1ZJREVPUElYRUxDUk9QVCwgICAgIEVCTUxfVUlOVCwgIDAsIG9mZnNl
dG9mKE1hdHJvc2thVHJhY2tWaWRlbywgY3JvcF90b3ApIH0sCisgICAgeyBNQVRST1NLQV9JRF9W
SURFT1BJWEVMQ1JPUEwsICAgICBFQk1MX1VJTlQsICAwLCBvZmZzZXRvZihNYXRyb3NrYVRyYWNr
VmlkZW8sIGNyb3BfbGVmdCkgfSwKKyAgICB7IE1BVFJPU0tBX0lEX1ZJREVPUElYRUxDUk9QUiwg
ICAgIEVCTUxfVUlOVCwgIDAsIG9mZnNldG9mKE1hdHJvc2thVHJhY2tWaWRlbywgY3JvcF9yaWdo
dCkgfSwKICAgICB7IE1BVFJPU0tBX0lEX1ZJREVPRElTUExBWVVOSVQsICAgIEVCTUxfTk9ORSB9
LAogICAgIHsgTUFUUk9TS0FfSURfVklERU9GTEFHSU5URVJMQUNFRCwgRUJNTF9OT05FIH0sCiAg
ICAgeyBNQVRST1NLQV9JRF9WSURFT1NURVJFT01PREUsICAgICBFQk1MX1VJTlQsICAwLCBvZmZz
ZXRvZihNYXRyb3NrYVRyYWNrVmlkZW8sIHN0ZXJlb19tb2RlKSwgeyAudSA9IE1BVFJPU0tBX1ZJ
REVPX1NURVJFT01PREVfVFlQRV9OQiB9IH0sCkBAIC0yMjgwLDYgKzIyODQsMjcgQEAgc3RhdGlj
IGludCBtYXRyb3NrYV9wYXJzZV90cmFja3MoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICAg
ICAgaWYgKHRyYWNrLT52aWRlby5zdGVyZW9fbW9kZSAmJiB0cmFjay0+dmlkZW8uc3RlcmVvX21v
ZGUgPCBNQVRST1NLQV9WSURFT19TVEVSRU9NT0RFX1RZUEVfTkIpCiAgICAgICAgICAgICAgICAg
YXZfZGljdF9zZXQoJnN0LT5tZXRhZGF0YSwgInN0ZXJlb19tb2RlIiwgZmZfbWF0cm9za2Ffdmlk
ZW9fc3RlcmVvX21vZGVbdHJhY2stPnZpZGVvLnN0ZXJlb19tb2RlXSwgMCk7CiAKKyAgICAgICAg
ICAgIC8qIGlmIGFueSBjcm9wIHZhbHVlcyBhcmUgc2V0IHRoZW4gYWRkIHRoZSBwaXhlbCBjcm9w
IHNpZGUgZGF0YSAqLworICAgICAgICAgICAgaWYgKHRyYWNrLT52aWRlby5jcm9wX2JvdHRvbSB8
fCB0cmFjay0+dmlkZW8uY3JvcF90b3AgfHwgdHJhY2stPnZpZGVvLmNyb3BfbGVmdCB8fCB0cmFj
ay0+dmlkZW8uY3JvcF9yaWdodCkgeworICAgICAgICAgICAgICAgIEFWUGFja2V0U2lkZURhdGEg
KnRtcCwgKnNkOworICAgICAgICAgICAgICAgIHRtcCA9IGF2X3JlYWxsb2NfYXJyYXkoc3QtPnNp
ZGVfZGF0YSwgc3QtPm5iX3NpZGVfZGF0YSArIDEsIHNpemVvZigqdG1wKSk7CisgICAgICAgICAg
ICAgICAgaWYgKCF0bXApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5P
TUVNKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3QtPnNpZGVfZGF0YSA9
IHRtcDsKKyAgICAgICAgICAgICAgICBzdC0+bmJfc2lkZV9kYXRhKys7CisKKyAgICAgICAgICAg
ICAgICBzZCA9ICZzdC0+c2lkZV9kYXRhW3N0LT5uYl9zaWRlX2RhdGEgLSAxXTsKKyAgICAgICAg
ICAgICAgICBzZC0+dHlwZSA9IEFWX1BLVF9EQVRBX1BJWEVMX0NST1A7CisgICAgICAgICAgICAg
ICAgc2QtPmRhdGEgPSAodWludDhfdCAqKWF2X21hbGxvY19hcnJheSg0LCBzaXplb2YodWludDE2
X3QpKTsKKyAgICAgICAgICAgICAgICBzZC0+c2l6ZSA9IDQgKiBzaXplb2YodWludDE2X3QpOwor
CisgICAgICAgICAgICAgICAgQVZfV0wxNihzZC0+ZGF0YSwgICAgIHRyYWNrLT52aWRlby5jcm9w
X3RvcCk7CisgICAgICAgICAgICAgICAgQVZfV0wxNihzZC0+ZGF0YSArIDIsIHRyYWNrLT52aWRl
by5jcm9wX2JvdHRvbSk7CisgICAgICAgICAgICAgICAgQVZfV0wxNihzZC0+ZGF0YSArIDQsIHRy
YWNrLT52aWRlby5jcm9wX2xlZnQpOworICAgICAgICAgICAgICAgIEFWX1dMMTYoc2QtPmRhdGEg
KyA2LCB0cmFjay0+dmlkZW8uY3JvcF9yaWdodCk7CisgICAgICAgICAgICB9CisKICAgICAgICAg
ICAgIC8qIGV4cG9ydCBhbHBoYSBtb2RlIGZsYWcgYXMgbWV0YWRhdGEgdGFnICAqLwogICAgICAg
ICAgICAgaWYgKHRyYWNrLT52aWRlby5hbHBoYV9tb2RlKQogICAgICAgICAgICAgICAgIGF2X2Rp
Y3Rfc2V0KCZzdC0+bWV0YWRhdGEsICJhbHBoYV9tb2RlIiwgIjEiLCAwKTsKLS0gCjEuNy4xCgo=
