Return-Path: linux-nfs-owner@vger.kernel.org Received: from szxga02-in.huawei.com ([119.145.14.65]:47300 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750892Ab3JQHRA (ORCPT ); Thu, 17 Oct 2013 03:17:00 -0400 From: Wangminlan To: "J. Bruce Fields" CC: "linux-nfs@vger.kernel.org" Subject: RE: Different sequence of "exportfs" produce different effects on nfs client mounts Date: Thu, 17 Oct 2013 07:16:36 +0000 Message-ID: <3962238FD7EA0F41B1810E7ABEAFBC314CEFA2F5@szxema505-mbs.china.huawei.com> References: <3962238FD7EA0F41B1810E7ABEAFBC314CEF9ACF@szxema505-mbs.china.huawei.com> <20131014174540.GA27747@fieldses.org> <3962238FD7EA0F41B1810E7ABEAFBC314CEF9E97@szxema505-mbs.china.huawei.com> <20131015154918.GA6117@fieldses.org> <3962238FD7EA0F41B1810E7ABEAFBC314CEF9FD9@szxema505-mbs.china.huawei.com> In-Reply-To: <3962238FD7EA0F41B1810E7ABEAFBC314CEF9FD9@szxema505-mbs.china.huawei.com> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org List-ID: SGksIA0KCUkgd2VudCB0aHJvdWdoIHRoZSBjb2RlIG9mIG5mcy11dGlscywgY2hlY2sgdGhlIGZ1 bmN0aW9uIGNsaWVudF9nZXR0eXBlIGluIHN1cHBvcnQvZXhwb3J0L2NsaWVudC5jOg0KaW4gbmZz LXV0aWxzLTEtMi05LXJjNiwgYW5kIGluIG5mcy11dGlscy0xLjIuNiwgdGhleSBoYXZlIHRoaXMg aW1wbGVtZW50YXRpb24gaW4gdGhlIGZpbmFsIHBhcnQ6DQogNzcwICAgICAgICAgLyoNCiA3NzEg ICAgICAgICAgKiBUcmVhdCB1bmFkb3JuZWQgSVAgYWRkcmVzc2VzIGFzIE1DTF9TVUJORVRXT1JL Lg0KIDc3MiAgICAgICAgICAqIEV2ZXJ5dGhpbmcgZWxzZSBpcyBNQ0xfRlFETi4NCiA3NzMgICAg ICAgICAgKi8NCiA3NzQgICAgICAgICBhaSA9IGhvc3RfcHRvbihpZGVudCk7DQogNzc1ICAgICAg ICAgaWYgKGFpICE9IE5VTEwpIHsNCiA3NzYgICAgICAgICAgICAgICAgIGZyZWVhZGRyaW5mbyhh aSk7DQogNzc3ICAgICAgICAgICAgICAgICByZXR1cm4gTUNMX1NVQk5FVFdPUks7DQogNzc4ICAg ICAgICAgfQ0KIDc3OSANCiA3ODAgICAgICAgICByZXR1cm4gTUNMX0ZRRE47DQogNzgxIH0NCg0K d2hpbGUgYmFjayBpbiBkYXlzIG9mIG5mcy11dGlscy0xLjAuNzogY2xpZW50X2dldHR5cGUgbG9v a3MgbGlrZSB0aGlzOg0KIDI3NyBjbGllbnRfZ2V0dHlwZShjaGFyICppZGVudCkNCiAyNzggew0K IDI3OSAgICAgICAgIGNoYXIgICAgKnNwOw0KIDI4MCANCiAyODEgICAgICAgICBpZiAoaWRlbnRb MF0gPT0gJ1wwJykNCiAyODIgICAgICAgICAgICAgICAgIHJldHVybiBNQ0xfQU5PTllNT1VTOw0K IDI4MyAgICAgICAgIGlmIChpZGVudFswXSA9PSAnQCcpIHsNCiAyODQgI2lmbmRlZiBIQVZFX0lO TkVUR1INCiAyODUgICAgICAgICAgICAgICAgIHhsb2coTF9XQVJOSU5HLCAibmV0Z3JvdXAgc3Vw cG9ydCBub3QgY29tcGlsZWQgaW4iKTsNCiAyODYgI2VuZGlmDQogMjg3ICAgICAgICAgICAgICAg ICByZXR1cm4gTUNMX05FVEdST1VQOw0KIDI4OCAgICAgICAgIH0NCiAyODkgICAgICAgICBmb3Ig KHNwID0gaWRlbnQ7ICpzcDsgc3ArKykgew0KIDI5MCAgICAgICAgICAgICAgICAgaWYgKCpzcCA9 PSAnKicgfHwgKnNwID09ICc/JyB8fCAqc3AgPT0gJ1snKQ0KIDI5MSAgICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gTUNMX1dJTERDQVJEOw0KIDI5MiAgICAgICAgICAgICAgICAgaWYgKCpz cCA9PSAnLycpDQogMjkzICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBNQ0xfU1VCTkVU V09SSzsNCiAyOTQgICAgICAgICAgICAgICAgIGlmICgqc3AgPT0gJ1xcJyAmJiBzcFsxXSkNCiAy OTUgICAgICAgICAgICAgICAgICAgICAgICAgc3ArKzsNCiAyOTYgICAgICAgICB9DQogMjk3ICAg ICAgICAgcmV0dXJuIE1DTF9GUUROOw0KIDI5OCB9DQoNCkl0J3Mgc2ltcGxlLCBhbmQgY2xpZW50 IGxpa2UgIjE5Mi4xNjguMC4yMSIgaXMgdHJlYXRlZCBhcyBNQ0xfRlFETi4gDQpJIHRyaWVkIHRo ZSBzYW1lIG9wZXJhdGlvbiBpbiB0aGlzIHZlcnNpb24sIHRoZXJlJ3Mgbm8gc3VjaCBwcm9ibGVt IGFzIGluIG5mcy11dGlscy0xLjIuMSBhbmQgbmZzLXV0aWxzLTEuMi42Lg0KDQo+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGxpbnV4LW5mcy1vd25lckB2Z2VyLmtlcm5lbC5v cmcNCj4gW21haWx0bzpsaW51eC1uZnMtb3duZXJAdmdlci5rZXJuZWwub3JnXSBPbiBCZWhhbGYg T2YgV2FuZ21pbmxhbg0KPiBTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMTYsIDIwMTMgOToyMyBB TQ0KPiBUbzogSi4gQnJ1Y2UgRmllbGRzDQo+IENjOiBsaW51eC1uZnNAdmdlci5rZXJuZWwub3Jn DQo+IFN1YmplY3Q6IFJFOiBEaWZmZXJlbnQgc2VxdWVuY2Ugb2YgImV4cG9ydGZzIiBwcm9kdWNl IGRpZmZlcmVudCBlZmZlY3RzIG9uIG5mcw0KPiBjbGllbnQgbW91bnRzDQo+IA0KPiBIaSwgQnJ1 Y2UsDQo+IAlUaGUgbmZzLXV0aWxzIG9uIG15IGJveCBpcyBuZnMtdXRpbHMtMS4yLjEtMi42LjYs IHdoaWNoIGlzIFN1c2UgZGlzdHJpYnV0ZWQuDQo+IAlJIHRyaWVkIHRoZSBzYW1lIGV4cGVyaW1l bnQgb24gZmVkb3JhMTgsIHdoaWNoIHVzZSBuZnMtdXRpbHMtMS4yLjYsIGFuZA0KPiBnb3QgdGhl IHNhbWUgcmVzdWx0Lg0KPiAJSSBnbyB0aHJvdWdoIHRoZSBjb2RlIG9mIHN1cHBvcnQvZXhwb3J0 L2NsaWVudC5jLCBmb3VuZCB0aGF0IGluDQo+IGNsaWVudF9nZXRfdHlwZSgpLCB3aGVuIHRoZSBj bGllbnQgaXMgc3BlY2lmaWVkIGFzIGFuIElQIGFkZHJlc3Mod2hpY2ggY2FuIG5vdA0KPiBiZSBy ZXNvbHZlZCBhcyBhbiBGUUROKSwgaXQgYWN0dWFsbHkgcmV0dXJuIHRoZSByZXN1bHQ6IE1DTF9T VUJORVRXT1JLLg0KPiAJSSBndWVzcyB0aGF0J3MgdGhlIHJlYXNvbiB0aGF0IHRoZSBjbGllbnQg IjE5Mi4xNjguMC4yMSIgYW5kDQo+ICIxOTIuMTY4LjAuMC8xNiIgYm90aCBhcmUgc29ydGVkIHRv IHRoZSBzYW1lIGNhdGVnb3J5OiBNQ0xfU1VCTkVUV09SSywNCj4gc28gdGhlIG9yZGVyIG9mIGV4 cG9ydHMgbWF0dGVycyBoZXJlLg0KPiAJSXMgdGhpcyB3aGF0IGV4cG9ydGZzIGFuZCBtb3VudGQg bWVhbiB0byBiZT8NCj4gQi5SDQo+IE1pbmxhbiBXYW5nDQo+IA0KPiBPbiBUdWVzZGF5LCBPY3Rv YmVyIDE1LCAyMDEzIGF0IDAzOjQ5QU0gKzAwMDAsIEJydWNlIEZpZWxkcyB3cm90ZToNCj4gPiBM b29raW5nIGF0IHRoZSBtb3VudGQgY29kZS4uLi4NCj4gPg0KPiA+IExvb2tzIGxpa2UgdXRpbHMv bW91bnRkL2NhY2hlLmMgbWFrZXMgbm8gc3BlY2lhbCBlZmZvcnQgdG8gcHJpb3JpdGl6ZQ0KPiA+ IGV4cG9ydHMgZXhjZXB0IGluIHRoZSB2NHJvb3QgYW5kIGNyb3NzbW50IGNhc2VzLCBuZWl0aGVy IGFuIGlzc3VlIGluDQo+ID4geW91ciBjYXNlLg0KPiA+DQo+ID4gU28geWVzIGl0IGRlcGVuZHMg b24gb3JkZXJpbmcuIEZyb20gbWFuIGV4cG9ydHM6DQo+ID4NCj4gPiAJIElmIGEgY2xpZW50IG1h dGNoZXMgbW9yZSB0aGFuIG9uZSBvZiB0aGUgc3BlY2lmaWNhdGlvbnMgYWJvdmUsDQo+ID4gCSB0 aGVuIHRoZSBmaXJzdCBtYXRjaCBmcm9tIHRoZSBhYm92ZSBsaXN0IG9yZGVyIHRha2VzIHByZWNl ZGVuY2UNCj4gPiAJIC0gcmVnYXJkbGVzcyAgb2YgdGhlICBvcmRlciB0aGV5IGFwcGVhciBvbiB0 aGUgZXhwb3J0IGxpbmUuDQo+ID4gCSBIb3dldmVyLCBpZiBhIGNsaWVudCBtYXRjaGVzIG1vcmUg dGhhbiBvbmUgb2YgdGhlIHNhbWUgdHlwZSBvZg0KPiA+IAkgc3BlY2lmaWNhdGlvbiAoZS5nLiAg dHdvICBuZXRncm91cHMpLCB0aGVuICB0aGUgIGZpcnN0ICBtYXRjaA0KPiA+IAkgZnJvbSAgdGhl IG9yZGVyIHRoZXkgYXBwZWFyIG9uIHRoZSBleHBvcnQgbGluZSB0YWtlcw0KPiA+IAkgcHJlY2Vk ZW5jZS4NCj4gPg0KPiA+IFRoZSBvcmRlciBnaXZlbiBpczogc2luZ2xlIGhvc3QsIElQIG5ldHdv cmtzLCB3aWxkY2FyZHMsIG5lZ3JvdXBzLA0KPiA+IGFub255bW91cy4NCj4gPg0KPiA+IFNvIHRo ZSBzaW5nbGUgaG9zdCBleHBvcnRzIHNob3VsZCBoYXZlIHRha2VuIHByZWNlZGVuY2UuDQo+ID4N Cj4gPiBUaGUgY29kZSBoZXJlIGRvZXMgbG9vayBsaWtlIGl0IGNvcmVjdGx5IGltcGxlbWVudHMg dGhlIGFib3ZlIG9yZGVyaW5nLg0KPiA+DQo+ID4gV2hhdCB2ZXJzaW9uIG9mIG5mcy11dGlscyBh cmUgeW91IHVzaW5nPw0KPiA+DQo+ID4gLS1iLg0KPiA+DQo+ID4gT24gVHVlLCBPY3QgMTUsIDIw MTMgYXQgMDY6Mzk6NTlBTSArMDAwMCwgV2FuZ21pbmxhbiB3cm90ZToNCj4gPiA+IE9uIE1vbiwg T2N0IDE0LCAyMDEzIGF0IDE2OjQ2ICswMDAwLCBCcnVjZSBGaWVsZHMgd3JvdGU6DQo+ID4gPiA+ IE9uIE1vbiwgT2N0IDE0LCAyMDEzIGF0IDAyOjE2OjU4QU0gKzAwMDAsIFdhbmdtaW5sYW4gd3Jv dGU6DQo+ID4gPiA+ID4g44CA44CASGksDQo+ID4gPiA+ID4g44CA44CAICAgICAgICAgSeKAmXZl IGdvdCBhIHByb2JsZW0gb24gdGhlIG5mcyBleHBvcnRmcyBjb21tYW5kLiBJ4oCZbQ0KPiA+IG5v dA0KPiA+ID4gPiBzdXJlIGlmIHRoaXMgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIGFzayB0aGlzLCBp ZiBub3QsIGNhbiB5b3UgcGxlYXNlIHRlbGwgbWUNCj4gPiB3aGVyZT8NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IOOAgOOAgCAgICAgICAgIEhlcmXigJlzIHdoYXQgSSBuZWVkOg0KPiA+ID4gPiA+IOOA gOOAgDEuIEkgaGF2ZSBhIGZvbGRlciBuYW1lZCAvbW50L2ZzMSB0byBiZSBleHBvcnRlZC4NCj4g PiA+ID4gPiDjgIDjgIAyLiBBbGwgdGhlIGhvc3QgaW4gc3VibmV0d29yayAxOTIuMTY4LjAuMC8x NiBzaG91bGQgYmUgYWJsZSBhY2Nlc3MNCj4gPiB0aGlzDQo+ID4gPiA+IGZvbGRlciwgYnV0IHRo ZWlyIHJvb3Qgc2hvdWxkIGJlIHNxdWFzaGVkLg0KPiA+ID4gPiA+IOOAgOOAgDMuIFNvbWUgc3Bl Y2lmaWVkIGhvc3QgaW4gdGhlIHNhbWUgc3VibmV0d29yayBjYW4gZ2FpbiB0aGUgcm9vdA0KPiA+ ID4gPiBwZXJtaXNzaW9uIG9uIHRoZSBmb2xkZXIsIGZvciBleGFtcGxlOiAxOTIuMTY4LjAuMjEs IDE5Mi4xNjguMC4yMi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IOOAgOOAgEnigJl2ZSBnb3QgYSBT TEVTMTFTUDEgYm94IGFzIHRoZSBuZnMgc2VydmVyLCB0aGUgbmZzIGNsaWVudHMgYXJlDQo+ID4g U0xFUzExU1AxLA0KPiA+ID4gPiB0b28sIGFuZCB0aGUgcHJvdG9jb2wgdXNlZCBiZXR3ZWVuIGNs aWVudHMgYW5kIHNlcnZlciBhcmUgTkZTdjMuDQo+ID4gPiA+ID4g44CA44CASGVyZSBhcmUgdGhl IGNvbW1hbmRzIEkgdXNlZCB0byBkbyB0aGUgZXhwb3J0Og0KPiA+ID4gPiA+IOOAgOOAgCNleHBv cnRmcyDigJNvIHJ3LHJvb3Rfc3F1YXNoIDE5Mi4xNjguMC4wLzE2Oi9tbnQvZnMxDQo+ID4gPiA+ ID4g44CA44CAI2V4cG9ydGZzIOKAk28gcncsbm9fcm9vdF9zcXVhc2ggMTkyLjE2OC4wLjIxOi9t bnQvZnMxDQo+ID4gPiA+ID4g44CA44CAI2V4cG9ydGZzIOKAk28gcncsbm9fcm9vdF9zcXVhc2gg MTkyLjE2OC4wLjIyOi9tbnQvZnMxDQo+ID4gPiA+ID4g44CA44CAQWZ0ZXIgdGhpcywgZXZlcnl0 aGluZyB3b3JrcyBhcyBleHBlY3RlZC4NCj4gPiA+IEFmdGVyIHRoaXMsIHRoZSBjb250ZW50cyBv ZiAvcHJvYy9uZXQvcnBjL2F1dGgudW5peC5pcC9jb250ZW50IGFuZA0KPiA+IC9wcm9jL25ldC9y cGMvbmZzZC5leHBvcnQvY29udGVudCBhcmU6DQo+ID4gPiAJTlYyMDBfMDE6L3Byb2MvbmV0L3Jw YyAjIGNhdCBhdXRoLnVuaXguaXAvY29udGVudA0KPiA+ID4gCSNjbGFzcyBJUCBkb21haW4NCj4g PiA+IAluZnNkIDE5Mi4xNjguMC4yMSAxOTIuMTY4LjAuMC8xNiwxOTIuMTY4LjAuMjENCj4gPiA+ IAluZnNkIDAuMC4wLjAgLXRlc3QtY2xpZW50LQ0KPiA+ID4gCSMgbmZzZCAxMDAuNDMuMTg5LjEg LW5vLWRvbWFpbi0NCj4gPiA+DQo+ID4gPiAJTlYyMDBfMDE6L3Byb2MvbmV0L3JwYyAjIGNhdCBu ZnNkLmV4cG9ydC9jb250ZW50DQo+ID4gPiAJI3BhdGggZG9tYWluKGZsYWdzKQ0KPiA+ID4gCS9t bnQvZnMxDQo+ID4gCS10ZXN0LWNsaWVudC0ocncsbm9fcm9vdF9zcXVhc2gsc3luYyxub193ZGVs YXksZnNpZD0wLGFub251aWQ9NDI5NDk2Nw0KPiA+IDI5NSxhbm9uZ2lkPTQyOTQ5NjcyOTUpDQo+ ID4gPiAJL21udC9mczENCj4gPiAJMTkyLjE2OC4wLjAvMTYsMTkyLjE2OC4wLjIxKHJ3LG5vX3Jv b3Rfc3F1YXNoLHN5bmMsd2RlbGF5LG5vX3N1YnRyZWUNCj4gPiBfY2hlY2ssdXVpZD0xMzI2NmYw ZDoxZmJkNDBkNTpiMGI1YzRmZTpjZmUxMDRlYikNCj4gPiA+IAkjIC9tbnQvZnMxDQo+ID4gCTE5 Mi4xNjguMC4wLzE2LDE5Mi4xNjguMC4yMShydyxub19yb290X3NxdWFzaCxzeW5jLHdkZWxheSxu b19zdWJ0cmVlDQo+ID4gX2NoZWNrLHV1aWQ9MTMyNjZmMGQ6MWZiZDQwZDU6YjBiNWM0ZmU6Y2Zl MTA0ZWIpDQo+ID4gPiBCZXNpZGVzLCB0aGUgY29udGVudCBvZiAvdmFyL2xpYi9uZnMvZXRhYiBp czoNCj4gPiA+IAlOVjIwMF8wMTovcHJvYy9uZXQvcnBjICMgY2F0IC92YXIvbGliL25mcy9ldGFi DQo+ID4gPiAJL21udC9mczENCj4gPiAJMTkyLjE2OC4wLjIyKHJ3LHN5bmMsd2RlbGF5LGhpZGUs bm9jcm9zc21udCxzZWN1cmUsbm9fcm9vdF9zcXVhc2gsbm8NCj4gPg0KPiBfYWxsX3NxdWFzaCxu b19zdWJ0cmVlX2NoZWNrLHNlY3VyZV9sb2NrcyxhY2wsYW5vbnVpZD02NTUzNCxhbm9uZ2lkPTY1 NTMNCj4gPiA0KQ0KPiA+ID4gCS9tbnQvZnMxDQo+ID4gCTE5Mi4xNjguMC4yMShydyxzeW5jLHdk ZWxheSxoaWRlLG5vY3Jvc3NtbnQsc2VjdXJlLG5vX3Jvb3Rfc3F1YXNoLG5vDQo+ID4NCj4gX2Fs bF9zcXVhc2gsbm9fc3VidHJlZV9jaGVjayxzZWN1cmVfbG9ja3MsYWNsLGFub251aWQ9NjU1MzQs YW5vbmdpZD02NTUzDQo+ID4gNCkNCj4gPiA+IAkvbW50L2ZzMQ0KPiA+IAkxOTIuMTY4LjAuMC8x NihydyxzeW5jLHdkZWxheSxoaWRlLG5vY3Jvc3NtbnQsc2VjdXJlLHJvb3Rfc3F1YXNoLG5vXw0K PiA+DQo+IGFsbF9zcXVhc2gsbm9fc3VidHJlZV9jaGVjayxzZWN1cmVfbG9ja3MsYWNsLGFub251 aWQ9NjU1MzQsYW5vbmdpZD02NTUzNA0KPiA+ICkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IOOAgOOA gEJ1dCwgYWZ0ZXIgdGhlIGZvbGxvd2luZyBvcGVyYXRpb25zOg0KPiA+ID4gPiA+IOOAgOOAgCNl eHBvcnRmcyDigJN1IDE5Mi4xNjguMC4wLzE2Oi9tbnQvZnMxICAgICAgICAgICAgICAvKiBEZWxl dGUNCj4gPiB0aGlzDQo+ID4gPiA+IGV4cG9ydCAqLw0KPiA+ID4gPiA+IOOAgOOAgCMgZXhwb3J0 ZnMg4oCTbyBydyxyb290X3NxdWFzaCAxOTIuMTY4LjAuMC8xNjovbW50L2ZzMQ0KPiA+IC8qDQo+ ID4gPiA+IEFuZCBhZGQgaXQgYWdhaW4gKi8NCj4gPiA+ID4gPiDjgIDjgIBIb3N0cyBvbiAxOTIu MTY4LjAuMjEgYW5kIDE5Mi4xNjguMC4yMiBkb2VzbuKAmXQgZ2V0IHJvb3QNCj4gPiBwZXJtaXNz aW9uDQo+ID4gPiA+IGFueSBtb3JlLiB3aGVuIEkgdHJpZWQgdG8gd3JpdGUgYSBmaWxlLCBpdCBj b21wbGFpbnMgYWJvdXQg4oCcUGVybWlzc2lvbg0KPiA+IGRlbmllZOKAnS4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IOOAgOOAgFNvLCBkb2VzIHRoZSBvcmRlciBvZiBleHBvcnRmcyBjb21tYW5kIGhh cyBzb21ldGhpbmcgdG8gZG8gdGhlDQo+ID4gZmluYWwNCj4gPiA+ID4gcmVzdWx0PyBPciBhbSBJ IGRvaW5nIHNvbWV0aGluZyB3cm9uZz8NCj4gPiA+IEFmdGVyIHRoaXMsIHRoZSBjb250ZW50cyBv ZiAvcHJvYy9uZXQvcnBjL2F1dGgudW5peC5pcC9jb250ZW50IGFuZA0KPiA+IC9wcm9jL25ldC9y cGMvbmZzZC5leHBvcnQvY29udGVudCBhcmU6DQo+ID4gPiAJTlYyMDBfMDE6L3Byb2MvbmV0L3Jw YyAjIGNhdCBhdXRoLnVuaXguaXAvY29udGVudA0KPiA+ID4gCSNjbGFzcyBJUCBkb21haW4NCj4g PiA+IAluZnNkIDE5Mi4xNjguMC4yMSAxOTIuMTY4LjAuMC8xNiwxOTIuMTY4LjAuMjENCj4gPiA+ IAluZnNkIDAuMC4wLjAgLXRlc3QtY2xpZW50LQ0KPiA+ID4gCSMgbmZzZCAxMDAuNDMuMTg5LjEg LW5vLWRvbWFpbi0NCj4gPiA+DQo+ID4gPiAJTlYyMDBfMDE6L3Byb2MvbmV0L3JwYyAjIGNhdCBu ZnNkDQo+ID4gPiAJbmZzZCAgICAgICAgIG5mc2QuZXhwb3J0LyBuZnNkLmZoLw0KPiA+ID4gCU5W MjAwXzAxOi9wcm9jL25ldC9ycGMgIyBjYXQgbmZzZA0KPiA+ID4gCW5mc2QgICAgICAgICBuZnNk LmV4cG9ydC8gbmZzZC5maC8NCj4gPiA+IAlOVjIwMF8wMTovcHJvYy9uZXQvcnBjICMgY2F0IG5m c2QuZXhwb3J0L2NvbnRlbnQNCj4gPiA+IAkjcGF0aCBkb21haW4oZmxhZ3MpDQo+ID4gPiAJL21u dC9mczENCj4gPiAJLXRlc3QtY2xpZW50LShydyxub19yb290X3NxdWFzaCxzeW5jLG5vX3dkZWxh eSxmc2lkPTAsYW5vbnVpZD00Mjk0OTY3DQo+ID4gMjk1LGFub25naWQ9NDI5NDk2NzI5NSkNCj4g PiA+IAkvbW50L2ZzMQ0KPiA+IAkxOTIuMTY4LjAuMC8xNiwxOTIuMTY4LjAuMjEocncscm9vdF9z cXVhc2gsc3luYyx3ZGVsYXksbm9fc3VidHJlZV9jaA0KPiA+IGVjayx1dWlkPTEzMjY2ZjBkOjFm YmQ0MGQ1OmIwYjVjNGZlOmNmZTEwNGViKQ0KPiA+ID4gQW5kIHRoZSBjb250ZW50IG9mIC92YXIv bGliL25mcy9ldGFiIGlzOg0KPiA+ID4gCU5WMjAwXzAxOi9wcm9jL25ldC9ycGMgIyBjYXQgL3Zh ci9saWIvbmZzL2V0YWINCj4gPiA+IAkvbW50L2ZzMQ0KPiA+IAkxOTIuMTY4LjAuMC8xNihydyxz eW5jLHdkZWxheSxoaWRlLG5vY3Jvc3NtbnQsc2VjdXJlLHJvb3Rfc3F1YXNoLG5vXw0KPiA+DQo+ IGFsbF9zcXVhc2gsbm9fc3VidHJlZV9jaGVjayxzZWN1cmVfbG9ja3MsYWNsLGFub251aWQ9NjU1 MzQsYW5vbmdpZD02NTUzNA0KPiA+ICkNCj4gPiA+IAkvbW50L2ZzMQ0KPiA+IAkxOTIuMTY4LjAu MjIocncsc3luYyx3ZGVsYXksaGlkZSxub2Nyb3NzbW50LHNlY3VyZSxub19yb290X3NxdWFzaCxu bw0KPiA+DQo+IF9hbGxfc3F1YXNoLG5vX3N1YnRyZWVfY2hlY2ssc2VjdXJlX2xvY2tzLGFjbCxh bm9udWlkPTY1NTM0LGFub25naWQ9NjU1Mw0KPiA+IDQpDQo+ID4gPiAJL21udC9mczENCj4gPiAJ MTkyLjE2OC4wLjIxKHJ3LHN5bmMsd2RlbGF5LGhpZGUsbm9jcm9zc21udCxzZWN1cmUsbm9fcm9v dF9zcXVhc2gsbm8NCj4gPg0KPiBfYWxsX3NxdWFzaCxub19zdWJ0cmVlX2NoZWNrLHNlY3VyZV9s b2NrcyxhY2wsYW5vbnVpZD02NTUzNCxhbm9uZ2lkPTY1NTMNCj4gPiA0KQ0KPiA+ID4gPg0KPiA+ ID4gPiBUaGF0IHNvdW5kcyBsaWtlIGEgYnVnLiAgVGhlIGNvbnRlbnRzIG9mDQo+ID4gPiA+IC9w cm9jL25ldC9ycGMvYXV0aC51bml4LmlwL2NvbnRlbnQgYW5kDQo+IC9wcm9jL25ldC9ycGMvbmZz ZC5leHBvcnQvY29udGVudA0KPiA+ID4gPiBhZnRlciBnZXR0aW5nIHRoZSBhYm92ZSAicGVybWlz c2lvbiBkZW5pZWQiIG1pZ2h0IGJlIGludGVyZXN0aW5nLg0KPiAT77+977+97Lm7HO+/vSbvv71+ 77+9Ju+/vRjvv73vv70rLe+/ve+/vd22F++/ve+/vXfvv73vv73Lm++/ve+/ve+/vW3vv71i77+9 77+9Z37Ip++/vRfvv73vv73cqH3vv73vv73vv73GoHrvv70majordu+/ve+/ve+/vQ0KPiAN77+9 77+977+977+9elor77+977+9K3pm77+977+977+9aO+/ve+/ve+/vX7vv73vv73vv73vv71p77+9 77+977+9eu+/vR7vv71377+977+977+9P++/ve+/ve+/ve+/vSbvv70p36IbZg0K