From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v15] This is the ABI for the two halves of a para-virtualized sound driver to communicate with each to other. Date: Fri, 27 Jan 2017 11:36:09 -0500 Message-ID: <20170127163609.GV1250@char.us.oracle.com> References: <1480943129-20524-1-git-send-email-andr2000@gmail.com> <1480943129-20524-2-git-send-email-andr2000@gmail.com> <20170124191352.GA20813@char.us.oracle.com> <20170127151433.GC1250@char.us.oracle.com> <028a91b8-76ba-0a9a-5c9c-e739e4852d9e@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <028a91b8-76ba-0a9a-5c9c-e739e4852d9e@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Oleksandr Andrushchenko Cc: lars.kurth@citrix.com, iurii.konovalenko@globallogic.com, vlad.babchuk@gmail.com, ian.jackson@eu.citrix.com, dario.faggioli@citrix.com, tim@xen.org, julien.grall@arm.com, andrii.anisov@gmail.com, olekstysh@gmail.com, embedded-pv-devel@lists.xenproject.org, al1img@gmail.com, david.vrabel@citrix.com, JBeulich@suse.com, xen-devel@lists.xenproject.org, oleksandr.dmytryshyn@globallogic.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBKYW4gMjcsIDIwMTcgYXQgMDU6NTA6MzZQTSArMDIwMCwgT2xla3NhbmRyIEFuZHJ1 c2hjaGVua28gd3JvdGU6Cj4gdGhhbmsgeW91IGZvciBjb21tZW50cywgcGxlYXNlIGZpbmQgYW5z d2VycyBiZWxvdwo+IAo+IENhbiB3ZSBwbGVhc2Ugc3dpdGNoIHRvIHYxNiBkaXNjdXNzaW9uIGFz IHYxNSB2cyB2MTYgaXMKPiBhIGJpZyBjaGFuZ2U/Cgo8c2hydWdzPgoKVGhpcyBjaGFubmVsIHNl ZW1lZCBhcHByb3BpYXRlIHRvIGhhc2ggdGhpcyBvdXQuIEkgd2lsbApsb29rIGF0IHYxNiBuZXh0 IHdlZWsgKG91dCBvZiB0aW1lIGZvciByZXZpZXdzIGZvciB0b2RheSkuCgpTZWUgYmVsb3cuCj4g Cj4gT24gMDEvMjcvMjAxNyAwNToxNCBQTSwgS29ucmFkIFJ6ZXN6dXRlayBXaWxrIHdyb3RlOgo+ ID4gT24gVGh1LCBKYW4gMjYsIDIwMTcgYXQgMTI6MDI6NDlQTSArMDIwMCwgT2xla3NhbmRyIEFu ZHJ1c2hjaGVua28gd3JvdGU6Cj4gPiA+IEhpLCBLb25yYWQhCj4gPiA+IAo+ID4gPiBGaXJzdCBv ZiBhbGwgdGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgdGhlIHZhbHVhYmxlIGNvbW1lbnRzCj4gPiA+ IAo+ID4gPiBhbmQgeW91ciB0aW1lIQo+ID4gPiAKPiA+ID4gVGhlIG51bWJlciBvZiBjaGFuZ2Vz IChtb3N0bHkgaW4gZGVzY3JpcHRpb24pIGlzIGdvaW5nIHRvCj4gPiA+IAo+ID4gPiBiZSBodWdl LCBzbyBkbyB5b3UgdGhpbmsgSSBjYW4gcHVibGlzaCBzb21ldGhpbmcgbGlrZQo+ID4gPiAKPiA+ ID4gIlJGQyB2MTYiIHNvIHdlIGNhbiBkaXNjdXNzIHRoZSB1cGRhdGVkIHBhdGNoPwo+ID4gUkZD IHNhZGx5IG1lYW5zIGZvbGtzIGFyZSBnb2luZyB0byBtb3N0bHkgaWdub3JlIGl0Lgo+ID4gSSB3 b3VsZCBwcmVmZXIgeW91IGRpZCBub3QgdXNlIFJGQyBhdCB0aGlzIHN0YWdlIGJ1dCBqdXN0Cj4g PiBkaWQgdjE2Lgo+ID4gLi5zbmlwLi4KPiBzdXJlCj4gPiA+ID4gPiArICogRXhhbXBsZSBmb3Ig dGhlIGZyb250ZW5kIHJ1bm5pbmcgaW4gZG9tYWluIDUsIGluc3RhbmNlIG9mIHRoZSBkcml2ZXIK PiA+ID4gPiA+ICsgKiBpbiB0aGUgZnJvbnQgaXMgMCAoc2luZ2xlIG9yIGZpcnN0IFBWIGRyaXZl ciksIGRldmljZSBpZCAyLAo+ID4gPiA+ID4gKyAqIGZpcnN0IHN0cmVhbSAoMCk6Cj4gPiA+ID4g PiArICogL2xvY2FsL2RvbWFpbi88ZnJvbnRlbmRfaWQ+L2RldmljZS92c25kLzxkcnZfaWR4Pi8K PiA+ID4gPiA+ICsgKiAgICAgICAgIGRldmljZS88ZGV2X2lkPi9zdHJlYW0vPHN0cmVhbV9pZHg+ L3R5cGUgPSAicCIKPiA+ID4gPiA+ICsgKiAvbG9jYWwvZG9tYWluLzUvZGV2aWNlL3ZzbmQvMC9k ZXZpY2UvMi9zdHJlYW0vMC90eXBlID0gInAiCj4gPiA+ID4gV2h5IGRvIHlvdSBuZWVkICdkZXZp Y2UnID8KPiA+ID4ganVzdCBmb3IgY2xhcml0eTogdGhlIGhpZXJhcmNoeSBvZiB0aGUgc291bmQg ZHJpdmVyIHdvdWxkCj4gPiA+IGJlIHRoYXQgYSBkZXZpY2UgbWF5IGhhdmUgbXVsdGlwbGUgZGlm ZmVyZW50IHN0cmVhbXMuCj4gPiBBbmQgaXQganVzdCBvY2N1cmVkIHRvIG1lIHRoYXQgeW91IGNv dWxkIGFsc28gaW1wbHkgdGhhdAo+ID4gZWFjaCBkZXZpY2UgaGFzIGFuIHN0cmVhbSB3aXRob3V0 IHRoZSAnc3RyZWFtJyBpbiBpdC4KPiA+IAo+ID4gU28KPiA+IAo+ID4gL2xvY2FsL2RvbWFpbi81 L2RldmljZS92c25kLzAvMi8wL3R5cGUgPSAicCIKPiA+IAo+ID4gQW5kIHRoZSBmb3JtYXQgaXM6 Cj4gPiAvbG9jYWwvZG9tYWluLzxmcm9udC1pZD4vZGV2aWNlL3ZzbmQvPGluc3RhbmNlIG9mIFBW IGRyaXZlcj4vPGRldmljZS1pZD4vPHN0cmVhbS1pZD4KPiBvaywgc28gd2UnbGwgZW5kIHVwIHdp dGggc29tZXRoaW5nIGxpa2U6Cj4gCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IEJhY2tlbmQKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IAo+IC9sb2Nh bC9kb21haW4vMC9iYWNrZW5kL3ZzbmQvMS8wL2Zyb250ZW5kLWlkID0gIjEiCj4gL2xvY2FsL2Rv bWFpbi8wL2JhY2tlbmQvdnNuZC8xLzAvZnJvbnRlbmQgPSAiL2xvY2FsL2RvbWFpbi8xL2Rldmlj ZS92c25kLzAiCj4gL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdnNuZC8xLzAvc3RhdGUgPSAiNCIK PiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92c25kLzEvMC92ZXJzaW9ucyA9ICIxLDIiCgoKPG5v ZHM+Cj4gCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FyZCAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4gCj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvdmVyc2lv biA9ICIxIgo+IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL3Nob3J0LW5hbWUgPSAiQ2Fy ZCBzaG9ydCBuYW1lIgo+IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL2xvbmctbmFtZSA9 ICJDYXJkIGxvbmcgbmFtZSIKPiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9zYW1wbGUt cmF0ZXMgPSAiODAwMCwzMjAwMCw0NDEwMCw0ODAwMCw5NjAwMCIKPiAvbG9jYWwvZG9tYWluLzEv ZGV2aWNlL3ZzbmQvMC9zYW1wbGUtZm9ybWF0cyA9ICJzOCx1OCxzMTZfbGUsczE2X2JlIgo+IC9s b2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL2J1ZmZlci1zaXplID0gIjI2MjE0NCIKCjxub2Rz Pgo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBDTSBkZXZpY2UgMCAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAv MC9uYW1lID0gIkdlbmVyYWwgYW5hbG9nIgo+IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8w LzAvY2hhbm5lbHMtbWF4ID0gIjUiCgo8bm9kcz4KPiAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSBTdHJlYW0gMCwgcGxheWJhY2sKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4gCj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8wL3R5cGUgPSAicCIKPiAvbG9j YWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzAvc2FtcGxlLWZvcm1hdHMgPSAiczgsdTgiCj4g L2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8wL3VuaXF1ZS1pZCA9ICIwIgo+IC9sb2Nh bC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMC9yaW5nLXJlZiA9ICIzODYiCj4gL2xvY2FsL2Rv bWFpbi8xL2RldmljZS92c25kLzAvMC8wL2V2ZW50LWNoYW5uZWwgPSAiMTUiCgo8bm9kcz4KPiAK PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBDTSBkZXZpY2UgMwo+IC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25k LzAvMy9uYW1lID0gIkhETUktMCIKPiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8zL3Nh bXBsZS1yYXRlcyA9ICI4MDAwLDMyMDAwLDQ0MTAwIgoKPG5vZHM+Cj4gCj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSAwLCBjYXB0dXJlCj4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+IAo+IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzMvMC90eXBlID0g ImMiCj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMy8wL3VuaXF1ZS1pZCA9ICIyIgo+ IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzMvMC9yaW5nLXJlZiA9ICIzODciCj4gL2xv Y2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMy8wL2V2ZW50LWNoYW5uZWwgPSAiMTUxIgo+IAo+ IElzIHRoaXMgd2hhdCB5b3Ugd291bGQgbGlrZSB0byBzZWU/CgpZZXMuCj4gSU1PLCBhbGwgdGhl c2UgdmFsdWVzIGRvIG5vdCBoZWxwIHVuZGVyc3RhbmRpbmcgd2hhdCBpdCBpcywgZS5nLgo+IHRo aXMgaXMgZXF1YWwgdG8gbWUgaWYgd2UgaGF2ZQo+IAo+IC9sb2NhbC9kb21haW4vMS9kZXZpY2Uv dmJkLzUxNzEyL3F1ZXVlLTAvcmluZy1yZWYgPSAiOCIKPiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl L3ZiZC81MTcxMi9xdWV1ZS0wL2V2ZW50LWNoYW5uZWwgPSAiMyIKPiAvbG9jYWwvZG9tYWluLzEv ZGV2aWNlL3ZiZC81MTcxMi9xdWV1ZS0xID0gIiIKPiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3Zi ZC81MTcxMi9xdWV1ZS0xL3JpbmctcmVmID0gIjkiCj4gCj4gYW5kIHRoZW4gZGVjaWRlZCB0byBn byB3aXRoCj4gCj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvNTE3MTIvMC9yaW5nLXJlZiA9 ICI4Igo+IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzUxNzEyLzAvZXZlbnQtY2hhbm5lbCA9 ICIzIgo+IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzUxNzEyLzEvcmluZy1yZWYgPSAiOSIK PiAKPiBDYW4gb25lIGVhc2lseSB0ZWxsIHdoYXQgMCBvciAxIGFmdGVyICI1MTcxMi8iIGlzPwoK SSBkby4gQnV0IG1heWJlIG15IGJyYWluIGhhcyBiZWVuIHN3aW1taW5nIGluIHRoaXMgdG9vIG11 Y2g/Cgo+IAo+IFNvLCB3aGF0IGlzIHRoZSBmaW5hbCBkZWNpc2lvbiB0aGVuPwoKPiAKPiA+IFRo b3VnaCBJIGhhdmUgYSBsaXR0bGUgb2YgdHJvdWJsZSB3aXRoIHRoZSAnaW5zdGFuY2Ugb2YgdGhl Cj4gPiBkcml2ZXInLiBBcmUgeW91IHN1Z2dlc3RpbmcgeW91IHdvdWxkIGhhdmUgbXVsdGlwbGUK PiA+IFBWIGRyaXZlcnMgb2YgJ3ZzbmQnPyBDYW4ndCB0aGUgbXVsdGlwbGUgZGV2aWNlIGlkcyBm dWxmaWxsIHRoaXM/Cj4gaXQgaXMgcG9zc2libGUsIGJ1dCB0aGUgbWFpbiB1c2UtY2FzZSB3aWxs IGhhdmUgYSBzaW5nbGUKPiBQViBkcml2ZXIgd2l0aCBtdWx0aXBsZSBQQ00gZGV2aWNlcy9zdHJl YW1zCgpPSywgc28gbm8gbmVlZCBmb3IgdGhpcyB0aGVuLgouLiBzbmlwLi4KPiA+ID4gPiA+ICsg KiBvcGVyYXRpb24gLSBYRU5TTkRfT1BfU0VUX1ZPTFVNRSBmb3Igdm9sdW1lIHNldAo+ID4gPiA+ ID4gKyAqICAgb3IgWEVOU05EX09QX0dFVF9WT0xVTUUgZm9yIHZvbHVtZSBnZXQKPiA+ID4gPiA+ ICsgKiBCdWZmZXIgcGFzc2VkIHdpdGggWEVOU05EX09QX09QRU4gaXMgdXNlZCB0byBleGNoYW5n ZSB2b2x1bWUKPiA+ID4gPiA+ICsgKiB2YWx1ZXM6Cj4gPiA+ID4gT2guIFRoYXQgbWVhbnMgeW91 IHRoZXNlIG9wZXJhdGlvbiBhcmUgaW4gZWZmZWN0ICdiYXJyaWVyJyBvbmVzLgo+ID4gPiA+IAo+ ID4gPiA+IEFzIHRoZSBidWZmZXIgbXVzdCBiZSBmbHVzaGVkIGJlZm9yZSBoYW5kIG90aGVyd2lz ZSB5b3Ugd291bGQgYmUKPiA+ID4gPiBvdmVyd3JpdGluZyBkYXRhIHN0cmVhbSBpbmZvcm1hdGlv bi4KPiA+ID4gPiAKPiA+ID4gPiBZb3Ugc2hvdWxkIHByb2JhYmx5IG1lbnRpb24gdGhpcyBzZW1h bnRpYyBuZWVkPwo+ID4gPiBJIHRoaW5rIHRoaXMgaXMgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMg YW5kIHNob3VsZG4ndAo+ID4gPiBiZSBpbiBhIGdlbmVyaWMgcHJvdG9jb2wKPiA+IEhvdyBpcyB0 aGF0IGltcGxlbWVudGF0aW9uIHNwZWNpZmljPyBJZiB0aGVyZSBpcyBzb21ldGhpbmcgaW4gdGhl IHBhZ2UKPiA+IGZyb20gdGhlIHByZXZpb3VzIGNvbW1hbmQgeW91IGFyZSBvdmVyd3JpdHRpbmcg dGhvc2UgdmFsdWVzLgo+IG9rLCBhbGwgdGhlIG9wZXJhdGlvbnMgYXJlIHN5bmNocm9ub3VzIGZv ciB0aGUgc3RyZWFtIGdpdmVuLgoKQWguIEkgbWlzc2VkIHRoYXQuIE90aGVyIGRyaXZlcnMgY2Fu IGJlIGFzeW5jaHJvbm91cy4KVGhhdCBpcyB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgJ3JlYWQnIHRo YXQgYXJlIGhhbmRsZWQgYnkKdGhlIGJhY2tlbmQgLSBhbmQgdGhlIHJlc3BvbnNlIHRvIHRoZSAn cmVhZCcgY2FuIGNvbWUKaW4gYW55IG9yZGVyLgoKSGVuY2Ugd2FzIHRoaW5raW5nIGFsb25nIHRo b3NlIGxpbmVzLgoKPiBpdCBtZWFucyB0aGF0IGlmIHRoZXJlIGlzIHNvbWV0aGluZyBsZWZ0IGlu IHRoZSBidWZmZXIKPiBpdCB3aWxsIGJlIG92ZXJ3cml0dGVuIGJ5IHRoZSBuZXh0IHJlcS9yZXNw LCBzbyB0aGlzIGlzIGV4cGVjdGVkCgpSaWdodCwgYW5kIHRoYXQgaXMgbXkgd29ycnkuCgpCdXQg eW91IGFyZSBzYXlpbmcgdGhhdCB0aGUgJ3Jlc3BvbnNlJyBNVVNUIGJlIGdpdmVuIGluIHRoZSBz YW1lCm9yZGVyIGFzICdyZXF1ZXN0cycuIEFuZCB0aGF0IGlzIG5vdCBzcGVsbGVkIG91dCAoaXQg YWxzbwpzZWVtcyBhIGJpdCBsaW1pdGluZy4gRG9uJ3QgeW91IHdhbnQgdG8gYmUgYWJsZSB0byBo YW5kbGUKaW4gdGhlIGZ1dHVyZSBhc3luY2hyb25vdXMgcmVzcG9uc2VzPwoKPiA+IAo+ID4gPiA+ IE9yIGFsdGVybmF0aXZlbHkgdGhlIFhFTlNORF9PUF9TRVRfVk9MVU1FL1hFTlNORF9PUF9HRVRf Vk9MVU1FIGNvdWxkIGhhdmUKPiA+ID4gPiBhIHNpbWlsYXIgc3RydWN0dXJlIHRvICdzdHJ1Y3Qg eGVuc25kX3J3X3JlcScgc28gdGhhdCB5b3UgaGF2ZQo+ID4gPiA+IHRoZSBvZmZzZXQgYW5kIGxl bj8KPiA+ID4gYSBwYWdlIGNhbiBob2xkIGVub3VnaCB2YWx1ZXMsIElNTwo+ID4gTGV0IG1lIHNl ZSAiNjQwSyBvdWdodCB0byBiZSBlbm91Z2giPwo+IEkgd2FzIHRhbGtpbmcgYWJvdXQgMjU2IGNo YW5uZWxzIDQgYnl0ZXMgcGVyIGVhY2guCj4gPiAKPiA+IFlvdSBhcmUgbWFraW5nIGFzc3VtcHRp b25zIGhlcmUgYmFzZWQgb24gaG93IHRoZSBpbXBsZW1lbnRhdGlvbgo+ID4gZmlsbHMgb3V0IHRo ZSBkYXRhIHN0cnVjdHVyZS4gQnV0IHRoZSBwdXJwb3NlIG9mIHRoZSBkZXNpZ24KPiA+IGlzIHRv IGRldGFjaCBvbmVzZWxmIGZyb20gdGhlIGltcGxlbWVudGF0aW9uIGFuZCB0aGluayBvZgo+ID4g YWx0ZXJuYXRpdmUgd2F5cy4KPiA+IAo+ID4gVG8gY2FwdHVyZSB5b3VyIHdvcmRzOgo+ID4gIgo+ ID4gU28gaWYgcmVhZC93cml0ZSB1c2UgdGhhdCBidWZmZXIsIGFuZCB0aGUgdm9sdW1lIGFuZCBt dXRpbmcKPiA+ID4gY29udHJvbHMgdXNlIGl0IHRvbywgaG93IGRvIEkgY2hhbmdlIHRoZSB2b2x1 bWUgd2hpbGUgbGlzdGVuaW5nCj4gPiA+IHdpdGhvdXQgZGlzdHVyYmluZyB0aGUgcmVhZC93cml0 ZT8KPiA+IHJlYWQvd3JpdGUgZG8gbm90IGhhcHBlbiBjb250aW51b3VzbHksIGUuZy4gc291bmQg Y2FyZCBmaWxscyBpdHMKPiA+IGludGVybmFsIGJ1ZmZlcnMgKG91ciBidWZmZXIgaXMgYnVzeSkg YW5kIHRoZW4gdW50aWwgbmV4dCByZS1maWxsIG91cgo+ID4gYnVmZmVyIGlzIGZyZWUuIHRoYXQg bWVhbnMgdGhhdCB0aGVyZSBpcyBhbG1vc3Qgbm8gY29uZ2VzdGlvbiBhbmQKPiA+IGFsd2F5cyBh IGdvb2QgY2hhbmNlIHRvIHNldC9nZXQgdm9sdW1lIHcvbyBwcm9ibGVtCj4gPiA+IEphbgo+ID4g Igo+ID4gCj4gPiBXZWxsLCB0aGF0IGlzIGltcGxlbWVudGF0aW9uIHNwZWNpZmljLiBXaGF0IGlm IHNvbWUgaW1wbGVtZW50YWl0b24KPiA+IGZpbGxzIGl0IGJhY2sgdG8gYmFjaz8KPiA+IAo+ID4g SSB3b3VsZCBsaWtlIHlvdSB0byBhZGQgdGhlICdvZmZzZXQnIGFuZCAnbGVuJyBzbyB0aGF0IHdl IGRvbid0Cj4gPiBkaWcgYSBob2xlIHRoYXQgd2UgY2FuJ3QgZWFzaWx5IGdldCBvdXQgb2YuCj4g PiAKPiBvaywgSSB3aWxsIGFkZAo+ICAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICAqIHwgb2Zmc2V0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKPiAgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiAgKiB8IGxl bmd0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4gICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4gdG8KPiAxLlJlcXVlc3Qgc2V0L2dldCB2b2x1bWUgLSBzZXQvZ2V0IGNoYW5uZWxzJyB2b2x1 bWUgb2YgdGhlIHN0cmVhbSBnaXZlbgo+IDIuUmVxdWVzdCBtdXRlL3VubXV0ZSAtIG11dGUvdW5t dXRlIHN0cmVhbQo+IAo+IEJ5IHRoaXMgY2hhbmdlIHlvdSBlbmFibGUgYSB1c2UtY2FzZSB3aGVu IHBhcnQgb2YgdGhlIHNoYXJlZCBidWZmZXIKPiBpcyB1c2VkIGZvciBzYW1wbGVzIGFuZCBwYXJ0 IGZvciB2b2x1bWUvbXV0ZSwgcmlnaHQ/CgpDb3JyZWN0LgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==