------=_Part_1901_11328513.1214416985847 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline 2008/6/23, Thiago Macieira : > I didn't like the indention style. Please don't put function opening > brackets on the same line as their declaration. You also have whitespace > errors (lines ending in whitespace). The location of the opening brackets is maybe too much of Java style for KDE. Attached is somewhat improved patch adhering a bit more to kdelibs coding style and hopefully without superfluous whitespace. > This is also a first step in fixing the long issue of not having a > centralised slave manager. One that would allow us to say "only one FTP > slave per host", for instance. "Centralised" as session- or system-wide manager? Otherwise the Scheduler should take care of such things. Roland ------=_Part_1901_11328513.1214416985847 Content-Type: text/x-patch; name=kdelibs-DNS-cache.patch Content-Transfer-Encoding: base64 X-Attachment-Id: file0 Content-Disposition: attachment; filename=kdelibs-DNS-cache.patch ZGlmZiAtLWdpdCBhL2tpby9DTWFrZUxpc3RzLnR4dCBiL2tpby9DTWFrZUxpc3RzLnR4dAppbmRl eCA4OTg0OTA3Li5jZjRhY2ZlIDEwMDY0NAotLS0gYS9raW8vQ01ha2VMaXN0cy50eHQKKysrIGIv a2lvL0NNYWtlTGlzdHMudHh0CkBAIC0xMTYsNiArMTE2LDcgQEAgc2V0KGtpb2NvcmVfU1RBVF9T UkNTCiAgIGtpby9zbGF2ZWludGVyZmFjZS5jcHAKICAga2lvL3RjcHNsYXZlYmFzZS5jcHAKICAg a2lvL3Vkc2VudHJ5LmNwcAorICBraW8vaG9zdGluZm9hZ2VudC5jcHAgICAgCiApCiAKIHF0NF9h ZGRfZGJ1c19hZGFwdG9yKGtpb2NvcmVfU1RBVF9TUkNTIGtpby9vcmcua2RlLmtpby5GaWxlVW5k b01hbmFnZXIueG1sIGZpbGV1bmRvbWFuYWdlcl9wLmggS0lPOjpGaWxlVW5kb01hbmFnZXJQcml2 YXRlIGZpbGV1bmRvbWFuYWdlcl9hZGFwdG9yIEtJT0ZpbGVVbmRvTWFuYWdlckFkYXB0b3IpCmRp ZmYgLS1naXQgYS9raW8va2lvL2dsb2JhbC5oIGIva2lvL2tpby9nbG9iYWwuaAppbmRleCBiMWZj YmM1Li40ZTVkMTBiIDEwMDY0NAotLS0gYS9raW8va2lvL2dsb2JhbC5oCisrKyBiL2tpby9raW8v Z2xvYmFsLmgKQEAgLTE3Nyw3ICsxNzcsOCBAQCBuYW1lc3BhY2UgS0lPCiAgICAgQ01EX1JFQUQg PSAnWicsIC8vIDkwCiAgICAgQ01EX1dSSVRFID0gOTEsCiAgICAgQ01EX1NFRUsgPSA5MiwKLSAg ICBDTURfQ0xPU0UgPSA5MworICAgIENNRF9DTE9TRSA9IDkzLAorICAgIENNRF9IT1NUX0lORk8g PSA5NAogICAgIC8vIEFkZCBuZXcgb25lcyBoZXJlIG9uY2UgYSByZWxlYXNlIGlzIGRvbmUsIHRv IGF2b2lkIGJyZWFraW5nIGJpbmFyeSBjb21wYXRpYmlsaXR5LgogICAgIC8vIE5vdGUgdGhhdCBw cm90b2NvbC1zcGVjaWZpYyBjb21tYW5kcyBzaG91bGRuJ3QgYmUgYWRkZWQgaGVyZSwgYnV0IHNo b3VsZCB1c2Ugc3BlY2lhbC4KICAgfTsKZGlmZiAtLWdpdCBhL2tpby9raW8vaG9zdGluZm9hZ2Vu dC5jcHAgYi9raW8va2lvL2hvc3RpbmZvYWdlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjY2YmYyMzMKLS0tIC9kZXYvbnVsbAorKysgYi9raW8va2lvL2hvc3RpbmZv YWdlbnQuY3BwCkBAIC0wLDAgKzEsMTgxIEBACisvKgorQ29weXJpZ2h0IDIwMDggUm9sYW5kIEhh cm5hdSA8dGF1QGdteC5ldT4KKworVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCit2ZXJzaW9uIDIuMSBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSB2ZXJzaW9uIDMsIG9yIGFueQorbGF0ZXIgdmVyc2lv biBhY2NlcHRlZCBieSB0aGUgbWVtYmVyc2hpcCBvZiBLREUgZS5WLiAob3IgaXRzCitzdWNjZXNz b3IgYXBwcm92ZWQgYnkgdGhlIG1lbWJlcnNoaXAgb2YgS0RFIGUuVi4pLCB3aGljaCBzaGFsbAor YWN0IGFzIGEgcHJveHkgZGVmaW5lZCBpbiBTZWN0aW9uIDYgb2YgdmVyc2lvbiAzIG9mIHRoZSBs aWNlbnNlLgorCitUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKK2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCitNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyAKK0xpY2Vuc2UgYWxvbmcgd2l0 aCB0aGlzIGxpYnJhcnkuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisqLworCisjaW5jbHVkZSAiaG9zdGluZm9hZ2VudC5oIgorCisjaW5jbHVkZSA8UXRDb3Jl L1FTdHJpbmc+CisjaW5jbHVkZSA8UXRDb3JlL1FIYXNoPgorI2luY2x1ZGUgPFF0Q29yZS9RQ2Fj aGU+CisjaW5jbHVkZSA8UXRDb3JlL1FUaW1lPgorI2luY2x1ZGUgPFF0Q29yZS9RTGlzdD4KKyNp bmNsdWRlIDxRdENvcmUvUVBhaXI+CisjaW5jbHVkZSA8UXRDb3JlL1FGdXR1cmVXYXRjaGVyPgor I2luY2x1ZGUgPFF0Q29yZS9RdENvbmN1cnJlbnRSdW4+CisjaW5jbHVkZSA8UXROZXR3b3JrL1FI b3N0SW5mbz4KKworI2RlZmluZSBUVEwgMzAwCisKK25hbWVzcGFjZSBLSU8KK3sKKyAgICBjbGFz cyBIb3N0SW5mb0FnZW50UHJpdmF0ZSA6IHB1YmxpYyBRT2JqZWN0CisgICAgeworICAgICAgICBR X09CSkVDVAorICAgIHB1YmxpYzoKKyAgICAgICAgSG9zdEluZm9BZ2VudFByaXZhdGUoaW50IGNh Y2hlU2l6ZSA9IDEwMCk7CisgICAgICAgIHZpcnR1YWwgfkhvc3RJbmZvQWdlbnRQcml2YXRlKCkg e307CisgICAgICAgIHZvaWQgbG9va3VwSG9zdChjb25zdCBRU3RyaW5nJiBob3N0TmFtZSwgUU9i amVjdCogcmVjZWl2ZXIsIGNvbnN0IGNoYXIqIG1lbWJlcik7CisgICAgcHJpdmF0ZSBRX1NMT1RT OgorICAgICAgICB2b2lkIHF1ZXJ5RmluaXNoZWQoY29uc3QgUUhvc3RJbmZvJik7CisgICAgcHJp dmF0ZToKKyAgICAgICAgY2xhc3MgUmVzdWx0OworICAgICAgICBjbGFzcyBRdWVyeTsKKworICAg ICAgICBRSGFzaDxRU3RyaW5nLCBRdWVyeSo+IG9wZW5RdWVyaWVzOworICAgICAgICBRQ2FjaGU8 UVN0cmluZywgUVBhaXI8UUhvc3RJbmZvLCBRVGltZT4gPiBkbnNDYWNoZTsKKyAgICB9OworCisg ICAgY2xhc3MgSG9zdEluZm9BZ2VudFByaXZhdGU6OlJlc3VsdCA6IHB1YmxpYyBRT2JqZWN0Cisg ICAgeworICAgICAgICBRX09CSkVDVAorICAgIFFfU0lHTkFMUzoKKyAgICAgICAgdm9pZCByZXN1 bHQoUUhvc3RJbmZvKTsKKyAgICBmcmllbmQgY2xhc3MgSG9zdEluZm9BZ2VudFByaXZhdGU7Cisg ICAgfTsKKworICAgIGNsYXNzIEhvc3RJbmZvQWdlbnRQcml2YXRlOjpRdWVyeSA6IHB1YmxpYyBR T2JqZWN0IAorICAgIHsKKyAgICAgICAgUV9PQkpFQ1QKKyAgICBwdWJsaWM6CisgICAgICAgIFF1 ZXJ5KCk6IG1fd2F0Y2hlcigpLCBtX2hvc3ROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAg Y29ubmVjdCgmbV93YXRjaGVyLCBTSUdOQUwoZmluaXNoZWQoKSksIHRoaXMsIFNMT1QocmVsYXlG aW5pc2hlZCgpKSk7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBzdGFydChjb25zdCBRU3RyaW5n JiBob3N0TmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgbV9ob3N0TmFtZSA9IGhvc3ROYW1l OworICAgICAgICAgICAgUUZ1dHVyZTxRSG9zdEluZm8+IGZ1dHVyZSA9IFF0Q29uY3VycmVudDo6 cnVuKCZRSG9zdEluZm86OmZyb21OYW1lLCBob3N0TmFtZSk7CisgICAgICAgICAgICBtX3dhdGNo ZXIuc2V0RnV0dXJlKGZ1dHVyZSk7CisgICAgICAgIH0KKyAgICAgICAgUVN0cmluZyBob3N0TmFt ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2hvc3ROYW1lOworICAg ICAgICB9CisgICAgUV9TSUdOQUxTOgorICAgICAgICB2b2lkIHJlc3VsdChRSG9zdEluZm8pOwor ICAgIHByaXZhdGUgUV9TTE9UUzoKKyAgICAgICAgdm9pZCByZWxheUZpbmlzaGVkKCkKKyAgICAg ICAgeworICAgICAgICAgICAgUV9FTUlUIHJlc3VsdChtX3dhdGNoZXIucmVzdWx0KCkpOworICAg ICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgUUZ1dHVyZVdhdGNoZXI8UUhvc3RJbmZvPiBt X3dhdGNoZXI7CisgICAgICAgIFFTdHJpbmcgbV9ob3N0TmFtZTsKKyAgICB9OworfQorCit1c2lu ZyBuYW1lc3BhY2UgS0lPOworCitIb3N0SW5mb0FnZW50OjpIb3N0SW5mb0FnZW50KGludCBjYWNo ZVNpemUpIDogZChuZXcgSG9zdEluZm9BZ2VudFByaXZhdGUoY2FjaGVTaXplKSkge30KKworSG9z dEluZm9BZ2VudDo6fkhvc3RJbmZvQWdlbnQoKQoreworICAgIGRlbGV0ZShkKTsKK30KKworSG9z dEluZm9BZ2VudCogSG9zdEluZm9BZ2VudDo6aW5zdGFuY2UoKQoreworICAgIGlmIChtX2luc3Rh bmNlID09IDApIHsKKyAgICAgICAgbV9pbnN0YW5jZSA9IG5ldyBIb3N0SW5mb0FnZW50KCk7Cisg ICAgfQorICAgIHJldHVybiBtX2luc3RhbmNlOyAKK30KKwordm9pZCBIb3N0SW5mb0FnZW50Ojps b29rdXBIb3N0KGNvbnN0IFFTdHJpbmcmIGhvc3ROYW1lLCBRT2JqZWN0KiByZWNlaXZlciwgY29u c3QgY2hhciogbWVtYmVyKQoreworICAgIGQtPmxvb2t1cEhvc3QoaG9zdE5hbWUsIHJlY2VpdmVy LCBtZW1iZXIpOworfQorCitIb3N0SW5mb0FnZW50KiBIb3N0SW5mb0FnZW50OjptX2luc3RhbmNl OworCitIb3N0SW5mb0FnZW50UHJpdmF0ZTo6SG9zdEluZm9BZ2VudFByaXZhdGUoaW50IGNhY2hl U2l6ZSkgOiBvcGVuUXVlcmllcygpLCBkbnNDYWNoZShjYWNoZVNpemUpIHt9CisKK3ZvaWQgSG9z dEluZm9BZ2VudFByaXZhdGU6Omxvb2t1cEhvc3QoY29uc3QgUVN0cmluZyYgaG9zdE5hbWUsIFFP YmplY3QqIHJlY2VpdmVyLCBjb25zdCBjaGFyKiBtZW1iZXIpCit7CisgICAgaWYoZG5zQ2FjaGUu Y29udGFpbnMoaG9zdE5hbWUpKSB7CisgICAgICAgIFFQYWlyPFFIb3N0SW5mbywgUVRpbWU+IGlu Zm8gKCpkbnNDYWNoZS5vYmplY3QoaG9zdE5hbWUpKTsKKworICAgICAgICBpZiAoUVRpbWU6OmN1 cnJlbnRUaW1lKCkgPD0gaW5mby5zZWNvbmQuYWRkU2VjcyhUVEwpKSB7CisgICAgICAgICAgICBS ZXN1bHQgcmVzdWx0OworICAgICAgICAgICAgUU9iamVjdDo6Y29ubmVjdCgmcmVzdWx0LCBTSUdO QUwocmVzdWx0KFFIb3N0SW5mbykpLHJlY2VpdmVyLCBtZW1iZXIpOworICAgICAgICAgICAgUV9F TUlUIHJlc3VsdC5yZXN1bHQoaW5mby5maXJzdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg ICAgIH0KKyAgICAgICAgZG5zQ2FjaGUucmVtb3ZlKGhvc3ROYW1lKTsKKyAgICB9CisKKyAgICBp ZiAob3BlblF1ZXJpZXMuY29udGFpbnMoaG9zdE5hbWUpKSB7CisgICAgICAgIFF1ZXJ5KiBxdWVy eSA9IG9wZW5RdWVyaWVzLnZhbHVlKGhvc3ROYW1lKTsKKyAgICAgICAgY29ubmVjdChxdWVyeSwg U0lHTkFMKHJlc3VsdChRSG9zdEluZm8pKSwgcmVjZWl2ZXIsIG1lbWJlcik7CisgICAgICAgIHJl dHVybjsKKyAgICB9CisKKyAgICBRdWVyeSogcXVlcnkgPSBuZXcgUXVlcnkoKTsKKyAgICBvcGVu UXVlcmllcy5pbnNlcnQoaG9zdE5hbWUsIHF1ZXJ5KTsKKyAgICBjb25uZWN0KHF1ZXJ5LCBTSUdO QUwocmVzdWx0KFFIb3N0SW5mbykpLCB0aGlzLCBTTE9UKHF1ZXJ5RmluaXNoZWQoUUhvc3RJbmZv KSkpOworICAgIGNvbm5lY3QocXVlcnksIFNJR05BTChyZXN1bHQoUUhvc3RJbmZvKSksIHJlY2Vp dmVyLCBtZW1iZXIpOworICAgIHF1ZXJ5LT5zdGFydChob3N0TmFtZSk7Cit9CisKK3ZvaWQgSG9z dEluZm9BZ2VudFByaXZhdGU6OnF1ZXJ5RmluaXNoZWQoY29uc3QgUUhvc3RJbmZvJiBpbmZvKQor eworICAgIFF1ZXJ5KiBxdWVyeSA9IHN0YXRpY19jYXN0PFF1ZXJ5KiA+KHNlbmRlcigpKTsKKwor ICAgIG9wZW5RdWVyaWVzLnJlbW92ZShxdWVyeS0+aG9zdE5hbWUoKSk7CisgICAgaWYgKCFpbmZv LmFkZHJlc3NlcygpLmlzRW1wdHkoKSkKKyAgICAgICAgZG5zQ2FjaGUuaW5zZXJ0KHF1ZXJ5LT5o b3N0TmFtZSgpLCAKKyAgICAgICAgICAgIG5ldyBRUGFpcjxRSG9zdEluZm8sIFFUaW1lPihpbmZv LCBRVGltZTo6Y3VycmVudFRpbWUoKSkpOworCisgICAgcXVlcnktPmRlbGV0ZUxhdGVyKCk7Cit9 CisKK1FEYXRhU3RyZWFtJiBvcGVyYXRvcjw8KFFEYXRhU3RyZWFtJiBvdXQsIGNvbnN0IFFIb3N0 SW5mbyYgaW5mbykKK3sKKyAgICBvdXQgPDwgaW5mby5ob3N0TmFtZSgpIDw8IGluZm8uYWRkcmVz c2VzKCkgPDwgaW5mby5lcnJvcigpIDw8IGluZm8uZXJyb3JTdHJpbmcoKTsKKyAgICByZXR1cm4g b3V0OworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYgaW4sIFFIb3N0 SW5mbyYgaW5mbykKK3sKKyAgICBRU3RyaW5nIGhvc3ROYW1lOworICAgIFFMaXN0PFFIb3N0QWRk cmVzcz4gYWRkcmVzc2VzOworICAgIGludCBlcnJvcjsKKyAgICBRU3RyaW5nIGVycm9yU3RyaW5n OworCisgICAgaW4gPj4gaG9zdE5hbWUgPj4gYWRkcmVzc2VzID4+IGVycm9yID4+IGVycm9yU3Ry aW5nOworCisgICAgaW5mby5zZXRIb3N0TmFtZShob3N0TmFtZSk7CisgICAgaW5mby5zZXRBZGRy ZXNzZXMoYWRkcmVzc2VzKTsKKyAgICBpbmZvLnNldEVycm9yKFFIb3N0SW5mbzo6SG9zdEluZm9F cnJvcihlcnJvcikpOworICAgIGluZm8uc2V0RXJyb3JTdHJpbmcoZXJyb3JTdHJpbmcpOworCisg ICAgcmV0dXJuIGluOworfQorCisjaW5jbHVkZSAiaG9zdGluZm9hZ2VudC5tb2MiCmRpZmYgLS1n aXQgYS9raW8va2lvL2hvc3RpbmZvYWdlbnQuaCBiL2tpby9raW8vaG9zdGluZm9hZ2VudC5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxY2UwM2IKLS0tIC9kZXYvbnVsbAor KysgYi9raW8va2lvL2hvc3RpbmZvYWdlbnQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorQ29weXJp Z2h0IDIwMDggIFJvbGFuZCBIYXJuYXUgPHRhdUBnbXguZXU+CisKK1RoaXMgbGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKK21vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKK0xpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgordmVy c2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgdmVyc2lvbiAzLCBv ciBhbnkKK2xhdGVyIHZlcnNpb24gYWNjZXB0ZWQgYnkgdGhlIG1lbWJlcnNoaXAgb2YgS0RFIGUu Vi4gKG9yIGl0cworc3VjY2Vzc29yIGFwcHJvdmVkIGJ5IHRoZSBtZW1iZXJzaGlwIG9mIEtERSBl LlYuKSwgd2hpY2ggc2hhbGwKK2FjdCBhcyBhIHByb3h5IGRlZmluZWQgaW4gU2VjdGlvbiA2IG9m IHZlcnNpb24gMyBvZiB0aGUgbGljZW5zZS4KKworVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCitidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKK0xl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKK1lvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg CitMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKi8KKworI2lmbmRlZiBIT1NUSU5GT19IXworI2RlZmlu ZSBIT1NUSU5GT19IXworCisjaW5jbHVkZSA8UXRDb3JlL1FTdHJpbmc+CisjaW5jbHVkZSA8UXRD b3JlL1FEYXRhU3RyZWFtPgorI2luY2x1ZGUgPFF0TmV0d29yay9RSG9zdEluZm8+CisKK25hbWVz cGFjZSBLSU8KK3sKKyAgICBjbGFzcyBIb3N0SW5mb0FnZW50UHJpdmF0ZTsKKyAgICAKKyAgICBj bGFzcyAgSG9zdEluZm9BZ2VudAorICAgIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBI b3N0SW5mb0FnZW50KiBpbnN0YW5jZSgpOworICAgICAgICB2b2lkIGxvb2t1cEhvc3QoY29uc3Qg UVN0cmluZyYgaG9zdE5hbWUsIFFPYmplY3QqIHJlY2VpdmVyLCBjb25zdCBjaGFyKiBtZW1iZXIp OworICAgIHByaXZhdGU6CisgICAgICAgIEhvc3RJbmZvQWdlbnQoaW50IGNhY2hlU2l6ZSA9IDEw MCk7CisgICAgICAgIH5Ib3N0SW5mb0FnZW50KCk7CisgICAgICAgIHN0YXRpYyBIb3N0SW5mb0Fn ZW50KiBtX2luc3RhbmNlOworCisgICAgICAgIEhvc3RJbmZvQWdlbnRQcml2YXRlKiBkOworICAg IH07Cit9CisKK1FEYXRhU3RyZWFtJiBvcGVyYXRvcjw8KFFEYXRhU3RyZWFtJiBvdXQsIGNvbnN0 IFFIb3N0SW5mbyYgaW5mbyk7CitRRGF0YVN0cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYg aW4sIFFIb3N0SW5mbyYgaW5mbyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEva2lvL2tpby9zbGF2 ZWJhc2UuY3BwIGIva2lvL2tpby9zbGF2ZWJhc2UuY3BwCmluZGV4IDk0ODVkYTEuLjhjZTAzYTIg MTAwNjQ0Ci0tLSBhL2tpby9raW8vc2xhdmViYXNlLmNwcAorKysgYi9raW8va2lvL3NsYXZlYmFz ZS5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICAqKi8KIAogI2luY2x1ZGUgInNsYXZlYmFzZS5oIgor I2luY2x1ZGUgImhvc3RpbmZvYWdlbnQuaCIKIAogI2luY2x1ZGUgPGNvbmZpZy5oPgogCkBAIC0x MzMwLDMgKzEzMzEsMjUgQEAgdm9pZCBTbGF2ZUJhc2U6OnNlbmQoaW50IGNtZCwgY29uc3QgUUJ5 dGVBcnJheSYgYXJyICkKIAogdm9pZCBTbGF2ZUJhc2U6OnZpcnR1YWxfaG9vayggaW50LCB2b2lk KiApCiB7IC8qQkFTRTo6dmlydHVhbF9ob29rKCBpZCwgZGF0YSApOyovIH0KKwordm9pZCBTbGF2 ZUJhc2U6Omxvb2t1cEhvc3QoY29uc3QgUVN0cmluZyYgaG9zdCkKK3sKKyAgICBLSU9fREFUQSA8 PCBob3N0OworICAgIHNlbmQoTVNHX0hPU1RfSU5GT19SRVEsIGRhdGEpOworfQorCitpbnQgU2xh dmVCYXNlOjp3YWl0Rm9ySG9zdEluZm8oUUhvc3RJbmZvJiBpbmZvKQoreworICAgIFFCeXRlQXJy YXkgZGF0YTsKKyAgICBpbnQgcmVzdWx0ID0gd2FpdEZvckFuc3dlcihDTURfSE9TVF9JTkZPLCAw LCBkYXRhKTsKKworICAgIGlmIChyZXN1bHQgID09IC0xKXsKKyAgICAgICAgaW5mby5zZXRFcnJv cihRSG9zdEluZm86OlVua25vd25FcnJvcik7CisgICAgICAgIGluZm8uc2V0RXJyb3JTdHJpbmco IlVua25vd24gRXJyb3IuIik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAg UURhdGFTdHJlYW0gc3RyZWFtKGRhdGEpOworICAgIHN0cmVhbSA+PiBpbmZvOworICAgIHJldHVy biByZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9raW8va2lvL3NsYXZlYmFzZS5oIGIva2lvL2tpby9z bGF2ZWJhc2UuaAppbmRleCA3ZDg3ZTk1Li40MTIzODllIDEwMDY0NAotLS0gYS9raW8va2lvL3Ns YXZlYmFzZS5oCisrKyBiL2tpby9raW8vc2xhdmViYXNlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNp bmNsdWRlIDxrbG9jYWxlLmg+CiAKICNpbmNsdWRlIDxRdENvcmUvUUJ5dGVBcnJheT4KKyNpbmNs dWRlIDxRdE5ldHdvcmsvUUhvc3RJbmZvPgogCiBjbGFzcyBLQ29uZmlnR3JvdXA7CiBjbGFzcyBL UmVtb3RlRW5jb2Rpbmc7CkBAIC03NzQsNiArNzc1LDE2IEBAIHB1YmxpYzoKICAgICAgKi8KICAg ICB2b2lkIHNldEtpbGxGbGFnKCk7CiAKKyAgICAvKiogSW50ZXJuYWxseSB1c2VkCisgICAgICAq IEBpbnRlcm5hbAorICAgICovCisgICAgdm9pZCBsb29rdXBIb3N0KGNvbnN0IFFTdHJpbmcmIGhv c3QpOworCisgICAgLyoqIEludGVybmFsbHkgdXNlZAorICAgICAgKiBAaW50ZXJuYWwKKyAgICAq LworICAgIGludCB3YWl0Rm9ySG9zdEluZm8oUUhvc3RJbmZvJiBpbmZvKTsKKwogcHJvdGVjdGVk OgogICAgIC8qKgogICAgICAqIE5hbWUgb2YgdGhlIHByb3RvY29sIHN1cHBvcnRlZCBieSB0aGlz IHNsYXZlCmRpZmYgLS1naXQgYS9raW8va2lvL3NsYXZlaW50ZXJmYWNlLmNwcCBiL2tpby9raW8v c2xhdmVpbnRlcmZhY2UuY3BwCmluZGV4IDhlNDFlYTcuLjU0MDQzZmYgMTAwNjQ0Ci0tLSBhL2tp by9raW8vc2xhdmVpbnRlcmZhY2UuY3BwCisrKyBiL2tpby9raW8vc2xhdmVpbnRlcmZhY2UuY3Bw CkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNsdWRlICJzbGF2ZWJhc2UuaCIKICNpbmNsdWRlICJj b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiaG9zdGluZm9hZ2VudC5oIgogI2luY2x1ZGUgPGVycm5v Lmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8a2RlYnVnLmg+CkBAIC0zMzYsNyAr MzM3LDEzIEBAIGJvb2wgU2xhdmVJbnRlcmZhY2U6OmRpc3BhdGNoKCBpbnQgX2NtZCwgY29uc3Qg UUJ5dGVBcnJheSAmcmF3ZGF0YSApCiAgICAgICAgIGVtaXQgbmVlZFN1YlVybERhdGEoKTsKICAg ICAgICAgYnJlYWs7CiAgICAgfQotICAgIGRlZmF1bHQ6CisgICAgY2FzZSBNU0dfSE9TVF9JTkZP X1JFUTogeworICAgICAgICBRU3RyaW5nIGhvc3ROYW1lOworICAgICAgICBzdHJlYW0gPj4gaG9z dE5hbWU7CisgICAgICAgIEhvc3RJbmZvQWdlbnQ6Omluc3RhbmNlKCktPmxvb2t1cEhvc3QoaG9z dE5hbWUsIHRoaXMsIFNMT1Qoc2V0SG9zdEluZm8oUUhvc3RJbmZvKSkpOworICAgICAgICBicmVh azsKKyAgICB9CisgICAgZGVmYXVsdDogCiAgICAgICAgIGtXYXJuaW5nKDcwMDcpIDw8ICJTbGF2 ZSBzZW5kcyB1bmtub3duIGNvbW1hbmQgKCIgPDwgX2NtZCA8PCAiKSwgZHJvcHBpbmcgc2xhdmUi OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNDk2LDQgKzUwMywxMyBAQCBpbnQg U2xhdmVJbnRlcmZhY2VQcml2YXRlOjptZXNzYWdlQm94KGludCB0eXBlLCBjb25zdCBRU3RyaW5n ICZ0ZXh0LAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3ZvaWQgU2xhdmVJbnRlcmZhY2U6OnNl dEhvc3RJbmZvKGNvbnN0IFFIb3N0SW5mbyYgaW5mbykKK3sKKyAgICBRX0QoU2xhdmVJbnRlcmZh Y2UpOworICAgIFFCeXRlQXJyYXkgZGF0YTsKKyAgICBRRGF0YVN0cmVhbSBzdHJlYW0oJmRhdGEs IFFJT0RldmljZTo6V3JpdGVPbmx5KTsKKyAgICBzdHJlYW0gPDwgaW5mbzsKKyAgICBkLT5jb25u ZWN0aW9uLT5zZW5kKENNRF9IT1NUX0lORk8sIGRhdGEpOworfQorCiAjaW5jbHVkZSAic2xhdmVp bnRlcmZhY2UubW9jIgpkaWZmIC0tZ2l0IGEva2lvL2tpby9zbGF2ZWludGVyZmFjZS5oIGIva2lv L2tpby9zbGF2ZWludGVyZmFjZS5oCmluZGV4IGQxN2M1YzIuLmQzYmU2YjQgMTAwNjQ0Ci0tLSBh L2tpby9raW8vc2xhdmVpbnRlcmZhY2UuaAorKysgYi9raW8va2lvL3NsYXZlaW50ZXJmYWNlLmgK QEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KIAogI2luY2x1ZGUgPFF0 Q29yZS9RT2JqZWN0PgorI2luY2x1ZGUgPFF0TmV0d29yay9RSG9zdEluZm8+CiAKICNpbmNsdWRl IDxraW8vZ2xvYmFsLmg+CiAjaW5jbHVkZSA8a2lvL3Vkc2VudHJ5Lmg+CkBAIC04Miw3ICs4Myw4 IEBAIGNsYXNzIFNsYXZlSW50ZXJmYWNlUHJpdmF0ZTsKICAgIE1TR19BVVRIX0tFWSwgLy8gMTE1 IC8vIGRlcHJlY2F0ZWQuCiAgICBNU0dfREVMX0FVVEhfS0VZLCAvLyBkZXByZWNhdGVkLgogICAg TVNHX09QRU5FRCwKLSAgIE1TR19XUklUVEVOCisgICBNU0dfV1JJVFRFTiwKKyAgIE1TR19IT1NU X0lORk9fUkVRCiAgICAvLyBhZGQgbmV3IG9uZXMgaGVyZSBvbmNlIGEgcmVsZWFzZSBpcyBkb25l LCB0byBhdm9pZCBicmVha2luZyBiaW5hcnkgY29tcGF0aWJpbGl0eQogIH07CiAKQEAgLTE2OSwx MCArMTcxLDExIEBAIHByb3RlY3RlZDoKIAogcHJvdGVjdGVkIFFfU0xPVFM6CiAgICAgdm9pZCBj YWxjU3BlZWQoKTsKLQogcHJvdGVjdGVkOgogICAgIFNsYXZlSW50ZXJmYWNlUHJpdmF0ZSogY29u c3QgZF9wdHI7CiAgICAgUV9ERUNMQVJFX1BSSVZBVEUoU2xhdmVJbnRlcmZhY2UpCitwcml2YXRl IFFfU0xPVFM6CisgICAgdm9pZCBzZXRIb3N0SW5mbyhjb25zdCBRSG9zdEluZm8mIGluZm8pOwog fTsKIAogfQpkaWZmIC0tZ2l0IGEva2lvL2tpby90Y3BzbGF2ZWJhc2UuY3BwIGIva2lvL2tpby90 Y3BzbGF2ZWJhc2UuY3BwCmluZGV4IGUyODFjYWUuLmNkNjJhMWYgMTAwNjQ0Ci0tLSBhL2tpby9r aW8vdGNwc2xhdmViYXNlLmNwcAorKysgYi9raW8va2lvL3RjcHNsYXZlYmFzZS5jcHAKQEAgLTIs NyArMiw4IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgQWxleCBaZXBlZGEgPHppcHppcHB5QHNv bmljLm5ldAogICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDMgR2VvcmdlIFN0YWlrb3MgPHN0YWlr b3NAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwMSBEYXdpdCBBbGVtYXllaHUgPGFkYXdp dEBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA3LDIwMDggQW5kcmVhcyBIYXJ0bWV0eiA8 YWhhcnRtZXR6QGdtYWlsLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwNywyMDA4IEFuZHJlYXMg SGFydG1ldHogPGFoYXJ0bWV0ekBnbWFpbC5jb20+IAorICogQ29weXJpZ2h0IChDKSAyMDA4IFJv bGFuZCBIYXJuYXUgPHRhdUBnbXguZXU+CiAgKgogICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEtERSBwcm9qZWN0CiAgKgpAQCAtMjc5LDI1ICsyODAsMzIgQEAgYm9vbCBUQ1BTbGF2ZUJhc2U6 OmNvbm5lY3RUb0hvc3QoY29uc3QgUVN0cmluZyAmLypwcm90b2NvbCovLAogCiAgICAgICAgIC8v RklYTUUhIEtUY3BTb2NrZXQgZG9lc24ndCBrbm93IG9yIGNhcmUgYWJvdXQgcHJvdG9jb2wgcG9y dHMhIEZpeCBpdCB0aGVyZSwgdGhlbiB1c2UgaXQgaGVyZS4KIAotICAgICAgICBrRGVidWcoNzAy OSkgPDwgImJlZm9yZSBjb25uZWN0VG9Ib3N0OiBTb2NrZXQgZXJyb3IgaXMiCi0gICAgICAgICAg ICAgICAgICAgIDw8IGQtPnNvY2tldC5lcnJvcigpIDw8ICIsIFNvY2tldCBzdGF0ZSBpcyIgPDwg ZC0+c29ja2V0LnN0YXRlKCk7Ci0gICAgICAgIGQtPnNvY2tldC5jb25uZWN0VG9Ib3N0KGhvc3Qs IHBvcnQpOwotICAgICAgICBrRGVidWcoNzAyOSkgPDwgImFmdGVyIGNvbm5lY3RUb0hvc3Q6IFNv Y2tldCBlcnJvciBpcyIKLSAgICAgICAgICAgICAgICAgICAgPDwgZC0+c29ja2V0LmVycm9yKCkg PDwgIiwgU29ja2V0IHN0YXRlIGlzIiA8PCBkLT5zb2NrZXQuc3RhdGUoKTsKKyAgICAgICAgUUhv c3RBZGRyZXNzIGFkZHJlc3M7CisgICAgICAgIFFMaXN0PFFIb3N0QWRkcmVzcz4gYWRkcmVzc2Vz OwogCi0gICAgICAgIGJvb2wgY29ubmVjdE9rID0gZC0+c29ja2V0LndhaXRGb3JDb25uZWN0ZWQo ZC0+dGltZW91dCA+IC0xID8gZC0+dGltZW91dCAqIDEwMDAgOiAtMSk7Ci0gICAgICAgIGtEZWJ1 Zyg3MDI5KSA8PCAiYWZ0ZXIgd2FpdEZvckNvbm5lY3RlZDogU29ja2V0IGVycm9yIGlzIgotICAg ICAgICAgICAgICAgICAgICA8PCBkLT5zb2NrZXQuZXJyb3IoKSA8PCAiLCBTb2NrZXQgc3RhdGUg aXMiIDw8IGQtPnNvY2tldC5zdGF0ZSgpCi0gICAgICAgICAgICAgICAgICAgIDw8ICIsIHdhaXRG b3JDb25uZWN0ZWQgcmV0dXJuZWQgIiA8PCBjb25uZWN0T2s7CisgICAgICAgIGlmIChhZGRyZXNz LnNldEFkZHJlc3MoaG9zdCkpeworICAgICAgICAgICAgYWRkcmVzc2VzLmFwcGVuZChhZGRyZXNz KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFFIb3N0SW5mbyBpbmZvOworICAgICAg ICAgICAgbG9va3VwSG9zdChob3N0KTsKKyAgICAgICAgICAgIHdhaXRGb3JIb3N0SW5mbyhpbmZv KTsKKyAgICAgICAgICAgIGlmIChpbmZvLmVycm9yKCkgIT0gUUhvc3RJbmZvOjpOb0Vycm9yKXsK KyAgICAgICAgICAgICAgICBlcnJvcihFUlJfVU5LTk9XTl9IT1NULCBpbmZvLmVycm9yU3RyaW5n KCkpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIGFkZHJlc3NlcyA9IGluZm8uYWRkcmVzc2VzKCk7CisgICAgICAgIH0KKworICAgICAg ICBRTGlzdEl0ZXJhdG9yPFFIb3N0QWRkcmVzcz4gaXQoYWRkcmVzc2VzKTsKKyAgICAgICAgd2hp bGUgKGl0Lmhhc05leHQoKSl7CisgICAgICAgICAgICBkLT5zb2NrZXQuY29ubmVjdFRvSG9zdChp dC5uZXh0KCksIHBvcnQpOworICAgICAgICAgICAgYm9vbCBjb25uZWN0T2sgPSBkLT5zb2NrZXQu d2FpdEZvckNvbm5lY3RlZChkLT50aW1lb3V0ID4gLTEgPyBkLT50aW1lb3V0ICogMTAwMCA6IC0x KTsKKyAgICAgICAgICAgIGlmIChjb25uZWN0T2spIGJyZWFrOworICAgICAgICB9CiAKICAgICAg ICAgaWYgKGQtPnNvY2tldC5zdGF0ZSgpICE9IEtUY3BTb2NrZXQ6OkNvbm5lY3RlZFN0YXRlKSB7 Ci0gICAgICAgICAgICBpZiAoZC0+c29ja2V0LmVycm9yKCkgPT0gS1RjcFNvY2tldDo6SG9zdE5v dEZvdW5kRXJyb3IpIHsKLSAgICAgICAgICAgICAgICBlcnJvcihFUlJfVU5LTk9XTl9IT1NULAor ICAgICAgICAgICAgZXJyb3IoRVJSX0NPVUxEX05PVF9DT05ORUNULAogICAgICAgICAgICAgICAg ICAgICAgIGhvc3QgKyBRTGF0aW4xU3RyaW5nKCI6ICIpICsgZC0+c29ja2V0LmVycm9yU3RyaW5n KCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBlcnJvcihFUlJfQ09V TERfTk9UX0NPTk5FQ1QsCi0gICAgICAgICAgICAgICAgICAgICAgaG9zdCArIFFMYXRpbjFTdHJp bmcoIjogIikgKyBkLT5zb2NrZXQuZXJyb3JTdHJpbmcoKSk7Ci0gICAgICAgICAgICB9CiAgICAg ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAo= ------=_Part_1901_11328513.1214416985847--