From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joao Martins Subject: Re: [PATCH v3 5/6] x86/time: implement PVCLOCK_TSC_STABLE_BIT Date: Tue, 30 Aug 2016 13:26:42 +0100 Message-ID: <57C57B82.9050500@oracle.com> References: <1472042632-12883-1-git-send-email-joao.m.martins@oracle.com> <1472042632-12883-6-git-send-email-joao.m.martins@oracle.com> <57BEE6910200007800108E9C@prv-mh.provo.novell.com> <57C063C7.7070505@oracle.com> <57C4252F0200007800109B94@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bei6Q-0004su-1w for xen-devel@lists.xenproject.org; Tue, 30 Aug 2016 12:25:18 +0000 In-Reply-To: <57C4252F0200007800109B94@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: Andrew Cooper , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gMDgvMjkvMjAxNiAxMTowNiBBTSwgSmFuIEJldWxpY2ggd3JvdGU6Cj4+Pj4gT24gMjYuMDgu MTYgYXQgMTc6NDQsIDxqb2FvLm0ubWFydGluc0BvcmFjbGUuY29tPiB3cm90ZToKPj4gT24gMDgv MjUvMjAxNiAxMTozNyBBTSwgSmFuIEJldWxpY2ggd3JvdGU6Cj4+Pj4+PiBPbiAyNC4wOC4xNiBh dCAxNDo0MywgPGpvYW8ubS5tYXJ0aW5zQG9yYWNsZS5jb20+IHdyb3RlOgo+Pj4+IFRoaXMgcGF0 Y2ggcHJvcG9zZXMgcmVseWluZyBvbiBob3N0IFRTQyBzeW5jaHJvbml6YXRpb24gYW5kCj4+Pj4g cGFzc3Rocm91Z2ggdG8gdGhlIGd1ZXN0LCB3aGVuIHJ1bm5pbmcgb24gYSBUU0Mtc2FmZSBwbGF0 Zm9ybS4gT24KPj4+PiB0aW1lX2NhbGlicmF0aW9uIHdlIHJldHJpZXZlIHRoZSBwbGF0Zm9ybSB0 aW1lIGluIG5zIGFuZCB0aGUgY291bnRlcgo+Pj4+IHJlYWQgYnkgdGhlIGNsb2Nrc291cmNlIHRo YXQgd2FzIHVzZWQgdG8gY29tcHV0ZSBzeXN0ZW0gdGltZS4gV2UKPj4+PiBpbnRyb2R1Y2UgYSBu ZXcgcmVuZGV6b3VzIGZ1bmN0aW9uIHdoaWNoIGRvZXNuJ3QgcmVxdWlyZQo+Pj4+IHN5bmNocm9u aXphdGlvbiBiZXR3ZWVuIG1hc3RlciBhbmQgc2xhdmUgQ1BVUyBhbmQganVzdCByZWFkcwo+Pj4+ IGNhbGlicmF0aW9uX3JlbmRlenZvdXMgc3RydWN0IGFuZCB3cml0ZXMgaXQgZG93biB0aGUgc3Rp bWUgYW5kIHN0YW1wCj4+Pj4gdG8gdGhlIGNwdV9jYWxpYnJhdGlvbiBzdHJ1Y3QgdG8gYmUgdXNl ZCBsYXRlciBvbi4gV2UgY2FuIGd1YXJhbnRlZSB0aGF0Cj4+Pj4gb24gYSBwbGF0Zm9ybSB3aXRo IGEgY29uc3RhbnQgYW5kIHJlbGlhYmxlIFRTQywgdGhhdCB0aGUgdGltZSByZWFkIG9uCj4+Pj4g dmNwdSBCIHJpZ2h0IGFmdGVyIEEgaXMgYmlnZ2VyIGluZGVwZW5kZW50bHkgb2YgdGhlIFZDUFUg Y2FsaWJyYXRpb24KPj4+PiBlcnJvci4gU2luY2UgcHZjbG9jayB0aW1lIGluZm9zIGFyZSBtb25v dG9uaWMgYXMgc2VlbiBieSBhbnkgdkNQVSBzZXQKPj4+PiBQVkNMT0NLX1RTQ19TVEFCTEVfQklU LCB3aGljaCB0aGVuIGVuYWJsZXMgdXNhZ2Ugb2YgVkRTTyBvbiBMaW51eC4KPj4+PiBJSVVDLCB0 aGlzIGlzIHNpbWlsYXIgdG8gaG93IGl0J3MgaW1wbGVtZW50ZWQgb24gS1ZNLgo+Pj4KPj4+IFdp dGhvdXQgYW55IHRvb2xzIHNpZGUgY2hhbmdlLCBob3cgaXMgaXQgZ3VhcmFudGVlZCB0aGF0IGEg Z3Vlc3QKPj4+IHdoaWNoIG9ic2VydmVkIHRoZSBzdGFibGUgYml0IHdvbid0IGdldCBtaWdyYXRl ZCB0byBhIGhvc3Qgbm90Cj4+PiBwcm92aWRpbmcgdGhhdCBndWFyYW50ZWU/Cj4+IERvIHlvdSB3 YW50IHRvIHByZXZlbnQgbWlncmF0aW9uIGluIHN1Y2ggY2FzZXM/IFRoZSB3b3JzdCB0aGF0IGNh biBoYXBwZW4gaXMgdGhhdCB0aGUKPj4gZ3Vlc3QgbWlnaHQgbmVlZCB0byBmYWxsYmFjayB0byBh IHN5c3RlbSBjYWxsIGlmIHRoaXMgYml0IGlzIDAgYW5kIHdvdWxkIGtlZXAgZG9pbmcKPj4gc28g aWYgdGhlIGJpdCBpcyAwLgo+IAo+IFdoZXRoZXIgbWlncmF0aW9uIG5lZWRzIHByZXZlbnRpbmcg SSdtIG5vdCBzdXJlOyBhbGwgSSB3YXMgdHJ5aW5nCj4gdG8gaW5kaWNhdGUgaXMgdGhhdCB0aGVy ZSBzZWVtIHRvIGJlIHBpZWNlcyBtaXNzaW5nIHdydCBtaWdyYXRpb24uCj4gQXMgdG8gdGhlIGd1 ZXN0IGZhbGxpbmcgYmFjayB0byBhIHN5c3RlbSBjYWxsIC0gYXJlIGd1ZXN0IGtlcm5lbHMgYW5k Cj4gKGFzIGZhciBhcyBhcyBhZmZlY3RlZCkgYXBwbGljYXRpb25zIHJlcXVpcmVkIHRvIGNvcGUg d2l0aCB0aGUgZmxhZwo+IGNoYW5naW5nIGZyb20gMSB0byAwIGJlaGluZCB0aGVpciBiYWNrPwpJ dCdzIGV4cGVjdGVkIHRoZXkgY29wZSB3aXRoIHRoaXMgYml0IGNoYW5naW5nIEFGQUlLLiBUaGUg dmRzbyBjb2RlIChpLmUuCmFwcGxpY2F0aW9ucykgYWx3YXlzIGNoZWNrIHRoaXMgYml0IG9uIGV2 ZXJ5IHJlYWQgdG8gZGVjaWRlIHdoZXRoZXIgdG8gZmFsbGJhY2sgdG8gYQpzeXN0ZW0gY2FsbC4g QW5kIHNhbWUgZm9yIHB2Y2xvY2sgY29kZSBpbiB0aGUgZ3Vlc3Qga2VybmVsIG9uIGV2ZXJ5IHJl YWQgaW4gYm90aApMaW51eC9GcmVlQlNEIHRvIHNlZSB3aGV0aGVyIHRvIHNraXAgb3Igbm90IHRo ZSBtb25vdG9uaWNpdHkgY2hlY2tzLgoKPj4+PiAgewo+Pj4+ICAgICAgc3RydWN0IGNwdV90aW1l X3N0YW1wICpjID0gJnRoaXNfY3B1KGNwdV9jYWxpYnJhdGlvbik7Cj4+Pj4gIAo+Pj4+IC0gICAg Yy0+bG9jYWxfdHNjICAgID0gcmR0c2Nfb3JkZXJlZCgpOwo+Pj4+IC0gICAgYy0+bG9jYWxfc3Rp bWUgID0gZ2V0X3NfdGltZV9maXhlZChjLT5sb2NhbF90c2MpOwo+Pj4+ICsgICAgaWYgKCBtYXN0 ZXJfdHNjICkKPj4+PiArICAgIHsKPj4+PiArICAgICAgICBjLT5sb2NhbF90c2MgICAgPSByLT5t YXN0ZXJfdHNjX3N0YW1wOwo+Pj4KPj4+IERvZXNuJ3QgdGhpcyByZXF1aXJlIHRoZSBUU0NzIHRv IHJ1biBpbiBwZXJmZWN0IHN5bmMgKG5vdCBldmVuIG9mZgo+Pj4gd3J0IGVhY2ggb3RoZXIgYnkg YSBzaW5nbGUgY3ljbGUpPyBJcyBzdWNoIGV2ZW4gcG9zc2libGUgb24gbXVsdGkKPj4+IHNvY2tl dCBzeXN0ZW1zPyBJLmUuIGhvdyB3b3VsZCBtdWx0aXBsZSBjaGlwcyBnZXQgaW50byBzdWNoIGEK Pj4+IG1vZGUgaW4gdGhlIGZpcnN0IHBsYWNlLCBjb25zaWRlcmluZyB0aGVpciBUU0NzIGNhbid0 IHBvc3NpYmx5IHN0YXJ0Cj4+PiB0aWNraW5nIGF0IGV4YWN0bHkgdGhlIHNhbWUgKHBlcmhhcHMg ZXZlbiBzdWItKW5hbm9zZWNvbmQ/Cj4+IFRoZXkgZG8gcmVxdWlyZSB0byBiZSBpbiBzeW5jIHdp dGggbXVsdGktc29ja2V0cywgb3RoZXJ3aXNlIHRoaXMgd291bGRuJ3Qgd29yay4KPiAKPiAiSW4g c3luYyIgbWF5IG1lYW4gdHdvIHRoaW5nczogVGlja2luZyBhdCBleGFjdGx5IHRoZSBzYW1lIHJh dGUsIG9yCj4gKG1vcmUgc3RyaWN0KSBob2xkaW5nIHRoZSBleGFjdCBzYW1lIHZhbHVlcyBhdCBh bGwgdGltZXMuCkkgbWVhbnQgdGhlIG1vcmUgc3RyaWN0IG9uZS4KCj4gCj4+IEludmFyaWFudCBU U0Mgb25seSByZWZlcnMgdG8gY29yZXMgaW4gYSBwYWNrYWdlLCBidXQgbXVsdGktc29ja2V0IGlz IHVwIHRvIGJvYXJkCj4+IHZlbmRvcnMgKG5vIG1hbnVhbHMgbWVudGlvbiB0aGlzIGd1YXJhbnRl ZSBhY3Jvc3Mgc29ja2V0cykuIFRoYXQgb25lIG9mIHRoZSByZWFzb25zCj4+IFRTQyBpcyBzdWNo IGEgYnVyZGVuIDooCj4+Cj4+IExvb2tpbmcgYXQgZGF0YXNoZWV0cyAob24gdGhlIG9sZGVzdCBw cm9jZXNzb3IgSSB3YXMgdGVzdGluZyB0aGlzKSBpdCAKPj4gbWVudGlvbnMgdGhpcyBub3RlOgo+ Pgo+PiAiSW4gb3JkZXIgSW4gb3JkZXIgdG8gZW5zdXJlIFRpbWVzdGFtcCBDb3VudGVyIChUU0Mp IHN5bmNocm9uaXphdGlvbiBhY3Jvc3Mgc29ja2V0cwo+PiBpbiBtdWx0aS1zb2NrZXQgc3lzdGVt cywgdGhlIFJFU0VUIyBkZWFzc2VydGlvbiBlZGdlIHNob3VsZCBhcnJpdmUgYXQgdGhlIHNhbWUg QkNMSwo+PiByaXNpbmcgZWRnZSBhdCBib3RoIHNvY2tldHMgYW5kIHNob3VsZCBtZWV0IHRoZSBU c3UgYW5kIFRoIHJlcXVpcmVtZW50IG9mIDYwMHBzCj4+IHJlbGF0aXZlIHRvIEJDTEssIGFzIG91 dGxpbmVkIGluIFRhYmxlIDItMjYuIi4KPiAKPiBIbW0sIGEgZHVhbCBzb2NrZXQgc3lzdGVtIGlz IGNlcnRhaW5seSBzdGlsbCBvbmUgb2YgdGhlIGVhc2llciBvbmVzIHRvCj4gZGVhbCB3aXRoLiA2 MDBwcyBtZWFucyAxOGNtIGRpZmZlcmVuY2UgaW4gc2lnbmFsaW5nIHBhdGhzLCB3aGljaCBvbgo+ IGxhcmdlciBzeXN0ZW1zIChhbmQgbmFtZWx5IG9uZXMgY29tcG9zZWQgb2YgbW9zdGx5IGluZGVw ZW5kZW50Cj4gbm9kZXMpIEkgY291bGQgZWFzaWx5IHNlZW0gZ2V0dGluZyBleGNlZWRlZC4gVGhh dCBjYW4gY2VydGFpbmx5IGJlCj4gY29tcGVuc2F0ZWQgKGUuZy4gYnkgZGVhc3NlcnRpbmcgUkVT RVQjIGF0IGRpZmZlcmVudCB0aW1lcyBmb3IKPiBkaWZmZXJlbnQgc29ja2V0cyksIGJ1dCBJJ2Qg dGhlbiBzdGlsbCBxdWVzdGlvbiB0aGUgYWNjdXJhY3kuCkludGVyZXN0aW5nLCBnb29kIHBvaW50 LiBGV0lXIHRoZSBsaW51eCBjb2RlIGRvZXNuJ3QgZGVlbSBtdWx0aS1ub2RlIHN5c3RlbXMgYXMg VFNDCmludmFyaWFudC9yZWxpYWJsZS4KCj4gCj4+IFswXSBJbnRlbCBYZW9uIFByb2Nlc3NvciA1 NjAwIFNlcmllcyBEYXRhc2hlZXQgVm9sIDEsIFBhZ2UgNjMsCj4+IGh0dHA6Ly93d3cuaW50ZWwu Y29tL2NvbnRlbnQvZGFtL3d3dy9wdWJsaWMvdXMvZW4vZG9jdW1lbnRzL2RhdGFzaGVldHMveGVv bi01IAo+PiA2MDAtdm9sLTEtZGF0YXNoZWV0LnBkZgo+Pgo+PiBUaGUgQkNMSyBsb29rcyB0byBi ZSB0aGUgZ2xvYmFsIHJlZmVyZW5jZSBjbG9jayBzaGFyZWQgYWNyb3NzIHNvY2tldHMgSUlVQyB1 c2VkIGluCj4+IHRoZSBQTExzIGluIHRoZSBpbmRpdmlkdWFsIHBhY2thZ2VzICh0byBnZW5lcmF0 ZSB0aGUgc2lnbmFsIHdoZXJlIHRoZSBUU0MgaXMKPj4gZXh0cmFwb2xhdGVkIGZyb20pLiAoIFBs ZWFzZSByZWFkIGl0IHdpdGggYSBncmFpbiBvZiBzYWx0LCBhcyBJIG1heSBiZSBkb2luZyB3cm9u Zwo+PiByZWFkaW5ncyBvZiB0aGVzZSBkYXRhc2hlZXRzICkuIEJ1dCBJZiBpdCB3YXMgYSBib3gg d2l0aCBUU0Mgc2tld2VkIGFtb25nIHNvY2tldHMsCj4+IHdvdWxkbid0IHdlIHNlZSB0aGF0IGF0 IGJvb3QgdGltZSBpbiB0aGUgdHNjIHdhcnAgdGVzdD8gT3IgbWF5YmUgVFNDIHN5bmMgY2hlY2sg aXNuJ3QKPj4gcG90ZW50aWFsbHkgZmFzdCBlbm91Z2ggdG8gY2F0Y2ggYW55IG9kZGl0aWVzPwo+ IAo+IFRoYXQncyBteSBtYWluIGZlYXI6IFRoZSBjaGVjayBjYW4ndCBwb3NzaWJseSBkZXRlcm1p bmUgd2hldGhlciBUU0NzCj4gYXJlIGluIHBlcmZlY3Qgc3luYywgaXQgY2FuIG9ubHkgY2hlY2sg YW4gYXBwcm94aW1hdGlvbi4gCkluZGVlZCwgYW5kIGFzIHdlIGFkZCBtb3JlIENQVXMsIHRoZSB0 c2MgcmVsaWFiaWxpdHkgY2hlY2sgd2lsbCBzaWduaWZpY2FudGx5IHNsb3cKZG93biwgdGhlcmVm b3JlIG1pbmltaXppbmcgdGhpcyBhcHByb3hpbWF0aW9uLCB1bmxlc3MgdGhlcmUncyBhIHNpZ25p ZmljYW50IHNrZXcuCgo+IFBlcmhhcHMgZXZlbgo+IHdvcnNlIHRoYW4gdGhlIG11bHRpLW5vZGUg Y29uc2lkZXJhdGlvbiBoZXJlIGlzIGh5cGVyLXRocmVhZGluZywgYXMKPiB0aGF0IG1ha2VzIGl0 IGZ1bmRhbWVudGFsbHkgaW1wb3NzaWJsZSB0aGF0IGFsbCB0aHJlYWRzIHdpdGhpbiBvbmUgY29y ZQo+IGV4ZWN1dGUgdGhlIHNhbWUgb3BlcmF0aW9uIGF0IGV4YWN0bHkgdGhlIHNhbWUgdGltZS4g Tm90IHRvIHNwZWFrIG9mCj4gdGhlIHZhcmlvdXMgb2RkIGNhY2hlIGVmZmVjdHMgd2hpY2ggSSBk aWQgb2JzZXJ2ZSB3aGlsZSBkb2luZyB0aGUKPiBtZWFzdXJlbWVudHMgZm9yIG15IHNlcmllcyAo ZS5nLiB0aGUgc2Vjb25kIHRocmVhZCBzcGVjdWxhdGluZyB0aGUKPiBUU0MgcmVhZHMgbXVjaCBm YXJ0aGVyIHRoYW4gdGhlIHByaW1hcnkgb25lcywgcHJlc3VtYWJseSBiZWNhdXNlCj4gdGhlIHBy aW1hcnkgb25lcyBmaXJzdCBuZWVkZWQgdG8gZ2V0IHRoZSBJLWNhY2hlIHBvcHVsYXRlZCkuCkht bW0sIG5vdCBzdXJlIGhvdyB3ZSBjb3VsZCBjb3BlIHdpdGggVFNDIEhUIGlzc3Vlcy4gSW4gdGhp cyBwYXRjaCwgd2UgcHJvcGFnYXRlIFRTQwpyZWFkcyBmcm9tIHBsYXRmb3JtIHRpbWVyIG9uIENQ VSAwIGludG8gdGhlIG90aGVyIENQVXMsIGl0IHdvdWxkIHByb2JhYmx5IGlzCm5vbi12aXNpYmxl IGFzIHRoZXJlIGFyZW4ndCBUU0MgcmVhZHMgYmVpbmcgZG9uZSBvbiBtdWx0aXBsZSB0aHJlYWRz IGFwcHJveGltYXRlbHkgYXQKdGhlIHNhbWUgdGltZT8KCj4+IE91ciBkb2NzCj4+IChodHRwczov L3hlbmJpdHMueGVuLm9yZy9kb2NzL3Vuc3RhYmxlL21pc2MvdHNjbW9kZS50eHQpIGFsc28gc2Vl bSB0byBtZW50aW9uCj4+IHNvbWV0aGluZyBhbG9uZyB0aGVzZSBsaW5lcyBvbiBtdWx0aS1zb2Nr ZXQgc3lzdGVtcy4gQW5kIExpbnV4IHRzYyBjb2RlIHNlZW1zIHRvCj4+IGFzc3VtZSB0aGF0IElu dGVsIGJveGVzIGhhdmUgc3luY2hyb25pemVkIFRTQ3MgYWNyb3NzIHNvY2tldHMgWzFdIGFuZCB0 aGF0IHRoZQo+PiBleGNlcHRpb25zIGNhc2VzIHNob3VsZCBtYXJrIHRzYz1za2V3ZWQgKHdlIGFs c28gaGF2ZSBzdWNoIHBhcmFtZXRlcikuCj4+Cj4+IFsxXSBhcmNoL3g4Ni9rZXJuZWwvdHNjLmMj TDEwOTQKPiAKPiBSZWZlcnJpbmcgYmFjayB0byB3aGF0IEkndmUgc2FpZCBhYm92ZTogRG9lcyB0 aGlzIG1lYW4gZXhhY3Qgc2FtZQo+IHRpY2sgcmF0ZSwgb3IgZXhhY3Qgc2FtZSB2YWx1ZXM/Ckhl cmUgSSBhbHNvIG1lYW50IHRoZSBpbnZhcmlhbnQgY29uZGl0aW9uIGkuZSBleGFjdCBzYW1lIHZh bHVlcy4KCj4gCj4+IEFzIHJlYXNzdXJhbmNlIEkndmUgYmVlbiBydW5uaW5nIHRlc3RzIGZvciBk YXlzIGxvbmcgKGN1cnJlbnRseSBpbiBhbG1vc3QgYSB3ZWVrIG9uCj4+IDItc29ja2V0IHN5c3Rl bSkgYW5kIEknbGwga2VlcCBydW5uaW5nIHRvIHNlZSBpZiBpdCBjYXRjaGVzIGFueSBpc3N1ZXMg b3IgdGltZSBnb2luZwo+PiBiYWNrd2FyZHMuIENvdWxkIGFsc28gcnVuIGluIHRoZSBiaWdnZXN0 IGJveGVzIHdlIGhhdmUgd2l0aCA4IHNvY2tldHMuIEJ1dCBzdGlsbCBpdAo+PiB3b3VsZCByZXBy ZXNlbnQgb25seSBhIHRpbnkgZnJhY3Rpb24gb2Ygd2hhdCB4ODYgaGFzIGF2YWlsYWJsZSB0aGVz ZSBkYXlzLgo+IAo+IEEgdHJ1bHkgaW50ZXJlc3RpbmcgY2FzZSB3b3VsZCBiZSwgYXMgbWVudGlv bmVkLCBhIGJveCBjb21wb3NlZCBvZgo+IGluZGl2aWR1YWwgbm9kZXMuIE5vdCBzdXJlIHdoZXRo ZXIgdGhhdCA4LXNvY2tldCBvbmUgeW91IG1lbnRpb24KPiB3b3VsZCBtZWV0IHRoYXQuCkl0J3Mg bm90IGEgbXVsdGktbm9kZSBtYWNoaW5lIC0gYnV0IHdpdGhpbiBzaW5nbGUtbm9kZSBtYWNoaW5l cyBpdCdzIHBvdGVudGlhbGx5IHRoZQp3b3JzdCBjYXNlIHNjZW5hcmlvLgoKPj4gT3RoZXIgdGhh biB0aGUgdGhpbmdzIGFib3ZlIEkgYW0gbm90IHN1cmUgaG93IHRvIGdvIGFib3V0IHRoaXMgOigg U2hvdWxkIHdlIHN0YXJ0Cj4+IGFkanVzdGluZyB0aGUgVFNDcyBpZiB3ZSBmaW5kIGRpc3Bhcml0 aWVzIG9yIHNrZXcgaXMgb2JzZXJ2ZWQgb24gdGhlIGxvbmcgcnVuPyBPcgo+PiBhbGxvdyBvbmx5 IFRTQ3Mgb24gdkNQVVMgb2YgdGhlIHNhbWUgcGFja2FnZSB0byBleHBvc2UgdGhpcyBmbGFnPyBI bW0sIHdoYXQncyB5b3VyCj4+IHRha2Ugb24gdGhpcz8gQXBwcmVjaWF0ZSB5b3VyIGZlZWRiYWNr Lgo+IAo+IEF0IGxlYXN0IGFzIGFuIGluaXRpYWwgYXBwcm9hY2ggcmVxdWlyaW5nIGFmZmluaXRp ZXMgdG8gYmUgbGltaXRlZCB0byBhCj4gc2luZ2xlIHNvY2tldCB3b3VsZCBzZWVtIGxpa2UgYSBn b29kIGNvbXByb21pc2UsIHByb3ZpZGVkIEhUCj4gYXNwZWN0cyBkb24ndCBoYXZlIGEgYmFkIGVm ZmVjdCAoaW4gd2hpY2ggY2FzZSBhbHNvIGV4Y2x1ZGluZyBIVAo+IG1heSBiZSByZXF1aXJlZCku IEknZCBhbHNvIGJlIGZpbmUgd2l0aCBjb21tYW5kIGxpbmUgb3B0aW9ucwo+IGFsbG93aW5nIHRv IGZ1cnRoZXIgcmVsYXggdGhhdCwgYnV0IGEgc2ltcGxlICJjbG9ja3NvdXJjZT10c2MiCj4gc2hv dWxkIGltbyByZXN1bHQgaW4gYSBzZXR1cCB3aGljaCBmcm9tIGFsbCB3ZSBjYW4gdGVsbCB3aWxs IHdvcmsgYXMKPiBpbnRlbmRlZC4KU291bmRzIHJlYXNvbmFibGUsIHNvIHVubGVzcyBjb21tYW5k IGxpbmUgb3B0aW9ucyBhcmUgc3BlY2lmaWVkIHdlIGRpc2FsbG93IFRTQyB0byBiZQpjbG9ja3Nv dXJjZSBvbiBtdWx0aS1zb2NrZXQgc3lzdGVtcy4gV1JUIHRvIGNvbW1hbmQgbGluZSBvcHRpb25z LCBob3cgYWJvdXQgZXh0ZW5kaW5nCiJ0c2MiIHBhcmFtZXRlciB0byBhY2NlcHQgYW5vdGhlciBw b3NzaWJsZSB2YWx1ZSBzdWNoIGFzICJnbG9iYWwiIG9yICJzb2NrZXRzYWZlIj8KQ3VycmVudCB2 YWx1ZXMgYXJlICJ1bnN0YWJsZSIgYW5kICJza2V3ZWQiLgoKVGhhbmtzIHNvIGZhciBmb3IgYWxs IHRoZSBjb21tZW50cyBzbyBmYXIhCkpvYW8KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=