From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: KMS timings (Re: [PATCH 6/8] drm/bochs: phase 3: provide a custom ->atomic_commit implementation) Date: Mon, 20 Jul 2015 16:21:00 +0200 Message-ID: <20150720142100.GH16722@phenom.ffwll.local> References: <1437049241-11972-1-git-send-email-zhjwpku@gmail.com> <1437049241-11972-7-git-send-email-zhjwpku@gmail.com> <20150717090809.6c9d7d02@gmail.com> <20150720104609.10c01e4a@gmail.com> <20150720123548.0d9b6472@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by gabe.freedesktop.org (Postfix) with ESMTPS id E77926E387 for ; Mon, 20 Jul 2015 07:18:21 -0700 (PDT) Received: by wgav7 with SMTP id v7so66356510wga.2 for ; Mon, 20 Jul 2015 07:18:20 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150720123548.0d9b6472@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Pekka Paalanen Cc: "dri-devel@lists.freedesktop.org" , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBKdWwgMjAsIDIwMTUgYXQgMTI6MzU6NDhQTSArMDMwMCwgUGVra2EgUGFhbGFuZW4g d3JvdGU6Cj4gT24gTW9uLCAyMCBKdWwgMjAxNSAwMTo1ODozMyAtMDcwMAo+IFN0w6lwaGFuZSBN YXJjaGVzaW4gPHN0ZXBoYW5lLm1hcmNoZXNpbkBnbWFpbC5jb20+IHdyb3RlOgo+IAo+ID4gT24g TW9uLCBKdWwgMjAsIDIwMTUgYXQgMTI6NDYgQU0sIFBla2thIFBhYWxhbmVuIDxwcGFhbGFuZW5A Z21haWwuY29tPiB3cm90ZToKPiA+ID4gT24gU3VuLCAxOSBKdWwgMjAxNSAxNzoyMDozMiAtMDcw MAo+ID4gPiBTdMOpcGhhbmUgTWFyY2hlc2luIDxzdGVwaGFuZS5tYXJjaGVzaW5AZ21haWwuY29t PiB3cm90ZToKPiA+ID4KPiA+ID4+IE9uIFRodSwgSnVsIDE2LCAyMDE1IGF0IDExOjA4IFBNLCBQ ZWtrYSBQYWFsYW5lbiA8cHBhYWxhbmVuQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+PiA+Cj4gPiA+ PiA+IE9uIFRodSwgMTYgSnVsIDIwMTUgMjA6MjA6MzkgKzA4MDAKPiA+ID4+ID4gSm9obiBIdW50 ZXIgPHpoandwa3VAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+ID4KPiA+ID4+ID4gPiBGcm9tOiBa aGFvIEp1bndhbmcgPHpoandwa3VAZ21haWwuY29tPgo+ID4gPj4gPiA+Cj4gPiA+PiA+ID4gVGhp cyBzdXBwb3J0cyB0aGUgYXN5bmNocm9ub3VzIGNvbW1pdHMsIHJlcXVpcmVkIGZvciBwYWdlLWZs aXBwaW5nCj4gPiA+PiA+ID4gU2luY2UgaXQncyB2aXJ0dWFsIGh3IGl0J3Mgb2sgdG8gY29tbWl0 IGFzeW5jIHN0dWZmIHJpZ2h0IGF3YXksIHdlCj4gPiA+PiA+ID4gbmV2ZXIgaGF2ZSB0byB3YWl0 IGZvciB2YmxhbmsuCj4gPiA+PiA+Cj4gPiA+PiA+IEhpLAo+ID4gPj4gPgo+ID4gPj4gPiBpbiB0 aGVvcnksIHllcy4gVGhpcyBpcyB3aGF0IGEgcGF0Y2ggdG8gYm9jaHMgaW1wbGVtZW50ZWQgbm90 IHRvbyBsb25nCj4gPiA+PiA+IGFnbywgc28gQUZBSUsgeW91IGFyZSBvbmx5IHJlcGxpY2F0aW5n IHRoZSBleGlzdGluZyBiZWhhdmlvdXIuCj4gPiA+PiA+Cj4gPiA+PiA+IEhvd2V2ZXIsIGlmIHVz ZXJzcGFjZSBkb2luZyBhbiBhc3luYyBjb21taXQgKG9yIHN5bmMsIEkgc3VwcG9zZSkgZG9lcwo+ ID4gPj4gPiBub3QgaW5jdXIgYW55IHdhaXRzIGluIHRoZSBrZXJuZWwgaW4gZS5nLiBzZW5kaW5n IHRoZSBwYWdlIGZsaXAgZXZlbnQsCj4gPiA+PiA+IHRoZW4gZmxpcCBkcml2ZW4gcHJvZ3JhbXMg KGUuZy4gYSBXYXlsYW5kIGNvbXBvc2l0b3IsIHNheSwgV2VzdG9uKQo+ID4gPj4gPiB3aWxsIGJl IHJ1bm5pbmcgaXRzIHJlbmRlcmluZyBsb29wIGFzIGEgYnVzeS1sb29wLCBiZWNhdXNlIHRoZSBr ZXJuZWwKPiA+ID4+ID4gZG9lcyBub3QgdGhyb3R0bGUgaXQgdG8gdGhlICh2aXJ0dWFsKSBkaXNw bGF5IHJlZnJlc2ggcmF0ZS4KPiA+ID4+ID4KPiA+ID4+ID4gVGhpcyB3aWxsIGNhdXNlIG1heGlt YWwgQ1BVIHVzYWdlIGFuZCBwb29yIHVzZXIgZXhwZXJpZW5jZSBhcwo+ID4gPj4gPiBldmVyeXRo aW5nIGVsc2UgbmVlZHMgdG8gZmlnaHQgZm9yIENQVSB0aW1lIGFuZCBldmVudCBkaXNwYXRjaCB0 byBnZXQKPiA+ID4+ID4gdGhyb3VnaCwgbGlrZSBpbnB1dC4KPiA+ID4+ID4KPiA+ID4+ID4gSSB3 b3VsZCBob3BlIHNvbWVvbmUgY291bGQgZG8gYSBmb2xsb3ctdXAgdG8gaW1wbGVtZW50IGEgcmVm cmVzaCBjeWNsZQo+ID4gPj4gPiBlbXVsYXRpb24gYmFzZWQgb24gYSBjbG9jay4gVXNlcnNwYWNl IGV4cGVjdHMgcGFnZSBmbGlwcyB0byBoYXBwZW4gYXQKPiA+ID4+ID4gbW9zdCBhdCByZWZyZXNo IHJhdGUgd2hlbiBhc2tpbmcgZm9yIHZibGFuay1zeW5jZWQgZmxpcHMuIEl0J3Mgb25seQo+ID4g Pj4gPiBuYXR1cmFsIGZvciB1c2Vyc3BhY2UgdG8gZHJpdmUgaXRzIHJlbmRlcmluZyBsb29wIGJh c2VkIG9uIHRoZSB2YmxhbmsKPiA+ID4+ID4gY3ljbGUuCj4gPiA+Pgo+ID4gPj4KPiA+ID4+IEkn dmUgYmVlbiBhc2tpbmcgbXlzZWxmIHRoZSBzYW1lIHF1ZXN0aW9uIChmb3IgdGhlIFVETCBkcml2 ZXIpIGFuZCBJJ20KPiA+ID4+IG5vdCBzdXJlIGlmIHRoaXMgcG9saWN5IHNob3VsZCBnbyBpbiB0 aGUga2VybmVsLiBBZnRlciBhbGwsIHRoZXJlCj4gPiA+PiBjb3VsZCBiZSBsZWdpdGltYXRlIHJl YXNvbnMgZm9yIHVzZXIgc3BhY2UgdG8gcmVuZGVyIGxvdHMgb2YgZnJhbWVzCj4gPiA+PiBwZXIg c2Vjb25kLiBJdCBzZWVtcyB0byBtZSB0aGF0IGlmIHVzZXIgc3BhY2UgZG9lc24ndCB3YW50IHRv byBtYW55Cj4gPiA+PiBmcHMsIGl0IHNob3VsZCBqdXN0IHRocm90dGxlIGl0c2VsZi4KPiA+ID4K PiA+ID4gSWYgdXNlcnNwYWNlIHdhbnRzIHRvIHJlbmRlciBsb3RzIG9mIGZyYW1lcyBwZXIgc2Vj b25kLCBJTU8gaXQgc2hvdWxkCj4gPiA+IG5vdCBiZSB1c2luZyB2Ymxhbmstc3luY2VkIG9wZXJh dGlvbnMgaW4gYSB3YXkgdGhhdCBtYXkgdGhyb3R0bGUgaXQuCj4gPiA+IFRoZSBsb3RzIG9mIGZy YW1lcyB1c2UgY2FzZSBpcyBhbHJlYWR5IG5vbi13b3JraW5nIGZvciB0aGUgbWFqb3JpdHkgb2YK PiA+ID4gdGhlIGRyaXZlcnMgd2l0aG91dCBEUk1fTU9ERV9QQUdFX0ZMSVBfQVNZTkMsIHJpZ2h0 Pwo+ID4gPgo+ID4gPiBUaGUgcHJvYmxlbSBoZXJlIEkgc2VlIGlzIHRoYXQgb25lIERSTSBkcml2 ZXIgZGVjaWRlcyB0byB3b3JrIGRpZmZlcmVudAo+ID4gPiB0byBvdGhlciBEUk0gZHJpdmVycy4g QWxsIHJlYWwtaGFyZHdhcmUgRFJNIGRyaXZlcnMsIHdoZW4gYXNrZWQgdG8gZG8KPiA+ID4gdmJs YW5rLXN5bmNlZCB1cGRhdGUsIGFjdHVhbGx5IGRvIHRocm90dGxlIHRvIHRoZSB2YmxhbmsgQUZB SUsuCj4gPiAKPiA+IHVkbCBpcyBhbiBleGNlcHRpb24gaGVyZS4gSXQgaXMgKGFyZ3VhYmx5KSBy ZWFsIGhhcmR3YXJlIGJ1dCBkb2Vzbid0IHRocm90dGxlLgo+ID4gCj4gPiA+IElzIGl0Cj4gPiA+ IHRvbyBtdWNoIHRvIGFzc3VtZSwgdGhhdCB0aGUgdmlkZW8gbW9kZSBzZXQgaW4gYSBkcml2ZXIg KHJlZnJlc2ggcmF0ZSkKPiA+ID4gY29ycmVzcG9uZHMgdG8gdGhlIHZibGFuayByYXRlIHdoaWNo IGltcGxpY2l0bHkgZGVsYXlzIHRoZSBjb21wbGV0aW9uCj4gPiA+IG9mIHZibGFuay1zeW5jJ2Qg b3BlcmF0aW9ucyB0byBhdCBsZWFzdCB0aGUgbmV4dCB2YmxhbmsgYm91bmRhcnk/Cj4gPiAKPiA+ IEkgdGhpbmsgaXQncyB3cm9uZyB0byBtYWtlIHVzZXIgc3BhY2UgdGhpbmsgdGhhdCBhIHZzeW5j ZWQgZGlzcGxheQo+ID4gYWx3YXlzIG1hdGNoZXMgdGhlIHJlZnJlc2ggcmF0ZSBpbiBhIHdvcmxk IHdoZXJlOgo+ID4gCj4gPiAtIHNvbWUgZGlzcGxheXMgaGF2ZSB2YXJpYWJsZSByZWZyZXNoIHJh dGVzIChub3QganVzdCB0aGUgZmFuY3kgbmV3Cj4gPiBzdHVmZiBsaWtlIGctc3luYywgbG9vayBm b3IgbHZkc19kb3duY2xvY2sgaW4gdGhlIGludGVsIGRyaXZlciBmb3IKPiA+IGV4YW1wbGUsIGFs c28gY29uc2lkZXIgRFNJIGRpc3BsYXlzKQo+ID4gCj4gPiAtIHNvbWUgZGlzcGxheXMgaGF2ZSBu byByZWZyZXNoIHJhdGUgKHRoZSBvbmVzIHdlIGFyZSB0YWxraW5nIGFib3V0Cj4gPiBoZXJlOiB1 ZGwsIGJvY2hzLi4uKQo+IAo+IFRoYXQgbWVhbnMgdGhhdCByZWZyZXNoIHJhdGUgaW4gYSB2aWRl byBtb2RlIGlzIGJvZ3VzLiBDYW4gdXNlcnNwYWNlCj4ga25vdyB3aGVuIHRoZSByZWZyZXNoIHJh dGUgaXMgbWVhbmluZ2xlc3M/IEkgc3VwcG9zZSB0aGVyZSBhcmUgdHdvCj4gZGlmZmVyZW50IGNh c2VzIG9mIG1lYW5pbmdsZXNzLCB0b286IHdoZW4gdGhlIGRyaXZlciBpZ25vcmVzIGl0IGFzCj4g aW5wdXQgYXJndW1lbnQsIGFuZCB3aGVuIGl0IGlzIHVzZWQgYnV0IGhhcyBubyBndWFyYW50ZWVz IGZvciB0aW1pbmdzLgo+IAo+IEFzc3VtaW5nIGl0J3MgYWx3YXlzIG1lYW5pbmdsZXNzIHdydC4g dGltaW5ncyBpcyBwcmV0dHkgaGFyc2guIEUuZy4gdGhlCj4gV2F5bGFuZCBQcmVzZW50YXRpb24g ZXh0ZW5zaW9uJ3MgaW1wbGVtZW50YXRpb24gaW4gV2VzdG9uIHVzZXMgdGhlCj4gcmVmcmVzaCBy YXRlIHRvIHByZWRpY3QgdGhlIG5leHQgZmxpcCB0aW1lIGFuZCBoYW5kcyBpdCBvdXQgdG8gY2xp ZW50cwo+IGZvciBzY2hlZHVsaW5nL2ludGVycG9sYXRpb24gcHVycG9zZXMuCgpXZSByZW1vdmVk IGx2ZHNfZG93bmNsb2NrIGluIGk5MTUgKHdhcyBuZXZlciBlbmFibGVkIGJ5IGRlZmF1bHQpLiBU aGUgbmV3CmNvZGUgaXMgY3VycmVudGx5IGVkcCBvbmx5LCBidXQgZW5hYmxlZCBieSBkZWZhdWx0 LiBBbmQgaXQgdHJpZXMgX3JlYWxseV8KaGFyZCB0byBrZWVwIHVwIHRoZSBpbGx1c2lvbiB0aGF0 IHRoZSByZXF1ZXN0ZWQgdnJlZnJlc2ggaXMgdGhlIG9uZSB5b3UKYWN0dWFsbHkgaGF2ZSAtIGl0 IHVwY2xvY2tzIGV2ZXJ5IHRpbWUgdXNlcnNwYWNlIGNoYW5nZXMgdGhlIHNjcmVlbi4KClRoZSBv bmx5IGV4Y2VwdGlvbiBpcyB3aGVuIHlvdSBvbmx5IGFzayBmb3IgdmJsYW5rIGV2ZW50cywgYW5k IHRoZSBkZWxheQp0byB0aGUgbmV4dCBwYWdlZmxpcCBpcyBsb25nZXIgdGhhbiB0aGUgdGltZW91 dC4gVGhhdCBjYW4ndCBiZSBmaXhlZCByaWdodApub3cgYmVjYXVzZSBkcm1faXJxLmMgaXMgdGhl IGxhc3QgbWlkbGF5ZXIgbmVlZGVkIGJ5IG1vZGVybiBkcml2ZXJzLCBidXQKSSdkIGxpa2UgdG8g Zml4IGl0IGV2ZW50dWFsbHkuCgpUaGVyZSdzIGZ1dHVyZSBwbGFucyB0byBhbGxvdyB1c2Vyc3Bh Y2UgdG8gZXhwbGljaXRseSBhc2sgZm9yIGEgcmVkdWNlZAp2cmVmcmVzaCAoZS5nLiB2aWRlbyBw bGF5YmFjayksIGJ1dCB0aGVuIG9idmlvdXNseSB0aGV5J2xsIG1hdGNoIGFnYWluCnRvby4KCldl IGFsc28gaGF2ZSBhIGJpZyBwaWxlIG9mIHRlc3RjYXNlcyBpbiBrbXNfZmxpcCB3aGljaCBjaGVj ayB0aGF0IHRoZQp0aW1lc3RhbXBzIGFyZSBldmVubHkgc3BhY2VkIGFuZCBhZ3JlZSB3aXRoIHZy ZWZyZXNoLiBUaGVyZSdzIHNvbWUgb2RkYmFsbApidWdzIGFyb3VuZCB0di1vdXQgdGhhdCB3ZSBu ZXZlciBib3RoZXJlZCB0byBmaXggKHNpbmNlIHRoZSByZXF1ZXN0ZWQgbW9kZQppcyBhIGZha2Ug b25lIGFuZCByZXNjYWxlZCBieSB0aGUgVFYgcG9ydCwgd2hpY2ggYWxzbyBoYXMgaXQncyBvd24g Y2xvY2spLgoKSW1vIGFpbWluZyBmb3IgdnJlZnJlc2ggdG8gYmUgYWNjdXJhdGUgaXMgZ29vZC4g Rm9yIGdzeW5jIGFuZCBmcmllbmRzIEkKdGhpbmsgd2Ugc2hvdWxkIGhhdmUgYW4gZXhwbGljaXQg cmFuZ2Ugb3IgZmxhZyB0byBtYWtlIHVzZXJzcGFjZSBhd2FyZSBvZgp3aGF0J3MgZ29pbmcgb24u Cgo+ID4gLSB5b3UgY2FuIGRvIHBhcnRpYWwgdnN5bmNlZCB1cGRhdGVzIGJ5IGp1c3Qgd2FpdGlu ZyBmb3IgYSBzcGVjaWZpYwo+ID4gc2NhbmxpbmUgcmFuZ2Ugd2hpY2ggYWdhaW4gYnJlYWtzIHRo ZSBhc3N1bXB0aW9uIHRoYXQgInZzeW5jZWQiID09Cj4gPiAicmVmcmVzaGVzIGF0IHRoZSBtb25p dG9yIHJhdGUiLiBJbiB0aGlzIGNhc2UgdGhlcmUgaXMgbm8gdmlzaWJsZQo+ID4gdGVhcmluZyAo aW4gdGhhdCBzZW5zZSBpdCBpcyB2c3luY2VkKSBidXQgdGhlIGZsaXAgdGltZSBpcyBub3QKPiA+ IHByZWRpY3RhYmxlIHVzaW5nIHRoZSByZWZyZXNoIHJhdGUuCj4gCj4gT2theS4gVGhhdCBhbHNv IGludmFsaWRhdGVzIHRoZSBkZXNpZ24gKHdlbGwsIGF0IGxlYXN0IHRoZQo+IGltcGxlbWVudGF0 aW9uLCBhbmQgc291bmRzIGxpa2UgRFJNIGRvZXMgbm90IGdpdmUgYW55IHRvb2xzIHRvIGFsbG93 Cj4gaW1wbGVtZW50aW5nIGl0KSB0aGUgV2F5bGFuZCBQcmVzZW50YXRpb24gZXh0ZW5zaW9uIGV2 ZW4gb24gImdvb2QiCj4gaGFyZHdhcmUsIHNvIG5pY2UgdG8gcmVhbGl6ZS4gSSB3YXMgYWxyZWFk eSBzdWdnZXN0aW5nIHdlIHNob3VsZAo+IHN0YWJpbGl6ZSBpdCBzaW5jZSBpdCBsb29rcyBnb29k LCBidXQgdGhpcyBwdXRzIGl0IGFsbCBiYWNrIHRvIHRoZQo+IGRyYXdpbmcgYm9hcmQuCj4gCj4g SSB0aGluayBpdCBhbHNvIG1vc3RseSBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgc2NoZWR1bGluZyBp bXBsZW1lbnRhdGlvbgo+IGluIFdlc3Rvbi4KCkN1cnJlbnRseSBzY2FubGluZSB3YWl0cyBpcyBq dXN0IHNvbWV0aGluZyB0aGUgaW50ZWwgRERYIGRvZXMgdG8gdXBkYXRlCmRyaSBhbmQgdmlkZW8g Y2xpZW50cyB3aXRob3V0IHRlYXJpbmcgd2hpbGUgc3RpbGwgZXNzZW50aWFsbHkgZG9pbmcKdW5z eW5jZWQgZnJvbnRidWZmZXIgcmVuZGVyaW5nLiBJdCBzdWNrcyBkb3duIG1hc3NpdmUgYW1vdW50 cyBvZiBncHUKYmFuZHdpZHRoIHNpbmNlIGl0IGZ1bGx5IHN0YWxscyB0aGUgcmVuZGVyaW5nIChh dCBsZWFzdCBvbiBpOTE1IGh3KS4KCkFzIGxvbmcgYXMgeW91IGhhdmUgYnVmZmVyX2FnZSBhbmQg ZnJpZW5kcyB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gYmUgYXMKZWZmaWNpZW50IHdpdGggcGFnZWZs aXBzIChvciBiZXR0ZXIpIGFzIHdpdGggc2NhbmxpbmUgd2FpdHMuCgo+ID4gU28gSSBkb24ndCB0 aGluayB3ZSBzaG91bGQgcGVycGV0dWF0ZSB0aGF0IHByb2JsZW0uIEFuZCBJIHdvdWxkIGxpa2UK PiA+IHVzZXIgc3BhY2UgdG8gInNlZSIgdGhlIGFjdHVhbCBmbGlwIHRpbWVzIHRvIGVuYWJsZSBz b21lIGtpbmQgb2YKPiA+IHNjaGVkdWxpbmcgd2hlcmUgcG9zc2libGUuCj4gPiAKPiA+ID4KPiA+ ID4gSSB0aGluaywgaWYgdGhlIGRyaXZlciBjYW5ub3QgaW1wbGVtZW50IHByb3BlciBzZW1hbnRp Y3MgKHdoaWNoIElNTwo+ID4gPiBpbmNsdWRlcyB0aGUgdGhyb3R0bGluZykgZm9yIHZibGFuay1z eW5jJ2Qgb3BlcmF0aW9ucyBhbmQgaXQgZG9lcyBub3QKPiA+ID4gd2FudCB0byBmYWtlIHRoZW0g d2l0aCBhIGNsb2NrLCBpdCBzaG91bGQganVzdCByZWZ1c2UgdmJsYW5rLXN5bmNlZAo+ID4gPiBv cGVyYXRpb25zLgo+ID4gCj4gPiBZZXMgcmVmdXNpbmcgdnN5bmNlZCBmbGlwcyBmb3IgdGhlc2Ug ZHJpdmVycyBzb3VuZHMgcmVhc29uYWJsZS4gQnV0Cj4gPiBwbGVhc2UgbGV0J3Mgbm90IGJha2Ug aW4gYW5vdGhlciBhc3N1bXB0aW9uIGluIHRoZSBBUEkgKG9yIHJhdGhlciwKPiA+IGxldCdzIHRy eSB0byB1bi1iYWtlIGl0KS4KPiAKPiBDb3VsZCB5b3UgYmUgbW9yZSBzcGVjaWZpYyBvbiBldmVy eXRoaW5nLCBwbGVhc2U/Cj4gCj4gV2hhdCBzaG91bGQgZHJpdmVycyBkbyBpbiBkaWZmZXJlbnQg c2l0dWF0aW9ucywgd2hhdCBndWFyYW50ZWVzIHdlIGRvCj4gaGF2ZSwgYW5kIGhvdyBkb2VzIHVz ZXJzcGFjZSBwcmVkaWN0IHRoZSBlYXJsaWVzdCBwb3NzaWJsZSBmbGlwIHRpbWU/Cj4gSG93IGRv IHlvdSBkZWZpbmUgZmxpcCB0aW1lIHRvIGJlZ2luIHdpdGgsIGlmIGl0J3Mgbm90IHRpZWQgdG8g dGhlCj4gc2Nhbm91dCBjeWNsZSAodmJsYW5rKT8KPiAKPiBIb3cgc2hvdWxkIGEgY29tcG9zaXRv ciBzY2hlZHVsZSBldmV5dGhpbmcsIGFuZCB3aGF0IGNhbiBpdCB0ZWxsIHRvIHRoZQo+IGNsaWVu dHMgYWJvdXQgdGhlIHRpbWluZ3MgaW4gdGhlIGltbWVkaWF0ZSBmdXR1cmU/Cj4gCj4gWW91IGdh dmUgbWUgdGhlIGZlZWxpbmcgdGhhdCBldmVyeXRoaW5nIEkgdGhvdWdodCBJIGtuZXcgYW5kIHJl bGllZCBvbgo+IGlzIHdyb25nLgoKSSBndWVzcyB3ZSBlaXRoZXIga2ljayBvdXQgcGFnZV9mbGlw IGZvciBhbGwgZHJpdmVycyB3aG8gZmFrZSBpdC4gQW5kIGlmCnRoYXQncyBjYXVzaW5nIHJlZ3Jl c3Npb25zIHRoZW4gd2UgcHJvYmFibHkgd2FudCB0byBmYWtlIGl0IHdpdGggYSB0aW1lci4KVW5w cmV0dHksIGJ1dCBzdWNoIGlzIHRoZSBnYW1lIG9mIGJhY2t3YXJkcyBjb21wYXQgZm9yZXZlci4g QnV0IEknbSBub3QKc3VyZSB3aGV0aGVyIHdlIGVzdGFibGlzaGVkIHRoYXQgd2UgaGF2ZSBhIHBy b2JsZW0gYWxyZWFkeSwgYXQgbGVhc3QgSSdtCm1pc3NpbmcgdXNlcnMgc2NyZWFtaW5nIGFib3V0 IHVkbC9ib2NocyAmIGZyaWVuZHMuCi1EYW5pZWwKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUg RW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==