From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC][PATCH 04/11] drm: Split the display info into static and dynamic parts Date: Tue, 6 Mar 2018 10:41:32 +0100 Message-ID: <20180306094132.GS22212@phenom.ffwll.local> References: <20180227125700.6527-1-ville.syrjala@linux.intel.com> <20180227125700.6527-5-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180227125700.6527-5-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville Syrjala Cc: Marek Vasut , linux-renesas-soc@vger.kernel.org, Keith Packard , Laurent Pinchart , Boris Brezillon , Daniel Vetter , intel-gfx@lists.freedesktop.org, Alison Wang , dri-devel@lists.freedesktop.org, Hans de Goede , Thierry Reding , Maxime Ripard List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMjcsIDIwMTggYXQgMDI6NTY6NTNQTSArMDIwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IEN1cnJlbnRseSB3ZSBoYXZlIGEgbWl4IG9mIHN0YXRpYyBhbmQgZHluYW1pYyBp bmZvcm1hdGlvbiBzdG9yZWQgaW4KPiB0aGUgZGlzcGxheSBpbmZvIHN0cnVjdHVyZS4gVGhhdCBt YWtlcyBpdCByYXRoZXIgZGlmZmljdWx0IHRvIHJlcG9wdWxhdGUKPiB0aGUgZHluYW1pYyBwYXJ0 cyB3aGVuIGEgbmV3IEVESUQgYXBwZWFycy4gTGV0J3MgbWFrZSBsaWZlIGVhc2llciBieQo+IHNw bGl0dGluZyB0aGUgc3RydWN0dXJlIHVwIGludG8gc3RhdGljIGFuZCBkeW5hbWljIHBhcnRzLgo+ IAo+IFRoZSBzdGF0aWMgcGFydCB3aWxsIGNvbnNpc3Qgb2Ygc3VicGl4ZWxfb3JkZXIsIHBhbmVs X29yaWVudGF0aW9uLAo+IGFuZCBidXNfZm9ybWF0cy4KPiAKPiBBY3R1YWxseSBJJ20gbm90IHN1 cmUgd2hlcmUgYnVzX2Zvcm1hdHMgJiBjby4gZml0IGluIGFsbCB0aGlzLiBGb3Igc29tZQo+IGRy aXZlcnMgdGhvc2Ugc2VlbSB0byBiZSBzdGF0aWMsIGV2ZW4gdGhvdWdoIHRoZXkgbWlnaHQgZmls bCB0aGVtIG91dAo+IGZyb20gLmdldF9tb2RlcygpLiBGb3Igb3RoZXIgZHJpdmVycyB0aGlzIHN0 dWZmIGV2ZW4gZ2V0cyBmcm9iYmVkIGF0Cj4gcnVudGltZSwgbWFraW5nIGl0IG1vcmUgc29tZSBr aW5kIG9mIGEgYmFzdGFyZCBlbmNvZGVyL2Nvbm5lY3RvciBzdGF0ZS4KPiBJJ2xsIGp1c3Qgc3Rp Y2sgaXQgaW50byB0aGUgc3RhdGljIHNpZGUgc28gdGhhdCB0aGUgYmVoYXZpb3VyIGRvZXNuJ3QK PiBjaGFuZ2Ugd2hlbiBJIHN0YXJ0IGNsZWFyIG91dCB0aGUgZW50aXJlIGR5bmFtaWMgc3RhdGUg d2l0aCBtZW1zZXQoKS4KCklmIHdlIGdvIHdpdGggbXkgc3VnZ2VzdGlvbiBmb3IgdGhlIG5leHQg cGF0Y2ggdG8gbm90IHJlc2V0IGRpc3BsYXkgaW5mbwpmb3IgcGFuZWxzLCB0aGVuIHRoaXMgcHJv YmxlbSBkaXNhcHBlYXJzLiBCZWNhdXNlIGFsbCB0aGUgc3R1ZmYgeW91CmlkZW50aWZpZWQgYXMg c3RhdGljIGlzIHJlbGV2YW50IGZvciBwYW5lbHMsIGFuZCBmb3IgcGFuZWxzIF9ldmVyeXRoaW5n XwppcyBzdGF0aWMuCgpJIHRoaW5rIHdpdGggdGhlIG5leHQgcGF0Y2ggY2hhbmdlZCBwZXIgbXkg c3VnZ2VzdGlvbiB5b3UgY291bGQgZHJvcCB0aGlzCm9uZSBoZXJlIG91dHJpZ2h0LCBhbmQgc3Rp bGwgcmV0YWluIGFsbCB0aGUgYmVuZWZpdHMgb2YgeW91ciBjbGVhbnVwLgotRGFuaWVsCj4gCj4g Q2M6IEtlaXRoIFBhY2thcmQgPGtlaXRocEBrZWl0aHAuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IENjOiBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUBy ZWRoYXQuY29tPgo+IENjOiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5j b20+Cj4gQ2M6IFN0ZWZhbiBBZ25lciA8c3RlZmFuQGFnbmVyLmNoPgo+IENjOiBUaGllcnJ5IFJl ZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgo+IENjOiBCb3JpcyBCcmV6aWxsb24gPGJv cmlzLmJyZXppbGxvbkBib290bGluLmNvbT4KPiBDYzogUGhpbGlwcCBaYWJlbCA8cC56YWJlbEBw ZW5ndXRyb25peC5kZT4KPiBDYzogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBp ZGVhc29uYm9hcmQuY29tPgo+IENjOiBNYW5mcmVkIFNjaGxhZWdsIDxtYW5mcmVkLnNjaGxhZWds QGdteC5hdD4KPiBDYzogTWFyZWsgVmFzdXQgPG1hcmV4QGRlbnguZGU+Cj4gQ2M6IEFyY2hpdCBU YW5lamEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+Cj4gQ2M6IEFuZHJ6ZWogSGFqZGEgPGEuaGFq ZGFAc2Ftc3VuZy5jb20+Cj4gQ2M6IEFsaXNvbiBXYW5nIDxhbGlzb24ud2FuZ0BmcmVlc2NhbGUu Y29tPgo+IENjOiBFcmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0Pgo+IENjOiBMaW51cyBXYWxs ZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+Cj4gQ2M6IGxpbnV4LXJlbmVzYXMtc29jQHZn ZXIua2VybmVsLm9yZwo+IENjOiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3RsaW4u Y29tPgo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9j b25uZWN0b3JzLmMgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Rj ZV92aXJ0dWFsLmMgICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9hdG1lbC1o bGNkYy9hdG1lbF9obGNkY19jcnRjLmMgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9i cmlkZ2Uvc2lpOTAyeC5jICAgICAgICAgICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvdGMzNTg3NjcuYyAgICAgICAgICAgICAgICAgIHwgICAyICstCj4gIGRyaXZl cnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCj4g IGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2NydGMuYyAgICAgICAg IHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2hkbWkuYyAgICAg ICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2x2ZHMu YyAgICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvbWRmbGRfZHNp X291dHB1dC5jICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2Fr dHJhaWxfaGRtaS5jICAgICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9nbWE1 MDAvb2FrdHJhaWxfbHZkcy5jICAgICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2Ry bS9nbWE1MDAvcHNiX2ludGVsX2x2ZHMuYyAgICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMv Z3B1L2RybS9nbWE1MDAvcHNiX2ludGVsX3Nkdm8uYyAgICAgICAgICAgIHwgICAyICstCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICAgICAgICAgIHwgICAyICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jICAgICAgICAgICAgICAgICAgIHwg ICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jICAgICAgICAgICAgICAg ICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYyAgICAgICAg ICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYyAg ICAgICAgICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5j ICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pbXgvcGFy YWxsZWwtZGlzcGxheS5jICAgICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9t eHNmYi9teHNmYl9jcnRjLmMgICAgICAgICAgICAgICAgIHwgICA2ICstCj4gIGRyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMgICAgICAgIHwgICAyICstCj4gIGRyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTMyMi5jICAgICAgIHwgICA4ICstCj4g IGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sdmRzLmMgICAgICAgICAgICAgICAgIHwgICA0 ICstCj4gIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBpLXRvdWNoc2NyZWVuLmMg IHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zZWlrby00M3d2ZjFnLmMg ICAgICAgIHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYyAg ICAgICAgICAgICAgIHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9kaXNw bGF5LmMgICAgICAgICAgICAgIHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2Nvbm5lY3RvcnMuYyAgICAgICAgIHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfZHVfZW5jb2Rlci5jICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2Ry bS9zdW40aS9zdW40aV90Y29uLmMgICAgICAgICAgICAgICAgIHwgICA0ICstCj4gIGRyaXZlcnMv Z3B1L2RybS90dmUyMDAvdHZlMjAwX2Rpc3BsYXkuYyAgICAgICAgICAgIHwgICAyICstCj4gIGRy aXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICst Cj4gIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICAgICAgICAgICAgICAgICAgIHwg MTIzICsrKysrKysrKysrKy0tLS0tLS0tLQo+ICAzNiBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5zZXJ0 aW9ucygrKSwgMTA2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVjdG9ycy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYwo+IGluZGV4IDc0ZDJlZmFlYzUyZi4uMWJhNzJkYzJh ODViIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jb25u ZWN0b3JzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVj dG9ycy5jCj4gQEAgLTE5MjcsNyArMTkyNyw3IEBAIGFtZGdwdV9jb25uZWN0b3JfYWRkKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAJfSBlbHNlCj4gIAkJY29ubmVjdG9yLT5wb2xsZWQg PSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOwo+ICAKPiAtCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZv LnN1YnBpeGVsX29yZGVyID0gc3VicGl4ZWxfb3JkZXI7Cj4gKwljb25uZWN0b3ItPnN0YXRpY19k aXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBzdWJwaXhlbF9vcmRlcjsKPiAgCWRybV9jb25u ZWN0b3JfcmVnaXN0ZXIoY29ubmVjdG9yKTsKPiAgCj4gIAlpZiAoaGFzX2F1eCkKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92aXJ0dWFsLmMKPiBpbmRleCAxMjBkZDNiMjZmYzIuLjdl OWY3ZjFhYjFiMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vf dmlydHVhbC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwu Ywo+IEBAIC02MzksNyArNjM5LDcgQEAgc3RhdGljIGludCBkY2VfdmlydHVhbF9jb25uZWN0b3Jf ZW5jb2Rlcl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAJZHJtX2Nvbm5lY3Rv cl9pbml0KGFkZXYtPmRkZXYsIGNvbm5lY3RvciwgJmRjZV92aXJ0dWFsX2Nvbm5lY3Rvcl9mdW5j cywKPiAgCQkJICAgRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUwpOwo+ICAJZHJtX2Nvbm5lY3Rv cl9oZWxwZXJfYWRkKGNvbm5lY3RvciwgJmRjZV92aXJ0dWFsX2Nvbm5lY3Rvcl9oZWxwZXJfZnVu Y3MpOwo+IC0JY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhl bEhvcml6b250YWxSR0I7Cj4gKwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4 ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gIAljb25uZWN0b3ItPmludGVybGFj ZV9hbGxvd2VkID0gZmFsc2U7Cj4gIAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZh bHNlOwo+ICAJZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfY3J0Yy5jIGIvZHJpdmVy cy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2NydGMuYwo+IGluZGV4IGQ3MzI4MTA5 NWZhYy4uMmQxOGM4ZWYyMmEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1o bGNkYy9hdG1lbF9obGNkY19jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxj ZGMvYXRtZWxfaGxjZGNfY3J0Yy5jCj4gQEAgLTIzOCw3ICsyMzgsNyBAQCBzdGF0aWMgaW50IGF0 bWVsX2hsY2RjX2NydGNfc2VsZWN0X291dHB1dF9tb2RlKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq c3RhdGUpCj4gIAljcnRjID0gZHJtX2NydGNfdG9fYXRtZWxfaGxjZGNfY3J0YyhzdGF0ZS0+Y3J0 Yyk7Cj4gIAo+ICAJZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZS0+c3RhdGUs IGNvbm5lY3RvciwgY3N0YXRlLCBpKSB7Cj4gLQkJc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmlu Zm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4gKwkJc3RydWN0IGRybV9zdGF0aWNfZGlz cGxheV9pbmZvICppbmZvID0gJmNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mbzsKPiAgCQl1 bnNpZ25lZCBpbnQgc3VwcG9ydGVkX2ZtdHMgPSAwOwo+ICAJCWludCBqOwo+ICAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3NpaTkwMnguYwo+IGluZGV4IGIxYWI0YWIwOTUzMi4uYWJkMGJjZTljMzFlIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMKPiBAQCAtMTc0LDcgKzE3NCw3IEBAIHN0YXRpYyBp bnQgc2lpOTAyeF9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAg CQlrZnJlZShlZGlkKTsKPiAgCX0KPiAgCj4gLQlyZXQgPSBkcm1fZGlzcGxheV9pbmZvX3NldF9i dXNfZm9ybWF0cygmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8sCj4gKwlyZXQgPSBkcm1fZGlzcGxh eV9pbmZvX3NldF9idXNfZm9ybWF0cygmY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLAo+ ICAJCQkJCSAgICAgICAmYnVzX2Zvcm1hdCwgMSk7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiBy ZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjcuYyBiL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjcuYwo+IGluZGV4IDA4YWI3ZDZhZWE2NS4uMDQy ZGVkOWNhNzQ5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3Njcu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjcuYwo+IEBAIC0xMTkzLDcg KzExOTMsNyBAQCBzdGF0aWMgaW50IHRjX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSkKPiAgCWlmICh0Yy0+cGFuZWwpCj4gIAkJZHJtX3BhbmVsX2F0dGFjaCh0Yy0+cGFu ZWwsICZ0Yy0+Y29ubmVjdG9yKTsKPiAgCj4gLQlkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9y bWF0cygmdGMtPmNvbm5lY3Rvci5kaXNwbGF5X2luZm8sCj4gKwlkcm1fZGlzcGxheV9pbmZvX3Nl dF9idXNfZm9ybWF0cygmdGMtPmNvbm5lY3Rvci5zdGF0aWNfZGlzcGxheV9pbmZvLAo+ICAJCQkJ CSAmYnVzX2Zvcm1hdCwgMSk7Cj4gIAlkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIo JnRjLT5jb25uZWN0b3IsIHRjLT5icmlkZ2UuZW5jb2Rlcik7Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25u ZWN0b3IuYwo+IGluZGV4IGIzY2RlODk3Y2Q4MC4uZDczZTk3ZWQ3ZGZmIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2Nvbm5lY3Rvci5jCj4gQEAgLTIzNyw3ICsyMzcsNyBAQCBpbnQgZHJtX2Nvbm5lY3Rvcl9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAltdXRleF9pbml0KCZjb25uZWN0b3ItPm11 dGV4KTsKPiAgCWNvbm5lY3Rvci0+ZWRpZF9ibG9iX3B0ciA9IE5VTEw7Cj4gIAljb25uZWN0b3It PnN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfdW5rbm93bjsKPiAtCWNvbm5lY3Rvci0+ZGlzcGxh eV9pbmZvLnBhbmVsX29yaWVudGF0aW9uID0KPiArCWNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlf aW5mby5wYW5lbF9vcmllbnRhdGlvbiA9Cj4gIAkJRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05f VU5LTk9XTjsKPiAgCj4gIAlkcm1fY29ubmVjdG9yX2dldF9jbWRsaW5lX21vZGUoY29ubmVjdG9y KTsKPiBAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAlpZGFfc2ltcGxlX3JlbW92ZSgmZGV2LT5t b2RlX2NvbmZpZy5jb25uZWN0b3JfaWRhLAo+ICAJCQkgIGNvbm5lY3Rvci0+aW5kZXgpOwo+ICAK PiAtCWtmcmVlKGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mb3JtYXRzKTsKPiArCWtmcmVl KGNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mby5idXNfZm9ybWF0cyk7Cj4gIAlkcm1fbW9k ZV9vYmplY3RfdW5yZWdpc3RlcihkZXYsICZjb25uZWN0b3ItPmJhc2UpOwo+ICAJa2ZyZWUoY29u bmVjdG9yLT5uYW1lKTsKPiAgCWNvbm5lY3Rvci0+bmFtZSA9IE5VTEw7Cj4gQEAgLTY3NCw3ICs2 NzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCBkcm1fbGlua19z dGF0dXNfZW51bV9saXN0W10gPSB7Cj4gIAo+ICAvKioKPiAgICogZHJtX2Rpc3BsYXlfaW5mb19z ZXRfYnVzX2Zvcm1hdHMgLSBzZXQgdGhlIHN1cHBvcnRlZCBidXMgZm9ybWF0cwo+IC0gKiBAaW5m bzogZGlzcGxheSBpbmZvIHRvIHN0b3JlIGJ1cyBmb3JtYXRzIGluCj4gKyAqIEBpbmZvOiBmaXhl ZCBkaXNwbGF5IGluZm8gdG8gc3RvcmUgYnVzIGZvcm1hdHMgaW4KPiAgICogQGZvcm1hdHM6IGFy cmF5IGNvbnRhaW5pbmcgdGhlIHN1cHBvcnRlZCBidXMgZm9ybWF0cwo+ICAgKiBAbnVtX2Zvcm1h dHM6IHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgZm10cyBhcnJheQo+ICAgKgo+IEBAIC02 ODIsNyArNjgyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgZHJt X2xpbmtfc3RhdHVzX2VudW1fbGlzdFtdID0gewo+ICAgKiBTZWUgTUVESUFfQlVTX0ZNVF8qIGRl ZmluaXRpb25zIGluIGluY2x1ZGUvdWFwaS9saW51eC9tZWRpYS1idXMtZm9ybWF0LmggZm9yCj4g ICAqIGEgZnVsbCBsaXN0IG9mIGF2YWlsYWJsZSBmb3JtYXRzLgo+ICAgKi8KPiAtaW50IGRybV9k aXNwbGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZv LAo+ICtpbnQgZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoc3RydWN0IGRybV9zdGF0 aWNfZGlzcGxheV9pbmZvICppbmZvLAo+ICAJCQkJICAgICBjb25zdCB1MzIgKmZvcm1hdHMsCj4g IAkJCQkgICAgIHVuc2lnbmVkIGludCBudW1fZm9ybWF0cykKPiAgewo+IEBAIC0xNDYwLDcgKzE0 NjAsNyBAQCBpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0X3BhbmVsX29yaWVudGF0aW9uX3Byb3BlcnR5 KAo+ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Cj4g LQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5m bzsKPiArCXN0cnVjdCBkcm1fc3RhdGljX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZjb25uZWN0b3It PnN0YXRpY19kaXNwbGF5X2luZm87Cj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOwo+ICAJ aW50IG9yaWVudGF0aW9uX3F1aXJrOwo+ICAKPiBAQCAtMTYwMiw3ICsxNjAyLDcgQEAgaW50IGRy bV9tb2RlX2dldGNvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ ICAKPiAgCW91dF9yZXNwLT5tbV93aWR0aCA9IGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRo X21tOwo+ICAJb3V0X3Jlc3AtPm1tX2hlaWdodCA9IGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhl aWdodF9tbTsKPiAtCW91dF9yZXNwLT5zdWJwaXhlbCA9IGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZv LnN1YnBpeGVsX29yZGVyOwo+ICsJb3V0X3Jlc3AtPnN1YnBpeGVsID0gY29ubmVjdG9yLT5zdGF0 aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyOwo+ICAJb3V0X3Jlc3AtPmNvbm5lY3Rpb24g PSBjb25uZWN0b3ItPnN0YXR1czsKPiAgCj4gIAkvKiBkZWxheWVkIHNvIHdlIGdldCBtb2RlcyBy ZWdhcmRsZXNzIG9mIHByZS1maWxsX21vZGVzIHN0YXRlICovCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBl ci5jCj4gaW5kZXggMDM1Nzg0ZGRkMTMzLi4xOGNiNjNiMzBlMzMgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZmJfaGVscGVyLmMKPiBAQCAtMjQzMyw3ICsyNDMzLDcgQEAgc3RhdGljIHZvaWQgZHJtX3NldHVw X2NydGNfcm90YXRpb24oc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKPiAgCj4gIAlm Yl9jcnRjLT5yb3RhdGlvbiA9IERSTV9NT0RFX1JPVEFURV8wOwo+ICAKPiAtCXN3aXRjaCAoY29u bmVjdG9yLT5kaXNwbGF5X2luZm8ucGFuZWxfb3JpZW50YXRpb24pIHsKPiArCXN3aXRjaCAoY29u bmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnBhbmVsX29yaWVudGF0aW9uKSB7Cj4gIAljYXNl IERSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX0JPVFRPTV9VUDoKPiAgCQlyb3RhdGlvbiA9IERS TV9NT0RFX1JPVEFURV8xODA7Cj4gIAkJYnJlYWs7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1 L2ZzbF9kY3VfZHJtX2NydGMuYwo+IGluZGV4IDBlMzc1MjQzN2U0NC4uMjQ0NGMxNDYzOWVmIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2NydGMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2NydGMuYwo+IEBAIC05 OSw3ICs5OSw3IEBAIHN0YXRpYyB2b2lkIGZzbF9kY3VfZHJtX2NydGNfbW9kZV9zZXRfbm9mYihz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAl2c3cgPSBtb2RlLT52c3luY19lbmQgLSBtb2RlLT52 c3luY19zdGFydDsKPiAgCj4gIAkvKiBJTlZfUFhDSyBhcyBkZWZhdWx0IChtb3N0IGRpc3BsYXkg c2FtcGxlIGRhdGEgb24gcmlzaW5nIGVkZ2UpICovCj4gLQlpZiAoIShjb24tPmRpc3BsYXlfaW5m by5idXNfZmxhZ3MgJiBEUk1fQlVTX0ZMQUdfUElYREFUQV9QT1NFREdFKSkKPiArCWlmICghKGNv bi0+c3RhdGljX2Rpc3BsYXlfaW5mby5idXNfZmxhZ3MgJiBEUk1fQlVTX0ZMQUdfUElYREFUQV9Q T1NFREdFKSkKPiAgCQlwb2wgfD0gRENVX1NZTl9QT0xfSU5WX1BYQ0s7Cj4gIAo+ICAJaWYgKG1v ZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19OSFNZTkMpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAv Y2R2X2ludGVsX2hkbWkuYwo+IGluZGV4IDU2M2YxOTNmY2ZhYy4uNmQ2MDhjZTI2MDc2IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2hkbWkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2hkbWkuYwo+IEBAIC0zMjIsNyArMzIy LDcgQEAgdm9pZCBjZHZfaGRtaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlkcm1f ZW5jb2Rlcl9oZWxwZXJfYWRkKGVuY29kZXIsICZjZHZfaGRtaV9oZWxwZXJfZnVuY3MpOwo+ICAJ ZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKGNvbm5lY3RvciwKPiAgCQkJCSAmY2R2X2hkbWlfY29u bmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gLQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5zdWJwaXhl bF9vcmRlciA9IFN1YlBpeGVsSG9yaXpvbnRhbFJHQjsKPiArCWNvbm5lY3Rvci0+c3RhdGljX2Rp c3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlciA9IFN1YlBpeGVsSG9yaXpvbnRhbFJHQjsKPiAgCWNv bm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBmYWxzZTsKPiAgCWNvbm5lY3Rvci0+ZG91Ymxl c2Nhbl9hbGxvd2VkID0gZmFsc2U7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v Z21hNTAwL2Nkdl9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRl bF9sdmRzLmMKPiBpbmRleCBlNjQ5NjBkYjMyMjQuLjI5MDIyMWY3M2NiZiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9sdmRzLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9sdmRzLmMKPiBAQCAtNjM3LDcgKzYzNyw3IEBAIHZv aWQgY2R2X2ludGVsX2x2ZHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJZHJtX2Vu Y29kZXJfaGVscGVyX2FkZChlbmNvZGVyLCAmY2R2X2ludGVsX2x2ZHNfaGVscGVyX2Z1bmNzKTsK PiAgCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsCj4gIAkJCQkgJmNkdl9pbnRl bF9sdmRzX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+IC0JY29ubmVjdG9yLT5kaXNwbGF5X2lu Zm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gKwljb25uZWN0b3It PnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxS R0I7Cj4gIAljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gZmFsc2U7Cj4gIAljb25uZWN0 b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZhbHNlOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9kc2lfb3V0cHV0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZ21h NTAwL21kZmxkX2RzaV9vdXRwdXQuYwo+IGluZGV4IDQxZTdmMjViYTdlMC4uNjA1Yzg2ZGVkMTRm IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvbWRmbGRfZHNpX291dHB1dC5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9kc2lfb3V0cHV0LmMKPiBAQCAt NTU1LDcgKzU1NSw3IEBAIHZvaWQgbWRmbGRfZHNpX291dHB1dF9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gIAkJCQkJCURSTV9NT0RFX0NPTk5FQ1RPUl9MVkRTKTsKPiAgCWRybV9jb25u ZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsICZtZGZsZF9kc2lfY29ubmVjdG9yX2hlbHBlcl9m dW5jcyk7Cj4gIAo+IC0JY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBT dWJQaXhlbEhvcml6b250YWxSR0I7Cj4gKwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8u c3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gIAljb25uZWN0b3ItPmlu dGVybGFjZV9hbGxvd2VkID0gZmFsc2U7Cj4gIAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dl ZCA9IGZhbHNlOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9vYWt0 cmFpbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2hkbWkuYwo+IGlu ZGV4IDhiMmViMzJlZTk4OC4uYzRlMTZhYjI1ZDFhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9nbWE1MDAvb2FrdHJhaWxfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUw MC9vYWt0cmFpbF9oZG1pLmMKPiBAQCAtNjYxLDcgKzY2MSw3IEBAIHZvaWQgb2FrdHJhaWxfaGRt aV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlkcm1fZW5jb2Rlcl9oZWxwZXJfYWRk KGVuY29kZXIsICZvYWt0cmFpbF9oZG1pX2hlbHBlcl9mdW5jcyk7Cj4gIAlkcm1fY29ubmVjdG9y X2hlbHBlcl9hZGQoY29ubmVjdG9yLCAmb2FrdHJhaWxfaGRtaV9jb25uZWN0b3JfaGVscGVyX2Z1 bmNzKTsKPiAgCj4gLQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlciA9IFN1 YlBpeGVsSG9yaXpvbnRhbFJHQjsKPiArCWNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mby5z dWJwaXhlbF9vcmRlciA9IFN1YlBpeGVsSG9yaXpvbnRhbFJHQjsKPiAgCWNvbm5lY3Rvci0+aW50 ZXJsYWNlX2FsbG93ZWQgPSBmYWxzZTsKPiAgCWNvbm5lY3Rvci0+ZG91Ymxlc2Nhbl9hbGxvd2Vk ID0gZmFsc2U7Cj4gIAlkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfbHZkcy5jIGIvZHJpdmVycy9n cHUvZHJtL2dtYTUwMC9vYWt0cmFpbF9sdmRzLmMKPiBpbmRleCBlNjk0M2ZlZjA2MTEuLjRiOGQy YjZlNzIwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2x2 ZHMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfbHZkcy5jCj4gQEAg LTMzMSw3ICszMzEsNyBAQCB2b2lkIG9ha3RyYWlsX2x2ZHNfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICAJZHJtX2VuY29kZXJfaGVscGVyX2FkZChlbmNvZGVyLCAmb2FrdHJhaWxfbHZk c19oZWxwZXJfZnVuY3MpOwo+ICAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKGNvbm5lY3RvciwK PiAgCQkJCSAmcHNiX2ludGVsX2x2ZHNfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gLQljb25u ZWN0b3ItPmRpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlciA9IFN1YlBpeGVsSG9yaXpvbnRhbFJH QjsKPiArCWNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlciA9IFN1 YlBpeGVsSG9yaXpvbnRhbFJHQjsKPiAgCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBm YWxzZTsKPiAgCWNvbm5lY3Rvci0+ZG91Ymxlc2Nhbl9hbGxvd2VkID0gZmFsc2U7Cj4gIAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9sdmRzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9sdmRzLmMKPiBpbmRleCBiZTNlZWZlYzUxNTIu LmZlNDY2N2ViYTg1ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9p bnRlbF9sdmRzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9sdmRz LmMKPiBAQCAtNzA2LDcgKzcwNiw3IEBAIHZvaWQgcHNiX2ludGVsX2x2ZHNfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICAJZHJtX2VuY29kZXJfaGVscGVyX2FkZChlbmNvZGVyLCAmcHNi X2ludGVsX2x2ZHNfaGVscGVyX2Z1bmNzKTsKPiAgCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChj b25uZWN0b3IsCj4gIAkJCQkgJnBzYl9pbnRlbF9sdmRzX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3Mp Owo+IC0JY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhv cml6b250YWxSR0I7Cj4gKwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxf b3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gIAljb25uZWN0b3ItPmludGVybGFjZV9h bGxvd2VkID0gZmFsc2U7Cj4gIAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZhbHNl Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfc2R2 by5jIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfc2R2by5jCj4gaW5kZXggODQ1 MDc5MTJiZTg0Li4zYjMxZGRlNGMwNWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dt YTUwMC9wc2JfaW50ZWxfc2R2by5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2Jf aW50ZWxfc2R2by5jCj4gQEAgLTIwMTYsNyArMjAxNiw3IEBAIHBzYl9pbnRlbF9zZHZvX2Nvbm5l Y3Rvcl9pbml0KHN0cnVjdCBwc2JfaW50ZWxfc2R2b19jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAg Cj4gIAljb25uZWN0b3ItPmJhc2UuYmFzZS5pbnRlcmxhY2VfYWxsb3dlZCA9IDA7Cj4gIAljb25u ZWN0b3ItPmJhc2UuYmFzZS5kb3VibGVzY2FuX2FsbG93ZWQgPSAwOwo+IC0JY29ubmVjdG9yLT5i YXNlLmJhc2UuZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFs UkdCOwo+ICsJY29ubmVjdG9yLT5iYXNlLmJhc2Uuc3RhdGljX2Rpc3BsYXlfaW5mby5zdWJwaXhl bF9vcmRlciA9IFN1YlBpeGVsSG9yaXpvbnRhbFJHQjsKPiAgCj4gIAljb25uZWN0b3ItPmJhc2Uu c2F2ZSA9IHBzYl9pbnRlbF9zZHZvX3NhdmU7Cj4gIAljb25uZWN0b3ItPmJhc2UucmVzdG9yZSA9 IHBzYl9pbnRlbF9zZHZvX3Jlc3RvcmU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK PiBpbmRleCAzM2ZiZjM5NjUzMDkuLmVkMzZiNGU2ZTRhZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCj4gQEAgLTI5NzIsNyArMjk3Miw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2Nvbm5lY3Rvcl9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKPiAgCQkJICAgY29ubmVjdG9yLT5k aXNwbGF5X2luZm8ud2lkdGhfbW0sCj4gIAkJCSAgIGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhl aWdodF9tbSk7Cj4gIAkJc2VxX3ByaW50ZihtLCAiXHRzdWJwaXhlbCBvcmRlcjogJXNcbiIsCj4g LQkJCSAgIGRybV9nZXRfc3VicGl4ZWxfb3JkZXJfbmFtZShjb25uZWN0b3ItPmRpc3BsYXlfaW5m by5zdWJwaXhlbF9vcmRlcikpOwo+ICsJCQkgICBkcm1fZ2V0X3N1YnBpeGVsX29yZGVyX25hbWUo Y29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyKSk7Cj4gIAkJc2Vx X3ByaW50ZihtLCAiXHRDRUEgcmV2OiAlZFxuIiwKPiAgCQkJICAgY29ubmVjdG9yLT5kaXNwbGF5 X2luZm8uY2VhX3Jldik7Cj4gIAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBpbmRleCBj OGNmM2Q1Yzc3ODMuLjNlYWY5YmI4NDk4ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5j Cj4gQEAgLTE3MDIsNyArMTcwMiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9hZGRfcHJvcGVy dGllcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAo+ICAJCWNvbm5lY3Rv ci0+YmFzZS5zdGF0ZS0+c2NhbGluZ19tb2RlID0gRFJNX01PREVfU0NBTEVfQVNQRUNUOwo+ICAK PiAtCQljb25uZWN0b3ItPmJhc2UuZGlzcGxheV9pbmZvLnBhbmVsX29yaWVudGF0aW9uID0KPiAr CQljb25uZWN0b3ItPmJhc2Uuc3RhdGljX2Rpc3BsYXlfaW5mby5wYW5lbF9vcmllbnRhdGlvbiA9 Cj4gIAkJCWludGVsX2RzaV9nZXRfcGFuZWxfb3JpZW50YXRpb24oY29ubmVjdG9yKTsKPiAgCQlk cm1fY29ubmVjdG9yX2luaXRfcGFuZWxfb3JpZW50YXRpb25fcHJvcGVydHkoCj4gIAkJCQkmY29u bmVjdG9yLT5iYXNlLAo+IEBAIC0xODI2LDcgKzE4MjYsNyBAQCB2b2lkIGludGVsX2RzaV9pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCj4gIAlkcm1fY29ubmVjdG9y X2hlbHBlcl9hZGQoY29ubmVjdG9yLCAmaW50ZWxfZHNpX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3Mp Owo+ICAKPiAtCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4 ZWxIb3Jpem9udGFsUkdCOyAvKlhYWCovCj4gKwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2lu Zm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7IC8qWFhYKi8KPiAgCWNv bm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBmYWxzZTsKPiAgCWNvbm5lY3Rvci0+ZG91Ymxl c2Nhbl9hbGxvd2VkID0gZmFsc2U7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jCj4gaW5k ZXggZWIwYzU1OWIyNzE1Li42OGZlNDU4NzQ0MWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHZvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k dm8uYwo+IEBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBpbnRlbF9kdm9faW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICAJCWRybV9jb25uZWN0b3JfaGVscGVyX2Fk ZChjb25uZWN0b3IsCj4gIAkJCQkJICZpbnRlbF9kdm9fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7 Cj4gLQkJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhv cml6b250YWxSR0I7Cj4gKwkJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVs X29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwo+ICAJCWNvbm5lY3Rvci0+aW50ZXJsYWNl X2FsbG93ZWQgPSBmYWxzZTsKPiAgCQljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZh bHNlOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gaW5kZXggY2RhZTQ5MzRiODg1 Li5jMzVmODQ2NDJjNzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHZkcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gQEAgLTEw NTAsNyArMTA1MCw3IEBAIHZvaWQgaW50ZWxfbHZkc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgCQlpbnRlbF9lbmNvZGVyLT5jcnRjX21hc2sgPSAoMSA8PCAxKTsK PiAgCj4gIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9yLCAmaW50ZWxfbHZkc19j b25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKPiAtCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBp eGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwo+ICsJY29ubmVjdG9yLT5zdGF0aWNf ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwo+ICAJ Y29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9IGZhbHNlOwo+ICAJY29ubmVjdG9yLT5kb3Vi bGVzY2FuX2FsbG93ZWQgPSBmYWxzZTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+ IGluZGV4IDBjMTRkMWMwNGNiZC4uNjMwOWExZDlmODdlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nkdm8uYwo+IEBAIC0yNDQwLDcgKzI0NDAsNyBAQCBpbnRlbF9zZHZvX2Nvbm5lY3Rvcl9p bml0KHN0cnVjdCBpbnRlbF9zZHZvX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAKPiAgCWNvbm5l Y3Rvci0+YmFzZS5iYXNlLmludGVybGFjZV9hbGxvd2VkID0gMTsKPiAgCWNvbm5lY3Rvci0+YmFz ZS5iYXNlLmRvdWJsZXNjYW5fYWxsb3dlZCA9IDA7Cj4gLQljb25uZWN0b3ItPmJhc2UuYmFzZS5k aXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gKwlj b25uZWN0b3ItPmJhc2UuYmFzZS5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0g U3ViUGl4ZWxIb3Jpem9udGFsUkdCOwo+ICAJY29ubmVjdG9yLT5iYXNlLmdldF9od19zdGF0ZSA9 IGludGVsX3Nkdm9fY29ubmVjdG9yX2dldF9od19zdGF0ZTsKPiAgCj4gIAlpbnRlbF9jb25uZWN0 b3JfYXR0YWNoX2VuY29kZXIoJmNvbm5lY3Rvci0+YmFzZSwgJmVuY29kZXItPmJhc2UpOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pbXgvaW14LWxkYi5jCj4gaW5kZXggNTZkZDdhOWE4ZTI1Li40OTA5ZmU4OWUxNjcgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaW14L2lteC1sZGIuYwo+IEBAIC0yOTksNyArMjk5LDcgQEAgaW14X2xkYl9lbmNvZGVy X2F0b21pY19tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAo+ICAJaWYg KCFidXNfZm9ybWF0KSB7Cj4gIAkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNv bm5lY3Rvcl9zdGF0ZS0+Y29ubmVjdG9yOwo+IC0JCXN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICpk aSA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKPiArCQlzdHJ1Y3QgZHJtX3N0YXRpY19kaXNw bGF5X2luZm8gKmRpID0gJmNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mbzsKPiAgCj4gIAkJ aWYgKGRpLT5udW1fYnVzX2Zvcm1hdHMpCj4gIAkJCWJ1c19mb3JtYXQgPSBkaS0+YnVzX2Zvcm1h dHNbMF07Cj4gQEAgLTM1OCw3ICszNTgsNyBAQCBzdGF0aWMgaW50IGlteF9sZGJfZW5jb2Rlcl9h dG9taWNfY2hlY2soc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICB7Cj4gIAlzdHJ1Y3Qg aW14X2NydGNfc3RhdGUgKmlteF9jcnRjX3N0YXRlID0gdG9faW14X2NydGNfc3RhdGUoY3J0Y19z dGF0ZSk7Cj4gIAlzdHJ1Y3QgaW14X2xkYl9jaGFubmVsICppbXhfbGRiX2NoID0gZW5jX3RvX2lt eF9sZGJfY2goZW5jb2Rlcik7Cj4gLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqZGkgPSAmY29u bl9zdGF0ZS0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4gKwlzdHJ1Y3QgZHJtX3N0YXRpY19k aXNwbGF5X2luZm8gKmRpID0gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlf aW5mbzsKPiAgCXUzMiBidXNfZm9ybWF0ID0gaW14X2xkYl9jaC0+YnVzX2Zvcm1hdDsKPiAgCj4g IAkvKiBCdXMgZm9ybWF0IGRlc2NyaXB0aW9uIGluIERUIG92ZXJyaWRlcyBjb25uZWN0b3IgZGlz cGxheSBpbmZvLiAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVs LWRpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gaW5k ZXggYWVkZWNkYTk3MjhhLi4yYWE4MDQ4NGEzOWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L3Bh cmFsbGVsLWRpc3BsYXkuYwo+IEBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIGludCBpbXhfcGRf ZW5jb2Rlcl9hdG9taWNfY2hlY2soc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJ ICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlz dHJ1Y3QgaW14X2NydGNfc3RhdGUgKmlteF9jcnRjX3N0YXRlID0gdG9faW14X2NydGNfc3RhdGUo Y3J0Y19zdGF0ZSk7Cj4gLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqZGkgPSAmY29ubl9zdGF0 ZS0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4gKwlzdHJ1Y3QgZHJtX3N0YXRpY19kaXNwbGF5 X2luZm8gKmRpID0gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mbzsK PiAgCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNfdG9faW14cGQoZW5j b2Rlcik7Cj4gIAo+ICAJaWYgKCFpbXhwZC0+YnVzX2Zvcm1hdCAmJiBkaS0+bnVtX2J1c19mb3Jt YXRzKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9jcnRjLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfY3J0Yy5jCj4gaW5kZXggMGFiZTc3Njc1Yjc2 Li4wNDI5MDA2Mjg4ZDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2Zi X2NydGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9jcnRjLmMKPiBAQCAt MTAxLDggKzEwMSw4IEBAIHN0YXRpYyB2b2lkIG14c2ZiX3NldF9idXNfZm10KHN0cnVjdCBteHNm Yl9kcm1fcHJpdmF0ZSAqbXhzZmIpCj4gIAo+ICAJcmVnID0gcmVhZGwobXhzZmItPmJhc2UgKyBM Q0RDX0NUUkwpOwo+ICAKPiAtCWlmIChteHNmYi0+Y29ubmVjdG9yLmRpc3BsYXlfaW5mby5udW1f YnVzX2Zvcm1hdHMpCj4gLQkJYnVzX2Zvcm1hdCA9IG14c2ZiLT5jb25uZWN0b3IuZGlzcGxheV9p bmZvLmJ1c19mb3JtYXRzWzBdOwo+ICsJaWYgKG14c2ZiLT5jb25uZWN0b3Iuc3RhdGljX2Rpc3Bs YXlfaW5mby5udW1fYnVzX2Zvcm1hdHMpCj4gKwkJYnVzX2Zvcm1hdCA9IG14c2ZiLT5jb25uZWN0 b3Iuc3RhdGljX2Rpc3BsYXlfaW5mby5idXNfZm9ybWF0c1swXTsKPiAgCj4gIAlyZWcgJj0gfkNU UkxfQlVTX1dJRFRIX01BU0s7Cj4gIAlzd2l0Y2ggKGJ1c19mb3JtYXQpIHsKPiBAQCAtMTk5LDcg KzE5OSw3IEBAIHN0YXRpYyBpbnQgbXhzZmJfcmVzZXRfYmxvY2sodm9pZCBfX2lvbWVtICpyZXNl dF9hZGRyKQo+ICBzdGF0aWMgdm9pZCBteHNmYl9jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IG14 c2ZiX2RybV9wcml2YXRlICpteHNmYikKPiAgewo+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km0gPSAmbXhzZmItPnBpcGUuY3J0Yy5zdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKPiAtCWNvbnN0IHUz MiBidXNfZmxhZ3MgPSBteHNmYi0+Y29ubmVjdG9yLmRpc3BsYXlfaW5mby5idXNfZmxhZ3M7Cj4g Kwljb25zdCB1MzIgYnVzX2ZsYWdzID0gbXhzZmItPmNvbm5lY3Rvci5zdGF0aWNfZGlzcGxheV9p bmZvLmJ1c19mbGFnczsKPiAgCXUzMiB2ZGN0cmwwLCB2c3luY19wdWxzZV9sZW4sIGhzeW5jX3B1 bHNlX2xlbjsKPiAgCWludCBlcnI7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LWFybS12ZXJzYXRpbGUuYwo+IGluZGV4IGI0MjhjNDY3ODEwNi4uMjU5NThiYzRjNWNhIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jCj4gQEAgLTI2 OCw3ICsyNjgsNyBAQCBzdGF0aWMgaW50IHZlcnNhdGlsZV9wYW5lbF9nZXRfbW9kZXMoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwpCj4gIAkJRFJNX0RJU1BMQVlfSU5GT19MRU4pOwo+ICAJY29ubmVj dG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSB2cGFuZWwtPnBhbmVsX3R5cGUtPndpZHRoX21t Owo+ICAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gdnBhbmVsLT5wYW5lbF90 eXBlLT5oZWlnaHRfbW07Cj4gLQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgPSB2 cGFuZWwtPnBhbmVsX3R5cGUtPmJ1c19mbGFnczsKPiArCWNvbm5lY3Rvci0+c3RhdGljX2Rpc3Bs YXlfaW5mby5idXNfZmxhZ3MgPSB2cGFuZWwtPnBhbmVsX3R5cGUtPmJ1c19mbGFnczsKPiAgCj4g IAltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ2cGFuZWwtPnBhbmVsX3R5 cGUtPm1vZGUpOwo+ICAJZHJtX21vZGVfc2V0X25hbWUobW9kZSk7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTMyMi5jIGIvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5MzIyLmMKPiBpbmRleCBiNGVjMGVjZmY4MDcuLjFi YTg5Mzk0MmEyYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxp dGVrLWlsaTkzMjIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWst aWxpOTMyMi5jCj4gQEAgLTQxMSwxOSArNDExLDE5IEBAIHN0YXRpYyBpbnQgaWxpOTMyMl9pbml0 KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLCBzdHJ1Y3QgaWxpOTMyMiAqaWxpKQo+ICAJICovCj4g IAlpZiAoaWxpLT5jb25mLT5kY2xrX2FjdGl2ZV9oaWdoKSB7Cj4gIAkJcmVnID0gSUxJOTMyMl9Q T0xfRENMSzsKPiAtCQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgfD0KPiArCQlj b25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uYnVzX2ZsYWdzIHw9Cj4gIAkJCURSTV9CVVNf RkxBR19QSVhEQVRBX1BPU0VER0U7Cj4gIAl9IGVsc2Ugewo+ICAJCXJlZyA9IDA7Cj4gLQkJY29u bmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzIHw9Cj4gKwkJY29ubmVjdG9yLT5zdGF0aWNf ZGlzcGxheV9pbmZvLmJ1c19mbGFncyB8PQo+ICAJCQlEUk1fQlVTX0ZMQUdfUElYREFUQV9ORUdF REdFOwo+ICAJfQo+ICAJaWYgKGlsaS0+Y29uZi0+ZGVfYWN0aXZlX2hpZ2gpIHsKPiAgCQlyZWcg fD0gSUxJOTMyMl9QT0xfREU7Cj4gLQkJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdz IHw9Cj4gKwkJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLmJ1c19mbGFncyB8PQo+ICAJ CQlEUk1fQlVTX0ZMQUdfREVfSElHSDsKPiAgCX0gZWxzZSB7Cj4gLQkJY29ubmVjdG9yLT5kaXNw bGF5X2luZm8uYnVzX2ZsYWdzIHw9Cj4gKwkJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZv LmJ1c19mbGFncyB8PQo+ICAJCQlEUk1fQlVTX0ZMQUdfREVfTE9XOwo+ICAJfQo+ICAJaWYgKGls aS0+Y29uZi0+aHN5bmNfYWN0aXZlX2hpZ2gpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5j Cj4gaW5kZXggYjVlMzk5NGYwYWE4Li5iNTIwOTU2NjZiZGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1sdmRzLmMKPiBAQCAtMTI3LDkgKzEyNyw5IEBAIHN0YXRpYyBpbnQgcGFuZWxfbHZk c19nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4gIAo+ICAJY29ubmVjdG9yLT5k aXNwbGF5X2luZm8ud2lkdGhfbW0gPSBsdmRzLT53aWR0aDsKPiAgCWNvbm5lY3Rvci0+ZGlzcGxh eV9pbmZvLmhlaWdodF9tbSA9IGx2ZHMtPmhlaWdodDsKPiAtCWRybV9kaXNwbGF5X2luZm9fc2V0 X2J1c19mb3JtYXRzKCZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbywKPiArCWRybV9kaXNwbGF5X2lu Zm9fc2V0X2J1c19mb3JtYXRzKCZjb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8sCj4gIAkJ CQkJICZsdmRzLT5idXNfZm9ybWF0LCAxKTsKPiAtCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1 c19mbGFncyA9IGx2ZHMtPmRhdGFfbWlycm9yCj4gKwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5 X2luZm8uYnVzX2ZsYWdzID0gbHZkcy0+ZGF0YV9taXJyb3IKPiAgCQkJCQkgID8gRFJNX0JVU19G TEFHX0RBVEFfTFNCX1RPX01TQgo+ICAJCQkJCSAgOiBEUk1fQlVTX0ZMQUdfREFUQV9NU0JfVE9f TFNCOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3Bi ZXJyeXBpLXRvdWNoc2NyZWVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmFzcGJl cnJ5cGktdG91Y2hzY3JlZW4uYwo+IGluZGV4IGQ5NjRkNDU0ZTRhZS4uOTUyNjQ2MWMwZWIzIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXNwYmVycnlwaS10b3Vj aHNjcmVlbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBp LXRvdWNoc2NyZWVuLmMKPiBAQCAtMzU2LDcgKzM1Niw3IEBAIHN0YXRpYyBpbnQgcnBpX3RvdWNo c2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKPiAgCWNvbm5lY3Rvci0+ ZGlzcGxheV9pbmZvLmJwYyA9IDg7Cj4gIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9t bSA9IDE1NDsKPiAgCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IDg2Owo+IC0J ZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZv LAo+ICsJZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJmNvbm5lY3Rvci0+c3RhdGlj X2Rpc3BsYXlfaW5mbywKPiAgCQkJCQkgJmJ1c19mb3JtYXQsIDEpOwo+ICAKPiAgCXJldHVybiBu dW07Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zZWlrby00M3d2 ZjFnLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jCj4gaW5k ZXggNzFjMDllZDQzNmFlLi5mZmE5ZDFiNmY4NjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLXNlaWtvLTQzd3ZmMWcuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1zZWlrby00M3d2ZjFnLmMKPiBAQCAtMTE1LDkgKzExNSw5IEBAIHN0YXRpYyBp bnQgc2Vpa29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBzZWlrb19wYW5lbCAqcGFuZWwp Cj4gIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IHBhbmVsLT5kZXNjLT5zaXpl LndpZHRoOwo+ICAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gcGFuZWwtPmRl c2MtPnNpemUuaGVpZ2h0Owo+ICAJaWYgKHBhbmVsLT5kZXNjLT5idXNfZm9ybWF0KQo+IC0JCWRy bV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKCZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbywK PiArCQlkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cygmY29ubmVjdG9yLT5zdGF0aWNf ZGlzcGxheV9pbmZvLAo+ICAJCQkJCQkgJnBhbmVsLT5kZXNjLT5idXNfZm9ybWF0LCAxKTsKPiAt CWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mbGFncyA9IHBhbmVsLT5kZXNjLT5idXNfZmxh Z3M7Cj4gKwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gcGFuZWwt PmRlc2MtPmJ1c19mbGFnczsKPiAgCj4gIAlyZXR1cm4gbnVtOwo+ICB9Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1zaW1wbGUuYwo+IGluZGV4IDU1OTE5ODRhMzkyYi4uYmEzZjg1YjczMzhmIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwo+IEBAIC0xNTIsOSArMTUyLDkg QEAgc3RhdGljIGludCBwYW5lbF9zaW1wbGVfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBwYW5lbF9z aW1wbGUgKnBhbmVsKQo+ICAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBwYW5l bC0+ZGVzYy0+c2l6ZS53aWR0aDsKPiAgCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9t bSA9IHBhbmVsLT5kZXNjLT5zaXplLmhlaWdodDsKPiAgCWlmIChwYW5lbC0+ZGVzYy0+YnVzX2Zv cm1hdCkKPiAtCQlkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cygmY29ubmVjdG9yLT5k aXNwbGF5X2luZm8sCj4gKwkJZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJmNvbm5l Y3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mbywKPiAgCQkJCQkJICZwYW5lbC0+ZGVzYy0+YnVzX2Zv cm1hdCwgMSk7Cj4gLQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgPSBwYW5lbC0+ ZGVzYy0+YnVzX2ZsYWdzOwo+ICsJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLmJ1c19m bGFncyA9IHBhbmVsLT5kZXNjLT5idXNfZmxhZ3M7Cj4gIAo+ICAJcmV0dXJuIG51bTsKPiAgfQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL3BsMTExL3BsMTExX2Rpc3BsYXkuYwo+IGluZGV4IDViODM2OGM3NjczNC4u YWZmZDA1MGVlNDA5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9k aXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZGlzcGxheS5jCj4g QEAgLTE0OCwxMCArMTQ4LDEwIEBAIHN0YXRpYyB2b2lkIHBsMTExX2Rpc3BsYXlfZW5hYmxlKHN0 cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKPiAgCQl0aW0yIHw9IFRJTTJfSVZT Owo+ICAKPiAgCWlmIChjb25uZWN0b3IpIHsKPiAtCQlpZiAoY29ubmVjdG9yLT5kaXNwbGF5X2lu Zm8uYnVzX2ZsYWdzICYgRFJNX0JVU19GTEFHX0RFX0xPVykKPiArCQlpZiAoY29ubmVjdG9yLT5z dGF0aWNfZGlzcGxheV9pbmZvLmJ1c19mbGFncyAmIERSTV9CVVNfRkxBR19ERV9MT1cpCj4gIAkJ CXRpbTIgfD0gVElNMl9JT0U7Cj4gIAo+IC0JCWlmIChjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5i dXNfZmxhZ3MgJgo+ICsJCWlmIChjb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uYnVzX2Zs YWdzICYKPiAgCQkgICAgRFJNX0JVU19GTEFHX1BJWERBVEFfTkVHRURHRSkKPiAgCQkJdGltMiB8 PSBUSU0yX0lQQzsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fY29ubmVjdG9ycy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVj dG9ycy5jCj4gaW5kZXggMmUyY2EzYzZiNDdkLi5jOGEwZjg1NmY4NGUgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jCj4gQEAgLTIzNjMsNyArMjM2Myw3 IEBAIHJhZGVvbl9hZGRfYXRvbV9jb25uZWN0b3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg CX0gZWxzZQo+ICAJCWNvbm5lY3Rvci0+cG9sbGVkID0gRFJNX0NPTk5FQ1RPUl9QT0xMX0hQRDsK PiAgCj4gLQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlciA9IHN1YnBpeGVs X29yZGVyOwo+ICsJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVy ID0gc3VicGl4ZWxfb3JkZXI7Cj4gIAlkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKGNvbm5lY3Rvcik7 Cj4gIAo+ICAJaWYgKGhhc19hdXgpCj4gQEAgLTI1MjYsNyArMjUyNiw3IEBAIHJhZGVvbl9hZGRf bGVnYWN5X2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJfSBlbHNlCj4gIAkJ Y29ubmVjdG9yLT5wb2xsZWQgPSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOwo+ICAKPiAtCWNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gc3VicGl4ZWxfb3JkZXI7Cj4gKwlj b25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBzdWJwaXhlbF9v cmRlcjsKPiAgCWRybV9jb25uZWN0b3JfcmVnaXN0ZXIoY29ubmVjdG9yKTsKPiAgfQo+ICAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9lbmNvZGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2VuY29kZXIuYwo+IGluZGV4IGJhOGQyODA0 YzFkMS4uNzI3MjNhODBiMWUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1 L3JjYXJfZHVfZW5jb2Rlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9k dV9lbmNvZGVyLmMKPiBAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyB2b2lkIHJjYXJfZHVfZW5j b2Rlcl9tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgcmNh cl9kdV9lbmNvZGVyICpyZW5jID0gdG9fcmNhcl9lbmNvZGVyKGVuY29kZXIpOwo+IC0Jc3RydWN0 IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubl9zdGF0ZS0+Y29ubmVjdG9yLT5kaXNwbGF5 X2luZm87Cj4gKwlzdHJ1Y3QgZHJtX3N0YXRpY19kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubl9z dGF0ZS0+Y29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvOwo+ICAJZW51bSByY2FyX2x2ZHNf bW9kZSBtb2RlOwo+ICAKPiAgCXJjYXJfZHVfY3J0Y19yb3V0ZV9vdXRwdXQoY3J0Y19zdGF0ZS0+ Y3J0YywgcmVuYy0+b3V0cHV0KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRp L3N1bjRpX3Rjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV90Y29uLmMKPiBpbmRl eCAxZDcxNGMwNmVjOWQuLmQyMGE4NzZiYTRjNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vc3VuNGkvc3VuNGlfdGNvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRp X3Rjb24uYwo+IEBAIC01NSwxMyArNTUsMTMgQEAgc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9y ICpzdW40aV90Y29uX2dldF9jb25uZWN0b3IoY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyICoKPiAg c3RhdGljIGludCBzdW40aV90Y29uX2dldF9waXhlbF9kZXB0aChjb25zdCBzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7 Cj4gLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbzsKPiArCXN0cnVjdCBkcm1fc3RhdGlj X2Rpc3BsYXlfaW5mbyAqaW5mbzsKPiAgCj4gIAljb25uZWN0b3IgPSBzdW40aV90Y29uX2dldF9j b25uZWN0b3IoZW5jb2Rlcik7Cj4gIAlpZiAoIWNvbm5lY3RvcikKPiAgCQlyZXR1cm4gLUVJTlZB TDsKPiAgCj4gLQlpbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ICsJaW5mbyA9ICZj b25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm87Cj4gIAlpZiAoaW5mby0+bnVtX2J1c19mb3Jt YXRzICE9IDEpCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdHZlMjAwL3R2ZTIwMF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHZlMjAw L3R2ZTIwMF9kaXNwbGF5LmMKPiBpbmRleCBkYjM5N2ZjYjM0NWEuLmFhODA1ZTJiYzBmZSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL3R2ZTIwMF9kaXNwbGF5LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL3R2ZTIwMF9kaXNwbGF5LmMKPiBAQCAtMTQ4LDcgKzE0 OCw3IEBAIHN0YXRpYyB2b2lkIHR2ZTIwMF9kaXNwbGF5X2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBs ZV9kaXNwbGF5X3BpcGUgKnBpcGUsCj4gIAkvKiBWc3luYyBJUlEgYXQgc3RhcnQgb2YgVnN5bmMg YXQgZmlyc3QgKi8KPiAgCWN0cmwxIHw9IFRWRTIwMF9WU1RTVFlQRV9WU1lOQzsKPiAgCj4gLQlp ZiAoY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzICYgRFJNX0JVU19GTEFHX1BJWERB VEFfTkVHRURHRSkKPiArCWlmIChjb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uYnVzX2Zs YWdzICYgRFJNX0JVU19GTEFHX1BJWERBVEFfTkVHRURHRSkKPiAgCQljdHJsMSB8PSBUVkUyMDBf Q1RSTF9UVkNMS1A7Cj4gIAo+ICAJaWYgKChtb2RlLT5oZGlzcGxheSA9PSAzNTIgJiYgbW9kZS0+ dmRpc3BsYXkgPT0gMjQwKSB8fCAvKiBTSUYoNTI1KSAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdmM0L3ZjNF9kcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jCj4g aW5kZXggNzJjOWRiZDgxZDdmLi5hNzU3YTI2NzAzNTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfZHBpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcGku Ywo+IEBAIC0xNzAsOCArMTcwLDggQEAgc3RhdGljIHZvaWQgdmM0X2RwaV9lbmNvZGVyX2VuYWJs ZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIAl1MzIgZHBpX2MgPSBEUElfRU5BQkxF IHwgRFBJX09VVFBVVF9FTkFCTEVfTU9ERTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JaWYgKGRwaS0+ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8ubnVtX2J1c19mb3JtYXRzKSB7Cj4gLQkJdTMyIGJ1c19m b3JtYXQgPSBkcGktPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mb3JtYXRzWzBdOwo+ICsJ aWYgKGRwaS0+Y29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLm51bV9idXNfZm9ybWF0cykg ewo+ICsJCXUzMiBidXNfZm9ybWF0ID0gZHBpLT5jb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2lu Zm8uYnVzX2Zvcm1hdHNbMF07Cj4gIAo+ICAJCXN3aXRjaCAoYnVzX2Zvcm1hdCkgewo+ICAJCWNh c2UgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDoKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5kZXggNjc1 Y2MzZjhjZjg1Li5hYWQzMjU4ZmFjZjIgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gQEAgLTE3Nyw3 ICsxNzcsNyBAQCBlbnVtIGRybV9saW5rX3N0YXR1cyB7Cj4gIH07Cj4gIAo+ICAvKioKPiAtICog ZW51bSBkcm1fcGFuZWxfb3JpZW50YXRpb24gLSBwYW5lbF9vcmllbnRhdGlvbiBpbmZvIGZvciAm ZHJtX2Rpc3BsYXlfaW5mbwo+ICsgKiBlbnVtIGRybV9wYW5lbF9vcmllbnRhdGlvbiAtIHBhbmVs X29yaWVudGF0aW9uIGluZm8gZm9yICZkcm1fc3RhdGljX2Rpc3BsYXlfaW5mbwo+ICAgKgo+ICAg KiBUaGlzIGVudW0gaXMgdXNlZCB0byB0cmFjayB0aGUgKExDRCkgcGFuZWwgb3JpZW50YXRpb24u IFRoZXJlIGFyZSBubwo+ICAgKiBzZXBhcmF0ZSAjZGVmaW5lcyBmb3IgdGhlIHVhcGkhCj4gQEAg LTIwNiwxNCArMjA2LDY3IEBAIGVudW0gZHJtX3BhbmVsX29yaWVudGF0aW9uIHsKPiAgfTsKPiAg Cj4gIC8qKgo+IC0gKiBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAtIHJ1bnRpbWUgZGF0YSBhYm91 dCB0aGUgY29ubmVjdGVkIHNpbmsKPiArICogc3RydWN0IGRybV9zdGF0aWNfZGlzcGxheV9pbmZv IC0gZGF0YSBhYm91dCB0aGUgY29ubmVjdGVkIHNpbmsKPiArICoKPiArICogU3RhdGljIGRhdGEg KGFzIGluIG5vdCBwYXJzZWQgZnJvbSBFRElEKSBhYm91dCB0aGUgY29ubmVjdGVkIHNpbmsuCj4g KyAqIFRoaXMgd2lsbCBub3QgYmUgcmVzZXQgb25jZSBzZXQsIHNvIGRyaXZlcnMgY2FuIHNhZmVs eSBwb3B1bGF0ZSB0aGlzCj4gKyAqIGF0IGNvbm5lY3RvciBpbml0IHRpbWUuIFRoZXkgY2FuIGFs c28gYWRqdXN0IGl0IGR5bmFtaWNhbGx5IGFzIGxvbmcKPiArICogYXMgdGhlIGRvbid0IGxlYXZl IHN0YWxlIGdhcmJhZ2UgYmVoaW5kLgo+ICsgKi8KPiArc3RydWN0IGRybV9zdGF0aWNfZGlzcGxh eV9pbmZvIHsKPiArCS8qKgo+ICsJICogQHN1YnBpeGVsX29yZGVyOiBTdWJwaXhlbCBvcmRlciBv ZiBMQ0QgcGFuZWxzLgo+ICsJICovCj4gKwllbnVtIHN1YnBpeGVsX29yZGVyIHN1YnBpeGVsX29y ZGVyOwo+ICsKPiArCS8qKgo+ICsJICogQHBhbmVsX29yaWVudGF0aW9uOiBSZWFkIG9ubHkgY29u bmVjdG9yIHByb3BlcnR5IGZvciBidWlsdC1pbiBwYW5lbHMsCj4gKwkgKiBpbmRpY2F0aW5nIHRo ZSBvcmllbnRhdGlvbiBvZiB0aGUgcGFuZWwgdnMgdGhlIGRldmljZSdzIGNhc2luZy4KPiArCSAq IGRybV9jb25uZWN0b3JfaW5pdCgpIHNldHMgdGhpcyB0byBEUk1fTU9ERV9QQU5FTF9PUklFTlRB VElPTl9VTktOT1dOLgo+ICsJICogV2hlbiBub3QgVU5LTk9XTiB0aGlzIGdldHMgdXNlZCBieSB0 aGUgZHJtX2ZiX2hlbHBlcnMgdG8gcm90YXRlIHRoZQo+ICsJICogZmIgdG8gY29tcGVuc2F0ZSBh bmQgZ2V0cyBleHBvcnRlZCBhcyBwcm9wIHRvIHVzZXJzcGFjZS4KPiArCSAqLwo+ICsJaW50IHBh bmVsX29yaWVudGF0aW9uOwo+ICsKPiArCS8qKgo+ICsJICogQGJ1c19mb3JtYXRzOiBQaXhlbCBk YXRhIGZvcm1hdCBvbiB0aGUgd2lyZSwgc29tZXdoYXQgcmVkdW5kYW50IHdpdGgKPiArCSAqIEBj b2xvcl9mb3JtYXRzLiBBcnJheSBvZiBzaXplIEBudW1fYnVzX2Zvcm1hdHMgZW5jb2RlZCB1c2lu Zwo+ICsJICogTUVESUFfQlVTX0ZNVFxfIGRlZmluZXMgc2hhcmVkIHdpdGggdjRsIGFuZCBtZWRp YSBkcml2ZXJzLgo+ICsJICovCj4gKwljb25zdCB1MzIgKmJ1c19mb3JtYXRzOwo+ICsJLyoqCj4g KwkgKiBAbnVtX2J1c19mb3JtYXRzOiBTaXplIG9mIEBidXNfZm9ybWF0cyBhcnJheS4KPiArCSAq Lwo+ICsJdW5zaWduZWQgaW50IG51bV9idXNfZm9ybWF0czsKPiArCj4gKyNkZWZpbmUgRFJNX0JV U19GTEFHX0RFX0xPVwkJKDE8PDApCj4gKyNkZWZpbmUgRFJNX0JVU19GTEFHX0RFX0hJR0gJCSgx PDwxKQo+ICsvKiBkcml2ZSBkYXRhIG9uIHBvcy4gZWRnZSAqLwo+ICsjZGVmaW5lIERSTV9CVVNf RkxBR19QSVhEQVRBX1BPU0VER0UJKDE8PDIpCj4gKy8qIGRyaXZlIGRhdGEgb24gbmVnLiBlZGdl ICovCj4gKyNkZWZpbmUgRFJNX0JVU19GTEFHX1BJWERBVEFfTkVHRURHRQkoMTw8MykKPiArLyog ZGF0YSBpcyB0cmFuc21pdHRlZCBNU0IgdG8gTFNCIG9uIHRoZSBidXMgKi8KPiArI2RlZmluZSBE Uk1fQlVTX0ZMQUdfREFUQV9NU0JfVE9fTFNCCSgxPDw0KQo+ICsvKiBkYXRhIGlzIHRyYW5zbWl0 dGVkIExTQiB0byBNU0Igb24gdGhlIGJ1cyAqLwo+ICsjZGVmaW5lIERSTV9CVVNfRkxBR19EQVRB X0xTQl9UT19NU0IJKDE8PDUpCj4gKwo+ICsJLyoqCj4gKwkgKiBAYnVzX2ZsYWdzOiBBZGRpdGlv bmFsIGluZm9ybWF0aW9uIChsaWtlIHBpeGVsIHNpZ25hbCBwb2xhcml0eSkgZm9yCj4gKwkgKiB0 aGUgcGl4ZWwgZGF0YSBvbiB0aGUgYnVzLCB1c2luZyBEUk1fQlVTX0ZMQUdTXF8gZGVmaW5lcy4K PiArCSAqLwo+ICsJdTMyIGJ1c19mbGFnczsKPiArfTsKPiArCj4gKy8qKgo+ICsgKiBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfaW5mbyAtIER5bmFtaWMgZGF0YSBhYm91dCB0aGUgY29ubmVjdGVkIHNpbmsK PiAgICoKPiAgICogRGVzY3JpYmVzIGEgZ2l2ZW4gZGlzcGxheSAoZS5nLiBDUlQgb3IgZmxhdCBw YW5lbCkgYW5kIGl0cyBsaW1pdGF0aW9ucy4gRm9yCj4gICAqIGZpeGVkIGRpc3BsYXkgc2lua3Mg bGlrZSBidWlsdC1pbiBwYW5lbHMgdGhlcmUncyBub3QgbXVjaCBkaWZmZXJlbmNlIGJldHdlZW4K PiAgICogdGhpcyBhbmQgJnN0cnVjdCBkcm1fY29ubmVjdG9yLiBCdXQgZm9yIHNpbmtzIHdpdGgg YSByZWFsIGNhYmxlIHRoaXMKPiAgICogc3RydWN0dXJlIGlzIG1lYW50IHRvIGRlc2NyaWJlIGFs bCB0aGUgdGhpbmdzIGF0IHRoZSBvdGhlciBlbmQgb2YgdGhlIGNhYmxlLgo+ICAgKgo+IC0gKiBG b3Igc2lua3Mgd2hpY2ggcHJvdmlkZSBhbiBFRElEIHRoaXMgY2FuIGJlIGZpbGxlZCBvdXQgYnkg Y2FsbGluZwo+ICsgKiBUaGlzIHNob3VsZCBiZSBmaWxsZWQgb3V0IGJ5IHRoZSBjb25uZWN0b3Ig LmZpbGxfbW9kZXMoKS8uZ2V0X21vZGVzKCkKPiArICogaG9va3MuIEZvciBzaW5rcyB3aGljaCBw cm92aWRlIGFuIEVESUQgdGhpcyBjYW4gYmUgZmlsbGVkIG91dCBieSBjYWxsaW5nCj4gICAqIGRy bV9hZGRfZWRpZF9tb2RlcygpLgo+ICAgKi8KPiAgc3RydWN0IGRybV9kaXNwbGF5X2luZm8gewo+ IEBAIC0yMjUsNyArMjc4LDcgQEAgc3RydWN0IGRybV9kaXNwbGF5X2luZm8gewo+ICAJLyoqCj4g IAkgKiBAd2lkdGhfbW06IFBoeXNpY2FsIHdpZHRoIGluIG1tLgo+ICAJICovCj4gLSAgICAgICAg dW5zaWduZWQgaW50IHdpZHRoX21tOwo+ICsJdW5zaWduZWQgaW50IHdpZHRoX21tOwo+ICAJLyoq Cj4gIAkgKiBAaGVpZ2h0X21tOiBQaHlzaWNhbCBoZWlnaHQgaW4gbW0uCj4gIAkgKi8KPiBAQCAt MjQyLDI2ICsyOTUsMTIgQEAgc3RydWN0IGRybV9kaXNwbGF5X2luZm8gewo+ICAJICovCj4gIAl1 bnNpZ25lZCBpbnQgYnBjOwo+ICAKPiAtCS8qKgo+IC0JICogQHN1YnBpeGVsX29yZGVyOiBTdWJw aXhlbCBvcmRlciBvZiBMQ0QgcGFuZWxzLgo+IC0JICovCj4gLQllbnVtIHN1YnBpeGVsX29yZGVy IHN1YnBpeGVsX29yZGVyOwo+IC0KPiAgI2RlZmluZSBEUk1fQ09MT1JfRk9STUFUX1JHQjQ0NAkJ KDE8PDApCj4gICNkZWZpbmUgRFJNX0NPTE9SX0ZPUk1BVF9ZQ1JDQjQ0NAkoMTw8MSkKPiAgI2Rl ZmluZSBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDIyCSgxPDwyKQo+ICAjZGVmaW5lIERSTV9DT0xP Ul9GT1JNQVRfWUNSQ0I0MjAJKDE8PDMpCj4gIAo+ICAJLyoqCj4gLQkgKiBAcGFuZWxfb3JpZW50 YXRpb246IFJlYWQgb25seSBjb25uZWN0b3IgcHJvcGVydHkgZm9yIGJ1aWx0LWluIHBhbmVscywK PiAtCSAqIGluZGljYXRpbmcgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBwYW5lbCB2cyB0aGUgZGV2 aWNlJ3MgY2FzaW5nLgo+IC0JICogZHJtX2Nvbm5lY3Rvcl9pbml0KCkgc2V0cyB0aGlzIHRvIERS TV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX1VOS05PV04uCj4gLQkgKiBXaGVuIG5vdCBVTktOT1dO IHRoaXMgZ2V0cyB1c2VkIGJ5IHRoZSBkcm1fZmJfaGVscGVycyB0byByb3RhdGUgdGhlCj4gLQkg KiBmYiB0byBjb21wZW5zYXRlIGFuZCBnZXRzIGV4cG9ydGVkIGFzIHByb3AgdG8gdXNlcnNwYWNl Lgo+IC0JICovCj4gLQlpbnQgcGFuZWxfb3JpZW50YXRpb247Cj4gLQo+IC0JLyoqCj4gIAkgKiBA Y29sb3JfZm9ybWF0czogSERNSSBDb2xvciBmb3JtYXRzLCBzZWxlY3RzIGJldHdlZW4gUkdCIGFu ZCBZQ3JDYgo+ICAJICogbW9kZXMuIFVzZWQgRFJNX0NPTE9SX0ZPUk1BVFxfIGRlZmluZXMsIHdo aWNoIGFyZSBfbm90XyB0aGUgc2FtZSBvbmVzCj4gIAkgKiBhcyB1c2VkIHRvIGRlc2NyaWJlIHRo ZSBwaXhlbCBmb3JtYXQgaW4gZnJhbWVidWZmZXJzLCBhbmQgYWxzbyBkb24ndAo+IEBAIC0yNzAs MzQgKzMwOSw2IEBAIHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvIHsKPiAgCXUzMiBjb2xvcl9mb3Jt YXRzOwo+ICAKPiAgCS8qKgo+IC0JICogQGJ1c19mb3JtYXRzOiBQaXhlbCBkYXRhIGZvcm1hdCBv biB0aGUgd2lyZSwgc29tZXdoYXQgcmVkdW5kYW50IHdpdGgKPiAtCSAqIEBjb2xvcl9mb3JtYXRz LiBBcnJheSBvZiBzaXplIEBudW1fYnVzX2Zvcm1hdHMgZW5jb2RlZCB1c2luZwo+IC0JICogTUVE SUFfQlVTX0ZNVFxfIGRlZmluZXMgc2hhcmVkIHdpdGggdjRsIGFuZCBtZWRpYSBkcml2ZXJzLgo+ IC0JICovCj4gLQljb25zdCB1MzIgKmJ1c19mb3JtYXRzOwo+IC0JLyoqCj4gLQkgKiBAbnVtX2J1 c19mb3JtYXRzOiBTaXplIG9mIEBidXNfZm9ybWF0cyBhcnJheS4KPiAtCSAqLwo+IC0JdW5zaWdu ZWQgaW50IG51bV9idXNfZm9ybWF0czsKPiAtCj4gLSNkZWZpbmUgRFJNX0JVU19GTEFHX0RFX0xP VwkJKDE8PDApCj4gLSNkZWZpbmUgRFJNX0JVU19GTEFHX0RFX0hJR0gJCSgxPDwxKQo+IC0vKiBk cml2ZSBkYXRhIG9uIHBvcy4gZWRnZSAqLwo+IC0jZGVmaW5lIERSTV9CVVNfRkxBR19QSVhEQVRB X1BPU0VER0UJKDE8PDIpCj4gLS8qIGRyaXZlIGRhdGEgb24gbmVnLiBlZGdlICovCj4gLSNkZWZp bmUgRFJNX0JVU19GTEFHX1BJWERBVEFfTkVHRURHRQkoMTw8MykKPiAtLyogZGF0YSBpcyB0cmFu c21pdHRlZCBNU0IgdG8gTFNCIG9uIHRoZSBidXMgKi8KPiAtI2RlZmluZSBEUk1fQlVTX0ZMQUdf REFUQV9NU0JfVE9fTFNCCSgxPDw0KQo+IC0vKiBkYXRhIGlzIHRyYW5zbWl0dGVkIExTQiB0byBN U0Igb24gdGhlIGJ1cyAqLwo+IC0jZGVmaW5lIERSTV9CVVNfRkxBR19EQVRBX0xTQl9UT19NU0IJ KDE8PDUpCj4gLQo+IC0JLyoqCj4gLQkgKiBAYnVzX2ZsYWdzOiBBZGRpdGlvbmFsIGluZm9ybWF0 aW9uIChsaWtlIHBpeGVsIHNpZ25hbCBwb2xhcml0eSkgZm9yCj4gLQkgKiB0aGUgcGl4ZWwgZGF0 YSBvbiB0aGUgYnVzLCB1c2luZyBEUk1fQlVTX0ZMQUdTXF8gZGVmaW5lcy4KPiAtCSAqLwo+IC0J dTMyIGJ1c19mbGFnczsKPiAtCj4gLQkvKioKPiAgCSAqIEBtYXhfdG1kc19jbG9jazogTWF4aW11 bSBUTURTIGNsb2NrIHJhdGUgc3VwcG9ydGVkIGJ5IHRoZQo+ICAJICogc2luayBpbiBrSHouIDAg bWVhbnMgdW5kZWZpbmVkLgo+ICAJICovCj4gQEAgLTMzNSw3ICszNDYsNyBAQCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfaW5mbyB7Cj4gIAlib29sIG5vbl9kZXNrdG9wOwo+ICB9Owo+ICAKPiAtaW50IGRy bV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICpp bmZvLAo+ICtpbnQgZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoc3RydWN0IGRybV9z dGF0aWNfZGlzcGxheV9pbmZvICppbmZvLAo+ICAJCQkJICAgICBjb25zdCB1MzIgKmZvcm1hdHMs Cj4gIAkJCQkgICAgIHVuc2lnbmVkIGludCBudW1fZm9ybWF0cyk7Cj4gIAo+IEBAIC04NTEsMTUg Kzg2MiwyMyBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIHBy b2JlZF9tb2RlczsKPiAgCj4gIAkvKioKPiAtCSAqIEBkaXNwbGF5X2luZm86IERpc3BsYXkgaW5m b3JtYXRpb24gaXMgZmlsbGVkIGZyb20gRURJRCBpbmZvcm1hdGlvbgo+IC0JICogd2hlbiBhIGRp c3BsYXkgaXMgZGV0ZWN0ZWQuIEZvciBub24gaG90LXBsdWdnYWJsZSBkaXNwbGF5cyBzdWNoIGFz Cj4gLQkgKiBmbGF0IHBhbmVscyBpbiBlbWJlZGRlZCBzeXN0ZW1zLCB0aGUgZHJpdmVyIHNob3Vs ZCBpbml0aWFsaXplIHRoZQo+IC0JICogJmRybV9kaXNwbGF5X2luZm8ud2lkdGhfbW0gYW5kICZk cm1fZGlzcGxheV9pbmZvLmhlaWdodF9tbSBmaWVsZHMKPiAtCSAqIHdpdGggdGhlIHBoeXNpY2Fs IHNpemUgb2YgdGhlIGRpc3BsYXkuCj4gKwkgKiBAc3RhdGljX2Rpc3BsYXlfaW5mbzogRGlzcGxh eSBpbmZvcm1hdGlvbiBpcyBmaWxsZWQgYnkgdGhlIGRyaXZlcgo+ICsJICoKPiArCSAqIFByb3Rl Y3RlZCBieSAmZHJtX21vZGVfY29uZmlnLm11dGV4Lgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX3N0 YXRpY19kaXNwbGF5X2luZm8gc3RhdGljX2Rpc3BsYXlfaW5mbzsKPiArCS8qKgo+ICsJICogQGRp c3BsYXlfaW5mbzogRHluYW1pYyBkaXNwbGF5IGluZm9ybWF0aW9uIGlzIGZpbGxlZCBmcm9tIEVE SUQKPiArCSAqIGluZm9ybWF0aW9uIHdoZW4gYSBkaXNwbGF5IGlzIGRldGVjdGVkLiBGb3Igbm9u IGhvdC1wbHVnZ2FibGUKPiArCSAqIGRpc3BsYXlzIHN1Y2ggYXMgZmxhdCBwYW5lbHMgaW4gZW1i ZWRkZWQgc3lzdGVtcywgdGhlIGRyaXZlcgo+ICsJICogc2hvdWxkIGluaXRpYWxpemUgdGhlICZk cm1fZGlzcGxheV9pbmZvLndpZHRoX21tIGFuZAo+ICsJICogJmRybV9kaXNwbGF5X2luZm8uaGVp Z2h0X21tIGZpZWxkcyB3aXRoIHRoZSBwaHlzaWNhbCBzaXplIG9mCj4gKwkgKiB0aGUgZGlzcGxh eS4KPiAgCSAqCj4gIAkgKiBQcm90ZWN0ZWQgYnkgJmRybV9tb2RlX2NvbmZpZy5tdXRleC4KPiAg CSAqLwo+ICAJc3RydWN0IGRybV9kaXNwbGF5X2luZm8gZGlzcGxheV9pbmZvOwo+ICsKPiAgCWNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzICpmdW5jczsKPiAgCj4gIAlzdHJ1Y3QgZHJt X3Byb3BlcnR5X2Jsb2IgKmVkaWRfYmxvYl9wdHI7Cj4gLS0gCj4gMi4xMy42Cj4gCgotLSAKRGFu aWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Js b2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==