From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-002e3701.pphosted.com (mx0b-002e3701.pphosted.com [148.163.143.35]) by mx.groups.io with SMTP id smtpd.web09.408.1625017741105366131 for ; Tue, 29 Jun 2021 18:49:01 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=R9qwHAi/; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: hpe.com, ip: 148.163.143.35, mailfrom: prvs=08155e5ac8=nickle.wang@hpe.com) Received: from pps.filterd (m0134423.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 15U1i78K022328; Wed, 30 Jun 2021 01:48:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=md8wx8+qGqP9OCatO86hikb3kEV8JGjeWqkb+Iaa3rE=; b=R9qwHAi/Obae3pYG9y7F22A2fY4gozczLYitMlF8UHz9pgYOze7TYe/066bLczW4jwVe /+9oNKHUHArUfrUMtFGkxEhnggaudFp5BPgoc/oUyjbGpCExYMvMI6erRYxJAo7NTRp4 /1pZ4eG5DZqp1puJZHxSnoNnPIRwV8P8SbjYXRlA+T3W7C5y+kukzV7DbM/yPVZFDVbV 0AD9S1MNXSA6E86H97J21PQYCIKvJlbXzo8+Oa7PXU8htqbLwsEDA65OESpqDt3QsLZk 5vXAqGeqUnx9j7JhebApw2GmuCwgJydSZv12gu2Oz+DTh/GSz5va0bWHdnARdJGSTg7S TA== Received: from g4t3425.houston.hpe.com (g4t3425.houston.hpe.com [15.241.140.78]) by mx0b-002e3701.pphosted.com with ESMTP id 39fydj8m0f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Jun 2021 01:48:55 +0000 Received: from G2W6311.americas.hpqcorp.net (g2w6311.austin.hp.com [16.197.64.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g4t3425.houston.hpe.com (Postfix) with ESMTPS id 8C1B792; Wed, 30 Jun 2021 01:48:54 +0000 (UTC) Received: from G4W9335.americas.hpqcorp.net (16.208.33.85) by G2W6311.americas.hpqcorp.net (16.197.64.53) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Wed, 30 Jun 2021 01:48:54 +0000 Received: from G4W10204.americas.hpqcorp.net (2002:10cf:5210::10cf:5210) by G4W9335.americas.hpqcorp.net (2002:10d0:2155::10d0:2155) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Wed, 30 Jun 2021 01:48:54 +0000 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (15.241.52.10) by G4W10204.americas.hpqcorp.net (16.207.82.16) with Microsoft SMTP Server (TLS) id 15.0.1497.18 via Frontend Transport; Wed, 30 Jun 2021 01:48:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O85+pO8A/LS3ffHEMwaaGA6ujXMqjtlmW6yLytJGViEqiLh38UzIwEbZ+ke8zuyIT8THizDlVoDys4/pX9RYBf9llnjs4kgnKIzAiEIVTN27JdU2EMoyKI4MBWb8+IUWDwOvGSUNsb/R+HMShl9tYcRVl/9kZkzasM0CV4qFfwNgJisWtNonRxutKXiGWo+mLH0eRNJGkypIZYQCwJ44h9bJvfHe6eG89z8IwUSKOrZOBcB+7R5jNICAF0CEJClBZMRKOfVFKDDJ086QjIdjkjMLLxlzBrx7UjAkNz9sRPVCJlYZnaNTMwCNclPZNhNDGuj1rnQ4oQzZ2j1c4ONFhQ== 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-SenderADCheck; bh=oEPwkSMtYsWHQ5xzIi/vQ2o8Am3bs+ziOt7my+cNIKQ=; b=RksXImbL8C2uq1BJzB5zDnLGeM/S2DB590j+JIAcHrEJGR+S78J2bmURlALNDnIXgJ241IMvAZtlJY3H2MWUb68o/gdlHuSQwyGhBzPOFNB9B/3jn/zTBTCrQ///2SfuFmk4ckWrykVEOee1lnx2L8b++PU448F+Z+G1ua11aav3svjW4H9WSDHJlw9jQz7f3g6tZhtlMlXJoaJfCSKyPfwl40SrvF20jcYNy1bPz8uaeUQzi/an1M1ikleSusC9K/+YSFYk85QHaLzRz0mPJRhbkKiXCpDJmb7/tzjY89e86cPAALzTsIg+DFbHgNwUV04INa+hG2YYjazNtuYGRQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from DF4PR8401MB0812.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:760d::7) by DF4PR8401MB0571.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7608::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.18; Wed, 30 Jun 2021 01:48:52 +0000 Received: from DF4PR8401MB0812.NAMPRD84.PROD.OUTLOOK.COM ([fe80::114d:5bfd:f53a:50a5]) by DF4PR8401MB0812.NAMPRD84.PROD.OUTLOOK.COM ([fe80::114d:5bfd:f53a:50a5%6]) with mapi id 15.20.4264.026; Wed, 30 Jun 2021 01:48:52 +0000 From: "Nickle Wang" To: gaoliming , "devel@edk2.groups.io" , "lersek@redhat.com" CC: "jian.j.wang@intel.com" , "hao.a.wu@intel.com" , "Wang, Nickle (HPS SW)" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/RegularExpressionDxe: Fix memory assert in FreePool() Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg/RegularExpressionDxe: Fix memory assert in FreePool() Thread-Index: AQHXXbUhbdBo0lj84k6jbjmDWE0/06srMTOAgACrrwCAAATc8IAABVIAgAABezA= Date: Wed, 30 Jun 2021 01:48:52 +0000 Message-ID: References: <20210610045641.1466-1-nickle.wang@hpe.com> <8eb4dbca-2ef5-888b-60f9-df28b05107ee@redhat.com> <004f01d76d4c$26fbd7a0$74f386e0$@byosoft.com.cn> <006b01d76d51$3db6d5d0$b9248170$@byosoft.com.cn> In-Reply-To: <006b01d76d51$3db6d5d0$b9248170$@byosoft.com.cn> Accept-Language: en-US, zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: byosoft.com.cn; dkim=none (message not signed) header.d=none;byosoft.com.cn; dmarc=none action=none header.from=hpe.com; x-originating-ip: [165.225.116.149] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6c693e55-3637-4388-75d9-08d93b693681 x-ms-traffictypediagnostic: DF4PR8401MB0571: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:126; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Lt3iqTAaDjztqX7Pnx2y8+xj1hy8zm1huzxwyBQquHLfi7Bjs+Hmx2uE90AvDlGTmgKAtKdj1lKRNIrAg7m36Tm4rg7FdIEc6nWYPA/IwOLX8yv8ELGJCxZmRCfSTA7U5Y5ooDD13k1pfnoDdbkRTfayDPq6l5fep4CaNKhSvkGMfkbMVmrk+2zCGb2nElCoyFrUj2OsIbhT4GnFkAUYkhWgGONG3l4YrzUnJUoui7ePbhks/tCoiC7+r2uSM3coHlV9Ohyjuk651wm9pCVtwHhM2c2sLyZEj8wIadeFGuLgxcEwTqAlNqEd86KV0MMWbmWd9E361wiWMEQTRhuoDKwdrqpj37nonwcIfzM1vvLE02IvYSmI1p3hq0KaIITIxb15dCUinliTQJZzlNOHOuZWB8shaNIghrcNxluZlQH7eUGdWWDUvB379zpVjCGk3XmPMJ/ZNTlaH53qvlNh8/HkHf2Mtm8+/+qZ+jhxHfe5C/AiLXhlahkMw0KzSZkdqzWG9WFomUefTg04AUaO+Uf65biY4pdAO+G1Lc5j6Ybf9MVe1+z/+ks79/pPrBL7662VWNkaVYm3lgebtAbi255vONi8LZSpgNQGHL0vaqyeX2PWMOkQGpLq+ZCSEUGo6nwyZRhS6XxDPzVSlRc+3pTbAOfB33G31dPPT4xR3Lh7Uou5XpD+la04YmLHK03f77MYlg9O/Vjx7fzlIkcutLp4/Pg6PRD8WgozX1ZjGEAy4pj5NT0OKO7VH56rCc77Morm1eDPcRDFPnwvGZfULh/y7qdSFf5Mt2LZN7mQFy57gWc2vETu6/gGhlWM6nVT6J4v+aOqVixqNimjxIGAsXELX68CeaSD6xybgkJ0KEA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DF4PR8401MB0812.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(396003)(39850400004)(136003)(376002)(346002)(366004)(86362001)(966005)(478600001)(66556008)(66476007)(64756008)(66946007)(76116006)(66446008)(30864003)(55016002)(9686003)(5660300002)(38100700002)(122000001)(52536014)(53546011)(8936002)(2906002)(55236004)(33656002)(83380400001)(71200400001)(7696005)(316002)(110136005)(26005)(4326008)(54906003)(8676002)(6506007)(186003)(309714004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZkE0NmZqVmg0MGFjUnpmUVVhWUFsV1V4cTBkY0s1c1dtQ2VwWVkzTnMyZTJl?= =?utf-8?B?QzJqaTh3NzF3Y3JiSW83dHBVK2N0TzR0dzJxOUwraGtEMDJsUm5tVStjUXcx?= =?utf-8?B?OUI4ZzY0WlpScTVNdy93K0dGNTZJdlV0K1RMT3RHUVAwRUh3OGROUlBEdmJX?= =?utf-8?B?MkVkT2VVNUlMUW1VN292Q09MNWY0TlU3NHFZaFpvRis5QkVhbTYyamxTd0JT?= =?utf-8?B?SEdnYkk1cnRsZlkzZmd3WnVVeVVrdWs5YUhGYXJRa3VPcHNxOUVMWHNQbXcw?= =?utf-8?B?d3ZhdUpic1FiSzVVbi9kMHpnZWlRZlJDYnJUaUVHOUpWQXJyU3FONlc3QXNU?= =?utf-8?B?QUFwT21Ea1ltUllUa1EvZ05OMnVFTGt3amNHeGs1Nll1THYyZGVLTXJpRGth?= =?utf-8?B?Um9ablkrRFhGR2MwVGZVQlZLOWhBWkk1WnEwNkVHbW1qREtqYk8wMHJCaHNy?= =?utf-8?B?a2x5WGJsd2JNam1hK0s1TURnejdSODE4QnYxTndjeVNOdVQ5OXNUbHlvUkdm?= =?utf-8?B?bXJ1SDRhcURGV1JjdGhIc3F3M0lxRzFBVG5aelZWcVlDTmhVWW4zY0dTWmUz?= =?utf-8?B?ZVBHZ3hWK0lkY0FVTDNNbDdQTEJSdUt6aEJjT25zZnRXZ3BWV3F3eFhFZ3ZW?= =?utf-8?B?ejJmT3grQVFyRjFuSG8zWEFHV05rWEcza29hMjg3RHFmWjhPLzA1MHMvL3ds?= =?utf-8?B?OWZLVFpqQlk5cWtpRDZLYnluWVMxNSt6K3dMaFZYZVNMV0VySXRDclhOdko2?= =?utf-8?B?VVd4TmZja2FrV2t2aWFld1NwRXhFYU42d0pWSEFud2JLaG90TDBJbXIxUTlO?= =?utf-8?B?L2FrTUJleWo0bkFSMEpNR3BiMGhJSWVaMm5Zbk50alVQczZZMzQ2QUlyblJ5?= =?utf-8?B?Z09FKzdCY3pYUmhsM2Nic1RQTFdNRWlaalNUajZnRGR3WlQ3TXhNbjZZYkFR?= =?utf-8?B?ZlBjNTREeVc4bnpJNlNmd25JREdBQTRjRXd5ZjNYTDlBQmxHelhWYmlPZDZo?= =?utf-8?B?TVBJeTRGZ1A3eS9BVzJmQlFTYzY0aS90NVF5TVBsR2J3TTVMVzhkRmt1MU9i?= =?utf-8?B?TURkckZ0UTBObEtlYThpWDFnR3B4eWN5S3cyRVJUMThKVXVHWTJpZFRJenJw?= =?utf-8?B?YUR0Mnh3cGExZ1k3MWhsVGFaNjdPQS9pM3hZL1pEK0F1U1YzQzVxVjRqWXhi?= =?utf-8?B?c2lyZEs2bHVGamp2dExkT0NsYnliVVA0VEdCeHE0S0VuamlLRG02cUxZeFl6?= =?utf-8?B?TnFyQTdPcEM3VDRlaklwZ25vb1laUmVWMlYzWVJPTFZQZ0dYRmtDdENsYkNm?= =?utf-8?B?c3hkN2czbERYL3B6clYwRlN4Y08wVmc1VVFIbXM1bDdLdjlraTdzSW9ScVlq?= =?utf-8?B?ZVlCWnZJUVRDanVIVGtjeGhIQmVxZS9DbkIvT1VVeXVDTmlkbW1rcHlqM21Q?= =?utf-8?B?VFAvMkF0NndSME9sajNNN0lVYTRrOG95K1YzbTUvWnhFY3ZYc2J0ejlpeXZ3?= =?utf-8?B?MkpwV2oxRllzSDFkZjcyZlU2UUUzTmNKaTRaeU1kODhmVTlOMVR0Z01vNzJ6?= =?utf-8?B?UVZnSURybkxxVW5YSTlHQ081SEViZTRMVlphdHR3alFKbFNFSDdWejNuZWZp?= =?utf-8?B?RnZaM25MOXVzQTJvckk4YmV4cm13TUxoV0l0Y08wK29qeGk4WXN5TzBiQUww?= =?utf-8?B?aGQ0NzExV3A4cDhTSGhvT0xkWDhsZVBpTGtxVGtJTVdiRERqR3BXa1hodkxl?= =?utf-8?Q?51HOGfYC8bCiptyDoezNkFterhukH7xVW+HhaeT?= X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DF4PR8401MB0812.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 6c693e55-3637-4388-75d9-08d93b693681 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jun 2021 01:48:52.0325 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 3EJsqbX6jRhQULeYxzZU6Cf+OZZMkhHy053/qQiUEMYtO+Ky6p6LtHfYyGQHdtHY3ucPZMFp7aS8fSXcGL8wPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DF4PR8401MB0571 X-OriginatorOrg: hpe.com X-Proofpoint-GUID: 2_ooxIDXfZVtrDzdhx4X6WOVc3aXkcii X-Proofpoint-ORIG-GUID: 2_ooxIDXfZVtrDzdhx4X6WOVc3aXkcii X-Proofpoint-UnRewURL: 1 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.790 definitions=2021-06-29_14:2021-06-29,2021-06-29 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 mlxscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 impostorscore=0 priorityscore=1501 mlxlogscore=999 spamscore=0 clxscore=1015 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2106300010 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBzZWUuIFRoYW5rcyBmb3IgeW91ciBxdWljayByZXNwb25zZS4gSSB3aWxsIHdvcmsgb24gaXQu DQoNCk5pY2tsZQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogZ2FvbGltaW5n IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+IA0KU2VudDogV2VkbmVzZGF5LCBKdW5lIDMwLCAy MDIxIDk6NDMgQU0NClRvOiBXYW5nLCBOaWNrbGUgKEhQUyBTVykgPG5pY2tsZS53YW5nQGhwZS5j b20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgbGVyc2VrQHJlZGhhdC5jb20NCkNjOiBqaWFuLmou d2FuZ0BpbnRlbC5jb207IGhhby5hLnd1QGludGVsLmNvbQ0KU3ViamVjdDog5Zue5aSNOiBbZWRr Mi1kZXZlbF0gW1BBVENIXSBNZGVNb2R1bGVQa2cvUmVndWxhckV4cHJlc3Npb25EeGU6IEZpeCBt ZW1vcnkgYXNzZXJ0IGluIEZyZWVQb29sKCkNCg0KVGhpcyBpcyBhIHNlcGFyYXRlIGNvbW1pdC4g WW91IGNhbiBzZW5kIGl0IHRvZ2V0aGVyIHdpdGggcHJldmlvdXMgcGF0Y2guIA0KDQpUaGFua3MN CkxpbWluZw0KPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+IOWPkeS7tuS6ujogV2FuZywgTmlj a2xlIChIUFMgU1cpIDxuaWNrbGUud2FuZ0BocGUuY29tPg0KPiDlj5HpgIHml7bpl7Q6IDIwMjHl ubQ25pyIMzDml6UgOToyOQ0KPiDmlLbku7bkuro6IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3Nv ZnQuY29tLmNuPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IA0KPiBsZXJzZWtAcmVkaGF0LmNvbQ0K PiDmioTpgIE6IGppYW4uai53YW5nQGludGVsLmNvbTsgaGFvLmEud3VAaW50ZWwuY29tOyBXYW5n LCBOaWNrbGUgKEhQUyBTVykgDQo+IDxuaWNrbGUud2FuZ0BocGUuY29tPg0KPiDkuLvpopg6IFJF OiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVNb2R1bGVQa2cvUmVndWxhckV4cHJlc3Npb25EeGU6 IEZpeCANCj4gbWVtb3J5IGFzc2VydCBpbiBGcmVlUG9vbCgpDQo+IA0KPiBIaSBMaW1pbmcsDQo+ IA0KPiBObyBwcm9ibGVtLiBJdCBsb29rcyBsaWtlIEkgaGF2ZSB0byBhZGQgT25pZ3VydW1hVWVm aVBvcnQuYyBpbnRvICJJZ25vcmVGaWxlcyINCj4gb2JqZWN0IGluIE1kZU1vZHVsZVBrZy5jaS55 YW1sLiBBbmQgc2hvdWxkIEkgc2VuZCB0aGlzIHBhdGNoIGFsb25lPyBPciANCj4gSSBoYXZlIHRv IHNlbmQgaXQgYXMgYSBwYXJ0IG9mIHBhdGNoIGluIGVhcmx5IGZpeD8NCj4gDQo+IFRoYW5rcywN Cj4gTmlja2xlDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBnYW9s aW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gU2VudDogV2VkbmVzZGF5LCBKdW5l IDMwLCAyMDIxIDk6MDYgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBsZXJzZWtAcmVk aGF0LmNvbTsgV2FuZywgTmlja2xlIChIUFMgU1cpIA0KPiA8bmlja2xlLndhbmdAaHBlLmNvbT4N Cj4gQ2M6IGppYW4uai53YW5nQGludGVsLmNvbTsgaGFvLmEud3VAaW50ZWwuY29tDQo+IFN1Ympl Y3Q6IOWbnuWkjTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlTW9kdWxlUGtnL1JlZ3VsYXJFeHBy ZXNzaW9uRHhlOg0KPiBGaXggbWVtb3J5IGFzc2VydCBpbiBGcmVlUG9vbCgpDQo+IA0KPiBMYXN6 bG86DQo+ICBZZXMuIEkgYWdyZWUgdG8gYWRkIE9uaWd1cnVtYVVlZmlQb3J0LmMgaW50byBFQ0Mg ZXhjZXB0aW9uIGluIA0KPiBNZGVNb2R1bGVQa2cuY2kueWFtbC4NCj4gDQo+IE5pY2tsZToNCj4g IENhbiB5b3UgcHJvdmlkZSB0aGUgcGF0Y2ggdG8gdXBkYXRlIE1kZU1vZHVsZVBrZy5jaS55YW1s Pw0KPiANCj4gVGhhbmtzDQo+IExpbWluZw0KPiA+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4g PiDlj5Hku7bkuro6IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g 5Luj6KGoIExhc3psbw0KPiBFcnNlaw0KPiA+IOWPkemAgeaXtumXtDogMjAyMeW5tDbmnIgyOeaX pSAyMjo1Mg0KPiA+IOaUtuS7tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMuaW87IG5pY2tsZS53YW5n QGhwZS5jb20NCj4gPiDmioTpgIE6IGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbjsgamlhbi5qLndh bmdAaW50ZWwuY29tOyANCj4gPiBoYW8uYS53dUBpbnRlbC5jb20NCj4gPiDkuLvpopg6IFJlOiBb ZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVNb2R1bGVQa2cvUmVndWxhckV4cHJlc3Npb25EeGU6IEZp eCANCj4gPiBtZW1vcnkgYXNzZXJ0IGluIEZyZWVQb29sKCkNCj4gPg0KPiA+IE9uIDA2LzEwLzIx IDA2OjU2LCBOaWNrbGUgV2FuZyB3cm90ZToNCj4gPiA+IE1lbW9yeSBidWZmZXIgdGhhdCBpcyBh bGxvY2F0ZWQgYnkgbWFsbG9jKCkgYW5kIHJlYWxsb2MoKSB3aWxsIGJlIA0KPiA+ID4gc2hpZnRl ZCBieSA4IGJ5dGVzIGJlY2F1c2UgT25pZ3VydW1hIGtlZXBzIGl0cyBtZW1vcnkgc2lnbmF0dXJl Lg0KPiA+ID4gVGhpcyA4IGJ5dGVzIHNoaWZ0IGlzIG5vdCBoYW5kbGVkIHdoaWxlIGNhbGxpbmcg ZnJlZSgpIHRvIHJlbGVhc2UgDQo+ID4gPiBtZW1vcnkuIEFkZA0KPiA+ID4gZnJlZSgpIGZ1bmN0 aW9uIHRvIGNoZWNrIE9uaWd1cnVtYSBzaWduYXR1cmUgYmVmb3JlIHJlbGVhc2UgbWVtb3J5IA0K PiA+ID4gYmVjYXVzZSBtZW1vcnkgYnVmZmVyIGlzIG5vdCB0b3VjaGVkIHdoZW4gdXNpbmcgY2Fs bG9jKCkuDQo+ID4gPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTogTmlja2xlIFdhbmcgPG5pY2tsZS53 YW5nQGhwZS5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICAuLi4vUmVndWxhckV4cHJlc3Npb25EeGUv T25pZ3VydW1hVWVmaVBvcnQuYyAgfCAxOQ0KPiA+ICsrKysrKysrKysrKysrKysrKy0NCj4gPiA+ ICAuLi4vUmVndWxhckV4cHJlc3Npb25EeGUvT25pZ3VydW1hVWVmaVBvcnQuaCAgfCAxNCArKy0t LS0tLS0tLS0tLQ0KPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMTMg ZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdA0KPiA+IGEvTWRlTW9kdWxlUGtn L1VuaXZlcnNhbC9SZWd1bGFyRXhwcmVzc2lvbkR4ZS9PbmlndXJ1bWFVZWZpUG9ydC5jDQo+ID4g Yi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1JlZ3VsYXJFeHByZXNzaW9uRHhlL09uaWd1cnVtYVVl ZmlQb3J0LmMNCj4gPiA+IGluZGV4IDlhYTdiMGE2OGUuLjVjMzQzMjRkYjggMTAwNjQ0DQo+ID4g PiAtLS0NCj4gPiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvUmVndWxhckV4cHJlc3Npb25EeGUv T25pZ3VydW1hVWVmaVBvcnQuYw0KPiA+ID4gKysrDQo+ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVy c2FsL1JlZ3VsYXJFeHByZXNzaW9uRHhlL09uaWd1cnVtYVVlZmlQb3J0LmMNCj4gPiA+IEBAIC0y LDcgKzIsNyBAQA0KPiA+ID4NCj4gPiA+ICAgIE1vZHVsZSB0byByZXdyaXRlIHN0ZGxpYiByZWZl cmVuY2VzIHdpdGhpbiBPbmlndXJ1bWENCj4gPiA+DQo+ID4gPiAtICAoQykgQ29weXJpZ2h0IDIw MTQtMjAxNSBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudA0KPiA+IExQPEJS Pg0KPiA+ID4gKyAgKEMpIENvcHlyaWdodCAyMDE0LTIwMjEgSGV3bGV0dCBQYWNrYXJkIEVudGVy cHJpc2UgRGV2ZWxvcG1lbnQNCj4gPiBMUDxCUj4NCj4gPiA+ICAgIENvcHlyaWdodCAoYykgMjAy MCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4NCj4g PiA+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50IEBAIC05 NiwzICs5NiwyMCBAQA0KPiA+ID4gdm9pZCogbWVtc2V0ICh2b2lkICpkZXN0LCBjaGFyIGNoLCB1 bnNpZ25lZCBpbnQNCj4gPiBjb3VudCkNCj4gPiA+ICAgIHJldHVybiBTZXRNZW0gKGRlc3QsIGNv dW50LCBjaCk7ICB9DQo+ID4gPg0KPiA+ID4gK3ZvaWQgZnJlZSh2b2lkICpwdHIpDQo+ID4gPiAr ew0KPiA+ID4gKyAgVk9JRCAgICAgICAgICpFdmFsT25jZTsNCj4gPiA+ICsgIE9OSUdNRU1fSEVB RCAqUG9vbEhkcjsNCj4gPiA+ICsNCj4gPiA+ICsgIEV2YWxPbmNlID0gcHRyOw0KPiA+ID4gKyAg aWYgKEV2YWxPbmNlID09IE5VTEwpIHsNCj4gPiA+ICsgICAgcmV0dXJuOw0KPiA+ID4gKyAgfQ0K PiA+ID4gKw0KPiA+ID4gKyAgUG9vbEhkciA9IChPTklHTUVNX0hFQUQgKilFdmFsT25jZSAtIDE7 DQo+ID4gPiArICBpZiAoUG9vbEhkci0+U2lnbmF0dXJlID09IE9OSUdNRU1fSEVBRF9TSUdOQVRV UkUpIHsNCj4gPiA+ICsgICAgRnJlZVBvb2wgKFBvb2xIZHIpOw0KPiA+ID4gKyAgfSBlbHNlIHsN Cj4gPiA+ICsgICAgRnJlZVBvb2wgKEV2YWxPbmNlKTsNCj4gPiA+ICsgIH0NCj4gPiA+ICt9DQo+ ID4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1JlZ3VsYXJFeHBy ZXNzaW9uRHhlL09uaWd1cnVtYVVlZmlQb3J0LmgNCj4gPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJz YWwvUmVndWxhckV4cHJlc3Npb25EeGUvT25pZ3VydW1hVWVmaVBvcnQuaA0KPiA+ID4gaW5kZXgg MjBiNzVjMzM2MS4uMGJkYjdiZTUyOSAxMDA2NDQNCj4gPiA+IC0tLQ0KPiA+IGEvTWRlTW9kdWxl UGtnL1VuaXZlcnNhbC9SZWd1bGFyRXhwcmVzc2lvbkR4ZS9PbmlndXJ1bWFVZWZpUG9ydC5oDQo+ ID4gPiArKysNCj4gPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvUmVndWxhckV4cHJlc3Npb25E eGUvT25pZ3VydW1hVWVmaVBvcnQuaA0KPiA+ID4gQEAgLTIsNyArMiw3IEBADQo+ID4gPg0KPiA+ ID4gICAgTW9kdWxlIHRvIHJld3JpdGUgc3RkbGliIHJlZmVyZW5jZXMgd2l0aGluIE9uaWd1cnVt YQ0KPiA+ID4NCj4gPiA+IC0gIChDKSBDb3B5cmlnaHQgMjAxNC0yMDE1IEhld2xldHQgUGFja2Fy ZCBFbnRlcnByaXNlIERldmVsb3BtZW50DQo+ID4gTFA8QlI+DQo+ID4gPiArICAoQykgQ29weXJp Z2h0IDIwMTQtMjAyMSBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudA0KPiA+ IExQPEJSPg0KPiA+ID4gICAgQ29weXJpZ2h0IChjKSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gPg0KPiA+ID4gICAgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+IEBAIC00NiwxNyArNDYsNiBAQCB0 eXBlZGVmIElOVE4gICAgICAgIGludHB0cl90Ow0KPiA+ID4gICNlbmRpZg0KPiA+ID4NCj4gPiA+ ICAjZGVmaW5lIGNhbGxvYyhuLHMpIEFsbG9jYXRlWmVyb1Bvb2woKG4pKihzKSkNCj4gPiA+IC0N Cj4gPiA+IC0jZGVmaW5lIGZyZWUocCkgICAgICAgICAgICAgXA0KPiA+ID4gLSAgZG8geyAgICAg ICAgICAgICAgICAgICAgICBcDQo+ID4gPiAtICAgIFZPSUQgKkV2YWxPbmNlOyAgICAgICAgIFwN Cj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gLSAgICBFdmFsT25j ZSA9IChwKTsgICAgICAgICBcDQo+ID4gPiAtICAgIGlmIChFdmFsT25jZSAhPSBOVUxMKSB7IFwN Cj4gPiA+IC0gICAgICBGcmVlUG9vbCAoRXZhbE9uY2UpOyAgXA0KPiA+ID4gLSAgICB9ICAgICAg ICAgICAgICAgICAgICAgICBcDQo+ID4gPiAtICB9IHdoaWxlIChGQUxTRSkNCj4gPiA+IC0NCj4g PiA+ICAjZGVmaW5lIHhtZW1tb3ZlKERlc3QsU3JjLExlbmd0aCkgQ29weU1lbShEZXN0LFNyYyxM ZW5ndGgpDQo+ICNkZWZpbmUNCj4gPiA+IHhtZW1jcHkoRGVzdCxTcmMsTGVuZ3RoKSBDb3B5TWVt KERlc3QsU3JjLExlbmd0aCkgICNkZWZpbmUNCj4gPiA+IHhtZW1zZXQoQnVmZmVyLFZhbHVlLExl bmd0aCkgU2V0TWVtKEJ1ZmZlcixMZW5ndGgsVmFsdWUpIEBAIC05OCw2DQo+ID4gPiArODcsNyBA QCB2b2lkKiBtYWxsb2Moc2l6ZV90IHNpemUpOw0KPiA+ID4gIHZvaWQqIHJlYWxsb2Modm9pZCAq cHRyLCBzaXplX3Qgc2l6ZSk7DQo+ID4gPiAgdm9pZCogbWVtY3B5ICh2b2lkICpkZXN0LCBjb25z dCB2b2lkICpzcmMsIHVuc2lnbmVkIGludCBjb3VudCk7DQo+ID4gPiAgdm9pZCogbWVtc2V0ICh2 b2lkICpkZXN0LCBjaGFyIGNoLCB1bnNpZ25lZCBpbnQgY291bnQpOw0KPiA+ID4gK3ZvaWQgZnJl ZSh2b2lkICpwdHIpOw0KPiA+ID4NCj4gPiA+ICAjZGVmaW5lIGV4aXQobikgQVNTRVJUKEZBTFNF KTsNCj4gPiA+DQo+ID4gPg0KPiA+DQo+ID4gVGhpcyBwYXRjaCBjYW5ub3QgYmUgbWVyZ2VkLCBk dWUgdG8gYSBudW1iZXIgb2YgRWNjQ2hlY2sgY29tcGxhaW50czoNCj4gPg0KPiA+IDIwMjEtMDYt MjFUMDE6NDQ6MTMuNDMyNzg2MVogUFJPR1JFU1MgLSAtLVJ1bm5pbmcgTWRlTW9kdWxlUGtnOg0K PiA+IEVjY0NoZWNrIFRlc3QgTk8tVEFSR0VUIC0tDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC40 OTIyMzAwWiBFUlJPUiAtIDIwMjEtMDYtMjFUMDE6NDQ6MjAuNDkyNDE3OFogDQo+ID4gRVJST1Ig LSBFRkkgY29kaW5nIHN0eWxlIGVycm9yIDIwMjEtMDYtMjFUMDE6NDQ6MjAuNDkyNTUyNFogRVJS T1IgLSANCj4gPiAqRXJyb3IgY29kZTogNDAwMiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjQ5MjczMjNa IEVSUk9SIC0gKkZ1bmN0aW9uIA0KPiA+IGhlYWRlciBkb2Vzbid0IGV4aXN0IDIwMjEtMDYtMjFU MDE6NDQ6MjAuNDkzNjQzN1ogRVJST1IgLSAqZmlsZToNCj4gPg0KPiAvL2hvbWUvdnN0cy93b3Jr LzEvcy9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1JlZ3VsYXJFeHByZXNzaW9uRHhlL09uaQ0KPiA+ IGd1cnVtYVVlZmlQb3J0LmMNCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjQ5Mzc2NjlaIEVSUk9S IC0gKkxpbmUgbnVtYmVyOiA5OSANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjQ5Mzg3MzdaIEVS Uk9SIC0gKkZ1bmN0aW9uIFtmcmVlXSBoYXMgTk8gY29tbWVudCANCj4gPiBpbW1lZGlhdGVseSBw cmVjZWRpbmcgaXQuDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC40OTQ1NDg5WiBFUlJPUiAtIDIw MjEtMDYtMjFUMDE6NDQ6MjAuNDk1MTM4MlogDQo+ID4gRVJST1IgLSBFRkkgY29kaW5nIHN0eWxl IGVycm9yIDIwMjEtMDYtMjFUMDE6NDQ6MjAuNDk2MDE0OVogRVJST1IgLSANCj4gPiAqRXJyb3Ig Y29kZTogNDAwMiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjQ5NjExNjFaIEVSUk9SIC0gKkZ1bmN0aW9u IA0KPiA+IGhlYWRlciBkb2Vzbid0IGV4aXN0IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNDk2NjY3NFog RVJST1IgLSAqZmlsZToNCj4gPg0KPiAvL2hvbWUvdnN0cy93b3JrLzEvcy9NZGVNb2R1bGVQa2cv VW5pdmVyc2FsL1JlZ3VsYXJFeHByZXNzaW9uRHhlL09uaQ0KPiA+IGd1cnVtYVVlZmlQb3J0LmgN Cj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjQ5NzMyMzJaIEVSUk9SIC0gKkxpbmUgbnVtYmVyOiA5 MCANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjQ5NzgzMzdaIEVSUk9SIC0gKkZ1bmN0aW9uIFtm cmVlXSBoYXMgTk8gY29tbWVudCANCj4gPiBpbW1lZGlhdGVseSBwcmVjZWRpbmcgaXQuDQo+ID4g MjAyMS0wNi0yMVQwMTo0NDoyMC40OTgxMjU3WiBFUlJPUiAtIDIwMjEtMDYtMjFUMDE6NDQ6MjAu NDk4MzgwNVogDQo+ID4gRVJST1IgLSBFRkkgY29kaW5nIHN0eWxlIGVycm9yIDIwMjEtMDYtMjFU MDE6NDQ6MjAuNDk4NjUzN1ogRVJST1IgLSANCj4gPiAqRXJyb3IgY29kZTogNTAwMSAyMDIxLTA2 LTIxVDAxOjQ0OjIwLjQ5ODk1MDhaIEVSUk9SIC0gKlJldHVybiB0eXBlIA0KPiA+IG9mIGEgZnVu Y3Rpb24gc2hvdWxkIGV4aXN0IGFuZCBpbiB0aGUgZmlyc3QgbGluZSANCj4gPiAyMDIxLTA2LTIx VDAxOjQ0OjIwLjQ5OTcwNDNaIEVSUk9SIC0NCj4gPiAqZmlsZToNCj4gPg0KPiAvL2hvbWUvdnN0 cy93b3JrLzEvcy9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1JlZ3VsYXJFeHByZXNzaW9uRHhlL09u aQ0KPiA+IGd1cnVtYVVlZmlQb3J0LmgNCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjQ5OTc4MDRa IEVSUk9SIC0gKkxpbmUgbnVtYmVyOiA5MCANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjQ5OTgz MzFaIEVSUk9SIC0gKltmcmVlXSBSZXR1cm4gVHlwZSBzaG91bGQgDQo+ID4gYXBwZWFyIG9uIGl0 cyBvd24gbGluZSAyMDIxLTA2LTIxVDAxOjQ0OjIwLjQ5OTg3NjJaIEVSUk9SIC0gDQo+ID4gMjAy MS0wNi0yMVQwMTo0NDoyMC40OTk5MTc1WiBFUlJPUiAtIEVGSSBjb2Rpbmcgc3R5bGUgZXJyb3Ig DQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41MDE3MzUxWiBFUlJPUiAtICpFcnJvciBjb2RlOiA1 MDAzIA0KPiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTAyMzI4MlogRVJST1IgLSAqRnVuY3Rpb24g bmFtZSBzaG91bGQgYmUgbGVmdCANCj4gPiBqdXN0aWZpZWQsIGZvbGxvd2VkIGJ5IHRoZSBiZWdp bm5pbmcgb2YgdGhlIHBhcmFtZXRlciBsaXN0LCB3aXRoIHRoZSANCj4gPiBjbG9zaW5nIHBhcmVu dGhlc2lzIG9uIGl0cyBvd24gbGluZSwgaW5kZW50ZWQgdHdvIHNwYWNlcyANCj4gPiAyMDIxLTA2 LTIxVDAxOjQ0OjIwLjUwMjQ5MzFaIEVSUk9SIC0gKmZpbGU6DQo+ID4NCj4gLy9ob21lL3ZzdHMv d29yay8xL3MvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9SZWd1bGFyRXhwcmVzc2lvbkR4ZS9PbmkN Cj4gPiBndXJ1bWFVZWZpUG9ydC5jDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41MDI1ODE4WiBF UlJPUiAtICpMaW5lIG51bWJlcjogOTkgDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41MDI2OTYw WiBFUlJPUiAtICpGdW5jdGlvbiBuYW1lIFtmcmVlXSBzaG91bGQgDQo+ID4gYXBwZWFyIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUgMjAyMS0wNi0yMVQwMTo0NDoyMC41MDI3NTMzWiBFUlJPUiAtIA0K PiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTAyNzk4MlogRVJST1IgLSBFRkkgY29kaW5nIHN0eWxl IGVycm9yIA0KPiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTAyODQ1NFogRVJST1IgLSAqRXJyb3Ig Y29kZTogNTAwMyANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUwMjkyNzlaIEVSUk9SIC0gKkZ1 bmN0aW9uIG5hbWUgc2hvdWxkIGJlIGxlZnQgDQo+ID4ganVzdGlmaWVkLCBmb2xsb3dlZCBieSB0 aGUgYmVnaW5uaW5nIG9mIHRoZSBwYXJhbWV0ZXIgbGlzdCwgd2l0aCB0aGUgDQo+ID4gY2xvc2lu ZyBwYXJlbnRoZXNpcyBvbiBpdHMgb3duIGxpbmUsIGluZGVudGVkIHR3byBzcGFjZXMgDQo+ID4g MjAyMS0wNi0yMVQwMTo0NDoyMC41MDMwMTc3WiBFUlJPUiAtICpmaWxlOg0KPiA+DQo+IC8vaG9t ZS92c3RzL3dvcmsvMS9zL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvUmVndWxhckV4cHJlc3Npb25E eGUvT25pDQo+ID4gZ3VydW1hVWVmaVBvcnQuaA0KPiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTAz MDc3MFogRVJST1IgLSAqTGluZSBudW1iZXI6IDkwIA0KPiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAu NTAzMTMzMFogRVJST1IgLSAqRnVuY3Rpb24gbmFtZSBbZnJlZV0gc2hvdWxkIA0KPiA+IGFwcGVh ciBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lIDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTAzMTc4OFogRVJS T1IgLSANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUwMzIyNDBaIEVSUk9SIC0gRUZJIGNvZGlu ZyBzdHlsZSBlcnJvciANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUwMzI3MDZaIEVSUk9SIC0g KkVycm9yIGNvZGU6IDUwMDMgDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41MDMzNTU0WiBFUlJP UiAtICpGdW5jdGlvbiBuYW1lIHNob3VsZCBiZSBsZWZ0IA0KPiA+IGp1c3RpZmllZCwgZm9sbG93 ZWQgYnkgdGhlIGJlZ2lubmluZyBvZiB0aGUgcGFyYW1ldGVyIGxpc3QsIHdpdGggdGhlIA0KPiA+ IGNsb3NpbmcgcGFyZW50aGVzaXMgb24gaXRzIG93biBsaW5lLCBpbmRlbnRlZCB0d28gc3BhY2Vz IA0KPiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTAzNjQ3MFogRVJST1IgLSAqZmlsZToNCj4gPg0K PiAvL2hvbWUvdnN0cy93b3JrLzEvcy9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1JlZ3VsYXJFeHBy ZXNzaW9uRHhlL09uaQ0KPiA+IGd1cnVtYVVlZmlQb3J0LmgNCj4gPiAyMDIxLTA2LTIxVDAxOjQ0 OjIwLjUwNDAwNjNaIEVSUk9SIC0gKkxpbmUgbnVtYmVyOiA5MCANCj4gPiAyMDIxLTA2LTIxVDAx OjQ0OjIwLjUwNDM1MTNaIEVSUk9SIC0gKlBhcmFtZXRlciBwdHIgc2hvdWxkIGJlIGluIGl0cyAN Cj4gPiBvd24gbGluZS4NCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUwNDY3ODJaIEVSUk9SIC0g MjAyMS0wNi0yMVQwMTo0NDoyMC41MDQ5OTA5WiANCj4gPiBFUlJPUiAtIEVGSSBjb2Rpbmcgc3R5 bGUgZXJyb3IgMjAyMS0wNi0yMVQwMTo0NDoyMC41MDUzNTcxWiBFUlJPUiAtIA0KPiA+ICpFcnJv ciBjb2RlOiA1MDAzIDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTA1NzQxNVogRVJST1IgLSAqRnVuY3Rp b24gDQo+ID4gbmFtZSBzaG91bGQgYmUgbGVmdCBqdXN0aWZpZWQsIGZvbGxvd2VkIGJ5IHRoZSBi ZWdpbm5pbmcgb2YgdGhlIA0KPiA+IHBhcmFtZXRlciBsaXN0LCB3aXRoIHRoZSBjbG9zaW5nIHBh cmVudGhlc2lzIG9uIGl0cyBvd24gbGluZSwgDQo+ID4gaW5kZW50ZWQgdHdvIHNwYWNlcyAyMDIx LTA2LTIxVDAxOjQ0OjIwLjUwNjYyMDBaIEVSUk9SIC0gKmZpbGU6DQo+ID4NCj4gLy9ob21lL3Zz dHMvd29yay8xL3MvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9SZWd1bGFyRXhwcmVzc2lvbkR4ZS9P bmkNCj4gPiBndXJ1bWFVZWZpUG9ydC5oDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41MDY2ODMx WiBFUlJPUiAtICpMaW5lIG51bWJlcjogOTAgDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41MDY3 Mzc4WiBFUlJPUiAtIConKScgc2hvdWxkIGJlIG9uIGEgbmV3IGxpbmUgDQo+ID4gYW5kIGluZGVu dGVkIHR3byBzcGFjZXMgMjAyMS0wNi0yMVQwMTo0NDoyMC41MDY3Nzk5WiBFUlJPUiAtIA0KPiA+ IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTA2ODIxMVogRVJST1IgLSBFRkkgY29kaW5nIHN0eWxlIGVy cm9yIA0KPiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTA3MDYwMFogRVJST1IgLSAqRXJyb3IgY29k ZTogNzAwMSANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUwNzQ0NDhaIEVSUk9SIC0gKlRoZXJl IHNob3VsZCBiZSBubyB1c2Ugb2YgaW50LCANCj4gPiB1bnNpZ25lZCwgY2hhciwgdm9pZCwgbG9u ZyBpbiBhbnkgLmMsIC5oIG9yIC5hc2wgZmlsZXMgDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41 MDc3OTY1WiBFUlJPUiAtICpmaWxlOg0KPiA+DQo+IC8vaG9tZS92c3RzL3dvcmsvMS9zL01kZU1v ZHVsZVBrZy9Vbml2ZXJzYWwvUmVndWxhckV4cHJlc3Npb25EeGUvT25pDQo+ID4gZ3VydW1hVWVm aVBvcnQuYw0KPiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTA4MTIyMlogRVJST1IgLSAqTGluZSBu dW1iZXI6IDExMCANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUwODQyNDhaIEVSUk9SIC0gKlBh cmFtZXRlciBwdHIgDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41MDkwMTE1WiBFUlJPUiAtIDIw MjEtMDYtMjFUMDE6NDQ6MjAuNTA5MDUxN1ogDQo+ID4gRVJST1IgLSBFRkkgY29kaW5nIHN0eWxl IGVycm9yIDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTA5MDkyM1ogRVJST1IgLSANCj4gPiAqRXJyb3Ig Y29kZTogNzAwMSAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUwOTM0ODFaIEVSUk9SIC0gKlRoZXJlIHNo b3VsZCANCj4gPiBiZSBubyB1c2Ugb2YgaW50LCB1bnNpZ25lZCwgY2hhciwgdm9pZCwgbG9uZyBp biBhbnkgLmMsIC5oIG9yIC5hc2wgDQo+ID4gZmlsZXMgMjAyMS0wNi0yMVQwMTo0NDoyMC41MDk2 Mzg3WiBFUlJPUiAtICpmaWxlOg0KPiA+DQo+IC8vaG9tZS92c3RzL3dvcmsvMS9zL01kZU1vZHVs ZVBrZy9Vbml2ZXJzYWwvUmVndWxhckV4cHJlc3Npb25EeGUvT25pDQo+ID4gZ3VydW1hVWVmaVBv cnQuaA0KPiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTA5OTY1OFogRVJST1IgLSAqTGluZSBudW1i ZXI6IDkwIA0KPiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTEwMzAwOFogRVJST1IgLSAqZnJlZSBS ZXR1cm4gdHlwZSB2b2lkIA0KPiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTEwNTg3OFogRVJST1Ig LSAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUxMDg1MzdaIA0KPiA+IEVSUk9SIC0gRUZJIGNvZGluZyBz dHlsZSBlcnJvciAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUxMTE2MzBaIEVSUk9SIC0gDQo+ID4gKkVy cm9yIGNvZGU6IDcwMDEgMjAyMS0wNi0yMVQwMTo0NDoyMC41MTE1MDgzWiBFUlJPUiAtICpUaGVy ZSBzaG91bGQgDQo+ID4gYmUgbm8gdXNlIG9mIGludCwgdW5zaWduZWQsIGNoYXIsIHZvaWQsIGxv bmcgaW4gYW55IC5jLCAuaCBvciAuYXNsIA0KPiA+IGZpbGVzIDIwMjEtMDYtMjFUMDE6NDQ6MjAu NTExODYwMFogRVJST1IgLSAqZmlsZToNCj4gPg0KPiAvL2hvbWUvdnN0cy93b3JrLzEvcy9NZGVN b2R1bGVQa2cvVW5pdmVyc2FsL1JlZ3VsYXJFeHByZXNzaW9uRHhlL09uaQ0KPiA+IGd1cnVtYVVl ZmlQb3J0LmgNCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUxMjYxODlaIEVSUk9SIC0gKkxpbmUg bnVtYmVyOiA5MCANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUxNDIxMDBaIEVSUk9SIC0gKlBh cmFtZXRlciBwdHIgDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41MTQyNTc0WiBFUlJPUiAtIDIw MjEtMDYtMjFUMDE6NDQ6MjAuNTE0Mjk3OVogDQo+ID4gRVJST1IgLSBFRkkgY29kaW5nIHN0eWxl IGVycm9yIDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTE0MzQyOVogRVJST1IgLSANCj4gPiAqRXJyb3Ig Y29kZTogODAwNSAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUxNDQzMzJaIEVSUk9SIC0gKlZhcmlhYmxl IA0KPiA+IG5hbWUgZG9lcyBub3QgZm9sbG93IHRoZQ0KPiA+IHJ1bGVzOiAxLiBGaXJzdCBjaGFy YWN0ZXIgc2hvdWxkIGJlIHVwcGVyIGNhc2UgMi4gTXVzdCBjb250YWluIGxvd2VyIA0KPiA+IGNh c2UgY2hhcmFjdGVycyAzLiBObyB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzIDQuIEdsb2JhbCB2YXJp YWJsZSBuYW1lIA0KPiA+IG11c3Qgc3RhcnQgd2l0aCBhICdnJw0KPiA+IDIwMjEtMDYtMjFUMDE6 NDQ6MjAuNTE0NTQxNlogRVJST1IgLSAqZmlsZToNCj4gPg0KPiAvL2hvbWUvdnN0cy93b3JrLzEv cy9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1JlZ3VsYXJFeHByZXNzaW9uRHhlL09uaQ0KPiA+IGd1 cnVtYVVlZmlQb3J0LmgNCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUxNDYwNTBaIEVSUk9SIC0g KkxpbmUgbnVtYmVyOiA5MCANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUxNDY1NTVaIEVSUk9S IC0gKlBhcmFtZXRlciBbcHRyXSBOT1QgZm9sbG93IA0KPiA+IG5hbWluZyBjb252ZW50aW9uLg0K PiA+IDIwMjEtMDYtMjFUMDE6NDQ6MjAuNTE0Njk2M1ogRVJST1IgLSAyMDIxLTA2LTIxVDAxOjQ0 OjIwLjUxNDczNjZaIA0KPiA+IEVSUk9SIC0gRUZJIGNvZGluZyBzdHlsZSBlcnJvciAyMDIxLTA2 LTIxVDAxOjQ0OjIwLjUxNDc3OTRaIEVSUk9SIC0gDQo+ID4gKkVycm9yIGNvZGU6IDgwMDYgMjAy MS0wNi0yMVQwMTo0NDoyMC41MTQ4NTYyWiBFUlJPUiAtICpGdW5jdGlvbiANCj4gPiBuYW1lIGRv ZXMgbm90IGZvbGxvdyB0aGUNCj4gPiBydWxlczogMS4gRmlyc3QgY2hhcmFjdGVyIHNob3VsZCBi ZSB1cHBlciBjYXNlIDIuIE11c3QgY29udGFpbiBsb3dlciANCj4gPiBjYXNlIGNoYXJhY3RlcnMg My4gTm8gd2hpdGUgc3BhY2UgY2hhcmFjdGVycyANCj4gPiAyMDIxLTA2LTIxVDAxOjQ0OjIwLjUx NDkzOTlaIEVSUk9SIC0gKmZpbGU6DQo+ID4NCj4gLy9ob21lL3ZzdHMvd29yay8xL3MvTWRlTW9k dWxlUGtnL1VuaXZlcnNhbC9SZWd1bGFyRXhwcmVzc2lvbkR4ZS9PbmkNCj4gPiBndXJ1bWFVZWZp UG9ydC5jDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41MTQ5OTMyWiBFUlJPUiAtICpMaW5lIG51 bWJlcjogOTkgDQo+ID4gMjAyMS0wNi0yMVQwMTo0NDoyMC41MTUwNDQ1WiBFUlJPUiAtICpUaGUg ZnVuY3Rpb24gbmFtZSBbZnJlZV0gZG9lcyANCj4gPiBub3QgZm9sbG93IHRoZSBydWxlcyAyMDIx LTA2LTIxVDAxOjQ0OjIwLjUxNTU0NzBaIEVSUk9SIC0gLS0tPlRlc3QNCj4gPiBGYWlsZWQ6IEVj Y0NoZWNrIFRlc3QgTk8tVEFSR0VUIHJldHVybmVkIDENCj4gPg0KPiA+IFRoZXNlIGFyZSBhbGwg KG9yIG1vc3RseSkgcmVsYXRlZCB0byBwcmVleGlzdGVudCBjb2RlLCBzbyBJIHRoaW5rIA0KPiA+ IHRoZSBFY2NDaGVjayBwbHVnaW4gY29uZmlnIHNob3VsZCBiZSB1cGRhdGVkIGluIE1kZU1vZHVs ZVBrZywgdG8gDQo+ID4gcGVybWl0IGFuIGV4Y2VwdGlvbiBmb3IgdGhlc2UgZmlsZXMuDQo+ID4N Cj4gPiBGb3Igbm93LCBJJ3ZlIGNsb3NlZCA8aHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9l ZGsyL3B1bGwvMTczNT4NCj4gPiB3aXRob3V0IG1lcmdpbmcgaXQuDQo+ID4NCj4gPiBUaGFua3MN Cj4gPiBMYXN6bG8NCj4gPg0KPiA+DQo+ID4NCj4gPiANCj4gPg0KPiANCj4gDQoNCg0KDQo=