Patch for ide-tape driver

Alan Stern (stern@rowland.harvard.edu)
Mon, 9 Dec 2002 15:03:39 -0500 (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.

---2084555674-1595446852-1039464219=:2204
Content-Type: TEXT/PLAIN; charset=US-ASCII

Alan, Marcelo, and all:

As suggested earlier by Alan Cox, now that 2.4.20 has been released I am
resubmitting my patches for the ide-tape driver. It fixes a few nasty
bugs and makes some other small improvements in the original. It has been
tested by Willem Riede, who maintains the OnStream tape driver.

Attached are patch files for both 2.4.20 and 2.5.50. Please apply them
when you have a chance.

Thank you,

Alan Stern

---2084555674-1595446852-1039464219=:2204
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ide-tape.c.patch-2.4.20"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33L2.0212091503390.2204@ida.rowland.org>
Content-Description: ide-tape patch for 2.4.20
Content-Disposition: attachment; filename="ide-tape.c.patch-2.4.20"

LS0tIGxpbnV4L2RyaXZlcnMvaWRlL2lkZS10YXBlLmMub3JpZwlXZWQgT2N0
IDE2IDExOjQ3OjM2IDIwMDINCisrKyBsaW51eC9kcml2ZXJzL2lkZS9pZGUt
dGFwZS5jCVRodSBPY3QgMTcgMTU6MTI6MjggMjAwMg0KQEAgLTEsNSArMSw1
IEBADQogLyoNCi0gKiBsaW51eC9kcml2ZXJzL2lkZS9pZGUtdGFwZS5jCQlW
ZXJzaW9uIDEuMTdhCUphbiwgMjAwMQ0KKyAqIGxpbnV4L2RyaXZlcnMvaWRl
L2lkZS10YXBlLmMJCVZlcnNpb24gMS4xN2IJT2N0LCAyMDAyDQogICoNCiAg
KiBDb3B5cmlnaHQgKEMpIDE5OTUgLSAxOTk5IEdhZGkgT3htYW4gPGdhZGlv
QG5ldHZpc2lvbi5uZXQuaWw+DQogICoNCkBAIC0yOTEsNiArMjkxLDI4IEBA
DQogICogVmVyIDEuMTdhIEFwciAyMDAxIFdpbGxlbSBSaWVkZSBvc3N0QHJp
ZWRlLm9yZw0KICAqIAkJCS0gR2V0IGRyaXZlJ3MgYWN0dWFsIGJsb2NrIHNp
emUgZnJvbSBtb2RlIHNlbnNlIGJsb2NrIGRlc2NyaXB0b3INCiAgKiAJCQkt
IExpbWl0IHNpemUgb2YgcGlwZWxpbmUNCisgKiBWZXIgMS4xN2IgT2N0IDIw
MDIgICBBbGFuIFN0ZXJuIDxzdGVybkByb3dsYW5kLmhhcnZhcmQuZWR1Pg0K
KyAqCQkJQ2hhbmdlZCBJREVUQVBFX01JTl9QSVBFTElORV9TVEFHRVMgdG8g
MSBhbmQgYWN0dWFsbHkgdXNlZA0KKyAqCQkJIGl0IGluIHRoZSBjb2RlIQ0K
KyAqCQkJQWN0dWFsbHkgcmVtb3ZlZCBhYm9ydGVkIHN0YWdlcyBpbiBpZGV0
YXBlX2Fib3J0X3BpcGVsaW5lDQorICoJCQkgaW5zdGVhZCBvZiBqdXN0IGNo
YW5naW5nIHRoZSBjb21tYW5kIGNvZGUuDQorICoJCQlNYWRlIHRoZSB0cmFu
c2ZlciBieXRlIGNvdW50IGZvciBSZXF1ZXN0IFNlbnNlIGVxdWFsIHRvIHRo
ZQ0KKyAqCQkJIGFjdHVhbCBsZW5ndGggb2YgdGhlIGRhdGEgdHJhbnNmZXIu
DQorICoJCQlDaGFuZ2VkIGhhbmRsaW5nIG9mIHBhcnRpYWwgZGF0YSB0cmFu
c2ZlcnM6IHRoZXkgZG8gbm90DQorICoJCQkgY2F1c2UgRE1BIGVycm9ycy4N
CisgKgkJCU1vdmVkIGluaXRpYXRpb24gb2YgRE1BIHRyYW5zZmVycyB0byB0
aGUgY29ycmVjdCBwbGFjZS4NCisgKgkJCVJlbW92ZWQgcmVmZXJlbmNlIHRv
IHVuYWxsb2NhdGVkIG1lbW9yeS4NCisgKgkJCU1hZGUgX19pZGV0YXBlX2Rp
c2NhcmRfcmVhZF9waXBlbGluZSByZXR1cm4gdGhlIG51bWJlciBvZg0KKyAq
CQkJIHNlY3RvcnMgc2tpcHBlZCwgbm90IHRoZSBudW1iZXIgb2Ygc3RhZ2Vz
Lg0KKyAqCQkJUmVwbGFjZWQgZXJyYW50IGtmcmVlKCkgY2FsbHMgd2l0aCBf
X2lkZXRhcGVfa2ZyZWVfc3RhZ2UoKS4NCisgKgkJCUZpeGVkIG9mZi1ieS1v
bmUgZXJyb3IgaW4gdGVzdGluZyB0aGUgcGlwZWxpbmUgbGVuZ3RoLg0KKyAq
CQkJRml4ZWQgaGFuZGxpbmcgb2YgZmlsZW1hcmtzIGluIHRoZSByZWFkIHBp
cGVsaW5lLg0KKyAqCQkJU21hbGwgY29kZSBvcHRpbWl6YXRpb24gZm9yIE1U
QlNGIGFuZCBNVEJTRk0gaW9jdGxzLg0KKyAqCQkJRG9uJ3QgdHJ5IHRvIHVu
bG9jayB0aGUgZG9vciBkdXJpbmcgZGV2aWNlIGNsb3NlIGlmIGlzDQorICoJ
CQkgYWxyZWFkeSB1bmxvY2tlZCENCisgKgkJCUNvc21ldGljIGZpeGVzIHRv
IG1pc2NlbGxhbmVvdXMgZGVidWdnaW5nIG91dHB1dCBtZXNzYWdlcy4NCisg
KgkJCVNldCB0aGUgbWluaW11bSAvcHJvYy9pZGUvaGQ/L3NldHRpbmdzIHZh
bHVlcyBmb3IgInBpcGVsaW5lIiwNCisgKgkJCSAicGlwZWxpbmVfbWluIiwg
YW5kICJwaXBlbGluZV9tYXgiIHRvIDEuDQogICoNCiAgKiBIZXJlIGFyZSBz
b21lIHdvcmRzIGZyb20gdGhlIGZpcnN0IHJlbGVhc2VzIG9mIGhkLmMsIHdo
aWNoIGFyZSBxdW90ZWQNCiAgKiBpbiBpZGUuYyBhbmQgYXBwbHkgaGVyZSBh
cyB3ZWxsOg0KQEAgLTQwMCw3ICs0MjIsNyBAQA0KICAqCQlzaGFyaW5nIGEg
KGZhc3QpIEFUQS0yIGRpc2sgd2l0aCBhbnkgKHNsb3cpIG5ldyBBVEFQSSBk
ZXZpY2UuDQogICovDQogDQotI2RlZmluZSBJREVUQVBFX1ZFUlNJT04gIjEu
MTdhIg0KKyNkZWZpbmUgSURFVEFQRV9WRVJTSU9OICIxLjE3YiINCiANCiAj
aW5jbHVkZSA8bGludXgvY29uZmlnLmg+DQogI2luY2x1ZGUgPGxpbnV4L21v
ZHVsZS5oPg0KQEAgLTU3Nyw5ICs1OTksMTAgQEANCiAgKgl3aGVuZXZlciB3
ZSBzZW5zZSB0aGF0IHRoZSBwaXBlbGluZSBpcyBlbXB0eSwgdW50aWwgd2Ug
cmVhY2gNCiAgKgl0aGUgb3B0aW11bSB2YWx1ZSBvciB1bnRpbCB3ZSByZWFj
aCBNQVguDQogICoNCi0gKglTZXR0aW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1l
dGVyIHRvIDAgd2lsbCBkaXNhYmxlIHRoZSBwaXBlbGluZWQgbW9kZS4NCisg
KglTZXR0aW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyIHRvIDAgaXMgaWxs
ZWdhbDogdGhlIHBpcGVsaW5lZCBtb2RlDQorICoJY2Fubm90IGJlIGRpc2Fi
bGVkIChjYWxjdWxhdGVfc3BlZWRzKCkgZGl2aWRlcyBieSB0YXBlLT5tYXhf
c3RhZ2VzLikNCiAgKi8NCi0jZGVmaW5lIElERVRBUEVfTUlOX1BJUEVMSU5F
X1NUQUdFUwkyMDANCisjZGVmaW5lIElERVRBUEVfTUlOX1BJUEVMSU5FX1NU
QUdFUwkgIDENCiAjZGVmaW5lIElERVRBUEVfTUFYX1BJUEVMSU5FX1NUQUdF
Uwk0MDANCiAjZGVmaW5lIElERVRBUEVfSU5DUkVBU0VfU1RBR0VTX1JBVEUJ
IDIwDQogDQpAQCAtNjAxLDggKzYyNCw4IEBADQogICoJaXMgdmVyaWZpZWQg
dG8gYmUgc3RhYmxlIGVub3VnaC4gVGhpcyB3aWxsIG1ha2UgaXQgbXVjaCBt
b3JlDQogICoJZXN0aGV0aWMuDQogICovDQotI2RlZmluZSBJREVUQVBFX0RF
QlVHX0lORk8JCTENCi0jZGVmaW5lIElERVRBUEVfREVCVUdfTE9HCQkxDQor
I2RlZmluZSBJREVUQVBFX0RFQlVHX0lORk8JCTANCisjZGVmaW5lIElERVRB
UEVfREVCVUdfTE9HCQkwDQogI2RlZmluZSBJREVUQVBFX0RFQlVHX0xPR19W
RVJCT1NFCTANCiAjZGVmaW5lIElERVRBUEVfREVCVUdfQlVHUwkJMQ0KIA0K
QEAgLTE2OTYsMjQgKzE3MTksNiBAQA0KIAl9DQogfQ0KIA0KLXN0YXRpYyB2
b2lkIGlkZXRhcGVfYWJvcnRfcGlwZWxpbmUgKGlkZV9kcml2ZV90ICpkcml2
ZSkNCi17DQotCWlkZXRhcGVfdGFwZV90ICp0YXBlID0gZHJpdmUtPmRyaXZl
cl9kYXRhOw0KLQlpZGV0YXBlX3N0YWdlX3QgKnN0YWdlID0gdGFwZS0+bmV4
dF9zdGFnZTsNCi0NCi0jaWYgSURFVEFQRV9ERUJVR19MT0cNCi0JaWYgKHRh
cGUtPmRlYnVnX2xldmVsID49IDQpDQotCQlwcmludGsoS0VSTl9JTkZPICJp
ZGUtdGFwZTogJXM6IGlkZXRhcGVfYWJvcnRfcGlwZWxpbmUgY2FsbGVkXG4i
LCB0YXBlLT5uYW1lKTsNCi0jZW5kaWYNCi0Jd2hpbGUgKHN0YWdlKSB7DQot
CQlpZiAoc3RhZ2UtPnJxLmNtZCA9PSBJREVUQVBFX1dSSVRFX1JRKQ0KLQkJ
CXN0YWdlLT5ycS5jbWQgPSBJREVUQVBFX0FCT1JURURfV1JJVEVfUlE7DQot
CQllbHNlIGlmIChzdGFnZS0+cnEuY21kID09IElERVRBUEVfUkVBRF9SUSkN
Ci0JCQlzdGFnZS0+cnEuY21kID0gSURFVEFQRV9BQk9SVEVEX1JFQURfUlE7
DQotCQlzdGFnZSA9IHN0YWdlLT5uZXh0Ow0KLQl9DQotfQ0KLQ0KIC8qDQog
ICoJaWRldGFwZV9hY3RpdmVfbmV4dF9zdGFnZSB3aWxsIGRlY2xhcmUgdGhl
IG5leHQgc3RhZ2UgYXMgImFjdGl2ZSIuDQogICovDQpAQCAtMTc1OCw3ICsx
NzYzLDcgQEANCiAJCXByaW50ayAoS0VSTl9JTkZPICJpZGUtdGFwZTogUmVh
Y2hlZCBpZGV0YXBlX2luY3JlYXNlX21heF9waXBlbGluZV9zdGFnZXNcbiIp
Ow0KICNlbmRpZiAvKiBJREVUQVBFX0RFQlVHX0xPRyAqLw0KIA0KLQl0YXBl
LT5tYXhfc3RhZ2VzICs9IGluY3JlYXNlOw0KKwl0YXBlLT5tYXhfc3RhZ2Vz
ICs9IElERV9NQVgoaW5jcmVhc2UsIDEpOw0KIAl0YXBlLT5tYXhfc3RhZ2Vz
ID0gSURFX01BWCh0YXBlLT5tYXhfc3RhZ2VzLCB0YXBlLT5taW5fcGlwZWxp
bmUpOw0KIAl0YXBlLT5tYXhfc3RhZ2VzID0gSURFX01JTih0YXBlLT5tYXhf
c3RhZ2VzLCB0YXBlLT5tYXhfcGlwZWxpbmUpOw0KIH0NCkBAIC0xODMxLDYg
KzE4MzYsMjkgQEANCiAJfQ0KIH0NCiANCitzdGF0aWMgdm9pZCBpZGV0YXBl
X2Fib3J0X3BpcGVsaW5lIChpZGVfZHJpdmVfdCAqZHJpdmUsIGlkZXRhcGVf
c3RhZ2VfdCAqbGFzdF9zdGFnZSkNCit7DQorCWlkZXRhcGVfdGFwZV90ICp0
YXBlID0gZHJpdmUtPmRyaXZlcl9kYXRhOw0KKwlpZGV0YXBlX3N0YWdlX3Qg
KnN0YWdlID0gdGFwZS0+bmV4dF9zdGFnZTsNCisJaWRldGFwZV9zdGFnZV90
ICpuc3RhZ2U7DQorDQorI2lmIElERVRBUEVfREVCVUdfTE9HDQorCWlmICh0
YXBlLT5kZWJ1Z19sZXZlbCA+PSA0KQ0KKwkJcHJpbnRrKEtFUk5fSU5GTyAi
aWRlLXRhcGU6ICVzOiBpZGV0YXBlX2Fib3J0X3BpcGVsaW5lIGNhbGxlZFxu
IiwgdGFwZS0+bmFtZSk7DQorI2VuZGlmDQorCXdoaWxlIChzdGFnZSkgew0K
KwkJbnN0YWdlID0gc3RhZ2UtPm5leHQ7DQorCQlpZGV0YXBlX2tmcmVlX3N0
YWdlKHRhcGUsIHN0YWdlKTsNCisJCS0tdGFwZS0+bnJfc3RhZ2VzOw0KKwkJ
LS10YXBlLT5ucl9wZW5kaW5nX3N0YWdlczsNCisJCXN0YWdlID0gbnN0YWdl
Ow0KKwl9DQorCXRhcGUtPmxhc3Rfc3RhZ2UgPSBsYXN0X3N0YWdlOw0KKwlp
ZiAobGFzdF9zdGFnZSkNCisJCWxhc3Rfc3RhZ2UtPm5leHQgPSBOVUxMOw0K
Kwl0YXBlLT5uZXh0X3N0YWdlID0gTlVMTDsNCit9DQorDQogLyoNCiAgKglp
ZGV0YXBlX2VuZF9yZXF1ZXN0IGlzIHVzZWQgdG8gZmluaXNoIHNlcnZpY2lu
ZyBhIHJlcXVlc3QsIGFuZCB0bw0KICAqCWluc2VydCBhIHBlbmRpbmcgcGlw
ZWxpbmUgcmVxdWVzdCBpbnRvIHRoZSBtYWluIGRldmljZSBxdWV1ZS4NCkBA
IC0xODQzLDYgKzE4NzEsNyBAQA0KIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0K
IAlpbnQgZXJyb3I7DQogCWludCByZW1vdmVfc3RhZ2UgPSAwOw0KKwlpZGV0
YXBlX3N0YWdlX3QgKmFjdGl2ZV9zdGFnZTsNCiAjaWYgT05TVFJFQU1fREVC
VUcNCiAJaWRldGFwZV9zdGFnZV90ICpzdGFnZTsNCiAJb3NfYXV4X3QgKmF1
eDsNCkBAIC0xODY1LDYgKzE4OTQsNyBAQA0KIA0KIAlzcGluX2xvY2tfaXJx
c2F2ZSgmdGFwZS0+c3BpbmxvY2ssIGZsYWdzKTsNCiAJaWYgKHRhcGUtPmFj
dGl2ZV9kYXRhX3JlcXVlc3QgPT0gcnEpIHsJCS8qIFRoZSByZXF1ZXN0IHdh
cyBhIHBpcGVsaW5lZCBkYXRhIHRyYW5zZmVyIHJlcXVlc3QgKi8NCisJCWFj
dGl2ZV9zdGFnZSA9IHRhcGUtPmFjdGl2ZV9zdGFnZTsNCiAJCXRhcGUtPmFj
dGl2ZV9zdGFnZSA9IE5VTEw7DQogCQl0YXBlLT5hY3RpdmVfZGF0YV9yZXF1
ZXN0ID0gTlVMTDsNCiAJCXRhcGUtPm5yX3BlbmRpbmdfc3RhZ2VzLS07DQpA
QCAtMTg4NywxNSArMTkxNywxNyBAQA0KIAkJCQkJCXByaW50aygiaWRlLXRh
cGU6ICVzOiBza2lwcGluZyBvdmVyIGNvbmZpZyBwYXJpdGlvbi4uXG4iLCB0
YXBlLT5uYW1lKTsNCiAjZW5kaWYNCiAJCQkJCXRhcGUtPm9uc3RyZWFtX3dy
aXRlX2Vycm9yID0gT1NfUEFSVF9FUlJPUjsNCi0JCQkJCWlmICh0YXBlLT53
YWl0aW5nKQ0KKwkJCQkJaWYgKHRhcGUtPndhaXRpbmcpIHsNCisJCQkJCQly
cS0+d2FpdGluZyA9IE5VTEw7DQogCQkJCQkJY29tcGxldGUodGFwZS0+d2Fp
dGluZyk7DQorCQkJCQl9DQogCQkJCX0NCiAJCQl9DQogCQkJcmVtb3ZlX3N0
YWdlID0gMTsNCiAJCQlpZiAoZXJyb3IpIHsNCiAJCQkJc2V0X2JpdCAoSURF
VEFQRV9QSVBFTElORV9FUlJPUiwgJnRhcGUtPmZsYWdzKTsNCiAJCQkJaWYg
KGVycm9yID09IElERVRBUEVfRVJST1JfRU9EKQ0KLQkJCQkJaWRldGFwZV9h
Ym9ydF9waXBlbGluZSAoZHJpdmUpOw0KKwkJCQkJaWRldGFwZV9hYm9ydF9w
aXBlbGluZShkcml2ZSwgYWN0aXZlX3N0YWdlKTsNCiAJCQkJaWYgKHRhcGUt
Pm9uc3RyZWFtICYmICF0YXBlLT5yYXcgJiYgZXJyb3IgPT0gSURFVEFQRV9F
UlJPUl9HRU5FUkFMICYmIHRhcGUtPnNlbnNlLnNlbnNlX2tleSA9PSAzKSB7
DQogCQkJCQljbGVhcl9iaXQgKElERVRBUEVfUElQRUxJTkVfRVJST1IsICZ0
YXBlLT5mbGFncyk7DQogCQkJCQlwcmludGsoS0VSTl9FUlIgImlkZS10YXBl
OiAlczogd3JpdGUgZXJyb3IsIGVuYWJsaW5nIGVycm9yIHJlY292ZXJ5XG4i
LCB0YXBlLT5uYW1lKTsNCkBAIC0xOTA0LDE0ICsxOTM2LDE2IEBADQogCQkJ
CQl0YXBlLT5ucl9wZW5kaW5nX3N0YWdlcysrOw0KIAkJCQkJdGFwZS0+bmV4
dF9zdGFnZSA9IHRhcGUtPmZpcnN0X3N0YWdlOw0KIAkJCQkJcnEtPmN1cnJl
bnRfbnJfc2VjdG9ycyA9IHJxLT5ucl9zZWN0b3JzOw0KLQkJCQkJaWYgKHRh
cGUtPndhaXRpbmcpDQorCQkJCQlpZiAodGFwZS0+d2FpdGluZykgew0KKwkJ
CQkJCXJxLT53YWl0aW5nID0gTlVMTDsNCiAJCQkJCQljb21wbGV0ZSh0YXBl
LT53YWl0aW5nKTsNCisJCQkJCX0NCiAJCQkJfQ0KIAkJCX0NCiAJCX0gZWxz
ZSBpZiAocnEtPmNtZCA9PSBJREVUQVBFX1JFQURfUlEpIHsNCiAJCQlpZiAo
ZXJyb3IgPT0gSURFVEFQRV9FUlJPUl9FT0QpIHsNCiAJCQkJc2V0X2JpdCAo
SURFVEFQRV9QSVBFTElORV9FUlJPUiwgJnRhcGUtPmZsYWdzKTsNCi0JCQkJ
aWRldGFwZV9hYm9ydF9waXBlbGluZShkcml2ZSk7DQorCQkJCWlkZXRhcGVf
YWJvcnRfcGlwZWxpbmUoZHJpdmUsIGFjdGl2ZV9zdGFnZSk7DQogCQkJfQ0K
IAkJfQ0KIAkJaWYgKHRhcGUtPm5leHRfc3RhZ2UgIT0gTlVMTCAmJiAhdGFw
ZS0+b25zdHJlYW1fd3JpdGVfZXJyb3IpIHsNCkBAIC0xOTU3LDcgKzE5OTEs
NyBAQA0KIAlpZGV0YXBlX2luaXRfcGMgKHBjKTsJDQogCXBjLT5jWzBdID0g
SURFVEFQRV9SRVFVRVNUX1NFTlNFX0NNRDsNCiAJcGMtPmNbNF0gPSAyMDsN
Ci0JcGMtPnJlcXVlc3RfdHJhbnNmZXIgPSAxODsNCisJcGMtPnJlcXVlc3Rf
dHJhbnNmZXIgPSAyMDsNCiAJcGMtPmNhbGxiYWNrID0gJmlkZXRhcGVfcmVx
dWVzdF9zZW5zZV9jYWxsYmFjazsNCiB9DQogDQpAQCAtMjA1Nyw3ICsyMDkx
LDcgQEANCiANCiAjaWZkZWYgQ09ORklHX0JMS19ERVZfSURFRE1BDQogCWlm
ICh0ZXN0X2JpdCAoUENfRE1BX0lOX1BST0dSRVNTLCAmcGMtPmZsYWdzKSkg
ew0KLQkJaWYgKEhXSUYoZHJpdmUpLT5kbWFwcm9jKGlkZV9kbWFfZW5kLCBk
cml2ZSkpIHsNCisJCWlmIChIV0lGKGRyaXZlKS0+ZG1hcHJvYyhpZGVfZG1h
X2VuZCwgZHJpdmUpIHx8IHN0YXR1cy5iLmNoZWNrKSB7DQogCQkJLyoNCiAJ
CQkgKiBBIERNQSBlcnJvciBpcyBzb21ldGltZXMgZXhwZWN0ZWQuIEZvciBl
eGFtcGxlLA0KIAkJCSAqIGlmIHRoZSB0YXBlIGlzIGNyb3NzaW5nIGEgZmls
ZW1hcmsgZHVyaW5nIGENCkBAIC0yMDY5LDggKzIxMDMsMTggQEANCiAJCQkg
KiBhY3R1YWxseSB0cmFuc2ZlcnJlZCAod2UgY2FuJ3QgcmVjZWl2ZSB0aGF0
DQogCQkJICogaW5mb3JtYXRpb24gZnJvbSB0aGUgRE1BIGVuZ2luZSBvbiBt
b3N0IGNoaXBzZXRzKS4NCiAJCQkgKi8NCisNCisJCQkvKg0KKwkJCSAqIE9u
IHRoZSBjb250cmFyeSwgYSBETUEgZXJyb3IgaXMgbmV2ZXIgZXhwZWN0ZWQ7
DQorCQkJICogaXQgdXN1YWxseSBpbmRpY2F0ZXMgYSBoYXJkd2FyZSBlcnJv
ciBvciBhYm9ydC4NCisJCQkgKiBJZiB0aGUgdGFwZSBjcm9zc2VzIGEgZmls
ZW1hcmsgZHVyaW5nIGEgUkVBRA0KKwkJCSAqIGNvbW1hbmQsIGl0IHdpbGwg
aXNzdWUgYW4gaXJxIGFuZCBwb3NpdGlvbiBpdHNlbGYNCisJCQkgKiBhZnRl
ciB0aGUgZmlsZW1hcmsgKG5vdCBiZWZvcmUpLiBPbmx5IGEgcGFydGlhbA0K
KwkJCSAqIGRhdGEgdHJhbnNmZXIgd2lsbCBvY2N1ciwgYnV0IG5vIERNQSBl
cnJvci4NCisJCQkgKiAoQVMsIDE5IEFwciAyMDAxKQ0KKwkJCSAqLw0KIAkJ
CXNldF9iaXQgKFBDX0RNQV9FUlJPUiwgJnBjLT5mbGFncyk7DQotCQl9IGVs
c2UgaWYgKCFzdGF0dXMuYi5jaGVjaykgew0KKwkJfSBlbHNlIHsNCiAJCQlw
Yy0+YWN0dWFsbHlfdHJhbnNmZXJyZWQgPSBwYy0+cmVxdWVzdF90cmFuc2Zl
cjsNCiAJCQlpZGV0YXBlX3VwZGF0ZV9idWZmZXJzIChwYyk7DQogCQl9DQpA
QCAtMjEwMyw3ICsyMTQ3LDcgQEANCiAJCWlmIChzdGF0dXMuYi5jaGVjayB8
fCB0ZXN0X2JpdCAoUENfRE1BX0VSUk9SLCAmcGMtPmZsYWdzKSkgewkvKiBF
cnJvciBkZXRlY3RlZCAqLw0KICNpZiBJREVUQVBFX0RFQlVHX0xPRw0KIAkJ
CWlmICh0YXBlLT5kZWJ1Z19sZXZlbCA+PSAxKQ0KLQkJCQlwcmludGsgKEtF
Uk5fSU5GTyAiaWRlLXRhcGU6ICVzOiBJL08gZXJyb3IsICIsdGFwZS0+bmFt
ZSk7DQorCQkJCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiAlczogSS9P
IGVycm9yXG4iLHRhcGUtPm5hbWUpOw0KICNlbmRpZiAvKiBJREVUQVBFX0RF
QlVHX0xPRyAqLw0KIAkJCWlmIChwYy0+Y1swXSA9PSBJREVUQVBFX1JFUVVF
U1RfU0VOU0VfQ01EKSB7DQogCQkJCXByaW50ayAoS0VSTl9FUlIgImlkZS10
YXBlOiBJL08gZXJyb3IgaW4gcmVxdWVzdCBzZW5zZSBjb21tYW5kXG4iKTsN
CkBAIC0yMjU1LDYgKzIyOTksMTAgQEANCiAJfQ0KIAl0YXBlLT5jbWRfc3Rh
cnRfdGltZSA9IGppZmZpZXM7DQogCWlkZV9zZXRfaGFuZGxlcihkcml2ZSwg
JmlkZXRhcGVfcGNfaW50ciwgSURFVEFQRV9XQUlUX0NNRCwgTlVMTCk7CS8q
IFNldCB0aGUgaW50ZXJydXB0IHJvdXRpbmUgKi8NCisjaWZkZWYgQ09ORklH
X0JMS19ERVZfSURFRE1BDQorCWlmICh0ZXN0X2JpdChQQ19ETUFfSU5fUFJP
R1JFU1MsICZwYy0+ZmxhZ3MpKQkJLyogQmVnaW4gRE1BLCBpZiBuZWNlc3Nh
cnkgKi8NCisJCSh2b2lkKSAoSFdJRihkcml2ZSktPmRtYXByb2MoaWRlX2Rt
YV9iZWdpbiwgZHJpdmUpKTsNCisjZW5kaWYNCiAJYXRhcGlfb3V0cHV0X2J5
dGVzIChkcml2ZSxwYy0+YywxMik7CQkJLyogU2VuZCB0aGUgYWN0dWFsIHBh
Y2tldCAqLw0KIAlyZXR1cm4gaWRlX3N0YXJ0ZWQ7DQogfQ0KQEAgLTIyNzks
OCArMjMyNyw3IEBADQogCQkvKg0KIAkJICoJV2Ugd2lsbCAiYWJvcnQiIHJl
dHJ5aW5nIGEgcGFja2V0IGNvbW1hbmQgaW4gY2FzZQ0KIAkJICoJYSBsZWdp
dGltYXRlIGVycm9yIGNvZGUgd2FzIHJlY2VpdmVkIChjcm9zc2luZyBhDQot
CQkgKglmaWxlbWFyaywgb3IgRE1BIGVycm9yIGluIHRoZSBlbmQgb2YgbWVk
aWEsIGZvcg0KLQkJICoJZXhhbXBsZSkuDQorCQkgKglmaWxlbWFyaywgb3Ig
ZW5kIG9mIHRoZSBtZWRpYSwgZm9yIGV4YW1wbGUpLg0KIAkJICovDQogCQlp
ZiAoIXRlc3RfYml0IChQQ19BQk9SVCwgJnBjLT5mbGFncykpIHsNCiAJCQlp
ZiAoIShwYy0+Y1swXSA9PSBJREVUQVBFX1RFU1RfVU5JVF9SRUFEWV9DTUQg
JiYgdGFwZS0+c2Vuc2Vfa2V5ID09IDIgJiYNCkBAIC0yMjk3LDcgKzIzNDQs
NyBAQA0KIAl9DQogI2lmIElERVRBUEVfREVCVUdfTE9HDQogCWlmICh0YXBl
LT5kZWJ1Z19sZXZlbCA+PSAyKQ0KLQkJcHJpbnRrIChLRVJOX0lORk8gImlk
ZS10YXBlOiBSZXRyeSBudW1iZXIgLSAlZFxuIiwgcGMtPnJldHJpZXMpOw0K
KwkJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6IFJldHJ5IG51bWJlciAt
ICVkLCBjbWQgPSAlMDJYXG4iLCBwYy0+cmV0cmllcywgcGMtPmNbMF0pOw0K
ICNlbmRpZiAvKiBJREVUQVBFX0RFQlVHX0xPRyAqLw0KIA0KIAlwYy0+cmV0
cmllcysrOw0KQEAgLTIzMjEsOSArMjM2OCw4IEBADQogCU9VVF9CWVRFIChi
Y291bnQuYi5sb3csICAgICAgSURFX0JDT1VOVExfUkVHKTsNCiAJT1VUX0JZ
VEUgKGRyaXZlLT5zZWxlY3QuYWxsLCBJREVfU0VMRUNUX1JFRyk7DQogI2lm
ZGVmIENPTkZJR19CTEtfREVWX0lERURNQQ0KLQlpZiAoZG1hX29rKSB7CQkJ
CQkJLyogQmVnaW4gRE1BLCBpZiBuZWNlc3NhcnkgKi8NCisJaWYgKGRtYV9v
aykgewkJCS8qIFdpbGwgYmVnaW4gRE1BIGxhdGVyICovDQogCQlzZXRfYml0
IChQQ19ETUFfSU5fUFJPR1JFU1MsICZwYy0+ZmxhZ3MpOw0KLQkJKHZvaWQp
IChIV0lGKGRyaXZlKS0+ZG1hcHJvYyhpZGVfZG1hX2JlZ2luLCBkcml2ZSkp
Ow0KIAl9DQogI2VuZGlmIC8qIENPTkZJR19CTEtfREVWX0lERURNQSAqLw0K
IAlpZiAodGVzdF9iaXQoSURFVEFQRV9EUlFfSU5URVJSVVBULCAmdGFwZS0+
ZmxhZ3MpKSB7DQpAQCAtMzA4Niw3ICszMTMyLDcgQEANCiAJdGFwZS0+d2Fp
dGluZyA9ICZ3YWl0Ow0KIAlzcGluX3VubG9jaygmdGFwZS0+c3BpbmxvY2sp
Ow0KIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCZ3YWl0KTsNCi0JcnEtPndhaXRp
bmcgPSBOVUxMOw0KKwkvKiBUaGUgc3RhZ2UgYW5kIGl0cyBzdHJ1Y3QgcmVx
dWVzdCBoYXZlIGJlZW4gZGVhbGxvY2F0ZWQgKi8NCiAJdGFwZS0+d2FpdGlu
ZyA9IE5VTEw7DQogCXNwaW5fbG9ja19pcnEoJnRhcGUtPnNwaW5sb2NrKTsN
CiB9DQpAQCAtMzM0NSwxMSArMzM5MSwxNSBAQA0KIA0KIAlpZiAodGFwZS0+
Y2hyZGV2X2RpcmVjdGlvbiAhPSBpZGV0YXBlX2RpcmVjdGlvbl9yZWFkKQ0K
IAkJcmV0dXJuIDA7DQorCWNudCA9IHRhcGUtPm1lcmdlX3N0YWdlX3NpemUg
LyB0YXBlLT50YXBlX2Jsb2NrX3NpemU7DQorCWlmICh0ZXN0X2FuZF9jbGVh
cl9iaXQoSURFVEFQRV9GSUxFTUFSSywgJnRhcGUtPmZsYWdzKSkNCisJCSsr
Y250OwkJLyogRmlsZW1hcmtzIGNvdW50IGFzIDEgc2VjdG9yICovDQogCXRh
cGUtPm1lcmdlX3N0YWdlX3NpemUgPSAwOw0KIAlpZiAodGFwZS0+bWVyZ2Vf
c3RhZ2UgIT0gTlVMTCkgew0KIAkJX19pZGV0YXBlX2tmcmVlX3N0YWdlICh0
YXBlLT5tZXJnZV9zdGFnZSk7DQogCQl0YXBlLT5tZXJnZV9zdGFnZSA9IE5V
TEw7DQogCX0NCisJY2xlYXJfYml0KElERVRBUEVfUElQRUxJTkVfRVJST1Is
ICZ0YXBlLT5mbGFncyk7DQogCXRhcGUtPmNocmRldl9kaXJlY3Rpb24gPSBp
ZGV0YXBlX2RpcmVjdGlvbl9ub25lOw0KIAkNCiAJaWYgKHRhcGUtPmZpcnN0
X3N0YWdlID09IE5VTEwpDQpAQCAtMzM2MSw5ICszNDExLDE0IEBADQogCQlp
ZGV0YXBlX3dhaXRfZm9yX3JlcXVlc3QoZHJpdmUsIHRhcGUtPmFjdGl2ZV9k
YXRhX3JlcXVlc3QpOw0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0YXBl
LT5zcGlubG9jaywgZmxhZ3MpOw0KIA0KLQljbnQgPSB0YXBlLT5ucl9zdGFn
ZXMgLSB0YXBlLT5ucl9wZW5kaW5nX3N0YWdlczsNCi0Jd2hpbGUgKHRhcGUt
PmZpcnN0X3N0YWdlICE9IE5VTEwpDQotCQlpZGV0YXBlX3JlbW92ZV9zdGFn
ZV9oZWFkIChkcml2ZSk7DQorCXdoaWxlICh0YXBlLT5maXJzdF9zdGFnZSAh
PSBOVUxMKSB7DQorCQlzdHJ1Y3QgcmVxdWVzdCAqcnFfcHRyID0gJnRhcGUt
PmZpcnN0X3N0YWdlLT5ycTsNCisNCisJCWNudCArPSBycV9wdHItPm5yX3Nl
Y3RvcnMgLSBycV9wdHItPmN1cnJlbnRfbnJfc2VjdG9yczsgDQorCQlpZiAo
cnFfcHRyLT5lcnJvcnMgPT0gSURFVEFQRV9FUlJPUl9GSUxFTUFSSykNCisJ
CQkrK2NudDsNCisJCWlkZXRhcGVfcmVtb3ZlX3N0YWdlX2hlYWQoZHJpdmUp
Ow0KKwl9DQogCXRhcGUtPm5yX3BlbmRpbmdfc3RhZ2VzID0gMDsNCiAJdGFw
ZS0+bWF4X3N0YWdlcyA9IHRhcGUtPm1pbl9waXBlbGluZTsNCiAJcmV0dXJu
IGNudDsNCkBAIC0zOTUxLDcgKzQwMDYsNyBAQA0KIAkJICovDQogCQlieXRl
c19yZWFkID0gaWRldGFwZV9xdWV1ZV9yd190YWlsIChkcml2ZSwgSURFVEFQ
RV9SRUFEX1JRLCAwLCB0YXBlLT5tZXJnZV9zdGFnZS0+YmgpOw0KIAkJaWYg
KGJ5dGVzX3JlYWQgPCAwKSB7DQotCQkJa2ZyZWUgKHRhcGUtPm1lcmdlX3N0
YWdlKTsNCisJCQlfX2lkZXRhcGVfa2ZyZWVfc3RhZ2UodGFwZS0+bWVyZ2Vf
c3RhZ2UpOw0KIAkJCXRhcGUtPm1lcmdlX3N0YWdlID0gTlVMTDsNCiAJCQl0
YXBlLT5jaHJkZXZfZGlyZWN0aW9uID0gaWRldGFwZV9kaXJlY3Rpb25fbm9u
ZTsNCiAJCQlyZXR1cm4gYnl0ZXNfcmVhZDsNCkBAIC0zOTYzLDcgKzQwMTgs
NyBAQA0KIAlycS5jbWQgPSBJREVUQVBFX1JFQURfUlE7DQogCXJxLnNlY3Rv
ciA9IHRhcGUtPmZpcnN0X2ZyYW1lX3Bvc2l0aW9uOw0KIAlycS5ucl9zZWN0
b3JzID0gcnEuY3VycmVudF9ucl9zZWN0b3JzID0gYmxvY2tzOw0KLQlpZiAo
IXRlc3RfYml0KElERVRBUEVfUElQRUxJTkVfRVJST1IsICZ0YXBlLT5mbGFn
cykgJiYgdGFwZS0+bnJfc3RhZ2VzIDw9IG1heF9zdGFnZXMpIHsNCisJaWYg
KCF0ZXN0X2JpdChJREVUQVBFX1BJUEVMSU5FX0VSUk9SLCAmdGFwZS0+Zmxh
Z3MpICYmIHRhcGUtPm5yX3N0YWdlcyA8IG1heF9zdGFnZXMpIHsNCiAJCW5l
d19zdGFnZSA9IGlkZXRhcGVfa21hbGxvY19zdGFnZSAodGFwZSk7DQogCQl3
aGlsZSAobmV3X3N0YWdlICE9IE5VTEwpIHsNCiAJCQluZXdfc3RhZ2UtPnJx
ID0gcnE7DQpAQCAtNDA3Myw2ICs0MTI4LDEyIEBADQogI2VuZGlmIC8qIElE
RVRBUEVfREVCVUdfTE9HICovDQogDQogCS8qDQorCSAqIElmIHdlIGFyZSBh
dCBhIGZpbGVtYXJrLCByZXR1cm4gYSByZWFkIGxlbmd0aCBvZiAwDQorCSAq
Lw0KKwlpZiAodGVzdF9iaXQoSURFVEFQRV9GSUxFTUFSSywgJnRhcGUtPmZs
YWdzKSkNCisJCXJldHVybiAwOw0KKw0KKwkvKg0KIAkgKiBXYWl0IGZvciB0
aGUgbmV4dCBsb2dpY2FsIGJsb2NrIHRvIGJlIGF2YWlsYWJsZSBhdCB0aGUg
aGVhZA0KIAkgKiBvZiB0aGUgcGlwZWxpbmUNCiAJICovDQpAQCAtNDA5OSwx
NCArNDE2MCw3IEBADQogCX0NCiAJaWYgKHJxX3B0ci0+ZXJyb3JzID09IElE
RVRBUEVfRVJST1JfRU9EKQ0KIAkJcmV0dXJuIDA7DQotCWlmIChycV9wdHIt
PmVycm9ycyA9PSBJREVUQVBFX0VSUk9SX0ZJTEVNQVJLKSB7DQotCQlpZGV0
YXBlX3N3aXRjaF9idWZmZXJzICh0YXBlLCB0YXBlLT5maXJzdF9zdGFnZSk7
DQotCQlzZXRfYml0IChJREVUQVBFX0ZJTEVNQVJLLCAmdGFwZS0+ZmxhZ3Mp
Ow0KLSNpZiBVU0VfSU9UUkFDRQ0KLQkJSU9fdHJhY2UoSU9fSURFVEFQRV9G
SUZPLCB0YXBlLT5waXBlbGluZV9oZWFkLCB0YXBlLT5idWZmZXJfaGVhZCwg
dGFwZS0+dGFwZV9oZWFkLCB0YXBlLT5taW5vcik7DQotI2VuZGlmDQotCQlj
YWxjdWxhdGVfc3BlZWRzKGRyaXZlKTsNCi0JfSBlbHNlIHsNCisJZWxzZSB7
DQogCQlpZGV0YXBlX3N3aXRjaF9idWZmZXJzICh0YXBlLCB0YXBlLT5maXJz
dF9zdGFnZSk7DQogCQlpZiAocnFfcHRyLT5lcnJvcnMgPT0gSURFVEFQRV9F
UlJPUl9HRU5FUkFMKSB7DQogI2lmIE9OU1RSRUFNX0RFQlVHDQpAQCAtNDEx
NCw3ICs0MTY4LDggQEANCiAJCQkJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRh
cGU6IGVycm9yIGRldGVjdGVkLCBieXRlc19yZWFkICVkXG4iLCBieXRlc19y
ZWFkKTsNCiAjZW5kaWYNCiAJCX0NCi0JCWNsZWFyX2JpdCAoSURFVEFQRV9G
SUxFTUFSSywgJnRhcGUtPmZsYWdzKTsNCisJCWlmIChycV9wdHItPmVycm9y
cyA9PSBJREVUQVBFX0VSUk9SX0ZJTEVNQVJLKQ0KKwkJCXNldF9iaXQoSURF
VEFQRV9GSUxFTUFSSywgJnRhcGUtPmZsYWdzKTsNCiAJCXNwaW5fbG9ja19p
cnFzYXZlKCZ0YXBlLT5zcGlubG9jaywgZmxhZ3MpOw0KIAkJaWRldGFwZV9y
ZW1vdmVfc3RhZ2VfaGVhZCAoZHJpdmUpOw0KIAkJc3Bpbl91bmxvY2tfaXJx
cmVzdG9yZSgmdGFwZS0+c3BpbmxvY2ssIGZsYWdzKTsNCkBAIC00NDc4LDYg
KzQ1MzMsMTQgQEANCiAJCXRhcGUtPnJlc3RhcnRfc3BlZWRfY29udHJvbF9y
ZXEgPSAxOw0KIAkJcmV0dXJuIHJldHZhbDsNCiAJfQ0KKyANCisJaWYgKG10
X2NvdW50ID09IDApDQorCQlyZXR1cm4gMDsNCisJaWYgKE1UQlNGID09IG10
X29wIHx8IE1UQlNGTSA9PSBtdF9vcCkgew0KKwkJaWYgKCF0YXBlLT5jYXBh
YmlsaXRpZXMuc3ByZXYpDQorCQkJcmV0dXJuIC1FSU87DQorCQltdF9jb3Vu
dCA9IC0gbXRfY291bnQ7DQorCX0NCiANCiAJaWYgKHRhcGUtPmNocmRldl9k
aXJlY3Rpb24gPT0gaWRldGFwZV9kaXJlY3Rpb25fcmVhZCkgew0KIAkJLyoN
CkBAIC00NDg1LDI4ICs0NTQ4LDM2IEBADQogCQkgKglmaWxlbWFya3MuDQog
CQkgKi8NCiAJCXRhcGUtPm1lcmdlX3N0YWdlX3NpemUgPSAwOw0KLQkJY2xl
YXJfYml0IChJREVUQVBFX0ZJTEVNQVJLLCAmdGFwZS0+ZmxhZ3MpOw0KKwkJ
aWYgKHRlc3RfYW5kX2NsZWFyX2JpdChJREVUQVBFX0ZJTEVNQVJLLCAmdGFw
ZS0+ZmxhZ3MpKQ0KKwkJCSsrY291bnQ7DQogCQl3aGlsZSAodGFwZS0+Zmly
c3Rfc3RhZ2UgIT0gTlVMTCkgew0KLQkJCWlkZXRhcGVfd2FpdF9maXJzdF9z
dGFnZShkcml2ZSk7DQotCQkJaWYgKHRhcGUtPmZpcnN0X3N0YWdlLT5ycS5l
cnJvcnMgPT0gSURFVEFQRV9FUlJPUl9GSUxFTUFSSykNCi0JCQkJY291bnQr
KzsNCiAJCQlpZiAoY291bnQgPT0gbXRfY291bnQpIHsNCi0JCQkJc3dpdGNo
IChtdF9vcCkgew0KLQkJCQkJY2FzZSBNVEZTRjoNCi0JCQkJCQlzcGluX2xv
Y2tfaXJxc2F2ZSgmdGFwZS0+c3BpbmxvY2ssIGZsYWdzKTsNCi0JCQkJCQlp
ZGV0YXBlX3JlbW92ZV9zdGFnZV9oZWFkIChkcml2ZSk7DQotCQkJCQkJc3Bp
bl91bmxvY2tfaXJxcmVzdG9yZSgmdGFwZS0+c3BpbmxvY2ssIGZsYWdzKTsN
Ci0JCQkJCWNhc2UgTVRGU0ZNOg0KLQkJCQkJCXJldHVybiAoMCk7DQotCQkJ
CQlkZWZhdWx0Og0KLQkJCQkJCWJyZWFrOw0KLQkJCQl9DQorCQkJCWlmICht
dF9vcCA9PSBNVEZTRk0pDQorCQkJCQlzZXRfYml0KElERVRBUEVfRklMRU1B
UkssICZ0YXBlLT5mbGFncyk7DQorCQkJCXJldHVybiAwOw0KIAkJCX0NCiAJ
CQlzcGluX2xvY2tfaXJxc2F2ZSgmdGFwZS0+c3BpbmxvY2ssIGZsYWdzKTsN
CisJCQlpZiAodGFwZS0+Zmlyc3Rfc3RhZ2UgPT0gdGFwZS0+YWN0aXZlX3N0
YWdlKSB7DQorCQkJCS8qDQorCQkJCSAqCVdlIGhhdmUgcmVhY2hlZCB0aGUg
YWN0aXZlIHN0YWdlIGluIHRoZSByZWFkIHBpcGVsaW5lLg0KKwkJCQkgKglU
aGVyZSBpcyBubyBwb2ludCBpbiBhbGxvd2luZyB0aGUgZHJpdmUgdG8gY29u
dGludWUNCisJCQkJICoJcmVhZGluZyBhbnkgZmFydGhlciwgc28gd2Ugc3Rv
cCB0aGUgcGlwZWxpbmUuDQorCQkJCSAqDQorCQkJCSAqCVRoaXMgc2VjdGlv
biBzaG91bGQgYmUgbW92ZWQgdG8gYSBzZXBhcmF0ZSBzdWJyb3V0aW5lLA0K
KwkJCQkgKgliZWNhdXNlIGEgc2ltaWxhciBmdW5jdGlvbiBpcyBwZXJmb3Jt
ZWQgaW4NCisJCQkJICoJX19pZGV0YXBlX2Rpc2NhcmRfcmVhZF9waXBlbGlu
ZSgpLCBmb3IgZXhhbXBsZS4NCisJCQkJICovDQorCQkJCXRhcGUtPm5leHRf
c3RhZ2UgPSBOVUxMOw0KKwkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0
YXBlLT5zcGlubG9jaywgZmxhZ3MpOw0KKwkJCQlpZGV0YXBlX3dhaXRfZmly
c3Rfc3RhZ2UoZHJpdmUpOw0KKwkJCQl0YXBlLT5uZXh0X3N0YWdlID0gdGFw
ZS0+Zmlyc3Rfc3RhZ2UtPm5leHQ7DQorCQkJfSBlbHNlDQorCQkJCXNwaW5f
dW5sb2NrX2lycXJlc3RvcmUoJnRhcGUtPnNwaW5sb2NrLCBmbGFncyk7DQor
CQkJaWYgKHRhcGUtPmZpcnN0X3N0YWdlLT5ycS5lcnJvcnMgPT0gSURFVEFQ
RV9FUlJPUl9GSUxFTUFSSykNCisJCQkJKytjb3VudDsNCiAJCQlpZGV0YXBl
X3JlbW92ZV9zdGFnZV9oZWFkIChkcml2ZSk7DQotCQkJc3Bpbl91bmxvY2tf
aXJxcmVzdG9yZSgmdGFwZS0+c3BpbmxvY2ssIGZsYWdzKTsNCiAJCX0NCi0J
CWlkZXRhcGVfZGlzY2FyZF9yZWFkX3BpcGVsaW5lIChkcml2ZSwgMSk7DQor
CQlpZGV0YXBlX2Rpc2NhcmRfcmVhZF9waXBlbGluZShkcml2ZSwgMCk7DQog
CX0NCiANCiAJLyoNCkBAIC00NTE1LDI1ICs0NTg2LDE3IEBADQogCSAqLw0K
IAlzd2l0Y2ggKG10X29wKSB7DQogCQljYXNlIE1URlNGOg0KKwkJY2FzZSBN
VEJTRjoNCiAJCQlpZGV0YXBlX2NyZWF0ZV9zcGFjZV9jbWQgKCZwYyxtdF9j
b3VudC1jb3VudCxJREVUQVBFX1NQQUNFX09WRVJfRklMRU1BUkspOw0KIAkJ
CXJldHVybiAoaWRldGFwZV9xdWV1ZV9wY190YWlsIChkcml2ZSwgJnBjKSk7
DQogCQljYXNlIE1URlNGTToNCi0JCQlpZiAoIXRhcGUtPmNhcGFiaWxpdGll
cy5zcHJldikNCi0JCQkJcmV0dXJuICgtRUlPKTsNCi0JCQlyZXR2YWwgPSBp
ZGV0YXBlX3NwYWNlX292ZXJfZmlsZW1hcmtzIChkcml2ZSwgTVRGU0YsIG10
X2NvdW50LWNvdW50KTsNCi0JCQlpZiAocmV0dmFsKSByZXR1cm4gKHJldHZh
bCk7DQotCQkJcmV0dXJuIChpZGV0YXBlX3NwYWNlX292ZXJfZmlsZW1hcmtz
IChkcml2ZSwgTVRCU0YsIDEpKTsNCi0JCWNhc2UgTVRCU0Y6DQotCQkJaWYg
KCF0YXBlLT5jYXBhYmlsaXRpZXMuc3ByZXYpDQotCQkJCXJldHVybiAoLUVJ
Tyk7DQotCQkJaWRldGFwZV9jcmVhdGVfc3BhY2VfY21kICgmcGMsLShtdF9j
b3VudCtjb3VudCksSURFVEFQRV9TUEFDRV9PVkVSX0ZJTEVNQVJLKTsNCi0J
CQlyZXR1cm4gKGlkZXRhcGVfcXVldWVfcGNfdGFpbCAoZHJpdmUsICZwYykp
Ow0KIAkJY2FzZSBNVEJTRk06DQogCQkJaWYgKCF0YXBlLT5jYXBhYmlsaXRp
ZXMuc3ByZXYpDQogCQkJCXJldHVybiAoLUVJTyk7DQotCQkJcmV0dmFsID0g
aWRldGFwZV9zcGFjZV9vdmVyX2ZpbGVtYXJrcyAoZHJpdmUsIE1UQlNGLCBt
dF9jb3VudCtjb3VudCk7DQorCQkJcmV0dmFsID0gaWRldGFwZV9zcGFjZV9v
dmVyX2ZpbGVtYXJrcyhkcml2ZSwgTVRGU0YsIG10X2NvdW50LWNvdW50KTsN
CiAJCQlpZiAocmV0dmFsKSByZXR1cm4gKHJldHZhbCk7DQotCQkJcmV0dXJu
IChpZGV0YXBlX3NwYWNlX292ZXJfZmlsZW1hcmtzIChkcml2ZSwgTVRGU0Ys
IDEpKTsNCisJCQljb3VudCA9IChNVEJTRk0gPT0gbXRfb3AgPyAxIDogLTEp
Ow0KKwkJCXJldHVybiAoaWRldGFwZV9zcGFjZV9vdmVyX2ZpbGVtYXJrcyhk
cml2ZSwgTVRGU0YsIGNvdW50KSk7DQogCQlkZWZhdWx0Og0KIAkJCXByaW50
ayAoS0VSTl9FUlIgImlkZS10YXBlOiBNVElPIG9wZXJhdGlvbiAlZCBub3Qg
c3VwcG9ydGVkXG4iLG10X29wKTsNCiAJCQlyZXR1cm4gKC1FSU8pOw0KQEAg
LTQ4NjIsNyArNDkyNSw3IEBADQogCQkgKi8NCiAJCXJldHZhbCA9IGlkZXRh
cGVfcXVldWVfcndfdGFpbCAoZHJpdmUsIElERVRBUEVfV1JJVEVfUlEsIDAs
IHRhcGUtPm1lcmdlX3N0YWdlLT5iaCk7DQogCQlpZiAocmV0dmFsIDwgMCkg
ew0KLQkJCWtmcmVlICh0YXBlLT5tZXJnZV9zdGFnZSk7DQorCQkJX19pZGV0
YXBlX2tmcmVlX3N0YWdlKHRhcGUtPm1lcmdlX3N0YWdlKTsNCiAJCQl0YXBl
LT5tZXJnZV9zdGFnZSA9IE5VTEw7DQogCQkJdGFwZS0+Y2hyZGV2X2RpcmVj
dGlvbiA9IGlkZXRhcGVfZGlyZWN0aW9uX25vbmU7DQogCQkJcmV0dXJuIHJl
dHZhbDsNCkBAIC01NDM2LDkgKzU0OTksMTEgQEANCiAJCU1PRF9ERUNfVVNF
X0NPVU5UOw0KIAkJcmV0dXJuIC1FQlVTWTsNCiAJfQ0KLQlpZGV0YXBlX3Jl
YWRfcG9zaXRpb24oZHJpdmUpOw0KKwlpZiAodGFwZS0+b25zdHJlYW0pDQor
CQlpZGV0YXBlX3JlYWRfcG9zaXRpb24oZHJpdmUpOw0KIAlNT0RfREVDX1VT
RV9DT1VOVDsNCi0JY2xlYXJfYml0IChJREVUQVBFX1BJUEVMSU5FX0VSUk9S
LCAmdGFwZS0+ZmxhZ3MpOw0KKwlpZiAodGFwZS0+Y2hyZGV2X2RpcmVjdGlv
biAhPSBpZGV0YXBlX2RpcmVjdGlvbl9yZWFkKQ0KKwkJY2xlYXJfYml0KElE
RVRBUEVfUElQRUxJTkVfRVJST1IsICZ0YXBlLT5mbGFncyk7DQogDQogCWlm
ICh0YXBlLT5jaHJkZXZfZGlyZWN0aW9uID09IGlkZXRhcGVfZGlyZWN0aW9u
X25vbmUpIHsNCiAJCU1PRF9JTkNfVVNFX0NPVU5UOw0KQEAgLTU1MTEsMTAg
KzU1NzYsMTEgQEANCiAJaWYgKG1pbm9yIDwgMTI4KQ0KIAkJKHZvaWQpIGlk
ZXRhcGVfcmV3aW5kX3RhcGUgKGRyaXZlKTsNCiAJaWYgKHRhcGUtPmNocmRl
dl9kaXJlY3Rpb24gPT0gaWRldGFwZV9kaXJlY3Rpb25fbm9uZSkgew0KLQkJ
aWYgKHRhcGUtPmRvb3JfbG9ja2VkICE9IERPT1JfRVhQTElDSVRMWV9MT0NL
RUQpIHsNCi0JCQlpZiAoaWRldGFwZV9jcmVhdGVfcHJldmVudF9jbWQoZHJp
dmUsICZwYywgMCkpDQorCQlpZiAodGFwZS0+ZG9vcl9sb2NrZWQgPT0gRE9P
Ul9MT0NLRUQpIHsNCisJCQlpZiAoaWRldGFwZV9jcmVhdGVfcHJldmVudF9j
bWQoZHJpdmUsICZwYywgMCkpIHsNCiAJCQkJaWYgKCFpZGV0YXBlX3F1ZXVl
X3BjX3RhaWwgKGRyaXZlLCAmcGMpKQ0KIAkJCQkJdGFwZS0+ZG9vcl9sb2Nr
ZWQgPSBET09SX1VOTE9DS0VEOw0KKwkJCX0NCiAJCX0NCiAJCU1PRF9ERUNf
VVNFX0NPVU5UOw0KIAl9DQpAQCAtNTU0OCwzNCArNTYxNCwzNCBAQA0KIAlw
cmludGsgKEtFUk5fSU5GTyAiaWRlLXRhcGU6IER1bXBpbmcgQVRBUEkgSWRl
bnRpZnkgRGV2aWNlIHRhcGUgcGFyYW1ldGVyc1xuIik7DQogCXByaW50ayAo
S0VSTl9JTkZPICJpZGUtdGFwZTogUHJvdG9jb2wgVHlwZTogIik7DQogCXN3
aXRjaCAoZ2N3LnByb3RvY29sKSB7DQotCQljYXNlIDA6IGNhc2UgMTogcHJp
bnRrIChLRVJOX0lORk8gIkFUQVxuIik7YnJlYWs7DQotCQljYXNlIDI6CXBy
aW50ayAoS0VSTl9JTkZPICJBVEFQSVxuIik7YnJlYWs7DQotCQljYXNlIDM6
IHByaW50ayAoS0VSTl9JTkZPICJSZXNlcnZlZCAoVW5rbm93biB0byBpZGUt
dGFwZSlcbiIpO2JyZWFrOw0KKwkJY2FzZSAwOiBjYXNlIDE6IHByaW50ayAo
IkFUQVxuIik7YnJlYWs7DQorCQljYXNlIDI6CXByaW50ayAoIkFUQVBJXG4i
KTticmVhazsNCisJCWNhc2UgMzogcHJpbnRrICgiUmVzZXJ2ZWQgKFVua25v
d24gdG8gaWRlLXRhcGUpXG4iKTticmVhazsNCiAJfQ0KIAlwcmludGsgKEtF
Uk5fSU5GTyAiaWRlLXRhcGU6IERldmljZSBUeXBlOiAleCAtICIsZ2N3LmRl
dmljZV90eXBlKTsJDQogCXN3aXRjaCAoZ2N3LmRldmljZV90eXBlKSB7DQot
CQljYXNlIDA6IHByaW50ayAoS0VSTl9JTkZPICJEaXJlY3QtYWNjZXNzIERl
dmljZVxuIik7YnJlYWs7DQotCQljYXNlIDE6IHByaW50ayAoS0VSTl9JTkZP
ICJTdHJlYW1pbmcgVGFwZSBEZXZpY2VcbiIpO2JyZWFrOw0KLQkJY2FzZSAy
OiBjYXNlIDM6IGNhc2UgNDogcHJpbnRrIChLRVJOX0lORk8gIlJlc2VydmVk
XG4iKTticmVhazsNCi0JCWNhc2UgNTogcHJpbnRrIChLRVJOX0lORk8gIkNE
LVJPTSBEZXZpY2VcbiIpO2JyZWFrOw0KLQkJY2FzZSA2OiBwcmludGsgKEtF
Uk5fSU5GTyAiUmVzZXJ2ZWRcbiIpOw0KLQkJY2FzZSA3OiBwcmludGsgKEtF
Uk5fSU5GTyAiT3B0aWNhbCBtZW1vcnkgRGV2aWNlXG4iKTticmVhazsNCi0J
CWNhc2UgMHgxZjogcHJpbnRrIChLRVJOX0lORk8gIlVua25vd24gb3Igbm8g
RGV2aWNlIHR5cGVcbiIpO2JyZWFrOw0KLQkJZGVmYXVsdDogcHJpbnRrIChL
RVJOX0lORk8gIlJlc2VydmVkXG4iKTsNCisJCWNhc2UgMDogcHJpbnRrICgi
RGlyZWN0LWFjY2VzcyBEZXZpY2VcbiIpO2JyZWFrOw0KKwkJY2FzZSAxOiBw
cmludGsgKCJTdHJlYW1pbmcgVGFwZSBEZXZpY2VcbiIpO2JyZWFrOw0KKwkJ
Y2FzZSAyOiBjYXNlIDM6IGNhc2UgNDogcHJpbnRrICgiUmVzZXJ2ZWRcbiIp
O2JyZWFrOw0KKwkJY2FzZSA1OiBwcmludGsgKCJDRC1ST00gRGV2aWNlXG4i
KTticmVhazsNCisJCWNhc2UgNjogcHJpbnRrICgiUmVzZXJ2ZWRcbiIpOw0K
KwkJY2FzZSA3OiBwcmludGsgKCJPcHRpY2FsIG1lbW9yeSBEZXZpY2VcbiIp
O2JyZWFrOw0KKwkJY2FzZSAweDFmOiBwcmludGsgKCJVbmtub3duIG9yIG5v
IERldmljZSB0eXBlXG4iKTticmVhazsNCisJCWRlZmF1bHQ6IHByaW50ayAo
IlJlc2VydmVkXG4iKTsNCiAJfQ0KIAlwcmludGsgKEtFUk5fSU5GTyAiaWRl
LXRhcGU6IFJlbW92YWJsZTogJXMiLGdjdy5yZW1vdmFibGUgPyAiWWVzXG4i
OiJOb1xuIik7CQ0KIAlwcmludGsgKEtFUk5fSU5GTyAiaWRlLXRhcGU6IENv
bW1hbmQgUGFja2V0IERSUSBUeXBlOiAiKTsNCiAJc3dpdGNoIChnY3cuZHJx
X3R5cGUpIHsNCi0JCWNhc2UgMDogcHJpbnRrIChLRVJOX0lORk8gIk1pY3Jv
cHJvY2Vzc29yIERSUVxuIik7YnJlYWs7DQotCQljYXNlIDE6IHByaW50ayAo
S0VSTl9JTkZPICJJbnRlcnJ1cHQgRFJRXG4iKTticmVhazsNCi0JCWNhc2Ug
MjogcHJpbnRrIChLRVJOX0lORk8gIkFjY2VsZXJhdGVkIERSUVxuIik7YnJl
YWs7DQotCQljYXNlIDM6IHByaW50ayAoS0VSTl9JTkZPICJSZXNlcnZlZFxu
Iik7YnJlYWs7DQorCQljYXNlIDA6IHByaW50ayAoIk1pY3JvcHJvY2Vzc29y
IERSUVxuIik7YnJlYWs7DQorCQljYXNlIDE6IHByaW50ayAoIkludGVycnVw
dCBEUlFcbiIpO2JyZWFrOw0KKwkJY2FzZSAyOiBwcmludGsgKCJBY2NlbGVy
YXRlZCBEUlFcbiIpO2JyZWFrOw0KKwkJY2FzZSAzOiBwcmludGsgKCJSZXNl
cnZlZFxuIik7YnJlYWs7DQogCX0NCiAJcHJpbnRrIChLRVJOX0lORk8gImlk
ZS10YXBlOiBDb21tYW5kIFBhY2tldCBTaXplOiAiKTsNCiAJc3dpdGNoIChn
Y3cucGFja2V0X3NpemUpIHsNCi0JCWNhc2UgMDogcHJpbnRrIChLRVJOX0lO
Rk8gIjEyIGJ5dGVzXG4iKTticmVhazsNCi0JCWNhc2UgMTogcHJpbnRrIChL
RVJOX0lORk8gIjE2IGJ5dGVzXG4iKTticmVhazsNCi0JCWRlZmF1bHQ6IHBy
aW50ayAoS0VSTl9JTkZPICJSZXNlcnZlZFxuIik7YnJlYWs7DQorCQljYXNl
IDA6IHByaW50ayAoIjEyIGJ5dGVzXG4iKTticmVhazsNCisJCWNhc2UgMTog
cHJpbnRrICgiMTYgYnl0ZXNcbiIpO2JyZWFrOw0KKwkJZGVmYXVsdDogcHJp
bnRrICgiUmVzZXJ2ZWRcbiIpO2JyZWFrOw0KIAl9DQogCXByaW50ayAoS0VS
Tl9JTkZPICJpZGUtdGFwZTogTW9kZWw6ICUuNDBzXG4iLGlkLT5tb2RlbCk7
DQogCXByaW50ayAoS0VSTl9JTkZPICJpZGUtdGFwZTogRmlybXdhcmUgUmV2
aXNpb246ICUuOHNcbiIsaWQtPmZ3X3Jldik7DQpAQCAtNTU5MSw0NCArNTY1
Nyw0NCBAQA0KIAlwcmludGsgKEtFUk5fSU5GTyAiaWRlLXRhcGU6IFNpbmds
ZSBXb3JkIERNQSBzdXBwb3J0ZWQgbW9kZXM6ICIpOw0KIAlmb3IgKGk9MCxt
YXNrPTE7aTw4O2krKyxtYXNrPW1hc2sgPDwgMSkgew0KIAkJaWYgKGlkLT5k
bWFfMXdvcmQgJiBtYXNrKQ0KLQkJCXByaW50ayAoS0VSTl9JTkZPICIlZCAi
LGkpOw0KKwkJCXByaW50ayAoIiVkICIsaSk7DQogCQlpZiAoaWQtPmRtYV8x
d29yZCAmIChtYXNrIDw8IDgpKQ0KLQkJCXByaW50ayAoS0VSTl9JTkZPICIo
YWN0aXZlKSAiKTsNCisJCQlwcmludGsgKCIoYWN0aXZlKSAiKTsNCiAJfQ0K
LQlwcmludGsgKEtFUk5fSU5GTyAiXG4iKTsNCisJcHJpbnRrICgiXG4iKTsN
CiAJcHJpbnRrIChLRVJOX0lORk8gImlkZS10YXBlOiBNdWx0aSBXb3JkIERN
QSBzdXBwb3J0ZWQgbW9kZXM6ICIpOw0KIAlmb3IgKGk9MCxtYXNrPTE7aTw4
O2krKyxtYXNrPW1hc2sgPDwgMSkgew0KIAkJaWYgKGlkLT5kbWFfbXdvcmQg
JiBtYXNrKQ0KLQkJCXByaW50ayAoS0VSTl9JTkZPICIlZCAiLGkpOw0KKwkJ
CXByaW50ayAoIiVkICIsaSk7DQogCQlpZiAoaWQtPmRtYV9td29yZCAmICht
YXNrIDw8IDgpKQ0KLQkJCXByaW50ayAoS0VSTl9JTkZPICIoYWN0aXZlKSAi
KTsNCisJCQlwcmludGsgKCIoYWN0aXZlKSAiKTsNCiAJfQ0KLQlwcmludGsg
KEtFUk5fSU5GTyAiXG4iKTsNCisJcHJpbnRrICgiXG4iKTsNCiAJaWYgKGlk
LT5maWVsZF92YWxpZCAmIDB4MDAwMikgew0KIAkJcHJpbnRrIChLRVJOX0lO
Rk8gImlkZS10YXBlOiBFbmhhbmNlZCBQSU8gTW9kZXM6ICVzXG4iLGlkLT5l
aWRlX3Bpb19tb2RlcyAmIDEgPyAiTW9kZSAzIjoiTm9uZSIpOw0KIAkJcHJp
bnRrIChLRVJOX0lORk8gImlkZS10YXBlOiBNaW5pbXVtIE11bHRpLXdvcmQg
RE1BIGN5Y2xlIHBlciB3b3JkOiAiKTsNCiAJCWlmIChpZC0+ZWlkZV9kbWFf
bWluID09IDApDQotCQkJcHJpbnRrIChLRVJOX0lORk8gIk5vdCBzdXBwb3J0
ZWRcbiIpOw0KKwkJCXByaW50ayAoIk5vdCBzdXBwb3J0ZWRcbiIpOw0KIAkJ
ZWxzZQ0KLQkJCXByaW50ayAoS0VSTl9JTkZPICIlZCBuc1xuIixpZC0+ZWlk
ZV9kbWFfbWluKTsNCisJCQlwcmludGsgKCIlZCBuc1xuIixpZC0+ZWlkZV9k
bWFfbWluKTsNCiANCiAJCXByaW50ayAoS0VSTl9JTkZPICJpZGUtdGFwZTog
TWFudWZhY3R1cmVyXCdzIFJlY29tbWVuZGVkIE11bHRpLXdvcmQgY3ljbGU6
ICIpOw0KIAkJaWYgKGlkLT5laWRlX2RtYV90aW1lID09IDApDQotCQkJcHJp
bnRrIChLRVJOX0lORk8gIk5vdCBzdXBwb3J0ZWRcbiIpOw0KKwkJCXByaW50
ayAoIk5vdCBzdXBwb3J0ZWRcbiIpOw0KIAkJZWxzZQ0KLQkJCXByaW50ayAo
S0VSTl9JTkZPICIlZCBuc1xuIixpZC0+ZWlkZV9kbWFfdGltZSk7DQorCQkJ
cHJpbnRrICgiJWQgbnNcbiIsaWQtPmVpZGVfZG1hX3RpbWUpOw0KIA0KIAkJ
cHJpbnRrIChLRVJOX0lORk8gImlkZS10YXBlOiBNaW5pbXVtIFBJTyBjeWNs
ZSB3aXRob3V0IElPUkRZOiAiKTsNCiAJCWlmIChpZC0+ZWlkZV9waW8gPT0g
MCkNCi0JCQlwcmludGsgKEtFUk5fSU5GTyAiTm90IHN1cHBvcnRlZFxuIik7
DQorCQkJcHJpbnRrICgiTm90IHN1cHBvcnRlZFxuIik7DQogCQllbHNlDQot
CQkJcHJpbnRrIChLRVJOX0lORk8gIiVkIG5zXG4iLGlkLT5laWRlX3Bpbyk7
DQorCQkJcHJpbnRrICgiJWQgbnNcbiIsaWQtPmVpZGVfcGlvKTsNCiANCiAJ
CXByaW50ayAoS0VSTl9JTkZPICJpZGUtdGFwZTogTWluaW11bSBQSU8gY3lj
bGUgd2l0aCBJT1JEWTogIik7DQogCQlpZiAoaWQtPmVpZGVfcGlvX2lvcmR5
ID09IDApDQotCQkJcHJpbnRrIChLRVJOX0lORk8gIk5vdCBzdXBwb3J0ZWRc
biIpOw0KKwkJCXByaW50ayAoIk5vdCBzdXBwb3J0ZWRcbiIpOw0KIAkJZWxz
ZQ0KLQkJCXByaW50ayAoS0VSTl9JTkZPICIlZCBuc1xuIixpZC0+ZWlkZV9w
aW9faW9yZHkpOw0KKwkJCXByaW50ayAoIiVkIG5zXG4iLGlkLT5laWRlX3Bp
b19pb3JkeSk7DQogCQkNCiAJfSBlbHNlDQogCQlwcmludGsgKEtFUk5fSU5G
TyAiaWRlLXRhcGU6IEFjY29yZGluZyB0byB0aGUgZGV2aWNlLCBmaWVsZHMg
NjQtNzAgYXJlIG5vdCB2YWxpZC5cbiIpOw0KQEAgLTU5MzcsOSArNjAwMyw5
IEBADQogICoJCQlkcml2ZQlzZXR0aW5nIG5hbWUJcmVhZC93cml0ZQlpb2N0
bAlpb2N0bAkJZGF0YSB0eXBlCW1pbgkJCW1heAkJCW11bF9mYWN0b3IJCQlk
aXZfZmFjdG9yCQkJZGF0YSBwb2ludGVyCQkJCXNldCBmdW5jdGlvbg0KICAq
Lw0KIAlpZGVfYWRkX3NldHRpbmcoZHJpdmUsCSJidWZmZXIiLAlTRVRUSU5H
X1JFQUQsCS0xLAktMSwJCVRZUEVfU0hPUlQsCTAsCQkJMHhmZmZmLAkJCTEs
CQkJCTIsCQkJCSZ0YXBlLT5jYXBhYmlsaXRpZXMuYnVmZmVyX3NpemUsCU5V
TEwpOw0KLQlpZGVfYWRkX3NldHRpbmcoZHJpdmUsCSJwaXBlbGluZV9taW4i
LAlTRVRUSU5HX1JXLAktMSwJLTEsCQlUWVBFX0lOVCwJMiwJCQkweGZmZmYs
CQkJdGFwZS0+c3RhZ2Vfc2l6ZSAvIDEwMjQsCTEsCQkJCSZ0YXBlLT5taW5f
cGlwZWxpbmUsCQkJTlVMTCk7DQotCWlkZV9hZGRfc2V0dGluZyhkcml2ZSwJ
InBpcGVsaW5lIiwJU0VUVElOR19SVywJLTEsCS0xLAkJVFlQRV9JTlQsCTIs
CQkJMHhmZmZmLAkJCXRhcGUtPnN0YWdlX3NpemUgLyAxMDI0LAkxLAkJCQkm
dGFwZS0+bWF4X3N0YWdlcywJCQlOVUxMKTsNCi0JaWRlX2FkZF9zZXR0aW5n
KGRyaXZlLAkicGlwZWxpbmVfbWF4IiwJU0VUVElOR19SVywJLTEsCS0xLAkJ
VFlQRV9JTlQsCTIsCQkJMHhmZmZmLAkJCXRhcGUtPnN0YWdlX3NpemUgLyAx
MDI0LAkxLAkJCQkmdGFwZS0+bWF4X3BpcGVsaW5lLAkJCU5VTEwpOw0KKwlp
ZGVfYWRkX3NldHRpbmcoZHJpdmUsCSJwaXBlbGluZV9taW4iLAlTRVRUSU5H
X1JXLAktMSwJLTEsCQlUWVBFX0lOVCwJMSwJCQkweGZmZmYsCQkJdGFwZS0+
c3RhZ2Vfc2l6ZSAvIDEwMjQsCTEsCQkJCSZ0YXBlLT5taW5fcGlwZWxpbmUs
CQkJTlVMTCk7DQorCWlkZV9hZGRfc2V0dGluZyhkcml2ZSwJInBpcGVsaW5l
IiwJU0VUVElOR19SVywJLTEsCS0xLAkJVFlQRV9JTlQsCTEsCQkJMHhmZmZm
LAkJCXRhcGUtPnN0YWdlX3NpemUgLyAxMDI0LAkxLAkJCQkmdGFwZS0+bWF4
X3N0YWdlcywJCQlOVUxMKTsNCisJaWRlX2FkZF9zZXR0aW5nKGRyaXZlLAki
cGlwZWxpbmVfbWF4IiwJU0VUVElOR19SVywJLTEsCS0xLAkJVFlQRV9JTlQs
CTEsCQkJMHhmZmZmLAkJCXRhcGUtPnN0YWdlX3NpemUgLyAxMDI0LAkxLAkJ
CQkmdGFwZS0+bWF4X3BpcGVsaW5lLAkJCU5VTEwpOw0KIAlpZGVfYWRkX3Nl
dHRpbmcoZHJpdmUsCSJwaXBlbGluZV91c2VkIixTRVRUSU5HX1JFQUQsCS0x
LAktMSwJCVRZUEVfSU5ULAkwLAkJCTB4ZmZmZiwJCQl0YXBlLT5zdGFnZV9z
aXplIC8gMTAyNCwJMSwJCQkJJnRhcGUtPm5yX3N0YWdlcywJCQlOVUxMKTsN
CiAJaWRlX2FkZF9zZXR0aW5nKGRyaXZlLAkicGlwZWxpbmVfcGVuZGluZyIs
U0VUVElOR19SRUFELC0xLAktMSwJCVRZUEVfSU5ULAkwLAkJCTB4ZmZmZiwJ
CQl0YXBlLT5zdGFnZV9zaXplIC8gMTAyNCwJMSwJCQkJJnRhcGUtPm5yX3Bl
bmRpbmdfc3RhZ2VzLAkJTlVMTCk7DQogCWlkZV9hZGRfc2V0dGluZyhkcml2
ZSwJInNwZWVkIiwJU0VUVElOR19SRUFELAktMSwJLTEsCQlUWVBFX1NIT1JU
LAkwLAkJCTB4ZmZmZiwJCQkxLAkJCQkxLAkJCQkmdGFwZS0+Y2FwYWJpbGl0
aWVzLnNwZWVkLAkJTlVMTCk7DQpAQCAtNjA1NCw4ICs2MTIwLDExIEBADQog
CXNpX21lbWluZm8oJnNpKTsNCiAJaWYgKCB0YXBlLT5tYXhfc3RhZ2VzICog
dGFwZS0+c3RhZ2Vfc2l6ZSA+IHNpLnRvdGFscmFtICogc2kubWVtX3VuaXQg
LyAxMCkNCiAJCXRhcGUtPm1heF9zdGFnZXMgPSBzaS50b3RhbHJhbSAqIHNp
Lm1lbV91bml0IC8gKDEwICogdGFwZS0+c3RhZ2Vfc2l6ZSk7DQotCXRhcGUt
Pm1pbl9waXBlbGluZSA9IHRhcGUtPm1heF9zdGFnZXM7DQotCXRhcGUtPm1h
eF9waXBlbGluZSA9IHRhcGUtPm1heF9zdGFnZXMgKiAyOw0KKwl0YXBlLT5t
YXhfc3RhZ2VzICAgPSBJREVfTUlOKHRhcGUtPm1heF9zdGFnZXMsIElERVRB
UEVfTUFYX1BJUEVMSU5FX1NUQUdFUyk7DQorCXRhcGUtPm1pbl9waXBlbGlu
ZSA9IElERV9NSU4odGFwZS0+bWF4X3N0YWdlcywgSURFVEFQRV9NSU5fUElQ
RUxJTkVfU1RBR0VTKTsNCisJdGFwZS0+bWF4X3BpcGVsaW5lID0gSURFX01J
Tih0YXBlLT5tYXhfc3RhZ2VzICogMiwgSURFVEFQRV9NQVhfUElQRUxJTkVf
U1RBR0VTKTsNCisJaWYgKHRhcGUtPm1heF9zdGFnZXMgPT0gMCkNCisJCXRh
cGUtPm1heF9zdGFnZXMgPSB0YXBlLT5taW5fcGlwZWxpbmUgPSB0YXBlLT5t
YXhfcGlwZWxpbmUgPSAxOw0KIA0KIAl0MSA9ICh0YXBlLT5zdGFnZV9zaXpl
ICogSFopIC8gKHNwZWVkICogMTAwMCk7DQogCXRtaWQgPSAodGFwZS0+Y2Fw
YWJpbGl0aWVzLmJ1ZmZlcl9zaXplICogMzIgKiBIWikgLyAoc3BlZWQgKiAx
MjUpOw0K
---2084555674-1595446852-1039464219=:2204
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ide-tape.c.patch-2.5.50"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33L2.0212091503391.2204@ida.rowland.org>
Content-Description: ide-tape patch for 2.5.50
Content-Disposition: attachment; filename="ide-tape.c.patch-2.5.50"

LS0tIGxpbnV4L2RyaXZlcnMvaWRlL2lkZS10YXBlLmMub3JpZwlNb24gRGVj
ICA5IDE0OjQyOjA3IDIwMDINCisrKyBsaW51eC9kcml2ZXJzL2lkZS9pZGUt
dGFwZS5jCU1vbiBEZWMgIDkgMTQ6NDY6MDQgMjAwMg0KQEAgLTEsNSArMSw1
IEBADQogLyoNCi0gKiBsaW51eC9kcml2ZXJzL2lkZS9pZGUtdGFwZS5jCQlW
ZXJzaW9uIDEuMTdhCUphbiwgMjAwMQ0KKyAqIGxpbnV4L2RyaXZlcnMvaWRl
L2lkZS10YXBlLmMJCVZlcnNpb24gMS4xN2IJT2N0LCAyMDAyDQogICoNCiAg
KiBDb3B5cmlnaHQgKEMpIDE5OTUgLSAxOTk5IEdhZGkgT3htYW4gPGdhZGlv
QG5ldHZpc2lvbi5uZXQuaWw+DQogICoNCkBAIC0yOTEsNiArMjkxLDI4IEBA
DQogICogVmVyIDEuMTdhIEFwciAyMDAxIFdpbGxlbSBSaWVkZSBvc3N0QHJp
ZWRlLm9yZw0KICAqIAkJCS0gR2V0IGRyaXZlJ3MgYWN0dWFsIGJsb2NrIHNp
emUgZnJvbSBtb2RlIHNlbnNlIGJsb2NrIGRlc2NyaXB0b3INCiAgKiAJCQkt
IExpbWl0IHNpemUgb2YgcGlwZWxpbmUNCisgKiBWZXIgMS4xN2IgT2N0IDIw
MDIgICBBbGFuIFN0ZXJuIDxzdGVybkByb3dsYW5kLmhhcnZhcmQuZWR1Pg0K
KyAqCQkJQ2hhbmdlZCBJREVUQVBFX01JTl9QSVBFTElORV9TVEFHRVMgdG8g
MSBhbmQgYWN0dWFsbHkgdXNlZA0KKyAqCQkJIGl0IGluIHRoZSBjb2RlIQ0K
KyAqCQkJQWN0dWFsbHkgcmVtb3ZlZCBhYm9ydGVkIHN0YWdlcyBpbiBpZGV0
YXBlX2Fib3J0X3BpcGVsaW5lDQorICoJCQkgaW5zdGVhZCBvZiBqdXN0IGNo
YW5naW5nIHRoZSBjb21tYW5kIGNvZGUuDQorICoJCQlNYWRlIHRoZSB0cmFu
c2ZlciBieXRlIGNvdW50IGZvciBSZXF1ZXN0IFNlbnNlIGVxdWFsIHRvIHRo
ZQ0KKyAqCQkJIGFjdHVhbCBsZW5ndGggb2YgdGhlIGRhdGEgdHJhbnNmZXIu
DQorICoJCQlDaGFuZ2VkIGhhbmRsaW5nIG9mIHBhcnRpYWwgZGF0YSB0cmFu
c2ZlcnM6IHRoZXkgZG8gbm90DQorICoJCQkgY2F1c2UgRE1BIGVycm9ycy4N
CisgKgkJCU1vdmVkIGluaXRpYXRpb24gb2YgRE1BIHRyYW5zZmVycyB0byB0
aGUgY29ycmVjdCBwbGFjZS4NCisgKgkJCVJlbW92ZWQgcmVmZXJlbmNlIHRv
IHVuYWxsb2NhdGVkIG1lbW9yeS4NCisgKgkJCU1hZGUgX19pZGV0YXBlX2Rp
c2NhcmRfcmVhZF9waXBlbGluZSByZXR1cm4gdGhlIG51bWJlciBvZg0KKyAq
CQkJIHNlY3RvcnMgc2tpcHBlZCwgbm90IHRoZSBudW1iZXIgb2Ygc3RhZ2Vz
Lg0KKyAqCQkJUmVwbGFjZWQgZXJyYW50IGtmcmVlKCkgY2FsbHMgd2l0aCBf
X2lkZXRhcGVfa2ZyZWVfc3RhZ2UoKS4NCisgKgkJCUZpeGVkIG9mZi1ieS1v
bmUgZXJyb3IgaW4gdGVzdGluZyB0aGUgcGlwZWxpbmUgbGVuZ3RoLg0KKyAq
CQkJRml4ZWQgaGFuZGxpbmcgb2YgZmlsZW1hcmtzIGluIHRoZSByZWFkIHBp
cGVsaW5lLg0KKyAqCQkJU21hbGwgY29kZSBvcHRpbWl6YXRpb24gZm9yIE1U
QlNGIGFuZCBNVEJTRk0gaW9jdGxzLg0KKyAqCQkJRG9uJ3QgdHJ5IHRvIHVu
bG9jayB0aGUgZG9vciBkdXJpbmcgZGV2aWNlIGNsb3NlIGlmIGlzDQorICoJ
CQkgYWxyZWFkeSB1bmxvY2tlZCENCisgKgkJCUNvc21ldGljIGZpeGVzIHRv
IG1pc2NlbGxhbmVvdXMgZGVidWdnaW5nIG91dHB1dCBtZXNzYWdlcy4NCisg
KgkJCVNldCB0aGUgbWluaW11bSAvcHJvYy9pZGUvaGQ/L3NldHRpbmdzIHZh
bHVlcyBmb3IgInBpcGVsaW5lIiwNCisgKgkJCSAicGlwZWxpbmVfbWluIiwg
YW5kICJwaXBlbGluZV9tYXgiIHRvIDEuDQogICoNCiAgKiBIZXJlIGFyZSBz
b21lIHdvcmRzIGZyb20gdGhlIGZpcnN0IHJlbGVhc2VzIG9mIGhkLmMsIHdo
aWNoIGFyZSBxdW90ZWQNCiAgKiBpbiBpZGUuYyBhbmQgYXBwbHkgaGVyZSBh
cyB3ZWxsOg0KQEAgLTQwMCw3ICs0MjIsNyBAQA0KICAqCQlzaGFyaW5nIGEg
KGZhc3QpIEFUQS0yIGRpc2sgd2l0aCBhbnkgKHNsb3cpIG5ldyBBVEFQSSBk
ZXZpY2UuDQogICovDQogDQotI2RlZmluZSBJREVUQVBFX1ZFUlNJT04gIjEu
MTdhIg0KKyNkZWZpbmUgSURFVEFQRV9WRVJTSU9OICIxLjE3YiINCiANCiAj
aW5jbHVkZSA8bGludXgvY29uZmlnLmg+DQogI2luY2x1ZGUgPGxpbnV4L21v
ZHVsZS5oPg0KQEAgLTU3Nyw5ICs1OTksMTAgQEANCiAgKgl3aGVuZXZlciB3
ZSBzZW5zZSB0aGF0IHRoZSBwaXBlbGluZSBpcyBlbXB0eSwgdW50aWwgd2Ug
cmVhY2gNCiAgKgl0aGUgb3B0aW11bSB2YWx1ZSBvciB1bnRpbCB3ZSByZWFj
aCBNQVguDQogICoNCi0gKglTZXR0aW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1l
dGVyIHRvIDAgd2lsbCBkaXNhYmxlIHRoZSBwaXBlbGluZWQgbW9kZS4NCisg
KglTZXR0aW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyIHRvIDAgaXMgaWxs
ZWdhbDogdGhlIHBpcGVsaW5lZCBtb2RlDQorICoJY2Fubm90IGJlIGRpc2Fi
bGVkIChjYWxjdWxhdGVfc3BlZWRzKCkgZGl2aWRlcyBieSB0YXBlLT5tYXhf
c3RhZ2VzLikNCiAgKi8NCi0jZGVmaW5lIElERVRBUEVfTUlOX1BJUEVMSU5F
X1NUQUdFUwkyMDANCisjZGVmaW5lIElERVRBUEVfTUlOX1BJUEVMSU5FX1NU
QUdFUwkgIDENCiAjZGVmaW5lIElERVRBUEVfTUFYX1BJUEVMSU5FX1NUQUdF
Uwk0MDANCiAjZGVmaW5lIElERVRBUEVfSU5DUkVBU0VfU1RBR0VTX1JBVEUJ
IDIwDQogDQpAQCAtNjAxLDggKzYyNCw4IEBADQogICoJaXMgdmVyaWZpZWQg
dG8gYmUgc3RhYmxlIGVub3VnaC4gVGhpcyB3aWxsIG1ha2UgaXQgbXVjaCBt
b3JlDQogICoJZXN0aGV0aWMuDQogICovDQotI2RlZmluZSBJREVUQVBFX0RF
QlVHX0lORk8JCTENCi0jZGVmaW5lIElERVRBUEVfREVCVUdfTE9HCQkxDQor
I2RlZmluZSBJREVUQVBFX0RFQlVHX0lORk8JCTANCisjZGVmaW5lIElERVRB
UEVfREVCVUdfTE9HCQkwDQogI2RlZmluZSBJREVUQVBFX0RFQlVHX0xPR19W
RVJCT1NFCTANCiAjZGVmaW5lIElERVRBUEVfREVCVUdfQlVHUwkJMQ0KIA0K
QEAgLTE2MTAsMjQgKzE2MzMsNiBAQA0KIAl9DQogfQ0KIA0KLXN0YXRpYyB2
b2lkIGlkZXRhcGVfYWJvcnRfcGlwZWxpbmUgKGlkZV9kcml2ZV90ICpkcml2
ZSkNCi17DQotCWlkZXRhcGVfdGFwZV90ICp0YXBlID0gZHJpdmUtPmRyaXZl
cl9kYXRhOw0KLQlpZGV0YXBlX3N0YWdlX3QgKnN0YWdlID0gdGFwZS0+bmV4
dF9zdGFnZTsNCi0NCi0jaWYgSURFVEFQRV9ERUJVR19MT0cNCi0JaWYgKHRh
cGUtPmRlYnVnX2xldmVsID49IDQpDQotCQlwcmludGsoS0VSTl9JTkZPICJp
ZGUtdGFwZTogJXM6IGlkZXRhcGVfYWJvcnRfcGlwZWxpbmUgY2FsbGVkXG4i
LCB0YXBlLT5uYW1lKTsNCi0jZW5kaWYNCi0Jd2hpbGUgKHN0YWdlKSB7DQot
CQlpZiAoc3RhZ2UtPnJxLmZsYWdzID09IElERVRBUEVfV1JJVEVfUlEpDQot
CQkJc3RhZ2UtPnJxLmZsYWdzID0gSURFVEFQRV9BQk9SVEVEX1dSSVRFX1JR
Ow0KLQkJZWxzZSBpZiAoc3RhZ2UtPnJxLmZsYWdzID09IElERVRBUEVfUkVB
RF9SUSkNCi0JCQlzdGFnZS0+cnEuZmxhZ3MgPSBJREVUQVBFX0FCT1JURURf
UkVBRF9SUTsNCi0JCXN0YWdlID0gc3RhZ2UtPm5leHQ7DQotCX0NCi19DQot
DQogLyoNCiAgKiBpZGV0YXBlX2FjdGl2ZV9uZXh0X3N0YWdlIHdpbGwgZGVj
bGFyZSB0aGUgbmV4dCBzdGFnZSBhcyAiYWN0aXZlIi4NCiAgKi8NCkBAIC0x
NjcyLDcgKzE2NzcsNyBAQA0KIAkJcHJpbnRrIChLRVJOX0lORk8gImlkZS10
YXBlOiBSZWFjaGVkIGlkZXRhcGVfaW5jcmVhc2VfbWF4X3BpcGVsaW5lX3N0
YWdlc1xuIik7DQogI2VuZGlmIC8qIElERVRBUEVfREVCVUdfTE9HICovDQog
DQotCXRhcGUtPm1heF9zdGFnZXMgKz0gaW5jcmVhc2U7DQorCXRhcGUtPm1h
eF9zdGFnZXMgKz0gbWF4KGluY3JlYXNlLCAxKTsNCiAJdGFwZS0+bWF4X3N0
YWdlcyA9IG1heCh0YXBlLT5tYXhfc3RhZ2VzLCB0YXBlLT5taW5fcGlwZWxp
bmUpOw0KIAl0YXBlLT5tYXhfc3RhZ2VzID0gbWluKHRhcGUtPm1heF9zdGFn
ZXMsIHRhcGUtPm1heF9waXBlbGluZSk7DQogfQ0KQEAgLTE3NDUsNiArMTc1
MCwyOSBAQA0KIAl9DQogfQ0KIA0KK3N0YXRpYyB2b2lkIGlkZXRhcGVfYWJv
cnRfcGlwZWxpbmUgKGlkZV9kcml2ZV90ICpkcml2ZSwgaWRldGFwZV9zdGFn
ZV90ICpsYXN0X3N0YWdlKQ0KK3sNCisJaWRldGFwZV90YXBlX3QgKnRhcGUg
PSBkcml2ZS0+ZHJpdmVyX2RhdGE7DQorCWlkZXRhcGVfc3RhZ2VfdCAqc3Rh
Z2UgPSB0YXBlLT5uZXh0X3N0YWdlOw0KKwlpZGV0YXBlX3N0YWdlX3QgKm5z
dGFnZTsNCisNCisjaWYgSURFVEFQRV9ERUJVR19MT0cNCisJaWYgKHRhcGUt
PmRlYnVnX2xldmVsID49IDQpDQorCQlwcmludGsoS0VSTl9JTkZPICJpZGUt
dGFwZTogJXM6IGlkZXRhcGVfYWJvcnRfcGlwZWxpbmUgY2FsbGVkXG4iLCB0
YXBlLT5uYW1lKTsNCisjZW5kaWYNCisJd2hpbGUgKHN0YWdlKSB7DQorCQlu
c3RhZ2UgPSBzdGFnZS0+bmV4dDsNCisJCWlkZXRhcGVfa2ZyZWVfc3RhZ2Uo
dGFwZSwgc3RhZ2UpOw0KKwkJLS10YXBlLT5ucl9zdGFnZXM7DQorCQktLXRh
cGUtPm5yX3BlbmRpbmdfc3RhZ2VzOw0KKwkJc3RhZ2UgPSBuc3RhZ2U7DQor
CX0NCisJdGFwZS0+bGFzdF9zdGFnZSA9IGxhc3Rfc3RhZ2U7DQorCWlmIChs
YXN0X3N0YWdlKQ0KKwkJbGFzdF9zdGFnZS0+bmV4dCA9IE5VTEw7DQorCXRh
cGUtPm5leHRfc3RhZ2UgPSBOVUxMOw0KK30NCisNCiAvKg0KICAqCWlkZXRh
cGVfZW5kX3JlcXVlc3QgaXMgdXNlZCB0byBmaW5pc2ggc2VydmljaW5nIGEg
cmVxdWVzdCwgYW5kIHRvDQogICoJaW5zZXJ0IGEgcGVuZGluZyBwaXBlbGlu
ZSByZXF1ZXN0IGludG8gdGhlIG1haW4gZGV2aWNlIHF1ZXVlLg0KQEAgLTE3
NTYsNiArMTc4NCw3IEBADQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogCWlu
dCBlcnJvcjsNCiAJaW50IHJlbW92ZV9zdGFnZSA9IDA7DQorCWlkZXRhcGVf
c3RhZ2VfdCAqYWN0aXZlX3N0YWdlOw0KICNpZiBPTlNUUkVBTV9ERUJVRw0K
IAlpZGV0YXBlX3N0YWdlX3QgKnN0YWdlOw0KIAlvc19hdXhfdCAqYXV4Ow0K
QEAgLTE3ODAsNiArMTgwOSw3IEBADQogDQogCS8qIFRoZSByZXF1ZXN0IHdh
cyBhIHBpcGVsaW5lZCBkYXRhIHRyYW5zZmVyIHJlcXVlc3QgKi8NCiAJaWYg
KHRhcGUtPmFjdGl2ZV9kYXRhX3JlcXVlc3QgPT0gcnEpIHsNCisJCWFjdGl2
ZV9zdGFnZSA9IHRhcGUtPmFjdGl2ZV9zdGFnZTsNCiAJCXRhcGUtPmFjdGl2
ZV9zdGFnZSA9IE5VTEw7DQogCQl0YXBlLT5hY3RpdmVfZGF0YV9yZXF1ZXN0
ID0gTlVMTDsNCiAJCXRhcGUtPm5yX3BlbmRpbmdfc3RhZ2VzLS07DQpAQCAt
MTgwMiwxNSArMTgzMiwxNyBAQA0KIAkJCQkJCXByaW50aygiaWRlLXRhcGU6
ICVzOiBza2lwcGluZyBvdmVyIGNvbmZpZyBwYXJpdGlvbi4uXG4iLCB0YXBl
LT5uYW1lKTsNCiAjZW5kaWYNCiAJCQkJCXRhcGUtPm9uc3RyZWFtX3dyaXRl
X2Vycm9yID0gT1NfUEFSVF9FUlJPUjsNCi0JCQkJCWlmICh0YXBlLT53YWl0
aW5nKQ0KKwkJCQkJaWYgKHRhcGUtPndhaXRpbmcpIHsNCisJCQkJCQlycS0+
d2FpdGluZyA9IE5VTEw7DQogCQkJCQkJY29tcGxldGUodGFwZS0+d2FpdGlu
Zyk7DQorCQkJCQl9DQogCQkJCX0NCiAJCQl9DQogCQkJcmVtb3ZlX3N0YWdl
ID0gMTsNCiAJCQlpZiAoZXJyb3IpIHsNCiAJCQkJc2V0X2JpdChJREVUQVBF
X1BJUEVMSU5FX0VSUk9SLCAmdGFwZS0+ZmxhZ3MpOw0KIAkJCQlpZiAoZXJy
b3IgPT0gSURFVEFQRV9FUlJPUl9FT0QpDQotCQkJCQlpZGV0YXBlX2Fib3J0
X3BpcGVsaW5lKGRyaXZlKTsNCisJCQkJCWlkZXRhcGVfYWJvcnRfcGlwZWxp
bmUoZHJpdmUsIGFjdGl2ZV9zdGFnZSk7DQogCQkJCWlmICh0YXBlLT5vbnN0
cmVhbSAmJiAhdGFwZS0+cmF3ICYmDQogCQkJCSAgICBlcnJvciA9PSBJREVU
QVBFX0VSUk9SX0dFTkVSQUwgJiYNCiAJCQkJICAgIHRhcGUtPnNlbnNlLnNl
bnNlX2tleSA9PSAzKSB7DQpAQCAtMTgyMSwxNCArMTg1MywxNiBAQA0KIAkJ
CQkJdGFwZS0+bnJfcGVuZGluZ19zdGFnZXMrKzsNCiAJCQkJCXRhcGUtPm5l
eHRfc3RhZ2UgPSB0YXBlLT5maXJzdF9zdGFnZTsNCiAJCQkJCXJxLT5jdXJy
ZW50X25yX3NlY3RvcnMgPSBycS0+bnJfc2VjdG9yczsNCi0JCQkJCWlmICh0
YXBlLT53YWl0aW5nKQ0KKwkJCQkJaWYgKHRhcGUtPndhaXRpbmcpIHsNCisJ
CQkJCQlycS0+d2FpdGluZyA9IE5VTEw7DQogCQkJCQkJY29tcGxldGUodGFw
ZS0+d2FpdGluZyk7DQorCQkJCQl9DQogCQkJCX0NCiAJCQl9DQogCQl9IGVs
c2UgaWYgKHJxLT5mbGFncyA9PSBJREVUQVBFX1JFQURfUlEpIHsNCiAJCQlp
ZiAoZXJyb3IgPT0gSURFVEFQRV9FUlJPUl9FT0QpIHsNCiAJCQkJc2V0X2Jp
dChJREVUQVBFX1BJUEVMSU5FX0VSUk9SLCAmdGFwZS0+ZmxhZ3MpOw0KLQkJ
CQlpZGV0YXBlX2Fib3J0X3BpcGVsaW5lKGRyaXZlKTsNCisJCQkJaWRldGFw
ZV9hYm9ydF9waXBlbGluZShkcml2ZSwgYWN0aXZlX3N0YWdlKTsNCiAJCQl9
DQogCQl9DQogCQlpZiAodGFwZS0+bmV4dF9zdGFnZSAhPSBOVUxMICYmICF0
YXBlLT5vbnN0cmVhbV93cml0ZV9lcnJvcikgew0KQEAgLTE4NzksNyArMTkx
Myw3IEBADQogCWlkZXRhcGVfaW5pdF9wYyhwYyk7CQ0KIAlwYy0+Y1swXSA9
IElERVRBUEVfUkVRVUVTVF9TRU5TRV9DTUQ7DQogCXBjLT5jWzRdID0gMjA7
DQotCXBjLT5yZXF1ZXN0X3RyYW5zZmVyID0gMTg7DQorCXBjLT5yZXF1ZXN0
X3RyYW5zZmVyID0gMjA7DQogCXBjLT5jYWxsYmFjayA9ICZpZGV0YXBlX3Jl
cXVlc3Rfc2Vuc2VfY2FsbGJhY2s7DQogfQ0KIA0KQEAgLTE5ODAsNyArMjAx
NCw3IEBADQogCXN0YXR1cy5hbGwgPSBIV0lGKGRyaXZlKS0+SU5CKElERV9T
VEFUVVNfUkVHKTsNCiANCiAJaWYgKHRlc3RfYml0KFBDX0RNQV9JTl9QUk9H
UkVTUywgJnBjLT5mbGFncykpIHsNCi0JCWlmIChIV0lGKGRyaXZlKS0+aWRl
X2RtYV9lbmQoZHJpdmUpKSB7DQorCQlpZiAoSFdJRihkcml2ZSktPmlkZV9k
bWFfZW5kKGRyaXZlKSB8fCBzdGF0dXMuYi5jaGVjaykgew0KIAkJCS8qDQog
CQkJICogQSBETUEgZXJyb3IgaXMgc29tZXRpbWVzIGV4cGVjdGVkLiBGb3Ig
ZXhhbXBsZSwNCiAJCQkgKiBpZiB0aGUgdGFwZSBpcyBjcm9zc2luZyBhIGZp
bGVtYXJrIGR1cmluZyBhDQpAQCAtMTk5Miw4ICsyMDI2LDE4IEBADQogCQkJ
ICogYWN0dWFsbHkgdHJhbnNmZXJyZWQgKHdlIGNhbid0IHJlY2VpdmUgdGhh
dA0KIAkJCSAqIGluZm9ybWF0aW9uIGZyb20gdGhlIERNQSBlbmdpbmUgb24g
bW9zdCBjaGlwc2V0cykuDQogCQkJICovDQorDQorCQkJLyoNCisJCQkgKiBP
biB0aGUgY29udHJhcnksIGEgRE1BIGVycm9yIGlzIG5ldmVyIGV4cGVjdGVk
Ow0KKwkJCSAqIGl0IHVzdWFsbHkgaW5kaWNhdGVzIGEgaGFyZHdhcmUgZXJy
b3Igb3IgYWJvcnQuDQorCQkJICogSWYgdGhlIHRhcGUgY3Jvc3NlcyBhIGZp
bGVtYXJrIGR1cmluZyBhIFJFQUQNCisJCQkgKiBjb21tYW5kLCBpdCB3aWxs
IGlzc3VlIGFuIGlycSBhbmQgcG9zaXRpb24gaXRzZWxmDQorCQkJICogYWZ0
ZXIgdGhlIGZpbGVtYXJrIChub3QgYmVmb3JlKS4gT25seSBhIHBhcnRpYWwN
CisJCQkgKiBkYXRhIHRyYW5zZmVyIHdpbGwgb2NjdXIsIGJ1dCBubyBETUEg
ZXJyb3IuDQorCQkJICogKEFTLCAxOSBBcHIgMjAwMSkNCisJCQkgKi8NCiAJ
CQlzZXRfYml0KFBDX0RNQV9FUlJPUiwgJnBjLT5mbGFncyk7DQotCQl9IGVs
c2UgaWYgKCFzdGF0dXMuYi5jaGVjaykgew0KKwkJfSBlbHNlIHsNCiAJCQlw
Yy0+YWN0dWFsbHlfdHJhbnNmZXJyZWQgPSBwYy0+cmVxdWVzdF90cmFuc2Zl
cjsNCiAJCQlpZGV0YXBlX3VwZGF0ZV9idWZmZXJzKHBjKTsNCiAJCX0NCkBA
IC0yMDI5LDcgKzIwNzMsNyBAQA0KIAkJaWYgKHN0YXR1cy5iLmNoZWNrIHx8
IHRlc3RfYml0KFBDX0RNQV9FUlJPUiwgJnBjLT5mbGFncykpIHsJLyogRXJy
b3IgZGV0ZWN0ZWQgKi8NCiAjaWYgSURFVEFQRV9ERUJVR19MT0cNCiAJCQlp
ZiAodGFwZS0+ZGVidWdfbGV2ZWwgPj0gMSkNCi0JCQkJcHJpbnRrKEtFUk5f
SU5GTyAiaWRlLXRhcGU6ICVzOiBJL08gZXJyb3IsICIsDQorCQkJCXByaW50
ayhLRVJOX0lORk8gImlkZS10YXBlOiAlczogSS9PIGVycm9yXG4iLA0KIAkJ
CQkJdGFwZS0+bmFtZSk7DQogI2VuZGlmIC8qIElERVRBUEVfREVCVUdfTE9H
ICovDQogCQkJaWYgKHBjLT5jWzBdID09IElERVRBUEVfUkVRVUVTVF9TRU5T
RV9DTUQpIHsNCkBAIC0yMTk1LDYgKzIyMzksMTAgQEANCiAJCUJVRygpOw0K
IAkvKiBTZXQgdGhlIGludGVycnVwdCByb3V0aW5lICovDQogCWlkZV9zZXRf
aGFuZGxlcihkcml2ZSwgJmlkZXRhcGVfcGNfaW50ciwgSURFVEFQRV9XQUlU
X0NNRCwgTlVMTCk7DQorI2lmZGVmIENPTkZJR19CTEtfREVWX0lERURNQQ0K
KwlpZiAodGVzdF9iaXQoUENfRE1BX0lOX1BST0dSRVNTLCAmcGMtPmZsYWdz
KSkJCS8qIEJlZ2luIERNQSwgaWYgbmVjZXNzYXJ5ICovDQorCQkodm9pZCkg
KEhXSUYoZHJpdmUpLT5pZGVfZG1hX2JlZ2luKGRyaXZlKSk7DQorI2VuZGlm
DQogCS8qIFNlbmQgdGhlIGFjdHVhbCBwYWNrZXQgKi8NCiAJSFdJRihkcml2
ZSktPmF0YXBpX291dHB1dF9ieXRlcyhkcml2ZSwgcGMtPmMsIDEyKTsNCiAJ
cmV0dXJuIGlkZV9zdGFydGVkOw0KQEAgLTIyMjMsOCArMjI3MSw3IEBADQog
CQkvKg0KIAkJICoJV2Ugd2lsbCAiYWJvcnQiIHJldHJ5aW5nIGEgcGFja2V0
IGNvbW1hbmQgaW4gY2FzZQ0KIAkJICoJYSBsZWdpdGltYXRlIGVycm9yIGNv
ZGUgd2FzIHJlY2VpdmVkIChjcm9zc2luZyBhDQotCQkgKglmaWxlbWFyaywg
b3IgRE1BIGVycm9yIGluIHRoZSBlbmQgb2YgbWVkaWEsIGZvcg0KLQkJICoJ
ZXhhbXBsZSkuDQorCQkgKglmaWxlbWFyaywgb3IgZW5kIG9mIHRoZSBtZWRp
YSwgZm9yIGV4YW1wbGUpLg0KIAkJICovDQogCQlpZiAoIXRlc3RfYml0KFBD
X0FCT1JULCAmcGMtPmZsYWdzKSkgew0KIAkJCWlmICghKHBjLT5jWzBdID09
IElERVRBUEVfVEVTVF9VTklUX1JFQURZX0NNRCAmJg0KQEAgLTIyNDksNyAr
MjI5Niw3IEBADQogCX0NCiAjaWYgSURFVEFQRV9ERUJVR19MT0cNCiAJaWYg
KHRhcGUtPmRlYnVnX2xldmVsID49IDIpDQotCQlwcmludGsoS0VSTl9JTkZP
ICJpZGUtdGFwZTogUmV0cnkgbnVtYmVyIC0gJWRcbiIsIHBjLT5yZXRyaWVz
KTsNCisJCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBSZXRyeSBudW1i
ZXIgLSAlZCwgY21kID0gJTAyWFxuIiwgcGMtPnJldHJpZXMsIHBjLT5jWzBd
KTsNCiAjZW5kaWYgLyogSURFVEFQRV9ERUJVR19MT0cgKi8NCiANCiAJcGMt
PnJldHJpZXMrKzsNCkBAIC0yMjc1LDkgKzIzMjIsOCBAQA0KIAlPVVRfQllU
RShiY291bnQuYi5oaWdoLCAgICAgSURFX0JDT1VOVEhfUkVHKTsNCiAJT1VU
X0JZVEUoYmNvdW50LmIubG93LCAgICAgIElERV9CQ09VTlRMX1JFRyk7DQog
CU9VVF9CWVRFKGRyaXZlLT5zZWxlY3QuYWxsLCBJREVfU0VMRUNUX1JFRyk7
DQotCWlmIChkbWFfb2spIHsJCQkvKiBCZWdpbiBETUEsIGlmIG5lY2Vzc2Fy
eSAqLw0KKwlpZiAoZG1hX29rKSB7CQkJLyogV2lsbCBiZWdpbiBETUEgbGF0
ZXIgKi8NCiAJCXNldF9iaXQoUENfRE1BX0lOX1BST0dSRVNTLCAmcGMtPmZs
YWdzKTsNCi0JCSh2b2lkKSAoSFdJRihkcml2ZSktPmlkZV9kbWFfYmVnaW4o
ZHJpdmUpKTsNCiAJfQ0KIAlpZiAodGVzdF9iaXQoSURFVEFQRV9EUlFfSU5U
RVJSVVBULCAmdGFwZS0+ZmxhZ3MpKSB7DQogCQlpZiAoSFdHUk9VUChkcml2
ZSktPmhhbmRsZXIgIT0gTlVMTCkJLyogcGFyYW5vaWEgY2hlY2sgKi8NCkBA
IC0zMDY5LDcgKzMxMTUsNyBAQA0KIAl0YXBlLT53YWl0aW5nID0gJndhaXQ7
DQogCXNwaW5fdW5sb2NrKCZ0YXBlLT5zcGlubG9jayk7DQogCXdhaXRfZm9y
X2NvbXBsZXRpb24oJndhaXQpOw0KLQlycS0+d2FpdGluZyA9IE5VTEw7DQor
CS8qIFRoZSBzdGFnZSBhbmQgaXRzIHN0cnVjdCByZXF1ZXN0IGhhdmUgYmVl
biBkZWFsbG9jYXRlZCAqLw0KIAl0YXBlLT53YWl0aW5nID0gTlVMTDsNCiAJ
c3Bpbl9sb2NrX2lycSgmdGFwZS0+c3BpbmxvY2spOw0KIH0NCkBAIC0zMzMz
LDExICszMzc5LDE1IEBADQogDQogCWlmICh0YXBlLT5jaHJkZXZfZGlyZWN0
aW9uICE9IGlkZXRhcGVfZGlyZWN0aW9uX3JlYWQpDQogCQlyZXR1cm4gMDsN
CisJY250ID0gdGFwZS0+bWVyZ2Vfc3RhZ2Vfc2l6ZSAvIHRhcGUtPnRhcGVf
YmxvY2tfc2l6ZTsNCisJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChJREVUQVBF
X0ZJTEVNQVJLLCAmdGFwZS0+ZmxhZ3MpKQ0KKwkJKytjbnQ7CQkvKiBGaWxl
bWFya3MgY291bnQgYXMgMSBzZWN0b3IgKi8NCiAJdGFwZS0+bWVyZ2Vfc3Rh
Z2Vfc2l6ZSA9IDA7DQogCWlmICh0YXBlLT5tZXJnZV9zdGFnZSAhPSBOVUxM
KSB7DQogCQlfX2lkZXRhcGVfa2ZyZWVfc3RhZ2UodGFwZS0+bWVyZ2Vfc3Rh
Z2UpOw0KIAkJdGFwZS0+bWVyZ2Vfc3RhZ2UgPSBOVUxMOw0KIAl9DQorCWNs
ZWFyX2JpdChJREVUQVBFX1BJUEVMSU5FX0VSUk9SLCAmdGFwZS0+ZmxhZ3Mp
Ow0KIAl0YXBlLT5jaHJkZXZfZGlyZWN0aW9uID0gaWRldGFwZV9kaXJlY3Rp
b25fbm9uZTsNCiAJDQogCWlmICh0YXBlLT5maXJzdF9zdGFnZSA9PSBOVUxM
KQ0KQEAgLTMzNDksOSArMzM5OSwxNCBAQA0KIAkJaWRldGFwZV93YWl0X2Zv
cl9yZXF1ZXN0KGRyaXZlLCB0YXBlLT5hY3RpdmVfZGF0YV9yZXF1ZXN0KTsN
CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGFwZS0+c3BpbmxvY2ssIGZs
YWdzKTsNCiANCi0JY250ID0gdGFwZS0+bnJfc3RhZ2VzIC0gdGFwZS0+bnJf
cGVuZGluZ19zdGFnZXM7DQotCXdoaWxlICh0YXBlLT5maXJzdF9zdGFnZSAh
PSBOVUxMKQ0KKwl3aGlsZSAodGFwZS0+Zmlyc3Rfc3RhZ2UgIT0gTlVMTCkg
ew0KKwkJc3RydWN0IHJlcXVlc3QgKnJxX3B0ciA9ICZ0YXBlLT5maXJzdF9z
dGFnZS0+cnE7DQorDQorCQljbnQgKz0gcnFfcHRyLT5ucl9zZWN0b3JzIC0g
cnFfcHRyLT5jdXJyZW50X25yX3NlY3RvcnM7IA0KKwkJaWYgKHJxX3B0ci0+
ZXJyb3JzID09IElERVRBUEVfRVJST1JfRklMRU1BUkspDQorCQkJKytjbnQ7
DQogCQlpZGV0YXBlX3JlbW92ZV9zdGFnZV9oZWFkKGRyaXZlKTsNCisJfQ0K
IAl0YXBlLT5ucl9wZW5kaW5nX3N0YWdlcyA9IDA7DQogCXRhcGUtPm1heF9z
dGFnZXMgPSB0YXBlLT5taW5fcGlwZWxpbmU7DQogCXJldHVybiBjbnQ7DQpA
QCAtMzk0Niw3ICs0MDAxLDcgQEANCiAJCSAqLw0KIAkJYnl0ZXNfcmVhZCA9
IGlkZXRhcGVfcXVldWVfcndfdGFpbChkcml2ZSwgSURFVEFQRV9SRUFEX1JR
LCAwLCB0YXBlLT5tZXJnZV9zdGFnZS0+YmlvKTsNCiAJCWlmIChieXRlc19y
ZWFkIDwgMCkgew0KLQkJCWtmcmVlKHRhcGUtPm1lcmdlX3N0YWdlKTsNCisJ
CQlfX2lkZXRhcGVfa2ZyZWVfc3RhZ2UodGFwZS0+bWVyZ2Vfc3RhZ2UpOw0K
IAkJCXRhcGUtPm1lcmdlX3N0YWdlID0gTlVMTDsNCiAJCQl0YXBlLT5jaHJk
ZXZfZGlyZWN0aW9uID0gaWRldGFwZV9kaXJlY3Rpb25fbm9uZTsNCiAJCQly
ZXR1cm4gYnl0ZXNfcmVhZDsNCkBAIC0zOTU5LDcgKzQwMTQsNyBAQA0KIAly
cS5zZWN0b3IgPSB0YXBlLT5maXJzdF9mcmFtZV9wb3NpdGlvbjsNCiAJcnEu
bnJfc2VjdG9ycyA9IHJxLmN1cnJlbnRfbnJfc2VjdG9ycyA9IGJsb2NrczsN
CiAJaWYgKCF0ZXN0X2JpdChJREVUQVBFX1BJUEVMSU5FX0VSUk9SLCAmdGFw
ZS0+ZmxhZ3MpICYmDQotCSAgICB0YXBlLT5ucl9zdGFnZXMgPD0gbWF4X3N0
YWdlcykgew0KKwkgICAgdGFwZS0+bnJfc3RhZ2VzIDwgbWF4X3N0YWdlcykg
ew0KIAkJbmV3X3N0YWdlID0gaWRldGFwZV9rbWFsbG9jX3N0YWdlKHRhcGUp
Ow0KIAkJd2hpbGUgKG5ld19zdGFnZSAhPSBOVUxMKSB7DQogCQkJbmV3X3N0
YWdlLT5ycSA9IHJxOw0KQEAgLTQwNjksNiArNDEyNCwxMiBAQA0KICNlbmRp
ZiAvKiBJREVUQVBFX0RFQlVHX0xPRyAqLw0KIA0KIAkvKg0KKwkgKiBJZiB3
ZSBhcmUgYXQgYSBmaWxlbWFyaywgcmV0dXJuIGEgcmVhZCBsZW5ndGggb2Yg
MA0KKwkgKi8NCisJaWYgKHRlc3RfYml0KElERVRBUEVfRklMRU1BUkssICZ0
YXBlLT5mbGFncykpDQorCQlyZXR1cm4gMDsNCisNCisJLyoNCiAJICogV2Fp
dCBmb3IgdGhlIG5leHQgbG9naWNhbCBibG9jayB0byBiZSBhdmFpbGFibGUg
YXQgdGhlIGhlYWQNCiAJICogb2YgdGhlIHBpcGVsaW5lDQogCSAqLw0KQEAg
LTQwOTcsMTQgKzQxNTgsNyBAQA0KIAl9DQogCWlmIChycV9wdHItPmVycm9y
cyA9PSBJREVUQVBFX0VSUk9SX0VPRCkNCiAJCXJldHVybiAwOw0KLQlpZiAo
cnFfcHRyLT5lcnJvcnMgPT0gSURFVEFQRV9FUlJPUl9GSUxFTUFSSykgew0K
LQkJaWRldGFwZV9zd2l0Y2hfYnVmZmVycyh0YXBlLCB0YXBlLT5maXJzdF9z
dGFnZSk7DQotCQlzZXRfYml0KElERVRBUEVfRklMRU1BUkssICZ0YXBlLT5m
bGFncyk7DQotI2lmIFVTRV9JT1RSQUNFDQotCQlJT190cmFjZShJT19JREVU
QVBFX0ZJRk8sIHRhcGUtPnBpcGVsaW5lX2hlYWQsIHRhcGUtPmJ1ZmZlcl9o
ZWFkLCB0YXBlLT50YXBlX2hlYWQsIHRhcGUtPm1pbm9yKTsNCi0jZW5kaWYN
Ci0JCWNhbGN1bGF0ZV9zcGVlZHMoZHJpdmUpOw0KLQl9IGVsc2Ugew0KKwll
bHNlIHsNCiAJCWlkZXRhcGVfc3dpdGNoX2J1ZmZlcnModGFwZSwgdGFwZS0+
Zmlyc3Rfc3RhZ2UpOw0KIAkJaWYgKHJxX3B0ci0+ZXJyb3JzID09IElERVRB
UEVfRVJST1JfR0VORVJBTCkgew0KICNpZiBPTlNUUkVBTV9ERUJVRw0KQEAg
LTQxMTIsNyArNDE2Niw4IEBADQogCQkJCXByaW50ayhLRVJOX0lORk8gImlk
ZS10YXBlOiBlcnJvciBkZXRlY3RlZCwgYnl0ZXNfcmVhZCAlZFxuIiwgYnl0
ZXNfcmVhZCk7DQogI2VuZGlmDQogCQl9DQotCQljbGVhcl9iaXQoSURFVEFQ
RV9GSUxFTUFSSywgJnRhcGUtPmZsYWdzKTsNCisJCWlmIChycV9wdHItPmVy
cm9ycyA9PSBJREVUQVBFX0VSUk9SX0ZJTEVNQVJLKQ0KKwkJCXNldF9iaXQo
SURFVEFQRV9GSUxFTUFSSywgJnRhcGUtPmZsYWdzKTsNCiAJCXNwaW5fbG9j
a19pcnFzYXZlKCZ0YXBlLT5zcGlubG9jaywgZmxhZ3MpOw0KIAkJaWRldGFw
ZV9yZW1vdmVfc3RhZ2VfaGVhZChkcml2ZSk7DQogCQlzcGluX3VubG9ja19p
cnFyZXN0b3JlKCZ0YXBlLT5zcGlubG9jaywgZmxhZ3MpOw0KQEAgLTQ0NTUs
NiArNDUxMCwxNCBAQA0KIAkJdGFwZS0+cmVzdGFydF9zcGVlZF9jb250cm9s
X3JlcSA9IDE7DQogCQlyZXR1cm4gcmV0dmFsOw0KIAl9DQorIA0KKwlpZiAo
bXRfY291bnQgPT0gMCkNCisJCXJldHVybiAwOw0KKwlpZiAoTVRCU0YgPT0g
bXRfb3AgfHwgTVRCU0ZNID09IG10X29wKSB7DQorCQlpZiAoIXRhcGUtPmNh
cGFiaWxpdGllcy5zcHJldikNCisJCQlyZXR1cm4gLUVJTzsNCisJCW10X2Nv
dW50ID0gLSBtdF9jb3VudDsNCisJfQ0KIA0KIAlpZiAodGFwZS0+Y2hyZGV2
X2RpcmVjdGlvbiA9PSBpZGV0YXBlX2RpcmVjdGlvbl9yZWFkKSB7DQogCQkv
Kg0KQEAgLTQ0NjIsMjggKzQ1MjUsMzYgQEANCiAJCSAqCWZpbGVtYXJrcy4N
CiAJCSAqLw0KIAkJdGFwZS0+bWVyZ2Vfc3RhZ2Vfc2l6ZSA9IDA7DQotCQlj
bGVhcl9iaXQoSURFVEFQRV9GSUxFTUFSSywgJnRhcGUtPmZsYWdzKTsNCisJ
CWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoSURFVEFQRV9GSUxFTUFSSywgJnRh
cGUtPmZsYWdzKSkNCisJCQkrK2NvdW50Ow0KIAkJd2hpbGUgKHRhcGUtPmZp
cnN0X3N0YWdlICE9IE5VTEwpIHsNCi0JCQlpZGV0YXBlX3dhaXRfZmlyc3Rf
c3RhZ2UoZHJpdmUpOw0KLQkJCWlmICh0YXBlLT5maXJzdF9zdGFnZS0+cnEu
ZXJyb3JzID09IElERVRBUEVfRVJST1JfRklMRU1BUkspDQotCQkJCWNvdW50
Kys7DQogCQkJaWYgKGNvdW50ID09IG10X2NvdW50KSB7DQotCQkJCXN3aXRj
aCAobXRfb3ApIHsNCi0JCQkJCWNhc2UgTVRGU0Y6DQotCQkJCQkJc3Bpbl9s
b2NrX2lycXNhdmUoJnRhcGUtPnNwaW5sb2NrLCBmbGFncyk7DQotCQkJCQkJ
aWRldGFwZV9yZW1vdmVfc3RhZ2VfaGVhZChkcml2ZSk7DQotCQkJCQkJc3Bp
bl91bmxvY2tfaXJxcmVzdG9yZSgmdGFwZS0+c3BpbmxvY2ssIGZsYWdzKTsN
Ci0JCQkJCWNhc2UgTVRGU0ZNOg0KLQkJCQkJCXJldHVybiAoMCk7DQotCQkJ
CQlkZWZhdWx0Og0KLQkJCQkJCWJyZWFrOw0KLQkJCQl9DQorCQkJCWlmICht
dF9vcCA9PSBNVEZTRk0pDQorCQkJCQlzZXRfYml0KElERVRBUEVfRklMRU1B
UkssICZ0YXBlLT5mbGFncyk7DQorCQkJCXJldHVybiAwOw0KIAkJCX0NCiAJ
CQlzcGluX2xvY2tfaXJxc2F2ZSgmdGFwZS0+c3BpbmxvY2ssIGZsYWdzKTsN
CisJCQlpZiAodGFwZS0+Zmlyc3Rfc3RhZ2UgPT0gdGFwZS0+YWN0aXZlX3N0
YWdlKSB7DQorCQkJCS8qDQorCQkJCSAqCVdlIGhhdmUgcmVhY2hlZCB0aGUg
YWN0aXZlIHN0YWdlIGluIHRoZSByZWFkIHBpcGVsaW5lLg0KKwkJCQkgKglU
aGVyZSBpcyBubyBwb2ludCBpbiBhbGxvd2luZyB0aGUgZHJpdmUgdG8gY29u
dGludWUNCisJCQkJICoJcmVhZGluZyBhbnkgZmFydGhlciwgc28gd2Ugc3Rv
cCB0aGUgcGlwZWxpbmUuDQorCQkJCSAqDQorCQkJCSAqCVRoaXMgc2VjdGlv
biBzaG91bGQgYmUgbW92ZWQgdG8gYSBzZXBhcmF0ZSBzdWJyb3V0aW5lLA0K
KwkJCQkgKgliZWNhdXNlIGEgc2ltaWxhciBmdW5jdGlvbiBpcyBwZXJmb3Jt
ZWQgaW4NCisJCQkJICoJX19pZGV0YXBlX2Rpc2NhcmRfcmVhZF9waXBlbGlu
ZSgpLCBmb3IgZXhhbXBsZS4NCisJCQkJICovDQorCQkJCXRhcGUtPm5leHRf
c3RhZ2UgPSBOVUxMOw0KKwkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0
YXBlLT5zcGlubG9jaywgZmxhZ3MpOw0KKwkJCQlpZGV0YXBlX3dhaXRfZmly
c3Rfc3RhZ2UoZHJpdmUpOw0KKwkJCQl0YXBlLT5uZXh0X3N0YWdlID0gdGFw
ZS0+Zmlyc3Rfc3RhZ2UtPm5leHQ7DQorCQkJfSBlbHNlDQorCQkJCXNwaW5f
dW5sb2NrX2lycXJlc3RvcmUoJnRhcGUtPnNwaW5sb2NrLCBmbGFncyk7DQor
CQkJaWYgKHRhcGUtPmZpcnN0X3N0YWdlLT5ycS5lcnJvcnMgPT0gSURFVEFQ
RV9FUlJPUl9GSUxFTUFSSykNCisJCQkJKytjb3VudDsNCiAJCQlpZGV0YXBl
X3JlbW92ZV9zdGFnZV9oZWFkKGRyaXZlKTsNCi0JCQlzcGluX3VubG9ja19p
cnFyZXN0b3JlKCZ0YXBlLT5zcGlubG9jaywgZmxhZ3MpOw0KIAkJfQ0KLQkJ
aWRldGFwZV9kaXNjYXJkX3JlYWRfcGlwZWxpbmUoZHJpdmUsIDEpOw0KKwkJ
aWRldGFwZV9kaXNjYXJkX3JlYWRfcGlwZWxpbmUoZHJpdmUsIDApOw0KIAl9
DQogDQogCS8qDQpAQCAtNDQ5MiwyNSArNDU2MywxNyBAQA0KIAkgKi8NCiAJ
c3dpdGNoIChtdF9vcCkgew0KIAkJY2FzZSBNVEZTRjoNCisJCWNhc2UgTVRC
U0Y6DQogCQkJaWRldGFwZV9jcmVhdGVfc3BhY2VfY21kKCZwYyxtdF9jb3Vu
dC1jb3VudCxJREVUQVBFX1NQQUNFX09WRVJfRklMRU1BUkspOw0KIAkJCXJl
dHVybiAoaWRldGFwZV9xdWV1ZV9wY190YWlsKGRyaXZlLCAmcGMpKTsNCiAJ
CWNhc2UgTVRGU0ZNOg0KLQkJCWlmICghdGFwZS0+Y2FwYWJpbGl0aWVzLnNw
cmV2KQ0KLQkJCQlyZXR1cm4gKC1FSU8pOw0KLQkJCXJldHZhbCA9IGlkZXRh
cGVfc3BhY2Vfb3Zlcl9maWxlbWFya3MoZHJpdmUsIE1URlNGLCBtdF9jb3Vu
dC1jb3VudCk7DQotCQkJaWYgKHJldHZhbCkgcmV0dXJuIChyZXR2YWwpOw0K
LQkJCXJldHVybiAoaWRldGFwZV9zcGFjZV9vdmVyX2ZpbGVtYXJrcyhkcml2
ZSwgTVRCU0YsIDEpKTsNCi0JCWNhc2UgTVRCU0Y6DQotCQkJaWYgKCF0YXBl
LT5jYXBhYmlsaXRpZXMuc3ByZXYpDQotCQkJCXJldHVybiAoLUVJTyk7DQot
CQkJaWRldGFwZV9jcmVhdGVfc3BhY2VfY21kKCZwYywtKG10X2NvdW50K2Nv
dW50KSxJREVUQVBFX1NQQUNFX09WRVJfRklMRU1BUkspOw0KLQkJCXJldHVy
biAoaWRldGFwZV9xdWV1ZV9wY190YWlsKGRyaXZlLCAmcGMpKTsNCiAJCWNh
c2UgTVRCU0ZNOg0KIAkJCWlmICghdGFwZS0+Y2FwYWJpbGl0aWVzLnNwcmV2
KQ0KIAkJCQlyZXR1cm4gKC1FSU8pOw0KLQkJCXJldHZhbCA9IGlkZXRhcGVf
c3BhY2Vfb3Zlcl9maWxlbWFya3MoZHJpdmUsIE1UQlNGLCBtdF9jb3VudCtj
b3VudCk7DQorCQkJcmV0dmFsID0gaWRldGFwZV9zcGFjZV9vdmVyX2ZpbGVt
YXJrcyhkcml2ZSwgTVRGU0YsIG10X2NvdW50LWNvdW50KTsNCiAJCQlpZiAo
cmV0dmFsKSByZXR1cm4gKHJldHZhbCk7DQotCQkJcmV0dXJuIChpZGV0YXBl
X3NwYWNlX292ZXJfZmlsZW1hcmtzKGRyaXZlLCBNVEZTRiwgMSkpOw0KKwkJ
CWNvdW50ID0gKE1UQlNGTSA9PSBtdF9vcCA/IDEgOiAtMSk7DQorCQkJcmV0
dXJuIChpZGV0YXBlX3NwYWNlX292ZXJfZmlsZW1hcmtzKGRyaXZlLCBNVEZT
RiwgY291bnQpKTsNCiAJCWRlZmF1bHQ6DQogCQkJcHJpbnRrKEtFUk5fRVJS
ICJpZGUtdGFwZTogTVRJTyBvcGVyYXRpb24gJWQgbm90IHN1cHBvcnRlZFxu
IixtdF9vcCk7DQogCQkJcmV0dXJuICgtRUlPKTsNCkBAIC00ODYxLDcgKzQ5
MjQsNyBAQA0KIAkJICovDQogCQlyZXR2YWwgPSBpZGV0YXBlX3F1ZXVlX3J3
X3RhaWwoZHJpdmUsIElERVRBUEVfV1JJVEVfUlEsIDAsIHRhcGUtPm1lcmdl
X3N0YWdlLT5iaW8pOw0KIAkJaWYgKHJldHZhbCA8IDApIHsNCi0JCQlrZnJl
ZSh0YXBlLT5tZXJnZV9zdGFnZSk7DQorCQkJX19pZGV0YXBlX2tmcmVlX3N0
YWdlKHRhcGUtPm1lcmdlX3N0YWdlKTsNCiAJCQl0YXBlLT5tZXJnZV9zdGFn
ZSA9IE5VTEw7DQogCQkJdGFwZS0+Y2hyZGV2X2RpcmVjdGlvbiA9IGlkZXRh
cGVfZGlyZWN0aW9uX25vbmU7DQogCQkJcmV0dXJuIHJldHZhbDsNCkBAIC01
NDQ3LDggKzU1MTAsMTAgQEANCiAJCXByaW50ayhLRVJOX0VSUiAiaWRlLXRh
cGU6ICVzOiBkcml2ZSBub3QgcmVhZHlcbiIsIHRhcGUtPm5hbWUpOw0KIAkJ
cmV0dXJuIC1FQlVTWTsNCiAJfQ0KLQlpZGV0YXBlX3JlYWRfcG9zaXRpb24o
ZHJpdmUpOw0KLQljbGVhcl9iaXQoSURFVEFQRV9QSVBFTElORV9FUlJPUiwg
JnRhcGUtPmZsYWdzKTsNCisJaWYgKHRhcGUtPm9uc3RyZWFtKQ0KKwkJaWRl
dGFwZV9yZWFkX3Bvc2l0aW9uKGRyaXZlKTsNCisJaWYgKHRhcGUtPmNocmRl
dl9kaXJlY3Rpb24gIT0gaWRldGFwZV9kaXJlY3Rpb25fcmVhZCkNCisJCWNs
ZWFyX2JpdChJREVUQVBFX1BJUEVMSU5FX0VSUk9SLCAmdGFwZS0+ZmxhZ3Mp
Ow0KIA0KIAlpZiAodGFwZS0+Y2hyZGV2X2RpcmVjdGlvbiA9PSBpZGV0YXBl
X2RpcmVjdGlvbl9ub25lKSB7DQogCQlpZiAoaWRldGFwZV9jcmVhdGVfcHJl
dmVudF9jbWQoZHJpdmUsICZwYywgMSkpIHsNCkBAIC01NTIwLDEwICs1NTg1
LDExIEBADQogCWlmIChtaW5vciA8IDEyOCkNCiAJCSh2b2lkKSBpZGV0YXBl
X3Jld2luZF90YXBlKGRyaXZlKTsNCiAJaWYgKHRhcGUtPmNocmRldl9kaXJl
Y3Rpb24gPT0gaWRldGFwZV9kaXJlY3Rpb25fbm9uZSkgew0KLQkJaWYgKHRh
cGUtPmRvb3JfbG9ja2VkICE9IERPT1JfRVhQTElDSVRMWV9MT0NLRUQpIHsN
Ci0JCQlpZiAoaWRldGFwZV9jcmVhdGVfcHJldmVudF9jbWQoZHJpdmUsICZw
YywgMCkpDQorCQlpZiAodGFwZS0+ZG9vcl9sb2NrZWQgPT0gRE9PUl9MT0NL
RUQpIHsNCisJCQlpZiAoaWRldGFwZV9jcmVhdGVfcHJldmVudF9jbWQoZHJp
dmUsICZwYywgMCkpIHsNCiAJCQkJaWYgKCFpZGV0YXBlX3F1ZXVlX3BjX3Rh
aWwoZHJpdmUsICZwYykpDQogCQkJCQl0YXBlLT5kb29yX2xvY2tlZCA9IERP
T1JfVU5MT0NLRUQ7DQorCQkJfQ0KIAkJfQ0KIAl9DQogCWNsZWFyX2JpdChJ
REVUQVBFX0JVU1ksICZ0YXBlLT5mbGFncyk7DQpAQCAtNTU1NiwzNCArNTYy
MiwzNCBAQA0KIAlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTogRHVtcGlu
ZyBBVEFQSSBJZGVudGlmeSBEZXZpY2UgdGFwZSBwYXJhbWV0ZXJzXG4iKTsN
CiAJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6IFByb3RvY29sIFR5cGU6
ICIpOw0KIAlzd2l0Y2ggKGdjdy5wcm90b2NvbCkgew0KLQkJY2FzZSAwOiBj
YXNlIDE6IHByaW50ayhLRVJOX0lORk8gIkFUQVxuIik7YnJlYWs7DQotCQlj
YXNlIDI6CXByaW50ayhLRVJOX0lORk8gIkFUQVBJXG4iKTticmVhazsNCi0J
CWNhc2UgMzogcHJpbnRrKEtFUk5fSU5GTyAiUmVzZXJ2ZWQgKFVua25vd24g
dG8gaWRlLXRhcGUpXG4iKTticmVhazsNCisJCWNhc2UgMDogY2FzZSAxOiBw
cmludGsoIkFUQVxuIik7YnJlYWs7DQorCQljYXNlIDI6CXByaW50aygiQVRB
UElcbiIpO2JyZWFrOw0KKwkJY2FzZSAzOiBwcmludGsoIlJlc2VydmVkIChV
bmtub3duIHRvIGlkZS10YXBlKVxuIik7YnJlYWs7DQogCX0NCiAJcHJpbnRr
KEtFUk5fSU5GTyAiaWRlLXRhcGU6IERldmljZSBUeXBlOiAleCAtICIsZ2N3
LmRldmljZV90eXBlKTsJDQogCXN3aXRjaCAoZ2N3LmRldmljZV90eXBlKSB7
DQotCQljYXNlIDA6IHByaW50ayhLRVJOX0lORk8gIkRpcmVjdC1hY2Nlc3Mg
RGV2aWNlXG4iKTticmVhazsNCi0JCWNhc2UgMTogcHJpbnRrKEtFUk5fSU5G
TyAiU3RyZWFtaW5nIFRhcGUgRGV2aWNlXG4iKTticmVhazsNCi0JCWNhc2Ug
MjogY2FzZSAzOiBjYXNlIDQ6IHByaW50ayhLRVJOX0lORk8gIlJlc2VydmVk
XG4iKTticmVhazsNCi0JCWNhc2UgNTogcHJpbnRrKEtFUk5fSU5GTyAiQ0Qt
Uk9NIERldmljZVxuIik7YnJlYWs7DQotCQljYXNlIDY6IHByaW50ayhLRVJO
X0lORk8gIlJlc2VydmVkXG4iKTsNCi0JCWNhc2UgNzogcHJpbnRrKEtFUk5f
SU5GTyAiT3B0aWNhbCBtZW1vcnkgRGV2aWNlXG4iKTticmVhazsNCi0JCWNh
c2UgMHgxZjogcHJpbnRrKEtFUk5fSU5GTyAiVW5rbm93biBvciBubyBEZXZp
Y2UgdHlwZVxuIik7YnJlYWs7DQotCQlkZWZhdWx0OiBwcmludGsoS0VSTl9J
TkZPICJSZXNlcnZlZFxuIik7DQorCQljYXNlIDA6IHByaW50aygiRGlyZWN0
LWFjY2VzcyBEZXZpY2VcbiIpO2JyZWFrOw0KKwkJY2FzZSAxOiBwcmludGso
IlN0cmVhbWluZyBUYXBlIERldmljZVxuIik7YnJlYWs7DQorCQljYXNlIDI6
IGNhc2UgMzogY2FzZSA0OiBwcmludGsoIlJlc2VydmVkXG4iKTticmVhazsN
CisJCWNhc2UgNTogcHJpbnRrKCJDRC1ST00gRGV2aWNlXG4iKTticmVhazsN
CisJCWNhc2UgNjogcHJpbnRrKCJSZXNlcnZlZFxuIik7DQorCQljYXNlIDc6
IHByaW50aygiT3B0aWNhbCBtZW1vcnkgRGV2aWNlXG4iKTticmVhazsNCisJ
CWNhc2UgMHgxZjogcHJpbnRrKCJVbmtub3duIG9yIG5vIERldmljZSB0eXBl
XG4iKTticmVhazsNCisJCWRlZmF1bHQ6IHByaW50aygiUmVzZXJ2ZWRcbiIp
Ow0KIAl9DQogCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBSZW1vdmFi
bGU6ICVzIixnY3cucmVtb3ZhYmxlID8gIlllc1xuIjoiTm9cbiIpOwkNCiAJ
cHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6IENvbW1hbmQgUGFja2V0IERS
USBUeXBlOiAiKTsNCiAJc3dpdGNoIChnY3cuZHJxX3R5cGUpIHsNCi0JCWNh
c2UgMDogcHJpbnRrKEtFUk5fSU5GTyAiTWljcm9wcm9jZXNzb3IgRFJRXG4i
KTticmVhazsNCi0JCWNhc2UgMTogcHJpbnRrKEtFUk5fSU5GTyAiSW50ZXJy
dXB0IERSUVxuIik7YnJlYWs7DQotCQljYXNlIDI6IHByaW50ayhLRVJOX0lO
Rk8gIkFjY2VsZXJhdGVkIERSUVxuIik7YnJlYWs7DQotCQljYXNlIDM6IHBy
aW50ayhLRVJOX0lORk8gIlJlc2VydmVkXG4iKTticmVhazsNCisJCWNhc2Ug
MDogcHJpbnRrKCJNaWNyb3Byb2Nlc3NvciBEUlFcbiIpO2JyZWFrOw0KKwkJ
Y2FzZSAxOiBwcmludGsoIkludGVycnVwdCBEUlFcbiIpO2JyZWFrOw0KKwkJ
Y2FzZSAyOiBwcmludGsoIkFjY2VsZXJhdGVkIERSUVxuIik7YnJlYWs7DQor
CQljYXNlIDM6IHByaW50aygiUmVzZXJ2ZWRcbiIpO2JyZWFrOw0KIAl9DQog
CXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBDb21tYW5kIFBhY2tldCBT
aXplOiAiKTsNCiAJc3dpdGNoIChnY3cucGFja2V0X3NpemUpIHsNCi0JCWNh
c2UgMDogcHJpbnRrKEtFUk5fSU5GTyAiMTIgYnl0ZXNcbiIpO2JyZWFrOw0K
LQkJY2FzZSAxOiBwcmludGsoS0VSTl9JTkZPICIxNiBieXRlc1xuIik7YnJl
YWs7DQotCQlkZWZhdWx0OiBwcmludGsoS0VSTl9JTkZPICJSZXNlcnZlZFxu
Iik7YnJlYWs7DQorCQljYXNlIDA6IHByaW50aygiMTIgYnl0ZXNcbiIpO2Jy
ZWFrOw0KKwkJY2FzZSAxOiBwcmludGsoIjE2IGJ5dGVzXG4iKTticmVhazsN
CisJCWRlZmF1bHQ6IHByaW50aygiUmVzZXJ2ZWRcbiIpO2JyZWFrOw0KIAl9
DQogCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBNb2RlbDogJS40MHNc
biIsaWQtPm1vZGVsKTsNCiAJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6
IEZpcm13YXJlIFJldmlzaW9uOiAlLjhzXG4iLGlkLT5md19yZXYpOw0KQEAg
LTU1OTksNDUgKzU2NjUsNDUgQEANCiAJcHJpbnRrKEtFUk5fSU5GTyAiaWRl
LXRhcGU6IFNpbmdsZSBXb3JkIERNQSBzdXBwb3J0ZWQgbW9kZXM6ICIpOw0K
IAlmb3IgKGk9MCxtYXNrPTE7aTw4O2krKyxtYXNrPW1hc2sgPDwgMSkgew0K
IAkJaWYgKGlkLT5kbWFfMXdvcmQgJiBtYXNrKQ0KLQkJCXByaW50ayhLRVJO
X0lORk8gIiVkICIsaSk7DQorCQkJcHJpbnRrKCIlZCAiLGkpOw0KIAkJaWYg
KGlkLT5kbWFfMXdvcmQgJiAobWFzayA8PCA4KSkNCi0JCQlwcmludGsoS0VS
Tl9JTkZPICIoYWN0aXZlKSAiKTsNCisJCQlwcmludGsoIihhY3RpdmUpICIp
Ow0KIAl9DQotCXByaW50ayhLRVJOX0lORk8gIlxuIik7DQorCXByaW50aygi
XG4iKTsNCiAJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6IE11bHRpIFdv
cmQgRE1BIHN1cHBvcnRlZCBtb2RlczogIik7DQogCWZvciAoaT0wLG1hc2s9
MTtpPDg7aSsrLG1hc2s9bWFzayA8PCAxKSB7DQogCQlpZiAoaWQtPmRtYV9t
d29yZCAmIG1hc2spDQotCQkJcHJpbnRrKEtFUk5fSU5GTyAiJWQgIixpKTsN
CisJCQlwcmludGsoIiVkICIsaSk7DQogCQlpZiAoaWQtPmRtYV9td29yZCAm
IChtYXNrIDw8IDgpKQ0KLQkJCXByaW50ayhLRVJOX0lORk8gIihhY3RpdmUp
ICIpOw0KKwkJCXByaW50aygiKGFjdGl2ZSkgIik7DQogCX0NCi0JcHJpbnRr
KEtFUk5fSU5GTyAiXG4iKTsNCisJcHJpbnRrKCJcbiIpOw0KIAlpZiAoaWQt
PmZpZWxkX3ZhbGlkICYgMHgwMDAyKSB7DQogCQlwcmludGsoS0VSTl9JTkZP
ICJpZGUtdGFwZTogRW5oYW5jZWQgUElPIE1vZGVzOiAlc1xuIiwNCiAJCQlp
ZC0+ZWlkZV9waW9fbW9kZXMgJiAxID8gIk1vZGUgMyI6Ik5vbmUiKTsNCiAJ
CXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBNaW5pbXVtIE11bHRpLXdv
cmQgRE1BIGN5Y2xlIHBlciB3b3JkOiAiKTsNCiAJCWlmIChpZC0+ZWlkZV9k
bWFfbWluID09IDApDQotCQkJcHJpbnRrKEtFUk5fSU5GTyAiTm90IHN1cHBv
cnRlZFxuIik7DQorCQkJcHJpbnRrKCJOb3Qgc3VwcG9ydGVkXG4iKTsNCiAJ
CWVsc2UNCi0JCQlwcmludGsoS0VSTl9JTkZPICIlZCBuc1xuIixpZC0+ZWlk
ZV9kbWFfbWluKTsNCisJCQlwcmludGsoIiVkIG5zXG4iLGlkLT5laWRlX2Rt
YV9taW4pOw0KIA0KIAkJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6IE1h
bnVmYWN0dXJlclwncyBSZWNvbW1lbmRlZCBNdWx0aS13b3JkIGN5Y2xlOiAi
KTsNCiAJCWlmIChpZC0+ZWlkZV9kbWFfdGltZSA9PSAwKQ0KLQkJCXByaW50
ayhLRVJOX0lORk8gIk5vdCBzdXBwb3J0ZWRcbiIpOw0KKwkJCXByaW50aygi
Tm90IHN1cHBvcnRlZFxuIik7DQogCQllbHNlDQotCQkJcHJpbnRrKEtFUk5f
SU5GTyAiJWQgbnNcbiIsaWQtPmVpZGVfZG1hX3RpbWUpOw0KKwkJCXByaW50
aygiJWQgbnNcbiIsaWQtPmVpZGVfZG1hX3RpbWUpOw0KIA0KIAkJcHJpbnRr
KEtFUk5fSU5GTyAiaWRlLXRhcGU6IE1pbmltdW0gUElPIGN5Y2xlIHdpdGhv
dXQgSU9SRFk6ICIpOw0KIAkJaWYgKGlkLT5laWRlX3BpbyA9PSAwKQ0KLQkJ
CXByaW50ayhLRVJOX0lORk8gIk5vdCBzdXBwb3J0ZWRcbiIpOw0KKwkJCXBy
aW50aygiTm90IHN1cHBvcnRlZFxuIik7DQogCQllbHNlDQotCQkJcHJpbnRr
KEtFUk5fSU5GTyAiJWQgbnNcbiIsaWQtPmVpZGVfcGlvKTsNCisJCQlwcmlu
dGsoIiVkIG5zXG4iLGlkLT5laWRlX3Bpbyk7DQogDQogCQlwcmludGsoS0VS
Tl9JTkZPICJpZGUtdGFwZTogTWluaW11bSBQSU8gY3ljbGUgd2l0aCBJT1JE
WTogIik7DQogCQlpZiAoaWQtPmVpZGVfcGlvX2lvcmR5ID09IDApDQotCQkJ
cHJpbnRrKEtFUk5fSU5GTyAiTm90IHN1cHBvcnRlZFxuIik7DQorCQkJcHJp
bnRrKCJOb3Qgc3VwcG9ydGVkXG4iKTsNCiAJCWVsc2UNCi0JCQlwcmludGso
S0VSTl9JTkZPICIlZCBuc1xuIixpZC0+ZWlkZV9waW9faW9yZHkpOw0KKwkJ
CXByaW50aygiJWQgbnNcbiIsaWQtPmVpZGVfcGlvX2lvcmR5KTsNCiAJCQ0K
IAl9IGVsc2UNCiAJCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBBY2Nv
cmRpbmcgdG8gdGhlIGRldmljZSwgZmllbGRzIDY0LTcwIGFyZSBub3QgdmFs
aWQuXG4iKTsNCkBAIC01OTQ2LDkgKzYwMTIsOSBAQA0KICAqCQkJZHJpdmUJ
c2V0dGluZyBuYW1lCXJlYWQvd3JpdGUJaW9jdGwJaW9jdGwJCWRhdGEgdHlw
ZQltaW4JCQltYXgJCQltdWxfZmFjdG9yCQkJZGl2X2ZhY3RvcgkJCWRhdGEg
cG9pbnRlcgkJCQlzZXQgZnVuY3Rpb24NCiAgKi8NCiAJaWRlX2FkZF9zZXR0
aW5nKGRyaXZlLAkiYnVmZmVyIiwJU0VUVElOR19SRUFELAktMSwJLTEsCQlU
WVBFX1NIT1JULAkwLAkJCTB4ZmZmZiwJCQkxLAkJCQkyLAkJCQkmdGFwZS0+
Y2FwYWJpbGl0aWVzLmJ1ZmZlcl9zaXplLAlOVUxMKTsNCi0JaWRlX2FkZF9z
ZXR0aW5nKGRyaXZlLAkicGlwZWxpbmVfbWluIiwJU0VUVElOR19SVywJLTEs
CS0xLAkJVFlQRV9JTlQsCTIsCQkJMHhmZmZmLAkJCXRhcGUtPnN0YWdlX3Np
emUgLyAxMDI0LAkxLAkJCQkmdGFwZS0+bWluX3BpcGVsaW5lLAkJCU5VTEwp
Ow0KLQlpZGVfYWRkX3NldHRpbmcoZHJpdmUsCSJwaXBlbGluZSIsCVNFVFRJ
TkdfUlcsCS0xLAktMSwJCVRZUEVfSU5ULAkyLAkJCTB4ZmZmZiwJCQl0YXBl
LT5zdGFnZV9zaXplIC8gMTAyNCwJMSwJCQkJJnRhcGUtPm1heF9zdGFnZXMs
CQkJTlVMTCk7DQotCWlkZV9hZGRfc2V0dGluZyhkcml2ZSwJInBpcGVsaW5l
X21heCIsCVNFVFRJTkdfUlcsCS0xLAktMSwJCVRZUEVfSU5ULAkyLAkJCTB4
ZmZmZiwJCQl0YXBlLT5zdGFnZV9zaXplIC8gMTAyNCwJMSwJCQkJJnRhcGUt
Pm1heF9waXBlbGluZSwJCQlOVUxMKTsNCisJaWRlX2FkZF9zZXR0aW5nKGRy
aXZlLAkicGlwZWxpbmVfbWluIiwJU0VUVElOR19SVywJLTEsCS0xLAkJVFlQ
RV9JTlQsCTEsCQkJMHhmZmZmLAkJCXRhcGUtPnN0YWdlX3NpemUgLyAxMDI0
LAkxLAkJCQkmdGFwZS0+bWluX3BpcGVsaW5lLAkJCU5VTEwpOw0KKwlpZGVf
YWRkX3NldHRpbmcoZHJpdmUsCSJwaXBlbGluZSIsCVNFVFRJTkdfUlcsCS0x
LAktMSwJCVRZUEVfSU5ULAkxLAkJCTB4ZmZmZiwJCQl0YXBlLT5zdGFnZV9z
aXplIC8gMTAyNCwJMSwJCQkJJnRhcGUtPm1heF9zdGFnZXMsCQkJTlVMTCk7
DQorCWlkZV9hZGRfc2V0dGluZyhkcml2ZSwJInBpcGVsaW5lX21heCIsCVNF
VFRJTkdfUlcsCS0xLAktMSwJCVRZUEVfSU5ULAkxLAkJCTB4ZmZmZiwJCQl0
YXBlLT5zdGFnZV9zaXplIC8gMTAyNCwJMSwJCQkJJnRhcGUtPm1heF9waXBl
bGluZSwJCQlOVUxMKTsNCiAJaWRlX2FkZF9zZXR0aW5nKGRyaXZlLAkicGlw
ZWxpbmVfdXNlZCIsU0VUVElOR19SRUFELAktMSwJLTEsCQlUWVBFX0lOVCwJ
MCwJCQkweGZmZmYsCQkJdGFwZS0+c3RhZ2Vfc2l6ZSAvIDEwMjQsCTEsCQkJ
CSZ0YXBlLT5ucl9zdGFnZXMsCQkJTlVMTCk7DQogCWlkZV9hZGRfc2V0dGlu
Zyhkcml2ZSwJInBpcGVsaW5lX3BlbmRpbmciLFNFVFRJTkdfUkVBRCwtMSwJ
LTEsCQlUWVBFX0lOVCwJMCwJCQkweGZmZmYsCQkJdGFwZS0+c3RhZ2Vfc2l6
ZSAvIDEwMjQsCTEsCQkJCSZ0YXBlLT5ucl9wZW5kaW5nX3N0YWdlcywJCU5V
TEwpOw0KIAlpZGVfYWRkX3NldHRpbmcoZHJpdmUsCSJzcGVlZCIsCVNFVFRJ
TkdfUkVBRCwJLTEsCS0xLAkJVFlQRV9TSE9SVCwJMCwJCQkweGZmZmYsCQkJ
MSwJCQkJMSwJCQkJJnRhcGUtPmNhcGFiaWxpdGllcy5zcGVlZCwJCU5VTEwp
Ow0KQEAgLTYwNjMsOCArNjEyOSwxMSBAQA0KIAlzaV9tZW1pbmZvKCZzaSk7
DQogCWlmICh0YXBlLT5tYXhfc3RhZ2VzICogdGFwZS0+c3RhZ2Vfc2l6ZSA+
IHNpLnRvdGFscmFtICogc2kubWVtX3VuaXQgLyAxMCkNCiAJCXRhcGUtPm1h
eF9zdGFnZXMgPSBzaS50b3RhbHJhbSAqIHNpLm1lbV91bml0IC8gKDEwICog
dGFwZS0+c3RhZ2Vfc2l6ZSk7DQotCXRhcGUtPm1pbl9waXBlbGluZSA9IHRh
cGUtPm1heF9zdGFnZXM7DQotCXRhcGUtPm1heF9waXBlbGluZSA9IHRhcGUt
Pm1heF9zdGFnZXMgKiAyOw0KKwl0YXBlLT5tYXhfc3RhZ2VzICAgPSBtaW4o
dGFwZS0+bWF4X3N0YWdlcywgSURFVEFQRV9NQVhfUElQRUxJTkVfU1RBR0VT
KTsNCisJdGFwZS0+bWluX3BpcGVsaW5lID0gbWluKHRhcGUtPm1heF9zdGFn
ZXMsIElERVRBUEVfTUlOX1BJUEVMSU5FX1NUQUdFUyk7DQorCXRhcGUtPm1h
eF9waXBlbGluZSA9IG1pbih0YXBlLT5tYXhfc3RhZ2VzICogMiwgSURFVEFQ
RV9NQVhfUElQRUxJTkVfU1RBR0VTKTsNCisJaWYgKHRhcGUtPm1heF9zdGFn
ZXMgPT0gMCkNCisJCXRhcGUtPm1heF9zdGFnZXMgPSB0YXBlLT5taW5fcGlw
ZWxpbmUgPSB0YXBlLT5tYXhfcGlwZWxpbmUgPSAxOw0KIA0KIAl0MSA9ICh0
YXBlLT5zdGFnZV9zaXplICogSFopIC8gKHNwZWVkICogMTAwMCk7DQogCXRt
aWQgPSAodGFwZS0+Y2FwYWJpbGl0aWVzLmJ1ZmZlcl9zaXplICogMzIgKiBI
WikgLyAoc3BlZWQgKiAxMjUpOw0K
---2084555674-1595446852-1039464219=:2204--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/