From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: Branch Trace Storage for guests andVPMUinitialization Date: Thu, 26 Feb 2015 13:38:29 -0500 Message-ID: <54EF6825.2030902@oracle.com> References: <5C9C3B9BEF1B354596EAE3D6800D876BA3BF8F@e1.gdata.de> <5C9C3B9BEF1B354596EAE3D6800D876BA441F4@e1.gdata.de> <54EDF8E3.2060609@oracle.com> <5820128.XDeVCQ4qG6@amur> <54EF4B4E.4050206@oracle.com> <5C9C3B9BEF1B354596EAE3D6800D876BA47F86@e1.gdata.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5C9C3B9BEF1B354596EAE3D6800D876BA47F86@e1.gdata.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Kevin.Mayer@gdata.de, dietmar.hahn@ts.fujitsu.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gMDIvMjYvMjAxNSAxMjo1NyBQTSwgS2V2aW4uTWF5ZXJAZ2RhdGEuZGUgd3JvdGU6Cj4KPgo+ PiAtLS0tLVVyc3Byw7xuZ2xpY2hlIE5hY2hyaWNodC0tLS0tCj4+IFZvbjogQm9yaXMgT3N0cm92 c2t5IFttYWlsdG86Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb21dCj4+IEdlc2VuZGV0OiBEb25u ZXJzdGFnLCAyNi4gRmVicnVhciAyMDE1IDE3OjM1Cj4+IEFuOiBEaWV0bWFyIEhhaG47IHhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCj4+IENjOiBNYXllciwgS2V2aW4KPj4gQmV0cmVmZjogUmU6IFtY ZW4tZGV2ZWxdIEJyYW5jaCBUcmFjZSBTdG9yYWdlIGZvciBndWVzdHMgYW5kCj4+IFZQTVVpbml0 aWFsaXphdGlvbgo+Pgo+PiBPbiAwMi8yNi8yMDE1IDAzOjU2IEFNLCBEaWV0bWFyIEhhaG4gd3Jv dGU6Cj4+PiBBbSBNaXR0d29jaCAyNSBGZWJydWFyIDIwMTUsIDExOjMxOjMxIHNjaHJpZWIgQm9y aXMgT3N0cm92c2t5Ogo+Pj4+IE9uIDAyLzI1LzIwMTUgMTA6MTIgQU0sIEtldmluLk1heWVyQGdk YXRhLmRlIHdyb3RlOgo+Pj4+Pj4gLS0tLS1VcnNwcsO8bmdsaWNoZSBOYWNocmljaHQtLS0tLQo+ Pj4+Pj4gVm9uOiBCb3JpcyBPc3Ryb3Zza3kgW21haWx0bzpib3Jpcy5vc3Ryb3Zza3lAb3JhY2xl LmNvbV0KPj4+Pj4+IEdlc2VuZGV0OiBEaWVuc3RhZywgMjQuIEZlYnJ1YXIgMjAxNSAxODoxMwo+ Pj4+Pj4gQW46IE1heWVyLCBLZXZpbjsgeGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKPj4+Pj4+IEJl dHJlZmY6IFJlOiBbWGVuLWRldmVsXSBCcmFuY2ggVHJhY2UgU3RvcmFnZSBmb3IgZ3Vlc3RzIGFu ZCBWUE1VCj4+Pj4+PiBpbml0aWFsaXphdGlvbgo+Pj4+Pj4KPj4+Pj4+IE9uIDAyLzI0LzIwMTUg MTA6MjcgQU0sIEtldmluLk1heWVyQGdkYXRhLmRlIHdyb3RlOgo+Pj4+Pj4+IEhpIGd1eXMKPj4+ Pj4+Pgo+Pj4+Pj4+IElgbSB0cnlpbmcgdG8gc2V0IHVwIHRoZSBCVFMgc28gdGhhdCBJIGNhbiBs b2cgdGhlIGJyYW5jaGVzIHRha2VuCj4+Pj4+Pj4gaW4gdGhlIGd1ZXN0IHVzaW5nIFhlbiA0LjQu MSB3aXRoIGEgV2luWFAgU1AzIGd1ZXN0IG9uIGEgQ29yZSBpNwo+Pj4+Pj4+IFNhbmR5IEJyaWRn ZS4KPj4+Pj4+Pgo+Pj4+Pj4+IEkgYWRkZWQgdGhlIHZwbXU9YnRzIGJvb3QgcGFyYW1ldGVyIHRv IG15IGdydWIyIGNvbmZpZ3VyYXRpb24gYW5kCj4+Pj4+Pj4gZXh0ZW5kZWQgdGhlIGxpYnhsLGxp YnhjLGRvbWN0bCzigKYgd2l0aCBhbiBvd24gY29tbWFuZCBzbyB0aGF0IEkKPj4+Pj4+PiBjYW4g dHJpZ2dlciB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgQlRTIHdoZW5ldmVyIEkgd2FudC4KPj4+Pj4+ Pgo+Pj4+Pj4gSSBhbSBub3Qgc3VyZSB3aHkgeW91IGFyZSBkb2luZyBhbGwgdGhlc2UgY2hhbmdl cyB0byBYZW4gY29kZS4gQlRTCj4+Pj4+PiBpcyBzdXBwb3NlZCB0byBiZSBtYW5hZ2VkIGZyb20g dGhlIGd1ZXN0LiBGb3IgZXhhbXBsZSwgYSBGZWRvcmEKPj4gSFZNCj4+Pj4+PiBndWVzdCB3aWxs IHByb2R1Y2UgdGhpczoKPj4+Pj4+Cj4+Pj4+PiBbcm9vdEBkaGNwLWJ1cmxpbmd0b243LTJuZC1C LWVhc3QtMTAtMTUyLTU1LTE0MCB+XSMgcGVyZiByZWNvcmQgLWUKPj4+Pj4+IGJyYW5jaGVzOnUg LWMgMSAtZCBzbGVlcCAxIFsgcGVyZiByZWNvcmQ6IFdva2VuIHVwIDM4MzggdGltZXMgdG8KPj4+ Pj4+IHdyaXRlIGRhdGEgXSBbIHBlcmYgcmVjb3JkOiBDYXB0dXJlZCBhbmQgd3JvdGUgMC43MDQg TUIgcGVyZi5kYXRhCj4+Pj4+PiAofjMwNzU2IHNhbXBsZXMpIF0KPj4+Pj4+IFtyb290QGRoY3At YnVybGluZ3RvbjctMm5kLUItZWFzdC0xMC0xNTItNTUtMTQwIH5dIyBwZXJmIHNjcmlwdCAtZgo+ Pj4+Pj4gaXAsYWRkcixzeW0sZHNvLHN5bW9mZiAtLXNob3cta2VybmVsLXBhdGgKPj4+Pj4+ICAg ICAgZmZmZmZmZmY4MTY3YzM0NyBuYXRpdmVfaXJxX3JldHVybl9pcmV0KzB4MCAoL3Byb2Mva2Nv cmUpID0+Cj4+Pj4+PiAzMjhjMDAxNTkwIFt1bmtub3duXSAoL3Byb2Mva2NvcmUpCj4+Pj4+PiAg ICAgIGZmZmZmZmZmODE2N2MzNDcgbmF0aXZlX2lycV9yZXR1cm5faXJldCsweDAgKC9wcm9jL2tj b3JlKSA9Pgo+Pj4+Pj4gMzI4YzAwMTU5MCBbdW5rbm93bl0gKFt1bmtub3duXSkKPj4+Pj4+ICAg ICAgICAgICAgMzI4YzAwMTU5MyBbdW5rbm93bl0gKFt1bmtub3duXSkgPT4gICAgICAgMzI4YzAw NGI3MCBbdW5rbm93bl0KPj4+Pj4+IChbdW5rbm93bl0pCj4+Pj4+PiAuLi4KPj4+Pj4+Cj4+Pj4+ IEkgd2FudCB0byBiZSBhYmxlIHRvIGxvZyB0aGUgdGFrZW4gYnJhbmNoZXMgKG9mIHRoZSBndWVz dCkgd2l0aG91dCB0aGUKPj4gbmVlZCB0byBtb2RpZnkgdGhlIGd1ZXN0IGF0IGFsbC4KPj4+Pj4g VGhpcyBtZWFucyBJIGhhdmUgdG8gZG8gYWxsIHRoZSBsb2dpYyBpbiB0aGUgaHlwZXJ2aXNvciwg b3IgYW0gSSB3cm9uZz8KPj4+PiBJbiB0aGF0IGNhc2UsIHllcy4gQnV0IHRoZW4geW91IGhhdmUg dG8gbWFrZSBzdXJlIHRoYXQgYXQgbGVhc3QKPj4+PiAgICAgKiB5b3UgZG9uJ3QgbG9hZCBndWVz dCdzIFZQTVUgKG9yLCBhdCBsZWFzdCwgQlRTLXJlbGF0ZWQKPj4+PiByZWdpc3RlcnMpIG9uIGNv bnRleHQgc3dpdGNoCj4+PiBCdXQgeW91IG5lZWQgdG8gbW9kaWZ5IFBNVSByZWdpc3RlcnMgd2hl biBzd2l0Y2hpbmcgdG8vZnJvbSB0aGUgZ3Vlc3QKPj4+IGNvbnRleHQgdG8gZ2V0IFBNVSBydW5u aW5nLgo+Pgo+Pgo+Pgo+PiBJIHdhcyB0aGlua2luZyB0aGF0IGFsbCBCVFMgc3R1ZmYgY2FuIGJl IGNvbnRyb2xsZWQgZnJvbSBkb20wIGFuZCBzbyB3ZSBjYW4KPj4gdXNlIGRvbTAncyB2ZXJzaW9u IG9mIHRoZXNlIHJlZ2lzdGVycy4gSSBkaWRuJ3QgcmVhbGl6ZSB0aGF0IERTX0FSRUEgd291bGQK Pj4gaGF2ZSB0byBiZSBhY2Nlc3NlZCBpbiBndWVzdCdzIGFkZHJlc3Mgc3BhY2UgKGFuZCB0aGF0 IERFQlVHQ1RMIGlzIGxvYWRlZAo+PiBmcm9tIFZNQ1MpLgo+Pgo+PiBXaGljaCBpcyB3aGF0IEkg dGhpbmsgSSBzYWlkIGluIHJlc3BvbnNlIHRvIHRoaXMgbWVzc2FnZSAod2hpY2ggZGlkbid0IHNo b3cgdXAKPj4gb24gdGhlIGxpc3QgYmVjYXVzZSBLZXZpbiBhY2NpZGVudGFsbHkgZHJvcHBlZCB4 ZW4tZGV2ZWwpLgo+Pgo+PiAtYm9yaXMKPgo+IFRlcnJpYmx5IHNvcnJ5IGFib3V0IHRoYXQuLi4K Pgo+IFNvIHRoZSBWUE1VIGRvZXNu4oCZdCBnZXQgbG9hZGVkIHdoZW4gdGhlcmUgaXMgYSBWTUVO VEVSPwoKCk5vdCBleGFjdGx5LiBGb3IgQlRTLCBERUJVR0NUTCByZWdpc3Rlciwgd2hpY2ggbGl2 ZXMgaW4gVk1DUywgZG9lcyBnZXQgCmxvYWRlZC4gQnV0IG5vdCBEU19BUkVBIC0tLSBpdCBnZXRz IGxvYWRlZCBieSBTVyBkdXJpbmcgCmNvbnRleHRfc3dpdGNoKCktPnZwbXVfbG9hZCgpLgoKKEFz IGZvciBnZW5lcmFsIFZQTVUgcmVnaXN0ZXJzIHN1Y2ggYXMgY291bnRlcnMgLS0tIHRoZXkgYXJl IGFsc28gbG9hZGVkIApkdXJpbmcgY29udGV4dF9zd2l0Y2goKS4gQnV0IEkgZG9uJ3QgdGhpbmsg eW91IGNhcmUgYWJvdXQgdGhvc2UuIEZyb20gCndoYXQgbGl0dGxlIEkga25vdyBhYm91dCBCVFMs IERFQlVHQ1RMIGFuZCBEU19BUkVBIGFyZSB0aGUgb25seSB0d28gCnJlZ2lzdGVycyB5b3UgYXJl IGludGVyZXN0ZWQgaW4pCgo+IEkgdGhvdWdodCBJIGNvdWxkIHNldCB0aGUgZG9tVS0+dmNwdS0+ dnBtdSB0byBlbmFibGUgQlRTIHdoaWxlIGluIGRvbTAgKHdpdGggbW9kaWZpZWQgdmVyc2lvbnMg b2YgbXNyX3dyaXRlX2ludGVyY2VwdCwgdnBtdV9kb193cm1zciBhbmQgY29yZTJfdnBtdV9kb193 cm1zciBvZiBjb3Vyc2Ugc2luY2UgdGhlIGJ1aWxkIGluIG9uZXMgdXNlIHRoZSBjdXJyZW50LXZj cHUgd2hpY2ggd291bGQgYmUgdGhlIGRvbTAtdmNwdSkKPiBhbmQgYXMgc29vbiBhcyB0aGVyZSBp cyBhIGNvbnRleHQgc3dpdGNoIHRvIGRvbVUgdGhlIHZwbXUgZ2V0cyBsb2FkZWQgYW5kIHRoZSBn dWVzdCBzdGFydHMgbG9nZ2luZy4KCkFuZCBpdCBzaG91bGQgd29yaywgcHJvdmlkZWQgdGhhdCBE U19BUkVBIGlzIHNldCB1cCBjb3JyZWN0bHkuCgo+IElmIHRoZSBkZXNjcmliZWQgYmVoYXZpb3Ig aXMgY29ycmVjdCB0aGUgb25seSBwcm9ibGVtIEkgY2FuIHNlZSBpcyB3aXRoIGFsbG9jYXRpbmcg bWVtb3J5IGluIGRvbTAgaW4gYSB3YXkgdGhhdCB0aGUgZ3Vlc3QgY2FuIGFjY2VzcyBpdC4KClRo aXMgc291bmRzIHJpZ2h0LiBBbGwgeW91IGhhdmUgdG8gZG8gbm93IGlzIGltcGxlbWVudGF0aW9u IGRldGFpbHMgOy0pCgotYm9yaXMKCgo+IEJ1dCBpZiBJIGdvdCBpdCB3cm9uZyBwbGVhc2UgZXhw bGFpbiBob3cgdGhlIHZwbXUgcmVhbGx5IHdvcmtzLgo+Cj4gQ2hlZXJzCj4KPiBLZXZpbgo+Cj4K Pj4KPj4KPj4+IEkgZGlkbid0IHRoaW5rIG9mIHVzaW5nIHRoZSBWUE1VIHN0dWZmIHdpdGggbW9k aWZ5aW5nIHRoZSBjb250ZXh0IGZyb20KPj4+IG91dHNpZGUgdGhlIGd1ZXN0Lgo+Pj4KPj4+PiAg ICAgKiBZb3UgZG9uJ3Qgc2VuZCB0aGUgaW50ZXJydXB0IHRvIHRoZSBndWVzdCAobWVhbmluZyB0 aGF0IHlvdSB3aWxsCj4+Pj4gbmVlZCB0byBzb21laG93IGluZm9ybSBkb20wIG9mIHRoZSBCVFMg aW50ZXJydXB0KQo+Pj4+Cj4+Pj4gYW5kIHByb2JhYmx5IG1vcmUuCj4+Pj4KPj4+PiBFc3NlbnRp YWxseSwgeW91IHdhbnQgZG9tMCB0byBwcm9maWxlIHRoZSBndWVzdC4gSSBoYXZlIGJlZW4gd29y a2luZwo+Pj4+IG9uIHBhdGNoZXMgdGhhdCB3b3VsZCBhbGxvdyB0aGF0IGJ1dCB0aGV5IGFyZSBz dGlsbCB1bmRlciByZXZpZXcuCj4+Pj4KPj4+Pgo+Pj4+Pj4+IEluIHRoaXMgY29tbWFuZCBJIGRv IHRoZSBmb2xsb3dpbmc6Cj4+Pj4+Pj4KPj4+Pj4+PiBJIHNldCB1cCB0aGUgbWVtb3J5IHJlZ2lv biBmb3IgdGhlIEJUUyBCdWZmZXIgYW5kIHRoZSBEUyBCdWZmZXIKPj4+Pj4+PiBNYW5hZ2VtZW50 IEFyZWEgdXNpbmcgeHphbGxvY19ieXRlcwo+Pj4+Pj4+Cj4+Pj4+PiBJIGRvbid0IHRoaW5rIHlv dSBzaG91bGQgYmUgYWxsb2NhdGluZyBCVFMgYnVmZmVycyBpbiB0aGUKPj4+Pj4+IGh5cGVydmlz b3IsIHRoZXkgYXJlIGluIGd1ZXN0J3MgbWVtb3J5Lgo+Pj4+PiBJIGFncmVlLiBBcyBJIHNhaWQg SSB0aGluayB0aGlzIGlzIHdoZXJlIG15IG1haW4gcHJvYmxlbSBpcyBhdCB0aGUgbW9tZW50Lgo+ Pj4+PiBJcyB0aGVyZSBhbnkgd2F5IEkgY2FuIGFsbG9jYXRlIG1lbW9yeSBpbiB0aGUgaHlwZXJ2 aXNvciBpbiBhIHdheSB0aGUKPj4gZ3Vlc3QgY2FuIGFjY2VzcyBpdD8KPj4+PiBJIGFtIG5vdCBz dXJlIHRoaXMgaXMgd2hhdCB5b3Ugd2FudCBzaW5jZSB5b3Ugc2VlbSB0byAqbm90KiB3YW50IHRo ZQo+Pj4+IGd1ZXN0IHRvIHByb2Nlc3MgdGhlIHNhbXBsZXMsIHJpZ2h0Pwo+Pj4+Cj4+Pj4gQnV0 IHllcywgeW91IGNhbi4gRS5nLiBzb21ldGhpbmcgbGlrZSB3aGF0IG1hcF92Y3B1X2luZm8oKSBk b2VzLiAoSQo+Pj4+IGhhdmUgbm8gaWRlYSBob3cgeW91J2QgZG8gdGhpcyBmcm9tIFdpbmRvd3Mu KQo+Pj4gVGhlIERTIGJ1ZmZlciBoYXMgdG8gYmUgbWFwcGVkIHdpdGhpbiB0aGUgZ3Vlc3RzIGFk ZHJlc3Mgc3BhY2Ugc28gdGhlCj4+PiBDUFUgcnVubmluZyBpbiBndWVzdCBjb250ZXh0IGNhbiBh Y2Nlc3MgdGhpcyBhcmVhLiBPdGhlcndpc2UgeW91IGdldAo+Pj4gdGhpcyB0cmlwbGUgZmF1bHQu Cj4+PiBTbyBJIHdvdWxkIHRoaW5rIHlvdSBuZWVkIGEgbWl4dHVyZSBvZiB3cml0aW5nIHNvbWUg c3R1ZmYgaW4gV2luZG93cwo+Pj4gYW5kIHBhdGNoaW5nIHRoZSBoeXBlcnZpc29yLgo+Pj4KPj4+ IERpZXRtYXIuCj4+Pgo+Pj4+Cj4+Pj4+IE9mIGNvdXJzZSB0aGUgZ3Vlc3QgbXVzdCBub3QgYmUg YWJsZSB0byB1c2UgdGhpcyBtZW1vcnkgaW4gaXRzIG5vcm1hbAo+PiBvcGVyYXRpb25zIGJ1dCBq dXN0IGZvciBCVFMuCj4+Pj4+IElzIHRoaXMgZXZlbiBwb3NzaWJsZT8gSSBhbSByYXRoZXIgY29u ZnVzZWQgYXQgdGhlIG1vbWVudC4gOi1ECj4+Pj4+Cj4+Pj4+Pj4gVGhlbiBJIHdyaXRlIHRoZSBw b2ludGVyIHRvIHRoZSBCVFMgQnVmZmVyIGludG8gdGhlIERTIEJ1ZmZlcgo+Pj4+Pj4+IE1hbmFn ZW1lbnQgQXJlYSBhdCArMHgwIGFuZCArMHg4IChCVFMgQnVmZmVyIEJhc2UgYW5kIEJUUyBJbmRl eCkKPj4+Pj4+Pgo+Pj4+Pj4+IFdoZW4gSSB1c2Ugdm14X21zcl93cml0ZV9pbnRlcmNlcHQgdG8g c3RvcmUgdGhlIHZhbHVlIGluCj4+Pj4+Pj4gTVNSX0lBMzJfRFNfQVJFQSB0aGUgaG9zdCByZWJv b3RzIChteSBpZGVhIGlzIGhlIHRyaWVzIHRvIGFjY2VzcyBhCj4+Pj4+Pj4gdnBtdS1zdHJ1Y3Qg dGhhdCBpc27CtHQgdGhlcmUgaW4gdGhlIGN1cnJlbnQgdmNwdSBhbmQgcGFuaWNzKS4KPj4+Pgo+ Pj4+IFdobyBpcyB0cnlpbmcgdG8gd3JpdGUgdG8gTVNSX0lBMzJfRFNfQVJFQT8gVGhlIGd1ZXN0 IG9yIGRvbTA/IEkKPj4+PiB0aG91Z2h0IHlvdSBzYWlkIHRoYXQgeW91IHdhbnQgZG9tMCB0byBk byBzYW1wbGluZy4gT3IgYXJlIHlvdSB0cnlpbmcKPj4+PiB0byBzZXR1cCBEUyBhcmVhIGZyb20g eW91ciBndWVzdCBhbmQgY29udHJvbCBpdCBmcm9tIGRvbTA/IEkgYW0KPj4gc29tZXdoYXQgY29u ZnVzZWQuCj4+Pj4KPj4+Pj4+IENhbiB5b3UgcG9zdCBoeXBlcnZpc29yIGxvZz8gKGhhcmQgdG8g c2F5IGhvdyBoZWxwZnVsIGl0IHdpbGwgYmUKPj4+Pj4+IHdpdGhvdXQgc2VlaW5nIHlvdXIgY29k ZSBjaGFuZ2VzIHRob3VnaCkKPj4+Pj4+Cj4+Pj4+IFJpZ2h0IGFmdGVyIGVuYWJsaW5nIHRoZSBC VFMgSSBnZXQgYSB0cmlwbGUgZmF1bHQuCj4+Pj4+IGh2bS5jOjEzNTc6ZDIgVHJpcGxlIGZhdWx0 IG9uIFZDUFUwIC0gaW52b2tpbmcgSFZNIHNodXRkb3duIGFjdGlvbiAxLgo+Pj4+Cj4+Pj4gVGhh dCdzIG5vdCBob3N0IHJlYm9vdCwgdGhpcyBpcyB5b3VyIGd1ZXN0IGR5aW5nLgo+Pj4+Cj4+Pj4K Pj4+Pj4+PiBXaGVuIEkgdXNlIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB2bXhfbXNyX3dyaXRlX2lu dGVyY2VwdCBJIGRvbuKAmXQKPj4+Pj4+PiBnZXQgYW55IGNyYXNoZXMgYXMgbG9uZyBhcyBJIGRv buKAmXQgZW5hYmxlIEJUUyBhbmQgVFIgaW4gdGhlCj4+Pj4+Pj4gR1VFU1RfSUEzMl9ERUJVR0NU TCAoQlRSIHdvcmtzKS4gV2hlbiBJIGVuYWJsZSB0aGUgQlRTIChhbmQgVFIpCj4+Pj4+Pj4gdGhl IGd1ZXN0IGNyYXNoZXMuIEkgc3VwcG9zZSBoZSBnZXRzIGtpbGxlZCBieSB0aGUgaHlwZXJ2aXNv ciBmb3IKPj4+Pj4+PiBhY2Nlc3NpbmcgZm9yYmlkZGVuIG1lbW9yeS4KPj4+Pj4+Pgo+Pj4+Pj4g UG9zc2libHkgYmVjYXVzZSBEUyBhcmVhIHBvaW50IHRvIGh5cGVydmlzb3IgbWVtb3J5Lgo+Pj4+ Pj4KPj4+Pj4+Cj4+Pj4+PiBIYXZpbmcgc2FpZCBhbGwgdGhpcywgSSBhbSBub3Qgc3VyZSBob3cg d2VsbCBCVFMgd29ya3MuIFlvdSBkaWQKPj4+Pj4+IG5vdGljZSB0aGlzIGluIHRoZSBoeXBlcnZp c29yIGxvZzoKPj4+Pj4+Cj4+Pj4+PiAoWEVOKQo+PiAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4+Pj4+IChYRU4pICoqIFdBUk5JTkc6IEVt dWxhdGlvbiBvZiBCVFMgRmVhdHVyZSBpcyBzd2l0Y2hlZCBvbiAqKgo+Pj4+Pj4gKFhFTikgKiog VXNpbmcgdGhpcyBwcm9jZXNzb3IgZmVhdHVyZSBpbiBhIHZpcnR1YWxpemVkICoqCj4+Pj4+PiAo WEVOKSAqKiBlbnZpcm9ubWVudCBpcyBub3QgMTAwJSBzYWZlLiAqKgo+Pj4+Pj4gKFhFTikgKiog U2V0dGluZyB0aGUgRFMgYnVmZmVyIGFkZHJlc3Mgd2l0aCB3cm9uZyB2YWx1ZXMgKioKPj4+Pj4+ IChYRU4pICoqIG1heSBsZWFkIHRvIGh5cGVydmlzb3IgaGFuZ3Mgb3IgY3Jhc2hlcy4gKioKPj4+ Pj4+IChYRU4pICoqIEl0IGlzIE5PVCByZWNvbW1lbmRlZCBmb3IgcHJvZHVjdGlvbiB1c2UhICoq Cj4+Pj4+PiAoWEVOKQo+PiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKPj4+Pj4+Cj4+Pj4+IFllcywgSSBzYXcgdGhhdC4gSXQgZG9lc27igJl0 IHN0YXRlIHRoYXQgQlRTIGlzIG5vdCB3b3JraW5nIGF0IGFsbCwganVzdCB0aGF0IGl0IGlzCj4+ IG5vdCB0aGF0IHNhZmUgdG8gdXNlLgo+Pj4+PiBBcyBJIHVuZGVyc3RhbmQgaXQgYXMgbG9uZyBh cyBJIHNldCB0aGUgRFMgYnVmZmVyIGFkZHJlc3MgY29ycmVjdGx5IEkgc2hvdWxkCj4+IGJlIGZp bmUsIHJpZ2h0Pwo+Pj4+IFJpZ2h0LiBFeGNlcHQgdGhhdCBJIGFtIG5vdCBjb252aW5jZWQgeW91 IGRpZCBzZXQgdGhpcyBidWZmZXIKPj4+PiBjb3JyZWN0bHksIHdoaWNoIGlzIHBvc3NpYmx5IHdo eSB5b3VyIGh5cGVydmlzb3IgY3Jhc2hlZCAoSSBhbSBub3QKPj4+PiBzdXJlIEkgdW5kZXJzdG9v ZCB1bmRlciB3aGF0IGNpcmN1bXN0YW5jZXMgdGhvdWdoKS4KPj4+Pgo+Pj4+IC1ib3Jpcwo+Pj4+ Cj4+Pj4+IFNpbmNlIEkgZG9u4oCZdCB3YW50IHRvIHVzZSBmb3IgcHJvZHVjdGlvbiB0aGF0IGlz IGZpbmUgd2l0aCBtZS4gQXQgbGVhc3QgZm9yCj4+IG5vdy4KPj4+Pj4KPj4+Pj4KPj4+Pj4gS2V2 aW4KPj4+Pj4+IC1ib3Jpcwo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4gVGhlIG1vZGlmaWVkIHZlcnNp b24gb2Ygdm14X21zcl93cml0ZV9pbnRlcmNlcHQgdGFrZXMgYQo+Pj4+Pj4+IHZjcHUtc3RydWN0 IGFzIGEgcGFyYW1ldGVyIGFuZCB1c2VzIHRoaXMgaW5zdGVhZCBvZiB0aGUgY3VycmVudCB2Y3B1 Lgo+Pj4+Pj4+Cj4+Pj4+Pj4gSW5zdGVhZCBvZgo+Pj4+Pj4+Cj4+Pj4+Pj4gc3RhdGljaW50IHZt eF9tc3Jfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90Cj4+Pj4+PiBt c3JfY29udGVudCkKPj4+Pj4+PiB7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAgICAgc3RydWN0IHZjcHUg KnYgPSBjdXJyZW50Owo+Pj4+Pj4+Cj4+Pj4+Pj4gSSBqdXN0IGhhdmUKPj4+Pj4+Pgo+Pj4+Pj4+ IHN0YXRpY2ludCBvd25fdm14X21zcl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwg dWludDY0X3QKPj4+Pj4+PiBtc3JfY29udGVudCwgc3RydWN0IHZjcHUgKnYpCj4+Pj4+Pj4KPj4+ Pj4+PiBJIGdldCB0aGlzIHZjcHUgYnkgZC0+dmNwdVswXSBhcyBJIGhhdmUgbGltaXRlZCBteSBn dWVzdCBkb21haW4gdG8KPj4+Pj4+PiBvbmUgdmNwdSBhdG0uCj4+Pj4+Pj4KPj4+Pj4+PiBPZiBj b3Vyc2UgSSBhbHNvIHVzZSBzaW1pbGFybHkgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgY2FsbGVk Cj4+Pj4+Pj4gZnVuY3Rpb25zKHZwbXVfZG9fd3Jtc3Is4oCmKS4KPj4+Pj4+Pgo+Pj4+Pj4+IEnC tG0gcHJldHR5IHN1cmUgdGhhdCBteSBwcm9ibGVtIGlzIHdpdGggYSB3cm9uZyBzY29wZS91c2Fn ZSBvZiB0aGUKPj4+Pj4+PiB2Y3B1cy9tZW1vcnksIGJ1dCBJIGhhdmUgbm8gaWRlYSBob3cgdG8g Zml4IHRoaXMuCj4+Pj4+Pj4KPj4+Pj4+PiBJIGNhbiBzZWUgYSBwb3RlbnRpYWwgcHJvYmxlbSB3 aXRoIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiAoaW4gdGhlCj4+Pj4+Pj4gaG9zdCkgaW50byB3aGlj aCB0aGUgY3B1IGluIGd1ZXN0LW1vZGUgaXMgc3VwcG9zZWQgdG8gd3JpdGUuCj4+Pj4+Pj4KPj4+ Pj4+PiBPciBtYXliZSBJIGdvdCB0aGUgcHJpbmNpcGxlIG9mIGEgdmNwdS92cG11IGFsbCB3cm9u Zy4KPj4+Pj4+Pgo+Pj4+Pj4+IFNpbmNlIEkgY291bGRu4oCZdCBmaW5kIGFueSBwcm9qZWN0IHRo YXQgdXNlcyB0aGUgQlRTIGZvciB0aGUgZ3Vlc3QsCj4+Pj4+Pj4gSSBhbSB3b25kZXJpbmcgaWYg YW55b25lIGhhcyBldmVyIGRvbmUgdGhpcyBhbmQgaWYgaXQgaXMgcG9zc2libGUgYXQgYWxsLgo+ Pj4+Pj4+Cj4+Pj4+Pj4gQW55IGlucHV0IGlzIHdlbGNvbWUgYXMgSSBhbSBwcmV0dHkgbXVjaCBz dHVjayBhdG3igKYKPj4+Pj4+Pgo+Pj4+Pj4+IENoZWVycwo+Pj4+Pj4+Cj4+Pj4+Pj4gS2V2aW4K Pj4+Cj4KPiBfX19fX19fX19fX18KPiBWaXJ1cyBjaGVja2VkIGJ5IEcgRGF0YSBNYWlsU2VjdXJp dHkKPiBWZXJzaW9uOiBBVkEgMjUuNDM1IGRhdGVkIDI2LjAyLjIwMTUKPiBWaXJ1cyBuZXdzOiB3 d3cuYW50aXZpcnVzbGFiLmNvbQo+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK