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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 80250C35FF3 for ; Fri, 21 Mar 2025 08:01:43 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvXIC-0001nX-Lw; Fri, 21 Mar 2025 03:59:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tvXI8-0001lo-En for grub-devel@gnu.org; Fri, 21 Mar 2025 03:59:45 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tvXI5-0003PS-P5 for grub-devel@gnu.org; Fri, 21 Mar 2025 03:59:43 -0400 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-3997205e43eso1292202f8f.0 for ; Fri, 21 Mar 2025 00:59:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1742543980; x=1743148780; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=elLx+kicnXHbGBWnyNEclZyxqrQiqJZozOhE+F96YNc=; b=fu/9woFuCxPA5ZOMXQY/6/BTkLtSjNwTmKKYEJ2/wdFuunT9wxO3CgaSl9Wl23VoP2 rTy2OnOcHmJzo1Vb9gQOZSkvNTjqV4WugFybiFCL+VgK6vIMRfzrKlveN952dOwA80ZR JWfbKwQ5nRpbEZKa5zxppFBR7JeLCZlROtiqp+R6sQ4OLHRlhhiDJzZrv9ZdxFhYAWmW 7ziIUdZ5vTRKEN0uPDlnIQiitAA+6ggtSPm7KAR8nhswIld7LyrjgsKQ8+45+R4pwIiz x+ZlPysUndv2utjpdV+dG/0sFoD6V0DYduiMlopaquBUDrxfhewKiPAN35H/z++BU+i8 dnCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742543980; x=1743148780; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=elLx+kicnXHbGBWnyNEclZyxqrQiqJZozOhE+F96YNc=; b=LgX2tizBpBFNyW9Z0I2hi8/VYd+09Z+CkzKF69mOpni8rG5iLIEY8Mw8KW0RmMcZmy I/DFq97SKCUKU9eAUTcVWRvvdmKX1bCEae8ppNqHwHgmHYsUPXeUOu6c9puJJGA9A7Lr QXF/bcv5Cv7G4eUq/ui6fHFEEkPW3I/JEJQ15pcUmr0U2sSGVYorV+oil/PMHYxu6F+j sVRo+jjhlRDE0otaz5bLrvp8byX8B7pg0eidyZsTJXH1xTnGGUVRZU3ymHkvrbb31JU8 f45cMnOHxbv6ZyE2chl2KUyCT08oOs6pIzvLhEHL93dc90+vuc3WW5XnZzn896WdcvuP 9hqA== X-Gm-Message-State: AOJu0Yxq22d0tOPtK0lrVGSefFNmQHx2qo7RpTWyj1XnxmbtGbKdpQ7b DopBM7NuNtIGTxXvGDI8cdC9YKc8XpZDcozbXwbGeeP3Gu6AFb7qfHl1P7m7gkJBVt7oN3e2RmX 3 X-Gm-Gg: ASbGncur9fxygvd5OYe+gr3ad9GA/zLymEBpNn9TRp8X7FFdWmJV/W9GPcMoU5YItqc +tR9NfjMRNXUuTD0mHrGWdm4EuYsYXiWpEXIpaH5ETbCgcNZpn0g5EISGdYxZVtQZEWcZXYotGE bvZYYLO9kBTljO5uyB491GwK8zisLgHWo5XKPwwMGBmSMskY4tjfQOSVulNbzowRxwI4S4jAR1N sAsjwblvptqC2D7AcFNKcreDalnrrNa8lAMEZec80T1US5NvbBJir8m173VIA8lmaWwg3L00B2S Suvb5bHxf0bkZfKrhI+L9GATqDUgLZHPC+9agc/hpeEccHfdC+zcOfwwc02SRmaTDSRc0lPE8m0 = X-Google-Smtp-Source: AGHT+IEfKePdUdJbUdGf+XDYM8w+DDMfS79vknw0DlfRUKCrCG5RjjsVKqUyupkKPWR7BhIO8lyzGg== X-Received: by 2002:a05:6000:18af:b0:391:888:f534 with SMTP id ffacd0b85a97d-3997f902e48mr2729741f8f.20.1742543979946; Fri, 21 Mar 2025 00:59:39 -0700 (PDT) Received: from localhost (111-240-129-118.dynamic-ip.hinet.net. [111.240.129.118]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3030f5d23a1sm1245304a91.11.2025.03.21.00.59.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 00:59:39 -0700 (PDT) To: The development of GNU GRUB Subject: [PATCH v4 06/12] tpm2_key_protector: Support NV index handles Date: Fri, 21 Mar 2025 15:59:02 +0800 Message-ID: <20250321075908.10523-7-glin@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321075908.10523-1-glin@suse.com> References: <20250321075908.10523-1-glin@suse.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::435; envelope-from=glin@suse.com; helo=mail-wr1-x435.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Gary Lin via Grub-devel Reply-To: The development of GNU GRUB Cc: Gary Lin , Daniel Kiper , mchang@suse.com, patrick.colp@oracle.com, Stefan Berger , jejb@linux.ibm.com, Glenn Washburn Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org UHJldmlvdXNseSwgTlYgaW5kZXggbW9kZSBvbmx5IHN1cHBvcnRlZCBwZXJzaXN0ZW50IGhhbmRs ZXMgd2hpY2ggYXJlCm9ubHkgZm9yIFRQTSBvYmplY3RzLgoKT24gdGhlIG90aGVyIGhhbmQsIHRo ZSAiTlYgaW5kZXgiIGhhbmRsZSBhbGxvd3MgdGhlIHVzZXItZGVmaW5lZCBkYXRhLApzbyBpdCBj YW4gYmUgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIGtleSBmaWxlIGFuZCBzdXBwb3J0IFRQTSAyLjAg S2V5CkZpbGUgZm9ybWF0IGltbWVkaWF0ZWx5LgoKVGhlIGZvbGxvd2luZyB0cG0yLXRvb2xzIGNv bW1hbmRzIHN0b3JlIHRoZSBnaXZlbiBrZXkgZmlsZSwgc2VhbGVkLnRwbSwKaW4gZWl0aGVyIFRQ TSAyLjAgS2V5IEZpbGUgZm9ybWF0IG9yIHRoZSByYXcgZm9ybWF0IGludG8gdGhlIE5WIGluZGV4 CmhhbmRsZSAweDEwMDAwMDAuCgogICMgdHBtMl9udmRlZmluZSAtQyBvIFwKICAgICAgLWEgIm93 bmVycmVhZHxvd25lcndyaXRlIiBcCiAgICAgIC1zICQoc3RhdCAtYyAlcyBzZWFsZWQudHBtKSBc CiAgICAgIDB4MTAwMDAwMAogICMgdHBtMl9udndyaXRlIC1DIG8gLWkgc2VhbGVkLnRwbSAweDEw MDAwMDAKClRvIHVuc2VhbCB0aGUga2V5IGluIEdSVUIsIGFkZCB0aGUgJ3RwbTJfa2V5X3Byb3Rl Y3Rvcl9pbml0JyBjb21tYW5kIHRvCmdydWIuY2ZnOgoKICB0cG0yX2tleV9wcm90ZWN0b3JfaW5p dCAtLW1vZGU9bnYgLS1udmluZGV4PTB4MTAwMDAwMAogIGNyeXB0b21vdW50IC11IDxVVUlEPiAt LXByb3RlY3RvciB0cG0yCgpUbyByZW1vdmUgdGhlIE5WIGluZGV4IGhhbmRsZToKCiAgIyB0cG0y X252dW5kZWZpbmUgLUMgbyAweDEwMDAwMDAKClNpZ25lZC1vZmYtYnk6IEdhcnkgTGluIDxnbGlu QHN1c2UuY29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xl LmNvbT4KLS0tCiAuLi4vY29tbWFuZHMvdHBtMl9rZXlfcHJvdGVjdG9yL21vZHVsZS5jICAgICAg fCA3MCArKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygr KSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL3RwbTJf a2V5X3Byb3RlY3Rvci9tb2R1bGUuYyBiL2dydWItY29yZS9jb21tYW5kcy90cG0yX2tleV9wcm90 ZWN0b3IvbW9kdWxlLmMKaW5kZXggNzk1ZjYxNTE4Li44NTdmMzc1M2YgMTAwNjQ0Ci0tLSBhL2dy dWItY29yZS9jb21tYW5kcy90cG0yX2tleV9wcm90ZWN0b3IvbW9kdWxlLmMKKysrIGIvZ3J1Yi1j b3JlL2NvbW1hbmRzL3RwbTJfa2V5X3Byb3RlY3Rvci9tb2R1bGUuYwpAQCAtMTEzMywxMCArMTEz Myw5IEBAIHRwbTJfcHJvdGVjdG9yX3Nya19yZWNvdmVyIChjb25zdCB0cG0yX3Byb3RlY3Rvcl9j b250ZXh0X3QgKmN0eCwKIH0KIAogc3RhdGljIGdydWJfZXJyX3QKLXRwbTJfcHJvdGVjdG9yX252 X3JlY292ZXIgKGNvbnN0IHRwbTJfcHJvdGVjdG9yX2NvbnRleHRfdCAqY3R4LAotCQkJICAgZ3J1 Yl91aW50OF90ICoqa2V5LCBncnViX3NpemVfdCAqa2V5X3NpemUpCit0cG0yX3Byb3RlY3Rvcl9s b2FkX3BlcnNpc3RlbnQgKGNvbnN0IHRwbTJfcHJvdGVjdG9yX2NvbnRleHRfdCAqY3R4LCBUUE1f SEFORExFX3Qgc2VhbGVkX2hhbmRsZSwKKwkJCQlncnViX3VpbnQ4X3QgKiprZXksIGdydWJfc2l6 ZV90ICprZXlfc2l6ZSkKIHsKLSAgVFBNX0hBTkRMRV90IHNlYWxlZF9oYW5kbGUgPSBjdHgtPm52 OwogICB0cG0ya2V5X3BvbGljeV90IHBvbGljeV9zZXEgPSBOVUxMOwogICBib29sIGR1bXBfcGNy ID0gZmFsc2U7CiAgIGdydWJfZXJyX3QgZXJyOwpAQCAtMTE2Myw2ICsxMTYyLDUxIEBAIHRwbTJf cHJvdGVjdG9yX252X3JlY292ZXIgKGNvbnN0IHRwbTJfcHJvdGVjdG9yX2NvbnRleHRfdCAqY3R4 LAogICByZXR1cm4gZXJyOwogfQogCitzdGF0aWMgZ3J1Yl9lcnJfdAordHBtMl9wcm90ZWN0b3Jf a2V5X2Zyb21fbnZpbmRleCAoY29uc3QgdHBtMl9wcm90ZWN0b3JfY29udGV4dF90ICpjdHgsIFRQ TV9IQU5ETEVfdCBudmluZGV4LAorCQkJCSBncnViX3VpbnQ4X3QgKiprZXksIGdydWJfc2l6ZV90 ICprZXlfc2l6ZSkKK3sKKyAgVFBNU19BVVRIX0NPTU1BTkRfdCBhdXRoQ21kID0gezB9OworICBU UE0yQl9OVl9QVUJMSUNfdCBudl9wdWJsaWM7CisgIFRQTTJCX05BTUVfdCBudl9uYW1lOworICBn cnViX3VpbnQxNl90IGRhdGFfc2l6ZTsKKyAgVFBNMkJfTUFYX05WX0JVRkZFUl90IGRhdGE7Cisg IFRQTV9SQ190IHJjOworCisgIC8qIEdldCB0aGUgZGF0YSBzaXplIGluIHRoZSBOViBpbmRleCBo YW5kbGUgKi8KKyAgcmMgPSBncnViX3RwbTJfbnZfcmVhZHB1YmxpYyAobnZpbmRleCwgTlVMTCwg Jm52X3B1YmxpYywgJm52X25hbWUpOworICBpZiAocmMgIT0gVFBNX1JDX1NVQ0NFU1MpCisgICAg cmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwgImZhaWxlZCB0byByZXRy aWV2ZSBpbmZvIGZyb20gMHgleCAoVFBNMl9OVl9SZWFkUHVibGljOiAweCV4KSIsIG52aW5kZXgs IHJjKTsKKworICBkYXRhX3NpemUgPSBudl9wdWJsaWMubnZQdWJsaWMuZGF0YVNpemU7CisgIGlm IChkYXRhX3NpemUgPiBUUE1fTUFYX05WX0JVRkZFUl9TSVpFKQorICAgIHJldHVybiBncnViX2Vy cm9yIChHUlVCX0VSUl9CQURfQVJHVU1FTlQsICJpbnN1ZmZpY2llbnQgZGF0YSBidWZmZXIiKTsK KworICAvKiBSZWFkIHRoZSBkYXRhIGZyb20gdGhlIE5WIGluZGV4IGhhbmRsZSAqLworICBhdXRo Q21kLnNlc3Npb25IYW5kbGUgPSBUUE1fUlNfUFc7CisgIHJjID0gZ3J1Yl90cG0yX252X3JlYWQg KFRQTV9SSF9PV05FUiwgbnZpbmRleCwgJmF1dGhDbWQsIGRhdGFfc2l6ZSwgMCwgJmRhdGEpOwor ICBpZiAocmMgIT0gVFBNX1JDX1NVQ0NFU1MpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJf RVJSX0JBRF9BUkdVTUVOVCwgImZhaWxlZCB0byByZWFkIGRhdGEgZnJvbSAweCV4IChUUE0yX05W X1JlYWQ6IDB4JXgpIiwgbnZpbmRleCwgcmMpOworCisgIHJldHVybiB0cG0yX3Byb3RlY3Rvcl9r ZXlfZnJvbV9idWZmZXIgKGN0eCwgZGF0YS5idWZmZXIsIGRhdGFfc2l6ZSwga2V5LCBrZXlfc2l6 ZSk7Cit9CisKK3N0YXRpYyBncnViX2Vycl90Cit0cG0yX3Byb3RlY3Rvcl9udl9yZWNvdmVyIChj b25zdCB0cG0yX3Byb3RlY3Rvcl9jb250ZXh0X3QgKmN0eCwKKwkJCSAgIGdydWJfdWludDhfdCAq KmtleSwgZ3J1Yl9zaXplX3QgKmtleV9zaXplKQoreworICBncnViX2Vycl90IGVycjsKKworICBp ZiAoVFBNX0hUX0lTX1BFUlNJU1RFTlQgKGN0eC0+bnYpID09IHRydWUpCisgICAgZXJyID0gdHBt Ml9wcm90ZWN0b3JfbG9hZF9wZXJzaXN0ZW50IChjdHgsIGN0eC0+bnYsIGtleSwga2V5X3NpemUp OworICBlbHNlIGlmIChUUE1fSFRfSVNfTlZJTkRFWCAoY3R4LT5udikgPT0gdHJ1ZSkKKyAgICBl cnIgPSB0cG0yX3Byb3RlY3Rvcl9rZXlfZnJvbV9udmluZGV4IChjdHgsIGN0eC0+bnYsIGtleSwg a2V5X3NpemUpOworICBlbHNlCisgICAgZXJyID0gR1JVQl9FUlJfQkFEX0FSR1VNRU5UOworCisg IHJldHVybiBlcnI7Cit9CisKIHN0YXRpYyBncnViX2Vycl90CiB0cG0yX3Byb3RlY3Rvcl9yZWNv dmVyIChjb25zdCB0cG0yX3Byb3RlY3Rvcl9jb250ZXh0X3QgKmN0eCwKIAkJCWdydWJfdWludDhf dCAqKmtleSwgZ3J1Yl9zaXplX3QgKmtleV9zaXplKQpAQCAtMTIxNSwxNCArMTI1OSwxNSBAQCB0 cG0yX3Byb3RlY3Rvcl9jaGVja19hcmdzICh0cG0yX3Byb3RlY3Rvcl9jb250ZXh0X3QgKmN0eCkK IAogICBpZiAoY3R4LT5tb2RlID09IFRQTTJfUFJPVEVDVE9SX01PREVfTlYgJiYKICAgICAgIChj dHgtPnRwbTJrZXkgIT0gTlVMTCB8fCBjdHgtPmtleWZpbGUgIT0gTlVMTCkpCi0gICAgcmV0dXJu IGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwgTl8oImluIE5WIEluZGV4IG1vZGUs IGEga2V5ZmlsZSBjYW5ub3QgYmUgc3BlY2lmaWVkIikpOworICAgIHJldHVybiBncnViX2Vycm9y IChHUlVCX0VSUl9CQURfQVJHVU1FTlQsIE5fKCJhIGtleSBmaWxlIGNhbm5vdCBiZSBzcGVjaWZp ZWQgd2hlbiB1c2luZyBOViBpbmRleCBtb2RlIikpOwogCi0gIGlmIChjdHgtPm1vZGUgPT0gVFBN Ml9QUk9URUNUT1JfTU9ERV9OViAmJiBjdHgtPnNyayAhPSAwKQotICAgIHJldHVybiBncnViX2Vy cm9yIChHUlVCX0VSUl9CQURfQVJHVU1FTlQsIE5fKCJpbiBOViBJbmRleCBtb2RlLCBhbiBTUksg Y2Fubm90IGJlIHNwZWNpZmllZCIpKTsKKyAgaWYgKGN0eC0+bW9kZSA9PSBUUE0yX1BST1RFQ1RP Ul9NT0RFX05WICYmIFRQTV9IVF9JU19QRVJTSVNURU5UIChjdHgtPm52KSA9PSB0cnVlICYmCisg ICAgICAoY3R4LT5zcmsgIT0gMCB8fCBjdHgtPnNya190eXBlLnR5cGUgIT0gVFBNX0FMR19FUlJP UikpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwgTl8oImFu IFNSSyBjYW5ub3QgYmUgc3BlY2lmaWVkIHdoZW4gdXNpbmcgTlYgaW5kZXggbW9kZSB3aXRoIGEg cGVyc2lzdGVudCBoYW5kbGUiKSk7CiAKICAgaWYgKGN0eC0+bW9kZSA9PSBUUE0yX1BST1RFQ1RP Ul9NT0RFX05WICYmCi0gICAgICBjdHgtPnNya190eXBlLnR5cGUgIT0gVFBNX0FMR19FUlJPUikK LSAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX0FSR1VNRU5ULCBOXygiaW4gTlYg SW5kZXggbW9kZSwgYW4gYXN5bW1ldHJpYyBrZXkgdHlwZSBjYW5ub3QgYmUgc3BlY2lmaWVkIikp OworICAgICAgKFRQTV9IVF9JU19QRVJTSVNURU5UIChjdHgtPm52KSA9PSBmYWxzZSAmJiBUUE1f SFRfSVNfTlZJTkRFWCAoY3R4LT5udikgPT0gZmFsc2UpKQorICAgIHJldHVybiBncnViX2Vycm9y IChHUlVCX0VSUl9CQURfQVJHVU1FTlQsIE5fKCJhbiBOViBpbmRleCBtdXN0IGJlIGVpdGhlciBh IHBlcnNpc3RlbnQgaGFuZGxlIG9yIGFuIE5WIGluZGV4IGhhbmRsZSB3aGVuIHVzaW5nIE5WIGlu ZGV4IG1vZGUiKSk7CiAKICAgLyogRGVmYXVsdHMgYXNzaWdubWVudCAqLwogICBpZiAoY3R4LT5i YW5rID09IFRQTV9BTEdfRVJST1IpCkBAIC0xMjM0LDggKzEyNzksMTMgQEAgdHBtMl9wcm90ZWN0 b3JfY2hlY2tfYXJncyAodHBtMl9wcm90ZWN0b3JfY29udGV4dF90ICpjdHgpCiAgICAgICBjdHgt PnBjcl9jb3VudCA9IDE7CiAgICAgfQogCi0gIGlmIChjdHgtPm1vZGUgPT0gVFBNMl9QUk9URUNU T1JfTU9ERV9TUksgJiYKLSAgICAgIGN0eC0+c3JrX3R5cGUudHlwZSA9PSBUUE1fQUxHX0VSUk9S KQorICAvKgorICAgKiBTZXQgRUNDX05JU1RfUDI1NiBhcyB0aGUgZGVmYXVsdCBTUksgd2hlbiB1 c2luZyBTUksgbW9kZSBvciBOViBtb2RlIHdpdGgKKyAgICogYW4gTlYgaW5kZXggaGFuZGxlCisg ICAqLworICBpZiAoY3R4LT5zcmtfdHlwZS50eXBlID09IFRQTV9BTEdfRVJST1IgJiYKKyAgICAg IChjdHgtPm1vZGUgPT0gVFBNMl9QUk9URUNUT1JfTU9ERV9TUksgfHwKKyAgICAgICAoY3R4LT5t b2RlID09IFRQTTJfUFJPVEVDVE9SX01PREVfTlYgJiYgVFBNX0hUX0lTX05WSU5ERVggKGN0eC0+ bnYpID09IHRydWUpKSkKICAgICB7CiAgICAgICBjdHgtPnNya190eXBlLnR5cGUgPSBUUE1fQUxH X0VDQzsKICAgICAgIGN0eC0+c3JrX3R5cGUuZGV0YWlsLmVjY19jdXJ2ZSA9IFRQTV9FQ0NfTklT VF9QMjU2OwotLSAKMi40My4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0 dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK