[COMMIT] Move extents.c to working in byte positions only; fix a bug, extent_detach()
Aidan Kehoe <[email protected]> Fri, 27 Mar 2015 23:48:58 +0000
| Newsgroups | gmane.emacs.xemacs.patches |
|---|---|
| Message-ID | <[email protected]> |
ClRoaXMgd29u4oCZdCBoYXZlIGEgYmlnIGltcGFjdCBvbiBhbnlvbmUsIGJ1dCB0aGUgYnVnIGhh cyBiZWVuIGFyb3VuZCBzaW5jZSAyMDAyCmFuZCBpZiBJIGRvbuKAmXQgZml4IGl0IHRvZGF5IEkg ZG9u4oCZdCBhbnRpY2lwYXRlIGl0IHdpbGwgYmUgZml4ZWQgOikgLiBNb3ZpbmcKZXh0ZW50cy5j IHRvIHdvcmsgZXhjbHVzaXZlbHkgaW4gYnl0ZSBwb3NpdGlvbnMgaXMgYSBzdHlsZSBjaGFuZ2Ug dGhhdCB3aWxsCm1ha2UgaXQgZWFzaWVyIHRvIGF2b2lkIHRoZSBwcm9ibGVtIGluIHRoZSBmdXR1 cmUuCgpBUFBST1ZFIENPTU1JVAoKTk9URTogVGhpcyBwYXRjaCBoYXMgYmVlbiBjb21taXR0ZWQK CiMgSEcgY2hhbmdlc2V0IHBhdGNoCiMgVXNlciBBaWRhbiBLZWhvZSA8a2Vob2VhQHBhcmhhc2Fy ZC5uZXQ+CiMgRGF0ZSAxNDI3NDk5NTg5IDAKIyAgICAgIEZyaSBNYXIgMjcgMjM6Mzk6NDkgMjAx NSArMDAwMAojIE5vZGUgSUQgNzdkN2I3NzkwOWMyOGY0OTAyZTQ0YmU3NTBkZDc1OTdhYjMyYzE1 ZAojIFBhcmVudCAgOTE2MTg3YTAzYjgyMmUwNzhmZTQzYWRlYzcyNmI2OGRhYzRiMDc3OApNb3Zl IGV4dGVudHMuYyB0byB3b3JraW5nIGluIGJ5dGUgcG9zaXRpb25zIG9ubHk7IGZpeCBhIGJ1Zywg ZXh0ZW50X2RldGFjaCgpCgpzcmMvQ2hhbmdlTG9nIGFkZGl0aW9uOgoKMjAxNS0wMy0yNyAgQWlk YW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KCglGaXggYSBzbWFsbCBidWcsIGV4dGVu dF9kZXRhY2goKTsgbWluaW1pc2UgbmVlZGxlc3MgY2hhci1ieXRlCgljb252ZXJzaW9uLCBleHRl bnRzLmMsIHN0aWNraW5nIHRvIGJ5dGUgcG9zaXRpb25zIGluIGdlbmVyYWwgaW4KCXRoaXMgZmls ZS4KCSogZXh0ZW50cy5jOgoJKiBleHRlbnRzLmMgKHNpZ25hbF9zaW5nbGVfZXh0ZW50X2NoYW5n ZWQpOgoJUGFzcyBieXRlIGVuZHBvaW50cyB0bwoJZ3V0dGVyX2V4dGVudF9zaWduYWxfY2hhbmdl ZF9yZWdpb25fbWF5YmUoKSwKCWJ1ZmZlcl9leHRlbnRfc2lnbmFsX2NoYW5nZWRfcmVnaW9uKCku CgkqIGV4dGVudHMuYyAoZXh0ZW50X2RldGFjaCk6CglDYWxsIHNpZ25hbF9leHRlbnRfY2hhbmdl ZCgpIGNvcnJlY3RseSwgcGFzcyBib3RoIGV4dGVudCBlbmRwb2ludHMKCXJhdGhlciB0aGFuIGp1 c3QgdGhlIGJ5dGUgYW5kIGNoYXJhY3RlciB2YXJpYW50cyBvZiB0aGUgc3RhcnQuCgkqIGV4dGVu dHMuYyAoc3RydWN0IHJlcG9ydF9leHRlbnRfbW9kaWZpY2F0aW9uX2Nsb3N1cmUpOgoJRG8gdGhp cyBpbiB0ZXJtcyBvZiBieXRlIHBvc2l0aW9ucy4KCSogZXh0ZW50cy5jIChyZXBvcnRfZXh0ZW50 X21vZGlmaWNhdGlvbl9tYXBwZXIpOgoJVXNlIGJ5dGUgcG9zaXRpb25zLCBvbmx5IGNvbnZlcnRp bmcgdG8gY2hhcmFjdGVycyB3aGVuIHdlIGFyZQoJZGVmaW5pdGVseSBjYWxsaW5nIExpc3AuCgkq IGV4dGVudHMuYyAocmVwb3J0X2V4dGVudF9tb2RpZmljYXRpb24pOgoJVXNlIGJ5dGUgcG9zaXRp b25zIGluIHRoaXMgQVBJLCBtb3ZlIHRoZSBieXRlLWNoYXIgY29udmVyc2lvbiB0bwoJb3VyIGNh bGxlcnMsIHNpbXBsaWZ5aW5nIGV4dGVudHMuYyAoaXQgYWxsIG5vdyB3b3JrcyBpbiBieXRlCglw b3NpdGlvbnMpLgoJKiBleHRlbnRzLmg6CglVcGRhdGUgcmVwb3J0X2V4dGVudF9tb2RpZmljYXRp b24ncyBwcm90b3R5cGUuCgkqIGd1dHRlci5jIChndXR0ZXJfZXh0ZW50X3NpZ25hbF9jaGFuZ2Vk X3JlZ2lvbl9tYXliZSk6CglVc2UgYnl0ZSBwb3NpdGlvbnMgaGVyZSwgYXZvaWRzIG5lZWRsZXNz IGJ5dGUtY2hhciBjb252ZXJzaW9uLgoJKiBndXR0ZXIuaDoKCVVwZGF0ZSB0aGUgcHJvdG90eXBl IGhlcmUuCgkqIGluc2RlbC5jOgoJKiBpbnNkZWwuYyAoYnVmZmVyX2V4dGVudF9zaWduYWxfY2hh bmdlZF9yZWdpb24pOgoJSW1wbGVtZW50IHRoaXMgaW4gdGVybXMgb2YgYnl0ZSBwb3NpdGlvbnMu CgkqIGluc2RlbC5jIChzaWduYWxfYmVmb3JlX2NoYW5nZSk6CgkqIGluc2RlbC5jIChzaWduYWxf YWZ0ZXJfY2hhbmdlKToKCUNhbGwgcmVwb3J0X2V4dGVudF9tb2RpZmljYXRpb24oKSB3aXRoIGJ5 dGUgcG9zaXRpb25zLCBkb2luZyB0aGUKCWNoYXItPmJ5dGUgY29udmVyc2lvbiBoZXJlIHJhdGhl ciB0aGFuIGxlYXZpbmcgaXQgdG8gZXh0ZW50cy5jLgoJKiBpbnNkZWwuaDoKCSogaW5zZGVsLmgg KHN0cnVjdCBlYWNoX2J1ZmZlcl9jaGFuZ2VfZGF0YSk6CglUaGUgZXh0ZW50IHVuY2hhbmdlZCBp bmZvIG5vdyBkZXNjcmliZXMgYnl0ZWNvdW50cy4KCmRpZmYgLXIgOTE2MTg3YTAzYjgyIC1yIDc3 ZDdiNzc5MDljMiBzcmMvQ2hhbmdlTG9nCi0tLSBhL3NyYy9DaGFuZ2VMb2cJVGh1IE1hciAyNiAy MDo0NzoxMiAyMDE1IC0wNDAwCisrKyBiL3NyYy9DaGFuZ2VMb2cJRnJpIE1hciAyNyAyMzozOTo0 OSAyMDE1ICswMDAwCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTUtMDMtMjcgIEFpZGFuIEtlaG9lICA8 a2Vob2VhQHBhcmhhc2FyZC5uZXQ+CisKKwlGaXggYSBzbWFsbCBidWcsIGV4dGVudF9kZXRhY2go KTsgbWluaW1pc2UgbmVlZGxlc3MgY2hhci1ieXRlCisJY29udmVyc2lvbiwgZXh0ZW50cy5jLCBz dGlja2luZyB0byBieXRlIHBvc2l0aW9ucyBpbiBnZW5lcmFsIGluCisJdGhpcyBmaWxlLgorCSog ZXh0ZW50cy5jOgorCSogZXh0ZW50cy5jIChzaWduYWxfc2luZ2xlX2V4dGVudF9jaGFuZ2VkKToK KwlQYXNzIGJ5dGUgZW5kcG9pbnRzIHRvCisJZ3V0dGVyX2V4dGVudF9zaWduYWxfY2hhbmdlZF9y ZWdpb25fbWF5YmUoKSwKKwlidWZmZXJfZXh0ZW50X3NpZ25hbF9jaGFuZ2VkX3JlZ2lvbigpLgor CSogZXh0ZW50cy5jIChleHRlbnRfZGV0YWNoKToKKwlDYWxsIHNpZ25hbF9leHRlbnRfY2hhbmdl ZCgpIGNvcnJlY3RseSwgcGFzcyBib3RoIGV4dGVudCBlbmRwb2ludHMKKwlyYXRoZXIgdGhhbiBq dXN0IHRoZSBieXRlIGFuZCBjaGFyYWN0ZXIgdmFyaWFudHMgb2YgdGhlIHN0YXJ0LgorCSogZXh0 ZW50cy5jIChzdHJ1Y3QgcmVwb3J0X2V4dGVudF9tb2RpZmljYXRpb25fY2xvc3VyZSk6CisJRG8g dGhpcyBpbiB0ZXJtcyBvZiBieXRlIHBvc2l0aW9ucy4KKwkqIGV4dGVudHMuYyAocmVwb3J0X2V4 dGVudF9tb2RpZmljYXRpb25fbWFwcGVyKToKKwlVc2UgYnl0ZSBwb3NpdGlvbnMsIG9ubHkgY29u dmVydGluZyB0byBjaGFyYWN0ZXJzIHdoZW4gd2UgYXJlCisJZGVmaW5pdGVseSBjYWxsaW5nIExp c3AuCisJKiBleHRlbnRzLmMgKHJlcG9ydF9leHRlbnRfbW9kaWZpY2F0aW9uKToKKwlVc2UgYnl0 ZSBwb3NpdGlvbnMgaW4gdGhpcyBBUEksIG1vdmUgdGhlIGJ5dGUtY2hhciBjb252ZXJzaW9uIHRv CisJb3VyIGNhbGxlcnMsIHNpbXBsaWZ5aW5nIGV4dGVudHMuYyAoaXQgYWxsIG5vdyB3b3JrcyBp biBieXRlCisJcG9zaXRpb25zKS4gCisJKiBleHRlbnRzLmg6CisJVXBkYXRlIHJlcG9ydF9leHRl bnRfbW9kaWZpY2F0aW9uJ3MgcHJvdG90eXBlLgorCSogZ3V0dGVyLmMgKGd1dHRlcl9leHRlbnRf c2lnbmFsX2NoYW5nZWRfcmVnaW9uX21heWJlKToKKwlVc2UgYnl0ZSBwb3NpdGlvbnMgaGVyZSwg YXZvaWRzIG5lZWRsZXNzIGJ5dGUtY2hhciBjb252ZXJzaW9uLgorCSogZ3V0dGVyLmg6CisJVXBk YXRlIHRoZSBwcm90b3R5cGUgaGVyZS4KKwkqIGluc2RlbC5jOgorCSogaW5zZGVsLmMgKGJ1ZmZl cl9leHRlbnRfc2lnbmFsX2NoYW5nZWRfcmVnaW9uKToKKwlJbXBsZW1lbnQgdGhpcyBpbiB0ZXJt cyBvZiBieXRlIHBvc2l0aW9ucy4KKwkqIGluc2RlbC5jIChzaWduYWxfYmVmb3JlX2NoYW5nZSk6 CisJKiBpbnNkZWwuYyAoc2lnbmFsX2FmdGVyX2NoYW5nZSk6CisJQ2FsbCByZXBvcnRfZXh0ZW50 X21vZGlmaWNhdGlvbigpIHdpdGggYnl0ZSBwb3NpdGlvbnMsIGRvaW5nIHRoZQorCWNoYXItPmJ5 dGUgY29udmVyc2lvbiBoZXJlIHJhdGhlciB0aGFuIGxlYXZpbmcgaXQgdG8gZXh0ZW50cy5jLgor CSogaW5zZGVsLmg6CisJKiBpbnNkZWwuaCAoc3RydWN0IGVhY2hfYnVmZmVyX2NoYW5nZV9kYXRh KToKKwlUaGUgZXh0ZW50IHVuY2hhbmdlZCBpbmZvIG5vdyBkZXNjcmliZXMgYnl0ZWNvdW50cy4g CisKIDIwMTUtMDMtMjYgIFZpbiBTaGVsdG9uICA8YWNzQHhlbWFjcy5vcmc+CiAKICAgICAgICAg KiBtL3g4Nl82NC5oOiBEZWxldGVkOyBjYXVzZWQgYm9ndXMgR05VTWFrZWZpbGUgZ2VuZXJhdGlv bgpkaWZmIC1yIDkxNjE4N2EwM2I4MiAtciA3N2Q3Yjc3OTA5YzIgc3JjL2V4dGVudHMuYwotLS0g YS9zcmMvZXh0ZW50cy5jCVRodSBNYXIgMjYgMjA6NDc6MTIgMjAxNSAtMDQwMAorKysgYi9zcmMv ZXh0ZW50cy5jCUZyaSBNYXIgMjcgMjM6Mzk6NDkgMjAxNSArMDAwMApAQCAtMTQ3Myw4ICsxNDcz LDggQEAKIAkgIGlmICghaW5fbW9kZWxpbmVfZ2VuZXJhdGlvbikKIAkgICAgTUFSS19FWFRFTlRT X0NIQU5HRUQ7CiAJICBndXR0ZXJfZXh0ZW50X3NpZ25hbF9jaGFuZ2VkX3JlZ2lvbl9tYXliZQot CSAgICAob2JqZWN0LCBleHRlbnRfZW5kcG9pbnRfY2hhciAoZXh0ZW50LCAwKSwKLQkgICAgIGV4 dGVudF9lbmRwb2ludF9jaGFyIChleHRlbnQsIDEpKTsKKyAgICAgICAgICAgIChvYmplY3QsIGV4 dGVudF9lbmRwb2ludF9ieXRlIChleHRlbnQsIDApLAorCSAgICAgZXh0ZW50X2VuZHBvaW50X2J5 dGUgKGV4dGVudCwgMSkpOwogCX0KICAgICAgIGVsc2UgaWYgKEJVRkZFUlAgKG9iamVjdCkpCiAJ ewpAQCAtMTQ4Niw4ICsxNDg2LDggQEAKIAkgICAgICBFUSAocHJvcGVydHksIFFpbnZpc2libGUp KQogCSAgICBNQVJLX0NMSVBfQ0hBTkdFRDsKIAkgIGJ1ZmZlcl9leHRlbnRfc2lnbmFsX2NoYW5n ZWRfcmVnaW9uCi0JICAgIChiLCBleHRlbnRfZW5kcG9pbnRfY2hhciAoZXh0ZW50LCAwKSwKLQkg ICAgIGV4dGVudF9lbmRwb2ludF9jaGFyIChleHRlbnQsIDEpKTsKKyAgICAgICAgICAgIChiLCBl eHRlbnRfZW5kcG9pbnRfYnl0ZSAoZXh0ZW50LCAwKSwKKwkgICAgIGV4dGVudF9lbmRwb2ludF9i eXRlIChleHRlbnQsIDEpKTsKIAl9CiAgICAgfQogCkBAIC0xNjk2LDEwICsxNjk2LDggQEAKICAg ZWwgPSBleHRlbnRfZXh0ZW50X2xpc3QgKGV4dGVudCk7CiAKICAgLyogY2FsbCB0aGlzIGJlZm9y ZSBtZXNzaW5nIHdpdGggdGhlIGV4dGVudC4gKi8KLSAgc2lnbmFsX2V4dGVudF9jaGFuZ2VkIChl eHRlbnQsIFFuaWwsCi0JCQkgZXh0ZW50X2VuZHBvaW50X2J5dGUgKGV4dGVudCwgMCksCi0JCQkg ZXh0ZW50X2VuZHBvaW50X2NoYXIgKGV4dGVudCwgMCksCi0JCQkgMCk7CisgIHNpZ25hbF9leHRl bnRfY2hhbmdlZCAoZXh0ZW50LCBRbmlsLCBleHRlbnRfZW5kcG9pbnRfYnl0ZSAoZXh0ZW50LCAw KSwKKwkJCSBleHRlbnRfZW5kcG9pbnRfYnl0ZSAoZXh0ZW50LCAxKSwgMCk7CiAgIGV4dGVudF9s aXN0X2RlbGV0ZSAoZWwsIGV4dGVudCk7CiAgIHNvZV9kZWxldGUgKGV4dGVudF9vYmplY3QgKGV4 dGVudCksIGV4dGVudCk7CiAgIHNldF9leHRlbnRfc3RhcnQgKGV4dGVudCwgLTEpOwpAQCAtNDYz Miw3ICs0NjMwLDcgQEAKIHN0cnVjdCByZXBvcnRfZXh0ZW50X21vZGlmaWNhdGlvbl9jbG9zdXJl CiB7CiAgIExpc3BfT2JqZWN0IGJ1ZmZlcjsKLSAgQ2hhcnhwb3Mgc3RhcnQsIGVuZDsKKyAgQnl0 ZXhwb3Mgc3RhcnQsIGVuZDsKICAgaW50IGFmdGVycDsKICAgaW50IHNwZWNjb3VudDsKIH07CkBA IC00NjU4LDggKzQ2NTYsMTIgQEAKICAgICByZXR1cm4gMDsKIAogICBleG9iaiA9IHdyYXBfZXh0 ZW50IChleHRlbnQpOwotICBzdGFydG9iaiA9IG1ha2VfZml4bnVtIChjbG9zdXJlLT5zdGFydCk7 Ci0gIGVuZG9iaiA9IG1ha2VfZml4bnVtIChjbG9zdXJlLT5lbmQpOworICBzdGFydG9iagorICAg ID0gbWFrZV9maXhudW0gKGJ1ZmZlcl9vcl9zdHJpbmdfYnl0ZXhwb3NfdG9fY2hhcnhwb3MKKyAg ICAgICAgICAgICAgICAgICAoZXh0ZW50X29iamVjdCAoZXh0ZW50KSwgY2xvc3VyZS0+c3RhcnQp KTsKKyAgZW5kb2JqCisgICAgPSBtYWtlX2ZpeG51bSAoYnVmZmVyX29yX3N0cmluZ19ieXRleHBv c190b19jaGFyeHBvcworICAgICAgICAgICAgICAgICAgIChleHRlbnRfb2JqZWN0IChleHRlbnQp LCBjbG9zdXJlLT5lbmQpKTsKIAogICAvKiBOb3cgdGhhdCB3ZSBhcmUgc3VyZSB0byBjYWxsIGVs aXNwLCBzZXQgdXAgYW4gdW53aW5kLXByb3RlY3Qgc28KICAgICAgaW5zaWRlX2NoYW5nZV9ob29r IGdldHMgcmVzdG9yZWQgaW4gY2FzZSB3ZSB0aHJvdy4gIEFsc28gcmVjb3JkCkBAIC00NzA0LDcg KzQ3MDYsNyBAQAogfQogCiB2b2lkCi1yZXBvcnRfZXh0ZW50X21vZGlmaWNhdGlvbiAoTGlzcF9P YmplY3QgYnVmZmVyLCBDaGFyYnBvcyBzdGFydCwgQ2hhcmJwb3MgZW5kLAorcmVwb3J0X2V4dGVu dF9tb2RpZmljYXRpb24gKExpc3BfT2JqZWN0IGJ1ZmZlciwgQnl0ZXhwb3Mgc3RhcnQsIEJ5dGV4 cG9zIGVuZCwKIAkJCSAgICBpbnQgYWZ0ZXJwKQogewogICBzdHJ1Y3QgcmVwb3J0X2V4dGVudF9t b2RpZmljYXRpb25fY2xvc3VyZSBjbG9zdXJlOwpAQCAtNDcxNSwxMCArNDcxNyw4IEBACiAgIGNs b3N1cmUuYWZ0ZXJwID0gYWZ0ZXJwOwogICBjbG9zdXJlLnNwZWNjb3VudCA9IC0xOwogCi0gIG1h cF9leHRlbnRzIChjaGFyYnBvc190b19ieXRlYnBvcyAoWEJVRkZFUiAoYnVmZmVyKSwgc3RhcnQp LAotCSAgICAgICBjaGFyYnBvc190b19ieXRlYnBvcyAoWEJVRkZFUiAoYnVmZmVyKSwgZW5kKSwK LQkgICAgICAgcmVwb3J0X2V4dGVudF9tb2RpZmljYXRpb25fbWFwcGVyLCAodm9pZCAqKSZjbG9z dXJlLAotCSAgICAgICBidWZmZXIsIE5VTEwsIE1FX01JR0hUX0NBTExfRUxJU1ApOworICBtYXBf ZXh0ZW50cyAoc3RhcnQsIGVuZCwgcmVwb3J0X2V4dGVudF9tb2RpZmljYXRpb25fbWFwcGVyLAor ICAgICAgICAgICAgICAgKHZvaWQgKikmY2xvc3VyZSwgYnVmZmVyLCBOVUxMLCBNRV9NSUdIVF9D QUxMX0VMSVNQKTsKIH0KIAogDApkaWZmIC1yIDkxNjE4N2EwM2I4MiAtciA3N2Q3Yjc3OTA5YzIg c3JjL2V4dGVudHMuaAotLS0gYS9zcmMvZXh0ZW50cy5oCVRodSBNYXIgMjYgMjA6NDc6MTIgMjAx NSAtMDQwMAorKysgYi9zcmMvZXh0ZW50cy5oCUZyaSBNYXIgMjcgMjM6Mzk6NDkgMjAxNSArMDAw MApAQCAtMTgxLDkgKzE4MSw4IEBACiAJCQkJICAgIEJ5dGV4cG9zIG9wb2ludCwgQnl0ZWNvdW50 IGxlbmd0aCk7CiB2b2lkIHByb2Nlc3NfZXh0ZW50c19mb3JfZGVsZXRpb24gKExpc3BfT2JqZWN0 IG9iamVjdCwgQnl0ZXhwb3MgZnJvbSwKIAkJCQkgICBCeXRleHBvcyB0bywgaW50IGRlc3Ryb3lf dGhlbSk7Ci0vKiBOb3RlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gaXMgaW4gQ2hhcmJwb3MncyAq Lwotdm9pZCByZXBvcnRfZXh0ZW50X21vZGlmaWNhdGlvbiAoTGlzcF9PYmplY3QgYnVmZmVyLCBD aGFyYnBvcyBzdGFydCwKLQkJCQkgQ2hhcmJwb3MgZW5kLCBpbnQgYWZ0ZXJwKTsKK3ZvaWQgcmVw b3J0X2V4dGVudF9tb2RpZmljYXRpb24gKExpc3BfT2JqZWN0IGJ1ZmZlciwgQnl0ZXhwb3Mgc3Rh cnQsCisJCQkJIEJ5dGV4cG9zIGVuZCwgaW50IGFmdGVycCk7CiB2b2lkIGFkZF9zdHJpbmdfZXh0 ZW50cyAoTGlzcF9PYmplY3Qgc3RyaW5nLCBzdHJ1Y3QgYnVmZmVyICpidWYsCiAJCQkgQnl0ZXhw b3Mgb3BvaW50LCBCeXRlY291bnQgbGVuZ3RoKTsKIHZvaWQgc3BsaWNlX2luX3N0cmluZ19leHRl bnRzIChMaXNwX09iamVjdCBzdHJpbmcsIHN0cnVjdCBidWZmZXIgKmJ1ZiwKZGlmZiAtciA5MTYx ODdhMDNiODIgLXIgNzdkN2I3NzkwOWMyIHNyYy9ndXR0ZXIuYwotLS0gYS9zcmMvZ3V0dGVyLmMJ VGh1IE1hciAyNiAyMDo0NzoxMiAyMDE1IC0wNDAwCisrKyBiL3NyYy9ndXR0ZXIuYwlGcmkgTWFy IDI3IDIzOjM5OjQ5IDIwMTUgKzAwMDAKQEAgLTUyMiw4ICs1MjIsOCBAQAogICAga25vd3MgZXhh Y3RseSB3aGF0IGV4dGVudHMgaGF2ZSBjaGFuZ2VkLiAqLwogdm9pZAogZ3V0dGVyX2V4dGVudF9z aWduYWxfY2hhbmdlZF9yZWdpb25fbWF5YmUgKExpc3BfT2JqZWN0IG9iaiwKLQkJCQkJICAgQ2hh cmJwb3MgVU5VU0VEIChzdGFydCksCi0JCQkJCSAgIENoYXJicG9zIFVOVVNFRCAoZW5kKSkKKwkJ CQkJICAgQnl0ZXhwb3MgVU5VU0VEIChzdGFydCksCisJCQkJCSAgIEJ5dGV4cG9zIFVOVVNFRCAo ZW5kKSkKIHsKICAgLyogIyMjIyBTdGFydCBhbmQgZW5kIGFyZSBjdXJyZW50bHkgaWdub3JlZCBi dXQgY291bGQgYmUgdXNlZCBieSBhCiAgICAgIG1vcmUgb3B0aW1hbCBndXR0ZXIgcmVkaXNwbGF5 LiBXZSBjdXJyZW50bHkgbG9vcCBvdmVyIGFsbCBmcmFtZXMKZGlmZiAtciA5MTYxODdhMDNiODIg LXIgNzdkN2I3NzkwOWMyIHNyYy9ndXR0ZXIuaAotLS0gYS9zcmMvZ3V0dGVyLmgJVGh1IE1hciAy NiAyMDo0NzoxMiAyMDE1IC0wNDAwCisrKyBiL3NyYy9ndXR0ZXIuaAlGcmkgTWFyIDI3IDIzOjM5 OjQ5IDIwMTUgKzAwMDAKQEAgLTUwLDcgKzUwLDcgQEAKIAkJCSAgICAgaW50IGhlaWdodCk7CiB2 b2lkIHJlc2V0X2d1dHRlcl9kaXNwbGF5X2xpbmVzIChzdHJ1Y3QgZnJhbWUqIGYpOwogdm9pZCBn dXR0ZXJfZXh0ZW50X3NpZ25hbF9jaGFuZ2VkX3JlZ2lvbl9tYXliZSAoTGlzcF9PYmplY3Qgb2Jq LAotCQkJCQkJQ2hhcmJwb3Mgc3RhcnQsIENoYXJicG9zIGVuZCk7CisJCQkJCQlCeXRleHBvcyBz dGFydCwgQnl0ZXhwb3MgZW5kKTsKIGludCBkaXNwbGF5X2JveGVzX2luX2d1dHRlcl9wIChzdHJ1 Y3QgZnJhbWUgKmYsIHN0cnVjdCBkaXNwbGF5X2JveCogZGIsCiAJCQkgICAgICAgc3RydWN0IGRp c3BsYXlfZ2x5cGhfYXJlYSogZGdhKTsKIApkaWZmIC1yIDkxNjE4N2EwM2I4MiAtciA3N2Q3Yjc3 OTA5YzIgc3JjL2luc2RlbC5jCi0tLSBhL3NyYy9pbnNkZWwuYwlUaHUgTWFyIDI2IDIwOjQ3OjEy IDIwMTUgLTA0MDAKKysrIGIvc3JjL2luc2RlbC5jCUZyaSBNYXIgMjcgMjM6Mzk6NDkgMjAxNSAr MDAwMApAQCAtNTcwLDE1ICs1NzAsMTUgQEAKIH0KIAogdm9pZAotYnVmZmVyX2V4dGVudF9zaWdu YWxfY2hhbmdlZF9yZWdpb24gKHN0cnVjdCBidWZmZXIgKmJ1ZiwgQ2hhcmJwb3Mgc3RhcnQsCi0J CQkJICAgICBDaGFyYnBvcyBlbmQpCitidWZmZXJfZXh0ZW50X3NpZ25hbF9jaGFuZ2VkX3JlZ2lv biAoc3RydWN0IGJ1ZmZlciAqYnVmLCBCeXRlYnBvcyBzdGFydCwKKwkJCQkgICAgIEJ5dGVicG9z IGVuZCkKIHsKICAgaWYgKGJ1Zi0+Y2hhbmdlcy0+YmVnaW5fZXh0ZW50X3VuY2hhbmdlZCA8IDAg fHwKLSAgICAgIGJ1Zi0+Y2hhbmdlcy0+YmVnaW5fZXh0ZW50X3VuY2hhbmdlZCA+IHN0YXJ0IC0g QlVGX0JFRyAoYnVmKSkKLSAgICBidWYtPmNoYW5nZXMtPmJlZ2luX2V4dGVudF91bmNoYW5nZWQg PSBzdGFydCAtIEJVRl9CRUcgKGJ1Zik7CisgICAgICBidWYtPmNoYW5nZXMtPmJlZ2luX2V4dGVu dF91bmNoYW5nZWQgPiBzdGFydCAtIEJZVEVfQlVGX0JFRyAoYnVmKSkKKyAgICBidWYtPmNoYW5n ZXMtPmJlZ2luX2V4dGVudF91bmNoYW5nZWQgPSBzdGFydCAtIEJZVEVfQlVGX0JFRyAoYnVmKTsK ICAgaWYgKGJ1Zi0+Y2hhbmdlcy0+ZW5kX2V4dGVudF91bmNoYW5nZWQgPCAwIHx8Ci0gICAgICBi dWYtPmNoYW5nZXMtPmVuZF9leHRlbnRfdW5jaGFuZ2VkID4gQlVGX1ogKGJ1ZikgLSBlbmQpCi0g ICAgYnVmLT5jaGFuZ2VzLT5lbmRfZXh0ZW50X3VuY2hhbmdlZCA9IEJVRl9aIChidWYpIC0gZW5k OworICAgICAgYnVmLT5jaGFuZ2VzLT5lbmRfZXh0ZW50X3VuY2hhbmdlZCA+IEJZVEVfQlVGX1og KGJ1ZikgLSBlbmQpCisgICAgYnVmLT5jaGFuZ2VzLT5lbmRfZXh0ZW50X3VuY2hhbmdlZCA9IEJZ VEVfQlVGX1ogKGJ1ZikgLSBlbmQ7CiB9CiAKIHZvaWQKQEAgLTgzNywxMCArODM3LDE2IEBACiAg ICAgICBpZiAoZW5kIDwgQlVGX0JFR1YgKGJ1ZikpIGVuZCA9IEJVRl9CRUdWIChidWYpOwogICAg ICAgaWYgKGVuZCA+IEJVRl9aViAoYnVmKSkgICBlbmQgPSBCVUZfWlYgKGJ1Zik7CiAKLSAgICAg IE1BUF9JTkRJUkVDVF9CVUZGRVJTIChidWYsIG1idWYsIGJ1ZmNvbnMpCi0JewotCSAgcmVwb3J0 X2V4dGVudF9tb2RpZmljYXRpb24gKHdyYXBfYnVmZmVyIChtYnVmKSwgc3RhcnQsIGVuZCwgMCk7 Ci0JfQorICAgICAgeworICAgICAgICBCeXRleHBvcyBieXRlX3N0YXJ0ID0gY2hhcmJwb3NfdG9f Ynl0ZWJwb3MgKGJ1Ziwgc3RhcnQpOworICAgICAgICBCeXRleHBvcyBieXRlX2VuZCA9IGNoYXJi cG9zX3RvX2J5dGVicG9zIChidWYsIGVuZCk7CisKKyAgICAgICAgTUFQX0lORElSRUNUX0JVRkZF UlMgKGJ1ZiwgbWJ1ZiwgYnVmY29ucykKKyAgICAgICAgICB7CisgICAgICAgICAgICByZXBvcnRf ZXh0ZW50X21vZGlmaWNhdGlvbiAod3JhcF9idWZmZXIgKG1idWYpLCBieXRlX3N0YXJ0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVfZW5kLCAwKTsKKyAgICAg ICAgICB9CisgICAgICB9CiAgICAgICB1bmJpbmRfdG8gKHNwZWNjb3VudCk7CiAKICAgICAgIC8q IE9ubHkgbm93IGRvIHdlIGluZGljYXRlIHRoYXQgdGhlIGJlZm9yZS1jaGFuZ2UtZnVuY3Rpb25z IGhhdmUKQEAgLTkzMCwxMiArOTM2LDE3IEBACiAgICAgICBpZiAob3JpZ19lbmQgPCBCVUZfQkVH ViAoYnVmKSkgb3JpZ19lbmQgPSBCVUZfQkVHViAoYnVmKTsKICAgICAgIGlmIChvcmlnX2VuZCA+ IEJVRl9aViAoYnVmKSkgICBvcmlnX2VuZCA9IEJVRl9aViAoYnVmKTsKIAotICAgICAgTUFQX0lO RElSRUNUX0JVRkZFUlMgKGJ1ZiwgbWJ1ZiwgYnVmY29ucykKLQl7Ci0JICBidWZmZXIgPSB3cmFw X2J1ZmZlciAobWJ1Zik7Ci0JICByZXBvcnRfZXh0ZW50X21vZGlmaWNhdGlvbiAoYnVmZmVyLCBz dGFydCwgbmV3X2VuZCwgMSk7Ci0JfQotICAgICAgdW5iaW5kX3RvIChzcGVjY291bnQpOyAvKiBz ZXRzIGluc2lkZV9jaGFuZ2VfaG9vayBiYWNrIHRvIDAgKi8KKyAgICAgIHsKKyAgICAgICAgQnl0 ZXhwb3MgYnl0ZV9zdGFydCA9IGNoYXJicG9zX3RvX2J5dGVicG9zIChidWYsIHN0YXJ0KTsKKyAg ICAgICAgQnl0ZXhwb3MgYnl0ZV9uZXdfZW5kID0gY2hhcmJwb3NfdG9fYnl0ZWJwb3MgKGJ1Ziwg bmV3X2VuZCk7CisKKyAgICAgICAgTUFQX0lORElSRUNUX0JVRkZFUlMgKGJ1ZiwgbWJ1ZiwgYnVm Y29ucykKKyAgICAgICAgICB7CisgICAgICAgICAgICBidWZmZXIgPSB3cmFwX2J1ZmZlciAobWJ1 Zik7CisgICAgICAgICAgICByZXBvcnRfZXh0ZW50X21vZGlmaWNhdGlvbiAoYnVmZmVyLCBieXRl X3N0YXJ0LCBieXRlX25ld19lbmQsIDEpOworICAgICAgICAgIH0KKyAgICAgICAgdW5iaW5kX3Rv IChzcGVjY291bnQpOyAvKiBzZXRzIGluc2lkZV9jaGFuZ2VfaG9vayBiYWNrIHRvIDAgKi8KKyAg ICAgIH0KICAgICB9CiB9CiAKZGlmZiAtciA5MTYxODdhMDNiODIgLXIgNzdkN2I3NzkwOWMyIHNy Yy9pbnNkZWwuaAotLS0gYS9zcmMvaW5zZGVsLmgJVGh1IE1hciAyNiAyMDo0NzoxMiAyMDE1IC0w NDAwCisrKyBiL3NyYy9pbnNkZWwuaAlGcmkgTWFyIDI3IDIzOjM5OjQ5IDIwMTUgKzAwMDAKQEAg LTk5LDcgKzk5LDcgQEAKICAgLyogcmVkaXNwbGF5IG5lZWRzIHRvIGtub3cgaWYgYSBuZXdsaW5l IHdhcyBkZWxldGVkIHNvIGl0cwogICAgICBpbmNyZW1lbnRhbC1yZWRpc3BsYXkgYWxnb3JpdGht IHdpbGwgZmFpbCAqLwogICBpbnQgbmV3bGluZV93YXNfZGVsZXRlZDsKLSAgQ2hhcmNvdW50IGJl Z2luX2V4dGVudF91bmNoYW5nZWQsIGVuZF9leHRlbnRfdW5jaGFuZ2VkOworICBCeXRlY291bnQg YmVnaW5fZXh0ZW50X3VuY2hhbmdlZCwgZW5kX2V4dGVudF91bmNoYW5nZWQ7CiB9OwogCiAvKiBO dW1iZXIgb2YgY2hhcmFjdGVycyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGJ1ZmZl ciB0aGF0CkBAIC0xMTEsNyArMTExLDcgQEAKICNkZWZpbmUgQlVGX0JFR0lOX1VOQ0hBTkdFRChi dWYpICgoYnVmKS0+Y2hhbmdlcy0+YmVnaW5fdW5jaGFuZ2VkKQogI2RlZmluZSBCVUZfRU5EX1VO Q0hBTkdFRChidWYpICgoYnVmKS0+Y2hhbmdlcy0+ZW5kX3VuY2hhbmdlZCkKIAotLyogTnVtYmVy IG9mIGNoYXJhY3RlcnMgYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoZSBidWZmZXIgdGhh dAorLyogTnVtYmVyIG9mIGJ5dGVzIGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgYnVm ZmVyIHRoYXQKICAgIGhhdmUgbm90IGhhZCBhIGNvdmVyaW5nIGV4dGVudCBjaGFuZ2Ugc2luY2Ug dGhlIGxhc3QgY2FsbCB0bwogICAgYnVmZmVyX3Jlc2V0X2NoYW5nZXMgKCkuICBJZiBubyBjaGFu Z2VzIGhhdmUgb2NjdXJyZWQgc2luY2UgdGhlbiwKICAgIGJvdGggdmFsdWVzIHdpbGwgYmUgLTEu CgoKLS0gCuKAmFRyYW1hZG9sIGlzIGZ1cnRoZXIgZmVkIHRvIGNhdHRsZSBb4oCmXSB3aGVuIHdv cmtpbmcgdGhlbSBb4oCmXSAoYXMgZHJhZnQKYW5pbWFscykgc28gdGhhdCB0aGUgYW5pbWFscyBk byBub3QgZ2V0IHRpcmVkIHF1aWNrbHkuIOKApuKAmQoJ4oCUIEFuZ2V3YW5kdGUgQ2hlbWllLCBT ZXB0IDIwMTQsIGRlc2NyaWJpbmcgdGhlIHNvY2lhbCBjb250ZXh0IG9mCgkoc3ludGhldGljKSB0 cmFtYWRvbCBoYXZpbmcgYmVlbiBmb3VuZCBpbiBDYW1lcm9vbiB0cmVlIHJvb3RzLgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWEVtYWNzLVBhdGNoZXMg bWFpbGluZyBsaXN0ClhFbWFjcy1QYXRjaGVzQHhlbWFjcy5vcmcKaHR0cDovL2xpc3RzLnhlbWFj cy5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW1hY3MtcGF0Y2hlcwo=