From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jung Zhao" Subject: =?UTF-8?Q?=E7=AD=94=E5=A4=8D:_=5BPATCH_v1_1/3=5D_media:_v4l:_A?= =?UTF-8?Q?dd_VP8_format_support_in_V4L2_fr?= =?UTF-8?Q?amework?= Date: Wed, 27 Jan 2016 22:06:59 +0800 Message-ID: <019701d1590b$fe568390$fb038ab0$@rock-chips.com> References: <1453799046-307-1-git-send-email-jung.zhao@rock-chips.com> <1453799046-307-2-git-send-email-jung.zhao@rock-chips.com> <1453852413.5584.15.camel@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: zh-cn List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+glpar-linux-rockchip=m.gmane.org-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: 'Enric Balletbo Serra' , 'Nicolas Dufresne' Cc: =?UTF-8?Q?'Heiko_St=C3=BCbner'?= , pawel-FA/gS7QP4orQT0dZR+AlfA@public.gmane.org, 'Mauro Carvalho Chehab' , linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, 'Sakari Ailus' , 'Benoit Parrot' , linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, 'Kyungmin Park' , 'Antti Palosaari' , 'Hans Verkuil' , 'Alpha Lin' , 'Philipp Zabel' , 'Ricardo Ribalda Delgado' , 'Chen Herman' , linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, 'Marek Szyprowski' List-Id: linux-api@vger.kernel.org WWVzLCBUaGVzZSBwYXRjaGVzIGFyZSBiYXNlZCBvbiBQYXdlbCBPc2NpYWsgYW5kIFRvbWFzeiBG aWdhJ3MgcGF0Y2hlcyBhbmQgb3RoZXJzIHBhdGNoZXMgSSBtZW50aW9uZWQgYWJvdmUuIEkgaGF2 ZSBleHBhaW5lZCB0aGUgc2l0dWF0aW9uIGluIFtQQVRDSCB2MSAwLzNdLiBJIHdpbGwgZml4IGFs bCB0aGUgaW5jb3JyZWN0IG1lc3NhZ2UgaW4gbmV4dCB2ZXJzaW9uLgoKVGhhbmsgeW91IGZvciB5 b3VyIHN1Z2dlc3Rpb24gYWdhaW4uCgotLS0tLemCruS7tuWOn+S7ti0tLS0tCuWPkeS7tuS6ujog RW5yaWMgQmFsbGV0Ym8gU2VycmEgW21haWx0bzplYmFsbGV0Ym9AZ21haWwuY29tXSAK5Y+R6YCB 5pe26Ze0OiAyMDE25bm0MeaciDI35pelIDE4OjIyCuaUtuS7tuS6ujogTmljb2xhcyBEdWZyZXNu ZQrmioTpgIE6IEp1bmcgWmhhbzsgcGF3ZWxAb3NjaWFrLmNvbTsgTWFyZWsgU3p5cHJvd3NraTsg S3l1bmdtaW4gUGFyazsgTWF1cm8gQ2FydmFsaG8gQ2hlaGFiOyBIZWlrbyBTdMO8Ym5lcjsgbGlu dXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZzsgQ2hlbiBIZXJtYW47IEFscGhhIExpbjsg QW50dGkgUGFsb3NhYXJpOyBsaW51eC1hcGlAdmdlci5rZXJuZWwub3JnOyBCZW5vaXQgUGFycm90 OyBQaGlsaXBwIFphYmVsOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBTYWthcmkgQWls dXM7IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvOyBIYW5zIFZlcmt1aWw7IGxpbnV4LW1lZGlhQHZn ZXIua2VybmVsLm9yZwrkuLvpopg6IFJlOiBbUEFUQ0ggdjEgMS8zXSBtZWRpYTogdjRsOiBBZGQg VlA4IGZvcm1hdCBzdXBwb3J0IGluIFY0TDIgZnJhbWV3b3JrCgpIaSBKdW5nLAoKQWxzbywgaWYg SSdtIG5vdCB3cm9uZyB0aGVzZSBjaGFuZ2VzIGFyZSBhIG1peCBvZiB0aGVzZSB0aHJlZSBwYXRj aGVzIGF2YWlsYWJsZSBpbiB0aGUgY2hyb21pdW0gdHJlZVsxXSwgaXQncyBhIGdvb2QgcHJhY3Rp Y2UgY2hlcnJ5LXBpY2sgdGhlIHBhdGNoZXMgKHJlbW92aW5nIHRoZSBDSFJPTUlVTSB0YWdzLCBy ZWJhc2UgYWdhaW5zdCBtYWlubGluZS4uLikgY2MgdGhlIGF1dGhvcnMgYW5kIG1haW50YWluIHRo ZSBhdXRob3IgYW5kIHRoZSBzaWduZWQtb2ZmIGNoYWluLiBOb3RlIGFsc28gdGhhdCB0aGUgcGF0 Y2hlcyBoYXZlIGEgZ29vZCBleHBsYW5hdGlvbiBzbyBiZXR0ZXIgdXNlIHRoZSBvcmlnaW5hbCBv bmVzLgoKQmVzdCByZWdhcmRzLApFbnJpYwoKWzFdCgpBdXRob3I6IFRvbWFzeiBGaWdhIDx0Zmln YUBjaHJvbWl1bS5vcmc+CkRhdGU6ICAgTW9uIEFwciAxMyAxNDozNDowNiAyMDE1ICswOTAwCgog ICAgQ0hST01JVU06IFttZWRpYV0gdmlkZW9idWYyLWRjOiBMZXQgZHJpdmVycyBzcGVjaWZ5IERN QSBhdHRycwoKICAgIERNQSBhbGxvY2F0aW9ucyBtaWdodCBiZSBzdWJqZWN0IHRvIGNlcnRhaW4g cmVxaXVyZW1lbnRzIHNwZWNpZmljIHRvIHRoZQogICAgaGFyZHdhcmUgdXNpbmcgdGhlIGJ1ZmZl cnMsIHN1Y2ggYXMgYXZhaWxhYmlsaXR5IG9mIGtlcm5lbCBtYXBwaW5nIChmb3IKICAgIGNvbnRl bnRzIGZpeC11cHMgaW4gdGhlIGRyaXZlcikuIFRoZSBvbmx5IGVudGl0eSB0aGF0IGtub3dzIHRo ZW0gaXMgdGhlCiAgICBkcml2ZXIsIHNvIGl0IG11c3Qgc2hhcmUgdGhpcyBrbm93bGVkZ2Ugd2l0 aCB2YjItZGMuCgogICAgVGhpcyBwYXRjaCBleHRlbmRzIHRoZSBhbGxvY19jdHggaW5pdGlhbGl6 YXRpb24gaW50ZXJmYWNlIHRvIGxldCB0aGUKICAgIGRyaXZlciBzcGVjaWZ5IERNQSBhdHRycywg d2hpY2ggYXJlIHRoZW4gc3RvcmVkIGluc2lkZSB0aGUgYWxsb2NhdGlvbgogICAgY29udGV4dCBh bmQgd2lsbCBiZSB1c2VkIGZvciBhbGwgYWxsb2NhdGlvbnMgd2l0aCB0aGF0IGNvbnRleHQuCgog ICAgQXMgYSBzaWRlIGVmZmVjdCwgYWxsIGRtYV8qX2NvaGVyZW50KCkgY2FsbHMgYXJlIHR1cm5l ZCBpbnRvCiAgICBkbWFfKl9hdHRycygpIGNhbGxzLCBiZWNhdXNlIHRoZSBhdHRyaWJ1dGVzIG5l ZWQgdG8gYmUgY2FycmllZCBvdmVyCiAgICB0aHJvdWdoIGFsbCBETUEgb3BlcmF0aW9ucy4KCkF1 dGhvcjogUGF3ZWwgT3NjaWFrIDxwb3NjaWFrQGNocm9taXVtLm9yZz4KRGF0ZTogICBGcmkgRGVj IDI2IDEwOjM3OjMzIDIwMTQgKzA5MDAKCiAgICBDSFJPTUlVTTogdjRsOiBBZGQgVlA4IGxvdy1s ZXZlbCBkZWNvZGVyIEFQSSBjb250cm9scy4KCiAgICBUaGVzZSBjb250cm9scyBhcmUgdG8gYmUg dXNlZCB3aXRoIHRoZSBuZXcgbG93LWxldmVsIGRlY29kZXIgQVBJIGZvciBWUDgKICAgIHRvIHBy b3ZpZGUgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgaGFyZHdhcmUgdGhhdCBjYW5ub3Qg cGFyc2UgdGhlCiAgICBpbnB1dCBzdHJlYW0uCgpBdXRob3I6IFBhd2VsIE9zY2lhayA8cG9zY2lh a0BjaHJvbWl1bS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAxMSAyMDo0NDoyOCAyMDE0ICswOTAwCgog ICAgQ0hST01JVU06IFttZWRpYV0gdjRsOiBBZGQgcHJpdmF0ZSBjb21wb3VuZCBjb250cm9sIHR5 cGUuCgogICAgVjRMMl9DVFJMX1RZUEVfUFJJVkFURSBpcyB0byBiZSB1c2VkIGZvciBwcml2YXRl IGRyaXZlciBjb21wb3VuZAogICAgY29udHJvbHMgdGhhdCB1c2UgdGhlICJwdHIiIG1lbWJlciBv ZiBzdHJ1Y3QgdjRsMl9leHRfY29udHJvbC4KCgoyMDE2LTAxLTI3IDA6NTMgR01UKzAxOjAwIE5p Y29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT46Cj4gSGkgSnVu ZywKPgo+IHRoaXMgcGF0Y2ggYWRkcyBuZXcgcHVibGljIEFQSSB0byB2aWRlb2RldjIuaC4gSXQg d291bGQgYmUgYXBwcm9wcmlhdGUgCj4gdG8gYWxzbyBhZGQgdGhlIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmb3IgaXQgKHNlZSBEb2N1bWVudGF0aW9uL0RvY0Jvb2svbWVkaWEpLiBJIGFsc28g YmVsaWV2ZSB0aGVyZSBpcyBtdWx0aXBsZSB3YXkgVlA4IHN1cHBvcnQgY291bGQgaGF2ZSBiZWVu IGFkZGVkLiBBIHByb3BlciBjb21taXQgbWVzc2FnZSB0aGF0IGV4cGxhaW5zIHRoZSBhcHByb2Fj aCB3b3VsZCBhbHNvIGJlIGFwcHJvcHJpYXRlLgo+Cj4gY2hlZXJzLAo+IE5pY29sYXMKPgo+IExl IG1hcmRpIDI2IGphbnZpZXIgMjAxNiDDoCAxNzowNCArMDgwMCwgSnVuZyBaaGFvIGEgw6ljcml0 IDoKPj4gRnJvbTogemhhb2p1biA8anVuZy56aGFvQHJvY2stY2hpcHMuY29tPgo+Pgo+PiBTaWdu ZWQtb2ZmLWJ5OiB6aGFvanVuIDxqdW5nLnpoYW9Acm9jay1jaGlwcy5jb20+Cj4+IC0tLQo+Pgo+ PiAgZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jdHJscy5jICAgICAgICAgICB8IDE3ICsr KystCj4+ICBkcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWlvY3RsLmMgICAgICAgICAgIHwg IDMgKwo+PiAgZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLWRtYS1jb250aWcuYyB8 IDUxICsrKysrKysrKy0tLS0tCj4+ICBpbmNsdWRlL21lZGlhL3Y0bDItY3RybHMuaCAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKwo+PiAgaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItZG1hLWNvbnRp Zy5oICAgICAgICAgICB8IDExICsrLQo+PiAgaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDItY29udHJv bHMuaCAgICAgICAgICAgICB8IDk4Cj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICBp bmNsdWRlL3VhcGkvbGludXgvdmlkZW9kZXYyLmggICAgICAgICAgICAgICAgIHwgIDUgKysKPj4g IDcgZmlsZXMgY2hhbmdlZCwgMTY2IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQo+Pgo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jdHJscy5jCj4+IGIv ZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jdHJscy5jCj4+IGluZGV4IDg5MDUyMGQuLjIy ODIxZTk0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWN0cmxz LmMKPj4gKysrIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jdHJscy5jCj4+IEBAIC03 NjEsNyArNzYxLDcgQEAgY29uc3QgY2hhciAqdjRsMl9jdHJsX2dldF9uYW1lKHUzMiBpZCkKPj4g ICAgICAgY2FzZSBWNEwyX0NJRF9NUEVHX1ZJREVPX1ZQWF9JX0ZSQU1FX1FQOiAgICAgICAgICAg ICAgICByZXR1Cj4+IHJuICJWUFggSS1GcmFtZSBRUCBWYWx1ZSI7Cj4+ICAgICAgIGNhc2UgVjRM Ml9DSURfTVBFR19WSURFT19WUFhfUF9GUkFNRV9RUDogICAgICAgICAgICAgICAgcmV0dQo+PiBy biAiVlBYIFAtRnJhbWUgUVAgVmFsdWUiOwo+PiAgICAgICBjYXNlIFY0TDJfQ0lEX01QRUdfVklE RU9fVlBYX1BST0ZJTEU6Cj4+IHJldHVybiAiVlBYIFByb2ZpbGUiOwo+PiAtCj4+ICsgICAgIGNh c2UgVjRMMl9DSURfTVBFR19WSURFT19WUDhfRlJBTUVfSERSOgo+PiByZXR1cm4gIlZQOCBGcmFt ZSBIZWFkZXIiOwo+PiAgICAgICAvKiBDQU1FUkEgY29udHJvbHMgKi8KPj4gICAgICAgLyogS2Vl cCB0aGUgb3JkZXIgb2YgdGhlICdjYXNlJ3MgdGhlIHNhbWUgYXMgaW4gdjRsMi0gCj4+IGNvbnRy b2xzLmghICovCj4+ICAgICAgIGNhc2UgVjRMMl9DSURfQ0FNRVJBX0NMQVNTOiAgICAgICAgICAg ICByZXR1cm4gIkNhbWVyYQo+PiBDb250cm9scyI7Cj4+IEBAIC0xMTI2LDYgKzExMjYsOSBAQCB2 b2lkIHY0bDJfY3RybF9maWxsKHUzMiBpZCwgY29uc3QgY2hhciAqKm5hbWUsIAo+PiBlbnVtIHY0 bDJfY3RybF90eXBlICp0eXBlLAo+PiAgICAgICBjYXNlIFY0TDJfQ0lEX1JEU19UWF9BTFRfRlJF UVM6Cj4+ICAgICAgICAgICAgICAgKnR5cGUgPSBWNEwyX0NUUkxfVFlQRV9VMzI7Cj4+ICAgICAg ICAgICAgICAgYnJlYWs7Cj4+ICsgICAgIGNhc2UgVjRMMl9DSURfTVBFR19WSURFT19WUDhfRlJB TUVfSERSOgo+PiArICAgICAgICAgICAgICp0eXBlID0gVjRMMl9DVFJMX1RZUEVfVlA4X0ZSQU1F X0hEUjsKPj4gKyAgICAgICAgICAgICBicmVhazsKPj4gICAgICAgZGVmYXVsdDoKPj4gICAgICAg ICAgICAgICAqdHlwZSA9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVI7Cj4+ICAgICAgICAgICAgICAg YnJlYWs7Cj4+IEBAIC0xNTI1LDYgKzE1MjgsMTMgQEAgc3RhdGljIGludCBzdGRfdmFsaWRhdGUo Y29uc3Qgc3RydWN0IHY0bDJfY3RybCAKPj4gKmN0cmwsIHUzMiBpZHgsCj4+ICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gLUVSQU5HRTsKPj4gICAgICAgICAgICAgICByZXR1cm4gMDsKPj4K Pj4gKyAgICAgLyogRklYTUU6anVzdCByZXR1cm4gMCBmb3Igbm93ICovCj4+ICsgICAgIGNhc2Ug VjRMMl9DVFJMX1RZUEVfUFJJVkFURToKPj4gKyAgICAgICAgICAgICByZXR1cm4gMDsKPj4gKwo+ PiArICAgICBjYXNlIFY0TDJfQ1RSTF9UWVBFX1ZQOF9GUkFNRV9IRFI6Cj4+ICsgICAgICAgICAg ICAgcmV0dXJuIDA7Cj4+ICsKPj4gICAgICAgZGVmYXVsdDoKPj4gICAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsKPj4gICAgICAgfQo+PiBAQCAtMjA3NCw2ICsyMDg0LDkgQEAgc3RhdGljIHN0 cnVjdCB2NGwyX2N0cmwgKnY0bDJfY3RybF9uZXcoc3RydWN0IAo+PiB2NGwyX2N0cmxfaGFuZGxl ciAqaGRsLAo+PiAgICAgICBjYXNlIFY0TDJfQ1RSTF9UWVBFX1UzMjoKPj4gICAgICAgICAgICAg ICBlbGVtX3NpemUgPSBzaXplb2YodTMyKTsKPj4gICAgICAgICAgICAgICBicmVhazsKPj4gKyAg ICAgY2FzZSBWNEwyX0NUUkxfVFlQRV9WUDhfRlJBTUVfSERSOgo+PiArICAgICAgICAgICAgIGVs ZW1fc2l6ZSA9IHNpemVvZihzdHJ1Y3QgdjRsMl9jdHJsX3ZwOF9mcmFtZV9oZHIpOwo+PiArICAg ICAgICAgICAgIGJyZWFrOwo+PiAgICAgICBkZWZhdWx0Ogo+PiAgICAgICAgICAgICAgIGlmICh0 eXBlIDwgVjRMMl9DVFJMX0NPTVBPVU5EX1RZUEVTKQo+PiAgICAgICAgICAgICAgICAgICAgICAg ZWxlbV9zaXplID0gc2l6ZW9mKHMzMik7IEBAIC0yMDk4LDcgKzIxMTEsNyBAQCAKPj4gc3RhdGlj IHN0cnVjdCB2NGwyX2N0cmwgKnY0bDJfY3RybF9uZXcoc3RydWN0IHY0bDJfY3RybF9oYW5kbGVy ICpoZGwsCj4+ICAgICAgICAgICAgICAgaGFuZGxlcl9zZXRfZXJyKGhkbCwgLUVSQU5HRSk7Cj4+ ICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4+ICAgICAgIH0KPj4gLSAgICAgaWYgKGlzX2Fy cmF5ICYmCj4+ICsgICAgIGlmICgoaXNfYXJyYXkgfHwgKGZsYWdzICYgVjRMMl9DVFJMX0ZMQUdf UkVRX0tFRVApKSAmJgo+PiAgICAgICAgICAgKHR5cGUgPT0gVjRMMl9DVFJMX1RZUEVfQlVUVE9O IHx8Cj4+ICAgICAgICAgICAgdHlwZSA9PSBWNEwyX0NUUkxfVFlQRV9DVFJMX0NMQVNTKSkgewo+ PiAgICAgICAgICAgICAgIGhhbmRsZXJfc2V0X2VycihoZGwsIC1FSU5WQUwpOyBkaWZmIC0tZ2l0 IAo+PiBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuYwo+PiBiL2RyaXZlcnMv bWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuYwo+PiBpbmRleCA3ZDAyOGQxLi44YWE1ODEyIDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWlvY3RsLmMKPj4gKysr IGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1pb2N0bC5jCj4+IEBAIC0xMjU5LDYgKzEy NTksOSBAQCBzdGF0aWMgdm9pZCB2NGxfZmlsbF9mbXRkZXNjKHN0cnVjdCAKPj4gdjRsMl9mbXRk ZXNjICpmbXQpCj4+ICAgICAgICAgICAgICAgY2FzZSBWNEwyX1BJWF9GTVRfVkMxX0FOTkVYX0c6 ICBkZXNjciA9ICJWQy0xIChTTVBURSAKPj4gNDEyTSBBbm5leCBHKSI7IGJyZWFrOwo+PiAgICAg ICAgICAgICAgIGNhc2UgVjRMMl9QSVhfRk1UX1ZDMV9BTk5FWF9MOiAgZGVzY3IgPSAiVkMtMSAo U01QVEUgCj4+IDQxMk0gQW5uZXggTCkiOyBicmVhazsKPj4gICAgICAgICAgICAgICBjYXNlIFY0 TDJfUElYX0ZNVF9WUDg6ICAgICAgICAgIGRlc2NyID0gIlZQOCI7Cj4+IGJyZWFrOwo+PiArICAg ICAgICAgICAgIGNhc2UgVjRMMl9QSVhfRk1UX1ZQOF9GUkFNRToKPj4gKyAgICAgICAgICAgICAg ICAgICAgIGRlc2NyID0gIlZQOCBGUkFNRSI7Cj4+ICsgICAgICAgICAgICAgICAgICAgICBicmVh azsKPj4gICAgICAgICAgICAgICBjYXNlIFY0TDJfUElYX0ZNVF9DUElBMTogICAgICAgIGRlc2Ny ID0gIkdTUENBIENQaUEKPj4gWVVWIjsgYnJlYWs7Cj4+ICAgICAgICAgICAgICAgY2FzZSBWNEwy X1BJWF9GTVRfV05WQTogICAgICAgICBkZXNjciA9Cj4+ICJXTlZBIjsgYnJlYWs7Cj4+ICAgICAg ICAgICAgICAgY2FzZSBWNEwyX1BJWF9GTVRfU045QzEwWDogICAgICBkZXNjciA9ICJHU1BDQQo+ PiBTTjlDMTBYIjsgYnJlYWs7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Y0bDItY29y ZS92aWRlb2J1ZjItZG1hLWNvbnRpZy5jCj4+IGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlk ZW9idWYyLWRtYS1jb250aWcuYwo+PiBpbmRleCBjMzMxMjcyLi5hZWJjYzdmIDEwMDY0NAo+PiAt LS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1ZjItZG1hLWNvbnRpZy5jCj4+ICsr KyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi1kbWEtY29udGlnLmMKPj4gQEAg LTIzLDEzICsyMywxNiBAQAo+Pgo+PiAgc3RydWN0IHZiMl9kY19jb25mIHsKPj4gICAgICAgc3Ry dWN0IGRldmljZSAgICAgICAgICAgKmRldjsKPj4gKyAgICAgc3RydWN0IGRtYV9hdHRycyAgICAg ICAgYXR0cnM7Cj4+ICB9Owo+Pgo+PiAgc3RydWN0IHZiMl9kY19idWYgewo+PiAgICAgICBzdHJ1 Y3QgZGV2aWNlICAgICAgICAgICAgICAgICAgICpkZXY7Cj4+ICAgICAgIHZvaWQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKnZhZGRyOwo+PiAgICAgICB1bnNpZ25lZCBsb25nICAgICAgICAg ICAgICAgICAgIHNpemU7Cj4+ICsgICAgIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg KmNvb2tpZTsKPj4gICAgICAgZG1hX2FkZHJfdCAgICAgICAgICAgICAgICAgICAgICBkbWFfYWRk cjsKPj4gKyAgICAgc3RydWN0IGRtYV9hdHRycyAgICAgICAgICAgICAgICBhdHRyczsKPj4gICAg ICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gICAgICAgICBkbWFfZGlyOwo+PiAgICAgICBzdHJ1 Y3Qgc2dfdGFibGUgICAgICAgICAgICAgICAgICpkbWFfc2d0Owo+PiAgICAgICBzdHJ1Y3QgZnJh bWVfdmVjdG9yICAgICAgICAgICAgICp2ZWM7Cj4+IEBAIC0xMzEsNyArMTM0LDggQEAgc3RhdGlj IHZvaWQgdmIyX2RjX3B1dCh2b2lkICpidWZfcHJpdikKPj4gICAgICAgICAgICAgICBzZ19mcmVl X3RhYmxlKGJ1Zi0+c2d0X2Jhc2UpOwo+PiAgICAgICAgICAgICAgIGtmcmVlKGJ1Zi0+c2d0X2Jh c2UpOwo+PiAgICAgICB9Cj4+IC0gICAgIGRtYV9mcmVlX2NvaGVyZW50KGJ1Zi0+ZGV2LCBidWYt PnNpemUsIGJ1Zi0+dmFkZHIsIGJ1Zi0KPj4gPmRtYV9hZGRyKTsKPj4gKyAgICAgZG1hX2ZyZWVf YXR0cnMoYnVmLT5kZXYsIGJ1Zi0+c2l6ZSwgYnVmLT5jb29raWUsIGJ1Zi0KPj4gPmRtYV9hZGRy LAo+PiArICAgICAgICAgICAgICAgICAgICAgJmJ1Zi0+YXR0cnMpOwo+PiAgICAgICBwdXRfZGV2 aWNlKGJ1Zi0+ZGV2KTsKPj4gICAgICAga2ZyZWUoYnVmKTsKPj4gIH0KPj4gQEAgLTE0MywxOCAr MTQ3LDIyIEBAIHN0YXRpYyB2b2lkICp2YjJfZGNfYWxsb2Modm9pZCAqYWxsb2NfY3R4LCAKPj4g dW5zaWduZWQgbG9uZyBzaXplLAo+PiAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjb25mLT5k ZXY7Cj4+ICAgICAgIHN0cnVjdCB2YjJfZGNfYnVmICpidWY7Cj4+Cj4+IC0gICAgIGJ1ZiA9IGt6 YWxsb2Moc2l6ZW9mICpidWYsIEdGUF9LRVJORUwpOwo+PiArICAgICBidWYgPSBremFsbG9jKHNp emVvZigqYnVmKSwgR0ZQX0tFUk5FTCk7Cj4+ICAgICAgIGlmICghYnVmKQo+PiAgICAgICAgICAg ICAgIHJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+Pgo+PiAtICAgICBidWYtPnZhZGRyID0gZG1h X2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwgJmJ1Zi0+ZG1hX2FkZHIsCj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMIHwKPj4gZ2ZwX2Zs YWdzKTsKPj4gLSAgICAgaWYgKCFidWYtPnZhZGRyKSB7Cj4+ICsgICAgIGJ1Zi0+YXR0cnMgPSBj b25mLT5hdHRyczsKPj4gKyAgICAgYnVmLT5jb29raWUgPSBkbWFfYWxsb2NfYXR0cnMoZGV2LCBz aXplLCAmYnVmLT5kbWFfYWRkciwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHRlBfS0VSTkVMIHwgZ2ZwX2ZsYWdzLAo+PiAmYnVmLT5hdHRycyk7Cj4+ICsgICAgIGlm ICghYnVmLT5jb29raWUpIHsKPj4gICAgICAgICAgICAgICBkZXZfZXJyKGRldiwgImRtYV9hbGxv Y19jb2hlcmVudCBvZiBzaXplICVsZCBmYWlsZWRcbiIsIAo+PiBzaXplKTsKPj4gICAgICAgICAg ICAgICBrZnJlZShidWYpOwo+PiAgICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9NRU0p Owo+PiAgICAgICB9Cj4+Cj4+ICsgICAgIGlmICghZG1hX2dldF9hdHRyKERNQV9BVFRSX05PX0tF Uk5FTF9NQVBQSU5HLCAmYnVmLT5hdHRycykpCj4+ICsgICAgICAgICAgICAgYnVmLT52YWRkciA9 IGJ1Zi0+Y29va2llOwo+PiArCj4+ICAgICAgIC8qIFByZXZlbnQgdGhlIGRldmljZSBmcm9tIGJl aW5nIHJlbGVhc2VkIHdoaWxlIHRoZSBidWZmZXIgaXMgCj4+IHVzZWQgKi8KPj4gICAgICAgYnVm LT5kZXYgPSBnZXRfZGV2aWNlKGRldik7Cj4+ICAgICAgIGJ1Zi0+c2l6ZSA9IHNpemU7Cj4+IEBA IC0xODUsOCArMTkzLDggQEAgc3RhdGljIGludCB2YjJfZGNfbW1hcCh2b2lkICpidWZfcHJpdiwg c3RydWN0IAo+PiB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+PiAgICAgICAgKi8KPj4gICAgICAgdm1h LT52bV9wZ29mZiA9IDA7Cj4+Cj4+IC0gICAgIHJldCA9IGRtYV9tbWFwX2NvaGVyZW50KGJ1Zi0+ ZGV2LCB2bWEsIGJ1Zi0+dmFkZHIsCj4+IC0gICAgICAgICAgICAgYnVmLT5kbWFfYWRkciwgYnVm LT5zaXplKTsKPj4gKyAgICAgcmV0ID0gZG1hX21tYXBfYXR0cnMoYnVmLT5kZXYsIHZtYSwgYnVm LT5jb29raWUsCj4+ICsgICAgICAgICAgICAgYnVmLT5kbWFfYWRkciwgYnVmLT5zaXplLCAmYnVm LT5hdHRycyk7Cj4+Cj4+ICAgICAgIGlmIChyZXQpIHsKPj4gICAgICAgICAgICAgICBwcl9lcnIo IlJlbWFwcGluZyBtZW1vcnkgZmFpbGVkLCBlcnJvcjogJWRcbiIsIHJldCk7IEBAIAo+PiAtMzI5 LDcgKzMzNyw3IEBAIHN0YXRpYyB2b2lkICp2YjJfZGNfZG1hYnVmX29wc19rbWFwKHN0cnVjdCBk bWFfYnVmIAo+PiAqZGJ1ZiwgdW5zaWduZWQgbG9uZyBwZ251bSkgIHsKPj4gICAgICAgc3RydWN0 IHZiMl9kY19idWYgKmJ1ZiA9IGRidWYtPnByaXY7Cj4+Cj4+IC0gICAgIHJldHVybiBidWYtPnZh ZGRyICsgcGdudW0gKiBQQUdFX1NJWkU7Cj4+ICsgICAgIHJldHVybiBidWYtPnZhZGRyID8gYnVm LT52YWRkciArIHBnbnVtICogUEFHRV9TSVpFIDogTlVMTDsKPj4gIH0KPj4KPj4gIHN0YXRpYyB2 b2lkICp2YjJfZGNfZG1hYnVmX29wc192bWFwKHN0cnVjdCBkbWFfYnVmICpkYnVmKSBAQCAtMzY4 LDggCj4+ICszNzYsOCBAQCBzdGF0aWMgc3RydWN0IHNnX3RhYmxlICp2YjJfZGNfZ2V0X2Jhc2Vf c2d0KHN0cnVjdCAKPj4gdmIyX2RjX2J1ZiAqYnVmKQo+PiAgICAgICAgICAgICAgIHJldHVybiBO VUxMOwo+PiAgICAgICB9Cj4+Cj4+IC0gICAgIHJldCA9IGRtYV9nZXRfc2d0YWJsZShidWYtPmRl diwgc2d0LCBidWYtPnZhZGRyLCBidWYtCj4+ID5kbWFfYWRkciwKPj4gLSAgICAgICAgICAgICBi dWYtPnNpemUpOwo+PiArICAgICByZXQgPSBkbWFfZ2V0X3NndGFibGVfYXR0cnMoYnVmLT5kZXYs IHNndCwgYnVmLT5jb29raWUsIGJ1Zi0KPj4gPmRtYV9hZGRyLAo+PiArICAgICAgICAgICAgIGJ1 Zi0+c2l6ZSwgJmJ1Zi0+YXR0cnMpOwo+PiAgICAgICBpZiAocmV0IDwgMCkgewo+PiAgICAgICAg ICAgICAgIGRldl9lcnIoYnVmLT5kZXYsICJmYWlsZWQgdG8gZ2V0IHNjYXR0ZXJsaXN0IGZyb20g RE1BIAo+PiBBUElcbiIpOwo+PiAgICAgICAgICAgICAgIGtmcmVlKHNndCk7Cj4+IEBAIC00NDgs MjIgKzQ1NiwyNiBAQCBzdGF0aWMgdm9pZCB2YjJfZGNfcHV0X3VzZXJwdHIodm9pZCAqYnVmX3By aXYpCj4+ICAgKi8KPj4KPj4gICNpZmRlZiBfX2FyY2hfcGZuX3RvX2RtYQo+PiAtc3RhdGljIGlu bGluZSBkbWFfYWRkcl90IHZiMl9kY19wZm5fdG9fZG1hKHN0cnVjdCBkZXZpY2UgKmRldiwgCj4+ IHVuc2lnbmVkIGxvbmcgcGZuKQo+PiArc3RhdGljIGlubGluZSBkbWFfYWRkcl90IHZiMl9kY19w Zm5fdG9fZG1hKHN0cnVjdCBkZXZpY2UgKmRldiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBmbikKPj4gIHsKPj4gICAgICAgcmV0dXJu IChkbWFfYWRkcl90KV9fYXJjaF9wZm5fdG9fZG1hKGRldiwgcGZuKTsgIH0gICNlbGlmIAo+PiBk ZWZpbmVkKF9fcGZuX3RvX2J1cykgLXN0YXRpYyBpbmxpbmUgZG1hX2FkZHJfdCAKPj4gdmIyX2Rj X3Bmbl90b19kbWEoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIHBmbikKPj4gK3N0 YXRpYyBpbmxpbmUgZG1hX2FkZHJfdCB2YjJfZGNfcGZuX3RvX2RtYShzdHJ1Y3QgZGV2aWNlICpk ZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBwZm4pCj4+ICB7Cj4+ICAgICAgIHJldHVybiAoZG1hX2FkZHJfdClfX3Bmbl90b19idXMo cGZuKTsgIH0gICNlbGlmIAo+PiBkZWZpbmVkKF9fcGZuX3RvX3BoeXMpIC1zdGF0aWMgaW5saW5l IGRtYV9hZGRyX3QgCj4+IHZiMl9kY19wZm5fdG9fZG1hKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5z aWduZWQgbG9uZyBwZm4pCj4+ICtzdGF0aWMgaW5saW5lIGRtYV9hZGRyX3QgdmIyX2RjX3Bmbl90 b19kbWEoc3RydWN0IGRldmljZSAqZGV2LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGZuKQo+PiAgewo+PiAgICAgICByZXR1cm4gKGRt YV9hZGRyX3QpX19wZm5fdG9fcGh5cyhwZm4pOyAgfSAgI2Vsc2UgLXN0YXRpYyBpbmxpbmUgCj4+ IGRtYV9hZGRyX3QgdmIyX2RjX3Bmbl90b19kbWEoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25l ZCBsb25nIHBmbikKPj4gK3N0YXRpYyBpbmxpbmUgZG1hX2FkZHJfdCB2YjJfZGNfcGZuX3RvX2Rt YShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBwZm4pCj4+ICB7Cj4+ICAgICAgIC8qIHJlYWxseSwgd2Ug Y2Fubm90IGRvIGFueXRoaW5nIGJldHRlciBhdCB0aGlzIHBvaW50ICovCj4+ICAgICAgIHJldHVy biAoZG1hX2FkZHJfdCkocGZuKSA8PCBQQUdFX1NISUZUOyBAQCAtNDk3LDcgKzUwOSw3IEBAIAo+ PiBzdGF0aWMgdm9pZCAqdmIyX2RjX2dldF91c2VycHRyKHZvaWQgKmFsbG9jX2N0eCwgdW5zaWdu ZWQgbG9uZyB2YWRkciwKPj4gICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsK Pj4gICAgICAgfQo+Pgo+PiAtICAgICBidWYgPSBremFsbG9jKHNpemVvZiAqYnVmLCBHRlBfS0VS TkVMKTsKPj4gKyAgICAgYnVmID0ga3phbGxvYyhzaXplb2YoKmJ1ZiksIEdGUF9LRVJORUwpOwo+ PiAgICAgICBpZiAoIWJ1ZikKPj4gICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKPj4KPj4gQEAgLTcyMSwxOSArNzMzLDIyIEBAIGNvbnN0IHN0cnVjdCB2YjJfbWVtX29wcyB2 YjJfZG1hX2NvbnRpZ19tZW1vcHMgCj4+ID0geyAgfTsgIEVYUE9SVF9TWU1CT0xfR1BMKHZiMl9k bWFfY29udGlnX21lbW9wcyk7Cj4+Cj4+IC12b2lkICp2YjJfZG1hX2NvbnRpZ19pbml0X2N0eChz dHJ1Y3QgZGV2aWNlICpkZXYpCj4+ICt2b2lkICp2YjJfZG1hX2NvbnRpZ19pbml0X2N0eF9hdHRy cyhzdHJ1Y3QgZGV2aWNlICpkZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgZG1hX2F0dHJzICphdHRycykKPj4gIHsKPj4gICAgICAgc3RydWN0IHZiMl9kY19j b25mICpjb25mOwo+Pgo+PiAtICAgICBjb25mID0ga3phbGxvYyhzaXplb2YgKmNvbmYsIEdGUF9L RVJORUwpOwo+PiArICAgICBjb25mID0ga3phbGxvYyhzaXplb2YoKmNvbmYpLCBHRlBfS0VSTkVM KTsKPj4gICAgICAgaWYgKCFjb25mKQo+PiAgICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1F Tk9NRU0pOwo+Pgo+PiAgICAgICBjb25mLT5kZXYgPSBkZXY7Cj4+ICsgICAgIGlmIChhdHRycykK Pj4gKyAgICAgICAgICAgICBjb25mLT5hdHRycyA9ICphdHRyczsKPj4KPj4gICAgICAgcmV0dXJu IGNvbmY7Cj4+ICB9Cj4+IC1FWFBPUlRfU1lNQk9MX0dQTCh2YjJfZG1hX2NvbnRpZ19pbml0X2N0 eCk7Cj4+ICtFWFBPUlRfU1lNQk9MX0dQTCh2YjJfZG1hX2NvbnRpZ19pbml0X2N0eF9hdHRycyk7 Cj4+Cj4+ICB2b2lkIHZiMl9kbWFfY29udGlnX2NsZWFudXBfY3R4KHZvaWQgKmFsbG9jX2N0eCkg IHsgZGlmZiAtLWdpdCAKPj4gYS9pbmNsdWRlL21lZGlhL3Y0bDItY3RybHMuaCBiL2luY2x1ZGUv bWVkaWEvdjRsMi1jdHJscy5oIGluZGV4IAo+PiA1Zjk1MjZmLi4wNDI0Y2RjIDEwMDY0NAo+PiAt LS0gYS9pbmNsdWRlL21lZGlhL3Y0bDItY3RybHMuaAo+PiArKysgYi9pbmNsdWRlL21lZGlhL3Y0 bDItY3RybHMuaAo+PiBAQCAtNDYsNiArNDYsNyBAQCBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3Q7 Cj4+ICAgKiBAcF91MTY6ICAgUG9pbnRlciB0byBhIDE2LWJpdCB1bnNpZ25lZCB2YWx1ZS4KPj4g ICAqIEBwX3UzMjogICBQb2ludGVyIHRvIGEgMzItYml0IHVuc2lnbmVkIHZhbHVlLgo+PiAgICog QHBfY2hhcjogIFBvaW50ZXIgdG8gYSBzdHJpbmcuCj4+ICsgKiBAcF92cDhfZnJhbWVfaGRyOiBQ b2ludGVyIHRvIGEgc3RydWN0Cj4+IHY0bDJfY3RybF92cDhfZnJhbWVfaGRyLgo+PiAgICogQHA6 ICAgICAgICAgICAgICAgUG9pbnRlciB0byBhIGNvbXBvdW5kIHZhbHVlLgo+PiAgICovCj4+ICB1 bmlvbiB2NGwyX2N0cmxfcHRyIHsKPj4gQEAgLTU1LDYgKzU2LDcgQEAgdW5pb24gdjRsMl9jdHJs X3B0ciB7Cj4+ICAgICAgIHUxNiAqcF91MTY7Cj4+ICAgICAgIHUzMiAqcF91MzI7Cj4+ICAgICAg IGNoYXIgKnBfY2hhcjsKPj4gKyAgICAgc3RydWN0IHY0bDJfY3RybF92cDhfZnJhbWVfaGRyICpw X3ZwOF9mcmFtZV9oZHI7Cj4+ICAgICAgIHZvaWQgKnA7Cj4+ICB9Owo+Pgo+PiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItZG1hLWNvbnRpZy5oCj4+IGIvaW5jbHVkZS9tZWRp YS92aWRlb2J1ZjItZG1hLWNvbnRpZy5oCj4+IGluZGV4IGMzM2RmYTYuLjIwODdjOWEgMTAwNjQ0 Cj4+IC0tLSBhL2luY2x1ZGUvbWVkaWEvdmlkZW9idWYyLWRtYS1jb250aWcuaAo+PiArKysgYi9p bmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1kbWEtY29udGlnLmgKPj4gQEAgLTE2LDYgKzE2LDggQEAK Pj4gICNpbmNsdWRlIDxtZWRpYS92aWRlb2J1ZjItdjRsMi5oPgo+PiAgI2luY2x1ZGUgPGxpbnV4 L2RtYS1tYXBwaW5nLmg+Cj4+Cj4+ICtzdHJ1Y3QgZG1hX2F0dHJzOwo+PiArCj4+ICBzdGF0aWMg aW5saW5lIGRtYV9hZGRyX3QKPj4gIHZiMl9kbWFfY29udGlnX3BsYW5lX2RtYV9hZGRyKHN0cnVj dCB2YjJfYnVmZmVyICp2YiwgdW5zaWduZWQgaW50Cj4+IHBsYW5lX25vKQo+PiAgewo+PiBAQCAt MjQsNyArMjYsMTQgQEAgdmIyX2RtYV9jb250aWdfcGxhbmVfZG1hX2FkZHIoc3RydWN0IHZiMl9i dWZmZXIgCj4+ICp2YiwgdW5zaWduZWQgaW50IHBsYW5lX25vKQo+PiAgICAgICByZXR1cm4gKmFk ZHI7Cj4+ICB9Cj4+Cj4+IC12b2lkICp2YjJfZG1hX2NvbnRpZ19pbml0X2N0eChzdHJ1Y3QgZGV2 aWNlICpkZXYpOwo+PiArdm9pZCAqdmIyX2RtYV9jb250aWdfaW5pdF9jdHhfYXR0cnMoc3RydWN0 IGRldmljZSAqZGV2LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGRtYV9hdHRycyAqYXR0cnMpOwo+PiArCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgKnZiMl9kbWFf Y29udGlnX2luaXRfY3R4KHN0cnVjdCBkZXZpY2UgKmRldikgewo+PiArICAgICByZXR1cm4gdmIy X2RtYV9jb250aWdfaW5pdF9jdHhfYXR0cnMoZGV2LCBOVUxMKTsgfQo+PiArCj4+ICB2b2lkIHZi Ml9kbWFfY29udGlnX2NsZWFudXBfY3R4KHZvaWQgKmFsbG9jX2N0eCk7Cj4+Cj4+ICBleHRlcm4g Y29uc3Qgc3RydWN0IHZiMl9tZW1fb3BzIHZiMl9kbWFfY29udGlnX21lbW9wczsgZGlmZiAtLWdp dCAKPj4gYS9pbmNsdWRlL3VhcGkvbGludXgvdjRsMi1jb250cm9scy5oCj4+IGIvaW5jbHVkZS91 YXBpL2xpbnV4L3Y0bDItY29udHJvbHMuaAo+PiBpbmRleCAyZDIyNWJjLi42M2M2NWQ5IDEwMDY0 NAo+PiAtLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdjRsMi1jb250cm9scy5oCj4+ICsrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC92NGwyLWNvbnRyb2xzLmgKPj4gQEAgLTUyMCw2ICs1MjAsNyBAQCBl bnVtCj4+IHY0bDJfbXBlZ192aWRlb19oMjY0X2hpZXJhcmNoaWNhbF9jb2RpbmdfdHlwZSB7ICB9 Owo+PiAgI2RlZmluZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0gyNjRfSElFUkFSQ0hJQ0FMX0NPRElO R19MQVlFUiAgIChWCj4+IDRMMl9DSURfTVBFR19CQVNFKzM4MSkKPj4gICNkZWZpbmUgVjRMMl9D SURfTVBFR19WSURFT19IMjY0X0hJRVJBUkNISUNBTF9DT0RJTkdfTEFZRVJfUVAKPj4gKFY0TDJf Q0lEX01QRUdfQkFTRSszODIpCj4+ICsKPj4gICNkZWZpbmUgVjRMMl9DSURfTVBFR19WSURFT19N UEVHNF9JX0ZSQU1FX1FQIChWNEwyX0NJRF9NUEVHX0IKPj4gQVNFKzQwMCkKPj4gICNkZWZpbmUg VjRMMl9DSURfTVBFR19WSURFT19NUEVHNF9QX0ZSQU1FX1FQIChWNEwyX0NJRF9NUEVHX0IKPj4g QVNFKzQwMSkKPj4gICNkZWZpbmUgVjRMMl9DSURfTVBFR19WSURFT19NUEVHNF9CX0ZSQU1FX1FQ IChWNEwyX0NJRF9NUEVHX0IKPj4gQVNFKzQwMikKPj4gQEAgLTU3OCw2ICs1NzksOCBAQCBlbnVt IHY0bDJfdnA4X2dvbGRlbl9mcmFtZV9zZWwgewo+PiAgI2RlZmluZSBWNEwyX0NJRF9NUEVHX1ZJ REVPX1ZQWF9QX0ZSQU1FX1FQICAgICAgICAgICAoVjRMMl9DSURfCj4+IE1QRUdfQkFTRSs1MTAp Cj4+ICAjZGVmaW5lIFY0TDJfQ0lEX01QRUdfVklERU9fVlBYX1BST0ZJTEUgICAgICAgICAgICAg ICAgICAgICAgKFY0TDIKPj4gX0NJRF9NUEVHX0JBU0UrNTExKQo+Pgo+PiArI2RlZmluZSBWNEwy X0NJRF9NUEVHX1ZJREVPX1ZQOF9GUkFNRV9IRFIgICAgICAgICAgICAoVjRMMl9DSURfTQo+PiBQ RUdfQkFTRSs1MTIpCj4+ICsKPj4gIC8qICBNUEVHLWNsYXNzIGNvbnRyb2wgSURzIHNwZWNpZmlj IHRvIHRoZSBDWDIzNDF4IGRyaXZlciBhcyBkZWZpbmVkIAo+PiBieSBWNEwyICovCj4+ICAjZGVm aW5lIFY0TDJfQ0lEX01QRUdfQ1gyMzQxWF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAg KAo+PiBWNEwyX0NUUkxfQ0xBU1NfTVBFRyB8IDB4MTAwMCkKPj4gICNkZWZpbmUgVjRMMl9DSURf TVBFR19DWDIzNDFYX1ZJREVPX1NQQVRJQUxfRklMVEVSX01PREUgICAgICAoVjRMCj4+IDJfQ0lE X01QRUdfQ1gyMzQxWF9CQVNFKzApCj4+IEBAIC05NjMsNCArOTY2LDk5IEBAIGVudW0gdjRsMl9k ZXRlY3RfbWRfbW9kZSB7Cj4+ICAjZGVmaW5lIFY0TDJfQ0lEX0RFVEVDVF9NRF9USFJFU0hPTERf R1JJRCAgICAoVjRMMl9DSURfREVURUNUX0NMCj4+IEFTU19CQVNFICsgMykKPj4gICNkZWZpbmUg VjRMMl9DSURfREVURUNUX01EX1JFR0lPTl9HUklEICAgICAgICAgICAgICAgKFY0TDJfQ0lEX0RF VEUKPj4gQ1RfQ0xBU1NfQkFTRSArIDQpCj4+Cj4+ICsKPj4gKy8qIENvbXBsZXggY29udHJvbHMg Ki8KPj4gKwo+PiArI2RlZmluZSBWNEwyX1ZQOF9TRUdNTlRfSERSX0ZMQUdfRU5BQkxFRCAgICAg ICAgICAgICAgMHgwMQo+PiArI2RlZmluZSBWNEwyX1ZQOF9TRUdNTlRfSERSX0ZMQUdfVVBEQVRF X01BUCAgICAgICAgICAgMHgwMgo+PiArI2RlZmluZSBWNEwyX1ZQOF9TRUdNTlRfSERSX0ZMQUdf VVBEQVRFX0ZFQVRVUkVfREFUQSAgMHgwNCBzdHJ1Y3QgCj4+ICt2NGwyX3ZwOF9zZ21udF9oZHIg ewo+PiArICAgICBfX3U4IHNlZ21lbnRfZmVhdHVyZV9tb2RlOwo+PiArCj4+ICsgICAgIF9fczgg cXVhbnRfdXBkYXRlWzRdOwo+PiArICAgICBfX3M4IGxmX3VwZGF0ZVs0XTsKPj4gKyAgICAgX191 OCBzZWdtZW50X3Byb2JzWzNdOwo+PiArCj4+ICsgICAgIF9fdTggZmxhZ3M7Cj4+ICt9Owo+PiAr Cj4+ICsjZGVmaW5lIFY0TDJfVlA4X0xGX0hEUl9BREpfRU5BQkxFICAgMHgwMQo+PiArI2RlZmlu ZSBWNEwyX1ZQOF9MRl9IRFJfREVMVEFfVVBEQVRFIDB4MDIgc3RydWN0IAo+PiArdjRsMl92cDhf bG9vcGZpbHRlcl9oZHIgewo+PiArICAgICBfX3U4IHR5cGU7Cj4+ICsgICAgIF9fdTggbGV2ZWw7 Cj4+ICsgICAgIF9fdTggc2hhcnBuZXNzX2xldmVsOwo+PiArICAgICBfX3M4IHJlZl9mcm1fZGVs dGFfbWFnbml0dWRlWzRdOwo+PiArICAgICBfX3M4IG1iX21vZGVfZGVsdGFfbWFnbml0dWRlWzRd Owo+PiArCj4+ICsgICAgIF9fdTggZmxhZ3M7Cj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3QgdjRsMl92 cDhfcXVhbnRpemF0aW9uX2hkciB7Cj4+ICsgICAgIF9fdTggeV9hY19xaTsKPj4gKyAgICAgX19z OCB5X2RjX2RlbHRhOwo+PiArICAgICBfX3M4IHkyX2RjX2RlbHRhOwo+PiArICAgICBfX3M4IHky X2FjX2RlbHRhOwo+PiArICAgICBfX3M4IHV2X2RjX2RlbHRhOwo+PiArICAgICBfX3M4IHV2X2Fj X2RlbHRhOwo+PiArICAgICBfX3UxNiBkZXF1YW50X2ZhY3RvcnNbNF1bM11bMl07IH07Cj4+ICsK Pj4gK3N0cnVjdCB2NGwyX3ZwOF9lbnRyb3B5X2hkciB7Cj4+ICsgICAgIF9fdTggY29lZmZfcHJv YnNbNF1bOF1bM11bMTFdOwo+PiArICAgICBfX3U4IHlfbW9kZV9wcm9ic1s0XTsKPj4gKyAgICAg X191OCB1dl9tb2RlX3Byb2JzWzNdOwo+PiArICAgICBfX3U4IG12X3Byb2JzWzJdWzE5XTsKPj4g K307Cj4+ICsKPj4gKyNkZWZpbmUgVjRMMl9WUDhfRlJBTUVfSERSX0ZMQUdfRVhQRVJJTUVOVEFM ICAgICAgICAgMHgwMQo+PiArI2RlZmluZSBWNEwyX1ZQOF9GUkFNRV9IRFJfRkxBR19TSE9XX0ZS QU1FICAgICAgICAgICAweDAyCj4+ICsjZGVmaW5lIFY0TDJfVlA4X0ZSQU1FX0hEUl9GTEFHX01C X05PX1NLSVBfQ09FRkYgICAgIDB4MDQKPj4gK3N0cnVjdCB2NGwyX2N0cmxfdnA4X2ZyYW1lX2hk ciB7Cj4+ICsgICAgIC8qIDA6IGtleWZyYW1lLCAxOiBub3QgYSBrZXlmcmFtZSAqLwo+PiArICAg ICBfX3U4IGtleV9mcmFtZTsKPj4gKyAgICAgX191OCB2ZXJzaW9uOwo+PiArCj4+ICsgICAgIC8q IFBvcHVsYXRlZCBhbHNvIGlmIG5vdCBhIGtleSBmcmFtZSAqLwo+PiArICAgICBfX3UxNiB3aWR0 aDsKPj4gKyAgICAgX191OCBob3Jpem9udGFsX3NjYWxlOwo+PiArICAgICBfX3UxNiBoZWlnaHQ7 Cj4+ICsgICAgIF9fdTggdmVydGljYWxfc2NhbGU7Cj4+ICsKPj4gKyAgICAgc3RydWN0IHY0bDJf dnA4X3NnbW50X2hkciBzZ21udF9oZHI7Cj4+ICsgICAgIHN0cnVjdCB2NGwyX3ZwOF9sb29wZmls dGVyX2hkciBsZl9oZHI7Cj4+ICsgICAgIHN0cnVjdCB2NGwyX3ZwOF9xdWFudGl6YXRpb25faGRy IHF1YW50X2hkcjsKPj4gKyAgICAgc3RydWN0IHY0bDJfdnA4X2VudHJvcHlfaGRyIGVudHJvcHlf aGRyOwo+PiArCj4+ICsgICAgIF9fdTggc2lnbl9iaWFzX2dvbGRlbjsKPj4gKyAgICAgX191OCBz aWduX2JpYXNfYWx0ZXJuYXRlOwo+PiArCj4+ICsgICAgIF9fdTggcHJvYl9za2lwX2ZhbHNlOwo+ PiArICAgICBfX3U4IHByb2JfaW50cmE7Cj4+ICsgICAgIF9fdTggcHJvYl9sYXN0Owo+PiArICAg ICBfX3U4IHByb2JfZ2Y7Cj4+ICsKPj4gKyAgICAgX191MzIgZmlyc3RfcGFydF9zaXplOwo+PiAr ICAgICBfX3UzMiBmaXJzdF9wYXJ0X29mZnNldDsKPj4gKyAgICAgLyoKPj4gKyAgICAgICogT2Zm c2V0IGluIGJpdHMgb2YgTUIgZGF0YSBpbiBmaXJzdCBwYXJ0aXRpb24sCj4+ICsgICAgICAqIGku ZS4gYml0IG9mZnNldCBzdGFydGluZyBmcm9tIGZpcnN0X3BhcnRfb2Zmc2V0Lgo+PiArICAgICAg Ki8KPj4gKyAgICAgX191MzIgbWFjcm9ibG9ja19iaXRfb2Zmc2V0Owo+PiArCj4+ICsgICAgIF9f dTggbnVtX2RjdF9wYXJ0czsKPj4gKyAgICAgX191MzIgZGN0X3BhcnRfc2l6ZXNbOF07Cj4+ICsK Pj4gKyAgICAgX191OCBib29sX2RlY19yYW5nZTsKPj4gKyAgICAgX191OCBib29sX2RlY192YWx1 ZTsKPj4gKyAgICAgX191OCBib29sX2RlY19jb3VudDsKPj4gKwo+PiArICAgICAvKiB2NGwyX2J1 ZmZlciBpbmRpY2VzIG9mIHJlZmVyZW5jZSBmcmFtZXMgKi8KPj4gKyAgICAgX191MzIgbGFzdF9m cmFtZTsKPj4gKyAgICAgX191MzIgZ29sZGVuX2ZyYW1lOwo+PiArICAgICBfX3UzMiBhbHRfZnJh bWU7Cj4+ICsKPj4gKyAgICAgX191OCBmbGFnczsKPj4gK307Cj4+ICsKPj4gICNlbmRpZgo+PiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oIAo+PiBiL2luY2x1ZGUv dWFwaS9saW51eC92aWRlb2RldjIuaCBpbmRleCAyOWE2Yjc4Li4xOTFjYTE5IDEwMDY0NAo+PiAt LS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdmlkZW9kZXYyLmgKPj4gKysrIGIvaW5jbHVkZS91YXBp L2xpbnV4L3ZpZGVvZGV2Mi5oCj4+IEBAIC01OTMsNiArNTkzLDcgQEAgc3RydWN0IHY0bDJfcGl4 X2Zvcm1hdCB7ICAjZGVmaW5lIAo+PiBWNEwyX1BJWF9GTVRfVkMxX0FOTkVYX0cgdjRsMl9mb3Vy Y2MoJ1YnLCAnQycsICcxJywgJ0cnKSAvKiBTTVBURSAKPj4gNDIxTSBBbm5leCBHIGNvbXBsaWFu dCBzdHJlYW0gKi8gICNkZWZpbmUgVjRMMl9QSVhfRk1UX1ZDMV9BTk5FWF9MIAo+PiB2NGwyX2Zv dXJjYygnVicsICdDJywgJzEnLCAnTCcpIC8qIFNNUFRFIDQyMU0gQW5uZXggTCBjb21wbGlhbnQg Cj4+IHN0cmVhbSAqLwo+PiAgI2RlZmluZSBWNEwyX1BJWF9GTVRfVlA4ICAgICAgdjRsMl9mb3Vy Y2MoJ1YnLCAnUCcsICc4JywgJzAnKSAvKiBWUDgKPj4gKi8KPj4gKyNkZWZpbmUgVjRMMl9QSVhf Rk1UX1ZQOF9GUkFNRSAgICAgICB2NGwyX2ZvdXJjYygnVicsICdQJywgJzgnLAo+PiAnRicpIC8q IFZQOCBwYXJzZWQgZnJhbWVzICovCj4+Cj4+ICAvKiAgVmVuZG9yLXNwZWNpZmljIGZvcm1hdHMg ICAqLwo+PiAgI2RlZmluZSBWNEwyX1BJWF9GTVRfQ1BJQTEgICAgdjRsMl9mb3VyY2MoJ0MnLCAn UCcsICdJJywgJ0EnKSAvKgo+PiBjcGlhMSBZVVYgKi8KPj4gQEAgLTE0NzMsNiArMTQ3NCw3IEBA IHN0cnVjdCB2NGwyX2V4dF9jb250cm9sIHsKPj4gICAgICAgICAgICAgICBfX3U4IF9fdXNlciAq cF91ODsKPj4gICAgICAgICAgICAgICBfX3UxNiBfX3VzZXIgKnBfdTE2Owo+PiAgICAgICAgICAg ICAgIF9fdTMyIF9fdXNlciAqcF91MzI7Cj4+ICsgICAgICAgICAgICAgc3RydWN0IHY0bDJfY3Ry bF92cDhfZnJhbWVfaGRyIF9fdXNlcgo+PiAqcF92cDhfZnJhbWVfaGRyOwo+PiAgICAgICAgICAg ICAgIHZvaWQgX191c2VyICpwdHI7Cj4+ICAgICAgIH07Cj4+ICB9IF9fYXR0cmlidXRlX18gKChw YWNrZWQpKTsKPj4gQEAgLTE1MTcsNiArMTUxOSw5IEBAIGVudW0gdjRsMl9jdHJsX3R5cGUgewo+ PiAgICAgICBWNEwyX0NUUkxfVFlQRV9VOCAgICAgICAgICAgID0gMHgwMTAwLAo+PiAgICAgICBW NEwyX0NUUkxfVFlQRV9VMTYgICAgICAgICAgID0gMHgwMTAxLAo+PiAgICAgICBWNEwyX0NUUkxf VFlQRV9VMzIgICAgICAgICAgID0gMHgwMTAyLAo+PiArICAgICBWNEwyX0NUUkxfVFlQRV9WUDhf RlJBTUVfSERSICAgID0gMHgxMDgsCj4+ICsKPj4gKyAgICAgVjRMMl9DVFJMX1RZUEVfUFJJVkFU RSAgICAgICA9IDB4ZmZmZiwKPj4gIH07Cj4+Cj4+ICAvKiAgVXNlZCBpbiB0aGUgVklESU9DX1FV RVJZQ1RSTCBpb2N0bCBmb3IgcXVlcnlpbmcgY29udHJvbHMgKi8KCgoKCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFpbGlu ZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAo=