From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH v4 1/6] drm: Add SCDC helpers Date: Thu, 23 Feb 2017 17:39:24 +0530 Message-ID: References: <1487769511-17359-1-git-send-email-shashank.sharma@intel.com> <1487769511-17359-2-git-send-email-shashank.sharma@intel.com> <20170222170937.GK31595@intel.com> <4d579bc7-3679-7416-6b03-d53ad93c25f6@intel.com> <20170223114142.GS31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170223114142.GS31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: jose.abreu@synopsys.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, daniel.vetter@intel.com, treding@nvidia.com List-Id: intel-gfx@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCgpPbiAyLzIzLzIwMTcgNToxMSBQTSwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFRodSwgRmViIDIzLCAyMDE3IGF0IDA4OjUxOjAzQU0gKzA1MzAsIFNoYXJt YSwgU2hhc2hhbmsgd3JvdGU6Cj4+IFRoYW5rcyBmb3IgdGhlIHJldmlldyBWaWxsZSwgbXkgY29t bWVudHMgaW5saW5lLgo+Pgo+PiBSZWdhcmRzCj4+Cj4+IFNoYXNoYW5rCj4+Cj4+Cj4+IE9uIDIv MjIvMjAxNyAxMDozOSBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+Pj4gT24gV2VkLCBGZWIg MjIsIDIwMTcgYXQgMDY6NDg6MjZQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1hIHdyb3RlOgo+Pj4+ IEZyb206IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Cj4+Pj4KPj4+PiBTQ0RD IGlzIGEgbWVjaGFuaXNtIGRlZmluZWQgaW4gdGhlIEhETUkgMi4wIHNwZWNpZmljYXRpb24gdGhh dCBhbGxvd3MKPj4+PiB0aGUgc291cmNlIGFuZCBzaW5rIGRldmljZXMgdG8gY29tbXVuaWNhdGUu Cj4+Pj4KPj4+PiBUaGlzIGNvbW1pdCBpbnRyb2R1Y2VzIGhlbHBlcnMgdG8gYWNjZXNzIHRoZSBT Q0RDIGFuZCBwcm92aWRlcyB0aGUKPj4+PiBzeW1ib2xpYyBuYW1lcyBmb3IgdGhlIHZhcmlvdXMg cmVnaXN0ZXJzIGRlZmluZWQgaW4gdGhlIHNwZWNpZmljYXRpb24uCj4+Pj4KPj4+PiBWMjogUmVi YXNlLgo+Pj4+IFYzOiBBZGRlZCBSLUIgZnJvbSBKb3NlLgo+Pj4+IFY0OiBSZWJhc2UKPj4+Pgo+ Pj4+IFNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Cj4+ Pj4gU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwu Y29tPgo+Pj4+IFJldmlld2VkLWJ5OiBKb3NlIEFicmV1IDxqb2FicmV1QHN5bm9wc3lzLmNvbT4K Pj4+PiAtLS0KPj4+PiAgICBEb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0IHwg IDEyICsrKysKPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgICAgICAgICAgICAgIHwg ICAzICstCj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2RybV9zY2RjX2hlbHBlci5jICAgICB8IDEx MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4gICAgaW5jbHVkZS9kcm0vZHJtX3Nj ZGNfaGVscGVyLmggICAgICAgICB8IDEzMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCj4+Pj4gICAgNCBmaWxlcyBjaGFuZ2VkLCAyNTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQo+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX3NjZGNf aGVscGVyLmMKPj4+PiAgICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0vZHJtX3NjZGNf aGVscGVyLmgKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21z LWhlbHBlcnMucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdAo+Pj4+ IGluZGV4IDAzMDQwYWEuLjc1OTI3NTYgMTAwNjQ0Cj4+Pj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9n cHUvZHJtLWttcy1oZWxwZXJzLnJzdAo+Pj4+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1r bXMtaGVscGVycy5yc3QKPj4+PiBAQCAtMjE3LDYgKzIxNywxOCBAQCBFRElEIEhlbHBlciBGdW5j dGlvbnMgUmVmZXJlbmNlCj4+Pj4gICAgLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9k cm1fZWRpZC5jCj4+Pj4gICAgICAgOmV4cG9ydDoKPj4+PiAgICAKPj4+PiArU0NEQyBIZWxwZXIg RnVuY3Rpb25zIFJlZmVyZW5jZQo+Pj4+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj4+Pj4gKwo+Pj4+ICsuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9zY2RjX2hl bHBlci5jCj4+Pj4gKyAgIDpkb2M6IHNjZGMgaGVscGVycwo+Pj4+ICsKPj4+PiArLi4ga2VybmVs LWRvYzo6IGluY2x1ZGUvZHJtL2RybV9zY2RjX2hlbHBlci5oCj4+Pj4gKyAgIDppbnRlcm5hbDoK Pj4+PiArCj4+Pj4gKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX3NjZGNfaGVs cGVyLmMKPj4+PiArICAgOmV4cG9ydDoKPj4+PiArCj4+Pj4gICAgUmVjdGFuZ2xlIFV0aWxpdGll cyBSZWZlcmVuY2UKPj4+PiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+Pj4+ICAg IAo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dw dS9kcm0vTWFrZWZpbGUKPj4+PiBpbmRleCA5MmRlMzk5Li5hZDkxY2Q5IDEwMDY0NAo+Pj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9N YWtlZmlsZQo+Pj4+IEBAIC0zMSw3ICszMSw4IEBAIGRybS0kKENPTkZJR19ERUJVR19GUykgKz0g ZHJtX2RlYnVnZnMubyBkcm1fZGVidWdmc19jcmMubwo+Pj4+ICAgIGRybV9rbXNfaGVscGVyLXkg Oj0gZHJtX2NydGNfaGVscGVyLm8gZHJtX2RwX2hlbHBlci5vIGRybV9wcm9iZV9oZWxwZXIubyBc Cj4+Pj4gICAgCQlkcm1fcGxhbmVfaGVscGVyLm8gZHJtX2RwX21zdF90b3BvbG9neS5vIGRybV9h dG9taWNfaGVscGVyLm8gXAo+Pj4+ICAgIAkJZHJtX2ttc19oZWxwZXJfY29tbW9uLm8gZHJtX2Rw X2R1YWxfbW9kZV9oZWxwZXIubyBcCj4+Pj4gLQkJZHJtX3NpbXBsZV9rbXNfaGVscGVyLm8gZHJt X21vZGVzZXRfaGVscGVyLm8KPj4+PiArCQlkcm1fc2ltcGxlX2ttc19oZWxwZXIubyBkcm1fbW9k ZXNldF9oZWxwZXIubyBcCj4+Pj4gKwkJZHJtX3NjZGNfaGVscGVyLm8KPj4+PiAgICAKPj4+PiAg ICBkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1fTE9BRF9FRElEX0ZJUk1XQVJFKSArPSBkcm1f ZWRpZF9sb2FkLm8KPj4+PiAgICBkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1fRkJERVZfRU1V TEFUSU9OKSArPSBkcm1fZmJfaGVscGVyLm8KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9zY2RjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zY2RjX2hlbHBlci5j Cj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4+PiBpbmRleCAwMDAwMDAwLi5mZTBlMTIxCj4+ Pj4gLS0tIC9kZXYvbnVsbAo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2NkY19oZWxw ZXIuYwo+Pj4+IEBAIC0wLDAgKzEsMTExIEBACj4+Pj4gKy8qCj4+Pj4gKyAqIENvcHlyaWdodCAo YykgMjAxNSBOVklESUEgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4+Pj4gKyAq Cj4+Pj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4+Pj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4+Pj4g KyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu ZyB3aXRob3V0IGxpbWl0YXRpb24KPj4+PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YiBsaWNlbnNlLAo+Pj4+ICsgKiBh bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUKPj4+PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPj4+PiArICoKPj4+PiArICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGlu ZyB0aGUKPj4+PiArICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKPj4+PiArICogb2YgdGhlIFNvZnR3YXJlLgo+ Pj4+ICsgKgo+Pj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+Pj4+ICsgKiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKPj4+PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZS SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMCj4+Pj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4+ Pj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLCBBUklTSU5HCj4+Pj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPj4+PiArICogREVBTElO R1MgSU4gVEhFIFNPRlRXQVJFLgo+Pj4+ICsgKi8KPj4+PiArCj4+Pj4gKyNpbmNsdWRlIDxsaW51 eC9zbGFiLmg+Cj4+Pj4gKwo+Pj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9zY2RjX2hlbHBlci5oPgo+ Pj4+ICsKPj4+PiArLyoqCj4+Pj4gKyAqIERPQzogc2NkYyBoZWxwZXJzCj4+Pj4gKyAqCj4+Pj4g KyAqIFN0YXR1cyBhbmQgQ29udHJvbCBEYXRhIENoYW5uZWwgKFNDREMpIGlzIGEgbWVjaGFuaXNt IGludHJvZHVjZWQgYnkgdGhlCj4+Pj4gKyAqIEhETUkgMi4wIHNwZWNpZmljYXRpb24uIEl0IGlz IGEgcG9pbnQtdG8tcG9pbnQgcHJvdG9jb2wgdGhhdCBhbGxvd3MgdGhlCj4+Pj4gKyAqIEhETUkg c291cmNlIGFuZCBIRE1JIHNpbmsgdG8gZXhjaGFuZ2UgZGF0YS4gVGhlIHNhbWUgSTJDIGludGVy ZmFjZSB0aGF0Cj4+Pj4gKyAqIGlzIHVzZWQgdG8gYWNjZXNzIEVESUQgc2VydmVzIGFzIHRoZSB0 cmFuc3BvcnQgbWVjaGFuaXNtIGZvciBTQ0RDLgo+Pj4+ICsgKi8KPj4+PiArCj4+Pj4gKyNkZWZp bmUgU0NEQ19JMkNfU0xBVkVfQUREUkVTUyAweDU0Cj4+Pj4gKwo+Pj4+ICsvKioKPj4+PiArICog ZHJtX3NjZGNfcmVhZCAtIHJlYWQgYSBibG9jayBvZiBkYXRhIGZyb20gU0NEQwo+Pj4+ICsgKiBA YWRhcHRlcjogSTJDIGNvbnRyb2xsZXIKPj4+PiArICogQG9mZnNldDogc3RhcnQgb2Zmc2V0IG9m IGJsb2NrIHRvIHJlYWQKPj4+PiArICogQGJ1ZmZlcjogcmV0dXJuIGxvY2F0aW9uIGZvciB0aGUg YmxvY2sgdG8gcmVhZAo+Pj4+ICsgKiBAc2l6ZTogc2l6ZSBvZiB0aGUgYmxvY2sgdG8gcmVhZAo+ Pj4+ICsgKgo+Pj4+ICsgKiBSZWFkcyBhIGJsb2NrIG9mIGRhdGEgZnJvbSBTQ0RDLCBzdGFydGlu ZyBhdCBhIGdpdmVuIG9mZnNldC4KPj4+PiArICoKPj4+PiArICogUmV0dXJuczoKPj4+PiArICog VGhlIG51bWJlciBvZiBieXRlcyByZWFkIGZyb20gU0NEQyBvciBhIG5lZ2F0aXZlIGVycm9yIGNv ZGUgb24gZmFpbHVyZS4KPj4+PiArICovCj4+Pj4gK3NzaXplX3QgZHJtX3NjZGNfcmVhZChzdHJ1 Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4IG9mZnNldCwgdm9pZCAqYnVmZmVyLAo+Pj4+ICsJ CSAgICAgIHNpemVfdCBzaXplKQo+Pj4+ICt7Cj4+Pj4gKwlzdHJ1Y3QgaTJjX21zZyBtc2dzWzJd ID0gewo+Pj4+ICsJCXsKPj4+PiArCQkJLmFkZHIgPSBTQ0RDX0kyQ19TTEFWRV9BRERSRVNTLAo+ Pj4+ICsJCQkuZmxhZ3MgPSAwLAo+Pj4+ICsJCQkubGVuID0gMSwKPj4+PiArCQkJLmJ1ZiA9ICZv ZmZzZXQsCj4+Pj4gKwkJfSwgewo+Pj4+ICsJCQkuYWRkciA9IFNDRENfSTJDX1NMQVZFX0FERFJF U1MsCj4+Pj4gKwkJCS5mbGFncyA9IEkyQ19NX1JELAo+Pj4+ICsJCQkubGVuID0gc2l6ZSwKPj4+ PiArCQkJLmJ1ZiA9IGJ1ZmZlciwKPj4+PiArCQl9Cj4+Pj4gKwl9Owo+Pj4+ICsKPj4+PiArCXJl dHVybiBpMmNfdHJhbnNmZXIoYWRhcHRlciwgbXNncywgQVJSQVlfU0laRShtc2dzKSk7Cj4+PiBU aGF0IHN0aWxsIGRpc2FncmVlcyB3aXRoIHRoZSBkb2N1bWVudGF0aW9uLiBJIHdvdWxkIHN1Z2dl c3QgZG9pbmcgd2hhdAo+Pj4gdGhlIERQIGR1YWwgbW9kZSBoZWxwZXIgZG9lcy4KPj4gU3VyZSwg SSBndWVzcyB0aGlzIGlzIGFib3V0IGhvdyB3ZSBhcmUgaGFuZGxpbmcgdGhlIHJldHVybiB2YWx1 ZXMgZnJvbQo+PiBJMkMgbGF5ZXIsIEkgd2lsbCBjaGFuZ2UgaXQKPj4gdGhlIHdheSBpdHMgaGFu ZGxlZCBpbiBkcm1fZHBfZHVhbF9tb2RlIGZ1bmN0aW9ucwo+Pj4+ICt9Cj4+Pj4gK0VYUE9SVF9T WU1CT0woZHJtX3NjZGNfcmVhZCk7Cj4+Pj4gKwo+Pj4+ICsvKioKPj4+PiArICogZHJtX3NjZGNf d3JpdGUgLSB3cml0ZSBhIGJsb2NrIG9mIGRhdGEgdG8gU0NEQwo+Pj4+ICsgKiBAYWRhcHRlcjog STJDIGNvbnRyb2xsZXIKPj4+PiArICogQG9mZnNldDogc3RhcnQgb2Zmc2V0IG9mIGJsb2NrIHRv IHdyaXRlCj4+Pj4gKyAqIEBidWZmZXI6IGJsb2NrIG9mIGRhdGEgdG8gd3JpdGUKPj4+PiArICog QHNpemU6IHNpemUgb2YgdGhlIGJsb2NrIHRvIHdyaXRlCj4+Pj4gKyAqCj4+Pj4gKyAqIFdyaXRl cyBhIGJsb2NrIG9mIGRhdGEgdG8gU0NEQywgc3RhcnRpbmcgYXQgYSBnaXZlbiBvZmZzZXQuCj4+ Pj4gKyAqCj4+Pj4gKyAqIFJldHVybnM6Cj4+Pj4gKyAqIFRoZSBudW1iZXIgb2YgYnl0ZXMgd3Jp dHRlbiB0byBTQ0RDIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+Pj4+ICsg Ki8KPj4+PiArc3NpemVfdCBkcm1fc2NkY193cml0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0 ZXIsIHU4IG9mZnNldCwKPj4+PiArCQkgICAgICAgY29uc3Qgdm9pZCAqYnVmZmVyLCBzaXplX3Qg c2l6ZSkKPj4+PiArewo+Pj4+ICsJc3RydWN0IGkyY19tc2cgbXNnID0gewo+Pj4+ICsJCS5hZGRy ID0gU0NEQ19JMkNfU0xBVkVfQUREUkVTUywKPj4+PiArCQkuZmxhZ3MgPSAwLAo+Pj4+ICsJCS5s ZW4gPSAxICsgc2l6ZSwKPj4+PiArCQkuYnVmID0gTlVMTCwKPj4+PiArCX07Cj4+Pj4gKwl2b2lk ICpkYXRhOwo+Pj4+ICsJaW50IGVycjsKPj4+PiArCj4+Pj4gKwlkYXRhID0ga21hbGxvYygxICsg c2l6ZSwgR0ZQX1RFTVBPUkFSWSk7Cj4+Pj4gKwlpZiAoIWRhdGEpCj4+Pj4gKwkJcmV0dXJuIC1F Tk9NRU07Cj4+Pj4gKwo+Pj4+ICsJbXNnLmJ1ZiA9IGRhdGE7Cj4+Pj4gKwo+Pj4+ICsJbWVtY3B5 KGRhdGEsICZvZmZzZXQsIHNpemVvZihvZmZzZXQpKTsKPj4+PiArCW1lbWNweShkYXRhICsgMSwg YnVmZmVyLCBzaXplKTsKPj4+PiArCj4+Pj4gKwllcnIgPSBpMmNfdHJhbnNmZXIoYWRhcHRlciwg Jm1zZywgMSk7Cj4+Pj4gKwo+Pj4+ICsJa2ZyZWUoZGF0YSk7Cj4+Pj4gKwo+Pj4+ICsJcmV0dXJu IGVycjsKPj4+PiArfQo+Pj4+ICtFWFBPUlRfU1lNQk9MKGRybV9zY2RjX3dyaXRlKTsKPj4+PiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3NjZGNfaGVscGVyLmggYi9pbmNsdWRlL2RybS9k cm1fc2NkY19oZWxwZXIuaAo+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+Pj4gaW5kZXggMDAw MDAwMC4uOTNiMDdiYwo+Pj4+IC0tLSAvZGV2L251bGwKPj4+PiArKysgYi9pbmNsdWRlL2RybS9k cm1fc2NkY19oZWxwZXIuaAo+Pj4+IEBAIC0wLDAgKzEsMTMyIEBACj4+Pj4gKy8qCj4+Pj4gKyAq IENvcHlyaWdodCAoYykgMjAxNSBOVklESUEgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2 ZWQuCj4+Pj4gKyAqCj4+Pj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4+Pj4gKyAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksCj4+Pj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPj4+PiArICogdGhlIHJpZ2h0cyB0byB1 c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YiBsaWNlbnNl LAo+Pj4+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPj4+PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPj4+PiArICoKPj4+ PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2UgKGluY2x1ZGluZyB0aGUKPj4+PiArICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1 ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKPj4+PiArICogb2YgdGhl IFNvZnR3YXJlLgo+Pj4+ICsgKgo+Pj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+Pj4+ICsgKiBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKPj4+PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMCj4+Pj4gKyAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSCj4+Pj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4+Pj4gKyAqIEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPj4+ PiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+Pj4+ICsgKi8KPj4+PiArCj4+Pj4gKyNp Zm5kZWYgRFJNX1NDRENfSEVMUEVSX0gKPj4+PiArI2RlZmluZSBEUk1fU0NEQ19IRUxQRVJfSAo+ Pj4+ICsKPj4+PiArI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgo+Pj4+ICsjaW5jbHVkZSA8bGludXgv dHlwZXMuaD4KPj4+PiArCj4+Pj4gKyNkZWZpbmUgU0NEQ19TSU5LX1ZFUlNJT04gMHgwMQo+Pj4+ ICsKPj4+PiArI2RlZmluZSBTQ0RDX1NPVVJDRV9WRVJTSU9OIDB4MDIKPj4+PiArCj4+Pj4gKyNk ZWZpbmUgU0NEQ19VUERBVEVfMCAweDEwCj4+Pj4gKyNkZWZpbmUgIFNDRENfUkVBRF9SRVFVRVNU X1RFU1QgKDEgPDwgMikKPj4+PiArI2RlZmluZSAgU0NEQ19DRURfVVBEQVRFICgxIDw8IDEpCj4+ Pj4gKyNkZWZpbmUgIFNDRENfU1RBVFVTX1VQREFURSAoMSA8PCAwKQo+Pj4+ICsKPj4+PiArI2Rl ZmluZSBTQ0RDX1VQREFURV8xIDB4MTEKPj4+PiArCj4+Pj4gKyNkZWZpbmUgU0NEQ19UTURTX0NP TkZJRyAweDIwCj4+Pj4gKyNkZWZpbmUgIFNDRENfVE1EU19CSVRfQ0xPQ0tfUkFUSU9fQllfNDAg KDEgPDwgMSkKPj4+PiArI2RlZmluZSAgU0NEQ19UTURTX0JJVF9DTE9DS19SQVRJT19CWV8xMCAo MCA8PCAxKQo+Pj4+ICsjZGVmaW5lICBTQ0RDX1NDUkFNQkxJTkdfRU5BQkxFICgxIDw8IDApCj4+ Pj4gKwo+Pj4+ICsjZGVmaW5lIFNDRENfU0NSQU1CTEVSX1NUQVRVUyAweDIxCj4+Pj4gKyNkZWZp bmUgIFNDRENfU0NSQU1CTElOR19TVEFUVVMgKDEgPDwgMCkKPj4+PiArCj4+Pj4gKyNkZWZpbmUg U0NEQ19DT05GSUdfMCAweDMwCj4+Pj4gKyNkZWZpbmUgIFNDRENfUkVBRF9SRVFVRVNUX0VOQUJM RSAoMSA8PCAwKQo+Pj4+ICsKPj4+PiArI2RlZmluZSBTQ0RDX1NUQVRVU19GTEFHU18wIDB4NDAK Pj4+PiArI2RlZmluZSAgU0NEQ19DSDJfTE9DSyAoMSA8IDMpCj4+Pj4gKyNkZWZpbmUgIFNDRENf Q0gxX0xPQ0sgKDEgPCAyKQo+Pj4+ICsjZGVmaW5lICBTQ0RDX0NIMF9MT0NLICgxIDwgMSkKPj4+ PiArI2RlZmluZSAgU0NEQ19DSF9MT0NLX01BU0sgKFNDRENfQ0gyX0xPQ0sgfCBTQ0RDX0NIMV9M T0NLIHwgU0NEQ19DSDBfTE9DSykKPj4+PiArI2RlZmluZSAgU0NEQ19DTE9DS19ERVRFQ1QgKDEg PDwgMCkKPj4+PiArCj4+Pj4gKyNkZWZpbmUgU0NEQ19TVEFUVVNfRkxBR1NfMSAweDQxCj4+Pj4g Kwo+Pj4+ICsjZGVmaW5lIFNDRENfRVJSX0RFVF8wX0wgMHg1MAo+Pj4+ICsjZGVmaW5lIFNDRENf RVJSX0RFVF8wX0ggMHg1MQo+Pj4+ICsjZGVmaW5lIFNDRENfRVJSX0RFVF8xX0wgMHg1Mgo+Pj4+ ICsjZGVmaW5lIFNDRENfRVJSX0RFVF8xX0ggMHg1Mwo+Pj4+ICsjZGVmaW5lIFNDRENfRVJSX0RF VF8yX0wgMHg1NAo+Pj4+ICsjZGVmaW5lIFNDRENfRVJSX0RFVF8yX0ggMHg1NQo+Pj4+ICsjZGVm aW5lICBTQ0RDX0NIQU5ORUxfVkFMSUQgKDEgPDwgNykKPj4+PiArCj4+Pj4gKyNkZWZpbmUgU0NE Q19FUlJfREVUX0NIRUNLU1VNIDB4NTYKPj4+PiArCj4+Pj4gKyNkZWZpbmUgU0NEQ19URVNUX0NP TkZJR18wIDB4YzAKPj4+PiArI2RlZmluZSAgU0NEQ19URVNUX1JFQURfUkVRVUVTVCAoMSA8PCA3 KQo+Pj4+ICsjZGVmaW5lICBTQ0RDX1RFU1RfUkVBRF9SRVFVRVNUX0RFTEFZKHgpICgoeCkgJiAw eDdmKQo+Pj4+ICsKPj4+PiArI2RlZmluZSBTQ0RDX01BTlVGQUNUVVJFUl9JRUVFX09VSSAweGQw Cj4+Pj4gKyNkZWZpbmUgU0NEQ19NQU5VRkFDVFVSRVJfSUVFRV9PVUlfU0laRSAzCj4+Pj4gKwo+ Pj4+ICsjZGVmaW5lIFNDRENfREVWSUNFX0lEIDB4ZDMKPj4+PiArI2RlZmluZSBTQ0RDX0RFVklD RV9JRF9TSVpFIDgKPj4+PiArCj4+Pj4gKyNkZWZpbmUgU0NEQ19ERVZJQ0VfSEFSRFdBUkVfUkVW SVNJT04gMHhkYgo+Pj4+ICsjZGVmaW5lICBTQ0RDX0RFVklDRV9IQVJEV0FSRV9SRVZJU0lPTl9N QUpPUih4KSAoKCh4KSA+PiA0KSAmIDB4ZikKPj4+PiArI2RlZmluZSAgU0NEQ19ERVZJQ0VfSEFS RFdBUkVfUkVWSVNJT05fTUlOT1IoeCkgKCgoeCkgPj4gMCkgJiAweGYpCj4+PiBXZSBkb24ndCB1 c3VhbGx5IGRlZmluZSBtYWNyb3MgbGlrZSB0aGlzIHRvIGV4dHJhY3QgaW5mb3JtYXRpb24gZnJv bSB0aGUKPj4+IHJlZ2lzdGVyLiBJdCdzIGVhc3kgdG8gY29uZnVzZSB0aGVtIHdpdGggdGhlIG5v cm1hbCBtYWNyb3MgZm9yIHNldHRpbmcKPj4+IGJpdHMuCj4+IEhvdyBhYm91dCBpZiBJIGFkZCBh bm90aGVyIHN1YiBtYWNybyBjYWxsZWQgX01BSk9SLCBhbmQgdXNlIGl0IGxpa2UgdGhpczoKPj4K Pj4gI2RlZmluZSBfTUFKT1IoeCkgKHggJiAweGYpCj4+ICNkZWZpbmUgIFNDRENfREVWSUNFX0hB UkRXQVJFX1JFVklTSU9OX01BSk9SKHgpIChfTUFKT1IoKHgpID4+IDQpKQo+Pgo+PiBPciB3aWxs IHlvdSBwcmVmZXIgbm8gbWFjcm8gZm9yIHRoaXMgam9iIGF0IGFsbCA/Cj4gSSB0aGluayB0aGUg dXN1YWwgcGF0dGVybiBpcyBhIFNISUZUICsgTUFTSyBtYWNyb3MgZm9yIGV4dHJhY3RpbmcKPiB0 aGluZ3MgZnJvbSByZWdpc3RlciB2YWx1ZXMuIEJ1dCB0aGF0IGlzIGEgbGl0dGxlIGVycm9yIHBy b25lIGFuZCByYXRoZXIKPiB2ZXJib3NlIHRvIHVzZSwgc28gSSBkbyBhY3R1YWxseSBsaWtlIHRo ZSBpZGVhIG9mIGhhdmluZyBtYWNyb3MgZm9yCj4gZXh0cmFjdGluZyBiaXRzIGZyb20gcmVnaXN0 ZXJzLgo+Cj4gSG1tLiBBZnRlciBsb29raW5nIGFyb3VuZCBhIGJpdCwgSSBkbyBzZWUgdGhhdCBE UF9HRVRfU0lOS19DT1VOVCgpIGlzIGFuCj4gZXh0cmFjdGlvbiBtYWNybyBzaW1pbGFyIHRvIHdo YXQgeW91IGhhdmUgaGVyZS4gSWYgd2UgZm9sbG93IHRoYXQgZXhhbXBsZQo+IHRoZW4ganVzdCBh ZGRpbmcgX0dFVF8gdG8gdGhlIG5hbWUgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIHRvIGRpc3Rpbmd1 aXNoCj4gdGhpcyBmcm9tIGFueSBtYWNybyB0byBzZXQgdGhlIGJpdHMuCkNvb2wsIEkgd2lsbCBj aGFuZ2UgdGhlIG1hY3JvIG5hbWVzIGFzIHN1Z2dlc3RlZC4KVGhhbmtzCgotIFNoYXNoYW5rCj4+ IC0gU2hhc2hhbmsKPj4+PiArCj4+Pj4gKyNkZWZpbmUgU0NEQ19ERVZJQ0VfU09GVFdBUkVfTUFK T1JfUkVWSVNJT04gMHhkYwo+Pj4+ICsjZGVmaW5lIFNDRENfREVWSUNFX1NPRlRXQVJFX01JTk9S X1JFVklTSU9OIDB4ZGQKPj4+PiArCj4+Pj4gKyNkZWZpbmUgU0NEQ19NQU5VRkFDVFVSRVJfU1BF Q0lGSUMgMHhkZQo+Pj4+ICsjZGVmaW5lIFNDRENfTUFOVUZBQ1RVUkVSX1NQRUNJRklDX1NJWkUg MzQKPj4+PiArCj4+Pj4gK3NzaXplX3QgZHJtX3NjZGNfcmVhZChzdHJ1Y3QgaTJjX2FkYXB0ZXIg KmFkYXB0ZXIsIHU4IG9mZnNldCwgdm9pZCAqYnVmZmVyLAo+Pj4+ICsJCSAgICAgIHNpemVfdCBz aXplKTsKPj4+PiArc3NpemVfdCBkcm1fc2NkY193cml0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFk YXB0ZXIsIHU4IG9mZnNldCwKPj4+PiArCQkgICAgICAgY29uc3Qgdm9pZCAqYnVmZmVyLCBzaXpl X3Qgc2l6ZSk7Cj4+Pj4gKwo+Pj4+ICsvKioKPj4+PiArICogZHJtX3NjZGNfcmVhZGIgLSByZWFk IGEgc2luZ2xlIGJ5dGUgZnJvbSBTQ0RDCj4+Pj4gKyAqIEBhZGFwdGVyOiBJMkMgYWRhcHRlcgo+ Pj4+ICsgKiBAb2Zmc2V0OiBvZmZzZXQgb2YgcmVnaXN0ZXIgdG8gcmVhZAo+Pj4+ICsgKiBAdmFs dWU6IHJldHVybiBsb2NhdGlvbiBmb3IgdGhlIHJlZ2lzdGVyIHZhbHVlCj4+Pj4gKyAqCj4+Pj4g KyAqIFJlYWRzIGEgc2luZ2xlIGJ5dGUgZnJvbSBTQ0RDLiBUaGlzIGlzIGEgY29udmVuaWVuY2Ug d3JhcHBlciBhcm91bmQgdGhlCj4+Pj4gKyAqIGRybV9zY2RjX3JlYWQoKSBmdW5jdGlvbi4KPj4+ PiArICoKPj4+PiArICogUmV0dXJuczoKPj4+PiArICogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRp dmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+Pj4+ICsgKi8KPj4+PiArc3RhdGljIGlubGluZSBp bnQgZHJtX3NjZGNfcmVhZGIoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLCB1OCBvZmZzZXQs Cj4+Pj4gKwkJCQkgdTggKnZhbHVlKQo+Pj4+ICt7Cj4+Pj4gKwlyZXR1cm4gZHJtX3NjZGNfcmVh ZChhZGFwdGVyLCBvZmZzZXQsIHZhbHVlLCBzaXplb2YoKnZhbHVlKSk7Cj4+Pj4gK30KPj4+PiAr Cj4+Pj4gKy8qKgo+Pj4+ICsgKiBkcm1fc2NkY193cml0ZWIgLSB3cml0ZSBhIHNpbmdsZSBieXRl IHRvIFNDREMKPj4+PiArICogQGFkYXB0ZXI6IEkyQyBhZGFwdGVyCj4+Pj4gKyAqIEBvZmZzZXQ6 IG9mZnNldCBvZiByZWdpc3RlciB0byByZWFkCj4+Pj4gKyAqIEB2YWx1ZTogcmV0dXJuIGxvY2F0 aW9uIGZvciB0aGUgcmVnaXN0ZXIgdmFsdWUKPj4+PiArICoKPj4+PiArICogV3JpdGVzIGEgc2lu Z2xlIGJ5dGUgdG8gU0NEQy4gVGhpcyBpcyBhIGNvbnZlbmllbmNlIHdyYXBwZXIgYXJvdW5kIHRo ZQo+Pj4+ICsgKiBkcm1fc2NkY193cml0ZSgpIGZ1bmN0aW9uLgo+Pj4+ICsgKgo+Pj4+ICsgKiBS ZXR1cm5zOgo+Pj4+ICsgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9u IGZhaWx1cmUuCj4+Pj4gKyAqLwo+Pj4+ICtzdGF0aWMgaW5saW5lIGludCBkcm1fc2NkY193cml0 ZWIoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLCB1OCBvZmZzZXQsCj4+Pj4gKwkJCQkgIHU4 IHZhbHVlKQo+Pj4+ICt7Cj4+Pj4gKwlyZXR1cm4gZHJtX3NjZGNfd3JpdGUoYWRhcHRlciwgb2Zm c2V0LCAmdmFsdWUsIHNpemVvZih2YWx1ZSkpOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICsjZW5kaWYK Pj4+PiAtLSAKPj4+PiAxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==