From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kamble, Sagar A" Subject: Re: [PATCH 2/2] igt/pm_rps: Add checks for freq = idle (RPn) in specific cases. Date: Fri, 11 Dec 2015 14:18:35 +0530 Message-ID: <566A8DE3.6020207@intel.com> References: <1447277879-4106-1-git-send-email-bob.j.paauwe@intel.com> <1448929399-24498-1-git-send-email-bob.j.paauwe@intel.com> <1448929399-24498-3-git-send-email-bob.j.paauwe@intel.com> <1448978215.14710.30.camel@intel.com> <20151201092208.0fc6724a@bpaauwe-desk.fm.intel.com> <1448991785.14710.49.camel@intel.com> <20151203164358.0c1da165@bpaauwe-desk.fm.intel.com> <1449242531.14707.25.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id AFF6F6E060 for ; Fri, 11 Dec 2015 00:48:38 -0800 (PST) In-Reply-To: <1449242531.14707.25.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: imre.deak@intel.com, Bob Paauwe Cc: intel-gfx List-Id: intel-gfx@lists.freedesktop.org CgpPbiAxMi80LzIwMTUgODo1MiBQTSwgSW1yZSBEZWFrIHdyb3RlOgo+IE9uIHRvLCAyMDE1LTEy LTAzIGF0IDE2OjQzIC0wODAwLCBCb2IgUGFhdXdlIHdyb3RlOgo+PiBPbiBUdWUsIDEgRGVjIDIw MTUgMTk6NDM6MDUgKzAyMDAKPj4gSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPiB3cm90 ZToKPj4KPj4+IE9uIHRpLCAyMDE1LTEyLTAxIGF0IDA5OjIyIC0wODAwLCBCb2IgUGFhdXdlIHdy b3RlOgo+Pj4+IE9uIFR1ZSwgMSBEZWMgMjAxNSAxNTo1Njo1NSArMDIwMAo+Pj4+IEltcmUgRGVh ayA8aW1yZS5kZWFrQGludGVsLmNvbT4gd3JvdGU6Cj4+Pj4KPj4+Pj4gT24gbWEsIDIwMTUtMTEt MzAgYXQgMTY6MjMgLTA4MDAsIEJvYiBQYWF1d2Ugd3JvdGU6Cj4+Pj4+PiBOb3cgdGhhdCB0aGUg ZnJlcXVlbmN5IGNhbiBkcm9wIGJlbG93IHRoZSB1c2VyIHNwZWNpZmllZAo+Pj4+Pj4gbWluaW11 bQo+Pj4+Pj4gd2hlbgo+Pj4+Pj4gdGhlIGdwdSBpcyBpZGxlLCBhZGQgc29tZSBjaGVja2luZyB0 byB2ZXJpZnkgdGhhdCBpdCByZWFsbHkKPj4+Pj4+IGRvZXMKPj4+Pj4+IGRyb3AKPj4+Pj4+IGRv d24gdG8gdGhlIFJQbiBmcmVxdWVuY3kgaW4gc3BlY2lmaWMgY2FzZXMuCj4+Pj4+Pgo+Pj4+Pj4g VG8gZG8gdGhpcywgbW9kaWZ5IHRoZSBtYWluIHRlc3QgZmxvdyB0byB0YWtlIHR3byAnY2hlY2sn Cj4+Pj4+PiByb3V0aW5lcwo+Pj4+Pj4gaW5zdGVhZCBvZiBvbmUuIFdoZW4gcnVubmluZyB0aGUg Y29uZmlnLW1pbi1tYXgtaWRsZSBzdWJ0ZXN0Cj4+Pj4+PiBtYWtlCj4+Pj4+PiB1c2Ugb2YgdGhl IHNlY29uZCBjaGVjayByb3V0aW5lIHRvIHZlcmlmeSB0aGF0IHRoZSBmcmVxdWVuY3kKPj4+Pj4+ IGRyb3BzCj4+Pj4+PiB0byBSUG4gaW5zdGVhZCBvZiBzaW1wbHkgPD0gdXNlciBtaW4gZnJlcXVl bmN5LiAgRm9yIGFsbAo+Pj4+Pj4gb3RoZXIKPj4+Pj4+IHN1YnRlc3RzLCB1c2UgdGhlIG9yaWdp bmFsIGNoZWNrIHJvdXRpbmVzIGZvciBib3RoIGNoZWNrcy4KPj4+Pj4+Cj4+Pj4+PiBTaWduZWQt b2ZmLWJ5OiBCb2IgUGFhdXdlIDxib2Iuai5wYWF1d2VAaW50ZWwuY29tPgo+Pj4+PiBJIGRvbid0 IHNlZSB0aGUgcG9pbnQuIFRoZSBmcmVxdWVuY3kgc2hvdWxkIGFsd2F5cyBkcm9wIHRvIHRoZQo+ Pj4+PiBpZGxlCj4+Pj4+IGZyZXF1ZW5jeSBpZiB0aGUgR1BVIGlzIGlkbGUsIGl0J3Mgbm90IGVu b3VnaCB0aGF0IGl0J3MgYmVsb3cKPj4+Pj4gTUlOLQo+Pj4+PiBmcmVxLgo+Pj4+PiBTbyB3aHkg ZG8gd2UgbmVlZCBzZXBhcmF0ZSBDVVItZnJlcTw9TUlOLWZyZXEgYW5kIENVUi0KPj4+Pj4gZnJl cT09aWRsZS0KPj4+Pj4gZnJlcQo+Pj4+PiBjaGVja3M/Cj4+Pj4gSSBzdGFydGVkIGZyb20gdGhl IHByZW1pc2UgdGhhdCBpdCBzaG91bGQgYWx3YXlzIGRyb3AgdG8gaWRsZSBidXQKPj4+PiB0aGF0 J3MganVzdCBub3QgdGhlIGNhc2UuCj4+PiBJdCBpcyB0aGUgY29ycmVjdCBwcmVtaXNlIGFuZCBp ZiBpdCBkb2Vzbid0IGhvbGQgdGhlbiB0aGVyZSBpcyBhCj4+PiByZWFsCj4+PiBidWcgZWl0aGVy IGluIHRoZSB0ZXN0Y2FzZSBvciB0aGUga2VybmVsIHdoaWNoIG5lZWRzIHRvIGJlCj4+PiBhZGRy ZXNzZWQKPj4+IGRpZmZlcmVudGx5LiBJIGhhdmVuJ3QgZm91bmQgYW55dGhpbmcgY29uY3JldGUg YnV0IG9uZSBzdXNwZWN0IGlzCj4+PiB0aGUKPj4+IGxvZ2ljIHRoYXQgd2FpdHMgZm9yIHRoZSBH UFUgaWRsZSBjb25kaXRpb24sIG1heWJlIHRoZSB0aW1lb3V0Cj4+PiB2YWx1ZSBpZGxlX2NoZWNr KCkgb3IgdGhlIGhhcmQtY29kZWQgZHVyYXRpb24gaW4gZG9fbG9hZF9ncHUoKSBpcwo+Pj4gaW5j b3JyZWN0LiBJbiBhbnkgY2FzZSBsZXQncyBub3QgcGFwZXIgb3ZlciB0aGlzIGlzc3VlLCB0aGUg dmVyeQo+Pj4gcmVhc29uCj4+PiB3ZSBoYXZlIHRlc3QgY2FzZXMgaXMgdG8gdW5jb3ZlciBzdWNo IGJ1Z3MuCj4+Pgo+Pj4+IFRoZSBtaW5fbWF4X2NvbmZpZygpIGZ1bmN0aW9uIGlzIHVzZWQgZm9y Cj4+Pj4gYm90aCB0aGUgaWRsZSBhbmQgbG9hZGVkIHN1YnRlc3RzLiAgSWYgeW91IHRyeSB0byBj aGVjayBmb3IKPj4+PiBmcmVxPWlkbGUKPj4+PiB3aGVuIGRvaW5nIHRoZSBsb2FkZWQgc3VidGVz dCBpdCB3aWxsIGZhaWwgc2luY2UgaXQgbmV2ZXIgZ29lcwo+Pj4+IGlkbGUuCj4+Pj4gRXZlbiBp biB0aGUgaWRsZSBzdWJ0ZXN0IHRoZXJlIGFyZSBjYXNlcyB3aGVyZSBpdCBkb2Vzbid0IGRyb3AK Pj4+PiBkb3duCj4+Pj4gdG8KPj4+PiBpZGxlLgo+Pj4gVGhlIG9ubHkgcGxhY2Ugd2Ugc2hvdWxk IGNoZWNrIGZvciBmcmVxPT1pZGxlIGlzIGluIGlkbGVfY2hlY2soKQo+Pj4gYW5kCj4+PiB0aGF0 IG9uZSBpcyBub3QgY2FsbGVkIGR1cmluZyB0aGUgbG9hZGVkIHN1YnRlc3QsIGl0IHdvdWxkbid0 IGV2ZW4KPj4+IG1ha2UKPj4+IHNlbnNlIHRvIGRvIHNvLiBTbyBJJ20gbm90IHN1cmUgaG93IHRo aXMgc3VidGVzdCBmYWlscyBmb3IgeW91Lgo+Pj4KPj4+PiBJIHN1cHBvc2UgSSBjb3VsZCBkdXBs aWNhdGUgbWluX21heF9jb25maWcgYW5kIGhhdmUgYQo+Pj4+IG1pbl9tYXhfY29uZmlnX2lkbGUo KSBhbmQgbWluX21heF9jb25pZmdfbm90X2lkbGUoKSBmb3IgdXNlIGJ5Cj4+Pj4gdGhlCj4+Pj4g ZGlmZmVyZW50IHN1YnRlc3RzLgo+Pj4gVGhlIHBvaW50IG9mIHRoZSAiY2hlY2siIGFyZ3VtZW50 IG9mIG1pbl9tYXhfY29uZmlnKCkgaXMgdG8KPj4+IGRpc3Rpbmd1aXNoCj4+PiBiZXR3ZWVuIHRo ZSBpZGxlIGFuZCBsb2FkZWQgY2FzZXMuIFRoZSBjaGVjayBmdW5jdGlvbnMgcGFzc2VkIGluCj4+ PiBrbm93Cj4+PiBhbHJlYWR5IGlmIHRoZXkgY2FuIGV4cGVjdCB0aGUgZnJlcXVlbmN5IHRvIHJl YWNoIHRoZSBpZGxlCj4+PiBmcmVxdWVuY3kKPj4+IG9yIG5vdC4KPj4+Cj4+Pj4gVGhlIHJlYWwg cHJvYmxlbSBpcyB0aGF0IHRoZSB0ZXN0IHdhcyBub3QgZGVzaWduZWQgdG8gaGFuZGxlIHRoZQo+ Pj4+IGNhc2UKPj4+PiB3aGVyZSB0aGUgZnJlcSBjb3VsZCBkcm9wIGJlbG93IG1pbiBhbmQgcHJv YmFibHkgbmVlZHMgdG8gYmUKPj4+PiByZS1kZXNpZ25lZC4gIEkndmUgYmVlbiB0cnlpbmcgdG8g ZmluZCBhIHF1aWNrIGZpeCB2cy4gYSBjb21wbGV0ZQo+Pj4+IG92ZXJoYXVsIGFzIHRoaXMgaXNu J3QgcmVhbGx5IGEgcHJpb3JpdHkgZm9yIG1lLgo+Pj4gSSB0aGluayB3ZSBvbmx5IG5lZWQgeW91 ciBmaXJzdCBwYXRjaCBhbmQgaWYgdGhlcmUgaXMgYW55IGZhaWx1cmUKPj4+IGFmdGVyCj4+PiB0 aGF0IHdlIGhhdmUgdG8gcm9vdCBjYXVzZSB0aGF0IGFuZCBmaXggaXQgcHJvcGVybHkuCj4+Pgo+ Pj4gLS1JbXJlCj4+IFlvdSdyZSByaWdodC4gIEknbSB3b3JraW5nIHdpdGggQlhUIGFuZCBpdCBz ZWVtcyBsaWtlIGl0J3MgZ290IHNvbWUKPj4gdW5pcXVlIGlzc3VlcyB3aXRoIFJQUy4gIEkganVz dCBzZW50IGEgbmV3IHBhdGNoIGJhc2VkIG9uIHRoZSBmaXJzdAo+PiBvbmUKPj4gYnV0IHdpdGgg dGhlIGNoYW5nZXMgeW91IHN1Z2dlc3RlZCB0byBjaGVjayBmb3IgPT1pZGxlIGluc3RlYWQgb2YK Pj4gPD1taW4uCj4+Cj4+IE1heWJlIHlvdSBoYXZlIHNvbWUgaW5zaWdodHMgaW50byB3aGF0IEkn bSBzZWVpbmcgd2l0aCBCWFQ/ICBUaGUgZmlyc3QKPj4gcHJvYmxlbSBJIGhhZCB3YXMgdGhhdCBJ IHdvdWxkIHNlZSB0aHJlc2hvbGQgdXAgaW50ZXJydXB0cyBidXQgbm90IGFueQo+PiB0aHJlc2hv bGQgZG93biBpbnRlcnJ1cHRzLiAgVGhlIG1pc3NpbmcgZG93biBpbnRlcnJ1cHRzIHdhcyByZWxh dGVkIHRvCj4+IHRoZSBCSU9TIHNldHRpbmcuICBJIGhhZCBydW50aW1lIFBNIGRpc2FibGVkIHNv IGl0IHNlZW1zIHN0cmFuZ2UgdGhhdCBJCj4+IHdhcyBnZXR0aW5nIHRoZSB1cCBpbnRlcnJ1cHRz LgpIb3cgd2FzIHJ1bnRpbWUgcE0gZGlzYWJsZWQ/IFRoaW5rIFJQTSBhbmQgUlBTIGFyZSBub3Qg cmVsYXRlZC4KPiBZZXMsIEkgc2F3IHRoaXMgdG9vLiBJIHdvbmRlciBpZiB3ZSBjb3VsZCBjaGVj ayB0aGlzIHNvbWVob3cgYW5kIG5vdAo+IGVuYWJsZSBSUFMgaWYgQklPUyBoYXNuJ3Qgc2V0IHRo aW5ncyB1cCBwcm9wZXJseS4gU2FnYXIgaGFzIGEgcGF0Y2gKPiB0aGF0IGNoZWNrcyB0aGUgUkM2 IHNldHVwIFsxXTsgdGhhdCdzIG5vdCBleGFjdGx5IFJQUywgYnV0IHNpbmNlIHRoZXkKPiBhcmUg c2V0dXAgYXQgdGhlIHNhbWUgcGxhY2UgSSB0aGluayB3ZSBjb3VsZCB1c2UgdGhhdCBmb3Igbm93 IGZvciBSUFMKPiB0b28uCkZZSSBUdXJibyBpcyBkaXNhYmxlZCB1bnRpbCBBMSBkdWUgdG8gaXNz dWVzIHdpdGggUkM2IGVuYWJsZWQuIFdoaWNoIApyZWdpc3RlcnMgZXhhY3RseSBkbyB3ZSBuZWVk IHRvIGNoZWNrCmZyb20gQklPUyBSUFMgcHJvZ3JhbW1pbmcgcGVyc3BlY3RpdmU/IEkgc2VlIHRo YXQgUlAgY29udHJvbCBpcyBzZXQgYnkgCkJJT1MgLi4uIElzIHRoYXQgY2hlY2sgZW5vdWdoPwo+ Cj4+IFdpdGggdGhlIEJJT1Mgc2V0dGluZyBjb3JyZWN0ZWQsIHRoZSBkcml2ZXIgc3RhcnRlZCBk aXNhYmxpbmcgdGhlIGRvd24KPj4gaW50ZXJydXB0cyBvbmNlIHRoZSBmcmVxIGRyb3BwZWQgdG8g bWluIG9yIGp1c3QgYmVsb3cgYmVjYXVzZSBvZiB0aGUgbWluCj4+IHZzLiBpZGxlIGRpZmZlcmVu Y2UuICBJIGhhdmUgYSBwYXRjaCBmb3IgdGhpcyB0aGF0IEknbGwgc2VuZCBzaG9ydGx5Lgo+IEht LCB0aGF0J3Mgbm90IG5lY2Vzc2FyaWx5IGEgcHJvYmxlbS4gVG8gcmVhY2ggdGhlIGlkbGUgZnJl cXVlbmN5IHdlCj4gZG9uJ3QgZGVwZW5kIG9uIHRoZSB1cC9kb3duIGludGVycnVwdHMuIFRoZSBp ZGxlIGZyZXF1ZW5jeSBnZXRzIHNldAo+IGV4cGxpY2l0bHkgZnJvbSBpbnRlbF9tYXJrX2lkbGUo KSwgc28gaWYgeW91IGRvbid0IHJlYWNoIHRoZSBpZGxlIGZyZXEKPiB0aGVuIHRoaXMgZnVuY3Rp b24gZG9lc24ndCBnZXQgY2FsbGVkIGZvciBzb21lIHJlYXNvbi4gT3IgYXMgSSBzYWlkCj4gZWFy bGllciB3ZSBqdXN0IGRvbid0IHdhaXQgZW5vdWdoIGluIGRvX2xvYWRfZ3B1KCkgb3IgaWRsZV9j aGVjaygpIGluCj4gdGhlIHRlc3QsIHNvIHdlIHJlYWQgb3V0IGN1ci1mcmVxIGJlZm9yZSBpbnRl bF9tYXJrX2lkbGUoKSB3b3VsZCBnZXQKPiBjYWxsZWQuCj4KPj4gVGhlIHJlbWFpbmluZyBpc3N1 ZSBzZWVtcyB0byBiZSBzb21lIHR5cGUgb2YgdGltaW5nIGlzc3VlLiBJJ3ZlIGhhZAo+PiB0bwo+ PiBhZGQgYSAzNTAwMHVzIHNsZWVwIGJldHdlZW4gdXBkYXRpbmcgdGhlIGludGVycnVwdCBlbmFi bGUgcmVnaXN0ZXIKPj4gKDB4QTE2OCkgYW5kIHRoZSBwb3N0aW5nIHJlYWQgb2YgZnJlcS4gcmVn aXN0ZXIgKDB4QTAwOCksIG90aGVyd2lzZQo+PiBpdAo+PiBhY3RzIGxpa2UgdGhlIGNoYW5nZSB0 byB0aGUgaW50ZXJydXB0IGVuYWJsZSByZWdpc3RlciBuZXZlciBoYXBwZW5lZC4KPj4gTm9uZSBv ZiB0aGUgZG9jdW1lbnRhdGlvbiBJIGhhdmUgaW5kaWNhdGVzIHRoYXQgdGhpcyBpcyBuZWVkZWQu Cj4gV2hhdCBoYXBwZW5zIGV4YWN0bHk/IFRoZSBmcmVxdWVuY3kgZ2V0cyBzdHVjayBhYm92ZSBt aW4tZnJlcSBhbmQgeW91Cj4gbmV2ZXIgZ2V0IGEgZG93biBpbnRlcnJ1cHQ/IE5vdCBzdXJlIGhv dyB0aGlzIGNvdWxkIGhhcHBlbiwgYnV0IHRoZXJlCj4gaXMgYW4gaW50ZXJlc3RpbmcgY29tbWVu dCBpbiBpbnRlbF9ycHNfbGltaXRzKCkgYWJvdXQgdGhpcyBzY2VuYXJpby4KPgo+IC0tSW1yZQo+ Cj4gWzFdIGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaW50ZWwtZ2Z4LzIw MTUtTm92ZW1iZXIvMDc5MzgKPiA2Lmh0bWwKPgo+Cj4+IEJvYgo+Pgo+Pgo+Pj4+Pj4gLS0tCj4+ Pj4+PiAgIHRlc3RzL3BtX3Jwcy5jIHwgNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0KPj4+Pj4+IC0tLS0KPj4+Pj4+IC0tLS0tCj4+Pj4+PiAgIDEgZmlsZSBjaGFuZ2Vk LCAzNCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKPj4+Pj4+Cj4+Pj4+PiBkaWZmIC0t Z2l0IGEvdGVzdHMvcG1fcnBzLmMgYi90ZXN0cy9wbV9ycHMuYwo+Pj4+Pj4gaW5kZXggZjkxOTYy NS4uOTYyMjVjZSAxMDA2NDQKPj4+Pj4+IC0tLSBhL3Rlc3RzL3BtX3Jwcy5jCj4+Pj4+PiArKysg Yi90ZXN0cy9wbV9ycHMuYwo+Pj4+Pj4gQEAgLTM2NCw3ICszNjQsNyBAQCBzdGF0aWMgaW50IGdl dF9od19yb3VuZGVkX2ZyZXEoaW50Cj4+Pj4+PiB0YXJnZXQpCj4+Pj4+PiAgIAlyZXR1cm4gcmV0 Owo+Pj4+Pj4gICB9Cj4+Pj4+PiAgIAo+Pj4+Pj4gLXN0YXRpYyB2b2lkIG1pbl9tYXhfY29uZmln KHZvaWQgKCpjaGVjaykodm9pZCksIGJvb2wKPj4+Pj4+IGxvYWRfZ3B1KQo+Pj4+Pj4gK3N0YXRp YyB2b2lkIG1pbl9tYXhfY29uZmlnKHZvaWQgKCpjaGVjaykodm9pZCksIHZvaWQKPj4+Pj4+ICgq Y2hlY2syKSh2b2lkKSwgYm9vbCBsb2FkX2dwdSkKPj4+Pj4+ICAgewo+Pj4+Pj4gICAJaW50IGZt aWQgPSAob3JpZ2ZyZXFzW1JQbl0gKyBvcmlnZnJlcXNbUlAwXSkgLyAyOwo+Pj4+Pj4gICAKPj4+ Pj4+IEBAIC0zODQsNyArMzg0LDcgQEAgc3RhdGljIHZvaWQgbWluX21heF9jb25maWcodm9pZAo+ Pj4+Pj4gKCpjaGVjaykodm9pZCksCj4+Pj4+PiBib29sIGxvYWRfZ3B1KQo+Pj4+Pj4gICAJd3Jp dGV2YWwoc3R1ZmZbTUFYXS5maWxwLCBvcmlnZnJlcXNbUlAwXSk7Cj4+Pj4+PiAgIAlpZiAobG9h ZF9ncHUpCj4+Pj4+PiAgIAkJZG9fbG9hZF9ncHUoKTsKPj4+Pj4+IC0JY2hlY2soKTsKPj4+Pj4+ ICsJY2hlY2syKCk7Cj4+Pj4+PiAgIAo+Pj4+Pj4gICAJaWd0X2RlYnVnKCJcbkluY3JlYXNlIG1p biB0byBtaWRwb2ludC4uLlxuIik7Cj4+Pj4+PiAgIAl3cml0ZXZhbChzdHVmZltNSU5dLmZpbHAs IGZtaWQpOwo+Pj4+Pj4gQEAgLTQxMiw3ICs0MTIsNyBAQCBzdGF0aWMgdm9pZCBtaW5fbWF4X2Nv bmZpZyh2b2lkCj4+Pj4+PiAoKmNoZWNrKSh2b2lkKSwKPj4+Pj4+IGJvb2wgbG9hZF9ncHUpCj4+ Pj4+PiAgIAl3cml0ZXZhbChzdHVmZltNSU5dLmZpbHAsIG9yaWdmcmVxc1tSUG5dKTsKPj4+Pj4+ ICAgCWlmIChsb2FkX2dwdSkKPj4+Pj4+ICAgCQlkb19sb2FkX2dwdSgpOwo+Pj4+Pj4gLQljaGVj aygpOwo+Pj4+Pj4gKwljaGVjazIoKTsKPj4+Pj4+ICAgCj4+Pj4+PiAgIAlpZ3RfZGVidWcoIlxu RGVjcmVhc2UgbWluIGJlbG93IFJQbgo+Pj4+Pj4gKGludmFsaWQpLi4uXG4iKTsKPj4+Pj4+ICAg CXdyaXRldmFsX2ludmFsKHN0dWZmW01JTl0uZmlscCwgMCk7Cj4+Pj4+PiBAQCAtNDIwLDExICs0 MjAsMTEgQEAgc3RhdGljIHZvaWQgbWluX21heF9jb25maWcodm9pZAo+Pj4+Pj4gKCpjaGVjayko dm9pZCksCj4+Pj4+PiBib29sIGxvYWRfZ3B1KQo+Pj4+Pj4gICAKPj4+Pj4+ICAgCWlndF9kZWJ1 ZygiXG5EZWNyZWFzZSBtYXggdG8gbWlkcG9pbnQuLi5cbiIpOwo+Pj4+Pj4gICAJd3JpdGV2YWwo c3R1ZmZbTUFYXS5maWxwLCBmbWlkKTsKPj4+Pj4+IC0JY2hlY2soKTsKPj4+Pj4+ICsJY2hlY2sy KCk7Cj4+Pj4+PiAgIAo+Pj4+Pj4gICAJaWd0X2RlYnVnKCJcbkRlY3JlYXNlIG1heCB0byBSUG4u Li5cbiIpOwo+Pj4+Pj4gICAJd3JpdGV2YWwoc3R1ZmZbTUFYXS5maWxwLCBvcmlnZnJlcXNbUlBu XSk7Cj4+Pj4+PiAtCWNoZWNrKCk7Cj4+Pj4+PiArCWNoZWNrMigpOwo+Pj4+Pj4gICAKPj4+Pj4+ ICAgCWlndF9kZWJ1ZygiXG5EZWNyZWFzZSBtYXggYmVsb3cgUlBuCj4+Pj4+PiAoaW52YWxpZCku Li5cbiIpOwo+Pj4+Pj4gICAJd3JpdGV2YWxfaW52YWwoc3R1ZmZbTUFYXS5maWxwLCAwKTsKPj4+ Pj4+IEBAIC00MzYsMTEgKzQzNiwxMSBAQCBzdGF0aWMgdm9pZCBtaW5fbWF4X2NvbmZpZyh2b2lk Cj4+Pj4+PiAoKmNoZWNrKSh2b2lkKSwKPj4+Pj4+IGJvb2wgbG9hZF9ncHUpCj4+Pj4+PiAgIAo+ Pj4+Pj4gICAJaWd0X2RlYnVnKCJcbkluY3JlYXNlIG1heCB0byBtaWRwb2ludC4uLlxuIik7Cj4+ Pj4+PiAgIAl3cml0ZXZhbChzdHVmZltNQVhdLmZpbHAsIGZtaWQpOwo+Pj4+Pj4gLQljaGVjaygp Owo+Pj4+Pj4gKwljaGVjazIoKTsKPj4+Pj4+ICAgCj4+Pj4+PiAgIAlpZ3RfZGVidWcoIlxuSW5j cmVhc2UgbWF4IHRvIFJQMC4uLlxuIik7Cj4+Pj4+PiAgIAl3cml0ZXZhbChzdHVmZltNQVhdLmZp bHAsIG9yaWdmcmVxc1tSUDBdKTsKPj4+Pj4+IC0JY2hlY2soKTsKPj4+Pj4+ICsJY2hlY2syKCk7 Cj4+Pj4+PiAgIAo+Pj4+Pj4gICAJaWd0X2RlYnVnKCJcbkluY3JlYXNlIG1heCBhYm92ZSBSUDAK Pj4+Pj4+IChpbnZhbGlkKS4uLlxuIik7Cj4+Pj4+PiAgIAl3cml0ZXZhbF9pbnZhbChzdHVmZltN QVhdLmZpbHAsIG9yaWdmcmVxc1tSUDBdICsKPj4+Pj4+IDEwMDApOwo+Pj4+Pj4gQEAgLTQ2MSw3 ICs0NjEsNyBAQCBzdGF0aWMgdm9pZCBiYXNpY19jaGVjayh2b2lkKQo+Pj4+Pj4gICAKPj4+Pj4+ ICAgI2RlZmluZSBJRExFX1dBSVRfVElNRVNURVBfTVNFQyAxMDAKPj4+Pj4+ICAgI2RlZmluZSBJ RExFX1dBSVRfVElNRU9VVF9NU0VDIDEwMDAwCj4+Pj4+PiAtc3RhdGljIHZvaWQgaWRsZV9jaGVj ayh2b2lkKQo+Pj4+Pj4gK3N0YXRpYyB2b2lkIGlkbGVfY2hlY2tfbWluKHZvaWQpCj4+Pj4+PiAg IHsKPj4+Pj4+ICAgCWludCBmcmVxc1tOVU1GUkVRXTsKPj4+Pj4+ICAgCWludCB3YWl0ID0gMDsK Pj4+Pj4+IEBAIC00ODIsNiArNDgyLDI3IEBAIHN0YXRpYyB2b2lkIGlkbGVfY2hlY2sodm9pZCkK Pj4+Pj4+ICAgCWlndF9kZWJ1ZygiUmVxdWlyZWQgJWQgbXNlYyB0byByZWFjaCBjdXI8PW1pblxu IiwKPj4+Pj4+IHdhaXQpOwo+Pj4+Pj4gICB9Cj4+Pj4+PiAgIAo+Pj4+Pj4gK3N0YXRpYyB2b2lk IGlkbGVfY2hlY2tfaWRsZSh2b2lkKQo+Pj4+Pj4gK3sKPj4+Pj4+ICsJaW50IGZyZXFzW05VTUZS RVFdOwo+Pj4+Pj4gKwlpbnQgd2FpdCA9IDA7Cj4+Pj4+PiArCj4+Pj4+PiArCS8qIE1vbml0b3Ig ZnJlcXVlbmNpZXMgdW50aWwgY3VyIHNldHRsZXMgZG93biB0bwo+Pj4+Pj4gbWluLAo+Pj4+Pj4g d2hpY2gKPj4+Pj4+IHNob3VsZAo+Pj4+Pj4gKwkgKiBoYXBwZW4gd2l0aGluIHRoZSBhbGxvdHRl ZCB0aW1lICovCj4+Pj4+PiArCWRvIHsKPj4+Pj4+ICsJCXJlYWRfZnJlcXMoZnJlcXMpOwo+Pj4+ Pj4gKwkJZHVtcChmcmVxcyk7Cj4+Pj4+PiArCQljaGVja2l0KGZyZXFzKTsKPj4+Pj4+ICsJCWlm IChmcmVxc1tDVVJdID09IGZyZXFzW1JQbl0pCj4+Pj4+PiArCQkJYnJlYWs7Cj4+Pj4+PiArCQl1 c2xlZXAoMTAwMCAqIElETEVfV0FJVF9USU1FU1RFUF9NU0VDKTsKPj4+Pj4+ICsJCXdhaXQgKz0g SURMRV9XQUlUX1RJTUVTVEVQX01TRUM7Cj4+Pj4+PiArCX0gd2hpbGUgKHdhaXQgPCBJRExFX1dB SVRfVElNRU9VVF9NU0VDKTsKPj4+Pj4+ICsKPj4+Pj4+ICsJaWd0X2Fzc2VydF9lcShmcmVxc1tD VVJdLCBmcmVxc1tSUG5dKTsKPj4+Pj4+ICsJaWd0X2RlYnVnKCJSZXF1aXJlZCAlZCBtc2VjIHRv IHJlYWNoIGN1cj1pZGxlXG4iLAo+Pj4+Pj4gd2FpdCk7Cj4+Pj4+PiArfQo+Pj4+Pj4gKwo+Pj4+ Pj4gICAjZGVmaW5lIExPQURFRF9XQUlUX1RJTUVTVEVQX01TRUMgMTAwCj4+Pj4+PiAgICNkZWZp bmUgTE9BREVEX1dBSVRfVElNRU9VVF9NU0VDIDMwMDAKPj4+Pj4+ICAgc3RhdGljIHZvaWQgbG9h ZGVkX2NoZWNrKHZvaWQpCj4+Pj4+PiBAQCAtNTc3LDcgKzU5OCw3IEBAIHN0YXRpYyB2b2lkIHJl c2V0KHZvaWQpCj4+Pj4+PiAgIAo+Pj4+Pj4gICAJaWd0X2RlYnVnKCJSZW1vdmluZyBsb2FkLi4u XG4iKTsKPj4+Pj4+ICAgCWxvYWRfaGVscGVyX3N0b3AoKTsKPj4+Pj4+IC0JaWRsZV9jaGVjaygp Owo+Pj4+Pj4gKwlpZGxlX2NoZWNrX21pbigpOwo+Pj4+Pj4gICB9Cj4+Pj4+PiAgIAo+Pj4+Pj4g ICAvKgo+Pj4+Pj4gQEAgLTYzNSw3ICs2NTYsNyBAQCBzdGF0aWMgdm9pZCBibG9ja2luZyh2b2lk KQo+Pj4+Pj4gICAJbWF0Y2hpdChwcmVfZnJlcXMsIHBvc3RfZnJlcXMpOwo+Pj4+Pj4gICAKPj4+ Pj4+ICAgCWlndF9kZWJ1ZygiUmVtb3ZpbmcgbG9hZC4uLlxuIik7Cj4+Pj4+PiAtCWlkbGVfY2hl Y2soKTsKPj4+Pj4+ICsJaWRsZV9jaGVja19taW4oKTsKPj4+Pj4+ICAgfQo+Pj4+Pj4gICAKPj4+ Pj4+ICAgc3RhdGljIHZvaWQgcG1fcnBzX2V4aXRfaGFuZGxlcihpbnQgc2lnKQo+Pj4+Pj4gQEAg LTY4NiwxNCArNzA3LDE0IEBAIGlndF9tYWluCj4+Pj4+PiAgIAl9Cj4+Pj4+PiAgIAo+Pj4+Pj4g ICAJaWd0X3N1YnRlc3QoImJhc2ljLWFwaSIpCj4+Pj4+PiAtCQltaW5fbWF4X2NvbmZpZyhiYXNp Y19jaGVjaywgZmFsc2UpOwo+Pj4+Pj4gKwkJbWluX21heF9jb25maWcoYmFzaWNfY2hlY2ssIGJh c2ljX2NoZWNrLAo+Pj4+Pj4gZmFsc2UpOwo+Pj4+Pj4gICAKPj4+Pj4+ICAgCWlndF9zdWJ0ZXN0 KCJtaW4tbWF4LWNvbmZpZy1pZGxlIikKPj4+Pj4+IC0JCW1pbl9tYXhfY29uZmlnKGlkbGVfY2hl Y2ssIHRydWUpOwo+Pj4+Pj4gKwkJbWluX21heF9jb25maWcoaWRsZV9jaGVja19taW4sCj4+Pj4+ PiBpZGxlX2NoZWNrX2lkbGUsCj4+Pj4+PiB0cnVlKTsKPj4+Pj4+ICAgCj4+Pj4+PiAgIAlpZ3Rf c3VidGVzdCgibWluLW1heC1jb25maWctbG9hZGVkIikgewo+Pj4+Pj4gICAJCWxvYWRfaGVscGVy X3J1bihISUdIKTsKPj4+Pj4+IC0JCW1pbl9tYXhfY29uZmlnKGxvYWRlZF9jaGVjaywgZmFsc2Up Owo+Pj4+Pj4gKwkJbWluX21heF9jb25maWcobG9hZGVkX2NoZWNrLCBsb2FkZWRfY2hlY2ssCj4+ Pj4+PiBmYWxzZSk7Cj4+Pj4+PiAgIAkJbG9hZF9oZWxwZXJfc3RvcCgpOwo+Pj4+Pj4gICAJfQo+ Pj4+Pj4gICAKPj4+Pgo+Pj4+Cj4+Cj4+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==