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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 A7BE1C00A94 for ; Fri, 12 Apr 2024 18:17:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=etU5l3yk6zLNJzJqJ4U9RYKb9cV74Ravg9NT6mmD8YE=; b=s7akPgWaOhdLqU Zo7AT/QpkVA1+NmBmM2DuN5e1AnNFecBiK4Pw4hSURrnvc41XhxN84QBvLrIv0r22/LJ11ZMjbJo5 vuMA7lBZtcMf3MCQXBVkat1emDY5ZlW2E9ig4X2m5NzSJxdIp09mOvUPA8TW1npEJumjgfPXk0IzS Zm4+WD6HLBAKrHkkx0IeuzSfbz4cW3wlBdbJqXM0UZE9lWZCSKby+7kuHuCZmbLNzxEcTQwlXYSG6 1se6KHx8z1lfaAlWF4wYxo0xv9093dBYdpeao/6p6H1+ZvMKX92ejGxGUo1PWqNHmTM9qFTn+VlH9 +GS7kyv6OcjKOYQ7J7tA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rvLSg-00000000p9l-1c9H; Fri, 12 Apr 2024 18:17:18 +0000 Received: from mail-pf1-x434.google.com ([2607:f8b0:4864:20::434]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rvLSc-00000000p3Q-2dK4 for linux-arm-kernel@lists.infradead.org; Fri, 12 Apr 2024 18:17:16 +0000 Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-6e46dcd8feaso698614b3a.2 for ; Fri, 12 Apr 2024 11:17:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1712945822; x=1713550622; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=fwRQcSH3hoRqkz4lFFtuwqCwddU8BwqxVywbCJRklZ0=; b=Z39kaRYqyVeBREthF2l6aGyTA2SADSIC6P7UbExJD/ZjkDFIAkP1HklxtqDKXtQ0kI o/Efgfm62e2Ylj/4QTdQ3S2gAHpGpNjjKCujkcfzP3XeBuEQacDuYwJiaA4+P5G0Nz6w vOhse+ISI7pdHp8I8lyuOtuzpOyfcI0m8gsZXO9+N30lnLCElif9+jHGtc0UnVFd77+a 8WeqaPhdkUpxrNYqo9id3ZWn9GCJuHvAWnG5yP+bzkWsysBWZBMC2JsPxey04vBuXX2S PGWw7hj6LZds54PhX4TVi/rLw5SJ4WpyVG9NLW9nF3L5DKe4ZXnu9pSWsLGfx+PKOiNw TWnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712945822; x=1713550622; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fwRQcSH3hoRqkz4lFFtuwqCwddU8BwqxVywbCJRklZ0=; b=AuiesHJMbJE333ZqiarqQwYASUs3Nb7kLDuYiOu3nmJrN3zLKroxnxHZgOj6ueuP4D WC17AV4xHlF616rPig2MU4nQeyM5HI+qSKfHT+4XeEGDpPiuollAyQdJy2UqjTR9NaLf 3Kuq07U+EdKDBnL/AgdDrm0UyJZLSUgINh+hOhJVmf1ojt2Jii4T4zQQmVmZiiT4ElaS wg+pxEn76D+7dHrcga3GJ+H5TW+3Ol4HBaR4vpUYhjb9ec5gLYcWTO8vxbiLLGIVjRiU vtKeXs0vMPOK/joUU9vDJGg4HdsFWgTDfbvWLdtJkMk6Tdp1kJ2I+rcqTddLNK4VWSUm lPZg== X-Forwarded-Encrypted: i=1; AJvYcCU/JhlJaKzDmVgQ3rl4bDtQnUK8pmon46OtU3T3nUQlineOtSKxgMS2eWA8MZmBs5h1iDgE9QkkHn09iIYsfRkET0iYNoH4juExQ3b3ps+Fnbra8R8= X-Gm-Message-State: AOJu0Ywf5PLGJ38V90FIExORVM1hWASn3ip4uLBEqVmf7dZE7jvkhUoq IVYrxVrVlZaA6U1qR2et46XzKYGHtHW95GBo3APzlyijboDvl4tL7KZrl5pp6GA= X-Google-Smtp-Source: AGHT+IEAA1SdXJJ9JaBE0uNqu1IjKHNyvp0QURZDSkRyrJGkvMsb68Cr5A+LNkkLoKuuki78cgNyYA== X-Received: by 2002:a05:6a20:9c90:b0:1a9:c757:a22d with SMTP id mj16-20020a056a209c9000b001a9c757a22dmr336085pzb.14.1712945821769; Fri, 12 Apr 2024 11:17:01 -0700 (PDT) Received: from ghost (mobile-166-137-160-039.mycingular.net. [166.137.160.39]) by smtp.gmail.com with ESMTPSA id d3-20020a056a00198300b006e6c6a50e5esm3162896pfl.34.2024.04.12.11.16.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Apr 2024 11:17:01 -0700 (PDT) Date: Fri, 12 Apr 2024 11:16:54 -0700 From: Charlie Jenkins To: Evan Green Cc: Conor Dooley , Rob Herring , Krzysztof Kozlowski , Paul Walmsley , Palmer Dabbelt , Albert Ou , Guo Ren , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Conor Dooley , =?iso-8859-1?Q?Cl=E9ment_L=E9ger?= , Jonathan Corbet , Shuah Khan , linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: Re: [PATCH 16/19] riscv: hwprobe: Add vendor extension probing Message-ID: References: <20240411-dev-charlie-support_thead_vector_6_9-v1-0-4af9815ec746@rivosinc.com> <20240411-dev-charlie-support_thead_vector_6_9-v1-16-4af9815ec746@rivosinc.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240412_111714_748246_782D5CE6 X-CRM114-Status: GOOD ( 51.09 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBBcHIgMTIsIDIwMjQgYXQgMTA6MDU6MjFBTSAtMDcwMCwgRXZhbiBHcmVlbiB3cm90 ZToKPiBPbiBUaHUsIEFwciAxMSwgMjAyNCBhdCA5OjEy4oCvUE0gQ2hhcmxpZSBKZW5raW5zIDxj aGFybGllQHJpdm9zaW5jLmNvbT4gd3JvdGU6Cj4gPgo+ID4gQWRkIGEgbmV3IGh3cHJvYmUga2V5 ICJSSVNDVl9IV1BST0JFX0tFWV9WRU5ET1JfRVhUXzAiIHdoaWNoIGFsbG93cwo+ID4gdXNlcnNw YWNlIHRvIHByb2JlIGZvciB0aGUgbmV3IFJJU0NWX0lTQV9WRU5ET1JfRVhUX1hUSEVBRFZFQ1RP UiB2ZW5kb3IKPiA+IGV4dGVuc2lvbi4KPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBDaGFybGllIEpl bmtpbnMgPGNoYXJsaWVAcml2b3NpbmMuY29tPgo+ID4gLS0tCj4gPiAgYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS9od3Byb2JlLmggICAgICB8ICA0ICstLQo+ID4gIGFyY2gvcmlzY3YvaW5jbHVkZS91 YXBpL2FzbS9od3Byb2JlLmggfCAxMCArKysrKy0KPiA+ICBhcmNoL3Jpc2N2L2tlcm5lbC9zeXNf aHdwcm9iZS5jICAgICAgIHwgNTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0K PiA+ICAzIGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4g Pgo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdwcm9iZS5oIGIvYXJj aC9yaXNjdi9pbmNsdWRlL2FzbS9od3Byb2JlLmgKPiA+IGluZGV4IDYzMDUwN2RmZjVlYS4uZTY4 NDk2YjRmOGRlIDEwMDY0NAo+ID4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9od3Byb2Jl LmgKPiA+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdwcm9iZS5oCj4gPiBAQCAtMSw2 ICsxLDYgQEAKPiA+ICAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBXSVRIIExp bnV4LXN5c2NhbGwtbm90ZSAqLwo+ID4gIC8qCj4gPiAtICogQ29weXJpZ2h0IDIwMjMgUml2b3Ms IEluYwo+ID4gKyAqIENvcHlyaWdodCAyMDIzLTIwMjQgUml2b3MsIEluYwo+ID4gICAqLwo+ID4K PiA+ICAjaWZuZGVmIF9BU01fSFdQUk9CRV9ICj4gPiBAQCAtOCw3ICs4LDcgQEAKPiA+Cj4gPiAg I2luY2x1ZGUgPHVhcGkvYXNtL2h3cHJvYmUuaD4KPiA+Cj4gPiAtI2RlZmluZSBSSVNDVl9IV1BS T0JFX01BWF9LRVkgNgo+ID4gKyNkZWZpbmUgUklTQ1ZfSFdQUk9CRV9NQVhfS0VZIDcKPiA+Cj4g PiAgc3RhdGljIGlubGluZSBib29sIHJpc2N2X2h3cHJvYmVfa2V5X2lzX3ZhbGlkKF9fczY0IGtl eSkKPiA+ICB7Cj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2h3 cHJvYmUuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9od3Byb2JlLmgKPiA+IGluZGV4 IDlmMmE4ZTNmZjIwNC4uNjYxNGQzYWRmYzc1IDEwMDY0NAo+ID4gLS0tIGEvYXJjaC9yaXNjdi9p bmNsdWRlL3VhcGkvYXNtL2h3cHJvYmUuaAo+ID4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL3Vh cGkvYXNtL2h3cHJvYmUuaAo+ID4gQEAgLTEsNiArMSw2IEBACj4gPiAgLyogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8KPiA+ICAvKgo+ ID4gLSAqIENvcHlyaWdodCAyMDIzIFJpdm9zLCBJbmMKPiA+ICsgKiBDb3B5cmlnaHQgMjAyMy0y MDI0IFJpdm9zLCBJbmMKPiA+ICAgKi8KPiA+Cj4gPiAgI2lmbmRlZiBfVUFQSV9BU01fSFdQUk9C RV9ICj4gPiBAQCAtNjcsNiArNjcsMTQgQEAgc3RydWN0IHJpc2N2X2h3cHJvYmUgewo+ID4gICNk ZWZpbmUgICAgICAgICAgICAgICAgUklTQ1ZfSFdQUk9CRV9NSVNBTElHTkVEX1VOU1VQUE9SVEVE ICAgICg0IDw8IDApCj4gPiAgI2RlZmluZSAgICAgICAgICAgICAgICBSSVNDVl9IV1BST0JFX01J U0FMSUdORURfTUFTSyAgICAgICAgICAgKDcgPDwgMCkKPiA+ICAjZGVmaW5lIFJJU0NWX0hXUFJP QkVfS0VZX1pJQ0JPWl9CTE9DS19TSVpFICAgIDYKPiA+ICsvKgo+ID4gKyAqIEl0IGlzIG5vdCBw b3NzaWJsZSBmb3Igb25lIENQVSB0byBoYXZlIG11bHRpcGxlIHZlbmRvciBpZHMsIHNvIGVhY2gg dmVuZG9yCj4gPiArICogaGFzIGl0cyBvd24gdmVuZG9yIGV4dGVuc2lvbiAibmFtZXNwYWNlIi4g VGhlIGtleXMgZm9yIGVhY2ggdmVuZG9yIHN0YXJ0cwo+ID4gKyAqIGF0IHplcm8uCj4gPiArICov Cj4gPiArI2RlZmluZSBSSVNDVl9IV1BST0JFX0tFWV9WRU5ET1JfRVhUXzAgNwo+ID4gKyAvKiBU LUhlYWQgKi8KPiA+ICsjZGVmaW5lICAgICAgICAgICAgICAgIFJJU0NWX0hXUFJPQkVfVkVORE9S X0VYVF9YVEhFQURWRUNUT1IgICAoMSA8PCAwKQo+ID4gIC8qIEluY3JlYXNlIFJJU0NWX0hXUFJP QkVfTUFYX0tFWSB3aGVuIGFkZGluZyBpdGVtcy4gKi8KPiA+Cj4gPiAgLyogRmxhZ3MgKi8KPiA+ IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9zeXNfaHdwcm9iZS5jIGIvYXJjaC9yaXNj di9rZXJuZWwvc3lzX2h3cHJvYmUuYwo+ID4gaW5kZXggZTBhNDJjODUxNTExLi4zNjVjZTczODA0 NDMgMTAwNjQ0Cj4gPiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9zeXNfaHdwcm9iZS5jCj4gPiAr KysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zeXNfaHdwcm9iZS5jCj4gPiBAQCAtNjksNyArNjksOCBA QCBzdGF0aWMgdm9pZCBod3Byb2JlX2lzYV9leHQwKHN0cnVjdCByaXNjdl9od3Byb2JlICpwYWly LAo+ID4gICAgICAgICBpZiAocmlzY3ZfaXNhX2V4dGVuc2lvbl9hdmFpbGFibGUoTlVMTCwgYykp Cj4gPiAgICAgICAgICAgICAgICAgcGFpci0+dmFsdWUgfD0gUklTQ1ZfSFdQUk9CRV9JTUFfQzsK PiA+Cj4gPiAtICAgICAgIGlmIChoYXNfdmVjdG9yKCkgJiYgIXJpc2N2X2hhc192ZW5kb3JfZXh0 ZW5zaW9uX3VubGlrZWx5KFJJU0NWX0lTQV9WRU5ET1JfRVhUX1hUSEVBRFZFQ1RPUikpCj4gPiAr ICAgICAgIGlmIChoYXNfdmVjdG9yKCkgJiYKPiA+ICsgICAgICAgICAgICFfX3Jpc2N2X2lzYV92 ZW5kb3JfZXh0ZW5zaW9uX2F2YWlsYWJsZShOVUxMLCBSSVNDVl9JU0FfVkVORE9SX0VYVF9YVEhF QURWRUNUT1IpKQo+ID4gICAgICAgICAgICAgICAgIHBhaXItPnZhbHVlIHw9IFJJU0NWX0hXUFJP QkVfSU1BX1Y7Cj4gPgo+ID4gICAgICAgICAvKgo+ID4gQEAgLTExMiw3ICsxMTMsOCBAQCBzdGF0 aWMgdm9pZCBod3Byb2JlX2lzYV9leHQwKHN0cnVjdCByaXNjdl9od3Byb2JlICpwYWlyLAo+ID4g ICAgICAgICAgICAgICAgIEVYVF9LRVkoWkFDQVMpOwo+ID4gICAgICAgICAgICAgICAgIEVYVF9L RVkoWklDT05EKTsKPiA+Cj4gPiAtICAgICAgICAgICAgICAgaWYgKGhhc192ZWN0b3IoKSAmJiAh cmlzY3ZfaGFzX3ZlbmRvcl9leHRlbnNpb25fdW5saWtlbHkoUklTQ1ZfSVNBX1ZFTkRPUl9FWFRf WFRIRUFEVkVDVE9SKSkgewo+ID4gKyAgICAgICAgICAgICAgIGlmIChoYXNfdmVjdG9yKCkgJiYK PiA+ICsgICAgICAgICAgICAgICAgICAgIXJpc2N2X2hhc192ZW5kb3JfZXh0ZW5zaW9uX3VubGlr ZWx5KFJJU0NWX0lTQV9WRU5ET1JfRVhUX1hUSEVBRFZFQ1RPUikpIHsKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIEVYVF9LRVkoWlZCQik7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBF WFRfS0VZKFpWQkMpOwo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgRVhUX0tFWShaVktCKTsK PiA+IEBAIC0xMzksNiArMTQxLDU1IEBAIHN0YXRpYyB2b2lkIGh3cHJvYmVfaXNhX2V4dDAoc3Ry dWN0IHJpc2N2X2h3cHJvYmUgKnBhaXIsCj4gPiAgICAgICAgIHBhaXItPnZhbHVlICY9IH5taXNz aW5nOwo+ID4gIH0KPiA+Cj4gPiArc3RhdGljIHZvaWQgaHdwcm9iZV9pc2FfdmVuZG9yX2V4dDAo c3RydWN0IHJpc2N2X2h3cHJvYmUgKnBhaXIsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1cykKPiA+ICt7Cj4gPiArICAgICAg IGludCBjcHU7Cj4gPiArICAgICAgIHU2NCBtaXNzaW5nID0gMDsKPiA+ICsKPiA+ICsgICAgICAg cGFpci0+dmFsdWUgPSAwOwo+ID4gKwo+ID4gKyAgICAgICBzdHJ1Y3QgcmlzY3ZfaHdwcm9iZSBt dmVuZG9yaWQgPSB7Cj4gPiArICAgICAgICAgICAgICAgLmtleSA9IFJJU0NWX0hXUFJPQkVfS0VZ X01WRU5ET1JJRCwKPiA+ICsgICAgICAgICAgICAgICAudmFsdWUgPSAwCj4gPiArICAgICAgIH07 Cj4gPiArCj4gPiArICAgICAgIGh3cHJvYmVfYXJjaF9pZCgmbXZlbmRvcmlkLCBjcHVzKTsKPiA+ ICsKPiA+ICsgICAgICAgLyogU2V0IHZhbHVlIHRvIHplcm8gaWYgQ1BVcyBpbiB0aGUgc2V0IGRv IG5vdCBoYXZlIHRoZSBzYW1lIHZlbmRvci4gKi8KPiA+ICsgICAgICAgaWYgKG12ZW5kb3JpZC52 YWx1ZSA9PSAtMVVMTCkKPiA+ICsgICAgICAgICAgICAgICByZXR1cm47Cj4gPiArCj4gPiArICAg ICAgIC8qCj4gPiArICAgICAgICAqIExvb3AgdGhyb3VnaCBhbmQgcmVjb3JkIHZlbmRvciBleHRl bnNpb25zIHRoYXQgMSkgYW55b25lIGhhcywgYW5kCj4gPiArICAgICAgICAqIDIpIGFueW9uZSBk b2Vzbid0IGhhdmUuCj4gPiArICAgICAgICAqLwo+ID4gKyAgICAgICBmb3JfZWFjaF9jcHUoY3B1 LCBjcHVzKSB7Cj4gPiArICAgICAgICAgICAgICAgc3RydWN0IHJpc2N2X2lzYWluZm8gKmlzYXZl bmRvcmluZm8gPSAmaGFydF9pc2FfdmVuZG9yW2NwdV07Cj4gPiArCj4gPiArI2RlZmluZSBWRU5E T1JfRVhUX0tFWShleHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ID4gKyAgICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiA+ICsgICAgICAgICAgICAgICBpZiAoX19yaXNjdl9pc2FfdmVuZG9yX2V4dGVuc2lvbl9hdmFp bGFibGUoaXNhdmVuZG9yaW5mby0+aXNhLCAgICAgICAgICBcCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSSVNDVl9JU0FfVkVORE9S X0VYVF8jI2V4dCkpICAgXAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcGFpci0+dmFsdWUg fD0gUklTQ1ZfSFdQUk9CRV9WRU5ET1JfRVhUXyMjZXh0OyAgICAgICAgICAgICAgICAgIFwKPiA+ ICsgICAgICAgICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICBtaXNzaW5nIHw9IFJJU0NWX0hXUFJPQkVfVkVORE9SX0VYVF8jI2V4dDsgICAgICAgICAg ICAgICAgICAgICAgXAo+ID4gKyAgICAgICB9IHdoaWxlIChmYWxzZSkKPiA+ICsKPiA+ICsgICAg ICAgLyoKPiA+ICsgICAgICAgICogT25seSB1c2UgVkVORE9SX0VYVF9LRVkoKSBmb3IgZXh0ZW5z aW9ucyB3aGljaCBjYW4gYmUgZXhwb3NlZCB0byB1c2Vyc3BhY2UsCj4gPiArICAgICAgICAqIHJl Z2FyZGxlc3Mgb2YgdGhlIGtlcm5lbCdzIGNvbmZpZ3VyYXRpb24sIGFzIG5vIG90aGVyIGNoZWNr cywgYmVzaWRlcwo+ID4gKyAgICAgICAgKiBwcmVzZW5jZSBpbiB0aGUgaGFydF92ZW5kb3JfaXNh IGJpdG1hcCwgYXJlIG1hZGUuCj4gPiArICAgICAgICAqLwo+ID4gKyAgICAgICBWRU5ET1JfRVhU X0tFWShYVEhFQURWRUNUT1IpOwo+ID4gKwo+ID4gKyN1bmRlZiBWRU5ET1JfRVhUX0tFWQo+IAo+ IEhleSBDaGFybGllLAo+IFRoYW5rcyBmb3Igd3JpdGluZyB0aGlzIHVwISBBdCB0aGUgdmVyeSBs ZWFzdCBJIHRoaW5rIHRoZQo+IFRIRUFELXNwZWNpZmljIHN0dWZmIHNob3VsZCBwcm9iYWJseSBl bmQgdXAgaW4gaXRzIG93biBmaWxlLCBvdGhlcndpc2UKPiBpdCdsbCBnZXQgY2hhb3RpYyB3aXRo IHZlbmRvcnMgY2xhbW9yaW5nIHRvIGFkZCBzdHVmZiByaWdodCBoZXJlLgoKR3JlYXQgaWRlYSEK Cj4gV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhpcyBhcHByb2FjaDoKPiAgKiBXZSBsZWF2ZSBS SVNDVl9IV1BST0JFX01BWF9LRVkgYXMgdGhlIG1heCBrZXkgZm9yIHRoZSAiZ2VuZXJpYwo+IHdv cmxkIiwgZWcgNi1pc2gKPiAgKiBXZSBkZWZpbmUgdGhhdCBhbnkga2V5IGFib3ZlIDB4ODAwMDAw MDAwMDAwMDAwMCBpcyBpbiB0aGUgdmVuZG9yCj4gc3BhY2UsIHNvIHRoZSBtZWFuaW5nIG9mIHRo ZSBrZXlzIGRlcGVuZHMgZmlyc3Qgb24gdGhlIG12ZW5kb3JpZAo+IHZhbHVlLgo+ICAqIEluIHRo ZSBrZXJuZWwgY29kZSwgZWFjaCBuZXcgdmVuZG9yIGFkZHMgb24gdG8gYSBnbG9iYWwgc3RydWN0 LAo+IHdoaWNoIG1pZ2h0IGxvb2sgc29tZXRoaW5nIGxpa2U6Cj4gc3RydWN0IGh3cHJvYmVfdmVu ZG9yX3NwYWNlIHZlbmRvcl9zcGFjZVtdID0gewo+ICAgICAgICAgewo+ICAgICAgICAgICAgICAg ICAubXZlbmRvcmlkID0gVkVORE9SX1RIRUFELAo+ICAgICAgICAgICAgICAgICAubWF4X2h3cHJv YmVfa2V5ID0gVEhFQURfTUFYX0hXUFJPQkVfS0VZLCAvLyBjdXJyZW50bHkKPiAxIG9yIDB4ODAw MDAwMDAwMDAwMDAwMSB3aXRoIHdoYXQgeW91J3ZlIGdvdC4KPiAgICAgICAgICAgICAgICAgLmh3 cHJvYmVfZm4gPSB0aGVhZF9od3Byb2JlCj4gICAgICAgICB9LAo+ICAgICAgICAgLi4uCj4gfTsK PiAKPiAgKiBBIGh3cHJvYmVfdGhlYWQuYyBpbXBsZW1lbnRzIHRoZWFkX2h3cHJvYmUoKSwgYW5k IGlzIGNhbGxlZAo+IHdoZW5ldmVyIHRoZSBnZW5lcmljIGh3cHJvYmUgZW5jb3VudGVycyBhIGtl eSA+PTB4ODAwMDAwMDAwMDAwMDAwMC4KPiAgKiBHZW5lcmljIGNvZGUgZm9yIHNldHRpbmcgdXAg dGhlIFZEU08gY2FuIHRoZW4gc3RpbGwgY2FsbCB0aGUKPiB2ZW5kb3Itc3BlY2lmaWMgaHdwcm9i ZV9mbigpIHJlcGVhdGVkbHkgd2l0aCBhbiAiYWxsIENQVXMiIG1hc2sgZnJvbQo+IHRoZSBiYXNl IHRvIG1heF9od3Byb2JlX2tleSBhbmQgc2V0IHVwIHRoZSBjYWNoZWQgdGFibGVzIGluIHVzZXJz cGFjZS4KPiAgKiBTaW5jZSB0aGUgVkRTTyBkYXRhIGhhcyBsaW1pdGVkIHNwYWNlIHdlIG1heSBo YXZlIHRvIGNhcCB0aGUgbnVtYmVyCj4gb2YgdmVuZG9yIGtleXMgd2UgY2FjaGUgdG8gYmUgbG93 ZXIgdGhhbiBtYXhfaHdwcm9iZV9rZXkuIFNpbmNlIHRoZQo+IGRhdGEgaXRzZWxmIGlzIG5vdCBl eHBvc2VkIHRvIHVzZXJtb2RlIHdlIGNhbiByYWlzZSB0aGlzIGNhcCBsYXRlciBpZgo+IG5lZWRl ZC4KCkkga25vdyB2ZW5kb3IgZXh0ZW5zaW9ucyBhcmUga2luZCBvZiB0aGUgIndpbGQgd2VzdCIg b2YgcmlzY3YsIGJ1dCBpbgpzcGl0ZSBvZiB0aGF0IEkgd2FudCB0byBkZXNpZ24gYSBjb25zaXN0 ZW50IEFQSS4gVGhlIGlzc3VlIEkgaGFkIHdpdGgKaGF2aW5nIHRoaXMgInZlbmRvciBzcGFjZSIg Zm9yIGV4cG9zaW5nIHZlbmRvciBleHRlbnNpb25zIHdhcyB0aGF0IHRoaXMKaXMgc29tZXRoaW5n IHRoYXQgaXMgaW5oZXJlbnRseSB0aGUgc2FtZSBmb3IgYWxsIHZlbmRvcnMuIEkgc2VlIGEgdmVu ZG9yCnNwYWNlIGxpa2UgdGhpcyBtb3JlIGFwcGxpY2FibGUgZm9yIHNvbWV0aGluZyBsaWtlCiJS SVNDVl9IV1BST0JFX0tFWV9aSUNCT1pfQkxPQ0tfU0laRSIgd2hlcmUgYSB2ZW5kb3IgaGFzIGEg c3BlY2lmaWMKdmFsdWUgdGhleSB3b3VsZCBsaWtlIHRvIGV4cG9zZS4gSSBkbyBhZ3JlZSB0aGF0 IGhhdmluZyBhIHZlbmRvciBzcGFjZQppcyBhIGdvb2QgZGVzaWduIGNob2ljZSwgYnV0IEkgYW0g bm90IGNvbnZpbmNlZCB0aGF0IHZlbmRvciBleHRlbnNpb25zCmFyZSB0aGUgcHJvcGVyIHVzZS1j YXNlLgoKQnkgaGF2aW5nIFJJU0NWX0hXUFJPQkVfS0VZX1ZFTkRPUl9FWFRfMCB3ZSBjYW4gZXhw b3NlIHRoZSB2ZW5kb3IKZXh0ZW5zaW9ucyBpbiB0aGUgc2FtZSB3YXkgdGhhdCBzdGFuZGFyZCBl eHRlbnNpb25zIGFyZSBleHBvc2VkLCB3aXRoIGEKYml0bWFzayByZXByZXNlbnRpbmcgZWFjaCBl eHRlbnNpb24uIElmIHRoZXNlIGFyZSBpbnN0ZWFkIGluIHRoZSB2ZW5kb3IKc3BhY2UsIGVhY2gg dmVuZG9yIHdvdWxkIHByb2JhYmx5IGJlIGluY2xpbmVkIHRvIGludHJvZHVjZSBhIGtleSBsaWtl ClJJU0NWX0hXUFJPQkVfS0VZX1RIRUFEX0VYVF8wIHRoYXQgcmV0dXJucyBhIGJpdG1hc2sgb2Yg YWxsIG9mIHRoZSB0aGVhZAp2ZW5kb3IgZXh0ZW5zaW9ucy4gVGhpcyBkdXBsaWNhdGVkIGVmZm9y dCBpcyB3aGF0IEkgYW0gdHJ5aW5nIHRvIGF2b2lkLgpUaGUgYWx0ZXJuYXRpdmUgd291bGQgYmUg dGhhdCB2ZW5kb3JzIGhhdmUgYSBzZXBhcmF0ZSBrZXkgZm9yIGVhY2gKdmVuZG9yIGV4dGVuc2lv biB0aGV5IHdvdWxkIGxpa2UgdG8gZXhwb3NlLCBidXQgdGhhdCBpcyBzdHJpY3RseSBsZXNzCmVm ZmljaWVudCB0aGFuIHRoZSBleGlzdGluZyBiaXRtYXNrIHByb2JpbmcuCgpEbyB5b3UgdGhpbmsg dGhhdCBoYXZpbmcgdGhlIHZlbmRvciBzcGFjZSBpcyBhcHByb3ByaWF0ZSBmb3IgdmVuZG9yCmV4 dGVuc2lvbnMgZ2l2ZW4gbXkgY29uY2VybnM/CgotIENoYXJsaWUKCj4gCj4gCj4gLUV2YW4KPiAK PiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAvKiBOb3cgdHVybiBvZmYgcmVwb3J0aW5n IGZlYXR1cmVzIGlmIGFueSBDUFUgaXMgbWlzc2luZyBpdC4gKi8KPiA+ICsgICAgICAgcGFpci0+ dmFsdWUgJj0gfm1pc3Npbmc7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBib29sIGh3cHJvYmVf ZXh0MF9oYXMoY29uc3Qgc3RydWN0IGNwdW1hc2sgKmNwdXMsIHVuc2lnbmVkIGxvbmcgZXh0KQo+ ID4gIHsKPiA+ICAgICAgICAgc3RydWN0IHJpc2N2X2h3cHJvYmUgcGFpcjsKPiA+IEBAIC0yMTYs NiArMjY3LDEwIEBAIHN0YXRpYyB2b2lkIGh3cHJvYmVfb25lX3BhaXIoc3RydWN0IHJpc2N2X2h3 cHJvYmUgKnBhaXIsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBwYWlyLT52YWx1ZSA9IHJp c2N2X2Nib3pfYmxvY2tfc2l6ZTsKPiA+ICAgICAgICAgICAgICAgICBicmVhazsKPiA+Cj4gPiAr ICAgICAgIGNhc2UgUklTQ1ZfSFdQUk9CRV9LRVlfVkVORE9SX0VYVF8wOgo+ID4gKyAgICAgICAg ICAgICAgIGh3cHJvYmVfaXNhX3ZlbmRvcl9leHQwKHBhaXIsIGNwdXMpOwo+ID4gKyAgICAgICAg ICAgICAgIGJyZWFrOwo+ID4gKwo+ID4gICAgICAgICAvKgo+ID4gICAgICAgICAgKiBGb3IgZm9y d2FyZCBjb21wYXRpYmlsaXR5LCB1bmtub3duIGtleXMgZG9uJ3QgZmFpbCB0aGUgd2hvbGUKPiA+ ICAgICAgICAgICogY2FsbCwgYnV0IGdldCB0aGVpciBlbGVtZW50IGtleSBzZXQgdG8gLTEgYW5k IHZhbHVlIHNldCB0byAwCj4gPgo+ID4gLS0KPiA+IDIuNDQuMAo+ID4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK