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 2670FC25B06 for ; Fri, 12 Aug 2022 02:25:22 +0000 (UTC) Received: from localhost ([::1]:51674 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oMKMT-0007R0-4P for qemu-devel@archiver.kernel.org; Thu, 11 Aug 2022 22:25:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36782) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oMKLD-0005sD-FE; Thu, 11 Aug 2022 22:24:03 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:49846) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oMKL9-0002l0-Np; Thu, 11 Aug 2022 22:24:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1660271039; x=1691807039; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=DCCDe6SQ3DSPnSii0PvQe0FHIvgzF3AgZWo6W98Nz8M=; b=m9MuRwOn6ehxfmVZ9uznulMtS19QLNYwU7wcCkr2EVLdIBBT1mb29LL+ ykOvIZ7+IiFGK7IlIAkB1A417p1P/fbKkmov79tNyWXNHFRkGBZBEQvHH PTTr/UCig9Trhx0uI2J2SjhIh/FTBNK4k9c+Q1fgiPitOcRbLgxQmAJss yugff+0azkJRcG8/qeXda0z4cV1S+50amgJpdjSdz6fODQWMJQebnmcIG Cf4eGJNLPqWsx3Yq2IRN30kYK6KbpIugJm0g/bnKaZc2aCVWwv8Q66rdV 3vu4tMJbnE72cvZU2YTezC2oVXsqcCa5sXHOvjUBzzLJD1QDZ0VYNCFs3 w==; X-IronPort-AV: E=Sophos;i="5.93,231,1654531200"; d="scan'208";a="320600667" Received: from mail-dm6nam11lp2173.outbound.protection.outlook.com (HELO NAM11-DM6-obe.outbound.protection.outlook.com) ([104.47.57.173]) by ob1.hgst.iphmx.com with ESMTP; 12 Aug 2022 10:23:56 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VoW6blvGXbPnpNrTv/nlHc4Mch+yEfpPTD89JbLLv/0jTfuDHOOMA6Xakmv02qMKkX6VKjWYiXZ9IkcSUk+e+rOCRh2eYs3k23FKZeoU246e+4gbFyw2OV7XqThA18EPKekYk7AOMTo/6vcdVoRsjI9UckZ6dLhWnDFoP8jisiuz4fPdV/SqwAV5PyWCuWyWS1Bmv3gWnl/Wh5Y5ItCw/9mGMql50E6fSsHCAf3YitvZVFTClTgR8jJS1YIAS5h1fKv8uCjKEcVhFO15YsBCjz9XaxXtP/gD68oKg/QbPoq6DR54o6M8N5RpaqVn2tob19Whhz5YG/3oXQRn3AiTQg== 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=DCCDe6SQ3DSPnSii0PvQe0FHIvgzF3AgZWo6W98Nz8M=; b=d2Z3QqXj7HVeZMNEV03nNe+t/4ItOj+hYG0/OcTBU+X139xydnnXrg/COcDHr9gSD8QIfSdjwm754dE/Gf7ptfM4FC//+hbwFkYuH3Mhb4vSAz70D6fbuDfzTkHJBfwC8HnlmilQmOsgVTYkt/1nUnWUL6r9CTmnJZ3udTokpi9vdlDCAaOimZ+nik0Ga0xkn+YoWoep+3jRAoJ9Yo96uT8MszjvA3lEh0/t6QbAmMaVBv34NubdiJkvpci3p81KWNDANGBvf1d8gi20ZDEF+7dPkpDE9Jd8MTAu/nmQ3qpVThLoKNDo/MQIHyS+iSGWZVtCZ9PuinMDfTqDh1JE+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DCCDe6SQ3DSPnSii0PvQe0FHIvgzF3AgZWo6W98Nz8M=; b=emCtKCBOnE40HO83IKRjC5grP3to2MxVsBkM4TPFX/SKrRQUpIiopXUNFSKyPXfbNlguatyqlkjQAYh7fGkpQ76GBaKuW2XZ1zJoarX1o1/1lE/bd/TYfSbRSJQjnxf8GU02Mp1VP5cGrqCpa2QmM/g0e3ywuvcxiOqqwNCNViQ= Received: from BL0PR04MB6546.namprd04.prod.outlook.com (2603:10b6:208:1c2::14) by DM6PR04MB7068.namprd04.prod.outlook.com (2603:10b6:5:244::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.10; Fri, 12 Aug 2022 02:23:55 +0000 Received: from BL0PR04MB6546.namprd04.prod.outlook.com ([fe80::b581:1148:1ae9:3de1]) by BL0PR04MB6546.namprd04.prod.outlook.com ([fe80::b581:1148:1ae9:3de1%4]) with mapi id 15.20.5525.011; Fri, 12 Aug 2022 02:23:55 +0000 From: Wilfred Mallawa To: "wilfred.mallawa@opensource.wdc.com" , "bmeng.cn@gmail.com" CC: "qemu-riscv@nongnu.org" , Alistair Francis , "qemu-devel@nongnu.org" Subject: Re: [PATCH 2/3] hw/ssi: fixup coverity issue Thread-Topic: [PATCH 2/3] hw/ssi: fixup coverity issue Thread-Index: AQHYrQ1PaQoCX1N9AkKZ1I1keLYod62pAaKAgAGJYwA= Date: Fri, 12 Aug 2022 02:23:55 +0000 Message-ID: References: <20220810230200.149398-1-wilfred.mallawa@opensource.wdc.com> <20220810230200.149398-2-wilfred.mallawa@opensource.wdc.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=wdc.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2769b7d9-391e-4dd6-319f-08da7c09b481 x-ms-traffictypediagnostic: DM6PR04MB7068:EE_ wdcipoutbound: EOP-TRUE x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xr6f+xj98rDIUo1F94lX/evOs0Pm8+DIlaVk7MrlryNZBl5Qq6R2l8RLjXZmbyKGPt/iKhUmecAte9vHXROmBQUemQPS5amEiw16snblEPp8lCGUltudLVBpr3dYIHI6h7mIYA/iTL8fKFGAyVPjIbJzmeiKEHuQcX2Zsw/z5fziVo5GqsxxuBM4JuvYBVbV79yyw0e5dAFIJ/HLaCtfG64hPAkin1vZBIDbV2KlMdrzZhRcacrm0XRjBDuBGxbJ68RQK5tiyK4RqHJPBDO8XZUQ1ZHJuuuemN+JOZdxvYW6QbcDjPTVgWcCCul9IZg5Ylp1cxjYkCHDxmfyaT6fiwrRnoYSIIIxqNHzR1YRtJIN/BnoIZPdzFA4e5wJ7jZaiX0+xX8EYQh4/9NuKtUDKF3fShlf5oGnc21VakygWp2pnQneC8BONvGUfiF07rUU0Ft6xMfwTfJ6C4iY66WSB+zoJMcpquhH61bXQiLsBBl9M0aQSavNXqFWqSXXLmMn6WMTFoGVkgrSqE+paBKVsNl3ddWX9qYKK9J0tGp3d+fV0OaeEPLiuFPnd2+JzGFkLRv1KB4qLddkPimzsK3TsrvTSEeYQ+n8CgVSpF6bCW5jisyzFrqjmRT2ju76U/Z9n+m7bCK3Z3YrN80mj/q75ddq5/nRUsEJSlnzmJi2YA4kFz/A17b4XgrquNK/1AkbWJHrDDaSCGwNXLK80IxaoUJlYzJ4lDLbXsYmdm18h9o2iYuET4U6P3SAsSryHNRpijnr3zn/Q+9b8lSRMGLPR92Btc0W7p6koErzef8yE4kyVHmrVS9oGcjvedWueNvHghVya/dPfEkIvvutbEKXow== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR04MB6546.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(136003)(366004)(346002)(39860400002)(396003)(376002)(83380400001)(478600001)(5660300002)(64756008)(186003)(6486002)(2616005)(86362001)(966005)(110136005)(36756003)(54906003)(8936002)(41300700001)(71200400001)(38070700005)(82960400001)(122000001)(91956017)(316002)(38100700002)(76116006)(44832011)(6512007)(66946007)(66446008)(66476007)(66556008)(2906002)(26005)(30864003)(4326008)(8676002)(53546011)(6506007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?d2oxUlFGdXc4eDRXYjBDSms5RmFSZTlyNHBEaW8zZy8yamxuWFczYVpYSk14?= =?utf-8?B?ZG9kejAvc3h6QXFmRzlYRER6OXJwYXlhRW4vOXovQVVZdG9MY3BRZ1dEL25x?= =?utf-8?B?NmNnWHdZWEhpQzErMFdzUThpVml1OXpUSFU0WFNQNVFpMDBVM29Kc2dYM2do?= =?utf-8?B?bGhVSzJCQ0F1aUN2a0dnMnNCY0dRNW9HZXZhQUQyUVFWbEhBRmlKZi9Wb2dq?= =?utf-8?B?VWRQeHJ0S0NFVGFUK1RRTStLZ1dUSDhKSkhTd291dFYrdGEweGpYK1RGLzNW?= =?utf-8?B?cThRK3J1SlhZUEJxM3RWQWxtSTZTU3Z4V0pJSDVPVHRlVVJqV2orUUtxN3Ns?= =?utf-8?B?UFR1eFowMW9QOHlBNnN6YjFXYkJBdysrbXh3VFY4SnVscnowTFoyUEV2cjRj?= =?utf-8?B?dU5wSng2UWQ5Ym1sSFFxbzJxTGR5Wi9EbHo0VVRFbVovSEpIVzA0cXAwWkRq?= =?utf-8?B?NFEwWVd6MzByc1djeHdyWkFYUVBOczc3TFpFTEtvRzN1ZEpMeGNLcTdaT1Zw?= =?utf-8?B?ZFhZNWZkYzBRQlhSVEVnRGxHVmtqejA1Z3JUZ0RqSE02ZXRxY1R0ZCt0U2w2?= =?utf-8?B?d0xlaDlmNnZDU25XSmhWaVpUTnpQeVlwSitMUkpsRFBCU0dtNHF3bjVlR2d5?= =?utf-8?B?Z012cExNMHNVUU5GcHdOVzE0bGNDNCtHeEt2aTVBUThtVUhaY3NHaFVVeS9u?= =?utf-8?B?dDk4M0JSMWZaYXFvcGRVZjM5amZxTkpuaXE5MXRJeG9VYTF3WUJlUm02ZzE0?= =?utf-8?B?Ti9RQ3NRNXNSVElhdmJ5K09KU2hKTjBZWTlNSFM2Ny9LZ0Fqamk0ZzBvWVZy?= =?utf-8?B?clBVY2JOZURLcVhnVitoQnd1SjZCQ1Q3Tzl6Mi9qbTJBcWwvSUdMZzNveC9F?= =?utf-8?B?NEFEaGJhQ0dZTVcvc3Azc3g2RzFSdUNGRXgreExWS3FHRE5Lb0tUNlFFMWJM?= =?utf-8?B?bUN2UTZhb3JlcC9CMXcwQzRsaTlia3RsUTdlYXd6a09HcEJKM1hMSlAxaTh6?= =?utf-8?B?aWFCcndZbmJPYm9kazY2akRZRllqQmR3L3lTbzVUOE90OUhXa1NaYUV2bTRu?= =?utf-8?B?Zm11c0JHTUE2OUY3U0tDMWRqc1pBMjZOVGt1REdTYWJLNWFFdmluS256ejRE?= =?utf-8?B?K0w1NVhmaHcyellpRVRlY2VOOFBGdGVWRDdrMkRORmFYdkVxNWFyNVlCampZ?= =?utf-8?B?ZE10YUZ2RWpRMWI5Zno4cDVBMnY2VkluRGcwenNGSlJOZWJ4ZGtmS2tVVndX?= =?utf-8?B?RVI1V2F6V0s1emFZY0VWKy9Gckdia2RLcVphTmoyRS9Rc0tXdENoZkE4elhv?= =?utf-8?B?UmUvc1NuV2QwRDJIUDJmQTY3bjZYSDczZGxtUmtiOE9hYXZwWVZJU1pPd3lL?= =?utf-8?B?NEIzRVRKdmtMS0hJSFZBZ2RtY2srajA2Tkxhd1BSc0pDOGg1dWxqd3Zxc2VH?= =?utf-8?B?ZDFpNGNyQlNHVEV2anpmWDRMbnFZV3Bya2tEQVFDcU1lWHRYYW9FWnJUNjRq?= =?utf-8?B?QVN5VUlsRWp4RTJ4QUQ5cnZmZjRzbVNiWUMzRGc5aE0zNzhvRWNpMy8xc2pz?= =?utf-8?B?TmZMMUVORUd0ODFZQjZUNVBISUZJY3RwYkpJTktXV2hIK2tiUHdZMWMzZU1Z?= =?utf-8?B?Z0grQ1RzektCeEpnRjUwYVZRT01YcThwZ0x6dEVRN1JNYjRVYVhkdzgrUmFH?= =?utf-8?B?VWR5ZHlIaFNYT0xncEhycUlqRmNEcUcyNzZ6QkpLVitkN2xuRjM0ZjJISHc1?= =?utf-8?B?UjBFaHlhZ3FXQmxYaDJYWkNMVXUvUlh6T0FTVHBFN0tyK0IvYVpQRHB0Z2Jv?= =?utf-8?B?dzRJZDVjdzBYcHlGQ29EWEliMnV0eVhsSWw4TXNRMjU0V1JsUnVkNlRxK1E4?= =?utf-8?B?TTJBdEFUS0tPd3B5NSszM1p2S2Y3K0hKNVdFcFo1eFEzRDMrK1NPbUwyeUxC?= =?utf-8?B?ZjdSczNnSDhyd1p3bFMyTUx0T2dCSXhYc2pYTEo1LzVSZEUyZFlBMWVUN2Fl?= =?utf-8?B?SHRJMnV6bDV3QkRZZGZza0xIOWtlTWUwd3BJcWo2cGlWZjBpMnk4a3JGRUxF?= =?utf-8?B?Z3JLUjZOVGJOWVI0NE83VEQ2NWttQVVuR0haWDlURFBJSmROdGtHZTBiOURF?= =?utf-8?B?clZPWUx0eDZoTFV1cnhtL0srUG1VODBaZGdZOU80dlJCTFZJSklPREJ2b3Ri?= =?utf-8?B?c0E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <3583611BEB9C454D9BE3F2893C73A2A0@namprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: qm1jm1FiYyYUOarPi5KQ7i+q0QOL+FfPYMsu9HLbU14Pj8sNvJEnBmT23ZsU3W0UEppzAdseiKD9mrs5+Zh1MO1DkyntbGVqi19w2/6NZ01IVKRTw0Sz7q6C9jYqgjzDUDuXekJTqFzBFK6xR1jTSmpq/5DPdgw/qU/rg2+azjdhb3Zzpl0r8BouzvXcEWDNFKtjkvG5ANsa7nYidUcLdX/RLi6+9LYCDeMRaCuwBW31SF+Zsja4QYvGlXfL7dYQ5cwmrerlm9j6TyAQhVwJBrTKHzGmZxpLRz+hdklB3U/LTWmlUCwyfeTQUAUt51dPHoa002uBw2/pLj/9IIZHu6sqr57uJgAUZtEnaJxCBxqg2gI76uMwgKHSz0nwZS7Clmz2naVxu+BnyBMOuEO6JpYKCu/kCR6eEntasP1cSooRT1r/mVGnB9TFAlRHJu/ypV3cBO3t16TPcKvNwwtb8VSzsrX8YERik6MaS7/x18vFRBsXuhIYULFwMdh+tCxVfRKCKMVjllMzy/nU1bm3TTDuiGUyPi4cxxENxJzPx+xGW5WKBxMZdW3rdiQNh/n7MZIxxhO+VP/sffh7WaYiRSycnOHYZ3dJznioEUmBvjoz57CjwqyxbuSB2+x4iNgBCQ/mGgOH4rvKpG5DXU6cQS1YmE9HIJLSlZUYY8Z3Sl4FfJVgcDM0tEpK3aJwBjYuazoiRitf3sCxX3UVOzOIE+2DhvPC5BWdH7cHSXfWWUMgR+MQ5OKU5qv4YYLCjK6eHclftjtivUBsI2+fDmQqRrsqWaAJUF6AJn37Kcq1s5IAfZcqHIpna94DKkw20cApZYiOZDlP92GRKoEiyqPzlA== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL0PR04MB6546.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2769b7d9-391e-4dd6-319f-08da7c09b481 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2022 02:23:55.0949 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: JUEO2d4NxAzFdIDZv2Dc91025bcVMfifhfZcH/LFoCbV/a5Z+mThE01pW+tEiFEHdNhI76N+eQFvY4ytEu1xvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR04MB7068 Received-SPF: pass client-ip=68.232.141.245; envelope-from=prvs=216484d16=wilfred.mallawa@wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" T24gVGh1LCAyMDIyLTA4LTExIGF0IDEwOjU1ICswODAwLCBCaW4gTWVuZyB3cm90ZToKPiBPbiBU aHUsIEF1ZyAxMSwgMjAyMiBhdCA4OjU4IEFNIFdpbGZyZWQgTWFsbGF3YQo+IDx3aWxmcmVkLm1h bGxhd2FAb3BlbnNvdXJjZS53ZGMuY29tPiB3cm90ZToKPiA+IAo+ID4gRnJvbTogV2lsZnJlZCBN YWxsYXdhIDx3aWxmcmVkLm1hbGxhd2FAd2RjLmNvbT4KPiA+IAo+ID4gVGhpcyBwYXRjaCBhZGRy ZXNzZXMgdGhlIGNvdmVyaXR5IGlzc3VlcyBzcGVjaWZpZWQgaW4gWzFdLAo+ID4gYXMgc3VnZ2Vz dGVkLCBgRklFTERfRFAzMigpYC9gRklFTERfRVgzMigpYCBtYWNyb3MgaGF2ZSBiZWVuCj4gPiBp bXBsZW1lbnRlZCB0byBjbGVhbiB1cCB0aGUgY29kZS4KPiA+IAo+ID4gQWRkaXRpb25hbGx5LCB0 aGUgYEVWRU5UX0VOQUJMRWAgcmVnaXN0ZXIgaXMgY29ycmVjdGx5IHVwZGF0ZWQKPiA+IHRvIGFk ZHIgb2YgYDB4MzRgLgo+ID4gCj4gPiBbMV0KPiA+IGh0dHBzOi8vd3d3Lm1haWwtYXJjaGl2ZS5j b20vcWVtdS1kZXZlbEBub25nbnUub3JnL21zZzg4NzcxMy5odG1sCj4gPiAKPiA+IEZpeGVzOiBD b3Zlcml0eSBDSUQgMTQ4ODEwNwo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBXaWxmcmVkIE1hbGxh d2EgPHdpbGZyZWQubWFsbGF3YUB3ZGMuY29tPgo+IAo+IG5pdHM6IHBsZWFzZSBhZGQgImliZXhf c3BpIiB0byB0aGUgdGFnLCBsaWtlIGh3L3NzaTogaWJleF9zcGk6CndpbGwgYWRkIGluIHYyIDop Cj4gCj4gPiAtLS0KPiA+IMKgaHcvc3NpL2liZXhfc3BpX2hvc3QuYyB8IDE0MSArKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gPiAtLS0tCj4gPiDCoDEgZmlsZSBjaGFuZ2Vk LCA3OCBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBh L2h3L3NzaS9pYmV4X3NwaV9ob3N0LmMgYi9ody9zc2kvaWJleF9zcGlfaG9zdC5jCj4gPiBpbmRl eCA2MDEwNDFkNzE5Li44YzM1YmZhOTVmIDEwMDY0NAo+ID4gLS0tIGEvaHcvc3NpL2liZXhfc3Bp X2hvc3QuYwo+ID4gKysrIGIvaHcvc3NpL2liZXhfc3BpX2hvc3QuYwo+ID4gQEAgLTkzLDcgKzkz LDcgQEAgUkVHMzIoRVJST1JfU1RBVFVTLCAweDMwKQo+ID4gwqDCoMKgwqAgRklFTEQoRVJST1Jf U1RBVFVTLCBDTURJTlZBTCwgMywgMSkKPiA+IMKgwqDCoMKgIEZJRUxEKEVSUk9SX1NUQVRVUywg Q1NJRElOVkFMLCA0LCAxKQo+ID4gwqDCoMKgwqAgRklFTEQoRVJST1JfU1RBVFVTLCBBQ0NFU1NJ TlZBTCwgNSwgMSkKPiA+IC1SRUczMihFVkVOVF9FTkFCTEUsIDB4MzApCj4gPiArUkVHMzIoRVZF TlRfRU5BQkxFLCAweDM0KQo+ID4gwqDCoMKgwqAgRklFTEQoRVZFTlRfRU5BQkxFLCBSWEZVTEws IDAsIDEpCj4gPiDCoMKgwqDCoCBGSUVMRChFVkVOVF9FTkFCTEUsIFRYRU1QVFksIDEsIDEpCj4g PiDCoMKgwqDCoCBGSUVMRChFVkVOVF9FTkFCTEUsIFJYV00sIDIsIDEpCj4gPiBAQCAtMTA4LDE4 ICsxMDgsMjAgQEAgc3RhdGljIGlubGluZSB1aW50OF90IGRpdjRfcm91bmRfdXAodWludDhfdAo+ ID4gZGl2aWRlbmQpCj4gPiAKPiA+IMKgc3RhdGljIHZvaWQgaWJleF9zcGlfcnhmaWZvX3Jlc2V0 KEliZXhTUElIb3N0U3RhdGUgKnMpCj4gPiDCoHsKPiA+ICvCoMKgwqAgdWludDMyX3QgZGF0YSA9 IHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9TVEFUVVNdOwo+ID4gwqDCoMKgwqAgLyogRW1wdHkgdGhl IFJYIEZJRk8gYW5kIGFzc2VydCBSWEVNUFRZICovCj4gPiDCoMKgwqDCoCBmaWZvOF9yZXNldCgm cy0+cnhfZmlmbyk7Cj4gPiAtwqDCoMKgIHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9TVEFUVVNdICY9 IH5SX1NUQVRVU19SWEZVTExfTUFTSzsKPiA+IC3CoMKgwqAgcy0+cmVnc1tJQkVYX1NQSV9IT1NU X1NUQVRVU10gfD0gUl9TVEFUVVNfUlhFTVBUWV9NQVNLOwo+ID4gK8KgwqDCoCBkYXRhID0gRklF TERfRFAzMihkYXRhLCBTVEFUVVMsIFJYRU1QVFksIDEpOwo+ID4gK8KgwqDCoCBzLT5yZWdzW0lC RVhfU1BJX0hPU1RfU1RBVFVTXSA9IGRhdGE7Cj4gPiDCoH0KPiA+IAo+ID4gwqBzdGF0aWMgdm9p ZCBpYmV4X3NwaV90eGZpZm9fcmVzZXQoSWJleFNQSUhvc3RTdGF0ZSAqcykKPiA+IMKgewo+ID4g K8KgwqDCoCB1aW50MzJfdCBkYXRhID0gcy0+cmVnc1tJQkVYX1NQSV9IT1NUX1NUQVRVU107Cj4g PiDCoMKgwqDCoCAvKiBFbXB0eSB0aGUgVFggRklGTyBhbmQgYXNzZXJ0IFRYRU1QVFkgKi8KPiA+ IMKgwqDCoMKgIGZpZm84X3Jlc2V0KCZzLT50eF9maWZvKTsKPiA+IC3CoMKgwqAgcy0+cmVnc1tJ QkVYX1NQSV9IT1NUX1NUQVRVU10gJj0gflJfU1RBVFVTX1RYRlVMTF9NQVNLOwo+ID4gLcKgwqDC oCBzLT5yZWdzW0lCRVhfU1BJX0hPU1RfU1RBVFVTXSB8PSBSX1NUQVRVU19UWEVNUFRZX01BU0s7 Cj4gPiArwqDCoMKgIGRhdGEgPSBGSUVMRF9EUDMyKGRhdGEsIFNUQVRVUywgVFhFTVBUWSwgMSk7 Cj4gPiArwqDCoMKgIHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9TVEFUVVNdID0gZGF0YTsKPiA+IMKg fQo+ID4gCj4gPiDCoHN0YXRpYyB2b2lkIGliZXhfc3BpX2hvc3RfcmVzZXQoRGV2aWNlU3RhdGUg KmRldikKPiA+IEBAIC0xNjIsMzcgKzE2NCw0MSBAQCBzdGF0aWMgdm9pZCBpYmV4X3NwaV9ob3N0 X3Jlc2V0KERldmljZVN0YXRlCj4gPiAqZGV2KQo+ID4gwqAgKi8KPiA+IMKgc3RhdGljIHZvaWQg aWJleF9zcGlfaG9zdF9pcnEoSWJleFNQSUhvc3RTdGF0ZSAqcykKPiA+IMKgewo+ID4gLcKgwqDC oCBib29sIGVycm9yX2VuID0gcy0+cmVnc1tJQkVYX1NQSV9IT1NUX0lOVFJfRU5BQkxFXQo+ID4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICYgUl9JTlRSX0VOQUJMRV9F UlJPUl9NQVNLOwo+ID4gLcKgwqDCoCBib29sIGV2ZW50X2VuID0gcy0+cmVnc1tJQkVYX1NQSV9I T1NUX0lOVFJfRU5BQkxFXQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICYgUl9JTlRSX0VOQUJMRV9TUElfRVZFTlRfTUFTSzsKPiA+IC3CoMKgwqAgYm9vbCBlcnJf cGVuZGluZyA9IHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9JTlRSX1NUQVRFXQo+ID4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJiBSX0lOVFJfU1RBVEVfRVJS T1JfTUFTSzsKPiA+IC3CoMKgwqAgYm9vbCBzdGF0dXNfcGVuZGluZyA9IHMtPnJlZ3NbSUJFWF9T UElfSE9TVF9JTlRSX1NUQVRFXQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgJiBSX0lOVFJfU1RBVEVfU1BJX0VWRU5UX01BU0s7Cj4gPiArwqDCoMKg IGJvb2wgZXJyb3JfZW4gPSBGSUVMRF9FWDMyKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9JTlRSX0VO QUJMRV0sCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIElOVFJfRU5BQkxFLCBFUlJPUik7Cj4gPiArCj4gPiArwqDCoMKgIGJv b2wgZXZlbnRfZW4gPSBGSUVMRF9FWDMyKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9JTlRSX0VOQUJM RV0sCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIElOVFJfRU5BQkxFLCBTUElfRVZFTlQpOwo+ID4gKwo+ID4gK8KgwqDCoCBi b29sIGVycl9wZW5kaW5nID0gRklFTERfRVgzMihzLQo+ID4gPnJlZ3NbSUJFWF9TUElfSE9TVF9J TlRSX1NUQVRFXSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSU5UUl9TVEFURSwgRVJST1IpOwo+ID4gKwo+ID4g K8KgwqDCoCBib29sIHN0YXR1c19wZW5kaW5nID0gRklFTERfRVgzMihzLQo+ID4gPnJlZ3NbSUJF WF9TUElfSE9TVF9JTlRSX1NUQVRFXSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSU5UUl9TVEFURSwg U1BJX0VWRU5UKTsKPiA+ICsKPiA+IMKgwqDCoMKgIGludCBlcnJfaXJxID0gMCwgZXZlbnRfaXJx ID0gMDsKPiA+IAo+ID4gwqDCoMKgwqAgLyogRXJyb3IgSVJRIGVuYWJsZWQgYW5kIEVycm9yIElS USBDbGVhcmVkICovCj4gPiDCoMKgwqDCoCBpZiAoZXJyb3JfZW4gJiYgIWVycl9wZW5kaW5nKSB7 Cj4gPiDCoMKgwqDCoMKgwqDCoMKgIC8qIEV2ZW50IGVuYWJsZWQsIEludGVycnVwdCBUZXN0IEVy cm9yICovCj4gPiAtwqDCoMKgwqDCoMKgwqAgaWYgKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9JTlRS X1RFU1RdICYKPiA+IFJfSU5UUl9URVNUX0VSUk9SX01BU0spIHsKPiA+ICvCoMKgwqDCoMKgwqDC oCBpZiAoRklFTERfRVgzMihzLT5yZWdzW0lCRVhfU1BJX0hPU1RfSU5UUl9URVNUXSwKPiA+IElO VFJfVEVTVCzCoCBFUlJPUikpIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlcnJfaXJx ID0gMTsKPiA+IC3CoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKChzLT5yZWdzW0lCRVhfU1BJX0hP U1RfRVJST1JfRU5BQkxFXQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICbCoCBSX0VSUk9SX0VOQUJMRV9DTURCVVNZX01BU0spICYmCj4gPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+cmVnc1tJQkVYX1NQSV9IT1NUX0VSUk9SX1NU QVRVU10KPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmIFJfRVJS T1JfU1RBVFVTX0NNREJVU1lfTUFTSykgewo+ID4gK8KgwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAo RklFTERfRVgzMihzLT5yZWdzW0lCRVhfU1BJX0hPU1RfRVJST1JfRU5BQkxFXSwKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEVS Uk9SX0VOQUJMRSzCoCBDTURCVVNZKSAmJgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIEZJRUxEX0VYMzIocy0KPiA+ID5yZWdzW0lCRVhfU1BJX0hPU1RfRVJST1Jf U1RBVFVTXSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgRVJST1JfU1RBVFVTLMKgIENNREJVU1kpKSB7Cj4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgLyogV3JvdGUgdG8gQ09NTUFORCB3aGVuIG5vdCBSRUFEWSAqLwo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVycl9pcnEgPSAxOwo+ID4gLcKgwqDCoMKgwqDC oMKgIH0gZWxzZSBpZiAoKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9FUlJPUl9FTkFCTEVdCj4gPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJsKgIFJfRVJST1JfRU5BQkxF X0NNRElOVkFMX01BU0spICYmCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcy0+cmVnc1tJQkVYX1NQSV9IT1NUX0VSUk9SX1NUQVRVU10KPiA+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmIFJfRVJST1JfU1RBVFVTX0NNRElOVkFMX01B U0spIHsKPiA+ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKEZJRUxEX0VYMzIocy0+cmVnc1tJ QkVYX1NQSV9IT1NUX0VSUk9SX0VOQUJMRV0sCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBFUlJPUl9FTkFCTEUswqAgQ01ESU5W QUwpwqAgJiYKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBGSUVM RF9FWDMyKHMtCj4gPiA+cmVnc1tJQkVYX1NQSV9IT1NUX0VSUk9SX1NUQVRVU10sCj4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IEVSUk9SX1NUQVRVUyzCoCBDTURJTlZBTCkpIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAvKiBJbnZhbGlkIGNvbW1hbmQgc2VnbWVudCAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGVycl9pcnEgPSAxOwo+ID4gLcKgwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAoKHMtPnJlZ3Nb SUJFWF9TUElfSE9TVF9FUlJPUl9FTkFCTEVdCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgJiBSX0VSUk9SX0VOQUJMRV9DU0lESU5WQUxfTUFTSykgJiYKPiA+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5yZWdzW0lCRVhfU1BJX0hP U1RfRVJST1JfU1RBVFVTXQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICYgUl9FUlJPUl9TVEFUVVNfQ1NJRElOVkFMX01BU0spIHsKPiA+ICvCoMKgwqDCoMKgwqDC oCB9IGVsc2UgaWYgKEZJRUxEX0VYMzIocy0+cmVnc1tJQkVYX1NQSV9IT1NUX0VSUk9SX0VOQUJM RV0sCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBFUlJPUl9FTkFCTEUswqAgQ1NJRElOVkFMKSAmJgo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEZJRUxEX0VYMzIocy0KPiA+ID5yZWdzW0lCRVhf U1BJX0hPU1RfRVJST1JfU1RBVFVTXSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRVJST1JfU1RBVFVTLMKgIENTSURJTlZB TCkpIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBJbnZhbGlkIHZhbHVlIGZvciBD U0lEICovCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXJyX2lycSA9IDE7Cj4gPiDCoMKg wqDCoMKgwqDCoMKgIH0KPiA+IEBAIC0yMDQsMjIgKzIxMCwyNiBAQCBzdGF0aWMgdm9pZAo+ID4g aWJleF9zcGlfaG9zdF9pcnEoSWJleFNQSUhvc3RTdGF0ZSAqcykKPiA+IAo+ID4gwqDCoMKgwqAg LyogRXZlbnQgSVJRIEVuYWJsZWQgYW5kIEV2ZW50IElSUSBDbGVhcmVkICovCj4gPiDCoMKgwqDC oCBpZiAoZXZlbnRfZW4gJiYgIXN0YXR1c19wZW5kaW5nKSB7Cj4gPiAtwqDCoMKgwqDCoMKgwqAg aWYgKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9JTlRSX1RFU1RdICYKPiA+IFJfSU5UUl9URVNUX1NQ SV9FVkVOVF9NQVNLKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKEZJRUxEX0VYMzIocy0+cmVn c1tJQkVYX1NQSV9IT1NUX0lOVFJfVEVTVF0sCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgSU5UUl9TVEFURSzCoCBTUElfRVZFTlQpKSB7Cj4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogRXZlbnQgZW5hYmxlZCwgSW50ZXJydXB0IFRlc3QgRXZl bnQgKi8KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBldmVudF9pcnEgPSAxOwo+ID4gLcKg wqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAoKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9FVkVOVF9FTkFC TEVdCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJiBSX0VWRU5U X0VOQUJMRV9SRUFEWV9NQVNLKSAmJgo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIChzLT5yZWdzW0lCRVhfU1BJX0hPU1RfU1RBVFVTXSAmCj4gPiBSX1NUQVRVU19S RUFEWV9NQVNLKSkgewo+ID4gK8KgwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAoRklFTERfRVgzMihz LT5yZWdzW0lCRVhfU1BJX0hPU1RfRVZFTlRfRU5BQkxFXSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEVWRU5UX0VOQUJMRSzC oCBSRUFEWSkgJiYKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBG SUVMRF9FWDMyKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9TVEFUVVNdLAo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTVEFUVVMs IFJFQURZKSkgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFNQSSBIb3N0IHJlYWR5 IGZvciBuZXh0IGNvbW1hbmQgKi8KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBldmVudF9p cnEgPSAxOwo+ID4gLcKgwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAoKHMtPnJlZ3NbSUJFWF9TUElf SE9TVF9FVkVOVF9FTkFCTEVdCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgJiBSX0VWRU5UX0VOQUJMRV9UWEVNUFRZX01BU0spICYmCj4gPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9TVEFUVVNd ICYKPiA+IFJfU1RBVFVTX1RYRU1QVFlfTUFTSykpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoCB9IGVs c2UgaWYgKEZJRUxEX0VYMzIocy0+cmVnc1tJQkVYX1NQSV9IT1NUX0VWRU5UX0VOQUJMRV0sCj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBFVkVOVF9FTkFCTEUswqAgVFhFTVBUWSkgJiYKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBGSUVMRF9FWDMyKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9TVEFU VVNdLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBTVEFUVVMswqAgVFhFTVBUWSkpIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAvKiBTUEkgVFhFTVBUWSwgVFhGSUZPIGRyYWluZWQgKi8KPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBldmVudF9pcnEgPSAxOwo+ID4gLcKgwqDCoMKgwqDCoMKgIH0gZWxzZSBp ZiAoKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9FVkVOVF9FTkFCTEVdCj4gPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJiBSX0VWRU5UX0VOQUJMRV9SWEZVTExfTUFTSykg JiYKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocy0+cmVnc1tJ QkVYX1NQSV9IT1NUX1NUQVRVU10gJgo+ID4gUl9TVEFUVVNfUlhGVUxMX01BU0spKSB7Cj4gPiAr wqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmIChGSUVMRF9FWDMyKHMtPnJlZ3NbSUJFWF9TUElfSE9T VF9FVkVOVF9FTkFCTEVdLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRVZFTlRfRU5BQkxFLMKgIFJYRlVMTCkgJiYKPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBGSUVMRF9FWDMyKHMtPnJlZ3Nb SUJFWF9TUElfSE9TVF9TVEFUVVNdLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTVEFUVVMswqAgUlhGVUxMKSkgewo+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFNQSSBSWEZVTEwsIFJYRklGT8KgIGZ1bGwgKi8K PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBldmVudF9pcnEgPSAxOwo+ID4gwqDCoMKgwqDC oMKgwqDCoCB9Cj4gPiBAQCAtMjMyLDEwICsyNDIsMTEgQEAgc3RhdGljIHZvaWQKPiA+IGliZXhf c3BpX2hvc3RfaXJxKEliZXhTUElIb3N0U3RhdGUgKnMpCj4gPiAKPiA+IMKgc3RhdGljIHZvaWQg aWJleF9zcGlfaG9zdF90cmFuc2ZlcihJYmV4U1BJSG9zdFN0YXRlICpzKQo+ID4gwqB7Cj4gPiAt wqDCoMKgIHVpbnQzMl90IHJ4LCB0eDsKPiA+ICvCoMKgwqAgdWludDMyX3QgcngsIHR4LCBkYXRh Owo+ID4gwqDCoMKgwqAgLyogR2V0IG51bSBvZiBvbmUgYnl0ZSB0cmFuc2ZlcnMgKi8KPiA+IC3C oMKgwqAgdWludDhfdCBzZWdtZW50X2xlbiA9ICgocy0+cmVnc1tJQkVYX1NQSV9IT1NUX0NPTU1B TkRdICYKPiA+IFJfQ09NTUFORF9MRU5fTUFTSykKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA+PiBSX0NPTU1BTkRfTEVOX1NISUZUKTsKPiA+ ICvCoMKgwqAgdWludDhfdCBzZWdtZW50X2xlbiA9IEZJRUxEX0VYMzIocy0KPiA+ID5yZWdzW0lC RVhfU1BJX0hPU1RfQ09NTUFORF0sCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIENPTU1BTkQswqAgTEVO KTsKPiA+ICsKPiA+IMKgwqDCoMKgIHdoaWxlIChzZWdtZW50X2xlbiA+IDApIHsKPiA+IMKgwqDC oMKgwqDCoMKgwqAgaWYgKGZpZm84X2lzX2VtcHR5KCZzLT50eF9maWZvKSkgewo+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIC8qIEFzc2VydCBTdGFsbCAqLwo+ID4gQEAgLTI2MiwyMiArMjcz LDIzIEBAIHN0YXRpYyB2b2lkCj4gPiBpYmV4X3NwaV9ob3N0X3RyYW5zZmVyKEliZXhTUElIb3N0 U3RhdGUgKnMpCj4gPiDCoMKgwqDCoMKgwqDCoMKgIC0tc2VnbWVudF9sZW47Cj4gPiDCoMKgwqDC oCB9Cj4gPiAKPiA+ICvCoMKgwqAgZGF0YSA9IHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9TVEFUVVNd Owo+ID4gwqDCoMKgwqAgLyogQXNzZXJ0IFJlYWR5ICovCj4gPiAtwqDCoMKgIHMtPnJlZ3NbSUJF WF9TUElfSE9TVF9TVEFUVVNdIHw9IFJfU1RBVFVTX1JFQURZX01BU0s7Cj4gPiArwqDCoMKgIGRh dGEgPSBGSUVMRF9EUDMyKGRhdGEsIFNUQVRVUywgUkVBRFksIDEpOwo+ID4gwqDCoMKgwqAgLyog U2V0IFJYUUQgKi8KPiA+IC3CoMKgwqAgcy0+cmVnc1tJQkVYX1NQSV9IT1NUX1NUQVRVU10gJj0g flJfU1RBVFVTX1JYUURfTUFTSzsKPiA+IC3CoMKgwqAgcy0+cmVnc1tJQkVYX1NQSV9IT1NUX1NU QVRVU10gfD0gKFJfU1RBVFVTX1JYUURfTUFTSwo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJiBkaXY0X3Jv dW5kX3VwKHNlZ21lbnRfbGVuKSk7Cj4gPiArwqDCoMKgIGRhdGEgPSBGSUVMRF9EUDMyKGRhdGEs IFNUQVRVUywgUlhRRCwKPiA+IGRpdjRfcm91bmRfdXAoc2VnbWVudF9sZW4pKTsKPiA+IMKgwqDC oMKgIC8qIFNldCBUWFFEICovCj4gPiAtwqDCoMKgIHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9TVEFU VVNdICY9IH5SX1NUQVRVU19UWFFEX01BU0s7Cj4gPiAtwqDCoMKgIHMtPnJlZ3NbSUJFWF9TUElf SE9TVF9TVEFUVVNdIHw9IChmaWZvOF9udW1fdXNlZCgmcy0+dHhfZmlmbykKPiA+IC8gNCkKPiA+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICYgUl9TVEFUVVNfVFhRRF9NQVNLOwo+ID4gK8KgwqDCoCBkYXRhID0g RklFTERfRFAzMihkYXRhLCBTVEFUVVMsIFRYUUQsIGZpZm84X251bV91c2VkKCZzLQo+ID4gPnR4 X2ZpZm8pIC8gNCk7Cj4gPiDCoMKgwqDCoCAvKiBDbGVhciBUWEZVTEwgKi8KPiA+IC3CoMKgwqAg cy0+cmVnc1tJQkVYX1NQSV9IT1NUX1NUQVRVU10gJj0gflJfU1RBVFVTX1RYRlVMTF9NQVNLOwo+ ID4gLcKgwqDCoCAvKiBBc3NlcnQgVFhFTVBUWSBhbmQgZHJvcCByZW1haW5pbmcgYnl0ZXMgdGhh dCBleGNlZWQKPiA+IHNlZ21lbnRfbGVuICovCj4gPiAtwqDCoMKgIGliZXhfc3BpX3R4Zmlmb19y ZXNldChzKTsKPiA+ICvCoMKgwqAgZGF0YSA9IEZJRUxEX0RQMzIoZGF0YSwgU1RBVFVTLCBUWEZV TEwsIDApOwo+ID4gwqDCoMKgwqAgLyogUmVzZXQgUlhFTVBUWSAqLwo+ID4gLcKgwqDCoCBzLT5y ZWdzW0lCRVhfU1BJX0hPU1RfU1RBVFVTXSAmPSB+Ul9TVEFUVVNfUlhFTVBUWV9NQVNLOwo+ID4g K8KgwqDCoCBkYXRhID0gRklFTERfRFAzMihkYXRhLCBTVEFUVVMsIFJYRU1QVFksIDApOwo+ID4g K8KgwqDCoCAvKiBTZXQgVFhFTVBUWSAqLwo+ID4gK8KgwqDCoCBkYXRhID0gRklFTERfRFAzMihk YXRhLCBTVEFUVVMsIFRYRU1QVFksIDEpOwo+ID4gK8KgwqDCoCAvKiBEcm9wIHJlbWFpbmluZyBi eXRlcyB0aGF0IGV4Y2VlZCBzZWdtZW50X2xlbiAqLwo+ID4gK8KgwqDCoCBpYmV4X3NwaV90eGZp Zm9fcmVzZXQocyk7Cj4gPiArwqDCoMKgIC8qIFVwZGF0ZSByZWdpc3RlciBzdGF0dXMgKi8KPiA+ ICvCoMKgwqAgcy0+cmVnc1tJQkVYX1NQSV9IT1NUX1NUQVRVU10gPSBkYXRhOwo+ID4gCj4gPiDC oMKgwqDCoCBpYmV4X3NwaV9ob3N0X2lycShzKTsKPiA+IMKgfQo+ID4gQEAgLTM0MCw3ICszNTIs NyBAQCBzdGF0aWMgdm9pZCBpYmV4X3NwaV9ob3N0X3dyaXRlKHZvaWQgKm9wYXF1ZSwKPiA+IGh3 YWRkciBhZGRyLAo+ID4gwqB7Cj4gPiDCoMKgwqDCoCBJYmV4U1BJSG9zdFN0YXRlICpzID0gb3Bh cXVlOwo+ID4gwqDCoMKgwqAgdWludDMyX3QgdmFsMzIgPSB2YWw2NDsKPiA+IC3CoMKgwqAgdWlu dDMyX3Qgc2hpZnRfbWFzayA9IDB4ZmY7Cj4gPiArwqDCoMKgIHVpbnQzMl90IHNoaWZ0X21hc2sg PSAweGZmLCBkYXRhOwo+ID4gwqDCoMKgwqAgdWludDhfdCB0eHFkX2xlbjsKPiA+IAo+ID4gwqDC oMKgwqAgdHJhY2VfaWJleF9zcGlfaG9zdF93cml0ZShhZGRyLCBzaXplLCB2YWw2NCk7Cj4gPiBA QCAtMzk3LDIxICs0MDksMjMgQEAgc3RhdGljIHZvaWQgaWJleF9zcGlfaG9zdF93cml0ZSh2b2lk ICpvcGFxdWUsCj4gPiBod2FkZHIgYWRkciwKPiA+IMKgwqDCoMKgwqDCoMKgwqAgcy0+cmVnc1th ZGRyXSA9IHZhbDMyOwo+ID4gCj4gPiDCoMKgwqDCoMKgwqDCoMKgIC8qIFNUQUxMLCBJUCBub3Qg ZW5hYmxlZCAqLwo+ID4gLcKgwqDCoMKgwqDCoMKgIGlmICghKHMtPnJlZ3NbSUJFWF9TUElfSE9T VF9DT05UUk9MXSAmCj4gPiBSX0NPTlRST0xfU1BJRU5fTUFTSykpIHsKPiA+ICvCoMKgwqDCoMKg wqDCoCBpZiAoIShGSUVMRF9FWDMyKHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9DT05UUk9MXSwKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQ09OVFJP TCwgU1BJRU4pKSkgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybjsKPiA+IMKg wqDCoMKgwqDCoMKgwqAgfQo+ID4gCj4gPiDCoMKgwqDCoMKgwqDCoMKgIC8qIFNQSSBub3QgcmVh ZHksIElSUSBFcnJvciAqLwo+ID4gLcKgwqDCoMKgwqDCoMKgIGlmICghKHMtPnJlZ3NbSUJFWF9T UElfSE9TVF9TVEFUVVNdICYKPiA+IFJfU1RBVFVTX1JFQURZX01BU0spKSB7Cj4gPiArwqDCoMKg wqDCoMKgwqAgaWYgKCEoRklFTERfRVgzMihzLT5yZWdzW0lCRVhfU1BJX0hPU1RfU1RBVFVTXSwK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgU1RB VFVTLCBSRUFEWSkpKSB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+cmVnc1tJQkVY X1NQSV9IT1NUX0VSUk9SX1NUQVRVU10gfD0KPiA+IFJfRVJST1JfU1RBVFVTX0NNREJVU1lfTUFT SzsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpYmV4X3NwaV9ob3N0X2lycShzKTsKPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4gPiDCoMKgwqDCoMKgwqDCoMKgIH0K PiA+ICsKPiA+IMKgwqDCoMKgwqDCoMKgwqAgLyogQXNzZXJ0IE5vdCBSZWFkeSAqLwo+ID4gwqDC oMKgwqDCoMKgwqDCoCBzLT5yZWdzW0lCRVhfU1BJX0hPU1RfU1RBVFVTXSAmPSB+Ul9TVEFUVVNf UkVBRFlfTUFTSzsKPiA+IAo+ID4gLcKgwqDCoMKgwqDCoMKgIGlmICgoKHZhbDMyICYgUl9DT01N QU5EX0RJUkVDVElPTl9NQVNLKSA+Pgo+ID4gUl9DT01NQU5EX0RJUkVDVElPTl9TSElGVCkKPiA+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgICE9IEJJRElSRUNUSU9OQUxfVFJBTlNGRVIpIHsKPiA+ ICvCoMKgwqDCoMKgwqDCoCBpZiAoRklFTERfRVgzMih2YWwzMiwgQ09NTUFORCwgRElSRUNUSU9O KSAhPQo+ID4gQklESVJFQ1RJT05BTF9UUkFOU0ZFUikgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgcWVtdV9sb2dfbWFzayhMT0dfVU5JTVAsCj4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICIlczogUnggT25seS9UeCBP bmx5IGFyZSBub3QKPiA+IHN1cHBvcnRlZFxuIiwgX19mdW5jX18pOwo+ID4gwqDCoMKgwqDCoMKg wqDCoCB9Cj4gPiBAQCAtNDUyLDggKzQ2Niw4IEBAIHN0YXRpYyB2b2lkIGliZXhfc3BpX2hvc3Rf d3JpdGUodm9pZCAqb3BhcXVlLAo+ID4gaHdhZGRyIGFkZHIsCj4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIEJ5dGUgb3JkZXJpbmcgaXMgc2V0IGJ5IHRo ZSBJUCAqLwo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKChzLT5yZWdzW0lCRVhfU1BJ X0hPU1RfU1RBVFVTXSAmCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFJfU1RB VFVTX0JZVEVPUkRFUl9NQVNLKSA9PSAwKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp ZiAoRklFTERfRVgzMihzLT5yZWdzW0lCRVhfU1BJX0hPU1RfU1RBVFVTXSwgU1RBVFVTLAo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQllU RU9SREVSKSA9PSAwKSB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBM RTogTFNCIHRyYW5zbWl0dGVkIGZpcnN0IChkZWZhdWx0IGZvciBpYmV4Cj4gPiBwcm9jZXNzb3Ip ICovCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaGlmdF9tYXNrID0gMHhm ZiA8PCAoaSAqIDgpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4gPiBA QCAtNDY1LDE3ICs0NzksMTggQEAgc3RhdGljIHZvaWQgaWJleF9zcGlfaG9zdF93cml0ZSh2b2lk ICpvcGFxdWUsCj4gPiBod2FkZHIgYWRkciwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBm aWZvOF9wdXNoKCZzLT50eF9maWZvLCAodmFsMzIgJiBzaGlmdF9tYXNrKSA+PiAoaSAqCj4gPiA4 KSk7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgIH0KPiA+IAo+ID4gK8KgwqDCoMKgwqDCoMKgIGRhdGEg PSBzLT5yZWdzW0lCRVhfU1BJX0hPU1RfU1RBVFVTXTsKPiA+IMKgwqDCoMKgwqDCoMKgwqAgLyog UmVzZXQgVFhFTVBUWSAqLwo+ID4gLcKgwqDCoMKgwqDCoMKgIHMtPnJlZ3NbSUJFWF9TUElfSE9T VF9TVEFUVVNdICY9IH5SX1NUQVRVU19UWEVNUFRZX01BU0s7Cj4gPiArwqDCoMKgwqDCoMKgwqAg ZGF0YSA9IEZJRUxEX0RQMzIoZGF0YSwgU1RBVFVTLCBUWEVNUFRZLCAwKTsKPiA+IMKgwqDCoMKg wqDCoMKgwqAgLyogVXBkYXRlIFRYUUQgKi8KPiA+IC3CoMKgwqDCoMKgwqDCoCB0eHFkX2xlbiA9 IChzLT5yZWdzW0lCRVhfU1BJX0hPU1RfU1RBVFVTXSAmCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgUl9TVEFUVVNfVFhRRF9NQVNLKSA+PiBSX1NUQVRVU19UWFFE X1NISUZUOwo+ID4gK8KgwqDCoMKgwqDCoMKgIHR4cWRfbGVuID0gRklFTERfRVgzMihzLT5yZWdz W0lCRVhfU1BJX0hPU1RfU1RBVFVTXSwKPiA+IFNUQVRVUywgVFhRRCk7Cj4gPiDCoMKgwqDCoMKg wqDCoMKgIC8qIFBhcnRpYWwgYnl0ZXMgKHNpemUgPCA0KSBhcmUgcGFkZGVkLCBpbiB3b3Jkcy4g Ki8KPiA+IMKgwqDCoMKgwqDCoMKgwqAgdHhxZF9sZW4gKz0gMTsKPiA+IC3CoMKgwqDCoMKgwqDC oCBzLT5yZWdzW0lCRVhfU1BJX0hPU1RfU1RBVFVTXSAmPSB+Ul9TVEFUVVNfVFhRRF9NQVNLOwo+ ID4gLcKgwqDCoMKgwqDCoMKgIHMtPnJlZ3NbSUJFWF9TUElfSE9TVF9TVEFUVVNdIHw9IHR4cWRf bGVuOwo+ID4gK8KgwqDCoMKgwqDCoMKgIGRhdGEgPSBGSUVMRF9EUDMyKGRhdGEsIFNUQVRVUywg VFhRRCwgdHhxZF9sZW4pOwo+ID4gwqDCoMKgwqDCoMKgwqDCoCAvKiBBc3NlcnQgUmVhZHkgKi8K PiA+IC3CoMKgwqDCoMKgwqDCoCBzLT5yZWdzW0lCRVhfU1BJX0hPU1RfU1RBVFVTXSB8PSBSX1NU QVRVU19SRUFEWV9NQVNLOwo+ID4gK8KgwqDCoMKgwqDCoMKgIGRhdGEgPSBGSUVMRF9EUDMyKGRh dGEsIFNUQVRVUywgUkVBRFksIDEpOwo+ID4gK8KgwqDCoMKgwqDCoMKgIC8qIFVwZGF0ZSByZWdp c3RlciBzdGF0dXMgKi8KPiA+ICvCoMKgwqDCoMKgwqDCoCBzLT5yZWdzW0lCRVhfU1BJX0hPU1Rf U1RBVFVTXSA9IGRhdGE7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+ID4gwqDCoMKgwqAg Y2FzZSBJQkVYX1NQSV9IT1NUX0VSUk9SX0VOQUJMRToKPiA+IMKgwqDCoMKgwqDCoMKgwqAgcy0+ cmVnc1thZGRyXSA9IHZhbDMyOwo+ID4gLS0KPiAKPiBSZWdhcmRzLAo+IEJpbgpUaGFua3MsCldp bGZyZWQK