From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 2/3] drm/i915: Add format modifiers for Intel Date: Thu, 12 Jan 2017 10:56:17 -0800 Message-ID: <20170112185616.GA29760@mail.bwidawsk.net> References: <20170112005118.19146-1-ben@bwidawsk.net> <20170112005118.19146-3-ben@bwidawsk.net> <20170112105120.GV31595@intel.com> <20170112180054.GA26398@mail.bwidawsk.net> <20170112183207.GC31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170112183207.GC31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: Intel GFX , "Kristian H . Kristensen" , DRI Development List-Id: intel-gfx@lists.freedesktop.org T24gMTctMDEtMTIgMjA6MzI6MDcsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPk9uIFRodSwgSmFu IDEyLCAyMDE3IGF0IDEwOjAwOjU1QU0gLTA4MDAsIEJlbiBXaWRhd3NreSB3cm90ZToKPj4gT24g MTctMDEtMTIgMTI6NTE6MjAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPj4gPk9uIFdlZCwgSmFu IDExLCAyMDE3IGF0IDA0OjUxOjE3UE0gLTA4MDAsIEJlbiBXaWRhd3NreSB3cm90ZToKPj4gPj4g VGhpcyB3YXMgYmFzZWQgb24gYSBwYXRjaCBvcmlnaW5hbGx5IGJ5IEtyaXN0aWFuLiBJdCBoYXMg YmVlbiBtb2RpZmllZAo+PiA+PiBwcmV0dHkgaGVhdmlseSB0byB1c2UgdGhlIG5ldyBjYWxsYmFj a3MgZnJvbSB0aGUgcHJldmlvdXMgcGF0Y2guCj4+ID4+Cj4+ID4+IENjOiBLcmlzdGlhbiBILiBL cmlzdGVuc2VuIDxob2Vnc2JlcmdAZ21haWwuY29tPgo+PiA+PiBTaWduZWQtb2ZmLWJ5OiBCZW4g V2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+Cj4+ID4+IC0tLQo+PiA+PiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTA5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCj4+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAg MzMgKysrKysrKysrKy0KPj4gPj4gIDIgZmlsZXMgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMoKyks IDUgZGVsZXRpb25zKC0pCj4+ID4+Cj4+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPj4gPj4gaW5kZXggODcxNWIxMDgzZDFkLi4yNmYzYTkxMWI5OTkgMTAwNjQ0Cj4+ID4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiA+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gPj4gQEAgLTYxLDYgKzYxLDExIEBA IHN0YXRpYyBjb25zdCB1aW50MzJfdCBpOHh4X3ByaW1hcnlfZm9ybWF0c1tdID0gewo+PiA+PiAg CURSTV9GT1JNQVRfWFJHQjg4ODgsCj4+ID4+ICB9Owo+PiA+Pgo+PiA+PiArc3RhdGljIGNvbnN0 IHVpbnQ2NF90IGk4eHhfZm9ybWF0X21vZGlmaWVyc1tdID0gewo+PiA+PiArCUk5MTVfRk9STUFU X01PRF9YX1RJTEVELAo+PiA+Cj4+ID5EaWQgd2Ugd2FudCB0byBsaXN0IHRoZSBsaW5lYXIgbW9k aWZpZXIgaW4gdGhlc2UgYXMgd2VsbD8KPj4gPgo+Pgo+PiBZZWFoLiBNeSBpbml0aWFsIHJlc3Bv bnNlIHdhcyBubywgYnV0IHllcy4gV2Ugc2hvdWxkLiBJIHdhcyB1c2luZwo+PiBEUk1fRk9STUFU X01PRF9OT05FIGluIGl0cyBwbGFjZSwgaXQgc2hvdWxkIGJlIGxpbmVhciwgYW5kIGl0IHNob3Vs ZCBiZSBkZWZpbmVkCj4+IGluIHRoZSBhcnJheS4KPj4KPj4gPj4gKwlEUk1fRk9STUFUX01PRF9J TlZBTElECj4+ID4+ICt9Owo+PiA+PiArCj4+ID4+ICAvKiBQcmltYXJ5IHBsYW5lIGZvcm1hdHMg Zm9yIGdlbiA+PSA0ICovCj4+ID4+ICBzdGF0aWMgY29uc3QgdWludDMyX3QgaTk2NV9wcmltYXJ5 X2Zvcm1hdHNbXSA9IHsKPj4gPj4gIAlEUk1fRk9STUFUX0M4LAo+PiA+PiBAQCAtNzEsNiArNzYs MTEgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGk5NjVfcHJpbWFyeV9mb3JtYXRzW10gPSB7Cj4+ ID4+ICAJRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMCwKPj4gPj4gIH07Cj4+ID4+Cj4+ID4+ICtzdGF0 aWMgY29uc3QgdWludDY0X3QgaTk2NV9mb3JtYXRfbW9kaWZpZXJzW10gPSB7Cj4+ID4+ICsJSTkx NV9GT1JNQVRfTU9EX1hfVElMRUQsCj4+ID4+ICsJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAo+PiA+ PiArfTsKPj4gPgo+PiA+V2UgY291bGQganVzdCBzaGFyZSB0aGUgaTh4eCBhcnJheS4gVGhlIG5h bWUgb2YgdGhlIGFycmF5IHNob3VsZCBwZXJoYXBzCj4+ID5iZSBpOXh4X2Zvcm1hdF9tb2RpZmll cnNbXSBpbiB0aGF0IGNhc2UuIFRoYXQncyBzb3J0IG9mIHRoZSBuYW1pbmcKPj4gPmNvbnZlbnRp b24gd2UndmUgYmVlbiBsZWZ0IHdpdGggZm9yIHRoaW5ncyB0aGF0IGFwcGx5IHRvIG1vcmUgb3Ig bGVzcwo+PiA+YWxsIHRoZSBwbGF0Zm9ybXMuCj4+ID4KPj4KPj4gR290IGl0IHRoYW5rcy4gVGhp cyBpcyBhIHJlbGljIGZyb20gS3Jpc3RpYW4ncyBvcmlnaW5hbCBwYXRjaCB3aGljaCB0aWVkIHRo ZQo+PiBtb2RpZmllcnMgdG8gdGhlIGZvcm1hdHMgaW4gcGxhY2UuIEl0IG1hZGUgbW9yZSBzZW5z ZSB0aGVyZSB0byBoYXZlIGEgc2VwYXJhdGUKPj4gaTh4eAo+Pgo+PiA+PiArCj4+ID4+ICBzdGF0 aWMgY29uc3QgdWludDMyX3Qgc2tsX3ByaW1hcnlfZm9ybWF0c1tdID0gewo+PiA+PiAgCURSTV9G T1JNQVRfQzgsCj4+ID4+ICAJRFJNX0ZPUk1BVF9SR0I1NjUsCj4+ID4+IEBAIC04Niw2ICs5Niwx MiBAQCBzdGF0aWMgY29uc3QgdWludDMyX3Qgc2tsX3ByaW1hcnlfZm9ybWF0c1tdID0gewo+PiA+ PiAgCURSTV9GT1JNQVRfVllVWSwKPj4gPj4gIH07Cj4+ID4+Cj4+ID4+ICtzdGF0aWMgY29uc3Qg dWludDY0X3Qgc2tsX2Zvcm1hdF9tb2RpZmllcnNbXSA9IHsKPj4gPj4gKwlJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRCwKPj4gPgo+PiA+WWYgbWlzc2luZz8gYW5kIGxpbmVhcgo+PiA+Cj4+Cj4+IFll cywgdGhhbmtzLiBJJ20ga2luZCBvZiBzY2FyZWQgdG8gYWRkIFlmIHRvIGJlIGhvbmVzdCA6UAo+ Pgo+PiA+PiArCUk5MTVfRk9STUFUX01PRF9YX1RJTEVELAo+PiA+PiArCURSTV9GT1JNQVRfTU9E X0lOVkFMSUQKPj4gPj4gK307Cj4+ID4+ICsKPj4gPj4gIC8qIEN1cnNvciBmb3JtYXRzICovCj4+ ID4+ICBzdGF0aWMgY29uc3QgdWludDMyX3QgaW50ZWxfY3Vyc29yX2Zvcm1hdHNbXSA9IHsKPj4g Pj4gIAlEUk1fRk9STUFUX0FSR0I4ODg4LAo+PiA+PiBAQCAtMTUxNzMsNiArMTUxODksODcgQEAg dm9pZCBpbnRlbF9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+PiA+PiAg CWtmcmVlKHRvX2ludGVsX3BsYW5lKHBsYW5lKSk7Cj4+ID4+ICB9Cj4+ID4+Cj4+ID4+ICtzdGF0 aWMgYm9vbCBpOHh4X21vZF9zdXBwb3J0ZWQodWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2Rp ZmllcikKPj4gPj4gK3sKPj4gPj4gKwlpZiAobW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTk9O RSkKPj4gPj4gKwkJcmV0dXJuIHRydWU7Cj4+ID4+ICsKPj4gPj4gKwlzd2l0Y2ggKGZvcm1hdCkg ewo+PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9DODoKPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfUkdC NTY1Ogo+PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMTU1NToKPj4gPj4gKwljYXNlIERSTV9G T1JNQVRfWFJHQjg4ODg6Cj4+ID4+ICsJCXJldHVybiBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9N T0RfWF9USUxFRDsKPj4gPj4gKwlkZWZhdWx0Ogo+PiA+PiArCQlyZXR1cm4gZmFsc2U7Cj4+ID4+ ICsJfQo+PiA+PiArfQo+PiA+PiArCj4+ID4+ICtzdGF0aWMgYm9vbCBpOTY1X21vZF9zdXBwb3J0 ZWQodWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllcikKPj4gPj4gK3sKPj4gPj4gKwlz d2l0Y2ggKGZvcm1hdCkgewo+PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9DODoKPj4gPj4gKwljYXNl IERSTV9GT1JNQVRfUkdCNTY1Ogo+PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoKPj4g Pj4gKwljYXNlIERSTV9GT1JNQVRfWEJHUjg4ODg6Cj4+ID4+ICsJY2FzZSBEUk1fRk9STUFUX1hS R0IyMTAxMDEwOgo+PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMDoKPj4gPj4gKwkJ cmV0dXJuIG1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOwo+PiA+PiArCWRlZmF1 bHQ6Cj4+ID4+ICsJCXJldHVybiBmYWxzZTsKPj4gPj4gKwl9Cj4+ID4+ICt9Cj4+ID4KPj4gPkht bS4gVGhlcmUgc2hvdWxkIGJlIG5vIGZvcm1hdCB2cy4gdGlsaW5nIHJlc3RyaWN0aW9ucyBvbiB0 aGVzZQo+PiA+cGxhdGZvcm1zLCBzbyBwcmVzdW1hYmx5IGEgc2ltcGxlICJyZXR1cm4gdHJ1ZSIg c2hvdWxkIGNvdmVyIGl0IGFsbC4KPj4gPlRoYXQgZG9lcyBwZXJoYXBzIHJlbW92ZSB0aGUgdXNl ZnVsbmVzcyBvZiB0aGVzZSBmdW5jdGlvbnMgZm9yCj4+ID52ZXJpZnlpbmcgdGhhdCB0aGUgZm9y bWF0IG9yIG1vZGlmaWVyIGlzIHN1cHBvcnRlZCBhdCBhbGwKPj4KPj4gT25lIG9mIHRoZSByZWFz b25zIGZvciBjaGFuZ2luZyB0byB0aGlzIGN1cnJlbnQgZm9ybWF0LW1vZGlmaWVyIGxvb2t1cCBh dCBhbGwKPj4gd2FzIEtyaXN0aWFuJ3MgYXBwcm9hY2ggd2FzIGNvbnNpZGVyZWQgZnJhZ2lsZS4g SWYgZm9yIHdoYXRldmVyIHJlYXNvbiBmb3JtYXRzCj4+IGFyZSBhZGRlZCwgb3IgcmVtb3ZlZCwg d2UnbGwgY2F0Y2ggaXQgaGVyZS4gQWxzbywgaXQgbWF5YmUgbGV0J3MgdXMgZG8gc29tZXRoaW5n Cj4+IG9uIGN1cnNvciBwbGFuZSBhdCBzb21lIHBvaW50IChJIGRvbid0IGFjdHVhbGx5IGtub3cp LiBTbyB5ZWFoLCB3ZSBjYW4gcmV0dXJuCj4+IHRydWUsIGJ1dCBJIGxpa2UgdGhhdCBpdCdzIHNw ZWxsZWQgb3V0IGV4cGxpY2l0bHkuIE1ha2VzIGl0IGVhc3kgdG8gY29tcGFyZSBpdAo+PiB0byB0 aGUgZG9jcyBhcyB3ZWxsIHRvIG1ha2Ugc3VyZSBvdXIgY29kZSBpcyBjb3JyZWN0Lgo+Pgo+PiBU aGUgYmVuZWZpdCBpcyBvZiBjb3Vyc2UgSSBjYW4gY29tYmluZSBpOTY1X21vZF9zdXBwb3J0ZWQo KSB3aXRoCj4+IGk4eHhfbW9kX3N1cHBvcnRlZCgpCj4+Cj4+IEknbSBob25lc3RseSBmaW5lIHdp dGggY2hhbmdpbmcgaXQgYXMgd2VsbCwgSSBqdXN0IGRvbid0IHNlZSBhIGh1Z2UgcmVhc29uIHRv Cj4+IGNoYW5nZSBpdCBzaW5jZSBJJ3ZlIGFscmVhZHkgdHlwZWQgaXQgdXAuIEknbGwgbGVhdmUg aXQgdG8geW91Lgo+Cj5GZWVsIGZyZWUgdG8ga2VlcCBpdC4gV2UgY2FuIGFsd2F5cyBjaGFuZ2Ug aXQgbGF0ZXIgaWYgaXQgYmVjb21lcyB0b28gbXVjaAo+d29yayB0byBtYWludGFpbiB0aGUgZHVw bGljYXRlZCBmb3JtYXQgbGlzdHMgKHRoZSBmdW5jdGlvbiBhbmQgdGhlIGFycmF5KS4KPk5vdCB0 aGF0IEkgcmVhbGx5IGV4cGVjdCB0aGVzZSBsaXN0cyB0byBiZSBhbGwgdGhhdCB2b2xhdGlsZS4K Pgo+Pgo+PiBbIF0gWWVzLCBjaGFuZ2UgaXQuCj4+IFsgXSBObywgbGVhdmUgaXQuCj4+Cj4+ID5i dXQgSSd2ZSBiZWVuIHRoaW5raW5nIHRoYXQgYWRkZmIgc2hvdWxkIHBlcmhhcHMganVzdCBpdGVy YXRlIHRocm91Z2ggdGhlCj4+ID5mb3JtYXQgYW5kIG1vZGlmaWVyIGxpc3RzIGZvciBldmVyeSBw bGFuZS4gV291bGQgYXZvaWQgaGF2aW5nIHRvIGVmZmVjdGl2ZWx5Cj4+ID5tYWludGFpbiB0aGUg c2FtZSBsaXN0cyBpbiBtdWx0aXBsZSBwbGFjZXMuCj4+ID4KPj4KPj4gSSBkb24ndCBxdWl0ZSBm b2xsb3cgdGhpcy4gQ2FuIHlvdSBlbGFib3JhdGU/Cj4KPkkgd2FzIGp1c3QgdGhpbmtpbmcgdGhh dCBpbnN0ZWFkIG9mIGFkZGZiIHBhc3NpbmcgaW4gYW4gdW52ZXJpZmllZCBmb3JtYXQKPnRvIHRo ZSBkcml2ZXIncyAuZmJfY3JlYXRlKCkgaG9vaywgaXQgY291bGQgZmlyc3QgZ28gdGhyb3VnaCB0 aGUgZm9ybWF0Cj5saXN0cyBvZiBlYWNoIHBsYW5lLCBhbmQgbWFrZSBzdXJlIGF0IGxlYXN0IG9u ZSBvZiB0aGVtIHN1cHBvcnRzIHRoZQo+cmVxdWVzdGVkIGZvcm1hdC4gVGhhdCB3YXkgd2UgY291 bGQgZWxpbWluYXRlIHRoYXQgZnJhZ2lsZSBwaXhlbF9mb3JtYXQKPnN3aXRjaCBzdGF0ZW1lbnQg ZnJvbSBpbnRlbF9mcmFtZWJ1ZmZlcl9pbml0KCkuCj4KPkJ1dCBpZiB5b3UgcGxhbiBvbiBtYWtp bmcgdGhlIC5mb3JtYXRfbW9kX3N1cHBvcnRlZCgpIGhvb2tzIDEwMCUKPnN0cmljdCwgdGhlbiB3 ZSBjb3VsZCB1c2UgdGhhdCBpbnN0ZWFkLiBXb3VsZCBhdm9pZCBoYXZpbmcgdG8gd2Fsawo+dGhl IGZvcm1hdCBsaXN0cyBvZiBldmVyeSBwbGFuZSBhdCBsZWFzdC4KPgoKTGV0J3Mga2VlcCBpdCB0 aGUgd2F5IHRoaW5ncyBhcmUgZm9yIG5vdywgbW9zdGx5IGJlY2F1c2UgSSdtIGxhenkgYW5kIHRo aXMKd29ya3MuCgo+Pgo+PiA+PiArCj4+ID4+ICtzdGF0aWMgYm9vbCBza2xfbW9kX3N1cHBvcnRl ZCh1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyKQo+PiA+PiArewo+PiA+PiArCXN3 aXRjaCAoZm9ybWF0KSB7Cj4+ID4+ICsJY2FzZSBEUk1fRk9STUFUX0M4Ogo+PiA+PiArCWNhc2Ug RFJNX0ZPUk1BVF9SR0I1NjU6Cj4+ID4+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Ogo+PiA+ PiArCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoKPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfQVJH Qjg4ODg6Cj4+ID4+ICsJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4Ogo+PiA+PiArCQlyZXR1cm4g bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKPj4gPj4gKwkJCW1vZGlmaWVy ID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOwo+PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdC MjEwMTAxMDoKPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfWEJHUjIxMDEwMTA6Cj4+ID4+ICsJCXJl dHVybiBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsKPj4gPj4gKwljYXNlIERS TV9GT1JNQVRfWVVZVjoKPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfWVZZVToKPj4gPj4gKwljYXNl IERSTV9GT1JNQVRfVVlWWToKPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfVllVWToKPj4gPgo+PiA+ SUlSQyBvbiBTS0wgdGhlIG9ubHkgcmVzdHJpY3Rpb25zIHNob3VsZCBiZSB0aGF0IENDUyBtb2Rp ZmllcnMgYXJlCj4+ID5saW1pdGVkIHRvIDg6ODo4OjggZm9ybWF0cyBvbmx5LiBPdGhlciBtb2Rp ZmllcnMgc2hvdWxkIHdvcmsKPj4gPndpdGggYW55IGZvcm1hdC4KPj4gPgo+Pgo+PiBUaGlzIHJl c3RyaWN0aW9uIHdhcyBjb3BpZWQgZnJvbSBLcmlzdGlhbidzIHBhdGNoLiBJIGp1c3QgY2hlY2tl ZCB0aGUgZG9jcyBhbmQKPj4geW91IGFyZSBjb3JyZWN0LiBTbyB0aGlzIG5lZWRzIFlmIG1vZGlm aWVyIHRvby4gKEFzaWRlIGZyb20gQ0NTLCByb3RhdGlvbiBpcyB0aGUKPj4gb25lIGNhc2U6IHgt dGlsZWQgMTAxMDEwMiBpc24ndCBzdXBwb3J0ZWQpLgo+Cj5JIGNhbid0IHNlZSBhbnkgZXh0cmEg cmVzdHJpY3Rpb25zIGZvciAxMGJwYyBmb3JtYXRzLgo+Cj5UaGUgb25seSBleGNlcHRpb24gSSBz ZWUgZm9yIDAvMTgwIGRlZ3JlZSByb3RhdGlvbiBpcyBGUDE2IG5vdCBiZWluZwo+c3VwcG9ydGVk IHdpdGggWWYuIEFuZCBzaW5jZSB3ZSBkb24ndCBhY3R1YWxseSBleHBvc2UgRlAxNiB3ZSBkb24n dCBoYXZlCj50byB3b3JyeSBhYm91dCBpdC4gU28gYXBhcnQgZnJvbSB0aGUgQ0NTKzg6ODo4Ojgg Y2FzZXMgYWxsIG90aGVyCj5mb3JtYXQrbW9kaWZpZXIgY29tYm9zIHNob3VsZCBiZSBwZXJmZWN0 bHkgZmluZSBBRkFJQ1MuCj4KPk15IGluZm9ybWF0aW9uIHdhcyBnbGVhbmVkIGZyb20gdGhlICJw bGFuZSBjYXBhYmlsaXR5IiB0YWJsZSBpbiB0aGUKPnNwZWMsIGJ1dCBJIHdhc24ndCBhYmxlIHRv IGltbWVkaWF0ZWx5IHNwb3QgYW55IGFkZGl0aW9uYWwgcmVzdHJpY3Rpb24KPmluIHRoZSBQTEFO RV9DVEwgcmVnaXN0ZXIgZGVzY3JpcHRpb24gZWl0aGVyLgo+CgpTb3JyeSBmb3IgbWFraW5nIHlv dSB2ZXJpZnkgdGhhdCwgSSB0aGluayB5b3UgYXJlIGNvcnJlY3QgYW5kIEknbSBtaXNyZWFkaW5n IHRoZQp0YWJsZS4gSSB3YXMganVzdCBsb29raW5nIGF0IHRoZSBzcGVjaWZpYyBjb2x1bW5zOiBM aW5lYXIgYW5kIFgtdGlsZWQgOTAvMjcwCnJvdGF0aW9uIGFyZW4ndCBzdXBwb3J0ZWQgd2l0aCAx MDEwMTAyLCBidXQgdGhleSBhcmVuJ3Qgc3VwcG9ydGVkIHdpdGggYW55IG90aGVyCnN1cmZhY2Ug Zm9ybWF0IGVpdGhlci4KCkhvd2V2ZXIsIGxvb2tpbmcgYWdhaW4gbm93LCBpdCBsb29rcyBsaWtl IERSTV9GT1JNQVRfQzggZG9lc24ndCBzdXBwb3J0IFlmLgoKPj4KPj4gPj4gKwlkZWZhdWx0Ogo+ PiA+PiArCQlyZXR1cm4gZmFsc2U7Cj4+ID4+ICsJfQo+PiA+PiArCj4+ID4+ICt9Cj4+ID4+ICsK Pj4gPj4gK3N0YXRpYyBib29sIGludGVsX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+PiA+PiArCQkJCQkgICAgIHVpbnQzMl90IGZvcm1hdCwKPj4g Pj4gKwkJCQkJICAgICB1aW50NjRfdCBtb2RpZmllcikKPj4gPj4gK3sKPj4gPj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5kZXYpOwo+PiA+PiAr Cj4+ID4+ICsJaWYgKG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX05PTkUpCj4+ID4+ICsJCXJl dHVybiB0cnVlOwo+PiA+PiArCj4+ID4+ICsJaWYgKFdBUk5fT04obW9kaWZpZXIgPT0gRFJNX0ZP Uk1BVF9NT0RfSU5WQUxJRCkpCj4+ID4+ICsJCXJldHVybiBmYWxzZTsKPj4gPj4gKwo+PiA+PiAr CWlmIChXQVJOX09OKHBsYW5lLT50eXBlICE9IERSTV9QTEFORV9UWVBFX1BSSU1BUlkgJiYKPj4g Pj4gKwkJICAgIHBsYW5lLT50eXBlICE9IERSTV9QTEFORV9UWVBFX09WRVJMQVkpKQo+PiA+PiAr CSAgICByZXR1cm4gZmFsc2U7Cj4+ID4+ICsKPj4gPj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSA5KQo+PiA+PiArCQlyZXR1cm4gc2tsX21vZF9zdXBwb3J0ZWQoZm9ybWF0LCBtb2RpZmll cik7Cj4+ID4+ICsJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0KQo+PiA+PiArCQly ZXR1cm4gaTk2NV9tb2Rfc3VwcG9ydGVkKGZvcm1hdCwgbW9kaWZpZXIpOwo+PiA+PiArCWVsc2UK Pj4gPj4gKwkJcmV0dXJuIGk4eHhfbW9kX3N1cHBvcnRlZChmb3JtYXQsIG1vZGlmaWVyKTsKPj4g Pj4gKwo+PiA+PiArCXJldHVybiBmYWxzZTsKPj4gPj4gK30KPj4gPj4gKwo+PiA+PiAgY29uc3Qg c3RydWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wbGFuZV9mdW5jcyA9IHsKPj4gPj4gIAkudXBk YXRlX3BsYW5lID0gZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX3BsYW5lLAo+PiA+PiAgCS5kaXNh YmxlX3BsYW5lID0gZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZSwKPj4gPj4gQEAgLTE1 MTgyLDYgKzE1Mjc5LDcgQEAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wbGFu ZV9mdW5jcyA9IHsKPj4gPj4gIAkuYXRvbWljX3NldF9wcm9wZXJ0eSA9IGludGVsX3BsYW5lX2F0 b21pY19zZXRfcHJvcGVydHksCj4+ID4+ICAJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBpbnRl bF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUsCj4+ID4+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0g aW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0ZSwKPj4gPj4gKwkuZm9ybWF0X21vZF9zdXBwb3J0ZWQg PSBpbnRlbF9wbGFuZV9mb3JtYXRfbW9kX3N1cHBvcnRlZCwKPj4gPj4gIH07Cj4+ID4+Cj4+ID4+ ICBzdGF0aWMgaW50Cj4+ID4+IEBAIC0xNTMyNCw2ICsxNTQyMiw3IEBAIGludGVsX3ByaW1hcnlf cGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBl IHBpcGUpCj4+ID4+ICAJY29uc3QgdWludDMyX3QgKmludGVsX3ByaW1hcnlfZm9ybWF0czsKPj4g Pj4gIAl1bnNpZ25lZCBpbnQgc3VwcG9ydGVkX3JvdGF0aW9uczsKPj4gPj4gIAl1bnNpZ25lZCBp bnQgbnVtX2Zvcm1hdHM7Cj4+ID4+ICsJY29uc3QgdWludDY0X3QgKmludGVsX2Zvcm1hdF9tb2Rp ZmllcnM7Cj4+ID4+ICAJaW50IHJldDsKPj4gPj4KPj4gPj4gIAlwcmltYXJ5ID0ga3phbGxvYyhz aXplb2YoKnByaW1hcnkpLCBHRlBfS0VSTkVMKTsKPj4gPj4gQEAgLTE1MzYyLDI0ICsxNTQ2MSwy OCBAQCBpbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQo+PiA+PiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDkpIHsKPj4gPj4gIAkJaW50ZWxfcHJpbWFyeV9mb3JtYXRzID0gc2tsX3ByaW1hcnlfZm9y bWF0czsKPj4gPj4gIAkJbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHNrbF9wcmltYXJ5X2Zvcm1h dHMpOwo+PiA+PiArCQlpbnRlbF9mb3JtYXRfbW9kaWZpZXJzID0gc2tsX2Zvcm1hdF9tb2RpZmll cnM7Cj4+ID4+Cj4+ID4+ICAJCXByaW1hcnktPnVwZGF0ZV9wbGFuZSA9IHNreWxha2VfdXBkYXRl X3ByaW1hcnlfcGxhbmU7Cj4+ID4+ICAJCXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBza3lsYWtl X2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsKPj4gPj4gIAl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQo ZGV2X3ByaXYpKSB7Cj4+ID4+ICAJCWludGVsX3ByaW1hcnlfZm9ybWF0cyA9IGk5NjVfcHJpbWFy eV9mb3JtYXRzOwo+PiA+PiAgCQludW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUoaTk2NV9wcmltYXJ5 X2Zvcm1hdHMpOwo+PiA+PiArCQlpbnRlbF9mb3JtYXRfbW9kaWZpZXJzID0gaTk2NV9mb3JtYXRf bW9kaWZpZXJzOwo+PiA+Pgo+PiA+PiAgCQlwcmltYXJ5LT51cGRhdGVfcGxhbmUgPSBpcm9ubGFr ZV91cGRhdGVfcHJpbWFyeV9wbGFuZTsKPj4gPj4gIAkJcHJpbWFyeS0+ZGlzYWJsZV9wbGFuZSA9 IGk5eHhfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwo+PiA+PiAgCX0gZWxzZSBpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSA0KSB7Cj4+ID4+ICAJCWludGVsX3ByaW1hcnlfZm9ybWF0cyA9IGk5NjVf cHJpbWFyeV9mb3JtYXRzOwo+PiA+PiAgCQludW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUoaTk2NV9w cmltYXJ5X2Zvcm1hdHMpOwo+PiA+PiArCQlpbnRlbF9mb3JtYXRfbW9kaWZpZXJzID0gaTk2NV9m b3JtYXRfbW9kaWZpZXJzOwo+PiA+Pgo+PiA+PiAgCQlwcmltYXJ5LT51cGRhdGVfcGxhbmUgPSBp OXh4X3VwZGF0ZV9wcmltYXJ5X3BsYW5lOwo+PiA+PiAgCQlwcmltYXJ5LT5kaXNhYmxlX3BsYW5l ID0gaTl4eF9kaXNhYmxlX3ByaW1hcnlfcGxhbmU7Cj4+ID4+ICAJfSBlbHNlIHsKPj4gPj4gIAkJ aW50ZWxfcHJpbWFyeV9mb3JtYXRzID0gaTh4eF9wcmltYXJ5X2Zvcm1hdHM7Cj4+ID4+ICAJCW51 bV9mb3JtYXRzID0gQVJSQVlfU0laRShpOHh4X3ByaW1hcnlfZm9ybWF0cyk7Cj4+ID4+ICsJCWlu dGVsX2Zvcm1hdF9tb2RpZmllcnMgPSBpOHh4X2Zvcm1hdF9tb2RpZmllcnM7Cj4+ID4+Cj4+ID4+ ICAJCXByaW1hcnktPnVwZGF0ZV9wbGFuZSA9IGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmU7Cj4+ ID4+ICAJCXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBpOXh4X2Rpc2FibGVfcHJpbWFyeV9wbGFu ZTsKPj4gPj4gQEAgLTE1Mzg5LDIxICsxNTQ5MiwyMSBAQCBpbnRlbF9wcmltYXJ5X3BsYW5lX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQo+ PiA+PiAgCQlyZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoJmRldl9wcml2LT5kcm0sICZw cmltYXJ5LT5iYXNlLAo+PiA+PiAgCQkJCQkgICAgICAgMCwgJmludGVsX3BsYW5lX2Z1bmNzLAo+ PiA+PiAgCQkJCQkgICAgICAgaW50ZWxfcHJpbWFyeV9mb3JtYXRzLCBudW1fZm9ybWF0cywKPj4g Pj4gLQkJCQkJICAgICAgIE5VTEwsCj4+ID4+ICsJCQkJCSAgICAgICBpbnRlbF9mb3JtYXRfbW9k aWZpZXJzLAo+PiA+PiAgCQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwKPj4gPj4g IAkJCQkJICAgICAgICJwbGFuZSAxJWMiLCBwaXBlX25hbWUocGlwZSkpOwo+PiA+PiAgCWVsc2Ug aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSB8fCBJU19HNFgoZGV2X3ByaXYpKQo+PiA+PiAg CQlyZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoJmRldl9wcml2LT5kcm0sICZwcmltYXJ5 LT5iYXNlLAo+PiA+PiAgCQkJCQkgICAgICAgMCwgJmludGVsX3BsYW5lX2Z1bmNzLAo+PiA+PiAg CQkJCQkgICAgICAgaW50ZWxfcHJpbWFyeV9mb3JtYXRzLCBudW1fZm9ybWF0cywKPj4gPj4gLQkJ CQkJICAgICAgIE5VTEwsCj4+ID4+ICsJCQkJCSAgICAgICBpbnRlbF9mb3JtYXRfbW9kaWZpZXJz LAo+PiA+PiAgCQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwKPj4gPj4gIAkJCQkJ ICAgICAgICJwcmltYXJ5ICVjIiwgcGlwZV9uYW1lKHBpcGUpKTsKPj4gPj4gIAllbHNlCj4+ID4+ ICAJCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCgmZGV2X3ByaXYtPmRybSwgJnByaW1h cnktPmJhc2UsCj4+ID4+ICAJCQkJCSAgICAgICAwLCAmaW50ZWxfcGxhbmVfZnVuY3MsCj4+ID4+ ICAJCQkJCSAgICAgICBpbnRlbF9wcmltYXJ5X2Zvcm1hdHMsIG51bV9mb3JtYXRzLAo+PiA+PiAt CQkJCQkgICAgICAgTlVMTCwKPj4gPj4gKwkJCQkJICAgICAgIGludGVsX2Zvcm1hdF9tb2RpZmll cnMsCj4+ID4+ICAJCQkJCSAgICAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZLAo+PiA+PiAgCQkJ CQkgICAgICAgInBsYW5lICVjIiwgcGxhbmVfbmFtZShwcmltYXJ5LT5wbGFuZSkpOwo+PiA+PiAg CWlmIChyZXQpCj4+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z cHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4+ID4+IGluZGV4 IDFjMmYyNmQ4NmY3Ni4uMTUyZWM4MTk2ZDQxIDEwMDY0NAo+PiA+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+PiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYwo+PiA+PiBAQCAtOTk0LDYgKzk5NCwxMSBAQCBzdGF0aWMgY29uc3Qg dWludDMyX3QgaWxrX3BsYW5lX2Zvcm1hdHNbXSA9IHsKPj4gPj4gIAlEUk1fRk9STUFUX1ZZVVks Cj4+ID4+ICB9Owo+PiA+Pgo+PiA+PiArc3RhdGljIGNvbnN0IHVpbnQ2NF90IGlsa19wbGFuZV9m b3JtYXRfbW9kaWZpZXJzW10gPSB7Cj4+ID4+ICsJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCj4+ ID4+ICsJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAo+PiA+PiArfTsKPj4gPj4gKwo+PiA+PiAgc3Rh dGljIGNvbnN0IHVpbnQzMl90IHNuYl9wbGFuZV9mb3JtYXRzW10gPSB7Cj4+ID4+ICAJRFJNX0ZP Uk1BVF9YQkdSODg4OCwKPj4gPj4gIAlEUk1fRk9STUFUX1hSR0I4ODg4LAo+PiA+PiBAQCAtMTAw Myw2ICsxMDA4LDExIEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzbmJfcGxhbmVfZm9ybWF0c1td ID0gewo+PiA+PiAgCURSTV9GT1JNQVRfVllVWSwKPj4gPj4gIH07Cj4+ID4+Cj4+ID4+ICtzdGF0 aWMgY29uc3QgdWludDY0X3Qgc25iX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNbXSA9IHsKPj4gPj4g KwlJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPj4gPj4gKwlEUk1fRk9STUFUX01PRF9JTlZBTElE Cj4+ID4+ICt9Owo+PiA+PiArCj4+ID4+ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgdmx2X3BsYW5l X2Zvcm1hdHNbXSA9IHsKPj4gPj4gIAlEUk1fRk9STUFUX1JHQjU2NSwKPj4gPj4gIAlEUk1fRk9S TUFUX0FCR1I4ODg4LAo+PiA+PiBAQCAtMTAxNyw2ICsxMDI3LDExIEBAIHN0YXRpYyBjb25zdCB1 aW50MzJfdCB2bHZfcGxhbmVfZm9ybWF0c1tdID0gewo+PiA+PiAgCURSTV9GT1JNQVRfVllVWSwK Pj4gPj4gIH07Cj4+ID4+Cj4+ID4+ICtzdGF0aWMgY29uc3QgdWludDY0X3Qgdmx2X3BsYW5lX2Zv cm1hdF9tb2RpZmllcnNbXSA9IHsKPj4gPj4gKwlJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPj4g Pj4gKwlEUk1fRk9STUFUX01PRF9JTlZBTElECj4+ID4+ICt9Owo+PiA+PiArCj4+ID4+ICBzdGF0 aWMgdWludDMyX3Qgc2tsX3BsYW5lX2Zvcm1hdHNbXSA9IHsKPj4gPj4gIAlEUk1fRk9STUFUX1JH QjU2NSwKPj4gPj4gIAlEUk1fRk9STUFUX0FCR1I4ODg4LAo+PiA+PiBAQCAtMTAyOSw2ICsxMDQ0 LDEyIEBAIHN0YXRpYyB1aW50MzJfdCBza2xfcGxhbmVfZm9ybWF0c1tdID0gewo+PiA+PiAgCURS TV9GT1JNQVRfVllVWSwKPj4gPj4gIH07Cj4+ID4+Cj4+ID4+ICtzdGF0aWMgY29uc3QgdWludDY0 X3Qgc2tsX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNbXSA9IHsKPj4gPj4gKwlJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRCwKPj4gPj4gKwlJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPj4gPj4gKwlEUk1f Rk9STUFUX01PRF9JTlZBTElECj4+ID4+ICt9Owo+PiA+PiArCj4+ID4+ICBzdHJ1Y3QgaW50ZWxf cGxhbmUgKgo+PiA+PiAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4+ID4+ICAJCQkgIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxhbmUp Cj4+ID4+IEBAIC0xMDM3LDYgKzEwNTgsNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gPj4gIAlzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnN0YXRlID0gTlVMTDsKPj4gPj4gIAl1bnNpZ25lZCBsb25nIHBvc3NpYmxlX2Ny dGNzOwo+PiA+PiAgCWNvbnN0IHVpbnQzMl90ICpwbGFuZV9mb3JtYXRzOwo+PiA+PiArCWNvbnN0 IHVpbnQ2NF90ICptb2RpZmllcnM7Cj4+ID4+ICAJdW5zaWduZWQgaW50IHN1cHBvcnRlZF9yb3Rh dGlvbnM7Cj4+ID4+ICAJaW50IG51bV9wbGFuZV9mb3JtYXRzOwo+PiA+PiAgCWludCByZXQ7Cj4+ ID4+IEBAIC0xMDYzLDYgKzEwODUsNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gPj4KPj4gPj4gIAkJcGxhbmVfZm9ybWF0 cyA9IHNrbF9wbGFuZV9mb3JtYXRzOwo+PiA+PiAgCQludW1fcGxhbmVfZm9ybWF0cyA9IEFSUkFZ X1NJWkUoc2tsX3BsYW5lX2Zvcm1hdHMpOwo+PiA+PiArCQltb2RpZmllcnMgPSBza2xfcGxhbmVf Zm9ybWF0X21vZGlmaWVyczsKPj4gPj4gIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3By aXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4+ID4+ICAJCWludGVsX3BsYW5lLT5j YW5fc2NhbGUgPSBmYWxzZTsKPj4gPj4gIAkJaW50ZWxfcGxhbmUtPm1heF9kb3duc2NhbGUgPSAx Owo+PiA+PiBAQCAtMTA3Miw2ICsxMDk1LDcgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ID4+Cj4+ID4+ICAJCXBsYW5lX2Zv cm1hdHMgPSB2bHZfcGxhbmVfZm9ybWF0czsKPj4gPj4gIAkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBB UlJBWV9TSVpFKHZsdl9wbGFuZV9mb3JtYXRzKTsKPj4gPj4gKwkJbW9kaWZpZXJzID0gdmx2X3Bs YW5lX2Zvcm1hdF9tb2RpZmllcnM7Cj4+ID4+ICAJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDcpIHsKPj4gPj4gIAkJaWYgKElTX0lWWUJSSURHRShkZXZfcHJpdikpIHsKPj4gPj4g IAkJCWludGVsX3BsYW5lLT5jYW5fc2NhbGUgPSB0cnVlOwo+PiA+PiBAQCAtMTA4Niw2ICsxMTEw LDcgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4+ID4+Cj4+ID4+ICAJCXBsYW5lX2Zvcm1hdHMgPSBzbmJfcGxhbmVfZm9ybWF0 czsKPj4gPj4gIAkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHNuYl9wbGFuZV9mb3Jt YXRzKTsKPj4gPj4gKwkJbW9kaWZpZXJzID0gc25iX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnM7Cj4+ ID4+ICAJfSBlbHNlIHsKPj4gPj4gIAkJaW50ZWxfcGxhbmUtPmNhbl9zY2FsZSA9IHRydWU7Cj4+ ID4+ICAJCWludGVsX3BsYW5lLT5tYXhfZG93bnNjYWxlID0gMTY7Cj4+ID4+IEBAIC0xMDk2LDkg KzExMjEsMTEgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4+ID4+ICAJCWlmIChJU19HRU42KGRldl9wcml2KSkgewo+PiA+PiAg CQkJcGxhbmVfZm9ybWF0cyA9IHNuYl9wbGFuZV9mb3JtYXRzOwo+PiA+PiAgCQkJbnVtX3BsYW5l X2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHNuYl9wbGFuZV9mb3JtYXRzKTsKPj4gPj4gKwkJCW1vZGlm aWVycyA9IHNuYl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzOwo+PiA+PiAgCQl9IGVsc2Ugewo+PiA+ PiAgCQkJcGxhbmVfZm9ybWF0cyA9IGlsa19wbGFuZV9mb3JtYXRzOwo+PiA+PiAgCQkJbnVtX3Bs YW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGlsa19wbGFuZV9mb3JtYXRzKTsKPj4gPj4gKwkJCW1v ZGlmaWVycyA9IGlsa19wbGFuZV9mb3JtYXRfbW9kaWZpZXJzOwo+PiA+PiAgCQl9Cj4+ID4+ICAJ fQo+PiA+Pgo+PiA+PiBAQCAtMTEyNywxMyArMTE1NCwxNSBAQCBpbnRlbF9zcHJpdGVfcGxhbmVf Y3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gPj4gIAkJcmV0ID0g ZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KCZkZXZfcHJpdi0+ZHJtLCAmaW50ZWxfcGxhbmUtPmJh c2UsCj4+ID4+ICAJCQkJCSAgICAgICBwb3NzaWJsZV9jcnRjcywgJmludGVsX3BsYW5lX2Z1bmNz LAo+PiA+PiAgCQkJCQkgICAgICAgcGxhbmVfZm9ybWF0cywgbnVtX3BsYW5lX2Zvcm1hdHMsCj4+ ID4+IC0JCQkJCSAgICAgICBOVUxMLCBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAo+PiA+PiArCQkJ CQkgICAgICAgbW9kaWZpZXJzLAo+PiA+PiArCQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfT1ZF UkxBWSwKPj4gPj4gIAkJCQkJICAgICAgICJwbGFuZSAlZCVjIiwgcGxhbmUgKyAyLCBwaXBlX25h bWUocGlwZSkpOwo+PiA+PiAgCWVsc2UKPj4gPj4gIAkJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFu ZV9pbml0KCZkZXZfcHJpdi0+ZHJtLCAmaW50ZWxfcGxhbmUtPmJhc2UsCj4+ID4+ICAJCQkJCSAg ICAgICBwb3NzaWJsZV9jcnRjcywgJmludGVsX3BsYW5lX2Z1bmNzLAo+PiA+PiAgCQkJCQkgICAg ICAgcGxhbmVfZm9ybWF0cywgbnVtX3BsYW5lX2Zvcm1hdHMsCj4+ID4+IC0JCQkJCSAgICAgICBO VUxMLCBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAo+PiA+PiArCQkJCQkgICAgICAgbW9kaWZpZXJz LAo+PiA+PiArCQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSwKPj4gPj4gIAkJCQkJ ICAgICAgICJzcHJpdGUgJWMiLCBzcHJpdGVfbmFtZShwaXBlLCBwbGFuZSkpOwo+PiA+PiAgCWlm IChyZXQpCj4+ID4+ICAJCWdvdG8gZmFpbDsKPj4gPj4gLS0KPj4gPj4gMi4xMS4wCj4+ID4+Cj4+ ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+ID4+ IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwo+PiA+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo+PiA+Cj4+ID4tLQo+PiA+VmlsbGUgU3lyasOkbMOkCj4+ID5JbnRlbCBPVEMK Pgo+LS0gCj5WaWxsZSBTeXJqw6Rsw6QKPkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK