From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v4 00/27] arm64: Dom0 ITS emulation Date: Mon, 3 Apr 2017 21:28:02 +0100 Message-ID: <20170403202829.7278-1-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 1cv8Yd-0004tA-9y for xen-devel@lists.xenproject.org; Mon, 03 Apr 2017 20:26:35 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SGksCgpJIG1hbmFnZWQgdG8gZ28gb3ZlciB0aGUgcmVtYWluaW5nIGVtYWlscyBJIGNvdWxkbid0 IGZpbmlzaCBvbiBGcmlkYXkuClRoaXMgc2VyaWVzIGlzIHRoZSByZXN1bHQgb2YgdGhpcyBhbmQg aGFzIGFib3V0IDMwIHNtYWxsZXIgZml4ZXMsIHNlZQp0aGUgY2hhbmdlbG9nIGJlbG93LiBUaGlz IHNob3VsZCBhZGRyZXNzIGFsbCBjb21tZW50cyBTdGVmYW5vIGhhZC4KVGhlcmUgYXJlIGEgZmV3 IHRoaW5ncyBteSBicmFpbiBjYW5ub3QgY29wZSB3aXRoIHRvZGF5IGFueW1vcmUsIHNvIEkKd2ls bCBhZGRyZXNzIHRoZW0gd2l0aCBKdWxpZW4gZmFjZS10by1mYWNlIHRvbW9ycm93OgotIE1vdmUg bHBpX2dldF9wcmlvcml0eSgpIGFuZCBkb19MUEkoKSBpbnRvIGdpY19vcHMKLSBjaGVjayBNT1ZJ IGJlaGF2aW9yIGluIG91ciBzcGVjaWFsIGNhc2UKLSBjaGVjayBMUEkgc3RhdGUgY2hhbmdlcyBp ZiBhbHJlYWR5IGluIGFuIExSCi0gaW1wbGVtZW50IGluZGlyZWN0IHRhYmxlCi0gbW92ZSBHRU5N QVNLX1VMTCBhbmQgb3RoZXIgaGVscGVycyBpbnRvIHNlcGFyYXRlIHBhdGNoZXMKLSByZS1jaGVj ayBpc3N1ZSByZXBvcnRlZCBieSBDYXZpdW0KLSBhZ3JlZSBvbiBoYXZpbmcgYSBjb21tYW5kIGxp bmUgZm9yIHRoZSBkZXZpY2VzIG9yIG5vdAotIHJlYmFzaW5nIGFydGlmYWN0cwotIGFueXRoaW5n IG5vdCBtZW50aW9uZWQgaGVyZSA7LSkKCkNoZWVycywKQW5kcmUKCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBzZXJpZXMgYWRkcyBzdXBwb3J0IGZvciBlbXVsYXRpb24g b2YgYW4gQVJNIEdJQ3YzIElUUyBpbnRlcnJ1cHQKY29udHJvbGxlci4gRm9yIGhhcmR3YXJlIHdo aWNoIHJlbGllcyBvbiB0aGUgSVRTIHRvIHByb3ZpZGUgaW50ZXJydXB0cyBmb3IKaXRzIHBlcmlw aGVyYWxzIHRoaXMgY29kZSBpcyBuZWVkZWQgdG8gZ2V0IGEgbWFjaGluZSBib290ZWQgaW50byBE b20wIGF0CmFsbC4gSVRTIGVtdWxhdGlvbiBmb3IgRG9tVXMgaXMgb25seSByZWFsbHkgdXNlZnVs IHdpdGggUENJIHBhc3N0aHJvdWdoLAp3aGljaCBpcyBub3QgeWV0IGF2YWlsYWJsZSBmb3IgQVJN LiBJdCBpcyBleHBlY3RlZCB0aGF0IHRoaXMgZmVhdHVyZQp3aWxsIGJlIGNvLWRldmVsb3BlZCB3 aXRoIHRoZSBJVFMgRG9tVSBjb2RlLiBIb3dldmVyIHRoaXMgY29kZSBkcm9wIGhlcmUKY29uc2lk ZXJlZCBEb21VIGVtdWxhdGlvbiBhbHJlYWR5LCB0byBrZWVwIGxhdGVyIGFyY2hpdGVjdHVyYWwg Y2hhbmdlcwp0byBhIG1pbmltdW0uCgpTb21lIGdlbmVyaWMgZGVzaWduIHByaW5jaXBsZXM6Cgoq IFRoZSBjdXJyZW50IEdJQyBjb2RlIHN0YXRpY2FsbHkgYWxsb2NhdGVzIHN0cnVjdHVyZXMgZm9y IGVhY2ggc3VwcG9ydGVkCklSUSAoYm90aCBmb3IgdGhlIGhvc3QgYW5kIHRoZSBndWVzdCksIHdo aWNoIGR1ZSB0byB0aGUgcG90ZW50aWFsbHkKbWlsbGlvbnMgb2YgTFBJIGludGVycnVwdHMgaXMg bm90IGZlYXNpYmxlIHRvIGNvcHkgZm9yIHRoZSBJVFMuClNvIHdlIHJlZnJhaW4gZnJvbSBpbnRy b2R1Y2luZyB0aGUgSVRTIGFzIGEgZmlyc3QgY2xhc3MgWGVuIGludGVycnVwdApjb250cm9sbGVy LCBhbHNvIHdlIGRvbid0IGhvbGQgc3RydWN0IGlycV9kZXNjJ3Mgb3Igc3RydWN0IHBlbmRpbmdf aXJxJ3MKZm9yIGVhY2ggcG9zc2libGUgTFBJLgpGb3J0dW5hdGVseSBMUElzIGFyZSBvbmx5IGlu dGVyZXN0aW5nIHRvIGd1ZXN0cywgc28gd2UgZ2V0IGF3YXkgd2l0aApzdG9yaW5nIG9ubHkgdGhl IHZpcnR1YWwgSVJRIG51bWJlciBhbmQgdGhlIGd1ZXN0IFZDUFUgZm9yIGVhY2ggYWxsb2NhdGVk Cmhvc3QgTFBJLCB3aGljaCBjYW4gYmUgc3Rhc2hlZCBpbnRvIG9uZSB1aW50NjRfdC4gVGhpcyBk YXRhIGlzIHN0b3JlZCBpbgphIHR3by1sZXZlbCB0YWJsZSwgd2hpY2ggaXMgYm90aCBtZW1vcnkg ZWZmaWNpZW50IGFuZCBxdWljayB0byBhY2Nlc3MuCldlIGhvb2sgaW50byB0aGUgZXhpc3Rpbmcg SVJRIGhhbmRsaW5nIGFuZCBWR0lDIGNvZGUgdG8gYXZvaWQgYWNjZXNzaW5nCnRoZSBub3JtYWwg c3RydWN0dXJlcywgcHJvdmlkaW5nIGFsdGVybmF0aXZlIG1ldGhvZHMgZm9yIGdldHRpbmcgdGhl Cm5lZWRlZCBpbmZvcm1hdGlvbiAocHJpb3JpdHksIGlzIGVuYWJsZWQ/KSBmb3IgTFBJcy4KRm9y IGludGVycnVwdHMgd2hpY2ggYXJlIHF1ZXVlZCB0byBvciBhcmUgYWN0dWFsbHkgaW4gYSBndWVz dCB3ZQphbGxvY2F0ZSBzdHJ1Y3QgcGVuZGluZ19pcnEncyBvbiBkZW1hbmQuIEFzIGl0IGlzIGV4 cGVjdGVkIHRoYXQgb25seSBhCnZlcnkgc21hbGwgbnVtYmVyIG9mIGludGVycnVwdHMgaXMgZXZl ciBvbiBhIFZDUFUgYXQgdGhlIHNhbWUgdGltZSwgdGhpcwpzZWVtcyBsaWtlIHRoZSBiZXN0IGFw cHJvYWNoLiBGb3Igbm93IGFsbG9jYXRlZCBzdHJ1Y3RzIGFyZSByZS11c2VkIGFuZApoZWxkIGlu IGEgbGlua2VkIGxpc3QuIFNob3VsZCBpdCBlbWVyZ2UgdGhhdCB0cmF2ZXJzaW5nIGEgbGlua2Vk IGxpc3QKaXMgYSBwZXJmb3JtYW5jZSBpc3N1ZSwgdGhpcyBjYW4gYmUgY2hhbmdlZCB0byB1c2Ug YSBoYXNoIHRhYmxlLgoKKiBPbiB0aGUgZ3Vlc3Qgc2lkZSB3ZSAobGF0ZXIgd2lsbCkgaGF2ZSB0 byBkZWFsIHdpdGggbWFsaWNpb3VzIGd1ZXN0cwp0cnlpbmcgdG8gaG9nIFhlbiB3aXRoIG1hcHBp bmcgcmVxdWVzdHMgZm9yIGEgbG90IG9mIExQSXMsIGZvciBpbnN0YW5jZS4KQXMgdGhlIElUUyBh Y3R1YWxseSB1c2VzIHN5c3RlbSBtZW1vcnkgZm9yIHN0b3Jpbmcgc3RhdHVzIGluZm9ybWF0aW9u LAp3ZSB1c2UgdGhpcyBtZW1vcnkgKHdoaWNoIHRoZSBndWVzdCBoYXMgdG8gcHJvdmlkZSkgdG8g bmF0dXJhbGx5IGxpbWl0CmEgZ3Vlc3QuIEZvciB0aG9zZSB0YWJsZXMgd2hpY2ggYXJlIHBhZ2Ug c2l6ZWQgKGRldmljZXMsIGNvbGxlY3Rpb25zIChDUFVzKSwKTFBJIHByb3BlcnRpZXMpIHdlIG1h cCB0aG9zZSBwYWdlcyBpbnRvIFhlbiwgc28gd2UgY2FuIGVhc2lseSBhY2Nlc3MKdGhlbSBmcm9t IHRoZSB2aXJ0dWFsIEdJQyBjb2RlLgpVbmZvcnR1bmF0ZWx5IHRoZSBhY3R1YWwgaW50ZXJydXB0 IG1hcHBpbmcgdGFibGVzIGFyZSBub3QgbmVjZXNzYXJpbHkKcGFnZSBhbGlnbmVkLCBhbHNvIGNh biBiZSBtdWNoIHNtYWxsZXIgdGhhbiBhIHBhZ2UsIHNvIG1hcHBpbmcgYWxsIG9mCnRoZW0gcGVy bWFuZW50bHkgaXMgZmlkZGx5LiBBcyBJVFMgY29tbWFuZHMgaW4gbmVlZCB0byBpdGVyYXRlIHRo b3NlCnRhYmxlcyBhcmUgcHJldHR5IHJhcmUgYWZ0ZXIgYWxsLCB3ZSBmb3Igbm93IG1hcCB0aGVt IG9uIGRlbWFuZCB1cG9uCmVtdWxhdGluZyBhIHZpcnR1YWwgSVRTIGNvbW1hbmQuIFRoaXMgaXMg YWNjZXB0YWJsZSBiZWNhdXNlICJtYXBwaW5nIgp0aGVtIGlzIGFjdHVhbGx5IHZlcnkgY2hlYXAg b24gYXJtNjQuIEFsc28gYXMgd2UgY2FuJ3QgcHJvcGVybHkgcHJvdGVjdAp0aG9zZSBhcmVhcyBk dWUgdG8gdGhlaXIgc3ViLXBhZ2Utc2l6ZSBwcm9wZXJ0eSwgd2UgdmFsaWRhdGUgdGhlIGRhdGEK aW4gdGhlcmUgYmVmb3JlIGFjdHVhbGx5IHVzaW5nIGl0LiBUaGUgdklUUyBjb2RlIGJhc2ljYWxs eSBqdXN0IHN0b3Jlcwp0aGUgZGF0YSBpbiB0aGVyZSB3aGljaCB0aGUgZ3Vlc3QgaGFzIGFjdHVh bGx5IHRyYW5zZmVycmVkIHZpYSB0aGUKdmlydHVhbCBJVFMgY29tbWFuZCBxdWV1ZSBiZWZvcmUs IHNvIHRoZXJlIGlzIG5vIHNlY3JldCByZXZlYWxlZCBub3IKZG9lcyBpdCBjcmVhdGUgYW4gYXR0 YWNrIHZlY3RvciBmb3IgYSBtYWxpY2lvdXMgZ3Vlc3QuCgoqIEFuIG9idmlvdXMgYXBwcm9hY2gg dG8gaGFuZGxpbmcgc29tZSBndWVzdCBJVFMgY29tbWFuZHMgd291bGQgYmUgdG8KcHJvcGFnYXRl IHRoZW0gdG8gdGhlIGhvc3QsIGZvciBpbnN0YW5jZSB0byBtYXAgZGV2aWNlcyBhbmQgTFBJcyBh bmQKdG8gZW5hYmxlIG9yIGRpc2FibGUgTFBJcy4KSG93ZXZlciB0aGlzIChsYXRlciB3aXRoIERv bVUgc3VwcG9ydCkgd2lsbCBjcmVhdGUgYW4gYXR0YWNrIHZlY3RvciwgYXMKYSBtYWxpY2lvdXMg Z3Vlc3QgY291bGQgdHJ5IHRvIGZpbGwgdGhlIGhvc3QgY29tbWFuZCBxdWV1ZSB3aXRoCnByb3Bh Z2F0ZWQgY29tbWFuZHMuClNvIHdlIHRyeSB0byBhdm9pZCB0aGlzIHNpdHVhdGlvbjogRG9tMCBz ZW5kaW5nIGEgZGV2aWNlIG1hcHBpbmcgKE1BUEQpCmNvbW1hbmQgaXMgdGhlIG9ubHkgdGltZSB3 ZSBhbGxvdyBxdWV1aW5nIGNvbW1hbmRzIHRvIHRoZSBob3N0IElUUyBjb21tYW5kCnF1ZXVlLCBh cyB0aGlzIHNlZW1zIHRvIGJlIHRoZSBvbmx5IHJlbGlhYmxlIHdheSBvZiBnZXR0aW5nIHRoZQpy ZXF1aXJlZCBpbmZvcm1hdGlvbiBhdCB0aGUgbW9tZW50LiBIb3dldmVyIGF0IHRoZSBzYW1lIHRp bWUgd2UgbWFwIGFsbApldmVudHMgdG8gTFBJcyBhbHJlYWR5LCBhbHNvIGVuYWJsZSB0aGVtLiBU aGlzIGF2b2lkcyBzZW5kaW5nIGNvbW1hbmRzCmxhdGVyIGF0IHJ1bnRpbWUsIGFzIHdlIGNhbiBk ZWFsIHdpdGggbWFwcGluZ3MgYW5kIExQSSBlbmFibGluZy9kaXNhYmxpbmcKaW50ZXJuYWxseS4K CkFzIGl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlIElUUyBzdXBwb3J0IHdpbGwgYmVjb21lIGEgdGVj aCBwcmV2aWV3IGluIHRoZQpmaXJzdCByZWxlYXNlLCB0aGVyZSBpcyBhIEtjb25maWcgb3B0aW9u IHRvIGVuYWJsZSBpdC4gQWxzbyBpdCBpcwpzdXBwb3J0ZWQgb24gYXJtNjQgb25seSwgd2hpY2gg d2lsbCBtb3N0IGxpa2VseSBub3QgY2hhbmdlIGluIHRoZSBmdXR1cmUuClRoaXMgbGVhZHMgdG8g c29tZSBoaWRlb3VzIGNvbnN0cnVjdHMgbGlrZSBhbiAjaWZkZWYnZWQgaGVhZGVyIGZpbGUgd2l0 aAplbXB0eSBmdW5jdGlvbiBzdHVicywgSSBoYXZlIHNvbWUgaG9wZSB3ZSBjYW4gc3RpbGwgY2xl YW4gdGhpcyB1cC4KQWxzbyBzb21lIHBhcmFtZXRlcnMgYXJlIGNvbmZpZyBvcHRpb25zIHdoaWNo IGNhbiBiZSBvdmVycmlkZGVuIG9uIHRoZQpYZW4gY29tbWFuZGxpbmUuIFRoaXMgaXMgdG8gc3Vw cG9ydCBleHBlcmltZW50YXRpb24gYW5kIGFkYXB0aW9uIHRvCnZhcmlvdXMgcGxhdGZvcm1zLCBp ZGVhbGx5IHdlIGZpbmQgZWl0aGVyIG9uZS1zaXplLWZpdHMtYWxsIHZhbHVlcyBvcgpmaW5kIGFu b3RoZXIgd2F5IG9mIGdldHRpbmcgcmlkIG9mIHRoaXMuCgpUaGlzIGNvZGUgYm9vdHMgRG9tMCBv biBhbiBBUk0gRmFzdCBNb2RlbCB3aXRoIElUUyBzdXBwb3J0LiBJIHRyaWVkIHRvCmFkZHJlc3Mg dGhlIGlzc3VlcyBzZWVuIGJ5IHBlb3BsZSBydW5uaW5nIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9u IHJlYWwKaGFyZHdhcmUsIHRob3VnaCBjb3VsZG4ndCB2ZXJpZnkgdGhpcyBoZXJlIGZvciBteXNl bGYuClNvIGFueSB0ZXN0aW5nLCBidWcgcmVwb3J0cyAoYW5kIHBvc3NpYmx5IGV2ZW4gZml4ZXMp IGFyZSB2ZXJ5IHdlbGNvbWUuCgpUaGUgY29kZSBjYW4gYWxzbyBiZSBmb3VuZCBvbiB0aGUgaXRz L3Y0IGJyYW5jaCBoZXJlOgpnaXQ6Ly9saW51eC1hcm0ub3JnL3hlbi1hcC5naXQKaHR0cDovL3d3 dy5saW51eC1hcm0ub3JnL2dpdD9wPXhlbi1hcC5naXQ7YT1zaG9ydGxvZztoPXJlZnMvaGVhZHMv aXRzL3Y0CgpDaGVlcnMsCkFuZHJlCgpDaGFuZ2Vsb2cgdjMgLi4gdjQ6Ci0gbWFrZSBIQVNfSVRT IGRlcGVuZCBvbiBFWFBFUlQKLSBpbnRyb2R1Y2UgbmV3IHBhdGNoIDAyIHRvIGluaXRpYWxpemUg aG9zdCBJVFMgZWFybHkKLSBzd2FwICJob3N0IExQSSBhcnJheSIgYW5kICJkZXZpY2UgbWFwcGlu ZyIgcGF0Y2gKLSBmaXggY21kX2xvY2sgaW5pdCBwb3NpdGlvbgotIGludHJvZHVjZSB3YXJuaW5n IG9uIGhpZ2ggbnVtYmVyIG9mIExQSSBhbGxvY2F0aW9ucwotIHZhcmlvdXMgaW50IC0+IHVuc2ln bmVkIGZpeGVzCi0gYWRkaW5nIGFuZCBpbXByb3ZpbmcgY29tbWVudHMKLSByYXRlIGxpbWl0IElU UyBjb21tYW5kIHF1ZXVlIGZ1bGwgbXNnCi0gZHJvcCB1bm5lZWRlZCBjaGVja3MKLSB2YWxpZGF0 ZSBhZ2FpbnN0IGFsbG93ZWQgbnVtYmVyIG9mIGRldmljZSBJRHMKLSBhdm9pZCBtZW1vcnkgbGVh a3Mgd2hlbiByZW1vdmluZyBkZXZpY2VzCi0gaW1wcm92ZSBhbGdvcml0aG0gZm9yIGZpbmRpbmcg ZnJlZSBob3N0IExQSQotIGNvbnZlcnQgdW5tYXBfYWxsX2RldmljZXMgZnJvbSBnb3RvIHRvIHdo aWxlIGxvb3AKLSBhZGQgbWVzc2FnZSBvbiByZW1hcHBpbmcgSVRTIGRldmljZQotIG5hbWUgdmly dHVhbCBkZXZpY2UgLyBldmVudCBJRHMgcHJvcGVybHkKLSB1c2UgYXRvbWljIHJlYWQgd2hlbiBy ZWFkaW5nIElUVCBlbnRyeQoKQ2hhbmdlbG9nIHYyIC4uIHYzOgotIHByZWFsbG9jYXRlIHN0cnVj dCBwZW5kaW5nX2lycSdzCi0gbWFwIElUUyBhbmQgcmVkaXN0cmlidXRvciB0YWJsZXMgb25seSBv biBkZW1hbmQKLSBzdG9yZSBwcm9wZXJ0eSwgZW5hYmxlIGFuZCBwZW5kaW5nIGJpdCBpbiBzdHJ1 Y3QgcGVuZGluZ19pcnEKLSBpbXByb3ZlIGVycm9yIGNoZWNraW5nIGFuZCBoYW5kbGluZwotIGFk ZCBjb21tZW50cwoKQ2hhbmdlbG9nIHYxIC4uIHYyOgotIGNsZWFuIHVwIGhlYWRlciBmaWxlIGlu Y2x1c2lvbgotIHJld29yayBob3N0IElUUyB0YWJsZSBhbGxvY2F0aW9uOiBvYnNlcnZlIGF0dHJp YnV0ZXMsIG1hbnkgZml4ZXMKLSByZW1vdmUgcGF0Y2ggMSB0byBleHBvcnQgX19mbHVzaF9kY2Fj aGVfYXJlYSwgdXNlIGV4aXN0aW5nIGZ1bmN0aW9uIGluc3RlYWQKLSB1c2UgbnVtYmVyIG9mIExQ SXMgaW50ZXJuYWxseSBpbnN0ZWFkIG9mIG51bWJlciBvZiBiaXRzCi0ga2VlcCBob3N0X2l0c19s aXN0IGFzIHByaXZhdGUgYXMgcG9zc2libGUKLSBrZWVwIHN0cnVjdCBpdHNfZGV2aWNlcyBwcml2 YXRlCi0gcmV3b3JrIGdpY3YzX2l0c19tYXBfZ3Vlc3RfZGV2aWNlcwotIGZpeCByYnRyZWUgaXNz dWVzCi0gbW9yZSBlcnJvciBoYW5kbGluZyBhbmQgcHJvcGFnYXRpb24KLSBjb3BlIHdpdGggR0lD djQgaW1wbGVtZW50YXRpb25zIChidXQgbm8gdmlydHVhbCBMUEkgZmVhdHVyZXMhKQotIGFic3Ry YWN0IGhvc3QgYW5kIGd1ZXN0IElUU2VzIGJ5IHVzaW5nIGRvb3JiZWxsIGFkZHJlc3NlcwotIGpv aW4gcGVyLXJlZGlzdHJpYnV0b3IgdmFyaWFibGVzIGludG8gb25lIHBlci1DUFUgc3RydWN0dXJl Ci0gZml4IGRhdGEgdHlwZXMgKHVuc2lnbmVkIGludCkKLSBtYW55IG1pbm9yIGJ1ZyBmaXhlcwoK KFJvdWdoKSBjaGFuZ2Vsb2cgUkZDLXYyIC4uIHYxOgotIHNwbGl0IGhvc3QgSVRTIGRyaXZlciBp bnRvIGdpYy12My1scGkuYyBhbmQgZ2ljLXYzLWl0cy5jIHBhcnQKLSByZW5hbWUgdmlydHVhbCBJ VFMgZHJpdmVyIGZpbGUgdG8gdmdpYy12My1pdHMuYwotIHVzZSBtYWNyb3MgYW5kIG5hbWVkIGNv bnN0YW50cyBmb3IgYWxsIG1hZ2ljIG51bWJlcnMKLSB1c2UgYXRvbWljIGFjY2Vzc29ycyBmb3Ig YWNjZXNzaW5nIHRoZSBob3N0IExQSSBkYXRhCi0gcmVtb3ZlIGxlZnRvdmVycyBmcm9tIGNvbm5l Y3RpbmcgdmlydHVhbCBhbmQgaG9zdCBJVFNlcwotIGJhaWwgb3V0IGlmIGhvc3QgSVRTIGlzIGRp c2FibGVkIGluIHRoZSBEVAotIHJld29yayBtYXAvdW5tYXBfZ3Vlc3RfcGFnZXMoKToKICAgIC0g c3BsaXQgb2ZmIHAybSBwYXJ0IGFzIGdldC9wdXRfZ3Vlc3RfcGFnZXMgKHRvIGJlIGRvbmUgb24g YWxsb2NhdGlvbikKICAgIC0gZ2V0IHJpZCBvZiB2bWFwLCB1c2luZyBtYXBfZG9tYWluX3BhZ2Uo KSBpbnN0ZWFkCi0gZGVsYXkgYWxsb2NhdGlvbiBvZiB2aXJ0dWFsIHRhYmxlcyB1bnRpbCBhY3R1 YWwgTFBJL0lUUyBlbmFibGVtZW50Ci0gcHJvcGVybHkgc2l6ZSBib3RoIHZpcnR1YWwgYW5kIHBo eXNpY2FsIHRhYmxlcyB1cG9uIGFsbG9jYXRpb24KLSBmaXggcHV0X2RvbWFpbigpIGxvY2tpbmcg aXNzdWVzIGluIHBoeXNkZXZfb3AgYW5kIExQSSBoYW5kbGluZyBjb2RlCi0gYWRkIGFuZCBleHRl bmQgY29tbWVudHMgaW4gdmFyaW91cyBhcmVhcwotIGZpeCBsb3RzYSBjb2Rpbmcgc3R5bGUgYW5k IHdoaXRlIHNwYWNlIGlzc3VlcywgaW5jbHVkaW5nIGNvbW1lbnQgc3R5bGUKLSBhZGQgbG9ja2lu ZyB0byBkYXRhIHN0cnVjdHVyZXMgbm90IHlldCBjb3ZlcmVkCi0gZml4IHZhcmlvdXMgbG9ja2lu ZyBpc3N1ZXMKLSB1c2UgYW4gcmJ0cmVlIHRvIGRlYWwgd2l0aCBJVFMgZGV2aWNlcyAoaW5zdGVh ZCBvZiBhIGxpc3QpCi0gcHJvcGVybHkgaGFuZGxlIG1lbW9yeSBhdHRyaWJ1dGVzIGZvciBJVFMg dGFibGVzCi0gaGFuZGxlIGNhY2hlYWJsZS9ub24tY2FjaGVhYmxlIElUUyB0YWJsZSBtYXBwaW5n cwotIHNhbml0aXplIGd1ZXN0IHByb3ZpZGVkIElUUy9MUEkgdGFibGUgYXR0cmlidXRlcwotIGZp eCBicmVha2FnZSBvbiBub24tR0lDdjIgY29tcGF0aWJsZSBob3N0IEdJQ3YzIGNvbnRyb2xsZXJz Ci0gYWRkIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzIG9uIHRvcCBvZiBLY29uZmlnIG9wdGlvbnMK LSBwcm9wZXJseSB3YWl0IGZvciBhbiBJVFMgdG8gYmVjb21lIHF1aWVzY2llbnQgYmVmb3JlIGVu YWJsaW5nIGl0Ci0gaGFuZGxlIGhvc3QgSVRTIGNvbW1hbmQgcXVldWUgZXJyb3JzCi0gYWN0dWFs bHkgd2FpdCBmb3IgaG9zdCBJVFMgY29tbWFuZCBjb21wbGV0aW9uIChSRUFEUj09V1JJVEVSKQot IGZpeCBBUk0zMiBjb21waWxhdGlvbgotIHZhcmlvdXMgcGF0Y2ggc3BsaXRzIGFuZCByZW9yZGVy aW5ncwoKQW5kcmUgUHJ6eXdhcmEgKDI3KToKICBBUk06IEdJQ3YzIElUUzogcGFyc2UgYW5kIHN0 b3JlIElUUyBzdWJub2RlcyBmcm9tIGhhcmR3YXJlIERUCiAgQVJNOiBHSUN2MyBJVFM6IGluaXRp YWxpemUgaG9zdCBJVFMKICBBUk06IEdJQ3YzOiBhbGxvY2F0ZSBMUEkgcGVuZGluZyBhbmQgcHJv cGVydHkgdGFibGUKICBBUk06IEdJQ3YzIElUUzogYWxsb2NhdGUgZGV2aWNlIGFuZCBjb2xsZWN0 aW9uIHRhYmxlCiAgQVJNOiBHSUN2MyBJVFM6IG1hcCBJVFMgY29tbWFuZCBidWZmZXIKICBBUk06 IEdJQ3YzIElUUzogaW50cm9kdWNlIElUUyBjb21tYW5kIGhhbmRsaW5nCiAgQVJNOiBHSUN2MyBJ VFM6IGludHJvZHVjZSBob3N0IExQSSBhcnJheQogIEFSTTogR0lDdjMgSVRTOiBpbnRyb2R1Y2Ug ZGV2aWNlIG1hcHBpbmcKICBBUk06IEdJQ3YzOiBpbnRyb2R1Y2Ugc2VwYXJhdGUgcGVuZGluZ19p cnEgc3RydWN0cyBmb3IgTFBJcwogIEFSTTogR0lDdjM6IGZvcndhcmQgcGVuZGluZyBMUElzIHRv IGd1ZXN0cwogIEFSTTogR0lDdjM6IGVuYWJsZSBJVFMgYW5kIExQSXMgb24gdGhlIGhvc3QKICBB Uk06IHZHSUN2MzogaGFuZGxlIHZpcnR1YWwgTFBJIHBlbmRpbmcgYW5kIHByb3BlcnR5IHRhYmxl cwogIEFSTTogdkdJQ3YzOiBIYW5kbGUgZGlzYWJsZWQgTFBJcwogIEFSTTogdkdJQ3YzOiBpbnRy b2R1Y2UgYmFzaWMgSVRTIGVtdWxhdGlvbiBiaXRzCiAgQVJNOiB2SVRTOiBpbnRyb2R1Y2UgdHJh bnNsYXRpb24gdGFibGUgd2Fsa3MKICBBUk06IHZJVFM6IGhhbmRsZSBDTEVBUiBjb21tYW5kCiAg QVJNOiB2SVRTOiBoYW5kbGUgSU5UIGNvbW1hbmQKICBBUk06IHZJVFM6IGhhbmRsZSBNQVBDIGNv bW1hbmQKICBBUk06IHZJVFM6IGhhbmRsZSBNQVBEIGNvbW1hbmQKICBBUk06IHZJVFM6IGhhbmRs ZSBNQVBUSSBjb21tYW5kCiAgQVJNOiB2SVRTOiBoYW5kbGUgTU9WSSBjb21tYW5kCiAgQVJNOiB2 SVRTOiBoYW5kbGUgRElTQ0FSRCBjb21tYW5kCiAgQVJNOiB2SVRTOiBoYW5kbGUgSU5WIGNvbW1h bmQKICBBUk06IHZJVFM6IGhhbmRsZSBJTlZBTEwgY29tbWFuZAogIEFSTTogdklUUzogY3JlYXRl IGFuZCBpbml0aWFsaXplIHZpcnR1YWwgSVRTZXMgZm9yIERvbTAKICBBUk06IHZJVFM6IGNyZWF0 ZSBJVFMgc3Vibm9kZXMgZm9yIERvbTAgRFQKICBBUk06IHZHSUM6IGFkdmVydGlzZSBMUEkgc3Vw cG9ydAoKIGRvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duIHwgICAxOCArCiB4ZW4v YXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAgICAgICB8ICAgIDUgKwogeGVuL2FyY2gvYXJtL01h a2VmaWxlICAgICAgICAgICAgICAgfCAgICAzICsKIHhlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMg ICAgICAgICAgIHwgIDk4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNo L2FybS9naWMtdjMtbHBpLmMgICAgICAgICAgIHwgIDU0NSArKysrKysrKysrKysrKysrKwogeGVu L2FyY2gvYXJtL2dpYy12My5jICAgICAgICAgICAgICAgfCAgIDgwICsrLQogeGVuL2FyY2gvYXJt L2dpYy5jICAgICAgICAgICAgICAgICAgfCAgIDIwICstCiB4ZW4vYXJjaC9hcm0vdmdpYy12My1p dHMuYyAgICAgICAgICB8IDExMjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IHhlbi9hcmNoL2FybS92Z2ljLXYzLmMgICAgICAgICAgICAgIHwgIDI3MiArKysrKysrKy0KIHhl bi9hcmNoL2FybS92Z2ljLmMgICAgICAgICAgICAgICAgIHwgICAxNiArLQogeGVuL2NvbW1vbi9t ZW1vcnkuYyAgICAgICAgICAgICAgICAgfCAgIDYxICsrCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2Jp dG9wcy5oICAgICAgICB8ICAgIDEgKwogeGVuL2luY2x1ZGUvYXNtLWFybS9jb25maWcuaCAgICAg ICAgfCAgICAyICsKIHhlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmggICAgICAgIHwgICAxMiAr LQogeGVuL2luY2x1ZGUvYXNtLWFybS9naWMuaCAgICAgICAgICAgfCAgICAyICsKIHhlbi9pbmNs dWRlL2FzbS1hcm0vZ2ljX3YzX2RlZnMuaCAgIHwgICA3NSArKy0KIHhlbi9pbmNsdWRlL2FzbS1h cm0vZ2ljX3YzX2l0cy5oICAgIHwgIDI2MiArKysrKysrKwogeGVuL2luY2x1ZGUvYXNtLWFybS9p cnEuaCAgICAgICAgICAgfCAgIDE1ICsKIHhlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oICAgICAg ICAgIHwgICAgNiArCiB4ZW4vaW5jbHVkZS94ZW4vYml0b3BzLmggICAgICAgICAgICB8ICAgIDUg Ky0KIHhlbi9pbmNsdWRlL3hlbi9tbS5oICAgICAgICAgICAgICAgIHwgICAgOCArCiAyMSBmaWxl cyBjaGFuZ2VkLCAzNDY4IGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4 ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJt L3ZnaWMtdjMtaXRzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9hc20tYXJtL2dp Y192M19pdHMuaAoKLS0gCjIuOS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==