From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH] drm/i915/icl: Add power well support Date: Tue, 26 Jun 2018 17:28:06 -0700 Message-ID: <1530059286.2574.14.camel@intel.com> References: <20180626142232.22361-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9FE016E694 for ; Wed, 27 Jun 2018 00:28:08 +0000 (UTC) In-Reply-To: <20180626142232.22361-1-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RW0gVGVyLCAyMDE4LTA2LTI2IMOgcyAxNzoyMiArMDMwMCwgSW1yZSBEZWFrIGVzY3JldmV1Ogo+ IEFkZCB0aGUgZGVmaW5pdGlvbiBmb3IgSUNMIHBvd2VyIHdlbGxzIGFuZCB0aGVpciBtYXBwaW5n IHRvIHBvd2VyCj4gZG9tYWlucy4gT24gSUNMIHRoZXJlIGFyZSAzIHBvd2VyIHdlbGwgY29udHJv bCByZWdpc3RlcnMsIHdlJ2xsCj4gc2VsZWN0Cj4gdGhlIGNvcnJlY3Qgb25lIGJhc2VkIG9uIGhp Z2hlciBiaXRzIG9mIHRoZSBwb3dlciB3ZWxsIElELiBUaGUgb2Zmc2V0Cj4gZm9yIHRoZSBjb250 cm9sIGFuZCBzdGF0dXMgZmxhZ3Mgd2l0aGluIHRoaXMgcmVnaXN0ZXIgaXMgYmFzZWQgb24gdGhl Cj4gbG93ZXIgYml0cyBvZiB0aGUgSUQgYXMgb24gb2xkZXIgcGxhdGZvcm1zLgo+IAo+IEFzIHRo ZSBEQyBzdGF0ZSBwcm9ncmFtbWluZyBpcyBhbHNvIHRoZSBzYW1lIGFzIG9uIG9sZCBwbGF0Zm9y bXMgd2UKPiBjYW4KPiByZXVzZSB0aGUgY29ycmVzcG9uZGluZyBoZWxwZXJzLiBGb3IgdGhpcyB3 ZSBtYXJrIGhlcmUgdGhlIERDLW9mZgo+IHBvd2VyCj4gd2VsbCBhcyBzaGFyZWQgYW1vbmcgbXVs dGlwbGUgcGxhdGZvcm1zLgo+IAo+IE90aGVyIHRoYW4gdGhlIGFib3ZlIHRoZSBkZWx0YSBiZXR3 ZWVuIG9sZCBwbGF0Zm9ybXMgYW5kIElDTDoKPiAtIFBpcGUgQyBoYXMgaXRzIG93biBwb3dlciB3 ZWxsLCBzbyB3ZSBjYW4gc2F2ZSBzb21lIGFkZGl0aW9uYWwgcG93ZXIKPiBpbiB0aGUKPiAgIHBp cGUgQStCIGFuZCAobm9uLWVEUCkgcGlwZSBBIGNvbmZpZ3VyYXRpb25zLgo+IC0gUG93ZXIgd2Vs bHMgZm9yIHBvcnQgRS9GIERESS9BVVggSU8gYW5kIFRodW5kZXJib2x0IDEtNCBBVVggSU8KPiAK PiB2MjoKPiAtIFJlYmFzZSBvbiBkcm0tdGlwIGFmdGVyIHByZXAgcGF0Y2ggZm9yIHRoaXMgd2Fz IG1lcmdlZCB0aGVyZSBhcwo+ICAgcmVxdWVzdGVkIGJ5IFBhdWxvLgo+IC0gQWN0dWFsbHkgYWRk IHRoZSBuZXcgQVVYIGFuZCBEREkgcG93ZXIgd2VsbCBjb250cm9sIHJlZ3MgKFJha3NobWkpCj4g Cj4gdjM6Cj4gLSBGaXggcG93ZXIgd2VsbCByZWdpc3RlciBuYW1lcyBpbiBjb2RlIGNvbW1lbnRz Cj4gLSBBZGQgVEJUIEFVWC0+cG93ZXIgd2VsbCAzIGRlcGVuZGVuY3kKPiAKPiB2NDoKPiAtIFJl YmFzZQo+IAo+IHY1Ogo+IC0gRGV0YWNoIEFVWCBwb3dlciB3ZWxscyBmcm9tIHRoZSBJTklUIHBv d2VyIGRvbWFpbi4gVGhlc2UgcG93ZXIKPiB3ZWxscwo+ICAgY2FuIG9ubHkgYmUgZW5hYmxlZCBp biBhIFRDL1RCVCBjb25uZWN0ZWQgc3RhdGUgYW5kIG90aGVyd2lzZSBub3QKPiAgIG5lZWRlZCBk dXJpbmcgZHJpdmVyIGluaXRpYWxpemF0aW9uLgo+IAo+IENjOiBBbmltZXNoIE1hbm5hIDxhbmlt ZXNoLm1hbm5hQGludGVsLmNvbT4KPiBDYzogUmFrc2htaSBCaGF0aWEgPHJha3NobWkuYmhhdGlh QGludGVsLmNvbT4KPiBDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+ Cj4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+IFJldmll d2VkLWJ5OiBBbmltZXNoIE1hbm5hIDxhbmltZXNoLm1hbm5hQGludGVsLmNvbT4gKHYxKQo+IC0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgfCAgNzggKysrKysr Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oICAgIHwgICA0ICsKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgMzI5Cj4gKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAzOTUgaW5zZXJ0aW9u cygrKSwgMTYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRl eCBjYWFkMTlmNWY1NTcuLjg2NWIwNWNlOGQ3NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+IEBAIC0xMDQ1LDEzICsxMDQ1LDEzIEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPiAg Cj4gIAkvKgo+ICAJICogSFNXL0JEVwo+IC0JICogIC0gSFNXX1BXUl9XRUxMX0NUTF9EUklWRVIo MCkgKHN0YXR1cyBiaXQ6IGlkKjIsIHJlcSBiaXQ6Cj4gaWQqMisxKQo+ICsJICogIC0gX0hTV19Q V1JfV0VMTF9DVEwxLTQgKHN0YXR1cyBiaXQ6IGlkKjIsIHJlcSBiaXQ6Cj4gaWQqMisxKQo+ICAJ ICovCj4gIAlIU1dfRElTUF9QV19HTE9CQUwgPSAxNSwKPiAgCj4gIAkvKgo+ICAJICogR0VOOSsK PiAtCSAqICAtIEhTV19QV1JfV0VMTF9DVExfRFJJVkVSKDApIChzdGF0dXMgYml0OiBpZCoyLCBy ZXEgYml0Ogo+IGlkKjIrMSkKPiArCSAqICAtIF9IU1dfUFdSX1dFTExfQ1RMMS00IChzdGF0dXMg Yml0OiBpZCoyLCByZXEgYml0Ogo+IGlkKjIrMSkKPiAgCSAqLwo+ICAJU0tMX0RJU1BfUFdfTUlT Q19JTyA9IDAsCj4gIAlTS0xfRElTUF9QV19ERElfQV9FLAo+IEBAIC0xMDc1LDE3ICsxMDc1LDU0 IEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPiAgCVNLTF9ESVNQX1BXXzIsCj4gIAo+ICAJ LyogLSBjdXN0b20gcG93ZXIgd2VsbHMgKi8KPiAtCVNLTF9ESVNQX1BXX0RDX09GRiwKPiAgCUJY VF9EUElPX0NNTl9BLAo+ICAJQlhUX0RQSU9fQ01OX0JDLAo+IC0JR0xLX0RQSU9fQ01OX0MsCQkJ LyogMTkgKi8KPiArCUdMS19EUElPX0NNTl9DLAkJCS8qIDE4ICovCj4gKwo+ICsJLyoKPiArCSAq IEdFTjExKwo+ICsJICogIC0gX0hTV19QV1JfV0VMTF9DVEwxLTQKPiArCSAqICAgIChzdGF0dXMg Yml0OiAoaWQmMTUpKjIsIHJlcSBiaXQ6KGlkJjE1KSoyKzEpCj4gKwkgKi8KPiArCUlDTF9ESVNQ X1BXXzEgPSAwLAo+ICsJSUNMX0RJU1BfUFdfMiwKPiArCUlDTF9ESVNQX1BXXzMsCj4gKwlJQ0xf RElTUF9QV180LAo+ICsKPiArCS8qCj4gKwkgKiAgLSBfSFNXX1BXUl9XRUxMX0NUTF9BVVgxLzIv NAo+ICsJICogICAgKHN0YXR1cyBiaXQ6IChpZCYxNSkqMiwgcmVxIGJpdDooaWQmMTUpKjIrMSkK PiArCSAqLwo+ICsJSUNMX0RJU1BfUFdfQVVYX0EgPSAxNiwKPiArCUlDTF9ESVNQX1BXX0FVWF9C LAo+ICsJSUNMX0RJU1BfUFdfQVVYX0MsCj4gKwlJQ0xfRElTUF9QV19BVVhfRCwKPiArCUlDTF9E SVNQX1BXX0FVWF9FLAo+ICsJSUNMX0RJU1BfUFdfQVVYX0YsCj4gKwo+ICsJSUNMX0RJU1BfUFdf QVVYX1RCVDEgPSAyNCwKPiArCUlDTF9ESVNQX1BXX0FVWF9UQlQyLAo+ICsJSUNMX0RJU1BfUFdf QVVYX1RCVDMsCj4gKwlJQ0xfRElTUF9QV19BVVhfVEJUNCwKPiArCj4gKwkvKgo+ICsJICogIC0g X0hTV19QV1JfV0VMTF9DVExfRERJMS8yLzQKPiArCSAqICAgIChzdGF0dXMgYml0OiAoaWQmMTUp KjIsIHJlcSBiaXQ6KGlkJjE1KSoyKzEpCj4gKwkgKi8KPiArCUlDTF9ESVNQX1BXX0RESV9BID0g MzIsCj4gKwlJQ0xfRElTUF9QV19ERElfQiwKPiArCUlDTF9ESVNQX1BXX0RESV9DLAo+ICsJSUNM X0RJU1BfUFdfRERJX0QsCj4gKwlJQ0xfRElTUF9QV19ERElfRSwKPiArCUlDTF9ESVNQX1BXX0RE SV9GLCAgICAgICAgICAgICAgICAgICAgICAvKiAzNyAqLwo+ICAKPiAgCS8qCj4gIAkgKiBNdWx0 aXBsZSBwbGF0Zm9ybXMuCj4gIAkgKiBNdXN0IHN0YXJ0IGZvbGxvd2luZyB0aGUgaGlnaGVzdCBJ RCBvZiBhbnkgcGxhdGZvcm0uCj4gIAkgKiAtIGN1c3RvbSBwb3dlciB3ZWxscwo+ICAJICovCj4g LQlJOTE1X0RJU1BfUFdfQUxXQVlTX09OID0gMjAsCj4gKwlTS0xfRElTUF9QV19EQ19PRkYgPSAz OCwKPiArCUk5MTVfRElTUF9QV19BTFdBWVNfT04sCj4gIH07Cj4gIAo+ICAjZGVmaW5lIFBVTklU X1JFR19QV1JHVF9DVFJMCQkJMHg2MAo+IEBAIC0xNjc5LDYgKzE3MTYsMTMgQEAgZW51bSBpOTE1 X3Bvd2VyX3dlbGxfaWQgewo+ICAjZGVmaW5lICAgSVJFRjFSQ19PRkZTRVRfTUFTSwkJKDB4RkYg PDwKPiBJUkVGMVJDX09GRlNFVF9TSElGVCkKPiAgI2RlZmluZSBCWFRfUE9SVF9DTDFDTV9EVzEw KHBoeSkJX0JYVF9QSFkoKHBoeSksCj4gX1BPUlRfQ0wxQ01fRFcxMF9CQykKPiAgCj4gKyNkZWZp bmUgX0lDTF9QT1JUX0NMX0RXMTJfQQkJMHgxNjIwMzAKPiArI2RlZmluZSBfSUNMX1BPUlRfQ0xf RFcxMl9CCQkweDZDMDMwCj4gKyNkZWZpbmUgICBJQ0xfTEFORV9FTkFCTEVfQVVYCQkoMSA8PCAw KQo+ICsjZGVmaW5lIElDTF9QT1JUX0NMX0RXMTIocG9ydCkJCV9NTUlPKF9QSUNLKChwb3J0KSwK CllvdSBjYW4gZ2V0IGF3YXkgd2l0aCBfUElQRSBpbnN0ZWFkIG9mIF9QSUNLIGhlcmUsIHdoaWNo IGlzIHN1cHBvc2VkIHRvCmJlIGEgbGl0dGxlIG1vcmUgZWZmaWNpZW50LgoKT3RoZXJ3aXNlLCBs b29rcyBjb3JyZWN0IChtaW51cyBjaGVja3BhdGNoIHByb2JsZW1zKS4KUmV2aWV3ZWQtYnk6IFBh dWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgoKQnV0IEkgd291bGQgc2F5IHRo ZSBQVyBjb2RlIGlzIGdldHRpbmcgdmVyeSBoYXJkIHRvIHJlYWQuIFRoZSB3aG9sZQptYWdpYyBi ZWhpbmQgdGhlIGk5MTVfcG93ZXJfd2VsbF9pZCBlbnVtIHZhbHVlcyBpcyBoYXJkIHRvIHJlYWQs IGFuZCBhCmxvdCBvZiBvdGhlciBtYWdpYyBtYWNyb3MgYnVpbGQgb24gdG9wIG9mIHRoYXQuIEkg d291bGQgcmVhbGx5IGxvdmUgaWYKb3VyIGNvZGUgd2VyZSBhIGxpdHRsZSBtb3JlIHN0cmFpZ2h0 Zm9yd2FyZCwgbGVzcyByZWxpYW50IG9uIHRoZSBtYWdpYywKZXZlbiBpZiBpdCB3ZXJlIGEgbGl0 dGxlIGJpZ2dlci4gU3R1ZmYgbGlrZSBfSFNXX1BXX1JFR19JRFgoKSBhbmQKb3RoZXJzIGFyZSBj cmF6eS4gSWRlYWxseSB0aGUgY29kZSB3b3VsZCBub3QgaGF2ZSB0byByZWx5IG9uIHRoZSB2YWx1 ZQpvZiB0aGUgYWN0dWFsIGVudW0gZm9yIGFueXRoaW5nLiBCdXQgYWxsIG9mIHRoYXQgaXMgY29u dGVudCBmb3IgYSBuZXcKc2VyaWVzLgoKCj4gCQkgXAo+ICsJCQkJCQkgICAgX0lDTF9QT1JUX0NM X0RXMQo+IDJfQSwgXAo+ICsJCQkJCQkgICAgX0lDTF9QT1JUX0NMX0RXMQo+IDJfQikpCj4gKwo+ ICAjZGVmaW5lIF9QT1JUX0NMMUNNX0RXMjhfQQkJMHgxNjIwNzAKPiAgI2RlZmluZSBfUE9SVF9D TDFDTV9EVzI4X0JDCQkweDZDMDcwCj4gICNkZWZpbmUgICBPQ0wxX1BPV0VSX0RPV05fRU4JCSgx IDw8IDIzKQo+IEBAIC04NTYzLDYgKzg2MDcsMTQgQEAgZW51bSB7Cj4gICNkZWZpbmUgX0hTV19Q V1JfV0VMTF9DVEwzCQkJMHg0NTQwOAo+ICAjZGVmaW5lIF9IU1dfUFdSX1dFTExfQ1RMNAkJCTB4 NDU0MEMKPiAgCj4gKyNkZWZpbmUgX0lDTF9QV1JfV0VMTF9DVExfQVVYMQkJCTB4NDU0NDAKPiAr I2RlZmluZSBfSUNMX1BXUl9XRUxMX0NUTF9BVVgyCQkJMHg0NTQ0NAo+ICsjZGVmaW5lIF9JQ0xf UFdSX1dFTExfQ1RMX0FVWDQJCQkweDQ1NDRDCj4gKwo+ICsjZGVmaW5lIF9JQ0xfUFdSX1dFTExf Q1RMX0RESTEJCQkweDQ1NDUwCj4gKyNkZWZpbmUgX0lDTF9QV1JfV0VMTF9DVExfRERJMgkJCTB4 NDU0NTQKPiArI2RlZmluZSBfSUNMX1BXUl9XRUxMX0NUTF9EREk0CQkJMHg0NTQ1Qwo+ICsKPiAg LyoKPiAgICogRWFjaCBwb3dlciB3ZWxsIGNvbnRyb2wgcmVnaXN0ZXIgY29udGFpbnMgdXAgdG8g MTYgKHJlcXVlc3QsCj4gc3RhdHVzKSBIVwo+ICAgKiBmbGFnIHR1cGxlcy4gVGhlIHJlZ2lzdGVy IGluZGV4IGFuZCBIVyBmbGFnIHNoaWZ0IGlzIGRldGVybWluZWQKPiBieSB0aGUKPiBAQCAtODU3 MiwxNCArODYyNCwyMCBAQCBlbnVtIHsKPiAgICovCj4gICNkZWZpbmUgX0hTV19QV19SRUdfSURY KHB3KQkJCSgocHcpID4+IDQpCj4gICNkZWZpbmUgX0hTV19QV19TSElGVChwdykJCQkoKChwdykg JiAweGYpICogMikKPiAtLyogVE9ETzogQWRkIGFsbCBQV1JfV0VMTF9DVEwgcmVnaXN0ZXJzIGJl bG93IGZvciBuZXcgcGxhdGZvcm1zICovCj4gICNkZWZpbmUgSFNXX1BXUl9XRUxMX0NUTF9CSU9T KHB3KQlfTU1JTyhfUElDSyhfSFNXX1BXX1JFR19JRFgKPiAocHcpLCAgICAgICBcCj4gLQkJCQkJ CSAgICBfSFNXX1BXUl9XRUxMX0NUCj4gTDEpKQo+ICsJCQkJCQkgICAgX0hTV19QV1JfV0VMTF9D VAo+IEwxLAkgICAgICAgXAo+ICsJCQkJCQkgICAgX0lDTF9QV1JfV0VMTF9DVAo+IExfQVVYMSwg ICAgXAo+ICsJCQkJCQkgICAgX0lDTF9QV1JfV0VMTF9DVAo+IExfRERJMSkpCj4gICNkZWZpbmUg SFNXX1BXUl9XRUxMX0NUTF9EUklWRVIocHcpCV9NTUlPKF9QSUNLKF9IU1dfUFdfUkVHX0kKPiBE WChwdyksICAgICAgIFwKPiAtCQkJCQkJICAgIF9IU1dfUFdSX1dFTExfQ1QKPiBMMikpCj4gKwkJ CQkJCSAgICBfSFNXX1BXUl9XRUxMX0NUCj4gTDIsCSAgICAgICBcCj4gKwkJCQkJCSAgICBfSUNM X1BXUl9XRUxMX0NUCj4gTF9BVVgyLCAgICBcCj4gKwkJCQkJCSAgICBfSUNMX1BXUl9XRUxMX0NU Cj4gTF9EREkyKSkKPiArLyogS1ZNUiBkb2Vzbid0IGhhdmUgYSByZWcgZm9yIEFVWCBvciBEREkg cG93ZXIgd2VsbCBjb250cm9sICovCj4gICNkZWZpbmUgSFNXX1BXUl9XRUxMX0NUTF9LVk1SCQlf TU1JTyhfSFNXX1BXUl9XRUxMX0NUTAo+IDMpCj4gICNkZWZpbmUgSFNXX1BXUl9XRUxMX0NUTF9E RUJVRyhwdykJX01NSU8oX1BJQ0soX0hTV19QV19SRUdfSUQKPiBYKHB3KSwgICAgICAgXAo+IC0J CQkJCQkgICAgX0hTV19QV1JfV0VMTF9DVAo+IEw0KSkKPiArCQkJCQkJICAgIF9IU1dfUFdSX1dF TExfQ1QKPiBMNCwJICAgICAgIFwKPiArCQkJCQkJICAgIF9JQ0xfUFdSX1dFTExfQ1QKPiBMX0FV WDQsICAgIFwKPiArCQkJCQkJICAgIF9JQ0xfUFdSX1dFTExfQ1QKPiBMX0RESTQpKQo+ICAKPiAg I2RlZmluZSAgIEhTV19QV1JfV0VMTF9DVExfUkVRKHB3KQkJKDEgPDwKPiAoX0hTV19QV19TSElG VChwdykgKyAxKSkKPiAgI2RlZmluZSAgIEhTV19QV1JfV0VMTF9DVExfU1RBVEUocHcpCQkoMSA8 PAo+IF9IU1dfUFdfU0hJRlQocHcpKQo+IEBAIC04NjAwLDYgKzg2NTgsOCBAQCBlbnVtIHNrbF9w b3dlcl9nYXRlIHsKPiAgI2RlZmluZSAgU0tMX0ZVU0VfRE9XTkxPQURfU1RBVFVTCQkoMSA8PCAz MSkKPiAgLyogUEcwIChIVyBjb250cm9sLT5ubyBwb3dlciB3ZWxsIElEKSwgUEcxLi5QRzIKPiAo U0tMX0RJU1BfUFcxLi5TS0xfRElTUF9QVzIpICovCj4gICNkZWZpbmUgIFNLTF9QV19UT19QRyhw dykJCQkoKHB3KSAtCj4gU0tMX0RJU1BfUFdfMSArIFNLTF9QRzEpCj4gKy8qIFBHMCAoSFcgY29u dHJvbC0+bm8gcG93ZXIgd2VsbCBJRCksIFBHMS4uUEc0Cj4gKElDTF9ESVNQX1BXMS4uSUNMX0RJ U1BfUFc0KSAqLwo+ICsjZGVmaW5lICBJQ0xfUFdfVE9fUEcocHcpCQkJKChwdykgLQo+IElDTF9E SVNQX1BXXzEgKyBTS0xfUEcxKQo+ICAjZGVmaW5lICBTS0xfRlVTRV9QR19ESVNUX1NUQVRVUyhw ZykJCSgxIDw8ICgyNyAtCj4gKHBnKSkpCj4gIAo+ICAjZGVmaW5lIF9DTkxfQVVYX1JFR19JRFgo cHcpCQkoKHB3KSAtIDkpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuaAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCj4gaW5k ZXggZGZiMDJkYTczYWM4Li5hNzdkZDI5ZGIyZWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5oCj4gQEAgLTE5OSw2ICsxOTksMTAgQEAgZW51bSBpbnRlbF9kaXNwbGF5X3Bv d2VyX2RvbWFpbiB7Cj4gIAlQT1dFUl9ET01BSU5fQVVYX0UsCj4gIAlQT1dFUl9ET01BSU5fQVVY X0YsCj4gIAlQT1dFUl9ET01BSU5fQVVYX0lPX0EsCj4gKwlQT1dFUl9ET01BSU5fQVVYX1RCVDEs Cj4gKwlQT1dFUl9ET01BSU5fQVVYX1RCVDIsCj4gKwlQT1dFUl9ET01BSU5fQVVYX1RCVDMsCj4g KwlQT1dFUl9ET01BSU5fQVVYX1RCVDQsCj4gIAlQT1dFUl9ET01BSU5fR01CVVMsCj4gIAlQT1dF Ul9ET01BSU5fTU9ERVNFVCwKPiAgCVBPV0VSX0RPTUFJTl9HVF9JUlEsCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gaW5kZXggMjk2OTc4NzIwMWVmLi43OTA2NzBm NWZiOTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9w bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gQEAg LTEzNCw2ICsxMzQsMTQgQEAgaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKGVudW0KPiBp bnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pCj4gIAkJcmV0dXJuICJBVVhfRiI7Cj4g IAljYXNlIFBPV0VSX0RPTUFJTl9BVVhfSU9fQToKPiAgCQlyZXR1cm4gIkFVWF9JT19BIjsKPiAr CWNhc2UgUE9XRVJfRE9NQUlOX0FVWF9UQlQxOgo+ICsJCXJldHVybiAiQVVYX1RCVDEiOwo+ICsJ Y2FzZSBQT1dFUl9ET01BSU5fQVVYX1RCVDI6Cj4gKwkJcmV0dXJuICJBVVhfVEJUMiI7Cj4gKwlj YXNlIFBPV0VSX0RPTUFJTl9BVVhfVEJUMzoKPiArCQlyZXR1cm4gIkFVWF9UQlQzIjsKPiArCWNh c2UgUE9XRVJfRE9NQUlOX0FVWF9UQlQ0Ogo+ICsJCXJldHVybiAiQVVYX1RCVDQiOwo+ICAJY2Fz ZSBQT1dFUl9ET01BSU5fR01CVVM6Cj4gIAkJcmV0dXJuICJHTUJVUyI7Cj4gIAljYXNlIFBPV0VS X0RPTUFJTl9JTklUOgo+IEBAIC0zODQsNyArMzkyLDggQEAgc3RhdGljIHZvaWQgaHN3X3Bvd2Vy X3dlbGxfZW5hYmxlKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJdTMy IHZhbDsKPiAgCj4gIAlpZiAod2FpdF9mdXNlcykgewo+IC0JCXBnID0gU0tMX1BXX1RPX1BHKGlk KTsKPiArCQlwZyA9IElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEgPyBJQ0xfUFdfVE9fUEcoaWQp IDoKPiArCQkJCQkJIFNLTF9QV19UT19QRyhpZCk7Cj4gIAkJLyoKPiAgCQkgKiBGb3IgUFcxIHdl IGhhdmUgdG8gd2FpdCBib3RoIGZvciB0aGUgUFcwL1BHMCBmdXNlCj4gc3RhdGUKPiAgCQkgKiBi ZWZvcmUgZW5hYmxpbmcgdGhlIHBvd2VyIHdlbGwgYW5kIFBXMS9QRzEncyBvd24KPiBmdXNlCj4g QEAgLTQzMCw2ICs0MzksNDMgQEAgc3RhdGljIHZvaWQgaHN3X3Bvd2VyX3dlbGxfZGlzYWJsZShz dHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWhzd193YWl0X2Zvcl9wb3dl cl93ZWxsX2Rpc2FibGUoZGV2X3ByaXYsIHBvd2VyX3dlbGwpOwo+ICB9Cj4gIAo+ICsjZGVmaW5l IElDTF9BVVhfUFdfVE9fUE9SVChwdykJKChwdykgLSBJQ0xfRElTUF9QV19BVVhfQSkKPiArCj4g K3N0YXRpYyB2b2lkCj4gK2ljbF9jb21ib19waHlfYXV4X3Bvd2VyX3dlbGxfZW5hYmxlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2LAo+ICsJCQkJICAgIHN0cnVjdCBpOTE1X3Bv d2VyX3dlbGwKPiAqcG93ZXJfd2VsbCkKPiArewo+ICsJZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQg aWQgPSBwb3dlcl93ZWxsLT5pZDsKPiArCWVudW0gcG9ydCBwb3J0ID0gSUNMX0FVWF9QV19UT19Q T1JUKGlkKTsKPiArCXUzMiB2YWw7Cj4gKwo+ICsJdmFsID0gSTkxNV9SRUFEKEhTV19QV1JfV0VM TF9DVExfRFJJVkVSKGlkKSk7Cj4gKwlJOTE1X1dSSVRFKEhTV19QV1JfV0VMTF9DVExfRFJJVkVS KGlkKSwgdmFsIHwKPiBIU1dfUFdSX1dFTExfQ1RMX1JFUShpZCkpOwo+ICsKPiArCXZhbCA9IEk5 MTVfUkVBRChJQ0xfUE9SVF9DTF9EVzEyKHBvcnQpKTsKPiArCUk5MTVfV1JJVEUoSUNMX1BPUlRf Q0xfRFcxMihwb3J0KSwgdmFsIHwKPiBJQ0xfTEFORV9FTkFCTEVfQVVYKTsKPiArCj4gKwloc3df d2FpdF9mb3JfcG93ZXJfd2VsbF9lbmFibGUoZGV2X3ByaXYsIHBvd2VyX3dlbGwpOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgdm9pZAo+ICtpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX2Rpc2FibGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4gKwkJCQkgICAgIHN0cnVjdCBp OTE1X3Bvd2VyX3dlbGwKPiAqcG93ZXJfd2VsbCkKPiArewo+ICsJZW51bSBpOTE1X3Bvd2VyX3dl bGxfaWQgaWQgPSBwb3dlcl93ZWxsLT5pZDsKPiArCWVudW0gcG9ydCBwb3J0ID0gSUNMX0FVWF9Q V19UT19QT1JUKGlkKTsKPiArCXUzMiB2YWw7Cj4gKwo+ICsJdmFsID0gSTkxNV9SRUFEKElDTF9Q T1JUX0NMX0RXMTIocG9ydCkpOwo+ICsJSTkxNV9XUklURShJQ0xfUE9SVF9DTF9EVzEyKHBvcnQp LCB2YWwgJgo+IH5JQ0xfTEFORV9FTkFCTEVfQVVYKTsKPiArCj4gKwl2YWwgPSBJOTE1X1JFQUQo SFNXX1BXUl9XRUxMX0NUTF9EUklWRVIoaWQpKTsKPiArCUk5MTVfV1JJVEUoSFNXX1BXUl9XRUxM X0NUTF9EUklWRVIoaWQpLAo+ICsJCSAgIHZhbCAmIH5IU1dfUFdSX1dFTExfQ1RMX1JFUShpZCkp Owo+ICsKPiArCWhzd193YWl0X2Zvcl9wb3dlcl93ZWxsX2Rpc2FibGUoZGV2X3ByaXYsIHBvd2Vy X3dlbGwpOwo+ICt9Cj4gKwo+ICAvKgo+ICAgKiBXZSBzaG91bGQgb25seSB1c2UgdGhlIHBvd2Vy IHdlbGwgaWYgd2UgZXhwbGljaXRseSBhc2tlZCB0aGUKPiBoYXJkd2FyZSB0bwo+ICAgKiBlbmFi bGUgaXQsIHNvIGNoZWNrIGlmIGl0J3MgZW5hYmxlZCBhbmQgYWxzbyBjaGVjayBpZiB3ZSd2ZQo+ IHJlcXVlc3RlZCBpdCB0bwo+IEBAIC0xODk3LDYgKzE5NDMsMTA1IEBAIHZvaWQgaW50ZWxfZGlz cGxheV9wb3dlcl9wdXQoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlC SVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQSkgfAkJCVwKPiAgCUJJVF9VTEwoUE9XRVJfRE9NQUlO X0lOSVQpKQo+ICAKPiArLyoKPiArICogSUNMIFBXXzAvUEdfMCBkb21haW5zIChIVy9ETUMgY29u dHJvbCk6Cj4gKyAqIC0gUENJCj4gKyAqIC0gY2xvY2tzIGV4Y2VwdCBwb3J0IFBMTAo+ICsgKiAt IGNlbnRyYWwgcG93ZXIgZXhjZXB0IEZCQwo+ICsgKiAtIHNoYXJlZCBmdW5jdGlvbnMgZXhjZXB0 IHBpcGUgaW50ZXJydXB0cywgcGlwZSBNQlVTLCBEQlVGCj4gcmVnaXN0ZXJzCj4gKyAqIElDTCBQ V18xL1BHXzEgZG9tYWlucyAoSFcvRE1DIGNvbnRyb2wpOgo+ICsgKiAtIERCVUYgZnVuY3Rpb24K PiArICogLSBQSVBFX0EgYW5kIGl0cyBwbGFuZXMsIGV4Y2VwdCBWR0EKPiArICogLSB0cmFuc2Nv ZGVyIEVEUCArIFBTUgo+ICsgKiAtIHRyYW5zY29kZXIgRFNJCj4gKyAqIC0gRERJX0EKPiArICog LSBGQkMKPiArICovCj4gKyNkZWZpbmUgSUNMX1BXXzRfUE9XRVJfRE9NQUlOUyAoCQkJXAo+ICsJ QklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01B SU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklU KSkKPiArCS8qIFZEU0Mvam9pbmluZyAqLwo+ICsjZGVmaW5lIElDTF9QV18zX1BPV0VSX0RPTUFJ TlMgKAkJCVwKPiArCUlDTF9QV180X1BPV0VSX0RPTUFJTlMgfAkJCVwKPiArCUJJVF9VTEwoUE9X RVJfRE9NQUlOX1BJUEVfQikgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09E RVJfQSkgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9CKSB8CQlcCj4g KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0MpIHwJCVwKPiArCUJJVF9VTEwoUE9X RVJfRE9NQUlOX1BJUEVfQl9QQU5FTF9GSVRURVIpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9ET01B SU5fUE9SVF9ERElfQl9MQU5FUykgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RE SV9CX0lPKSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8 CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfSU8pIHwJCVwKPiArCUJJVF9V TEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVMpIHwJXAo+ICsJQklUX1VMTChQT1dFUl9E T01BSU5fUE9SVF9ERElfRF9JTykgfAkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9E RElfRV9MQU5FUykgfAlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0lPKSB8 CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9GX0xBTkVTKSB8CVwKPiArCUJJ VF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0ZfSU8pIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJf RE9NQUlOX0FVWF9CKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0MpIHwJCQlc Cj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfRCkgfAkJCVwKPiArCUJJVF9VTEwoUE9XRVJf RE9NQUlOX0FVWF9FKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0YpIHwJCQlc Cj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUMSkgfAkJXAo+ICsJQklUX1VMTChQT1dF Ul9ET01BSU5fQVVYX1RCVDIpIHwJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9UQlQz KSB8CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUNCkgfAkJXAo+ICsJQklUX1VM TChQT1dFUl9ET01BSU5fVkdBKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVESU8p IHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiArCS8qCj4gKwkqIC0gdHJh bnNjb2RlciBXRAo+ICsJKiAtIEtWTVIgKEhXIGNvbnRyb2wpCj4gKwkqLwo+ICsjZGVmaW5lIElD TF9QV18yX1BPV0VSX0RPTUFJTlMgKAkJCVwKPiArCUlDTF9QV18zX1BPV0VSX0RPTUFJTlMgfAkJ CVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICsJLyoKPiArCSogLSBlRFAvRFNJ IFZEU0MKPiArCSogLSBLVk1SIChIVyBjb250cm9sKQo+ICsJKi8KPiArI2RlZmluZSBJQ0xfRElT UExBWV9EQ19PRkZfUE9XRVJfRE9NQUlOUyAoCQlcCj4gKwlJQ0xfUFdfMl9QT1dFUl9ET01BSU5T IHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9NT0RFU0VUKSB8CQkJXAo+ICsJQklUX1VM TChQT1dFUl9ET01BSU5fQVVYX0EpIHwJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklU KSkKPiArCj4gKyNkZWZpbmUgSUNMX0RESV9JT19BX1BPV0VSX0RPTUFJTlMgKAkJCVwKPiArCUJJ VF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0FfSU8pKQo+ICsjZGVmaW5lIElDTF9ERElfSU9f Ql9QT1dFUl9ET01BSU5TICgJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9C X0lPKSkKPiArI2RlZmluZSBJQ0xfRERJX0lPX0NfUE9XRVJfRE9NQUlOUyAoCQkJXAo+ICsJQklU X1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19JTykpCj4gKyNkZWZpbmUgSUNMX0RESV9JT19E X1BPV0VSX0RPTUFJTlMgKAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0Rf SU8pKQo+ICsjZGVmaW5lIElDTF9ERElfSU9fRV9QT1dFUl9ET01BSU5TICgJCQlcCj4gKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9FX0lPKSkKPiArI2RlZmluZSBJQ0xfRERJX0lPX0Zf UE9XRVJfRE9NQUlOUyAoCQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfRl9J TykpCj4gKwo+ICsjZGVmaW5lIElDTF9BVVhfQV9JT19QT1dFUl9ET01BSU5TICgJCQlcCj4gKwlC SVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQSkpCj4gKyNkZWZpbmUgSUNMX0FVWF9CX0lPX1BPV0VS X0RPTUFJTlMgKAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9CKSkKPiArI2RlZmlu ZSBJQ0xfQVVYX0NfSU9fUE9XRVJfRE9NQUlOUyAoCQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01B SU5fQVVYX0MpKQo+ICsjZGVmaW5lIElDTF9BVVhfRF9JT19QT1dFUl9ET01BSU5TICgJCQlcCj4g KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfRCkpCj4gKyNkZWZpbmUgSUNMX0FVWF9FX0lPX1BP V0VSX0RPTUFJTlMgKAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9FKSkKPiArI2Rl ZmluZSBJQ0xfQVVYX0ZfSU9fUE9XRVJfRE9NQUlOUyAoCQkJXAo+ICsJQklUX1VMTChQT1dFUl9E T01BSU5fQVVYX0YpKQo+ICsjZGVmaW5lIElDTF9BVVhfVEJUMV9JT19QT1dFUl9ET01BSU5TICgJ CQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJUMSkpCj4gKyNkZWZpbmUgSUNMX0FV WF9UQlQyX0lPX1BPV0VSX0RPTUFJTlMgKAkJCVwKPiArCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FV WF9UQlQyKSkKPiArI2RlZmluZSBJQ0xfQVVYX1RCVDNfSU9fUE9XRVJfRE9NQUlOUyAoCQkJXAo+ ICsJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX1RCVDMpKQo+ICsjZGVmaW5lIElDTF9BVVhfVEJU NF9JT19QT1dFUl9ET01BSU5TICgJCQlcCj4gKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfVEJU NCkpCj4gKwo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMKPiBpOXh4 X2Fsd2F5c19vbl9wb3dlcl93ZWxsX29wcyA9IHsKPiAgCS5zeW5jX2h3ID0gaTl4eF9wb3dlcl93 ZWxsX3N5bmNfaHdfbm9vcCwKPiAgCS5lbmFibGUgPSBpOXh4X2Fsd2F5c19vbl9wb3dlcl93ZWxs X25vb3AsCj4gQEAgLTI0NTQsNiArMjU5OSwxNTcgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3Bvd2Vy X3dlbGwKPiBjbmxfcG93ZXJfd2VsbHNbXSA9IHsKPiAgCX0sCj4gIH07Cj4gIAo+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMKPiBpY2xfY29tYm9fcGh5X2F1eF9wb3dl cl93ZWxsX29wcyA9IHsKPiArCS5zeW5jX2h3ID0gaHN3X3Bvd2VyX3dlbGxfc3luY19odywKPiAr CS5lbmFibGUgPSBpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX2VuYWJsZSwKPiArCS5kaXNh YmxlID0gaWNsX2NvbWJvX3BoeV9hdXhfcG93ZXJfd2VsbF9kaXNhYmxlLAo+ICsJLmlzX2VuYWJs ZWQgPSBoc3dfcG93ZXJfd2VsbF9lbmFibGVkLAo+ICt9Owo+ICsKPiArc3RhdGljIHN0cnVjdCBp OTE1X3Bvd2VyX3dlbGwgaWNsX3Bvd2VyX3dlbGxzW10gPSB7Cj4gKwl7Cj4gKwkJLm5hbWUgPSAi YWx3YXlzLW9uIiwKPiArCQkuYWx3YXlzX29uID0gMSwKPiArCQkuZG9tYWlucyA9IFBPV0VSX0RP TUFJTl9NQVNLLAo+ICsJCS5vcHMgPSAmaTl4eF9hbHdheXNfb25fcG93ZXJfd2VsbF9vcHMsCj4g KwkJLmlkID0gSTkxNV9ESVNQX1BXX0FMV0FZU19PTiwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUg PSAicG93ZXIgd2VsbCAxIiwKPiArCQkvKiBIYW5kbGVkIGJ5IHRoZSBETUMgZmlybXdhcmUgKi8K PiArCQkuZG9tYWlucyA9IDAsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJ LmlkID0gSUNMX0RJU1BfUFdfMSwKPiArCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCj4gKwl9LAo+ ICsJewo+ICsJCS5uYW1lID0gInBvd2VyIHdlbGwgMiIsCj4gKwkJLmRvbWFpbnMgPSBJQ0xfUFdf Ml9QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5p ZCA9IElDTF9ESVNQX1BXXzIsCj4gKwkJLmhzdy5oYXNfZnVzZXMgPSB0cnVlLAo+ICsJfSwKPiAr CXsKPiArCQkubmFtZSA9ICJEQyBvZmYiLAo+ICsJCS5kb21haW5zID0gSUNMX0RJU1BMQVlfRENf T0ZGX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZnZW45X2RjX29mZl9wb3dlcl93ZWxsX29w cywKPiArCQkuaWQgPSBTS0xfRElTUF9QV19EQ19PRkYsCj4gKwl9LAo+ICsJewo+ICsJCS5uYW1l ID0gInBvd2VyIHdlbGwgMyIsCj4gKwkJLmRvbWFpbnMgPSBJQ0xfUFdfM19QT1dFUl9ET01BSU5T LAo+ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5pZCA9IElDTF9ESVNQX1BX XzMsCj4gKwkJLmhzdy5pcnFfcGlwZV9tYXNrID0gQklUKFBJUEVfQiksCj4gKwkJLmhzdy5oYXNf dmdhID0gdHJ1ZSwKPiArCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCj4gKwl9LAo+ICsJewo+ICsJ CS5uYW1lID0gIkRESSBBIElPIiwKPiArCQkuZG9tYWlucyA9IElDTF9ERElfSU9fQV9QT1dFUl9E T01BSU5TLAo+ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5pZCA9IElDTF9E SVNQX1BXX0RESV9BLAo+ICsJfSwKPiArCXsKPiArCQkubmFtZSA9ICJEREkgQiBJTyIsCj4gKwkJ LmRvbWFpbnMgPSBJQ0xfRERJX0lPX0JfUE9XRVJfRE9NQUlOUywKPiArCQkub3BzID0gJmhzd19w b3dlcl93ZWxsX29wcywKPiArCQkuaWQgPSBJQ0xfRElTUF9QV19ERElfQiwKPiArCX0sCj4gKwl7 Cj4gKwkJLm5hbWUgPSAiRERJIEMgSU8iLAo+ICsJCS5kb21haW5zID0gSUNMX0RESV9JT19DX1BP V0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0g SUNMX0RJU1BfUFdfRERJX0MsCj4gKwl9LAo+ICsJewo+ICsJCS5uYW1lID0gIkRESSBEIElPIiwK PiArCQkuZG9tYWlucyA9IElDTF9ERElfSU9fRF9QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAm aHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5pZCA9IElDTF9ESVNQX1BXX0RESV9ELAo+ICsJfSwK PiArCXsKPiArCQkubmFtZSA9ICJEREkgRSBJTyIsCj4gKwkJLmRvbWFpbnMgPSBJQ0xfRERJX0lP X0VfUE9XRVJfRE9NQUlOUywKPiArCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiArCQku aWQgPSBJQ0xfRElTUF9QV19ERElfRSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiRERJIEYg SU8iLAo+ICsJCS5kb21haW5zID0gSUNMX0RESV9JT19GX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9w cyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gSUNMX0RJU1BfUFdfRERJX0YsCj4g Kwl9LAo+ICsJewo+ICsJCS5uYW1lID0gIkFVWCBBIiwKPiArCQkuZG9tYWlucyA9IElDTF9BVVhf QV9JT19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaWNsX2NvbWJvX3BoeV9hdXhfcG93ZXJf d2VsbF9vcHMsCj4gKwkJLmlkID0gSUNMX0RJU1BfUFdfQVVYX0EsCj4gKwl9LAo+ICsJewo+ICsJ CS5uYW1lID0gIkFVWCBCIiwKPiArCQkuZG9tYWlucyA9IElDTF9BVVhfQl9JT19QT1dFUl9ET01B SU5TLAo+ICsJCS5vcHMgPSAmaWNsX2NvbWJvX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMsCj4gKwkJ LmlkID0gSUNMX0RJU1BfUFdfQVVYX0IsCj4gKwl9LAo+ICsJewo+ICsJCS5uYW1lID0gIkFVWCBD IiwKPiArCQkuZG9tYWlucyA9IElDTF9BVVhfQ19JT19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMg PSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5pZCA9IElDTF9ESVNQX1BXX0FVWF9DLAo+ICsJ fSwKPiArCXsKPiArCQkubmFtZSA9ICJBVVggRCIsCj4gKwkJLmRvbWFpbnMgPSBJQ0xfQVVYX0Rf SU9fUE9XRVJfRE9NQUlOUywKPiArCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiArCQku aWQgPSBJQ0xfRElTUF9QV19BVVhfRCwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIEUi LAo+ICsJCS5kb21haW5zID0gSUNMX0FVWF9FX0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9 ICZoc3dfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmlkID0gSUNMX0RJU1BfUFdfQVVYX0UsCj4gKwl9 LAo+ICsJewo+ICsJCS5uYW1lID0gIkFVWCBGIiwKPiArCQkuZG9tYWlucyA9IElDTF9BVVhfRl9J T19QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5p ZCA9IElDTF9ESVNQX1BXX0FVWF9GLAo+ICsJfSwKPiArCXsKPiArCQkubmFtZSA9ICJBVVggVEJU MSIsCj4gKwkJLmRvbWFpbnMgPSBJQ0xfQVVYX1RCVDFfSU9fUE9XRVJfRE9NQUlOUywKPiArCQku b3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiArCQkuaWQgPSBJQ0xfRElTUF9QV19BVVhfVEJU MSwKPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiQVVYIFRCVDIiLAo+ICsJCS5kb21haW5zID0g SUNMX0FVWF9UQlQyX0lPX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2Vs bF9vcHMsCj4gKwkJLmlkID0gSUNMX0RJU1BfUFdfQVVYX1RCVDIsCj4gKwl9LAo+ICsJewo+ICsJ CS5uYW1lID0gIkFVWCBUQlQzIiwKPiArCQkuZG9tYWlucyA9IElDTF9BVVhfVEJUM19JT19QT1dF Ul9ET01BSU5TLAo+ICsJCS5vcHMgPSAmaHN3X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5pZCA9IElD TF9ESVNQX1BXX0FVWF9UQlQzLAo+ICsJfSwKPiArCXsKPiArCQkubmFtZSA9ICJBVVggVEJUNCIs Cj4gKwkJLmRvbWFpbnMgPSBJQ0xfQVVYX1RCVDRfSU9fUE9XRVJfRE9NQUlOUywKPiArCQkub3Bz ID0gJmhzd19wb3dlcl93ZWxsX29wcywKPiArCQkuaWQgPSBJQ0xfRElTUF9QV19BVVhfVEJUNCwK PiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAicG93ZXIgd2VsbCA0IiwKPiArCQkuZG9tYWlucyA9 IElDTF9QV180X1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZoc3dfcG93ZXJfd2VsbF9vcHMs Cj4gKwkJLmlkID0gSUNMX0RJU1BfUFdfNCwKPiArCQkuaHN3Lmhhc19mdXNlcyA9IHRydWUsCj4g KwkJLmhzdy5pcnFfcGlwZV9tYXNrID0gQklUKFBJUEVfQyksCj4gKwl9LAo+ICt9Owo+ICsKPiAg c3RhdGljIGludAo+ICBzYW5pdGl6ZV9kaXNhYmxlX3Bvd2VyX3dlbGxfb3B0aW9uKGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2LAo+ICAJCQkJICAgaW50IGRpc2FibGVf cG93ZXJfd2VsbCkKPiBAQCAtMjQ3MSw3ICsyNzY3LDcgQEAgc3RhdGljIHVpbnQzMl90IGdldF9h bGxvd2VkX2RjX21hc2soY29uc3QKPiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAlpbnQgcmVxdWVzdGVkX2RjOwo+ICAJaW50IG1heF9kYzsKPiAgCj4gLQlpZiAoSVNfR0VO OV9CQyhkZXZfcHJpdikgfHwgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKPiArCWlmIChJU19H RU45X0JDKGRldl9wcml2KSB8fCBJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDEwKQo+IHsK PiAgCQltYXhfZGMgPSAyOwo+ICAJCW1hc2sgPSAwOwo+ICAJfSBlbHNlIGlmIChJU19HRU45X0xQ KGRldl9wcml2KSkgewo+IEBAIC0yNTU5LDcgKzI4NTUsOSBAQCBpbnQgaW50ZWxfcG93ZXJfZG9t YWluc19pbml0KHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJICogVGhl IGVuYWJsaW5nIG9yZGVyIHdpbGwgYmUgZnJvbSBsb3dlciB0byBoaWdoZXIgaW5kZXhlZAo+IHdl bGxzLAo+ICAJICogdGhlIGRpc2FibGluZyBvcmRlciBpcyByZXZlcnNlZC4KPiAgCSAqLwo+IC0J aWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Cj4gKwlpZiAoSVNfSUNFTEFLRShkZXZfcHJpdikp IHsKPiArCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgaWNsX3Bvd2VyX3dlbGxzKTsK PiArCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKPiAgCQlzZXRfcG93ZXJfd2Vs bHMocG93ZXJfZG9tYWlucywgaHN3X3Bvd2VyX3dlbGxzKTsKPiAgCX0gZWxzZSBpZiAoSVNfQlJP QURXRUxMKGRldl9wcml2KSkgewo+ICAJCXNldF9wb3dlcl93ZWxscyhwb3dlcl9kb21haW5zLCBi ZHdfcG93ZXJfd2VsbHMpOwo+IEBAIC0zMDI2LDYgKzMzMjQsOCBAQCBzdGF0aWMgdm9pZCBjbmxf ZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgc3RhdGljIHZvaWQgaWNsX2Rpc3BsYXlfY29yZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiAgCQkJCSAgYm9vbCByZXN1bWUpCj4gIHsKPiArCXN0cnVjdCBpOTE1 X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtCj4gPnBvd2VyX2RvbWFp bnM7Cj4gKwlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICp3ZWxsOwo+ICAJZW51bSBwb3J0IHBvcnQ7 Cj4gIAl1MzIgdmFsOwo+ICAKPiBAQCAtMzA1NCw4ICszMzU0LDE0IEBAIHN0YXRpYyB2b2lkIGlj bF9kaXNwbGF5X2NvcmVfaW5pdChzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAgCQlJOTE1X1dSSVRFKElDTF9QT1JUX0NMX0RXNShwb3J0KSwgdmFsKTsKPiAgCX0KPiAgCj4g LQkvKiA0LiBFbmFibGUgcG93ZXIgd2VsbCAxIChQRzEpIGFuZCBhdXggSU8gcG93ZXIuICovCj4g LQkvKiBGSVhNRTogSUNMIHBvd2VyIHdlbGxzIGNvZGUgbm90IGhlcmUgeWV0LiAqLwo+ICsJLyoK PiArCSAqIDQuIEVuYWJsZSBQb3dlciBXZWxsIDEgKFBHMSkuCj4gKwkgKiAgICBUaGUgQVVYIElP IHBvd2VyIHdlbGxzIHdpbGwgYmUgZW5hYmxlZCBvbiBkZW1hbmQuCj4gKwkgKi8KPiArCW11dGV4 X2xvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwo+ICsJd2VsbCA9IGxvb2t1cF9wb3dlcl93ZWxs KGRldl9wcml2LCBJQ0xfRElTUF9QV18xKTsKPiArCWludGVsX3Bvd2VyX3dlbGxfZW5hYmxlKGRl dl9wcml2LCB3ZWxsKTsKPiArCW11dGV4X3VubG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7Cj4g IAo+ICAJLyogNS4gRW5hYmxlIENEQ0xLLiAqLwo+ICAJaWNsX2luaXRfY2RjbGsoZGV2X3ByaXYp Owo+IEBAIC0zMDczLDYgKzMzNzksOCBAQCBzdGF0aWMgdm9pZCBpY2xfZGlzcGxheV9jb3JlX2lu aXQoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAo+ICBzdGF0aWMgdm9p ZCBpY2xfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZf cHJpdikKPiAgewo+ICsJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9 ICZkZXZfcHJpdi0KPiA+cG93ZXJfZG9tYWluczsKPiArCXN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwg KndlbGw7Cj4gIAllbnVtIHBvcnQgcG9ydDsKPiAgCXUzMiB2YWw7Cj4gIAo+IEBAIC0zMDg2LDgg KzMzOTQsMTUgQEAgc3RhdGljIHZvaWQgaWNsX2Rpc3BsYXlfY29yZV91bmluaXQoc3RydWN0Cj4g ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkvKiAzLiBEaXNhYmxlIENEIGNsb2NrICov Cj4gIAlpY2xfdW5pbml0X2NkY2xrKGRldl9wcml2KTsKPiAgCj4gLQkvKiA0LiBEaXNhYmxlIFBv d2VyIFdlbGwgMSAoUEcxKSBhbmQgQXV4IElPIFBvd2VyICovCj4gLQkvKiBGSVhNRTogSUNMIHBv d2VyIHdlbGxzIGNvZGUgbm90IGhlcmUgeWV0LiAqLwo+ICsJLyoKPiArCSAqIDQuIERpc2FibGUg UG93ZXIgV2VsbCAxIChQRzEpLgo+ICsJICogICAgVGhlIEFVWCBJTyBwb3dlciB3ZWxscyBhcmUg dG9nZ2xlZCBvbiBkZW1hbmQsIHNvIHRoZXkKPiBhcmUgYWxyZWFkeQo+ICsJICogICAgZGlzYWJs ZWQgYXQgdGhpcyBwb2ludC4KPiArCSAqLwo+ICsJbXV0ZXhfbG9jaygmcG93ZXJfZG9tYWlucy0+ bG9jayk7Cj4gKwl3ZWxsID0gbG9va3VwX3Bvd2VyX3dlbGwoZGV2X3ByaXYsIElDTF9ESVNQX1BX XzEpOwo+ICsJaW50ZWxfcG93ZXJfd2VsbF9kaXNhYmxlKGRldl9wcml2LCB3ZWxsKTsKPiArCW11 dGV4X3VubG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7Cj4gIAo+ICAJLyogNS4gRGlzYWJsZSBD b21wICovCj4gIAlmb3IgKHBvcnQgPSBQT1JUX0E7IHBvcnQgPD0gUE9SVF9COyBwb3J0KyspIHsK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==