From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH 1/2] drm/amd/pp: Remove manual mode for power_dpm_force_performance_level Date: Mon, 29 Jan 2018 13:02:47 -0500 Message-ID: References: <1516879614-11533-1-git-send-email-Rex.Zhu@amd.com> <51c6111b-78ec-36f8-b5e0-4a23ccea6de4@amd.com> <0ce63372-dc11-9710-f11d-0cf6abf326b4@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: 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: "Zhu, Rex" Cc: "Kuehling, Felix" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" T24gTW9uLCBKYW4gMjksIDIwMTggYXQgNzowMyBBTSwgWmh1LCBSZXggPFJleC5aaHVAYW1kLmNv bT4gd3JvdGU6Cj4gSGkgQWxleCwKPgo+PkhvdyBhYm91dCB3ZSBtYWtlIHRoZSBwcm9maWxlIHNl bGVjdGlvbiBkZXBlbmRlbnQgb24gc2VsZWN0aW5nIHRoZSBtYW51YWwgZm9yY2VfcGVyZm9ybWFu Y2VfbGV2ZWwKPgo+IElmIHNvLCB3ZSBuZWVkIHRvIGNoZWNrIHBtLmRwbS5mb3JjZWRfbGV2ZWwg IGJlZm9yZSAicHJvZmlsZSBoZXVyaXN0aWNzIiBhbmQgImRpc2FibGUgcG93ZXIgY29udGFpbm1l bnQiIGFzIHNhbWUgYXMgcHBfZHBtX3NjbGsvbWNsay9wY2llLgo+Cj4gaWYgKGFkZXYtPnBtLmRw bS5mb3JjZWRfbGV2ZWwgJiAoQU1EX0RQTV9GT1JDRURfTEVWRUxfQVVUTyB8Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0xPVyB8Cj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0hJR0gpKQo+ICAg ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Cj4gSG93IGFib3V0IGRlbGV0ZSBqdWRnaW5n IGNvZGUgYmVmb3JlIGZvcmNlX2Nsb2NrX2xldmVsIGFuZCBqdXN0IGNoYW5nZSBmb3JjZV9sZXZl bCB0byBtYW51YWwgYWZ0ZXIgZm9yY2VfY2xvY2tfbGV2ZWwuIFBsZWFzZSBzZWUgdGhlIGF0dGFj aGVkIHBhdGNoLgo+Cj4gVGhpcyBjaGFuZ2UgaGF2ZSBubyBpbXBhY3Qgb24gZXhpc3RpbmcgaW50 ZXJmYWNlIGFuZCB0b29scy4KPiBJdCBqdXN0IHJlZmluZSB0aGUgbG9naWMgb2YgcG93ZXJfZHBt X2ZvcmNlX3BlcmZvcm1hbmNlX2xldmVsIGFuZCBwcF9kcG1fc2Nsay9tY2xrL3BjaWUuCj4gQWxz byBoYXMgbm8gaW1wYWN0IHRvIHBvd2VyL2NvbXB1dGVyIHByb2ZpbGUgbW9kZSBvbiBzbXU3Lgo+ Cj4gVGhlIGRpZmZlcmVuY2UgaXM6Cj4KPiBOZXcgdXNlciBjYW4gaGF2ZSBvbmUgbGVzcyBjb21t YW5kIG5lZWQgdG8gaW5wdXQgaWYgdGhleSB3YW50IHRvIHVzZSBwcF9kcG1fc2Nsay9tY2xrL3Bj aWUuCgpJJ2QgcHJlZmVyIHRvIGtlZXAgdGhlIHJlcXVpcmVtZW50IHRvIHNlbGVjdCBtYW51YWwg bW9kZSB0byBiZSBhYmxlIHRvCm1hbnVhbGx5IG1lc3Mgd2l0aCB0aGUgY2xvY2sgbGV2ZWxzLiAg VGhpcyBhbHNvIG1ha2VzIHNpbXBsaWZpZXMgdGhlCnByb2ZpbGUgaW50ZXJmYWNlIGJ5IG9ubHkg YWxsb3dpbmcgeW91IHRvIGNoYW5nZSB0aGUgcHJvZmlsZSBpZiB5b3UKc2VsZWN0IG1hbnVhbCBt b2RlIGZpcnN0LiAgVGhhdCB3YXkgd2UgZG9uJ3QgaGF2ZSB0byBhZGQgYW4gQVVUTwpwcm9maWxl IHRvIHRoZSBwcm9maWxlIHNlbGVjdGlvbiB0byBsZXQgdGhlIGRyaXZlciBwaWNrIHRoZSBwcm9m aWxlLgp0aGF0IGNhbiBoYXBwZW4gYXV0b21hdGljYWxseSBpZiB0aGUgdXNlciBzZXRzIHRoZSBm b3JjZV9wZXJmb3JtYW5jZQpsZXZlbCB0byBhdXRvLgoKQWxleAoKPgo+Cj4gQmVzdCBSZWdhcmRz Cj4gUmV4Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBBbGV4IERldWNoZXIg W21haWx0bzphbGV4ZGV1Y2hlckBnbWFpbC5jb21dCj4gU2VudDogU2F0dXJkYXksIEphbnVhcnkg MjcsIDIwMTggNzo1MSBBTQo+IFRvOiBaaHUsIFJleAo+IENjOiBLdWVobGluZywgRmVsaXg7IGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzJdIGRy bS9hbWQvcHA6IFJlbW92ZSBtYW51YWwgbW9kZSBmb3IgcG93ZXJfZHBtX2ZvcmNlX3BlcmZvcm1h bmNlX2xldmVsCj4KPiBJIHRoaW5rIHdlIGhhdmUgdHdvIHVzZSBjYXNlcyBmb3IgdGhlIHByb2Zp bGVzOgo+Cj4gMS4gYXV0b21hdGljIHByb2ZpbGUgc3dpdGNoaW5nIGZvciBkaWZmZXJlbnQgZHJp dmVyIHVzZSBjYXNlcyAyLiBtYW51YWxseSB0d2Vha2luZyBwcm9maWxlcy9jbG9ja3MvcG93ZXIg Zm9yIHRlc3RpbmcKPgo+IEhvdyBhYm91dCB3ZSBtYWtlIHRoZSBwcm9maWxlIHNlbGVjdGlvbiBk ZXBlbmRlbnQgb24gc2VsZWN0aW5nIHRoZSBtYW51YWwgZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwg YW5kIG5vdCBhZGQgYW4gYXV0byB0byB0aGUgcHJvZmlsZSBzZWxlY3Rvci4gIFRoZW4gd2hlbiB5 b3Ugc2VsZWN0IG1hbnVhbCB5b3UgY2FuIHR3ZWFrIHRoZSBjbG9ja3MgYW5kIHByb2ZpbGUgaGV1 cmlzdGljcyBhbmQgcG93ZXIgY29udGFpbm1lbnQgdmlhIHRoZWlyIHJlc3BlY3RpdmUga25vYnMu Cj4KPgo+IEFsZXgKPgo+IE9uIEZyaSwgSmFuIDI2LCAyMDE4IGF0IDM6MDggUE0sIFpodSwgUmV4 IDxSZXguWmh1QGFtZC5jb20+IHdyb3RlOgo+Pj5FeGlzdGluZyB0b29scyBhbmQgdXNlcnMgZXhw ZWN0IHRoYXQgc3dpdGNoaW5nIGJhY2sgdG8gYXV0byByZW1vdmVzCj4+PnRoZSBtYW51YWwgY2xv Y2sgc2V0dGluZ3MuIElmIHlvdSBhbGxvdyBjaGFuZ2luZyB0aGUgY2xvY2sgaW4gYXV0bwo+Pj5t b2RlLCB0aGF0IHdvbid0IGhhcHBlbiBhbnkgbW9yZS4KPj4KPj4KPj4gSSBoYXZlIHNlbnQgdGhl IHBhdGNoIHYyIHRvIGZpeCB0aGlzIHByb2JsZW0uIHVzZXIgY2FuIHN3aXRoIGJhY2sgYXV0bwo+ PiBtb2RlIGFuZCBhbGwgbWFudWFsIGNsb2NrIHNldHRpbmcgd2lsbCBiZSByZW1vdmVkLgo+Pgo+ Pgo+Pj5PbmUgbW9yZSByZWFzb24gd2h5IGFsbG93aW5nIHRoZSB1c2VyIHRvIHNldCBwcF9kcG1f c2NrbC9tY2xrCj4+PnNob3VsZG4ndCBiZSAgYWxsb3dlZCBpbiBhdXRvLW1vZGUuCj4+Cj4+IHRo aXMgaXMgYW4gb2xkIGxvZ2ljLCBtYXliZSByZWYgcmFkZW9uIGRyaXZlci4KPj4gRHJpdmVyIGNh biBhbGxvdyB0byBzZXQgcHBfZHBtX3NjbGsvbWNsayByYW5nZSBpbiBhdXRvL2hpZ2gvbG93IG1v ZGUuCj4+Cj4+IEJlc3QgUmVnYXJkcwo+PiBSZXgKPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPj4gRnJvbTogS3VlaGxpbmcsIEZlbGl4Cj4+IFNlbnQ6IFNhdHVyZGF5LCBKYW51 YXJ5IDI3LCAyMDE4IDM6MzIgQU0KPj4gVG86IFpodSwgUmV4OyBhbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+PiBTdWJqZWN0OiBSZTogW1BBVENIIDEvMl0gZHJtL2FtZC9wcDogUmVtb3Zl IG1hbnVhbCBtb2RlIGZvcgo+PiBwb3dlcl9kcG1fZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwKPj4K Pj4gT24gMjAxOC0wMS0yNiAwMjoyMCBQTSwgWmh1LCBSZXggd3JvdGU6Cj4+Pgo+Pj4gPjEuIFlv dSdyZSBicmVha2luZyB0aGUgc2VtYW50aWNzIG9mIHRoZSBleGlzdGluZyBwcF9kcG1fc2Nsay9t Y2xrL3BjaWUKPj4+ID4gICAgaW50ZXJmYWNlcywgd2hpY2ggYWZmZWN0cyBleGlzdGluZyB0b29s cwo+Pj4KPj4+Cj4+PiBSZXg6IEkgZG9uJ3QgdGhpbmsgdGhlIHBhdGNoIHdpbGwgYWZmZWN0cyBl eGlzdGluZyB0b29scy4KPj4+Cj4+Pgo+Pj4gVXNlciBzZXQgIm1hbnVhbCIgdG8gcG93ZXJfcGVy Zm9ybWFuY2VfbGV2ZWwsIGFuZCB0aGVuIGNoYW5nZSB0aGUKPj4+IGNsb2NrIHJhbmdlIHRocm91 Z2ggIHBwX2RwbV9zY2xrL21jbGsvcGNpZS4KPj4+Cj4+Pgo+Pj4gd2l0aCB0aGlzIHBhdGNoLCBV c2VyIGRvbnQgbmVlZCB0byBzZXQgIm1hbnVhbCIgY29tbWFuZCwgIGlmIHN0aWxsCj4+PiByZWNl aXZlIHRoZSBtYW51YWwgY29tbWFuZCwgZHJpdmVyIGp1c3QgcmV0dXJuIHN1Y2VzcyB0byB1c2Vy IGluCj4+PiBvcmRlciBub3QgIGJyZWFrIGV4aXN0aW5nCj4+Pgo+Pj4gdG9vbHMuCj4+Pgo+Pgo+ PiBFeGlzdGluZyB0b29scyBhbmQgdXNlcnMgZXhwZWN0IHRoYXQgc3dpdGNoaW5nIGJhY2sgdG8g YXV0byByZW1vdmVzCj4+IHRoZSBtYW51YWwgY2xvY2sgc2V0dGluZ3MuIElmIHlvdSBhbGxvdyBj aGFuZ2luZyB0aGUgY2xvY2sgaW4gYXV0bwo+PiBtb2RlLCB0aGF0IHdvbid0IGhhcHBlbiBhbnkg bW9yZS4KPj4KPj4+Cj4+PiAgPjIuIFlvdSdyZSB0YWtpbmcgdGhlIGNsb2NrIGxpbWl0cyBvdXQg b2YgdGhlIHBvd2VyIHByb2ZpbGUuCj4+PiAgPiAgQXV0b21hdGljYWxseSBhZGp1c3RpbmcgdGhl IG1pbmltdW0gc2Nsay9tY2xrIGlzIGEgcmVxdWlyZW1lbnQgZm9yCj4+PiAgPiAgIHRoZSBjb21w dXRlIHBvd2VyIHByb2ZpbGUKPj4+Cj4+Pgo+Pj4gUmV4OiBJbiB2ZWdhMTAsIHVuZGVyIGRlZmF1 bHQgY29tcHV0IG1vZGUod2l0aAo+Pj4gYnVzeV9zZXRfcG9pbnQvZnBzL3VzZV9ybGNfYnVzeS9t aW5fYWN0aXZlX2xldmVsIHNldCksIGp1c3QgdHdvCj4+PiBwZXJmb3JtYW5jZSBsZXZlbHMgbGVm dAo+Pj4gKGxldmVsMCBhbmQgbGV2ZWw3KS4gYW5kIGNsb2NrIGp1c3Qgc3dpdGNoIGJldHdlZW4g bG93ZXN0IGFuZCBoaWdoZXN0Lgo+Pj4KPj4+IEkgYW0gbm90IHN1cmUgaW4gdGhpcyBjYXNlLCBk cml2ZXIgc3RpbGwgY2FuIHNldCBtaW4gc2Nsay9tY2xrLgo+Pgo+PiBPbmUgbW9yZSByZWFzb24g d2h5IGFsbG93aW5nIHRoZSB1c2VyIHRvIHNldCBwcF9kcG1fc2NrbC9tY2xrCj4+IHNob3VsZG4n dCBiZSBhbGxvd2VkIGluIGF1dG8tbW9kZS4KPj4KPj4gUmVnYXJkcywKPj4gICBGZWxpeAo+Pgo+ Pj4KPj4+IEJlc3QgUmVnYXJkcwo+Pj4gUmV4Cj4+Pgo+Pj4KPj4+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4g LS0tCj4+PiAqRnJvbToqIEt1ZWhsaW5nLCBGZWxpeAo+Pj4gKlNlbnQ6KiBTYXR1cmRheSwgSmFu dWFyeSAyNywgMjAxOCAxMjo0OSBBTQo+Pj4gKlRvOiogWmh1LCBSZXg7IGFtZC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCj4+PiAqU3ViamVjdDoqIFJlOiBbUEFUQ0ggMS8yXSBkcm0vYW1kL3Bw OiBSZW1vdmUgbWFudWFsIG1vZGUgZm9yCj4+PiBwb3dlcl9kcG1fZm9yY2VfcGVyZm9ybWFuY2Vf bGV2ZWwKPj4+Cj4+PiBIaSBSZXgsCj4+Pgo+Pj4gSSB0aGluayBJIHVuZGVyc3RhbmQgd2hhdCB5 b3UncmUgdHJ5aW5nIHRvIGRvLiBUbyBzdW1tYXJpemUgbXkKPj4+IGNvbmNlcm5zLCB0aGVyZSBh cmUgdHdvIHJlYXNvbnMgSSdtIGFnYWluc3QgeW91ciBwbGFuOgo+Pj4KPj4+ICAxLiBZb3UncmUg YnJlYWtpbmcgdGhlIHNlbWFudGljcyBvZiB0aGUgZXhpc3RpbmcgcHBfZHBtX3NjbGsvbWNsay9w Y2llCj4+PiAgICAgaW50ZXJmYWNlcywgd2hpY2ggYWZmZWN0cyBleGlzdGluZyB0b29scyAgMi4g WW91J3JlIHRha2luZyB0aGUKPj4+IGNsb2NrIGxpbWl0cyBvdXQgb2YgdGhlIHBvd2VyIHByb2Zp bGUuCj4+PiAgICAgQXV0b21hdGljYWxseSBhZGp1c3RpbmcgdGhlIG1pbmltdW0gc2Nsay9tY2xr IGlzIGEgcmVxdWlyZW1lbnQgZm9yCj4+PiAgICAgdGhlIGNvbXB1dGUgcG93ZXIgcHJvZmlsZQo+ Pj4KPj4+IFJlZ2FyZHMsCj4+PiAgIEZlbGl4Cj4+Pgo+Pj4gT24gMjAxOC0wMS0yNiAwNzo1MCBB TSwgWmh1LCBSZXggd3JvdGU6Cj4+PiA+Cj4+PiA+IEhpIEZlbGl4LAo+Pj4gPgo+Pj4gPgo+Pj4g PiA+VGhhdCB3b3VsZCBtYWtlIHNlbnNlLiBCdXQgc3dpdGNoaW5nIHRvIG1hbnVhbCBtb2RlIHdv dWxkIGRpc2FibGUKPj4+ID4gPnByb2ZpbGVzIGFuZCBhdXRvbWF0aWMgcHJvZmlsZSBzZWxlY3Rp b24uIFRoYXQgd2FzIG9uZSByZWFzb24gd2h5Cj4+PiA+ID5JIG9iamVjdGVkIHRvIHlvdXIgcGxh biB0byBjb250cm9sIHByb2ZpbGUgY2xvY2sgbGltaXRzIHVzaW5nCj4+PiA+ID50aGVzZQo+Pj4g ZmlsZXMuCj4+PiA+Cj4+PiA+IFJleDoKPj4+ID4KPj4+ID4KPj4+ID4gSSBhbSBub3QgdmVyeSBj bGVhciB0aGUgb2xkIGxvZ2ljIG9mIGdmeC9jb21wdXRlIHBvd2VyIHByb2ZpbGUgc3dpdGNoLgo+ Pj4gPgo+Pj4gPgo+Pj4gPiBCdXQgd2l0aCBuZXcgc3lzZnMsCj4+PiA+Cj4+PiA+Cj4+PiA+Cj4+ PiA+IFRoZSBsb2dpYyBpcyh0aG9zZSBzeXNmcyBhcmUgaW5kZXBlbmRlbnQpCj4+PiA+Cj4+PiA+ ICAxLiBjb25maWd1cmUgdXBoeXN0L2Rvd25oeXN0L21pbl9hdGl2aXR5IHRocm91Z2gKPj4+ID4g cG93ZXJfcHJvZmlsZV9tb2RlLAo+Pj4gPgo+Pj4gPiAgICAgICAyLiBhZGp1c3QgY2xvY2sgcmFu Z2UgdGhyb3VnaCBwcF9kcG1fc2Nsay9tY2xrL3BjaWUuKG9uY2UKPj4+ID4gdGhpcyBzeXNmZnMg d2FzIGNhbGxlZCwgc2V0IHRoZSBkcG0gbGV2ZWwgbW9kZSB0byB1bmtub3duKQo+Pj4gPgo+Pj4g PiAgICAgICAzLiBhZGp1c3QgcG93ZXIgbGltaXQgdGhyb3VnaCBwcF9vZF9wb3dlcl9saW1pdCht YXliZSBlcXVhbAo+Pj4gPiB0byBkaXNhYmxlIHBvd2VyIGNvbnRhaW5tZW50KS4KPj4+ID4KPj4+ ID4KPj4+ID4KPj4+ID4gSW4gdGhvc2UgZnVuY3Rpb25zLCBkcml2ZXIgZG8gbm90IGNoZWNrIHRo ZSBkcG0gbGV2ZWwgbW9kZS4KPj4+ID4KPj4+ID4gdGhlIGRwbSBsZXZlbCBtb2RlIGp1c3QgdXNl ZCBieSBwb3dlcl9kcG1fZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwKPj4+ID4gZnVuY3Rpb25zLgo+ Pj4gPgo+Pj4gPgo+Pj4gPiBCZXN0IFJlZ2FyZHMKPj4+ID4KPj4+ID4gUmV4Cj4+PiA+Cj4+PiA+ Cj4+PiA+Cj4+PiA+Cj4+PiA+Cj4+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+ID4gLS0tLS0KPj4+ID4gKkZy b206KiBLdWVobGluZywgRmVsaXgKPj4+ID4gKlNlbnQ6KiBGcmlkYXksIEphbnVhcnkgMjYsIDIw MTggODoyNiBBTQo+Pj4gPiAqVG86KiBaaHUsIFJleDsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPj4+ID4gKlN1YmplY3Q6KiBSZTogW1BBVENIIDEvMl0gZHJtL2FtZC9wcDogUmVtb3Zl IG1hbnVhbCBtb2RlIGZvcgo+Pj4gPiBwb3dlcl9kcG1fZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwK Pj4+ID4KPj4+ID4gT24gMjAxOC0wMS0yNSAwNzowNyBQTSwgWmh1LCBSZXggd3JvdGU6Cj4+PiA+ ID4gSSBhbHNvIHRoaW5rIGFib3V0IHRoaXMgcHJvYmxlbS4KPj4+ID4gPiBqdXN0IHRoaW5rIHVz ZXIgc2hvdWxkIHVuZm9yY2VkIGNsayBsZXZlbCB0aHJvdWdoIHBwIGRwbQo+Pj4gPiA+IHNjbGsv bWNsay9wY2llIGlmIHRoZXkgY2hhbmdlIHRoZSBjbG9jayBsb2dpYyB0aHJvdWdoIHRob3NlIHN5 c2ZzLgo+Pj4gPiA+Cj4+PiA+ID4gVGhlIGxvZ2ljIHNlZW1zIHdlaXJkLCBBcyB3ZSBzdXBwbHkg bWFueSBzeXNmcyBmb3IgYWRqdXN0IGNsb2NrIHJhbmdlLgo+Pj4gPiA+Cj4+PiA+ID4gV2UgY2Fu IGZpeCB0aGlzIHByb2JsZW0gYnkgY2hhbmdlIGN1cnJlbnQgbW9kZSB0byBtYW51YWwgbW9kZQo+ Pj4gPiA+IGFmdGVyIHVzZXIgY2FsbCBwcCBkcG0gc2Nsay9tY2xrL3BjaWUuCj4+PiA+ID4KPj4+ ID4gPiBCdXQgYW5vdGhlciB0aGlua++8jGlmIHVzZXIgY2hhbmdlIGJhY2sgdGhlIGNsayByYW5n ZSB0aHJvdWdoIHBwCj4+PiA+ID4gZHBtCj4+PiBjbGsuCj4+PiA+ID4KPj4+ID4gPiB3ZSBhcmUg aW4gbWFudWFsIG1vZGUsIGFuZCB1c2VyIHNldCBhdXRvIG1vZGUsIGluIGZhY3QsIGRyaXZlcgo+ Pj4gPiA+IGNoYW5nZSBub3RoaW5nLgo+Pj4gPgo+Pj4gPiBXaXRoIHByb2ZpbGVzLCBzd2l0Y2hp bmcgYmFjayB0byBhdXRvIG1vZGUgd291bGQgc2VsZWN0IHRoZQo+Pj4gPiBhcHByb3ByaWF0ZSBw cm9maWxlLCB3aGljaCBtYXkgaGF2ZSBhIGRpZmZlcmVudCBjbG9jayBtYXNrLiBGb3IKPj4+ID4g ZXhhbXBsZSBmb3IgY29tcHV0ZSB3ZSBlbmFibGUgb25seSB0aGUgaGlnaGVzdCB0d28gc2NsayBs ZXZlbHMuCj4+PiA+Cj4+PiA+ID4KPj4+ID4gPiBDb21wYXJhdGl2ZWx5IHNwZWFraW5nLCBiZXR0 ZXIgc2V0IG1hbnVhbCBtb2RlIGFmdGVyIHVzZXIgY2FsbCBwcAo+Pj4gPiBkcG0gY2xrLgo+Pj4g Pgo+Pj4gPiBUaGF0IHdvdWxkIG1ha2Ugc2Vuc2UuIEJ1dCBzd2l0Y2hpbmcgdG8gbWFudWFsIG1v ZGUgd291bGQgZGlzYWJsZQo+Pj4gPiBwcm9maWxlcyBhbmQgYXV0b21hdGljIHByb2ZpbGUgc2Vs ZWN0aW9uLiBUaGF0IHdhcyBvbmUgcmVhc29uIHdoeSBJCj4+PiA+IG9iamVjdGVkIHRvIHlvdXIg cGxhbiB0byBjb250cm9sIHByb2ZpbGUgY2xvY2sgbGltaXRzIHVzaW5nIHRoZXNlIGZpbGVzLgo+ Pj4gPgo+Pj4gPiBSZWdhcmRzLAo+Pj4gPiAgIEZlbGl4Cj4+PiA+Cj4+PiA+ID4gVGhhbmtzIHZl cnkgbXVjaC4KPj4+ID4gPgo+Pj4gPiA+IEJlc3QgUmVnYXJkcwo+Pj4gPiA+IFJleAo+Pj4gPiA+ Cj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KPj4+IC0tLQo+Pj4gPiA+ICpGcm9tOiogS3VlaGxpbmcsIEZlbGl4 Cj4+PiA+ID4gKlNlbnQ6KiBGcmlkYXksIEphbnVhcnkgMjYsIDIwMTggMTI6NTU6MTkgQU0KPj4+ ID4gPiAqVG86KiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgWmh1LCBSZXgKPj4+ID4g PiAqU3ViamVjdDoqIFJlOiBbUEFUQ0ggMS8yXSBkcm0vYW1kL3BwOiBSZW1vdmUgbWFudWFsIG1v ZGUgZm9yCj4+PiA+ID4gcG93ZXJfZHBtX2ZvcmNlX3BlcmZvcm1hbmNlX2xldmVsCj4+PiA+ID4K Pj4+ID4gPiBUaGlzIHBhdGNoIGJyZWFrcyB1bmZvcmNpbmcgb2YgY2xvY2tzLCB3aGljaCBpcyBj dXJyZW50bHkgZG9uZSBieQo+Pj4gPiA+IHN3aXRjaGluZyBiYWNrIGZyb20gIm1hbnVhbCIgdG8g ImF1dG8iLiBCeSByZW1vdmluZyAibWFudWFsIgo+Pj4gPiA+IG1vZGUsIHlvdSByZW1vdmUgdGhl IGFiaWxpdHkgdG8gdW5zZXQgZm9yY2VkIGNsb2Nrcy4KPj4+ID4gPgo+Pj4gPiA+IFJlZ2FyZHMs Cj4+PiA+ID4gICBGZWxpeAo+Pj4gPiA+Cj4+PiA+ID4KPj4+ID4gPiBPbiAyMDE4LTAxLTI1IDA2 OjI2IEFNLCBSZXggWmh1IHdyb3RlOgo+Pj4gPiA+ID4gRHJpdmVyIGRvIG5vdCBtYWludGFpbiBt YW51YWwgbW9kZSBmb3IKPj4+ID4gPiA+IGRwbV9mb3JjZV9wZXJmb3JtYW5jZV9sZXZlbCwgVXNl ciBjYW4gc2V0IHNjbGsvbWNsay9wY2llIHJhbmdlCj4+PiA+ID4gPiB0aHJvdWdoCj4+PiA+ID4g cHBfZHBtX3NjbGsvcHBfZHBtX21jbGsvcHBfZHBtX3BjaWUKPj4+ID4gPiA+IGRpcmVjdGx5Lgo+ Pj4gPiA+ID4KPj4+ID4gPiA+IEluIG9yZGVyIHRvIG5vdCBicmVhayBjdXJyZW50bHkgdG9vbHMs IHdoZW4gc2V0ICJtYW51YWwiIHRvCj4+PiA+ID4gPiBwb3dlcl9kcG1fZm9yY2VfcGVyZm9ybWFu Y2VfbGV2ZWwgZHJpdmVyIHdpbGwgZG8gbm90aGluZyBhbmQKPj4+ID4gPiA+IGp1c3QgcmV0dXJu IHN1Y2Nlc3NmdWwuCj4+PiA+ID4gPgo+Pj4gPiA+ID4gQ2hhbmdlLUlkOiBJYWY2NzJiOWFiYzdm YTU3Yjc2NWNlYjdmYTJmYmE2YWQzZTgwYzUwYgo+Pj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUmV4 IFpodSA8UmV4LlpodUBhbWQuY29tPgo+Pj4gPiA+ID4gLS0tCj4+PiA+ID4gPiAgZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMgICAgICAgICAgICAgfCAgMyArLS0KPj4+ID4g PiA+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaV9kcG0uYyAgICAgICAgICAgICAgICB8 ICA1IC0tLS0tCj4+PiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2tnZF9wcF9p bnRlcmZhY2UuaCAgICAgfCAxNQo+Pj4gPiArKysrKysrLS0tLS0tLS0KPj4+ID4gPiA+ICBkcml2 ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9jel9od21nci5jICAgICB8ICA0IC0tLS0K Pj4+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9ydl9od21nci5j ICAgICB8ICAxIC0KPj4+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21n ci9zbXU3X2h3bWdyLmMgICB8ICA2IC0tLS0tLQo+Pj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jIHwgIDYgLS0tLS0tCj4+PiA+ID4gPiAg NyBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQo+Pj4gPiA+ ID4KPj4+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfcG0uYwo+Pj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMK Pj4+ID4gPiA+IGluZGV4IDE4MTIwMDkuLjY2YjRkZjAgMTAwNjQ0Cj4+PiA+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYwo+Pj4gPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMKPj4+ID4gPiA+IEBAIC0xNTIsNyAr MTUyLDYgQEAgc3RhdGljIHNzaXplX3QKPj4+ID4gPiBhbWRncHVfZ2V0X2RwbV9mb3JjZWRfcGVy Zm9ybWFuY2VfbGV2ZWwoc3RydWN0IGRldmljZSAqZGV2LAo+Pj4gPiA+ID4gICAgICAgICAgICAg ICAgICAgICAgICAobGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfQVVUTykgPwo+Pj4gImF1 dG8iIDoKPj4+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgKGxldmVsID09IEFNRF9EUE1f Rk9SQ0VEX0xFVkVMX0xPVykgPyAibG93IiA6Cj4+PiA+ID4gPiAgICAgICAgICAgICAgICAgICAg ICAgIChsZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9ISUdIKSA/Cj4+PiAiaGlnaCIgOgo+ Pj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIChsZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9M RVZFTF9NQU5VQUwpID8KPj4+ID4gPiAibWFudWFsIiA6Cj4+PiA+ID4gPiAgICAgICAgICAgICAg ICAgICAgICAgIChsZXZlbCA9PQo+Pj4gPiA+IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVf U1RBTkRBUkQpID8gInByb2ZpbGVfc3RhbmRhcmQiIDoKPj4+ID4gPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgKGxldmVsID09Cj4+PiA+ID4gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9N SU5fU0NMSykgPyAicHJvZmlsZV9taW5fc2NsayIgOgo+Pj4gPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAobGV2ZWwgPT0KPj4+ID4gPiBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX01J Tl9NQ0xLKSA/ICJwcm9maWxlX21pbl9tY2xrIiA6Cj4+PiA+ID4gPiBAQCAtMTg2LDcgKzE4NSw3 IEBAIHN0YXRpYyBzc2l6ZV90Cj4+PiA+ID4gYW1kZ3B1X3NldF9kcG1fZm9yY2VkX3BlcmZvcm1h bmNlX2xldmVsKHN0cnVjdCBkZXZpY2UgKmRldiwKPj4+ID4gPiA+ICAgICAgICB9IGVsc2UgaWYg KHN0cm5jbXAoImF1dG8iLCBidWYsIHN0cmxlbigiYXV0byIpKSA9PSAwKSB7Cj4+PiA+ID4gPiAg ICAgICAgICAgICAgICBsZXZlbCA9IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0FVVE87Cj4+PiA+ID4g PiAgICAgICAgfSBlbHNlIGlmIChzdHJuY21wKCJtYW51YWwiLCBidWYsIHN0cmxlbigibWFudWFs IikpID09IDApIHsKPj4+ID4gPiA+IC0gICAgICAgICAgICAgbGV2ZWwgPSBBTURfRFBNX0ZPUkNF RF9MRVZFTF9NQU5VQUw7Cj4+PiA+ID4gPiArICAgICAgICAgICAgIHByX2luZm8oIk5vIG5lZWQg dG8gc2V0IG1hbnVhbCBtb2RlLCBKdXN0IGdvCj4+PiBhaGVhZFxuIik7Cj4+PiA+ID4gPiAgICAg ICAgfSBlbHNlIGlmIChzdHJuY21wKCJwcm9maWxlX2V4aXQiLCBidWYsCj4+PiA+ID4gc3RybGVu KCJwcm9maWxlX2V4aXQiKSkgPT0gMCkgewo+Pj4gPiA+ID4gICAgICAgICAgICAgICAgbGV2ZWwg PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX0VYSVQ7Cj4+PiA+ID4gPiAgICAgICAgfSBl bHNlIGlmIChzdHJuY21wKCJwcm9maWxlX3N0YW5kYXJkIiwgYnVmLAo+Pj4gPiA+IHN0cmxlbigi cHJvZmlsZV9zdGFuZGFyZCIpKSA9PSAwKSB7Cj4+PiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvY2lfZHBtLmMKPj4+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2NpX2RwbS5jCj4+PiA+ID4gPiBpbmRleCBhYjQ1MjMyLi44ZGRjOTc4IDEwMDY0 NAo+Pj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lfZHBtLmMKPj4+ ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2NpX2RwbS5jCj4+PiA+ID4g PiBAQCAtNjYzOSwxMSArNjYzOSw2IEBAIHN0YXRpYyBpbnQgY2lfZHBtX2ZvcmNlX2Nsb2NrX2xl dmVsKHZvaWQKPj4+ID4gKmhhbmRsZSwKPj4+ID4gPiA+ICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPj4+ID4gPiA+ICAg ICAgICBzdHJ1Y3QgY2lfcG93ZXJfaW5mbyAqcGkgPSBjaV9nZXRfcGkoYWRldik7Cj4+PiA+ID4g Pgo+Pj4gPiA+ID4gLSAgICAgaWYgKGFkZXYtPnBtLmRwbS5mb3JjZWRfbGV2ZWwgJiAoQU1EX0RQ TV9GT1JDRURfTEVWRUxfQVVUTyB8Cj4+PiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBTURfRFBNX0ZPUkNFRF9MRVZFTF9MT1cgfAo+Pj4gPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQU1EX0RQTV9GT1JDRURfTEVWRUxfSElHSCkpCj4+PiA+ID4gPiAtICAg ICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pj4gPiA+ID4gLQo+Pj4gPiA+ID4gICAgICAgIHN3 aXRjaCAodHlwZSkgewo+Pj4gPiA+ID4gICAgICAgIGNhc2UgUFBfU0NMSzoKPj4+ID4gPiA+ICAg ICAgICAgICAgICAgIGlmICghcGktPnNjbGtfZHBtX2tleV9kaXNhYmxlZCkgZGlmZiAtLWdpdAo+ Pj4gPiA+ID4gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUva2dkX3BwX2ludGVyZmFjZS5o Cj4+PiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUva2dkX3BwX2ludGVyZmFjZS5o Cj4+PiA+ID4gPiBpbmRleCBiOWFhOWY0Li4zZmFiNjg2IDEwMDY0NAo+Pj4gPiA+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2tnZF9wcF9pbnRlcmZhY2UuaAo+Pj4gPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2tnZF9wcF9pbnRlcmZhY2UuaAo+Pj4g PiA+ID4gQEAgLTQxLDE0ICs0MSwxMyBAQCBzdHJ1Y3QgYW1kX3ZjZV9zdGF0ZSB7Cj4+PiA+ID4g Pgo+Pj4gPiA+ID4gIGVudW0gYW1kX2RwbV9mb3JjZWRfbGV2ZWwgewo+Pj4gPiA+ID4gICAgICAg IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0FVVE8gPSAweDEsCj4+PiA+ID4gPiAtICAgICBBTURfRFBN X0ZPUkNFRF9MRVZFTF9NQU5VQUwgPSAweDIsCj4+PiA+ID4gPiAtICAgICBBTURfRFBNX0ZPUkNF RF9MRVZFTF9MT1cgPSAweDQsCj4+PiA+ID4gPiAtICAgICBBTURfRFBNX0ZPUkNFRF9MRVZFTF9I SUdIID0gMHg4LAo+Pj4gPiA+ID4gLSAgICAgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9T VEFOREFSRCA9IDB4MTAsCj4+PiA+ID4gPiAtICAgICBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9G SUxFX01JTl9TQ0xLID0gMHgyMCwKPj4+ID4gPiA+IC0gICAgIEFNRF9EUE1fRk9SQ0VEX0xFVkVM X1BST0ZJTEVfTUlOX01DTEsgPSAweDQwLAo+Pj4gPiA+ID4gLSAgICAgQU1EX0RQTV9GT1JDRURf TEVWRUxfUFJPRklMRV9QRUFLID0gMHg4MCwKPj4+ID4gPiA+IC0gICAgIEFNRF9EUE1fRk9SQ0VE X0xFVkVMX1BST0ZJTEVfRVhJVCA9IDB4MTAwLAo+Pj4gPiA+ID4gKyAgICAgQU1EX0RQTV9GT1JD RURfTEVWRUxfTE9XID0gMHgyLAo+Pj4gPiA+ID4gKyAgICAgQU1EX0RQTV9GT1JDRURfTEVWRUxf SElHSCA9IDB4NCwKPj4+ID4gPiA+ICsgICAgIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVf U1RBTkRBUkQgPSAweDgsCj4+PiA+ID4gPiArICAgICBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9G SUxFX01JTl9TQ0xLID0gMHgxMCwKPj4+ID4gPiA+ICsgICAgIEFNRF9EUE1fRk9SQ0VEX0xFVkVM X1BST0ZJTEVfTUlOX01DTEsgPSAweDIwLAo+Pj4gPiA+ID4gKyAgICAgQU1EX0RQTV9GT1JDRURf TEVWRUxfUFJPRklMRV9QRUFLID0gMHg0MCwKPj4+ID4gPiA+ICsgICAgIEFNRF9EUE1fRk9SQ0VE X0xFVkVMX1BST0ZJTEVfRVhJVCA9IDB4ODAsCj4+PiA+ID4gPiAgfTsKPj4+ID4gPiA+Cj4+PiA+ ID4gPiAgZW51bSBhbWRfcG1fc3RhdGVfdHlwZSB7Cj4+PiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvY3pfaHdtZ3IuYwo+Pj4gPiA+IGIvZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvY3pfaHdtZ3IuYwo+Pj4gPiA+ID4gaW5k ZXggZGVjOGRkOS4uNjBkMjgwYyAxMDA2NDQKPj4+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL2N6X2h3bWdyLmMKPj4+ID4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL2N6X2h3bWdyLmMKPj4+ID4gPiA+IEBAIC0xMjUw LDcgKzEyNTAsNiBAQCBzdGF0aWMgaW50IGN6X2RwbV9mb3JjZV9kcG1fbGV2ZWwoc3RydWN0Cj4+ PiA+ID4gcHBfaHdtZ3IgKmh3bWdyLAo+Pj4gPiA+ID4gICAgICAgIGNhc2UgQU1EX0RQTV9GT1JD RURfTEVWRUxfQVVUTzoKPj4+ID4gPiA+ICAgICAgICAgICAgICAgIHJldCA9IGN6X3BobV91bmZv cmNlX2RwbV9sZXZlbHMoaHdtZ3IpOwo+Pj4gPiA+ID4gICAgICAgICAgICAgICAgYnJlYWs7Cj4+ PiA+ID4gPiAtICAgICBjYXNlIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX01BTlVBTDoKPj4+ID4gPiA+ ICAgICAgICBjYXNlIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfRVhJVDoKPj4+ID4gPiA+ ICAgICAgICBkZWZhdWx0Ogo+Pj4gPiA+ID4gICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiA+ID4g PiBAQCAtMTU1OCw5ICsxNTU3LDYgQEAgc3RhdGljIGludCBjel9nZXRfZGFsX3Bvd2VyX2xldmVs KHN0cnVjdAo+Pj4gPiA+IHBwX2h3bWdyICpod21nciwKPj4+ID4gPiA+ICBzdGF0aWMgaW50IGN6 X2ZvcmNlX2Nsb2NrX2xldmVsKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCj4+PiA+ID4gPiAgICAg ICAgICAgICAgICBlbnVtIHBwX2Nsb2NrX3R5cGUgdHlwZSwgdWludDMyX3QgbWFzaykgIHsKPj4+ ID4gPiA+IC0gICAgIGlmIChod21nci0+ZHBtX2xldmVsICE9IEFNRF9EUE1fRk9SQ0VEX0xFVkVM X01BTlVBTCkKPj4+ID4gPiA+IC0gICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiA+ID4g PiAtCj4+PiA+ID4gPiAgICAgICAgc3dpdGNoICh0eXBlKSB7Cj4+PiA+ID4gPiAgICAgICAgY2Fz ZSBQUF9TQ0xLOgo+Pj4gPiA+ID4gICAgICAgICAgICAgICAgc211bV9zZW5kX21zZ190b19zbWNf d2l0aF9wYXJhbWV0ZXIoaHdtZ3IsCj4+PiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvcnZfaHdtZ3IuYwo+Pj4gPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvcnZfaHdtZ3IuYwo+Pj4gPiA+ID4gaW5kZXggNDA5YTU2 Yi4uZWRkY2JjZCAxMDA2NDQKPj4+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93 ZXJwbGF5L2h3bWdyL3J2X2h3bWdyLmMKPj4+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL3J2X2h3bWdyLmMKPj4+ID4gPiA+IEBAIC02MDUsNyArNjA1LDYg QEAgc3RhdGljIGludCBydl9kcG1fZm9yY2VfZHBtX2xldmVsKHN0cnVjdAo+Pj4gPiA+IHBwX2h3 bWdyICpod21nciwKPj4+ID4gPiA+Cj4+PiA+ID4gUFBTTUNfTVNHX1NldFNvZnRNYXhGY2xrQnlG cmVxLAo+Pj4gPiA+ID4KPj4+ID4gPiBSQVZFTl9VTURfUFNUQVRFX01JTl9GQ0xLKTsKPj4+ID4g PiA+ICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gPiA+ID4gLSAgICAgY2FzZSBBTURfRFBNX0ZP UkNFRF9MRVZFTF9NQU5VQUw6Cj4+PiA+ID4gPiAgICAgICAgY2FzZSBBTURfRFBNX0ZPUkNFRF9M RVZFTF9QUk9GSUxFX0VYSVQ6Cj4+PiA+ID4gPiAgICAgICAgZGVmYXVsdDoKPj4+ID4gPiA+ICAg ICAgICAgICAgICAgIGJyZWFrOwo+Pj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTdfaHdtZ3IuYwo+Pj4gPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19od21nci5jCj4+PiA+ID4gPiBpbmRleCAxM2Ri NzVjLi5lM2E4Mzc0IDEwMDY0NAo+Pj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9w b3dlcnBsYXkvaHdtZ3Ivc211N19od21nci5jCj4+PiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9od21nci9zbXU3X2h3bWdyLmMKPj4+ID4gPiA+IEBAIC0yNzk4LDcg KzI3OTgsNiBAQCBzdGF0aWMgaW50IHNtdTdfZm9yY2VfZHBtX2xldmVsKHN0cnVjdAo+Pj4gPiA+ IHBwX2h3bWdyICpod21nciwKPj4+ID4gPiA+ICAgICAgICAgICAgICAgIHNtdTdfZm9yY2VfY2xv Y2tfbGV2ZWwoaHdtZ3IsIFBQX01DTEssIDE8PG1jbGtfbWFzayk7Cj4+PiA+ID4gPiAgICAgICAg ICAgICAgICBzbXU3X2ZvcmNlX2Nsb2NrX2xldmVsKGh3bWdyLCBQUF9QQ0lFLCAxPDxwY2llX21h c2spOwo+Pj4gPiA+ID4gICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiA+ID4gPiAtICAgICBjYXNl IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX01BTlVBTDoKPj4+ID4gPiA+ICAgICAgICBjYXNlIEFNRF9E UE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfRVhJVDoKPj4+ID4gPiA+ICAgICAgICBkZWZhdWx0Ogo+ Pj4gPiA+ID4gICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiA+ID4gPiBAQCAtNDMxMSwxMSArNDMx MCw2IEBAIHN0YXRpYyBpbnQgc211N19mb3JjZV9jbG9ja19sZXZlbChzdHJ1Y3QKPj4+ID4gPiBw cF9od21nciAqaHdtZ3IsCj4+PiA+ID4gPiAgewo+Pj4gPiA+ID4gICAgICAgIHN0cnVjdCBzbXU3 X2h3bWdyICpkYXRhID0gKHN0cnVjdCBzbXU3X2h3bWdyCj4+PiA+ICopKGh3bWdyLT5iYWNrZW5k KTsKPj4+ID4gPiA+Cj4+PiA+ID4gPiAtICAgICBpZiAoaHdtZ3ItPnJlcXVlc3RfZHBtX2xldmVs ICYgKEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0FVVE8gfAo+Pj4gPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBTURfRFBNX0ZPUkNFRF9MRVZFTF9MT1cgfAo+Pj4gPiA+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTURfRFBNX0ZPUkNFRF9M RVZFTF9ISUdIKSkKPj4+ID4gPiA+IC0gICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiA+ ID4gPiAtCj4+PiA+ID4gPiAgICAgICAgc3dpdGNoICh0eXBlKSB7Cj4+PiA+ID4gPiAgICAgICAg Y2FzZSBQUF9TQ0xLOgo+Pj4gPiA+ID4gICAgICAgICAgICAgICAgaWYgKCFkYXRhLT5zY2xrX2Rw bV9rZXlfZGlzYWJsZWQpIGRpZmYgLS1naXQKPj4+ID4gPiA+IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMKPj4+ID4gPiBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jCj4+PiA+ID4gPiBpbmRleCA2YjI4 ODk2Li44Mjg2NzdlIDEwMDY0NAo+Pj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9w b3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMKPj4+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jCj4+PiA+ID4gPiBAQCAtNDI0 MSw3ICs0MjQxLDYgQEAgc3RhdGljIGludAo+Pj4gPiA+ID4gdmVnYTEwX2RwbV9mb3JjZV9kcG1f bGV2ZWwoc3RydWN0Cj4+PiA+ID4gcHBfaHdtZ3IgKmh3bWdyLAo+Pj4gPiA+ID4gICAgICAgICAg ICAgICAgdmVnYTEwX2ZvcmNlX2Nsb2NrX2xldmVsKGh3bWdyLCBQUF9TQ0xLLAo+Pj4gMTw8c2Ns a19tYXNrKTsKPj4+ID4gPiA+ICAgICAgICAgICAgICAgIHZlZ2ExMF9mb3JjZV9jbG9ja19sZXZl bChod21nciwgUFBfTUNMSywKPj4+IDE8PG1jbGtfbWFzayk7Cj4+PiA+ID4gPiAgICAgICAgICAg ICAgICBicmVhazsKPj4+ID4gPiA+IC0gICAgIGNhc2UgQU1EX0RQTV9GT1JDRURfTEVWRUxfTUFO VUFMOgo+Pj4gPiA+ID4gICAgICAgIGNhc2UgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9F WElUOgo+Pj4gPiA+ID4gICAgICAgIGRlZmF1bHQ6Cj4+PiA+ID4gPiAgICAgICAgICAgICAgICBi cmVhazsKPj4+ID4gPiA+IEBAIC00NTAwLDExICs0NDk5LDYgQEAgc3RhdGljIGludAo+Pj4gPiA+ ID4gdmVnYTEwX2ZvcmNlX2Nsb2NrX2xldmVsKHN0cnVjdAo+Pj4gPiA+IHBwX2h3bWdyICpod21n ciwKPj4+ID4gPiA+ICB7Cj4+PiA+ID4gPiAgICAgICAgc3RydWN0IHZlZ2ExMF9od21nciAqZGF0 YSA9IChzdHJ1Y3QgdmVnYTEwX2h3bWdyCj4+PiA+ID4gKikoaHdtZ3ItPmJhY2tlbmQpOwo+Pj4g PiA+ID4KPj4+ID4gPiA+IC0gICAgIGlmIChod21nci0+cmVxdWVzdF9kcG1fbGV2ZWwgJiAoQU1E X0RQTV9GT1JDRURfTEVWRUxfQVVUTyB8Cj4+PiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBTURfRFBNX0ZPUkNFRF9MRVZFTF9MT1cgfAo+Pj4gPiA+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQU1EX0RQTV9GT1JDRURfTEVWRUxfSElHSCkpCj4+PiA+ID4gPiAt ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pj4gPiA+ID4gLQo+Pj4gPiA+ID4gICAgICAg IHN3aXRjaCAodHlwZSkgewo+Pj4gPiA+ID4gICAgICAgIGNhc2UgUFBfU0NMSzoKPj4+ID4gPiA+ ICAgICAgICAgICAgICAgIGRhdGEtPnNtY19zdGF0ZV90YWJsZS5nZnhfYm9vdF9sZXZlbCA9IG1h c2sgPwo+Pj4gPiA+IChmZnMobWFzaykgLSAxKSA6IDA7Cj4+PiA+ID4KPj4+ID4KPj4+Cj4+Cj4+ Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGFt ZC1nZnggbWFpbGluZyBsaXN0Cj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo+Pgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1h aWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK