From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail05.groups.io (mail05.groups.io [45.79.224.7]) by spool.mail.gandi.net (Postfix) with ESMTPS id 7176A9417BC for ; Fri, 17 May 2024 15:09:55 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=7z1ZDyt0LnXKHTs9PcTdwAxW/nZs+DnB/ZaO1TjqrgM=; c=relaxed/simple; d=groups.io; h=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:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type; s=20240206; t=1715958593; v=1; b=L5vp11BqDiUctFgcqKdn3PJy/VwmHTv3Tsar9v7NsPNWo+71HXPM9fbLVX91WkEvJng+5Got Y9yVAgzImUy1Fz4Gp4+b4tVEuxDTblP9DA7uvPKCB2GJSi3UW3MPLpbdICFj6PMMEpySmUoODat XCRE5xsAaBHD10Er8ripFnL9FEV4mA8EPOLXi7ikd+Llt8KHgrrIgpTsuU1a0X5Cg1Sxgg2RdRv gj45QrNe/wTh7q0Os38DbZfWlLCGzM8b+6AdF7Sgtnsx7OUiCaekx8dBbQT11Y/Lq1cPiwfVEHe KgShtVoWopbf++4Ae1ZfiNOFqJRl1PbkwZ894fVxhO8MA== X-Received: by 127.0.0.2 with SMTP id 99P1YY7687511xTt30EcMSzc; Fri, 17 May 2024 08:09:53 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) by mx.groups.io with SMTP id smtpd.web11.43124.1715958592346184835 for ; Fri, 17 May 2024 08:09:52 -0700 X-CSE-ConnectionGUID: fvc03UVISC2d9oV+LOKhmQ== X-CSE-MsgGUID: Xdzk/bYXRWurmA98+PRv3A== X-IronPort-AV: E=McAfee;i="6600,9927,11075"; a="23277980" X-IronPort-AV: E=Sophos;i="6.08,168,1712646000"; d="scan'208,217";a="23277980" X-Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 May 2024 08:09:51 -0700 X-CSE-ConnectionGUID: gR2UH/nZR32rNGAebmfQmw== X-CSE-MsgGUID: kAOHvn9dSQ+jB/fLhQuvtw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,168,1712646000"; d="scan'208,217";a="31740364" X-Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmviesa007.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 17 May 2024 08:09:51 -0700 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.39; Fri, 17 May 2024 08:09:50 -0700 X-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.39 via Frontend Transport; Fri, 17 May 2024 08:09:50 -0700 X-Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.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.35; Fri, 17 May 2024 08:09:50 -0700 X-Received: from PH0PR11MB5046.namprd11.prod.outlook.com (2603:10b6:510:3b::20) by DS0PR11MB7311.namprd11.prod.outlook.com (2603:10b6:8:11e::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.30; Fri, 17 May 2024 15:09:47 +0000 X-Received: from PH0PR11MB5046.namprd11.prod.outlook.com ([fe80::ae9e:f9e:2825:244c]) by PH0PR11MB5046.namprd11.prod.outlook.com ([fe80::ae9e:f9e:2825:244c%4]) with mapi id 15.20.7587.028; Fri, 17 May 2024 15:09:46 +0000 From: "Wenxing Hou" To: gaoliming , "Kinney, Michael D" , "devel@edk2.groups.io" , 'Andrew Fish' , 'Leif Lindholm' CC: 'Ard Biesheuvel' , "sam.kaynor@arm.com" , "dougflick@microsoft.com" , "Mathews, John" , "Li, Yi1" , "Yao, Jiewen" Subject: Re: [edk2-devel] Soft Feature Freeze starts now for edk2-stable202405 Thread-Topic: [edk2-devel] Soft Feature Freeze starts now for edk2-stable202405 Thread-Index: AQKfbKTbXoEYRIOo6T31ZtZb+qHX+7AG/KCwgAZbFMCAAJJtgIAEEwTQ Date: Fri, 17 May 2024 15:09:46 +0000 Message-ID: References: <17CD1075E73EEFD7.30273@groups.io> <002501daa2ee$c4445660$4ccd0320$@byosoft.com.cn> <033201daa661$b5fbd670$21f38350$@byosoft.com.cn> In-Reply-To: <033201daa661$b5fbd670$21f38350$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5046:EE_|DS0PR11MB7311:EE_ x-ms-office365-filtering-correlation-id: 37ccceca-a97c-4bdd-069e-08dc768363e0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: =?utf-8?B?czYwMTZBRlBadk9mZm9pOTQ2N0ZFV1VCZ3FoaFpCNEtnNlk4VkIzUmV3ZnpP?= =?utf-8?B?ZU82c0hrWnovcUFHUUtsc2ZuZzIwVTFSUDJFUkdCU2VvVUFkV093SmM0VVJ1?= =?utf-8?B?Rk9CQzhFeks5TEhHY2VJU3VQWGlVeGNXWldFUU9aaVRKVHBJeGNoc0kwaHJI?= =?utf-8?B?QUpOZXh1aG0wWlhmUU5DNzhEWG1yMUJua1dQVTJsK1BtL3NxOC9uSEh5R0tK?= =?utf-8?B?UzdvaFNwcitDWDdPTVhOcmg5QVNXR3JVYXEycVNhKzMxOTBZL2FVYjlUaWM3?= =?utf-8?B?SVBjVXJmUU5QMmtJTWlsbWY4eFF0bkVURGwxaElibEJUMUZRWlM3b3E2RVhX?= =?utf-8?B?bmMxOHJzU2luMGJvcGxYRDVleDIzL29ZSzFaU29rV3VJY0podms0aGZ6c0Uv?= =?utf-8?B?Yld5MVZVL3h0cVZkSTlWeHcxMmd2T1V5Y2puY1IzWWZuUlI3aTFDbU9SSGxa?= =?utf-8?B?MWpFOHVPemR4TDRJNjNvb0o0NW8wRy84L3JYRW92aDBKaklIVWphR0ZhYXQ5?= =?utf-8?B?WkcvbFFQS2Z5NndNNlNKMW1pN1l4UWI1eFR2TlB6ek1YdE5RWGp3MGFobEsr?= =?utf-8?B?eTYwLzUwL2s1RElsOCtaUXdRVk8yNU92MkM3L0dFaDUxclEzVXJpUTNETzZ6?= =?utf-8?B?TUZ0eEc4Tm92NjBDekRjQnVCOVovTHFCd3BsdFNEUWIvM2s2U2d3dU9ObHkr?= =?utf-8?B?NFhoNTgwTjAwYVNHRTA4c1JXS2g4OE5rQmR6WU9yTUZkYTRjODRkZVVnTzd2?= =?utf-8?B?clBJUzRLUWhHSFpPVU1Fc3BWaVZpUThvL1c4VGprQTNjNGJnalZ1eHd4UXBa?= =?utf-8?B?SWhhMjZOSzFIeUdXTU0wSzE1OWZFTnU3RUpFMm1sT0paWmx2L0x3WHBUeXFS?= =?utf-8?B?MEVRZnlHa3oxRlk4azlZNGNXQS9lQ0VUL3ZYR2dBS0NtdEhaTzFpTWxYb2JZ?= =?utf-8?B?VGdIcEtlTFhORXFiYXVCY3c5a3E2c2Y2Wmt3amhzZVYydnFmVkZMTU4vYWht?= =?utf-8?B?SGlHMzhSVE1Zd2xhRkgvelNrVDBTd0xuc0s5SGo1YjV2UlltZDNUbk9lYlJU?= =?utf-8?B?eUM3YlM1UVVSeUJqM1Z1ZkEvcWtjM1djQU55aHI0R3hHOUpnc0t6RTZVK3NL?= =?utf-8?B?MmpzT0RQSHVneS9WWWp3STdXVXVBaTN3TFVRZVJzak92MWpmUDd5Y2I1VUtr?= =?utf-8?B?UVRFVGljWG5sNVErSUxJUWFUVFV4b2lsc3U3OTczeTVpRC8zTkc5UkUrbmdC?= =?utf-8?B?ZnMxbEN0c29zeTBES0wrWWRYZTNhMlpabzhZeEdlSmJvS1ZqN1Q4aTZhblhE?= =?utf-8?B?TjE0Z3l1ZjNHRnowRU5ONTFDU3RocjZ1VlpINmFPcnd2aC95L3VzZnQzQktS?= =?utf-8?B?WjM3WHJDZkNHZnRRUHIxVzhQbmtQYjZ5VGM2ZFY1QjhQVXo1STZMRmJsaG1v?= =?utf-8?B?ck5ZZEtKZVdNczlUdC9sL2VjODBOV3JMQk9KclhuSUtjTE82Q1RjQjF1K05v?= =?utf-8?B?Y25XNXFHbDZIb1Y3bkQ4RWQwc1E2M0UwblMwK1llRFU5K2RBVDNJTzJaeTRv?= =?utf-8?B?d0lDVmhKUW5vZmF1UURnUUpoRmNVdnA0bmdDMnlqMVdzZEp0eFVNdlNFLzB6?= =?utf-8?B?eFhtQmozbENzRU5PaFI3MWVnMjcxQWdjc2FJeWgzc2Jia2l2bzdDd2JhOXdi?= =?utf-8?B?azF0cWdiNjAwdVIrZ2NWcy9tSkxYWFA4VWc3MFFzR0VJeDdCRWZmeUh6SkhQ?= =?utf-8?Q?bg8Imufqm86MkNiWKg=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RDVFY3dUSTM2MTRTWE92aUg4OGk0YkVkUjlIRmFoMUxmRitJT0FXVzZvQlBH?= =?utf-8?B?TXpSZlAzcHJ1dFlWR1U3S3h3NFhlT1dQS3pKeWpSY0FBTmtoaHpOUTNBcG92?= =?utf-8?B?S0JjblRxY2JmbEozN2ZXUWZKeVRuU1JaZDRFNEtVQTgxMUkzK1NLNjZGVlY0?= =?utf-8?B?T0ZaOHdOd25lbDBXeEZ6bjQxVitPV0lraTlxV2RtNzVNSFUyUXBSbzRhay9l?= =?utf-8?B?NDRQWjNCL1ZkUU5yd0VqM3lReFZuTmJsYndtMll5d043OGZCS2F1R1p1K3px?= =?utf-8?B?MjFseXF0UTg2Yys4c0hYNVZ2NUtJN1NhYXEzMjBWOEU2WW9GMXlBSVBJaXJ1?= =?utf-8?B?MnNjM3puOHRaU0NwVmo1dENNZWl5MkkrSzZFYkJLZWtXeWhvdWtidU5jdTVu?= =?utf-8?B?QTZlaklXdDMzSUptdzNRQUpYRFNrVWNwb1RGaklVQndFWXJIVXRncXJjSTRt?= =?utf-8?B?Q0FtMnVoMUJLUFRIQkVlL01BOURNSkRlWFdqdUZET3pSUHo2UWkxRWZZUFNY?= =?utf-8?B?N3hDUWhIblFBVFk3MzNMbjdqRzNGWWVZUEl0QzA2K0ZUc0dIalpzWmxGY0ky?= =?utf-8?B?cnFQaWJoZVl6VHVVcEZKZnU0RnBSWG9ZL21nMEpsR0xXSzlXUFl5dWFkaDBU?= =?utf-8?B?VVJvZVh6cnV5bjFnNFA4M2JKZDd4WHBWbkFNbzVoNzh2bzhkV0R3V0E3T0tJ?= =?utf-8?B?Z1JBbFpTSkl4alIxVUVGekxJVzJCQ05LWEFaSU5iSXdQd0U4UndQMmhDRTJs?= =?utf-8?B?T3NoYjVnbmcwU1U2bmlTTnNuUDdBK1JhNnNtb2NXbFZxRm1PMmFLOWd4WG9Q?= =?utf-8?B?MzhDbjVTUWZKcTE5VXdKbUU4ZVpBWFF6VUJNRFJORCtoeHd5OXZJVFMzNXFa?= =?utf-8?B?bTYxajRvTUp5Sy9aV0RsSnBiUU9lZXdMUWQ3dnJaWldUZW4rL0xHZXFPVmlX?= =?utf-8?B?b29FeGw1cllJM3FoWjB6UGh2dGNYb0djZFREQW5QOHZqVzVBQ044Q0xNR2ZM?= =?utf-8?B?U2ZLQjBVMlE5ZHdyMWhsMWxYY0g4RzRQK2VDb2VHaEtEVm9XRWMzazU1T2hD?= =?utf-8?B?UjJ2RWZVN3Y1SjV6clN5ZEZPNldERlNJOHcrMnp2bHBzZTBtWEk3VDNSMFlQ?= =?utf-8?B?NE9pVVNmcW1nWmg0Q0tYRmFzckp6MW5QRlBpQzFXVjFFNjhweTduRTIvZDM2?= =?utf-8?B?SWhLNXZaUFRUK1drc2h3RlVzRUFDYXlMMW5zTEYvVnJVaEI3Q1dDRHoyU012?= =?utf-8?B?RlVYVU1aaERySWdzelVUSW5PR3BZTUp1anVLZnpwcUVYMVc3RFl2K0lJUm4x?= =?utf-8?B?cVF6UTYyTjZISTd0WlZzdzZqMGlhWE90dnRsTDNwNlpPbDdiRmI5SGsyY1dE?= =?utf-8?B?OTRJVUcrbFBsWlp2NFNFdGcrTmttbGZkUThXWWI2bDFpVnQ4cDdvUzFpd0g2?= =?utf-8?B?VWN1VU01dFZtejVzM2tKTWo3Qkh1aWtSa3Yzbzh2UVZWOGt1TFBUaGo4aUF6?= =?utf-8?B?VW0rdVkrK3pJQ2EvczBCdlFmc2hkckdNU0Q4QTFLTjdIMTVYS1dJQ29NVXQv?= =?utf-8?B?SVJ2d2xxKzNZVkZYMUoxMjlLV1hCeEwybTIvU2kxdU5CL0UvdkthOUdtcHV2?= =?utf-8?B?akhvWFJZK0VOSHdwek9ickowWlBBWUp0NlY4L1BUSUprT01QSFFNcG1ZTXJp?= =?utf-8?B?emVMcnFqcUNYMTRHaWJKQVFsa29CZlVNYzRuUmpweEJ3cUtPcEJSeFYvMlNS?= =?utf-8?B?SmpWbTR5K3F3RytNbCtVNmhETGxsWTV5T1VieTVpR2FJUEpyQUY3M3Exem92?= =?utf-8?B?cGE5cm12ek9BSDhIMVZXcmlSNkVHSlhBUnpHZWpQdkJOZU5aNFJQYi9LTHpr?= =?utf-8?B?aVA3amY2bkkzSW5Lalp5VjRGdU9GMDY4OWY5Z3FOcVkyNFB0VVZmV25Ec1lu?= =?utf-8?B?d0NjaHNodStIWDRKWVNFZk5zWjB6Wm5iNjhJTFNQVStadGlSMWlDamdYejhL?= =?utf-8?B?M1gyaWFQdVNETWVvTnVkOEYxL0Nvd0pZNWlmbUQxS1N3M2NKUC9OZkcvbHd2?= =?utf-8?B?aUM5OEZxdlhnQTZrN090TmRNSDlNS2l4MUR3RGx5VkxXWkU2STU3WG9GUnRQ?= =?utf-8?Q?XKsDnAmms5ud8QQ+IXQrEx9uA?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5046.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 37ccceca-a97c-4bdd-069e-08dc768363e0 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 May 2024 15:09:46.7639 (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: p+BL/huLXb361KGEwS1QZLRJOfrDquflA0AFi9dQ0sasV9c4puQnfXKzw5OnsJWndbFEV8iNDxMiV0jLg4S7Vw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB7311 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 Resent-Date: Fri, 17 May 2024 08:09:52 -0700 Resent-From: wenxing.hou@intel.com Reply-To: devel@edk2.groups.io,wenxing.hou@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: bfovYJl3OJuS54rQWiJQxqe6x7686176AA= Content-Language: en-US Content-Type: multipart/mixed; boundary="_004_PH0PR11MB5046C239250E0B5233DF2343F7EE2PH0PR11MB5046namp_" X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=L5vp11Bq; 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 45.79.224.7 as permitted sender) smtp.mailfrom=bounce@groups.io --_004_PH0PR11MB5046C239250E0B5233DF2343F7EE2PH0PR11MB5046namp_ Content-Type: multipart/alternative; boundary="_000_PH0PR11MB5046C239250E0B5233DF2343F7EE2PH0PR11MB5046namp_" --_000_PH0PR11MB5046C239250E0B5233DF2343F7EE2PH0PR11MB5046namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nIGFuZCBNaWtlLA0KDQpGb3IgdGhlIFBBVENIOiBBZGQgbW9yZSBjcnlwdCBBUElz IGJhc2VkIG9uIE1iZWR0bHMgKGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdl LzExODc3MiksDQpJIGhhdmUgZml4ZWQgdGhlIGNvZGUgYmFzZWQgb24gTWlrZeKAmXMgZmVlZGJh Y2sNCmFuZCBhZGRlZCB0aGUgcGxhdGZvcm0gaW50ZWdyYXRpb24gdGVzdCB0YWJsZSBpbiBjb21t aXQgbWVzc2FnZS4NCg0KQ291bGQgeW91IGFwcHJvdmUgdGhpcyBQQVRDSCB0byBjYXRjaCB0aGlz IHRhYmxlIHRhZz8NCg0KDQpUaGFua3MsDQpXZW54aW5nDQpGcm9tOiBnYW9saW1pbmcgPGdhb2xp bWluZ0BieW9zb2Z0LmNvbS5jbj4NClNlbnQ6IFdlZG5lc2RheSwgTWF5IDE1LCAyMDI0IDg6NDkg QU0NClRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBk ZXZlbEBlZGsyLmdyb3Vwcy5pbzsgJ0FuZHJldyBGaXNoJyA8YWZpc2hAYXBwbGUuY29tPjsgJ0xl aWYgTGluZGhvbG0nIDxxdWljX2xsaW5kaG9sQHF1aWNpbmMuY29tPg0KQ2M6ICdBcmQgQmllc2hl dXZlbCcgPGFyZGJAa2VybmVsLm9yZz47IHNhbS5rYXlub3JAYXJtLmNvbTsgZG91Z2ZsaWNrQG1p Y3Jvc29mdC5jb207IE1hdGhld3MsIEpvaG4gPGpvaG4ubWF0aGV3c0BpbnRlbC5jb20+OyBIb3Us IFdlbnhpbmcgPHdlbnhpbmcuaG91QGludGVsLmNvbT47IExpLCBZaTEgPHlpMS5saUBpbnRlbC5j b20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQpTdWJqZWN0OiDlm57lpI06 IFtlZGsyLWRldmVsXSBTb2Z0IEZlYXR1cmUgRnJlZXplIHN0YXJ0cyBub3cgZm9yIGVkazItc3Rh YmxlMjAyNDA1DQoNCk1pa2U6DQogIFRoYW5rcyBmb3IgeW91ciBjb21tZW50cy4gSSB1cGRhdGUg dGhlIHN0YXR1cyBiZWxvdy4NCg0KVGhhbmtzDQpMaW1pbmcNCuWPkeS7tuS6ujogS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1haWx0bzptaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbT4+DQrlj5HpgIHml7bpl7Q6IDIwMjTlubQ15pyIMTXml6UgMDozNQ0K5pS2 5Lu25Lq6OiBnYW9saW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbjxtYWlsdG86Z2FvbGlt aW5nQGJ5b3NvZnQuY29tLmNuPj47IGRldmVsQGVkazIuZ3JvdXBzLmlvPG1haWx0bzpkZXZlbEBl ZGsyLmdyb3Vwcy5pbz47ICdBbmRyZXcgRmlzaCcgPGFmaXNoQGFwcGxlLmNvbTxtYWlsdG86YWZp c2hAYXBwbGUuY29tPj47ICdMZWlmIExpbmRob2xtJyA8cXVpY19sbGluZGhvbEBxdWljaW5jLmNv bTxtYWlsdG86cXVpY19sbGluZGhvbEBxdWljaW5jLmNvbT4+DQrmioTpgIE6ICdBcmQgQmllc2hl dXZlbCcgPGFyZGJAa2VybmVsLm9yZzxtYWlsdG86YXJkYkBrZXJuZWwub3JnPj47IHNhbS5rYXlu b3JAYXJtLmNvbTxtYWlsdG86c2FtLmtheW5vckBhcm0uY29tPjsgZG91Z2ZsaWNrQG1pY3Jvc29m dC5jb208bWFpbHRvOmRvdWdmbGlja0BtaWNyb3NvZnQuY29tPjsgTWF0aGV3cywgSm9obiA8am9o bi5tYXRoZXdzQGludGVsLmNvbTxtYWlsdG86am9obi5tYXRoZXdzQGludGVsLmNvbT4+OyBIb3Us IFdlbnhpbmcgPHdlbnhpbmcuaG91QGludGVsLmNvbTxtYWlsdG86d2VueGluZy5ob3VAaW50ZWwu Y29tPj47IExpLCBZaTEgPHlpMS5saUBpbnRlbC5jb208bWFpbHRvOnlpMS5saUBpbnRlbC5jb20+ PjsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGlu dGVsLmNvbT4+OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208 bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj4NCuS4u+mimDogUkU6IFtlZGsyLWRl dmVsXSBTb2Z0IEZlYXR1cmUgRnJlZXplIHN0YXJ0cyBub3cgZm9yIGVkazItc3RhYmxlMjAyNDA1 DQoNCkhpIExpbWluZywNCg0KTXkgcmVzcG9uc2VzIGJlbG93IGluIFtNaWtlXS4NCg0KTWlrZQ0K DQoNCkZyb206IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPG1haWx0bzpnYW9s aW1pbmdAYnlvc29mdC5jb20uY24+Pg0KU2VudDogRnJpZGF5LCBNYXkgMTAsIDIwMjQgODoyOSBB TQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz47 IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbTxtYWlsdG86bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+PjsgJ0FuZHJldyBGaXNoJyA8YWZpc2hAYXBwbGUuY29t PG1haWx0bzphZmlzaEBhcHBsZS5jb20+PjsgJ0xlaWYgTGluZGhvbG0nIDxxdWljX2xsaW5kaG9s QHF1aWNpbmMuY29tPG1haWx0bzpxdWljX2xsaW5kaG9sQHF1aWNpbmMuY29tPj4NCkNjOiAnQXJk IEJpZXNoZXV2ZWwnIDxhcmRiQGtlcm5lbC5vcmc8bWFpbHRvOmFyZGJAa2VybmVsLm9yZz4+OyBz YW0ua2F5bm9yQGFybS5jb208bWFpbHRvOnNhbS5rYXlub3JAYXJtLmNvbT47IGRvdWdmbGlja0Bt aWNyb3NvZnQuY29tPG1haWx0bzpkb3VnZmxpY2tAbWljcm9zb2Z0LmNvbT47IE1hdGhld3MsIEpv aG4gPGpvaG4ubWF0aGV3c0BpbnRlbC5jb208bWFpbHRvOmpvaG4ubWF0aGV3c0BpbnRlbC5jb20+ PjsgSG91LCBXZW54aW5nIDx3ZW54aW5nLmhvdUBpbnRlbC5jb208bWFpbHRvOndlbnhpbmcuaG91 QGludGVsLmNvbT4+DQpTdWJqZWN0OiDlm57lpI06IFtlZGsyLWRldmVsXSBTb2Z0IEZlYXR1cmUg RnJlZXplIHN0YXJ0cyBub3cgZm9yIGVkazItc3RhYmxlMjAyNDA1DQoNClN0ZXdhcmRzOg0KICBO b3csIHRoZXJlIGFyZSBzZXZlcmFsIHBhdGNoZXMgdG8gY2F0Y2ggdGhpcyB0YWJsZSB0YWcuIENv dWxkIHlvdSBnaXZlIHRoZSBjb21tZW50cyBmb3IgdGhlbT8NCg0KDQoxLiAgICAgQWRkaW5nIHN1 cHBvcnQgZm9yIHZlcmJvc2UgVUVGSSBUYWJsZSBkdW1waW5nIHRvIERtZW0uYyAoaHR0cHM6Ly9l ZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvMTE4NTgyKQ0KDQpbTGltaW5nXSBUaGlzIHBh dGNoIHNldCBoYXMgYmVlbiByZXZpZXdlZCBiZWZvcmUgc29mdCBmZWF0dXJlIGZyZWV6ZS4gSXQg cGxhbnMgdG8gY2F0Y2ggdGhpcyBzdGFibGUgdGFnLg0KDQoNCg0KW01pa2VdIEkgc2VlIHRoaXMg UFI6IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9wdWxsLzU2NTMgdGhhdCBpcyBu b3QgcGFzc2luZyBDSSBhbmQgYXBwZWFycyBpdCB3aWxsIHJlcXVpcmUgYWRkaXRpb25hbCBjb2Rl IGNoYW5nZXMNCg0KDQoNCltNaWtlXSBSZWplY3QgZm9yIGVkazItc3RhYmxlMjAyNDA1DQoNCg0K DQoyLiAgTWRlUGtnL0Jhc2VMaWI6IEZpeCBBQVJDSDY0IGNvbXBpbGF0aW9uIGVycm9yIChodHRw czovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTg2OTApDQoNCltMaW1pbmddIFRo aXMgYnVnIGZpeCBpcyByZXZpZXdlZCBpbiBzb2Z0IGZlYXR1cmUgZnJlZXplIHBoYXNlLiBJdCBw bGFucyB0byBjYXRjaCB0aGlzIHN0YWJsZSB0YWcuDQoNCltNaWtlXSBBcHByb3ZlZCBmb3IgZWRr Mi1zdGFibGUyMDI0MDUNCg0KW0xpbWluZ10gSSBhZGQgcHVzaCBsYWJlbCBmb3IgaHR0cHM6Ly9n aXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3B1bGwvNTY0Mg0KDQoNCg0KMy4gIE1kZU1vZHVsZVBr ZzogUG90ZW50aWFsIFVJTlQzMiBvdmVyZmxvdyBpbiBTMyBSZXN1bWVDb3VudCAoaHR0cHM6Ly9l ZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvMTE4NzQ1KQ0KDQpbTGltaW5nXSBUaGlzIHNl Y3VyaXR5IGZpeCBpcyByZXZpZXdlZCBpbiBzb2Z0IGZlYXR1cmUgZnJlZXplIHBoYXNlLiBJdCBw bGFucyB0byBjYXRjaCB0aGlzIHN0YWJsZSB0YWcuDQoNCg0KW01pa2VdIEFwcHJvdmVkIGZvciBl ZGsyLXN0YWJsZTIwMjQwNQ0KW0xpbWluZ10gSSBhZGQgcHVzaCBsYWJlbCBmb3IgaHR0cHM6Ly9n aXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3B1bGwvNTY1OQ0KDQoNCg0KNC4gIE5ldHdvcmtQa2c6 IENWRS0yMDIzLTQ1MjM2IGFuZCBDVkUtMjAyMy00NTIzNyAoaHR0cHM6Ly9lZGsyLmdyb3Vwcy5p by9nL2RldmVsL21lc3NhZ2UvMTE4NzY4KQ0KDQpbTGltaW5nXSBUaGlzIHNlY3VyaXR5IGZpeCBp cyBzdGlsbCB1bmRlciBjb2RlIHJldmlldy4gSXQgcGxhbnMgdG8gY2F0Y2ggdGhpcyBzdGFibGUg dGFnLg0KDQoNCg0KW01pa2VdIElzIHRoZSBjb2RlIHJldmlldyBjb21wbGV0ZT8gIElzIHRoZXJl IGEgbGluayB0byB0aGUgUFI/DQoNCltMaW1pbmddIE5ldHdvcmtQa2cgcmV2aWV3ZXIgd2lsbCBy ZXZpZXcgdGhpcyBwYXRjaCBzZXQgdGhpcyB3ZWVrLg0KDQoNCg0KVGhhbmtzDQoNCg0KDQo1LiAg QWRkIG1vcmUgY3J5cHQgQVBJcyBiYXNlZCBvbiBNYmVkdGxzIChodHRwczovL2VkazIuZ3JvdXBz LmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTg3NzIpDQoNCltMaW1pbmddIFRoaXMgcGF0Y2ggc2V0IHBh c3NlcyBjb2RlIHJldmlldyBpbiBzb2Z0IGZlYXR1cmUgZnJlZXplIHBoYXNlLiBJdCBwbGFucyB0 byBjYXRjaCB0aGlzIHN0YWJsZSB0YWcuDQoNCltNaWtlXSBUaGlzIHBhdGNoIHNlcmllcyB1c2Vz IOKAmC4u4oCZIGluIElORiB0byBhY2Nlc3Mgc291cmNlIGZpbGVzIGluIGFub3RoZXIgY29tcG9u ZW50LiAgVGhpcyBpcyBub3QgbGVnYWwuICBJIGFtIHN1cnByaXNlZCB0aGlzIHdhcyBub3QgY2F1 Z2h0IGluIGNvZGUgcmV2aWV3Lg0KDQpERUZJTkUgT1BFTlNTTF9QQVRIICAgICAgICAgICAgPSAu Li9PcGVuc3NsTGliL29wZW5zc2wNCkRFRklORSBCQVNFX0NSWVBUX1BBVEggICAgICAgICA9IC4u L0Jhc2VDcnlwdExpYg0KDQpbTWlrZV0gSSBzZWUgYSByZWZlcmVuY2UgdG8gc29tZSDigJxwbGF0 Zm9ybSBpbnRlZ3JhdGlvbuKAnSB0ZXN0aW5nLiAgR2l2ZW4gdGhhdCB0aGlzIHBhdGNoIHNlcmll cyBpbXBsZW1lbnRzIGEgbnVtYmVyIG9mDQpjcnlwdG8gc2VydmljZSBBUElzIGFuZCBpcyBhIGxh cmdlIG51bWJlciBvZiBuZXcgbGluZXMgb2YgY29kZSwgaXQgd291bGQgYmUgZ29vZCB0byBrbm93 IGlmIGFsbCBvZiB0aGUgbmV3bHkgYWRkZWQgQVBJcw0Kd2VyZSB0ZXN0ZWQgaW4gYSBwbGF0Zm9y bSBpbnRlZ3JhdGlvbi4gQSB0YWJsZSBvZiB0aGUgYWRkZWQgQVBJcyBhbmQgdGhlIHBsYXRmb3Jt IGludGVncmF0aW9uIHRlc3Qgc3RhdHVzIHdvdWxkIGJlIGdvb2QgdG8NCmtub3cgaWYgdGhlcmUg d2FzIGFueSBmdW5jdGlvbmFsIHRlc3Rpbmcgb2YgZWFjaCBBUEkuICBJZiB0aGVyZSBhcmUgQVBJ cyB0aGF0IGFyZSBub3QgY292ZXJlZCBieSBhbnkgcGxhdGZvcm0gaW50ZWdyYXRpb24NCnRlc3Rp bmcsIHRoZW4gSSB3b3VsZCBiZSBjb25jZXJuZWQgd2l0aCBzdWNoIGEgbGFyZ2UgY2hhbmdlIHdp dGggbGltaXRlZCB0ZXN0aW5nLg0KDQpUaGFua3MNCkxpbWluZw0K5Y+R5Lu25Lq6OiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbzxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IDxkZXZlbEBlZGsyLmdy b3Vwcy5pbzxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+PiDku6PooaggZ2FvbGltaW5nIHZp YSBncm91cHMuaW8NCuWPkemAgeaXtumXtDogMjAyNOW5tDXmnIg35pelIDk6MjUNCuaUtuS7tuS6 ujogZGV2ZWxAZWRrMi5ncm91cHMuaW88bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPjsgYW5u b3VuY2VAZWRrMi5ncm91cHMuaW88bWFpbHRvOmFubm91bmNlQGVkazIuZ3JvdXBzLmlvPg0K5oqE 6YCBOiAnTWljaGFlbCBEIEtpbm5leScgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1haWx0 bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+OyAnQW5kcmV3IEZpc2gnIDxhZmlzaEBhcHBs ZS5jb208bWFpbHRvOmFmaXNoQGFwcGxlLmNvbT4+OyAnTGVpZiBMaW5kaG9sbScgPHF1aWNfbGxp bmRob2xAcXVpY2luYy5jb208bWFpbHRvOnF1aWNfbGxpbmRob2xAcXVpY2luYy5jb20+Pg0K5Li7 6aKYOiBbZWRrMi1kZXZlbF0gU29mdCBGZWF0dXJlIEZyZWV6ZSBzdGFydHMgbm93IGZvciBlZGsy LXN0YWJsZTIwMjQwNQ0KDQpIaSwgYWxsDQoNCiAgV2UgZW50ZXIgaW50byBTb2Z0IEZlYXR1cmUg RnJlZXplIHBoYXNlIG5vdy4gSW4gdGhpcyBwaGFzZSwNCnRoZSBmZWF0dXJlIHVuZGVyIHJldmll dyB3aWxsIG5vdCBiZSBhbGxvd2VkIHRvIGJlIHB1c2hlZC4gVGhlIGZlYXR1cmUNCnBhc3NlZCBy ZXZpZXcgY2FuIHN0aWxsIGJlIG1lcmdlZC4NCg0KICBUaGUgcGF0Y2ggcmV2aWV3IGNhbiBjb250 aW51ZSB3aXRob3V0IGJyZWFrIGluIGVkazIgY29tbXVuaXR5LiBJZiB0aGUNCnBhdGNoIGlzIHNl bnQgYmVmb3JlIFNvZnQgRmVhdHVyZSBGcmVlemUsIGFuZCBwbGFucyB0byBjYXRjaCB0aGlzIHN0 YWJsZSB0YWcsIHRoZQ0KcGF0Y2ggY29udHJpYnV0b3IgbmVlZCByZXBseSB0byBoaXMgcGF0Y2gg YW5kIG5vdGlmeSBlZGsyIGNvbW11bml0eS4gSWYgdGhlDQpwYXRjaCBpcyBzZW50IGFmdGVyIFNv ZnQgRmVhdHVyZSBGcmVlemUsIGFuZCBwbGFucyB0byBjYXRjaCB0aGlzIHN0YWJsZSB0YWcsDQpw bGVhc2UgYWRkIGVkazItc3RhYmxlMjAyNDA1IGtleSB3b3JkcyBpbiB0aGUgcGF0Y2ggdGl0bGUg YW5kIEJaLCBzbyB0aGUNCmNvbW11bml0eSBrbm93IHRoaXMgcGF0Y2ggdGFyZ2V0IGFuZCBnaXZl IHRoZSBmZWVkYmFjay4NCg0KICBUbyBhdm9pZCB0aGUgdW5uZWNlc3NhcnkgY2hhbmdlcyB0byBi ZSBtZXJnZWQgaW4gZWRrMiBzdGFibGUgdGFnIHJlbGVhc2UsDQphbGwgZWRrMiBtYWludGFpbmVy cycgd3JpdGUgYWNjZXNzIHdpbGwgYmUgdGVtcG9yYXJpbHkgZGlzYWJsZWQgdW50aWwgc3RhYmxl DQp0YWcgaXMgcmVsZWFzZWQgb24gMDUtMjQuIFRoYXQgbWVhbnMgZWRrMiBtYWludGFpbmVyIGNh bid0IHNldCBwdXNoIGxhYmVsIGluDQpwdWxsIHJlcXVlc3QgYWZ0ZXIgc29mdCBmZWF0dXJlIGZy ZWV6ZSBzdGFydHMuDQoNCiAgSWYgdGhlIGNoYW5nZSB3YW50cyB0byBjYXRjaCB0aGlzIHN0YWJs ZSB0YWcgMjAyNDA1LCBwbGVhc2UgZm9sbG93IGFib3ZlDQpydWxlcywgdGhlbiBzZW5kIHRoZSBt ZXJnZSByZXF1ZXN0IHRvIGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbjxtYWlsdG86Z2FvbGltaW5n QGJ5b3NvZnQuY29tLmNuPiBvcg0KbWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFpbHRvOm1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPi4NCg0KICBXZSB3aWxsIGhlbHAgbWVyZ2UgdGhlIGNv ZGUgY2hhbmdlIGluIHNvZnQgZmVhdHVyZSBmcmVlemUgYW5kIGhhcmQgZmVhdHVyZQ0KZnJlZXpl IHBoYXNlLg0KDQpCZWxvdyBpcyBlZGsyLXN0YWJsZTIwMjQwNSB0YWcgcGxhbm5pbmcgUHJvcG9z ZWQgU2NoZWR1bGUNCkRhdGUgKDAwOjAwOjAwIFVUQy04KSBEZXNjcmlwdGlvbg0KDQoyMDI0LTAy LTIzIEJlZ2lubmluZyBvZiBkZXZlbG9wbWVudA0KMjAyNC0wNS0wNiBTb2Z0IEZlYXR1cmUgRnJl ZXplDQoyMDI0LTA1LTEwIEhhcmQgRmVhdHVyZSBGcmVlemUNCjIwMjQtMDUtMjQgUmVsZWFzZQ0K DQpUaGFua3MNCkxpbWluZw0KDQoNCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5p byBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmll dy9SZXBseSBPbmxpbmUgKCMxMTkwNTApOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwv bWVzc2FnZS8xMTkwNTAKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDYx NTU1NTYvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5z dWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBv cGVuZncuaW9dCi09LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg== --_000_PH0PR11MB5046C239250E0B5233DF2343F7EE2PH0PR11MB5046namp_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7 YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0 I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl DQoJe2ZvbnQtZmFtaWx5OlNpbVN1bjsNCglwYW5vc2UtMToyIDEgNiAwIDMgMSAxIDEgMSAxO30N CkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0 IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkRlbmdYaWFuOw0K CXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAxIDE7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWls eTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UN Cgl7Zm9udC1mYW1pbHk6IlxARGVuZ1hpYW4iOw0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAx IDE7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDb25zb2xhczsNCglwYW5vc2UtMToyIDEx IDYgOSAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJcQFNpbVN1biI7 DQoJcGFub3NlLTE6MiAxIDYgMCAzIDEgMSAxIDEgMTt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFt aWx5OiJNaWNyb3NvZnQgWWFIZWkiOw0KCXBhbm9zZS0xOjIgMTEgNSAzIDIgMiA0IDIgMiA0O30N CkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IlxATWljcm9zb2Z0IFlhSGVpIjt9DQovKiBTdHls ZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1h bA0KCXttYXJnaW46MGluOw0KCXRleHQtYWxpZ246anVzdGlmeTsNCgl0ZXh0LWp1c3RpZnk6aW50 ZXItaWRlb2dyYXBoOw0KCWZvbnQtc2l6ZToxMC41cHQ7DQoJZm9udC1mYW1pbHk6RGVuZ1hpYW47 fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJ Y29sb3I6IzA1NjNDMTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAuTXNvTGlzdFBh cmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1zb0xpc3RQYXJhZ3JhcGgNCgl7bXNv LXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1hcmdpbjowaW47DQoJdGV4dC1hbGlnbjpqdXN0aWZ5Ow0K CXRleHQtanVzdGlmeTppbnRlci1pZGVvZ3JhcGg7DQoJdGV4dC1pbmRlbnQ6MjEuMHB0Ow0KCWZv bnQtc2l6ZToxMC41cHQ7DQoJZm9udC1mYW1pbHk6RGVuZ1hpYW47fQ0Kc3Bhbi5FbWFpbFN0eWxl MjMNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtY29tcG9zZTsNCglmb250LWZhbWlseToiQ2Fs aWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJ e21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7DQoJbXNvLWxp Z2F0dXJlczpub25lO30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjguNWluIDExLjBpbjsN CgltYXJnaW46MS4waW4gMS4yNWluIDEuMGluIDEuMjVpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJ e3BhZ2U6V29yZFNlY3Rpb24xO30NCi8qIExpc3QgRGVmaW5pdGlvbnMgKi8NCkBsaXN0IGwwDQoJ e21zby1saXN0LWlkOjQ5NjU4MjU1NTsNCgltc28tbGlzdC10eXBlOmh5YnJpZDsNCgltc28tbGlz dC10ZW1wbGF0ZS1pZHM6Njg3ODgyMjEyIC0xIC0xIC0xIC0xIC0xIC0xIC0xIC0xIC0xO30NCkBs aXN0IGwwOmxldmVsMQ0KCXttc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVt YmVyLXBvc2l0aW9uOmxlZnQ7DQoJbWFyZ2luLWxlZnQ6LjI1aW47DQoJdGV4dC1pbmRlbnQ6LS4y NWluO30NCkBsaXN0IGwwOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDphbHBoYS1s b3dlcjsNCgltc28tbGV2ZWwtdGV4dDoiJTJcKSI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7 DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCW1hcmdpbi1sZWZ0OjQ0LjBwdDsN Cgl0ZXh0LWluZGVudDotMjIuMHB0O30NCkBsaXN0IGwwOmxldmVsMw0KCXttc28tbGV2ZWwtbnVt YmVyLWZvcm1hdDpyb21hbi1sb3dlcjsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28t bGV2ZWwtbnVtYmVyLXBvc2l0aW9uOnJpZ2h0Ow0KCW1hcmdpbi1sZWZ0OjY2LjBwdDsNCgl0ZXh0 LWluZGVudDotMjIuMHB0O30NCkBsaXN0IGwwOmxldmVsNA0KCXttc28tbGV2ZWwtdGFiLXN0b3A6 bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJbWFyZ2luLWxlZnQ6ODgu MHB0Ow0KCXRleHQtaW5kZW50Oi0yMi4wcHQ7fQ0KQGxpc3QgbDA6bGV2ZWw1DQoJe21zby1sZXZl bC1udW1iZXItZm9ybWF0OmFscGhhLWxvd2VyOw0KCW1zby1sZXZlbC10ZXh0OiIlNVwpIjsNCglt c28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7 DQoJbWFyZ2luLWxlZnQ6MTEwLjBwdDsNCgl0ZXh0LWluZGVudDotMjIuMHB0O30NCkBsaXN0IGww OmxldmVsNg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpyb21hbi1sb3dlcjsNCgltc28tbGV2 ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOnJpZ2h0Ow0KCW1h cmdpbi1sZWZ0OjEzMi4wcHQ7DQoJdGV4dC1pbmRlbnQ6LTIyLjBwdDt9DQpAbGlzdCBsMDpsZXZl bDcNCgl7bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlv bjpsZWZ0Ow0KCW1hcmdpbi1sZWZ0OjE1NC4wcHQ7DQoJdGV4dC1pbmRlbnQ6LTIyLjBwdDt9DQpA bGlzdCBsMDpsZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YWxwaGEtbG93ZXI7DQoJ bXNvLWxldmVsLXRleHQ6IiU4XCkiOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1s ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgltYXJnaW4tbGVmdDoxNzYuMHB0Ow0KCXRleHQt aW5kZW50Oi0yMi4wcHQ7fQ0KQGxpc3QgbDA6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9y bWF0OnJvbWFuLWxvd2VyOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1u dW1iZXItcG9zaXRpb246cmlnaHQ7DQoJbWFyZ2luLWxlZnQ6Mi43NWluOw0KCXRleHQtaW5kZW50 Oi0yMi4wcHQ7fQ0KQGxpc3QgbDENCgl7bXNvLWxpc3QtaWQ6MTY4Njk3ODM4MTsNCgltc28tbGlz dC10eXBlOmh5YnJpZDsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6Njg3ODgyMjEyIDU1NDk3NDg1 NCA2NzY5ODcxMyA2NzY5ODcxNSA2NzY5ODcwMyA2NzY5ODcxMyA2NzY5ODcxNSA2NzY5ODcwMyA2 NzY5ODcxMyA2NzY5ODcxNTt9DQpAbGlzdCBsMTpsZXZlbDENCgl7bXNvLWxldmVsLXRhYi1zdG9w Om5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCW1hcmdpbi1sZWZ0Oi4y NWluOw0KCXRleHQtaW5kZW50Oi0uMjVpbjt9DQpAbGlzdCBsMTpsZXZlbDINCgl7bXNvLWxldmVs LW51bWJlci1mb3JtYXQ6YWxwaGEtbG93ZXI7DQoJbXNvLWxldmVsLXRleHQ6IiUyXCkiOw0KCW1z by1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsN CgltYXJnaW4tbGVmdDo0NC4wcHQ7DQoJdGV4dC1pbmRlbnQ6LTIyLjBwdDt9DQpAbGlzdCBsMTps ZXZlbDMNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6cm9tYW4tbG93ZXI7DQoJbXNvLWxldmVs LXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpyaWdodDsNCgltYXJn aW4tbGVmdDo2Ni4wcHQ7DQoJdGV4dC1pbmRlbnQ6LTIyLjBwdDt9DQpAbGlzdCBsMTpsZXZlbDQN Cgl7bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps ZWZ0Ow0KCW1hcmdpbi1sZWZ0Ojg4LjBwdDsNCgl0ZXh0LWluZGVudDotMjIuMHB0O30NCkBsaXN0 IGwxOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDphbHBoYS1sb3dlcjsNCgltc28t bGV2ZWwtdGV4dDoiJTVcKSI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVs LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCW1hcmdpbi1sZWZ0OjExMC4wcHQ7DQoJdGV4dC1pbmRl bnQ6LTIyLjBwdDt9DQpAbGlzdCBsMTpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6 cm9tYW4tbG93ZXI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJl ci1wb3NpdGlvbjpyaWdodDsNCgltYXJnaW4tbGVmdDoxMzIuMHB0Ow0KCXRleHQtaW5kZW50Oi0y Mi4wcHQ7fQ0KQGxpc3QgbDE6bGV2ZWw3DQoJe21zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1z by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgltYXJnaW4tbGVmdDoxNTQuMHB0Ow0KCXRl eHQtaW5kZW50Oi0yMi4wcHQ7fQ0KQGxpc3QgbDE6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXIt Zm9ybWF0OmFscGhhLWxvd2VyOw0KCW1zby1sZXZlbC10ZXh0OiIlOFwpIjsNCgltc28tbGV2ZWwt dGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJbWFyZ2lu LWxlZnQ6MTc2LjBwdDsNCgl0ZXh0LWluZGVudDotMjIuMHB0O30NCkBsaXN0IGwxOmxldmVsOQ0K CXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpyb21hbi1sb3dlcjsNCgltc28tbGV2ZWwtdGFiLXN0 b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOnJpZ2h0Ow0KCW1hcmdpbi1sZWZ0 OjIuNzVpbjsNCgl0ZXh0LWluZGVudDotMjIuMHB0O30NCm9sDQoJe21hcmdpbi1ib3R0b206MGlu O30NCnVsDQoJe21hcmdpbi1ib3R0b206MGluO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNv IDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAv Pg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxh eW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwv bzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVO LVVTIiBsaW5rPSIjMDU2M0MxIiB2bGluaz0iIzk1NEY3MiIgc3R5bGU9IndvcmQtd3JhcDpicmVh ay13b3JkO3RleHQtanVzdGlmeS10cmltOnB1bmN0dWF0aW9uIj4NCjxkaXYgY2xhc3M9IldvcmRT ZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkhpIExpbWlu ZyBhbmQgTWlrZSw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xpbmUtaGVpZ2h0 OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2si PkZvciB0aGUgUEFUQ0g6IEFkZCBtb3JlIGNyeXB0IEFQSXMgYmFzZWQgb24gTWJlZHRscyAoPC9z cGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjpibGFjayI+PGEgaHJl Zj0iaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvMTE4NzcyIj5odHRwczov L2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTg3NzI8L2E+PC9zcGFuPjxzcGFuIHN0 eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu cy1zZXJpZjtjb2xvcjpibGFjayI+KTwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29u c29sYXM7Y29sb3I6YmxhY2siPiw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkkgaGF2ZSBmaXhlZCB0aGUgY29kZSBiYXNlZCBvbiBN aWtl4oCZcyBmZWVkYmFjazxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli cmkmcXVvdDssc2Fucy1zZXJpZiI+YW5kIGFkZGVkIHRoZSBwbGF0Zm9ybSBpbnRlZ3JhdGlvbiB0 ZXN0IHRhYmxlIGluIGNvbW1pdCBtZXNzYWdlLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5 OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7 Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5Db3VsZCB5b3UgYXBw cm92ZSB0aGlzIFBBVENIIHRvIGNhdGNoIHRoaXMgdGFibGUgdGFnPzxvOnA+PC9vOnA+PC9zcGFu PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PG86cD4mbmJzcDs8 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48 bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh bnMtc2VyaWYiPlRoYW5rcyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp YnJpJnF1b3Q7LHNhbnMtc2VyaWYiPldlbnhpbmc8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2 Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0 O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249 ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6 MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+RnJvbTo8 L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90 O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+IGdhb2xpbWluZyAmbHQ7Z2FvbGltaW5nQGJ5b3Nv ZnQuY29tLmNuJmd0Ow0KPGJyPg0KPGI+U2VudDo8L2I+IFdlZG5lc2RheSwgTWF5IDE1LCAyMDI0 IDg6NDkgQU08YnI+DQo8Yj5Ubzo8L2I+IEtpbm5leSwgTWljaGFlbCBEICZsdDttaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbSZndDs7IGRldmVsQGVkazIuZ3JvdXBzLmlvOyAnQW5kcmV3IEZpc2gn ICZsdDthZmlzaEBhcHBsZS5jb20mZ3Q7OyAnTGVpZiBMaW5kaG9sbScgJmx0O3F1aWNfbGxpbmRo b2xAcXVpY2luYy5jb20mZ3Q7PGJyPg0KPGI+Q2M6PC9iPiAnQXJkIEJpZXNoZXV2ZWwnICZsdDth cmRiQGtlcm5lbC5vcmcmZ3Q7OyBzYW0ua2F5bm9yQGFybS5jb207IGRvdWdmbGlja0BtaWNyb3Nv ZnQuY29tOyBNYXRoZXdzLCBKb2huICZsdDtqb2huLm1hdGhld3NAaW50ZWwuY29tJmd0OzsgSG91 LCBXZW54aW5nICZsdDt3ZW54aW5nLmhvdUBpbnRlbC5jb20mZ3Q7OyBMaSwgWWkxICZsdDt5aTEu bGlAaW50ZWwuY29tJmd0OzsgWWFvLCBKaWV3ZW4gJmx0O2ppZXdlbi55YW9AaW50ZWwuY29tJmd0 Ozxicj4NCjxiPlN1YmplY3Q6PC9iPiA8L3NwYW4+PHNwYW4gbGFuZz0iWkgtQ04iIHN0eWxlPSJm b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O01pY3Jvc29mdCBZYUhlaSZxdW90Oyxz YW5zLXNlcmlmIj7lm57lpI08L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj46IFtlZGsyLWRldmVsXSBT b2Z0IEZlYXR1cmUgRnJlZXplIHN0YXJ0cyBub3cgZm9yIGVkazItc3RhYmxlMjAyNDA1PG86cD48 L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFs aWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiPk1pa2U6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj4mbmJzcDsgVGhhbmtzIGZvciB5b3VyIGNvbW1lbnRzLiBJIHVwZGF0ZSB0aGUgc3Rh dHVzIGJlbG93LiA8bzpwPg0KPC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4m bmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGFua3M8bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkxpbWluZzxvOnA+PC9vOnA+PC9wPg0KPGRpdiBzdHls ZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAw aW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9w OnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVmdCI+PGI+PHNw YW4gbGFuZz0iWkgtQ04iIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij7lj5Hku7bkuro8L3NwYW4+ PC9iPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij46PC9zcGFuPjwvYj48c3BhbiBz dHlsZT0iZm9udC1zaXplOjExLjBwdCI+IEtpbm5leSwgTWljaGFlbCBEICZsdDs8YSBocmVmPSJt YWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20iPm1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPC9hPiZndDsNCjxicj4NCjxiPjxzcGFuIGxhbmc9IlpILUNOIj7lj5HpgIHml7bpl7Q8L3Nw YW4+OjwvYj4gMjAyNDxzcGFuIGxhbmc9IlpILUNOIj7lubQ8L3NwYW4+NTxzcGFuIGxhbmc9IlpI LUNOIj7mnIg8L3NwYW4+MTU8c3BhbiBsYW5nPSJaSC1DTiI+5pelPC9zcGFuPiAwOjM1PGJyPg0K PGI+PHNwYW4gbGFuZz0iWkgtQ04iPuaUtuS7tuS6ujwvc3Bhbj46PC9iPiBnYW9saW1pbmcgJmx0 OzxhIGhyZWY9Im1haWx0bzpnYW9saW1pbmdAYnlvc29mdC5jb20uY24iPmdhb2xpbWluZ0BieW9z b2Z0LmNvbS5jbjwvYT4mZ3Q7Ow0KPGEgaHJlZj0ibWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlv Ij5kZXZlbEBlZGsyLmdyb3Vwcy5pbzwvYT47ICdBbmRyZXcgRmlzaCcgJmx0OzxhIGhyZWY9Im1h aWx0bzphZmlzaEBhcHBsZS5jb20iPmFmaXNoQGFwcGxlLmNvbTwvYT4mZ3Q7OyAnTGVpZiBMaW5k aG9sbScgJmx0OzxhIGhyZWY9Im1haWx0bzpxdWljX2xsaW5kaG9sQHF1aWNpbmMuY29tIj5xdWlj X2xsaW5kaG9sQHF1aWNpbmMuY29tPC9hPiZndDs8YnI+DQo8Yj48c3BhbiBsYW5nPSJaSC1DTiI+ 5oqE6YCBPC9zcGFuPjo8L2I+ICdBcmQgQmllc2hldXZlbCcgJmx0OzxhIGhyZWY9Im1haWx0bzph cmRiQGtlcm5lbC5vcmciPmFyZGJAa2VybmVsLm9yZzwvYT4mZ3Q7Ow0KPGEgaHJlZj0ibWFpbHRv OnNhbS5rYXlub3JAYXJtLmNvbSI+c2FtLmtheW5vckBhcm0uY29tPC9hPjsgPGEgaHJlZj0ibWFp bHRvOmRvdWdmbGlja0BtaWNyb3NvZnQuY29tIj4NCmRvdWdmbGlja0BtaWNyb3NvZnQuY29tPC9h PjsgTWF0aGV3cywgSm9obiAmbHQ7PGEgaHJlZj0ibWFpbHRvOmpvaG4ubWF0aGV3c0BpbnRlbC5j b20iPmpvaG4ubWF0aGV3c0BpbnRlbC5jb208L2E+Jmd0OzsgSG91LCBXZW54aW5nICZsdDs8YSBo cmVmPSJtYWlsdG86d2VueGluZy5ob3VAaW50ZWwuY29tIj53ZW54aW5nLmhvdUBpbnRlbC5jb208 L2E+Jmd0OzsgTGksIFlpMSAmbHQ7PGEgaHJlZj0ibWFpbHRvOnlpMS5saUBpbnRlbC5jb20iPnlp MS5saUBpbnRlbC5jb208L2E+Jmd0OzsNCiBZYW8sIEppZXdlbiAmbHQ7PGEgaHJlZj0ibWFpbHRv OmppZXdlbi55YW9AaW50ZWwuY29tIj5qaWV3ZW4ueWFvQGludGVsLmNvbTwvYT4mZ3Q7OyBLaW5u ZXksIE1pY2hhZWwgRCAmbHQ7PGEgaHJlZj0ibWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tIj5taWNoYWVsLmQua2lubmV5QGludGVsLmNvbTwvYT4mZ3Q7PGJyPg0KPGI+PHNwYW4gbGFu Zz0iWkgtQ04iPuS4u+mimDwvc3Bhbj46PC9iPiBSRTogW2VkazItZGV2ZWxdIFNvZnQgRmVhdHVy ZSBGcmVlemUgc3RhcnRzIG5vdyBmb3IgZWRrMi1zdGFibGUyMDI0MDU8bzpwPjwvbzpwPjwvc3Bh bj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQi IHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1 b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5I aSBMaW1pbmcsPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90 OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWZh cmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPk15IHJlc3BvbnNlcyBiZWxvdyBpbiBbTWlrZV0uPG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO21z by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6 RU4tVVMiPk1pa2U8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LHNhbnMtc2VyaWY7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9v OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28t ZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRp diBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5n OjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3Jk ZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVmdCI+ PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy aSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6 ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4gZ2Fv bGltaW5nICZsdDs8YSBocmVmPSJtYWlsdG86Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuIj5nYW9s aW1pbmdAYnlvc29mdC5jb20uY248L2E+Jmd0Ow0KPGJyPg0KPGI+U2VudDo8L2I+IEZyaWRheSwg TWF5IDEwLCAyMDI0IDg6MjkgQU08YnI+DQo8Yj5Ubzo8L2I+IDxhIGhyZWY9Im1haWx0bzpkZXZl bEBlZGsyLmdyb3Vwcy5pbyI+ZGV2ZWxAZWRrMi5ncm91cHMuaW88L2E+OyBLaW5uZXksIE1pY2hh ZWwgRCAmbHQ7PGEgaHJlZj0ibWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tIj5taWNo YWVsLmQua2lubmV5QGludGVsLmNvbTwvYT4mZ3Q7OyAnQW5kcmV3IEZpc2gnICZsdDs8YSBocmVm PSJtYWlsdG86YWZpc2hAYXBwbGUuY29tIj5hZmlzaEBhcHBsZS5jb208L2E+Jmd0OzsgJ0xlaWYg TGluZGhvbG0nDQogJmx0OzxhIGhyZWY9Im1haWx0bzpxdWljX2xsaW5kaG9sQHF1aWNpbmMuY29t Ij5xdWljX2xsaW5kaG9sQHF1aWNpbmMuY29tPC9hPiZndDs8YnI+DQo8Yj5DYzo8L2I+ICdBcmQg Qmllc2hldXZlbCcgJmx0OzxhIGhyZWY9Im1haWx0bzphcmRiQGtlcm5lbC5vcmciPmFyZGJAa2Vy bmVsLm9yZzwvYT4mZ3Q7Ow0KPGEgaHJlZj0ibWFpbHRvOnNhbS5rYXlub3JAYXJtLmNvbSI+c2Ft LmtheW5vckBhcm0uY29tPC9hPjsgPGEgaHJlZj0ibWFpbHRvOmRvdWdmbGlja0BtaWNyb3NvZnQu Y29tIj4NCmRvdWdmbGlja0BtaWNyb3NvZnQuY29tPC9hPjsgTWF0aGV3cywgSm9obiAmbHQ7PGEg aHJlZj0ibWFpbHRvOmpvaG4ubWF0aGV3c0BpbnRlbC5jb20iPmpvaG4ubWF0aGV3c0BpbnRlbC5j b208L2E+Jmd0OzsgSG91LCBXZW54aW5nICZsdDs8YSBocmVmPSJtYWlsdG86d2VueGluZy5ob3VA aW50ZWwuY29tIj53ZW54aW5nLmhvdUBpbnRlbC5jb208L2E+Jmd0Ozxicj4NCjxiPlN1YmplY3Q6 PC9iPiA8L3NwYW4+PHNwYW4gbGFuZz0iWkgtQ04iIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv bnQtZmFtaWx5OlNpbVN1biI+5Zue5aSNPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+OiBbZWRrMi1k ZXZlbF0gU29mdCBGZWF0dXJlIEZyZWV6ZSBzdGFydHMgbm93IGZvciBlZGsyLXN0YWJsZTIwMjQw NTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIiBhbGlnbj0ibGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVmdCI+PG86cD4mbmJzcDs8L286 cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5TdGV3YXJkczo8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyBOb3csIHRoZXJlIGFyZSBzZXZlcmFsIHBhdGNoZXMg dG8gY2F0Y2ggdGhpcyB0YWJsZSB0YWcuIENvdWxkIHlvdSBnaXZlIHRoZSBjb21tZW50cyBmb3Ig dGhlbT88bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIGFsaWduPSJsZWZ0IiBzdHlsZT0i bWFyZ2luLWxlZnQ6LjI1aW47dGV4dC1hbGlnbjpsZWZ0O3RleHQtaW5kZW50Oi0uMjVpbjtsaW5l LWhlaWdodDoxNC4yNXB0O21zby1saXN0OmwwIGxldmVsMSBsZm8zO2JhY2tncm91bmQ6d2hpdGUi Pg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+MS48 c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9 ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj5BZGRpbmcgc3VwcG9ydCBmb3IgdmVy Ym9zZSBVRUZJIFRhYmxlIGR1bXBpbmcgdG8gRG1lbS5jICg8L3NwYW4+PHNwYW4gc3R5bGU9ImNv bG9yOmJsYWNrIj48YSBocmVmPSJodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2Fn ZS8xMTg1ODIiPmh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzExODU4Mjwv YT4pPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIGFs aWduPSJsZWZ0IiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjI1aW47dGV4dC1hbGlnbjpsZWZ0O3RleHQt aW5kZW50OjBpbjtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4g c3R5bGU9ImNvbG9yOmJsYWNrIj5bTGltaW5nXSBUaGlzIHBhdGNoIHNldCBoYXMgYmVlbiByZXZp ZXdlZCBiZWZvcmUgc29mdCBmZWF0dXJlIGZyZWV6ZS4gSXQgcGxhbnMgdG8gY2F0Y2ggdGhpcyBz dGFibGUgdGFnLg0KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJh Z3JhcGgiIGFsaWduPSJsZWZ0IiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjI1aW47dGV4dC1hbGlnbjps ZWZ0O3RleHQtaW5kZW50OjBpbjtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUi Pg0KPG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgYWxp Z249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7dGV4dC1pbmRlbnQ6MGluO2xpbmUtaGVp Z2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6Ymxh Y2siPltNaWtlXSBJIHNlZSB0aGlzIFBSOg0KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Rp YW5vY29yZS9lZGsyL3B1bGwvNTY1MyI+aHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsy L3B1bGwvNTY1MzwvYT4gdGhhdCBpcyBub3QgcGFzc2luZyBDSSBhbmQgYXBwZWFycyBpdCB3aWxs IHJlcXVpcmUgYWRkaXRpb25hbCBjb2RlIGNoYW5nZXM8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgYWxpZ249 ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7dGV4dC1pbmRlbnQ6MGluO2xpbmUtaGVpZ2h0 OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5ic3A7 PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBhbGlnbj0ibGVm dCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDt0ZXh0LWluZGVudDowaW47bGluZS1oZWlnaHQ6MTQu MjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+W01p a2VdIFJlamVjdCBmb3IgZWRrMi1zdGFibGUyMDI0MDU8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgYWxpZ249 ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7dGV4dC1pbmRlbnQ6MGluO2xpbmUtaGVpZ2h0 OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5ic3A7 PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBhbGlnbj0ibGVm dCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi4yNWluO3RleHQtYWxpZ246bGVmdDt0ZXh0LWluZGVudDot LjI1aW47bGluZS1oZWlnaHQ6MTQuMjVwdDttc28tbGlzdDpsMCBsZXZlbDEgbGZvMztiYWNrZ3Jv dW5kOndoaXRlIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LWZhbWls eTpDb25zb2xhcztjb2xvcjpibGFjayI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+Mi48 c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNw Ow0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LWZhbWls eTpDb25zb2xhcztjb2xvcjpibGFjayI+TWRlUGtnL0Jhc2VMaWI6IEZpeCBBQVJDSDY0IGNvbXBp bGF0aW9uIGVycm9yICg8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj48YSBocmVmPSJo dHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTg2OTAiPmh0dHBzOi8vZWRr Mi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzExODY5MDwvYT4pPC9zcGFuPjxzcGFuIHN0eWxl PSJmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjpibGFjayI+PG86cD48L286cD48L3NwYW4+PC9w Pg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIGFsaWduPSJsZWZ0IiBzdHlsZT0ibWFyZ2lu LWxlZnQ6LjI1aW47dGV4dC1hbGlnbjpsZWZ0O3RleHQtaW5kZW50OjBpbjtsaW5lLWhlaWdodDox NC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj5bTGlt aW5nXSBUaGlzIGJ1ZyBmaXggaXMgcmV2aWV3ZWQgaW4gc29mdCBmZWF0dXJlIGZyZWV6ZSBwaGFz ZS4gSXQgcGxhbnMgdG8gY2F0Y2ggdGhpcyBzdGFibGUgdGFnLg0KPC9zcGFuPjxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWdu OmxlZnQ7bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxl PSJmb250LWZhbWlseTpDb25zb2xhcyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7bGlu ZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LXNp emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv cjpibGFjayI+W01pa2VdIEFwcHJvdmVkIGZvciBlZGsyLXN0YWJsZTIwMjQwNTwvc3Bhbj48c3Bh biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7 LHNhbnMtc2VyaWYiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFy YWdyYXBoIiBhbGlnbj0ibGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDt0ZXh0LWluZGVudDow aW47bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJm b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp Zjtjb2xvcjpibGFjayI+W0xpbWluZ10gSSBhZGQgcHVzaCBsYWJlbCBmb3INCjxhIGhyZWY9Imh0 dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9wdWxsLzU2NDIiPmh0dHBzOi8vZ2l0aHVi LmNvbS90aWFub2NvcmUvZWRrMi9wdWxsLzU2NDI8L2E+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250 LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+ PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIGFsaWdu PSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O3RleHQtaW5kZW50OjBpbjtsaW5lLWhlaWdo dDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBj bGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgYWxpZ249ImxlZnQiIHN0eWxlPSJtYXJnaW4tbGVmdDou MjVpbjt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1pbmRlbnQ6LS4yNWluO2xpbmUtaGVpZ2h0OjE0LjI1 cHQ7bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzM7YmFja2dyb3VuZDp3aGl0ZSI+DQo8IVtpZiAhc3Vw cG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2si PjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPjMuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQg JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFu PjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2si Pk1kZU1vZHVsZVBrZzogUG90ZW50aWFsIFVJTlQzMiBvdmVyZmxvdyBpbiBTMyBSZXN1bWVDb3Vu dCAoPGEgaHJlZj0iaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvMTE4NzQ1 Ij5odHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTg3NDU8L2E+KTxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBhbGlnbj0ibGVm dCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi4yNWluO3RleHQtYWxpZ246bGVmdDt0ZXh0LWluZGVudDow aW47bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJj b2xvcjpibGFjayI+W0xpbWluZ10gVGhpcyBzZWN1cml0eSBmaXggaXMgcmV2aWV3ZWQgaW4gc29m dCBmZWF0dXJlIGZyZWV6ZSBwaGFzZS4gSXQgcGxhbnMgdG8gY2F0Y2ggdGhpcyBzdGFibGUgdGFn Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBhbGln bj0ibGVmdCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi4yNWluO3RleHQtYWxpZ246bGVmdDt0ZXh0LWlu ZGVudDowaW47bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxvOnA+Jm5i c3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0 ZXh0LWFsaWduOmxlZnQ7bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxz cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+W01pa2VdIEFwcHJvdmVkIGZvciBlZGsyLXN0YWJs ZTIwMjQwNTwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xp bmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iY29sb3I6 YmxhY2siPltMaW1pbmddIEkgYWRkIHB1c2ggbGFiZWwgZm9yIDwvc3Bhbj48c3BhbiBzdHlsZT0i Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy aWY7Y29sb3I6YmxhY2siPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRr Mi9wdWxsLzU2NTkiPmh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9wdWxsLzU2NTk8 L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIGFs aWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O3RleHQtaW5kZW50OjBpbjtsaW5lLWhl aWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48bzpwPiZu YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgYWxpZ249 ImxlZnQiIHN0eWxlPSJtYXJnaW4tbGVmdDouMjVpbjt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1pbmRl bnQ6LS4yNWluO2xpbmUtaGVpZ2h0OjE0LjI1cHQ7bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzM7YmFj a2dyb3VuZDp3aGl0ZSI+DQo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1m YW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2siPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUi PjQuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4m bmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1m YW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2siPk5ldHdvcmtQa2c6IENWRS0yMDIzLTQ1MjM2IGFu ZCBDVkUtMjAyMy00NTIzNyAoPGEgaHJlZj0iaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVs L21lc3NhZ2UvMTE4NzY4Ij5odHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8x MTg3Njg8L2E+KTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdy YXBoIiBhbGlnbj0ibGVmdCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi4yNWluO3RleHQtYWxpZ246bGVm dDt0ZXh0LWluZGVudDowaW47bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4N CjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+W0xpbWluZ10gVGhpcyBzZWN1cml0eSBmaXggaXMg c3RpbGwgdW5kZXIgY29kZSByZXZpZXcuIEl0IHBsYW5zIHRvIGNhdGNoIHRoaXMgc3RhYmxlIHRh Zy48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgYWxp Z249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7dGV4dC1pbmRlbnQ6MGluO2xpbmUtaGVp Z2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5i c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBhbGlnbj0i bGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDt0ZXh0LWluZGVudDowaW47bGluZS1oZWlnaHQ6 MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+ W01pa2VdIElzIHRoZSBjb2RlIHJldmlldyBjb21wbGV0ZT8mbmJzcDsgSXMgdGhlcmUgYSBsaW5r IHRvIHRoZSBQUj88L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFs aWduOmxlZnQ7dGV4dC1pbmRlbnQ6MGluO2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3 aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPltMaW1pbmddIE5ldHdvcmtQa2cg cmV2aWV3ZXIgd2lsbCByZXZpZXcgdGhpcyBwYXRjaCBzZXQgdGhpcyB3ZWVrLg0KPC9zcGFuPjxz cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssc2Fucy1zZXJpZiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQ YXJhZ3JhcGgiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O3RleHQtaW5kZW50 OjBpbjtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPG86cD4mbmJzcDs8 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgYWxpZ249ImxlZnQiIHN0eWxl PSJ0ZXh0LWFsaWduOmxlZnQ7dGV4dC1pbmRlbnQ6MGluO2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFj a2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPlRoYW5rczwvc3Bhbj48 bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBhbGlnbj0ibGVmdCIg c3R5bGU9InRleHQtYWxpZ246bGVmdDt0ZXh0LWluZGVudDowaW47bGluZS1oZWlnaHQ6MTQuMjVw dDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b0xpc3RQYXJhZ3JhcGgiIGFsaWduPSJsZWZ0IiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjI1aW47dGV4 dC1hbGlnbjpsZWZ0O3RleHQtaW5kZW50Oi0uMjVpbjtsaW5lLWhlaWdodDoxNC4yNXB0O21zby1s aXN0OmwwIGxldmVsMSBsZm8zO2JhY2tncm91bmQ6d2hpdGUiPg0KPCFbaWYgIXN1cHBvcnRMaXN0 c10+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj48c3BhbiBz dHlsZT0ibXNvLWxpc3Q6SWdub3JlIj41LjxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1Rp bWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRp Zl0+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj5BZGQgbW9y ZSBjcnlwdCBBUElzIGJhc2VkIG9uIE1iZWR0bHMgKDxhIGhyZWY9Imh0dHBzOi8vZWRrMi5ncm91 cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzExODc3MiI+aHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2Rl dmVsL21lc3NhZ2UvMTE4NzcyPC9hPik8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i TXNvTGlzdFBhcmFncmFwaCIgYWxpZ249ImxlZnQiIHN0eWxlPSJtYXJnaW4tbGVmdDouMjVpbjt0 ZXh0LWFsaWduOmxlZnQ7dGV4dC1pbmRlbnQ6MGluO2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dy b3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPltMaW1pbmddIFRoaXMgcGF0 Y2ggc2V0IHBhc3NlcyBjb2RlIHJldmlldyBpbiBzb2Z0IGZlYXR1cmUgZnJlZXplIHBoYXNlLiBJ dCBwbGFucyB0byBjYXRjaCB0aGlzIHN0YWJsZSB0YWcuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPltNaWtlXSBUaGlzIHBhdGNoIHNlcmllcyB1c2VzIOKA mC4u4oCZIGluIElORiB0byBhY2Nlc3Mgc291cmNlIGZpbGVzIGluIGFub3RoZXIgY29tcG9uZW50 LiZuYnNwOyBUaGlzIGlzIG5vdCBsZWdhbC4mbmJzcDsgSSBhbSBzdXJwcmlzZWQgdGhpcyB3YXMg bm90IGNhdWdodCBpbiBjb2RlIHJldmlldy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo1LjI1cHQ7dGV4dC1p bmRlbnQ6MzAuNzVwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6 JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5ERUZJTkUgT1BFTlNTTF9QQVRIJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7ID0gLi4vT3BlbnNzbExpYi9vcGVuc3NsPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjEwLjVwdDt0ZXh0LWluZGVudDoyNS41 cHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli cmkmcXVvdDssc2Fucy1zZXJpZiI+REVGSU5FIEJBU0VfQ1JZUFRfUEFUSCZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA9IC4uL0Jhc2VDcnlwdExpYjxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250 LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+ PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz YW5zLXNlcmlmIj5bTWlrZV0gSSBzZWUgYSByZWZlcmVuY2UgdG8gc29tZSDigJxwbGF0Zm9ybSBp bnRlZ3JhdGlvbuKAnSB0ZXN0aW5nLiZuYnNwOyBHaXZlbiB0aGF0IHRoaXMgcGF0Y2ggc2VyaWVz IGltcGxlbWVudHMgYSBudW1iZXIgb2Y8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPmNyeXB0byBzZXJ2aWNlIEFQSXMgYW5kIGlzIGEg bGFyZ2UgbnVtYmVyIG9mIG5ldyBsaW5lcyBvZiBjb2RlLCBpdCB3b3VsZCBiZSBnb29kIHRvIGtu b3cgaWYgYWxsIG9mIHRoZSBuZXdseSBhZGRlZCBBUElzDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250 LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPndlcmUgdGVzdGVkIGluIGEg cGxhdGZvcm0gaW50ZWdyYXRpb24uIEEgdGFibGUgb2YgdGhlIGFkZGVkIEFQSXMgYW5kIHRoZSBw bGF0Zm9ybSBpbnRlZ3JhdGlvbiB0ZXN0IHN0YXR1cyB3b3VsZCBiZSBnb29kIHRvDQo8bzpwPjwv bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPmtu b3cgaWYgdGhlcmUgd2FzIGFueSBmdW5jdGlvbmFsIHRlc3Rpbmcgb2YgZWFjaCBBUEkuJm5ic3A7 IElmIHRoZXJlIGFyZSBBUElzIHRoYXQgYXJlIG5vdCBjb3ZlcmVkIGJ5IGFueSBwbGF0Zm9ybSBp bnRlZ3JhdGlvbg0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx dW90OyxzYW5zLXNlcmlmIj50ZXN0aW5nLCB0aGVuIEkgd291bGQgYmUgY29uY2VybmVkIHdpdGgg c3VjaCBhIGxhcmdlIGNoYW5nZSB3aXRoIGxpbWl0ZWQgdGVzdGluZy48bzpwPjwvbzpwPjwvc3Bh bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5ic3A7 PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoYW5rczxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+TGltaW5nPG86cD48L286cD48L3A+DQo8ZGl2Pg0K PGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3Bh ZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249Imxl ZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQiPjxiPjxzcGFuIGxhbmc9IlpILUNOIiBzdHlsZT0i Zm9udC1zaXplOjExLjBwdCI+5Y+R5Lu25Lq6PC9zcGFuPjwvYj48Yj48c3BhbiBzdHlsZT0iZm9u dC1zaXplOjExLjBwdCI+Ojwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQi Pg0KPGEgaHJlZj0ibWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvIj5kZXZlbEBlZGsyLmdyb3Vw cy5pbzwvYT4gJmx0OzxhIGhyZWY9Im1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbyI+ZGV2ZWxA ZWRrMi5ncm91cHMuaW88L2E+Jmd0Ow0KPGI+PHNwYW4gbGFuZz0iWkgtQ04iPuS7o+ihqCA8L3Nw YW4+PC9iPmdhb2xpbWluZyB2aWEgZ3JvdXBzLmlvPGJyPg0KPGI+PHNwYW4gbGFuZz0iWkgtQ04i PuWPkemAgeaXtumXtDwvc3Bhbj46PC9iPiAyMDI0PHNwYW4gbGFuZz0iWkgtQ04iPuW5tDwvc3Bh bj41PHNwYW4gbGFuZz0iWkgtQ04iPuaciDwvc3Bhbj43PHNwYW4gbGFuZz0iWkgtQ04iPuaXpTwv c3Bhbj4gOToyNTxicj4NCjxiPjxzcGFuIGxhbmc9IlpILUNOIj7mlLbku7bkuro8L3NwYW4+Ojwv Yj4gPGEgaHJlZj0ibWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvIj5kZXZlbEBlZGsyLmdyb3Vw cy5pbzwvYT47DQo8YSBocmVmPSJtYWlsdG86YW5ub3VuY2VAZWRrMi5ncm91cHMuaW8iPmFubm91 bmNlQGVkazIuZ3JvdXBzLmlvPC9hPjxicj4NCjxiPjxzcGFuIGxhbmc9IlpILUNOIj7mioTpgIE8 L3NwYW4+OjwvYj4gJ01pY2hhZWwgRCBLaW5uZXknICZsdDs8YSBocmVmPSJtYWlsdG86bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20iPm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPC9hPiZndDs7 ICdBbmRyZXcgRmlzaCcgJmx0OzxhIGhyZWY9Im1haWx0bzphZmlzaEBhcHBsZS5jb20iPmFmaXNo QGFwcGxlLmNvbTwvYT4mZ3Q7OyAnTGVpZiBMaW5kaG9sbScgJmx0OzxhIGhyZWY9Im1haWx0bzpx dWljX2xsaW5kaG9sQHF1aWNpbmMuY29tIj5xdWljX2xsaW5kaG9sQHF1aWNpbmMuY29tPC9hPiZn dDs8YnI+DQo8Yj48c3BhbiBsYW5nPSJaSC1DTiI+5Li76aKYPC9zcGFuPjo8L2I+IFtlZGsyLWRl dmVsXSBTb2Z0IEZlYXR1cmUgRnJlZXplIHN0YXJ0cyBub3cgZm9yIGVkazItc3RhYmxlMjAyNDA1 PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0Ij48bzpwPiZuYnNwOzwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGln bjpsZWZ0O2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHls ZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2siPkhpLCBhbGw8bzpwPjwvbzpwPjwv c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5bGU9InRleHQt YWxpZ246bGVmdDtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4g c3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj48bzpwPiZuYnNwOzwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5bGU9InRl eHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj4mbmJzcDsgV2UgZW50 ZXIgaW50byBTb2Z0IEZlYXR1cmUgRnJlZXplIHBoYXNlIG5vdy4gSW4gdGhpcyBwaGFzZSw8bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5 bGU9InRleHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUi Pg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj50aGUgZmVh dHVyZSB1bmRlciByZXZpZXcgd2lsbCBub3QgYmUgYWxsb3dlZCB0byBiZSBwdXNoZWQuIFRoZSBm ZWF0dXJlPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249 ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3Jv dW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjpibGFj ayI+cGFzc2VkIHJldmlldyBjYW4gc3RpbGwgYmUgbWVyZ2VkLjxvOnA+PC9vOnA+PC9zcGFuPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjps ZWZ0O2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2siPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGln bjpsZWZ0O2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHls ZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2siPiZuYnNwOyBUaGUgcGF0Y2ggcmV2 aWV3IGNhbiBjb250aW51ZSB3aXRob3V0IGJyZWFrIGluIGVkazIgY29tbXVuaXR5LiBJZiB0aGU8 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIg c3R5bGU9InRleHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hp dGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj5wYXRj aCBpcyBzZW50IGJlZm9yZSBTb2Z0IEZlYXR1cmUgRnJlZXplLCBhbmQgcGxhbnMgdG8gY2F0Y2gg dGhpcyBzdGFibGUgdGFnLCB0aGU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDox NC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNv bGFzO2NvbG9yOmJsYWNrIj5wYXRjaCBjb250cmlidXRvciBuZWVkIHJlcGx5IHRvIGhpcyBwYXRj aCBhbmQgbm90aWZ5IGVkazIgY29tbXVuaXR5LiBJZiB0aGU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVm dDtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZv bnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj5wYXRjaCBpcyBzZW50IGFmdGVyIFNvZnQg RmVhdHVyZSBGcmVlemUsIGFuZCBwbGFucyB0byBjYXRjaCB0aGlzIHN0YWJsZSB0YWcsPG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxl PSJ0ZXh0LWFsaWduOmxlZnQ7bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4N CjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjpibGFjayI+cGxlYXNlIGFk ZCBlZGsyLXN0YWJsZTIwMjQwNSBrZXkgd29yZHMgaW4gdGhlIHBhdGNoIHRpdGxlIGFuZCBCWiwg c28gdGhlPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249 ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3Jv dW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjpibGFj ayI+Y29tbXVuaXR5IGtub3cgdGhpcyBwYXRjaCB0YXJnZXQgYW5kIGdpdmUgdGhlIGZlZWRiYWNr LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0 IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3 aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2siPjxv OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJs ZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3Vu ZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2si PiZuYnNwOyBUbyBhdm9pZCB0aGUgdW5uZWNlc3NhcnkgY2hhbmdlcyB0byBiZSBtZXJnZWQgaW4g ZWRrMiBzdGFibGUgdGFnIHJlbGVhc2UsPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7bGluZS1oZWln aHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpD b25zb2xhcztjb2xvcjpibGFjayI+YWxsIGVkazIgbWFpbnRhaW5lcnMnIHdyaXRlIGFjY2VzcyB3 aWxsIGJlIHRlbXBvcmFyaWx5IGRpc2FibGVkIHVudGlsIHN0YWJsZTxvOnA+PC9vOnA+PC9zcGFu PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGln bjpsZWZ0O2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHls ZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2siPnRhZyBpcyByZWxlYXNlZCBvbiAw NS0yNC4gVGhhdCBtZWFucyBlZGsyIG1haW50YWluZXIgY2FuJ3Qgc2V0IHB1c2ggbGFiZWwgaW48 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIg c3R5bGU9InRleHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hp dGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj5wdWxs IHJlcXVlc3QgYWZ0ZXIgc29mdCBmZWF0dXJlIGZyZWV6ZSBzdGFydHMuPG86cD48L286cD48L3Nw YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFs aWduOmxlZnQ7bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0 eWxlPSJmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjpibGFjayI+PG86cD4mbmJzcDs8L286cD48 L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0 LWFsaWduOmxlZnQ7bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFu IHN0eWxlPSJmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjpibGFjayI+Jm5ic3A7IElmIHRoZSBj aGFuZ2Ugd2FudHMgdG8gY2F0Y2ggdGhpcyBzdGFibGUgdGFnIDIwMjQwNSwgcGxlYXNlIGZvbGxv dyBhYm92ZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWdu PSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dy b3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6Ymxh Y2siPnJ1bGVzLCB0aGVuIHNlbmQgdGhlIG1lcmdlIHJlcXVlc3QgdG8NCjxhIGhyZWY9Im1haWx0 bzpnYW9saW1pbmdAYnlvc29mdC5jb20uY24iPmdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbjwvYT4g b3IgPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249Imxl ZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5k OndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjpibGFjayI+ PGEgaHJlZj0ibWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tIj5taWNoYWVsLmQua2lu bmV5QGludGVsLmNvbTwvYT4uPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7bGluZS1oZWlnaHQ6MTQu MjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpDb25zb2xh cztjb2xvcjpibGFjayI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7bGluZS1oZWlnaHQ6 MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpDb25z b2xhcztjb2xvcjpibGFjayI+Jm5ic3A7IFdlIHdpbGwgaGVscCBtZXJnZSB0aGUgY29kZSBjaGFu Z2UgaW4gc29mdCBmZWF0dXJlIGZyZWV6ZSBhbmQgaGFyZCBmZWF0dXJlPG86cD48L286cD48L3Nw YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0LWFs aWduOmxlZnQ7bGluZS1oZWlnaHQ6MTQuMjVwdDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0 eWxlPSJmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjpibGFjayI+ZnJlZXplIHBoYXNlLiA8bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5 bGU9InRleHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUi Pg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj48bzpwPiZu YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIg c3R5bGU9InRleHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hp dGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj5CZWxv dyBpcyBlZGsyLXN0YWJsZTIwMjQwNSB0YWcgcGxhbm5pbmcgUHJvcG9zZWQgU2NoZWR1bGU8bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5 bGU9InRleHQtYWxpZ246bGVmdDtsaW5lLWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUi Pg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj5EYXRlICgw MDowMDowMCBVVEMtOCkgRGVzY3JpcHRpb248bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtsaW5lLWhl aWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5 OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtsaW5l LWhlaWdodDoxNC4yNXB0O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFt aWx5OkNvbnNvbGFzO2NvbG9yOmJsYWNrIj4yMDI0LTAyLTIzIEJlZ2lubmluZyBvZiBkZXZlbG9w bWVudDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJs ZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3Vu ZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2si PjIwMjQtMDUtMDYgU29mdCBGZWF0dXJlIEZyZWV6ZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xp bmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1m YW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2siPjIwMjQtMDUtMTAgSGFyZCBGZWF0dXJlIEZyZWV6 ZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0 IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xpbmUtaGVpZ2h0OjE0LjI1cHQ7YmFja2dyb3VuZDp3 aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6YmxhY2siPjIw MjQtMDUtMjQgUmVsZWFzZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xpbmUtaGVpZ2h0OjE0LjI1 cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29uc29sYXM7 Y29sb3I6YmxhY2siPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xpbmUtaGVpZ2h0OjE0 LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29uc29s YXM7Y29sb3I6YmxhY2siPlRoYW5rczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2xpbmUtaGVpZ2h0 OjE0LjI1cHQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6Q29u c29sYXM7Y29sb3I6YmxhY2siPkxpbWluZzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0Ij48L286cD48L3NwYW4+ PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQoN Cgo8ZGl2IHdpZHRoPSIxIiBzdHlsZT0iY29sb3I6d2hpdGU7Y2xlYXI6Ym90aCI+Xy5fLF8uXyxf PC9kaXY+Cjxocj4KCgpHcm91cHMuaW8gTGlua3M6PHA+CgoKICAKICAgIFlvdSByZWNlaXZlIGFs bCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuCiAgCiAgCgoKPHA+CjxhIHRhcmdldD0iX2Js YW5rIiBocmVmPSJodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTkwNTAi PlZpZXcvUmVwbHkgT25saW5lICgjMTE5MDUwKTwvYT4gfAoKCiAgCgp8CgogIDxhIHRhcmdldD0i X2JsYW5rIiBocmVmPSJodHRwczovL2dyb3Vwcy5pby9tdC8xMDYxNTU1NTYvNzY4NjE3NiI+TXV0 ZSBUaGlzIFRvcGljPC9hPgoKCnwgPGEgaHJlZj0iaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2Rl dmVsL3Bvc3QiPk5ldyBUb3BpYzwvYT4KCjxicj4KCgoKCjxhIGhyZWY9Imh0dHBzOi8vZWRrMi5n cm91cHMuaW8vZy9kZXZlbC9lZGl0c3ViLzc2ODYxNzYiPllvdXIgU3Vic2NyaXB0aW9uPC9hPiB8 CjxhIGhyZWY9Im1haWx0bzpkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbyI+Q29udGFjdCBHcm91 cCBPd25lcjwvYT4gfAoKPGEgaHJlZj0iaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vu c3ViIj5VbnN1YnNjcmliZTwvYT4KCiBbcmViZWNjYUBvcGVuZncuaW9dPGJyPgo8ZGl2IHdpZHRo PSIxIiBzdHlsZT0iY29sb3I6d2hpdGU7Y2xlYXI6Ym90aCI+Xy5fLF8uXyxfPC9kaXY+Cg0K --_000_PH0PR11MB5046C239250E0B5233DF2343F7EE2PH0PR11MB5046namp_-- --_004_PH0PR11MB5046C239250E0B5233DF2343F7EE2PH0PR11MB5046namp_ Content-Type: message/rfc822 Content-Disposition: attachment; creation-date="Fri, 17 May 2024 15:09:42 GMT"; modification-date="Fri, 17 May 2024 15:09:45 GMT" Received: from DM6PR11MB4595.namprd11.prod.outlook.com (2603:10b6:5:2ac::16) by PH0PR11MB5046.namprd11.prod.outlook.com with HTTPS; Fri, 17 May 2024 10:27:07 +0000 Received: from DM6PR03CA0054.namprd03.prod.outlook.com (2603:10b6:5:100::31) by DM6PR11MB4595.namprd11.prod.outlook.com (2603:10b6:5:2ac::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.27; Fri, 17 May 2024 10:27:05 +0000 Received: from DS1PEPF0001709A.namprd05.prod.outlook.com (2603:10b6:5:100:cafe::52) by DM6PR03CA0054.outlook.office365.com (2603:10b6:5:100::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.30 via Frontend Transport; Fri, 17 May 2024 10:27:05 +0000 Received: from edgegateway.intel.com (192.55.55.68) by DS1PEPF0001709A.mail.protection.outlook.com (10.167.18.104) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.21 via Frontend Transport; Fri, 17 May 2024 10:27:05 +0000 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by edgegateway.intel.com (10.1.192.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 17 May 2024 03:27:00 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 17 May 2024 03:27:00 -0700 Received: from fmviesa004.fm.intel.com (10.60.135.144) 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.39 via Frontend Transport; Fri, 17 May 2024 03:27:00 -0700 Received: from fmvoesa113.fm.intel.com ([10.64.2.23]) by fmviesa004-1.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 May 2024 03:26:59 -0700 Received: from mail05.groups.io ([45.79.224.7]) by mgamail.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 May 2024 03:26:48 -0700 From: "Hou, Wenxing" To: "devel@edk2.groups.io" CC: "Yao, Jiewen" , "Li, Yi1" , "Yao, Jiewen" Subject: [edk2-devel] [PATCH v4 00/11] Add more crypt APIs based on Mbedtls Thread-Topic: [edk2-devel] [PATCH v4 00/11] Add more crypt APIs based on Mbedtls Thread-Index: AQHaqETEwwKTfU6wGUOdZSB+gVlsZA== Sender: "devel@edk2.groups.io" Date: Fri, 17 May 2024 10:26:30 +0000 Message-ID: <17D03FCC8DEA42A1.16299@groups.io> List-Help: List-Subscribe: List-Unsubscribe: Reply-To: "devel@edk2.groups.io" , "Hou, Wenxing" Content-Language: en-US X-MS-Exchange-Organization-AuthAs: Anonymous X-MS-Exchange-Organization-AuthSource: fmsmsx602.amr.corp.intel.com X-MS-Has-Attach: X-Auto-Response-Suppress: All X-MS-Exchange-Organization-Network-Message-Id: ace492fc-09e8-4c5d-81dc-08dc765be651 X-MS-Exchange-Organization-SCL: 1 X-MS-TNEF-Correlator: X-MS-Exchange-Organization-RecordReviewCfmType: 0 x-ms-exchange-organization-originalserveripaddress: 10.167.18.104 x-ms-exchange-organization-originalclientipaddress: 10.60.135.144 x-ms-publictraffictype: Email received-spf: None (mgamail.intel.com: no sender authenticity information available from domain of postmaster@mail05.groups.io) identity=helo; client-ip=45.79.224.7; receiver=mgamail.intel.com; envelope-from="bounce+27952+119027+6360182+10613013@groups.io"; x-sender="postmaster@mail05.groups.io"; x-conformance=sidf_compatible Resent-From: authentication-results: spf=softfail (sender IP is 192.55.55.68) smtp.mailfrom=groups.io; dkim=pass (signature was verified) header.d=groups.io;dmarc=fail action=none header.from=intel.com; x-forefront-antispam-report: CIP:192.55.55.68;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:edgegateway.intel.com;PTR:edgegateway.intel.com;CAT:NONE;SFS:(13230031)(82310400017);DIR:INB; x-ms-office365-filtering-correlation-id: ace492fc-09e8-4c5d-81dc-08dc765be651 x-ms-traffictypediagnostic: DS1PEPF0001709A:EE_|DM6PR11MB4595:EE_|PH0PR11MB5046:EE_ x-microsoft-antispam: BCL:0;ARA:13230031|82310400017; x-ms-exchange-crosstenant-originalarrivaltime: 17 May 2024 10:27:05.6720 (UTC) x-ms-exchange-crosstenant-network-message-id: ace492fc-09e8-4c5d-81dc-08dc765be651 x-ms-exchange-crosstenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d x-ms-exchange-crosstenant-fromentityheader: HybridOnPrem x-ms-exchange-transport-crosstenantheadersstamped: DM6PR11MB4595 x-ms-exchange-transport-endtoendlatency: 00:00:01.9042525 x-ms-exchange-processed-by-bccfoldering: 15.20.7587.028 x-ms-exchange-crosstenant-authas: Anonymous x-ms-exchange-crosstenant-authsource: fmsmsx602.amr.corp.intel.com x-ironport-av: E=Sophos;i="6.08,167,1712646000"; d="scan'208";a="32171503" x-extloop1: 1 x-organizationheaderspreserved: fmsmsx611.amr.corp.intel.com x-crosspremisesheaderspromoted: DS1PEPF0001709A.namprd05.prod.outlook.com x-crosspremisesheadersfiltered: DS1PEPF0001709A.namprd05.prod.outlook.com x-originatororg: intel.onmicrosoft.com x-eopattributedmessage: 0 x-ms-exchange-crosstenant-originalattributedtenantconnectingip: TenantId=46c98d88-e344-4ed4-8496-4ed7712e255d;Ip=[192.55.55.68];Helo=[edgegateway.intel.com] X-Microsoft-Antispam-Mailbox-Delivery: ucf:1;jmr:0;auth:0;dest:C;OFR:CustomRules;ENG:(910001)(944506478)(944626604)(920097)(930097)(140003); X-Microsoft-Antispam-Message-Info: =?iso-8859-1?Q?23Xc8j9DkYAYQHU4iHQX1E4DhPt3toZTdJq3NG6I8V9n8r1GYWbOe5h3So?= =?iso-8859-1?Q?3yFPnYUJCTGJgxYccb3gSHlNsqSVhVF3qA5MATWVhU8yVBlG8gHRfc55lL?= =?iso-8859-1?Q?L7a+N1e2NEBNohDdqwj0MESpsp1owhSkKdklGdqg3HcYLhE2BuWxCU8qqW?= =?iso-8859-1?Q?eNlgwVW2gB3o2HLdx66r3/8/h4+dlAOQ5WT65tSdf0Pct6bfoPDkqaY+4s?= =?iso-8859-1?Q?U3IaHGD6ZI/f2GAeXlu0M29MaxwRvHx97ZTB2FkRzI9ER+9unKa//zvSft?= =?iso-8859-1?Q?n3T3O9IkKCqsAoC0hg/18gP675EbUXUg3thrOgzT3jB2da9pg5SHo4jQgV?= =?iso-8859-1?Q?QMgoi8FptBoRP68658UZdspRSOjSh04RaGMtQ+SyjDITAfWbeZe20MEPzt?= =?iso-8859-1?Q?OEa9lxGhax3osyBpBWvG0McvmvZrs4BVb2RqwC4STxxoGDwq1MwXdoANkU?= =?iso-8859-1?Q?Ck2NA+5iEKUABhwnyJiN6jZainZgLFy/68NrHEtz3WPYKO06dN5XQGhPVd?= =?iso-8859-1?Q?E3zw7bCY2cifNemnlnMwU9tMBLCr/3c7d5hmfFOcTlBWFuFFEgwi+3YVM0?= =?iso-8859-1?Q?Xwb/BL8wNvhhzZ/riuZrWNwoQMIapdHz6mNL5Rane40sj45cYpM+3bc8yx?= =?iso-8859-1?Q?ELhqHkpwavU/mxh6ekVEZA4b86HvUBv7v4+yuLNfbTJ3Q1orwI/A1OQ+sL?= =?iso-8859-1?Q?JA/aN0bcPgjqqLgnk+t07+NeXLKb+WGXDyWBT2FyV3wInK3hGVG0Rlyqcc?= =?iso-8859-1?Q?ASI8hjXU0arCORhp8WfpDbuz9tlZ0g4WmifDvnC/T/RpRHks9aCphhtlhQ?= =?iso-8859-1?Q?7ZD4N3YzarUEYV9QRNiVFWucdoQ5Gy0VZwbPeV9BzVzi6Rr4mRAwqj21rU?= =?iso-8859-1?Q?NcXJLbvOQyRKmQmE17PJsz5zpWKUC3gF2EE/mIspE5LIZQSHrZjqTnTl07?= =?iso-8859-1?Q?I3pqpLmwgVhvGmY6GkeRZNCWqrPdIRhCzsR9TLb0RduoD61cM4XmRxfwa5?= =?iso-8859-1?Q?Jk7BYSGlf3tqTqrX1OCFA2bjhDAeIDyDy5eGj+LAH+MNPHgj6kRs8RmV6V?= =?iso-8859-1?Q?y9XpwVt71I175OeUZYbflgw6NisGrsX0OQOTeSBUM0UopD5BuzhbreL6Es?= =?iso-8859-1?Q?QvrfB6E/fcWCfeO+KylbsV5pA91Y8U1Mkue89bhP8zCagclvmcVOwkJy/u?= =?iso-8859-1?Q?1WXFZOkuaFYKddDRXFBWTvPaFrKunMcWC4KiXRYV6iAc1IsNrnNruSonU0?= =?iso-8859-1?Q?TNzL2ufyZF7+UZnOLj91ct2DFV1EfHOwGH48hEDd06i89r7CGAL/+e7O3v?= =?iso-8859-1?Q?MtY/ITOn3wIa4o+JQzIXYWdm/J+Kwjoo48fjwTgBiduEYT9LPfSIxSIP8i?= =?iso-8859-1?Q?LxDay+C5OTzuvDau+rde3S27hzrw+aqLsuO3F0VbVZE50EiXw4wdAGWENe?= =?iso-8859-1?Q?jbi4Nahd7OHR76a284tAbIBN93YQcOGAxQ0Nu/Sph5a3LAYuu/5Zl3Cnnd?= =?iso-8859-1?Q?zp4R37io0mWgIUC3Mgd6DNmI5X5QXqZpcqyYZMh5O2hxg/zEIvIDjuepXw?= =?iso-8859-1?Q?McXYRsbOsHaF9F7LmI/6TAxYJjmkxfSKGJHPRKcz4dhT9vNTV+vpB7G2oS?= =?iso-8859-1?Q?p1CleGRNQgd5LLU4d37lgE4wxuUX+X/JuaFkCbAJJooxPRjtpoCduCM4Ac?= =?iso-8859-1?Q?SVH5wlqJDSYZB+ZvsZC1ipx7Vbn8SvTnYxKVEs3v3jBt4s72nz2+mcyQ98?= =?iso-8859-1?Q?Mx3D2Du2YWnoYAKn4+lZRk5A6aULxcDqm8mKC4/AWRe6vTZKWlQ7HdCdLF?= =?iso-8859-1?Q?AK/EAYYEy3nTTZxrZvwmJjdxRR+G18TDn7vMk8XCev2tVvhMr33FSIKcWu?= =?iso-8859-1?Q?AoWU8VGeezBtKKJw=3D=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4177 Add AeadAesGcm/Pem(only RSA)/X509(only RSA)/More RSA/PKCS5/pKCS7/Authentico= de/Timestamp implementation based on Mbedtls. The patch has passed the EDKII CI check: https://github.com/tianocore/edk2/pull/5645 And the patch has passed unit_test in EDKII and integration test for platfo= rm. And the patch hass passed the fuzz test: https://github.com/tianocore/edk2-staging/commit/4f19398053c92e4f7791d468a1= 84530b6ab89128 There are three types of newly implemented APIs. 1. First type of APIs pass the platform integration test by some secure fea= tures, such as Secure Boot, RPMC, etc.These APIs are:=20 Sm3GetContextSize/ Sm3Init/Sm3Duplicate/ Sm3Update/Sm3Final/Sm3HashAll/RsaG= etPrivateKeyFromPem/AuthenticodeVerify Pkcs5HashPassword/Pkcs7GetSigners/Pkcs7FreeSigners/Pkcs7Sign/Pkcs7Verify/Ve= rifyEKUsInPkcs7Signature/Pkcs7GetAttachedContent RsaGetKey/ImageTimestampVerify/X509GetCommonName/X509GetTBSCert/RandomBytes 2. Second type of APIs pass the platform integration test by DevieSecurity.= These APIs are:=20 AeadAesGcmEncrypt/AeadAesGcmDecrypt/RsaGenerateKey/RsaCheckKey/RsaPkcs1Sign= /RsaPssSign/X509GetSubjectName X509GetOrganizationName/X509VerifyCert/X509ConstructCertificate/X509Constru= ctCertificateStackV/X509ConstructCertificateStack X509Free/X509StackFree 3. Third type of APIs don't have platform integration, but the API passed t= he EDKII uint_test. The API is: Pcs1v2Encrypt v2 changes: - Fix format variable name/hardcode number issue; - Fix Pkcs7 memory leak; v3 changes: - Fix some issues form reviewer; - Add SHA3/SM3 implementation; - Update *.inf files; v4 changes: - Delete SHA3 implementation; - Complete Sm3 by linking OopensslLib; - collection data for platform integration test for newly implemented APIs= ; Cc: Jiewen Yao Cc: Yi Li Signed-off-by: Wenxing Hou Reviewed-by: Yi Li Acked-by: Jiewen Yao Wenxing Hou (11): CryptoPkg: Add AeadAesGcm based on Mbedtls CryptoPkg: Add rand function for BaseCryptLibMbedTls CryptoPkg: Add Pem APIs based on Mbedtls CryptoPkg: Add X509 functions based on Mbedtls CryptoPkg: Add Pkcs7 related functions based on Mbedtls CryptoPkg: Add Pkcs5 functions based on Mbedtls CryptoPkg: Add more RSA related functions based on Mbedtls CryptoPkg: Add AuthenticodeVerify based on Mbedtls CryptoPkg: Add ImageTimestampVerify based on Mbedtls CryptoPkg: Update *.inf in BaseCryptLibMbedTls Add SM3 functions with openssl for Mbedtls CryptoPkg/CryptoPkgMbedTls.dsc | 1 + CryptoPkg/Include/Library/BaseCryptLib.h | 4 + .../BaseCryptLibMbedTls/BaseCryptLib.inf | 43 +- .../Cipher/CryptAeadAesGcm.c | 227 ++ .../BaseCryptLibMbedTls/Hash/CryptSm3.c | 235 ++ .../BaseCryptLibMbedTls/InternalCryptLib.h | 49 + .../BaseCryptLibMbedTls/PeiCryptLib.inf | 23 +- .../BaseCryptLibMbedTls/Pem/CryptPem.c | 138 ++ .../Pk/CryptAuthenticode.c | 214 ++ .../BaseCryptLibMbedTls/Pk/CryptPkcs1Oaep.c | 278 +++ .../BaseCryptLibMbedTls/Pk/CryptPkcs5Pbkdf2.c | 100 + .../Pk/CryptPkcs7Internal.h | 29 +- .../BaseCryptLibMbedTls/Pk/CryptPkcs7Sign.c | 635 ++++++ .../Pk/CryptPkcs7VerifyBase.c | 113 + .../Pk/CryptPkcs7VerifyCommon.c | 1354 ++++++++++++ .../Pk/CryptPkcs7VerifyEku.c | 689 ++++++ .../BaseCryptLibMbedTls/Pk/CryptRsaExt.c | 352 +++ .../BaseCryptLibMbedTls/Pk/CryptRsaPssSign.c | 140 ++ .../Library/BaseCryptLibMbedTls/Pk/CryptTs.c | 381 ++++ .../BaseCryptLibMbedTls/Pk/CryptX509.c | 1940 +++++++++++++++++ .../BaseCryptLibMbedTls/Rand/CryptRand.c | 114 + .../BaseCryptLibMbedTls/Rand/CryptRandTsc.c | 114 + .../BaseCryptLibMbedTls/RuntimeCryptLib.inf | 27 +- .../BaseCryptLibMbedTls/SecCryptLib.inf | 1 - .../BaseCryptLibMbedTls/SmmCryptLib.inf | 32 +- .../SysCall/BaseMemAllocation.c | 122 ++ .../SysCall/DummyOpensslSupport.c | 571 +++++ .../SysCall/UnitTestHostCrtWrapper.c | 63 + .../BaseCryptLibMbedTls/TestBaseCryptLib.inf | 40 +- 29 files changed, 7946 insertions(+), 83 deletions(-) create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Cipher/CryptAeadA= esGcm.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Hash/CryptSm3.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pem/CryptPem.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptAuthentic= ode.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptPkcs1Oaep= .c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptPkcs5Pbkd= f2.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptPkcs7Sign= .c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptPkcs7Veri= fyBase.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptPkcs7Veri= fyCommon.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptPkcs7Veri= fyEku.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptRsaExt.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptRsaPssSig= n.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptTs.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptX509.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Rand/CryptRand.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/Rand/CryptRandTsc= .c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/SysCall/BaseMemAl= location.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/SysCall/DummyOpen= sslSupport.c create mode 100644 CryptoPkg/Library/BaseCryptLibMbedTls/SysCall/UnitTestH= ostCrtWrapper.c --=20 2.26.2.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#119027): https://edk2.groups.io/g/devel/message/119027 Mute This Topic: https://groups.io/mt/106151214/6360182 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [wenxing.hou@intel.com] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- --_004_PH0PR11MB5046C239250E0B5233DF2343F7EE2PH0PR11MB5046namp_--