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 EFCB4C433EF for ; Wed, 23 Feb 2022 10:07:34 +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:MIME-Version:In-Reply-To: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=BySMoWHsDSpDFW6dZA6of6LsZfhyzUs//42S1XcHGik=; b=b2uDuQgCv7vAAg Psa1XagGXQ5pl2FcGNTaphvh4+oy3R6o0BPQvJ39Skwr95f6cGqf2a3xMeXCqGnH8K/vhEl/oz2GO PWYxJaX3aIavNYV5pm9Wk6pddTpWR31T1f22oeMSHtx82rt4ELr6VmrM8E0hp96IYhrCrveCQIy9j ywEqZLnVd3Mzvf6l39KBHKGs8XB65t+u9CHTSnE6HjZnFmPihbzfqRiiw6uuw/tlUeLI+Q+z04ezc StbxfN6qq8jrFcHQX0UUt0WmFZUI4xkf2vxUidJHtI/lshn9lGF3a6io1hbfCGIV47qqLEyS0VhCu XHY1jfYq8RMTxqL1Ra+g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nMoXD-00DbxB-GI; Wed, 23 Feb 2022 10:06:11 +0000 Received: from mail-db8eur05on2061b.outbound.protection.outlook.com ([2a01:111:f400:7e1a::61b] helo=EUR05-DB8-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nMoX9-00DbvG-FW for linux-arm-kernel@lists.infradead.org; Wed, 23 Feb 2022 10:06:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fd4RkrWN7FjnYFuVuaEM+c83aML/eUJ+KsrBPe+h5E4UsycyORdWUFZhV3ZfeL2UXWHsIxi5nbkIHLxf9TEiVwtOAsyLlS7Q59NOZA/SEPaY+0TYDFIh7zUNtTbjDWAWZZtcjbvR6Zo/vKLvoOFmC7YT6HlMCgmxRGmCJj+sYrL45GMrWDBQOnq66LfD3902kVQnhTyy0A9QXNGW3oG1Zm/rvkbMu5mlcgYN7kfd0y92KsNdpXWKQNM2kQFrA2gCAbPP8qlwKkqDnb5vrvzkXQXadvxWdA2TgauXK+crx7+xIbuFCUhwj6Kwx6uQ/jiEcnU8J9FW/4bwz0CZOqRsYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KBMtEJ5bYzzj4X9km9DfvSBDTLvYo281Oabd+PTVask=; b=EC7Pfx2auARo25pHVNSwvTRaijC8xgE/rIY3tLPrAfyQYR8MZHJYtDc1s4cj2AqVxaT9USdpFnI6IlTLO7TlC1bAuZqyLkAws35uP8Re+9jUVWAGZSMcyXwIFiERZZactUCYjS0oKLC9wKawVx1/T1DjIPWRQn3J871fe4jpeK9EYO/XQQBgC8uSAELDDHvgtyVAwR92T04DmK4eCOLhjfewEuXb7KfBnswP3egEIhIrFqeW2/TC694J+QPa5o3jurTlRea1mzfYiRDSOlUcAg30Pv/lIBLaoiSIBl83nHST4az9b1/NO0IYmXl3Vj6sHPNuUbtWfRpUNSyXbXDslQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KBMtEJ5bYzzj4X9km9DfvSBDTLvYo281Oabd+PTVask=; b=IlInizlsgQEOsi2ppcUEo7eDspTCc1Q1t7i513vUDu0GZ1B20RiKfgzO10df9iv8xZnwPgfQIwN7ilhruvV2E6McYoXWqkQeSYcR+8kFDcDWmElamhoOB2wxjpbrVYV0xBtgMnJ1OCdUnpb8Q279sNDmO7NGpt/RQDMRzaVgOBo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB4688.eurprd04.prod.outlook.com (2603:10a6:803:6a::30) by AM0PR04MB4482.eurprd04.prod.outlook.com (2603:10a6:208:73::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.22; Wed, 23 Feb 2022 10:06:02 +0000 Received: from VI1PR04MB4688.eurprd04.prod.outlook.com ([fe80::2936:6a6f:6e6f:161f]) by VI1PR04MB4688.eurprd04.prod.outlook.com ([fe80::2936:6a6f:6e6f:161f%6]) with mapi id 15.20.4995.026; Wed, 23 Feb 2022 10:06:02 +0000 Date: Wed, 23 Feb 2022 12:06:00 +0200 From: Abel Vesa To: "Peng Fan (OSS)" Cc: sboyd@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan Subject: Re: [PATCH V3 4/5] clk: imx: support fracn gppll Message-ID: References: <20220223064358.4097307-1-peng.fan@oss.nxp.com> <20220223064358.4097307-5-peng.fan@oss.nxp.com> Content-Disposition: inline In-Reply-To: <20220223064358.4097307-5-peng.fan@oss.nxp.com> X-ClientProxiedBy: VE1PR03CA0052.eurprd03.prod.outlook.com (2603:10a6:803:118::41) To VI1PR04MB4688.eurprd04.prod.outlook.com (2603:10a6:803:6a::30) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1841a11b-e5b8-45fb-aea5-08d9f6b418b9 X-MS-TrafficTypeDiagnostic: AM0PR04MB4482:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ue1Csi9TxwvEUpmuW0MyWPn2m60NWCjRpYmcmzDGB19RezXXkKhLEqrtgSL7LsPL+lf4eRw8ikeB3k+eZPvYpLxeFjseaARaC54Mo08R2w/Bgbx8Ru2EdL6EW4oNs2EJiNgMi6ZdGyT5OX1aVBpX0pIu1EUxCeF7Qgizhc26HCnrgl95rB8U81Q8FAlulhF6WZI533EY4xmWHCf63SSur2NLw3u/bWdaho83fA95x4nUT1Mnq3UB0S2lycYZz2LqDqX95QGJKGOn0+a9V98ahThMY4a/VEYU2LAQTjPmbRaV7PaLvuVgU1eOM+d/FoancnKg9W0bK+nse+CzRhQFl+qB8RyYaD4X+9bAsXDJ4oJs7gtvtihH2zKNllFylpQIO5bo9Dad4PBzRUyN7csZ7Kge6CLu1Pobg78sHH8+feM06o2xechUWN/kZ1ADTM6W5Rp94Eqt3whh0lxn/nUOlZm8WILXuQK98bYUEwhjN2OI2EsabH90CVHvUUEBiyjbE6j2ha7nR/eVQkv+Vz+Myzc/N1rJCbtA7mk83flYGgAGd0SSiK3av4yTE+Y9HvKb2klNfYuD7R/BZPQWckqwqwUM9Rj5YW56FRc3kIoA5sA/vDm7KwaOHzeQ04w8cQT6LhJK/TKtTPhZ4yszrFPdyG+SHFqZLuAfGARv4UB/3K/caCSEAHzUFchzQPWEFpEIhaayKPAqOWHk1SpCqPjwBHVuFyeiSEZmq5BBzIfW0dnRA+0HYQgtm5aNhmTjkNYZ2ohvwT0wPbu7eEi4w4yyZg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB4688.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(7916004)(4636009)(366004)(52116002)(53546011)(8936002)(7416002)(5660300002)(6506007)(9686003)(6512007)(30864003)(316002)(38100700002)(83380400001)(38350700002)(44832011)(8676002)(66946007)(26005)(508600001)(66476007)(66556008)(6862004)(6486002)(33716001)(4326008)(186003)(2906002)(86362001)(56820400005)(54580400013); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aW9NbU9CS1dFWDZOcjFwbGxMNUd1MjRJSGtGMVpxZFdQTGFOdTE2MmUzQWZQ?= =?utf-8?B?N29hQTAwdzJmQWE3MmZtZElrVE1xTkpUVzZucmhoT203NWNSSzYzdjBTdnAx?= =?utf-8?B?SllSdmhjNGw1K0ZFKzJCK0ZJV3JwYjJpYkJTNCtpNWJ6MmJaeUVtOUhOOVhk?= =?utf-8?B?alJzTTVhaWpjL0VjalgrSDBMcHFZdHBmakp1UHhSOXBUeWdhcnVaV3ZBNEdP?= =?utf-8?B?RStSQ21iSXNBOHVMS05MVnM5N3I0bUh3N09iY2U5NkF1c3JVYWMzVFNrK1Vu?= =?utf-8?B?UTNzVlk3S2FhdFpmOWNOTVBjWXdsbTIxd0JoRDZnaTVrRTJKL3RmelFhMmRH?= =?utf-8?B?cEJsalZOay9RdGdvNktKVks0QU15Z29VeWlvNm9tUE5HajFNY2xrZDl5M1Zz?= =?utf-8?B?d08ycTJJVTIzR21xbW4ySEc5MFFibmw1Vmp5RUtRUkRmZnZ5Y1VzeUVYV1hZ?= =?utf-8?B?cUdvRmwwNmk5c3JTbVNXOERHcXZiVE9wV1pMaVdHYllPdFo0YzYwS0IrT1Rk?= =?utf-8?B?U09QQlI3SkhKUittaFVRMUlDWHZIVExydDVKalVjVnZ5b2pJUXZYY1VVbnhW?= =?utf-8?B?a01yU1h5ZUlSc1ZFMW9mMTdLWXptZldtaWNLMkUxeVE0VjlXcXIrQllFVmlx?= =?utf-8?B?cHFoUlZiKytUMk00RmwxYjBGZVJmWFF2dUkrZ1FBYTREY1FVejYzUEI5bmhG?= =?utf-8?B?SitCbU9OTHdGaWtzQml1bGNXaFU4cTIzWnhnLzliM0xDbFljQjl6aTZ6amFh?= =?utf-8?B?VWVEbFUvRUtoc1Nia21VNmd4ZklrVy8wN1ZzWUg1UUJHb2lNbk1FOHRVU0Np?= =?utf-8?B?VHJURWJVamQrYVQ0M05KLzNVNmk0SHZqUm9pSXNQRjh4OTlkZy9YeGEwVjNU?= =?utf-8?B?YWU5TWRrUjBFT2s0TTZnc0V0akFUenhYaklheEg5M2Mxc3ZxWlZIc3dnNzE2?= =?utf-8?B?T29tZ2E0bWRwL1BTeHlGZ0VCb2ptbHR5VEVzVE1MOTF5bVhXYnpuV2NBaW54?= =?utf-8?B?Yng4V3U5RTM5N1dISmt5V2pUOFlkNjd4L2o3MTJYNHBRbENWQTMrQXpFUjlo?= =?utf-8?B?OGFKV2VMb3M2MjcrOC9FOWVQM2lnNVVCWlBJalZoRUdXZGFBUk00ZFBFdGJu?= =?utf-8?B?R3lEQURScXVoT2t6YlVhZzJDR3Fza1ZOQkJwQWl0TTdrRDliSzRMcFl3MHV6?= =?utf-8?B?UEcxSCtwNG5xVzR4R1VQR0dsZyt5TC8ycWZWR2RZYXVhckRsd2ZuMXRmN3dm?= =?utf-8?B?N2JlS3FtY1ZJSkZGNk9BRzRXMFkxNVoxNHd4Y3FLK3kxdkFaTXFITzBkdUVk?= =?utf-8?B?NGxWM3hUZ1ZtYmF3N1lqdXhNUFVhQmlxMWEzYUJNQU9raWdhVjM5RHZFbTZv?= =?utf-8?B?OFA1MUpVTzFLdXptekYzMldrVDhOMFpCdFljOUNwYWNFME1hZUo4SCtIbXJP?= =?utf-8?B?UHBHeFQ4QUw0NnJ1aHlxV001SXFKUjNzd3kxam1HZWV4M2UxbklOaWt6ODNa?= =?utf-8?B?RkVpY083cTZXNFZ1czF1SzVMOEhyeXEveFE2N0tYVWIzclZaRmhrL1lHR3pS?= =?utf-8?B?a1pNUGJpU0FTS3lQSUdVdm1DWGFMMlhmRGlXTHRhMUNvM2o0WGRIeGtOdmR3?= =?utf-8?B?d0NQYy9qRG9KU20ybHhLaGdyN3lWd1BIZWNMOUZoQ0wrT3IxNGhCdDg4VXRV?= =?utf-8?B?YWtZWU5IWjJYaUpWWUE1aW9RZlhWYmpzMko1aVV6MXg1ejgya3pyQk14dnZT?= =?utf-8?B?OHcwQW04Ui9XR0pvV0NwYVI1bEZPTEdrNDRzRnZ6RmYwYXh0K2ViTENFQk9F?= =?utf-8?B?RjZlNlRleUpnZHNHbWNGU2tyQTFwWWFnVGhiZ0F3MmYwR0ladlBJTngrTkh4?= =?utf-8?B?bTJHSDJEVVNvbDNwWWF0eEI2dEFHQ2xPVXM2TW16UExCaGRhYjBlUFNTbmlZ?= =?utf-8?B?VUo3VlBkSW5rOGlsQjRkUll2Y3dtYTAxNGdwd2hRdWZLZXIxSXVmMVRXdVU3?= =?utf-8?B?L0pvYjVVeWtqU1pDQlFVK3RVdTQ3d2FyQjRaT3VhTHVqR0xpaWRUWG5WVE9n?= =?utf-8?B?Z3NJUzFUdE9ZSTlaTkNTMW43VkJKczBZbkx1MnNveGQ0QjVwdnkyY2pMTDcz?= =?utf-8?B?UmZQbXV3dTVZcU5mdUVCejhhU0pwaHlUcWJQRnVjNFptOW5UMzVJb1crT2tj?= =?utf-8?Q?NOAVdnHc1eOcuQOBs9ZEQIo=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1841a11b-e5b8-45fb-aea5-08d9f6b418b9 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB4688.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2022 10:06:02.0878 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wZh9V1CiClbf7Uwq55Vg4TnkSQcwCt3BNw0IxxNzdM3VVym3e/lkDSLbaHxlKKTlGPl4/IBs7rrMFE8OdXSM6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4482 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220223_020607_803522_D10D3C8D X-CRM114-Status: GOOD ( 27.76 ) 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 T24gMjItMDItMjMgMTQ6NDM6NTcsIFBlbmcgRmFuIChPU1MpIHdyb3RlOgo+IEZyb206IFBlbmcg RmFuIDxwZW5nLmZhbkBueHAuY29tPgo+IAo+IFRoaXMgUExMIG1vZHVsZSBpcyBhIEZyYWN0aW9u YWwtTiBzeW50aGVzaXplciwKPiBzdXBwb3J0aW5nIDMwLWJpdCBudW1lcmF0b3IgYW5kIGRlbm9t aW5hdG9yLiBOdW1lcmF0b3IgaXMgYSBzaWduZWQKPiBudW1iZXIuIEl0IGhhcyBmZWF0dXJlIHRv IGFkanVzdCBmcmFjdGlvbmFsIHBvcnRpb24gb2YgZmVlZGJhY2sKPiBkaXZpZGVyIGR5bmFtaWNh bGx5LiBUaGlzIGZyYWNuIGdwcGxsIGlzIHVzZWQgaW4gaS5NWDkzLgo+IAo+IFNpZ25lZC1vZmYt Ynk6IFBlbmcgRmFuIDxwZW5nLmZhbkBueHAuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2Nsay9pbXgv TWFrZWZpbGUgICAgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2Nsay9pbXgvY2xrLWZyYWNuLWdw cGxsLmMgfCAzMjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvY2xr L2lteC9jbGsuaCAgICAgICAgICAgICB8ICAyMSArKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDM1MCBp bnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9pbXgvY2xrLWZy YWNuLWdwcGxsLmMKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvaW14L01ha2VmaWxlIGIv ZHJpdmVycy9jbGsvaW14L01ha2VmaWxlCj4gaW5kZXggMzZjMDQ5MjJkNzg5Li42MGM4YTRiYjc1 NzQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9jbGsvaW14L01ha2VmaWxlCj4gKysrIGIvZHJpdmVy cy9jbGsvaW14L01ha2VmaWxlCj4gQEAgLTUsNiArNSw3IEBAIG14Yy1jbGstb2JqcyArPSBjbGst YnVzeS5vCj4gIG14Yy1jbGstb2JqcyArPSBjbGstY29tcG9zaXRlLTd1bHAubwo+ICBteGMtY2xr LW9ianMgKz0gY2xrLWNvbXBvc2l0ZS04bS5vCj4gIG14Yy1jbGstb2JqcyArPSBjbGstY29tcG9z aXRlLTkzLm8KPiArbXhjLWNsay1vYmpzICs9IGNsay1mcmFjbi1ncHBsbC5vCj4gIG14Yy1jbGst b2JqcyArPSBjbGstY3B1Lm8KPiAgbXhjLWNsay1vYmpzICs9IGNsay1kaXZpZGVyLWdhdGUubwo+ ICBteGMtY2xrLW9ianMgKz0gY2xrLWZpeHVwLWRpdi5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Y2xrL2lteC9jbGstZnJhY24tZ3BwbGwuYyBiL2RyaXZlcnMvY2xrL2lteC9jbGstZnJhY24tZ3Bw bGwuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi42Yzk5NDZh NGJkYjcKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9jbGsvaW14L2Nsay1mcmFjbi1n cHBsbC5jCj4gQEAgLTAsMCArMSwzMjggQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAKPiArLyoKPiArICogQ29weXJpZ2h0IDIwMjEgTlhQCj4gKyAqLwo+ICsKPiArI2lu Y2x1ZGUgPGxpbnV4L2JpdHMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgo+ ICsjaW5jbHVkZSA8bGludXgvZXJyLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L2lvLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KPiArCj4g KyNpbmNsdWRlICJjbGsuaCIKPiArCj4gKyNkZWZpbmUgUExMX0NUUkwJCTB4MAo+ICsjZGVmaW5l IENMS01VWF9CWVBBU1MJCUJJVCgyKQo+ICsjZGVmaW5lIENMS01VWF9FTgkJQklUKDEpCj4gKyNk ZWZpbmUgUE9XRVJVUF9NQVNLCQlCSVQoMCkKPiArCj4gKyNkZWZpbmUgUExMX0FOQV9QUkcJCTB4 MTAKPiArI2RlZmluZSBQTExfU1BSRUFEX1NQRUNUUlVNCTB4MzAKPiArCj4gKyNkZWZpbmUgUExM X05VTUVSQVRPUgkJMHg0MAo+ICsjZGVmaW5lIFBMTF9NRk5fTUFTSwkJR0VOTUFTSygzMSwgMikK PiArI2RlZmluZSBQTExfTUZOX1NISUZUCQkyCj4gKwo+ICsjZGVmaW5lIFBMTF9ERU5PTUlOQVRP UgkJMHg1MAo+ICsjZGVmaW5lIFBMTF9NRkRfTUFTSwkJR0VOTUFTSygyOSwgMCkKPiArCj4gKyNk ZWZpbmUgUExMX0RJVgkJCTB4NjAKPiArI2RlZmluZSBQTExfTUZJX01BU0sJCUdFTk1BU0soMjQs IDE2KQo+ICsjZGVmaW5lIFBMTF9NRklfU0hJRlQJCTE2Cj4gKyNkZWZpbmUgUExMX1JESVZfTUFT SwkJR0VOTUFTSygxNSwgMTMpCj4gKyNkZWZpbmUgUExMX1JESVZfU0hJRlQJCTEzCj4gKyNkZWZp bmUgUExMX09ESVZfTUFTSwkJR0VOTUFTSyg3LCAwKQo+ICsKPiArI2RlZmluZSBQTExfREZTX0NU UkwoeCkJCSgweDcwICsgKHgpICogMHgxMCkKPiArCj4gKyNkZWZpbmUgUExMX1NUQVRVUwkJMHhG MAo+ICsjZGVmaW5lIExPQ0tfU1RBVFVTCQlCSVQoMCkKPiArCj4gKyNkZWZpbmUgREZTX1NUQVRV UwkJMHhGNAo+ICsKPiArI2RlZmluZSBMT0NLX1RJTUVPVVRfVVMJCTIwMAo+ICsKPiArI2RlZmlu ZSBQTExfRlJBQ05fR1AoX3JhdGUsIF9tZmksIF9tZm4sIF9tZmQsIF9yZGl2LCBfb2RpdikJXAo+ ICsJewkJCQkJCQlcCj4gKwkJLnJhdGUJPQkoX3JhdGUpLAkJCVwKPiArCQkubWZpCT0JKF9tZmkp LAkJCQlcCj4gKwkJLm1mbgk9CShfbWZuKSwJCQkJXAo+ICsJCS5tZmQJPQkoX21mZCksCQkJCVwK PiArCQkucmRpdgk9CShfcmRpdiksCQkJXAo+ICsJCS5vZGl2CT0JKF9vZGl2KSwJCQlcCj4gKwl9 Cj4gKwo+ICtzdHJ1Y3QgY2xrX2ZyYWNuX2dwcGxsIHsKPiArCXN0cnVjdCBjbGtfaHcJCQlodzsK PiArCXZvaWQgX19pb21lbQkJCSpiYXNlOwo+ICsJY29uc3Qgc3RydWN0IGlteF9mcmFjbl9ncHBs bF9yYXRlX3RhYmxlICpyYXRlX3RhYmxlOwo+ICsJaW50IHJhdGVfY291bnQ7Cj4gK307Cj4gKwo+ ICsjZGVmaW5lIHRvX2Nsa19mcmFjbl9ncHBsbChfaHcpIGNvbnRhaW5lcl9vZihfaHcsIHN0cnVj dCBjbGtfZnJhY25fZ3BwbGwsIGh3KQo+ICsKPiArLyoKPiArICogRnZjbyA9IPCdkLnwnZGf8J2R kvCdkZPiiJko8J2RgPCdkLnwnZC8K/CdkYDwnZC58J2RgS/wnZGA8J2QufCdkLcpCj4gKyAqIEZv dXQgPSBGdmNvIC8gKHJkaXYgKiBvZGl2KQo+ICsgKi8KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBp bXhfZnJhY25fZ3BwbGxfcmF0ZV90YWJsZSBmcmFjbl90YmxbXSA9IHsKPiArCVBMTF9GUkFDTl9H UCg2NTAwMDAwMDBVLCA4MSwgMCwgMCwgMCwgMyksCj4gKwlQTExfRlJBQ05fR1AoNTk0MDAwMDAw VSwgMTk4LCAwLCAwLCAwLCA4KSwKPiArCVBMTF9GUkFDTl9HUCg1NjAwMDAwMDBVLCA3MCwgMCwg MCwgMCwgMyksCj4gKwlQTExfRlJBQ05fR1AoNDAwMDAwMDAwVSwgNTAsIDAsIDAsIDAsIDMpLAo+ ICsJUExMX0ZSQUNOX0dQKDM5MzIxNjAwMFUsIDgxLCA5MiwgMTAwLCAwLCA1KQo+ICt9Owo+ICsK PiArc3RydWN0IGlteF9mcmFjbl9ncHBsbF9jbGsgaW14X2ZyYWNuX2dwcGxsID0gewo+ICsJLnJh dGVfdGFibGUgPSBmcmFjbl90YmwsCj4gKwkucmF0ZV9jb3VudCA9IEFSUkFZX1NJWkUoZnJhY25f dGJsKSwKPiArfTsKPiArRVhQT1JUX1NZTUJPTF9HUEwoaW14X2ZyYWNuX2dwcGxsKTsKPiArCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW14X2ZyYWNuX2dwcGxsX3JhdGVfdGFibGUgKgo+ICtpbXhf Z2V0X3BsbF9zZXR0aW5ncyhzdHJ1Y3QgY2xrX2ZyYWNuX2dwcGxsICpwbGwsIHVuc2lnbmVkIGxv bmcgcmF0ZSkKPiArewo+ICsJY29uc3Qgc3RydWN0IGlteF9mcmFjbl9ncHBsbF9yYXRlX3RhYmxl ICpyYXRlX3RhYmxlID0gcGxsLT5yYXRlX3RhYmxlOwo+ICsJaW50IGk7Cj4gKwo+ICsJZm9yIChp ID0gMDsgaSA8IHBsbC0+cmF0ZV9jb3VudDsgaSsrKQo+ICsJCWlmIChyYXRlID09IHJhdGVfdGFi bGVbaV0ucmF0ZSkKPiArCQkJcmV0dXJuICZyYXRlX3RhYmxlW2ldOwo+ICsKPiArCXJldHVybiBO VUxMOwo+ICt9Cj4gKwo+ICtzdGF0aWMgbG9uZyBjbGtfZnJhY25fZ3BwbGxfcm91bmRfcmF0ZShz dHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAo+ICsJCQkJICAgICAgIHVuc2ln bmVkIGxvbmcgKnByYXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgY2xrX2ZyYWNuX2dwcGxsICpwbGwgPSB0 b19jbGtfZnJhY25fZ3BwbGwoaHcpOwo+ICsJY29uc3Qgc3RydWN0IGlteF9mcmFjbl9ncHBsbF9y YXRlX3RhYmxlICpyYXRlX3RhYmxlID0gcGxsLT5yYXRlX3RhYmxlOwo+ICsJaW50IGk7Cj4gKwo+ ICsJLyogQXNzdW1taW5nIHJhdGVfdGFibGUgaXMgaW4gZGVzY2VuZGluZyBvcmRlciAqLwo+ICsJ Zm9yIChpID0gMDsgaSA8IHBsbC0+cmF0ZV9jb3VudDsgaSsrKQo+ICsJCWlmIChyYXRlID49IHJh dGVfdGFibGVbaV0ucmF0ZSkKPiArCQkJcmV0dXJuIHJhdGVfdGFibGVbaV0ucmF0ZTsKPiArCj4g KwlpZiAoaSA9PSBwbGwtPnJhdGVfY291bnQpCj4gKwkJcHJfZXJyKCJOb3QgYWJsZSB0byByb3Vu ZCByYXRlIGZvciAlczogJWx1XG4iLCBjbGtfaHdfZ2V0X25hbWUoaHcpLCByYXRlKTsKPiArCj4g KwkvKiByZXR1cm4gbWluaW11bSBzdXBwb3J0ZWQgdmFsdWUgKi8KPiArCXJldHVybiByYXRlX3Rh YmxlW2kgLSAxXS5yYXRlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGtfZnJh Y25fZ3BwbGxfcmVjYWxjX3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcGFy ZW50X3JhdGUpCj4gK3sKPiArCXN0cnVjdCBjbGtfZnJhY25fZ3BwbGwgKnBsbCA9IHRvX2Nsa19m cmFjbl9ncHBsbChodyk7Cj4gKwljb25zdCBzdHJ1Y3QgaW14X2ZyYWNuX2dwcGxsX3JhdGVfdGFi bGUgKnJhdGVfdGFibGUgPSBwbGwtPnJhdGVfdGFibGU7Cj4gKwl1MzIgcGxsX251bWVyYXRvciwg cGxsX2Rlbm9taW5hdG9yLCBwbGxfZGl2Owo+ICsJdTMyIG1maSwgbWZuLCBtZmQsIHJkaXYsIG9k aXY7Cj4gKwl1NjQgZnZjbyA9IHBhcmVudF9yYXRlOwo+ICsJbG9uZyByYXRlID0gMDsKPiArCWlu dCBpOwo+ICsKPiArCXBsbF9udW1lcmF0b3IgPSByZWFkbF9yZWxheGVkKHBsbC0+YmFzZSArIFBM TF9OVU1FUkFUT1IpOwo+ICsJbWZuID0gKHBsbF9udW1lcmF0b3IgJiBQTExfTUZOX01BU0spID4+ IFBMTF9NRk5fU0hJRlQ7Cj4gKwo+ICsJcGxsX2Rlbm9taW5hdG9yID0gcmVhZGxfcmVsYXhlZChw bGwtPmJhc2UgKyBQTExfREVOT01JTkFUT1IpOwo+ICsJbWZkID0gcGxsX2Rlbm9taW5hdG9yICYg UExMX01GRF9NQVNLOwo+ICsKPiArCXBsbF9kaXYgPSByZWFkbF9yZWxheGVkKHBsbC0+YmFzZSAr IFBMTF9ESVYpOwo+ICsJbWZpID0gKHBsbF9kaXYgJiBQTExfTUZJX01BU0spID4+IFBMTF9NRklf U0hJRlQ7Cj4gKwo+ICsJcmRpdiA9IChwbGxfZGl2ICYgUExMX1JESVZfTUFTSykgPj4gUExMX1JE SVZfU0hJRlQ7Cj4gKwlyZGl2ID0gcmRpdiArIDE7Cj4gKwlvZGl2ID0gcGxsX2RpdiAmIFBMTF9P RElWX01BU0s7Cj4gKwlzd2l0Y2ggKG9kaXYpIHsKPiArCWNhc2UgMDoKPiArCQlvZGl2ID0gMjsK PiArCQlicmVhazsKPiArCWNhc2UgMToKPiArCQlvZGl2ID0gMzsKPiArCQlicmVhazsKPiArCWRl ZmF1bHQ6Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIFNvbWV0aW1lcywgdGhl IHJlY2FsY3VsYXRlZCByYXRlIGhhcyBkZXZpYXRpb24gZHVlIHRvCj4gKwkgKiB0aGUgZnJhYyBw YXJ0LiBTbyBmaW5kIHRoZSBhY2N1cmF0ZSBwbGwgcmF0ZSBmcm9tIHRoZSB0YWJsZQo+ICsJICog Zmlyc3QsIGlmIG5vIG1hdGNoIHJhdGUgaW4gdGhlIHRhYmxlLCB1c2UgdGhlIHJhdGUgY2FsY3Vs YXRlZAo+ICsJICogZnJvbSB0aGUgZXF1YXRpb24gYmVsb3cuCj4gKwkgKi8KPiArCWZvciAoaSA9 IDA7IGkgPCBwbGwtPnJhdGVfY291bnQ7IGkrKykgewo+ICsJCWlmIChyYXRlX3RhYmxlW2ldLm1m biA9PSBtZm4gJiYgcmF0ZV90YWJsZVtpXS5tZmkgPT0gbWZpICYmCj4gKwkJICAgIHJhdGVfdGFi bGVbaV0ubWZkID09IG1mZCAmJiByYXRlX3RhYmxlW2ldLnJkaXYgPT0gcmRpdiAmJgo+ICsJCSAg ICByYXRlX3RhYmxlW2ldLm9kaXYgPT0gb2RpdikKPiArCQkJcmF0ZSA9IHJhdGVfdGFibGVbaV0u cmF0ZTsKPiArCX0KPiArCj4gKwkvKiBGdmNvID0g8J2QufCdkZ/wnZGS8J2Rk+KImSjwnZGA8J2Q ufCdkLwr8J2RgPCdkLnwnZGBL/CdkYDwnZC58J2QtykgKi8KPiArCWZ2Y28gPSBmdmNvICogbWZp ICsgZnZjbyAqIG1mbiAvIG1mZDsKPiArCj4gKwlkb19kaXYoZnZjbywgcmRpdiAqIG9kaXYpOwo+ ICsKPiArCXJldHVybiByYXRlID8gKHVuc2lnbmVkIGxvbmcpIHJhdGUgOiAodW5zaWduZWQgbG9u ZylmdmNvOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGNsa19mcmFjbl9ncHBsbF93YWl0X2xvY2so c3RydWN0IGNsa19mcmFjbl9ncHBsbCAqcGxsKQo+ICt7Cj4gKwl1MzIgdmFsOwo+ICsKPiArCXJl dHVybiByZWFkbF9wb2xsX3RpbWVvdXQocGxsLT5iYXNlICsgUExMX1NUQVRVUywgdmFsLAo+ICsJ CQkJICB2YWwgJiBMT0NLX1NUQVRVUywgMCwgTE9DS19USU1FT1VUX1VTKTsKPiArfQo+ICsKPiAr c3RhdGljIGludCBjbGtfZnJhY25fZ3BwbGxfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVu c2lnbmVkIGxvbmcgZHJhdGUsCj4gKwkJCQkgICAgdW5zaWduZWQgbG9uZyBwcmF0ZSkKPiArewo+ ICsJc3RydWN0IGNsa19mcmFjbl9ncHBsbCAqcGxsID0gdG9fY2xrX2ZyYWNuX2dwcGxsKGh3KTsK PiArCWNvbnN0IHN0cnVjdCBpbXhfZnJhY25fZ3BwbGxfcmF0ZV90YWJsZSAqcmF0ZTsKPiArCXUz MiB0bXAsIHBsbF9kaXYsIGFuYV9tZm47Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJhdGUgPSBpbXhf Z2V0X3BsbF9zZXR0aW5ncyhwbGwsIGRyYXRlKTsKPiArCWlmICghcmF0ZSkgewo+ICsJCXByX2Vy cigiJXM6IEludmFsaWQgcmF0ZSA6ICVsdSBmb3IgcGxsIGNsayAlc1xuIiwgX19mdW5jX18sCj4g KwkJCWRyYXRlLCBjbGtfaHdfZ2V0X25hbWUoaHcpKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiAr CX0KPiArCj4gKwkvKiBEaXNhYmxlIG91dHB1dCAqLwo+ICsJdG1wID0gcmVhZGxfcmVsYXhlZChw bGwtPmJhc2UgKyBQTExfQ1RSTCk7Cj4gKwl0bXAgJj0gfkNMS01VWF9FTjsKPiArCXdyaXRlbF9y ZWxheGVkKHRtcCwgcGxsLT5iYXNlICsgUExMX0NUUkwpOwo+ICsKPiArCS8qIFBvd2VyIERvd24g Ki8KPiArCXRtcCAmPSB+UE9XRVJVUF9NQVNLOwo+ICsJd3JpdGVsX3JlbGF4ZWQodG1wLCBwbGwt PmJhc2UgKyBQTExfQ1RSTCk7Cj4gKwo+ICsJLyogRGlzYWJsZSBCWVBBU1MgKi8KPiArCXRtcCAm PSB+Q0xLTVVYX0JZUEFTUzsKPiArCXdyaXRlbF9yZWxheGVkKHRtcCwgcGxsLT5iYXNlICsgUExM X0NUUkwpOwo+ICsKPiArCXBsbF9kaXYgPSAocmF0ZS0+cmRpdiA8PCBQTExfUkRJVl9TSElGVCkg fCByYXRlLT5vZGl2IHwgKHJhdGUtPm1maSA8PCBQTExfTUZJX1NISUZUKTsKPiArCXdyaXRlbF9y ZWxheGVkKHBsbF9kaXYsIHBsbC0+YmFzZSArIFBMTF9ESVYpOwo+ICsJd3JpdGVsX3JlbGF4ZWQo cmF0ZS0+bWZkLCBwbGwtPmJhc2UgKyBQTExfREVOT01JTkFUT1IpOwo+ICsJd3JpdGVsX3JlbGF4 ZWQocmF0ZS0+bWZuIDw8IFBMTF9NRk5fU0hJRlQsIHBsbC0+YmFzZSArIFBMTF9OVU1FUkFUT1Ip Owo+ICsKPiArCS8qIFdhaXQgZm9yIDV1cyBhY2NvcmRpbmcgdG8gZnJhY24gbW9kZSBwbGwgZG9j ICovCj4gKwl1ZGVsYXkoNSk7Cj4gKwo+ICsJLyogRW5hYmxlIFBvd2VydXAgKi8KPiArCXRtcCB8 PSBQT1dFUlVQX01BU0s7Cj4gKwl3cml0ZWxfcmVsYXhlZCh0bXAsIHBsbC0+YmFzZSArIFBMTF9D VFJMKTsKPiArCj4gKwkvKiBXYWl0IExvY2sqLwo+ICsJcmV0ID0gY2xrX2ZyYWNuX2dwcGxsX3dh aXRfbG9jayhwbGwpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCS8qIEVu YWJsZSBvdXRwdXQgKi8KPiArCXRtcCB8PSBDTEtNVVhfRU47Cj4gKwl3cml0ZWxfcmVsYXhlZCh0 bXAsIHBsbC0+YmFzZSArIFBMTF9DVFJMKTsKPiArCj4gKwlhbmFfbWZuID0gKHJlYWRsX3JlbGF4 ZWQocGxsLT5iYXNlICsgUExMX1NUQVRVUykgJiBQTExfTUZOX01BU0spID4+IFBMTF9NRk5fU0hJ RlQ7Cj4gKwo+ICsJV0FSTihhbmFfbWZuICE9IHJhdGUtPm1mbiwgImFuYV9tZm4gIT0gcmF0ZS0+ bWZuXG4iKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBjbGtfZnJh Y25fZ3BwbGxfcHJlcGFyZShzdHJ1Y3QgY2xrX2h3ICpodykKPiArewo+ICsJc3RydWN0IGNsa19m cmFjbl9ncHBsbCAqcGxsID0gdG9fY2xrX2ZyYWNuX2dwcGxsKGh3KTsKPiArCXUzMiB2YWw7Cj4g KwlpbnQgcmV0Owo+ICsKPiArCXZhbCA9IHJlYWRsX3JlbGF4ZWQocGxsLT5iYXNlICsgUExMX0NU UkwpOwo+ICsJaWYgKHZhbCAmIFBPV0VSVVBfTUFTSykKPiArCQlyZXR1cm4gMDsKPiArCj4gKwl2 YWwgfD0gQ0xLTVVYX0JZUEFTUzsKPiArCXdyaXRlbF9yZWxheGVkKHZhbCwgcGxsLT5iYXNlICsg UExMX0NUUkwpOwo+ICsKPiArCXZhbCB8PSBQT1dFUlVQX01BU0s7Cj4gKwl3cml0ZWxfcmVsYXhl ZCh2YWwsIHBsbC0+YmFzZSArIFBMTF9DVFJMKTsKPiArCj4gKwl2YWwgfD0gQ0xLTVVYX0VOOwo+ ICsJd3JpdGVsX3JlbGF4ZWQodmFsLCBwbGwtPmJhc2UgKyBQTExfQ1RSTCk7Cj4gKwo+ICsJcmV0 ID0gY2xrX2ZyYWNuX2dwcGxsX3dhaXRfbG9jayhwbGwpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1 cm4gcmV0Owo+ICsKPiArCXZhbCAmPSB+Q0xLTVVYX0JZUEFTUzsKPiArCXdyaXRlbF9yZWxheGVk KHZhbCwgcGxsLT5iYXNlICsgUExMX0NUUkwpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgaW50IGNsa19mcmFjbl9ncHBsbF9pc19wcmVwYXJlZChzdHJ1Y3QgY2xrX2h3ICpo dykKPiArewo+ICsJc3RydWN0IGNsa19mcmFjbl9ncHBsbCAqcGxsID0gdG9fY2xrX2ZyYWNuX2dw cGxsKGh3KTsKPiArCXUzMiB2YWw7Cj4gKwo+ICsJdmFsID0gcmVhZGxfcmVsYXhlZChwbGwtPmJh c2UgKyBQTExfQ1RSTCk7Cj4gKwo+ICsJcmV0dXJuICh2YWwgJiBQT1dFUlVQX01BU0spID8gMSA6 IDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGNsa19mcmFjbl9ncHBsbF91bnByZXBhcmUoc3Ry dWN0IGNsa19odyAqaHcpCj4gK3sKPiArCXN0cnVjdCBjbGtfZnJhY25fZ3BwbGwgKnBsbCA9IHRv X2Nsa19mcmFjbl9ncHBsbChodyk7Cj4gKwl1MzIgdmFsOwo+ICsKPiArCXZhbCA9IHJlYWRsX3Jl bGF4ZWQocGxsLT5iYXNlICsgUExMX0NUUkwpOwo+ICsJdmFsICY9IH5QT1dFUlVQX01BU0s7Cj4g Kwl3cml0ZWxfcmVsYXhlZCh2YWwsIHBsbC0+YmFzZSArIFBMTF9DVFJMKTsKPiArfQo+ICsKPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGNsa19mcmFjbl9ncHBsbF9vcHMgPSB7Cj4gKwku cHJlcGFyZQk9IGNsa19mcmFjbl9ncHBsbF9wcmVwYXJlLAo+ICsJLnVucHJlcGFyZQk9IGNsa19m cmFjbl9ncHBsbF91bnByZXBhcmUsCj4gKwkuaXNfcHJlcGFyZWQJPSBjbGtfZnJhY25fZ3BwbGxf aXNfcHJlcGFyZWQsCj4gKwkucmVjYWxjX3JhdGUJPSBjbGtfZnJhY25fZ3BwbGxfcmVjYWxjX3Jh dGUsCj4gKwkucm91bmRfcmF0ZQk9IGNsa19mcmFjbl9ncHBsbF9yb3VuZF9yYXRlLAo+ICsJLnNl dF9yYXRlCT0gY2xrX2ZyYWNuX2dwcGxsX3NldF9yYXRlLAo+ICt9Owo+ICsKPiArc3RydWN0IGNs a19odyAqaW14X2Nsa19mcmFjbl9ncHBsbChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpw YXJlbnRfbmFtZSwgdm9pZCBfX2lvbWVtICpiYXNlLAo+ICsJCQkJICAgY29uc3Qgc3RydWN0IGlt eF9mcmFjbl9ncHBsbF9jbGsgKnBsbF9jbGspCj4gK3sKPiArCXN0cnVjdCBjbGtfZnJhY25fZ3Bw bGwgKnBsbDsKPiArCXN0cnVjdCBjbGtfaHcgKmh3Owo+ICsJc3RydWN0IGNsa19pbml0X2RhdGEg aW5pdDsKPiArCWludCByZXQ7Cj4gKwl1MzIgdmFsOwoKVW51c2VkLiBJJ2xsIGRyb3AgaXQgYW5k IHNxdWFzaCBpdCBpbiBteXNlbGYuCgo+ICsKPiArCXBsbCA9IGt6YWxsb2Moc2l6ZW9mKCpwbGwp LCBHRlBfS0VSTkVMKTsKPiArCWlmICghcGxsKQo+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0p Owo+ICsKPiArCWluaXQubmFtZSA9IG5hbWU7Cj4gKwlpbml0LmZsYWdzID0gcGxsX2Nsay0+Zmxh Z3M7Cj4gKwlpbml0LnBhcmVudF9uYW1lcyA9ICZwYXJlbnRfbmFtZTsKPiArCWluaXQubnVtX3Bh cmVudHMgPSAxOwo+ICsJaW5pdC5vcHMgPSAmY2xrX2ZyYWNuX2dwcGxsX29wczsKPiArCj4gKwlw bGwtPmJhc2UgPSBiYXNlOwo+ICsJcGxsLT5ody5pbml0ID0gJmluaXQ7Cj4gKwlwbGwtPnJhdGVf dGFibGUgPSBwbGxfY2xrLT5yYXRlX3RhYmxlOwo+ICsJcGxsLT5yYXRlX2NvdW50ID0gcGxsX2Ns ay0+cmF0ZV9jb3VudDsKPiArCj4gKwlodyA9ICZwbGwtPmh3Owo+ICsKPiArCXJldCA9IGNsa19o d19yZWdpc3RlcihOVUxMLCBodyk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJcHJfZXJyKCIlczogZmFp bGVkIHRvIHJlZ2lzdGVyIHBsbCAlcyAlZFxuIiwgX19mdW5jX18sIG5hbWUsIHJldCk7Cj4gKwkJ a2ZyZWUocGxsKTsKPiArCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICsJfQo+ICsKPiArCXJldHVy biBodzsKPiArfQo+ICtFWFBPUlRfU1lNQk9MX0dQTChpbXhfY2xrX2ZyYWNuX2dwcGxsKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvaW14L2Nsay5oIGIvZHJpdmVycy9jbGsvaW14L2Nsay5o Cj4gaW5kZXggNjNlYjdjNTNiMTIzLi5hN2NiYmNkMWEzZjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9jbGsvaW14L2Nsay5oCj4gKysrIGIvZHJpdmVycy9jbGsvaW14L2Nsay5oCj4gQEAgLTcyLDYg KzcyLDI3IEBAIGV4dGVybiBzdHJ1Y3QgaW14X3BsbDE0eHhfY2xrIGlteF8xNDE2eF9wbGw7Cj4g IGV4dGVybiBzdHJ1Y3QgaW14X3BsbDE0eHhfY2xrIGlteF8xNDQzeF9wbGw7Cj4gIGV4dGVybiBz dHJ1Y3QgaW14X3BsbDE0eHhfY2xrIGlteF8xNDQzeF9kcmFtX3BsbDsKPiAgCj4gKy8qIE5PVEU6 IFJhdGUgdGFibGUgc2hvdWxkIGJlIGtlcHQgc29ydGVkIGluIGRlc2NlbmRpbmcgb3JkZXIuICov Cj4gK3N0cnVjdCBpbXhfZnJhY25fZ3BwbGxfcmF0ZV90YWJsZSB7Cj4gKwl1bnNpZ25lZCBpbnQg cmF0ZTsKPiArCXVuc2lnbmVkIGludCBtZmk7Cj4gKwl1bnNpZ25lZCBpbnQgbWZuOwo+ICsJdW5z aWduZWQgaW50IG1mZDsKPiArCXVuc2lnbmVkIGludCByZGl2Owo+ICsJdW5zaWduZWQgaW50IG9k aXY7Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgaW14X2ZyYWNuX2dwcGxsX2NsayB7Cj4gKwljb25zdCBz dHJ1Y3QgaW14X2ZyYWNuX2dwcGxsX3JhdGVfdGFibGUgKnJhdGVfdGFibGU7Cj4gKwlpbnQgcmF0 ZV9jb3VudDsKPiArCWludCBmbGFnczsKPiArfTsKPiArCj4gK3N0cnVjdCBjbGtfaHcgKmlteF9j bGtfZnJhY25fZ3BwbGwoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUs IHZvaWQgX19pb21lbSAqYmFzZSwKPiArCQkJCSAgIGNvbnN0IHN0cnVjdCBpbXhfZnJhY25fZ3Bw bGxfY2xrICpwbGxfY2xrKTsKPiArCj4gK2V4dGVybiBzdHJ1Y3QgaW14X2ZyYWNuX2dwcGxsX2Ns ayBpbXhfZnJhY25fZ3BwbGw7Cj4gKwo+ICAjZGVmaW5lIGlteF9jbGtfY3B1KG5hbWUsIHBhcmVu dF9uYW1lLCBkaXYsIG11eCwgcGxsLCBzdGVwKSBcCj4gIAl0b19jbGsoaW14X2Nsa19od19jcHUo bmFtZSwgcGFyZW50X25hbWUsIGRpdiwgbXV4LCBwbGwsIHN0ZXApKQo+ICAKPiAtLSAKPiAyLjI1 LjEKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo=