From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [Nouveau] [PATCH 09/17] drm/radeon: use common fence implementation for fences Date: Tue, 22 Jul 2014 18:39:48 +0200 Message-ID: <53CE93D4.3010204@amd.com> References: <20140709093124.11354.3774.stgit@patser> <20140709122953.11354.46381.stgit@patser> <53CE2421.5040906@amd.com> <20140722114607.GL15237@phenom.ffwll.local> <20140722115737.GN15237@phenom.ffwll.local> <53CE56ED.4040109@vodafone.de> <20140722132652.GO15237@phenom.ffwll.local> <53CE6AFA.1060807@vodafone.de> <53CE84AA.9030703@amd.com> <53CE8A57.2000803@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5p?= =?UTF-8?B?Zw==?= Cc: Thomas Hellstrom , nouveau , LKML , dri-devel , Ben Skeggs , "Deucher, Alexander" List-Id: dri-devel@lists.freedesktop.org PiBNYXliZSBJJ3ZlIG1peGVkIHRoaW5ncyB1cCBhIGJpdCBpbiBteSBkZXNjcmlwdGlvbi4gVGhl cmUgaXMKPiBmZW5jZV9zaWduYWwgd2hpY2ggdGhlIGltcGxlbWVudG9yL2V4cG9ydGVyIG9mIGEg ZmVuY2UgbXVzdCBjYWxsIHdoZW4KPiB0aGUgZmVuY2UgaXMgY29tcGxldGVkLiBJZiB0aGUgZXhw b3J0ZXIgaGFzIGFuIC0+ZW5hYmxlX3NpZ25hbGluZwo+IGNhbGxiYWNrIGl0IGNhbiBkZWxheSB0 aGF0IGNhbGwgdG8gZmVuY2Vfc2lnbmFsIGZvciBhcyBsb25nIGFzIGl0Cj4gd2lzaGVzIGFzIGxv bmcgYXMgZW5hYmxlX3NpZ25hbGluZyBpc24ndCBjYWxsZWQgeWV0LiBCdXQgdGhhdCdzIGp1c3QK PiB0aGUgb3B0aW1pemF0aW9uIHRvIG5vdCByZXF1aXJlZCBpcnFzIHRvIGJlIHR1cm5lZCBvbiBh bGwgdGhlIHRpbWUuCj4KPiBUaGUgb3RoZXIgZnVuY3Rpb24gaXMgZmVuY2VfaXNfc2lnbmFsZWQs IHdoaWNoIGlzIHVzZWQgYnkgY29kZSB0aGF0IGlzCj4gaW50ZXJlc3RlZCBpbiB0aGUgZmVuY2Ug c3RhdGUsIHRvZ2V0aGVyIHdpdGggZmVuY2Vfd2FpdCBpZiBpdCB3YW50cyB0bwo+IGJsb2NrIGFu ZCBub3QganVzdCB3YW50cyB0byBrbm93IHRoZSBtb21lbnRhcnkgZmVuY2Ugc3RhdGUuIEFsbCB0 aGUKPiBvdGhlciBmdW5jdGlvbnMgKHRoZSBzdHVmZiB0aGF0IGFkZHMgY2FsbGJhY2tzIGFuZCB0 aGUgdmFyaW91cyBfbG9ja2VkCj4gYW5kIG90aGVyIHZlcnNpb25zKSBhcmUganVzdCBmb3IgZmFu Y3kgc3BlY2lhbCBjYXNlcy4KV2VsbCB0aGF0J3MgcmF0aGVyIGJhZCwgY2F1c2UgSVJRcyBhcmVu J3QgcmVsaWFibGUgZW5vdWdoIG9uIFJhZGVvbiBIVyAKZm9yIHN1Y2ggYSB0aGluZy4gRXNwZWNp YWxseSBvbiBQcmltZSBzeXN0ZW1zIGFuZCBNYWNzLgoKVGhhdCdzIHdoeSB3ZSBoYXZlIHRoaXMg ZmFuY3kgSFovMiB0aW1lb3V0IG9uIGFsbCBmZW5jZSB3YWl0IG9wZXJhdGlvbnMgCnRvIG1hbnVh bGx5IGNoZWNrIGlmIHRoZSBmZW5jZSBpcyBzaWduYWxlZCBvciBub3QuCgpUbyBndWFyYW50ZWUg dGhhdCBhIGZlbmNlIGlzIHNpZ25hbGVkIGFmdGVyIGVuYWJsZV9zaWduYWxpbmcgaXMgY2FsbGVk IAp3ZSB3b3VsZCBuZWVkIHRvIGZpcmUgdXAgYSBrZXJuZWwgdGhyZWFkIHdoaWNoIHBlcmlvZGlj YWxseSBjYWxscyAKZmVuY2UtPnNpZ25hbGVkLgoKQ2hyaXN0aWFuLgoKQW0gMjIuMDcuMjAxNCAx ODoyMSwgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIFR1ZSwgSnVsIDIyLCAyMDE0IGF0IDU6 NTkgUE0sIENocmlzdGlhbiBLw7ZuaWcKPiA8ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGU+IHdyb3Rl Ogo+PiBBbSAyMi4wNy4yMDE0IDE3OjQyLCBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4+Cj4+PiBP biBUdWUsIEp1bCAyMiwgMjAxNCBhdCA1OjM1IFBNLCBDaHJpc3RpYW4gS8O2bmlnCj4+PiA8Y2hy aXN0aWFuLmtvZW5pZ0BhbWQuY29tPiB3cm90ZToKPj4+PiBEcml2ZXJzIGV4cG9ydGluZyBmZW5j ZXMgbmVlZCB0byBwcm92aWRlIGEgZmVuY2UtPnNpZ25hbGVkIGFuZCBhCj4+Pj4gZmVuY2UtPndh aXQKPj4+PiBmdW5jdGlvbiwgZXZlcnl0aGluZyBlbHNlIGxpa2UgZmVuY2UtPmVuYWJsZV9zaWdu YWxpbmcgb3IgY2FsbGluZwo+Pj4+IGZlbmNlX3NpZ25hbGVkKCkgZnJvbSB0aGUgZHJpdmVyIGlz IG9wdGlvbmFsLgo+Pj4+Cj4+Pj4gRHJpdmVycyB3YW50aW5nIHRvIHVzZSBleHBvcnRlZCBmZW5j ZXMgZG9uJ3QgY2FsbCBmZW5jZS0+c2lnbmFsZWQgb3IKPj4+PiBmZW5jZS0+d2FpdCBpbiBhdG9t aWMgb3IgaW50ZXJydXB0IGNvbnRleHQsIGFuZCBub3Qgd2l0aCBob2xkaW5nIGFueQo+Pj4+IGds b2JhbAo+Pj4+IGxvY2tpbmcgcHJpbWl0aXZlcyAobGlrZSBtbWFwX3NlbSBldGMuLi4pLiBIb2xk aW5nIGxvY2tpbmcgcHJpbWl0aXZlcwo+Pj4+IGxvY2FsCj4+Pj4gdG8gdGhlIGRyaXZlciBpcyBv aywgYXMgbG9uZyBhcyB0aGV5IGRvbid0IGNvbmZsaWN0IHdpdGggYW55dGhpbmcKPj4+PiBwb3Nz aWJsZQo+Pj4+IHVzZWQgYnkgdGhlaXIgb3duIGZlbmNlIGltcGxlbWVudGF0aW9uLgo+Pj4gV2Vs bCB0aGF0J3MgYWxtb3N0IHdoYXQgd2UgaGF2ZSByaWdodCBub3cgd2l0aCB0aGUgZXhjZXB0aW9u IHRoYXQKPj4+IGRyaXZlcnMgYXJlIGFsbG93ZWQgKGFjdHVhbGx5IG11c3QgZm9yIGNvcnJlY3Ru ZXNzIHdoZW4gdXBkYXRpbmcKPj4+IGZlbmNlcykgdGhlIHd3X211dGV4ZXMgZm9yIGRtYS1idWZz IChvciBvdGhlciBidWZmZXIgb2JqZWN0cykuCj4+Cj4+IEluIHRoaXMgY2FzZSBzb3JyeSBmb3Ig c28gbXVjaCBub2lzZS4gSSByZWFsbHkgaGF2ZW4ndCBsb29rZWQgaW4gc28gbXVjaAo+PiBkZXRh aWwgaW50byBhbnl0aGluZyBidXQgTWFhcnRlbidzIFJhZGVvbiBwYXRjaGVzLgo+Pgo+PiBCdXQg aG93IGRvZXMgdGhhdCB0aGVuIHdvcmsgcmlnaHQgbm93PyBNeSBpbXByZXNzaW9uIHdhcyB0aGF0 IGl0J3MgbWFuZGF0b3J5Cj4+IGZvciBkcml2ZXJzIHRvIGNhbGwgZmVuY2Vfc2lnbmFsZWQoKT8K PiBNYXliZSBJJ3ZlIG1peGVkIHRoaW5ncyB1cCBhIGJpdCBpbiBteSBkZXNjcmlwdGlvbi4gVGhl cmUgaXMKPiBmZW5jZV9zaWduYWwgd2hpY2ggdGhlIGltcGxlbWVudG9yL2V4cG9ydGVyIG9mIGEg ZmVuY2UgbXVzdCBjYWxsIHdoZW4KPiB0aGUgZmVuY2UgaXMgY29tcGxldGVkLiBJZiB0aGUgZXhw b3J0ZXIgaGFzIGFuIC0+ZW5hYmxlX3NpZ25hbGluZwo+IGNhbGxiYWNrIGl0IGNhbiBkZWxheSB0 aGF0IGNhbGwgdG8gZmVuY2Vfc2lnbmFsIGZvciBhcyBsb25nIGFzIGl0Cj4gd2lzaGVzIGFzIGxv bmcgYXMgZW5hYmxlX3NpZ25hbGluZyBpc24ndCBjYWxsZWQgeWV0LiBCdXQgdGhhdCdzIGp1c3QK PiB0aGUgb3B0aW1pemF0aW9uIHRvIG5vdCByZXF1aXJlZCBpcnFzIHRvIGJlIHR1cm5lZCBvbiBh bGwgdGhlIHRpbWUuCj4KPiBUaGUgb3RoZXIgZnVuY3Rpb24gaXMgZmVuY2VfaXNfc2lnbmFsZWQs IHdoaWNoIGlzIHVzZWQgYnkgY29kZSB0aGF0IGlzCj4gaW50ZXJlc3RlZCBpbiB0aGUgZmVuY2Ug c3RhdGUsIHRvZ2V0aGVyIHdpdGggZmVuY2Vfd2FpdCBpZiBpdCB3YW50cyB0bwo+IGJsb2NrIGFu ZCBub3QganVzdCB3YW50cyB0byBrbm93IHRoZSBtb21lbnRhcnkgZmVuY2Ugc3RhdGUuIEFsbCB0 aGUKPiBvdGhlciBmdW5jdGlvbnMgKHRoZSBzdHVmZiB0aGF0IGFkZHMgY2FsbGJhY2tzIGFuZCB0 aGUgdmFyaW91cyBfbG9ja2VkCj4gYW5kIG90aGVyIHZlcnNpb25zKSBhcmUganVzdCBmb3IgZmFu Y3kgc3BlY2lhbCBjYXNlcy4KPgo+Pj4gTG9ja2luZwo+Pj4gY29ycmVjdG5lc3MgaXMgZW5mb3Jj ZWQgd2l0aCBzb21lIGV4dHJlbWVseSBuYXN0eSBsb2NrZGVwIGFubm90YXRpb25zCj4+PiArIGFk ZGl0aW9uYWwgZGVidWdnaW5nIGluZnJhc3RydWN0dXJlIGVuYWJsZWQgd2l0aAo+Pj4gQ09ORklH X0RFQlVHX1dXX01VVEVYX1NMT1dQQVRILiBXZSByZWFsbHkgbmVlZCB0byBiZSBhYmxlIHRvIGhv bGQKPj4+IGRtYS1idWYgd3dfbXV0ZXhlcyB3aGlsZSB1cGRhdGluZyBmZW5jZXMgb3Igd2FpdGlu ZyBmb3IgdGhlbS4gQW5kCj4+PiBvYnZpb3VzbHkgZm9yIC0+d2FpdCB3ZSBuZWVkIG5vbi1hdG9t aWMgY29udGV4dCwgbm90IGp1c3QKPj4+IG5vbi1pbnRlcnJ1cHQuCj4+Cj4+IFNvdW5kcyBtb3N0 bHkgcmVhc29uYWJsZSwgYnV0IGZvciBob2xkaW5nIHRoZSBkbWEtYnVmIHd3X211dGV4LCB3b3Vs ZG4ndCBiZQo+PiBhbiBSQ1UgYmUgbW9yZSBhcHByb3ByaWF0ZSBoZXJlPyBFLmcuIGFyZW4ndCB3 ZSBqdXN0IGludGVyZXN0ZWQgdGhhdCB0aGUKPj4gY3VycmVudCBhc3NpZ25lZCBmZW5jZSBhdCBz b21lIHBvaW50IGlzIHNpZ25hbGVkPwo+IFllYWgsIGFzIGFuIG9wdGltaXphdGlvbiB5b3UgY2Fu IGdldCB0aGUgc2V0IG9mIGN1cnJlbnRseSBhdHRhY2hlZAo+IGZlbmNlcyB0byBhIGRtYS1idWYg d2l0aCBqdXN0IHJjdS4gQnV0IGlmIHlvdSB1cGRhdGUgdGhlIHNldCBvZiBmZW5jZXMKPiBhdHRh Y2hlZCB0byBhIGRtYS1idWYgKGUuZy4gcmFkZW9uIGJsaXRzIHRoZSBuZXdseSByZW5kZXJlZCBm cmFtZSB0byBhCj4gZG1hLWJ1ZiBleHBvcnRlZCBieSBpOTE1IGZvciBzY2Fub3V0IG9uIGk5MTUp IHRoZW4geW91IG5lZWQgYSB3cml0ZQo+IGxvY2sgb24gdGhhdCBidWZmZXIuIFdoaWNoIGlzIHdo YXQgdGhlIHd3X211dGV4IGlzIGZvciwgdG8gbWFrZSBzdXJlCj4gdGhhdCB5b3UgZG9uJ3QgZGVh ZGxvY2sgd2l0aCBpOTE1IGRvaW5nIGNvbmN1cnJlbnQgb3BzIG9uIHRoZSBzYW1lCj4gdW5kZXJs eWluZyBidWZmZXIuCj4KPj4gU29tZXRoaW5nIGxpa2UgZ3JhYiB3d19tdXRleGVzLCBncmFiIGEg cmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGZlbmNlCj4+IG9iamVjdCwgcmVsZWFzZSB3d19tdXRl eCwgd2FpdCBmb3IgZmVuY2UsIHJlbGVhc2UgcmVmZXJlbmNlIHRvIHRoZSBmZW5jZQo+PiBvYmpl Y3QuCj4gWWVhaCwgaWYgdGhlIG9ubHkgdGhpbmcgeW91IHdhbnQgdG8gZG8gaXMgd2FpdCBmb3Ig ZmVuY2VzLCB0aGVuIHRoZQo+IHJjdS1wcm90ZWN0ZWQgZmVuY2UgcmVmIGdyYWJiaW5nICsgbG9j a2xlc3Mgd2FpdGluZyBpcyBhbGwgeW91IG5lZWQuCj4gQnV0IGUuZy4gaW4gYW4gZXhlY2J1ZiB5 b3UgYWxzbyBuZWVkIHRvIHVwZGF0ZSBmZW5jZXMgYW5kIG1heWJlIGRlZXAKPiBkb3duIGluIHRo ZSByZXNlcnZhdGlvbiBjb2RlIHlvdSBub3RpY2UgdGhhdCB5b3UgbmVlZCB0byBldmljdCBzb21l Cj4gc3R1ZmYgYW5kIHNvIG5lZWQgdG8gd2FpdCBvbiBzb21lIG90aGVyIGd1eSB0byBmaW5pc2gs IGFuZCBpdCdzIHRvbwo+IGNvbXBsaWNhdGVkIHRvIGRyb3AgYW5kIHJlYWNxdWlyZSBhbGwgdGhl IGxvY2tzLiBPciB5b3Ugc2ltcGx5IG5lZWQgdG8KPiBkbyBhIGJsb2NraW5nIHdhaXQgb24gb3Ro ZXIgZ3B1cyAoYmVjYXVzZSB0aGVyZSdzIG5vIGRpcmVjdCBodyBzeW5jCj4gbWVjaGFuaXNtKSBh bmQgYWdhaW4gZHJvcHBpbmcgbG9ja3Mgd291bGQgbmVlZGxlc3NseSBjb21wbGljYXRlIHRoZQo+ IGNvZGUuIFNvIEkgdGhpbmsgd2Ugc2hvdWxkIGFsbG93IHRoaXMganVzdCB0byBhdm9pZCB0b28g aGFpcnkvYnJpdHRsZQo+IChhbmQgYWxtb3N0IGRlZmluaXRlbHkgbGl0dGxlIHRlc3RlZCBjb2Rl KSBpbiBkcml2ZXJzLgo+Cj4gQWZhaWsgdGhpcyBpcyBhbHNvIHRoZSBzYW1lIHdheSB0dG0gY3Vy cmVudGx5IGhhbmRsZXMgdGhpbmdzIHdydAo+IGJ1ZmZlciByZXNlcnZhdGlvbiBhbmQgZXZpY3Rp b24uCj4KPj4+IEFncmVlZCB0aGF0IGFueSBzaGFyZWQgbG9ja3MgYXJlIG91dCBvZiB0aGUgd2F5 IChlc3BlY2lhbGx5IHN0dWZmIGxpa2UKPj4+IGRldi0+c3RydWN0X211dGV4IG9yIG90aGVyIG5v bi1zdHJpY3RseSBkcml2ZXItcHJpdmF0ZSBzdHVmZiwgaTkxNSBpcwo+Pj4gcmVhbGx5IGJhZCBo ZXJlIHN0aWxsKS4KPj4KPj4gWWVhaCB0aGF0J3MgYWxzbyBhbiBwb2ludCBJJ3ZlIHdhbnRlZCB0 byBub3RlIG9uIE1hYXJ0ZW5zIHBhdGNoLiBSYWRlb24KPj4gZ3JhYnMgdGhlIHJlYWQgc2lkZSBv ZiBpdCdzIGV4Y2x1c2l2ZSBzZW1hcGhvcmUgd2hpbGUgd2FpdGluZyBmb3IgZmVuY2VzCj4+IChi ZWNhdXNlIGl0IGFzc3VtZXMgdGhhdCB0aGUgZmVuY2UgaXQgd2FpdHMgZm9yIGlzIGEgUmFkZW9u IGZlbmNlKS4KPj4KPj4gQXNzdW1pbmcgdGhhdCB3ZSBuZWVkIHRvIHdhaXQgaW4gYm90aCBkaXJl Y3Rpb25zIHdpdGggUHJpbWUgKGUuZy4gSW50ZWwKPj4gZHJpdmVyIG5lZWRzIHRvIHdhaXQgZm9y IFJhZGVvbiB0byBmaW5pc2ggcmVuZGVyaW5nIGFuZCBSYWRlb24gbmVlZHMgdG8gd2FpdAo+PiBm b3IgSW50ZWwgdG8gZmluaXNoIGRpc3BsYXlpbmcpLCB0aGlzIG1pZ2h0IGJlY29tZSBhIHBlcmZl Y3QgZXhhbXBsZSBvZgo+PiBsb2NraW5nIGludmVyc2lvbi4KPiBmZW5jZSB1cGRhdGVzIGFyZSBh dG9taWMgb24gYSBkbWEtYnVmLCBwcm90ZWN0ZWQgYnkgd3dfbXV0ZXguIFRoZSBuZWF0Cj4gdHJp Y2sgb2Ygd3dfbXV0ZXggaXMgdGhhdCB0aGV5IGVuZm9yY2UgYSBnbG9iYWwgb3JkZXJpbmcsIHNv IGluIHlvdXIKPiBzY2VuYXJpbyBlaXRoZXIgaTkxNSBvciByYWRlb24gd291bGQgYmUgZmlyc3Qg YW5kIHlvdSBjYW4ndCBkZWFkbG9jay4KPiBUaGVyZSBpcyBubyB3YXkgdG8gaW50ZXJsZWF2ZSBh bnl0aGluZyBldmVuIGlmIHlvdSBoYXZlIGxvdHMgb2YKPiBidWZmZXJzIHNoYXJlZCBiZXR3ZWVu IGk5MTUvcmFkZW9uLiBXcnQgZGVhZGxvY2tpbmcgaXQncyBleGFjdGx5IHRoZQo+IHNhbWUgZ3Vh cmFudGVlcyBhcyB0aGUgbWFnaWMgdHRtIHByb3ZpZGVzIGZvciBqdXN0IG9uZSBkcml2ZXIgd2l0 aAo+IGNvbmN1cnJlbnQgY29tbWFuZCBzdWJtaXNzaW9uIHNpbmNlIGl0J3MgdGhlIHNhbWUgaWRl YS4KPgo+Pj4gU28gZnJvbSB0aGUgY29yZSBmZW5jZSBmcmFtZXdvcmsgSSB0aGluayB3ZSBhbHJl YWR5IGhhdmUgZXhhY3RseSB0aGlzLAo+Pj4gYW5kIHdlIG9ubHkgbmVlZCB0byBhZGp1c3QgdGhl IHJhZGVvbiBpbXBsZW1lbnRhdGlvbiBhIGJpdCB0byBtYWtlIGl0Cj4+PiBsZXNzIHJpc2t5IGFu ZCBpbnZhc2l2ZSB0byB0aGUgcmFkZW9uIGRyaXZlciBsb2dpYy4KPj4KPj4gQWdyZWUuIFdlbGwg dGhlIGJpZ2dlc3QgcHJvYmxlbSBJIHNlZSBpcyB0aGF0IGV4Y2x1c2l2ZSBzZW1hcGhvcmUgSSBu ZWVkIHRvCj4+IHRha2Ugd2hlbiBhbnl0aGluZyBjYWxscyBpbnRvIHRoZSBkcml2ZXIuIEZvciB0 aGUgZmVuY2UgY29kZSBJIG5lZWQgdG8gbW92ZQo+PiB0aGF0IGRvd24gaW50byB0aGUgZmVuY2Ut PnNpZ25hbGVkIGhhbmRsZXIsIGNhdXNlIHRoYXQgbm93IGNhbiBiZSBjYWxsZWQKPj4gZnJvbSBv dXRzaWRlIHRoZSBkcml2ZXIuCj4+Cj4+IE1hYXJ0ZW4gc29sdmVkIHRoaXMgYnkgdGVsbGluZyB0 aGUgZHJpdmVyIGluIHRoZSBsb2NrdXAgaGFuZGxlciAod2hlcmUgd2UKPj4gZ3JhYiB0aGUgd3Jp dGUgc2lkZSBvZiB0aGUgZXhjbHVzaXZlIGxvY2spIHRoYXQgYWxsIGludGVycnVwdHMgYXJlIGFs cmVhZHkKPj4gZW5hYmxlZCwgc28gdGhhdCBmZW5jZS0+c2lnbmFsZWQgaG9wZWZ1bGx5IHdvdWxk bid0IG1lc3Mgd2l0aCB0aGUgaGFyZHdhcmUKPj4gYXQgYWxsLiBXaGlsZSB0aGlzIHByb2JhYmx5 IHdvcmtzLCBpdCBqdXN0IGxlYXZlcyBtZSB3aXRoIGEgZmVlbGluZyB0aGF0IHdlCj4+IGFyZSBk b2luZyBzb21ldGhpbmcgd3JvbmcgaGVyZS4KPiBJJ20gbm90IHZlcnNlZCBvbiB0aGUgZGV0YWls cyBpbiByZWFkb24sIGJ1dCBvbiBpOTE1IHdlIGNhbiBhdHRhY2ggYQo+IG1lbW9yeSBsb2NhdGlv biBhbmQgY29va2llIHZhbHVlIHRvIGVhY2ggZmVuY2UgYW5kIGp1c3QgZG8gYSBtZW1vcnkKPiBm ZXRjaCB0byBmaWd1cmUgb3V0IHdoZXRoZXIgdGhlIGZlbmNlIGhhcyBwYXNzZWQgb3Igbm90LiBT byBubyBsb2NraW5nCj4gbmVlZGVkIGF0IGFsbC4gT2YgY291cnNlIHRoZSBmZW5jZSBpdHNlbGYg bmVlZHMgdG8gbG9jayBhIHJlZmVyZW5jZQo+IG9udG8gdGhhdCBtZW1vcnkgbG9jYXRpb24sIHdo aWNoIGlzIGEgbmVhdCBwaWVjZSBvZiBpbnRlZ3JhdGlvbiB3b3JrCj4gdGhhdCB3ZSBzdGlsbCBu ZWVkIHRvIHRhY2tsZSBpbiBzb21lIGNhc2VzIC0gdGhlcmUncyBjb25mbGljdGluZyBwYXRjaAo+ IHNlcmllcyBhbGwgb3ZlciB0aGlzIDstKQo+Cj4gQnV0IGxpa2UgSSd2ZSBzYWlkIGZlbmNlLT5z aWduYWxlZCBpcyBvcHRpb25hbCBzbyB5b3UgZG9uJ3QgbmVlZCB0aGlzCj4gbmVjZXNzYXJpbHks IGFzIGxvbmcgYXMgcmFkZW9uIGV2ZW50dWFsbHkgY2FsbHMgZmVuY2Vfc2lnbmFsZWQgb25jZQo+ IHRoZSBmZW5jZSBoYXMgY29tcGxldGVkLgo+IC1EYW5pZWwKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==