Re: QNX version pre6-1 doesn't patch

Adam McKee (amckee@poboxes.com)
Sat, 23 Aug 1997 15:58:54 -0600 (CST)


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.

--12583424-46732160-872373534=:1079
Content-Type: TEXT/PLAIN; charset=US-ASCII

v1.07 patches cleanly against pre7.

It's attached.

-- Adam

On Sat, 23 Aug 1997, Ron Smits wrote:

> Adam and others
>
> I am trying to patch the QNX scheduler into a 2.0.31pre7 tree, but it
> fails completly. And when I say completlly I mean completly not one hunk
> succeedsd :(
>
> The pre7 kernel itself compiles without problems. So please tell me what
> do I have to do to make it work
>
> Ron Smits
> Estic Automatisering
> mailto:rons@estic.com
>
>

--12583424-46732160-872373534=:1079
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="QNX-scheduler-2.0.31-pre6-1.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.970823155854.1079B@titan.acua.org>
Content-Description:

LS0tIGxpbnV4L2ZzL3Byb2MvYXJyYXkuYy5vcmlnCVNhdCBBdWcgMTYgMTI6
MjY6NDggMTk5Nw0KKysrIGxpbnV4L2ZzL3Byb2MvYXJyYXkuYwlTYXQgQXVn
IDE2IDEyOjI2OjU4IDE5OTcNCkBAIC02ODIsMTIgKzY4MiwzNCBAQA0KIAll
bHNlDQogCQl0dHlfcGdycCA9IC0xOw0KIA0KLQkvKiBzY2FsZSBwcmlvcml0
eSBhbmQgbmljZSB2YWx1ZXMgZnJvbSB0aW1lc2xpY2VzIHRvIC0yMC4uMjAg
Ki8NCisJLyogc2NhbGUgcHJpb3JpdHkgYW5kIG5pY2UgdmFsdWVzIGZyb20g
cnVuLXF1ZXVlICMgdG8gLTIwLi4yMCAqLw0KIAkvKiB0byBtYWtlIGl0IGxv
b2sgbGlrZSBhICJub3JtYWwiIHVuaXggcHJpb3JpdHkvbmljZSB2YWx1ZSAg
Ki8NCi0JcHJpb3JpdHkgPSB0c2stPmNvdW50ZXI7DQotCXByaW9yaXR5ID0g
MjAgLSAocHJpb3JpdHkgKiAxMCArIERFRl9QUklPUklUWSAvIDIpIC8gREVG
X1BSSU9SSVRZOw0KLQluaWNlID0gdHNrLT5wcmlvcml0eTsNCi0JbmljZSA9
IDIwIC0gKG5pY2UgKiAyMCArIERFRl9QUklPUklUWSAvIDIpIC8gREVGX1BS
SU9SSVRZOw0KKwlwcmlvcml0eSA9IHRzay0+cnVuX3E7DQorCWlmIChwcmlv
cml0eSA8IERFRl9SVU5fUVVFVUUpIHsNCisJICAgICAgICBwcmlvcml0eSAq
PSAxOTsNCisJCXByaW9yaXR5IC89IChERUZfUlVOX1FVRVVFIC0gMSk7DQor
CQlwcmlvcml0eSA9IC0yMCArIHByaW9yaXR5Ow0KKwl9IGVsc2UgaWYgKHBy
aW9yaXR5ID09IERFRl9SVU5fUVVFVUUpIHsNCisJICAgICAgICBwcmlvcml0
eSA9IDA7DQorCX0gZWxzZSB7DQorCSAgICAgICAgcHJpb3JpdHkgLT0gKERF
Rl9SVU5fUVVFVUUgKyAxKTsNCisJCXByaW9yaXR5ICo9IDE5Ow0KKwkJcHJp
b3JpdHkgLz0gKE5SX1JVTl9RVUVVRVMgLSBERUZfUlVOX1FVRVVFIC0gMik7
DQorCQlwcmlvcml0eSArPSAxOw0KKwl9DQorCW5pY2UgPSB0c2stPnJ1bl9x
X21pbjsNCisJaWYgKG5pY2UgPCBERUZfUlVOX1FVRVVFKSB7DQorCSAgICAg
ICAgbmljZSAqPSAxOTsNCisJCW5pY2UgLz0gKERFRl9SVU5fUVVFVUUgLSAx
KTsNCisJCW5pY2UgPSAtMjAgKyBuaWNlOw0KKwl9IGVsc2UgaWYgKG5pY2Ug
PT0gREVGX1JVTl9RVUVVRSkgew0KKwkgICAgICAgIG5pY2UgPSAwOw0KKwl9
IGVsc2Ugew0KKwkgICAgICAgIG5pY2UgLT0gKERFRl9SVU5fUVVFVUUgKyAx
KTsNCisJCW5pY2UgKj0gMTk7DQorCQluaWNlIC89IChOUl9SVU5fUVVFVUVT
IC0gREVGX1JVTl9RVUVVRSAtIDIpOw0KKwkJbmljZSArPSAxOw0KKwl9DQog
DQogCXJldHVybiBzcHJpbnRmKGJ1ZmZlciwiJWQgKCVzKSAlYyAlZCAlZCAl
ZCAlZCAlZCAlbHUgJWx1IFwNCiAlbHUgJWx1ICVsdSAlbHUgJWx1ICVsZCAl
bGQgJWxkICVsZCAlbGQgJWxkICVsdSAlbHUgJWxkICVsdSAlbHUgJWx1ICVs
dSAlbHUgXA0KLS0tIGxpbnV4L2tlcm5lbC9zeXMuYy5vcmlnCVNhdCBBdWcg
MTYgMTI6MjY6NDkgMTk5Nw0KKysrIGxpbnV4L2tlcm5lbC9zeXMuYwlTYXQg
QXVnIDE2IDEyOjI2OjU4IDE5OTcNCkBAIC02NywyMyArNjcsMjUgQEANCiB7
DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsNCiAJaW50IGVycm9yID0gRVNS
Q0g7DQotCXVuc2lnbmVkIGludCBwcmlvcml0eTsNCisJdW5zaWduZWQgaW50
IHJ1bl9xOw0KIA0KIAlpZiAod2hpY2ggPiAyIHx8IHdoaWNoIDwgMCkNCiAJ
CXJldHVybiAtRUlOVkFMOw0KIA0KLQkvKiBub3JtYWxpemU6IGF2b2lkIHNp
Z25lZCBkaXZpc2lvbiAocm91bmRpbmcgcHJvYmxlbXMpICovDQotCXByaW9y
aXR5ID0gbmljZXZhbDsNCi0JaWYgKG5pY2V2YWwgPCAwKQ0KLQkJcHJpb3Jp
dHkgPSAtbmljZXZhbDsNCi0JaWYgKHByaW9yaXR5ID4gMjApDQotCQlwcmlv
cml0eSA9IDIwOw0KLQlwcmlvcml0eSA9IChwcmlvcml0eSAqIERFRl9QUklP
UklUWSArIDEwKSAvIDIwICsgREVGX1BSSU9SSVRZOw0KLQ0KLQlpZiAobmlj
ZXZhbCA+PSAwKSB7DQotCQlwcmlvcml0eSA9IDIqREVGX1BSSU9SSVRZIC0g
cHJpb3JpdHk7DQotCQlpZiAoIXByaW9yaXR5KQ0KLQkJCXByaW9yaXR5ID0g
MTsNCisJaWYgKG5pY2V2YWwgPCAtMjApIG5pY2V2YWwgPSAtMjA7DQorCWVs
c2UgaWYgKG5pY2V2YWwgPiAyMCkgbmljZXZhbCA9IDIwOw0KKwlpZiAobmlj
ZXZhbCA8IDApIHsNCisJICBydW5fcSA9IC1uaWNldmFsIC0gMTsNCisJICBy
dW5fcSAqPSAoREVGX1JVTl9RVUVVRSAtIDEpOw0KKwkgIHJ1bl9xIC89IDE5
OyANCisJICBydW5fcSA9IERFRl9SVU5fUVVFVUUgLSAxIC0gcnVuX3E7DQor
CX0gZWxzZSBpZiAoIW5pY2V2YWwpIHsNCisJICBydW5fcSA9IERFRl9SVU5f
UVVFVUU7DQorCX0gZWxzZSB7DQorCSAgcnVuX3EgPSBuaWNldmFsIC0gMTsN
CisJICBydW5fcSAqPSAoTlJfUlVOX1FVRVVFUyAtIERFRl9SVU5fUVVFVUUg
LSAyKTsNCisJICBydW5fcSAvPSAxOTsNCisJICBydW5fcSA9IERFRl9SVU5f
UVVFVUUgKyAxICsgcnVuX3E7DQogCX0NCiANCiAJZm9yX2VhY2hfdGFzayhw
KSB7DQpAQCAtOTYsMTAgKzk4LDEwIEBADQogCQl9DQogCQlpZiAoZXJyb3Ig
PT0gRVNSQ0gpDQogCQkJZXJyb3IgPSAwOw0KLQkJaWYgKHByaW9yaXR5ID4g
cC0+cHJpb3JpdHkgJiYgIXN1c2VyKCkpDQotCQkJZXJyb3IgPSBFQUNDRVM7
DQorCQlpZiAocnVuX3EgPCBwLT5ydW5fcV9taW4gJiYgIXN1c2VyKCkpDQor
CQkgICAgICAgIGVycm9yID0gRUFDQ0VTOw0KIAkJZWxzZQ0KLQkJCXAtPnBy
aW9yaXR5ID0gcHJpb3JpdHk7DQorCQkgICAgICAgIHAtPnJ1bl9xX3N3ID0g
cnVuX3E7DQogCX0NCiAJcmV0dXJuIC1lcnJvcjsNCiB9DQpAQCAtMTEyLDcg
KzExNCw3IEBADQogYXNtbGlua2FnZSBpbnQgc3lzX2dldHByaW9yaXR5KGlu
dCB3aGljaCwgaW50IHdobykNCiB7DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAq
cDsNCi0JbG9uZyBtYXhfcHJpbyA9IC1FU1JDSDsNCisJdW5zaWduZWQgaW50
IHJ1bl9xX21pbiA9IE5SX1JVTl9RVUVVRVM7DQogDQogCWlmICh3aGljaCA+
IDIgfHwgd2hpY2ggPCAwKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQpAQCAtMTIw
LDE0ICsxMjIsMjcgQEANCiAJZm9yX2VhY2hfdGFzayAocCkgew0KIAkJaWYg
KCFwcm9jX3NlbChwLCB3aGljaCwgd2hvKSkNCiAJCQljb250aW51ZTsNCi0J
CWlmIChwLT5wcmlvcml0eSA+IG1heF9wcmlvKQ0KLQkJCW1heF9wcmlvID0g
cC0+cHJpb3JpdHk7DQorCQlpZiAocC0+cnVuX3FfbWluIDwgcnVuX3FfbWlu
KQ0KKwkJCXJ1bl9xX21pbiA9IHAtPnJ1bl9xX21pbjsNCiAJfQ0KIA0KLQkv
KiBzY2FsZSB0aGUgcHJpb3JpdHkgZnJvbSB0aW1lc2xpY2UgdG8gMC4uNDAg
Ki8NCi0JaWYgKG1heF9wcmlvID4gMCkNCi0JCW1heF9wcmlvID0gKG1heF9w
cmlvICogMjAgKyBERUZfUFJJT1JJVFkvMikgLyBERUZfUFJJT1JJVFk7DQot
CXJldHVybiBtYXhfcHJpbzsNCisgICAgICAgIGlmIChydW5fcV9taW4gPT0g
TlJfUlVOX1FVRVVFUykNCisgICAgICAgICAgICAgICAgcmV0dXJuIC1FU1JD
SDsNCisNCisJLyogc2NhbGUgdGhlIHJ1bl9xIHRvIDAuLjQwICovDQorCWlm
IChydW5fcV9taW4gPCBERUZfUlVOX1FVRVVFKSB7DQorCSAgICAgICAgcnVu
X3FfbWluICo9IDE5Ow0KKwkJcnVuX3FfbWluIC89IChERUZfUlVOX1FVRVVF
IC0gMSk7DQorCX0gZWxzZSBpZiAocnVuX3FfbWluID09IERFRl9SVU5fUVVF
VUUpIHsNCisJICAgICAgICBydW5fcV9taW4gPSAyMDsNCisJfSBlbHNlIHsN
CisJICAgICAgICBydW5fcV9taW4gLT0gKERFRl9SVU5fUVVFVUUgKyAxKTsN
CisJCXJ1bl9xX21pbiAqPSAxOTsNCisJCXJ1bl9xX21pbiAvPSAoTlJfUlVO
X1FVRVVFUyAtIERFRl9SVU5fUVVFVUUgLSAyKTsNCisJCXJ1bl9xX21pbiAr
PSAyMTsNCisJfQ0KKyAgICAgICAgcnVuX3FfbWluID0gNDAgLSBydW5fcV9t
aW47DQorCXJldHVybiBydW5fcV9taW47DQogfQ0KIA0KICNpZm5kZWYgX19h
bHBoYV9fDQotLS0gbGludXgva2VybmVsL3NjaGVkLmMub3JpZwlTYXQgQXVn
IDE2IDEyOjI2OjQ5IDE5OTcNCisrKyBsaW51eC9rZXJuZWwvc2NoZWQuYwlT
YXQgQXVnIDE2IDEyOjI2OjU4IDE5OTcNCkBAIC03LDYgKzcsNyBAQA0KICAq
ICAxOTk2LTEyLTIzICBNb2RpZmllZCBieSBEYXZlIEdyb3RoZSB0byBmaXgg
YnVncyBpbiBzZW1hcGhvcmVzIGFuZA0KICAqICAgICAgICAgICAgICBtYWtl
IHNlbWFwaG9yZXMgU01QIHNhZmUNCiAgKiAgMTk5Ny0wMS0yOCAgTW9kaWZp
ZWQgYnkgRmlubiBBcm5lIEdhbmdzdGFkIHRvIG1ha2UgdGltZXJzIHNjYWxl
IGJldHRlci4NCisgKiAgMTk5Ny0wOC0wMSAgTW9kaWZpZWQgYnkgQWRhbSBN
Y0tlZSB0byB1c2UgbXVsdGktbGV2ZWwgZmVlZGJhY2sgc2NoZWR1bGluZy4N
CiAgKi8NCiANCiAvKg0KQEAgLTkyLDYgKzkzLDcgQEANCiBzdGF0aWMgc3Ry
dWN0IGZzX3N0cnVjdCBpbml0X2ZzID0gSU5JVF9GUzsNCiBzdGF0aWMgc3Ry
dWN0IGZpbGVzX3N0cnVjdCBpbml0X2ZpbGVzID0gSU5JVF9GSUxFUzsNCiBz
dGF0aWMgc3RydWN0IHNpZ25hbF9zdHJ1Y3QgaW5pdF9zaWduYWxzID0gSU5J
VF9TSUdOQUxTOw0KK3N0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3QgKiBydW5f
cVtOUl9SVU5fUVVFVUVTXTsNCiANCiBzdHJ1Y3QgbW1fc3RydWN0IGluaXRf
bW0gPSBJTklUX01NOw0KIHN0cnVjdCB0YXNrX3N0cnVjdCBpbml0X3Rhc2sg
PSBJTklUX1RBU0s7DQpAQCAtMTA3LDIxICsxMDksNDcgQEANCiANCiBzdGF0
aWMgaW5saW5lIHZvaWQgYWRkX3RvX3J1bnF1ZXVlKHN0cnVjdCB0YXNrX3N0
cnVjdCAqIHApDQogew0KKyAgICAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpx
X2hlYWQ7DQorCXVuc2lnbmVkIGxvbmcgdDsNCiAjaWZkZWYgX19TTVBfXw0K
IAlpbnQgY3B1PXNtcF9wcm9jZXNzb3JfaWQoKTsNCi0jZW5kaWYJDQorI2Vu
ZGlmDQorDQogI2lmIDEJLyogc2FuaXR5IHRlc3RzICovDQogCWlmIChwLT5u
ZXh0X3J1biB8fCBwLT5wcmV2X3J1bikgew0KIAkJcHJpbnRrKCJ0YXNrIGFs
cmVhZHkgb24gcnVuLXF1ZXVlXG4iKTsNCiAJCXJldHVybjsNCiAJfQ0KICNl
bmRpZg0KLQlpZiAocC0+Y291bnRlciA+IGN1cnJlbnQtPmNvdW50ZXIgKyAz
KQ0KKwkvKiBiYXNlZCBvbiBob3cgbG9uZyBwIHNsZXB0LCByZXNldCBwLT5y
dW5fcSAqLw0KKwlpZiAocC0+cnVuX3EgPiBwLT5ydW5fcV9taW4pIHsNCisJ
ICAgICAgICB0ID0gamlmZmllcyAtIHAtPmxhc3RfcnVuOw0KKwkJdCAvPSAo
MTAwKkhaLzEwMDApOw0KKwkJaWYgKHQgPD0gcC0+cnVuX3EgLSBwLT5ydW5f
cV9taW4pDQorCQkgICAgICAgIHAtPnJ1bl9xIC09IHQ7DQorCQllbHNlDQor
CQkgICAgICAgIHAtPnJ1bl9xID0gcC0+cnVuX3FfbWluOw0KKwl9DQorDQor
CXFfaGVhZCA9IHJ1bl9xW3AtPnJ1bl9xXTsNCisJaWYgKChwLT5ydW5fcSA8
IGN1cnJlbnQtPnJ1bl9xKSB8fA0KKwkgICAgKChwLT5ydW5fcSA9PSBjdXJy
ZW50LT5ydW5fcSkgJiYNCisJICAgICAocC0+Y291bnRlciA+IGN1cnJlbnQt
PmNvdW50ZXIgKyAzKSkpDQogCQluZWVkX3Jlc2NoZWQgPSAxOw0KIAlucl9y
dW5uaW5nKys7DQotCShwLT5wcmV2X3J1biA9IGluaXRfdGFzay5wcmV2X3J1
biktPm5leHRfcnVuID0gcDsNCi0JcC0+bmV4dF9ydW4gPSAmaW5pdF90YXNr
Ow0KLQlpbml0X3Rhc2sucHJldl9ydW4gPSBwOw0KKw0KKwlpZiAocV9oZWFk
ID09IE5VTEwpIHsNCisJICBydW5fcVtwLT5ydW5fcV0gPSBwOw0KKwkgIHAt
PnByZXZfcnVuID0gcDsNCisJICBwLT5uZXh0X3J1biA9IHA7DQorCX0gZWxz
ZSB7DQorCSAgcC0+cHJldl9ydW4gPSBxX2hlYWQtPnByZXZfcnVuOw0KKwkg
IHAtPm5leHRfcnVuID0gcV9oZWFkOw0KKwkgIHFfaGVhZC0+cHJldl9ydW4t
Pm5leHRfcnVuID0gcDsNCisJICBxX2hlYWQtPnByZXZfcnVuID0gcDsNCisJ
fQ0KKwlwLT5sYXN0X3J1biA9IGppZmZpZXM7DQorDQogI2lmZGVmIF9fU01Q
X18NCiAJLyogdGhpcyBpcyBzYWZlIG9ubHkgaWYgY2FsbGVkIHdpdGggY2xp
KCkqLw0KIAl3aGlsZShzZXRfYml0KDMxLCZzbXBfcHJvY2Vzc19hdmFpbGFi
bGUpKQ0KQEAgLTE1NCw4ICsxODIsOSBAQA0KIA0KIHN0YXRpYyBpbmxpbmUg
dm9pZCBkZWxfZnJvbV9ydW5xdWV1ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiBw
KQ0KIHsNCi0Jc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0ID0gcC0+bmV4dF9y
dW47DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldiA9IHAtPnByZXZfcnVu
Ow0KKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQgPSBwLT5uZXh0X3J1bjsN
CisJc3RydWN0IHRhc2tfc3RydWN0ICpxX2hlYWQgPSBydW5fcVtwLT5ydW5f
cV07DQogDQogI2lmIDEJLyogc2FuaXR5IHRlc3RzICovDQogCWlmICghbmV4
dCB8fCAhcHJldikgew0KQEAgLTE3MiwyNiArMjAxLDU0IEBADQogCQlyZXR1
cm47DQogCX0NCiAJbnJfcnVubmluZy0tOw0KLQluZXh0LT5wcmV2X3J1biA9
IHByZXY7DQorDQorCS8qIHJlbW92ZSBsaW5rcyB0byBwICovDQogCXByZXYt
Pm5leHRfcnVuID0gbmV4dDsNCi0JcC0+bmV4dF9ydW4gPSBOVUxMOw0KKwlu
ZXh0LT5wcmV2X3J1biA9IHByZXY7DQorCS8qIHNldCBwJ3MgbGlua3MgKi8N
CiAJcC0+cHJldl9ydW4gPSBOVUxMOw0KKwlwLT5uZXh0X3J1biA9IE5VTEw7
DQorICAgICAgIAkvKiBpZiBwIHdhcyB0aGUgcV9oZWFkLCByZXNldCBxX2hl
YWQgKi8NCisJaWYgKHAgPT0gcV9oZWFkKSB7DQorCSAgICAgICAgaWYgKG5l
eHQgPT0gcCkNCisJICAgICAgICAgICAgICAgIHJ1bl9xW3AtPnJ1bl9xXSA9
IE5VTEw7DQorCQllbHNlDQorCQkgICAgICAgIHJ1bl9xW3AtPnJ1bl9xXSA9
IG5leHQ7DQorCX0NCisNCiB9DQogDQotc3RhdGljIGlubGluZSB2b2lkIG1v
dmVfbGFzdF9ydW5xdWV1ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiBwKQ0KK3N0
YXRpYyBpbmxpbmUgdm9pZCBzd2l0Y2hfcnVucXVldWVzKHN0cnVjdCB0YXNr
X3N0cnVjdCAqIHAsIHVuc2lnbmVkIGludCBuZXdfcnVuX3EpDQogew0KLQlz
dHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQgPSBwLT5uZXh0X3J1bjsNCiAJc3Ry
dWN0IHRhc2tfc3RydWN0ICpwcmV2ID0gcC0+cHJldl9ydW47DQorCXN0cnVj
dCB0YXNrX3N0cnVjdCAqbmV4dCA9IHAtPm5leHRfcnVuOw0KKwlzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnFfaGVhZCA9IHJ1bl9xW3AtPnJ1bl9xXTsNCiANCi0J
LyogcmVtb3ZlIGZyb20gbGlzdCAqLw0KLQluZXh0LT5wcmV2X3J1biA9IHBy
ZXY7DQorCS8qIHJlbW92ZSBsaW5rcyB0byBwICovDQogCXByZXYtPm5leHRf
cnVuID0gbmV4dDsNCi0JLyogYWRkIGJhY2sgdG8gbGlzdCAqLw0KLQlwLT5u
ZXh0X3J1biA9ICZpbml0X3Rhc2s7DQotCXByZXYgPSBpbml0X3Rhc2sucHJl
dl9ydW47DQotCWluaXRfdGFzay5wcmV2X3J1biA9IHA7DQotCXAtPnByZXZf
cnVuID0gcHJldjsNCi0JcHJldi0+bmV4dF9ydW4gPSBwOw0KKwluZXh0LT5w
cmV2X3J1biA9IHByZXY7DQorICAgICAgIAkvKiBpZiBwIHdhcyB0aGUgcV9o
ZWFkLCByZXNldCBxX2hlYWQgKi8NCisJaWYgKHAgPT0gcV9oZWFkKSB7DQor
CSAgICAgICAgaWYgKG5leHQgPT0gcCkNCisJICAgICAgICAgICAgICAgIHJ1
bl9xW3AtPnJ1bl9xXSA9IE5VTEw7DQorCQllbHNlDQorCQkgICAgICAgIHJ1
bl9xW3AtPnJ1bl9xXSA9IG5leHQ7DQorCX0NCisNCisJcC0+cnVuX3EgPSBu
ZXdfcnVuX3E7DQorCXFfaGVhZCA9IHJ1bl9xW3AtPnJ1bl9xXTsNCisJaWYg
KHFfaGVhZCA9PSBOVUxMKSB7DQorCSAgcnVuX3FbcC0+cnVuX3FdID0gcDsN
CisJICBwLT5wcmV2X3J1biA9IHA7DQorCSAgcC0+bmV4dF9ydW4gPSBwOw0K
Kwl9IGVsc2Ugew0KKwkgIHAtPnByZXZfcnVuID0gcV9oZWFkLT5wcmV2X3J1
bjsNCisJICBwLT5uZXh0X3J1biA9IHFfaGVhZDsNCisJICBxX2hlYWQtPnBy
ZXZfcnVuLT5uZXh0X3J1biA9IHA7DQorCSAgcV9oZWFkLT5wcmV2X3J1biA9
IHA7DQorCX0NCisJcC0+bGFzdF9ydW4gPSBqaWZmaWVzOw0KKwlwLT5jb3Vu
dGVyID0gREVGX1BSSU9SSVRZOw0KIH0NCiANCiAvKg0KQEAgLTI1MSwxMiAr
MzA4LDEzIEBADQogI2VuZGlmDQogDQogCS8qDQotCSAqIFJlYWx0aW1lIHBy
b2Nlc3MsIHNlbGVjdCB0aGUgZmlyc3Qgb25lIG9uIHRoZQ0KLQkgKiBydW5x
dWV1ZSAodGFraW5nIHByaW9yaXRpZXMgd2l0aGluIHByb2Nlc3Nlcw0KLQkg
KiBpbnRvIGFjY291bnQpLg0KKwkgKiAgU3BlY2lhbCB0cmVhdG1lbnQgb2Yg
U0NIRURfRklGTyBhbmQgU0NIRURfUlINCiAJICovDQotCWlmIChwLT5wb2xp
Y3kgIT0gU0NIRURfT1RIRVIpDQotCQlyZXR1cm4gMTAwMCArIHAtPnJ0X3By
aW9yaXR5Ow0KKwlpZiAocC0+cG9saWN5ICE9IFNDSEVEX0FEQVBUSVZFKSB7
DQorCSAgICAgICAgaWYgKHAtPnBvbGljeSA9PSBTQ0hFRF9GSUZPIHx8IHAt
PmNvdW50ZXIpDQorCQkgICAgICAgIHJldHVybiAxMDAwICsgcC0+cnRfcHJp
b3JpdHk7DQorCQllbHNlIHJldHVybiAwOw0KKwl9DQogDQogCS8qDQogCSAq
IEdpdmUgdGhlIHByb2Nlc3MgYSBmaXJzdC1hcHByb3hpbWF0aW9uIGdvb2Ru
ZXNzIHZhbHVlDQpAQCAtMzY1LDEwICs0MjMsOCBAQA0KIA0KIA0KIC8qDQot
ICogICdzY2hlZHVsZSgpJyBpcyB0aGUgc2NoZWR1bGVyIGZ1bmN0aW9uLiBJ
dCdzIGEgdmVyeSBzaW1wbGUgYW5kIG5pY2UNCi0gKiBzY2hlZHVsZXI6IGl0
J3Mgbm90IHBlcmZlY3QsIGJ1dCBjZXJ0YWlubHkgd29ya3MgZm9yIG1vc3Qg
dGhpbmdzLg0KLSAqDQotICogVGhlIGdvdG8gaXMgImludGVyZXN0aW5nIi4N
CisgKiAnc2NoZWR1bGUoKScgaW1wbGVtZW50cyBRTlgtc3R5bGUgbXVsdGkt
bGV2ZWwgZmVlZGJhY2sgc2NoZWR1bGluZy4NCisgKiBJdCBkb2VzIHJ1bi1x
dWV1ZSBtYWludGVuYW5jZSBhbmQgc2VsZWN0cyBhIHByb2Nlc3MgdG8gcnVu
Lg0KICAqDQogICogICBOT1RFISEgIFRhc2sgMCBpcyB0aGUgJ2lkbGUnIHRh
c2ssIHdoaWNoIGdldHMgY2FsbGVkIHdoZW4gbm8gb3RoZXINCiAgKiB0YXNr
cyBjYW4gcnVuLiBJdCBjYW4gbm90IGJlIGtpbGxlZCwgYW5kIGl0IGNhbm5v
dCBzbGVlcC4gVGhlICdzdGF0ZScNCkBAIC0zNzYsNyArNDMyLDggQEANCiAg
Ki8NCiBhc21saW5rYWdlIHZvaWQgc2NoZWR1bGUodm9pZCkNCiB7DQotCWlu
dCBjOw0KKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbmV4dF9tYWlu
dGVuYW5jZSA9IDA7DQorCWludCBjLCBxLCB3ZWlnaHQ7DQogCXN0cnVjdCB0
YXNrX3N0cnVjdCAqIHA7DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAqIHByZXYs
ICogbmV4dDsNCiAJdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gMDsNCkBAIC00
MDIsOCArNDU5LDggQEANCiAJY2xpKCk7DQogCS8qIG1vdmUgYW4gZXhoYXVz
dGVkIFJSIHByb2Nlc3MgdG8gYmUgbGFzdC4uICovDQogCWlmICghcHJldi0+
Y291bnRlciAmJiBwcmV2LT5wb2xpY3kgPT0gU0NIRURfUlIpIHsNCi0JCXBy
ZXYtPmNvdW50ZXIgPSBwcmV2LT5wcmlvcml0eTsNCi0JCW1vdmVfbGFzdF9y
dW5xdWV1ZShwcmV2KTsNCisJCXByZXYtPmNvdW50ZXIgPSBERUZfUFJJT1JJ
VFk7DQorCQlydW5fcVtwcmV2LT5ydW5fcV0gPSBwcmV2LT5uZXh0X3J1bjsN
CiAJfQ0KIAlzd2l0Y2ggKHByZXYtPnN0YXRlKSB7DQogCQljYXNlIFRBU0tf
SU5URVJSVVBUSUJMRToNCkBAIC00MTksMTAgKzQ3Niw0MCBAQA0KIAkJCX0N
CiAJCWRlZmF1bHQ6DQogCQkJZGVsX2Zyb21fcnVucXVldWUocHJldik7DQor
CQkJcHJldi0+Y291bnRlciA9IERFRl9QUklPUklUWTsNCisJCQlwcmV2LT5s
YXN0X3J1biA9IGppZmZpZXM7DQogCQljYXNlIFRBU0tfUlVOTklORzoNCiAJ
fQ0KLQlwID0gaW5pdF90YXNrLm5leHRfcnVuOw0KIAlzdGkoKTsNCisNCisJ
LyoNCisJICogIFRha2UgY2FyZSBvZiByZS1uaWNlZCBwcm9jZXNzZXMsIHBy
b21vdGUgc3RhcnZpbmcgcHJvY2Vzc2VzDQorCSAqLw0KKwlpZiAoamlmZmll
cyA+PSBuZXh0X21haW50ZW5hbmNlKSB7DQorCSAgICAgICAgZm9yX2VhY2hf
dGFzayhwKSB7DQorCQkgICAgICAgIGlmIChwLT5ydW5fcV9zdyA8IE5SX1JV
Tl9RVUVVRVMpIHsNCisJCQkgICAgICAgIGNsaSgpOw0KKwkJCQlpZiAocC0+
bmV4dF9ydW4pIHsNCisJCQkJICAgICAgICBwLT5ydW5fcV9taW4gPSBwLT5y
dW5fcV9zdzsNCisJCQkJICAgICAgICBpZiAocC0+cnVuX3EgIT0gcC0+cnVu
X3Ffc3cpDQorCQkJCQkgICAgICAgIHN3aXRjaF9ydW5xdWV1ZXMocCwgcC0+
cnVuX3Ffc3cpOw0KKwkJCQl9IGVsc2Ugew0KKwkJCQkJcC0+cnVuX3FfbWlu
ID0gcC0+cnVuX3EgPSBwLT5ydW5fcV9zdzsNCisJCQkJfQ0KKwkJCQlwLT5y
dW5fcV9zdyA9IE5SX1JVTl9RVUVVRVM7DQorCQkJCXN0aSgpOw0KKwkJICAg
ICAgICB9IGVsc2UgaWYgKHAtPm5leHRfcnVuICYmDQorCQkJCSAgIChqaWZm
aWVzIC0gcC0+bGFzdF9ydW4gPj0gSFopICYmDQorCQkJCSAgIChwLT5ydW5f
cSA+IHAtPnJ1bl9xX21pbiArIDEpICYmDQorCQkJCSAgIHByZXYtPnBpZCkN
CisJCQl7DQorCQkJICAgICAgICBjbGkoKTsNCisJCQkJc3dpdGNoX3J1bnF1
ZXVlcyhwLCBwLT5ydW5fcSAtIDEpOw0KKwkJCQlzdGkoKTsNCisJCQl9DQor
CQl9DQorCQluZXh0X21haW50ZW5hbmNlID0gamlmZmllcyArICgyMDAqSFov
MTAwMCk7DQorCX0NCiAJDQogI2lmZGVmIF9fU01QX18NCiAJLyoNCkBAIC00
MzUsMjUgKzUyMiw1MyBAQA0KICNlbmRpZgkNCiANCiAvKg0KLSAqIE5vdGUh
IHRoZXJlIG1heSBhcHBlYXIgbmV3IHRhc2tzIG9uIHRoZSBydW4tcXVldWUg
ZHVyaW5nIHRoaXMsIGFzDQotICogaW50ZXJydXB0cyBhcmUgZW5hYmxlZC4g
SG93ZXZlciwgdGhleSB3aWxsIGJlIHB1dCBvbiBmcm9udCBvZiB0aGUNCi0g
KiBsaXN0LCBzbyBvdXIgbGlzdCBzdGFydGluZyBhdCAicCIgaXMgZXNzZW50
aWFsbHkgZml4ZWQuDQorICogIE5vdGUhIHRoZXJlIG1heSBhcHBlYXIgbmV3
IHRhc2tzIG9uIHRoZSBydW4tcXVldWUgZHVyaW5nIHRoaXMsIGFzDQorICog
IGludGVycnVwdHMgYXJlIGVuYWJsZWQuIEhvd2V2ZXIsIHRoZXkgd2lsbCBi
ZSBwdXQgb24gZnJvbnQgb2YgdGhlDQorICogIGxpc3QsIHNvIG91ciBsaXN0
IHN0YXJ0aW5nIGF0ICJwIiBpcyBlc3NlbnRpYWxseSBmaXhlZC4NCiAgKi8N
Ci0vKiB0aGlzIGlzIHRoZSBzY2hlZHVsZXIgcHJvcGVyOiAqLw0KKyAgICAg
ICAgLyogcGljayBhIHByb2Nlc3MgKi8NCiAJYyA9IC0xMDAwOw0KIAluZXh0
ID0gaWRsZV90YXNrOw0KLQl3aGlsZSAocCAhPSAmaW5pdF90YXNrKSB7DQot
CQlpbnQgd2VpZ2h0ID0gZ29vZG5lc3MocCwgcHJldiwgdGhpc19jcHUpOw0K
LQkJaWYgKHdlaWdodCA+IGMpDQotCQkJYyA9IHdlaWdodCwgbmV4dCA9IHA7
DQotCQlwID0gcC0+bmV4dF9ydW47DQorCWZvciAocSA9IDA7IHEgPCBOUl9S
VU5fUVVFVUVTOyBxKyspIHsNCisJICAgICAgICBwID0gcnVuX3FbcV07DQor
CQlpZiAoIXApIGNvbnRpbnVlOw0KKwkJaWYgKCFwLT5waWQpIHsNCisJCSAg
ICAgICAgcCA9IHAtPm5leHRfcnVuOw0KKwkJCWlmICghcC0+cGlkKSBjb250
aW51ZTsNCisJCX0NCisJCWRvIHsNCisJCSAgICAgICAgd2VpZ2h0ID0gZ29v
ZG5lc3MocCwgcHJldiwgdGhpc19jcHUpOw0KKwkJCWlmICh3ZWlnaHQgPiBj
KSB7DQorCQkJICAgICAgICBjID0gd2VpZ2h0Ow0KKwkJCSAgICAgICAgbmV4
dCA9IHA7DQorCQkJfQ0KKwkJCXAgPSBwLT5uZXh0X3J1bjsNCisJCX0gd2hp
bGUgKHAgIT0gcnVuX3FbcV0pOw0KKwkJaWYgKCFjKSB7DQorCQkgICAgICAg
IHAgPSBydW5fcVtxXTsNCisJCQlkbyB7DQorCQkJICAgICAgICBwLT5jb3Vu
dGVyID0gREVGX1BSSU9SSVRZOw0KKwkJCQlwID0gcC0+bmV4dF9ydW47DQor
CQkJfSB3aGlsZSAocCAhPSBydW5fcVtxXSk7DQorCQl9DQorCQlpZiAoYyA+
IC0xMDAwKSBicmVhazsNCiAJfQ0KKwluZXh0LT5sYXN0X3J1biA9IGppZmZp
ZXM7DQogDQotCS8qIGlmIGFsbCBydW5uYWJsZSBwcm9jZXNzZXMgaGF2ZSAi
Y291bnRlciA9PSAwIiwgcmUtY2FsY3VsYXRlIGNvdW50ZXJzICovDQotCWlm
ICghYykgew0KLQkJZm9yX2VhY2hfdGFzayhwKQ0KLQkJCXAtPmNvdW50ZXIg
PSAocC0+Y291bnRlciA+PiAxKSArIHAtPnByaW9yaXR5Ow0KKwkvKiBQb3Nz
aWJseSBkZW1vdGUgdGhlIHByZXZpb3VzIHRhc2sgKi8NCisJaWYgKHByZXYt
PnBpZCAmJiBuZXh0LT5waWQgJiYNCisJICAgIChuZXh0ICE9IHByZXYpICYm
DQorCSAgICBwcmV2LT5uZXh0X3J1biAmJg0KKwkgICAgIXByZXYtPmNvdW50
ZXIgJiYNCisJICAgIChxID09IHByZXYtPnJ1bl9xKSAmJg0KKwkgICAgKHEg
PCBOUl9SVU5fUVVFVUVTIC0gMSkgJiYNCisJICAgIChwcmV2LT5wb2xpY3kg
PT0gU0NIRURfQURBUFRJVkUpKQ0KKwl7DQorCSAgICAgICAgY2xpKCk7DQor
CQlzd2l0Y2hfcnVucXVldWVzKHByZXYsIHByZXYtPnJ1bl9xICsgMSk7DQor
CQlzdGkoKTsNCiAJfQ0KKw0KICNpZmRlZiBfX1NNUF9fDQogCS8qDQogCSAq
CUFsbG9jYXRlIHByb2Nlc3MgdG8gQ1BVDQpAQCAtMTIxNyw3ICsxMzMyLDcg
QEANCiAJCQlwLT5jb3VudGVyID0gMDsNCiAJCQluZWVkX3Jlc2NoZWQgPSAx
Ow0KIAkJfQ0KLQkJaWYgKHAtPnByaW9yaXR5IDwgREVGX1BSSU9SSVRZKQ0K
KwkJaWYgKHAtPnJ1bl9xID4gREVGX1JVTl9RVUVVRSkNCiAJCQlrc3RhdC5j
cHVfbmljZSArPSB1c2VyOw0KIAkJZWxzZQ0KIAkJCWtzdGF0LmNwdV91c2Vy
ICs9IHVzZXI7DQpAQCAtMTI1Myw3ICsxMzY4LDcgQEANCiAJCQl9DQogCQkJ
dXBkYXRlX29uZV9wcm9jZXNzKHAsIHRpY2tzLCB1dGltZSwgc3RpbWUpOw0K
IA0KLQkJCWlmIChwLT5wcmlvcml0eSA8IERFRl9QUklPUklUWSkNCisJCQlp
ZiAocC0+cnVuX3EgPiBERUZfUlVOX1FVRVVFKQ0KIAkJCQlrc3RhdC5jcHVf
bmljZSArPSB1dGltZTsNCiAJCQllbHNlDQogCQkJCWtzdGF0LmNwdV91c2Vy
ICs9IHV0aW1lOw0KQEAgLTE0NjMsMTYgKzE1NzgsMTYgQEANCiAJaWYgKHBv
bGljeSA8IDApDQogCQlwb2xpY3kgPSBwLT5wb2xpY3k7DQogCWVsc2UgaWYg
KHBvbGljeSAhPSBTQ0hFRF9GSUZPICYmIHBvbGljeSAhPSBTQ0hFRF9SUiAm
Jg0KLQkJIHBvbGljeSAhPSBTQ0hFRF9PVEhFUikNCisJCSBwb2xpY3kgIT0g
U0NIRURfQURBUFRJVkUpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiAJDQogCS8q
DQogCSAqIFZhbGlkIHByaW9yaXRpZXMgZm9yIFNDSEVEX0ZJRk8gYW5kIFND
SEVEX1JSIGFyZSAxLi45OSwgdmFsaWQNCi0JICogcHJpb3JpdHkgZm9yIFND
SEVEX09USEVSIGlzIDAuDQorCSAqIHByaW9yaXR5IGZvciBTQ0hFRF9BREFQ
VElWRSBpcyAwLg0KIAkgKi8NCiAJaWYgKGxwLnNjaGVkX3ByaW9yaXR5IDwg
MCB8fCBscC5zY2hlZF9wcmlvcml0eSA+IDk5KQ0KIAkJcmV0dXJuIC1FSU5W
QUw7DQotCWlmICgocG9saWN5ID09IFNDSEVEX09USEVSKSAhPSAobHAuc2No
ZWRfcHJpb3JpdHkgPT0gMCkpDQorCWlmICgocG9saWN5ID09IFNDSEVEX0FE
QVBUSVZFKSAhPSAobHAuc2NoZWRfcHJpb3JpdHkgPT0gMCkpDQogCQlyZXR1
cm4gLUVJTlZBTDsNCiANCiAJaWYgKChwb2xpY3kgPT0gU0NIRURfRklGTyB8
fCBwb2xpY3kgPT0gU0NIRURfUlIpICYmICFzdXNlcigpKQ0KQEAgLTE0ODMs
OSArMTU5OCwxMCBAQA0KIA0KIAlwLT5wb2xpY3kgPSBwb2xpY3k7DQogCXAt
PnJ0X3ByaW9yaXR5ID0gbHAuc2NoZWRfcHJpb3JpdHk7DQorCXAtPnJ1bl9x
X3N3ID0gcC0+cnVuX3FfbWluOw0KIAljbGkoKTsNCiAJaWYgKHAtPm5leHRf
cnVuKQ0KLQkJbW92ZV9sYXN0X3J1bnF1ZXVlKHApOw0KKwkgICAgICAgIHJ1
bl9xW3AtPnJ1bl9xXSA9IHAtPm5leHRfcnVuOw0KIAlzdGkoKTsNCiAJbmVl
ZF9yZXNjaGVkID0gMTsNCiAJcmV0dXJuIDA7DQpAQCAtMTU0Miw3ICsxNjU4
LDcgQEANCiBhc21saW5rYWdlIGludCBzeXNfc2NoZWRfeWllbGQodm9pZCkN
CiB7DQogCWNsaSgpOw0KLQltb3ZlX2xhc3RfcnVucXVldWUoY3VycmVudCk7
DQorCXJ1bl9xW2N1cnJlbnQtPnJ1bl9xXSA9IGN1cnJlbnQtPm5leHRfcnVu
Ow0KIAljdXJyZW50LT5jb3VudGVyID0gMDsNCiAJbmVlZF9yZXNjaGVkID0g
MTsNCiAJc3RpKCk7DQpAQCAtMTU1NSw3ICsxNjcxLDcgQEANCiAJICAgICAg
Y2FzZSBTQ0hFRF9GSUZPOg0KIAkgICAgICBjYXNlIFNDSEVEX1JSOg0KIAkJ
cmV0dXJuIDk5Ow0KLQkgICAgICBjYXNlIFNDSEVEX09USEVSOg0KKwkgICAg
ICBjYXNlIFNDSEVEX0FEQVBUSVZFOg0KIAkJcmV0dXJuIDA7DQogCX0NCiAN
CkBAIC0xNTY4LDcgKzE2ODQsNyBAQA0KIAkgICAgICBjYXNlIFNDSEVEX0ZJ
Rk86DQogCSAgICAgIGNhc2UgU0NIRURfUlI6DQogCQlyZXR1cm4gMTsNCi0J
ICAgICAgY2FzZSBTQ0hFRF9PVEhFUjoNCisJICAgICAgY2FzZSBTQ0hFRF9B
REFQVElWRToNCiAJCXJldHVybiAwOw0KIAl9DQogDQpAQCAtMTYzNiw3ICsx
NzUyLDcgQEANCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KIAlpZiAodC50dl9z
ZWMgPT0gMCAmJiB0LnR2X25zZWMgPD0gMjAwMDAwMEwgJiYNCi0JICAgIGN1
cnJlbnQtPnBvbGljeSAhPSBTQ0hFRF9PVEhFUikgew0KKwkgICAgY3VycmVu
dC0+cG9saWN5ICE9IFNDSEVEX0FEQVBUSVZFKSB7DQogCQkvKg0KIAkJICog
U2hvcnQgZGVsYXkgcmVxdWVzdHMgdXAgdG8gMiBtcyB3aWxsIGJlIGhhbmRs
ZWQgd2l0aA0KIAkJICogaGlnaCBwcmVjaXNpb24gYnkgYSBidXN5IHdhaXQg
Zm9yIGFsbCByZWFsLXRpbWUgcHJvY2Vzc2VzLg0KQEAgLTE3MjYsNyArMTg0
Miw3IEBADQogCSAqCVdlIGhhdmUgdG8gZG8gYSBsaXR0bGUgbWFnaWMgdG8g
Z2V0IHRoZSBmaXJzdA0KIAkgKglwcm9jZXNzIHJpZ2h0IGluIFNNUCBtb2Rl
Lg0KIAkgKi8NCi0JaW50IGNwdT1zbXBfcHJvY2Vzc29yX2lkKCk7DQorCWlu
dCBpLCBjcHU9c21wX3Byb2Nlc3Nvcl9pZCgpOw0KICNpZm5kZWYgX19TTVBf
XwkNCiAJY3VycmVudF9zZXRbY3B1XT0maW5pdF90YXNrOw0KICNlbHNlDQpA
QCAtMTczNyw0ICsxODUzLDkgQEANCiAJaW5pdF9iaChUSU1FUl9CSCwgdGlt
ZXJfYmgpOw0KIAlpbml0X2JoKFRRVUVVRV9CSCwgdHF1ZXVlX2JoKTsNCiAJ
aW5pdF9iaChJTU1FRElBVEVfQkgsIGltbWVkaWF0ZV9iaCk7DQorDQorCWZv
ciAoaSA9IDA7IGkgPCBOUl9SVU5fUVVFVUVTOyBpKyspDQorCSAgICAgICAg
cnVuX3FbaV0gPSBOVUxMOw0KKwlydW5fcVtERUZfUlVOX1FVRVVFXSA9ICZp
bml0X3Rhc2s7DQorCXByaW50aygiUU5YLXN0eWxlIHNjaGVkdWxpbmcgdjEu
MDcgPGFtY2tlZUBwb2JveGVzLmNvbT5cbiIpOw0KIH0NCi0tLSBsaW51eC9r
ZXJuZWwvZm9yay5jLm9yaWcJU2F0IEF1ZyAxNiAxMjoyNjo0OSAxOTk3DQor
KysgbGludXgva2VybmVsL2ZvcmsuYwlTYXQgQXVnIDE2IDEyOjM2OjQwIDE5
OTcNCkBAIC0yMTcsNyArMjE3LDcgQEANCiB7DQogCWludCBucjsNCiAJaW50
IGVycm9yID0gLUVOT01FTTsNCi0JdW5zaWduZWQgbG9uZyBuZXdfc3RhY2s7
DQorCXVuc2lnbmVkIGxvbmcgbmV3X3N0YWNrLCB0Ow0KIAlzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnA7DQogDQogCXAgPSAoc3RydWN0IHRhc2tfc3RydWN0ICop
IGttYWxsb2Moc2l6ZW9mKCpwKSwgR0ZQX0tFUk5FTCk7DQpAQCAtMjY1LDYg
KzI2NSwyMSBAQA0KIAlwLT5sb2NrX2RlcHRoID0gMTsNCiAjZW5kaWYNCiAJ
cC0+c3RhcnRfdGltZSA9IGppZmZpZXM7DQorCWN1cnJlbnQtPm5yX2Zvcmtz
Kys7DQorCXAtPm5yX2ZvcmtzID0gMDsNCisJLyoNCisJICogIElmIGEgcHJv
Y2VzcyBmb3JrcyBhIGxvdCwgaXRzIGNoaWxkcmVuIHdpbGwgc3RhcnQgb3V0
IG9uIGEgaGlnaGVyDQorCSAqICBydW4tcXVldWUuICBQZXJoYXBzIHVzZWZ1
bCBmb3IgZGVmZW5kaW5nIGZvcmstYm9tYnMsIGFuZCBoZWxwcyB0aGUNCisJ
ICogIHNjaGVkdWxlciB0byBkZWFsIHdpdGggdGFza3MgbGlrZSAibWFrZSIu
DQorCSAqLw0KKwlpZiAoKHAtPnBvbGljeSA9PSBTQ0hFRF9BREFQVElWRSkg
JiYNCisJICAgIChwLT5ydW5fcSA8IE5SX1JVTl9RVUVVRVMgLSAxKSkNCisg
ICAgICAgIHsNCisJICAgICAgICB0ID0gamlmZmllcyAtIGN1cnJlbnQtPnN0
YXJ0X3RpbWU7DQorCQl0IC89IDE1KkhaOw0KKwkJaWYgKCF0IHx8IChjdXJy
ZW50LT5ucl9mb3JrcyAvIHQpKQ0KKwkJICAgICAgICBwLT5ydW5fcSsrOw0K
Kwl9DQogCXRhc2tbbnJdID0gcDsNCiAJU0VUX0xJTktTKHApOw0KIAlucl90
YXNrcysrOw0KLS0tIGxpbnV4L21tL3Ztc2Nhbi5jLm9yaWcJU2F0IEF1ZyAx
NiAxMjoyNjo0OSAxOTk3DQorKysgbGludXgvbW0vdm1zY2FuLmMJU2F0IEF1
ZyAxNiAxMjoyNjo1OCAxOTk3DQpAQCAtNDY1LDYgKzQ2NSw3IEBADQogCWN1
cnJlbnQtPnByaW9yaXR5ID0gMzI7ICAvKiBGaXhtZSAtLS0gd2UgbmVlZCB0
byBzdGFuZGFyZGlzZSBvdXINCiAJCQkJICAgIG5hbWluZ3MgZm9yIFBPU0lY
LjQgcmVhbHRpbWUgc2NoZWR1bGluZw0KIAkJCQkgICAgcHJpb3JpdGllcy4g
ICovDQorCWN1cnJlbnQtPnJ1bl9xX3N3ID0gMDsNCiANCiAJaW5pdF9zd2Fw
X3RpbWVyKCk7DQogCQ0KLS0tIGxpbnV4L2luY2x1ZGUvbGludXgvc2NoZWQu
aC5vcmlnCVNhdCBBdWcgMTYgMTI6MjY6NDkgMTk5Nw0KKysrIGxpbnV4L2lu
Y2x1ZGUvbGludXgvc2NoZWQuaAlTYXQgQXVnIDE2IDEyOjI2OjU4IDE5OTcN
CkBAIC04NywxMCArODcsMTMgQEANCiAjZGVmaW5lIFRBU0tfU1RPUFBFRAkJ
NA0KICNkZWZpbmUgVEFTS19TV0FQUElORwkJNQ0KIA0KKyNkZWZpbmUgTlJf
UlVOX1FVRVVFUwkJMzIJLyogdGhlIHNjaGVkdWxlciB1c2VzIDMyIHJ1bi1x
dWV1ZXMgKi8NCisjZGVmaW5lIERFRl9SVU5fUVVFVUUJCTE1CS8qIGRlZmF1
bHQgcnVuLXF1ZXVlICovDQorDQogLyoNCiAgKiBTY2hlZHVsaW5nIHBvbGlj
aWVzDQogICovDQotI2RlZmluZSBTQ0hFRF9PVEhFUgkJMA0KKyNkZWZpbmUg
U0NIRURfQURBUFRJVkUJCTANCiAjZGVmaW5lIFNDSEVEX0ZJRk8JCTENCiAj
ZGVmaW5lIFNDSEVEX1JSCQkyDQogDQpAQCAtMjQ0LDYgKzI0Nyw5IEBADQog
CXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOw0KIC8qIHNpZ25hbCBoYW5kbGVycyAq
Lw0KIAlzdHJ1Y3Qgc2lnbmFsX3N0cnVjdCAqc2lnOw0KKy8qIFFOWC1zdHls
ZSBzY2hlZHVsZXIgKi8NCisgICAgICAgIHVuc2lnbmVkIGxvbmcgbGFzdF9y
dW4sIG5yX2ZvcmtzOw0KKyAgICAgICAgdW5zaWduZWQgaW50IHJ1bl9xLCBy
dW5fcV9taW4sIHJ1bl9xX3N3Ow0KICNpZmRlZiBfX1NNUF9fDQogCWludCBw
cm9jZXNzb3I7DQogCWludCBsYXN0X3Byb2Nlc3NvcjsNCkBAIC0yNzUsNyAr
MjgxLDcgQEANCiAgKi8NCiAjZGVmaW5lIF9TVEtfTElNCSg4KjEwMjQqMTAy
NCkNCiANCi0jZGVmaW5lIERFRl9QUklPUklUWQkoMjAqSFovMTAwKQkvKiAy
MDAgbXMgdGltZSBzbGljZXMgKi8NCisjZGVmaW5lIERFRl9QUklPUklUWQko
MjAwKkhaLzEwMDApCS8qIDIwMCBtcyB0aW1lIHNsaWNlcyAqLw0KIA0KIC8q
DQogICogIElOSVRfVEFTSyBpcyB1c2VkIHRvIHNldCB1cCB0aGUgZmlyc3Qg
dGFzayB0YWJsZSwgdG91Y2ggYXQNCkBAIC0yOTMsNyArMjk5LDcgQEANCiAv
KiBzdXBwbCBncnBzKi8ge05PR1JPVVAsfSwgXA0KIC8qIHByb2MgbGlua3Mq
LyAmaW5pdF90YXNrLCZpbml0X3Rhc2ssTlVMTCxOVUxMLE5VTEwsTlVMTCwg
XA0KIC8qIHVpZCBldGMgKi8JMCwwLDAsMCwwLDAsMCwwLCBcDQotLyogdGlt
ZW91dCAqLwkwLFNDSEVEX09USEVSLDAsMCwwLDAsMCwwLDAsIFwNCisvKiB0
aW1lb3V0ICovCTAsU0NIRURfQURBUFRJVkUsMCwwLDAsMCwwLDAsMCwgXA0K
IC8qIHRpbWVyICovCXsgTlVMTCwgTlVMTCwgMCwgMCwgaXRfcmVhbF9mbiB9
LCBcDQogLyogdXRpbWUgKi8JMCwwLDAsMCwwLCBcDQogLyogZmx0ICovCTAs
MCwwLDAsMCwwLCBcDQpAQCAtMzA5LDYgKzMxNSw3IEBADQogLyogZmlsZXMg
Ki8JJmluaXRfZmlsZXMsIFwNCiAvKiBtbSAqLwkmaW5pdF9tbSwgXA0KIC8q
IHNpZ25hbHMgKi8JJmluaXRfc2lnbmFscywgXA0KKy8qIFFOWCBzY2hlZCAq
LyAwLCAwLCBERUZfUlVOX1FVRVVFLCBERUZfUlVOX1FVRVVFLCBOUl9SVU5f
UVVFVUVTIFwNCiB9DQogDQogZXh0ZXJuIHN0cnVjdCAgIG1tX3N0cnVjdCBp
bml0X21tOw0K
--12583424-46732160-872373534=:1079--