From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [RFC 01/11] acpi: arm: Public API for populating and query based on requesterid Date: Fri, 19 Jan 2018 12:03:08 +0000 Message-ID: <74145291-1dfc-f3d5-a49a-d5df3ef1920f@linaro.org> References: <20180102092809.1841-1-manish.jaggi@linaro.org> <20180102092809.1841-2-manish.jaggi@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ecVO6-0000k2-Aj for xen-devel@lists.xenproject.org; Fri, 19 Jan 2018 12:03:14 +0000 Received: by mail-wm0-x241.google.com with SMTP id b21so3062001wme.4 for ; Fri, 19 Jan 2018 04:03:11 -0800 (PST) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Manish Jaggi , manish.jaggi@linaro.org, xen-devel@lists.xenproject.org, sameer.goel@linaro.org, andre.przywara@linaro.org Cc: manish.jaggi@cavium.com List-Id: xen-devel@lists.xenproject.org CgpPbiAxOS8wMS8xOCAwNjowNSwgTWFuaXNoIEphZ2dpIHdyb3RlOgo+IAo+IE9uIDAxLzE3LzIw MTggMTI6MDEgQU0sIEp1bGllbiBHcmFsbCB3cm90ZToKPj4gSGkgTWFuaXNoLAo+Pgo+IEhpIEp1 bGllbiwKPiBUaGFua3MgZm9yIHJldmlld2luZyB0aGUgcGF0Y2guCj4gCj4+IEkgc2VudCB0aGUg cHJldmlvdXMgZS1tYWlsIHRvbyBzb29uLgo+Pgo+PiBPbiAwMi8wMS8xOCAwOToyNywgbWFuaXNo LmphZ2dpQGxpbmFyby5vcmcgd3JvdGU6Cj4+PiBGcm9tOiBNYW5pc2ggSmFnZ2kgPG1hbmlzaC5q YWdnaUBsaW5hcm8ub3JnPgo+Pj4KPj4+IMKgIFB1YmxpYyBBUEkgdG8gcG9wdWxhdGUgYW5kIHF1 ZXJ5IG1hcCBiZXR3ZWVuIHJlcXVlc3RlciBpZCBhbmQKPj4+IMKgIHN0cmVhbUlkL0RldmljZUlE LiBJT1JUIGlzIHBhcnNlZCBvbmUgdGltZSAob3V0c2lkZSB0aGlzIHBhdGNoKQo+Pj4gwqAgYW5k IHR3byBsaXN0cyBhcmUgY3JlYXRlZCBvbmUgZm9yIG1hcHBpbmcgYmV0d2VlbiByZXVlc3Rlcklk IGFuZCAKPj4+IHN0cmVhbWlkCj4+PiDCoCBhbmQgYW5vdGhlciBiZXR3ZWVuIHJlcXVlc3RlcklE IGFuZCBkZXZpY2VJRC4KPj4+Cj4+PiDCoCBUaGVzZSBsaXN0cyBlbGltaW5hdGUgdGhlIG5lZWQg dG8gcmVwYXJzZSBJT1JUIGZvciBxdWVyeWluZyBzdHJlYW1pZAo+Pj4gwqAgb3IgZGV2aWNlaWQg dXNpbmcgcmVxdWVzdGVyaWQuCj4+Pgo+Pj4gwqAgU2lnbmVkLW9mZi1ieTogTWFuaXNoIEphZ2dp IDxtYW5pc2guamFnZ2lAbGluYXJvLm9yZz4KPj4+IC0tLQo+Pj4gwqAgeGVuL2RyaXZlcnMvYWNw aS9NYWtlZmlsZcKgwqDCoMKgIHzCoMKgIDEgKwo+Pj4gwqAgeGVuL2RyaXZlcnMvYWNwaS9hcm0v TWFrZWZpbGUgfMKgwqAgMSArCj4+Cj4+IFdlIGhhdmUgYSBkaXJlY3RvcnkgYXJjaC9hcm0vYWNw aS8uIFNvIHBsZWFzZSBtb3ZlIGFsbCB5b3VyIGNvZGUgdGhlcmUuCj4gVGhlIGN1cnJlbnQgZmls ZXMgaW4gYXJjaC9hcm0vYWNwaSBob2xkIG9ubHkgYm9vdCB0aW1lL2xvdyBsZXZlbCBjb2RlLgo+ IElNSE8gY3JlYXRpbmcgZHJpdmVycy9hY3BpL2FybSBtYWtlcyBtb3JlIHNlbnNlLgo+IExpbnV4 IGFsc28gaGFzIGlvcnQgY29kZSBpbiBkcml2ZXJzL2FjcGkvYXJtLgoKZHJpdmVycy9hY3BpIG1v c3RseSBjb250YWluIGdlbmVyaWMgQUNQSSBjb2RlLiByaWRtYXAuYyBhbmQgaW9ydC5jIGlzIApB RkFJQ1QgQXJtIHNwZWNpZmljLiBTbyBhcmNoL2FybS9hY3BpIGlzIGEgYmV0dGVyIHBsYWNlLgoK Wy4uLl0KCj4+Cj4+PiArICoKPj4+ICsgKiBNYW5pc2ggSmFnZ2kgPG1hbmlzaC5qYWdnaUBsaW5h cm8ub3JnPgo+Pj4gKyAqIENvcHlyaWdodCAoYykgMjAxOCBMaW5hcm8uCj4+PiArICoKPj4+ICsg KiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQo+Pj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4+PiArICogdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPj4+ICsg KiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+Pgo+PiBYZW4gaXMgR1BMdjIg b25seSBhbmQgaGVuY2UgdGhlIGNvcHlyaWdodCB3cm9uZy4gWW91IHdhbnQgdG8gdXNlOgo+Pgo+ PiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeSBpdAo+PiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAo+PiB2ZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+IAo+IEkgcGlja2VkIHRoaXMgY29weXJp Z2h0IGZyb20geGVuL2FyY2gvYXJtL3RyYXBzLmMuCj4gCj4gIMKgKiB4ZW4vYXJjaC9hcm0vdHJh cHMuYwo+ICDCoCoKPiAgwqAqIEFSTSBUcmFwIGhhbmRsZXJzCj4gIMKgKgo+ICDCoCogQ29weXJp Z2h0IChjKSAyMDExIENpdHJpeCBTeXN0ZW1zLgo+ICDCoCoKPiAgwqAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4g IMKgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQo+ICDCoCogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZXNlLCBvcgo+ICDCoCogKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KPiAKPiBTbyBJSVVZQywgdHJhcHMuYyBjb3B5cmlnaHQgaXMgYWxz byB3cm9uZy4KPiBIb3cgZG8gd2UgcGxhbiB0byBmaXggYWxsIG90aGVyIGZpbGVzIGluIHhlbiBj b2RlIHdoaWNoIHVzZSB0aGUgc2FtZSAKPiBjb3B5cmlnaHQuCgpodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTYtMDkvbXNnMDI4OTkuaHRtbAoK Pj4+ICsgKgo+Pj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+Pj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4+PiArICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLsKgIFNlZSB0aGUKPj4+ICsg KiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+Pj4gKyAqLwo+ Pj4gKwo+Pj4gKyNpbmNsdWRlIDxhY3BpL3JpZG1hcC5oPgo+Pj4gKyNpbmNsdWRlIDx4ZW4vaW9t bXUuaD4KPj4+ICsjaW5jbHVkZSA8eGVuL2tlcm5lbC5oPgo+Pj4gKyNpbmNsdWRlIDx4ZW4vbGlz dC5oPgo+Pj4gKyNpbmNsdWRlIDx4ZW4vcGNpLmg+Cj4+PiArCj4+PiArc3RydWN0IGxpc3RfaGVh ZCByaWRfc3RyZWFtaWRfbWFwX2xpc3Q7Cj4+PiArc3RydWN0IGxpc3RfaGVhZCByaWRfZGV2aWNl aWRfbWFwX2xpc3Q7Cj4+Cj4+IFBsZWFzZSBkcm9wIF9saXN0LiBUaGlzIGlzIHBvaW50bGVzcyB0 byBrbm93IHRoYXQgd2hlbiB5b3UgY2FuIAo+PiBkaXNjb3ZlciBpdC4KPiAKPiBJIHRoaW5rIGl0 IGlzIG5vdCBwb2ludGxlc3MuCj4gVGhlcmUgaXMgYSBwb2ludCBoZXJlLiA6KQo+ICDCoF9saXN0 IGlzIGFkZGVkIHRvIHNob3cgdGhhdCBpdCBpcyBhIGxpc3QgdG8gbWFrZSBpdCBtb3JlIHZlcmJv c2UuCj4gV2l0aG91dCBfbGlzdCB0aGUgbmFtZSBjb3VsZCBtZWFuIGEgc2luZ2xlIG1hcHBpbmcg YXMgd2VsbC4KCldoZW4gSSByZWFkLCByaWRfc3RyZWFtaWRfbWFwLiBJIHVuZGVyc3RhbmQgaXQg aXMgYSBtYXAgb2YgcmlkL3N0cmVhbWlkLiAKTm90IGEgc2luZ2xlIG1hcHBpbmcuIEJ1dCAuLi4K Cj4gCj4gSWYgeW91IGNhcmUgdG8gc2VlCj4geGVuL2NvbW1vbi9yYW5nZXNldC5jOjI3OsKgwqDC oCBzdHJ1Y3QgbGlzdF9oZWFkIHJhbmdlX2xpc3Q7Cj4gCj4gSSBob3BlIHlvdSBjYW4gYXBwcmVj aWF0ZSB0aGUgcG9pbnQuCgouLi4gbG9vayBhdCB0aGUgbmFtZSBsZW5ndGggaGVyZSwgMTAgY2hh cmFjdGVycy4gWW91cnMgaXMgMjIgY2hhcmFjdGVycy4gClRoaXMgaXMgMS80IG9mIGEgbGluZS4g VGhhdCdzIGp1c3Qgc3R1cGlkLgoKPj4KPj4gQWxzbywgY2FuIHlvdSBleHBsYWluIHRoZSByYXRp b25hbGUgb2YgdXNpbmcgYW4gdW5zb3J0ZWQgbGlzdCBvdmVyIAo+PiBhbm90aGVyIHN0cnVjdHVy ZT8gCj4gU2luY2UgcmlkIC0gc3RyZWFtSWQgbWFwcGluZyBhbHNvIHJlcXVpcmVzIHBjaXJjX25v ZGUgc28gaXQgd291bGQgCj4gcmVxdWlyZSB0d28gbGV2ZWwgb2Ygc29ydGluZy4KPiBGaXJzdCBz b3J0IGJhc2VkIG9uIHBjaXJjX25vZGUgYW5kIG5leHQgb24gYmFzaXMgb2YgcmlkLgo+IERvZXMg aXQgbWFrZXMgc2Vuc2UgdG8gaGF2ZSBhbGwgdGhhdCBjb21wbGV4IGNvZGUgaGVyZSA/Cj4gIMKg YXMgdGhpcyBBUEkgd2lsbCBiZSB1c2VkIG9ubHkgb25jZSBwZXIgcGNpIGRldmljZQo+PiBBbG9u ZyB0aGF0IHBsZWFzZSBnaXZlIGFuIGlkZWEgaG93IG9mdGVuIGFuZCB3aGVyZSB0aGUgcXVlcnkg QVBJIHdpbGwgCj4+IGJlIHVzZWQuCj4gb2sKPiBCVFcsIHRoaXMgaXMgY2FsbGVkIGZyb20gcGNp X2Zvcl9lYWNoX2RtYV9hbGlhcyBjb2RlIGZsb3cuCgpUaGUgZG9jdW1lbnQgdGhlIHJhdGlvbmFs ZS4KCj4+Cj4+PiArCj4+PiArdm9pZCBpbml0X3JpZG1hcHModm9pZCkKPj4KPj4gVGhpcyBsaWtl bHkgbmVlZCB0byBiZSBfX2luaXQuCj4gb2suCj4+Cj4+PiArewo+Pj4gK8KgwqDCoCBJTklUX0xJ U1RfSEVBRCgmcmlkX2RldmljZWlkX21hcF9saXN0KTsKPj4+ICvCoMKgwqAgSU5JVF9MSVNUX0hF QUQoJnJpZF9zdHJlYW1pZF9tYXBfbGlzdCk7Cj4+PiArfQo+Pgo+PiBUaGlzIGZ1bmN0aW9uIGlz IG5vdCBuZWNlc3NhcnkuIERlY2xhcmluZyAKPj4gTElTVF9IRUFEKHJpZF9zdHJlYW1pZF9tYXBf bGlzdCkgd2lsbCBkbyB0aGUgdHJpY2suCj4gb2suCj4+PiArCj4+PiAraW50IGFkZF9yaWRfc3Ry ZWFtaWRfbWFwKHN0cnVjdCBhY3BpX2lvcnRfbm9kZSAqcGNpcmNfbm9kZSwKPj4KPj4gRGl0dG8u Cj4gRGl0dG8gZm9yPyBTb3JyeSBkaWRudCBjYXRjaCB5b3VyIHBvaW50IGhlcmUuCgpfX2luaXQu Cgo+Pgo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKnNtbXVfbm9kZSwKPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIGlucHV0X2Jhc2UsIHUzMiBvdXRw dXRfYmFzZSwgdTMyIGlkX2NvdW50KQo+Pgo+PiB1MzIgJiBjbyBzaG91bGQgbm90IGJlIHVzZWQg aW4gbmV3IGNvZGUgKHVubGVzcyBpbXBvcnRlZCBmcm9tIExpbnV4KS4gCj4+IFBsZWFzZSB1c2Ug dWludDMyX3QgJiBjby4KPiBJIGNvdWxkbid0IGZpbmQgdGhpcyBpbiB4ZW4gY29kaW5nIHN0eWxl IGRvY3VtZW50Lgo+IENvdWxkIHlvdSBwbGVhc2UgcG9pbnQgdG8gdGhlIHNlY3Rpb24gd2hpY2gg c2F5cyB1MzIgc2hvdWxkIG5vdCBiZSB1c2VkLgoKSXQgaXMgbm90IGluIHRoZSBjb2Rpbmcgc3R5 bGUgYnV0IFhlbiBpcyBwaGFzaW5nIG91dCBmcm9tIHUqLiBXaGF0J3MgdGhlIApwcm9ibGVtPwoK PiAKPj4KPj4+ICt7Cj4+PiArwqDCoMKgIHN0cnVjdCByaWRfc3RyZWFtaWRfbWFwICpyaWRfbWFw Owo+Pgo+PiBOZXdsaW5lIGhlcmUgYXMgaXQgc2hvdWxkIGJlIGJldHdlZW4gYWZ0ZXIgZGVjbGFy YXRpb25zLgo+Pgo+IG9rCj4+Cj4+PiArwqDCoMKgIHJpZF9tYXAgPSB4emFsbG9jKHN0cnVjdCBy aWRfc3RyZWFtaWRfbWFwKTsKPj4+ICsKPj4+ICvCoMKgwqAgaWYgKCFyaWRfbWFwKQo+Pgo+PiBU aGlzIHNob3VsZCBiZSAoIC4uLiApLgo+Pgo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5P TUVNOwo+Pgo+PiBZb3UgZWl0aGVyIHJldHVybiAtRU5PTUVNIG9yIDAgaW4gdGhpcyBmdW5jdGlv bi4gSXQgc291bmRzIGxpa2UgdG8gbWUgCj4+IHRoYXQgYm9vbCB3b3VsZCBiZSB0aGUgYmVzdC4K PiBJIHRoaW5rIEVOT01FTSBzaG91bGQgYmUgdXNlZCBoZXJlLiBUaGUgZXJyb3IgY29kZSBpcyBk ZXNpZ25lZCAKPiBzcGVjaWZpY2FsbHkgZm9yIHRoaXMgcHVycG9zZS4KCkZhaXIgZW5vdWdoLgoK Pj4+ICvCoMKgwqAgcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gK3ZvaWQgcXVlcnlfc3RyZWFt aWQoc3RydWN0IGFjcGlfaW9ydF9ub2RlICpwY2lyY19ub2RlLCB1MTYgcmlkLCB1MzIgCj4+PiAq c3RyZWFtaWQsCj4+Cj4+IHMvdSovdWludF8vCj4+Cj4+IEJ1dCBob3cgY29tZSB0aGUgcmlkIGlz IDE2LWJpdCBoZXJlIHdoZW4gTGludXggaXMgdXNpbmcgMzItYml0Pwo+IElJVUMgcmlkIGlzIDE2 Yml0IG9ubHkuIERvbnQga25vdyB3aHkgbGludXggaXMgdXNpbmcgMzJiaXQuCj4gCj4gcmlkID0g YnVzIC0gOGJpdHMgLCBkZXZmbiA4Yml0cy4KPiAKPiAgRnJvbSBQQ0kgRXhwcmVzcyBzcGVjaWZp Y2F0aW9uCj4gVGhlIFJlcXVlc3RlciBJRCBpcyBhIDE2LWJpdCB2YWx1ZSB0aGF0IGlzIHVuaXF1 ZSBmb3IgZXZlcnkgUENJIEV4cHJlc3MgCj4gRnVuY3Rpb24gd2l0aGluIGEgSGllcmFyY2h5Li4K PiAKPiBJZiB5b3UgdGhpbmsgaXQgaXMgYSAzMmJpdCB2YWx1ZSBwbGVhc2UgbGV0IG1lIGtub3cg aG93IHRvIHVzZSB1cHBlciAxNiAKPiBiaXRzLgoKV2VsbCBBRkFJQ1QsIHRoZSBJT1JUIHN0b3Jl cyAzMi1iaXQuIFNvIGl0IGlzIHByb2JhYmx5IGJlc3QgdG8gc3RpY2sgCndpdGggaXQuCgo+IAo+ Pgo+PiBBbHNvLCBJIGFtIGEgYml0IHB1enpsZWQgaG93IHRoZSBjYWxsZXIgaXMgZXhwZWN0ZWQg dG8gdXNlIGl0LiAKPiBJIHRob3VnaHQgaXQgd291bGQgYmUgc2VsZiBleHBsYW5hdG9yeSBxdWVy eSBzdHJlYW1pZCBiYXNlZCBvbiByaWQuCj4gQnV0IGlmIGl0IGlzIG5vdCB2ZXJib3NlIGVub3Vn aCBmb3IgeW91LCBJIHdpbGwgYWRkIHRoaXMgZXhwbGljaXRseS4KCk5vdCBhdCBhbGwuIE1vcmUg dGhhbiB0aGlzIGZ1bmN0aW9uIGlzIHJldHVybmluZyB2b2lkLiBBIHF1ZXJ5IGZ1bmN0aW9uIApp cyB1c3VhbGx5IHJldHVybiBhIGJvb2wvaW50LgoKPiAKPj4gRnJvbSB0aGUgbmFtZSBJIHdvdWxk IGV4cGVjdCB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHdoZXRoZXIgYSAKPj4gdHJhbnNsYXRpb24g d2FzIGZvdW5kLiBCdXQgaXQgcmV0dXJucyB2b2lkLgo+Pgo+PiBJSE1PLCB0aGlzIGlzIGEgcHJl dHR5IGJhZCBpZGVhIGFuZCBtYWtlIG1vcmUgZXhwZWN0YXRpb24gb24gdGhlIHZhbHVlIAo+PiBm b3IgdGhlIGNhbGxlci4KPj4KPj4gTGFzdGx5LCBJIHdvdWxkIGFwcHJlY2lhdGUgZG9jdW1lbnRh dGlvbiBvbiBhdCBsZWFzdCB0aGUgZnVuY3Rpb24gCj4+IGV4cG9ydGVkLgo+IG9rLgo+Pgo+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBhY3BpX2lvcnRf bm9kZSAqKnNtbXVfbm9kZSkKPj4+ICt7Cj4+PiArwqDCoMKgIHN0cnVjdCByaWRfc3RyZWFtaWRf bWFwICpybWFwOwo+Pj4gKwo+Pj4gK8KgwqDCoCBsaXN0X2Zvcl9lYWNoX2VudHJ5KHJtYXAsICZy aWRfc3RyZWFtaWRfbWFwX2xpc3QsIGVudHJ5KQo+Pj4gK8KgwqDCoCB7Cj4+PiArwqDCoMKgwqDC oMKgwqAgaWYgKHJtYXAtPnBjaXJjX25vZGUgPT0gcGNpcmNfbm9kZSkKPj4KPj4gQ29kaW5nIHN0 eWxlLgo+IENhbiB3ZSBoYXZlIGEgY2hlY2twYXRjaC5wbCBmb3IgeGVuLgo+IFRoaXMgd291bGQg aGVscCBpbiBjYXNlcyB3aGVuIGNvZGUgaGFzIGEgbWl4IG9mIGZpbGVzIHdpdGggbGludXggY29k aW5nIAo+IHN0eWxlIGFuZCB4ZW4gY29kaW5nIHN0eWxlLgoKVGhpcyBpcyBiZWVuIHdvcmtlZCBv bi4KClsuLi5dCgo+PiBJIGFtIG5vdCBhIGJpZyBmYW4gb2YgZXhwb3J0aW5nIHRob3NlIDIgbWFw cy4gQnV0IEkgd2lsbCBzZWUgaG93IHlvdSAKPj4gdXNlIGl0IGJlZm9yZSBjb21tZW50aW5nLgo+ IExvdCBvZiB4ZW4gY29kZSB1c2luZyB0aGUgc2FtZSB3YXkuIElzIHRoYXQgYWxsIHdyb25nPwoK U2Vjb25kIHNlbnRlbmNlOiAiSSB3aWxsIHNlZSBob3cgeW91IHVzZSBpdCBiZWZvcmUgY29tbWVu dGluZyIuCgpDaGVlcnMsCgotLSAKSnVsaWVuIEdyYWxsCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs