From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 26/53] drm/i915/bdw: New logical ring submission mechanism Date: Mon, 23 Jun 2014 17:23:48 -0700 Message-ID: <20140624002347.GA31605@bwidawsk.net> References: <1402673891-14618-1-git-send-email-oscar.mateo@intel.com> <1402673891-14618-27-git-send-email-oscar.mateo@intel.com> <20140620210035.GC32083@bdvolkin-ubuntu-desktop> <92648605EABDA246B775AAB04C95A7A3137BEC32@IRSMSX103.ger.corp.intel.com> <20140623131355.GA14360@nuc-i3427.alporthouse.com> <92648605EABDA246B775AAB04C95A7A3137BEC64@IRSMSX103.ger.corp.intel.com> <20140623132719.GB14360@nuc-i3427.alporthouse.com> <92648605EABDA246B775AAB04C95A7A3137BEDF8@IRSMSX103.ger.corp.intel.com> <20140623134140.GC14360@nuc-i3427.alporthouse.com> <92648605EABDA246B775AAB04C95A7A3137BEE76@IRSMSX103.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bwidawsk.net (bwidawsk.net [166.78.191.112]) by gabe.freedesktop.org (Postfix) with ESMTP id 71C086E053 for ; Mon, 23 Jun 2014 17:24:02 -0700 (PDT) Content-Disposition: inline In-Reply-To: <92648605EABDA246B775AAB04C95A7A3137BEE76@IRSMSX103.ger.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Mateo Lozano, Oscar" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMjMsIDIwMTQgYXQgMDI6MzU6MzhQTSArMDAwMCwgTWF0ZW8gTG96YW5vLCBP c2NhciB3cm90ZToKPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9tOiBDaHJp cyBXaWxzb24gW21haWx0bzpjaHJpc0BjaHJpcy13aWxzb24uY28udWtdCj4gPiBTZW50OiBNb25k YXksIEp1bmUgMjMsIDIwMTQgMjo0MiBQTQo+ID4gVG86IE1hdGVvIExvemFubywgT3NjYXIKPiA+ IENjOiBWb2xraW4sIEJyYWRsZXkgRDsgaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ ID4gU3ViamVjdDogUmU6IFtJbnRlbC1nZnhdIFtQQVRDSCAyNi81M10gZHJtL2k5MTUvYmR3OiBO ZXcgbG9naWNhbCByaW5nCj4gPiBzdWJtaXNzaW9uIG1lY2hhbmlzbQo+ID4gCj4gPiBPbiBNb24s IEp1biAyMywgMjAxNCBhdCAwMTozNjowN1BNICswMDAwLCBNYXRlbyBMb3phbm8sIE9zY2FyIHdy b3RlOgo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiA+ID4gRnJvbTogQ2hy aXMgV2lsc29uIFttYWlsdG86Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrXQo+ID4gPiA+IFNlbnQ6 IE1vbmRheSwgSnVuZSAyMywgMjAxNCAyOjI3IFBNCj4gPiA+ID4gVG86IE1hdGVvIExvemFubywg T3NjYXIKPiA+ID4gPiBDYzogVm9sa2luLCBCcmFkbGV5IEQ7IGludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiA+ID4gPiBTdWJqZWN0OiBSZTogW0ludGVsLWdmeF0gW1BBVENIIDI2LzUz XSBkcm0vaTkxNS9iZHc6IE5ldyBsb2dpY2FsCj4gPiA+ID4gcmluZyBzdWJtaXNzaW9uIG1lY2hh bmlzbQo+ID4gPiA+Cj4gPiA+ID4gT24gTW9uLCBKdW4gMjMsIDIwMTQgYXQgMDE6MTg6MzVQTSAr MDAwMCwgTWF0ZW8gTG96YW5vLCBPc2Nhcgo+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tCj4gPiA+ID4gPiA+IEZyb206IENocmlzIFdpbHNvbiBbbWFpbHRv OmNocmlzQGNocmlzLXdpbHNvbi5jby51a10KPiA+ID4gPiA+ID4gU2VudDogTW9uZGF5LCBKdW5l IDIzLCAyMDE0IDI6MTQgUE0KPiA+ID4gPiA+ID4gVG86IE1hdGVvIExvemFubywgT3NjYXIKPiA+ ID4gPiA+ID4gQ2M6IFZvbGtpbiwgQnJhZGxleSBEOyBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbUEFUQ0ggMjYvNTNd IGRybS9pOTE1L2JkdzogTmV3IGxvZ2ljYWwKPiA+ID4gPiA+ID4gcmluZyBzdWJtaXNzaW9uIG1l Y2hhbmlzbQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBPbiBNb24sIEp1biAyMywgMjAxNCBhdCAw MTowOTozN1BNICswMDAwLCBNYXRlbyBMb3phbm8sIE9zY2FyCj4gPiA+ID4gd3JvdGU6Cj4gPiA+ ID4gPiA+ID4gU28gZmFyLCB5ZXMsIGJ1dCB0aGF0wrRzIG9ubHkgYmVjYXVzZSBJIGFydGlmaWNp YWxseSBtYWRlCj4gPiA+ID4gPiA+ID4gaW50ZWxfbHJjLmMgc2VsZi0KPiA+ID4gPiA+ID4gY29u dGFpbmVkLCBhcyBEYW5pZWwgcmVxdWVzdGVkLiBXaGF0IGlmIHdlIG5lZWQgdG8gZXhlY3V0ZQo+ ID4gPiA+ID4gPiBjb21tYW5kcyBmcm9tIHNvbWV3aGVyZSBlbHNlLCBsaWtlIGluIGludGVsX2dl bjdfcXVldWVfZmxpcCgpPwo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gQW5kIHRoaXMgdGFr ZXMgbWUgdG8gYW5vdGhlciBkaXNjdXNzaW9uOiB0aGlzIGxvZ2ljYWwgcmluZyB2cwo+ID4gPiA+ ID4gPiA+IGxlZ2FjeSByaW5nIHNwbGl0Cj4gPiA+ID4gPiA+IGlzIHByb2JhYmx5IGEgZ29vZCBp ZGVhICh0aW1lIHdpbGwgdGVsbCksIGJ1dCB3ZSBzaG91bGQgcHJvdmlkZQo+ID4gPiA+ID4gPiBh IHdheSBvZiBzZW5kaW5nIGNvbW1hbmRzIGZvciBleGVjdXRpb24gd2l0aG91dCBrbm93aW5nIGlm Cj4gPiA+ID4gPiA+IEV4ZWNsaXN0cyBhcmUgZW5hYmxlZCBvciBub3QuIEluIHRoZSBlYXJseSBz ZXJpZXMgdGhhdCB3YXMgZWFzeQo+ID4gPiA+ID4gPiBiZWNhdXNlIHdlIHJldXNlZCB0aGUgcmlu Z19iZWdpbiwgcmluZ19lbWl0ICYgcmluZ19hZHZhbmNlCj4gPiA+ID4gPiA+IGZ1bmN0aW9ucywg YnV0IHRoaXMgaXMgbm90IHRoZSBjYXNlIGFueW1vcmUuIEFuZCB3aXRob3V0IHRoaXMsCj4gPiA+ ID4gPiA+IHNvb25lciBvciBsYXRlciBzb21lYm9keSB3aWxsIGJyZWFrIGxlZ2FjeSBvciBleGVj bGlzdHMgKHRoaXMKPiA+ID4gPiA+ID4gYWxyZWFkeSBoYXBwZW5lZCBsYXN0IHdlZWssIHdoZW4g c29tZWJvZHkgaGVyZSB3YXMgaW1wbGVtZW50aW5nCj4gPiA+ID4gPiA+IG5hdGl2ZSBzeW5jIHdp dGhvdXQga25vd2luZwo+ID4gPiA+IGFib3V0IEV4ZWNsaXN0cykuCj4gPiA+ID4gPiA+ID4KPiA+ ID4gPiA+ID4gPiBTbywgdGhlIHF1ZXN0aW9ucyBpczogaG93IGRvIHlvdSBmZWVsIGFib3V0IGEg ZGV2X3ByaXYuZ3QKPiA+ID4gPiA+ID4gPiB2ZnVuYyB0aGF0IHRha2VzIGEKPiA+ID4gPiA+ID4g Y29udGV4dCwgYSByaW5nLCBhbiBhcnJheSBvZiBEV09SRFMgYW5kIGEgQkIgbGVuZ3RoIGFuZCBk b2VzIHRoZQo+ID4gPiA+ID4gPiBpbnRlbF8obG9naWNhbClfcmluZ19iZWdpbi9lbWl0L2FkdmFu Y2UgYmFzZWQgb24KPiA+IGk5MTUuZW5hYmxlX2V4ZWNsaXN0cz8KPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gSSdtIHN0aWxsIGJhZmZsZWQgYnkgdGhlIGRlc2lnbi4gaW50ZWxfcmluZ19iZWdpbigp IGFuZCBmcmllbmRzCj4gPiA+ID4gPiA+IHNob3VsZCBiZSBhYmxlIHRvIGZpbmQgdGhlaXIgY29u dGV4dCAobG9naWNhbCBvciBsZWdhY3kpIGZyb20KPiA+ID4gPiA+ID4gdGhlIHJpbmcgYW5kCj4g PiA+ID4gZHRydC4KPiA+ID4gPiA+ID4gLUNocmlzCj4gPiA+ID4gPgo+ID4gPiA+ID4gU29ycnks IENocmlzLCBJIG9idmlvdXNseSBkb27CtHQgaGF2ZSB0aGUgc2FtZSBleHBlcmllbmNlIHdpdGgg OTE1IHlvdQo+ID4gaGF2ZToKPiA+ID4gPiBob3cgZG8geW91IHByb3Bvc2UgdG8gZXh0cmFjdCB0 aGUgcmlnaHQgY29udGV4dCBmcm9tIHRoZSByaW5nPwo+ID4gPiA+Cj4gPiA+ID4gVGhlIHJpbmdz IGFyZSBhIHNldCBvZiBidWZmZXJzIGFuZCB2ZnVuY3MgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRo IGEKPiA+IGNvbnRleHQuCj4gPiA+ID4gQmVmb3JlIHlvdSBjYW4gY2FsbCBpbnRlbF9yaW5nX2Jl Z2luKCkgeW91IG11c3Qga25vdyB3aGF0IGNvbnRleHQKPiA+ID4gPiB5b3Ugd2FudCB0byBvcGVy YXRlIG9uIGFuZCB0aGVyZWZvcmUgY2FuIHBpY2sgdGhlIHJpZ2h0Cj4gPiA+ID4gbG9naWNhbC9s ZWdhY3kgcmluZyBhbmQgaW50ZXJmYWNlIGZvciBSQ1MvQkNTL1ZDUy9ldGMgLUNocmlzCj4gPiA+ Cj4gPiA+IE9rLCBidXQgdGhlbiB5b3UgbmVlZCB0byBwYXNzIHNvbWUgZXh0cmEgc3R1ZmYgZG93 biB0b2dldGhlciB3aXRoIHRoZQo+ID4gaW50ZWxfZW5naW5lX2NzLCBlaXRoZXIgaW50ZWxfY29u dGV4dCBvciBpbnRlbF9yaW5nYnVmZmVyLCByaWdodD8gQmVjYXVzZQo+ID4gdGhhdMK0cyBleGFj dGx5IHdoYXQgSSBkaWQgaW4gcHJldmlvdXMgdmVyc2lvbnMsIHBsdW1iaW5nIGludGVsX2NvbnRl eHQKPiA+IGV2ZXJ5d2hlcmUgd2hlcmUgaXQgd2FzIG5lZWRlZCAoSSBjb3VsZCBoYXZlIHBsdW1i ZWQgaW50ZWxfcmluZ2J1ZmZlcgo+ID4gaW5zdGVhZCwgaXQgcmVhbGx5IGRvZXNuwrR0IG1hdHRl cikuIFRoaXMgd2FzIHJlamVjdGVkIGZvciBiZWluZyB0b28gaW50cnVzaXZlCj4gPiBhbmQgbm90 IGFsbG93aW5nIGVhc3kgbWFpbnRlbmFuY2UgaW4gdGhlIGZ1dHVyZS4KPiA+IAo+ID4gTm9wZS4g WW91IGRpZG4ndCByZWRlc2lnbiB0aGUgcmluZ2J1ZmZlcnMgdG8gZnVuY3Rpb24gYXMgd2UgZXhw ZWN0ZWQgYnV0Cj4gPiB0YWNrZWQgb24gZXh0cmEgaW5mb3JtYXRpb24gYW5kIGxheWVyaW5nIHZp b2xhdGlvbnMuCj4gPiAtQ2hyaXMKPiAKPiBJIGtub3cgaXMgbm8gZXhjdXNlLCBidXQgYXMgSSBz YWlkLCBJIGRvbsK0dCBrbm93IHRoZSBjb2RlIGFzIHdlbGwgYXMgeW91IGRvLiBMZXQgbWUgZXhw bGFpbiB0byB5b3UgdGhlIGhpc3Rvcnkgb2YgdGhpcyBvbmUgYW5kIG1heWJlIHlvdSBjYW4gaGVs cCBtZSBvdXQgZGlzY292ZXJpbmcgd2hlcmUgSSBnb3QgaXQgYWxsIHdyb25nOgo+IAo+IC0gVGhl IG9yaWdpbmFsIGRlc2lnbiBJIGluaGVyaXRlZCBmcm9tIEJlbiBhbmQgSmVzc2UgY3JlYXRlZCBh IGNvbXBsZXRlbHkgbmV3ICJzdHJ1Y3QgaW50ZWxfcmluZ19idWZmZXIiIHBlciBjb250ZXh0LCBh bmQgcGFzc2VkIHRoYXQgb25lIG9uIGluc3RlYWQgb2YgcGFzc2luZyBvbmUgb2YgdGhlICZkZXZf cHJpdi0+cmluZ1tpXSBvbmVzLiBXaGVuIGl0IHdhcyB0aW1lIHRvIHN1Ym1pdCBhIGNvbnRleHQg dG8gdGhlIEVMU1AsIHRoZXkgc2ltcGx5IHRvb2sgaXQgZnJvbSByaW5nLT5jb250ZXh0LiBUaGUg cHJvYmxlbSB3aXRoIHRoYXQgd2FzIHRoYXQgY3JlYXRpbmcgYW4gdW5ib3VuZCBudW1iZXIgb2Yg InN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciIgbWVhbnQgdGhlcmUgd2VyZSBhbHNvIGFuIHVuYm91 bmQgbnVtYmVyIG9mIHRoaW5ncyBsaWtlICJzdHJ1Y3QgbGlzdF9oZWFkIGFjdGl2ZV9saXN0IiBv ciAidTMyIGlycV9lbmFibGVfbWFzayIsIHdoaWNoIG1hZGUgbGl0dGxlIHNlbnNlLgo+IC0gV2hh dCB3ZSByZWFsbHkgbmVlZGVkLCBJIG5haXZlbHkgdGhvdWdodCwgaXMgdG8gZ2V0IHJpZCBvZiB0 aGUgY29uY2VwdCBvZiByaW5nOiB0aGVyZSBhcmUgbm8gcmluZ3MsIHRoZXJlIGFyZSBlbmdpbmVz IChsaWtlIHRoZSByZW5kZXIgZW5naW5lLCB0aGUgdmVib3gsIGV0Yy4uLikgYW5kIHRoZXJlIGFy ZSByaW5nYnVmZmVycyAoYXMgaW4gY2lyY3VsYXIgYnVmZmVyIHdpdGggYSBoZWFkIG9mZnNldCwg dGFpbCBvZmZzZXQsIGFuZCBjb250cm9sIGluZm9ybWF0aW9uKS4gU28gSSB3ZW50IG9uIGFuZCBy ZW5hbWVkIHRoZSBvbGQgImludGVsX3JpbmdfYnVmZmVyIiB0byAiaW50ZWxfZW5naW5lX2NzIiwg dGhlbiBleHRyYWN0aW5nIGEgZmV3IHRoaW5ncyBpbnRvIGEgbmV3ICJpbnRlbF9yaW5nYnVmZmVy IiBzdHJ1Y3QuIFByZS1FeGVjbGlzdHMsIHRoZXJlIHdhcyBhIDE6MSByZWxhdGlvbnNoaXAgYmV0 d2VlbiB0aGUgcmluZ2J1ZmZlcnMgYW5kIHRoZSBlbmdpbmVzLiBXaXRoIEV4ZWNsaXN0cywgaG93 ZXZlciwgdGhpcyAxOjEgcmVsYXRpb25zaGlwIGlzIGJldHdlZW4gdGhlIHJpbmdidWZmZXJzIGFu ZCB0aGUgY29udGV4dHMuCj4gLSBJIHJlbWVtYmVyIGV4cGxhaW5pbmcgdGhpcyBwcm9ibGVtIGlu IGEgZmFjZS10by1mYWNlIG1lZXRpbmcgaW4gdGhlIFVLIHdpdGggc29tZSBPVEMgcGVvcGxlIGJh Y2sgaW4gRmVicnVhcnkgKEkgdGhpbmsgdGhleSB0cmllZCB0byBnZXQgeW91IG9uIHRoZSBwaG9u ZSBidXQgdGhleSBkaWRuwrR0IG1hbmFnZS4gSSBkbyByZW1lbWJlciB0aGV5IGdvdCBEYW5pZWwg dGhvdWdoKS4gSGVyZSwgSSBwcm9wb3NlZCB0aGF0IGFuIGVhc3kgc29sdXRpb24gKGVhc3ksIGJ1 dCBtYXliZSBub3QgcmlnaHQpIHdhcyB0byBwbHVtYiB0aGUgY29udGV4dCBkb3duOiBpbiBFeGVj bGlzdHMgbW9kZSwgd2Ugd291bGQgcmV0cmlldmUgdGhlIHJpbmdidWZmZXIgZnJvbSB0aGUgY29u dGV4dCB3aGlsZSwgaW4gbGVnYWN5IG1vZGUsIHdlIHdvdWxkIGdldCBpdCBmcm9tIHRoZSBlbmdp bmUuIEV2ZXJ5Ym9keSBzZWVtZWQgdG8gYWdyZWUgd2l0aCB0aGlzLgo+IC0gSSB3b3JrZWQgb24g dGhpcyBwcmVtaXNlIGZvciBzZXZlcmFsIHZlcnNpb25zIHRoYXQgSSBzZW50IHRvIHRoZSBtYWls aW5nIGxpc3QgZm9yIHJldmlldyAoZmlyc3QgdGhlIGludGVybmFsLCB0aGVuIGludGVsLWdmeCku IERhbmllbCBvbmx5IGNvbXBsYWluZWQgbGFzdCBtb250aCwgd2hlbiBoZSBwb2ludGVkIG91dCB0 aGF0IGhlIGFza2VkLCBhIGxvbmcgbG9uZyB0aW1lIGFnbywgZm9yIGEgY29tcGxldGVseSBzZXBh cmF0ZSBleGVjdXRpb24gcGF0aCBmb3IgRXhlY2xpc3RzLiBBbmQgdGhpcyBpcyB3aGVyZSB3ZSBh cmUgbm93Li4uCj4gCj4gQW5kIG5vdyBiYWNrIHRvIHRoZSBwcm9ibGVtIGF0IGhhbmQ6IHdoYXQg ZG8geW91IHN1Z2dlc3QgSSBkbyBub3cgKG90aGVyIHRoYW4gcml0dWFsIHNlcHB1a3UsIEkgbWVh bik/IEkgbmVlZCB0byBrbm93IHRoZSBlbmdpbmUgKGZvciBhIGxvdCBvZiByZWFzb25zKSwgdGhl IHJpbmdidWZmZXIgKHRvIGtub3cgd2hlcmUgdG8gcGxhY2UgY29tbWFuZHMpIGFuZCB0aGUgY29u dGV4dCAodG8ga25vdyB3aGF0IHRvIHN1Ym1pdCB0byB0aGUgRUxTUCkuIEkgY2FuIHNwaW4gaXQg YSB0aG91c2FuZCBkaWZmZXJlbnQgd2F5cywgYnV0IEkgc3RpbGwgbmVlZCB0byBrbm93IHRob3Nl IHRocmVlIHRoaW5ncy4gQXQgdGhlIHNhbWUgdGltZSwgSSBjYW5ub3QgcmV1c2UgdGhlIG9sZCBp bnRlbF9yaW5nYnVmZmVyIGNvZGUgYmVjYXVzZSBEYW5pZWwgd29uwrR0IGFwcHJvdmUuIFdoYXQg d291bGQgeW91IGRvPwoKSSB0aGluayB3aGF0IENocmlzIGlzIHRyeWluZyB0byBzYXkgaXMgdGhh dCBhbGwgb2YgeW91ciBvcGVyYXRpb25zCnNob3VsZCBiZSBjb250ZXh0IGRyaXZlbi4gVGhlIHJp bmdidWZmZXIgaXMgYWx3YXlzIGEgZGVyaXZhdGl2ZSBvZiB0aGUKY29udGV4dC4gSWYgSSB1bmRl cnN0YW5kIENocmlzIGNvcnJlY3RseSwgSSBhZ3JlZSB3aXRoIGhpbSwgYnV0IGhlIGlzCmJlaW5n IGNoYXJhY3RlcmlzdGljYWxseSB0ZXJzZS4KClRoZXJlIHNob3VsZCBiZSB0d28gZGF0YSBzdHJ1 Y3R1cmVzOgppbnRlbF9lbmdpbmVfY3MsIGZvcm1lcmx5IGludGVsX3JpbmdidWZmZXIgLSBmb3Ig bGVnYWN5CmludGVsX2NvbnRleHQsIGZvcm1lcmx5IGludGVsX2h3X2NvbnRleHQgLSBmb3IgZXhl Y2xpc3QKCllvdSBkaWQgdGhhdC4KClRoZW4gdGhlcmUgc2hvdWxkIGJlIGEgZGF0YSBzdHJ1Y3R1 cmUgdG8gcmVwcmVzZW50IHRoZSByaW5nYnVmZmVyIHdpdGhpbgp0aGUgZXhlY2xpc3QgY29udGV4 dC4KCllvdSBkaWQgdGhhdCwgdG9vLgoKSSBkb24ndCB0aGluayB0aGUgZmFjdCB0aGF0IHRoZXJl IGlzIGEgc2VwYXJhdGUgZXhlY2J1ZiBwYXRoIG1ha2VzIGFueQpkaWZmZXJlbmNlIGluIHRoaXMg Y29udmVyc2F0aW9uLCBidXQgcGVyaGFwcyBJIG1pc3NlZCBzb21lIGRldGFpbC4KClNvIGF0IGxl YXN0IGZyb20gd2hhdCBJIGNhbiB0ZWxsLCB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSByaWdodC4g VGhlCnByb2JsZW0gaXMgdGhhdCB3ZSdyZSBtaXhpbmcgYW5kIG1hdGNoaW5nIGludGVsX2VuZ2lu ZV9jcyB3aXRoIHRoZSBuZXcKW2FuZCBJIHdpc2ggd2UgY291bGQgaGF2ZSB1c2VkIGEgZGlmZmVy ZW50IG5hbWVdIGludGVsX3JpbmdidWZmZXIuIEFzCmFuIGV4YW1wbGUgZnJvbSBuZWFyIHRoZSB0 b3Agb2YgdGhlIHBhdGNoOgorICAgICAgIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdi dWYpOworCisgICAgICAgaWYgKGludGVsX3Jpbmdfc3RvcHBlZChyaW5nKSkKKyAgICAgICAgICAg ICAgIHJldHVybjsKCllvdSdyZSBhZHZhbmNpbmcgdGhlIHJpbmdidWYsIGJ1dCBjaGVja2luZyB0 aGUgcmluZz8gVGhhdCdzIGNvbmZ1c2luZyB0bwptZS4KCkkgdGhpbmsgdGhlIG9ubHkgc29sdXRp b24gZm9yIHdoYXQgQ2hyaXMgaXMgYXNraW5nIGZvciBpcyB0byBpbXBsZW1lbnQKdGhpcyBhcyAx IGNvbnRleHQgcGVyIGVuZ2luZSwgYXMgb3Bwb3NlZCB0byAxIGNvbnRleHQgd2l0aCBhIGNvbnRl eHQKb2JqZWN0IHBlciBlbmdpbmUuIEFzIHlvdSBjb3JyZWN0bHkgc3RhdGVkLCBJIHRoaW5rIHdl IGFsbCBhZ3JlZWQgdGhlCmxhdHRlciB3YXMgZmluZSB3aGVuIHdlIG1ldC4gRnVuY3Rpb25hbGx5 LCBJIHNlZSBubyBkaWZmZXJlbmNlLCBidXQgaXQKZG9lcyBhbGxvdyB5b3UgdG8gYWx3YXlzIHVz ZSBhIGNvbnRleHQgYXMgdGhlIHNvbGUgbWVjaGFuaXNtIGZvciBtYWtpbmcKYW55IGRlY2lzaW9u cyBhbmQgcGVyZm9ybWluZyBhbnkgb3BlcmF0aW9ucy4gTm93IHdpdGhvdXQgd3JpdGluZyBhbGwg dGhlCmNvZGUsIEkgY2FuJ3QgcHJvbWlzZSBpdCBhY3R1YWxseSB3aWxsIGxvb2sgYmV0dGVyLCBi dXQgSSB0aGluayBpdCdzCmxpa2VseSBnb2luZyB0byBiZSBhIGxvdCBjbGVhbmVyLiBCZWZvcmUg eW91IGRvIGFueSBjaGFuZ2VzIHRob3VnaC4uLgoKT24gdG8gd2hhdCBJIHNlZSBhcyB0aGUgcmVh bCBwcm9ibGVtOiBmdW5kYW1lbnRhbGx5LCBpZiBEYW5pZWwgcHV0IENocmlzCmluIGNoYXJnZSBv ZiBnaXZpbmcgdGhlIHRodW1icyBvciBkb3duLCB0aGVuIHlvdSBzaG91bGQgZ2V0IERhbmllbCB0 bwphZ3JlZSB0aGF0IGhlIHdpbGwgZGVmZXIgdG8gQ2hyaXMsIGFuZCB5b3Ugc2hvdWxkIGRvIHdo YXRldmVyIENocmlzCnNheXMuIFlvdSBuZWVkIG5vdCBiZSBjYXVnaHQgaW4gdGhlIG1pZGRsZSBv ZiBEYW5pZWwgYW5kIENocmlzIC0gaXQgaXMgYQpiYWQgcGxhY2UgdG8gYmUgKEkga25vdyBmcm9t IG11Y2ggZXhwZXJpZW5jZSkuIElmIERhbmllbCBpcyBub3Qgb2theQp3aXRoIHRoYXQsIHRoZW4g aGUgbmVlZHMgdG8gZmluZCBhIGRpZmZlcmVudCByZXZpZXdlci4KCi0tIApCZW4gV2lkYXdza3ks IEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==