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=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,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 F24F4C11F65 for ; Wed, 30 Jun 2021 18:58:31 +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 8D43461435 for ; Wed, 30 Jun 2021 18:58:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8D43461435 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=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 5441C884D4; Wed, 30 Jun 2021 18:58:29 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 228A06EA73; Wed, 30 Jun 2021 18:58:28 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10031"; a="272267786" X-IronPort-AV: E=Sophos;i="5.83,312,1616482800"; d="scan'208";a="272267786" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2021 11:58:26 -0700 X-IronPort-AV: E=Sophos;i="5.83,312,1616482800"; d="scan'208";a="476404192" Received: from johnharr-mobl1.amr.corp.intel.com (HELO [10.212.191.159]) ([10.212.191.159]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2021 11:58:26 -0700 To: Martin Peres , Matthew Brost , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org References: <20210624070516.21893-1-matthew.brost@intel.com> <20210624070516.21893-48-matthew.brost@intel.com> <88cbe963-7188-f4ae-5acf-01a80bd2fe25@free.fr> From: John Harrison Message-ID: <05e1d462-57ae-888a-888c-3ad486150821@intel.com> Date: Wed, 30 Jun 2021 11:58:25 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <88cbe963-7188-f4ae-5acf-01a80bd2fe25@free.fr> Content-Language: en-GB Subject: Re: [Intel-gfx] [PATCH 47/47] drm/i915/guc: Unblock GuC submission on Gen11+ 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: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gNi8zMC8yMDIxIDAxOjIyLCBNYXJ0aW4gUGVyZXMgd3JvdGU6Cj4gT24gMjQvMDYvMjAyMSAx MDowNSwgTWF0dGhldyBCcm9zdCB3cm90ZToKPj4gRnJvbTogRGFuaWVsZSBDZXJhb2xvIFNwdXJp byA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KPj4KPj4gVW5ibG9jayBHdUMgc3Vi bWlzc2lvbiBvbiBHZW4xMSsgcGxhdGZvcm1zLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwg V2FqZGVjemtvIDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTog RGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4K Pj4gU2lnbmVkLW9mZi1ieTogTWF0dGhldyBCcm9zdCA8bWF0dGhldy5icm9zdEBpbnRlbC5jb20+ Cj4+IC0tLQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuaMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEgKwo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91 Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jIHzCoCA4ICsrKysrKysrCj4+IMKgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmggfMKgIDMgKy0tCj4+IMKgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfCAxNCArKysrKysrKystLS0tLQo+PiDCoCA0IGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF9ndWMuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWMuaAo+PiBpbmRleCBmYWUwMWRjOGUxYjkuLjc3OTgxNzg4MjA0ZiAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKPj4gQEAgLTU0LDYgKzU0LDcgQEAg c3RydWN0IGludGVsX2d1YyB7Cj4+IMKgwqDCoMKgwqAgc3RydWN0IGlkYSBndWNfaWRzOwo+PiDC oMKgwqDCoMKgIHN0cnVjdCBsaXN0X2hlYWQgZ3VjX2lkX2xpc3Q7Cj4+IMKgICvCoMKgwqAgYm9v bCBzdWJtaXNzaW9uX3N1cHBvcnRlZDsKPj4gwqDCoMKgwqDCoCBib29sIHN1Ym1pc3Npb25fc2Vs ZWN0ZWQ7Cj4+IMKgIMKgwqDCoMKgwqAgc3RydWN0IGk5MTVfdm1hICphZHNfdm1hOwo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24u YyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5j Cj4+IGluZGV4IGE0MjczMzZjZTkxNi4uNDA1MzM5MjAyMjgwIDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKPj4gQEAgLTIw NDIsNiArMjA0MiwxMyBAQCB2b2lkIGludGVsX2d1Y19zdWJtaXNzaW9uX2Rpc2FibGUoc3RydWN0 IAo+PiBpbnRlbF9ndWMgKmd1YykKPj4gwqDCoMKgwqDCoCAvKiBOb3RlOiBCeSB0aGUgdGltZSB3 ZSdyZSBoZXJlLCBHdUMgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIAo+PiByZXNldCAqLwo+PiDCoCB9 Cj4+IMKgICtzdGF0aWMgYm9vbCBfX2d1Y19zdWJtaXNzaW9uX3N1cHBvcnRlZChzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMpCj4+ICt7Cj4+ICvCoMKgwqAgLyogR3VDIHN1Ym1pc3Npb24gaXMgdW5hdmFp bGFibGUgZm9yIHByZS1HZW4xMSAqLwo+PiArwqDCoMKgIHJldHVybiBpbnRlbF9ndWNfaXNfc3Vw cG9ydGVkKGd1YykgJiYKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIElOVEVMX0dFTihndWNfdG9f Z3QoZ3VjKS0+aTkxNSkgPj0gMTE7Cj4+ICt9Cj4+ICsKPj4gwqAgc3RhdGljIGJvb2wgX19ndWNf c3VibWlzc2lvbl9zZWxlY3RlZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4+IMKgIHsKPj4gwqDC oMKgwqDCoCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd1Y190b19ndChndWMpLT5p OTE1Owo+PiBAQCAtMjA1NCw2ICsyMDYxLDcgQEAgc3RhdGljIGJvb2wgX19ndWNfc3VibWlzc2lv bl9zZWxlY3RlZChzdHJ1Y3QgCj4+IGludGVsX2d1YyAqZ3VjKQo+PiDCoCDCoCB2b2lkIGludGVs X2d1Y19zdWJtaXNzaW9uX2luaXRfZWFybHkoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+PiDCoCB7 Cj4+ICvCoMKgwqAgZ3VjLT5zdWJtaXNzaW9uX3N1cHBvcnRlZCA9IF9fZ3VjX3N1Ym1pc3Npb25f c3VwcG9ydGVkKGd1Yyk7Cj4+IMKgwqDCoMKgwqAgZ3VjLT5zdWJtaXNzaW9uX3NlbGVjdGVkID0g X19ndWNfc3VibWlzc2lvbl9zZWxlY3RlZChndWMpOwo+PiDCoCB9Cj4+IMKgIGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5oIAo+PiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmgKPj4gaW5k ZXggYTJhM2ZhZDcyYmUxLi5iZTc2N2ViNmZmNzEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmgKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaAo+PiBAQCAtMzcsOCArMzcs NyBAQCBpbnQgaW50ZWxfZ3VjX3dhaXRfZm9yX3BlbmRpbmdfbXNnKHN0cnVjdCBpbnRlbF9ndWMg Cj4+ICpndWMsCj4+IMKgIMKgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9ndWNfc3VibWlzc2lv bl9pc19zdXBwb3J0ZWQoc3RydWN0IAo+PiBpbnRlbF9ndWMgKmd1YykKPj4gwqAgewo+PiAtwqDC oMKgIC8qIFhYWDogR3VDIHN1Ym1pc3Npb24gaXMgdW5hdmFpbGFibGUgZm9yIG5vdyAqLwo+PiAt wqDCoMKgIHJldHVybiBmYWxzZTsKPj4gK8KgwqDCoCByZXR1cm4gZ3VjLT5zdWJtaXNzaW9uX3N1 cHBvcnRlZDsKPj4gwqAgfQo+PiDCoCDCoCBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZ3VjX3N1 Ym1pc3Npb25faXNfd2FudGVkKHN0cnVjdCAKPj4gaW50ZWxfZ3VjICpndWMpCj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jIAo+PiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmMKPj4gaW5kZXggN2E2OWMzYzAyN2U5Li42MWJl MGFhODE0OTIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVs X3VjLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuYwo+PiBA QCAtMzQsOCArMzQsMTUgQEAgc3RhdGljIHZvaWQgdWNfZXhwYW5kX2RlZmF1bHRfb3B0aW9ucyhz dHJ1Y3QgCj4+IGludGVsX3VjICp1YykKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4g wqDCoMKgwqDCoCB9Cj4+IMKgIC3CoMKgwqAgLyogRGVmYXVsdDogZW5hYmxlIEh1QyBhdXRoZW50 aWNhdGlvbiBvbmx5ICovCj4+IC3CoMKgwqAgaTkxNS0+cGFyYW1zLmVuYWJsZV9ndWMgPSBFTkFC TEVfR1VDX0xPQURfSFVDOwo+PiArwqDCoMKgIC8qIEludGVybWVkaWF0ZSBwbGF0Zm9ybXMgYXJl IEh1QyBhdXRoZW50aWNhdGlvbiBvbmx5ICovCj4+ICvCoMKgwqAgaWYgKElTX0RHMShpOTE1KSB8 fCBJU19BTERFUkxBS0VfUyhpOTE1KSkgewo+PiArwqDCoMKgwqDCoMKgwqAgZHJtX2RiZygmaTkx NS0+ZHJtLCAiRGlzYWJsaW5nIEd1QyBvbmx5IGR1ZSB0byBvbGQgCj4+IHBsYXRmb3JtXG4iKTsK Pgo+IFRoaXMgY29tbWVudCBkb2VzIG5vdCBzZWVtIGFjY3VyYXRlLCBnaXZlbiB0aGF0IERHMSBp cyBiYXJlbHkgb3V0LCBhbmQgCj4gQURMIGlzIG5vdCBvdXQgeWV0LiBIb3cgYWJvdXQ6Cj4KPiAi RGlzYWJsaW5nIEd1QyBvbiB1bnRlc3RlZCBwbGF0Zm9ybXMiPwo+Ckp1c3QgYmVjYXVzZSBzb21l dGhpbmcgaXMgbm90IGluIHRoZSBzaG9wcyB5ZXQgZG9lcyBub3QgbWVhbiBpdCBpcyBuZXcuIApU ZWNobm9sb2d5IGlzIGFsd2F5cyBvYnNvbGV0ZSBieSB0aGUgdGltZSBpdCBnb2VzIG9uIHNhbGUu CgpBbmQgdGhlIGlzc3VlIGlzIG5vdCBhIGxhY2sgb2YgdGVzdGluZywgaXQgaXMgYSBxdWVzdGlv biBvZiB3aGV0aGVyIHdlIAphcmUgYWxsb3dlZCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgb24gc29t ZXRoaW5nIHRoYXQgaGFzIGFscmVhZHkgc3RhcnRlZCAKYmVpbmcgdXNlZCBieSBjdXN0b21lcnMg b3Igbm90IChpbmNsdWRpbmcgcHJlLXJlbGVhc2UgYmV0YSBjdXN0b21lcnMpLiAKSS5lLiBpdCBp cyBiYXNpY2FsbHkgYSBwb2xpdGljYWwgZGVjaXNpb24gbm90IGFuIGVuZ2luZWVyaW5nIGRlY2lz aW9uLgoKCj4+ICvCoMKgwqDCoMKgwqDCoCBpOTE1LT5wYXJhbXMuZW5hYmxlX2d1YyA9IEVOQUJM RV9HVUNfTE9BRF9IVUM7Cj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+ICvCoMKgwqAgfQo+ PiArCj4+ICvCoMKgwqAgLyogRGVmYXVsdDogZW5hYmxlIEh1QyBhdXRoZW50aWNhdGlvbiBhbmQg R3VDIHN1Ym1pc3Npb24gKi8KPj4gK8KgwqDCoCBpOTE1LT5wYXJhbXMuZW5hYmxlX2d1YyA9IEVO QUJMRV9HVUNfTE9BRF9IVUMgfCAKPj4gRU5BQkxFX0dVQ19TVUJNSVNTSU9OOwo+Cj4gVGhpcyBz ZWVtcyB0byBiZSBpbiBjb250cmFkaWN0aW9uIHdpdGggdGhlIEd1QyBzdWJtaXNzaW9uIHBsYW4g d2hpY2ggCj4gc3RhdGVzOgo+Cj4gIk5vdCBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYW55IGN1cnJl bnQgcGxhdGZvcm1zIGJ1dCBjYW4gYmUgZW5hYmxlZCAKPiB2aWEgbW9kcGFyYW0gZW5hYmxlX2d1 YyIuCkFsbCBjdXJyZW50IHBsYXRmb3JtcyBoYXZlIGFscmVhZHkgYmVlbiBleHBsaWNpdGx5IHRl c3RlZCBmb3IgYWJvdmUuIApUaGlzIGlzIHNldHRpbmcgdGhlIGRlZmF1bHQgb24gbmV3ZXIgcGxh dGZvcm1zIC0gQURMLVAgYW5kIGxhdGVyLiBGb3IgCndoaWNoIHRoZSBvZmZpY2lhbCBleHBlY3Rh dGlvbiBpcyB0byBoYXZlIEd1QyBlbmFibGVkLgoKPgo+IFdoZW4geW91IHJld29yayB0aGUgcGF0 Y2gsIGNvdWxkIHlvdSBwbGVhc2UgYWRkIGEgd2FybmluZyB3aGVuIHRoZSAKPiB1c2VyIGZvcmNl LWVuYWJsZXMgdGhlIEd1QyBDb21tYW5kIFN1Ym1pc3Npb24/IApUaGVyZSBhbHJlYWR5IGlzIG9u ZS4gSWYgeW91IHNldCB0aGUgbW9kdWxlIHBhcmFtZXRlciB0aGVuIHRoZSBrZXJuZWwgaXMgCnRh aW50ZWQuIFRoYXQgbWVhbnMgJ2hlcmUgYmUgZHJhZ29ucycgLSB5b3UgaGF2ZSBkb25lIHNvbWV0 aGluZyAKb2ZmaWNpYWxseSBub3Qgc3VwcG9ydGVkIHRvIHlvdXIga2VybmVsIHNvIGFsbCBiZXRz IGFyZSBvZmYsIGlmIGl0IGJsb3dzIAp1cCBpdCBpcyB5b3VyIG93biBwcm9ibGVtLgoKPiBTb21l dGhpbmcgbGlrZToKPgo+ICJXQVJOSU5HOiBUaGUgdXNlciBmb3JjZS1lbmFibGVkIHRoZSBleHBl cmltZW50YWwgR3VDIGNvbW1hbmQgCj4gc3VibWlzc2lvbiBiYWNrZW5kIHVzaW5nIGk5MTUuZW5h YmxlX2d1Yy4gUGxlYXNlIGRpc2FibGUgaXQgaWYgCj4gZXhwZXJpZW5jaW5nIHN0YWJpbGl0eSBp c3N1ZXMuIE5vIGJ1ZyByZXBvcnRzIHdpbGwgYmUgYWNjZXB0ZWQgb24gdGhpcyAKPiBiYWNrZW5k Ii4KPgo+IFRoaXMgc2hvdWxkIGFsbG93IHlvdSB0byB3b3JrIG9uIHRoZSBiYWNrZW5kLCB3aGls ZSBjb21tdW5pY2F0aW5nIAo+IGNsZWFybHkgdG8gdXNlcnMgdGhhdCBpdCBpcyBub3QgcmVhZHkg anVzdCB5ZXQuIE9uY2UgaXQgaGFzIG1hdHVyZWQsIAo+IHRoZSB3YXJuaW5nIGNhbiBiZSByZW1v dmVkLgpUaGUgZmFjdCB0aGF0IEFETC1QIGlzIG5vdCBvbiB0aGUgc2hlbHZlcyBpbiB5b3VyIGxv Y2FsIHJldGFpbCBzdG9yZSAKc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gZW5zdXJlIHRoYXQgdXNl cnMgYXJlIGF3YXJlIHRoYXQgQURMLVAgc3VwcG9ydCAKaXMgbm90IGVudGlyZWx5IG1hdHVyZSB5 ZXQuIEFuZCBpbiBtYW55IHdheXMsIG5vdCBqdXN0IEd1QyBiYXNlZCBzdWJtaXNzaW9uLgoKSm9o bi4KCgo+Cj4gQ2hlZXJzLAo+IE1hcnRpbgo+Cj4+IMKgIH0KPj4gwqAgwqAgLyogUmVzZXQgR3VD IHByb3ZpZGluZyB1cyB3aXRoIGZyZXNoIHN0YXRlIGZvciBib3RoIEd1QyBhbmQgSHVDLgo+PiBA QCAtMzEzLDkgKzMyMCw2IEBAIHN0YXRpYyBpbnQgX191Y19pbml0KHN0cnVjdCBpbnRlbF91YyAq dWMpCj4+IMKgwqDCoMKgwqAgaWYgKGk5MTVfaW5qZWN0X3Byb2JlX2ZhaWx1cmUodWNfdG9fZ3Qo dWMpLT5pOTE1KSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PTUVNOwo+PiDCoCAt wqDCoMKgIC8qIFhYWDogR3VDIHN1Ym1pc3Npb24gaXMgdW5hdmFpbGFibGUgZm9yIG5vdyAqLwo+ PiAtwqDCoMKgIEdFTV9CVUdfT04oaW50ZWxfdWNfdXNlc19ndWNfc3VibWlzc2lvbih1YykpOwo+ PiAtCj4+IMKgwqDCoMKgwqAgcmV0ID0gaW50ZWxfZ3VjX2luaXQoZ3VjKTsKPj4gwqDCoMKgwqDC oCBpZiAocmV0KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=