From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Do NOT skip the first 4k of stolen memory for pre-allocated buffers Date: Wed, 4 Apr 2018 23:49:01 +0300 Message-ID: <20180404204901.GJ5453@intel.com> References: <20180330122715.18209-1-hdegoede@redhat.com> <152241303027.28244.1808321725923870922@mail.alporthouse.com> <57542ba3-b9d3-7603-f5d6-a3e9addd661b@redhat.com> <152241386519.28244.4073756569022574057@mail.alporthouse.com> <89d3f73e-5885-0716-5f27-c277690ba307@redhat.com> <20180404155016.GF5453@intel.com> <1da08657-8590-2bf7-6915-5043b4b7e7af@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1da08657-8590-2bf7-6915-5043b4b7e7af@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Hans de Goede Cc: intel-gfx , dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBBcHIgMDQsIDIwMTggYXQgMTA6MDY6MjlQTSArMDIwMCwgSGFucyBkZSBHb2VkZSB3 cm90ZToKPiBIaSwKPiAKPiBPbiAwNC0wNC0xOCAxNzo1MCwgVmlsbGUgU3lyasOkbMOkIHdyb3Rl Ogo+ID4gT24gRnJpLCBNYXIgMzAsIDIwMTggYXQgMDQ6MjY6NTNQTSArMDIwMCwgSGFucyBkZSBH b2VkZSB3cm90ZToKPiA+PiBIaSwKPiA+Pgo+ID4+IE9uIDMwLTAzLTE4IDE1OjI1LCBIYW5zIGRl IEdvZWRlIHdyb3RlOgo+ID4+PiBIaSwKPiA+Pj4KPiA+Pj4gT24gMzAtMDMtMTggMTQ6NDQsIENo cmlzIFdpbHNvbiB3cm90ZToKPiA+Pj4+IFF1b3RpbmcgSGFucyBkZSBHb2VkZSAoMjAxOC0wMy0z MCAxMzozNzo0MCkKPiA+Pj4+PiBIaSwKPiA+Pj4+Pgo+ID4+Pj4+IE9uIDMwLTAzLTE4IDE0OjMw LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPj4+Pj4+IFF1b3RpbmcgSGFucyBkZSBHb2VkZSAoMjAx OC0wMy0zMCAxMzoyNzoxNSkKPiA+Pj4+Pj4+IEJlZm9yZSB0aGlzIGNvbW1pdCB0aGUgV2FTa2lw U3RvbGVuTWVtb3J5Rmlyc3RQYWdlIHdvcmthcm91bmQgY29kZSB3YXMKPiA+Pj4+Pj4+IHNraXBw aW5nIHRoZSBmaXJzdCA0ayBieSBwYXNzaW5nIDQwOTYgYXMgc3RhcnQgb2YgdGhlIGFkZHJlc3Mg cmFuZ2UgcGFzc2VkCj4gPj4+Pj4+PiB0byBkcm1fbW1faW5pdCgpLiBUaGlzIG1lYW5zIHRoYXQg Y2FsbGluZyBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCkgdG8gdHJ5IGFuZAo+ID4+Pj4+Pj4gcmVzZXJ2 ZSB0aGUgZmlybXdhcmUgZnJhbWVidWZmZXIgc28gdGhhdCB3ZSBjYW4gaW5oZXJpdCBpdCB3b3Vs ZCBhbHdheXMKPiA+Pj4+Pj4+IGZhaWwsIGFzIHRoZSBmaXJtd2FyZSBmcmFtZWJ1ZmZlciBzdGFy dHMgYXQgYWRkcmVzcyAwLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IENvbW1pdCBkNDM1Mzc2MTA0NzAg KCJkcm0vaTkxNTogc2tpcCB0aGUgZmlyc3QgNGsgb2Ygc3RvbGVuIG1lbW9yeSBvbgo+ID4+Pj4+ Pj4gZXZlcnl0aGluZyA+PSBnZW44Iikgc2F5cyBpbiBpdHMgY29tbWl0IG1lc3NhZ2U6ICJUaGlz IGlzIGNvbmZpcm1lZCB0byBmaXgKPiA+Pj4+Pj4+IFNreWxha2Ugc2NyZWVuIGZsaWNrZXJpbmcg aXNzdWVzIChwcm9iYWJseSBjYXVzZWQgYnkgdGhlIGZhY3QgdGhhdCB3ZQo+ID4+Pj4+Pj4gaW5p dGlhbGl6ZWQgYSByaW5nIGluIHRoZSBmaXJzdCBwYWdlIG9mIHN0b2xlbiwgYnV0IEkgZGlkbid0 IDEwMCUgY29uZmlybQo+ID4+Pj4+Pj4gdGhpcyB0aGVvcnkpLiIKPiA+Pj4+Pj4+Cj4gPj4+Pj4+ PiBXaGljaCBzdWdnZXN0cyB0aGF0IGl0IGlzIHNhZmUgdG8gdXNlIHRoZSBmaXJzdCBwYWdlIGZv ciBhIGxpbmVhcgo+ID4+Pj4+Pj4gZnJhbWVidWZmZXIgYXMgdGhlIGZpcm13YXJlIGlzIGRvaW5n Lgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IFRoaXMgY29tbWl0IGFsd2F5cyBwYXNzZXMgMCBhcyBzdGFy dCB0byBkcm1fbW1faW5pdCgpIGFuZCB3b3JrcyBhcm91bmQKPiA+Pj4+Pj4+IFdhU2tpcFN0b2xl bk1lbW9yeUZpcnN0UGFnZSBpbiBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0X25vZGVfaW5fcmFuZ2Uo KQo+ID4+Pj4+Pj4gYnkgaW5zdXJpbmcgdGhlIHN0YXJ0IGFkZHJlc3MgcGFzc2VkIGJ5IHRvIGRy bV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZSgpCj4gPj4+Pj4+PiBpcyBhbHdheXMgNGsgb3IgbW9y ZS4gQWxsIGVudHJ5IHBvaW50cyB0byBpOTE1X2dlbV9zdG9sZW4uYyBnbyB0aHJvdWdoCj4gPj4+ Pj4+PiBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0X25vZGVfaW5fcmFuZ2UoKSwgc28gdGhhdCBhbnkg bmV3bHkgYWxsb2NhdGVkCj4gPj4+Pj4+PiBvYmplY3RzIHN1Y2ggYXMgcmluZy1idWZmZXJzIHdp bGwgbm90IGJlIGFsbG9jYXRlZCBpbiB0aGUgZmlyc3QgNGsuCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4g VGhlIG9uZSBleGNlcHRpb24gaXMgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3By ZWFsbG9jYXRlZCgpCj4gPj4+Pj4+PiB3aGljaCBkaXJlY3RseSBjYWxscyBkcm1fbW1fcmVzZXJ2 ZV9ub2RlKCkgd2hpY2ggbm93IHdpbGwgYmUgYWJsZSB0bwo+ID4+Pj4+Pj4gdXNlIHRoZSBmaXJz dCA0ay4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBUaGlzIGZpeGVzIHRoZSBpOTE1IGRyaXZlciBubyBs b25nZXIgYmVpbmcgYWJsZSB0byBpbmhlcml0IHRoZSBmaXJtd2FyZQo+ID4+Pj4+Pj4gZnJhbWVi dWZmZXIgb24gZ2VuOCssIHdoaWNoIGZpeGVzIHRoZSB2aWRlbyBvdXRwdXQgY2hhbmdpbmcgZnJv bSB0aGUKPiA+Pj4+Pj4+IHZlbmRvciBsb2dvIHRvIGEgYmxhY2sgc2NyZWVuIGFzIHNvb24gYXMg dGhlIGk5MTUgZHJpdmVyIGlzIGxvYWRlZAo+ID4+Pj4+Pj4gKG9uIHN5c3RlbXMgd2l0aG91dCBm YmNvbikuCj4gPj4+Pj4+Cj4gPj4+Pj4+IFdlJ3ZlIGJlZW4gdG9sZCBieSB0aGUgSFcgZ3V5cyBu b3QgdG8gdXNlIHRoZSBmaXJzdCBwYWdlLiAoVGhhdCdzIG15Cj4gPj4+Pj4+IHVuZGVyc3RhbmRp bmcgZnJvbSBldmVyeSB0aW1lIHRoaXMgZ2V0cyBxdWVzdGlvbmVkLikKPiA+Pj4+Pgo+ID4+Pj4+ IFlldCB0aGUgR09QIGlzIGhhcHBpbHkgdXNpbmcgdGhlIGZpcnN0IHBhZ2UuIEkgdGhpbmsgd2Ug bWF5IG5lZWQgdG8gbWFrZQo+ID4+Pj4+IGEgZGlmZmVyZW5jZSBoZXJlIGJldHdlZW4gdGhlIEdQ VSBub3QgdXNpbmcgdGhlIGZpcnN0IHBhZ2UgYW5kIHRoZQo+ID4+Pj4+IGRpc3BsYXkgZW5naW5l L3BpcGVsaW5lIG5vdCB1c2luZyB0aGUgZmlyc3QgcGFnZS4gTm90ZSB0aGF0IG15IHBhdGNoCj4g Pj4+Pj4gb25seSBpbmZsdWVuY2VzIHRoZSBpbmhlcml0aW5nIG9mIHRoZSBpbml0aWFsIGZyYW1l YnVmZmVyIGFzIGFsbG9jYXRlZAo+ID4+Pj4+IGJ5IHRoZSBHT1AuIEl0IGRvZXMgbm90IGluZmx1 ZW5jZSBhbnkgb3RoZXIgYWxsb2NhdGlvbnMgZnJvbSB0aGUKPiA+Pj4+PiByZXNlcnZlZCByYW5n ZSwgdGhvc2Ugd2lsbCBzdGlsbCBhbGwgYXZvaWQgdGhlIGZpcnN0IHBhZ2UuCj4gPj4+Pj4KPiA+ Pj4+PiBXaXRob3V0IHRoaXMgcGF0Y2ggZmFzdGJvb3QgLyBmbGlja2VyZnJlZSBzdXBwb3J0IGlz IGVzc2VudGlhbGx5IGJyb2tlbgo+ID4+Pj4+IG9uIGFueSBnZW44KyBoYXJkd2FyZSBnaXZlbiB0 aGF0IG9uZSBvZiB0aGUgZ29hbHMgb2YgYXRvbWljIGlzIHRvIGJlCj4gPj4+Pj4gYWJsZSB0byBk byBmbGlja2VyZnJlZSB0cmFuc2l0aW9ucyBJIHRoaW5rIHRoYXQgdGhpcyB3YXJyYW50cyBhIGNs b3Nlcgo+ID4+Pj4+IGxvb2sgdGhlbiBqdXN0IHNpbXBseSBzYXlpbmcgbmV2ZXIgdXNlIHRoZSBm aXJzdCBwYWdlLgo+ID4+Pj4KPiA+Pj4+IFRoZSBjb25jZXJuIGlzIHdoYXQgZWxzZSAoaS5lLiBu b3RoaW5nIHRoYXQgd2UgYWxsb2NhdGVkIG91cnNlbHZlcykgdGhhdAo+ID4+Pj4gbWF5IGJlIGlu IHRoZSBmaXJzdCBwYWdlLi4uCj4gPj4+Cj4gPj4+IEdpdmVuIHRoYXQgdGhlIEdPUCBoYXMgcHV0 IGl0cyBmcmFtZWJ1ZmZlciB0aGVyZSBhdCBsZWFzdCBhdCBib290IHRoZXJlCj4gPj4+IGlzIG5v dGhpbmcgdGhlcmUsIG90aGVyd2lzZSBpdCB3b3VsZCBzaG93IHVwIG9uIHRoZSBkaXNwbGF5Lgo+ ID4+Pgo+ID4+PiBXZSBoYXZlIGEgd2hvbGUgYnVuY2ggb2YgY29kZSB0byBpbmhlcml0IHRoZSBC SU9TIGZiIGluIGludGVsX2Rpc3BsYXkuYwo+ID4+PiBhbmQgQUZBSUsgdGhhdCBjb2RlIGlzIHRo ZXJlIGJlY2F1c2UgdGhpcyBpbmhlcml0aW5nIHRoZSBCSU9TIGZiIGlzCj4gPj4+IGRlZW1lZCBh biBpbXBvcnRhbnQgZmVhdHVyZS4gU28gSSdtIG5vdCBoYXBweSBhdCBhbGwgd2l0aCB0aGUgaGFu ZHdhdnkKPiA+Pj4gYmVzdCB0byBub3QgdG91Y2ggaXQgYW5zd2VyIEknbSBnZXR0aW5nIHRvIHRo aXMgcGF0Y2guCj4gPj4+Cj4gPj4+IFVubGVzcyB0aGVyZSBhcmUgc29tZSBjbGVhciBhbnN3ZXIg ZnJvbSB0aGUgaGFyZHdhcmUgZm9sa3Mgd2hpY2ggc3BlY2lmaWNhbGx5Cj4gPj4+IHNheSB3ZSBj YW5ub3QgcHV0IGEgZnJhbWVidWZmZXIgdGhlcmUgKGFuZCB0aGVuIHdoeSBpcyB0aGUgR09QIGRv aW5nIGl0PykKPiA+Pj4gdGhlbiBJIGJlbGlldmUgdGhhdCB0aGUgYmVzdCB3YXkgZm9yd2FyZCBo ZXJlIGlzIHRvIGdldCB2YXJpb3VzIHBlb3BsZSB0bwo+ID4+PiB0ZXN0IHdpdGggdGhpcyBwYXRj aCBhbmQgdGhlIGJlc3Qgd2F5IHRvIGRvIHRoYXQgaXMgcHJvYmFibHkgdG8gcHV0IGl0Cj4gPj4+ IGluIG5leHQuIE5vdGUgSSBkZWxpYmVyYXRlbHkgZGlkIG5vdCBhZGQgYSBDYyBzdGFibGUuCj4g Pj4KPiA+PiBUbyBlbGFib3JhdGUgb24gdGhpcywgdGhlIGV4Y2x1ZGluZyBvZiB0aGUgZmlyc3Qg NGsgb2YgdGhlIHN0b2xlbiBtZW1vcnkKPiA+PiByZWdpb24gY2F1c2VzIGludGVsX2FsbG9jX2lu aXRpYWxfcGxhbmVfb2JqKCkgZnJvbSBpbnRlbF9kaXNwbGF5LmMgdG8gZmFpbCwKPiA+PiB3aGlj aCBpbiB0dXJuIGNhdXNlcyBpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKCkgdG8gY2FsbAo+ ID4+IGludGVsX3BsYW5lX2Rpc2FibGVfbm9hdG9taWMoaW50ZWxfY3J0YywgaW50ZWxfcGxhbmUp OyB3aGljaCB0ZW1wb3JhcmlseQo+ID4+IGNvbXBsZXRlbHkgdHVybnMgb2ZmIHRoZSBkaXNwbGF5 IHdoaWNoIGxlYWRzIHRvIGEgdmVyeSB1Z2x5IGZsaWNrZXJpbmcKPiA+PiBvZiB0aGUgZGlzcGxh eSBhdCBib290IChhcyB3ZWxsIGFzIHJlcGxhY2luZyB0aGUgdmVuZG9yIGxvZ28gd2l0aCBhCj4g Pj4gYmxhY2sgc2NyZWVuKS4KPiA+Pgo+ID4+IEkgdGhpbmsgd2UgY2FuIGFsbCBhZ3JlZSB0aGF0 IHRoaXMgYmVoYXZpb3IgaXMgdW5kZXNpcmFibGUgYW5kIGV2ZW4gYQo+ID4+IHJlZ3Jlc3Npb24g aW4gYmVoYXZpb3IgY2F1c2VkIGJ5IHRoZSBmaXggdG8gZXhjbHVkZSB0aGUgZmlyc3QgNGsuCj4g Pj4KPiA+PiBDaHJpcywgaWYgbXkgcGF0Y2ggaXMgbm90IGFuIGFjY2VwdGFibGUgd2F5IHRvIGZp eCB0aGlzLCB0aGVuIGhvdyBkbyB5b3UKPiA+PiBzdWdnZXN0IHRoYXQgd2UgZml4IHRoaXM/Cj4g Pj4KPiA+PiBEaWdnaW5nIGEgYml0IGRlZXBlciBJIGZvdW5kIHRoaXM6Cj4gPj4KPiA+PiBodHRw czovLzAxLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVzL2RvY3VtZW50YXRpb24vaW50ZWwtZ2Z4LXBy bS1vc3JjLWtibC12b2wxNi13b3JrYXJvdW5kcy5wZGYKPiA+Pgo+ID4+IFdoaWNoIHNheXM6Cj4g Pj4KPiA+PiAiV2FTa2lwU3RvbGVuTWVtb3J5Rmlyc3RQYWdlOgo+ID4+Cj4gPj4gV0EgdG8gc2tp cCB0aGUgZmlyc3QgcGFnZSBvZiBzdG9sZW4KPiA+PiBtZW1vcnkgZHVlIHRvIHNwb3JhZGljIEhX IHdyaXRlIG9uICpDUyBJZGxlIgo+ID4+Cj4gPj4gQW5kIGFsc28gYWJvdXQgRkJDOgo+ID4+Cj4g Pj4gIkZpcnN0IGxpbmUgb2YgRkJDIGdldHRpbmcgY29ycnVwdGVkIHdoZW4gRkJDCj4gPj4gY29t cHJlc3NlZCBmcmFtZSBidWZmZXIgb2Zmc2V0IGlzIHByb2dyYW1tZWQgdG8KPiA+PiB6ZXJvLiBD b21tYW5kIHN0cmVhbWVycyBhcmUgZG9pbmcgZmx1c2ggd3JpdGVzIHRvCj4gPj4gYmFzZSBvZiBz dG9sZW4uCj4gPj4gV0E6IE5ldyByZXN0cmljdGlvbiB0byBwcm9ncmFtIEZCQyBjb21wcmVzc2Vk Cj4gPj4gZnJhbWUgYnVmZmVyIG9mZnNldCB0byBhdCBsZWFzdCA0S0IuIgo+ID4+Cj4gPj4gU28g dXNpbmcgdGhlIGZpcnN0IDRrQiBmb3IgdGhlICpmcmFtZWJ1ZmZlciogYXMgZG9uZSBieSB0aGUg R09QIHdpbGwKPiA+PiBub3QgY2F1c2UgYW55IG1ham9yIHByb2JsZW1zIChmcmVlemVzLCBoYW5n cywgZXRjLiksIGFuZCBjb21taXQKPiA+PiBkNDM1Mzc2MTA0NzAgKCJkcm0vaTkxNTogc2tpcCB0 aGUgZmlyc3QgNGsgb2Ygc3RvbGVuIG1lbW9yeSBvbgo+ID4+IGV2ZXJ5dGhpbmcgPj0gZ2VuOCIp IHdhcyBjb3JyZWN0IGluIGRlZHVjaW5nIHRoYXQgdGhlIHByb2JsZW0gd2FzCj4gPj4gbGlrZWx5 IHRoYXQgc29tZSAqdml0YWwqIGluZm9ybWF0aW9uIHdhcyBiZWluZyBzdG9yZWQgaSB0aGUgZmly c3QgNGsKPiA+PiBhbmQgdGhhdCBnbyBvdmVyd3JpdHRlbi4KPiA+Pgo+ID4+IEJ1dCB0aGUgY29u dGVudHMgb2YgdGhlIChmaXJzdCBsaW5lcyBvZikgdGhlIGZyYW1lYnVmZmVyIG1heSBiZWNvbWUK PiA+PiBjb3JydXB0ZWQgb25jZSB3ZSBhY3R1YWxseSBzdGFydCB1c2luZyB0aGUgY29tbWFuZC1z dHJlYW1lcnMsIHdoaWNoCj4gPj4gaXMgc3RpbGwgdmVyeSBtdWNoIG5vdCB3YW50ZWQuCj4gPj4K PiA+PiBJbiBwcmFjdGljZSBYb3JnIG9yIFdheWxhbmQgd2lsbCBsaWtlbHkgaGF2ZSBzZXR1cCBh bm90aGVyIGZyYW1lYnVmZmVyCj4gPj4gYnkgdGhlIHRpbWUgdGhlIGNvbW1hbmQtc3RyZWFtZXJz IHdpbGwgc3RhcnQgdG8gZ2V0IHVzZWQuCj4gPj4KPiA+PiBBbHRlcm5hdGl2ZWx5IHdlIGNvdWxk IHN0YXJ0IHdpdGggaW5oZXJpdGluZyB0aGUgQklPUyBmcmFtZWJ1ZmZlcgo+ID4+IChhcyBteSBw YXRjaCBhbGxvd3MpIHNvIHRoYXQgd2UgZG9uJ3QgZ2V0IHRoZSBmbGlja2VyIGFuZCB0aGVuIHNv b24KPiA+PiBhZnRlcndhcmRzIGF0b21pY2FsbHkgdHJhbnNpdCB0byBhIG5ldyBmcmFtZWJ1ZmZl ciAod2hpY2ggc2hvdWxkCj4gPj4gY29udGFpbiBhIGNvcHkgb2YgdGhlIEJJT1MgZmIgY29udGVu dHMpIGF0IGEgZGlmZmVyZW50IGxvY2F0aW9uLgo+ID4gCj4gPiBXaGF0IEkgc3VnZ2VzdGVkIGxv bmcgYWdvIHdhcyB0byBjb3B5IGp1c3QgdGhlIGZpcnN0IHBhZ2UgYW5kIGFkanVzdCB0aGUKPiA+ IHNnIGxpc3QuIEJ1dCBJJ20gbm90IHN1cmUgaWYgb3VyIHN0b2xlbiBnZW0gY29kZSB3b3VsZCBi ZSBoYXBweSB3aXRoIGFuCj4gPiBzZyBsaXN0IHdpdGggdHdvIGVudHJpZXMgaW5zdGVhZCBvZiBv bmUuCj4gCj4gQnV0IHRoYXQgd291bGQgc3RpbGwgcmVxdWlyZSBhbiBhdG9taWMtbW9kZXNldCB0 byBpbnN0YWxsIHRoZSBuZXcgc2ctbGlzdCwKPiByaWdodD8KClBlcmhhcHMgbm90LiBOb3Qgc3Vy ZSBpZiB0aGUgcHRlIHVwZGF0ZSB3b3VsZCBiZSBhdG9taWMgZW5vdWdoIHRvIGp1c3QKY2hhbmdl IGl0IHVuZGVybmVhdGggdGhlIGRpc3BsYXkgZW5naW5lIHdpdGhvdXQgaWxsIGVmZmVjdHMsIGFu ZCB0aGVuCmRvIHRoZSBlcXVpdmFsZW50IG9mIGEgcGFnZSBmbGlwIHRvIGludmFsaWRhdGUgdGhl IFRMQnMuCgo+IFRoZW4gd2UgbWlnaHQganVzdCBhcyB3ZWxsIHNpbXBseSBhbGxvYyBhIG5ldyBm YiBhbmQgY29weSB0aGUKPiBjb250ZW50cyBvdmVyLCBvciBhcmUgeW91IHdvcnJpZWQgdGhhdCB3 aXRoIHNheSBhIDRrIGZiIHRoYXQgdGFrZXMgdG9vCj4gbXVjaCB0aW1lPyBGV0lXIEkgY2FuIHNl ZSBob3cgdGhlIHNpbmdsZSBtZW1jcHkgdGhpcyBpbnZvbHZlcyB3aWxsIHRha2UKPiBzb21lIHRp bWUsIGJ1dCBJIGRvbid0IHRha2UgaXQgd2lsbCB0YWtlIHNvIGxvbmcgYXMgdG8gYmUgYSBwcm9i bGVtLgoKTWFpbmx5IGp1c3QgYSBxdWVzdGlvbiBvZiBrZWVwaW5nIGl0IGluIHN0b2xlbi4gQXNz dW1pbmcgd2Ugd2FudCB0byBrZWVwCnRoaW5ncyBpbiBzdG9sZW4sIHdoaWNoIGlzIGEgbWF0dGVy IG9mIHNvbWUgZGViYXRlIGFzIEZCQyBuZWVkcyBzdG9sZW4KYW5kIHBlb3BsZSBtaWdodCBub3Qg YmUgaGFwcHkgaWYgaXQncyBhbGwgdGFrZW4gdXAgYnkgZmJkZXYuCgo+IAo+IEFueXdheXMgSSBj b3VsZCB1c2Ugc29tZSBoZWxwIHdpdGggaW1wbGVtZW50aW5nIGVpdGhlciBzb2x1dGlvbiBhcyBJ J20KPiBub3QgZmFtaWxpYXIgd2l0aCB0aGUgaW52b2x2ZWQgcGFydHMgb2YgdGhlIGNvZGUuIEkg d2lsbCBoYXBwaWx5IHRlc3QKPiBhIHBhdGNoIGZvciB0aGlzLiBLZWVwIGluIG1pbmQgdGhhdCBm b3IgdGhpcyB0byB3b3JrIG15IG9yaWdpbmFsIHBhdGNoCj4gd2lsbCBhbHNvIGJlIG5lY2Vzc2Fy eSBzbyB0aGF0IHRoZSBpbml0aWFsIHRha2VvdmVyIG9mIHRoZSBmaXJtd2FyZQo+IGZiIHdpbGwg d29yay4KCkkgZ3Vlc3MgdGhlIHRyaWNraWVzdCBwYXJ0IHdvdWxkIGJlIGdldHRpbmcgYm90aCB0 aGUgb2xkIGFuZCBuZXcKbG9jYXRpb24gb2YgdGhlIHBhZ2UgbWFwcGVkIGluIHRoZSBnZ3R0IGF0 IHRoZSBzYW1lIHRpbWUuIFNhZGx5IHlvdSdyZQpub3QgYWxsb3dlZCB0byBhY2Nlc3Mgc3RvbGVu IGRpcmVjdGx5LiBTbyBJIHN1cHBvc2UgdGhpcyBwYXJ0IHdvdWxkCmludm9sdmUgc29tZSBmYWly bHkgbG93IGxldmVsIGZyb2JiaW5nIG9mIHRoZSBnZ3R0IHB0ZXMgYW5kIGEKbWFudWFsIGlvcmVt YXAoKSBvZiB0aGUgbWF0Y2hpbmcgcmFuZ2VzIG9mIHRoZSBhcGVydHVyZS4KCi0tIApWaWxsZSBT eXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=