From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joao Martins Subject: Re: [PATCH v4 2/5] x86/time: implement tsc as clocksource Date: Tue, 20 Sep 2016 11:15:20 +0100 Message-ID: <57E10C38.1090203@oracle.com> References: <1473874670-4986-1-git-send-email-joao.m.martins@oracle.com> <1473874670-4986-3-git-send-email-joao.m.martins@oracle.com> <57DFD678020000780010FEAF@prv-mh.provo.novell.com> <57E00E18.8050405@oracle.com> <57E02D85020000780011040B@prv-mh.provo.novell.com> <57E0265E.80006@oracle.com> <57E0FDB1020000780011072B@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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bmI3e-0003Se-HO for xen-devel@lists.xenproject.org; Tue, 20 Sep 2016 10:13:46 +0000 In-Reply-To: <57E0FDB1020000780011072B@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 T24gMDkvMjAvMjAxNiAwODoxMyBBTSwgSmFuIEJldWxpY2ggd3JvdGU6Cj4+Pj4gT24gMTkuMDku MTYgYXQgMTk6NTQsIDxqb2FvLm0ubWFydGluc0BvcmFjbGUuY29tPiB3cm90ZToKPj4gT24gMDkv MTkvMjAxNiAwNToyNSBQTSwgSmFuIEJldWxpY2ggd3JvdGU6Cj4+Pj4+PiBPbiAxOS4wOS4xNiBh dCAxODoxMSwgPGpvYW8ubS5tYXJ0aW5zQG9yYWNsZS5jb20+IHdyb3RlOgo+Pj4+IE9uIDA5LzE5 LzIwMTYgMTE6MTMgQU0sIEphbiBCZXVsaWNoIHdyb3RlOgo+Pj4+Pj4+PiBPbiAxNC4wOS4xNiBh dCAxOTozNywgPGpvYW8ubS5tYXJ0aW5zQG9yYWNsZS5jb20+IHdyb3RlOgo+Pj4+Pj4gU2luY2Ug YjY0NDM4YzdjICgieDg2L3RpbWU6IHVzZSBjb3JyZWN0IChsb2NhbCkgdGltZSBzdGFtcCBpbgo+ Pj4+Pj4gY29uc3RhbnQtVFNDIGNhbGlicmF0aW9uIGZhc3QgcGF0aCIpIHVwZGF0ZXMgdG8gY3B1 IHRpbWUgdXNlIGxvY2FsCj4+Pj4+PiBzdGFtcHMsIHdoaWNoIG1lYW5zIHBsYXRmb3JtIHRpbWVy IGlzIG9ubHkgdXNlZCB0byBzZWVkIHRoZSBpbml0aWFsCj4+Pj4+PiBjcHUgdGltZS4gIFdpdGgg Y2xvY2tzb3VyY2U9dHNjIHRoZXJlIGlzIG5vIG5lZWQgdG8gYmUgaW4gc3luYyB3aXRoCj4+Pj4+ PiBhbm90aGVyIGNsb2Nrc291cmNlLCBzbyB3ZSByZXNlZWQgdGhlIGxvY2FsL21hc3RlciBzdGFt cHMgdG8gYmUgdmFsdWVzCj4+Pj4+PiBvZiBUU0MgYW5kIHVwZGF0ZSB0aGUgcGxhdGZvcm0gdGlt ZSBzdGFtcHMgYWNjb3JkaW5nbHkuIFRpbWUKPj4+Pj4+IGNhbGlicmF0aW9uIGlzIHNldCB0byAx c2VjIGFmdGVyIHdlIHN3aXRjaCB0byBUU0MsIHRodXMgdGhlc2Ugc3RhbXBzCj4+Pj4+PiBhcmUg cmVzZWVkZWQgdG8gYWxzbyBlbnN1cmUgbW9ub3RvbmljIHJldHVybmluZyB2YWx1ZXMgcmlnaHQg YWZ0ZXIgdGhlCj4+Pj4+PiBwb2ludCB3ZSBzd2l0Y2ggdG8gVFNDLiBUaGlzIGlzIGFsc28gdG8g YXZvaWQgdGhlIHBvc3NpYmlsaXR5IG9mCj4+Pj4+PiBoYXZpbmcgaW5jb25zaXN0ZW50IHJlYWRp bmdzIGluIHRoaXMgc2hvcnQgcGVyaW9kIChpLmUuIHVudGlsCj4+Pj4+PiBjYWxpYnJhdGlvbiBm aXJlcykuCj4+Pj4+Cj4+Pj4+IEFuZCB3aXRoaW4gdGhpcyBvbmUgc2Vjb25kLCB3aGljaCBtYXkg Y292ZXIgc29tZSBvZiBEb20wJ3MKPj4+Pj4gYm9vdGluZyB1cCwgaXQgaXMgb2theSB0byBoYXZl IGluY29uc2lzdGVuY2llcz8KPj4+PiBJdCdzIG5vdCBva2F5IHdoaWNoIGlzIHdoeSBJIGFtIHJl bW92aW5nIHRoaXMgcG9zc2liaWxpdHkgd2hlbiBzd2l0Y2hpbmcgdG8gVFNDLgo+Pj4+IFRoZSBp bmNvbnNpc3RlbmNpZXMgaW4gdGhvc2UgcmVhZGluZ3MgKGlmIEkgd2Fzbid0IGFkanVzdGluZykg d291bGQgYmUgYmVjYXVzZQo+Pj4+IHdlIHdvdWxkIGJlIHVzaW5nIChpbiB0aGF0IDEtc2VjKSB0 aG9zZSBjcHUgdGltZSB0dXBsZXMgY2FsY3VsYXRlZCBieSB0aGUKPj4+PiBwcmV2aW91cyBjYWxp YnJhdGlvbiBvciBwbGF0Zm9ybSB0aW1lIGluaXRpYWxpemF0aW9uICh3aGlsZSBzdGlsbCB3YXMg SFBFVCwKPj4+PiBBQ1BJLCBldGMgYXMgY2xvY2tzb3VyY2UpLiBXb3VsZCB5b3UgcHJlZmVyIG1l IHJlbW92aW5nIHRoZSAiYXZvaWQiIGFuZCBpbnN0ZWFkCj4+Pj4gY2hhbmdlIGl0IHRvICJyZW1v dmUgdGhlIHBvc3NpYmlsaXR5IiBpbiB0aGlzIGxhc3Qgc2VudGVuY2U/Cj4+Pgo+Pj4gTGV0J3Mg bm90IGRvIHRoZSAybmQgc3RlcCBiZWZvcmUgdGhlIDFzdCwgd2hpY2ggaXMgdGhlIHF1ZXN0aW9u IG9mCj4+PiB3aGF0IGhhcHBlbnMgcHJpb3IgdG8gYW5kIHdoYXQgYWN0dWFsbHkgY2hhbmdlcyBh dCB0aGlzIGZpcnN0Cj4+PiBjYWxpYnJhdGlvbiAoYWZ0ZXIgMSBzZWMpLgo+PiBUaGUgZmlyc3Qg Y2FsaWJyYXRpb24gd29uJ3QgY2hhbmdlIG11Y2ggLSB0aGlzIDEtc2VjIHdhcyBtZWFudCB3aGVu IGhhdmluZwo+PiBub3BfcmVuZGV6dm91cyB3aGljaCBpcyB0aGUgZmlyc3QgdGltZSBwbGF0Zm9y bSB0aW1lciB3b3VsZCBiZSB1c2VkIHRvIHNldCBsb2NhbAo+PiBjcHVfdGltZSAod2lsbCBhZGp1 c3QgdGhlIG1lbnRpb24gYWJvdmUgYXMgaXQncyBtaXNsZWFkaW5nIGZvciB0aGUgcmVhZGVyIGFz IGl0Cj4+IGRvZXNuJ3QgcmVmZXIgdG8gdGhpcyBwYXRjaCkuCj4gCj4gU28gd2hhdCBtYWtlcyBp dCB0aGF0IGl0IGFjdHVhbGx5IF9pc18gbm9wX3JlbmRlenZvdXMgYWZ0ZXIgdGhhdCBvbmUKPiBz ZWNvbmQ/IChBbmQgeWVzLCBwYXJ0IG9mIHRoaXMgbWF5IGluZGVlZCBiZSBqdXN0IGJhZCBwbGFj ZW1lbnQgb2YKPiB0aGUgZGVzY3JpcHRpb24sIGFzIGlpcmMgbm9wX3JlbmRlenZvdXMgZ2V0cyBp bnRyb2R1Y2VkIG9ubHkgaW4gYSBsYXRlcgo+IHBhdGNoLikKQmVjYXVzZSB3aXRoIG5vcF9yZW5k ZXp2b3VzIHdlIHdpbGwgYmUgdXNpbmcgdGhlIHBsYXRmb3JtIHRpbWVyIHRvIGdldCBhCm1vbm90 b25pYyB0aW1lIHR1cGxlIGFuZCAqc2V0KiBjcHVfdGltZSBhcyBvcHBvc2VkIHRvIGp1c3QgYWRk aW5nIHVwIHBsYWluIFRTQwpkZWx0YSBhcyBpdCBpcyB0aGUgY2FzZSBwcmlvciB0byBiNjQ0Mzhj N2MuIFRodXMgdGhlIHJlc2VlZGluZyBvZiB0aGUgY3B1IHRpbWVzCnNvbHZlcyBib3RoIGVuZHMg b2YgdGhlIHByb2JsZW0sIHdpdGggbm9wX3JlbmRlenZvdXMgdW50aWwgaXQgaXMgZmlyc3QKY2Fs aWJyYXRpb24gZml4ZXMgaXQsIGFuZCB3aXRob3V0IG5vcF9yZW5kZXp2b3VzIHRvIHJlbW92ZSB0 aGUgbGF0Y2ggYWRqdXN0bWVudApmcm9tIGluaXRpYWwgcGxhdGZvcm0gdGltZXIuCgo+PiBUaG91 Z2ggcmVzZWVkaW5nIHRoZSBjcHUgdGltZXMgdG8gYm9vdF90c2Nfc3RhbXAKPj4gcHJpb3IgdG8g Y2FsaWJyYXRpb24gKCp3aXRob3V0KiB0aGUgdGltZSBsYXRjaCB2YWx1ZXMgZnJvbSBwcmV2aW91 cyBwbGF0Zm9ybQo+PiB0aW1lcikgd2UgY2FuIGVuc3VyZSBOT1cvZ2V0X3NfdGltZSBvciBjYWxs cyB0byB1cGRhdGVfdmNwdV9zeXN0ZW1fdGltZSgpIHdpbGwKPj4gc2VlIG1vbm90b25pY2FsbHkg aW5jcmVhc2luZyB2YWx1ZXMuIE90aGVyd2lzZSBrZWVwaW5nIHRoZSBwcmV2aW91cyBvbmVzLAo+ PiBjYWxpYnJhdGlvbiB3b3VsZCBqdXN0IGFkZCB1cCBsb2NhbCBUU0MgZGVsdGEgYW5kIGFueSBl eGlzdGluZyBkaXZlcmdlbmNlCj4+IHdvdWxkbid0IGJlIHNvbHZlZC4gT24gYSBsYXRlciBwYXRj aCB3aGVuIHdlIHNldCB0aGUgc3RhYmxlIGJpdCAod2l0aCBub3AKPj4gcmVuZGV6dm91cyksIGlm IHRoZXNlIGNwdSB0aW1lcyB3ZXJlbid0IGFkanVzdGVkIGd1ZXN0cy94ZW4gd291bGQgc3RpbGwg c2VlCj4+IHNtYWxsIGRpdmVyZ2VuY2UgYmV0d2VlbiBDUFVzIHVudGlsIHRoZSBmaXJzdCBjYWxp YnJhdGlvbiB3YXMgZmlyZWQgKGFmdGVyIHdlCj4+IHN3aXRjaGVkIHRvIFRTQykuCj4gCj4gUmln aHQuIEJ1dCBteSBjb25jZXJuIGlzIHJlZ2FyZGluZyB0aGUgdGltZSB3aW5kb3cgX2JldHdlZW5f Cj4gc3dpdGNoaW5nIHRvIFRTQyBhbmQgcnVubmluZyBjYWxpYnJhdGlvbiB0aGUgZmlyc3QgdGlt ZSBhZnRlcndhcmRzLgo+IFBhcnQgb2YgdGhpcyBpbmRlZWQgZ2V0cyB0YWtlbiBjYXJlIG9mIGJ5 IHRoZSByZS1zZWVkaW5nICh3aGljaCwKPiBvdGhlciB0aGFuIG9uZSBjb3VsZCBpbXBseSBmcm9t IHdoYXQgeW91IHNheSBhYm92ZSwgZG9lc24ndCBnZXQKPiBkb25lIFtpbW1lZGlhdGVseV0gcHJp b3IgdG8gY2FsaWJyYXRpb24sIGJ1dCB1cG9uIHN3aXRjaGluZyB0byBUU0MpLgpFeGFjdGx5LgoK PiBCdXQgaXMgcmUtc2VlZGluZyB3aXRob3V0IHN3aXRjaGluZyB0byBub3BfcmVuZGV6dm91cyBy ZWFsbHkKPiBzdWZmaWNpZW50IChvciBpbiBvdGhlciB3b3JkcywgY2FuIHRoZSBwYXRjaGVzIHJl YWxseSBiZSBicm9rZW4gdXAKPiBsaWtlIHRoaXMpPwpJIHRoaW5rIGl0IGlzIHN1ZmZpY2llbnQs IHVubGVzcyBJIGFtIG1pc3Npbmcgb3V0IHNvbWV0aGluZy4gSW4gbXkgb3BpbmlvbiB3aGF0CnJl cXVpcmVzIGl0IHRvIGJlIGNvcnJlY3QgaXMgdGhhdCB0aGUgdHVwbGUgdGhhdCBpcyBnZXR0aW5n IChyZS0pd3JpdHRlbiB0byBjcHUKdGltZSBoYXMgYSBtYXRjaGluZyBzdGFtcCArIHN0aW1lIGFu ZCBjb3JyZXNwb25kcyB0byB0aGUgc2FtZSB0aW1lIHJlZmVyZW5jZSBhcwp0aGUgbmV4dCB3cml0 dGVuIGFmdGVyLiBVbmxlc3MgeW91ciBkb3VidHMgbWlnaHQgb3JpZ2luYXRlIGZyb20gaG93CnN0 ZF9yZW5kZXp2b3VzIGN1cnJlbnRseSB1cGRhdGVzIHRoZSB0aW1lIGluZm9zIGJ1dCBldmVuIHRo ZXJlIHdpdGggeW91ciBzZXJpZXMKd2UgZm9ydHVuYXRlbHkgYWRkIHVwIHRvIGNwdV90aW1lIHdp dGggYSBtb25vdG9uaWMgZGVsdGEgKHdpdGggYSBtYXRjaGluZyBzdGFtcAphbmQgc3RpbWUgdHVw bGUpIGFuZCB0aHVzIGhhdmluZyB0aGUgbW9ub3RvbmljIHByb3BlcnR5IGV2ZW4gd2l0aG91dApu b3BfcmVuZGV6dm91cy4gSSByZWNhbGwgZG9pbmcgdGVzdGluZy92YWxpZGF0aW9uIG9mIHRoaXMg cGF0Y2ggYWxvbmUgYW5kIGRpZG4ndApvYnNlcnZlIGFueSBkaXZlcmdlbmNlcywgYnV0IEkgbXVz dCBzYXkgdGhhdCB0aGUgbW9zdCBzaWduaWZpY2FudCBwb3J0aW9uIG9mCnRlc3Rpbmcgd2FzIHdp dGggdGhlIHdob2xlIHNlcmllcy4KCj4+Pj4+PiBAQCAtMTQ4MCw2ICsxNTcwLDI1IEBAIHN0YXRp YyBpbnQgX19pbml0IHZlcmlmeV90c2NfcmVsaWFiaWxpdHkodm9pZCkKPj4+Pj4+ICAgICAgICAg ICAgICBwcmludGsoIlRTQyB3YXJwIGRldGVjdGVkLCBkaXNhYmxpbmcgVFNDX1JFTElBQkxFXG4i KTsKPj4+Pj4+ICAgICAgICAgICAgICBzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX1RT Q19SRUxJQUJMRSk7Cj4+Pj4+PiAgICAgICAgICB9Cj4+Pj4+PiArICAgICAgICBlbHNlIGlmICgg IXN0cmNtcChvcHRfY2xvY2tzb3VyY2UsICJ0c2MiKSAmJgo+Pj4+Pj4gKyAgICAgICAgICAgICAg ICAgICh0cnlfcGxhdGZvcm1fdGltZXIoJnBsdF90c2MpID4gMCkgKQo+Pj4+Pj4gKyAgICAgICAg ewo+Pj4+Pj4gKyAgICAgICAgICAgIC8qCj4+Pj4+PiArICAgICAgICAgICAgICogUGxhdGZvcm0g dGltZXIgaGFzIGNoYW5nZWQgYW5kIENQVSB0aW1lIHdpbGwgb25seSBiZSB1cGRhdGVkCj4+Pj4+ PiArICAgICAgICAgICAgICogYWZ0ZXIgd2Ugc2V0IGFnYWluIHRoZSBjYWxpYnJhdGlvbiB0aW1l ciwgd2hpY2ggbWVhbnMgd2UgbmVlZCB0bwo+Pj4+Pj4gKyAgICAgICAgICAgICAqIHNlZWQgYWdh aW4gZWFjaCBsb2NhbCBDUFUgdGltZS4gQXQgdGhpcyBzdGFnZSBUU0MgaXMga25vd24gdG8gYmUK Pj4+Pj4+ICsgICAgICAgICAgICAgKiByZWxpYWJsZSBpLmUuIG1vbm90b25pY2FsbHkgaW5jcmVh c2luZyBhY3Jvc3MgYWxsIENQVXMgc28gdGhpcwo+Pj4+Pj4gKyAgICAgICAgICAgICAqIGxldHMg dXMgcmVtb3ZlIHRoZSBza2V3IGJldHdlZW4gcGxhdGZvcm0gdGltZXIgYW5kIFRTQywgc2luY2UK Pj4+Pj4+ICsgICAgICAgICAgICAgKiB0aGVzZSBhcmUgbm93IGVmZmVjdGl2ZWx5IHRoZSBzYW1l Lgo+Pj4+Pj4gKyAgICAgICAgICAgICAqLwo+Pj4+Pj4gKyAgICAgICAgICAgIG9uX3NlbGVjdGVk X2NwdXMoJmNwdV9vbmxpbmVfbWFwLCByZXNldF9wZXJjcHVfdGltZSwgTlVMTCwgMSk7Cj4+Pj4+ PiArCj4+Pj4+PiArICAgICAgICAgICAgLyogRmluaXNoIHBsYXRmb3JtIHRpbWVyIHN3aXRjaC4g Ki8KPj4+Pj4+ICsgICAgICAgICAgICB0cnlfcGxhdGZvcm1fdGltZXJfdGFpbCgpOwo+Pj4+Pj4g Kwo+Pj4+Pj4gKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAiU3dpdGNoZWQgdG8gUGxh dGZvcm0gdGltZXIgJXMgVFNDXG4iLAo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICBmcmVxX3N0 cmluZyhwbHRfc3JjLmZyZXF1ZW5jeSkpOwo+Pj4+Pgo+Pj4+PiBUaGlzIG1lc3NhZ2Ugc2hvdWxk IGhhdmUgdGhlIHNhbWUgbG9nIGxldmVsIGFzIHRoZSBvbmUgYXQgdGhlIGVuZAo+Pj4+PiBvZiBp bml0X3BsYXRmb3JtX3RpbWVyKCkuCj4+Pj4gQWdyZWVkLCBidXQgYXQgdGhlIGVuZCBvZiBpbml0 X3BsYXRmb3JtX3RpbWVyIHRoZXJlIGlzIGEgcGxhaW4gcHJpbnRrIHdpdGggYW4KPj4+PiBvbWl0 dGVkIGxvZyBsZXZlbC4gT3IgZG8geW91IG1lYW4gdG8gcmVtb3ZlIFhFTkxPR19JTkZPIGZyb20g dGhpcyBwcmludGsgYWJvdmUKPj4+PiBvciwgaW5zdGVhZCBhZGQgWEVOTE9HX0lORk8gdG8gb25l IHByaW50ayBhdCB0aGUgZW5kIG9mIAo+Pj4+IGluaXRfcGxhdGZvcm1fdGltZXIoKSA/Cj4+Pgo+ Pj4gV2VsbCwgaW5mbyB3b3VsZCBhZ2FpbiBiZSB0b28gbG93IGEgbGV2ZWwgZm9yIG15IHRhc3Rl LiBIZW5jZSBlaXRoZXIKPj4+IHJlbW92ZSB0aGUgbGV2ZWwgaGVyZSAoc2xpZ2h0bHkgcHJlZmVy cmVkIGZyb20gbXkgcG92KSwgb3IgbWFrZSBib3RoCj4+PiB3YXJuaW5nLgo+PiBBcyB5b3VyIHBy ZWZlcmVuY2UgZ29lcyB0b3dhcmRzIHdpdGhvdXQgdGhlIGxvZyBsZXZlbCwgSSB3aWxsIHJlLWlu dHJvZHVjZSBiYWNrCj4+IHdpdGhvdXQgaXQuIEFsdGhvdWdoIEkgd291bGQgZmluZCBjbGVhcmVy IHRvIHVzZSBwcmludGsgd2l0aCBhIGxvZyBsZXZlbCBhcyBpdAo+PiB3YXMgYWR2aXNlZCBpbiBl YXJsaWVyIHJldmlld3MuCj4+Cj4+IE5COiBNeSBzdWdnZXN0aW9uIG9mIGluZm8gYXMgbGV2ZWwg aXMgYmVjYXVzZSBteSB1c3VhbCBsaW5lIG9mIHRob3VnaHQgaXMgdG8gc2VlCj4+IHdhcm5pbmcg YXMgc29tZXRoaW5nIHBvdGVudGlhbGx5IGVycm9uZW91cyB0aGF0IHVzZXIgc2hvdWxkIGJlIHdh cm5lZCBhYm91dCwgYW5kCj4+IGVycm9yIGFzIGJlaW5nIGFuIGFjdHVhbCBlcnJvci4KPiAKPiBJ IHVuZGVyc3RhbmQgYW5kIG1vc3RseSBhZ3JlZS4gVGhlcmUgYXJlIGEgZmV3IGNhc2VzIHRob3Vn aCAoYW5kCj4gd2UncmUgZGVhbGluZyB3aXRoIG9uZSBoZXJlIGltbykgd2hlcmUgdGhlIGFic2Vu Y2Ugb2YgYSBsb2cgbGV2ZWwgaXMKPiBiZXR0ZXI6IFdlIHdhbnQgdGhlc2UgbWVzc2FnZXMgcHJl c2VudCBpbiB0aGUgbG9nIGJ5IGRlZmF1bHQgKHdoaWNoCj4gdGhleSB3b3VsZG4ndCBiZSBpZiB0 aGV5IHdlcmUgaW5mbyksIGJ1dCB0aGV5J3JlIGFsc28gbm90IHJlYWxseQo+IHdhcm5pbmdzLiBQ ZXJoYXBzIHNpbXBseSBmb3IgZG9jdW1lbnRhdGlvbiBwdXJwb3NlcyB3ZSBjb3VsZCBhZGQKPiBY RU5MT0dfREVGQVVMVCAoZXhwYW5kaW5nIHRvIGFuIGVtcHR5IHN0cmluZyksIGJ1dCB0aGF0J3Mg bm90Cj4gc29tZXRoaW5nIHRvIGJlIGRvbmUgaW4gdGhpcyBwYXRjaC4KSSBzZWUsIHRoYW5rcyBm b3IgdGhlIGNsYXJpZmljYXRpb24uCgpKb2FvCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK