From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A31E84D29 for ; Tue, 26 Mar 2024 07:25:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711437921; cv=none; b=NkUUwDV91aki1c5REyHh43u+Pvi2AKeVQ3bBNQ8H4eiD5rN4hiYMKIlgP+9IKZVTH6SXS8mJVNa4TSABTXJ4ZENNXrhurI8mlLWEXoFUiCeLZyCzIpG7aqUw+1zh1mJYY3w0fJKaoF7uv8k8GFfVVUX3ER54iSahLoYdJEAVrCw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711437921; c=relaxed/simple; bh=RCJd7q0o3ZJEoAOEbM8/cHPtVvSmD4lVXiyFy7D0BdQ=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=dWqqg9M3WBMKgpQHo7mamgFcvQvOEB8YK4vwEO9drZMFxZ0w9sLPM2DQLTPyV1UJheyPB64lWOLq0tgO0fbTFA3G5nny9w8OWRmd5jiHNt15IXSpxFpfbPwIJw6V+PndI6oOzwKsbghPT208rvdQg38wLDkihplBAqXN5xyAj3A= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=S5t9B9JF; arc=none smtp.client-ip=209.85.210.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="S5t9B9JF" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-6eabbce2d15so172539b3a.2 for ; Tue, 26 Mar 2024 00:25:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711437919; x=1712042719; darn=vger.kernel.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=ziezrdSsh0z8yLzL6N5wKqOMM+Xy/az5Lcsk/lp8gTM=; b=S5t9B9JF+F9ogctCTfN/kOz9bx+j2nIIIW3LXPRQoKp2Kqpbtc+IKHq5w67wAnKWss hzZteIrOjiIjbz2gRNlq8MeYRPjATUjurpLAcG/KNPgM5wGXJrqxc0CjzCW8Ywl6rjBD 8BarCTsPD0ZfvkjU9WK2sLP2xZ756FqfUkO2ReMvaAIU811hcUW1nBRpDp72BRBKIhzv mZkav0Pc66SYqVu/MuR9Xoy5wanFaB5jsW63A6xmsuMiruDDWbXvoxeER4kY9t70I4ox F4zpyTa6aLTfsW6WhNsFpU1RQ6cV8ADucjEdnaCIzYfnzwH7/qW5SuJgAfFi38skEHA9 /vbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711437919; x=1712042719; 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=ziezrdSsh0z8yLzL6N5wKqOMM+Xy/az5Lcsk/lp8gTM=; b=AoLQM0RBMqYc1/JWTYn+HgvqFF2arOWw60W0pNrfYWOu4Is5g+wqL022UDbPr3hBwF ByeHK272zU86On5+FU1kqoXRyypRXQ6Veurj4McuYBfs817zgw2xpUD1YBf4NkzL9q/Q rSLGG+geKFiA/K8dIzwQTxqSN6lvdgfs4LmhfDvvbKQ8IE9sVn/AlMhYOYPbpsxD+Zm9 KRa9wMttDeO/xaSqVg6YuyQpe0xI6KeY4Qb3vNStERMxagIZ6Yow7lkC9m1c+gDmY+t+ pSbDY8/0SiULn7J4Dk4R7TYOuTQ3eYdYqB65yr+LdnVvH2YGF4HfMKYD3iLJ+vLxn6ve 9p8A== X-Forwarded-Encrypted: i=1; AJvYcCX5nRxlxKd4Rsa0/U+2hn3sK0se3fHIOn8k3gvhDouaSqHdb+GlN1KSJuLasTJj3vvTf98mL7TuBTg0ZTPKeM8qaK2cg849OX34CX8DaQ== X-Gm-Message-State: AOJu0YxtxKjvUdHtwyIfQvtEdrRGAplTCnF13/8TvMfNbzBCCmwiw6T7 I2mCe9XaMFAk6uBep+XQCHuAi36dXosiT9rNRkf2x4kPnrIOlSEz8KQHzSaVCA== X-Google-Smtp-Source: AGHT+IHWfgFpUSpNvP9uI3sCuKgKc8JET+a3gmSe493+ufibi13U2SnauOugHZJYLmPcovLDrvBtjQ== X-Received: by 2002:a05:6a00:1d1b:b0:6ea:bd1a:5dd6 with SMTP id a27-20020a056a001d1b00b006eabd1a5dd6mr483754pfx.32.1711437919416; Tue, 26 Mar 2024 00:25:19 -0700 (PDT) Received: from thinkpad ([117.207.28.168]) by smtp.gmail.com with ESMTPSA id fh7-20020a056a00390700b006eaacc63435sm2874254pfb.173.2024.03.26.00.25.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Mar 2024 00:25:19 -0700 (PDT) Date: Tue, 26 Mar 2024 12:55:12 +0530 From: Manivannan Sadhasivam To: Christian Marangi Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Md Sadre Alam , Sricharan Ramabadhran , linux-mtd@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH v2 1/2] mtd: rawnand: qcom: Fix broken erase in misc_cmd_type in exec_op Message-ID: <20240326072512.GA8436@thinkpad> References: <20240325103053.24408-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20240325103053.24408-1-ansuelsmth@gmail.com> On Mon, Mar 25, 2024 at 11:30:47AM +0100, Christian Marangi wrote: > misc_cmd_type in exec_op have multiple problems. With commit a82990c8a409 > ("mtd: rawnand: qcom: Add read/read_start ops in exec_op path") it was > reworked and generalized but actually broke the handling of the > ERASE_BLOCK command. > > Additional logic was added to the erase command cycle without clear > explaination causing the erase command to be broken on testing it on > a ipq806x nandc. > > Fix the erase command by reverting the additional logic and only adding > the NAND_DEV0_CFG0 additional call (required for erase command). > > Fixes: a82990c8a409 ("mtd: rawnand: qcom: Add read/read_start ops in exec_op path") > Cc: stable@vger.kernel.org > Signed-off-by: Christian Marangi > --- > Changes v2: > - Split this and rework commit description and title > > drivers/mtd/nand/raw/qcom_nandc.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c > index b079605c84d3..19d76e345a49 100644 > --- a/drivers/mtd/nand/raw/qcom_nandc.c > +++ b/drivers/mtd/nand/raw/qcom_nandc.c > @@ -2830,9 +2830,8 @@ static int qcom_misc_cmd_type_exec(struct nand_chip *chip, const struct nand_sub > nandc_set_reg(chip, NAND_EXEC_CMD, 1); > > write_reg_dma(nandc, NAND_FLASH_CMD, instrs, NAND_BAM_NEXT_SGL); > - (q_op.cmd_reg == OP_BLOCK_ERASE) ? write_reg_dma(nandc, NAND_DEV0_CFG0, > - 2, NAND_BAM_NEXT_SGL) : read_reg_dma(nandc, > - NAND_FLASH_STATUS, 1, NAND_BAM_NEXT_SGL); > + if (q_op.cmd_reg == OP_BLOCK_ERASE) > + write_reg_dma(nandc, NAND_DEV0_CFG0, 2, NAND_BAM_NEXT_SGL); So this only avoids the call to, 'read_reg_dma(nandc, NAND_FLASH_STATUS, 1, NAND_BAM_NEXT_SGL)' if q_op.cmd_reg != OP_BLOCK_ERASE. But for q_op.cmd_reg == OP_BLOCK_ERASE, the result is the same. I'm wondering how it results in fixing the OP_BLOCK_ERASE command. Can you share the actual issue that you are seeing? Like error logs etc... - Mani -- மணிவண்ணன் சதாசிவம் 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 F0C36C54E67 for ; Tue, 26 Mar 2024 07:25:35 +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=PAZdRR5XDECNY1MYfZyyopu1LRdj4HtkGHuJWgMEJoc=; b=LyA888uQkknm3D T+kilFPaifpp55zfGoi2pQaOzTdxwIpYHiVGOD7uH6ZGeZ7qaWDwUK2dOf2RuEKfy+hImtQ42/iMZ ZxiluvF5kAokETp6yIX9ivqGVw7t5+EE8QEEKG/MzO+5IGv1QcfdDrybrHgQ0uOIYkWYg9baufCBF tej6dxD8gqQu89PfOlefMHf4KZA9mEN0II8/prvq9qiCHghCTq29MzKQa6n+XKxLUBSR27wxxaXIW l5GTwGGQjsq9pQwzGPfqNWmaRu7JNrycDAf9mfKkkt0aQchaIRnAPHJ2d6Orphf3OCOZ2jj5F5nv+ Yim/wdwehBgPML+1PoZA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rp1BX-00000003Qe2-1Khy; Tue, 26 Mar 2024 07:25:27 +0000 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rp1BR-00000003QdG-1OAr for linux-mtd@lists.infradead.org; Tue, 26 Mar 2024 07:25:23 +0000 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-6eabbce2d15so172540b3a.2 for ; Tue, 26 Mar 2024 00:25:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711437919; x=1712042719; 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=ziezrdSsh0z8yLzL6N5wKqOMM+Xy/az5Lcsk/lp8gTM=; b=twxt39X4uk8IZov8lIiiMGYCv1Xc/mDL+KssdJfzwAvaDBYVH5lwzRM5PLcSPTaRB1 6Jjwf01LAopEmy4FXGUoCFhRmG4jOTdzWldTPOC+C8+7be3l9HjX4bzu5k4T6KV6U7vP dK7xrUm+8juctcCAdHl7B3UKgnpD/VM3bERTnPIaWXHy/SB5OMvPZ31C859CXAzlUJBV oBWQF9GcAhdQbKhvIGwdM4VH7VYT5e5FYUDO5LhhOvC9b6/QYdag/QMhAviEt+3usTru o0vFhKIXPTS6V02ZhrqWifxG8KmHvdnEa+oRGB1WPR1LgUSyOo2T6dnQyPjWdBZ7CilD WPDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711437919; x=1712042719; 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=ziezrdSsh0z8yLzL6N5wKqOMM+Xy/az5Lcsk/lp8gTM=; b=kgfKJ0JXooZb1Fiv2vuDmM4KsFnXFSxX9Fb1gxTshzGNqT0I+c1S8kZB/6TdZmgEkT MOko5VftDv8K/ijb1av3BdnddMjZpY0lI4mfUgVsfb8BCnBBcHMd7aPzF9aU/b/M71tv cHgoA9eV2eR5RB8O63UEsei0YyawdG+z7+HaNZIb1dKBYbwL1BkZazWQveCe+fJUG0d2 cx5ZMQIsy95EMWM4YGrsHH1AaYhJ3JDbqJ73nMslcOw7OjRonVfDb5s/ZSh9r2STznT+ ZVbWFezxTpQX6XbIb7+gFfX5u3zIKVeA//yUWnDGtp4c2aZspDmrMVNVR9MiwJD3zyGD EQRg== X-Forwarded-Encrypted: i=1; AJvYcCWgE6WT1I6EtzL/BoIiQ7jhfFM8cv8O+YMv6EvRICYGhcuXefxpPJlyTCoUx9NhWd55E71PWmeRkdElSi0kXQ/c33rC5QbsaFcSA9aD2Q== X-Gm-Message-State: AOJu0YwYZK7+VGbYobACvhia0wjXX87A82ZyqjjCOpkFj25qvsRuFK3N G4Ky8CRKdkssOmIdgwNslBRCzHpTzQy4+54YyDhQuWszfsox6xC4ZI+ZOkGzwGBdt0opx78xL4E = X-Google-Smtp-Source: AGHT+IHWfgFpUSpNvP9uI3sCuKgKc8JET+a3gmSe493+ufibi13U2SnauOugHZJYLmPcovLDrvBtjQ== X-Received: by 2002:a05:6a00:1d1b:b0:6ea:bd1a:5dd6 with SMTP id a27-20020a056a001d1b00b006eabd1a5dd6mr483754pfx.32.1711437919416; Tue, 26 Mar 2024 00:25:19 -0700 (PDT) Received: from thinkpad ([117.207.28.168]) by smtp.gmail.com with ESMTPSA id fh7-20020a056a00390700b006eaacc63435sm2874254pfb.173.2024.03.26.00.25.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Mar 2024 00:25:19 -0700 (PDT) Date: Tue, 26 Mar 2024 12:55:12 +0530 From: Manivannan Sadhasivam To: Christian Marangi Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Md Sadre Alam , Sricharan Ramabadhran , linux-mtd@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH v2 1/2] mtd: rawnand: qcom: Fix broken erase in misc_cmd_type in exec_op Message-ID: <20240326072512.GA8436@thinkpad> References: <20240325103053.24408-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240325103053.24408-1-ansuelsmth@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240326_002522_383500_CB10AD82 X-CRM114-Status: GOOD ( 19.99 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org T24gTW9uLCBNYXIgMjUsIDIwMjQgYXQgMTE6MzA6NDdBTSArMDEwMCwgQ2hyaXN0aWFuIE1hcmFu Z2kgd3JvdGU6Cj4gbWlzY19jbWRfdHlwZSBpbiBleGVjX29wIGhhdmUgbXVsdGlwbGUgcHJvYmxl bXMuIFdpdGggY29tbWl0IGE4Mjk5MGM4YTQwOQo+ICgibXRkOiByYXduYW5kOiBxY29tOiBBZGQg cmVhZC9yZWFkX3N0YXJ0IG9wcyBpbiBleGVjX29wIHBhdGgiKSBpdCB3YXMKPiByZXdvcmtlZCBh bmQgZ2VuZXJhbGl6ZWQgYnV0IGFjdHVhbGx5IGJyb2tlIHRoZSBoYW5kbGluZyBvZiB0aGUKPiBF UkFTRV9CTE9DSyBjb21tYW5kLgo+IAo+IEFkZGl0aW9uYWwgbG9naWMgd2FzIGFkZGVkIHRvIHRo ZSBlcmFzZSBjb21tYW5kIGN5Y2xlIHdpdGhvdXQgY2xlYXIKPiBleHBsYWluYXRpb24gY2F1c2lu ZyB0aGUgZXJhc2UgY29tbWFuZCB0byBiZSBicm9rZW4gb24gdGVzdGluZyBpdCBvbgo+IGEgaXBx ODA2eCBuYW5kYy4KPiAKPiBGaXggdGhlIGVyYXNlIGNvbW1hbmQgYnkgcmV2ZXJ0aW5nIHRoZSBh ZGRpdGlvbmFsIGxvZ2ljIGFuZCBvbmx5IGFkZGluZwo+IHRoZSBOQU5EX0RFVjBfQ0ZHMCBhZGRp dGlvbmFsIGNhbGwgKHJlcXVpcmVkIGZvciBlcmFzZSBjb21tYW5kKS4KPiAKPiBGaXhlczogYTgy OTkwYzhhNDA5ICgibXRkOiByYXduYW5kOiBxY29tOiBBZGQgcmVhZC9yZWFkX3N0YXJ0IG9wcyBp biBleGVjX29wIHBhdGgiKQo+IENjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCj4gU2lnbmVkLW9m Zi1ieTogQ2hyaXN0aWFuIE1hcmFuZ2kgPGFuc3VlbHNtdGhAZ21haWwuY29tPgo+IC0tLQo+IENo YW5nZXMgdjI6Cj4gLSBTcGxpdCB0aGlzIGFuZCByZXdvcmsgY29tbWl0IGRlc2NyaXB0aW9uIGFu ZCB0aXRsZQo+IAo+ICBkcml2ZXJzL210ZC9uYW5kL3Jhdy9xY29tX25hbmRjLmMgfCA1ICsrLS0t Cj4gIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L3Fjb21fbmFuZGMuYyBiL2RyaXZlcnMv bXRkL25hbmQvcmF3L3Fjb21fbmFuZGMuYwo+IGluZGV4IGIwNzk2MDVjODRkMy4uMTlkNzZlMzQ1 YTQ5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L3Fjb21fbmFuZGMuYwo+ICsr KyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L3Fjb21fbmFuZGMuYwo+IEBAIC0yODMwLDkgKzI4MzAs OCBAQCBzdGF0aWMgaW50IHFjb21fbWlzY19jbWRfdHlwZV9leGVjKHN0cnVjdCBuYW5kX2NoaXAg KmNoaXAsIGNvbnN0IHN0cnVjdCBuYW5kX3N1Ygo+ICAJbmFuZGNfc2V0X3JlZyhjaGlwLCBOQU5E X0VYRUNfQ01ELCAxKTsKPiAgCj4gIAl3cml0ZV9yZWdfZG1hKG5hbmRjLCBOQU5EX0ZMQVNIX0NN RCwgaW5zdHJzLCBOQU5EX0JBTV9ORVhUX1NHTCk7Cj4gLQkocV9vcC5jbWRfcmVnID09IE9QX0JM T0NLX0VSQVNFKSA/IHdyaXRlX3JlZ19kbWEobmFuZGMsIE5BTkRfREVWMF9DRkcwLAo+IC0JMiwg TkFORF9CQU1fTkVYVF9TR0wpIDogcmVhZF9yZWdfZG1hKG5hbmRjLAo+IC0JTkFORF9GTEFTSF9T VEFUVVMsIDEsIE5BTkRfQkFNX05FWFRfU0dMKTsKPiArCWlmIChxX29wLmNtZF9yZWcgPT0gT1Bf QkxPQ0tfRVJBU0UpCj4gKwkJd3JpdGVfcmVnX2RtYShuYW5kYywgTkFORF9ERVYwX0NGRzAsIDIs IE5BTkRfQkFNX05FWFRfU0dMKTsKClNvIHRoaXMgb25seSBhdm9pZHMgdGhlIGNhbGwgdG8sICdy ZWFkX3JlZ19kbWEobmFuZGMsIE5BTkRfRkxBU0hfU1RBVFVTLCAxLApOQU5EX0JBTV9ORVhUX1NH TCknIGlmIHFfb3AuY21kX3JlZyAhPSBPUF9CTE9DS19FUkFTRS4gQnV0IGZvciBxX29wLmNtZF9y ZWcgPT0KT1BfQkxPQ0tfRVJBU0UsIHRoZSByZXN1bHQgaXMgdGhlIHNhbWUuCgpJJ20gd29uZGVy aW5nIGhvdyBpdCByZXN1bHRzIGluIGZpeGluZyB0aGUgT1BfQkxPQ0tfRVJBU0UgY29tbWFuZC4K CkNhbiB5b3Ugc2hhcmUgdGhlIGFjdHVhbCBpc3N1ZSB0aGF0IHlvdSBhcmUgc2VlaW5nPyBMaWtl IGVycm9yIGxvZ3MgZXRjLi4uCgotIE1hbmkKCi0tIArgrq7grqPgrr/grrXgrqPgr43grqPgrqng r40g4K6a4K6k4K6+4K6a4K6/4K614K6u4K+NCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBs aXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbXRk Lwo=