From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Peres Subject: Re: [Intel-gfx] [PATCH 5/9] drm/i915: Enable i915 perf stream for Haswell OA unit Date: Wed, 4 May 2016 12:04:21 +0300 Message-ID: References: <1461162194-1424-1-git-send-email-robert@sixbynine.org> <1461162194-1424-6-git-send-email-robert@sixbynine.org> <571B4FD1.60702@free.fr> 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: Robert Bragg , Martin Peres Cc: Deepak S , Daniel Vetter , intel-gfx@lists.freedesktop.org, Sourab Gupta , ML dri-devel List-Id: dri-devel@lists.freedesktop.org T24gMDMvMDUvMTYgMjI6MzQsIFJvYmVydCBCcmFnZyB3cm90ZToKPiBTb3JyeSBmb3IgdGhlIGRl bGF5IHJlcGx5aW5nIHRvIHRoaXMsIEkgbWlzc2VkIGl0LgoKTm8gd29ycmllcyEKCj4KPiBPbiBT YXQsIEFwciAyMywgMjAxNiBhdCAxMTozNCBBTSwgTWFydGluIFBlcmVzIDxtYXJ0aW4ucGVyZXNA ZnJlZS5mcgo+IDxtYWlsdG86bWFydGluLnBlcmVzQGZyZWUuZnI+PiB3cm90ZToKPgo+ICAgICBP biAyMC8wNC8xNiAxNzoyMywgUm9iZXJ0IEJyYWdnIHdyb3RlOgo+Cj4gICAgICAgICBHZW4gZ3Jh cGhpY3MgaGFyZHdhcmUgY2FuIGJlIHNldCB1cCB0byBwZXJpb2RpY2FsbHkgd3JpdGUKPiAgICAg ICAgIHNuYXBzaG90cyBvZgo+ICAgICAgICAgcGVyZm9ybWFuY2UgY291bnRlcnMgaW50byBhIGNp cmN1bGFyIGJ1ZmZlciB2aWEgaXRzIE9ic2VydmF0aW9uCj4gICAgICAgICBBcmNoaXRlY3R1cmUg YW5kIHRoaXMgcGF0Y2ggZXhwb3NlcyB0aGF0IGNhcGFiaWxpdHkgdG8gdXNlcnNwYWNlCj4gICAg ICAgICB2aWEgdGhlCj4gICAgICAgICBpOTE1IHBlcmYgaW50ZXJmYWNlLgo+Cj4gICAgICAgICBD YzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWsKPiAgICAgICAgIDxtYWls dG86Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPj4KPiAgICAgICAgIFNpZ25lZC1vZmYtYnk6IFJv YmVydCBCcmFnZyA8cm9iZXJ0QHNpeGJ5bmluZS5vcmcKPiAgICAgICAgIDxtYWlsdG86cm9iZXJ0 QHNpeGJ5bmluZS5vcmc+Pgo+ICAgICAgICAgU2lnbmVkLW9mZi1ieTogWmhlbnl1IFdhbmcgPHpo ZW55dXdAbGludXguaW50ZWwuY29tCj4gICAgICAgICA8bWFpbHRvOnpoZW55dXdAbGludXguaW50 ZWwuY29tPj4KPiAgICAgICAgIC0tLQo+ICAgICAgICAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICAgICAgfCAgNTYgKy0KPiAgICAgICAgICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5jIHwgIDI0ICstCj4gICAgICAgICAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGVyZi5jICAgICAgICB8IDk0MAo+ICAgICAgICAgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KPiAgICAgICAgICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaCAgICAgICAgIHwgMzM4ICsrKysrKysrKysrKwo+ICAgICAgICAgICBpbmNsdWRlL3VhcGkv ZHJtL2k5MTVfZHJtLmggICAgICAgICAgICAgfCAgNzAgKystCj4gICAgICAgICAgIDUgZmlsZXMg Y2hhbmdlZCwgMTQwOCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKPgo+ICAgICAgICAg Kwo+ICAgICAgICAgKwo+ICAgICAgICAgKyAgICAgICAvKiBJdCB0YWtlcyBhIGZhaXJseSBsb25n IHRpbWUgZm9yIGEgbmV3IE1VWAo+ICAgICAgICAgY29uZmlndXJhdGlvbiB0bwo+ICAgICAgICAg KyAgICAgICAgKiBiZSBiZSBhcHBsaWVkIGFmdGVyIHRoZXNlIHJlZ2lzdGVyIHdyaXRlcy4gVGhp cyBkZWxheQo+ICAgICAgICAgKyAgICAgICAgKiBkdXJhdGlvbiB3YXMgZGVyaXZlZCBlbXBpcmlj YWxseSBiYXNlZCBvbiB0aGUKPiAgICAgICAgIHJlbmRlcl9iYXNpYwo+ICAgICAgICAgKyAgICAg ICAgKiBjb25maWcgYnV0IGhvcGVmdWxseSBpdCBjb3ZlcnMgdGhlIG1heGltdW0gY29uZmlndXJh dGlvbgo+ICAgICAgICAgKyAgICAgICAgKiBsYXRlbmN5Li4uCj4gICAgICAgICArICAgICAgICAq Lwo+ICAgICAgICAgKyAgICAgICBtZGVsYXkoMTAwKTsKPgo+Cj4gICAgIFdpdGggc3VjaCBhIEhX IGFuZCBTVyBkZXNpZ24sIGhvdyBjYW4gd2UgZXZlciBleHBvc2UgaG9wZSB0byBnZXQgYW55Cj4g ICAgIGtpbmQgb2YgcGVyZm9ybWFuY2Ugd2hlbiB3ZSBhcmUgdHJ5aW5nIHRvIG1vbml0b3IgZGlm ZmVyZW50IG1ldHJpY3MKPiAgICAgb24gZWFjaAo+ICAgICBkcmF3IGNhbGw/IFRoaXMgbWF5IGJl IGFjY2VwdGFibGUgZm9yIHN5c3RlbSBtb25pdG9yaW5nLCBidXQgaXQgaXMKPiAgICAgcHJvYmxl bWF0aWMKPiAgICAgZm9yIHRoZSBHTCBleHRlbnNpb25zIDpzCj4KPgo+ICAgICBTaW5jZSBpdCBz ZWVtcyBsaWtlIHdlIGFyZSBnb2luZyBmb3IgYSBwZXJmIEFQSSwgaXQgbWVhbnMgdGhhdCBmb3IK PiAgICAgZXZlcnkgY2hhbmdlCj4gICAgIG9mIG1ldHJpY3MsIHdlIG5lZWQgdG8gZmx1c2ggdGhl IGNvbW1hbmRzLCB3YWl0IGZvciB0aGUgR1BVIHRvIGJlCj4gICAgIGRvbmUsIHRoZW4KPiAgICAg cHJvZ3JhbSB0aGUgbmV3IHNldCBvZiBtZXRyaWNzIHZpYSBhbiBJT0NUTCwgd2FpdCAxMDAgbXMs IGFuZCB0aGVuCj4gICAgIHdlIG1heQo+ICAgICByZXN1bWUgcmVuZGVyaW5nIC4uLiB1bnRpbCB0 aGUgbmV4dCBjaGFuZ2UuIFdlIGFyZSB0YWxraW5nIGFib3V0IGEKPiAgICAgbGF0ZW5jeSBvZgo+ ICAgICA2LTcgZnJhbWVzIGF0IDYwIEh6IGhlcmUuLi4gdGhpcyBpcyBub24tbmVnbGlnZWFibGUu Li4KPgo+Cj4gICAgIEkgdW5kZXJzdGFuZCB0aGF0IHdlIGhhdmUgYSB0b24gb2YgY291bnRlcnMg YW5kIHdlIG1heSBoaWRlIGxhdGVuY3kKPiAgICAgYnkgbm90Cj4gICAgIGFsbG93aW5nIHVzaW5n IG1vcmUgdGhhbiBoYWxmIG9mIHRoZSBjb3VudGVycyBmb3IgZXZlcnkgZHJhdyBjYWxsIG9yCj4g ICAgIGZyYW1lLCBidXQKPiAgICAgZXZlbiB0aGVuLCB0aGlzIDEwMG1zIGRlbGF5IGlzIGtpbGxp bmcgdGhpcyBhcHByb2FjaCBhbHRvZ2V0aGVyLgo+Cj4KPgo+IEFsdGhvdWdoIEknbSBhbHNvIHJl YWxseSB1bmhhcHB5IGFib3V0IGludHJvZHVjaW5nIHRoaXMgZGVsYXkgcmVjZW50bHksCj4gdGhl IGltcGFjdCBvZiB0aGUgZGVsYXkgaXMgdHlwaWNhbGx5IGFtb3J0aXplZCBzb21ld2hhdCBieSBr ZWVwaW5nIGEKPiBjb25maWd1cmF0aW9uIG9wZW4gYXMgbG9uZyBhcyBwb3NzaWJsZS4KPgo+IEV2 ZW4gd2l0aG91dCB0aGlzIGV4cGxpY2l0IGRlbGF5IGhlcmUgdGhlIE9BIHVuaXQgaXNuJ3Qgc3Vp dGVkIHRvIGJlaW5nCj4gcmVjb25maWd1cmVkIG9uIGEgcGVyIGRyYXcgY2FsbCBiYXNpcywgdGhv dWdoIGl0IGlzIGFibGUgdG8gc3VwcG9ydCBwZXIKPiBkcmF3IGNhbGwgcXVlcmllcyB3aXRoIHRo ZSBzYW1lIGNvbmZpZy4KPgo+IFRoZSBhYm92ZSBhc3Nlc3NtZW50IGFzc3VtZXMgd2FudGluZyB0 byBjaGFuZ2UgY29uZmlnIGJldHdlZW4gZHJhdyBjYWxscwo+IHdoaWNoIGlzIG5vdCBzb21ldGhp bmcgdGhpcyBkcml2ZXIgYWltcyB0byBzdXBwb3J0IC0gYXMgdGhlIEhXIGlzbid0Cj4gcmVhbGx5 IGRlc2lnbmVkIGZvciB0aGF0IG1vZGVsLgo+Cj4gRS5nLiBpbiB0aGUgY2FzZSBvZiBJTlRFTF9w ZXJmb3JtYW5jZV9xdWVyeSwgdGhlIGJhY2tlbmQga2VlcHMgdGhlIGk5MTUKPiBwZXJmIHN0cmVh bSBvcGVuIHVudGlsIGFsbCBPQSBiYXNlZCBxdWVyeSBvYmplY3RzIGFyZSBkZWxldGVkIC0gc28g eW91Cj4gaGF2ZSB0byBiZSBwcmV0dHkgZXhwbGljaXQgaWYgeW91IHdhbnQgdG8gY2hhbmdlIGNv bmZpZy4KCk9LLCBJIGdldCB5b3VyIHBvaW50LiBIb3dldmVyLCBJIHN0aWxsIHdhbnQgdG8gc3Rh dGUgdGhhdCBhcHBsaWNhdGlvbnMgCmNoYW5naW5nIHRoZSBzZXQgd291bGQgc2VlIGEgZGlzYXN0 cm91cyBlZmZlY3QgYXMgYSAxMDAgbXMgaXMgZW5vdWdoIHRvIApkb3duY2xvY2sgYm90aCB0aGUg Q1BVIGFuZCBHUFUgYW5kIHRoYXQgd291bGQgZHJhbWF0aWNhbGx5IGFsdGVyIHRoZQptZXRyaWNz LiBTaG91bGQgd2UgbWFrZSBpdCBjbGVhciBzb21ld2hlcmUsIGVpdGhlciBpbiB0aGUgCklOVEVM X3BlcmZvcm1hbmNlX3F1ZXJ5IG9yIGFzIGEgd2FybmluZyBpbiBtZXNhX3BlcmZvcm1hbmNlIGlm IGNoYW5naW5nIAp0aGUgc2V0IHdoaWxlIHJ1bm5pbmc/IEkgd291bGQgdGhpbmsgdGhlIGxhdHRl ciB3b3VsZCBiZSBwcmVmZXJhYmxlIGFzIAppdCBjb3VsZCBhbHNvIGNvdmVyIHRoZSBjYXNlIG9m IHRoZSBBTUQgZXh0ZW5zaW9uIHdoaWNoLCBJSVJDLCBkb2VzIG5vdCAKdGFsayBhYm91dCB0aGUg cGVyZm9ybWFuY2UgY29zdCBvZiBjaGFuZ2luZyB0aGUgbWV0cmljcy4gV2l0aCB0aGlzIApjYXZl YXQgbWFkZSBjbGVhciwgaXQgc2VlbXMgcmVhc29uYWJsZS4KCj4KPiBDb25zaWRlcmluZyB0aGUg c2V0cyBhdmFpbGFibGUgb24gSGFzd2VsbDoKPiAqIFJlbmRlciBNZXRyaWNzIEJhc2ljCj4gKiBD b21wdXRlIE1ldHJpY3MgQmFzaWMKPiAqIENvbXB1dGUgTWV0cmljcyBFeHRlbmRlZAo+ICogTWVt b3J5IFJlYWRzIERpc3RyaWJ1dGlvbgo+ICogTWVtb3J5IFdyaXRlcyBEaXN0cmlidXRpb24KPiAq IE1ldHJpYyBzZXQgU2FtcGxlckJhbGFuY2UKPgo+IEVhY2ggb2YgdGhlc2UgY29uZmlncyBjYW4g ZXhwb3NlIGFyb3VuZCA1MCBjb3VudGVycyBhcyBhIHNldC4KPgo+IEEgR0wgYXBwbGljYXRpb24g aXMgbW9zdCBsaWtlbHkganVzdCBnb2luZyB0byB1c2UgdGhlIHJlbmRlciBiYXNpYyBzZXQsCj4g YW5kIEluIHRoZSBjYXNlIG9mIGEgdG9vbCBsaWtlIGdwdXRvcC9HUEEgdGhlbiBjaGFuZ2luZyBj b25maWcgd291bGQKPiB1c3VhbGx5IGJlIGRyaXZlbiBieSBzb21lIHVzZXIgaW50ZXJhY3Rpb24g dG8gc2VsZWN0IGEgc2V0IG9mIG1ldHJpY3MsCj4gd2hlcmUgZXZlbiBhIDEwMG1zIGRlbGF5IHdp bGwgZ28gdW5ub3RpY2VkLgoKMTAwIG1zIGlzIGJlY29taW5nIHZpc2libGUsIGJ1dCBJIGFncmVl LCBpdCB3b3VsZCBub3QgYmUgYSBzaG93IHN0b3BwZXIgCmZvciBzdXJlLgoKT24gdGhlIEFQSVRS QUNFIHNpZGUsIHRoaXMgc2hvdWxkIG5vdCBiZSBhbiBpc3N1ZSwgYmVjYXVzZSB3ZSBkbyBub3Qg CmNoYW5nZSB0aGUgc2V0IG9mIG1ldHJpY3Mgd2hpbGUgcnVubmluZy4KCj4KPiBJbiBjYXNlIHlv dSBhcmVuJ3QgZmFtaWxpYXIgd2l0aCBob3cgdGhlIEdMX0lOVEVMX3BlcmZvcm1hbmNlX3F1ZXJ5 IHNpZGUKPiBvZiB0aGluZ3Mgd29ya3MgZm9yIE9BIGNvdW50ZXJzOyBvbmUgdGhpbmcgdG8gYmUg YXdhcmUgb2YgaXMgdGhhdAo+IHRoZXJlJ3MgYSBzZXBhcmF0ZSBNSV9SRVBPUlRfUEVSRl9DT1VO VCBjb21tYW5kIHRoYXQgTWVzYSB3cml0ZXMgZWl0aGVyCj4gc2lkZSBvZiBhIHF1ZXJ5IHdoaWNo IHdyaXRlcyBhbGwgdGhlIGNvdW50ZXJzIGZvciB0aGUgY3VycmVudCBPQSBjb25maWcKPiAoYXMg Y29uZmlndXJlZCB2aWEgdGhpcyBpOTE1IHBlcmYgaW50ZXJmYWNlKSB0byBhIGJ1ZmZlci4gSW4g YWRkaXRpb24gdG8KPiBjb2xsZWN0aW5nIHJlcG9ydHMgdmlhIE1JX1JFUE9SVF9QRVJGX0NPVU5U IE1lc2EgYWxzbyBjb25maWd1cmVzIHRoZQo+IHVuaXQgZm9yIHBlcmlvZGljIHNhbXBsaW5nIHRv IGJlIGFibGUgdG8gYWNjb3VudCBmb3IgcG90ZW50aWFsIGNvdW50ZXIKPiBvdmVyZmxvdy4KCk9o LCB0aGUgb3ZlcmZsb3cgY2FzZSBpcyBtZWFuLiBEb2Vzbid0IHRoZSBzcGVjIG1hbmRhdGUgdGhl IGFwcGxpY2F0aW9uIAp0byByZWFkIGF0IGxlYXN0IGV2ZXJ5IHNlY29uZD8gVGhpcyBpcyB0aGUg Y2FzZSBmb3IgdGhlIHRpbWVzdGFtcCBxdWVyaWVzLgoKPgo+Cj4gSXQgYWxzbyBtaWdodCBiZSB3 b3J0aCBrZWVwaW5nIGluIG1pbmQgdGhhdCBwZXIgZHJhdyBxdWVyaWVzIHdpbGwgYW55d2F5Cj4g dHJhc2ggdGhlIHBpcGVsaW5pbmcgb2Ygd29yaywgc2luY2UgaXQncyBuZWNlc3NhcnkgdG8gcHV0 IHN0YWxscyBiZXR3ZWVuCj4gdGhlIGRyYXcgY2FsbHMgdG8gYXZvaWQgY29uZmxhdGVkIG1ldHJp Y3MgKG5vdCB0byBkbyB3aXRoIHRoZSBkZXRhaWxzIG9mCj4gdGhpcyBkcml2ZXIpIHNvIHVzZSBj YXNlcyB3aWxsIHByb2JhYmx5IGJlIGxpbWl0ZWQgdG8gdGhvc2UgdGhhdCBqdXN0Cj4gd2FudCB0 aGUgZHJhdyBjYWxsIG51bWJlcnMgYnV0IGRvbid0IG1pbmQgcnVpbmluZyBvdmVyYWxsCj4gZnJh bWUvYXBwbGljYXRpb24gcGVyZm9ybWFuY2UuIFBlcmlvZGljIHNhbXBsaW5nIG9yIHN3YXAtdG8t c3dhcCBxdWVyaWVzCj4gd291bGQgYmUgYmV0dGVyIHN1aXRlZCB0byBjYXNlcyB0aGF0IHNob3Vs ZCBtaW5pbWl6ZSB0aGVpciBpbXBhY3QuCgpZZXMsIEkgYWdyZWUgdGhhdCB0aGVyZSB3aWxsIGFs d2F5cyBiZSBhIGNvc3QsIGJ1dCB3aXRoIHRoZSBkZXNpZ24gCmltcGxlbWVudGVkIGluIG5vdXZl YXUgKHdoaWNoIGJhcmVseSBpbnZvbHZlcyB0aGUgQ1BVIGF0IGFsbCksIHRoZSAKcGlwZWxpbmlu ZyBpcyBhbG1vc3QgdW5hZmZlY3RlZC4gQXMgaW4sIG1vbml0b3JpbmcgZXZlcnkgZHJhdyBjYWxs IHdpdGggCmEgZGlmZmVyZW50IG1ldHJpYyB3b3VsZCBsb3dlciB0aGUgcGVyZm9ybWFuY2Ugb2Yg Z2x4Z2VhcnMgKHdvcnN0IGNhc2UgSSAKY291bGQgdGhpbmsgb2ZmKSBidXQgc3RpbGwga2VlcCB0 aG91c2FuZHMgb2YgRlBTLgo+Cj4KPgo+ICAgICBUbyBiZSBob25lc3QsIGlmIGl0IGluZGVlZCBp cyBhbiBIVyBidWcsIHRoZW4gdGhlIGFwcHJvYWNoIHRoYXQKPiAgICAgU2FtdWVsIFBpdG9pc2V0 Cj4gICAgIGFuZCBJIHVzZWQgZm9yIE5vdXZlYXUgaW52b2x2aW5nIHB1c2hpbmcgYW4gaGFuZGxl IHJlcHJlc2VudGluZyBhCj4gICAgIHByZS1jb21wdXRlZCBjb25maWd1cmF0aW9uIHRvIHRoZSBj b21tYW5kIGJ1ZmZlciBzbyBhcyBhIHNvZnR3YXJlIG1ldGhvZAo+ICAgICBjYW4gYmUgYXNrIHRo ZSBrZXJuZWwgdG8gcmVwcm9ncmFtIHRoZSBjb3VudGVycyB3aXRoIGFzIGxpdHRsZSBpZGxlCj4g ICAgIHRpbWUgYXMKPiAgICAgcG9zc2libGUsIHdvdWxkIGJlIHVzZWxlc3MgYXMgd2FpdGluZyBm b3IgdGhlIEdQVSB0byBiZSBpZGxlIHdvdWxkCj4gICAgIHVzdWFsbHkgbm90Cj4gICAgIHRha2Ug bW9yZSB0aGFuIGEgZmV3IG1zLi4uIHdoaWNoIGlzIG5vdGhpbmcgY29tcGFyZWQgdG8gd2FpdGlu ZyAxMDBtcy4KPgo+Cj4gWWVhaCwgSSB0aGluayB0aGlzIGlzIGEgcmVhbGx5IHF1aXRlIGRpZmZl cmVudCBwcm9ncmFtbWluZyBtb2RlbCB0byB3aGF0Cj4gdGhlIE9BIHVuaXQgaXMgZ2VhcmVkIGZv ciwgZXZlbiBpZiB3ZSBjYW4gc29tZWhvdyBrbm9jayBvdXQgdGhpcyAxMDBtcwo+IE1VWCBjb25m aWcgZGVsYXkuCgpUb28gYmFkIDopCgo+Cj4KPgo+ICAgICBTbywgbm93LCB0aGUgZWxlcGhhbnQg aW4gdGhlIHJvb20sIGhvdyBjYW4gaXQgdGFrZSB0aGF0IGxvbmcgdG8KPiAgICAgYXBwbHkgdGhl Cj4gICAgIGNoYW5nZT8gQXJlIHRoZSBPQSByZWdpc3RlcnMgZG91YmxlIGJ1ZmZlcmVkIChOVklE SUEncyBhcmUsIHNvIGFzIHdlIGNhbgo+ICAgICByZWNvbmZpZ3VyZSBhbmQgc3RhcnQgbW9uaXRv cmluZyBtdWx0aXBsZSBjb3VudGVycyBhdCB0aGUgc2FtZSB0aW1lKT8KPgo+Cj4gQmFzZWQgb24g bXkgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlIEhXIHdvcmtzIGludGVybmFsbHkgSSBjYW4gc2Vl IGhvdwo+IHNvbWUgZGVsYXkgd291bGQgYmUgZXhwZWN0ZWQsIGJ1dCBjYW4ndCBjdXJyZW50bHkg ZmF0aG9tIHdoeSBpdCB3b3VsZAo+IG5lZWQgdG8gaGF2ZSB0aGlzIG9yZGVyIG9mIG1hZ25pdHVk ZSwgYW5kIHNvIHRoZSBkZWxheSBpcyBjdXJyZW50bHkKPiBzaW1wbHkgYmFzZWQgb24gZXhwZXJp bWVudGF0aW9uIHdoZXJlIEkgd2FzIGdldHRpbmcgdW5pdCB0ZXN0IGZhaWx1cmVzCj4gYXQgMTBt cywgZm9yIGludmFsaWQgbG9va2luZyByZXBvcnRzLCBidXQgdGhlIHRlc3RzIHJhbiByZWxpYWJs eSBhdCAxMDBtcy4KPgo+IE9BIGNvbmZpZ3VyYXRpb24gc3RhdGUgaXNuJ3QgZG91YmxlIGJ1ZmZl cmVkIHRvIGFsbG93IGNvbmZpZ3VyYXRpb24KPiB3aGlsZSBpbiB1c2UuCj4KPgo+Cj4KPiAgICAg TWF5YmUgdGhpcyAxMDBtcyBpcyB0aGUgcG9sbGluZyBwZXJpb2QgYW5kIHRoZSBIVyBkb2VzIG5v dCBhbGxvdwo+ICAgICBjaGFuZ2luZwo+ICAgICB0aGUgY29uZmlndXJhdGlvbiBpbiB0aGUgbWlk ZGxlIG9mIGEgcG9sbGluZyBzZXNzaW9uLiBJbiB0aGlzIGNhc2UsCj4gICAgIHRoaXMgZGVsYXkK PiAgICAgc2hvdWxkIGJlIGRlcGVuZGVudCBvbiB0aGUgcG9sbGluZyBmcmVxdWVuY3kuIEJ1dCBl dmVuIHRoZW4sIEkgd291bGQKPiAgICAgcmVhbGx5Cj4gICAgIGhvcGUgdGhhdCB0aGUgSFcgd291 bGQgYWxsb3cgdXMgdG8gdGVhciBkb3duIGV2ZXJ5dGhpbmcsIHJlY29uZmlndXJlIGFuZAo+ICAg ICBzdGFydCBwb2xsaW5nIGFnYWluIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIG5leHQgdGljay4g SWYgbm90Cj4gICAgIHBvc3NpYmxlLCBtYXliZSB3ZQo+ICAgICBjYW4gY2hhbmdlIHRoZSBmcmVx dWVuY3kgZm9yIHRoZSBwb2xsaW5nIGNsb2NrIHRvIG1ha2UgdGhlIHBvbGxpbmcKPiAgICAgZXZl bnQgaGFwcGVuCj4gICAgIHNvb25lci4KPgo+Cj4gVGhlIHRlc3RzIGN1cnJlbnRseSB0ZXN0IHBl cmlvZHMgZnJvbSAxNjBucyB0byAxNjggbWlsbGlzZWNvbmRzIHdoaWxlCj4gdGhlIGRlbGF5IHJl cXVpcmVkIGZhbGxzIHNvbWV3aGVyZSBiZXR3ZWVuIDEwIGFuZCAxMDAgbWlsbGlzZWNvbmRzLiBJ Cj4gdGhpbmsgSSdkIGV4cGVjdCB0aGUgZGVsYXkgdG8gYmUgPiBhbGwgcGVyaW9kcyB0ZXN0ZWQg aWYgdGhpcyB3YXMgdGhlIGxpbmsuCgpUaGFua3MsIGRlZmluaXRlbHkgdGhlIGtpbmQgb2YgaW5m b3JtYXRpb24gdGhhdCBpcyB2YWx1YWJsZSBmb3IgCnVuZGVyc3RhbmRpbmcgdGhpcyBpc3N1ZSEK Cj4KPiBHZW5lcmFsbHkgdGhpcyBzZWVtcyB1bmxpa2VseSB0byBtZSwgaW4gcGFydCBjb25zaWRl cmluZyBob3cgdGhlIE1VWAo+IGlzbid0IHJlYWxseSBwYXJ0IG9mIHRoZSBPQSB1bml0IHRoYXQg aGFuZGxlcyBwZXJpb2RpYyBzYW1wbGluZy4gSQo+IHdvdWxkbid0IHJ1bGUgb3V0IHNvbWUgaW50 ZXJhY3Rpb24gdGhvdWdoIHNvIHNvbWUgZXhwZXJpbWVudGluZyBhbG9uZwo+IHRoZXNlIGxpbmVz IGNvdWxkIGJlIGludGVyZXN0aW5nLgoKVGhhdCBpbmRlZWQgbWFrZXMgaXQgbGVzcyBsaWtlbHku IEludGVyYWN0aW9ucyBpbmNyZWFzZSB0aGUgQk9NIQoKPgo+Cj4KPiAgICAgSFcgZGVsYXlzIGFy ZSB1c3VhbGx5IGEgZmV3IG1pY3Jvc2Vjb25kcywgbm90IG1pbGxpc2Vjb25kcywgdGhhdAo+ICAg ICByZWFsbHkgc3VnZ2VzdHMKPiAgICAgdGhhdCBzb21ldGhpbmcgZnVubnkgaXMgaGFwcGVuaW5n IGFuZCB0aGUgSFcgZGVzaWduIGlzIG5vdAo+ICAgICB1bmRlcnN0b29kIHByb3Blcmx5Lgo+Cj4K PiBZdXAuCj4KPiBBbHRob3VnaCBJIHVuZGVyc3RhbmQgbW9yZSBhYm91dCB0aGUgSFcgdGhhbiBJ IGNhbiB3cml0ZSB1cCBoZXJlLCBJCj4gY2FuJ3QgY3VycmVudGx5IHNlZSB3aHkgdGhlIEhXIHNo b3VsZCBldmVyIHJlYWxseSB0YWtlIHRoaXMgbG9uZyB0bwo+IGFwcGx5IGEgTVVYIGNvbmZpZyAt IGFsdGhvdWdoIEkgY2FuIHNlZSB3aHkgc29tZSBkZWxheSB3b3VsZCBiZSByZXF1aXJlZC4KPgo+ IEl0J3Mgb24gbXkgbGlzdCBvZiB0aGluZ3MgdG8gdHJ5IGFuZCBnZXQgZmVlZGJhY2svaWRlYXMg b24gZnJvbSB0aGUgT0EKPiBhcmNoaXRlY3QvSFcgZW5naW5lZXJzLiBJIGJyb3VnaHQgdGhpcyB1 cCBicmllZmx5IHNvbWUgdGltZSBhZ28gYnV0IHdlCj4gZGlkbid0IGhhdmUgdGltZSB0byBnbyBp bnRvIGRldGFpbHMuCgpTb3VuZHMgbGlrZSBhIGdvb2QgaWRlYSEKCj4KPgo+Cj4gICAgIElmIHRo ZSBkb2N1bWVudGF0aW9uIGhhcyBub3RoaW5nIG9uIHRoaXMgYW5kIHRoZSBIVyB0ZWFtcyBjYW5u b3QKPiAgICAgaGVscCwgdGhlbiBJCj4gICAgIHN1Z2dlc3QgYSBsaXR0bGUgUkVpbmcgc2Vzc2lv bgo+Cj4KPiBUaGVyZSdzIG5vIHByZWNpc2VseSBkb2N1bWVudGVkIGRlbGF5IHJlcXVpcmVtZW50 LiBJbnNvZmFyIGFzIFJFaW5nIGlzCj4gdGhlIHByb2Nlc3Mgb2YgaW5mZXJyaW5nIGhvdyBibGFj ayBib3ggSFcgd29ya3MgdGhyb3VnaCBwb2tpbmcgaXQgd2l0aCBhCj4gc3RpY2sgYW5kIHNlZWlu ZyBob3cgaXQgcmVhY3RzLCB0aGVuIHllcCBtb3JlIG9mIHRoYXQgbWF5IGJlIG5lY2Vzc2FyeS4K PiBBdCBsZWFzdCBpbiB0aGlzIGNhc2UgdGhlIEhXIGlzbid0IHJlYWxseSBhIGJsYWNrIGJveCAo bWF5YmUgc3RhaW4KPiBnbGFzcyksIHdoZXJlIEkgaG9wZWZ1bGx5IGhhdmUgYSBmYWlybHkgZ29v ZCBzZW5zZSBvZiBob3cgdGhlIEhXIGlzCj4gZGVzaWduZWQgYW5kIGNhbiBwcm9kIGZvbGtzIGNs b3NlciB0byB0aGUgSFcgZm9yIGZlZWRiYWNrL2lkZWFzLgo+Cj4gU28gZmFyIEkgaGF2ZW4ndCBz cGVudCB0b28gbG9uZyBpbnZlc3RpZ2F0aW5nIHRoaXMgYmVzaWRlcyByZWNlbnRseQo+IGhvbWlu ZyBpbiBvbiBuZWVkaW5nIGEgZGVsYXkgaGVyZSB3aGVuIG15IHVuaXQgdGVzdHMgd2VyZSBmYWls aW5nLgoKQUNLISBUaGFua3MgZm9yIHRoZSBpbmZvIQoKPgo+Cj4gICAgIEkgcmVhbGx5IHdhbnQg dG8gc2VlIHRoaXMgd29yayBsYW5kLCBidXQgdGhlIHdheSBJIHNlZQo+ICAgICBpdCByaWdodCBu b3cgaXMgdGhhdCB3ZSBjYW5ub3QgcmVseSBvbiBpdCBiZWNhdXNlIG9mIHRoaXMgYnVnLiBNYXli ZQo+ICAgICBmaXhpbmcgdGhpcyBidWcKPiAgICAgd291bGQgcmVxdWlyZSBjaGFuZ2luZyB0aGUg YXJjaGl0ZWN0dXJlLCBzbyBiZXR0ZXIgYWRkcmVzcyBpdCBiZWZvcmUKPiAgICAgbGFuZGluZyB0 aGUKPiAgICAgcGF0Y2hlcy4KPgo+Cj4gSSB0aGluayBpdCdzIHVubGlrZWx5IHRvIGNoYW5nZSB0 aGUgYXJjaGl0ZWN0dXJlOyByYXRoZXIgd2UgbWlnaHQganVzdAo+IGZpbmQgc29tZSBvdGhlciB0 aGluZ3MgdG8gZnJvYiB0aGF0IG1ha2UgdGhlIE1VWCBjb25maWcgYXBwbHkgZmFzdGVyCj4gKGUu Zy4gY2xvY2sgZ2F0aW5nIGlzc3VlKTsgd2UgZmluZCBhIHdheSB0byBnZXQgZXhwbGljaXQgZmVl ZGJhY2sgb2YKPiBjb21wbGV0aW9uIHNvIHdlIGNhbiBtaW5pbWl6ZSB0aGUgZGVsYXkgb3IgYSBi ZXR0ZXIgdW5kZXJzdGFuZGluZyB0aGF0Cj4gbGV0cyB1cyBjaG9vc2UgYSBzaG9ydGVyIGRlbGF5 IGluIG1vc3QgY2FzZXMuCgpZZXMsIGNsb2NrIGdhdGluZyBtYXkgYmUgb25lIGlzc3VlIGhlcmUs IGV2ZW4gdGhvdWdoIGl0IHdvdWxkIGJlIGEgZnVubnkgCmh3IGRlc2lnbiB0byBjbG9jayBnYXRl IHRoZSBidXMgdG8gYSByZWdpc3Rlci4uLgoKPgo+IFRoZSBkcml2ZXIgaXMgYWxyZWFkeSB1c2Fi bGUgd2l0aCBncHV0b3Agd2l0aCB0aGlzIGRlbGF5IGFuZCBjb25zaWRlcmluZwo+IGhvdyBjb25m aWcgY2hhbmdlcyBhcmUgdHlwaWNhbGx5IGFzc29jaWF0ZWQgd2l0aCB1c2VyIGludGVyYWN0aW9u IEkKPiB3b3VsZG4ndCBzZWUgdGhpcyBhcyBhIHNob3cgc3RvcHBlciAtIGV2ZW4gdGhvdWdoIGl0 J3Mgbm90IGlkZWFsLiBJCj4gdGhpbmsgdGhlIGFzc2VydGlvbnMgYWJvdXQgaXQgYmVpbmcgdW51 c2FibGUgd2l0aCBHTCwgd2VyZSBhIGxpdHRsZQo+IG92ZXJzdGF0ZWQgYmFzZWQgb24gbWFraW5n IGZyZXF1ZW50IE9BIGNvbmZpZyBjaGFuZ2VzIHdoaWNoIGlzIG5vdAo+IHJlYWxseSBob3cgdGhl IGludGVyZmFjZSBpcyBpbnRlbmRlZCB0byBiZSB1c2VkLgoKWWVhaCwgYnV0IGEgcGVyZm9ybWFu Y2Ugd2FybmluZyBpbiBtZXNhLCBJIHdvdWxkIGJlIE9LIHdpdGggdGhpcyBjaGFuZ2UuIApUaGFu a3MgZm9yIHRha2luZyB0aGUgdGltZSB0byBleHBsYWluIQo+Cj4KPiBUaGFua3MgZm9yIHN0YXJ0 aW5nIHRvIHRha2UgYSBsb29rIHRocm91Z2ggdGhlIGNvZGUuCj4KPiBLaW5kIFJlZ2FyZHMsCj4g LSBSb2JlcnQKCk1hcnRpbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK