From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/1] signals: kill block_all_signals() and unblock_all_signals() Date: Mon, 31 Aug 2015 10:19:34 +0200 Message-ID: <20150831081934.GG1367@phenom.ffwll.local> References: <20150827162505.GA7885@redhat.com> <20150827162529.GA7893@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by gabe.freedesktop.org (Postfix) with ESMTPS id DA2FB6E024 for ; Mon, 31 Aug 2015 01:19:38 -0700 (PDT) Received: by widfa3 with SMTP id fa3so16023223wid.1 for ; Mon, 31 Aug 2015 01:19:37 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150827162529.GA7893@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Oleg Nesterov Cc: Richard Weinberger , Andrew Morton , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBBdWcgMjcsIDIwMTUgYXQgMDY6MjU6MjlQTSArMDIwMCwgT2xlZyBOZXN0ZXJvdiB3 cm90ZToKPiBJdCBpcyBoYXJkbHkgcG9zc2libGUgdG8gZW51bWVyYXRlIGFsbCBwcm9ibGVtcyB3 aXRoIGJsb2NrX2FsbF9zaWduYWxzKCkKPiBhbmQgdW5ibG9ja19hbGxfc2lnbmFscygpLiBKdXN0 IGZvciBleGFtcGxlLAo+IAo+IDEuIGJsb2NrX2FsbF9zaWduYWxzKFNJR1NUT1AvZXRjKSBzaW1w bHkgY2FuJ3QgaGVscCBpZiB0aGUgY2FsbGVyIGlzCj4gICAgbXVsdGl0aHJlYWRlZC4gQW5vdGhl ciB0aHJlYWQgY2FuIGRlcXVldWUgdGhlIHNpZ25hbCBhbmQgZm9yY2UgdGhlCj4gICAgZ3JvdXAg c3RvcC4KPiAKPiAyLiBFdmVuIGlzIHRoZSBjYWxsZXIgaXMgc2luZ2xlLXRocmVhZGVkLCBpdCB3 aWxsICJzdG9wIiBhbnl3YXkuIEl0Cj4gICAgd2lsbCBub3Qgc2xlZXAsIGJ1dCBpdCB3aWxsIHNw aW4gaW4ga2VybmVsIHNwYWNlIHVudGlsIFNJR0NPTlQgb3IKPiAgICBTSUdLSUxMLgo+IAo+IEFu ZCBhIGxvdCBtb3JlLiBJbiBzaG9ydCwgdGhpcyBpbnRlcmZhY2UgZG9lc24ndCB3b3JrIGF0IGFs bCwgYXQgbGVhc3QKPiB0aGUgbGFzdCAxMCsgeWVhcnMuCj4gCj4gU2lnbmVkLW9mZi1ieTogT2xl ZyBOZXN0ZXJvdiA8b2xlZ0ByZWRoYXQuY29tPgoKWWVhaCB0aGUgb25seSB0aW1lcyBJIHBsYXll ZCBhcm91bmQgd2l0aCB0aGUgRFJNX0xPQ0sgc3R1ZmYgd2FzIHdoZW4gb2xkCmRyaXZlcnMgYWNj aWRlbnRhbGx5IGRlYWRsb2NrZWQgLSBteSBpbXByZXNzaW9uIGlzIHRoYXQgdGhlIGVudGlyZQpE Uk1fTE9DSyB0aGluZyB3YXMgbmV2ZXIgcmVhbGx5IHRlc3RlZCBwcm9wZXJseSA7LSkgSGVuY2Ug SSdtIGFsbCBmb3IKcHVyZ2luZyB3aGVyZSB0aGlzIGxlYWtzIG91dCBvZiB0aGUgZHJtIHN1YnN5 c3RlbS4KCkFja2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2xvY2suYyB8ICAgNDEgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgaW5jbHVkZS9kcm0vZHJtUC5oICAgICAgICAgfCAgICAx IC0KPiAgaW5jbHVkZS9saW51eC9zY2hlZC5oICAgICAgfCAgICA3ICstLS0tLQo+ICBrZXJuZWwv c2lnbmFsLmMgICAgICAgICAgICB8ICAgNTEgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDk4IGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2xvY2suYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fbG9jay5jCj4gaW5kZXggZjg2MTM2MS4uNDQ3N2I4NyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2xvY2suYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fbG9jay5jCj4gQEAgLTM4LDggKzM4LDYgQEAKPiAgI2luY2x1ZGUgImRybV9sZWdh Y3kuaCIKPiAgI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgo+ICAKPiAtc3RhdGljIGludCBkcm1f bm90aWZpZXIodm9pZCAqcHJpdik7Cj4gLQo+ICBzdGF0aWMgaW50IGRybV9sb2NrX3Rha2Uoc3Ry dWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSwgdW5zaWduZWQgaW50IGNvbnRleHQpOwo+ICAK PiAgLyoqCj4gQEAgLTExNSwxNCArMTEzLDggQEAgaW50IGRybV9sZWdhY3lfbG9jayhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJICogcmVhbGx5IHByb2JhYmx5IG5vdCB0 aGUgY29ycmVjdCBhbnN3ZXIgYnV0IGxldHMgdXMgZGVidWcgeGtiCj4gICAJICogeHNlcnZlciBm b3Igbm93ICovCj4gIAlpZiAoIWZpbGVfcHJpdi0+aXNfbWFzdGVyKSB7Cj4gLQkJc2lnZW1wdHlz ZXQoJmRldi0+c2lnbWFzayk7Cj4gLQkJc2lnYWRkc2V0KCZkZXYtPnNpZ21hc2ssIFNJR1NUT1Ap Owo+IC0JCXNpZ2FkZHNldCgmZGV2LT5zaWdtYXNrLCBTSUdUU1RQKTsKPiAtCQlzaWdhZGRzZXQo JmRldi0+c2lnbWFzaywgU0lHVFRJTik7Cj4gLQkJc2lnYWRkc2V0KCZkZXYtPnNpZ21hc2ssIFNJ R1RUT1UpOwo+ICAJCWRldi0+c2lnZGF0YS5jb250ZXh0ID0gbG9jay0+Y29udGV4dDsKPiAgCQlk ZXYtPnNpZ2RhdGEubG9jayA9IG1hc3Rlci0+bG9jay5od19sb2NrOwo+IC0JCWJsb2NrX2FsbF9z aWduYWxzKGRybV9ub3RpZmllciwgZGV2LCAmZGV2LT5zaWdtYXNrKTsKPiAgCX0KPiAgCj4gIAlp ZiAoZGV2LT5kcml2ZXItPmRtYV9xdWllc2NlbnQgJiYgKGxvY2stPmZsYWdzICYgX0RSTV9MT0NL X1FVSUVTQ0VOVCkpCj4gQEAgLTE2Myw3ICsxNTUsNiBAQCBpbnQgZHJtX2xlZ2FjeV91bmxvY2so c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxl Xwo+ICAJCS8qIEZJWE1FOiBTaG91bGQgcmVhbGx5IGJhaWwgb3V0IGhlcmUuICovCj4gIAl9Cj4g IAo+IC0JdW5ibG9ja19hbGxfc2lnbmFscygpOwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gQEAg LTI4MiwzOCArMjczLDYgQEAgaW50IGRybV9sZWdhY3lfbG9ja19mcmVlKHN0cnVjdCBkcm1fbG9j a19kYXRhICpsb2NrX2RhdGEsIHVuc2lnbmVkIGludCBjb250ZXh0KQo+ICB9Cj4gIAo+ICAvKioK PiAtICogSWYgd2UgZ2V0IGhlcmUsIGl0IG1lYW5zIHRoYXQgdGhlIHByb2Nlc3MgaGFzIGNhbGxl ZCBEUk1fSU9DVExfTE9DSwo+IC0gKiB3aXRob3V0IGNhbGxpbmcgRFJNX0lPQ1RMX1VOTE9DSy4K PiAtICoKPiAtICogSWYgdGhlIGxvY2sgaXMgbm90IGhlbGQsIHRoZW4gbGV0IHRoZSBzaWduYWwg cHJvY2VlZCBhcyB1c3VhbC4gIElmIHRoZSBsb2NrCj4gLSAqIGlzIGhlbGQsIHRoZW4gc2V0IHRo ZSBjb250ZW5kZWQgZmxhZyBhbmQga2VlcCB0aGUgc2lnbmFsIGJsb2NrZWQuCj4gLSAqCj4gLSAq IFxwYXJhbSBwcml2IHBvaW50ZXIgdG8gYSBkcm1fZGV2aWNlIHN0cnVjdHVyZS4KPiAtICogXHJl dHVybiBvbmUgaWYgdGhlIHNpZ25hbCBzaG91bGQgYmUgZGVsaXZlcmVkIG5vcm1hbGx5LCBvciB6 ZXJvIGlmIHRoZQo+IC0gKiBzaWduYWwgc2hvdWxkIGJlIGJsb2NrZWQuCj4gLSAqLwo+IC1zdGF0 aWMgaW50IGRybV9ub3RpZmllcih2b2lkICpwcml2KQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gcHJpdjsKPiAtCXN0cnVjdCBkcm1faHdfbG9jayAqbG9jayA9IGRldi0+c2lnZGF0 YS5sb2NrOwo+IC0JdW5zaWduZWQgaW50IG9sZCwgbmV3LCBwcmV2Owo+IC0KPiAtCS8qIEFsbG93 IHNpZ25hbCBkZWxpdmVyeSBpZiBsb2NrIGlzbid0IGhlbGQgKi8KPiAtCWlmICghbG9jayB8fCAh X0RSTV9MT0NLX0lTX0hFTEQobG9jay0+bG9jaykKPiAtCSAgICB8fCBfRFJNX0xPQ0tJTkdfQ09O VEVYVChsb2NrLT5sb2NrKSAhPSBkZXYtPnNpZ2RhdGEuY29udGV4dCkKPiAtCQlyZXR1cm4gMTsK PiAtCj4gLQkvKiBPdGhlcndpc2UsIHNldCBmbGFnIHRvIGZvcmNlIGNhbGwgdG8KPiAtCSAgIGRy bVVubG9jayAqLwo+IC0JZG8gewo+IC0JCW9sZCA9IGxvY2stPmxvY2s7Cj4gLQkJbmV3ID0gb2xk IHwgX0RSTV9MT0NLX0NPTlQ7Cj4gLQkJcHJldiA9IGNtcHhjaGcoJmxvY2stPmxvY2ssIG9sZCwg bmV3KTsKPiAtCX0gd2hpbGUgKHByZXYgIT0gb2xkKTsKPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+ IC0vKioKPiAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIGltbWVkaWF0ZWx5IGFuZCB0YWtlcyB0 aGUgaHcgbG9jawo+ICAgKiB3aXRoIHRoZSBrZXJuZWwgY29udGV4dCBpZiBpdCBpcyBmcmVlLCBv dGhlcndpc2UgaXQgZ2V0cyB0aGUgaGlnaGVzdCBwcmlvcml0eSB3aGVuIGFuZCBpZgo+ICAgKiBp dCBpcyBldmVudHVhbGx5IHJlbGVhc2VkLgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1Q LmggYi9pbmNsdWRlL2RybS9kcm1QLmgKPiBpbmRleCA2MmM0MDc3Li4wODU5YzM1IDEwMDY0NAo+ IC0tLSBhL2luY2x1ZGUvZHJtL2RybVAuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybVAuaAo+IEBA IC04MTUsNyArODE1LDYgQEAgc3RydWN0IGRybV9kZXZpY2Ugewo+ICAKPiAgCXN0cnVjdCBkcm1f c2dfbWVtICpzZzsJLyoqPCBTY2F0dGVyIGdhdGhlciBtZW1vcnkgKi8KPiAgCXVuc2lnbmVkIGlu dCBudW1fY3J0Y3M7ICAgICAgICAgICAgICAgICAgLyoqPCBOdW1iZXIgb2YgQ1JUQ3Mgb24gdGhp cyBkZXZpY2UgKi8KPiAtCXNpZ3NldF90IHNpZ21hc2s7Cj4gIAo+ICAJc3RydWN0IHsKPiAgCQlp bnQgY29udGV4dDsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC5oIGIvaW5jbHVk ZS9saW51eC9zY2hlZC5oCj4gaW5kZXggMjZhMmU2MS4uZjE5MmNmZSAxMDA2NDQKPiAtLS0gYS9p bmNsdWRlL2xpbnV4L3NjaGVkLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgKPiBAQCAt MTQ4OSw5ICsxNDg5LDcgQEAgc3RydWN0IHRhc2tfc3RydWN0IHsKPiAgCj4gIAl1bnNpZ25lZCBs b25nIHNhc19zc19zcDsKPiAgCXNpemVfdCBzYXNfc3Nfc2l6ZTsKPiAtCWludCAoKm5vdGlmaWVy KSh2b2lkICpwcml2KTsKPiAtCXZvaWQgKm5vdGlmaWVyX2RhdGE7Cj4gLQlzaWdzZXRfdCAqbm90 aWZpZXJfbWFzazsKPiArCj4gIAlzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqdGFza193b3JrczsKPiAg Cj4gIAlzdHJ1Y3QgYXVkaXRfY29udGV4dCAqYXVkaXRfY29udGV4dDsKPiBAQCAtMjM4Miw5ICsy MzgwLDYgQEAgc3RhdGljIGlubGluZSBpbnQgZGVxdWV1ZV9zaWduYWxfbG9jayhzdHJ1Y3QgdGFz a19zdHJ1Y3QgKnRzaywgc2lnc2V0X3QgKm1hc2ssIHMKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAg Cj4gLWV4dGVybiB2b2lkIGJsb2NrX2FsbF9zaWduYWxzKGludCAoKm5vdGlmaWVyKSh2b2lkICpw cml2KSwgdm9pZCAqcHJpdiwKPiAtCQkJICAgICAgc2lnc2V0X3QgKm1hc2spOwo+IC1leHRlcm4g dm9pZCB1bmJsb2NrX2FsbF9zaWduYWxzKHZvaWQpOwo+ICBleHRlcm4gdm9pZCByZWxlYXNlX3Rh c2soc3RydWN0IHRhc2tfc3RydWN0ICogcCk7Cj4gIGV4dGVybiBpbnQgc2VuZF9zaWdfaW5mbyhp bnQsIHN0cnVjdCBzaWdpbmZvICosIHN0cnVjdCB0YXNrX3N0cnVjdCAqKTsKPiAgZXh0ZXJuIGlu dCBmb3JjZV9zaWdzZWd2KGludCwgc3RydWN0IHRhc2tfc3RydWN0ICopOwo+IGRpZmYgLS1naXQg YS9rZXJuZWwvc2lnbmFsLmMgYi9rZXJuZWwvc2lnbmFsLmMKPiBpbmRleCBkNTFjNWRkLi5hNWY0 Zjg1IDEwMDY0NAo+IC0tLSBhL2tlcm5lbC9zaWduYWwuYwo+ICsrKyBiL2tlcm5lbC9zaWduYWwu Ywo+IEBAIC01MDgsNDEgKzUwOCw2IEBAIGludCB1bmhhbmRsZWRfc2lnbmFsKHN0cnVjdCB0YXNr X3N0cnVjdCAqdHNrLCBpbnQgc2lnKQo+ICAJcmV0dXJuICF0c2stPnB0cmFjZTsKPiAgfQo+ICAK PiAtLyoKPiAtICogTm90aWZ5IHRoZSBzeXN0ZW0gdGhhdCBhIGRyaXZlciB3YW50cyB0byBibG9j ayBhbGwgc2lnbmFscyBmb3IgdGhpcwo+IC0gKiBwcm9jZXNzLCBhbmQgd2FudHMgdG8gYmUgbm90 aWZpZWQgaWYgYW55IHNpZ25hbHMgYXQgYWxsIHdlcmUgdG8gYmUKPiAtICogc2VudC9hY3RlZCB1 cG9uLiAgSWYgdGhlIG5vdGlmaWVyIHJvdXRpbmUgcmV0dXJucyBub24temVybywgdGhlbiB0aGUK PiAtICogc2lnbmFsIHdpbGwgYmUgYWN0ZWQgdXBvbiBhZnRlciBhbGwuICBJZiB0aGUgbm90aWZp ZXIgcm91dGluZSByZXR1cm5zIDAsCj4gLSAqIHRoZW4gdGhlbiBzaWduYWwgd2lsbCBiZSBibG9j a2VkLiAgT25seSBvbmUgYmxvY2sgcGVyIHByb2Nlc3MgaXMKPiAtICogYWxsb3dlZC4gIHByaXYg aXMgYSBwb2ludGVyIHRvIHByaXZhdGUgZGF0YSB0aGF0IHRoZSBub3RpZmllciByb3V0aW5lCj4g LSAqIGNhbiB1c2UgdG8gZGV0ZXJtaW5lIGlmIHRoZSBzaWduYWwgc2hvdWxkIGJlIGJsb2NrZWQg b3Igbm90Lgo+IC0gKi8KPiAtdm9pZAo+IC1ibG9ja19hbGxfc2lnbmFscyhpbnQgKCpub3RpZmll cikodm9pZCAqcHJpdiksIHZvaWQgKnByaXYsIHNpZ3NldF90ICptYXNrKQo+IC17Cj4gLQl1bnNp Z25lZCBsb25nIGZsYWdzOwo+IC0KPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZjdXJyZW50LT5zaWdo YW5kLT5zaWdsb2NrLCBmbGFncyk7Cj4gLQljdXJyZW50LT5ub3RpZmllcl9tYXNrID0gbWFzazsK PiAtCWN1cnJlbnQtPm5vdGlmaWVyX2RhdGEgPSBwcml2Owo+IC0JY3VycmVudC0+bm90aWZpZXIg PSBub3RpZmllcjsKPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN1cnJlbnQtPnNpZ2hhbmQt PnNpZ2xvY2ssIGZsYWdzKTsKPiAtfQo+IC0KPiAtLyogTm90aWZ5IHRoZSBzeXN0ZW0gdGhhdCBi bG9ja2luZyBoYXMgZW5kZWQuICovCj4gLQo+IC12b2lkCj4gLXVuYmxvY2tfYWxsX3NpZ25hbHMo dm9pZCkKPiAtewo+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsKPiAtCj4gLQlzcGluX2xvY2tfaXJx c2F2ZSgmY3VycmVudC0+c2lnaGFuZC0+c2lnbG9jaywgZmxhZ3MpOwo+IC0JY3VycmVudC0+bm90 aWZpZXIgPSBOVUxMOwo+IC0JY3VycmVudC0+bm90aWZpZXJfZGF0YSA9IE5VTEw7Cj4gLQlyZWNh bGNfc2lncGVuZGluZygpOwo+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3VycmVudC0+c2ln aGFuZC0+c2lnbG9jaywgZmxhZ3MpOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBjb2xsZWN0X3Np Z25hbChpbnQgc2lnLCBzdHJ1Y3Qgc2lncGVuZGluZyAqbGlzdCwgc2lnaW5mb190ICppbmZvKQo+ ICB7Cj4gIAlzdHJ1Y3Qgc2lncXVldWUgKnEsICpmaXJzdCA9IE5VTEw7Cj4gQEAgLTU4NSwxOSAr NTUwLDggQEAgc3RhdGljIGludCBfX2RlcXVldWVfc2lnbmFsKHN0cnVjdCBzaWdwZW5kaW5nICpw ZW5kaW5nLCBzaWdzZXRfdCAqbWFzaywKPiAgewo+ICAJaW50IHNpZyA9IG5leHRfc2lnbmFsKHBl bmRpbmcsIG1hc2spOwo+ICAKPiAtCWlmIChzaWcpIHsKPiAtCQlpZiAoY3VycmVudC0+bm90aWZp ZXIpIHsKPiAtCQkJaWYgKHNpZ2lzbWVtYmVyKGN1cnJlbnQtPm5vdGlmaWVyX21hc2ssIHNpZykp IHsKPiAtCQkJCWlmICghKGN1cnJlbnQtPm5vdGlmaWVyKShjdXJyZW50LT5ub3RpZmllcl9kYXRh KSkgewo+IC0JCQkJCWNsZWFyX3RocmVhZF9mbGFnKFRJRl9TSUdQRU5ESU5HKTsKPiAtCQkJCQly ZXR1cm4gMDsKPiAtCQkJCX0KPiAtCQkJfQo+IC0JCX0KPiAtCj4gKwlpZiAoc2lnKQo+ICAJCWNv bGxlY3Rfc2lnbmFsKHNpZywgcGVuZGluZywgaW5mbyk7Cj4gLQl9Cj4gLQo+ICAJcmV0dXJuIHNp ZzsKPiAgfQo+ICAKPiBAQCAtMjQ4OCw5ICsyNDQyLDYgQEAgRVhQT1JUX1NZTUJPTChmb3JjZV9z aWcpOwo+ICBFWFBPUlRfU1lNQk9MKHNlbmRfc2lnKTsKPiAgRVhQT1JUX1NZTUJPTChzZW5kX3Np Z19pbmZvKTsKPiAgRVhQT1JUX1NZTUJPTChzaWdwcm9jbWFzayk7Cj4gLUVYUE9SVF9TWU1CT0wo YmxvY2tfYWxsX3NpZ25hbHMpOwo+IC1FWFBPUlRfU1lNQk9MKHVuYmxvY2tfYWxsX3NpZ25hbHMp Owo+IC0KPiAgCj4gIC8qCj4gICAqIFN5c3RlbSBjYWxsIGVudHJ5IHBvaW50cy4KPiAtLSAKPiAx LjUuNS4xCj4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=