From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Siqueira Subject: Re: [PATCH 00/10] drm/vkms: rework crc worker Date: Tue, 18 Jun 2019 18:54:16 -0300 Message-ID: References: <20190606222751.32567-1-daniel.vetter@ffwll.ch> <20190612144220.GO2458@phenom.ffwll.local> <20190618024904.nd3iuhyi4orkplu2@smtp.gmail.com> <20190618085647.GO12905@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-vk1-xa43.google.com (mail-vk1-xa43.google.com [IPv6:2607:f8b0:4864:20::a43]) by gabe.freedesktop.org (Postfix) with ESMTPS id D93986E260 for ; Tue, 18 Jun 2019 21:54:28 +0000 (UTC) Received: by mail-vk1-xa43.google.com with SMTP id 9so146321vkw.4 for ; Tue, 18 Jun 2019 14:54:28 -0700 (PDT) In-Reply-To: <20190618085647.GO12905@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Daniel Vetter , DRI Development List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKdW4gMTgsIDIwMTkgYXQgNTo1NiBBTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3 bGwuY2g+IHdyb3RlOgo+Cj4gT24gTW9uLCBKdW4gMTcsIDIwMTkgYXQgMTE6NDk6MDRQTSAtMDMw MCwgUm9kcmlnbyBTaXF1ZWlyYSB3cm90ZToKPiA+IE9uIDA2LzEyLCBEYW5pZWwgVmV0dGVyIHdy b3RlOgo+ID4gPiBPbiBXZWQsIEp1biAxMiwgMjAxOSBhdCAxMDoyODo0MUFNIC0wMzAwLCBSb2Ry aWdvIFNpcXVlaXJhIHdyb3RlOgo+ID4gPiA+IEhpIERhbmllbCwKPiA+ID4gPgo+ID4gPiA+IEZp cnN0IG9mIGFsbCwgdGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgeW91ciBwYXRjaHNldC4KPiA+ID4g Pgo+ID4gPiA+IEkgdHJpZWQgdG8gbWFrZSBhIGRldGFpbGVkIHJldmlldyBvZiB5b3VyIHNlcmll cywgYW5kIHlvdSBjYW4gc2VlIG15Cj4gPiA+ID4gY29tbWVudHMgaW4gZWFjaCBwYXRjaC4gWW91 4oCZbGwgbm90aWNlIHRoYXQgSSBhc2tlZCBtYW55IHRoaW5ncyByZWxhdGVkCj4gPiA+ID4gdG8g dGhlIERSTSBzdWJzeXN0ZW0gd2l0aCB0aGUgaG9wZSB0aGF0IEkgY291bGQgbGVhcm4gYSBsaXR0 bGUgYml0Cj4gPiA+ID4gbW9yZSBhYm91dCBEUk0gZnJvbSB5b3VyIGNvbW1lbnRzLgo+ID4gPiA+ Cj4gPiA+ID4gQmVmb3JlIHlvdSBnbyB0aHJvdWdoIHRoZSByZXZpZXcsIEkgd291bGQgbGlrZSB0 byBzdGFydCBhIGRpc2N1c3Npb24KPiA+ID4gPiBhYm91dCB0aGUgdmttcyByYWNlIGNvbmRpdGlv bnMuIEZpcnN0LCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBJIGRpZCBub3QKPiA+ID4gPiB1bmRlcnN0 YW5kIHRoZSByYWNlIGNvbmRpdGlvbnMgdGhhdCB5b3UgZGVzY3JpYmVkIGJlZm9yZSBiZWNhdXNl IEkKPiA+ID4gPiBjb3VsZG7igJl0IHJlcHJvZHVjZSB0aGVtLiBOb3csIEknbSBzdXNwZWN0aW5n IHRoYXQgSSBjb3VsZCBub3QKPiA+ID4gPiBleHBlcmllbmNlIHRoZSBwcm9ibGVtIGJlY2F1c2Ug SSdtIHVzaW5nIFFFTVUgd2l0aCBLVk07IHdpdGggdGhpcyBpZGVhCj4gPiA+ID4gaW4gbWluZCwg SSBzdXBwb3NlIHRoYXQgd2UgaGF2ZSB0d28gc2NlbmFyaW9zIGZvciB1c2luZyB2a21zIGluIGEK PiA+ID4gPiB2aXJ0dWFsIG1hY2hpbmU6Cj4gPiA+ID4KPiA+ID4gPiAqIFNjZW5hcmlvIDE6IFRo ZSB1c2VyIGhhcyBoYXJkd2FyZSB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0OyBpbiB0aGlzCj4gPiA+ ID4gY2FzZSwgaXQgaXMgYSBsaXR0bGUgYml0IGhhcmRlciB0byBleHBlcmllbmNlIHJhY2UgY29u ZGl0aW9ucyB3aXRoCj4gPiA+ID4gdmttcy4KPiA+ID4gPgo+ID4gPiA+ICogU2NlbmFyaW8gMjog V2l0aG91dCBoYXJkd2FyZSB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0LCBpdCBpcyBtdWNoCj4gPiA+ ID4gZWFzaWVyIHRvIGV4cGVyaWVuY2UgcmFjZSBjb25kaXRpb25zLgo+ID4gPiA+Cj4gPiA+ID4g V2l0aCB0aGVzZSB0d28gc2NlbmFyaW9zIGluIG1pbmQsIEkgY29uZHVjdGVkIGEgYnVuY2ggb2Yg ZXhwZXJpbWVudHMKPiA+ID4gPiBmb3IgdHJ5aW5nIHRvIHNoZWQgbGlnaHQgb24gdGhpcyBpc3N1 ZS4gSSBkaWQ6Cj4gPiA+ID4KPiA+ID4gPiAxLiBFbmFibGVkIGxvY2tkZXAKPiA+ID4gPgo+ID4g PiA+IDIuIERlZmluZWQgdHdvIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgZm9yIHRlc3RpbmcgYm90 aCB1c2luZyBRRU1VIHdpdGgKPiA+ID4gPiBhbmQgd2l0aG91dCBrdm0uIFNlZSBiZWxvdyB0aGUg UUVNVSBoYXJkd2FyZSBvcHRpb25zOgo+ID4gPiA+Cj4gPiA+ID4gKiBlbnZfa3ZtOiAtZW5hYmxl LWt2bSAtZGFlbW9uaXplIC1tIDFHIC1zbXAgY29yZXM9MixjcHVzPTIKPiA+ID4gPiAqIGVudl9u b19rdm06IC1kYWVtb25pemUgLW0gMkcgLXNtcCBjb3Jlcz00LGNwdXM9NAo+ID4gPiA+Cj4gPiA+ ID4gMy4gTXkgdGVzdCBwcm90b2NvbDogSSkgdHVybiBvbiB0aGUgdm0sIElJKSBjbGVhbiAvcHJv Yy9sb2NrX3N0YXQsCj4gPiA+ID4gSUlJKSBleGVjdXRlIGttc19jdXJzb3JfY3JjLCBJSUkpIHNh dmUgdGhlIGxvY2tfc3RhdCBmaWxlLCBhbmQgSVYpCj4gPiA+ID4gdHVybiBvZmYgdGhlIHZtLgo+ ID4gPiA+Cj4gPiA+ID4gNC4gRnJvbSB0aGUgbG9ja2RlcF9zdGF0LCBJIGp1c3QgaGlnaGxpZ2h0 ZWQgdGhlIHJvdyByZWxhdGVkIHRvIHZrbXMKPiA+ID4gPiBhbmQgdGhlIGNvbHVtbnMgaG9sZHRp bWUtdG90YWwgYW5kIGhvbGR0aW1lLWF2Zwo+ID4gPiA+Cj4gPiA+ID4gSSB3b3VsZCBsaWtlIHRv IGhpZ2hsaWdodCB0aGF0IHRoZSBmb2xsb3dpbmcgZGF0YSBkb2VzIG5vdCBoYXZlIGFueQo+ID4g PiA+IHN0YXRpc3RpY2FsIGFwcHJvYWNoLCBhbmQgaXRzIGludGVudGlvbiBpcyBzb2xlbHkgdG8g YXNzaXN0IG91cgo+ID4gPiA+IGRpc2N1c3Npb24uIFNlZSBiZWxvdyB0aGUgc3VtbWFyeSBvZiB0 aGUgY29sbGVjdGVkIGRhdGE6Cj4gPiA+ID4KPiA+ID4gPiBTdW1tYXJ5IG9mIHRoZSBleHBlcmlt ZW50IHJlc3VsdHM6Cj4gPiA+ID4KPiA+ID4gPiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ID4gfCAgICAgICAgICAgICAgICB8ICAgICBl bnZfa3ZtICAgIHwgICBlbnZfbm9fa3ZtICAgfAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gPiB8IFRlc3QgICAgICAgICAg IHwgQmVmb3JlIHwgQWZ0ZXIgfCBCZWZvcmUgfCBBZnRlciB8Cj4gPiA+ID4gKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tKwo+ID4gPiA+IHwga21zX2N1 cnNvcl9jcmMgfCAgIFMxICAgfCAgIFMyICB8ICAgTTEgICB8ICAgTTIgIHwKPiA+ID4gPiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0rCj4gPiA+ID4K PiA+ID4gPiAqIEJlZm9yZTogYmVmb3JlIGFwcGx5IHRoaXMgcGF0Y2hzZXQKPiA+ID4gPiAqIEFm dGVyOiBhZnRlciBhcHBseSB0aGlzIHBhdGNoc2V0Cj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KPiA+ID4gPiBTMTogV2l0aG91dCB0aGlzIHBhdGNoc2V0IGFuZCB3aXRoIGt2bSAgIHwg aG9sZHRpbWUtdG90YWwgfCBob2xkdGltZS1hdmcKPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KPiA+ ID4gPiAmKCZ2a21zX291dC0+bG9jayktPnJsb2NrOiAgICAgICAgICAgICAgIHwgIDIxOTgzLjUy ICAgICAgfCAgNi4yMQo+ID4gPiA+ICh3b3JrX2NvbXBsZXRpb24pKCZ2a21zX3N0YXRlLT5jcmNf d286ICAgfCAgMjAuNDcgICAgICAgICB8ICAyMC40Nwo+ID4gPiA+ICh3cV9jb21wbGV0aW9uKXZr bXNfY3JjX3dvcmtxOiAgICAgICAgICAgfCAgMzk5OTUwNy44NyAgICB8ICAzMzUyLjQ4Cj4gPiA+ ID4gJigmdmttc19vdXQtPnN0YXRlX2xvY2spLT5ybG9jazogICAgICAgICB8ICAzNzguNDcgICAg ICAgIHwgIDAuMzAKPiA+ID4gPiAod29ya19jb21wbGV0aW9uKSgmdmttc19zdGF0ZS0+Y3JjXyMy OiAgIHwgIDM5OTkwNjYuMzAgICAgfCAgMjg0OC4zNAo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQo+ ID4gPiA+IFMyOiBXaXRoIHRoaXMgcGF0Y2hzZXQgYW5kIHdpdGgga3ZtICAgICAgfCAgICAgICAg ICAgICAgICB8Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCj4gPiA+ID4gJigmdmttc19vdXQtPmxv Y2spLT5ybG9jazogICAgICAgICAgICAgICB8ICAyMzI2Mi44MyAgICAgIHwgIDYuMzQKPiA+ID4g PiAod29ya19jb21wbGV0aW9uKSgmdmttc19zdGF0ZS0+Y3JjX3dvOiAgIHwgIDguOTggICAgICAg ICAgfCAgOC45OAo+ID4gPiA+ICYoJnZrbXNfb3V0LT5jcmNfbG9jayktPnJsb2NrOiAgICAgICAg ICAgfCAgMzA3LjI4ICAgICAgICB8ICAwLjMyCj4gPiA+ID4gKHdxX2NvbXBsZXRpb24pdmttc19j cmNfd29ya3E6ICAgICAgICAgICB8ICA2NTY3NzI3LjA1ICAgIHwgIDEyMzQ1LjM1Cj4gPiA+ID4g KHdvcmtfY29tcGxldGlvbikoJnZrbXNfc3RhdGUtPmNyY18jMjogICB8ICA2NTY3MTM1LjE1ICAg IHwgIDQ0ODguODEKPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KPiA+ID4gPiBNMTogV2l0aG91dCB0 aGlzIHBhdGNoc2V0IGFuZCB3aXRob3V0IGt2bXwgICAgICAgICAgICAgICAgfAo+ID4gPiA+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQo+ID4gPiA+ICYoJnZrbXNfb3V0LT5zdGF0ZV9sb2NrKS0+cmxvY2s6ICAg ICAgICAgfCAgNDk5NC43MiAgICAgICB8ICAxLjYxCj4gPiA+ID4gJigmdmttc19vdXQtPmxvY2sp LT5ybG9jazogICAgICAgICAgICAgICB8ICAyNDcxOTAuMDQgICAgIHwgIDM5LjM5Cj4gPiA+ID4g KHdvcmtfY29tcGxldGlvbikoJnZrbXNfc3RhdGUtPmNyY193bzogICB8ICAzMS4zMiAgICAgICAg IHwgIDMxLjMyCj4gPiA+ID4gKHdxX2NvbXBsZXRpb24pdmttc19jcmNfd29ya3E6ICAgICAgICAg ICB8ICAyMDk5MTA3My43OCAgIHwgIDEzNTI1LjE4Cj4gPiA+ID4gKHdvcmtfY29tcGxldGlvbiko JnZrbXNfc3RhdGUtPmNyY18jMjogICB8ICAyMDk4ODM0Ny4xOCAgIHwgIDExOTA0LjkwCj4gPiA+ ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCj4gPiA+ID4gTTI6IFdpdGggdGhpcyBwYXRjaHNldCBhbmQgd2l0 aG91dCBrdm0gICB8ICAgICAgICAgICAgICAgIHwKPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KPiA+ ID4gPiAod3FfY29tcGxldGlvbil2a21zX2NyY193b3JrcTogICAgICAgICAgIHwgIDQyODE5MTYx LjY4ICAgfCAgMzY1OTcuNTcKPiA+ID4gPiAmKCZ2a21zX291dC0+bG9jayktPnJsb2NrOiAgICAg ICAgICAgICAgIHwgIDI1MTI1Ny4wNiAgICAgfCAgMzUuODAKPiA+ID4gPiAod29ya19jb21wbGV0 aW9uKSgmdmttc19zdGF0ZS0+Y3JjX3dvOiAgIHwgIDY5LjM3ICAgICAgICAgfCAgNjkuMzcKPiA+ ID4gPiAmKCZ2a21zX291dC0+Y3JjX2xvY2spLT5ybG9jazogICAgICAgICAgIHwgIDM2MjAuOTIg ICAgICAgfCAgMS41NAo+ID4gPiA+ICh3b3JrX2NvbXBsZXRpb24pKCZ2a21zX3N0YXRlLT5jcmNf IzI6ICAgfCAgNDI4MDM0MTkuNTkgICB8ICAyNDMwNi4zMQo+ID4gPiA+Cj4gPiA+ID4gRmlyc3Qs IEkgYW5hbHl6ZWQgdGhlIHNjZW5hcmlvcyB3aXRoIEtWTSAoUzEgYW5kIFMyKTsgbW9yZQo+ID4g PiA+IHNwZWNpZmljYWxseSwgSSBmb2N1c2VkIG9uIHRoZXNlIHR3byBjbGFzc2VzOgo+ID4gPiA+ Cj4gPiA+ID4gMS4gKHdvcmtfY29tcGxldGlvbikoJnZrbXNfc3RhdGUtPmNyY193bwo+ID4gPiA+ IDIuICh3b3JrX2NvbXBsZXRpb24pKCZ2a21zX3N0YXRlLT5jcmNfIzIKPiA+ID4gPgo+ID4gPiA+ IEFmdGVyIHRha2luZyBhIGxvb2sgYXQgdGhlIGRhdGEsIGl0IGxvb2tzIGxpa2UgdGhhdCB0aGlz IHBhdGNoc2V0Cj4gPiA+ID4gZ3JlYXRseSByZWR1Y2VzIHRoZSBob2xkIHRpbWUgYXZlcmFnZSBm b3IgY3JjX3dvLiBPbiB0aGUgb3RoZXIgaGFuZCwKPiA+ID4gPiBpdCBpbmNyZWFzZXMgdGhlIGhv bGQgdGltZSBhdmVyYWdlIGZvciBjcmNfIzIuIEkgZGlkbuKAmXQgdW5kZXJzdGFuZAo+ID4gPiA+ IHdlbGwgdGhlIHJlYXNvbiBmb3IgdGhlIGRpZmZlcmVuY2UuIENvdWxkIHlvdSBoZWxwIG1lIGhl cmU/Cj4gPiA+Cj4gPiA+IFNvIHRoZXJlJ3MgdHdvIHJlYWwgbG9ja3MgaGVyZSBmcm9tIG91ciBj b2RlLCB0aGUgb25lcyB5b3UgY2FuIHNlZSBhcwo+ID4gPiBzcGlubG9ja3M6Cj4gPiA+Cj4gPiA+ ICYoJnZrbXNfb3V0LT5zdGF0ZV9sb2NrKS0+cmxvY2s6ICAgICAgICAgfCAgNDk5NC43MiAgICAg ICB8ICAxLjYxCj4gPiA+ICYoJnZrbXNfb3V0LT5sb2NrKS0+cmxvY2s6ICAgICAgICAgICAgICAg fCAgMjQ3MTkwLjA0ICAgICB8ICAzOS4zOQo+ID4gPgo+ID4gPiBBbGwgdGhlIG90aGVycyBhcmUg ZmFrZSBsb2NrcyB0aGF0IHRoZSB3b3JrcXVldWUgYWRkcywgd2hpY2ggb25seSBleGlzdCBpbgo+ ID4gPiBsb2NrZGVwLiBUaGV5IGFyZSB1c2VkIHRvIGNhdGNoIHNwZWNpYWwga2luZHMgb2YgZGVh ZGxvY2tzIGxpa2UgdGhlIGJlbG93Ogo+ID4gPgo+ID4gPiB0aHJlYWQgQToKPiA+ID4gMS4gbXV0 ZXhfbG9jayhtdXRleF9BKQo+ID4gPiAyLiBmbHVzaF93b3JrKHdvcmtfQSkKPiA+ID4KPiA+ID4g dGhyZWFkIEIKPiA+ID4gMS4gcnVubmluZyB3b3JrX0E6Cj4gPiA+IDIuIG11dGV4X2xvY2sobXV0 ZXhfQSkKPiA+ID4KPiA+ID4gdGhyZWFkIEIgY2FuJ3QgY29udGludWUgYmVjdWFzZSBtdXRleF9B IGlzIGFscmVhZHkgaGVsZCBieSB0aHJlYWQgQS4KPiA+ID4gdGhyZWFkIEEgY2FuJ3QgY29udGlu dWUgYmVjYXVzZSB0aHJlYWQgQiBpcyBibG9ja2VkIGFuZCB0aGUgd29yayBuZXZlcgo+ID4gPiBm aW5pc2hlcy4KPiA+ID4gLT4gZGVhZGxvY2sKPiA+ID4KPiA+ID4gSSBoYXZlbid0IGNoZWNrZWQg d2hpY2ggaXMgd2hpY2gsIGJ1dCBlc3NlbnRpYWxseSB3aGF0IHlvdSBtZWFzdXJlIHdpdGgKPiA+ ID4gdGhlIGhvbGQgdGltZXMgb2YgdGhlc2UgZmFrZSBsb2NrcyBpcyBob3cgbG9uZyBhIHdvcmsg ZXhlY3V0aW9uIHRha2VzIG9uCj4gPiA+IGF2ZXJhZ2UuCj4gPiA+Cj4gPiA+IFNpbmNlIG15IHBh dGNoZXMgYXJlIHN1cHBvc2VkIHRvIGZpeCByYWNlcyB3aGVyZSB0aGUgd29ya2VyIGNhbid0IGtl ZXAgdXAKPiA+ID4gd2l0aCB0aGUgdmJsYW5rIGhydGltZXIsIHRoZW4gdGhlIGF2ZXJhZ2Ugd29y a2VyIHdpbGwgKHByb2JhYmx5KSBkbyBtb3JlLAo+ID4gPiBzbyB0aGF0IGdvaW5nIHVwIGlzIGV4 cGVjdGVkLiBJIHRoaW5rLgo+ID4gPgo+ID4gPiBJJ20gaG9uZXN0bHkgbm90IHN1cmUgd2hhdCdz IGdvaW5nIG9uIGhlcmUsIG5ldmVyIGxvb2tpbmcgaW50byB0aGlzIGluCj4gPiA+IGRldGFpbC4K PiA+ID4KPiA+ID4gPiBXaGVuIEkgbG9va2VkIGZvciB0aGUgc2Vjb25kIHNldCBvZiBzY2VuYXJp b3MgKE0xIGFuZCBNMiwgYm90aCB3aXRob3V0Cj4gPiA+ID4gS1ZNKSwgdGhlIHJlc3VsdHMgbG9v ayBtdWNoIG1vcmUgZGlzdGFudDsgYmFzaWNhbGx5LCB0aGlzIHBhdGNoc2V0Cj4gPiA+ID4gaW5j cmVhc2VkIHRoZSBob2xkIHRpbWUgYXZlcmFnZS4gQWdhaW4sIGNvdWxkIHlvdSBoZWxwIG1lIHVu ZGVyc3RhbmQgYQo+ID4gPiA+IGxpdHRsZSBiaXQgYmV0dGVyIHRoaXMgaXNzdWU/Cj4gPiA+ID4K PiA+ID4gPiBGaW5hbGx5LCBhZnRlciB0aGVzZSB0ZXN0cywgSSBoYXZlIHNvbWUgcXVlc3Rpb25z Ogo+ID4gPiA+Cj4gPiA+ID4gMS4gVktNUyBpcyBhIHNvZnR3YXJlLW9ubHkgZHJpdmVyOyBiZWNh dXNlIG9mIHRoaXMsIGhvdyBhYm91dCBkZWZpbmluZwo+ID4gPiA+IGEgbWluaW1hbCBzeXN0ZW0g cmVzb3VyY2UgZm9yIHVzaW5nIGl0Pwo+ID4gPgo+ID4gPiBObyBpZGVhLCBpbiByZWFsaXR5IGl0 J3MgcHJvYmFibHkgImlmIGl0IGZhaWxzIHRvbyBvZnRlbiwgYnV5IGZhc3RlciBjcHUiLgo+ID4g PiBJIGRvIHRoaW5rIHdlIHNob3VsZCBtYWtlIHRoZSBjb2RlIHJvYnVzdCBhZ2FpbnN0IGEgc2xv dyBjcHUsIHNpbmNlIGF0bQo+ID4gPiB0aGF0J3MgbmVlZGVkIGV2ZW4gb24gcHJldHR5IGZhc3Qg bWFjaGluZXMgKGJlY2F1c2Ugb3VyIGJsZW5kaW5nIGNvZGUgaXMKPiA+ID4gcmVhbGx5LCByZWFs bHkgc2xvdyBhbmQgaW5lZmZpY2llbnQpLgo+ID4gPgo+ID4gPiA+IDIuIER1cmluZyBteSBleHBl cmltZW50cywgSSBub3RpY2VkIHRoYXQgcnVubmluZyB0ZXN0cyB3aXRoIGEgVk0gdGhhdAo+ID4g PiA+IHVzZXMgS1ZNIGhhZCBjb25zaXN0ZW50IHJlc3VsdHMuIEZvciBleGFtcGxlLCBrbXNfZmxp cCBuZXZlciBmYWlscwo+ID4gPiA+IHdpdGggUUVNVStLVk07IGhvd2V2ZXIsIHdpdGhvdXQgS1ZN LCB0d28gb3IgdGhyZWUgdGVzdHMgZmFpbGVkIChvbmUgb2YKPiA+ID4gPiB0aGVtIGxvb2tzIHJh bmRvbSkuIElmIHdlIHVzZSB2a21zIGZvciB0ZXN0IERSTSBzdHVmZiwgc2hvdWxkIHdlCj4gPiA+ ID4gcmVjb21tZW5kIHRoZSB1c2Ugb2YgS1ZNPwo+ID4gPgo+ID4gPiBXaGF0IGRvIHlvdSBtZWFu IHdpdGhvdXQga3ZtPyBJbiBnZW5lcmFsIHJ1bm5pbmcgd2l0aG91dCBrdm0gc2hvdWxkbid0IGJl Cj4gPiA+IHNsb3dlciwgc28gSSdtIGEgYml0IGNvbmZ1c2VkIC4uLiBJJ20gcnVubmluZyB2Z2Vt IGRpcmVjdGx5IG9uIHRoZQo+ID4gPiBtYWNoaW5lLCBieSBib290aW5nIGludG8gbmV3IGtlcm5l bHMgKGFuZCBjb250cm9sbGluZyB0aGUgbWFjaGluZSBvdmVyIHRoZQo+ID4gPiBuZXR3b3JrKS4K PiA+Cj4gPiBTb3JyeSwgSSBzaG91bGQgaGF2ZSBkZXRhaWxlZCBteSBwb2ludC4KPiA+Cj4gPiBC YXNpY2FsbHksIEkgZG8gYWxsIG15IHRlc3Rpbmcgd2l0aCB2a21zIGluIFFFTVUgVk0uIEluIHRo YXQgc2Vuc2UsIEkKPiA+IGRpZCBzb21lIGV4cGVyaW1lbnRzIHdoaWNoIEkgZW5hYmxlZCBhbmQg ZGlzYWJsZWQgdGhlIEtWTSAoaS5lLiwgZmxhZwo+ID4gJy1lbmFibGUta3ZtJykgdG8gY2hlY2sg dGhlIHZrbXMgYmVoYXZpb3VyIGluIHRoZXNlIHR3byBzY2VuYXJpb3MuIEkKPiA+IG5vdGljZWQg dGhhdCB0aGUgdGVzdHMgYXJlIGNvbnNpc3RlbnQgd2hlbiBJIHVzZSB0aGUgJy1lbmFibGUta3Zt JyBmbGFnLAo+ID4gaW4gdGhhdCBjb250ZXh0IGl0IHNlZW1lZCBhIGdvb2QgaWRlYSB0byByZWNv bW1lbmQgdGhlIHVzZSBvZiBLVk0gZm9yCj4gPiB0aG9zZSB1c2VycyB3aG8gd2FudCB0byB0ZXN0 IHZrbXMgd2l0aCBpZ3QuIEFueXdheSwgZG9uJ3Qgd29ycnkgYWJvdXQKPiA+IHRoYXQgSSdsbCB0 cnkgdG8gYWRkIG1vcmUgZG9jdW1lbnRhdGlvbiBmb3IgdmttcyBpbiB0aGUgZnV0dXJlIGFuZCBp bgo+ID4gdGhhdCB0aW1lIHdlIGRpc2N1c3MgYWJvdXQgdGhpcyBhZ2Fpbi4KPgo+IEFoLCBxZW11 IHdpdGhvdXQga3ZtIGlzIGdvaW5nIHRvIHVzZSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGEgbG90 IG9mIHRoZQo+IGtlcm5lbCBzdHVmZi4gVGhhdCdzIGdvaW5nIHRvIGJlIHRlcnJpYmx5IHNsb3cg aW5kZWVkLgo+Cj4gPiBBbnl3YXksIGZyb20gbXkgc2lkZSwgSSB0aGluayB3ZSBzaG91bGQgbWVy Z2UgdGhpcyBzZXJpZXMuIERvIHlvdSB3YW50Cj4gPiB0byBwcmVwYXJlIGEgVjIgd2l0aCB0aGUg Zml4ZXMgYW5kIG1heWJlIHVwZGF0ZSB0aGUgY29tbWl0IG1lc3NhZ2VzIGJ5Cj4gPiB1c2luZyBz b21lIG9mIHlvdXIgZXhwbGFuYXRpb25zPyBPciwgaWYgeW91IHdhbnQsIEkgY2FuIGZpeCB0aGUg dGlueQo+ID4gZGV0YWlscyBhbmQgbWVyZ2UgaXQuCj4KPiBJJ20gZGVlcGx5IGJ1cnJpZWQgaW4g bXkgcHJpbWUgY2xlYW51cC9kb2Mgc2VyaWVzIHJpZ2h0IG5vdywgc28gd2lsbCB0YWtlCj4gYSBm ZXcgZGF5cyB1bnRpbCBJIGdldCBhcm91bmQgdG8gdGhpcyBhZ2Fpbi4gSWYgeW91IHdhbnQsIHBs ZWFzZSBnbyBhaGVhZAo+IHdpdGggbWVyZ2luZy4KPgo+IGJ0dyBpZiB5b3UgZWRpdCBhIHBhdGNo IHdoZW4gbWVyZ2luZywgcGxlYXNlIGFkZCBhIGNvbW1lbnQgYWJvdXQgdGhhdCB0bwo+IHRoZSBj b21taXQgbWVzc2FnZS4gQW5kIGltZSBpdCdzIGJlc3QgdG8gb25seSBhdWdtZW50IHRoZSBjb21t aXQgbWVzc2FnZQo+IGFuZCBtYXliZSBkZWxldGUgYW4gdW51c2VkIHZhcmlhYmxlIG9yIHNvIHRo YXQgZ290IGZvcmdvdHRlbi4gRm9yCj4gZXZlcnl0aGluZyBtb3JlIGJldHRlciB0byBkbyB0aGUg ZWRpdHMgYW5kIHJlc3VibWl0LgoKRmlyc3Qgb2YgYWxsLCB0aGFuayB5b3UgdmVyeSBtdWNoIGZv ciBhbGwgeW91ciByZXZpZXdzIGFuZApleHBsYW5hdGlvbi4gSeKAmWxsIHRyeSB0aGUgZXhlcmNp c2UgdGhhdCB5b3UgcHJvcG9zZWQgb24gUGF0Y2ggMS4KCknigJlsbCBtZXJnZSBwYXRjaCBbNF0g YW5kIFs3XSBzaW5jZSB0aGV54oCZcmUgbm90IHJlbGF0ZWQgdG8gdGhlc2UKc2VyaWVzLiBGb3Ig dGhlIG90aGVyIHBhdGNoZXMsIEnigJlsbCBtZXJnZSB0aGVtIGFmdGVyIEkgZmluaXNoIHRoZSBu ZXcKdmVyc2lvbiBvZiB3cml0ZWJhY2sgc2VyaWVzLiBJ4oCZbGwgcGluZyB5b3UgbGF0ZXIuCgo0 LiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMzA5MDMxLz9zZXJpZXM9 NjE3MzcmcmV2PTEKNy4gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzMw OTAyOS8/c2VyaWVzPTYxNzM3JnJldj0xCgpGaW5hbGx5LCBub3QgcmVsYXRlZCB3aXRoIHRoaXMg cGF0Y2hzZXQsIGNhbiBJIGFwcGx5IHRoZSBwYXRjaArigJxkcm0vZHJtX3ZibGFuazogQ2hhbmdl IEVJTlZBTCBieSB0aGUgY29ycmVjdCBlcnJub+KAnSBbMV0gb3IgZG8gSSBuZWVkCm1vcmUgU29C PyBJ4oCZbGwgYWxzbyBhcHBseSBPbGVnIHBhdGNoIChkcm0vdmttczogYWRkIGNyYyBzb3VyY2Vz IGxpc3QpLgoKMS4gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzMxMDAw Ni8/c2VyaWVzPTUwNjk3JnJldj00CgpUaGFua3MKCj4gVGhhbmtzLCBEYW5pZWwKPgo+ID4KPiA+ ID4gLURhbmllbAo+ID4gPgo+ID4gPiA+IEJlc3QgUmVnYXJkcwo+ID4gPiA+Cj4gPiA+ID4gT24g VGh1LCBKdW4gNiwgMjAxOSBhdCA3OjI4IFBNIERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+IHdyb3RlOgo+ID4gPiA+ID4KPiA+ID4gPiA+IEhpIGFsbCwKPiA+ID4gPiA+Cj4g PiA+ID4gPiBUaGlzIGhlcmUgaXMgdGhlIGZpcnN0IHBhcnQgb2YgYSByZXdvcmsgZm9yIHRoZSB2 a21zIGNyYyB3b3JrZXIuIEkgdGhpbmsKPiA+ID4gPiA+IHRoaXMgc2hvdWxkIGZpeCBhbGwgdGhl IGxvY2tpbmcvcmFjZXMvdXNlLWFmdGVyLWZyZWUgaXNzdWVzIEkgc3BvdHRlZCBpbgo+ID4gPiA+ ID4gdGhlIGNvZGUuIFRoZXJlJ3MgbW9yZSB3b3JrIHdlIGNhbiBkbyBpbiB0aGUgZnV0dXJlIGFz IGEgZm9sbG93LXVwOgo+ID4gPiA+ID4KPiA+ID4gPiA+IC0gZGlyZWN0bHkgYWNjZXNzIHZrbXNf cGxhbmVfc3RhdGUtPmJhc2UgaW4gdGhlIGNyYyB3b3JrZXIsIHdpdGggdGhpcwo+ID4gPiA+ID4g ICBhcHByb2FjaCBpbiB0aGlzIHNlcmllcyBoZXJlIHRoYXQgc2hvdWxkIGJlIHNhZmUgbm93LiBG b2xsb3ctdXAgcGF0Y2hlcwo+ID4gPiA+ID4gICBjb3VsZCBzd2l0Y2ggYW5kIHJlbW92ZSBhbGwg dGhlIHNlcGFyYXRlIGNyY19kYXRhIGluZnJhc3RydWN0dXJlLgo+ID4gPiA+ID4KPiA+ID4gPiA+ IC0gSSB0aGluayBzb21lIGtlcm5lbGRvYyBmb3IgdmttcyBzdHJ1Y3R1cmVzIHdvdWxkIGJlIG5p Y2UuIERvY3VtZW50YXRpb24KPiA+ID4gPiA+ICAgdGhlIHZhcmlvdXMgZnVuY3Rpb25zIGlzIHBy b2JhYmx5IG92ZXJraWxsLgo+ID4gPiA+ID4KPiA+ID4gPiA+IC0gSW1wbGVtZW50aW5nIGEgbW9y ZSBnZW5lcmljIGJsZW5kaW5nIGVuZ2luZSwgYXMgcHJlcCBmb3IgYWRkaW5nIG1vcmUKPiA+ID4g PiA+ICAgcGl4ZWwgZm9ybWF0cywgbW9yZSBwbGFuZXMsIGFuZCBtb3JlIGZlYXR1cmVzIGluIGdl bmVyYWwuCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGVzdGVkIHdpdGgga21zX3BpcGVfY3JjLCBrbXNf ZmxpcCBhbmQga21zX2N1cnNvcl9jcmMuIFNlZW1zIHRvIG5vdCBtYWtlCj4gPiA+ID4gPiB0aGlu Z3Mgd29yc2UsIGJ1dCBJIGRpZG4ndCBkbyBhIGZ1bGwgcnVuLgo+ID4gPiA+ID4KPiA+ID4gPiA+ IENoZWVycywgRGFuaWVsCj4gPiA+ID4gPgo+ID4gPiA+ID4gRGFuaWVsIFZldHRlciAoMTApOgo+ ID4gPiA+ID4gICBkcm0vdmttczogRml4IGNyYyB3b3JrZXIgcmFjZXMKPiA+ID4gPiA+ICAgZHJt L3ZrbXM6IFVzZSBzcGluX2xvY2tfaXJxIGluIHByb2Nlc3MgY29udGV4dAo+ID4gPiA+ID4gICBk cm0vdmttczogUmVuYW1lIHZrbXNfb3V0cHV0LnN0YXRlX2xvY2sgdG8gY3JjX2xvY2sKPiA+ID4g PiA+ICAgZHJtL3ZrbXM6IE1vdmUgZm9ybWF0IGFycmF5cyB0byB2a21zX3BsYW5lLmMKPiA+ID4g PiA+ICAgZHJtL3ZrbXM6IEFkZCBvdXIgb3duIGNvbW1pdF90YWlsCj4gPiA+ID4gPiAgIGRybS92 a21zOiBmbHVzaCBjcmMgd29ya2VycyBlYXJsaWVyIGluIGNvbW1pdCBmbG93Cj4gPiA+ID4gPiAg IGRybS92a21zOiBEb250IGZsdXNoIGNyYyB3b3JrZXIgd2hlbiB3ZSBjaGFuZ2UgY3JjIHN0YXR1 cwo+ID4gPiA+ID4gICBkcm0vdmttczogTm8gX2lycXNhdmUgd2l0aGluIHNwaW5fbG9ja19pcnEg bmVlZGVkCj4gPiA+ID4gPiAgIGRybS92a21zOiB0b3RhbGx5IHJld29ya2VkIGNyYyBkYXRhIHRy YWNraW5nCj4gPiA+ID4gPiAgIGRybS92a21zOiBObyBuZWVkIGZvciAtPnBhZ2VzX2xvY2sgaW4g Y3JjIHdvcmsgYW55bW9yZQo+ID4gPiA+ID4KPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmtt cy92a21zX2NyYy5jICAgfCA3NCArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4g PiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgIHwgODAgKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2 LmMgICB8IDM1ICsrKysrKysrKysrKysrCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19kcnYuaCAgIHwgMjQgKysrKystLS0tLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfcGxhbmUuYyB8ICA4ICsrKysKPiA+ID4gPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDE0 NiBpbnNlcnRpb25zKCspLCA3NSBkZWxldGlvbnMoLSkKPiA+ID4gPiA+Cj4gPiA+ID4gPiAtLQo+ ID4gPiA+ID4gMi4yMC4xCj4gPiA+ID4gPgo+ID4gPiA+ID4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gPiA+IGRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKPiA+ID4gPiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiA+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCj4g PiA+ID4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gLS0KPiA+ID4gPgo+ID4gPiA+IFJvZHJpZ28g U2lxdWVpcmEKPiA+ID4gPiBodHRwczovL3NpcXVlaXJhLnRlY2gKPiA+ID4KPiA+ID4gLS0KPiA+ ID4gRGFuaWVsIFZldHRlcgo+ID4gPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRp b24KPiA+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiA+Cj4gPiAtLQo+ID4gUm9kcmlnbyBTaXF1 ZWlyYQo+ID4gaHR0cHM6Ly9zaXF1ZWlyYS50ZWNoCj4KPiAtLQo+IERhbmllbCBWZXR0ZXIKPiBT b2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5j aAoKCgotLSAKClJvZHJpZ28gU2lxdWVpcmEKaHR0cHM6Ly9zaXF1ZWlyYS50ZWNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==