From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 18 Jan 2019 11:19:12 +0000 From: Liviu Dudau Message-ID: <20190118111912.GH20661@e110455-lin.cambridge.arm.com> References: <20190116163903.12785-1-daniel.vetter@ffwll.ch> <20190117113810.GB20661@e110455-lin.cambridge.arm.com> <20190117122648.GC20661@e110455-lin.cambridge.arm.com> <20190117145442.GD20661@e110455-lin.cambridge.arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [igt-dev] [PATCH] drm/doc: Make igts for cross-driver stuff mandatory List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Daniel Vetter Cc: Petri Latvala , DRI Development , IGT development , Dave Airlie , Alex Deucher , Daniel Vetter , Sean Paul List-ID: T24gVGh1LCBKYW4gMTcsIDIwMTkgYXQgMDQ6NTk6NDlQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIEphbiAxNywgMjAxOSBhdCAzOjU0IFBNIExpdml1IER1ZGF1IDxsaXZp dS5kdWRhdUBhcm0uY29tPiB3cm90ZToKPiA+Cj4gPiBPbiBUaHUsIEphbiAxNywgMjAxOSBhdCAw MTozMjoxNVBNICswMTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiBPbiBUaHUsIEphbiAx NywgMjAxOSBhdCAxOjI2IFBNIExpdml1IER1ZGF1IDxsaXZpdS5kdWRhdUBhcm0uY29tPiB3cm90 ZToKPiA+ID4gPgo+ID4gPiA+IE9uIFRodSwgSmFuIDE3LCAyMDE5IGF0IDEyOjUyOjE2UE0gKzAx MDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gPiBPbiBUaHUsIEphbiAxNywgMjAxOSBh dCAxMjozOCBQTSBMaXZpdSBEdWRhdSA8bGl2aXUuZHVkYXVAYXJtLmNvbT4gd3JvdGU6Cj4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+IE9uIFdlZCwgSmFuIDE2LCAyMDE5IGF0IDA1OjM5OjAzUE0gKzAx MDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gQ29tcGFyZWQgdG8gdGhlIFJG Q1sxXSBubyBjaGFuZ2VzIHRvIHRoZSBwYXRjaCBpdHNlbGYsIGJ1dCBpZ3QgbW92ZWQKPiA+ID4g PiA+ID4gPiBmb3J3YXJkIGEgbG90Ogo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gLSBnaXRs YWIgQ0kgYnVpbGRzIHdpdGg6IHJlZHVjZWQgY29uZmlncy9saWJyYXJpZXMsIGFybSBjcm9zcyBi dWlsZAo+ID4gPiA+ID4gPiA+ICAgYW5kIGEgc3lzcm9vdCBidWlsZCAoc2hvdWxkIGFkZHJlc3Mg YWxsIHRoZSBidWlsZC9jcm9zcyBwbGF0Zm9ybQo+ID4gPiA+ID4gPiA+ICAgY29uY2VybnMgcmFp c2VkIGluIHRoZSBSRkMgZGlzY3Vzc2lvbnMpLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4g LSB0ZXN0cyByZW9yZ2FuaXplZCBpbnRvIHN1YmRpcmVjdG9yaWVzIHNvIHRoYXQgdGhlIGk5MTUt Z2VtIHRlc3RzCj4gPiA+ID4gPiA+ID4gICBkb24ndCBjbG9nIHRoZSBtYWluL3NoYXJlZCB0ZXN0 cyBkaXJlY3RvcnkgYW55bW9yZQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gLSBxdWl0ZSBh IGZldyBtb3JlIG5vbi1pbnRlbCBwZW9wbGUgY29udHJpYnV0aW5nL3Jldmlld2luZy9jb21taXR0 aW5nCj4gPiA+ID4gPiA+ID4gICBpZ3QgdGVzdHMgcGF0Y2hlcy4KPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+IEkgdGhpbmsgdGhpcyBhZGRyZXNzZXMgYWxsIHRoZSBjb25jZXJucyByYWlzZWQg aW4gdGhlIFJGQyBkaXNjdXNzaW9ucywKPiA+ID4gPiA+ID4gPiBhbmQgYXNzdW1pbmcgdGhlcmUn cyBlbm91Z2ggQWNrcyBhbmQgbm8gbmV3IGlzc3VlcyB0aGF0IHBvcCB1cCwgd2UgY2FuCj4gPiA+ ID4gPiA+ID4gZ28gYWhlYWQgd2l0aCB0aGlzLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4g MTogaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wYXRjaC8xMDY0ODg1MS8KPiA+ID4gPiA+ ID4gPiBDYzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+Cj4gPiA+ID4g PiA+ID4gQ2M6IEFya2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVyQGludGVsLmNvbT4KPiA+ ID4gPiA+ID4gPiBDYzogTGl2aXUgRHVkYXUgPGxpdml1LmR1ZGF1QGFybS5jb20+Cj4gPiA+ID4g PiA+ID4gQ2M6IFNlYW4gUGF1bCA8c2VhbkBwb29ybHkucnVuPgo+ID4gPiA+ID4gPiA+IENjOiBF cmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0Pgo+ID4gPiA+ID4gPiA+IENjOiBBbGV4IERldWNo ZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cj4gPiA+ID4gPiA+ID4gQ2M6IERhdmUgQWly bGllIDxhaXJsaWVkQHJlZGhhdC5jb20+Cj4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gPiA+ID4gPiA+ID4gLS0tCj4g PiA+ID4gPiA+ID4gIERvY3VtZW50YXRpb24vZ3B1L2RybS11YXBpLnJzdCB8IDcgKysrKysrKwo+ ID4gPiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCj4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXVhcGku cnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLXVhcGkucnN0Cj4gPiA+ID4gPiA+ID4gaW5kZXgg YTc1MmFhNTYxZWE0Li40MTM5MTVkNmI3ZDIgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gLS0tIGEvRG9j dW1lbnRhdGlvbi9ncHUvZHJtLXVhcGkucnN0Cj4gPiA+ID4gPiA+ID4gKysrIGIvRG9jdW1lbnRh dGlvbi9ncHUvZHJtLXVhcGkucnN0Cj4gPiA+ID4gPiA+ID4gQEAgLTIzOCw2ICsyMzgsMTMgQEAg RFJNIHNwZWNpZmljIHBhdHRlcm5zLiBOb3RlIHRoYXQgRU5PVFRZIGhhcyB0aGUgc2xpZ2h0bHkg dW5pbnR1aXRpdmUgbWVhbmluZyBvZgo+ID4gPiA+ID4gPiA+ICBUZXN0aW5nIGFuZCB2YWxpZGF0 aW9uCj4gPiA+ID4gPiA+ID4gID09PT09PT09PT09PT09PT09PT09PT0KPiA+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiA+ICtUZXN0aW5nIFJlcXVpcmVtZW50cyBmb3IgdXNlcnNwYWNlIEFQSQo+ID4g PiA+ID4gPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArTmV3IGNyb3NzLWRyaXZlciB1c2Vyc3BhY2UgaW50ZXJm YWNlIGV4dGVuc2lvbnMsIGxpa2UgbmV3IElPQ1RMLCBuZXcgS01TCj4gPiA+ID4gPiA+ID4gK3By b3BlcnRpZXMsIG5ldyBmaWxlcyBpbiBzeXNmcyBvciBhbnl0aGluZyBlbHNlIHRoYXQgY29uc3Rp dHV0ZXMgYW4gQVBJIGNoYW5nZQo+ID4gPiA+ID4gPiA+ICtuZWVkIHRvIGhhdmUgZHJpdmVyLWFn bm9zdGljIHRlc3RjYXNlcyBpbiBJR1QgZm9yIHRoYXQgZmVhdHVyZS4KPiA+ID4gPiA+ID4KPiA+ ID4gPiA+ID4gRnJvbSBhbiBhc3BpcmF0aW9uYWwgcG9pbnQgb2YgdmlldyBJIGFtIGZpbmUgd2l0 aCB0aGlzIGFuZCB5b3UgY2FuIGhhdmUKPiA+ID4gPiA+ID4gbXkgQWNrZWQtYnk6IExpdml1IER1 ZGF1IDxsaXZpdS5kdWRhdUBhcm0uY29tPi4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gRnJvbSBh IHByYWN0aWNhbCBwb2ludCBvZiB2aWV3IEkgd291bGQgbGlrZSB0byBzZWUgYSBtYXRyaXggb2Yg S01TIEFQSXMKPiA+ID4gPiA+ID4gdGhhdCBhcmUgYmVpbmcgdmFsaWRhdGVkIGFuZCB0aGUgZHJp dmVycyB0aGF0IGhhdmUgYmVlbiB0ZXN0ZWQuIE90aGVyd2lzZSwKPiA+ID4gPiA+ID4gdGhlIG5l eHQgcGVyc29uIHRoYXQgY29tZXMgYW5kIHRyaWVzIHRvIGFkZCBhIG5ldyBJT0NUTCwgS01TIHBy b3BlcnR5IG9yIG5ldwo+ID4gPiA+ID4gPiBmaWxlIGluIHN5c2ZzIGlzIGdvaW5nIHRvIGRpc2Nv dmVyIHRoYXQgaGUgaGFzIHN1YnNjcmliZWQgdG8gYSBtdWNoIGJpZ2dlcgo+ID4gPiA+ID4gPiB0 YXNrIG9mIGdldHRpbmcgZW5vdWdoIEtNUyBkcml2ZXJzIHRlc3RhYmxlIGluIHRoZSBmaXJzdCBw bGFjZS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGlzIGlzIHdoYXQgdGhlIF9uZXdfIGZlYXR1cmVz IGlzIGFib3V0LCBubyBleHBlY3RhdGlvbiB0byB3cml0ZQo+ID4gPiA+ID4gdGVzdHMgZm9yIGFs bCB0aGUgZXhpc3Rpbmcgc3R1ZmYuCj4gPiA+ID4KPiA+ID4gPiBZZWFoLCBidXQgaWYgdGhlICJ0 ZXN0cyBmb3IgYWxsIHRoZSBleGlzdGluZyBzdHVmZiIgZG9lc24ndCBleGlzdCwgeW91cgo+ID4g PiA+IF9uZXdfIGZlYXR1cmUgdGVzdHMgYXJlIG5vdCBnb2luZyB0byBtZWFuIG11Y2gsIGRvZXNu J3QgaXQ/Cj4gPiA+Cj4gPiA+IFdoeT8gVGhlcmUncyBzdGlsbCBnb29kIHRlc3QgY292ZXJhZ2Ug Zm9yIHRoZSBuZXcgc3R1ZmYgYXQgbGVhc3QuIEFuZAo+ID4gPiBldmVudHVhbGx5IHNvbWVvbmUg Z2V0cyBib3JlZCBhbmQgZmlsbHMgaW4gdGhlIGdhcHMuIFRoaXMgaXMgaG93IHdlJ3ZlCj4gPiA+ IGNyZWF0ZWQgYWxsIHRoZSBjdXJyZW50IGlndCB0ZXN0Y2FzZXMsIHNvIGl0IHdvcmtzIC0gbWFu ZGF0b3J5IGlndCBmb3IKPiA+ID4gbmV3IGZlYXR1cmVzIGlzIHRoZSBydWxlIGZvciBhbnl0aGlu ZyBpbnRlbCBkb2VzIHNpbmNlIHdlbGwgb3ZlciA1Cj4gPiA+IHllYXJzLgo+ID4KPiA+IEJlY2F1 c2UgaWYgeW91IGNhbid0IHRlc3QgYmFzaWMgc3R1ZmYgd2l0aCBpZ3QgaG93IGRpZCB5b3UgdGVz dCB5b3VyIG5ldwo+ID4gZmVhdHVyZT8gV2hhdCBJJ20gc2F5aW5nIGlzOiBpZiBkZXZlbG9wZXIg WCBpcyBoYXZpbmcgdG8gdXNlIGlndCBmb3IKPiA+IGEgbmV3IGZlYXR1cmUgdGhlbiBoZSBpcyBl aXRoZXI6IGEpIGV4cGVjdGluZyB0aGF0IGJhc2ljIHRlc3Rpbmcgd29ya3MgZm9yCj4gPiBoaXMg ZHJpdmVyIChvciBoZSBoYXMgYm9vdHN0cmFwcGluZyBpc3NzdWVzKSBvciB0aGF0IGIpIGlmIHRo ZSBmZWF0dXJlCj4gPiBkb2Vzbid0IGdldCB0ZXN0ZWQgb24gZHJpdmVyIEEgYmVjYXVzZSB0aGF0 IGRyaXZlciBkb2Vzbid0IGV2ZW4gaGF2ZSBiYXNpYwo+ID4gdGVzdHMgcGFzc2luZyBmb3IgaXQg dGhlbiB0aGUgZmVhdHVyZSBpcyBhY2NlcHRhYmxlLiBBbmQgaXQgd2lsbCBiZSBoZWxwZnVsCj4g PiB0byBwdWJsaXNoIHRoZSBsaXN0IG9mIGlndCB0ZXN0cyB0aGF0IHBhc3MgZm9yIGVhY2ggZHJp dmVyIGluIEtNUy4KPiAKPiBJIHRoaW5rIHRoaXMgaXMgYW4gZW50aXJlbHkgZGlmZmVyZW50IGRp c2N1c3Npb24sIHNvbWV0aGluZyBhbG9uZyB0aGUKPiBsaW5lcyBvZiAibmV3IGRyaXZlcnMvbmV3 IGZlYXR1cmVzIGltcGxlbWVudGVkIG9uIGV4aXN0aW5nIGRyaXZlcnMiCj4gbXVzdCBjb21lIHdp dGggaWd0IHRlc3QgcmVzdWx0cyB0byBwcm92ZSBpdCdzIHdvcmtpbmcuIE5vdCB3aGF0IEknbQo+ IHByb3Bvc2luZyBoZXJlIGF0IGFsbC4gSXQgd291bGQgYmUgYSBnb29kIGRpc2N1c3Npb24gdG8g aGF2ZSwgYnV0IGEKPiBkaWZmZXJlbnQgb25lIEkgdGhpbmsuCgpOZXcgZmVhdHVyZXMgaW1wbGVt ZW50ZWQgb24gZXhpc3RpbmcgZHJpdmVycyBpcyB3aGF0IEknbSBleHBlY3RpbmcgdG8gYXBwbHkg bW9zdApvZiB0aGUgdGltZSB3aGVuIHdlIGFkZCB0aGUgbmV3IHRlc3QgcmVxdWlyZW1lbnQuIFRo ZSBuZXcgVUFQSSBpcyBsaWtlbHkgdG8KY29tZSBvdXQgYXMgYSByZXN1bHQgb2YgZmluZGluZyBi ZXR0ZXIgd2F5cyB0byBoYW5kbGUgZXhpc3RpbmcgY29kZSwgYnV0IEkgbWlnaHQKYmUgd3Jvbmcg aGVyZS4KCj4gCj4gVGhlIHByb3Bvc2FsIGhlcmUgaXMgb25seSBmb3IgbmV3IHVhcGk6IFRodXMg ZmFyIHRoZSByZXF1aXJlbWVudCBpcwo+ICJkcml2ZXIgKyB1c2Vyc3BhY2UiLCBub3QgaXQgd291 bGQgYmUgImRyaXZlciArIHVzZXJzcGFjZSArIGlndCwgaWYKPiBnZW5lcmljIGZlYXR1cmUiLgo+ IAo+ID4gQWx0ZXJuYXRpdmVseSwgeW91IG5lZWQgdG8gZXhwbGFpbiBiZXR0ZXIgd2hhdCAiZHJp dmVyLWFnbm9zdGljIHRlc3RjYXNlIiBpcwo+ID4gKG15IHJlYWRpbmc6IGEgdGVzdGNhc2UgdGhh dCBjYW4gYmUgcnVuIG9uIGFueSBkcml2ZXIpLiBPciBwb2ludCB0byBzb21lIGlndAo+ID4gdGVz dGNhc2VzIHRoYXQgYXJlIGNvbnNpZGVyZWQgZHJpdmVyLWFnbm9zdGljIGFuZCBrbm93biB0byBy dW4gb24gZGlmZmVyZW50Cj4gPiAocmVhZDogbm9uLXg4NikgcGxhdGZvcm1zLgo+IAo+IElmIHRo aXMgaXMganVzdCBhYm91dCBjbGFyaWZ5aW5nICJkcml2ZXItYWdub3N0aWMgdGVzdGNhc2UiIHRo ZW4gdGhhdAo+IGJvaWxzIGRvd24gdG8gZHJtX29wZW4oRFJJVkVSX0FOWSkuIFBsdXMgcmVhc29u YWJsZSBlbmdpbmVlcmluZyBjYWxscwo+IG9uIHdoYXQgZXhhY3RseSBhZ25vc3RpYyBtZWFucywg YmVjYXVzZSBpbiBwcmFjdGljZSBJIGV4cGVjdCB0aGF0Cj4gIndvcmtzIG9uIGZpcnN0IGRyaXZl ciwgZG9lc24ndCBvbiAybmQiIGlzIGZhaXJseSBjb21tb24sIG5vIG1hdHRlcgo+IHdoaWNoIGRy aXZlciBpcyB0aGUgZmlyc3Qgb25lLCBhbmQgd2hpY2ggaXMgdGhlIHNlY29uZC4KCkRyaXZlci1h Z25vc3RpYyB0byBtZSBtZWFucyAiaXQgdXNlcyBLTVMgQVBJIHdpdGhvdXQgYW55IGRyaXZlci1z cGVjaWZpYyAjZGVmaW5lcwpvciBJT0NUTHMiLiBOb3csIEkgYWdyZWUgdGhhdCB5b3UgY2FuIGNv bWUgdXAgd2l0aCBleGFtcGxlcyB3aGVyZSB0aGlzIGJyZWFrcyBkb3duCnJlYWxseSBxdWlja2x5 LCBsaWtlIHBvc3RpbmcgYSBmcmFtZWJ1ZmZlciB2aWEgYXRvbWljIElPQ1RMIGlzIGRyaXZlcgph Z25vc3RpYyB1bnRpbCB5b3Ugc3RhcnQgdGFsa2luZyBhYm91dCBtb2RpZmllcnMgKGFuZCBldmVu IGZpbmRpbmcgYSBjb21tb24gZm9ybWF0Cm90aGVyIHRoYW4gUkdCODg4IG1pZ2h0IGJlIGEgc3Ry ZXRjaCkuIEkgYW0gKHNsb3dseSwgc29ycnkgYWJvdXQgdGhhdCkgc3RhcnRpbmcgdG8KdW5kZXJz dGFuZCB5b3VyIHBvaW50IG9mIHZpZXcsIHRoYXQgd2hlbiB5b3UgaGF2ZSBkb25lIGRyaXZlciBh bmQgdXNlcnNwYWNlIApkZXZlbG9wbWVudCwgYWRkaW5nIGFuIGlndCB0ZXN0Y2FzZSBpcyBub3Qg YSBiaWcgZGVhbCwgYnV0IEkgaGF2ZSByZWNvbGxlY3Rpb25zIG9mCm15IGZpcnN0IGVuY291bnRl ciB3aXRoIGlndCBhbmQgZmluZGluZyBpdCBkYXVudGluZyB0byBkZWNpZGUgd2hpY2ggdGVzdHMg c2hvdWxkCmJlIHJ1biBhdCB0aGUgbW9zdCBiYXNpYyBsZXZlbCB0byBldmVuIGNsYWltIHRoYXQg aWd0IHN1cHBvcnRzIG15IGRyaXZlci4gQXNzdW1pbmcKYSBzZWFzb25lZCBLTVMgZHJpdmVyIGRl dmVsb3BlciBub3cgYmVpbmcgZmFjZWQgd2l0aCBJR1QgdGVzdHMgYXMgYSBuZXcgcmVxdWlyZW1l bnQsCkkgd2FzIHRyeWluZyB0byBwcmVlbXB0IGNvbXBsYWludHMgdGhhdCB0aGUgdGVzdCBzdWl0 ZSBpbiBpdHNlbGYgaXMgbm90IHZlcnkgZWFzeQp0byAicG9ydCIgdG8gYSBuZXcgZHJpdmVyLgoK PiAKPiBOb3cgZm9yIGEgbGlzdCBvZiBndWFyYW50ZWVkLXRvLWJlLWdlbmVyaWMgdGVzdHMsIEkn bSBzbG93bHkgcHVzaGluZwo+IHZrbXMgZm9yd2FyZCB0byBnZXQgdGhlcmUuIEJ1dCBpdCdzIGdv aW5nIHRvIHRha2UgYSBsb3Qgb2YgaW50ZXJuc2hpcHMKPiB0byBtYWtlIHZrbXMgZmVhdHVyZWZ1 bCBlbm91Z2ggdG8gYmUgdXNlZnVsIGluIHN1Y2ggYSByb2xlLgo+IAo+IElmIHlvdSdyZSBqdXN0 IGxvb2tpbmcgZm9yIGk5MTUgdGVzdCByZXN1bHRzLCB3ZSBwdWJsaXNoIHRoZW0gYWxsLiBBbmQK PiBhZmFpayBubyBvbmUgZWxzZSBkb2VzIHNvLCBzbyBub3QgcmVhbGx5IHBvc3NpYmxlIHRvIHBv aW50IGF0IGFueXRoaW5nCj4gZWxzZS4KClNvcnJ5IGZvciBub3QgYmVpbmcgaW4gY29uc3RhbnQg dG91Y2ggd2l0aCBpOTE1IGRldmVsb3BtZW50IChhbmQgYmVpbmcgbGF6eSksIGNhbgp5b3Ugc2hh cmUgdGhlIFVSTCBmb3IgdGhlIHB1Ymxpc2hlZCB0ZXN0IHJlc3VsdHM/IFNob3VsZCB0aGF0IFVS TCBiZSBhZGRlZCBpbiB0aGUKZG9jdW1lbnRhdGlvbiAoZm9yIGlndCBvciBrZXJuZWwpPwoKCj4g Cj4gPiA+ID4gPiBBbHRob3VnaCBJIHRoaW5rIHRoZXJlJ3Mgbm90IHJlYWxseQo+ID4gPiA+ID4g YW55IGJpZyBnYXBzIGluIGlndCBhbnltb3JlLCB3ZSBkbyBoYXZlIGF0IGxlYXN0IHNvbWUgKHJh dGhlciByb3VnaAo+ID4gPiA+ID4gYW5kIGNvYXJzZSBpbiBzb21lIGNhc2UpIHRlc3QgY292ZXJh Z2UgZm9yIGV2ZXJ5dGhpbmcgSSB0aGluay4KPiA+ID4gPgo+ID4gPiA+IEkgd291bGQgbGlrZSB0 byBzZWUgc29tZSBwcm9vZiBvZiB0aGF0IGluIHRoZSBmb3JtIG9mIC4uLi4KPiA+ID4gPgo+ID4g PiA+Cj4gPiA+ID4gPiBTaG91bGQgdGhpcyBiZSBjbGFyaWZpZWQgZnVydGhlcj8KPiA+ID4gPgo+ ID4gPiA+IGFuIFVSTCB0aGF0IHBvaW50cyB0byBhIHBhZ2Ugc2ltaWxhciB0byBNZXNhJ3MgR0wg c3VwcG9ydGVkIGZlYXR1cmVzCj4gPiA+ID4gd291bGQgYmUgbmljZSB0byBhZGQgaGVyZSwgZnJv bSBteSBwb2ludCBvZiB2aWV3Lgo+ID4gPgo+ID4gPiBUaGVyZSBpc24ndCBldmVuIGEgbGlzdCBv ZiB1cHN0cmVhbSBkcm0gZmVhdHVyZXMgLi4uCj4gPgo+ID4gWWVhaCwgSSBrbm93IHRoYXQhIDop Cj4gPgo+ID4gPiBob3cgZXhhY3RseSBzaG91bGQgdGhhdCBsb29rIGxpa2U/Cj4gPgo+ID4gV2hh dCBhYm91dCBhIGxpc3Qgb2YgaWd0IHRlc3RzIHRoZW4/IE9SIHdlIGNvdWxkIHB1dCBpbiB0aGUg aWd0IFRPRE8gZmlsZQo+ID4gdGhlIGtpbmQgb2YgdGVzdHMgd2Ugd291bGQgbGlrZSB0byBoYXZl IGF0IHNvbWUgbW9tZW50Pwo+IAo+IEknbSBzdGlsbCBub3QgY2xlYXIgd2hhdCB5b3VyIGNvbmNl cm4gaXMgYW5kIHdoYXQgeW91IHdhbnQgdG8gYWNoaWV2ZQo+IGhlcmUuIFRoZXJlJ3MgbG90cyBv ZiBnb29kIGlkZWFzIHdlIGNhbiBwdXNoIGZvciBhcm91bmQgaWd0LCBzbwo+IGFyYml0cmFyaWx5 IGZpbGxpbmcgYSB0b2RvIGZpbGUgaXNuJ3QgaGFyZC4gQnV0IEkgYWxzbyBkb24ndCBzZWUgdGhl Cj4gcG9pbnQgKHdlIGRvIGhhdmUgc29tZSB0b2RvIGl0ZW1zIGJ0dyBvbiBnaXRsYWIgSSB0aGlu aykuCj4gLURhbmllbAoKQ29uY2VybmVkIHRoYXQgYSBuZXcgcmVxdWlyZW1lbnQgYWRkZWQgdG8g dGhlIERSTSBmcmFtZXdvcmsgY2FuIGJlIG1ldCB3aXRoIHB1c2hiYWNrcwppZiB0aGUgdG9vbCBp cyBub3QgdXNhYmxlIG9yIGdlbmVyYXRlcyBmYWxzZSBuZWdhdGl2ZXMuIENvbmNlcm5lZCB0aGF0 IGFkZGluZyBhIGdlbmVyaWMKZmVhdHVyZSBsaWtlIHdyaXRlYmFjayBpbnRvIGlndCBpcyB0YWtp bmcgYW4gZXhjZXNzaXZlIGFtb3VudCBvZiB0aW1lIHRvIGJlIHJldmlld2VkCmFuZCBtZXJnZWQg YW5kIHRoYXQgaW4gdGhlIGZ1dHVyZSBnZXR0aW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzIGlzIGdv aW5nIHRvIGJlIG1hbmRhdG9yeQpmb3IgYW55IG5ldyBmZWF0dXJlLgoKQmVzdCByZWdhcmRzLApM aXZpdQoKPiAKPiA+Cj4gPiBCZXN0IHJlZ2FyZHMsCj4gPiBMaXZpdQo+ID4KPiA+Cj4gPiA+IE9u bHkgdGhpbmcgSSBjYW4gdGVsbCB5b3UgaXMgdGhhdCB3ZSBoYWQgaHVnZQo+ID4gPiBhbW91bnRz IG9mIHRvZG8gZm9yIG1pc3NpbmcgaWd0IHRlc3RzLCBhbmQgYWZhaWsgd2UndmUgd29ya2VkIHRo ZW0gYWxsCj4gPiA+IGRvd24uIFdlID0gaW50ZWwgaGVyZS4gSXQncyBub3QgcGVyZmVjdCwgYnV0 IGdvb2QgZW5vdWdoIHRoYXQgd2UndmUKPiA+ID4gZXNzZW50aWFsbHkgc3RvcHBlZCBkb2luZyBh bnkgdmFsaWRhdGlvbiBleGNlcHQgYnkgcnVubmluZyBpZ3QuIE9mCj4gPiA+IGNvdXJzZSB5b3Ug Y2FuIGFsd2F5cyB3cml0ZSBtb3JlIHRlc3RzLCBzYW1lIHdheSB5b3UgY2FuIGFsd2F5cwo+ID4g PiBiaWtlc2hlZCBhIHBhdGNoIGEgZmV3IG1vcmUgdGltZXMuIEV2ZW50dWFsbHkgdGhlcmUncyBk aW1pc2hpbmcKPiA+ID4gcmV0dXJucy4KPiA+ID4gLURhbmllbAo+ID4gPgo+ID4gPiA+IEJlc3Qg cmVnYXJkcywKPiA+ID4gPiBMaXZpdQo+ID4gPiA+Cj4gPiA+ID4gPiAtRGFuaWVsCj4gPiA+ID4g Pgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBCZXN0IHJlZ2FyZHMsCj4gPiA+ID4gPiA+IExpdml1 Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICBW YWxpZGF0aW5nIGNoYW5nZXMgd2l0aCBJR1QKPiA+ID4gPiA+ID4gPiAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAtLQo+ID4gPiA+ID4gPiA+ IDIuMjAuMQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0K PiA+ID4gPiA+IERhbmllbCBWZXR0ZXIKPiA+ID4gPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRl bCBDb3Jwb3JhdGlvbgo+ID4gPiA+ID4gKzQxICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxv Zy5mZndsbC5jaAo+ID4gPiA+Cj4gPiA+ID4gLS0KPiA+ID4gPiA9PT09PT09PT09PT09PT09PT09 PQo+ID4gPiA+IHwgSSB3b3VsZCBsaWtlIHRvIHwKPiA+ID4gPiB8IGZpeCB0aGUgd29ybGQsICB8 Cj4gPiA+ID4gfCBidXQgdGhleSdyZSBub3QgfAo+ID4gPiA+IHwgZ2l2aW5nIG1lIHRoZSAgIHwK PiA+ID4gPiAgXCBzb3VyY2UgY29kZSEgIC8KPiA+ID4gPiAgIC0tLS0tLS0tLS0tLS0tLQo+ID4g PiA+ICAgICDCr1xfKOODhClfL8KvCj4gPiA+Cj4gPiA+Cj4gPiA+Cj4gPiA+IC0tCj4gPiA+IERh bmllbCBWZXR0ZXIKPiA+ID4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4g PiA+ICs0MSAoMCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiA+Cj4gPiAt LQo+ID4gPT09PT09PT09PT09PT09PT09PT0KPiA+IHwgSSB3b3VsZCBsaWtlIHRvIHwKPiA+IHwg Zml4IHRoZSB3b3JsZCwgIHwKPiA+IHwgYnV0IHRoZXkncmUgbm90IHwKPiA+IHwgZ2l2aW5nIG1l IHRoZSAgIHwKPiA+ICBcIHNvdXJjZSBjb2RlISAgLwo+ID4gICAtLS0tLS0tLS0tLS0tLS0KPiA+ ICAgICDCr1xfKOODhClfL8KvCj4gCj4gCj4gCj4gLS0gCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3 YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICs0MSAoMCkgNzkgMzY1IDU3IDQ4IC0g aHR0cDovL2Jsb2cuZmZ3bGwuY2gKCi0tIAo9PT09PT09PT09PT09PT09PT09PQp8IEkgd291bGQg bGlrZSB0byB8CnwgZml4IHRoZSB3b3JsZCwgIHwKfCBidXQgdGhleSdyZSBub3QgfAp8IGdpdmlu ZyBtZSB0aGUgICB8CiBcIHNvdXJjZSBjb2RlISAgLwogIC0tLS0tLS0tLS0tLS0tLQogICAgwq9c Xyjjg4QpXy/CrwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK