From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 4/9] drm/i915: Make derived plane state correct after crtc_enable Date: Wed, 11 Mar 2015 14:19:38 +0200 Message-ID: <20150311121938.GQ11371@intel.com> References: <1425986129-15547-1-git-send-email-ville.syrjala@linux.intel.com> <1425986129-15547-5-git-send-email-ville.syrjala@linux.intel.com> <20150310170151.GH27526@intel.com> <20150310175713.GJ11371@intel.com> <20150311095229.GZ3800@phenom.ffwll.local> <20150311100539.GO11371@intel.com> <20150311102434.GH3800@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 4688A6E837 for ; Wed, 11 Mar 2015 05:19:58 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150311102434.GH3800@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBNYXIgMTEsIDIwMTUgYXQgMTE6MjQ6MzRBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIE1hciAxMSwgMjAxNSBhdCAxMjowNTozOVBNICswMjAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBXZWQsIE1hciAxMSwgMjAxNSBhdCAxMDo1MjoyOUFNICsw MTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiBPbiBUdWUsIE1hciAxMCwgMjAxNSBhdCAw Nzo1NzoxM1BNICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gVHVlLCBN YXIgMTAsIDIwMTUgYXQgMTA6MDE6NTFBTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90ZToKPiA+ID4g PiA+IE9uIFR1ZSwgTWFyIDEwLCAyMDE1IGF0IDAxOjE1OjI0UE0gKzAyMDAsIHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tIHdyb3RlOgo+ID4gPiA+ID4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4gPiAtc3RhdGljIHZv aWQgZGlzYWJsZV9wbGFuZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiA+ID4g PiA+ID4gK3N0YXRpYyB2b2lkIF9pbnRlbF9jcnRjX2VuYWJsZV9wbGFuZXMoc3RydWN0IGludGVs X2NydGMgKmNydGMpCj4gPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiA+IC0Jc3RydWN0IGludGVsX3Bs YW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiA+ID4gPiA+ID4gLQlz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSA9Cj4gPiA+ID4gPiA+IC0JCXBsYW5lLT5mdW5j cy0+YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZShwbGFuZSk7Cj4gPiA+ID4gPiA+IC0Jc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHN0YXRl KTsKPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7 Cj4gPiA+ID4gPiA+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ID4gPiA+ID4gPiAr CXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4gPiA+ID4gPiA+ICsJY29uc3Qgc3RydWN0IGRy bV9jcnRjX2hlbHBlcl9mdW5jcyAqY3J0Y19mdW5jcyA9Cj4gPiA+ID4gPiA+ICsJCWNydGMtPmJh c2UuaGVscGVyX3ByaXZhdGU7Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gLQlpbnRlbF9zdGF0 ZS0+dmlzaWJsZSA9IGZhbHNlOwo+ID4gPiA+ID4gPiAtCWludGVsX3BsYW5lLT5jb21taXRfcGxh bmUocGxhbmUsIGludGVsX3N0YXRlKTsKPiA+ID4gPiA+ID4gKwlmb3JfZWFjaF9pbnRlbF9wbGFu ZShkZXYsIHBsYW5lKSB7Cj4gPiA+ID4gPiA+ICsJCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVs cGVyX2Z1bmNzICpmdW5jcyA9Cj4gPiA+ID4gPiA+ICsJCQlwbGFuZS0+YmFzZS5oZWxwZXJfcHJp dmF0ZTsKPiA+ID4gPiA+ID4gKwkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9Cj4g PiA+ID4gPiA+ICsJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+YmFzZS5zdGF0ZSk7Cj4g PiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gLQlpbnRlbF9wbGFuZV9kZXN0cm95X3N0YXRlKHBsYW5l LCBzdGF0ZSk7Cj4gPiA+ID4gPiA+ICsJCWlmIChwbGFuZS0+cGlwZSAhPSBwaXBlKQo+ID4gPiA+ ID4gPiArCQkJY29udGludWU7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwkJaWYgKGZ1bmNz LT5hdG9taWNfY2hlY2soJnBsYW5lLT5iYXNlLCAmc3RhdGUtPmJhc2UpKQo+ID4gPiA+ID4gCj4g PiA+ID4gPiBNYXliZSBhZGQgYSBXQVJOX09OKCkgaGVyZT8gIEknbSBhc3N1bWluZyB0aGF0IHRo aXMgc2hvdWxkbid0IHJlYWxseSBiZQo+ID4gPiA+ID4gcG9zc2libGUgc2luY2UgaWYgdGhpcyBm YWlscyBpdCBtZWFucyB3ZSd2ZSBhbHJlYWR5IHByZXZpb3VzbHkgZG9uZSBhCj4gPiA+ID4gPiBj b21taXQgb2YgaW52YWxpZCBzdGF0ZSBvbiBhIHByZXZpb3VzIGF0b21pYyB0cmFuc2FjdGlvbi4g IEJ1dCBpZiBpdAo+ID4gPiA+ID4gZG9lcyBzb21laG93IGhhcHBlbiwgdGhlIFdBUk4gd2lsbCBn aXZlIHVzIGEgY2x1ZSB3aHkgdGhlIHBsYW5lIGNvbnRlbnRzCj4gPiA+ID4gPiBzaW1wbHkgZGlk bid0IHNob3cgdXAuCj4gPiA+ID4gCj4gPiA+ID4gSSBjYW4gdGhpbmsgb2Ygb25lIHdheSB0byBt YWtlIGl0IGZhaWwuIFRoYXQgaXMsIGZpcnN0IHNldCBhIHNtYWxsZXIKPiA+ID4gPiBtb2RlIHdp dGggdGhlIHByaW1hcnkgcGxhbmUgKGFuZCBmYikgY29uZmlndXJlZCB0byBjb3ZlciB0aGF0IGZ1 bGx5LCBhbmQKPiA+ID4gPiB0aGVuIHN3aXRjaCB0byBhIGxhcmdlciBtb2RlIHdpdGhvdXQgcmVj b25maWd1cmluZyB0aGUgcHJpbWFyeSBwbGFuZS4gSWYKPiA+ID4gPiB0aGUgaGFyZHdhcmUgcmVx dWlyZXMgdGhlIHByaW1hcnkgcGxhbmUgdG8gYmUgZnVsbHNjcmVlbiBpdCdsbCBmYWlsLiBCdXQK PiA+ID4gPiB0aGF0IHNob3VsZCBhY3RhdWxseSBub3QgYmUgcG9zc2libGUgdXNpbmcgdGhlIGxl Z2FjeSBtb2Rlc2V0IEFQSSBhcyBpdAo+ID4gPiA+IGFsd2F5cyByZWNvbmZpZ3VyZXMgdGhlIHBy aW1hcnksIHNvIHdlJ2Qgb25seSBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoYXQKPiA+ID4gPiB3aXRo IGZ1bGwgYXRvbWljIG1vZGVzZXQsIGFuZCBmb3IgdGhhdCB3ZSBhbnl3YXkgbmVlZCB0byBjaGFu Z2UgdGhlIGNvZGUKPiA+ID4gPiB0byBkbyB0aGUgY2hlY2sgc3R1ZmYgdXAgZnJvbnQuCj4gPiA+ ID4gCj4gPiA+ID4gU28geWVhaCwgd2l0aCB0aGUgd2F5IHRoaW5ncyBhcmUgdGhpcyBzaG91bGQg bm90IGJlIGFibGUgdG8gZmFpbC4gSSdsbAo+ID4gPiA+IHJlc3BpbiB3aXRoIHRoZSBXQVJOLgo+ ID4gPiAKPiA+ID4gSSBoYXZlbid0IGZ1bGx5IGR1ZyBpbnRvIHRoZSBkZXRhaWxzIGhlcmUsIGJ1 dCBhIGZldyByYW5kb21lIGNvbW1lbnRzOgo+ID4gPiAtIFdoaWxlIHRyYW5zaXRpb25pbmcgd2Un cmUgY2FsbGluZyB0aGUgdHJhbnNpdGlvbmFsIHBsYW5lIGhlbHBlcnMsIHdoaWNoCj4gPiA+ICAg c2hvdWxkIGNhbGwgdGhlIGF0b21pY19jaGVjayBzdHVmZiBmb3IgdXMgb24gdGhlIHByaW1hcnkg cGxhbmUuIElmIHdlCj4gPiA+ICAgbmVlZCB0byBjYWxsIGF0b21pY19jaGVjayBvbiBvdGhlciBw bGFuZXMgdG9vICh3aHk/KQo+ID4gCj4gPiBCZWNhdXNlIHdlIHdhbnQgdGhlIGRlcml2ZWQgc3Rh dGUgdG8gYmUgdXBkYXRlZCB0byBtYXRjaCB0aGUgKHBvdGVudGlhbGx5Cj4gPiBjaGFuZ2VkKSBj cnRjIGNvbmZpZy4gV2UgZG8gY2FsbCB0aGUgLnVwZGF0ZV9wbGFuZSgpIGhvb2sgZnJvbSB0aGUK PiA+IG1vZGVzZXQgcGF0aCwgYnV0IHRoYXQgaGFwcGVucyBhdCBhIHRpbWUgd2hlbiB0aGUgcGlw ZSBpcyBvZmYsIHNvIG91cgo+ID4gY2xpcHBpbmcgY2FsY3VsYXRpb25zIGVuZCB1cCBzYXlpbmcg dGhlIHBsYW5lIGlzIGludmlzaWJsZS4gSSB0aGluayBmaXhpbmcKPiA+IHRoYXQgdGhlIHJpZ2h0 IHdheSBwcmV0dHkgbXVjaCBpbnZvbHZlcyB0aGUgYXRvbWljIGNvbnZlcnNpb24gb2YgdGhlCj4g PiBtb2Rlc2V0IHBhdGguCj4gCj4gV2h5IGRvIHdlIGNvbmNsdWRlIGl0J3MgaW52aXNpYmxlPwoK QmVjYXVzZSBjcnRjLT5hY3RpdmUuIFNvIGZvciB0aGlzIHdlJ2xsIGJlIHdhbnRpbmcgY3J0Y19z dGF0ZS0+YWN0aXZlCm9yIHNvbWVzdWNoIHdoaWNoIHRlbGxzIHVzIHVwZnJvbnQgd2hldGhlciB0 aGUgcGlwZSBpcyBnb2luZyB0byBiZQphY3RpdmUgb3Igbm90LgoKQnV0IHRoYXQncyBhbHNvIGJl c2lkZSB0aGUgcG9pbnQgYSBiaXQgc2luY2Ugd2Ugc3RpbGwgd2FudCB0byBtYWtlIGNhbGwKdGhl IC5hdG9taWNfY2hlY2soKSBmb3IgYWxsIHBsYW5lcy4gUmlnaHQgbm93IHdlJ2QgY2FsbCBpdCBm b3IgcHJpbWFyeQooYXQgdGhlIHdyb25nIHBvaW50IHdydC4gY3J0Yy0+YWN0aXZlKSBhbmQgd2Ug Y2FsbCBpdCBmb3Igc3ByaXRlcyBsYXRlcgp3aGVuIGNydGMtPmFjdGl2ZSBpcyBzaG93aW5nIHRo ZSByaWdodCBzdGF0ZSwgYnV0IHdlIGRvbid0IGNhbGwgaXQgYXQKYWxsIGZvciBjdXJzb3JzLiBU aGF0J3Mgd2h5IHdlIHN0aWxsIGhhdmUgdGhhdCBhZC1ob2MgZXh0cmEgY3Vyc29yCmNsaXBwaW5n IGNvZGUgaW4gaW50ZWxfdXBkYXRlX2N1cnNvcigpLiBJZiB3ZSBjb3VsZCBtYWtlIHRoZSBkZXJp dmVkCnBsYW5lIHN0YXRlIGNvcnJlY3QsIHdlIGNvdWxkIHRocm93IHRoYXQgc3R1ZmYgb3V0IGFz IHdlbGwgYW5kIHRydXN0IHRoZQpyZWd1bGFyIHBsYW5lIGNsaXBwaW5nIGNhbGN1bGF0aW9ucyB0 byB0ZWxsIHVzIHdoZW4gdGhlIGN1cnNvciBoYXMgZ29uZQpvZmZzY3JlZW4uCgpJdCdsbCBhbHNv IG1ha2UgdGhlIHBsYW5lIHN0YXRlIGJlaGF2ZSBpbiBhIGNvbnNpdGVudCBtYW5uZXIgd3J0Lgpj cnRjLT5hY3RpdmUuIEFzIGl0IHN0YW5kcyB5b3Ugc2ltcGx5IGNhbid0IHRydXN0IHRoZSBwbGFu ZSBzdGF0ZSBmb3IKcHJpbWFyeS9jdXJzb3IgcGxhbmVzLgoKU28gdG8gZml4IGFsbCBvZiB0aGF0 LCBJIGp1c3Qgd2VudCBhaGVhZCBhbmQgY2FsbGVkIGl0IGZvciBhbGwgcGxhbmVzIGF0CnRoZSBw b2ludCB3aGVyZSB3ZSBjdXJyZW50bHkgY2FsbCBpdCBmb3Igc3ByaXRlcy4gSSBjb3VsZCBoYXZl IGp1c3QgZ29uZQphaGVhZCBhbmQgY2FsbGVkIHRoZSBoaWdoZXIgbGV2ZWwgLnVwZGF0ZV9wbGFu ZSgpIGZ1bmMgZm9yIGFsbCBvZiB0aGVtCihhcyB3ZSBkaWQgZm9yIHNwcml0ZXMgYWxyZWFkeSkg YnV0IGdvaW5nIG9uZSBsZXZlbCBsb3dlciBhbGxvd2VkIG1lIHRvCmdldCB0aGUgcGxhbmVzIHRv IHBvcCBpbi9vdXQgYXRvbWljYWxseS4KCkkgdGhpbmsgaXQncyB0aGUgYmVzdCB3YXkgdG8gbW92 ZSBmb3J3YXJkIHdpdGggZ2V0dGluZyB0aGUgcGxhbmUgYW5kIHdtCmNvZGUgaW50byBzb21lIGtp bmQgb2Ygc2FuZSBzdGF0ZS4KCj4gSWYgd2UgY2FuIGZpeCB0aGUgc3RhdGUgdG8gbm90IGRlcGVu ZAo+IHVwb24gdGhlIGRwbXMgc3RhdGUgdGhlbiB0aGluZ3Mgc2hvdWxkIHdvcmsgLi4uCgpUaGF0 J3MgYSBtb3JlIGRyYXN0aWMgY2hhbmdlIGFuZCBuZWVkcyB3YXkgbW9yZSB0aG91Z2h0LgoKPiAK PiA+ID4gICB0aGVuIEkgdGhpbmsgdGhhdAo+ID4gPiAgIHNob3VsZCBiZSBkb25lIGFzIGNsb3Nl IGFzIHBvc3NpYmxlIHRvIHdoZXJlIHdlIGRvIHRoYXQgZm9yIHRoZSBwcmltYXJ5Cj4gPiA+ICAg b25lLiBTaW5jZSBldmVudHVhbGx5IHdlIG5lZWQgdG8gdW5idXJ5IHRoYXQgY2FsbCBhZ2Fpbi4K PiA+IAo+ID4gV2l0aCBteSBwYXRjaCBfYWxsXyBwbGFuZXMgZ2V0IHRoZWlyIC5hdG9taWNfY2hl Y2soKSBjYWxsZWQgaW4gdGhlIHNhbWUKPiA+IHBsYWNlIChkdXJpbmcgcGxhbmUgZW5hYmxlIHBo YXNlIG9mIC5jcnRjX2VuYWJsZSgpKS4KPiA+IAo+ID4gPiAKPiA+ID4gLSBJIGRvbid0IGxpa2Ug ZnJvYmJpbmcgc3RhdGUgb2JqZWN0cyB3aGljaCBhcmUgY29tbWl0dGVkIChpLmUuIHVwZGF0aW5n Cj4gPiA+ICAgdmlzaWJsZSBsaWtlIGhlcmUpLCB0aGV5J3JlIHN1cHBvc2VkIHRvIGJlIGludmFy aWFudC4gV2l0aCBwcm9wZXIgYXRvbWljCj4gPiA+ICAgdGhlIHdheSB0byBkZWFsIHdpdGggdGhh dCBpcyB0byBncmFiIGFsbCB0aGUgcmVxdWlyZWQgcGxhbmUgc3RhdGVzIGFuZAo+ID4gPiAgIHB1 dCB0aGVtIGludG8gdGhlIGRybV9hdG9taWNfc3RhdGUgdXBkYXRlIHN0cnVjdHVyZS4KPiA+IAo+ ID4gV2UgcmVhbGx5IHdhbnQgdG8gZnJvYiBpdCBzbyB0aGF0IHRoZSBkZXJpdmVkIHN0YXRlIHdp bGwgcmVmbGVjdAo+ID4gcmVhbGl0eS4gTW9zdCBpbXBvcnRhbnRseSBzdGF0ZS0+dmlzaWJsZSBz aG91bGQgYmUgZmFsc2Ugd2hlbmV2ZXIgdGhlCj4gPiBwaXBlIGlzIG9mZiwgb3RoZXJ3aXNlIHdl IGNhbid0IHRydXN0IHN0YXRlLT52aXNpYmxlIGFuZCB3b3VsZCBhbHNvIG5lZWQKPiA+IGdvIGxv b2sgYXQgdGhlIGNydGMgc3RhdGUgd2hlbmV2ZXIgd2UncmUgdHJ5aW5nIHRvIGRlY2lkZSBpZiB0 aGUgcGxhbmUKPiA+IGlzIGFjdHVhbGx5IG9uIG9yIG5vdC4KPiAKPiBJbW8gdGhhdCdzIHRoZSBj b3JyZWN0IHRoaW5nIHRvIGRvLiBDYWxsaW5nIHBsYW5lIGhvb2tzIHdoZW4gdGhlIHBpcGUgaXMK PiBvZmYganVzdCBkb2Vzbid0IHNlZW0gbGlrZSBhIGdvb2QgaWRlYSB0byBtZS4gVG9nZXRoZXIg d2l0aCBydW50aW1lIHBtIGF0Cj4gbGVhc3QsIGNydGMvYXRvbWljIGhlbHBlcnMgaGF2ZSBzb21l ICJpbnRlcmVzdGluZyIgaGVyaXRhZ2UuCj4gCj4gQnV0IGV2ZW4gdGhlcmUgeW91IGNhbiBmaXgg aXQgYnkganVzdCByZW9yZGVyaW5nIHRoZSBjb21taXRfcGxhbmVzIGNhbGwgdG8KPiB0aGUgYm90 dG9tLCB3aGVyZSBldmVyeXRoaW5nIHNob3VsZCBiZSBvbi4gSWlyYyB0aGF0J3MgaG93IExhdXJl bnQgZml4ZWQKPiB1cCByY2FyIHJ1bnRpbWUgcG0gaXNzdWVzIHRvIGF2b2lkIHRvdWNoaW5nIHBs YW5lcyB3aGVuIHRoZSBodyBpcyBvZmYuCj4gCj4gVGhlIG90aGVyIHJlYXNvbiB3aHkgLT52aXNp YmxlIG11c3QgdGFrZSBpbnRvIGFjY291bnQgZHBtcyBzdGF0ZSBpcyB0aGF0Cj4gd2UnbGwgc2Ny ZXcgdXAgdGhlIHdhdGVybWFyayBjb21wdXRhdGlvbiBvdGhlcndpc2UuIFdoaWNoIGNvdWxkIHJl c3VsdAo+IGludG8gYSBmYWlsdXJlIG9uIGEgc3Vic2VxdWVudCBkcG1zIG9uLCB3aGljaCBpcyBh IGJpZyBuby1uby4KCkhtbSwgcmlnaHQuIFNvIGZvciBtb3N0IGNhbGN1bGF0aW9ucyB3ZSdsbCBq dXN0IHdhbnQgdG8gaWdub3JlIHRoZQpEUE1TIHN0YXRlIGFuZCBjYWxjdWxhdGUgdGhpbmdzIGFz IGlmIHRoZSBwaXBlIHdhcyBhY3RpdmUgKHNvIG9ubHkKbG9va2luZyBhdCBjcnRjX3N0YXRlLT5l bmFibGVkIEkgc3VwcG9zZSkuIEJ1dCB3aGVuIGl0J3MgYWN0dWFsbHkKdGltZSB0byB3cml0ZSB0 aGUgdmFsdWVzIGludG8gdGhlIGhhcmR3YXJlIHdlIG5lZWQgdG9vIGNvbnNpZGVyCnRoZSBhY3R1 YWwgc3RhdGUgb2YgdGhlIHBpcGUgYXMgd2VsbCAoc28gdGFraW5nIERQTVMgaW50byBhY2NvdW50 KS4KClNvIHllYWgsIGlmIHdlIGRlY291cGxlIHBsYW5lX3N0YXRlLT52aXNpYmxlIGZyb20gY3J0 Yy0+YWN0aXZlIGFuZCBqdXN0Cm1ha2UgaXQgY2hlY2sgY3J0Y19zdGF0ZS0+ZW5hYmxlZCB0aGVu IHBsYW5lX3N0YXRlLT52aXNpYmxlIGNhbiBiZSB1c2VkCnRvIGRvIGFsbCB0aGUgY2xpcHBpbmcs IGFuZCB1cGZyb250IHBlci1waXBlIHdtIGNhbGN1bGF0aW9ucy4gQnV0IHdoZW4KaXQgY29tZXMg dGltZSB0byBhcHBseSB0aGUgcGxhbmUgc3RhdGUgb3Igd2F0ZXJtYXJrcyB0byB0aGUgaGFyZHdh cmUgd2UKbmVlZCB0byBjaGVjayB0aGUgYWN0dWFsIHBpcGUgc3RhdGUuCgpTbyBnb29kIHBsYW4s IGJ1dCBuZWVkcyBxdWl0ZSBhIGJpdCBvZiB3b3JrIHRvIGdldCB1cyB0aGVyZS4KCj4gCj4gPiBB cyBmb3IgdGhlIGRpcmVjdCBzdGF0ZSBmcm9iYmluZywgd2UgY291bGQgbWFrZSBhIGNvcHkgSSBn dWVzcyBhbmQgZnJvYgo+ID4gdGhhdCBpbnN0ZWFkLCBhbmQgdGhlbiBjb21taXQgaXQuIEJ1dCB0 aGF0IHNlZW1zIGEgbG90IG9mIHdvcmsgZm9yIG5vIGdhaW4uCj4gCj4gVGhhdCdzIGhvdyBhdG9t aWMgaXMgc3VwcG9zZWQgdG8gd29yayByZWFsbHkuIEJ1dCB3ZSBjYW4ndCBtYWtlIGEgY29weSBp bgo+IHRoZSBjcnRjX2VuYWJsZSByZWFsbHkgc2luY2UgdGhhdCBzaG91bGQgbmV2ZXIgZmFpbCwg YW5kIHdlIGNhbid0IHB1c2ggaXQKPiBvdXQgc2luY2Ugd2UgbWlnaHQgbm90IGhvbGQgYWxsIHRo ZSBsb2Nrcy4gVGhhdCdzIGFsbCBvZmNvdXJzZSBmb3IgdGhlCj4gYXRvbWljIGVuZC1zdGF0ZSwg YnV0IEkgdGhpbmsgZXZlbiBhcyBhbiBpbnRlcmltIGRldG91ciB0aGlzIGFwcHJvYWNoIGhlcmUK PiBkb2Vzbid0IGZlZWwgbGlrZSBhIGdvb2QgYXBwcm9hY2ggdG8gbWUuCgpXZSdyZSBnb2luZyB0 byBuZWVkIHRoZSAiZGV0b3VyIi4gVGhhdCBpcywgd2UgZG8gbmVlZCB0byBjYWxsIHRoZQouYXRv bWljX2NoZWNrKCkgZm9yIGFsbCBwbGFuZXMgYXQgbW9kZXNldCB0aW1lLiBCdXQgdHJ5aW5nIHRv IGRvIGl0CmVhcmxpZXIgd2lsbCBtZWFuIGNoYW5naW5nIGFsbCB0aGUgcGxhbmUgdmlzaWJpbGl0 eSBjYWxjdWxhdGlvbnMgdG8KY29uc2lkZXIgdGhlIHBpcGUgYWN0aXZlIHdoZW5ldmVyIGNydGNf c3RhdGUtPmVuYWJsZWQ9PXRydWUsIGFuZAp0aGF0J3MgZ29pbmcgdG8gcmVxdWlyZSBjYXJlZnVs IHJldmlldyBvZiB0aGUgY29kZSB0byBtYWtlIHN1cmUgd2UKZG9uJ3QgdHJ1c3QgdGhlIHBsYW5l IHZpc2liaWxpdHkvY2xpcHBpbmcgaW5mb3JtYXRpb24gdG9vIG11Y2guIEFuZAp0aGUgc2FtZSBn b2VzIGZvciB0aGUgd2F0ZXJtYXJrIGNvZGUuCgpTbyBJIHN0aWxsIHRoaW5rIHRoaXMgaXMgdGhl IHJpZ2h0IHN0ZXAgdG8gbW92ZSBmb3J3YXJkLiBJdCdsbCBhbGxvdyB1cwp0byB1c2UgdGhlIGRl cml2ZWQgcGxhbmUgc3RhdGUgY29ycmVjdGx5IChhbmQgc2luY2UgaXQgc3RpbGwgZGVwZW5kcyBv bgpjcnRjLT5hY3RpdmUgd2Ugd29uJ3QgcmlzayBlbmFibGluZyBwbGFuZXMgd2hlbiB0aGUgcGlw ZSBpcyBvZmYpLCB3aGljaAphbGxvd3MgdGhlIHBsYW5lIGFuZCB3bSBjb2RlIHRvIGV2b2x2ZSBp biBzbWFsbCBzdGVwcywgcmF0aGVyIHRoYW4gc29tZQptYXNzIGNvbnZlcnNpb24uIEkgdGhpbmsg dGhlcmUgaGF2ZSBiZWVuIG1vcmUgdGhhbiBlbm91Z2ggcmVncmVzc2lvbnMKcmVjZW50bHkuCgot LSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=