From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey G Subject: Notes for upcoming PCI emulation call Date: Wed, 2 May 2018 20:03:52 +1000 Message-ID: <20180502200352.0000060d@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fDocJ-0001Al-6t for xen-devel@lists.xenproject.org; Wed, 02 May 2018 10:04:07 +0000 Received: by mail-lf0-x232.google.com with SMTP id o123-v6so19960155lfe.8 for ; Wed, 02 May 2018 03:04:04 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Lars Kurth Cc: Julien Grall , Stefano Stabellini , Daniel Smith , Christopher Clark , Rich Persaud , Paul Durrant , xen-devel , Chao Gao , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SeKAmWxsIHRyeSB0byBzdW1tYXJpemUgY3VycmVudCBpc3N1ZXMvZGlmZmljdWx0aWVzIGluIGV4 dGVuZGluZyB0aGUgUENJZQpwYXNzdGhyb3VnaCBzdXBwb3J0IGFuZCBwb3NzaWJsZSB3YXlzIHRv IHJlc29sdmUgdGhlc2UgcHJvYmxlbXMgd2hpY2gKd2VyZSBkaXNjdXNzZWQgaW4gdGhlIG1haWxp bmcgbGlzdCBzbyBmYXIuCgpQb3NzaWJsZSBvcHRpb25zIHRvIGV4dGVuZCBQQ0kgcGFzc3Rocm91 Z2gvZW11bGF0aW9uIGNhcGFiaWxpdGllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlcmUgaXMgYW4gYXJpc2luZyBu ZWVkIHRvIHN1cHBvcnQgUENJZS1zcGVjaWZpYyBmZWF0dXJlcyBmb3IgUENJCnBhc3N0aHJvdWdo LiBBIGxvdCBvZiBkZXZpY2VzIGhhdmUgUENJZSBFeHRlbmRlZCBDYXBhYmlsaXRpZXMgYWJvdmUK MTAwaCBvZmZzZXQuIEV2ZW4gaWYgd2UgZG9u4oCZdCB3YW50IHRvIHN1cHBvcnQgdGhlc2UgY2Fw YWJpbGl0aWVzIGluIFhlbgpyaWdodCBhd2F5LCBhIHByb3ByaWV0YXJ5IGRyaXZlciBmb3IgYSBw YXNzZWQgdGhyb3VnaCBkZXZpY2UgbWlnaHQgd2FudAp0byB1c2UgdGhlc2UgZXh0ZW5kZWQgY2Fw YWJpbGl0aWVzIGFueXdheSAt4oCTIFZlbmRvci1zcGVjaWZpYyBFeHRlbmRlZApDYXBhYmlsaXR5 IGlzIGEgY2xhc3NpYyBleGFtcGxlLCB0aG91Z2ggdGhlIGRldmljZSBkcml2ZXIgbWF5IHRyeSB0 bwpyZWFkIG90aGVyIEV4dGVuZGVkIENhcGFiaWxpdGllcyBmcm9tIGl0cyBkZXZpY2XigJlzIGNv bmYgc3BhY2UuCgpBcGFydCBmcm9tIHN1cHBvcnRpbmcgUENJZSBFeHRlbmRlZCBDYXBhYmlsaXRp ZXMsIGFub3RoZXIgcG9zc2libGUgKGFuZApiaWcpIGRpcmVjdGlvbiDigJMtIHN1cHBvcnRpbmcg UENJZS1zcGVjaWZpYyBmZWF0dXJlcyBpbiBnZW5lcmFsIGxpa2UKbmF0aXZlIFBDSWUgaG90cGx1 ZywgbmV3IFBNIGZhY2lsaXRpZXMgb3IgZm9yd2FyZGluZyBBRVIgZXZlbnRzIHRvIGEKZ3Vlc3Qg T1MuIFRoaXMgd2lsbCByZXF1aXJlIGFkZGluZyBzdXBwb3J0IGZvciBzb21lIGNvb3BlcmF0aW9u IGJldHdlZW4KcGFzc2VkIHRocm91Z2ggYW5kIGVtdWxhdGVkIGRldmljZXMgaW4gYSBQQ0llIGhp ZXJhcmNoeSwgZm9yIHdoaWNoIG1ham9yCmNoYW5nZXMgaW4gZW11bGF0ZWQgUENJIGJ1cyBhcmNo aXRlY3R1cmUgYXJlIG5lZWRlZC4gQXQgdGhlIG1vbWVudCwgYWxsClBDSWUgZGV2aWNlcyBhcmUg cGFzc2VkIHRocm91Z2ggaW4gbGVnYWN5IFBDSSBtb2RlIGluIFhlbi4gVGhpcyBtZWFucwp0aGVy ZSBpcyBubyBzdXBwb3J0IGN1cnJlbnRseSBmb3IgUENJZS1zcGVjaWZpYyBmZWF0dXJlcyBsaWtl IGV4dGVuZGVkClBDSSBjb25maWcgc3BhY2UgdmlhIEVDQU0uCgpFdmVuIHByb3ZpZGluZyBzdXBw b3J0IGZvciBQQ0llIEV4dGVuZGVkIENhcGFiaWxpdGllcyBhbG9uZSByZXF1aXJlcwpzb21lIGNo YW5nZXMg4oCTLSB3ZSBuZWVkIHRvCjEuIEVtdWxhdGUgRUNBTSAoTU1JTy1hY2Nlc3NlcyB0byBN TUNPTkZJRyBhcmVhKSB0byBhbGxvdwogICByZWFkaW5nL3dyaXRpbmcgUENJZSBleHRlbmRlZCBj b25maWd1cmF0aW9uIHNwYWNlCjIuIFByZXNlbnQgYSBQQ0llLWNhcGFibGUgc3lzdGVtIGZvciBh IGd1ZXN0IE9TLgoKVGhpcyBjYW4gYmUgYWNoaWV2ZWQgYnkgYWRkaW5nIFFFTVUgUTM1IGVtdWxh dGlvbiBzdXBwb3J0IHRvIFhlbiAoUkZDCnBhdGNoIHNlcmllcyBmb3IgdGhpcyBmZWF0dXJlIHdh cyBzZW50KS4gRm9yIEVDQU0sIGluIGEgdmVyeSBzaW1wbGVzdApjYXNlLCBRRU1VIGV4aXN0aW5n IE1NQ09ORklHIGVtdWxhdGlvbiBjYW4gYmUgcmV1c2VkLiBIb3dldmVyLCB0aGVyZQphcmUgYXQg bGVhc3QgdHdvIGluY29tcGF0aWJpbGl0eSBwcm9ibGVtcyB3aGljaCBuZWVkIHNvbHV0aW9uLiBU aGVzZQphcmU6CgotIE11bHRpcGxlIFBDSSBkZXZpY2UgZW11bGF0b3JzIGZlYXR1cmUsIHVzZWQg YnkgVkdQVSBpbiBYZW5TZXJ2ZXIKCi0gRW11bGF0aW5nIChhIHNpbXBsZXN0KSB1cHN0cmVhbSBQ Q0llIGhpZXJhcmNoeSBmb3IgcGFzc2VkIHRocm91Z2ggUENJZQpkZXZpY2VzLiBUaGUgaXNzdWUg d2FzIGRlc2NyaWJlZCBpbiBkZXRhaWxzIGhlcmU6Cmh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hp dmUvaHRtbC9xZW11LWRldmVsLzIwMTgtMDMvbXNnMDM1OTMuaHRtbAoKTGF0dGVyIHByb2JsZW0g bXVzdCBiZSByZXNvbHZlZCBwcm9wZXJseSBieSBpbnRyb2R1Y2luZyBlbXVsYXRlZCBQQ0llClJv b3QgUG9ydHMgZm9yIHBhc3NlZCB0aHJvdWdoIGRldmljZXMuIEJhc2ljYWxseSB0aGlzIG1lYW5z IHdlIG5lZWQgdG8KZW11bGF0ZSBQQ0ktUENJIGJyaWRnZXMgd2l0aCBzZWNvbmRhcnkgYnVzIHVz ZWQgdG8gcGxhY2UgcmVhbCBwYXNzZWQKdGhyb3VnaCBkZXZpY2VzLCBpZGVhbGx5IHVzaW5nIGZ1 bmN0aW9uIGdyb3VwaW5nIGZvciByZWxhdGVkIGRldmljZXMKbGlrZSBHUFUgYW5kIGl0cyBIREF1 ZGlvIGZ1bmN0aW9uLgoKVGhlcmUgYXJlIGRpZmZlcmVudCBhcHByb2FjaGVzIF93aG9fIHNob3Vs ZCBlbXVsYXRlIHRoZXNlIFBDSS1QQ0kKYnJpZGdlcy4gUUVNVSBoYXMgc3VwcG9ydCBmb3IgZW11 bGF0ZWQgUlBzIGFuZCBQQ0llIHN3aXRjaGVzIGJ1dCB3ZQptaWdodCB3YW50IHRvIHJlbW92ZSB0 aGF0IHByaXZpbGVnZSBmcm9tIFFFTVUgYXMgZW11bGF0aW5nIFJQcy9zd2l0Y2hlcwphYm92ZSBf cmVhbF8gcGFzc2VkIHRocm91Z2ggUENJZSBkZXZpY2VzIGlzIGEgcmVsYXRpdmVseSBzeXN0ZW0g dGhpbmcuCkFsc28sIHdlIG5lZWQgdG8gY29uc2lkZXIgZnV0dXJlIFBDSWUgcGFzc3RocnUgZXh0 ZW5zaW9ucyBsaWtlIGhhbmRsaW5nClBNIGV2ZW50cyBmcm9tIHBhc3NlZCB0aHJvdWdoIFBDSWUg ZGV2aWNlcyBhcyB0aGVzZSBmZWF0dXJlcyBhc3N1bWUgc29tZQphZGRpdGlvbmFsIHN1cHBvcnQg aW4gdXBzdHJlYW0gUENJZSBoaWVyYXJjaHkuCgpTbywgd2UgbmVlZCB0byBkZWNpZGUgd2hvIHdp bGwgYmUgY29udHJvbGxpbmcgZW11bGF0ZWQgUm9vdCBQb3J0cyBmb3IKcGFzc2VkIHRocm91Z2gg ZGV2aWNlcyDigJMgZWl0aGVyIFhlbiBvciBRRU1VLiBGb3IgYSBudW1iZXIgb2YgcmVhc29ucyBp dAp3aWxsIGJlIGJlbmVmaWNpYWwgdG8gZG8gaXQgb24gWGVuIHNpZGUgd2hpbGUgc3RpY2tpbmcg dG8gUUVNVSBhbGxvd3MKcmV1c2luZyBleGlzdGluZyBmdW5jdGlvbmFsaXR5IG9uIHRoZSBvdGhl ciBoYW5kLgoKTm93LCByZWdhcmRpbmcgdGhlIG11bHRpcGxlIFBDSSBkZXZpY2UgZW11bGF0b3Jz LiBGb3IgbXVsdGlwbGUgUENJCmRldmljZSBlbXVsYXRvcnMgYSBzcGVjaWZpYyBwYXNzZWQgdGhy b3VnaCBkZXZpY2UgbWF5IGJlIGFzc2lnbmVkIHRvIGEKc2VwYXJhdGUgZGV2aWNlIG1vZGVsIChu b24tUUVNVSkuIEF0IHRoZSBsb3ctbGV2ZWwgdGhpcyB3aWxsIGFwcGVhciBhcwptb3JlIHRoYW4g b25lIElPUkVRIHNlcnZlciBwcmVzZW50IOKAky0gbW9zdCBQQ0kgZGV2aWNlcyB3aWxsIGJlIHN0 aWxsCmhhbmRsZWQgYnkgUUVNVSwgd2l0aCBzb21lIGJlaW5nIGFzc2lnbmVkIHRvIGFub3RoZXIg KGRldmljZS1zcGVjaWZpYykKZGV2aWNlIG1vZGVsIC3igJMgYSBkaXN0aW5jdCBiaW5hcnkg4oCT LSB2aWEgc2FtZQp4Y19odm1fbWFwX3BjaWRldl90b19pb3JlcV9zZXJ2ZXIoKSBjYWxsLiBMYXRl ciwKaHZtX3NlbGVjdF9pb3JlcV9zZXJ2ZXIoKSB3aWxsIHNlbGVjdCBhIHByb3BlciBkZXZpY2Ug bW9kZWwgZGVzdGluYXRpb24KYmFzZWQgb24gQkRGIGxvY2F0aW9uIG9mIHRoZSBkZXZpY2UgYW5k IGlvcmVxcyB3aWxsIGJlIHNlbnQgdG8gdGhlCmNob3NlbiB0YXJnZXQuClRoaXMgd29ya3Mgd2Vs bCBmb3IgbGVnYWN5IENGOGgvQ0ZDaCBQQ0kgY29uZiBhY2Nlc3NlcywgYnV0IE1NQ09ORklHCnN1 cHBvcnQgaW50cm9kdWNlcyBzb21lIHByb2JsZW1zLgoKRmlyc3Qgb2YgYWxsLCBNTUNPTkZJRyBp dHNlbGYgaXMgYSBjaGlwc2V0LXNwZWNpZmljIHRoaW5nLiBCb3RoCnJlZ2lzdGVycyB3aGljaCBj b250cm9sIGl0IGFuZCB0aGUgbnVtYmVyIG9mIE1NQ09ORklHIHJhbmdlcwooRUNBTS1jYXBhYmxl IFBDSWUgc2VnbWVudHMpIG1heSBkaWZmZXIgZm9yIGRpZmZlcmVudCBlbXVsYXRlZAptYWNoaW5l cy4gVGhpcyBtZWFucyB0aGF0IHNvbWUgZGVzaWduYXRlZCBkZXZpY2UgbW9kZWwgc2hvdWxkIGNv bnRyb2wKaXQgYWNjb3JkaW5nIHRvIHRoZSB1c2VyLXNlbGVjdGVkIGVtdWxhdGVkIG1hY2hpbmUu IERldmljZS1zcGVjaWZpYwpkZXZpY2UgbW9kZWwgZG9lc24ndCBrbm93IGFueXRoaW5nIGFib3V0 IHRoZSBlbXVsYXRlZCBtYWNoaW5lLgoKU2Vjb25kbHksIGluIG9yZGVyIHRvIGhhdmUgYWxsIG5l Y2Vzc2FyeSBpbmZvcm1hdGlvbiB0byBmb3J3YXJkIGlvcmVxcwp0byB0aGUgY29ycmVjdCBkZXZp Y2UgbW9kZWwsIFhlbiBuZWVkcyB0byBrbm93CjEuIE1NQ09ORklHIGJhc2UgYWRkcmVzcyBhbmQg c2l6ZSAoaWRlYWxseSBleHRlbmRhYmxlIHRvIHN1cHBvcnQKICAgbXVsdGlwbGUgTU1DT05GSUdz KQoyLiBNTUNPTkZJRyBsYXlvdXQsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGN1cnJlbnQgbWFwIG9m IHRoZSBQQ0kgYnVzLgogICBUaGlzIGxheW91dCBtYXkgY2hhbmdlIGFueXRpbWUgZHVlIHRvIGEg UENJLVBDSSBicmlkZ2UKICAgcmUtaW5pdGlhbGl6YXRpb24gb3IgaG90cGx1Z2dpbmcgYSBkZXZp Y2UuCgpUaGVyZSBhcmUgZGlmZmVyZW50IG9wdGlvbnMgaG93IHRvIHBhc3MgdGhpcyBpbmZvcm1h dGlvbiB0byBYZW4uIFhlbgptYXkgZXZlbiBjb250cm9sIGl0IGl0c2VsZiBpbiBzb21lIHNvbHV0 aW9ucy4KCk1NQ09ORklHIGxheW91dCBjYW4gYmUgb2J0YWluZWQgcGFzc2l2ZWx5LCBieSBzaW1w bHkgb2JzZXJ2aW5nCm1hcF9wY2lkZXZfdG9faW9yZXFfc2VydmVyIGNhbGxzIHRvIGRldGVybWlu ZSBhbmQgc3RvcmUgYWxsIGVtdWxhdGVkClBDSSBkZXZpY2UgQkRGIGxvY2F0aW9ucy4KCkFub3Ro ZXIgdGhpbmcgdG8gY29uc2lkZXIgaGVyZSBpcyBNTUlPIGhvbGUgbGF5b3V0IGFuZCBpdHMgaW1w YWN0LgpGb3IgZXhhbXBsZSwgYWRkaW5nIFBDSS1QQ0kgYnJpZGdlcyBjcmVhdGVzIHNvbWUgY29t cGxpY2F0aW9uIGFzIHRoZXkKd2lsbCBwcm92aWRlIHdpbmRvd3MgaW4gSU8vTU1JTyBzcGFjZSB3 aGljaCBzaG91bGQgYmUgc2l6ZWQgYWNjb3JkaW5nbHkKdG8gdGhlIHNlY29uZGFyeSBQQ0kgYnVz IGNvbnRlbnQuIEluIHNvbWUgY2FzZXMgbGlrZSBob3RwbHVnZ2luZyBhIFBDSWUKZGV2aWNlICh3 aGljaCBzaG91bGQgYmVsb25nIHRvIHNvbWUgUlAgb3Igc3dpdGNoIERQKSBleGlzdGluZyBicmlk Z2UKd2luZG93cyBtaWdodCBiZSB0b28gc21hbGwgdG8gcHJvdmlkZSBzcGFjZSBmb3IgYSBuZXds eSBhZGRlZCBkZXZpY2UsCnRyaWdnZXJpbmcgUENJLVBDSSBicmlkZ2UgYW5kIEJBUnMgcmUtaW5p dGlhbGl6YXRpb24gKGFrYSBQQ0kgcmVzb3VyY2UKcmViYWxhbmNpbmcgaW4gV2luZG93cyB0ZXJt cykgaW4gZ3Vlc3QuIFRoaXMgYWN0aW9uIG1heSBjaGFuZ2UgdGhlIFBDSQpidXMgbGF5b3V0IHdo aWNoIG5lZWRzIHRvIGJlIGFkZHJlc3NlZCBzb21laG93LiBBbHNvLCBieSB1dGlsaXppbmcgQUNQ SQpfRFNNIG1ldGhvZCAobm90IG91ciBjYXNlIGx1Y2tpbHkgYXMgd2UgZG9uJ3QgcHJvdmlkZSBp dCkgV2luZG93cyBtYXkKaW52b2tlIGEgY29tcGxldGUgUENJIEJBUnMvUENJLVBDSSBicmlkZ2Ug cmUtaW5pdGlhbGl6YXRpb24KdW5jb25kaXRpb25hbGx5IG9uIHN5c3RlbSBib290LgoKClBvc3Np YmxlIGRpcmVjdGlvbnMgdG8gbWFrZSBtdWx0aXBsZSBQQ0kgZGV2aWNlIGVtdWxhdG9ycyBjb21w YXRpYmxlCndpdGggUENJZS9NTUNPTkZJRwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKSS4g4oCcTm90aWZpY2F0aW9u 4oCdIGFwcHJvYWNoLiBJbiB0aGlzIGNhc2UgUUVNVSB3aWxsIGNvbnRpbnVlIHRvIGVtdWxhdGUK UENJRVhCQVIgYW5kIGhhbmRsZSBNTUNPTkZJRyBhY2Nlc3Nlcy4gQnV0LCB1cG9uIGVuY291bnRl cmluZyBhbnkKY2hhbmdlcyBpbiB0aGUgUENJRVhCQVIgdmFsdWUsIFFFTVUgd2lsbCByZXBvcnQg dGhpcyBjaGFuZ2UgdG8gWGVuIHZpYQphbnkgc3VpdGFibGUgY2hhbm5lbCAt4oCTIGVpdGhlciBh IGRlZGljYXRlZCBkbW9wLCBYZW5TdG9yZSBwYXJhbSBvcgphbnl0aGluZyBlbHNlLiBYZW4gd2ls bCBzdG9yZSB0aGlzIGluZm9ybWF0aW9uIGFuZCB1c2UgaXQgdG8gc2VsZWN0IGEKcHJvcGVyIElP UkVRIHNlcnZlciBkZXN0aW5hdGlvbiBmb3IgdHJhcHBlZCBNTUNPTkZJRyBhY2Nlc3Nlcy4KCklJ LiDigJxPd24gY2hpcHNldCBkZXZpY2UgbW9kZWzigJ0uIEluIHRoaXMgY2FzZSBYZW4gd2lsbCBl bXVsYXRlIHNvbWUKY2hpcHNldC1zcGVjaWZpYyBkZXZpY2VzIGhpbXNlbGYuIE9mIHBhcnRpY3Vs YXIgaW50ZXJlc3QgYXJlIE1DSCBhbmQKSUNIOS4gQm90aCBlbXVsYXRlZCBSb290IENvbXBsZXgg YW5kIFJvb3QgUG9ydHMgd2lsbCBiZWxvbmcgdG8gWGVuLAphbGxvd2luZyBpbXBsZW1lbnRpbmcg UENJZS1zcGVjaWZpYyBmZWF0dXJlcyBsaWtlIEFFUiByZXBvcnRpbmcgaW4gYW55CmNvbnZlbmll bnQgd2F5LiBJZGVhbGx5LCBmcm9tIFFFTVUgc2lkZSBvbmx5IGEgc2V0IG9mIGRpc3RpbmN0ClBD SURldmljZeKAmXMgd2lsbCByZW1haW4g4oCTIHN0b3JhZ2UsIG5ldHdvcmtpbmcsIGV0Yy4gQSBk dW1teSBwY2ktaG9zdAp3aWxsIGJlIHByb3ZpZGluZyBmb3J3YXJkaW5nIG9mIElPUkVRX1RZUEVf UENJX0NPTkZJRy1hY2Nlc3NlcyBmb3IKcmVtYWluaW5nIFBDSURldmljZXMuIFBDSSBidXMgbGF5 b3V0IHNlZW4gYnkgUUVNVSBjYW4gYmUgbWFkZSBkaWZmZXJlbnQKd2l0aCB0aGUgcmVhbCBsYXlv dXQgc2VlbiBieSBndWVzdC4gRmluYWwgcmVzdWx0IHdpbGwgbG9vayBsaWtlIGEgbmV3LAp2ZXJ5 IHJlZHVjZWQgUUVNVSBtYWNoaW5lIHdpdGggZHVtbXkgUENJQnVzL0lTQUJ1cywgcGVyaGFwcyBl dmVuIGJhc2VkCm9uIHRvcCBvZiBRRU1VIG51bGwgbWFjaGluZS4KCldoaWxlIHRoaXMgYXBwcm9h Y2ggaXMgYmVuZWZpY2lhbCBpbiBtYW55IHdheXMsIGl0IHdpbGwgYWZmZWN0CmNvbXBhdGliaWxp dHkgd2l0aCBRRU1VIHZlcnksIHZlcnkgYmFkbHkuIEZvciBleGFtcGxlLCBOVkRJTU0gc3VwcG9y dApwYXRjaGVzIGZyb20gSW50ZWwgcmVseSBvbiBRRU1VIEFDUEkgZmFjaWxpdGllcyB3aGljaCBj YW4gYmVjb21lCmNvbXBsZXRlbHkgaW5vcGVyYXRpb25hbCBkdWUgdG8gcmVtb3ZpbmcgZW11bGF0 ZWQgTkIrU0IgYW5kIHRoZWlyCmNvcnJlc3BvbmRpbmcgc3VidHlwZXMgYW5kIHByb3BlcnRpZXMu IE11bHRpcGxlIHNpbWlsYXIgaXNzdWVzIGFuZApicmVha2FnZXMgbWF5IGFyaXNlIGluIGZ1dHVy ZSwgdGhvdWdoIFFFTVUgUE0vQUNQSSBmYWNpbGl0aWVzIGlzIHRoZQptYWluIHByb2JsZW0uIE5v dGUgdGhhdCBYZW4gYWxyZWFkeSBlbXVsYXRlcyBzb21lIG9mIFBNQkFTRSByZWdpc3RlcnMKYW5k IFBNQkFTRSB2YWx1ZSBpdHNlbGYgaXMgaGFyZGNvZGVkIChhdCBCMDAwaCBJSVJDKS4gT3duIFBN QkFTRQpCQVIgZW11bGF0aW9uIHdpbGwgYWxsb3cgdG8gcmVtb3ZlIHRoaXMgbGltaXRhdGlvbi4K CklJSS4g4oCcVHJhbnNwYXJlbnQgZW11bGF0aW9u4oCdLiBJbiB0aGlzIGNhc2UgWGVuIHdpbGwg aW50ZXJjZXB0IG9ubHkgc29tZQprbm93biByZWdpc3RlcnMgZm9yIGNoaXBzZXQtc3BlY2lmaWMg ZGV2aWNlcyBlbXVsYXRlZCBieSBRRU1VLgpQQ0lFWEJBUiwgUE1CQVNFLCBwb3NzaWJseSBNTUlP IEhvbGUtY29udHJvbGxpbmcgcmVnaXN0ZXJzIGFuZCBzb21lCm90aGVycy4gQSBoYW5kbGVyIGZv ciB0aGlzIGtpbmQgb2YgcmVnaXN0ZXJzIGNhbiBiZSBzZWxlY3RpdmVseSBjYWxsZWQKYmVmb3Jl IG9yIGFmdGVyIHRoZSBjb3JyZXNwb25kaW5nIERNIGVtdWxhdGlvbiAob24gZGlmZmVyZW50IHN0 YWdlcyBvZgpJT1JFUSBwcm9jZXNzaW5nKSBhbmQgc2hvdWxkIGhhdmUgZnJlZWRvbSB0byBzcGVj aWZ5IHdoZXRoZXIgdGhlIERNIG1heQpzZWUgdGhpcyByZWFkL3dyaXRlIChvdGhlcndpc2UgaXQg aXMgaGFuZGxlZCBpbnRlcm5hbGx5KS4gVGhpcyB3aWxsCmFsbG93IHRvIHByb3ZpZGUgb3duIHN1 cHBvcnQgZm9yIFBDSUVYQkFSL01NQ09ORklHIGVtdWxhdGlvbiB3aGlsZQprZWVwaW5nIGNvbXBh dGliaWxpdHkgd2l0aCBRRU1VLiBaZXJvIGNoYW5nZXMgd2lsbCBiZSBuZWVkZWQgb24gUUVNVQpz aWRlLgpYZW4gd2lsbCBkZXRlY3QgdGhlIGVtdWxhdGVkIGNoaXBzZXQgZWl0aGVyIHBhc3NpdmVs eSBvciB2aWEgc2VuZGluZwpJT1JFUV9UWVBFX1BDSV9DT05GSUcgdG8gcmVhZCBWSUQvRElEIGZy b20gdGhlIGRldmljZSBtb2RlbCBkaXJlY3RseS4KTkIvU0IgVklEL0RJRCB2YWx1ZXMgd2lsbCBi ZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gZGlmZmVyZW50CmVtdWxhdGVkIG1hY2hpbmVz IGFuZCB0byBzZXR1cCBjb3JyZWN0IGhhbmRsZXJzIGZvciBjaGlwc2V0LXNwZWNpZmljCnJlZ2lz dGVycy4gCgpEdWUgdG8gdGhlIHJlcXVpcmVtZW50IGZvciBhIFBDSWUgZGV2aWNlIHRvIGNvb3Bl cmF0ZSB3aXRoIHVwc3RyZWFtClBDSWUgaGllcmFyY2h5IChhdCBsZWFzdCB0byBiZWxvbmcgdG8g c29tZSBSUC9zd2l0Y2gpLCBzb21lIGNoYW5nZXMgZm9yCm11bHRpcGxlIFBDSSBlbXVsYXRvciBz dXBwb3J0IG11c3QgYmUgbWFkZSBubyBtYXR0ZXIgdGhlIGNob3Nlbgpzb2x1dGlvbi4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=