From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v4 00/27] arm64: Dom0 ITS emulation Date: Tue, 4 Apr 2017 13:36:44 +0100 Message-ID: <93b67304-9f50-dfdb-60a9-15167dc99897@arm.com> References: <20170403202829.7278-1-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 1cvNhZ-0001yN-W6 for xen-devel@lists.xenproject.org; Tue, 04 Apr 2017 12:36:50 +0000 In-Reply-To: <20170403202829.7278-1-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andre Przywara , Stefano Stabellini Cc: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmUsCgpEZXNwaXRlIGhhdmluZyBhc2tlZCBtdWx0aXBsZSB0aW1lcyBhIGxpc3Qgb2Yg bWlzc2luZyBpdGVtcyB0byBzdXBwb3J0IApndWVzdCwgdGhlIGxpc3QgaXMgc3RpbGwgbm90IHRo ZXJlLgoKUGxlYXNlIHByb3ZpZGUgYSBmdWxsIGxpc3Qgb2Ygd2hhdCBpcyBtaXNzaW5nIGluIHRo ZSBjb3ZlciBsZXR0ZXIgb2YgdGhlIApuZXh0IHZlcnNpb24uCgpDaGVlcnMsCgpPbiAwMy8wNC8x NyAyMToyOCwgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6Cj4gSGksCj4KPiBJIG1hbmFnZWQgdG8gZ28g b3ZlciB0aGUgcmVtYWluaW5nIGVtYWlscyBJIGNvdWxkbid0IGZpbmlzaCBvbiBGcmlkYXkuCj4g VGhpcyBzZXJpZXMgaXMgdGhlIHJlc3VsdCBvZiB0aGlzIGFuZCBoYXMgYWJvdXQgMzAgc21hbGxl ciBmaXhlcywgc2VlCj4gdGhlIGNoYW5nZWxvZyBiZWxvdy4gVGhpcyBzaG91bGQgYWRkcmVzcyBh bGwgY29tbWVudHMgU3RlZmFubyBoYWQuCj4gVGhlcmUgYXJlIGEgZmV3IHRoaW5ncyBteSBicmFp biBjYW5ub3QgY29wZSB3aXRoIHRvZGF5IGFueW1vcmUsIHNvIEkKPiB3aWxsIGFkZHJlc3MgdGhl bSB3aXRoIEp1bGllbiBmYWNlLXRvLWZhY2UgdG9tb3Jyb3c6Cj4gLSBNb3ZlIGxwaV9nZXRfcHJp b3JpdHkoKSBhbmQgZG9fTFBJKCkgaW50byBnaWNfb3BzCj4gLSBjaGVjayBNT1ZJIGJlaGF2aW9y IGluIG91ciBzcGVjaWFsIGNhc2UKPiAtIGNoZWNrIExQSSBzdGF0ZSBjaGFuZ2VzIGlmIGFscmVh ZHkgaW4gYW4gTFIKPiAtIGltcGxlbWVudCBpbmRpcmVjdCB0YWJsZQo+IC0gbW92ZSBHRU5NQVNL X1VMTCBhbmQgb3RoZXIgaGVscGVycyBpbnRvIHNlcGFyYXRlIHBhdGNoZXMKPiAtIHJlLWNoZWNr IGlzc3VlIHJlcG9ydGVkIGJ5IENhdml1bQo+IC0gYWdyZWUgb24gaGF2aW5nIGEgY29tbWFuZCBs aW5lIGZvciB0aGUgZGV2aWNlcyBvciBub3QKPiAtIHJlYmFzaW5nIGFydGlmYWN0cwo+IC0gYW55 dGhpbmcgbm90IG1lbnRpb25lZCBoZXJlIDstKQo+Cj4gQ2hlZXJzLAo+IEFuZHJlCj4KPiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVGhpcyBzZXJpZXMgYWRkcyBzdXBwb3J0 IGZvciBlbXVsYXRpb24gb2YgYW4gQVJNIEdJQ3YzIElUUyBpbnRlcnJ1cHQKPiBjb250cm9sbGVy LiBGb3IgaGFyZHdhcmUgd2hpY2ggcmVsaWVzIG9uIHRoZSBJVFMgdG8gcHJvdmlkZSBpbnRlcnJ1 cHRzIGZvcgo+IGl0cyBwZXJpcGhlcmFscyB0aGlzIGNvZGUgaXMgbmVlZGVkIHRvIGdldCBhIG1h Y2hpbmUgYm9vdGVkIGludG8gRG9tMCBhdAo+IGFsbC4gSVRTIGVtdWxhdGlvbiBmb3IgRG9tVXMg aXMgb25seSByZWFsbHkgdXNlZnVsIHdpdGggUENJIHBhc3N0aHJvdWdoLAo+IHdoaWNoIGlzIG5v dCB5ZXQgYXZhaWxhYmxlIGZvciBBUk0uIEl0IGlzIGV4cGVjdGVkIHRoYXQgdGhpcyBmZWF0dXJl Cj4gd2lsbCBiZSBjby1kZXZlbG9wZWQgd2l0aCB0aGUgSVRTIERvbVUgY29kZS4gSG93ZXZlciB0 aGlzIGNvZGUgZHJvcCBoZXJlCj4gY29uc2lkZXJlZCBEb21VIGVtdWxhdGlvbiBhbHJlYWR5LCB0 byBrZWVwIGxhdGVyIGFyY2hpdGVjdHVyYWwgY2hhbmdlcwo+IHRvIGEgbWluaW11bS4KPgo+IFNv bWUgZ2VuZXJpYyBkZXNpZ24gcHJpbmNpcGxlczoKPgo+ICogVGhlIGN1cnJlbnQgR0lDIGNvZGUg c3RhdGljYWxseSBhbGxvY2F0ZXMgc3RydWN0dXJlcyBmb3IgZWFjaCBzdXBwb3J0ZWQKPiBJUlEg KGJvdGggZm9yIHRoZSBob3N0IGFuZCB0aGUgZ3Vlc3QpLCB3aGljaCBkdWUgdG8gdGhlIHBvdGVu dGlhbGx5Cj4gbWlsbGlvbnMgb2YgTFBJIGludGVycnVwdHMgaXMgbm90IGZlYXNpYmxlIHRvIGNv cHkgZm9yIHRoZSBJVFMuCj4gU28gd2UgcmVmcmFpbiBmcm9tIGludHJvZHVjaW5nIHRoZSBJVFMg YXMgYSBmaXJzdCBjbGFzcyBYZW4gaW50ZXJydXB0Cj4gY29udHJvbGxlciwgYWxzbyB3ZSBkb24n dCBob2xkIHN0cnVjdCBpcnFfZGVzYydzIG9yIHN0cnVjdCBwZW5kaW5nX2lycSdzCj4gZm9yIGVh Y2ggcG9zc2libGUgTFBJLgo+IEZvcnR1bmF0ZWx5IExQSXMgYXJlIG9ubHkgaW50ZXJlc3Rpbmcg dG8gZ3Vlc3RzLCBzbyB3ZSBnZXQgYXdheSB3aXRoCj4gc3RvcmluZyBvbmx5IHRoZSB2aXJ0dWFs IElSUSBudW1iZXIgYW5kIHRoZSBndWVzdCBWQ1BVIGZvciBlYWNoIGFsbG9jYXRlZAo+IGhvc3Qg TFBJLCB3aGljaCBjYW4gYmUgc3Rhc2hlZCBpbnRvIG9uZSB1aW50NjRfdC4gVGhpcyBkYXRhIGlz IHN0b3JlZCBpbgo+IGEgdHdvLWxldmVsIHRhYmxlLCB3aGljaCBpcyBib3RoIG1lbW9yeSBlZmZp Y2llbnQgYW5kIHF1aWNrIHRvIGFjY2Vzcy4KPiBXZSBob29rIGludG8gdGhlIGV4aXN0aW5nIElS USBoYW5kbGluZyBhbmQgVkdJQyBjb2RlIHRvIGF2b2lkIGFjY2Vzc2luZwo+IHRoZSBub3JtYWwg c3RydWN0dXJlcywgcHJvdmlkaW5nIGFsdGVybmF0aXZlIG1ldGhvZHMgZm9yIGdldHRpbmcgdGhl Cj4gbmVlZGVkIGluZm9ybWF0aW9uIChwcmlvcml0eSwgaXMgZW5hYmxlZD8pIGZvciBMUElzLgo+ IEZvciBpbnRlcnJ1cHRzIHdoaWNoIGFyZSBxdWV1ZWQgdG8gb3IgYXJlIGFjdHVhbGx5IGluIGEg Z3Vlc3Qgd2UKPiBhbGxvY2F0ZSBzdHJ1Y3QgcGVuZGluZ19pcnEncyBvbiBkZW1hbmQuIEFzIGl0 IGlzIGV4cGVjdGVkIHRoYXQgb25seSBhCj4gdmVyeSBzbWFsbCBudW1iZXIgb2YgaW50ZXJydXB0 cyBpcyBldmVyIG9uIGEgVkNQVSBhdCB0aGUgc2FtZSB0aW1lLCB0aGlzCj4gc2VlbXMgbGlrZSB0 aGUgYmVzdCBhcHByb2FjaC4gRm9yIG5vdyBhbGxvY2F0ZWQgc3RydWN0cyBhcmUgcmUtdXNlZCBh bmQKPiBoZWxkIGluIGEgbGlua2VkIGxpc3QuIFNob3VsZCBpdCBlbWVyZ2UgdGhhdCB0cmF2ZXJz aW5nIGEgbGlua2VkIGxpc3QKPiBpcyBhIHBlcmZvcm1hbmNlIGlzc3VlLCB0aGlzIGNhbiBiZSBj aGFuZ2VkIHRvIHVzZSBhIGhhc2ggdGFibGUuCj4KPiAqIE9uIHRoZSBndWVzdCBzaWRlIHdlIChs YXRlciB3aWxsKSBoYXZlIHRvIGRlYWwgd2l0aCBtYWxpY2lvdXMgZ3Vlc3RzCj4gdHJ5aW5nIHRv IGhvZyBYZW4gd2l0aCBtYXBwaW5nIHJlcXVlc3RzIGZvciBhIGxvdCBvZiBMUElzLCBmb3IgaW5z dGFuY2UuCj4gQXMgdGhlIElUUyBhY3R1YWxseSB1c2VzIHN5c3RlbSBtZW1vcnkgZm9yIHN0b3Jp bmcgc3RhdHVzIGluZm9ybWF0aW9uLAo+IHdlIHVzZSB0aGlzIG1lbW9yeSAod2hpY2ggdGhlIGd1 ZXN0IGhhcyB0byBwcm92aWRlKSB0byBuYXR1cmFsbHkgbGltaXQKPiBhIGd1ZXN0LiBGb3IgdGhv c2UgdGFibGVzIHdoaWNoIGFyZSBwYWdlIHNpemVkIChkZXZpY2VzLCBjb2xsZWN0aW9ucyAoQ1BV cyksCj4gTFBJIHByb3BlcnRpZXMpIHdlIG1hcCB0aG9zZSBwYWdlcyBpbnRvIFhlbiwgc28gd2Ug Y2FuIGVhc2lseSBhY2Nlc3MKPiB0aGVtIGZyb20gdGhlIHZpcnR1YWwgR0lDIGNvZGUuCj4gVW5m b3J0dW5hdGVseSB0aGUgYWN0dWFsIGludGVycnVwdCBtYXBwaW5nIHRhYmxlcyBhcmUgbm90IG5l Y2Vzc2FyaWx5Cj4gcGFnZSBhbGlnbmVkLCBhbHNvIGNhbiBiZSBtdWNoIHNtYWxsZXIgdGhhbiBh IHBhZ2UsIHNvIG1hcHBpbmcgYWxsIG9mCj4gdGhlbSBwZXJtYW5lbnRseSBpcyBmaWRkbHkuIEFz IElUUyBjb21tYW5kcyBpbiBuZWVkIHRvIGl0ZXJhdGUgdGhvc2UKPiB0YWJsZXMgYXJlIHByZXR0 eSByYXJlIGFmdGVyIGFsbCwgd2UgZm9yIG5vdyBtYXAgdGhlbSBvbiBkZW1hbmQgdXBvbgo+IGVt dWxhdGluZyBhIHZpcnR1YWwgSVRTIGNvbW1hbmQuIFRoaXMgaXMgYWNjZXB0YWJsZSBiZWNhdXNl ICJtYXBwaW5nIgo+IHRoZW0gaXMgYWN0dWFsbHkgdmVyeSBjaGVhcCBvbiBhcm02NC4gQWxzbyBh cyB3ZSBjYW4ndCBwcm9wZXJseSBwcm90ZWN0Cj4gdGhvc2UgYXJlYXMgZHVlIHRvIHRoZWlyIHN1 Yi1wYWdlLXNpemUgcHJvcGVydHksIHdlIHZhbGlkYXRlIHRoZSBkYXRhCj4gaW4gdGhlcmUgYmVm b3JlIGFjdHVhbGx5IHVzaW5nIGl0LiBUaGUgdklUUyBjb2RlIGJhc2ljYWxseSBqdXN0IHN0b3Jl cwo+IHRoZSBkYXRhIGluIHRoZXJlIHdoaWNoIHRoZSBndWVzdCBoYXMgYWN0dWFsbHkgdHJhbnNm ZXJyZWQgdmlhIHRoZQo+IHZpcnR1YWwgSVRTIGNvbW1hbmQgcXVldWUgYmVmb3JlLCBzbyB0aGVy ZSBpcyBubyBzZWNyZXQgcmV2ZWFsZWQgbm9yCj4gZG9lcyBpdCBjcmVhdGUgYW4gYXR0YWNrIHZl Y3RvciBmb3IgYSBtYWxpY2lvdXMgZ3Vlc3QuCj4KPiAqIEFuIG9idmlvdXMgYXBwcm9hY2ggdG8g aGFuZGxpbmcgc29tZSBndWVzdCBJVFMgY29tbWFuZHMgd291bGQgYmUgdG8KPiBwcm9wYWdhdGUg dGhlbSB0byB0aGUgaG9zdCwgZm9yIGluc3RhbmNlIHRvIG1hcCBkZXZpY2VzIGFuZCBMUElzIGFu ZAo+IHRvIGVuYWJsZSBvciBkaXNhYmxlIExQSXMuCj4gSG93ZXZlciB0aGlzIChsYXRlciB3aXRo IERvbVUgc3VwcG9ydCkgd2lsbCBjcmVhdGUgYW4gYXR0YWNrIHZlY3RvciwgYXMKPiBhIG1hbGlj aW91cyBndWVzdCBjb3VsZCB0cnkgdG8gZmlsbCB0aGUgaG9zdCBjb21tYW5kIHF1ZXVlIHdpdGgK PiBwcm9wYWdhdGVkIGNvbW1hbmRzLgo+IFNvIHdlIHRyeSB0byBhdm9pZCB0aGlzIHNpdHVhdGlv bjogRG9tMCBzZW5kaW5nIGEgZGV2aWNlIG1hcHBpbmcgKE1BUEQpCj4gY29tbWFuZCBpcyB0aGUg b25seSB0aW1lIHdlIGFsbG93IHF1ZXVpbmcgY29tbWFuZHMgdG8gdGhlIGhvc3QgSVRTIGNvbW1h bmQKPiBxdWV1ZSwgYXMgdGhpcyBzZWVtcyB0byBiZSB0aGUgb25seSByZWxpYWJsZSB3YXkgb2Yg Z2V0dGluZyB0aGUKPiByZXF1aXJlZCBpbmZvcm1hdGlvbiBhdCB0aGUgbW9tZW50LiBIb3dldmVy IGF0IHRoZSBzYW1lIHRpbWUgd2UgbWFwIGFsbAo+IGV2ZW50cyB0byBMUElzIGFscmVhZHksIGFs c28gZW5hYmxlIHRoZW0uIFRoaXMgYXZvaWRzIHNlbmRpbmcgY29tbWFuZHMKPiBsYXRlciBhdCBy dW50aW1lLCBhcyB3ZSBjYW4gZGVhbCB3aXRoIG1hcHBpbmdzIGFuZCBMUEkgZW5hYmxpbmcvZGlz YWJsaW5nCj4gaW50ZXJuYWxseS4KPgo+IEFzIGl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlIElUUyBz dXBwb3J0IHdpbGwgYmVjb21lIGEgdGVjaCBwcmV2aWV3IGluIHRoZQo+IGZpcnN0IHJlbGVhc2Us IHRoZXJlIGlzIGEgS2NvbmZpZyBvcHRpb24gdG8gZW5hYmxlIGl0LiBBbHNvIGl0IGlzCj4gc3Vw cG9ydGVkIG9uIGFybTY0IG9ubHksIHdoaWNoIHdpbGwgbW9zdCBsaWtlbHkgbm90IGNoYW5nZSBp biB0aGUgZnV0dXJlLgo+IFRoaXMgbGVhZHMgdG8gc29tZSBoaWRlb3VzIGNvbnN0cnVjdHMgbGlr ZSBhbiAjaWZkZWYnZWQgaGVhZGVyIGZpbGUgd2l0aAo+IGVtcHR5IGZ1bmN0aW9uIHN0dWJzLCBJ IGhhdmUgc29tZSBob3BlIHdlIGNhbiBzdGlsbCBjbGVhbiB0aGlzIHVwLgo+IEFsc28gc29tZSBw YXJhbWV0ZXJzIGFyZSBjb25maWcgb3B0aW9ucyB3aGljaCBjYW4gYmUgb3ZlcnJpZGRlbiBvbiB0 aGUKPiBYZW4gY29tbWFuZGxpbmUuIFRoaXMgaXMgdG8gc3VwcG9ydCBleHBlcmltZW50YXRpb24g YW5kIGFkYXB0aW9uIHRvCj4gdmFyaW91cyBwbGF0Zm9ybXMsIGlkZWFsbHkgd2UgZmluZCBlaXRo ZXIgb25lLXNpemUtZml0cy1hbGwgdmFsdWVzIG9yCj4gZmluZCBhbm90aGVyIHdheSBvZiBnZXR0 aW5nIHJpZCBvZiB0aGlzLgo+Cj4gVGhpcyBjb2RlIGJvb3RzIERvbTAgb24gYW4gQVJNIEZhc3Qg TW9kZWwgd2l0aCBJVFMgc3VwcG9ydC4gSSB0cmllZCB0bwo+IGFkZHJlc3MgdGhlIGlzc3VlcyBz ZWVuIGJ5IHBlb3BsZSBydW5uaW5nIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9uIHJlYWwKPiBoYXJk d2FyZSwgdGhvdWdoIGNvdWxkbid0IHZlcmlmeSB0aGlzIGhlcmUgZm9yIG15c2VsZi4KPiBTbyBh bnkgdGVzdGluZywgYnVnIHJlcG9ydHMgKGFuZCBwb3NzaWJseSBldmVuIGZpeGVzKSBhcmUgdmVy eSB3ZWxjb21lLgo+Cj4gVGhlIGNvZGUgY2FuIGFsc28gYmUgZm91bmQgb24gdGhlIGl0cy92NCBi cmFuY2ggaGVyZToKPiBnaXQ6Ly9saW51eC1hcm0ub3JnL3hlbi1hcC5naXQKPiBodHRwOi8vd3d3 LmxpbnV4LWFybS5vcmcvZ2l0P3A9eGVuLWFwLmdpdDthPXNob3J0bG9nO2g9cmVmcy9oZWFkcy9p dHMvdjQKPgo+IENoZWVycywKPiBBbmRyZQo+Cj4gQ2hhbmdlbG9nIHYzIC4uIHY0Ogo+IC0gbWFr ZSBIQVNfSVRTIGRlcGVuZCBvbiBFWFBFUlQKPiAtIGludHJvZHVjZSBuZXcgcGF0Y2ggMDIgdG8g aW5pdGlhbGl6ZSBob3N0IElUUyBlYXJseQo+IC0gc3dhcCAiaG9zdCBMUEkgYXJyYXkiIGFuZCAi ZGV2aWNlIG1hcHBpbmciIHBhdGNoCj4gLSBmaXggY21kX2xvY2sgaW5pdCBwb3NpdGlvbgo+IC0g aW50cm9kdWNlIHdhcm5pbmcgb24gaGlnaCBudW1iZXIgb2YgTFBJIGFsbG9jYXRpb25zCj4gLSB2 YXJpb3VzIGludCAtPiB1bnNpZ25lZCBmaXhlcwo+IC0gYWRkaW5nIGFuZCBpbXByb3ZpbmcgY29t bWVudHMKPiAtIHJhdGUgbGltaXQgSVRTIGNvbW1hbmQgcXVldWUgZnVsbCBtc2cKPiAtIGRyb3Ag dW5uZWVkZWQgY2hlY2tzCj4gLSB2YWxpZGF0ZSBhZ2FpbnN0IGFsbG93ZWQgbnVtYmVyIG9mIGRl dmljZSBJRHMKPiAtIGF2b2lkIG1lbW9yeSBsZWFrcyB3aGVuIHJlbW92aW5nIGRldmljZXMKPiAt IGltcHJvdmUgYWxnb3JpdGhtIGZvciBmaW5kaW5nIGZyZWUgaG9zdCBMUEkKPiAtIGNvbnZlcnQg dW5tYXBfYWxsX2RldmljZXMgZnJvbSBnb3RvIHRvIHdoaWxlIGxvb3AKPiAtIGFkZCBtZXNzYWdl IG9uIHJlbWFwcGluZyBJVFMgZGV2aWNlCj4gLSBuYW1lIHZpcnR1YWwgZGV2aWNlIC8gZXZlbnQg SURzIHByb3Blcmx5Cj4gLSB1c2UgYXRvbWljIHJlYWQgd2hlbiByZWFkaW5nIElUVCBlbnRyeQo+ Cj4gQ2hhbmdlbG9nIHYyIC4uIHYzOgo+IC0gcHJlYWxsb2NhdGUgc3RydWN0IHBlbmRpbmdfaXJx J3MKPiAtIG1hcCBJVFMgYW5kIHJlZGlzdHJpYnV0b3IgdGFibGVzIG9ubHkgb24gZGVtYW5kCj4g LSBzdG9yZSBwcm9wZXJ0eSwgZW5hYmxlIGFuZCBwZW5kaW5nIGJpdCBpbiBzdHJ1Y3QgcGVuZGlu Z19pcnEKPiAtIGltcHJvdmUgZXJyb3IgY2hlY2tpbmcgYW5kIGhhbmRsaW5nCj4gLSBhZGQgY29t bWVudHMKPgo+IENoYW5nZWxvZyB2MSAuLiB2MjoKPiAtIGNsZWFuIHVwIGhlYWRlciBmaWxlIGlu Y2x1c2lvbgo+IC0gcmV3b3JrIGhvc3QgSVRTIHRhYmxlIGFsbG9jYXRpb246IG9ic2VydmUgYXR0 cmlidXRlcywgbWFueSBmaXhlcwo+IC0gcmVtb3ZlIHBhdGNoIDEgdG8gZXhwb3J0IF9fZmx1c2hf ZGNhY2hlX2FyZWEsIHVzZSBleGlzdGluZyBmdW5jdGlvbiBpbnN0ZWFkCj4gLSB1c2UgbnVtYmVy IG9mIExQSXMgaW50ZXJuYWxseSBpbnN0ZWFkIG9mIG51bWJlciBvZiBiaXRzCj4gLSBrZWVwIGhv c3RfaXRzX2xpc3QgYXMgcHJpdmF0ZSBhcyBwb3NzaWJsZQo+IC0ga2VlcCBzdHJ1Y3QgaXRzX2Rl dmljZXMgcHJpdmF0ZQo+IC0gcmV3b3JrIGdpY3YzX2l0c19tYXBfZ3Vlc3RfZGV2aWNlcwo+IC0g Zml4IHJidHJlZSBpc3N1ZXMKPiAtIG1vcmUgZXJyb3IgaGFuZGxpbmcgYW5kIHByb3BhZ2F0aW9u Cj4gLSBjb3BlIHdpdGggR0lDdjQgaW1wbGVtZW50YXRpb25zIChidXQgbm8gdmlydHVhbCBMUEkg ZmVhdHVyZXMhKQo+IC0gYWJzdHJhY3QgaG9zdCBhbmQgZ3Vlc3QgSVRTZXMgYnkgdXNpbmcgZG9v cmJlbGwgYWRkcmVzc2VzCj4gLSBqb2luIHBlci1yZWRpc3RyaWJ1dG9yIHZhcmlhYmxlcyBpbnRv IG9uZSBwZXItQ1BVIHN0cnVjdHVyZQo+IC0gZml4IGRhdGEgdHlwZXMgKHVuc2lnbmVkIGludCkK PiAtIG1hbnkgbWlub3IgYnVnIGZpeGVzCj4KPiAoUm91Z2gpIGNoYW5nZWxvZyBSRkMtdjIgLi4g djE6Cj4gLSBzcGxpdCBob3N0IElUUyBkcml2ZXIgaW50byBnaWMtdjMtbHBpLmMgYW5kIGdpYy12 My1pdHMuYyBwYXJ0Cj4gLSByZW5hbWUgdmlydHVhbCBJVFMgZHJpdmVyIGZpbGUgdG8gdmdpYy12 My1pdHMuYwo+IC0gdXNlIG1hY3JvcyBhbmQgbmFtZWQgY29uc3RhbnRzIGZvciBhbGwgbWFnaWMg bnVtYmVycwo+IC0gdXNlIGF0b21pYyBhY2Nlc3NvcnMgZm9yIGFjY2Vzc2luZyB0aGUgaG9zdCBM UEkgZGF0YQo+IC0gcmVtb3ZlIGxlZnRvdmVycyBmcm9tIGNvbm5lY3RpbmcgdmlydHVhbCBhbmQg aG9zdCBJVFNlcwo+IC0gYmFpbCBvdXQgaWYgaG9zdCBJVFMgaXMgZGlzYWJsZWQgaW4gdGhlIERU Cj4gLSByZXdvcmsgbWFwL3VubWFwX2d1ZXN0X3BhZ2VzKCk6Cj4gICAgIC0gc3BsaXQgb2ZmIHAy bSBwYXJ0IGFzIGdldC9wdXRfZ3Vlc3RfcGFnZXMgKHRvIGJlIGRvbmUgb24gYWxsb2NhdGlvbikK PiAgICAgLSBnZXQgcmlkIG9mIHZtYXAsIHVzaW5nIG1hcF9kb21haW5fcGFnZSgpIGluc3RlYWQK PiAtIGRlbGF5IGFsbG9jYXRpb24gb2YgdmlydHVhbCB0YWJsZXMgdW50aWwgYWN0dWFsIExQSS9J VFMgZW5hYmxlbWVudAo+IC0gcHJvcGVybHkgc2l6ZSBib3RoIHZpcnR1YWwgYW5kIHBoeXNpY2Fs IHRhYmxlcyB1cG9uIGFsbG9jYXRpb24KPiAtIGZpeCBwdXRfZG9tYWluKCkgbG9ja2luZyBpc3N1 ZXMgaW4gcGh5c2Rldl9vcCBhbmQgTFBJIGhhbmRsaW5nIGNvZGUKPiAtIGFkZCBhbmQgZXh0ZW5k IGNvbW1lbnRzIGluIHZhcmlvdXMgYXJlYXMKPiAtIGZpeCBsb3RzYSBjb2Rpbmcgc3R5bGUgYW5k IHdoaXRlIHNwYWNlIGlzc3VlcywgaW5jbHVkaW5nIGNvbW1lbnQgc3R5bGUKPiAtIGFkZCBsb2Nr aW5nIHRvIGRhdGEgc3RydWN0dXJlcyBub3QgeWV0IGNvdmVyZWQKPiAtIGZpeCB2YXJpb3VzIGxv Y2tpbmcgaXNzdWVzCj4gLSB1c2UgYW4gcmJ0cmVlIHRvIGRlYWwgd2l0aCBJVFMgZGV2aWNlcyAo aW5zdGVhZCBvZiBhIGxpc3QpCj4gLSBwcm9wZXJseSBoYW5kbGUgbWVtb3J5IGF0dHJpYnV0ZXMg Zm9yIElUUyB0YWJsZXMKPiAtIGhhbmRsZSBjYWNoZWFibGUvbm9uLWNhY2hlYWJsZSBJVFMgdGFi bGUgbWFwcGluZ3MKPiAtIHNhbml0aXplIGd1ZXN0IHByb3ZpZGVkIElUUy9MUEkgdGFibGUgYXR0 cmlidXRlcwo+IC0gZml4IGJyZWFrYWdlIG9uIG5vbi1HSUN2MiBjb21wYXRpYmxlIGhvc3QgR0lD djMgY29udHJvbGxlcnMKPiAtIGFkZCBjb21tYW5kIGxpbmUgcGFyYW1ldGVycyBvbiB0b3Agb2Yg S2NvbmZpZyBvcHRpb25zCj4gLSBwcm9wZXJseSB3YWl0IGZvciBhbiBJVFMgdG8gYmVjb21lIHF1 aWVzY2llbnQgYmVmb3JlIGVuYWJsaW5nIGl0Cj4gLSBoYW5kbGUgaG9zdCBJVFMgY29tbWFuZCBx dWV1ZSBlcnJvcnMKPiAtIGFjdHVhbGx5IHdhaXQgZm9yIGhvc3QgSVRTIGNvbW1hbmQgY29tcGxl dGlvbiAoUkVBRFI9PVdSSVRFUikKPiAtIGZpeCBBUk0zMiBjb21waWxhdGlvbgo+IC0gdmFyaW91 cyBwYXRjaCBzcGxpdHMgYW5kIHJlb3JkZXJpbmdzCj4KPiBBbmRyZSBQcnp5d2FyYSAoMjcpOgo+ ICAgQVJNOiBHSUN2MyBJVFM6IHBhcnNlIGFuZCBzdG9yZSBJVFMgc3Vibm9kZXMgZnJvbSBoYXJk d2FyZSBEVAo+ICAgQVJNOiBHSUN2MyBJVFM6IGluaXRpYWxpemUgaG9zdCBJVFMKPiAgIEFSTTog R0lDdjM6IGFsbG9jYXRlIExQSSBwZW5kaW5nIGFuZCBwcm9wZXJ0eSB0YWJsZQo+ICAgQVJNOiBH SUN2MyBJVFM6IGFsbG9jYXRlIGRldmljZSBhbmQgY29sbGVjdGlvbiB0YWJsZQo+ICAgQVJNOiBH SUN2MyBJVFM6IG1hcCBJVFMgY29tbWFuZCBidWZmZXIKPiAgIEFSTTogR0lDdjMgSVRTOiBpbnRy b2R1Y2UgSVRTIGNvbW1hbmQgaGFuZGxpbmcKPiAgIEFSTTogR0lDdjMgSVRTOiBpbnRyb2R1Y2Ug aG9zdCBMUEkgYXJyYXkKPiAgIEFSTTogR0lDdjMgSVRTOiBpbnRyb2R1Y2UgZGV2aWNlIG1hcHBp bmcKPiAgIEFSTTogR0lDdjM6IGludHJvZHVjZSBzZXBhcmF0ZSBwZW5kaW5nX2lycSBzdHJ1Y3Rz IGZvciBMUElzCj4gICBBUk06IEdJQ3YzOiBmb3J3YXJkIHBlbmRpbmcgTFBJcyB0byBndWVzdHMK PiAgIEFSTTogR0lDdjM6IGVuYWJsZSBJVFMgYW5kIExQSXMgb24gdGhlIGhvc3QKPiAgIEFSTTog dkdJQ3YzOiBoYW5kbGUgdmlydHVhbCBMUEkgcGVuZGluZyBhbmQgcHJvcGVydHkgdGFibGVzCj4g ICBBUk06IHZHSUN2MzogSGFuZGxlIGRpc2FibGVkIExQSXMKPiAgIEFSTTogdkdJQ3YzOiBpbnRy b2R1Y2UgYmFzaWMgSVRTIGVtdWxhdGlvbiBiaXRzCj4gICBBUk06IHZJVFM6IGludHJvZHVjZSB0 cmFuc2xhdGlvbiB0YWJsZSB3YWxrcwo+ICAgQVJNOiB2SVRTOiBoYW5kbGUgQ0xFQVIgY29tbWFu ZAo+ICAgQVJNOiB2SVRTOiBoYW5kbGUgSU5UIGNvbW1hbmQKPiAgIEFSTTogdklUUzogaGFuZGxl IE1BUEMgY29tbWFuZAo+ICAgQVJNOiB2SVRTOiBoYW5kbGUgTUFQRCBjb21tYW5kCj4gICBBUk06 IHZJVFM6IGhhbmRsZSBNQVBUSSBjb21tYW5kCj4gICBBUk06IHZJVFM6IGhhbmRsZSBNT1ZJIGNv bW1hbmQKPiAgIEFSTTogdklUUzogaGFuZGxlIERJU0NBUkQgY29tbWFuZAo+ICAgQVJNOiB2SVRT OiBoYW5kbGUgSU5WIGNvbW1hbmQKPiAgIEFSTTogdklUUzogaGFuZGxlIElOVkFMTCBjb21tYW5k Cj4gICBBUk06IHZJVFM6IGNyZWF0ZSBhbmQgaW5pdGlhbGl6ZSB2aXJ0dWFsIElUU2VzIGZvciBE b20wCj4gICBBUk06IHZJVFM6IGNyZWF0ZSBJVFMgc3Vibm9kZXMgZm9yIERvbTAgRFQKPiAgIEFS TTogdkdJQzogYWR2ZXJ0aXNlIExQSSBzdXBwb3J0Cj4KPiAgZG9jcy9taXNjL3hlbi1jb21tYW5k LWxpbmUubWFya2Rvd24gfCAgIDE4ICsKPiAgeGVuL2FyY2gvYXJtL0tjb25maWcgICAgICAgICAg ICAgICAgfCAgICA1ICsKPiAgeGVuL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgICAgfCAg ICAzICsKPiAgeGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYyAgICAgICAgICAgfCAgOTgxICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ICB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jICAg ICAgICAgICB8ICA1NDUgKysrKysrKysrKysrKysrKysKPiAgeGVuL2FyY2gvYXJtL2dpYy12My5j ICAgICAgICAgICAgICAgfCAgIDgwICsrLQo+ICB4ZW4vYXJjaC9hcm0vZ2ljLmMgICAgICAgICAg ICAgICAgICB8ICAgMjAgKy0KPiAgeGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMgICAgICAgICAg fCAxMTIyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIHhlbi9hcmNoL2Fy bS92Z2ljLXYzLmMgICAgICAgICAgICAgIHwgIDI3MiArKysrKysrKy0KPiAgeGVuL2FyY2gvYXJt L3ZnaWMuYyAgICAgICAgICAgICAgICAgfCAgIDE2ICstCj4gIHhlbi9jb21tb24vbWVtb3J5LmMg ICAgICAgICAgICAgICAgIHwgICA2MSArKwo+ICB4ZW4vaW5jbHVkZS9hc20tYXJtL2JpdG9wcy5o ICAgICAgICB8ICAgIDEgKwo+ICB4ZW4vaW5jbHVkZS9hc20tYXJtL2NvbmZpZy5oICAgICAgICB8 ICAgIDIgKwo+ICB4ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oICAgICAgICB8ICAgMTIgKy0K PiAgeGVuL2luY2x1ZGUvYXNtLWFybS9naWMuaCAgICAgICAgICAgfCAgICAyICsKPiAgeGVuL2lu Y2x1ZGUvYXNtLWFybS9naWNfdjNfZGVmcy5oICAgfCAgIDc1ICsrLQo+ICB4ZW4vaW5jbHVkZS9h c20tYXJtL2dpY192M19pdHMuaCAgICB8ICAyNjIgKysrKysrKysKPiAgeGVuL2luY2x1ZGUvYXNt LWFybS9pcnEuaCAgICAgICAgICAgfCAgIDE1ICsKPiAgeGVuL2luY2x1ZGUvYXNtLWFybS92Z2lj LmggICAgICAgICAgfCAgICA2ICsKPiAgeGVuL2luY2x1ZGUveGVuL2JpdG9wcy5oICAgICAgICAg ICAgfCAgICA1ICstCj4gIHhlbi9pbmNsdWRlL3hlbi9tbS5oICAgICAgICAgICAgICAgIHwgICAg OCArCj4gIDIxIGZpbGVzIGNoYW5nZWQsIDM0NjggaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25z KC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jCj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCB4ZW4vYXJjaC9hcm0vdmdpYy12My1pdHMuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg eGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgKPgoKLS0gCkp1bGllbiBHcmFsbAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==