From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kumar, Shobhit" Subject: Re: [PATCH] drm/i915: Wait for PP cycle delay only if panel is in power off sequence Date: Fri, 11 Dec 2015 17:11:23 +0530 Message-ID: <566AB663.6000205@linux.intel.com> References: <1449667308-24296-1-git-send-email-shobhit.kumar@intel.com> <20151209135711.GE4437@intel.com> <20151209150453.GA29974@nuc-i3427.alporthouse.com> <20151209160517.GH4437@intel.com> <56694656.8040607@linux.intel.com> <20151210131537.GO4437@intel.com> <20151210133845.GR4437@intel.com> <56698E85.2090704@intel.com> <20151210150210.GA4437@intel.com> <566AB2B1.90107@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id B4F306EE15 for ; Fri, 11 Dec 2015 03:41:29 -0800 (PST) In-Reply-To: <566AB2B1.90107@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Thulasimani, Sivakumar" , =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: Shobhit Kumar , intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gMTIvMTEvMjAxNSAwNDo1NSBQTSwgVGh1bGFzaW1hbmksIFNpdmFrdW1hciB3cm90ZToKPgo+ Cj4gT24gMTIvMTAvMjAxNSA4OjMyIFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+IE9uIFRo dSwgRGVjIDEwLCAyMDE1IGF0IDA4OjA5OjAxUE0gKzA1MzAsIFRodWxhc2ltYW5pLCBTaXZha3Vt YXIgd3JvdGU6Cj4+Pgo+Pj4gT24gMTIvMTAvMjAxNSA3OjA4IFBNLCBWaWxsZSBTeXJqw6Rsw6Qg d3JvdGU6Cj4+Pj4gT24gVGh1LCBEZWMgMTAsIDIwMTUgYXQgMDM6MTU6MzdQTSArMDIwMCwgVmls bGUgU3lyasOkbMOkIHdyb3RlOgo+Pj4+PiBPbiBUaHUsIERlYyAxMCwgMjAxNSBhdCAwMzowMTow MlBNICswNTMwLCBLdW1hciwgU2hvYmhpdCB3cm90ZToKPj4+Pj4+IE9uIDEyLzA5LzIwMTUgMDk6 MzUgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPj4+Pj4+PiBPbiBXZWQsIERlYyAwOSwgMjAx NSBhdCAwODo1OToyNlBNICswNTMwLCBTaG9iaGl0IEt1bWFyIHdyb3RlOgo+Pj4+Pj4+PiBPbiBX ZWQsIERlYyA5LCAyMDE1IGF0IDg6MzQgUE0sIENocmlzIFdpbHNvbgo+Pj4+Pj4+PiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPiB3cm90ZToKPj4+Pj4+Pj4+IE9uIFdlZCwgRGVjIDA5LCAyMDE1 IGF0IDA4OjA3OjEwUE0gKzA1MzAsIFNob2JoaXQgS3VtYXIgd3JvdGU6Cj4+Pj4+Pj4+Pj4gT24g V2VkLCBEZWMgOSwgMjAxNSBhdCA3OjI3IFBNLCBWaWxsZSBTeXJqw6Rsw6QKPj4+Pj4+Pj4+PiA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4+PiBPbiBXZWQs IERlYyAwOSwgMjAxNSBhdCAwNjo1MTo0OFBNICswNTMwLCBTaG9iaGl0IEt1bWFyIHdyb3RlOgo+ Pj4+Pj4+Pj4+Pj4gRHVyaW5nIHJlc3VtZSwgd2hpbGUgdHVybmluZyB0aGUgRURQIHBhbmVsIHBv d2VyIG9uLCB3ZSBuZWVkCj4+Pj4+Pj4+Pj4+PiBub3Qgd2FpdAo+Pj4+Pj4+Pj4+Pj4gYmxpbmRs eSBmb3IgcGFuZWxfcG93ZXJfY3ljbGVfZGVsYXkuIENoZWNrIGlmIHBhbmVsIHBvd2VyCj4+Pj4+ Pj4+Pj4+PiBkb3duIHNlcXVlbmNlCj4+Pj4+Pj4+Pj4+PiBpbiBwcm9ncmVzcyBhbmQgdGhlbiBv bmx5IHdhaXQuIFRoaXMgaW1wcm92ZXMgb3VyIHJlc3VtZQo+Pj4+Pj4+Pj4+Pj4gdGltZSBzaWdu aWZpY2FudGx5Lgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFNob2Jo aXQgS3VtYXIgPHNob2JoaXQua3VtYXJAaW50ZWwuY29tPgo+Pj4+Pj4+Pj4+Pj4gLS0tCj4+Pj4+ Pj4+Pj4+PiAgICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyB8IDE3ICsrKysrKysr KysrKysrKystCj4+Pj4+Pj4+Pj4+PiAgICAgMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+Pj4+Pj4+Pj4+Pj4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+Pj4+Pj4+Pj4+PiBpbmRleCBmMzM1YzkyLi4xMGVjNjY5 IDEwMDY0NAo+Pj4+Pj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+Pj4+Pj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+Pj4+ Pj4+Pj4+Pj4gQEAgLTYxNyw2ICs2MTcsMjAgQEAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxf cG93ZXIoc3RydWN0Cj4+Pj4+Pj4+Pj4+PiBpbnRlbF9kcCAqaW50ZWxfZHApCj4+Pj4+Pj4+Pj4+ PiAgICAgICAgICByZXR1cm4gKEk5MTVfUkVBRChfcHBfc3RhdF9yZWcoaW50ZWxfZHApKSAmIFBQ X09OKQo+Pj4+Pj4+Pj4+Pj4gIT0gMDsKPj4+Pj4+Pj4+Pj4+ICAgICB9Cj4+Pj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+Pj4gK3N0YXRpYyBib29sIGVkcF9wYW5lbF9vZmZfc2VxKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCj4+Pj4+Pj4+Pj4+PiArewo+Pj4+Pj4+Pj4+Pj4gKyAgICAgc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7Cj4+Pj4+Pj4+Pj4+PiAr ICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+Pj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+Pj4gKyAgICAgbG9ja2RlcF9hc3NlcnRfaGVsZCgm ZGV2X3ByaXYtPnBwc19tdXRleCk7Cj4+Pj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4+PiArICAgICBp ZiAoSVNfVkFMTEVZVklFVyhkZXYpICYmCj4+Pj4+Pj4+Pj4+PiArICAgICAgICAgaW50ZWxfZHAt PnBwc19waXBlID09IElOVkFMSURfUElQRSkKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOwo+Pj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+Pj4gKyAgICAgcmV0dXJuIChJOTE1 X1JFQUQoX3BwX3N0YXRfcmVnKGludGVsX2RwKSkgJgo+Pj4+Pj4+Pj4+Pj4gUFBfU0VRVUVOQ0Vf UE9XRVJfRE9XTikgIT0gMDsKPj4+Pj4+Pj4+Pj4+ICt9Cj4+Pj4+Pj4+Pj4+IFRoaXMgZG9lbnMn dCBtYWtlIHNlbnNlIHRvIG1lLiBUaGUgcG93ZXIgZG93biBjeWNsZSBtYXkgaGF2ZQo+Pj4+Pj4+ Pj4+PiBjb21wbGV0ZWQganVzdCBiZWZvcmUsIGFuZCBzbyB0aGlzIHdvdWxkIGNsYWltIHdlIGRv bid0IGhhdmUgdG8KPj4+Pj4+Pj4+Pj4gd2FpdCBmb3IgdGhlIHBvd2VyX2N5Y2xlX2RlbGF5Lgo+ Pj4+Pj4+Pj4+IE5vdCBzdXJlIEkgdW5kZXJzdGFuZCB5b3VyIGNvbmNlcm4gY29ycmVjdGx5LiBZ b3UgYXJlIHJpZ2h0LAo+Pj4+Pj4+Pj4+IHBvd2VyCj4+Pj4+Pj4+Pj4gZG93biBjeWNsZSBtYXkg aGF2ZSBjb21wbGV0ZWQganVzdCBiZWZvcmUgYW5kIGlmIGl0IGhhcyB0aGVuCj4+Pj4+Pj4+Pj4g d2UgZG9uJ3QKPj4+Pj4+Pj4+PiBuZWVkIHRvIHdhaXQuIEJ1dCBpbiBjYXNlIHRoZSBwb3dlciBk b3duIGN5Y2xlIGlzIGluIHByb2dyZXNzCj4+Pj4+Pj4+Pj4gYXMgcGVyCj4+Pj4+Pj4+Pj4gaW50 ZXJuYWwgc3RhdGUsIHRoZW4gd2UgbmVlZCB0byB3YWl0IGZvciBpdCB0byBjb21wbGV0ZS4gVGhp cwo+Pj4+Pj4+Pj4+IHdpbGwKPj4+Pj4+Pj4+PiBoYXBwZW4gZm9yIGV4YW1wbGUgaW4gbm9uLXN1 c3BlbmQgZGlzYWJsZSBwYXRoIGFuZCB3aWxsIGJlCj4+Pj4+Pj4+Pj4gaGFuZGxlZAo+Pj4+Pj4+ Pj4+IGNvcnJlY3RseS4gSW4gY2FzZSBvZiBhY3R1YWwgc3VzcGVuZC9yZXN1bWUsIHRoaXMgd291 bGQgaGF2ZQo+Pj4+Pj4+Pj4+IHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQgYW5kIHdpbGwgc2tpcCB0 aGUgd2FpdCBhcyBpdCBpcyBub3QgbmVlZGVkCj4+Pj4+Pj4+Pj4gYmVmb3JlIGVuYWJsaW5nIHBh bmVsIHBvd2VyLgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4+PiAgICAgc3Rh dGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfdmRkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+ Pj4+Pj4+Pj4+PiAgICAgewo+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7Cj4+Pj4+Pj4+Pj4+PiBAQCAtMjAyNSw3 ICsyMDM5LDggQEAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX29uKHN0cnVjdAo+Pj4+Pj4+Pj4+Pj4g aW50ZWxfZHAgKmludGVsX2RwKQo+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgcG9ydF9u YW1lKGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydCkpKQo+Pj4+Pj4+Pj4+Pj4gICAgICAg ICAgICAgICAgICByZXR1cm47Cj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gLSAgICAgd2FpdF9w YW5lbF9wb3dlcl9jeWNsZShpbnRlbF9kcCk7Cj4+Pj4+Pj4+Pj4+PiArICAgICBpZiAoZWRwX3Bh bmVsX29mZl9zZXEoaW50ZWxfZHApKQo+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICB3YWl0X3Bh bmVsX3Bvd2VyX2N5Y2xlKGludGVsX2RwKTsKPj4+Pj4+Pj4+IExvb2tpbmcgaW4gZnJvbSB0aGUg c2lkZSwgSSBoYXZlIG5vIGlkZWEgd2hhdCB0aGlzIGlzIG1lYW50IHRvCj4+Pj4+Pj4+PiBkby4g QXQKPj4+Pj4+Pj4+IHRoZSB2ZXJ5IGxlYXN0IHlvdSBuZWVkIHlvdXIgZXhwbGFuYXRvcnkgcGFy YWdyYXBoIGhlcmUgd2hpY2gKPj4+Pj4+Pj4+IHdvdWxkCj4+Pj4+Pj4+PiBpbmNsdWRlIHdoYXQg ZXhhY3RseSB5b3UgYXJlIHdhaXRpbmcgZm9yIGF0IHRoZSBzdGFydCBvZgo+Pj4+Pj4+Pj4gZWRw X3BhbmVsX29uCj4+Pj4+Pj4+PiAoYW5kIHBsZWFzZSB0cnkgYW5kIGZpbmQgYSBiZXR0ZXIgbmFt ZSBmb3IgZWRwX3BhbmVsX29mZl9zZXEoKSkuCj4+Pj4+Pj4+IEkgd2lsbCBhZGQgYSBjb21tZW50 LiBCYXNpY2FsbHkgSSBhbSBub3QgYWRkaXRpb25hbGx5IHdhaXRpbmcsIGJ1dAo+Pj4+Pj4+PiBj b252ZXJ0aW5nIHRoZSB3YWl0IHdoaWNoIHdhcyBhbHJlYWR5IHRoZXJlIHRvIGEgY29uZGl0aW9u YWwKPj4+Pj4+Pj4gd2FpdC4gVGhlCj4+Pj4+Pj4+IGVkcF9wYW5lbF9vZmZfc2VxLCBjaGVja3Mg aWYgcGFuZWwgcG93ZXIgZG93biBzZXF1ZW5jZSBpcyBpbgo+Pj4+Pj4+PiBwcm9ncmVzcy4KPj4+ Pj4+Pj4gSW4gdGhhdCBjYXNlIHdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIHBhbmVsIHBvd2VyIGN5 Y2xlIGRlbGF5LiBJZgo+Pj4+Pj4+PiBpdCBpcwo+Pj4+Pj4+PiBub3QgaW4gdGhhdCBzZXF1ZW5j ZSwgdGhlcmUgaXMgbm8gbmVlZCB0byB3YWl0LiBJIHdpbGwgbWFrZSBhbgo+Pj4+Pj4+PiBhdHRl bXB0Cj4+Pj4+Pj4+IGFnYWluIG9uIHRoZSBuYW1pbmcgaW4gbmV4dCBwYXRjaCB1cGRhdGUuCj4+ Pj4+Pj4gQXMgZmFyIEkgcmVtZWJlciB5b3UgbmVlZCB0byB3YWl0IGZvciBwb3dlcl9jeWNsZV9k ZWxheSBiZXR3ZWVuCj4+Pj4+Pj4gcG93ZXIKPj4+Pj4+PiBkb3duIGN5Y2xlIGFuZCBwb3dlciB1 cCBjeWNsZS4gWW91J3JlIHRyeWluZyB0byB0aHJvdyB0aGF0IHdhaXQgYXdheQo+Pj4+Pj4+IGVu dGlyZWx5LCB1bmxlc3MgdGhlIGZ1bmN0aW9uIGhhcHBlbnMgZ2V0IGNhbGxlZCB3aGlsZSB0aGUg cG93ZXIKPj4+Pj4+PiBkb3duCj4+Pj4+PiBZZXMgeW91IGFyZSByaWdodCBhbmQgSSByZWFsaXpl IEkgbWFkZSBhIG1pc3Rha2UgaW4gbXkgcGF0Y2ggd2hpY2ggaXMKPj4+Pj4+IG5vdCBjaGVja2lu ZyBQUF9DWUNMRV9ERUxBWV9BQ1RJVkUgYml0Lgo+Pj4+Pj4KPj4+Pj4+PiBjeWNsZSBpcyBzdGls bCBpbiBwcm9ncmVzcy4gV2Ugc2hvdWxkIGFscmVhZHkgb3B0aW1pemUgYXdheQo+Pj4+Pj4+IHJl ZHVuZGFudAo+Pj4+Pj4+IHdhaXRzIGJ5IHRyYWNraW5nIHRoZSBlbmQgb2YgdGhlIHBvd2VyIGRv d24gY3ljbGUgd2l0aCB0aGUgamlmZmllcwo+Pj4+Pj4+IHRyYWNraW5nLgo+Pj4+Pj4+Cj4+Pj4+ Pj4gQWN0dWFsbHkgbG9va2luZyBhdCB0aGUgY29kZSB0aGUgcG93ZXJfY3ljbGVfZGVsYXkgZ2V0 cyBjb3VudGVkIGZyb20KPj4+Pj4+PiB0aGUgc3RhcnQgb2YgdGhlIGxhc3QgcG93ZXIgZG93biBj eWNsZSwgc28gc3VwcG9zZWRseSBpdCdzIGFsd2F5cyBhdAo+Pj4+Pj4+IGxlYXN0IGFzIGxvbmcg YXMgdGhlIHBvd2VyIGRvd24gY3ljbGUsIGFuZCB0eXBpY2FsbHkgaXQncyBxdWl0ZSBhCj4+Pj4+ Pj4gYml0Cj4+Pj4+Pj4gbG9uZ2VyIHRoYXQgdGhhdC4gQnV0IHRoYXQgZG9lc24ndCBjaGFuZ2Ug dGhlIGZhY3QgdGhhdCB5b3UgY2FuJ3QKPj4+Pj4+PiBqdXN0IHNraXAgaXQgYmVjYXVzZSB0aGUg cG93ZXIgZG93biBjeWNsZSBkZWxheSBoYXBwZW5lZCB0byBlbmQKPj4+Pj4+PiBhbHJlYWR5Lgo+ Pj4+Pj4+Cj4+Pj4+Pj4gU28gd2hhdCB3ZSBkbyBub3cgaXM6Cj4+Pj4+Pj4gMS4gaW5pdGlhdGUg cG93ZXIgZG93biBjeWNsZQo+Pj4+Pj4+IDIuIGxhc3RfcG93ZXJfY3ljbGU9amlmZmllcwo+Pj4+ Pj4+IDMuIHdhaXQgZm9yIHBvd2VyIGRvd24gKEkgc3VwcG9zZSB0aGlzIGFjdHVhbGx5IHdhaXRz Cj4+Pj4+Pj4gICAgICAgdW50aWwgdGhlIHBvd2VyIGRvd24gZGVsYXkgaGFzIHBhc3NlZCBzaW5j ZSB0aGF0J3MKPj4+Pj4+PiAgICAgICBwcm9ncmFtbWVzIGludG8gdGhlIFBQUykuCj4+Pj4+Pj4g NC4gd2FpdCBmb3IgcG93ZXJfY3ljbGVfZGVsYXkgZnJvbSBsYXN0X3Bvd2VyX2N5Y2xlCj4+Pj4+ Pj4gNS4gaW5pdGlhdGUgcG93ZXIgdXAgY3ljbGUKPj4+Pj4+Pgo+Pj4+Pj4+IEkgdGhpbmsgd2l0 aCB5b3VyIHBhdGNoIHN0ZXAgNCB3b3VsZCBhbHdheXMgYmUgc2tpcHBlZCBzaW5jZSB0aGUKPj4+ Pj4+PiBwb3dlciBkb3duIGN5Y2xlIGhhcyBhbHJlYWR5IGVuZGVkLCBhbmQgdGhlbiB3ZSBmYWls IHRvIGhvbm9yIHRoZQo+Pj4+Pj4+IHBvd2VyIGN5Y2xlIGRlbGF5Lgo+Pj4+Pj4gWWVzLCBJIGFn cmVlLiBJIG1pc3NlZCBjaGVja2luZyBmb3IgUFBfQ1lDTEVfREVMQVlfQUNUSVZFLiBBZGRpbmcK Pj4+Pj4+IHRoYXQKPj4+Pj4+IGNoZWNrIHdpbGwgdGFrZSBjYXJlIG9mIHRoaXMgc2NlbmFyaW8g SSBndWVzcyA/Cj4+Pj4+IE5vcGUuIFRoZSB2ZGQgZm9yY2UgYml0IGRvZXNuJ3QgcmVzcGVjdCB0 aGUgUFBTIHN0YXRlIG1hY2hpbmUsIHNvIHdlCj4+Pj4+IG11c3QgZG8gdGhlIHdhaXRzIG1hbnVh bGx5IGluc3RlYWQuIEFuZCBpbiB0aGVvcnkgeW91ciBwYXRjaCB3b3VsZG4ndAo+Pj4+PiBkbyBh bnl0aGluZyBhbnl3YXkgc2luY2UgdGhlIHNsZWVwIGFscmVhZHkgdGFrZXMgaW50byBhY2NvdW50 IHdoZW4gdGhlCj4+Pj4+IHBvd2VyIGN5Y2xlIGRlbGF5IHN0YXJ0ZWQuCj4+Pj4+Cj4+Pj4+IFRo ZSBmYWN0IHRoYXQgd2UgdXNlIG1zbGVlcCgpIG1heSBhY3R1YWxseSBtYWtlIHRob3NlIHNsZWVw cyBzb21ld2hhdAo+Pj4+PiBsb25nZXIsIGFuZCBtYXliZSB3ZSBzaG91bGQgYWxzbyB0aGluayBh Ym91dCBzd2l0Y2hpbmcgdG8KPj4+Pj4gdXNsZWVwX3JhbmdlKCkKPj4+Pj4gaGVyZS4KPj4+PiBP aCwgYW5kIHdlIG1heSB3YW50IHRvIHN0b3AgdXNpbmcgdGhlIHBvd2VyIHNlcXVlbmNlciBmb3Jj ZWQgZGVsYXksCj4+Pj4gYXQgbGVhc3QgZm9yIHRoZSBwb3dlciB1cCBkZWxheSBzaW5jZSB3ZSBj b3VsZCB0aGVuIHNwZWVkIHVwIHRoZSBwb3dlcgo+Pj4+IHVwIHRpbWUgYnkgd2FpdGluZyBmb3Ig dGhlIGxvbmcgSFBEIGluc3RlYWQuIENsaW50IGV2ZW4gc2VudCBhIHBhdGNoCj4+Pj4gZm9yCj4+ Pj4gdGhhdCwgYnV0IEkgZG9uJ3QgdGhpbmsgaXQgYWN0dWFsbHkgY2hhbmdlIHRoZSBQUFMgZGVs YXlzLiBCdXQgbWF5YmUKPj4+PiB0aGUgUFBTIHdvbid0IHJlYWxseSBraWNrIGluIGR1ZSB0byBv dXIgdXNlIG9mIHRoZSB2ZGQgZm9yY2UgYml0IGR1cmluZwo+Pj4+IHBhbmVsIHBvd2VyIHVwPwo+ Pj4+Cj4+Pj4gVGhlIGJhaGF2aW91ciBvZiB0aGUgUFBTIGRlbGF5cyB2cy4gdGhlIHZkZCBmb3Jj ZSBiaXQgaXNuJ3QgYWN0dWFsbHkKPj4+PiBkb2N1bWVudGVkLCBzbyBpdCB3b3VsZCBiZSBzb21l dGhpbmcgdGhhdCBjb3VsZCBiZSBzdHVkaWVkIGEgYml0IGJ5Cj4+Pj4gYmFuZ2luZyBvbiB0aGUg aGFyZHdhcmUuIFByb2JhYmx5IGJlc3QgZG9uZSBvbiBhIG1hY2hpbmUgd2hlcmUgdGhlcmUncwo+ Pj4+IG5vIGxvY2FsIHBhbmVsIHRvIGF2b2lkIGRhbWFnaW5nIGl0IGlmIHRoaW5ncyBnbyBiYWQu Cj4+PiBpIHRoaW5rIGkgdXBkYXRlZCBhYm91dCB1c2luZyBocGQvZWRpZCByZWFkIGluc3RlYWQg b2Ygd2FpdGluZyBlbnRpcmUgVDMKPj4+IGRlbGF5IGZvciBwb3dlciBvbgo+Pj4gZHVyaW5nIElS QyBjaGF0IHNvbWV0aW1lIGJhY2sgdG8gZGFudmV0LiBpbiBzaG9ydCBpdCBkb2VzIG5vdCB3b3Jr Cj4+PiBhY3Jvc3MKPj4+IGFsbCBwYW5lbHMsIGl0IGNhdXNlcyBibG9vbWluZyBlZmZlY3Qgb24g c29tZSBwYW5lbHMgcmVzdWx0aW5nIGluIHBhbmVsCj4+PiBmYWlsaW5nCj4+PiB0byB0dXJuIG9u LCB3aGljaCB3aWxsIGFsc28gYWZmZWN0IHBhbmVsIGxpZmUuCj4+IDooIEkgd2FzIGhvcGluZyB3 ZSBjb3VsZCB1c2UgaXQgZm9yIGVEUCwgYnV0IEkgZ3Vlc3MgYmVpbmcgYW4gb3B0aW1pc3QKPj4g d2hlbiBpdCBjb21lcyB0byBoYXJkd2FyZSBuZXZlciBwYXlzIG9mZi4KPj4KPj4gSSB3b25kZXIg aWYgd2UgY291bGQgYXQgbGVhc3Qgc3RhcnQgZG9pbmcgc29tZSBvZiB0aGUgQVVYIGNvbW11bmlj YXRpb24KPj4gc29vbmVyLiBUaGF0IGlzLCBtYXliZSB3ZSBjYW4gZG8gYXQgbGVhc3QgdGhlIERQ X0xJTktfQldfU0VUIGFuZCB0aGUKPj4gRFBfRE9XTlNQUkVBRF9DVFJMIERQQ0Qgd3JpdGVzIGFm dGVyIGdldHRpbmcgdGhlIEhQRCwgYW5kIG9ubHkgdGhlbgo+PiB3YWl0IGZvciB0aGUgZW5kIG9m IHRoZSBwb3dlciBvbiBkZWxheSBqdXN0IGJlZm9yZSBzdGFydGluZyB0aGUKPj4gbGluayB0cmFp bmluZz8gQW5kIHRoZSBzYW1lIGZvciBhbnkgb3RoZXIgQVVYIGNoYXR0ZXIgd2hlbiB0aGUgcGFu ZWwKPj4gaXMgb3RoZXJ3aXNlIHBvd2VyZWQgb2ZmPwo+Pgo+IDopIHR3byBwYXJ0cyB0byBvcHRp bWl6YXRpb24gb2Ygc3VjaCBEUENEIGF1eCBjb21tdW5pY2F0aW9ucwo+IDEpIHRoZXkgY2FuIGNo YW5nZSBkdXJpbmcgbW9kZXNldCBzbyB3ZSBjYW4gbmV2ZXIgYmUgc3VyZSBpZiB0aGUgdmFsdWUK PiB3aWxsIGJlIGZpbmFsCj4gMikgdGhvc2UgYXJlIHRvbyBzbWFsbCBvcGVyYXRpb25zIHRvIGhl bHAgaW4gYW55IG1ham9yIHdheSBmb3IgcG93ZXIgb24uCj4KPiBTb21lIG1vcmUgY29zdGx5L3Rp bWUgY29uc3VtaW5nIG9wZXJhdGlvbnMgd2UgY2FuIG9wdGltaXplIHRvICJib290IHRvCj4gZWRw IiBhcmUKPiAxKSBhdm9pZCBWREQgJiBQUFMgb24vMGZmLiBpLmUgIHRvdGFsbHkgYXZvaWQgZG9p bmcgYW55IG1vZGVzZXQgb3AsCj4gc2luY2UgZURQIHVzdWFsbHkKPiBoYXMgb25lIG9yIHR3byBt b2RlcyBpdCBpcyBoaWdobHkgbGlrZWx5IHRoYXQgd2Ugd2lsbCBhcHBseSB0aGUgc2FtZSBtb2Rl Cj4gYnJvdWdodCB1cCBieSBCSU9TLCBzbyBhbnkgZWZmb3J0IG9uIG91ciBzaWRlIGlzIGp1c3Qg cmVkb2luZyBzdHVmZi4KPiAyKSBpZiB0aGUgYWJvdmUgaXMgbm90IHBvc3NpYmxlLCB3ZSBjYW4g cmVtb3ZlIGFzIG11Y2ggb2YgVkREIG9mZi9vbgo+IGluIG91ciBmbG93IGFzIHBvc3NpYmxlLihl YWNoIG9mZiB3aWxsIHRha2UgdGhlIGVudGlyZSBQb3dlciBkb3duIGRlbGF5Cj4gdGltZQo+IGFu ZCB0aGUgbmV4dCBvbiB3aWxsIHRha2UgcG93ZXIgb24gZGVsYXkgdGltZSkKPiAzKSBvdXIgZHBj ZCByZWFkL3dyaXRlIGxvZ2ljIHNob3VsZCBiZSBvcHRpbWl6ZWQsIG91ciB3aG9sZSBMaW5rIHRy YWluaW5nCj4gb24gQ0hUIGlzIHRha2luZyB+MTVtcywgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbiBj b21wbGV0ZWQgaW4gdW5kZXIgMTBtcy4KPgo+IGlmIHdlIGltcGxlbWVudCBwb2ludCAxIGFib3Zl IGZvciBib290L3M0IHJlc3VtZSB3ZSBjYW4gYnJpbmcgZG93biBtb2Rlc2V0Cj4gdGltZSBmb3Ig ZWRwIGFsb25lIHNjZW5hcmlvIHRvIGZldyBtcy4KPiBpIGRvbid0IHdhbnQgdG8ga2VlcCB0YWxr aW5nIGJ1dCBub3QgZG9pbmcgYW55dGhpbmcsIHdpbGwgZmluaXNoIG15Cj4gY29tcGxpYW5jZQo+ IGFjdGl2aXRpZXMgKGluY2x1ZGluZyB1cHN0cmVhbWluZykgYW5kIHRoZW4gd2lsbCB0cnkgdG8g dGFyZ2V0IGVhY2ggb2YKPiB0aGUgYWJvdmUuIDopCgpUaGFua3MgU2l2YSBmb3IgaXRlcmF0aW5n IGZldyBvcHRpbWl6YXRpb24gcG9pbnRzIHdoaWNoIEkgaGF2ZSBiZWVuIGFsc28gCnRoaW5raW5n IGFyZSBuZWVkZWQuIEJ1dCBsZXRzIHRha2UgdGhlIG92ZXIgYWxsIG9wdGltaXphdGlvbiAKcG9z c2liaWxpdGllcyBpbiBhbm90aGVyIHRocmVhZC4gTXkgcXVlc3Rpb24gdG8geW91IGd1eXMgaW4g dGhlIGN1cnJlbnQgCmNvbnRleHQgaXMgLQoKMS4gU2hhbGwgd2Uga2VlcCB0aGUgcGFuZWxfcG93 ZXJfY3ljbGVfZGVsYXkgYXMgaXMgYnV0IGFkanVzdGluZyBqaWZmaWVzIApiYXNlZCBvbiB3YWxs IGNsb2NrIGFzIFZpbGxlIHN1Z2dlc3RlZC4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHdlIHNraXAg CnRoZSB3YWl0IGluIHN1c3BlbmQvcmVzdW1lIHNjZW5hcmlvLCBvcgoKMi4gSGF2ZSB0aGUgSFcg UFBTIGJhc2VkIHRyYWNraW5nIGZvciBkZWxheXMgYW5kIGFsc28gdGFrZSBjYXJlIHRoYXQgVkRE IApmb3JjZSBvbiBpcyBub3QgY2FsbGVkIGJlZm9yZSBwYW5lbCBwb3dlciBjeWNsZSBpcyBjb21w bGV0ZWx5IG92ZXIuIElmIAphbGwgZG8gbm90IGFncmVlIG9yIHNlZSBpc3N1ZXMgd2l0aCB0aGlz IGFwcHJvYWNoLCB3ZSBjYW4ga2VlcCB0aGlzIGZvciAKbGF0ZXIgd2hlbiB3ZSBvcHRpbWl6ZSB2 ZGQgb24vb2ZmIHNlcXVlbmNlcyBhcyBzdWdnZXN0ZWQgYnkgc2l2YSBhbmQgZ28gCmZvciBub3cg d2l0aCBhcHByb2FjaCAxLgoKUmVnYXJkcwpTaG9iaGl0Cgo+Cj4gcmVnYXJkcywKPiBTaXZha3Vt YXIKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=