From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id D8F1DAC0AF6 for ; Sun, 18 Feb 2024 03:36:45 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=k7VlegaddsC5MrN6868WtMJ5JPxVgNawjmd6XXHRQfA=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1708227404; v=1; b=a6B6g/rVS+QFo6jvPN2skAXcfZy0DnL08+LK8/VkrUtvYtDlFvlOmatLe6uJpR0dmPgCKjSy JJN+TkTq634QVbWepW3Tu9kVWJDmRZW96cVbsNjZzoV1cpLVV3Z1H/iTS9JuAEncNGeZkaE7RGl bFHwev3avkJrUzgnkU6aXtLI= X-Received: by 127.0.0.2 with SMTP id QCKBYY7687511xMbefBk1QNj; Sat, 17 Feb 2024 19:36:44 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11]) by mx.groups.io with SMTP id smtpd.web10.12126.1708227403203125363 for ; Sat, 17 Feb 2024 19:36:43 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10987"; a="12874852" X-IronPort-AV: E=Sophos;i="6.06,167,1705392000"; d="scan'208";a="12874852" X-Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Feb 2024 19:36:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,167,1705392000"; d="scan'208";a="8873827" X-Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orviesa004.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 17 Feb 2024 19:36:42 -0800 X-Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Sat, 17 Feb 2024 19:36:41 -0800 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Sat, 17 Feb 2024 19:36:41 -0800 X-Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Sat, 17 Feb 2024 19:36:41 -0800 X-Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.100) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Sat, 17 Feb 2024 19:36:40 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i0p3wYu5C2Nun7YALyAXaSgvjphgULqvht6gGtYOuMN7VV8+4hKKMaRiLxmdVfAnMmq8sLoARlHwLqd8fN3hCztbfmouqX4nXhqob9tBXfTTURPs8spb60U/ZarGHwH1XpzKDFetj3k0raX4jdP0Tl9V85KNkWwUZ3FrKknU4vuUxM1Bc284GY60d/iUNflh1rQMS08mXkK8jkQv3eZh9oJqXc7sEm7mJ9zxcaAeHwe3GoS88Toe66jQOwJ6kufGnzTRRB7VD5b1qiiBh0Ob/paKSn9NPWnR6o8fcTQaknoQijtP1z6AvIYH09ctwwrSPWHUWt6F062QG4bdEaP6Kw== 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=PUwRfdGWuSC29wEj04sye8U0FOvkF6dqguWc37QyhPo=; b=V/RyKxrAVMlEOl3pvsBtbblKwwqm9LGpKH4q//QuV+XD468+LVrWKQi8zNVIn8kFZ91siHy4nDeUz3FMGzU3qC5Zaowo7Sg35GPEN5mYLHNrOKnl0rqrITtJX39mY24BBs0cDyYktOu4pjLaiscI/OwTCUDlB28/alJCRu8VEwxur3776bcPLayqSebWjI5hHni7dW3mTtCRrUaDcLbiIDiWMg9riT9gZUrFg72URclWsUFMkNuCn7WnHkdTK2hJaCAp22vBaGf2VIby4/LBrpTO5zh8o6wecOx6tHW/kZxSojnEz3dMWG7m5M/xcnmJpEXheGQJx2V0dhmlMcCrOA== 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 X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by DM4PR11MB5278.namprd11.prod.outlook.com (2603:10b6:5:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.34; Sun, 18 Feb 2024 03:36:38 +0000 X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7e42:1633:d0a6:9c00]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7e42:1633:d0a6:9c00%6]) with mapi id 15.20.7292.033; Sun, 18 Feb 2024 03:36:38 +0000 From: "Michael D Kinney" To: Ard Biesheuvel , "devel@edk2.groups.io" CC: Leif Lindholm , Rebecca Cran , Liming Gao , "Feng, Bob C" , "Chen, Christine" , "Michael Kubacki" , "Kinney, Michael D" Subject: Re: [edk2-devel] [Patch 1/1] BaseTools/Scripts/PatchCheck: Error if commit modifies multiple packages Thread-Topic: [edk2-devel] [Patch 1/1] BaseTools/Scripts/PatchCheck: Error if commit modifies multiple packages Thread-Index: AQHaXuQqx7J44iJzj0WXPiKrQX7he7EJbFEAgACQikCAAALSgIAACUgAgAAJDOCAAFDnAIAAE56QgAAMHACAAAhZIIAE0H8Q Date: Sun, 18 Feb 2024 03:36:38 +0000 Message-ID: References: <20240214011751.2529-1-michael.d.kinney@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|DM4PR11MB5278:EE_ x-ms-office365-filtering-correlation-id: 660128e7-8d04-4d63-5b79-08dc3032d058 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: KlfUVk/wu7m71/KArJPqrQlwpEeWUVoWQhi2V0i2tEvFRMYfr6I3oSgEpRbz/Wwd8q2xiEcjVFWWUFog4jNm/cnXJ/Uq305p4HYj6PLd/BZ1XzwoG0VytDB2llpwPR3cQEPsS2zF+UnenrI8pAELGonMXvcXtgGngHo4JR/2gupbDenO5RntTlksOuxDHYq/LbQqkek23piEtMLVoZhjer1rsxTYY8PQapfMa3iJHOTgl6DAoT5/FWB0mRi+AHz8V8+cJDeE54rq2tywQD4Gvv2ZCjfIrU9gXBxRz9cmOksbYB536xC0PPPj4HM97xCctg3O82A3d3k9V5HLT75wEektuKsdgmTetOsS6XjkAu0xTlwuFPeymqxaPd/k2kE8ial3zCXces46mzOHzeOhZfp6xFbkXHGLoOZOkxpc0FLHLbhVK7V0GuO488ZJN8Q2u2qmA/HqSygxCQjeHsaNzA/I7d4tfvEDhkwO/qv/0RsiNo5irSdsZRv+zvNqlpzdwNnB6IXqAEGOk7tj+++E3RT27fmN3iAR3/rMkYV0rPozMt4jfdXwp/OwCNDQbXy3T+47bOk1dk4l92Bu83Z34xvJLPp6E5pMdAXq4UQCOrc= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Nm9JcXVJV1Vmc2QyTFBkUjluY1dZYTY0TVV0VW11cFA2dUp4NTlPbk04VlRV?= =?utf-8?B?QWQxOTA5Y2FIalI0Tk5wNElUVXNGTElWcEptWXNhQUdUU25RR0VxVzFkZG9L?= =?utf-8?B?aHFJZlBvcjFzWWl3ckFzd1Z2WVlaeU0rRkd1NUFNVisvTnZ6amdrMllRWmtS?= =?utf-8?B?b2pZTnpXckZrdFQxeGZLQjVFNkRIcHVpaHcvRS8zZFZYSWk5anFPTkpERFU4?= =?utf-8?B?ekZFdDhHbkFscG4vU215RWtuOXBKVnJaaGJ5L2xqaGs3cDRLRFVOSnk4Q1pE?= =?utf-8?B?VWU3UDZtUVpGTi9WYW9TNWlSZmhqalRRNXRBZ0FMNkN0OEt3b0c1eDdRWTF2?= =?utf-8?B?Wnd5MStvREFyQTNkS2FudWpXZWFZb1JqZnBLQytYZUl3eGloSlVhUFJLOHRX?= =?utf-8?B?T1JjNnpEeElTdlhrREQ1ZnJ4Y3Y2UlB5RHowT0RwVGRaeHBNM2lraTQ2dGZz?= =?utf-8?B?aDlIWk5JTHNwd2VaSGZjbnJLWVZGS3lTRnBSRTUybVNrYTdaeVpZZEVmZ0dj?= =?utf-8?B?Wk80N3RhbjRSR3J5R1paVXVyem9OdDA0QlZkTHk2YmZ6VEQ4eWcxWTRUL2Ny?= =?utf-8?B?ZnI3ZW9GVmppZXdHUnh5TnJueGRHTUhjeU5FUmp6Yjl3Zm1vZDJsWjBrdHNx?= =?utf-8?B?MFY5TnFoT0RuYWJnR0tpVHNDem9oTG56Q0R2OEZJZ2o2MkhRV2NXWnpyZkhn?= =?utf-8?B?ZGRSTVA1eGFzYmpTU1hXbnhnaGVINTNzaDNwd3E3ekovaXdkMzJsaU9JYWQv?= =?utf-8?B?bE5heEtDZktUSzRrQXNIMUtVMzRLY3p2TE9Fd29LbUtGWjhRRnBDYlF6WThl?= =?utf-8?B?cE9WQjRqaVV4c2hIUkZFaTBxMk5NK1lIVzBja0F1UDdlQjkrWStidnMxQWUy?= =?utf-8?B?RXE5OXo0ZXlrdTV5ckpOZkJwSEZQclk5dFJ1dzlBQjBEK2ZGU3p0ZzRkb0Y3?= =?utf-8?B?cXpPL0R5SWJyMy9ZN25iWjJqdzlKSnIzejV1ck4zM1pvbGVic0JTRndDQjhx?= =?utf-8?B?eThkVHBFcXRydkNZWS9wN1pMTStrOHVmNElUR2JCbVFzL0grMGpyamRjRHNr?= =?utf-8?B?dmJubE55am1hN2lDMlZTamo3NlZ3bFRIbG8rL0xRNk9DeUZLRTZlcWxoY0xR?= =?utf-8?B?RnB3RW5xVW0wV01OdjJKVExUQnZzbENTVU1sVGNrUjdmZ2NTY1JHZ2F5bm80?= =?utf-8?B?N0gzaHkwZmh4VGgxSEwvaTV6dUdRYWhOVEtxRmdER3J5SVVPcEJzYXVqeU5o?= =?utf-8?B?RStiS0pBdVRWdUdsNTVGNUgxdXhxcVFZbjNxZjIzUlRBVll2S2JnZkdCOTRu?= =?utf-8?B?OGI2enYwWm52VmNBc0hTWEdmbSs2OXZxZVp5MEM3MzZwc3VvMWs4eDlHdzU5?= =?utf-8?B?WkFZcVhJRHpxTFRrZzM1eGpSdDAyWFl3U3hrZ00vNStxanpJOEc3THI4REdI?= =?utf-8?B?OG5tWE0xVkl0NFlzKzlTV2t4RlZxNVBkdHFmSmxaaE5BOWRlUForVlpndkUx?= =?utf-8?B?dm5xb0NwV2IwVThiUFRuRWNNUENIazlQaVh6TTl3a1czTnEzYk5waHd5OUx6?= =?utf-8?B?WUJoRjBpUXpPTGR2TWlDWExZaGhKNS9KbFpIbmUyNW9vUllpWmZHTGJ5aGdB?= =?utf-8?B?c3hDdlhHSW9Td2lxQjNPL1MrSkJUSnNocFBITWhvWlRqbmpNV3lGZkluYWRY?= =?utf-8?B?bDI4RVhzQnE0Q3I3QWxObmU5Uk1VVjIrcmpVOFBCaDlmekdobVdkS013cjdP?= =?utf-8?B?Q0hOaEFaQ2g2bEtQUWtGRm53dXlTTncyQmtqVTNpU0hOVkxYV1J0aWd0U1l0?= =?utf-8?B?Tmk0dkk0VmREK1ZkZkFiZWNXOFZwWGV2MktrOEtsZ005cDd1OFJ2V29MWUNK?= =?utf-8?B?LzlwWXo4N2VSV0NvMy9wd3lnZmdTU3oyVkdGbEx5ZUpLZXhYNWk5eWZWbTY4?= =?utf-8?B?MlRKUXdYMGZJd0RsMkRVZFlwdEl0UmxjQlE5Sk13M3A2NlVmcnh4S09CVG9o?= =?utf-8?B?WTUxMHd6dC9rUTQ4aDRSYzV4VnhGWUFXMTRQS3BRSFllZWY3NkpHb2FYbFpT?= =?utf-8?B?QlZhZDR5dlRHa1M0WnRQQ2kvWDFBSWRUd3BsWG1VN0prMVZSL2RYd3BwbWpy?= =?utf-8?Q?hgw+7sLZCUrw7KA+7ROK75UKq?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 660128e7-8d04-4d63-5b79-08dc3032d058 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Feb 2024 03:36:38.1542 (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: jlStKVk3BebzaFbMlaLE9vM4OSyy4CU/X59fSUyErvvFY7bnF5J9uBgwe4mzVTA35rjkKMmbGZAqkFovu4FAeQFzk0a83OzqRNzkyQX+TC4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5278 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,michael.d.kinney@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: XrlmE0W2s0vsoIMc0f4LID4gx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b="a6B6g/rV"; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io SGkgQXJkLA0KDQpJIGRpZCBzb21lIGV4cGVyaW1lbnRzIHdpdGggdGhlIDIgbWV0aG9kcyBkaXNj dXNzZWQgZWFybGllciBpbiANCnRoaXMgdGhyZWFkIHRvIGRpc2FibGUgdGhlIHNwZWNpZmljIGNo ZWNrIGJlaW5nIGRpc2N1c3NlZCBpbiB0aGlzDQpwYXRjaC4gRGV0YWlscyBvZiB0aGUgZXhwZXJp bWVudHMgYW5kIGFuYWx5c2lzIG9mIHRoZSByZXN1bHRzIA0KYXJlIGluY2x1ZGVkIGF0IHRoZSBl bmQgb2YgdGhlIGVtYWlsLg0KDQoxKSBVc2UgR2l0SHViIFBSIExhYmVsDQoyKSBBZGQgYSBzcGVj aWFsIHRhZ3MgdG8gYSBjb21taXQgbWVzc2FnZQ0KDQpNeSBjb25jbHVzaW9uIGlzIHRoYXQgdXNp bmcgYSBQUiBMYWJlbCB0byBjb250cm9sIENJIGFjdGlvbnMgaXMNCm5vdCBhIGdvb2QgYXBwcm9h Y2ggZHVlIHRvIHNvbWUgYmVoYXZpb3JzIGluIEdpdEh1YiBhbmQgdGhhdCBJDQpyZWNvbW1lbmQg dGhhdCBzcGVjaWFsIHRhZ3MgYmUgdXNlZCBpbiBjb21taXQgbWVzc2FnZXMgYXMgYSBtZXRob2QN CnRvIGVuYWJsZS9kaXNhYmxlIHNwZWNpZmljIENJIGNoZWNrIG9wdGlvbnMuICBUaGVyZSBpcyBh Y3R1YWxseQ0KcHJlY2VkZW5jZSBmb3IgdXNlIG9mIGNvbW1pdCBtZXNzYWdlIHRhZ3MgaW4gR2l0 SHViIHRvIHNraXAgQ0kNCndvcmtmbG93IHJ1bnM6DQoNCmh0dHBzOi8vZG9jcy5naXRodWIuY29t L2VuL2FjdGlvbnMvbWFuYWdpbmctd29ya2Zsb3ctcnVucy9za2lwcGluZy13b3JrZmxvdy1ydW5z DQoNClRoZSBwcm9wb3NhbCBpcyB0byBkZWZpbmUgYSB0YWcgbmFtZSAnQ29udGludW91cy1pbnRl Z3JhdGlvbi1vcHRpb25zOicNCnRoYXQgY2FuIGFwcGVhciBvbiBvbmUgb3IgbW9yZSBsaW5lcyBv ZiB0aGUgY29tbWl0IG1lc3NhZ2UgYW5kIHRoZSB0YWcgDQp2YWx1ZSBpcyBhIGxpc3Qgb2Ygb25l IG9yIG1vcmUgQ0kgY2hlY2sgb3B0aW9ucy4gVGhpcyBkZWZpbmVzIGEgbWVjaGFuaXNtDQp0aGF0 IGNhbiBiZSBleHRlbmRlZCBhcyBuZWVkZWQuIEZvciB0aGUgc3BlY2lmaWMgY2hlY2sgdW5kZXIg ZGlzY3Vzc2lvbg0KaGVyZSwgSSBhbSBwcm9wb3NpbmcgYW4gb3B0aW9uIHZhbHVlIG9mICdQYXRj aENoZWNrLmlnbm9yZS1tdWx0aS1wYWNrYWdlJw0KQW4gZXhhbXBsZSBjb21taXQgbWVzc2FnZSBs aW5lIHRvIGRpc2FibGUgdGhlIG11bHRpcGxlIHBhY2thZ2UgY2hlY2sNCmZvciB0aGUgb25lIGNv bW1pdCB3b3VsZCBiZToNCg0KICAgIENvbnRpbnVvdXMtaW50ZWdyYXRpb24tb3B0aW9uczogUGF0 Y2hDaGVjay5pZ25vcmUtbXVsdGktcGFja2FnZQ0KDQpXaGVuIFBhdGNoQ2hlY2sgZXZhbHVhdGVz IHRoZSBjb21taXQgbWVzc2FnZSwgaWYgdGhpcyB0YWcvdmFsdWUgaXMNCnByZXNlbnQsIHRoZW4g dGhlIG11bHRpcGxlIHBhY2thZ2UgY2hlY2sgaXMgc3RpbGwgcnVuLCBidXQgdGhlIGxvZw0Kc2hv d3MgcmVzdWx0cyBhcyBXQVJOSU5HIG1lc3NhZ2VzLCBhbmQgbm8gZXJyb3JzIGFyZSByYWlzZWQg YW5kIENJIA0KcmVjZWl2ZXMgYSBQQVNTIHJlc3VsdC4NCg0KUGxlYXNlIHByb3ZpZGUgZmVlZGJh Y2sgb24gdGhpcyB1cGRhdGVkIHByb3Bvc2FsLiANCg0KVGhhbmtzLA0KDQpNaWtlDQoNCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCkdp dEh1YiBQUiBMYWJlbCBFeHBlcmltZW50cw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K QW4gZXhwZXJpbWVudCB3YXMgZG9uZSB0byB1c2UgYSBHaXRIdWIgUFIgTGFiZWwgdG8gZW5hYmxl L2Rpc2FibGUgdGhlDQptdWx0aXBsZSBwYWNrYWdlIGNoZWNrLiBQYXRjaENoZWNrIHdhcyBwb3J0 ZWQgdG8gYSBHaXRIdWIgQWN0aW9uIGZvcg0KdGhpcyBleHBlcmltZW50IGFuZCBhIGxhYmVsIHdp dGggbmFtZSAnaWdub3JlLW11bHRpLXBhY2thZ2UnIGlzIHVzZWQgDQp0byBkaXNhYmxlIHRoZSBQ YXRjaENoZWNrIG11bHRpcGxlIHBhY2thZ2VzIGNoZWNrLiAgUGF0Y2hDaGVjayBpcyB1cGRhdGVk DQp0byBzdXBwb3J0IGEgLS1pZ25vcmUtbXVsdGktb3B0aW9uIGZsYWcgdGhhdCBpcyBwYXNzZWQg aW50byBQYXRjaENoZWNrIA0Kd2hlbiB0aGUgbGFiZWwgaXMgc2V0Lg0KDQpEZXNjcmlwdGlvbiAg ICAgICAgUmVzdWx0ICBMYWJlbCBTZXQgUFIgTGluaw0KLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0t LS0gLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCk1v ZGlmeSAxIHBhY2thZ2UgICAgUEFTUyAgICAgICBOTyAgICBodHRwczovL2dpdGh1Yi5jb20vbWRr aW5uZXkvZWRrMi9wdWxsLzE1DQpNb2RpZnkgMSBwYWNrYWdlICAgIFBBU1MgICAgICBZRVMgICAg aHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIvcHVsbC8xNQ0KTW9kaWZ5IDIgcGFja2Fn ZXMgICBGQUlMICAgICAgIE5PICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL3B1 bGwvMTYNCk1vZGlmeSAyIHBhY2thZ2VzICAgUEFTUyAgICAgIFlFUyAgICBodHRwczovL2dpdGh1 Yi5jb20vbWRraW5uZXkvZWRrMi9wdWxsLzE3DQoNCk1haW4gQnJhbmNoOg0KKiBodHRwczovL2dp dGh1Yi5jb20vbWRraW5uZXkvZWRrMi90cmVlL0NpRW5hYmxlZA0KUGF0Y2ggQ2hlY2sgd2l0aCAt LWlnbm9yZS1tdWx0aS1wYWNrYWdlIG9wdGlvbjoNCiogaHR0cHM6Ly9naXRodWIuY29tL21ka2lu bmV5L2VkazIvYmxvYi9DaUVuYWJsZWQvQmFzZVRvb2xzL1NjcmlwdHMvUGF0Y2hDaGVjay5weQ0K R2l0SHViIEFjdGlvbiBGaWxlczoNCiogaHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIv YmxvYi9DaUVuYWJsZWQvLmdpdGh1Yi93b3JrZmxvd3MvcGF0Y2hjaGVjay55bWwNCiogaHR0cHM6 Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIvYmxvYi9DaUVuYWJsZWQvLmdpdGh1Yi93b3JrZmxv d3MvcGF0Y2hjaGVja19jYWxsLnltbA0KDQpUaGUgZXhwZWN0ZWQgcmVzdWx0cyB3ZXJlIGFjaGll dmVkIHdoZXJlIHRoZSBsYWJlbCBoYXMgbm8gaW1wYWN0IG9uIGEgDQpQUiB3aXRoIGNvbW1pdHMg dGhhdCBvbmx5IG1vZGlmaWVzIGEgc2luZ2xlIHBhY2thZ2UsIGFuZCB0aGUgbGFiZWwgYmVpbmcN CnNldCBjYW4gY2hhbmdlIGEgUFIgZnJvbSBGQUlMLT5QQVNTIGlmIG9uZSBvciBtb3JlIG9mIHRo ZSBjb21taXRzIGluIHRoZQ0KUFIgbW9kaWZ5IG11bHRpcGxlIHBhY2thZ2VzLg0KDQpUaGUgZGlz YWR2YW50YWdlcyBvZiB0aGlzIGFwcHJvYWNoIGFyZToNCjEpIFRoZSBzY29wZSBvZiB0aGUgbGFi ZWwgaXMgdGhlIGVudGlyZSBQUiBmb3IgYWxsIGNvbW1pdHMgaW5zdGVhZCBvZg0KICAgdGhlIHNw ZWNpZmljIGNvbW1pdHMgdGhhdCByZXF1aXJlIHRoZSBjaGVjayB0byBiZSBza2lwcGVkLg0KMikg VGhlIGluZm9ybWF0aW9uIHRvIHNraXAgYSBzcGVjaWZpYyBjaGVjayBpcyBvbmx5IGluIHRoZSBH aXRIdWIgUFINCiAgIGluIHRoZSBmb3JtIG9mIGEgbGFiZWwgYmVpbmcgc2V0LiBUaGUgZ2l0IGNv bW1pdCBoaXN0b3J5IGhhcyBubyBpbmZvcm1hdGlvbg0KICAgb24gdGhlIGxhYmVsIHNldHRpbmdz LiBUaGlzIGNhbiBjYXVzZSBzaWRlIGVmZmVjdHMgaWYgZG93bnN0cmVhbSBjb25zdW1lcnMNCiAg IHVzZSBzb21lIG9mIHRoZSBlZGsyIENJIGNoZWNrZXJzIGFuZCBtYXkgdGhlbiBzZWUgdW5leHBl Y3RlZCBDSSBmYWlsdXJlcy4NCjMpIENJIGlzIHJ1biBhZ2FpbiB3aGVuIGNvbW1pdHMgYXJlIG1l cmdlZCB3aXRoIGEgJ3B1c2gnIGFjdGlvbi4gSXQgd2FzDQogICBub3QgdmVyaWZpZWQsIGJ1dCB0 aGUgbGFiZWwgaW5mb3JtYXRpb24gaXMgbm90IHByb3ZpZGVkIHdoZW4gYSBwdXNoIA0KICAgaXMg cGVyZm9ybWVkLCBzbyB0aGUgcmVzdWx0IG9mIHVzaW5nIGxhYmVscyB0byBjaGFuZ2UgQ0kgYmVo YXZpb3INCiAgIG1heSBiZSBhIFBBU1MgY29uZGl0aW9uIHdoZW4gdGhlIFBSIGlzIGJlaW5nIHJl dmlld2VkLCBhbmQgYSBGQUlMDQogICBjb25kaXRpb24gd2hlbiB0aGUgY29tbWl0cyBmcm9tIHRo ZSBQUiBhcmUgbWVyZ2VkLiBUaGlzIGlzIG5vdCBhbiBleHBlY3RlZA0KICAgb3IgYWNjZXB0YWJs ZSBzdGF0ZSBvZiB0aGUgbWFpbiBicmFuY2guDQo0KSBUaGUgR2l0SHViIGFjdGlvbiBtdXN0IGFk ZCAnbGFiZWxlZCcgYW5kICd1bmxhYmVsZWQnIFBSIHR5cGVzIGZvcg0KICAgdGhlIEdpdEh1YiBh Y3Rpb24gdG8gcnVuIHdoZW4gYSBsYWJlbCBpcyBhZGRlZCBvciByZW1vdmVkLiBUaGVyZSBpcw0K ICAgbm8gbWVjaGFuaXNtIHRvIGZpbHRlciBiYXNlZCBvbiB3aGljaCBzcGVjaWZpYyBsYWJlbCB3 YXMgYWRkZWQgb3INCiAgIHJlbW92ZWQuIFRoaXMgbWVhbnMgQ0kgbXVzdCBiZSBpbnZva2VkIGVh Y2ggdGltZSBhIGxhYmVsIGlzIG1vZGlmaWVkDQogICBpbiBhIFBSLCBldmVuIGZvciBsYWJlbHMg dGhhdCBhcmUgbm90IHJlbGF0ZWQgdG8gQ0kgYmVoYXZpb3IuIFRoaXMgaXMNCiAgIG5vdCBlZmZp Y2llbnQgZm9yIENJIGFuZCBpbXBsaWVzIHRoYXQgdGhpcyBtZWNoYW5pc20gZG9lcyBub3Qgc2Nh bGUNCiAgIHdlbGwgaWYgc2V2ZXJhbCBvZiB0aGVzZSBDSSBvcHRpb24gbGFiZWxzIGFyZSBhZGRl ZCBvdmVyIHRpbWUuDQogICAqIEV4cGVyaW1lbnRzIHdlcmUgcnVuIHRvIGZpbHRlciBiYXNlZCBp biBsYWJlbCBpbnNpZGUgdGhlIEdpdEh1Yg0KICAgICBBY3Rpb24gaXRzZWxmLiBUaGlzICpvbmx5 KiB3b3JrZWQgaWYgYSBDSSByZWxhdGVkIGxhYmVsIGlzIG1vZGlmaWVkLg0KICAgICBJZiBhIG5v bi1DSSByZWxhdGVkIGxhYmVsIGlzIG1vZGlmaWVkLCB0aGUgR2l0SHViIEFjdGlvbiBpcyBza2lw cGVkLA0KICAgICBhbmQgdGhlIHJlc3VsdCBpcyBQQVNTIGV2ZW4gaWYgdGhlIHJlc3VsdCBvZiB0 aGUgbGFzdCBydW4gd2FzIEZBSUwuDQogICAgIFRoaXMgd291bGQgYWxsb3cgbWVyZ2VzIG9mIFBS cyB3aXRoIGtub3duIGlzc3Vlcy4NCiAgICogVGhlIG90aGVyIG9wdGlvbiBpcyB0byByZW1vdmUg J2xhYmVsZWQnIGFuZCAndW5sYWJlbGVkJyBldmVudHMgZnJvbQ0KICAgICB0aGUgR2l0SHViIEFj dGlvbi4gVGhpcyBjYW4gd29yaywgYnV0IGhhcyBhbiB1bmV4cGVjdGVkIGJlaGF2aW9yIGZyb20N CiAgICAgdGhlIG1haW50YWluZXIgcGVyc3BlY3RpdmUuIFNldHRpbmcgYSBsYWJlbCBkb2VzIG5v dCByZS1ydW4gQ0kuDQogICAgIEluc3RlYWQsIHRoZSBsYWJlbCBoYXMgdG8gYmUgc2V0LCB0aGVu IGVpdGhlciB0aGUgUFIgbXVzdCBiZSBjbG9zZWQNCiAgICAgYW5kIHJlLW9wZW5lZCwgb3IgYWRk aXRpb25hbCBjb21taXRzIGhhdmUgdG8gYmUgYWRkZWQsIG9yIGNvbW1pdHMNCiAgICAgbXVzdCBi ZSBmb3JjZSBwdXNoZWQgaW4gb3JkZXIgZm9yIHRoZSBDSSBjaGVjayB0byBiZSByZS1ydW4gd2l0 aCANCiAgICAgdGhlIGxhYmVsIGNoYW5nZXMuIFRoaXMgYWxzbyBpbXBsaWVzIHRoYXQgdGhhdCBQ QVNTL0ZBSUwgc3RhdGUgb2YNCiAgICAgdGhlIFBSIGNhbiBiZSBvdXQgb2Ygc3luYyB3aXRoIHRo ZSBjdXJyZW50IGxhYmVsIHNldHRpbmdzIGlmIHRob3NlDQogICAgIGFkZGl0aW9uYWwgYWN0aW9u cyBhcmUgbm90IHBlcmZvcm1lZCBhZnRlciB0aGUgbGFiZWxzIGFyZSBtb2RpZmllZC4NCiANCkNv bW1pdCBNZXNzYWdlIFRhZyBFeHBlcmltZW50cw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQpBbiBleHBlcmltZW50IHdhcyBkb25lIHRvIHVzZSBhIGNvbW1pdCBtZXNzYWdlIHRhZy92 YWx1ZSB0byBkaXNhYmxlIHRoZQ0KbXVsdGlwbGUgcGFja2FnZSBjaGVjayBvbiBvbmx5IHRoZSBj b21taXRzIHRoYXQgY29udGFpbiBhIG1hdGNoaW5nDQp0YWcvdmFsdWUuICBUaGUgdGFnL3ZhbHVl IHVzZWQgaXM6DQoNCkNvbnRpbnVvdXMtSW50ZWdyYXRpb24tT3B0aW9uczogUGF0Y2hDaGVjay5p Z25vcmUtbXVsdGktcGFja2FnZQ0KDQpEZXNjcmlwdGlvbiAgICAgICAgUmVzdWx0ICBUYWcgUHJl c2VudCBQUiBMaW5rDQotLS0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpNb2RpZnkgMSBwYWNrYWdlICAg IFBBU1MgICAgICAgTk8gICAgICBodHRwczovL2dpdGh1Yi5jb20vbWRraW5uZXkvZWRrMi9wdWxs LzMwDQpNb2RpZnkgMiBwYWNrYWdlcyAgIEZBSUwgICAgICAgTk8gICAgICBodHRwczovL2dpdGh1 Yi5jb20vbWRraW5uZXkvZWRrMi9wdWxsLzI4DQpNb2RpZnkgMiBwYWNrYWdlcyAgIFBBU1MgICAg ICBZRVMgICAgICBodHRwczovL2dpdGh1Yi5jb20vbWRraW5uZXkvZWRrMi9wdWxsLzI5DQoNCk1h aW4gQnJhbmNoOg0KKiBodHRwczovL2dpdGh1Yi5jb20vbWRraW5uZXkvZWRrMi90cmVlL0NvbW1p dE1lc3NhZ2VDaUZpbHRlcg0KUGF0Y2ggQ2hlY2sgd2l0aCBDb250aW51b3VzLUludGVncmF0aW9u LU9wdGlvbnMgdGFnIHBhcnNpbmcNCiogaHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIv YmxvYi9Db21taXRNZXNzYWdlQ2lGaWx0ZXIvQmFzZVRvb2xzL1NjcmlwdHMvUGF0Y2hDaGVjay5w eQ0KR2l0SHViIEFjdGlvbiBGaWxlOg0KKiBodHRwczovL2dpdGh1Yi5jb20vbWRraW5uZXkvZWRr Mi9ibG9iL0NvbW1pdE1lc3NhZ2VDaUZpbHRlci8uZ2l0aHViL3dvcmtmbG93cy9wYXRjaGNoZWNr LnltbA0KDQpUaGUgZXhwZWN0ZWQgcmVzdWx0cyB3ZXJlIGFjaGlldmVkIHdoZW4gYWRkaW5nIHRo ZSB0YWcvdmFsdWUgdG8gdGhlIA0KY29tbWl0IG1lc3NhZ2Ugb2YgYSBjb21taXQgdGhhdCBtb2Rp ZmllcyBtdWx0aXBsZSBwYWNrYWdlcyBjaGFuZ2VzDQp0aGUgUFIgZnJvbSBGQUlMLT5QQVNTLg0K DQpUaGUgZGlzYWR2YW50YWdlcyBvZiB0aGlzIGFwcHJvYWNoIGFyZToNCjEpIEFkZHMgQ0kgc3Bl Y2lmaWMgdGFncyB0byBjb21taXQgbWVzc2FnZXMgYW5kIGNvbW1pdCBoaXN0b3J5DQoyKSBSZXF1 aXJlcyBhdXRob3Igb3IgbWFpbnRhaW5lciB0byB1cGRhdGUgY29tbWl0IG1lc3NhZ2Ugd2l0aCBh DQogICBDSSBzcGVjaWZpYyB0YWcvdmFsdWUgaWYgYSBtdWx0aXBsZSBwYWNrYWdlIGNoZWNrIGZh aWxzIGFuZCBpcyANCiAgIGNvbnNpZGVyZWQgYSBmYWxzZSBwb3NpdGl2ZS4NCg0KVGhlIGFkdmFu dGFnZXMgb2YgdGhpcyBhcHByb2FjaCBhcmU6DQoxKSBUaGUgc2NvcGUgb2YgdGhlIHRhZy92YWx1 ZSBpcyBhIHNpbmdsZSBjb21taXQuIE5vdCB0aGUgZW50aXJlIFBSLg0KMikgVGhlIGluZm9ybWF0 aW9uIGFib3V0IHdoYXQgQ0kgY2hlY2tzIHRvIHNraXAgYXJlIHBhcnQgb2YgdGhlIA0KICAgY29t bWl0IG1lc3NhZ2UgYW5kIHRoZSBjb21taXQgaGlzdG9yeSBzbyB0aGUgaW5mb3JtYXRpb24gY2Fu IGJlDQogICByZXVzZWQgaWYgbmVlZGVkIGluIGRvd25zdHJlYW0gQ0kuDQozKSBUaGUgaW5mb3Jt YXRpb24gaXMgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLCBzbyBpdCBpcyBhdmFpbGFibGUgZm9yIGJv dGgNCiAgIFBSIENJIGNoZWNrcyBhbmQgJ3B1c2gnIENJIGNoZWNrcy4NCjQpIE5vIG5ldyBiZWhh dmlvciBmcm9tIGEgbWFpbnRhaW5lciBwZXJzcGVjdGl2ZSBvbiBob3cvd2hlbiBDSSBjaGVja3MN CiAgIGFyZSBydW4gYW5kIHdoZW4gdGhlIHN0YXR1cyBpZiBDSSBjaGVja3MgYXJlIGF2YWlsYWJs ZS4NCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog S2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTZW50OiBX ZWRuZXNkYXksIEZlYnJ1YXJ5IDE0LCAyMDI0IDQ6NDkgUE0NCj4gVG86IEFyZCBCaWVzaGV1dmVs IDxhcmRiQGtlcm5lbC5vcmc+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogTGVpZiBMaW5k aG9sbSA8cXVpY19sbGluZGhvbEBxdWljaW5jLmNvbT47IFJlYmVjY2EgQ3Jhbg0KPiA8cmViZWNj YUBic2Rpby5jb20+OyBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBGZW5n LCBCb2IgQw0KPiA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+OyBDaGVuLCBDaHJpc3RpbmUgPHl1d2Vp LmNoZW5AaW50ZWwuY29tPjsgTWljaGFlbA0KPiBLdWJhY2tpIDxtaWt1YmFja0BsaW51eC5taWNy b3NvZnQuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQYXRjaCAxLzFdIEJhc2VUb29scy9T Y3JpcHRzL1BhdGNoQ2hlY2s6DQo+IEVycm9yIGlmIGNvbW1pdCBtb2RpZmllcyBtdWx0aXBsZSBw YWNrYWdlcw0KPiANCj4gSGkgQXJkLA0KPiANCj4gSSBhZ3JlZSB3ZSBkbyBub3Qgd2FudCB0byBj b2RlIHRvIGJlIHdvcnNlLiAgV2hpY2ggSSBpbnRlcnByZXQNCj4gaW4gdGhpcyBjb250ZXh0IGFz IGludHJvZHVjaW5nIGV4dHJhIGNvbW1pdHMgdGhhdCByZWR1Y2UgdGhlDQo+IHJlYWRhYmlsaXR5 IG9mIHRoZSBjb21taXRzLg0KPiANCj4gV2UgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIHRoZSBlYXNl IG9mIHJldmlldyBvZiBwYXRjaGVzIGFuZCBjbGVhcg0KPiByZXNwb25zaWJpbGl0eSBmb3IgcHJv dmlkaW5nIHJldmlld3MuICBFc3BlY2lhbGx5IHdoZW4gd2UgaGF2ZQ0KPiBkaWZmZXJlbnQgcmV2 aWV3ZXJzL21haW50YWluZXJzIGZvciBkaWZmZXJlbnQgcGFja2FnZXMuIEl0IG1ha2VzDQo+IGl0 IGVhc2llciB0byByZXZpZXcgYSBwYXRjaCB3aGVuIHBhdGNoZXMgZG8gbm90IGNyb3NzIHBhY2th Z2UNCj4gYm91bmRhcmllcy4gIE90aGVyd2lzZSwgd2hhdCBkb2VzIGEgUmV2aWV3ZWQtYnkgbWVh biBpZiB5b3UNCj4gb25seSBoYXZlIGNvbnRleHQgZm9yIGEgcG9ydGlvbiBvZiB0aGUgcGF0Y2g/ ICBEb2VzIHRoYXQgbWVhbg0KPiB0aGF0IHJldmlld2VyIGlzIGNvbmZpZGVudCBpbiBhbGwgdGhl IGNoYW5nZXMgaW5jbHVkaW5nIHRob3NlDQo+IHRoZXkgbWF5IG5vdCBoYXZlIGFueSBleHBlcmll bmNlIHdpdGg/DQo+IA0KPiBUaGF0IG1lYW5zIHRoZXJlIGlzIHNvbWUgdGVuc2lvbiBiZXR3ZWVu IHJlYWRhYmlsaXR5IG9mIGNvbW1pdHMNCj4gYW5kIGNvZGUgcmV2aWV3IG9mIGNvbW1pdHMuDQo+ IA0KPiBUaGUgb3RoZXIgdG9waWMgYnJvdWdodCB1cCBpbiB0aGlzIGRpc2N1c3Npb24gaXMgYmlz ZWN0Lg0KPiANCj4gSSB1bmRlcnN0YW5kIHRoZSB2YWx1ZSBvZiBiaXNlY3QgdG8gaGVscCBpZGVu dGlmeSB0aGUgc291cmNlDQo+IG9mIGEgYnVnIG9yIGJlaGF2aW9yIGNoYW5nZS4NCj4gDQo+IEhv d2V2ZXIsIHRoZSBjdXJyZW50IEVESyBJSSBDSSBzeXN0ZW0gZG9lcyBub3QgdGVzdCBhdCB0aGUN Cj4gZ3JhbnVsYXJpdHkgb2Ygc2luZ2xlIGNvbW1pdHMuICBJbnN0ZWFkLCBpdCB0ZXN0cyB0aGUg ZW50aXJlDQo+IHBhdGNoIHNlcmllcyBpbiBhIFBSLg0KPiANCj4gSSBoYXZlIGFsc28gb2JzZXJ2 ZWQgc29tZSBtYWludGFpbmVycyBjb21iaW5pbmcgbXVsdGlwbGUNCj4gcGF0Y2ggc2VyaWVzIGlu dG8gYSBzaW5nbGUgUFIuDQo+IA0KPiBJIGFsc28gc3VzcGVjdCB0aGF0IHRoZXJlIGFyZSBtYW55 IHBhdGNoIHNlcmllcyBpbiB0aGUgZWRrMg0KPiBjb21taXQgaGlzdG9yeSB0aGF0IHdvdWxkIG5v dCB3b3JrIGlmIGJpc2VjdCB3YXMgcnVuIGFjcm9zcw0KPiB0aGVtIHRvZGF5Lg0KPiANCj4gV2hh dCB0aGlzIG1lYW5zIGluIHByYWN0aWNlIHdpdGggdGhlIGN1cnJlbnQgZWRrMiByZXBvc2l0b3J5 DQo+IGhpc3RvcnkgaXMgdGhhdCB3ZSBkbyBub3Qga25vdyBpZiBldmVyeSBjb21taXQgY2FuIGJl IGJ1aWx0DQo+IGFuZCBydW4uIFdlIG9ubHkga25vdyB0aGF0IHRoZSBFREsgSUkgQ0kgdGVzdHMg dGhhdCBhcmUgcnVuDQo+IGFnYWluc3QgUFJzIGhhdmUgcGFzc2VkLg0KPiANCj4gV2UgZG8gZXhw ZWN0IGJ1aWxkL3J1biBhdCB0aGUgZ3JhbnVsYXJpdHkgb2YgYSBQUiBtZXJnZSB0b2RheS4NCj4g SG93ZXZlciwgdGhlcmUgaXMgbm8gaW5mb3JtYXRpb24gaW4gdGhlIGdpdCBoaXN0b3J5IHRvIGtu b3cNCj4gd2hlcmUgdGhlIFBSIG1lcmdlcyBvY2N1ci4gIElmIHRoYXQgZXh0cmEgYml0IG9mIGlu Zm9ybWF0aW9uDQo+IHdhcyBhdmFpbGFibGUsIHRoZW4gYmlzZWN0IGNvdWxkIHNlbGVjdCB0aGUg Y29tbWl0cyBhdCBQUg0KPiBtZXJnZSBib3VuZGFyaWVzIHRvIGxvb2sgZm9yIGJ1Zy9iZWhhdmlv ciBjaGFuZ2UuICBUaGUgaGlzdG9yeQ0KPiBvZiBtZXJnZWQgUFJzIGlzIGluIGdpdGh1YiB1c2lu ZyB0aGUgZm9sbG93aW5nIHF1ZXJ5Lg0KPiANCj4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29y ZS9lZGsyL3B1bGxzP3E9aXMlM0FwcitpcyUzQWNsb3NlZCtpcyUzQW1lcmcNCj4gZWQNCj4gDQo+ IEkgaW1hZ2luZSB0aGUgc2V0IG9mIHNoYSBoYXNoZXMgYXQgUFIgYm91bmRhcmllcyBjb3VsZCBi ZSBleHRyYWN0ZWQNCj4gZnJvbSB0aGlzIHF1ZXJ5IGFuZCBiaXNlY3QgY291bGQgc2VsZWN0IGZy b20gdGhhdCBzZXQgb2Ygc2hhIGhhc2hlcw0KPiB0aGF0IGFyZSBhIHN1YnNldCBvZiB0aGUgdG90 YWwgc2V0IG9mIHNoYSBoYXNoZXMuICBCaXNldCB3b3VsZA0KPiBpZGVudGlmeSB0aGUgc3BlY2lm aWMgUFIgbWVyZ2Ugd2hlcmUgdGhlIGJ1ZyBvciBiZWhhdmlvciBjaGFuZ2Ugd2FzDQo+IGludHJv ZHVjZWQuDQo+IA0KPiBHaXZlbiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgZWRrMiByZXBvIGhp c3RvcnksIHRoZSBjb25jZXJuIGFib3V0DQo+IHNwbGl0dGluZyB1cCBjb21taXRzIG9uIHBhY2th Z2UgYm91bmRhcmllcyB0aGF0IG1heSBjYXVzZSBhIGJpc2VjdA0KPiBmYWlsdXJlIGF0IGEgY29t bWl0IGJvdW5kYXJ5IHdpdGhpbiBhIHNpbmdsZSBwYXRjaCBzZXJpZXMgbWF5IG5vdCBiZQ0KPiBz b21ldGhpbmcgdGhhdCBuZWVkcyB0byBiZSBjb25zaWRlcmVkLg0KPiANCj4gQSByZWZpbmVtZW50 IHRvIHRoZSBwcm9wb3NhbCBpcyB0byByZXF1aXJlIHBhdGNoZXMgdG8gbm90IGNyb3NzDQo+IHBh Y2thZ2UgYm91bmRhcmllcyBhbmQgYXV0aG9ycyBzaW1wbHkgbmVlZCB0byBzcGxpdCBpbnRvIG11 bHRpcGxlDQo+IGNvbW1pdHMgYmFzZWQgb24gcGFja2FnZSBib3VuZGFyaWVzIHdpdGhvdXQgY29u c2lkZXJpbmcgYmlzZWN0IHdpdGhpbg0KPiBhIHNpbmdsZSBwYXRjaCBzZXJpZXMuIFRoYXQgcHJl dmVudHMgYWRkaW5nIGV4dHJhIHBhdGNoZXMgdGhhdCBtYWtlDQo+IHRoZSBjaGFuZ2VzIGhhcmQg dG8gdW5kZXJzdGFuZCBhbmQgaGFzIHRoZSBhZGRpdGlvbmFsIGJlbmVmaXQgb2YNCj4gbWFraW5n IHRoZSBwYXRjaCBzZXJpZXMgZWFzaWVyIHRvIHJldmlldyBhbmQgY2xlYXIgb3duZXJzaGlwIGZv cg0KPiByZXZpZXdpbmcgZWFjaCBwYXRjaC4NCj4gDQo+IEJlc3QgcmVnYXJkcywNCj4gDQo+IE1p a2UNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBBcmQgQmll c2hldXZlbCA8YXJkYkBrZXJuZWwub3JnPg0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVhcnkg MTQsIDIwMjQgMzo0OCBQTQ0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBN aWNoYWVsIEQNCj4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gQ2M6IExlaWYg TGluZGhvbG0gPHF1aWNfbGxpbmRob2xAcXVpY2luYy5jb20+OyBSZWJlY2NhIENyYW4NCj4gPiA8 cmViZWNjYUBic2Rpby5jb20+OyBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+ OyBGZW5nLCBCb2INCj4gQw0KPiA+IDxib2IuYy5mZW5nQGludGVsLmNvbT47IENoZW4sIENocmlz dGluZSA8eXV3ZWkuY2hlbkBpbnRlbC5jb20+Ow0KPiBNaWNoYWVsDQo+ID4gS3ViYWNraSA8bWlr dWJhY2tAbGludXgubWljcm9zb2Z0LmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxd IFtQYXRjaCAxLzFdIEJhc2VUb29scy9TY3JpcHRzL1BhdGNoQ2hlY2s6DQo+ID4gRXJyb3IgaWYg Y29tbWl0IG1vZGlmaWVzIG11bHRpcGxlIHBhY2thZ2VzDQo+ID4NCj4gPiBPbiBUaHUsIDE1IEZl YiAyMDI0IGF0IDAwOjI3LCBNaWNoYWVsIEQgS2lubmV5DQo+ID4gPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPiB3cm90ZToNCj4gPiA+DQo+ID4gPiBIaSBBcmQsDQo+ID4gPg0KPiA+ID4gVXNp bmcgY29tbWl0IG1lc3NhZ2UgZG9lcyBwcm92aWRlIGdyYW51bGFyaXR5IGRvd24gdG8gYSBzaW5n bGUNCj4gPiBjb21taXQsDQo+ID4gPiB3aGljaCBtYXkgYmUgYmV0dGVyIHRoYW4gUFIgbGFiZWwg d2hpY2ggYXBwbGllcyBhY3Jvc3MgYWxsIGNvbW1pdHMNCj4gPiA+IGluIGEgc2VyaWVzLg0KPiA+ ID4NCj4gPiA+IEhvd2V2ZXIsIGEgZmxhZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2UgY2FuIGJlIHNl dCBieSB0aGUgYXV0aG9yIHdobw0KPiA+IG1heQ0KPiA+ID4gbm90IGJlIGEgbWFpbnRhaW5lciBh bmQgbWFpbnRhaW5lcnMgd291bGQgdGhlbiBuZWVkIHRvIHJldmlldw0KPiBjb21taXQNCj4gPiA+ IG1lc3NhZ2VzIGZvciBpbmNvcnJlY3QgdXNlIG9mIHRob3NlIGZsYWdzLg0KPiA+ID4NCj4gPiA+ IE9ubHkgbWFpbnRhaW5lcnMvYWRtaW5zIGNhbiBzZXQgbGFiZWxzLCBzbyBmcm9tIGEgcGVybWlz c2lvbg0KPiA+IG1hbmFnZW1lbnQNCj4gPiA+IHBlcnNwZWN0aXZlIHRoZSBQUiBsYWJlbCBoYXMg YW4gYWR2YW50YWdlLg0KPiA+ID4NCj4gPiA+IEFkZGl0aW9uYWwgY29tbWVudHMgYmVsb3cuICBU aGVyZSBhcmUgd2F5cyB0byBzdXBwb3J0IGJpc2VjdCBhbmQNCj4gbWVldA0KPiA+ID4gdGhlIHBy b3Bvc2VkIGNoZWNrcy4gVGhlIHN1Z2dlc3Rpb24gdXNlcyB0ZWNobmlxdWVzIHRoYXQgTGFzemxv DQo+ID4gaGVscGVkDQo+ID4gPiBtZSB3aXRoIGluIHRoZSBwYXN0IHdoZW4gd29ya2luZyBvbiBp c3N1ZXMgbGlrZSB0aGVyZS4gSSBoYXZlIHNlZW4NCj4gPiBtb3JlDQo+ID4gPiBjb21wbGV4IHNj ZW5hcmlvcyB0aGFuIHRoZSBleGFtcGxlcyBsaXN0ZWQgYmVsb3csIGFuZCBoYXZlIGJlZW4NCj4g YWJsZQ0KPiA+IHRvDQo+ID4gPiBmaWd1cmUgb3V0IGEgcGF0aCB0aHJvdWdoLg0KPiA+ID4NCj4g PiA+IEkgd291bGQgYWdyZWUgaXQgaXMgZXh0cmEgd29yayB0byB0aGluayBhYm91dCB0aGVzZSB3 aGVuIHdvcmtpbmcgb24NCj4gPiA+IHRoZSBjb2RlIGNoYW5nZXMgYW5kIGV4dHJhIHdvcmsgdG8g cmVmb3JtdWxhdGUgdGhlIHBhdGNoZXMgd2hlbg0KPiB0aGVzZQ0KPiA+ID4gY29uZGl0aW9ucyBh cmUgZW5jb3VudGVyZWQuDQo+ID4gPg0KPiA+ID4gSSBqdXN0IHdhbnQgdG8gYmUgY2xlYXIgb24g dGhlIG9iamVjdGlvbnMuICBJdCBpcyBub3QgYWJvdXQgaWYgdGhlDQo+ID4gcGF0Y2hlcw0KPiA+ ID4gY2FuIGJlIG9yZ2FuaXplZCB0byBmb2xsb3cgdGhpcyBwcm9wb3NhbC4gIFRoZSBvYmplY3Rp b24gaXMgYWJvdXQNCj4gdGhlDQo+ID4gPiBleHRyYSB3b3JrIHJlcXVpcmVkIHRvIHJlZm9ybXVs YXRlIHBhdGNoZXMuDQo+ID4gPg0KPiA+DQo+ID4gTm8uDQo+ID4NCj4gPiBUaGUgb2JqZWN0aW9u IGlzIGZ1bmRhbWVudGFsbHkgYWJvdXQgaGF2aW5nIHRvIGFwcGVhc2UgdGhlIENJIGV2ZW4gaWYN Cj4gPiBkb2luZyBzbyBpcyB1bnJlYXNvbmFibGUuIEkgZG9uJ3QgbWluZCBhIGJpdCBvZiBleHRy YSB3b3JrLiBJIGRvIG1pbmQNCj4gPiBoYXZpbmcgdG8gbWFrZSBjb2RlIGNoYW5nZXMgdGhhdCBt YWtlIHRoZSBjb2RlIHdvcnNlIGp1c3QgdG8gdGljayBhDQo+IENJDQo+ID4gYm94LiAoVGhpcyBp cyB3aHkgSSBkaXNhYmxlZCB1bmNydXN0aWZ5IGZvciB0aGUgQVJNIHBhY2thZ2VzOiBtYW55DQo+ ID4gaGVhZGVyIGZpbGVzIHdoaWNoIHdlcmUgcGVyZmVjdGx5IGxlZ2libGUgYmVmb3JlIHdlcmUg Y29udmVydGVkIGludG8NCj4gYQ0KPiA+IGp1bWJsZSBvZiBhbHBoYWJldCBzb3VwIGJlY2F1c2Ug dW5jcnVzdGlmeSByZW1vdmVkIGFsbCBvZiB0aGUNCj4gPiBpbmRlbnRhdGlvbikNCj4gPg0KPiA+ IEl0IGlzIGFib3V0IGhhdmluZyB0aGUgZGlzY3JldGlvbiB0byBkZXZpYXRlIGZyb20gdGhlIHJ1 bGVzIGluIHRoZQ0KPiBvZGQNCj4gPiBjYXNlIHdoZXJlIHRoZSBjdXJlIGlzIHdvcnNlIHRoYW4g dGhlIGRpc2Vhc2UuDQoNCgotPS09LT0tPS09LT0tPS09LT0tPS09LQpHcm91cHMuaW8gTGlua3M6 IFlvdSByZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuClZpZXcvUmVwbHkg T25saW5lICgjMTE1NTY2KTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2Uv MTE1NTY2Ck11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvMTA0MzQ1NTA5Lzc2 ODYxNzYKR3JvdXAgT3duZXI6IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvClVuc3Vic2NyaWJl OiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdW5zdWIgW3JlYmVjY2FAb3BlbmZ3Lmlv XQotPS09LT0tPS09LT0tPS09LT0tPS09LQoKDQo=