From mboxrd@z Thu Jan 1 00:00:00 1970 From: Somnath Roy Subject: RE: Regarding newstore performance Date: Thu, 16 Apr 2015 04:22:10 +0000 Message-ID: <755F6B91B3BE364F9BCA11EA3F9E0C6F2CD7A350@SACMBXIP01.sdcorp.global.sandisk.com> References: <755F6B91B3BE364F9BCA11EA3F9E0C6F2CD79CFB@SACMBXIP01.sdcorp.global.sandisk.com> <755F6B91B3BE364F9BCA11EA3F9E0C6F2CD7A0A1@SACMBXIP01.sdcorp.global.sandisk.com> <6F3FA899187F0043BA1827A69DA2F7CC021CE207@shsmsx102.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-bn1on0098.outbound.protection.outlook.com ([157.56.110.98]:55392 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750755AbbDPEWP (ORCPT ); Thu, 16 Apr 2015 00:22:15 -0400 In-Reply-To: <6F3FA899187F0043BA1827A69DA2F7CC021CE207@shsmsx102.ccr.corp.intel.com> Content-Language: en-US Sender: ceph-devel-owner@vger.kernel.org List-ID: To: "Chen, Xiaoxi" , Haomai Wang Cc: ceph-devel VGhhbmtzIFhpYW94aS4uDQpCdXQsIEkgaGF2ZSBhbHJlYWR5IGluaXRpYXRlZCB0ZXN0IGJ5IG1h a2luZyBkYi8gYSBzeW1ib2xpYyBsaW5rIHRvIGFub3RoZXIgU1NELi5XaWxsIHNoYXJlIHRoZSBy ZXN1bHQgc29vbi4NCg0KUmVnYXJkcw0KU29tbmF0aA0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KRnJvbTogQ2hlbiwgWGlhb3hpIFttYWlsdG86eGlhb3hpLmNoZW5AaW50ZWwuY29tXSAN ClNlbnQ6IFdlZG5lc2RheSwgQXByaWwgMTUsIDIwMTUgNjo0OCBQTQ0KVG86IFNvbW5hdGggUm95 OyBIYW9tYWkgV2FuZw0KQ2M6IGNlcGgtZGV2ZWwNClN1YmplY3Q6IFJFOiBSZWdhcmRpbmcgbmV3 c3RvcmUgcGVyZm9ybWFuY2UNCg0KSGkgU29tbmF0aCwNCiAgICAgWW91IGNvdWxkIHRyeSBhcHBs eSB0aGlzIG9uZTopDQogICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9jZXBoL2NlcGgvcHVsbC80MzU2 DQoNCiAgICAgIEJUVyB0aGUgcHJldmlvdXMgUm9ja3NEQiBjb25maWd1cmF0aW9uIGhhcyBhIGJ1 ZyB0aGF0IHNldCByb2Nrc2RiX2Rpc2FibGVEYXRhU3luYyB0byB0cnVlIGJ5IGRlZmF1bHQsIHdo aWNoIG1heSBjYXVzZSBkYXRhIGxvc3MgaW4gZmFpbHVyZS4gU28gcGxzIHVwZGF0ZSB0aGUgbmV3 c3RvcmUgdG8gbGF0ZXN0IG9yIG1hbnVhbGx5IHNldCBpdCB0byBmYWxzZS4gSSBzdXNwZWN0IHRo ZSBLVkRCIHBlcmZvcm1hbmNlIHdpbGwgYmUgd29yc2UgYWZ0ZXIgZG9pbmcgdGhpcy4uLmJ1dCB0 aGF0J3MgdGhlIHdheSB3ZSBuZWVkIHRvIGdvLg0KCQkJCQkJCQkJCVhpYW94aQ0KDQotLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogY2VwaC1kZXZlbC1vd25lckB2Z2VyLmtlcm5lbC5v cmcgW21haWx0bzpjZXBoLWRldmVsLW93bmVyQHZnZXIua2VybmVsLm9yZ10gT24gQmVoYWxmIE9m IFNvbW5hdGggUm95DQpTZW50OiBUaHVyc2RheSwgQXByaWwgMTYsIDIwMTUgMTI6MDcgQU0NClRv OiBIYW9tYWkgV2FuZw0KQ2M6IGNlcGgtZGV2ZWwNClN1YmplY3Q6IFJFOiBSZWdhcmRpbmcgbmV3 c3RvcmUgcGVyZm9ybWFuY2UNCg0KSG9hbWFpLA0KWWVzLCBzZXBhcmF0aW5nIG91dCB0aGUga3Zk YiBkaXJlY3RvcnkgaXMgdGhlIHBhdGggSSB3aWxsIHRha2UgdG8gaWRlbnRpZnkgdGhlIGNhdXNl IG9mIHRoZSBXQS4NClRoaXMgdG9vbCBJIGhhdmUgd3JpdHRlbiBvbiB0b3Agb2YgdGhlc2UgZGlz ayBjb3VudGVycy4gSSBjYW4gc2hhcmUgdGhhdCBidXQgeW91IG5lZWQgU2FuRGlzayBvcHRpbXVz IGVjaG8gKG9yIG1heCkgZHJpdmUgdG8gbWFrZSBpdCB3b3JrIDotKQ0KDQpUaGFua3MgJiBSZWdh cmRzDQpTb21uYXRoDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBIYW9tYWkg V2FuZyBbbWFpbHRvOmhhb21haXdhbmdAZ21haWwuY29tXQ0KU2VudDogV2VkbmVzZGF5LCBBcHJp bCAxNSwgMjAxNSA1OjIzIEFNDQpUbzogU29tbmF0aCBSb3kNCkNjOiBjZXBoLWRldmVsDQpTdWJq ZWN0OiBSZTogUmVnYXJkaW5nIG5ld3N0b3JlIHBlcmZvcm1hbmNlDQoNCk9uIFdlZCwgQXByIDE1 LCAyMDE1IGF0IDI6MDEgUE0sIFNvbW5hdGggUm95IDxTb21uYXRoLlJveUBzYW5kaXNrLmNvbT4g d3JvdGU6DQo+IEhpIFNhZ2UvTWFyaywNCj4gSSBkaWQgc29tZSBXQSBleHBlcmltZW50IHdpdGgg bmV3c3RvcmUgd2l0aCB0aGUgc2ltaWxhciBzZXR0aW5ncyBJIG1lbnRpb25lZCB5ZXN0ZXJkYXku DQo+DQo+IFRlc3Q6DQo+IC0tLS0tLS0NCj4NCj4gNjRLIFJhbmRvbSB3cml0ZSB3aXRoIDY0IFFE IGFuZCB3cml0aW5nIHRvdGFsIG9mIDEgVEIgb2YgZGF0YS4NCj4NCj4NCj4gTmV3c3RvcmU6DQo+ IC0tLS0tLS0tLS0tLQ0KPg0KPiBGaW8gb3V0cHV0IGF0IHRoZSBlbmQgb2YgMSBUQiB3cml0ZS4N Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPg0KPiByYmRf aW9kZXB0aDMyOiAoZz0wKTogcnc9cmFuZHdyaXRlLCBicz02NEstNjRLLzY0Sy02NEsvNjRLLTY0 SywgDQo+IGlvZW5naW5lPXJiZCwgaW9kZXB0aD02NA0KPiBmaW8tMi4xLjExLTIwLWc5YTQ0DQo+ IFN0YXJ0aW5nIDEgcHJvY2Vzcw0KPiByYmQgZW5naW5lOiBSQkQgdmVyc2lvbjogMC4xLjkNCj4g Sm9iczogMSAoZj0xKTogW3coMSldIFsxMDAuMCUgZG9uZV0gWzBLQi80OTYwMEtCLzBLQiAvc10g WzAvNzc1LzAgDQo+IGlvcHNdIFtldGEgMDBtOjAwc10NCj4gcmJkX2lvZGVwdGgzMjogKGdyb3Vw aWQ9MCwgam9icz0xKTogZXJyPSAwOiBwaWQ9NDI5MDc6IFR1ZSBBcHIgMTQgMDA6MzQ6MjMgMjAx NQ0KPiAgIHdyaXRlOiBpbz0xMDAwLjBHQiwgYnc9NDg5NTBLQi9zLCBpb3BzPTc2NCwgcnVudD0y MTQyMTQxOW1zZWMNCj4gICAgIHNsYXQgKHVzZWMpOiBtaW49NDMsIG1heD05NDgwLCBhdmc9MTE2 LjQ1LCBzdGRldj0xMC45OQ0KPiAgICAgY2xhdCAobXNlYyk6IG1pbj0xMywgbWF4PTEzMzEsIGF2 Zz04My41NSwgc3RkZXY9NTIuOTcNCj4gICAgICBsYXQgKG1zZWMpOiBtaW49MTQsIG1heD0xMzMx LCBhdmc9ODMuNjcsIHN0ZGV2PTUyLjk3DQo+ICAgICBjbGF0IHBlcmNlbnRpbGVzIChtc2VjKToN Cj4gICAgICB8ICAxLjAwdGg9WyAgIDYwXSwgIDUuMDB0aD1bICAgNjhdLCAxMC4wMHRoPVsgICA3 MV0sIDIwLjAwdGg9WyAgIDc0XSwNCj4gICAgICB8IDMwLjAwdGg9WyAgIDc2XSwgNDAuMDB0aD1b ICAgNzhdLCA1MC4wMHRoPVsgICA4MV0sIDYwLjAwdGg9WyAgIDgzXSwNCj4gICAgICB8IDcwLjAw dGg9WyAgIDg2XSwgODAuMDB0aD1bICAgOTBdLCA5MC4wMHRoPVsgICA5NF0sIDk1LjAwdGg9WyAg IDk4XSwNCj4gICAgICB8IDk5LjAwdGg9WyAgMTA5XSwgOTkuNTB0aD1bICAxMTRdLCA5OS45MHRo PVsgMTE4OF0sIDk5Ljk1dGg9WyAxMjIxXSwNCj4gICAgICB8IDk5Ljk5dGg9WyAxMjcwXQ0KPiAg ICAgYncgKEtCICAvcyk6IG1pbj0gICA2MiwgbWF4PTEwMTg4OCwgcGVyPTEwMC4wMCUsIGF2Zz00 OTc2MC44NCwgc3RkZXY9NzMyMC4wMw0KPiAgICAgbGF0IChtc2VjKSA6IDIwPTAuMDElLCA1MD0w LjM4JSwgMTAwPTk2LjAwJSwgMjUwPTMuMzQlLCA1MDA9MC4wMyUNCj4gICAgIGxhdCAobXNlYykg OiA3NTA9MC4wMiUsIDEwMDA9MC4wMyUsIDIwMDA9MC4yMCUNCj4gICBjcHUgICAgICAgICAgOiB1 c3I9MTAuODUlLCBzeXM9MS43NiUsIGN0eD0xMjM1MDQxOTEsIG1hamY9MCwgbWluZj02MDM5NjQN Cj4gICBJTyBkZXB0aHMgICAgOiAxPTAuMSUsIDI9MC4xJSwgND0wLjElLCA4PTAuMSUsIDE2PTAu MSUsIDMyPTIuMSUsID49NjQ9OTcuOSUNCj4gICAgICBzdWJtaXQgICAgOiAwPTAuMCUsIDQ9MTAw LjAlLCA4PTAuMCUsIDE2PTAuMCUsIDMyPTAuMCUsIDY0PTAuMCUsID49NjQ9MC4wJQ0KPiAgICAg IGNvbXBsZXRlICA6IDA9MC4wJSwgND0xMDAuMCUsIDg9MC4xJSwgMTY9MC4xJSwgMzI9MC4wJSwg NjQ9MC4xJSwgPj02ND0wLjAlDQo+ICAgICAgaXNzdWVkICAgIDogdG90YWw9cj0wL3c9MTYzODQw MDAvZD0wLCBzaG9ydD1yPTAvdz0wL2Q9MA0KPiAgICAgIGxhdGVuY3kgICA6IHRhcmdldD0wLCB3 aW5kb3c9MCwgcGVyY2VudGlsZT0xMDAuMDAlLCBkZXB0aD02NA0KPg0KPiBSdW4gc3RhdHVzIGdy b3VwIDAgKGFsbCBqb2JzKToNCj4gICBXUklURTogaW89MTAwMC4wR0IsIGFnZ3JiPTQ4OTQ5S0Iv cywgbWluYj00ODk0OUtCL3MsIG1heGI9NDg5NDlLQi9zLCANCj4gbWludD0yMTQyMTQxOW1zZWMs IG1heHQ9MjE0MjE0MTltc2VjDQo+DQo+DQo+IFNvLCBpb3BzIGdldHRpbmcgaXMgfjc2NC4NCj4g OTl0aCBwZXJjZW50aWxlIGxhdGVuY3kgc2hvdWxkIGJlIDEwMG1zLg0KPg0KPiBXcml0ZSBhbXBs aWZpY2F0aW9uIGF0IGRpc2sgbGV2ZWw6DQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+DQo+IFNhbkRpc2sgU1NEcyBoYXZlIHNvbWUgZGlzayBsZXZlbCBjb3VudGVy cyB0aGF0IGNhbiBtZWFzdXJlIG51bWJlciBvZiBob3N0IHdyaXRlcyB3aXRoIGZsYXNoIGxvZ2lj YWwgcGFnZSBzaXplIGFuZCBudW1iZXIgb2YgYWN0dWFsIGZsYXNoIHdyaXRlcyB3aXRoIHRoZSBz YW1lIGZsYXNoIGxvZ2ljYWwgcGFnZSBzaXplLiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNl IHR3byBpcyB0aGUgYWN0dWFsIFdBIGNhdXNpbmcgdG8gZGlzay4NCj4NCj4gUGxlYXNlIGZpbmQg dGhlIGRhdGEgaW4gdGhlIGZvbGxvd2luZyB4bHMuDQo+DQo+IGh0dHBzOi8vZG9jcy5nb29nbGUu Y29tL3NwcmVhZHNoZWV0cy9kLzF2SVQ2UEhSYkxka19JcUZEYzJpTV90ZU1vbERVbHgNCj4gY1g1 VExNUnpkWHlKRS9lZGl0P3VzcD1zaGFyaW5nDQo+DQo+IFRvdGFsIGhvc3Qgd3JpdGVzIGluIHRo aXMgcGVyaW9kID0gOTIzODk2MjY2DQo+DQo+IFRvdGFsIGZsYXNoIHdyaXRlcyBpbiB0aGlzIHBl cmlvZCA9IDE0NjUzMzkwNDANCj4NCj4NCj4gRmlsZVN0b3JlOg0KPiAtLS0tLS0tLS0tLS0tDQo+ DQo+IEZpbyBvdXRwdXQgYXQgdGhlIGVuZCBvZiAxIFRCIHdyaXRlLg0KPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+DQo+IHJiZF9pb2RlcHRoMzI6IChnPTAp OiBydz1yYW5kd3JpdGUsIGJzPTY0Sy02NEsvNjRLLTY0Sy82NEstNjRLLCANCj4gaW9lbmdpbmU9 cmJkLCBpb2RlcHRoPTY0DQo+IGZpby0yLjEuMTEtMjAtZzlhNDQNCj4gU3RhcnRpbmcgMSBwcm9j ZXNzDQo+IHJiZCBlbmdpbmU6IFJCRCB2ZXJzaW9uOiAwLjEuOQ0KPiBKb2JzOiAxIChmPTEpOiBb dygxKV0gWzEwMC4wJSBkb25lXSBbMEtCLzE2NC43TUIvMEtCIC9zXSBbMC8yNjI1LzAgDQo+IGlv cHNdIFtldGEgMDBtOjAxc10NCj4gcmJkX2lvZGVwdGgzMjogKGdyb3VwaWQ9MCwgam9icz0xKTog ZXJyPSAwOiBwaWQ9NDQ3MDM6IFR1ZSBBcHIgMTQgMTg6NDQ6MDAgMjAxNQ0KPiAgIHdyaXRlOiBp bz0xMDAwLjBHQiwgYnc9OTg1ODZLQi9zLCBpb3BzPTE1NDAsIHJ1bnQ9MTA2MzYxMTdtc2VjDQo+ ICAgICBzbGF0ICh1c2VjKTogbWluPTQyLCBtYXg9NzE0NCwgYXZnPTEyMC40NSwgc3RkZXY9NDUu ODANCj4gICAgIGNsYXQgKHVzZWMpOiBtaW49OTQyLCBtYXg9Mzk1NC42SywgYXZnPTQwNzc2LjQy LCBzdGRldj04MTIzMS4yNQ0KPiAgICAgIGxhdCAobXNlYyk6IG1pbj0xLCBtYXg9Mzk1NCwgYXZn PTQwLjkwLCBzdGRldj04MS4yMw0KPiAgICAgY2xhdCBwZXJjZW50aWxlcyAobXNlYyk6DQo+ICAg ICAgfCAgMS4wMHRoPVsgICAgN10sICA1LjAwdGg9WyAgIDExXSwgMTAuMDB0aD1bICAgMTNdLCAy MC4wMHRoPVsgICAxNl0sDQo+ICAgICAgfCAzMC4wMHRoPVsgICAxOF0sIDQwLjAwdGg9WyAgIDIw XSwgNTAuMDB0aD1bICAgMjJdLCA2MC4wMHRoPVsgICAyNV0sDQo+ICAgICAgfCA3MC4wMHRoPVsg ICAzMF0sIDgwLjAwdGg9WyAgIDQwXSwgOTAuMDB0aD1bICAgNjddLCA5NS4wMHRoPVsgIDExNF0s DQo+ICAgICAgfCA5OS4wMHRoPVsgIDQzM10sIDk5LjUwdGg9WyAgNTcwXSwgOTkuOTB0aD1bICA5 MTRdLCA5OS45NXRoPVsgMTA5MF0sDQo+ICAgICAgfCA5OS45OXRoPVsgMTY0N10NCj4gICAgIGJ3 IChLQiAgL3MpOiBtaW49ICAgMzIsIG1heD0yNDMwNzIsIHBlcj0xMDAuMDAlLCBhdmc9MTAzMTQ4 LjM3LCBzdGRldj02MzA5MC4wMA0KPiAgICAgbGF0ICh1c2VjKSA6IDEwMDA9MC4wMSUNCj4gICAg IGxhdCAobXNlYykgOiAyPTAuMDElLCA0PTAuMTQlLCAxMD00LjUwJSwgMjA9MzguMzQlLCA1MD00 Mi40MiUNCj4gICAgIGxhdCAobXNlYykgOiAxMDA9OC44MSUsIDI1MD0zLjQ4JSwgNTAwPTEuNTgl LCA3NTA9MC41MCUsIDEwMDA9MC4xNCUNCj4gICAgIGxhdCAobXNlYykgOiAyMDAwPTAuMDYlLCA+ PTIwMDA9MC4wMSUNCj4gICBjcHUgICAgICAgICAgOiB1c3I9MTguNDYlLCBzeXM9Mi42NCUsIGN0 eD02MzA5NjYzMywgbWFqZj0wLCBtaW5mPTkyMzM3MA0KPiAgIElPIGRlcHRocyAgICA6IDE9MC4x JSwgMj0wLjElLCA0PTAuMSUsIDg9MC4xJSwgMTY9MC42JSwgMzI9ODAuNCUsID49NjQ9MTkuMSUN Cj4gICAgICBzdWJtaXQgICAgOiAwPTAuMCUsIDQ9MTAwLjAlLCA4PTAuMCUsIDE2PTAuMCUsIDMy PTAuMCUsIDY0PTAuMCUsID49NjQ9MC4wJQ0KPiAgICAgIGNvbXBsZXRlICA6IDA9MC4wJSwgND05 NC4zJSwgOD0yLjklLCAxNj0xLjklLCAzMj0wLjklLCA2ND0wLjElLCA+PTY0PTAuMCUNCj4gICAg ICBpc3N1ZWQgICAgOiB0b3RhbD1yPTAvdz0xNjM4NDAwMC9kPTAsIHNob3J0PXI9MC93PTAvZD0w DQo+ICAgICAgbGF0ZW5jeSAgIDogdGFyZ2V0PTAsIHdpbmRvdz0wLCBwZXJjZW50aWxlPTEwMC4w MCUsIGRlcHRoPTY0DQo+DQo+IFJ1biBzdGF0dXMgZ3JvdXAgMCAoYWxsIGpvYnMpOg0KPiAgIFdS SVRFOiBpbz0xMDAwLjBHQiwgYWdncmI9OTg1ODZLQi9zLCBtaW5iPTk4NTg2S0IvcywgbWF4Yj05 ODU4NktCL3MsIA0KPiBtaW50PTEwNjM2MTE3bXNlYywgbWF4dD0xMDYzNjExN21zZWMNCj4NCj4g RGlzayBzdGF0cyAocmVhZC93cml0ZSk6DQo+ICAgc2RhOiBpb3M9MC8yNTEsIG1lcmdlPTAvMTQ5 LCB0aWNrcz0wLzAsIGluX3F1ZXVlPTAsIHV0aWw9MC4wMCUNCj4NCj4gU28sIGlvcHMgaGVyZSBp cyB+MTUwMC4NCj4gOTl0aCBwZXJjZW50aWxlIGxhdGVuY3kgc2hvdWxkIGJlIHdpdGhpbiA1MG1z DQo+DQo+DQo+IFdyaXRlIGFtcGxpZmljYXRpb24gYXQgZGlzayBsZXZlbDoNCj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4NCj4gVG90YWwgaG9zdCB3cml0ZXMgaW4g dGhpcyBwZXJpb2QgPSA2NDM2MTEzNDYNCj4NCj4gVG90YWwgZmxhc2ggd3JpdGVzIGluIHRoaXMg cGVyaW9kID0gMTE1NzMwNDUxMg0KPg0KPg0KPg0KPiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9z cHJlYWRzaGVldHMvZC8xZ2JJQVRCZXJTOENPelNzSlJNYmtGWENTYkxqbjYxDQo+IEZ6NDlDTEg4 V1BoN1EvZWRpdD9wbGk9MSNnaWQ9OTUzNzMwMDANCj4NCj4NCj4NCj4NCj4NCj4gU3VtbWFyeToN Cj4gLS0tLS0tLS0tLS0tDQo+DQo+IDEuICBUaGUgcGVyZm9ybWFuY2UgaXMgZG91YmxlZCBpbiBj YXNlIG9mIGZpbGVzdG9yZSBhbmQgbGF0ZW5jeSBpcyBhbG1vc3QgaGFsZi4NCj4NCj4gMi4gVG90 YWwgbnVtYmVyIG9mIGZsYXNoIHdyaXRlcyBpcyBpbXBhY3RlZCBieSBieSBib3RoIGFwcGxpY2F0 aW9uIHdyaXRlIHBhdHRlcm4gKyBGVEwgbG9naWMgZXRjLiBldGMuIFNvLCBJIGFtIG5vdCBnb2lu ZyBpbnRvIHRoYXQuICBUaGluZ3MgdG8gbm90ZSB0aGUgc2lnbmlmaWNhbnQgaW5jcmVhc2Ugb2Yg aG9zdCB3cml0ZXMgd2l0aCBuZXdzdG9yZSBhbmQgdGhhdCdzIGRlZmluaXRlbHkgY2F1c2luZyBl eHRyYSBXQSBjb21wYXJlIHRvICBmaWxlc3RvcmUuDQo+DQoNClllYWgsIGl0IHNlZW1lZCB0aGF0 IHhmcyBwbGF5cyB3ZWxsIHdoZW4gd3JpdGluZyBiYWNrLg0KDQo+IDMuIENvbnNpZGVyaW5nIGZs YXNoIHBhZ2Ugc2l6ZSA9IDRLLCB0aGUgdG90YWwgd3JpdGVzIGluIGNhc2Ugb2YgZmlsZXN0b3Jl ID0gMjQ1NSBHQiB3aXRoIGEgMTAwMCBHQiBmaW8gd3JpdGUgdnMgMzUyNCBHQiB3aXRoIG5ld3N0 b3JlLiBTbywgV0Egb2YgZmlsZXN0b3JlIGlzIH4yLjQgdnMgfjMuNSBpbiBjYXNlIG9mIG5ld3N0 b3JlLiBDb25zaWRlcmluZyBpbmhlcmVudCAyWCBXQSBmb3IgZmlsZXN0b3JlLCBpdCBpcyBkb2lu ZyBwcmV0dHkgZ29vZCBoZXJlLg0KPiAgICAgIE5vdywgaW4gY2FzZSBvZiBuZXdzdG9yZSAsIGl0 IGlzIG5vdCBzdXBwb3NlZCB0byB3cml0ZSBXQUwgaW4gY2FzZSBvZiBuZXcgd3JpdGVzLiBJdCB3 aWxsIGJlIGludGVyZXN0aW5nIHRvIHNlZSAlIG9mIG5ldyB3cml0ZXMgY29taW5nLi5XaWxsIGFu YWx5emUgdGhhdC4uDQo+DQoNCkkgdGhpbmsgaXQgc2hvdWxkIHJlc3VsdCBmcm9tIGt2ZGIuIE1h eWJlIHdlIGNhbiBzZXBhcmF0ZSBuZXdzdG9yZSdzIGRhdGEgZGlyIGFuZCBrdmRiIGRpci4gU28g d2UgY2FuIG1lYXN1cmUgdGhlIGRpZmZlcmVuY2Ugd2l0aCBkaWZmZXJlbnQgZGlzayBjb3VudGVy Lg0KDQo+IDQuIElmIHlvdSBjYW4gb3BlbiBteSB4bHMgYW5kIGdyYXBocyBhYm92ZSwgeW91IGNh biBzZWUgaW5pdGlhbGx5IGhvc3Qgd3JpdGVzIGFuZCBmbGFzaCB3cml0ZXMgYXJlIHZlcnkgc2lt aWxhciBpbiBjYXNlIG9mIG5ld3N0b3JlIGFuZCB0aGVuIGl0IGp1bXBzIGhpZ2guIE5vdCBzdXJl IHdoeSB0aG91Z2guIEkgd2lsbCByZXJ1biB0aGUgdGVzdHMgdG8gY29uZmlybSBzaW1pbGFyIHBo ZW5vbWVub24uDQo+DQo+IDUuIFRoZSBjdW11bGF0aXZlIGZsYXNoIHdyaXRlICBhbmQgY3VtdWxh dGl2ZSBob3N0IHdyaXRlIGdyYXBoIGlzIHRoZSBhY3R1YWwgV0EgKGhvc3QgKyBGVykgY2F1c2Vk IGJ5IHRoZSB3cml0ZS4NCj4NCg0KSSdtIGludGVyZXN0ZWQgaW4gdGhlIGZsYXNoIHdyaXRlIGFu ZCBkaXNrIHdyaXRlIGNvdW50ZXIsIGlzIGl0IGEgaW50ZXJuYWwgdG9vbCB0byBpbnNwZWN0IG9y IGl0J3MgYSBvcGVuc291cmNlIHRvb2w/DQoNCj4gV2hhdCdzIG5leHQ6DQo+IC0tLS0tLS0tLS0t LS0tLQ0KPg0KPiAxLiBOZWVkIHRvIHVuZGVyc3RhbmQgd2h5IDMuNSBXQSBmb3IgbmV3c3RvcmUu DQo+DQo+IDIuIFRyeSB3aXRoIGRpZmZlcmVudCAgUm9ja3NkYiB0dW5pbmcgYW5kIHJlY29yZCB0 aGUgaW1wYWN0Lg0KPg0KPg0KPiBBbnkgZmVlZGJhY2svc3VnZ2VzdGlvbiBpcyBtdWNoIGFwcHJl Y2lhdGVkLg0KPg0KPiBUaGFua3MgJiBSZWdhcmRzDQo+IFNvbW5hdGgNCj4NCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogU29tbmF0aCBSb3kNCj4gU2VudDogTW9uZGF5LCBB cHJpbCAxMywgMjAxNSA0OjU0IFBNDQo+IFRvOiBjZXBoLWRldmVsDQo+IFN1YmplY3Q6IFJlZ2Fy ZGluZyBuZXdzdG9yZSBwZXJmb3JtYW5jZQ0KPg0KPiBTYWdlLA0KPiBJIHdhcyBkb2luZyBzb21l IHByZWxpbWluYXJ5IHBlcmZvcm1hbmNlIHRlc3Rpbmcgb2YgbmV3c3RvcmUgb24gYSBzaW5nbGUg T1NEIChTU0QpICwgc2luZ2xlIHJlcGxpY2F0aW9uIHNldHVwLiBIZXJlIGlzIG15IGZpbmRpbmdz IHNvIGZhci4NCj4NCj4gVGVzdDoNCj4gLS0tLS0NCj4NCj4gICAgICAgICA2NEsgcmFuZG9tIHdy aXRlcyB3aXRoIFFEPSA2NCB1c2luZyBmaW9fcmJkLg0KPg0KPiBSZXN1bHRzIDoNCj4gLS0tLS0t LS0tLQ0KPg0KPiAgICAgICAgIDEuIFdpdGggYWxsIGRlZmF1bHQgc2V0dGluZ3MsIEkgYW0gc2Vl aW5nIHZlcnkgc3Bpa3kgcGVyZm9ybWFuY2UuIEZJTyBpcyByZXBvcnRpbmcgYmV0d2VlbiAwLX4x SyByYW5kb20gd3JpdGUgSU9QUyB3aXRoIG1hbnkgdGltZXMgSU8gc3RvcHMgYXQgMHMuLi5Ucmll ZCB3aXRoIGJpZ2dlciBvdmVybGF5IG1heCBzaXplIHZhbHVlIGJ1dCByZXN1bHRzIGFyZSBzaW1p bGFyLi4uDQo+DQo+ICAgICAgICAgMi4gTmV4dCBJIHNldCB0aGUgbmV3c3RvcmVfb3ZlcmxheV9t YXggPSAwIGFuZCBJIGdvdCBwcmV0dHkgc3RhYmxlIHBlcmZvcm1hbmNlIH44MDAtOTAwIElPUFMg KHdyaXRlIGR1cmF0aW9uIGlzIHNob3J0IHRob3VnaCkuDQo+DQo+ICAgICAgICAgMy4gSSB0cmll ZCB0byB0d2VhayBhbGwgdGhlIHNldHRpbmdzIG9uZSBieSBvbmUgYnV0IG5vdCBtdWNoIGJlbmVm aXQgYW55d2hlcmUuDQo+DQo+ICAgICAgICAgNC4gT25lIGludGVyZXN0aW5nIG9ic2VydmF0aW9u IGhlcmUsIGluIG15IHNldHVwIGlmIEkgc2V0IG5ld3N0b3JlX3N5bmNfcXVldWVfdHJhbnNhY3Rp b24gPSB0cnVlICwgSSBhbSBnZXR0aW5nIGlvcHMgfjYwMC03MDAuLldoaWNoIGlzIH4xMDAgbGVz cy4NCj4gICAgICAgICAgICAgIFRoaXMgaXMgcXVpdGUgY29udHJhcnkgdG8gbXkga2V5dmFsdWVz dG9yZSBleHBlcmltZW50IHdoZXJlIEkgZ290IH4zWCBpbXByb3ZlbWVudCBieSBkb2luZyBzeW5j ICB3cml0ZXMgIQ0KPg0KPiAgICAgICAgIDUuIEZpbGVzdG9yZSBwZXJmb3JtYW5jZSBpbiB0aGUg c2ltaWxhciBzZXR1cCBpcyB+MS42SyBhZnRlciAxIFRCIG9mIGRhdGEgd3JpdGUuDQo+DQo+IEkg YW0gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgZnJvbSB0aGUgY29kZSB3aGF0IGV4YWN0bHkgdGhpcyBv dmVybGF5IHdyaXRlcyBkb2VzLiBBbnkgaW5zaWdodC9leHBsYW5hdGlvbiB3b3VsZCBiZSBoZWxw ZnVsIGhlcmUuDQo+DQo+IEkgYW0gcGxhbm5pbmcgdG8gZG8gc29tZSBtb3JlIGV4cGVyaW1lbnQg d2l0aCBuZXdzdG9yZSBpbmNsdWRpbmcgV0EgY29tcGFyaXNvbiBiZXR3ZWVuIGZpbGVzdG9yZSB2 cyBuZXdzdG9yZS4gV2lsbCBwdWJsaXNoIHRoZSByZXN1bHQgc29vbi4NCj4NCj4gVGhhbmtzICYg UmVnYXJkcw0KPiBTb21uYXRoDQo+DQo+DQo+DQo+DQo+DQo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fDQo+DQo+IFBMRUFTRSBOT1RFOiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVk IGluIHRoaXMgZWxlY3Ryb25pYyBtYWlsIG1lc3NhZ2UgaXMgaW50ZW5kZWQgb25seSBmb3IgdGhl IHVzZSBvZiB0aGUgZGVzaWduYXRlZCByZWNpcGllbnQocykgbmFtZWQgYWJvdmUuIElmIHRoZSBy ZWFkZXIgb2YgdGhpcyBtZXNzYWdlIGlzIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCB5b3Ug YXJlIGhlcmVieSBub3RpZmllZCB0aGF0IHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgbWVzc2FnZSBp biBlcnJvciBhbmQgdGhhdCBhbnkgcmV2aWV3LCBkaXNzZW1pbmF0aW9uLCBkaXN0cmlidXRpb24s IG9yIGNvcHlpbmcgb2YgdGhpcyBtZXNzYWdlIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlv dSBoYXZlIHJlY2VpdmVkIHRoaXMgY29tbXVuaWNhdGlvbiBpbiBlcnJvciwgcGxlYXNlIG5vdGlm eSB0aGUgc2VuZGVyIGJ5IHRlbGVwaG9uZSBvciBlLW1haWwgKGFzIHNob3duIGFib3ZlKSBpbW1l ZGlhdGVseSBhbmQgZGVzdHJveSBhbnkgYW5kIGFsbCBjb3BpZXMgb2YgdGhpcyBtZXNzYWdlIGlu IHlvdXIgcG9zc2Vzc2lvbiAod2hldGhlciBoYXJkIGNvcGllcyBvciBlbGVjdHJvbmljYWxseSBz dG9yZWQgY29waWVzKS4NCj4NCj4gLS0NCj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6 IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGNlcGgtZGV2ZWwiIA0KPiBpbiB0aGUgYm9keSBv ZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZyBNb3JlIG1ham9yZG9tbyAN Cj4gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sDQoN Cg0KDQotLQ0KQmVzdCBSZWdhcmRzLA0KDQpXaGVhdA0KBCB7Lm4gKyAgICAgICArJSAgbHp3bSAg YiDrp7IgIHIgIHnHqSDXr3pYICAXICDcqH0gICDGoHogJmo6K3YgICAgICAgIHpaKyAgK3pmICAg aCAgIH4gICAgaSAgIHogHiB3ICAgPyAgICAmICnfohtmDQo=