From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 6/7] xen/dom0: Drop iommu_hwdom_inclusive entirely Date: Wed, 16 Jan 2019 09:00:49 +0000 Message-ID: <1547629250-1405-7-git-send-email-andrew.cooper3@citrix.com> References: <1547629250-1405-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1547629250-1405-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Juergen Gross , Kevin Tian , Stefano Stabellini , Wei Liu , Jun Nakajima , Andrew Cooper , Julien Grall , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBvcHRpb24gaXMgdW5pcXVlIHRvIHg4NiBQViBkb20wJ3MsIGJ1dCBpdCBpcyBub3Qgc2Vu c2libGUgdG8gaGF2ZSBhCmNhdGNoLWFsbCB3aGljaCBibGluZGx5IG1hcHMgYWxsIG5vbi1SQU0g cmVnaW9ucyBpbnRvIHRoZSBJT01NVS4KClRoZSBtYXAtcmVzZXJ2ZWQgb3B0aW9uIHJlbWFpbnMs IGFuZCBjb3ZlcnMgYWxsIHRoZSBidWdneSBmaXJtd2FyZSBpc3N1ZXMgdGhhdApJIGFtIGF3YXJl IG9mLiAgVGhlIHR3byBjb21tb24gY2FzZXMgYXJlIGxlZ2FjeSBVU0Iga2V5Ym9hcmQgZW11bGF0 aW9uLCBhbmQKdGhlIEJNQyBtYWlsYm94IHVzZWQgYnkgdmVuZG9yIGZpcm13YXJlIGluIE5JQ3Mv SEJBcyB0byByZXBvcnQgaW5mb3JtYXRpb24KYmFjayB0byB0aGUgaUxPL2lEUkFDL2V0YyBmb3Ig cmVtb3RlIHJlbW90ZSBtYW5hZ2VtZW50IHB1cnBvc2VzLgoKQSBzcGVjaWZpYyBhZHZhbnRhZ2Ug b2YgcmVtb3ZpbmcgdGhpcyBvcHRpb24gaXMgdGhhdCB4ODYgZG9tMCdzIElPTU1VIHNldHVwIGlz Cm5vdyBjb25zaXN0ZW50IGJldHdlZW4gUFYgYW5kIFBWSC4KClRoaXMgcmVtb3ZhbCBpcyBub3Qg ZXhwZWN0ZWQgdG8gaGF2ZSBhbnkgaW1wYWN0LCBkdWUgdG8gbWFwLXJlc2VydmVkCnJlbWFpbmlu Zy4gIEluIHRoZSB1bmxpa2VseSBjYXNlIHRoYXQgaXQgZG9lcyBjYXVzZSBhbiBpc3N1ZSwgd2Ug c2hvdWxkCmludHJvZHVjZSBvdGhlciBtYXAtJFNQRUNJRklDIG9wdGlvbnMgcmF0aGVyIHRoYW4g cmUtaW50cm9kdWNpbmcgdGhpcwpjYXRjaC1hbGwuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1 bGljaEBzdXNlLmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBSb2dl ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ0M6IFN0ZWZhbm8gU3RhYmVsbGlu aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxs QGFybS5jb20+CkNDOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+CkNDOiBKdW4gTmFr YWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNDOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFu QGludGVsLmNvbT4KCnYyOgogKiBOZXcKLS0tCiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5w YW5kb2MgICAgIHwgMTkgKysrLS0tLS0tLS0tLS0tLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYXJtL3NtbXUuYyAgICB8ICA0IC0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11 LmMgICAgICAgfCAgMyAtLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMg fCAgNiAtLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jICAgfCAxNCAr Ky0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAgICAgICAgICAgICB8ICAy ICstCiA2IGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUucGFuZG9jIGIvZG9jcy9taXNj L3hlbi1jb21tYW5kLWxpbmUucGFuZG9jCmluZGV4IDM2NWQyZWUuLmNjZmFkNGMgMTAwNjQ0Ci0t LSBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYworKysgYi9kb2NzL21pc2MveGVu LWNvbW1hbmQtbGluZS5wYW5kb2MKQEAgLTY2Nyw4ICs2NjcsNyBAQCBDb250cm9scyBmb3IgaG93 IGRvbTAgaXMgY29uc3RydWN0ZWQgb24geDg2IHN5c3RlbXMuCiAgICAgaW5mb3JtYXRpb24gZHVy aW5nIHRoZSBkb20wIGJ1aWxkLiAgSXQgZGVmYXVsdHMgdG8gZmFsc2UuCiAKICMjIyBkb20wLWlv bW11Ci0gICAgPSBMaXN0IG9mIFsgcGFzc3Rocm91Z2g9PGJvb2w+LCBzdHJpY3Q9PGJvb2w+LCBt YXAtaW5jbHVzaXZlPTxib29sPiwKLSAgICAgICAgICAgICAgICBtYXAtcmVzZXJ2ZWQ9PGJvb2w+ IF0KKyAgICA9IExpc3Qgb2YgWyBwYXNzdGhyb3VnaD08Ym9vbD4sIHN0cmljdD08Ym9vbD4sIG1h cC1yZXNlcnZlZD08Ym9vbD4gXQogCiBDb250cm9scyBmb3IgdGhlIGRvbTAgSU9NTVUgc2V0dXAu CiAKQEAgLTY5NSw5ICs2OTQsOCBAQCBDb250cm9scyBmb3IgdGhlIGRvbTAgSU9NTVUgc2V0dXAu CiAgICAgb3RoZXIgZG9tYWlucyBpbiB0aGUgc3lzdGVtIGRvbid0IGxpdmUgaW4gYSBjb21wYXRp YmxlIGFkZHJlc3Mgc3BhY2UpLCBhbmQKICAgICBpcyBpZ25vcmVkIGZvciBBUk0uCiAKLSogICBU aGUgYG1hcC1pbmNsdXNpdmVgIGJvb2xlYW4gaXMgYXBwbGljYWJsZSB0byB4ODYgUFYgZG9tMCdz LCBhbmQgc2V0cyB1cAotICAgIGlkZW50aXR5IElPTU1VIG1hcHBpbmdzIGZvciBhbGwgbm9uLVJB TSByZWdpb25zIGJlbG93IDRHQiBleGNlcHQgZm9yCi0gICAgdW51c2FibGUgcmFuZ2VzLCBhbmQg cmFuZ2VzIGJlbG9uZ2luZyB0byBYZW4uCisqICAgVGhlIGBtYXAtcmVzZXJ2ZWRgIGJvb2xlYW4g aXMgYXBwbGljYWJsZSB0byB4ODYsIGFuZCBzZXRzIHVwIGlkZW50aXR5IElPTU1VCisgICAgbWFw cGluZ3MgZm9yIGFsbCBFODIwIHJlc2VydmVkIHJlZ2lvbnMgYmVsb3cgNEdCLgogCiAgICAgVHlw aWNhbGx5LCBzb21lIGRldmljZXMgaW4gYSBzeXN0ZW0gdXNlIGJpdHMgb2YgUkFNIGZvciBjb21t dW5pY2F0aW9uLCBhbmQKICAgICB0aGVzZSBhcmVhcyBzaG91bGQgYmUgbGlzdGVkIGFzIHJlc2Vy dmVkIGluIHRoZSBFODIwIHRhYmxlIGFuZCBpZGVudGlmaWVkCkBAIC03MTEsMTEgKzcwOSw2IEBA IENvbnRyb2xzIGZvciB0aGUgZG9tMCBJT01NVSBzZXR1cC4KICAgICBUaGlzIG9wdGlvbiBpcyBl bmFibGVkIGJ5IGRlZmF1bHQgb24geDg2IHN5c3RlbXMsIGFuZCBpbnZhbGlkIG9uIEFSTQogICAg IHN5c3RlbXMuCiAKLSogICBUaGUgYG1hcC1yZXNlcnZlZGAgZnVuY3Rpb25hbGl0eSBpcyB2ZXJ5 IHNpbWlsYXIgdG8gYG1hcC1pbmNsdXNpdmVgLCBidXQgaXMKLSAgICBhcHBsaWNhYmxlIHRvIGJv dGggeDg2IFBWIGFuZCBQVkggZG9tMCdzLCBhbmQgcmVwcmVzZW50cyBhIHN1YnNldCBvZiB0aGUK LSAgICBjb3JyZWN0aW9uIGJ5IG9ubHkgbWFwcGluZyByZXNlcnZlZCBtZW1vcnkgcmVnaW9ucyBy YXRoZXIgdGhhbiBhbGwgbm9uLVJBTQotICAgIHJlZ2lvbnMuCi0KICMjIyBkb20wX2lvcG9ydHNf ZGlzYWJsZSAoeDg2KQogPiBgPSBMaXN0IG9mIDxoZXg+LTxoZXg+YAogCkBAIC0xMjU5LDEyICsx MjUyLDYgQEAgU3BlY2lmeSB0aGUgdGltZW91dCBvZiB0aGUgZGV2aWNlIElPVExCIGludmFsaWRh dGlvbiBpbiBtaWxsaXNlY29uZHMuCiBCeSBkZWZhdWx0LCB0aGUgdGltZW91dCBpcyAxMDAwIG1z LiBXaGVuIHlvdSBzZWUgZXJyb3IgJ1F1ZXVlIGludmFsaWRhdGUKIHdhaXQgZGVzY3JpcHRvciB0 aW1lZCBvdXQnLCB0cnkgaW5jcmVhc2luZyB0aGlzIHZhbHVlLgogCi0jIyMgaW9tbXVfaW5jbHVz aXZlX21hcHBpbmcKLT4gYD0gPGJvb2xlYW4+YAotCi0qKldBUk5JTkc6IFRoaXMgY29tbWFuZCBs aW5lIG9wdGlvbiBpcyBkZXByZWNhdGVkLCBhbmQgc3VwZXJzZWRlZCBieQotX2RvbTAtaW9tbXU9 bWFwLWluY2x1c2l2ZV8gLSB1c2luZyBib3RoIG9wdGlvbnMgaW4gY29tYmluYXRpb24gaXMgdW5k ZWZpbmVkLioqCi0KICMjIyBpcnFfcmF0ZWxpbWl0ICh4ODYpCiA+IGA9IDxpbnRlZ2VyPmAKIApk aWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMKaW5kZXggNzNjODA0OC4uZTM1YWUxMyAxMDA2NDQK LS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYworKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jCkBAIC0yNzE0LDEwICsyNzE0LDYgQEAgc3RhdGljIGlu dCBhcm1fc21tdV9pb21tdV9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogc3RhdGljIHZv aWQgX19od2RvbV9pbml0IGFybV9zbW11X2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAq ZCkKIHsKIAkvKiBTZXQgdG8gZmFsc2Ugb3B0aW9ucyBub3Qgc3VwcG9ydGVkIG9uIEFSTS4gKi8K LQlpZiAoIGlvbW11X2h3ZG9tX2luY2x1c2l2ZSA9PSAxICkKLQkJcHJpbnRrKFhFTkxPR19XQVJO SU5HCi0JCSJtYXAtaW5jbHVzaXZlIGRvbTAtaW9tbXUgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQg b24gQVJNXG4iKTsKLQlpb21tdV9od2RvbV9pbmNsdXNpdmUgPSAwOwogCWlmICggaW9tbXVfaHdk b21fcmVzZXJ2ZWQgPT0gMSApCiAJCXByaW50ayhYRU5MT0dfV0FSTklORwogCQkibWFwLXJlc2Vy dmVkIGRvbTAtaW9tbXUgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgb24gQVJNXG4iKTsKZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9pb21tdS5jCmluZGV4IDlhYzllMDUuLjY5NmQxODkgMTAwNjQ0Ci0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv aW9tbXUuYwpAQCAtMzgsNyArMzgsNiBAQCBib29sX3QgX19yZWFkX21vc3RseSBpb21tdV9pbnRy ZW1hcCA9IDE7CiAKIGJvb2wgX19od2RvbV9pbml0ZGF0YSBpb21tdV9od2RvbV9zdHJpY3Q7CiBi b29sIF9fcmVhZF9tb3N0bHkgaW9tbXVfaHdkb21fcGFzc3Rocm91Z2g7Ci1pbnQ4X3QgX19od2Rv bV9pbml0ZGF0YSBpb21tdV9od2RvbV9pbmNsdXNpdmUgPSAtMTsKIGludDhfdCBfX2h3ZG9tX2lu aXRkYXRhIGlvbW11X2h3ZG9tX3Jlc2VydmVkID0gLTE7CiAKIC8qCkBAIC0xMjcsOCArMTI2LDYg QEAgc3RhdGljIGludCBfX2luaXQgcGFyc2VfZG9tMF9pb21tdV9wYXJhbShjb25zdCBjaGFyICpz KQogICAgICAgICAgICAgaW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggPSB2YWw7CiAgICAgICAgIGVs c2UgaWYgKCAodmFsID0gcGFyc2VfYm9vbGVhbigic3RyaWN0Iiwgcywgc3MpKSA+PSAwICkKICAg ICAgICAgICAgIGlvbW11X2h3ZG9tX3N0cmljdCA9IHZhbDsKLSAgICAgICAgZWxzZSBpZiAoICh2 YWwgPSBwYXJzZV9ib29sZWFuKCJtYXAtaW5jbHVzaXZlIiwgcywgc3MpKSA+PSAwICkKLSAgICAg ICAgICAgIGlvbW11X2h3ZG9tX2luY2x1c2l2ZSA9IHZhbDsKICAgICAgICAgZWxzZSBpZiAoICh2 YWwgPSBwYXJzZV9ib29sZWFuKCJtYXAtcmVzZXJ2ZWQiLCBzLCBzcykpID49IDAgKQogICAgICAg ICAgICAgaW9tbXVfaHdkb21fcmVzZXJ2ZWQgPSB2YWw7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdp dCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jCmluZGV4IGZmNDU2ZTEuLmNmOWQ3ZTEgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYwpAQCAtMzAsMTIgKzMwLDYgQEAKICNpbmNsdWRl ICIuLi92dGQuaCIKICNpbmNsdWRlICIuLi9leHRlcm4uaCIKIAotLyoKLSAqIGlvbW11X2luY2x1 c2l2ZV9tYXBwaW5nOiB3aGVuIHNldCwgYWxsIG1lbW9yeSBiZWxvdyA0R0IgaXMgaW5jbHVkZWQg aW4gZG9tMAotICogMToxIGlvbW11IG1hcHBpbmdzIGV4Y2VwdCB4ZW4gYW5kIHVudXNhYmxlIHJl Z2lvbnMuCi0gKi8KLWJvb2xlYW5fcGFyYW0oImlvbW11X2luY2x1c2l2ZV9tYXBwaW5nIiwgaW9t bXVfaHdkb21faW5jbHVzaXZlKTsKLQogdm9pZCAqbWFwX3Z0ZF9kb21haW5fcGFnZSh1NjQgbWFk ZHIpCiB7CiAgICAgcmV0dXJuIG1hcF9kb21haW5fcGFnZShfbWZuKHBhZGRyX3RvX3BmbihtYWRk cikpKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKaW5kZXggZTQwZDdhNy4uOWZlMjMy OSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKQEAgLTE3MiwxMCArMTcyLDEwIEBA IHN0YXRpYyBib29sIF9faHdkb21faW5pdCBod2RvbV9pb21tdV9tYXAoY29uc3Qgc3RydWN0IGRv bWFpbiAqZCwKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAoIHR5cGUgJiBSQU1fVFlQRV9SRVNF UlZFRCApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICggIWlvbW11X2h3ZG9tX2luY2x1c2l2 ZSAmJiAhaW9tbXVfaHdkb21fcmVzZXJ2ZWQgKQorICAgICAgICAgICAgaWYgKCAhaW9tbXVfaHdk b21fcmVzZXJ2ZWQgKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQot ICAgICAgICBlbHNlIGlmICggaXNfaHZtX2RvbWFpbihkKSB8fCAhaW9tbXVfaHdkb21faW5jbHVz aXZlIHx8IHBmbiA+IG1heF9wZm4gKQorICAgICAgICBlbHNlIGlmICggaXNfaHZtX2RvbWFpbihk KSB8fCBwZm4gPiBtYXhfcGZuICkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK QEAgLTIxNCwyMCArMjE0LDEwIEBAIHZvaWQgX19od2RvbV9pbml0IGFyY2hfaW9tbXVfaHdkb21f aW5pdChzdHJ1Y3QgZG9tYWluICpkKQogCiAgICAgQlVHX09OKCFpc19oYXJkd2FyZV9kb21haW4o ZCkpOwogCi0gICAgLyogSW5jbHVzaXZlIG1hcHBpbmdzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQg Zm9yIFBWLiAqLwotICAgIGlmICggaW9tbXVfaHdkb21faW5jbHVzaXZlID09IC0xICkKLSAgICAg ICAgaW9tbXVfaHdkb21faW5jbHVzaXZlID0gaXNfcHZfZG9tYWluKGQpOwogICAgIC8qIFJlc2Vy dmVkIElPTU1VIG1hcHBpbmdzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQuICovCiAgICAgaWYgKCBp b21tdV9od2RvbV9yZXNlcnZlZCA9PSAtMSApCiAgICAgICAgIGlvbW11X2h3ZG9tX3Jlc2VydmVk ID0gMTsKIAotICAgIGlmICggaW9tbXVfaHdkb21faW5jbHVzaXZlICYmICFpc19wdl9kb21haW4o ZCkgKQotICAgIHsKLSAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCi0gICAgICAgICAgICAg ICAiSU9NTVUgaW5jbHVzaXZlIG1hcHBpbmdzIGFyZSBvbmx5IHN1cHBvcnRlZCBvbiBQViBEb20w XG4iKTsKLSAgICAgICAgaW9tbXVfaHdkb21faW5jbHVzaXZlID0gMDsKLSAgICB9Ci0KICAgICBp ZiAoIGlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoICkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmlu ZGV4IGNkYzgwMjEuLjFiZDczMjYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5o CisrKyBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCkBAIC02MSw3ICs2MSw3IEBAIGV4dGVybiBi b29sX3QgaW9tbXVfZGVidWc7CiBleHRlcm4gYm9vbF90IGFtZF9pb21tdV9wZXJkZXZfaW50cmVt YXA7CiAKIGV4dGVybiBib29sIGlvbW11X2h3ZG9tX3N0cmljdCwgaW9tbXVfaHdkb21fcGFzc3Ro cm91Z2g7Ci1leHRlcm4gaW50OF90IGlvbW11X2h3ZG9tX2luY2x1c2l2ZSwgaW9tbXVfaHdkb21f cmVzZXJ2ZWQ7CitleHRlcm4gaW50OF90IGlvbW11X2h3ZG9tX3Jlc2VydmVkOwogCiBleHRlcm4g dW5zaWduZWQgaW50IGlvbW11X2Rldl9pb3RsYl90aW1lb3V0OwogCi0tIAoyLjEuNAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=