From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jose Abreu Subject: Re: [PATCH v2 1/6] drm: Add SCDC helpers Date: Wed, 8 Feb 2017 11:27:51 +0000 Message-ID: <11f7038c-7c60-4893-97af-dbd35afc14ab@synopsys.com> References: <1486389566-28613-1-git-send-email-shashank.sharma@intel.com> <1486389566-28613-2-git-send-email-shashank.sharma@intel.com> <5f5041ce-206e-fe62-6dd3-68f9f41c0f2b@synopsys.com> <24a57255-ac2d-3be0-215a-2e6214961bbd@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <24a57255-ac2d-3be0-215a-2e6214961bbd@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" , Jose Abreu , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, ville.syrjala@linux.intel.com, treding@nvidia.com Cc: daniel.vetter@intel.com List-Id: dri-devel@lists.freedesktop.org SGkgU2hhc2hhbmssCgoKCk9uIDA3LTAyLTIwMTcgMTY6MDksIFNoYXJtYSwgU2hhc2hhbmsgd3Jv dGU6Cj4gVGhhbmtzIGZvciB0aGUgcmV2aWV3IEpvc2UsIG15IGNvbW1lbnRzIGlubGluZS4KPgo+ Cj4gUmVnYXJkcwo+Cj4gU2hhc2hhbmsKPgo+Cj4gT24gMi83LzIwMTcgNDoyNCBQTSwgSm9zZSBB YnJldSB3cm90ZToKPj4gSGkgU2hhc2hhbmssCj4+Cj4+Cj4+IFNvcnJ5IGZvciB0aGUgbGF0ZSBy ZXZpZXcuCj4+Cj4+Cj4+IE9uIDA2LTAyLTIwMTcgMTM6NTksIFNoYXNoYW5rIFNoYXJtYSB3cm90 ZToKPj4+IEZyb206IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Cj4+Pgo+Pj4g U0NEQyBpcyBhIG1lY2hhbmlzbSBkZWZpbmVkIGluIHRoZSBIRE1JIDIuMCBzcGVjaWZpY2F0aW9u Cj4+PiB0aGF0IGFsbG93cwo+Pj4gdGhlIHNvdXJjZSBhbmQgc2luayBkZXZpY2VzIHRvIGNvbW11 bmljYXRlLgo+Pj4KPj4+IFRoaXMgY29tbWl0IGludHJvZHVjZXMgaGVscGVycyB0byBhY2Nlc3Mg dGhlIFNDREMgYW5kCj4+PiBwcm92aWRlcyB0aGUKPj4+IHN5bWJvbGljIG5hbWVzIGZvciB0aGUg dmFyaW91cyByZWdpc3RlcnMgZGVmaW5lZCBpbiB0aGUKPj4+IHNwZWNpZmljYXRpb24uCj4+Pgo+ Pj4gU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPj4+ IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNv bT4KPj4+IC0tLQo+Pj4gICBEb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0IHwg IDEyICsrKysKPj4+ICAgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAgICAgICB8ICAg MyArLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX3NjZGNfaGVscGVyLmMgICAgIHwgMTExCj4+ PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+PiAgIGluY2x1ZGUvZHJtL2RybV9zY2Rj X2hlbHBlci5oICAgICAgICAgfCAxMzIKPj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPj4+ICAgNCBmaWxlcyBjaGFuZ2VkLCAyNTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQo+Pj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2RybV9zY2RjX2hl bHBlci5jCj4+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2RybS9kcm1fc2NkY19oZWxw ZXIuaAo+Pj4KPj4+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBl cnMucnN0Cj4+PiBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QKPj4+IGlu ZGV4IDAzMDQwYWEuLjc1OTI3NTYgMTAwNjQ0Cj4+PiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9k cm0ta21zLWhlbHBlcnMucnN0Cj4+PiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhl bHBlcnMucnN0Cj4+PiBAQCAtMjE3LDYgKzIxNywxOCBAQCBFRElEIEhlbHBlciBGdW5jdGlvbnMg UmVmZXJlbmNlCj4+PiAgIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQu Ywo+Pj4gICAgICA6ZXhwb3J0Ogo+Pj4gICArU0NEQyBIZWxwZXIgRnVuY3Rpb25zIFJlZmVyZW5j ZQo+Pj4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPj4+ICsKPj4+ICsuLiBrZXJu ZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9zY2RjX2hlbHBlci5jCj4+PiArICAgOmRvYzog c2NkYyBoZWxwZXJzCj4+PiArCj4+PiArLi4ga2VybmVsLWRvYzo6IGluY2x1ZGUvZHJtL2RybV9z Y2RjX2hlbHBlci5oCj4+PiArICAgOmludGVybmFsOgo+Pj4gKwo+Pj4gKy4uIGtlcm5lbC1kb2M6 OiBkcml2ZXJzL2dwdS9kcm0vZHJtX3NjZGNfaGVscGVyLmMKPj4+ICsgICA6ZXhwb3J0Ogo+Pj4g Kwo+Pj4gICBSZWN0YW5nbGUgVXRpbGl0aWVzIFJlZmVyZW5jZQo+Pj4gICA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQo+Pj4gICBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL01ha2Vm aWxlCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+Pj4gaW5kZXggOTJkZTM5OS4uYWQ5 MWNkOSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCj4+PiBAQCAtMzEsNyArMzEsOCBAQCBkcm0tJChDT05G SUdfREVCVUdfRlMpICs9IGRybV9kZWJ1Z2ZzLm8KPj4+IGRybV9kZWJ1Z2ZzX2NyYy5vCj4+PiAg IGRybV9rbXNfaGVscGVyLXkgOj0gZHJtX2NydGNfaGVscGVyLm8gZHJtX2RwX2hlbHBlci5vCj4+ PiBkcm1fcHJvYmVfaGVscGVyLm8gXAo+Pj4gICAgICAgICAgIGRybV9wbGFuZV9oZWxwZXIubyBk cm1fZHBfbXN0X3RvcG9sb2d5Lm8KPj4+IGRybV9hdG9taWNfaGVscGVyLm8gXAo+Pj4gICAgICAg ICAgIGRybV9rbXNfaGVscGVyX2NvbW1vbi5vIGRybV9kcF9kdWFsX21vZGVfaGVscGVyLm8gXAo+ Pj4gLSAgICAgICAgZHJtX3NpbXBsZV9rbXNfaGVscGVyLm8gZHJtX21vZGVzZXRfaGVscGVyLm8K Pj4+ICsgICAgICAgIGRybV9zaW1wbGVfa21zX2hlbHBlci5vIGRybV9tb2Rlc2V0X2hlbHBlci5v IFwKPj4+ICsgICAgICAgIGRybV9zY2RjX2hlbHBlci5vCj4+PiAgICAgZHJtX2ttc19oZWxwZXIt JChDT05GSUdfRFJNX0xPQURfRURJRF9GSVJNV0FSRSkgKz0KPj4+IGRybV9lZGlkX2xvYWQubwo+ Pj4gICBkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKSArPQo+Pj4g ZHJtX2ZiX2hlbHBlci5vCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zY2Rj X2hlbHBlci5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2NkY19oZWxwZXIuYwo+Pj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPj4+IGluZGV4IDAwMDAwMDAuLmZlMGUxMjEKPj4+IC0tLSAvZGV2 L251bGwKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2NkY19oZWxwZXIuYwo+Pj4gQEAg LTAsMCArMSwxMTEgQEAKPj4+ICsvKgo+Pj4gKyAqIENvcHlyaWdodCAoYykgMjAxNSBOVklESUEg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4+PiArICoKPj4+ICsgKiBQZXJtaXNz aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55Cj4+PiBwZXJzb24g b2J0YWluaW5nIGEKPj4+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg ZG9jdW1lbnRhdGlvbiBmaWxlcwo+Pj4gKHRoZSAiU29mdHdhcmUiKSwKPj4+ICsgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKPj4+IHdpdGhv dXQgbGltaXRhdGlvbgo+Pj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLAo+Pj4gZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsCj4+PiArICogYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zCj4+PiB0 byB3aG9tIHRoZQo+Pj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nCj4+PiBjb25kaXRpb25zOgo+Pj4gKyAqCj4+PiArICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UKPj4+IChpbmNs dWRpbmcgdGhlCj4+PiArICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFs bCBjb3BpZXMgb3IKPj4+IHN1YnN0YW50aWFsIHBvcnRpb25zCj4+PiArICogb2YgdGhlIFNvZnR3 YXJlLgo+Pj4gKyAqCj4+PiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZCj4+PiBLSU5ELCBFWFBSRVNTIE9SCj4+PiArICogSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgo+Pj4gTUVS Q0hBTlRBQklMSVRZLAo+Pj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT04tSU5GUklOR0VNRU5ULiBJTgo+Pj4gTk8gRVZFTlQgU0hBTEwKPj4+ICsgKiBUSEUgQVVU SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKPj4+IERB TUFHRVMgT1IgT1RIRVIKPj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G IENPTlRSQUNULCBUT1JUIE9SCj4+PiBPVEhFUldJU0UsIEFSSVNJTkcKPj4+ICsgKiBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUKPj4+IFVTRSBP UiBPVEhFUgo+Pj4gKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPj4+ICsgKi8KPj4+ICsK Pj4+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+Pj4gKwo+Pj4gKyNpbmNsdWRlIDxkcm0vZHJt X3NjZGNfaGVscGVyLmg+Cj4+PiArCj4+PiArLyoqCj4+PiArICogRE9DOiBzY2RjIGhlbHBlcnMK Pj4+ICsgKgo+Pj4gKyAqIFN0YXR1cyBhbmQgQ29udHJvbCBEYXRhIENoYW5uZWwgKFNDREMpIGlz IGEgbWVjaGFuaXNtCj4+PiBpbnRyb2R1Y2VkIGJ5IHRoZQo+Pj4gKyAqIEhETUkgMi4wIHNwZWNp ZmljYXRpb24uIEl0IGlzIGEgcG9pbnQtdG8tcG9pbnQgcHJvdG9jb2wKPj4+IHRoYXQgYWxsb3dz IHRoZQo+Pj4gKyAqIEhETUkgc291cmNlIGFuZCBIRE1JIHNpbmsgdG8gZXhjaGFuZ2UgZGF0YS4g VGhlIHNhbWUgSTJDCj4+PiBpbnRlcmZhY2UgdGhhdAo+Pj4gKyAqIGlzIHVzZWQgdG8gYWNjZXNz IEVESUQgc2VydmVzIGFzIHRoZSB0cmFuc3BvcnQgbWVjaGFuaXNtCj4+PiBmb3IgU0NEQy4KPj4+ ICsgKi8KPj4+ICsKPj4+ICsjZGVmaW5lIFNDRENfSTJDX1NMQVZFX0FERFJFU1MgMHg1NAo+Pj4g Kwo+Pj4gKy8qKgo+Pj4gKyAqIGRybV9zY2RjX3JlYWQgLSByZWFkIGEgYmxvY2sgb2YgZGF0YSBm cm9tIFNDREMKPj4+ICsgKiBAYWRhcHRlcjogSTJDIGNvbnRyb2xsZXIKPj4+ICsgKiBAb2Zmc2V0 OiBzdGFydCBvZmZzZXQgb2YgYmxvY2sgdG8gcmVhZAo+Pj4gKyAqIEBidWZmZXI6IHJldHVybiBs b2NhdGlvbiBmb3IgdGhlIGJsb2NrIHRvIHJlYWQKPj4+ICsgKiBAc2l6ZTogc2l6ZSBvZiB0aGUg YmxvY2sgdG8gcmVhZAo+Pj4gKyAqCj4+PiArICogUmVhZHMgYSBibG9jayBvZiBkYXRhIGZyb20g U0NEQywgc3RhcnRpbmcgYXQgYSBnaXZlbiBvZmZzZXQuCj4+PiArICoKPj4+ICsgKiBSZXR1cm5z Ogo+Pj4gKyAqIFRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBmcm9tIFNDREMgb3IgYSBuZWdhdGl2 ZSBlcnJvcgo+Pj4gY29kZSBvbiBmYWlsdXJlLgo+Pj4gKyAqLwo+Pj4gK3NzaXplX3QgZHJtX3Nj ZGNfcmVhZChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4Cj4+PiBvZmZzZXQsIHZvaWQg KmJ1ZmZlciwKPj4+ICsgICAgICAgICAgICAgIHNpemVfdCBzaXplKQo+Pj4gK3sKPj4+ICsgICAg c3RydWN0IGkyY19tc2cgbXNnc1syXSA9IHsKPj4+ICsgICAgICAgIHsKPj4+ICsgICAgICAgICAg ICAuYWRkciA9IFNDRENfSTJDX1NMQVZFX0FERFJFU1MsCj4+PiArICAgICAgICAgICAgLmZsYWdz ID0gMCwKPj4+ICsgICAgICAgICAgICAubGVuID0gMSwKPj4gLmxlbiA9IHNpemVvZihvZmZzZXQp ID8KPiBUZWNobmljYWxseSBjb3JyZWN0LCBidXQgd291bGRuJ3QgdGhhdCBtZWFuIHRoYXQgd2Ug YXJlCj4gZXhwZWN0aW5nIHRvIGhhdmUgSTJDIG9mZnNldHMgd2l0aCBsZW5ndGggbW9yZSB0aGFu IG9uZSBieXRlID8KCkkganVzdCBjb21tZW50ZWQgdGhpcyBiZWNhdXNlIGl0IHdvdWxkIGJlIG1v cmUgY29uc2lzdGVudCBidXQKaW5kZWVkIHlvdSBhcmUgY29ycmVjdC4gWW91IGNhbiBkaXNyZWdh cmQgbXkgY29tbWVudCA6KQoKQmVzdCByZWdhcmRzLApKb3NlIE1pZ3VlbCBBYnJldQoKPj4KPj4+ ICsgICAgICAgICAgICAuYnVmID0gJm9mZnNldCwKPj4+ICsgICAgICAgIH0sIHsKPj4+ICsgICAg ICAgICAgICAuYWRkciA9IFNDRENfSTJDX1NMQVZFX0FERFJFU1MsCj4+PiArICAgICAgICAgICAg LmZsYWdzID0gSTJDX01fUkQsCj4+PiArICAgICAgICAgICAgLmxlbiA9IHNpemUsCj4+PiArICAg ICAgICAgICAgLmJ1ZiA9IGJ1ZmZlciwKPj4+ICsgICAgICAgIH0KPj4+ICsgICAgfTsKPj4+ICsK Pj4+ICsgICAgcmV0dXJuIGkyY190cmFuc2ZlcihhZGFwdGVyLCBtc2dzLCBBUlJBWV9TSVpFKG1z Z3MpKTsKPj4+ICt9Cj4+PiArRVhQT1JUX1NZTUJPTChkcm1fc2NkY19yZWFkKTsKPj4+ICsKPj4+ ICsvKioKPj4+ICsgKiBkcm1fc2NkY193cml0ZSAtIHdyaXRlIGEgYmxvY2sgb2YgZGF0YSB0byBT Q0RDCj4+PiArICogQGFkYXB0ZXI6IEkyQyBjb250cm9sbGVyCj4+PiArICogQG9mZnNldDogc3Rh cnQgb2Zmc2V0IG9mIGJsb2NrIHRvIHdyaXRlCj4+PiArICogQGJ1ZmZlcjogYmxvY2sgb2YgZGF0 YSB0byB3cml0ZQo+Pj4gKyAqIEBzaXplOiBzaXplIG9mIHRoZSBibG9jayB0byB3cml0ZQo+Pj4g KyAqCj4+PiArICogV3JpdGVzIGEgYmxvY2sgb2YgZGF0YSB0byBTQ0RDLCBzdGFydGluZyBhdCBh IGdpdmVuIG9mZnNldC4KPj4+ICsgKgo+Pj4gKyAqIFJldHVybnM6Cj4+PiArICogVGhlIG51bWJl ciBvZiBieXRlcyB3cml0dGVuIHRvIFNDREMgb3IgYSBuZWdhdGl2ZSBlcnJvcgo+Pj4gY29kZSBv biBmYWlsdXJlLgo+Pj4gKyAqLwo+Pj4gK3NzaXplX3QgZHJtX3NjZGNfd3JpdGUoc3RydWN0IGky Y19hZGFwdGVyICphZGFwdGVyLCB1OCBvZmZzZXQsCj4+PiArICAgICAgICAgICAgICAgY29uc3Qg dm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkKPj4+ICt7Cj4+PiArICAgIHN0cnVjdCBpMmNfbXNn IG1zZyA9IHsKPj4+ICsgICAgICAgIC5hZGRyID0gU0NEQ19JMkNfU0xBVkVfQUREUkVTUywKPj4+ ICsgICAgICAgIC5mbGFncyA9IDAsCj4+PiArICAgICAgICAubGVuID0gMSArIHNpemUsCj4+IC5s ZW4gPSBzaXplb2Yob2Zmc2V0KSArIHNpemUgPwo+IFNhbWUgYXMgYWJvdmUuCj4+Cj4+PiArICAg ICAgICAuYnVmID0gTlVMTCwKPj4+ICsgICAgfTsKPj4+ICsgICAgdm9pZCAqZGF0YTsKPj4+ICsg ICAgaW50IGVycjsKPj4+ICsKPj4+ICsgICAgZGF0YSA9IGttYWxsb2MoMSArIHNpemUsIEdGUF9U RU1QT1JBUlkpOwo+PiBTYW1lIGFzIGFib3ZlLgo+IFNvIG9uIC4uLgo+Pj4gKyAgICBpZiAoIWRh dGEpCj4+PiArICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4+ICsKPj4+ICsgICAgbXNnLmJ1ZiA9 IGRhdGE7Cj4+PiArCj4+PiArICAgIG1lbWNweShkYXRhLCAmb2Zmc2V0LCBzaXplb2Yob2Zmc2V0 KSk7Cj4+PiArICAgIG1lbWNweShkYXRhICsgMSwgYnVmZmVyLCBzaXplKTsKPj4gU2FtZSBhcyBh Ym92ZS4KPj4KPiBTbyBvbiAuLgo+PiBCZXN0IHJlZ2FyZHMsCj4+IEpvc2UgTWlndWVsIEFicmV1 Cj4gLSBTaGFzaGFuawo+Pj4gKwo+Pj4gKyAgICBlcnIgPSBpMmNfdHJhbnNmZXIoYWRhcHRlciwg Jm1zZywgMSk7Cj4+PiArCj4+PiArICAgIGtmcmVlKGRhdGEpOwo+Pj4gKwo+Pj4gKyAgICByZXR1 cm4gZXJyOwo+Pj4gK30KPj4+ICtFWFBPUlRfU1lNQk9MKGRybV9zY2RjX3dyaXRlKTsKPj4+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fc2NkY19oZWxwZXIuaAo+Pj4gYi9pbmNsdWRlL2Ry bS9kcm1fc2NkY19oZWxwZXIuaAo+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4+IGluZGV4IDAw MDAwMDAuLjkzYjA3YmMKPj4+IC0tLSAvZGV2L251bGwKPj4+ICsrKyBiL2luY2x1ZGUvZHJtL2Ry bV9zY2RjX2hlbHBlci5oCj4+PiBAQCAtMCwwICsxLDEzMiBAQAo+Pj4gKy8qCj4+PiArICogQ29w eXJpZ2h0IChjKSAyMDE1IE5WSURJQSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K Pj4+ICsgKgo+Pj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh cmdlLCB0byBhbnkKPj4+IHBlcnNvbiBvYnRhaW5pbmcgYQo+Pj4gKyAqIGNvcHkgb2YgdGhpcyBz b2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzCj4+PiAodGhlICJTb2Z0 d2FyZSIpLAo+Pj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZwo+Pj4gd2l0aG91dCBsaW1pdGF0aW9uCj4+PiArICogdGhlIHJpZ2h0cyB0 byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCj4+PiBkaXN0cmlidXRlLCBzdWIg bGljZW5zZSwKPj4+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMKPj4+IHRvIHdob20gdGhlCj4+PiArICogU29mdHdhcmUgaXMgZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKPj4+IGNvbmRpdGlvbnM6 Cj4+PiArICoKPj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt aXNzaW9uIG5vdGljZQo+Pj4gKGluY2x1ZGluZyB0aGUKPj4+ICsgKiBuZXh0IHBhcmFncmFwaCkg c2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvcgo+Pj4gc3Vic3RhbnRpYWwgcG9ydGlv bnMKPj4+ICsgKiBvZiB0aGUgU29mdHdhcmUuCj4+PiArICoKPj4+ICsgKiBUSEUgU09GVFdBUkUg SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkKPj4+IEtJTkQsIEVY UFJFU1MgT1IKPj4+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI RSBXQVJSQU5USUVTIE9GCj4+PiBNRVJDSEFOVEFCSUxJVFksCj4+PiArICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOCj4+PiBOTyBFVkVO VCBTSEFMTAo+Pj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLAo+Pj4gREFNQUdFUyBPUiBPVEhFUgo+Pj4gKyAqIExJQUJJTElUWSwg V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKPj4+IE9USEVSV0lTRSwg QVJJU0lORwo+Pj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRQo+Pj4gVVNFIE9SIE9USEVSCj4+PiArICogREVBTElOR1MgSU4gVEhFIFNP RlRXQVJFLgo+Pj4gKyAqLwo+Pj4gKwo+Pj4gKyNpZm5kZWYgRFJNX1NDRENfSEVMUEVSX0gKPj4+ ICsjZGVmaW5lIERSTV9TQ0RDX0hFTFBFUl9ICj4+PiArCj4+PiArI2luY2x1ZGUgPGxpbnV4L2ky Yy5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+Pj4gKwo+Pj4gKyNkZWZpbmUgU0NE Q19TSU5LX1ZFUlNJT04gMHgwMQo+Pj4gKwo+Pj4gKyNkZWZpbmUgU0NEQ19TT1VSQ0VfVkVSU0lP TiAweDAyCj4+PiArCj4+PiArI2RlZmluZSBTQ0RDX1VQREFURV8wIDB4MTAKPj4+ICsjZGVmaW5l ICBTQ0RDX1JFQURfUkVRVUVTVF9URVNUICgxIDw8IDIpCj4+PiArI2RlZmluZSAgU0NEQ19DRURf VVBEQVRFICgxIDw8IDEpCj4+PiArI2RlZmluZSAgU0NEQ19TVEFUVVNfVVBEQVRFICgxIDw8IDAp Cj4+PiArCj4+PiArI2RlZmluZSBTQ0RDX1VQREFURV8xIDB4MTEKPj4+ICsKPj4+ICsjZGVmaW5l IFNDRENfVE1EU19DT05GSUcgMHgyMAo+Pj4gKyNkZWZpbmUgIFNDRENfVE1EU19CSVRfQ0xPQ0tf UkFUSU9fQllfNDAgKDEgPDwgMSkKPj4+ICsjZGVmaW5lICBTQ0RDX1RNRFNfQklUX0NMT0NLX1JB VElPX0JZXzEwICgwIDw8IDEpCj4+PiArI2RlZmluZSAgU0NEQ19TQ1JBTUJMSU5HX0VOQUJMRSAo MSA8PCAwKQo+Pj4gKwo+Pj4gKyNkZWZpbmUgU0NEQ19TQ1JBTUJMRVJfU1RBVFVTIDB4MjEKPj4+ ICsjZGVmaW5lICBTQ0RDX1NDUkFNQkxJTkdfU1RBVFVTICgxIDw8IDApCj4+PiArCj4+PiArI2Rl ZmluZSBTQ0RDX0NPTkZJR18wIDB4MzAKPj4+ICsjZGVmaW5lICBTQ0RDX1JFQURfUkVRVUVTVF9F TkFCTEUgKDEgPDwgMCkKPj4+ICsKPj4+ICsjZGVmaW5lIFNDRENfU1RBVFVTX0ZMQUdTXzAgMHg0 MAo+Pj4gKyNkZWZpbmUgIFNDRENfQ0gyX0xPQ0sgKDEgPCAzKQo+Pj4gKyNkZWZpbmUgIFNDRENf Q0gxX0xPQ0sgKDEgPCAyKQo+Pj4gKyNkZWZpbmUgIFNDRENfQ0gwX0xPQ0sgKDEgPCAxKQo+Pj4g KyNkZWZpbmUgIFNDRENfQ0hfTE9DS19NQVNLIChTQ0RDX0NIMl9MT0NLIHwgU0NEQ19DSDFfTE9D SyB8Cj4+PiBTQ0RDX0NIMF9MT0NLKQo+Pj4gKyNkZWZpbmUgIFNDRENfQ0xPQ0tfREVURUNUICgx IDw8IDApCj4+PiArCj4+PiArI2RlZmluZSBTQ0RDX1NUQVRVU19GTEFHU18xIDB4NDEKPj4+ICsK Pj4+ICsjZGVmaW5lIFNDRENfRVJSX0RFVF8wX0wgMHg1MAo+Pj4gKyNkZWZpbmUgU0NEQ19FUlJf REVUXzBfSCAweDUxCj4+PiArI2RlZmluZSBTQ0RDX0VSUl9ERVRfMV9MIDB4NTIKPj4+ICsjZGVm aW5lIFNDRENfRVJSX0RFVF8xX0ggMHg1Mwo+Pj4gKyNkZWZpbmUgU0NEQ19FUlJfREVUXzJfTCAw eDU0Cj4+PiArI2RlZmluZSBTQ0RDX0VSUl9ERVRfMl9IIDB4NTUKPj4+ICsjZGVmaW5lICBTQ0RD X0NIQU5ORUxfVkFMSUQgKDEgPDwgNykKPj4+ICsKPj4+ICsjZGVmaW5lIFNDRENfRVJSX0RFVF9D SEVDS1NVTSAweDU2Cj4+PiArCj4+PiArI2RlZmluZSBTQ0RDX1RFU1RfQ09ORklHXzAgMHhjMAo+ Pj4gKyNkZWZpbmUgIFNDRENfVEVTVF9SRUFEX1JFUVVFU1QgKDEgPDwgNykKPj4+ICsjZGVmaW5l ICBTQ0RDX1RFU1RfUkVBRF9SRVFVRVNUX0RFTEFZKHgpICgoeCkgJiAweDdmKQo+Pj4gKwo+Pj4g KyNkZWZpbmUgU0NEQ19NQU5VRkFDVFVSRVJfSUVFRV9PVUkgMHhkMAo+Pj4gKyNkZWZpbmUgU0NE Q19NQU5VRkFDVFVSRVJfSUVFRV9PVUlfU0laRSAzCj4+PiArCj4+PiArI2RlZmluZSBTQ0RDX0RF VklDRV9JRCAweGQzCj4+PiArI2RlZmluZSBTQ0RDX0RFVklDRV9JRF9TSVpFIDgKPj4+ICsKPj4+ ICsjZGVmaW5lIFNDRENfREVWSUNFX0hBUkRXQVJFX1JFVklTSU9OIDB4ZGIKPj4+ICsjZGVmaW5l ICBTQ0RDX0RFVklDRV9IQVJEV0FSRV9SRVZJU0lPTl9NQUpPUih4KSAoKCh4KSA+PiA0KQo+Pj4g JiAweGYpCj4+PiArI2RlZmluZSAgU0NEQ19ERVZJQ0VfSEFSRFdBUkVfUkVWSVNJT05fTUlOT1Io eCkgKCgoeCkgPj4gMCkKPj4+ICYgMHhmKQo+Pj4gKwo+Pj4gKyNkZWZpbmUgU0NEQ19ERVZJQ0Vf U09GVFdBUkVfTUFKT1JfUkVWSVNJT04gMHhkYwo+Pj4gKyNkZWZpbmUgU0NEQ19ERVZJQ0VfU09G VFdBUkVfTUlOT1JfUkVWSVNJT04gMHhkZAo+Pj4gKwo+Pj4gKyNkZWZpbmUgU0NEQ19NQU5VRkFD VFVSRVJfU1BFQ0lGSUMgMHhkZQo+Pj4gKyNkZWZpbmUgU0NEQ19NQU5VRkFDVFVSRVJfU1BFQ0lG SUNfU0laRSAzNAo+Pj4gKwo+Pj4gK3NzaXplX3QgZHJtX3NjZGNfcmVhZChzdHJ1Y3QgaTJjX2Fk YXB0ZXIgKmFkYXB0ZXIsIHU4Cj4+PiBvZmZzZXQsIHZvaWQgKmJ1ZmZlciwKPj4+ICsgICAgICAg ICAgICAgIHNpemVfdCBzaXplKTsKPj4+ICtzc2l6ZV90IGRybV9zY2RjX3dyaXRlKHN0cnVjdCBp MmNfYWRhcHRlciAqYWRhcHRlciwgdTggb2Zmc2V0LAo+Pj4gKyAgICAgICAgICAgICAgIGNvbnN0 IHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpOwo+Pj4gKwo+Pj4gKy8qKgo+Pj4gKyAqIGRybV9z Y2RjX3JlYWRiIC0gcmVhZCBhIHNpbmdsZSBieXRlIGZyb20gU0NEQwo+Pj4gKyAqIEBhZGFwdGVy OiBJMkMgYWRhcHRlcgo+Pj4gKyAqIEBvZmZzZXQ6IG9mZnNldCBvZiByZWdpc3RlciB0byByZWFk Cj4+PiArICogQHZhbHVlOiByZXR1cm4gbG9jYXRpb24gZm9yIHRoZSByZWdpc3RlciB2YWx1ZQo+ Pj4gKyAqCj4+PiArICogUmVhZHMgYSBzaW5nbGUgYnl0ZSBmcm9tIFNDREMuIFRoaXMgaXMgYSBj b252ZW5pZW5jZQo+Pj4gd3JhcHBlciBhcm91bmQgdGhlCj4+PiArICogZHJtX3NjZGNfcmVhZCgp IGZ1bmN0aW9uLgo+Pj4gKyAqCj4+PiArICogUmV0dXJuczoKPj4+ICsgKiAwIG9uIHN1Y2Nlc3Mg b3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4+PiArICovCj4+PiArc3RhdGlj IGlubGluZSBpbnQgZHJtX3NjZGNfcmVhZGIoc3RydWN0IGkyY19hZGFwdGVyCj4+PiAqYWRhcHRl ciwgdTggb2Zmc2V0LAo+Pj4gKyAgICAgICAgICAgICAgICAgdTggKnZhbHVlKQo+Pj4gK3sKPj4+ ICsgICAgcmV0dXJuIGRybV9zY2RjX3JlYWQoYWRhcHRlciwgb2Zmc2V0LCB2YWx1ZSwKPj4+IHNp emVvZigqdmFsdWUpKTsKPj4+ICt9Cj4+PiArCj4+PiArLyoqCj4+PiArICogZHJtX3NjZGNfd3Jp dGViIC0gd3JpdGUgYSBzaW5nbGUgYnl0ZSB0byBTQ0RDCj4+PiArICogQGFkYXB0ZXI6IEkyQyBh ZGFwdGVyCj4+PiArICogQG9mZnNldDogb2Zmc2V0IG9mIHJlZ2lzdGVyIHRvIHJlYWQKPj4+ICsg KiBAdmFsdWU6IHJldHVybiBsb2NhdGlvbiBmb3IgdGhlIHJlZ2lzdGVyIHZhbHVlCj4+PiArICoK Pj4+ICsgKiBXcml0ZXMgYSBzaW5nbGUgYnl0ZSB0byBTQ0RDLiBUaGlzIGlzIGEgY29udmVuaWVu Y2UKPj4+IHdyYXBwZXIgYXJvdW5kIHRoZQo+Pj4gKyAqIGRybV9zY2RjX3dyaXRlKCkgZnVuY3Rp b24uCj4+PiArICoKPj4+ICsgKiBSZXR1cm5zOgo+Pj4gKyAqIDAgb24gc3VjY2VzcyBvciBhIG5l Z2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPj4+ICsgKi8KPj4+ICtzdGF0aWMgaW5saW5l IGludCBkcm1fc2NkY193cml0ZWIoc3RydWN0IGkyY19hZGFwdGVyCj4+PiAqYWRhcHRlciwgdTgg b2Zmc2V0LAo+Pj4gKyAgICAgICAgICAgICAgICAgIHU4IHZhbHVlKQo+Pj4gK3sKPj4+ICsgICAg cmV0dXJuIGRybV9zY2RjX3dyaXRlKGFkYXB0ZXIsIG9mZnNldCwgJnZhbHVlLAo+Pj4gc2l6ZW9m KHZhbHVlKSk7Cj4+PiArfQo+Pj4gKwo+Pj4gKyNlbmRpZgo+CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK