diff for duplicates of <1494434821.4764.1.camel@primarydata.com> diff --git a/a/1.txt b/N1/1.txt index 532b593..0ea1e9a 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,187 +1,226 @@ -SGkgTGludXMsDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5jZSBjb21taXQgNGY3ZDAyOWI5 -YmYwMDlmYmVlNzZiYjEwYzBjNDM1MWExODcwZDJmMzoNCg0KICBMaW51eCA0LjExLXJjNyAoMjAx -Ny0wNC0xNiAxMzowMDoxOCAtMDcwMCkNCg0KYXJlIGF2YWlsYWJsZSBpbiB0aGUgZ2l0IHJlcG9z -aXRvcnkgYXQ6DQoNCiAgZ2l0Oi8vZ2l0LmxpbnV4LW5mcy5vcmcvcHJvamVjdHMvdHJvbmRteS9s -aW51eC1uZnMuZ2l0IHRhZ3MvbmZzLWZvci00LjEyLTENCg0KZm9yIHlvdSB0byBmZXRjaCBjaGFu -Z2VzIHVwIHRvIDc2YjJhMzAzMzg0ZTFkNjI5OWMzYTAyNDlmMGYwY2UyZjhmOTYwMTc6DQoNCiAg -cE5GUy9mbGV4ZmlsZXM6IEFsd2F5cyBhdHRlbXB0IHRvIGNhbGwgbGF5b3V0c3RhdHMgd2hlbiBm -bGV4ZmlsZXMgaXMgZW5hYmxlZCAoMjAxNy0wNS0wOSAxNjowMjo1NyAtMDQwMCkNCg0KLS0tLS0t -LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t -LQ0KTkZTIGNsaWVudCB1cGRhdGVzIGZvciBMaW51eCA0LjEyDQoNCkhpZ2hsaWdodHMgaW5jbHVk -ZToNCg0KU3RhYmxlIGJ1Z2ZpeGVzOg0KLSBGaXggdXNlIGFmdGVyIGZyZWUgaW4gd3JpdGUgZXJy -b3IgcGF0aA0KLSBVc2UgR0ZQX05PSU8gZm9yIHR3byBhbGxvY2F0aW9ucyBpbiB3cml0ZWJhY2sN -Ci0gRml4IGEgaGFuZyBpbiBPUEVOIHJlbGF0ZWQgdG8gc2VydmVyIHJlYm9vdA0KLSBDaGVjayB0 -aGUgcmVzdWx0IG9mIG5mczRfcG5mc19kc19jb25uZWN0DQotIEZpeCBhbiByY3UgbG9jayBsZWFr -DQoNCkZlYXR1cmVzOg0KLSBSZW1vdmFsIG9mIHRoZSB1bm1haW50YWluZWQgYW5kIHVudXNlZCBP -U0QgcE5GUyBsYXlvdXQNCi0gQ2xlYW51cCBhbmQgcmVtb3ZhbCBvZiBsb3RzIG9mIHVubmVjZXNz -YXJ5IGRwcmludGsoKXMNCi0gQ2xlYW51cCBhbmQgcmVtb3ZhbCBvZiBzb21lIG1lbW9yeSBmYWls -dXJlIHBhdGhzIG5vdyB0aGF0DQogIEdGUF9OT0ZTIGlzIGd1YXJhbnRlZWQgdG8gbmV2ZXIgZmFp -bC4NCi0gUmVtb3ZlIHRoZSB2My1vbmx5IGRhdGEgc2VydmVyIGxpbWl0YXRpb24gb24gcE5GUy9m -bGV4ZmlsZXMNCg0KQnVnZml4ZXM6DQotIFJQQy9SRE1BIGNvbm5lY3Rpb24gaGFuZGxpbmcgYnVn -Zml4ZXMNCi0gQ29weSBvZmZsb2FkOiBmaXhlcyB0byBlbnN1cmUgdGhlIGNvcGllZCBkYXRhIGlz -IENPTU1JVGVkIHRvIGRpc2suDQotIFJlYWRkaXI6IHN3aXRjaCBiYWNrIHRvIHVzaW5nIHRoZSAt -Pml0ZXJhdGUgVkZTIGludGVyZmFjZQ0KLSBGaWxlIGxvY2tpbmcgZml4ZXMgZnJvbSBCZW4gQ29k -ZGluZ3Rvbg0KLSBWYXJpb3VzIHVzZS1hZnRlci1mcmVlIGFuZCBkZWFkbG9jayBpc3N1ZXMgaW4g -cE5GUw0KLSBXcml0ZSBwYXRoIGJ1Z2ZpeGVzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t -LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkFubmEgU2NodW1ha2VyICgy -OSk6DQogICAgICBORlM6IENsZWFuIHVwIGRvX2NhbGxiYWNrX2xheW91dHJlY2FsbCgpDQogICAg -ICBORlM6IENsZWFuIHVwIG5mczRfY2FsbGJhY2tfbGF5b3V0cmVjYWxsKCkNCiAgICAgIE5GUzog -UmVtb3ZlIGV4dHJhIGRwcmludGsoKXMgZnJvbSBjYWxsYmFja19wcm9jLmMNCiAgICAgIE5GUzog -Q2xlYW4gdXAgZGVjb2RlX2dldGF0dHJfYXJncygpDQogICAgICBORlM6IENsZWFuIHVwIGRlY29k -ZV9yZWNhbGxfYXJncygpDQogICAgICBORlM6IENsZWFuIHVwIGRlY29kZV9sYXlvdXRyZWNhbGxf -YXJncygpDQogICAgICBORlM6IENsZWFuIHVwIGRlY29kZV9jYl9zZXF1ZW5jZV9hcmdzKCkNCiAg -ICAgIE5GUzogQ2xlYW4gdXAgZGVjb2RlX25vdGlmeV9sb2NrX2FyZ3MoKQ0KICAgICAgTkZTOiBD -bGVhbiB1cCBlbmNvZGVfY2Jfc2VxdWVuY2VfcmVzKCkNCiAgICAgIE5GUzogUmVtb3ZlIGV4dHJh -IGRwcmludGsoKXMgZnJvbSBjYWxsYmFja194ZHIuYw0KICAgICAgTkZTOiBDbGVhbiB1cCBuZnNf -aW5pdF9jbGllbnQoKQ0KICAgICAgTkZTOiBDbGVhbiB1cCBleHRyYSBkcHJpbnRrKClzIGluIGNs -aWVudC5jDQogICAgICBORlM6IFJlbW92ZSBuZnNfZGlyZWN0X3JlYWRwYWdlX3JlbGVhc2UoKQ0K -ICAgICAgTkZTOiBDbGVhbiB1cCBuZnNfZGlyZWN0X2NvbW1pdF9jb21wbGV0ZSgpDQogICAgICBO -RlM6IFJlbW92ZSBleHRyYSBkcHJpbnRrKClzIGZyb20gbmFtZXNwYWNlLmMNCiAgICAgIE5GUzog -Q2xlYW4gdXAgbmZzNDJfbGF5b3V0c3RhdF9kb25lKCkNCiAgICAgIE5GUzogQ2xlYW4gdXAgbmZz -NF9tYXRjaF9jbGllbnRpZHMoKQ0KICAgICAgTkZTOiBDbGVhbiB1cCBuZnM0X2NoZWNrX3NlcnZl -cm93bmVyX21pbm9yX2lkKCkNCiAgICAgIE5GUzogQ3JlYXRlIGEgY29tbW9uIG5mczRfbWF0Y2hf -Y2xpZW50KCkgZnVuY3Rpb24NCiAgICAgIE5GUzogQ2xlYW4gdXAgbmZzNF9jaGVja19zZXJ2ZXJv -d25lcl9tYWpvcl9pZCgpDQogICAgICBORlM6IENsZWFuIHVwIG5mczRfY2hlY2tfc2VydmVyX3Nj -b3BlKCkNCiAgICAgIE5GUzogQ2xlYW4gdXAgbmZzNF9zZXRfY2xpZW50KCkNCiAgICAgIE5GUzog -Q2xlYW4gdXAgbmZzNF9pbml0X3NlcnZlcigpDQogICAgICBORlM6IFJlbW92ZSBleHRyYSBkcHJp -bnRrKClzIGZyb20gbmZzNGNsaWVudC5jDQogICAgICBORlM6IENsZWFuIHVwIG5mczRfZ2V0X3Jv -b3RmaCgpDQogICAgICBORlM6IFJlbW92ZSBleHRyYSBkcHJpbnRrKClzIGZyb20gbmZzNG5hbWVz -cGFjZS5jDQogICAgICBORlM6IENsZWFuIHVwIG5mczRfcHJvY19iaW5kX29uZV9jb25uX3RvX3Nl -c3Npb24oKQ0KICAgICAgTkZTOiBDbGVhbiB1cCBfbmZzNF9wcm9jX2V4Y2hhbmdlX2lkKCkNCiAg -ICAgIE5GUzogQ2xlYW4gdXAgbmZzNF9wcm9jX2dldF9sZWFzZV90aW1lKCkNCg0KQXJ0ZW0gU2F2 -a292ICgxKToNCiAgICAgIG5mcy9maWxlbGF5b3V0OiBmaXggTlVMTCBwb2ludGVyIGRlcmVmZXJl -bmNlIGluIGZsX3BuZnNfdXBkYXRlX2xheW91dCgpDQoNCkJlbmphbWluIENvZGRpbmd0b24gKDEx -KToNCiAgICAgIE5GUzogc3dpdGNoIGJhY2sgdG8gdG8gLT5pdGVyYXRlKCkNCiAgICAgIE5GUzog -Rml4IG1pc3NpbmcgcGdfY2xlYW51cCBhZnRlciBuZnNfcGFnZWlvX2NvbmRfY29tcGxldGUoKQ0K -ICAgICAgTkZTOiBVc2UgR0ZQX05PSU8gZm9yIHR3byBhbGxvY2F0aW9ucyBpbiB3cml0ZWJhY2sN -CiAgICAgIE5GUzogbW92ZSBuZnNfcGdhcnJheV9zZXQoKSB0byBvcGVuIGNvZGUNCiAgICAgIE5G -UzogbW92ZSByd19tb2RlIHRvIG5mc19wYWdlaW9faGVhZGVyDQogICAgICBORlM0OiByZW1vdmUg -YSByZWR1bmRhbnQgbG9jayByYW5nZSBjaGVjaw0KICAgICAgTkZTOiBNb3ZlIHRoZSBmbG9jayBv -cGVuIG1vZGUgY2hlY2sgaW50byBuZnNfZmxvY2soKQ0KICAgICAgbG9ja3M6IFNldCBGTF9DTE9T -RSB3aGVuIHJlbW92aW5nIGZsb2NrIGxvY2tzIG9uIGNsb3NlKCkNCiAgICAgIE5GUzogQWRkIGFu -IGlvY291bnRlciB3YWl0IGZ1bmN0aW9uIGZvciBhc3luYyBSUEMgdGFza3MNCiAgICAgIGxvY2tk -OiBJbnRyb2R1Y2UgbmxtY2xudF9vcGVyYXRpb25zDQogICAgICBORlM6IEFsd2F5cyB3YWl0IGZv -ciBJL08gY29tcGxldGlvbiBiZWZvcmUgdW5sb2NrDQoNCkNocmlzdG9waCBIZWxsd2lnICgxKToN -CiAgICAgIG5mczogcmVtb3ZlIHRoZSBvYmpsYXlvdXQgZHJpdmVyDQoNCkNodWNrIExldmVyICgx -Myk6DQogICAgICB4cHJ0cmRtYTogQ2FuY2VsIHJlZnJlc2ggd29ya2VyIGR1cmluZyBidWZmZXIg -c2h1dGRvd24NCiAgICAgIHN1bnJwYzogRXhwb3J0IHhwcnRfZm9yY2VfZGlzY29ubmVjdCgpDQog -ICAgICB4cHJ0cmRtYTogRGV0ZWN0IHVucmVhY2hhYmxlIE5GUy9SRE1BIHNlcnZlcnMgbW9yZSBy -ZWxpYWJseQ0KICAgICAgeHBydHJkbWE6IFJlZmFjdG9yIHJwY3JkbWFfaWFfb3BlbigpDQogICAg -ICB4cHJ0cmRtYTogVXNlIHNhbWUgZGV2aWNlIHdoZW4gbWFwcGluZyBvciBzeW5jaW5nIERNQSBi -dWZmZXJzDQogICAgICB4cHJ0cmRtYTogU3VwcG9ydCB1bnBsdWdnaW5nIGFuIEhDQSBmcm9tIHVu -ZGVyIGFuIE5GUyBtb3VudA0KICAgICAgeHBydHJkbWE6IFJlZmFjdG9yIHJwY3JkbWFfZXBfY29u -bmVjdA0KICAgICAgeHBydHJkbWE6IFJlc3RvcmUgdHJhbnNwb3J0IGFmdGVyIGRldmljZSByZW1v -dmFsDQogICAgICB4cHJ0cmRtYTogUmV2ZXJ0IGNvbW1pdCBkMGYzNmM0NmRlZWENCiAgICAgIHhw -cnRyZG1hOiBBbm5vdGF0ZSByZWNlaXZlIHdvcmtxdWV1ZQ0KICAgICAgeHBydHJkbWE6IFNxdWVs -Y2ggRU5PQlVGUyB3YXJuaW5ncw0KICAgICAgc3VucnBjOiBGaXggeGRyX2luaXRfZGVjb2RlX3Bh -Z2VzKCkgZG9jdW1lbnRpbmcgY29tbWVudA0KICAgICAgeHBydHJkbWE6IFJlbW92ZSBycGNyZG1h -X2J1ZmZlcjo6cmJfcG9vbA0KDQpEYXZlIFd5c29jaGFuc2tpICgxKToNCiAgICAgIEZpeCBuZnNf -Y2xpZW50IHJlZmNvdW50aW5nIGlmIGttYWxsb2MgZmFpbHMgaW4gbmZzNF9wcm9jX2V4Y2hhbmdl -X2lkIGFuZCBuZnM0X3Byb2NfYXN5bmNfcmVuZXcNCg0KRmFiaWFuIEZyZWRlcmljayAoMSk6DQog -ICAgICBuZnM6IHVzZSBrbWFwL2t1bm1hcCBkaXJlY3RseQ0KDQpGcmVkIElzYW1hbiAoMik6DQog -ICAgICBORlM6IEZpeCB1c2UgYWZ0ZXIgZnJlZSBpbiB3cml0ZSBlcnJvciBwYXRoDQogICAgICBw -TkZTOiBGaXggTlVMTCBkZXJlZmVyZW5jZSBpbiBwbmZzX2dlbmVyaWNfYWxsb2NfZHNfY29tbWl0 -cw0KDQpIb3UgVGFvICgxKToNCiAgICAgIE5GUzogYWx3YXlzIHRyZWF0IHRoZSBpbnZvY2F0aW9u -IG9mIG5mc19nZXRhdHRyIGFzIGNhY2hlIGhpdCB3aGVuIG5vYWMgaXMgb24NCg0KTmVpbEJyb3du -ICgyKToNCiAgICAgIE5GUzogZml4IHVzYWdlIG9mIG1lbXBvb2xzLg0KICAgICAgc3VucnBjOiBk -b24ndCBjaGVjayBmb3IgZmFpbHVyZSBmcm9tIG1lbXBvb2xfYWxsb2MoKQ0KDQpPbGdhIEtvcm5p -ZXZza2FpYSAoMik6DQogICAgICBORlM0LjEgaGFuZGxlIGludGVycnVwdGVkIHNsb3QgcmV1c2Ug -ZnJvbSBFUlJfREVMQVkNCiAgICAgIE5GUyBhcHBlbmQgQ09NTUlUIGFmdGVyIHN5bmNocm9ub3Vz -IENPUFkNCg0KUGFuIEJpYW4gKDEpOg0KICAgICAgTkZTdjQ6IGNoZWNrIHJldHVybiB2YWx1ZSBv -ZiB4ZHJfaW5saW5lX2RlY29kZQ0KDQpUaWdyYW4gTWtydGNoeWFuICgxKToNCiAgICAgIG5mczog -ZmxleGZpbGVsYXlvdXQ6IHJlbW92ZSB2My1vbmx5IGRhdGEgc2VydmVyIGxpbWl0YXRpb24NCg0K -VHJvbmQgTXlrbGVidXN0ICgyNCk6DQogICAgICBORlN2NDogRml4IGEgaGFuZyBpbiBPUEVOIHJl -bGF0ZWQgdG8gc2VydmVyIHJlYm9vdA0KICAgICAgcE5GUy9mbGV4ZmlsZXM6IENoZWNrIHRoZSBy -ZXN1bHQgb2YgbmZzNF9wbmZzX2RzX2Nvbm5lY3QNCiAgICAgIHBORlM6IFJlbW92ZSB1bnVzZWQg -bGF5b3V0IGRyaXZlciBjYWxsYmFja3MNCiAgICAgIHBORlM6IFVuZXhwb3J0IHBuZnNfcHV0X2xz -ZWdfbG9ja2VkIGFuZCBfcG5mc19yZXR1cm5fbGF5b3V0DQogICAgICBwTkZTOiB1bmV4cG9ydCBu -ZnM0X3BuZnNfdjNfZHNfY29ubmVjdF91bmxvYWQNCiAgICAgIHBORlM6IEVuc3VyZSB3ZSBjaGVj -ayBsYXlvdXQgc2VnbWVudCB2YWxpZGl0eSBpbiB0aGUgcGdfaW5pdCgpIGNhbGxiYWNrDQogICAg -ICBwTkZTOiBGaXggdXNlIGFmdGVyIGZyZWUgaXNzdWVzIGluIHBuZnNfZG9fcmVhZCgpDQogICAg -ICBORlM6IERvbid0IHdyaXRlIGJhY2sgZnVydGhlciByZXF1ZXN0cyBpZiB0aGVyZSBpcyBhIHBl -bmRpbmcgd3JpdGUgZXJyb3INCiAgICAgIE5GU3YzOiBuZnMzX25sbV9hbGxvY19jYWxsIHNob3Vs -ZCBiZSBkZWNsYXJlZCBzdGF0aWMNCiAgICAgIE1lcmdlIHRhZyAnbmZzLXJkbWEtNC4xMi0xJyBv -ZiBnaXQ6Ly9naXQubGludXgtbmZzLm9yZy9wcm9qZWN0cy9hbm5hL25mcy1yZG1hDQogICAgICBO -RlM6IEFkZCBhIGZldyBtb3JlIGZhdGFsIEkvTyBlcnJvcnMgdG8gbmZzX2Vycm9yX2lzX2ZhdGFs -KCkNCiAgICAgIE5GU3Y0OiBEb24ndCBzcGVjaWFsIGNhc2UgImxhdW5kZXIiDQogICAgICBwTkZT -OiBFbnN1cmUgd2UgY2hlY2sgbGF5b3V0IHZhbGlkaXR5IGJlZm9yZSBtYXJraW5nIGl0IGZvciBy -ZXR1cm4NCiAgICAgIHBORlMvZmxleGZpbGVzOiBGaXggdXAgdGhlIGZmX2xheW91dF93cml0ZV9w -YWdlbGlzdCBmYWlsdXJlIHBhdGgNCiAgICAgIHBORlM6IERvbid0IHNlbmQgQ09NTUlUcyB0byB0 -aGUgRFNlcyBpZiB0aGUgc2VydmVyIGludmFsaWRhdGVkIG91ciBsYXlvdXQNCiAgICAgIHBORlM6 -IEVuc3VyZSB3ZSBjb21taXQgdGhlIGxheW91dCBpZiBpdCBoYXMgYmVlbiBpbnZhbGlkYXRlZA0K -ICAgICAgcE5GUzogRG9uJ3QgY2xlYXIgdGhlIGxheW91dCByZXR1cm4gaW5mbyBpZiB0aGVyZSBh -cmUgc2VnbWVudHMgdG8gcmV0dXJuDQogICAgICBwTkZTOiBGaXggYSBkZWFkbG9jayB3aGVuIGNv -YWxlc2Npbmcgd3JpdGVzIGFuZCByZXR1cm5pbmcgdGhlIGxheW91dA0KICAgICAgcE5GUzogRml4 -IGEgdHlwbyBpbiBwbmZzX2dlbmVyaWNfYWxsb2NfZHNfY29tbWl0cw0KICAgICAgTkZTdjQuMTog -UkVDTEFJTV9DT01QTEVURSBtdXN0IGhhbmRsZSBORlM0RVJSX0NPTk5fTk9UX0JPVU5EX1RPX1NF -U1NJT04NCiAgICAgIE5GU3Y0OiBGaXggYW4gcmN1IGxvY2sgbGVhaw0KICAgICAgTkZTdjQ6IEZp -eCBleGNsdXNpdmUgY3JlYXRlIGF0dHJpYnV0ZXMgZW5jb2RpbmcNCiAgICAgIE5GU3Y0LjE6IFdv -cmsgYXJvdW5kIGEgTGludXggc2VydmVyIGJ1Zy4uLg0KICAgICAgcE5GUy9mbGV4ZmlsZXM6IEFs -d2F5cyBhdHRlbXB0IHRvIGNhbGwgbGF5b3V0c3RhdHMgd2hlbiBmbGV4ZmlsZXMgaXMgZW5hYmxl -ZA0KDQogRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQgfCAg -IDYgLQ0KIERvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbmZzL3BuZnMudHh0ICAgICAgICAgIHwg -IDM3IC0tDQogZnMvZnVzZS9maWxlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -fCAgIDIgKy0NCiBmcy9sb2NrZC9jbG50bG9jay5jICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICB8ICAgMSArDQogZnMvbG9ja2QvY2xudHByb2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgfCAgMjYgKy0NCiBmcy9sb2Nrcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICB8ICAgMiArLQ0KIGZzL25mcy9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgIHwgICA1IC0NCiBmcy9uZnMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICB8ICAgMSAtDQogZnMvbmZzL2NhbGxiYWNrX3Byb2MuYyAgICAgICAgICAgICAgICAg -ICAgICAgICAgfCAgNDcgKy0NCiBmcy9uZnMvY2FsbGJhY2tfeGRyLmMgICAgICAgICAgICAgICAg -ICAgICAgICAgICB8IDEwOSArLS0tDQogZnMvbmZzL2NsaWVudC5jICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgfCAgNjcgKy0tDQogZnMvbmZzL2Rpci5jICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgfCAxMDQgKy0tLQ0KIGZzL25mcy9kaXJlY3QuYyAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgIHwgIDIxICstDQogZnMvbmZzL2ZpbGUuYyAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKy0NCiBmcy9uZnMvZmlsZWxheW91dC9maWxl -bGF5b3V0LmMgICAgICAgICAgICAgICAgICB8ICAgOCArLQ0KIGZzL25mcy9mbGV4ZmlsZWxheW91 -dC9mbGV4ZmlsZWxheW91dC5jICAgICAgICAgIHwgIDI0ICstDQogZnMvbmZzL2ZsZXhmaWxlbGF5 -b3V0L2ZsZXhmaWxlbGF5b3V0ZGV2LmMgICAgICAgfCAgMTAgKy0NCiBmcy9uZnMvaW5vZGUuYyAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQ0KIGZzL25mcy9pbnRlcm5h -bC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstDQogZnMvbmZzL25hbWVz -cGFjZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzQgKy0NCiBmcy9uZnMvbmZz -M3Byb2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1NCArLQ0KIGZzL25mcy9u -ZnM0MnByb2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICstDQogZnMvbmZz -L25mczQyeGRyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKy0NCiBmcy9u -ZnMvbmZzNGNsaWVudC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4MyArKystLS0t -LS0tDQogZnMvbmZzL25mczRnZXRyb290LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg -IDMgLQ0KIGZzL25mcy9uZnM0bmFtZXNwYWNlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwg -ICA3ICstDQogZnMvbmZzL25mczRwcm9jLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -fCAgOTkgKystLQ0KIGZzL25mcy9uZnM0c3RhdGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIHwgIDEwICstDQogZnMvbmZzL25mczR4ZHIuYyAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgfCAgOTQgKystLQ0KIGZzL25mcy9vYmpsYXlvdXQvS2J1aWxkICAgICAgICAgICAgICAg -ICAgICAgICAgIHwgICA1IC0NCiBmcy9uZnMvb2JqbGF5b3V0L29iamlvX29zZC5jICAgICAgICAg -ICAgICAgICAgICB8IDY3NSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogZnMvbmZzL29iamxheW91 -dC9vYmpsYXlvdXQuYyAgICAgICAgICAgICAgICAgICAgfCA3MDYgLS0tLS0tLS0tLS0tLS0tLS0t -LS0tLS0tDQogZnMvbmZzL29iamxheW91dC9vYmpsYXlvdXQuaCAgICAgICAgICAgICAgICAgICAg -fCAxODMgLS0tLS0tDQogZnMvbmZzL29iamxheW91dC9wbmZzX29zZF94ZHJfY2xpLmMgICAgICAg -ICAgICAgfCA0MTUgLS0tLS0tLS0tLS0tLS0NCiBmcy9uZnMvcGFnZWxpc3QuYyAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICB8ICA3NyArKy0NCiBmcy9uZnMvcG5mcy5jICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICB8ICA2MiArKy0NCiBmcy9uZnMvcG5mcy5oICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQ0KIGZzL25mcy9wbmZzX25mcy5jICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICstDQogZnMvbmZzL3Byb2MuYyAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBmcy9uZnMvcmVhZC5jICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArLQ0KIGZzL25mcy93cml0ZS5j -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIxICsrLS0NCiBpbmNsdWRlL2xp -bnV4L2ZzLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQogaW5jbHVkZS9s -aW51eC9sb2NrZC9iaW5kLmggICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKy0NCiBpbmNsdWRl -L2xpbnV4L2xvY2tkL2xvY2tkLmggICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQogaW5jbHVk -ZS9saW51eC9uZnNfZnMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTcgKy0NCiBpbmNs -dWRlL2xpbnV4L25mc19mc19zYi5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQogaW5j -bHVkZS9saW51eC9uZnNfcGFnZS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0NCiBp -bmNsdWRlL2xpbnV4L25mc194ZHIuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArDQog -bmV0L3N1bnJwYy9jbG50LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggLQ0K -IG5ldC9zdW5ycGMvc2NoZWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1IC0N -CiBuZXQvc3VucnBjL3hkci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr -LQ0KIG5ldC9zdW5ycGMveHBydC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx -ICsNCiBuZXQvc3VucnBjL3hwcnRyZG1hL3JwY19yZG1hLmMgICAgICAgICAgICAgICAgICB8ICAx -MiArLQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvdHJhbnNwb3J0LmMgICAgICAgICAgICAgICAgIHwg -IDU3ICstDQogbmV0L3N1bnJwYy94cHJ0cmRtYS92ZXJicy5jICAgICAgICAgICAgICAgICAgICAg -fCAzMjMgKysrKysrKy0tLS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3hwcnRfcmRtYS5oICAgICAg -ICAgICAgICAgICB8ICAyMiArLQ0KIDU2IGZpbGVzIGNoYW5nZWQsIDk0OSBpbnNlcnRpb25zKCsp -LCAyOTYwIGRlbGV0aW9ucygtKQ0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBmcy9uZnMvb2JqbGF5b3V0 -L0tidWlsZA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBmcy9uZnMvb2JqbGF5b3V0L29iamlvX29zZC5j -DQogZGVsZXRlIG1vZGUgMTAwNjQ0IGZzL25mcy9vYmpsYXlvdXQvb2JqbGF5b3V0LmMNCiBkZWxl -dGUgbW9kZSAxMDA2NDQgZnMvbmZzL29iamxheW91dC9vYmpsYXlvdXQuaA0KIGRlbGV0ZSBtb2Rl -IDEwMDY0NCBmcy9uZnMvb2JqbGF5b3V0L3BuZnNfb3NkX3hkcl9jbGkuYw0KLS0gDQpUcm9uZCBN -eWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lciwgUHJpbWFyeURhdGENCnRyb25k -Lm15a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg== +Hi Linus, + +The following changes since commit 4f7d029b9bf009fbee76bb10c0c4351a1870d2f3: + + Linux 4.11-rc7 (2017-04-16 13:00:18 -0700) + +are available in the git repository at: + + git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.12-1 + +for you to fetch changes up to 76b2a303384e1d6299c3a0249f0f0ce2f8f96017: + + pNFS/flexfiles: Always attempt to call layoutstats when flexfiles is enabled (2017-05-09 16:02:57 -0400) + +---------------------------------------------------------------- +NFS client updates for Linux 4.12 + +Highlights include: + +Stable bugfixes: +- Fix use after free in write error path +- Use GFP_NOIO for two allocations in writeback +- Fix a hang in OPEN related to server reboot +- Check the result of nfs4_pnfs_ds_connect +- Fix an rcu lock leak + +Features: +- Removal of the unmaintained and unused OSD pNFS layout +- Cleanup and removal of lots of unnecessary dprintk()s +- Cleanup and removal of some memory failure paths now that + GFP_NOFS is guaranteed to never fail. +- Remove the v3-only data server limitation on pNFS/flexfiles + +Bugfixes: +- RPC/RDMA connection handling bugfixes +- Copy offload: fixes to ensure the copied data is COMMITed to disk. +- Readdir: switch back to using the ->iterate VFS interface +- File locking fixes from Ben Coddington +- Various use-after-free and deadlock issues in pNFS +- Write path bugfixes + +---------------------------------------------------------------- +Anna Schumaker (29): + NFS: Clean up do_callback_layoutrecall() + NFS: Clean up nfs4_callback_layoutrecall() + NFS: Remove extra dprintk()s from callback_proc.c + NFS: Clean up decode_getattr_args() + NFS: Clean up decode_recall_args() + NFS: Clean up decode_layoutrecall_args() + NFS: Clean up decode_cb_sequence_args() + NFS: Clean up decode_notify_lock_args() + NFS: Clean up encode_cb_sequence_res() + NFS: Remove extra dprintk()s from callback_xdr.c + NFS: Clean up nfs_init_client() + NFS: Clean up extra dprintk()s in client.c + NFS: Remove nfs_direct_readpage_release() + NFS: Clean up nfs_direct_commit_complete() + NFS: Remove extra dprintk()s from namespace.c + NFS: Clean up nfs42_layoutstat_done() + NFS: Clean up nfs4_match_clientids() + NFS: Clean up nfs4_check_serverowner_minor_id() + NFS: Create a common nfs4_match_client() function + NFS: Clean up nfs4_check_serverowner_major_id() + NFS: Clean up nfs4_check_server_scope() + NFS: Clean up nfs4_set_client() + NFS: Clean up nfs4_init_server() + NFS: Remove extra dprintk()s from nfs4client.c + NFS: Clean up nfs4_get_rootfh() + NFS: Remove extra dprintk()s from nfs4namespace.c + NFS: Clean up nfs4_proc_bind_one_conn_to_session() + NFS: Clean up _nfs4_proc_exchange_id() + NFS: Clean up nfs4_proc_get_lease_time() + +Artem Savkov (1): + nfs/filelayout: fix NULL pointer dereference in fl_pnfs_update_layout() + +Benjamin Coddington (11): + NFS: switch back to to ->iterate() + NFS: Fix missing pg_cleanup after nfs_pageio_cond_complete() + NFS: Use GFP_NOIO for two allocations in writeback + NFS: move nfs_pgarray_set() to open code + NFS: move rw_mode to nfs_pageio_header + NFS4: remove a redundant lock range check + NFS: Move the flock open mode check into nfs_flock() + locks: Set FL_CLOSE when removing flock locks on close() + NFS: Add an iocounter wait function for async RPC tasks + lockd: Introduce nlmclnt_operations + NFS: Always wait for I/O completion before unlock + +Christoph Hellwig (1): + nfs: remove the objlayout driver + +Chuck Lever (13): + xprtrdma: Cancel refresh worker during buffer shutdown + sunrpc: Export xprt_force_disconnect() + xprtrdma: Detect unreachable NFS/RDMA servers more reliably + xprtrdma: Refactor rpcrdma_ia_open() + xprtrdma: Use same device when mapping or syncing DMA buffers + xprtrdma: Support unplugging an HCA from under an NFS mount + xprtrdma: Refactor rpcrdma_ep_connect + xprtrdma: Restore transport after device removal + xprtrdma: Revert commit d0f36c46deea + xprtrdma: Annotate receive workqueue + xprtrdma: Squelch ENOBUFS warnings + sunrpc: Fix xdr_init_decode_pages() documenting comment + xprtrdma: Remove rpcrdma_buffer::rb_pool + +Dave Wysochanski (1): + Fix nfs_client refcounting if kmalloc fails in nfs4_proc_exchange_id and nfs4_proc_async_renew + +Fabian Frederick (1): + nfs: use kmap/kunmap directly + +Fred Isaman (2): + NFS: Fix use after free in write error path + pNFS: Fix NULL dereference in pnfs_generic_alloc_ds_commits + +Hou Tao (1): + NFS: always treat the invocation of nfs_getattr as cache hit when noac is on + +NeilBrown (2): + NFS: fix usage of mempools. + sunrpc: don't check for failure from mempool_alloc() + +Olga Kornievskaia (2): + NFS4.1 handle interrupted slot reuse from ERR_DELAY + NFS append COMMIT after synchronous COPY + +Pan Bian (1): + NFSv4: check return value of xdr_inline_decode + +Tigran Mkrtchyan (1): + nfs: flexfilelayout: remove v3-only data server limitation + +Trond Myklebust (24): + NFSv4: Fix a hang in OPEN related to server reboot + pNFS/flexfiles: Check the result of nfs4_pnfs_ds_connect + pNFS: Remove unused layout driver callbacks + pNFS: Unexport pnfs_put_lseg_locked and _pnfs_return_layout + pNFS: unexport nfs4_pnfs_v3_ds_connect_unload + pNFS: Ensure we check layout segment validity in the pg_init() callback + pNFS: Fix use after free issues in pnfs_do_read() + NFS: Don't write back further requests if there is a pending write error + NFSv3: nfs3_nlm_alloc_call should be declared static + Merge tag 'nfs-rdma-4.12-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma + NFS: Add a few more fatal I/O errors to nfs_error_is_fatal() + NFSv4: Don't special case "launder" + pNFS: Ensure we check layout validity before marking it for return + pNFS/flexfiles: Fix up the ff_layout_write_pagelist failure path + pNFS: Don't send COMMITs to the DSes if the server invalidated our layout + pNFS: Ensure we commit the layout if it has been invalidated + pNFS: Don't clear the layout return info if there are segments to return + pNFS: Fix a deadlock when coalescing writes and returning the layout + pNFS: Fix a typo in pnfs_generic_alloc_ds_commits + NFSv4.1: RECLAIM_COMPLETE must handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION + NFSv4: Fix an rcu lock leak + NFSv4: Fix exclusive create attributes encoding + NFSv4.1: Work around a Linux server bug... + pNFS/flexfiles: Always attempt to call layoutstats when flexfiles is enabled + + Documentation/admin-guide/kernel-parameters.txt | 6 - + Documentation/filesystems/nfs/pnfs.txt | 37 -- + fs/fuse/file.c | 2 +- + fs/lockd/clntlock.c | 1 + + fs/lockd/clntproc.c | 26 +- + fs/locks.c | 2 +- + fs/nfs/Kconfig | 5 - + fs/nfs/Makefile | 1 - + fs/nfs/callback_proc.c | 47 +- + fs/nfs/callback_xdr.c | 109 +--- + fs/nfs/client.c | 67 +-- + fs/nfs/dir.c | 104 +--- + fs/nfs/direct.c | 21 +- + fs/nfs/file.c | 30 +- + fs/nfs/filelayout/filelayout.c | 8 +- + fs/nfs/flexfilelayout/flexfilelayout.c | 24 +- + fs/nfs/flexfilelayout/flexfilelayoutdev.c | 10 +- + fs/nfs/inode.c | 5 +- + fs/nfs/internal.h | 5 +- + fs/nfs/namespace.c | 34 +- + fs/nfs/nfs3proc.c | 54 +- + fs/nfs/nfs42proc.c | 24 +- + fs/nfs/nfs42xdr.c | 22 +- + fs/nfs/nfs4client.c | 283 +++------- + fs/nfs/nfs4getroot.c | 3 - + fs/nfs/nfs4namespace.c | 7 +- + fs/nfs/nfs4proc.c | 99 ++-- + fs/nfs/nfs4state.c | 10 +- + fs/nfs/nfs4xdr.c | 94 ++-- + fs/nfs/objlayout/Kbuild | 5 - + fs/nfs/objlayout/objio_osd.c | 675 ---------------------- + fs/nfs/objlayout/objlayout.c | 706 ------------------------ + fs/nfs/objlayout/objlayout.h | 183 ------ + fs/nfs/objlayout/pnfs_osd_xdr_cli.c | 415 -------------- + fs/nfs/pagelist.c | 77 ++- + fs/nfs/pnfs.c | 62 ++- + fs/nfs/pnfs.h | 6 +- + fs/nfs/pnfs_nfs.c | 24 +- + fs/nfs/proc.c | 2 +- + fs/nfs/read.c | 9 +- + fs/nfs/write.c | 121 ++-- + include/linux/fs.h | 2 + + include/linux/lockd/bind.h | 24 +- + include/linux/lockd/lockd.h | 2 + + include/linux/nfs_fs.h | 17 +- + include/linux/nfs_fs_sb.h | 1 + + include/linux/nfs_page.h | 5 +- + include/linux/nfs_xdr.h | 3 + + net/sunrpc/clnt.c | 8 - + net/sunrpc/sched.c | 5 - + net/sunrpc/xdr.c | 2 +- + net/sunrpc/xprt.c | 1 + + net/sunrpc/xprtrdma/rpc_rdma.c | 12 +- + net/sunrpc/xprtrdma/transport.c | 57 +- + net/sunrpc/xprtrdma/verbs.c | 323 +++++++---- + net/sunrpc/xprtrdma/xprt_rdma.h | 22 +- + 56 files changed, 949 insertions(+), 2960 deletions(-) + delete mode 100644 fs/nfs/objlayout/Kbuild + delete mode 100644 fs/nfs/objlayout/objio_osd.c + delete mode 100644 fs/nfs/objlayout/objlayout.c + delete mode 100644 fs/nfs/objlayout/objlayout.h + delete mode 100644 fs/nfs/objlayout/pnfs_osd_xdr_cli.c +-- +Trond Myklebust +Linux NFS client maintainer, PrimaryData +trond.myklebust@primarydata.com diff --git a/a/content_digest b/N1/content_digest index 7fd982e..3008a14 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -6,192 +6,231 @@ " linux-nfs@vger.kernel.org <linux-nfs@vger.kernel.org>\0" "\00:1\0" "b\0" - "SGkgTGludXMsDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5jZSBjb21taXQgNGY3ZDAyOWI5\n" - "YmYwMDlmYmVlNzZiYjEwYzBjNDM1MWExODcwZDJmMzoNCg0KICBMaW51eCA0LjExLXJjNyAoMjAx\n" - "Ny0wNC0xNiAxMzowMDoxOCAtMDcwMCkNCg0KYXJlIGF2YWlsYWJsZSBpbiB0aGUgZ2l0IHJlcG9z\n" - "aXRvcnkgYXQ6DQoNCiAgZ2l0Oi8vZ2l0LmxpbnV4LW5mcy5vcmcvcHJvamVjdHMvdHJvbmRteS9s\n" - "aW51eC1uZnMuZ2l0IHRhZ3MvbmZzLWZvci00LjEyLTENCg0KZm9yIHlvdSB0byBmZXRjaCBjaGFu\n" - "Z2VzIHVwIHRvIDc2YjJhMzAzMzg0ZTFkNjI5OWMzYTAyNDlmMGYwY2UyZjhmOTYwMTc6DQoNCiAg\n" - "cE5GUy9mbGV4ZmlsZXM6IEFsd2F5cyBhdHRlbXB0IHRvIGNhbGwgbGF5b3V0c3RhdHMgd2hlbiBm\n" - "bGV4ZmlsZXMgaXMgZW5hYmxlZCAoMjAxNy0wNS0wOSAxNjowMjo1NyAtMDQwMCkNCg0KLS0tLS0t\n" - "LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\n" - "LQ0KTkZTIGNsaWVudCB1cGRhdGVzIGZvciBMaW51eCA0LjEyDQoNCkhpZ2hsaWdodHMgaW5jbHVk\n" - "ZToNCg0KU3RhYmxlIGJ1Z2ZpeGVzOg0KLSBGaXggdXNlIGFmdGVyIGZyZWUgaW4gd3JpdGUgZXJy\n" - "b3IgcGF0aA0KLSBVc2UgR0ZQX05PSU8gZm9yIHR3byBhbGxvY2F0aW9ucyBpbiB3cml0ZWJhY2sN\n" - "Ci0gRml4IGEgaGFuZyBpbiBPUEVOIHJlbGF0ZWQgdG8gc2VydmVyIHJlYm9vdA0KLSBDaGVjayB0\n" - "aGUgcmVzdWx0IG9mIG5mczRfcG5mc19kc19jb25uZWN0DQotIEZpeCBhbiByY3UgbG9jayBsZWFr\n" - "DQoNCkZlYXR1cmVzOg0KLSBSZW1vdmFsIG9mIHRoZSB1bm1haW50YWluZWQgYW5kIHVudXNlZCBP\n" - "U0QgcE5GUyBsYXlvdXQNCi0gQ2xlYW51cCBhbmQgcmVtb3ZhbCBvZiBsb3RzIG9mIHVubmVjZXNz\n" - "YXJ5IGRwcmludGsoKXMNCi0gQ2xlYW51cCBhbmQgcmVtb3ZhbCBvZiBzb21lIG1lbW9yeSBmYWls\n" - "dXJlIHBhdGhzIG5vdyB0aGF0DQogIEdGUF9OT0ZTIGlzIGd1YXJhbnRlZWQgdG8gbmV2ZXIgZmFp\n" - "bC4NCi0gUmVtb3ZlIHRoZSB2My1vbmx5IGRhdGEgc2VydmVyIGxpbWl0YXRpb24gb24gcE5GUy9m\n" - "bGV4ZmlsZXMNCg0KQnVnZml4ZXM6DQotIFJQQy9SRE1BIGNvbm5lY3Rpb24gaGFuZGxpbmcgYnVn\n" - "Zml4ZXMNCi0gQ29weSBvZmZsb2FkOiBmaXhlcyB0byBlbnN1cmUgdGhlIGNvcGllZCBkYXRhIGlz\n" - "IENPTU1JVGVkIHRvIGRpc2suDQotIFJlYWRkaXI6IHN3aXRjaCBiYWNrIHRvIHVzaW5nIHRoZSAt\n" - "Pml0ZXJhdGUgVkZTIGludGVyZmFjZQ0KLSBGaWxlIGxvY2tpbmcgZml4ZXMgZnJvbSBCZW4gQ29k\n" - "ZGluZ3Rvbg0KLSBWYXJpb3VzIHVzZS1hZnRlci1mcmVlIGFuZCBkZWFkbG9jayBpc3N1ZXMgaW4g\n" - "cE5GUw0KLSBXcml0ZSBwYXRoIGJ1Z2ZpeGVzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\n" - "LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkFubmEgU2NodW1ha2VyICgy\n" - "OSk6DQogICAgICBORlM6IENsZWFuIHVwIGRvX2NhbGxiYWNrX2xheW91dHJlY2FsbCgpDQogICAg\n" - "ICBORlM6IENsZWFuIHVwIG5mczRfY2FsbGJhY2tfbGF5b3V0cmVjYWxsKCkNCiAgICAgIE5GUzog\n" - "UmVtb3ZlIGV4dHJhIGRwcmludGsoKXMgZnJvbSBjYWxsYmFja19wcm9jLmMNCiAgICAgIE5GUzog\n" - "Q2xlYW4gdXAgZGVjb2RlX2dldGF0dHJfYXJncygpDQogICAgICBORlM6IENsZWFuIHVwIGRlY29k\n" - "ZV9yZWNhbGxfYXJncygpDQogICAgICBORlM6IENsZWFuIHVwIGRlY29kZV9sYXlvdXRyZWNhbGxf\n" - "YXJncygpDQogICAgICBORlM6IENsZWFuIHVwIGRlY29kZV9jYl9zZXF1ZW5jZV9hcmdzKCkNCiAg\n" - "ICAgIE5GUzogQ2xlYW4gdXAgZGVjb2RlX25vdGlmeV9sb2NrX2FyZ3MoKQ0KICAgICAgTkZTOiBD\n" - "bGVhbiB1cCBlbmNvZGVfY2Jfc2VxdWVuY2VfcmVzKCkNCiAgICAgIE5GUzogUmVtb3ZlIGV4dHJh\n" - "IGRwcmludGsoKXMgZnJvbSBjYWxsYmFja194ZHIuYw0KICAgICAgTkZTOiBDbGVhbiB1cCBuZnNf\n" - "aW5pdF9jbGllbnQoKQ0KICAgICAgTkZTOiBDbGVhbiB1cCBleHRyYSBkcHJpbnRrKClzIGluIGNs\n" - "aWVudC5jDQogICAgICBORlM6IFJlbW92ZSBuZnNfZGlyZWN0X3JlYWRwYWdlX3JlbGVhc2UoKQ0K\n" - "ICAgICAgTkZTOiBDbGVhbiB1cCBuZnNfZGlyZWN0X2NvbW1pdF9jb21wbGV0ZSgpDQogICAgICBO\n" - "RlM6IFJlbW92ZSBleHRyYSBkcHJpbnRrKClzIGZyb20gbmFtZXNwYWNlLmMNCiAgICAgIE5GUzog\n" - "Q2xlYW4gdXAgbmZzNDJfbGF5b3V0c3RhdF9kb25lKCkNCiAgICAgIE5GUzogQ2xlYW4gdXAgbmZz\n" - "NF9tYXRjaF9jbGllbnRpZHMoKQ0KICAgICAgTkZTOiBDbGVhbiB1cCBuZnM0X2NoZWNrX3NlcnZl\n" - "cm93bmVyX21pbm9yX2lkKCkNCiAgICAgIE5GUzogQ3JlYXRlIGEgY29tbW9uIG5mczRfbWF0Y2hf\n" - "Y2xpZW50KCkgZnVuY3Rpb24NCiAgICAgIE5GUzogQ2xlYW4gdXAgbmZzNF9jaGVja19zZXJ2ZXJv\n" - "d25lcl9tYWpvcl9pZCgpDQogICAgICBORlM6IENsZWFuIHVwIG5mczRfY2hlY2tfc2VydmVyX3Nj\n" - "b3BlKCkNCiAgICAgIE5GUzogQ2xlYW4gdXAgbmZzNF9zZXRfY2xpZW50KCkNCiAgICAgIE5GUzog\n" - "Q2xlYW4gdXAgbmZzNF9pbml0X3NlcnZlcigpDQogICAgICBORlM6IFJlbW92ZSBleHRyYSBkcHJp\n" - "bnRrKClzIGZyb20gbmZzNGNsaWVudC5jDQogICAgICBORlM6IENsZWFuIHVwIG5mczRfZ2V0X3Jv\n" - "b3RmaCgpDQogICAgICBORlM6IFJlbW92ZSBleHRyYSBkcHJpbnRrKClzIGZyb20gbmZzNG5hbWVz\n" - "cGFjZS5jDQogICAgICBORlM6IENsZWFuIHVwIG5mczRfcHJvY19iaW5kX29uZV9jb25uX3RvX3Nl\n" - "c3Npb24oKQ0KICAgICAgTkZTOiBDbGVhbiB1cCBfbmZzNF9wcm9jX2V4Y2hhbmdlX2lkKCkNCiAg\n" - "ICAgIE5GUzogQ2xlYW4gdXAgbmZzNF9wcm9jX2dldF9sZWFzZV90aW1lKCkNCg0KQXJ0ZW0gU2F2\n" - "a292ICgxKToNCiAgICAgIG5mcy9maWxlbGF5b3V0OiBmaXggTlVMTCBwb2ludGVyIGRlcmVmZXJl\n" - "bmNlIGluIGZsX3BuZnNfdXBkYXRlX2xheW91dCgpDQoNCkJlbmphbWluIENvZGRpbmd0b24gKDEx\n" - "KToNCiAgICAgIE5GUzogc3dpdGNoIGJhY2sgdG8gdG8gLT5pdGVyYXRlKCkNCiAgICAgIE5GUzog\n" - "Rml4IG1pc3NpbmcgcGdfY2xlYW51cCBhZnRlciBuZnNfcGFnZWlvX2NvbmRfY29tcGxldGUoKQ0K\n" - "ICAgICAgTkZTOiBVc2UgR0ZQX05PSU8gZm9yIHR3byBhbGxvY2F0aW9ucyBpbiB3cml0ZWJhY2sN\n" - "CiAgICAgIE5GUzogbW92ZSBuZnNfcGdhcnJheV9zZXQoKSB0byBvcGVuIGNvZGUNCiAgICAgIE5G\n" - "UzogbW92ZSByd19tb2RlIHRvIG5mc19wYWdlaW9faGVhZGVyDQogICAgICBORlM0OiByZW1vdmUg\n" - "YSByZWR1bmRhbnQgbG9jayByYW5nZSBjaGVjaw0KICAgICAgTkZTOiBNb3ZlIHRoZSBmbG9jayBv\n" - "cGVuIG1vZGUgY2hlY2sgaW50byBuZnNfZmxvY2soKQ0KICAgICAgbG9ja3M6IFNldCBGTF9DTE9T\n" - "RSB3aGVuIHJlbW92aW5nIGZsb2NrIGxvY2tzIG9uIGNsb3NlKCkNCiAgICAgIE5GUzogQWRkIGFu\n" - "IGlvY291bnRlciB3YWl0IGZ1bmN0aW9uIGZvciBhc3luYyBSUEMgdGFza3MNCiAgICAgIGxvY2tk\n" - "OiBJbnRyb2R1Y2UgbmxtY2xudF9vcGVyYXRpb25zDQogICAgICBORlM6IEFsd2F5cyB3YWl0IGZv\n" - "ciBJL08gY29tcGxldGlvbiBiZWZvcmUgdW5sb2NrDQoNCkNocmlzdG9waCBIZWxsd2lnICgxKToN\n" - "CiAgICAgIG5mczogcmVtb3ZlIHRoZSBvYmpsYXlvdXQgZHJpdmVyDQoNCkNodWNrIExldmVyICgx\n" - "Myk6DQogICAgICB4cHJ0cmRtYTogQ2FuY2VsIHJlZnJlc2ggd29ya2VyIGR1cmluZyBidWZmZXIg\n" - "c2h1dGRvd24NCiAgICAgIHN1bnJwYzogRXhwb3J0IHhwcnRfZm9yY2VfZGlzY29ubmVjdCgpDQog\n" - "ICAgICB4cHJ0cmRtYTogRGV0ZWN0IHVucmVhY2hhYmxlIE5GUy9SRE1BIHNlcnZlcnMgbW9yZSBy\n" - "ZWxpYWJseQ0KICAgICAgeHBydHJkbWE6IFJlZmFjdG9yIHJwY3JkbWFfaWFfb3BlbigpDQogICAg\n" - "ICB4cHJ0cmRtYTogVXNlIHNhbWUgZGV2aWNlIHdoZW4gbWFwcGluZyBvciBzeW5jaW5nIERNQSBi\n" - "dWZmZXJzDQogICAgICB4cHJ0cmRtYTogU3VwcG9ydCB1bnBsdWdnaW5nIGFuIEhDQSBmcm9tIHVu\n" - "ZGVyIGFuIE5GUyBtb3VudA0KICAgICAgeHBydHJkbWE6IFJlZmFjdG9yIHJwY3JkbWFfZXBfY29u\n" - "bmVjdA0KICAgICAgeHBydHJkbWE6IFJlc3RvcmUgdHJhbnNwb3J0IGFmdGVyIGRldmljZSByZW1v\n" - "dmFsDQogICAgICB4cHJ0cmRtYTogUmV2ZXJ0IGNvbW1pdCBkMGYzNmM0NmRlZWENCiAgICAgIHhw\n" - "cnRyZG1hOiBBbm5vdGF0ZSByZWNlaXZlIHdvcmtxdWV1ZQ0KICAgICAgeHBydHJkbWE6IFNxdWVs\n" - "Y2ggRU5PQlVGUyB3YXJuaW5ncw0KICAgICAgc3VucnBjOiBGaXggeGRyX2luaXRfZGVjb2RlX3Bh\n" - "Z2VzKCkgZG9jdW1lbnRpbmcgY29tbWVudA0KICAgICAgeHBydHJkbWE6IFJlbW92ZSBycGNyZG1h\n" - "X2J1ZmZlcjo6cmJfcG9vbA0KDQpEYXZlIFd5c29jaGFuc2tpICgxKToNCiAgICAgIEZpeCBuZnNf\n" - "Y2xpZW50IHJlZmNvdW50aW5nIGlmIGttYWxsb2MgZmFpbHMgaW4gbmZzNF9wcm9jX2V4Y2hhbmdl\n" - "X2lkIGFuZCBuZnM0X3Byb2NfYXN5bmNfcmVuZXcNCg0KRmFiaWFuIEZyZWRlcmljayAoMSk6DQog\n" - "ICAgICBuZnM6IHVzZSBrbWFwL2t1bm1hcCBkaXJlY3RseQ0KDQpGcmVkIElzYW1hbiAoMik6DQog\n" - "ICAgICBORlM6IEZpeCB1c2UgYWZ0ZXIgZnJlZSBpbiB3cml0ZSBlcnJvciBwYXRoDQogICAgICBw\n" - "TkZTOiBGaXggTlVMTCBkZXJlZmVyZW5jZSBpbiBwbmZzX2dlbmVyaWNfYWxsb2NfZHNfY29tbWl0\n" - "cw0KDQpIb3UgVGFvICgxKToNCiAgICAgIE5GUzogYWx3YXlzIHRyZWF0IHRoZSBpbnZvY2F0aW9u\n" - "IG9mIG5mc19nZXRhdHRyIGFzIGNhY2hlIGhpdCB3aGVuIG5vYWMgaXMgb24NCg0KTmVpbEJyb3du\n" - "ICgyKToNCiAgICAgIE5GUzogZml4IHVzYWdlIG9mIG1lbXBvb2xzLg0KICAgICAgc3VucnBjOiBk\n" - "b24ndCBjaGVjayBmb3IgZmFpbHVyZSBmcm9tIG1lbXBvb2xfYWxsb2MoKQ0KDQpPbGdhIEtvcm5p\n" - "ZXZza2FpYSAoMik6DQogICAgICBORlM0LjEgaGFuZGxlIGludGVycnVwdGVkIHNsb3QgcmV1c2Ug\n" - "ZnJvbSBFUlJfREVMQVkNCiAgICAgIE5GUyBhcHBlbmQgQ09NTUlUIGFmdGVyIHN5bmNocm9ub3Vz\n" - "IENPUFkNCg0KUGFuIEJpYW4gKDEpOg0KICAgICAgTkZTdjQ6IGNoZWNrIHJldHVybiB2YWx1ZSBv\n" - "ZiB4ZHJfaW5saW5lX2RlY29kZQ0KDQpUaWdyYW4gTWtydGNoeWFuICgxKToNCiAgICAgIG5mczog\n" - "ZmxleGZpbGVsYXlvdXQ6IHJlbW92ZSB2My1vbmx5IGRhdGEgc2VydmVyIGxpbWl0YXRpb24NCg0K\n" - "VHJvbmQgTXlrbGVidXN0ICgyNCk6DQogICAgICBORlN2NDogRml4IGEgaGFuZyBpbiBPUEVOIHJl\n" - "bGF0ZWQgdG8gc2VydmVyIHJlYm9vdA0KICAgICAgcE5GUy9mbGV4ZmlsZXM6IENoZWNrIHRoZSBy\n" - "ZXN1bHQgb2YgbmZzNF9wbmZzX2RzX2Nvbm5lY3QNCiAgICAgIHBORlM6IFJlbW92ZSB1bnVzZWQg\n" - "bGF5b3V0IGRyaXZlciBjYWxsYmFja3MNCiAgICAgIHBORlM6IFVuZXhwb3J0IHBuZnNfcHV0X2xz\n" - "ZWdfbG9ja2VkIGFuZCBfcG5mc19yZXR1cm5fbGF5b3V0DQogICAgICBwTkZTOiB1bmV4cG9ydCBu\n" - "ZnM0X3BuZnNfdjNfZHNfY29ubmVjdF91bmxvYWQNCiAgICAgIHBORlM6IEVuc3VyZSB3ZSBjaGVj\n" - "ayBsYXlvdXQgc2VnbWVudCB2YWxpZGl0eSBpbiB0aGUgcGdfaW5pdCgpIGNhbGxiYWNrDQogICAg\n" - "ICBwTkZTOiBGaXggdXNlIGFmdGVyIGZyZWUgaXNzdWVzIGluIHBuZnNfZG9fcmVhZCgpDQogICAg\n" - "ICBORlM6IERvbid0IHdyaXRlIGJhY2sgZnVydGhlciByZXF1ZXN0cyBpZiB0aGVyZSBpcyBhIHBl\n" - "bmRpbmcgd3JpdGUgZXJyb3INCiAgICAgIE5GU3YzOiBuZnMzX25sbV9hbGxvY19jYWxsIHNob3Vs\n" - "ZCBiZSBkZWNsYXJlZCBzdGF0aWMNCiAgICAgIE1lcmdlIHRhZyAnbmZzLXJkbWEtNC4xMi0xJyBv\n" - "ZiBnaXQ6Ly9naXQubGludXgtbmZzLm9yZy9wcm9qZWN0cy9hbm5hL25mcy1yZG1hDQogICAgICBO\n" - "RlM6IEFkZCBhIGZldyBtb3JlIGZhdGFsIEkvTyBlcnJvcnMgdG8gbmZzX2Vycm9yX2lzX2ZhdGFs\n" - "KCkNCiAgICAgIE5GU3Y0OiBEb24ndCBzcGVjaWFsIGNhc2UgImxhdW5kZXIiDQogICAgICBwTkZT\n" - "OiBFbnN1cmUgd2UgY2hlY2sgbGF5b3V0IHZhbGlkaXR5IGJlZm9yZSBtYXJraW5nIGl0IGZvciBy\n" - "ZXR1cm4NCiAgICAgIHBORlMvZmxleGZpbGVzOiBGaXggdXAgdGhlIGZmX2xheW91dF93cml0ZV9w\n" - "YWdlbGlzdCBmYWlsdXJlIHBhdGgNCiAgICAgIHBORlM6IERvbid0IHNlbmQgQ09NTUlUcyB0byB0\n" - "aGUgRFNlcyBpZiB0aGUgc2VydmVyIGludmFsaWRhdGVkIG91ciBsYXlvdXQNCiAgICAgIHBORlM6\n" - "IEVuc3VyZSB3ZSBjb21taXQgdGhlIGxheW91dCBpZiBpdCBoYXMgYmVlbiBpbnZhbGlkYXRlZA0K\n" - "ICAgICAgcE5GUzogRG9uJ3QgY2xlYXIgdGhlIGxheW91dCByZXR1cm4gaW5mbyBpZiB0aGVyZSBh\n" - "cmUgc2VnbWVudHMgdG8gcmV0dXJuDQogICAgICBwTkZTOiBGaXggYSBkZWFkbG9jayB3aGVuIGNv\n" - "YWxlc2Npbmcgd3JpdGVzIGFuZCByZXR1cm5pbmcgdGhlIGxheW91dA0KICAgICAgcE5GUzogRml4\n" - "IGEgdHlwbyBpbiBwbmZzX2dlbmVyaWNfYWxsb2NfZHNfY29tbWl0cw0KICAgICAgTkZTdjQuMTog\n" - "UkVDTEFJTV9DT01QTEVURSBtdXN0IGhhbmRsZSBORlM0RVJSX0NPTk5fTk9UX0JPVU5EX1RPX1NF\n" - "U1NJT04NCiAgICAgIE5GU3Y0OiBGaXggYW4gcmN1IGxvY2sgbGVhaw0KICAgICAgTkZTdjQ6IEZp\n" - "eCBleGNsdXNpdmUgY3JlYXRlIGF0dHJpYnV0ZXMgZW5jb2RpbmcNCiAgICAgIE5GU3Y0LjE6IFdv\n" - "cmsgYXJvdW5kIGEgTGludXggc2VydmVyIGJ1Zy4uLg0KICAgICAgcE5GUy9mbGV4ZmlsZXM6IEFs\n" - "d2F5cyBhdHRlbXB0IHRvIGNhbGwgbGF5b3V0c3RhdHMgd2hlbiBmbGV4ZmlsZXMgaXMgZW5hYmxl\n" - "ZA0KDQogRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQgfCAg\n" - "IDYgLQ0KIERvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbmZzL3BuZnMudHh0ICAgICAgICAgIHwg\n" - "IDM3IC0tDQogZnMvZnVzZS9maWxlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\n" - "fCAgIDIgKy0NCiBmcy9sb2NrZC9jbG50bG9jay5jICAgICAgICAgICAgICAgICAgICAgICAgICAg\n" - "ICB8ICAgMSArDQogZnMvbG9ja2QvY2xudHByb2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAg\n" - "ICAgfCAgMjYgKy0NCiBmcy9sb2Nrcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\n" - "ICAgICB8ICAgMiArLQ0KIGZzL25mcy9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAg\n" - "ICAgICAgIHwgICA1IC0NCiBmcy9uZnMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAg\n" - "ICAgICAgICB8ICAgMSAtDQogZnMvbmZzL2NhbGxiYWNrX3Byb2MuYyAgICAgICAgICAgICAgICAg\n" - "ICAgICAgICAgfCAgNDcgKy0NCiBmcy9uZnMvY2FsbGJhY2tfeGRyLmMgICAgICAgICAgICAgICAg\n" - "ICAgICAgICAgICB8IDEwOSArLS0tDQogZnMvbmZzL2NsaWVudC5jICAgICAgICAgICAgICAgICAg\n" - "ICAgICAgICAgICAgICAgfCAgNjcgKy0tDQogZnMvbmZzL2Rpci5jICAgICAgICAgICAgICAgICAg\n" - "ICAgICAgICAgICAgICAgICAgfCAxMDQgKy0tLQ0KIGZzL25mcy9kaXJlY3QuYyAgICAgICAgICAg\n" - "ICAgICAgICAgICAgICAgICAgICAgIHwgIDIxICstDQogZnMvbmZzL2ZpbGUuYyAgICAgICAgICAg\n" - "ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKy0NCiBmcy9uZnMvZmlsZWxheW91dC9maWxl\n" - "bGF5b3V0LmMgICAgICAgICAgICAgICAgICB8ICAgOCArLQ0KIGZzL25mcy9mbGV4ZmlsZWxheW91\n" - "dC9mbGV4ZmlsZWxheW91dC5jICAgICAgICAgIHwgIDI0ICstDQogZnMvbmZzL2ZsZXhmaWxlbGF5\n" - "b3V0L2ZsZXhmaWxlbGF5b3V0ZGV2LmMgICAgICAgfCAgMTAgKy0NCiBmcy9uZnMvaW5vZGUuYyAg\n" - "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQ0KIGZzL25mcy9pbnRlcm5h\n" - "bC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstDQogZnMvbmZzL25hbWVz\n" - "cGFjZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzQgKy0NCiBmcy9uZnMvbmZz\n" - "M3Byb2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1NCArLQ0KIGZzL25mcy9u\n" - "ZnM0MnByb2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICstDQogZnMvbmZz\n" - "L25mczQyeGRyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKy0NCiBmcy9u\n" - "ZnMvbmZzNGNsaWVudC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4MyArKystLS0t\n" - "LS0tDQogZnMvbmZzL25mczRnZXRyb290LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg\n" - "IDMgLQ0KIGZzL25mcy9uZnM0bmFtZXNwYWNlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwg\n" - "ICA3ICstDQogZnMvbmZzL25mczRwcm9jLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\n" - "fCAgOTkgKystLQ0KIGZzL25mcy9uZnM0c3RhdGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAg\n" - "ICAgIHwgIDEwICstDQogZnMvbmZzL25mczR4ZHIuYyAgICAgICAgICAgICAgICAgICAgICAgICAg\n" - "ICAgICAgfCAgOTQgKystLQ0KIGZzL25mcy9vYmpsYXlvdXQvS2J1aWxkICAgICAgICAgICAgICAg\n" - "ICAgICAgICAgIHwgICA1IC0NCiBmcy9uZnMvb2JqbGF5b3V0L29iamlvX29zZC5jICAgICAgICAg\n" - "ICAgICAgICAgICB8IDY3NSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogZnMvbmZzL29iamxheW91\n" - "dC9vYmpsYXlvdXQuYyAgICAgICAgICAgICAgICAgICAgfCA3MDYgLS0tLS0tLS0tLS0tLS0tLS0t\n" - "LS0tLS0tDQogZnMvbmZzL29iamxheW91dC9vYmpsYXlvdXQuaCAgICAgICAgICAgICAgICAgICAg\n" - "fCAxODMgLS0tLS0tDQogZnMvbmZzL29iamxheW91dC9wbmZzX29zZF94ZHJfY2xpLmMgICAgICAg\n" - "ICAgICAgfCA0MTUgLS0tLS0tLS0tLS0tLS0NCiBmcy9uZnMvcGFnZWxpc3QuYyAgICAgICAgICAg\n" - "ICAgICAgICAgICAgICAgICAgICB8ICA3NyArKy0NCiBmcy9uZnMvcG5mcy5jICAgICAgICAgICAg\n" - "ICAgICAgICAgICAgICAgICAgICAgICB8ICA2MiArKy0NCiBmcy9uZnMvcG5mcy5oICAgICAgICAg\n" - "ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQ0KIGZzL25mcy9wbmZzX25mcy5jICAg\n" - "ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICstDQogZnMvbmZzL3Byb2MuYyAgICAg\n" - "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCiBmcy9uZnMvcmVhZC5jICAg\n" - "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArLQ0KIGZzL25mcy93cml0ZS5j\n" - "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIxICsrLS0NCiBpbmNsdWRlL2xp\n" - "bnV4L2ZzLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQogaW5jbHVkZS9s\n" - "aW51eC9sb2NrZC9iaW5kLmggICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKy0NCiBpbmNsdWRl\n" - "L2xpbnV4L2xvY2tkL2xvY2tkLmggICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQogaW5jbHVk\n" - "ZS9saW51eC9uZnNfZnMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTcgKy0NCiBpbmNs\n" - "dWRlL2xpbnV4L25mc19mc19zYi5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQogaW5j\n" - "bHVkZS9saW51eC9uZnNfcGFnZS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0NCiBp\n" - "bmNsdWRlL2xpbnV4L25mc194ZHIuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArDQog\n" - "bmV0L3N1bnJwYy9jbG50LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggLQ0K\n" - "IG5ldC9zdW5ycGMvc2NoZWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1IC0N\n" - "CiBuZXQvc3VucnBjL3hkci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr\n" - "LQ0KIG5ldC9zdW5ycGMveHBydC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx\n" - "ICsNCiBuZXQvc3VucnBjL3hwcnRyZG1hL3JwY19yZG1hLmMgICAgICAgICAgICAgICAgICB8ICAx\n" - "MiArLQ0KIG5ldC9zdW5ycGMveHBydHJkbWEvdHJhbnNwb3J0LmMgICAgICAgICAgICAgICAgIHwg\n" - "IDU3ICstDQogbmV0L3N1bnJwYy94cHJ0cmRtYS92ZXJicy5jICAgICAgICAgICAgICAgICAgICAg\n" - "fCAzMjMgKysrKysrKy0tLS0NCiBuZXQvc3VucnBjL3hwcnRyZG1hL3hwcnRfcmRtYS5oICAgICAg\n" - "ICAgICAgICAgICB8ICAyMiArLQ0KIDU2IGZpbGVzIGNoYW5nZWQsIDk0OSBpbnNlcnRpb25zKCsp\n" - "LCAyOTYwIGRlbGV0aW9ucygtKQ0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBmcy9uZnMvb2JqbGF5b3V0\n" - "L0tidWlsZA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBmcy9uZnMvb2JqbGF5b3V0L29iamlvX29zZC5j\n" - "DQogZGVsZXRlIG1vZGUgMTAwNjQ0IGZzL25mcy9vYmpsYXlvdXQvb2JqbGF5b3V0LmMNCiBkZWxl\n" - "dGUgbW9kZSAxMDA2NDQgZnMvbmZzL29iamxheW91dC9vYmpsYXlvdXQuaA0KIGRlbGV0ZSBtb2Rl\n" - "IDEwMDY0NCBmcy9uZnMvb2JqbGF5b3V0L3BuZnNfb3NkX3hkcl9jbGkuYw0KLS0gDQpUcm9uZCBN\n" - "eWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lciwgUHJpbWFyeURhdGENCnRyb25k\n" - Lm15a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg== + "Hi Linus,\n" + "\n" + "The following changes since commit 4f7d029b9bf009fbee76bb10c0c4351a1870d2f3:\n" + "\n" + " Linux 4.11-rc7 (2017-04-16 13:00:18 -0700)\n" + "\n" + "are available in the git repository at:\n" + "\n" + " git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.12-1\n" + "\n" + "for you to fetch changes up to 76b2a303384e1d6299c3a0249f0f0ce2f8f96017:\n" + "\n" + " pNFS/flexfiles: Always attempt to call layoutstats when flexfiles is enabled (2017-05-09 16:02:57 -0400)\n" + "\n" + "----------------------------------------------------------------\n" + "NFS client updates for Linux 4.12\n" + "\n" + "Highlights include:\n" + "\n" + "Stable bugfixes:\n" + "- Fix use after free in write error path\n" + "- Use GFP_NOIO for two allocations in writeback\n" + "- Fix a hang in OPEN related to server reboot\n" + "- Check the result of nfs4_pnfs_ds_connect\n" + "- Fix an rcu lock leak\n" + "\n" + "Features:\n" + "- Removal of the unmaintained and unused OSD pNFS layout\n" + "- Cleanup and removal of lots of unnecessary dprintk()s\n" + "- Cleanup and removal of some memory failure paths now that\n" + " GFP_NOFS is guaranteed to never fail.\n" + "- Remove the v3-only data server limitation on pNFS/flexfiles\n" + "\n" + "Bugfixes:\n" + "- RPC/RDMA connection handling bugfixes\n" + "- Copy offload: fixes to ensure the copied data is COMMITed to disk.\n" + "- Readdir: switch back to using the ->iterate VFS interface\n" + "- File locking fixes from Ben Coddington\n" + "- Various use-after-free and deadlock issues in pNFS\n" + "- Write path bugfixes\n" + "\n" + "----------------------------------------------------------------\n" + "Anna Schumaker (29):\n" + " NFS: Clean up do_callback_layoutrecall()\n" + " NFS: Clean up nfs4_callback_layoutrecall()\n" + " NFS: Remove extra dprintk()s from callback_proc.c\n" + " NFS: Clean up decode_getattr_args()\n" + " NFS: Clean up decode_recall_args()\n" + " NFS: Clean up decode_layoutrecall_args()\n" + " NFS: Clean up decode_cb_sequence_args()\n" + " NFS: Clean up decode_notify_lock_args()\n" + " NFS: Clean up encode_cb_sequence_res()\n" + " NFS: Remove extra dprintk()s from callback_xdr.c\n" + " NFS: Clean up nfs_init_client()\n" + " NFS: Clean up extra dprintk()s in client.c\n" + " NFS: Remove nfs_direct_readpage_release()\n" + " NFS: Clean up nfs_direct_commit_complete()\n" + " NFS: Remove extra dprintk()s from namespace.c\n" + " NFS: Clean up nfs42_layoutstat_done()\n" + " NFS: Clean up nfs4_match_clientids()\n" + " NFS: Clean up nfs4_check_serverowner_minor_id()\n" + " NFS: Create a common nfs4_match_client() function\n" + " NFS: Clean up nfs4_check_serverowner_major_id()\n" + " NFS: Clean up nfs4_check_server_scope()\n" + " NFS: Clean up nfs4_set_client()\n" + " NFS: Clean up nfs4_init_server()\n" + " NFS: Remove extra dprintk()s from nfs4client.c\n" + " NFS: Clean up nfs4_get_rootfh()\n" + " NFS: Remove extra dprintk()s from nfs4namespace.c\n" + " NFS: Clean up nfs4_proc_bind_one_conn_to_session()\n" + " NFS: Clean up _nfs4_proc_exchange_id()\n" + " NFS: Clean up nfs4_proc_get_lease_time()\n" + "\n" + "Artem Savkov (1):\n" + " nfs/filelayout: fix NULL pointer dereference in fl_pnfs_update_layout()\n" + "\n" + "Benjamin Coddington (11):\n" + " NFS: switch back to to ->iterate()\n" + " NFS: Fix missing pg_cleanup after nfs_pageio_cond_complete()\n" + " NFS: Use GFP_NOIO for two allocations in writeback\n" + " NFS: move nfs_pgarray_set() to open code\n" + " NFS: move rw_mode to nfs_pageio_header\n" + " NFS4: remove a redundant lock range check\n" + " NFS: Move the flock open mode check into nfs_flock()\n" + " locks: Set FL_CLOSE when removing flock locks on close()\n" + " NFS: Add an iocounter wait function for async RPC tasks\n" + " lockd: Introduce nlmclnt_operations\n" + " NFS: Always wait for I/O completion before unlock\n" + "\n" + "Christoph Hellwig (1):\n" + " nfs: remove the objlayout driver\n" + "\n" + "Chuck Lever (13):\n" + " xprtrdma: Cancel refresh worker during buffer shutdown\n" + " sunrpc: Export xprt_force_disconnect()\n" + " xprtrdma: Detect unreachable NFS/RDMA servers more reliably\n" + " xprtrdma: Refactor rpcrdma_ia_open()\n" + " xprtrdma: Use same device when mapping or syncing DMA buffers\n" + " xprtrdma: Support unplugging an HCA from under an NFS mount\n" + " xprtrdma: Refactor rpcrdma_ep_connect\n" + " xprtrdma: Restore transport after device removal\n" + " xprtrdma: Revert commit d0f36c46deea\n" + " xprtrdma: Annotate receive workqueue\n" + " xprtrdma: Squelch ENOBUFS warnings\n" + " sunrpc: Fix xdr_init_decode_pages() documenting comment\n" + " xprtrdma: Remove rpcrdma_buffer::rb_pool\n" + "\n" + "Dave Wysochanski (1):\n" + " Fix nfs_client refcounting if kmalloc fails in nfs4_proc_exchange_id and nfs4_proc_async_renew\n" + "\n" + "Fabian Frederick (1):\n" + " nfs: use kmap/kunmap directly\n" + "\n" + "Fred Isaman (2):\n" + " NFS: Fix use after free in write error path\n" + " pNFS: Fix NULL dereference in pnfs_generic_alloc_ds_commits\n" + "\n" + "Hou Tao (1):\n" + " NFS: always treat the invocation of nfs_getattr as cache hit when noac is on\n" + "\n" + "NeilBrown (2):\n" + " NFS: fix usage of mempools.\n" + " sunrpc: don't check for failure from mempool_alloc()\n" + "\n" + "Olga Kornievskaia (2):\n" + " NFS4.1 handle interrupted slot reuse from ERR_DELAY\n" + " NFS append COMMIT after synchronous COPY\n" + "\n" + "Pan Bian (1):\n" + " NFSv4: check return value of xdr_inline_decode\n" + "\n" + "Tigran Mkrtchyan (1):\n" + " nfs: flexfilelayout: remove v3-only data server limitation\n" + "\n" + "Trond Myklebust (24):\n" + " NFSv4: Fix a hang in OPEN related to server reboot\n" + " pNFS/flexfiles: Check the result of nfs4_pnfs_ds_connect\n" + " pNFS: Remove unused layout driver callbacks\n" + " pNFS: Unexport pnfs_put_lseg_locked and _pnfs_return_layout\n" + " pNFS: unexport nfs4_pnfs_v3_ds_connect_unload\n" + " pNFS: Ensure we check layout segment validity in the pg_init() callback\n" + " pNFS: Fix use after free issues in pnfs_do_read()\n" + " NFS: Don't write back further requests if there is a pending write error\n" + " NFSv3: nfs3_nlm_alloc_call should be declared static\n" + " Merge tag 'nfs-rdma-4.12-1' of git://git.linux-nfs.org/projects/anna/nfs-rdma\n" + " NFS: Add a few more fatal I/O errors to nfs_error_is_fatal()\n" + " NFSv4: Don't special case \"launder\"\n" + " pNFS: Ensure we check layout validity before marking it for return\n" + " pNFS/flexfiles: Fix up the ff_layout_write_pagelist failure path\n" + " pNFS: Don't send COMMITs to the DSes if the server invalidated our layout\n" + " pNFS: Ensure we commit the layout if it has been invalidated\n" + " pNFS: Don't clear the layout return info if there are segments to return\n" + " pNFS: Fix a deadlock when coalescing writes and returning the layout\n" + " pNFS: Fix a typo in pnfs_generic_alloc_ds_commits\n" + " NFSv4.1: RECLAIM_COMPLETE must handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION\n" + " NFSv4: Fix an rcu lock leak\n" + " NFSv4: Fix exclusive create attributes encoding\n" + " NFSv4.1: Work around a Linux server bug...\n" + " pNFS/flexfiles: Always attempt to call layoutstats when flexfiles is enabled\n" + "\n" + " Documentation/admin-guide/kernel-parameters.txt | 6 -\n" + " Documentation/filesystems/nfs/pnfs.txt | 37 --\n" + " fs/fuse/file.c | 2 +-\n" + " fs/lockd/clntlock.c | 1 +\n" + " fs/lockd/clntproc.c | 26 +-\n" + " fs/locks.c | 2 +-\n" + " fs/nfs/Kconfig | 5 -\n" + " fs/nfs/Makefile | 1 -\n" + " fs/nfs/callback_proc.c | 47 +-\n" + " fs/nfs/callback_xdr.c | 109 +---\n" + " fs/nfs/client.c | 67 +--\n" + " fs/nfs/dir.c | 104 +---\n" + " fs/nfs/direct.c | 21 +-\n" + " fs/nfs/file.c | 30 +-\n" + " fs/nfs/filelayout/filelayout.c | 8 +-\n" + " fs/nfs/flexfilelayout/flexfilelayout.c | 24 +-\n" + " fs/nfs/flexfilelayout/flexfilelayoutdev.c | 10 +-\n" + " fs/nfs/inode.c | 5 +-\n" + " fs/nfs/internal.h | 5 +-\n" + " fs/nfs/namespace.c | 34 +-\n" + " fs/nfs/nfs3proc.c | 54 +-\n" + " fs/nfs/nfs42proc.c | 24 +-\n" + " fs/nfs/nfs42xdr.c | 22 +-\n" + " fs/nfs/nfs4client.c | 283 +++-------\n" + " fs/nfs/nfs4getroot.c | 3 -\n" + " fs/nfs/nfs4namespace.c | 7 +-\n" + " fs/nfs/nfs4proc.c | 99 ++--\n" + " fs/nfs/nfs4state.c | 10 +-\n" + " fs/nfs/nfs4xdr.c | 94 ++--\n" + " fs/nfs/objlayout/Kbuild | 5 -\n" + " fs/nfs/objlayout/objio_osd.c | 675 ----------------------\n" + " fs/nfs/objlayout/objlayout.c | 706 ------------------------\n" + " fs/nfs/objlayout/objlayout.h | 183 ------\n" + " fs/nfs/objlayout/pnfs_osd_xdr_cli.c | 415 --------------\n" + " fs/nfs/pagelist.c | 77 ++-\n" + " fs/nfs/pnfs.c | 62 ++-\n" + " fs/nfs/pnfs.h | 6 +-\n" + " fs/nfs/pnfs_nfs.c | 24 +-\n" + " fs/nfs/proc.c | 2 +-\n" + " fs/nfs/read.c | 9 +-\n" + " fs/nfs/write.c | 121 ++--\n" + " include/linux/fs.h | 2 +\n" + " include/linux/lockd/bind.h | 24 +-\n" + " include/linux/lockd/lockd.h | 2 +\n" + " include/linux/nfs_fs.h | 17 +-\n" + " include/linux/nfs_fs_sb.h | 1 +\n" + " include/linux/nfs_page.h | 5 +-\n" + " include/linux/nfs_xdr.h | 3 +\n" + " net/sunrpc/clnt.c | 8 -\n" + " net/sunrpc/sched.c | 5 -\n" + " net/sunrpc/xdr.c | 2 +-\n" + " net/sunrpc/xprt.c | 1 +\n" + " net/sunrpc/xprtrdma/rpc_rdma.c | 12 +-\n" + " net/sunrpc/xprtrdma/transport.c | 57 +-\n" + " net/sunrpc/xprtrdma/verbs.c | 323 +++++++----\n" + " net/sunrpc/xprtrdma/xprt_rdma.h | 22 +-\n" + " 56 files changed, 949 insertions(+), 2960 deletions(-)\n" + " delete mode 100644 fs/nfs/objlayout/Kbuild\n" + " delete mode 100644 fs/nfs/objlayout/objio_osd.c\n" + " delete mode 100644 fs/nfs/objlayout/objlayout.c\n" + " delete mode 100644 fs/nfs/objlayout/objlayout.h\n" + " delete mode 100644 fs/nfs/objlayout/pnfs_osd_xdr_cli.c\n" + "-- \n" + "Trond Myklebust\n" + "Linux NFS client maintainer, PrimaryData\n" + trond.myklebust@primarydata.com -3e79e49ab23c7ebfcbce416dbae18063d7b0d442c02b0d7ce49f5d0daf692baf +9d7e36e0bb2fb7f005e68abe208bbb0b35c6dc496bc71defdc5553353777adea
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.