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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id A09A8EDEBF0 for ; Tue, 3 Mar 2026 21:15:58 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 02AD410E8E1; Tue, 3 Mar 2026 21:15:58 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="g7FiJDyC"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 928E810E8FB for ; Tue, 3 Mar 2026 21:15:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1772572555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iFUtofMKhN11SJynmnwd1bk8v/kag6AshDn9xvNUK9Q=; b=g7FiJDyCEV4nBjJ5GEeqwP4/sqGLNKQgLqzVff7r6/MxcGzpwHqT5edfIoHMEWSQ2QNWV9 1YGG3klrAzaE/EJCvswkul8USCrlzgc93chvli/KgvzqV0uNhHhjbck7585KyQYnP+gsnU nUbvYREUuCzvGoNWIpr6Rv0kb+cLDnE= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-664-QikELjFKOSazVE7IDSRt_g-1; Tue, 03 Mar 2026 16:15:54 -0500 X-MC-Unique: QikELjFKOSazVE7IDSRt_g-1 X-Mimecast-MFC-AGG-ID: QikELjFKOSazVE7IDSRt_g_1772572554 Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-506b839cafaso83203691cf.3 for ; Tue, 03 Mar 2026 13:15:54 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772572554; x=1773177354; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=iFUtofMKhN11SJynmnwd1bk8v/kag6AshDn9xvNUK9Q=; b=Jzn3glIJBUPKfdEzhFqyP4Jc8XCydRafHsXRk2GxFfXxBj4T+p//XGk2sn+eioVFFZ IlMGVPBlEzojO4uoNHwRR3F89Tou9d7FPLbZKSBSVvOQ5UAYyJi32L6MOamKmbBmQXSj DWpfP9iAXmBH57pXoDPjyevD/Q40ZPnO5qudFloMjgsUcRNOyXO/6mi/m0BSplJkg0b/ Hm3eEWbX9k9sjDVLutMukDt/PnizxGd5BzpQxHPiWmOme+aAbBnVsfPZbu6nb2/afmsA 78GRroghgfXdaplQ2NJH5mclTIVl9YPrK02uE9HsDnUKcupKlK5di4DV5JPCfWvfK8OO 25og== X-Forwarded-Encrypted: i=1; AJvYcCWFtJBk6K/FwQj2n0fYRmmI+Xh0csN3N3+iWypf8PQmz/rqs9qKk5trNXPU/8YfjKoN2TRSnszWjPw=@lists.freedesktop.org X-Gm-Message-State: AOJu0Yzc9ohxadbb9QO8t74bQ5Wtxj3RD11ZdNeLgWkv8G2fkVrxdDmB ePIt/lIwwpOabbvg5+a+eEaRmOQVEVgTjEU03xip5lZ6csIgmRSOWTMWwNB8vXmBFsNKFw2MsrY gT/MJHnzycy/it43bWDTBrhPkgihSIMNZvVkHPWvX5/J9i2dmvysaF8Yiyv/PL7b/evg4Eb+9y4 nDkTx2ARW8baNQgHR2XJ8eBvINSnZMEkUyf81RSe+pIiXZrecM0l7r5xxK X-Gm-Gg: ATEYQzwoA30djaSBOp2HrFOigPEk4BG3C/wEFaUlcRvLfS6WgFitS3X6rKRiCpXMrZO c0h612d9PUC7uoErR7wdQNaA+frN/kGH8WXGeFwo24roHr2APSqxB6KZXfa2P14K2lLhlhniFGB p8AEmuntNq1MMFluuP0CriwAAqdARreheP5j+H7dkJhL2nYqHy/8xNfQjyjHtXiqF9CDs3D+svW hSmJg54e9bsTSDmS+aYRRxu6AVxjxRATiUEC8ubI5GiF++z4OeHpwzQVU3mS8s0/4ti3CubwPfF v+kXU0I9zakpLGYBrludMIsONofp4/ubxzdYbw0bYamiwATxI7dbkNbf/co5e3aUxVFOP4S0Z+7 A3GY64P9YIuoUDR19tnsM8H7yAg== X-Received: by 2002:ac8:57d0:0:b0:4f1:ba0b:90 with SMTP id d75a77b69052e-50752840191mr212432101cf.8.1772572553772; Tue, 03 Mar 2026 13:15:53 -0800 (PST) X-Received: by 2002:ac8:57d0:0:b0:4f1:ba0b:90 with SMTP id d75a77b69052e-50752840191mr212431321cf.8.1772572553025; Tue, 03 Mar 2026 13:15:53 -0800 (PST) Received: from [172.16.1.8] ([2607:f2c0:b1e3:9a00:3c7:56c2:f819:96d2]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-5074481c0e5sm156286991cf.0.2026.03.03.13.15.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 13:15:52 -0800 (PST) From: Peter Colberg Date: Tue, 03 Mar 2026 16:15:30 -0500 Subject: [PATCH v3 10/10] samples: rust: add SR-IOV driver sample MIME-Version: 1.0 Message-Id: <20260303-rust-pci-sriov-v3-10-4443c35f0c88@redhat.com> References: <20260303-rust-pci-sriov-v3-0-4443c35f0c88@redhat.com> In-Reply-To: <20260303-rust-pci-sriov-v3-0-4443c35f0c88@redhat.com> To: Danilo Krummrich , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Miguel Ojeda , Alex Gaynor , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Abdiel Janulgue , Daniel Almeida , Robin Murphy , Greg Kroah-Hartman , Dave Ertman , Ira Weiny , Leon Romanovsky , David Airlie , Simona Vetter , Jonathan Corbet , Xu Yilun , Tom Rix , Moritz Fischer , "Rafael J. Wysocki" , Boqun Feng Cc: linux-pci@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandre Courbot , Alistair Popple , Joel Fernandes , John Hubbard , Zhi Wang , nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org, linux-fpga@vger.kernel.org, driver-core@lists.linux.dev, Peter Colberg , Jason Gunthorpe X-Mailer: b4 0.14.2 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: wCb1uqyNiS_dkMTxAvjPh1YLPt3xCzQ5-vASZDdFXEk_1772572554 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QWRkIGEgbmV3IFNSLUlPViBkcml2ZXIgc2FtcGxlIHRoYXQgZGVtb25zdHJhdGVzIGhvdyB0byBl bmFibGUgYW5kCmRpc2FibGUgdGhlIFNpbmdsZSBSb290IEkvTyBWaXJ0dWFsaXphdGlvbiBjYXBh YmlsaXR5IGZvciBhIFBDSSBkZXZpY2UuCgpUaGUgc2FtcGxlIG1heSBiZSBleGVyY2lzZWQgdXNp bmcgUUVNVSdzIDgyNTc2IChpZ2IpIGVtdWxhdGlvbi4KCkxpbms6IGh0dHBzOi8vd3d3LnFlbXUu b3JnL2RvY3MvbWFzdGVyL3N5c3RlbS9kZXZpY2VzL2lnYi5odG1sClNpZ25lZC1vZmYtYnk6IFBl dGVyIENvbGJlcmcgPHBjb2xiZXJnQHJlZGhhdC5jb20+Ci0tLQpDaGFuZ2VzIGluIHYzOgotIERy b3AgcmVkdW5kYW50IGAuYXNfcmVmKClgIGZvciBgZGV2XypgIHByaW50cy4KCkNoYW5nZXMgaW4g djI6Ci0gVXNlICJrZXJuZWwgdmVydGljYWwiIHN0eWxlIG9uIGltcG9ydHMuCi0gRGVtb25zdHJh dGUgaG93IHRvIHJlYWNoIGRyaXZlciBkYXRhIG9mIFBGIGRldmljZSBmcm9tIFZGIGRldmljZS4K LS0tCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc2FtcGxlcy9y dXN0L0tjb25maWcgICAgICAgICAgICAgIHwgIDExICsrKysKIHNhbXBsZXMvcnVzdC9NYWtlZmls ZSAgICAgICAgICAgICB8ICAgMSArCiBzYW1wbGVzL3J1c3QvcnVzdF9kcml2ZXJfc3Jpb3YucnMg fCAxMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hh bmdlZCwgMTQwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5U QUlORVJTCmluZGV4IDYxYmY1NTBmZDM3YzI3NDg0M2U1MTZlMDAwNjhiYjJhYjFlMTUyYWMuLjg1 NTFhOTQ3NGZjMjYzMDlkMDcxNGFhZmExMDRhNWUxZWQyOTE1NmIgMTAwNjQ0Ci0tLSBhL01BSU5U QUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC0yMDQ1NCw2ICsyMDQ1NCw3IEBAIEY6CXJ1c3Qv aGVscGVycy9wY2kuYwogRjoJcnVzdC9rZXJuZWwvcGNpLnJzCiBGOglydXN0L2tlcm5lbC9wY2kv CiBGOglzYW1wbGVzL3J1c3QvcnVzdF9kcml2ZXJfcGNpLnJzCitGOglzYW1wbGVzL3J1c3QvcnVz dF9kcml2ZXJfc3Jpb3YucnMKIAogUENJRSBCQU5EV0lEVEggQ09OVFJPTExFUgogTToJSWxwbyBK w6RydmluZW4gPGlscG8uamFydmluZW5AbGludXguaW50ZWwuY29tPgpkaWZmIC0tZ2l0IGEvc2Ft cGxlcy9ydXN0L0tjb25maWcgYi9zYW1wbGVzL3J1c3QvS2NvbmZpZwppbmRleCBjNDlhYjkxMDYz NDU5NmFlYTRhMWE3M2RhYzg3NTg1ZTA4NGY0MjBhLi5mMjQ0ZGY4OWM0ZmM5ZDc0MTkxNWY1ODFk ZTc2MTA3ZThlYjAxMjFiIDEwMDY0NAotLS0gYS9zYW1wbGVzL3J1c3QvS2NvbmZpZworKysgYi9z YW1wbGVzL3J1c3QvS2NvbmZpZwpAQCAtMTI4LDYgKzEyOCwxNyBAQCBjb25maWcgU0FNUExFX1JV U1RfRFJJVkVSX1BMQVRGT1JNCiAKIAkgIElmIHVuc3VyZSwgc2F5IE4uCiAKK2NvbmZpZyBTQU1Q TEVfUlVTVF9EUklWRVJfU1JJT1YKKwl0cmlzdGF0ZSAiU1ItSU9WIERyaXZlciIKKwlkZXBlbmRz IG9uIFBDSV9JT1YKKwloZWxwCisJICBUaGlzIG9wdGlvbiBidWlsZHMgdGhlIFJ1c3QgU1ItSU9W IGRyaXZlciBzYW1wbGUuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBhcyBhIG1vZHVsZSwgY2hvb3Nl IE0gaGVyZToKKwkgIHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcnVzdF9kcml2ZXJfc3Jpb3Yu CisKKwkgIElmIHVuc3VyZSwgc2F5IE4uCisKIGNvbmZpZyBTQU1QTEVfUlVTVF9EUklWRVJfVVNC CiAJdHJpc3RhdGUgIlVTQiBEcml2ZXIiCiAJZGVwZW5kcyBvbiBVU0IgPSB5CmRpZmYgLS1naXQg YS9zYW1wbGVzL3J1c3QvTWFrZWZpbGUgYi9zYW1wbGVzL3J1c3QvTWFrZWZpbGUKaW5kZXggNmMw YWFhNThjY2NjZmQxMmVmMDE5ZjY4Y2E3ODRmNmQ5NzdiYzY2OC4uMTlkNzAwZjgyMTAxNTFlMjk4 Y2MwNDlkYWNjMjQ5YTEyMWQwZjJjNCAxMDA2NDQKLS0tIGEvc2FtcGxlcy9ydXN0L01ha2VmaWxl CisrKyBiL3NhbXBsZXMvcnVzdC9NYWtlZmlsZQpAQCAtMTEsNiArMTEsNyBAQCBvYmotJChDT05G SUdfU0FNUExFX1JVU1RfRFJJVkVSX0kyQykJCSs9IHJ1c3RfZHJpdmVyX2kyYy5vCiBvYmotJChD T05GSUdfU0FNUExFX1JVU1RfSTJDX0NMSUVOVCkJCSs9IHJ1c3RfaTJjX2NsaWVudC5vCiBvYmot JChDT05GSUdfU0FNUExFX1JVU1RfRFJJVkVSX1BDSSkJCSs9IHJ1c3RfZHJpdmVyX3BjaS5vCiBv YmotJChDT05GSUdfU0FNUExFX1JVU1RfRFJJVkVSX1BMQVRGT1JNKQkrPSBydXN0X2RyaXZlcl9w bGF0Zm9ybS5vCitvYmotJChDT05GSUdfU0FNUExFX1JVU1RfRFJJVkVSX1NSSU9WKQkJKz0gcnVz dF9kcml2ZXJfc3Jpb3Yubwogb2JqLSQoQ09ORklHX1NBTVBMRV9SVVNUX0RSSVZFUl9VU0IpCQkr PSBydXN0X2RyaXZlcl91c2Iubwogb2JqLSQoQ09ORklHX1NBTVBMRV9SVVNUX0RSSVZFUl9GQVVY KQkJKz0gcnVzdF9kcml2ZXJfZmF1eC5vCiBvYmotJChDT05GSUdfU0FNUExFX1JVU1RfRFJJVkVS X0FVWElMSUFSWSkJKz0gcnVzdF9kcml2ZXJfYXV4aWxpYXJ5Lm8KZGlmZiAtLWdpdCBhL3NhbXBs ZXMvcnVzdC9ydXN0X2RyaXZlcl9zcmlvdi5ycyBiL3NhbXBsZXMvcnVzdC9ydXN0X2RyaXZlcl9z cmlvdi5ycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwLi5hNGY3Yjk5ZDk0OTBmOGZlZDJhYjFmZWRiMjM4YzUzMzA0YWY4 OWVlCi0tLSAvZGV2L251bGwKKysrIGIvc2FtcGxlcy9ydXN0L3J1c3RfZHJpdmVyX3NyaW92LnJz CkBAIC0wLDAgKzEsMTI3IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAor CisvLyEgUnVzdCBTUi1JT1YgZHJpdmVyIHNhbXBsZSBiYXNlZCBvbiBRRU1VJ3MgODI1NzYgKFtp Z2JdKSBlbXVsYXRpb24uCisvLyEKKy8vISBUbyBtYWtlIHRoaXMgZHJpdmVyIHByb2JlLCBRRU1V IG11c3QgYmUgcnVuIHdpdGggYC1kZXZpY2UgaWdiYC4KKy8vIQorLy8hIEZ1cnRoZXIsIGVuYWJs ZSBbdklPTU1VXSB3aXRoIGludGVycnVwdCByZW1hcHBpbmcgdXNpbmcsIGUuZy4sCisvLyEKKy8v ISBgLU0gcTM1LGFjY2VsPWt2bSxrZXJuZWwtaXJxY2hpcD1zcGxpdCAtZGV2aWNlIGludGVsLWlv bW11LGludHJlbWFwPW9uLGNhY2hpbmctbW9kZT1vbmAKKy8vIQorLy8hIGFuZCBhcHBlbmQgYGlu dGVsX2lvbW11PW9uYCB0byB0aGUgZ3Vlc3Qga2VybmVsIGFyZ3VtZW50cy4KKy8vIQorLy8hIFtp Z2JdOiBodHRwczovL3d3dy5xZW11Lm9yZy9kb2NzL21hc3Rlci9zeXN0ZW0vZGV2aWNlcy9pZ2Iu aHRtbAorLy8hIFt2SU9NTVVdOiBodHRwczovL3dpa2kucWVtdS5vcmcvRmVhdHVyZXMvVlQtZAor Cit1c2Uga2VybmVsOjp7CisgICAgZGV2aWNlOjpDb3JlLAorICAgIHBjaSwKKyAgICBwcmVsdWRl OjoqLAorICAgIHN5bmM6OmFyZWY6OkFSZWYsIC8vCit9OworCit1c2UgY29yZTo6YW55OjpUeXBl SWQ7CisKKyNbcGluX2RhdGEoUGlubmVkRHJvcCldCitzdHJ1Y3QgU2FtcGxlRHJpdmVyIHsKKyAg ICBwZGV2OiBBUmVmPHBjaTo6RGV2aWNlPiwKKyAgICBwcml2YXRlOiBUeXBlSWQsCit9CisKK2tl cm5lbDo6cGNpX2RldmljZV90YWJsZSEoCisgICAgUENJX1RBQkxFLAorICAgIE1PRFVMRV9QQ0lf VEFCTEUsCisgICAgPFNhbXBsZURyaXZlciBhcyBwY2k6OkRyaXZlcj46OklkSW5mbywKKyAgICBb CisgICAgICAgIC8vIEUxMDAwX0RFVl9JRF84MjU3NgorICAgICAgICAocGNpOjpEZXZpY2VJZDo6 ZnJvbV9pZChwY2k6OlZlbmRvcjo6SU5URUwsIDB4MTBjOSksICgpKSwKKyAgICAgICAgLy8gRTEw MDBfREVWX0lEXzgyNTc2X1ZGCisgICAgICAgIChwY2k6OkRldmljZUlkOjpmcm9tX2lkKHBjaTo6 VmVuZG9yOjpJTlRFTCwgMHgxMGNhKSwgKCkpCisgICAgXQorKTsKKworI1t2dGFibGVdCitpbXBs IHBjaTo6RHJpdmVyIGZvciBTYW1wbGVEcml2ZXIgeworICAgIHR5cGUgSWRJbmZvID0gKCk7CisK KyAgICBjb25zdCBJRF9UQUJMRTogcGNpOjpJZFRhYmxlPFNlbGY6OklkSW5mbz4gPSAmUENJX1RB QkxFOworCisgICAgZm4gcHJvYmUocGRldjogJnBjaTo6RGV2aWNlPENvcmU+LCBfaW5mbzogJlNl bGY6OklkSW5mbykgLT4gaW1wbCBQaW5Jbml0PFNlbGYsIEVycm9yPiB7CisgICAgICAgIHBpbl9p bml0OjpwaW5faW5pdF9zY29wZShtb3ZlIHx8IHsKKyAgICAgICAgICAgIGRldl9pbmZvISgKKyAg ICAgICAgICAgICAgICBwZGV2LAorICAgICAgICAgICAgICAgICJQcm9iZSBSdXN0IFNSLUlPViBk cml2ZXIgc2FtcGxlIChQQ0kgSUQ6IHt9LCAweHs6eH0pLlxuIiwKKyAgICAgICAgICAgICAgICBw ZGV2LnZlbmRvcl9pZCgpLAorICAgICAgICAgICAgICAgIHBkZXYuZGV2aWNlX2lkKCkKKyAgICAg ICAgICAgICk7CisKKyAgICAgICAgICAgIGlmIHBkZXYuaXNfdmlydGZuKCkgeworICAgICAgICAg ICAgICAgIGxldCBwaHlzZm4gPSBwZGV2LnBoeXNmbigpPzsKKyAgICAgICAgICAgICAgICBsZXQg ZHJ2ZGF0YSA9IHBoeXNmbi5hc19yZWYoKS5kcnZkYXRhOjo8U2VsZj4oKT87CisKKyAgICAgICAg ICAgICAgICBhc3NlcnQhKHBoeXNmbi5pc19waHlzZm4oKSk7CisKKyAgICAgICAgICAgICAgICBk ZXZfaW5mbyEoCisgICAgICAgICAgICAgICAgICAgIHBkZXYsCisgICAgICAgICAgICAgICAgICAg ICJQYXJlbnQgZGV2aWNlIGlzIFBGIChQQ0kgSUQ6IHt9LCAweHs6eH0pLlxuIiwKKyAgICAgICAg ICAgICAgICAgICAgcGh5c2ZuLnZlbmRvcl9pZCgpLAorICAgICAgICAgICAgICAgICAgICBwaHlz Zm4uZGV2aWNlX2lkKCkKKyAgICAgICAgICAgICAgICApOworCisgICAgICAgICAgICAgICAgZGV2 X2luZm8hKAorICAgICAgICAgICAgICAgICAgICBwZGV2LAorICAgICAgICAgICAgICAgICAgICAi V2UgaGF2ZSBhY2Nlc3MgdG8gdGhlIHByaXZhdGUgZGF0YSBvZiB7Oj99LlxuIiwKKyAgICAgICAg ICAgICAgICAgICAgZHJ2ZGF0YS5wcml2YXRlCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAg ICAgIH0KKworICAgICAgICAgICAgcGRldi5lbmFibGVfZGV2aWNlX21lbSgpPzsKKyAgICAgICAg ICAgIHBkZXYuc2V0X21hc3RlcigpOworCisgICAgICAgICAgICBPayh0cnlfcGluX2luaXQhKFNl bGYgeworICAgICAgICAgICAgICAgIHBkZXY6IHBkZXYuaW50bygpLAorICAgICAgICAgICAgICAg IHByaXZhdGU6IFR5cGVJZDo6b2Y6OjxTZWxmPigpCisgICAgICAgICAgICB9KSkKKyAgICAgICAg fSkKKyAgICB9CisKKyAgICBmbiBzcmlvdl9jb25maWd1cmUocGRldjogJnBjaTo6RGV2aWNlPENv cmU+LCBucl92aXJ0Zm46IGkzMikgLT4gUmVzdWx0PGkzMj4geworICAgICAgICBhc3NlcnQhKHBk ZXYuaXNfcGh5c2ZuKCkpOworCisgICAgICAgIGlmIG5yX3ZpcnRmbiA9PSAwIHsKKyAgICAgICAg ICAgIGRldl9pbmZvISgKKyAgICAgICAgICAgICAgICBwZGV2LAorICAgICAgICAgICAgICAgICJE aXNhYmxlIFNSLUlPViAoUENJIElEOiB7fSwgMHh7Onh9KS5cbiIsCisgICAgICAgICAgICAgICAg cGRldi52ZW5kb3JfaWQoKSwKKyAgICAgICAgICAgICAgICBwZGV2LmRldmljZV9pZCgpCisgICAg ICAgICAgICApOworICAgICAgICAgICAgcGRldi5kaXNhYmxlX3NyaW92KCk7CisgICAgICAgIH0g ZWxzZSB7CisgICAgICAgICAgICBkZXZfaW5mbyEoCisgICAgICAgICAgICAgICAgcGRldiwKKyAg ICAgICAgICAgICAgICAiRW5hYmxlIFNSLUlPViAoUENJIElEOiB7fSwgMHh7Onh9KS5cbiIsCisg ICAgICAgICAgICAgICAgcGRldi52ZW5kb3JfaWQoKSwKKyAgICAgICAgICAgICAgICBwZGV2LmRl dmljZV9pZCgpCisgICAgICAgICAgICApOworICAgICAgICAgICAgcGRldi5lbmFibGVfc3Jpb3Yo bnJfdmlydGZuKT87CisgICAgICAgIH0KKworICAgICAgICBhc3NlcnRfZXEhKHBkZXYubnVtX3Zm KCksIG5yX3ZpcnRmbik7CisgICAgICAgIE9rKG5yX3ZpcnRmbikKKyAgICB9Cit9CisKKyNbcGlu bmVkX2Ryb3BdCitpbXBsIFBpbm5lZERyb3AgZm9yIFNhbXBsZURyaXZlciB7CisgICAgZm4gZHJv cChzZWxmOiBQaW48Jm11dCBTZWxmPikgeworICAgICAgICBkZXZfaW5mbyEoc2VsZi5wZGV2LCAi UmVtb3ZlIFJ1c3QgU1ItSU9WIGRyaXZlciBzYW1wbGUuXG4iKTsKKyAgICB9Cit9CisKK2tlcm5l bDo6bW9kdWxlX3BjaV9kcml2ZXIhIHsKKyAgICB0eXBlOiBTYW1wbGVEcml2ZXIsCisgICAgbmFt ZTogInJ1c3RfZHJpdmVyX3NyaW92IiwKKyAgICBhdXRob3JzOiBbIlBldGVyIENvbGJlcmciXSwK KyAgICBkZXNjcmlwdGlvbjogIlJ1c3QgU1ItSU9WIGRyaXZlciIsCisgICAgbGljZW5zZTogIkdQ TCB2MiIsCit9CgotLSAKMi41My4wCgo=