From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 3/5] drm/amdgpu: Avoid to use SOC15_REG_OFFSET in static const array Date: Wed, 29 Nov 2017 21:08:00 +0100 Message-ID: References: <1511982590-8745-1-git-send-email-Shaoyun.Liu@amd.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1511982590-8745-1-git-send-email-Shaoyun.Liu-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Shaoyun Liu , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org QW0gMjkuMTEuMjAxNyB1bSAyMDowOSBzY2hyaWViIFNoYW95dW4gTGl1Ogo+IENoYW5nZS1JZDog STU5ODI4YTlhMTA2NTI5ODhlMjJiNTBkODdkZDFlYzlkZjhhZTdhMWQKPiBTaWduZWQtb2ZmLWJ5 OiBTaGFveXVuIExpdSA8U2hhb3l1bi5MaXVAYW1kLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8wLmMgICAgIHwgMjU5ICsrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYyAgICAg fCAgMTQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjZfMS5jICAgIHwg IDEzICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzAuYyAgICB8ICAx MiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMgICAgfCAgODgg KysrKystLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUuYyAgICAgICAg fCAgOTMgKysrKysrKystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1Lmgg ICAgICAgIHwgICA0ICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1X2NvbW1v bi5oIHwgICAzICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMgICAg IHwgICAzICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFfMC5jICAgICB8 ICAgMiArLQo+ICAgMTAgZmlsZXMgY2hhbmdlZCwgMjc4IGluc2VydGlvbnMoKyksIDIxMyBkZWxl dGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhf djlfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYwo+IGluZGV4IDU0 OTdlZDYuLmYwNTYwZDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z2Z4X3Y5XzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8wLmMK PiBAQCAtNjcsMTUwICs2NywxNTEgQEAKPiAgIAo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRn cHVfZ2RzX3JlZ19vZmZzZXQgYW1kZ3B1X2dkc19yZWdfb2Zmc2V0W10gPQo+ICAgewo+IC0JeyBT T0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMF9CQVNFKSwKPiAtCSAgU09DMTVfUkVH X09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDBfU0laRSksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQo R0MsIDAsIG1tR0RTX0dXU19WTUlEMCksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1t R0RTX09BX1ZNSUQwKSB9LAo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlE MV9CQVNFKSwKPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDFfU0laRSks Cj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEMSksCj4gLQkgIFNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQxKSB9LAo+IC0JeyBTT0MxNV9SRUdf T0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMl9CQVNFKSwKPiAtCSAgU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1HRFNfVk1JRDJfU0laRSksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1t R0RTX0dXU19WTUlEMiksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZN SUQyKSB9LAo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEM19CQVNFKSwK PiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDNfU0laRSksCj4gLQkgIFNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEMyksCj4gLQkgIFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQzKSB9LAo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdD LCAwLCBtbUdEU19WTUlENF9CQVNFKSwKPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1H RFNfVk1JRDRfU0laRSksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19W TUlENCksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQ0KSB9LAo+ IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlENV9CQVNFKSwKPiAtCSAgU09D MTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDVfU0laRSksCj4gLQkgIFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlENSksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0Ms IDAsIG1tR0RTX09BX1ZNSUQ1KSB9LAo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdE U19WTUlENl9CQVNFKSwKPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDZf U0laRSksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlENiksCj4g LQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQ2KSB9LAo+IC0JeyBTT0Mx NV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEN19CQVNFKSwKPiAtCSAgU09DMTVfUkVHX09G RlNFVChHQywgMCwgbW1HRFNfVk1JRDdfU0laRSksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0Ms IDAsIG1tR0RTX0dXU19WTUlENyksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RT X09BX1ZNSUQ3KSB9LAo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEOF9C QVNFKSwKPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDhfU0laRSksCj4g LQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEOCksCj4gLQkgIFNPQzE1 X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQ4KSB9LAo+IC0JeyBTT0MxNV9SRUdfT0ZG U0VUKEdDLCAwLCBtbUdEU19WTUlEOV9CQVNFKSwKPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywg MCwgbW1HRFNfVk1JRDlfU0laRSksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RT X0dXU19WTUlEOSksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQ5 KSB9LAo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMTBfQkFTRSksCj4g LQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQxMF9TSVpFKSwKPiAtCSAgU09D MTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfR1dTX1ZNSUQxMCksCj4gLQkgIFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQxMCkgfSwKPiAtCXsgU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1HRFNfVk1JRDExX0JBU0UpLAo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBt bUdEU19WTUlEMTFfU0laRSksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dX U19WTUlEMTEpLAo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19PQV9WTUlEMTEp IH0sCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQxMl9CQVNFKSwKPiAt CSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDEyX1NJWkUpLAo+IC0JICBTT0Mx NV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19HV1NfVk1JRDEyKSwKPiAtCSAgU09DMTVfUkVHX09G RlNFVChHQywgMCwgbW1HRFNfT0FfVk1JRDEyKX0sCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0Ms IDAsIG1tR0RTX1ZNSUQxM19CQVNFKSwKPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1H RFNfVk1JRDEzX1NJWkUpLAo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19HV1Nf Vk1JRDEzKSwKPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfT0FfVk1JRDEzKSB9 LAo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMTRfQkFTRSksCj4gLQkg IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQxNF9TSVpFKSwKPiAtCSAgU09DMTVf UkVHX09GRlNFVChHQywgMCwgbW1HRFNfR1dTX1ZNSUQxNCksCj4gLQkgIFNPQzE1X1JFR19PRkZT RVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQxNCkgfSwKPiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywg MCwgbW1HRFNfVk1JRDE1X0JBU0UpLAo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdE U19WTUlEMTVfU0laRSksCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19W TUlEMTUpLAo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19PQV9WTUlEMTUpIH0K PiArCS8qIEZpeCBtZSBpZiBHQyBiYXNlIGZvciB0aGUgcmVnaXN0ZXIgaXMgbm90IDB4MjAwMCBp biB0aGUgZnV0dXJlIGFzaWMgKi8KClllYWgsIHdlIG5lZWQgYSBiZXR0ZXIgc29sdXRpb24gZm9y IHRoaXMuCgpIb3cgYWJvdXQgYSBWRzEwX0dPTERFTl9SRUcgbWFjcm8gb3Igc29tZXRoaW5nIGxp a2UgdGhpcz8KClJlZ2FyZHMsCkNocmlzdGlhbi4KCj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlE MF9CQVNFKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX1ZNSUQwX1NJWkUpLAo+ICsJICAoMHgyMDAw ICsgbW1HRFNfR1dTX1ZNSUQwKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQwKSB9LAo+ ICsJeyAoMHgyMDAwICsgbW1HRFNfVk1JRDFfQkFTRSksCj4gKwkgICgweDIwMDAgKyBtbUdEU19W TUlEMV9TSVpFKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX0dXU19WTUlEMSksCj4gKwkgICgweDIw MDAgKyBtbUdEU19PQV9WTUlEMSkgfSwKPiArCXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQyX0JBU0Up LAo+ICsJICAoMHgyMDAwICsgbW1HRFNfVk1JRDJfU0laRSksCj4gKwkgICgweDIwMDAgKyBtbUdE U19HV1NfVk1JRDIpLAo+ICsJICAoMHgyMDAwICsgbW1HRFNfT0FfVk1JRDIpIH0sCj4gKwl7ICgw eDIwMDAgKyBtbUdEU19WTUlEM19CQVNFKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX1ZNSUQzX1NJ WkUpLAo+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQzKSwKPiArCSAgKDB4MjAwMCArIG1t R0RTX09BX1ZNSUQzKSB9LAo+ICsJeyAoMHgyMDAwICsgbW1HRFNfVk1JRDRfQkFTRSksCj4gKwkg ICgweDIwMDAgKyBtbUdEU19WTUlENF9TSVpFKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX0dXU19W TUlENCksCj4gKwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlENCkgfSwKPiArCXsgKDB4MjAwMCAr IG1tR0RTX1ZNSUQ1X0JBU0UpLAo+ICsJICAoMHgyMDAwICsgbW1HRFNfVk1JRDVfU0laRSksCj4g KwkgICgweDIwMDAgKyBtbUdEU19HV1NfVk1JRDUpLAo+ICsJICAoMHgyMDAwICsgbW1HRFNfT0Ff Vk1JRDUpIH0sCj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlENl9CQVNFKSwKPiArCSAgKDB4MjAw MCArIG1tR0RTX1ZNSUQ2X1NJWkUpLAo+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQ2KSwK PiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQ2KSB9LAo+ICsJeyAoMHgyMDAwICsgbW1HRFNf Vk1JRDdfQkFTRSksCj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlEN19TSVpFKSwKPiArCSAgKDB4 MjAwMCArIG1tR0RTX0dXU19WTUlENyksCj4gKwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlENykg fSwKPiArCXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQ4X0JBU0UpLAo+ICsJICAoMHgyMDAwICsgbW1H RFNfVk1JRDhfU0laRSksCj4gKwkgICgweDIwMDAgKyBtbUdEU19HV1NfVk1JRDgpLAo+ICsJICAo MHgyMDAwICsgbW1HRFNfT0FfVk1JRDgpIH0sCj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlEOV9C QVNFKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX1ZNSUQ5X1NJWkUpLAo+ICsJICAoMHgyMDAwICsg bW1HRFNfR1dTX1ZNSUQ5KSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQ5KSB9LAo+ICsJ eyAoMHgyMDAwICsgbW1HRFNfVk1JRDEwX0JBU0UpLAo+ICsJICAoMHgyMDAwICsgbW1HRFNfVk1J RDEwX1NJWkUpLAo+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQxMCksCj4gKwkgICgweDIw MDAgKyBtbUdEU19PQV9WTUlEMTApIH0sCj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlEMTFfQkFT RSksCj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlEMTFfU0laRSksCj4gKwkgICgweDIwMDAgKyBt bUdEU19HV1NfVk1JRDExKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQxMSkgfSwKPiAr CXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQxMl9CQVNFKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX1ZN SUQxMl9TSVpFKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX0dXU19WTUlEMTIpLAo+ICsJICAoMHgy MDAwICsgbW1HRFNfT0FfVk1JRDEyKX0sCj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlEMTNfQkFT RSksCj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlEMTNfU0laRSksCj4gKwkgICgweDIwMDAgKyBt bUdEU19HV1NfVk1JRDEzKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQxMykgfSwKPiAr CXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQxNF9CQVNFKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX1ZN SUQxNF9TSVpFKSwKPiArCSAgKDB4MjAwMCArIG1tR0RTX0dXU19WTUlEMTQpLAo+ICsJICAoMHgy MDAwICsgbW1HRFNfT0FfVk1JRDE0KSB9LAo+ICsJeyAoMHgyMDAwICsgbW1HRFNfVk1JRDE1X0JB U0UpLAo+ICsJICAoMHgyMDAwICsgbW1HRFNfVk1JRDE1X1NJWkUpLAo+ICsJICAoMHgyMDAwICsg bW1HRFNfR1dTX1ZNSUQxNSksCj4gKwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlEMTUpIH0KPiAg IH07Cj4gICAKPiAgIHN0YXRpYyBjb25zdCB1MzIgZ29sZGVuX3NldHRpbmdzX2djXzlfMFtdID0K PiAgIHsKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BDX1VUQ0wxX0NOVEwpLCAweDA4 MDAwMDAwLCAweDA4MDAwMDgwLAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1DUEZfVVRD TDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdD LCAwLCBtbUNQR19VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiAtCVNPQzE1 X1JFR19PRkZTRVQoR0MsIDAsIG1tREJfREVCVUcyKSwgMHhmMDBmZmZmZiwgMHgwMDAwMDQyMCwK PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0JfR1BVX0lEKSwgMHgwMDAwMDAwZiwgMHgw MDAwMDAwMCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tSUFfVVRDTDFfQ05UTCksIDB4 MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVBBX1ND X0JJTk5FUl9FVkVOVF9DTlRMXzMpLCAweDAwMDAwMDAzLCAweDgyNDAwMDI0LAo+IC0JU09DMTVf UkVHX09GRlNFVChHQywgMCwgbW1QQV9TQ19FTkhBTkNFKSwgMHgzZmZmZmZmZiwgMHgwMDAwMDAw MSwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUEFfU0NfTElORV9TVElQUExFX1NUQVRF KSwgMHgwMDAwZmYwZiwgMHgwMDAwMDAwMCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1t UkxDX0dQTV9VVENMMV9DTlRMXzApLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+IC0JU09DMTVf UkVHX09GRlNFVChHQywgMCwgbW1STENfR1BNX1VUQ0wxX0NOVExfMSksIDB4MDgwMDAwMDAsIDB4 MDgwMDAwODAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVJMQ19HUE1fVVRDTDFfQ05U TF8yKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAs IG1tUkxDX1BSRVdBTEtFUl9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiAt CVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX1NQTV9VVENMMV9DTlRMKSwgMHgwODAwMDAw MCwgMHgwODAwMDA4MCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tU0hfTUVNX0NPTkZJ RyksIDB4MDAwMDEwMDAsIDB4MDAwMDEwMDAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBt bVNQSV9DT05GSUdfQ05UTF8xKSwgMHgwMDAwMDAwZiwgMHgwMTAwMDEwNywKPiAtCVNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tU1FDX0NPTkZJRyksIDB4MDMwMDAwMDAsIDB4MDIwYTIwMDAsCj4g LQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVRBX0NOVExfQVVYKSwgMHhmZmZmZmVlZiwgMHgw MTBiMDAwMCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tVENQX0NIQU5fU1RFRVJfSEkp LCAweGZmZmZmZmZmLCAweDRhMmMwZTY4LAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1U Q1BfQ0hBTl9TVEVFUl9MTyksIDB4ZmZmZmZmZmYsIDB4YjVkM2YxOTcsCj4gLQlTT0MxNV9SRUdf T0ZGU0VUKEdDLCAwLCBtbVZHVF9DQUNIRV9JTlZBTElEQVRJT04pLCAweDNmZmYzYWYzLCAweDE5 MjAwMDAwLAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1WR1RfR1NfTUFYX1dBVkVfSUQp LCAweDAwMDAwZmZmLCAweDAwMDAwM2ZmLAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1X RF9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MAo+ICsJU09DMTVfUkVHX0VOVFJZ KEdDLCAwLCBtbUNQQ19VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiArCVNP QzE1X1JFR19FTlRSWShHQywgMCwgbW1DUEZfVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4MDgw MDAwODAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BHX1VUQ0wxX0NOVEwpLCAweDA4 MDAwMDAwLCAweDA4MDAwMDgwLAo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbURCX0RFQlVH MiksIDB4ZjAwZmZmZmYsIDB4MDAwMDA0MjAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1t R0JfR1BVX0lEKSwgMHgwMDAwMDAwZiwgMHgwMDAwMDAwMCwKPiArCVNPQzE1X1JFR19FTlRSWShH QywgMCwgbW1JQV9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiArCVNPQzE1 X1JFR19FTlRSWShHQywgMCwgbW1QQV9TQ19CSU5ORVJfRVZFTlRfQ05UTF8zKSwgMHgwMDAwMDAw MywgMHg4MjQwMDAyNCwKPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1QQV9TQ19FTkhBTkNF KSwgMHgzZmZmZmZmZiwgMHgwMDAwMDAwMSwKPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1Q QV9TQ19MSU5FX1NUSVBQTEVfU1RBVEUpLCAweDAwMDBmZjBmLCAweDAwMDAwMDAwLAo+ICsJU09D MTVfUkVHX0VOVFJZKEdDLCAwLCBtbVJMQ19HUE1fVVRDTDFfQ05UTF8wKSwgMHgwODAwMDAwMCwg MHgwODAwMDA4MCwKPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1STENfR1BNX1VUQ0wxX0NO VExfMSksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAs IG1tUkxDX0dQTV9VVENMMV9DTlRMXzIpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+ICsJU09D MTVfUkVHX0VOVFJZKEdDLCAwLCBtbVJMQ19QUkVXQUxLRVJfVVRDTDFfQ05UTCksIDB4MDgwMDAw MDAsIDB4MDgwMDAwODAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUkxDX1NQTV9VVENM MV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiArCVNPQzE1X1JFR19FTlRSWShHQywg MCwgbW1TSF9NRU1fQ09ORklHKSwgMHgwMDAwMTAwMCwgMHgwMDAwMTAwMCwKPiArCVNPQzE1X1JF R19FTlRSWShHQywgMCwgbW1TUElfQ09ORklHX0NOVExfMSksIDB4MDAwMDAwMGYsIDB4MDEwMDAx MDcsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FDX0NPTkZJRyksIDB4MDMwMDAwMDAs IDB4MDIwYTIwMDAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVEFfQ05UTF9BVVgpLCAw eGZmZmZmZWVmLCAweDAxMGIwMDAwLAo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVRDUF9D SEFOX1NURUVSX0hJKSwgMHhmZmZmZmZmZiwgMHg0YTJjMGU2OCwKPiArCVNPQzE1X1JFR19FTlRS WShHQywgMCwgbW1UQ1BfQ0hBTl9TVEVFUl9MTyksIDB4ZmZmZmZmZmYsIDB4YjVkM2YxOTcsCj4g KwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVkdUX0NBQ0hFX0lOVkFMSURBVElPTiksIDB4M2Zm ZjNhZjMsIDB4MTkyMDAwMDAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVkdUX0dTX01B WF9XQVZFX0lEKSwgMHgwMDAwMGZmZiwgMHgwMDAwMDNmZiwKPiArCVNPQzE1X1JFR19FTlRSWShH QywgMCwgbW1XRF9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MAo+ICAgfTsKPiAg IAo+ICAgc3RhdGljIGNvbnN0IHUzMiBnb2xkZW5fc2V0dGluZ3NfZ2NfOV8wX3ZnMTBbXSA9Cj4g ICB7Cj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNCX0hXX0NPTlRST0wpLCAweDAwMDBm MDAwLCAweDAwMDEyMTA3LAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1DQl9IV19DT05U Uk9MXzMpLCAweDMwMDAwMDAwLCAweDEwMDAwMDAwLAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywg MCwgbW1HQl9BRERSX0NPTkZJRyksIDB4ZmZmZjc3ZmYsIDB4MmExMTQwNDIsCj4gLQlTT0MxNV9S RUdfT0ZGU0VUKEdDLCAwLCBtbUdCX0FERFJfQ09ORklHX1JFQUQpLCAweGZmZmY3N2ZmLCAweDJh MTE0MDQyLAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1QQV9TQ19FTkhBTkNFXzEpLCAw eDAwMDA4MDAwLCAweDAwMDQ4MDAwLAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1STUlf VVRDTDFfQ05UTDIpLCAweDAwMDMwMDAwLCAweDAwMDIwMDAwLAo+IC0JU09DMTVfUkVHX09GRlNF VChHQywgMCwgbW1URF9DTlRMKSwgMHgwMDAwMTgwMCwgMHgwMDAwMDgwMAo+ICsJU09DMTVfUkVH X0VOVFJZKEdDLCAwLCBtbUNCX0hXX0NPTlRST0wpLCAweDAwMDBmMDAwLCAweDAwMDEyMTA3LAo+ ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNCX0hXX0NPTlRST0xfMyksIDB4MzAwMDAwMDAs IDB4MTAwMDAwMDAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0JfQUREUl9DT05GSUcp LCAweGZmZmY3N2ZmLCAweDJhMTE0MDQyLAo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdC X0FERFJfQ09ORklHX1JFQUQpLCAweGZmZmY3N2ZmLCAweDJhMTE0MDQyLAo+ICsJU09DMTVfUkVH X0VOVFJZKEdDLCAwLCBtbVBBX1NDX0VOSEFOQ0VfMSksIDB4MDAwMDgwMDAsIDB4MDAwNDgwMDAs Cj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUk1JX1VUQ0wxX0NOVEwyKSwgMHgwMDAzMDAw MCwgMHgwMDAyMDAwMCwKPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1URF9DTlRMKSwgMHgw MDAwMTgwMCwgMHgwMDAwMDgwMAo+ICAgfTsKPiAgIAo+ICAgc3RhdGljIGNvbnN0IHUzMiBnb2xk ZW5fc2V0dGluZ3NfZ2NfOV8xW10gPQo+ICAgewo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwg bW1DQl9IV19DT05UUk9MKSwgMHhmZmZkZjNjZiwgMHgwMDAxNDEwNCwKPiAtCVNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tQ1BDX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+ IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1DUEZfVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAs IDB4MDgwMDAwODAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNQR19VVENMMV9DTlRM KSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1t REJfREVCVUcyKSwgMHhmMDBmZmZmZiwgMHgwMDAwMDQyMCwKPiAtCVNPQzE1X1JFR19PRkZTRVQo R0MsIDAsIG1tR0JfR1BVX0lEKSwgMHgwMDAwMDAwZiwgMHgwMDAwMDAwMCwKPiAtCVNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tSUFfVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAs Cj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVBBX1NDX0JJTk5FUl9FVkVOVF9DTlRMXzMp LCAweDAwMDAwMDAzLCAweDgyNDAwMDI0LAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1Q QV9TQ19FTkhBTkNFKSwgMHgzZmZmZmZmZiwgMHgwMDAwMDAwMSwKPiAtCVNPQzE1X1JFR19PRkZT RVQoR0MsIDAsIG1tUEFfU0NfTElORV9TVElQUExFX1NUQVRFKSwgMHgwMDAwZmYwZiwgMHgwMDAw MDAwMCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX0dQTV9VVENMMV9DTlRMXzAp LCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1S TENfR1BNX1VUQ0wxX0NOVExfMSksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4gLQlTT0MxNV9S RUdfT0ZGU0VUKEdDLCAwLCBtbVJMQ19HUE1fVVRDTDFfQ05UTF8yKSwgMHgwODAwMDAwMCwgMHgw ODAwMDA4MCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX1BSRVdBTEtFUl9VVENM MV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0Ms IDAsIG1tUkxDX1NQTV9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiAtCVNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tVEFfQ05UTF9BVVgpLCAweGZmZmZmZWVmLCAweDAxMGIw MDAwLAo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1UQ1BfQ0hBTl9TVEVFUl9ISSksIDB4 ZmZmZmZmZmYsIDB4MDAwMDAwMDAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVRDUF9D SEFOX1NURUVSX0xPKSwgMHhmZmZmZmZmZiwgMHgwMDAwMzEyMCwKPiAtCVNPQzE1X1JFR19PRkZT RVQoR0MsIDAsIG1tVkdUX0NBQ0hFX0lOVkFMSURBVElPTiksIDB4M2ZmZjNhZjMsIDB4MTkyMDAw MDAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVZHVF9HU19NQVhfV0FWRV9JRCksIDB4 MDAwMDBmZmYsIDB4MDAwMDAwZmYsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVdEX1VU Q0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0Ms IDAsIG1tQ0JfSFdfQ09OVFJPTCksIDB4ZmZmZGYzY2YsIDB4MDAwMTQxMDQsCj4gKwlTT0MxNV9S RUdfRU5UUlkoR0MsIDAsIG1tQ1BDX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgw LAo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQRl9VVENMMV9DTlRMKSwgMHgwODAwMDAw MCwgMHgwODAwMDA4MCwKPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUEdfVVRDTDFfQ05U TCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1t REJfREVCVUcyKSwgMHhmMDBmZmZmZiwgMHgwMDAwMDQyMCwKPiArCVNPQzE1X1JFR19FTlRSWShH QywgMCwgbW1HQl9HUFVfSUQpLCAweDAwMDAwMDBmLCAweDAwMDAwMDAwLAo+ICsJU09DMTVfUkVH X0VOVFJZKEdDLCAwLCBtbUlBX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+ ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVBBX1NDX0JJTk5FUl9FVkVOVF9DTlRMXzMpLCAw eDAwMDAwMDAzLCAweDgyNDAwMDI0LAo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVBBX1ND X0VOSEFOQ0UpLCAweDNmZmZmZmZmLCAweDAwMDAwMDAxLAo+ICsJU09DMTVfUkVHX0VOVFJZKEdD LCAwLCBtbVBBX1NDX0xJTkVfU1RJUFBMRV9TVEFURSksIDB4MDAwMGZmMGYsIDB4MDAwMDAwMDAs Cj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUkxDX0dQTV9VVENMMV9DTlRMXzApLCAweDA4 MDAwMDAwLCAweDA4MDAwMDgwLAo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVJMQ19HUE1f VVRDTDFfQ05UTF8xKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiArCVNPQzE1X1JFR19FTlRS WShHQywgMCwgbW1STENfR1BNX1VUQ0wxX0NOVExfMiksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAs Cj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUkxDX1BSRVdBTEtFUl9VVENMMV9DTlRMKSwg MHgwODAwMDAwMCwgMHgwODAwMDA4MCwKPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1STENf U1BNX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLAo+ICsJU09DMTVfUkVHX0VO VFJZKEdDLCAwLCBtbVRBX0NOVExfQVVYKSwgMHhmZmZmZmVlZiwgMHgwMTBiMDAwMCwKPiArCVNP QzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ1BfQ0hBTl9TVEVFUl9ISSksIDB4ZmZmZmZmZmYsIDB4 MDAwMDAwMDAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVENQX0NIQU5fU1RFRVJfTE8p LCAweGZmZmZmZmZmLCAweDAwMDAzMTIwLAo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVZH VF9DQUNIRV9JTlZBTElEQVRJT04pLCAweDNmZmYzYWYzLCAweDE5MjAwMDAwLAo+ICsJU09DMTVf UkVHX0VOVFJZKEdDLCAwLCBtbVZHVF9HU19NQVhfV0FWRV9JRCksIDB4MDAwMDBmZmYsIDB4MDAw MDAwZmYsCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tV0RfVVRDTDFfQ05UTCksIDB4MDgw MDAwMDAsIDB4MDgwMDAwODAKPiAgIH07Cj4gICAKPiAgIHN0YXRpYyBjb25zdCB1MzIgZ29sZGVu X3NldHRpbmdzX2djXzlfMV9ydjFbXSA9Cj4gICB7Cj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAw LCBtbUNCX0hXX0NPTlRST0xfMyksIDB4MzAwMDAwMDAsIDB4MTAwMDAwMDAsCj4gLQlTT0MxNV9S RUdfT0ZGU0VUKEdDLCAwLCBtbUdCX0FERFJfQ09ORklHKSwgMHhmZmZmNzdmZiwgMHgyNDAwMDA0 MiwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0JfQUREUl9DT05GSUdfUkVBRCksIDB4 ZmZmZjc3ZmYsIDB4MjQwMDAwNDIsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVBBX1ND X0VOSEFOQ0VfMSksIDB4ZmZmZmZmZmYsIDB4MDQwNDgwMDAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VU KEdDLCAwLCBtbVBBX1NDX01PREVfQ05UTF8xKSwgMHgwNjAwMDAwMCwgMHgwNjAwMDAwMCwKPiAt CVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUk1JX1VUQ0wxX0NOVEwyKSwgMHgwMDAzMDAwMCwg MHgwMDAyMDAwMCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tVERfQ05UTCksIDB4MDFi ZDlmMzMsIDB4MDAwMDA4MDAKPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DQl9IV19DT05U Uk9MXzMpLCAweDMwMDAwMDAwLCAweDEwMDAwMDAwLAo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAw LCBtbUdCX0FERFJfQ09ORklHKSwgMHhmZmZmNzdmZiwgMHgyNDAwMDA0MiwKPiArCVNPQzE1X1JF R19FTlRSWShHQywgMCwgbW1HQl9BRERSX0NPTkZJR19SRUFEKSwgMHhmZmZmNzdmZiwgMHgyNDAw MDA0MiwKPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1QQV9TQ19FTkhBTkNFXzEpLCAweGZm ZmZmZmZmLCAweDA0MDQ4MDAwLAo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVBBX1NDX01P REVfQ05UTF8xKSwgMHgwNjAwMDAwMCwgMHgwNjAwMDAwMCwKPiArCVNPQzE1X1JFR19FTlRSWShH QywgMCwgbW1STUlfVVRDTDFfQ05UTDIpLCAweDAwMDMwMDAwLCAweDAwMDIwMDAwLAo+ICsJU09D MTVfUkVHX0VOVFJZKEdDLCAwLCBtbVREX0NOVEwpLCAweDAxYmQ5ZjMzLCAweDAwMDAwODAwCj4g ICB9Owo+ICAgCj4gICBzdGF0aWMgY29uc3QgdTMyIGdvbGRlbl9zZXR0aW5nc19nY185X3hfY29t bW9uW10gPQo+ICAgewo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HUkJNX0NBTV9JTkRF WCksIDB4ZmZmZmZmZmYsIDB4MDAwMDAwMDAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBt bUdSQk1fQ0FNX0RBVEEpLCAweGZmZmZmZmZmLCAweDI1NDRjMzgyCj4gKwlTT0MxNV9SRUdfRU5U UlkoR0MsIDAsIG1tR1JCTV9DQU1fSU5ERVgpLCAweGZmZmZmZmZmLCAweDAwMDAwMDAwLAo+ICsJ U09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1fQ0FNX0RBVEEpLCAweGZmZmZmZmZmLCAweDI1 NDRjMzgyCj4gICB9Owo+ICAgCj4gICAjZGVmaW5lIFZFR0ExMF9HQl9BRERSX0NPTkZJR19HT0xE RU4gMHgyYTExNDA0Mgo+IEBAIC0yMzAsMTggKzIzMSwxOCBAQCBzdGF0aWMgdm9pZCBnZnhfdjlf MF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICB7 Cj4gICAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKPiAgIAljYXNlIENISVBfVkVHQTEwOgo+ IC0JCWFtZGdwdV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4gKwkJc29jMTVfcHJv Z3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAo+ICAgCQkJCQkJIGdvbGRlbl9zZXR0aW5nc19n Y185XzAsCj4gICAJCQkJCQkgQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3NfZ2NfOV8wKSk7Cj4g LQkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPiArCQlzb2MxNV9wcm9n cmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4gICAJCQkJCQkgZ29sZGVuX3NldHRpbmdzX2dj XzlfMF92ZzEwLAo+ICAgCQkJCQkJIEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMF92 ZzEwKSk7Cj4gICAJCWJyZWFrOwo+ICAgCWNhc2UgQ0hJUF9SQVZFTjoKPiAtCQlhbWRncHVfcHJv Z3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAo+ICsJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJf c2VxdWVuY2UoYWRldiwKPiAgIAkJCQkJCSBnb2xkZW5fc2V0dGluZ3NfZ2NfOV8xLAo+ICAgCQkJ CQkJIEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMSkpOwo+IC0JCWFtZGdwdV9wcm9n cmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4gKwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9z ZXF1ZW5jZShhZGV2LAo+ICAgCQkJCQkJIGdvbGRlbl9zZXR0aW5nc19nY185XzFfcnYxLAo+ICAg CQkJCQkJIEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMV9ydjEpKTsKPiAgIAkJYnJl YWs7Cj4gQEAgLTI0OSw3ICsyNTAsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF9pbml0X2dvbGRl bl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAJCWJyZWFrOwo+ICAg CX0KPiAgIAo+IC0JYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwgZ29sZGVu X3NldHRpbmdzX2djXzlfeF9jb21tb24sCj4gKwlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVl bmNlKGFkZXYsIGdvbGRlbl9zZXR0aW5nc19nY185X3hfY29tbW9uLAo+ICAgCQkJCQkoY29uc3Qg dTMyKUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2djXzlfeF9jb21tb24pKTsKPiAgIH0KPiAg IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+IGluZGV4IDMwZWI2MjUuLmNh NjZlMWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMKPiBAQCAtMzUs NiArMzUsNyBAQAo+ICAgI2luY2x1ZGUgIm1taHViL21taHViXzFfMF9vZmZzZXQuaCIKPiAgICNp bmNsdWRlICJhdGh1Yi9hdGh1Yl8xXzBfb2Zmc2V0LmgiCj4gICAKPiArI2luY2x1ZGUgInNvYzE1 LmgiCj4gICAjaW5jbHVkZSAic29jMTVfY29tbW9uLmgiCj4gICAjaW5jbHVkZSAidW1jL3VtY182 XzBfc2hfbWFzay5oIgo+ICAgCj4gQEAgLTc2LDE0ICs3NywxNCBAQAo+ICAgCj4gICBzdGF0aWMg Y29uc3QgdTMyIGdvbGRlbl9zZXR0aW5nc19tbWh1Yl8xXzBfMFtdID0KPiAgIHsKPiAtCVNPQzE1 X1JFR19PRkZTRVQoTU1IVUIsIDAsIG1tREFHQjFfV1JDTEkyKSwgMHgwMDAwMDAwNywgMHhmZTVm ZTBmYSwKPiAtCVNPQzE1X1JFR19PRkZTRVQoTU1IVUIsIDAsIG1tTU1FQTFfRFJBTV9XUl9DTEky R1JQX01BUDApLCAweDAwMDAwMDMwLCAweDU1NTU1NTY1Cj4gKwlTT0MxNV9SRUdfRU5UUlkoTU1I VUIsIDAsIG1tREFHQjFfV1JDTEkyKSwgMHgwMDAwMDAwNywgMHhmZTVmZTBmYSwKPiArCVNPQzE1 X1JFR19FTlRSWShNTUhVQiwgMCwgbW1NTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMCksIDB4MDAw MDAwMzAsIDB4NTU1NTU1NjUKPiAgIH07Cj4gICAKPiAgIHN0YXRpYyBjb25zdCB1MzIgZ29sZGVu X3NldHRpbmdzX2F0aHViXzFfMF8wW10gPQo+ICAgewo+IC0JU09DMTVfUkVHX09GRlNFVChBVEhV QiwgMCwgbW1SUEJfQVJCX0NOVEwpLCAweDAwMDBmZjAwLCAweDAwMDAwODAwLAo+IC0JU09DMTVf UkVHX09GRlNFVChBVEhVQiwgMCwgbW1SUEJfQVJCX0NOVEwyKSwgMHgwMGZmMDBmZiwgMHgwMDA4 MDAwOAo+ICsJU09DMTVfUkVHX0VOVFJZKEFUSFVCLCAwLCBtbVJQQl9BUkJfQ05UTCksIDB4MDAw MGZmMDAsIDB4MDAwMDA4MDAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoQVRIVUIsIDAsIG1tUlBCX0FS Ql9DTlRMMiksIDB4MDBmZjAwZmYsIDB4MDAwODAwMDgKPiAgIH07Cj4gICAKPiAgIC8qIEVjYyBy ZWxhdGVkIHJlZ2lzdGVyIGFkZHJlc3NlcywgKEJBU0UgKyByZWcgb2Zmc2V0KSAqLwo+IEBAIC04 OTUsMTIgKzg5NiwxMyBAQCBzdGF0aWMgaW50IGdtY192OV8wX3N3X2Zpbmkodm9pZCAqaGFuZGxl KQo+ICAgCj4gICBzdGF0aWMgdm9pZCBnbWNfdjlfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICB7Cj4gKwo+ICAgCXN3aXRjaCAoYWRldi0+YXNp Y190eXBlKSB7Cj4gICAJY2FzZSBDSElQX1ZFR0ExMDoKPiAtCQlhbWRncHVfcHJvZ3JhbV9yZWdp c3Rlcl9zZXF1ZW5jZShhZGV2LAo+ICsJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2Uo YWRldiwKPiAgIAkJCQkJCWdvbGRlbl9zZXR0aW5nc19tbWh1Yl8xXzBfMCwKPiAgIAkJCQkJCUFS UkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX21taHViXzFfMF8wKSk7Cj4gLQkJYW1kZ3B1X3Byb2dy YW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPiArCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3Nl cXVlbmNlKGFkZXYsCj4gICAJCQkJCQlnb2xkZW5fc2V0dGluZ3NfYXRodWJfMV8wXzAsCj4gICAJ CQkJCQlBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19hdGh1Yl8xXzBfMCkpOwo+ICAgCQlicmVh azsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192Nl8xLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y2XzEuYwo+IGluZGV4IDc2ZGI3MTEu LjNiODdiOGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192 Nl8xLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y2XzEuYwo+IEBA IC03OCw4ICs3OCw4IEBAIHUzMiBuYmlvX3Y2XzFfZ2V0X21lbXNpemUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCj4gICAKPiAgIHN0YXRpYyBjb25zdCB1MzIgbmJpb19zZG1hX2Rvb3JiZWxs X3JhbmdlX3JlZ1tdID0KPiAgIHsKPiAtCVNPQzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1CSUZf U0RNQTBfRE9PUkJFTExfUkFOR0UpLAo+IC0JU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUJJ Rl9TRE1BMV9ET09SQkVMTF9SQU5HRSkKPiArCSgweGQyMCArIG1tQklGX1NETUEwX0RPT1JCRUxM X1JBTkdFKSwKPiArCSgweGQyMCArIG1tQklGX1NETUExX0RPT1JCRUxMX1JBTkdFKQo+ICAgfTsK PiAgIAo+ICAgdm9pZCBuYmlvX3Y2XzFfc2RtYV9kb29yYmVsbF9yYW5nZShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgaW50IGluc3RhbmNlLAo+IEBAIC05NCw2ICs5NCw3IEBAIHZvaWQgbmJp b192Nl8xX3NkbWFfZG9vcmJlbGxfcmFuZ2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGlu dCBpbnN0YW5jZSwKPiAgIAkJZG9vcmJlbGxfcmFuZ2UgPSBSRUdfU0VUX0ZJRUxEKGRvb3JiZWxs X3JhbmdlLCBCSUZfU0RNQTBfRE9PUkJFTExfUkFOR0UsIFNJWkUsIDApOwo+ICAgCj4gICAJV1JF RzMyKG5iaW9fc2RtYV9kb29yYmVsbF9yYW5nZV9yZWdbaW5zdGFuY2VdLCBkb29yYmVsbF9yYW5n ZSk7Cj4gKwo+ICAgfQo+ICAgCj4gICB2b2lkIG5iaW9fdjZfMV9lbmFibGVfZG9vcmJlbGxfYXBl cnR1cmUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gQEAgLTIxNiw4ICsyMTcsOCBAQCB2 b2lkIG5iaW9fdjZfMV9nZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsIHUzMiAqZmxhZ3MpCj4gICB9Cj4gICAKPiAgIGNvbnN0IHN0cnVjdCBuYmlvX2hkcF9m bHVzaF9yZWcgbmJpb192Nl8xX2hkcF9mbHVzaF9yZWcgPSB7Cj4gLQkuaGRwX2ZsdXNoX3JlcV9v ZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKE5CSU8sIDAsIG1tQklGX0JYX1BGMF9HUFVfSERQX0ZM VVNIX1JFUSksCj4gLQkuaGRwX2ZsdXNoX2RvbmVfb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChO QklPLCAwLCBtbUJJRl9CWF9QRjBfR1BVX0hEUF9GTFVTSF9ET05FKSwKPiArCS5oZHBfZmx1c2hf cmVxX29mZnNldCA9ICAweGQyMCArIG1tQklGX0JYX1BGMF9HUFVfSERQX0ZMVVNIX1JFUSwKPiAr CS5oZHBfZmx1c2hfZG9uZV9vZmZzZXQgPSAweGQyMCArIG1tQklGX0JYX1BGMF9HUFVfSERQX0ZM VVNIX0RPTkUsCj4gICAJLnJlZl9hbmRfbWFza19jcDAgPSBCSUZfQlhfUEYwX0dQVV9IRFBfRkxV U0hfRE9ORV9fQ1AwX01BU0ssCj4gICAJLnJlZl9hbmRfbWFza19jcDEgPSBCSUZfQlhfUEYwX0dQ VV9IRFBfRkxVU0hfRE9ORV9fQ1AxX01BU0ssCj4gICAJLnJlZl9hbmRfbWFza19jcDIgPSBCSUZf QlhfUEYwX0dQVV9IRFBfRkxVU0hfRE9ORV9fQ1AyX01BU0ssCj4gQEAgLTIzMyw4ICsyMzQsOCBA QCB2b2lkIG5iaW9fdjZfMV9nZXRfY2xvY2tnYXRpbmdfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsIHUzMiAqZmxhZ3MpCj4gICB9Owo+ICAgCj4gICBjb25zdCBzdHJ1Y3QgbmJpb19w Y2llX2luZGV4X2RhdGEgbmJpb192Nl8xX3BjaWVfaW5kZXhfZGF0YSA9IHsKPiAtCS5pbmRleF9v ZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKE5CSU8sIDAsIG1tUENJRV9JTkRFWCksCj4gLQkuZGF0 YV9vZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKE5CSU8sIDAsIG1tUENJRV9EQVRBKSwKPiArCS5p bmRleF9vZmZzZXQgPSAweDAgKyBtbVBDSUVfSU5ERVgsCj4gKwkuZGF0YV9vZmZzZXQgPSAweDAg KyBtbVBDSUVfREFUQSwKPiAgIH07Cj4gICAKPiAgIHZvaWQgbmJpb192Nl8xX2RldGVjdF9od192 aXJ0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L25iaW9fdjdfMC5jCj4gaW5kZXggMWZiNzcxNy4uNzI1MmQ1NzIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N18wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzAuYwo+IEBAIC03NSw4ICs3NSw4IEBAIHUzMiBuYmlvX3Y3 XzBfZ2V0X21lbXNpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAKPiAgIHN0YXRp YyBjb25zdCB1MzIgbmJpb19zZG1hX2Rvb3JiZWxsX3JhbmdlX3JlZ1tdID0KPiAgIHsKPiAtCVNP QzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1CSUZfU0RNQTBfRE9PUkJFTExfUkFOR0UpLAo+IC0J U09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUJJRl9TRE1BMV9ET09SQkVMTF9SQU5HRSkKPiAr CSgweGQyMCArIG1tQklGX1NETUEwX0RPT1JCRUxMX1JBTkdFKSwKPiArCSgweGQyMCArIG1tQklG X1NETUExX0RPT1JCRUxMX1JBTkdFKQo+ICAgfTsKPiAgIAo+ICAgdm9pZCBuYmlvX3Y3XzBfc2Rt YV9kb29yYmVsbF9yYW5nZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgaW50IGluc3RhbmNl LAo+IEBAIC0xODYsOCArMTg2LDggQEAgdm9pZCBuYmlvX3Y3XzBfaWhfY29udHJvbChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKPiAgIH0KPiAgIAo+ICAgY29uc3Qgc3RydWN0IG5iaW9faGRw X2ZsdXNoX3JlZyBuYmlvX3Y3XzBfaGRwX2ZsdXNoX3JlZyA9IHsKPiAtCS5oZHBfZmx1c2hfcmVx X29mZnNldCA9IFNPQzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1HUFVfSERQX0ZMVVNIX1JFUSks Cj4gLQkuaGRwX2ZsdXNoX2RvbmVfb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBt bUdQVV9IRFBfRkxVU0hfRE9ORSksCj4gKwkuaGRwX2ZsdXNoX3JlcV9vZmZzZXQgPSAweGQyMCAr IG1tR1BVX0hEUF9GTFVTSF9SRVEsCj4gKwkuaGRwX2ZsdXNoX2RvbmVfb2Zmc2V0ID0gMHhkMjAg KyBtbUdQVV9IRFBfRkxVU0hfRE9ORSwKPiAgIAkucmVmX2FuZF9tYXNrX2NwMCA9IEdQVV9IRFBf RkxVU0hfRE9ORV9fQ1AwX01BU0ssCj4gICAJLnJlZl9hbmRfbWFza19jcDEgPSBHUFVfSERQX0ZM VVNIX0RPTkVfX0NQMV9NQVNLLAo+ICAgCS5yZWZfYW5kX21hc2tfY3AyID0gR1BVX0hEUF9GTFVT SF9ET05FX19DUDJfTUFTSywKPiBAQCAtMjAzLDYgKzIwMyw2IEBAIHZvaWQgbmJpb192N18wX2lo X2NvbnRyb2woc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICB9Owo+ICAgCj4gICBjb25z dCBzdHJ1Y3QgbmJpb19wY2llX2luZGV4X2RhdGEgbmJpb192N18wX3BjaWVfaW5kZXhfZGF0YSA9 IHsKPiAtCS5pbmRleF9vZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKE5CSU8sIDAsIG1tUENJRV9J TkRFWDIpLAo+IC0JLmRhdGFfb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbVBD SUVfREFUQTIpCj4gKwkuaW5kZXhfb2Zmc2V0ID0gMHgwICsgbW1QQ0lFX0lOREVYMiwKPiArCS5k YXRhX29mZnNldCA9IDB4MCArIG1tUENJRV9EQVRBMgo+ICAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9zZG1hX3Y0XzAuYwo+IGluZGV4IGUzMjRjNjYuLmM2NTM2OTUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYwo+IEBAIC01NCw1NyArNTQsNTcgQEAKPiAg IHN0YXRpYyB2b2lkIHNkbWFfdjRfMF9zZXRfaXJxX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KTsKPiAgIAo+ICAgc3RhdGljIGNvbnN0IHUzMiBnb2xkZW5fc2V0dGluZ3Nfc2RtYV80 W10gPSB7Cj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX0NISUNLRU5fQklU UyksIDB4ZmU5MzFmMDcsIDB4MDI4MzFkMDcsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAw LCBtbVNETUEwX0NMS19DVFJMKSwgMHhmZjAwMGZmMCwgMHgzZjAwMDEwMCwKPiAtCVNPQzE1X1JF R19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfR0ZYX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAw MDAwMTAwLAo+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9HRlhfUkJfV1BU Ul9QT0xMX0NOVEwpLCAweGZmZmZmZmY3LCAweDAwNDAzMDAwLAo+IC0JU09DMTVfUkVHX09GRlNF VChTRE1BMCwgMCwgbW1TRE1BMF9QQUdFX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAwMTAw LAo+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9QQUdFX1JCX1dQVFJfUE9M TF9DTlRMKSwgMHgwMDAwZmZmMCwgMHgwMDQwMzAwMCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RN QTAsIDAsIG1tU0RNQTBfUE9XRVJfQ05UTCksIDB4MDAzZmYwMDYsIDB4MDAwM2MwMDAsCj4gLQlT T0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1JMQzBfSUJfQ05UTCksIDB4ODAwZjAx MDAsIDB4MDAwMDAxMDAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1JM QzBfUkJfV1BUUl9QT0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLAo+IC0JU09DMTVf UkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9STEMxX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAw eDAwMDAwMTAwLAo+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9STEMxX1JC X1dQVFJfUE9MTF9DTlRMKSwgMHgwMDAwZmZmMCwgMHgwMDQwMzAwMCwKPiAtCVNPQzE1X1JFR19P RkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfVVRDTDFfUEFHRSksIDB4MDAwMDAzZmYsIDB4MDAwMDAz YzAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUExLCAwLCBtbVNETUExX0NISUNLRU5fQklUUyks IDB4ZmU5MzFmMDcsIDB4MDI4MzFmMDcsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUExLCAwLCBt bVNETUExX0NMS19DVFJMKSwgMHhmZmZmZmZmZiwgMHgzZjAwMDEwMCwKPiAtCVNPQzE1X1JFR19P RkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfR0ZYX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAw MTAwLAo+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9HRlhfUkJfV1BUUl9Q T0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLAo+IC0JU09DMTVfUkVHX09GRlNFVChT RE1BMSwgMCwgbW1TRE1BMV9QQUdFX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAwMTAwLAo+ IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9QQUdFX1JCX1dQVFJfUE9MTF9D TlRMKSwgMHgwMDAwZmZmMCwgMHgwMDQwMzAwMCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTEs IDAsIG1tU0RNQTFfUE9XRVJfQ05UTCksIDB4MDAzZmYwMDAsIDB4MDAwM2MwMDAsCj4gLQlTT0Mx NV9SRUdfT0ZGU0VUKFNETUExLCAwLCBtbVNETUExX1JMQzBfSUJfQ05UTCksIDB4ODAwZjAxMDAs IDB4MDAwMDAxMDAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUExLCAwLCBtbVNETUExX1JMQzBf UkJfV1BUUl9QT0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLAo+IC0JU09DMTVfUkVH X09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9STEMxX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAw MDAwMTAwLAo+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9STEMxX1JCX1dQ VFJfUE9MTF9DTlRMKSwgMHgwMDAwZmZmMCwgMHgwMDQwMzAwMCwKPiAtCVNPQzE1X1JFR19PRkZT RVQoU0RNQTEsIDAsIG1tU0RNQTFfVVRDTDFfUEFHRSksIDB4MDAwMDAzZmYsIDB4MDAwMDAzYzAK PiArCVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9DSElDS0VOX0JJVFMpLCAweGZl OTMxZjA3LCAweDAyODMxZDA3LAo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEw X0NMS19DVFJMKSwgMHhmZjAwMGZmMCwgMHgzZjAwMDEwMCwKPiArCVNPQzE1X1JFR19FTlRSWShT RE1BMCwgMCwgbW1TRE1BMF9HRlhfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4MDAwMDAxMDAsCj4g KwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRM KSwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCwKPiArCVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwg bW1TRE1BMF9QQUdFX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAwMTAwLAo+ICsJU09DMTVf UkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1BBR0VfUkJfV1BUUl9QT0xMX0NOVEwpLCAweDAw MDBmZmYwLCAweDAwNDAzMDAwLAo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEw X1BPV0VSX0NOVEwpLCAweDAwM2ZmMDA2LCAweDAwMDNjMDAwLAo+ICsJU09DMTVfUkVHX0VOVFJZ KFNETUEwLCAwLCBtbVNETUEwX1JMQzBfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4MDAwMDAxMDAs Cj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMF9SQl9XUFRSX1BPTExf Q05UTCksIDB4MDAwMGZmZjAsIDB4MDA0MDMwMDAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAs IDAsIG1tU0RNQTBfUkxDMV9JQl9DTlRMKSwgMHg4MDBmMDEwMCwgMHgwMDAwMDEwMCwKPiArCVNP QzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9STEMxX1JCX1dQVFJfUE9MTF9DTlRMKSwg MHgwMDAwZmZmMCwgMHgwMDQwMzAwMCwKPiArCVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1T RE1BMF9VVENMMV9QQUdFKSwgMHgwMDAwMDNmZiwgMHgwMDAwMDNjMCwKPiArCVNPQzE1X1JFR19F TlRSWShTRE1BMSwgMCwgbW1TRE1BMV9DSElDS0VOX0JJVFMpLCAweGZlOTMxZjA3LCAweDAyODMx ZjA3LAo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUExLCAwLCBtbVNETUExX0NMS19DVFJMKSwgMHhm ZmZmZmZmZiwgMHgzZjAwMDEwMCwKPiArCVNPQzE1X1JFR19FTlRSWShTRE1BMSwgMCwgbW1TRE1B MV9HRlhfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4MDAwMDAxMDAsCj4gKwlTT0MxNV9SRUdfRU5U UlkoU0RNQTEsIDAsIG1tU0RNQTFfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMKSwgMHgwMDAwZmZmMCwg MHgwMDQwMzAwMCwKPiArCVNPQzE1X1JFR19FTlRSWShTRE1BMSwgMCwgbW1TRE1BMV9QQUdFX0lC X0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAwMTAwLAo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEx LCAwLCBtbVNETUExX1BBR0VfUkJfV1BUUl9QT0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAz MDAwLAo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUExLCAwLCBtbVNETUExX1BPV0VSX0NOVEwpLCAw eDAwM2ZmMDAwLCAweDAwMDNjMDAwLAo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUExLCAwLCBtbVNE TUExX1JMQzBfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4MDAwMDAxMDAsCj4gKwlTT0MxNV9SRUdf RU5UUlkoU0RNQTEsIDAsIG1tU0RNQTFfUkxDMF9SQl9XUFRSX1BPTExfQ05UTCksIDB4MDAwMGZm ZjAsIDB4MDA0MDMwMDAsCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEsIDAsIG1tU0RNQTFfUkxD MV9JQl9DTlRMKSwgMHg4MDBmMDEwMCwgMHgwMDAwMDEwMCwKPiArCVNPQzE1X1JFR19FTlRSWShT RE1BMSwgMCwgbW1TRE1BMV9STEMxX1JCX1dQVFJfUE9MTF9DTlRMKSwgMHgwMDAwZmZmMCwgMHgw MDQwMzAwMCwKPiArCVNPQzE1X1JFR19FTlRSWShTRE1BMSwgMCwgbW1TRE1BMV9VVENMMV9QQUdF KSwgMHgwMDAwMDNmZiwgMHgwMDAwMDNjMAo+ICAgfTsKPiAgIAo+ICAgc3RhdGljIGNvbnN0IHUz MiBnb2xkZW5fc2V0dGluZ3Nfc2RtYV92ZzEwW10gPSB7Cj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNE TUEwLCAwLCBtbVNETUEwX0dCX0FERFJfQ09ORklHKSwgMHgwMDE4NzczZiwgMHgwMDEwNDAwMiwK PiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfR0JfQUREUl9DT05GSUdfUkVB RCksIDB4MDAxODc3M2YsIDB4MDAxMDQwMDIsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUExLCAw LCBtbVNETUExX0dCX0FERFJfQ09ORklHKSwgMHgwMDE4NzczZiwgMHgwMDEwNDAwMiwKPiAtCVNP QzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfR0JfQUREUl9DT05GSUdfUkVBRCksIDB4 MDAxODc3M2YsIDB4MDAxMDQwMDIKPiArCVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1B MF9HQl9BRERSX0NPTkZJRyksIDB4MDAxODc3M2YsIDB4MDAxMDQwMDIsCj4gKwlTT0MxNV9SRUdf RU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfR0JfQUREUl9DT05GSUdfUkVBRCksIDB4MDAxODc3M2Ys IDB4MDAxMDQwMDIsCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEsIDAsIG1tU0RNQTFfR0JfQURE Ul9DT05GSUcpLCAweDAwMTg3NzNmLCAweDAwMTA0MDAyLAo+ICsJU09DMTVfUkVHX0VOVFJZKFNE TUExLCAwLCBtbVNETUExX0dCX0FERFJfQ09ORklHX1JFQUQpLCAweDAwMTg3NzNmLCAweDAwMTA0 MDAyCj4gICB9Owo+ICAgCj4gICBzdGF0aWMgY29uc3QgdTMyIGdvbGRlbl9zZXR0aW5nc19zZG1h XzRfMVtdID0KPiAgIHsKPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfQ0hJ Q0tFTl9CSVRTKSwgMHhmZTkzMWYwNywgMHgwMjgzMWQwNywKPiAtCVNPQzE1X1JFR19PRkZTRVQo U0RNQTAsIDAsIG1tU0RNQTBfQ0xLX0NUUkwpLCAweGZmZmZmZmZmLCAweDNmMDAwMTAwLAo+IC0J U09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9HRlhfSUJfQ05UTCksIDB4ODAwZjAx MTEsIDB4MDAwMDAxMDAsCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX0dG WF9SQl9XUFRSX1BPTExfQ05UTCksIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDAsCj4gLQlTT0MxNV9S RUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1BPV0VSX0NOVEwpLCAweGZjM2ZmZmZmLCAweDQw MDAwMDUxLAo+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9STEMwX0lCX0NO VEwpLCAweDgwMGYwMTExLCAweDAwMDAwMTAwLAo+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwg MCwgbW1TRE1BMF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMKSwgMHhmZmZmZmZmNywgMHgwMDQwMzAw MCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMV9JQl9DTlRMKSwg MHg4MDBmMDExMSwgMHgwMDAwMDEwMCwKPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1t U0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTCksIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDAsCj4g LQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1VUQ0wxX1BBR0UpLCAweDAwMDAw M2ZmLCAweDAwMDAwM2MwCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfQ0hJ Q0tFTl9CSVRTKSwgMHhmZTkzMWYwNywgMHgwMjgzMWQwNywKPiArCVNPQzE1X1JFR19FTlRSWShT RE1BMCwgMCwgbW1TRE1BMF9DTEtfQ1RSTCksIDB4ZmZmZmZmZmYsIDB4M2YwMDAxMDAsCj4gKwlT T0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfR0ZYX0lCX0NOVEwpLCAweDgwMGYwMTEx LCAweDAwMDAwMTAwLAo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX0dGWF9S Ql9XUFRSX1BPTExfQ05UTCksIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDAsCj4gKwlTT0MxNV9SRUdf RU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfUE9XRVJfQ05UTCksIDB4ZmMzZmZmZmYsIDB4NDAwMDAw NTEsCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMF9JQl9DTlRMKSwg MHg4MDBmMDExMSwgMHgwMDAwMDEwMCwKPiArCVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1T RE1BMF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMKSwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCwKPiAr CVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9STEMxX0lCX0NOVEwpLCAweDgwMGYw MTExLCAweDAwMDAwMTAwLAo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1JM QzFfUkJfV1BUUl9QT0xMX0NOVEwpLCAweGZmZmZmZmY3LCAweDAwNDAzMDAwLAo+ICsJU09DMTVf UkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1VUQ0wxX1BBR0UpLCAweDAwMDAwM2ZmLCAweDAw MDAwM2MwCj4gICB9Owo+ICAgCj4gICBzdGF0aWMgY29uc3QgdTMyIGdvbGRlbl9zZXR0aW5nc19z ZG1hX3J2MVtdID0KPiAgIHsKPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBf R0JfQUREUl9DT05GSUcpLCAweDAwMTg3NzNmLCAweDAwMDAwMDAyLAo+IC0JU09DMTVfUkVHX09G RlNFVChTRE1BMCwgMCwgbW1TRE1BMF9HQl9BRERSX0NPTkZJR19SRUFEKSwgMHgwMDE4NzczZiwg MHgwMDAwMDAwMgo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX0dCX0FERFJf Q09ORklHKSwgMHgwMDE4NzczZiwgMHgwMDAwMDAwMiwKPiArCVNPQzE1X1JFR19FTlRSWShTRE1B MCwgMCwgbW1TRE1BMF9HQl9BRERSX0NPTkZJR19SRUFEKSwgMHgwMDE4NzczZiwgMHgwMDAwMDAw Mgo+ICAgfTsKPiAgIAo+ICAgI2RlZmluZSBzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoaW5zdCwg b2Zmc2V0KSAoIDAgPT0gaW5zdCA/IFwKPiBAQCAtMTE1LDE4ICsxMTUsMTggQEAgc3RhdGljIHZv aWQgc2RtYV92NF8wX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKPiAgIHsKPiAgIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewo+ICAgCWNhc2UgQ0hJ UF9WRUdBMTA6Cj4gLQkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPiAr CQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4gICAJCQkJCQkgZ29sZGVu X3NldHRpbmdzX3NkbWFfNCwKPiAgIAkJCQkJCSBBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19z ZG1hXzQpKTsKPiAtCQlhbWRncHVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAo+ICsJ CXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPiAgIAkJCQkJCSBnb2xkZW5f c2V0dGluZ3Nfc2RtYV92ZzEwLAo+ICAgCQkJCQkJIEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdz X3NkbWFfdmcxMCkpOwo+ICAgCQlicmVhazsKPiAgIAljYXNlIENISVBfUkFWRU46Cj4gLQkJYW1k Z3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPiArCQlzb2MxNV9wcm9ncmFtX3Jl Z2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4gICAJCQkJCQkgZ29sZGVuX3NldHRpbmdzX3NkbWFfNF8x LAo+ICAgCQkJCQkJIEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX3NkbWFfNF8xKSk7Cj4gLQkJ YW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPiArCQlzb2MxNV9wcm9ncmFt X3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4gICAJCQkJCQkgZ29sZGVuX3NldHRpbmdzX3NkbWFf cnYxLAo+ICAgCQkJCQkJIEFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX3NkbWFfcnYxKSk7Cj4g ICAJCWJyZWFrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2Mx NS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUuYwo+IGluZGV4IDdjODhiY2Iu Ljc3OWM2NzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmMKPiBAQCAtMzMyLDI1 ICszMzIsMzQgQEAgc3RhdGljIGJvb2wgc29jMTVfcmVhZF9iaW9zX2Zyb21fcm9tKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAo+ICAgCXJldHVybiB0cnVlOwo+ICAgfQo+ICAgCj4gLXN0YXRp YyBzdHJ1Y3QgYW1kZ3B1X2FsbG93ZWRfcmVnaXN0ZXJfZW50cnkgc29jMTVfYWxsb3dlZF9yZWFk X3JlZ2lzdGVyc1tdID0gewo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdSQk1fU1RB VFVTKX0sCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR1JCTV9TVEFUVVMyKX0sCj4g LQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR1JCTV9TVEFUVVNfU0UwKX0sCj4gLQl7IFNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR1JCTV9TVEFUVVNfU0UxKX0sCj4gLQl7IFNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tR1JCTV9TVEFUVVNfU0UyKX0sCj4gLQl7IFNPQzE1X1JFR19PRkZT RVQoR0MsIDAsIG1tR1JCTV9TVEFUVVNfU0UzKX0sCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoU0RN QTAsIDAsIG1tU0RNQTBfU1RBVFVTX1JFRyl9LAo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKFNETUEx LCAwLCBtbVNETUExX1NUQVRVU19SRUcpfSwKPiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwg bW1DUF9TVEFUKX0sCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BfU1RBTExFRF9T VEFUMSl9LAo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNQX1NUQUxMRURfU1RBVDIp fSwKPiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1DUF9TVEFMTEVEX1NUQVQzKX0sCj4g LQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BfQ1BGX0JVU1lfU1RBVCl9LAo+IC0JeyBT T0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNQX0NQRl9TVEFMTEVEX1NUQVQxKX0sCj4gLQl7IFNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BfQ1BGX1NUQVRVUyl9LAo+IC0JeyBTT0MxNV9SRUdf T0ZGU0VUKEdDLCAwLCBtbUNQX0NQQ19TVEFMTEVEX1NUQVQxKX0sCj4gLQl7IFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tQ1BfQ1BDX1NUQVRVUyl9LAo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdD LCAwLCBtbUdCX0FERFJfQ09ORklHKX0sCj4gK3N0cnVjdCBzb2MxNV9hbGxvd2VkX3JlZ2lzdGVy X2VudHJ5IHsKPiArCXVpbnQzMl90IGh3aXA7Cj4gKwl1aW50MzJfdCBpbnN0Owo+ICsJdWludDMy X3Qgc2VnOwo+ICsJdWludDMyX3QgcmVnX29mZnNldDsKPiArCWJvb2wgZ3JibV9pbmRleGVkOwo+ ICt9Owo+ICsKPiArCj4gK3N0YXRpYyBzdHJ1Y3Qgc29jMTVfYWxsb3dlZF9yZWdpc3Rlcl9lbnRy eSBzb2MxNV9hbGxvd2VkX3JlYWRfcmVnaXN0ZXJzW10gPSB7Cj4gKwl7IFNPQzE1X1JFR19FTlRS WShHQywgMCwgbW1HUkJNX1NUQVRVUyl9LAo+ICsJeyBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1t R1JCTV9TVEFUVVMyKX0sCj4gKwl7IFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HUkJNX1NUQVRV U19TRTApfSwKPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1fU1RBVFVTX1NFMSl9 LAo+ICsJeyBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR1JCTV9TVEFUVVNfU0UyKX0sCj4gKwl7 IFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HUkJNX1NUQVRVU19TRTMpfSwKPiArCXsgU09DMTVf UkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1NUQVRVU19SRUcpfSwKPiArCXsgU09DMTVfUkVH X0VOVFJZKFNETUExLCAwLCBtbVNETUExX1NUQVRVU19SRUcpfSwKPiArCXsgU09DMTVfUkVHX0VO VFJZKEdDLCAwLCBtbUNQX1NUQVQpfSwKPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQ X1NUQUxMRURfU1RBVDEpfSwKPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQX1NUQUxM RURfU1RBVDIpfSwKPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQX1NUQUxMRURfU1RB VDMpfSwKPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQX0NQRl9CVVNZX1NUQVQpfSwK PiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQX0NQRl9TVEFMTEVEX1NUQVQxKX0sCj4g Kwl7IFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUF9DUEZfU1RBVFVTKX0sCj4gKwl7IFNPQzE1 X1JFR19FTlRSWShHQywgMCwgbW1DUF9DUENfU1RBTExFRF9TVEFUMSl9LAo+ICsJeyBTT0MxNV9S RUdfRU5UUlkoR0MsIDAsIG1tQ1BfQ1BDX1NUQVRVUyl9LAo+ICsJeyBTT0MxNV9SRUdfRU5UUlko R0MsIDAsIG1tR0JfQUREUl9DT05GSUcpfSwKPiAgIH07Cj4gICAKPiAgIHN0YXRpYyB1aW50MzJf dCBzb2MxNV9yZWFkX2luZGV4ZWRfcmVnaXN0ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs IHUzMiBzZV9udW0sCj4gQEAgLTM5MCwxMCArMzk5LDEzIEBAIHN0YXRpYyBpbnQgc29jMTVfcmVh ZF9yZWdpc3RlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIHNlX251bSwKPiAgIAkJ CSAgICB1MzIgc2hfbnVtLCB1MzIgcmVnX29mZnNldCwgdTMyICp2YWx1ZSkKPiAgIHsKPiAgIAl1 aW50MzJfdCBpOwo+ICsJc3RydWN0IHNvYzE1X2FsbG93ZWRfcmVnaXN0ZXJfZW50cnkgICplbjsK PiAgIAo+ICAgCSp2YWx1ZSA9IDA7Cj4gICAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc29j MTVfYWxsb3dlZF9yZWFkX3JlZ2lzdGVycyk7IGkrKykgewo+IC0JCWlmIChyZWdfb2Zmc2V0ICE9 IHNvYzE1X2FsbG93ZWRfcmVhZF9yZWdpc3RlcnNbaV0ucmVnX29mZnNldCkKPiArCQllbiA9ICZz b2MxNV9hbGxvd2VkX3JlYWRfcmVnaXN0ZXJzW2ldOwo+ICsJCWlmIChyZWdfb2Zmc2V0ICE9IChh ZGV2LT5yZWdfb2Zmc2V0W2VuLT5od2lwXVtlbi0+aW5zdF1bZW4tPnNlZ10KPiArCQkJCQkrIGVu LT5yZWdfb2Zmc2V0KSkKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCj4gICAJCSp2YWx1ZSA9IHNvYzE1 X2dldF9yZWdpc3Rlcl92YWx1ZShhZGV2LAo+IEBAIC00MDQsNiArNDE2LDQ3IEBAIHN0YXRpYyBp bnQgc29jMTVfcmVhZF9yZWdpc3RlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIHNl X251bSwKPiAgIAlyZXR1cm4gLUVJTlZBTDsKPiAgIH0KPiAgIAo+ICsKPiArLyoqCj4gKyAqIHNv YzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UgLSBwcm9ncmFtIGFuIGFycmF5IG9mIHJlZ2lz dGVycy4KPiArICoKPiArICogQGFkZXY6IGFtZGdwdV9kZXZpY2UgcG9pbnRlcgo+ICsgKiBAcmVn czogcG9pbnRlciB0byB0aGUgcmVnaXN0ZXIgYXJyYXkKPiArICogQGFycmF5X3NpemU6IHNpemUg b2YgdGhlIHJlZ2lzdGVyIGFycmF5Cj4gKyAqCj4gKyAqIFByb2dyYW1zIGFuIGFycmF5IG9yIHJl Z2lzdGVycyB3aXRoIGFuZCBhbmQgb3IgbWFza3MuCj4gKyAqIFRoaXMgaXMgYSBoZWxwZXIgZm9y IHNldHRpbmcgZ29sZGVuIHJlZ2lzdGVycy4KPiArICovCj4gKwo+ICt2b2lkIHNvYzE1X3Byb2dy YW1fcmVnaXN0ZXJfc2VxdWVuY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gKwkJCQkJ ICAgICBjb25zdCB1MzIgKnJlZ3MsCj4gKwkJCQkJICAgICBjb25zdCB1MzIgYXJyYXlfc2l6ZSkK PiArewo+ICsJdTMyIHRtcCwgcmVnLCBhbmRfbWFzaywgb3JfbWFzazsKPiArCWludCBpOwo+ICsK PiArCWlmIChhcnJheV9zaXplICUgNikKPiArCQlyZXR1cm47Cj4gKwo+ICsJZm9yIChpID0gMDsg aSA8IGFycmF5X3NpemU7IGkgKz02KSB7Cj4gKwkJcmVnID0gIGFkZXYtPnJlZ19vZmZzZXRbcmVn c1tpICsgMF1dW3JlZ3NbaSArIDFdXVtyZWdzW2kgKyAyXV0gKwo+ICsJCQlyZWdzW2kgKyAzXTsK PiArCQlhbmRfbWFzayA9IHJlZ3NbaSArIDRdOwo+ICsJCW9yX21hc2sgPSByZWdzW2kgKyA1XTsK PiArCj4gKwkJaWYgKGFuZF9tYXNrID09IDB4ZmZmZmZmZmYpIHsKPiArCQkJdG1wID0gb3JfbWFz azsKPiArCQl9IGVsc2Ugewo+ICsJCQl0bXAgPSBSUkVHMzIocmVnKTsKPiArCQkJdG1wICY9IH5h bmRfbWFzazsKPiArCQkJdG1wIHw9IG9yX21hc2s7Cj4gKwkJfQo+ICsJCVdSRUczMihyZWcsIHRt cCk7Cj4gKwl9Cj4gKwo+ICt9Cj4gKwo+ICsKPiAgIHN0YXRpYyBpbnQgc29jMTVfYXNpY19yZXNl dChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIHsKPiAgIAl1MzIgaTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3NvYzE1LmgKPiBpbmRleCBjMzQ0OTZmLi40ODgyMzA3IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5oCj4gQEAgLTMzLDYgKzMzLDEwIEBAIHZvaWQgc29jMTVf Z3JibV9zZWxlY3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAJCSAgICB1MzIgbWUs IHUzMiBwaXBlLCB1MzIgcXVldWUsIHUzMiB2bWlkKTsKPiAgIGludCBzb2MxNV9zZXRfaXBfYmxv Y2tzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPiAgIAo+ICt2b2lkIHNvYzE1X3Byb2dy YW1fcmVnaXN0ZXJfc2VxdWVuY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gKwkJCQkJ ICAgICBjb25zdCB1MzIgKnJlZ2lzdGVycywKPiArCQkJCQkgICAgIGNvbnN0IHUzMiBhcnJheV9z aXplKTsKPiArCj4gICBpbnQgdmVnYTEwX3JlZ19iYXNlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpOwo+ICAgCj4gICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvc29jMTVfY29tbW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9z b2MxNV9jb21tb24uaAo+IGluZGV4IDYyYTZlMjEuLjdmNzMxMjUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTVfY29tbW9uLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9zb2MxNV9jb21tb24uaAo+IEBAIC01Myw2ICs1Myw5IEBAIHN0cnVj dCBuYmlvX3BjaWVfaW5kZXhfZGF0YSB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgzID09IHJlZyMjX0JBU0VfSURYID8gaXAjI19C QVNFX19JTlNUIyNpbnN0IyNfU0VHMyArIHJlZyA6IFwKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpcCMjX0JBU0VfX0lOU1Qj I2luc3QjI19TRUc0ICsgcmVnKSkpKSkKPiAgIAo+ICsjZGVmaW5lIFNPQzE1X1JFR19FTlRSWShp cCwgaW5zdCwgcmVnKQlpcCMjX0hXSVAsIGluc3QsIHJlZyMjX0JBU0VfSURYLCByZWcKPiArCj4g Kwo+ICAgI2RlZmluZSBXUkVHMzJfRklFTEQxNShpcCwgaWR4LCByZWcsIGZpZWxkLCB2YWwpCVwK PiAgIAlXUkVHMzIoYWRldi0+cmVnX29mZnNldFtpcCMjX0hXSVBdW2lkeF1bbW0jI3JlZyMjX0JB U0VfSURYXSArIG1tIyNyZWcsCVwKPiAgIAkoUlJFRzMyKGFkZXYtPnJlZ19vZmZzZXRbaXAjI19I V0lQXVtpZHhdW21tIyNyZWcjI19CQVNFX0lEWF0gKyBtbSMjcmVnKQlcCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS91dmRfdjdfMC5jCj4gaW5kZXggNjYwZmE0MS4uNjgyM2M3YiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjdfMC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y3XzAuYwo+IEBAIC0xNjgxLDcgKzE2ODEsOCBAQCBz dGF0aWMgaW50IHV2ZF92N18wX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2b2lkICpoYW5kbGUsCj4g ICBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHV2ZF92N18wX3Jpbmdfdm1f ZnVuY3MgPSB7Cj4gICAJLnR5cGUgPSBBTURHUFVfUklOR19UWVBFX1VWRCwKPiAgIAkuYWxpZ25f bWFzayA9IDB4ZiwKPiAtCS5ub3AgPSBQQUNLRVQwKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBt bVVWRF9OT19PUCksIDApLAo+ICsJLypGaXggbWUgIGlmIFVWRF9IV0lQIGJhc2Ugb3IgIG1tVVZE X05PX09QX0JBU0VfSURYIGNoYW5nZWQgaW4gZnV0dXJlIGFzaWMgKi8KPiArCS5ub3AgPSBQQUNL RVQwKCgweDdlMDAgKyBtbVVWRF9OT19PUCksIDApLAo+ICAgCS5zdXBwb3J0XzY0Yml0X3B0cnMg PSBmYWxzZSwKPiAgIAkudm1odWIgPSBBTURHUFVfTU1IVUIsCj4gICAJLmdldF9ycHRyID0gdXZk X3Y3XzBfcmluZ19nZXRfcnB0ciwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvdmNuX3YxXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMK PiBpbmRleCBlNDY3M2Y3Li5mOTNjYTIxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L3Zjbl92MV8wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92 Y25fdjFfMC5jCj4gQEAgLTExMDAsNyArMTEwMCw3IEBAIHN0YXRpYyBpbnQgdmNuX3YxXzBfcHJv Y2Vzc19pbnRlcnJ1cHQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICBzdGF0aWMgY29u c3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHZjbl92MV8wX2RlY19yaW5nX3ZtX2Z1bmNzID0g ewo+ICAgCS50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9WQ05fREVDLAo+ICAgCS5hbGlnbl9tYXNr ID0gMHhmLAo+IC0JLm5vcCA9IFBBQ0tFVDAoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZE X05PX09QKSwgMCksCj4gKwkubm9wID0gUEFDS0VUMCgweDgxZmYsIDApLAo+ICAgCS5zdXBwb3J0 XzY0Yml0X3B0cnMgPSBmYWxzZSwKPiAgIAkudm1odWIgPSBBTURHUFVfTU1IVUIsCj4gICAJLmdl dF9ycHRyID0gdmNuX3YxXzBfZGVjX3JpbmdfZ2V0X3JwdHIsCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2FtZC1nZngK