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.
---1463788289-1734292058-955750202=:21658
Content-Type: TEXT/PLAIN; charset=US-ASCII
Hello!
I think, (I *hope* to be honest) this is the nicer nice failback
patch I ever did. It adds some features that I'll extend next monday,
like periodic resources_held messages and so.
I'd challenge the brave ones to test this code (I'm still hardtesting
it). If someone survive and give me some feedback, I'll put it on the
CVS on Monday :)
Have a nice weekend!
Luis
[ Luis Claudio R. Goncalves lclaudio@conectiva.com.br ]
[. BSc in Computer Science -- MSc coming soon -- Gospel User -- Linuxer ]
[. Fault Tolerance - Real-Time - Distributed Systems - IECLB - IS 40:31 ]
[. LateNite Programmer -- Jesus Is The Solid Rock On Which I Stand -- ]
---1463788289-1734292058-955750202=:21658
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="actual_stuff.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0004141910020.21658@gus.conectiva>
Content-Description: Patch against heartbeat CVS of 04.13.2000
Content-Disposition: attachment; filename="actual_stuff.patch"
ZGlmZiAtcnVOIC9ob21lL2xjbGF1ZGlvL2xpbnV4LWhhL2hlYXJ0YmVhdC9o
YV9tc2cuaCBsaW51eC1oYS9oZWFydGJlYXQvaGFfbXNnLmgNCi0tLSAvaG9t
ZS9sY2xhdWRpby9saW51eC1oYS9oZWFydGJlYXQvaGFfbXNnLmgJV2VkIEFw
ciAxMiAyMDowMzo0OSAyMDAwDQorKysgbGludXgtaGEvaGVhcnRiZWF0L2hh
X21zZy5oCVRodSBBcHIgMTMgMTY6MTA6MDcgMjAwMA0KQEAgLTM2LDE0ICsz
NiwxNSBAQA0KICNkZWZpbmUgRl9BVVRIICAgICAgICAgICJhdXRoIgkJLyog
QXV0aGVudGljYXRpb24gc3RyaW5nICovDQogI2RlZmluZSBGX0ZJUlNUU0VR
ICAgICAgImZpcnN0c2VxIgkvKiBMb3dlc3Qgc2VxICMgdG8gcmV0cmFuc21p
dCAqLw0KICNkZWZpbmUgRl9MQVNUU0VRICAgICAgICJsYXN0c2VxIgkvKiBI
aWdoZXN0IHNlcSAjIHRvIHJldHJhbnNtaXQgKi8NCi0NCisjZGVmaW5lIEZf
UkVTCQkicmVzb3VyY2UiCS8qIFJlc291cmNlcyBoZWxkIGJ5IHRoZSBub2Rl
ICovDQorI2RlZmluZSBGX05SRVMJCSJub19vZl9yZXMiCS8qIE51bWJlciBv
ZiBSZXNvdXJjZXMgKi8NCiANCiAjZGVmaW5lCVRfU1RBVFVTCSJzdGF0dXMi
CS8qIE1lc3NhZ2UgdHlwZSA9IFN0YXR1cyAqLw0KICNkZWZpbmUJTk9TRVFf
UFJFRklYCSJOU18iCQkvKiBHaXZlIG5vIHNlcXVlbmNlIG51bWJlciAqLw0K
ICNkZWZpbmUJVF9SRVhNSVQJIk5TX3JleG1pdCIJLyogTWVzc2FnZSB0eXBl
ID0gUmV0cmFuc21pdCByZXF1ZXN0ICovDQogI2RlZmluZQlUX05BS1JFWE1J
VAkiTlNfbmFrX3JleG1pdCIJLyogTWVzc2FnZSB0eXBlID0gTkFLIFJlLXht
aXQgcnFzdCAqLw0KICNkZWZpbmUgVF9TVEFSVElORyAgICAgICJzdGFydGlu
ZyIgICAgICAvKiBNZXNzYWdlIHR5cGUgPSBTdGFydGluZyBIZWFydGJlYXQg
Ki8NCi0NCisjZGVmaW5lIFRfUkVTCQkicnNjX2hlbGQiCS8qIE1lc3NhZ2Ug
dHlwZSA9IExpc3Qgb2YgUmVzb3VyY2VzICovDQogDQogLyogQWxsb2NhdGUg
bmV3IChlbXB0eSkgbWVzc2FnZSAqLw0KIHN0cnVjdCBoYV9tc2cgKgloYV9t
c2dfbmV3KGludCBuZmllbGRzKTsNCmRpZmYgLXJ1TiAvaG9tZS9sY2xhdWRp
by9saW51eC1oYS9oZWFydGJlYXQvaGVhcnRiZWF0LmMgbGludXgtaGEvaGVh
cnRiZWF0L2hlYXJ0YmVhdC5jDQotLS0gL2hvbWUvbGNsYXVkaW8vbGludXgt
aGEvaGVhcnRiZWF0L2hlYXJ0YmVhdC5jCVdlZCBBcHIgMTIgMjA6MDM6NDkg
MjAwMA0KKysrIGxpbnV4LWhhL2hlYXJ0YmVhdC9oZWFydGJlYXQuYwlGcmkg
QXByIDE0IDE4OjQ2OjU4IDIwMDANCkBAIC0xNjQsNiArMTY0LDE2IEBADQog
I2RlZmluZQlEUk9QSVQJMSANCiAjZGVmaW5lIERVUExJQ0FURQkyDQogDQor
LyogRGVmaW5lcyB0byB1c2Ugb24gQ0xVU1RFUiBmbGFncyAqLw0KKyNkZWZp
bmUgTUVfQUxWCQkxNiAgLyogSSBhbSBhbGl2ZSAqLw0KKyNkZWZpbmUgTUVf
UFJJCQkzMiAgLyogSSBhbSB0aGUgcHJpbWFyeSBub2RlICovDQorI2RlZmlu
ZSBNRV9SU0MJCTY0ICAvKiBJIGhhdmUgdGhlIHJlc291cmNlcyAqLw0KKyNk
ZWZpbmUgTUVfU1RSCQkxMjggLyogSSBhbSBzdGFydGluZyAqLw0KKyNkZWZp
bmUgT1RfQUxWCQkxICAgLyogVGhlIG90aGVyIG5vZGUgaXMgYWxpdmUgKi8N
CisjZGVmaW5lIE9UX1BSSQkJMiAgIC8qIFRoZSBvdGhlciBub2RlIGlzIHRo
ZSBwcmltYXJ5ICovDQorI2RlZmluZSBPVF9SU0MJCTQgICAvKiBUaGUgb3Ro
ZXIgbm9kZSBoYXMgdGhlIHJlc291cmNlcyAqLw0KKyNkZWZpbmUgT1RfU1RS
CQk4ICAgLyogVGhlIG90aGVyIG5vZGUgaXMgc3RhcnRpbmcgKi8NCisgDQog
aW50CQl2ZXJib3NlID0gMDsNCiANCiBjb25zdCBjaGFyICoJY21kbmFtZSA9
ICJoZWFydGJlYXQiOw0KQEAgLTE3Niw3ICsxODYsOCBAQA0KIGludCAgICAg
ICAgICAgICB3ZV9hcmVfcHJpbWFyeSA9IDA7DQogaW50ICAgICAgICAgICAg
IHNlbmRfc3RhcnRpbmdfbm93ID0gMTsNCiBpbnQgICAgICAgICAgICAgbmlj
ZV9mYWlsYmFjayA9IDA7DQotaW50CQlzdGFydGluZyA9IDE7DQorY2hhcgkJ
Q0xVU1RFUiA9IDA7DQorY2hhcgkJRkFVTFRTID0gMDsNCiBpbnQJCWtpbGxy
dW5uaW5naGIgPSAwOw0KIGludAkJcnB0X2hiX3N0YXR1cyA9IDA7DQogaW50
CQljaGlsZHBpZCA9IC0xOw0KQEAgLTE5Miw2ICsyMDMsNyBAQA0KIGV4dGVy
biBjb25zdCBpbnQJbnVtX2hiX21lZGlhX3R5cGVzOw0KIGludAkJCW51bW1l
ZGlhID0gMDsNCiBpbnQJCQlzdGF0dXNfcGlwZVsyXTsJLyogVGhlIE1hc3Rl
ciBzdGF0dXMgcGlwZSAqLw0KK3N0cnVjdCBoYV9tc2cgKgkJcmVzb3VyY2Vz
X2hlbGQgPSBOVUxMOw0KIA0KIGNvbnN0IGNoYXIgKmhhX2xvZ19wcmlvcml0
eVs4XSA9IHsNCiAJImVtZXJnIiwNCkBAIC04MDEsOCArODEzLDcgQEANCiAJ
c3RydWN0IGhhX21zZyAqCQltc2cgPSBOVUxMOw0KIAlpbnQJCQlyZXNvdXJj
ZXNfcmVxdWVzdGVkX3lldCA9IDA7DQogCXRpbWVfdAkJCWxhc3Rub3cgPSAw
TDsNCi0JaW50IAkJCXJlY2VpdmVkX3N0YXJ0aW5nID0gMDsNCi0JY2hhcglp
ZmFjZVtNQVhJRkFDRUxFTl07DQorIAljaGFyCWlmYWNlW01BWElGQUNFTEVO
XTsgDQogCXN0cnVjdAlsaW5rICpsbms7DQogDQogCWluaXRfc3RhdHVzX2Fs
YXJtKCk7DQpAQCAtODEwLDYgKzgyMSw4IEBADQogDQogCWNsZWFyZXJyKGYp
Ow0KIA0KKwlDTFVTVEVSIHw9IChNRV9BTFYgKyBNRV9TVFIpOw0KKw0KIAlm
b3IgKDs7IChtc2cgIT0gTlVMTCkgJiYgKGhhX21zZ19kZWwobXNnKSxtc2c9
TlVMTCwgMSkpIHsNCiAJCXRpbWVfdAkJbXNndGltZTsNCiAJCXRpbWVfdAkJ
bm93ID0gdGltZShOVUxMKTsNCkBAIC04MjIsNyArODM1LDcgQEANCiAJCQlz
ZW5kX2xvY2FsX3N0YXR1cygpOw0KIAkJfQ0KIA0KLQkJaWYgKChzZW5kX3N0
YXJ0aW5nX25vdyAmJiBuaWNlX2ZhaWxiYWNrKSAmJiBzdGFydGluZykgew0K
KwkJaWYgKHNlbmRfc3RhcnRpbmdfbm93ICYmIChDTFVTVEVSICYmIE1FX1NU
UikpIHsNCiAJCQlzZW5kX3N0YXJ0aW5nX25vdyA9IDA7DQogCQkJaGFfbG9n
KExPR19ERUJVRywgIlNlbmRpbmcgc3RhcnRpbmcgbXNnIik7DQogCQkJc2Vu
ZF9sb2NhbF9zdGFydGluZygpOw0KQEAgLTkwNiwyNiArOTE5LDU3IEBADQog
CQkJfQ0KIAkJfQ0KIA0KLQ0KLQ0KKwkJaWYgKCB0aGlzbm9kZSAhPSBjdXJu
b2RlICkgew0KKwkJCS8qIHRoZSBvdGhlciBob3N0IGlzIGFsaXZlICovDQor
CQkJQ0xVU1RFUiB8PSBPVF9BTFY7DQorCQl9DQorCQkNCiAJCS8qIElmIHdl
J3JlIHN0YXJ0aW5nIGFuZCBhICJzdGFydGluZyIgbWVzc2FnZSBjYW1lIGZy
b20gYW5vdGhlcg0KIAkJICogIG5vZGUsIHRoZSBwcmltYXJ5IG1heSB0YWtl
IGl0cyByb2xlLiBFbHNlIGFjdCBhcyBzZWNvbmRhcnkgDQogCQkgKiAgKG9m
IGNvdXJzZSwgaWYgbmljZV9mYWlsYmFjayBpcyBvbikNCiAJCSovDQotCQkN
CiAJCWlmICghc3RyY2FzZWNtcCh0eXBlLE5PU0VRX1BSRUZJWCBUX1NUQVJU
SU5HKSANCi0JCSYmIHRoaXNub2RlICE9IGN1cm5vZGUgJiYgKHN0YXJ0aW5n
ICYmIG5pY2VfZmFpbGJhY2spKSB7DQorCQkmJiAodGhpc25vZGUgIT0gY3Vy
bm9kZSkgJiYgbmljZV9mYWlsYmFjaykgew0KICAgICAgICAgICAgICAgICAg
ICAgICAgIG5pY2VfZmFpbGJhY2sgPSAwOw0KKwkJCUNMVVNURVIgfD0gKE9U
X0FMVnxPVF9TVFIpOw0KIAkJCWNsdXN0ZXJfYWxyZWFkeV9hY3RpdmUgPSAw
Ow0KLQkJCXJlY2VpdmVkX3N0YXJ0aW5nID0gMTsNCi0JCQlzdGFydGluZyA9
IDA7DQogCQkJaGFfbG9nKExPR19ERUJVRywiUmVjZWl2ZWQgc3RhcnRpbmcg
bXNnIGZyb20gJXMiDQogCQkJCQksZnJvbSk7DQotCQkJc2VuZF9sb2NhbF9z
dGFydGluZygpOw0KKwkJCWlmIChDTFVTVEVSICYmIE1FX1NUUikgew0KKwkJ
CQloYV9sb2coTE9HX0RFQlVHLA0KKwkJCQkJCSJFdmVyeWJvZHkgaXMgc3Rh
cnRpbmcgbm93Li4uIik7DQorCQkJCXNlbmRfbG9jYWxfc3RhcnRpbmcoKTsN
CisJCQl9DQorCQkJLyogY29udGludWUgKi8NCisJCX0NCisJDQorCQlpZiAo
IXN0cmNhc2VjbXAodHlwZSxOT1NFUV9QUkVGSVggVF9TVEFSVElORykgDQor
CQkmJiAgKHRoaXNub2RlICE9IGN1cm5vZGUpICYmICEoQ0xVU1RFUiAmJiBN
RV9TVFIpKSB7DQorCQkJc2VuZF9yZXNvdXJjZXNfaGVsZCgpOw0KKwkJCWlm
IChhdG9pKGhhX21zZ192YWx1ZShyZXNvdXJjZXNfaGVsZCwgRl9OUkVTKSk8
IDEpIHsNCisJCQkJaGFfbG9nKExPR19ERUJVRywiVGhlIG90aGVyIGd1eSBp
cyBzdGFydGluZyINCisJCQkJCQkiYW5kIEkgaGF2ZSBubyByZXNvbHJjZXMu
Li4iKTsNCisJCQkJbmljZV9mYWlsYmFjayA9IDA7DQorCQkJCWhhX2xvZyhM
T0dfREVCVUcsIk1heSB0aGUgcHJpbWFyeSB0YWtlcyBwbGFjZSIpOw0KKwkJ
CQlyZXFfb3VyX3Jlc291cmNlcygpOw0KKwkJCX0NCiAJCQljb250aW51ZTsN
CiAJCX0NCi0JCQkJDQotCQkvKg0KKwkJCQ0KKwkJaWYgKCFzdHJjYXNlY21w
KHR5cGUsTk9TRVFfUFJFRklYIFRfUkVTKQ0KKwkJJiYgKHRoaXNub2RlICE9
IGN1cm5vZGUpKSB7DQorCQkJaGFfbG9nKExPR19JTkZPLCAiJXMgaGFzICVz
IHJlc291cmNlcyEiLA0KKwkJCQkJZnJvbSwgaGFfbXNnX3ZhbHVlKG1zZywg
Rl9OUkVTKSk7DQorCQkJaWYgKGF0b2koaGFfbXNnX3ZhbHVlKG1zZywgRl9O
UkVTKSk+IDApIHsNCisJCQkJLyogdGhlIG90aGVyIG5vZGUgaGFzIHRoZSBy
ZXNvdXJjZXMgKi8NCisJCQkJQ0xVU1RFUiB8PSBPVF9SU0M7DQorCQkJfSBl
bHNlIHsNCisJCQkJQ0xVU1RFUiAmPSAhKE9UX1JTQyk7DQorCQkJfQ0KKwkJ
CWNvbnRpbnVlOw0KKwkJfQ0KKw0KKwkvKg0KIAkJICogUmVxdWVzdCBvdXIg
cmVzb3VyY2VzIGFmdGVyIGEgKFBQUC1pbmR1Y2VkKSBkZWxheS4NCiAJCSAq
IElmIHdlIGhhdmUgUFBQIGFzIG91ciBvbmx5IGxpbmsgdGhpcyBkZWxheSBt
aWdodCBoYXZlDQogCQkgKiB0byBiZSA3IG9yIDggc2Vjb25kcy4gIE90aGVy
d2lzZSB0aGUgbmVlZGVkIGRlbGF5IGlzDQpAQCAtOTM2LDIwICs5ODAsMzgg
QEANCiAJCSAqLw0KIA0KICAgICAgICAgICAgICAgICBpZiAoIVdlQXJlUmVz
dGFydGluZyAmJiAhcmVzb3VyY2VzX3JlcXVlc3RlZF95ZXQNCi0JCSYmCSh0
aGlzbm9kZSAhPSBjdXJub2RlICYmIChub3ctc3RhcnR0aW1lKSA+IFJRU1RE
RUxBWSkpIHsNCi0JCQlpZiAobmljZV9mYWlsYmFjayAmJiAhcmVjZWl2ZWRf
c3RhcnRpbmcpIHsNCisJCSYmICgodGhpc25vZGUgIT0gY3Vybm9kZSkgJiYg
KG5vdy1zdGFydHRpbWUpID4gUlFTVERFTEFZKSkgew0KKw0KKwkJCUNMVVNU
RVIgJj0gIShNRV9TVFIpOw0KKwkJCWlmIChuaWNlX2ZhaWxiYWNrICYmICEo
Q0xVU1RFUiAmJiBPVF9TVFIpKSB7DQogCQkJCWhhX2xvZyhMT0dfREVCVUcs
DQogCQkJCQkiVGhlIGNsdXN0ZXIgaXMgYWxyZWFkeSBhY3RpdmUiKTsNCiAJ
CQkJY2x1c3Rlcl9hbHJlYWR5X2FjdGl2ZSA9IDE7DQorCQkJCQ0KKwkJCQlp
ZiAoQ0xVU1RFUiAmJiBPVF9SU0MpIHsNCisJCQkJCWhhX2xvZyhMT0dfREVC
VUcsDQorCQkJCQkiVGhlIG90aGVyIG5vZGUgaGFzIHRoZSByZXNvdXJjZXMi
KTsNCisJCQkJfSBlbHNlIHsNCisJCQkJCWhhX2xvZyhMT0dfREVCVUcsDQor
CQkJCQkiQnV0IG5vb25lIGhvbGRzIHRoZSByZXNvdXJjZXMuLi4iKTsNCisJ
CQkJCS8qIERvIHNvbWV0aGluZyBpbnRlbGlnZW50ICovDQorCQkJCQluaWNl
X2ZhaWxiYWNrID0gMDsNCisJCQkJCWhhX2xvZyhMT0dfREVCVUcsDQorCQkJ
CQkJIk1heSB0aGUgcHJpbWFyeSB0YWtlcyBwbGFjZSIpOw0KKwkJCQl9DQor
CQkJCQ0KIAkJCX0gZWxzZSB7DQotCQkJCWlmIChuaWNlX2ZhaWxiYWNrICYm
IHJlY2VpdmVkX3N0YXJ0aW5nKSB7DQorCQkJCWlmIChuaWNlX2ZhaWxiYWNr
ICYmIChDTFVTVEVSICYmIE9UX1NUUikpIHsNCiAJCQkJCWhhX2xvZyhMT0df
REVCVUcsDQogCQkJCQkJIkV2ZXJ5Ym9keSBpcyBzdGFydGluZyBub3ciKTsN
CisJCQkJCW5pY2VfZmFpbGJhY2s9MDsNCiAJCQkJfQ0KIAkJCX0NCiAJCQly
ZXNvdXJjZXNfcmVxdWVzdGVkX3lldD0xOw0KLQkJCXN0YXJ0aW5nID0gMDsN
CiAJCQlyZXFfb3VyX3Jlc291cmNlcygpOw0KKwkJCWlmIChDTFVTVEVSICYm
IE9UX1NUUikgew0KKwkJCQlDTFVTVEVSICY9ICFPVF9TVFI7DQorCQkJfQ0K
IAkJfQ0KIA0KIAkJaWYgKCFzdHJjYXNlY21wKHR5cGUsTk9TRVFfUFJFRklY
IFRfU1RBUlRJTkcpKSB7DQpAQCAtMTUwMSw2ICsxNTYzLDc1IEBADQogCXJl
dHVybihIQV9PSyk7DQogfQ0KIA0KKw0KKy8qIFNlbmQgcmVzb3VyY2VzX2hl
bGQgbGlzdCBvdXQgdG8gdGhlIGNsdXN0ZXIgKi8NCitpbnQNCitzZW5kX3Jl
c291cmNlc19oZWxkKHZvaWQpDQorew0KKyAgICAgICAgc3RydWN0IGhhX21z
ZyAqIG07DQorICAgICAgICBpbnQgICAgICAgICAgICAgcmM7DQorICAgICAg
ICBjaGFyICAgICAgICAgICAgdGltZXN0YW1wWzE2XTsNCisJY29uc3QgY2hh
ciAqCW5yaDsNCisNCisgICAgICAgIHNwcmludGYodGltZXN0YW1wLCAiJWx4
IiwgdGltZShOVUxMKSk7DQorDQorICAgICAgICAvKiBpZiAoZGVidWcpeyAq
Lw0KKyAgICAgICAgICAgICAgICBoYV9sb2coTE9HX0RFQlVHLCAiU2VuZGlu
ZyByZXNvdXJjZXMgaGVsZCBsaXN0IG1zZyIpOw0KKyAgICAgICAgLyogfSAq
Lw0KKyAgICAgICAgaWYgKChtPWhhX21zZ19uZXcoMCkpID09IE5VTEwpIHsN
CisgICAgICAgICAgICAgICAgaGFfbG9nKExPR19FUlIsICJDYW5ub3Qgc2Vu
ZCByZXNvdXJjZXMgaGVsZCBsaXN0IG1zZyIpOw0KKyAgICAgICAgICAgICAg
ICByZXR1cm4oSEFfRkFJTCk7DQorICAgICAgICB9DQorDQorCW5yaCA9IGhh
X21zZ192YWx1ZShyZXNvdXJjZXNfaGVsZCwgRl9OUkVTKTsNCisJaGFfbG9n
KExPR19ERUJVRywgIk51bWJlciBvZiByZXNvdXJjZXMgaGVsZDogICVzIiwg
bnJoKTsNCisJDQorICAgICAgICBpZiAoKGhhX21zZ19hZGQobSwgRl9UWVBF
LCBOT1NFUV9QUkVGSVggVF9SRVMpID09IEhBX0ZBSUwpIA0KKyAgICAgICAg
fHwgIChoYV9tc2dfYWRkKG0sIEZfT1JJRywgY3Vybm9kZS0+bm9kZW5hbWUp
ID09IEhBX0ZBSUwpDQorICAgICAgICB8fCAoaGFfbXNnX2FkZChtLCBGX1RJ
TUUsIHRpbWVzdGFtcCkgPT0gSEFfRkFJTCkNCisgICAgICAgIHx8ICAoaGFf
bXNnX2FkZChtLCBGX05SRVMsIG5yaCkgPT0gSEFfRkFJTCkpIHsNCisgICAg
ICAgICAgICAgICAgaGFfbG9nKExPR19FUlIsICJzZW5kX3Jlc291cmNlc19o
ZWxkOiAiDQorICAgICAgICAgICAgICAgICJDYW5ub3QgY3JlYXRlIHJlc291
cmNlcyBoZWxkIGxpc3QgbXNnIik7DQorICAgICAgICAgICAgICAgIHJjID0g
SEFfRkFJTDsNCisgICAgICAgIH0NCisJDQorCWhhX2xvZyhMT0dfREVCVUcs
ICJOdW1iZXIgb2YgcmVzb3VyY2VzIGZvciB0aGUgbXNnOiAgJXMiLA0KKwkJ
CWhhX21zZ192YWx1ZShtLCBGX05SRVMpKTsNCisJDQorCS8qIElmIHRoZSBt
ZXNzYWdlIGhlYWRlciBpcyBPSywgbGV0J3MgbG9vayBmb3IgdGhlIHJlc291
cmNlIGxpc3QNCisgCSAqIGFuZCBzZW5kIGl0IG91dCAqLw0KKwkNCisJaWYg
KHJjICE9IEhBX0ZBSUwpIHsNCisJCWludCAgICAgajsNCisJCWlmICghcmVz
b3VyY2VzX2hlbGQgfHwgIXJlc291cmNlc19oZWxkLT5uYW1lcyANCisJCQkJ
CXx8ICFyZXNvdXJjZXNfaGVsZC0+dmFsdWVzKSB7DQorCQkJaGFfbG9nKExP
R19ERUJVRywgDQorCQkJCSJzZW5kX3Jlc291cmNlc19oZWxkOiBvb3BzLCBu
byByZXNvdXJjZXMgaGVsZCIpOw0KKwkJfSBlbHNlIHsNCisJCQlmb3IgKGo9
MDsgaiA8IHJlc291cmNlc19oZWxkLT5uZmllbGRzOyArK2opIHsNCisJCQkJ
aWYgKHN0cmNtcChGX1JFUywgDQorCQkJCQlyZXNvdXJjZXNfaGVsZC0+bmFt
ZXNbal0pID09IDApIHsNCisJCQkJCWhhX2xvZyhMT0dfREVCVUcsICJyZXNv
dXJjZSBuYW1lOiAlcyIsIA0KKwkJCQkJCXJlc291cmNlc19oZWxkLT52YWx1
ZXNbal0pOw0KKwkJCQkJaWYgKGhhX21zZ19hZGQobSwgRl9SRVMsIA0KKwkJ
CQkJCXJlc291cmNlc19oZWxkLT52YWx1ZXNbal0pDQorCQkJCQkJCT09IEhB
X0ZBSUwpIHsNCisJCQkJCQlyYz1IQV9GQUlMOw0KKwkJCQkJfQ0KKwkJCQl9
DQorCQkJfQ0KKwkJfQ0KKwl9DQorCQ0KKwlpZiAocmMgIT0gSEFfRkFJTCkg
ew0KKyAgICAgICAgICAgICAgICByYyA9IHNlbmRfY2x1c3Rlcl9tc2cobSk7
DQorCX0NCisJDQorICAgICAgICBoYV9tc2dfZGVsKG0pOw0KKyAgICAgICAg
cmV0dXJuKHJjKTsNCit9DQorDQorDQogLyogU2VuZCB0aGUgc3RhcnRpbmcg
bXNnIG91dCB0byB0aGUgY2x1c3RlciAqLw0KIGludA0KIHNlbmRfbG9jYWxf
c3RhcnRpbmcodm9pZCkNCkBAIC0xNTE5LDggKzE2NTAsOCBAQA0KICAgICAg
ICAgICAgICAgICByZXR1cm4oSEFfRkFJTCk7DQogICAgICAgICB9DQogICAg
ICAgICBpZiAoKGhhX21zZ19hZGQobSwgRl9UWVBFLCBOT1NFUV9QUkVGSVgg
VF9TVEFSVElORykgPT0gSEFfRkFJTCkgDQotICAgICAgICAmJiAgKGhhX21z
Z19hZGQobSwgRl9PUklHLCBjdXJub2RlLT5ub2RlbmFtZSkgPT0gSEFfRkFJ
TCkNCi0gICAgICAgICYmICAoaGFfbXNnX2FkZChtLCBGX1RJTUUsIHRpbWVz
dGFtcCkgPT0gSEFfRkFJTCkpIHsNCisgICAgICAgIHx8ICAoaGFfbXNnX2Fk
ZChtLCBGX09SSUcsIGN1cm5vZGUtPm5vZGVuYW1lKSA9PSBIQV9GQUlMKQ0K
KyAgICAgICAgfHwgIChoYV9tc2dfYWRkKG0sIEZfVElNRSwgdGltZXN0YW1w
KSA9PSBIQV9GQUlMKSkgew0KICAgICAgICAgICAgICAgICBoYV9sb2coTE9H
X0VSUiwgInNlbmRfbG9jYWxfc3RhcnRpbmc6ICINCiAgICAgICAgICAgICAg
ICAgIkNhbm5vdCBjcmVhdGUgbG9jYWwgc3RhcnRpbmcgbXNnIik7DQogICAg
ICAgICAgICAgICAgIHJjID0gSEFfRkFJTDsNCkBAIC0xNTMyLDYgKzE2NjMs
NyBAQA0KICAgICAgICAgcmV0dXJuKHJjKTsNCiB9DQogDQorDQogLyogU2Vu
ZCBvdXIgbG9jYWwgc3RhdHVzIG91dCB0byB0aGUgY2x1c3RlciAqLw0KIGlu
dA0KIHNlbmRfbG9jYWxfc3RhdHVzKHZvaWQpDQpAQCAtMTU5Nyw5ICsxNzI5
LDkgQEANCiANCiAJaGVhcnRiZWF0X21vbml0b3IoaG1zZyk7DQogCQ0KLQlp
ZiAoc3RhcnRpbmcgJiYgbmljZV9mYWlsYmFjayAmJiBoaXAgIT0gY3Vybm9k
ZSkgew0KKwlpZiAoKENMVVNURVIgJiYgTUVfU1RSKSAmJiBuaWNlX2ZhaWxi
YWNrICYmIGhpcCAhPSBjdXJub2RlKSB7DQogCQloYV9sb2coTE9HX0RFQlVH
LCAiSSdtIGFsb25lLi4uICIpOw0KLQkJLyogVGhpcyBpcyBvbmUgb2YgdGhl
ICBwbGFjZSB0byBwdXQgdGhlDQorCQkvKiBUaGlzIGlzIG9uZSBvZiB0aGUg
cGxhY2VzIHRvIHB1dCB0aGUNCiAJCSAqIFNJVF9BTkRfQ1JZIHN0dWZmICov
DQogCQluaWNlX2ZhaWxiYWNrID0gMDsNCiAJCXJlcV9vdXJfcmVzb3VyY2Vz
KCk7DQpAQCAtMTc0Niw3ICsxODc4LDEzIEBADQogCWludAlmaW5hbHJjID0g
SEFfT0s7DQogCWludAlyYzsNCiAJaW50CXJzY19jb3VudCA9IDA7DQorCWlu
dCAJcnNjX2hlbGQgPSAwOw0KKwljaGFyIAlzcnNjX2hlbGRbMTBdOw0KIA0K
KyAgICAgICAgaWYgKChyZXNvdXJjZXNfaGVsZCA9IGhhX21zZ19uZXcoMCkp
ID09IE5VTEwpIHsNCisJCWhhX2xvZyhMT0dfRVJSLCAibm8gbWVtb3J5IHRv
IGNyZWF0ZSByZXNvdXJjZSBsaXN0Iik7DQorCQlyZXR1cm4oSEFfRkFJTCk7
DQorCX0NCiAJDQogCWhhX2xvZyhMT0dfSU5GTywgIlJlcXVlc3Rpbmcgb3Vy
IHJlc291cmNlcy4iKTsNCiAJc3ByaW50ZihjbWQsIEhBTElCICIvUmVzb3Vy
Y2VNYW5hZ2VyIGxpc3RrZXlzICVzIiwgY3Vybm9kZS0+bm9kZW5hbWUpOw0K
QEAgLTE3ODYsNiArMTkyNCwxMSBAQA0KIAkJCQloYV9wZXJyb3IoIiVzIHJl
dHVybmVkICVkIiwgZ2V0Y21kLCByYyk7DQogCQkJCWZpbmFscmM9SEFfRkFJ
TDsNCiAJCQl9DQorICAgICAgICAJCWlmIChoYV9tc2dfYWRkKHJlc291cmNl
c19oZWxkLCBGX1JFUywgYnVmKSA9PSBIQV9GQUlMKSB7DQorCQkJCWhhX2xv
ZyhMT0dfRVJSLCAibm8gbWVtb3J5IHRvIGxpc3QgcmVzb3VyY2UiKTsNCisJ
CQl9DQorCQkJKytyc2NfaGVsZDsNCisJCQloYV9sb2coTE9HX0RFQlVHLCAi
SSBnb3QgcmVzb3VyY2U6ICVzIiwgYnVmKTsNCiAJCX0NCiAJfQ0KIA0KQEAg
LTE3OTMsNyArMTkzNiwxMiBAQA0KICAgICAgICAgICAgICAgICBjbHVzdGVy
X2FscmVhZHlfYWN0aXZlID0gMDsNCiAgICAgICAgICAgICAgICAgd2VfYXJl
X3ByaW1hcnkgPSAxOw0KICAgICAgICAgfQ0KLQ0KKwkNCisJc3ByaW50Zihz
cnNjX2hlbGQsICIlZCIsIHJzY19oZWxkKTsNCisJaWYgKGhhX21zZ19hZGQo
cmVzb3VyY2VzX2hlbGQsIEZfTlJFUywgc3JzY19oZWxkKSA9PSBIQV9GQUlM
KSB7DQorCQloYV9sb2coTE9HX0VSUiwgIm5vIG1lbW9yeSB0byBsaXN0IHJl
c291cmNlIik7DQorCX0NCisJCQkNCiAJcmM9cGNsb3NlKHJrZXlzKTsNCiAJ
aWYgKHJjIDwgMCAmJiBlcnJubyAhPSBFQ0hJTEQpIHsNCiAJCWhhX3BlcnJv
cigicGNsb3NlKCVzKSByZXR1cm5lZCAlZCIsIGNtZCwgcmMpOw0KZGlmZiAt
cnVOIC9ob21lL2xjbGF1ZGlvL2xpbnV4LWhhL2hlYXJ0YmVhdC9oZWFydGJl
YXQuaCBsaW51eC1oYS9oZWFydGJlYXQvaGVhcnRiZWF0LmgNCi0tLSAvaG9t
ZS9sY2xhdWRpby9saW51eC1oYS9oZWFydGJlYXQvaGVhcnRiZWF0LmgJV2Vk
IEFwciAxMiAyMDowMzo0OSAyMDAwDQorKysgbGludXgtaGEvaGVhcnRiZWF0
L2hlYXJ0YmVhdC5oCVRodSBBcHIgMTMgMTY6MTA6MDcgMjAwMA0KQEAgLTI4
OCw2ICsyODgsNyBAQA0KIGV4dGVybiB2b2lkCQloYV9sb2coaW50IHByaW9y
aXR5LCBjb25zdCBjaGFyICogZm10LCAuLi4pOw0KIGV4dGVybiB2b2lkCQlo
YV9wZXJyb3IoY29uc3QgY2hhciAqIGZtdCwgLi4uKTsNCiBleHRlcm4gaW50
ICAgICAgICAgICAgICBzZW5kX2xvY2FsX3N0YXJ0aW5nKHZvaWQpOw0KK2V4
dGVybiBpbnQgICAgICAgICAgICAgIHNlbmRfcmVzb3VyY2VzX2hlbGQodm9p
ZCk7DQogZXh0ZXJuIGludAkJc2VuZF9sb2NhbF9zdGF0dXModm9pZCk7DQog
ZXh0ZXJuIGludAkJc2V0X2xvY2FsX3N0YXR1cyhjb25zdCBjaGFyICogc3Rh
dHVzKTsNCiBleHRlcm4gaW50CQlzZW5kX2NsdXN0ZXJfbXNnKHN0cnVjdCBo
YV9tc2cqbXNnKTsNCg==
---1463788289-1734292058-955750202=:21658--
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
---1463788289-1734292058-955750202=:21658
Content-Type: TEXT/PLAIN; charset=US-ASCII
Hello!
I think, (I *hope* to be honest) this is the nicer nice failback
patch I ever did. It adds some features that I'll extend next monday,
like periodic resources_held messages and so.
I'd challenge the brave ones to test this code (I'm still hardtesting
it). If someone survive and give me some feedback, I'll put it on the
CVS on Monday :)
Have a nice weekend!
Luis
[ Luis Claudio R. Goncalves lclaudio@conectiva.com.br ]
[. BSc in Computer Science -- MSc coming soon -- Gospel User -- Linuxer ]
[. Fault Tolerance - Real-Time - Distributed Systems - IECLB - IS 40:31 ]
[. LateNite Programmer -- Jesus Is The Solid Rock On Which I Stand -- ]
---1463788289-1734292058-955750202=:21658
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="actual_stuff.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0004141910020.21658@gus.conectiva>
Content-Description: Patch against heartbeat CVS of 04.13.2000
Content-Disposition: attachment; filename="actual_stuff.patch"
ZGlmZiAtcnVOIC9ob21lL2xjbGF1ZGlvL2xpbnV4LWhhL2hlYXJ0YmVhdC9o
YV9tc2cuaCBsaW51eC1oYS9oZWFydGJlYXQvaGFfbXNnLmgNCi0tLSAvaG9t
ZS9sY2xhdWRpby9saW51eC1oYS9oZWFydGJlYXQvaGFfbXNnLmgJV2VkIEFw
ciAxMiAyMDowMzo0OSAyMDAwDQorKysgbGludXgtaGEvaGVhcnRiZWF0L2hh
X21zZy5oCVRodSBBcHIgMTMgMTY6MTA6MDcgMjAwMA0KQEAgLTM2LDE0ICsz
NiwxNSBAQA0KICNkZWZpbmUgRl9BVVRIICAgICAgICAgICJhdXRoIgkJLyog
QXV0aGVudGljYXRpb24gc3RyaW5nICovDQogI2RlZmluZSBGX0ZJUlNUU0VR
ICAgICAgImZpcnN0c2VxIgkvKiBMb3dlc3Qgc2VxICMgdG8gcmV0cmFuc21p
dCAqLw0KICNkZWZpbmUgRl9MQVNUU0VRICAgICAgICJsYXN0c2VxIgkvKiBI
aWdoZXN0IHNlcSAjIHRvIHJldHJhbnNtaXQgKi8NCi0NCisjZGVmaW5lIEZf
UkVTCQkicmVzb3VyY2UiCS8qIFJlc291cmNlcyBoZWxkIGJ5IHRoZSBub2Rl
ICovDQorI2RlZmluZSBGX05SRVMJCSJub19vZl9yZXMiCS8qIE51bWJlciBv
ZiBSZXNvdXJjZXMgKi8NCiANCiAjZGVmaW5lCVRfU1RBVFVTCSJzdGF0dXMi
CS8qIE1lc3NhZ2UgdHlwZSA9IFN0YXR1cyAqLw0KICNkZWZpbmUJTk9TRVFf
UFJFRklYCSJOU18iCQkvKiBHaXZlIG5vIHNlcXVlbmNlIG51bWJlciAqLw0K
ICNkZWZpbmUJVF9SRVhNSVQJIk5TX3JleG1pdCIJLyogTWVzc2FnZSB0eXBl
ID0gUmV0cmFuc21pdCByZXF1ZXN0ICovDQogI2RlZmluZQlUX05BS1JFWE1J
VAkiTlNfbmFrX3JleG1pdCIJLyogTWVzc2FnZSB0eXBlID0gTkFLIFJlLXht
aXQgcnFzdCAqLw0KICNkZWZpbmUgVF9TVEFSVElORyAgICAgICJzdGFydGlu
ZyIgICAgICAvKiBNZXNzYWdlIHR5cGUgPSBTdGFydGluZyBIZWFydGJlYXQg
Ki8NCi0NCisjZGVmaW5lIFRfUkVTCQkicnNjX2hlbGQiCS8qIE1lc3NhZ2Ug
dHlwZSA9IExpc3Qgb2YgUmVzb3VyY2VzICovDQogDQogLyogQWxsb2NhdGUg
bmV3IChlbXB0eSkgbWVzc2FnZSAqLw0KIHN0cnVjdCBoYV9tc2cgKgloYV9t
c2dfbmV3KGludCBuZmllbGRzKTsNCmRpZmYgLXJ1TiAvaG9tZS9sY2xhdWRp
by9saW51eC1oYS9oZWFydGJlYXQvaGVhcnRiZWF0LmMgbGludXgtaGEvaGVh
cnRiZWF0L2hlYXJ0YmVhdC5jDQotLS0gL2hvbWUvbGNsYXVkaW8vbGludXgt
aGEvaGVhcnRiZWF0L2hlYXJ0YmVhdC5jCVdlZCBBcHIgMTIgMjA6MDM6NDkg
MjAwMA0KKysrIGxpbnV4LWhhL2hlYXJ0YmVhdC9oZWFydGJlYXQuYwlGcmkg
QXByIDE0IDE4OjQ2OjU4IDIwMDANCkBAIC0xNjQsNiArMTY0LDE2IEBADQog
I2RlZmluZQlEUk9QSVQJMSANCiAjZGVmaW5lIERVUExJQ0FURQkyDQogDQor
LyogRGVmaW5lcyB0byB1c2Ugb24gQ0xVU1RFUiBmbGFncyAqLw0KKyNkZWZp
bmUgTUVfQUxWCQkxNiAgLyogSSBhbSBhbGl2ZSAqLw0KKyNkZWZpbmUgTUVf
UFJJCQkzMiAgLyogSSBhbSB0aGUgcHJpbWFyeSBub2RlICovDQorI2RlZmlu
ZSBNRV9SU0MJCTY0ICAvKiBJIGhhdmUgdGhlIHJlc291cmNlcyAqLw0KKyNk
ZWZpbmUgTUVfU1RSCQkxMjggLyogSSBhbSBzdGFydGluZyAqLw0KKyNkZWZp
bmUgT1RfQUxWCQkxICAgLyogVGhlIG90aGVyIG5vZGUgaXMgYWxpdmUgKi8N
CisjZGVmaW5lIE9UX1BSSQkJMiAgIC8qIFRoZSBvdGhlciBub2RlIGlzIHRo
ZSBwcmltYXJ5ICovDQorI2RlZmluZSBPVF9SU0MJCTQgICAvKiBUaGUgb3Ro
ZXIgbm9kZSBoYXMgdGhlIHJlc291cmNlcyAqLw0KKyNkZWZpbmUgT1RfU1RS
CQk4ICAgLyogVGhlIG90aGVyIG5vZGUgaXMgc3RhcnRpbmcgKi8NCisgDQog
aW50CQl2ZXJib3NlID0gMDsNCiANCiBjb25zdCBjaGFyICoJY21kbmFtZSA9
ICJoZWFydGJlYXQiOw0KQEAgLTE3Niw3ICsxODYsOCBAQA0KIGludCAgICAg
ICAgICAgICB3ZV9hcmVfcHJpbWFyeSA9IDA7DQogaW50ICAgICAgICAgICAg
IHNlbmRfc3RhcnRpbmdfbm93ID0gMTsNCiBpbnQgICAgICAgICAgICAgbmlj
ZV9mYWlsYmFjayA9IDA7DQotaW50CQlzdGFydGluZyA9IDE7DQorY2hhcgkJ
Q0xVU1RFUiA9IDA7DQorY2hhcgkJRkFVTFRTID0gMDsNCiBpbnQJCWtpbGxy
dW5uaW5naGIgPSAwOw0KIGludAkJcnB0X2hiX3N0YXR1cyA9IDA7DQogaW50
CQljaGlsZHBpZCA9IC0xOw0KQEAgLTE5Miw2ICsyMDMsNyBAQA0KIGV4dGVy
biBjb25zdCBpbnQJbnVtX2hiX21lZGlhX3R5cGVzOw0KIGludAkJCW51bW1l
ZGlhID0gMDsNCiBpbnQJCQlzdGF0dXNfcGlwZVsyXTsJLyogVGhlIE1hc3Rl
ciBzdGF0dXMgcGlwZSAqLw0KK3N0cnVjdCBoYV9tc2cgKgkJcmVzb3VyY2Vz
X2hlbGQgPSBOVUxMOw0KIA0KIGNvbnN0IGNoYXIgKmhhX2xvZ19wcmlvcml0
eVs4XSA9IHsNCiAJImVtZXJnIiwNCkBAIC04MDEsOCArODEzLDcgQEANCiAJ
c3RydWN0IGhhX21zZyAqCQltc2cgPSBOVUxMOw0KIAlpbnQJCQlyZXNvdXJj
ZXNfcmVxdWVzdGVkX3lldCA9IDA7DQogCXRpbWVfdAkJCWxhc3Rub3cgPSAw
TDsNCi0JaW50IAkJCXJlY2VpdmVkX3N0YXJ0aW5nID0gMDsNCi0JY2hhcglp
ZmFjZVtNQVhJRkFDRUxFTl07DQorIAljaGFyCWlmYWNlW01BWElGQUNFTEVO
XTsgDQogCXN0cnVjdAlsaW5rICpsbms7DQogDQogCWluaXRfc3RhdHVzX2Fs
YXJtKCk7DQpAQCAtODEwLDYgKzgyMSw4IEBADQogDQogCWNsZWFyZXJyKGYp
Ow0KIA0KKwlDTFVTVEVSIHw9IChNRV9BTFYgKyBNRV9TVFIpOw0KKw0KIAlm
b3IgKDs7IChtc2cgIT0gTlVMTCkgJiYgKGhhX21zZ19kZWwobXNnKSxtc2c9
TlVMTCwgMSkpIHsNCiAJCXRpbWVfdAkJbXNndGltZTsNCiAJCXRpbWVfdAkJ
bm93ID0gdGltZShOVUxMKTsNCkBAIC04MjIsNyArODM1LDcgQEANCiAJCQlz
ZW5kX2xvY2FsX3N0YXR1cygpOw0KIAkJfQ0KIA0KLQkJaWYgKChzZW5kX3N0
YXJ0aW5nX25vdyAmJiBuaWNlX2ZhaWxiYWNrKSAmJiBzdGFydGluZykgew0K
KwkJaWYgKHNlbmRfc3RhcnRpbmdfbm93ICYmIChDTFVTVEVSICYmIE1FX1NU
UikpIHsNCiAJCQlzZW5kX3N0YXJ0aW5nX25vdyA9IDA7DQogCQkJaGFfbG9n
KExPR19ERUJVRywgIlNlbmRpbmcgc3RhcnRpbmcgbXNnIik7DQogCQkJc2Vu
ZF9sb2NhbF9zdGFydGluZygpOw0KQEAgLTkwNiwyNiArOTE5LDU3IEBADQog
CQkJfQ0KIAkJfQ0KIA0KLQ0KLQ0KKwkJaWYgKCB0aGlzbm9kZSAhPSBjdXJu
b2RlICkgew0KKwkJCS8qIHRoZSBvdGhlciBob3N0IGlzIGFsaXZlICovDQor
CQkJQ0xVU1RFUiB8PSBPVF9BTFY7DQorCQl9DQorCQkNCiAJCS8qIElmIHdl
J3JlIHN0YXJ0aW5nIGFuZCBhICJzdGFydGluZyIgbWVzc2FnZSBjYW1lIGZy
b20gYW5vdGhlcg0KIAkJICogIG5vZGUsIHRoZSBwcmltYXJ5IG1heSB0YWtl
IGl0cyByb2xlLiBFbHNlIGFjdCBhcyBzZWNvbmRhcnkgDQogCQkgKiAgKG9m
IGNvdXJzZSwgaWYgbmljZV9mYWlsYmFjayBpcyBvbikNCiAJCSovDQotCQkN
CiAJCWlmICghc3RyY2FzZWNtcCh0eXBlLE5PU0VRX1BSRUZJWCBUX1NUQVJU
SU5HKSANCi0JCSYmIHRoaXNub2RlICE9IGN1cm5vZGUgJiYgKHN0YXJ0aW5n
ICYmIG5pY2VfZmFpbGJhY2spKSB7DQorCQkmJiAodGhpc25vZGUgIT0gY3Vy
bm9kZSkgJiYgbmljZV9mYWlsYmFjaykgew0KICAgICAgICAgICAgICAgICAg
ICAgICAgIG5pY2VfZmFpbGJhY2sgPSAwOw0KKwkJCUNMVVNURVIgfD0gKE9U
X0FMVnxPVF9TVFIpOw0KIAkJCWNsdXN0ZXJfYWxyZWFkeV9hY3RpdmUgPSAw
Ow0KLQkJCXJlY2VpdmVkX3N0YXJ0aW5nID0gMTsNCi0JCQlzdGFydGluZyA9
IDA7DQogCQkJaGFfbG9nKExPR19ERUJVRywiUmVjZWl2ZWQgc3RhcnRpbmcg
bXNnIGZyb20gJXMiDQogCQkJCQksZnJvbSk7DQotCQkJc2VuZF9sb2NhbF9z
dGFydGluZygpOw0KKwkJCWlmIChDTFVTVEVSICYmIE1FX1NUUikgew0KKwkJ
CQloYV9sb2coTE9HX0RFQlVHLA0KKwkJCQkJCSJFdmVyeWJvZHkgaXMgc3Rh
cnRpbmcgbm93Li4uIik7DQorCQkJCXNlbmRfbG9jYWxfc3RhcnRpbmcoKTsN
CisJCQl9DQorCQkJLyogY29udGludWUgKi8NCisJCX0NCisJDQorCQlpZiAo
IXN0cmNhc2VjbXAodHlwZSxOT1NFUV9QUkVGSVggVF9TVEFSVElORykgDQor
CQkmJiAgKHRoaXNub2RlICE9IGN1cm5vZGUpICYmICEoQ0xVU1RFUiAmJiBN
RV9TVFIpKSB7DQorCQkJc2VuZF9yZXNvdXJjZXNfaGVsZCgpOw0KKwkJCWlm
IChhdG9pKGhhX21zZ192YWx1ZShyZXNvdXJjZXNfaGVsZCwgRl9OUkVTKSk8
IDEpIHsNCisJCQkJaGFfbG9nKExPR19ERUJVRywiVGhlIG90aGVyIGd1eSBp
cyBzdGFydGluZyINCisJCQkJCQkiYW5kIEkgaGF2ZSBubyByZXNvbHJjZXMu
Li4iKTsNCisJCQkJbmljZV9mYWlsYmFjayA9IDA7DQorCQkJCWhhX2xvZyhM
T0dfREVCVUcsIk1heSB0aGUgcHJpbWFyeSB0YWtlcyBwbGFjZSIpOw0KKwkJ
CQlyZXFfb3VyX3Jlc291cmNlcygpOw0KKwkJCX0NCiAJCQljb250aW51ZTsN
CiAJCX0NCi0JCQkJDQotCQkvKg0KKwkJCQ0KKwkJaWYgKCFzdHJjYXNlY21w
KHR5cGUsTk9TRVFfUFJFRklYIFRfUkVTKQ0KKwkJJiYgKHRoaXNub2RlICE9
IGN1cm5vZGUpKSB7DQorCQkJaGFfbG9nKExPR19JTkZPLCAiJXMgaGFzICVz
IHJlc291cmNlcyEiLA0KKwkJCQkJZnJvbSwgaGFfbXNnX3ZhbHVlKG1zZywg
Rl9OUkVTKSk7DQorCQkJaWYgKGF0b2koaGFfbXNnX3ZhbHVlKG1zZywgRl9O
UkVTKSk+IDApIHsNCisJCQkJLyogdGhlIG90aGVyIG5vZGUgaGFzIHRoZSBy
ZXNvdXJjZXMgKi8NCisJCQkJQ0xVU1RFUiB8PSBPVF9SU0M7DQorCQkJfSBl
bHNlIHsNCisJCQkJQ0xVU1RFUiAmPSAhKE9UX1JTQyk7DQorCQkJfQ0KKwkJ
CWNvbnRpbnVlOw0KKwkJfQ0KKw0KKwkvKg0KIAkJICogUmVxdWVzdCBvdXIg
cmVzb3VyY2VzIGFmdGVyIGEgKFBQUC1pbmR1Y2VkKSBkZWxheS4NCiAJCSAq
IElmIHdlIGhhdmUgUFBQIGFzIG91ciBvbmx5IGxpbmsgdGhpcyBkZWxheSBt
aWdodCBoYXZlDQogCQkgKiB0byBiZSA3IG9yIDggc2Vjb25kcy4gIE90aGVy
d2lzZSB0aGUgbmVlZGVkIGRlbGF5IGlzDQpAQCAtOTM2LDIwICs5ODAsMzgg
QEANCiAJCSAqLw0KIA0KICAgICAgICAgICAgICAgICBpZiAoIVdlQXJlUmVz
dGFydGluZyAmJiAhcmVzb3VyY2VzX3JlcXVlc3RlZF95ZXQNCi0JCSYmCSh0
aGlzbm9kZSAhPSBjdXJub2RlICYmIChub3ctc3RhcnR0aW1lKSA+IFJRU1RE
RUxBWSkpIHsNCi0JCQlpZiAobmljZV9mYWlsYmFjayAmJiAhcmVjZWl2ZWRf
c3RhcnRpbmcpIHsNCisJCSYmICgodGhpc25vZGUgIT0gY3Vybm9kZSkgJiYg
KG5vdy1zdGFydHRpbWUpID4gUlFTVERFTEFZKSkgew0KKw0KKwkJCUNMVVNU
RVIgJj0gIShNRV9TVFIpOw0KKwkJCWlmIChuaWNlX2ZhaWxiYWNrICYmICEo
Q0xVU1RFUiAmJiBPVF9TVFIpKSB7DQogCQkJCWhhX2xvZyhMT0dfREVCVUcs
DQogCQkJCQkiVGhlIGNsdXN0ZXIgaXMgYWxyZWFkeSBhY3RpdmUiKTsNCiAJ
CQkJY2x1c3Rlcl9hbHJlYWR5X2FjdGl2ZSA9IDE7DQorCQkJCQ0KKwkJCQlp
ZiAoQ0xVU1RFUiAmJiBPVF9SU0MpIHsNCisJCQkJCWhhX2xvZyhMT0dfREVC
VUcsDQorCQkJCQkiVGhlIG90aGVyIG5vZGUgaGFzIHRoZSByZXNvdXJjZXMi
KTsNCisJCQkJfSBlbHNlIHsNCisJCQkJCWhhX2xvZyhMT0dfREVCVUcsDQor
CQkJCQkiQnV0IG5vb25lIGhvbGRzIHRoZSByZXNvdXJjZXMuLi4iKTsNCisJ
CQkJCS8qIERvIHNvbWV0aGluZyBpbnRlbGlnZW50ICovDQorCQkJCQluaWNl
X2ZhaWxiYWNrID0gMDsNCisJCQkJCWhhX2xvZyhMT0dfREVCVUcsDQorCQkJ
CQkJIk1heSB0aGUgcHJpbWFyeSB0YWtlcyBwbGFjZSIpOw0KKwkJCQl9DQor
CQkJCQ0KIAkJCX0gZWxzZSB7DQotCQkJCWlmIChuaWNlX2ZhaWxiYWNrICYm
IHJlY2VpdmVkX3N0YXJ0aW5nKSB7DQorCQkJCWlmIChuaWNlX2ZhaWxiYWNr
ICYmIChDTFVTVEVSICYmIE9UX1NUUikpIHsNCiAJCQkJCWhhX2xvZyhMT0df
REVCVUcsDQogCQkJCQkJIkV2ZXJ5Ym9keSBpcyBzdGFydGluZyBub3ciKTsN
CisJCQkJCW5pY2VfZmFpbGJhY2s9MDsNCiAJCQkJfQ0KIAkJCX0NCiAJCQly
ZXNvdXJjZXNfcmVxdWVzdGVkX3lldD0xOw0KLQkJCXN0YXJ0aW5nID0gMDsN
CiAJCQlyZXFfb3VyX3Jlc291cmNlcygpOw0KKwkJCWlmIChDTFVTVEVSICYm
IE9UX1NUUikgew0KKwkJCQlDTFVTVEVSICY9ICFPVF9TVFI7DQorCQkJfQ0K
IAkJfQ0KIA0KIAkJaWYgKCFzdHJjYXNlY21wKHR5cGUsTk9TRVFfUFJFRklY
IFRfU1RBUlRJTkcpKSB7DQpAQCAtMTUwMSw2ICsxNTYzLDc1IEBADQogCXJl
dHVybihIQV9PSyk7DQogfQ0KIA0KKw0KKy8qIFNlbmQgcmVzb3VyY2VzX2hl
bGQgbGlzdCBvdXQgdG8gdGhlIGNsdXN0ZXIgKi8NCitpbnQNCitzZW5kX3Jl
c291cmNlc19oZWxkKHZvaWQpDQorew0KKyAgICAgICAgc3RydWN0IGhhX21z
ZyAqIG07DQorICAgICAgICBpbnQgICAgICAgICAgICAgcmM7DQorICAgICAg
ICBjaGFyICAgICAgICAgICAgdGltZXN0YW1wWzE2XTsNCisJY29uc3QgY2hh
ciAqCW5yaDsNCisNCisgICAgICAgIHNwcmludGYodGltZXN0YW1wLCAiJWx4
IiwgdGltZShOVUxMKSk7DQorDQorICAgICAgICAvKiBpZiAoZGVidWcpeyAq
Lw0KKyAgICAgICAgICAgICAgICBoYV9sb2coTE9HX0RFQlVHLCAiU2VuZGlu
ZyByZXNvdXJjZXMgaGVsZCBsaXN0IG1zZyIpOw0KKyAgICAgICAgLyogfSAq
Lw0KKyAgICAgICAgaWYgKChtPWhhX21zZ19uZXcoMCkpID09IE5VTEwpIHsN
CisgICAgICAgICAgICAgICAgaGFfbG9nKExPR19FUlIsICJDYW5ub3Qgc2Vu
ZCByZXNvdXJjZXMgaGVsZCBsaXN0IG1zZyIpOw0KKyAgICAgICAgICAgICAg
ICByZXR1cm4oSEFfRkFJTCk7DQorICAgICAgICB9DQorDQorCW5yaCA9IGhh
X21zZ192YWx1ZShyZXNvdXJjZXNfaGVsZCwgRl9OUkVTKTsNCisJaGFfbG9n
KExPR19ERUJVRywgIk51bWJlciBvZiByZXNvdXJjZXMgaGVsZDogICVzIiwg
bnJoKTsNCisJDQorICAgICAgICBpZiAoKGhhX21zZ19hZGQobSwgRl9UWVBF
LCBOT1NFUV9QUkVGSVggVF9SRVMpID09IEhBX0ZBSUwpIA0KKyAgICAgICAg
fHwgIChoYV9tc2dfYWRkKG0sIEZfT1JJRywgY3Vybm9kZS0+bm9kZW5hbWUp
ID09IEhBX0ZBSUwpDQorICAgICAgICB8fCAoaGFfbXNnX2FkZChtLCBGX1RJ
TUUsIHRpbWVzdGFtcCkgPT0gSEFfRkFJTCkNCisgICAgICAgIHx8ICAoaGFf
bXNnX2FkZChtLCBGX05SRVMsIG5yaCkgPT0gSEFfRkFJTCkpIHsNCisgICAg
ICAgICAgICAgICAgaGFfbG9nKExPR19FUlIsICJzZW5kX3Jlc291cmNlc19o
ZWxkOiAiDQorICAgICAgICAgICAgICAgICJDYW5ub3QgY3JlYXRlIHJlc291
cmNlcyBoZWxkIGxpc3QgbXNnIik7DQorICAgICAgICAgICAgICAgIHJjID0g
SEFfRkFJTDsNCisgICAgICAgIH0NCisJDQorCWhhX2xvZyhMT0dfREVCVUcs
ICJOdW1iZXIgb2YgcmVzb3VyY2VzIGZvciB0aGUgbXNnOiAgJXMiLA0KKwkJ
CWhhX21zZ192YWx1ZShtLCBGX05SRVMpKTsNCisJDQorCS8qIElmIHRoZSBt
ZXNzYWdlIGhlYWRlciBpcyBPSywgbGV0J3MgbG9vayBmb3IgdGhlIHJlc291
cmNlIGxpc3QNCisgCSAqIGFuZCBzZW5kIGl0IG91dCAqLw0KKwkNCisJaWYg
KHJjICE9IEhBX0ZBSUwpIHsNCisJCWludCAgICAgajsNCisJCWlmICghcmVz
b3VyY2VzX2hlbGQgfHwgIXJlc291cmNlc19oZWxkLT5uYW1lcyANCisJCQkJ
CXx8ICFyZXNvdXJjZXNfaGVsZC0+dmFsdWVzKSB7DQorCQkJaGFfbG9nKExP
R19ERUJVRywgDQorCQkJCSJzZW5kX3Jlc291cmNlc19oZWxkOiBvb3BzLCBu
byByZXNvdXJjZXMgaGVsZCIpOw0KKwkJfSBlbHNlIHsNCisJCQlmb3IgKGo9
MDsgaiA8IHJlc291cmNlc19oZWxkLT5uZmllbGRzOyArK2opIHsNCisJCQkJ
aWYgKHN0cmNtcChGX1JFUywgDQorCQkJCQlyZXNvdXJjZXNfaGVsZC0+bmFt
ZXNbal0pID09IDApIHsNCisJCQkJCWhhX2xvZyhMT0dfREVCVUcsICJyZXNv
dXJjZSBuYW1lOiAlcyIsIA0KKwkJCQkJCXJlc291cmNlc19oZWxkLT52YWx1
ZXNbal0pOw0KKwkJCQkJaWYgKGhhX21zZ19hZGQobSwgRl9SRVMsIA0KKwkJ
CQkJCXJlc291cmNlc19oZWxkLT52YWx1ZXNbal0pDQorCQkJCQkJCT09IEhB
X0ZBSUwpIHsNCisJCQkJCQlyYz1IQV9GQUlMOw0KKwkJCQkJfQ0KKwkJCQl9
DQorCQkJfQ0KKwkJfQ0KKwl9DQorCQ0KKwlpZiAocmMgIT0gSEFfRkFJTCkg
ew0KKyAgICAgICAgICAgICAgICByYyA9IHNlbmRfY2x1c3Rlcl9tc2cobSk7
DQorCX0NCisJDQorICAgICAgICBoYV9tc2dfZGVsKG0pOw0KKyAgICAgICAg
cmV0dXJuKHJjKTsNCit9DQorDQorDQogLyogU2VuZCB0aGUgc3RhcnRpbmcg
bXNnIG91dCB0byB0aGUgY2x1c3RlciAqLw0KIGludA0KIHNlbmRfbG9jYWxf
c3RhcnRpbmcodm9pZCkNCkBAIC0xNTE5LDggKzE2NTAsOCBAQA0KICAgICAg
ICAgICAgICAgICByZXR1cm4oSEFfRkFJTCk7DQogICAgICAgICB9DQogICAg
ICAgICBpZiAoKGhhX21zZ19hZGQobSwgRl9UWVBFLCBOT1NFUV9QUkVGSVgg
VF9TVEFSVElORykgPT0gSEFfRkFJTCkgDQotICAgICAgICAmJiAgKGhhX21z
Z19hZGQobSwgRl9PUklHLCBjdXJub2RlLT5ub2RlbmFtZSkgPT0gSEFfRkFJ
TCkNCi0gICAgICAgICYmICAoaGFfbXNnX2FkZChtLCBGX1RJTUUsIHRpbWVz
dGFtcCkgPT0gSEFfRkFJTCkpIHsNCisgICAgICAgIHx8ICAoaGFfbXNnX2Fk
ZChtLCBGX09SSUcsIGN1cm5vZGUtPm5vZGVuYW1lKSA9PSBIQV9GQUlMKQ0K
KyAgICAgICAgfHwgIChoYV9tc2dfYWRkKG0sIEZfVElNRSwgdGltZXN0YW1w
KSA9PSBIQV9GQUlMKSkgew0KICAgICAgICAgICAgICAgICBoYV9sb2coTE9H
X0VSUiwgInNlbmRfbG9jYWxfc3RhcnRpbmc6ICINCiAgICAgICAgICAgICAg
ICAgIkNhbm5vdCBjcmVhdGUgbG9jYWwgc3RhcnRpbmcgbXNnIik7DQogICAg
ICAgICAgICAgICAgIHJjID0gSEFfRkFJTDsNCkBAIC0xNTMyLDYgKzE2NjMs
NyBAQA0KICAgICAgICAgcmV0dXJuKHJjKTsNCiB9DQogDQorDQogLyogU2Vu
ZCBvdXIgbG9jYWwgc3RhdHVzIG91dCB0byB0aGUgY2x1c3RlciAqLw0KIGlu
dA0KIHNlbmRfbG9jYWxfc3RhdHVzKHZvaWQpDQpAQCAtMTU5Nyw5ICsxNzI5
LDkgQEANCiANCiAJaGVhcnRiZWF0X21vbml0b3IoaG1zZyk7DQogCQ0KLQlp
ZiAoc3RhcnRpbmcgJiYgbmljZV9mYWlsYmFjayAmJiBoaXAgIT0gY3Vybm9k
ZSkgew0KKwlpZiAoKENMVVNURVIgJiYgTUVfU1RSKSAmJiBuaWNlX2ZhaWxi
YWNrICYmIGhpcCAhPSBjdXJub2RlKSB7DQogCQloYV9sb2coTE9HX0RFQlVH
LCAiSSdtIGFsb25lLi4uICIpOw0KLQkJLyogVGhpcyBpcyBvbmUgb2YgdGhl
ICBwbGFjZSB0byBwdXQgdGhlDQorCQkvKiBUaGlzIGlzIG9uZSBvZiB0aGUg
cGxhY2VzIHRvIHB1dCB0aGUNCiAJCSAqIFNJVF9BTkRfQ1JZIHN0dWZmICov
DQogCQluaWNlX2ZhaWxiYWNrID0gMDsNCiAJCXJlcV9vdXJfcmVzb3VyY2Vz
KCk7DQpAQCAtMTc0Niw3ICsxODc4LDEzIEBADQogCWludAlmaW5hbHJjID0g
SEFfT0s7DQogCWludAlyYzsNCiAJaW50CXJzY19jb3VudCA9IDA7DQorCWlu
dCAJcnNjX2hlbGQgPSAwOw0KKwljaGFyIAlzcnNjX2hlbGRbMTBdOw0KIA0K
KyAgICAgICAgaWYgKChyZXNvdXJjZXNfaGVsZCA9IGhhX21zZ19uZXcoMCkp
ID09IE5VTEwpIHsNCisJCWhhX2xvZyhMT0dfRVJSLCAibm8gbWVtb3J5IHRv
IGNyZWF0ZSByZXNvdXJjZSBsaXN0Iik7DQorCQlyZXR1cm4oSEFfRkFJTCk7
DQorCX0NCiAJDQogCWhhX2xvZyhMT0dfSU5GTywgIlJlcXVlc3Rpbmcgb3Vy
IHJlc291cmNlcy4iKTsNCiAJc3ByaW50ZihjbWQsIEhBTElCICIvUmVzb3Vy
Y2VNYW5hZ2VyIGxpc3RrZXlzICVzIiwgY3Vybm9kZS0+bm9kZW5hbWUpOw0K
QEAgLTE3ODYsNiArMTkyNCwxMSBAQA0KIAkJCQloYV9wZXJyb3IoIiVzIHJl
dHVybmVkICVkIiwgZ2V0Y21kLCByYyk7DQogCQkJCWZpbmFscmM9SEFfRkFJ
TDsNCiAJCQl9DQorICAgICAgICAJCWlmIChoYV9tc2dfYWRkKHJlc291cmNl
c19oZWxkLCBGX1JFUywgYnVmKSA9PSBIQV9GQUlMKSB7DQorCQkJCWhhX2xv
ZyhMT0dfRVJSLCAibm8gbWVtb3J5IHRvIGxpc3QgcmVzb3VyY2UiKTsNCisJ
CQl9DQorCQkJKytyc2NfaGVsZDsNCisJCQloYV9sb2coTE9HX0RFQlVHLCAi
SSBnb3QgcmVzb3VyY2U6ICVzIiwgYnVmKTsNCiAJCX0NCiAJfQ0KIA0KQEAg
LTE3OTMsNyArMTkzNiwxMiBAQA0KICAgICAgICAgICAgICAgICBjbHVzdGVy
X2FscmVhZHlfYWN0aXZlID0gMDsNCiAgICAgICAgICAgICAgICAgd2VfYXJl
X3ByaW1hcnkgPSAxOw0KICAgICAgICAgfQ0KLQ0KKwkNCisJc3ByaW50Zihz
cnNjX2hlbGQsICIlZCIsIHJzY19oZWxkKTsNCisJaWYgKGhhX21zZ19hZGQo
cmVzb3VyY2VzX2hlbGQsIEZfTlJFUywgc3JzY19oZWxkKSA9PSBIQV9GQUlM
KSB7DQorCQloYV9sb2coTE9HX0VSUiwgIm5vIG1lbW9yeSB0byBsaXN0IHJl
c291cmNlIik7DQorCX0NCisJCQkNCiAJcmM9cGNsb3NlKHJrZXlzKTsNCiAJ
aWYgKHJjIDwgMCAmJiBlcnJubyAhPSBFQ0hJTEQpIHsNCiAJCWhhX3BlcnJv
cigicGNsb3NlKCVzKSByZXR1cm5lZCAlZCIsIGNtZCwgcmMpOw0KZGlmZiAt
cnVOIC9ob21lL2xjbGF1ZGlvL2xpbnV4LWhhL2hlYXJ0YmVhdC9oZWFydGJl
YXQuaCBsaW51eC1oYS9oZWFydGJlYXQvaGVhcnRiZWF0LmgNCi0tLSAvaG9t
ZS9sY2xhdWRpby9saW51eC1oYS9oZWFydGJlYXQvaGVhcnRiZWF0LmgJV2Vk
IEFwciAxMiAyMDowMzo0OSAyMDAwDQorKysgbGludXgtaGEvaGVhcnRiZWF0
L2hlYXJ0YmVhdC5oCVRodSBBcHIgMTMgMTY6MTA6MDcgMjAwMA0KQEAgLTI4
OCw2ICsyODgsNyBAQA0KIGV4dGVybiB2b2lkCQloYV9sb2coaW50IHByaW9y
aXR5LCBjb25zdCBjaGFyICogZm10LCAuLi4pOw0KIGV4dGVybiB2b2lkCQlo
YV9wZXJyb3IoY29uc3QgY2hhciAqIGZtdCwgLi4uKTsNCiBleHRlcm4gaW50
ICAgICAgICAgICAgICBzZW5kX2xvY2FsX3N0YXJ0aW5nKHZvaWQpOw0KK2V4
dGVybiBpbnQgICAgICAgICAgICAgIHNlbmRfcmVzb3VyY2VzX2hlbGQodm9p
ZCk7DQogZXh0ZXJuIGludAkJc2VuZF9sb2NhbF9zdGF0dXModm9pZCk7DQog
ZXh0ZXJuIGludAkJc2V0X2xvY2FsX3N0YXR1cyhjb25zdCBjaGFyICogc3Rh
dHVzKTsNCiBleHRlcm4gaW50CQlzZW5kX2NsdXN0ZXJfbXNnKHN0cnVjdCBo
YV9tc2cqbXNnKTsNCg==
---1463788289-1734292058-955750202=:21658--