From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Balzer Subject: Re: Dramatic performance drop at certain number of objects in pool Date: Fri, 24 Jun 2016 09:08:06 +0900 Message-ID: <20160624090806.1246b1ff@batzmaru.gol.ad.jp> References: <1450235390.2134.1466084299677@ox.pcextreme.nl> <20160621075856.3ad471d1@batzmaru.gol.ad.jp> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ceph-users-bounces-idqoXFIVOFJgJs9I8MT0rw@public.gmane.org Sender: "ceph-users" To: "ceph-users-idqoXFIVOFJgJs9I8MT0rw@public.gmane.org" Cc: Blair Bethwaite , Ceph Development List-Id: ceph-devel.vger.kernel.org CkhlbGxvLAoKT24gVGh1LCAyMyBKdW4gMjAxNiAyMjoyNDo1OSArMDAwMCBTb21uYXRoIFJveSB3 cm90ZToKCj4gT3IgZXZlbiB2bS52ZnNfY2FjaGVfcHJlc3N1cmUgPSAwIGlmIHlvdSBoYXZlIHN1 ZmZpY2llbnQgbWVtb3J5IHRvICpwaW4qCj4gaW5vZGUvZGVudHJpZXMgaW4gbWVtb3J5LiBXZSBh cmUgdXNpbmcgdGhhdCBmb3IgbG9uZyBub3cgKHdpdGggMTI4IFRCCj4gbm9kZSBtZW1vcnkpIGFu ZCBpdCBzZWVtcyBoZWxwaW5nIHNwZWNpYWxseSBmb3IgdGhlIHJhbmRvbSB3cml0ZQo+IHdvcmts b2FkIGFuZCBzYXZpbmcgeGF0dHJzIHJlYWQgaW4gYmV0d2Vlbi4KPgoxMjhUQiBub2RlIG1lbW9y eSwgcmVhbGx5PwpDYW4gSSBoYXZlIHNvbWUgb2YgdGhvc2UsIHRvbz8gXm9eCkFuZCBoZXJlIEkg d2FzIHRoaW5raW5nIHRoYXQgV2FkZSdzIDY2MEdCIG1hY2hpbmVzIHdlcmUgb24gdGhlIGV4Y2Vz c2l2ZQpzaWRlLgoKVGhlcmUncyBzb21ldGhpbmcgdG8gYmUgc2FpZCAoYW5kIG9wdGltaXplZCkg d2hlbiB5b3VyIHN0b3JhZ2Ugbm9kZXMgaGF2ZQp0aGUgc2FtZSBvciBtb3JlIFJBTSBhcyB5b3Vy IGNvbXB1dGUgbm9kZXMuLi4KCkFzIGZvciBXYXJyZW4sIHdlbGwgc3BvdHRlZC4gCkkgcGVyc29u YWxseSB1c2Ugdm0udmZzX2NhY2hlX3ByZXNzdXJlID0gMSwgdGhpcyBhdm9pZHMgdGhlIHBvdGVu dGlhbApmaXJld29ya3MgaWYgeW91ciBtZW1vcnkgaXMgcmVhbGx5IG5lZWRlZCBlbHNld2hlcmUs IHdoaWxlIGtlZXBpbmcgdGhpbmdzCmluIG1lbW9yeSBub3JtYWxseS4gCgpDaHJpc3RpYW4KCj4g VGhhbmtzICYgUmVnYXJkcwo+IFNvbW5hdGgKPiAKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQo+IEZyb206IGNlcGgtdXNlcnMgW21haWx0bzpjZXBoLXVzZXJzLWJvdW5jZXNAbGlzdHMuY2Vw aC5jb21dIE9uIEJlaGFsZiBPZgo+IFdhcnJlbiBXYW5nIC0gSVNEIFNlbnQ6IFRodXJzZGF5LCBK dW5lIDIzLCAyMDE2IDM6MDkgUE0KPiBUbzogV2FkZSBIb2xsZXI7IEJsYWlyIEJldGh3YWl0ZQo+ IENjOiBDZXBoIERldmVsb3BtZW50OyBjZXBoLXVzZXJzQGxpc3RzLmNlcGguY29tCj4gU3ViamVj dDogUmU6IFtjZXBoLXVzZXJzXSBEcmFtYXRpYyBwZXJmb3JtYW5jZSBkcm9wIGF0IGNlcnRhaW4g bnVtYmVyIG9mCj4gb2JqZWN0cyBpbiBwb29sCj4gCj4gdm0udmZzX2NhY2hlX3ByZXNzdXJlID0g MTAwCj4gCj4gR28gdGhlIG90aGVyIGRpcmVjdGlvbiBvbiB0aGF0LiBZb3XCuWxsIHdhbnQgdG8g a2VlcCBpdCBsb3cgdG8gaGVscCBrZWVwCj4gaW5vZGUvZGVudHJ5IGluZm8gaW4gbWVtb3J5LiBX ZSB1c2UgMTAsIGFuZCBoYXZlbsK5dCBoYWQgYSBwcm9ibGVtLgo+IAo+IAo+IFdhcnJlbiBXYW5n Cj4gCj4gCj4gCj4gCj4gT24gNi8yMi8xNiwgOTo0MSBQTSwgIldhZGUgSG9sbGVyIiA8d2FkZS5o b2xsZXJAZ21haWwuY29tPiB3cm90ZToKPiAKPiA+QmxhaXJvLAo+ID4KPiA+V2UnbGwgc3BlYWsg aW4gcHJlLXJlcGxpY2F0aW9uIG51bWJlcnMsIHJlcGxpY2F0aW9uIGZvciB0aGlzIHBvb2wgaXMg My4KPiA+Cj4gPjIzLjMgTWlsbGlvbiBPYmplY3RzIC8gT1NECj4gPnBnX251bSAyMDQ4Cj4gPjE2 IE9TRHMgLyBTZXJ2ZXIKPiA+MyBTZXJ2ZXJzCj4gPjY2MCBHQiBSQU0gVG90YWwsIDE3OSBHQiBV c2VkIChmcmVlIC10KSAvIFNlcnZlciB2bS5zd2FwcGluZXNzID0gMQo+ID52bS52ZnNfY2FjaGVf cHJlc3N1cmUgPSAxMDAKPiA+Cj4gPldvcmtsb2FkIGlzIG5hdGl2ZSBsaWJyYWRvcyB3aXRoIHB5 dGhvbi4gIEFMTCA0ayBvYmplY3RzLgo+ID4KPiA+QmVzdCBSZWdhcmRzLAo+ID5XYWRlCj4gPgo+ ID4KPiA+T24gV2VkLCBKdW4gMjIsIDIwMTYgYXQgOTozMyBQTSwgQmxhaXIgQmV0aHdhaXRlCj4g PjxibGFpci5iZXRod2FpdGVAZ21haWwuY29tPiB3cm90ZToKPiA+PiBXYWRlLCBnb29kIHRvIGtu b3cuCj4gPj4KPiA+PiBGb3IgdGhlIHJlY29yZCwgd2hhdCBkb2VzIHRoaXMgd29yayBvdXQgdG8g cm91Z2hseSBwZXIgT1NEPyBBbmQgaG93Cj4gPj4gbXVjaCBSQU0gYW5kIGhvdyBtYW55IFBHcyBw ZXIgT1NEIGRvIHlvdSBoYXZlPwo+ID4+Cj4gPj4gV2hhdCdzIHlvdXIgd29ya2xvYWQ/IEkgd29u ZGVyIHdoZXRoZXIgZm9yIGNlcnRhaW4gd29ya2xvYWRzIChlLmcuCj4gPj4gUkJEKSBpdCdzIGJl dHRlciB0byBpbmNyZWFzZSBkZWZhdWx0IG9iamVjdCBzaXplIHNvbWV3aGF0IGJlZm9yZQo+ID4+ IHB1c2hpbmcgdGhlIHNwbGl0L21lcmdlIHVwIGEgbG90Li4uCj4gPj4KPiA+PiBDaGVlcnMsCj4g Pj4KPiA+PiBPbiAyMyBKdW5lIDIwMTYgYXQgMTE6MjYsIFdhZGUgSG9sbGVyIDx3YWRlLmhvbGxl ckBnbWFpbC5jb20+IHdyb3RlOgo+ID4+PiBCYXNlZCBvbiBldmVyeW9uZXMgc3VnZ2VzdGlvbnM7 IFRoZSBmaXJzdCBtb2RpZmljYXRpb24gdG8gNTAgLyAxNgo+ID4+PiBlbmFibGVkIG91ciBjb25m aWcgdG8gZ2V0IHRvIH42NDVNaWxsIG9iamVjdHMgYmVmb3JlIHRoZSBiZWhhdmlvciBpbgo+ID4+ PiBxdWVzdGlvbiB3YXMgb2JzZXJ2ZWQgKH4zMzAgd2FzIHRoZSBwcmV2aW91cyBjZWlsaW5nKS4g IFN1YnNlcXVlbnQKPiA+Pj4gbW9kaWZpY2F0aW9uIHRvIDUwIC8gMjQgaGFzIGVuYWJsZWQgdXMg dG8gZ2V0IHRvIDEuMSBCaWxsaW9uKwo+ID4+Pgo+ID4+PiBUaGFuayB5b3UgYWxsIHZlcnkgbXVj aCBmb3IgeW91ciBzdXBwb3J0IGFuZCBhc3Npc3RhbmNlLgo+ID4+Pgo+ID4+PiBCZXN0IFJlZ2Fy ZHMsCj4gPj4+IFdhZGUKPiA+Pj4KPiA+Pj4KPiA+Pj4gT24gTW9uLCBKdW4gMjAsIDIwMTYgYXQg Njo1OCBQTSwgQ2hyaXN0aWFuIEJhbHplciA8Y2hpYmlAZ29sLmNvbT4KPiA+Pj53cm90ZToKPiA+ Pj4+Cj4gPj4+PiBIZWxsbywKPiA+Pj4+Cj4gPj4+PiBPbiBNb24sIDIwIEp1biAyMDE2IDIwOjQ3 OjMyICswMDAwIFdhcnJlbiBXYW5nIC0gSVNEIHdyb3RlOgo+ID4+Pj4KPiA+Pj4+PiBTb3JyeSwg bGF0ZSB0byB0aGUgcGFydHkgaGVyZS4gSSBhZ3JlZSwgdXAgdGhlIG1lcmdlIGFuZCBzcGxpdAo+ ID4+Pj4+dGhyZXNob2xkcy4gV2UncmUgYXMgaGlnaCBhcyA1MC8xMi4gSSBjaGltZWQgaW4gb24g YW4gUkggdGlja2V0Cj4gPj4+Pj5oZXJlLgo+ID4+Pj4+IE9uZSBvZiB0aG9zZSB0aGluZ3MgeW91 IGp1c3QgaGF2ZSB0byBmaW5kIG91dCBhcyBhbiBvcGVyYXRvciBzaW5jZQo+ID4+Pj4+aXQncyAg bm90IHdlbGwgZG9jdW1lbnRlZCA6KAo+ID4+Pj4+Cj4gPj4+Pj4gaHR0cHM6Ly9idWd6aWxsYS5y ZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMjE5OTc0Cj4gPj4+Pj4KPiA+Pj4+PiBXZSBoYXZl IG92ZXIgMjAwIG1pbGxpb24gb2JqZWN0cyBpbiB0aGlzIGNsdXN0ZXIsIGFuZCBpdCdzIHN0aWxs Cj4gPj4+Pj5kb2luZyAgb3ZlciAxNTAwMCB3cml0ZSBJT1BTIGFsbCBkYXkgbG9uZyB3aXRoIDMw MiBzcGlubmluZyBkcml2ZXMKPiA+Pj4+PisgU0FUQSBTU0QgIGpvdXJuYWxzLiBIYXZpbmcgZW5v dWdoIG1lbW9yeSBhbmQgZHJvcHBpbmcgeW91cgo+ID4+Pj4+dmZzX2NhY2hlX3ByZXNzdXJlICBz aG91bGQgYWxzbyBoZWxwLgo+ID4+Pj4+Cj4gPj4+PiBJbmRlZWQuCj4gPj4+Pgo+ID4+Pj4gU2lu Y2UgaXQgd2FzIGFza2VkIGluIHRoYXQgYnVnIHJlcG9ydCBhbmQgYWxzbyBteSBmaXJzdCBzdXNw aWNpb24sCj4gPj4+Pml0ICB3b3VsZCBwcm9iYWJseSBiZSBnb29kIHRpbWUgdG8gY2xhcmlmeSB0 aGF0IGl0IGlzbid0IHRoZSBzcGxpdHMKPiA+Pj4+dGhhdCBjYXVzZSAgdGhlIHBlcmZvcm1hbmNl IGRlZ3JhZGF0aW9uLCBidXQgdGhlIHJlc3VsdGluZyBpbmZsYXRpb24KPiA+Pj4+b2YgZGlyIGVu dHJpZXMgIGFuZCBleGhhdXN0aW9uIG9mIFNMQUIgYW5kIHRodXMgaGF2aW5nIHRvIGdvIHRvIGRp c2sKPiA+Pj4+Zm9yIHRoaW5ncyB0aGF0ICBub3JtYWxseSB3b3VsZCBiZSBpbiBtZW1vcnkuCj4g Pj4+Pgo+ID4+Pj4gTG9va2luZyBhdCBCbGFpcidzIGdyYXBoIGZyb20geWVzdGVyZGF5IHByZXR0 eSBtdWNoIG1ha2VzIHRoYXQKPiA+Pj4+Y2xlYXIsIGEgIHB1cmVseSBzcGxpdCBjYXVzZWQgZGVn cmFkYXRpb24gc2hvdWxkIGhhdmUgcmVsZW50ZWQgbXVjaAo+ID4+Pj5xdWlja2VyLgo+ID4+Pj4K PiA+Pj4+Cj4gPj4+Pj4gS2VlcCBpbiBtaW5kIHRoYXQgaWYgeW91IGNoYW5nZSB0aGUgdmFsdWVz LCBpdCB3b24ndCB0YWtlIGVmZmVjdAo+ID4+Pj4+IGltbWVkaWF0ZWx5LiBJdCBvbmx5IG1lcmdl cyB0aGVtIGJhY2sgaWYgdGhlIGRpcmVjdG9yeSBpcyB1bmRlcgo+ID4+Pj4+IHRoZSBjYWxjdWxh dGVkIHRocmVzaG9sZCBhbmQgYSB3cml0ZSBvY2N1cnMgKG1heWJlIGEgcmVhZCwgSQo+ID4+Pj4+ IGZvcmdldCkuCj4gPj4+Pj4KPiA+Pj4+IElmIGl0J3MgYSByZWFkIGEgcGxhaW4gc2NydWIgbWln aHQgZG8gdGhlIHRyaWNrLgo+ID4+Pj4KPiA+Pj4+IENocmlzdGlhbgo+ID4+Pj4+IFdhcnJlbgo+ ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiBGcm9tOiBjZXBoLXVzZXJzCj4gPj4+Pj4KPiA+Pj4+Pjxj ZXBoLXVzZXJzLWJvdW5jZXNAbGlzdHMuY2VwaC5jb208bWFpbHRvOmNlcGgtdXNlcnMtYm91bmNl c0BsaXN0cy4KPiA+Pj4+PmNlcAo+ID4+Pj4+aC5jb20+Pgo+ID4+Pj4+IG9uIGJlaGFsZiBvZiBX YWRlIEhvbGxlcgo+ID4+Pj4+IDx3YWRlLmhvbGxlckBnbWFpbC5jb208bWFpbHRvOndhZGUuaG9s bGVyQGdtYWlsLmNvbT4+IERhdGU6Cj4gPj4+Pj5Nb25kYXksIEp1bmUgIDIwLCAyMDE2IGF0IDI6 NDggUE0gVG86IEJsYWlyIEJldGh3YWl0ZQo+ID4+Pj4+PGJsYWlyLmJldGh3YWl0ZUBnbWFpbC5j b208bWFpbHRvOmJsYWlyLmJldGh3YWl0ZUBnbWFpbC5jb20+PiwgV2lkbwo+ID4+Pj4+ZGVuICBI b2xsYW5kZXIgPHdpZG9ANDJvbi5jb208bWFpbHRvOndpZG9ANDJvbi5jb20+PiBDYzogQ2VwaAo+ ID4+Pj4+RGV2ZWxvcG1lbnQKPiA+Pj4+PjxjZXBoLWRldmVsQHZnZXIua2VybmVsLm9yZzxtYWls dG86Y2VwaC1kZXZlbEB2Z2VyLmtlcm5lbC5vcmc+PiwKPiA+Pj4+PiAiY2VwaC11c2Vyc0BsaXN0 cy5jZXBoLmNvbTxtYWlsdG86Y2VwaC11c2Vyc0BsaXN0cy5jZXBoLmNvbT4iCj4gPj4+Pj4gPGNl cGgtdXNlcnNAbGlzdHMuY2VwaC5jb208bWFpbHRvOmNlcGgtdXNlcnNAbGlzdHMuY2VwaC5jb20+ Pgo+ID4+Pj4+U3ViamVjdDoKPiA+Pj4+PiBSZTogW2NlcGgtdXNlcnNdIERyYW1hdGljIHBlcmZv cm1hbmNlIGRyb3AgYXQgY2VydGFpbiBudW1iZXIgb2YKPiA+Pj4+Pm9iamVjdHMgIGluIHBvb2wK PiA+Pj4+Pgo+ID4+Pj4+IFRoYW5rcyBldmVyeW9uZSBmb3IgeW91ciByZXBsaWVzLiAgSSBzaW5j ZXJlbHkgYXBwcmVjaWF0ZSBpdC4gV2UKPiA+Pj4+PiBhcmUgdGVzdGluZyB3aXRoIGRpZmZlcmVu dCBwZ19udW0gYW5kIGZpbGVzdG9yZV9zcGxpdF9tdWx0aXBsZQo+ID4+Pj4+IHNldHRpbmdzLiBF YXJseSBpbmRpY2F0aW9ucyBhcmUgLi4uLiB3ZWxsIG5vdCBncmVhdC4gUmVnYXJkbGVzcyBpdAo+ ID4+Pj4+IGlzIG5pY2UgdG8gdW5kZXJzdGFuZCB0aGUgc3ltcHRvbXMgYmV0dGVyIHNvIHdlIHRy eSB0byBkZXNpZ24KPiA+Pj4+PiBhcm91bmQgaXQuCj4gPj4+Pj4KPiA+Pj4+PiBCZXN0IFJlZ2Fy ZHMsCj4gPj4+Pj4gV2FkZQo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiBPbiBNb24sIEp1biAyMCwg MjAxNiBhdCAyOjMyIEFNIEJsYWlyIEJldGh3YWl0ZQo+ID4+Pj4+PGJsYWlyLmJldGh3YWl0ZUBn bWFpbC5jb208bWFpbHRvOmJsYWlyLmJldGh3YWl0ZUBnbWFpbC5jb20+PiB3cm90ZToKPiA+Pj4+ Pk9uCj4gPj4+Pj4gMjAgSnVuZSAyMDE2IGF0IDA5OjIxLCBCbGFpciBCZXRod2FpdGUKPiA+Pj4+ PjxibGFpci5iZXRod2FpdGVAZ21haWwuY29tPG1haWx0bzpibGFpci5iZXRod2FpdGVAZ21haWwu Y29tPj4gd3JvdGU6Cj4gPj4+Pj4gPiBzbG93IHJlcXVlc3QgaXNzdWVzKS4gSWYgeW91IHdhdGNo IHlvdXIgeGZzIHN0YXRzIHlvdSdsbCBsaWtlbHkKPiA+Pj4+PiA+IGdldCBmdXJ0aGVyIGNvbmZp cm1hdGlvbi4gSW4gbXkgZXhwZXJpZW5jZSB4c19kaXJfbG9va3Vwcwo+ID4+Pj4+ID4gYmFsbG9v bnMKPiA+Pj4+Pih3aGljaAo+ID4+Pj4+ID4gbWVhbnMgZGlyZWN0b3J5IGxvb2t1cHMgYXJlIG1p c3NpbmcgY2FjaGUgYW5kIGdvaW5nIHRvIGRpc2spLgo+ID4+Pj4+Cj4gPj4+Pj4gTXVycGh5J3Mg YSBiaXRjaC4gVG9kYXkgd2UgdXBncmFkZWQgYSBjbHVzdGVyIHRvIGxhdGVzdCBIYW1tZXIgaW4K PiA+Pj4+PiBwcmVwYXJhdGlvbiBmb3IgSmV3ZWwvUkhDUzIuIFR1cm5zIG91dCB3aGVuIHdlIGxh c3QgaGl0IHRoaXMgdmVyeQo+ID4+Pj4+IHByb2JsZW0gd2UgaGFkIG9ubHkgZXBoZW1lcmFsbHkg c2V0IHRoZSBuZXcgZmlsZXN0b3JlIG1lcmdlL3NwbGl0Cj4gPj4+Pj4gdmFsdWVzIC0gb29wcy4g SGVyZSdzIHdoYXQgc3RhcnRlZCBoYXBwZW5pbmcgd2hlbiB3ZSB1cGdyYWRlZCBhbmQKPiA+Pj4+ PiByZXN0YXJ0ZWQgYSBidW5jaCBvZiBPU0RzOgo+ID4+Pj4+Cj4gPj4+Pj5odHRwczovL2F1LWVh c3QuZXJjLm1vbmFzaC5lZHUuYXUvc3dpZnQvdjEvcHVibGljL2dyYWZhbmEtY2VwaC14c19kCj4g Pj4+Pj5pcl8KPiA+Pj4+Pmxvb2t1cC5wbmcKPiA+Pj4+Pgo+ID4+Pj4+IFNlZW1lZCB0byBjYXVz ZSBsb3RzIG9mIHNsb3cgcmVxdWVzdHMgOi0vLiBXZSBjb3JyZWN0ZWQgaXQgYWJvdXQKPiA+Pj4+ PiAxMjozMCwgdGhlbiBzdGlsbCB0b29rIGEgd2hpbGUgdG8gc2V0dGxlLgo+ID4+Pj4+Cj4gPj4+ Pj4gLS0KPiA+Pj4+PiBDaGVlcnMsCj4gPj4+Pj4gfkJsYWlybwo+ID4+Pj4+Cj4gPj4+Pj4gVGhp cyBlbWFpbCBhbmQgYW55IGZpbGVzIHRyYW5zbWl0dGVkIHdpdGggaXQgYXJlIGNvbmZpZGVudGlh bCBhbmQKPiA+Pj4+PmludGVuZGVkIHNvbGVseSBmb3IgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5 IHRvIHdob20gdGhleSBhcmUKPiA+Pj4+PmFkZHJlc3NlZC4KPiA+Pj4+PiBJZiB5b3UgaGF2ZSBy ZWNlaXZlZCB0aGlzIGVtYWlsIGluIGVycm9yIGRlc3Ryb3kgaXQgaW1tZWRpYXRlbHkuCj4gPj4+ Pj4qKiogIFdhbG1hcnQgQ29uZmlkZW50aWFsICoqKgo+ID4+Pj4KPiA+Pj4+Cj4gPj4+PiAtLQo+ ID4+Pj4gQ2hyaXN0aWFuIEJhbHplciAgICAgICAgTmV0d29yay9TeXN0ZW1zIEVuZ2luZWVyCj4g Pj4+PiBjaGliaUBnb2wuY29tICAgICAgICAgICBHbG9iYWwgT25MaW5lIEphcGFuL1Jha3V0ZW4g Q29tbXVuaWNhdGlvbnMKPiA+Pj4+IGh0dHA6Ly93d3cuZ29sLmNvbS8KPiA+Pgo+ID4+Cj4gPj4K PiA+PiAtLQo+ID4+IENoZWVycywKPiA+PiB+QmxhaXJvCj4gCj4gVGhpcyBlbWFpbCBhbmQgYW55 IGZpbGVzIHRyYW5zbWl0dGVkIHdpdGggaXQgYXJlIGNvbmZpZGVudGlhbCBhbmQKPiBpbnRlbmRl ZCBzb2xlbHkgZm9yIHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9tIHRoZXkgYXJlIGFk ZHJlc3NlZC4KPiBJZiB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIGVtYWlsIGluIGVycm9yIGRlc3Ry b3kgaXQgaW1tZWRpYXRlbHkuICoqKgo+IFdhbG1hcnQgQ29uZmlkZW50aWFsICoqKiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGNlcGgtdXNlcnMgbWFp bGluZyBsaXN0IGNlcGgtdXNlcnNAbGlzdHMuY2VwaC5jb20KPiBodHRwOi8vbGlzdHMuY2VwaC5j b20vbGlzdGluZm8uY2dpL2NlcGgtdXNlcnMtY2VwaC5jb20gUExFQVNFIE5PVEU6IFRoZQo+IGlu Zm9ybWF0aW9uIGNvbnRhaW5lZCBpbiB0aGlzIGVsZWN0cm9uaWMgbWFpbCBtZXNzYWdlIGlzIGlu dGVuZGVkIG9ubHkKPiBmb3IgdGhlIHVzZSBvZiB0aGUgZGVzaWduYXRlZCByZWNpcGllbnQocykg bmFtZWQgYWJvdmUuIElmIHRoZSByZWFkZXIgb2YKPiB0aGlzIG1lc3NhZ2UgaXMgbm90IHRoZSBp bnRlbmRlZCByZWNpcGllbnQsIHlvdSBhcmUgaGVyZWJ5IG5vdGlmaWVkIHRoYXQKPiB5b3UgaGF2 ZSByZWNlaXZlZCB0aGlzIG1lc3NhZ2UgaW4gZXJyb3IgYW5kIHRoYXQgYW55IHJldmlldywKPiBk aXNzZW1pbmF0aW9uLCBkaXN0cmlidXRpb24sIG9yIGNvcHlpbmcgb2YgdGhpcyBtZXNzYWdlIGlz IHN0cmljdGx5Cj4gcHJvaGliaXRlZC4gSWYgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBjb21tdW5p Y2F0aW9uIGluIGVycm9yLCBwbGVhc2UKPiBub3RpZnkgdGhlIHNlbmRlciBieSB0ZWxlcGhvbmUg b3IgZS1tYWlsIChhcyBzaG93biBhYm92ZSkgaW1tZWRpYXRlbHkKPiBhbmQgZGVzdHJveSBhbnkg YW5kIGFsbCBjb3BpZXMgb2YgdGhpcyBtZXNzYWdlIGluIHlvdXIgcG9zc2Vzc2lvbgo+ICh3aGV0 aGVyIGhhcmQgY29waWVzIG9yIGVsZWN0cm9uaWNhbGx5IHN0b3JlZCBjb3BpZXMpLgo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGNlcGgtdXNlcnMgbWFp bGluZyBsaXN0Cj4gY2VwaC11c2Vyc0BsaXN0cy5jZXBoLmNvbQo+IGh0dHA6Ly9saXN0cy5jZXBo LmNvbS9saXN0aW5mby5jZ2kvY2VwaC11c2Vycy1jZXBoLmNvbQo+IAoKCi0tIApDaHJpc3RpYW4g QmFsemVyICAgICAgICBOZXR3b3JrL1N5c3RlbXMgRW5naW5lZXIgICAgICAgICAgICAgICAgCmNo aWJpQGdvbC5jb20gICAJR2xvYmFsIE9uTGluZSBKYXBhbi9SYWt1dGVuIENvbW11bmljYXRpb25z Cmh0dHA6Ly93d3cuZ29sLmNvbS8KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KY2VwaC11c2VycyBtYWlsaW5nIGxpc3QKY2VwaC11c2Vyc0BsaXN0cy5jZXBo LmNvbQpodHRwOi8vbGlzdHMuY2VwaC5jb20vbGlzdGluZm8uY2dpL2NlcGgtdXNlcnMtY2VwaC5j b20K