[patch] QNX-style Scheduler v1.03

Adam McKee (amckee@poboxes.com)
Tue, 29 Jul 1997 00:14:00 -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-2048963288-870156840=:708
Content-Type: TEXT/PLAIN; charset=US-ASCII

I was a bit over-zealous in getting rid of the old scheduling machinery.
This version works a bit better. I don't know if this one works on SMP,
but I have heard that previous versions crash on SMP. I hope to have that
fixed relatively soon.

-- Adam

--12583424-2048963288-870156840=:708
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="QNX-scheduler-2.0.31-pre2-3.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.970729001400.708C@titan.acua.org>
Content-Description:

LS0tIGxpbnV4L2ZzL3Byb2MvYXJyYXkuYy5vcmlnCU1vbiBKdWwgMjggMTM6
MTM6NTAgMTk5Nw0KKysrIGxpbnV4L2ZzL3Byb2MvYXJyYXkuYwlNb24gSnVs
IDI4IDAwOjQ0OjA5IDE5OTcNCkBAIC02ODIsMTIgKzY4MiwzNCBAQA0KIAll
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
dSAlbHUgXA0KLS0tIGxpbnV4L2ZzL2J1ZmZlci5jLm9yaWcJTW9uIEp1bCAy
OCAyMzoyMTo1MCAxOTk3DQorKysgbGludXgvZnMvYnVmZmVyLmMJTW9uIEp1
bCAyOCAyMzoyMTozNSAxOTk3DQpAQCAtMTYzMyw2ICsxNjMzLDEwIEBADQog
CWxvY2tfa2VybmVsKCk7DQogCXN5c2NhbGxfY291bnQrKzsNCiAjZW5kaWYN
CisNCisgICAgICAgIC8qIEdpdmUga2ZsdXNoZCBhIGhpZ2ggcHJpb3JpdHku
ICovDQorICAgICAgICBjdXJyZW50LT5ydW5fcV9zdyA9IDA7DQorDQogCWZv
ciAoOzspIHsNCiAjaWZkZWYgREVCVUcNCiAJCXByaW50aygiYmRmbHVzaCgp
IGFjdGl2YXRlZC4uLiIpOw0KLS0tIGxpbnV4L2tlcm5lbC9zeXMuYy5vcmln
CU1vbiBKdWwgMjggMTM6MTM6MTYgMTk5Nw0KKysrIGxpbnV4L2tlcm5lbC9z
eXMuYwlNb24gSnVsIDI4IDAwOjQ0OjA5IDE5OTcNCkBAIC02NywyMyArNjcs
MjUgQEANCiB7DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsNCiAJaW50IGVy
cm9yID0gRVNSQ0g7DQotCXVuc2lnbmVkIGludCBwcmlvcml0eTsNCisJdW5z
aWduZWQgaW50IHJ1bl9xOw0KIA0KIAlpZiAod2hpY2ggPiAyIHx8IHdoaWNo
IDwgMCkNCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KLQkvKiBub3JtYWxpemU6
IGF2b2lkIHNpZ25lZCBkaXZpc2lvbiAocm91bmRpbmcgcHJvYmxlbXMpICov
DQotCXByaW9yaXR5ID0gbmljZXZhbDsNCi0JaWYgKG5pY2V2YWwgPCAwKQ0K
LQkJcHJpb3JpdHkgPSAtbmljZXZhbDsNCi0JaWYgKHByaW9yaXR5ID4gMjAp
DQotCQlwcmlvcml0eSA9IDIwOw0KLQlwcmlvcml0eSA9IChwcmlvcml0eSAq
IERFRl9QUklPUklUWSArIDEwKSAvIDIwICsgREVGX1BSSU9SSVRZOw0KLQ0K
LQlpZiAobmljZXZhbCA+PSAwKSB7DQotCQlwcmlvcml0eSA9IDIqREVGX1BS
SU9SSVRZIC0gcHJpb3JpdHk7DQotCQlpZiAoIXByaW9yaXR5KQ0KLQkJCXBy
aW9yaXR5ID0gMTsNCisJaWYgKG5pY2V2YWwgPCAtMjApIG5pY2V2YWwgPSAt
MjA7DQorCWVsc2UgaWYgKG5pY2V2YWwgPiAyMCkgbmljZXZhbCA9IDIwOw0K
KwlpZiAobmljZXZhbCA8IDApIHsNCisJICBydW5fcSA9IC1uaWNldmFsIC0g
MTsNCisJICBydW5fcSAqPSAoREVGX1JVTl9RVUVVRSAtIDEpOw0KKwkgIHJ1
bl9xIC89IDE5OyANCisJICBydW5fcSA9IERFRl9SVU5fUVVFVUUgLSAxIC0g
cnVuX3E7DQorCX0gZWxzZSBpZiAoIW5pY2V2YWwpIHsNCisJICBydW5fcSA9
IERFRl9SVU5fUVVFVUU7DQorCX0gZWxzZSB7DQorCSAgcnVuX3EgPSBuaWNl
dmFsIC0gMTsNCisJICBydW5fcSAqPSAoTlJfUlVOX1FVRVVFUyAtIERFRl9S
VU5fUVVFVUUgLSAyKTsNCisJICBydW5fcSAvPSAxOTsNCisJICBydW5fcSA9
IERFRl9SVU5fUVVFVUUgKyAxICsgcnVuX3E7DQogCX0NCiANCiAJZm9yX2Vh
Y2hfdGFzayhwKSB7DQpAQCAtOTYsMTAgKzk4LDEwIEBADQogCQl9DQogCQlp
ZiAoZXJyb3IgPT0gRVNSQ0gpDQogCQkJZXJyb3IgPSAwOw0KLQkJaWYgKHBy
aW9yaXR5ID4gcC0+cHJpb3JpdHkgJiYgIXN1c2VyKCkpDQotCQkJZXJyb3Ig
PSBFQUNDRVM7DQorCQlpZiAocnVuX3EgPCBwLT5ydW5fcV9taW4gJiYgIXN1
c2VyKCkpDQorCQkgICAgICAgIGVycm9yID0gRUFDQ0VTOw0KIAkJZWxzZQ0K
LQkJCXAtPnByaW9yaXR5ID0gcHJpb3JpdHk7DQorCQkgICAgICAgIHAtPnJ1
bl9xX3N3ID0gcnVuX3E7DQogCX0NCiAJcmV0dXJuIC1lcnJvcjsNCiB9DQpA
QCAtMTEyLDcgKzExNCw3IEBADQogYXNtbGlua2FnZSBpbnQgc3lzX2dldHBy
aW9yaXR5KGludCB3aGljaCwgaW50IHdobykNCiB7DQogCXN0cnVjdCB0YXNr
X3N0cnVjdCAqcDsNCi0JbG9uZyBtYXhfcHJpbyA9IC1FU1JDSDsNCisJdW5z
aWduZWQgaW50IHJ1bl9xX21pbiA9IE5SX1JVTl9RVUVVRVM7DQogDQogCWlm
ICh3aGljaCA+IDIgfHwgd2hpY2ggPCAwKQ0KIAkJcmV0dXJuIC1FSU5WQUw7
DQpAQCAtMTIwLDE0ICsxMjIsMjcgQEANCiAJZm9yX2VhY2hfdGFzayAocCkg
ew0KIAkJaWYgKCFwcm9jX3NlbChwLCB3aGljaCwgd2hvKSkNCiAJCQljb250
aW51ZTsNCi0JCWlmIChwLT5wcmlvcml0eSA+IG1heF9wcmlvKQ0KLQkJCW1h
eF9wcmlvID0gcC0+cHJpb3JpdHk7DQorCQlpZiAocC0+cnVuX3FfbWluIDwg
cnVuX3FfbWluKQ0KKwkJCXJ1bl9xX21pbiA9IHAtPnJ1bl9xX21pbjsNCiAJ
fQ0KIA0KLQkvKiBzY2FsZSB0aGUgcHJpb3JpdHkgZnJvbSB0aW1lc2xpY2Ug
dG8gMC4uNDAgKi8NCi0JaWYgKG1heF9wcmlvID4gMCkNCi0JCW1heF9wcmlv
ID0gKG1heF9wcmlvICogMjAgKyBERUZfUFJJT1JJVFkvMikgLyBERUZfUFJJ
T1JJVFk7DQotCXJldHVybiBtYXhfcHJpbzsNCisgICAgICAgIGlmIChydW5f
cV9taW4gPT0gTlJfUlVOX1FVRVVFUykNCisgICAgICAgICAgICAgICAgcmV0
dXJuIC1FU1JDSDsNCisNCisJLyogc2NhbGUgdGhlIHJ1bl9xIHRvIDAuLjQw
ICovDQorCWlmIChydW5fcV9taW4gPCBERUZfUlVOX1FVRVVFKSB7DQorCSAg
ICAgICAgcnVuX3FfbWluICo9IDE5Ow0KKwkJcnVuX3FfbWluIC89IChERUZf
UlVOX1FVRVVFIC0gMSk7DQorCX0gZWxzZSBpZiAocnVuX3FfbWluID09IERF
Rl9SVU5fUVVFVUUpIHsNCisJICAgICAgICBydW5fcV9taW4gPSAyMDsNCisJ
fSBlbHNlIHsNCisJICAgICAgICBydW5fcV9taW4gLT0gKERFRl9SVU5fUVVF
VUUgKyAxKTsNCisJCXJ1bl9xX21pbiAqPSAxOTsNCisJCXJ1bl9xX21pbiAv
PSAoTlJfUlVOX1FVRVVFUyAtIERFRl9SVU5fUVVFVUUgLSAyKTsNCisJCXJ1
bl9xX21pbiArPSAyMTsNCisJfQ0KKyAgICAgICAgcnVuX3FfbWluID0gNDAg
LSBydW5fcV9taW47DQorCXJldHVybiBydW5fcV9taW47DQogfQ0KIA0KICNp
Zm5kZWYgX19hbHBoYV9fDQotLS0gbGludXgva2VybmVsL3NjaGVkLmMub3Jp
ZwlNb24gSnVsIDI4IDEzOjEzOjI4IDE5OTcNCisrKyBsaW51eC9rZXJuZWwv
c2NoZWQuYwlNb24gSnVsIDI4IDIzOjEzOjUyIDE5OTcNCkBAIC03LDYgKzcs
NyBAQA0KICAqICAxOTk2LTEyLTIzICBNb2RpZmllZCBieSBEYXZlIEdyb3Ro
ZSB0byBmaXggYnVncyBpbiBzZW1hcGhvcmVzIGFuZA0KICAqICAgICAgICAg
ICAgICBtYWtlIHNlbWFwaG9yZXMgU01QIHNhZmUNCiAgKiAgMTk5Ny0wMS0y
OCAgTW9kaWZpZWQgYnkgRmlubiBBcm5lIEdhbmdzdGFkIHRvIG1ha2UgdGlt
ZXJzIHNjYWxlIGJldHRlci4NCisgKiAgMTk5Ny0wNy0zMCAgTW9kaWZpZWQg
YnkgQWRhbSBNY0tlZSB0byB1c2UgbXVsdGlsZXZlbCBmZWVkYmFjayBzY2hl
ZHVsaW5nLg0KICAqLw0KIA0KIC8qDQpAQCAtOTIsNiArOTMsNyBAQA0KIHN0
YXRpYyBzdHJ1Y3QgZnNfc3RydWN0IGluaXRfZnMgPSBJTklUX0ZTOw0KIHN0
YXRpYyBzdHJ1Y3QgZmlsZXNfc3RydWN0IGluaXRfZmlsZXMgPSBJTklUX0ZJ
TEVTOw0KIHN0YXRpYyBzdHJ1Y3Qgc2lnbmFsX3N0cnVjdCBpbml0X3NpZ25h
bHMgPSBJTklUX1NJR05BTFM7DQorc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVj
dCAqIHJ1bl9xW05SX1JVTl9RVUVVRVNdOw0KIA0KIHN0cnVjdCBtbV9zdHJ1
Y3QgaW5pdF9tbSA9IElOSVRfTU07DQogc3RydWN0IHRhc2tfc3RydWN0IGlu
aXRfdGFzayA9IElOSVRfVEFTSzsNCkBAIC0xMDcsNiArMTA5LDcgQEANCiAN
CiBzdGF0aWMgaW5saW5lIHZvaWQgYWRkX3RvX3J1bnF1ZXVlKHN0cnVjdCB0
YXNrX3N0cnVjdCAqIHApDQogew0KKyAgICAgICAgc3RydWN0IHRhc2tfc3Ry
dWN0ICpxX2hlYWQgPSBydW5fcVtwLT5ydW5fcV07DQogI2lmZGVmIF9fU01Q
X18NCiAJaW50IGNwdT1zbXBfcHJvY2Vzc29yX2lkKCk7DQogI2VuZGlmCQ0K
QEAgLTExNiwxMiArMTE5LDI0IEBADQogCQlyZXR1cm47DQogCX0NCiAjZW5k
aWYNCi0JaWYgKHAtPmNvdW50ZXIgPiBjdXJyZW50LT5jb3VudGVyICsgMykN
CisJaWYgKChwLT5ydW5fcSA8IGN1cnJlbnQtPnJ1bl9xKSB8fA0KKwkgICAg
KChwLT5ydW5fcSA9PSBjdXJyZW50LT5ydW5fcSkgJiYNCisJICAgICAocC0+
Y291bnRlciA+IGN1cnJlbnQtPmNvdW50ZXIgKyAzKSkpDQogCQluZWVkX3Jl
c2NoZWQgPSAxOw0KIAlucl9ydW5uaW5nKys7DQotCShwLT5wcmV2X3J1biA9
IGluaXRfdGFzay5wcmV2X3J1biktPm5leHRfcnVuID0gcDsNCi0JcC0+bmV4
dF9ydW4gPSAmaW5pdF90YXNrOw0KLQlpbml0X3Rhc2sucHJldl9ydW4gPSBw
Ow0KKw0KKwlpZiAocV9oZWFkID09IE5VTEwpIHsNCisJICBydW5fcVtwLT5y
dW5fcV0gPSBwOw0KKwkgIHAtPnByZXZfcnVuID0gcDsNCisJICBwLT5uZXh0
X3J1biA9IHA7DQorCX0gZWxzZSB7DQorCSAgcC0+cHJldl9ydW4gPSBxX2hl
YWQtPnByZXZfcnVuOw0KKwkgIHAtPm5leHRfcnVuID0gcV9oZWFkOw0KKwkg
IHFfaGVhZC0+cHJldl9ydW4tPm5leHRfcnVuID0gcDsNCisJICBxX2hlYWQt
PnByZXZfcnVuID0gcDsNCisJfQ0KKwlwLT5sYXN0X3J1biA9IGppZmZpZXM7
DQorDQogI2lmZGVmIF9fU01QX18NCiAJLyogdGhpcyBpcyBzYWZlIG9ubHkg
aWYgY2FsbGVkIHdpdGggY2xpKCkqLw0KIAl3aGlsZShzZXRfYml0KDMxLCZz
bXBfcHJvY2Vzc19hdmFpbGFibGUpKQ0KQEAgLTE1NCw4ICsxNjksOSBAQA0K
IA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBkZWxfZnJvbV9ydW5xdWV1ZShzdHJ1
Y3QgdGFza19zdHJ1Y3QgKiBwKQ0KIHsNCi0Jc3RydWN0IHRhc2tfc3RydWN0
ICpuZXh0ID0gcC0+bmV4dF9ydW47DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAq
cHJldiA9IHAtPnByZXZfcnVuOw0KKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5l
eHQgPSBwLT5uZXh0X3J1bjsNCisJc3RydWN0IHRhc2tfc3RydWN0ICpxX2hl
YWQgPSBydW5fcVtwLT5ydW5fcV07DQogDQogI2lmIDEJLyogc2FuaXR5IHRl
c3RzICovDQogCWlmICghbmV4dCB8fCAhcHJldikgew0KQEAgLTE3MiwyNiAr
MTg4LDUzIEBADQogCQlyZXR1cm47DQogCX0NCiAJbnJfcnVubmluZy0tOw0K
LQluZXh0LT5wcmV2X3J1biA9IHByZXY7DQorDQorCS8qIHJlbW92ZSBsaW5r
cyB0byBwICovDQogCXByZXYtPm5leHRfcnVuID0gbmV4dDsNCi0JcC0+bmV4
dF9ydW4gPSBOVUxMOw0KKwluZXh0LT5wcmV2X3J1biA9IHByZXY7DQorCS8q
IHNldCBwJ3MgbGlua3MgKi8NCiAJcC0+cHJldl9ydW4gPSBOVUxMOw0KKwlw
LT5uZXh0X3J1biA9IE5VTEw7DQorICAgICAgIAkvKiBpZiBwIHdhcyB0aGUg
cV9oZWFkLCByZXNldCBxX2hlYWQgKi8NCisJaWYgKHAgPT0gcV9oZWFkKSB7
DQorCSAgICAgICAgaWYgKG5leHQgPT0gcCkNCisJICAgICAgICAgICAgICAg
IHJ1bl9xW3AtPnJ1bl9xXSA9IE5VTEw7DQorCQllbHNlDQorCQkgICAgICAg
IHJ1bl9xW3AtPnJ1bl9xXSA9IG5leHQ7DQorCX0NCiB9DQogDQotc3RhdGlj
IGlubGluZSB2b2lkIG1vdmVfbGFzdF9ydW5xdWV1ZShzdHJ1Y3QgdGFza19z
dHJ1Y3QgKiBwKQ0KK3N0YXRpYyBpbmxpbmUgdm9pZCBzd2l0Y2hfcnVucXVl
dWVzKHN0cnVjdCB0YXNrX3N0cnVjdCAqIHAsIHVuc2lnbmVkIGludCBuZXdf
cnVuX3EpDQogew0KLQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQgPSBwLT5u
ZXh0X3J1bjsNCiAJc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2ID0gcC0+cHJl
dl9ydW47DQorCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCA9IHAtPm5leHRf
cnVuOw0KKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnFfaGVhZCA9IHJ1bl9xW3At
PnJ1bl9xXTsNCiANCi0JLyogcmVtb3ZlIGZyb20gbGlzdCAqLw0KLQluZXh0
LT5wcmV2X3J1biA9IHByZXY7DQorCS8qIHJlbW92ZSBsaW5rcyB0byBwICov
DQogCXByZXYtPm5leHRfcnVuID0gbmV4dDsNCi0JLyogYWRkIGJhY2sgdG8g
bGlzdCAqLw0KLQlwLT5uZXh0X3J1biA9ICZpbml0X3Rhc2s7DQotCXByZXYg
PSBpbml0X3Rhc2sucHJldl9ydW47DQotCWluaXRfdGFzay5wcmV2X3J1biA9
IHA7DQotCXAtPnByZXZfcnVuID0gcHJldjsNCi0JcHJldi0+bmV4dF9ydW4g
PSBwOw0KKwluZXh0LT5wcmV2X3J1biA9IHByZXY7DQorICAgICAgIAkvKiBp
ZiBwIHdhcyB0aGUgcV9oZWFkLCByZXNldCBxX2hlYWQgKi8NCisJaWYgKHAg
PT0gcV9oZWFkKSB7DQorCSAgICAgICAgaWYgKG5leHQgPT0gcCkNCisJICAg
ICAgICAgICAgICAgIHJ1bl9xW3AtPnJ1bl9xXSA9IE5VTEw7DQorCQllbHNl
DQorCQkgICAgICAgIHJ1bl9xW3AtPnJ1bl9xXSA9IG5leHQ7DQorCX0NCisN
CisJcC0+cnVuX3EgPSBuZXdfcnVuX3E7DQorCXFfaGVhZCA9IHJ1bl9xW3At
PnJ1bl9xXTsNCisJaWYgKHFfaGVhZCA9PSBOVUxMKSB7DQorCSAgcnVuX3Fb
cC0+cnVuX3FdID0gcDsNCisJICBwLT5wcmV2X3J1biA9IHA7DQorCSAgcC0+
bmV4dF9ydW4gPSBwOw0KKwl9IGVsc2Ugew0KKwkgIHAtPnByZXZfcnVuID0g
cV9oZWFkLT5wcmV2X3J1bjsNCisJICBwLT5uZXh0X3J1biA9IHFfaGVhZDsN
CisJICBxX2hlYWQtPnByZXZfcnVuLT5uZXh0X3J1biA9IHA7DQorCSAgcV9o
ZWFkLT5wcmV2X3J1biA9IHA7DQorCX0NCisJcC0+bGFzdF9ydW4gPSBqaWZm
aWVzOw0KKwlwLT5jb3VudGVyID0gREVGX1BSSU9SSVRZOw0KIH0NCiANCiAv
Kg0KQEAgLTIwNCw3ICsyNDcsNyBAQA0KICAqLw0KIGlubGluZSB2b2lkIHdh
a2VfdXBfcHJvY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKiBwKQ0KIHsNCi0J
dW5zaWduZWQgbG9uZyBmbGFnczsNCisgICAgICAgIHVuc2lnbmVkIGxvbmcg
ZmxhZ3M7DQogDQogCXNhdmVfZmxhZ3MoZmxhZ3MpOw0KIAljbGkoKTsNCkBA
IC0yNTUsOCArMjk4LDggQEANCiAJICogcnVucXVldWUgKHRha2luZyBwcmlv
cml0aWVzIHdpdGhpbiBwcm9jZXNzZXMNCiAJICogaW50byBhY2NvdW50KS4N
CiAJICovDQotCWlmIChwLT5wb2xpY3kgIT0gU0NIRURfT1RIRVIpDQotCQly
ZXR1cm4gMTAwMCArIHAtPnJ0X3ByaW9yaXR5Ow0KKwlpZiAocC0+cG9saWN5
ICE9IFNDSEVEX0FEQVBUSVZFKQ0KKwkgICAgICAgIHJldHVybiAxMDAwICsg
cC0+cnRfcHJpb3JpdHk7DQogDQogCS8qDQogCSAqIEdpdmUgdGhlIHByb2Nl
c3MgYSBmaXJzdC1hcHByb3hpbWF0aW9uIGdvb2RuZXNzIHZhbHVlDQpAQCAt
Mjg0LDI1ICszMjcsMTkgQEANCiB9DQogDQogLyoNCi0gKiAgJ3NjaGVkdWxl
KCknIGlzIHRoZSBzY2hlZHVsZXIgZnVuY3Rpb24uIEl0J3MgYSB2ZXJ5IHNp
bXBsZSBhbmQgbmljZQ0KLSAqIHNjaGVkdWxlcjogaXQncyBub3QgcGVyZmVj
dCwgYnV0IGNlcnRhaW5seSB3b3JrcyBmb3IgbW9zdCB0aGluZ3MuDQotICoN
Ci0gKiBUaGUgZ290byBpcyAiaW50ZXJlc3RpbmciLg0KLSAqDQotICogICBO
T1RFISEgIFRhc2sgMCBpcyB0aGUgJ2lkbGUnIHRhc2ssIHdoaWNoIGdldHMg
Y2FsbGVkIHdoZW4gbm8gb3RoZXINCi0gKiB0YXNrcyBjYW4gcnVuLiBJdCBj
YW4gbm90IGJlIGtpbGxlZCwgYW5kIGl0IGNhbm5vdCBzbGVlcC4gVGhlICdz
dGF0ZScNCi0gKiBpbmZvcm1hdGlvbiBpbiB0YXNrWzBdIGlzIG5ldmVyIHVz
ZWQuDQorICogIHNjaGVkdWxlKCkgZG9lcyBydW4tcXVldWUgbWFpbnRlbmFu
Y2UsIGFuZCBwaWNrcyBhIHByb2Nlc3MgdG8gcnVuLg0KKyAqICBJdCBpcyBh
IFFOWC1saWtlIHNjaGVkdWxlciB0aGF0IHVzZXMgMzIgc2VwYXJhdGUgcnVu
LXF1ZXVlcy4NCiAgKi8NCiBhc21saW5rYWdlIHZvaWQgc2NoZWR1bGUodm9p
ZCkNCiB7DQotCWludCBjOw0KKwlzdGF0aWMgaW50IG5leHRfbWFpbnRlbmFu
Y2UgPSAwOw0KKwlpbnQgYywgcTsNCiAJc3RydWN0IHRhc2tfc3RydWN0ICog
cDsNCiAJc3RydWN0IHRhc2tfc3RydWN0ICogcHJldiwgKiBuZXh0Ow0KIAl1
bnNpZ25lZCBsb25nIHRpbWVvdXQgPSAwOw0KIAlpbnQgdGhpc19jcHU9c21w
X3Byb2Nlc3Nvcl9pZCgpOw0KIA0KLS8qIGNoZWNrIGFsYXJtLCB3YWtlIHVw
IGFueSBpbnRlcnJ1cHRpYmxlIHRhc2tzIHRoYXQgaGF2ZSBnb3QgYSBzaWdu
YWwgKi8NCi0NCisJLyogY2hlY2sgYWxhcm0sIHdha2UgdXAgYW55IGludGVy
cnVwdGlibGUgdGFza3MgdGhhdCBoYXZlIGdvdCBhIHNpZ25hbCAqLw0KIAlp
ZiAoaW50cl9jb3VudCkNCiAJCWdvdG8gc2NoZWR1bGluZ19pbl9pbnRlcnJ1
cHQ7DQogDQpAQCAtMzIwLDggKzM1NywxMSBAQA0KIAkvKiBtb3ZlIGFuIGV4
aGF1c3RlZCBSUiBwcm9jZXNzIHRvIGJlIGxhc3QuLiAqLw0KIAlpZiAoIXBy
ZXYtPmNvdW50ZXIgJiYgcHJldi0+cG9saWN5ID09IFNDSEVEX1JSKSB7DQog
CQlwcmV2LT5jb3VudGVyID0gcHJldi0+cHJpb3JpdHk7DQotCQltb3ZlX2xh
c3RfcnVucXVldWUocHJldik7DQorCSAgICAgICAgcnVuX3FbcHJldi0+cnVu
X3FdID0gcHJldi0+bmV4dF9ydW47DQogCX0NCisJLyogbW92ZSB0aGUgbGFz
dCBwcm9jZXNzIHJ1biB0byB0aGUgZW5kIG9mIHRoZSBxdWV1ZSAqLw0KKwlp
ZiAocHJldi0+cGlkICYmIHByZXYtPnBvbGljeSAhPSBTQ0hFRF9GSUZPKQ0K
KwkgICAgICAgIHJ1bl9xW3ByZXYtPnJ1bl9xXSA9IHByZXYtPm5leHRfcnVu
Ow0KIAlzd2l0Y2ggKHByZXYtPnN0YXRlKSB7DQogCQljYXNlIFRBU0tfSU5U
RVJSVVBUSUJMRToNCiAJCQlpZiAocHJldi0+c2lnbmFsICYgfnByZXYtPmJs
b2NrZWQpDQpAQCAtMzM2LDExICszNzYsNDIgQEANCiAJCQl9DQogCQlkZWZh
dWx0Og0KIAkJCWRlbF9mcm9tX3J1bnF1ZXVlKHByZXYpOw0KKwkJCXByZXYt
PnJ1bl9xID0gcHJldi0+cnVuX3FfbWluOw0KKwkJCXByZXYtPmNvdW50ZXIg
PSBERUZfUFJJT1JJVFk7DQogCQljYXNlIFRBU0tfUlVOTklORzoNCiAJfQ0K
LQlwID0gaW5pdF90YXNrLm5leHRfcnVuOw0KIAlzdGkoKTsNCi0JDQorDQor
CS8qDQorCSAqIFRha2UgY2FyZSBvZiByZS1uaWNlZCBwcm9jZXNzZXMsIHBy
b21vdGUgc3RhcnZpbmcgcHJvY2Vzc2VzDQorCSAqLw0KKwlpZiAoamlmZmll
cyA+PSBuZXh0X21haW50ZW5hbmNlKSB7DQorCSAgICAgICAgZm9yX2VhY2hf
dGFzayhwKSB7DQorCQkgICAgICAgIGlmIChwLT5ydW5fcV9zdyA8IE5SX1JV
Tl9RVUVVRVMpIHsNCisJCQkgICAgICAgIGNsaSgpOw0KKwkJCQlpZiAocC0+
bmV4dF9ydW4pIHsNCisJCQkJICAgICAgICBwLT5ydW5fcV9taW4gPSBwLT5y
dW5fcV9zdzsNCisJCQkJICAgICAgICBpZiAocC0+cnVuX3EgIT0gcC0+cnVu
X3Ffc3cpDQorCQkJCQkgICAgICAgIHN3aXRjaF9ydW5xdWV1ZXMocCwgcC0+
cnVuX3Ffc3cpOw0KKwkJCQl9IGVsc2Ugew0KKwkJCQkJcC0+cnVuX3FfbWlu
ID0gcC0+cnVuX3EgPSBwLT5ydW5fcV9zdzsNCisJCQkJfQ0KKwkJCQlwLT5y
dW5fcV9zdyA9IE5SX1JVTl9RVUVVRVM7DQorCQkJCXN0aSgpOw0KKwkJICAg
ICAgICB9IGVsc2UgaWYgKHAtPm5leHRfcnVuICYmDQorCQkJCSAgIChqaWZm
aWVzIC0gcC0+bGFzdF9ydW4gPj0gSFopICYmDQorCQkJCSAgIChwLT5ydW5f
cSA+IHAtPnJ1bl9xX21pbikgJiYNCisJCQkJICAgcHJldi0+cGlkICYmDQor
CQkJCSAgIChwcmV2LT5ydW5fcSA8IHAtPnJ1bl9xKSkNCisJCQl7DQorCQkJ
ICAgICAgICBjbGkoKTsNCisJCQkJc3dpdGNoX3J1bnF1ZXVlcyhwLCBwLT5y
dW5fcSAtIDEpOw0KKwkJCQlzdGkoKTsNCisJCQl9DQorCQl9DQorCQluZXh0
X21haW50ZW5hbmNlID0gamlmZmllcyArICg1MDAqSFovMTAwMCk7DQorCX0N
CisNCiAjaWZkZWYgX19TTVBfXw0KIAkvKg0KIAkgKglUaGlzIGlzIHNhZmUg
YXMgd2UgZG8gbm90IHBlcm1pdCByZS1lbnRyeSBvZiBzY2hlZHVsZSgpDQpA
QCAtMzQ5LDM1ICs0MjAsNTcgQEANCiAjZGVmaW5lIGlkbGVfdGFzayAodGFz
a1tjcHVfbnVtYmVyX21hcFt0aGlzX2NwdV1dKQ0KICNlbHNlDQogI2RlZmlu
ZSBpZGxlX3Rhc2sgKCZpbml0X3Rhc2spDQotI2VuZGlmCQ0KKyNlbmRpZg0K
IA0KIC8qDQogICogTm90ZSEgdGhlcmUgbWF5IGFwcGVhciBuZXcgdGFza3Mg
b24gdGhlIHJ1bi1xdWV1ZSBkdXJpbmcgdGhpcywgYXMNCiAgKiBpbnRlcnJ1
cHRzIGFyZSBlbmFibGVkLiBIb3dldmVyLCB0aGV5IHdpbGwgYmUgcHV0IG9u
IGZyb250IG9mIHRoZQ0KICAqIGxpc3QsIHNvIG91ciBsaXN0IHN0YXJ0aW5n
IGF0ICJwIiBpcyBlc3NlbnRpYWxseSBmaXhlZC4NCiAgKi8NCi0vKiB0aGlz
IGlzIHRoZSBzY2hlZHVsZXIgcHJvcGVyOiAqLw0KKyAgICAgICAgLyogcGlj
ayBhIHByb2Nlc3MgKi8NCiAJYyA9IC0xMDAwOw0KIAluZXh0ID0gaWRsZV90
YXNrOw0KLQl3aGlsZSAocCAhPSAmaW5pdF90YXNrKSB7DQotCQlpbnQgd2Vp
Z2h0ID0gZ29vZG5lc3MocCwgcHJldiwgdGhpc19jcHUpOw0KLQkJaWYgKHdl
aWdodCA+IGMpDQotCQkJYyA9IHdlaWdodCwgbmV4dCA9IHA7DQotCQlwID0g
cC0+bmV4dF9ydW47DQorCWZvciAocSA9IDA7IHEgPCBOUl9SVU5fUVVFVUVT
OyBxKyspIHsNCisJICAgICAgICBwID0gcnVuX3FbcV07DQorCQlpZiAoIXAp
IGNvbnRpbnVlOw0KKwkJZG8gew0KKwkJICAgICAgICBpbnQgd2VpZ2h0ID0g
Z29vZG5lc3MocCwgcHJldiwgdGhpc19jcHUpOw0KKwkJICAgICAgICBpZiAo
d2VpZ2h0ID4gYykgew0KKwkJCQljID0gd2VpZ2h0Ow0KKwkJCSAgICAgICAg
bmV4dCA9IHA7DQorCQkgICAgICAgIH0NCisJCQlwID0gcC0+bmV4dF9ydW47
DQorCQl9IHdoaWxlIChwICE9IHJ1bl9xW3FdKTsNCisJCWlmICghYykgew0K
KwkJICAgICAgICBwID0gcnVuX3FbcV07DQorCQkJZG8gew0KKwkJCSAgICAg
ICAgcC0+Y291bnRlciA9IERFRl9QUklPUklUWTsNCisJCQkJcCA9IHAtPm5l
eHRfcnVuOw0KKwkJCX0gd2hpbGUgKHAgIT0gcnVuX3FbcV0pOw0KKwkJfQ0K
KwkJaWYgKGMgPiAtMTAwMCkgYnJlYWs7DQogCX0NCi0NCi0JLyogaWYgYWxs
IHJ1bm5hYmxlIHByb2Nlc3NlcyBoYXZlICJjb3VudGVyID09IDAiLCByZS1j
YWxjdWxhdGUgY291bnRlcnMgKi8NCi0JaWYgKCFjKSB7DQotCQlmb3JfZWFj
aF90YXNrKHApDQotCQkJcC0+Y291bnRlciA9IChwLT5jb3VudGVyID4+IDEp
ICsgcC0+cHJpb3JpdHk7DQorCW5leHQtPmxhc3RfcnVuID0gamlmZmllczsN
CisJLyogUG9zc2libHkgZGVtb3RlIHRoZSBwcmV2aW91cyB0YXNrICovDQor
CWlmIChwcmV2LT5waWQgJiYgbmV4dC0+cGlkICYmDQorCSAgICBwcmV2LT5u
ZXh0X3J1biAmJg0KKwkgICAgIXByZXYtPmNvdW50ZXIgJiYNCisJICAgIChu
ZXh0ICE9IHByZXYpICYmDQorCSAgICAocSA9PSBwcmV2LT5ydW5fcSkgJiYN
CisJICAgIChxIDwgTlJfUlVOX1FVRVVFUyAtIDIpICYmDQorCSAgICAocHJl
di0+cG9saWN5ID09IFNDSEVEX0FEQVBUSVZFKSkNCisJew0KKwkgICAgICAg
IGNsaSgpOw0KKwkJc3dpdGNoX3J1bnF1ZXVlcyhwcmV2LCBwcmV2LT5ydW5f
cSArIDEpOw0KKwkJc3RpKCk7DQogCX0NCisNCiAjaWZkZWYgX19TTVBfXw0K
IAkvKg0KIAkgKglBbGxvY2F0ZSBwcm9jZXNzIHRvIENQVQ0KIAkgKi8NCi0J
IA0KLQkgbmV4dC0+cHJvY2Vzc29yID0gdGhpc19jcHU7DQotCSBuZXh0LT5s
YXN0X3Byb2Nlc3NvciA9IHRoaXNfY3B1Ow0KKwluZXh0LT5wcm9jZXNzb3Ig
PSB0aGlzX2NwdTsNCisJbmV4dC0+bGFzdF9wcm9jZXNzb3IgPSB0aGlzX2Nw
dTsNCiAjZW5kaWYJIA0KICNpZmRlZiBfX1NNUF9QUk9GX18gDQogCS8qIG1h
cmsgcHJvY2Vzc29yIHJ1bm5pbmcgYW4gaWRsZSB0aHJlYWQgKi8NCkBAIC0x
MTIxLDcgKzEyMTQsNyBAQA0KIAlkb19wcm9jZXNzX3RpbWVzKHAsIHVzZXIs
IHN5c3RlbSk7DQogCWRvX2l0X3ZpcnQocCwgdXNlcik7DQogCWRvX2l0X3By
b2YocCwgdGlja3MpOw0KLX0JDQorfQ0KIA0KIHN0YXRpYyB2b2lkIHVwZGF0
ZV9wcm9jZXNzX3RpbWVzKHVuc2lnbmVkIGxvbmcgdGlja3MsIHVuc2lnbmVk
IGxvbmcgc3lzdGVtKQ0KIHsNCkBAIC0xMTM0LDcgKzEyMjcsNyBAQA0KIAkJ
CXAtPmNvdW50ZXIgPSAwOw0KIAkJCW5lZWRfcmVzY2hlZCA9IDE7DQogCQl9
DQotCQlpZiAocC0+cHJpb3JpdHkgPCBERUZfUFJJT1JJVFkpDQorCQlpZiAo
cC0+cnVuX3EgPiBERUZfUlVOX1FVRVVFKQ0KIAkJCWtzdGF0LmNwdV9uaWNl
ICs9IHVzZXI7DQogCQllbHNlDQogCQkJa3N0YXQuY3B1X3VzZXIgKz0gdXNl
cjsNCkBAIC0xMzgwLDE2ICsxNDczLDE2IEBADQogCWlmIChwb2xpY3kgPCAw
KQ0KIAkJcG9saWN5ID0gcC0+cG9saWN5Ow0KIAllbHNlIGlmIChwb2xpY3kg
IT0gU0NIRURfRklGTyAmJiBwb2xpY3kgIT0gU0NIRURfUlIgJiYNCi0JCSBw
b2xpY3kgIT0gU0NIRURfT1RIRVIpDQorCQkgcG9saWN5ICE9IFNDSEVEX0FE
QVBUSVZFKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogCQ0KIAkvKg0KIAkgKiBW
YWxpZCBwcmlvcml0aWVzIGZvciBTQ0hFRF9GSUZPIGFuZCBTQ0hFRF9SUiBh
cmUgMS4uOTksIHZhbGlkDQotCSAqIHByaW9yaXR5IGZvciBTQ0hFRF9PVEhF
UiBpcyAwLg0KKwkgKiBwcmlvcml0eSBmb3IgU0NIRURfQURBUFRJVkUgaXMg
MC4NCiAJICovDQogCWlmIChscC5zY2hlZF9wcmlvcml0eSA8IDAgfHwgbHAu
c2NoZWRfcHJpb3JpdHkgPiA5OSkNCiAJCXJldHVybiAtRUlOVkFMOw0KLQlp
ZiAoKHBvbGljeSA9PSBTQ0hFRF9PVEhFUikgIT0gKGxwLnNjaGVkX3ByaW9y
aXR5ID09IDApKQ0KKwlpZiAoKHBvbGljeSA9PSBTQ0hFRF9BREFQVElWRSkg
IT0gKGxwLnNjaGVkX3ByaW9yaXR5ID09IDApKQ0KIAkJcmV0dXJuIC1FSU5W
QUw7DQogDQogCWlmICgocG9saWN5ID09IFNDSEVEX0ZJRk8gfHwgcG9saWN5
ID09IFNDSEVEX1JSKSAmJiAhc3VzZXIoKSkNCkBAIC0xNDAwLDkgKzE0OTMs
MTAgQEANCiANCiAJcC0+cG9saWN5ID0gcG9saWN5Ow0KIAlwLT5ydF9wcmlv
cml0eSA9IGxwLnNjaGVkX3ByaW9yaXR5Ow0KKwlwLT5ydW5fcV9zdyA9IHAt
PnJ1bl9xX21pbjsNCiAJY2xpKCk7DQotCWlmIChwLT5uZXh0X3J1bikNCi0J
CW1vdmVfbGFzdF9ydW5xdWV1ZShwKTsNCisgICAgICAgIGlmIChwLT5uZXh0
X3J1bikNCisgICAgICAgICAgICAgICAgcnVuX3FbcC0+cnVuX3FdID0gcC0+
bmV4dF9ydW47DQogCXN0aSgpOw0KIAluZWVkX3Jlc2NoZWQgPSAxOw0KIAly
ZXR1cm4gMDsNCkBAIC0xNDYwLDEwICsxNTU0LDEwIEBADQogew0KIAljbGko
KTsNCiAJaWYgKGN1cnJlbnQtPm5leHRfcnVuKSB7DQotCQltb3ZlX2xhc3Rf
cnVucXVldWUoY3VycmVudCk7IA0KLQkJY3VycmVudC0+Y291bnRlciA9IDA7
DQotCQluZWVkX3Jlc2NoZWQgPSAxOw0KLQl9DQorICAgICAgICAgICAgICAg
IHJ1bl9xW2N1cnJlbnQtPnJ1bl9xXSA9IGN1cnJlbnQtPm5leHRfcnVuOw0K
KyAgICAgICAgICAgICAgICBjdXJyZW50LT5jb3VudGVyID0gMDsNCisgICAg
ICAgICAgICAgICAgbmVlZF9yZXNjaGVkID0gMTsNCisgICAgICAgIH0NCiAJ
c3RpKCk7DQogCXJldHVybiAwOw0KIH0NCkBAIC0xNDcxLDExICsxNTY1LDEx
IEBADQogYXNtbGlua2FnZSBpbnQgc3lzX3NjaGVkX2dldF9wcmlvcml0eV9t
YXgoaW50IHBvbGljeSkNCiB7DQogCXN3aXRjaCAocG9saWN5KSB7DQorCSAg
ICAgIGNhc2UgU0NIRURfQURBUFRJVkU6DQorCQlyZXR1cm4gMDsNCiAJICAg
ICAgY2FzZSBTQ0hFRF9GSUZPOg0KIAkgICAgICBjYXNlIFNDSEVEX1JSOg0K
IAkJcmV0dXJuIDk5Ow0KLQkgICAgICBjYXNlIFNDSEVEX09USEVSOg0KLQkJ
cmV0dXJuIDA7DQogCX0NCiANCiAJcmV0dXJuIC1FSU5WQUw7DQpAQCAtMTQ4
NCwxMSArMTU3OCwxMSBAQA0KIGFzbWxpbmthZ2UgaW50IHN5c19zY2hlZF9n
ZXRfcHJpb3JpdHlfbWluKGludCBwb2xpY3kpDQogew0KIAlzd2l0Y2ggKHBv
bGljeSkgew0KKwkgICAgICBjYXNlIFNDSEVEX0FEQVBUSVZFOg0KKwkJcmV0
dXJuIDA7DQogCSAgICAgIGNhc2UgU0NIRURfRklGTzoNCiAJICAgICAgY2Fz
ZSBTQ0hFRF9SUjoNCiAJCXJldHVybiAxOw0KLQkgICAgICBjYXNlIFNDSEVE
X09USEVSOg0KLQkJcmV0dXJuIDA7DQogCX0NCiANCiAJcmV0dXJuIC1FSU5W
QUw7DQpAQCAtMTU1NSw3ICsxNjQ5LDcgQEANCiAJCXJldHVybiAtRUlOVkFM
Ow0KIA0KIAlpZiAodC50dl9zZWMgPT0gMCAmJiB0LnR2X25zZWMgPD0gMjAw
MDAwMEwgJiYNCi0JICAgIGN1cnJlbnQtPnBvbGljeSAhPSBTQ0hFRF9PVEhF
Uikgew0KKwkgICAgY3VycmVudC0+cG9saWN5ICE9IFNDSEVEX0FEQVBUSVZF
KSB7DQogCQkvKg0KIAkJICogU2hvcnQgZGVsYXkgcmVxdWVzdHMgdXAgdG8g
MiBtcyB3aWxsIGJlIGhhbmRsZWQgd2l0aA0KIAkJICogaGlnaCBwcmVjaXNp
b24gYnkgYSBidXN5IHdhaXQgZm9yIGFsbCByZWFsLXRpbWUgcHJvY2Vzc2Vz
Lg0KQEAgLTE2NDUsNyArMTczOSw3IEBADQogCSAqCVdlIGhhdmUgdG8gZG8g
YSBsaXR0bGUgbWFnaWMgdG8gZ2V0IHRoZSBmaXJzdA0KIAkgKglwcm9jZXNz
IHJpZ2h0IGluIFNNUCBtb2RlLg0KIAkgKi8NCi0JaW50IGNwdT1zbXBfcHJv
Y2Vzc29yX2lkKCk7DQorCWludCBpLCBjcHU9c21wX3Byb2Nlc3Nvcl9pZCgp
Ow0KICNpZm5kZWYgX19TTVBfXwkNCiAJY3VycmVudF9zZXRbY3B1XT0maW5p
dF90YXNrOw0KICNlbHNlDQpAQCAtMTY1Niw0ICsxNzUwLDggQEANCiAJaW5p
dF9iaChUSU1FUl9CSCwgdGltZXJfYmgpOw0KIAlpbml0X2JoKFRRVUVVRV9C
SCwgdHF1ZXVlX2JoKTsNCiAJaW5pdF9iaChJTU1FRElBVEVfQkgsIGltbWVk
aWF0ZV9iaCk7DQorDQorCWZvciAoaSA9IDA7IGkgPCBOUl9SVU5fUVVFVUVT
OyBpKyspDQorCSAgICAgICAgcnVuX3FbaV0gPSBOVUxMOw0KKwlwcmludGso
IlFOWC1zdHlsZSBzY2hlZHVsaW5nIHYxLjAzIDxhbWNrZWVAcG9ib3hlcy5j
b20+XG4iKTsNCiB9DQotLS0gbGludXgva2VybmVsL2ZvcmsuYy5vcmlnCU1v
biBKdWwgMjggMTM6MTM6MzUgMTk5Nw0KKysrIGxpbnV4L2tlcm5lbC9mb3Jr
LmMJTW9uIEp1bCAyOCAxNDowMTozOSAxOTk3DQpAQCAtMjY0LDYgKzI2NCw4
IEBADQogCXAtPmxvY2tfZGVwdGggPSAxOw0KICNlbmRpZg0KIAlwLT5zdGFy
dF90aW1lID0gamlmZmllczsNCisgICAgICAgIHAtPnBvbGljeSA9IFNDSEVE
X0FEQVBUSVZFOw0KKwlwLT5ydW5fcV9zdyA9IE5SX1JVTl9RVUVVRVM7DQog
CXRhc2tbbnJdID0gcDsNCiAJU0VUX0xJTktTKHApOw0KIAlucl90YXNrcysr
Ow0KLS0tIGxpbnV4L21tL3Ztc2Nhbi5jLm9yaWcJTW9uIEp1bCAyOCAyMjoz
MDo1MCAxOTk3DQorKysgbGludXgvbW0vdm1zY2FuLmMJTW9uIEp1bCAyOCAy
MjozMzoxOCAxOTk3DQpAQCAtNDIzLDkgKzQyMyw3IEBADQogDQogCS8qIEdp
dmUga3N3YXBkIGEgcmVhbHRpbWUgcHJpb3JpdHkuICovDQogCWN1cnJlbnQt
PnBvbGljeSA9IFNDSEVEX0ZJRk87DQotCWN1cnJlbnQtPnByaW9yaXR5ID0g
MzI7ICAvKiBGaXhtZSAtLS0gd2UgbmVlZCB0byBzdGFuZGFyZGlzZSBvdXIN
Ci0JCQkJICAgIG5hbWluZ3MgZm9yIFBPU0lYLjQgcmVhbHRpbWUgc2NoZWR1
bGluZw0KLQkJCQkgICAgcHJpb3JpdGllcy4gICovDQorCWN1cnJlbnQtPnJ1
bl9xX3N3ID0gMDsNCiANCiAJaW5pdF9zd2FwX3RpbWVyKCk7DQogCQ0KLS0t
IGxpbnV4L2luY2x1ZGUvbGludXgvc2NoZWQuaC5vcmlnCU1vbiBKdWwgMjgg
MTM6MTY6MTEgMTk5Nw0KKysrIGxpbnV4L2luY2x1ZGUvbGludXgvc2NoZWQu
aAlNb24gSnVsIDI4IDAyOjE2OjU0IDE5OTcNCkBAIC04NywxMCArODcsMTMg
QEANCiAjZGVmaW5lIFRBU0tfU1RPUFBFRAkJNA0KICNkZWZpbmUgVEFTS19T
V0FQUElORwkJNQ0KIA0KKyNkZWZpbmUgTlJfUlVOX1FVRVVFUwkJMzIJLyog
dGhlIHNjaGVkdWxlciB1c2VzIDMyIHJ1bi1xdWV1ZXMgKi8NCisjZGVmaW5l
IERFRl9SVU5fUVVFVUUJCTE1CS8qIGRlZmF1bHQgcnVuLXF1ZXVlICovDQor
DQogLyoNCiAgKiBTY2hlZHVsaW5nIHBvbGljaWVzDQogICovDQotI2RlZmlu
ZSBTQ0hFRF9PVEhFUgkJMA0KKyNkZWZpbmUgU0NIRURfQURBUFRJVkUJCTAN
CiAjZGVmaW5lIFNDSEVEX0ZJRk8JCTENCiAjZGVmaW5lIFNDSEVEX1JSCQky
DQogDQpAQCAtMjQ0LDYgKzI0Nyw5IEBADQogCXN0cnVjdCBtbV9zdHJ1Y3Qg
Km1tOw0KIC8qIHNpZ25hbCBoYW5kbGVycyAqLw0KIAlzdHJ1Y3Qgc2lnbmFs
X3N0cnVjdCAqc2lnOw0KKy8qIFFOWC1zdHlsZSBzY2hlZHVsZXIgKi8NCisg
ICAgICAgIHVuc2lnbmVkIGxvbmcgbGFzdF9ydW47DQorICAgICAgICB1bnNp
Z25lZCBpbnQgcnVuX3EsIHJ1bl9xX21pbiwgcnVuX3Ffc3c7DQogI2lmZGVm
IF9fU01QX18NCiAJaW50IHByb2Nlc3NvcjsNCiAJaW50IGxhc3RfcHJvY2Vz
c29yOw0KQEAgLTI3NSw3ICsyODEsNyBAQA0KICAqLw0KICNkZWZpbmUgX1NU
S19MSU0JKDgqMTAyNCoxMDI0KQ0KIA0KLSNkZWZpbmUgREVGX1BSSU9SSVRZ
CSgyMCpIWi8xMDApCS8qIDIwMCBtcyB0aW1lIHNsaWNlcyAqLw0KKyNkZWZp
bmUgREVGX1BSSU9SSVRZCSgyMDAqSFovMTAwMCkJLyogMjAwIG1zIHRpbWUg
c2xpY2VzICovDQogDQogLyoNCiAgKiAgSU5JVF9UQVNLIGlzIHVzZWQgdG8g
c2V0IHVwIHRoZSBmaXJzdCB0YXNrIHRhYmxlLCB0b3VjaCBhdA0KQEAgLTI5
Myw3ICsyOTksNyBAQA0KIC8qIHN1cHBsIGdycHMqLyB7Tk9HUk9VUCx9LCBc
DQogLyogcHJvYyBsaW5rcyovICZpbml0X3Rhc2ssJmluaXRfdGFzayxOVUxM
LE5VTEwsTlVMTCxOVUxMLCBcDQogLyogdWlkIGV0YyAqLwkwLDAsMCwwLDAs
MCwwLDAsIFwNCi0vKiB0aW1lb3V0ICovCTAsU0NIRURfT1RIRVIsMCwwLDAs
MCwwLDAsMCwgXA0KKy8qIHRpbWVvdXQgKi8JMCxTQ0hFRF9BREFQVElWRSww
LDAsMCwwLDAsMCwwLCBcDQogLyogdGltZXIgKi8JeyBOVUxMLCBOVUxMLCAw
LCAwLCBpdF9yZWFsX2ZuIH0sIFwNCiAvKiB1dGltZSAqLwkwLDAsMCwwLDAs
IFwNCiAvKiBmbHQgKi8JMCwwLDAsMCwwLDAsIFwNCkBAIC0zMDksNiArMzE1
LDcgQEANCiAvKiBmaWxlcyAqLwkmaW5pdF9maWxlcywgXA0KIC8qIG1tICov
CSZpbml0X21tLCBcDQogLyogc2lnbmFscyAqLwkmaW5pdF9zaWduYWxzLCBc
DQorLyogUU5YIHNjaGVkICovIDAsIERFRl9SVU5fUVVFVUUsIERFRl9SVU5f
UVVFVUUsIE5SX1JVTl9RVUVVRVMgXA0KIH0NCiANCiBleHRlcm4gc3RydWN0
ICAgbW1fc3RydWN0IGluaXRfbW07DQo=
--12583424-2048963288-870156840=:708
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="QNX-scheduler-2.0.31-pre2-3.patch.README"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.970729001400.708D@titan.acua.org>
Content-Description:

ICAgICAgICAgICAgICAgICAgIFFOWC1zdHlsZSBTY2hlZHVsaW5nIHYxLjAz
IGZvciBMaW51eCAyLjANCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnkNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBZGFtIE1jS2VlDQoNCg0KSU5UUk9EVUNUSU9ODQoNClRoaXMgcGF0Y2gg
cHJvdmlkZXMgUU5YLXN0eWxlIHNjaGVkdWxpbmcgZm9yIExpbnV4IDIuMC4g
IFRoZSBpbnRlbnQgaXMgdG8NCnByb3ZpZGUgbW9yZSBmbGV4aWJsZSBhbmQg
cG93ZXJmdWwgc2NoZWR1bGluZywgYW5kIHRvIHByb3ZpZGUgaW1wcm92ZWQN
CmludGVyYWN0aXZlIHBlcmZvcm1hbmNlIHVuZGVyIGhlYXZ5IENQVSBsb2Fk
LiAgVGhpcyBzY2hlZHVsZXIgZG9lcyBub3QgcHJvdmlkZQ0KaW5jcmVhc2Vk
IHRocm91Z2hwdXQgaG93ZXZlci4gIEluIGZhY3QsIHRoZXJlIGlzIGEgdmVy
eSBzbWFsbCBwcmljZSB0byBwYXkgaW4NCnRlcm1zIG9mIHRocm91Z2hwdXQg
aW4gb3JkZXIgdG8gYWNoaWV2ZSB0aGUgYWZvcmVtZW50aW9uZWQgZ29hbHMu
ICBTbyB0aGF0IHlvdQ0KY2FuIGFwcHJlY2lhdGUgZXhhY3RseSB3aGF0IHRo
ZSBwYXRjaCBkb2VzLCBJIHdpbGwgZ2l2ZSBhIChvdmVyc2ltcGxpZmllZCkN
CmV4cGxhbmF0aW9uIG9mIGhvdyBzY2hlZHVsaW5nIGlzIG5vcm1hbGx5IGRv
bmUgdW5kZXIgTGludXggMi4wLCBmb2xsb3dlZCBieSBhDQpkZXNjcmlwdGlv
biBvZiB0aGUgUU5YIHNjaGVkdWxlciAoYXMgaW1wbGVtZW50ZWQpLiAgSWYg
eW91IHVzZSB0aGlzIHBhdGNoLCB5b3UNCndpbGwgbmVlZCB0byByZS10aGlu
ayBob3cgeW91IHJlLW5pY2UgdGFza3MsIHNvIGEgYnJpZWYgZGlzY3Vzc2lv
biBvZg0KcmUtbmljaW5nIHRhc2tzIGlzIGdpdmVuLg0KDQoNCk5PUk1BTCBT
Q0hFRFVMSU5HIFVOREVSIExJTlVYIDIuMA0KDQpUaGVyZSBpcyBhIHNpbmds
ZSBydW4tcXVldWUuICBFYWNoIHRhc2sgbWF5IGJlIGFzc2lnbmVkIGEgcHJp
b3JpdHkgb3INCiJuaWNlbmVzcyIgd2hpY2ggd2lsbCBkZXRlcm1pbmUgaG93
IGxvbmcgYSB0aW1lc2xpY2UgaXQgZ2V0cy4gIEZvciBleGFtcGxlLCBpZg0K
eW91IGdpdmUgYSB0YXNrIGEgbmljZW5lc3Mgb2YgLTIwLCB0aGUga2VybmVs
IHdpbGwgbm90IGRpcmVjdGx5IHVzZSB0aGUgLTIwLg0KYnV0IHdpbGwgaW5z
dGVhZCB1c2UgdGhpcyBudW1iZXIgdG8gZGV0ZXJtaW5lIGhvdyBsb25nL29m
dGVuIHRoZSB0YXNrIHNob3VsZA0KYmUgYWxsb3dlZCB0byBydW4uICBUaGUg
ImNvdW50ZXIiIGF0dHJpYnV0ZSBvZiBlYWNoIHRhc2sgZGV0ZXJtaW5lcyBo
b3cgbXVjaA0KdGltZSBpdCBoYXMgbGVmdCBpbiBpdHMgdGltZXNsaWNlLiAg
QWZ0ZXIgZXZlcnkgdGFzayBvbiB0aGUgcnVuLXF1ZXVlIGhhcyB1c2VkDQp1
cCBpdHMgdGltZXNsaWNlIChjb3VudGVyID0gMCksIHRoZSBjb3VudGVyIGZv
ciBlYWNoIHRhc2sgaXMgcmVzZXQgdG8gdGhlDQpvcmlnaW5hbCBwcmlvcml0
eS4gIFRoaXMgc2NoZWR1bGVyIGhhcyBzb21lIG5pY2UgcHJvcGVydGllczoN
Cg0KCW8gSXQgb2JleXMgdGhlIEtJU1MgcHJpbmNpcGxlIChLZWVwIEl0IFNp
bXBsZSwgU3R1cGlkISkuICBUaGVyZSBpcw0KICAgICAgICAgIGFsd2F5cyBh
IGRhbmdlciB0aGF0IHRyeWluZyB0byBnZXQgInRvbyBjbGV2ZXIiIHdpbGwg
aW50cm9kdWNlDQogICAgICAgICAgdW5leHBlY3RlZCBwcm9ibGVtcy4NCg0K
CW8gSXQgZ3VhcmFudGVlcyB0aGF0IG5vIHRhc2sgd2lsbCBzdGFydmUuDQoN
CglvIEl0IGFsbG93cyB0aGUgdXNlciB0byBoYXZlIHNvbWUgY29udHJvbCBv
dmVyIHRoZSBzY2hlZHVsaW5nLg0KDQpTb21lIGRyYXdiYWNrczoNCg0KCW8g
SW50ZXJhY3RpdmUgcGVyZm9ybWFuY2UgdW5kZXIgaGVhdnkgQ1BVIGxvYWQg
aXMgbm90IGdvb2QuDQoNCglvIExpbWl0ZWQgY29udHJvbCBvdmVyIHNjaGVk
dWxpbmcgLS0gZm9yIGV4YW1wbGUsIGl0IGlzIG5vdCBwb3NzaWJsZQ0KICAg
ICAgICAgIHRvIHRlbGwgdGhlIHNjaGVkdWxlciB0byAqbmV2ZXIqIHJ1biBh
IHBhcnRpY3VsYXIgdGFzayB1bmxlc3MNCiAgICAgICAgICAqbm90aGluZyog
ZWxzZSB3YW50cyB0byBydW4gKCJpZGxlLWVhdGluZyB0YXNrIikuICBUaG9z
ZSBvZiB5b3Ugd2hvDQoJICBoYXZlIGJlZW4gcGFydGljaXBhdGluZyBpbiB0
aGUgUkM1IGNvbnRlc3QgY2FuIGFwcHJlY2lhdGUgdGhlIG5lZWQNCgkgIGZv
ciBzb21ldGhpbmcgbGlrZSB0aGlzIDotKQ0KDQoNClRIRSBRTlggU0NIRURV
TEVSDQoNCk15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIFFOWCBzY2hlZHVsZXIg
aXMgYmFzZWQgZW50aXJlbHkgb24gYSBzaG9ydCBibHVyYiBJDQpyZWFkIGFi
b3V0IGl0LCBzbyBJIHdvdWxkIG5vdCBiZSBzdXJwcmlzZWQgdG8gZmluZCB0
aGF0IHRoZSBmb2xsb3dpbmcNCmRpc2N1c3Npb24gY29udGFpbnMgZXJyb3Jz
IGFuZC9vciBvbWlzc2lvbnMuICBIb3dldmVyLCBwbGVhc2UgZG8gcmVhZA0K
b24uLi4gOi0pDQoNClRoZXJlIGFyZSAzMiBzZXBhcmF0ZSBydW4tcXVldWVz
LCBudW1iZXJlZCAwLTMxLiAgV2hlbiB0aGUgc2NoZWR1bGVyIGlzDQpsb29r
aW5nIGZvciBhIHRhc2sgdG8gcnVuLCBpdCB3aWxsIHNlbGVjdCBhIHRhc2sg
ZnJvbSB0aGUgbG93ZXN0LW51bWJlcmVkDQpydW4tcXVldWUgdGhhdCBoYXMg
YSBydW5uYWJsZSB0YXNrIG9uIGl0LiAgVGhpcyBtZWFucyB0aGF0LCBmb3Ig
ZXhhbXBsZSwgYQ0KdGFzayBvbiBydW4tcXVldWUgMSB3aWxsICpub3QqIHJ1
biB1bnRpbCB0aGVyZSBhcmUgbm8gdGFza3Mgb24gcnVuLXF1ZXVlIDANCnRo
YXQgd2FudCB0byBydW4uICBUaGUgaW5pdCB0YXNrIGhhcyBhIG1pbmltdW0g
cnVuLXF1ZXVlIG9mIDE1LiAgTmV3bHkNCmNyZWF0ZWQgdGFza3MgaW5oZXJp
dCB0aGVpciBtaW5pbXVtIHJ1bi1xdWV1ZSBmcm9tIHRoZWlyIHBhcmVudC4N
Cg0KVGhyZWUgc2NoZWR1bGluZyBwb2xpY2llcyBhcmUgc3VwcG9ydGVkOg0K
DQotLS0gRklGTw0KDQpUaGUgc2VsZWN0ZWQgdGFzayB3aWxsIHJ1biB1bnRp
bDoNCg0KCW8gaXQgYmxvY2tzDQoJICAtT1ItDQoJbyBhIHRhc2sgb24gYSBs
b3dlci1udW1iZXJlZCBydW4tcXVldWUgd2FudHMgdG8gcnVuDQoNCi0tLSBS
b3VuZC1Sb2Jpbg0KDQpUaGUgc2VsZWN0ZWQgdGFzayB3aWxsIHJ1biB1bnRp
bDoNCg0KCW8gaXQgYmxvY2tzDQoJICAtT1ItDQoJbyBhIHRhc2sgb24gYSBs
b3dlci1udW1iZXJlZCBydW4tcXVldWUgd2FudHMgdG8gcnVuDQoJICAtT1IN
CglvIDIwMG1zIGhhdmUgcGFzc2VkDQoNCi0tLSBBZGFwdGl2ZQ0KDQpUaGlz
IGlzIHRoZSBkZWZhdWx0IHBvbGljeSwgYW5kIHRoZSBtb3N0IGludGVyZXN0
aW5nIHBvbGljeS4gIEFkYXB0aXZlDQpzY2hlZHVsaW5nIGlzIGxpa2UgUm91
bmQtUm9iaW4sIGJ1dCBpdCBhbHNvIHRyaWVzIHRvICJpbnRlbGxpZ2VudGx5
IiBtb3ZlDQp0YXNrcyBiZXR3ZWVuIHJ1bi1xdWV1ZXMgaW4gb3JkZXIgdG8g
cHJvdmlkZSBnb29kIGludGVyYWN0aXZlIHJlc3BvbnNlLg0KSGVyZSBhcmUg
dGhlIHJ1bGVzIGZvciBhZGFwdGl2ZSBzY2hlZHVsaW5nOg0KDQoJbyBFYWNo
IHRhc2sgaGFzIGEgJ21pbmltdW0gcnVuLXF1ZXVlJyBhdHRyaWJ1dGUgdGhh
dCB0ZWxscyB0aGUNCgkgIHNjaGVkdWxlciB0aGUgbG93ZXN0LW51bWJlcmVk
IHJ1bi1xdWV1ZSB0aGUgdGFzayBjYW4gYmUgb24uDQoJICAiTm9ybWFsIiB0
YXNrcyBoYXZlIG1pbmltdW0gcnVuLXF1ZXVlID0gMTUuDQoNCglvIFdoZW4g
YSB0YXNrIGlzIGluaXRpYWxseSBzdGFydGVkLCBpdCBpcyBwbGFjZWQgb24g
aXRzIG1pbmltdW0NCgkgIHJ1bi1xdWV1ZS4NCg0KCW8gSWYgYSB0YXNrIGJs
b2NrcyAoZG9lcyBub3QgdXNlIGFsbCBvZiBpdHMgdGltZXNsaWNlKSwgaXQg
d2lsbA0KCSAgYmUgcGxhY2VkIG9uIGl0cyBtaW5pbXVtIHJ1bi1xdWV1ZSB3
aGVuIGl0IGJlY29tZXMgcnVubmFibGUgYWdhaW4uDQoNCglvIElmIGEgdGFz
ayB1c2VzIHVwIGFsbCBvZiBpdHMgdGltZXNsaWNlLCBhbmQgdGhlcmUgaXMg
YXQgbGVhc3Qgb25lDQoJICBvdGhlciB0YXNrIG9uIHRoZSBzYW1lIHJ1bi1x
dWV1ZSB0aGF0IHdhbnRzIHRvIHJ1biwgaXRzIHJ1bi1xdWV1ZQ0KCSAgd2ls
bCBiZSBpbmNyZW1lbnRlZCAoImRlbW90aW9uIikuDQoNCglvIElmIGEgdGFz
ayBoYXMgYmVlbiBzdGFydmluZyBmb3Igb25lIHNlY29uZCwgYW5kIGl0cyBj
dXJyZW50IHJ1bi1xdWV1ZQ0KCSAgaXMgZ3JlYXRlciB0aGFuIGl0cyBtaW5p
bXVtIHJ1bi1xdWV1ZSwgaXRzIHJ1bi1xdWV1ZSB3aWxsIGJlDQoJICBkZWNy
ZW1lbnRlZCAoInByb21vdGlvbiIpLg0KDQpUaGUgcmVzdWx0IG9mIGFwcGx5
aW5nIHRoZXNlIHJ1bGVzIGlzIHRoYXQgdGFza3Mgd2l0aCBoZWF2eSBDUFUg
cmVxdWlyZW1lbnRzDQp3aWxsIHRlbmQgdG8gbWlncmF0ZSB0byBoaWdoZXIt
bnVtYmVyZWQgcnVuLXF1ZXVlcywgd2hlcmVhcyB0YXNrcyB3aXRoIGxpZ2h0
DQpDUFUgcmVxdWlyZW1lbnRzIHdpbGwgdGVuZCB0byBzdGF5IG9uIGxvd2Vy
LW51bWJlcmVkIHJ1bi1xdWV1ZXMuICBUaGlzIGlzDQoqZ29vZCogZm9yIGlu
dGVyYWN0aXZlIHBlcmZvcm1hbmNlIQ0KDQoNClJFLU5JQ0lORyBPRiBUQVNL
UyBXSVRIIFFOWCBTQ0hFRFVMSU5HDQoNCldoZW4geW91IHJlLW5pY2UgYSB0
YXNrLCB5b3UgYXJlIGFjdHVhbGx5IGNoYW5naW5nIGl0cyBtaW5pbXVtIHJ1
bi1xdWV1ZS4gIEZvcg0KZXhhbXBsZSwgaWYgeW91IGdpdmUgeW91ciBYLXNl
cnZlciBhIG5pY2VuZXNzIG9mIC0yMCwgeW91IGFyZSBhY3R1YWxseSBzZXR0
aW5nDQppdHMgbWluaW11bSBydW4tcXVldWUgdG8gMC4gIElmIHlvdSBnaXZl
IGl0IGEgbmljZW5lc3Mgb2YgMjAsIHlvdSBhcmUgc2V0dGluZw0KaXRzIG1p
bmltdW0gcnVuLXF1ZXVlIHRvIDMxLiAgVGhlIHByaW9yaXR5IG9mIGEgdGFz
ayBpcyBpdHMgKmN1cnJlbnQqDQpydW4tcXVldWUgKHdoaWNoIG1heSBiZSBs
YXJnZXIgdGhhbiBpdHMgbWluaW11bSBydW4tcXVldWUgaW4gdGhlIGNhc2Ug
b2YgYW4NCmFkYXB0aXZlbHkgc2NoZWR1bGVkIHRhc2spLg0KDQpZb3UgbXVz
dCB0YWtlIGNhcmUgd2hlbiByZS1uaWNpbmcgdGFza3MuICBVbmxpa2UgdGhl
IG5vcm1hbCBMaW51eCBzY2hlZHVsZXIsDQp0aGUgUU5YIHNjaGVkdWxlciBk
b2VzIG5vdCBndWFyYW50ZWUgdGFza3Mgd2lsbCBub3Qgc3RhcnZlLiAgV2hl
biB5b3UgcmUtbmljZQ0KYSB0YXNrLCB5b3UgbWF5IGNyZWF0ZSBvbmUgb2Yg
dGhlIGZvbGxvd2luZyBwcm9ibGVtczoNCg0KCW8gVGhlIHRhc2sgaG9ncyB0
aGUgQ1BVLCBhbmQgc3RhcnZlcyBvdXQgb3RoZXIgdGFza3MgKGluIHRoZSBj
YXNlIG9mDQoJICBhIG5lZ2F0aXZlIG5pY2VuZXNzKS4NCg0KCW8gVGhlIHRh
c2sgaXMgc3RhcnZlZCBvdXQgYnkgaGlnaGVyLXByaW9yaXR5IHRhc2tzIChp
biB0aGUgY2FzZSBvZiBhDQoJICBwb3NpdGl2ZSBuaWNlbmVzcykuDQoNCkhl
cmUgYXJlIGEgZmV3IGdlbmVyYWwgdGlwcyBmb3IgcmUtbmljaW5nIHRhc2tz
Og0KDQoJbyBPbiBhIG1hY2hpbmUgd2hvc2UgcHJpbWFyeSBmdW5jdGlvbiBp
cyB3ZWItc2VydmluZyBvciBuZXdzLXNlcnZpbmcsDQoJICB5b3UgbWF5IHdh
bnQgdG8gZ2l2ZSB0aGUgaHR0cGQgb3IgaW5uZCB0YXNrIGEgbmVnYXRpdmUg
bmljZW5lc3MuDQoJICBPdGhlciB0YXNrcyB3b3VsZCB0aGVuIG9ubHkgYmUg
YWxsb3dlZCB0byBjb25zdW1lICJsZWZ0LW92ZXIiIENQVQ0KCSAgdGltZS4N
Cg0KCW8gSXQncyBwcm9iYWJseSBhIGdvb2QgaWRlYSB0byBnaXZlIHlvdXIg
WC1zZXJ2ZXIgYSBuZWdhdGl2ZSBuaWNlbmVzcy4NCgkgIEludGVyYWN0aXZl
IHBlcmZvcm1hbmNlIHdpbGwgbGlrZWx5IGJlbmVmaXQgZnJvbSB0aGlzLg0K
DQoJbyBXaGVuIHN0YXJ0aW5nIGEgQ1BVLWludGVuc2l2ZSBqb2IgdGhhdCBt
YXkgdGFrZSBhd2hpbGUgdG8gY29tcGxldGUsDQoJICB5b3UgbWF5IHdhbnQg
dG8gZ2l2ZSBpdCBhIHBvc2l0aXZlIG5pY2VuZXNzIHRvIGVuc3VyZSB0aGUg
YWJzb2x1dGUNCgkgIG1pbmltdW0gaW1wYWN0IG9uIGludGVyYWN0aXZlIHBl
cmZvcm1hbmNlLiAgV2hlbiBjb21waWxpbmcgYSBrZXJuZWwsDQoJICB5b3Ug
bWlnaHQgZG8gJ25pY2UgbWFrZSB6bGlsbycgLS0gdXNlcnMgb2YgdGhlIHN5
c3RlbSB3b3VsZCBwcm9iYWJseQ0KCSAgbm90IGV2ZW4gbm90aWNlIGFueSBz
bG93ZG93biENCg0KICAgICAgICBvIEl0J3MgYWxtb3N0IG5ldmVyIGEgZ29v
ZCBpZGVhIHRvIGdpdmUgYSB0b3RhbGx5IENQVS1pbnRlbnNpdmUgdGFzaw0K
ICAgICAgICAgIGEgbmVnYXRpdmUgbmljZW5lc3MuICBEb2luZyB0aGlzIHdp
dGggdGhlIG5vcm1hbCBMaW51eCBzY2hlZHVsZXINCiAgICAgICAgICBjYW4g
cmVzdWx0IGluIGEgc2x1Z2dpc2ggc3lzdGVtIC0tIHdpdGggdGhpcyBzY2hl
ZHVsZXIgaXQgY2FuIHJlc3VsdA0KICAgICAgICAgIGluIGFuICp1bnVzYWJs
ZSogc3lzdGVtLg0KDQpJbiBnZW5lcmFsLCBkb24ndCByZS1uaWNlIGEgdGFz
ayB1bmxlc3MgeW91IHVuZGVyc3RhbmQgaG93IHRoZSBzY2hlZHVsZXINCndv
cmtzLCBhbmQgeW91IGNhbiByZWFsbHkgY29udmluY2UgeW91cnNlbGYgdGhh
dCBpdCdzIGEgZ29vZCBpZGVhLg0KDQoNCkNPTkNMVVNJT04NCg0KUGxlYXNl
IGxldCBtZSBrbm93IGhvdyB3ZWxsIHRoaXMgcGF0Y2ggd29ya3MgZm9yIHlv
dS4gIEkgYW0gcGFydGljdWxhcmx5DQppbnRlcmVzdGVkIHRvIGhlYXIgZnJv
bSBTTVAgdXNlcnMsIGFzIEkgZG8gbm90IGhhdmUgU01QIG15c2VsZiBhbmQg
dGhlIHBhdGNoDQppcyBjdXJyZW50bHkgKnVudGVzdGVkKiB3aXRoIFNNUC4g
IEFsc28sIGlmIHlvdSBmaW5kIG15IGltcGxlbWVudGF0aW9uIG9mIFFOWA0K
c2NoZWR1bGluZyBpcyBpbmNvcnJlY3Qgb3IgaW5jb21wbGV0ZSwgSSB3b3Vs
ZCBiZSB2ZXJ5IGdsYWQgdG8gaGVhciBmcm9tIHlvdS4NCg0KSGFwcHkgdGFz
ay1zd2l0Y2hpbmcgOi0pDQoNCgktLSBBZGFtIE1jS2VlCQk8YW1ja2VlQHBv
Ym94ZXMuY29tPg0K
--12583424-2048963288-870156840=:708--