From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerome Glisse Subject: Re: Asynchronous eviction [WAS Re: [PATCH] drm/ttm: add minimum residency constraint for bo eviction] Date: Fri, 30 Nov 2012 13:07:39 -0500 Message-ID: <20121130180738.GA2111@gmail.com> References: <50B71714.4060802@shipmail.org> <50B7C6A4.2090306@shipmail.org> <50B87EED.5020400@shipmail.org> <50B8E7FF.8050006@shipmail.org> <50B8F048.3060707@shipmail.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qa0-f49.google.com (mail-qa0-f49.google.com [209.85.216.49]) by gabe.freedesktop.org (Postfix) with ESMTP id 5907DE68C8 for ; Fri, 30 Nov 2012 10:10:50 -0800 (PST) Received: by mail-qa0-f49.google.com with SMTP id r4so758029qaq.15 for ; Fri, 30 Nov 2012 10:10:49 -0800 (PST) Content-Disposition: inline In-Reply-To: <50B8F048.3060707@shipmail.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Thomas Hellstrom Cc: Jerome Glisse , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBOb3YgMzAsIDIwMTIgYXQgMDY6NDM6MzZQTSArMDEwMCwgVGhvbWFzIEhlbGxzdHJv bSB3cm90ZToKPiBPbiAxMS8zMC8yMDEyIDA2OjE4IFBNLCBKZXJvbWUgR2xpc3NlIHdyb3RlOgo+ ID5PbiBGcmksIE5vdiAzMCwgMjAxMiBhdCAxMjowOCBQTSwgVGhvbWFzIEhlbGxzdHJvbSA8dGhv bWFzQHNoaXBtYWlsLm9yZz4gd3JvdGU6Cj4gPj5PbiAxMS8zMC8yMDEyIDA1OjMwIFBNLCBKZXJv bWUgR2xpc3NlIHdyb3RlOgo+ID4+Pk9uIEZyaSwgTm92IDMwLCAyMDEyIGF0IDQ6MzkgQU0sIFRo b21hcyBIZWxsc3Ryb20gPHRob21hc0BzaGlwbWFpbC5vcmc+Cj4gPj4+d3JvdGU6Cj4gPj4+Pk9u IDExLzI5LzIwMTIgMTA6NTggUE0sIE1hcmVrIE9sxaHDoWsgd3JvdGU6Cj4gPj4+Pj4KPiA+Pj4+ PldoYXQgSSB0cmllZCB0byBwb2ludCBvdXQgd2FzIHRoYXQgdGhlIHN5bmNocm9uaXphdGlvbiBz aG91bGRuJ3QgYmUKPiA+Pj4+Pm5lZWRlZCwgYmVjYXVzZSB0aGUgQ1BVIHNob3VsZG4ndCBkbyBh bnl0aGluZyB3aXRoIHRoZSBjb250ZW50cyBvZgo+ID4+Pj4+ZXZpY3RlZCBidWZmZXJzLiBUaGUg R1BVIG1vdmVzIHRoZSBidWZmZXJzLCBub3QgdGhlIENQVS4gV2hhdCBkb2VzIHRoZQo+ID4+Pj4+ Q1BVIGRvIGJlc2lkZXMgdXBkYXRpbmcgc29tZSBrZXJuZWwgc3RydWN0dXJlcz8KPiA+Pj4+Pgo+ ID4+Pj4+QWxzbywgYnVmZmVyIGRlbGV0aW9uIGlzIHNvbWV0aGluZyB3aGVyZSB5b3UgZG9uJ3Qg bmVlZCB0byB3YWl0IGZvcgo+ID4+Pj4+dGhlIGJ1ZmZlciB0byBiZWNvbWUgaWRsZSBpZiB5b3Ug a25vdyB0aGUgbWVtb3J5IGFyZWEgd29uJ3QgYmUKPiA+Pj4+Pm1hcHBlZCBieSB0aGUgQ1BVLCBl dmVyLiBUaGUgbWVtb3J5IGNhbiBiZSByZWNsYWltZWQgcmlnaHQgYXdheS4gSXQKPiA+Pj4+Pndv dWxkIGJlIHRoZSBHUFUgdG8gbW92ZSBuZXcgZGF0YSBpbiBhbmQgb25jZSB0aGF0IGhhcHBlbnMs IHRoZSBvbGQKPiA+Pj4+PmJ1ZmZlciB3aWxsIGJlIHRyaXZpYWxseSBpZGxlLCBiZWNhdXNlIHNp bmdsZS1yaW5nIEdQVXMgZXhlY3V0ZQo+ID4+Pj4+Y29tbWFuZHMgaW4gb3JkZXIuCj4gPj4+Pj4K PiA+Pj4+Pk1hcmVrCj4gPj4+Pgo+ID4+Pj5BY3R1YWxseSBhc3luY2hyb25vdXMgZXZpY3Rpb24g LyBkZWxldGlvbiBpcyBzb21ldGhpbmcgSSBoYXZlIGJlZW4KPiA+Pj4+cHJvdG90eXBpbmcgZm9y IGEgd2hpbGUgYnV0IG5ldmVyIGdvdHRlbiBhcm91bmQgdG8gaW1wbGVtZW50IGluIFRUTToKPiA+ Pj4+Cj4gPj4+PlRoZXJlIGFyZSBhIGZldyBtaW5vciBjYXZlYXRzOgo+ID4+Pj4KPiA+Pj4+V2l0 aCBidWZmZXIgZGVsZXRpb24sIHdoYXQgeW91IHNheSBpcyB0cnVlIGZvciBmaXhlZCBtZW1vcnks IGJ1dCBub3QgZm9yCj4gPj4+PlRUCj4gPj4+Pm1lbW9yeSB3aGVyZSBwYWdlcyBhcmUgcmVjbGFp bWVkIGJ5IHRoZSBzeXN0ZW0gYWZ0ZXIgYnVmZmVyIGRlc3RydWN0aW9uLgo+ID4+Pj5UaGF0IG1l YW5zIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byB3YWl0IGZvciBpZGxlIHRvIGZyZWUgR1BVIHNwYWNl LCBidXQgd2UKPiA+Pj4+bmVlZCB0byB3YWl0IGJlZm9yZSBwYWdlcyBhcmUgaGFuZGVkIGJhY2sg dG8gdGhlIHN5c3RlbS4KPiA+Pj4+Cj4gPj4+PlN3YXBvdXQgbmVlZHMgdG8gYWNjZXNzIHRoZSBj b250ZW50cyBvZiBldmljdGVkIGJ1ZmZlcnMsIGJ1dAo+ID4+Pj5zeW5jaHJvbml6aW5nCj4gPj4+ PmRvZXNuJ3QgbmVlZCB0byBoYXBwZW4gdW50aWwganVzdCBiZWZvcmUgc3dhcG91dC4KPiA+Pj4+ Cj4gPj4+Pk11bHRpLXJpbmcgLSBDUFUgc3VwcG9ydDogSWYgYW5vdGhlciByaW5nIC8gZW5naW5l IG9yIHRoZSBDUFUgaXMgYWJvdXQgdG8KPiA+Pj4+bW92ZSBpbiBidWZmZXIgY29udGVudHMgdG8g VlJBTSBvciBhIEdQVSBhcGVydHVyZSB0aGF0IHdhcyBwcmV2aW91c2x5Cj4gPj4+PmV2aWN0ZWQg YnkgYW5vdGhlciByaW5nLCBpdCBuZWVkcyB0byBzeW5jIHdpdGggdGhhdCBldmljdGlvbiwgYnV0 IGRvZXNuJ3QKPiA+Pj4+a25vdyB3aGF0IGJ1ZmZlciBvciBldmVuIHdoaWNoIGJ1ZmZlcnMgb2Nj dXBpZWQgdGhlIHNwYWNlIHByZXZpb3VzbHkuCj4gPj4+PlRyaXZpYWxseSBvbmUgY2FuIGF0dGFj aCBhIHN5bmMgb2JqZWN0IHRvIHRoZSBtZW1vcnkgdHlwZSBtYW5hZ2VyIHRoYXQKPiA+Pj4+cmVw cmVzZW50cyB0aGUgbGFzdCBldmljdGlvbiBmcm9tIHRoYXQgbWVtb3J5IHR5cGUsIGFuZCAqYW55 KiBlbmdpbmUgKENQVQo+ID4+Pj5vcgo+ID4+Pj5HUFUpIHRoYXQgbW92ZXMgYnVmZmVyIGNvbnRl bnRzIGluIG5lZWRzIHRvIG9yZGVyIHRoYXQgbW92ZW1lbnQgd2l0aAo+ID4+Pj5yZXNwZWN0Cj4g Pj4+PnRvIHRoYXQgZmVuY2UuIEFzIHlvdSBzYXksIHdpdGggYSBzaW5nbGUgcmluZyBhbmQgbm8g Q1BVIGZhbGxiYWNrcywgdGhhdAo+ID4+Pj5vcmRlcmluZyBpcyBhIG5vLW9wLCBidXQgYW55IGNv bW1vbiAobm9uLWRyaXZlciBiYXNlZCkgaW1wbGVtZW50YXRpb24KPiA+Pj4+bmVlZHMKPiA+Pj4+ dG8gc3VwcG9ydCB0aGlzLgo+ID4+Pj4KPiA+Pj4+QSBzaW5nbGUgZmVuY2UgYXR0YWNoZWQgdG8g dGhlIG1lbW9yeSB0eXBlIG1hbmFnZXIgaXMgdGhlIHNpbXBsZXN0Cj4gPj4+PnNvbHV0aW9uLAo+ ID4+Pj5idXQgYSBzb2x1dGlvbiB3aXRoIGEgZmVuY2UgZm9yIGVhY2ggZnJlZSByZWdpb24gaW4g dGhlIGZyZWUgbGlzdCBpcyBhbHNvCj4gPj4+PnBvc3NpYmxlLiBUaGVuIFRUTSBuZWVkcyBhIGRy aXZlciBjYWxsYmFjayB0byBiZSBhYmxlIG9yZGVyIGZlbmNlcyB3IHIgdAo+ID4+Pj5lY2hvdGhl ci4KPiA+Pj4+Cj4gPj4+Pi9UaG9tYXMKPiA+Pj4+Cj4gPj4+UmFkZW9uIGFscmVhZHkgaGFuZGxl IG11bHRpLXJpbmcgYW5kIHR0bSBpbnRlcmFjdGlvbiB3aXRoIHdoYXQgd2UgY2FsbAo+ID4+PnNl bWFwaG9yZS4gU2VtYXBob3JlIGFyZSBjcmVhdGVkIHRvIHN5bmNocm9uaXplIHdpdGggZmVuY2Ug YWNjcm9zcwo+ID4+PmRpZmZlcmVudCByaW5nLiBJIHRoaW5rIHRoZSBlYXNpZXN0IHNvbHV0aW9u IGlzIHRvIGp1c3QgcmVtb3ZlIHRoZSBibwo+ID4+PndhaXQgaW4gdHRtIGFuZCBsZXQgZHJpdmVy IGhhbmRsZSB0aGlzLgo+ID4+Cj4gPj5UaGUgd2FpdCBjYW4gYmUgcmVtb3ZlZCwgYnV0IG9ubHkg Y29uZGl0aW9uZWQgb24gYSBkcml2ZXIgZmxhZyB0aGF0IHNheXMgaXQKPiA+PnN1cHBvcnRzIHVu c3luY2hyb25vdXMgYnVmZmVyIG1vdmVzLgo+ID4+Cj4gPj5UaGUgbXVsdGktcmluZyBjYXNlIEkn bSB0YWxraW5nIGFib3V0IGlzOgo+ID4+Cj4gPj5SaW5nIDEgZXZpY3RzIGJ1ZmZlciBBLCBlbWl0 cyBmZW5jZSAwCj4gPj5SaW5nIDIgZXZpY3RzIGJ1ZmZlciBCLCBlbWl0cyBmZW5jZSAxCj4gPj4u Lk90aGVyIGV2aWN0aW9uIHRha2VzIHBsYWNlIGJ5IHZhcmlvdXMgcmluZ3MsIHBlcmhhcHMgaW5j bHVkaW5nIHJpbmcgMSBhbmQKPiA+PnJpbmcgMi4KPiA+PlJpbmcgMyBtb3ZlcyBidWZmZXIgQyBp bnRvIHRoZSBzcGFjZSB3aGljaCBoYXBwZW5zIGJvIGJlIHRoZSB1bmlvbiBvZiB0aGUKPiA+PnNw YWNlIHByZXZvdXNseSBvY2N1cGllZCBidWZmZXIgQSBhbmQgYnVmZmVyIEIuCj4gPj4KPiA+PlF1 ZXN0aW9uIGlzOiB3aGljaCBmZW5jZSBkbyB5b3Ugd2FudCB0byBvcmRlciB0aGlzIG1vdmUgd2l0 aD8KPiA+PlRoZSBhbnN3ZXIgaXMgd2hpY2hldmVyIG9mIGZlbmNlIDAgYW5kIDEgc2lnbmFscyBs YXN0Lgo+ID4+Cj4gPj5JIHRoaW5rIGl0J3MgYSByZWFzb25hYmxlIHRoaW5nIGZvciBUVE0gdG8g a2VlcCB0cmFjayBvZiB0aGlzLCBidXQgaW4gb3JkZXIKPiA+PnRvIGRvIHNvIGl0IG5lZWRzIGEg ZHJpdmVyIGNhbGxiYWNrIHRoYXQKPiA+PmNhbiBvcmRlciB0d28gZmVuY2VzLCBhbmQgY2FuIG9y ZGVyIGEgam9iIGluIHRoZSBjdXJyZW50IHJpbmcgdyByIHQgYSBmZW5jZS4KPiA+PkluIHJhZGVv bidzIGNhc2UgdGhhdCBkcml2ZXIgY2FsbGJhY2sKPiA+PndvdWxkIHByb2JhYmx5IGluc2VydCBh IGJhcnJpZXIgLyBzZW1hcGhvcmUuIEluIHRoZSBjYXNlIG9mIHNpbXBsZXIgaGFyZHdhcmUKPiA+ Pml0IHdvdWxkIHdhaXQgb24gb25lIG9mIHRoZSBmZW5jZXMuCj4gPj4KPiA+Pi9UaG9tYXMKPiA+ Pgo+ID5JIGRvbid0IHRoaW5rIHdlIGNhbiBvcmRlciBmZW5jZSBlYXNpbHkgd2l0aCBhIGNsZWFu IGFwaSwgaSB3b3VsZAo+ID5yYXRoZXIgc2VlIHR0bSBwcm92aWRlIGEgbGlzdCBvZiBmZW5jZSB0 byBkcml2ZXIgYW5kIHRlbGwgdG8gdGhlCj4gPmRyaXZlciBiZWZvcmUgbW92aW5nIHRoaXMgb2Jq ZWN0IGFsbCB0aGUgZmVuY2Ugb24gdGhpcyBsaXN0IG5lZWQgdG8gYmUKPiA+Y29tcGxldGVkLiBJ IHRoaW5rIGl0J3MgYXMgZWFzeSBhcyBhc3NvY2lhdGluZyBmZW5jZSB3aXRoIGRybV9tbSAod2Vs bAo+ID5ub3V2ZWF1IGFzIGl0cyBvd24gbW0gc3R1ZmYpIGJ1dCBpZGVhIHdvdWxkIGJhc2ljbHkg YmUgdGhhdCBmZW5jZSBhcmUKPiA+Ym90aCBhc3NvY2lhdGVkIHdpdGggYm8gYW5kIHdpdGggbW0g b2JqZWN0IHNvIHlvdSBrbm93IHdoZW4gYSBzZWdtZW50Cj4gPm9mIG1lbW9yeSBpcyBpZGxlL2F2 YWlsYWJsZSBmb3IgdXNlLgo+ID4KPiA+Q2hlZXJzLAo+ID5KZXJvbWUKPiAKPiAKPiBIbW0uIEFn cmVlZCB0aGF0IHdvdWxkIHNhdmUgYSBsb3Qgb2YgYmFycmllcnMuCj4gCj4gRXZlbiBpZiBUVE0g dHJhY2tzIGZlbmNlcyBieSBmcmVlIG1tIHJlZ2lvbnMgb3IgYSBzaW5nbGUgZmVuY2UgZm9yCj4g dGhlIHdob2xlIG1lbW9yeSB0eXBlLCBpdCdzIGEgc2ltcGxlIGZhY3QgdGhhdCBmZW5jZXMgZnJv bSB0aGUgc2FtZQo+IHJpbmcgYXJlIHRyaXZpYWxseSBvcmRlcmVkLCB3aGljaCBtZWFucyBzdWNo IGEgbGlzdCBzaG91bGQgY29udGFpbiBhdAo+IG1vc3QgYXMgbWFueSBmZW5jZXMgYXMgdGhlcmUg YXJlIHJpbmdzLgoKWWVzLCBvbmUgZnVuY3Rpb24gY2FsbGJhY2sgaXMgbmVlZGVkIHRvIGtub3cg d2hpY2ggZmVuY2UgaXMgbmVjZXNzYXJ5LAphbHNvIHR0bSBuZWVkcyB0byBrbm93IHRoZSBudW1i ZXIgb2YgcmluZ3MgKG5vdGUgdGhhdCBpIHRoaW5rIG5ld2VyCmh3IHdpbGwgaGF2ZSBzb21ldGhp bmdzIGxpa2UgMTAyNCByaW5ncyBvciBldmVuIG1vcmUsIGV2ZW4gdG9kYXkgaHcKbWlnaHQgaGF2 ZSBhcyBtYW55IGFzIGkgdGhpbmsgbnZpZGlhIGNoYW5uZWwgaXMgcHJldHR5IG11Y2ggd2hhdCBp CmRlZmluZSB0byBiZSBhIHJpbmcpLgoKQnV0IGkgdGhpbmsgbW9zdCBjYXNlIHdpbGwgYmUgZmV3 IGZlbmNlIGFjY3Jvc3MgZmV3IHJpbmdzLiBMaWtlIDEKcmluZyBpcyB0aGUgZG1hIHJpbmcgYW5k IHRoZW4geW91IGhhdmUgYSByaW5nIGZvciBvbmUgb2YgdGhlIEdMCmNvbnRleHQgdGhhdCB1c2lu ZyB0aGUgbWVtb3J5IGFuZCBhbm90aGVyIHJpbmcgZm9yIHRoZSBuZXcgY29udGV4dAp0aGF0IHdh bnQgdG8gdXNlIHRoZSBtZW1vcnkuCgo+IAo+IFNvLCB3aGF0ZXZlciBhcHByb2FjaCBpcyBjaG9z ZW4sIFRUTSBuZWVkcyB0byBiZSBhYmxlIHRvIGRldGVybWluZQo+IHRoYXQgdHJpdmlhbCBvcmRl cmluZywgYW5kIEkgdGhpbmsgdGhlIHVwY29taW5nIGNyb3NzLWRldmljZSBmZW5jaW5nCj4gd29y ayB3aWxsIGZhY2UgdGhlIGV4YWN0IHNhbWUgcHJvYmxlbS4KPiAKPiBNeSBwcm9wb3NlZCBvcmRl cmluZyBBUEkgd291bGQgbG9vayBzb21ldGhpbmcgbGlrZQo+IAo+IHN0cnVjdCBmZW5jZSAqb3Jk ZXJfZmVuY2VzKHN0cnVjdCBmZW5jZSAqZmVuY2VfYSwgc3RydWN0IGZlbmNlCj4gKmZlbmNlX2Is IGJvb2wgdHJpdmlhbF9vcmRlciwgYm9vbCBpbnRlcnJ1cHRpYmxlLCBib29sIG5vX3dhaXRfZ3B1 KQo+IAo+IFJldHVybnMgd2hpY2ggb2YgdGhlIGZlbmNlcyBAZmVuY2VfYSBhbmQgQGZlbmNlX2Ig dGhhdCB3aGVuCj4gc2lnbmFsZWQsIGd1YXJhbnRlZXMgdGhhdCBhbHNvIHRoZSBvdGhlcgo+IGZl bmNlIGhhcyBzaWduYWxlZC4gSWYgQHF1aWNrX29yZGVyIGlzIHRydWUsIGFuZCB0aGUgZHJpdmVy IGNhbm5vdAo+IHRyaXZpYWxseSBvcmRlciB0aGUgZmVuY2VzLCBpdCBtYXkgcmV0dXJuIEVSUl9Q VFIoLUVBR0FJTiksCj4gaWYgQGludGVycnVwdGlibGUgaXMgdHJ1ZSwgYW55IHdhaXQgc2hvdWxk IGJlIHBlcmZvcm1lZAo+IGludGVycnVwdGlibHkgYW5kIGlmIG5vX3dhaXRfZ3B1IGlzIHRydWUs IHRoZSBmdW5jdGlvbiBpcyBub3QKPiBhbGxvd2VkIHRvIHdhaXQgb24gZ3B1IGJ1dCBzaG91bGQg aXNzdWUgRVJSX1BUUigtRUJVU1kpIGlmIGl0IG5lZWRzCj4gdG8gZG8gc28gdG8gb3JkZXIgZmVu Y2VzLgo+IAo+IChIYXJkd2FyZSB3aXRob3V0IHNlbWFwaG9yZXMgY2FuJ3Qgb3JkZXIgZmVuY2Vz IHdpdGhvdXQgd2FpdGluZyBvbiB0aGVtKS4KPiAKPiBUaGUgbGlzdCBhcHByb2FjaCB5b3Ugc3Vn Z2VzdCB3b3VsZCB1c2UgQHRyaXZpYWxfb3JkZXIgPSB0cnVlLAo+IFNpbmdsZSBmZW5jZSBhcHBy b2FjaCB3b3VsZCB1c2UgQHRyaXZpYWxfb3JkZXIgPSBmYWxzZS4KPiAKPiBBbmQgYSBmaXJzdCBz aW1wbGUgaW1wbGVtZW50YXRpb24gaW4gVFRNIHdvdWxkIHBlcmhhcHMgdXNlIHlvdXIgbGlzdAo+ IGFwcHJvYWNoIHdpdGggYSBzaW5nbGUgbGlzdCBmb3IgdGhlIHdob2xlIG1lbW9yeSB0eXBlLgo+ IAo+IC9UaG9tYXMKCkkgd291bGQgcmF0aGVyIGFkZCBhIGNhbGxiYWNrIGxpa2UgOgoKdHRtX3Jl ZHVjZV9mZW5jZXModW5zaWduZWQgKm5mZW5jZXMsIGZlbmNlICoqZmVuY2VhcnJheSkKClNvIGVh Y2ggbW0gYmxvY2sgaGFzIGFuIGFycmF5IG9mIGZlbmNlLCBlYWNoIHRpbWUgYSBuZXcgZmVuY2Ug aXMgYWRkZWQgdG8KdGhlIGFycmF5IHlvdSBjYWxsYmFjayB0byByZWR1Y2UgdGhlIGFycmF5IG9m IGZlbmNlLCBpdCByZW1vdmUgYWxsIHRoZQpmZW5jZSB0aGF0IGNhbiBiZSByZW1vdmVkIGZyb20g dGhlIGFycmF5LiBJdCBtaWdodCBldmVuIHJlbW92ZSBhbGwgb2YgdGhlbQppZiB0aGV5IGFyZSBz aWduYWxlZC4KCkluIHRoZSB0dG0gYm8gbW92ZSBjYWxsYmFjayB5b3UgcHJvdmlkZSB0aGUgbGlz dCBsaXN0IG9mIG1tIGJsb2NrIChlYWNoCmhhdmluZyBpdHMgYXJyYXkgb2YgZmVuY2UpIGFuZCB0 aGUgbW92ZSBjYWxsYmFjayBpcyByZXNwb25zaWJsZSB0bwp1c2Ugd2hhdCBldmVyIG1lY2FuaXNt IGl0IHdhbnRzIHRvIHByb3Blcmx5IHNjaGVkdWxlIGFuZCBzeW5jaHJvbml6ZSB0aGUKbW92ZS4K Ck9uZSB0aGluZyBpIGFtIG5vdCBzdXJlIGlzIHNob3VsZCB3ZSBtZXJnZSBmcmVlIG1tIGJsb2Nr IGFuZCBtZXJnZS9yZWR1Y2UKdGhlaXIgZmVuY2UgYXJyYXkgb3Igc2hvdWxkIHdlIHByb3ZpZGUg YSBsaXN0IG9mIG1tIGJsb2NrIHRvIHRoZSBtb3ZlCmNhbGxiYWNrLiBJIHRoaW5rIGhlcmUgdGhl cmUgaXMgdHJhZGVvZmYgeW91IHByb2JhYmx5IHdhbnQgdG8gbWVyZ2Ugc21hbGwKbW0gYmxvY2sg dXAgdG8gYSBjZXJ0YWluIHBvaW50IGJ1dCB5b3UgZG9uJ3Qgd2FudCB0byBtZXJnZSBzbyBtdWNo IHRoYXQKYW55IGFsbG9jYXRpb24gd2lsbCBoYXZlIHRvIHdhaXQgb24gYSB6aWxsaW9ucyBmZW5j ZXMuCgpJbiB0aGUgbWVtY3B5IGZhbGxiYWNrIHlvdSBqdXN0IHdhaXQgb24gZWFjaCBmZW5jZSBp biB0aGUgYXJyYXkuCgpUaGlzIG1vdmUgYWxsIHRoZSBzeW5jaHJvbml6YXRpb24gaW50byB0aGUg ZHJpdmVyIGFuZCBpIHRoaW5rIGl0J3MgdGhlCmVhc2llc3Qgd2F5IHRvIGRvIHRoaW5nLgoKQ2hl ZXJzLApKZXJvbWUKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK