From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Wu, Feng" Subject: Re: Ideas Re: [PATCH v14 1/2] vmx: VT-d posted-interrupt core logic handling Date: Wed, 9 Mar 2016 12:06:32 +0000 Message-ID: References: <1456714816-3876-1-git-send-email-feng.wu@intel.com> <1456714816-3876-2-git-send-email-feng.wu@intel.com> <20160304220031.GA28111@char.us.oracle.com> <20160307155304.GD5402@localhost.localdomain> <56DEBF4B.7060606@citrix.com> <56DF00D902000078000DA7C1@prv-mh.provo.novell.com> <56DF066B.3090106@citrix.com> <56E00825.4000605@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <56E00825.4000605@citrix.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: George Dunlap , Jan Beulich , George Dunlap Cc: "Tian, Kevin" , Keir Fraser , Andrew Cooper , Dario Faggioli , "xen-devel@lists.xen.org" , "Wu, Feng" List-Id: xen-devel@lists.xenproject.org Cgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogR2VvcmdlIER1bmxhcCBbbWFp bHRvOmdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbV0KPiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDks IDIwMTYgNzoyNSBQTQo+IFRvOiBXdSwgRmVuZyA8ZmVuZy53dUBpbnRlbC5jb20+OyBKYW4gQmV1 bGljaCA8SkJldWxpY2hAc3VzZS5jb20+OyBHZW9yZ2UKPiBEdW5sYXAgPEdlb3JnZS5EdW5sYXBA ZXUuY2l0cml4LmNvbT4KPiBDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT47IERhcmlvIEZhZ2dpb2xpCj4gPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+OyBUaWFu LCBLZXZpbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+OyB4ZW4tCj4gZGV2ZWxAbGlzdHMueGVuLm9y ZzsgS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPjsgS2Vpcgo+ IEZyYXNlciA8a2VpckB4ZW4ub3JnPgo+IFN1YmplY3Q6IFJlOiBbWGVuLWRldmVsXSBJZGVhcyBS ZTogW1BBVENIIHYxNCAxLzJdIHZteDogVlQtZCBwb3N0ZWQtaW50ZXJydXB0Cj4gY29yZSBsb2dp YyBoYW5kbGluZwo+IAo+IE9uIDA5LzAzLzE2IDA1OjIyLCBXdSwgRmVuZyB3cm90ZToKPiA+Cj4g Pgo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4gRnJvbTogR2VvcmdlIER1bmxh cCBbbWFpbHRvOmdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbV0KPiA+PiBTZW50OiBXZWRuZXNkYXks IE1hcmNoIDksIDIwMTYgMTowNiBBTQo+ID4+IFRvOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3Vz ZS5jb20+OyBHZW9yZ2UgRHVubGFwCj4gPj4gPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT47 IFd1LCBGZW5nIDxmZW5nLnd1QGludGVsLmNvbT4KPiA+PiBDYzogQW5kcmV3IENvb3BlciA8YW5k cmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IERhcmlvIEZhZ2dpb2xpCj4gPj4gPGRhcmlvLmZhZ2dp b2xpQGNpdHJpeC5jb20+OyBUaWFuLCBLZXZpbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+OyB4ZW4t Cj4gPj4gZGV2ZWxAbGlzdHMueGVuLm9yZzsgS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQu d2lsa0BvcmFjbGUuY29tPjsgS2Vpcgo+ID4+IEZyYXNlciA8a2VpckB4ZW4ub3JnPgo+ID4+IFN1 YmplY3Q6IFJlOiBbWGVuLWRldmVsXSBJZGVhcyBSZTogW1BBVENIIHYxNCAxLzJdIHZteDogVlQt ZCBwb3N0ZWQtCj4gaW50ZXJydXB0Cj4gPj4gY29yZSBsb2dpYyBoYW5kbGluZwo+ID4+Cj4gPj4g T24gMDgvMDMvMTYgMTU6NDIsIEphbiBCZXVsaWNoIHdyb3RlOgo+ID4+Pj4+PiBPbiAwOC4wMy4x NiBhdCAxNTo0MiwgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4gd3JvdGU6Cj4gPj4+PiBP biBUdWUsIE1hciA4LCAyMDE2IGF0IDE6MTAgUE0sIFd1LCBGZW5nIDxmZW5nLnd1QGludGVsLmNv bT4gd3JvdGU6Cj4gPj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4+Pj4+IEZy b206IEdlb3JnZSBEdW5sYXAgW21haWx0bzpnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb21dCj4gPj4+ PiBbc25pcF0KPiA+Pj4+Pj4gSXQgc2VlbXMgbGlrZSB0aGVyZSBhcmUgYSBjb3VwbGUgb2Ygd2F5 cyB3ZSBjb3VsZCBhcHByb2FjaCB0aGlzOgo+ID4+Pj4+Pgo+ID4+Pj4+PiAxLiBUcnkgdG8gb3B0 aW1pemUgdGhlIHJldmVyc2UgbG9vay11cCBjb2RlIHNvIHRoYXQgaXQncyBub3QgYSBsaW5lYXIK PiA+Pj4+Pj4gbGlua2VkIGxpc3QgKGdldHRpbmcgcmlkIG9mIHRoZSB0aGVvcmV0aWNhbCBmZWFy KQo+ID4+Pj4+Cj4gPj4+Pj4gR29vZCBwb2ludC4KPiA+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+PiAy LiBUcnkgdG8gdGVzdCBlbmdpbmVlcmVkIHNpdHVhdGlvbnMgd2hlcmUgd2UgZXhwZWN0IHRoaXMg dG8gYmUgYQo+ID4+Pj4+PiBwcm9ibGVtLCB0byBzZWUgaG93IGJpZyBvZiBhIHByb2JsZW0gaXQg aXMgKHByb3ZpbmcgdGhlIHRoZW9yeSB0byBiZQo+ID4+Pj4+PiBhY2N1cmF0ZSBvciBpbmFjY3Vy YXRlIGluIHRoaXMgY2FzZSkKPiA+Pj4+Pgo+ID4+Pj4+IE1heWJlIHdlIGNhbiBydW4gYSBTTVAg Z3Vlc3Qgd2l0aCBhbGwgdGhlIHZjcHVzIHBpbm5lZCB0byBhIGRlZGljYXRlZAo+ID4+Pj4+IHBD UFUsIHdlIGNhbiBydW4gc29tZSBiZW5jaG1hcmsgaW4gdGhlIGd1ZXN0IHdpdGggVlQtZCBQSSBh bmQgd2l0aG91dAo+ID4+Pj4+IFZULWQgUEksIHRoZW4gc2VlIHRoZSBwZXJmb3JtYW5jZSBkaWZm ZXJlbmNlIGJldHdlZW4gdGhlc2UgdHdvCj4gc2NlYW5yaW9zLgo+ID4+Pj4KPiA+Pj4+IFRoaXMg d291bGQgZ2l2ZSB1cyBhbiBpZGVhIHdoYXQgdGhlIHdvcnN0LWNhc2Ugc2NlbmFyaW8gd291bGQg YmUuCj4gPj4+Cj4gPj4+IEhvdyB3b3VsZCBhIHNpbmdsZSBWTSBldmVyIGdpdmUgdXMgYW4gaWRl YSBhYm91dCB0aGUgd29yc3QKPiA+Pj4gY2FzZT8gU29tZXRoaW5nIGdldHRpbmcgY2xvc2UgdG8g d29yc3QgY2FzZSBpcyBhIHRvbiBvZiBzaW5nbGUKPiA+Pj4gdkNQVSBndWVzdHMgYWxsIHRlbXBv cmFyaWx5IHBpbm5lZCB0byBvbmUgYW5kIHRoZSBzYW1lIHBDUFUKPiA+Pj4gKGNvdWxkIGJlIG11 bHRpLXZDUFUgb25lcywgYnV0IHRoZSBtb3JlIHZDUFUtcyB0aGUgbW9yZQo+ID4+PiBhcnRpZmlj aWFsIHRoaXMgcGlubmluZyB3b3VsZCBiZWNvbWUpIHJpZ2h0IGJlZm9yZSB0aGV5IGdvIGludG8K PiA+Pj4gYmxvY2tlZCBzdGF0ZSAoaS5lLiB0aHJvdWdoIG9uZSBvZiB0aGUgdHdvIGNhbGxlcnMg b2YKPiA+Pj4gYXJjaF92Y3B1X2Jsb2NrKCkpLCB0aGUgcGlubmluZyByZW1vdmVkIHdoaWxlIGJs b2NrZWQsIGFuZAo+ID4+PiB0aGVuIGFsbCBnZXR0aW5nIHdva2VuIGF0IG9uY2UuCj4gPj4KPiA+ PiBXaHkgd291bGQgcmVtb3ZpbmcgdGhlIHBpbm5pbmcgYmUgaW1wb3J0YW50Pwo+ID4+Cj4gPj4g QW5kIEkgZ3Vlc3MgaXQncyBhY3R1YWxseSB0aGUgY2FzZSB0aGF0IGl0IGRvZXNuJ3QgbmVlZCBh bGwgVk1zIHRvCj4gPj4gYWN0dWFsbHkgYmUgKnJlY2VpdmluZyogaW50ZXJydXB0czsgaXQganVz dCByZXF1aXJlcyB0aGVtIHRvIGJlCj4gPj4gKmNhcGFibGUqIG9mIHJlY2VpdmluZyBpbnRlcnJ1 cHRzLCBmb3IgdGhlcmUgdG8gYmUgYSBsb25nIGNoYWluIGFsbAo+ID4+IGJsb2NrZWQgb24gdGhl IHNhbWUgcGh5c2ljYWwgY3B1Lgo+ID4+Cj4gPj4+Cj4gPj4+PiAgQnV0Cj4gPj4+PiBwaW5uaW5n IGFsbCB2Y3B1cyB0byBhIHNpbmdsZSBwY3B1IGlzbid0IHJlYWxseSBhIHNlbnNpYmxlIHVzZSBj YXNlIHdlCj4gPj4+PiB3YW50IHRvIHN1cHBvcnQgLS0gaWYgeW91IGhhdmUgdG8gZG8gc29tZXRo aW5nIHN0dXBpZCB0byBnZXQgYQo+ID4+Pj4gcGVyZm9ybWFuY2UgcmVncmVzc2lvbiwgdGhlbiBJ IGFzIGZhciBhcyBJJ20gY29uY2VybmVkIGl0J3Mgbm90IGEKPiA+Pj4+IHByb2JsZW0uCj4gPj4+ Pgo+ID4+Pj4gT3IgdG8gcHV0IGl0IGEgZGlmZmVyZW50IHdheTogSWYgd2UgcGluIDEwIHZjcHVz IHRvIGEgc2luZ2xlIHBjcHUgYW5kCj4gPj4+PiB0aGVuIHBvdW5kIHRoZW0gYWxsIHdpdGggcG9z dGVkIGludGVycnVwdHMsIGFuZCB0aGVyZSBpcyAqbm8qCj4gPj4+PiBzaWduaWZpY2FudCBwZXJm b3JtYW5jZSByZWdyZXNzaW9uLCB0aGVuIHRoYXQgd2lsbCBjb25jbHVzaXZlbHkgcHJvdmUKPiA+ Pj4+IHRoYXQgdGhlIHRoZW9yZXRpY2FsIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gaXMgb2Ygbm8g Y29uY2VybiwgYW5kIHdlCj4gPj4+PiBjYW4gZW5hYmxlIFBJIGJ5IGRlZmF1bHQuCj4gPj4+Cj4g Pj4+IFRoZSBwb2ludCBpc24ndCB0aGUgcGlubmluZy4gVGhlIHBvaW50IGlzIHdoYXQgcENQVSB0 aGV5J3JlIG9uIHdoZW4KPiA+Pj4gZ29pbmcgdG8gc2xlZXAuIEFuZCB0aGF0IGNvdWxkIGludm9s dmUgcXVpdGUgYSBmZXcgbW9yZSB0aGFuIGp1c3QKPiA+Pj4gMTAgdkNQVS1zLCBwcm92aWRlZCB0 aGV5IGFsbCBzbGVlcCBsb25nIGVub3VnaC4KPiA+Pj4KPiA+Pj4gQW5kIHRoZSAidGhlb3JldGlj YWwgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBpcyBvZiBubyBjb25jZXJuIiBpcwo+ID4+PiBhbHNv IG5vdCBhIHByb3BlciB3YXkgb2YgbG9va2luZyBhdCBpdCwgSSB3b3VsZCBzYXk6IEV2ZW4gaWYg c3VjaAo+ID4+PiBhIHNpdHVhdGlvbiB3b3VsZCBoYXBwZW4gZXh0cmVtZWx5IHJhcmVseSwgaWYg aXQgY2FuIGhhcHBlbiBhdCBhbGwsCj4gPj4+IGl0IHdvdWxkIHN0aWxsIGJlIGEgc2VjdXJpdHkg aXNzdWUuCj4gPj4KPiA+PiBXaGF0IEknbSB0cnlpbmcgdG8gZ2V0IGF0IGlzIC0tIGV4YWN0bHkg d2hhdCBzaXR1YXRpb24/ICBXaGF0IGFjdHVhbGx5Cj4gPj4gY29uc3RpdHV0ZXMgYSBwcm9ibGVt YXRpYyBpbnRlcnJ1cHQgbGF0ZW5jeSAvIGludGVycnVwdCBwcm9jZXNzaW5nCj4gPj4gd29ya2xv YWQsIGhvdyBtYW55IHZjcHVzIG11c3QgYmUgc2xlZXBpbmcgb24gdGhlIHNhbWUgcGNwdSB0byBh Y3R1YWxseQo+ID4+IHJpc2sgdHJpZ2dlcmluZyB0aGF0IGxhdGVuY3kgLyB3b3JrbG9hZCwgYW5k IGhvdyBmZWFzaWJsZSBpcyBpdCB0aGF0Cj4gPj4gc3VjaCBhIHNpdHVhdGlvbiB3b3VsZCBhcmlz ZSBpbiBhIHJlYXNvbmFibGUgc2NlbmFyaW8/Cj4gPj4KPiA+PiBJZiAyMDB1cyBpcyB0b28gbG9u ZywgYW5kIGl0IG9ubHkgdGFrZXMgMyBzbGVlcGluZyB2Y3B1cyB0byBnZXQgdGhlcmUsCj4gPj4g dGhlbiB5ZXMsIHRoZXJlIGlzIGEgZ2VudWluZSBwcm9ibGVtIHdlIG5lZWQgdG8gdHJ5IHRvIGFk ZHJlc3MgYmVmb3JlIHdlCj4gPj4gdHVybiBpdCBvbiBieSBkZWZhdWx0LiAgSWYgd2Ugc2F5IHRo YXQgdXAgdG8gNTAwdXMgaXMgdG9sZXJhYmxlLCBhbmQgaXQKPiA+PiB0YWtlcyAxMDAgc2xlZXBp bmcgdmNwdXMgdG8gcmVhY2ggdGhhdCBsYXRlbmN5LCB0aGVuIHRoaXMgaXMgc29tZXRoaW5nIEkK PiA+PiBkb24ndCByZWFsbHkgdGhpbmsgd2UgbmVlZCB0byB3b3JyeSBhYm91dC4KPiA+Pgo+ID4+ ICJJIHRoaW5rIHNvbWV0aGluZyBiYWQgbWF5IGhhcHBlbiIgaXMgYSByZWFsbHkgZGlmZmljdWx0 IHRvIHdvcmsgd2l0aC4KPiA+PiAiSSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IGV2ZW4gYSBoaWdo IG51bWJlciBvZiBibG9ja2VkIGNwdXMgd29uJ3QgY2F1c2UKPiA+PiB0aGUgaW50ZXJydXB0IGxh dGVuY3kgdG8gZXhjZWVkIDUwMHVzOyBhbmQgSSB3YW50IGl0IHRvIGJlIGJhc2ljYWxseQo+ID4+ IGltcG9zc2libGUgZm9yIHRoZSBpbnRlcnJ1cHQgbGF0ZW5jeSB0byBleGNlZWQgNW1zIHVuZGVy IGFueQo+ID4+IGNpcmN1bXN0YW5jZXMiIGlzIGEgY29uY3JldGUgdGFyZ2V0IHNvbWVvbmUgY2Fu IGVpdGhlciBkZW1vbnN0cmF0ZSB0aGF0Cj4gPj4gdGhleSBtZWV0LCBvciBhaW0gZm9yIHdoZW4g dHJ5aW5nIHRvIGltcHJvdmUgdGhlIHNpdHVhdGlvbi4KPiA+Pgo+ID4+IEZlbmc6IEl0IHNob3Vs ZCBiZSBwcmV0dHkgZWFzeSBmb3IgeW91IHRvOgo+ID4KPiA+IEdlb3JnZSwgdGhhbmtzIGEgbG90 IGZvciB5b3UgdG8gcG9pbnRpbmcgdGhlIHBvc3NpYmxlIHdheSB0byBtb3ZlIGZvcndhcmQuCj4g Pgo+ID4+ICogSW1wbGVtZW50IGEgbW9kaWZpZWQgdmVyc2lvbiBvZiBYZW4gd2hlcmUKPiA+PiAg LSAqQWxsKiB2Y3B1cyBnZXQgcHV0IG9uIHRoZSB3YWl0cXVldWUKPiA+Cj4gPiBTbyB0aGlzIG1l YW5zLCBhbGwgdGhlIHZjcHVzIGFyZSBibG9ja2VkLCBhbmQgaGVuY2Ugd2FpdGluZyBpbiB0aGUK PiA+IGJsb2NraW5nIGxpc3QsIHJpZ2h0Pwo+IAo+IE5vLgo+IAo+IEZvciB0ZXN0aW5nIHB1cnBv c2VzLCB3ZSBuZWVkIGEgbG90IG9mIHZjcHVzIG9uIHRoZSBsaXN0LCBidXQgd2Ugb25seQo+IG5l ZWQgb25lIHZjcHUgdG8gYWN0dWFsbHkgYmUgd29rZW4gdXAgdG8gc2VlIGxvdyBsb25nIGl0IHRh a2VzIHRvCj4gdHJhdmVyc2UgdGhlIGxpc3QuCj4gCj4gQXQgdGhlIG1vbWVudCwgYSB2Y3B1IHdp bGwgb25seSBiZSBwdXQgb24gdGhlIGxpc3QgaWYgaXQgaGFzIHRoZQo+IGFyY2hfYmxvY2sgY2Fs bGJhY2sgZGVmaW5lZDsgYW5kIGl0IHdpbGwgaGF2ZSB0aGUgYXJjaF9ibG9jayBjYWxsYmFjawo+ IGRlZmluZWQgb25seSBpZiB0aGUgZG9tYWluIGl0J3MgYSBwYXJ0IG9mIGhhcyBhIGRldmljZSBh c3NpZ25lZCB0byBpdC4KPiBCdXQgaXQgd291bGQgYmUgZWFzeSBlbm91Z2ggdG8gbWFrZSBpdCBz byB0aGF0ICphbGwqIFZNcyBoYXZlIHRoZQo+IGFyY2hfYmxvY2sgY2FsbGJhY2sgZGVmaW5lZDsg dGhlbiBhbGwgdmNwdXMgd291bGQgZW5kIHVwIG9uIHRoZQo+IHBpX2Jsb2NrZWQgbGlzdCB3aGVu IHRoZXkncmUgYmxvY2tlZCwgZXZlbiBpZiB0aGV5IGRvbid0IGhhdmUgYSBkZXZpY2UKPiBhc3Np Z25lZC4KPiAKPiBUaGF0IHdheSB5b3UgY291bGQgaGF2ZSBhIHJlYWxseSBsb25nIHBpX2Jsb2Nr ZWQgbGlzdCB3aGlsZSBvbmx5IG5lZWRpbmcKPiBhIHNpbmdsZSBkZXZpY2UgdG8gcGFzcyB0aHJv dWdoIHRvIHRoZSBndWVzdC4KPiAKPiA+PiAgLSBNZWFzdXJlIGhvdyBsb25nIGl0IHRvb2sgdG8g cnVuIHRoZSBsb29wIGluIHBpX3dha2V1cF9pbnRlcnJ1cHQKPiA+PiAqIEhhdmUgb25lIFZNIHJl Y2VpdmluZyBwb3N0ZWQgaW50ZXJydXB0cyBvbiBhIHJlZ3VsYXIgYmFzaXMuCj4gPj4gKiBTbG93 bHkgaW5jcmVhc2UgdGhlIG51bWJlciBvZiB2Y3B1cyBibG9ja2VkIG9uIGEgc2luZ2xlIGNwdSAo ZS5nLiwgYnkKPiA+PiBjcmVhdGluZyBtb3JlIGd1ZXN0cyksIHN0b3BwaW5nIHdoZW4geW91IGVp dGhlciByZWFjaCA1MDB1cyBvciA1MDAKPiA+PiB2Y3B1cy4gOi0pCj4gPgo+ID4gVGhpcyBtYXkg ZGVwZW5kcyBvbiB0aGUgZW52aXJvbm1lbnQsIEkgd2FzIHVzaW5nIGEgMTBHIE5JQyB0byBkbyB0 aGUKPiA+IHRlc3QsIGlmIHdlIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgZ3Vlc3RzLCBJIG5lZWQg bW9yZSBOSUNzIHRvIGdldCBhc3NpZ25lZAo+ID4gdG8gdGhlIGd1ZXN0cywgSSB3aWxsIHNlZSBp ZiBJIGNhbiBnZXQgdGhlbS4KPiAKPiAuLi53aGljaCBpcyB3aHkgSSBzdWdnZXN0ZWQgc2V0dGlu ZyB0aGUgYXJjaF9ibG9jaygpIGNhbGxiYWNrIGZvciBhbGwKPiBkb21haW5zLCBldmVuIHRob3Nl IHdoaWNoIGRvbid0IGhhdmUgZGV2aWNlcyBhc3NpZ25lZCwgc28gdGhhdCB5b3UgY291bGQKPiBn ZXQgYXdheSB3aXRoIGEgc2luZ2xlIHBhc3NlZC10aHJvdWdoIGRldmljZS4gOi0pCgpPaCwgSSd2 ZSBnb3QgeW91ciBwb2ludCwgdGhhbmtzIGEgbG90IGZvciB0aGUgc3VnZ2VzdGlvbiEgV2lsbCB0 cnkgdG8gZ2V0IHRoZQpkYXRhIHNvb24uIDopCgpUaGFua3MsCkZlbmcKCj4gCj4gIC1HZW9yZ2UK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=