From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [RFC PATCH 2/6] libxl: stop using libxl__xs_mkdir() for ~/control/shutdown Date: Mon, 16 Nov 2015 12:55:28 +0000 Message-ID: <1447678528.27871.77.camel@citrix.com> References: <1447258719-21891-1-git-send-email-paul.durrant@citrix.com> <1447258719-21891-3-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1ZyJKG-0006s2-GE for xen-devel@lists.xenproject.org; Mon, 16 Nov 2015 12:56:04 +0000 In-Reply-To: <1447258719-21891-3-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Paul Durrant , xen-devel@lists.xenproject.org Cc: Wei Liu , Ian Jackson , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org T24gV2VkLCAyMDE1LTExLTExIGF0IDE2OjE4ICswMDAwLCBQYXVsIER1cnJhbnQgd3JvdGU6Cj4g QXMgZG9jdW1lbnRlZCBpbiBkb2NzL21pc2MveGVuc3RvcmUsIHRoZSBYU19NS0RJUiBvcGVyYXRp b24gbWVyZWx5IG1ha2VzCj4gc3VyZSBhIHBhdGggZXhpc3RzIHdoZXJlYXMgfi9jb250cm9sL3No dXRkb3duIG5lZWRzIHRvIHN0YXJ0IGVtcHR5LiBBbHNvCj4gdXNpbmcgWFNfTUtESVIgZm9yIGEg bm9kZSB3aGljaCBpcyBuZXZlciBzdXBwb3NlZCB0byBoYXZlIGNoaWxkcmVuIGlzCj4gc29tZXdo YXQgY291bnRlcmludHVpdGl2ZS4KPiAKPiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgbGli eGxfX3hzX3ByaW50Zl9wZXJtcygpIGZ1bmN0aW9uIGFuYWxvZ291cwo+IHRvIGxpYnhsX194c19w cmludGYoKSBidXQgdGFraW5nIGV4cGxpY2l0IHBlcm1pc3Npb25zIGFyZ3VtZW50cywgYW5kIHRo ZW4KPiB1c2VzIHRoaXMgdG8gY3JlYXRlIGFuIGVtcHR5IH4vY29udHJvbC9zaHV0ZG93biBub2Rl Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j b20+Cj4gQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgo+IENjOiBT dGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBldS5jaXRyaXguY29tPgo+IENj OiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29tPgo+IENjOiBXZWkgTGl1IDx3 ZWkubGl1MkBjaXRyaXguY29tPgo+IC0tLQo+IMKgdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmPC oMKgwqB8IDE2ICsrKysrKysrKystLS0tLS0KPiDCoHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFs LmggfCAxMCArKysrKysrKysrCj4gwqB0b29scy9saWJ4bC9saWJ4bF94c2hlbHAuY8KgwqDCoHwg NDQKPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQo+IMKgMyBm aWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90b29scy9saWJ4bC9saWJ4bF9j cmVhdGUuYwo+IGluZGV4IDkyMWQxNTUuLjI3OWRlZGEgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfY3JlYXRlLmMKPiArKysgYi90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwo+IEBA IC00ODQsNyArNDg0LDcgQEAgaW50IGxpYnhsX19kb21haW5fbWFrZShsaWJ4bF9fZ2MgKmdjLAo+ IGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAo+IMKgwqDCoMKgwqBsaWJ4bF9jdHggKmN0 eCA9IGxpYnhsX19nY19vd25lcihnYyk7Cj4gwqDCoMKgwqDCoGludCBmbGFncywgcmV0LCByYywg bmJfdm07Cj4gwqDCoMKgwqDCoGNoYXIgKnV1aWRfc3RyaW5nOwo+IC3CoMKgwqDCoGNoYXIgKmRv bV9wYXRoLCAqdm1fcGF0aCwgKmxpYnhsX3BhdGg7Cj4gK8KgwqDCoMKgY2hhciAqZG9tX3BhdGgs ICp2bV9wYXRoLCAqbGlieGxfcGF0aCwgKmNvbnRyb2xfcGF0aDsKPiDCoMKgwqDCoMKgc3RydWN0 IHhzX3Blcm1pc3Npb25zIHJvcGVybVsyXTsKPiDCoMKgwqDCoMKgc3RydWN0IHhzX3Blcm1pc3Np b25zIHJ3cGVybVsxXTsKPiDCoMKgwqDCoMKgc3RydWN0IHhzX3Blcm1pc3Npb25zIG5vcGVybVsx XTsKPiBAQCAtNjA1LDE3ICs2MDUsMjEgQEAgcmV0cnlfdHJhbnNhY3Rpb246Cj4gwqDCoMKgwqDC oGxpYnhsX194c19ta2RpcihnYywgdCwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBsaWJ4bF9fc3ByaW50ZihnYywgIiVzL2RldmljZSIsIGRvbV9wYXRoKSwKPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByb3Blcm0sIEFSUkFZX1NJ WkUocm9wZXJtKSk7Cj4gLcKgwqDCoMKgbGlieGxfX3hzX21rZGlyKGdjLCB0LAo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGlieGxfX3NwcmludGYoZ2MsICIlcy9j b250cm9sIiwgZG9tX3BhdGgpLAo+ICsKPiArwqDCoMKgwqBjb250cm9sX3BhdGggPSBsaWJ4bF9f c3ByaW50ZihnYywgIiVzL2NvbnRyb2wiLCBkb21fcGF0aCk7Cj4gKwo+ICvCoMKgwqDCoGxpYnhs X194c19ta2RpcihnYywgdCwgY29udHJvbF9wYXRoLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHJvcGVybSwgQVJSQVlfU0laRShyb3Blcm0pKTsKPiDCoMKgwqDC oMKgaWYgKGluZm8tPnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfSFZNKQo+IMKgwqDCoMKgwqDC oMKgwqDCoGxpYnhsX194c19ta2RpcihnYywgdCwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxpYnhsX19zcHJpbnRmKGdjLCAiJXMvaHZtbG9hZGVy IiwgZG9tX3BhdGgpLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcm9wZXJtLCBBUlJBWV9TSVpFKHJvcGVybSkpOwo+IMKgCj4gLcKgwqDCoMKgbGli eGxfX3hzX21rZGlyKGdjLCB0LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgbGlieGxfX3NwcmludGYoZ2MsICIlcy9jb250cm9sL3NodXRkb3duIiwgZG9tX3BhdGgp LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcndwZXJtLCBBUlJB WV9TSVpFKHJ3cGVybSkpOwo+ICvCoMKgwqDCoGxpYnhsX194c19wcmludGZfcGVybXMoZ2MsIHQs Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGxpYnhsX19zcHJpbnRmKGdjLCAiJXMvc2h1dGRvd24iLAo+IGNvbnRyb2xfcGF0aCksCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJ3cGVy bSwgQVJSQVlfU0laRShyd3Blcm0pLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAiIik7Cj4gKwo+IMKgwqDCoMKgwqBsaWJ4bF9feHNfbWtk aXIoZ2MsIHQsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGli eGxfX3NwcmludGYoZ2MsICIlcy9kZXZpY2Uvc3VzcGVuZC9ldmVudC0KPiBjaGFubmVsIiwgZG9t X3BhdGgpLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJ3cGVy bSwgQVJSQVlfU0laRShyd3Blcm0pKTsKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxf aW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKPiBpbmRleCA0NzEwODA0 Li4wNGQ4YTI5IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKPiAr KysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCj4gQEAgLTY2Niw2ICs2NjYsMTYgQEAg X2hpZGRlbiBpbnQgbGlieGxfX3hzX3dyaXRldl9wZXJtcyhsaWJ4bF9fZ2MgKmdjLAo+IHhzX3Ry YW5zYWN0aW9uX3QgdCwKPiDCoF9oaWRkZW4gaW50IGxpYnhsX194c193cml0ZXZfYXRvbmNlKGxp YnhsX19nYyAqZ2MsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgY29uc3QgY2hhciAqZGlyLCBjaGFyICoqa3ZzKTsKPiDCoAo+ICtf aGlkZGVuIGludCBsaWJ4bF9feHNfdnByaW50Zl9wZXJtcyhsaWJ4bF9fZ2MgKmdjLCB4c190cmFu c2FjdGlvbl90IHQsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnN0IGNoYXIgKnBhdGgsCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHN0cnVjdCB4c19wZXJtaXNzaW9ucyAqcGVybXMsCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHVuc2lnbmVkIGludCBudW1fcGVybXMsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnN0IGNoYXIgKmZt dCwgdmFfbGlzdCBhcCk7Cj4gK19oaWRkZW4gaW50IGxpYnhsX194c19wcmludGZfcGVybXMobGli eGxfX2djICpnYywgeHNfdHJhbnNhY3Rpb25fdCB0LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uc3QgY2hh ciAqcGF0aCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCB4c19wZXJtaXNzaW9ucyAqcGVybXMsCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgbnVtX3Blcm1zLAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29u c3QgY2hhciAqZm10LCAuLi4pCj4gUFJJTlRGX0FUVFJJQlVURSg2LCA3KTsKPiDCoF9oaWRkZW4g aW50IGxpYnhsX194c19wcmludGYobGlieGxfX2djICpnYywgeHNfdHJhbnNhY3Rpb25fdCB0LAo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQo+IFBSSU5URl9BVFRS SUJVVEUoNCwgNSk7Cj4gwqDCoMKgwqAvKiBFYWNoIGZuIHJldHVybnMgMCBvbiBzdWNjZXNzLgo+ IGRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF94c2hlbHAuYyBiL3Rvb2xzL2xpYnhsL2xp YnhsX3hzaGVscC5jCj4gaW5kZXggM2NhYzRmMi4uMGI1NmY4YiAxMDA2NDQKPiAtLS0gYS90b29s cy9saWJ4bC9saWJ4bF94c2hlbHAuYwo+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3hzaGVscC5j Cj4gQEAgLTk2LDI1ICs5Niw1NyBAQCBvdXQ6Cj4gwqAKPiDCoH0KPiDCoAo+IC1pbnQgbGlieGxf X3hzX3ByaW50ZihsaWJ4bF9fZ2MgKmdjLCB4c190cmFuc2FjdGlvbl90IHQsCj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0 IGNoYXIgKmZtdCwgLi4uKQo+ICtpbnQgbGlieGxfX3hzX3ZwcmludGZfcGVybXMobGlieGxfX2dj ICpnYywgeHNfdHJhbnNhY3Rpb25fdCB0LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnN0IGNoYXIgKnBhdGgsCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IHhz X3Blcm1pc3Npb25zICpwZXJtcywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgbnVtX3Blcm1zLAo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnN0IGNo YXIgKmZtdCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqB2YV9saXN0IGFwKQo+IMKgewo+IMKgwqDCoMKgwqBsaWJ4bF9jdHggKmN0eCA9 IGxpYnhsX19nY19vd25lcihnYyk7Cj4gwqDCoMKgwqDCoGNoYXIgKnM7Cj4gLcKgwqDCoMKgdmFf bGlzdCBhcDsKPiDCoMKgwqDCoMKgaW50IHJldDsKPiAtwqDCoMKgwqB2YV9zdGFydChhcCwgZm10 KTsKPiAtwqDCoMKgwqByZXQgPSB2YXNwcmludGYoJnMsIGZtdCwgYXApOwo+IC3CoMKgwqDCoHZh X2VuZChhcCk7Cj4gwqAKPiArwqDCoMKgwqByZXQgPSB2YXNwcmludGYoJnMsIGZtdCwgYXApOwo+ IMKgwqDCoMKgwqBpZiAocmV0ID09IC0xKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC0x Owo+IMKgwqDCoMKgwqB9Cj4gwqDCoMKgwqDCoHhzX3dyaXRlKGN0eC0+eHNoLCB0LCBwYXRoLCBz LCByZXQpOwo+ICvCoMKgwqDCoGlmIChwZXJtcykKPiArwqDCoMKgwqDCoMKgwqDCoHhzX3NldF9w ZXJtaXNzaW9ucyhjdHgtPnhzaCwgdCwgcGF0aCwgcGVybXMsIG51bV9wZXJtcyk7CgpUaGlzIGNh biBmYWlsLCBjYW4ndCBpdD8gKE9UT0ggc28gY2FuIHhzX3dyaXRlLCBzbyBtYXliZSB0aGVyZSBp cyBzb21lCnJlYXNvbiB3ZSBhcHBhcmVudGx5IGRvbid0IGNhcmUgZm9yIHN1Y2ggdGhpbmdzIGhl cmU/KQoKPiDCoMKgwqDCoMKgZnJlZShzKTsKPiDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gwqB9Cj4g wqAKPiAraW50IGxpYnhsX194c19wcmludGZfcGVybXMobGlieGxfX2djICpnYywgeHNfdHJhbnNh Y3Rpb25fdCB0LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBjb25zdCBjaGFyICpwYXRoLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgeHNfcGVybWlzc2lvbnMgKnBlcm1z LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB1bnNpZ25lZCBpbnQgbnVtX3Blcm1zLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb25zdCBjaGFyICpmbXQsIC4uLikKPiArewo+ICvC oMKgwqDCoHZhX2xpc3QgYXA7Cj4gK8KgwqDCoMKgaW50IHJldDsKPiArCj4gK8KgwqDCoMKgdmFf c3RhcnQoYXAsIGZtdCk7Cj4gK8KgwqDCoMKgcmV0ID0gbGlieGxfX3hzX3ZwcmludGZfcGVybXMo Z2MsIHQsIHBhdGgsIHBlcm1zLCBudW1fcGVybXMsIGZtdCwKPiBhcCk7Cj4gK8KgwqDCoMKgdmFf ZW5kKGFwKTsKPiArCj4gK8KgwqDCoMKgcmV0dXJuIHJldDsKPiArfQo+ICsKPiAraW50IGxpYnhs X194c19wcmludGYobGlieGxfX2djICpnYywgeHNfdHJhbnNhY3Rpb25fdCB0LAo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb25zdCBjaGFyICpwYXRoLCBjb25z dCBjaGFyICpmbXQsIC4uLikKPiArewo+ICvCoMKgwqDCoHZhX2xpc3QgYXA7Cj4gK8KgwqDCoMKg aW50IHJldDsKPiArCj4gK8KgwqDCoMKgdmFfc3RhcnQoYXAsIGZtdCk7Cj4gK8KgwqDCoMKgcmV0 ID0gbGlieGxfX3hzX3ZwcmludGZfcGVybXMoZ2MsIHQsIHBhdGgsIE5VTEwsIDAsIGZtdCwgYXAp Owo+ICvCoMKgwqDCoHZhX2VuZChhcCk7Cj4gKwo+ICvCoMKgwqDCoHJldHVybiByZXQ7Cj4gK30K PiArCj4gwqBjaGFyICogbGlieGxfX3hzX3JlYWQobGlieGxfX2djICpnYywgeHNfdHJhbnNhY3Rp b25fdCB0LCBjb25zdCBjaGFyCj4gKnBhdGgpCj4gwqB7Cj4gwqDCoMKgwqDCoGxpYnhsX2N0eCAq Y3R4ID0gbGlieGxfX2djX293bmVyKGdjKTsKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK