From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id l5+fJC7sVGpbOQYAWB0awg (envelope-from ) for ; Mon, 13 Jul 2026 09:46:22 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=mjqI6bUB; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 8365D1E033; Mon, 13 Jul 2026 09:46:22 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 21DCA1E033 for ; Mon, 13 Jul 2026 09:46:20 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2FDDA4BA2E21 for ; Mon, 13 Jul 2026 13:46:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2FDDA4BA2E21 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=mjqI6bUB Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21]) by sourceware.org (Postfix) with ESMTPS id CC1BA4BA2E05 for ; Mon, 13 Jul 2026 13:45:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CC1BA4BA2E05 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CC1BA4BA2E05 Authentication-Results: sourceware.org; arc=fail smtp.remote-ip=198.175.65.21 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1783950348; cv=fail; b=jQHiSSFCsWrxjBSvrwLrrZSb0PqGi6gzAVSahmhDbxgNSVKK9owiDIR/EWt2oJ7skPIG/ioHtUQsdIBMXl9con6MO4Xo72ZE0t6sfp9yJbDf3x9DSBokO9ApFMZeqbaemt80qZeI10Wc5tNIJ0EOtUYn1h2vyhSRqfAcw4+VLdk= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1783950348; c=relaxed/simple; bh=AE+duz03E8uPv853d07wFhTsze/hopkIH94H2ld13DY=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=qaEhR0ufe0HsvevI79W4cuq6sq12B3cBSL9jsE0hFo5cuNkd2ePLZKGo+iUR6c+8WfxAM9+qseRnYFAKTw0X9Dr4187PttFP0+sPJ/cOgJrR3BrU6KCCpMoosaRThMcADVn0D9Lzz6vJVNM/i514js+ysKuIh4uv9qYUDEKuLHk= ARC-Authentication-Results: i=2; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=mjqI6bUB DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CC1BA4BA2E05 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1783950348; x=1815486348; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=AE+duz03E8uPv853d07wFhTsze/hopkIH94H2ld13DY=; b=mjqI6bUBI53ylqWALcRuduiQPhz3crS+kBrrb3tticmyUygNtatmg0yC Grk2A70bBiMwUMw3ByMArFAFW+jXXZxfqdmQBr/MWf0YsxBkgmH3LTtLS N2UtGvUm7HnDsuRzoBDvP8bcebPQEUyHzUGFcz9KShNw1IoS6lT01Y3Iz ti9kdkId6d5+C0gNwJWIeZBLpuTM9y/EujSUjDeEnA/e9kVTY+tugYLPF K3hp14EMDWMz/vREtUQ+YcJS4CcQrtrNmMEg5lD9R9ATxGpLRgF9n06Zj 4ojF7RL/aidCywyVF4M/h9zPzEPjMlHv5AYTX4sdKaKEztgFWQelvi0kJ w==; X-CSE-ConnectionGUID: EFpPHpRwSrC1BPcW77PJYw== X-CSE-MsgGUID: 6zsYOfUCQ5mH8LBH66GOhg== X-IronPort-AV: E=McAfee;i="6800,10657,11841"; a="84415563" X-IronPort-AV: E=Sophos;i="6.25,154,1779174000"; d="scan'208";a="84415563" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2026 06:45:47 -0700 X-CSE-ConnectionGUID: oHPfmSY+SjOzI+pZaLQwxw== X-CSE-MsgGUID: JjKOTLkZR2WgcKPORiJTdA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,154,1779174000"; d="scan'208";a="249199157" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by fmviesa009.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2026 06:45:46 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Mon, 13 Jul 2026 06:45:45 -0700 Received: from ORSEDG903.ED.cps.intel.com (10.7.248.13) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43 via Frontend Transport; Mon, 13 Jul 2026 06:45:45 -0700 Received: from DM5PR21CU001.outbound.protection.outlook.com (52.101.62.63) by edgegateway.intel.com (134.134.137.113) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Mon, 13 Jul 2026 06:45:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=atYMfCJ8xDIRvfQJ0JwiWMDKNK/yTDooBGWGdZK1W6XWPWinfU4wMy32aC/S+yltG6RmJo9QEdwYcKV+ACb7ZZaQzhEfr8rPMQvuGmT4rR1beso/zXghbn9Q9VbnSrft90ih4Jy8f39WarNMRhgM7Ui5hRArq8rxnURGM7xCj6xBtL5aeod+KFMWEfDVzwRcRxfHFc+l0F83KQHkqH3qVHP5deZILeovCDYNw+loKOyC9bo9YkLUFYcf+MsiR4op1qC0ZrCcJwniif7uwiVL2MXWn+boFC8M5QFsjJc5BUk7u0A3HxBjc0KU+0uBseMHc35ctsPjttbs08V/8tB5PA== 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=5o82qPIZCsXfdZ+UGixhqh95F2wkBlBgK+o7XX3Kwm4=; b=Tm85B9irFvWj4q4pxsClcYUyVV9uZ+F4W+4K145l6Zuozc4zgEQRGVhOWUZqUZ0fpGnlVqQn2YU+WaOG0jDCVwRy1RiWcwaAnm+gjwGyFQxgo0WUlNl7soE2lbn+y/vW5p9l1K0qBzMsO9pffC++n401iLZ2SDHfWVE/aGl+NfeWdB5RLEPd0DOvOReqcz6rSxsG9XYGI+shK7d+wX4fXIWbcUyR3IkzMo5hW+ZtQoRotDogCusSjbYGXGnpugyr12kAENczYPfxAqsjgUprygVcxCSBXMFuXxbbMD/cZ3wRdRCJr63ylsrvwV4+rjo5JasbvH2uG0A7oOoibdigTg== 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 SA1PR11MB6846.namprd11.prod.outlook.com (2603:10b6:806:2b0::6) by PH9PR11MB509077.namprd11.prod.outlook.com (2603:10b6:510:3e4::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.19; Mon, 13 Jul 2026 13:45:42 +0000 Received: from SA1PR11MB6846.namprd11.prod.outlook.com ([fe80::c035:c237:91c5:ca4a]) by SA1PR11MB6846.namprd11.prod.outlook.com ([fe80::c035:c237:91c5:ca4a%4]) with mapi id 15.21.0181.019; Mon, 13 Jul 2026 13:45:42 +0000 From: "Ijaz, Abdul B" To: Andrew Burgess , "gdb-patches@sourceware.org" CC: "pedro@palves.net" , "philippe.waroquiers@skynet.be" , "Schimpe, Christina" , "lsix@lancelotsix.com" , "eliz@gnu.org" , "guinevere@redhat.com" Subject: RE: [PATCH v13 1/2] gdb: add annotation in 'info locals' command for variables shadowing case Thread-Topic: [PATCH v13 1/2] gdb: add annotation in 'info locals' command for variables shadowing case Thread-Index: AQHdDwTi8/YjJsOxCE6rfoSB93DGqrZrbh4AgAAB2eA= Date: Mon, 13 Jul 2026 13:45:42 +0000 Message-ID: References: <20260708180805.207722-1-abdul.b.ijaz@intel.com> <20260708180805.207722-2-abdul.b.ijaz@intel.com> <87tsq3dpg7.fsf@redhat.com> In-Reply-To: <87tsq3dpg7.fsf@redhat.com> 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA1PR11MB6846:EE_|PH9PR11MB509077:EE_ x-ms-office365-filtering-correlation-id: aa50acd1-0579-43f5-76d6-08dee0e5085b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|23010399003|376014|3023799007|6133799003|38070700021|18002099003|22082099003|56012099006|4143699003|11063799006; x-microsoft-antispam-message-info: CIVkKCyaoNvyaajQgCoe/KsCHs4pzXz5IDVSW9MODYMpRYIiNoxPlV3BX9yojqw3mvVeRIgqI9POXMy5KQsck+eWR2WSpZP9bTnI84ajK1QJnHXNOBzJNjp390HoEO/az78+eX36pzcFNXXKwSWvDZ0K5H8FitgPvYmdTVIGiWBkKQsoHYGpE+kNSAy/A9WS0H1YlUGF2Jcpd0fLPgXLj7XnOdriDxVONoVvK41nnduSYbDP4Q7X165QE2qEIKD0n20QLqiN9dMk4t2zye5N8yufA1uCfONwG36XSCngugiT16iIYNA3fKW3alTnrVNi5asn97msCQgifHdMLwLycrA2NV6eyPkDwf4I0RZgS88HtUaNeZ13EpcZLrs1hQgqe0t8a56OmMX5Y+hYvSVVSe5E84VvKJ91P7SnNjoSZtb56Wm5MmhvicaOgqoO+13a26SltOrRGFTrQde0HyANSkK4eDw+QhqVk53Qf7TfpCVUogS1vOS7UF8KM6dUndRk5jYCN6wIDU2GF/6xFfJN3KRsbICyuYCMx2CMh/IUux9d53hP4PwA+xX7Kqpimgam9c94FuOYdW1O/SU/LJ1H83ekPpMIS86uvnAT5CfgTEEXklqOplKMc0QaE4fgaXVXquSFHfnjVSYQB9LgkA/uZw/qyoKPQT6VSt/1IHEjlCA6fHhG9gVFuvMb1O1TTOuI x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA1PR11MB6846.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(23010399003)(376014)(3023799007)(6133799003)(38070700021)(18002099003)(22082099003)(56012099006)(4143699003)(11063799006); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZEdKSTF5VWpLRUxXQjA1R1JyMVJxdjF1QUFWYnFDOHp4R2dwNWgxQ3RUL2VH?= =?utf-8?B?Z3hFck4za0pOV1Y4SWJhMXlkRFd1dCtjYWsvVHFYbHVPdGJod2FrYlk3M3Jh?= =?utf-8?B?SVN5RkZBYnlKakg5NWpvNVl0VWZwOWQ5TkN6QVRWNlN5aXB2MmdBaC9pL1gv?= =?utf-8?B?aUpKbnliZUlUMEc0K1VUbDloVDhzY0w5Q2luWFpSRnlMZHlRRm5pUjVhdkVr?= =?utf-8?B?eGpQM2NFeVFzS3NYN2NjSEtGdEFBN3pWMnVtVzlhSmFRRDNmUVZqQzl6Z09R?= =?utf-8?B?ZFNJaGM5KzVZU3hPaUx3YU5wZFZlVngzS2hPSVJFdXorMXpha05PZnY4d0pq?= =?utf-8?B?QmVrZVIxNGRua2pJL0lVYXBsbVAvdEhLaDVNRzVDK0lIRE44OFVvbDhvK0h5?= =?utf-8?B?Z056SW40eEx0MTZQYmV4dTZuL0ZjaWcvdExLc2NyenRuNmJhZ0pJWllWMGxP?= =?utf-8?B?MXJrRTFjeTEvVEQ4Mk12SXlPTDUwVExQN2l0MjNMclVSYUg1U2pQOWVxSS8r?= =?utf-8?B?S0d5RGxhbEo4ZlpyZUxBaGZZcGt2Z1lMRE1lVFByWnU1cXB5WUxJTzgvR2tU?= =?utf-8?B?TGxzenRnT04wUVcycWJ1VkVQSlhVZFhncjUxM2djNjVRdXlMbzVGQkNISFVm?= =?utf-8?B?UVZNMGJTbUNRVS93NEEwVHVWRHBoSFIxRHRjN3o2WmZ0N2p3RGVnNFB6RFZV?= =?utf-8?B?bzl2QUQrUEFaS1AyNW5YYzhic2tZeno1V1NrSWlMUlM4R0JVeGhPd3M1dHk3?= =?utf-8?B?TTRNUmZpQ0NmYzA5bE9pazEra0tsT2dsNDBNNUo2WG00Ui9PUm5rM29sTXdq?= =?utf-8?B?RGU0bCs4MmVxNXJNS2dmV21wNmFqSUtPQ0VnYW9ZL0JacWg1azNlR1AxcEdY?= =?utf-8?B?aERsYVZSUUhJSVJLVFY5TGRDb2xUdWdKV2MwcXBjWkczRytFU1JDY3E0ajkv?= =?utf-8?B?ZlkyZG9KWmdxT0hOUXEvbDhtYzdXbTNwQmFDSFRZMkNySUZ4NUtPZTcwY1Rw?= =?utf-8?B?WVN3VlArMGdNTnJoT2RZcFFCdkVaWDdicUZMallGcm1rT1A1NzZyRmJ3cmph?= =?utf-8?B?ZTZiVUQ1Z2gvR2ZXSGNVWS8vQTFyRkFZZDNXcXVWZ1hJVlZaeTF0VVBzZ0lu?= =?utf-8?B?VUN2a0w5NDRPdkllSzVWQmtMNi9SUG5kNTh4ZjJBYjZBVEJ3RHA4TThOVjh1?= =?utf-8?B?b0Y4c3ZKb2dwN2JkSk5jS2tsZzduUXlKcE45amx5UDdzbFI2MC8zOVVqaFVH?= =?utf-8?B?QXdwVVRCVWtZdGdkNzlJNGRDOE9mbS9NakhFUElmYmFJcmJEakRiTWdmTFB2?= =?utf-8?B?MHh2OXFUY1RsU05yTm9ZNFZTR3pmdU4vdWJvOGJ4U252TVpHVG5rMXVrWkdX?= =?utf-8?B?aU9oaXc1ZUtrRS9Uc25GbUlOTWVkSlIyYzBydDlDS05xWTZ6NUxBTVdUQW1p?= =?utf-8?B?bldMK01MWXFpeW5ESFMyQkphS2g2ZldzL05YMVFmbUp2MXNFUUFwcXg2L3p1?= =?utf-8?B?Q3gxN0l1cU9kNlNoMVhtb3hRa3lzUURLNDkwYWNXcHNub2xEYmNKRmxRend3?= =?utf-8?B?aGJQQW5FdzFmaDgvTmlRTmIzdnlsNzZzU2E5ZGRtTXJkdEZvMTJOUW5DQkNI?= =?utf-8?B?WkI2K1VLY2hBK3NkbUorMzB0aE8yWlJRYS9EOGJ0ZnN0MWw5TU0rVTIvQmls?= =?utf-8?B?TUxJZDNwWEQvOTFtZ1kxM29WQUJ0ai9TdUV2aHV2Rit5REVibGtYV0N0eVFk?= =?utf-8?B?bE9aT3V5TzRkMjA4SHhmWXlWTHdpekdva0VVUitvTmhiaStrNmhaUjlUcXB4?= =?utf-8?B?bXVtMFFmNTI2UGsyMmlTYzVITFltazFvR01zTXBnMVdZR3gzSXBZeis3WlV3?= =?utf-8?B?N05RUGVlbnFjY0doczBaZjJUSG5JUW5tNndZTXdlNWpjVytnYkxuZTZVSmlv?= =?utf-8?B?VTRRRldTOGJ2ZUNiZzBlckh4N2JzYnRROUNFdjVFT08zM0xWT0NVaUdTSE5x?= =?utf-8?B?MkJpbFFabXNkbTBKRThLd1RvY2RDRXhOUnZ6SFJBWUNMVlVuZ2s2eDV0N0do?= =?utf-8?B?eGhzOTVKbWxmNll2WlhvcTRXRCsrNWNORnBEV05leHM5eFFqL216bEplOEw4?= =?utf-8?B?NHF1MGZVYUk0c3hzVjNxYjR5MFprSGlic1BhZ29Xd1N3ZjgxTitnTnVNYWk2?= =?utf-8?B?VE1VWVlENGpRRERHQkpaUjhNZnRMTFVTU3V4L3FOaDdEeVI1UktVMi9od2da?= =?utf-8?B?dERqaStscDl3b0o4WkgyakJlOGFKWCtSTnlxTExpVm5WY0sxNHVCM1dlSno0?= =?utf-8?B?R25CN3pmWjRYN01yVmF6QjJ4L041cXl1T1ZQTDdtQXpUWHJHTUVEUT09?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: ojKL0mDq9oKyOIWdZcTL5kwQqiRI7Xdk4+M+I76Ehq688C2uIFxXKArUW9obb4db4KM/qCba7xhaTOG25JzWG53YjEj8ejOdAQ05a+vXq+upsJH/36GtXRyu3rJBb16ezwU9F27KbV7oAwS6ntqXA9JPmJJ1y8wJ5Lg+vopNd0wM/G2p2zgyP1v4uX9EiNmpgHOLJ6byUe5xbkHNWuDykV87AdAmNFgZ40I9UUXWRNbHlXOHRztHXePbp1qq1Kk497YeQEC464OKGuxYr7wSj4Bww/J0bHdhVQGyeQ3IPtrwt9HXsIWfUCDr3dNykT3XmONxNnTkV4X9KZ0SkNJ6fA== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6846.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa50acd1-0579-43f5-76d6-08dee0e5085b X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jul 2026 13:45:42.4720 (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: KQd/WeXP+v2wAQI8gYn3MwBSz2x6uOy6X6fSASgQlekIjjO5R2atGMkSUfTzsZAhMV4dS8vINTkRwoxYZB+/vA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH9PR11MB509077 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org SGkgQW5kcmV3LA0KDQpUaGFua3MgZm9yIHRoZSBmZWVkYmFjay4gV2lsbCBhZGRyZXNzIHRoZXNl IGluIHYxNC4gUmVwbGllcyBpbmxpbmU6DQoNCj4+IEFmdGVyIGFwcGx5aW5nIHRoaXMgcGF0Y2gs IHdlIG9idGFpbjoNCj4+DQo+PiAoZ2RiKSBpbmZvIGxvY2Fscw0KPj4geCA9IDk5ICA8ZmlsZS5j OjM+DQo+PiB5ID0gNTINCj4+IHggPSA0MiAgPGZpbGUuYzoxLCBzaGFkb3dlZD4NCg0KQW5kcmV3 Pkxpa2UgSSBzYXksIGl0J3MgYSB0cml2aWFsIGluY29uc2lzdGVuY3ksIGJ1dCBhcyBJIGhhdmUg c29tZSByZWFsIGNoYW5nZXMgYmVsb3csIHlvdSBtaWdodCBvbmUgdG8gc3luYyB0aGUgY29tbWl0 IG1lc3NhZ2UgYW5kIGRvY3M/DQoNCkFiZHVsPiBXaWxsIHVwZGF0ZSB0aGUgY29tbWl0IG1lc3Nh Z2UgYWNjb3JkaW5nbHkuDQoNCg0KPj4gKyAgR0RCIG5vdyBzaG93cyB0aGUgInNoYWRvd2VkIiBh bm5vdGF0aW9uIGFuZCB0aGUgbG9jYXRpb24gDQo+PiAraW5mb3JtYXRpb24gaW4NCj4+ICsgIHRo ZSBvdXRwdXQgb2YgdGhpcyBjb21tYW5kIGZvciB2YXJpYWJsZXMgc2hhZG93aW5nIGNhc2UuDQoN CkFuZHJldz5UaGUgd29yZGluZyBoZXJlIHNlZW1zIGEgbGl0dGxlIG9mZiwgaG93IGFib3V0IHRo aXMgaW5zdGVhZDoNCg0KQWJkdWw+IFdpbGwgdXBkYXRlIHRoZSBjb21tZW50IHdpdGggeW91ciBz dWdnZXN0aW9uLg0KDQo+PiArLyogSW4gdGhlIGNhc2Ugb2YgdmFyaWFibGUgc2hhZG93aW5nIGlm IGV4dHJhIGluZm9ybWF0aW9uIHNob3VsZCBiZQ0KPj4gKyAgIHByaW50ZWQgZm9yIHRoZSBjdXJy ZW50IGxhbmd1YWdlIGlzIGNvbXBhcmVkIGFnYWluc3QgaXQuICAqLw0KDQpBbmRyZXc+VGhpcyBj b21tZW50IGRvZXNuJ3QgcmVhZCB3ZWxsLiAgSG93IGFib3V0Og0KQW5kcmV3PiAgSG93IHNob3Vs ZCBzaGFkb3dlZCwgb3Igc2hhZG93aW5nLCB2YXJpYWJsZXMgYmUgcHJpbnRlZC4NCg0KQWJkdWw+ IFdpbGwgdXBkYXRlIHRoZSBjb21tZW50IHdpdGggeW91ciBzdWdnZXN0aW9uLg0KDQo+PiArICAg ICAgaWYgKHZhci0+c3ltdGFiICgpICYmIHZhci0+c3ltdGFiICgpLT5maWxlbmFtZSAoKSkNCg0K QW5kcmV3PkdEQiBzdHlsZSBpcyBub3QgdG8gdXNlIHBvaW50ZXJzIGFzIGJvb2xlYW5zLCBzbyB0 aGlzIHNob3VsZCBiZToNCkFuZHJldz4gIGlmICh2YXItPnN5bXRhYiAoKSAhPSBudWxscHRyICYm IC4uLi4pDQpBbmRyZXc+IENvdWxkbid0IHRoaXMgd2hvbGUgRklMRV9OQU1FIGNhbGN1bGF0aW9u IGxvZ2ljIGJlIG1vdmVkIGRvd24gaW5zaWRlIG9mIHRoZSBgaWYgKHNoYWRvd19zdGF0dXMgIT0g dmFyX3NoYWRvd2luZzo6Tk9ORSlgIGJsb2NrPyAgSXQncyBvbmx5IHVzZWQgaW4gdGhhdCBibG9j aywgYnV0IHNlZSB0aGUgY29tbWVudCBiZWxvdyB0b28uLi4NCg0KQWJkdWw+ICBXaWxsIG1vdmUg RklMRV9OQU1FIGNhbGN1bGF0aW9uIGRvd24gaW5zaWRlIG9mIHRoZSBgaWYgKHNoYWRvd19zdGF0 dXMgIT0gdmFyX3NoYWRvd2luZzo6Tk9ORSlgIGJsb2NrDQoNCg0KQW5kcmV3PiB3aGF0IGlmIEZJ TEVfTkFNRSBpcyBOVUxMIGF0IHRoaXMgcG9pbnQ/ICBJcyB0aGVyZSBhIHJlYXNvbiB3aHkgd2Ug Y2Fubm90IGhhdmUgYm90aCBhIG1pc3Npbmcgc3ltdGFiIEFORCBzaGFkb3dpbmcgZ29pbmcgb24/ DQoNCkFiZHVsPiAgR29vZCBwb2ludCDigJQgdGhlcmUgaXMgbm8gcmVhc29uIHdoeSBhIG1pc3Np bmcgc3ltdGFiIGFuZCBzaGFkb3dpbmcgY2Fubm90IGNvZXhpc3QsIHNvIGZpbGVfbmFtZSBkb2Vz IG5lZWQgYSBOVUxMIGd1YXJkIGhlcmUuIEZvciB0aGUgZmFsbGJhY2sgdmFsdWUsIHdvdWxkIHlv dSBwcmVmZXIgIj8/IiBvciAiPHVua25vd24gZmlsZT4iPw0KDQpjb25zdCBjaGFyICpmaWxlX25h bWUgPSAodmFyLT5zeW10YWIgKCkgIT0gbnVsbHB0ciAmJiAuLi4pDQogICAgICAgICAgICAgICAg ICAgICAgICAgID8gbGJhc2VuYW1lICh2YXItPnN5bXRhYiAoKS0+ZmlsZW5hbWUgKCkpDQogICAg ICAgICAgICAgICAgICAgICAgICAgIDogIj8/IjsNCg0KDQo+PiArCSAgZ2RiX3ByaW50ZiAoJm91 dCwgIiVwcyIsDQo+PiArCQkgICAgICBzdHlsZWRfc3RyaW5nIChtZXRhZGF0YV9zdHlsZS5zdHls ZSAoKSwNCj4+ICsJCQkJICAgICBwcmludGVkID8gIiwgc2hhZG93ZWQiIDogIiIpKTsNCg0KQW5k cmV3PlRoaXMgd2lsbCBhbHNvIHN0eWxlIHRoZSAnLCAnIHRleHQsIEkgdGhpbmsgd2hhdCB5b3Ug c2hvdWxkIHdyaXRlIGlzOg0KDQpBYmR1bD4gV2lsbCB1cGRhdGUgaXQgYWNjb3JkaW5nbHkuDQoN Cg0KPj4gKwkgIGdkYl9wdXRzIChvdXQuY19zdHIgKCkpOw0KDQpBbmRyZXc+T3RoZXIgb3V0cHV0 IGZyb20gdGhpcyBmdW5jdGlvbiBpcyBzZW50IHRvIFNUUkVBTS4gIEkgdGhpbmsgdGhpcyBsaW5l IHNob3VsZCBiZToNCkFuZHJldz4gZ2RiX3B1dHMgKG91dCwgc3RyZWFtKTsNCg0KQWJkdWw+IFdp bGwgdXBkYXRlIGl0IGFjY29yZGluZ2x5Lg0KDQoNCj4+ICsvKiBJdGVyYXRlIG92ZXIgYWxsIHRo ZSBsb2NhbCB2YXJpYWJsZXMgaW4gYmxvY2sgQiwgaW5jbHVkaW5nIGFsbCBpdHMNCj4+ICsgICBz dXBlcmJsb2Nrcywgc3RvcHBpbmcgd2hlbiB0aGUgdG9wLWxldmVsIGJsb2NrIGlzIHJlYWNoZWQu ICAqLw0KDQpBbmRyZXc+VGhpcyBjb21tZW50IHNob3VsZCBiZSBpbiB0aGUgaGVhZGVyIGZpbGUs IHNob3VsZCBtZW50aW9uIENCLiAgUGxhY2UgdGhlIHVzdWFsICcvKiBTZWUgLi4uLiAqLycgY29t bWVudCBoZXJlIGluc3RlYWQuDQoNCkFiZHVsPldpbGwgbW92ZSBpdCB0byBoZWFkZXIgZmlsZS4N Cg0KPj4gKwkgID09IGxhbmdfdmFyc19zaGFkb3dpbmc6OlBSSU5UICYmIHNoYWRvd2luZ19zdGF0 dXMgIT0gDQo+PiArdmFyX3NoYWRvd2luZzo6Tk9ORSkNCg0KQW5kcmV3PkxvbmcgbGluZSwgd3Jh cCBhdCAnJiYnIHBsZWFzZS4NCg0KQWJkdWwgPiBXaWxsIGJlIGZpeGVkIGluIHYxNC4NCg0KPj4g Ky8qIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIGFyZ3VtZW50IHZhcmlhYmxlcyBpbiBibG9jayBCLiAg Ki8NCg0KQW5kcmV3PiBUaGlzIGNvbW1lbnQgc2hvdWxkIGJlIGluIHRoZSBoZWFkZXIgZmlsZSwg c2hvdWxkIG1lbnRpb24gQ0IuICBQbGFjZSB0aGUgdXN1YWwgJy8qIFNlZSAuLi4uICovJyBjb21t ZW50IGhlcmUgaW5zdGVhZC4NCg0KQWJkdWxsPiBXaWxsIGJlIGZpeGVkIGluIHYxNC4NCg0KPj4g K2lmIHtbZ2RiX2NvbXBpbGVfYWRhICIke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgXA0KPj4gKyAg ICBleGVjdXRhYmxlIFtsaXN0IGRlYnVnXV0gIT0gIiIgfSB7DQo+PiArICAgIHJldHVybiAtMQ0K DQpBbmRyZXc+VGhpcyAncmV0dXJuIC0xJyBzaG91bGQgYmUganVzdCAncmV0dXJuJy4gIFRoZXJl IGFyZSBhbiBhZGRpdGlvbmFsIDQgcGxhY2VzIGJlbG93IHdoaWNoIG5lZWQgdGhpcyBmaXgsIGJ1 dCBJJ2xsIG5vdCBwb2ludCBvdXQgZXZlcnkgb25lIG9mIHRoZW0uDQoNCkFiZHVsPldpbGwgZml4 IGl0IGF0IGFsbCBwbGFjZXMgaW4gdjE0Lg0KDQoNClRoYW5rcyAmIEJlc3QgUmVnYXJkcw0KQWJk dWwgQmFzaXQNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEFuZHJldyBCdXJn ZXNzIDxhYnVyZ2Vzc0ByZWRoYXQuY29tPiANClNlbnQ6IE1vbmRheSwgSnVseSAxMywgMjAyNiAy OjUwIFBNDQpUbzogSWpheiwgQWJkdWwgQiA8YWJkdWwuYi5pamF6QGludGVsLmNvbT47IGdkYi1w YXRjaGVzQHNvdXJjZXdhcmUub3JnDQpDYzogcGVkcm9AcGFsdmVzLm5ldDsgcGhpbGlwcGUud2Fy b3F1aWVyc0Bza3luZXQuYmU7IFNjaGltcGUsIENocmlzdGluYSA8Y2hyaXN0aW5hLnNjaGltcGVA aW50ZWwuY29tPjsgbHNpeEBsYW5jZWxvdHNpeC5jb207IGVsaXpAZ251Lm9yZzsgSWpheiwgQWJk dWwgQiA8YWJkdWwuYi5pamF6QGludGVsLmNvbT47IGd1aW5ldmVyZUByZWRoYXQuY29tDQpTdWJq ZWN0OiBSZTogW1BBVENIIHYxMyAxLzJdIGdkYjogYWRkIGFubm90YXRpb24gaW4gJ2luZm8gbG9j YWxzJyBjb21tYW5kIGZvciB2YXJpYWJsZXMgc2hhZG93aW5nIGNhc2UNCg0KQWJkdWwgQmFzaXQg SWpheiA8YWJkdWwuYi5pamF6QGludGVsLmNvbT4gd3JpdGVzOg0KDQo+IEZyb206ICJJamF6LCBB YmR1bCBCIiA8YWJkdWwuYi5pamF6QGludGVsLmNvbT4NCj4NCj4gRm9yIEMvQysrL0ZvcnRyYW4v QWRhIGxhbmd1YWdlcyBHREIgcHJpbnRzIHNhbWUgbmFtZSB2YXJpYWJsZSBtdWx0aXBsZSANCj4g dGltZXMgaW4gY2FzZSBvZiB2YXJpYWJsZSBzaGFkb3dpbmcgYW5kIGl0IGlzIGNvbmZ1c2luZyBm b3IgdXNlciB0byANCj4gaWRlbnRpZnkgd2hpY2ggdmFyaWFibGUgYmVsb25ncyB0byB0aGUgY3Vy cmVudCBzY29wZS4gIFNvIGZvciBzdWNoIA0KPiBjYXNlcyBhZGQgbG9jYXRpb24gaW5mbyB0byB0 aGUgaW5uZXJtb3N0IGxpc3RlZCB2YXJpYWJsZXMgYW5kIGZvciANCj4gc3VwZXIgYmxvY2sgdmFy aWFibGVzIGFkZCAic2hhZG93ZWQiIGFubm90YXRpb24gaW4gdGhlIGZvcm0gb2YgIjxmaWxlLmM6 bGluZSwgc2hhZG93ZWQ+Ii4NCj4NCj4gU3VwcG9zZSB3ZSBoYXZlDQo+DQo+IDE6aW50IHggPSA0 MjsNCj4gMjogIHsNCj4gMzogICAgaW50IHggPSA5OTsNCj4gNDogICAgaW50IHkgPSA1MjsNCj4g NTogICAgeCA9IDk5OyAvKiBicmVhayBoZXJlICovDQo+IDY6ICB9DQo+DQo+IEN1cnJlbnRseToN Cj4NCj4gKGdkYikgaW5mbyBsb2NhbHMNCj4geCA9IDk5DQo+IHggPSA0Mg0KPiB5ID0gNTINCj4N Cj4gQWZ0ZXIgYXBwbHlpbmcgdGhpcyBwYXRjaCwgd2Ugb2J0YWluOg0KPg0KPiAoZ2RiKSBpbmZv IGxvY2Fscw0KPiB4ID0gOTkgIDxmaWxlLmM6Mz4NCj4geSA9IDUyDQo+IHggPSA0MiAgPGZpbGUu YzoxLCBzaGFkb3dlZD4NCg0KTm90IHJlYWxseSBhIHNpZ25pZmljYW50IGlzc3VlLCBidXQgSSBz ZWUgeW91IGNoYW5nZWQgdGhlIGRvY3MsIHNvIG1heWJlIHRoaXMgc2hvdWxkIGJlIHVwZGF0ZWQg dG9vLiAgWW91IGluaXRpYWxpc2UgWCB0byA5OSwgdGhlbiBicmVhayBvbiBhIGxpbmUgdGhhdCBh bHNvIHNldHMgWCB0byA5OS4gIFNvIGNsZWFybHkgWCB3aWxsIGhhdmUgdGhlIHZhbHVlIDk5LCBi dXQgaW4gdGhlIGRvY3MgdGhlIGV4YW1wbGUgaXMgSSB0aGluayBjbGVhcmVyLCB5b3UgaW5pdGlh bGlzZSBYIHRvIDQsIHRoZW4gYnJlYWsgb24gdGhlIGxpbmUgdGhhdCBzZXRzIFggdG8gOTkuICBB cyBleHBlY3RlZCwgWCBoYXMgdGhlIHZhbHVlIDQgaW5kaWNhdGluZyB0aGF0IHRoZSBicmVha3Bv aW50IGxpbmUgaGFzIG5vdCB5ZXQgcnVuLiAgTGlrZSBJIHNheSwgaXQncyBhIHRyaXZpYWwgaW5j b25zaXN0ZW5jeSwgYnV0IGFzIEkgaGF2ZSBzb21lIHJlYWwgY2hhbmdlcyBiZWxvdywgeW91IG1p Z2h0IG9uZSB0byBzeW5jIHRoZSBjb21taXQgbWVzc2FnZSBhbmQgZG9jcz8NCg0KPg0KPiBUaGUg cGF0Y2ggYWRkcyB0aGUgbG9jYXRpb24gYW5ub3RhdGlvbnMgYnkga2VlcGluZyB0cmFjayBvZiBp bm5lciANCj4gYmxvY2sgYW5kIGFscmVhZHkgcHJpbnRlZCB2YXJpYWJsZXMgdG8gaWRlbnRpZnkg c2hhZG93aW5nLiAgU28sIEdEQiANCj4gbm93IHByaW50cyAiPGZpbGUuYzpsaW5lLCBzaGFkb3dl ZD4iIGZvciBzaGFkb3dlZCBzdXBlci1ibG9jayANCj4gdmFyaWFibGVzIGFuZCAiPGZpbGUuYzps aW5lPiIgZm9yIGlubmVybW9zdCBkZWNsYXJhdGlvbnMgb2Ygc3VjaCB2YXJpYWJsZXMgb25seS4N Cj4NCj4gVGhlIGxvY2F0aW9uIGFubm90YXRpb25zIGFyZSBwcmludGVkIGZvciBzaGFkb3dlZCB2 YXJpYWJsZXMgaW4gY2FzZSBvZiANCj4gQy9DKysvRm9ydHJhbi9BZGEgbGFuZ3VhZ2VzLiAgSW4g UnVzdCwgaXQgaXMgcG9zc2libGUgdG8gZGVjbGFyZSBhIA0KPiB2YXJpYWJsZSB3aXRoIHRoZSBz YW1lIG5hbWUgbWFueSB0aW1lcy4gIFNvIGluIHRoaXMgY2FzZSwganVzdCB0aGUgDQo+IGZpcnN0 IGluc3RhbmNlIG9mIHRoZSB2YXJpYWJsZSBpcyBwcmludGVkLiAgUlVTVCBsYW5ndWFnZSB0ZXN0 ICJ2YXJfcmV1c2UuZXhwIg0KPiBmYWlscyB3aXRoIHJ1c3RjIGNvbXBpbGVyIHZlcnNpb24gPj0g MS43MyBzbyBYRkFJTCBpcyBhZGRlZCBhY2NvcmRpbmdseS4NCj4NCj4gRml4IHJlZ2V4IGV4cHJl c3Npb24gaW4gdGhlIGdkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAgdGVzdCBhY2NvcmRpbmcgDQo+ IHRvIHRoaXMgY2hhbmdlLiAgVGhlIHRlc3QgdXBkYXRlIGlzIG9ubHkgcmVxdWlyZWQgZHVlIHRv IHRoZSBleGlzdGluZyANCj4gZ2RiIGtub3duIHRpY2tldCBnZGIvMjU2OTUgd2hlcmUgdGhpcyBp c3N1ZSBpcyBzZWVuIHdpdGggNy41LjAgdmVyc2lvbiANCj4gb24NCj4gc2xlczE1c3A2IGJ1dCBp dCBpcyBub3Qgc2VlbiBhbnltb3JlIG9uIHRoZSBuZXdlciBnY2MgdmVyc2lvbnMgZS5nLg0KPiBn Y2MtMTEuNC4wLg0KPg0KPiBUaGUgc3ltdGFiKCkvZmlsZW5hbWUoKSBudWxscHRyIGNoZWNrIHdh cyBhZGRlZCBzcGVjaWZpY2FsbHkgdG8gYXZvaWQgDQo+IHRoZSBjcmFzaCBzZWVuIGluIGdkYi5k d2FyZjIvbWlzc2luZy10eXBlLW5hbWUtZm9yLXRlbXBsYXRlcy5leHAgd2hlcmUgDQo+IHRlbXBs YXRlIHN5bWJvbHMgbWF5IGhhdmUgbm8gYXNzb2NpYXRlZCBzb3VyY2UgZmlsZS4NCj4NCj4gUmV2 aWV3ZWQtQnk6IEd1aW5ldmVyZSBMYXJzZW4gPGd1aW5ldmVyZUByZWRoYXQuY29tPg0KPiBSZXZp ZXdlZC1CeTogRWxpIFphcmV0c2tpaSA8ZWxpekBnbnUub3JnPg0KPiBDby1BdXRob3JlZC1CeTog QW5kcmV3IEJ1cmdlc3MgPGFidXJnZXNzQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiAgZ2RiL05FV1Mg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCj4gIGdkYi9jLXR5 cGVwcmludC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQ0KPiAgZ2RiL2Rv Yy9nZGIudGV4aW5mbyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI2ICsrKysNCj4gIGdk Yi9sYW5ndWFnZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMCArKysNCj4g IGdkYi9sYW5ndWFnZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOSArKysN Cj4gIGdkYi9wcmludGNtZC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzOCAr KysrKy0NCj4gIGdkYi9zdGFjay5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDExNSArKysrKysrKysrKysrKysrLS0NCj4gIGdkYi9zdGFjay5oICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAxNCArKysNCj4gIGdkYi90ZXN0c3VpdGUvZ2RiLmFkYS92YXJf c2hhZG93aW5nLmV4cCAgICAgICB8ICAzOSArKysrKysNCj4gIC4uLi9nZGIuYWRhL3Zhcl9zaGFk b3dpbmcvdmFyX3NoYWRvd2luZy5hZGIgICB8ICAzMCArKysrKw0KPiAgZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS92YXItc2hhZG93aW5nLmMgICAgICAgIHwgIDUxICsrKysrKysrDQo+ICBnZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3Zhci1zaGFkb3dpbmcuZXhwICAgICAgfCAgOTIgKysrKysrKysrKysr KysNCj4gIGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZzIuYyAgICAgICB8ICAx NiArKysNCj4gIGdkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cCAgICAgICB8 ICAyMSArKy0tDQo+ICBnZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5leHAgICAgICAg ICAgfCAgMzYgKysrKysrDQo+ICBnZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5ycyAg ICAgICAgICAgfCAgMjAgKysrDQo+ICBnZGIvdmFsdWUuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMjYgKysrLQ0KPiAgMTcgZmlsZXMgY2hhbmdlZCwgNTQ3IGluc2VydGlv bnMoKyksIDIzIGRlbGV0aW9ucygtKSAgY3JlYXRlIG1vZGUgDQo+IDEwMDY0NCBnZGIvdGVzdHN1 aXRlL2dkYi5hZGEvdmFyX3NoYWRvd2luZy5leHANCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCANCj4g Z2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3Zhcl9zaGFkb3dpbmcvdmFyX3NoYWRvd2luZy5hZGINCj4g IGNyZWF0ZSBtb2RlIDEwMDc1NSBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zhci1zaGFkb3dpbmcu Yw0KPiAgY3JlYXRlIG1vZGUgMTAwNzU1IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRv d2luZy5leHANCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zh ci1zaGFkb3dpbmcyLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDc1NSBnZGIvdGVzdHN1aXRlL2dkYi5y dXN0L3Zhcl9yZXVzZS5leHANCj4gIGNyZWF0ZSBtb2RlIDEwMDc1NSBnZGIvdGVzdHN1aXRlL2dk Yi5ydXN0L3Zhcl9yZXVzZS5ycw0KPg0KPiBkaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVX Uw0KPiBpbmRleCBlYzliNWEzMzc4Ny4uNjgwN2E2Yzk2NmIgMTAwNjQ0DQo+IC0tLSBhL2dkYi9O RVdTDQo+ICsrKyBiL2dkYi9ORVdTDQo+IEBAIC0yMDEsNiArMjAxLDEwIEBAIE5ldyBjb21tYW5k IGNsYXNzIGZvciBoZWxwDQo+ICAgIGNvbW1hbmRzIHRoYXQgd2UsIGFzIGRldmVsb3BlcnMsIGJl bGlldmUgd291bGQgYmUgY2xvc2UgdG8gYSBtaW5pbWFsDQo+ICAgIHNldCBvZiBjb21tYW5kcyBm b3IgYSBuZXcgdXNlciBvZiBHREIuDQo+ICANCj4gK2luZm8gbG9jYWxzDQo+ICsgIEdEQiBub3cg c2hvd3MgdGhlICJzaGFkb3dlZCIgYW5ub3RhdGlvbiBhbmQgdGhlIGxvY2F0aW9uIA0KPiAraW5m b3JtYXRpb24gaW4NCj4gKyAgdGhlIG91dHB1dCBvZiB0aGlzIGNvbW1hbmQgZm9yIHZhcmlhYmxl cyBzaGFkb3dpbmcgY2FzZS4NCg0KVGhlIHdvcmRpbmcgaGVyZSBzZWVtcyBhIGxpdHRsZSBvZmYs IGhvdyBhYm91dCB0aGlzIGluc3RlYWQ6DQoNCiAgR0RCIG5vdyBzaG93cyB0aGUgInNoYWRvd2Vk IiBhbm5vdGF0aW9uIGFuZCB0aGUgbG9jYXRpb24gaW5mb3JtYXRpb24NCiAgZm9yIHZhcmlhYmxl cyB0aGF0IGFyZSBzaGFkb3dlZCwgb3Igd2hpY2ggYXJlIHNoYWRvd2luZy4NCg0KPiArDQo+ICAq IFJlbW92ZWQgY29tbWFuZHMNCj4gIA0KPiAgdGFyZ2V0IGN0Zg0KPiBkaWZmIC0tZ2l0IGEvZ2Ri L2MtdHlwZXByaW50LmMgYi9nZGIvYy10eXBlcHJpbnQuYyBpbmRleCANCj4gZTQxOGFjYTU2YTQu LjkzOTcxNjBkMjliIDEwMDY0NA0KPiAtLS0gYS9nZGIvYy10eXBlcHJpbnQuYw0KPiArKysgYi9n ZGIvYy10eXBlcHJpbnQuYw0KPiBAQCAtODE4LDcgKzgxOCw4IEBAIGNfdHlwZV9wcmludF90ZW1w bGF0ZV9hcmdzIChjb25zdCBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zICpmbGFncywNCj4gICAg ICAgIGlmIChzeW0tPmxvY19jbGFzcyAoKSA9PSBMT0NfVFlQRURFRikNCj4gIAljX3ByaW50X3R5 cGUgKHN5bS0+dHlwZSAoKSwgIiIsIHN0cmVhbSwgLTEsIDAsIGxhbmd1YWdlLCBmbGFncyk7DQo+ ICAgICAgICBlbHNlDQo+IC0JcHJpbnRfdmFyaWFibGVfdmFsdWUgKHN5bSwge30sIHN0cmVhbSwg MCwgbGFuZ3VhZ2VfZGVmIChsYW5ndWFnZSkpOw0KPiArCXByaW50X3ZhcmlhYmxlX3ZhbHVlIChz eW0sIHt9LCBzdHJlYW0sIDAsIGxhbmd1YWdlX2RlZiAobGFuZ3VhZ2UpLA0KPiArCQkJICAgICAg dmFyX3NoYWRvd2luZzo6Tk9ORSk7DQo+ICAgICAgfQ0KPiAgDQo+ICAgIGdkYl9wdXRzIChfKCJd ICIpLCBzdHJlYW0pOw0KPiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9k b2MvZ2RiLnRleGluZm8gaW5kZXggDQo+IGE2OThiMmI4NDUxLi5lZTMzYmZkYmExMyAxMDA2NDQN Cj4gLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbw0KPiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZv DQo+IEBAIC05MTg4LDYgKzkxODgsMzIgQEAgVGhlIG9wdGlvbmFsIGZsYWcgQHNhbXB7LXF9LCB3 aGljaCBzdGFuZHMgZm9yIA0KPiBAc2FtcHtxdWlldH0sIGRpc2FibGVzICBwcmludGluZyBoZWFk ZXIgaW5mb3JtYXRpb24gYW5kIG1lc3NhZ2VzIA0KPiBleHBsYWluaW5nIHdoeSBubyBsb2NhbCB2 YXJpYWJsZXMgIGhhdmUgYmVlbiBwcmludGVkLg0KPiAgDQo+ICtAc21hbGxleGFtcGxlDQo+ICtA Z3JvdXANCj4gKzE6IGludCB4ID0gMzsNCj4gKzI6IEB7DQo+ICszOiAgICAgICBpbnQgeCA9IDQ7 DQo+ICs0OiAgICAgICBpbnQgeSA9IDUyOw0KPiArNTogICAgICAgeCA9IDk5OyAvLyBicmVha3Bv aW50LWxpbmUNCj4gKzY6IEB9DQo+ICtAZW5kIGdyb3VwDQo+ICtAZ3JvdXANCj4gKyhnZGIpIGlu Zm8gbG9jYWxzDQo+ICt4ID0gNAk8ZmlsZS5jOjM+DQo+ICt5ID0gNTINCj4gK3ggPSAzCTxmaWxl LmM6MSwgc2hhZG93ZWQ+DQo+ICtAZW5kIGdyb3VwDQo+ICtAZW5kIHNtYWxsZXhhbXBsZQ0KPiAr DQo+ICtAYW5jaG9ye3NoYWRvd2VkIHZhcmlhYmxlc30NCj4gK0BjaW5kZXggc2hhZG93ZWQgdmFy aWFibGVzDQo+ICtBIHZhcmlhYmxlIGlzIEBkZm57c2hhZG93ZWR9IHdoZW4gdGhlcmUncyBhbm90 aGVyIHZhcmlhYmxlIHdpdGggdGhlIA0KPiArc2FtZSBuYW1lIHdoaWNoIGlzIGRlY2xhcmVkIHdp dGhpbiBhbiBpbm5lciBzY29wZSAoZGVjaXNpb24gYmxvY2ssIA0KPiArbWV0aG9kLCBvciBpbm5l ciBjbGFzcykuICBGb3Igc3VjaCBjYXNlcywgaXRzIGxvY2F0aW9uIGZvciB0aGUgDQo+ICtvdXRl cm1vc3Qgc2NvcGUgaXMgZm9sbG93ZWQgYnkgQHNhbXB7c2hhZG93ZWR9LiAgVGhlIGxvY2F0aW9u IGNhbiANCj4gK2hlbHAgdG8gbG9jYXRlIHRoZSBpbnN0YW5jZXMgb2Ygc2hhZG93ZWQgdmFyaWFi bGVzLiAgU28sIGxvY2F0aW9uIA0KPiAraW5mb3JtYXRpb24gaXMgb25seSBhZGRlZCBmb3Igc2hh ZG93ZWQgdmFyaWFibGVzLg0KPiArDQo+ICBAaXRlbSBpbmZvIGxvY2FscyBbLXFdIFstdCBAdmFy e3R5cGVfcmVnZXhwfV0gW0B2YXJ7cmVnZXhwfV0gIExpa2UgDQo+IEBrYmR7aW5mbyBsb2NhbHN9 LCBidXQgb25seSBwcmludCB0aGUgbG9jYWwgdmFyaWFibGVzIHNlbGVjdGVkICB3aXRoIA0KPiB0 aGUgcHJvdmlkZWQgcmVnZXhwKHMpLg0KPiBkaWZmIC0tZ2l0IGEvZ2RiL2xhbmd1YWdlLmMgYi9n ZGIvbGFuZ3VhZ2UuYyBpbmRleCANCj4gM2UzYmU2NmE2NzYuLjk3MjAxOGU4ZjdiIDEwMDY0NA0K PiAtLS0gYS9nZGIvbGFuZ3VhZ2UuYw0KPiArKysgYi9nZGIvbGFuZ3VhZ2UuYw0KPiBAQCAtMTA5 MCw2ICsxMDkwLDI2IEBAIGxhbmd1YWdlX2xvb2t1cF9wcmltaXRpdmVfdHlwZV9hc19zeW1ib2wg KGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYSwNCj4gICAgcmV0dXJuIHN5bTsNCj4gIH0N Cj4gIA0KPiArLyogU2VlIGxhbmd1YWdlLmguICAqLw0KPiArDQo+ICtsYW5nX3ZhcnNfc2hhZG93 aW5nIGdldF9sYW5nX3ZhcnNfc2hhZG93aW5nX29wdGlvbiAoZW51bSBsYW5ndWFnZSANCj4gK2xh bmcpIHsNCj4gKyAgc3dpdGNoIChsYW5nKQ0KPiArICAgIHsNCj4gKyAgICBjYXNlIGxhbmd1YWdl X2M6DQo+ICsgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoNCj4gKyAgICBjYXNlIGxhbmd1YWdlX2Zv cnRyYW46DQo+ICsgICAgY2FzZSBsYW5ndWFnZV9hZGE6DQo+ICsgICAgICByZXR1cm4gbGFuZ192 YXJzX3NoYWRvd2luZzo6UFJJTlQ7DQo+ICsNCj4gKyAgICBjYXNlIGxhbmd1YWdlX3J1c3Q6DQo+ ICsgICAgICByZXR1cm4gbGFuZ192YXJzX3NoYWRvd2luZzo6SElERTsNCj4gKw0KPiArICAgIGRl ZmF1bHQ6DQo+ICsgICAgICByZXR1cm4gbGFuZ192YXJzX3NoYWRvd2luZzo6Tk9ORTsNCj4gKyAg ICB9DQo+ICt9DQo+ICsNCj4gIC8qIEluaXRpYWxpemUgdGhlIGxhbmd1YWdlIHJvdXRpbmVzLiAg Ki8NCj4gIA0KPiAgSU5JVF9HREJfRklMRSAobGFuZ3VhZ2UpDQo+IGRpZmYgLS1naXQgYS9nZGIv bGFuZ3VhZ2UuaCBiL2dkYi9sYW5ndWFnZS5oIGluZGV4IA0KPiA3NTE1NGQ5YzU5MS4uZDgzOGNj ODI1YTEgMTAwNjQ0DQo+IC0tLSBhL2dkYi9sYW5ndWFnZS5oDQo+ICsrKyBiL2dkYi9sYW5ndWFn ZS5oDQo+IEBAIC04Myw2ICs4MywyMSBAQCBlbnVtIG1hY3JvX2V4cGFuc2lvbg0KPiAgICAgIG1h Y3JvX2V4cGFuc2lvbl9ubywgbWFjcm9fZXhwYW5zaW9uX2MNCj4gICAgfTsNCj4gIA0KPiArLyog SW4gdGhlIGNhc2Ugb2YgdmFyaWFibGUgc2hhZG93aW5nIGlmIGV4dHJhIGluZm9ybWF0aW9uIHNo b3VsZCBiZQ0KPiArICAgcHJpbnRlZCBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgaXMgY29tcGFy ZWQgYWdhaW5zdCBpdC4gICovDQoNClRoaXMgY29tbWVudCBkb2Vzbid0IHJlYWQgd2VsbC4gIEhv dyBhYm91dDoNCg0KICBIb3cgc2hvdWxkIHNoYWRvd2VkLCBvciBzaGFkb3dpbmcsIHZhcmlhYmxl cyBiZSBwcmludGVkLg0KDQo+ICsNCj4gK2VudW0gY2xhc3MgbGFuZ192YXJzX3NoYWRvd2luZw0K PiArICB7DQo+ICsgICAgLyogQWRkcyBzaGFkb3dlZCBpbmZvcm1hdGlvbiBmb3Igc3VjaCB2YXJp YWJsZXMuICAqLw0KPiArICAgIFBSSU5ULA0KPiArDQo+ICsgICAgLyogRG9lcyBub3QgcHJpbnQg c2hhZG93ZWQgdmFyaWFibGVzLiAgKi8NCj4gKyAgICBISURFLA0KPiArDQo+ICsgICAgLyogUHJp bnQgdmFyaWFibGVzIHdpdGhvdXQgc2hhZG93IGluZm9ybWF0aW9uLiAgKi8NCj4gKyAgICBOT05F LA0KPiArICB9Ow0KPiArDQo+ICANCg0KPiAgLyogUGVyIGFyY2hpdGVjdHVyZSAoT1MvQUJJKSBs YW5ndWFnZSBpbmZvcm1hdGlvbi4gICovDQo+ICANCj4gQEAgLTgwMSw2ICs4MTYsMTAgQEAgdm9p ZCBjX2dldF9zdHJpbmcgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsICANCj4gc3ltYm9sX25hbWVfbWF0 Y2hlcl9mdHlwZSAqZ2V0X3N5bWJvbF9uYW1lX21hdGNoZXINCj4gICAgKGNvbnN0IGxhbmd1YWdl X2RlZm4gKmxhbmcsIGNvbnN0IGxvb2t1cF9uYW1lX2luZm8gJmxvb2t1cF9uYW1lKTsNCj4gIA0K PiArLyogUmV0dXJucyB0aGUgc2hhZG93aW5nIG9wdGlvbiBzdXBwb3J0ZWQgZm9yIHRoZSBpbnB1 dCBsYW5ndWFnZS4gICovDQo+ICsNCj4gK2V4dGVybiBsYW5nX3ZhcnNfc2hhZG93aW5nIGdldF9s YW5nX3ZhcnNfc2hhZG93aW5nX29wdGlvbiAoZW51bSANCj4gK2xhbmd1YWdlIGxhbmcpOw0KPiAr DQo+ICAvKiBTYXZlIHRoZSBjdXJyZW50IGxhbmd1YWdlIGFuZCByZXN0b3JlIGl0IHVwb24gZGVz dHJ1Y3Rpb24uICAqLw0KPiAgDQo+ICBjbGFzcyBzY29wZWRfcmVzdG9yZV9jdXJyZW50X2xhbmd1 YWdlIGRpZmYgLS1naXQgYS9nZGIvcHJpbnRjbWQuYyANCj4gYi9nZGIvcHJpbnRjbWQuYyBpbmRl eCBhMzM3YTZiN2RiOS4uYjc1YTBkMDZmMGYgMTAwNjQ0DQo+IC0tLSBhL2dkYi9wcmludGNtZC5j DQo+ICsrKyBiL2dkYi9wcmludGNtZC5jDQo+IEBAIC0yMzc3LDEyICsyMzc3LDE3IEBAIGNsZWFy X2RhbmdsaW5nX2Rpc3BsYXlfZXhwcmVzc2lvbnMgKHN0cnVjdCANCj4gb2JqZmlsZSAqb2JqZmls ZSkgIHZvaWQgIHByaW50X3ZhcmlhYmxlX3ZhbHVlIChzeW1ib2wgKnZhciwgY29uc3QgDQo+IGZy YW1lX2luZm9fcHRyICZmcmFtZSwNCj4gIAkJICAgICAgdWlfZmlsZSAqc3RyZWFtLCBpbnQgaW5k ZW50LA0KPiAtCQkgICAgICBjb25zdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSkNCj4gKwkJICAg ICAgY29uc3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2UsDQo+ICsJCSAgICAgIHZhcl9zaGFkb3dp bmcgc2hhZG93X3N0YXR1cykNCj4gIHsNCj4gICAgdHJ5DQo+ICAgICAgew0KPiAgICAgICAgc3Ry dWN0IHZhbHVlICp2YWw7DQo+ICAgICAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRz Ow0KPiArICAgICAgY29uc3QgY2hhciAqZmlsZV9uYW1lID0gbnVsbHB0cjsNCj4gKw0KPiArICAg ICAgaWYgKHZhci0+c3ltdGFiICgpICYmIHZhci0+c3ltdGFiICgpLT5maWxlbmFtZSAoKSkNCg0K R0RCIHN0eWxlIGlzIG5vdCB0byB1c2UgcG9pbnRlcnMgYXMgYm9vbGVhbnMsIHNvIHRoaXMgc2hv dWxkIGJlOg0KDQogIGlmICh2YXItPnN5bXRhYiAoKSAhPSBudWxscHRyICYmIC4uLi4pDQoNCkNv dWxkbid0IHRoaXMgd2hvbGUgRklMRV9OQU1FIGNhbGN1bGF0aW9uIGxvZ2ljIGJlIG1vdmVkIGRv d24gaW5zaWRlIG9mIHRoZSBgaWYgKHNoYWRvd19zdGF0dXMgIT0gdmFyX3NoYWRvd2luZzo6Tk9O RSlgIGJsb2NrPyAgSXQncyBvbmx5IHVzZWQgaW4gdGhhdCBibG9jaywgYnV0IHNlZSB0aGUgY29t bWVudCBiZWxvdyB0b28uLi4NCg0KPiArCWZpbGVfbmFtZSA9IGxiYXNlbmFtZSAodmFyLT5zeW10 YWIgKCktPmZpbGVuYW1lICgpKTsNCj4gIA0KPiAgICAgICAgLyogUkVBRF9WQVJfVkFMVUUgbmVl ZHMgYSBibG9jayBpbiBvcmRlciB0byBkZWFsIHdpdGggbm9uLWxvY2FsDQo+ICAJIHJlZmVyZW5j ZXMgKGkuZS4gdG8gaGFuZGxlIG5lc3RlZCBmdW5jdGlvbnMpLiAgSW4gdGhpcyBjb250ZXh0LCB3 ZSANCj4gQEAgLTIzOTIsNiArMjM5NywzMSBAQCBwcmludF92YXJpYWJsZV92YWx1ZSAoc3ltYm9s ICp2YXIsIGNvbnN0IGZyYW1lX2luZm9fcHRyICZmcmFtZSwNCj4gICAgICAgIGdldF91c2VyX3By aW50X29wdGlvbnMgKCZvcHRzKTsNCj4gICAgICAgIG9wdHMuZGVyZWZfcmVmID0gdHJ1ZTsNCj4g ICAgICAgIGNvbW1vbl92YWxfcHJpbnRfY2hlY2tlZCAodmFsLCBzdHJlYW0sIGluZGVudCwgJm9w dHMsIA0KPiBsYW5ndWFnZSk7DQo+ICsNCj4gKyAgICAgIC8qIFByaW50IDwlbGluZSwgc2hhZG93 ZWQ+IGFmdGVyIHRoZSB2YXJpYWJsZSB2YWx1ZSBvbmx5IHdoZW4gaXQgaXMgdmFyaWFibGUNCj4g Kwkgc2hhZG93aW5nIGNhc2UuICAqLw0KPiArICAgICAgaWYgKHNoYWRvd19zdGF0dXMgIT0gdmFy X3NoYWRvd2luZzo6Tk9ORSkNCj4gKwl7DQo+ICsJICBib29sIHByaW50ZWQgPSAoc2hhZG93X3N0 YXR1cyA9PSB2YXJfc2hhZG93aW5nOjpTSEFET1dFRCk7DQo+ICsJICBzdHJpbmdfZmlsZSBvdXQg KGN1cnJlbnRfdWlvdXQtPmNhbl9lbWl0X3N0eWxlX2VzY2FwZSAoKSk7DQo+ICsNCj4gKwkgIGdk Yl9wcmludGYgKCZvdXQsICJcdDwlcHM6IiwNCj4gKwkJICAgICAgc3R5bGVkX3N0cmluZyAoZmls ZV9uYW1lX3N0eWxlLnN0eWxlICgpLCBmaWxlX25hbWUpKTsNCg0KLi4uIHdoYXQgaWYgRklMRV9O QU1FIGlzIE5VTEwgYXQgdGhpcyBwb2ludD8gIElzIHRoZXJlIGEgcmVhc29uIHdoeSB3ZSBjYW5u b3QgaGF2ZSBib3RoIGEgbWlzc2luZyBzeW10YWIgQU5EIHNoYWRvd2luZyBnb2luZyBvbj8NCg0K PiArDQo+ICsJICBpZiAodmFyLT5saW5lICgpID4gMCkNCj4gKwkgICAgZ2RiX3ByaW50ZiAoJm91 dCwgIiVwcyIsDQo+ICsJCQlzdHlsZWRfc3RyaW5nIChsaW5lX251bWJlcl9zdHlsZS5zdHlsZSAo KSwNCj4gKwkJCQkgICAgICAgcHVsb25nZXN0ICh2YXItPmxpbmUgKCkpKSk7DQo+ICsJICBlbHNl DQo+ICsJICAgIGdkYl9wdXRzICgiTm8gbGluZSBudW1iZXIgaW5mb3JtYXRpb24gYXZhaWxhYmxl IiwgJm91dCk7DQo+ICsNCj4gKwkgIGdkYl9wcmludGYgKCZvdXQsICIlcHMiLA0KPiArCQkgICAg ICBzdHlsZWRfc3RyaW5nIChtZXRhZGF0YV9zdHlsZS5zdHlsZSAoKSwNCj4gKwkJCQkgICAgIHBy aW50ZWQgPyAiLCBzaGFkb3dlZCIgOiAiIikpOw0KDQpUaGlzIHdpbGwgYWxzbyBzdHlsZSB0aGUg JywgJyB0ZXh0LCBJIHRoaW5rIHdoYXQgeW91IHNob3VsZCB3cml0ZSBpczoNCg0KCSAgaWYgKHBy aW50ZWQpDQoJICAgIHsNCgkgICAgICBnZGJfcHV0cyAoIiwgIiwgJm91dCk7DQoJICAgICAgZnB1 dHNfc3R5bGVkICgic2hhZG93ZWQiLCBtZXRhZGF0YV9zdHlsZS5zdHlsZSAoKSwgJm91dCk7DQoJ ICAgIH0NCg0KPiArCSAgZ2RiX3B1dHMgKCI+IiwgJm91dCk7DQo+ICsNCj4gKwkgIGdkYl9wdXRz IChvdXQuY19zdHIgKCkpOw0KDQpPdGhlciBvdXRwdXQgZnJvbSB0aGlzIGZ1bmN0aW9uIGlzIHNl bnQgdG8gU1RSRUFNLiAgSSB0aGluayB0aGlzIGxpbmUgc2hvdWxkIGJlOg0KDQogIGdkYl9wdXRz IChvdXQsIHN0cmVhbSk7DQoNCj4gKwl9DQo+ICAgICAgfQ0KPiAgICBjYXRjaCAoY29uc3QgZ2Ri X2V4Y2VwdGlvbl9lcnJvciAmZXhjZXB0KQ0KPiAgICAgIHsNCj4gQEAgLTI0MDYsNyArMjQzNiw4 IEBAIHByaW50X3ZhcmlhYmxlX3ZhbHVlIChzeW1ib2wgKnZhciwgY29uc3QgDQo+IGZyYW1lX2lu Zm9fcHRyICZmcmFtZSwgIHZvaWQgIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoY29uc3QgY2hh ciANCj4gKm5hbWUsIHN5bWJvbCAqdmFyLA0KPiAgCQkJICBjb25zdCBmcmFtZV9pbmZvX3B0ciAm ZnJhbWUsDQo+IC0JCQkgIHVpX2ZpbGUgKnN0cmVhbSwgaW50IGluZGVudCkNCj4gKwkJCSAgdWlf ZmlsZSAqc3RyZWFtLCBpbnQgaW5kZW50LA0KPiArCQkJICB2YXJfc2hhZG93aW5nIHNoYWRvd19z dGF0dXMpDQo+ICB7DQo+ICAgIGlmIChuYW1lID09IG51bGxwdHIpDQo+ICAgICAgbmFtZSA9IHZh ci0+cHJpbnRfbmFtZSAoKTsNCj4gQEAgLTI0MTQsNyArMjQ0NSw4IEBAIHByaW50X3ZhcmlhYmxl X2FuZF92YWx1ZSAoY29uc3QgY2hhciAqbmFtZSwgc3ltYm9sICp2YXIsDQo+ICAgIGdkYl9wcmlu dGYgKHN0cmVhbSwgIiUqcyVwcyA9ICIsIDIgKiBpbmRlbnQsICIiLA0KPiAgCSAgICAgIHN0eWxl ZF9zdHJpbmcgKHZhcmlhYmxlX25hbWVfc3R5bGUuc3R5bGUgKCksIG5hbWUpKTsNCj4gIA0KPiAt ICBwcmludF92YXJpYWJsZV92YWx1ZSAodmFyLCBmcmFtZSwgc3RyZWFtLCBpbmRlbnQsIA0KPiBj dXJyZW50X2xhbmd1YWdlKTsNCj4gKyAgcHJpbnRfdmFyaWFibGVfdmFsdWUgKHZhciwgZnJhbWUs IHN0cmVhbSwgaW5kZW50LCBjdXJyZW50X2xhbmd1YWdlLA0KPiArCQkJc2hhZG93X3N0YXR1cyk7 DQo+ICANCj4gICAgZ2RiX3ByaW50ZiAoc3RyZWFtLCAiXG4iKTsNCj4gIH0NCj4gZGlmZiAtLWdp dCBhL2dkYi9zdGFjay5jIGIvZ2RiL3N0YWNrLmMgaW5kZXggZTA4NDk3NmVhYmYuLjc5YWEzNmE0 N2U0IA0KPiAxMDA2NDQNCj4gLS0tIGEvZ2RiL3N0YWNrLmMNCj4gKysrIGIvZ2RiL3N0YWNrLmMN Cj4gQEAgLTU5LDYgKzU5LDcgQEANCj4gICNpbmNsdWRlICJjbGkvY2xpLW9wdGlvbi5oIg0KPiAg I2luY2x1ZGUgImNsaS9jbGktc3R5bGUuaCINCj4gICNpbmNsdWRlICJnZGJzdXBwb3J0L2J1aWxk YXJndi5oIg0KPiArI2luY2x1ZGUgImdkYnN1cHBvcnQvdW5vcmRlcmVkX3NldC5oIg0KPiAgDQo+ ICAvKiBUaGUgcG9zc2libGUgY2hvaWNlcyBvZiAic2V0IHByaW50IGZyYW1lLWFyZ3VtZW50cyIs IGFuZCB0aGUgdmFsdWUNCj4gICAgIG9mIHRoaXMgc2V0dGluZy4gICovDQo+IEBAIC0yMTMzLDgg KzIxMzQsOSBAQCBiYWNrdHJhY2VfY29tbWFuZF9jb21wbGV0ZXIgKHN0cnVjdCANCj4gY21kX2xp c3RfZWxlbWVudCAqaWdub3JlLA0KPiAgLyogSXRlcmF0ZSBvdmVyIHRoZSBsb2NhbCB2YXJpYWJs ZXMgb2YgYSBibG9jayBCLCBjYWxsaW5nIENCLiAgKi8NCj4gIA0KPiAgc3RhdGljIHZvaWQNCj4g LWl0ZXJhdGVfb3Zlcl9ibG9ja19sb2NhbHMgKGNvbnN0IHN0cnVjdCBibG9jayAqYiwNCj4gLQkJ CSAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19hcmdfbG9jYWxfdmFyc19jYiBjYikNCj4gK2l0ZXJhdGVf b3Zlcl9ibG9ja19sb2NhbHMNCj4gKyAgKGNvbnN0IHN0cnVjdCBibG9jayAqYiwNCj4gKyAgIGdk Yjo6ZnVuY3Rpb25fdmlldyA8dm9pZCAoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3ltYm9sICopPiBj YikNCj4gIHsNCj4gICAgZm9yIChzdHJ1Y3Qgc3ltYm9sICpzeW0gOiBibG9ja19pdGVyYXRvcl9y YW5nZSAoYikpDQo+ICAgICAgew0KPiBAQCAtMjE4MCw2ICsyMTgyLDcxIEBAIGl0ZXJhdGVfb3Zl cl9ibG9ja19sb2NhbF92YXJzIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLA0KPiAgICAgIH0N Cj4gIH0NCj4gIA0KPiArLyogSXRlcmF0ZSBvdmVyIGFsbCB0aGUgbG9jYWwgdmFyaWFibGVzIGlu IGJsb2NrIEIsIGluY2x1ZGluZyBhbGwgaXRzDQo+ICsgICBzdXBlcmJsb2Nrcywgc3RvcHBpbmcg d2hlbiB0aGUgdG9wLWxldmVsIGJsb2NrIGlzIHJlYWNoZWQuICAqLw0KDQpUaGlzIGNvbW1lbnQg c2hvdWxkIGJlIGluIHRoZSBoZWFkZXIgZmlsZSwgc2hvdWxkIG1lbnRpb24gQ0IuICBQbGFjZSB0 aGUgdXN1YWwgJy8qIFNlZSAuLi4uICovJyBjb21tZW50IGhlcmUgaW5zdGVhZC4NCg0KPiArDQo+ ICt2b2lkDQo+ICtpdGVyYXRlX292ZXJfYmxvY2tfbG9jYWxfdmFyc19wcmludGluZw0KPiArICAo Y29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywNCj4gKyAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19hcmdf bG9jYWxfdmFyc19jYl9wcmludGluZyBjYikgew0KPiArICBnZGI6OnVub3JkZXJlZF9zZXQ8c3Rk OjpzdHJpbmc+IGNvbGxlY3RlZF92YXJzLCBzaGFkb3dlZF92YXJzLCANCj4gK3ByaW50ZWRfdmFy czsNCj4gKw0KPiArICAvKiBQaGFzZSBvbmU6IGl0ZXJhdGUgb3ZlciBhbGwgbG9jYWxzIHdpdGhp biB0aGUgYmxvY2ssIGFuZCBldmVyeSBwYXJlbnQNCj4gKyAgICAgYmxvY2sgdXAgdG8gdGhlIGVu Y2xvc2luZyBmdW5jdGlvbiBibG9jay4gIFJlY29yZCBhbGwgb2YgdGhlIGxvY2Fscw0KPiArICAg ICBzZWVuLCB0aGlzIGFsbG93cyB1cyB0byBrbm93IHdoaWNoIGxvY2FscyBhcmUgc2hhZG93aW5n IGxvY2FscyBmcm9tIGENCj4gKyAgICAgbW9yZSBvdXRlciBzY29wZS4gICovDQo+ICsgIGl0ZXJh dGVfb3Zlcl9ibG9ja19sb2NhbF92YXJzDQo+ICsgICAgKGJsb2NrLCBbJl0gKGNvbnN0IGNoYXIg KnByaW50X25hbWUsIHN0cnVjdCBzeW1ib2wgKnN5bSkNCj4gKyAgICB7DQo+ICsgICAgICBpZiAo IXN5bS0+aXNfYXJndW1lbnQgKCkpDQo+ICsJew0KPiArCSAgaWYgKCFjb2xsZWN0ZWRfdmFycy5p bnNlcnQgKHByaW50X25hbWUpLnNlY29uZCkNCj4gKwkgICAgc2hhZG93ZWRfdmFycy5pbnNlcnQg KHByaW50X25hbWUpOw0KPiArCX0NCj4gKyAgICB9KTsNCj4gKw0KPiArICAvKiBQaGFzZSB0d286 IGl0ZXJhdGUgb3ZlciBhbGwgbG9jYWxzIHdpdGhpbiB0aGUgYmxvY2ssIGFuZCBldmVyeSBwYXJl bnQNCj4gKyAgICAgYmxvY2sgdXAgdG8gdGhlIGVuY2xvc2luZyBmdW5jdGlvbiBibG9jay4gIFBy aW50IGFsbCB0aGUgbG9jYWxzIHNlZW4NCj4gKyAgICAgYnkgY2FsbGluZyBDQi4gIERlcGVuZGlu ZyBvbiB0aGUgY3VycmVudCBsYW5ndWFnZSB3ZSB2YXJ5IHRoZQ0KPiArICAgICBhcmd1bWVudHMg dG8gQ0IgdG8gaW5kaWNhdGUgc2hhZG93aW5nLiAgT3IgaW4gc29tZSBjYXNlcywgd2UgZG9uJ3QN Cj4gKyAgICAgcHJpbnQgdGhlIGxvY2FsIGF0IGFsbC4gICovDQo+ICsgIGl0ZXJhdGVfb3Zlcl9i bG9ja19sb2NhbF92YXJzDQo+ICsgICAgKGJsb2NrLCBbJl0gKGNvbnN0IGNoYXIgKnByaW50X25h bWUsIHN0cnVjdCBzeW1ib2wgKnN5bSkNCj4gKyAgICB7DQo+ICsgICAgICBib29sIGFscmVhZHlf cHJpbnRlZCA9ICFwcmludGVkX3ZhcnMuaW5zZXJ0IChwcmludF9uYW1lKS5zZWNvbmQ7DQo+ICsg ICAgICBib29sIHNoYWRvd2VkID0gc2hhZG93ZWRfdmFycy5maW5kIChwcmludF9uYW1lKSAhPSAN Cj4gKyBzaGFkb3dlZF92YXJzLmVuZCAoKTsNCj4gKw0KPiArICAgICAgZW51bSB2YXJfc2hhZG93 aW5nIHNoYWRvd2luZ19zdGF0dXM7DQo+ICsgICAgICBpZiAoYWxyZWFkeV9wcmludGVkICYmIHNo YWRvd2VkKQ0KPiArCXNoYWRvd2luZ19zdGF0dXMgPSB2YXJfc2hhZG93aW5nOjpTSEFET1dFRDsN Cj4gKyAgICAgIGVsc2UgaWYgKCFhbHJlYWR5X3ByaW50ZWQgJiYgc2hhZG93ZWQpDQo+ICsJc2hh ZG93aW5nX3N0YXR1cyA9IHZhcl9zaGFkb3dpbmc6OlNIQURPV0lORzsNCj4gKyAgICAgIGVsc2UN Cj4gKwlzaGFkb3dpbmdfc3RhdHVzID0gdmFyX3NoYWRvd2luZzo6Tk9ORTsNCj4gKw0KPiArICAg ICAgLyogT25seSBmb3IgQy9DKysvRm9ydHJhbi9BZGEgbGFuZ3VhZ2VzLCBpbiBjYXNlIG9mIHZh cmlhYmxlcw0KPiArCSBzaGFkb3dpbmcgcHJpbnQgPGZpbGU6bGluZSwgc2hhZG93ZWQ+IGFubm90 YXRpb24gYWZ0ZXINCj4gKwkgdGhlIHN1cGVyYmxvY2sgdmFyaWFibGUuICBJdGVyYXRpb24gb2Yg YmxvY2sgc3RhcnRzIGZyb20gaW5uZXINCj4gKwkgYmxvY2sgd2hpY2ggaXMgcHJpbnRlZCBvbmx5 IHdpdGggbG9jYXRpb24gaW5mb3JtYXRpb24uICAqLw0KPiArICAgICAgaWYgKGdldF9sYW5nX3Zh cnNfc2hhZG93aW5nX29wdGlvbiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UpDQo+ICsJ ICA9PSBsYW5nX3ZhcnNfc2hhZG93aW5nOjpQUklOVCAmJiBzaGFkb3dpbmdfc3RhdHVzICE9IA0K PiArdmFyX3NoYWRvd2luZzo6Tk9ORSkNCg0KTG9uZyBsaW5lLCB3cmFwIGF0ICcmJicgcGxlYXNl Lg0KDQo+ICsJY2IgKHByaW50X25hbWUsIHN5bSwgc2hhZG93aW5nX3N0YXR1cyk7DQo+ICsgICAg ICAvKiBJbiBjYXNlIG9mIFJ1c3QgbGFuZ3VhZ2UgaXQgaXMgcG9zc2libGUgdG8gZGVjbGFyZSB2 YXJpYWJsZSB3aXRoDQo+ICsJIHNhbWUgbmFtZSBtdWx0aXBsZSB0aW1lcyBhbmQgb25seSBpbm5l cm1vc3QgaW5zdGFuY2Ugb2YgdmFyaWFibGUNCj4gKwkgaXMgYWNjZXNzaWJsZS4gIFNvIHByaW50 IG9ubHkgdGhlIGlubmVybW9zdCBpbnN0YW5jZSBhbmQgdGhlcmUgaXMNCj4gKwkgbm8gbmVlZCBv ZiBwcmludGluZyBkdXBsaWNhdGVzLiAgKi8NCj4gKyAgICAgIGVsc2UgaWYgKGdldF9sYW5nX3Zh cnNfc2hhZG93aW5nX29wdGlvbiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UpDQo+ICsJ ICAgICAgID09IGxhbmdfdmFyc19zaGFkb3dpbmc6OkhJREUNCj4gKwkgICAgICAgJiYgc2hhZG93 aW5nX3N0YXR1cyA9PSB2YXJfc2hhZG93aW5nOjpTSEFET1dFRCkNCj4gKwl7DQo+ICsJICAvKiBO b3RoaW5nLiAgKi8NCj4gKwl9DQo+ICsgICAgICBlbHNlDQo+ICsJY2IgKHByaW50X25hbWUsIHN5 bSwgdmFyX3NoYWRvd2luZzo6Tk9ORSk7DQo+ICsgICAgfSk7DQo+ICt9DQo+ICsNCj4gIC8qIERh dGEgdG8gYmUgcGFzc2VkIGFyb3VuZCBpbiB0aGUgY2FsbHMgdG8gdGhlIGxvY2FscyBhbmQgYXJn cw0KPiAgICAgaXRlcmF0b3JzLiAgKi8NCj4gIA0KPiBAQCAtMjE5MiwxNCArMjI1OSwxNiBAQCBz dHJ1Y3QgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlX2RhdGENCj4gICAgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbTsNCj4gICAgaW50IHZhbHVlc19wcmludGVkOw0KPiAgDQo+IC0gIHZvaWQgb3BlcmF0 b3IoKSAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwgc3RydWN0IHN5bWJvbCAqc3ltKTsNCj4gKyAg dm9pZCBvcGVyYXRvcigpIChjb25zdCBjaGFyICpwcmludF9uYW1lLCBzdHJ1Y3Qgc3ltYm9sICpz eW0sDQo+ICsJCSAgIHZhcl9zaGFkb3dpbmcgc2hhZG93X3N0YXR1cyk7DQo+ICB9Ow0KPiAgDQo+ ICAvKiBUaGUgY2FsbGJhY2sgZm9yIHRoZSBsb2NhbHMgYW5kIGFyZ3MgaXRlcmF0b3JzLiAgKi8N Cj4gIA0KPiAgdm9pZA0KPiAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlX2RhdGE6Om9wZXJhdG9y KCkgKGNvbnN0IGNoYXIgKnByaW50X25hbWUsDQo+IC0JCQkJCSAgIHN0cnVjdCBzeW1ib2wgKnN5 bSkNCj4gKwkJCQkJICAgc3RydWN0IHN5bWJvbCAqc3ltLA0KPiArCQkJCQkgICB2YXJfc2hhZG93 aW5nIHNoYWRvd19zdGF0dXMpDQo+ICB7DQo+ICAgIGZyYW1lX2luZm9fcHRyIGZyYW1lOw0KPiAg DQo+IEBAIC0yMjE5LDcgKzIyODgsOCBAQCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWVfZGF0YTo6 b3BlcmF0b3IoKSAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwNCj4gICAgICAgIHJldHVybjsNCj4g ICAgICB9DQo+ICANCj4gLSAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChwcmludF9uYW1lLCBz eW0sIGZyYW1lLCBzdHJlYW0sIA0KPiBudW1fdGFicyk7DQo+ICsgIHByaW50X3ZhcmlhYmxlX2Fu ZF92YWx1ZSAocHJpbnRfbmFtZSwgc3ltLCBmcmFtZSwgc3RyZWFtLCBudW1fdGFicywNCj4gKwkJ CSAgICBzaGFkb3dfc3RhdHVzKTsNCj4gIA0KPiAgICB2YWx1ZXNfcHJpbnRlZCA9IDE7DQo+ICB9 DQo+IEBAIC0yMjg4LDcgKzIzNTgsNyBAQCBwcmludF9mcmFtZV9sb2NhbF92YXJzIChjb25zdCBm cmFtZV9pbmZvX3B0ciAmZnJhbWUsDQo+ICAgIHNjb3BlZF9yZXN0b3JlX3NlbGVjdGVkX2ZyYW1l IHJlc3RvcmVfc2VsZWN0ZWRfZnJhbWU7DQo+ICAgIHNlbGVjdF9mcmFtZSAoZnJhbWUpOw0KPiAg DQo+IC0gIGl0ZXJhdGVfb3Zlcl9ibG9ja19sb2NhbF92YXJzIChibG9jaywgY2JfZGF0YSk7DQo+ ICsgIGl0ZXJhdGVfb3Zlcl9ibG9ja19sb2NhbF92YXJzX3ByaW50aW5nIChibG9jaywgY2JfZGF0 YSk7DQo+ICANCj4gICAgaWYgKCFjYl9kYXRhLnZhbHVlc19wcmludGVkICYmICFxdWlldCkNCj4g ICAgICB7DQo+IEBAIC0yMzg2LDYgKzI0NTYsMzcgQEAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ192 YXJzIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmIsDQo+ICAgICAgfQ0KPiAgfQ0KPiAgDQo+ICsvKiBJ dGVyYXRlIG92ZXIgYWxsIHRoZSBhcmd1bWVudCB2YXJpYWJsZXMgaW4gYmxvY2sgQi4gICovDQoN ClRoaXMgY29tbWVudCBzaG91bGQgYmUgaW4gdGhlIGhlYWRlciBmaWxlLCBzaG91bGQgbWVudGlv biBDQi4gIFBsYWNlIHRoZSB1c3VhbCAnLyogU2VlIC4uLi4gKi8nIGNvbW1lbnQgaGVyZSBpbnN0 ZWFkLg0KDQo+ICsNCj4gK3ZvaWQNCj4gK2l0ZXJhdGVfb3Zlcl9ibG9ja19hcmdfdmFyc19wcmlu dGluZw0KPiArICAoY29uc3Qgc3RydWN0IGJsb2NrICpiLA0KPiArICAgaXRlcmF0ZV9vdmVyX2Js b2NrX2FyZ19sb2NhbF92YXJzX2NiX3ByaW50aW5nIGNiKSB7DQo+ICsgIGZvciAoc3RydWN0IHN5 bWJvbCAqc3ltIDogYmxvY2tfaXRlcmF0b3JfcmFuZ2UgKGIpKQ0KPiArICAgIHsNCj4gKyAgICAg IC8qIERvbid0IHdvcnJ5IGFib3V0IHRoaW5ncyB3aGljaCBhcmVuJ3QgYXJndW1lbnRzLiAgKi8N Cj4gKyAgICAgIGlmIChzeW0tPmlzX2FyZ3VtZW50ICgpKQ0KPiArCXsNCj4gKwkgIC8qIFdlIGhh dmUgdG8gbG9vayB1cCB0aGUgc3ltYm9sIGJlY2F1c2UgYXJndW1lbnRzIGNhbiBoYXZlDQo+ICsJ ICAgICB0d28gZW50cmllcyAob25lIGEgcGFyYW1ldGVyLCBvbmUgYSBsb2NhbCkgYW5kIHRoZSBv bmUgd2UNCj4gKwkgICAgIHdhbnQgaXMgdGhlIGxvY2FsLCB3aGljaCBsb29rdXBfc3ltYm9sIHdp bGwgZmluZCBmb3IgdXMuDQo+ICsJICAgICBUaGlzIGluY2x1ZGVzIGdjYzEgKG5vdCBnY2MyKSBv biB0aGUgc3BhcmMgd2hlbiBwYXNzaW5nIGENCj4gKwkgICAgIHNtYWxsIHN0cnVjdHVyZSBhbmQg Z2NjMiB3aGVuIHRoZSBhcmd1bWVudCB0eXBlIGlzIGZsb2F0DQo+ICsJICAgICBhbmQgaXQgaXMg cGFzc2VkIGFzIGEgZG91YmxlIGFuZCBjb252ZXJ0ZWQgdG8gZmxvYXQgYnkNCj4gKwkgICAgIHRo ZSBwcm9sb2d1ZSAoaW4gdGhlIGxhdHRlciBjYXNlIHRoZSB0eXBlIG9mIHRoZSBMT0NfQVJHDQo+ ICsJICAgICBzeW1ib2wgaXMgZG91YmxlIGFuZCB0aGUgdHlwZSBvZiB0aGUgTE9DX0xPQ0FMIHN5 bWJvbCBpcw0KPiArCSAgICAgZmxvYXQpLiAgVGhlcmUgYXJlIGFsc28gTE9DX0FSRy9MT0NfUkVH SVNURVIgcGFpcnMgd2hpY2gNCj4gKwkgICAgIGFyZSBub3QgY29tYmluZWQgaW4gc3ltYm9sLXJl YWRpbmcuICAqLw0KPiArDQo+ICsJICBzdHJ1Y3Qgc3ltYm9sICpzeW0yDQo+ICsJICAgID0gbG9v a3VwX3N5bWJvbF9zZWFyY2hfbmFtZSAoc3ltLT5zZWFyY2hfbmFtZSAoKSwNCj4gKwkJCQkJIGIs IFNFQVJDSF9WQVJfRE9NQUlOKS5zeW1ib2w7DQo+ICsJICBjYiAoc3ltLT5wcmludF9uYW1lICgp LCBzeW0yLCB2YXJfc2hhZG93aW5nOjpOT05FKTsNCj4gKwl9DQo+ICsgICAgfQ0KPiArfQ0KPiAr DQo+ICAvKiBQcmludCBhbGwgYXJndW1lbnQgdmFyaWFibGVzIG9mIHRoZSBmdW5jdGlvbiBvZiBG UkFNRS4NCj4gICAgIFByaW50IHRoZW0gd2l0aCB2YWx1ZXMgdG8gU1RSRUFNLg0KPiAgICAgSWYg UkVHRVhQIGlzIG5vdCBOVUxMLCBvbmx5IHByaW50IGFyZ3VtZW50IHZhcmlhYmxlcyB3aG9zZSBu YW1lIEBAIA0KPiAtMjQyOCw3ICsyNTI5LDcgQEAgcHJpbnRfZnJhbWVfYXJnX3ZhcnMgKGNvbnN0 IGZyYW1lX2luZm9fcHRyICZmcmFtZSwNCj4gICAgY2JfZGF0YS5zdHJlYW0gPSBzdHJlYW07DQo+ ICAgIGNiX2RhdGEudmFsdWVzX3ByaW50ZWQgPSAwOw0KPiAgDQo+IC0gIGl0ZXJhdGVfb3Zlcl9i bG9ja19hcmdfdmFycyAoZnVuYy0+dmFsdWVfYmxvY2sgKCksIGNiX2RhdGEpOw0KPiArICBpdGVy YXRlX292ZXJfYmxvY2tfYXJnX3ZhcnNfcHJpbnRpbmcgKGZ1bmMtPnZhbHVlX2Jsb2NrICgpLCAN Cj4gKyBjYl9kYXRhKTsNCj4gIA0KPiAgICBpZiAoIWNiX2RhdGEudmFsdWVzX3ByaW50ZWQgJiYg IXF1aWV0KQ0KPiAgICAgIHsNCj4gZGlmZiAtLWdpdCBhL2dkYi9zdGFjay5oIGIvZ2RiL3N0YWNr LmggaW5kZXggYWQyNzAwYjU5YTcuLjZlMmJiYTE1YjMyIA0KPiAxMDA2NDQNCj4gLS0tIGEvZ2Ri L3N0YWNrLmgNCj4gKysrIGIvZ2RiL3N0YWNrLmgNCj4gQEAgLTIwLDYgKzIwLDggQEANCj4gICNp Zm5kZWYgR0RCX1NUQUNLX0gNCj4gICNkZWZpbmUgR0RCX1NUQUNLX0gNCj4gIA0KPiArZW51bSBj bGFzcyB2YXJfc2hhZG93aW5nOw0KPiArDQo+ICBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFy PiBmaW5kX2ZyYW1lX2Z1bm5hbWUgKGNvbnN0IGZyYW1lX2luZm9fcHRyICZmcmFtZSwNCj4gIAkJ CQkJCSAgZW51bSBsYW5ndWFnZSAqZnVubGFuZywNCj4gIAkJCQkJCSAgc3RydWN0IHN5bWJvbCAq KmZ1bmNwKTsNCj4gQEAgLTI3LDEyICsyOSwyNCBAQCBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxj aGFyPiBmaW5kX2ZyYW1lX2Z1bm5hbWUgDQo+IChjb25zdCBmcmFtZV9pbmZvX3B0ciAmZnJhbWUs ICB0eXBlZGVmIGdkYjo6ZnVuY3Rpb25fdmlldzx2b2lkIChjb25zdCBjaGFyICpwcmludF9uYW1l LCBzdHJ1Y3Qgc3ltYm9sICpzeW0pPg0KPiAgICAgICBpdGVyYXRlX292ZXJfYmxvY2tfYXJnX2xv Y2FsX3ZhcnNfY2I7DQo+ICANCj4gK3R5cGVkZWYgZ2RiOjpmdW5jdGlvbl92aWV3PHZvaWQgKGNv bnN0IGNoYXIgKnByaW50X25hbWUsIHN0cnVjdCBzeW1ib2wgKnN5bSwNCj4gKwkJCQkgdmFyX3No YWRvd2luZyBzaGFkb3dfc3RhdHVzKT4NCj4gKyAgICBpdGVyYXRlX292ZXJfYmxvY2tfYXJnX2xv Y2FsX3ZhcnNfY2JfcHJpbnRpbmc7DQo+ICsNCj4gIHZvaWQgaXRlcmF0ZV9vdmVyX2Jsb2NrX2Fy Z192YXJzIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLA0KPiAgCQkJCSAgaXRlcmF0ZV9vdmVy X2Jsb2NrX2FyZ19sb2NhbF92YXJzX2NiIGNiKTsNCj4gIA0KPiAgdm9pZCBpdGVyYXRlX292ZXJf YmxvY2tfbG9jYWxfdmFycyAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywNCj4gIAkJCQkgICAg aXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ19sb2NhbF92YXJzX2NiIGNiKTsNCj4gIA0KPiArdm9pZCBp dGVyYXRlX292ZXJfYmxvY2tfYXJnX3ZhcnNfcHJpbnRpbmcNCj4gKyAgKGNvbnN0IHN0cnVjdCBi bG9jayAqYmxvY2ssDQo+ICsgICBpdGVyYXRlX292ZXJfYmxvY2tfYXJnX2xvY2FsX3ZhcnNfY2Jf cHJpbnRpbmcgY2IpOw0KPiArDQo+ICt2b2lkIGl0ZXJhdGVfb3Zlcl9ibG9ja19sb2NhbF92YXJz X3ByaW50aW5nDQo+ICsgIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLA0KPiArICAgaXRlcmF0 ZV9vdmVyX2Jsb2NrX2FyZ19sb2NhbF92YXJzX2NiX3ByaW50aW5nIGNiKTsNCj4gKw0KPiAgLyog SW5pdGlhbGl6ZSAqV0hBVCB0byBiZSBhIGNvcHkgb2YgdGhlIHVzZXIgZGVzaXJlZCBwcmludCB3 aGF0IGZyYW1lIGluZm8uDQo+ICAgICBJZiAhV0hBVC5oYXNfdmFsdWUgKCksIHRoZSBwcmludGlu ZyBmdW5jdGlvbiBjaG9vc2VzIGEgZGVmYXVsdCBzZXQgb2YNCj4gICAgIGluZm9ybWF0aW9uIHRv IHByaW50LCBvdGhlcndpc2UgdGhlIHByaW50aW5nIGZ1bmN0aW9uIHNob3VsZCBwcmludCANCj4g ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS92YXJfc2hhZG93aW5nLmV4cCANCj4g Yi9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvdmFyX3NoYWRvd2luZy5leHANCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjQ3ZTJiMzgzMWZkDQo+IC0tLSAvZGV2L251 bGwNCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3Zhcl9zaGFkb3dpbmcuZXhwDQo+IEBA IC0wLDAgKzEsMzkgQEANCj4gKyMgQ29weXJpZ2h0IDIwMjMtMjAyNiBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4NCj4gKw0KPiArIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIA0KPiArbW9kaWZ5ICMgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyANCj4gK3B1Ymxpc2hl ZCBieSAjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIA0KPiArTGljZW5zZSwgb3IgIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u Lg0KPiArIw0KPiArIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgIyANCj4gK2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICMgDQo+ICtNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlICMgR05VIA0KPiAr R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiArIw0KPiArIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSAjIA0KPiArYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICsNCj4gK2xvYWRfbGliICJhZGEuZXhwIg0KPiAr DQo+ICtyZXF1aXJlIGFsbG93X2FkYV90ZXN0cw0KPiArDQo+ICtzdGFuZGFyZF9hZGFfdGVzdGZp bGUgdmFyX3NoYWRvd2luZw0KPiArDQo+ICtpZiB7W2dkYl9jb21waWxlX2FkYSAiJHtzcmNmaWxl fSIgIiR7YmluZmlsZX0iIFwNCj4gKyAgICBleGVjdXRhYmxlIFtsaXN0IGRlYnVnXV0gIT0gIiIg fSB7DQo+ICsgICAgcmV0dXJuIC0xDQoNClRoaXMgJ3JldHVybiAtMScgc2hvdWxkIGJlIGp1c3Qg J3JldHVybicuICBUaGVyZSBhcmUgYW4gYWRkaXRpb25hbCA0IHBsYWNlcyBiZWxvdyB3aGljaCBu ZWVkIHRoaXMgZml4LCBidXQgSSdsbCBub3QgcG9pbnQgb3V0IGV2ZXJ5IG9uZSBvZiB0aGVtLg0K DQo+ICt9DQo+ICsNCj4gK2NsZWFuX3Jlc3RhcnQgJHt0ZXN0ZmlsZX0NCj4gKw0KPiArc2V0IGlf bGV2ZWwxIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJJLUxldmVsMSJdIHNldCBpX2xldmVsMiANCj4g K1tnZGJfZ2V0X2xpbmVfbnVtYmVyICJJLUxldmVsMiJdIHNldCBpX2xldmVsMyBbZ2RiX2dldF9s aW5lX251bWJlciANCj4gKyJJLUxldmVsMyJdIHNldCBicF9sb2NhdGlvbiBbZ2RiX2dldF9saW5l X251bWJlciAiQlJFQUsiXSBydW50byANCj4gKyJ2YXJfc2hhZG93aW5nLmFkYjokYnBfbG9jYXRp b24iDQo+ICsNCj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FscyIgW211bHRpX2xpbmUgXA0KPiArICAg ICJpID0gMTExXHQ8JHRlc3RmaWxlLmFkYjokaV9sZXZlbDM+IiAgXA0KPiArICAgICJpID0gMTFc dDwkdGVzdGZpbGUuYWRiOiRpX2xldmVsMiwgc2hhZG93ZWQ+IiAgXA0KPiArICAgICJpID0gMVx0 PCR0ZXN0ZmlsZS5hZGI6JGlfbGV2ZWwxLCBzaGFkb3dlZD4iICBcIF0gImluZm8gbG9jYWxzIGF0 IA0KPiAraW5uZXJtb3N0IGxldmVsIg0KDQpUaGFua3MsDQpBbmRyZXcNCg0KSW50ZWwgRGV1dHNj aGxhbmQgR21iSAoKUmVnaXN0ZXJlZCBBZGRyZXNzOiBEb3JuYWNoZXIgU3RyYXNzZSAxLCA4NTYy MiBGZWxka2lyY2hlbiwgR2VybWFueQpUZWw6ICs0OSA4OSA5OTEgNDMwLCB3d3cuaW50ZWwuZGUK TWFuYWdpbmcgRGlyZWN0b3JzOiBIYXJyeSBEZW1hcywgSmVmZnJleSBTY2huZWlkZXJtYW4sIFlp biBDaG9uZyBTb3JyZWxsCkNoYWlycGVyc29uIG9mIHRoZSBTdXBlcnZpc29yeSBCb2FyZDogTmlj b2xlIExhdQpSZWdpc3RlcmVkIFNlYXQ6IE11bmljaApDb21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRz Z2VyaWNodCBNdWVuY2hlbiBIUkIgMTg2OTI4Cg==