From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: Re: [PATCH v4] altp2m: Allow the hostp2m entries to be of type p2m_ram_shared Date: Tue, 19 Jul 2016 09:20:31 -0600 Message-ID: References: <1464234910-7321-1-git-send-email-tamas@tklengyel.com> <5746D27F.5050705@citrix.com> <2009d6f1-c5dc-3fda-b943-e911ea5afc1a@citrix.com> <51eb17ed-6317-5407-e251-703b08ef287f@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bPWp2-0007yr-8V for xen-devel@lists.xenproject.org; Tue, 19 Jul 2016 15:20:36 +0000 Received: by mail-wm0-f54.google.com with SMTP id f65so142633889wmi.0 for ; Tue, 19 Jul 2016 08:20:34 -0700 (PDT) Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com. [74.125.82.42]) by smtp.gmail.com with ESMTPSA id r127sm10794057wmf.23.2016.07.19.08.20.32 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Jul 2016 08:20:33 -0700 (PDT) Received: by mail-wm0-f42.google.com with SMTP id f65so142633091wmi.0 for ; Tue, 19 Jul 2016 08:20:32 -0700 (PDT) In-Reply-To: <51eb17ed-6317-5407-e251-703b08ef287f@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: George Dunlap Cc: Andrew Cooper , Jan Beulich , Xen-devel List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBKdWwgMTksIDIwMTYgYXQgNTozOSBBTSwgR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1 bmxhcEBjaXRyaXguY29tPiB3cm90ZToKPiBPbiAxOC8wNy8xNiAxODowNiwgVGFtYXMgSyBMZW5n eWVsIHdyb3RlOgo+Pj4+IEFueWhvdywgYXQgdGhpcyBwb2ludCBJJ20KPj4+PiBnb2luZyB0byBz dGFydCBjYXJyeWluZyBvdXQtb2YtdHJlZSBwYXRjaGVzIGZvciBYZW4gaW4gbXkgcHJvamVjdCBh bmQKPj4+PiBqdXN0IHJlc2lnbiBmcm9tIG15IG1lbV9zaGFyaW5nIG1haW50YWluZXJzaGlwIGFz IEkgZmVlbCBsaWtlIGl0J3MKPj4+PiBwcmV0dHkgcG9pbnRsZXNzLgo+Pj4KPj4+IEknbSBzb3Jy eSB0aGF0IHlvdSdyZSBkaXNjb3VyYWdlZDsgYWxsIEkgY2FuIHNheSBpcyB0aGF0IEkgaG9wZSB5 b3UKPj4+IHJlY29uc2lkZXIuICBJJ20gbm90IHRyeWluZyB0byBibG9jayB5b3UsIGFuZCBJJ20g bm90IGlnbm9yaW5nIHlvdXIgdXNlCj4+PiBjYXNlOyBpdCdzIHRoZSBqb2Igb2YgYSBtYWludGFp bmVyIHRvIGxvb2sgYXQgKmV2ZXJ5b25lJ3MqIHVzZSBjYXNlcyBhbmQKPj4+IHRyeSB0byBtYWtl IHN1cmUgdGhhdCB0aGV5IGFyZSBhbGwgYWNjb21tb2RhdGVkIGluIHNvIGZhciBhcyBpdCBpcwo+ Pj4gcG9zc2libGUuCj4+Pgo+Pj4gSSdtIGFsc28gdHJ5aW5nIHRvIG1ha2Ugc3VyZSB0aGF0IHRo ZSBjb2RlIHlvdSBlbmQgdXAgdXNpbmcgaW4geW91cgo+Pj4gcHJvamVjdCBpcyByb2J1c3QgYW5k IHJlbGlhYmxlLiAgSXQgc2VlbXMgdG8gbWUgbGlrZSBpZiB0aGUgY3VycmVudAo+Pj4gaW1wbGVt ZW50YXRpb24gd2FzIGZpeGVkLCB5b3VyIGxpZmUgd291bGQgYmUgYSBsb3QgZWFzaWVyIHRoYW4g aWYgd2UKPj4+IGFjY2VwdCB5b3VyIHBhdGNoIGFzIGl0IGlzIC0tIHlvdXIgc2hhcmluZyBjb2Rl IGNvdWxkIGp1c3Qgd29ycnkgYWJvdXQKPj4+IHNoYXJpbmcsIHlvdXIgYWx0cDJtIGNvZGUgY291 bGQganVzdCB3b3JyeSBhYm91dCB3aGF0ZXZlciBpdCdzIHRyeWluZyB0bwo+Pj4gZG8sIHdpdGhv dXQgaGF2aW5nIHRvIGNhcmVmdWxseSBhdm9pZCBjb3JuZXIgY2FzZXMgb3IgbWFudWFsbHkgZml4 Cj4+PiB0aGluZ3MgdXAgd2hlbiBjb3JuZXIgY2FzZXMgaGFwcGVuLiAgQSBiaXQgbGVzcyBzaGFy aW5nIHdvdWxkIGhhcHBlbiwKPj4+IGJlY2F1c2UgZmV3ZXIgcGFnZXMgd291bGQgYmUgZWxpZ2li bGUgdG8gYmUgc2hhcmVkLCBidXQgb3ZlcmFsbCB5b3UnZAo+Pj4gaGF2ZSBhIGxvdCBsZXNzIGJ1 Z3MgYW5kIGhlYWRhY2hlLgo+Pj4KPj4+IEkgaW52ZXN0ZWQgYSBsb3Qgb2YgbXkgdmVyeSBsaW1p dGVkIHRpbWUgY2FyZWZ1bGx5IGdvaW5nIHRocm91Z2ggYm90aAo+Pj4gc2V0cyBvZiBjb2RlIGJl Zm9yZSBJIGFuc3dlcmVkIHlvdXIgZS1tYWlsLCBhbmQgSSBzcGVudCBhIGxvdCBvZiB0aW1lCj4+ PiB0cnlpbmcgdG8gZXhwbGFpbiB0aGUga2luZHMgb2YgaW50ZXJhY3Rpb25zIEkgdGhpbmsgd2ls bCBiZSBhIHByb2JsZW0uCj4+PiBJIGNvdWxkIGhhdmUganVzdCBhY2tlZCB0aGUgcGF0Y2ggd2l0 aG91dCBkb2luZyB0aGF0OyBidXQgSSB0aGluayB0aGF0Cj4+PiB3b3VsZCBoYXZlIGJlZW4gYm90 aCBsZXNzIGdvb2QgZm9yIHlvdSwgYW5kIGxlc3MgZ29vZCBmb3IgdGhlIHByb2plY3QgYXMKPj4+ IGEgd2hvbGUuCj4+Cj4+IEkgY2VydGFpbmx5IGFwcHJlY2lhdGUgeW91ciB0aW1lIHNwZW50IG9u IHRoaXMuIEhvd2V2ZXIsIEkgZG9uJ3Qgc2VlCj4+IHRoZSBwb2ludCBvZiBiZWluZyBtYWludGFp bmVyIGlmIG15IG9waW5pb24gb24gd2hhdCBjb25zdGl0dXRlcyBhbgo+PiBpbXByb3ZlbWVudCBv ZiB0aGUgc3lzdGVtIGp1c3QgZ2V0cyBvdmVycnVsZWQuCj4KPiBZb3UncmUgbm90IGJlaW5nIG92 ZXJydWxlZDsgeW91J3JlIGp1c3QgYmVpbmcgYXNrZWQgdG8gbWFrZSBhIGNhc2UgZm9yIGEKPiBj aGFuZ2UgeW91IHdhbnQgdG8gbWFrZSB0byBhbiBhcmVhIG9mIGNvZGUgdGhhdCBJIG1haW50YWlu ICh0aGUgcDJtCj4gY29kZSkuICBBbmQgdGhlIGRpc2N1c3Npb24gaXMgYnkgbm8gbWVhbnMgb3Zl cjsgSSBzdGFydGVkIHRoZSBtb3N0Cj4gcmVjZW50IGRpc2N1c3Npb24gYnkgc2F5aW5nICJDb3Jy ZWN0IG1lIGlmIEknbSB3cm9uZyIsIGFuZCBpdCBsb29rcyBsaWtlCj4gdGhlcmUgYXJlIHN0aWxs IGEgbnVtYmVyIG9mIHBsYWNlcyB3aGVyZSB3ZSBoYXZlIGRpZmZlcmVudCB2aWV3cyBvZiB0aGUK PiBmYWN0cyBvZiB0aGUgbWF0dGVyLiAgT25jZSB3ZSd2ZSBlc3RhYmxpc2hlZCB0aG9zZSB3ZSBt YXkgZW5kIHVwIHdpdGgKPiBjbG9zZXIgb3BpbmlvbnMuCj4KPiBXb3JraW5nIHRvZ2V0aGVyIG1l YW5zIHRoYXQgc29tZXRpbWVzIHlvdSBoYXZlIHRvIHNwZW5kIHRoZSB0aW1lIGFuZAo+IGVmZm9y dCB0byB1bmRlcnN0YW5kIHdoZXJlIG90aGVyIHBlb3BsZSBhcmUgY29taW5nIGZyb20gLS0gd2hh dCB0aGV5Cj4gdGhpbmsgaXMgaW1wb3J0YW50LCB3aGF0IHRoZXkgdGhpbmsgaXMgdHJ1ZTsgYW5k IHRoZW4gd29ya2luZyB3aXRoIHRoYXQKPiAtLSBjb3JyZWN0aW5nIHRoZW0gb24gcGxhY2VzIHdo ZXJlIHRoZXkgaGF2ZSBtaXNjb25jZXB0aW9ucyAob3IKPiBkb3VibGUtY2hlY2tpbmcgeW91ciBv d24gYmVsaWVmcyB0byBtYWtlIHN1cmUgdGhhdCB5b3UncmUgbm90IG1pc3Rha2VuKTsKPiBjb21t dW5pY2F0aW5nIHdoYXQgaXQgaXMgdGhhdCB5b3UgdGhpbmsgaXMgaW1wb3J0YW50LCBhbmQgdGhl biB0cnlpbmcgdG8KPiBjb21lIHVwIHdpdGggYSB3YXkgZm9yd2FyZCB0aGF0IHRha2VzIGV2ZXJ5 b25lJ3MgdmFsdWVzIGludG8gYWNjb3VudCwgb3IKPiBjb252aW5jaW5nIHNvbWVvbmUgdGhhdCBh IHBhcnRpY3VsYXIgd2F5IHJlYWxseSBpcyB0aGUgYmVzdCB3YXkgZm9yd2FyZAo+ICh3aGljaCBt YXkgbWVhbiBjb252aW5jaW5nIHRoZW0gdG8gY2hhbmdlIHRoZWlyIHByaW9yaXRpZXMgc29tZXdo YXQpLgo+Cj4gSSBhbSBzb3JyeSB0aGF0IHRoZSB0b25lIG9mIHRoaXMgY29udmVyc2F0aW9uIGhh cyBoZWF0ZWQgdXAuICBCdXQgdGhlCj4gcmVhc29uIEkndmUgYmVlbiAicmFpc2luZyBteSB2b2lj ZSIgYXMgaXQgd2VyZSBpcyBiZWNhdXNlIEkndmUgYmVlbgo+IHRyeWluZyB0byBhc2sgcXVlc3Rp b25zIGFuZCByYWlzZSBwb3RlbnRpYWwgaXNzdWVzLCBhbmQgSSBmZWVsIGxpa2UKPiB5b3UndmUg YmVlbiBqdXN0IGhhbmQtd2F2aW5nIHRoZW0gYXdheS4gIFlvdSBtYXkgYmUgMTAwJSByaWdodCwg YnV0IGl0Cj4gaXMgbXkgZHV0eSBhcyB0aGUgbWFpbnRhaW5lciBvZiB0aGUgcDJtIGNvZGUgdG8g bm90IGFjY2VwdCBjb2RlIHVudGlsCj4gSSdtIHJlYXNvbmFibHkgY29udmluY2VkIHRoYXQgaXQn cyBhIGdvb2Qgd2F5IGZvcndhcmQuCgpCeSBubyBtZWFucyBJIG1lYW50IHRvIGhlYXQtdXAgdGhl IGNvbnZlcnNhdGlvbiBvciBoYW5kLXdhdmUgeW91cgpjb25jZXJucyBhd2F5LiBJIGRvIHVuZGVy c3RhbmQgd2hhdCBpdCB0YWtlcyB0byB3b3JrIHdpdGggdGhlCmNvbW11bml0eSBhbmQgdGhhdCBp dCB0YWtlcyBjb29wZXJhdGlvbiBmb3IgdGhhdCB0byBoYXBwZW4uIEkgd2FzIG5vdApoYW5kLXdh dmluZyB5b3VyIGNvbmNlcm5zIGF3YXkgYnV0IGRlc2NyaWJpbmcgaG93IHRoZSB0d28gc3lzdGVt cwpjb3VsZCBpbnRlcmFjdCBzYWZlbHkgdG9nZXRoZXIgd2hpbGUgYWdyZWVpbmcgd2l0aCB5b3Ug dGhhdCB5ZXMsIHRoZXJlCmFyZSBzdGlsbCBzY2VuYXJpb3Mgd2hlcmUgaXQgd291bGQgbm90IGJl IHdpc2UgdG8gdHVybiB0d28KZXhwZXJpbWVudGFsIHN5c3RlbXMgb24gdG9nZXRoZXIuCgo+Cj4+ IEkgd291bGQgbGlrZSB0byBoZWFyIHRoZQo+PiBvdGhlciBtYWludGFpbmVycyBvcGluaW9uIG9u IHRoaXMgbWF0dGVyIGFzIHdlbGwgYnV0IEknbSBub3QKPj4gaW50ZXJlc3RlZCBpbiBhcmd1aW5n IGVuZGxlc3NseSBvciBpbml0aWF0aW5nIG9yIHZvdGUsIHNvIGlmIHRoZSBwYXRjaAo+PiBpcyBu b3QgYWxsb3dlZCBpbiBJIHdpbGwgYWNjZXB0IHRoYXQgZGVjaXNpb24gYnV0IEkgd2lsbCBzZWUg bm8gcG9pbnQKPj4gaW4gY29udGludWluZyBhcyBtYWludGFpbmVyIG9mIHRoZSBzeXN0ZW0uCj4K PiBBdCBhIGJhc2ljIGxldmVsLCB0aGUgb3RoZXIgbWFpbnRhaW5lcnMgd2lsbCBhZ3JlZSB0aGF0 IEkgc2hvdWxkbid0Cj4gYWNjZXB0IGNvZGUgdW5sZXNzIEkgYW0gY29udmluY2VkIGl0J3MgZm9y IHRoZSBnb29kIG9mIHRoZSBwcm9qZWN0LiAgQnV0Cj4gc2luY2UgdGhpcyBpcyBhIHRlY2huaWNh bCBpc3N1ZSwgYmVmb3JlIGFueW9uZSB3b3VsZCBleHByZXNzIGFuIG9waW5pb24KPiB0byBhc2sg bWUgdG8gY2hhbmdlIG15IG1pbmQsIHRoZXkgd291bGQgd2FudCBhIG1vcmUgY29tcGxldGUgdmll dyBvZiB0aGUKPiBmYWN0cyBvZiB0aGUgbWF0dGVyIC0tIGZhY3RzIHdoaWNoIHlvdSBhbmQgSSBh cmUgc3RpbGwgaW4gdGhlIHByb2Nlc3Mgb2YKPiBzb3J0aW5nIG91dC4KCkJvdGggb2YgdGhlc2Ug c3lzdGVtcyBhcmUgZmFpcmx5IGNvbXBsaWNhdGVkIGFuZCBub3QgbWFueSBwZW9wbGUgaGF2ZQpi ZWVuIGxvb2tpbmcgYXQgdGhlbSBpbi1kZXB0aCwgc28gSSBtb3N0IGNlcnRhaW5seSBhcHByZWNp YXRlIHRoZSB0aW1lCnlvdSBzcGVudCBvbiByZXZpZXdpbmcgdGh1cyBmYXIuIEJ1dCB5b3VyIGNv bmNsdXNpb24gdGhhdCB0aGVyZSBpcyBhCiJsb25nIHdheSB0byBnbyBoZXJlIiB0ZWxscyBtZSB0 aGF0IGFuIGFyYml0cmFyeSBjcml0ZXJpYSBpcyBnZXR0aW5nCnB1c2hlZCBvbiBtZSB0aGF0IEkg ZG9uJ3QgZXZlbiBrbm93IGhvdyB0byBhZGRyZXNzLiBUaGUgYWx0cDJtIHN5c3RlbQpnb3QgbWVy Z2VkIHdoaWxlIGl0IHdhcyBrbm93biB0aGF0IGl0IGNyYXNoZXMgdGhlIGh5cGVydmlzb3Igd2hl bgptZW1fc2hhcmluZyBpcyB1c2VkLCBidXQgbm93IHdoZW4gYW4gaW5jcmVtZW50YWwgZml4IGlu dHJvZHVjZXMgYXQKbGVhc3Qgb25lIHNldHVwIHdoZXJlIHRoZXkgY2FuIGJlIHVzZWQgdG9nZXRo ZXIsIGFsbCBvZiBhIHN1ZGRlbiB0aGF0CmlzIHJlZ3Jlc3Npb24uIEkgdW5kZXJzdGFuZCB0aGF0 IGl0IHdvdWxkIGJlIGJldHRlciB0byBhZGRyZXNzIGFsbApjYXNlcyBhbmQgbWFrZSB0aGUgc3lz dGVtIGFzIHJvYnVzdCBhcyBwb3NzaWJsZS4gSXQncyBqdXN0IHdheSBiZXlvbmQKd2hhdCBJIGNh biBkbyBoZXJlLgoKPgo+PiBBcyBwcmV0dHkgbXVjaCBteQo+PiBwcm9qZWN0IGlzIHRoZSBvbmx5 IHVzZS1jYXNlIHdoZXJlIHRoZXNlIHR3byBzeXN0ZW1zIHdvdWxkIGJlIHVzZWQKPj4gdG9nZXRo ZXIgYXQgdGhpcyBwb2ludCwgYW5kIHNpbmNlIEkgYWxyZWFkeSByZXF1aXJlIG15IHVzZXJzIHRv Cj4+IGNvbXBpbGUgWGVuIGZyb20gc291cmNlIGl0IGlzIGp1c3QgZWFzaWVyIHRvIGdvIHRoaXMg cm91dGUgdGhlbiB3aGF0Cj4+IHlvdSBzdWdnZXN0IGFuZCBleHBsb3JpbmcgYW5kIHJlbWVkeWlu ZyBhbGwgcG9zc2libGUgd2F5cyB0aGUgdHdvCj4+IHN5c3RlbXMgY291bGQgYmUgbWlzdXNlZCB3 aGVuIHNldHVwIGluIHdheXMgdGhleSB3ZXJlIG5vdCBpbnRlbmRlZC4gSWYKPj4gdGhlc2Ugd2Vy ZSBjb25zaWRlcmVkIHN0YWJsZSBmZWF0dXJlcyBhbmQgbm90IGV4cGVyaW1lbnRhbCBJIHdvdWxk Cj4+IGFncmVlLCBidXQgdGhhdCdzIGp1c3Qgbm90IHRoZSBjYXNlLiBTbyBJIHRoaW5rIGJvdGgg b2Ygb3VyIHRpbWUgaXMKPj4gYmV0dGVyIHNwZW50IGRvaW5nIG90aGVyIHRoaW5ncyB0aGVuIGFy Z3VpbmcuCj4KPiBTbyBhIGxvdCBvZiBwb2ludHMgaGVyZS4KPgo+IFlvdSBoYXZlIG5vIGlkZWEg d2hhdCBvdGhlciBwcm9qZWN0cyBhcmUgZG9pbmcuICBMb3RzIG9mIHBlb3BsZSB0YWtlIHRoZQo+ IFhlbiBjb2RlLCBkbyBzb21ldGhpbmcgd2l0aCBpdCBpbnRlcm5hbGx5LCBhbmQgYW5kIHdlIG5l dmVyIGhlYXIgZnJvbQo+IHRoZW0uICBPciBtYXliZSB0aGV5J3JlIGluIGEgc3RhcnQtdXAgaW4g c3RlYWx0aCBtb2RlIGFuZCB3aWxsIGFubm91bmNlCj4gdGhlbXNlbHZlcyBpbiBkdWUgY291cnNl LiAgSWYgeW91IHN0ZXAgZG93biBmcm9tIGJlaW5nIGEgbWFpbnRhaW5lciBhbmQKPiBzdG9wIGVu Z2FnaW5nIHdpdGggdGhlIGNvbW11bml0eSB5b3UnbGwgYmUgaW4gdGhlIHNhbWUgcG9zaXRpb24u CgpTdXJlbHksIEkgZGlkbid0IGltcGx5IHRoZXJlIHdvdWxkIG9yIGNvdWxkIGJlIG5vb25lIGVs c2Ugd2hvIHdvdWxkIGJlCmludGVyZXN0ZWQgaW4gdGhlc2UgdHdvIHN5c3RlbXMgd29ya2luZyB0 b2dldGhlci4gQWxsIEkgbWVhbnQgd2FzIHRoYXQKbXkgcHJvamVjdCBpcyB0aGUgb25seSBrbm93 biBvcGVuc291cmNlIHByb2plY3QgYXQgdGhpcyB0aW1lIHRoYXQgZXZlbgp1c2VzIG1lbV9zaGFy aW5nIGFuZCBhbHRwMm0uIElmIGFueW9uZSBlbHNlIHdvdWxkIGhhdmUgYmVlbiBpbnRlcmVzdGVk CmluIGdldHRpbmcgdGhlIHR3byBzeXN0ZW1zIHdvcmtpbmcgdG9nZXRoZXIgb3RoZW4gdGhlbiBt ZSB0aGV5CnByb2JhYmx5IHdvdWxkIGhhdmUgY29tcGxhaW5lZCBhbHJlYWR5IHRoYXQgaGV5IHRo aXMgY3Jhc2hlcyB0aGUKaHlwZXJ2aXNvci4gTXkgcG9pbnQgYmVpbmcgdGhhdCBhdCB0aGlzIHBv aW50IHRoZSBpbXBhY3Qgb2YgdGhpcyBwYXRjaAppcyBsaWtlbHkgcmVhbGx5IGxvdy4KCj4KPiBU aGVyZSdzIGEgdmVyeSBvYnZpb3VzIG90aGVyIHVzZSBjYXNlIHdoaWNoIEkndmUgYmVlbiB0YWxr aW5nIGFib3V0IGZyb20KPiB0aGUgYmVnaW5uaW5nOiBBIGhvc3QgYWRtaW5pc3RyYXRvciAvIGNs b3VkIHByb3ZpZGVyIC8gdXNlciB3YW50cyB0bwo+IGJvdGggMSkgdXNlIHBhZ2Ugc2hhcmluZyB0 byBpbXByb3ZlIG1lbW9yeSBlZmZpY2llbmN5LCBhbmQgMikgYWxsb3cKPiB0b29scyB1c2luZyB0 aGUgYWx0cDJtIGZlYXR1cmUgdG8gcnVuIGludGVybmFsbHkgd2l0aGluIHRoZSBndWVzdC4KPiAo R2l2ZW4gdGhhdCBJIGhhdmUgYnJvdWdodCBpdCB1cCBzZXZlcmFsIHRpbWVzIHZlcnkgZXhwbGlj aXRseSwgSSBhbSBpbgo+IGZhY3QgYSBiaXQgYXQgYSBsb3NzIHRvIHVuZGVyc3RhbmQgd2h5IHlv dSB3b3VsZCBzYXkgeW91ciBwcm9qZWN0IGlzIHRoZQo+ICJvbmx5IHVzZSBjYXNlIHdoZXJlIHRo ZXNlIHR3byBzeXN0ZW1zIHdvdWxkIGJlIHVzZWQgdG9nZXRoZXIiLikKPgo+IEV2ZW4gaXQgd2Vy ZSB0cnVlIHRoYXQgeW91ciBwcm9qZWN0IGlzIHRoZSBvbmx5IHVzZSBjYXNlLCBtYWtpbmcgdGhl Cj4gY29kZSBzbyB0aGF0IGl0IG9ubHkgd29ya3MgZm9yIHlvdXIgdXNlIGNhc2UgaXMgYSBzdXJl LWZpcmUgd2F5IHRvCj4gZ3VhcmFudGVlIHRoYXQgdGhlcmUgbmV2ZXIgYXJlIGFueSBvdGhlciB1 c2UgY2FzZXMuCgpXZWxsLCBJIGRvIG1ha2Ugc3VyZSBvZiB0aGF0IGluIG15IHByb2plY3QgYnkg d2F5IG9mIGEgY3VzdG9tIFhTTQpwb2xpY3kgdGhhdCBkaXNhYmxlcyB0aGUgZ3Vlc3QgZnJvbSBi ZWluZyBhYmxlIHRvIGRvIGFsdHAybSBvbiBpdHNlbGYuCkkgZG9uJ3Qga25vdyB3aGF0IG90aGVy IHdheSB5b3UgY291bGQgZW52aXNpb24gdG8gZW5mb3JjZSBzdWNoCnNlcGFyYXRpb24gdGhlbiBk b2N1bWVudGluZyB0aGUga25vd24gYmVoYXZpb3JzIG9mIHRoZSBzeXN0ZW0gYW5kCnRydXN0aW5n IHRoYXQgdGhlIGJyYXZlIGVub3VnaCBhZG1pbmlzdHJhdG9yIHdobyB0dXJucyBvbiBleHBlcmlt ZW50YWwKZmVhdHVyZXMgaXMgcmVhZHkgdG8gZXhwZXJpbWVudCB3aXRoIHRoZW0uCgo+IEknbSBu b3QgaW5zaXN0aW5nIHRoYXQgeW91IGVpdGhlciBsZWF2ZSB0aGUgY29kZSBicm9rZW4gb3IgbWFr ZSBzaGFyaW5nCj4gYW5kIGFsdHAybSBvdmVyIHRoZSBzYW1lIGdmbiByYW5nZXMgZnVsbHkgcm9i dXN0LiAgV2hhdCBJJ3ZlIGJlZW4KPiBzdWdnZXN0aW5nIHlvdSBkbyBpcyB0byBmaXggdGhlIGNv ZGUgc28gdGhhdCBpdCB3b3JrcyBhcyBpdCBpcwo+ICppbnRlbmRlZCogdG8gd29yayBjdXJyZW50 bHkgLS0gdGhhdCBpcywgdGhhdCBnZm5zIHJlZmVyZWQgdG8gYnkgYWx0cDJtcwo+IHdpbGwgYmUg cHJldmVudGVkIGZyb20gYmVpbmcgc2hhcmVkLiAgTWF5YmUgdGhhdCdzIG5vdCBwb3NzaWJsZSwg b3IKPiBtYXliZSB0aGF0J3Mgbm90IHN1aXRhYmxlIGZvciB5b3VyIHVzZSBjYXNlOyBidXQgeW91 IGhhdmVuJ3QgeWV0IGFyZ3VlZAo+IGVpdGhlciBvZiB0aG9zZSBwb2ludHMuCgpPSywgbm93IHRo aXMgaXMgYSB0ZWNobmljYWwgcG9pbnQgdGhhdCBjYW4gYmUgYWRkcmVzc2VkIGFuZCBoYXMgbm90 CmJlZW4gYXJ0aWN1bGF0ZWQgYXMgc3VjaC4gRnJvbSBteSBwZXJzcGVjdGl2ZSB0aGlzIGlzIGZp bmUsIG15IHVzZWNhc2UKYXNzdW1lcyB0aGUgZG9tYWluIGlzIGNvbXBsZXRlbHkgbWVtc2hhcmVk IGJlZm9yZSBhbnkgYWx0cDJtCm9wZXJhdGlvbnMgYXJlIGRvbmUgc28gSSBzZWUgbm8gcHJvYmxl bSB3aXRoIHRoaXMuCgo+Cj4gQXMgSSd2ZSBzYWlkLCBpdCBzZWVtcyB0byBtZSBsaWtlIHRoZSBv cHRpb24geW91J3ZlIGNob3NlbiBpc24ndCBldmVuCj4gdGhlIGJlc3Qgb3B0aW9uICpmb3IgeW91 ciBwcm9qZWN0Ki4gIFlvdSdyZSBnaXZpbmcgKnlvdXJzZWxmKiBhbgo+IGludGVyZmFjZSB3aGlj aCBpcyBpbmhlcmVudGx5IGZyYWdpbGUsIGFuZCBmb3Igd2hpY2ggeW91IGFzIHRoZSBjb25zdW1l cgo+IG9mIHRoYXQgaW50ZXJmYWNlIG5lZWQgdG8gdGhpbmsgY2FyZWZ1bGx5IGFib3V0IGFsbCB0 aGUgY29ybmVyIGNhc2VzIGFuZAo+IHRoZW4gZWl0aGVyIGF2b2lkIHRoZW0gb3IgdXNlIG1lbV9z aGFyaW5nIHRvIHdvcmsgYXJvdW5kIHRoZW0uICBJcyB0aGF0Cj4gYWN0dWFsbHkgbW9yZSBkaWZm aWN1bHQgdGhhbiBqdXN0IGRvaW5nIHRoZSB3b3JrIHVwIGZyb250IHRvIG1ha2Ugc3VyZQo+IHRo YXQgdGhlIGNvcm5lciBjYXNlcyBhcmUgaGFuZGxlZCBpbiBhIHJvYnVzdCBtYW5uZXIgYnkgWGVu Pwo+Cj4gRmluYWxseSwgeWVzIG9uZSBvZiB0aGUgYmVuZWZpdHMgb2YgYmVpbmcgYSBtYWludGFp bmVyIGlzIHRoYXQgeW91IGNhbgo+IHNoZXBoZXJkIGFuZCBkZXZlbG9wIHRoZSBjb2RlIHRoYXQg eW91IG1haW50YWluIHRvIG1ha2Ugc3VyZSB0aGF0IGl0Cj4gZG9lc24ndCBkZWdyYWRlIGFuZCBj b250aW51ZXMgdG8gd29yayBmb3IgdXNlIGNhc2VzIHRoYXQgeW91IGNhcmUgYWJvdXQuCj4gIEJ1 dCBvbmUgb2YgdGhlIHJlc3BvbnNpYmlsaXRpZXMgb2YgdGhhdCBpcyBsb29raW5nIG5vdCBvbmx5 IGZvciB5b3VyCj4gb3duIHVzZSBjYXNlLCBidXQgdG8gdHJ5IHRvIG1ha2UgaXQgYSB1c2VmdWwg dG9vbCBmb3IgdGhlIGNvbW11bml0eSBhcyBhCj4gd2hvbGUuCj4KPiBXb3JraW5nIHdpdGggdGhl IGNvbW11bml0eSBjZXJ0YWlubHkgaXMgYSBsb3Qgb2Ygd29yaywgYnV0IGl0J3MgYSAqbG90Kgo+ IGxlc3Mgd29yayB0aGFuIHdyaXRpbmcgeW91ciBvd24gaHlwZXJ2aXNvci4gIEl0J3MgYWxzbyBs ZXNzIHdvcmssIGluIHRoZQo+IGVuZCwgdGhhbiBrZWVwaW5nIGEgbWFzc2l2ZSBwYXRjaHNldCBv dXQtb2YtdHJlZSBhbmQgaGF2aW5nIHRvIHJlYmFzZQo+IGV2ZXJ5IHJlbGVhc2UuICBBbmQgaXQg b2Z0ZW4gZW5kcyB1cCBpbXByb3ZpbmcgYW5kIHNoYXJwZW5pbmcgdGhlIGNvZGUKPiB5b3Ugd3Jv dGUgYW55d2F5Lgo+CgpZZXMsIEkgYWJzb2x1dGVseSBhZ3JlZSBhbmQgdGhhdCdzIHdoeSBJJ3Zl IGJlZW4gd29ya2luZyBoYXJkIHdpdGggdGhlCmNvbW11bml0eSB0aGlzIHBhc3QgeWVhcnMgdG8g aW1wcm92ZSBhIGxvdCBvZiBoYWxmIC0gb3IgY29tcGxldGVseSAtCmFiYW5kb25lZCBhbmQgdW5k b2N1bWVudGVkIHBvcnRpb25zIG9mIHRoZSBzeXN0ZW0uIEkgY2VydGFpbmx5IGRvbid0Cmxpa2Ug Y2Fycnlpbmcgb3V0LW9mLXRyZWUgcGF0Y2hlcyBhbmQgaXQncyBub3QgbXkgZmlyc3QgY2hvaWNl LgpIb3dldmVyLCBpdCBpcyB1bnJlYXNvbmFibGUgdG8gZXhwZWN0IGNvbXBsZXRlIHJld29ya3Mg YW5kL29yCmFkZHJlc3NpbmcgYWxsIHBvc3NpYmxlIG1pc3VzZSBjYXNlcyBvbiBleHBlcmltZW50 YWwgcGFydHMgdGhhdCBoYXZlCnZlcnkgbG93IHV0aWxpdHkgZm9yIG1vc3QgcGVvcGxlLgoKRGVz Y3JpYmluZyBhbmQgZml4aW5nIGFsbCBwb3NzaWJsZSB3YXlzIGhvdyBleHBlcmltZW50cyBjYW4g Z28gd3JvbmcKd2l0aCBleHBlcmltZW50YWwgc3lzdGVtcyBpcyB1bnJlYXNvbmFibGUgYW5kIGlz IG5vdCB3aGF0IEkgYWdyZWVkIHRvCndoZW4gSSBhY2NlcHRlZCB0byBtYWludGFpbiBtZW1fc2hh cmluZy4gSSd2ZSBhY2NlcHRlZCBpdCB3aXRoIHRoZQp1bmRlcnN0YW5kaW5nIHRoYXQgSSBjYW4g ZG8gIm9kZCBmaXhlcyIgYW5kIGluY3JlbWVudGFsIGltcHJvdmVtZW50cwpoZXJlIGFuZCB0aGVy ZS4gSSB1bmRlcnN0YW5kIGlmIHRoaXMgbWF5IG5vdCBiZSBhY2NlcHRhYmxlIGZvciB5b3VyCmNv bXBvbmVudHMgYnV0IHNpbmNlIG1lbV9zaGFyaW5nIGlzIGluaGVyZW50bHkgZW50YW5nbGVkIHdp dGggaXQsIHRoZW4KdGhhdCBtZWFucyB0aGF0IGRvaW5nIG9kZCBmaXhlcyBpcyBub3QgcG9zc2li bGUgc28ga2VlcGluZyB0aGF0IGhhdCBhcwppcyBwb2ludGxlc3MuIEkgY2VydGFpbmx5IGhvcGUg d2UgY2FuIGRvIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBhcyBJCmRvbid0IHNlZSBhbnlvbmUg cGlja2luZyB0aGlzIHVwIGFueXRpbWUgaW4gdGhlIG5lYXIgZnV0dXJlLgoKVGhhbmtzLApUYW1h cwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==