From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2EDD0C433E0 for ; Tue, 26 Jan 2021 16:51:20 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CF44D229C9 for ; Tue, 26 Jan 2021 16:51:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CF44D229C9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6D6826E422; Tue, 26 Jan 2021 16:51:19 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id F05BD6E422 for ; Tue, 26 Jan 2021 16:51:18 +0000 (UTC) IronPort-SDR: iqmDnmTJaWKno6cEd15gQE5/oyA5UkIpF5LAg1Kc+ppFQH2+XWpAnpFdCVZdhX8XVJnwfXlWO3 oG6Ozgmfk2Bw== X-IronPort-AV: E=McAfee;i="6000,8403,9876"; a="159108567" X-IronPort-AV: E=Sophos;i="5.79,375,1602572400"; d="scan'208";a="159108567" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jan 2021 08:51:18 -0800 IronPort-SDR: mh1QMPJmdUG7AkA5f6il67CIlufyQAcgF+aP0CgkDioOodkjJKy/wlpDA22/QKn89uEMrxKjrJ 51QAAzOLnJqg== X-IronPort-AV: E=Sophos;i="5.79,375,1602572400"; d="scan'208";a="362049336" Received: from jackedwa-mobl.ger.corp.intel.com (HELO [10.214.230.137]) ([10.214.230.137]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jan 2021 08:51:16 -0800 From: Tvrtko Ursulin To: Chris Wilson , intel-gfx@lists.freedesktop.org References: <20210125140136.10494-1-chris@chris-wilson.co.uk> <20210125140136.10494-8-chris@chris-wilson.co.uk> <161167841519.2943.12094027429072700463@build.alporthouse.com> <4a5b8b67-c917-46d5-9ddb-41bb0159244c@linux.intel.com> Organization: Intel Corporation UK Plc Message-ID: <7f14fc68-1410-57a1-3e3c-78f1da84453e@linux.intel.com> Date: Tue, 26 Jan 2021 16:51:14 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 MIME-Version: 1.0 In-Reply-To: <4a5b8b67-c917-46d5-9ddb-41bb0159244c@linux.intel.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH 08/41] drm/i915: Improve DFS for priority inheritance X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: thomas.hellstrom@intel.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Ck9uIDI2LzAxLzIwMjEgMTY6NDIsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+IAo+IE9uIDI2LzAx LzIwMjEgMTY6MjYsIENocmlzIFdpbHNvbiB3cm90ZToKPj4gUXVvdGluZyBUdnJ0a28gVXJzdWxp biAoMjAyMS0wMS0yNiAxNjoyMjo1OCkKPj4+Cj4+Pgo+Pj4gT24gMjUvMDEvMjAyMSAxNDowMSwg Q2hyaXMgV2lsc29uIHdyb3RlOgo+Pj4+IFRoZSBjb3JlIG9mIHRoZSBzY2hlZHVsaW5nIGFsZ29y aXRobSBpcyB0aGF0IHdlIGNvbXB1dGUgdGhlIHRvcG9sb2dpY2FsCj4+Pj4gb3JkZXIgb2YgdGhl IGZlbmNlIERBRy4gS25vd2luZyB0aGF0IHdlIGhhdmUgYSBEQUcsIHdlIHNob3VsZCBiZSAKPj4+ PiBhYmxlIHRvCj4+Pj4gdXNlIGEgREZTIHRvIGNvbXB1dGUgdGhlIHRvcG9sb2dpY2FsIHNvcnQg aW4gbGluZWFyIHRpbWUuIEhvd2V2ZXIsCj4+Pj4gZHVyaW5nIHRoZSBjb252ZXJzaW9uIG9mIHRo ZSByZWN1cnNpdmUgYWxnb3JpdGhtIGludG8gYW4gaXRlcmF0aXZlIG9uZSwKPj4+PiB0aGUgbWVt b2l6YXRpb24gb2YgaG93IGZhciB3ZSBoYWQgcHJvZ3Jlc3NlZCBkb3duIGEgYnJhbmNoIHdhcwo+ Pj4+IGZvcmdvdHRlbi4gVGhlIHJlc3VsdCB3YXMgdGhhdCBpbnN0ZWFkIG9mIHJ1bm5pbmcgaW4g bGluZWFyIHRpbWUsIGl0IAo+Pj4+IHdhcwo+Pj4+IHJ1bm5pbmcgaW4gZ2VvbWV0cmljIHRpbWUg YW5kIGNvdWxkIGVhc2lseSBydW4gZm9yIGEgZmV3IGh1bmRyZWQKPj4+PiBtaWxsaXNlY29uZHMg Z2l2ZW4gYSB3aWRlIGVub3VnaCBncmFwaCwgbm90IHRoZSBtaWNyb3NlY29uZHMgYXMgCj4+Pj4g cmVxdWlyZWQuCj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KPj4+PiAtLS0KPj4+PiDCoMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfc2NoZWR1bGVyLmMgfCA1OCAKPj4+PiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K Pj4+PiDCoMKgIDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMo LSkKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVk dWxlci5jIAo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwo+Pj4+ IGluZGV4IDQ4MDJjOWIxMDgxZC4uOTEzOWE5MWYwYWEzIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCj4+Pj4gQEAgLTIzNCw2ICsyMzQsMjYgQEAgdm9pZCBf X2k5MTVfcHJpb2xpc3RfZnJlZShzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCkKPj4+PiDCoMKgwqDC oMKgwqAga21lbV9jYWNoZV9mcmVlKGdsb2JhbC5zbGFiX3ByaW9yaXRpZXMsIHApOwo+Pj4+IMKg wqAgfQo+Pj4+ICtzdGF0aWMgc3RydWN0IGk5MTVfcmVxdWVzdCAqCj4+Pj4gK3N0YWNrX3B1c2go c3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnN0YWNrLAo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgbGlzdF9oZWFkICpw b3MpCj4+Pj4gK3sKPj4+PiArwqDCoMKgwqAgc3RhY2stPnNjaGVkLmRmcy5wcmV2ID0gcG9zOwo+ Pj4+ICvCoMKgwqDCoCBycS0+c2NoZWQuZGZzLm5leHQgPSAoc3RydWN0IGxpc3RfaGVhZCAqKXN0 YWNrOwo+Pj4+ICvCoMKgwqDCoCByZXR1cm4gcnE7Cj4+Pj4gK30KPj4+PiArCj4+Pj4gK3N0YXRp YyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKPj4+PiArc3RhY2tfcG9wKHN0cnVjdCBpOTE1X3JlcXVl c3QgKnJxLAo+Pj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IGxpc3RfaGVhZCAqKnBvcykKPj4+PiAr ewo+Pj4+ICvCoMKgwqDCoCBycSA9IChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICopcnEtPnNjaGVkLmRm cy5uZXh0Owo+Pj4+ICvCoMKgwqDCoCBpZiAocnEpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAqcG9zID0gcnEtPnNjaGVkLmRmcy5wcmV2Owo+Pj4+ICvCoMKgwqDCoCByZXR1cm4gcnE7 Cj4+Pj4gK30KPj4+PiArCj4+Pj4gwqDCoCBzdGF0aWMgaW5saW5lIGJvb2wgbmVlZF9wcmVlbXB0 KGludCBwcmlvLCBpbnQgYWN0aXZlKQo+Pj4+IMKgwqAgewo+Pj4+IMKgwqDCoMKgwqDCoCAvKgo+ Pj4+IEBAIC0yOTgsMTEgKzMxOCwxMCBAQCBzdGF0aWMgdm9pZCBpcGlfcHJpb3JpdHkoc3RydWN0 IGk5MTVfcmVxdWVzdCAKPj4+PiAqcnEsIGludCBwcmlvKQo+Pj4+IMKgwqAgc3RhdGljIHZvaWQg X19pOTE1X3JlcXVlc3Rfc2V0X3ByaW9yaXR5KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCAKPj4+ PiBpbnQgcHJpbykKPj4+PiDCoMKgIHsKPj4+PiDCoMKgwqDCoMKgwqAgc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lID0gcnEtPmVuZ2luZTsKPj4+PiAtwqDCoMKgwqAgc3RydWN0IGk5MTVf cmVxdWVzdCAqcm47Cj4+Pj4gK8KgwqDCoMKgIHN0cnVjdCBsaXN0X2hlYWQgKnBvcyA9ICZycS0+ c2NoZWQuc2lnbmFsZXJzX2xpc3Q7Cj4+Pj4gwqDCoMKgwqDCoMKgIHN0cnVjdCBsaXN0X2hlYWQg KnBsaXN0Owo+Pj4+IC3CoMKgwqDCoCBMSVNUX0hFQUQoZGZzKTsKPj4+PiAtwqDCoMKgwqAgbGlz dF9hZGQoJnJxLT5zY2hlZC5kZnMsICZkZnMpOwo+Pj4+ICvCoMKgwqDCoCBwbGlzdCA9IGk5MTVf c2NoZWRfbG9va3VwX3ByaW9saXN0KGVuZ2luZSwgcHJpbyk7Cj4+Pj4gwqDCoMKgwqDCoMKgIC8q Cj4+Pj4gwqDCoMKgwqDCoMKgwqAgKiBSZWN1cnNpdmVseSBidW1wIGFsbCBkZXBlbmRlbnQgcHJp b3JpdGllcyB0byBtYXRjaCB0aGUgbmV3IAo+Pj4+IHJlcXVlc3QuCj4+Pj4gQEAgLTMyMiw0MCAr MzQxLDMxIEBAIHN0YXRpYyB2b2lkIF9faTkxNV9yZXF1ZXN0X3NldF9wcmlvcml0eShzdHJ1Y3Qg Cj4+Pj4gaTkxNV9yZXF1ZXN0ICpycSwgaW50IHByaW8pCj4+Pj4gwqDCoMKgwqDCoMKgwqAgKiBl bmQgcmVzdWx0IGlzIGEgdG9wb2xvZ2ljYWwgbGlzdCBvZiByZXF1ZXN0cyBpbiByZXZlcnNlIAo+ Pj4+IG9yZGVyLCB0aGUKPj4+PiDCoMKgwqDCoMKgwqDCoCAqIGxhc3QgZWxlbWVudCBpbiB0aGUg bGlzdCBpcyB0aGUgcmVxdWVzdCB3ZSBtdXN0IGV4ZWN1dGUgCj4+Pj4gZmlyc3QuCj4+Pj4gwqDC oMKgwqDCoMKgwqAgKi8KPj4+PiAtwqDCoMKgwqAgbGlzdF9mb3JfZWFjaF9lbnRyeShycSwgJmRm cywgc2NoZWQuZGZzKSB7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaTkx NV9kZXBlbmRlbmN5ICpwOwo+Pj4+IC0KPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8q IEFsc28gcmVsZWFzZSBhbnkgY2hpbGRyZW4gb24gdGhpcyBlbmdpbmUgdGhhdCBhcmUgCj4+Pj4g cmVhZHkgKi8KPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEdFTV9CVUdfT04ocnEtPmVu Z2luZSAhPSBlbmdpbmUpOwo+Pj4+IC0KPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZv cl9lYWNoX3NpZ25hbGVyKHAsIHJxKSB7Cj4+Pj4gK8KgwqDCoMKgIHJxLT5zY2hlZC5kZnMubmV4 dCA9IE5VTEw7Cj4+Pj4gK8KgwqDCoMKgIGRvIHsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGxpc3RfZm9yX2VhY2hfY29udGludWUocG9zLCAmcnEtPnNjaGVkLnNpZ25hbGVyc19saXN0 KSB7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0 IGk5MTVfZGVwZW5kZW5jeSAqcCA9Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxpc3RfZW50cnkocG9zLCB0eXBlb2YoKnApLCBz aWduYWxfbGluayk7Cj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc3RydWN0IGk5MTVfcmVxdWVzdCAqcyA9Cj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRhaW5lcl9vZihwLT5z aWduYWxlciwgdHlwZW9mKCpzKSwgCj4+Pj4gc2NoZWQpOwo+Pj4+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEdFTV9CVUdfT04ocyA9PSBycSk7Cj4+Pj4gLQo+Pj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChycV9wcmlv KHMpID49IHByaW8pCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChfX2k5MTVfcmVxdWVzdF9pc19jb21wbGV0ZShz KSkKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgY29udGludWU7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaWYgKHMtPmVuZ2luZSAhPSBycS0+ZW5naW5lKSB7Cj4+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHMtPmVuZ2luZSAhPSBlbmdpbmUp IHsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaXBpX3ByaW9yaXR5KHMsIHByaW8pOwo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGlzdF9tb3ZlX3RhaWwoJnMt PnNjaGVkLmRmcywgJmRmcyk7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLyogUmVtZW1iZXIgb3VyIHBvc2l0aW9uIGFsb25nIHRoaXMgYnJhbmNoICovCj4+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcnEgPSBzdGFja19w dXNoKHMsIHJxLCBwb3MpOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHBvcyA9ICZycS0+c2NoZWQuc2lnbmFsZXJzX2xpc3Q7Cj4+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4gLcKgwqDCoMKgIH0KPj4+PiAtwqDCoMKgwqAgcGxpc3Qg PSBpOTE1X3NjaGVkX2xvb2t1cF9wcmlvbGlzdChlbmdpbmUsIHByaW8pOwo+Pj4+IC0KPj4+PiAt wqDCoMKgwqAgLyogRmlmbyBhbmQgZGVwdGgtZmlyc3QgcmVwbGFjZW1lbnQgZW5zdXJlIG91ciBk ZXBzIGV4ZWN1dGUgCj4+Pj4gZmlyc3QgKi8KPj4+PiAtwqDCoMKgwqAgbGlzdF9mb3JfZWFjaF9l bnRyeV9zYWZlX3JldmVyc2UocnEsIHJuLCAmZGZzLCBzY2hlZC5kZnMpIHsKPj4+PiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIEdFTV9CVUdfT04ocnEtPmVuZ2luZSAhPSBlbmdpbmUpOwo+Pj4+ IC0KPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIElOSVRfTElTVF9IRUFEKCZycS0+c2No ZWQuZGZzKTsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFJRX1RSQUNFKHJxLCAic2V0 LXByaW9yaXR5OiVkXG4iLCBwcmlvKTsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IFdSSVRFX09OQ0UocnEtPnNjaGVkLmF0dHIucHJpb3JpdHksIHByaW8pOwo+Pj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgLyoKPj4+PiBAQCAtMzY5LDEyICszNzksMTMgQEAgc3RhdGlj IHZvaWQgX19pOTE1X3JlcXVlc3Rfc2V0X3ByaW9yaXR5KHN0cnVjdCAKPj4+PiBpOTE1X3JlcXVl c3QgKnJxLCBpbnQgcHJpbykKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICgh aTkxNV9yZXF1ZXN0X2lzX3JlYWR5KHJxKSkKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIEdFTV9CVUdfT04ocnEtPmVuZ2luZSAhPSBlbmdpbmUpOwo+Pj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaWYgKGk5MTVfcmVxdWVzdF9pbl9wcmlvcml0eV9xdWV1ZShycSkpCj4+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGlzdF9tb3Zl X3RhaWwoJnJxLT5zY2hlZC5saW5rLCBwbGlzdCk7Cj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAvKiBEZWZlciAodGFza2xldCkgc3VibWlzc2lvbiB1bnRpbCBhZnRlciBhbGwgCj4+ Pj4gdXBkYXRlcy4gKi8KPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGtpY2tfc3Vi bWlzc2lvbihlbmdpbmUsIHJxLCBwcmlvKTsKPj4+PiAtwqDCoMKgwqAgfQo+Pj4+ICvCoMKgwqDC oCB9IHdoaWxlICgocnEgPSBzdGFja19wb3AocnEsICZwb3MpKSk7Cj4+Pj4gwqDCoCB9Cj4+Pj4g wqDCoCB2b2lkIGk5MTVfcmVxdWVzdF9zZXRfcHJpb3JpdHkoc3RydWN0IGk5MTVfcmVxdWVzdCAq cnEsIGludCBwcmlvKQo+Pj4+IEBAIC00NDQsNyArNDU1LDYgQEAgdm9pZCBpOTE1X3NjaGVkX25v ZGVfaW5pdChzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlIAo+Pj4+ICpub2RlKQo+Pj4+IMKgwqDCoMKg wqDCoCBJTklUX0xJU1RfSEVBRCgmbm9kZS0+c2lnbmFsZXJzX2xpc3QpOwo+Pj4+IMKgwqDCoMKg wqDCoCBJTklUX0xJU1RfSEVBRCgmbm9kZS0+d2FpdGVyc19saXN0KTsKPj4+PiDCoMKgwqDCoMKg wqAgSU5JVF9MSVNUX0hFQUQoJm5vZGUtPmxpbmspOwo+Pj4+IC3CoMKgwqDCoCBJTklUX0xJU1Rf SEVBRCgmbm9kZS0+ZGZzKTsKPj4+PiDCoMKgwqDCoMKgwqAgbm9kZS0+aXBpX2xpbmsgPSBOVUxM Owo+Pj4+Cj4+Pgo+Pj4gUGVuIGFuZCBwYXBlciB3YXMgbmVlZGVkIGhlcmUgYnV0IGl0IGxvb2tz IGdvb2QuCj4+Cj4+IElmIHlvdSBoaWdobGlnaHQgdGhlIGFyZWFzIHRoYXQgbmVlZCBtb3JlIGNv bW1lbnRhcnksIEkgZ3Vlc3MKPj4gYSB0aGVvcnktb2Ytb3BlcmF0aW9uIGZvciBzdGFja19wdXNo L3N0YWNrX3BvcD8KPiAKPiBBdCBzb21lIHBvaW50IEkgd2FudGVkIHRvIHN1Z2dlc3QgeW91IGNo YW5nZSBkZnMubGlzdF9oZWFkIGFidXNlIHRvIAo+IGV4cGxpY2l0IHJxIGFuZCBsaXN0IGhlYWQg cG9pbnRlciB0byBiZXR0ZXIgcmVwcmVzZW50IGhvdyB0aGVyZSBhcmUgdHdvIAo+IHBpZWNlcyBv ZiBpbmZvcm1hdGlvbiB0cmFja2VkIGluIHRoZXJlLgo+IAo+IEluIHRlcm1zIG9mIGNvbW1lbnRh cnkgZG9uJ3Qga25vdyByZWFsbHkuIFBlcmhhcHMgaXQgY291bGQgYmUgbWFkZSAKPiBjbGVhcmVy IGp1c3Qgd2l0aCBzb21lIGNvZGUgcmUtc3RydWN0dXJlLCBmb3IgaW5zdGFuY2UgbWF5YmUgYSBu ZXcgZGF0YSAKPiBzdHJ1Y3R1cmUgbGlrZSBpOTE1X3JlcXVlc3Rfc3RhY2sgd291bGQgd29yayBs aWtlOgo+IAo+IHN0cnVjdCBpOTE1X3JlcXVlc3Rfc3RhY2sgewo+ICDCoMKgwqDCoHN0cnVjdCBp OTE1X3JlcXVlc3QgKnByZXY7Cj4gIMKgwqDCoMKgc3RydWN0IGxpc3RfaGVhZCAqcG9zOwo+IH07 Cj4gCj4gQW5kIHRoZW4gcHVzaCBhbmQgcG9wIG9wZXJhdGUgb24gdGhyZWUgZGlzdGluY3QgZGF0 YSB0eXBlcyBmb3IgY2xhcml0eSwgCj4gcmVxdWVzdCBzdGFjayBiZWluZyBlbWJlZGRlZCBpbiBy ZXF1ZXN0LiBJIGhhdmVuJ3QgcmVhbGx5IHRob3VnaHQgaXQgCj4gdGhyb3VnaCB0byBiZSBzdXJl IGl0IHdvcmtzIHNvIGp1c3QgbWF5YmUuCgpBaCBJIHJlbWVtYmVyIHdoeSBJIGRpZCBub3Qgc3Vn Z2VzdCB0aGlzLCB0byBhdm9pZCB3YXN0aW5nIG9uZSBwb2ludGVyIApiZWNhdXNlIG9mOgoKc3Ry dWN0IGxpc3RfaGVhZCB7CiAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKm5leHQsICpwcmV2Owp9 OwoKVGhlcmUgaXNuJ3QgYW55dGhpbmcgZm9yIGp1c3Qgb25lLgoKUmVnYXJkcywKClR2cnRrbwpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK