From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH v4 13/26] x86/cpu: Sysctl and common infrastructure for levelling context switching Date: Tue, 5 Apr 2016 17:33:46 +0100 Message-ID: <5703E8EA.7040101@citrix.com> References: <1458750989-28967-1-git-send-email-andrew.cooper3@citrix.com> <1458750989-28967-14-git-send-email-andrew.cooper3@citrix.com> <20160328161227.GK17944@char.us.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160328161227.GK17944@char.us.oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Konrad Rzeszutek Wilk Cc: Jan Beulich , Xen-devel List-Id: xen-devel@lists.xenproject.org T24gMjgvMDMvMTYgMTc6MTIsIEtvbnJhZCBSemVzenV0ZWsgV2lsayB3cm90ZToKPiBPbiBXZWQs IE1hciAyMywgMjAxNiBhdCAwNDozNjoxNlBNICswMDAwLCBBbmRyZXcgQ29vcGVyIHdyb3RlOgo+ PiBBIHRvb2xzdGFjayBuZWVkcyB0byBrbm93IGhvdyBtdWNoIGNvbnRyb2wgWGVuIGhhcyBvdmVy IHRoZSB2aXNpYmxlIGNwdWlkCj4+IHZhbHVlcyBpbiBQViBndWVzdHMuICBQcm92aWRlIGFuIGV4 cGxpY2l0IG1lY2hhbmlzbSB0byBxdWVyeSB3aGF0IFhlbiBpcwo+PiBjYXBhYmxlIG9mLgo+Pgo+ PiBUaGlzIGludGVyZmFjZSB3aWxsIGN1cnJlbnRseSByZXBvcnQgbm8gY2FwYWJpbGl0aWVzLiAg VGhpcyBjaGFuZ2UgaXMKPj4gc2NhZmZvbGRpbmcgZm9yIGZ1dHVyZSBwYXRjaGVzLCB3aGljaCB3 aWxsIGludHJvZHVjZSBkZXRlY3Rpb24gYW5kIHN3aXRjaGluZwo+PiBsb2dpYywgYWZ0ZXIgd2hp Y2ggdGhlIGludGVyZmFjZSB3aWxsIHJlcG9ydCBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgY29ycmVj dGx5Lgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0Bj aXRyaXguY29tPgo+PiAtLS0KPj4gQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4K Pj4KPj4gdjI6Cj4+ICAqIHMvY3B1bWFza3MvY3B1aWRtYXNrcy8KPj4gdjM6Cj4+ICAqIFJlaW50 cm9kdWNlIFhFTl9TWVNDVExfZ2V0X2xldmVsbGluZ19jYXBzIChyZXF1ZXN0ZWQgYnkgSm9hbyBm b3Igc29tZQo+PiAgICBkZXZlbG9wbWVudCBoZSBoYXMgcGxhbm5lZCkuCj4gcy9zb21lL2xpYnZp cnQvCj4KPj4gICogUmVuYW1lIHRvIFhFTl9TWVNDVExfZ2V0X2NwdV9sZXZlbGxpbmdfY2Fwcywg YW5kIHJlbmFtZSB0aGUgY29uc3RhbnRzIHRvCj4+ICAgIG1hdGNoIHRoZSBYZW4gY29tbWFuZCBs aW5lIG9wdGlvbnMuCj4+IHY0Ogo+PiAgKiBNb3ZlIGRlY2xhcmF0aW9ucyBmcm9tIHByb2Nlc3Nv ci5oIHRvIGNwdWlkLmgKPj4gICogQVBJIGNvcnJlY3Rpb25zIGZvciBYRU5fU1lTQ1RMX2dldF9s ZXZlbGxpbmdfY2Fwcwo+PiAtLS0KPj4gIHhlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMgICAgICAg IHwgIDYgKysrKysrCj4+ICB4ZW4vYXJjaC94ODYvc3lzY3RsLmMgICAgICAgICAgICB8ICA2ICsr KysrKwo+PiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmggfCAgMSArCj4+ICB4ZW4v aW5jbHVkZS9hc20teDg2L2NwdWlkLmggICAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4+ICB4ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggICAgICB8IDIzICsrKysr KysrKysrKysrKysrKysrKysrCj4+ICA1IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKykK Pj4KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMgYi94ZW4vYXJjaC94 ODYvY3B1L2NvbW1vbi5jCj4+IGluZGV4IGI1YzAyM2YuLjdlZjc1YjAgMTAwNjQ0Cj4+IC0tLSBh L3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMKPj4gKysrIGIveGVuL2FyY2gveDg2L2NwdS9jb21t b24uYwo+PiBAQCAtMzYsNiArMzYsMTIgQEAgaW50ZWdlcl9wYXJhbSgiY3B1aWRfbWFza19leHRf ZWN4Iiwgb3B0X2NwdWlkX21hc2tfZXh0X2VjeCk7Cj4+ICB1bnNpZ25lZCBpbnQgb3B0X2NwdWlk X21hc2tfZXh0X2VkeCA9IH4wdTsKPj4gIGludGVnZXJfcGFyYW0oImNwdWlkX21hc2tfZXh0X2Vk eCIsIG9wdF9jcHVpZF9tYXNrX2V4dF9lZHgpOwo+PiAgCj4+ICt1bnNpZ25lZCBpbnQgX19pbml0 ZGF0YSBleHBlY3RlZF9sZXZlbGxpbmdfY2FwOwo+PiArdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0 bHkgbGV2ZWxsaW5nX2NhcHM7Cj4+ICsKPj4gK0RFRklORV9QRVJfQ1BVKHN0cnVjdCBjcHVpZG1h c2tzLCBjcHVpZG1hc2tzKTsKPj4gK3N0cnVjdCBjcHVpZG1hc2tzIF9fcmVhZF9tb3N0bHkgY3B1 aWRtYXNrX2RlZmF1bHRzOwo+PiArCj4gU3RyYXkgY2hhbmdlcz8KCk5vLiAgUGxlYXNlIHJlZmVy IHRvIHRoZSBjb21taXQgbWVzc2FnZS4KCklmIGl0IGlzbid0IHN1ZmZpY2llbnRseSBjbGVhciwg cGxlYXNlIHN1Z2dlc3QgaG93IGJldHRlciB0byBzYXkgIlRoaXMKcGF0Y2ggaXMgZGVsaWJlcmF0 ZWx5IGxpa2UgdGhpcyB0byByZWR1Y2UgdGhlIGNvbXBsZXhpdHkgb2YgdGhlIHR3bwpmb2xsb3dp bmcgcGF0Y2hlcywgYm90aCBvZiB3aGljaCBhcmUgYWxyZWFkeSB2ZXJ5IGNvbXBsaWNhdGVkIHRv IHJldmlldyIuCgpDb21waWxlLXdpc2UsIHlvdSBjYW4gZWl0aGVyIGhhdmUgdGhpcyBwYXRjaCBz ZXBhcmF0ZSAoYW5kIGFjY2VwdCB0aGF0IEkKaW50cm9kdWNlIHNvbWUgdmFyaWFibGVzIGJlZm9y ZSB0aGUgY29kZSB3aGljaCBzZXRzIHRoZW0gdG8gYSBub24temVybwp2YWx1ZSksIG9yIGZvbGRl ZCBpbnRvIHRoZSBmb2xsb3dpbmcgcGF0Y2guICBJIGtub3cgd2hpY2ggd2F5IEkgd291bGQKcHJl ZmVyIHRvIHJldmlldyB0aGVtLi4uCgo+Cj4+ICBjb25zdCBzdHJ1Y3QgY3B1X2RldiAqX19yZWFk X21vc3RseSBjcHVfZGV2c1tYODZfVkVORE9SX05VTV0gPSB7fTsKPj4gIAo+PiAgdW5zaWduZWQg aW50IHBhZGRyX2JpdHMgX19yZWFkX21vc3RseSA9IDM2Owo+PiBkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3N5c2N0bC5jIGIveGVuL2FyY2gveDg2L3N5c2N0bC5jCj4+IGluZGV4IDU4Y2JkNzAu LmY2OGNiZWMgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9zeXNjdGwuYwo+PiArKysgYi94 ZW4vYXJjaC94ODYvc3lzY3RsLmMKPj4gQEAgLTE5MCw2ICsxOTAsMTIgQEAgbG9uZyBhcmNoX2Rv X3N5c2N0bCgKPj4gICAgICAgICAgfQo+PiAgICAgICAgICBicmVhazsKPj4gIAo+PiArICAgIGNh c2UgWEVOX1NZU0NUTF9nZXRfY3B1X2xldmVsbGluZ19jYXBzOgo+PiArICAgICAgICBzeXNjdGwt PnUuY3B1X2xldmVsbGluZ19jYXBzLmNhcHMgPSBsZXZlbGxpbmdfY2FwczsKPj4gKyAgICAgICAg aWYgKCBfX2NvcHlfZmllbGRfdG9fZ3Vlc3QodV9zeXNjdGwsIHN5c2N0bCwgdS5jcHVfbGV2ZWxs aW5nX2NhcHMuY2FwcykgKQo+PiArICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsKPj4gKyAgICAg ICAgYnJlYWs7Cj4+ICsKPgo+IFlvdSBhcmUgbWlzc2luZyB0aGUgWFNNIGNoZWNrcyBpbiBmbGFz a19zeXNjdGwgYW5kIHRoZSBwcm9wZXIgbGFiZWwgaW4gYXR0cmlidXRlcyBmaWxlcwo+IChhbmQg YWxzbyB0aGUgZGVmYXVsdCBwb2xpY3kgaW4geGVuLnRlKS4KClNvIEkgaGF2ZSAtIHdpbGwgZml4 LgoKPgo+PiAgICAgIGRlZmF1bHQ6Cj4+ICAgICAgICAgIHJldCA9IC1FTk9TWVM7Cj4+ICAgICAg ICAgIGJyZWFrOwo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJl LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaAo+PiBpbmRleCBlMjliMDI0Li44 NGQzMjIwIDEwMDY0NAo+PiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaAo+ PiArKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaAo+PiBAQCAtODEsNiArODEs NyBAQAo+PiAgI2RlZmluZSBjcHVfaGFzX3hzYXZlYwkJYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJF X1hTQVZFQykKPj4gICNkZWZpbmUgY3B1X2hhc194Z2V0YnYxCQlib290X2NwdV9oYXMoWDg2X0ZF QVRVUkVfWEdFVEJWMSkKPj4gICNkZWZpbmUgY3B1X2hhc194c2F2ZXMJCWJvb3RfY3B1X2hhcyhY ODZfRkVBVFVSRV9YU0FWRVMpCj4+ICsjZGVmaW5lIGNwdV9oYXNfaHlwZXJ2aXNvcglib290X2Nw dV9oYXMoWDg2X0ZFQVRVUkVfSFlQRVJWSVNPUikKPj4gIAo+PiAgZW51bSBfY2FjaGVfdHlwZSB7 Cj4+ICAgICAgQ0FDSEVfVFlQRV9OVUxMID0gMCwKPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L2FzbS14ODYvY3B1aWQuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1aWQuaAo+PiBpbmRleCA0 NzI1NjcyLi45YTIxYzI1IDEwMDY0NAo+PiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlk LmgKPj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVpZC5oCj4+IEBAIC0zLDYgKzMsNyBA QAo+PiAgCj4+ICAjaW5jbHVkZSA8YXNtL2NwdWZlYXR1cmVzZXQuaD4KPj4gICNpbmNsdWRlIDxh c20vY3B1aWQtYXV0b2dlbi5oPgo+PiArI2luY2x1ZGUgPGFzbS9wZXJjcHUuaD4KPj4gIAo+PiAg I2RlZmluZSBGU0NBUElOVFMgRkVBVFVSRVNFVF9OUl9FTlRSSUVTCj4+ICAKPj4gQEAgLTE4LDYg KzE5LDcgQEAKPj4gIAo+PiAgI2lmbmRlZiBfX0FTU0VNQkxZX18KPj4gICNpbmNsdWRlIDx4ZW4v dHlwZXMuaD4KPj4gKyNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+Cj4+ICAKPj4gIGV4dGVybiBj b25zdCB1aW50MzJfdCBrbm93bl9mZWF0dXJlc1tGU0NBUElOVFNdOwo+PiAgZXh0ZXJuIGNvbnN0 IHVpbnQzMl90IHNwZWNpYWxfZmVhdHVyZXNbRlNDQVBJTlRTXTsKPj4gQEAgLTMxLDYgKzMzLDM2 IEBAIHZvaWQgY2FsY3VsYXRlX2ZlYXR1cmVzZXRzKHZvaWQpOwo+PiAgCj4+ICBjb25zdCB1aW50 MzJfdCAqbG9va3VwX2RlZXBfZGVwcyh1aW50MzJfdCBmZWF0dXJlKTsKPj4gIAo+PiArLyoKPj4g KyAqIEV4cGVjdGVkIGxldmVsbGluZyBjYXBhYmlsaXRpZXMgKGdpdmVuIGNwdWlkIHZlbmRvci9m YW1pbHkgaW5mb3JtYXRpb24pLAo+PiArICogYW5kIGxldmVsbGluZyBjYXBhYmlsaXRpZXMgYWN0 dWFsbHkgYXZhaWxhYmxlIChnaXZlbiBNU1IgcHJvYmluZykuCj4+ICsgKi8KPj4gKyNkZWZpbmUg TENBUF9mYXVsdGluZyBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9mYXVsdGluZwo+PiArI2RlZmlu ZSBMQ0FQXzFjZCAgICAgIChYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9lY3ggfCAgICAgICAgXAo+ PiArICAgICAgICAgICAgICAgICAgICAgICBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9lZHgpCj4+ ICsjZGVmaW5lIExDQVBfZTFjZCAgICAgKFhFTl9TWVNDVExfQ1BVX0xFVkVMQ0FQX2V4dGRfZWN4 IHwgICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIFhFTl9TWVNDVExfQ1BVX0xFVkVMQ0FQ X2V4dGRfZWR4KQo+PiArI2RlZmluZSBMQ0FQX0RhMSAgICAgIFhFTl9TWVNDVExfQ1BVX0xFVkVM Q0FQX3hzYXZlX2VheAo+PiArI2RlZmluZSBMQ0FQXzZjICAgICAgIFhFTl9TWVNDVExfQ1BVX0xF VkVMQ0FQX3RoZXJtYWxfZWN4Cj4+ICsjZGVmaW5lIExDQVBfN2FiMCAgICAgKFhFTl9TWVNDVExf Q1BVX0xFVkVMQ0FQX2w3czBfZWF4IHwgICBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIFhF Tl9TWVNDVExfQ1BVX0xFVkVMQ0FQX2w3czBfZWJ4KQo+PiArZXh0ZXJuIHVuc2lnbmVkIGludCBl eHBlY3RlZF9sZXZlbGxpbmdfY2FwLCBsZXZlbGxpbmdfY2FwczsKPj4gKwo+PiArc3RydWN0IGNw dWlkbWFza3MKPj4gK3sKPj4gKyAgICB1aW50NjRfdCBfMWNkOwo+PiArICAgIHVpbnQ2NF90IGUx Y2Q7Cj4+ICsgICAgdWludDY0X3QgRGExOwo+PiArICAgIHVpbnQ2NF90IF82YzsKPj4gKyAgICB1 aW50NjRfdCBfN2FiMDsKPj4gK307Cj4+ICsKPj4gKy8qIFBlciBDUFUgc2hhZG93cyBvZiBtYXNr aW5nIE1TUiB2YWx1ZXMsIGZvciBsYXp5IGNvbnRleHQgc3dpdGNoaW5nLiAqLwo+PiArREVDTEFS RV9QRVJfQ1BVKHN0cnVjdCBjcHVpZG1hc2tzLCBjcHVpZG1hc2tzKTsKPiBEaXR0bz8gU2hvdWxk IHRoZXNlIGJlIGluIGFub3RoZXIgcGF0Y2hzZXQ/Cj4KPiBXaHkgbm90IG1ha2UgdGhpcyBwYXRj aCBvbmx5IGludHJvZHVjZSB0aGUgc3ViLW9wcyBhbmQgdGhlIHZlcnkgZmlyc3QKPiBwYXRjaCB0 aGF0IHVzZXMgdGhlIGNwdWlkbWFza3MgaGF2ZSB0aGVzZSBzcXVhc2hlZCBpbj8KCkJlY2F1c2Ug c3F1YXNoaW5nIHRoaXMgcGF0Y2ggYW5kIHRoZSBmb2xsb3dpbmcgcGF0Y2ggd2lsbCBtYWtlIHNv bWV0aGluZwpmYXIgbW9yZSBkaWZmaWN1bHQgdG8gcmV2aWV3LgoKPgo+PiArCj4+ICsvKiBEZWZh dWx0IG1hc2tpbmcgTVNSIHZhbHVlcywgY2FsY3VsYXRlZCBhdCBib290LiAqLwo+PiArZXh0ZXJu IHN0cnVjdCBjcHVpZG1hc2tzIGNwdWlkbWFza19kZWZhdWx0czsKPj4gKwo+PiAgI2VuZGlmIC8q IF9fQVNTRU1CTFlfXyAqLwo+PiAgI2VuZGlmIC8qICFfX1g4Nl9DUFVJRF9IX18gKi8KPj4gIAo+ PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oIGIveGVuL2luY2x1ZGUv cHVibGljL3N5c2N0bC5oCj4+IGluZGV4IDk2NjgwZWIuLjFhYjE2ZGIgMTAwNjQ0Cj4+IC0tLSBh L3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaAo+PiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv c3lzY3RsLmgKPj4gQEAgLTc2Niw2ICs3NjYsMjcgQEAgc3RydWN0IHhlbl9zeXNjdGxfdG1lbV9v cCB7Cj4+ICB0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX3RtZW1fb3AgeGVuX3N5c2N0bF90bWVt X29wX3Q7Cj4+ICBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3RtZW1fb3BfdCk7 Cj4+ICAKPj4gKy8qCj4+ICsgKiBYRU5fU1lTQ1RMX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHMgKHg4 NiBzcGVjaWZpYykKPj4gKyAqCj4+ICsgKiBSZXR1cm4gaGFyZHdhcmUgY2FwYWJpbGl0aWVzIGNv bmNlcm5pbmcgbWFza2luZyBvciBmYXVsdGluZyBvZiB0aGUgY3B1aWQKPj4gKyAqIGluc3RydWN0 aW9uIGZvciBQViBndWVzdHMuCj4gSnVzdCBQVj8gTm90IEhWTT8KCkhWTSBkb2Vzbid0IGhhdmUg YW55IGNwdWlkIHByb2JsZW1zOyB0aGUgY3B1aWQgaW5zdHJ1Y3Rpb24gdHJhcHMgdG8gWGVuCnVu ZGVyIGFsbCBjaXJjdW1zdGFuY2VzLgoKPgo+PiArICovCj4+ICtzdHJ1Y3QgeGVuX3N5c2N0bF9j cHVfbGV2ZWxsaW5nX2NhcHMgewo+IEkgcHJlc3VtZSB0aGVzZSBhcmUgdGhlIC8qSU4qLyBhcmdz PwoKVGhleSBhcmUgLypPVVQqLywgYXMgb25seSBhIGdldF9jcHVfbGV2ZWxsaW5nX2NhcHMgaHlw ZXJjYWxsIGlzCmRlZmluZWQuICBJIGNhbid0IHNlZSBhIHBsYXVzaWJsZSB1c2UgZm9yIGEgc2V0 IHZhcmlhbnQgb2YgdGhpcwpoeXBlcmNhbGwsIGJ1dCBJIGhhdmUgbmFtZWQgdGhlIHN0cnVjdHVy ZSBpbiBhIG5ldXRyYWwgd2F5LgoKPgo+Cj4+ICsjZGVmaW5lIFhFTl9TWVNDVExfQ1BVX0xFVkVM Q0FQX2ZhdWx0aW5nICAgICgxdWwgPDwgIDApIC8qIENQVUlEIGZhdWx0aW5nICAgICovCj4gUGVy aGFwcyBhbHNvIHBvaW50IHRvIHdoYXQgdGhleSBsb29rIGxpa2UgaW4gdGhlIFhlbiBoZWFkZXIg ZmlsZT8KPgo+IEFuZCBtZW50aW9uIHRoYXQgdGhleSBkaWZmZXIgaW4gd29yZCBwbGFjZW1lbnQg ZnJvbSB3aGF0IExpbnV4IGhhcwo+ICh3aGljaCBpbiB0dXJucyBpbXBhY3RzIGhvdyB0b29sc3Rh Y2sgbWF5IG1hc2ggdGhpcyB0b2dldGhlcikuCgpBcmUgeW91IGdldHRpbmcgY29uZnVzZWQ/ICBU aGlzIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlIGZlYXR1cmVzZXQgYXBpLgoKVGhpcyByZXBv cnRzIHdoaWNoIGNwdWlkIGxlYXZlcyBjYW4gYmUgY29udHJvbGxlZCBieSBYZW4sIGJhc2VkIG9u IHRoZQpoYXJkd2FyZSBhdmFpbGFiaWxpdHkgb2YgbWFza2luZyBtc3JzIG9yIGNwdWlkIGZhdWx0 aW5nLgoKfkFuZHJldwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK