Return-Path: linux-nfs-owner@vger.kernel.org Received: from mexforward.lss.emc.com ([128.222.32.20]:24672 "EHLO mexforward.lss.emc.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750703Ab1LAFFr (ORCPT ); Thu, 1 Dec 2011 00:05:47 -0500 From: To: , CC: , , Date: Thu, 1 Dec 2011 00:05:25 -0500 Subject: RE: [PATCH-RESEND 4/4] pnfsblock: do not ask for layout in pg_init Message-ID: References: <1322888194-3039-1-git-send-email-bergwolf@gmail.com> <4ED62857.7090804@tonian.com> <4ED6D5D8.9010801@panasas.com> In-Reply-To: <4ED6D5D8.9010801@panasas.com> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org List-ID: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBsaW51eC1uZnMtb3duZXJAdmdl ci5rZXJuZWwub3JnIFttYWlsdG86bGludXgtbmZzLW93bmVyQHZnZXIua2VybmVsLm9yZ10gT24g QmVoYWxmIE9mIEJvYXoNCj4gSGFycm9zaA0KPiBTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgMDEs IDIwMTEgOToxOCBBTQ0KPiBUbzogUGVuZyBUYW8NCj4gQ2M6IEJlbm55IEhhbGV2eTsgVHJvbmQu TXlrbGVidXN0QG5ldGFwcC5jb207IGxpbnV4LW5mc0B2Z2VyLmtlcm5lbC5vcmc7IFBlbmcsIFRh bw0KPiBTdWJqZWN0OiBSZTogW1BBVENILVJFU0VORCA0LzRdIHBuZnNibG9jazogZG8gbm90IGFz ayBmb3IgbGF5b3V0IGluIHBnX2luaXQNCj4gDQo+IE9uIDExLzMwLzIwMTEgMDU6MTcgQU0sIFBl bmcgVGFvIHdyb3RlOg0KPiA+Pj4NCj4gPj4+ICsvKiBXaGlsZSBSRkMgZG9lc24ndCBsaW1pdCBt YXhpbXVtIHNpemUgb2YgbGF5b3V0LCB3ZSBiZXR0ZXIgbGltaXQgaXQgb3Vyc2VsZi4gKi8NCj4g Pj4NCj4gPj4gV2h5IGlzIHRoYXQ/DQo+ID4+IFdoYXQgZG8gdGhlc2UgYXJiaXRyYXJ5IG51bWJl cnMgcmVwcmVzZW50Pw0KPiA+PiBJZiB0aGVzZSBsaW1pdHMgZGVwZW5kIG9uIHNvbWUgb3RoZXIg c3lzdGVtIHNpemVzIHRoZXkgc2hvdWxkIHJlZmxlY3QgdGhlIGRlcGVuZGVuY3kNCj4gPj4gYXMg cGFydCBvZiB0aGVpciBjYWxjdWxhdGlvbi4NCj4gPiBXaGF0IEkgd2FudGVkIHRvIGFkZCBoZXJl IGlzIGEgbGltaXQgdG8gc3RvcCBwZ190ZXN0KCkgKGxpa2Ugb2JqZWN0J3MNCj4gPiBtYXhfaW9f c2l6ZSkgYW5kIDJNQiBpcyBqdXN0IGFuIGV4cGVyaWVuY2UgdmFsdWUuLi4NCj4gPg0KPiA+IFRo YW5rcywNCj4gPiBUYW8NCj4gPj4NCj4gPj4gQmVubnkNCj4gPj4NCj4gPj4+ICsjZGVmaW5lIFBO RlNCTEtfTUFYUlNJWkUgKDB4MTw8MjIpDQo+ID4+PiArI2RlZmluZSBQTkZTQkxLX01BWFdTSVpF ICgweDE8PDIxKQ0KPiANCj4gWW91IHNlZSB0aGlzIGlzIHRoZSBiYXNpYyBwcmluY2lwYWwgZmxh dyBvZiB5b3VyIHNjaGVtZS4gSXQgaXMgZXF1YXRpbmcgSU8gc2l6ZXMNCj4gd2l0aCBsc2VnIHNp emVzLg0KPiANCj4gTGV0cyBiYWNrIHVwIGZvciBhIHNlY29uZA0KPiANCj4gQS4gRmlyc3QgdGhp bmcgdG8gdW5kZXJzdGFuZCBpcyB0aGF0IGFueSBzZWdtZW50aW5nIHNlcnZlciBiZSBpdCBibG9j a3Mgb2JqZWN0cw0KPiAgICBvciBmaWxlcywgd2lsbCB3YW50IHRoZSBjbGllbnQgdG8gcmVwb3J0 IHRvIHRoZSBiZXN0IG9mIGl0J3Mga25vd2xlZGdlDQo+ICAgIHRoZSBpbnRlbnRpb24gb2YgdGhl IHdyaXRpbmcgYXBwbGljYXRpb24uIFRoZXJlZm9yIGEgc29sdXRpb24gc2hvdWxkIGJlDQo+ICAg IGdvb2QgZm9yIGFsbCBUaHJlZS4gV2hhdCBldmVyIHlvdSBhcmUgdHJ5aW5nIHRvIGRvIHNob3Vs ZCBub3QgYmUgcHJpdmF0ZSB0bw0KPiAgICBibG9ja3MgYW5kIG11c3Qgbm90IGNvbmZsaWN0IHdp dGggb3RoZXIgTE8gbmVlZHMuDQo+IA0KPiAgICBOb3RlOiB0aGF0IHRoZSBORlMtd3JpdGUtb3V0 IHN0YWNrIHNpbmNlIGl0IGhvbGRzIGJhY2sgb24gd3JpdGluZyB1bnRpbA0KPiAgICBzeW5jIHRp bWUgb3IgbWVtb3J5IHByZXNzdXJlIHRoYXQgaW4gbW9zdCBjYXNlcyBhdCB0aGUgcG9pbnQgb2Yg SU8gaGFzIGF0DQo+ICAgIGl0J3MgZGlzcG9zYWwgdGhlIGNvbXBsZXRlIGFwcGxpY2F0aW9uIElP IGluIGl0J3MgcGFnZSBjb2xsZWN0aW9uIHBlciBmaWxlLg0KPiAgICAoRXhjZXB0aW9uIGlzIHZl cnkgbGFyZ2Ugd3JpdGVzIHdoaWNoIGlzIGZpbmUgdG8gc3BsaXQsIGdpdmVuIHJlc291cmNlcyBj b25kaXRpb24NCj4gICAgIG9uIHRoZSBjbGllbnQpDQo+IA0KPiAgICBTbyBiZWxvdyB3aGVuIEkg c2F5IGFwcGxpY2F0aW9uIHdlIGNhbiBsYXRlciBtZWFuIHRoZSBjb21wbGV0ZSBwYWdlIGxpc3QN Cj4gICAgYXZhaWxhYmxlIHBlciBpbm9kZSBhdCB0aGUgdGltZSBvZiB3cml0ZS1vdXQuDQo+IA0K PiBCLiBUaGUgKm9wdGltdW0qIGZvciBhbnkgc2VnbWVudGVkIHNlcnZlciBpczoNCj4gICAgKGFu ZCBhZGRyZXNzaW5nIFRyb25kJ3MgY29uY2VybiBvZiBzZWcgbGlzdCBleHBsb2RpbmcgYW5kIG5l dmVyIGZyZWVpbmcgdXApDQo+IA0KPiBCLjEuIElmIGFuIGFwcGxpY2F0aW9uIHdpbGwgd3JpdGUg Ty4uTiBvZiB0aGUgZmlsZQ0KPiAxLiBHZXQgb25lIGxvX3NlZyBvZiAwLi5ODQo+IDIuIElPIGF0 IG1heF9pbyBmcm9tIE8gdG8gTiB1bnRpbCBkb25lLg0KPiAzLiBSZXR1cm4gb3IgZm9yZ2V0IHRo ZSBsb19zZWcNCj4gDQo+IEIuMi4gSW4gdGhlIGNhc2Ugb2YgcmFuZG9tIElPIE8xLi5OMSwgTzIu Lk4yLC4uLiwgT24uLk5uDQo+IA0KPiBGb3Igb2JqZWN0cyBhbmQgZmlsZXMgKHNlZ21lbnRlZCkg dGhlIG9wdGltdW0gaXMgc3RpbGw6DQo+IDEuIEdldCBvbmUgbG9fc2VnIG9mIDAxLi5Obg0KPiAy LiBJTyBhdCBtYXhfaW8gZm9yIGVhY2ggT3guLk54IHVudGlsIGRvbmUuDQo+ICAgIChvYmplY3Rz OiBtYXhfaW8gaXMgYSBmYWN0b3Igb2YgQklPIHNpemVzIGdyb3VwIGJvdW5kYXJ5IGFuZCBhbGln bm1lbnRzLg0KPiAgICAgZmlsZXM6IG1heF9pbyBpcyBzdHJpcGVfdW5pdCkNCj4gMy4gUmV0dXJu IG9yIGZvcmdldCB0aGUgMSBsb19zZWcNCldoeSByZXR1cm4gb3IgZm9yZ2V0IHRoZSAxIGxvX3Nl Zz8NCldoYXQgeW91IHJlYWxseSBuZWVkIHRvIGF2b2lkIHNlZyBsaXN0IGV4cGxvZGluZyBpcyB0 byBoYXZlIExSVSBiYXNlZCBjYWNoaW5nIGFuZCBtZXJnZSB0aGVtIHdoZW4gbmVjZXNzYXJ5LCBp bnN0ZWFkIG9mIGFza2luZyBhbmQgZHJvcHBpbmcgbHNlZyBhZ2FpbiBhbmQgYWdhaW4uLi4NCg0K PiANCj4gRm9yIGJsb2NrcyB0aGUgb3B0aW11bSBpcw0KPiAxLiBHZXQgbiBsb19zZWdzIG9mIE8x Li5OMSwgTzIuLk4yLC4uLiwgT24uLk5uDQo+IDIuIElPIGF0IG1heF9pbyBmb3IgZWFjaCBPeC4u TnggdW50aWwgZG9uZS4NCj4gMy4gUmV0dXJuIG9yIGZvcmdldCBhbnkgT3guLk54IHdobydzIElP IGlzIGRvbmUNCj4gDQo+IFlvdSBjYW4gc2VlIHRoYXQgc3RhZ2UgMi4gZm9yIGFueSBraW5kIG9m IExPIGFuZCBpbiBlaXRoZXIgQi4xIG9yIEIuMiBjYXNlcw0KPiBpcyB0aGUgc2FtZS4NCj4gQW5k IHRoaXMgaXMsIGFzIHRoZSBhdXRob3IgaW50ZW5kZWQsIHRoZSAuYmdfaW5pdCAtPiBwZ190ZXN0 IC0+IHBnX0lPLg0KPiANCj4gRm9yIGJsb2NrcyB3aXRoIGluIC53cml0ZV9wYWdsaXN0IHRoZXJl IGlzIGFuIGludGVybmFsIGxvb3AgdGhhdCByZS1zbGljZXMgdGhlDQo+IHJlcXVlc3RlZCBsaW5l YXIgcGFnZWxpc3QgdG8gZXh0ZW50cywgcG9zc2libHkgc2xpY2luZyBlYWNoIGV4dGVudCBhdCBi aW9fc2l6ZQ0KPiBib3VuZGFyaWVzLiBBdCBmaWxlcyBhbmQgb2JqZWN0cyB0aGlzIHNsaWNpbmcg KHRob3VnaCBJIGFkbWl0IHZlcnkgZGlmZmVyZW50KQ0KPiBhY3R1YWxseSBoYXBwZW4gYXQgLnBn X3Rlc3QsIHNvIGF0IC53cml0ZV9wYWdsaXN0IHRoZSByZXF1ZXN0IGlzIHNlbnQgaW4gZnVsbC4N Cj4gDQo+IEMuIFNvIGJhY2sgdG8gb3VyIHByb2JsZW06DQo+IA0KPiBDLjEgTkFDSyBvbiB5b3Vy IHBhdGNoc2V0LiBZb3UgYXJlIHNob3V0aW5nIHRvIHRoZSByb29mIGhvdyB0aGUgY2xpZW50IG11 c3QNCj4gICAgIHJlcG9ydCB0byB0aGUgU2VydmVyIChhcyBoaW50KSB0byB0aGUgYmVzdCBvZiBp dCdzIGtub3dsZWRnZSB3aGF0IHRoZQ0KPiAgICAgYXBwbGljYXRpb24gaXMgZ29pbmcgdG8gZG8u IEFuZCB0aGVuIHlvdSBzbmVha2lseSBpbnRyb2R1Y2UgYW4gSU9fTUFYIGxpbWl0YXRpb24uDQo+ IA0KPiAgICAgVGhpcyB5b3UgTVVTVCBmaXguIEV0aGVyIHlvdSBzZW5kIGdvb2Qgc2VydmVyIGhp bnQgZm9yIHRoZSBhbnRpY2lwYXRlZA0KPiAgICAgYXBwbGljYXRpb24gSU8gb3Igbm90IGF0IGFs bC4NCj4gDQpSZW1vdmluZyB0aGUgSU9fTUFYIGxpbWl0YXRpb24gY2FuIGJlIGEgc2Vjb25kIG9w dGltaXphdGlvbi4gSSB3YXMgaG9waW5nIHRvIHJlbW92ZSBpdCBpZiBjdXJyZW50IElPX01BWCB0 aGluZyB0dXJucyBvdXQgaHVydGluZyBwZXJmb3JtYW5jZS4gQW5kIG9uZSByZWFzb24gZm9yIElP X01BWCBpcyB0byBhdm9pZCB0aGUgbGlrZWxpaG9vZCB0aGF0IHNlcnZlciByZXR1cm5zIHNob3J0 IGxheW91dCwgYmVjYXVzZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGlzIGxpbWl0ZWQgdG8gcmV0 cnkgbmZzX3JlYWQvd3JpdGVfZGF0YSBhcyBhIHdob2xlIGluc3RlYWQgb2Ygc3BsaXR0aW5nIGl0 IHVwLiBJIHRoaW5rIHRoYXQgaWYgd2UgZG8gaXQgdGhpcyB3YXksIHRoZSBJT19NQVggY2FuIGJl IHJlbW92ZWQgbGF0ZXIgd2hlbiBuZWNlc3NhcnksIGJ5IGludHJvZHVjaW5nIGEgc3BsaXR0aW5n IG1lY2hhbmlzbSBlaXRoZXIgb24gbmZzX3JlYWQvd3JpdGVfZGF0YSBvciBvbiBkZXNjLiBOb3cg dGhhdCB5b3UgYXNrIGZvciBpdCwgSSB0aGluayBmb2xsb3dpbmcgYXBwcm9hY2ggaXMgcG9zc2li bGU6DQoxLiByZW1vdmUgdGhlIGxpbWl0IG9uIElPX01BWCBhdCAucGdfdGVzdC4NCjIuIGFzayBm b3IgbGF5b3V0IGF0IC5wZ19kb2lvIGZvciB0aGUgc2l6ZSBvZiBjdXJyZW50IElPIGRlc2MNCjMu IGlmIHNlcnZlciByZXR1cm5zIHNob3J0IGxheW91dCwgc3BsaXQgbmZzX3JlYWQvd3JpdGVfZGF0 YSBvciBkZXNjIGFuZCBpc3N1ZSB0aGUgcGFnZWxpc3QgY292ZXJlZCBieSBsc2VnLg0KNC4gZG8g MiBhbmQgMyBpbiBhIGxvb3AgdW50aWwgYWxsIHBhZ2VzIGluIGN1cnJlbnQgZGVzYyBpcyBoYW5k bGVkLg0KDQo+ICAgICAoVGhlIFNlcnZlciBjYW4gYWx3YXlzIGludHJvZHVjZSBpdCdzIG93biBz bGljaW5nIGFuZCBsaW1pdHMpDQo+IA0KPiAgICAgWW91IGRpZCBhbGwgdGhpcyBiZWNhdXNlIHlv dSBoYXZlIGNpcmN1bXZlbnRlZCB0aGUgY2hhbmNlIHRvIGRvIHNvIGF0IC5wZ190ZXN0DQo+ICAg ICBiZWNhdXNlIHlvdSB3YW50IHRoZSAuYmdfaW5pdCAtPiBwZ190ZXN0IC0+IHBnX0lPLiBsb29w IHRvIGJlIHlvdXINCj4gICAgIE8xLi5OMSwgTzIuLk4yLC4uLixPbi4uTm4gcGFyc2VyLg0KPiAN Cj4gQy4yIFlvdSBtdXN0IHdvcmsgb3V0IGEgc3lzdGVtIHdoaWNoIHdpbGwgc2F0aXNmeSBub3Qg b25seSBibG9ja3MgKE1QRlMpIHNlcnZlcg0KPiAgICAgQnV0IGFueSBzZWdtZW50aW5nIHNlcnZl ciBvdXQgdGhlcmUuIGJsb2NrcyBvYmplY3RzIG9yIGZpbGVzIChzZWdtZW50ZWQpDQo+ICAgICBC eSByZXBvcnRpbmcgdGhlIGJlc3QgaW5mb3JtYXRpb24geW91IGhhdmUgYW5kIGxldHRpbmcgdGhl IFNlcnZlciBkbyBpdCdzDQo+ICAgICBkZWNpc2lvbnMuDQo+IA0KPiAgICAgTm93IGJ5IHBvc3Rw b25pbmcgdGhlIHJlcG9ydCB0byBhZnRlciAucGdfdGVzdCAtPiAucGdfSU8geW91IGJyZWFrIHRo ZSB3YXkNCj4gICAgIG9iamVjdHMgYW5kIGZpbGVzIElPIHNsaWNpbmcgd29ya3MsIGFuZCBsZWF2 ZXMgdGhlbSBpbiB0aGUgZGFyay4gSSdtIG5vdCBzdXJlDQo+ICAgICB5b3UgcmVhbGx5IG1lYW4g dGhhdCBlYWNoIExPIG5lZWRzIHRvIGRvIGl0J3Mgb3duIHByaXZhdGUgaGFja3M/DQo+IA0KSSBh bSBub3QgYXdhcmUgb2YgdGhhdC4uLiBUaGUgb25seSByZXF1aXJlbWVudCBmb3IgYmxvY2tzIGlz IHRoYXQgcGFnZXMgbXVzdCBiZSBjb250aW51b3VzLg0KDQo+IA0KPiBDLjMgU2F5IHdlIGdvIGJh Y2sgdG8gdGhlIGRyYXdpbmcgYm9hcmQgYW5kIHdhbnQgdG8gZG8gdGhlIHN0YWdlIDEgYWJvdmUg b2YNCj4gICAgIHNlbmRpbmcgdGhlIGV4YWN0IGluZm9ybWF0aW9uIHRvIHNlcnZlciwgYmUgaXQg Qi4xIG9yIEIuMi4NCj4gDQo+ICAgICBhLiBXZSB3YW50IGl0IGF0IC5wZ19pbml0IHNvIHdlIGhh dmUgYSBsYXlvdXQgYXQgLnBnX3Rlc3QgdG8gaW5zcGVjdC4NCj4gDQo+ICAgICAgICBEb25lIHBy b3Blcmx5IHdpbGwgbGV0IHlvdSwgaW4gYmxvY2tzLCBzbGljZSBieSBleHRlbnRzIGF0IC5wZ190 ZXN0DQo+ICAgICAgICBhbmQgLndyaXRlX3BhZ2VzIGNhbiBzZW5kIHRoZSBjb21wbGV0ZSBwYWds aXN0IHRvIG1kIChiaW8gY2hhaW5pbmcpDQo+IA0KVW5saWtlIG9iamVjdHMgYW5kIGZpbGVzLCBi bG9ja3MgZG9uJ3Qgc2xpY2UgYnkgZXh0ZW50cywgbm90IGF0IC5wZ190ZXN0LCBub3IgYXQgLnJl YWQvd3JpdGVfcGFnZWxpc3QuDQogDQo+ICAgICBiLiBTYXkgdGhlb3JldGljYWxseSB0aGF0IHdl IGFyZSB3aWxsaW5nIHRvIHNwZW5kIENQVSBhbmQgbWVtb3J5IHRvIGNvbGxlY3QNCj4gICAgICAg IHRoYXQgaW5mb3JtYXRpb24sIGxpa2UgZm9yIGV4YW1wbGUgYWxzbyBwcmUtbG9vcCB0aGUgcGFn ZS1saXN0IGFuZC9vcg0KPiAgICAgICAgY2FsbCB0aGUgTE8gZm9yIHRoZSBmaW5hbCBkZWNpc2lv bi4NCj4gDQo+ICAgICBTbyBteSBhbGwgcG9pbnQgaXMgdGhhdCBiLiBhYm92ZSBzaG91bGQgZXZl bnR1YWxseSBoYXBwZW4gYnV0IGVmZmljaWVudGx5IGJ5DQo+ICAgICBwcmUtY29sbGVjdGluZyBz b21lIGNvdW50ZXJzLiAoUmVtZW1iZXIgdGhhdCB3ZSBhbHJlYWR5IHNhdyBhbGwgdGhlc2UgcGFn ZXMNCj4gICAgIGluIGdlbmVyaWMgbmZzIGF0IHRoZSB2ZnMgLndyaXRlX3BhZ2VzIHZlY3RvcikN Cj4gDQo+ICAgICBUaGVuIHNpbmNlIC5wZ19pbml0IGlzIGFscmVhZHkgY2FsbGVkIGludG8gTE8s IGp1c3QgY2hhbmdlIHRoZSBBUEkgc28gdGhlDQo+ICAgICBMTyBoYXZlIGFsbCB0aGUgbmVlZGVk IGluZm9ybWF0aW9uIGF2YWlsYWJsZSBiZSBpdCBCLjEgb3IgQi4yIGFuZCBpbiByZXR1cm4NCj4g ICAgIHdpbGwgcGFzcyBvbiB0byBwbmZzLmMgdGhlIGFjdHVhbCBsb19zZWcgc2l6ZSBvcHRpbWFs LiBJbiBCLjEgdGhleSBhbGwNCj4gICAgIHNlbmQgdGhlIHNhbWUgdGhpbmcuIEluIEIuMiB0aGV5 IGRpZmZlci4NCj4gDQo+ICAgICBXZSBjYW4gc3RhcnQgYnkgZG9pbmcgYWxsIHRoZSBBUEkgY2hh bmdlcyBzbyAucGdfaW5pdCBjYW4gc3BlY2lmeSBhbmQNCj4gICAgIHJldHVybiB0aGUgc3VnZ2Vz dGVkIGxvX3NpemUuIEFuZCBwZXJoYXBzIHdlIGFkZCB0byB0aGUgbmZzX3BhZ2Vpb19kZXNjcmlw dG9yLA0KPiAgICAgcGFzc2VkIHRvIC5wZ19pbml0LCBhIGNvdXBsZSBvZiBtZW1iZXJzIGRlc2Ny aWJpbmcgYWJvdmUNCj4gICAgIE8xIC0gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBwYWdlDQo+ICAg ICBOMSAtIFRoZSBsZW5ndGggdXAgdG8gdGhlIGZpcnMgaG9sZQ0KPiAgICAgTm4gLSBIaWdoZXN0 IHdyaXR0ZW4gcGFnZQ0KTG9va3MgbGlrZSB5b3UgYXJlIHN1Z2dlc3RpbmcgZ29pbmcgdGhyb3Vn aCB0aGUgZGlydHkgcGFnZSBsaXN0IHR3aWNlIGJlZm9yZSBpc3N1aW5nIElPLCBvbmUganVzdCBm b3IgZ2V0dGluZyB0aGUgSU8gc2l6ZSBpbmZvcm1hdGlvbiBhbmQgYW5vdGhlciBvbmUgZm9yIHBh Z2UgY29sbGFwc2luZy4gVGhlIHdob2xlIHBvaW50IG9mIG1vdmluZyBsYXlvdXRnZXQgdG8gLnBn X2RvaW8gaXMgdG8gY29sbGVjdCByZWFsIElPIHNpemUgdGhlcmUgYmVjYXVzZSB3ZSBkb24ndCBr bm93IGl0IGF0IC5wZ19pbml0LiBBbmQgaXQgaXMgZG9uZSB3aXRob3V0IGFueSBjaGFuZ2VzIHRv IGdlbmVyaWMgTkZTIElPIHBhdGguIEknbSBub3Qgc3VyZSBpZiBpdCBpcyBhcHByb3ByaWF0ZSB0 byBjaGFuZ2UgZ2VuZXJpYyBJTyByb3V0aW5lIHRvIGNvbGxlY3QgdGhlIGluZm9ybWF0aW9uIGJl Zm9yZSAucGdfaW5pdCAoSSdkIGJlIGhhcHB5IHRvbyBpZiB3ZSBjYW4gZG8gaXQgdGhlcmUpLg0K DQpUcm9uZCwgY291bGQgeW91IHBsZWFzZSBqdW1wIGluPw0KDQo+IA0KPiANCj4gICAgIEF0IGZp cnN0IHZlcnNpb246DQo+ICAgICAgIEEgZ29vZCBhcHByb3hpbWF0aW9uIHdoaWNoIGdpdmVzIHlv dSBhbiBleGFjdCBtaWRkbGUgcG9pbnQNCj4gICAgICAgYmV0d2VlbiBibG9ja3MgQi4yIGFuZCBv YmplY3RzL2ZpbGVzIEIuMiwgaXMgZGlydHkgY291bnQuDQo+ICAgICBBdCBsYXRlciBwYXRjaDoN Cj4gICAgICAgSGF2ZSBnZW5lcmljIE5GUyBjb2xsZWN0IHRoZSBhYm92ZSBPMSwgTjEsIGFuZCBO biBmb3IgeW91IGFuZCBiYXNlDQo+ICAgICAgIHlvdXIgZGVjaXNpb24gb24gdGhhdC4NCj4gDQpX ZWxsLCB1bmxlc3MgeW91IHB1dCBib3RoIHRoZSB0d28gcGFydHMgaW4uLi4gVGhlIGZpcnN0IHZl cnNpb24gaXMgaWdub3JpbmcgdGhlIGZhY3QgdGhhdCBibG9ja3MgTURTIGNhbm5vdCBnaXZlIG91 dCBmaWxlIHN0cmlwcGluZyBpbmZvcm1hdGlvbiBhcyBlYXNpbHkgYXMgb2JqZWN0cyBhbmQgZmls ZXMgZG8uIEFuZCBJIHdpbGwgc3RhbmQgYWdhaW5zdCBpdCBhbG9uZSBiZWNhdXNlIGFsbCBpdCBk b2VzIGlzIHRvIGJlbmVmaXQgb2JqZWN0cyB3aGlsZSBodXJ0aW5nIGJsb2NrcyAoZmlsZXMgZG9u J3QgY2FyZSBiZWNhdXNlIHRoZXkgdXNlIHdob2xlIGZpbGUgbGF5b3V0LCBhdCBsZWFzdCBmb3Ig bm93KS4NCg0KT3RoZXJ3aXNlLCBJIHdvdWxkIHN1Z2dlc3QgaGF2aW5nIHByaXZhdGUgaGFjayBm b3IgYmxvY2tzIGJlY2F1c2Ugd2UgaGF2ZSBhIHJlYWwgcHJvYmxlbSB0byBzb2x2ZS4NCg0KUmVn YXJkcywNClRhbw0KPiANCj4gQW5kIHN0b3AgdGhlIHByaXZhdGUgYmxvY2tzIGhhY2tzIGFuZCB0 aGUgSU9fTUFYIGNhcHBpbmcgb24gdGhlIGxvX3NlZw0KPiBzaXplLg0KPiANCj4gQm9heg0KPiAt LQ0KPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJz Y3JpYmUgbGludXgtbmZzIiBpbg0KPiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21v QHZnZXIua2VybmVsLm9yZw0KPiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5r ZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwNCg0K