From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: =?utf-8?q?=5BPATCH_intel-gpu-tools=5D_tools=3A_Added_?= =?utf-8?q?intel=5Fdpio=5Fread_and_intel=5Fdpio=5Fwrite?= Date: Thu, 02 Aug 2012 09:06:48 -0700 Message-ID: <25e00d42d0c3a1f04db332d79a69b63d@bwidawsk.net> References: <1343909236-17870-1-git-send-email-vijay.a.purushothaman@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from shiva.chad-versace.us (209-20-75-48.static.cloud-ips.com [209.20.75.48]) by gabe.freedesktop.org (Postfix) with ESMTP id 859B49EF44 for ; Thu, 2 Aug 2012 09:06:57 -0700 (PDT) Received: from bwidawsk.net (209-20-75-48.static.cloud-ips.com [209.20.75.48]) by shiva.chad-versace.us (Postfix) with ESMTPSA id 2F34C88588 for ; Thu, 2 Aug 2012 16:06:49 +0000 (UTC) In-Reply-To: <1343909236-17870-1-git-send-email-vijay.a.purushothaman@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMjAxMi0wOC0wMiAwNTowNywgVmlqYXkgUHVydXNob3RoYW1hbiB3cm90ZToKPiBJbiBWYWxs ZXl2aWV3IHRoZSBEUExMIGFuZCBsYW5lIGNvbnRyb2wgcmVnaXN0ZXJzIGFyZSBhY2Nlc3NpYmxl IG9ubHkKPiB0aHJvdWdoIHNpZGUgYmFuZCBmYWJyaWMgY2FsbGVkIERQSU8uIEFkZGVkIHR3byB0 b29scyB0byByZWFkIGFuZCAKPiB3cml0ZQo+IHJlZ2lzdGVycyByZXNpZGluZyBpbiB0aGlzIHNw YWNlLgoKQ291bGQgSSBjb252aW5jZSB5b3UgdG8gdXNlIHRoZSBjZW50cmFsaXplZCByZWFkL3dy aXRlIG1taW8gZnVuY3Rpb25zPwpPdGhlcndpc2UsIGV2ZXJ5dGhpbmcgc2VlbXMgZmluZSB0byBt ZSBoZXJlLgoKPgo+IFNpZ25lZC1vZmYtYnk6IFZpamF5IFB1cnVzaG90aGFtYW4gPHZpamF5LmEu cHVydXNob3RoYW1hbkBpbnRlbC5jb20+Cj4gLS0tCj4gIHRvb2xzL01ha2VmaWxlLmFtICAgICAg ICB8ICAgIDIgKwo+ICB0b29scy9pbnRlbF9kcGlvX3JlYWQuYyAgfCAgMTA1Cj4gKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICB0b29scy9pbnRlbF9kcGlv X3dyaXRlLmMgfCAgMTAzCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMjEwIGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IHRvb2xzL2ludGVsX2RwaW9fcmVhZC5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 b29scy9pbnRlbF9kcGlvX3dyaXRlLmMKPgo+IGRpZmYgLS1naXQgYS90b29scy9NYWtlZmlsZS5h bSBiL3Rvb2xzL01ha2VmaWxlLmFtCj4gaW5kZXggZDQ2MWYzOC4uNzFmYjA4NyAxMDA2NDQKPiAt LS0gYS90b29scy9NYWtlZmlsZS5hbQo+ICsrKyBiL3Rvb2xzL01ha2VmaWxlLmFtCj4gQEAgLTE1 LDYgKzE1LDggQEAgYmluX1BST0dSQU1TID0gCQkJCVwKPiAgCWludGVsX3JlZ193cml0ZSAJCVwK PiAgCWludGVsX3JlZ19yZWFkIAkJCVwKPiAgCWludGVsX2ZvcmNld2FrZWQJCVwKPiArCWludGVs X2RwaW9fcmVhZAkJCVwKPiArCWludGVsX2RwaW9fd3JpdGUJCVwKPiAgCWludGVsX2wzX3Bhcml0 eQo+Cj4gIG5vaW5zdF9QUk9HUkFNUyA9IAkJCVwKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxf ZHBpb19yZWFkLmMgYi90b29scy9pbnRlbF9kcGlvX3JlYWQuYwo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4gaW5kZXggMDAwMDAwMC4uOGI5MjRmZAo+IC0tLSAvZGV2L251bGwKPiArKysgYi90b29s cy9pbnRlbF9kcGlvX3JlYWQuYwo+IEBAIC0wLDAgKzEsMTA1IEBACj4gKy8qCj4gKyAqIENvcHly aWdodCDCqSAyMDEyIEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIAo+IG9idGFpbmlu ZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUKPiAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgCj4gbGltaXRhdGlvbgo+ ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwgCj4gc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gCj4gdGhlCj4gKyAqIFNvZnR3 YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIAo+IGNv bmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgCj4gdGhlIG5leHQKPiArICogcGFyYWdyYXBo KSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIAo+IHBvcnRp b25zIG9mIHRoZQo+ICsgKiBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBS T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCj4gRVhQUkVTUyBP Ugo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIAo+IE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIAo+IEVWRU5UIFNIQUxMCj4gKyAq IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN LCBEQU1BR0VTCj4gT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIAo+IEFSSVNJTkcKPiArICogRlJPTSwg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiAK PiBPVEhFUgo+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIEF1dGhv cnM6Cj4gKyAqCQlWaWpheSBQdXJ1c2hvdGhhbWFuIDx2aWpheS5hLnB1cnVzaG90aGFtYW5AaW50 ZWwuY29tPgo+ICsgKgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4KPiArI2luY2x1 ZGUgPHN0ZGxpYi5oPgo+ICsjaW5jbHVkZSA8c3RkaW8uaD4KPiArI2luY2x1ZGUgPGVyci5oPgo+ ICsjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gKyNpbmNsdWRlICJpbnRlbF9ncHVfdG9vbHMuaCIKPiAr Cj4gKyNkZWZpbmUgVkxWX0RJU1BMQVlfQkFTRQkJMHgxODAwMDAKPiArI2RlZmluZSBEUElPX1BL VAkJCQkweDIxMDAKPiArI2RlZmluZSAgRFBJT19SSUQJCQkJKDAgPDwgMjQpCj4gKyNkZWZpbmUg IERQSU9fT1BfV1JJVEUJCQkoMSA8PCAxNikKPiArI2RlZmluZSAgRFBJT19PUF9SRUFECQkJKDAg PDwgMTYpCj4gKyNkZWZpbmUgIERQSU9fUE9SVElECQkJKDB4MTIgPDwgOCkKPiArI2RlZmluZSAg RFBJT19CWVRFCQkJCSgweGYgPDwgNCkKPiArI2RlZmluZSAgRFBJT19CVVNZCQkJCSgxIDw8IDAp Cj4gKyNkZWZpbmUgRFBJT19EQVRBCQkJCTB4MjEwNAo+ICsjZGVmaW5lIERQSU9fUkVHCQkJCTB4 MjEwOAo+ICsKPiArc3RhdGljIHVpbnQzMl90IHZsdl9kaXNwbGF5X3JlZ19yZWFkKHVpbnQzMl90 IHJlZykKPiArewo+ICsJcmVnICs9IFZMVl9ESVNQTEFZX0JBU0U7Cj4gKwlyZXR1cm4gKCoodm9s YXRpbGUgdWludDMyX3QgKikoKHZvbGF0aWxlIGNoYXIqKW1taW8gKyByZWcpKTsKPiArfQo+ICsK PiArc3RhdGljIHZvaWQgdmx2X2Rpc3BsYXlfcmVnX3dyaXRlKHVpbnQzMl90IHJlZywgdWludDMy X3QgdmFsKQo+ICt7Cj4gKwl2b2xhdGlsZSB1aW50MzJfdCAqcHRyOwo+ICsKPiArCXJlZyArPSBW TFZfRElTUExBWV9CQVNFOwo+ICsJcHRyID0gKHZvbGF0aWxlIHVpbnQzMl90ICopKCh2b2xhdGls ZSBjaGFyICopIG1taW8gKyByZWcpOwo+ICsJKnB0ciA9IHZhbDsKPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgdXNhZ2UoY2hhciAqY21kbmFtZSkKPiArewo+ICsJcHJpbnRmKCJXYXJuaW5nIDogVGhp cyBwcm9ncmFtIHdpbGwgd29yayBvbmx5IG9uIFZhbGxleXZpZXdcbiIpOwo+ICsJcHJpbnRmKCJV c2FnZTogJXMgW2FkZHJdXG4iLCBjbWRuYW1lKTsKPiArCXByaW50ZigiXHQgYWRkciA6IGluIDB4 WFhYWCBmb3JtYXRcbiIpOwo+ICt9Cj4gKwo+ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFy Z3YpCj4gK3sKPiArCWludCByZXQgPSAwOwo+ICsJdWludDMyX3QgcmVnLCB2YWw7Cj4gKwljaGFy ICpjbWRuYW1lID0gc3RyZHVwKGFyZ3ZbMF0pOwo+ICsKPiArCWlmIChhcmdjICE9IDIpIHsKPiAr CQl1c2FnZShjbWRuYW1lKTsKPiArCQlyZXQgPSAxOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsK PiArCXNzY2FuZihhcmd2WzFdLCAiMHgleCIsICZyZWcpOwo+ICsKPiArCWludGVsX3JlZ2lzdGVy X2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDApOwo+ICsKPiArCS8qIENoZWNr IHdoZXRoZXIgdGhlIHNpZGUgYmFuZCBmYWJyaWMgaXMgcmVhZHkgdG8gYWNjZXB0IGNvbW1hbmRz IAo+ICovCj4gKwlkbyB7Cj4gKwkJdXNsZWVwKDEpOwo+ICsJfSB3aGlsZSAodmx2X2Rpc3BsYXlf cmVnX3JlYWQoRFBJT19QS1QpICYgRFBJT19CVVNZKTsKPiArCj4gKwl2bHZfZGlzcGxheV9yZWdf d3JpdGUoRFBJT19SRUcsIHJlZyk7Cj4gKwl2bHZfZGlzcGxheV9yZWdfd3JpdGUoRFBJT19QS1Qs IERQSU9fUklEIHwgRFBJT19PUF9SRUFEIHwgCj4gRFBJT19QT1JUSUQgfAo+ICsJCQkJCQkJRFBJ T19CWVRFKTsKPiArCWRvIHsKPiArCQl1c2xlZXAoMSk7Cj4gKwl9IHdoaWxlICh2bHZfZGlzcGxh eV9yZWdfcmVhZChEUElPX1BLVCkgJiBEUElPX0JVU1kpOwo+ICsKPiArCXZhbCA9IHZsdl9kaXNw bGF5X3JlZ19yZWFkKERQSU9fREFUQSk7Cj4gKwo+ICsJcHJpbnRmKCJSZWFkIERQSU8gcmVnaXN0 ZXI6IDB4JXggLSBWYWx1ZSA6IDB4JXhcbiIsIHJlZywgdmFsKTsKPiArCj4gKwlpbnRlbF9yZWdp c3Rlcl9hY2Nlc3NfZmluaSgpOwo+ICsKPiArb3V0Ogo+ICsJZnJlZShjbWRuYW1lKTsKPiArCXJl dHVybiByZXQ7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfZHBpb193cml0ZS5jIGIv dG9vbHMvaW50ZWxfZHBpb193cml0ZS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAw MDAwMDAwLi45NmI3MmRkCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3Rvb2xzL2ludGVsX2RwaW9f d3JpdGUuYwo+IEBAIC0wLDAgKzEsMTAzIEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDEy IEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50 ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIAo+IG9idGFpbmluZyBhCj4gKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUKPiAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgCj4gbGltaXRhdGlvbgo+ICsgKiB0aGUgcmln aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgCj4g c3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gCj4gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIAo+IGNvbmRpdGlvbnM6Cj4g KyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIChpbmNsdWRpbmcgCj4gdGhlIG5leHQKPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBp bmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIAo+IHBvcnRpb25zIG9mIHRoZQo+ ICsgKiBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCj4gRVhQUkVTUyBPUgo+ICsgKiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIAo+IE1F UkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gIElOIE5PIAo+IEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTCj4g T1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD VCwgVE9SVCBPUiBPVEhFUldJU0UsIAo+IEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiAKPiBPVEhFUgo+ICsg KiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIEF1dGhvcnM6Cj4gKyAqCQlW aWpheSBQdXJ1c2hvdGhhbWFuIDx2aWpheS5hLnB1cnVzaG90aGFtYW5AaW50ZWwuY29tPgo+ICsg Kgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4KPiArI2luY2x1ZGUgPHN0ZGxpYi5o Pgo+ICsjaW5jbHVkZSA8c3RkaW8uaD4KPiArI2luY2x1ZGUgPGVyci5oPgo+ICsjaW5jbHVkZSA8 c3RyaW5nLmg+Cj4gKyNpbmNsdWRlICJpbnRlbF9ncHVfdG9vbHMuaCIKPiArCj4gKyNkZWZpbmUg VkxWX0RJU1BMQVlfQkFTRQkJMHgxODAwMDAKPiArI2RlZmluZSBEUElPX1BLVAkJCQkweDIxMDAK PiArI2RlZmluZSAgRFBJT19SSUQJCQkJKDAgPDwgMjQpCj4gKyNkZWZpbmUgIERQSU9fT1BfV1JJ VEUJCQkoMSA8PCAxNikKPiArI2RlZmluZSAgRFBJT19PUF9SRUFECQkJKDAgPDwgMTYpCj4gKyNk ZWZpbmUgIERQSU9fUE9SVElECQkJKDB4MTIgPDwgOCkKPiArI2RlZmluZSAgRFBJT19CWVRFCQkJ CSgweGYgPDwgNCkKPiArI2RlZmluZSAgRFBJT19CVVNZCQkJCSgxIDw8IDApCj4gKyNkZWZpbmUg RFBJT19EQVRBCQkJCTB4MjEwNAo+ICsjZGVmaW5lIERQSU9fUkVHCQkJCTB4MjEwOAo+ICsKPiAr c3RhdGljIHVpbnQzMl90IHZsdl9kaXNwbGF5X3JlZ19yZWFkKHVpbnQzMl90IHJlZykKPiArewo+ ICsJcmVnICs9IFZMVl9ESVNQTEFZX0JBU0U7Cj4gKwlyZXR1cm4gKCoodm9sYXRpbGUgdWludDMy X3QgKikoKHZvbGF0aWxlIGNoYXIqKW1taW8gKyByZWcpKTsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgdmx2X2Rpc3BsYXlfcmVnX3dyaXRlKHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsKQo+ICt7 Cj4gKwl2b2xhdGlsZSB1aW50MzJfdCAqcHRyOwo+ICsKPiArCXJlZyArPSBWTFZfRElTUExBWV9C QVNFOwo+ICsJcHRyID0gKHZvbGF0aWxlIHVpbnQzMl90ICopKCh2b2xhdGlsZSBjaGFyICopIG1t aW8gKyByZWcpOwo+ICsJKnB0ciA9IHZhbDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdXNhZ2Uo Y2hhciAqY21kbmFtZSkKPiArewo+ICsJcHJpbnRmKCJXYXJuaW5nIDogVGhpcyBwcm9ncmFtIHdp bGwgd29yayBvbmx5IG9uIFZhbGxleXZpZXdcbiIpOwo+ICsJcHJpbnRmKCJVc2FnZTogJXMgW2Fk ZHJdIFt2YWxdXG4iLCBjbWRuYW1lKTsKPiArCXByaW50ZigiXHQgYWRkciA6IGluIDB4WFhYWCBm b3JtYXRcbiIpOwo+ICt9Cj4gKwo+ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCj4g K3sKPiArCWludCByZXQgPSAwOwo+ICsJdWludDMyX3QgcmVnLCB2YWw7Cj4gKwljaGFyICpjbWRu YW1lID0gc3RyZHVwKGFyZ3ZbMF0pOwo+ICsKPiArCWlmIChhcmdjICE9IDMpIHsKPiArCQl1c2Fn ZShjbWRuYW1lKTsKPiArCQlyZXQgPSAxOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsKPiArCXNz Y2FuZihhcmd2WzFdLCAiMHgleCIsICZyZWcpOwo+ICsJc3NjYW5mKGFyZ3ZbMl0sICIweCV4Iiwg JnZhbCk7Cj4gKwo+ICsJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9k ZXZpY2UoKSwgMCk7Cj4gKwo+ICsJLyogQ2hlY2sgd2hldGhlciB0aGUgc2lkZSBiYW5kIGZhYnJp YyBpcyByZWFkeSB0byBhY2NlcHQgY29tbWFuZHMgCj4gKi8KPiArCWRvIHsKPiArCQl1c2xlZXAo MSk7Cj4gKwl9IHdoaWxlICh2bHZfZGlzcGxheV9yZWdfcmVhZChEUElPX1BLVCkgJiBEUElPX0JV U1kpOwo+ICsKPiArCXZsdl9kaXNwbGF5X3JlZ193cml0ZShEUElPX0RBVEEsIHZhbCk7Cj4gKwl2 bHZfZGlzcGxheV9yZWdfd3JpdGUoRFBJT19SRUcsIHJlZyk7Cj4gKwl2bHZfZGlzcGxheV9yZWdf d3JpdGUoRFBJT19QS1QsIERQSU9fUklEIHwgRFBJT19PUF9XUklURSB8IAo+IERQSU9fUE9SVElE IHwKPiArCQkJCQkJCURQSU9fQllURSk7Cj4gKwlkbyB7Cj4gKwkJdXNsZWVwKDEpOwo+ICsJfSB3 aGlsZSAodmx2X2Rpc3BsYXlfcmVnX3JlYWQoRFBJT19QS1QpICYgRFBJT19CVVNZKTsKPiArCj4g KwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgpOwo+ICsKPiArb3V0Ogo+ICsJZnJlZShjbWRu YW1lKTsKPiArCXJldHVybiByZXQ7Cj4gK30KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==