From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [RFC 00/11] TDR/watchdog timeout support for gen8 Date: Fri, 10 Jul 2015 16:48:53 +0100 Message-ID: <559FE965.8070807@intel.com> References: <1433783009-17251-1-git-send-email-tomas.elf@intel.com> <20150709184735.GA24462@nuc-i3427.alporthouse.com> <559FE3B1.6090902@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 1FF516E52E for ; Fri, 10 Jul 2015 08:48:56 -0700 (PDT) In-Reply-To: <559FE3B1.6090902@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMTAvMDcvMjAxNSAxNjoyNCwgVG9tYXMgRWxmIHdyb3RlOgo+IE9uIDA5LzA3LzIwMTUgMTk6 NDcsIENocmlzIFdpbHNvbiB3cm90ZToKPj4gT24gTW9uLCBKdW4gMDgsIDIwMTUgYXQgMDY6MDM6 MThQTSArMDEwMCwgVG9tYXMgRWxmIHdyb3RlOgo+Pj4gVGhpcyBwYXRjaCBzZXJpZXMgaW50cm9k dWNlcyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzOgo+Pj4KPj4+ICogRmVhdHVyZSAxOiBURFIgKFRp bWVvdXQgRGV0ZWN0aW9uIGFuZCBSZWNvdmVyeSkgZm9yIGdlbjggZXhlY2xpc3QKPj4+IG1vZGUu Cj4+PiAqIEZlYXR1cmUgMjogV2F0Y2hkb2cgVGltZW91dCAoYS5rLmEgIm1lZGlhIGVuZ2luZSBy ZXNldCIpIGZvciBnZW44Lgo+Pj4gKiBGZWF0dXJlIDMuIENvbnRleHQgU3VibWlzc2lvbiBTdGF0 dXMgQ29uc2lzdGVuY3kgY2hlY2tpbmcKPj4KPj4gVGhlIGhpZ2ggbGV2ZWwgZGVzaWduIGlzIHJl YXNvbmFibGUgYW5kIGNvbmNlcHR1YWxseSBleHRlbmRzIHRoZSBjdXJyZW50Cj4+IHN5c3RlbSBp biBmYWlybHkgb2J2aW91cyB3YXlzLgo+Pgo+PiBJbiB0ZXJtcyBvZiBkaXNjdXNzaW5nIHRoZSBp bXBsZW1lbnRhdGlvbiwgSSB0aGluayB0aGlzIGNhbiBiZSBwaGFzZWQKPj4gYXM6Cj4+Cj4+IDAu IE1vdmUgdG8gYSBwZXItZW5naW5lIGhhbmdjaGVjawo+Pgo+PiAxLiBBZGQgZmFrZS1pbnRlcnJ1 cHQgcmVjb3ZlcnkgZm9yIENTU0MKPj4KPj4gICAgSSB0aGluayB0aGlzIGNhbiBiZSBkb25lIHdp dGhvdXQgY2hhbmdpbmcgdGhlIGhhbmdjaGVjayBoZXVyaXN0aWNzIGF0Cj4+ICAgIGFsbCAtIHdl IGp1c3QgbmVlZCB0byB0aGluayBjYXJlZnVsbHkgYWJvdXQgcmVjb3ZlcnkgKHdoaWNoIGlzIGEg bmljZQo+PiAgICBwcmVjdXJzb3IgdG8gcGVyLWVuZ2luZSByZXNldCkuIEkgbWF5IGJlIHdyb25n LCBhbmQgc28gd291bGQgbGlrZSB0bwo+PiAgICBiZSB0b2xkIHNvIGVhcmx5IG9uISBJZiB0aGUg ZmFrZSBpbnRlcnJ1cHQgcmVjb3ZlcnkgaXMgZG9uZSBhcyBwYXJ0IG9mCj4+ICAgIHRoZSByZXNl dCBoYW5kbGVyLCB3ZSBzaG91bGQgaGF2ZSAob25lKSBmZXdlciBjb25jdXJyZW5jeSBpc3N1ZXMg dG8KPj4gICAgd29ycnkgYWJvdXQuCj4KPiBTb21lIHBvaW50cyBhYm91dCBtb3ZpbmcgdGhlIENT U0Mgb3V0IG9mIHRoZSBoYW5nIGNoZWNrZXIgYW5kIGludG8gdGhlCj4gcmVzZXQgaGFuZGxlcjoK Pgo+IDEuIElmIHdlIGRlYWwgd2l0aCBjb25zaXN0ZW5jeSByZWN0aWZpY2F0aW9uIGluIHRoZSBy ZXNldCBoYW5kbGVyIHRoZQo+IHR1cm5hcm91bmQgdGltZSBiZWNvbWVzIFJFQUxMWSBsb25nOgo+ Cj4gICAgICBhLiBGaXJzdCB5b3UgaGF2ZSB0aGUgdGltZSB0byBkZXRlY3QgdGhlIGhhbmcsIGNh bGwKPiBpOTE1X2hhbmRsZV9lcnJvcigpIHRoYXQgdGhlbiByYWlzZXMgdGhlIHJlc2V0IGluIHBy b2dyZXNzIGZsYWcsCj4gcHJldmVudGluZyBmdXJ0aGVyIHN1Ym1pc3Npb25zIHRvIHRoZSBkcml2 ZXIuCj4KPiAgICAgIGIuIFRoZW4gZ28gYWxsIHRoZSB3YXkgdG8gdGhlIHBlci1lbmdpbmUgcmVj b3ZlcnkgcGF0aCwgb25seSB0bwo+IGRpc2NvdmVyIHRoYXQgd2UndmUgZ290IGFuIGluY29uc2lz dGVuY3kgdGhhdCBoYXMgbm90IGJlZW4gaGFuZGxlZCwgZmFsbAo+IGJhY2sgaW1tZWRpYXRlbHkg d2l0aCAtRUFHQUlOIGFuZCBsb3dlciB0aGUgcmVzZXQgaW4gcHJvZ3Jlc3MgZmxhZywgbGV0Cj4g dGhlIHN5c3RlbSBjb250aW51ZSBydW5uaW5nIGFuZCBkZWZlciB0byB0aGUgbmV4dCBoYW5nIGNo ZWNrIChhbm90aGVyCj4gaGFuZyBkZXRlY3Rpb24gcGVyaW9kKQo+Cj4gICAgICBjLiBPbmNlIHRo ZSBoYW5nIGhhcyBiZWVuIGRldGVjdGVkIEFHQUlOLCByYWlzZSB0aGUgcmVzZXQgaW4KPiBwcm9n cmVzcyBmbGFnIEFHQUlOIGFuZCBnbyBiYWNrIHRvIHRoZSBlbmdpbmUgcmVzZXQgcGF0aCBhIHNl Y29uZCB0aW1lLgo+Cj4gICAgICBkLiBBdCB0aGUgc3RhcnQgb2YgdGhlIGVuZ2luZSByZXNldCBw YXRoIHdlIGRvIHRoZSBzZWNvbmQgQ1NTQwo+IGRldGVjdGlvbiBhbmQgcmVhbGlzZSB0aGF0IHdl J3ZlIGdvdCBhIHN0YWJsZSBpbmNvbnNpc3RlbmN5IHRoYXQgd2UgY2FuCj4gYXR0ZW1wdCB0byBy ZWN0aWZ5LiBXZSBjYW4gdGhlbiB0cnkgdG8gcmVjdGlmeSB0aGUgaW5jb25zaXN0ZW5jeSBhbmQg Z28KPiB0aHJvdWdoIHdpdGggdGhlIGVuZ2luZSByZXNldC4uLiBBRlRFUiB3ZSd2ZSBjaGVja2Vk IHRoYXQgdGhlCj4gaW5jb25zaXN0ZW5jeSByZWN0aWZpY2F0aW9uIHdhcyBpbmRlZWQgZWZmZWN0 aXZlISBJZiBpdCdzIG5vdCBhbmQgdGhlCj4gcHJvYmxlbSByZW1haW5zIHRoZW4gd2UgaGF2ZSB0 byBmYWlsIHRoZSBlbmdpbmUgcmVjb3ZlcnkgbW9kZSBhbmQgZmFsbAo+IGJhY2sgdG8gZnVsbCBH UFUgcmVzZXQgaW1tZWRpYXRlbHkuLi4gV2hpY2ggd2UgY291bGQgaGF2ZSBkb25lIGZyb20gdGhl Cj4gaGFuZyBjaGVja2VyIGlmIHdlIGhhZCBqdXN0IHJlZnVzZWQgdG8gc2NoZWR1bGUgaGFuZyBy ZWNvdmVyeSBhbmQganVzdAo+IGxldCB0aGUgY29udGV4dCBzdWJtaXNzaW9uIHN0YXRlIGluY29u c2lzdGVuY3kgcGVyc2lzdCBhbmQgbGV0IHRoZSBoYW5nCj4gc2NvcmUga2VlcCByaXNpbmcgdW50 aWwgdGhlIGhhbmcgc2NvcmUgcmVhY2hlZCAyKkhVTkcsIHdoaWNoIHdvdWxkIHRoZW4KPiBoYXZl IHRyaWdnZXJlZCB0aGUgZnVsbCBHUFUgcmVzZXQgZmFsbGJhY2sgZnJvbSB0aGUgaGFuZyBjaGVj a2VyIChzZWUKPiBwYXRoIDkvMTEgZm9yIGFsbCBvZiB0aGlzKQo+Cj4gQXMgeW91IGNhbiBzZWUs IGRlYWxpbmcgd2l0aCBjb250ZXh0IHN1Ym1pc3Npb24gc3RhdGUgaW5jb25zaXN0ZW5jeSBpbgo+ IHRoZSByZXNldCBwYXRoIGlzIHZlcnkgbG9uZy13aW5kZWQgd2F5IG9mIGRvaW5nIGl0IGFuZCBk b2VzIG5vdCBtYWtlIGl0Cj4gbW9yZSByZWxpYWJsZS4gQWxzbywgaXQncyBtb3JlIGNvbXBsaWNh dGVkIHRvIGFuYWx5c2UgZnJvbSBhIGNvbmN1cnJlbmN5Cj4gcG9pbnQgb2YgdmlldyBzaW5jZSB3 ZSBuZWVkIHRvIGZhbGwgYmFjayBzZXZlcmFsIHRpbWVzIGFuZCByYWlzZSBhbmQKPiBsb3dlciB0 aGUgcmVzZXQgaW4gcHJvZ3Jlc3MgZmxhZywgd2hpY2ggYWxsb3dzIGRyaXZlciBzdWJtaXNzaW9u cyB0bwo+IGhhcHBlbiB2cy4gYmxvY2tzIHN1Ym1pc3Npb25zLiBJdCBiYXNpY2FsbHkgYmVjb21l cyB2ZXJ5IGRpZmZpY3VsdCB0bwo+IGtub3cgd2hhdCBpcyBnb2luZyBvbi4KPgo+IDIuIFNlY29u ZGx5LCBhbmQgbW9yZSBpbXBvcnRhbnRseSwgaWYgYSB3YXRjaGRvZyB0aW1lb3V0IGlzIGRldGVj dGVkIGFuZAo+IHdlIGVuZCB1cCBpbiB0aGUgcGVyLWVuZ2luZSBoYW5nIHJlY292ZXJ5IHBhdGgg YW5kIGhhdmUgdG8gZmFsbCBiYWNrIGR1ZQo+IHRvIGFuIGluY29uc2lzdGVudCBjb250ZXh0IHN1 Ym1pc3Npb24gc3RhdGUgYXQgdGhhdCBwb2ludCBhbmQgdGhlIGhhbmcKPiBjaGVja2VyIGlzIHR1 cm5lZCBvZmYgdGhlbiB3ZSdyZSBpcnJlY292ZXJhYmx5IGh1bmcuIFdhdGNoZG9nIHRpbWVvdXQg aXMKPiBzdXBwb3NlZCB0byB3b3JrIHdpdGhvdXQgdGhlIHBlcmlvZGljIGhhbmcgY2hlY2tlciBi dXQgaXQgd29uJ3QgaWYgQ1NTQwo+IGlzIG5vdCBlbnN1cmVkIGF0IGFsbCB0aW1lcy4gV2hpY2gg aXMgd2h5IEkgY2hvc2UgdG8gb3ZlcnJpZGUgdGhlCj4gaTkxNS5lbmFibGVfaGFuZ2NoZWNrIGZs YWcgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGhhbmcgY2hlY2tlciBhbHdheXMKPiBydW5zIGNvbnNp c3RlbmN5IHByZS1jaGVja2luZyBhbmQgcmVzY2hlZHVsZXMgaXRzZWxmIGlmIHRoZXJlIGlzIG1v cmUKPiB3b3JrIHBlbmRpbmcgdG8gbWFrZSBzdXJlIHRoYXQgYXMgbG9uZyBhcyB3b3JrIGlzIHBl bmRpbmcgd2UgZG8KPiBjb25zaXN0ZW5jeSBjaGVja2luZyBhc3luY2hyb25vdXNseSByZWdhcmRs ZXNzIG9mIGV2ZXJ5dGhpbmcgZWxzZSBzbwo+IHRoYXQgaWYgYSB3YXRjaGRvZyB0aW1lb3V0IGhp dHMgd2UgaGF2ZSBhIGNvbnNpc3RlbnQgc3RhdGUgb25jZSB0aGUKPiB3YXRjaGRvZyB0aW1lb3V0 IGVuZHMgdXAgaW4gcGVyLWVuZ2luZSByZWNvdmVyeS4KPgo+IEdyYW50ZWQsIGlmIGEgd2F0Y2hk b2cgdGltZW91dCBoaXRzIGFmdGVyIHdlJ3ZlIGZpcnN0IGRldGVjdGVkIHRoZQo+IGluY29uc2lz dGVuY3kgYnV0IG5vdCB5ZXQgaGFkIHRpbWUgdG8gcmVjdGlmeSBpdCBpdCBkb2Vzbid0IHdvcmsg aWYgdGhlCj4gaGFuZyBjaGVja2VyIGlzIHR1cm5lZCBvZmYgYW5kIHdlIGNhbm5vdCByZWx5IG9u IHBlcmlvZGljIGhhbmcgY2hlY2tpbmcKPiB0byBzY2hlZHVsZSBoYW5nIHJlY292ZXJ5IGluIHRo aXMgY2FzZSAtIHNvIGluIHRoYXQgY2FzZSB3ZSdyZSBzdGlsbAo+IGlycmVjb3ZlcmFibHkgc3R1 Y2suIFdlIGNvdWxkIG1ha2UgY2hhbmdlIGhlcmUgYW5kIGRvIGEgb25lLXRpbWUKPiBpOTE1LmVu YWJsZV9oYW5nY2hlY2sgb3ZlcnJpZGUgYW5kIHNjaGVkdWxlIGhhbmcgcmVjb3ZlcnkgZm9sbG93 aW5nIHRoaXMKPiBwb2ludC4gSWYgeW91IHRoaW5rIGl0J3Mgd29ydGggaXQuCj4KPiBCb3R0b20g bGluZTogVGhlIGNvbnNpc3RlbmN5IGNoZWNraW5nIG11c3QgaGFwcGVuIGF0IGFsbCB0aW1lcyBh bmQKPiBjYW5ub3QgYmUgZG9uZSBhcyBhIGNvbnNlcXVlbmNlIG9mIGEgc2NoZWR1bGVkIHJlc2V0 IGlmIGhhbmcgY2hlY2tpbmcgaXMKPiB0dXJuZWQgb2ZmIGF0IGFueSBwb2ludC4KPgo+IEFzIGZh ciBhcyBjb25jdXJyZW5jeSBpc3N1ZXMgaW4gdGhlIGZhY2Ugb2YgQ1NTQyBpcyBjb25jZXJuZWQs Cj4gZGlzcmVnYXJkaW5nIHRoZSBjb21wbGljYXRpb24gb2YgaGFuZGxpbmcgQ1NTQyBpbiB0aGUg cmVjb3ZlcnkgcGF0aCBhbmQKPiByZWx5aW5nIG9uIGRlZmVycmluZyB0byB0aGUgbmV4dCBoYW5n IGRldGVjdGlvbiAgICB3aXRoIGFsbCBvZiB0aGUKPiBjb25jdXJyZW5jeSBpc3N1ZXMgdGhhdCBl bnRhaWxzOiBUaGUgcXVlc3Rpb24gcmVhbGx5IGlzIHdoYXQga2luZCBvZgo+IGNvbmN1cnJlbmN5 IGlzc3VlcyB3ZSdyZSB3b3JyaWVkIGFib3V0LiBJZiB0aGUgaGFuZyBjaGVja2VyIGRldGVybWlu ZXMKPiB0aGF0IHdlJ3ZlIGdvdCBhIGhhbmcgdGhlbiB0aGF0J3MgYSBzdGFibGUgc3RhdGUuIElm IHRoZSBoYW5nIGNoZWNrZXIKPiBjb25zaXN0ZW5jeSBwcmUtY2hlY2sgZGV0ZXJtaW5lcyB0aGF0 IHdlJ3ZlIGdvdCBhIHN1c3RhaW5lZCBDU1NDCj4gaW5jb25zaXN0ZW5jeSB0aGVuIHRoYXQncyBz dGFibGUgdG9vLiBUaGUgc3RhdGVzIGFyZSBub3QgY2hhbmdpbmcgc28KPiB3aGF0ZXZlciB3ZSBk byB3aWxsIG5vdCBiZSBiZWNhdXNlIHdlIGRldGVjdCB0aGUgc3RhdGUgaW4gdGhlIG1pZGRsZSBv Zgo+IGEgc3RhdGUgdHJhbnNpdGlvbiBhbmQgdGhlIGRldGVjdGlvbiB3b24ndCBiZSBzdWJqZWN0 IHRvIGNvbmN1cnJlbmN5Cj4gZWZmZWN0cy4gSWYgdGhlIGhhbmcgY2hlY2tlciBkZWNpZGVzIHRo YXQgdGhlIGluY29uc2lzdGVuY3kgbmVlZHMgdG8gYmUKPiByZWN0aWZpZWQgYW5kIGZha2VzIHRo ZSBwcmVzdW1hYmx5IGxvc3QgaW50ZXJydXB0IGFuZCB0aGUgcmVhbCwgcHJlc3VtZWQKPiBsb3N0 LCBpbnRlcnJ1cHQgaGFwcGVucyB0byBjb21lIGluIGF0IHRoZSBzYW1lIHRpbWUgdGhlbiB0aGF0 J3MgZmluZSwKPiB0aGUgQ1NCIGJ1ZmZlciBjaGVjayBpbiB0aGUgZXhlY2xpc3QgaW50ZXJydXB0 IGhhbmRsZXIgaXMgbWFkZSB0byBjb3BlCj4gd2l0aCB0aGF0LiBXZSBjYW4gaGF2ZSBYIG51bWJl ciBvZiBjYWxscyB0byB0aGUgaW50ZXJydXB0IGhhbmRsZXIgb3IKPiBqdXN0IG9uZSwgdGhlIG91 dGNvbWUgaXMgc3VwcG9zZWQgdG8gYmUgdGhlIHNhbWUgLSB0aGUgb25seSB0aGluZyB0aGF0Cj4g bWF0dGVycyBpcyBjYXB0dXJlZCBjb250ZXh0IHN0YXRlIGNoYW5nZXMgaW4gdGhlIENTQiBidWZm ZXIgdGhhdCB3ZSBhY3QKPiB1cG9uLgo+Cj4gU28gSSdtIG5vdCBlbnRpcmVseSBzdXJlIHdoYXQg Y29uY3VycmVuY3kgaXNzdWVzIG1pZ2h0IGJlIHJlYXNvbiBlbm91Z2gKPiB0byBtb3ZlIG91dCB0 aGUgQ1NTQyB0byB0aGUgaGFuZyByZWNvdmVyeSBwYXRoLiBJbiBmYWN0LCBJJ2QgYmUgbW9yZQo+ IGluY2xpbmVkIHRvIGNyZWF0ZSBhIHNlY29uZCBhc3luYyB0YXNrIGZvciBpdCB0byBtYWtlIHN1 cmUgaXQncyBiZWluZwo+IHJ1biBhdCBhbGwgdGltZXMuIEJ1dCBpbiB0aGF0IGNhc2Ugd2UgbWln aHQgYXMgd2VsbCBsZXQgaXQgc3RheSBpbiB0aGUKPiBoYW5nIGNoZWNrZXIuCj4KPiAoSW4gYSBz aW1pbGFyIHZlaW4sIEkgdGhpbmsgd2Ugc2hvdWxkIG1vdmUgdGhlIG1pc3NlZAo+PiAgICBpbnRl cnVwdCBoYW5kbGVyIGZvciBsZWdhY3kgb3V0IG9mIGhhbmdjaGVjaywgcGFydGx5IHRvIHNpbXBs aWZ5IHNvbWUKPj4gICAgdmVyeSBjb25mdXNpbmcgY29kZSBhbmQgcGFydGx5IHNvIHRoYXQgd2Ug aGF2ZSBmZXdlciBkZXZpYXRpb25zCj4+ICAgIGJldHdlZW4gbGVnYWN5L2V4ZWNsaXN0cyBwYXRo cy4pIEl0IGFsc28gZ2V0cyB1cyB0aGlua2luZyBhYm91dCB0aGUKPj4gICAgY29uc2lzdGVuY3kg ZGV0ZWN0aW9uIGFuZCB3aGVuIGl0IGlzIHZpYWJsZSB0byBkbyBhIGZha2UtaW50ZXJydXB0IGFu ZAo+PiAgICB3aGVuIHdlIG11c3QgZG8gYSBmdWxsLXJlc2V0IChmb3IgZXhhbXBsZSwgd2Ugb25s eSB3YW50IHRvCj4+ICAgIGZha2UtaW50ZXJydXB0IGlmIHRoZSBjb25zaXN0ZW5jeSBjaGVjayBz YXlzIHRoZSBHUFUgaXMgaWRsZSwgYW5kIHdlCj4+ICAgIGRlZmluaXRlbHkgd2FudCB0byByZXNl dCBldmVyeXRoaW5nIGlmIHRoZSBHUFUgaXMgZXhlY3V0aW5nIGFuIGFsaWVuCj4+ICAgIGNvbnRl eHQuKQo+Pgo+PiAgICBBIHRlc3QgaGVyZSB3b3VsZCBiZSB0byBzdXNwZW5kIHRoZSBleGVjbGlz dHMgaXJxIGFuZCB3YWl0IGZvciB0aGUKPj4gICAgcmVjb3ZlcnkuIENoZWVraWx5IHdlIGNvdWxk IHB1bmNoIHRoZSBpcnEgZWlyIGJ5IHJvb3QgbW1pbyBhbmQgY2hlY2sKPj4gICAgaGFuZ2NoZWNr IGF1dG9tYWdpY2FsbHkgcmVjb3ZlcnMuCj4+Cj4+IFdoaWxzdCBpdCB3b3VsZCBiZSBuaWNlIHRv IGFkZCB0aGUgd2F0Y2hkb2cgbmV4dCwgc2luY2UgaXQgaXMKPj4gY29uY2VwdHVhbGx5IHF1aXRl IHNpbXBsZSBhbmQgYmFzaWNhbGx5IGp1c3QgYSBuZXcgaGFuZ2NoZWNrIHNvdXJjZSB3aXRoCj4+ IGZhbmN5IHNldHVwIC0gZmFzdCBoYW5nY2hlY2sgd2l0aG91dCBzb2Z0IHJlc2V0IG1ha2VzIGZv ciBhbiBlYXN5IERvUy4KPj4KPj4gMi4gVERSCj4+Cj4+ICAgIEdpdmVuIHRoYXQgd2UgaGF2ZSBh IGNvbnNpc3RlbmN5IGNoZWNrIGFuZCBiZWd1biB0byBleHRlbmQgdGhlIHJlc2V0Cj4+ICAgIHBh dGgsIHdlIGNhbiBpbXBsZW1lbnQgYSBzb2Z0IHJlc2V0IHRoYXQgb25seSBza2lwcyB0aGUgaHVu ZyByZXF1ZXN0Lgo+PiAgICAoVGhlIGRldmlsIGlzIGluIHRoZSBkZXRhaWxzLCB3aGlsc3QgdGhl IGRlc2lnbiBoZXJlIGxvb2tlZCBzb2xpZCwgSQo+PiAgICB0aGluayB0aGUgTFJDIHJlY292ZXJ5 IGNvZGUgY291bGQgYmUgc2ltcGxpZmllZCAtIEkgZGlkbid0IGZlZWwKPj4gICAgYW5vdGhlciBy ZXF1ZXVlIHBhdGggd2FzIHJlcXVpcmVkIGdpdmVuIHRoYXQgd2UgbmVlZCBvbmx5IHByZXRlbmQg YQo+PiAgICByZXF1ZXN0IGNvbXBsZXRlZCAoZml4aW5nIHVwIHRoZSBjb250ZXh0IGltYWdlIGFz IHJlcXVpcmVkKSBhbmQgdGhlbgo+PiAgICB1c2UgdGhlIG5vcm1hbCB1bnF1ZXVlLikgVGhlcmUg aXMgYWxzbyBxdWl0ZSBhIGJpdCBvZiBMUkMgY2xlYW51cCBvbgo+PiAgICB0aGUgbGlzdHMgd2hp Y2ggd291bGQgYmUgdXNlZnVsIGhlcmUuCj4KPiBBcyBmYXIgYXMgdGhlIG5ldyByZXF1ZXVlIChv ciByZXN1Ym1pc3Npb24pIHBhdGggaXMgY29uY2VybmVkLCB5b3UgbWlnaHQKPiBoYXZlIGEgcG9p bnQgaGVyZS4gVGhlIHJlYXNvbiBpdCdzIGFzIGludm9sdmVkIGFzIGl0IGlzIGlzIHByb2JhYmx5 Cj4gbW9zdGx5IGJlY2F1c2Ugb2YgYWxsIHRoZSB2YWxpZGF0aW9uIHRoYXQgdGFrZXMgcGxhY2Ug aW4gdGhlCj4gcmVzdWJtaXNzaW9uIHBhdGguIE1lYW5pbmcgdGhhdCBvbmNlIHRoZSByZXN1Ym1p c3Npb24gaGFwcGVucyBhdCB0aGUgZW5kCj4gb2YgdGhlIHBlci1lbmdpbmUgaGFuZyByZWNvdmVy eSBwYXRoIHdlIHdhbnQgdG8gbWFrZSBleHRyYSBzdXJlIHRoYXQgdGhlCj4gY29udGV4dCB0aGF0 IGdldHMgcmVzdWJtaXR0ZWQgaW4gdGhlIGVuZCAodGhlIGhlYWQgZWxlbWVudCBvZiB0aGUgcXVl dWUKPiBhdCB0aGF0IHBvaW50IGluIHRpbWUpIGlzIGluIGZhY3QgdGhlIG9uZSB0aGF0IHdhcyBw YXNzZWQgZG93biBmcm9tIHRoZQo+IHBlci1lbmdpbmUgaGFuZyByZWNvdmVyeSBwYXRoICh0aGUg Y29udGV4dCBhdCB0aGUgaGVhZCBvZiB0aGUgcXVldWUgYXQKPiB0aGUgc3RhcnQgb2YgdGhlIGhh bmcgcmVjb3ZlcnkgcGF0aCksIHNvIHRoYXQgdGhlIHN0YXRlIG9mIHRoZSBxdWV1ZQo+IGRpZG4n dCBjaGFuZ2UgZHVyaW5nIGhhbmcgcmVjb3ZlcnkuIE1heWJlIHdlJ3JlIHRvbyBwYXJhbm9pZCBo ZXJlLgo+CgpBaCwgeWVzLCB0aGVyZSBpcyBvbmUgY3J1Y2lhbCBkaWZmZXJlbmNlIGJldHdlZW4g dGhlIG5vcm1hbCAKZXhlY2xpc3RzX2NvbnRleHRfdW5xdWV1ZSgpIGZ1bmN0aW9uIGFuZCBleGVj bGlzdHNfVERSX2NvbnRleHRfdW5xdWV1ZSgpIAp0aGF0IG1lYW5zIHRoYXQgd2UgY2Fubm90IGZ1 bGx5IHJldXNlIHRoZSBmb3JtZXIgb25lIGZvciBURFItc3BlY2lmaWMgCnB1cnBvc2VzLgoKV2hl biB3ZSByZXN1Ym1pdCB0aGUgY29udGV4dCB2aWEgVERSIGl0J3MgaW1wb3J0YW50IHRoYXQgd2Ug ZG8gbm90IAppbmNyZW1lbnQgdGhlIGVsc3Bfc3VibWl0dGVkIGNvdW50ZXIgYW5kIG90aGVyd2lz ZSB0cmVhdCB0aGUgCnJlc3VibWlzc2lvbiBhcyBhIG5vcm1hbCBzdWJtaXNzaW9uLiBUaGUgcmVh c29uIGZvciB0aGlzIGlzIHRoYXQgdGhlIApoYXJkd2FyZSBjb25zaXN0ZW50bHkgcmVmdXNlcyB0 byBzZW5kIG91dCBhbnkga2luZCBvZiBpbnRlcnJ1cHQgCmFja25vd2xlZGdpbmcgdGhlIGNvbnRl eHQgcmVzdWJtaXNzaW9uLiBJZiB5b3UganVzdCBzdWJtaXQgdGhlIGNvbnRleHQgCmFuZCBpbmNy ZW1lbnQgZWxzcF9zdWJtaXR0ZWQgZm9yIHRoYXQgY29udGV4dCwgbGlrZSB5b3Ugbm9ybWFsbHkg ZG8sIHRoZSAKaW50ZXJydXB0IGhhbmRsZXIgd2lsbCBzaXQgYXJvdW5kIGZvcmV2ZXIgd2FpdGlu ZyBmb3IgdGhlIGludGVycnVwdCB0aGF0IAp3aWxsIG5ldmVyIGNvbWUgZm9yIHRoZSByZXN1Ym1p c3Npb24uIEl0IHdpbGwgd2FpdCAtIGFuZCByZWNlaXZlIC0gdGhlIAppbnRlcnJ1cHQgZm9yIHRo ZSBvcmlnaW5hbCBzdWJtaXNzaW9uIHRoYXQgY2F1c2VkIHRoZSBvcmlnaW5hbCBoYW5nIGFuZCAK YWxzbyB0aGUgaW50ZXJydXB0IGZvciB0aGUgY29udGV4dCBjb21wbGV0aW9uIGZvbGxvd2luZyBo YW5nIHJlY292ZXJ5LiAKQnV0IGl0IHdvbid0IHJlY2VpdmUgYW4gaW50ZXJydXB0IGZvciB0aGUg cmVzdWJtaXNzaW9uLgoKQWxzbywgdGhlcmUgYXJlIHR3byBjYXNlcyBoZXJlOgoKMS4gT25seSBv bmUgY29udGV4dCB3YXMgaW4gZmxpZ2h0IHdoZW4gdGhlIGhhbmcgaGFwcGVuZWQuCgpIZWFkIGVs ZW1lbnQgaGFzIGVsc3Bfc3VibWl0dGVkID4gMCBhbmQgdGhlIHNlY29uZCBpbiBsaW5lIGhhcyAK ZWxzcF9zdWJtaXR0ZWQgPT0gMCAuIE5vcm1hbGx5LCB0aGUgX3VucXVldWUgZnVuY3Rpb24gd291 bGQgcGljayB1cCBhbnkgCmNvbnRleHRzIHRoYXQgYXJlIHBlbmRpbmcgYW5kIGp1c3Qgc3VibWl0 IHRoZW0gYnV0IHRoZSBURFIgY29udGV4dCAKcmVzdWJtaXNzaW9uIGZ1bmN0aW9uIHNob3VsZCBv bmx5IHJlc3VibWl0IGV4YWN0bHkgdGhlIGNvbnRleHQgdGhhdCB3YXMgCmh1bmcgdG8gZ2V0IHRo YXQgb3V0IG9mIHRoZSB3YXkuIEluIHRoaXMgY2FzZSwgaWYgd2Ugc3VibWl0IGJvdGggcGVuZGlu ZyAKY29udGV4dHMgdG8gdGhlIGhhcmR3YXJlIHRoYXQgbWVhbnMgdGhhdCB0aGlzIHJlc3VibWlz c2lvbiBhY2NpZGVudGFsbHkgCmNhdXNlcyBvbmUgcmVzdWJtaXNzaW9uICh0aGUgaHVuZyBjb250 ZXh0KSBhbmQgb25lIGZpcnN0LXRpbWUgc3VibWlzc2lvbiAKKHRoZSBuZXh0IGNvbnRleHQgaW4g bGluZSkuIE5vdCBpbmNyZW1lbnRpbmcgZWxzcF9zdWJtaXR0ZWQgZm9yIHRoZSBodW5nIApjb250 ZXh0IGlzIG9rLCBidXQgdGhlIGhhcmR3YXJlIF93aWxsXyBpbiBmYWN0IHNlbmQgb3V0IGFuIGlu dGVycnVwdCBmb3IgCnRoZSBzZWNvbmQgY29udGV4dCB0aGF0IHdhcyBuZXZlciBzdWJtaXR0ZWQg YmVmb3JlLiBJbiB0aGF0IGNhc2UgdGhlIAppbnRlcnJ1cHQgaGFuZGxlciB3aWxsIHBpY2sgdXAg YW4gaW50ZXJydXB0IF90b28gbWFueV8gY29tcGFyZWQgdG8gdGhlIApyZXNwZWN0aXZlIGVsc3Bf c3VibWl0dGVkIGNvdW50LiBUaGVyZWZvcmUgd2UgbmVlZCB0byBhdm9pZCB0aGlzIGNhc2UgYnkg Cm5vdCBwaWNraW5nIHVwIHRoZSBzZWNvbmQgY29udGV4dCBpbiBsaW5lLgoKMi4gQm90aCB0aGUg aGVhZCBjb250ZXh0IGFuZCB0aGUgc2Vjb25kIGNvbnRleHQgaW4gdGhlIGV4ZWNsaXN0IHF1ZXVl IAp3ZXJlIGluIGZsaWdodCB3aGVuIHRoZSBoYW5nIGhhcHBlbmVkIChib3RoIGhhdmUgZWxzcF9z dWJtaXR0ZWQgPiAwKS4KCkluIHRoaXMgY2FzZSB3ZSBuZWVkIHRvIHJlc3VibWl0IGJvdGggY29u dGV4dHMgYW5kIGluY3JlbWVudCBub25lIG9mIAp0aGVpciBlbHNwX3N1Ym1pdHRlZCBjb3VudHMu IFRoZSByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCBpZiB3ZSBvbmx5IApyZXN1Ym1pdCB0aGUgaGVh ZCBlbGVtZW50IGFuZCBub3QgdGhlIHNlY29uZCBvbmUgaW4gdGhpcyBjYXNlIHRoZSAKcmVzdWJt aXNzaW9uIHdpbGwgY2xlYXIgdGhlIGh1bmcgY29udGV4dCBhbmQgdGhlIGludGVycnVwdCBmb3Ig dGhlIApvcmlnaW5hbCBjb250ZXh0IHN1Ym1pc3Npb24gKG5vdCB0aGUgcmVzdWJtaXNzaW9uKSB3 aWxsIGJlIHJlY2VpdmVkLiBJbiAKdGhpcyBjYXNlIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciB3aWxs IGNsZWFyIHRoZSBodW5nIGNvbnRleHQgZnJvbSB0aGUgCnF1ZXVlIGFuZCBzZWUgdGhhdCB0aGVy ZSBhcmUgY29udGV4dHMgcGVuZGluZyBhbmQgd2lsbCB0aGVuIHVucXVldWUgdGhlIApuZXh0IGNv bnRleHQgaW4gbGluZSwgdGhhdCB3YXMgcHJldmlvdXNseSBzdWJtaXR0ZWQgYXQgdGhlIHRpbWUg b2YgdGhlIApoYW5nLCB0aHVzIHN1Ym1pdHRpbmcgdGhhdCBjb250ZXh0IF9hIHNlY29uZCB0aW1l Xy4gRG9pbmcgc28gd2lsbCBkcml2ZSAKdXAgdGhlIGVsc3Bfc3VibWl0dGVkIGNvdW50IHRvIDIg Zm9yIHRoYXQgY29udGV4dCwgYnV0IHdlIHdpbGwgbmV2ZXIgZ2V0IAphbnkgbW9yZSB0aGFuIG9u ZSBpbnRlcnJ1cHQgYmFjayBmb3IgdGhhdCBjb250ZXh0IC0gdGh1cyBjYXVzaW5nIGEgaGFuZyAK aW4gdGhlIGludGVycnVwdCBoYW5kbGVyLgoKQmFzaWNhbGx5LCB3aGVuIGRvaW5nIGNvbnRleHQg cmVzdWJtaXNzaW9uIGZvbGxvd2luZyB0aGUgcGVyLWVuZ2luZSBoYW5nIApyZWNvdmVyeSB3ZSBu ZWVkIHRvIHJlc3RvcmUgdGhlIGV4YWN0IHN1Ym1pc3Npb24gc3RhdGUgdGhhdCB3YXMgaW4gCnBy b2dyZXNzIGF0IHRoZSB0aW1lIG9mIHRoZSBoYW5nIGFuZCByZXN1Ym1pdCBFWEFDVExZIHRoZSBj b250ZXh0cyB0aGF0IAp3ZXJlIGluIGZsaWdodCBhdCB0aGUgdGltZS4gQW5kIG5vdCB0b3VjaCB0 aGUgZWxzcF9zdWJtaXR0ZWQgdmFsdWVzIGZvciAKYW55IG9mIHRoZW0uIFRoYXQgaXMgYWJzb2x1 dGVseSBub3Qgd2hhdCB0aGUgbm9ybWFsIF91bnF1ZXVlIGZ1bmN0aW9uIApkb2VzIGFuZCB0aGVy ZWZvcmUgd2UgY2Fubm90IHJldXNlIGl0IGFzIGlzLgoKR3JhbnRlZCwgd2UgY291bGQndmUgcGFz c2VkIGEgcGFyYW1ldGVyIHRvIHRoZSBub3JtYWwgX3VucXVldWUgZnVuY3Rpb24gCnRvIHNlcGFy YXRlIG5vcm1hbCBjb250ZXh0IHVucXVldWVpbmcgZnJvbSBURFItc3BlY2lmaWMgdW5xdWV1ZWlu ZyBidXQgCnRoZXJlIHJlYWxseSBpcyBub3QgbXVjaCBvdmVybGFwIGJldHdlZW4gdGhlIHR3byBj YXNlcy4gQWxzbywgc2VlaW5nIGFzIAp0aGVyZSBpcyB2YWx1ZSBpbiB0aGUgY29udGV4dCB2YWxp ZGF0aW9uIHdlIGRvIGluIAppbnRlbF9leGVjbGlzdHNfVERSX2NvbnRleHRfcXVldWUoKSB3ZSBt aWdodCBhcyB3ZWxsIGhhdmUgYSBzZXBhcmF0ZSAKcGF0aCBmb3IgVERSLXNwZWNpZmljIGNvbnRl eHQgcmVzdWJtaXNzaW9uLgoKRG9lcyB0aGF0IG1ha2UgYW55IHNlbnNlPwoKVGhhbmtzLApUb21h cwoKPj4KPj4gICAgTG90cyBvZiB0ZXN0cyBmb3IgY29uY3VycmVudCBlbmdpbmUgdXRpbGlzYXRp b24sIG11bHRpcGxlIGNvbnRleHRzLAo+PiAgICBldGMgYW5kIGVuc3VyaW5nIHRoYXQgYSBoYW5n IGluIG9uZSBkb2VzIG5vdCBhZmZlY3QgaW5kZXBlbmRlbnQgd29yawo+PiAgICAoZW5naW5lcywg YmF0Y2hlcywgY29udGV4dHMpLgo+Pgo+PiAzLiBXYXRjaGRvZwo+Pgo+PiAgICBBIG5ldyBmYXN0 IGhhbmdjaGVjayBzb3VyY2UuIFNvIGNvbmN1cnJlbmN5LCBwcm9tb3Rpb24gKHJlbGF0aXZlCj4+ ICAgIHNjb3JpbmcgYmV0d2VlbiB3YXRjaGRvZyAvIGhhbmdjaGVjaykgYW5kIGlzc3VlIHdpdGgg bm90IHByb2dyYW1taW5nCj4+ICAgIHRoZSByaW5nIGNvcnJlY3RseSAoYmV3YXJlIHRoZSBpbnRl cnJ1cHQgYWZ0ZXIgcGVyZm9ybWluZyBhIGRpc3BhdGNoCj4+ICAgIGFuZCBwcm9ncmFtbWluZyB0 aGUgdGFpbCwgbmVlZHMgZWl0aGVyIHJlc2VydmVkIHNwYWNlLCBpbmxpbmluZyBpbnRvCj4+ICAg IHRoZSBkaXNwYXRjaCBldGMpLgo+Pgo+PiAgICBUaGUgb25seSB0aGluZyBvZiByZW1hcmsgaGVy ZSBpcyB0aGUgdWFwaS4gSXQgaXMgYSBzZXJ2ZXIgZmVhdHVyZQo+PiAgICAoaW50ZXJhY3RpdmUg Y2xpZW50cyBhcmUgbGVzcyBsaWtlbHkgdG8gdG9sZXJhdGUgZGF0YSBiZWluZyB0aHJvd24KPj4g ICAgYXdheSkuIERvIHdlIHdhbnQgYW4gZXhlY2J1ZiBiaXQgb3IgY29udGV4dCBwYXJhbT8gQW4g ZXhlY2J1ZiBiaXQKPj4gICAgYWxsb3dzIHN3aXRjaGluZyBiZXR3ZWVuIHR3byB3YXRjaGRvZyB0 aW1lcnMgKG9yIG9uL29mZiksIGJ1dCB3ZQo+PiAgICBoYXZlIG1hbnkgbW9yZSBjb250ZXh0IHBh cmFtcyBhdmFpbGFibGUgdGhhbiBiaXRzLiBEbyB3ZSB3YW50IHRvCj4+ICAgIGV4cG9zZSBjb250 ZXh0IHBhcmFtcyB0byBzZXQgdGhlIGZhc3Qvc2xvdyB0aW1lb3V0cz8KPj4KPj4gICAgV2UgaGF2 ZW4ndCBmb3VuZCBhbnkgR0wgc3BlYyB0aGF0IGRlc2NpYmUgY29udHJvbGxhYmxlIHdhdGNoZG9n cywgc28KPj4gICAgdGhlIHVsdGltYXRlIHVhcGkgcmVxdWlyZW1lbnRzIGFyZSB1bmtub3duLiBN eSBmZWVsaW5nIGlzIHRoYXQgd2Ugd2FudAo+PiAgICB0byBkbyB0aGUgaW5pdGlhbCB1YXBpIHRo cm91Z2ggY29udGV4dCBwYXJhbXMsIGFuZCBzdGFydCB3aXRoIGEgc2luZ2xlCj4+ICAgIGZhc3Qg d2F0Y2hkb2cgdGltZW91dCB2YWx1ZS4gVGhpcyBpcyBzdWZmaWNpZW50IGZvciB0ZXN0aW5nIGFu ZAo+PiAgICBwcm9iYWJseSBmb3IgbW9zdCB1c2UgY2FzZXMuIFRoaXMgY2FuIGVhc2lseSBiZSBl eHRlbmRlZCBieSBhZGRpbmcgYW4KPj4gICAgZXhlY2J1ZiBiaXQgdG8gc3dpdGNoIGJldHdlZW4g dHdvIHZhbHVlcyBhbmQgYSBjb250ZXh0IHBhcmFtIHRvIHNldAo+PiAgICB0aGUgc2Vjb25kIHZh bHVlLiAoSWYgdGhlIHNlY29uZCB2YWx1ZSBpc24ndCBzZXQsIHRoZSBleGVjYnVmIGJpdAo+PiAg ICBkb3NuJ3QgZG8gYW55dGhpbmcgdGhlIHdhdGNoZG9nIGlzIGFsd2F5cyBwcm9ncmFtbWVkIHRv IHRoZSB1c2VyCj4+ICAgIHZhbHVlLiBJZiB0aGUgc2Vjb25kIHZhbHVlIGlzIHNldCAobWF5YmUg aW5maW5pdGUpLCB0aGVuIHRoZSBleGVjYnVmCj4+ICAgIGJpdCBpcyB1c2VkIHRvIHNlbGVjdCB3 aGljaCB0aW1lb3V0IHRvIHVzZSBmb3IgdGhhdCBiYXRjaC4pIEJ1dCBnaXZlbgo+PiAgICB0aGF0 IHRoaXMgaXMgYSBzZXJ2ZXItZXNxdWUgZmVhdHVyZSwgaXQgaXMgbGlrZWx5IHRvIGJlIGEgc2V0 dGluZyB0aGUKPj4gICAgdXNlcnNwYWNlIGRyaXZlciBpbXBvc2VzIHVwb24gaXRzIGNsaWVudHMs IGFuZCB0aGVyZSBpcyB1bmxpa2VseSB0byBiZQo+PiAgICB0aGUgbmVlZCB0byBzd2l0Y2ggdGlt ZW91dHMgd2l0aGluIGFueSBvbmUgY2xpZW50Lgo+Cj4KPiBUaGlzIG1heSBvciBtYXkgbm90IGJl IHRydWUuIFdlIG5lZWQgdG8gdGhyYXNoIG91dCB0aGVzZSBkZXRhaWxzLiBBcyB5b3UKPiBzYWlk LCB0aGUgcmVxdWlyZW1lbnRzIGFyZSBxdWl0ZSBmdXp6eSBhdCB0aGlzIHBvaW50LiBJbiB0aGUg ZW5kIGEgZ29vZAo+IG1ldGhvZCBtaWdodCBiZSB0byBqdXN0IGdldCBzb21ldGhpbmcgaW4gdGhl cmUgaW4gY29vcGVyYXRpb24gd2l0aCBPTkUKPiBvcGVuIHNvdXJjZSB1c2VyIGFuZCBsZXQgYWxs IG90aGVyIHVzZXJzIHNjcmVhbSBhZnRlciBpdCdzIGdvbmUgaW4gdGhlcmUKPiBhbmQgdGhlbiBl eHRlbmQgdGhlIGludGVyZmFjZSAod2l0aG91dCBicmVha2luZyBBQkkpIHRvIGFjY29tb2RhdGUg dGhlCj4gb3RoZXIgdXNlcnMuIEkndmUgdHJpZWQgdG8gZHJ1bSB1cCBlbnRodXNpYXNtIGZvciB0 aGlzIG5ldyBmZWF0dXJlIGJ1dAo+IHNvIGZhciBpdCdzIG5vdCBiZWVuIG92ZXJ3aGVsbWluZyBz byBpdCdzIGRpZmZpY3VsdCB0byBzb2x2ZSB0aGlzCj4gY2hpY2tlbiBhbmQgZWdnIHByb2JsZW0g d2l0aG91dCBwcm9wZXIgaW5wdXQgZnJvbSB1c2VybGFuZCB1c2Vycy4KPgo+IElmIHNvbWVvbmUg d3JpdGVzIHNvbWV0aGluZyBpbiBzdG9uZSBhbmQgdGVsbHMgbWUgdG8gaW1wbGVtZW50IGV4YWN0 bHkKPiB0aGF0IHRoZW4gSSdsbCBkbyBpdCBidXQgc28gZmFyIHRoZXJlIGhhcyBiZWVuIG5vIGNv bnZpbmNpbmcgYXJndW1lbnQKPiBwb2ludGluZyB0byBhbnkgcGFydGljdWxhciBkZXNpZ24gYXNp ZGUgZnJvbSB0aGUgY2hvaWNlIG9mIGRlZmF1bHQKPiB0aW1lb3V0LCB3aGljaCB3YXMgYWN0dWFs bHkgZGVjaWRlZCBpbiBjb2xsYWJvcmF0aW9uIHdpdGggdmFyaW91cwo+IHVzZXJsYW5kIGdyb3Vw cyBhbmQgd2FzIG5vdGhpbmcgd2UganVzdCBtYWRlIHVwIGJ5IG91cnNlbHZlcy4KPgo+Pgo+PiAg ICBUaGUgdGVzdHMgaGVyZSB3b3VsZCBmb2N1cyBvbiB0aGUgdWFwaSBhbmQgZW5zdXJpbmcgdGhh dCBpZiB0aGUgY2xpZW50Cj4+ICAgIGFza3MgZm9yIGEgNjBtcyBoYW5nIGRldGVjdGlvbiwgdGhl biBhbGwgd29yayBwYWNrZXRzIHRha2UgYXQgbW9zdAo+PiAgICA2MG1zIHRvIGNvbXBsZXRlLiBI bW0sIGFkZCB3YWl0X2lvY3RsIHRvIHRoZSBsaXN0IG9mIHVhcGkgdGhhdCBzaG91bGQKPj4gICAg cmVwb3J0IC1FSU8uCj4+Cj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j ICAgICB8ICAxNDYgKysrKystCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMg ICAgICAgICB8ICAyMDEgKysrKysrKysKPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMgICAgICAgIHwgIDg1OAo+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ Pgo+PiBUaGUgYmFsYW5jZSBoZXJlIGZlZWxzIHdyb25nIDstKQo+Cj4gT25jZSB3ZSBnZXQgZ2Vu NyBzdXBwb3J0IGluIHRoZXJlLCBhZnRlciB0aGlzIFJGQywgSSBjYW4gYXNzdXJlIHlvdSB0aGF0 Cj4gaXQgd2lsbCBldmVuIG91dCBpbiByZWdhcmRzIHRvIGludGVsX3JpbmdidWZmZXIuYyBhbmQg b3RoZXIgZmlsZXMuIFRoZQo+IGdlbiBhZ25vc3RpYyBURFIgZnJhbWV3b3JrIGRvZXMgZm9jdXMg YSBsb3Qgb24gaTkxNV9kcnYuYyBhbmQKPiBpOTE1X2lycS5jLCBpbnRlbF9scmMuYyBpcyBoZWF2 eSBiZWNhdXNlIG91ciBwcmluY2lwYWwgaW1wbGVtZW50YXRpb24KPiBmb2N1c2VzIG9uIGdlbjgg aW4gZXhlY2xpc3QgbW9kZSB3aGljaCBpcyBsb2NhbGl6ZWQgaW4gaW50ZWxfbHJjLmMgLgo+Cj4g QnV0LCB5ZWFoLCBJIGdldCB3aGF0IHlvdSdyZSBzYXlpbmcgOykuIEp1c3Qgc3RhdGluZyBmb3Ig dGhlIHJlY29yZC4KPgo+IFRoYW5rcywKPiBUb21hcwo+Cj4+IC1DaHJpcwo+Pgo+Cj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==