From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7BE436E158 for ; Wed, 17 Mar 2021 16:43:51 +0000 (UTC) Received: by mail-ed1-x52d.google.com with SMTP id z1so3087509edb.8 for ; Wed, 17 Mar 2021 09:43:51 -0700 (PDT) MIME-Version: 1.0 References: <20210317144610.108372-1-zbigniew.kempczynski@intel.com> <20210317144610.108372-3-zbigniew.kempczynski@intel.com> In-Reply-To: <20210317144610.108372-3-zbigniew.kempczynski@intel.com> From: Jason Ekstrand Date: Wed, 17 Mar 2021 11:43:38 -0500 Message-ID: Subject: Re: [igt-dev] [PATCH i-g-t v26 02/35] lib/igt_list: igt_hlist implementation. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: =?UTF-8?Q?Zbigniew_Kempczy=C5=84ski?= Cc: IGT GPU Tools List-ID: V291bGQgaXQgYmUgYmV0dGVyIHRvIHB1bGwgdGhlIGhhc2ggdGFibGUgaW1wbGVtZW50YXRpb24g ZnJvbSBNZXNhPwpPciB1c2UgaHR0cHM6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy9+YW5ob2x0L2hh c2hfdGFibGUvIHdoaWNoIHNob3VsZApiZSBpZGVudGljYWwsIHRob3VnaCBpdCBtYXkgYmUgYSBi aXQgb3V0LW9mLWRhdGUuICBJJ3ZlIHBvdXJlZCBlbm91Z2gKaG91cnMgb2YgbXkgbGlmZSBpbnRv IGZpbmRpbmcgYW5kIGZpeGluZyB0aGUgYnVncyBpbiB0aGUgTWVzYSBoYXNoCnRhYmxlIHRoYXQg SUdUIHJvbGxpbmcgaXRzIG93biBkb2Vzbid0IHJlYWxseSBmaWxsIG1lIHdpdGggaGFwcHkKZmVl bGluZ3MuCgotLUphc29uCgpPbiBXZWQsIE1hciAxNywgMjAyMSBhdCA5OjQ2IEFNIFpiaWduaWV3 IEtlbXBjennFhHNraQo8emJpZ25pZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPiB3cm90ZToKPgo+ IEZyb206IERvbWluaWsgR3J6ZWdvcnplayA8ZG9taW5pay5ncnplZ29yemVrQGludGVsLmNvbT4K Pgo+IERvdWJsZSBsaW5rZWQgbGlzdHMgd2l0aCBhIHNpbmdsZSBwb2ludGVyIGxpc3QgaGVhZCBp bXBsZW1lbnRhdGlvbiwKPiBiYXNlZCBvbiBzaW1pbGFyIGluIHRoZSBrZXJuZWwuCj4KPiBTaWdu ZWQtb2ZmLWJ5OiBEb21pbmlrIEdyemVnb3J6ZWsgPGRvbWluaWsuZ3J6ZWdvcnpla0BpbnRlbC5j b20+Cj4gQ2M6IFpiaWduaWV3IEtlbXBjennFhHNraSA8emJpZ25pZXcua2VtcGN6eW5za2lAaW50 ZWwuY29tPgo+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBB Y2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiAtLS0KPiAg bGliL2lndF9saXN0LmMgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ICBsaWIvaWd0X2xpc3QuaCB8IDUwICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9saXN0LmMgYi9saWIvaWd0X2xp c3QuYwo+IGluZGV4IDM3YWUxMzljNC4uNDMyMDBmOWIzIDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3Rf bGlzdC5jCj4gKysrIGIvbGliL2lndF9saXN0LmMKPiBAQCAtMjIsNiArMjIsNyBAQAo+ICAgKgo+ ICAgKi8KPgo+ICsjaW5jbHVkZSAiYXNzZXJ0LmgiCj4gICNpbmNsdWRlICJpZ3RfbGlzdC5oIgo+ Cj4gIHZvaWQgSUdUX0lOSVRfTElTVF9IRUFEKHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpsaXN0KQo+ IEBAIC04MSwzICs4Miw3NCBAQCBib29sIGlndF9saXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBpZ3Rf bGlzdF9oZWFkICpoZWFkKQo+ICB7Cj4gICAgICAgICByZXR1cm4gaGVhZC0+bmV4dCA9PSBoZWFk Owo+ICB9Cj4gKwo+ICt2b2lkIGlndF9obGlzdF9pbml0KHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAq aCkKPiArewo+ICsgICAgICAgaC0+bmV4dCA9IE5VTEw7Cj4gKyAgICAgICBoLT5wcHJldiA9IE5V TEw7Cj4gK30KPiArCj4gK2ludCBpZ3RfaGxpc3RfdW5oYXNoZWQoY29uc3Qgc3RydWN0IGlndF9o bGlzdF9ub2RlICpoKQo+ICt7Cj4gKyAgICAgICByZXR1cm4gIWgtPnBwcmV2Owo+ICt9Cj4gKwo+ ICtpbnQgaWd0X2hsaXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBpZ3RfaGxpc3RfaGVhZCAqaCkKPiAr ewo+ICsgICAgICAgcmV0dXJuICFoLT5maXJzdDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgX19p Z3RfaGxpc3RfZGVsKHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqbikKPiArewo+ICsgICAgICAgc3Ry dWN0IGlndF9obGlzdF9ub2RlICpuZXh0ID0gbi0+bmV4dDsKPiArICAgICAgIHN0cnVjdCBpZ3Rf aGxpc3Rfbm9kZSAqKnBwcmV2ID0gbi0+cHByZXY7Cj4gKwo+ICsgICAgICAgKnBwcmV2ID0gbmV4 dDsKPiArICAgICAgIGlmIChuZXh0KQo+ICsgICAgICAgICAgICAgICBuZXh0LT5wcHJldiA9IHBw cmV2Owo+ICt9Cj4gKwo+ICt2b2lkIGlndF9obGlzdF9kZWwoc3RydWN0IGlndF9obGlzdF9ub2Rl ICpuKQo+ICt7Cj4gKyAgICAgICBfX2lndF9obGlzdF9kZWwobik7Cj4gKyAgICAgICBuLT5uZXh0 ID0gTlVMTDsKPiArICAgICAgIG4tPnBwcmV2ID0gTlVMTDsKPiArfQo+ICsKPiArdm9pZCBpZ3Rf aGxpc3RfZGVsX2luaXQoc3RydWN0IGlndF9obGlzdF9ub2RlICpuKQo+ICt7Cj4gKyAgICAgICBp ZiAoIWlndF9obGlzdF91bmhhc2hlZChuKSkgewo+ICsgICAgICAgICAgICAgICBfX2lndF9obGlz dF9kZWwobik7Cj4gKyAgICAgICAgICAgICAgIGlndF9obGlzdF9pbml0KG4pOwo+ICsgICAgICAg fQo+ICt9Cj4gKwo+ICt2b2lkIGlndF9obGlzdF9hZGRfaGVhZChzdHJ1Y3QgaWd0X2hsaXN0X25v ZGUgKm4sIHN0cnVjdCBpZ3RfaGxpc3RfaGVhZCAqaCkKPiArewo+ICsgICAgICAgc3RydWN0IGln dF9obGlzdF9ub2RlICpmaXJzdCA9IGgtPmZpcnN0Owo+ICsKPiArICAgICAgIG4tPm5leHQgPSBm aXJzdDsKPiArICAgICAgIGlmIChmaXJzdCkKPiArICAgICAgICAgICAgICAgZmlyc3QtPnBwcmV2 ID0gJm4tPm5leHQ7Cj4gKyAgICAgICBoLT5maXJzdCA9IG47Cj4gKyAgICAgICBuLT5wcHJldiA9 ICZoLT5maXJzdDsKPiArfQo+ICsKPiArdm9pZCBpZ3RfaGxpc3RfYWRkX2JlZm9yZShzdHJ1Y3Qg aWd0X2hsaXN0X25vZGUgKm4sIHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqbmV4dCkKPiArewo+ICsg ICAgICAgYXNzZXJ0KG5leHQpOwo+ICsgICAgICAgbi0+cHByZXYgPSBuZXh0LT5wcHJldjsKPiAr ICAgICAgIG4tPm5leHQgPSBuZXh0Owo+ICsgICAgICAgbmV4dC0+cHByZXYgPSAmbi0+bmV4dDsK PiArICAgICAgICoobi0+cHByZXYpID0gbjsKPiArfQo+ICsKPiArdm9pZCBpZ3RfaGxpc3RfYWRk X2JlaGluZChzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgKm4sIHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAq cHJldikKPiArewo+ICsgICAgICAgbi0+bmV4dCA9IHByZXYtPm5leHQ7Cj4gKyAgICAgICBwcmV2 LT5uZXh0ID0gbjsKPiArICAgICAgIG4tPnBwcmV2ID0gJnByZXYtPm5leHQ7Cj4gKwo+ICsgICAg ICAgaWYgKG4tPm5leHQpCj4gKyAgICAgICAgICAgICAgIG4tPm5leHQtPnBwcmV2ICA9ICZuLT5u ZXh0Owo+ICt9Cj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfbGlzdC5oIGIvbGliL2lndF9saXN0LmgK PiBpbmRleCBjYzkzZDdhMGQuLjc4ZTc2MWUwNSAxMDA2NDQKPiAtLS0gYS9saWIvaWd0X2xpc3Qu aAo+ICsrKyBiL2xpYi9pZ3RfbGlzdC5oCj4gQEAgLTQwLDYgKzQwLDEwIEBACj4gICAqIGlndF9s aXN0IGlzIGEgZG91Ymx5LWxpbmtlZCBsaXN0IHdoZXJlIGFuIGluc3RhbmNlIG9mIGlndF9saXN0 X2hlYWQgaXMgYQo+ICAgKiBoZWFkIHNlbnRpbmVsIGFuZCBoYXMgdG8gYmUgaW5pdGlhbGl6ZWQu Cj4gICAqCj4gKyAqIGlndF9oaXN0IGlzIGFsc28gYW4gZG91YmxlIGxpbmtlZCBsaXN0cywgYnV0 IHdpdGggYSBzaW5nbGUgcG9pbnRlciBsaXN0IGhlYWQuCj4gKyAqIE1vc3RseSB1c2VmdWwgZm9y IGhhc2ggdGFibGVzIHdoZXJlIHRoZSB0d28gcG9pbnRlciBsaXN0IGhlYWQgaXMKPiArICogdG9v IHdhc3RlZnVsLiBZb3UgbG9zZSB0aGUgYWJpbGl0eSB0byBhY2Nlc3MgdGhlIHRhaWwgaW4gTygx KS4KPiArICoKPiAgICogRXhhbXBsZSB1c2FnZToKPiAgICoKPiAgICogfFs8IS0tIGxhbmd1YWdl PSJDIiAtLT4KPiBAQCAtNzEsNiArNzUsMTMgQEAgc3RydWN0IGlndF9saXN0X2hlYWQgewo+ICAg ICAgICAgc3RydWN0IGlndF9saXN0X2hlYWQgKm5leHQ7Cj4gIH07Cj4KPiArc3RydWN0IGlndF9o bGlzdF9oZWFkIHsKPiArICAgICAgIHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqZmlyc3Q7Cj4gK307 Cj4gKwo+ICtzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgewo+ICsgICAgICAgc3RydWN0IGlndF9obGlz dF9ub2RlICpuZXh0LCAqKnBwcmV2Owo+ICt9Owo+Cj4gIHZvaWQgSUdUX0lOSVRfTElTVF9IRUFE KHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpoZWFkKTsKPiAgdm9pZCBpZ3RfbGlzdF9hZGQoc3RydWN0 IGlndF9saXN0X2hlYWQgKmVsZW0sIHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpoZWFkKTsKPiBAQCAt ODEsNiArOTIsMTcgQEAgdm9pZCBpZ3RfbGlzdF9tb3ZlX3RhaWwoc3RydWN0IGlndF9saXN0X2hl YWQgKmVsZW0sIHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpsaXN0KTsKPiAgaW50IGlndF9saXN0X2xl bmd0aChjb25zdCBzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqaGVhZCk7Cj4gIGJvb2wgaWd0X2xpc3Rf ZW1wdHkoY29uc3Qgc3RydWN0IGlndF9saXN0X2hlYWQgKmhlYWQpOwo+Cj4gK3ZvaWQgaWd0X2hs aXN0X2luaXQoc3RydWN0IGlndF9obGlzdF9ub2RlICpoKTsKPiAraW50IGlndF9obGlzdF91bmhh c2hlZChjb25zdCBzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgKmgpOwo+ICtpbnQgaWd0X2hsaXN0X2Vt cHR5KGNvbnN0IHN0cnVjdCBpZ3RfaGxpc3RfaGVhZCAqaCk7Cj4gK3ZvaWQgaWd0X2hsaXN0X2Rl bChzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgKm4pOwo+ICt2b2lkIGlndF9obGlzdF9kZWxfaW5pdChz dHJ1Y3QgaWd0X2hsaXN0X25vZGUgKm4pOwo+ICt2b2lkIGlndF9obGlzdF9hZGRfaGVhZChzdHJ1 Y3QgaWd0X2hsaXN0X25vZGUgKm4sIHN0cnVjdCBpZ3RfaGxpc3RfaGVhZCAqaCk7Cj4gK3ZvaWQg aWd0X2hsaXN0X2FkZF9iZWZvcmUoc3RydWN0IGlndF9obGlzdF9ub2RlICpuLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGlndF9obGlzdF9ub2RlICpuZXh0KTsKPiArdm9pZCBp Z3RfaGxpc3RfYWRkX2JlaGluZChzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgKm4sCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgKnByZXYpOwo+ICsKPiAgI2Rl ZmluZSBpZ3RfY29udGFpbmVyX29mKHB0ciwgc2FtcGxlLCBtZW1iZXIpICAgICAgICAgICAgICAg ICAgICAgICAgICBcCj4gICAgICAgICAoX190eXBlb2ZfXyhzYW1wbGUpKSgoY2hhciAqKShwdHIp IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb2Zmc2V0b2YoX190eXBlb2ZfXygqc2FtcGxlKSwgbWVtYmVyKSkKPiBAQCAtOTYs OSArMTE4LDEwIEBAIGJvb2wgaWd0X2xpc3RfZW1wdHkoY29uc3Qgc3RydWN0IGlndF9saXN0X2hl YWQgKmhlYWQpOwo+ICAgKiBTYWZlIGFnYWluc3QgcmVtb3ZlbCBvZiB0aGUgKmN1cnJlbnQqIGxp c3QgZWxlbWVudC4gVG8gYWNoaXZlIHRoaXMgaXQKPiAgICogcmVxdWlyZXMgYW4gZXh0cmEgaGVs cGVyIHZhcmlhYmxlIGB0bXBgIHdpdGggdGhlIHNhbWUgdHlwZSBhcyBgcG9zYC4KPiAgICovCj4g LSNkZWZpbmUgaWd0X2xpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwb3MsIHRtcCwgaGVhZCwgbWVt YmVyKSAgICAgICAgICAgICAgICAgICBcCj4gKwo+ICsjZGVmaW5lIGlndF9saXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUocG9zLCB0bXAsIGhlYWQsIG1lbWJlcikgICAgICAgICAgIFwKPiAgICAgICAg IGZvciAocG9zID0gaWd0X2NvbnRhaW5lcl9vZigoaGVhZCktPm5leHQsIHBvcywgbWVtYmVyKSwg ICAgICAgICBcCj4gLSAgICAgICAgICAgIHRtcCA9IGlndF9jb250YWluZXJfb2YoKHBvcyktPm1l bWJlci5uZXh0LCB0bXAsIG1lbWJlcik7ICAgXAo+ICsgICAgICAgICAgICB0bXAgPSBpZ3RfY29u dGFpbmVyX29mKChwb3MpLT5tZW1iZXIubmV4dCwgdG1wLCBtZW1iZXIpOyAgIFwKPiAgICAgICAg ICAgICAgJnBvcy0+bWVtYmVyICE9IChoZWFkKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCj4gICAgICAgICAgICAgIHBvcyA9IHRtcCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICAgICAgICAgICAgICB0bXAgPSBpZ3RfY29u dGFpbmVyX29mKChwb3MpLT5tZW1iZXIubmV4dCwgdG1wLCBtZW1iZXIpKQo+IEBAIC0xMDgsNiAr MTMxLDI3IEBAIGJvb2wgaWd0X2xpc3RfZW1wdHkoY29uc3Qgc3RydWN0IGlndF9saXN0X2hlYWQg KmhlYWQpOwo+ICAgICAgICAgICAgICAmcG9zLT5tZW1iZXIgIT0gKGhlYWQpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAgICAgICAgICAgICAgcG9zID0gaWd0X2NvbnRh aW5lcl9vZigocG9zKS0+bWVtYmVyLnByZXYsIHBvcywgbWVtYmVyKSkKPgo+ICsjZGVmaW5lIGln dF9saXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmVfcmV2ZXJzZShwb3MsIHRtcCwgaGVhZCwgbWVtYmVy KSAgICAgICAgICAgXAo+ICsgICAgICAgZm9yIChwb3MgPSBpZ3RfY29udGFpbmVyX29mKChoZWFk KS0+cHJldiwgcG9zLCBtZW1iZXIpLCAgICAgICAgIFwKPiArICAgICAgICAgICAgdG1wID0gaWd0 X2NvbnRhaW5lcl9vZigocG9zKS0+bWVtYmVyLnByZXYsIHRtcCwgbWVtYmVyKTsgICBcCj4gKyAg ICAgICAgICAgICZwb3MtPm1lbWJlciAhPSAoaGVhZCk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ICsgICAgICAgICAgICBwb3MgPSB0bXAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICAgICAgdG1wID0gaWd0 X2NvbnRhaW5lcl9vZigocG9zKS0+bWVtYmVyLnByZXYsIHRtcCwgbWVtYmVyKSkKPiArCj4gKyNk ZWZpbmUgaWd0X2hsaXN0X2VudHJ5X3NhZmUocHRyLCBzYW1wbGUsIG1lbWJlcikgXAo+ICsgICAg ICAgKHsgdHlwZW9mKHB0cikgX19fX3B0ciA9IChwdHIpOyBcCj4gKyAgICAgICAgICBfX19fcHRy ID8gaWd0X2NvbnRhaW5lcl9vZihfX19fcHRyLCBzYW1wbGUsIG1lbWJlcikgOiBOVUxMOyBcCj4g KyAgICAgICB9KQo+ICsKPiArI2RlZmluZSBpZ3RfaGxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCBo ZWFkLCBtZW1iZXIpICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICBmb3IgKHBvcyA9IGln dF9obGlzdF9lbnRyeV9zYWZlKChoZWFkKS0+Zmlyc3QsIHBvcywgbWVtYmVyKTsgICAgXAo+ICsg ICAgICAgICAgICBwb3M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKPiArICAgICAgICAgICAgcG9zID0gaWd0X2hsaXN0X2VudHJ5X3NhZmUo KHBvcyktPm1lbWJlci5uZXh0LCBwb3MsIG1lbWJlcikpCj4gKwo+ICsjZGVmaW5lIGlndF9obGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBvcywgbiwgaGVhZCwgbWVtYmVyKSAgICAgICAgICAgIFwK PiArICAgICAgIGZvciAocG9zID0gaWd0X2hsaXN0X2VudHJ5X3NhZmUoKGhlYWQpLT5maXJzdCwg cG9zLCBtZW1iZXIpOyAgICBcCj4gKyAgICAgICAgICAgIHBvcyAmJiAoeyBuID0gcG9zLT5tZW1i ZXIubmV4dDsgMTsgfSk7ICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAgICBwb3Mg PSBpZ3RfaGxpc3RfZW50cnlfc2FmZShuLCBwb3MsIG1lbWJlcikpCj4KPiAgLyogSUdUIGN1c3Rv bSBoZWxwZXJzICovCj4KPiBAQCAtMTI3LDQgKzE3MSw2IEBAIGJvb2wgaWd0X2xpc3RfZW1wdHko Y29uc3Qgc3RydWN0IGlndF9saXN0X2hlYWQgKmhlYWQpOwo+ICAjZGVmaW5lIGlndF9saXN0X2xh c3RfZW50cnkoaGVhZCwgdHlwZSwgbWVtYmVyKSBcCj4gICAgICAgICBpZ3RfY29udGFpbmVyX29m KChoZWFkKS0+cHJldiwgKHR5cGUpLCBtZW1iZXIpCj4KPiArI2RlZmluZSBJR1RfSU5JVF9ITElT VF9IRUFEKHB0cikgKChwdHIpLT5maXJzdCA9IE5VTEwpCj4gKwo+ICAjZW5kaWYgLyogSUdUX0xJ U1RfSCAqLwo+IC0tCj4gMi4yNi4wCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p Z3QtZGV2Cg==