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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 650F0C3DA49 for ; Tue, 30 Jul 2024 19:20:58 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 28BE510E2F4; Tue, 30 Jul 2024 19:20:58 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="HKLXQIj5"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) by gabe.freedesktop.org (Postfix) with ESMTPS id 95BFE10E2F4 for ; Tue, 30 Jul 2024 19:20:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1722367256; x=1753903256; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=2foCyUQEL6e3ouzsQMcypPMTkKlwa+haXW0mZM/pC78=; b=HKLXQIj57w1qcCc94ZJuWlg1q6r34tRQ28h6tUT9iB9EWSEspdhVjW7p C/0tc3NUhJlBfZzmEgKnH2wmWQP/liAZRKDV78gSYFuq4yjXgfRwBHm6X DRCQjBXq2ZumsW1AmdrTh7EzflxJ4z8WNGED5ATEOTNF7c2/wk3NqMHbm 2qRKRN1skDo6qhLBT2GXcKYbsQzVsmzvZqsgTSH0WvoceoAwH4ZPjOsNB YpDy9jHZnEkItab1IaQndvs/6vupqj8E4NoCSq7PGmiP8ulyowqLsVeFP BNmFdWRHmWM6cu95MM59Y8JggZ9kz4byLNyFB0UFC2MaLM52e82ChcG7I g==; X-CSE-ConnectionGUID: NGVx9JD8Q6WUC/U7iw5LwA== X-CSE-MsgGUID: SMhVutJ0TOiT8n27iCIXjQ== X-IronPort-AV: E=McAfee;i="6700,10204,11149"; a="24002695" X-IronPort-AV: E=Sophos;i="6.09,248,1716274800"; d="scan'208";a="24002695" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jul 2024 12:20:56 -0700 X-CSE-ConnectionGUID: avCL7H4iQ9CDd05ZtsuHWQ== X-CSE-MsgGUID: U571/qm9RXmxw1nkEwsVdQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.09,248,1716274800"; d="scan'208";a="55239602" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orviesa008.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 30 Jul 2024 12:20:56 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 30 Jul 2024 12:20:55 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Tue, 30 Jul 2024 12:20:55 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Tue, 30 Jul 2024 12:20:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SwqssHwVZSmcL9S85VY5mXVROATRDQSvkQ0OIpgTvDBZvUst3oG+pr1sCmxHuh0ViDSNoc9zmepO+tuEPjI30OImkpoLmduMKxO2k4qgNt4JUUwyID4dEyoNQwhc3eajKgTUWJJJtBZHD1RwKpNmaZJj5YOhFLVI8VH6j6ClcLHr1LlOueauc8kqWmH02oF1o9i5LxX++DzpCRafjwEi5ovLrrqQoM/BfiQApHu8TepAAyDGBfaqme22BXRG8lfPabwsC4JHdscanoBGg9Y2DisM9OO7TmxkQtoFx/NV0qZ0EsC1/H8AraFgt8oYhbSLXk7JmqxevsDV3gGwOD0WCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=2foCyUQEL6e3ouzsQMcypPMTkKlwa+haXW0mZM/pC78=; b=kasGA4x6GGURaGvyf4c7xZw8/DmjKmFNyeJo11FxcBUAIsrvg1JlPup9yMDIAptC6FGyGORKyCNf8xaYZ86gy8ta2bw5rgotQQloPPn3ecsYi6jL2kgUQjSWduI62M2RU1vjxIsYyxHJTDAjohGpvZWu22JHUC0SvywV9Ys7maPEWI8W/eOGj6f794mrPtsqaZ3sPaMxDxxH1Sx1WLjgblJuVdieNwHsqkilIdeuCdkmn5Pwe61qSCm+r8OCADyO/x9Uml/pVx+5XOGu9CYRiQqvwm5mYV7MKmDlf9U79O4gu0U4XHqpoX2j9Vb5T82tg1KeE9VNPZ9URvHFSQi5kg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM8PR11MB5751.namprd11.prod.outlook.com (2603:10b6:8:12::16) by MN2PR11MB4744.namprd11.prod.outlook.com (2603:10b6:208:263::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.28; Tue, 30 Jul 2024 19:20:52 +0000 Received: from DM8PR11MB5751.namprd11.prod.outlook.com ([fe80::4046:430d:f16c:b842]) by DM8PR11MB5751.namprd11.prod.outlook.com ([fe80::4046:430d:f16c:b842%3]) with mapi id 15.20.7828.016; Tue, 30 Jul 2024 19:20:52 +0000 From: "Teres Alexis, Alan Previn" To: "Dong, Zhanjun" , "intel-xe@lists.freedesktop.org" Subject: Re: [PATCH v14 3/5] drm/xe/guc: Add capture size check in GuC log buffer Thread-Topic: [PATCH v14 3/5] drm/xe/guc: Add capture size check in GuC log buffer Thread-Index: AQHa3dkRk3a6owkwFkK6+LxvwrARBLIPr3oA Date: Tue, 30 Jul 2024 19:20:52 +0000 Message-ID: <6aab19284ab6d27df960493808ba880084e9c79c.camel@intel.com> References: <20240724145130.522668-1-zhanjun.dong@intel.com> <20240724145130.522668-4-zhanjun.dong@intel.com> In-Reply-To: <20240724145130.522668-4-zhanjun.dong@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu2 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8PR11MB5751:EE_|MN2PR11MB4744:EE_ x-ms-office365-filtering-correlation-id: cd0c898e-026a-4054-e1fd-08dcb0ccba2a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?NEJEaVVERFFTOGVHTnpVUHBCZjU4czhhNEtkaDN0bnhkR3ZIalBFY0puMHFE?= =?utf-8?B?U0dWb0t3ekdqR1dlTStiaGhlR045eDFwVW9IMi9TQWlrNjhYL1h3WEt1Zmg0?= =?utf-8?B?WGFydnc4OEhMQ2EwQzh3cUViUFRZaVd6aDlFc1Q3eWsxdzBQMU1NNWdiK1Rs?= =?utf-8?B?Q2MwMW5VVzRKNDNVbnRsTDFKSC93WVQxZzI0Z3JLaHUyTzN4VVFiNFBwcUg5?= =?utf-8?B?SnI5M0NtQWdPaE41YnEwM1hrK1FDejZVVzVRdkFVdHZJalA5SUovZ1RyeDV5?= =?utf-8?B?Q0FLelpCS2wwMjhhdExacUhyekUzVHVqRnUrclRSZTJub20zNlFqckJFL0FH?= =?utf-8?B?NXBoSjhmS3BKazhLekhoYmxuQjFHTHdMaG8zMjJnQk9CcENKUjR1bGIwelV5?= =?utf-8?B?dkVNYlVRaWpWNW9IY2gyaVFzMFRaNGNobGJiL3VydFpQWS9KOFhVL2pTK3Y1?= =?utf-8?B?UDZrWVRNcjd3RU1Ib3BZNm54UFdURC8wRXNZVllyNmhxd3Bnb2pXajlkZGFh?= =?utf-8?B?RVR0L1dIbi8vMmNZc0x6Y3dhQU8rL2JuU3d6Vkg0eFAvZVphaG4rQi9DdTJI?= =?utf-8?B?QnNwNStBZ3ZKSWZRWDZiVXB4Q0gzMTl4eHpXc2FHSVk0RWtoSzI4UnlyZ3dE?= =?utf-8?B?dlg0K213bG1BYWJaa0hMempGbjhCZWlRMkpZSTNlcTRFaWlvcTM5OFRBSXdR?= =?utf-8?B?TkRMb1cwN05NNU9kZnRJWUhUbkE3MUxyS3A0SE1sbHJWQmQzeVBIa0x4dERz?= =?utf-8?B?Ym5Udzk0cU9BUEE4dnNpcWg2eWlCTHhXajJGVGwvSWlUY2t4bW9RWmY3Q2dj?= =?utf-8?B?OS9wcEpCTjJ2R2tUcmVNYlhNamhBYW1QMUJ3ays3aTBOSmU1alc2WVE3QW5R?= =?utf-8?B?RUkzREdPd2IrS01BZmh1RzgxcjUrbmZHRTF1UWx5TlhUVTNRTXVGbmhIZ2du?= =?utf-8?B?WE56RCtjRktYU05NYjRBYXFuS0hoSVd5VENES29yTFh5V2NUcktDYWdzVnd5?= =?utf-8?B?WjNuUCtRQVE3bUR6aWl2TzFibnZIYnErVUIwcmVjS2p1Y1R3OUVQSUhBS0lO?= =?utf-8?B?Y1RCQlhaaUlJMVRCeVI5aC80c3pXWXZvZVBndU00RTNENm9GUkFRSm1ia0Fi?= =?utf-8?B?cnA1bVQ2cVRQRmJJL1pHUWxzd0dxNitSa3kzUnllU0tZTkc5Rk5GSk9PS0M2?= =?utf-8?B?aVJIdWRLeWtlZU8vUHpkdlhNb0xxdVBQd2NUVGVLeE1CUTZHdk9TYUsvd1Nx?= =?utf-8?B?WkZTUk11RVc0OGg5TU5SVm9aSWZzNTFXeDJzWWZaRjZucnNENUU2TERCdW5Q?= =?utf-8?B?YWNVNmZQdFpiOVJxVXlzb2RxYmtaZnFRd3RuVXZnRmJHTzRUdmhKQkZLNmtz?= =?utf-8?B?WXVXcC94OHFNNEluOHhQV1kyMVhsYjZVM2dnaTRWUUhVTnhBZzlSYnF0NW9E?= =?utf-8?B?YzA3aVVUa3hzeEdTK1RBUnNDRFJ1d3FiQ1E4ci9LdlRzSjMzcGgxK0NUd29P?= =?utf-8?B?dHo3MTRlK0tMNHVkc2w2OXpIMExZLzNvOEJCRms3N20zZXo0bGM4ZjNKRGky?= =?utf-8?B?QTNMai8rRTBkcHlSVzBmNmo5SnRpUEhzbERoU2RsWDl2RSt4L0g2R1FiQTc5?= =?utf-8?B?Z0tVUFJ4Y3dHdGJrdmlCSGtRc2FlUUVQUXU1LzNZcDZMMUZNbUNkSlQrQmwx?= =?utf-8?B?ZUFEN3ZtcHc2QlM0ejJTVGlVV0hlVEdEVkl1cmhQMUY2UkZicURnQUFra2Mv?= =?utf-8?B?eFU5dk9OZ3JTWFpndUpIMWhNZ1ZpTUZLYU1vQXF1KytjWndPQkxMdytFdk1W?= =?utf-8?B?aFgxM25qdndiSmxGVHdjRnVjb0ZzNi9uY2E2OFdodC9jN1dRTjQwNXNpOWk5?= =?utf-8?B?clozVUQ3QVFaZ2VvNmxNWlVTYzJFK3lJSnJBTWRxcTNmMUE9PQ==?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5751.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bk1xSVJGT0xFMzBlVzMzMmtQS1FuWkJlWmI0djJiT2xYS1RnRGhEb09sU0dy?= =?utf-8?B?STRablJnV2pMbjJMeXQrZmxjU3dyamlJVTNhenZHUGJzOENha2hHNnBaZFZD?= =?utf-8?B?NEczWHFoM2NIMGZ0Y1hoL01sRDJLNDVzUytpaGp2WDFtM05oVEU1UzNsbk5Z?= =?utf-8?B?WHJZYlQ2aDFSanZJZnFMSTgwZUlTcjV5QllUYnpJb0tXblRsRDVMRG9pcnhl?= =?utf-8?B?UkVhN1hBdDlHSW1VSFM5RWpYS0lmakFycXgrRm92a2Y2UzByVG5FUzRlOGkz?= =?utf-8?B?S1U0SlR6bUsvWWpObUN6Q3R4N01iMTc5alUxUGFqTWhDMDVCS0ZoOHZPRnFs?= =?utf-8?B?QW0vVlF5ampxQnYrM3Rna0oxdm5oRXB5WW5LcG5tTm14enZHZldma2d2Q2l5?= =?utf-8?B?Z29BTXlxd1NPZUlmUUZXWDREUjRMSk4xUlpJbXNaT0VBM2Qvd01TQ3JpSDRm?= =?utf-8?B?K2h5a00rcTFzWTIxTFdGbHNxbUJmZUdhSmMzZjJ0cnRjT2Y2blVnSGl4YS84?= =?utf-8?B?MFNCWEdvanI2elMwYTRaNFkyemNJWkZ1ek5CVVo4ZG52dS9sNXNoNWZCYnlw?= =?utf-8?B?QjAyOURhYVROWmFQRUZHdm92TDlweXhqTEUvL1VLWitKbGNaUklCSVp5L3hR?= =?utf-8?B?a1NIcStLU20rUGR5Q0pqc040eS9QMDV4d0htWS9YS3pGK0IwQnNmbHBwSEF3?= =?utf-8?B?RnpPaVlTcmFBVkFzZEQ5NFBGQ2E5cGN3UHVic0JrZ2U4a2NXakJpSmxYS3gx?= =?utf-8?B?S2VHZnJaemVsTmtqOUxlVld6elFGWCtxQUU1L1dLb1Z2TVVNdVNwSE5GQk02?= =?utf-8?B?SDJVcnlFaXY5eUx5eEJERXkzTWFPRVMram1PMVZrZ0Z5ZE56RmExeUhZdER4?= =?utf-8?B?MUp5b1JrWFBNNUsrTnlXRGFTcUgvaE5ZTkh5anNHZVU4a2dGeWI1MXd0SXJl?= =?utf-8?B?VjlKZld0dHBCS2RDb3JISmdoU2dhU1lJRkVCRlNUcms4UCtlTlI4NGR0ditM?= =?utf-8?B?NjVwb1pkVldNRnp6b1E5ektFak9XNi9DQit4UEpZNG1GR3VHN0NvT0t5QlM1?= =?utf-8?B?RDJwYS9KMTg0clI0QmNnYlFxWnMyNDFkdFlvbFRVbVNpeUI2QlRPSXQ0R0hD?= =?utf-8?B?K3gyRlhOd2U2ZEU5OXUxMkpLWjRtTkg3UVUvK2tsWm92bi9VdzJjVGg4b3I5?= =?utf-8?B?elJ4T2tkeVNPbUZ3QjB5L0RwQ0svUnpvR0RORlVlcVpxQm15OFI0ODdoWWxp?= =?utf-8?B?RlZGa2c4NUF5K1dhdTNSWjdCVTJySTlJcUpIMUJFUGczUXdKV3U2eVpGODhT?= =?utf-8?B?OS9QamJRamNYLzdueVVUSWhsME1lTWl4ajZERmhkN1IvNFRyMmdoV1RvOHZL?= =?utf-8?B?YUlSb1Q3UHBNOHJvQ0R2NkgyRUdtb2dkSHJud05LSVYycGtIanovVXVlbWRR?= =?utf-8?B?bWJMWE92U2t4WDJoakRIRFhVb202ODEyVHYxSldIWjNIOUxDYVUvUFVzem1C?= =?utf-8?B?cnV2dWFNUll1Mkc2NVlleWxNZ1J4SWZhZXgxRWJxa241V3RXY09qNGhyanFE?= =?utf-8?B?WUVabm4rek9GaGJiQkZTd2Q1NUdPNTRnWFMrYjVuTVJFZXVQZ0dBUFFEam1O?= =?utf-8?B?ZExtWTdBaXhaT0laMW5mRGNWTGJNdnpicEszRWhsR2VvNDVlcGpoaXpmanM4?= =?utf-8?B?TlZQeHR5aUMrMzVYamdJQ3YwdmxHWHVBTzZWOE5NcEJCL1llcHhidXkyZnFQ?= =?utf-8?B?ZGU4ZU1FbXR3S2FtNDFUNzNQakhVekNwSnAwTGd3QjFmdjZ4UVZYTDB5aGt6?= =?utf-8?B?cEJmZ2pUakN5TWQ0ckxZVmljYkhKZTZGRGp2STZkdWNOZ3JqSnNsRTFvbjN5?= =?utf-8?B?NG5YRFlxdUV3SU9HajBLOWhTL1RNS2Y2SllsV1FjU0lzYWJVZVBuUnJsUFdG?= =?utf-8?B?cy9ML3hBQThwaStZR1BDdlkvRHZ2Q3B1bnZxSi9OTlVDUGxZazlrQ2xyeWJN?= =?utf-8?B?SklEcVEzekJHWUZZd1BBVjVnY0k4cklucU84dFpZTEhKT1BHUnI4VEJ1dVgx?= =?utf-8?B?VEQ2VU4yUncxWXFaellrTzQwVml1akxjOXVZWTdaMFlzeVhkRzcyM3dFM2lQ?= =?utf-8?B?T2RpazR0NjFnZXV2MXFTSDdra29iblFyellMSmRzZ3JxbXRSVTk0UUNnK2ZU?= =?utf-8?Q?GdQu19EHVABqxb2e5/plw40=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR11MB5751.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd0c898e-026a-4054-e1fd-08dcb0ccba2a X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jul 2024 19:20:52.2361 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 6VEcTzhHT4PVzeXJiqZW86RjPBOpSOxqtjzQPVpsrc0Lb/M0KnY9HRYFiZAZ90lUFfB1hoNhthiRQpPpI4DdsO/ha/wOMJz/JtmG7cadRxvumDcBnVU+Ty4n5bfYrM0X X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4744 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gV2VkLCAyMDI0LTA3LTI0IGF0IDA3OjUxIC0wNzAwLCBaaGFuanVuIERvbmcgd3JvdGU6Cj4g VGhlIGNhcHR1cmUtbm9kZXMgaXMgaW5jbHVkZWQgaW4gR3VDIGxvZyBidWZmZXIsIGFkZCB0aGUg c2l6ZSBjaGVjawo+IGZvciBjYXB0dXJlIHJlZ2lvbiBpbiB0aGUgd2hvbGUgR3VDIGxvZyBidWZm ZXIuCj4gQWRkIGNhcHR1cmUgb3V0cHV0IHNpemUgY2hlY2sgYmVmb3JlIGFsbG9jYXRpbmcgdGhl IHNoYXJlZCBidWZmZXIuCj4gCmFsYW46IEkgdGhpbmsgdGhlIHVzZSBvZiB0aGUgdGVybSAiY2Fw dHVyZS1ub2RlcyIgYWJvdmUgaXMgbm90IHZlcnkgY2xlYXIsCmFzc3VtaW5nIHRoZSB0ZXJtICJu b2RlcyIgaXMgcGVyIHRoZSBtZWFuaW5nIGluIHRoZSBleHRyYWN0aW9uIHBhdGNoLgpTbyBwZXJo YXBzIGEgdHdlYWsgdG8gYWJvdmUgZmlyc3QgbGluZToKIkNhcHR1cmUtbm9kZXMgZ2VuZXJhdGVk IGJ5IEd1QyBhcmUgcGxhY2VkIGluIHRoZSBHdUMgY2FwdHVyZSByaW5nCmJ1ZmZlciB3aGljaCBp cyBhIHN1Yi1yZWdpb24gb2YgdGhlIGxhcmdlciBHdWMtTG9nLWJ1ZmZlci4KQWRkIGNhcHR1cmUg b3V0cHV0IHNpemUgY2hlY2sgLi4uLiIuCgoKPiBTaWduZWQtb2ZmLWJ5OiBaaGFuanVuIERvbmcg PHpoYW5qdW4uZG9uZ0BpbnRlbC5jb20+Cj4gLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0veGUvYWJp L2d1Y19sb2dfYWJpLmjCoCB8wqAgMjAgKysrKwo+IMKgZHJpdmVycy9ncHUvZHJtL3hlL3hlX2d1 Y19jYXB0dXJlLmPCoMKgIHzCoCA4MyArKysrKysrKysrKysrKy0KPiDCoGRyaXZlcnMvZ3B1L2Ry bS94ZS94ZV9ndWNfbG9nLmPCoMKgwqDCoMKgwqAgfCAxNDEgKysrKysrKysrKysrKysrKysrKysr KysrKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS94ZS94ZV9ndWNfbG9nLmjCoMKgwqDCoMKgwqAgfMKg IDEyICsrLQo+IMKgZHJpdmVycy9ncHUvZHJtL3hlL3hlX2d1Y19sb2dfdHlwZXMuaCB8wqAgMTUg KysrCj4gwqA1IGZpbGVzIGNoYW5nZWQsIDI2OCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZS9hYmkvZ3VjX2xvZ19h YmkuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUvYWJpL2d1Y19sb2dfYWJp LmggYi9kcml2ZXJzL2dwdS9kcm0veGUvYWJpL2d1Y19sb2dfYWJpLmgKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uMTBkYjRmZmFhMTdmCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS9hYmkvZ3VjX2xvZ19hYmkuaAo+IEBAIC0wLDAg KzEsMjAgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ICsvKgo+ICsg KiBDb3B5cmlnaHQgwqkgMjAyNCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpZm5k ZWYgX0FCSV9HVUNfTE9HX0FCSV9ICj4gKyNkZWZpbmUgX0FCSV9HVUNfTE9HX0FCSV9ICj4gKwo+ ICsjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPiArCj4gKy8qIEd1QyBsb2dnaW5nIGJ1ZmZlciB0 eXBlcyAqLwo+ICtlbnVtIGd1Y19sb2dfYnVmZmVyX3R5cGUgewo+ICvCoMKgwqDCoMKgwqDCoEdV Q19MT0dfQlVGRkVSX0NSQVNIX0RVTVAsCj4gK8KgwqDCoMKgwqDCoMKgR1VDX0xPR19CVUZGRVJf REVCVUcsCj4gK8KgwqDCoMKgwqDCoMKgR1VDX0xPR19CVUZGRVJfQ0FQVFVSRSwKPiArfTsKPiAr Cj4gKyNkZWZpbmUgR1VDX0xPR19CVUZGRVJfVFlQRV9NQVjCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoDMKPiArCj4gKyNlbmRpZgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v eGUveGVfZ3VjX2NhcHR1cmUuYyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9ndWNfY2FwdHVyZS5j Cj4gaW5kZXggYmYxMWNkMmFhZjI1Li43MmFiYmE4ZjdiZjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3hlL3hlX2d1Y19jYXB0dXJlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUv eGVfZ3VjX2NhcHR1cmUuYwo+IEBAIC0yMiw2ICsyMiw3IEBACj4gwqAjaW5jbHVkZSAieGVfZ3Rf bWNyLmgiCj4gwqAjaW5jbHVkZSAieGVfZ3RfcHJpbnRrLmgiCj4gwqAjaW5jbHVkZSAieGVfZ3Vj LmgiCj4gKyNpbmNsdWRlICJ4ZV9ndWNfYWRzLmgiCj4gwqAjaW5jbHVkZSAieGVfZ3VjX2NhcHR1 cmUuaCIKPiDCoCNpbmNsdWRlICJ4ZV9ndWNfY2FwdHVyZV90eXBlcy5oIgo+IMKgI2luY2x1ZGUg InhlX2d1Y19jdC5oIgo+IEBAIC01ODgsNyArNTg5LDg2IEBAIHNpemVfdCB4ZV9ndWNfY2FwdHVy ZV9hZHNfaW5wdXRfd29yc3Rfc2l6ZShzdHJ1Y3QgeGVfZ3VjICpndWMpCj4gwqDCoMKgwqDCoMKg wqDCoHJldHVybiBQQUdFX0FMSUdOKHRvdGFsX3NpemUpOwo+IMKgfQo+IMKgCj4gLS8qKgo+ICtz dGF0aWMgaW50IGd1Y19jYXB0dXJlX291dHB1dF9zaXplX2VzdChzdHJ1Y3QgeGVfZ3VjICpndWMp Cj4gK3sKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgeGVfZ3QgKmd0ID0gZ3VjX3RvX2d0KGd1Yyk7 Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IHhlX2h3X2VuZ2luZSAqaHdlOwo+ICvCoMKgwqDCoMKg wqDCoGVudW0geGVfaHdfZW5naW5lX2lkIGlkOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBpbnQgY2Fw dHVyZV9zaXplID0gMDsKPiArwqDCoMKgwqDCoMKgwqBzaXplX3QgdG1wID0gMDsKPiArCj4gK8Kg wqDCoMKgwqDCoMKgaWYgKCFndWMtPmNhcHR1cmUpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldHVybiAtRU5PREVWOwo+ICsKPiArwqDCoMKgwqDCoMKgwqAvKgo+ICvCoMKgwqDC oMKgwqDCoCAqIElmIGV2ZXJ5IHNpbmdsZSBlbmdpbmUtaW5zdGFuY2Ugc3VmZmVyZWQgYSBmYWls dXJlIGluIHF1aWNrIHN1Y2Nlc3Npb24gYnV0Cj4gK8KgwqDCoMKgwqDCoMKgICogd2VyZSBhbGwg dW5yZWxhdGVkLCB0aGVuIGEgYnVyc3Qgb2YgbXVsdGlwbGUgZXJyb3ItY2FwdHVyZSBldmVudHMg d291bGQgZHVtcAo+ICvCoMKgwqDCoMKgwqDCoCAqIHJlZ2lzdGVycyBmb3IgZXZlcnkgb25lIGVu Z2luZSBpbnN0YW5jZSwgb25lIGF0IGEgdGltZS4gSW4gdGhpcyBjYXNlLCBHdUMKPiArwqDCoMKg wqDCoMKgwqAgKiB3b3VsZCBldmVuIGR1bXAgdGhlIGdsb2JhbC1yZWdpc3RlcnMgcmVwZWF0ZWRs eS4KPiArwqDCoMKgwqDCoMKgwqAgKgo+ICvCoMKgwqDCoMKgwqDCoCAqIEZvciBlYWNoIGVuZ2lu ZSBpbnN0YW5jZSwgdGhlcmUgd291bGQgYmUgMSB4IGd1Y19zdGF0ZV9jYXB0dXJlX2dyb3VwX3Qg b3V0cHV0Cj4gK8KgwqDCoMKgwqDCoMKgICogZm9sbG93ZWQgYnkgMyB4IGd1Y19zdGF0ZV9jYXB0 dXJlX3QgbGlzdHMuIFRoZSBsYXR0ZXIgaXMgaG93IHRoZSByZWdpc3Rlcgo+ICvCoMKgwqDCoMKg wqDCoCAqIGR1bXBzIGFyZSBzcGxpdCBhY3Jvc3MgZGlmZmVyZW50IHJlZ2lzdGVyIHR5cGVzICh3 aGVyZSB0aGUgJzMnIGFyZSBnbG9iYWwgdnMgY2xhc3MKPiArwqDCoMKgwqDCoMKgwqAgKiB2cyBp bnN0YW5jZSkuCj4gK8KgwqDCoMKgwqDCoMKgICovCj4gK8KgwqDCoMKgwqDCoMKgZm9yX2VhY2hf aHdfZW5naW5lKGh3ZSwgZ3QsIGlkKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGVudW0gZ3VjX2NhcHR1cmVfbGlzdF9jbGFzc190eXBlIGNhcHR1cmVfY2xhc3M7Cj4gKwo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXB0dXJlX2NsYXNzID0geGVfZW5naW5lX2Ns YXNzX3RvX2d1Y19jYXB0dXJlX2NsYXNzKGh3ZS0+Y2xhc3MpOwo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBjYXB0dXJlX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBndWNfc3RhdGVfY2Fw dHVyZV9ncm91cF9oZWFkZXJfdCkgKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKDMgKiBzaXpl b2Yoc3RydWN0IGd1Y19zdGF0ZV9jYXB0dXJlX2hlYWRlcl90KSk7Cj4gKwo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIWd1Y19jYXB0dXJlX2dldGxpc3RzaXplKGd1YywgMCwg R1VDX1NUQVRFX0NBUFRVUkVfVFlQRV9HTE9CQUwsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIDAsICZ0bXAsIHRydWUpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgY2FwdHVyZV9zaXplICs9IHRtcDsKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaWYgKCFndWNfY2FwdHVyZV9nZXRsaXN0c2l6ZShndWMsIDAsIEdVQ19TVEFU RV9DQVBUVVJFX1RZUEVfRU5HSU5FX0NMQVNTLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBjYXB0dXJlX2NsYXNzLCAmdG1wLCB0cnVlKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhcHR1cmVfc2l6ZSArPSB0bXA7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICghZ3VjX2NhcHR1cmVfZ2V0bGlzdHNpemUoZ3VjLCAw LCBHVUNfU1RBVEVfQ0FQVFVSRV9UWVBFX0VOR0lORV9JTlNUQU5DRSwKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY2FwdHVyZV9jbGFzcywgJnRtcCwgdHJ1ZSkpCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXB0dXJlX3NpemUgKz0gdG1w Owo+ICvCoMKgwqDCoMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIGNhcHR1cmVf c2l6ZTsKPiArfQo+ICsKPiArLyoKPiArICogQWRkIG9uIGEgM3ggbXVsdGlwbGllciB0byBhbGxv dyBmb3IgbXVsdGlwbGUgYmFjay10by1iYWNrIGNhcHR1cmVzIG9jY3VycmluZwo+ICsgKiBiZWZv cmUgdGhlIFhlIGNhbiByZWFkIHRoZSBkYXRhIG91dCBhbmQgcHJvY2VzcyBpdAo+ICsgKi8KPiAr I2RlZmluZSBHVUNfQ0FQVFVSRV9PVkVSQlVGRkVSX01VTFRJUExJRVIgMwo+ICsKPiArc3RhdGlj IHZvaWQgY2hlY2tfZ3VjX2NhcHR1cmVfc2l6ZShzdHJ1Y3QgeGVfZ3VjICpndWMpCj4gK3sKPiAr wqDCoMKgwqDCoMKgwqBpbnQgY2FwdHVyZV9zaXplID0gZ3VjX2NhcHR1cmVfb3V0cHV0X3NpemVf ZXN0KGd1Yyk7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IHNwYXJlX3NpemUgPSBjYXB0dXJlX3NpemUg KiBHVUNfQ0FQVFVSRV9PVkVSQlVGRkVSX01VTFRJUExJRVI7Cj4gK8KgwqDCoMKgwqDCoMKgdTMy IGJ1ZmZlcl9zaXplID0geGVfZ3VjX2xvZ19zZWN0aW9uX3NpemVfY2FwdHVyZSgmZ3VjLT5sb2cp Owo+ICsKPiArwqDCoMKgwqDCoMKgwqAvKgo+ICvCoMKgwqDCoMKgwqDCoCAqIE5PVEU6IGNhcHR1 cmVfc2l6ZSBpcyBtdWNoIHNtYWxsZXIgdGhhbiB0aGUgY2FwdHVyZSByZWdpb24KPiArwqDCoMKg wqDCoMKgwqAgKiBhbGxvY2F0aW9uIChERzI6IDw4MEsgdnMgMU1CKS4KPiArwqDCoMKgwqDCoMKg wqAgKiBBZGRpdGlvbmFsbHksIGl0cyBiYXNlZCBvbiBzcGFjZSBuZWVkZWQgdG8gZml0IGFsbCBl bmdpbmVzIGdldHRpbmcKPiArwqDCoMKgwqDCoMKgwqAgKiByZXNldCBhdCBvbmNlIHdpdGhpbiB0 aGUgc2FtZSBHMkggaGFuZGxlciB0YXNrIHNsb3QuIFRoaXMgaXMgdmVyeQo+ICvCoMKgwqDCoMKg wqDCoCAqIHVubGlrZWx5LiBIb3dldmVyLCBpZiBHdUMgcmVhbGx5IGRvZXMgcnVuIG91dCBvZiBz cGFjZSBmb3Igd2hhdGV2ZXIKPiArwqDCoMKgwqDCoMKgwqAgKiByZWFzb24sIHdlIHdpbGwgc2Vl IGFuIHNlcGFyYXRlIHdhcm5pbmcgbWVzc2FnZSB3aGVuIHByb2Nlc3NpbmcgdGhlCj4gK8KgwqDC oMKgwqDCoMKgICogRzJIIGV2ZW50IGNhcHR1cmUtbm90aWZpY2F0aW9uLCBzZWFyY2ggZm9yOgo+ ICvCoMKgwqDCoMKgwqDCoCAqIHhlX2d1Y19TVEFURV9DQVBUVVJFX0VWRU5UX1NUQVRVU19OT1NQ QUNFLgo+ICvCoMKgwqDCoMKgwqDCoCAqLwo+ICvCoMKgwqDCoMKgwqDCoGlmIChjYXB0dXJlX3Np emUgPCAwKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4ZV9ndF9kYmcoZ3VjX3Rv X2d0KGd1YyksCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAiRmFpbGVkIHRvIGNhbGN1bGF0ZSBlcnJvciBzdGF0ZSBjYXB0dXJlIGJ1ZmZlciBtaW5p bXVtIHNpemU6ICVkIVxuIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGNhcHR1cmVfc2l6ZSk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKGNhcHR1cmVf c2l6ZSA+IGJ1ZmZlcl9zaXplKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4ZV9n dF9kYmcoZ3VjX3RvX2d0KGd1YyksICJFcnJvciBzdGF0ZSBjYXB0dXJlIGJ1ZmZlciBtYXliZSBz bWFsbDogJWQgPCAlZFxuIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGJ1ZmZlcl9zaXplLCBjYXB0dXJlX3NpemUpOwo+ICvCoMKgwqDCoMKgwqDC oGVsc2UgaWYgKHNwYXJlX3NpemUgPiBidWZmZXJfc2l6ZSkKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgeGVfZ3RfZGJnKGd1Y190b19ndChndWMpLAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIkVycm9yIHN0YXRlIGNhcHR1cmUgYnVm ZmVyIGxhY2tzIHNwYXJlIHNpemU6ICVkIDwgJWQgKG1pbiA9ICVkKVxuIiwKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmZlcl9zaXplLCBzcGFy ZV9zaXplLCBjYXB0dXJlX3NpemUpOwo+ICt9Cj4gKwo+ICsvKgo+IMKgICogeGVfZ3VjX2NhcHR1 cmVfaW5pdCAtIEluaXQgZm9yIEd1QyByZWdpc3RlciBjYXB0dXJlCj4gwqAgKiBAZ3VjOiBUaGUg R3VDIG9iamVjdAo+IMKgICoKPiBAQCAtNjA1LDUgKzY4NSw2IEBAIGludCB4ZV9ndWNfY2FwdHVy ZV9pbml0KHN0cnVjdCB4ZV9ndWMgKmd1YykKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBndWMtPmNh cHR1cmUtPnJlZ2xpc3RzID0gZ3VjX2NhcHR1cmVfZ2V0X2RldmljZV9yZWdsaXN0KGd1Yyk7Cj4g wqAKPiArwqDCoMKgwqDCoMKgwqBjaGVja19ndWNfY2FwdHVyZV9zaXplKGd1Yyk7Cj4gwqDCoMKg wqDCoMKgwqDCoHJldHVybiAwOwo+IMKgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v eGUveGVfZ3VjX2xvZy5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2d1Y19sb2cuYwo+IGluZGV4 IGEzN2VlMzQxOTQyOC4uMjM1MTI4NzA1MDNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS94ZS94ZV9ndWNfbG9nLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ3VjX2xvZy5j Cj4gQEAgLTksOSArOSw0NyBAQAo+IMKgCj4gwqAjaW5jbHVkZSAieGVfYm8uaCIKPiDCoCNpbmNs dWRlICJ4ZV9ndC5oIgo+ICsjaW5jbHVkZSAieGVfZ3RfcHJpbnRrLmgiCj4gKyNpbmNsdWRlICJ4 ZV9ndWMuaCIKPiDCoCNpbmNsdWRlICJ4ZV9tYXAuaCIKPiDCoCNpbmNsdWRlICJ4ZV9tb2R1bGUu aCIKPiDCoAo+ICsjZGVmaW5lIEdVQ19MT0dfREVGQVVMVF9DUkFTSF9CVUZGRVJfU0laRcKgwqDC oMKgwqDCoENSQVNIX0JVRkZFUl9TSVpFCj4gKyNkZWZpbmUgR1VDX0xPR19ERUZBVUxUX0RFQlVH X0JVRkZFUl9TSVpFwqDCoMKgwqDCoMKgREVCVUdfQlVGRkVSX1NJWkUKPiArI2RlZmluZSBHVUNf TE9HX0RFRkFVTFRfQ0FQVFVSRV9CVUZGRVJfU0laRcKgwqDCoMKgQ0FQVFVSRV9CVUZGRVJfU0la RQo+ICsKPiArI2RlZmluZSBHVUNfTE9HX0NBTENfVU5JVChzaXplKcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgKCgoc2l6ZSkgJSBTWl8xTSkgPT0gMCA/IFNaXzFNIDogU1pfNEspCj4g KyNkZWZpbmUgR1VDX0xPR19DQUxDX0ZMQUcoc2l6ZSnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCgoKHNpemUpICUgU1pfMU0pID09IDAgPyBHVUNfTE9HX0xPR19BTExPQ19VTklUUyA6 IDApCj4gKwo+ICsvKiBTaXplIGlzICsxIHVuaXQgKi8KPiArI2RlZmluZSBHVUNfTE9HX0NBTENf Q09VTlQoc2l6ZSnCoMKgwqDCoMKgwqDCoCgoc2l6ZSkgLyBHVUNfTE9HX0NBTENfVU5JVChzaXpl KSAtIDEpCj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHhlX2xvZ19zaXplc190eXBlIGxvZ19z aXplc1tHVUNfTE9HX0JVRkZFUl9UWVBFX01BWF0gPSB7Cj4gCmFsYW46IGkgYmVsaWV2ZSB5b3Ug YXJlIHN0aWxsIG5vdCBnZXR0aW5nIG1lLCBhcG9sb2dpZXMgZm9yIG5vdCBleHBsYWluaW5nCmNs ZWFyZXIsIEkgZG9udCBiZWxpZXZlIHlvdSBuZWVkICJ4ZV9sb2dfc2l6ZXNfdHlwZSIgYXQgYWxs LCBpIGRvbnQgYmVsaWV2ZQp5b3UgbmVlZCB0aGlzIGxvZ19zaXplcyBhdCBhbGwsIGFsbCB5b3Ug bmVlZCBpcyBmb3IgdGhlIGZ1bmN0aW9uCnhlX2d1Y19sb2dfc2VjdGlvbl9zaXplX2NhcHR1cmUg dG8gcmV0dXJuIGVpdGhlciBDUkFTSF9CVUZGRVJfU0laRSBvcgpERUJVR19CVUZGRVJfU0laRSBv ciBDQVBUVVJFX0JVRkZFUl9TSVpFIGJhc2VkIG9uIHRoZSB0eXBlLiBFdmVuIGlmIHlvdSB3YW50 CmEgc3RhdGljIGxvb2t1cCB0YWJsZSBpdCBtaWdodCBvbmx5IG5lZWQgdG8gYmUgYXMgc2ltcGxl IGFzOgoKc2l6ZV90IGd1Y19yZWdpb25fc2l6ZXNbR1VDX0xPR19CVUZGRVJfVFlQRV9NQVhdID0g e0NSQVNIX0JVRkZFUl9TSVpFLCBERUJVR19CVUZGRVJfU0laRSwgQ0FQVFVSRV9CVUZGRVJfU0la RX07CgpUaGF0IHNhaWQsIHlvdSBkb250IGV2ZW4gbmVlZCBhbnkgb2YgdGhlICNkZWZpbmVzIGFi b3ZlIGZvciBHVUNfTE9HX0RFRkFVTFRfKl9TSVpFLApHVUNfTE9HX0NBTENfVU5JVC9GTEFHL0NP VU5ULCBHVUNfTE9HX0NPVU5ULiBZb3UgYXJlIG92ZXJibG9hdGluZyB0aGlzIHBhdGNoIHVubmVj ZXNzYXJpbHkKYmVjYXVzZSB5b3Uga2VlcCBwdWxsaW5nIGluIGk5MTUgY29kZSB0aGF0IHdhcyB1 c2VkIGZvciB0aGUgaW5pdCB0aW1lIGR5bmFtaWMgY2FsY3VsYXRpb24Kb2YgcmVnaW9uIHNpemVz LiBOb25lIG9mIHRoaXMgaXMgcmVxdXJlZC4gSSBkb250IHNlZSB5b3UgZXZlbiB1c2luZyBhbnkg b2Ygb3RoZXIgaW5mbwpiZXNpZGVzIHNpemUgd2hpY2ggaXMgYmFzY2ljYWxseSBDUkFTSC9ERUJV Ry9DQVBUVVJFX0JVRkZFUl9TSVpFCgo+ICvCoMKgwqDCoMKgwqDCoHsKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgR1VDX0xPR19ERUZBVUxUX0NSQVNIX0JVRkZFUl9TSVpFLAo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBHVUNfTE9HX0NBTENfVU5JVChHVUNfTE9HX0RF RkFVTFRfQ1JBU0hfQlVGRkVSX1NJWkUpLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBHVUNfTE9HX0NBTENfQ09VTlQoR1VDX0xPR19ERUZBVUxUX0NSQVNIX0JVRkZFUl9TSVpFKSwK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgR1VDX0xPR19DQUxDX0ZMQUcoR1VDX0xP R19ERUZBVUxUX0NSQVNIX0JVRkZFUl9TSVpFKQo+ICvCoMKgwqDCoMKgwqDCoH0sCj4gK8KgwqDC oMKgwqDCoMKgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBHVUNfTE9HX0RFRkFV TFRfREVCVUdfQlVGRkVSX1NJWkUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEdV Q19MT0dfQ0FMQ19VTklUKEdVQ19MT0dfREVGQVVMVF9ERUJVR19CVUZGRVJfU0laRSksCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEdVQ19MT0dfQ0FMQ19DT1VOVChHVUNfTE9HX0RF RkFVTFRfREVCVUdfQlVGRkVSX1NJWkUpLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBHVUNfTE9HX0NBTENfRkxBRyhHVUNfTE9HX0RFRkFVTFRfREVCVUdfQlVGRkVSX1NJWkUpCj4g K8KgwqDCoMKgwqDCoMKgfSwKPiArwqDCoMKgwqDCoMKgwqB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoEdVQ19MT0dfREVGQVVMVF9DQVBUVVJFX0JVRkZFUl9TSVpFLAo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBHVUNfTE9HX0NBTENfVU5JVChHVUNfTE9HX0RFRkFV TFRfQ0FQVFVSRV9CVUZGRVJfU0laRSksCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oEdVQ19MT0dfQ0FMQ19DT1VOVChHVUNfTE9HX0RFRkFVTFRfQ0FQVFVSRV9CVUZGRVJfU0laRSks Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEdVQ19MT0dfQ0FMQ19GTEFHKEdVQ19M T0dfREVGQVVMVF9DQVBUVVJFX0JVRkZFUl9TSVpFKQo+ICvCoMKgwqDCoMKgwqDCoH0KPiArfTsK PiArCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHhlX2d1YyAqbG9nX3RvX2d1YyhzdHJ1Y3QgeGVf Z3VjX2xvZyAqbG9nKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIGNvbnRhaW5lcl9vZihs b2csIHN0cnVjdCB4ZV9ndWMsIGxvZyk7Cj4gK30KPiArCj4gwqBzdGF0aWMgc3RydWN0IHhlX2d0 ICoKPiDCoGxvZ190b19ndChzdHJ1Y3QgeGVfZ3VjX2xvZyAqbG9nKQo+IMKgewo+IEBAIC04MCw3 ICsxMTgsOCBAQCB2b2lkIHhlX2d1Y19sb2dfcHJpbnQoc3RydWN0IHhlX2d1Y19sb2cgKmxvZywg c3RydWN0IGRybV9wcmludGVyICpwKQo+IMKgaW50IHhlX2d1Y19sb2dfaW5pdChzdHJ1Y3QgeGVf Z3VjX2xvZyAqbG9nKQo+IMKgewo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgeGVfZGV2aWNlICp4 ZSA9IGxvZ190b194ZShsb2cpOwo+IC3CoMKgwqDCoMKgwqDCoHN0cnVjdCB4ZV90aWxlICp0aWxl ID0gZ3RfdG9fdGlsZShsb2dfdG9fZ3QobG9nKSk7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IHhl X2d0ICpndCA9IGxvZ190b19ndChsb2cpOwo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCB4ZV90aWxl ICp0aWxlID0gZ3RfdG9fdGlsZShndCk7Cj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCB4ZV9ibyAq Ym87Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgYm8gPSB4ZV9tYW5hZ2VkX2JvX2NyZWF0ZV9waW5f bWFwKHhlLCB0aWxlLCBndWNfbG9nX3NpemUoKSwKPiBAQCAtOTYsMyArMTM1LDEwMyBAQCBpbnQg eGVfZ3VjX2xvZ19pbml0KHN0cnVjdCB4ZV9ndWNfbG9nICpsb2cpCj4gwqAKPiDCoMKgwqDCoMKg wqDCoMKgcmV0dXJuIDA7Cj4gwqB9Cj4gKwo+ICtzdGF0aWMgdTMyIHhlX2d1Y19sb2dfc2VjdGlv bl9zaXplX2NyYXNoKHN0cnVjdCB4ZV9ndWNfbG9nICpsb2cpCj4gK3sKPiArwqDCoMKgwqDCoMKg wqByZXR1cm4gbG9nX3NpemVzW0dVQ19MT0dfQlVGRkVSX0NSQVNIX0RVTVBdLmJ5dGVzOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdTMyIHhlX2d1Y19sb2dfc2VjdGlvbl9zaXplX2RlYnVnKHN0cnVjdCB4 ZV9ndWNfbG9nICpsb2cpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gbG9nX3NpemVzW0dV Q19MT0dfQlVGRkVSX0RFQlVHXS5ieXRlczsKPiArfQo+ICsKPiArLyoqCj4gKyAqIHhlX2d1Y19s b2dfc2VjdGlvbl9zaXplX2NhcHR1cmUgLSBHZXQgY2FwdHVyZSBidWZmZXIgc2l6ZSBpbiBsb2cg c2VjdGlvbnMuCj4gKyAqIEBsb2c6IFRoZSBsb2cgb2JqZWN0Lgo+ICsgKgo+ICsgKiBUaGlzIGZ1 bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBjYXB0dXJlIGJ1ZmZlciBzaXplIGluIGxvZyBzZWN0aW9u cy4KPiArICoKPiArICogUmV0dXJuOiBjYXB0dXJlIGJ1ZmZlciBzaXplLgo+ICsgKi8KPiArdTMy IHhlX2d1Y19sb2dfc2VjdGlvbl9zaXplX2NhcHR1cmUoc3RydWN0IHhlX2d1Y19sb2cgKmxvZykK PiArewo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiBsb2dfc2l6ZXNbR1VDX0xPR19CVUZGRVJfQ0FQ VFVSRV0uYnl0ZXM7Cj4gK30KPiArCj4gKy8qKgo+ICsgKiB4ZV9ndWNfY2hlY2tfbG9nX2J1Zl9v dmVyZmxvdyAtIENoZWNrIGlmIGxvZyBidWZmZXIgb3ZlcmZsb3dlZAo+ICsgKiBAbG9nOiBUaGUg bG9nIG9iamVjdC4KPiArICogQHR5cGU6IFRoZSBsb2cgYnVmZmVyIHR5cGUKPiArICogQGZ1bGxf Y250OiBUaGUgY291bnQgb2YgYnVmZmVyIGZ1bGwKPiArICoKPiArICogVGhpcyBmdW5jdGlvbiB3 aWxsIGNoZWNrIGNvdW50IG9mIGJ1ZmZlciBmdWxsIGFnYWluc3QgcHJldmlvdXMsIG1pc21hdGNo Cj4gKyAqIGluZGljYXRlIG92ZXJmbG93ZWQuCj4gKyAqIFVwZGF0ZSB0aGUgc2FtcGxlZF9vdmVy ZmxvdyBjb3VudGVyLCBpZiB0aGUgNCBiaXQgY291bnRlciBvdmVyZmxvd2VkLCBhZGQKPiArICog dXAgMTYgdG8gY29ycmVjdCB0aGUgdmFsdWUuCj4gKyAqCj4gKyAqIFJldHVybjogVHJ1ZSBpZiBv dmVyZmxvd2VkLgo+ICsgKi8KPiArYm9vbCB4ZV9ndWNfY2hlY2tfbG9nX2J1Zl9vdmVyZmxvdyhz dHJ1Y3QgeGVfZ3VjX2xvZyAqbG9nLCBlbnVtIGd1Y19sb2dfYnVmZmVyX3R5cGUgdHlwZSwKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHVuc2lnbmVkIGludCBmdWxsX2NudCkKPiArewphbGFuOiBJIGRvbnQgc2VlIHlv dSB1c2luZyB0aGlzIGZ1bmN0aW9uIGF0IGFsbC4gVGhpcyBmdW5jdGlvbiBhbG9uZyB3aXRoIHRo ZSAic3RhdHMiCnN1Yi1zdHJ1Y3R1cmUgeW91IGFkZGVkIGludG8gJ3N0cnVjdCB4ZV9ndWNfbG9n IiByaWdodCBhdCB0aGUgYm90dG9tIGFyZSBib3RoCm9ubHkgdXNlZCBpbiB0aGUgZXh0cmFjdGlv biBwYXRjaCBzbyB0aGVzZSBzaG91bGQgYmUgaW4gdGhhdCBvdGhlciBwYXRjaC4KPiArwqDCoMKg wqDCoMKgwqB1bnNpZ25lZCBpbnQgcHJldl9mdWxsX2NudCA9IGxvZy0+c3RhdHNbdHlwZV0uc2Ft cGxlZF9vdmVyZmxvdzsKPiArwqDCoMKgwqDCoMKgwqBib29sIG92ZXJmbG93ID0gZmFsc2U7Cj4g Kwo+ICvCoMKgwqDCoMKgwqDCoGlmIChmdWxsX2NudCAhPSBwcmV2X2Z1bGxfY250KSB7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG92ZXJmbG93ID0gdHJ1ZTsKPiArCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvZy0+c3RhdHNbdHlwZV0ub3ZlcmZsb3cgPSBmdWxs X2NudDsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbG9nLT5zdGF0c1t0eXBlXS5z YW1wbGVkX292ZXJmbG93ICs9IGZ1bGxfY250IC0gcHJldl9mdWxsX2NudDsKPiArCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChmdWxsX2NudCA8IHByZXZfZnVsbF9jbnQpIHsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIGJ1ZmZl cl9mdWxsX2NudCBpcyBhIDQgYml0IGNvdW50ZXIgKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvZy0+c3RhdHNbdHlwZV0uc2FtcGxlZF9vdmVyZmxv dyArPSAxNjsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB4ZV9ndF9ub3RpY2UobG9nX3RvX2d0KGxvZyksICJsb2cgYnVm ZmVyIG92ZXJmbG93XG4iKTsKPiArwqDCoMKgwqDCoMKgwqB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDC oHJldHVybiBvdmVyZmxvdzsKPiArfQo+ICsKPiArLyoqCj4gKyAqIHhlX2d1Y19nZXRfbG9nX2J1 ZmZlcl9zaXplIC0gR2V0IGxvZyBidWZmZXIgc2l6ZSBmb3IgYSB0eXBlLgo+ICsgKiBAbG9nOiBU aGUgbG9nIG9iamVjdC4KPiArICogQHR5cGU6IFRoZSBsb2cgYnVmZmVyIHR5cGUKPiArICoKPiAr ICogUmV0dXJuOiBidWZmZXIgc2l6ZS4KPiArICovCj4gK3UzMiB4ZV9ndWNfZ2V0X2xvZ19idWZm ZXJfc2l6ZShzdHJ1Y3QgeGVfZ3VjX2xvZyAqbG9nLCBlbnVtIGd1Y19sb2dfYnVmZmVyX3R5cGUg dHlwZSkKPiArewo+ICvCoMKgwqDCoMKgwqDCoHN3aXRjaCAodHlwZSkgewo+ICvCoMKgwqDCoMKg wqDCoGNhc2UgR1VDX0xPR19CVUZGRVJfQ1JBU0hfRFVNUDoKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgcmV0dXJuIHhlX2d1Y19sb2dfc2VjdGlvbl9zaXplX2NyYXNoKGxvZyk7Cj4g K8KgwqDCoMKgwqDCoMKgY2FzZSBHVUNfTE9HX0JVRkZFUl9ERUJVRzoKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHhlX2d1Y19sb2dfc2VjdGlvbl9zaXplX2RlYnVnKGxv Zyk7Cj4gK8KgwqDCoMKgwqDCoMKgY2FzZSBHVUNfTE9HX0JVRkZFUl9DQVBUVVJFOgo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4geGVfZ3VjX2xvZ19zZWN0aW9uX3NpemVf Y2FwdHVyZShsb2cpOwo+ICvCoMKgwqDCoMKgwqDCoH0KPiArwqDCoMKgwqDCoMKgwqByZXR1cm4g MDsKPiArfQo+ICsKPiArLyoqCj4gKyAqIHhlX2d1Y19nZXRfbG9nX2J1ZmZlcl9vZmZzZXQgLSBH ZXQgb2Zmc2V0IGluIGxvZyBidWZmZXIgZm9yIGEgdHlwZS4KPiArICogQGxvZzogVGhlIGxvZyBv YmplY3QuCj4gKyAqIEB0eXBlOiBUaGUgbG9nIGJ1ZmZlciB0eXBlCj4gKyAqCj4gKyAqIFRoaXMg ZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIG9mZnNldCBpbiB0aGUgbG9nIGJ1ZmZlciBmb3IgYSB0 eXBlLgo+ICsgKiBSZXR1cm46IGJ1ZmZlciBvZmZzZXQuCj4gKyAqLwo+ICt1MzIgeGVfZ3VjX2dl dF9sb2dfYnVmZmVyX29mZnNldChzdHJ1Y3QgeGVfZ3VjX2xvZyAqbG9nLCBlbnVtIGd1Y19sb2df YnVmZmVyX3R5cGUgdHlwZSkKPiArewo+ICvCoMKgwqDCoMKgwqDCoGVudW0gZ3VjX2xvZ19idWZm ZXJfdHlwZSBpOwo+ICvCoMKgwqDCoMKgwqDCoHUzMiBvZmZzZXQgPSBQQUdFX1NJWkU7LyogZm9y IHRoZSBsb2dfYnVmZmVyX3N0YXRlcyAqLwo+ICsKPiArwqDCoMKgwqDCoMKgwqBmb3IgKGkgPSBH VUNfTE9HX0JVRkZFUl9DUkFTSF9EVU1QOyBpIDwgR1VDX0xPR19CVUZGRVJfVFlQRV9NQVg7ICsr aSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoaSA9PSB0eXBlKQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG9mZnNldCArPSB4ZV9ndWNfZ2V0X2xvZ19idWZm ZXJfc2l6ZShsb2csIGkpOwo+ICvCoMKgwqDCoMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDCoMKg cmV0dXJuIG9mZnNldDsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVf Z3VjX2xvZy5oIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2d1Y19sb2cuaAo+IGluZGV4IDJkMjVh YjI4YjRiMy4uMWQzYjEyM2NlYmQzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94 ZV9ndWNfbG9nLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ3VjX2xvZy5oCj4gQEAg LTcsNiArNyw3IEBACj4gwqAjZGVmaW5lIF9YRV9HVUNfTE9HX0hfCj4gwqAKPiDCoCNpbmNsdWRl ICJ4ZV9ndWNfbG9nX3R5cGVzLmgiCj4gKyNpbmNsdWRlICJ4ZV9ndWNfdHlwZXMuaCIKPiDCoAo+ IMKgc3RydWN0IGRybV9wcmludGVyOwo+IMKgCj4gQEAgLTE3LDcgKzE4LDcgQEAgc3RydWN0IGRy bV9wcmludGVyOwo+IMKgI2Vsc2UKPiDCoCNkZWZpbmUgQ1JBU0hfQlVGRkVSX1NJWkXCoMKgwqDC oMKgwqBTWl84Swo+IMKgI2RlZmluZSBERUJVR19CVUZGRVJfU0laRcKgwqDCoMKgwqDCoFNaXzY0 Swo+IC0jZGVmaW5lIENBUFRVUkVfQlVGRkVSX1NJWkXCoMKgwqDCoFNaXzE2Swo+ICsjZGVmaW5l IENBUFRVUkVfQlVGRkVSX1NJWkXCoMKgwqDCoFNaXzFNCj4gwqAjZW5kaWYKPiDCoC8qCj4gwqAg KiBXaGlsZSB3ZSdyZSB1c2luZyBwbGFpbiBsb2cgbGV2ZWwgaW4gaTkxNSwgR3VDIGNvbnRyb2xz IGFyZSBtdWNoIG1vcmUuLi4KPiBAQCAtNDUsNCArNDYsMTMgQEAgeGVfZ3VjX2xvZ19nZXRfbGV2 ZWwoc3RydWN0IHhlX2d1Y19sb2cgKmxvZykKPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGxvZy0+ bGV2ZWw7Cj4gwqB9Cj4gwqAKPiArdTMyIHhlX2d1Y19sb2dfc2VjdGlvbl9zaXplX2NhcHR1cmUo c3RydWN0IHhlX2d1Y19sb2cgKmxvZyk7Cj4gKwo+ICtib29sIHhlX2d1Y19jaGVja19sb2dfYnVm X292ZXJmbG93KHN0cnVjdCB4ZV9ndWNfbG9nICpsb2csCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnVtIGd1Y19s b2dfYnVmZmVyX3R5cGUgdHlwZSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBmdWxsX2NudCk7 Cj4gKwo+ICt1MzIgeGVfZ3VjX2dldF9sb2dfYnVmZmVyX3NpemUoc3RydWN0IHhlX2d1Y19sb2cg KmxvZywgZW51bSBndWNfbG9nX2J1ZmZlcl90eXBlIHR5cGUpOwo+ICt1MzIgeGVfZ3VjX2dldF9s b2dfYnVmZmVyX29mZnNldChzdHJ1Y3QgeGVfZ3VjX2xvZyAqbG9nLCBlbnVtIGd1Y19sb2dfYnVm ZmVyX3R5cGUgdHlwZSk7Cj4gKwo+IMKgI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS94ZS94ZV9ndWNfbG9nX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ3VjX2xv Z190eXBlcy5oCj4gaW5kZXggMTI1MDgwZDEzOGE3Li4zZGE3ZDUyNjI2MDEgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2d1Y19sb2dfdHlwZXMuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS94ZS94ZV9ndWNfbG9nX3R5cGVzLmgKPiBAQCAtNyw5ICs3LDE4IEBACj4gwqAjZGVm aW5lIF9YRV9HVUNfTE9HX1RZUEVTX0hfCj4gwqAKPiDCoCNpbmNsdWRlIDxsaW51eC90eXBlcy5o Pgo+ICsjaW5jbHVkZSAiYWJpL2d1Y19sb2dfYWJpLmgiCj4gwqAKPiDCoHN0cnVjdCB4ZV9ibzsK PiDCoAo+ICsvKiogQHNpemVzOiBBbGxvY2F0aW9uIHNldHRpbmdzICovCj4gK3N0cnVjdCB4ZV9s b2dfc2l6ZXNfdHlwZSB7Cj4gCj4gK8KgwqDCoMKgwqDCoMKgdTMyIGJ5dGVzO8KgwqDCoMKgwqDC oC8qIFNpemUgaW4gYnl0ZXMgKi8KPiArwqDCoMKgwqDCoMKgwqB1MzIgdW5pdHM7wqDCoMKgwqDC oMKgLyogR3VDIEFQSSB1bml0cyAtIDFNQiBvciA0S0IgKi8KPiArwqDCoMKgwqDCoMKgwqB1MzIg Y291bnQ7wqDCoMKgwqDCoMKgLyogTnVtYmVyIG9mIEFQSSB1bml0cyAqLwo+ICvCoMKgwqDCoMKg wqDCoHUzMiBmbGFnO8KgwqDCoMKgwqDCoMKgLyogR3VDIEFQSSB1bml0cyBmbGFnICovCj4gK307 CmFsYW46IGFzIG1lbnRpb25lZCBhYm92ZSwgeW91IGRvbnQgbmVlZCB0aGlzIHN0cnVjdHVyZSBh dCBhbGwuCj4gKwo+IMKgLyoqCj4gwqAgKiBzdHJ1Y3QgeGVfZ3VjX2xvZyAtIEd1QyBsb2cKPiDC oCAqLwo+IEBAIC0xOCw2ICsyNywxMiBAQCBzdHJ1Y3QgeGVfZ3VjX2xvZyB7Cj4gwqDCoMKgwqDC oMKgwqDCoHUzMiBsZXZlbDsKPiDCoMKgwqDCoMKgwqDCoMKgLyoqIEBibzogWEUgQk8gZm9yIEd1 QyBsb2cgKi8KPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IHhlX2JvICpibzsKPiArwqDCoMKgwqDC oMKgwqAvKiogQHN0YXRzOiBsb2dnaW5nIHJlbGF0ZWQgc3RhdHMgKi8KPiArwqDCoMKgwqDCoMKg wqBzdHJ1Y3Qgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1MzIgc2FtcGxlZF9v dmVyZmxvdzsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTMyIG92ZXJmbG93Owo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1MzIgZmx1c2g7Cj4gK8KgwqDCoMKgwqDC oMKgfSBzdGF0c1tHVUNfTE9HX0JVRkZFUl9UWVBFX01BWF07CmFsYW46IGFzIG1lbnRpb25lZCBl YXJsaWVyLCB0aGlzICJzdGF0cyIgc3RydWN0dXJlIGFsb25nCndpdGggZnVuY3Rpb24geGVfZ3Vj X2NoZWNrX2xvZ19idWZfb3ZlcmZsb3cgbmVlZHMgdG8gYmUKaW4gdGhlIGV4dHJhY3Rpb24gcGF0 Y2guCj4gwqB9Owo+IMKgCj4gwqAjZW5kaWYKCg==