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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 A89F0C433DB for ; Fri, 5 Feb 2021 17:14:41 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 EC61064EE4 for ; Fri, 5 Feb 2021 17:14:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EC61064EE4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:40454 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l84gp-0006Qg-To for qemu-devel@archiver.kernel.org; Fri, 05 Feb 2021 12:14:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42956) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l84HV-0002q4-8v for qemu-devel@nongnu.org; Fri, 05 Feb 2021 11:48:30 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:40974) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1l84HO-000777-0e for qemu-devel@nongnu.org; Fri, 05 Feb 2021 11:48:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1612543700; 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=wWAQsNPelYdxJSH3enop6B7kAHgQRG1UMwsvmTzJtaU=; b=J8k8tTj0cL59cCLKdHGrd84LHjUjtfTPojy7B37lCrH+KLqVDStRpZcniwTrM1zrNKRR+l NMsuN7kV3xamXaaIKA9wFqs7alBpnzpV4n28mYfaxBOaGrJMY+QXOs5mWlm+jhfAhARxAZ PHePh7TayUosZlq6NePAK2x2S9Ons9Y= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-14-Fl7bVQ-5NqKXOtfa-11IHQ-1; Fri, 05 Feb 2021 11:48:17 -0500 X-MC-Unique: Fl7bVQ-5NqKXOtfa-11IHQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4683F19611A0; Fri, 5 Feb 2021 16:48:16 +0000 (UTC) Received: from localhost (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id B6CD663BA7; Fri, 5 Feb 2021 16:48:06 +0000 (UTC) From: Stefan Hajnoczi To: Peter Maydell , qemu-devel@nongnu.org Subject: [PULL v3 17/27] multi-process: Associate fd of a PCIDevice with its object Date: Fri, 5 Feb 2021 16:44:49 +0000 Message-Id: <20210205164459.432714-18-stefanha@redhat.com> In-Reply-To: <20210205164459.432714-1-stefanha@redhat.com> References: <20210205164459.432714-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=stefanha@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=170.10.133.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.352, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , John G Johnson , Thomas Huth , Jagannathan Raman , Stefan Hajnoczi , qemu-block@nongnu.org, "Michael S. Tsirkin" , "Denis V. Lunev" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Elena Ufimtseva , Wainer dos Santos Moschetta , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Eduardo Habkost Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" RnJvbTogSmFnYW5uYXRoYW4gUmFtYW4gPGphZy5yYW1hbkBvcmFjbGUuY29tPgoKQXNzb2NpYXRl IHRoZSBmaWxlIGRlc2NyaXB0b3IgZm9yIGEgUENJRGV2aWNlIGluIHJlbW90ZSBwcm9jZXNzIHdp dGgKRGV2aWNlU3RhdGUgb2JqZWN0LgoKU2lnbmVkLW9mZi1ieTogRWxlbmEgVWZpbXRzZXZhIDxl bGVuYS51ZmltdHNldmFAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9obiBHIEpvaG5zb24g PGpvaG4uZy5qb2huc29uQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEphZ2FubmF0aGFuIFJh bWFuIDxqYWcucmFtYW5Ab3JhY2xlLmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZWZhbiBIYWpub2N6aSA8 c3RlZmFuaGFAcmVkaGF0LmNvbT4KTWVzc2FnZS1pZDogZjQwNWEyZWQ1ZDc1MThiODdiZWE3YzU5 Y2ZkZjMzNGQ2N2U1ZWU1MS4xNjExOTM4MzE5LmdpdC5qYWcucmFtYW5Ab3JhY2xlLmNvbQpTaWdu ZWQtb2ZmLWJ5OiBTdGVmYW4gSGFqbm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+Ci0tLQogTUFJ TlRBSU5FUlMgICAgICAgICAgICB8ICAgMSArCiBody9yZW1vdGUvcmVtb3RlLW9iai5jIHwgMjAz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBody9yZW1vdGUvbWVz b24uYnVpbGQgIHwgICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMjA1IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBody9yZW1vdGUvcmVtb3RlLW9iai5jCgpkaWZmIC0tZ2l0IGEvTUFJ TlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCA3NzE1MTNiYzM0Li5lMzdmYzRiMjI2IDEwMDY0 NAotLS0gYS9NQUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtMzIwOCw2ICszMjA4LDcg QEAgRjogaW5jbHVkZS9ody9yZW1vdGUvbWFjaGluZS5oCiBGOiBody9yZW1vdGUvbXBxZW11LWxp bmsuYwogRjogaW5jbHVkZS9ody9yZW1vdGUvbXBxZW11LWxpbmsuaAogRjogaHcvcmVtb3RlL21l c3NhZ2UuYworRjogaHcvcmVtb3RlL3JlbW90ZS1vYmouYwogCiBCdWlsZCBhbmQgdGVzdCBhdXRv bWF0aW9uCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9ody9yZW1vdGUv cmVtb3RlLW9iai5jIGIvaHcvcmVtb3RlL3JlbW90ZS1vYmouYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi40ZjIxMjU0MjE5Ci0tLSAvZGV2L251bGwKKysrIGIvaHcvcmVt b3RlL3JlbW90ZS1vYmouYwpAQCAtMCwwICsxLDIwMyBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAy MDIwLCAyMDIxIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuCisgKgorICogVGhpcyB3b3Jr IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdQTC12MiwgdmVyc2lvbiAy IG9yIGxhdGVyLgorICoKKyAqIFNlZSB0aGUgQ09QWUlORyBmaWxlIGluIHRoZSB0b3AtbGV2ZWwg ZGlyZWN0b3J5LgorICoKKyAqLworCisjaW5jbHVkZSAicWVtdS9vc2RlcC5oIgorI2luY2x1ZGUg InFlbXUtY29tbW9uLmgiCisKKyNpbmNsdWRlICJxZW11L2Vycm9yLXJlcG9ydC5oIgorI2luY2x1 ZGUgInFlbXUvbm90aWZ5LmgiCisjaW5jbHVkZSAicW9tL29iamVjdF9pbnRlcmZhY2VzLmgiCisj aW5jbHVkZSAiaHcvcWRldi1jb3JlLmgiCisjaW5jbHVkZSAiaW8vY2hhbm5lbC5oIgorI2luY2x1 ZGUgImh3L3FkZXYtY29yZS5oIgorI2luY2x1ZGUgImh3L3JlbW90ZS9tYWNoaW5lLmgiCisjaW5j bHVkZSAiaW8vY2hhbm5lbC11dGlsLmgiCisjaW5jbHVkZSAicWFwaS9lcnJvci5oIgorI2luY2x1 ZGUgInN5c2VtdS9zeXNlbXUuaCIKKyNpbmNsdWRlICJody9wY2kvcGNpLmgiCisjaW5jbHVkZSAi cWVtdS9zb2NrZXRzLmgiCisjaW5jbHVkZSAibW9uaXRvci9tb25pdG9yLmgiCisKKyNkZWZpbmUg VFlQRV9SRU1PVEVfT0JKRUNUICJ4LXJlbW90ZS1vYmplY3QiCitPQkpFQ1RfREVDTEFSRV9UWVBF KFJlbW90ZU9iamVjdCwgUmVtb3RlT2JqZWN0Q2xhc3MsIFJFTU9URV9PQkpFQ1QpCisKK3N0cnVj dCBSZW1vdGVPYmplY3RDbGFzcyB7CisgICAgT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisg ICAgdW5zaWduZWQgaW50IG5yX2RldnM7CisgICAgdW5zaWduZWQgaW50IG1heF9kZXZzOworfTsK Kworc3RydWN0IFJlbW90ZU9iamVjdCB7CisgICAgLyogcHJpdmF0ZSAqLworICAgIE9iamVjdCBw YXJlbnQ7CisKKyAgICBOb3RpZmllciBtYWNoaW5lX2RvbmU7CisKKyAgICBpbnQzMl90IGZkOwor ICAgIGNoYXIgKmRldmlkOworCisgICAgUUlPQ2hhbm5lbCAqaW9jOworCisgICAgRGV2aWNlU3Rh dGUgKmRldjsKKyAgICBEZXZpY2VMaXN0ZW5lciBsaXN0ZW5lcjsKK307CisKK3N0YXRpYyB2b2lk IHJlbW90ZV9vYmplY3Rfc2V0X2ZkKE9iamVjdCAqb2JqLCBjb25zdCBjaGFyICpzdHIsIEVycm9y ICoqZXJycCkKK3sKKyAgICBSZW1vdGVPYmplY3QgKm8gPSBSRU1PVEVfT0JKRUNUKG9iaik7Cisg ICAgaW50IGZkID0gLTE7CisKKyAgICBmZCA9IG1vbml0b3JfZmRfcGFyYW0obW9uaXRvcl9jdXIo KSwgc3RyLCBlcnJwKTsKKyAgICBpZiAoZmQgPT0gLTEpIHsKKyAgICAgICAgZXJyb3JfcHJlcGVu ZChlcnJwLCAiQ291bGQgbm90IHBhcnNlIHJlbW90ZSBvYmplY3QgZmQgJXM6Iiwgc3RyKTsKKyAg ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghZmRfaXNfc29ja2V0KGZkKSkgeworICAg ICAgICBlcnJvcl9zZXRnKGVycnAsICJGaWxlIGRlc2NyaXB0b3IgJyVzJyBpcyBub3QgYSBzb2Nr ZXQiLCBzdHIpOworICAgICAgICBjbG9zZShmZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK KyAgICBvLT5mZCA9IGZkOworfQorCitzdGF0aWMgdm9pZCByZW1vdGVfb2JqZWN0X3NldF9kZXZp ZChPYmplY3QgKm9iaiwgY29uc3QgY2hhciAqc3RyLCBFcnJvciAqKmVycnApCit7CisgICAgUmVt b3RlT2JqZWN0ICpvID0gUkVNT1RFX09CSkVDVChvYmopOworCisgICAgZ19mcmVlKG8tPmRldmlk KTsKKworICAgIG8tPmRldmlkID0gZ19zdHJkdXAoc3RyKTsKK30KKworc3RhdGljIHZvaWQgcmVt b3RlX29iamVjdF91bnJlYWxpemVfbGlzdGVuZXIoRGV2aWNlTGlzdGVuZXIgKmxpc3RlbmVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlU3RhdGUg KmRldikKK3sKKyAgICBSZW1vdGVPYmplY3QgKm8gPSBjb250YWluZXJfb2YobGlzdGVuZXIsIFJl bW90ZU9iamVjdCwgbGlzdGVuZXIpOworCisgICAgaWYgKG8tPmRldiA9PSBkZXYpIHsKKyAgICAg ICAgb2JqZWN0X3VucmVmKE9CSkVDVChvKSk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCByZW1v dGVfb2JqZWN0X21hY2hpbmVfZG9uZShOb3RpZmllciAqbm90aWZpZXIsIHZvaWQgKmRhdGEpCit7 CisgICAgUmVtb3RlT2JqZWN0ICpvID0gY29udGFpbmVyX29mKG5vdGlmaWVyLCBSZW1vdGVPYmpl Y3QsIG1hY2hpbmVfZG9uZSk7CisgICAgRGV2aWNlU3RhdGUgKmRldiA9IE5VTEw7CisgICAgUUlP Q2hhbm5lbCAqaW9jID0gTlVMTDsKKyAgICBDb3JvdXRpbmUgKmNvID0gTlVMTDsKKyAgICBSZW1v dGVDb21tRGV2ICpjb21kZXYgPSBOVUxMOworICAgIEVycm9yICplcnIgPSBOVUxMOworCisgICAg ZGV2ID0gcWRldl9maW5kX3JlY3Vyc2l2ZShzeXNidXNfZ2V0X2RlZmF1bHQoKSwgby0+ZGV2aWQp OworICAgIGlmICghZGV2IHx8ICFvYmplY3RfZHluYW1pY19jYXN0KE9CSkVDVChkZXYpLCBUWVBF X1BDSV9ERVZJQ0UpKSB7CisgICAgICAgIGVycm9yX3JlcG9ydCgiJXMgaXMgbm90IGEgUENJIGRl dmljZSIsIG8tPmRldmlkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlvYyA9IHFp b19jaGFubmVsX25ld19mZChvLT5mZCwgJmVycik7CisgICAgaWYgKCFpb2MpIHsKKyAgICAgICAg ZXJyb3JfcmVwb3J0X2VycihlcnIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHFpb19j aGFubmVsX3NldF9ibG9ja2luZyhpb2MsIGZhbHNlLCBOVUxMKTsKKworICAgIG8tPmRldiA9IGRl djsKKworICAgIG8tPmxpc3RlbmVyLnVucmVhbGl6ZSA9IHJlbW90ZV9vYmplY3RfdW5yZWFsaXpl X2xpc3RlbmVyOworICAgIGRldmljZV9saXN0ZW5lcl9yZWdpc3Rlcigmby0+bGlzdGVuZXIpOwor CisgICAgLyogY28tcm91dGluZSBzaG91bGQgZnJlZSB0aGlzLiAqLworICAgIGNvbWRldiA9IGdf bmV3MChSZW1vdGVDb21tRGV2LCAxKTsKKyAgICAqY29tZGV2ID0gKFJlbW90ZUNvbW1EZXYpIHsK KyAgICAgICAgLmlvYyA9IGlvYywKKyAgICAgICAgLmRldiA9IFBDSV9ERVZJQ0UoZGV2KSwKKyAg ICB9OworCisgICAgY28gPSBxZW11X2Nvcm91dGluZV9jcmVhdGUobXBxZW11X3JlbW90ZV9tc2df bG9vcF9jbywgY29tZGV2KTsKKyAgICBxZW11X2Nvcm91dGluZV9lbnRlcihjbyk7Cit9CisKK3N0 YXRpYyB2b2lkIHJlbW90ZV9vYmplY3RfaW5pdChPYmplY3QgKm9iaikKK3sKKyAgICBSZW1vdGVP YmplY3RDbGFzcyAqayA9IFJFTU9URV9PQkpFQ1RfR0VUX0NMQVNTKG9iaik7CisgICAgUmVtb3Rl T2JqZWN0ICpvID0gUkVNT1RFX09CSkVDVChvYmopOworCisgICAgaWYgKGstPm5yX2RldnMgPj0g ay0+bWF4X2RldnMpIHsKKyAgICAgICAgZXJyb3JfcmVwb3J0KCJSZWFjaGVkIG1heGltdW0gbnVt YmVyIG9mIGRldmljZXM6ICV1Iiwgay0+bWF4X2RldnMpOworICAgICAgICByZXR1cm47CisgICAg fQorCisgICAgby0+aW9jID0gTlVMTDsKKyAgICBvLT5mZCA9IC0xOworICAgIG8tPmRldmlkID0g TlVMTDsKKworICAgIGstPm5yX2RldnMrKzsKKworICAgIG8tPm1hY2hpbmVfZG9uZS5ub3RpZnkg PSByZW1vdGVfb2JqZWN0X21hY2hpbmVfZG9uZTsKKyAgICBxZW11X2FkZF9tYWNoaW5lX2luaXRf ZG9uZV9ub3RpZmllcigmby0+bWFjaGluZV9kb25lKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3Rl X29iamVjdF9maW5hbGl6ZShPYmplY3QgKm9iaikKK3sKKyAgICBSZW1vdGVPYmplY3RDbGFzcyAq ayA9IFJFTU9URV9PQkpFQ1RfR0VUX0NMQVNTKG9iaik7CisgICAgUmVtb3RlT2JqZWN0ICpvID0g UkVNT1RFX09CSkVDVChvYmopOworCisgICAgZGV2aWNlX2xpc3RlbmVyX3VucmVnaXN0ZXIoJm8t Pmxpc3RlbmVyKTsKKworICAgIGlmIChvLT5pb2MpIHsKKyAgICAgICAgcWlvX2NoYW5uZWxfc2h1 dGRvd24oby0+aW9jLCBRSU9fQ0hBTk5FTF9TSFVURE9XTl9CT1RILCBOVUxMKTsKKyAgICAgICAg cWlvX2NoYW5uZWxfY2xvc2Uoby0+aW9jLCBOVUxMKTsKKyAgICB9CisKKyAgICBvYmplY3RfdW5y ZWYoT0JKRUNUKG8tPmlvYykpOworCisgICAgay0+bnJfZGV2cy0tOworICAgIGdfZnJlZShvLT5k ZXZpZCk7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW90ZV9vYmplY3RfY2xhc3NfaW5pdChPYmplY3RD bGFzcyAqa2xhc3MsIHZvaWQgKmRhdGEpCit7CisgICAgUmVtb3RlT2JqZWN0Q2xhc3MgKmsgPSBS RU1PVEVfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKworICAgIC8qCisgICAgICogTGltaXQgbnVtYmVy IG9mIHN1cHBvcnRlZCBkZXZpY2VzIHRvIDEuIFRoaXMgaXMgZG9uZSB0byBhdm9pZCBkZXZpY2Vz CisgICAgICogZnJvbSBvbmUgVk0gYWNjZXNzaW5nIHRoZSBSQU0gb2YgYW5vdGhlciBWTS4gVGhp cyBpcyBkb25lIHVudGlsIHdlCisgICAgICogc3RhcnQgdXNpbmcgc2VwYXJhdGUgYWRkcmVzcyBz cGFjZXMgZm9yIGluZGl2aWR1YWwgZGV2aWNlcy4KKyAgICAgKi8KKyAgICBrLT5tYXhfZGV2cyA9 IDE7CisgICAgay0+bnJfZGV2cyA9IDA7CisKKyAgICBvYmplY3RfY2xhc3NfcHJvcGVydHlfYWRk X3N0cihrbGFzcywgImZkIiwgTlVMTCwgcmVtb3RlX29iamVjdF9zZXRfZmQpOworICAgIG9iamVj dF9jbGFzc19wcm9wZXJ0eV9hZGRfc3RyKGtsYXNzLCAiZGV2aWQiLCBOVUxMLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZV9vYmplY3Rfc2V0X2RldmlkKTsKK30KKwor c3RhdGljIGNvbnN0IFR5cGVJbmZvIHJlbW90ZV9vYmplY3RfaW5mbyA9IHsKKyAgICAubmFtZSA9 IFRZUEVfUkVNT1RFX09CSkVDVCwKKyAgICAucGFyZW50ID0gVFlQRV9PQkpFQ1QsCisgICAgLmlu c3RhbmNlX3NpemUgPSBzaXplb2YoUmVtb3RlT2JqZWN0KSwKKyAgICAuaW5zdGFuY2VfaW5pdCA9 IHJlbW90ZV9vYmplY3RfaW5pdCwKKyAgICAuaW5zdGFuY2VfZmluYWxpemUgPSByZW1vdGVfb2Jq ZWN0X2ZpbmFsaXplLAorICAgIC5jbGFzc19zaXplID0gc2l6ZW9mKFJlbW90ZU9iamVjdENsYXNz KSwKKyAgICAuY2xhc3NfaW5pdCA9IHJlbW90ZV9vYmplY3RfY2xhc3NfaW5pdCwKKyAgICAuaW50 ZXJmYWNlcyA9IChJbnRlcmZhY2VJbmZvW10pIHsKKyAgICAgICAgeyBUWVBFX1VTRVJfQ1JFQVRB QkxFIH0sCisgICAgICAgIHsgfQorICAgIH0KK307CisKK3N0YXRpYyB2b2lkIHJlZ2lzdGVyX3R5 cGVzKHZvaWQpCit7CisgICAgdHlwZV9yZWdpc3Rlcl9zdGF0aWMoJnJlbW90ZV9vYmplY3RfaW5m byk7Cit9CisKK3R5cGVfaW5pdChyZWdpc3Rlcl90eXBlcyk7CmRpZmYgLS1naXQgYS9ody9yZW1v dGUvbWVzb24uYnVpbGQgYi9ody9yZW1vdGUvbWVzb24uYnVpbGQKaW5kZXggOWY1YzU3ZjM1YS4u NzFkMGE1Njg5ZSAxMDA2NDQKLS0tIGEvaHcvcmVtb3RlL21lc29uLmJ1aWxkCisrKyBiL2h3L3Jl bW90ZS9tZXNvbi5idWlsZApAQCAtMyw1ICszLDYgQEAgcmVtb3RlX3NzID0gc3Muc291cmNlX3Nl dCgpCiByZW1vdGVfc3MuYWRkKHdoZW46ICdDT05GSUdfTVVMVElQUk9DRVNTJywgaWZfdHJ1ZTog ZmlsZXMoJ21hY2hpbmUuYycpKQogcmVtb3RlX3NzLmFkZCh3aGVuOiAnQ09ORklHX01VTFRJUFJP Q0VTUycsIGlmX3RydWU6IGZpbGVzKCdtcHFlbXUtbGluay5jJykpCiByZW1vdGVfc3MuYWRkKHdo ZW46ICdDT05GSUdfTVVMVElQUk9DRVNTJywgaWZfdHJ1ZTogZmlsZXMoJ21lc3NhZ2UuYycpKQor cmVtb3RlX3NzLmFkZCh3aGVuOiAnQ09ORklHX01VTFRJUFJPQ0VTUycsIGlmX3RydWU6IGZpbGVz KCdyZW1vdGUtb2JqLmMnKSkKIAogc29mdG1tdV9zcy5hZGRfYWxsKHdoZW46ICdDT05GSUdfTVVM VElQUk9DRVNTJywgaWZfdHJ1ZTogcmVtb3RlX3NzKQotLSAKMi4yOS4yCgo=