From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web10.3149.1685581797817920719 for ; Wed, 31 May 2023 18:09:57 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=dvgsw/8L; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: jiaxin.wu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685581797; x=1717117797; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=2u9dkTIm/tMpQTqOlX2uLwxjmbVRMlqKaBZirb8FKXo=; b=dvgsw/8L2q1srFH7USVIhDCX2DBumpwyqNIpHn51MLYmlX6aMb2M4npV FukiNe78yuMOU9ReB2ACx+ugvMG0LnxxEDmY1J4hShas3pc0Vgyx/3c7C LAXIKsbJNIh4D6QVFzct1TApTLm0hGietXLdNP/dNdSJ7dyvgbrsmIE8k osnWvwxQrwm/c/8KKxwVrf6X09Q26Do4fpGyus+EyoisXWfxMWOFkLP/x zHG2IEUey2ZyHGbIfg+lmLmB2BI+JOnJlK03srlZCwkJQ4aklNpLjQCxW hLmcTFeqQ+NvKWA68ITbFRIvnomABtbaNDqlhjn5p7WGj/slIjQR58/ni w==; X-IronPort-AV: E=McAfee;i="6600,9927,10727"; a="352917169" X-IronPort-AV: E=Sophos;i="6.00,207,1681196400"; d="scan'208";a="352917169" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2023 18:09:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10727"; a="953865463" X-IronPort-AV: E=Sophos;i="6.00,207,1681196400"; d="scan'208";a="953865463" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga006.fm.intel.com with ESMTP; 31 May 2023 18:09:55 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 31 May 2023 18:09:55 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) 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.23 via Frontend Transport; Wed, 31 May 2023 18:09:55 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 31 May 2023 18:09:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WSw7PlCE8SNDythoDI/tA/AoaiI/Z9otrWuDldifU6GMBug7f8/Vjgq0lSXvjtwj6MGd+F8iNrJ3e89I/wgs1Kam6eblVY7V2xTiDxi/n33zKMKy/8cLGjWIYqRjlKDR7PGw0FmeVjsTkMK2vvp1smar0yRLDwOXkICRj7PsMkT0/NnWEdmnFQ3RkMA28DaVP2NoSZPJ+4lLLue6Mvra+LijkpHSzu/CwZ54waSSLeaFwKmaWq3CXs11P3mZ5eBi5A+Gz22QUz/kt6QELr9LxeNpEbYMBlmKiQciyKhzmvvFWCuAUni+b/lOvLx5MaBdJrEQ/VFqOTmcI7hpj5prQg== 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=2u9dkTIm/tMpQTqOlX2uLwxjmbVRMlqKaBZirb8FKXo=; b=b4XOQjvLnLZL8z3naLtEyVXbyVuE4E3K1bMFwDJM0IkMI+CaB0PIYFHOER9kGNc4ces9NLeD0LcgN9111cnJdk5wyf2EBWyfc/miZ0DEiTcUkH/kOICaeRt4XJK7qQD9EkikmsHZskfD9R4Pd44K1c0BsV3bzbH7TbUtIs3Uaxb0pYPQwXBgYvAsLnRSEGKrz7UhMaUxr/GqNu3KMgqHXXKM3WjjGuMKVuESMHCGnrAIj5MDrwTcj5gq91ZlCgzdDIMKuzHmGcFD3Go2W6BVAcuaAB82cB7AL7URHzdRJEEb171X8zghaXkZ4t/eIoWNIvdv+y/nOLPHCxLWPuu7vA== 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 MN0PR11MB6158.namprd11.prod.outlook.com (2603:10b6:208:3ca::18) by DS0PR11MB7832.namprd11.prod.outlook.com (2603:10b6:8:f5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.23; Thu, 1 Jun 2023 01:09:47 +0000 Received: from MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::647e:54e0:2be7:9d02]) by MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::647e:54e0:2be7:9d02%2]) with mapi id 15.20.6433.022; Thu, 1 Jun 2023 01:09:47 +0000 From: "Wu, Jiaxin" To: "Ni, Ray" , "Yao, Jiewen" , "devel@edk2.groups.io" , "Li, Zhihao" , "Gao, Liming" , "kraxel@redhat.com" CC: "Wang, Jian J" Subject: Re: [edk2-devel] [PATCH v1 1/1] MdeModulePkg/VariableSmm.c: add Ap rendezvous check before SmmSetVariable. Thread-Topic: [edk2-devel] [PATCH v1 1/1] MdeModulePkg/VariableSmm.c: add Ap rendezvous check before SmmSetVariable. Thread-Index: AQHZiimglFrRgUaWtEmSOBhSYPO0x691Mv8QgAAC37CAAACTgIAAAGaA Date: Thu, 1 Jun 2023 01:09:47 +0000 Message-ID: References: <20230510105653.635-1-zhihao.li@intel.com> <05b701d9896c$5df57160$19e05420$@byosoft.com.cn> In-Reply-To: Accept-Language: zh-CN, 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: MN0PR11MB6158:EE_|DS0PR11MB7832:EE_ x-ms-office365-filtering-correlation-id: 02586c41-db37-4e70-c8ff-08db623ce473 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QlkWppUViqVUgNpP85UV6U+3bJcXEEgtjrOnUQC8VfmJ5k1K2pu3TBPhvh248T/0epGOD+Zd12FvwszUI2FZdkYIqmCbeMRbVAe7ocKrf9b917B7ZjM091QfwNbyxODdmFgKqNADD3jUYVtte2+DLsueyAPCZj9CaffcCEfD9xh04ECRl8Q3sGigoUHPeWQNhJAdHYzuFBk0CMAramGEwZHJ4ObbIAMj+jvH92s2+plFa6yhTG8l2k99z5gWwSSweH2re8bdIh5+UFLizgS7EBkdhkPLducEbAWo0w2m0UqhtNI+q26uMjP9H8M7yt4WxtaBUzQ/qadd7G84Mfoja7qU1jRlwTfWb4GSC0TAWEE8mrGAQedQDqYzkC+C9U76FQKx5Hb6IZbjL7/qzxotghlDmYhxDAk1FfCpBOxnm+t9+pHdTJX7MFKTHfyEbRJNkzSwtgt1F06csTLzMfWjZzr4fxDoBECzqRmK9X4/OYuqi/1Xmc5MRx/g9b0mrCTkNIj8+9tMHoDfnLQJTESgM0sfnkcNQQxczXs6RfwGx+UlkG57PNaosF6NfyCs4E7Qln1GhpY6yNB1m17k1cBSqqE0R2IWZ7bTbplrrMNfaTSW3vEmWk3g8ikh6BgafHYJDp1LkN0Aahgek/6Mj2xSY4HPvCaRTprOI61v1NmD7U4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN0PR11MB6158.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(376002)(346002)(39860400002)(136003)(366004)(451199021)(66899021)(71200400001)(478600001)(110136005)(8936002)(8676002)(5660300002)(52536014)(2906002)(30864003)(33656002)(86362001)(38070700005)(66446008)(122000001)(66946007)(66476007)(66556008)(64756008)(76116006)(4326008)(82960400001)(921005)(316002)(55016003)(41300700001)(38100700002)(26005)(107886003)(45080400002)(9686003)(83380400001)(186003)(53546011)(6506007)(966005)(7696005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MFdBbGJMRE9zcEx2WlB4aVcwa1lOYkZNUkN0WjVSWWo4VXM4ZDVvdkMrZGg1?= =?utf-8?B?S3BkQXFKWTRyMmFPWktKTm0wc2FyV0ZXaWl4Rm5vN3ZZOEVpZ3UyeWNPZ3FO?= =?utf-8?B?Z2JqZ1F6a0syYmdROXo0UE5rNG9RakFhcjFwSDlPVk5ydWFGZlAvTjZ1TG5X?= =?utf-8?B?L1VQNTZoc096eWowaXhXaDNhbTRpVkVXVlBDTDZueHVtaTdxQVZKUGc1UENr?= =?utf-8?B?ZUh4TlhIV29jZHE3eS85Zys2aTc4MXpmKzR5RTVmTnlndGRMcWhHK3B2aFBG?= =?utf-8?B?TGxjcDF6cUQ2RWh3S2FTUDRiV3JQY20ydjZ2bWtpaTZ5ZE80Yi9PUVk0dm5N?= =?utf-8?B?OC9CaDhLRTFuc0Zlc2pKYUFCYU9JMFlOWkk5NlZzek5FMU5kYzRsT29yMFJY?= =?utf-8?B?K0tkMk9FMklGQ2t1clhLL01DVEtVYmNWOUYyQ25nejg3cFFYMjVHMUEzOUlV?= =?utf-8?B?MHI4VGVBQ2lheitKblRNd2JQSXI4aXdUWit6TDRQanUwanFaUEN5NDB0QURa?= =?utf-8?B?MWFFK0ZPL3pDUVMxcHlrRUJzZ0pwUFZqT0RVRlVCWWt3L1RyVUZGd202RDZH?= =?utf-8?B?VmxEMTRJRkxZUGl6WlllNjh2NEpLM1RRRXFwV1o0U0FORmgrSXRPNU9aS0dt?= =?utf-8?B?dndYcXd0eDdSZ0locGo2U0Y4eHRibVBZRmN1WDM5cDExenZFb2p0NTNQRkEw?= =?utf-8?B?OFkvOTViaHp6ZDZiSEFOWW16bnplcFBIcnFaNHF6b245T0J2emlkL1J6Rjlv?= =?utf-8?B?UnpzcDMwSklDUnVHSnZpWDd0ZGdNd3NLT0lnMzdKRTVjTzA2WVFGMHpCVEhH?= =?utf-8?B?R1VYVE5NRWpxd1JDVUZibXJyc0VONmtWMDBXK0E1NllHRk1nZVRZRE9Ma0RU?= =?utf-8?B?SHZKZHZZZ2tGd01xUWRZbUh0NTEydUQzdkNmK1dKWjRwcTBCZ3hPT29TTkdw?= =?utf-8?B?TmlzeWdreHVzdkZsbHFqcExEUGluTDNOZ0xaRFB4emg3QmxLNCtmMzZlU0tI?= =?utf-8?B?OXU0V1EwWjA2WC83V1ZaTC9KZjRuZDVRNnE1NEJOWXRsRUNiSC9sVnBBbHJY?= =?utf-8?B?VzRNYktKb1hmQ1VmeitieG91cDZzdEJEay9vaDllNlNjNXdpVTVFZ00wRFV4?= =?utf-8?B?c3RCWDFSQ3QxdWRvZ0dkckJwcVM4SGtETHE0TCt3NldqMllzZlplSW50WDU0?= =?utf-8?B?OXIzVitSNlFUQ3BCMUxub2JUUkt0OWZscUtBQi9YSDlmZ3JBTzBXZDZjbkd3?= =?utf-8?B?ejhDWElDcHJPN0FBNGQwMlZ2NFo1L1ZuNnpHM1FVRmNmQkxlRWhMdkxXOU1t?= =?utf-8?B?RWVhRDUrcHFGZzdRUmFhbDY2Zi9pNmZ3N2RCS2J0aGp0bnU4L0tUOTlQSGdJ?= =?utf-8?B?QkFUN2dyUEV6U3lRUUt6N2JSOTl4QUJtNTd2MDZKYXh3UEs1REtBVXkxUUg3?= =?utf-8?B?TTFlVDNWYU4zSnpyZUNDRzdiajZVWE1nMFNZZUdpRHdtQnhyOTlDdkJFSE5L?= =?utf-8?B?UlgvajlMRUczK2lrWG1kZTVMOEFsQjE4Vno0NUpqWWhDWEpQYVBYaUtNbjdo?= =?utf-8?B?SDhhNW1pdDNxZUZza3NKYmVXbmZqbEJSNmpWa3o2ZnBmekhpUGMvVkFYc09B?= =?utf-8?B?REVBZ2UxYXVzTyt2SGFQekZIeEVMVHFPUFJYM3NrVnNoTU83ZDVsYlZZekE5?= =?utf-8?B?SEhrSDl3RWltb003REZhemlydHBXZUJiRE00QTdMbFNNOCtOdU5hVytJSWdQ?= =?utf-8?B?M2sxdG00dENtM0s2dDBUU3A0NXNlR0kzQWJ5Vk00cnc2RmU2UmlLclM0UXFl?= =?utf-8?B?ajBNL2tyRVFmS0xyQlVTRUtjaGs3VVpKRGIwd3hBdnR3NW5WNFg1TDJNWU1l?= =?utf-8?B?L0swbkxYdUxPV1p1K05ERnowN3lKdXAwdzFuMnBIdU9pK2dZWFZmZXRRZkJu?= =?utf-8?B?N05MVThaNDdESXp6bFMwY1ZmVzY5ZXlYZnkyenNNbHZObmQzVndhQ3ZnaDJl?= =?utf-8?B?eGIvdXdzOE93SEFxYzJuQ0RsWVNpMnRpYlZPK085SlFyM3ZFOHlleURCMW1y?= =?utf-8?B?a0dKYng0Sk5HWTlzbHVGQW1iekphMTdUaTU1Ry90TEpOemV3bXowb0FkbFlm?= =?utf-8?Q?1AEs=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN0PR11MB6158.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02586c41-db37-4e70-c8ff-08db623ce473 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jun 2023 01:09:47.3168 (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: 6rGR/nhG7O7zgsFUqsUwIuneGCGNk8AXLgDGHZ107YoJj+Rg8000Lc5IRXqbwsVye3c3LNera5eaoDNP2OV7ag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB7832 Return-Path: jiaxin.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIEppZXdlbiAmIFJheS4NCg0KWmhpaGFvLCBjb3VsZCB5b3UgdHJ5IHRoZSBzdWdnZXN0 aW9uIGZyb20gSmlld2VuPyBZb3UgY2FuIHN5bmMgd2l0aCBtZSBmb3IgZGV0YWlsLg0KDQpUaGFu a3MsDQpKaWF4aW4gDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTmks IFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEp1bmUgMSwgMjAyMyA5 OjA3IEFNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBkZXZlbEBl ZGsyLmdyb3Vwcy5pbzsgV3UsIEppYXhpbg0KPiA8amlheGluLnd1QGludGVsLmNvbT47IExpLCBa aGloYW8gPHpoaWhhby5saUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA8Z2FvbGltaW5nQGJ5 b3NvZnQuY29tLmNuPjsga3JheGVsQHJlZGhhdC5jb20NCj4gQ2M6IFdhbmcsIEppYW4gSiA8amlh bi5qLndhbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2 MSAxLzFdIE1kZU1vZHVsZVBrZy9WYXJpYWJsZVNtbS5jOg0KPiBhZGQgQXAgcmVuZGV6dm91cyBj aGVjayBiZWZvcmUgU21tU2V0VmFyaWFibGUuDQo+IA0KPiBKaWV3ZW4sDQo+IEdvb2Qgc3VnZ2Vz dGlvbvCfmIouDQo+IFRoaXMgYWxzbyByZXNvbHZlJ3MgSmlheGluJ3MgY29tbWVudHMgdGhhdCBj aGVjayBpZiB0aGUgdmFyaWFibGUgaXMgbm9uLXZvbGF0aWxlLg0KPiANCj4gVGhhbmtzLA0KPiBS YXkNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBZYW8sIEpp ZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gU2VudDogVGh1cnNkYXksIEp1bmUgMSwg MjAyMyA5OjA2IEFNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBXdSwgSmlheGluIDxq aWF4aW4ud3VAaW50ZWwuY29tPjsgTGksIFpoaWhhbw0KPiA+IDx6aGloYW8ubGlAaW50ZWwuY29t PjsgR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IE5pLCBSYXkNCj4gPiA8 cmF5Lm5pQGludGVsLmNvbT47IGtyYXhlbEByZWRoYXQuY29tDQo+ID4gQ2M6IFdhbmcsIEppYW4g SiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0g W1BBVENIIHYxIDEvMV0gTWRlTW9kdWxlUGtnL1ZhcmlhYmxlU21tLmM6DQo+ID4gYWRkIEFwIHJl bmRlenZvdXMgY2hlY2sgYmVmb3JlIFNtbVNldFZhcmlhYmxlLg0KPiA+DQo+ID4gRGlzYWJsaW5n IGZsYXNoIGlzIGEgc2lsaWNvbiBiZWhhdmlvci4NCj4gPg0KPiA+IENhbiB3ZSBkbyBTbW1XYWl0 Rm9yQWxsUHJvY2Vzc29yKCkgaW4gRlZCIGRyaXZlciwgb3IgU1BJIGRyaXZlciA/DQo+ID4NCj4g PiBUaGFuayB5b3UNCj4gPiBZYW8sIEppZXdlbg0KPiA+DQo+ID4NCj4gPg0KPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxk ZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIFd1LA0KPiA+IEppYXhpbg0KPiA+ID4g U2VudDogVGh1cnNkYXksIEp1bmUgMSwgMjAyMyA5OjAzIEFNDQo+ID4gPiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW87IExpLCBaaGloYW8gPHpoaWhhby5saUBpbnRlbC5jb20+OyBHYW8sIExpbWlu Zw0KPiA+ID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IE5pLCBSYXkgPHJheS5uaUBpbnRl bC5jb20+Ow0KPiA+IGtyYXhlbEByZWRoYXQuY29tDQo+ID4gPiBDYzogV2FuZywgSmlhbiBKIDxq aWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQ QVRDSCB2MSAxLzFdIE1kZU1vZHVsZVBrZy9WYXJpYWJsZVNtbS5jOg0KPiA+IGFkZA0KPiA+ID4g QXAgcmVuZGV6dm91cyBjaGVjayBiZWZvcmUgU21tU2V0VmFyaWFibGUuDQo+ID4gPg0KPiA+ID4g SGkgQWxsLA0KPiA+ID4NCj4gPiA+IEkgdGhpbmsgd2UgbmVlZCB0aGlzIHBhdGNoOg0KPiA+ID4N Cj4gPiA+IFRoZXJlIGlzIGEgcmVxdWlyZW1lbnQgdGhhdCBhbGwgQ1BVIHRocmVhZHMgbXVzdCBp biBTTU0gZm9yIE5vbi1Wb2xhdGlsZQ0KPiA+ID4gdmFyaWFibGUuIEJlY2F1c2UgdGhlIFNNTSB3 aWxsIGRpc2FibGVzIHRoZSBmbGFzaCBwcm90ZWN0aW9uLiBCZWZvcmUgdGhhdCwNCj4gd2UNCj4g PiA+IG11c3QgZ3VhcmFudGVlIGFsbCBDUFUgdGhyZWFkcyBhcmUgaW4gU01NIHRvIGF2b2lkIHRo ZSBub24tc21tIG1vZGUNCj4gPiBjcHVzDQo+ID4gPiBtb2RpZnkgdGhlIGZsYXNoLg0KPiA+ID4N Cj4gPiA+DQo+ID4gPiBaaGloYW8sDQo+ID4gPg0KPiA+ID4gSSB0aGluayB0aGlzIGlzIG9ubHkg bmVlZGVkIGZvciB0aGUgTm9uLVZvbGF0aWxlLCBJIHN1Z2dlc3QgYXMgYmVsb3cgY2hlY2s6DQo+ ID4gPg0KPiA+ID4gICAgICAgaWYgKChBdHRyaWJ1dGVzICYgRUZJX1ZBUklBQkxFX05PTl9WT0xB VElMRSkgIT0gMCkgew0KPiA+ID4gICAgICAgICBpZiAoRUZJX0VSUk9SIChTbW1XYWl0Rm9yQWxs UHJvY2Vzc29yIChUUlVFKSkpIHsNCj4gPiA+ICAgICAgICAgICBERUJVRyAoKERFQlVHX0VSUk9S LCAiIFNtbVZhcmlhYmxlU2V0VmFyaWFibGU6IEZhaWwgdG8gd2FpdCBmb3INCj4gYWxsDQo+ID4g QVANCj4gPiA+IGNoZWNrIGluIFNNTSFcbiIpKTsNCj4gPiA+ICAgICAgICAgICBTdGF0dXMgPSBF RklfQUJPUlRFRDsNCj4gPiA+ICAgICAgICAgICBnb3RvIEVYSVQ7DQo+ID4gPiAgICAgICAgIH0N Cj4gPiA+ICAgICAgIH0NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPiBKaWF4aW4NCj4gPiA+ DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IGRldmVs QGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIExpLA0K PiA+ID4gPiBaaGloYW8NCj4gPiA+ID4gU2VudDogRnJpZGF5LCBNYXkgMTksIDIwMjMgNDoxMSBQ TQ0KPiA+ID4gPiBUbzogR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IGRl dmVsQGVkazIuZ3JvdXBzLmlvOw0KPiBOaSwNCj4gPiA+ID4gUmF5IDxyYXkubmlAaW50ZWwuY29t Pjsga3JheGVsQHJlZGhhdC5jb20NCj4gPiA+ID4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndh bmdAaW50ZWwuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2 MSAxLzFdDQo+IE1kZU1vZHVsZVBrZy9WYXJpYWJsZVNtbS5jOg0KPiA+ID4gPiBhZGQgQXAgcmVu ZGV6dm91cyBjaGVjayBiZWZvcmUgU21tU2V0VmFyaWFibGUuDQo+ID4gPiA+DQo+ID4gPiA+IEhp IExpbWluZw0KPiA+ID4gPiBJbiBBcC1SZWxheGVkIG1vZGUsIEJzcCB3aWxsIG5vdCB3YWl0IGZv ciBhbGwgYXAgYXJyaXZlIGFuZCBjYWxsIHRoZSBTTUkNCj4gPiA+ID4gaGFuZGxlcnMuICBCdXQg c29tZSBTTUkgaGFuZGxlcnMgbmVlZCBhbGwgQXBzIGFycml2ZSBpbiBzbW0gbW9kZSBzdWNoDQo+ IGFzDQo+ID4gPiA+IFNtbVNldFZhcmlhYmxlLiBBcyB0aGUgZGVzaWduLCBTZXRWYXJpYWJsZSBu ZWVkIHRvIGxldCBhbGwgYXBzIGFycml2ZQ0KPiA+IGJlY2F1c2UNCj4gPiA+ID4gaXQgd2lsbCB3 cml0ZSBmbGFzaC4gSGFsZiB5ZWFyIGFnbywgSSBzZW5kIHRoZSBwYXRjaCB0aGF0IGNhbGxpbmcN Cj4gPiA+ID4gU21tQ3B1UmVuZGV6dm91cygpIGJlZm9yZSBTbW1TZXRWYXJpYWJsZS4gSXQgd2Fz IHJldmlld2VkIGJ1dA0KPiBoYXNuJ3QNCj4gPiA+ID4gbWVyZ2VkLiBTbW1DcHVSZW5kZXp2b3Vz KCkgd2lsbCByZXR1cm4gaW1tZWRpYXRlbHkgaW4gdHJhZGl0aW9uYWwtDQo+IEFQDQo+ID4gPiA+ IG1vZGUuDQo+ID4gPiA+IEknbSBub3Qgc3VyZSB3aGF0IHJldHVybnMgRUZJX0FDQ0VTU19ERU5J RUQuIENhbGxpbmcNCj4gPiBTbW1DcHVSZW5kZXp2b3VzKCkNCj4gPiA+ID4gYmVmb3JlIFNtbVNl dFZhcmlhYmxlIGlzIG91ciBvcmlnaW5hbCBkZXNpZ24gYnV0IGhhdmVuJ3QgaW1wbGVtZW50ZWQu DQo+ID4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZy b206IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+ID4gPiBTZW50OiBU aHVyc2RheSwgTWF5IDE4LCAyMDIzIDU6MzggUE0NCj4gPiA+ID4gVG86IExpLCBaaGloYW8gPHpo aWhhby5saUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTmksIFJheQ0KPiA+ID4g PiA8cmF5Lm5pQGludGVsLmNvbT47IGtyYXhlbEByZWRoYXQuY29tDQo+ID4gPiA+IENjOiBXYW5n LCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiA+ID4gU3ViamVjdDog5Zue5aSN OiBbUEFUQ0ggdjEgMS8xXSBNZGVNb2R1bGVQa2cvVmFyaWFibGVTbW0uYzogYWRkIEFwDQo+ID4g PiA+IHJlbmRlenZvdXMgY2hlY2sgYmVmb3JlIFNtbVNldFZhcmlhYmxlLg0KPiA+ID4gPg0KPiA+ ID4gPiBaaGloYW86DQo+ID4gPiA+ICAgSGF2ZSB5b3Ugcm9vdCBjYXVzZSB0aGlzIGlzc3VlIHRo YXQgU21tVmFyaWFibGVTZXRWYXJpYWJsZSBtYXkNCj4gcmV0dXJuDQo+ID4gPiA+IEVGSV9BQ0NF U1NfREVOSUVEPw0KPiA+ID4gPg0KPiA+ID4gPiAgIEkgYW0gbm90IHN1cmUgd2hldGhlciB0aGlz IGZpeCBpcyBwcm9wZXIuIEkgYWxzbyBhZGQgVWVmaUNwdVBrZw0KPiBtYWludGFpbmVycw0KPiA+ ID4gPiBSYXkgYW5kIEdlcmQgaW4gdGhlIG1haWwgbG9vcCBmb3IgdGhpcyBkaXNjdXNzaW9uLg0K PiA+ID4gPg0KPiA+ID4gPiBUaGFua3MNCj4gPiA+ID4gTGltaW5nDQo+ID4gPiA+ID4gLS0tLS3p gq7ku7bljp/ku7YtLS0tLQ0KPiA+ID4gPiA+IOWPkeS7tuS6ujogWmhpaGFvIExpIDx6aGloYW8u bGlAaW50ZWwuY29tPg0KPiA+ID4gPiA+IOWPkemAgeaXtumXtDogMjAyM+W5tDXmnIgxMOaXpSAx ODo1Nw0KPiA+ID4gPiA+IOaUtuS7tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4g PiDmioTpgIE6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMaW1pbmcgR2Fv DQo+ID4gPiA+ID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiA+ID4gPiDkuLvpopg6 IFtQQVRDSCB2MSAxLzFdIE1kZU1vZHVsZVBrZy9WYXJpYWJsZVNtbS5jOiBhZGQgQXANCj4gPiBy ZW5kZXp2b3VzDQo+ID4gPiA+IGNoZWNrDQo+ID4gPiA+ID4gYmVmb3JlIFNtbVNldFZhcmlhYmxl Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5v cmcvc2hvd19idWcuY2dpP2lkPTQ0MjkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEZvciBBcC1SZWxh eGVkIHN5bmMgbW9kZSwgU21tVmFyaWFibGVTZXRWYXJpYWJsZSgpIG5lZWQgdG8gbGV0IGFsbA0K PiBBcHMNCj4gPiA+ID4gPiBhcnJpdmUgdG8gc21tIGJlZm9yZSBpdCBzZXQgdGhlIHZhcmlhYmxl LiBJZiBub3QsIGl0IHdvdWxkIHJldHVybg0KPiA+ID4gPiA+IEVGSV9BQ0NFU1NfREVOSUVELg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5j b20+DQo+ID4gPiA+ID4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFpoaWhhbyBMaSA8emhpaGFvLmxp QGludGVsLmNvbT4NCj4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiAgTWRlTW9kdWxlUGtnL1VuaXZl cnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmMNCj4gPiA+ID4gPiB8IDEwICsr KysrKysrKy0NCj4gPiA+ID4gPiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50 aW1lRHhlL1ZhcmlhYmxlU21tLmluZg0KPiA+ID4gPiA+IHwgIDMgKystDQo+ID4gPiA+ID4NCj4g PiA+ID4NCj4gPg0KPiBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUv VmFyaWFibGVTdGFuZGFsb25lTW0uaW5mDQo+ID4gPiA+ID4gfCAgMyArKy0NCj4gPiA+ID4gPiAg MyBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJz YWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZVNtbS5jDQo+ID4gPiA+ID4gYi9NZGVNb2R1 bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW0uYw0KPiA+ID4g PiA+IGluZGV4IDUyNTNjMzI4ZGNkOS4uNDk0NDkwM2U2NGQ0IDEwMDY0NA0KPiA+ID4gPiA+IC0t LQ0KPiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJs ZVNtbS5jDQo+ID4gPiA+ID4gKysrDQo+IGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJs ZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmMNCj4gPiA+ID4gPiBAQCAtMTQsNyArMTQsNyBAQA0K PiA+ID4gPiA+ICAgIFZhcmlhYmxlU2VydmljZVNldFZhcmlhYmxlKCksIFZhcmlhYmxlU2Vydmlj ZVF1ZXJ5VmFyaWFibGVJbmZvKCksDQo+ID4gPiA+ID4gUmVjbGFpbUZvck9TKCksDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiAgICBTbW1WYXJpYWJsZUdldFN0YXRpc3RpY3MoKSBzaG91bGQgYWxzbyBk byB2YWxpZGF0aW9uIGJhc2VkIG9uIGl0cw0KPiA+ID4gPiA+IG93biBrbm93bGVkZ2UuDQo+ID4g PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLUNvcHlyaWdodCAoYykgMjAx MCAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gPiA+ID4gcmVzZXJ2 ZWQuPEJSPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gK0NvcHlyaWdodCAoYykgMjAxMCAtIDIwMjMs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gPiA+ID4gK3Jlc2VydmVkLjxCUj4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ICBDb3B5cmlnaHQgKGMpIDIwMTgsIExpbmFybywgTHRkLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IEBAIC0yOCw2ICsyOCw3IEBAIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+ICAjaW5jbHVkZSA8TGlicmFyeS9NbVNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9WYXJpYWJsZVBvbGljeUxpYi5oPg0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIuaD4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgI2luY2x1ZGUgPEd1 aWQvU21tVmFyaWFibGVDb21tb24uaD4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAjaW5jbHVkZSAi VmFyaWFibGUuaCINCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEBAIC04Nyw2ICs4OCwxMyBAQCBTbW1W YXJpYWJsZVNldFZhcmlhYmxlICggIHsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIEVGSV9TVEFU VVMgIFN0YXR1czsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAr ICAvLw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgLy8gTmVlZCB0byB3YWl0IGZvciBhbGwgQXBz IHRvIGFycml2ZSBpbiBSZWxheGVkLUFQIFN5bmMgTW9kZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g KyAgLy8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgIGlmIChFRklfRVJST1IgKFNtbVdhaXRGb3JB bGxQcm9jZXNzb3IgKFRSVUUpKSkgew0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgICBERUJVRyAo KERFQlVHX0VSUk9SLCAiU2V0VmFyaWFibGU6IGZhaWwgdG8gd2FpdCBmb3IgYWxsIEFQIGNoZWNr DQo+ID4gPiA+ID4gKyBpbg0KPiA+ID4gPiA+IFNNTSFcbiIpKTsNCj4gPiA+ID4gPg0KPiA+ID4g PiA+ICsgIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAg IC8vDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAvLyBEaXNhYmxlIHdyaXRlIHByb3RlY3Rpb24g d2hlbiB0aGUgY2FsbGluZyBTZXRWYXJpYWJsZSgpIHRocm91Z2gNCj4gPiA+ID4gPiBFRklfU01N X1ZBUklBQkxFX1BST1RPQ09MLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgLy8NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4gPiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJz YWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZVNtbS5pbmYNCj4gPiA+ID4gPiBiL01kZU1v ZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZVNtbS5pbmYNCj4g PiA+ID4gPiBpbmRleCA4YzU1MmI4N2UwODAuLjFjZjBkMDUxZTZjOSAxMDA2NDQNCj4gPiA+ID4g PiAtLS0NCj4gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFy aWFibGVTbW0uaW5mDQo+ID4gPiA+ID4gKysrDQo+IGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9W YXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmluZg0KPiA+ID4gPiA+IEBAIC0xOCw3ICsx OCw3IEBADQo+ID4gPiA+ID4gICMgIG1heSBub3QgYmUgbW9kaWZpZWQgd2l0aG91dCBhdXRob3Jp emF0aW9uLiBJZiBwbGF0Zm9ybSBmYWlscyB0bw0KPiA+ID4gPiBwcm90ZWN0DQo+ID4gPiA+ID4g dGhlc2UgcmVzb3VyY2VzLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICMgIHRoZSBhdXRoZW50aWNh dGlvbiBzZXJ2aWNlIHByb3ZpZGVkIGluIHRoaXMgZHJpdmVyIHdpbGwgYmUgYnJva2VuLA0KPiA+ ID4gPiA+IGFuZA0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiBiZWhhdmlvciBpcyB1bmRlZmluZWQu DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgIw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSMgQ29weXJp Z2h0IChjKSAyMDEwIC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ ID4gPiByZXNlcnZlZC48QlI+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArIyBDb3B5cmlnaHQgKGMp IDIwMTAgLSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gPiA+ICty ZXNlcnZlZC48QlI+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgIyBDb3B5cmlnaHQgKGMpIE1pY3Jv c29mdCBDb3Jwb3JhdGlvbi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAjIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgIw0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gQEAgLTg0LDYgKzg0LDcgQEANCj4gPiA+ID4gPiAgICBWYXJp YWJsZVBvbGljeUxpYg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgVmFyaWFibGVQb2xpY3lIZWxw ZXJMaWINCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIFNhZmVJbnRMaWINCj4gPiA+ID4gPg0KPiA+ ID4gPiA+ICsgIFNtbUNwdVJlbmRlenZvdXNMaWINCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiAgW1Byb3RvY29sc10NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIGdF ZmlTbW1GaXJtd2FyZVZvbHVtZUJsb2NrUHJvdG9jb2xHdWlkICAgICAgICAjIyBDT05TVU1FUw0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4N Cj4gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVT dGFuZGFsb25lTW0uaQ0KPiA+ID4gPiBuDQo+ID4gPiA+ID4gZg0KPiA+ID4gPiA+DQo+ID4gPiA+ DQo+ID4NCj4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFy aWFibGVTdGFuZGFsb25lTW0uDQo+ID4gPiA+IGluDQo+ID4gPiA+ID4gZg0KPiA+ID4gPiA+IGlu ZGV4IGYwOWJlZDQwY2Y1MS4uODkxODc0NTZjYTI1IDEwMDY0NA0KPiA+ID4gPiA+IC0tLQ0KPiA+ ID4gPiA+DQo+ID4gPiA+DQo+ID4NCj4gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxl L1J1bnRpbWVEeGUvVmFyaWFibGVTdGFuZGFsb25lTW0uaQ0KPiA+ID4gPiBuDQo+ID4gPiA+ID4g Zg0KPiA+ID4gPiA+ICsrKw0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4NCj4gYi9NZGVNb2R1bGVQ a2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTdGFuZGFsb25lTW0uDQo+ ID4gPiA+IGluDQo+ID4gPiA+ID4gZg0KPiA+ID4gPiA+IEBAIC0xOCw3ICsxOCw3IEBADQo+ID4g PiA+ID4gICMgIG1heSBub3QgYmUgbW9kaWZpZWQgd2l0aG91dCBhdXRob3JpemF0aW9uLiBJZiBw bGF0Zm9ybSBmYWlscyB0bw0KPiA+ID4gPiBwcm90ZWN0DQo+ID4gPiA+ID4gdGhlc2UgcmVzb3Vy Y2VzLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICMgIHRoZSBhdXRoZW50aWNhdGlvbiBzZXJ2aWNl IHByb3ZpZGVkIGluIHRoaXMgZHJpdmVyIHdpbGwgYmUgYnJva2VuLA0KPiA+ID4gPiA+IGFuZA0K PiA+ID4gPiB0aGUNCj4gPiA+ID4gPiBiZWhhdmlvciBpcyB1bmRlZmluZWQuDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiAgIw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSMgQ29weXJpZ2h0IChjKSAyMDEw IC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ID4gPiByZXNlcnZl ZC48QlI+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArIyBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDIz LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gPiA+ICtyZXNlcnZlZC48QlI+ DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgIyBDb3B5cmlnaHQgKGMpIDIwMTgsIExpbmFybywgTHRk LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAjIENvcHly aWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ID4gPg0K PiA+ID4gPiA+IEBAIC04MCw2ICs4MCw3IEBADQo+ID4gPiA+ID4gICAgVmFyaWFibGVGbGFzaElu Zm9MaWINCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIFZhcmlhYmxlUG9saWN5TGliDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiAgICBWYXJpYWJsZVBvbGljeUhlbHBlckxpYg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gKyAgU21tQ3B1UmVuZGV6dm91c0xpYg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+ICBbUHJvdG9jb2xzXQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgZ0Vm aVNtbUZpcm13YXJlVm9sdW1lQmxvY2tQcm90b2NvbEd1aWQgICAgICAgICMjIENPTlNVTUVTDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+IDIuMjYuMi53aW5kb3dzLjENCj4gPiA+ ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiANCj4gPiA+DQoNCg==