From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH xf86-video-intel v6] sna: Added AYUV format support for textured and sprite video adapters. Date: Thu, 8 Nov 2018 19:47:26 +0200 Message-ID: <20181108174726.GC9144@intel.com> References: <20181102100603.2990-1-stanislav.lisovskiy@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id D925C6E009 for ; Thu, 8 Nov 2018 17:47:30 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181102100603.2990-1-stanislav.lisovskiy@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Stanislav Lisovskiy Cc: intel-gfx@lists.freedesktop.org, ville.syrjala@intel.com, martin.peres@intel.com, juha-pekka.heikkila@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMDIsIDIwMTggYXQgMTI6MDY6MDNQTSArMDIwMCwgU3RhbmlzbGF2IExpc292 c2tpeSB3cm90ZToKPiB2MjogUmVuYW1lZCBEUk1fRk9STUFUX1hZVVYgdG8gRFJNX0ZPUk1BVF9Y WVVWODg4OC4KPiAgICAgQWRkZWQgY29tbWVudCBhYm91dCBBWVVWIGJ5dGUgb3JkZXJpbmcgaW4g R3N0cmVhbWVyLgo+IAo+IHYzOiBSZW1vdmVkIHNuYV9jb21wb3NpdGVfb3AgZmxhZ3MgcmVsYXRl ZCBjaGFuZ2UgdG8gdGhlIHNlcGFyYXRlIHBhdGNoLgo+IAo+IHY0OiBGaXhlZCByZXZpZXcgY29t bWVudHMsIGRvbmUgY29kZSByZWZhY3RvcmluZwo+IAo+IHY1OiBGaXhlZCBmb2xsb3dpbmcgcmV2 aWV3IGNvbW1lbnRzOgo+ICAgICAtIEZpeGVkIGNvbW1lbnQgaW4gc2hhZGVyIGNvZGUgZm9yIGF5 dXYga2VybmVsLgo+ICAgICAtIEZpeGVkIG5hbWluZyB0byBWSURFT19BWVVWX0JUNjAxL0JUNzA5 IGZvciBheXV2IGtlcm5lbHMuCj4gICAgIC0gUmVtb3ZlZCBkdXBsaWNhdGUgZ2VuOV9rZXJuZWwg cGFyYW1ldGVyLCBsZWZ0IGZyb20gcHJldmlvdXMgcGF0Y2hlcwo+ICAgICAtIEFkZGVkIGNvbG9y c3BhY2UgaGFuZGxpbmcgZm9yIG5ldyBBWVVWIGtlcm5lbAo+ICAgICAtIEZpeGVkIG5hbWluZyBv ZiBzbmFfY29weV9wYWNrZWRfZGF0YV9heXV2IHRvIHNuYV9jb3B5X2F5dXZfZGF0YQo+ICAgICAt IFN0YXJ0ZWQgdXNpbmcgc3RhbmRhcmQgYnN3YXBfMzIgZnVuY3Rpb24gZm9yIGJ5dGUgc3dhcHBp bmcgaW4gc25hX2NvcHlfYXl1dl9kYXRhCj4gICAgIC0gUmVtb3ZlZCByZWR1bmRhbnQgY29kZSBp biBzbmFfY29weV9heXV2X2RhdGEgc28gdGhhdCBpdCBsb29rcyBtb3JlIG5lYXQKPiAgICAgLSBG aXhlZCBYVklNQUdFX0FZVVYgc3RydWN0dXJlIGluaXRpYWxpemF0aW9uIHRvIGNvbnRhaW4gcHJv cGVyIGJ5dGUgc2VxdWVuY2UgZm9yIEdTVAo+ICAgICAtIEZpeGVkIGJvZ3VzIGNvbW1lbnQgYWJv dXQgc3Vic2FtcGxpbmcgZm9yIERSTV9GT1JNQVRfWFlVVjg4ODgKPiAgICAgLSBGaXhlZCBBWVVW IGFkdmVydGlzZW1lbnQgZm9yIGFsbCBwbGF0Zm9ybXMKPiAgICAgLSBSZW1vdmVkIHVubmVjZXNz YXJ5IFJHQjg4OCBkZWNsYXJhdGlvbi4KPiAKPiB2NjoKPiAgICAgLSBGaXhlZCBzdXJmYWNlIGZv cm1hdCBub3QgdG8gdXNlIGFscGhhIGFzIHN1cHBvc2VkCj4gICAgIC0gTm93IGRvaW5nIGJ5dGUg c3dhcHBpbmcgYWx3YXlzIGR1cmluZyBjb3B5Cj4gICAgIC0gQ2hhbmdlZCBoYWNrLCByZXF1aXJl ZCBmb3IgR1NUIHRvIHdvcmsgdG8gYmUgYXQgb25lIHBsYWNlCj4gICAgIC0gRml4ZWQgaW52YWxp ZCBzYW1wbGluZyB2YWx1ZXMgZm9yIFhWSU1BR0VfQVlVVgo+ICAgICAtIEZpeGVkIHNwcml0ZSBm b3JtYXQgY2hlY2tpbmcgb3JkZXIgYW5kIGltYWdlc19heXV2IGRlZmluaXRpb24uCj4gCj4gU2ln bmVkLW9mZi1ieTogU3RhbmlzbGF2IExpc292c2tpeSA8c3RhbmlzbGF2Lmxpc292c2tpeUBpbnRl bC5jb20+Cj4gLS0tCj4gIHNyYy9yZW5kZXJfcHJvZ3JhbS9NYWtlZmlsZS5hbSAgICAgICAgICAg ICAgICB8ICAyICsKPiAgLi4uL2V4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5nOGEgICAgICAg ICAgIHwgNzYgKysrKysrKysrKysrKysrKwo+ICAuLi4vZXhhX3dtX3NyY19zYW1wbGVfYXJnYl9h eXV2Lmc4YiAgICAgICAgICAgfCAgOCArKwo+ICBzcmMvc25hL2dlbjlfcmVuZGVyLmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCAyNCArKysrLQo+ICBzcmMvc25hL3NuYV9yZW5kZXIuaCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMyArCj4gIHNyYy9zbmEvc25hX3ZpZGVvLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDg5ICsrKysrKysrKysrKysrKysrKy0KPiAgc3JjL3NuYS9z bmFfdmlkZW8uaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgKysrKysKPiAgc3JjL3Nu YS9zbmFfdmlkZW9fc3ByaXRlLmMgICAgICAgICAgICAgICAgICAgIHwgMjAgKysrKy0KPiAgc3Jj L3NuYS9zbmFfdmlkZW9fdGV4dHVyZWQuYyAgICAgICAgICAgICAgICAgIHwgIDcgKysKPiAgOSBm aWxlcyBjaGFuZ2VkLCAyNDQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy9yZW5kZXJfcHJvZ3JhbS9leGFfd21fc3JjX3NhbXBsZV9hcmdiX2F5 dXYuZzhhCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcmVuZGVyX3Byb2dyYW0vZXhhX3dtX3Ny Y19zYW1wbGVfYXJnYl9heXV2Lmc4Ygo+IAo+IGRpZmYgLS1naXQgYS9zcmMvcmVuZGVyX3Byb2dy YW0vTWFrZWZpbGUuYW0gYi9zcmMvcmVuZGVyX3Byb2dyYW0vTWFrZWZpbGUuYW0KPiBpbmRleCBk YzU4MTM4Zi4uZTM1ZmZhNTIgMTAwNjQ0Cj4gLS0tIGEvc3JjL3JlbmRlcl9wcm9ncmFtL01ha2Vm aWxlLmFtCj4gKysrIGIvc3JjL3JlbmRlcl9wcm9ncmFtL01ha2VmaWxlLmFtCj4gQEAgLTE5Niw2 ICsxOTYsNyBAQCBJTlRFTF9HN0IgPQkJCQlcCj4gIElOVEVMX0c4QSA9CQkJCVwKPiAgCWV4YV93 bV9zcmNfYWZmaW5lLmc4YSAJCVwKPiAgCWV4YV93bV9zcmNfc2FtcGxlX2FyZ2IuZzhhIAlcCj4g KwlleGFfd21fc3JjX3NhbXBsZV9hcmdiX2F5dXYuZzhhIFwKPiAgCWV4YV93bV9zcmNfc2FtcGxl X252MTIuZzhhIAlcCj4gIAlleGFfd21fc3JjX3NhbXBsZV9wbGFuYXIuZzhhIAlcCj4gIAlleGFf d21fd3JpdGUuZzhhIAkJXAo+IEBAIC0yMDUsNiArMjA2LDcgQEAgSU5URUxfRzhBID0JCQkJXAo+ ICAKPiAgSU5URUxfRzhCID0JCQkJXAo+ICAJZXhhX3dtX3NyY19hZmZpbmUuZzhiIAkJXAo+ICsJ ZXhhX3dtX3NyY19zYW1wbGVfYXJnYl9heXV2Lmc4YiBcCj4gIAlleGFfd21fc3JjX3NhbXBsZV9h cmdiLmc4YiAJXAo+ICAJZXhhX3dtX3NyY19zYW1wbGVfbnYxMi5nOGIgCVwKPiAgCWV4YV93bV9z cmNfc2FtcGxlX3BsYW5hci5nOGIgCVwKPiBkaWZmIC0tZ2l0IGEvc3JjL3JlbmRlcl9wcm9ncmFt L2V4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5nOGEgYi9zcmMvcmVuZGVyX3Byb2dyYW0vZXhh X3dtX3NyY19zYW1wbGVfYXJnYl9heXV2Lmc4YQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMDAuLmMwYjg0YzJlCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3NyYy9yZW5kZXJf cHJvZ3JhbS9leGFfd21fc3JjX3NhbXBsZV9hcmdiX2F5dXYuZzhhCj4gQEAgLTAsMCArMSw3NiBA QAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55 IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICog U29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgp IHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsg KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKPiAr ICogSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBBdXRob3JzOgo+ICsgKiAgICBXYW5nIFpo ZW55dSA8emhlbnl1Lnoud2FuZ0BpbnRlbC5jb20+Cj4gKyAqICAgIEtlaXRoIFBhY2thcmQgPGtl aXRocEBrZWl0aHAuY29tPgo+ICsgKi8KPiArCj4gKy8qIFNhbXBsZSB0aGUgc3JjIHN1cmZhY2Ug Ki8KPiArCj4gK2luY2x1ZGUoYGV4YV93bS5nNGknKQo+ICsKPiArdW5kZWZpbmUoYHNyY19tc2cn KQo+ICt1bmRlZmluZShgc3JjX21zZ19pbmQnKQo+ICsKPiArZGVmaW5lKGBzcmNfbXNnJywgICAg ICAgYGc2NScpCj4gK2RlZmluZShgc3JjX21zZ19pbmQnLCAgIGA2NScpCj4gKwo+ICsvKiBwcmVw YXJlIHNhbXBsZXIgcmVhZCBiYWNrIGdYIHJlZ2lzdGVyLCB3aGljaCB3b3VsZCBiZSB3cml0dGVu IGJhY2sgdG8gb3V0cHV0ICovCj4gKwo+ICsvKiB1c2Ugc2ltZDE2IHNhbXBsZXIsIHBhcmFtIDAg aXMgdSwgcGFyYW0gMSBpcyB2LiAqLwo+ICsvKiAncGF5bG9hZCcgbG9hZGluZywgYXNzdW1pbmcg dGV4IGNvb3JkIHN0YXJ0IGZyb20gZzQgKi8KPiArCj4gKy8qIGxvYWQgYXJnYiAqLwo+ICttb3Yg KDEpIGcwLjg8MT5VRAkweDAwMDAwMDAwVUQgeyBhbGlnbjEgbWFza19kaXNhYmxlIH07Cj4gK21v diAoOCkgc3JjX21zZzwxPlVEIGcwPDgsOCwxPlVEIHsgYWxpZ24xIH07IC8qIGNvcHkgdG8gbXNn IHN0YXJ0IHJlZyovCj4gKwo+ICsvKiBzcmNfbXNnIHdpbGwgYmUgY29waWVkIHdpdGggZzAsIGFz IGl0IGNvbnRhaW5zIHNlbmQgZGVzYyAqLwo+ICsvKiBlbWl0IHNhbXBsZXIgJ3NlbmQnIGNtZCAq Lwo+ICtzZW5kICgxNikgc3JjX21zZ19pbmQJLyogbXNnIHJlZyBpbmRleCAqLwo+ICsJc3JjX3Nh bXBsZV9iYXNlPDE+VVcgLyogcmVhZGJhY2sgKi8KPiArCW51bGwKPiArCXNhbXBsZXIgKDEsMCxG KQkvKiBzYW1wbGVyIG1lc3NhZ2UgZGVzY3JpcHRpb24sIChiaW5kaW5nX3RhYmxlLHNhbXBsZXJf aW5kZXgsZGF0YXR5cGUpCj4gKwkJCQkvKiBoZXJlKHNyYy0+ZHN0KSB3ZSBzaG91bGQgdXNlIHNy Y19zYW1wbGVyIGFuZCBzcmNfc3VyZmFjZSAqLwo+ICsJbWxlbiA1IHJsZW4gOCB7IGFsaWduMSB9 OyAgIC8qIHJlcXVpcmVkIG1lc3NhZ2UgbGVuIDUsIHJlYWRiYWNrIGxlbiA4ICovCj4gKwo+ICsv Kgo+ICsgKiBIYXZlIHRvIGNoYW5nZSBieXRlcyBvcmRlciwgYmVjYXVzZSB0aGUgb25seQo+ICsg KiBwbGF5ZXIgd2hpY2ggc3VwcG9ydHMgQVlVViBmb3JtYXQgY3VycmVudGx5IGlzCj4gKyAqIEdz dHJlYW1lciBhbmQgaXQgc3VwcG9ydHMgaW4gYmFkIHdheSwgZXZlbiB0aG91Z2gKPiArICogc3Bl YyBzYXlzIE1TQjpBWVVWLCB3ZSBnZXQgdGhlIGJ5dGVzIG9wcG9zaXRlIHdheS4KPiArICogV2Ug c3dhcCBieXRlcyBib3RoIGZvciBzcHJpdGUgYW5kIHRleHR1cmUgbW9kZXMgZHVyaW5nIGNvcHku Cj4gKyAqIFNvIGhlcmUgd2UgZ2V0IGFyZ2Igd2hpY2ggdGhlbiBiZWNvbWVzIDFiZ3IuCj4gKyAq Lwo+ICttb3YgKDE2KSBzcmNfc2FtcGxlX2E8MT5VRCBzcmNfc2FtcGxlX2I8MT5VRCAgeyBhbGln bjEgfTsKPiArbW92ICgxNikgc3JjX3NhbXBsZV9iPDE+VUQgc3JjX3NhbXBsZV9nPDE+VUQgIHsg YWxpZ24xIH07Cj4gK21vdiAoMTYpIHNyY19zYW1wbGVfZzwxPlVEIHNyY19zYW1wbGVfcjwxPlVE ICB7IGFsaWduMSB9Owo+ICttb3YgKDE2KSBzcmNfc2FtcGxlX3I8MT5VRCBzcmNfc2FtcGxlX2E8 MT5VRCAgeyBhbGlnbjEgfTsKPiArbW92ICgxNikgc3JjX3NhbXBsZV9hPDE+RiAxLjBGOwo+ICsK PiArCj4gKwo+ICsKPiArCj4gKwo+ICsKPiArCj4gZGlmZiAtLWdpdCBhL3NyYy9yZW5kZXJfcHJv Z3JhbS9leGFfd21fc3JjX3NhbXBsZV9hcmdiX2F5dXYuZzhiIGIvc3JjL3JlbmRlcl9wcm9ncmFt L2V4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5nOGIKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAwLi5mM2FjNDk1OQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9zcmMvcmVu ZGVyX3Byb2dyYW0vZXhhX3dtX3NyY19zYW1wbGVfYXJnYl9heXV2Lmc4Ygo+IEBAIC0wLDAgKzEs OCBAQAo+ICsgICB7IDB4MDAwMDAwMDEsIDB4MjAwODA2MGMsIDB4MDAwMDAwMDAsIDB4MDAwMDAw MDAgfSwKPiArICAgeyAweDAwNjAwMDAxLCAweDI4MjAwMjA4LCAweDAwOGQwMDAwLCAweDAwMDAw MDAwIH0sCj4gKyAgIHsgMHgwMjgwMDAzMSwgMHgyMWMwMGE0OCwgMHgwNjAwMDgyMCwgMHgwYThj MDAwMSB9LAo+ICsgICB7IDB4MDA4MDAwMDEsIDB4MjI4MDAyMDgsIDB4MDAyMDAyNDAsIDB4MDAw MDAwMDAgfSwKPiArICAgeyAweDAwODAwMDAxLCAweDIyNDAwMjA4LCAweDAwMjAwMjAwLCAweDAw MDAwMDAwIH0sCj4gKyAgIHsgMHgwMDgwMDAwMSwgMHgyMjAwMDIwOCwgMHgwMDIwMDFjMCwgMHgw MDAwMDAwMCB9LAo+ICsgICB7IDB4MDA4MDAwMDEsIDB4MjFjMDAyMDgsIDB4MDAyMDAyODAsIDB4 MDAwMDAwMDAgfSwKPiArICAgeyAweDAwODAwMDAxLCAweDIyODAzZWU4LCAweDM4MDAwMDAwLCAw eDNmODAwMDAwIH0sCj4gZGlmZiAtLWdpdCBhL3NyYy9zbmEvZ2VuOV9yZW5kZXIuYyBiL3NyYy9z bmEvZ2VuOV9yZW5kZXIuYwo+IGluZGV4IGViMjJiNjQyLi45MDcwN2IxZiAxMDA2NDQKPiAtLS0g YS9zcmMvc25hL2dlbjlfcmVuZGVyLmMKPiArKysgYi9zcmMvc25hL2dlbjlfcmVuZGVyLmMKPiBA QCAtMTI5LDYgKzEyOSwyMCBAQCBzdGF0aWMgY29uc3QgdWludDMyX3QgcHNfa2VybmVsX3BsYW5h cl9idDcwOVtdWzRdID0gewo+ICAjaW5jbHVkZSAiZXhhX3dtX3dyaXRlLmc4YiIKPiAgfTsKPiAg Cj4gK3N0YXRpYyBjb25zdCB1aW50MzJfdCBwc19rZXJuZWxfYXl1dl9idDYwMVtdWzRdID0gewo+ ICsjaW5jbHVkZSAiZXhhX3dtX3NyY19hZmZpbmUuZzhiIgo+ICsjaW5jbHVkZSAiZXhhX3dtX3Ny Y19zYW1wbGVfYXJnYl9heXV2Lmc4YiIKPiArI2luY2x1ZGUgImV4YV93bV95dXZfcmdiX2J0NjAx Lmc4YiIKPiArI2luY2x1ZGUgImV4YV93bV93cml0ZS5nOGIiCj4gK307Cj4gKwo+ICtzdGF0aWMg Y29uc3QgdWludDMyX3QgcHNfa2VybmVsX2F5dXZfYnQ3MDlbXVs0XSA9IHsKPiArI2luY2x1ZGUg ImV4YV93bV9zcmNfYWZmaW5lLmc4YiIKPiArI2luY2x1ZGUgImV4YV93bV9zcmNfc2FtcGxlX2Fy Z2JfYXl1di5nOGIiCj4gKyNpbmNsdWRlICJleGFfd21feXV2X3JnYl9idDcwOS5nOGIiCj4gKyNp bmNsdWRlICJleGFfd21fd3JpdGUuZzZiIgo+ICt9Owo+ICsKPiAgc3RhdGljIGNvbnN0IHVpbnQz Ml90IHBzX2tlcm5lbF9udjEyX2J0NzA5W11bNF0gPSB7Cj4gICNpbmNsdWRlICJleGFfd21fc3Jj X2FmZmluZS5nOGIiCj4gICNpbmNsdWRlICJleGFfd21fc3JjX3NhbXBsZV9udjEyLmc4YiIKPiBA QCAtMTc3LDYgKzE5MSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd21fa2VybmVsX2luZm8gewo+ ICAJS0VSTkVMKFZJREVPX1BMQU5BUl9CVDcwOSwgcHNfa2VybmVsX3BsYW5hcl9idDcwOSwgNyks Cj4gIAlLRVJORUwoVklERU9fTlYxMl9CVDcwOSwgcHNfa2VybmVsX252MTJfYnQ3MDksIDcpLAo+ ICAJS0VSTkVMKFZJREVPX1BBQ0tFRF9CVDcwOSwgcHNfa2VybmVsX3BhY2tlZF9idDcwOSwgMiks Cj4gKwlLRVJORUwoVklERU9fQVlVVl9CVDYwMSwgcHNfa2VybmVsX2F5dXZfYnQ2MDEsIDIpLAo+ ICsJS0VSTkVMKFZJREVPX0FZVVZfQlQ3MDksIHBzX2tlcm5lbF9heXV2X2J0NzA5LCAyKSwKPiAg CUtFUk5FTChWSURFT19SR0IsIHBzX2tlcm5lbF9yZ2IsIDIpLAo+ICAjZW5kaWYKPiAgfTsKPiBA QCAtMjU1Miw3ICsyNTY4LDYgQEAgZ2VuOV9yZW5kZXJfY29tcG9zaXRlKHN0cnVjdCBzbmEgKnNu YSwKPiAgCQkJCQkJCSAgICAgdG1wLT5tYXNrLmJvICE9IE5VTEwsCj4gIAkJCQkJCQkgICAgIHRt cC0+aGFzX2NvbXBvbmVudF9hbHBoYSwKPiAgCQkJCQkJCSAgICAgdG1wLT5pc19hZmZpbmUpOwo+ IC0KPiAgCXRtcC0+Ymx0ICAgPSBnZW45X3JlbmRlcl9jb21wb3NpdGVfYmx0Owo+ICAJdG1wLT5i b3ggICA9IGdlbjlfcmVuZGVyX2NvbXBvc2l0ZV9ib3g7Cj4gIAl0bXAtPmJveGVzID0gZ2VuOV9y ZW5kZXJfY29tcG9zaXRlX2JveGVzX19ibHQ7Cj4gQEAgLTM4NTMsNiArMzg2OCw4IEBAIHN0YXRp YyB2b2lkIGdlbjlfZW1pdF92aWRlb19zdGF0ZShzdHJ1Y3Qgc25hICpzbmEsCj4gIAkJCXNyY19z dXJmX2Zvcm1hdFswXSA9IFNVUkZBQ0VGT1JNQVRfQjhHOFI4WDhfVU5PUk07Cj4gIAkJZWxzZSBp ZiAoZnJhbWUtPmlkID09IEZPVVJDQ19VWVZZKQo+ICAJCQlzcmNfc3VyZl9mb3JtYXRbMF0gPSBT VVJGQUNFRk9STUFUX1lDUkNCX1NXQVBZOwo+ICsJCWVsc2UgaWYgKGlzX2F5dXZfZm91cmNjKGZy YW1lLT5pZCkpCj4gKwkJCXNyY19zdXJmX2Zvcm1hdFswXSA9IFNVUkZBQ0VGT1JNQVRfQjhHOFI4 WDhfVU5PUk07Cj4gIAkJZWxzZQo+ICAJCQlzcmNfc3VyZl9mb3JtYXRbMF0gPSBTVVJGQUNFRk9S TUFUX1lDUkNCX05PUk1BTDsKPiAgCj4gQEAgLTM5MDMsNiArMzkyMCwxMSBAQCBzdGF0aWMgdW5z aWduZWQgc2VsZWN0X3ZpZGVvX2tlcm5lbChjb25zdCBzdHJ1Y3Qgc25hX3ZpZGVvICp2aWRlbywK PiAgCWNhc2UgRk9VUkNDX1JHQjU2NToKPiAgCQlyZXR1cm4gR0VOOV9XTV9LRVJORUxfVklERU9f UkdCOwo+ICAKPiArCWNhc2UgRk9VUkNDX0FZVVY6Cj4gKwkJcmV0dXJuIHZpZGVvLT5jb2xvcnNw YWNlID8KPiArCQkJR0VOOV9XTV9LRVJORUxfVklERU9fQVlVVl9CVDcwOSA6Cj4gKwkJCUdFTjlf V01fS0VSTkVMX1ZJREVPX0FZVVZfQlQ2MDE7Cj4gKwo+ICAJZGVmYXVsdDoKPiAgCQlyZXR1cm4g dmlkZW8tPmNvbG9yc3BhY2UgPwo+ICAJCQlHRU45X1dNX0tFUk5FTF9WSURFT19QQUNLRURfQlQ3 MDkgOgo+IGRpZmYgLS1naXQgYS9zcmMvc25hL3NuYV9yZW5kZXIuaCBiL3NyYy9zbmEvc25hX3Jl bmRlci5oCj4gaW5kZXggYTRlNWI1NmEuLjg5MWZjOTA1IDEwMDY0NAo+IC0tLSBhL3NyYy9zbmEv c25hX3JlbmRlci5oCj4gKysrIGIvc3JjL3NuYS9zbmFfcmVuZGVyLmgKPiBAQCAtNjE3LDYgKzYx Nyw5IEBAIGVudW0gewo+ICAJR0VOOV9XTV9LRVJORUxfVklERU9fTlYxMl9CVDcwOSwKPiAgCUdF TjlfV01fS0VSTkVMX1ZJREVPX1BBQ0tFRF9CVDcwOSwKPiAgCj4gKwlHRU45X1dNX0tFUk5FTF9W SURFT19BWVVWX0JUNjAxLAo+ICsJR0VOOV9XTV9LRVJORUxfVklERU9fQVlVVl9CVDcwOSwKPiAr Cj4gIAlHRU45X1dNX0tFUk5FTF9WSURFT19SR0IsCj4gIAlHRU45X1dNX0tFUk5FTF9DT1VOVAo+ ICB9Owo+IGRpZmYgLS1naXQgYS9zcmMvc25hL3NuYV92aWRlby5jIGIvc3JjL3NuYS9zbmFfdmlk ZW8uYwo+IGluZGV4IDU1NDA1ZjgxLi5kNGVkODQ2NCAxMDA2NDQKPiAtLS0gYS9zcmMvc25hL3Nu YV92aWRlby5jCj4gKysrIGIvc3JjL3NuYS9zbmFfdmlkZW8uYwo+IEBAIC01OSw2ICs1OSw3IEBA Cj4gICNpbmNsdWRlICJpbnRlbF9vcHRpb25zLmgiCj4gIAo+ICAjaW5jbHVkZSA8eGY4Nnh2Lmg+ Cj4gKyNpbmNsdWRlIDxieXRlc3dhcC5oPgo+ICAKPiAgI2lmZGVmIFNOQV9YVk1DCj4gICNkZWZp bmUgX1NOQV9YVk1DX1NFUlZFUl8KPiBAQCAtMjgxLDYgKzI4Miw3IEBAIHNuYV92aWRlb19mcmFt ZV9zZXRfcm90YXRpb24oc3RydWN0IHNuYV92aWRlbyAqdmlkZW8sCj4gIAl9IGVsc2Ugewo+ICAJ CXN3aXRjaCAoZnJhbWUtPmlkKSB7Cj4gIAkJY2FzZSBGT1VSQ0NfUkdCODg4Ogo+ICsJCWNhc2Ug Rk9VUkNDX0FZVVY6Cj4gIAkJCWlmIChyb3RhdGlvbiAmIChSUl9Sb3RhdGVfOTAgfCBSUl9Sb3Rh dGVfMjcwKSkgewo+ICAJCQkJZnJhbWUtPnBpdGNoWzBdID0gQUxJR04oKGhlaWdodCA8PCAyKSwg YWxpZ24pOwo+ICAJCQkJZnJhbWUtPnNpemUgPSAoaW50KWZyYW1lLT5waXRjaFswXSAqIHdpZHRo Owo+IEBAIC01ODQsNiArNTg2LDg5IEBAIHNuYV9jb3B5X3BhY2tlZF9kYXRhKHN0cnVjdCBzbmFf dmlkZW8gKnZpZGVvLAo+ICAJfQo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZAo+ICtzbmFfY29weV9h eXV2X2RhdGEoc3RydWN0IHNuYV92aWRlbyAqdmlkZW8sCj4gKwkJICAgY29uc3Qgc3RydWN0IHNu YV92aWRlb19mcmFtZSAqZnJhbWUsCj4gKwkJICAgY29uc3QgdWludDhfdCAqYnVmLAo+ICsJCSAg IHVpbnQ4X3QgKmRzdCwKPiArCQkgICBib29sIHJldmVyc2VfYnl0ZXMpCgpXaHkgdGhpcyBwYXJh bWV0ZXI/IEl0J3MgYWx3YXlzIHRydWUgbm8/Cgo+ICt7Cj4gKwlpbnQgcGl0Y2ggPSBmcmFtZS0+ d2lkdGggPDwgMjsKPiArCWNvbnN0IHVpbnQ4X3QgKnNyYywgKnM7Cj4gKwljb25zdCB1aW50MzJf dCAqc3JjX2R3Owo+ICsJdWludDMyX3QgKmRzdF9kdyA9ICh1aW50MzJfdCAqKWRzdDsKPiArCWlu dCB4LCB5LCB3LCBoOwo+ICsJaW50IGksIGo7Cj4gKwl1aW50MzJfdCBkdzsKPiArCj4gKwlpZiAo dmlkZW8tPnRleHR1cmVkKSB7Cj4gKwkJLyogWFhYIHN1cHBvcnQgY29weWluZyBjcm9wcGVkIGV4 dGVudHMgKi8KPiArCQl4ID0geSA9IDA7Cj4gKwkJdyA9IGZyYW1lLT53aWR0aDsKPiArCQloID0g ZnJhbWUtPmhlaWdodDsKPiArCX0gZWxzZSB7Cj4gKwkJeCA9IGZyYW1lLT5pbWFnZS54MTsKPiAr CQl5ID0gZnJhbWUtPmltYWdlLnkxOwo+ICsJCXcgPSBmcmFtZS0+aW1hZ2UueDIgLSBmcmFtZS0+ aW1hZ2UueDE7Cj4gKwkJaCA9IGZyYW1lLT5pbWFnZS55MiAtIGZyYW1lLT5pbWFnZS55MTsKPiAr CX0KPiArCj4gKwlzcmMgPSBidWYgKyAoeSAqIHBpdGNoKSArICh4IDw8IDIpOwo+ICsJc3JjX2R3 ID0gKHVpbnQzMl90ICopc3JjOwo+ICsKPiArCWlmIChyZXZlcnNlX2J5dGVzKSB7Cj4gKwkJLyoK PiArCQkgKiBIYXZlIHRvIHJldmVyc2UgYnl0ZXMgb3JkZXIsIGJlY2F1c2UgdGhlIG9ubHkKPiAr CQkgKiBwbGF5ZXIgd2hpY2ggc3VwcG9ydHMgQVlVViBmb3JtYXQgY3VycmVudGx5IGlzCj4gKwkJ ICogR3N0cmVhbWVyIGFuZCBpdCBzdXBwb3J0cyBpbiBiYWQgd2F5LCBldmVuIHRob3VnaAo+ICsJ CSAqIHNwZWMgc2F5cyBNU0I6QVlVViwgd2UgZ2V0IHRoZSBieXRlcyBvcHBvc2l0ZSB3YXkuCj4g KwkJICovCj4gKwkJZm9yIChpID0gMDsgaSA8IGg7IGkrKykgewo+ICsJCQlmb3IgKGogPSAwOyBq IDwgdzsgaisrKSB7Cj4gKwkJCQl1aW50MzJfdCByZXZlcnNlX2R3Owo+ICsJCQkJZHcgPSBzcmNf ZHdbaSAqIHcgKyBqXTsKPiArCQkJCXJldmVyc2VfZHcgPSBic3dhcF8zMihkdyk7Cj4gKwkJCQlk c3RfZHdbaSAqIHcgKyBqXSA9IHJldmVyc2VfZHc7Cj4gKwkJCX0KPiArCQl9Cj4gKwl9CgpUd28g bG9vcHMgdGhyb3VnaCB0aGUgZGF0YSBpc24ndCBxdWl0ZSB3aGF0IEkgd2FzIHRoaW5raW5nLgoK PiArCj4gKwlzd2l0Y2ggKGZyYW1lLT5yb3RhdGlvbikgewo+ICsJY2FzZSBSUl9Sb3RhdGVfMDoK PiArCQlmb3IgKGkgPSAwOyBpIDwgaDsgaSsrKSB7Cj4gKwkJCWZvciAoaiA9IDA7IGogPCB3OyBq KyspIHsKPiArCQkJCWR3ID0gZHN0X2R3W2kgKiB3ICsgal07Cj4gKwkJCQlkc3RfZHdbaSAqIHcg KyBqXSA9IGR3OwoKV2hhdCBJIGhhZCBpbiBtaW5kIHdhcyBqdXN0Cgpkc3RfZHdbLi5dID0gYnN3 YXBfMzIoc3JjX2R3Wy4uLl0pOwoKaGVyZS4KCj4gKwkJCX0KPiArCQl9Cj4gKwkJYnJlYWs7Cj4g KwljYXNlIFJSX1JvdGF0ZV85MDoKPiArCQlmb3IgKGkgPSAwOyBpIDwgaDsgaSsrKSB7Cj4gKwkJ CWZvciAoaiA9IDA7IGogPCB3OyBqKyspIHsKPiArCQkJCWR3ID0gZHN0X2R3W2kgKiB3ICsgal07 Cj4gKwkJCQlkc3RfZHdbKHcgLSBqIC0gMSkgKiBoICsgaV0gPSBkdzsKPiArCQkJfQo+ICsJCX0K PiArCQlicmVhazsKPiArCWNhc2UgUlJfUm90YXRlXzE4MDoKPiArCQlmb3IgKGkgPSAwOyBpIDwg aDsgaSsrKSB7Cj4gKwkJCWZvciAoaiA9IDA7IGogPCB3OyBqKyspIHsKPiArCQkJCWR3ID0gZHN0 X2R3W2kgKiB3ICsgal07Cj4gKwkJCQlkc3RfZHdbKGggLSBpIC0gMSkgKiB3ICsgdyAtIGogLSAx XSA9IGR3Owo+ICsJCQl9Cj4gKwkJfQo+ICsJCWJyZWFrOwo+ICsJY2FzZSBSUl9Sb3RhdGVfMjcw Ogo+ICsJCWZvciAoaSA9IDA7IGkgPCBoOyBpKyspIHsKPiArCQkJZm9yIChqID0gMDsgaiA8IHc7 IGorKykgewo+ICsJCQkJZHcgPSBkc3RfZHdbaSAqIHcgKyBqXTs7Cj4gKwkJCQlkc3RfZHdbKHcg LSBqIC0gMSkgKiBoICsgaV0gPSBkdzsKPiArCQkJfQo+ICsJCX0KPiArCQlicmVhazsKPiArCX0K PiArfQo+ICsKPiAgYm9vbAo+ICBzbmFfdmlkZW9fY29weV9kYXRhKHN0cnVjdCBzbmFfdmlkZW8g KnZpZGVvLAo+ICAJCSAgICBzdHJ1Y3Qgc25hX3ZpZGVvX2ZyYW1lICpmcmFtZSwKPiBAQCAtNjA0 LDcgKzY4OSw3IEBAIHNuYV92aWRlb19jb3B5X2RhdGEoc3RydWN0IHNuYV92aWRlbyAqdmlkZW8s Cj4gIAlhc3NlcnQoZnJhbWUtPnNpemUpOwo+ICAKPiAgCS8qIEluIHRoZSBjb21tb24gY2FzZSwg d2UgY2FuIHNpbXBseSB0aGUgdXBsb2FkIGluIGEgc2luZ2xlIHB3cml0ZSAqLwo+IC0JaWYgKGZy YW1lLT5yb3RhdGlvbiA9PSBSUl9Sb3RhdGVfMCAmJiAhdmlkZW8tPnRpbGVkKSB7Cj4gKwlpZiAo ZnJhbWUtPnJvdGF0aW9uID09IFJSX1JvdGF0ZV8wICYmICF2aWRlby0+dGlsZWQgJiYgIWlzX2F5 dXZfZm91cmNjKGZyYW1lLT5pZCkpIHsKPiAgCQlEQkcoKCIlczogdW5yb3RhdGVkLCB1bnRpbGVk IGZhc3QgcGF0aHM6IGlzLXBsYW5hcj89JWRcbiIsCj4gIAkJICAgICBfX0ZVTkNUSU9OX18sIGlz X3BsYW5hcl9mb3VyY2MoZnJhbWUtPmlkKSkpOwo+ICAJCWlmIChpc19udjEyX2ZvdXJjYyhmcmFt ZS0+aWQpKSB7Cj4gQEAgLTcwOSw2ICs3OTQsOCBAQCB1c2VfZ3R0OiAvKiBjb3B5IGRhdGEsIG11 c3QgdXNlIEdUVCBzbyB0aGF0IHdlIGtlZXAgdGhlIG92ZXJsYXkgdW5jYWNoZWQgKi8KPiAgCQlz bmFfY29weV9udjEyX2RhdGEodmlkZW8sIGZyYW1lLCBidWYsIGRzdCk7Cj4gIAllbHNlIGlmIChp c19wbGFuYXJfZm91cmNjKGZyYW1lLT5pZCkpCj4gIAkJc25hX2NvcHlfcGxhbmFyX2RhdGEodmlk ZW8sIGZyYW1lLCBidWYsIGRzdCk7Cj4gKwllbHNlIGlmIChpc19heXV2X2ZvdXJjYyhmcmFtZS0+ aWQpKQo+ICsJCXNuYV9jb3B5X2F5dXZfZGF0YSh2aWRlbywgZnJhbWUsIGJ1ZiwgZHN0LCB0cnVl KTsKPiAgCWVsc2UKPiAgCQlzbmFfY29weV9wYWNrZWRfZGF0YSh2aWRlbywgZnJhbWUsIGJ1Ziwg ZHN0KTsKPiAgCj4gZGlmZiAtLWdpdCBhL3NyYy9zbmEvc25hX3ZpZGVvLmggYi9zcmMvc25hL3Nu YV92aWRlby5oCj4gaW5kZXggYmJkM2YwZmQuLmEzZmZkYzBiIDEwMDY0NAo+IC0tLSBhL3NyYy9z bmEvc25hX3ZpZGVvLmgKPiArKysgYi9zcmMvc25hL3NuYV92aWRlby5oCj4gQEAgLTM5LDYgKzM5 LDcgQEAgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gICNkZWZp bmUgRk9VUkNDX1JHQjU2NSAoKDE2IDw8IDI0KSArICgnQicgPDwgMTYpICsgKCdHJyA8PCA4KSAr ICdSJykKPiAgI2RlZmluZSBGT1VSQ0NfUkdCODg4ICgoMjQgPDwgMjQpICsgKCdCJyA8PCAxNikg KyAoJ0cnIDw8IDgpICsgJ1InKQo+ICAjZGVmaW5lIEZPVVJDQ19OVjEyICgoJzInIDw8IDI0KSAr ICgnMScgPDwgMTYpICsgKCdWJyA8PCA4KSArICdOJykKPiArI2RlZmluZSBGT1VSQ0NfQVlVViAo KCdWJyA8PCAyNCkgKyAoJ1UnIDw8IDE2KSArICgnWScgPDwgOCkgKyAnQScpCj4gIAo+ICAvKgo+ ICAgKiBCZWxvdywgYSBkdW1teSBwaWN0dXJlIHR5cGUgdGhhdCBpcyB1c2VkIGluIFh2UHV0SW1h Z2UKPiBAQCAtNzksNiArODAsMTUgQEAgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg U09GVFdBUkUuCj4gIAlYdlRvcFRvQm90dG9tIFwKPiAgfQo+ICAKPiArI2RlZmluZSBYVklNQUdF X0FZVVYgeyBcCj4gKwlGT1VSQ0NfQVlVViwgWHZZVVYsIExTQkZpcnN0LCBcCj4gKwl7J0EnLCAn WScsICdVJywgJ1YnLCAweDAwLCAweDAwLCAweDAwLCAweDEwLCAweDgwLCAweDAwLCAweDAwLCAw eEFBLCAweDAwLCAweDM4LCAweDlCLCAweDcxfSwgXAo+ICsJMzIsIFh2UGFja2VkLCAxLCAwLCAw LCAwLCAwLCA4LCA4LCA4LCAxLCAxLCAxLCAxLCAxLCAxLCBcCj4gKwl7J0EnLCAnWScsICdVJywg J1YnLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfSwgXAo+ICsJWHZUb3BUb0JvdHRvbSBcCj4g K30KPiArCj4gKwo+ICBzdHJ1Y3Qgc25hX3ZpZGVvIHsKPiAgCXN0cnVjdCBzbmEgKnNuYTsKPiAg Cj4gQEAgLTE4OSw2ICsxOTksMTYgQEAgc3RhdGljIGlubGluZSBpbnQgaXNfbnYxMl9mb3VyY2Mo aW50IGlkKQo+ICAJfQo+ICB9Cj4gIAo+ICtzdGF0aWMgaW5saW5lIGludCBpc19heXV2X2ZvdXJj YyhpbnQgaWQpCj4gK3sKPiArCXN3aXRjaCAoaWQpIHsKPiArCWNhc2UgRk9VUkNDX0FZVVY6Cj4g KwkJcmV0dXJuIDE7Cj4gKwlkZWZhdWx0Ogo+ICsJCXJldHVybiAwOwo+ICsJfQo+ICt9Cj4gKwo+ ICBib29sCj4gIHNuYV92aWRlb19jbGlwX2hlbHBlcihzdHJ1Y3Qgc25hX3ZpZGVvICp2aWRlbywK PiAgCQkgICAgICBzdHJ1Y3Qgc25hX3ZpZGVvX2ZyYW1lICpmcmFtZSwKPiBkaWZmIC0tZ2l0IGEv c3JjL3NuYS9zbmFfdmlkZW9fc3ByaXRlLmMgYi9zcmMvc25hL3NuYV92aWRlb19zcHJpdGUuYwo+ IGluZGV4IDhiN2FlOGFlLi4zNzgwZGMwZSAxMDA2NDQKPiAtLS0gYS9zcmMvc25hL3NuYV92aWRl b19zcHJpdGUuYwo+ICsrKyBiL3NyYy9zbmEvc25hX3ZpZGVvX3Nwcml0ZS5jCj4gQEAgLTQ3LDcg KzQ3LDcgQEAKPiAgI2RlZmluZSBEUk1fRk9STUFUX1lVWVYgICAgICAgICBmb3VyY2NfY29kZSgn WScsICdVJywgJ1knLCAnVicpIC8qIFszMTowXSBDcjA6WTE6Q2IwOlkwIDg6ODo4OjggbGl0dGxl IGVuZGlhbiAqLwo+ICAjZGVmaW5lIERSTV9GT1JNQVRfVVlWWSAgICAgICAgIGZvdXJjY19jb2Rl KCdVJywgJ1knLCAnVicsICdZJykgLyogWzMxOjBdIFkxOkNyMDpZMDpDYjAgODo4Ojg6OCBsaXR0 bGUgZW5kaWFuICovCj4gICNkZWZpbmUgRFJNX0ZPUk1BVF9OVjEyICAgICAgICAgZm91cmNjX2Nv ZGUoJ04nLCAnVicsICcxJywgJzInKSAvKiAyeDIgc3Vic2FtcGxlZCBDcjpDYiBwbGFuZSAqLwo+ IC0KPiArI2RlZmluZSBEUk1fRk9STUFUX1hZVVY4ODg4ICAgICBmb3VyY2NfY29kZSgnWCcsICdZ JywgJ1UnLCAnVicpIC8qIFszMTowXSB4Olk6VTpWIDg6ODo4OjggbGl0dGxlIGVuZGlhbiAqLwo+ ICAjZGVmaW5lIGhhc19od19zY2FsaW5nKHNuYSwgdmlkZW8pICgoc25hKS0+a2dlbS5nZW4gPCAw NzEgfHwgXAo+ICAJCQkJICAgIChzbmEpLT5rZ2VtLmdlbiA+PSAwMTEwKQo+ICAKPiBAQCAtNzks NiArNzksOCBAQCBzdGF0aWMgY29uc3QgWHZJbWFnZVJlYyBpbWFnZXNfcmdiNTY1W10gPSB7IFhW SU1BR0VfWVVZMiwgWFZJTUFHRV9VWVZZLAo+ICAJCQkJCSAgICBYVk1DX1JHQjg4OCwgWFZNQ19S R0I1NjUgfTsKPiAgc3RhdGljIGNvbnN0IFh2SW1hZ2VSZWMgaW1hZ2VzX252MTJbXSA9IHsgWFZJ TUFHRV9ZVVkyLCBYVklNQUdFX1VZVlksCj4gIAkJCQkJICBYVklNQUdFX05WMTIsIFhWTUNfUkdC ODg4LCBYVk1DX1JHQjU2NSB9Owo+ICtzdGF0aWMgY29uc3QgWHZJbWFnZVJlYyBpbWFnZXNfYXl1 dltdID0geyBYVklNQUdFX0FZVVYsIFhWSU1BR0VfWVVZMiwgWFZJTUFHRV9VWVZZLAo+ICsJCQkJ CSAgWFZJTUFHRV9OVjEyLCBYVk1DX1JHQjg4OCwgWFZNQ19SR0I1NjUgfTsKPiAgc3RhdGljIGNv bnN0IFh2QXR0cmlidXRlUmVjIGF0dHJpYnNbXSA9IHsKPiAgCXsgWHZTZXR0YWJsZSB8IFh2R2V0 dGFibGUsIDAsIDEsIChjaGFyICopIlhWX0NPTE9SU1BBQ0UiIH0sIC8qIEJULjYwMSwgQlQuNzA5 ICovCj4gIAl7IFh2U2V0dGFibGUgfCBYdkdldHRhYmxlLCAwLCAweGZmZmZmZiwgKGNoYXIgKiki WFZfQ09MT1JLRVkiIH0sCj4gQEAgLTM2NCw2ICszNjYsMTAgQEAgc25hX3ZpZGVvX3Nwcml0ZV9z aG93KHN0cnVjdCBzbmEgKnNuYSwKPiAgCQljYXNlIEZPVVJDQ19VWVZZOgo+ICAJCQlmLnBpeGVs X2Zvcm1hdCA9IERSTV9GT1JNQVRfVVlWWTsKPiAgCQkJYnJlYWs7Cj4gKwkJY2FzZSBGT1VSQ0Nf QVlVVjoKPiArCQkJLyogaTkxNSBkb2Vzbid0IHN1cHBvcnQgYWxwaGEsIHNvIHdlIHVzZSBYWVVW ICovCj4gKwkJCWYucGl4ZWxfZm9ybWF0ID0gRFJNX0ZPUk1BVF9YWVVWODg4ODsKPiArCQkJYnJl YWs7Cj4gIAkJY2FzZSBGT1VSQ0NfWVVZMjoKPiAgCQlkZWZhdWx0Ogo+ICAJCQlmLnBpeGVsX2Zv cm1hdCA9IERSTV9GT1JNQVRfWVVZVjsKPiBAQCAtNzA1LDcgKzcxMSwxMiBAQCBzdGF0aWMgaW50 IHNuYV92aWRlb19zcHJpdGVfcXVlcnkoZGRRdWVyeUltYWdlQXR0cmlidXRlc19BUkdTKQo+ICAJ CXRtcCAqPSAoKmggPj4gMSk7Cj4gIAkJc2l6ZSArPSB0bXA7Cj4gIAkJYnJlYWs7Cj4gLQo+ICsJ Y2FzZSBGT1VSQ0NfQVlVVjoKPiArCQl0bXAgPSAqdyA8PCAyOwo+ICsJCWlmIChwaXRjaGVzKQo+ ICsJCQlwaXRjaGVzWzBdID0gdG1wOwo+ICsJCXNpemUgPSAqaCAqIHRtcDsKPiArCQlicmVhazsK PiAgCWRlZmF1bHQ6Cj4gIAkJKncgPSAoKncgKyAxKSAmIH4xOwo+ICAJCSpoID0gKCpoICsgMSkg JiB+MTsKPiBAQCAtODA1LDcgKzgxNiwxMCBAQCB2b2lkIHNuYV92aWRlb19zcHJpdGVfc2V0dXAo c3RydWN0IHNuYSAqc25hLCBTY3JlZW5QdHIgc2NyZWVuKQo+ICAJYWRhcHRvci0+bkF0dHJpYnV0 ZXMgPSBBUlJBWV9TSVpFKGF0dHJpYnMpOwo+ICAJYWRhcHRvci0+cEF0dHJpYnV0ZXMgPSAoWHZB dHRyaWJ1dGVSZWMgKilhdHRyaWJzOwo+ICAKPiAtCWlmIChzbmFfaGFzX3Nwcml0ZV9mb3JtYXQo c25hLCBEUk1fRk9STUFUX05WMTIpKSB7Cj4gKwlpZiAoc25hX2hhc19zcHJpdGVfZm9ybWF0KHNu YSwgRFJNX0ZPUk1BVF9YWVVWODg4OCkpIHsKPiArCQlhZGFwdG9yLT5wSW1hZ2VzID0gKFh2SW1h Z2VSZWMgKilpbWFnZXNfYXl1djsKPiArCQlhZGFwdG9yLT5uSW1hZ2VzID0gQVJSQVlfU0laRShp bWFnZXNfYXl1dik7Cj4gKwl9IGVsc2UgaWYgKHNuYV9oYXNfc3ByaXRlX2Zvcm1hdChzbmEsIERS TV9GT1JNQVRfTlYxMikpIHsKPiAgCQlhZGFwdG9yLT5wSW1hZ2VzID0gKFh2SW1hZ2VSZWMgKilp bWFnZXNfbnYxMjsKPiAgCQlhZGFwdG9yLT5uSW1hZ2VzID0gQVJSQVlfU0laRShpbWFnZXNfbnYx Mik7Cj4gIAl9IGVsc2UgaWYgKHNuYV9oYXNfc3ByaXRlX2Zvcm1hdChzbmEsIERSTV9GT1JNQVRf UkdCNTY1KSkgewo+IGRpZmYgLS1naXQgYS9zcmMvc25hL3NuYV92aWRlb190ZXh0dXJlZC5jIGIv c3JjL3NuYS9zbmFfdmlkZW9fdGV4dHVyZWQuYwo+IGluZGV4IGE3ODRmZTJlLi40NmMyMTNlZiAx MDA2NDQKPiAtLS0gYS9zcmMvc25hL3NuYV92aWRlb190ZXh0dXJlZC5jCj4gKysrIGIvc3JjL3Nu YS9zbmFfdmlkZW9fdGV4dHVyZWQuYwo+IEBAIC02OCw2ICs2OCw3IEBAIHN0YXRpYyBjb25zdCBY dkltYWdlUmVjIGdlbjRfSW1hZ2VzW10gPSB7Cj4gIAlYVklNQUdFX0k0MjAsCj4gIAlYVklNQUdF X05WMTIsCj4gIAlYVklNQUdFX1VZVlksCj4gKwlYVklNQUdFX0FZVVYsCj4gIAlYVk1DX1lVViwK PiAgfTsKPiAgCj4gQEAgLTMzNyw2ICszMzgsMTIgQEAgc25hX3ZpZGVvX3RleHR1cmVkX3F1ZXJ5 KGRkUXVlcnlJbWFnZUF0dHJpYnV0ZXNfQVJHUykKPiAgCQkJcGl0Y2hlc1swXSA9IHNpemU7Cj4g IAkJc2l6ZSAqPSAqaDsKPiAgCQlicmVhazsKPiArCWNhc2UgRk9VUkNDX0FZVVY6Cj4gKwkJc2l6 ZSA9ICp3IDw8IDI7Cj4gKwkJaWYgKHBpdGNoZXMpCj4gKwkJCXBpdGNoZXNbMF0gPSBzaXplOwo+ ICsJCXNpemUgKj0gKmg7Cj4gKwkJYnJlYWs7Cj4gIAljYXNlIEZPVVJDQ19YVk1DOgo+ICAJCSpo ID0gKCpoICsgMSkgJiB+MTsKPiAgCQlzaXplID0gc2l6ZW9mKHVpbnQzMl90KTsKPiAtLSAKPiAy LjE3LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==